import './style.css';
import { defineComponent, onMounted, toRaw, openBlock, createElementBlock } from "vue";
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
function getDefaultExportFromCjs(x) {
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
}
var dist$1 = { exports: {} };
(function(module, exports) {
  (function webpackUniversalModuleDefinition(root, factory) {
    module.exports = factory();
  })(commonjsGlobal, function() {
    return function(modules) {
      var installedModules = {};
      function __webpack_require__(moduleId) {
        if (installedModules[moduleId]) {
          return installedModules[moduleId].exports;
        }
        var module2 = installedModules[moduleId] = {
          i: moduleId,
          l: false,
          exports: {}
        };
        modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);
        module2.l = true;
        return module2.exports;
      }
      __webpack_require__.m = modules;
      __webpack_require__.c = installedModules;
      __webpack_require__.d = function(exports2, name, getter) {
        if (!__webpack_require__.o(exports2, name)) {
          Object.defineProperty(exports2, name, { enumerable: true, get: getter });
        }
      };
      __webpack_require__.r = function(exports2) {
        if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
          Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
        }
        Object.defineProperty(exports2, "__esModule", { value: true });
      };
      __webpack_require__.t = function(value, mode) {
        if (mode & 1)
          value = __webpack_require__(value);
        if (mode & 8)
          return value;
        if (mode & 4 && typeof value === "object" && value && value.__esModule)
          return value;
        var ns = /* @__PURE__ */ Object.create(null);
        __webpack_require__.r(ns);
        Object.defineProperty(ns, "default", { enumerable: true, value });
        if (mode & 2 && typeof value != "string")
          for (var key in value)
            __webpack_require__.d(ns, key, function(key2) {
              return value[key2];
            }.bind(null, key));
        return ns;
      };
      __webpack_require__.n = function(module2) {
        var getter = module2 && module2.__esModule ? function getDefault() {
          return module2["default"];
        } : function getModuleExports() {
          return module2;
        };
        __webpack_require__.d(getter, "a", getter);
        return getter;
      };
      __webpack_require__.o = function(object, property) {
        return Object.prototype.hasOwnProperty.call(object, property);
      };
      __webpack_require__.p = "";
      return __webpack_require__(__webpack_require__.s = 79);
    }([
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        exports2.util = exports2.PresentationMode = void 0;
        exports2.createDom = createDom2;
        exports2.hasClass = hasClass2;
        exports2.addClass = addClass2;
        exports2.removeClass = removeClass2;
        exports2.toggleClass = toggleClass2;
        exports2.findDom = findDom2;
        exports2.padStart = padStart2;
        exports2.format = format2;
        exports2.event = event2;
        exports2.typeOf = typeOf2;
        exports2.deepCopy = deepCopy;
        exports2.getBgImage = getBgImage;
        exports2.copyDom = copyDom;
        exports2._setInterval = _setInterval;
        exports2._clearInterval = _clearInterval;
        exports2.createImgBtn = createImgBtn2;
        exports2.isWeiXin = isWeiXin2;
        exports2.isUc = isUc2;
        exports2.computeWatchDur = computeWatchDur;
        exports2.offInDestroy = offInDestroy;
        exports2.on = on;
        exports2.once = once;
        exports2.getBuffered2 = getBuffered2;
        exports2.checkIsBrowser = checkIsBrowser;
        exports2.setStyle = setStyle;
        exports2.checkWebkitSetPresentationMode = checkWebkitSetPresentationMode;
        var _xgplayerTimeRange = __webpack_require__(7);
        var _xgplayerTimeRange2 = _interopRequireDefault2(_xgplayerTimeRange);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        function createDom2() {
          var el = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "div";
          var tpl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
          var attrs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
          var cname = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "";
          var dom = document.createElement(el);
          dom.className = cname;
          dom.innerHTML = tpl;
          Object.keys(attrs).forEach(function(item) {
            var key = item;
            var value = attrs[item];
            if (el === "video" || el === "audio") {
              if (value) {
                dom.setAttribute(key, value);
              }
            } else {
              dom.setAttribute(key, value);
            }
          });
          return dom;
        }
        function hasClass2(el, className) {
          if (!el) {
            return false;
          }
          if (el.classList) {
            return Array.prototype.some.call(el.classList, function(item) {
              return item === className;
            });
          } else if (el.className) {
            return !!el.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)"));
          } else {
            return false;
          }
        }
        function addClass2(el, className) {
          if (!el) {
            return;
          }
          if (el.classList) {
            className.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach(function(item) {
              item && el.classList.add(item);
            });
          } else if (!hasClass2(el, className)) {
            el.className += " " + className;
          }
        }
        function removeClass2(el, className) {
          if (!el) {
            return;
          }
          if (el.classList) {
            className.split(/\s+/g).forEach(function(item) {
              el.classList.remove(item);
            });
          } else if (hasClass2(el, className)) {
            className.split(/\s+/g).forEach(function(item) {
              var reg = new RegExp("(\\s|^)" + item + "(\\s|$)");
              el.className = el.className.replace(reg, " ");
            });
          }
        }
        function toggleClass2(el, className) {
          if (!el) {
            return;
          }
          className.split(/\s+/g).forEach(function(item) {
            if (hasClass2(el, item)) {
              removeClass2(el, item);
            } else {
              addClass2(el, item);
            }
          });
        }
        function findDom2() {
          var el = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : document;
          var sel = arguments[1];
          var dom = void 0;
          try {
            dom = el.querySelector(sel);
          } catch (e) {
            if (sel.indexOf("#") === 0) {
              dom = el.getElementById(sel.slice(1));
            }
          }
          return dom;
        }
        function padStart2(str, length, pad) {
          var charstr = String(pad);
          var len = length >> 0;
          var maxlen = Math.ceil(len / charstr.length);
          var chars = [];
          var r = String(str);
          while (maxlen--) {
            chars.push(charstr);
          }
          return chars.join("").substring(0, len - r.length) + r;
        }
        function format2(time2) {
          if (window.isNaN(time2)) {
            return "";
          }
          var hour = padStart2(Math.floor(time2 / 3600), 2, 0);
          var minute = padStart2(Math.floor((time2 - hour * 3600) / 60), 2, 0);
          var second = padStart2(Math.floor(time2 - hour * 3600 - minute * 60), 2, 0);
          return (hour === "00" ? [minute, second] : [hour, minute, second]).join(":");
        }
        function event2(e) {
          if (e.touches) {
            var touch = e.touches[0] || e.changedTouches[0];
            e.clientX = touch.clientX || 0;
            e.clientY = touch.clientY || 0;
            e.offsetX = touch.pageX - touch.target.offsetLeft;
            e.offsetY = touch.pageY - touch.target.offsetTop;
          }
          e._target = e.target || e.srcElement;
        }
        function typeOf2(obj) {
          return Object.prototype.toString.call(obj).match(/([^\s.*]+)(?=]$)/g)[0];
        }
        function deepCopy(dst, src) {
          if (typeOf2(src) === "Object" && typeOf2(dst) === "Object") {
            Object.keys(src).forEach(function(key) {
              if (typeOf2(src[key]) === "Object" && !(src[key] instanceof Node)) {
                if (!dst[key]) {
                  dst[key] = src[key];
                } else {
                  deepCopy(dst[key], src[key]);
                }
              } else if (typeOf2(src[key]) === "Array") {
                dst[key] = typeOf2(dst[key]) === "Array" ? dst[key].concat(src[key]) : src[key];
              } else {
                dst[key] = src[key];
              }
            });
            return dst;
          }
        }
        function getBgImage(el) {
          var url = (el.currentStyle || window.getComputedStyle(el, null)).backgroundImage;
          if (!url || url === "none") {
            return "";
          }
          var a = document.createElement("a");
          a.href = url.replace(/url\("|"\)/g, "");
          return a.href;
        }
        function copyDom(dom) {
          if (dom && dom.nodeType === 1) {
            var back = document.createElement(dom.tagName);
            Array.prototype.forEach.call(dom.attributes, function(node) {
              back.setAttribute(node.name, node.value);
            });
            if (dom.innerHTML) {
              back.innerHTML = dom.innerHTML;
            }
            return back;
          } else {
            return "";
          }
        }
        function _setInterval(context, eventName, intervalFunc, frequency) {
          if (!context._interval[eventName]) {
            context._interval[eventName] = setInterval(intervalFunc.bind(context), frequency);
          }
        }
        function _clearInterval(context, eventName) {
          clearInterval(context._interval[eventName]);
          context._interval[eventName] = null;
        }
        function createImgBtn2(name, imgUrl, width, height) {
          var btn = createDom2("xg-" + name, "", {}, "xgplayer-" + name + "-img");
          btn.style.backgroundImage = 'url("' + imgUrl + '")';
          if (width && height) {
            var w = void 0, h = void 0, unit = void 0;
            ["px", "rem", "em", "pt", "dp", "vw", "vh", "vm", "%"].every(function(item) {
              if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {
                w = Number(width.slice(0, width.indexOf(item)).trim());
                h = Number(height.slice(0, height.indexOf(item)).trim());
                unit = item;
                return false;
              } else {
                return true;
              }
            });
            btn.style.width = "" + w + unit;
            btn.style.height = "" + h + unit;
            btn.style.backgroundSize = "" + w + unit + " " + h + unit;
            if (name === "start") {
              btn.style.margin = "-" + h / 2 + unit + " auto auto -" + w / 2 + unit;
            } else {
              btn.style.margin = "auto 5px auto 5px";
            }
          }
          return btn;
        }
        function isWeiXin2() {
          var ua = window.navigator.userAgent.toLowerCase();
          return ua.indexOf("micromessenger") > -1;
        }
        function isUc2() {
          var ua = window.navigator.userAgent.toLowerCase();
          return ua.indexOf("ucbrowser") > -1;
        }
        function computeWatchDur() {
          var played = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
          var arr = [];
          for (var i = 0; i < played.length; i++) {
            if (!played[i].end || played[i].begin < 0 || played[i].end < 0 || played[i].end < played[i].begin) {
              continue;
            }
            if (arr.length < 1) {
              arr.push({ begin: played[i].begin, end: played[i].end });
            } else {
              for (var j = 0; j < arr.length; j++) {
                var begin = played[i].begin;
                var end = played[i].end;
                if (end < arr[j].begin) {
                  arr.splice(j, 0, { begin, end });
                  break;
                } else if (begin > arr[j].end) {
                  if (j > arr.length - 2) {
                    arr.push({ begin, end });
                    break;
                  }
                } else {
                  var b = arr[j].begin;
                  var e = arr[j].end;
                  arr[j].begin = Math.min(begin, b);
                  arr[j].end = Math.max(end, e);
                  break;
                }
              }
            }
          }
          var watch_dur = 0;
          for (var _i = 0; _i < arr.length; _i++) {
            watch_dur += arr[_i].end - arr[_i].begin;
          }
          return watch_dur;
        }
        function offInDestroy(object, event3, fn, offEvent) {
          function onDestroy() {
            object.off(event3, fn);
            object.off(offEvent, onDestroy);
          }
          object.once(offEvent, onDestroy);
        }
        function on(object, event3, fn, offEvent) {
          if (offEvent) {
            object.on(event3, fn);
            offInDestroy(object, event3, fn, offEvent);
          } else {
            var _fn = function _fn2(data) {
              fn(data);
              object.off(event3, _fn2);
            };
            object.on(event3, _fn);
          }
        }
        function once(object, event3, fn, offEvent) {
          if (offEvent) {
            object.once(event3, fn);
            offInDestroy(object, event3, fn, offEvent);
          } else {
            var _fn = function _fn2(data) {
              fn(data);
              object.off(event3, _fn2);
            };
            object.once(event3, _fn);
          }
        }
        function getBuffered2(vbuffered) {
          var maxHoleDuration = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0.5;
          var buffered = [];
          for (var i = 0; i < vbuffered.length; i++) {
            buffered.push({ start: vbuffered.start(i) < 0.5 ? 0 : vbuffered.start(i), end: vbuffered.end(i) });
          }
          buffered.sort(function(a, b) {
            var diff = a.start - b.start;
            if (diff) {
              return diff;
            } else {
              return b.end - a.end;
            }
          });
          var buffered_2 = [];
          if (maxHoleDuration) {
            for (var _i2 = 0; _i2 < buffered.length; _i2++) {
              var buf2len = buffered_2.length;
              if (buf2len) {
                var buf2end = buffered_2[buf2len - 1].end;
                if (buffered[_i2].start - buf2end < maxHoleDuration) {
                  if (buffered[_i2].end > buf2end) {
                    buffered_2[buf2len - 1].end = buffered[_i2].end;
                  }
                } else {
                  buffered_2.push(buffered[_i2]);
                }
              } else {
                buffered_2.push(buffered[_i2]);
              }
            }
          } else {
            buffered_2 = buffered;
          }
          return new _xgplayerTimeRange2.default(buffered_2);
        }
        function checkIsBrowser() {
          return !(typeof window === "undefined" || typeof window.document === "undefined" || typeof window.document.createElement === "undefined");
        }
        function setStyle(elem, name, value) {
          var style = elem.style;
          try {
            style[name] = value;
          } catch (error2) {
            style.setProperty(name, value);
          }
        }
        exports2.PresentationMode = {
          PIP: "picture-in-picture",
          INLINE: "inline",
          FULLSCREEN: "fullscreen"
        };
        function checkWebkitSetPresentationMode(video) {
          return typeof video.webkitSetPresentationMode === "function";
        }
        exports2.util = {
          createDom: createDom2,
          hasClass: hasClass2,
          addClass: addClass2,
          removeClass: removeClass2,
          toggleClass: toggleClass2,
          findDom: findDom2,
          padStart: padStart2,
          format: format2,
          event: event2,
          typeOf: typeOf2,
          deepCopy,
          getBgImage,
          copyDom,
          setInterval: _setInterval,
          clearInterval: _clearInterval,
          createImgBtn: createImgBtn2,
          isWeiXin: isWeiXin2,
          isUc: isUc2,
          computeWatchDur,
          offInDestroy,
          on,
          once,
          getBuffered2,
          checkIsBrowser,
          setStyle
        };
      },
      function(module2, exports2) {
        module2.exports = function(useSourceMap) {
          var list = [];
          list.toString = function toString() {
            return this.map(function(item) {
              var content = cssWithMappingToString(item, useSourceMap);
              if (item[2]) {
                return "@media " + item[2] + "{" + content + "}";
              } else {
                return content;
              }
            }).join("");
          };
          list.i = function(modules, mediaQuery) {
            if (typeof modules === "string")
              modules = [[null, modules, ""]];
            var alreadyImportedModules = {};
            for (var i = 0; i < this.length; i++) {
              var id = this[i][0];
              if (typeof id === "number")
                alreadyImportedModules[id] = true;
            }
            for (i = 0; i < modules.length; i++) {
              var item = modules[i];
              if (typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
                if (mediaQuery && !item[2]) {
                  item[2] = mediaQuery;
                } else if (mediaQuery) {
                  item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
                }
                list.push(item);
              }
            }
          };
          return list;
        };
        function cssWithMappingToString(item, useSourceMap) {
          var content = item[1] || "";
          var cssMapping = item[3];
          if (!cssMapping) {
            return content;
          }
          if (useSourceMap && typeof btoa === "function") {
            var sourceMapping = toComment(cssMapping);
            var sourceURLs = cssMapping.sources.map(function(source) {
              return "/*# sourceURL=" + cssMapping.sourceRoot + source + " */";
            });
            return [content].concat(sourceURLs).concat([sourceMapping]).join("\n");
          }
          return [content].join("\n");
        }
        function toComment(sourceMap) {
          var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
          var data = "sourceMappingURL=data:application/json;charset=utf-8;base64," + base64;
          return "/*# " + data + " */";
        }
      },
      function(module2, exports2, __webpack_require__) {
        var stylesInDom = {};
        var memoize = function(fn) {
          var memo;
          return function() {
            if (typeof memo === "undefined")
              memo = fn.apply(this, arguments);
            return memo;
          };
        };
        var isOldIE = memoize(function() {
          return window && document && document.all && !window.atob;
        });
        var getTarget = function(target) {
          return document.querySelector(target);
        };
        var getElement = function(fn) {
          var memo = {};
          return function(target) {
            if (typeof target === "function") {
              return target();
            }
            if (typeof memo[target] === "undefined") {
              var styleTarget = getTarget.call(this, target);
              if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
                try {
                  styleTarget = styleTarget.contentDocument.head;
                } catch (e) {
                  styleTarget = null;
                }
              }
              memo[target] = styleTarget;
            }
            return memo[target];
          };
        }();
        var singleton = null;
        var singletonCounter = 0;
        var stylesInsertedAtTop = [];
        var fixUrls = __webpack_require__(36);
        module2.exports = function(list, options) {
          if (typeof DEBUG !== "undefined" && DEBUG) {
            if (typeof document !== "object")
              throw new Error("The style-loader cannot be used in a non-browser environment");
          }
          options = options || {};
          options.attrs = typeof options.attrs === "object" ? options.attrs : {};
          if (!options.singleton && typeof options.singleton !== "boolean")
            options.singleton = isOldIE();
          if (!options.insertInto)
            options.insertInto = "head";
          if (!options.insertAt)
            options.insertAt = "bottom";
          var styles = listToStyles(list, options);
          addStylesToDom(styles, options);
          return function update(newList) {
            var mayRemove = [];
            for (var i = 0; i < styles.length; i++) {
              var item = styles[i];
              var domStyle = stylesInDom[item.id];
              domStyle.refs--;
              mayRemove.push(domStyle);
            }
            if (newList) {
              var newStyles = listToStyles(newList, options);
              addStylesToDom(newStyles, options);
            }
            for (var i = 0; i < mayRemove.length; i++) {
              var domStyle = mayRemove[i];
              if (domStyle.refs === 0) {
                for (var j = 0; j < domStyle.parts.length; j++)
                  domStyle.parts[j]();
                delete stylesInDom[domStyle.id];
              }
            }
          };
        };
        function addStylesToDom(styles, options) {
          for (var i = 0; i < styles.length; i++) {
            var item = styles[i];
            var domStyle = stylesInDom[item.id];
            if (domStyle) {
              domStyle.refs++;
              for (var j = 0; j < domStyle.parts.length; j++) {
                domStyle.parts[j](item.parts[j]);
              }
              for (; j < item.parts.length; j++) {
                domStyle.parts.push(addStyle(item.parts[j], options));
              }
            } else {
              var parts = [];
              for (var j = 0; j < item.parts.length; j++) {
                parts.push(addStyle(item.parts[j], options));
              }
              stylesInDom[item.id] = { id: item.id, refs: 1, parts };
            }
          }
        }
        function listToStyles(list, options) {
          var styles = [];
          var newStyles = {};
          for (var i = 0; i < list.length; i++) {
            var item = list[i];
            var id = options.base ? item[0] + options.base : item[0];
            var css = item[1];
            var media = item[2];
            var sourceMap = item[3];
            var part = { css, media, sourceMap };
            if (!newStyles[id])
              styles.push(newStyles[id] = { id, parts: [part] });
            else
              newStyles[id].parts.push(part);
          }
          return styles;
        }
        function insertStyleElement(options, style) {
          var target = getElement(options.insertInto);
          if (!target) {
            throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
          }
          var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
          if (options.insertAt === "top") {
            if (!lastStyleElementInsertedAtTop) {
              target.insertBefore(style, target.firstChild);
            } else if (lastStyleElementInsertedAtTop.nextSibling) {
              target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
            } else {
              target.appendChild(style);
            }
            stylesInsertedAtTop.push(style);
          } else if (options.insertAt === "bottom") {
            target.appendChild(style);
          } else if (typeof options.insertAt === "object" && options.insertAt.before) {
            var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
            target.insertBefore(style, nextSibling);
          } else {
            throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
          }
        }
        function removeStyleElement(style) {
          if (style.parentNode === null)
            return false;
          style.parentNode.removeChild(style);
          var idx = stylesInsertedAtTop.indexOf(style);
          if (idx >= 0) {
            stylesInsertedAtTop.splice(idx, 1);
          }
        }
        function createStyleElement(options) {
          var style = document.createElement("style");
          options.attrs.type = "text/css";
          addAttrs(style, options.attrs);
          insertStyleElement(options, style);
          return style;
        }
        function createLinkElement(options) {
          var link = document.createElement("link");
          options.attrs.type = "text/css";
          options.attrs.rel = "stylesheet";
          addAttrs(link, options.attrs);
          insertStyleElement(options, link);
          return link;
        }
        function addAttrs(el, attrs) {
          Object.keys(attrs).forEach(function(key) {
            el.setAttribute(key, attrs[key]);
          });
        }
        function addStyle(obj, options) {
          var style, update, remove, result;
          if (options.transform && obj.css) {
            result = options.transform(obj.css);
            if (result) {
              obj.css = result;
            } else {
              return function() {
              };
            }
          }
          if (options.singleton) {
            var styleIndex = singletonCounter++;
            style = singleton || (singleton = createStyleElement(options));
            update = applyToSingletonTag.bind(null, style, styleIndex, false);
            remove = applyToSingletonTag.bind(null, style, styleIndex, true);
          } else if (obj.sourceMap && typeof URL === "function" && typeof URL.createObjectURL === "function" && typeof URL.revokeObjectURL === "function" && typeof Blob === "function" && typeof btoa === "function") {
            style = createLinkElement(options);
            update = updateLink.bind(null, style, options);
            remove = function() {
              removeStyleElement(style);
              if (style.href)
                URL.revokeObjectURL(style.href);
            };
          } else {
            style = createStyleElement(options);
            update = applyToTag.bind(null, style);
            remove = function() {
              removeStyleElement(style);
            };
          }
          update(obj);
          return function updateStyle(newObj) {
            if (newObj) {
              if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
                return;
              }
              update(obj = newObj);
            } else {
              remove();
            }
          };
        }
        var replaceText = function() {
          var textStore = [];
          return function(index2, replacement) {
            textStore[index2] = replacement;
            return textStore.filter(Boolean).join("\n");
          };
        }();
        function applyToSingletonTag(style, index2, remove, obj) {
          var css = remove ? "" : obj.css;
          if (style.styleSheet) {
            style.styleSheet.cssText = replaceText(index2, css);
          } else {
            var cssNode = document.createTextNode(css);
            var childNodes = style.childNodes;
            if (childNodes[index2])
              style.removeChild(childNodes[index2]);
            if (childNodes.length) {
              style.insertBefore(cssNode, childNodes[index2]);
            } else {
              style.appendChild(cssNode);
            }
          }
        }
        function applyToTag(style, obj) {
          var css = obj.css;
          var media = obj.media;
          if (media) {
            style.setAttribute("media", media);
          }
          if (style.styleSheet) {
            style.styleSheet.cssText = css;
          } else {
            while (style.firstChild) {
              style.removeChild(style.firstChild);
            }
            style.appendChild(document.createTextNode(css));
          }
        }
        function updateLink(link, options, obj) {
          var css = obj.css;
          var sourceMap = obj.sourceMap;
          var autoFixUrls = options.convertToAbsoluteUrls === void 0 && sourceMap;
          if (options.convertToAbsoluteUrls || autoFixUrls) {
            css = fixUrls(css);
          }
          if (sourceMap) {
            css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
          }
          var blob = new Blob([css], { type: "text/css" });
          var oldSrc = link.href;
          link.href = URL.createObjectURL(blob);
          if (oldSrc)
            URL.revokeObjectURL(oldSrc);
        }
      },
      function(module2, exports2, __webpack_require__) {
        var _undefined = __webpack_require__(24)();
        module2.exports = function(val) {
          return val !== _undefined && val !== null;
        };
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _version = __webpack_require__(8);
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        var ErrorTypes = {
          network: {
            code: 1,
            msg: "\u89C6\u9891\u4E0B\u8F7D\u9519\u8BEF",
            remark: "\u53EA\u8981\u89C6\u9891\u4E0B\u8F7D\u9519\u8BEF\u5C31\u4F7F\u7528\u6B64\u7C7B\u578B\uFF0C\u65E0\u8BBA\u662Fvideo\u672C\u8EAB\u7684\u8D85\u65F6\u8FD8\u662Fxhr\u7684\u5206\u6BB5\u8BF7\u6C42\u8D85\u65F6\u6216\u8005\u8D44\u6E90\u4E0D\u5B58\u5728"
          },
          mse: {
            code: 2,
            msg: "\u6D41\u8FFD\u52A0\u9519\u8BEF",
            remark: "\u8FFD\u52A0\u6D41\u7684\u65F6\u5019\u5982\u679C\u7C7B\u578B\u4E0D\u5BF9\u3001\u65E0\u6CD5\u88AB\u6B63\u786E\u89E3\u7801\u5219\u4F1A\u89E6\u53D1\u6B64\u7C7B\u9519\u8BEF"
          },
          parse: {
            code: 3,
            msg: "\u89E3\u6790\u9519\u8BEF",
            remark: "mp4\u3001hls\u3001flv\u6211\u4EEC\u90FD\u662F\u4F7F\u7528js\u8FDB\u884C\u683C\u5F0F\u89E3\u6790\uFF0C\u5982\u679C\u89E3\u6790\u5931\u8D25\u5219\u4F1A\u89E6\u53D1\u6B64\u7C7B\u9519\u8BEF"
          },
          format: {
            code: 4,
            msg: "\u683C\u5F0F\u9519\u8BEF",
            remark: "\u5982\u679C\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u7684\u683C\u5F0F\u5BFC\u81F4\u64AD\u653E\u9519\u8BEF"
          },
          decoder: {
            code: 5,
            msg: "\u89E3\u7801\u9519\u8BEF",
            remark: "\u6D4F\u89C8\u5668\u89E3\u7801\u5F02\u5E38\u4F1A\u629B\u51FA\u6B64\u7C7B\u578B\u9519\u8BEF"
          },
          runtime: {
            code: 6,
            msg: "\u8BED\u6CD5\u9519\u8BEF",
            remark: "\u64AD\u653E\u5668\u8BED\u6CD5\u9519\u8BEF"
          },
          timeout: {
            code: 7,
            msg: "\u64AD\u653E\u8D85\u65F6",
            remark: "\u64AD\u653E\u8FC7\u7A0B\u4E2D\u65E0\u6CD5\u6B63\u5E38\u8BF7\u6C42\u4E0B\u4E00\u4E2A\u5206\u6BB5\u5BFC\u81F4\u64AD\u653E\u4E2D\u65AD"
          },
          other: {
            code: 8,
            msg: "\u5176\u4ED6\u9519\u8BEF",
            remark: "\u4E0D\u53EF\u77E5\u7684\u9519\u8BEF\u6216\u88AB\u5FFD\u7565\u7684\u9519\u8BEF\u7C7B\u578B"
          }
        };
        var Errors = function Errors2(type, currentTime, duration, networkState, readyState, src, currentSrc, ended) {
          var errd = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : { line: "", handle: "", msg: "", version: "" };
          var errorCode = arguments[9];
          var mediaError = arguments[10];
          _classCallCheck2(this, Errors2);
          var r = {};
          if (arguments.length > 1) {
            r.playerVersion = _version.version;
            r.errorType = type;
            r.domain = document.domain;
            r.duration = duration;
            r.currentTime = currentTime;
            r.networkState = networkState;
            r.readyState = readyState;
            r.currentSrc = currentSrc;
            r.src = src;
            r.ended = ended;
            r.errd = errd;
            r.ex = (ErrorTypes[type] || {}).msg;
            r.errorCode = errorCode;
            r.mediaError = mediaError;
          } else {
            var arg = arguments[0];
            Object.keys(arg).map(function(key) {
              r[key] = arg[key];
            });
            r.ex = (arg.type && ErrorTypes[arg.type] || {}).msg;
          }
          return r;
        };
        exports2.default = Errors;
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var sniffer2 = {};
        Object.defineProperty(sniffer2, "device", {
          get: function get5() {
            var r = sniffer2.os;
            return r.isPc ? "pc" : "mobile";
          }
        });
        Object.defineProperty(sniffer2, "browser", {
          get: function get5() {
            var ua = navigator.userAgent.toLowerCase();
            var reg = {
              ie: /rv:([\d.]+)\) like gecko/,
              firfox: /firefox\/([\d.]+)/,
              chrome: /chrome\/([\d.]+)/,
              opera: /opera.([\d.]+)/,
              safari: /version\/([\d.]+).*safari/
            };
            return [].concat(Object.keys(reg).filter(function(key) {
              return reg[key].test(ua);
            }))[0] || "";
          }
        });
        Object.defineProperty(sniffer2, "os", {
          get: function get5() {
            var ua = navigator.userAgent;
            var isWindowsPhone = /(?:Windows Phone)/.test(ua);
            var isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;
            var isAndroid = /(?:Android)/.test(ua);
            var isFireFox = /(?:Firefox)/.test(ua);
            var isTablet = /(?:iPad|PlayBook)/.test(ua) || isAndroid && !/(?:Mobile)/.test(ua) || isFireFox && /(?:Tablet)/.test(ua);
            var isPhone = /(?:iPhone)/.test(ua) && !isTablet;
            var isPc = !isPhone && !isAndroid && !isSymbian && !isTablet;
            return {
              isTablet,
              isPhone,
              isAndroid,
              isPc,
              isSymbian,
              isWindowsPhone,
              isFireFox
            };
          }
        });
        exports2.default = sniffer2;
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var _undefined = void 0;
        module2.exports = function(value) {
          return value !== _undefined && value !== null;
        };
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _createClass2 = function() {
          function defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
              var descriptor = props[i];
              descriptor.enumerable = descriptor.enumerable || false;
              descriptor.configurable = true;
              if ("value" in descriptor)
                descriptor.writable = true;
              Object.defineProperty(target, descriptor.key, descriptor);
            }
          }
          return function(Constructor, protoProps, staticProps) {
            if (protoProps)
              defineProperties(Constructor.prototype, protoProps);
            if (staticProps)
              defineProperties(Constructor, staticProps);
            return Constructor;
          };
        }();
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        var XgplayerTimeRange = function() {
          function XgplayerTimeRange2(bufferedList) {
            _classCallCheck2(this, XgplayerTimeRange2);
            this.bufferedList = bufferedList;
          }
          _createClass2(XgplayerTimeRange2, [{
            key: "start",
            value: function start2(index2) {
              return this.bufferedList[index2].start;
            }
          }, {
            key: "end",
            value: function end(index2) {
              return this.bufferedList[index2].end;
            }
          }, {
            key: "length",
            get: function get5() {
              return this.bufferedList.length;
            }
          }]);
          return XgplayerTimeRange2;
        }();
        exports2.default = XgplayerTimeRange;
        module2.exports = exports2["default"];
      },
      function(module2) {
        module2.exports = JSON.parse('{"version":"2.31.6"}');
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _createClass2 = function() {
          function defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
              var descriptor = props[i];
              descriptor.enumerable = descriptor.enumerable || false;
              descriptor.configurable = true;
              if ("value" in descriptor)
                descriptor.writable = true;
              Object.defineProperty(target, descriptor.key, descriptor);
            }
          }
          return function(Constructor, protoProps, staticProps) {
            if (protoProps)
              defineProperties(Constructor.prototype, protoProps);
            if (staticProps)
              defineProperties(Constructor, staticProps);
            return Constructor;
          };
        }();
        var _get2 = function get5(object, property, receiver) {
          if (object === null)
            object = Function.prototype;
          var desc = Object.getOwnPropertyDescriptor(object, property);
          if (desc === void 0) {
            var parent = Object.getPrototypeOf(object);
            if (parent === null) {
              return void 0;
            } else {
              return get5(parent, property, receiver);
            }
          } else if ("value" in desc) {
            return desc.value;
          } else {
            var getter = desc.get;
            if (getter === void 0) {
              return void 0;
            }
            return getter.call(receiver);
          }
        };
        var _proxy = __webpack_require__(11);
        var _proxy2 = _interopRequireDefault2(_proxy);
        var _util = __webpack_require__(0);
        var _sniffer = __webpack_require__(5);
        var _sniffer2 = _interopRequireDefault2(_sniffer);
        var _xgplayerTimeRange = __webpack_require__(7);
        var _xgplayerTimeRange2 = _interopRequireDefault2(_xgplayerTimeRange);
        var _error = __webpack_require__(4);
        var _error2 = _interopRequireDefault2(_error);
        var _allOff = __webpack_require__(31);
        var _allOff2 = _interopRequireDefault2(_allOff);
        var _i18n = __webpack_require__(10);
        var _i18n2 = _interopRequireDefault2(_i18n);
        __webpack_require__(34);
        var _version = __webpack_require__(8);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        function _possibleConstructorReturn2(self2, call) {
          if (!self2) {
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
          }
          return call && (typeof call === "object" || typeof call === "function") ? call : self2;
        }
        function _inherits2(subClass, superClass) {
          if (typeof superClass !== "function" && superClass !== null) {
            throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
          }
          subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
          if (superClass)
            Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
        }
        var Player2 = function(_Proxy) {
          _inherits2(Player3, _Proxy);
          function Player3(options) {
            _classCallCheck2(this, Player3);
            var _this = _possibleConstructorReturn2(this, (Player3.__proto__ || Object.getPrototypeOf(Player3)).call(this, options));
            _this.config = (0, _util.deepCopy)({
              width: 600,
              height: 337.5,
              ignores: [],
              whitelist: [],
              lang: (document.documentElement.getAttribute("lang") || navigator.language || "zh-cn").toLocaleLowerCase(),
              inactive: 3e3,
              volume: 0.6,
              controls: true,
              controlsList: ["nodownload"]
            }, options);
            _this.version = _version.version;
            _this.userTimer = null;
            _this.waitTimer = null;
            _this.history = [];
            _this.isProgressMoving = false;
            _this.root = (0, _util.findDom)(document, "#" + _this.config.id);
            _this.controls = (0, _util.createDom)("xg-controls", "", {
              unselectable: "on",
              onselectstart: "return false"
            }, "xgplayer-controls");
            if (_this.config.isShowControl) {
              _this.controls.style.display = "none";
            }
            if (!_this.root) {
              var el = _this.config.el;
              if (el && el.nodeType === 1) {
                _this.root = el;
              } else {
                var _ret;
                _this.emit("error", new _error2.default({
                  type: "use",
                  errd: {
                    line: 45,
                    handle: "Constructor",
                    msg: "container id can't be empty"
                  },
                  vid: _this.config.vid
                }));
                console.error("container id can't be empty");
                return _ret = false, _possibleConstructorReturn2(_this, _ret);
              }
            }
            (0, _util.addClass)(_this.root, "xgplayer xgplayer-" + _sniffer2.default.device + " xgplayer-nostart xgplayer-pause " + (_this.config.controls ? "" : "xgplayer-no-controls"));
            _this.root.appendChild(_this.controls);
            if (_this.config.fluid) {
              _this.root.style["max-width"] = "100%";
              _this.root.style["width"] = "100%";
              _this.root.style["height"] = "0";
              _this.root.style["padding-top"] = _this.config.height * 100 / _this.config.width + "%";
              _this.video.style["position"] = "absolute";
              _this.video.style["top"] = "0";
              _this.video.style["left"] = "0";
            } else {
              if (_this.config.width) {
                if (typeof _this.config.width !== "number") {
                  _this.root.style.width = _this.config.width;
                } else {
                  _this.root.style.width = _this.config.width + "px";
                }
              }
              if (_this.config.height) {
                if (typeof _this.config.height !== "number") {
                  _this.root.style.height = _this.config.height;
                } else {
                  _this.root.style.height = _this.config.height + "px";
                }
              }
            }
            if (_this.config.execBeforePluginsCall) {
              _this.config.execBeforePluginsCall.forEach(function(item) {
                item.call(_this, _this);
              });
            }
            if (!_this.config.closeI18n) {
              Player3.install(_i18n2.default.name, _i18n2.default.method);
            }
            if (_this.config.controlStyle && (0, _util.typeOf)(_this.config.controlStyle) === "String") {
              var self2 = _this;
              fetch(self2.config.controlStyle, {
                method: "GET",
                headers: {
                  Accept: "application/json"
                }
              }).then(function(res) {
                if (res.ok) {
                  res.json().then(function(obj) {
                    for (var prop in obj) {
                      if (obj.hasOwnProperty(prop)) {
                        self2.config[prop] = obj[prop];
                      }
                    }
                    self2.pluginsCall();
                  });
                }
              }).catch(function(err) {
                console.log("Fetch\u9519\u8BEF:" + err);
              });
            } else {
              _this.pluginsCall();
            }
            if (_this.config.controlPlugins) {
              Player3.controlsRun(_this.config.controlPlugins, _this);
            }
            _this.ev.forEach(function(item) {
              var evName = Object.keys(item)[0];
              var evFunc = _this[item[evName]];
              if (evFunc) {
                _this.on(evName, evFunc);
              }
            });
            ["focus", "blur"].forEach(function(item) {
              _this.on(item, _this["on" + item.charAt(0).toUpperCase() + item.slice(1)]);
            });
            var player = _this;
            _this.mousemoveFunc = function() {
              player.emit("focus");
              if (!player.config.closeFocusVideoFocus) {
                player.video.focus();
              }
            };
            _this.root.addEventListener("mousemove", _this.mousemoveFunc);
            _this.playFunc = function() {
              player.emit("focus");
              if (!player.config.closePlayVideoFocus) {
                player.video.focus();
              }
            };
            player.once("play", _this.playFunc);
            _this.getVideoSize = function() {
              if (this.video.videoWidth && this.video.videoHeight) {
                var containerSize = player.root.getBoundingClientRect();
                if (player.config.fitVideoSize === "auto") {
                  if (containerSize.width / containerSize.height > this.video.videoWidth / this.video.videoHeight) {
                    player.root.style.height = this.video.videoHeight / this.video.videoWidth * containerSize.width + "px";
                  } else {
                    player.root.style.width = this.video.videoWidth / this.video.videoHeight * containerSize.height + "px";
                  }
                } else if (player.config.fitVideoSize === "fixWidth") {
                  player.root.style.height = this.video.videoHeight / this.video.videoWidth * containerSize.width + "px";
                } else if (player.config.fitVideoSize === "fixHeight") {
                  player.root.style.width = this.video.videoWidth / this.video.videoHeight * containerSize.height + "px";
                }
              }
            };
            player.once("loadeddata", _this.getVideoSize);
            setTimeout(function() {
              _this.emit("ready");
              _this.isReady = true;
            }, 0);
            if (_this.config.videoInit) {
              if ((0, _util.hasClass)(_this.root, "xgplayer-nostart")) {
                _this.start();
              }
            }
            if (player.config.rotate) {
              player.on("requestFullscreen", _this.updateRotateDeg);
              player.on("exitFullscreen", _this.updateRotateDeg);
            }
            function onDestroy() {
              player.root.removeEventListener("mousemove", player.mousemoveFunc);
              player.off("destroy", onDestroy);
            }
            player.once("destroy", onDestroy);
            return _this;
          }
          _createClass2(Player3, [{
            key: "attachVideo",
            value: function attachVideo() {
              var _this2 = this;
              if (this.video && this.video.nodeType === 1) {
                this.root.insertBefore(this.video, this.root.firstChild);
              }
              setTimeout(function() {
                _this2.emit("complete");
                if (_this2.danmu && typeof _this2.danmu.resize === "function") {
                  _this2.danmu.resize();
                }
              }, 1);
            }
          }, {
            key: "start",
            value: function start2() {
              var _this3 = this;
              var url = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.config.url;
              if (!this.video)
                return;
              var player = this;
              if (!url || url === "") {
                this.emit("urlNull");
                return;
              }
              this.canPlayFunc = function() {
                player.off("canplay", player.canPlayFunc);
                var playPromise = player.video.play();
                if (playPromise !== void 0 && playPromise) {
                  playPromise.then(function() {
                    player.emit("autoplay started");
                  }).catch(function() {
                    player.emit("autoplay was prevented");
                    (0, _util.addClass)(player.root, "xgplayer-is-autoplay");
                  });
                }
              };
              if ((0, _util.typeOf)(url) !== "Array") {
                if ((0, _util.typeOf)(url) === "String" && url.indexOf("blob:") > -1 && url === this.video.src)
                  ;
                else {
                  this.video.src = url;
                }
              } else {
                url.forEach(function(item) {
                  _this3.video.appendChild((0, _util.createDom)("source", "", {
                    src: "" + item.src,
                    type: "" + (item.type || "")
                  }));
                });
              }
              if (this.config.autoplay) {
                if (_sniffer2.default.os.isPhone) {
                  this.canPlayFunc();
                } else {
                  this.on("canplay", this.canPlayFunc);
                }
              }
              if (!this.config.disableStartLoad) {
                this.video.load();
              }
              this.attachVideo();
            }
          }, {
            key: "reload",
            value: function reload2() {
              this.video.load();
              this.reloadFunc = function() {
                var playPromise = this.play();
                if (playPromise !== void 0 && playPromise) {
                  playPromise.catch(function(err) {
                  });
                }
              };
              this.once("loadeddata", this.reloadFunc);
            }
          }, {
            key: "destroy",
            value: function destroy() {
              var _this4 = this;
              var isDelDom = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
              var player = this;
              clearInterval(this.bulletResizeTimer);
              for (var k in this._interval) {
                clearInterval(this._interval[k]);
                this._interval[k] = null;
              }
              if (this.checkTimer) {
                clearInterval(this.checkTimer);
              }
              if (this.waitTimer) {
                clearTimeout(this.waitTimer);
              }
              this.ev.forEach(function(item) {
                var evName = Object.keys(item)[0];
                var evFunc = _this4[item[evName]];
                if (evFunc) {
                  _this4.off(evName, evFunc);
                }
              });
              if (this.loadeddataFunc) {
                this.off("loadeddata", this.loadeddataFunc);
              }
              if (this.reloadFunc) {
                this.off("loadeddata", this.reloadFunc);
              }
              if (this.replayFunc) {
                this.off("play", this.replayFunc);
              }
              if (this.playFunc) {
                this.off("play", this.playFunc);
              }
              if (this.getVideoSize) {
                this.off("loadeddata", this.getVideoSize);
              }
              ["focus", "blur"].forEach(function(item) {
                _this4.off(item, _this4["on" + item.charAt(0).toUpperCase() + item.slice(1)]);
              });
              if (!this.config.keyShortcut || this.config.keyShortcut === "on") {
                ["video", "controls"].forEach(function(item) {
                  if (_this4[item]) {
                    _this4[item].removeEventListener("keydown", function(e) {
                      player.onKeydown(e, player);
                    });
                  }
                });
              }
              function destroyFunc() {
                this.emit("destroy");
                this.video.removeAttribute("src");
                this.video.load();
                if (isDelDom) {
                  this.root.innerHTML = "";
                  var classNameList = this.root.className.split(" ");
                  if (classNameList.length > 0) {
                    this.root.className = classNameList.filter(function(name) {
                      return name.indexOf("xgplayer") < 0;
                    }).join(" ");
                  } else {
                    this.root.className = "";
                  }
                }
                for (var _k in this) {
                  delete this[_k];
                }
                (0, _allOff2.default)(this);
              }
              if (!this.paused) {
                this.pause();
                this.once("pause", destroyFunc);
              } else {
                destroyFunc.call(this);
              }
              _get2(Player3.prototype.__proto__ || Object.getPrototypeOf(Player3.prototype), "destroy", this).call(this);
            }
          }, {
            key: "replay",
            value: function replay2() {
              var _replay = this._replay;
              (0, _util.removeClass)(this.root, "xgplayer-ended");
              if (_sniffer2.default.browser.indexOf("ie") > -1) {
                this.emit("play");
                this.emit("playing");
              }
              if (_replay && _replay instanceof Function) {
                _replay();
              } else {
                this.currentTime = 0;
                var playPromise = this.play();
                if (playPromise !== void 0 && playPromise) {
                  playPromise.catch(function(err) {
                  });
                }
              }
            }
          }, {
            key: "userGestureTrigEvent",
            value: function userGestureTrigEvent(name, param) {
              var _this5 = this;
              var defaultUserGestureEventHandler = function defaultUserGestureEventHandler2(name2, param2) {
                _this5.emit(name2, param2);
              };
              if (this.config.userGestureEventMiddleware && typeof this.config.userGestureEventMiddleware[name] === "function") {
                this.config.userGestureEventMiddleware[name].call(this, this, name, param, defaultUserGestureEventHandler);
              } else {
                defaultUserGestureEventHandler.call(this, name, param);
              }
            }
          }, {
            key: "pluginsCall",
            value: function pluginsCall() {
              var _this6 = this;
              if (Player3.plugins["s_i18n"]) {
                Player3.plugins["s_i18n"].call(this, this);
              }
              var self2 = this;
              if (Player3.plugins) {
                var ignores = this.config.ignores;
                Object.keys(Player3.plugins).forEach(function(name) {
                  var descriptor = Player3.plugins[name];
                  if (!descriptor || typeof descriptor !== "function") {
                    console.warn("plugin name", name, "is invalid");
                  } else {
                    if (!ignores.some(function(item) {
                      return name === item || name === "s_" + item;
                    }) && name !== "s_i18n") {
                      if (["pc", "tablet", "mobile"].some(function(type) {
                        return type === name;
                      })) {
                        if (name === _sniffer2.default.device) {
                          setTimeout(function() {
                            if (!self2.video)
                              return;
                            descriptor.call(self2, self2);
                          }, 0);
                        }
                      } else {
                        descriptor.call(_this6, _this6);
                      }
                    }
                  }
                });
              }
            }
          }, {
            key: "onFocus",
            value: function onFocus() {
              var player = this;
              if ((0, _util.hasClass)(this.root, "xgplayer-inactive")) {
                player.emit("controlShow");
              }
              (0, _util.removeClass)(this.root, "xgplayer-inactive");
              if (player.userTimer) {
                clearTimeout(player.userTimer);
              }
              player.userTimer = setTimeout(function() {
                player.emit("blur");
              }, player.config.inactive);
            }
          }, {
            key: "onBlur",
            value: function onBlur() {
              if ((this.config.enablePausedInactive || !this.paused) && !this.ended && !this.config.closeInactive) {
                if (!(0, _util.hasClass)(this.root, "xgplayer-inactive")) {
                  this.emit("controlHide");
                }
                (0, _util.addClass)(this.root, "xgplayer-inactive");
              }
            }
          }, {
            key: "onPlay",
            value: function onPlay() {
              (0, _util.addClass)(this.root, "xgplayer-isloading");
              (0, _util.addClass)(this.root, "xgplayer-playing");
              (0, _util.removeClass)(this.root, "xgplayer-pause");
            }
          }, {
            key: "onPause",
            value: function onPause() {
              (0, _util.addClass)(this.root, "xgplayer-pause");
              if (this.userTimer) {
                clearTimeout(this.userTimer);
              }
              this.emit("focus");
            }
          }, {
            key: "onEnded",
            value: function onEnded() {
              (0, _util.addClass)(this.root, "xgplayer-ended");
              (0, _util.removeClass)(this.root, "xgplayer-playing");
            }
          }, {
            key: "onSeeking",
            value: function onSeeking() {
              this.isSeeking = true;
              this.onWaiting();
            }
          }, {
            key: "onSeeked",
            value: function onSeeked() {
              var _this7 = this;
              this.once("timeupdate", function() {
                _this7.isSeeking = false;
              });
              if (this.waitTimer) {
                clearTimeout(this.waitTimer);
              }
              (0, _util.removeClass)(this.root, "xgplayer-isloading");
            }
          }, {
            key: "onWaiting",
            value: function onWaiting() {
              var self2 = this;
              if (self2.waitTimer) {
                clearTimeout(self2.waitTimer);
              }
              if (self2.checkTimer) {
                clearInterval(self2.checkTimer);
                self2.checkTimer = null;
              }
              var time2 = self2.currentTime;
              self2.waitTimer = setTimeout(function() {
                (0, _util.addClass)(self2.root, "xgplayer-isloading");
                self2.checkTimer = setInterval(function() {
                  if (self2.currentTime !== time2) {
                    (0, _util.removeClass)(self2.root, "xgplayer-isloading");
                    clearInterval(self2.checkTimer);
                    self2.checkTimer = null;
                  }
                }, 1e3);
              }, 500);
            }
          }, {
            key: "onPlaying",
            value: function onPlaying() {
              if (this.paused) {
                return;
              }
              this.isSeeking = false;
              if (this.waitTimer) {
                clearTimeout(this.waitTimer);
              }
              (0, _util.removeClass)(this.root, "xgplayer-isloading xgplayer-nostart xgplayer-pause xgplayer-ended xgplayer-is-error xgplayer-replay");
              (0, _util.addClass)(this.root, "xgplayer-playing");
            }
          }], [{
            key: "install",
            value: function install(name, descriptor) {
              if (!(0, _util.checkIsBrowser)()) {
                return;
              }
              if (!Player3.plugins) {
                Player3.plugins = {};
              }
              if (!Player3.plugins[name]) {
                Player3.plugins[name] = descriptor;
              }
            }
          }, {
            key: "installAll",
            value: function installAll(list) {
              for (var k = 0; k < list.length; k++) {
                Player3.install(list[k].name, list[k].method);
              }
            }
          }, {
            key: "use",
            value: function use(name, descriptor) {
              if (!Player3.plugins) {
                Player3.plugins = {};
              }
              Player3.plugins[name] = descriptor;
            }
          }, {
            key: "useAll",
            value: function useAll(list) {
              for (var k in list) {
                Player3.use(list[k].name, list[k].method);
              }
            }
          }, {
            key: "controlsRun",
            value: function controlsRun(controlLst, context) {
              controlLst.forEach(function(control) {
                control.method.call(context);
              });
            }
          }]);
          return Player3;
        }(_proxy2.default);
        Player2.util = _util.util;
        Player2.sniffer = _sniffer2.default;
        Player2.Errors = _error2.default;
        Player2.XgplayerTimeRange = _xgplayerTimeRange2.default;
        exports2.default = Player2;
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var s_i18n = function s_i18n2() {
          var player = this;
          var lang = {};
          lang.en = {
            HAVE_NOTHING: "There is no information on whether audio/video is ready",
            HAVE_METADATA: "Audio/video metadata is ready ",
            HAVE_CURRENT_DATA: "Data about the current play location is available, but there is not enough data to play the next frame/millisecond",
            HAVE_FUTURE_DATA: "Current and at least one frame of data is available",
            HAVE_ENOUGH_DATA: "The available data is sufficient to start playing",
            NETWORK_EMPTY: "Audio/video has not been initialized",
            NETWORK_IDLE: "Audio/video is active and has been selected for resources, but no network is used",
            NETWORK_LOADING: "The browser is downloading the data",
            NETWORK_NO_SOURCE: "No audio/video source was found",
            MEDIA_ERR_ABORTED: "The fetch process is aborted by the user",
            MEDIA_ERR_NETWORK: "An error occurred while downloading",
            MEDIA_ERR_DECODE: "An error occurred while decoding",
            MEDIA_ERR_SRC_NOT_SUPPORTED: "Audio/video is not supported",
            REPLAY: "Replay",
            ERROR: "Network is offline",
            PLAY_TIPS: "Play",
            PAUSE_TIPS: "Pause",
            PLAYNEXT_TIPS: "Play next",
            DOWNLOAD_TIPS: "Download",
            ROTATE_TIPS: "Rotate",
            RELOAD_TIPS: "Reload",
            FULLSCREEN_TIPS: "Fullscreen",
            EXITFULLSCREEN_TIPS: "Exit fullscreen",
            CSSFULLSCREEN_TIPS: "Cssfullscreen",
            EXITCSSFULLSCREEN_TIPS: "Exit cssfullscreen",
            TEXTTRACK: "Caption",
            PIP: "Pip",
            MINIPLAYER: "Miniplayer",
            SCREENSHOT: "Screenshot",
            LIVE: "LIVE",
            OFF: "Off",
            MINIPLAYER_DRAG: "Click and hold to drag",
            AIRPLAY_TIPS: "Airplay"
          };
          lang["zh-cn"] = {
            HAVE_NOTHING: "\u6CA1\u6709\u5173\u4E8E\u97F3\u9891/\u89C6\u9891\u662F\u5426\u5C31\u7EEA\u7684\u4FE1\u606F",
            HAVE_METADATA: "\u97F3\u9891/\u89C6\u9891\u7684\u5143\u6570\u636E\u5DF2\u5C31\u7EEA",
            HAVE_CURRENT_DATA: "\u5173\u4E8E\u5F53\u524D\u64AD\u653E\u4F4D\u7F6E\u7684\u6570\u636E\u662F\u53EF\u7528\u7684\uFF0C\u4F46\u6CA1\u6709\u8DB3\u591F\u7684\u6570\u636E\u6765\u64AD\u653E\u4E0B\u4E00\u5E27/\u6BEB\u79D2",
            HAVE_FUTURE_DATA: "\u5F53\u524D\u53CA\u81F3\u5C11\u4E0B\u4E00\u5E27\u7684\u6570\u636E\u662F\u53EF\u7528\u7684",
            HAVE_ENOUGH_DATA: "\u53EF\u7528\u6570\u636E\u8DB3\u4EE5\u5F00\u59CB\u64AD\u653E",
            NETWORK_EMPTY: "\u97F3\u9891/\u89C6\u9891\u5C1A\u672A\u521D\u59CB\u5316",
            NETWORK_IDLE: "\u97F3\u9891/\u89C6\u9891\u662F\u6D3B\u52A8\u7684\u4E14\u5DF2\u9009\u53D6\u8D44\u6E90\uFF0C\u4F46\u5E76\u672A\u4F7F\u7528\u7F51\u7EDC",
            NETWORK_LOADING: "\u6D4F\u89C8\u5668\u6B63\u5728\u4E0B\u8F7D\u6570\u636E",
            NETWORK_NO_SOURCE: "\u672A\u627E\u5230\u97F3\u9891/\u89C6\u9891\u6765\u6E90",
            MEDIA_ERR_ABORTED: "\u53D6\u56DE\u8FC7\u7A0B\u88AB\u7528\u6237\u4E2D\u6B62",
            MEDIA_ERR_NETWORK: "\u5F53\u4E0B\u8F7D\u65F6\u53D1\u751F\u9519\u8BEF",
            MEDIA_ERR_DECODE: "\u5F53\u89E3\u7801\u65F6\u53D1\u751F\u9519\u8BEF",
            MEDIA_ERR_SRC_NOT_SUPPORTED: "\u4E0D\u652F\u6301\u7684\u97F3\u9891/\u89C6\u9891\u683C\u5F0F",
            REPLAY: "\u91CD\u64AD",
            ERROR: "\u7F51\u7EDC\u8FDE\u63A5\u4F3C\u4E4E\u51FA\u73B0\u4E86\u95EE\u9898",
            PLAY_TIPS: "\u64AD\u653E",
            PAUSE_TIPS: "\u6682\u505C",
            PLAYNEXT_TIPS: "\u4E0B\u4E00\u96C6",
            DOWNLOAD_TIPS: "\u4E0B\u8F7D",
            ROTATE_TIPS: "\u65CB\u8F6C",
            RELOAD_TIPS: "\u91CD\u65B0\u8F7D\u5165",
            FULLSCREEN_TIPS: "\u8FDB\u5165\u5168\u5C4F",
            EXITFULLSCREEN_TIPS: "\u9000\u51FA\u5168\u5C4F",
            CSSFULLSCREEN_TIPS: "\u8FDB\u5165\u6837\u5F0F\u5168\u5C4F",
            EXITCSSFULLSCREEN_TIPS: "\u9000\u51FA\u6837\u5F0F\u5168\u5C4F",
            TEXTTRACK: "\u5B57\u5E55",
            PIP: "\u753B\u4E2D\u753B",
            MINIPLAYER: "\u8FF7\u4F60\u64AD\u653E\u5668",
            SCREENSHOT: "\u622A\u56FE",
            LIVE: "\u6B63\u5728\u76F4\u64AD",
            OFF: "\u5173\u95ED",
            MINIPLAYER_DRAG: "\u70B9\u51FB\u6309\u4F4F\u53EF\u62D6\u52A8\u89C6\u9891",
            AIRPLAY_TIPS: "\u9694\u7A7A\u64AD\u653E"
          };
          lang["zh-hk"] = {
            HAVE_NOTHING: "\u6C92\u6709\u95DC\u65BC\u97F3\u983B/\u8996\u983B\u662F\u5426\u5C31\u7DD2\u7684\u4FE1\u606F",
            HAVE_METADATA: "\u97F3\u983B/\u8996\u983B\u7684\u5143\u6578\u64DA\u5DF2\u5C31\u7DD2",
            HAVE_CURRENT_DATA: "\u95DC\u65BC\u7576\u524D\u64AD\u653E\u4F4D\u7F6E\u7684\u6578\u64DA\u662F\u53EF\u7528\u7684\uFF0C\u4F46\u6C92\u6709\u8DB3\u5920\u7684\u6578\u64DA\u4F86\u64AD\u653E\u4E0B\u58F9\u5E40/\u6BEB\u79D2",
            HAVE_FUTURE_DATA: "\u7576\u524D\u53CA\u81F3\u5C11\u4E0B\u58F9\u5E40\u7684\u6578\u64DA\u662F\u53EF\u7528\u7684",
            HAVE_ENOUGH_DATA: "\u53EF\u7528\u6578\u64DA\u8DB3\u4EE5\u958B\u59CB\u64AD\u653E",
            NETWORK_EMPTY: "\u97F3\u983B/\u8996\u983B\u5C1A\u672A\u521D\u59CB\u5316",
            NETWORK_IDLE: "\u97F3\u983B/\u8996\u983B\u662F\u6D3B\u52D5\u7684\u4E14\u5DF2\u9078\u53D6\u8CC7\u6E90\uFF0C\u4F46\u4E26\u672A\u4F7F\u7528\u7DB2\u7D61",
            NETWORK_LOADING: "\u700F\u89BD\u5668\u6B63\u5728\u4E0B\u8F09\u6578\u64DA",
            NETWORK_NO_SOURCE: "\u672A\u627E\u5230\u97F3\u983B/\u8996\u983B\u4F86\u6E90",
            MEDIA_ERR_ABORTED: "\u53D6\u56DE\u904E\u7A0B\u88AB\u7528\u6236\u4E2D\u6B62",
            MEDIA_ERR_NETWORK: "\u7576\u4E0B\u8F09\u6642\u767C\u751F\u932F\u8AA4",
            MEDIA_ERR_DECODE: "\u7576\u89E3\u78BC\u6642\u767C\u751F\u932F\u8AA4",
            MEDIA_ERR_SRC_NOT_SUPPORTED: "\u4E0D\u652F\u6301\u7684\u97F3\u983B/\u8996\u983B\u683C\u5F0F",
            REPLAY: "\u91CD\u64AD",
            ERROR: "\u7DB2\u7D61\u9023\u63A5\u4F3C\u4E4E\u51FA\u73FE\u4E86\u554F\u984C",
            PLAY_TIPS: "\u64AD\u653E",
            PAUSE_TIPS: "\u66AB\u505C",
            PLAYNEXT_TIPS: "\u4E0B\u58F9\u96C6",
            DOWNLOAD_TIPS: "\u4E0B\u8F09",
            ROTATE_TIPS: "\u65CB\u8F49",
            RELOAD_TIPS: "\u91CD\u65B0\u8F09\u5165",
            FULLSCREEN_TIPS: "\u9032\u5165\u5168\u5C4F",
            EXITFULLSCREEN_TIPS: "\u9000\u51FA\u5168\u5C4F",
            CSSFULLSCREEN_TIPS: "\u9032\u5165\u6A23\u5F0F\u5168\u5C4F",
            EXITCSSFULLSCREEN_TIPS: "\u9000\u51FA\u6A23\u5F0F\u5168\u5C4F",
            TEXTTRACK: "\u5B57\u5E55",
            PIP: "\u756B\u4E2D\u756B",
            MINIPLAYER: "\u8FF7\u59B3\u64AD\u653E\u5668",
            SCREENSHOT: "\u622A\u5716",
            LIVE: "\u6B63\u5728\u76F4\u64AD",
            OFF: "\u95DC\u9589",
            MINIPLAYER_DRAG: "\u9EDE\u64CA\u6309\u4F4F\u53EF\u62D6\u52D5\u8996\u983B",
            AIRPLAY_TIPS: "\u9694\u7A7A\u64AD\u653E"
          };
          lang["jp"] = {
            HAVE_NOTHING: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA\u304C\u6E96\u5099\u3067\u304D\u3066\u3044\u308B\u304B\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093",
            HAVE_METADATA: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u306F\u6E96\u5099\u3067\u304D\u3066\u3044\u307E\u3059",
            HAVE_CURRENT_DATA: "\u73FE\u5728\u306E\u518D\u751F\u4F4D\u7F6E\u306B\u95A2\u3059\u308B\u30C7\u30FC\u30BF\u306F\u5229\u7528\u53EF\u80FD\u3067\u3059\u304C\u3001\u6B21\u306E\u30D5\u30EC\u30FC\u30E0/\u30DF\u30EA\u79D2\u3092\u518D\u751F\u3059\u308B\u306E\u306B\u5341\u5206\u306A\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
            HAVE_FUTURE_DATA: "\u73FE\u5728\u3001\u5C11\u306A\u304F\u3068\u3082\u6B21\u306E\u30D5\u30EC\u30FC\u30E0\u306E\u30C7\u30FC\u30BF\u304C\u5229\u7528\u53EF\u80FD\u3067\u3059",
            HAVE_ENOUGH_DATA: "\u5229\u7528\u53EF\u80FD\u306A\u30C7\u30FC\u30BF\u306F\u518D\u751F\u3092\u958B\u59CB\u3059\u308B\u306E\u306B\u5341\u5206\u3067\u3059",
            NETWORK_EMPTY: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
            NETWORK_IDLE: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA\u306F\u30A2\u30AF\u30C6\u30A3\u30D6\u3067\u30EA\u30BD\u30FC\u30B9\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
            NETWORK_LOADING: "\u30D6\u30E9\u30A6\u30B6\u30FC\u306F\u30C7\u30FC\u30BF\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059",
            NETWORK_NO_SOURCE: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA \u306E\u30BD\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",
            MEDIA_ERR_ABORTED: "\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u30D5\u30A7\u30C3\u30C1\u30D7\u30ED\u30BB\u30B9\u304C\u4E2D\u6B62\u3055\u308C\u307E\u3057\u305F",
            MEDIA_ERR_NETWORK: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
            MEDIA_ERR_DECODE: "\u30C7\u30B3\u30FC\u30C9\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
            MEDIA_ERR_SRC_NOT_SUPPORTED: "\u30AA\u30FC\u30C7\u30A3\u30AA/\u30D3\u30C7\u30AA \u306E\u5F62\u5F0F\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
            REPLAY: "\u30EA\u30D7\u30EC\u30A4",
            ERROR: "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u63A5\u7D9A\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
            PLAY_TIPS: "\u30D7\u30EC\u30A4",
            PAUSE_TIPS: "\u4E00\u6642\u505C\u6B62",
            PLAYNEXT_TIPS: "\u6B21\u3092\u30D7\u30EC\u30A4",
            DOWNLOAD_TIPS: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
            ROTATE_TIPS: "\u56DE\u8EE2",
            RELOAD_TIPS: "\u518D\u8AAD\u307F\u8FBC\u307F",
            FULLSCREEN_TIPS: "\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3",
            EXITFULLSCREEN_TIPS: "\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3\u3092\u7D42\u4E86",
            CSSFULLSCREEN_TIPS: "\u30B7\u30A2\u30BF\u30FC\u30E2\u30FC\u30C9",
            EXITCSSFULLSCREEN_TIPS: "\u30B7\u30A2\u30BF\u30FC\u30E2\u30FC\u30C9\u3092\u7D42\u4E86",
            TEXTTRACK: "\u5B57\u5E55",
            PIP: "\u30DF\u30CB\u30D7\u30EC\u30FC\u30E4\u30FC",
            MINIPLAYER: "\u30DF\u30CB\u30D7\u30EC\u30FC\u30E4\u30FC",
            SCREENSHOT: "\u30B9\u30AF\u30EA\u30FC\u30F3\u30B7\u30E7\u30C3\u30C8",
            LIVE: "\u751F\u653E\u9001",
            OFF: "\u30AA\u30D5",
            MINIPLAYER_DRAG: "\u30DC\u30BF\u30F3\u3092\u62BC\u3057\u3066\u50CD\u753B\u3092\u30C9\u30E9\u30C3\u30B0\u3059\u308B",
            AIRPLAY_TIPS: "\u9694\u7A7A\u653E\u9001"
          };
          Object.defineProperty(player, "lang", {
            get: function get5() {
              if (player.config) {
                return lang[player.config.lang] || lang["en"];
              } else {
                return lang["en"];
              }
            },
            set: function set2(value) {
              if ((0, _util.typeOf)(value) === "Object") {
                Object.keys(value).forEach(function(key) {
                  lang[key] = value[key];
                });
              }
            }
          });
        };
        exports2.default = {
          name: "s_i18n",
          method: s_i18n
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _createClass2 = function() {
          function defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
              var descriptor = props[i];
              descriptor.enumerable = descriptor.enumerable || false;
              descriptor.configurable = true;
              if ("value" in descriptor)
                descriptor.writable = true;
              Object.defineProperty(target, descriptor.key, descriptor);
            }
          }
          return function(Constructor, protoProps, staticProps) {
            if (protoProps)
              defineProperties(Constructor.prototype, protoProps);
            if (staticProps)
              defineProperties(Constructor, staticProps);
            return Constructor;
          };
        }();
        var _eventEmitter = __webpack_require__(12);
        var _eventEmitter2 = _interopRequireDefault2(_eventEmitter);
        var _util = __webpack_require__(0);
        var _error = __webpack_require__(4);
        var _error2 = _interopRequireDefault2(_error);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        function _defineProperty(obj, key, value) {
          if (key in obj) {
            Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
          } else {
            obj[key] = value;
          }
          return obj;
        }
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        var Proxy = function() {
          function Proxy2(options) {
            var _this = this;
            _classCallCheck2(this, Proxy2);
            this._hasStart = false;
            this.videoConfig = {
              controls: !!options.isShowControl,
              autoplay: options.autoplay,
              playsinline: options.playsinline,
              "webkit-playsinline": options.playsinline,
              "x5-playsinline": options.playsinline,
              "x5-video-player-type": options["x5-video-player-type"] || options["x5VideoPlayerType"],
              "x5-video-player-fullscreen": options["x5-video-player-fullscreen"] || options["x5VideoPlayerFullscreen"],
              "x5-video-orientation": options["x5-video-orientation"] || options["x5VideoOrientation"],
              airplay: options["airplay"],
              "webkit-airplay": options["airplay"],
              tabindex: 2,
              mediaType: options.mediaType || "video"
            };
            if (options.muted) {
              this.videoConfig.muted = "muted";
            }
            if (options.loop) {
              this.videoConfig.loop = "loop";
            }
            var textTrackDom = "";
            this.textTrackShowDefault = true;
            if (options.nativeTextTrack && Array.isArray(options.nativeTextTrack)) {
              if (options.nativeTextTrack.length > 0 && !options.nativeTextTrack.some(function(track) {
                return track.default;
              })) {
                options.nativeTextTrack[0].default = true;
                this.textTrackShowDefault = false;
              }
              options.nativeTextTrack.some(function(track) {
                if (track.src && track.label && track.default) {
                  textTrackDom += '<track src="' + track.src + '" ';
                  if (track.kind) {
                    textTrackDom += 'kind="' + track.kind + '" ';
                  }
                  textTrackDom += 'label="' + track.label + '" ';
                  if (track.srclang) {
                    textTrackDom += 'srclang="' + track.srclang + '" ';
                  }
                  textTrackDom += (track.default ? "default" : "") + ">";
                  return true;
                }
              });
              this.videoConfig.crossorigin = "anonymous";
            }
            if (options.textTrackStyle) {
              var style = document.createElement("style");
              this.textTrackStyle = style;
              document.head.appendChild(style);
              var styleStr = "";
              for (var index2 in options.textTrackStyle) {
                styleStr += index2 + ": " + options.textTrackStyle[index2] + ";";
              }
              var wrap = options.id ? "#" + options.id : options.el.id ? "#" + options.el.id : "." + options.el.className;
              if (style.sheet.insertRule) {
                style.sheet.insertRule(wrap + " video::cue { " + styleStr + " }", 0);
              } else if (style.sheet.addRule) {
                style.sheet.addRule(wrap + " video::cue", styleStr);
              }
            }
            var el = options.el ? options.el : (0, _util.findDom)(document, "#" + options.id);
            var XgVideoProxy = this.constructor.XgVideoProxy;
            if (XgVideoProxy && this.videoConfig.mediaType === XgVideoProxy.mediaType) {
              this.video = new XgVideoProxy(el, options);
            } else {
              this.video = (0, _util.createDom)(this.videoConfig.mediaType, textTrackDom, this.videoConfig, "");
            }
            if (options.videoStyle) {
              Object.keys(options.videoStyle).forEach(function(key) {
                (0, _util.setStyle)(_this.video, key, options.videoStyle[key]);
              });
            }
            if (!this.textTrackShowDefault && textTrackDom) {
              var trackDoms = this.video.getElementsByTagName("Track");
              trackDoms[0].track.mode = "hidden";
            }
            if (options.autoplay) {
              this.video.autoplay = true;
              if (options.autoplayMuted) {
                this.video.muted = true;
              }
            }
            this.ev = ["play", "playing", "pause", "ended", "error", "seeking", "seeked", "progress", "timeupdate", "waiting", "canplay", "canplaythrough", "durationchange", "volumechange", "ratechange", "loadedmetadata", "loadeddata", "loadstart"].map(function(item) {
              return _defineProperty({}, item, "on" + item.charAt(0).toUpperCase() + item.slice(1));
            });
            (0, _eventEmitter2.default)(this);
            this._interval = {};
            var lastBuffer = "0,0";
            var self2 = this;
            var defaultVideoEventHandler = function defaultVideoEventHandler2(name) {
              if (!_this) {
                return;
              }
              if (name === "play") {
                _this.hasStart = true;
              } else if (name === "canplay") {
                (0, _util.removeClass)(_this.root, "xgplayer-is-enter");
              } else if (name === "waiting") {
                _this.inWaitingStart = new Date().getTime();
              } else if (name === "playing") {
                (0, _util.removeClass)(_this.root, "xgplayer-is-enter");
                if (_this.inWaitingStart) {
                  _this.inWaitingStart = void 0;
                }
              }
              if (name === "error") {
                _this._onError(name);
              } else {
                _this.emit(name, _this);
              }
              if (_this.hasOwnProperty("_interval")) {
                if (["ended", "error", "timeupdate"].indexOf(name) < 0) {
                  (0, _util._clearInterval)(_this, "bufferedChange");
                  (0, _util._setInterval)(_this, "bufferedChange", function() {
                    if (this.video && this.video.buffered) {
                      var curBuffer = [];
                      for (var i = 0, len = this.video.buffered.length; i < len; i++) {
                        curBuffer.push([this.video.buffered.start(i), this.video.buffered.end(i)]);
                      }
                      if (curBuffer.toString() !== lastBuffer) {
                        lastBuffer = curBuffer.toString();
                        this.emit("bufferedChange", curBuffer);
                      }
                    }
                  }, 200);
                } else {
                  if (name !== "timeupdate") {
                    (0, _util._clearInterval)(_this, "bufferedChange");
                  }
                }
              }
            };
            var videoEventHandler = function videoEventHandler2(name) {
              if (options.videoEventMiddleware && typeof options.videoEventMiddleware[name] === "function") {
                options.videoEventMiddleware[name].call(_this, _this, name, defaultVideoEventHandler);
              } else {
                defaultVideoEventHandler.call(_this, name);
              }
            };
            this.ev.forEach(function(item) {
              self2.evItem = Object.keys(item)[0];
              var name = Object.keys(item)[0];
              self2.video.addEventListener(Object.keys(item)[0], videoEventHandler.bind(self2, name));
            });
          }
          _createClass2(Proxy2, [{
            key: "_onError",
            value: function _onError(name) {
              if (this.video && this.video.error) {
                this.emit(name, new _error2.default("other", this.currentTime, this.duration, this.networkState, this.readyState, this.currentSrc, this.src, this.ended, {
                  line: 162,
                  msg: this.error,
                  handle: "Constructor"
                }, this.video.error.code, this.video.error));
              }
            }
          }, {
            key: "destroy",
            value: function destroy() {
              if (this.textTrackStyle) {
                this.textTrackStyle.parentNode.removeChild(this.textTrackStyle);
              }
            }
          }, {
            key: "play",
            value: function play2() {
              return this.video.play();
            }
          }, {
            key: "pause",
            value: function pause() {
              this.video.pause();
            }
          }, {
            key: "canPlayType",
            value: function canPlayType(type) {
              return this.video.canPlayType(type);
            }
          }, {
            key: "getBufferedRange",
            value: function getBufferedRange(buffered) {
              var range = [0, 0];
              var video = this.video;
              if (!buffered)
                buffered = video.buffered;
              var currentTime = video.currentTime;
              if (buffered) {
                for (var i = 0, len = buffered.length; i < len; i++) {
                  range[0] = buffered.start(i);
                  range[1] = buffered.end(i);
                  if (range[0] <= currentTime && currentTime <= range[1]) {
                    break;
                  }
                }
              }
              if (range[0] - currentTime <= 0 && currentTime - range[1] <= 0) {
                return range;
              } else {
                return [0, 0];
              }
            }
          }, {
            key: "proxyOn",
            value: function proxyOn(event2, fn) {
              (0, _util.on)(this, event2, fn, "destroy");
            }
          }, {
            key: "proxyOnce",
            value: function proxyOnce(event2, fn) {
              (0, _util.once)(this, event2, fn, "destroy");
            }
          }, {
            key: "hasStart",
            get: function get5() {
              return this._hasStart;
            },
            set: function set2(bool) {
              if (typeof bool === "boolean" && bool === true && !this._hasStart) {
                this._hasStart = true;
                this.emit("hasstart");
              }
            }
          }, {
            key: "autoplay",
            set: function set2(isTrue) {
              if (this.video) {
                this.video.autoplay = isTrue;
              }
            },
            get: function get5() {
              if (this.video) {
                return this.video.autoplay;
              } else {
                return false;
              }
            }
          }, {
            key: "buffered",
            get: function get5() {
              if (this.video) {
                return this.video.buffered;
              } else {
                return void 0;
              }
            }
          }, {
            key: "buffered2",
            get: function get5() {
              return (0, _util.getBuffered2)(this.video.buffered);
            }
          }, {
            key: "crossOrigin",
            get: function get5() {
              if (this.video) {
                return this.video.crossOrigin;
              } else {
                return false;
              }
            },
            set: function set2(isTrue) {
              if (this.video) {
                this.video.crossOrigin = isTrue;
              }
            }
          }, {
            key: "currentSrc",
            get: function get5() {
              if (this.video) {
                return this.video.currentSrc;
              } else {
                return void 0;
              }
            }
          }, {
            key: "currentTime",
            get: function get5() {
              if (this.video) {
                return this.video.currentTime || 0;
              } else {
                return 0;
              }
            },
            set: function set2(time2) {
              var _this2 = this;
              if (typeof isFinite === "function" && !isFinite(time2))
                return;
              if ((0, _util.hasClass)(this.root, "xgplayer-ended")) {
                this.once("playing", function() {
                  _this2.video.currentTime = time2;
                });
                this.replay();
              } else {
                this.video.currentTime = time2;
              }
              this.emit("currentTimeChange", time2);
            }
          }, {
            key: "defaultMuted",
            get: function get5() {
              if (this.video) {
                return this.video.defaultMuted;
              } else {
                return false;
              }
            },
            set: function set2(isTrue) {
              if (this.video) {
                this.video.defaultMuted = isTrue;
              }
            }
          }, {
            key: "duration",
            get: function get5() {
              if (this.config.duration) {
                if (this.video)
                  return Math.min(this.config.duration, this.video.duration);
                else
                  return this.config.duration;
              }
              if (!this.video)
                return null;
              return this.video.duration;
            }
          }, {
            key: "ended",
            get: function get5() {
              if (this.video) {
                return this.video.ended || false;
              } else {
                return true;
              }
            }
          }, {
            key: "error",
            get: function get5() {
              var err = this.video.error;
              if (!err) {
                return null;
              }
              var status = [{
                en: "MEDIA_ERR_ABORTED",
                cn: "\u53D6\u56DE\u8FC7\u7A0B\u88AB\u7528\u6237\u4E2D\u6B62"
              }, {
                en: "MEDIA_ERR_NETWORK",
                cn: "\u5F53\u4E0B\u8F7D\u65F6\u53D1\u751F\u9519\u8BEF"
              }, {
                en: "MEDIA_ERR_DECODE",
                cn: "\u5F53\u89E3\u7801\u65F6\u53D1\u751F\u9519\u8BEF"
              }, {
                en: "MEDIA_ERR_SRC_NOT_SUPPORTED",
                cn: "\u4E0D\u652F\u6301\u97F3\u9891/\u89C6\u9891"
              }];
              return this.lang ? this.lang[status[err.code - 1].en] : status[err.code - 1].en;
            }
          }, {
            key: "loop",
            get: function get5() {
              if (this.video) {
                return this.video.loop;
              } else {
                return false;
              }
            },
            set: function set2(isTrue) {
              if (this.video) {
                this.video.loop = isTrue;
              }
            }
          }, {
            key: "muted",
            get: function get5() {
              if (this.video) {
                return this.video.muted;
              } else {
                return false;
              }
            },
            set: function set2(isTrue) {
              if (this.video) {
                this.video.muted = isTrue;
              }
            }
          }, {
            key: "networkState",
            get: function get5() {
              var status = [{
                en: "NETWORK_EMPTY",
                cn: "\u97F3\u9891/\u89C6\u9891\u5C1A\u672A\u521D\u59CB\u5316"
              }, {
                en: "NETWORK_IDLE",
                cn: "\u97F3\u9891/\u89C6\u9891\u662F\u6D3B\u52A8\u7684\u4E14\u5DF2\u9009\u53D6\u8D44\u6E90\uFF0C\u4F46\u5E76\u672A\u4F7F\u7528\u7F51\u7EDC"
              }, {
                en: "NETWORK_LOADING",
                cn: "\u6D4F\u89C8\u5668\u6B63\u5728\u4E0B\u8F7D\u6570\u636E"
              }, {
                en: "NETWORK_NO_SOURCE",
                cn: "\u672A\u627E\u5230\u97F3\u9891/\u89C6\u9891\u6765\u6E90"
              }];
              return this.lang ? this.lang[status[this.video.networkState].en] : status[this.video.networkState].en;
            }
          }, {
            key: "paused",
            get: function get5() {
              return (0, _util.hasClass)(this.root, "xgplayer-pause");
            }
          }, {
            key: "playbackRate",
            get: function get5() {
              if (this.video) {
                return this.video.playbackRate;
              } else {
                return 1;
              }
            },
            set: function set2(rate) {
              if (this.video) {
                this.video.playbackRate = rate;
              }
            }
          }, {
            key: "played",
            get: function get5() {
              if (this.video) {
                return this.video.played;
              } else {
                return void 0;
              }
            }
          }, {
            key: "preload",
            get: function get5() {
              if (this.video) {
                return this.video.preload;
              } else {
                return false;
              }
            },
            set: function set2(isTrue) {
              if (this.video) {
                this.video.preload = isTrue;
              }
            }
          }, {
            key: "readyState",
            get: function get5() {
              var status = [{
                en: "HAVE_NOTHING",
                cn: "\u6CA1\u6709\u5173\u4E8E\u97F3\u9891/\u89C6\u9891\u662F\u5426\u5C31\u7EEA\u7684\u4FE1\u606F"
              }, {
                en: "HAVE_METADATA",
                cn: "\u5173\u4E8E\u97F3\u9891/\u89C6\u9891\u5C31\u7EEA\u7684\u5143\u6570\u636E"
              }, {
                en: "HAVE_CURRENT_DATA",
                cn: "\u5173\u4E8E\u5F53\u524D\u64AD\u653E\u4F4D\u7F6E\u7684\u6570\u636E\u662F\u53EF\u7528\u7684\uFF0C\u4F46\u6CA1\u6709\u8DB3\u591F\u7684\u6570\u636E\u6765\u64AD\u653E\u4E0B\u4E00\u5E27/\u6BEB\u79D2"
              }, {
                en: "HAVE_FUTURE_DATA",
                cn: "\u5F53\u524D\u53CA\u81F3\u5C11\u4E0B\u4E00\u5E27\u7684\u6570\u636E\u662F\u53EF\u7528\u7684"
              }, {
                en: "HAVE_ENOUGH_DATA",
                cn: "\u53EF\u7528\u6570\u636E\u8DB3\u4EE5\u5F00\u59CB\u64AD\u653E"
              }];
              return this.lang ? this.lang[status[this.video.readyState].en] : status[this.video.readyState];
            }
          }, {
            key: "seekable",
            get: function get5() {
              if (this.video) {
                return this.video.seekable;
              } else {
                return false;
              }
            }
          }, {
            key: "seeking",
            get: function get5() {
              if (this.video) {
                return this.video.seeking;
              } else {
                return false;
              }
            }
          }, {
            key: "src",
            get: function get5() {
              if (this.video) {
                return this.video.src;
              } else {
                return void 0;
              }
            },
            set: function set2(url) {
              if (!(0, _util.hasClass)(this.root, "xgplayer-ended")) {
                this.emit("urlchange", this.video.src);
              }
              (0, _util.removeClass)(this.root, "xgplayer-ended xgplayer-is-replay xgplayer-is-error");
              this.video.pause();
              this.emit("pause");
              this.video.src = url;
              this.emit("srcChange");
            }
          }, {
            key: "poster",
            set: function set2(posterUrl) {
              var poster2 = (0, _util.findDom)(this.root, ".xgplayer-poster");
              if (poster2) {
                poster2.style.backgroundImage = "url(" + posterUrl + ")";
              }
            }
          }, {
            key: "volume",
            get: function get5() {
              if (this.video) {
                return this.video.volume;
              } else {
                return 1;
              }
            },
            set: function set2(vol) {
              if (this.video) {
                this.video.volume = vol;
              }
            }
          }, {
            key: "fullscreen",
            get: function get5() {
              return (0, _util.hasClass)(this.root, "xgplayer-is-fullscreen") || (0, _util.hasClass)(this.root, "xgplayer-fullscreen-active");
            }
          }, {
            key: "bullet",
            get: function get5() {
              return (0, _util.findDom)(this.root, "xg-danmu") ? (0, _util.hasClass)((0, _util.findDom)(this.root, "xg-danmu"), "xgplayer-has-danmu") : false;
            }
          }, {
            key: "textTrack",
            get: function get5() {
              return (0, _util.hasClass)(this.root, "xgplayer-is-textTrack");
            }
          }, {
            key: "pip",
            get: function get5() {
              return (0, _util.hasClass)(this.root, "xgplayer-pip-active");
            }
          }, {
            key: "isMiniPlayer",
            get: function get5() {
              return (0, _util.hasClass)(this.root, "xgplayer-miniplayer-active");
            }
          }]);
          return Proxy2;
        }();
        exports2.default = Proxy;
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var d = __webpack_require__(13), callable = __webpack_require__(30), apply = Function.prototype.apply, call = Function.prototype.call, create = Object.create, defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, hasOwnProperty2 = Object.prototype.hasOwnProperty, descriptor = { configurable: true, enumerable: false, writable: true }, on, once, off, emit, methods, descriptors, base;
        on = function(type, listener) {
          var data;
          callable(listener);
          if (!hasOwnProperty2.call(this, "__ee__")) {
            data = descriptor.value = create(null);
            defineProperty(this, "__ee__", descriptor);
            descriptor.value = null;
          } else {
            data = this.__ee__;
          }
          if (!data[type])
            data[type] = listener;
          else if (typeof data[type] === "object")
            data[type].push(listener);
          else
            data[type] = [data[type], listener];
          return this;
        };
        once = function(type, listener) {
          var once2, self2;
          callable(listener);
          self2 = this;
          on.call(this, type, once2 = function() {
            off.call(self2, type, once2);
            apply.call(listener, this, arguments);
          });
          once2.__eeOnceListener__ = listener;
          return this;
        };
        off = function(type, listener) {
          var data, listeners, candidate, i;
          callable(listener);
          if (!hasOwnProperty2.call(this, "__ee__"))
            return this;
          data = this.__ee__;
          if (!data[type])
            return this;
          listeners = data[type];
          if (typeof listeners === "object") {
            for (i = 0; candidate = listeners[i]; ++i) {
              if (candidate === listener || candidate.__eeOnceListener__ === listener) {
                if (listeners.length === 2)
                  data[type] = listeners[i ? 0 : 1];
                else
                  listeners.splice(i, 1);
              }
            }
          } else {
            if (listeners === listener || listeners.__eeOnceListener__ === listener) {
              delete data[type];
            }
          }
          return this;
        };
        emit = function(type) {
          var i, l, listener, listeners, args;
          if (!hasOwnProperty2.call(this, "__ee__"))
            return;
          listeners = this.__ee__[type];
          if (!listeners)
            return;
          if (typeof listeners === "object") {
            l = arguments.length;
            args = new Array(l - 1);
            for (i = 1; i < l; ++i)
              args[i - 1] = arguments[i];
            listeners = listeners.slice();
            for (i = 0; listener = listeners[i]; ++i) {
              apply.call(listener, this, args);
            }
          } else {
            switch (arguments.length) {
              case 1:
                call.call(listeners, this);
                break;
              case 2:
                call.call(listeners, this, arguments[1]);
                break;
              case 3:
                call.call(listeners, this, arguments[1], arguments[2]);
                break;
              default:
                l = arguments.length;
                args = new Array(l - 1);
                for (i = 1; i < l; ++i) {
                  args[i - 1] = arguments[i];
                }
                apply.call(listeners, this, args);
            }
          }
        };
        methods = {
          on,
          once,
          off,
          emit
        };
        descriptors = {
          on: d(on),
          once: d(once),
          off: d(off),
          emit: d(emit)
        };
        base = defineProperties({}, descriptors);
        module2.exports = exports2 = function(o) {
          return o == null ? create(base) : defineProperties(Object(o), descriptors);
        };
        exports2.methods = methods;
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(6), isPlainFunction = __webpack_require__(14), assign = __webpack_require__(18), normalizeOpts = __webpack_require__(26), contains = __webpack_require__(27);
        var d = module2.exports = function(dscr, value) {
          var c, e, w, options, desc;
          if (arguments.length < 2 || typeof dscr !== "string") {
            options = value;
            value = dscr;
            dscr = null;
          } else {
            options = arguments[2];
          }
          if (isValue(dscr)) {
            c = contains.call(dscr, "c");
            e = contains.call(dscr, "e");
            w = contains.call(dscr, "w");
          } else {
            c = w = true;
            e = false;
          }
          desc = { value, configurable: c, enumerable: e, writable: w };
          return !options ? desc : assign(normalizeOpts(options), desc);
        };
        d.gs = function(dscr, get5, set2) {
          var c, e, options, desc;
          if (typeof dscr !== "string") {
            options = set2;
            set2 = get5;
            get5 = dscr;
            dscr = null;
          } else {
            options = arguments[3];
          }
          if (!isValue(get5)) {
            get5 = void 0;
          } else if (!isPlainFunction(get5)) {
            options = get5;
            get5 = set2 = void 0;
          } else if (!isValue(set2)) {
            set2 = void 0;
          } else if (!isPlainFunction(set2)) {
            options = set2;
            set2 = void 0;
          }
          if (isValue(dscr)) {
            c = contains.call(dscr, "c");
            e = contains.call(dscr, "e");
          } else {
            c = true;
            e = false;
          }
          desc = { get: get5, set: set2, configurable: c, enumerable: e };
          return !options ? desc : assign(normalizeOpts(options), desc);
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isFunction = __webpack_require__(15);
        var classRe = /^\s*class[\s{/}]/, functionToString = Function.prototype.toString;
        module2.exports = function(value) {
          if (!isFunction(value))
            return false;
          if (classRe.test(functionToString.call(value)))
            return false;
          return true;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isPrototype = __webpack_require__(16);
        module2.exports = function(value) {
          if (typeof value !== "function")
            return false;
          if (!hasOwnProperty.call(value, "length"))
            return false;
          try {
            if (typeof value.length !== "number")
              return false;
            if (typeof value.call !== "function")
              return false;
            if (typeof value.apply !== "function")
              return false;
          } catch (error2) {
            return false;
          }
          return !isPrototype(value);
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isObject = __webpack_require__(17);
        module2.exports = function(value) {
          if (!isObject(value))
            return false;
          try {
            if (!value.constructor)
              return false;
            return value.constructor.prototype === value;
          } catch (error2) {
            return false;
          }
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(6);
        var possibleTypes = { "object": true, "function": true, "undefined": true };
        module2.exports = function(value) {
          if (!isValue(value))
            return false;
          return hasOwnProperty.call(possibleTypes, typeof value);
        };
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = __webpack_require__(19)() ? Object.assign : __webpack_require__(20);
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = function() {
          var assign = Object.assign, obj;
          if (typeof assign !== "function")
            return false;
          obj = { foo: "raz" };
          assign(obj, { bar: "dwa" }, { trzy: "trzy" });
          return obj.foo + obj.bar + obj.trzy === "razdwatrzy";
        };
      },
      function(module2, exports2, __webpack_require__) {
        var keys = __webpack_require__(21), value = __webpack_require__(25), max = Math.max;
        module2.exports = function(dest, src) {
          var error2, i, length = max(arguments.length, 2), assign;
          dest = Object(value(dest));
          assign = function(key) {
            try {
              dest[key] = src[key];
            } catch (e) {
              if (!error2)
                error2 = e;
            }
          };
          for (i = 1; i < length; ++i) {
            src = arguments[i];
            keys(src).forEach(assign);
          }
          if (error2 !== void 0)
            throw error2;
          return dest;
        };
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = __webpack_require__(22)() ? Object.keys : __webpack_require__(23);
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = function() {
          try {
            Object.keys("primitive");
            return true;
          } catch (e) {
            return false;
          }
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(3);
        var keys = Object.keys;
        module2.exports = function(object) {
          return keys(isValue(object) ? Object(object) : object);
        };
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = function() {
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(3);
        module2.exports = function(value) {
          if (!isValue(value))
            throw new TypeError("Cannot use null or undefined");
          return value;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(3);
        var forEach = Array.prototype.forEach, create = Object.create;
        var process = function(src, obj) {
          var key;
          for (key in src)
            obj[key] = src[key];
        };
        module2.exports = function(opts1) {
          var result = create(null);
          forEach.call(arguments, function(options) {
            if (!isValue(options))
              return;
            process(Object(options), result);
          });
          return result;
        };
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = __webpack_require__(28)() ? String.prototype.contains : __webpack_require__(29);
      },
      function(module2, exports2, __webpack_require__) {
        var str = "razdwatrzy";
        module2.exports = function() {
          if (typeof str.contains !== "function")
            return false;
          return str.contains("dwa") === true && str.contains("foo") === false;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var indexOf = String.prototype.indexOf;
        module2.exports = function(searchString) {
          return indexOf.call(this, searchString, arguments[1]) > -1;
        };
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = function(fn) {
          if (typeof fn !== "function")
            throw new TypeError(fn + " is not a function");
          return fn;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var value = __webpack_require__(32), hasOwnProperty2 = Object.prototype.hasOwnProperty;
        module2.exports = function(emitter) {
          var type = arguments[1], data;
          value(emitter);
          if (type !== void 0) {
            data = hasOwnProperty2.call(emitter, "__ee__") && emitter.__ee__;
            if (!data)
              return;
            if (data[type])
              delete data[type];
            return;
          }
          if (hasOwnProperty2.call(emitter, "__ee__"))
            delete emitter.__ee__;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isObject = __webpack_require__(33);
        module2.exports = function(value) {
          if (!isObject(value))
            throw new TypeError(value + " is not an Object");
          return value;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var isValue = __webpack_require__(3);
        var map = { function: true, object: true };
        module2.exports = function(value) {
          return isValue(value) && map[typeof value] || false;
        };
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(35);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default{background:#000;width:100%;height:100%;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.xgplayer-skin-default *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer-skin-default.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.xgplayer-skin-default.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-default.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-default video{width:100%;height:100%;outline:none}.xgplayer-skin-default .xgplayer-none{display:none}@-webkit-keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingRotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-default .xgplayer-controls{display:-webkit-flex;display:-moz-box;display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.37),rgba(0,0,0,.75),rgba(0,0,0,.75));z-index:10}.xgplayer-skin-default.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-progress,.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-default.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-default.xgplayer-nostart .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-default .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;-webkit-order:1;-moz-box-ordinal-group:2;order:1}.xgplayer-skin-default .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-default .xgplayer-icon svg{position:absolute}.xgplayer-skin-default .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-default.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-default .xgplayer-screen-container{display:block;width:100%}", ""]);
      },
      function(module2, exports2) {
        module2.exports = function(css) {
          var location2 = typeof window !== "undefined" && window.location;
          if (!location2) {
            throw new Error("fixUrls requires window.location");
          }
          if (!css || typeof css !== "string") {
            return css;
          }
          var baseUrl = location2.protocol + "//" + location2.host;
          var currentDir = baseUrl + location2.pathname.replace(/\/[^\/]*$/, "/");
          var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
            var unquotedOrigUrl = origUrl.trim().replace(/^"(.*)"$/, function(o, $1) {
              return $1;
            }).replace(/^'(.*)'$/, function(o, $1) {
              return $1;
            });
            if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) {
              return fullMatch;
            }
            var newUrl;
            if (unquotedOrigUrl.indexOf("//") === 0) {
              newUrl = unquotedOrigUrl;
            } else if (unquotedOrigUrl.indexOf("/") === 0) {
              newUrl = baseUrl + unquotedOrigUrl;
            } else {
              newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, "");
            }
            return "url(" + JSON.stringify(newUrl) + ")";
          });
          return fixedCss;
        };
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var mobile = function mobile2() {
          var player = this;
          var root = player.root;
          var clk = 0;
          var _click_ = void 0;
          var clickedTime = {
            first: "",
            second: ""
          };
          player.onElementTouchend = function(e, element) {
            if (!this.config.closeVideoPreventDefault) {
              e.preventDefault();
            }
            if (!this.config.closeVideoStopPropagation) {
              e.stopPropagation();
            }
            var player2 = this;
            if ((0, _util.hasClass)(root, "xgplayer-inactive")) {
              player2.emit("focus");
            } else {
              player2.emit("blur");
            }
            if (!player2.config.closeVideoTouch && !player2.isTouchMove) {
              var onTouch = function onTouch2() {
                _click_ = setTimeout(function() {
                  if ((0, _util.hasClass)(player2.root, "xgplayer-nostart")) {
                    return false;
                  } else if (!player2.ended) {
                    if (player2.paused) {
                      var playPromise = player2.play();
                      if (playPromise !== void 0 && playPromise) {
                        playPromise.catch(function(err) {
                        });
                      }
                    } else {
                      player2.pause();
                    }
                  }
                  clk = 0;
                }, 200);
              };
              if (!player2.config.closeVideoClick) {
                clk++;
                if (_click_) {
                  clearTimeout(_click_);
                }
                if (clk === 1) {
                  if (player2.config.enableVideoDbltouch) {
                    clickedTime.first = new Date();
                  } else {
                    onTouch();
                  }
                } else if (clk === 2) {
                  if (player2.config.enableVideoDbltouch) {
                    clickedTime.second = new Date();
                    if (Math.abs(clickedTime.first - clickedTime.second) < 400) {
                      onTouch();
                    } else {
                      clickedTime.first = new Date();
                      clk = 1;
                    }
                  } else {
                    clk = 0;
                  }
                } else {
                  clk = 0;
                }
              }
            }
          };
          function onReady(e) {
            player.video.addEventListener("touchend", function(e2) {
              player.onElementTouchend(e2, player.video);
            });
            player.video.addEventListener("touchstart", function() {
              player.isTouchMove = false;
            });
            player.video.addEventListener("touchmove", function() {
              player.isTouchMove = true;
            });
            if (player.config.autoplay) {
              player.start();
            }
          }
          player.once("ready", onReady);
          function onDestroy() {
            player.off("ready", onReady);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "mobile",
          method: mobile
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var pc = function pc2() {
          var player = this;
          if (!player.controls || !player.video)
            return;
          var controls = player.controls;
          var root = player.root;
          var clk = 0;
          var _click_ = void 0;
          player.onElementClick = function(e, element) {
            if (!this.config.closeVideoPreventDefault) {
              e.preventDefault();
            }
            if (!this.config.closeVideoStopPropagation) {
              e.stopPropagation();
            }
            var player2 = this;
            if (!player2.config.closeVideoClick) {
              clk++;
              if (_click_) {
                clearTimeout(_click_);
              }
              if (clk === 1) {
                _click_ = setTimeout(function() {
                  if ((0, _util.hasClass)(player2.root, "xgplayer-nostart")) {
                    return false;
                  } else if (!player2.ended) {
                    if (player2.paused) {
                      var playPromise = player2.play();
                      if (playPromise !== void 0 && playPromise) {
                        playPromise.catch(function(err) {
                        });
                      }
                    } else {
                      player2.pause();
                    }
                  }
                  clk = 0;
                }, 200);
              } else {
                clk = 0;
              }
            }
          };
          player.video.addEventListener("click", function(e) {
            player.onElementClick(e, player.video);
          }, false);
          player.onElementDblclick = function(e, element) {
            if (!this.config.closeVideoPreventDefault) {
              e.preventDefault();
            }
            if (!this.config.closeVideoStopPropagation) {
              e.stopPropagation();
            }
            var player2 = this;
            if (!player2.config.closeVideoDblclick) {
              var fullscreen2 = controls.querySelector(".xgplayer-fullscreen");
              if (fullscreen2) {
                var _clk = void 0;
                if (document.createEvent) {
                  _clk = document.createEvent("Event");
                  _clk.initEvent("click", true, true);
                } else {
                  _clk = new Event("click");
                }
                fullscreen2.dispatchEvent(_clk);
              }
            }
          };
          player.video.addEventListener("dblclick", function(e) {
            player.onElementDblclick(e, player.video);
          }, false);
          function onMouseEnter() {
            clearTimeout(player.leavePlayerTimer);
            player.emit("focus", player);
          }
          root.addEventListener("mouseenter", onMouseEnter);
          function onMouseLeave() {
            if (!player.config.closePlayerBlur) {
              player.leavePlayerTimer = setTimeout(function() {
                player.emit("blur", player);
              }, player.config.leavePlayerTime || 0);
            }
          }
          root.addEventListener("mouseleave", onMouseLeave);
          function onControlMouseEnter(e) {
            if (player.userTimer) {
              clearTimeout(player.userTimer);
            }
          }
          controls.addEventListener("mouseenter", onControlMouseEnter);
          function onControlMouseLeave(e) {
            if (!player.config.closeControlsBlur) {
              player.emit("focus", player);
            }
          }
          controls.addEventListener("mouseleave", onControlMouseLeave);
          function onControlClick(e) {
            e.preventDefault();
            e.stopPropagation();
          }
          controls.addEventListener("click", onControlClick);
          function onReady(e) {
            if (player.config.autoplay) {
              player.start();
            }
          }
          player.once("ready", onReady);
          function onDestroy() {
            root.removeEventListener("mouseenter", onMouseEnter);
            root.removeEventListener("mouseleave", onMouseLeave);
            player.off("ready", onReady);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "pc",
          method: pc
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var start2 = function start3() {
          var player = this;
          var root = player.root;
          function onCanPlay() {
            player.off("canplay", onCanPlay);
            var playPromise = player.play();
            if (playPromise !== void 0 && playPromise) {
              playPromise.catch(function(err) {
              });
            }
          }
          function onStartBtnClick() {
            if ((0, _util.hasClass)(root, "xgplayer-nostart")) {
              (0, _util.removeClass)(root, "xgplayer-nostart");
              (0, _util.addClass)(root, "xgplayer-is-enter");
              if (typeof root.contains === "function") {
                if (player.video && player.video.nodeType === 1 && !root.contains(player.video) || player.video && player.video.nodeType !== 1 && player.video.mediaSource === void 0) {
                  player.once("canplay", onCanPlay);
                  player.start();
                } else {
                  onCanPlay();
                }
              } else {
                if (player.video && player.video.nodeType === 1 && !root.querySelector(this.videoConfig.mediaType) || player.video && player.video.nodeType !== 1 && player.video.mediaSource === void 0) {
                  player.once("canplay", onCanPlay);
                  player.start();
                } else {
                  onCanPlay();
                }
              }
            } else {
              if (player.paused) {
                (0, _util.removeClass)(root, "xgplayer-nostart xgplayer-isloading");
                setTimeout(function() {
                  var playPromise = player.play();
                  if (playPromise !== void 0 && playPromise) {
                    playPromise.catch(function(err) {
                    });
                  }
                }, 10);
              }
            }
          }
          player.on("startBtnClick", onStartBtnClick);
          function onDestroy() {
            player.off("startBtnClick", onStartBtnClick);
            player.off("canplay", onCanPlay);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "start",
          method: start2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _startPlay = __webpack_require__(41);
        var _startPlay2 = _interopRequireDefault2(_startPlay);
        var _startPause = __webpack_require__(42);
        var _startPause2 = _interopRequireDefault2(_startPause);
        __webpack_require__(43);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_start2 = function s_start3() {
          var player = this;
          var root = player.root;
          var btn = (0, _util.createDom)("xg-start", '<div class="xgplayer-icon-play">' + _startPlay2.default + '</div>\n                                      <div class="xgplayer-icon-pause">' + _startPause2.default + "</div>", {}, "xgplayer-start");
          function onPlayerReady(player2) {
            (0, _util.addClass)(player2.root, "xgplayer-skin-default");
            if (player2.config) {
              player2.config.autoplay && !(0, _util.isWeiXin)() && !(0, _util.isUc)() && (0, _util.addClass)(player2.root, "xgplayer-is-enter");
              if (player2.config.lang && player2.config.lang === "en") {
                (0, _util.addClass)(player2.root, "xgplayer-lang-is-en");
              } else if (player2.config.lang === "jp") {
                (0, _util.addClass)(player2.root, "xgplayer-lang-is-jp");
              }
              if (!player2.config.enableContextmenu) {
                player2.video.addEventListener("contextmenu", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                });
              }
            }
          }
          if (player.config && player.config.hideStartBtn) {
            (0, _util.addClass)(root, "xgplayer-start-hide");
          }
          if (player.isReady) {
            root.appendChild(btn);
            onPlayerReady(player);
          } else {
            player.once("ready", function() {
              root.appendChild(btn);
              onPlayerReady(player);
            });
          }
          player.once("autoplay was prevented", function() {
            (0, _util.removeClass)(player.root, "xgplayer-is-enter");
            (0, _util.addClass)(player.root, "xgplayer-nostart");
          });
          player.once("canplay", function() {
            (0, _util.removeClass)(player.root, "xgplayer-is-enter");
          });
          btn.onclick = function(e) {
            e.preventDefault();
            e.stopPropagation();
            player.userGestureTrigEvent("startBtnClick");
          };
        };
        exports2.default = {
          name: "s_start",
          method: s_start2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="70" height="70" viewBox="0 0 70 70">\n  <path transform="translate(15,15) scale(0.04,0.04)" d="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="70" height="70" viewBox="0 0 70 70">\n  <path transform="translate(15,15) scale(0.04 0.04)" d="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(44);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;background:rgba(0,0,0,.38);overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-default .xgplayer-start div{position:absolute}.xgplayer-skin-default .xgplayer-start div svg{fill:hsla(0,0%,100%,.7)}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-start:hover{opacity:.85}.xgplayer-skin-default.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start,.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-start-hide .xgplayer-start{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start,.xgplayer-skin-default.xgplayer-pause .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-default.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var fullscreen2 = function fullscreen3() {
          var player = this;
          var root = player.root;
          function onFullscreenBtnClick() {
            if (player.config.rotateFullscreen) {
              if ((0, _util.hasClass)(root, "xgplayer-rotate-fullscreen")) {
                player.exitRotateFullscreen();
              } else {
                player.getRotateFullscreen();
              }
            } else {
              if ((0, _util.hasClass)(root, "xgplayer-is-fullscreen")) {
                player.exitFullscreen(root);
              } else {
                player.getFullscreen(root);
              }
            }
          }
          player.on("fullscreenBtnClick", onFullscreenBtnClick);
          function onFullscreenChange() {
            var fullscreenEl = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;
            if (fullscreenEl && fullscreenEl === root) {
              (0, _util.addClass)(root, "xgplayer-is-fullscreen");
              player.emit("requestFullscreen");
            } else if ((0, _util.hasClass)(root, "xgplayer-is-fullscreen")) {
              (0, _util.removeClass)(root, "xgplayer-is-fullscreen");
              player.emit("exitFullscreen");
            }
            if (player.danmu && typeof player.danmu.resize === "function") {
              player.danmu.resize();
            }
          }
          ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"].forEach(function(item) {
            document.addEventListener(item, onFullscreenChange);
          });
          player.video.addEventListener("webkitbeginfullscreen", function() {
            (0, _util.addClass)(root, "xgplayer-is-fullscreen");
            player.emit("requestFullscreen");
          });
          player.video.addEventListener("webkitendfullscreen", function() {
            (0, _util.removeClass)(root, "xgplayer-is-fullscreen");
            player.emit("exitFullscreen");
          });
          function onWebkitpresentationmodechanged(e) {
            var mode = player.video.webkitPresentationMode;
            if (mode !== _util.PresentationMode.FULLSCREEN) {
              (0, _util.removeClass)(root, "xgplayer-is-fullscreen");
              player.emit("exitFullscreen");
            }
          }
          (0, _util.checkWebkitSetPresentationMode)(player.video) && player.video.addEventListener("webkitpresentationmodechanged", onWebkitpresentationmodechanged);
          function onDestroy() {
            player.off("fullscreenBtnClick", onFullscreenBtnClick);
            ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"].forEach(function(item) {
              document.removeEventListener(item, onFullscreenChange);
            });
            (0, _util.checkWebkitSetPresentationMode)(player.video) && player.video.removeEventListener("webkitpresentationmodechanged", onWebkitpresentationmodechanged);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.getFullscreen = function(el) {
            var player2 = this;
            if (el.requestFullscreen) {
              var fullscreenPromise = el.requestFullscreen();
              if (fullscreenPromise) {
                fullscreenPromise.catch(function() {
                  player2.emit("fullscreen error");
                });
              }
            } else if (el.mozRequestFullScreen) {
              el.mozRequestFullScreen();
            } else if (el.webkitRequestFullscreen) {
              el.webkitRequestFullscreen(window.Element.ALLOW_KEYBOARD_INPUT);
            } else if (player2.video.webkitSupportsFullscreen) {
              player2.video.webkitEnterFullscreen();
            } else if (el.msRequestFullscreen) {
              el.msRequestFullscreen();
            } else {
              (0, _util.addClass)(el, "xgplayer-is-cssfullscreen");
            }
          };
          player.exitFullscreen = function(el) {
            if (document.exitFullscreen) {
              document.exitFullscreen();
            } else if (document.webkitExitFullscreen) {
              document.webkitExitFullscreen();
            } else if (document.mozCancelFullScreen) {
              document.mozCancelFullScreen();
            } else if (document.msExitFullscreen) {
              document.msExitFullscreen();
            }
            (0, _util.removeClass)(el, "xgplayer-is-cssfullscreen");
          };
          player.getRotateFullscreen = function() {
            var player2 = this;
            document.documentElement.style.width = "100%";
            document.documentElement.style.height = "100%";
            if (player2.config.fluid) {
              player2.root.style["padding-top"] = "";
              player2.root.style["max-width"] = "unset";
            }
            if (player2.root && !(0, _util.hasClass)(player2.root, "xgplayer-rotate-fullscreen")) {
              (0, _util.addClass)(player2.root, "xgplayer-rotate-fullscreen");
            }
            player2.emit("getRotateFullscreen");
          };
          player.exitRotateFullscreen = function() {
            var player2 = this;
            document.documentElement.style.width = "unset";
            document.documentElement.style.height = "unset";
            if (player2.config.fluid) {
              player2.root.style["width"] = "100%";
              player2.root.style["height"] = "0";
              player2.root.style["padding-top"] = player2.config.height * 100 / player2.config.width + "%";
              player2.root.style["max-width"] = "100%";
            }
            if (player2.root && (0, _util.hasClass)(player2.root, "xgplayer-rotate-fullscreen")) {
              (0, _util.removeClass)(player2.root, "xgplayer-rotate-fullscreen");
            }
            player2.emit("exitRotateFullscreen");
          };
        };
        exports2.default = {
          name: "fullscreen",
          method: fullscreen2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var play2 = function play3() {
          var player = this;
          function onPlayBtnClick() {
            if (!player.config.allowPlayAfterEnded && player.ended) {
              return;
            }
            if ((0, _util.hasClass)(player.root, "xgplayer-nostart")) {
              player.start();
            }
            if (player.paused) {
              var playPromise = player.play();
              if (playPromise !== void 0 && playPromise) {
                playPromise.catch(function(err) {
                });
              }
            } else {
              player.pause();
            }
          }
          player.on("playBtnClick", onPlayBtnClick);
          function onDestroy() {
            player.off("playBtnClick", onPlayBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "play",
          method: play2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var replay2 = function replay3() {
          var player = this;
          var root = player.root;
          function onReplayBtnClick() {
            (0, _util.removeClass)(root, "xgplayer-is-replay");
            player.replay();
          }
          player.on("replayBtnClick", onReplayBtnClick);
          function onEnded() {
            if (!player.config.loop) {
              (0, _util.addClass)(root, "xgplayer-is-replay");
            }
          }
          player.on("ended", onEnded);
          function onDestroy() {
            player.off("replayBtnClick", onReplayBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "replay",
          method: replay2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _play = __webpack_require__(49);
        var _play2 = _interopRequireDefault2(_play);
        var _pause = __webpack_require__(50);
        var _pause2 = _interopRequireDefault2(_pause);
        __webpack_require__(51);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_play2 = function s_play3() {
          var player = this;
          var playBtn = player.config.playBtn ? player.config.playBtn : {};
          var btn = void 0;
          if (playBtn.type === "img") {
            btn = (0, _util.createImgBtn)("play", playBtn.url.play, playBtn.width, playBtn.height);
          } else {
            btn = (0, _util.createDom)("xg-play", '<xg-icon class="xgplayer-icon">\n                                      <div class="xgplayer-icon-play">' + _play2.default + '</div>\n                                      <div class="xgplayer-icon-pause">' + _pause2.default + "</div>\n                                     </xg-icon>", {}, "xgplayer-play");
          }
          var tipsText = {};
          tipsText.play = player.lang.PLAY_TIPS;
          tipsText.pause = player.lang.PAUSE_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-play">' + tipsText.play + '</span>\n                                        <span class="xgplayer-tip-pause">' + tipsText.pause + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            if (player.controls) {
              player.controls.appendChild(btn);
            }
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("playBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_play",
          method: s_play2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="translate(2,2) scale(0.0320625 0.0320625)" d="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="translate(2,2) scale(0.0320625 0.0320625)" d="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(52);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-play,.xgplayer-skin-default .xgplayer-play-img{width:40px;position:relative;-webkit-order:0;-moz-box-ordinal-group:1;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-play .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-play .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-default .xgplayer-play-img:hover,.xgplayer-skin-default .xgplayer-play:hover{opacity:.85}.xgplayer-skin-default .xgplayer-play-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-play:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-default.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-default.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-default.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause{display:none}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(54);
        var s_poster = function s_poster2() {
          var player = this;
          var root = player.root;
          if (!player.config.poster) {
            return;
          }
          var poster2 = (0, _util.createDom)("xg-poster", "", {}, "xgplayer-poster");
          poster2.style.backgroundImage = "url(" + player.config.poster + ")";
          root.appendChild(poster2);
        };
        exports2.default = {
          name: "s_poster",
          method: s_poster
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(55);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:50%}.xgplayer-skin-default.xgplayer-nostart .xgplayer-poster{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(57);
        var s_flex2 = function s_flex3() {
          var player = this;
          var playceholder = (0, _util.createDom)("xg-placeholder", "", {}, "xgplayer-placeholder");
          player.controls.appendChild(playceholder);
        };
        exports2.default = {
          name: "s_flex",
          method: s_flex2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(58);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-placeholder{-webkit-flex:1;-moz-box-flex:1;flex:1;-webkit-order:3;-moz-box-ordinal-group:4;order:3;display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _requestFull = __webpack_require__(60);
        var _requestFull2 = _interopRequireDefault2(_requestFull);
        var _exitFull = __webpack_require__(61);
        var _exitFull2 = _interopRequireDefault2(_exitFull);
        __webpack_require__(62);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_fullscreen2 = function s_fullscreen3() {
          var player = this;
          var fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {};
          var btn = void 0;
          if (fullscreenBtn.type === "img") {
            btn = (0, _util.createImgBtn)("fullscreen", fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height);
          } else {
            btn = (0, _util.createDom)("xg-fullscreen", '<xg-icon class="xgplayer-icon">\n                                             <div class="xgplayer-icon-requestfull">' + _requestFull2.default + '</div>\n                                             <div class="xgplayer-icon-exitfull">' + _exitFull2.default + "</div>\n                                           </xg-icon>", {}, "xgplayer-fullscreen");
          }
          var tipsText = {};
          tipsText.requestfull = player.lang.FULLSCREEN_TIPS;
          tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-requestfull">' + tipsText.requestfull + '</span>\n                                        <span class="xgplayer-tip-exitfull">' + tipsText.exitfull + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            if (player.controls) {
              player.controls.appendChild(btn);
            }
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("fullscreenBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_fullscreen",
          method: s_fullscreen2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.0320625 0.0320625)" d="M598 214h212v212h-84v-128h-128v-84zM726 726v-128h84v212h-212v-84h128zM214 426v-212h212v84h-128v128h-84zM298 598v128h128v84h-212v-212h84z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.0320625 0.0320625)" d="M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(63);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-fullscreen,.xgplayer-skin-default .xgplayer-fullscreen-img{position:relative;-webkit-order:13;-moz-box-ordinal-group:14;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-fullscreen-img:hover,.xgplayer-skin-default .xgplayer-fullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-fullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-fullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _loading = __webpack_require__(65);
        var _loading2 = _interopRequireDefault2(_loading);
        __webpack_require__(66);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_loading = function s_loading2() {
          var player = this;
          var root = player.root;
          var container = (0, _util.createDom)("xg-loading", "" + _loading2.default, {}, "xgplayer-loading");
          player.once("ready", function() {
            root.appendChild(container);
          });
        };
        exports2.default = {
          name: "s_loading",
          method: s_loading
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewbox="0 0 100 100">\n  <path d="M100,50A50,50,0,1,1,50,0"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(67);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-default .xgplayer-loading svg{border-radius:50%;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-animation:loadingRotate 1s linear infinite;animation:loadingRotate 1s linear infinite}.xgplayer-skin-default .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;-webkit-animation:loadingDashOffset 2s linear infinite;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-default.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-default.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-default.xgplayer-isloading .xgplayer-loading{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _sniffer = __webpack_require__(5);
        var _sniffer2 = _interopRequireDefault2(_sniffer);
        __webpack_require__(69);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var isRotateFullscreen2 = function isRotateFullscreen3(player) {
          return (0, _util.hasClass)(player.root, "xgplayer-rotate-fullscreen");
        };
        var s_progress2 = function s_progress3() {
          var player = this;
          var container = (0, _util.createDom)("xg-progress", '<xg-outer class="xgplayer-progress-outer">\n                                                   <xg-cache class="xgplayer-progress-cache"></xg-cache>\n                                                   <xg-played class="xgplayer-progress-played">\n                                                     <xg-progress-btn class="xgplayer-progress-btn"></xg-progress-btn>\n                                                     <xg-point class="xgplayer-progress-point xgplayer-tips"></xg-point>\n                                                     <xg-thumbnail class="xgplayer-progress-thumbnail xgplayer-tips"></xg-thumbnail>\n                                                   </xg-played>\n                                                 </xg-outer>', { tabindex: 1 }, "xgplayer-progress");
          var containerWidth = void 0;
          player.controls.appendChild(container);
          var progress2 = container.querySelector(".xgplayer-progress-played");
          var outer = container.querySelector(".xgplayer-progress-outer");
          var cache = container.querySelector(".xgplayer-progress-cache");
          var point = container.querySelector(".xgplayer-progress-point");
          var thumbnail = container.querySelector(".xgplayer-progress-thumbnail");
          player.dotArr = {};
          function dotEvent(dotItem, text) {
            dotItem.addEventListener("mouseenter", function(e) {
              if (text) {
                (0, _util.addClass)(dotItem, "xgplayer-progress-dot-show");
                (0, _util.addClass)(container, "xgplayer-progress-dot-active");
              }
            });
            dotItem.addEventListener("mouseleave", function(e) {
              if (text) {
                (0, _util.removeClass)(dotItem, "xgplayer-progress-dot-show");
                (0, _util.removeClass)(container, "xgplayer-progress-dot-active");
              }
            });
            dotItem.addEventListener("touchend", function(e) {
              e.stopPropagation();
              if (text) {
                if (!(0, _util.hasClass)(dotItem, "xgplayer-progress-dot-show")) {
                  Object.keys(player.dotArr).forEach(function(key) {
                    if (player.dotArr[key]) {
                      (0, _util.removeClass)(player.dotArr[key], "xgplayer-progress-dot-show");
                    }
                  });
                }
                (0, _util.toggleClass)(dotItem, "xgplayer-progress-dot-show");
                (0, _util.toggleClass)(container, "xgplayer-progress-dot-active");
              }
            });
          }
          function onCanplay() {
            if (player.config.progressDot && (0, _util.typeOf)(player.config.progressDot) === "Array") {
              player.config.progressDot.forEach(function(item) {
                if (item.time >= 0 && item.time <= player.duration) {
                  var dot = (0, _util.createDom)("xg-progress-dot", item.text ? '<span class="xgplayer-progress-tip">' + item.text + "</span>" : "", {}, "xgplayer-progress-dot");
                  dot.style.left = item.time / player.duration * 100 + "%";
                  if (item.duration >= 0) {
                    dot.style.width = Math.min(item.duration, player.duration - item.time) / player.duration * 100 + "%";
                  }
                  if (item.style) {
                    for (var k in item.style) {
                      dot.style[k] = item.style[k];
                    }
                  }
                  outer.appendChild(dot);
                  player.dotArr[item.time] = dot;
                  dotEvent(dot, item.text);
                }
              });
            }
          }
          player.once("canplay", onCanplay);
          player.addProgressDot = function(time2, text, duration, style) {
            if (player.dotArr[time2]) {
              return;
            }
            if (time2 >= 0 && time2 <= player.duration) {
              var dot = (0, _util.createDom)("xg-progress-dot", text ? '<span class="xgplayer-progress-tip">' + text + "</span>" : "", {}, "xgplayer-progress-dot");
              dot.style.left = time2 / player.duration * 100 + "%";
              if (duration >= 0) {
                dot.style.width = Math.min(duration, player.duration - time2) / player.duration * 100 + "%";
              }
              if (style) {
                for (var k in style) {
                  dot.style[k] = style[k];
                }
              }
              outer.appendChild(dot);
              player.dotArr[time2] = dot;
              dotEvent(dot, text);
            }
          };
          player.removeProgressDot = function(time2) {
            if (time2 >= 0 && time2 <= player.duration && player.dotArr[time2]) {
              var dot = player.dotArr[time2];
              dot.parentNode.removeChild(dot);
              dot = null;
              player.dotArr[time2] = null;
            }
          };
          player.removeAllProgressDot = function() {
            Object.keys(player.dotArr).forEach(function(key) {
              if (player.dotArr[key]) {
                var dot = player.dotArr[key];
                dot.parentNode.removeChild(dot);
                dot = null;
                player.dotArr[key] = null;
              }
            });
          };
          var tnailPicNum = 0;
          var tnailWidth = 0;
          var tnailHeight = 0;
          var tnailCol = 0;
          var tnailRow = 0;
          var interval = 0;
          var tnailUrls = [];
          var coverPreviewContainer = void 0, coverPreviewPoint = void 0;
          var onLoadedmetadata = function onLoadedmetadata2() {
            if (player.config.thumbnail) {
              if (player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {
                progress2.removeChild(thumbnail);
                coverPreviewContainer = (0, _util.createDom)("xg-coverpreview", '<xg-outer class="xgplayer-coverpreview-outer">\n            <xg-thumbnail class="xgplayer-coverpreview-thumbnail"></xg-thumbnail>\n            <xg-point class="xgplayer-coverpreview-point"></xg-point>\n          </xg-outer>', { tabindex: 1 }, "xgplayer-coverpreview");
                coverPreviewContainer.querySelector(".xgplayer-coverpreview-outer");
                coverPreviewPoint = coverPreviewContainer.querySelector(".xgplayer-coverpreview-point");
                thumbnail = coverPreviewContainer.querySelector(".xgplayer-coverpreview-thumbnail");
                player.root.appendChild(coverPreviewContainer);
              }
              tnailPicNum = player.config.thumbnail.pic_num;
              tnailWidth = player.config.thumbnail.width;
              tnailHeight = player.config.thumbnail.height;
              tnailCol = player.config.thumbnail.col;
              tnailRow = player.config.thumbnail.row;
              tnailUrls = player.config.thumbnail.urls;
              thumbnail.style.width = tnailWidth + "px";
              thumbnail.style.height = tnailHeight + "px";
            }
          };
          player.on("loadedmetadata", onLoadedmetadata);
          if (typeof player.config.disableSwipeHandler === "function" && typeof player.config.enableSwipeHandler === "function") {
            player.root.addEventListener("touchmove", function(e) {
              e.preventDefault();
              if (!player.disableSwipe) {
                player.disableSwipe = true;
                player.config.disableSwipeHandler.call(player);
              }
            });
            player.root.addEventListener("touchstart", function(e) {
              player.disableSwipe = true;
              player.config.disableSwipeHandler.call(player);
            });
            player.root.addEventListener("touchend", function(e) {
              player.disableSwipe = false;
              player.config.enableSwipeHandler.call(player);
            });
          }
          var events = ["touchstart", "mousedown"];
          if (_sniffer2.default.device === "mobile") {
            events.pop();
          }
          events.forEach(function(item) {
            container.addEventListener(item, function(e) {
              if (player.config.disableProgress)
                return;
              e.stopPropagation();
              (0, _util.event)(e);
              if (e._target === point || !player.config.allowSeekAfterEnded && player.ended) {
                return true;
              }
              container.focus();
              var _progress$getBounding = progress2.getBoundingClientRect(), left = _progress$getBounding.left;
              var isRotate = isRotateFullscreen2(player);
              if (isRotate) {
                left = progress2.getBoundingClientRect().top;
                containerWidth = container.getBoundingClientRect().height;
              } else {
                containerWidth = container.getBoundingClientRect().width;
                left = progress2.getBoundingClientRect().left;
              }
              var move = function move2(e2) {
                e2.stopPropagation();
                (0, _util.event)(e2);
                player.isProgressMoving = true;
                var w = (isRotate ? e2.clientY : e2.clientX) - left;
                if (w > containerWidth) {
                  w = containerWidth;
                }
                var now = w / containerWidth * player.duration;
                if (now < 0)
                  now = 0;
                if (player.config.allowSeekPlayed && Number(now).toFixed(1) > player.maxPlayedTime)
                  ;
                else {
                  progress2.style.width = w * 100 / containerWidth + "%";
                  if (player.videoConfig.mediaType === "video" && !player.dash && !player.config.closeMoveSeek) {
                    console.log("trigger touchmove");
                    player.currentTime = Number(now).toFixed(1);
                  } else {
                    var time2 = (0, _util.findDom)(player.controls, ".xgplayer-time");
                    if (time2) {
                      time2.innerHTML = '<span class="xgplayer-time-current">' + (0, _util.format)(now || 0) + "</span><span>" + (0, _util.format)(player.duration) + "</span>";
                    }
                  }
                }
                if (player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {
                  coverPreviewPoint.innerHTML = "<span>" + (0, _util.format)(now) + "</span> / " + (0, _util.format)(player.duration || 0);
                  interval = player.duration / tnailPicNum;
                  var index2 = Math.floor(now / interval);
                  thumbnail.style.backgroundImage = "url(" + tnailUrls[Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1] + ")";
                  var indexInPage = index2 + 1 - tnailCol * tnailRow * (Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1);
                  var tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1;
                  var tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1;
                  thumbnail.style["background-position"] = "-" + tnaiColIndex * tnailWidth + "px -" + tnaiRowIndex * tnailHeight + "px";
                  coverPreviewContainer.style.display = "block";
                }
                player.emit("focus");
              };
              var up = function up2(e2) {
                console.log("up event", e2);
                e2.stopPropagation();
                (0, _util.event)(e2);
                window.removeEventListener("mousemove", move);
                window.removeEventListener("touchmove", move, { passive: false });
                window.removeEventListener("mouseup", up2);
                window.removeEventListener("touchend", up2);
                if (_sniffer2.default.browser.indexOf("ie") < 0) {
                  container.blur();
                }
                if (!player.isProgressMoving || player.videoConfig && player.videoConfig.mediaType === "audio" || player.dash || player.config.closeMoveSeek) {
                  var w = (isRotate ? e2.clientY : e2.clientX) - left;
                  if (w > containerWidth) {
                    w = containerWidth;
                  }
                  var now = w / containerWidth * player.duration;
                  if (now < 0)
                    now = 0;
                  if (player.config.allowSeekPlayed && Number(now).toFixed(1) > player.maxPlayedTime)
                    ;
                  else {
                    progress2.style.width = w * 100 / containerWidth + "%";
                    console.warn("trigger touchup");
                    player.currentTime = Number(now).toFixed(1);
                  }
                }
                if (player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {
                  coverPreviewContainer.style.display = "none";
                }
                player.emit("focus");
                player.isProgressMoving = false;
              };
              window.addEventListener("touchmove", move, { passive: false });
              window.addEventListener("touchend", up);
              window.addEventListener("mousemove", move);
              window.addEventListener("mouseup", up);
              return true;
            });
          });
          container.addEventListener("mouseenter", function(e) {
            if (!player.config.allowSeekAfterEnded && player.ended) {
              return true;
            }
            var isRotate = isRotateFullscreen2(player);
            var containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left;
            var containerWidth2 = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width;
            var compute = function compute2(e2) {
              var now = ((isRotate ? e2.clientY : e2.clientX) - containerLeft) / containerWidth2 * player.duration;
              now = now < 0 ? 0 : now;
              point.textContent = (0, _util.format)(now);
              var pointWidth = point.getBoundingClientRect().width;
              if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {
                interval = player.duration / tnailPicNum;
                var index2 = Math.floor(now / interval);
                thumbnail.style.backgroundImage = "url(" + tnailUrls[Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1] + ")";
                var indexInPage = index2 + 1 - tnailCol * tnailRow * (Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1);
                var tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1;
                var tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1;
                thumbnail.style["background-position"] = "-" + tnaiColIndex * tnailWidth + "px -" + tnaiRowIndex * tnailHeight + "px";
                var left = (isRotate ? e2.clientY : e2.clientX) - containerLeft - tnailWidth / 2;
                left = left > 0 ? left : 0;
                left = left < containerWidth2 - tnailWidth ? left : containerWidth2 - tnailWidth;
                thumbnail.style.left = left + "px";
                thumbnail.style.top = -10 - tnailHeight + "px";
                thumbnail.style.display = "block";
                point.style.left = left + tnailWidth / 2 - pointWidth / 2 + "px";
              } else {
                var _left = e2.clientX - containerLeft - pointWidth / 2;
                _left = _left > 0 ? _left : 0;
                _left = _left > containerWidth2 - pointWidth ? containerWidth2 - pointWidth : _left;
                point.style.left = _left + "px";
              }
              if ((0, _util.hasClass)(container, "xgplayer-progress-dot-active")) {
                point.style.display = "none";
              } else {
                point.style.display = "block";
              }
            };
            var move = function move2(e2) {
              compute(e2);
            };
            var leave = function leave2(e2) {
              container.removeEventListener("mousemove", move, false);
              container.removeEventListener("mouseleave", leave2, false);
              compute(e2);
              point.style.display = "none";
              if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {
                thumbnail.style.display = "none";
              }
            };
            container.addEventListener("mousemove", move, false);
            container.addEventListener("mouseleave", leave, false);
            compute(e);
          }, false);
          var onTimeupdate = function onTimeupdate2() {
            if (player.maxPlayedTime === void 0)
              player.maxPlayedTime = 0;
            if (player.maxPlayedTime < player.currentTime)
              player.maxPlayedTime = player.currentTime;
            if (!containerWidth && container) {
              containerWidth = container.getBoundingClientRect().width;
            }
            if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {
              var precent = player.currentTime / player.duration;
              var prevPrecent = Number(progress2.style.width.replace("%", "") || "0") / Number(container.style.width || "100");
              if (Math.abs(precent - prevPrecent) <= 1) {
                progress2.style.width = player.currentTime * 100 / player.duration + "%";
              }
            }
          };
          player.on("timeupdate", onTimeupdate);
          var onCurrentTimeChange = function onCurrentTimeChange2(time2) {
            progress2.style.width = time2 * 100 / player.duration + "%";
          };
          player.on("currentTimeChange", onCurrentTimeChange);
          var onSrcChange = function onSrcChange2() {
            progress2.style.width = "0%";
          };
          player.on("srcChange", onSrcChange);
          var onCacheUpdate = function onCacheUpdate2() {
            var buffered = player.buffered;
            if (buffered && buffered.length > 0) {
              var end = buffered.end(buffered.length - 1);
              for (var i = 0, len = buffered.length; i < len; i++) {
                if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {
                  end = buffered.end(i);
                  for (var j = i + 1; j < buffered.length; j++) {
                    if (buffered.start(j) - buffered.end(j - 1) >= 2) {
                      end = buffered.end(j - 1);
                      break;
                    }
                  }
                  break;
                }
              }
              cache.style.width = end / player.duration * 100 + "%";
            }
          };
          var cacheUpdateEvents = ["bufferedChange", "cacheupdate", "ended", "timeupdate"];
          cacheUpdateEvents.forEach(function(item) {
            player.on(item, onCacheUpdate);
          });
          function destroyFunc() {
            player.removeAllProgressDot();
            player.off("canplay", onCanplay);
            player.off("timeupdate", onTimeupdate);
            player.off("currentTimeChange", onCurrentTimeChange);
            player.off("srcChange", onSrcChange);
            player.off("loadedmetadata", onLoadedmetadata);
            cacheUpdateEvents.forEach(function(item) {
              player.off(item, onCacheUpdate);
            });
            player.off("destroy", destroyFunc);
          }
          player.once("destroy", destroyFunc);
        };
        exports2.default = {
          name: "s_progress",
          method: s_progress2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(70);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-default .xgplayer-progress-outer{background:hsla(0,0%,100%,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-default .xgplayer-progress-cache,.xgplayer-skin-default .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-default .xgplayer-progress-cache{width:0;background:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#fa1f41,#e31106);border-radius:0 1.5px 1.5px 0}.xgplayer-skin-default .xgplayer-progress-btn{display:none;position:absolute;left:0;top:-5px;width:13px;height:13px;border-radius:30px;background:#fff;box-shadow:0 0 2px 0 rgba(0,0,0,.26);left:100%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);z-index:36}.xgplayer-skin-default .xgplayer-progress-point{position:absolute}.xgplayer-skin-default .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-default .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0;background:#fff;border-radius:6px;z-index:16}.xgplayer-skin-default .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-default .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-default .xgplayer-progress-thumbnail{position:absolute;-moz-box-sizing:border-box;box-sizing:border-box}.xgplayer-skin-default .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-default .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0;left:0;display:none}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-default .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-dot,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-dot{height:6px}.xgplayer-skin-default .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default .xgplayer-progress:hover .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-default.xgplayer-volume-active .xgplayer-progress{z-index:15}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn,.xgplayer-skin-default.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn{display:block!important;top:-5px!important}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(72);
        var s_time = function s_time2() {
          var player = this;
          var container = (0, _util.createDom)("xg-time", '<span class="xgplayer-time-current">' + (player.currentTime || (0, _util.format)(0)) + "</span>\n                                           <span>" + (player.duration || (0, _util.format)(0)) + "</span>", {}, "xgplayer-time");
          player.once("ready", function() {
            if (player.controls) {
              player.controls.appendChild(container);
            }
          });
          var onTimeChange = function onTimeChange2() {
            if (player.videoConfig.mediaType !== "audio" || !player.isProgressMoving || !player.dash) {
              container.innerHTML = '<span class="xgplayer-time-current">' + (0, _util.format)(player.currentTime || 0) + "</span>" + ("<span>" + (0, _util.format)(player.duration) + "</span>");
            }
          };
          player.on("durationchange", onTimeChange);
          player.on("timeupdate", onTimeChange);
          function onDestroy() {
            player.off("durationchange", onTimeChange);
            player.off("timeupdate", onTimeChange);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "s_time",
          method: s_time
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(73);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, '.xgplayer-skin-default .xgplayer-time{-webkit-order:2;-moz-box-ordinal-group:3;order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-default .xgplayer-time span{color:hsla(0,0%,100%,.5)}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-default .xgplayer-time .xgplayer-time-current:after{content:"/";display:inline-block;padding:0 3px}', ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _replay = __webpack_require__(75);
        var _replay2 = _interopRequireDefault2(_replay);
        __webpack_require__(76);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_replay = function s_replay2() {
          var player = this;
          var root = player.root;
          var replayText = player.lang.REPLAY;
          var btn = (0, _util.createDom)("xg-replay", _replay2.default + '\n                                         <xg-replay-txt class="xgplayer-replay-txt">' + replayText + "</xg-replay-txt>\n                                        ", {}, "xgplayer-replay");
          player.once("ready", function() {
            root.appendChild(btn);
          });
          function onEnded() {
            var path = btn.querySelector("path");
            if (path) {
              var transform = window.getComputedStyle(path).getPropertyValue("transform");
              if (typeof transform === "string" && transform.indexOf("none") > -1) {
                return;
              } else {
                path.setAttribute("transform", transform);
              }
            }
          }
          player.on("ended", onEnded);
          function onBtnClick(e) {
            e.preventDefault();
            e.stopPropagation();
          }
          btn.addEventListener("click", onBtnClick);
          var svg = btn.querySelector("svg");
          ["click", "touchend"].forEach(function(item) {
            svg.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("replayBtnClick");
            });
          });
          function destroyFunc() {
            player.off("ended", onEnded);
            player.off("destroy", destroyFunc);
          }
          player.once("destroy", destroyFunc);
        };
        exports2.default = {
          name: "s_replay",
          method: s_replay
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg class="xgplayer-replay-svg" xmlns="http://www.w3.org/2000/svg" width="78" height="78" viewbox="0 0 78 78">\n  <path d="M8.22708362,13.8757234 L11.2677371,12.6472196 C11.7798067,12.4403301 12.3626381,12.6877273 12.5695276,13.1997969 L12.9441342,14.1269807 C13.1510237,14.6390502 12.9036264,15.2218816 12.3915569,15.4287712 L6.8284538,17.6764107 L5.90126995,18.0510173 C5.38920044,18.2579068 4.80636901,18.0105096 4.5994795,17.49844 L1.97723335,11.0081531 C1.77034384,10.4960836 2.0177411,9.91325213 2.52981061,9.70636262 L3.45699446,9.33175602 C3.96906396,9.12486652 4.5518954,9.37226378 4.75878491,9.88433329 L5.67885163,12.1615783 C7.99551726,6.6766934 13.3983951,3 19.5,3 C27.7842712,3 34.5,9.71572875 34.5,18 C34.5,26.2842712 27.7842712,33 19.5,33 C15.4573596,33 11.6658607,31.3912946 8.87004692,28.5831991 C8.28554571,27.9961303 8.28762719,27.0463851 8.87469603,26.4618839 C9.46176488,25.8773827 10.4115101,25.8794641 10.9960113,26.466533 C13.2344327,28.7147875 16.263503,30 19.5,30 C26.127417,30 31.5,24.627417 31.5,18 C31.5,11.372583 26.127417,6 19.5,6 C14.4183772,6 9.94214483,9.18783811 8.22708362,13.8757234 Z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(77);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;background:rgba(0,0,0,.54);-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.xgplayer-skin-default .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-default .xgplayer-replay svg path{-webkit-transform:translate(20px,21px);-ms-transform:translate(20px,21px);transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-default .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-default .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-default .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-default.xgplayer.xgplayer-ended .xgplayer-replay{display:-webkit-flex;display:-moz-box;display:flex}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(161);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        module2.exports = __webpack_require__(80);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _player = __webpack_require__(9);
        var _player2 = _interopRequireDefault2(_player);
        var _airplay = __webpack_require__(81);
        var _airplay2 = _interopRequireDefault2(_airplay);
        var _cssFullscreen = __webpack_require__(82);
        var _cssFullscreen2 = _interopRequireDefault2(_cssFullscreen);
        var _danmu = __webpack_require__(83);
        var _danmu2 = _interopRequireDefault2(_danmu);
        var _definition = __webpack_require__(84);
        var _definition2 = _interopRequireDefault2(_definition);
        var _download = __webpack_require__(85);
        var _download2 = _interopRequireDefault2(_download);
        var _errorRetry = __webpack_require__(88);
        var _errorRetry2 = _interopRequireDefault2(_errorRetry);
        var _fullscreen = __webpack_require__(45);
        var _fullscreen2 = _interopRequireDefault2(_fullscreen);
        var _keyboard = __webpack_require__(89);
        var _keyboard2 = _interopRequireDefault2(_keyboard);
        var _localPreview = __webpack_require__(90);
        var _localPreview2 = _interopRequireDefault2(_localPreview);
        var _memoryPlay = __webpack_require__(91);
        var _memoryPlay2 = _interopRequireDefault2(_memoryPlay);
        var _miniplayer = __webpack_require__(92);
        var _miniplayer2 = _interopRequireDefault2(_miniplayer);
        var _mobile = __webpack_require__(37);
        var _mobile2 = _interopRequireDefault2(_mobile);
        var _pc = __webpack_require__(38);
        var _pc2 = _interopRequireDefault2(_pc);
        var _pip = __webpack_require__(98);
        var _pip2 = _interopRequireDefault2(_pip);
        var _play = __webpack_require__(46);
        var _play2 = _interopRequireDefault2(_play);
        var _playNext = __webpack_require__(99);
        var _playNext2 = _interopRequireDefault2(_playNext);
        var _reload = __webpack_require__(100);
        var _reload2 = _interopRequireDefault2(_reload);
        var _replay = __webpack_require__(47);
        var _replay2 = _interopRequireDefault2(_replay);
        var _rotate = __webpack_require__(101);
        var _rotate2 = _interopRequireDefault2(_rotate);
        var _screenShot = __webpack_require__(102);
        var _screenShot2 = _interopRequireDefault2(_screenShot);
        var _stallCheck = __webpack_require__(103);
        var _stallCheck2 = _interopRequireDefault2(_stallCheck);
        var _start = __webpack_require__(39);
        var _start2 = _interopRequireDefault2(_start);
        var _volume = __webpack_require__(104);
        var _volume2 = _interopRequireDefault2(_volume);
        var _textTrack = __webpack_require__(105);
        var _textTrack2 = _interopRequireDefault2(_textTrack);
        __webpack_require__(107);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        _player2.default.installAll([_airplay2.default, _cssFullscreen2.default, _danmu2.default, _definition2.default, _download2.default, _errorRetry2.default, _fullscreen2.default, _keyboard2.default, _localPreview2.default, _memoryPlay2.default, _miniplayer2.default, _mobile2.default, _pc2.default, _pip2.default, _play2.default, _playNext2.default, _reload2.default, _replay2.default, _rotate2.default, _screenShot2.default, _stallCheck2.default, _start2.default, _volume2.default, _textTrack2.default]);
        exports2.default = _player2.default;
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var airplay2 = function airplay3() {
          var player = this;
          if (!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent)
            return;
          function onAirplayBtnClick() {
            player.video.webkitShowPlaybackTargetPicker();
          }
          player.on("airplayBtnClick", onAirplayBtnClick);
          function onDestroy() {
            player.off("airplayBtnClick", onAirplayBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "airplay",
          method: airplay2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var cssFullscreen = function cssFullscreen2() {
          var player = this;
          var root = player.root;
          function onCssFullscreenBtnClick() {
            if ((0, _util.hasClass)(root, "xgplayer-is-cssfullscreen")) {
              player.exitCssFullscreen();
            } else {
              player.getCssFullscreen();
            }
          }
          player.on("cssFullscreenBtnClick", onCssFullscreenBtnClick);
          player.on("exitFullscreen", function() {
            (0, _util.removeClass)(root, "xgplayer-is-cssfullscreen");
          });
          function onDestroy() {
            player.off("cssFullscreenBtnClick", onCssFullscreenBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.getCssFullscreen = function() {
            var player2 = this;
            if (player2.config.fluid) {
              player2.root.style["padding-top"] = "";
            }
            (0, _util.addClass)(player2.root, "xgplayer-is-cssfullscreen");
            player2.emit("requestCssFullscreen");
          };
          player.exitCssFullscreen = function() {
            var player2 = this;
            if (player2.config.fluid) {
              player2.root.style["width"] = "100%";
              player2.root.style["height"] = "0";
              player2.root.style["padding-top"] = player2.config.height * 100 / player2.config.width + "%";
            }
            (0, _util.removeClass)(player2.root, "xgplayer-is-cssfullscreen");
            player2.emit("exitCssFullscreen");
          };
        };
        exports2.default = {
          name: "cssFullscreen",
          method: cssFullscreen
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var danmu2 = function danmu3() {
          var player = this;
          function onInitDanmu(danmujs) {
            var container = player.root.querySelector("xg-danmu");
            (0, _util.addClass)(container, "xgplayer-has-danmu");
            if (!player.config.danmu.closeDefaultBtn) {
              var onTimeupdate = function onTimeupdate2() {
                danmujs.start();
              };
              var onPause = function onPause2() {
                if ((0, _util.hasClass)(player.danmuBtn, "danmu-switch-active")) {
                  danmujs.pause();
                }
              };
              var onPlay = function onPlay2() {
                if ((0, _util.hasClass)(player.danmuBtn, "danmu-switch-active")) {
                  danmujs.play();
                }
              };
              var onSeeked = function onSeeked2() {
                if ((0, _util.hasClass)(player.danmuBtn, "danmu-switch-active")) {
                  danmujs.stop();
                  danmujs.start();
                }
              };
              var onDestroy = function onDestroy2() {
                player.off("timeupdate", onTimeupdate);
                player.off("pause", onPause);
                player.off("play", onPlay);
                player.off("seeked", onSeeked);
                player.off("destroy", onDestroy2);
              };
              player.danmuBtn = (0, _util.copyDom)(danmujs.bulletBtn.createSwitch(true));
              player.controls.appendChild(player.danmuBtn);
              ["click", "touchend"].forEach(function(item) {
                player.danmuBtn.addEventListener(item, function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  (0, _util.toggleClass)(player.danmuBtn, "danmu-switch-active");
                  if ((0, _util.hasClass)(player.danmuBtn, "danmu-switch-active")) {
                    player.emit("danmuBtnOn");
                    (0, _util.addClass)(container, "xgplayer-has-danmu");
                    player.once("timeupdate", onTimeupdate);
                  } else {
                    player.emit("danmuBtnOff");
                    (0, _util.removeClass)(container, "xgplayer-has-danmu");
                    danmujs.stop();
                  }
                });
              });
              player.onElementClick && container.addEventListener("click", function(e) {
                player.onElementClick(e, container);
              }, false);
              player.onElementDblclick && container.addEventListener("dblclick", function(e) {
                player.onElementDblclick(e, container);
              }, false);
              player.on("pause", onPause);
              player.on("play", onPlay);
              player.on("seeked", onSeeked);
              player.once("destroy", onDestroy);
            }
          }
          player.on("initDefaultDanmu", onInitDanmu);
        };
        exports2.default = {
          name: "danmu",
          method: danmu2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var definition2 = function definition3() {
          var player = this;
          function onDestroy() {
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "definition",
          method: definition2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _downloadjs = __webpack_require__(86);
        var _downloadjs2 = _interopRequireDefault2(_downloadjs);
        var _url = __webpack_require__(87);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var download2 = function download3() {
          var player = this;
          function onDownloadBtnClick() {
            player.download();
          }
          player.on("downloadBtnClick", onDownloadBtnClick);
          function onDestroy() {
            player.off("downloadBtnClick", onDownloadBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.download = function() {
            var url = (0, _url.getAbsoluteURL)(this.config.url);
            (0, _downloadjs2.default)(url);
          };
        };
        exports2.default = {
          name: "download",
          method: download2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
        (function(root, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(this, function() {
          return function download2(data, strFileName, strMimeType) {
            var self2 = window, defaultMime = "application/octet-stream", mimeType = strMimeType || defaultMime, payload = data, url = !strFileName && !strMimeType && payload, anchor = document.createElement("a"), toString = function(a) {
              return String(a);
            }, myBlob = self2.Blob || self2.MozBlob || self2.WebKitBlob || toString, fileName = strFileName || "download", blob, reader;
            myBlob = myBlob.call ? myBlob.bind(self2) : Blob;
            if (String(this) === "true") {
              payload = [payload, mimeType];
              mimeType = payload[0];
              payload = payload[1];
            }
            if (url && url.length < 2048) {
              fileName = url.split("/").pop().split("?")[0];
              anchor.href = url;
              if (anchor.href.indexOf(url) !== -1) {
                var ajax = new XMLHttpRequest();
                ajax.open("GET", url, true);
                ajax.responseType = "blob";
                ajax.onload = function(e) {
                  download2(e.target.response, fileName, defaultMime);
                };
                setTimeout(function() {
                  ajax.send();
                }, 0);
                return ajax;
              }
            }
            if (/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)) {
              if (payload.length > 1024 * 1024 * 1.999 && myBlob !== toString) {
                payload = dataUrlToBlob(payload);
                mimeType = payload.type || defaultMime;
              } else {
                return navigator.msSaveBlob ? navigator.msSaveBlob(dataUrlToBlob(payload), fileName) : saver(payload);
              }
            } else {
              if (/([\x80-\xff])/.test(payload)) {
                var i = 0, tempUiArr = new Uint8Array(payload.length), mx = tempUiArr.length;
                for (i; i < mx; ++i)
                  tempUiArr[i] = payload.charCodeAt(i);
                payload = new myBlob([tempUiArr], { type: mimeType });
              }
            }
            blob = payload instanceof myBlob ? payload : new myBlob([payload], { type: mimeType });
            function dataUrlToBlob(strUrl) {
              var parts = strUrl.split(/[:;,]/), type = parts[1], decoder = parts[2] == "base64" ? atob : decodeURIComponent, binData = decoder(parts.pop()), mx2 = binData.length, i2 = 0, uiArr = new Uint8Array(mx2);
              for (i2; i2 < mx2; ++i2)
                uiArr[i2] = binData.charCodeAt(i2);
              return new myBlob([uiArr], { type });
            }
            function saver(url2, winMode) {
              if ("download" in anchor) {
                anchor.href = url2;
                anchor.setAttribute("download", fileName);
                anchor.className = "download-js-link";
                anchor.innerHTML = "downloading...";
                anchor.style.display = "none";
                document.body.appendChild(anchor);
                setTimeout(function() {
                  anchor.click();
                  document.body.removeChild(anchor);
                  if (winMode === true) {
                    setTimeout(function() {
                      self2.URL.revokeObjectURL(anchor.href);
                    }, 250);
                  }
                }, 66);
                return true;
              }
              if (/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)) {
                if (/^data:/.test(url2))
                  url2 = "data:" + url2.replace(/^data:([\w\/\-\+]+)/, defaultMime);
                if (!window.open(url2)) {
                  if (confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")) {
                    location.href = url2;
                  }
                }
                return true;
              }
              var f = document.createElement("iframe");
              document.body.appendChild(f);
              if (!winMode && /^data:/.test(url2)) {
                url2 = "data:" + url2.replace(/^data:([\w\/\-\+]+)/, defaultMime);
              }
              f.src = url2;
              setTimeout(function() {
                document.body.removeChild(f);
              }, 333);
            }
            if (navigator.msSaveBlob) {
              return navigator.msSaveBlob(blob, fileName);
            }
            if (self2.URL) {
              saver(self2.URL.createObjectURL(blob), true);
            } else {
              if (typeof blob === "string" || blob.constructor === toString) {
                try {
                  return saver("data:" + mimeType + ";base64," + self2.btoa(blob));
                } catch (y) {
                  return saver("data:" + mimeType + "," + encodeURIComponent(blob));
                }
              }
              reader = new FileReader();
              reader.onload = function(e) {
                saver(this.result);
              };
              reader.readAsDataURL(blob);
            }
            return true;
          };
        });
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        exports2.getAbsoluteURL = function getAbsoluteURL(url) {
          if (!url.match(/^https?:\/\//)) {
            var div = document.createElement("div");
            div.innerHTML = '<a href="' + url + '">x</a>';
            url = div.firstChild.href;
          }
          return url;
        };
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _error = __webpack_require__(4);
        var _error2 = _interopRequireDefault2(_error);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var defaultConfig2 = {
          maxCount: 3,
          backupUrl: "",
          isFetch: true,
          fetchTimeout: 100
        };
        function errorRetry() {
          var _this = this;
          var player = this;
          if (!player.config.errorConfig || player.src.indexOf("blob:") > -1) {
            return;
          }
          var errorConfig = {};
          var _inConfig = player.config.errorConfig;
          for (var key in defaultConfig2) {
            if (_inConfig[key] === void 0) {
              errorConfig[key] = defaultConfig2[key];
            } else {
              errorConfig[key] = _inConfig[key];
            }
          }
          player.retryData = {
            count: 0,
            errfTimer: null,
            isFetchReturn: false,
            currentTime: 0
          };
          function errorfetch(player2, url, timeout) {
            var resolveFun = function resolveFun2(resolve, data) {
              if (!player2.retryData.isFetchReturn) {
                player2.retryData.isFetchReturn = true;
                resolve(data);
              }
            };
            return new Promise(function(resolve, reject) {
              try {
                var xhr = new window.XMLHttpRequest();
                xhr.open("get", url);
                xhr.onload = function() {
                  resolveFun(resolve, { status: xhr.status, statusText: xhr.statusText, xhr });
                };
                xhr.onerror = function() {
                  resolveFun(resolve, { status: xhr.status, statusText: xhr.statusText || "The network environment is disconnected or the address is invalid", xhr });
                };
                xhr.onabort = function() {
                };
                player2.retryData.errfTimer = window.setTimeout(function() {
                  var errfTimer = player2.retryData.errfTimer;
                  window.clearTimeout(errfTimer);
                  player2.retryData.errfTimer = null;
                  resolveFun(resolve, { status: -1, statusText: "request timeout" });
                }, timeout);
                xhr.send();
              } catch (err) {
                player2.retryData.isFetchReturn = true;
                resolveFun(resolve, { status: -2, statusText: "request error" });
              }
            });
          }
          function retryCanPlay() {
            this.currentTime = this.retryData.currentTime;
            this.play();
            this.retryData.retryCode = 0;
            this.retryData.isFetchReturn = false;
            this.retryData.currentTime = 0;
          }
          var _originErrorEmit = player._onError;
          player._onError = function(data) {
            var errorCount = _this.retryData.count;
            if (errorCount > errorConfig.maxCount) {
              if (errorConfig.isFetch) {
                errorfetch(_this, _this.currentSrc, errorConfig.fetchTimeout).then(function(data2) {
                  _this.emit("error", new _error2.default({
                    type: "network",
                    currentTime: _this.currentTime,
                    duration: _this.duration || 0,
                    networkState: _this.networkState,
                    readyState: _this.readyState,
                    currentSrc: _this.currentSrc,
                    src: _this.src,
                    ended: _this.ended,
                    httpCode: data2.status,
                    httpMsg: data2.statusText,
                    errd: {
                      line: 101,
                      msg: _this.error,
                      handle: "plugin errorRetry"
                    },
                    errorCode: _this.video && _this.video.error.code,
                    mediaError: _this.video && _this.video.error
                  }));
                  _originErrorEmit.call(_this, data2);
                });
              } else {
                _originErrorEmit.call(_this, data);
              }
              return;
            }
            if (errorCount === 0) {
              _this.retryData.currentTime = _this.currentTime;
              _this.once("canplay", retryCanPlay.bind(_this));
            }
            var src = "";
            if (errorConfig.count < 2) {
              src = errorConfig.backupUrl ? errorConfig.backupUrl : player.currentSrc;
            } else {
              src = errorConfig.backupUrl && errorCount > 1 ? errorConfig.backupUrl : player.currentSrc;
            }
            _this.retryData.count++;
            _this.src = src;
          };
        }
        exports2.default = {
          name: "errorretry",
          method: errorRetry
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _createClass2 = function() {
          function defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
              var descriptor = props[i];
              descriptor.enumerable = descriptor.enumerable || false;
              descriptor.configurable = true;
              if ("value" in descriptor)
                descriptor.writable = true;
              Object.defineProperty(target, descriptor.key, descriptor);
            }
          }
          return function(Constructor, protoProps, staticProps) {
            if (protoProps)
              defineProperties(Constructor.prototype, protoProps);
            if (staticProps)
              defineProperties(Constructor, staticProps);
            return Constructor;
          };
        }();
        var _util = __webpack_require__(0);
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        var Keyboard = function() {
          function Keyboard2(player) {
            _classCallCheck2(this, Keyboard2);
            this.player = player;
            this.state = {
              playbackRate: 0,
              isRepeat: false,
              keyCode: 0,
              repeat: 0,
              isBody: false
            };
            this.timer = null;
            this.initEvents();
          }
          _createClass2(Keyboard2, [{
            key: "initEvents",
            value: function initEvents() {
              var _this = this;
              var _player = this.player, root = _player.root, config = _player.config;
              this.player.onBodyKeydown = this.onBodyKeydown.bind(this);
              this.player.onKeydown = this.onKeydown.bind(this);
              this.player.onKeyup = this.onKeyup.bind(this);
              if (!config.keyShortcut || config.keyShortcut === "on") {
                document.addEventListener("keydown", this.player.onBodyKeydown);
                root.addEventListener("keydown", this.player.onKeydown);
                var destroyFunc = function destroyFunc2() {
                  document.removeEventListener("keydown", _this.player.onBodyKeydown);
                  root.removeEventListener("keydown", _this.player.onKeydown);
                  clearTimeout(_this.timer);
                  _this.timer = null;
                };
                (0, _util.on)(this.player, "destroy", destroyFunc);
              }
            }
          }, {
            key: "checkTarget",
            value: function checkTarget(e) {
              var player = this.player;
              return e.target === player.root || e.target === player.video || e.target === player.controls;
            }
          }, {
            key: "onBodyKeydown",
            value: function onBodyKeydown(event2) {
              var e = event2 || window.event;
              var keyCode = e.keyCode;
              if (e.target === document.body && (keyCode === 37 || keyCode === 39 || keyCode === 32)) {
                e.preventDefault();
                e.cancelBubble = true;
                e.returnValue = false;
                if (!e.repeat) {
                  document.addEventListener("keyup", this.player.onKeyup);
                }
                this.handler(e);
                return false;
              }
            }
          }, {
            key: "onKeydown",
            value: function onKeydown(event2) {
              var e = event2 || window.event;
              var keyCode = e.keyCode;
              if (this.checkTarget(e) && (keyCode === 37 || keyCode === 38 || keyCode === 39 || keyCode === 40 || keyCode === 32 || keyCode === 27)) {
                e.preventDefault();
                e.cancelBubble = true;
                e.returnValue = false;
                this.player.emit("focus");
                if (!e.repeat) {
                  this.player.root.addEventListener("keyup", this.player.onKeyup);
                }
                this.handler(e);
                return false;
              }
            }
          }, {
            key: "onKeyup",
            value: function onKeyup() {
              var state = this.state, player = this.player;
              document.removeEventListener("keyup", this.player.onKeyup);
              player.root.removeEventListener("keyup", this.player.onKeyup);
              if (!state.keyCode) {
                return;
              }
              if (state.playbackRate !== 0) {
                player.playbackRate = state.playbackRate;
              }
              if (!state.isRepeat) {
                this.handlerKeyCode(state.keyCode, false);
              }
              state.playbackRate = 0;
              state.isRepeat = false;
              state.keyCode = 0;
              state.repeat = 0;
              this.changeVolumeSlide();
            }
          }, {
            key: "handler",
            value: function handler(e) {
              var state = this.state, player = this.player;
              state.keyCode = e.keyCode;
              state.isRepeat = e.repeat;
              if (e.repeat) {
                if (player.config.disableLongPress) {
                  this.handlerKeyCode(state.keyCode, false);
                } else if (state.repeat % 2 === 0) {
                  this.handlerKeyCode(state.keyCode, true);
                }
                state.repeat++;
              }
            }
          }, {
            key: "handlerKeyCode",
            value: function handlerKeyCode(keyCode, isLonePress) {
              var player = this.player, state = this.state;
              switch (keyCode) {
                case 39:
                  if (isLonePress) {
                    state.repeat === 0 && this.changeRate();
                  } else {
                    this.seek(false, isLonePress);
                  }
                  break;
                case 37:
                  this.seek(true, isLonePress);
                  break;
                case 38:
                  this.changeVolume(true);
                  break;
                case 40:
                  this.changeVolume(false);
                  break;
                case 32:
                  if (!isLonePress) {
                    player.paused ? player.play() : player.pause();
                  }
                  break;
                case 27:
                  if ((0, _util.hasClass)(player.root, "xgplayer-is-cssfullscreen")) {
                    player.exitCssFullscreen();
                  }
                  break;
              }
            }
          }, {
            key: "seek",
            value: function seek(isBack, isLongPress) {
              var player = this.player;
              var keyShortcutStep = player.config.keyShortcutStep || {};
              var currentTimeStep = keyShortcutStep.currentTime || 10;
              if (player.isLoading || player.isSeeking || isLongPress && this.state.repeat % 8 > 0) {
                return;
              }
              if (isBack) {
                if (player.currentTime - currentTimeStep >= 0) {
                  player.currentTime -= currentTimeStep;
                } else {
                  player.currentTime = 0;
                }
              } else {
                if (player.maxPlayedTime && player.config.allowSeekPlayed && player.currentTime + currentTimeStep > player.maxPlayedTime) {
                  player.currentTime = player.maxPlayedTime;
                } else {
                  if (player.currentTime + currentTimeStep <= player.duration) {
                    player.currentTime += currentTimeStep;
                  } else {
                    player.currentTime = player.duration + 1;
                  }
                }
              }
            }
          }, {
            key: "changeRate",
            value: function changeRate() {
              this.state.playbackRate = this.player.playbackRate;
              this.player.playbackRate = this.player.config.keyboardRate || 5;
            }
          }, {
            key: "changeVolumeSlide",
            value: function changeVolumeSlide(show) {
              var player = this.player;
              if (!player.controls) {
                return;
              }
              if (show) {
                player.emit("focus");
                if (!(0, _util.hasClass)(player.root, "xgplayer-volume-active")) {
                  (0, _util.addClass)(player.root, "xgplayer-volume-active");
                }
              } else {
                clearTimeout(this.timer);
                this.timer = setTimeout(function() {
                  (0, _util.removeClass)(player.root, "xgplayer-volume-active");
                }, 1e3);
              }
            }
          }, {
            key: "changeVolume",
            value: function changeVolume(isup) {
              var player = this.player;
              var keyShortcutStep = player.config.keyShortcutStep || {};
              var volumeStep = keyShortcutStep.volume || 0.1;
              this.changeVolumeSlide(true);
              var volume2 = player.volume;
              if (isup && volume2 + volumeStep <= 1) {
                player.volume = volume2 + volumeStep;
              } else if (!isup && volume2 - volumeStep >= 0) {
                player.volume = volume2 - volumeStep;
              }
            }
          }]);
          return Keyboard2;
        }();
        var keyboard = function keyboard2() {
          var player = this;
          player.keyboard = new Keyboard(player);
        };
        exports2.default = {
          name: "keyboard",
          method: keyboard
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var localPreview = function localPreview2() {
          var player = this;
          var root = player.root;
          function onUpload(upload) {
            player.uploadFile = upload.files[0];
            var url = URL.createObjectURL(player.uploadFile);
            if ((0, _util.hasClass)(root, "xgplayer-nostart")) {
              player.config.url = url;
              player.start();
            } else {
              player.src = url;
              var playPromise = player.play();
              if (playPromise !== void 0 && playPromise) {
                playPromise.catch(function(err) {
                });
              }
            }
          }
          player.on("upload", onUpload);
          function onDestroy() {
            player.off("upload", onUpload);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "localPreview",
          method: localPreview
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var memoryPlay2 = function memoryPlay3() {
          var player = this;
          player.on("memoryPlayStart", function(lastPlayTime) {
            setTimeout(function() {
              console.log("memoryPlayStart", lastPlayTime, player.readyState, 11);
              player.currentTime = lastPlayTime;
            });
          });
        };
        exports2.default = {
          name: "memoryPlay",
          method: memoryPlay2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _draggabilly = __webpack_require__(93);
        var _draggabilly2 = _interopRequireDefault2(_draggabilly);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var miniplayer2 = function miniplayer3() {
          var player = this;
          var root = player.root;
          function onMiniplayerBtnClick() {
            if ((0, _util.hasClass)(root, "xgplayer-miniplayer-active")) {
              player.exitMiniplayer();
            } else {
              player.getMiniplayer();
            }
          }
          player.on("miniplayerBtnClick", onMiniplayerBtnClick);
          function onDestroy() {
            player.off("miniplayerBtnClick", onMiniplayerBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.getMiniplayer = function() {
            if ((0, _util.hasClass)(root, "xgplayer-is-fullscreen")) {
              this.exitFullscreen(root);
            }
            if ((0, _util.hasClass)(root, "xgplayer-is-cssfullscreen")) {
              this.exitCssFullscreen();
            }
            if ((0, _util.hasClass)(root, "xgplayer-rotate-fullscreen")) {
              this.exitRotateFullscreen();
            }
            var dragLay = (0, _util.createDom)("xg-miniplayer-lay", "<div></div>", {}, "xgplayer-miniplayer-lay");
            this.root.appendChild(dragLay);
            var dragHandle = (0, _util.createDom)("xg-miniplayer-drag", '<div class="drag-handle"><span>' + this.lang.MINIPLAYER_DRAG + "</span></div>", { tabindex: 9 }, "xgplayer-miniplayer-drag");
            this.root.appendChild(dragHandle);
            new _draggabilly2.default(".xgplayer", {
              handle: ".drag-handle"
            });
            (0, _util.addClass)(this.root, "xgplayer-miniplayer-active");
            this.root.style.right = 0;
            this.root.style.bottom = "200px";
            this.root.style.top = "";
            this.root.style.left = "";
            this.root.style.width = "320px";
            this.root.style.height = "180px";
            if (this.config.miniplayerConfig) {
              if (this.config.miniplayerConfig.top !== void 0) {
                this.root.style.top = this.config.miniplayerConfig.top + "px";
                this.root.style.bottom = "";
              }
              if (this.config.miniplayerConfig.bottom !== void 0) {
                this.root.style.bottom = this.config.miniplayerConfig.bottom + "px";
              }
              if (this.config.miniplayerConfig.left !== void 0) {
                this.root.style.left = this.config.miniplayerConfig.left + "px";
                this.root.style.right = "";
              }
              if (this.config.miniplayerConfig.right !== void 0) {
                this.root.style.right = this.config.miniplayerConfig.right + "px";
              }
              if (this.config.miniplayerConfig.width !== void 0) {
                this.root.style.width = this.config.miniplayerConfig.width + "px";
              }
              if (this.config.miniplayerConfig.height !== void 0) {
                this.root.style.height = this.config.miniplayerConfig.height + "px";
              }
            }
            if (this.config.fluid) {
              this.root.style["padding-top"] = "";
            }
            var player2 = this;
            ["click", "touchend"].forEach(function(item) {
              dragLay.addEventListener(item, function(e) {
                e.preventDefault();
                e.stopPropagation();
                player2.exitMiniplayer();
              });
            });
          };
          player.exitMiniplayer = function() {
            (0, _util.removeClass)(this.root, "xgplayer-miniplayer-active");
            this.root.style.right = "";
            this.root.style.bottom = "";
            this.root.style.top = "";
            this.root.style.left = "";
            if (this.config.fluid) {
              this.root.style["width"] = "100%";
              this.root.style["height"] = "0";
              this.root.style["padding-top"] = this.config.height * 100 / this.config.width + "%";
            } else {
              if (this.config.width) {
                if (typeof this.config.width !== "number") {
                  this.root.style.width = this.config.width;
                } else {
                  this.root.style.width = this.config.width + "px";
                }
              }
              if (this.config.height) {
                if (typeof this.config.height !== "number") {
                  this.root.style.height = this.config.height;
                } else {
                  this.root.style.height = this.config.height + "px";
                }
              }
            }
            var dragLay = (0, _util.findDom)(this.root, ".xgplayer-miniplayer-lay");
            if (dragLay && dragLay.parentNode) {
              dragLay.parentNode.removeChild(dragLay);
            }
            var dragHandle = (0, _util.findDom)(this.root, ".xgplayer-miniplayer-drag");
            if (dragHandle && dragHandle.parentNode) {
              dragHandle.parentNode.removeChild(dragHandle);
            }
          };
        };
        exports2.default = {
          name: "miniplayer",
          method: miniplayer2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
        /*!
        * Draggabilly v2.3.0
        * Make that shiz draggable
        * https://draggabilly.desandro.com
        * MIT license
        */
        (function(window2, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(94), __webpack_require__(95)], __WEBPACK_AMD_DEFINE_RESULT__ = function(getSize, Unidragger) {
              return factory(window2, getSize, Unidragger);
            }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(window, function factory(window2, getSize, Unidragger) {
          function extend(a, b) {
            for (var prop in b) {
              a[prop] = b[prop];
            }
            return a;
          }
          function noop() {
          }
          var jQuery = window2.jQuery;
          function Draggabilly(element, options) {
            this.element = typeof element == "string" ? document.querySelector(element) : element;
            if (jQuery) {
              this.$element = jQuery(this.element);
            }
            this.options = extend({}, this.constructor.defaults);
            this.option(options);
            this._create();
          }
          var proto = Draggabilly.prototype = Object.create(Unidragger.prototype);
          Draggabilly.defaults = {};
          proto.option = function(opts) {
            extend(this.options, opts);
          };
          var positionValues = {
            relative: true,
            absolute: true,
            fixed: true
          };
          proto._create = function() {
            this.position = {};
            this._getPosition();
            this.startPoint = { x: 0, y: 0 };
            this.dragPoint = { x: 0, y: 0 };
            this.startPosition = extend({}, this.position);
            var style = getComputedStyle(this.element);
            if (!positionValues[style.position]) {
              this.element.style.position = "relative";
            }
            this.on("pointerMove", this.onPointerMove);
            this.on("pointerUp", this.onPointerUp);
            this.enable();
            this.setHandles();
          };
          proto.setHandles = function() {
            this.handles = this.options.handle ? this.element.querySelectorAll(this.options.handle) : [this.element];
            this.bindHandles();
          };
          proto.dispatchEvent = function(type, event2, args) {
            var emitArgs = [event2].concat(args);
            this.emitEvent(type, emitArgs);
            this.dispatchJQueryEvent(type, event2, args);
          };
          proto.dispatchJQueryEvent = function(type, event2, args) {
            var jquery = window2.jQuery;
            if (!jquery || !this.$element) {
              return;
            }
            var $event = jquery.Event(event2);
            $event.type = type;
            this.$element.trigger($event, args);
          };
          proto._getPosition = function() {
            var style = getComputedStyle(this.element);
            var x = this._getPositionCoord(style.left, "width");
            var y = this._getPositionCoord(style.top, "height");
            this.position.x = isNaN(x) ? 0 : x;
            this.position.y = isNaN(y) ? 0 : y;
            this._addTransformPosition(style);
          };
          proto._getPositionCoord = function(styleSide, measure) {
            if (styleSide.indexOf("%") != -1) {
              var parentSize = getSize(this.element.parentNode);
              return !parentSize ? 0 : parseFloat(styleSide) / 100 * parentSize[measure];
            }
            return parseInt(styleSide, 10);
          };
          proto._addTransformPosition = function(style) {
            var transform = style.transform;
            if (transform.indexOf("matrix") !== 0) {
              return;
            }
            var matrixValues = transform.split(",");
            var xIndex = transform.indexOf("matrix3d") === 0 ? 12 : 4;
            var translateX = parseInt(matrixValues[xIndex], 10);
            var translateY = parseInt(matrixValues[xIndex + 1], 10);
            this.position.x += translateX;
            this.position.y += translateY;
          };
          proto.onPointerDown = function(event2, pointer) {
            this.element.classList.add("is-pointer-down");
            this.dispatchJQueryEvent("pointerDown", event2, [pointer]);
          };
          proto.pointerDown = function(event2, pointer) {
            var isOkay = this.okayPointerDown(event2);
            if (!isOkay || !this.isEnabled) {
              this._pointerReset();
              return;
            }
            this.pointerDownPointer = {
              pageX: pointer.pageX,
              pageY: pointer.pageY
            };
            event2.preventDefault();
            this.pointerDownBlur();
            this._bindPostStartEvents(event2);
            this.element.classList.add("is-pointer-down");
            this.dispatchEvent("pointerDown", event2, [pointer]);
          };
          proto.dragStart = function(event2, pointer) {
            if (!this.isEnabled) {
              return;
            }
            this._getPosition();
            this.measureContainment();
            this.startPosition.x = this.position.x;
            this.startPosition.y = this.position.y;
            this.setLeftTop();
            this.dragPoint.x = 0;
            this.dragPoint.y = 0;
            this.element.classList.add("is-dragging");
            this.dispatchEvent("dragStart", event2, [pointer]);
            this.animate();
          };
          proto.measureContainment = function() {
            var container = this.getContainer();
            if (!container) {
              return;
            }
            var elemSize = getSize(this.element);
            var containerSize = getSize(container);
            var elemRect = this.element.getBoundingClientRect();
            var containerRect = container.getBoundingClientRect();
            var borderSizeX = containerSize.borderLeftWidth + containerSize.borderRightWidth;
            var borderSizeY = containerSize.borderTopWidth + containerSize.borderBottomWidth;
            var position = this.relativeStartPosition = {
              x: elemRect.left - (containerRect.left + containerSize.borderLeftWidth),
              y: elemRect.top - (containerRect.top + containerSize.borderTopWidth)
            };
            this.containSize = {
              width: containerSize.width - borderSizeX - position.x - elemSize.width,
              height: containerSize.height - borderSizeY - position.y - elemSize.height
            };
          };
          proto.getContainer = function() {
            var containment = this.options.containment;
            if (!containment) {
              return;
            }
            var isElement = containment instanceof HTMLElement;
            if (isElement) {
              return containment;
            }
            if (typeof containment == "string") {
              return document.querySelector(containment);
            }
            return this.element.parentNode;
          };
          proto.onPointerMove = function(event2, pointer, moveVector) {
            this.dispatchJQueryEvent("pointerMove", event2, [pointer, moveVector]);
          };
          proto.dragMove = function(event2, pointer, moveVector) {
            if (!this.isEnabled) {
              return;
            }
            var dragX = moveVector.x;
            var dragY = moveVector.y;
            var grid = this.options.grid;
            var gridX = grid && grid[0];
            var gridY = grid && grid[1];
            dragX = applyGrid(dragX, gridX);
            dragY = applyGrid(dragY, gridY);
            dragX = this.containDrag("x", dragX, gridX);
            dragY = this.containDrag("y", dragY, gridY);
            dragX = this.options.axis == "y" ? 0 : dragX;
            dragY = this.options.axis == "x" ? 0 : dragY;
            this.position.x = this.startPosition.x + dragX;
            this.position.y = this.startPosition.y + dragY;
            this.dragPoint.x = dragX;
            this.dragPoint.y = dragY;
            this.dispatchEvent("dragMove", event2, [pointer, moveVector]);
          };
          function applyGrid(value, grid, method) {
            method = method || "round";
            return grid ? Math[method](value / grid) * grid : value;
          }
          proto.containDrag = function(axis, drag, grid) {
            if (!this.options.containment) {
              return drag;
            }
            var measure = axis == "x" ? "width" : "height";
            var rel = this.relativeStartPosition[axis];
            var min = applyGrid(-rel, grid, "ceil");
            var max = this.containSize[measure];
            max = applyGrid(max, grid, "floor");
            return Math.max(min, Math.min(max, drag));
          };
          proto.onPointerUp = function(event2, pointer) {
            this.element.classList.remove("is-pointer-down");
            this.dispatchJQueryEvent("pointerUp", event2, [pointer]);
          };
          proto.dragEnd = function(event2, pointer) {
            if (!this.isEnabled) {
              return;
            }
            this.element.style.transform = "";
            this.setLeftTop();
            this.element.classList.remove("is-dragging");
            this.dispatchEvent("dragEnd", event2, [pointer]);
          };
          proto.animate = function() {
            if (!this.isDragging) {
              return;
            }
            this.positionDrag();
            var _this = this;
            requestAnimationFrame(function animateFrame() {
              _this.animate();
            });
          };
          proto.setLeftTop = function() {
            this.element.style.left = this.position.x + "px";
            this.element.style.top = this.position.y + "px";
          };
          proto.positionDrag = function() {
            this.element.style.transform = "translate3d( " + this.dragPoint.x + "px, " + this.dragPoint.y + "px, 0)";
          };
          proto.staticClick = function(event2, pointer) {
            this.dispatchEvent("staticClick", event2, [pointer]);
          };
          proto.setPosition = function(x, y) {
            this.position.x = x;
            this.position.y = y;
            this.setLeftTop();
          };
          proto.enable = function() {
            this.isEnabled = true;
          };
          proto.disable = function() {
            this.isEnabled = false;
            if (this.isDragging) {
              this.dragEnd();
            }
          };
          proto.destroy = function() {
            this.disable();
            this.element.style.transform = "";
            this.element.style.left = "";
            this.element.style.top = "";
            this.element.style.position = "";
            this.unbindHandles();
            if (this.$element) {
              this.$element.removeData("draggabilly");
            }
          };
          proto._init = noop;
          if (jQuery && jQuery.bridget) {
            jQuery.bridget("draggabilly", Draggabilly);
          }
          return Draggabilly;
        });
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
        /*!
        * getSize v2.0.3
        * measure size of elements
        * MIT license
        */
        (function(window2, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.call(exports2, __webpack_require__, exports2, module2) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(window, function factory() {
          function getStyleSize(value) {
            var num = parseFloat(value);
            var isValid = value.indexOf("%") == -1 && !isNaN(num);
            return isValid && num;
          }
          function noop() {
          }
          var logError = typeof console == "undefined" ? noop : function(message) {
            console.error(message);
          };
          var measurements = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"];
          var measurementsLength = measurements.length;
          function getZeroSize() {
            var size = {
              width: 0,
              height: 0,
              innerWidth: 0,
              innerHeight: 0,
              outerWidth: 0,
              outerHeight: 0
            };
            for (var i = 0; i < measurementsLength; i++) {
              var measurement = measurements[i];
              size[measurement] = 0;
            }
            return size;
          }
          function getStyle(elem) {
            var style = getComputedStyle(elem);
            if (!style) {
              logError("Style returned " + style + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1");
            }
            return style;
          }
          var isSetup = false;
          var isBoxSizeOuter;
          function setup() {
            if (isSetup) {
              return;
            }
            isSetup = true;
            var div = document.createElement("div");
            div.style.width = "200px";
            div.style.padding = "1px 2px 3px 4px";
            div.style.borderStyle = "solid";
            div.style.borderWidth = "1px 2px 3px 4px";
            div.style.boxSizing = "border-box";
            var body = document.body || document.documentElement;
            body.appendChild(div);
            var style = getStyle(div);
            isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;
            getSize.isBoxSizeOuter = isBoxSizeOuter;
            body.removeChild(div);
          }
          function getSize(elem) {
            setup();
            if (typeof elem == "string") {
              elem = document.querySelector(elem);
            }
            if (!elem || typeof elem != "object" || !elem.nodeType) {
              return;
            }
            var style = getStyle(elem);
            if (style.display == "none") {
              return getZeroSize();
            }
            var size = {};
            size.width = elem.offsetWidth;
            size.height = elem.offsetHeight;
            var isBorderBox = size.isBorderBox = style.boxSizing == "border-box";
            for (var i = 0; i < measurementsLength; i++) {
              var measurement = measurements[i];
              var value = style[measurement];
              var num = parseFloat(value);
              size[measurement] = !isNaN(num) ? num : 0;
            }
            var paddingWidth = size.paddingLeft + size.paddingRight;
            var paddingHeight = size.paddingTop + size.paddingBottom;
            var marginWidth = size.marginLeft + size.marginRight;
            var marginHeight = size.marginTop + size.marginBottom;
            var borderWidth = size.borderLeftWidth + size.borderRightWidth;
            var borderHeight = size.borderTopWidth + size.borderBottomWidth;
            var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
            var styleWidth = getStyleSize(style.width);
            if (styleWidth !== false) {
              size.width = styleWidth + (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);
            }
            var styleHeight = getStyleSize(style.height);
            if (styleHeight !== false) {
              size.height = styleHeight + (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);
            }
            size.innerWidth = size.width - (paddingWidth + borderWidth);
            size.innerHeight = size.height - (paddingHeight + borderHeight);
            size.outerWidth = size.width + marginWidth;
            size.outerHeight = size.height + marginHeight;
            return size;
          }
          return getSize;
        });
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
        /*!
        * Unidragger v2.3.1
        * Draggable base class
        * MIT license
        */
        (function(window2, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(96)], __WEBPACK_AMD_DEFINE_RESULT__ = function(Unipointer) {
              return factory(window2, Unipointer);
            }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(window, function factory(window2, Unipointer) {
          function Unidragger() {
          }
          var proto = Unidragger.prototype = Object.create(Unipointer.prototype);
          proto.bindHandles = function() {
            this._bindHandles(true);
          };
          proto.unbindHandles = function() {
            this._bindHandles(false);
          };
          proto._bindHandles = function(isAdd) {
            isAdd = isAdd === void 0 ? true : isAdd;
            var bindMethod = isAdd ? "addEventListener" : "removeEventListener";
            var touchAction = isAdd ? this._touchActionValue : "";
            for (var i = 0; i < this.handles.length; i++) {
              var handle = this.handles[i];
              this._bindStartEvent(handle, isAdd);
              handle[bindMethod]("click", this);
              if (window2.PointerEvent) {
                handle.style.touchAction = touchAction;
              }
            }
          };
          proto._touchActionValue = "none";
          proto.pointerDown = function(event2, pointer) {
            var isOkay = this.okayPointerDown(event2);
            if (!isOkay) {
              return;
            }
            this.pointerDownPointer = {
              pageX: pointer.pageX,
              pageY: pointer.pageY
            };
            event2.preventDefault();
            this.pointerDownBlur();
            this._bindPostStartEvents(event2);
            this.emitEvent("pointerDown", [event2, pointer]);
          };
          var cursorNodes = {
            TEXTAREA: true,
            INPUT: true,
            SELECT: true,
            OPTION: true
          };
          var clickTypes = {
            radio: true,
            checkbox: true,
            button: true,
            submit: true,
            image: true,
            file: true
          };
          proto.okayPointerDown = function(event2) {
            var isCursorNode = cursorNodes[event2.target.nodeName];
            var isClickType = clickTypes[event2.target.type];
            var isOkay = !isCursorNode || isClickType;
            if (!isOkay) {
              this._pointerReset();
            }
            return isOkay;
          };
          proto.pointerDownBlur = function() {
            var focused = document.activeElement;
            var canBlur = focused && focused.blur && focused != document.body;
            if (canBlur) {
              focused.blur();
            }
          };
          proto.pointerMove = function(event2, pointer) {
            var moveVector = this._dragPointerMove(event2, pointer);
            this.emitEvent("pointerMove", [event2, pointer, moveVector]);
            this._dragMove(event2, pointer, moveVector);
          };
          proto._dragPointerMove = function(event2, pointer) {
            var moveVector = {
              x: pointer.pageX - this.pointerDownPointer.pageX,
              y: pointer.pageY - this.pointerDownPointer.pageY
            };
            if (!this.isDragging && this.hasDragStarted(moveVector)) {
              this._dragStart(event2, pointer);
            }
            return moveVector;
          };
          proto.hasDragStarted = function(moveVector) {
            return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;
          };
          proto.pointerUp = function(event2, pointer) {
            this.emitEvent("pointerUp", [event2, pointer]);
            this._dragPointerUp(event2, pointer);
          };
          proto._dragPointerUp = function(event2, pointer) {
            if (this.isDragging) {
              this._dragEnd(event2, pointer);
            } else {
              this._staticClick(event2, pointer);
            }
          };
          proto._dragStart = function(event2, pointer) {
            this.isDragging = true;
            this.isPreventingClicks = true;
            this.dragStart(event2, pointer);
          };
          proto.dragStart = function(event2, pointer) {
            this.emitEvent("dragStart", [event2, pointer]);
          };
          proto._dragMove = function(event2, pointer, moveVector) {
            if (!this.isDragging) {
              return;
            }
            this.dragMove(event2, pointer, moveVector);
          };
          proto.dragMove = function(event2, pointer, moveVector) {
            event2.preventDefault();
            this.emitEvent("dragMove", [event2, pointer, moveVector]);
          };
          proto._dragEnd = function(event2, pointer) {
            this.isDragging = false;
            setTimeout(function() {
              delete this.isPreventingClicks;
            }.bind(this));
            this.dragEnd(event2, pointer);
          };
          proto.dragEnd = function(event2, pointer) {
            this.emitEvent("dragEnd", [event2, pointer]);
          };
          proto.onclick = function(event2) {
            if (this.isPreventingClicks) {
              event2.preventDefault();
            }
          };
          proto._staticClick = function(event2, pointer) {
            if (this.isIgnoringMouseUp && event2.type == "mouseup") {
              return;
            }
            this.staticClick(event2, pointer);
            if (event2.type != "mouseup") {
              this.isIgnoringMouseUp = true;
              setTimeout(function() {
                delete this.isIgnoringMouseUp;
              }.bind(this), 400);
            }
          };
          proto.staticClick = function(event2, pointer) {
            this.emitEvent("staticClick", [event2, pointer]);
          };
          Unidragger.getPointerPoint = Unipointer.getPointerPoint;
          return Unidragger;
        });
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
        /*!
        * Unipointer v2.3.0
        * base class for doing one thing with pointer event
        * MIT license
        */
        (function(window2, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(97)], __WEBPACK_AMD_DEFINE_RESULT__ = function(EvEmitter) {
              return factory(window2, EvEmitter);
            }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(window, function factory(window2, EvEmitter) {
          function noop() {
          }
          function Unipointer() {
          }
          var proto = Unipointer.prototype = Object.create(EvEmitter.prototype);
          proto.bindStartEvent = function(elem) {
            this._bindStartEvent(elem, true);
          };
          proto.unbindStartEvent = function(elem) {
            this._bindStartEvent(elem, false);
          };
          proto._bindStartEvent = function(elem, isAdd) {
            isAdd = isAdd === void 0 ? true : isAdd;
            var bindMethod = isAdd ? "addEventListener" : "removeEventListener";
            var startEvent = "mousedown";
            if (window2.PointerEvent) {
              startEvent = "pointerdown";
            } else if ("ontouchstart" in window2) {
              startEvent = "touchstart";
            }
            elem[bindMethod](startEvent, this);
          };
          proto.handleEvent = function(event2) {
            var method = "on" + event2.type;
            if (this[method]) {
              this[method](event2);
            }
          };
          proto.getTouch = function(touches) {
            for (var i = 0; i < touches.length; i++) {
              var touch = touches[i];
              if (touch.identifier == this.pointerIdentifier) {
                return touch;
              }
            }
          };
          proto.onmousedown = function(event2) {
            var button = event2.button;
            if (button && button !== 0 && button !== 1) {
              return;
            }
            this._pointerDown(event2, event2);
          };
          proto.ontouchstart = function(event2) {
            this._pointerDown(event2, event2.changedTouches[0]);
          };
          proto.onpointerdown = function(event2) {
            this._pointerDown(event2, event2);
          };
          proto._pointerDown = function(event2, pointer) {
            if (event2.button || this.isPointerDown) {
              return;
            }
            this.isPointerDown = true;
            this.pointerIdentifier = pointer.pointerId !== void 0 ? pointer.pointerId : pointer.identifier;
            this.pointerDown(event2, pointer);
          };
          proto.pointerDown = function(event2, pointer) {
            this._bindPostStartEvents(event2);
            this.emitEvent("pointerDown", [event2, pointer]);
          };
          var postStartEvents = {
            mousedown: ["mousemove", "mouseup"],
            touchstart: ["touchmove", "touchend", "touchcancel"],
            pointerdown: ["pointermove", "pointerup", "pointercancel"]
          };
          proto._bindPostStartEvents = function(event2) {
            if (!event2) {
              return;
            }
            var events = postStartEvents[event2.type];
            events.forEach(function(eventName) {
              window2.addEventListener(eventName, this);
            }, this);
            this._boundPointerEvents = events;
          };
          proto._unbindPostStartEvents = function() {
            if (!this._boundPointerEvents) {
              return;
            }
            this._boundPointerEvents.forEach(function(eventName) {
              window2.removeEventListener(eventName, this);
            }, this);
            delete this._boundPointerEvents;
          };
          proto.onmousemove = function(event2) {
            this._pointerMove(event2, event2);
          };
          proto.onpointermove = function(event2) {
            if (event2.pointerId == this.pointerIdentifier) {
              this._pointerMove(event2, event2);
            }
          };
          proto.ontouchmove = function(event2) {
            var touch = this.getTouch(event2.changedTouches);
            if (touch) {
              this._pointerMove(event2, touch);
            }
          };
          proto._pointerMove = function(event2, pointer) {
            this.pointerMove(event2, pointer);
          };
          proto.pointerMove = function(event2, pointer) {
            this.emitEvent("pointerMove", [event2, pointer]);
          };
          proto.onmouseup = function(event2) {
            this._pointerUp(event2, event2);
          };
          proto.onpointerup = function(event2) {
            if (event2.pointerId == this.pointerIdentifier) {
              this._pointerUp(event2, event2);
            }
          };
          proto.ontouchend = function(event2) {
            var touch = this.getTouch(event2.changedTouches);
            if (touch) {
              this._pointerUp(event2, touch);
            }
          };
          proto._pointerUp = function(event2, pointer) {
            this._pointerDone();
            this.pointerUp(event2, pointer);
          };
          proto.pointerUp = function(event2, pointer) {
            this.emitEvent("pointerUp", [event2, pointer]);
          };
          proto._pointerDone = function() {
            this._pointerReset();
            this._unbindPostStartEvents();
            this.pointerDone();
          };
          proto._pointerReset = function() {
            this.isPointerDown = false;
            delete this.pointerIdentifier;
          };
          proto.pointerDone = noop;
          proto.onpointercancel = function(event2) {
            if (event2.pointerId == this.pointerIdentifier) {
              this._pointerCancel(event2, event2);
            }
          };
          proto.ontouchcancel = function(event2) {
            var touch = this.getTouch(event2.changedTouches);
            if (touch) {
              this._pointerCancel(event2, touch);
            }
          };
          proto._pointerCancel = function(event2, pointer) {
            this._pointerDone();
            this.pointerCancel(event2, pointer);
          };
          proto.pointerCancel = function(event2, pointer) {
            this.emitEvent("pointerCancel", [event2, pointer]);
          };
          Unipointer.getPointerPoint = function(pointer) {
            return {
              x: pointer.pageX,
              y: pointer.pageY
            };
          };
          return Unipointer;
        });
      },
      function(module2, exports2, __webpack_require__) {
        var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
        (function(global2, factory) {
          {
            !(__WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.call(exports2, __webpack_require__, exports2, module2) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }
        })(typeof window != "undefined" ? window : this, function() {
          function EvEmitter() {
          }
          var proto = EvEmitter.prototype;
          proto.on = function(eventName, listener) {
            if (!eventName || !listener) {
              return;
            }
            var events = this._events = this._events || {};
            var listeners = events[eventName] = events[eventName] || [];
            if (listeners.indexOf(listener) == -1) {
              listeners.push(listener);
            }
            return this;
          };
          proto.once = function(eventName, listener) {
            if (!eventName || !listener) {
              return;
            }
            this.on(eventName, listener);
            var onceEvents = this._onceEvents = this._onceEvents || {};
            var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};
            onceListeners[listener] = true;
            return this;
          };
          proto.off = function(eventName, listener) {
            var listeners = this._events && this._events[eventName];
            if (!listeners || !listeners.length) {
              return;
            }
            var index2 = listeners.indexOf(listener);
            if (index2 != -1) {
              listeners.splice(index2, 1);
            }
            return this;
          };
          proto.emitEvent = function(eventName, args) {
            var listeners = this._events && this._events[eventName];
            if (!listeners || !listeners.length) {
              return;
            }
            listeners = listeners.slice(0);
            args = args || [];
            var onceListeners = this._onceEvents && this._onceEvents[eventName];
            for (var i = 0; i < listeners.length; i++) {
              var listener = listeners[i];
              var isOnce = onceListeners && onceListeners[listener];
              if (isOnce) {
                this.off(eventName, listener);
                delete onceListeners[listener];
              }
              listener.apply(this, args);
            }
            return this;
          };
          proto.allOff = function() {
            delete this._events;
            delete this._onceEvents;
          };
          return EvEmitter;
        });
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var pip2 = function pip3() {
          var _this = this;
          var player = this;
          function onPipBtnClick() {
            if (player.video !== document.pictureInPictureElement) {
              player.video.requestPictureInPicture();
            } else {
              document.exitPictureInPicture();
            }
          }
          player.on("pipBtnClick", onPipBtnClick);
          var onWebkitpresentationmodechanged = function onWebkitpresentationmodechanged2(e) {
            var mode = player.video.webkitPresentationMode;
            _this.pMode = mode;
            if (mode === _util.PresentationMode.PIP) {
              player.emit("requestPictureInPicture", e.pictureInPictureWindow);
            } else if (mode === _util.PresentationMode.INLINE) {
              player.emit("exitPictureInPicture");
            }
          };
          player.video.addEventListener("enterpictureinpicture", function(pipWindow) {
            (0, _util.addClass)(player.root, "xgplayer-pip-active");
            player.emit("requestPictureInPicture", pipWindow);
          });
          player.video.addEventListener("leavepictureinpicture", function() {
            (0, _util.removeClass)(player.root, "xgplayer-pip-active");
            player.emit("exitPictureInPicture");
          });
          (0, _util.checkWebkitSetPresentationMode)(player.video) && player.video.addEventListener("webkitpresentationmodechanged", onWebkitpresentationmodechanged);
          function onDestroy() {
            player.off("pipBtnClick", onPipBtnClick);
            player.off("destroy", onDestroy);
            (0, _util.checkWebkitSetPresentationMode)(player.video) && player.video.removeEventListener("webkitpresentationmodechanged", onWebkitpresentationmodechanged);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "pip",
          method: pip2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var playNext2 = function playNext3() {
          var player = this;
          var nextBtn = player.config.playNext;
          player.currentVideoIndex = -1;
          function onPlayNextBtnClick() {
            if (player.currentVideoIndex + 1 < nextBtn.urlList.length) {
              player.currentVideoIndex++;
              player.video.autoplay = true;
              player.src = nextBtn.urlList[player.currentVideoIndex];
              player.emit("playerNext", player.currentVideoIndex + 1);
              if (player.currentVideoIndex + 1 === nextBtn.urlList.length) {
                player.emit("urlListEnd");
              }
            }
          }
          player.on("playNextBtnClick", onPlayNextBtnClick);
          function onDestroy() {
            player.off("playNextBtnClick", onPlayNextBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "playNext",
          method: playNext2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var reload2 = function reload3() {
          var player = this;
          var reloadConfig = player.config.reload;
          if (!reloadConfig) {
            return;
          }
          function onReloadBtnClick() {
            (0, _util.removeClass)(player.root, "xgplayer-is-error");
            player.src = player.config.url;
          }
          player.on("reloadBtnClick", onReloadBtnClick);
          function onDestroy() {
            player.off("reloadBtnClick", onReloadBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "reload",
          method: reload2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var rotate2 = function rotate3() {
          var player = this;
          var rotateConfig = player.config.rotate;
          if (!rotateConfig) {
            return;
          }
          function onRotateBtnClick() {
            player.rotate(rotateConfig.clockwise, rotateConfig.innerRotate);
          }
          player.on("rotateBtnClick", onRotateBtnClick);
          function onDestroy() {
            player.off("rotateBtnClick", onRotateBtnClick);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.updateRotateDeg = function() {
            var player2 = this;
            if (!player2.rotateDeg) {
              player2.rotateDeg = 0;
            }
            var width = player2.root.offsetWidth;
            var height = player2.root.offsetHeight;
            var targetWidth = player2.video.videoWidth;
            var targetHeight = player2.video.videoHeight;
            if (!player2.config.rotate.innerRotate && player2.config.rotate.controlsFix) {
              player2.root.style.width = height + "px";
              player2.root.style.height = width + "px";
            }
            var scale = void 0;
            if (player2.rotateDeg === 0.25 || player2.rotateDeg === 0.75) {
              if (player2.config.rotate.innerRotate) {
                if (targetWidth / targetHeight > height / width) {
                  var videoWidth = 0;
                  if (targetHeight / targetWidth > height / width) {
                    videoWidth = height * targetWidth / targetHeight;
                  } else {
                    videoWidth = width;
                  }
                  scale = height / videoWidth;
                } else {
                  var videoHeight = 0;
                  if (targetHeight / targetWidth > height / width) {
                    videoHeight = height;
                  } else {
                    videoHeight = width * targetHeight / targetWidth;
                  }
                  scale = width / videoHeight;
                }
              } else {
                if (width >= height) {
                  scale = width / height;
                } else {
                  scale = height / width;
                }
              }
              scale = Number(scale.toFixed(5));
            } else {
              scale = 1;
            }
            if (player2.config.rotate.innerRotate) {
              player2.video.style.transformOrigin = "center center";
              player2.video.style.transform = "rotate(" + player2.rotateDeg + "turn) scale(" + scale + ")";
              player2.video.style.webKitTransform = "rotate(" + player2.rotateDeg + "turn) scale(" + scale + ")";
            } else {
              if (player2.config.rotate.controlsFix) {
                player2.video.style.transformOrigin = "center center";
                player2.video.style.transform = "rotate(" + player2.rotateDeg + "turn) scale(" + scale + ")";
                player2.video.style.webKitTransform = "rotate(" + player2.rotateDeg + "turn) scale(" + scale + ")";
              } else {
                player2.root.style.transformOrigin = "center center";
                player2.root.style.transform = "rotate(" + player2.rotateDeg + "turn) scale(" + 1 + ")";
                player2.root.style.webKitTransform = "rotate(" + player2.rotateDeg + "turn) scale(" + 1 + ")";
              }
            }
          };
          player.rotate = function() {
            var clockwise = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
            var times = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
            var player2 = this;
            if (!player2.rotateDeg) {
              player2.rotateDeg = 0;
            }
            var factor = clockwise ? 1 : -1;
            player2.rotateDeg = (player2.rotateDeg + 1 + factor * 0.25 * times) % 1;
            this.updateRotateDeg();
            player2.emit("rotate", player2.rotateDeg * 360);
          };
        };
        exports2.default = {
          name: "rotate",
          method: rotate2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var screenShot2 = function screenShot3() {
          var player = this;
          var screenShotOptions = player.config.screenShot;
          if (!screenShotOptions) {
            return;
          }
          player.video.setAttribute("crossOrigin", "anonymous");
          var encoderOptions = 0.92;
          if (screenShotOptions.quality || screenShotOptions.quality === 0) {
            encoderOptions = screenShotOptions.quality;
          }
          var type = screenShotOptions.type === void 0 ? "image/png" : screenShotOptions.type;
          var format2 = screenShotOptions.format === void 0 ? ".png" : screenShotOptions.format;
          var canvas = document.createElement("canvas");
          var canvasCtx = canvas.getContext("2d");
          var img = new Image();
          canvas.width = this.config.width || 600;
          canvas.height = this.config.height || 337.5;
          var saveScreenShot = function saveScreenShot2(data, filename) {
            var saveLink = document.createElement("a");
            saveLink.href = data;
            saveLink.download = filename;
            var event2 = document.createEvent("MouseEvents");
            event2.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
            saveLink.dispatchEvent(event2);
          };
          player.screenShot = function() {
            var save = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
            save = screenShotOptions.saveImg === void 0 ? save : screenShotOptions.saveImg;
            canvas.width = player.video.videoWidth || 600;
            canvas.height = player.video.videoHeight || 337.5;
            img.onload = function() {
              canvasCtx.drawImage(player.video, 0, 0, canvas.width, canvas.height);
              img.src = canvas.toDataURL(type, encoderOptions).replace(type, "image/octet-stream");
              var screenShotImg = img.src.replace(/^data:image\/[^;]+/, "data:application/octet-stream");
              player.emit("screenShot", screenShotImg);
              save && saveScreenShot(screenShotImg, "\u622A\u56FE" + format2);
            }();
          };
          player.on("screenShotBtnClick", player.screenShot);
          function onDestroy() {
            player.off("screenShotBtnClick", player.screenShot);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "screenShot",
          method: screenShot2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _error = __webpack_require__(4);
        var _error2 = _interopRequireDefault2(_error);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        function stallCheck() {
          var player = this;
          if (!player.config.enableStallCheck)
            return;
          var lastCurrentTime = 0;
          var stallFlag = void 0, stallCheckTimer = void 0;
          player.once("complete", function() {
            setInterval(function() {
              if (player.currentTime - (lastCurrentTime || 0) > 0.1 || player.paused) {
                if (stallFlag === 1 || stallFlag === 2) {
                  stallFlag = 0;
                  clearTimeout(stallCheckTimer);
                  stallCheckTimer = null;
                }
              } else {
                if (!stallFlag) {
                  stallFlag = 1;
                  stallCheckTimer = setTimeout(function() {
                    if (stallFlag === 1) {
                      stallFlag = 2;
                      player.emit("error", new _error2.default("STALL"));
                    }
                    stallCheckTimer = null;
                  }, 2e4);
                }
              }
              lastCurrentTime = player.currentTime;
            }, 1e3);
          });
        }
        exports2.default = {
          name: "stallCheck",
          method: stallCheck
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _sniffer = __webpack_require__(5);
        var _sniffer2 = _interopRequireDefault2(_sniffer);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var volume2 = function volume3() {
          var player = this;
          var root = player.root;
          var container = void 0, slider = void 0, bar = void 0, selected = void 0;
          function onCanplay() {
            if (!player.controls)
              return;
            player.volume = player.config.volume;
            container = player.controls.querySelector(".xgplayer-volume");
            if (!container)
              return;
            slider = container.querySelector(".xgplayer-slider");
            bar = container.querySelector(".xgplayer-bar");
            selected = container.querySelector(".xgplayer-drag");
            if (_sniffer2.default.device === "mobile") {
              if (player.volume === 0) {
                player.video.muted = true;
              }
              onVolumeChange();
            }
          }
          player.once("canplay", onCanplay);
          function onVolumeBarClick(e) {
            if (!slider)
              return;
            player.video.muted = false;
            slider.focus();
            (0, _util.event)(e);
            var barRect = bar.getBoundingClientRect();
            var pos = { x: e.clientX, y: e.clientY };
            var height = selected.getBoundingClientRect().height;
            var isMove = false;
            var onMove = function onMove2(e2) {
              e2.preventDefault();
              e2.stopPropagation();
              (0, _util.event)(e2);
              isMove = true;
              var w = height - e2.clientY + pos.y;
              var now = w / barRect.height;
              selected.style.height = w + "px";
              player.volume = Math.max(Math.min(now, 1), 0);
            };
            var onUp = function onUp2(e2) {
              e2.preventDefault();
              e2.stopPropagation();
              (0, _util.event)(e2);
              window.removeEventListener("mousemove", onMove);
              window.removeEventListener("touchmove", onMove);
              window.removeEventListener("mouseup", onUp2);
              window.removeEventListener("touchend", onUp2);
              if (!isMove) {
                var w = barRect.height - (e2.clientY - barRect.top);
                var now = w / barRect.height;
                selected.style.height = w + "px";
                if (now <= 0) {
                  if (player.volume > 0) {
                    selected.volume = player.video.volume;
                  } else {
                    now = selected.volume;
                  }
                }
                player.volume = Math.max(Math.min(now, 1), 0);
              }
              slider.volume = player.volume;
              isMove = false;
            };
            window.addEventListener("mousemove", onMove);
            window.addEventListener("touchmove", onMove);
            window.addEventListener("mouseup", onUp);
            window.addEventListener("touchend", onUp);
            return false;
          }
          player.on("volumeBarClick", onVolumeBarClick);
          function onVolumeIconClick() {
            if (_sniffer2.default.device === "mobile") {
              if (player.video.muted) {
                player.video.muted = false;
                player.emit("unmute");
                player.volume = 1;
              } else {
                player.video.muted = true;
                player.emit("mute");
                player.volume = 0;
              }
            } else {
              if (!slider)
                return;
              player.video.muted = false;
              if (player.volume < 0.1) {
                if (slider.volume < 0.1) {
                  player.volume = 0.6;
                } else {
                  player.volume = slider.volume;
                }
                player.emit("unmute");
              } else {
                player.volume = 0;
                player.emit("mute");
              }
            }
          }
          player.on("volumeIconClick", onVolumeIconClick);
          function onVolumeIconEnter() {
            (0, _util.addClass)(root, "xgplayer-volume-active");
            if (container) {
              container.focus();
            }
          }
          player.on("volumeIconEnter", onVolumeIconEnter);
          function onVolumeIconLeave() {
            (0, _util.removeClass)(root, "xgplayer-volume-active");
          }
          player.on("volumeIconLeave", onVolumeIconLeave);
          var _changeTimer = null;
          function onVolumeChange() {
            if (_changeTimer) {
              clearTimeout(_changeTimer);
            }
            _changeTimer = setTimeout(function() {
              if (_sniffer2.default.device === "mobile") {
                (0, _util.removeClass)(root, "xgplayer-volume-muted");
                (0, _util.removeClass)(root, "xgplayer-volume-large");
                if (player.video.muted || player.video.defaultMuted) {
                  if (!player.video.muted) {
                    player.video.muted = true;
                  }
                  player.video.defaultMuted = false;
                  (0, _util.addClass)(root, "xgplayer-volume-muted");
                } else {
                  (0, _util.addClass)(root, "xgplayer-volume-large");
                }
              } else {
                (0, _util.removeClass)(root, "xgplayer-volume-muted");
                (0, _util.removeClass)(root, "xgplayer-volume-small");
                (0, _util.removeClass)(root, "xgplayer-volume-large");
                if (player.volume === 0 || player.muted) {
                  (0, _util.addClass)(root, "xgplayer-volume-muted");
                } else if (player.volume < 0.5) {
                  (0, _util.addClass)(root, "xgplayer-volume-small");
                } else {
                  (0, _util.addClass)(root, "xgplayer-volume-large");
                }
                if (!bar)
                  return;
                var containerHeight = bar.getBoundingClientRect().height || 76;
                selected.style.height = player.volume * containerHeight + "px";
              }
            }, 50);
          }
          player.on("volumechange", onVolumeChange);
          function onDestroy() {
            player.off("canplay", onCanplay);
            player.off("volumeBarClick", onVolumeBarClick);
            player.off("volumeIconClick", onVolumeIconClick);
            player.off("volumeIconEnter", onVolumeIconEnter);
            player.off("volumeIconLeave", onVolumeIconLeave);
            player.off("volumechange", onVolumeChange);
            player.off("destroy", onDestroy);
            if (_changeTimer) {
              clearTimeout(_changeTimer);
              _changeTimer = null;
            }
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "volume",
          method: volume2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _createClass2 = function() {
          function defineProperties(target, props) {
            for (var i = 0; i < props.length; i++) {
              var descriptor = props[i];
              descriptor.enumerable = descriptor.enumerable || false;
              descriptor.configurable = true;
              if ("value" in descriptor)
                descriptor.writable = true;
              Object.defineProperty(target, descriptor.key, descriptor);
            }
          }
          return function(Constructor, protoProps, staticProps) {
            if (protoProps)
              defineProperties(Constructor.prototype, protoProps);
            if (staticProps)
              defineProperties(Constructor, staticProps);
            return Constructor;
          };
        }();
        var _xgplayerSubtitles = __webpack_require__(106);
        var _xgplayerSubtitles2 = _interopRequireDefault2(_xgplayerSubtitles);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        function _classCallCheck2(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
        var defaultStyle = {
          follow: true,
          mode: "stroke",
          followBottom: 50,
          fitVideo: true,
          offsetBottom: 2,
          baseSizeX: 49,
          baseSizeY: 28,
          minSize: 16,
          minMobileSize: 13,
          line: "double",
          fontColor: "#fff"
        };
        var XgSubtitles = function() {
          function XgSubtitles2(player, list, style) {
            var _this = this;
            _classCallCheck2(this, XgSubtitles2);
            var subtitle = this.create(list, style, player.textTrackShowDefault);
            subtitle.attachPlayer(player);
            this.subtitle = subtitle;
            this.player = player;
            this.positionData = {
              vBottom: 0,
              marginBottom: 0
            };
            this.isActive = false;
            this.followBottom = style.followBottom;
            ["onSubtitleResize", "onFocus", "onBlur"].map(function(item) {
              _this[item] = _this[item].bind(_this);
            });
            if (player.controls && style.follow) {
              this.subtitle.on("resize", this.onSubtitleResize);
              player.on("focus", this.onFocus);
              player.on("blur", this.onBlur);
            }
          }
          _createClass2(XgSubtitles2, [{
            key: "create",
            value: function create(textTrack3) {
              var style = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
              var defaultOpen = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
              var config = {
                subTitles: textTrack3,
                defaultOpen
              };
              Object.keys(style).map(function(key) {
                config[key] = style[key];
              });
              return new _xgplayerSubtitles2.default(config);
            }
          }, {
            key: "switch",
            value: function _switch(subtitle) {
              return this.subtitle.switch(subtitle);
            }
          }, {
            key: "switchOff",
            value: function switchOff() {
              return this.subtitle.switchOff();
            }
          }, {
            key: "setSubTitles",
            value: function setSubTitles(subtitles, showDefault, isNeedMove) {
              return this.subtitle.setSubTitles(subtitles, showDefault, isNeedMove);
            }
          }, {
            key: "onFocus",
            value: function onFocus() {
              var _positionData = this.positionData, marginBottom = _positionData.marginBottom, vBottom = _positionData.vBottom;
              if (this.isActive || !marginBottom) {
                return;
              }
              this.isActive = true;
              var bottom = marginBottom + vBottom;
              if (this.followBottom > bottom) {
                bottom = this.followBottom;
              }
              this.subtitle && (this.subtitle.root.style.bottom = bottom + "px");
            }
          }, {
            key: "onBlur",
            value: function onBlur() {
              this.isActive = false;
              var bottom = this.positionData.vBottom + this.positionData.marginBottom;
              this.subtitle && (this.subtitle.root.style.bottom = bottom + "px");
            }
          }, {
            key: "onSubtitleResize",
            value: function onSubtitleResize(data) {
              this.positionData.vBottom = data.vBottom;
              this.positionData.marginBottom = data.marginBottom;
            }
          }, {
            key: "destroy",
            value: function destroy() {
              this.subtitle.off("resize", this.onSubtitleResize);
              this.player.off("focus", this.onFocus);
              this.player.off("blur", this.onBlur);
              this.subtitle.destroy();
              this.subtitle = null;
            }
          }]);
          return XgSubtitles2;
        }();
        var textTrack2 = function textTrack3() {
          var _this2 = this;
          var player = this;
          var textTrack4 = player.config.textTrack;
          if (!textTrack4) {
            return;
          }
          var textTrackStyle = player.config.textTrackStyle || {};
          Object.keys(defaultStyle).map(function(key) {
            if (textTrackStyle[key] === void 0) {
              textTrackStyle[key] = defaultStyle[key];
            }
          });
          player.textTrackShowDefault = false;
          player.config.textTrack.map(function(item, index2) {
            if (!item.id && !item.language) {
              item.id = index2;
            }
            !item.url && (item.url = item.src);
            !item.language && (item.language = item.srclang);
            item.isDefault === void 0 && (item.isDefault = item.default);
            !player.textTrackShowDefault && (player.textTrackShowDefault = item.isDefault || item.default);
          });
          this.subTitles = new XgSubtitles(player, player.config.textTrack, textTrackStyle);
          player.setSubTitles = function(textTrack5) {
            var needRemove = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
            var showDefault = false;
            textTrack5.map(function(item, index2) {
              if (!item.id && !item.language) {
                item.id = index2;
              }
              !item.url && (item.url = item.src);
              !item.language && (item.language = item.srclang);
              item.isDefault === void 0 && (item.isDefault = item.default);
              item.isDefault && (showDefault = true);
            });
            player.textTrackShowDefault = showDefault;
            _this2.subTitles.setSubTitles(textTrack5, showDefault, needRemove);
            player.emit("subtitle_change", {
              off: false,
              isListUpdate: true,
              list: textTrack5
            });
          };
          player.switchSubTitle = function() {
            var subtitle = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : { id: "", language: "" };
            _this2.subTitles.switch(subtitle).then(function(data) {
              if (data.code === 0) {
                subtitle.off = false;
                subtitle.isListUpdate = false;
                subtitle.list = [];
                player.emit("subtitle_change", subtitle);
              }
            });
          };
          player.switchOffSubtile = function() {
            _this2.subTitles.switchOff();
            player.emit("subtitle_change", {
              off: true,
              isListUpdate: false,
              list: []
            });
          };
          function onDestroy() {
            this.subTitles.destroy();
            this.subTitles = null;
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "textTrack",
          method: textTrack2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        !function(t, e) {
          module2.exports = e();
        }(this, function() {
          function t(t2) {
            return t2 && t2.__esModule && Object.prototype.hasOwnProperty.call(t2, "default") ? t2.default : t2;
          }
          function e(t2, e2) {
            return e2 = { exports: {} }, t2(e2, e2.exports), e2.exports;
          }
          function n(t2) {
            var e2, n2;
            this.promise = new t2(function(t3, r2) {
              if (e2 !== void 0 || n2 !== void 0)
                throw TypeError("Bad Promise constructor");
              e2 = t3, n2 = r2;
            }), this.resolve = F(e2), this.reject = F(n2);
          }
          function r(t2) {
            var e2 = t2.length;
            return e2 === 3 ? (60 * (60 * Number(t2[0]) + Number(t2[1])) * 1e3 + 1e3 * Number(t2[2])) / 1e3 : e2 === 2 ? (60 * Number(t2[0]) * 1e3 + 1e3 * Number(t2[1])) / 1e3 : Number(t2[0]);
          }
          function i(t2) {
            return /^(\-|\+)?\d+(\.\d+)?$/.test(t2);
          }
          function o(t2) {
            return t2;
          }
          function s(t2, e2) {
            return t2 >= 0 && t2 < e2.length ? e2[t2] : "";
          }
          function a(t2, e2) {
            if (!t2)
              return false;
            if (t2.classList)
              return Array.prototype.some.call(t2.classList, function(t3) {
                return t3 === e2;
              });
            var n2 = t2.className && Je(t2.className) === "object" ? t2.getAttribute("class") : t2.className;
            return n2 && !!n2.match(new RegExp("(\\s|^)" + e2 + "(\\s|$)"));
          }
          function u(t2, e2) {
            t2 && (t2.classList ? e2.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach(function(e3) {
              e3 && t2.classList.add(e3);
            }) : a(t2, e2) || (t2.className && Je(t2.className) === "object" ? t2.setAttribute("class", t2.getAttribute("class") + " " + e2) : t2.className += " " + e2));
          }
          function c(t2, e2) {
            t2 && (t2.classList ? e2.split(/\s+/g).forEach(function(e3) {
              t2.classList.remove(e3);
            }) : a(t2, e2) && e2.split(/\s+/g).forEach(function(e3) {
              var n2 = new RegExp("(\\s|^)" + e3 + "(\\s|$)");
              t2.className && Je(t2.className) === "object" ? t2.setAttribute("class", t2.getAttribute("class").replace(n2, " ")) : t2.className = t2.className.replace(n2, " ");
            }));
          }
          function l(t2, e2, n2) {
            var r2 = e2.length;
            if (r2 < 1)
              return -1;
            if (n2 = n2 < 0 ? 0 : n2 >= r2 ? r2 - 1 : n2, e2[n2].start <= t2 && t2 < e2[n2].end)
              return n2;
            for (var i2 = e2[n2].end <= t2 ? n2 + 1 : 0; i2 < r2; i2++) {
              if (e2[i2].start <= t2 && t2 < e2[i2].end)
                return i2;
              if (t2 > e2[i2].end && i2 + 1 < r2 && t2 < e2[i2 + 1].start)
                return -1;
              if (t2 > e2[i2].end && i2 + 1 >= r2)
                return -1;
            }
            return -1;
          }
          function f(t2, e2, n2) {
            var r2 = e2.length;
            if (r2 < 1)
              return [];
            var i2 = [];
            if ((n2 = n2 < 0 ? 0 : n2 >= r2 ? r2 - 1 : n2) < r2)
              for (var o2 = e2[n2].end <= t2 ? n2 : 0; o2 < r2 && (e2[o2].start <= t2 && t2 < e2[o2].end && i2.push(o2), !(t2 < e2[o2].start)); o2++)
                ;
            return i2;
          }
          function h(t2) {
            return Object.prototype.toString.call(t2).match(/([^\s.*]+)(?=]$)/g)[0];
          }
          function d() {
            var t2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "div", e2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "", i2 = document.createElement(t2);
            return i2.className = r2, i2.innerHTML = e2, kr(n2).forEach(function(e3) {
              var r3 = e3, o2 = n2[e3];
              t2 === "video" || t2 === "audio" || t2 === "live-video" ? o2 && i2.setAttribute(r3, o2) : i2.setAttribute(r3, o2);
            }), i2;
          }
          function p() {
            var t2 = navigator.userAgent, e2 = /(?:Windows Phone)/.test(t2), n2 = /(?:SymbianOS)/.test(t2) || e2, r2 = /(?:Android)/.test(t2), i2 = /(?:Firefox)/.test(t2), o2 = /(?:iPad|PlayBook)/.test(t2) || r2 && !/(?:Mobile)/.test(t2) || i2 && /(?:Tablet)/.test(t2);
            return /(?:iPhone)/.test(t2) && !o2 || r2 || n2 || o2;
          }
          function v(t2) {
            var e2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n2 = "";
            t2.map(function(t3) {
              n2 += " " + e2 + " " + t3.key + " {" + t3.style + "}";
            });
            var r2 = document.createElement("style"), i2 = document.head || document.getElementsByTagName("head")[0];
            if (r2.type = "text/css", r2.id = "ssss", r2.styleSheet) {
              var o2 = function() {
                try {
                  r2.styleSheet.cssText = n2;
                } catch (t3) {
                }
              };
              r2.styleSheet.disabled ? setTimeout(o2, 10) : o2();
            } else {
              var s2 = document.createTextNode(n2);
              r2.appendChild(s2);
            }
            i2.appendChild(r2);
          }
          function y(t2, e2) {
            Ir || (Ir = new Lr()), Ir.addObserver(t2, e2);
          }
          function g(t2, e2) {
            Ir && Ir.unObserver(t2, e2);
          }
          function m(t2) {
            var e2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n2 = { code: Fr[t2].code, msg: Fr[t2].msg };
            return kr(e2).map(function(t3) {
              n2[t3] = e2[t3];
            }), n2;
          }
          function _(t2, e2, n2, r2, i2) {
            i2 ? n2(m(2, i2), { format: r2.format }) : r2.format ? (t2.list = r2.list, t2.format = r2.format, t2.styles = r2.styles, e2(t2)) : n2(m(3));
          }
          function x(t2) {
            return new xr(function(e2, n2) {
              if (t2.list)
                return void e2(t2);
              if (t2.json) {
                var r2 = Nr.parseJson(t2.json);
                return t2.list = r2, t2.format = "json", void e2(t2);
              }
              if (t2.stringContent && !t2.url)
                Nr.parse(t2.stringContent, function(r3, i3) {
                  _(t2, e2, n2, r3, i3);
                });
              else if (t2.url)
                new Tr({ url: t2.url, type: "text" }).then(function(r3) {
                  Nr.parse(r3.res.response, function(r4, i3) {
                    _(t2, e2, n2, r4, i3);
                  });
                }).catch(function(e3) {
                  var r3 = m(1, { statusText: e3.statusText, status: e3.status, type: e3.type, message: "http load error", url: t2.url });
                  n2(r3);
                });
              else {
                var i2 = m(8);
                n2(i2);
              }
            });
          }
          function b(t2, e2) {
            return !!(t2.id && t2.id === e2.id || t2.language && t2.language === e2.language);
          }
          var k = function(t2) {
            if (t2 == void 0)
              throw TypeError("Can't call method on  " + t2);
            return t2;
          }, w = function(t2) {
            return Object(k(t2));
          }, T = {}.hasOwnProperty, S = function(t2, e2) {
            return T.call(t2, e2);
          }, O = e(function(t2) {
            var e2 = t2.exports = { version: "2.6.12" };
            typeof __e == "number" && (__e = e2);
          }), E = (O.version, e(function(t2) {
            var e2 = t2.exports = typeof window != "undefined" && window.Math == Math ? window : typeof self != "undefined" && self.Math == Math ? self : Function("return this")();
            typeof __g == "number" && (__g = e2);
          })), P = e(function(t2) {
            var e2 = E["__core-js_shared__"] || (E["__core-js_shared__"] = {});
            (t2.exports = function(t3, n2) {
              return e2[t3] || (e2[t3] = n2 !== void 0 ? n2 : {});
            })("versions", []).push({ version: O.version, mode: "pure", copyright: "\xA9 2020 Denis Pushkarev (zloirock.ru)" });
          }), j = 0, M = Math.random(), A = function(t2) {
            return "Symbol(".concat(t2 === void 0 ? "" : t2, ")_", (++j + M).toString(36));
          }, C = P("keys"), R = function(t2) {
            return C[t2] || (C[t2] = A(t2));
          }, N = R("IE_PROTO"), L = Object.prototype, I = Object.getPrototypeOf || function(t2) {
            return t2 = w(t2), S(t2, N) ? t2[N] : typeof t2.constructor == "function" && t2 instanceof t2.constructor ? t2.constructor.prototype : t2 instanceof Object ? L : null;
          }, F = function(t2) {
            if (typeof t2 != "function")
              throw TypeError(t2 + " is not a function!");
            return t2;
          }, z = function(t2, e2, n2) {
            if (F(t2), e2 === void 0)
              return t2;
            switch (n2) {
              case 1:
                return function(n3) {
                  return t2.call(e2, n3);
                };
              case 2:
                return function(n3, r2) {
                  return t2.call(e2, n3, r2);
                };
              case 3:
                return function(n3, r2, i2) {
                  return t2.call(e2, n3, r2, i2);
                };
            }
            return function() {
              return t2.apply(e2, arguments);
            };
          }, B = function(t2) {
            return typeof t2 == "object" ? t2 !== null : typeof t2 == "function";
          }, D = function(t2) {
            if (!B(t2))
              throw TypeError(t2 + " is not an object!");
            return t2;
          }, H = function(t2) {
            try {
              return !!t2();
            } catch (t3) {
              return true;
            }
          }, V = !H(function() {
            return Object.defineProperty({}, "a", { get: function() {
              return 7;
            } }).a != 7;
          }), W = E.document, G = B(W) && B(W.createElement), U = function(t2) {
            return G ? W.createElement(t2) : {};
          }, $ = !V && !H(function() {
            return Object.defineProperty(U("div"), "a", { get: function() {
              return 7;
            } }).a != 7;
          }), K = function(t2, e2) {
            if (!B(t2))
              return t2;
            var n2, r2;
            if (e2 && typeof (n2 = t2.toString) == "function" && !B(r2 = n2.call(t2)))
              return r2;
            if (typeof (n2 = t2.valueOf) == "function" && !B(r2 = n2.call(t2)))
              return r2;
            if (!e2 && typeof (n2 = t2.toString) == "function" && !B(r2 = n2.call(t2)))
              return r2;
            throw TypeError("Can't convert object to primitive value");
          }, J = Object.defineProperty, Y = { f: V ? Object.defineProperty : function(t2, e2, n2) {
            if (D(t2), e2 = K(e2, true), D(n2), $)
              try {
                return J(t2, e2, n2);
              } catch (t3) {
              }
            if ("get" in n2 || "set" in n2)
              throw TypeError("Accessors not supported!");
            return "value" in n2 && (t2[e2] = n2.value), t2;
          } }, X = function(t2, e2) {
            return { enumerable: !(1 & t2), configurable: !(2 & t2), writable: !(4 & t2), value: e2 };
          }, q = V ? function(t2, e2, n2) {
            return Y.f(t2, e2, X(1, n2));
          } : function(t2, e2, n2) {
            return t2[e2] = n2, t2;
          }, Z = function(t2, e2, n2) {
            var r2, i2, o2, s2 = t2 & Z.F, a2 = t2 & Z.G, u2 = t2 & Z.S, c2 = t2 & Z.P, l2 = t2 & Z.B, f2 = t2 & Z.W, h2 = a2 ? O : O[e2] || (O[e2] = {}), d2 = h2.prototype, p2 = a2 ? E : u2 ? E[e2] : (E[e2] || {}).prototype;
            a2 && (n2 = e2);
            for (r2 in n2)
              (i2 = !s2 && p2 && p2[r2] !== void 0) && S(h2, r2) || (o2 = i2 ? p2[r2] : n2[r2], h2[r2] = a2 && typeof p2[r2] != "function" ? n2[r2] : l2 && i2 ? z(o2, E) : f2 && p2[r2] == o2 ? function(t3) {
                var e3 = function(e4, n3, r3) {
                  if (this instanceof t3) {
                    switch (arguments.length) {
                      case 0:
                        return new t3();
                      case 1:
                        return new t3(e4);
                      case 2:
                        return new t3(e4, n3);
                    }
                    return new t3(e4, n3, r3);
                  }
                  return t3.apply(this, arguments);
                };
                return e3.prototype = t3.prototype, e3;
              }(o2) : c2 && typeof o2 == "function" ? z(Function.call, o2) : o2, c2 && ((h2.virtual || (h2.virtual = {}))[r2] = o2, t2 & Z.R && d2 && !d2[r2] && q(d2, r2, o2)));
          };
          Z.F = 1, Z.G = 2, Z.S = 4, Z.P = 8, Z.B = 16, Z.W = 32, Z.U = 64, Z.R = 128;
          var Q = Z, tt = function(t2, e2) {
            var n2 = (O.Object || {})[t2] || Object[t2], r2 = {};
            r2[t2] = e2(n2), Q(Q.S + Q.F * H(function() {
              n2(1);
            }), "Object", r2);
          };
          tt("getPrototypeOf", function() {
            return function(t2) {
              return I(w(t2));
            };
          });
          var et = O.Object.getPrototypeOf, nt = t(e(function(t2) {
            t2.exports = { default: et, __esModule: true };
          })), rt = t(e(function(t2, e2) {
            e2.__esModule = true, e2.default = function(t3, e3) {
              if (!(t3 instanceof e3))
                throw new TypeError("Cannot call a class as a function");
            };
          })), it = Math.ceil, ot = Math.floor, st = function(t2) {
            return isNaN(t2 = +t2) ? 0 : (t2 > 0 ? ot : it)(t2);
          }, at = q, ut = {}, ct = {}.toString, lt = function(t2) {
            return ct.call(t2).slice(8, -1);
          }, ft = Object("z").propertyIsEnumerable(0) ? Object : function(t2) {
            return lt(t2) == "String" ? t2.split("") : Object(t2);
          }, ht = function(t2) {
            return ft(k(t2));
          }, dt = Math.min, pt = function(t2) {
            return t2 > 0 ? dt(st(t2), 9007199254740991) : 0;
          }, vt = Math.max, yt = Math.min, gt = function(t2, e2) {
            return t2 = st(t2), t2 < 0 ? vt(t2 + e2, 0) : yt(t2, e2);
          }, mt = function(t2) {
            return function(e2, n2, r2) {
              var i2, o2 = ht(e2), s2 = pt(o2.length), a2 = gt(r2, s2);
              if (t2 && n2 != n2) {
                for (; s2 > a2; )
                  if ((i2 = o2[a2++]) != i2)
                    return true;
              } else
                for (; s2 > a2; a2++)
                  if ((t2 || a2 in o2) && o2[a2] === n2)
                    return t2 || a2 || 0;
              return !t2 && -1;
            };
          }(false), _t = R("IE_PROTO"), xt = function(t2, e2) {
            var n2, r2 = ht(t2), i2 = 0, o2 = [];
            for (n2 in r2)
              n2 != _t && S(r2, n2) && o2.push(n2);
            for (; e2.length > i2; )
              S(r2, n2 = e2[i2++]) && (~mt(o2, n2) || o2.push(n2));
            return o2;
          }, bt = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","), kt = Object.keys || function(t2) {
            return xt(t2, bt);
          }, wt = V ? Object.defineProperties : function(t2, e2) {
            D(t2);
            for (var n2, r2 = kt(e2), i2 = r2.length, o2 = 0; i2 > o2; )
              Y.f(t2, n2 = r2[o2++], e2[n2]);
            return t2;
          }, Tt = E.document, St = Tt && Tt.documentElement, Ot = R("IE_PROTO"), Et = function() {
          }, Pt = function() {
            var t2, e2 = U("iframe"), n2 = bt.length;
            for (e2.style.display = "none", St.appendChild(e2), e2.src = "javascript:", (t2 = e2.contentWindow.document).open(), t2.write("<script>document.F=Object<\/script>"), t2.close(), Pt = t2.F; n2--; )
              delete Pt.prototype[bt[n2]];
            return Pt();
          }, jt = Object.create || function(t2, e2) {
            var n2;
            return t2 !== null ? (Et.prototype = D(t2), n2 = new Et(), Et.prototype = null, n2[Ot] = t2) : n2 = Pt(), e2 === void 0 ? n2 : wt(n2, e2);
          }, Mt = e(function(t2) {
            var e2 = P("wks"), n2 = E.Symbol, r2 = typeof n2 == "function";
            (t2.exports = function(t3) {
              return e2[t3] || (e2[t3] = r2 && n2[t3] || (r2 ? n2 : A)("Symbol." + t3));
            }).store = e2;
          }), At = Y.f, Ct = Mt("toStringTag"), Rt = function(t2, e2, n2) {
            t2 && !S(t2 = n2 ? t2 : t2.prototype, Ct) && At(t2, Ct, { configurable: true, value: e2 });
          }, Nt = {};
          q(Nt, Mt("iterator"), function() {
            return this;
          });
          var Lt = function(t2, e2, n2) {
            t2.prototype = jt(Nt, { next: X(1, n2) }), Rt(t2, e2 + " Iterator");
          }, It = Mt("iterator"), Ft = !([].keys && "next" in [].keys()), zt = function() {
            return this;
          }, Bt = function(t2, e2, n2, r2, i2, o2, s2) {
            Lt(n2, e2, r2);
            var a2, u2, c2, l2 = function(t3) {
              if (!Ft && t3 in p2)
                return p2[t3];
              switch (t3) {
                case "keys":
                case "values":
                  return function() {
                    return new n2(this, t3);
                  };
              }
              return function() {
                return new n2(this, t3);
              };
            }, f2 = e2 + " Iterator", h2 = i2 == "values", d2 = false, p2 = t2.prototype, v2 = p2[It] || p2["@@iterator"] || i2 && p2[i2], y2 = v2 || l2(i2), g2 = i2 ? h2 ? l2("entries") : y2 : void 0, m2 = e2 == "Array" ? p2.entries || v2 : v2;
            if (m2 && (c2 = I(m2.call(new t2()))) !== Object.prototype && c2.next && Rt(c2, f2, true), h2 && v2 && v2.name !== "values" && (d2 = true, y2 = function() {
              return v2.call(this);
            }), s2 && (Ft || d2 || !p2[It]) && q(p2, It, y2), ut[e2] = y2, ut[f2] = zt, i2)
              if (a2 = { values: h2 ? y2 : l2("values"), keys: o2 ? y2 : l2("keys"), entries: g2 }, s2)
                for (u2 in a2)
                  u2 in p2 || at(p2, u2, a2[u2]);
              else
                Q(Q.P + Q.F * (Ft || d2), e2, a2);
            return a2;
          }, Dt = function(t2) {
            return function(e2, n2) {
              var r2, i2, o2 = String(k(e2)), s2 = st(n2), a2 = o2.length;
              return s2 < 0 || s2 >= a2 ? t2 ? "" : void 0 : (r2 = o2.charCodeAt(s2), r2 < 55296 || r2 > 56319 || s2 + 1 === a2 || (i2 = o2.charCodeAt(s2 + 1)) < 56320 || i2 > 57343 ? t2 ? o2.charAt(s2) : r2 : t2 ? o2.slice(s2, s2 + 2) : i2 - 56320 + (r2 - 55296 << 10) + 65536);
            };
          }(true);
          Bt(String, "String", function(t2) {
            this._t = String(t2), this._i = 0;
          }, function() {
            var t2, e2 = this._t, n2 = this._i;
            return n2 >= e2.length ? { value: void 0, done: true } : (t2 = Dt(e2, n2), this._i += t2.length, { value: t2, done: false });
          });
          var Ht = function(t2, e2) {
            return { value: e2, done: !!t2 };
          };
          Bt(Array, "Array", function(t2, e2) {
            this._t = ht(t2), this._i = 0, this._k = e2;
          }, function() {
            var t2 = this._t, e2 = this._k, n2 = this._i++;
            return !t2 || n2 >= t2.length ? (this._t = void 0, Ht(1)) : e2 == "keys" ? Ht(0, n2) : e2 == "values" ? Ht(0, t2[n2]) : Ht(0, [n2, t2[n2]]);
          }, "values");
          ut.Arguments = ut.Array;
          for (var Vt = Mt("toStringTag"), Wt = "CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","), Gt = 0; Gt < Wt.length; Gt++) {
            var Ut = Wt[Gt], $t = E[Ut], Kt = $t && $t.prototype;
            Kt && !Kt[Vt] && q(Kt, Vt, Ut), ut[Ut] = ut.Array;
          }
          var Jt = { f: Mt }, Yt = Jt.f("iterator"), Xt = e(function(t2) {
            t2.exports = { default: Yt, __esModule: true };
          });
          t(Xt);
          var qt = e(function(t2) {
            var e2 = A("meta"), n2 = Y.f, r2 = 0, i2 = Object.isExtensible || function() {
              return true;
            }, o2 = !H(function() {
              return i2(Object.preventExtensions({}));
            }), s2 = function(t3) {
              n2(t3, e2, { value: { i: "O" + ++r2, w: {} } });
            }, a2 = function(t3, n3) {
              if (!B(t3))
                return typeof t3 == "symbol" ? t3 : (typeof t3 == "string" ? "S" : "P") + t3;
              if (!S(t3, e2)) {
                if (!i2(t3))
                  return "F";
                if (!n3)
                  return "E";
                s2(t3);
              }
              return t3[e2].i;
            }, u2 = function(t3, n3) {
              if (!S(t3, e2)) {
                if (!i2(t3))
                  return true;
                if (!n3)
                  return false;
                s2(t3);
              }
              return t3[e2].w;
            }, c2 = function(t3) {
              return o2 && l2.NEED && i2(t3) && !S(t3, e2) && s2(t3), t3;
            }, l2 = t2.exports = { KEY: e2, NEED: false, fastKey: a2, getWeak: u2, onFreeze: c2 };
          }), Zt = (qt.KEY, qt.NEED, qt.fastKey, qt.getWeak, qt.onFreeze, Y.f), Qt = function(t2) {
            var e2 = O.Symbol || (O.Symbol = {});
            t2.charAt(0) == "_" || t2 in e2 || Zt(e2, t2, { value: Jt.f(t2) });
          }, te = { f: Object.getOwnPropertySymbols }, ee = { f: {}.propertyIsEnumerable }, ne = function(t2) {
            var e2 = kt(t2), n2 = te.f;
            if (n2)
              for (var r2, i2 = n2(t2), o2 = ee.f, s2 = 0; i2.length > s2; )
                o2.call(t2, r2 = i2[s2++]) && e2.push(r2);
            return e2;
          }, re = Array.isArray || function(t2) {
            return lt(t2) == "Array";
          }, ie = bt.concat("length", "prototype"), oe = { f: Object.getOwnPropertyNames || function(t2) {
            return xt(t2, ie);
          } }, se = oe.f, ae = {}.toString, ue = typeof window == "object" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [], ce = function(t2) {
            try {
              return se(t2);
            } catch (t3) {
              return ue.slice();
            }
          }, le = { f: function(t2) {
            return ue && ae.call(t2) == "[object Window]" ? ce(t2) : se(ht(t2));
          } }, fe = Object.getOwnPropertyDescriptor, he = { f: V ? fe : function(t2, e2) {
            if (t2 = ht(t2), e2 = K(e2, true), $)
              try {
                return fe(t2, e2);
              } catch (t3) {
              }
            if (S(t2, e2))
              return X(!ee.f.call(t2, e2), t2[e2]);
          } }, de = qt.KEY, pe = he.f, ve = Y.f, ye = le.f, ge = E.Symbol, me = E.JSON, _e = me && me.stringify, xe = Mt("_hidden"), be = Mt("toPrimitive"), ke = {}.propertyIsEnumerable, we = P("symbol-registry"), Te = P("symbols"), Se = P("op-symbols"), Oe = Object.prototype, Ee = typeof ge == "function" && !!te.f, Pe = E.QObject, je = !Pe || !Pe.prototype || !Pe.prototype.findChild, Me = V && H(function() {
            return jt(ve({}, "a", { get: function() {
              return ve(this, "a", { value: 7 }).a;
            } })).a != 7;
          }) ? function(t2, e2, n2) {
            var r2 = pe(Oe, e2);
            r2 && delete Oe[e2], ve(t2, e2, n2), r2 && t2 !== Oe && ve(Oe, e2, r2);
          } : ve, Ae = function(t2) {
            var e2 = Te[t2] = jt(ge.prototype);
            return e2._k = t2, e2;
          }, Ce = Ee && typeof ge.iterator == "symbol" ? function(t2) {
            return typeof t2 == "symbol";
          } : function(t2) {
            return t2 instanceof ge;
          }, Re = function(t2, e2, n2) {
            return t2 === Oe && Re(Se, e2, n2), D(t2), e2 = K(e2, true), D(n2), S(Te, e2) ? (n2.enumerable ? (S(t2, xe) && t2[xe][e2] && (t2[xe][e2] = false), n2 = jt(n2, { enumerable: X(0, false) })) : (S(t2, xe) || ve(t2, xe, X(1, {})), t2[xe][e2] = true), Me(t2, e2, n2)) : ve(t2, e2, n2);
          }, Ne = function(t2, e2) {
            D(t2);
            for (var n2, r2 = ne(e2 = ht(e2)), i2 = 0, o2 = r2.length; o2 > i2; )
              Re(t2, n2 = r2[i2++], e2[n2]);
            return t2;
          }, Le = function(t2, e2) {
            return e2 === void 0 ? jt(t2) : Ne(jt(t2), e2);
          }, Ie = function(t2) {
            var e2 = ke.call(this, t2 = K(t2, true));
            return !(this === Oe && S(Te, t2) && !S(Se, t2)) && (!(e2 || !S(this, t2) || !S(Te, t2) || S(this, xe) && this[xe][t2]) || e2);
          }, Fe = function(t2, e2) {
            if (t2 = ht(t2), e2 = K(e2, true), t2 !== Oe || !S(Te, e2) || S(Se, e2)) {
              var n2 = pe(t2, e2);
              return !n2 || !S(Te, e2) || S(t2, xe) && t2[xe][e2] || (n2.enumerable = true), n2;
            }
          }, ze = function(t2) {
            for (var e2, n2 = ye(ht(t2)), r2 = [], i2 = 0; n2.length > i2; )
              S(Te, e2 = n2[i2++]) || e2 == xe || e2 == de || r2.push(e2);
            return r2;
          }, Be = function(t2) {
            for (var e2, n2 = t2 === Oe, r2 = ye(n2 ? Se : ht(t2)), i2 = [], o2 = 0; r2.length > o2; )
              !S(Te, e2 = r2[o2++]) || n2 && !S(Oe, e2) || i2.push(Te[e2]);
            return i2;
          };
          Ee || (at((ge = function() {
            if (this instanceof ge)
              throw TypeError("Symbol is not a constructor!");
            var t2 = A(arguments.length > 0 ? arguments[0] : void 0), e2 = function(n2) {
              this === Oe && e2.call(Se, n2), S(this, xe) && S(this[xe], t2) && (this[xe][t2] = false), Me(this, t2, X(1, n2));
            };
            return V && je && Me(Oe, t2, { configurable: true, set: e2 }), Ae(t2);
          }).prototype, "toString", function() {
            return this._k;
          }), he.f = Fe, Y.f = Re, oe.f = le.f = ze, ee.f = Ie, te.f = Be, Jt.f = function(t2) {
            return Ae(Mt(t2));
          }), Q(Q.G + Q.W + Q.F * !Ee, { Symbol: ge });
          for (var De = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), He = 0; De.length > He; )
            Mt(De[He++]);
          for (var Ve = kt(Mt.store), We = 0; Ve.length > We; )
            Qt(Ve[We++]);
          Q(Q.S + Q.F * !Ee, "Symbol", { for: function(t2) {
            return S(we, t2 += "") ? we[t2] : we[t2] = ge(t2);
          }, keyFor: function(t2) {
            if (!Ce(t2))
              throw TypeError(t2 + " is not a symbol!");
            for (var e2 in we)
              if (we[e2] === t2)
                return e2;
          }, useSetter: function() {
            je = true;
          }, useSimple: function() {
            je = false;
          } }), Q(Q.S + Q.F * !Ee, "Object", { create: Le, defineProperty: Re, defineProperties: Ne, getOwnPropertyDescriptor: Fe, getOwnPropertyNames: ze, getOwnPropertySymbols: Be });
          var Ge = H(function() {
            te.f(1);
          });
          Q(Q.S + Q.F * Ge, "Object", { getOwnPropertySymbols: function(t2) {
            return te.f(w(t2));
          } }), me && Q(Q.S + Q.F * (!Ee || H(function() {
            var t2 = ge();
            return _e([t2]) != "[null]" || _e({ a: t2 }) != "{}" || _e(Object(t2)) != "{}";
          })), "JSON", { stringify: function(t2) {
            for (var e2, n2, r2 = [t2], i2 = 1; arguments.length > i2; )
              r2.push(arguments[i2++]);
            if (n2 = e2 = r2[1], (B(e2) || t2 !== void 0) && !Ce(t2))
              return re(e2) || (e2 = function(t3, e3) {
                if (typeof n2 == "function" && (e3 = n2.call(this, t3, e3)), !Ce(e3))
                  return e3;
              }), r2[1] = e2, _e.apply(me, r2);
          } }), ge.prototype[be] || q(ge.prototype, be, ge.prototype.valueOf), Rt(ge, "Symbol"), Rt(Math, "Math", true), Rt(E.JSON, "JSON", true), Qt("asyncIterator"), Qt("observable");
          var Ue = O.Symbol, $e = e(function(t2) {
            t2.exports = { default: Ue, __esModule: true };
          });
          t($e);
          var Ke = e(function(t2, e2) {
            function n2(t3) {
              return t3 && t3.__esModule ? t3 : { default: t3 };
            }
            e2.__esModule = true;
            var r2 = n2(Xt), i2 = n2($e), o2 = typeof i2.default == "function" && typeof r2.default == "symbol" ? function(t3) {
              return typeof t3;
            } : function(t3) {
              return t3 && typeof i2.default == "function" && t3.constructor === i2.default && t3 !== i2.default.prototype ? "symbol" : typeof t3;
            };
            e2.default = typeof i2.default == "function" && o2(r2.default) === "symbol" ? function(t3) {
              return t3 === void 0 ? "undefined" : o2(t3);
            } : function(t3) {
              return t3 && typeof i2.default == "function" && t3.constructor === i2.default && t3 !== i2.default.prototype ? "symbol" : t3 === void 0 ? "undefined" : o2(t3);
            };
          }), Je = t(Ke), Ye = t(e(function(t2, e2) {
            e2.__esModule = true;
            var n2 = function(t3) {
              return t3 && t3.__esModule ? t3 : { default: t3 };
            }(Ke);
            e2.default = function(t3, e3) {
              if (!t3)
                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
              return !e3 || (e3 === void 0 ? "undefined" : (0, n2.default)(e3)) !== "object" && typeof e3 != "function" ? t3 : e3;
            };
          }));
          Q(Q.S + Q.F * !V, "Object", { defineProperty: Y.f });
          var Xe = O.Object, qe = function(t2, e2, n2) {
            return Xe.defineProperty(t2, e2, n2);
          }, Ze = e(function(t2) {
            t2.exports = { default: qe, __esModule: true };
          });
          t(Ze);
          var Qe = t(e(function(t2, e2) {
            e2.__esModule = true;
            var n2 = function(t3) {
              return t3 && t3.__esModule ? t3 : { default: t3 };
            }(Ze);
            e2.default = function() {
              function t3(t4, e3) {
                for (var r2 = 0; r2 < e3.length; r2++) {
                  var i2 = e3[r2];
                  i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), (0, n2.default)(t4, i2.key, i2);
                }
              }
              return function(e3, n3, r2) {
                return n3 && t3(e3.prototype, n3), r2 && t3(e3, r2), e3;
              };
            }();
          })), tn = function(t2, e2) {
            if (D(t2), !B(e2) && e2 !== null)
              throw TypeError(e2 + ": can't set as prototype!");
          }, en = { set: Object.setPrototypeOf || ("__proto__" in {} ? function(t2, e2, n2) {
            try {
              (n2 = z(Function.call, he.f(Object.prototype, "__proto__").set, 2))(t2, []), e2 = !(t2 instanceof Array);
            } catch (t3) {
              e2 = true;
            }
            return function(t3, r2) {
              return tn(t3, r2), e2 ? t3.__proto__ = r2 : n2(t3, r2), t3;
            };
          }({}, false) : void 0), check: tn };
          Q(Q.S, "Object", { setPrototypeOf: en.set });
          var nn = O.Object.setPrototypeOf, rn = e(function(t2) {
            t2.exports = { default: nn, __esModule: true };
          });
          t(rn), Q(Q.S, "Object", { create: jt });
          var on = O.Object, sn = function(t2, e2) {
            return on.create(t2, e2);
          }, an = e(function(t2) {
            t2.exports = { default: sn, __esModule: true };
          });
          t(an);
          var un, cn, ln, fn = t(e(function(t2, e2) {
            function n2(t3) {
              return t3 && t3.__esModule ? t3 : { default: t3 };
            }
            e2.__esModule = true;
            var r2 = n2(rn), i2 = n2(an), o2 = n2(Ke);
            e2.default = function(t3, e3) {
              if (typeof e3 != "function" && e3 !== null)
                throw new TypeError("Super expression must either be null or a function, not " + (e3 === void 0 ? "undefined" : (0, o2.default)(e3)));
              t3.prototype = (0, i2.default)(e3 && e3.prototype, { constructor: { value: t3, enumerable: false, writable: true, configurable: true } }), e3 && (r2.default ? (0, r2.default)(t3, e3) : t3.__proto__ = e3);
            };
          })), hn = Mt("toStringTag"), dn = lt(function() {
            return arguments;
          }()) == "Arguments", pn = function(t2, e2) {
            try {
              return t2[e2];
            } catch (t3) {
            }
          }, vn = function(t2) {
            var e2, n2, r2;
            return t2 === void 0 ? "Undefined" : t2 === null ? "Null" : typeof (n2 = pn(e2 = Object(t2), hn)) == "string" ? n2 : dn ? lt(e2) : (r2 = lt(e2)) == "Object" && typeof e2.callee == "function" ? "Arguments" : r2;
          }, yn = function(t2, e2, n2, r2) {
            if (!(t2 instanceof e2) || r2 !== void 0 && r2 in t2)
              throw TypeError(n2 + ": incorrect invocation!");
            return t2;
          }, gn = function(t2, e2, n2, r2) {
            try {
              return r2 ? e2(D(n2)[0], n2[1]) : e2(n2);
            } catch (e3) {
              var i2 = t2.return;
              throw i2 !== void 0 && D(i2.call(t2)), e3;
            }
          }, mn = Mt("iterator"), _n = Array.prototype, xn = function(t2) {
            return t2 !== void 0 && (ut.Array === t2 || _n[mn] === t2);
          }, bn = Mt("iterator"), kn = O.getIteratorMethod = function(t2) {
            if (t2 != void 0)
              return t2[bn] || t2["@@iterator"] || ut[vn(t2)];
          }, wn = e(function(t2) {
            var e2 = {}, n2 = {}, r2 = t2.exports = function(t3, r3, i2, o2, s2) {
              var a2, u2, c2, l2, f2 = s2 ? function() {
                return t3;
              } : kn(t3), h2 = z(i2, o2, r3 ? 2 : 1), d2 = 0;
              if (typeof f2 != "function")
                throw TypeError(t3 + " is not iterable!");
              if (xn(f2)) {
                for (a2 = pt(t3.length); a2 > d2; d2++)
                  if ((l2 = r3 ? h2(D(u2 = t3[d2])[0], u2[1]) : h2(t3[d2])) === e2 || l2 === n2)
                    return l2;
              } else
                for (c2 = f2.call(t3); !(u2 = c2.next()).done; )
                  if ((l2 = gn(c2, h2, u2.value, r3)) === e2 || l2 === n2)
                    return l2;
            };
            r2.BREAK = e2, r2.RETURN = n2;
          }), Tn = Mt("species"), Sn = function(t2, e2) {
            var n2, r2 = D(t2).constructor;
            return r2 === void 0 || (n2 = D(r2)[Tn]) == void 0 ? e2 : F(n2);
          }, On = function(t2, e2, n2) {
            var r2 = n2 === void 0;
            switch (e2.length) {
              case 0:
                return r2 ? t2() : t2.call(n2);
              case 1:
                return r2 ? t2(e2[0]) : t2.call(n2, e2[0]);
              case 2:
                return r2 ? t2(e2[0], e2[1]) : t2.call(n2, e2[0], e2[1]);
              case 3:
                return r2 ? t2(e2[0], e2[1], e2[2]) : t2.call(n2, e2[0], e2[1], e2[2]);
              case 4:
                return r2 ? t2(e2[0], e2[1], e2[2], e2[3]) : t2.call(n2, e2[0], e2[1], e2[2], e2[3]);
            }
            return t2.apply(n2, e2);
          }, En = E.process, Pn = E.setImmediate, jn = E.clearImmediate, Mn = E.MessageChannel, An = E.Dispatch, Cn = 0, Rn = {}, Nn = function() {
            var t2 = +this;
            if (Rn.hasOwnProperty(t2)) {
              var e2 = Rn[t2];
              delete Rn[t2], e2();
            }
          }, Ln = function(t2) {
            Nn.call(t2.data);
          };
          Pn && jn || (Pn = function(t2) {
            for (var e2 = [], n2 = 1; arguments.length > n2; )
              e2.push(arguments[n2++]);
            return Rn[++Cn] = function() {
              On(typeof t2 == "function" ? t2 : Function(t2), e2);
            }, un(Cn), Cn;
          }, jn = function(t2) {
            delete Rn[t2];
          }, lt(En) == "process" ? un = function(t2) {
            En.nextTick(z(Nn, t2, 1));
          } : An && An.now ? un = function(t2) {
            An.now(z(Nn, t2, 1));
          } : Mn ? (ln = (cn = new Mn()).port2, cn.port1.onmessage = Ln, un = z(ln.postMessage, ln, 1)) : E.addEventListener && typeof postMessage == "function" && !E.importScripts ? (un = function(t2) {
            E.postMessage(t2 + "", "*");
          }, E.addEventListener("message", Ln, false)) : un = "onreadystatechange" in U("script") ? function(t2) {
            St.appendChild(U("script")).onreadystatechange = function() {
              St.removeChild(this), Nn.call(t2);
            };
          } : function(t2) {
            setTimeout(z(Nn, t2, 1), 0);
          });
          var In = { set: Pn, clear: jn }, Fn = In.set, zn = E.MutationObserver || E.WebKitMutationObserver, Bn = E.process, Dn = E.Promise, Hn = lt(Bn) == "process", Vn = { f: function(t2) {
            return new n(t2);
          } }, Wn = function(t2) {
            try {
              return { e: false, v: t2() };
            } catch (t3) {
              return { e: true, v: t3 };
            }
          }, Gn = E.navigator, Un = Gn && Gn.userAgent || "", $n = function(t2, e2) {
            if (D(t2), B(e2) && e2.constructor === t2)
              return e2;
            var n2 = Vn.f(t2);
            return (0, n2.resolve)(e2), n2.promise;
          }, Kn = Mt("species"), Jn = Mt("iterator"), Yn = false;
          try {
            var Xn = [7][Jn]();
            Xn.return = function() {
              Yn = true;
            }, Array.from(Xn, function() {
              throw 2;
            });
          } catch (t2) {
          }
          var qn, Zn, Qn, tr, er = In.set, nr = function() {
            var t2, e2, n2, r2 = function() {
              var r3, i3;
              for (Hn && (r3 = Bn.domain) && r3.exit(); t2; ) {
                i3 = t2.fn, t2 = t2.next;
                try {
                  i3();
                } catch (r4) {
                  throw t2 ? n2() : e2 = void 0, r4;
                }
              }
              e2 = void 0, r3 && r3.enter();
            };
            if (Hn)
              n2 = function() {
                Bn.nextTick(r2);
              };
            else if (!zn || E.navigator && E.navigator.standalone) {
              if (Dn && Dn.resolve) {
                var i2 = Dn.resolve(void 0);
                n2 = function() {
                  i2.then(r2);
                };
              } else
                n2 = function() {
                  Fn.call(E, r2);
                };
            } else {
              var o2 = true, s2 = document.createTextNode("");
              new zn(r2).observe(s2, { characterData: true }), n2 = function() {
                s2.data = o2 = !o2;
              };
            }
            return function(r3) {
              var i3 = { fn: r3, next: void 0 };
              e2 && (e2.next = i3), t2 || (t2 = i3, n2()), e2 = i3;
            };
          }(), rr = E.TypeError, ir = E.process, or = ir && ir.versions, sr = or && or.v8 || "", ar = E.Promise, ur = vn(ir) == "process", cr = function() {
          }, lr = Zn = Vn.f, fr = !!function() {
            try {
              var t2 = ar.resolve(1), e2 = (t2.constructor = {})[Mt("species")] = function(t3) {
                t3(cr, cr);
              };
              return (ur || typeof PromiseRejectionEvent == "function") && t2.then(cr) instanceof e2 && sr.indexOf("6.6") !== 0 && Un.indexOf("Chrome/66") === -1;
            } catch (t3) {
            }
          }(), hr = function(t2) {
            var e2;
            return !(!B(t2) || typeof (e2 = t2.then) != "function") && e2;
          }, dr = function(t2, e2) {
            if (!t2._n) {
              t2._n = true;
              var n2 = t2._c;
              nr(function() {
                for (var r2 = t2._v, i2 = t2._s == 1, o2 = 0; n2.length > o2; )
                  !function(e3) {
                    var n3, o3, s2, a2 = i2 ? e3.ok : e3.fail, u2 = e3.resolve, c2 = e3.reject, l2 = e3.domain;
                    try {
                      a2 ? (i2 || (t2._h == 2 && yr(t2), t2._h = 1), a2 === true ? n3 = r2 : (l2 && l2.enter(), n3 = a2(r2), l2 && (l2.exit(), s2 = true)), n3 === e3.promise ? c2(rr("Promise-chain cycle")) : (o3 = hr(n3)) ? o3.call(n3, u2, c2) : u2(n3)) : c2(r2);
                    } catch (t3) {
                      l2 && !s2 && l2.exit(), c2(t3);
                    }
                  }(n2[o2++]);
                t2._c = [], t2._n = false, e2 && !t2._h && pr(t2);
              });
            }
          }, pr = function(t2) {
            er.call(E, function() {
              var e2, n2, r2, i2 = t2._v, o2 = vr(t2);
              if (o2 && (e2 = Wn(function() {
                ur ? ir.emit("unhandledRejection", i2, t2) : (n2 = E.onunhandledrejection) ? n2({ promise: t2, reason: i2 }) : (r2 = E.console) && r2.error && r2.error("Unhandled promise rejection", i2);
              }), t2._h = ur || vr(t2) ? 2 : 1), t2._a = void 0, o2 && e2.e)
                throw e2.v;
            });
          }, vr = function(t2) {
            return t2._h !== 1 && (t2._a || t2._c).length === 0;
          }, yr = function(t2) {
            er.call(E, function() {
              var e2;
              ur ? ir.emit("rejectionHandled", t2) : (e2 = E.onrejectionhandled) && e2({ promise: t2, reason: t2._v });
            });
          }, gr = function(t2) {
            var e2 = this;
            e2._d || (e2._d = true, (e2 = e2._w || e2)._v = t2, e2._s = 2, e2._a || (e2._a = e2._c.slice()), dr(e2, true));
          }, mr = function(t2) {
            var e2, n2 = this;
            if (!n2._d) {
              n2._d = true, n2 = n2._w || n2;
              try {
                if (n2 === t2)
                  throw rr("Promise can't be resolved itself");
                (e2 = hr(t2)) ? nr(function() {
                  var r2 = { _w: n2, _d: false };
                  try {
                    e2.call(t2, z(mr, r2, 1), z(gr, r2, 1));
                  } catch (t3) {
                    gr.call(r2, t3);
                  }
                }) : (n2._v = t2, n2._s = 1, dr(n2, false));
              } catch (t3) {
                gr.call({ _w: n2, _d: false }, t3);
              }
            }
          };
          fr || (ar = function(t2) {
            yn(this, ar, "Promise", "_h"), F(t2), qn.call(this);
            try {
              t2(z(mr, this, 1), z(gr, this, 1));
            } catch (t3) {
              gr.call(this, t3);
            }
          }, (qn = function(t2) {
            this._c = [], this._a = void 0, this._s = 0, this._d = false, this._v = void 0, this._h = 0, this._n = false;
          }).prototype = function(t2, e2, n2) {
            for (var r2 in e2)
              n2 && t2[r2] ? t2[r2] = e2[r2] : q(t2, r2, e2[r2]);
            return t2;
          }(ar.prototype, { then: function(t2, e2) {
            var n2 = lr(Sn(this, ar));
            return n2.ok = typeof t2 != "function" || t2, n2.fail = typeof e2 == "function" && e2, n2.domain = ur ? ir.domain : void 0, this._c.push(n2), this._a && this._a.push(n2), this._s && dr(this, false), n2.promise;
          }, catch: function(t2) {
            return this.then(void 0, t2);
          } }), Qn = function() {
            var t2 = new qn();
            this.promise = t2, this.resolve = z(mr, t2, 1), this.reject = z(gr, t2, 1);
          }, Vn.f = lr = function(t2) {
            return t2 === ar || t2 === tr ? new Qn(t2) : Zn(t2);
          }), Q(Q.G + Q.W + Q.F * !fr, { Promise: ar }), Rt(ar, "Promise"), function(t2) {
            var e2 = typeof O[t2] == "function" ? O[t2] : E[t2];
            V && e2 && !e2[Kn] && Y.f(e2, Kn, { configurable: true, get: function() {
              return this;
            } });
          }("Promise"), tr = O.Promise, Q(Q.S + Q.F * !fr, "Promise", { reject: function(t2) {
            var e2 = lr(this);
            return (0, e2.reject)(t2), e2.promise;
          } }), Q(Q.S + true * Q.F, "Promise", { resolve: function(t2) {
            return $n(this === tr ? ar : this, t2);
          } }), Q(Q.S + Q.F * !(fr && function(t2, e2) {
            if (!e2 && !Yn)
              return false;
            var n2 = false;
            try {
              var r2 = [7], i2 = r2[Jn]();
              i2.next = function() {
                return { done: n2 = true };
              }, r2[Jn] = function() {
                return i2;
              }, t2(r2);
            } catch (t3) {
            }
            return n2;
          }(function(t2) {
            ar.all(t2).catch(cr);
          })), "Promise", { all: function(t2) {
            var e2 = this, n2 = lr(e2), r2 = n2.resolve, i2 = n2.reject, o2 = Wn(function() {
              var n3 = [], o3 = 0, s2 = 1;
              wn(t2, false, function(t3) {
                var a2 = o3++, u2 = false;
                n3.push(void 0), s2++, e2.resolve(t3).then(function(t4) {
                  u2 || (u2 = true, n3[a2] = t4, --s2 || r2(n3));
                }, i2);
              }), --s2 || r2(n3);
            });
            return o2.e && i2(o2.v), n2.promise;
          }, race: function(t2) {
            var e2 = this, n2 = lr(e2), r2 = n2.reject, i2 = Wn(function() {
              wn(t2, false, function(t3) {
                e2.resolve(t3).then(n2.resolve, r2);
              });
            });
            return i2.e && r2(i2.v), n2.promise;
          } }), Q(Q.P + Q.R, "Promise", { finally: function(t2) {
            var e2 = Sn(this, O.Promise || E.Promise), n2 = typeof t2 == "function";
            return this.then(n2 ? function(n3) {
              return $n(e2, t2()).then(function() {
                return n3;
              });
            } : t2, n2 ? function(n3) {
              return $n(e2, t2()).then(function() {
                throw n3;
              });
            } : t2);
          } }), Q(Q.S, "Promise", { try: function(t2) {
            var e2 = Vn.f(this), n2 = Wn(t2);
            return (n2.e ? e2.reject : e2.resolve)(n2.v), e2.promise;
          } });
          var _r = O.Promise, xr = t(e(function(t2) {
            t2.exports = { default: _r, __esModule: true };
          }));
          tt("keys", function() {
            return function(t2) {
              return kt(w(t2));
            };
          });
          var br = O.Object.keys, kr = t(e(function(t2) {
            t2.exports = { default: br, __esModule: true };
          })), wr = e(function(t2) {
            function e2() {
            }
            function n2(t3, e3, n3) {
              this.fn = t3, this.context = e3, this.once = n3 || false;
            }
            function r2(t3, e3, r3, i3, o3) {
              if (typeof r3 != "function")
                throw new TypeError("The listener must be a function");
              var s3 = new n2(r3, i3 || t3, o3), u2 = a2 ? a2 + e3 : e3;
              return t3._events[u2] ? t3._events[u2].fn ? t3._events[u2] = [t3._events[u2], s3] : t3._events[u2].push(s3) : (t3._events[u2] = s3, t3._eventsCount++), t3;
            }
            function i2(t3, n3) {
              --t3._eventsCount == 0 ? t3._events = new e2() : delete t3._events[n3];
            }
            function o2() {
              this._events = new e2(), this._eventsCount = 0;
            }
            var s2 = Object.prototype.hasOwnProperty, a2 = "~";
            Object.create && (e2.prototype = /* @__PURE__ */ Object.create(null), new e2().__proto__ || (a2 = false)), o2.prototype.eventNames = function() {
              var t3, e3, n3 = [];
              if (this._eventsCount === 0)
                return n3;
              for (e3 in t3 = this._events)
                s2.call(t3, e3) && n3.push(a2 ? e3.slice(1) : e3);
              return Object.getOwnPropertySymbols ? n3.concat(Object.getOwnPropertySymbols(t3)) : n3;
            }, o2.prototype.listeners = function(t3) {
              var e3 = a2 ? a2 + t3 : t3, n3 = this._events[e3];
              if (!n3)
                return [];
              if (n3.fn)
                return [n3.fn];
              for (var r3 = 0, i3 = n3.length, o3 = new Array(i3); r3 < i3; r3++)
                o3[r3] = n3[r3].fn;
              return o3;
            }, o2.prototype.listenerCount = function(t3) {
              var e3 = a2 ? a2 + t3 : t3, n3 = this._events[e3];
              return n3 ? n3.fn ? 1 : n3.length : 0;
            }, o2.prototype.emit = function(t3, e3, n3, r3, i3, o3) {
              var s3 = a2 ? a2 + t3 : t3;
              if (!this._events[s3])
                return false;
              var u2, c2, l2 = this._events[s3], f2 = arguments.length;
              if (l2.fn) {
                switch (l2.once && this.removeListener(t3, l2.fn, void 0, true), f2) {
                  case 1:
                    return l2.fn.call(l2.context), true;
                  case 2:
                    return l2.fn.call(l2.context, e3), true;
                  case 3:
                    return l2.fn.call(l2.context, e3, n3), true;
                  case 4:
                    return l2.fn.call(l2.context, e3, n3, r3), true;
                  case 5:
                    return l2.fn.call(l2.context, e3, n3, r3, i3), true;
                  case 6:
                    return l2.fn.call(l2.context, e3, n3, r3, i3, o3), true;
                }
                for (c2 = 1, u2 = new Array(f2 - 1); c2 < f2; c2++)
                  u2[c2 - 1] = arguments[c2];
                l2.fn.apply(l2.context, u2);
              } else {
                var h2, d2 = l2.length;
                for (c2 = 0; c2 < d2; c2++)
                  switch (l2[c2].once && this.removeListener(t3, l2[c2].fn, void 0, true), f2) {
                    case 1:
                      l2[c2].fn.call(l2[c2].context);
                      break;
                    case 2:
                      l2[c2].fn.call(l2[c2].context, e3);
                      break;
                    case 3:
                      l2[c2].fn.call(l2[c2].context, e3, n3);
                      break;
                    case 4:
                      l2[c2].fn.call(l2[c2].context, e3, n3, r3);
                      break;
                    default:
                      if (!u2)
                        for (h2 = 1, u2 = new Array(f2 - 1); h2 < f2; h2++)
                          u2[h2 - 1] = arguments[h2];
                      l2[c2].fn.apply(l2[c2].context, u2);
                  }
              }
              return true;
            }, o2.prototype.on = function(t3, e3, n3) {
              return r2(this, t3, e3, n3, false);
            }, o2.prototype.once = function(t3, e3, n3) {
              return r2(this, t3, e3, n3, true);
            }, o2.prototype.removeListener = function(t3, e3, n3, r3) {
              var o3 = a2 ? a2 + t3 : t3;
              if (!this._events[o3])
                return this;
              if (!e3)
                return i2(this, o3), this;
              var s3 = this._events[o3];
              if (s3.fn)
                s3.fn !== e3 || r3 && !s3.once || n3 && s3.context !== n3 || i2(this, o3);
              else {
                for (var u2 = 0, c2 = [], l2 = s3.length; u2 < l2; u2++)
                  (s3[u2].fn !== e3 || r3 && !s3[u2].once || n3 && s3[u2].context !== n3) && c2.push(s3[u2]);
                c2.length ? this._events[o3] = c2.length === 1 ? c2[0] : c2 : i2(this, o3);
              }
              return this;
            }, o2.prototype.removeAllListeners = function(t3) {
              var n3;
              return t3 ? (n3 = a2 ? a2 + t3 : t3, this._events[n3] && i2(this, n3)) : (this._events = new e2(), this._eventsCount = 0), this;
            }, o2.prototype.off = o2.prototype.removeListener, o2.prototype.addListener = o2.prototype.on, o2.prefixed = a2, o2.EventEmitter = o2, t2.exports = o2;
          }), Tr = function t2() {
            var e2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, n2 = e2.url, r2 = e2.method, i2 = r2 === void 0 ? "GET" : r2, o2 = e2.type, s2 = o2 === void 0 ? "arraybuffer" : o2, a2 = e2.timeout, u2 = a2 === void 0 ? 1e4 : a2, c2 = e2.data, l2 = c2 === void 0 ? {} : c2, f2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
            return rt(this, t2), new xr(function(t3, e3) {
              var r3 = new window.XMLHttpRequest(), o3 = i2.toUpperCase(), a3 = [];
              s2 && (r3.responseType = s2), u2 && (r3.timeout = u2);
              for (var c3 in l2)
                a3.push("k=" + l2[c3]);
              if (r3.onload = function() {
                r3.status === 200 || r3.status === 206 ? t3({ context: f2, res: r3 }) : e3(new Error({ context: f2, res: r3, type: "error" }));
              }, r3.onerror = function(t4) {
                e3(new Error({ context: f2, res: r3, type: "error" }));
              }, r3.ontimeout = function(t4) {
                e3(new Error({ context: f2, res: r3, type: "error" }));
              }, r3.onabort = function() {
                e3(new Error({ context: f2, res: r3, type: "error" }));
              }, o3 === "GET")
                r3.open(o3, "" + n2), r3.send();
              else {
                if (o3 !== "post")
                  throw new Error("xhr " + o3 + " is not supported");
                r3.open(o3, n2), r3.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), r3.send(a3.join("&"));
              }
            });
          }, Sr = /^WEBVTT/, Or = /^STYLE+$/, Er = /^\:\:cue/, Pr = /^}+$/, jr = /^\[Script Info\].*/, Mr = [/[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}-->[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}/, /[0-9]{2}:[0-9]{2}\.[0-9]{3}-->[0-9]{2}:[0-9]{2}\.[0-9]{3}/, /[0-9]{2}\.[0-9]{3}-->[0-9]{2}\.[0-9]{3}/], Ar = /^Format:\s/, Cr = /^Style:\s/, Rr = /^Dialogue:\s/, Nr = function() {
            function t2() {
              rt(this, t2);
            }
            return Qe(t2, null, [{ key: "parseJson", value: function(t3) {
              for (var e2 = [], n2 = 0, r2 = 0; r2 < t3.length; r2++) {
                if (n2 >= 50 && (n2 = 0), n2 === 0) {
                  var i2 = { start: t3[r2].start, list: [t3[r2]], end: t3[r2].end };
                  e2.push(i2);
                } else
                  e2[e2.length - 1].list.push(t3[r2]), e2[e2.length - 1].end = t3[r2].end;
                n2++;
              }
              return e2;
            } }, { key: "parse", value: function(e2, n2) {
              var r2 = t2.checkFormat(e2);
              r2 || n2({ format: r2 });
              try {
                var i2 = [];
                r2 === "ass" ? i2 = t2.parseASS(e2) : r2 === "vtt" && (i2 = t2.parseVTT(e2)), n2({ format: r2, list: i2.list, styles: i2.styles });
              } catch (t3) {
                console.error(t3), n2({ format: r2 }, t3);
              }
            } }, { key: "parseASSItem", value: function() {
              var t3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", e2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [], n2 = t3.split(","), i2 = {}, s2 = "";
              try {
                var a2 = n2.length - e2.length;
                return s2 = a2 > 0 ? n2.splice(e2.length - 1, a2 + 1).join(",") + "" : n2[n2.length - 1] + "", s2 = s2.replace(/\\n+/g, ""), s2 = o(s2), n2[e2.length - 1] = s2, e2.map(function(t4, e3) {
                  t4 === "end" || t4 === "start" ? i2[t4] = r(n2[e3].split(":")) : t4 === "text" ? i2[t4] = [n2[e3]] : t4 === "layer" ? (i2[t4] = [n2[e3]], i2.textTag = [n2[e3]]) : i2[t4] = t4 === "style" ? [n2[e3]] : Number(n2[e3]) ? Number(n2[e3]) : n2[e3];
                }), i2;
              } catch (t4) {
                return console.error(t4), {};
              }
            } }, { key: "parseASS", value: function(e2) {
              for (var n2 = e2.split("\n"), r2 = [], i2 = 0, o2 = 0, s2 = [], a2 = [], u2 = null; i2 < n2.length; ) {
                if (Ar.test(n2[i2]))
                  a2 = (a2 = n2[i2].replace(Ar, "").replace(/\s+/g, "").split(",")).map(function(t3) {
                    return t3.toLocaleLowerCase();
                  });
                else if (Cr.test(n2[i2]))
                  s2.push(n2[i2].replace(Cr, "").replace(/\s+/g, ""));
                else if (Rr.test(n2[i2])) {
                  var c2 = t2.parseASSItem(n2[i2].replace(Rr, ""), a2);
                  if (u2 && c2.start === u2.start && c2.end === u2.end)
                    try {
                      var l2 = u2, f2 = l2.text, h2 = l2.textTag, d2 = l2.style;
                      f2.push(c2.text[0]), h2.push(c2.textTag[0]), d2.push(c2.style[0]);
                    } catch (t3) {
                      console.error(t3);
                    }
                  else {
                    u2 = c2;
                    var p2 = null;
                    o2 % 50 == 0 ? ((p2 = { start: u2.start, end: u2.end, list: [] }).list.push(u2), r2.push(p2)) : ((p2 = r2[r2.length - 1]).end = u2.end, p2.list.push(u2)), o2++;
                  }
                }
                i2++;
              }
              return { list: r2, style: {} };
            } }, { key: "parseVTTStyle", value: function(t3, e2) {
              var n2 = t3.split(":");
              if (n2.length > 1) {
                var r2 = n2[0].trim().split("-"), i2 = "";
                r2.length > 1 ? r2.map(function(t4, e3) {
                  i2 += e3 === 0 ? t4 : t4.charAt(0).toUpperCase() + t4.slice(1);
                }) : i2 = r2[0], e2[i2] = n2[1].trim().replace(/;$/, "");
              }
              return e2;
            } }, { key: "parseVTT", value: function(t3) {
              for (var e2 = (t3 = t3.replace(Sr, "")).split("\n"), n2 = [], r2 = 0, o2 = 0, a2 = null, u2 = false, c2 = false, l2 = null, f2 = null, h2 = []; r2 < e2.length; ) {
                var d2 = s(r2, e2).trim();
                if (!d2 || u2 && i(d2))
                  u2 = !d2;
                else if (Er.test(d2) && Or.test(s(r2 - 1, e2).trim())) {
                  c2 = true;
                  var p2 = /\((.+?)\)/g.exec(d2);
                  f2 = p2 ? p2[1] : "", l2 = "";
                } else if (c2)
                  Pr.test(d2) ? (h2.push({ key: f2, style: l2 }), l2 = null, f2 = null, c2 = false) : l2 += d2;
                else if (d2) {
                  u2 = false;
                  var v2 = this.checkIsTime(e2[r2]);
                  if (v2) {
                    var y2 = this.parseVttTime(v2);
                    if (!a2 || y2.start !== a2.start || y2.end !== a2.end) {
                      (a2 = y2).text = [], a2.textTag = [];
                      var g2 = null;
                      o2 % 50 == 0 ? ((g2 = { start: a2.start, end: a2.end, list: [] }).list.push(a2), n2.push(g2)) : ((g2 = n2[n2.length - 1]).end = a2.end, g2.list.push(a2)), o2++;
                    }
                  } else if (a2) {
                    var m2 = a2, _2 = m2.text, x2 = m2.textTag, b2 = this.parseVttText(e2[r2]);
                    _2.push(b2.text), x2.push(b2.tag);
                  }
                  u2 = false;
                }
                r2++;
              }
              return { list: n2, styles: h2 };
            } }, { key: "checkIsTime", value: function(t3) {
              t3 = t3.replace(/\s+/g, "");
              for (var e2 = 0, n2 = null; e2 < Mr.length && !(n2 = Mr[e2].exec(t3)); )
                e2++;
              return n2 ? n2[0] : null;
            } }, { key: "parseVttText", value: function(t3) {
              var e2 = /^(<?.+?>)/g.exec(t3), n2 = "", r2 = "default";
              if (e2) {
                r2 = e2[0].replace(/\<|\>|\&/g, "");
                var i2 = RegExp("^<" + r2 + ">(([\\s\\S])*?)</" + r2 + ">$").exec(t3);
                i2 ? n2 = i2[1] : (n2 = t3, r2 = "");
              } else
                n2 = t3;
              for (var s2 = /<(\w+).(\w+)>/g, a2 = s2.exec(n2); a2 && a2.length > 2; )
                n2 = n2.replace(a2[0], "<" + a2[1] + ' class="' + a2[2] + '">'), a2 = s2.exec(n2);
              return { tag: r2, text: o(n2.replace(/\\n+/g, "<br/>")) };
            } }, { key: "parseVttTime", value: function(t3) {
              var e2 = t3.split("-->"), n2 = void 0, i2 = 0;
              if (e2.length === 2) {
                var o2 = e2[0].split(":"), s2 = e2[1].split(":");
                n2 = r(o2), i2 = r(s2);
              }
              return { start: n2, end: i2, time: t3 };
            } }, { key: "isVTT", value: function(t3) {
              return Sr.test(t3);
            } }, { key: "isASS", value: function(t3) {
              return jr.test(t3);
            } }, { key: "checkFormat", value: function(t3) {
              return t3 ? Sr.test(t3) ? "vtt" : jr.test(t3) ? "ass" : null : null;
            } }]), t2;
          }(), Lr = function() {
            function t2() {
              var e2 = this;
              rt(this, t2), this.__handlers = [], window.ResizeObserver && (this.observer = new window.ResizeObserver(function(t3) {
                e2.__trigger(t3);
              }));
            }
            return Qe(t2, [{ key: "addObserver", value: function(t3, e2) {
              if (this.observer) {
                this.observer && this.observer.observe(t3);
                for (var n2 = this.__handlers, r2 = -1, i2 = 0; i2 < n2.length; i2++)
                  n2[i2] && t3 === n2[i2].target && (r2 = i2);
                r2 > -1 ? this.__handlers[r2].handler.push(e2) : this.__handlers.push({ target: t3, handler: [e2] });
              }
            } }, { key: "unObserver", value: function(t3) {
              var e2 = -1;
              this.__handlers.map(function(n2, r2) {
                t3 === n2.target && (e2 = r2);
              }), this.observer && this.observer.unobserve(t3), e2 > -1 && this.__handlers.splice(e2, 1);
            } }, { key: "destroyObserver", value: function() {
              this.observer && this.observer.disconnect(), this.observer = null, this.__handlers = null;
            } }, { key: "__runHandler", value: function(t3, e2) {
              for (var n2 = this.__handlers, r2 = 0; r2 < n2.length; r2++)
                if (n2[r2] && t3 === n2[r2].target) {
                  n2[r2].handler && n2[r2].handler.map(function(n3) {
                    try {
                      n3(t3, e2);
                    } catch (t4) {
                      console.error(t4);
                    }
                  });
                  break;
                }
            } }, { key: "__trigger", value: function(t3) {
              var e2 = this;
              t3.map(function(t4) {
                var n2 = t4.contentRect;
                e2.__runHandler(t4.target, n2);
              });
            } }]), t2;
          }(), Ir = null;
          !function(t2, e2) {
            e2 === void 0 && (e2 = {});
            var n2 = e2.insertAt;
            if (t2 && typeof document != "undefined") {
              var r2 = document.head || document.getElementsByTagName("head")[0], i2 = document.createElement("style");
              i2.type = "text/css", n2 === "top" && r2.firstChild ? r2.insertBefore(i2, r2.firstChild) : r2.appendChild(i2), i2.styleSheet ? i2.styleSheet.cssText = t2 : i2.appendChild(document.createTextNode(t2));
            }
          }('xg-text-track.xg-text-track {\n  font-family: "PingFang SC","SF Pro SC","SF Pro Text","SF Pro Icons","Helvetica Neue","Helvetica","Arial",sans-serif;\n  -webkit-font-smoothing: antialiased;\n  position: absolute;\n  bottom: 0;\n  color: #fff;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center; }\n  xg-text-track.xg-text-track.text-track-no-fitvideo {\n    margin-bottom: 2%; }\n  xg-text-track.xg-text-track.text-track-hide {\n    opacity: 0;\n    visibility: hidden; }\n  xg-text-track.xg-text-track.text-track-show {\n    opacity: 1;\n    visibility: visible; }\n  xg-text-track.xg-text-track xg-text-track-inner {\n    display: block;\n    max-width: 92%; }\n  xg-text-track.xg-text-track xg-text-track-span {\n    display: -webkit-box;\n    text-align: center;\n    text-overflow: ellipsis;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    padding: 1px 4px;\n    -webkit-line-clamp: 1;\n    line-height: 120%;\n    word-break: break-word; }\n    xg-text-track.xg-text-track xg-text-track-span.text-track-deputy {\n      font-size: 75%; }\n    xg-text-track.xg-text-track xg-text-track-span.text-track-single {\n      -webkit-line-clamp: 1; }\n    xg-text-track.xg-text-track xg-text-track-span.text-track-double {\n      -webkit-line-clamp: 2; }\n    xg-text-track.xg-text-track xg-text-track-span.text-track-three {\n      -webkit-line-clamp: 3; }\n  xg-text-track.xg-text-track.text-track-bg xg-text-track-inner {\n    background-color: rgba(0, 0, 0, .54);\n    border-radius: 2px; }\n  xg-text-track.xg-text-track.text-track-stroke xg-text-track-inner {\n    background-color: none;\n    border-radius: 0;\n    text-shadow: -1px 1px 0 rgba(0, 0, 0, .7), 1px 1px 0 rgba(0, 0, 0, .7), 1px -1px 0 rgba(0, 0, 0, .7), -1px -1px 0 rgba(0, 0, 0, .7); }\n');
          var Fr = [{ code: 0, msg: "SUCCESS" }, { code: 1, msg: "LOAD_ERROR" }, { code: 2, msg: "PARSER_ERROR" }, { code: 3, msg: "FORMAT_NOT_SUPPORTED" }, { code: 4, msg: "ID_OR_LANGUAGE_NOT_EXIST" }, { code: 5, msg: "PARAMETERS_ERROR" }, { code: 6, msg: "ABORT" }, { code: 7, msg: "UNKNOWN" }, { code: 8, msg: "DATA_ERROR:subtitle.url is null" }], zr = { RESIZE: "resize" }, Br = false;
          return function(t2) {
            function e2(t3) {
              rt(this, e2);
              var n2 = Ye(this, (e2.__proto__ || nt(e2)).call(this));
              return Br = p(), n2.currentText = null, n2.textTrack = [], n2._cid = -1, n2._gid = -1, n2._cids = [], n2._iId = null, n2._iC = 0, n2.player = null, n2.root = null, n2.config = { line: "double", bottom: 0, mode: "stroke", defaultOpen: false, baseSizeX: 49, baseSizeY: 28, minSize: 16, minMobileSize: 13, fitVideo: true, offsetBottom: 2, fontColor: "#fff" }, n2._ctime = 0, n2._loadingTrack = {}, kr(n2.config).map(function(e3) {
                t3[e3] !== void 0 && t3[e3] !== null && (n2.config[e3] = t3[e3]);
              }), n2._isOpen = false, n2._videoMeta = { scale: 0, videoHeight: 0, videoWidth: 0, lwidth: 0, lheight: 0, vWidth: 0, vHeight: 0, vBottom: 0, vLeft: 0, marginBottom: 0 }, t3.subTitles && h(t3.subTitles) === "Array" ? (t3.player && n2.attachPlayer(t3.player), n2.setSubTitles(t3.subTitles, n2.config.defaultOpen), n2) : Ye(n2);
            }
            return fn(e2, t2), Qe(e2, [{ key: "version", get: function() {
              return "1.0.12";
            } }]), Qe(e2, [{ key: "setSubTitles", value: function() {
              var t3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], e3 = this, n2 = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], r2 = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2], i2 = this._isOpen || n2;
              r2 && this.innerRoot && this.switchOff(), this.currentText = null, this.textTrack = [], t3.map(function(t4) {
                var n3 = {};
                kr(t4).map(function(e4) {
                  n3[e4] = t4[e4];
                }), n3.isDefault && (e3.currentText = n3), e3.textTrack.push(n3);
              }), this.currentText && x(this.currentText).then(function(t4) {
                e3.addStyles(t4), i2 && e3.switch();
              });
            } }, { key: "addStyles", value: function(t3) {
              var e3 = t3.styles, n2 = t3.format;
              e3 && n2 === "vtt" && (e3.map(function(t4) {
                t4.key || (t4.key = "xg-text-track-span");
              }), v(e3, "xg-text-track"));
            } }, { key: "attachPlayer", value: function(t3) {
              var e3 = this;
              if (t3) {
                this.player && this.detachPlayer();
                var n2 = this.config, r2 = n2.fontColor, i2 = n2.mode, o2 = n2.fitVideo;
                this.player = t3, this.root = document.createElement("xg-text-track"), this.root.className = "xg-text-track", !this._isOpen && u(this.root, "text-track-hide"), !o2 && u(this.root, "text-track-no-fitvideo"), i2 && u(this.root, "text-track-" + i2), this.innerRoot = document.createElement("xg-text-track-inner"), this.root.appendChild(this.innerRoot), r2 && (this.root.style.color = r2), this.currentText && ["language", "id", "label"].map(function(t4) {
                  e3.root.setAttribute("data-" + t4, e3.currentText[t4] || "");
                }), this.player.root.appendChild(this.root), ["destroy", "__onTimeupdate", "_onResize"].map(function(t4) {
                  e3[t4] = e3[t4].bind(e3);
                }), this.player.on("destroy", this.destroy), this.player.on("timeupdate", this.__onTimeupdate), this._isOpen && this.switch(), y(t3.root, this._onResize);
              }
            } }, { key: "detachPlayer", value: function() {
              var t3 = this.player;
              t3 && (t3.off("destroy", this.destroy), t3.off("timeupdate", this.__onTimeupdate), t3.root && (g(t3.root, this._onResize), t3.root.removeChild(this.root)), this.innerRoot = null, this.root = null, this.player = null);
            } }, { key: "switch", value: function() {
              var t3 = this, e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : { id: "", language: "" };
              return this._loadingTrack = e3, new xr(function(n2, r2) {
                if (!e3.id && !e3.language) {
                  if (t3.currentText) {
                    t3._loadingTrack = {}, t3._updateCurrent(t3.currentText), t3._isOpen = true, t3.show();
                    var i2 = m(0, { message: "switch default subtitle success" });
                    return void n2(i2);
                  }
                  var o2 = m(5, { message: "no default subtitle" });
                  return void r2(o2);
                }
                if (t3.currentText && b(e3, t3.currentText))
                  t3._loadingTrack = {}, t3._updateCurrent(t3.currentText), t3._isOpen = true, t3.show(), n2(m(0));
                else {
                  for (var s2 = null, a2 = 0; a2 < t3.textTrack.length; a2++)
                    if (b(e3, t3.textTrack[a2])) {
                      s2 = t3.textTrack[a2];
                      break;
                    }
                  if (s2)
                    s2.list ? (t3._loadingTrack = {}, t3._updateCurrent(s2), t3._isOpen = true, t3.show(), n2(m(0))) : x(s2).then(function(e4) {
                      if (t3.addStyles(e4), t3._loadingTrack.id === s2.id || t3._loadingTrack.language === e4.language)
                        t3._loadingTrack = {}, t3._updateCurrent(e4), t3._isOpen = true, t3.show(), n2(m(0));
                      else {
                        var i3 = m(6, { message: "check _loadingTrack fail id: " + t3._loadingTrack.id + "  nextSubtitle:" + e4.id });
                        console.trace(i3), r2(i3);
                      }
                    }).catch(function(t4) {
                      r2(t4);
                    });
                  else {
                    var u2 = m(4, new Error("The is no subtitle with id:[{" + e3.id + "}] or language:[" + e3.language + "]"));
                    console.trace(u2), r2(u2);
                  }
                }
              });
            } }, { key: "switchOff", value: function() {
              this._isOpen = false, this.hide();
            } }, { key: "_updateCurrent", value: function(t3) {
              var e3 = this;
              if (this.root) {
                this.currentText = t3, ["language", "id", "label"].map(function(t4) {
                  e3.root.setAttribute("data-" + t4, e3.currentText[t4] || "");
                }), this.__remove(this._cids);
                var n2 = this.player.currentTime;
                this._cids = [], this._gid = -1, this._cid = -1, this._update(n2);
              }
            } }, { key: "__loadAll", value: function() {
              this.textTrack.map(function(t3) {
                x(t3);
              });
            } }, { key: "getDelCid", value: function(t3, e3) {
              for (var n2 = [], r2 = 0; r2 < t3.length; r2++)
                e3.includes(t3[r2]) || n2.push(t3[r2]);
              return n2;
            } }, { key: "getNewCid", value: function(t3, e3) {
              for (var n2 = [], r2 = 0; r2 < e3.length; r2++)
                t3.includes(e3[r2]) || n2.push(e3[r2]);
              return n2;
            } }, { key: "_update", value: function(t3) {
              var e3 = this, n2 = l(t3, this.currentText.list, this._gid), r2 = [];
              if (n2 > -1 && (r2 = f(t3, this.currentText.list[n2].list, this._cid)), r2.length < 1)
                return this._cids.length > 0 && this.__remove(this._cids), void (this._cids = []);
              if (this._cids !== r2 || n2 !== this._gid) {
                this._gid = n2, this._cid = r2[0];
                var i2 = this.getDelCid(this._cids, r2), o2 = this.getNewCid(this._cids, r2);
                this._cids = r2, this.__remove(i2);
                var s2 = [];
                o2.map(function(t4) {
                  var r3 = e3.currentText.list[n2].list[t4];
                  r3.index = t4, s2.push(r3);
                }), this.__render(s2, t3);
              }
            } }, { key: "__onTimeupdate", value: function() {
              if (this._isOpen) {
                var t3 = this.player.video, e3 = t3.videoWidth, n2 = t3.videoHeight;
                !this._videoMeta.scale && e3 && n2 && this._onResize(this.player.root);
                var r2 = this.player.currentTime;
                Math.round(Math.abs(1e3 * r2 - this._ctime)) < 200 || (this._ctime = 1e3 * r2, this.currentText && this.currentText.list && this._update(r2));
              }
            } }, { key: "_onResize", value: function(t3) {
              var e3 = this._videoMeta;
              if (t3 && t3 instanceof window.Element || (t3 = this.player.root), this._iId && (clearTimeout(this._iId), this._iId = null), !e3.scale) {
                if (!this.player.video)
                  return;
                var n2 = this.player.video, r2 = n2.videoWidth, i2 = n2.videoHeight;
                if (!r2 || !i2)
                  return;
                e3.videoWidth = r2, e3.videoHeight = i2, e3.scale = parseInt(i2 / r2 * 100, 10);
              }
              this.__startResize(t3);
            } }, { key: "resize", value: function(t3, e3) {
              var n2 = this, r2 = this.config, i2 = r2.baseSizeX, o2 = r2.baseSizeY, s2 = r2.minMobileSize, a2 = r2.minSize, u2 = r2.fitVideo, c2 = r2.offsetBottom, l2 = this._videoMeta.scale;
              this._videoMeta.lwidth = t3, this._videoMeta.lheight = e3;
              var f2 = void 0, h2 = 0;
              e3 / t3 * 100 >= l2 ? (h2 = parseInt(l2 * t3, 10) / 100, f2 = t3) : (h2 = e3, f2 = parseInt(e3 / l2 * 100, 10)), this._videoMeta.vWidth = f2, this._videoMeta.vHeight = h2;
              var d2 = 0, p2 = 0;
              l2 > 120 ? (d2 = o2, p2 = parseInt(d2 * h2 / 1080, 10)) : (d2 = i2, p2 = parseInt(d2 * f2 / 1920, 10));
              var v2 = Br ? s2 : a2, y2 = { fontSize: p2 = p2 < v2 ? v2 : p2 > d2 ? d2 : p2 }, g2 = parseInt((e3 - h2) / 2, 10), m2 = parseInt((t3 - f2) / 2, 10), _2 = parseInt(h2 * c2, 10) / 100;
              this._videoMeta.vBottom = g2, this._videoMeta.vLeft = m2, this._videoMeta.marginBottom = _2, u2 && (y2.bottom = g2 + _2, y2.left = y2.right = m2), kr(y2).map(function(t4) {
                n2.root.style[t4] = y2[t4] + "px";
              }), this.emit(zr.RESIZE, { vLeft: m2, vBottom: g2, marginBottom: _2, vWidth: f2, vHeight: h2, fontSize: p2, scale: l2 });
            } }, { key: "__startResize", value: function(t3) {
              var e3 = this, n2 = t3.getBoundingClientRect(), r2 = this._videoMeta, i2 = n2.width, o2 = n2.height;
              if (this._iId && (clearTimeout(this._iId), this._iId = null), i2 > 0 && o2 > 0 && (i2 !== r2.lwidth || o2 !== r2.lheight))
                this._iC = 0, this.resize(i2, o2);
              else {
                if (this._iC >= 5)
                  return void (this._iC = 0);
                this._iC++, this._iId = setTimeout(function() {
                  e3.__startResize(t3);
                }, 50);
              }
            } }, { key: "__remove", value: function(t3) {
              var e3 = this;
              if (t3 && !(t3.length < 1)) {
                for (var n2 = this.innerRoot.children, r2 = [], i2 = 0; i2 < n2.length; i2++) {
                  var o2 = Number(n2[i2].getAttribute("data-index"));
                  t3.includes(o2) && r2.push(n2[i2]);
                }
                r2.map(function(t4) {
                  e3.innerRoot.removeChild(t4);
                });
              }
            } }, { key: "__render", value: function() {
              var t3 = this, e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
              e3.length > 0 && e3.map(function(e4) {
                var n2 = "text-track-" + t3.config.line;
                e4.text.map(function(r2, i2) {
                  i2 > 0 && (n2 += " text-track-deputy");
                  var o2 = { "data-start": e4.start, "data-end": e4.end, "data-index": e4.index };
                  t3.innerRoot.appendChild(d("xg-text-track-span", r2, o2, n2));
                });
              });
            } }, { key: "show", value: function() {
              c(this.root, "text-track-hide");
            } }, { key: "hide", value: function() {
              u(this.root, "text-track-hide"), this.innerRoot.innerHTML = "";
            } }, { key: "destroy", value: function() {
              this.detachPlayer(), this.removeAllListeners(), this.player = null, this.textTrack = null;
            } }, { key: "marginBottom", get: function() {
              var t3 = this._videoMeta, e3 = t3.bottom, n2 = t3.marginBottom;
              return this.config.fitVideo ? e3 + n2 : n2;
            } }]), e2;
          }(wr);
        });
      },
      function(module2, exports2, __webpack_require__) {
        var _player = __webpack_require__(9);
        var _player2 = _interopRequireDefault2(_player);
        var _i18n = __webpack_require__(10);
        var _i18n2 = _interopRequireDefault2(_i18n);
        var _enter = __webpack_require__(108);
        var _enter2 = _interopRequireDefault2(_enter);
        var _play = __webpack_require__(48);
        var _play2 = _interopRequireDefault2(_play);
        var _start = __webpack_require__(40);
        var _start2 = _interopRequireDefault2(_start);
        var _poster = __webpack_require__(53);
        var _poster2 = _interopRequireDefault2(_poster);
        var _flex = __webpack_require__(56);
        var _flex2 = _interopRequireDefault2(_flex);
        var _fullscreen = __webpack_require__(59);
        var _fullscreen2 = _interopRequireDefault2(_fullscreen);
        var _cssFullscreen = __webpack_require__(111);
        var _cssFullscreen2 = _interopRequireDefault2(_cssFullscreen);
        var _volume = __webpack_require__(116);
        var _volume2 = _interopRequireDefault2(_volume);
        var _definition = __webpack_require__(122);
        var _definition2 = _interopRequireDefault2(_definition);
        var _loading = __webpack_require__(64);
        var _loading2 = _interopRequireDefault2(_loading);
        var _progress = __webpack_require__(68);
        var _progress2 = _interopRequireDefault2(_progress);
        var _time = __webpack_require__(71);
        var _time2 = _interopRequireDefault2(_time);
        var _replay = __webpack_require__(74);
        var _replay2 = _interopRequireDefault2(_replay);
        var _playbackRate = __webpack_require__(125);
        var _playbackRate2 = _interopRequireDefault2(_playbackRate);
        var _localPreview = __webpack_require__(128);
        var _localPreview2 = _interopRequireDefault2(_localPreview);
        var _download = __webpack_require__(129);
        var _download2 = _interopRequireDefault2(_download);
        var _danmu = __webpack_require__(133);
        var _danmu2 = _interopRequireDefault2(_danmu);
        var _pip = __webpack_require__(139);
        var _pip2 = _interopRequireDefault2(_pip);
        var _miniplayer = __webpack_require__(142);
        var _miniplayer2 = _interopRequireDefault2(_miniplayer);
        var _playNext = __webpack_require__(145);
        var _playNext2 = _interopRequireDefault2(_playNext);
        var _rotate = __webpack_require__(149);
        var _rotate2 = _interopRequireDefault2(_rotate);
        var _reload = __webpack_require__(153);
        var _reload2 = _interopRequireDefault2(_reload);
        var _screenShot = __webpack_require__(157);
        var _screenShot2 = _interopRequireDefault2(_screenShot);
        var _nativeTextTrack = __webpack_require__(160);
        var _nativeTextTrack2 = _interopRequireDefault2(_nativeTextTrack);
        var _textTrack = __webpack_require__(162);
        var _textTrack2 = _interopRequireDefault2(_textTrack);
        var _error = __webpack_require__(163);
        var _error2 = _interopRequireDefault2(_error);
        var _memoryPlay = __webpack_require__(166);
        var _memoryPlay2 = _interopRequireDefault2(_memoryPlay);
        var _airplay = __webpack_require__(169);
        var _airplay2 = _interopRequireDefault2(_airplay);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        _player2.default.installAll([_i18n2.default, _enter2.default, _play2.default, _start2.default, _poster2.default, _flex2.default, _fullscreen2.default, _cssFullscreen2.default, _volume2.default, _definition2.default, _loading2.default, _progress2.default, _time2.default, _replay2.default, _playbackRate2.default, _localPreview2.default, _download2.default, _danmu2.default, _pip2.default, _miniplayer2.default, _playNext2.default, _rotate2.default, _reload2.default, _screenShot2.default, _nativeTextTrack2.default, _textTrack2.default, _error2.default, _memoryPlay2.default, _airplay2.default]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(109);
        var s_enter = function s_enter2() {
          var player = this;
          var root = player.root;
          var barStr = "";
          for (var i = 1; i <= 12; i++) {
            barStr += '<div class="xgplayer-enter-bar' + i + '"></div>';
          }
          var enter2 = (0, _util.createDom)("xg-enter", '<div class="xgplayer-enter-spinner">\n                                                  ' + barStr + "\n                                                </div>", {}, "xgplayer-enter");
          root.appendChild(enter2);
        };
        exports2.default = {
          name: "s_enter",
          method: s_enter
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(110);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:#000;z-index:120}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:hsla(0,0%,100%,.7);position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;-webkit-animation:fade 1s linear infinite;animation:fade 1s linear infinite}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{-webkit-transform:rotate(0deg) translateY(-142%);-ms-transform:rotate(0deg) translateY(-142%);transform:rotate(0deg) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{-webkit-transform:rotate(30deg) translateY(-142%);-ms-transform:rotate(30deg) translateY(-142%);transform:rotate(30deg) translateY(-142%);-webkit-animation-delay:-.9163s;animation-delay:-.9163s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{-webkit-transform:rotate(60deg) translateY(-142%);-ms-transform:rotate(60deg) translateY(-142%);transform:rotate(60deg) translateY(-142%);-webkit-animation-delay:-.833s;animation-delay:-.833s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{-webkit-transform:rotate(90deg) translateY(-142%);-ms-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.7497s;animation-delay:-.7497s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{-webkit-transform:rotate(120deg) translateY(-142%);-ms-transform:rotate(120deg) translateY(-142%);transform:rotate(120deg) translateY(-142%);-webkit-animation-delay:-.6664s;animation-delay:-.6664s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{-webkit-transform:rotate(150deg) translateY(-142%);-ms-transform:rotate(150deg) translateY(-142%);transform:rotate(150deg) translateY(-142%);-webkit-animation-delay:-.5831s;animation-delay:-.5831s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{-webkit-transform:rotate(180deg) translateY(-142%);-ms-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.4998s;animation-delay:-.4998s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{-webkit-transform:rotate(210deg) translateY(-142%);-ms-transform:rotate(210deg) translateY(-142%);transform:rotate(210deg) translateY(-142%);-webkit-animation-delay:-.4165s;animation-delay:-.4165s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{-webkit-transform:rotate(240deg) translateY(-142%);-ms-transform:rotate(240deg) translateY(-142%);transform:rotate(240deg) translateY(-142%);-webkit-animation-delay:-.3332s;animation-delay:-.3332s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{-webkit-transform:rotate(270deg) translateY(-142%);-ms-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.2499s;animation-delay:-.2499s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{-webkit-transform:rotate(300deg) translateY(-142%);-ms-transform:rotate(300deg) translateY(-142%);transform:rotate(300deg) translateY(-142%);-webkit-animation-delay:-.1666s;animation-delay:-.1666s}.xgplayer-skin-default .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{-webkit-transform:rotate(330deg) translateY(-142%);-ms-transform:rotate(330deg) translateY(-142%);transform:rotate(330deg) translateY(-142%);-webkit-animation-delay:-.0833s;animation-delay:-.0833s}@-webkit-keyframes fade{0%{opacity:1}to{opacity:.25}}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-default.xgplayer-is-enter .xgplayer-enter{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _requestCssFull = __webpack_require__(112);
        var _requestCssFull2 = _interopRequireDefault2(_requestCssFull);
        var _exitCssFull = __webpack_require__(113);
        var _exitCssFull2 = _interopRequireDefault2(_exitCssFull);
        __webpack_require__(114);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_cssFullscreen2 = function s_cssFullscreen3() {
          var player = this;
          if (!player.config.cssFullscreen) {
            return;
          }
          var btn = (0, _util.createDom)("xg-cssfullscreen", '<xg-icon class="xgplayer-icon">\n                                             <div class="xgplayer-icon-requestfull">' + _requestCssFull2.default + '</div>\n                                             <div class="xgplayer-icon-exitfull">' + _exitCssFull2.default + "</div>\n                                           </xg-icon>", {}, "xgplayer-cssfullscreen");
          var tipsText = {};
          tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS;
          tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-requestfull">' + tipsText.requestfull + '</span>\n                                        <span class="xgplayer-tip-exitfull">' + tipsText.exitfull + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("cssFullscreenBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_cssFullscreen",
          method: s_cssFullscreen2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.028 0.028)" d="M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.028 0.028)" d="M834.56 81.92H189.44c-59.392 0-107.52 48.128-107.52 107.52v645.12c0 59.392 48.128 107.52 107.52 107.52h645.12c59.392 0 107.52-48.128 107.52-107.52V189.44c0-59.392-48.128-107.52-107.52-107.52zM458.24 727.04c0 14.848-12.288 26.624-26.624 26.624S404.48 741.888 404.48 727.04v-69.632L289.28 773.12c-10.752 10.24-27.648 10.24-37.888 0-10.24-10.752-10.24-27.648 0-37.888L366.592 619.52H296.96c-14.848 0-26.624-12.288-26.624-26.624s12.288-26.624 26.624-26.624h134.144c14.848 0 26.624 12.288 26.624 26.624V727.04z m0-295.936c0 14.848-12.288 26.624-26.624 26.624H296.96c-14.848 0-26.624-12.288-26.624-26.624S282.112 404.48 296.96 404.48h69.632L251.392 289.28c-10.24-10.752-10.24-27.648 0-37.888 5.12-5.12 12.288-7.68 18.944-7.68 6.656 0 13.824 2.56 18.944 7.68L404.48 366.592V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v134.144zM773.12 773.12c-10.752 10.24-27.648 10.24-37.888 0L619.52 657.408V727.04c0 14.848-12.288 26.624-26.624 26.624s-26.624-11.776-26.624-26.624v-134.144c0-14.848 12.288-26.624 26.624-26.624H727.04c14.848 0 26.624 12.288 26.624 26.624s-12.288 26.624-26.624 26.624h-69.632l115.2 115.2c10.752 10.752 10.752 27.648 0.512 38.4z m0-483.84L657.408 404.48H727.04c14.848 0 26.624 12.288 26.624 26.624 0 14.848-12.288 26.624-26.624 26.624h-134.144c-14.848 0-26.624-12.288-26.624-26.624V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v69.632L734.72 250.88c5.12-5.12 12.288-7.68 18.944-7.68s13.824 2.56 18.944 7.68c10.752 10.752 10.752 27.648 0.512 38.4z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(115);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-cssfullscreen,.xgplayer-skin-default .xgplayer-cssfullscreen-img{position:relative;-webkit-order:12;-moz-box-ordinal-group:13;order:12;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon div,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-40px}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-default .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover,.xgplayer-skin-default .xgplayer-cssfullscreen:hover{opacity:.85}.xgplayer-skin-default .xgplayer-cssfullscreen-img:hover .xgplayer-tips,.xgplayer-skin-default .xgplayer-cssfullscreen:hover .xgplayer-tips{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-47px}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-default.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-default.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-default.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips{margin-left:-60px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _volumeMuted = __webpack_require__(117);
        var _volumeMuted2 = _interopRequireDefault2(_volumeMuted);
        var _volumeSmall = __webpack_require__(118);
        var _volumeSmall2 = _interopRequireDefault2(_volumeSmall);
        var _volumeLarge = __webpack_require__(119);
        var _volumeLarge2 = _interopRequireDefault2(_volumeLarge);
        __webpack_require__(120);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_volume2 = function s_volume3() {
          var player = this;
          var container = (0, _util.createDom)("xg-volume", '<xg-icon class="xgplayer-icon">\n                                         <div class="xgplayer-icon-large">' + _volumeLarge2.default + '</div>\n                                         <div class="xgplayer-icon-small">' + _volumeSmall2.default + '</div>\n                                         <div class="xgplayer-icon-muted">' + _volumeMuted2.default + '</div>\n                                       </xg-icon>\n                                       <xg-slider class="xgplayer-slider" tabindex="2">\n                                         <xg-bar class="xgplayer-bar">\n                                           <xg-drag class="xgplayer-drag"></xg-drag>\n                                         </xg-bar>\n                                       </xg-slider>', {}, "xgplayer-volume");
          player.once("ready", function() {
            if (player.controls) {
              player.controls.appendChild(container);
            }
          });
          var slider = container.querySelector(".xgplayer-slider");
          var bar = container.querySelector(".xgplayer-bar");
          var selected = container.querySelector(".xgplayer-drag");
          var icon = container.querySelector(".xgplayer-icon");
          selected.style.height = player.config.volume * 100 + "%";
          slider.volume = player.config.volume;
          bar.addEventListener("mousedown", function(e) {
            e.preventDefault();
            e.stopPropagation();
            player.userGestureTrigEvent("volumeBarClick", e);
          });
          ["click", "touchend"].forEach(function(item) {
            icon.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("volumeIconClick");
            });
          });
          icon.addEventListener("mouseenter", function(e) {
            e.preventDefault();
            e.stopPropagation();
            player.userGestureTrigEvent("volumeIconEnter");
          });
          ["blur", "mouseleave"].forEach(function(item) {
            container.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("volumeIconLeave");
            });
          });
        };
        exports2.default = {
          name: "s_volume",
          method: s_volume2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">\n  <path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>\n  <path transform="scale(0.0220625 0.0220625)" d="M920.4 439.808l-108.544-109.056-72.704 72.704 109.568 108.544-109.056 108.544 72.704 72.704 108.032-109.568 108.544 109.056 72.704-72.704-109.568-108.032 109.056-108.544-72.704-72.704-108.032 109.568z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">\n  <path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>\n  <path transform="scale(0.0220625 0.0220625)" d="M795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"></path>\n</svg>\n';
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">\n  <path transform="scale(0.0220625 0.0220625)" d="M358.4 358.4h-204.8v307.2h204.8l256 256v-819.2l-256 256z"></path>\n  <path transform="scale(0.0220625 0.0220625)" d="M940.632 837.632l-72.192-72.192c65.114-64.745 105.412-154.386 105.412-253.44s-40.299-188.695-105.396-253.424l-0.016-0.016 72.192-72.192c83.639 83.197 135.401 198.37 135.401 325.632s-51.762 242.434-135.381 325.612l-0.020 0.020zM795.648 693.248l-72.704-72.704c27.756-27.789 44.921-66.162 44.921-108.544s-17.165-80.755-44.922-108.546l0.002 0.002 72.704-72.704c46.713 46.235 75.639 110.363 75.639 181.248s-28.926 135.013-75.617 181.227l-0.021 0.021z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(121);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, '.xgplayer-skin-default .xgplayer-volume{outline:none;-webkit-order:4;-moz-box-ordinal-group:5;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-9px}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-default .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-default .xgplayer-slider:after{content:" ";display:block;height:15px;width:28px;position:absolute;bottom:-15px;left:0;z-index:20}.xgplayer-skin-default .xgplayer-bar,.xgplayer-skin-default .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:hsla(0,0%,100%,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-default .xgplayer-drag{bottom:0;left:0;background:#fa1f41;max-height:76px}.xgplayer-skin-default .xgplayer-drag:after{content:" ";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px 0 rgba(0,0,0,.26);position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-default.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-default.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-default.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-default.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-default.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}', ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _sniffer = __webpack_require__(5);
        var _sniffer2 = _interopRequireDefault2(_sniffer);
        __webpack_require__(123);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_definition = function s_definition2() {
          var player = this;
          var root = player.root;
          var paused = void 0;
          var container = (0, _util.createDom)("xg-definition", "", { tabindex: 3 }, "xgplayer-definition");
          if (_sniffer2.default.device === "mobile") {
            player.config.definitionActive = "click";
          }
          function onCanplayResourceReady() {
            var list = player.definitionList;
            var tmp = ["<ul>"], src = player.config.url, a = document.createElement("a");
            if (player.switchURL) {
              ["mp4", "hls", "__flv__", "dash"].every(function(item) {
                if (player[item]) {
                  if (player[item].url) {
                    a.href = player[item].url;
                  }
                  if (item === "__flv__") {
                    if (player[item]._options) {
                      a.href = player[item]._options.url;
                    } else {
                      a.href = player[item]._mediaDataSource.url;
                    }
                  }
                  if (item === "hls") {
                    a.href = player[item].originUrl || player[item].url;
                    src = a.href;
                  }
                  src = a.href;
                  return false;
                } else {
                  return true;
                }
              });
            } else {
              src = player.currentSrc || player.src;
            }
            list.forEach(function(item) {
              a.href = item.url;
              if (player.dash) {
                tmp.push("<li url='" + item.url + "' cname='" + item.name + "' class='" + (item.selected ? "selected" : "") + "'>" + item.name + "</li>");
              } else {
                tmp.push("<li url='" + item.url + "' cname='" + item.name + "' class='" + (a.href === src ? "selected" : "") + "'>" + item.name + "</li>");
              }
            });
            var cursrc = list.filter(function(item) {
              a.href = item.url;
              if (player.dash) {
                return item.selected === true;
              } else {
                return a.href === src;
              }
            });
            tmp.push("</ul><p class='name'>" + (cursrc[0] || { name: "" }).name + "</p>");
            var urlInRoot = root.querySelector(".xgplayer-definition");
            if (urlInRoot) {
              urlInRoot.innerHTML = tmp.join("");
              var cur = urlInRoot.querySelector(".name");
              if (!player.config.definitionActive || player.config.definitionActive === "hover") {
                cur.addEventListener("mouseenter", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  (0, _util.addClass)(player.root, "xgplayer-definition-active");
                  urlInRoot.focus();
                });
              }
            } else {
              container.innerHTML = tmp.join("");
              var _cur = container.querySelector(".name");
              if (!player.config.definitionActive || player.config.definitionActive === "hover") {
                _cur.addEventListener("mouseenter", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  (0, _util.addClass)(player.root, "xgplayer-definition-active");
                  container.focus();
                });
              }
              player.controls.appendChild(container);
            }
          }
          function onResourceReady(list) {
            player.definitionList = list;
            if (list && list instanceof Array && list.length > 0) {
              (0, _util.addClass)(root, "xgplayer-is-definition");
              player.once("canplay", onCanplayResourceReady);
            }
          }
          player.on("resourceReady", onResourceReady);
          function onPlayingChangeDefinition() {
            player.currentTime = player.curTime;
            if (paused) {
              player.pause();
            } else {
              var playPromise = player.play();
              if (playPromise !== void 0 && playPromise) {
                playPromise.catch(function(err) {
                });
              }
            }
          }
          function onTimeupdateChangeDefinition() {
            player.once("timeupdate", onPlayingChangeDefinition);
          }
          ["touchend", "click"].forEach(function(item) {
            container.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              var list = player.definitionList;
              var li = e.target || e.srcElement, a = document.createElement("a");
              if (li && li.tagName.toLocaleLowerCase() === "li") {
                var from = void 0, to = void 0;
                Array.prototype.forEach.call(li.parentNode.childNodes, function(item2) {
                  if ((0, _util.hasClass)(item2, "selected")) {
                    from = item2.getAttribute("cname");
                    (0, _util.removeClass)(item2, "selected");
                    player.emit("beforeDefinitionChange", item2.getAttribute("url"));
                  }
                });
                if (player.dash) {
                  list.forEach(function(item2) {
                    item2.selected = false;
                    if (item2.name === li.innerHTML) {
                      item2.selected = true;
                    }
                  });
                }
                (0, _util.addClass)(li, "selected");
                to = li.getAttribute("cname");
                li.parentNode.nextSibling.innerHTML = "" + li.getAttribute("cname");
                a.href = li.getAttribute("url");
                paused = player.paused;
                if (player.switchURL) {
                  var curRUL = document.createElement("a");
                  ["mp4", "hls", "__flv__", "dash"].every(function(item2) {
                    if (player[item2]) {
                      if (player[item2].url) {
                        curRUL.href = player[item2].url;
                      }
                      if (item2 === "__flv__") {
                        if (player[item2]._options) {
                          curRUL.href = player[item2]._options.url;
                        } else {
                          curRUL.href = player[item2]._mediaDataSource.url;
                        }
                      }
                      if (item2 === "hls") {
                        curRUL.href = player[item2].originUrl || player[item2].url;
                      }
                      return false;
                    } else {
                      return true;
                    }
                  });
                  if (curRUL.href !== a.href && !player.ended) {
                    player.switchURL(a.href);
                  }
                } else {
                  if (player["hls"]) {
                    document.createElement("a");
                    player["hls"].url;
                  }
                  if (a.href !== player.currentSrc) {
                    player.curTime = player.currentTime;
                    if (!player.ended) {
                      player.src = a.href;
                    }
                  }
                }
                if (navigator.userAgent.toLowerCase().indexOf("android") > -1) {
                  player.once("timeupdate", onTimeupdateChangeDefinition);
                } else {
                  player.once("loadedmetadata", onPlayingChangeDefinition);
                }
                player.emit("definitionChange", { from, to });
                if (_sniffer2.default.device === "mobile") {
                  (0, _util.removeClass)(player.root, "xgplayer-definition-active");
                }
              } else if (player.config.definitionActive === "click" && li && (li.tagName.toLocaleLowerCase() === "p" || li.tagName.toLocaleLowerCase() === "em")) {
                if (_sniffer2.default.device === "mobile") {
                  (0, _util.toggleClass)(player.root, "xgplayer-definition-active");
                } else {
                  (0, _util.addClass)(player.root, "xgplayer-definition-active");
                }
                container.focus();
              }
              player.emit("focus");
            }, false);
          });
          container.addEventListener("mouseleave", function(e) {
            e.preventDefault();
            e.stopPropagation();
            (0, _util.removeClass)(root, "xgplayer-definition-active");
          });
          function onBlur() {
            (0, _util.removeClass)(root, "xgplayer-definition-active");
          }
          player.on("blur", onBlur);
          function onDestroy() {
            player.off("resourceReady", onResourceReady);
            player.off("canplay", onCanplayResourceReady);
            if (navigator.userAgent.toLowerCase().indexOf("android") > -1) {
              player.off("timeupdate", onTimeupdateChangeDefinition);
              player.off("timeupdate", onPlayingChangeDefinition);
            } else {
              player.off("loadedmetadata", onPlayingChangeDefinition);
            }
            player.off("blur", onBlur);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
          player.getCurrentDefinition = function() {
            var liList = player.controls.querySelectorAll(".xgplayer-definition ul li");
            for (var i = 0; i < liList.length; i++) {
              if (liList[i].className && liList[i].className.indexOf("selected") > -1) {
                return {
                  name: liList[i].getAttribute("cname"),
                  url: liList[i].getAttribute("url")
                };
              }
            }
            return {
              name: liList[0].getAttribute("cname"),
              url: liList[0].getAttribute("url")
            };
          };
          player.switchDefinition = function() {
            var definitionObj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
            var liList = player.controls.querySelectorAll(".xgplayer-definition ul li");
            for (var i = 0; i < liList.length; i++) {
              if (liList[i].getAttribute("cname") === definitionObj.name || liList[i].getAttribute("url") === definitionObj.url || i === definitionObj.index) {
                liList[i].click();
              }
            }
          };
        };
        exports2.default = {
          name: "s_definition",
          method: s_definition
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(124);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-definition{-webkit-order:5;-moz-box-ordinal-group:6;order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-default .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);padding:6px 13px}.xgplayer-skin-default .xgplayer-definition ul li.selected,.xgplayer-skin-default .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-default.xgplayer-is-definition .xgplayer-definition{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _sniffer = __webpack_require__(5);
        var _sniffer2 = _interopRequireDefault2(_sniffer);
        __webpack_require__(126);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_playbackRate2 = function s_playbackRate3() {
          var player = this;
          var playbackRateList = [];
          if (player.config.playbackRate) {
            playbackRateList = [].concat(player.config.playbackRate);
            playbackRateList.sort(function(a, b) {
              return b - a;
            });
          } else {
            return false;
          }
          var unit = player.config.playbackRateUnit !== void 0 ? player.config.playbackRateUnit : "x";
          var container = (0, _util.createDom)("xg-playbackrate", " ", {}, "xgplayer-playbackrate");
          if (_sniffer2.default.device === "mobile") {
            player.config.playbackRateActive = "click";
          }
          var list = [];
          playbackRateList.forEach(function(item) {
            list.push({ name: "" + item, rate: "" + item + unit, selected: false });
          });
          var selectedSpeed = 1;
          var tmp = ["<ul>"];
          list.forEach(function(item) {
            if (player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {
              item.selected = true;
              selectedSpeed = player.config.defaultPlaybackRate;
              player.once("playing", function() {
                player.video.playbackRate = player.config.defaultPlaybackRate;
              });
            } else if (item.name === "1.0" || item.name === "1") {
              if (!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {
                item.selected = true;
              }
            }
            tmp.push("<li cname='" + item.name + "' class='" + (item.selected ? "selected" : "") + "'>" + item.rate + "</li>");
          });
          tmp.push("</ul><p class='name'>" + selectedSpeed + unit + "</p>");
          var playbackDom = player.root.querySelector(".xgplayer-playbackrate");
          if (playbackDom) {
            playbackDom.innerHTML = tmp.join("");
            var cur = playbackDom.querySelector(".name");
            if (!player.config.playbackRateActive || player.config.playbackRateActive === "hover") {
              cur.addEventListener("mouseenter", function(e) {
                e.preventDefault();
                e.stopPropagation();
                (0, _util.addClass)(player.root, "xgplayer-playbackrate-active");
                playbackDom.focus();
              });
            }
          } else {
            container.innerHTML = tmp.join("");
            var _cur = container.querySelector(".name");
            if (!player.config.playbackRateActive || player.config.playbackRateActive === "hover") {
              _cur.addEventListener("mouseenter", function(e) {
                e.preventDefault();
                e.stopPropagation();
                (0, _util.addClass)(player.root, "xgplayer-playbackrate-active");
                container.focus();
              });
            }
            player.once("ready", function() {
              player.controls.appendChild(container);
            });
          }
          var ev = ["touchend", "click"];
          ev.forEach(function(item) {
            container.addEventListener(item, function(e) {
              e.stopPropagation();
              e.preventDefault();
              var li = e.target;
              if (li && li.tagName.toLocaleLowerCase() === "li") {
                var from = void 0, to = void 0;
                list.forEach(function(item2) {
                  item2.selected = false;
                  if (li.textContent.replace(/\s+/g, "") === item2.rate) {
                    Array.prototype.forEach.call(li.parentNode.childNodes, function(item3) {
                      if ((0, _util.hasClass)(item3, "selected")) {
                        from = Number(item3.getAttribute("cname"));
                        (0, _util.removeClass)(item3, "selected");
                      }
                    });
                    item2.selected = true;
                    player.video.playbackRate = item2.name * 1;
                    selectedSpeed = item2.name * 1;
                  }
                });
                (0, _util.addClass)(li, "selected");
                to = Number(li.getAttribute("cname"));
                li.parentNode.nextSibling.innerHTML = "" + li.getAttribute("cname") + unit;
                player.emit("playbackrateChange", { from, to });
                if (_sniffer2.default.device === "mobile") {
                  (0, _util.removeClass)(player.root, "xgplayer-playbackrate-active");
                }
              } else if (player.config.playbackRateActive === "click" && li && (li.tagName.toLocaleLowerCase() === "p" || li.tagName.toLocaleLowerCase() === "span")) {
                if (_sniffer2.default.device === "mobile") {
                  (0, _util.toggleClass)(player.root, "xgplayer-playbackrate-active");
                } else {
                  (0, _util.addClass)(player.root, "xgplayer-playbackrate-active");
                }
                container.focus();
              }
              player.emit("focus");
            }, false);
          });
          container.addEventListener("mouseleave", function(e) {
            e.preventDefault();
            e.stopPropagation();
            (0, _util.removeClass)(player.root, "xgplayer-playbackrate-active");
          });
          function onBlur() {
            (0, _util.removeClass)(player.root, "xgplayer-playbackrate-active");
          }
          player.on("blur", onBlur);
          player.on("play", function() {
            if (player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1)) {
              player.video.playbackRate = selectedSpeed;
            }
          });
          player.switchPlaybackRate = function() {
            var playbackRateObj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
            var liList = player.controls.querySelectorAll(".xgplayer-playbackrate ul li");
            for (var i = 0; i < liList.length; i++) {
              if (!(0, _util.hasClass)(liList[i], "selected") && (liList[i].getAttribute("cname") === "" + playbackRateObj.playbackRate || i === playbackRateObj.index)) {
                liList[i].click();
              }
            }
          };
          player.on("ratechange", function() {
            player.switchPlaybackRate({ playbackRate: player.playbackRate });
          });
        };
        exports2.default = {
          name: "s_playbackRate",
          method: s_playbackRate2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(127);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-playbackrate{-webkit-order:8;-moz-box-ordinal-group:9;order:8;width:60px;height:150px;z-index:18;position:relative;display:inline-block;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-playbackrate ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-playbackrate ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);position:relative;padding:4px 0;text-align:center}.xgplayer-skin-default .xgplayer-playbackrate ul li.selected,.xgplayer-skin-default .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-playbackrate ul li:first-child{position:relative;margin-top:12px}.xgplayer-skin-default .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-default .xgplayer-playbackrate .name{width:60px;height:20px;position:absolute;bottom:0;text-align:center;font-family:PingFangSC-Regular;font-size:13px;background:rgba(0,0,0,.38);color:hsla(0,0%,100%,.8);border-radius:10px;line-height:20px}.xgplayer-skin-default .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-default .xgplayer-playbackrate:hover{opacity:1}.xgplayer-skin-default.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var s_localPreview = function s_localPreview2() {
          var player = this;
          if (player.config.preview && player.config.preview.uploadEl) {
            var preview = (0, _util.createDom)("xg-preview", '<input type="file">', {}, "xgplayer-preview");
            var upload = preview.querySelector("input");
            player.config.preview.uploadEl.appendChild(preview);
            upload.onchange = function() {
              player.emit("upload", upload);
            };
          }
        };
        exports2.default = {
          name: "s_localPreview",
          method: s_localPreview
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _download = __webpack_require__(130);
        var _download2 = _interopRequireDefault2(_download);
        __webpack_require__(131);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_download2 = function s_download3() {
          var player = this;
          if (!player.config.download) {
            return;
          }
          var btn = (0, _util.createDom)("xg-download", '<xg-icon class="xgplayer-icon">' + _download2.default + "</xg-icon>", {}, "xgplayer-download");
          var tipsText = player.lang.DOWNLOAD_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-download">' + tipsText + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("downloadBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_download",
          method: s_download2
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24">\n  <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n    <g transform="translate(-488.000000, -340.000000)" fill="#FFFFFF">\n      <g id="Group-2">\n        <g id="volme_big-copy" transform="translate(488.000000, 340.000000)">\n          <rect id="Rectangle-18" x="11" y="4" width="2" height="12" rx="1"></rect>\n          <rect id="Rectangle-2" x="3" y="18" width="18" height="2" rx="1"></rect>\n          <rect id="Rectangle-2" transform="translate(4.000000, 17.500000) rotate(90.000000) translate(-4.000000, -17.500000) " x="1.5" y="16.5" width="5" height="2" rx="1"></rect><rect id="Rectangle-2-Copy-3" transform="translate(20.000000, 17.500000) rotate(90.000000) translate(-20.000000, -17.500000) " x="17.5" y="16.5" width="5" height="2" rx="1"></rect>\n          <path d="M9.48791171,8.26502656 L9.48791171,14.2650266 C9.48791171,14.8173113 9.04019646,15.2650266 8.48791171,15.2650266 C7.93562696,15.2650266 7.48791171,14.8173113 7.48791171,14.2650266 L7.48791171,7.26502656 C7.48791171,6.71274181 7.93562696,6.26502656 8.48791171,6.26502656 L15.4879117,6.26502656 C16.0401965,6.26502656 16.4879117,6.71274181 16.4879117,7.26502656 C16.4879117,7.81731131 16.0401965,8.26502656 15.4879117,8.26502656 L9.48791171,8.26502656 Z" id="Combined-Shape" transform="translate(11.987912, 10.765027) scale(1, -1) rotate(45.000000) translate(-11.987912, -10.765027) "></path>\n        </g>\n      </g>\n    </g>\n  </g>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(132);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-download{position:relative;-webkit-order:9;-moz-box-ordinal-group:10;order:9;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-default .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-download .xgplayer-icon svg{position:relative;top:5px;left:5px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-default .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-default .xgplayer-download:hover{opacity:.85}.xgplayer-skin-default .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _danmu = __webpack_require__(134);
        var _danmu2 = _interopRequireDefault2(_danmu);
        var _panel = __webpack_require__(136);
        var _panel2 = _interopRequireDefault2(_panel);
        __webpack_require__(137);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_danmu = function s_danmu2() {
          var player = this;
          var root = player.root;
          if (!player.config.danmu) {
            return;
          }
          var container = (0, _util.createDom)("xg-danmu", "", {}, "xgplayer-danmu");
          player.once("ready", function() {
            root.appendChild(container);
          });
          var config = (0, _util.deepCopy)({
            container,
            player: player.video,
            comments: [],
            area: {
              start: 0,
              end: 1
            }
          }, player.config.danmu);
          var panelBtn = void 0;
          if (player.config.danmu.panel) {
            panelBtn = (0, _util.createDom)("xg-panel", '<xg-panel-icon class="xgplayer-panel-icon">\n                                                ' + _panel2.default + '\n                                              </xg-panel-icon>\n                                              <xg-panel-slider class="xgplayer-panel-slider">\n                                                <xg-hidemode class="xgplayer-hidemode">\n                                                  <p class="xgplayer-hidemode-font">\u5C4F\u853D\u7C7B\u578B</p>\n                                                  <ul class="xgplayer-hidemode-radio">\n                                                    <li class="xgplayer-hidemode-scroll" id="false">\u6EDA\u52A8</li><li class="xgplayer-hidemode-top" id="false">\u9876\u90E8</li><li class="xgplayer-hidemode-bottom" id="false">\u5E95\u90E8</li><li class="xgplayer-hidemode-color" id="false">\u8272\u5F69</li>\n                                                  </ul>\n                                                </xg-hidemode>\n                                                <xg-transparency class="xgplayer-transparency">\n                                                  <span>\u4E0D\u900F\u660E\u5EA6</span>\n                                                  <input class="xgplayer-transparency-line xgplayer-transparency-color xgplayer-transparency-bar xgplayer-transparency-gradient" type="range" min="0" max="100" step="0.1" value="50"></input>\n                                                </xg-transparency>\n                                                <xg-showarea class="xgplayer-showarea">\n                                                  <div class="xgplayer-showarea-name">\u663E\u793A\u533A\u57DF</div>\n                                                  <div class="xgplayer-showarea-control">\n                                                    <div class="xgplayer-showarea-control-up">\n                                                      <span class="xgplayer-showarea-control-up-item xgplayer-showarea-onequarters">1/4</span>\n                                                      <span class="xgplayer-showarea-control-up-item xgplayer-showarea-twoquarters selected-color">1/2</span>\n                                                      <span class="xgplayer-showarea-control-up-item xgplayer-showarea-threequarters">3/4</span>\n                                                      <span class="xgplayer-showarea-control-up-item xgplayer-showarea-full">1</span>\n                                                    </div>\n                                                    <div class="xgplayer-showarea-control-down">\n                                                      <div class="xgplayer-showarea-control-down-dots">\n                                                        <span class="xgplayer-showarea-onequarters-dot"></span>\n                                                        <span class="xgplayer-showarea-twoquarters-dot"></span>\n                                                        <span class="xgplayer-showarea-threequarters-dot"></span>\n                                                        <span class="xgplayer-showarea-full-dot"></span>\n                                                      </div>\n                                                      <input class="xgplayer-showarea-line xgplayer-showarea-color xgplayer-showarea-bar xgplayer-gradient" type="range" min="1" max="4" step="1" value="1">\n                                                    </div>\n                                                  </div>\n                                                </xg-showarea>\n                                                <xg-danmuspeed class="xgplayer-danmuspeed">\n                                                  <div class="xgplayer-danmuspeed-name">\u5F39\u5E55\u901F\u5EA6</div>\n                                                  <div class="xgplayer-danmuspeed-control">\n                                                    <div class="xgplayer-danmuspeed-control-up">\n                                                      <span class="xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-small">\u6162</span>\n                                                      <span class="xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-middle selected-color">\u4E2D</span>\n                                                      <span class="xgplayer-danmuspeed-control-up-item xgplayer-danmuspeed-large">\u5FEB</span>\n                                                    </div>\n                                                    <div class="xgplayer-danmuspeed-control-down">\n                                                      <div class="xgplayer-danmuspeed-control-down-dots">\n                                                        <span class="xgplayer-danmuspeed-small-dot"></span>\n                                                        <span class="xgplayer-danmuspeed-middle-dot"></span>\n                                                        <span class="xgplayer-danmuspeed-large-dot"></span>\n                                                      </div>\n                                                      <input class="xgplayer-danmuspeed-line xgplayer-danmuspeed-color xgplayer-danmuspeed-bar xgplayer-gradient" type="range" min="50" max="150" step="50" value="100">\n                                                    </div>\n                                                  </div>\n                                                </xg-danmuspeed>\n                                                <xg-danmufont class="xgplayer-danmufont">\n                                                  <div class="xgplayer-danmufont-name">\u5B57\u4F53\u5927\u5C0F</div>\n                                                  <div class="xgplayer-danmufont-control">\n                                                    <div class="xgplayer-danmufont-control-up">\n                                                      <span class="xgplayer-danmufont-control-up-item xgplayer-danmufont-small">\u5C0F</span>\n                                                      <span class="xgplayer-danmufont-control-up-item xgplayer-danmufont-middle">\u4E2D</span>\n                                                      <span class="xgplayer-danmufont-control-up-item xgplayer-danmufont-large selected-color">\u5927</span>\n                                                    </div>\n                                                    <div class="xgplayer-danmufont-control-down">\n                                                      <div class="xgplayer-danmufont-control-down-dots">\n                                                        <span class="xgplayer-danmufont-small-dot"></span>\n                                                        <span class="xgplayer-danmufont-middle-dot"></span>\n                                                        <span class="xgplayer-danmufont-large-dot"></span>\n                                                      </div>\n                                                      <input class="xgplayer-danmufont-line xgplayer-danmufont-color xgplayer-danmufont-bar xgplayer-gradient" type="range" min="20" max="30" step="5" value="25">\n                                                    </div>\n                                                  </div>\n                                                </xg-danmufont>\n                                              </xg-panel-slider>', { tabindex: 7 }, "xgplayer-panel");
            player.once("ready", function() {
              player.controls.appendChild(panelBtn);
            });
          }
          player.once("complete", function() {
            var danmujs = new _danmu2.default(config);
            player.emit("initDefaultDanmu", danmujs);
            player.danmu = danmujs;
            if (!player.config.danmu.panel) {
              return;
            }
            var slider = panelBtn.querySelector(".xgplayer-panel-slider");
            var focusStatus = void 0;
            var focusarray = ["mouseenter", "touchend", "click"];
            focusarray.forEach(function(item) {
              panelBtn.addEventListener(item, function(e) {
                e.preventDefault();
                e.stopPropagation();
                (0, _util.addClass)(slider, "xgplayer-panel-active");
                panelBtn.focus();
                focusStatus = true;
              });
            });
            panelBtn.addEventListener("mouseleave", function(e) {
              e.preventDefault();
              e.stopPropagation();
              (0, _util.removeClass)(slider, "xgplayer-panel-active");
              focusStatus = false;
            });
            slider.addEventListener("mouseleave", function(e) {
              e.preventDefault();
              e.stopPropagation();
              if (focusStatus === false) {
                (0, _util.removeClass)(slider, "xgplayer-panel-active");
              }
            });
            var danmuConfig = player.config.danmu;
            var hidemodeScroll = panelBtn.querySelector(".xgplayer-hidemode-scroll");
            var hidemodeTop = panelBtn.querySelector(".xgplayer-hidemode-top");
            var hidemodeBottom = panelBtn.querySelector(".xgplayer-hidemode-bottom");
            var hidemodeColor = panelBtn.querySelector(".xgplayer-hidemode-color");
            var hidemodeArray = {
              "scroll": hidemodeScroll,
              "top": hidemodeTop,
              "bottom": hidemodeBottom,
              "color": hidemodeColor
            };
            var _loop = function _loop2(key2) {
              var keys = key2;
              var ev = ["touchend", "click"];
              ev.forEach(function(item) {
                hidemodeArray[keys].addEventListener(item, function(e) {
                  if (hidemodeArray[keys].getAttribute("id") !== "true") {
                    hidemodeArray[keys].style.color = "#f85959";
                    hidemodeArray[keys].setAttribute("id", "true");
                    player.danmu.hide(keys);
                  } else {
                    hidemodeArray[keys].style.color = "#aaa";
                    hidemodeArray[keys].setAttribute("id", "false");
                    player.danmu.show(keys);
                  }
                });
              });
            };
            for (var key in hidemodeArray) {
              _loop(key);
            }
            var transparency = panelBtn.querySelector(".xgplayer-transparency-line");
            var transparencyGradient = panelBtn.querySelector(".xgplayer-transparency-gradient");
            var transparencyValue = 50;
            transparencyGradient.style.background = "linear-gradient(to right, #f85959 0%, #f85959 " + transparencyValue + "%, #aaa " + transparencyValue + "%, #aaa)";
            transparency.addEventListener("input", function(e) {
              e.preventDefault();
              e.stopPropagation();
              transparencyValue = e.target.value;
              transparencyGradient.style.background = "linear-gradient(to right, #f85959 0%, #f85959 " + transparencyValue + "%, #aaa " + transparencyValue + "%, #aaa)";
              danmuConfig.comments.forEach(function(item) {
                item.style.opacity = transparencyValue / 100;
              });
            });
            var showarea = panelBtn.querySelector(".xgplayer-showarea-line");
            showarea.addEventListener("input", function(e) {
              e.preventDefault();
              e.stopPropagation();
              var showareaValue = e.target.value;
              player.danmu.config.area.end = showareaValue / 100;
              player.config.danmu.area.end = showareaValue / 100;
              player.danmu.bulletBtn.main.channel.resize();
            });
            var danmuspeed = panelBtn.querySelector(".xgplayer-danmuspeed-line");
            danmuspeed.addEventListener("input", function(e) {
              e.preventDefault();
              e.stopPropagation();
              var danmuspeedValue = e.target.value;
              danmuConfig.comments.forEach(function(item) {
                item.duration = (200 - danmuspeedValue) * 100;
              });
            });
            var danmufont = panelBtn.querySelector(".xgplayer-danmufont-line");
            danmufont.addEventListener("input", function(e) {
              e.preventDefault();
              e.stopPropagation();
              var danmufontValue = e.target.value;
              danmuConfig.comments.forEach(function(item) {
                item.style.fontSize = danmufontValue + "px";
              });
            });
            if (navigator.userAgent.indexOf("Firefox") > -1) {
              for (var i = 0; i < slider.querySelectorAll("input").length; i++) {
                slider.querySelectorAll("input")[i].style.marginTop = "10px";
              }
            }
          });
        };
        exports2.default = {
          name: "s_danmu",
          method: s_danmu
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        (function(module3) {
          var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
          var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
            return typeof obj;
          } : function(obj) {
            return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
          };
          !function(e, t) {
            _typeof2(exports2) == "object" && _typeof2(module3) == "object" ? module3.exports = t() : !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = t, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__));
          }(window, function() {
            return function(e) {
              var t = {};
              function n(i) {
                if (t[i])
                  return t[i].exports;
                var o = t[i] = { i, l: false, exports: {} };
                return e[i].call(o.exports, o, o.exports, n), o.l = true, o.exports;
              }
              return n.m = e, n.c = t, n.d = function(e2, t2, i) {
                n.o(e2, t2) || Object.defineProperty(e2, t2, { enumerable: true, get: i });
              }, n.r = function(e2) {
                typeof Symbol != "undefined" && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
              }, n.t = function(e2, t2) {
                if (1 & t2 && (e2 = n(e2)), 8 & t2)
                  return e2;
                if (4 & t2 && (typeof e2 === "undefined" ? "undefined" : _typeof2(e2)) == "object" && e2 && e2.__esModule)
                  return e2;
                var i = /* @__PURE__ */ Object.create(null);
                if (n.r(i), Object.defineProperty(i, "default", { enumerable: true, value: e2 }), 2 & t2 && typeof e2 != "string")
                  for (var o in e2) {
                    n.d(i, o, function(t3) {
                      return e2[t3];
                    }.bind(null, o));
                  }
                return i;
              }, n.n = function(e2) {
                var t2 = e2 && e2.__esModule ? function() {
                  return e2.default;
                } : function() {
                  return e2;
                };
                return n.d(t2, "a", t2), t2;
              }, n.o = function(e2, t2) {
                return Object.prototype.hasOwnProperty.call(e2, t2);
              }, n.p = "", n(n.s = 4);
            }([function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = { createDom: function createDom2() {
                var e2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "div", t2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "", o = document.createElement(e2);
                return o.className = i2, o.innerHTML = t2, Object.keys(n2).forEach(function(t3) {
                  var i3 = t3, r = n2[t3];
                  e2 === "video" || e2 === "audio" ? r && o.setAttribute(i3, r) : o.setAttribute(i3, r);
                }), o;
              }, hasClass: function hasClass2(e2, t2) {
                return e2.classList ? Array.prototype.some.call(e2.classList, function(e3) {
                  return e3 === t2;
                }) : !!e2.className.match(new RegExp("(\\s|^)" + t2 + "(\\s|$)"));
              }, addClass: function addClass2(e2, t2) {
                e2.classList ? t2.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach(function(t3) {
                  t3 && e2.classList.add(t3);
                }) : i.hasClass(e2, t2) || (e2.className += " " + t2);
              }, removeClass: function removeClass2(e2, t2) {
                e2.classList ? t2.split(/\s+/g).forEach(function(t3) {
                  e2.classList.remove(t3);
                }) : i.hasClass(e2, t2) && t2.split(/\s+/g).forEach(function(t3) {
                  var n2 = new RegExp("(\\s|^)" + t3 + "(\\s|$)");
                  e2.className = e2.className.replace(n2, " ");
                });
              }, toggleClass: function toggleClass2(e2, t2) {
                t2.split(/\s+/g).forEach(function(t3) {
                  i.hasClass(e2, t3) ? i.removeClass(e2, t3) : i.addClass(e2, t3);
                });
              }, findDom: function findDom2() {
                var e2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : document, t2 = arguments[1], n2 = void 0;
                try {
                  n2 = e2.querySelector(t2);
                } catch (i2) {
                  t2.startsWith("#") && (n2 = e2.getElementById(t2.slice(1)));
                }
                return n2;
              }, deepCopy: function deepCopy(e2, t2) {
                if (i.typeOf(t2) === "Object" && i.typeOf(e2) === "Object")
                  return Object.keys(t2).forEach(function(n2) {
                    i.typeOf(t2[n2]) !== "Object" || t2[n2] instanceof Node ? i.typeOf(t2[n2]) === "Array" ? e2[n2] = i.typeOf(e2[n2]) === "Array" ? e2[n2].concat(t2[n2]) : t2[n2] : e2[n2] = t2[n2] : e2[n2] ? i.deepCopy(e2[n2], t2[n2]) : e2[n2] = t2[n2];
                  }), e2;
              }, typeOf: function typeOf2(e2) {
                return Object.prototype.toString.call(e2).match(/([^\s.*]+)(?=]$)/g)[0];
              }, copyDom: function copyDom(e2) {
                if (e2 && e2.nodeType === 1) {
                  var t2 = document.createElement(e2.tagName);
                  return Array.prototype.forEach.call(e2.attributes, function(e3) {
                    t2.setAttribute(e3.name, e3.value);
                  }), e2.innerHTML && (t2.innerHTML = e2.innerHTML), t2;
                }
                return "";
              }, formatTime: function formatTime(e2) {
                var t2 = Math.floor(e2);
                return 1e3 * t2 + (e2 - t2);
              }, offInDestroy: function offInDestroy(e2, t2, n2, i2) {
                e2.once(i2, function o() {
                  e2.off(t2, n2), e2.off(i2, o);
                });
              }, on: function on(e2, t2, n2, o) {
                if (o)
                  e2.on(t2, n2), i.offInDestroy(e2, t2, n2, o);
                else {
                  e2.on(t2, function i2(o2) {
                    n2(o2), e2.off(t2, i2);
                  });
                }
              }, style: function style(e2, t2, n2) {
                var i2 = e2.style;
                try {
                  i2[t2] = n2;
                } catch (e3) {
                  i2.setProperty(t2, n2);
                }
              } };
              t.default = i, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i, o = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), r = n(26), a = (i = r) && i.__esModule ? i : { default: i };
              var s = function() {
                function e2() {
                  !function(e3, t2) {
                    if (!(e3 instanceof t2))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, e2);
                }
                return o(e2, [{ key: "setLogger", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
                  this.logger = new a.default(e3 + ".js");
                } }]), e2;
              }();
              t.default = s, e.exports = t.default;
            }, function(e, t, n) {
              var i = n(19)();
              e.exports = function(e2) {
                return e2 !== i && e2 !== null;
              };
            }, function(e, t, n) {
              e.exports = function(e2) {
                return e2 != null;
              };
            }, function(e, t, n) {
              e.exports = n(5);
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i, o = n(6), r = (i = o) && i.__esModule ? i : { default: i };
              n(34), t.default = r.default, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), o = f(n(7)), r = f(n(1)), a = f(n(27)), s = f(n(31)), l = f(n(0)), u = n(32), c = n(33);
              function f(e2) {
                return e2 && e2.__esModule ? e2 : { default: e2 };
              }
              function h(e2, t2) {
                if (!e2)
                  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return !t2 || (typeof t2 === "undefined" ? "undefined" : _typeof2(t2)) != "object" && typeof t2 != "function" ? e2 : t2;
              }
              var d = function(e2) {
                function t2(e3) {
                  !function(e4, t3) {
                    if (!(e4 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, t2);
                  var n2 = h(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
                  n2.setLogger("danmu"), n2.logger && n2.logger.info("danmu.js version: " + u.version);
                  var i2 = n2;
                  if (i2.config = l.default.deepCopy({ overlap: false, area: { start: 0, end: 1 }, live: false, comments: [], direction: "r2l", needResizeObserver: false }, e3), i2.hideArr = [], i2.domObj = new s.default(), (0, o.default)(i2), i2.config.comments.forEach(function(e4) {
                    e4.duration = e4.duration ? e4.duration : 5e3, e4.mode || (e4.mode = "scroll");
                  }), !i2.config.container || i2.config.container.nodeType !== 1)
                    return i2.emit("error", "container id can't be empty"), h(n2, false);
                  if (i2.container = i2.config.container, i2.config.containerStyle) {
                    var r2 = i2.config.containerStyle;
                    Object.keys(r2).forEach(function(e4) {
                      i2.container.style[e4] = r2[e4];
                    });
                  }
                  return i2.live = i2.config.live, i2.player = i2.config.player, i2.direction = i2.config.direction, l.default.addClass(i2.container, "danmu"), i2.bulletBtn = new a.default(i2), i2.isReady = true, i2.emit("ready"), n2.logger && n2.logger.info("ready"), n2.addResizeObserver(), n2;
                }
                return function(e3, t3) {
                  if (typeof t3 != "function" && t3 !== null)
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)));
                  e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
                }(t2, e2), i(t2, [{ key: "addResizeObserver", value: function value() {
                  var e3 = this;
                  this.config.needResizeObserver && (0, c.addObserver)(this.container, function() {
                    e3.logger && e3.logger.info("needResizeObserver"), e3.resize();
                  });
                } }, { key: "start", value: function value() {
                  this.logger && this.logger.info("start"), this.bulletBtn.main.start();
                } }, { key: "pause", value: function value() {
                  this.logger && this.logger.info("pause"), this.bulletBtn.main.pause();
                } }, { key: "play", value: function value() {
                  this.logger && this.logger.info("play"), this.bulletBtn.main.play();
                } }, { key: "stop", value: function value() {
                  this.logger && this.logger.info("stop"), this.bulletBtn.main.stop();
                } }, { key: "clear", value: function value() {
                  this.logger && this.logger.info("clear"), this.bulletBtn.main.clear();
                } }, { key: "destroy", value: function value() {
                  for (var e3 in (0, c.unObserver)(this.container), this.logger && this.logger.info("destroy"), this.stop(), this.bulletBtn.destroy(), this.domObj.destroy(), this) {
                    delete this[e3];
                  }
                  this.emit("destroy");
                } }, { key: "sendComment", value: function value(e3) {
                  this.logger && this.logger.info("sendComment: " + (e3.txt || "[DOM Element]")), e3.duration || (e3.duration = 15e3), e3 && e3.id && e3.duration && (e3.el || e3.txt) && (e3.duration = e3.duration ? e3.duration : 5e3, e3.style || (e3.style = { opacity: void 0, fontSize: void 0 }), e3.style && (this.opacity && this.opacity !== e3.style.opacity && (e3.style.opacity = this.opacity), this.fontSize && this.fontSize !== e3.style.fontSize && (e3.style.fontSize = this.fontSize), this.like && (e3.like = e3.like ? e3.like : this.like)), e3.prior || e3.realTime ? (this.bulletBtn.main.data.unshift(e3), e3.realTime && (this.bulletBtn.main.readData(), this.bulletBtn.main.dataHandle())) : this.bulletBtn.main.data.push(e3));
                } }, { key: "setCommentID", value: function value(e3, t3) {
                  var n2 = this;
                  this.logger && this.logger.info("setCommentID: oldID " + e3 + " newID " + t3);
                  var i2 = this.container.getBoundingClientRect();
                  e3 && t3 && (this.bulletBtn.main.data.some(function(n3) {
                    return n3.id === e3 && (n3.id = t3, true);
                  }), this.bulletBtn.main.queue.some(function(o2) {
                    return o2.id === e3 && (o2.id = t3, o2.pauseMove(i2), n2.bulletBtn.main.status !== "paused" && o2.startMove(i2), true);
                  }));
                } }, { key: "setCommentDuration", value: function value(e3, t3) {
                  var n2 = this;
                  this.logger && this.logger.info("setCommentDuration: id " + e3 + " duration " + t3);
                  var i2 = this.container.getBoundingClientRect();
                  e3 && t3 && (t3 = t3 || 5e3, this.bulletBtn.main.data.some(function(n3) {
                    return n3.id === e3 && (n3.duration = t3, true);
                  }), this.bulletBtn.main.queue.some(function(o2) {
                    return o2.id === e3 && (o2.duration = t3, o2.pauseMove(i2), n2.bulletBtn.main.status !== "paused" && o2.startMove(i2), true);
                  }));
                } }, { key: "setCommentLike", value: function value(e3, t3) {
                  this.logger && this.logger.info("setCommentLike: id " + e3 + " like " + t3);
                  var n2 = this.container.getBoundingClientRect();
                  this.like = t3, e3 && t3 && (this.bulletBtn.main.data.some(function(n3) {
                    return n3.id === e3 && (n3.like = t3, true);
                  }), this.bulletBtn.main.queue.some(function(i2) {
                    return i2.id === e3 && (i2.pauseMove(n2), i2.setLikeDom(t3.el, t3.style), i2.danmu.bulletBtn.main.status !== "paused" && i2.startMove(n2), true);
                  }));
                } }, { key: "restartComment", value: function value(e3) {
                  this.logger && this.logger.info("restartComment: id " + e3), this.mouseControl = false;
                  var t3 = this.container.getBoundingClientRect();
                  e3 && this.bulletBtn.main.queue.some(function(n2) {
                    return n2.id === e3 && (n2.danmu.bulletBtn.main.status !== "paused" ? n2.startMove(t3, true) : n2.status = "paused", true);
                  });
                } }, { key: "freezeComment", value: function value(e3) {
                  this.logger && this.logger.info("freezeComment: id " + e3), this.mouseControl = true;
                  var t3 = this.container.getBoundingClientRect();
                  e3 && this.bulletBtn.main.queue.some(function(n2) {
                    return n2.id === e3 && (n2.status = "forcedPause", n2.pauseMove(t3), n2.el && n2.el.style && l.default.style(n2.el, "zIndex", 10), true);
                  });
                } }, { key: "removeComment", value: function value(e3) {
                  this.logger && this.logger.info("removeComment: id " + e3), e3 && (this.bulletBtn.main.queue.some(function(t3) {
                    return t3.id === e3 && (t3.remove(), true);
                  }), this.bulletBtn.main.data = this.bulletBtn.main.data.filter(function(t3) {
                    return t3.id !== e3;
                  }));
                } }, { key: "updateComments", value: function value(e3) {
                  var t3 = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1];
                  t3 && (this.bulletBtn.main.data = []), this.bulletBtn.main.data = this.bulletBtn.main.data.concat(e3);
                } }, { key: "setAllDuration", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll", t3 = arguments[1], n2 = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2];
                  this.logger && this.logger.info("setAllDuration: mode " + e3 + " duration " + t3 + " force " + n2);
                  var i2 = this.container.getBoundingClientRect();
                  t3 && (t3 = t3 || 5e3, n2 && (this.bulletBtn.main.forceDuration = t3), this.bulletBtn.main.data.forEach(function(n3) {
                    e3 === n3.mode && (n3.duration = t3);
                  }), this.bulletBtn.main.queue.forEach(function(n3) {
                    e3 === n3.mode && (n3.duration = t3, n3.pauseMove(i2), n3.danmu.bulletBtn.main.status !== "paused" && n3.startMove(i2));
                  }));
                } }, { key: "setOpacity", value: function value(e3) {
                  this.logger && this.logger.info("setOpacity: opacity " + e3), this.container.style.opacity = e3;
                } }, { key: "setFontSize", value: function value(e3, t3) {
                  var n2 = this;
                  this.logger && this.logger.info("setFontSize: size " + e3 + " channelSize " + t3), this.fontSize = e3 + "px", e3 && (this.bulletBtn.main.data.forEach(function(e4) {
                    e4.style && (e4.style.fontSize = n2.fontSize);
                  }), this.bulletBtn.main.queue.forEach(function(e4) {
                    e4.options.style || (e4.options.style = {}), e4.options.style.fontSize = n2.fontSize, e4.setFontSize(n2.fontSize), t3 && (e4.top = e4.channel_id[0] * t3, e4.topInit());
                  })), t3 && (this.config.channelSize = t3, this.bulletBtn.main.channel.resize(true));
                } }, { key: "setArea", value: function value(e3) {
                  this.logger && this.logger.info("setArea: area " + e3), this.config.area = e3, this.bulletBtn.main.channel.resize(true);
                } }, { key: "hide", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll";
                  this.logger && this.logger.info("hide: mode " + e3), this.hideArr.indexOf(e3) < 0 && this.hideArr.push(e3);
                  var t3 = this.bulletBtn.main.queue.filter(function(t4) {
                    return e3 === t4.mode || e3 === "color" && t4.color;
                  });
                  t3.forEach(function(e4) {
                    return e4.remove();
                  });
                } }, { key: "show", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll";
                  this.logger && this.logger.info("show: mode " + e3);
                  var t3 = this.hideArr.indexOf(e3);
                  t3 > -1 && this.hideArr.splice(t3, 1);
                } }, { key: "setDirection", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "r2l";
                  this.logger && this.logger.info("setDirection: direction " + e3), this.emit("changeDirection", e3);
                } }, { key: "resize", value: function value() {
                  this.logger && this.logger.info("resize"), this.emit("channel_resize");
                } }]), t2;
              }(r.default);
              t.default = d, e.exports = t.default;
            }, function(e, t, n) {
              var i, o, r, a, s, l, u, c = n(8), f = n(25), h = Function.prototype.apply, d = Function.prototype.call, g = Object.create, p = Object.defineProperty, m = Object.defineProperties, v = Object.prototype.hasOwnProperty, b = { configurable: true, enumerable: false, writable: true };
              o = function o2(e2, t2) {
                var _n, o3;
                return f(t2), o3 = this, i.call(this, e2, _n = function n2() {
                  r.call(o3, e2, _n), h.call(t2, this, arguments);
                }), _n.__eeOnceListener__ = t2, this;
              }, s = { on: i = function i2(e2, t2) {
                var n2;
                return f(t2), v.call(this, "__ee__") ? n2 = this.__ee__ : (n2 = b.value = g(null), p(this, "__ee__", b), b.value = null), n2[e2] ? _typeof2(n2[e2]) == "object" ? n2[e2].push(t2) : n2[e2] = [n2[e2], t2] : n2[e2] = t2, this;
              }, once: o, off: r = function r2(e2, t2) {
                var n2, i2, o2, r3;
                if (f(t2), !v.call(this, "__ee__"))
                  return this;
                if (!(n2 = this.__ee__)[e2])
                  return this;
                if (_typeof2(i2 = n2[e2]) == "object")
                  for (r3 = 0; o2 = i2[r3]; ++r3) {
                    o2 !== t2 && o2.__eeOnceListener__ !== t2 || (i2.length === 2 ? n2[e2] = i2[r3 ? 0 : 1] : i2.splice(r3, 1));
                  }
                else
                  i2 !== t2 && i2.__eeOnceListener__ !== t2 || delete n2[e2];
                return this;
              }, emit: a = function a2(e2) {
                var t2, n2, i2, o2, r2;
                if (v.call(this, "__ee__") && (o2 = this.__ee__[e2]))
                  if ((typeof o2 === "undefined" ? "undefined" : _typeof2(o2)) == "object") {
                    for (n2 = arguments.length, r2 = new Array(n2 - 1), t2 = 1; t2 < n2; ++t2) {
                      r2[t2 - 1] = arguments[t2];
                    }
                    for (o2 = o2.slice(), t2 = 0; i2 = o2[t2]; ++t2) {
                      h.call(i2, this, r2);
                    }
                  } else
                    switch (arguments.length) {
                      case 1:
                        d.call(o2, this);
                        break;
                      case 2:
                        d.call(o2, this, arguments[1]);
                        break;
                      case 3:
                        d.call(o2, this, arguments[1], arguments[2]);
                        break;
                      default:
                        for (n2 = arguments.length, r2 = new Array(n2 - 1), t2 = 1; t2 < n2; ++t2) {
                          r2[t2 - 1] = arguments[t2];
                        }
                        h.call(o2, this, r2);
                    }
              } }, l = { on: c(i), once: c(o), off: c(r), emit: c(a) }, u = m({}, l), e.exports = t = function t2(e2) {
                return e2 == null ? g(u) : m(Object(e2), l);
              }, t.methods = s;
            }, function(e, t, n) {
              var i = n(3), o = n(9), r = n(13), a = n(21), s = n(22);
              (e.exports = function(e2, t2) {
                var n2, o2, l, u, c;
                return arguments.length < 2 || typeof e2 != "string" ? (u = t2, t2 = e2, e2 = null) : u = arguments[2], i(e2) ? (n2 = s.call(e2, "c"), o2 = s.call(e2, "e"), l = s.call(e2, "w")) : (n2 = l = true, o2 = false), c = { value: t2, configurable: n2, enumerable: o2, writable: l }, u ? r(a(u), c) : c;
              }).gs = function(e2, t2, n2) {
                var l, u, c, f;
                return typeof e2 != "string" ? (c = n2, n2 = t2, t2 = e2, e2 = null) : c = arguments[3], i(t2) ? o(t2) ? i(n2) ? o(n2) || (c = n2, n2 = void 0) : n2 = void 0 : (c = t2, t2 = n2 = void 0) : t2 = void 0, i(e2) ? (l = s.call(e2, "c"), u = s.call(e2, "e")) : (l = true, u = false), f = { get: t2, set: n2, configurable: l, enumerable: u }, c ? r(a(c), f) : f;
              };
            }, function(e, t, n) {
              var i = n(10), o = /^\s*class[\s{/}]/, r = Function.prototype.toString;
              e.exports = function(e2) {
                return !!i(e2) && !o.test(r.call(e2));
              };
            }, function(e, t, n) {
              var i = n(11);
              e.exports = function(e2) {
                if (typeof e2 != "function")
                  return false;
                if (!hasOwnProperty.call(e2, "length"))
                  return false;
                try {
                  if (typeof e2.length != "number")
                    return false;
                  if (typeof e2.call != "function")
                    return false;
                  if (typeof e2.apply != "function")
                    return false;
                } catch (e3) {
                  return false;
                }
                return !i(e2);
              };
            }, function(e, t, n) {
              var i = n(12);
              e.exports = function(e2) {
                if (!i(e2))
                  return false;
                try {
                  return !!e2.constructor && e2.constructor.prototype === e2;
                } catch (e3) {
                  return false;
                }
              };
            }, function(e, t, n) {
              var i = n(3), o = { object: true, function: true, undefined: true };
              e.exports = function(e2) {
                return !!i(e2) && hasOwnProperty.call(o, typeof e2 === "undefined" ? "undefined" : _typeof2(e2));
              };
            }, function(e, t, n) {
              e.exports = n(14)() ? Object.assign : n(15);
            }, function(e, t, n) {
              e.exports = function() {
                var e2, t2 = Object.assign;
                return typeof t2 == "function" && (t2(e2 = { foo: "raz" }, { bar: "dwa" }, { trzy: "trzy" }), e2.foo + e2.bar + e2.trzy === "razdwatrzy");
              };
            }, function(e, t, n) {
              var i = n(16), o = n(20), r = Math.max;
              e.exports = function(e2, t2) {
                var n2, a, s, l = r(arguments.length, 2);
                for (e2 = Object(o(e2)), s = function s2(i2) {
                  try {
                    e2[i2] = t2[i2];
                  } catch (e3) {
                    n2 || (n2 = e3);
                  }
                }, a = 1; a < l; ++a) {
                  i(t2 = arguments[a]).forEach(s);
                }
                if (n2 !== void 0)
                  throw n2;
                return e2;
              };
            }, function(e, t, n) {
              e.exports = n(17)() ? Object.keys : n(18);
            }, function(e, t, n) {
              e.exports = function() {
                try {
                  return Object.keys("primitive"), true;
                } catch (e2) {
                  return false;
                }
              };
            }, function(e, t, n) {
              var i = n(2), o = Object.keys;
              e.exports = function(e2) {
                return o(i(e2) ? Object(e2) : e2);
              };
            }, function(e, t, n) {
              e.exports = function() {
              };
            }, function(e, t, n) {
              var i = n(2);
              e.exports = function(e2) {
                if (!i(e2))
                  throw new TypeError("Cannot use null or undefined");
                return e2;
              };
            }, function(e, t, n) {
              var i = n(2), o = Array.prototype.forEach, r = Object.create, a = function a2(e2, t2) {
                var n2;
                for (n2 in e2) {
                  t2[n2] = e2[n2];
                }
              };
              e.exports = function(e2) {
                var t2 = r(null);
                return o.call(arguments, function(e3) {
                  i(e3) && a(Object(e3), t2);
                }), t2;
              };
            }, function(e, t, n) {
              e.exports = n(23)() ? String.prototype.contains : n(24);
            }, function(e, t, n) {
              var i = "razdwatrzy";
              e.exports = function() {
                return typeof i.contains == "function" && i.contains("dwa") === true && i.contains("foo") === false;
              };
            }, function(e, t, n) {
              var i = String.prototype.indexOf;
              e.exports = function(e2) {
                return i.call(this, e2, arguments[1]) > -1;
              };
            }, function(e, t, n) {
              e.exports = function(e2) {
                if (typeof e2 != "function")
                  throw new TypeError(e2 + " is not a function");
                return e2;
              };
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }();
              var o = typeof window != "undefined" && window.location.href.indexOf("danmu-debug") > -1, r = function() {
                function e2(t2) {
                  !function(e3, t3) {
                    if (!(e3 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, e2), this.constructorName = t2 || "";
                }
                return i(e2, [{ key: "info", value: function value(e3) {
                  for (var t2, n2 = arguments.length, i2 = Array(n2 > 1 ? n2 - 1 : 0), r2 = 1; r2 < n2; r2++) {
                    i2[r2 - 1] = arguments[r2];
                  }
                  o && (t2 = console).log.apply(t2, ["[Danmu Log][" + this.constructorName + "]", e3].concat(i2));
                } }]), e2;
              }();
              t.default = r, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), o = s(n(1)), r = s(n(0)), a = s(n(28));
              function s(e2) {
                return e2 && e2.__esModule ? e2 : { default: e2 };
              }
              var l = function(e2) {
                function t2(e3) {
                  !function(e4, t3) {
                    if (!(e4 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, t2);
                  var n2 = function(e4, t3) {
                    if (!e4)
                      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t3 || (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)) != "object" && typeof t3 != "function" ? e4 : t3;
                  }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
                  return n2.setLogger("control"), n2.danmu = e3, n2.main = new a.default(e3), e3.config.defaultOff || n2.main.start(), n2;
                }
                return function(e3, t3) {
                  if (typeof t3 != "function" && t3 !== null)
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)));
                  e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
                }(t2, e2), i(t2, [{ key: "createSwitch", value: function value() {
                  var e3 = !(arguments.length > 0 && arguments[0] !== void 0) || arguments[0];
                  return this.logger && this.logger.info("createSwitch"), this.switchBtn = r.default.createDom("dk-switch", '<span class="txt">\u5F39</span>', {}, "danmu-switch " + (e3 ? "danmu-switch-active" : "")), this.switchBtn;
                } }, { key: "destroy", value: function value() {
                  for (var e3 in this.logger && this.logger.info("destroy"), this.main.destroy(), this) {
                    delete this[e3];
                  }
                } }]), t2;
              }(o.default);
              t.default = l, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), o = l(n(1)), r = l(n(29)), a = l(n(30)), s = l(n(0));
              function l(e2) {
                return e2 && e2.__esModule ? e2 : { default: e2 };
              }
              var u = function(e2) {
                function t2(e3) {
                  !function(e4, t3) {
                    if (!(e4 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, t2);
                  var n2 = function(e4, t3) {
                    if (!e4)
                      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t3 || (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)) != "object" && typeof t3 != "function" ? e4 : t3;
                  }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
                  n2.setLogger("main"), n2.danmu = e3, n2.container = e3.container, n2.channel = new r.default(e3), n2.data = [].concat(e3.config.comments), n2.playedData = [], n2.queue = [], n2.timer = null, n2.retryTimer = null, n2.retryStatus = "normal", n2.interval = e3.config.interval || 2e3, n2.status = "idle", s.default.on(e3, "bullet_remove", n2.updateQueue.bind(n2), "destroy");
                  var i2 = n2;
                  return s.default.on(n2.danmu, "changeDirection", function(e4) {
                    i2.danmu.direction = e4;
                  }, "destroy"), n2.nums = 0, n2;
                }
                return function(e3, t3) {
                  if (typeof t3 != "function" && t3 !== null)
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)));
                  e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
                }(t2, e2), i(t2, [{ key: "destroy", value: function value() {
                  for (var e3 in this.logger && this.logger.info("destroy"), clearTimeout(this.dataHandleTimer), this.channel.destroy(), this.data = [], this) {
                    delete this[e3];
                  }
                } }, { key: "updateQueue", value: function value(e3) {
                  this.logger && this.logger.info("updateQueue");
                  var t3 = this;
                  t3.queue.some(function(n2, i2) {
                    return n2.id === e3.bullet.id && (t3.queue.splice(i2, 1), true);
                  }), t3.data.some(function(t4, n2) {
                    return t4.id === e3.bullet.id && (t4.hasAttached = false, true);
                  });
                } }, { key: "init", value: function value(e3, t3) {
                  t3.logger && t3.logger.info("init"), t3 || (t3 = this), t3.retryStatus = "normal", t3.data.sort(function(e4, t4) {
                    return e4.start - t4.start;
                  });
                  t3.retryTimer || function e4() {
                    t3.status === "closed" && t3.retryStatus === "stop" || (t3.status === "playing" && (t3.readData(), t3.dataHandle()), t3.retryStatus === "stop" && t3.status !== "paused" || (t3.dataHandleTimer = setTimeout(function() {
                      e4();
                    }, t3.interval - 1e3)));
                  }();
                } }, { key: "start", value: function value() {
                  this.logger && this.logger.info("start");
                  this.status = "playing", this.queue = [], this.container.innerHTML = "", this.channel.resetWithCb(this.init, this);
                } }, { key: "stop", value: function value() {
                  this.logger && this.logger.info("stop");
                  this.status = "closed", this.retryTimer = null, this.retryStatus = "stop", this.channel.reset(), this.queue = [], this.container.innerHTML = "";
                } }, { key: "clear", value: function value() {
                  this.logger && this.logger.info("clear"), this.channel.reset(), this.data = [], this.queue = [], this.container.innerHTML = "";
                } }, { key: "play", value: function value() {
                  var e3 = this;
                  this.logger && this.logger.info("play"), this.status = "playing";
                  var t3 = this.channel.channels, n2 = this.danmu.container.getBoundingClientRect();
                  t3 && t3.length > 0 && ["scroll", "top", "bottom"].forEach(function(i2) {
                    e3.queue.forEach(function(e4) {
                      e4.startMove(n2), e4.resized = true;
                    });
                    for (var o2 = 0; o2 < t3.length; o2++) {
                      t3[o2].queue[i2].forEach(function(e4) {
                        e4.resized = false;
                      });
                    }
                  });
                } }, { key: "pause", value: function value() {
                  this.logger && this.logger.info("pause"), this.status = "paused";
                  var e3 = this.channel.channels, t3 = this.danmu.container.getBoundingClientRect();
                  e3 && e3.length > 0 && this.queue.forEach(function(e4) {
                    e4.pauseMove(t3);
                  });
                } }, { key: "dataHandle", value: function value() {
                  var e3 = this;
                  this.status !== "paused" && this.status !== "closed" && e3.queue.length && e3.queue.forEach(function(t3) {
                    t3.status === "waiting" && t3.startMove(e3.channel.containerPos);
                  });
                } }, { key: "readData", value: function value() {
                  var e3 = this, t3 = this.danmu;
                  if (t3.isReady) {
                    var n2 = 0;
                    t3.player && t3.player.currentTime && (n2 = s.default.formatTime(t3.player.currentTime));
                    var i2 = void 0, o2 = e3.interval, r2 = e3.channel, l2 = void 0;
                    t3.player ? (l2 = e3.data.filter(function(t4) {
                      return !t4.start && e3.danmu.hideArr.indexOf(t4.mode) < 0 && (!t4.color || e3.danmu.hideArr.indexOf("color") < 0) && (t4.start = n2), e3.danmu.hideArr.indexOf(t4.mode) < 0 && (!t4.color || e3.danmu.hideArr.indexOf("color") < 0) && t4.start - o2 <= n2 && n2 <= t4.start + o2;
                    }), t3.live && (e3.data = [])) : (l2 = e3.data.splice(0, 1)).length === 0 && (l2 = e3.playedData.splice(0, 1)), l2.length > 0 && l2.forEach(function(n3) {
                      if (e3.forceDuration && e3.forceDuration != n3.duration && (n3.duration = e3.forceDuration), i2 = new a.default(t3, n3), n3.hasAttached) {
                        for (var o3 in i2.detach(), i2) {
                          delete i2[o3];
                        }
                        i2 = null, n3.hasAttached = false, n3.noDiscard && (n3.prior ? e3.data.unshift(n3) : e3.data.push(n3));
                      } else if (i2.attach(), n3.hasAttached = true, r2.addBullet(i2).result)
                        e3.queue.push(i2), e3.nums++, i2.topInit();
                      else {
                        for (var s2 in i2.detach(), i2) {
                          delete i2[s2];
                        }
                        i2 = null, n3.hasAttached = false, n3.noDiscard && (n3.prior ? e3.data.unshift(n3) : e3.data.push(n3));
                      }
                    });
                  }
                } }]), t2;
              }(o.default);
              t.default = u, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), o = a(n(1)), r = a(n(0));
              function a(e2) {
                return e2 && e2.__esModule ? e2 : { default: e2 };
              }
              var s = function(e2) {
                function t2(e3) {
                  !function(e4, t3) {
                    if (!(e4 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, t2);
                  var n2 = function(e4, t3) {
                    if (!e4)
                      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t3 || (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)) != "object" && typeof t3 != "function" ? e4 : t3;
                  }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
                  n2.setLogger("channel"), n2.danmu = e3, n2.reset(true);
                  var i2 = n2;
                  return r.default.on(n2.danmu, "bullet_remove", function(e4) {
                    i2.removeBullet(e4.bullet);
                  }, "destroy"), n2.direction = e3.direction, r.default.on(n2.danmu, "changeDirection", function(e4) {
                    i2.direction = e4;
                  }, "destroy"), n2.containerPos = n2.danmu.container.getBoundingClientRect(), n2.containerWidth = n2.containerPos.width, n2.containerHeight = n2.containerPos.height, n2.containerLeft = n2.containerPos.left, n2.containerRight = n2.containerPos.right, r.default.on(n2.danmu, "channel_resize", function() {
                    i2.containerPos = i2.danmu.container.getBoundingClientRect(), i2.resizing || (i2.containerWidth = i2.containerPos.width, i2.containerHeight = i2.containerPos.height, i2.containerLeft = i2.containerPos.left, i2.containerRight = i2.containerPos.right, i2.resize(true));
                  }, "destroy"), n2;
                }
                return function(e3, t3) {
                  if (typeof t3 != "function" && t3 !== null)
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)));
                  e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
                }(t2, e2), i(t2, [{ key: "destroy", value: function value() {
                  for (var e3 in this.logger && this.logger.info("destroy"), clearTimeout(this.resizeTimer), this.channels = [], this) {
                    delete this[e3];
                  }
                } }, { key: "resize", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 && arguments[0];
                  this.logger && this.logger.info("resize");
                  var t3 = this.danmu.container, n2 = this;
                  n2.resizing || (n2.resizing = true, this.resizeTimer = setTimeout(function() {
                    n2.danmu.bulletBtn.main.data && n2.danmu.bulletBtn.main.data.forEach(function(e4) {
                      e4.bookChannelId && (delete e4.bookChannelId, n2.logger && n2.logger.info("resize\u5BFC\u81F4" + e4.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A\u53D6\u6D88"));
                    }), n2.logger && n2.logger.info("resize\u5BFC\u81F4\u6240\u6709\u8F68\u9053\u6062\u590D\u6B63\u5E38\u4F7F\u7528");
                    var i2 = t3.getBoundingClientRect();
                    n2.width = i2.width, n2.height = i2.height, n2.danmu.config.area && n2.danmu.config.area.start >= 0 && n2.danmu.config.area.end >= n2.danmu.config.area.start && (n2.direction === "b2t" ? n2.width = n2.width * (n2.danmu.config.area.end - n2.danmu.config.area.start) : n2.height = n2.height * (n2.danmu.config.area.end - n2.danmu.config.area.start)), n2.container = t3;
                    var o2 = n2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), r2 = void 0;
                    r2 = n2.direction === "b2t" ? Math.floor(n2.width / o2) : Math.floor(n2.height / o2);
                    for (var a2 = [], s2 = 0; s2 < r2; s2++) {
                      a2[s2] = { id: s2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
                    }
                    if (n2.channels && n2.channels.length <= a2.length) {
                      for (var l = function l2(t4) {
                        a2[t4] = { id: t4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top"].forEach(function(i3) {
                          n2.channels[t4].queue[i3].forEach(function(o3) {
                            o3.el && (a2[t4].queue[i3].push(o3), o3.resized || (o3.pauseMove(n2.containerPos, e3), o3.danmu.bulletBtn.main.status !== "paused" && o3.startMove(n2.containerPos), o3.resized = true));
                          });
                        }), n2.channels[t4].queue.bottom.forEach(function(i3) {
                          if (i3.el) {
                            if (a2[t4 + a2.length - n2.channels.length].queue.bottom.push(i3), i3.channel_id[0] + i3.channel_id[1] - 1 === t4) {
                              var r3 = [].concat(i3.channel_id);
                              i3.channel_id = [r3[0] - n2.channels.length + a2.length, r3[1]], i3.top = i3.channel_id[0] * o2, n2.danmu.config.area && n2.danmu.config.area.start && (i3.top += n2.containerHeight * n2.danmu.config.area.start), i3.topInit();
                            }
                            i3.resized || (i3.pauseMove(n2.containerPos, e3), i3.danmu.bulletBtn.main.status !== "paused" && i3.startMove(n2.containerPos), i3.resized = true);
                          }
                        });
                      }, u = 0; u < n2.channels.length; u++) {
                        l(u);
                      }
                      for (var c = function c2(e4) {
                        ["scroll", "top", "bottom"].forEach(function(t4) {
                          a2[e4].queue[t4].forEach(function(e5) {
                            e5.resized = false;
                          });
                        });
                      }, f = 0; f < a2.length; f++) {
                        c(f);
                      }
                      n2.channels = a2, n2.direction === "b2t" ? n2.channelWidth = o2 : n2.channelHeight = o2;
                    } else if (n2.channels && n2.channels.length > a2.length) {
                      for (var h = function h2(t4) {
                        a2[t4] = { id: t4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top", "bottom"].forEach(function(i3) {
                          if (i3 === "top" && t4 > Math.floor(a2.length / 2))
                            ;
                          else if (i3 === "bottom" && t4 <= Math.floor(a2.length / 2))
                            ;
                          else {
                            var r3 = i3 === "bottom" ? t4 - a2.length + n2.channels.length : t4;
                            n2.channels[r3].queue[i3].forEach(function(s3, l2) {
                              if (s3.el) {
                                if (a2[t4].queue[i3].push(s3), i3 === "bottom" && s3.channel_id[0] + s3.channel_id[1] - 1 === r3) {
                                  var u2 = [].concat(s3.channel_id);
                                  s3.channel_id = [u2[0] - n2.channels.length + a2.length, u2[1]], s3.top = s3.channel_id[0] * o2, n2.danmu.config.area && n2.danmu.config.area.start && (s3.top += n2.containerHeight * n2.danmu.config.area.start), s3.topInit();
                                }
                                s3.pauseMove(n2.containerPos, e3), s3.danmu.bulletBtn.main.status !== "paused" && s3.startMove(n2.containerPos), s3.resized || (s3.resized = true);
                              }
                              n2.channels[r3].queue[i3].splice(l2, 1);
                            });
                          }
                        });
                      }, d = 0; d < a2.length; d++) {
                        h(d);
                      }
                      for (var g = function g2(e4) {
                        ["scroll", "top", "bottom"].forEach(function(t4) {
                          a2[e4].queue[t4].forEach(function(e5) {
                            e5.resized = false;
                          });
                        });
                      }, p = 0; p < a2.length; p++) {
                        g(p);
                      }
                      n2.channels = a2, n2.direction === "b2t" ? n2.channelWidth = o2 : n2.channelHeight = o2;
                    }
                    n2.resizing = false;
                  }, 10));
                } }, { key: "addBullet", value: function value(e3) {
                  var t3 = this, n2 = this.danmu, i2 = this.channels, o2 = void 0, r2 = void 0, a2 = void 0;
                  if (t3.direction === "b2t" ? (r2 = this.channelWidth, a2 = Math.ceil(e3.width / r2)) : (o2 = this.channelHeight, a2 = Math.ceil(e3.height / o2)), a2 > i2.length)
                    return { result: false, message: "exceed channels.length, occupy=" + a2 + ",channelsSize=" + i2.length };
                  for (var s2 = true, l = void 0, u = -1, c = 0, f = i2.length; c < f; c++) {
                    if (i2[c].queue[e3.mode].some(function(t4) {
                      return t4.id === e3.id;
                    }))
                      return { result: false, message: "exsited, channelOrder=" + c + ",danmu_id=" + e3.id };
                  }
                  if (e3.mode === "scroll")
                    for (var h = 0, d = i2.length - a2; h <= d; h++) {
                      s2 = true;
                      for (var g = h; g < h + a2; g++) {
                        if ((l = i2[g]).operating.scroll) {
                          s2 = false;
                          break;
                        }
                        if (l.bookId.scroll && l.bookId.scroll !== e3.id) {
                          s2 = false;
                          break;
                        }
                        l.operating.scroll = true;
                        var p = l.queue.scroll[0];
                        if (p) {
                          var m = p.el.getBoundingClientRect();
                          if (t3.direction === "b2t") {
                            if (m.bottom > t3.containerPos.bottom) {
                              s2 = false, l.operating.scroll = false;
                              break;
                            }
                          } else if (m.right > t3.containerPos.right) {
                            s2 = false, l.operating.scroll = false;
                            break;
                          }
                          var v, b = void 0, y = void 0, w = void 0, _ = void 0;
                          if (t3.direction === "b2t" ? (y = (m.top - t3.containerPos.top + m.height) / (b = (t3.containerPos.height + m.height) / p.duration), w = t3.containerPos.height, _ = (t3.containerPos.height + e3.height) / e3.duration) : (y = (m.left - t3.containerPos.left + m.width) / (b = (t3.containerPos.width + m.width) / p.duration), w = t3.containerPos.width, _ = (t3.containerPos.width + e3.width) / e3.duration), v = w / _, n2.config.bOffset || (n2.config.bOffset = 0), b < _ && y + n2.config.bOffset > v) {
                            s2 = false, l.operating.scroll = false;
                            break;
                          }
                        }
                        l.operating.scroll = false;
                      }
                      if (s2) {
                        u = h;
                        break;
                      }
                    }
                  else if (e3.mode === "top")
                    for (var O = 0, k = i2.length - a2; O <= k; O++) {
                      s2 = true;
                      for (var x = O; x < O + a2; x++) {
                        if (x > Math.floor(i2.length / 2)) {
                          s2 = false;
                          break;
                        }
                        if ((l = i2[x]).operating[e3.mode]) {
                          s2 = false;
                          break;
                        }
                        if ((l.bookId[e3.mode] || e3.prior) && l.bookId[e3.mode] !== e3.id) {
                          s2 = false;
                          break;
                        }
                        if (l.operating[e3.mode] = true, l.queue[e3.mode].length > 0) {
                          s2 = false, l.operating[e3.mode] = false;
                          break;
                        }
                        l.operating[e3.mode] = false;
                      }
                      if (s2) {
                        u = O;
                        break;
                      }
                    }
                  else if (e3.mode === "bottom")
                    for (var M = i2.length - a2; M >= 0; M--) {
                      s2 = true;
                      for (var C = M; C < M + a2; C++) {
                        if (C <= Math.floor(i2.length / 2)) {
                          s2 = false;
                          break;
                        }
                        if ((l = i2[C]).operating[e3.mode]) {
                          s2 = false;
                          break;
                        }
                        if ((l.bookId[e3.mode] || e3.prior) && l.bookId[e3.mode] !== e3.id) {
                          s2 = false;
                          break;
                        }
                        if (l.operating[e3.mode] = true, l.queue[e3.mode].length > 0) {
                          s2 = false, l.operating[e3.mode] = false;
                          break;
                        }
                        l.operating[e3.mode] = false;
                      }
                      if (s2) {
                        u = M;
                        break;
                      }
                    }
                  if (u !== -1) {
                    for (var E = u, j = u + a2; E < j; E++) {
                      (l = i2[E]).operating[e3.mode] = true, l.queue[e3.mode].unshift(e3), e3.prior && (delete l.bookId[e3.mode], t3.logger && t3.logger.info(E + "\u53F7\u8F68\u9053\u6062\u590D\u6B63\u5E38\u4F7F\u7528")), l.operating[e3.mode] = false;
                    }
                    if (e3.prior) {
                      if (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u8FD0\u884C\u5B8C\u6BD5"), delete e3.bookChannelId, n2.player)
                        n2.bulletBtn.main.data.some(function(t4) {
                          return t4.id === e3.id && (delete t4.bookChannelId, true);
                        });
                    }
                    return e3.channel_id = [u, a2], t3.direction === "b2t" ? (e3.top = u * r2, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerWidth * t3.danmu.config.area.start)) : (e3.top = u * o2, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerHeight * t3.danmu.config.area.start)), { result: e3, message: "success" };
                  }
                  if (e3.options.realTime) {
                    var B = 0, T = -1, P = null;
                    if (t3.danmu.bulletBtn.main.queue.forEach(function(e4, n3) {
                      !e4.prior && !e4.options.realTime && e4.el && e4.el.getBoundingClientRect().left > t3.containerPos.right && e4.start >= B && (B = e4.start, T = n3, P = e4);
                    }), P) {
                      P.remove(), t3.removeBullet(P), t3.danmu.bulletBtn.main.queue.splice(T, 1), e3.channel_id = P.channel_id;
                      for (var z = P.channel_id[0], S = P.channel_id[0] + P.channel_id[1]; z < S; z++) {
                        (l = i2[z]).operating[e3.mode] = true, l.queue[e3.mode].unshift(e3), e3.prior && delete l.bookId[e3.mode], l.operating[e3.mode] = false;
                      }
                      return e3.top = P.top, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerHeight * t3.danmu.config.area.start), { result: e3, message: "success" };
                    }
                  }
                  if (e3.prior)
                    if (e3.bookChannelId || t3.danmu.live) {
                      if (n2.player)
                        n2.bulletBtn.main.data.some(function(n3) {
                          return n3.id === e3.id && (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u5C06\u4E8E2\u79D2\u540E\u518D\u6B21\u8BF7\u6C42\u6CE8\u518C"), n3.start += 2e3, true);
                        });
                    } else {
                      u = -1;
                      for (var L = 0, D = i2.length - a2; L <= D; L++) {
                        s2 = true;
                        for (var q = L; q < L + a2; q++) {
                          if (i2[q].bookId[e3.mode]) {
                            s2 = false;
                            break;
                          }
                        }
                        if (s2) {
                          u = L;
                          break;
                        }
                      }
                      if (u !== -1) {
                        for (var R = u; R < u + a2; R++) {
                          i2[R].bookId[e3.mode] = e3.id, t3.logger && t3.logger.info(R + "\u53F7\u8F68\u9053\u88AB" + e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A");
                        }
                        if (n2.player)
                          n2.bulletBtn.main.data.some(function(n3) {
                            return n3.id === e3.id && (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u5C06\u4E8E2\u79D2\u540E\u518D\u6B21\u8BF7\u6C42\u6CE8\u518C"), n3.start += 2e3, n3.bookChannelId = [u, a2], t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A\u4E86" + u + "~" + (u + a2 - 1) + "\u53F7\u8F68\u9053"), true);
                          });
                      }
                    }
                  return { result: false, message: "no surplus will right" };
                } }, { key: "removeBullet", value: function value(e3) {
                  this.logger && this.logger.info("removeBullet " + (e3.options.txt || "[DOM Element]"));
                  for (var t3 = this.channels, n2 = e3.channel_id, i2 = void 0, o2 = n2[0], r2 = n2[0] + n2[1]; o2 < r2; o2++) {
                    if (i2 = t3[o2]) {
                      i2.operating[e3.mode] = true;
                      var a2 = -1;
                      i2.queue[e3.mode].some(function(t4, n3) {
                        return t4.id === e3.id && (a2 = n3, true);
                      }), a2 > -1 && i2.queue[e3.mode].splice(a2, 1), i2.operating[e3.mode] = false;
                    }
                  }
                  e3.options.loop && this.danmu.bulletBtn.main.playedData.push(e3.options);
                } }, { key: "resetArea", value: function value() {
                  this.logger && this.logger.info("resetArea");
                  var e3 = this.danmu.container, t3 = this, n2 = e3.getBoundingClientRect();
                  t3.width = n2.width, t3.height = n2.height, t3.danmu.config.area && t3.danmu.config.area.start >= 0 && t3.danmu.config.area.end >= t3.danmu.config.area.start && (t3.direction === "b2t" ? t3.width = t3.width * (t3.danmu.config.area.end - t3.danmu.config.area.start) : t3.height = t3.height * (t3.danmu.config.area.end - t3.danmu.config.area.start)), t3.container = e3;
                  var i2 = t3.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), o2 = void 0;
                  o2 = t3.direction === "b2t" ? Math.floor(t3.width / i2) : Math.floor(t3.height / i2);
                  for (var r2 = [], a2 = 0; a2 < o2; a2++) {
                    r2[a2] = { id: a2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
                  }
                  if (t3.channels && t3.channels.length <= r2.length) {
                    for (var s2 = function s3(e4) {
                      r2[e4] = { id: e4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top"].forEach(function(n3) {
                        t3.channels[e4].queue[n3].forEach(function(i3) {
                          i3.el && (r2[e4].queue[n3].push(i3), i3.resized || (i3.pauseMove(t3.containerPos, false), i3.startMove(t3.containerPos), i3.resized = true));
                        });
                      }), t3.channels[e4].queue.bottom.forEach(function(n3) {
                        if (n3.el) {
                          if (r2[e4 + r2.length - t3.channels.length].queue.bottom.push(n3), n3.channel_id[0] + n3.channel_id[1] - 1 === e4) {
                            var o3 = [].concat(n3.channel_id);
                            n3.channel_id = [o3[0] - t3.channels.length + r2.length, o3[1]], n3.top = n3.channel_id[0] * i2, t3.danmu.config.area && t3.danmu.config.area.start && (n3.top += t3.containerHeight * t3.danmu.config.area.start), n3.topInit();
                          }
                          n3.resized || (n3.pauseMove(t3.containerPos, false), n3.startMove(t3.containerPos), n3.resized = true);
                        }
                      });
                    }, l = 0; l < t3.channels.length; l++) {
                      s2(l);
                    }
                    for (var u = function u2(e4) {
                      ["scroll", "top", "bottom"].forEach(function(t4) {
                        r2[e4].queue[t4].forEach(function(e5) {
                          e5.resized = false;
                        });
                      });
                    }, c = 0; c < r2.length; c++) {
                      u(c);
                    }
                    t3.channels = r2, t3.direction === "b2t" ? t3.channelWidth = i2 : t3.channelHeight = i2;
                  } else if (t3.channels && t3.channels.length > r2.length) {
                    for (var f = function f2(e4) {
                      r2[e4] = { id: e4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top", "bottom"].forEach(function(n3) {
                        if (n3 === "top" && e4 > Math.floor(r2.length / 2))
                          ;
                        else if (n3 === "bottom" && e4 <= Math.floor(r2.length / 2))
                          ;
                        else {
                          var o3 = n3 === "bottom" ? e4 - r2.length + t3.channels.length : e4;
                          t3.channels[o3].queue[n3].forEach(function(a3, s3) {
                            if (a3.el) {
                              if (r2[e4].queue[n3].push(a3), n3 === "bottom" && a3.channel_id[0] + a3.channel_id[1] - 1 === o3) {
                                var l2 = [].concat(a3.channel_id);
                                a3.channel_id = [l2[0] - t3.channels.length + r2.length, l2[1]], a3.top = a3.channel_id[0] * i2, t3.danmu.config.area && t3.danmu.config.area.start && (a3.top += t3.containerHeight * t3.danmu.config.area.start), a3.topInit();
                              }
                              a3.resized || (a3.pauseMove(t3.containerPos, false), a3.startMove(t3.containerPos), a3.resized = true);
                            }
                            t3.channels[o3].queue[n3].splice(s3, 1);
                          });
                        }
                      });
                    }, h = 0; h < r2.length; h++) {
                      f(h);
                    }
                    for (var d = function d2(e4) {
                      ["scroll", "top", "bottom"].forEach(function(t4) {
                        r2[e4].queue[t4].forEach(function(e5) {
                          e5.resized = false;
                        });
                      });
                    }, g = 0; g < r2.length; g++) {
                      d(g);
                    }
                    t3.channels = r2, t3.direction === "b2t" ? t3.channelWidth = i2 : t3.channelHeight = i2;
                  }
                } }, { key: "reset", value: function value() {
                  var e3 = arguments.length > 0 && arguments[0] !== void 0 && arguments[0];
                  this.logger && this.logger.info("reset");
                  var t3 = this.danmu.container, n2 = this;
                  function i2() {
                    var e4 = t3.getBoundingClientRect();
                    n2.width = e4.width, n2.height = e4.height, n2.danmu.config.area && n2.danmu.config.area.start >= 0 && n2.danmu.config.area.end >= n2.danmu.config.area.start && (n2.direction === "b2t" ? n2.width = n2.width * (n2.danmu.config.area.end - n2.danmu.config.area.start) : n2.height = n2.height * (n2.danmu.config.area.end - n2.danmu.config.area.start)), n2.container = t3;
                    var i3 = n2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), o2 = void 0;
                    o2 = n2.direction === "b2t" ? Math.floor(n2.width / i3) : Math.floor(n2.height / i3);
                    for (var r2 = [], a2 = 0; a2 < o2; a2++) {
                      r2[a2] = { id: a2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
                    }
                    n2.channels = r2, n2.direction === "b2t" ? n2.channelWidth = i3 : n2.channelHeight = i3;
                  }
                  n2.danmu.bulletBtn && n2.danmu.bulletBtn.main && n2.danmu.bulletBtn.main.queue.forEach(function(e4) {
                    e4.pauseMove(n2.containerPos), e4.remove();
                  }), n2.channels && n2.channels.length > 0 && ["scroll", "top", "bottom"].forEach(function(e4) {
                    for (var t4 = 0; t4 < n2.channels.length; t4++) {
                      n2.channels[t4].queue[e4].forEach(function(e5) {
                        e5.pauseMove(n2.containerPos), e5.remove();
                      });
                    }
                  }), n2.danmu.bulletBtn && n2.danmu.bulletBtn.main && n2.danmu.bulletBtn.main.data && n2.danmu.bulletBtn.main.data.forEach(function(e4) {
                    e4.hasAttached = false;
                  }), e3 ? this.resetTimer = setTimeout(i2, 200) : i2();
                } }, { key: "resetWithCb", value: function value(e3, t3) {
                  this.logger && this.logger.info("resetWithCb");
                  var n2 = this.danmu.container, i2 = this;
                  i2.channels && i2.channels.length > 0 && ["scroll", "top", "bottom"].forEach(function(e4) {
                    for (var t4 = 0; t4 < i2.channels.length; t4++) {
                      i2.channels[t4].queue[e4].forEach(function(e5) {
                        e5.pauseMove(i2.containerPos), e5.remove();
                      });
                    }
                  });
                  var o2 = n2.getBoundingClientRect();
                  i2.width = o2.width, i2.height = o2.height, i2.danmu.config.area && i2.danmu.config.area.start >= 0 && i2.danmu.config.area.end >= i2.danmu.config.area.start && (i2.direction === "b2t" ? i2.width = i2.width * (i2.danmu.config.area.end - i2.danmu.config.area.start) : i2.height = i2.height * (i2.danmu.config.area.end - i2.danmu.config.area.start)), i2.container = n2;
                  var r2 = i2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), a2 = void 0;
                  a2 = i2.direction === "b2t" ? Math.floor(i2.width / r2) : Math.floor(i2.height / r2);
                  for (var s2 = [], l = 0; l < a2; l++) {
                    s2[l] = { id: l, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
                  }
                  i2.channels = s2, i2.channelHeight = r2, e3 && e3(true, t3);
                } }]), t2;
              }(o.default);
              t.default = s, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), o = a(n(1)), r = a(n(0));
              function a(e2) {
                return e2 && e2.__esModule ? e2 : { default: e2 };
              }
              var s = function(e2) {
                function t2(e3, n2) {
                  !function(e4, t3) {
                    if (!(e4 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, t2);
                  var i2 = function(e4, t3) {
                    if (!e4)
                      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t3 || (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)) != "object" && typeof t3 != "function" ? e4 : t3;
                  }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
                  i2.setLogger("bullet"), i2.danmu = e3, i2.options = n2, i2.duration = n2.duration, i2.moveV = n2.moveV, i2.id = n2.id, i2.container = e3.container, i2.start = n2.start, i2.prior = n2.prior, i2.color = n2.color, i2.bookChannelId = n2.bookChannelId, i2.direction = e3.direction;
                  var o2 = i2;
                  i2.onChangeDirection = function(e4) {
                    o2.direction = e4;
                  }, i2.danmu.on("changeDirection", i2.onChangeDirection);
                  var a2 = void 0;
                  if (i2.domObj = e3.domObj, n2.el && n2.el.nodeType === 1) {
                    a2 = i2.domObj.use();
                    var s2 = r.default.copyDom(n2.el);
                    n2.eventListeners && n2.eventListeners.length > 0 && n2.eventListeners.forEach(function(e4) {
                      s2.addEventListener(e4.event, e4.listener, e4.useCapture || false);
                    }), a2.appendChild(s2);
                  } else
                    (a2 = i2.domObj.use()).textContent = n2.txt;
                  if (n2.style) {
                    var l = n2.style;
                    Object.keys(l).forEach(function(e4) {
                      r.default.style(a2, e4, l[e4]);
                    });
                  }
                  n2.mode === "top" || n2.mode === "bottom" ? i2.mode = n2.mode : i2.mode = "scroll", i2.el = a2, n2.like && n2.like.el && i2.setLikeDom(n2.like.el, n2.like.style), i2.status = "waiting";
                  var u = i2.container.getBoundingClientRect(), c = Math.floor(Math.random() * (u.width / 10 > 100 ? 200 : u.width / 10));
                  n2.realTime && (c = 0);
                  var f = u.width + c + "px";
                  return r.default.style(i2.el, "left", f), i2.containerPos = u, i2;
                }
                return function(e3, t3) {
                  if (typeof t3 != "function" && t3 !== null)
                    throw new TypeError("Super expression must either be null or a function, not " + (typeof t3 === "undefined" ? "undefined" : _typeof2(t3)));
                  e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
                }(t2, e2), i(t2, [{ key: "attach", value: function value() {
                  if (this.container.appendChild(this.el), this.elPos = this.el.getBoundingClientRect(), this.direction === "b2t" ? (this.width = this.elPos.height, this.height = this.elPos.width) : (this.width = this.elPos.width, this.height = this.elPos.height), this.moveV) {
                    var e3 = this.containerPos;
                    this.duration = (e3.width + this.width) / this.moveV * 1e3;
                  }
                  this.danmu.config && this.danmu.config.mouseControl && (this.mouseoverFunWrapper = this.mouseoverFun.bind(this), this.el.addEventListener("mouseover", this.mouseoverFunWrapper, false)), this.danmu.config && this.danmu.config.mouseEnterControl && (this.mouseEnterFunWrapper = this.mouseoverFun.bind(this), this.el.addEventListener("mouseenter", this.mouseEnterFunWrapper, false));
                } }, { key: "mouseoverFun", value: function value(e3) {
                  this.danmu && this.danmu.mouseControl && this.danmu.config.mouseControlPause || this.status === "waiting" || this.status === "end" || this.danmu && this.danmu.emit("bullet_hover", { bullet: this, event: e3 });
                } }, { key: "detach", value: function value() {
                  this.el && (this.danmu.config && this.danmu.config.mouseControl && this.el.removeEventListener("mouseover", this.mouseoverFunWrapper, false), this.danmu.config && this.danmu.config.mouseEnterControl && this.el.removeEventListener("mouseenter", this.mouseEnterFunWrapper, false), this.el.parentNode && this.el.parentNode.removeChild(this.el), this.domObj.unuse(this.el), this.el = null), this.danmu.off("changeDirection", this.onChangeDirection);
                } }, { key: "topInit", value: function value() {
                  if (this.logger && this.logger.info("topInit #" + (this.options.txt || "[DOM Element]") + "#"), this.direction === "b2t") {
                    var e3 = this.containerPos;
                    r.default.style(this.el, "transformOrigin", "left top"), r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + e3.height + "px) translateZ(0px) rotate(90deg)"), r.default.style(this.el, "transition", "transform 0s linear 0s");
                  } else
                    r.default.style(this.el, "top", this.top + "px");
                } }, { key: "pauseMove", value: function value(e3) {
                  var t3 = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
                  this.logger && this.logger.info("pauseMove #" + (this.options.txt || "[DOM Element]") + "#");
                  var n2 = this;
                  if (this.status !== "paused" && (n2.status !== "forcedPause" && (this.status = "paused"), clearTimeout(n2.removeTimer), this.el))
                    if (r.default.style(this.el, "willChange", "auto"), this.mode === "scroll") {
                      if (t3) {
                        var i2 = (new Date().getTime() - n2.moveTime) / 1e3, o2 = i2 * this.moveV, a2 = 0;
                        a2 = n2.moveMoreS - o2 >= 0 ? this.direction === "b2t" ? (n2.moveMoreS - o2) / n2.moveContainerHeight * e3.height : (n2.moveMoreS - o2) / n2.moveContainerWidth * e3.width : n2.moveMoreS - o2, this.direction === "b2t" ? r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + a2 + "px) translateZ(0px) rotate(90deg)") : r.default.style(this.el, "left", a2 + "px");
                      } else
                        this.direction === "b2t" ? r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + (this.el.getBoundingClientRect().top - e3.top) + "px) translateZ(0px) rotate(90deg)") : r.default.style(this.el, "left", this.el.getBoundingClientRect().left - e3.left + "px");
                      this.direction === "b2t" || r.default.style(this.el, "transform", "translateX(0px) translateY(0px) translateZ(0px)"), r.default.style(this.el, "transition", "transform 0s linear 0s");
                    } else
                      this.pastDuration && this.startTime ? this.pastDuration = this.pastDuration + new Date().getTime() - this.startTime : this.pastDuration = 1;
                } }, { key: "startMove", value: function value(e3, t3) {
                  this.logger && this.logger.info("startMove #" + (this.options.txt || "[DOM Element]") + "#");
                  var n2 = this;
                  if (n2.hasMove || (n2.danmu.emit("bullet_start", n2), n2.hasMove = true), (n2.status !== "forcedPause" || t3) && this.el && this.status !== "start")
                    if (this.status = "start", r.default.style(this.el, "willChange", "transform"), this.mode === "scroll") {
                      if (this.direction === "b2t") {
                        this.moveV = (e3.height + this.height) / this.duration * 1e3;
                        var i2 = (n2.el.getBoundingClientRect().bottom - e3.top) / this.moveV;
                        r.default.style(this.el, "transition", "transform " + i2 + "s linear 0s"), this.startMoveTimer = setTimeout(function() {
                          n2.el && (r.default.style(n2.el, "transform", "translateX(-" + n2.top + "px) translateY(-" + n2.height + "px) translateZ(0px) rotate(90deg)"), n2.moveTime = new Date().getTime(), n2.moveMoreS = n2.el.getBoundingClientRect().top - e3.top, n2.moveContainerHeight = e3.height, n2.removeTimer = setTimeout(l, 1e3 * i2));
                        }, 20);
                      } else {
                        var o2 = this.el.getBoundingClientRect();
                        this.moveV = (e3.width + this.width) / this.duration * 1e3;
                        var a2 = (o2.right - e3.left) / this.moveV;
                        r.default.style(this.el, "transition", "transform " + a2 + "s linear 0s"), this.startMoveTimer = setTimeout(function() {
                          if (n2.el) {
                            var t4 = n2.el.getBoundingClientRect(), i3 = (t4.right - e3.left) / a2;
                            t4.right > e3.left && i3 > n2.moveV - 1 && i3 < n2.moveV + 1 ? (r.default.style(n2.el, "transform", "translateX(-" + (t4.right - e3.left) + "px) translateY(0px) translateZ(0px)"), n2.moveTime = new Date().getTime(), n2.moveMoreS = t4.left - e3.left, n2.moveContainerWidth = e3.width, n2.removeTimer = setTimeout(l, 1e3 * a2)) : (n2.status = "end", n2.remove());
                          }
                        }, 0);
                      }
                    } else {
                      r.default.style(this.el, "left", "50%"), r.default.style(this.el, "margin", "0 0 0 -" + this.width / 2 + "px"), this.pastDuration || (this.pastDuration = 1);
                      var s2 = this.duration >= this.pastDuration ? this.duration - this.pastDuration : 0;
                      this.removeTimer = setTimeout(l, s2), this.startTime = new Date().getTime();
                    }
                  function l() {
                    if (n2.el)
                      if (n2.mode === "scroll") {
                        var e4 = n2.containerPos, t4 = n2.el.getBoundingClientRect();
                        n2.direction === "b2t" ? t4 && t4.bottom <= e4.top + 100 ? (n2.status = "end", n2.remove()) : (n2.pauseMove(e4), n2.danmu.bulletBtn.main.status !== "paused" && n2.startMove(e4)) : t4 && t4.right <= e4.left + 100 ? (n2.status = "end", n2.remove()) : (n2.pauseMove(e4), n2.danmu.bulletBtn.main.status !== "paused" && n2.startMove(e4));
                      } else
                        n2.status = "end", n2.remove();
                  }
                } }, { key: "remove", value: function value() {
                  this.logger && this.logger.info("remove #" + (this.options.txt || "[DOM Element]") + "#");
                  this.removeTimer && clearTimeout(this.removeTimer), this.startMoveTimer && clearTimeout(this.startMoveTimer), this.el && this.el.parentNode && (r.default.style(this.el, "willChange", "auto"), this.detach(), this.danmu.emit("bullet_remove", { bullet: this }));
                } }, { key: "setFontSize", value: function value(e3) {
                  this.el && (this.el.style.fontSize = e3);
                } }, { key: "setLikeDom", value: function value(e3, t3) {
                  if (e3) {
                    Object.keys(t3).forEach(function(n3) {
                      e3.style[n3] = t3[n3];
                    });
                    if (e3.className = "danmu-like", this.el) {
                      var n2 = this.el.querySelector(".danmu-like");
                      n2 && this.el.removeChild(n2), this.el.innerHTML = "" + this.el.innerHTML + e3.outerHTML;
                    }
                  }
                  return e3;
                } }]), t2;
              }(o.default);
              t.default = s, e.exports = t.default;
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i, o = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }(), r = n(0), a = (i = r) && i.__esModule ? i : { default: i };
              var s = function() {
                function e2(t2) {
                  !function(e3, t3) {
                    if (!(e3 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, e2), t2 = { initDOM: function initDOM() {
                    return document.createElement("div");
                  }, initSize: 10 }, this.init(t2);
                }
                return o(e2, [{ key: "init", value: function value(e3) {
                  this.idleList = [], this.usingList = [], this._id = 0, this.options = e3, this._expand(e3.initSize);
                } }, { key: "use", value: function value() {
                  this.idleList.length || this._expand(1);
                  var e3 = this.idleList.shift();
                  return this.usingList.push(e3), e3;
                } }, { key: "unuse", value: function value(e3) {
                  var t2 = this.usingList.indexOf(e3);
                  t2 < 0 || (this.usingList.splice(t2, 1), e3.innerHTML = "", e3.textcontent = "", this.clearElementStyle(e3), this.idleList.push(e3));
                } }, { key: "_expand", value: function value(e3) {
                  for (var t2 = 0; t2 < e3; t2++) {
                    this.idleList.push(this.options.initDOM(this._id++));
                  }
                } }, { key: "destroy", value: function value() {
                  for (var e3 = 0; e3 < this.idleList.length; e3++) {
                    this.idleList[e3].innerHTML = "", this.idleList[e3].textcontent = "", this.clearElementStyle(this.idleList[e3]);
                  }
                  for (var t2 = 0; t2 < this.usingList.length; t2++) {
                    this.usingList[t2].innerHTML = "", this.usingList[t2].textcontent = "", this.clearElementStyle(this.usingList[t2]);
                  }
                  for (var n2 in this) {
                    delete this[n2];
                  }
                } }, { key: "clearElementStyle", value: function value(e3) {
                  var t2 = typeof window != "undefined" ? window.navigator.userAgent : null;
                  t2 && (t2.indexOf("MSIE ") > -1 || t2.indexOf("Trident/") > -1 ? a.default.style(e3, "transform", "none") : e3.setAttribute("style", ""));
                } }]), e2;
              }();
              t.default = s, e.exports = t.default;
            }, function(e) {
              e.exports = JSON.parse('{"version":"0.5.10"}');
            }, function(e, t, n) {
              Object.defineProperty(t, "__esModule", { value: true });
              var i = function() {
                function e2(e3, t2) {
                  for (var n2 = 0; n2 < t2.length; n2++) {
                    var i2 = t2[n2];
                    i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
                  }
                }
                return function(t2, n2, i2) {
                  return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
                };
              }();
              var o = new (function() {
                function e2() {
                  var t2 = this;
                  if (function(e3, t3) {
                    if (!(e3 instanceof t3))
                      throw new TypeError("Cannot call a class as a function");
                  }(this, e2), this.__handlers = [], window.ResizeObserver)
                    try {
                      this.observer = new window.ResizeObserver(function(e3) {
                        var n2 = new Date().getTime();
                        n2 - t2.timeStampe < 200 || (t2.timeStampe = n2, t2.__trigger(e3));
                      }), this.timeStampe = new Date().getTime();
                    } catch (e3) {
                    }
                }
                return i(e2, [{ key: "addObserver", value: function value(e3, t2) {
                  if (this.observer) {
                    this.observer && this.observer.observe(e3);
                    for (var n2 = this.__handlers, i2 = -1, o2 = 0; o2 < n2.length; o2++) {
                      n2[o2] && e3 === n2[o2].target && (i2 = o2);
                    }
                    i2 > -1 ? this.__handlers[i2].handler.push(t2) : this.__handlers.push({ target: e3, handler: [t2] });
                  }
                } }, { key: "unObserver", value: function value(e3) {
                  var t2 = -1;
                  this.__handlers.map(function(n2, i2) {
                    e3 === n2.target && (t2 = i2);
                  }), this.observer && this.observer.unobserve(e3), t2 > -1 && this.__handlers.splice(t2, 1);
                } }, { key: "destroyObserver", value: function value() {
                  this.observer && this.observer.disconnect(), this.observer = null, this.__handlers = null;
                } }, { key: "__runHandler", value: function value(e3) {
                  for (var t2 = this.__handlers, n2 = 0; n2 < t2.length; n2++) {
                    if (t2[n2] && e3 === t2[n2].target) {
                      t2[n2].handler && t2[n2].handler.map(function(e4) {
                        try {
                          e4();
                        } catch (e5) {
                          console.error(e5);
                        }
                      });
                      break;
                    }
                  }
                } }, { key: "__trigger", value: function value(e3) {
                  var t2 = this;
                  e3.map(function(e4) {
                    t2.__runHandler(e4.target);
                  });
                } }]), e2;
              }())();
              t.addObserver = function(e2, t2) {
                o.addObserver(e2, t2);
              }, t.unObserver = function(e2, t2) {
                o.unObserver(e2, t2);
              }, t.destroyObserver = function(e2, t2) {
                o.destroyObserver(e2, t2);
              };
            }, function(e, t, n) {
              var i = n(35);
              typeof i == "string" && (i = [[e.i, i, ""]]);
              var o = { hmr: true, transform: void 0, insertInto: void 0 };
              n(37)(i, o);
              i.locals && (e.exports = i.locals);
            }, function(e, t, n) {
              (e.exports = n(36)(false)).push([e.i, ".danmu{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.danmu>*{position:absolute;white-space:nowrap}.danmu-switch{width:32px;height:20px;border-radius:100px;background-color:#ccc;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;cursor:pointer;position:relative;text-align:center;margin:10px auto}.danmu-switch.danmu-switch-active{padding-left:12px;background-color:#f85959}.danmu-switch span.txt{width:20px;height:20px;line-height:20px;text-align:center;display:block;border-radius:100px;background-color:#ffffff;-webkit-box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);font-family:PingFangSC;font-size:10px;font-weight:500;color:#f44336}\n", ""]);
            }, function(e, t) {
              e.exports = function(e2) {
                var t2 = [];
                return t2.toString = function() {
                  return this.map(function(t3) {
                    var n = function(e3, t4) {
                      var n2 = e3[1] || "", i = e3[3];
                      if (!i)
                        return n2;
                      if (t4 && typeof btoa == "function") {
                        var o = (a = i, "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(a)))) + " */"), r = i.sources.map(function(e4) {
                          return "/*# sourceURL=" + i.sourceRoot + e4 + " */";
                        });
                        return [n2].concat(r).concat([o]).join("\n");
                      }
                      var a;
                      return [n2].join("\n");
                    }(t3, e2);
                    return t3[2] ? "@media " + t3[2] + "{" + n + "}" : n;
                  }).join("");
                }, t2.i = function(e3, n) {
                  typeof e3 == "string" && (e3 = [[null, e3, ""]]);
                  for (var i = {}, o = 0; o < this.length; o++) {
                    var r = this[o][0];
                    typeof r == "number" && (i[r] = true);
                  }
                  for (o = 0; o < e3.length; o++) {
                    var a = e3[o];
                    typeof a[0] == "number" && i[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), t2.push(a));
                  }
                }, t2;
              };
            }, function(e, t, n) {
              var i, o, r = {}, a = (i = function i2() {
                return window && document && document.all && !window.atob;
              }, function() {
                return o === void 0 && (o = i.apply(this, arguments)), o;
              }), s = function s2(e2) {
                return document.querySelector(e2);
              }, l = function(e2) {
                var t2 = {};
                return function(e3) {
                  if (typeof e3 == "function")
                    return e3();
                  if (t2[e3] === void 0) {
                    var n2 = s.call(this, e3);
                    if (window.HTMLIFrameElement && n2 instanceof window.HTMLIFrameElement)
                      try {
                        n2 = n2.contentDocument.head;
                      } catch (e4) {
                        n2 = null;
                      }
                    t2[e3] = n2;
                  }
                  return t2[e3];
                };
              }(), u = null, c = 0, f = [], h = n(38);
              function d(e2, t2) {
                for (var n2 = 0; n2 < e2.length; n2++) {
                  var i2 = e2[n2], o2 = r[i2.id];
                  if (o2) {
                    o2.refs++;
                    for (var a2 = 0; a2 < o2.parts.length; a2++) {
                      o2.parts[a2](i2.parts[a2]);
                    }
                    for (; a2 < i2.parts.length; a2++) {
                      o2.parts.push(y(i2.parts[a2], t2));
                    }
                  } else {
                    var s2 = [];
                    for (a2 = 0; a2 < i2.parts.length; a2++) {
                      s2.push(y(i2.parts[a2], t2));
                    }
                    r[i2.id] = { id: i2.id, refs: 1, parts: s2 };
                  }
                }
              }
              function g(e2, t2) {
                for (var n2 = [], i2 = {}, o2 = 0; o2 < e2.length; o2++) {
                  var r2 = e2[o2], a2 = t2.base ? r2[0] + t2.base : r2[0], s2 = { css: r2[1], media: r2[2], sourceMap: r2[3] };
                  i2[a2] ? i2[a2].parts.push(s2) : n2.push(i2[a2] = { id: a2, parts: [s2] });
                }
                return n2;
              }
              function p(e2, t2) {
                var n2 = l(e2.insertInto);
                if (!n2)
                  throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
                var i2 = f[f.length - 1];
                if (e2.insertAt === "top")
                  i2 ? i2.nextSibling ? n2.insertBefore(t2, i2.nextSibling) : n2.appendChild(t2) : n2.insertBefore(t2, n2.firstChild), f.push(t2);
                else if (e2.insertAt === "bottom")
                  n2.appendChild(t2);
                else {
                  if (_typeof2(e2.insertAt) != "object" || !e2.insertAt.before)
                    throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
                  var o2 = l(e2.insertInto + " " + e2.insertAt.before);
                  n2.insertBefore(t2, o2);
                }
              }
              function m(e2) {
                if (e2.parentNode === null)
                  return false;
                e2.parentNode.removeChild(e2);
                var t2 = f.indexOf(e2);
                t2 >= 0 && f.splice(t2, 1);
              }
              function v(e2) {
                var t2 = document.createElement("style");
                return e2.attrs.type === void 0 && (e2.attrs.type = "text/css"), b(t2, e2.attrs), p(e2, t2), t2;
              }
              function b(e2, t2) {
                Object.keys(t2).forEach(function(n2) {
                  e2.setAttribute(n2, t2[n2]);
                });
              }
              function y(e2, t2) {
                var n2, i2, o2, r2;
                if (t2.transform && e2.css) {
                  if (!(r2 = t2.transform(e2.css)))
                    return function() {
                    };
                  e2.css = r2;
                }
                if (t2.singleton) {
                  var a2 = c++;
                  n2 = u || (u = v(t2)), i2 = O.bind(null, n2, a2, false), o2 = O.bind(null, n2, a2, true);
                } else
                  e2.sourceMap && typeof URL == "function" && typeof URL.createObjectURL == "function" && typeof URL.revokeObjectURL == "function" && typeof Blob == "function" && typeof btoa == "function" ? (n2 = function(e3) {
                    var t3 = document.createElement("link");
                    return e3.attrs.type === void 0 && (e3.attrs.type = "text/css"), e3.attrs.rel = "stylesheet", b(t3, e3.attrs), p(e3, t3), t3;
                  }(t2), i2 = x.bind(null, n2, t2), o2 = function o3() {
                    m(n2), n2.href && URL.revokeObjectURL(n2.href);
                  }) : (n2 = v(t2), i2 = k.bind(null, n2), o2 = function o3() {
                    m(n2);
                  });
                return i2(e2), function(t3) {
                  if (t3) {
                    if (t3.css === e2.css && t3.media === e2.media && t3.sourceMap === e2.sourceMap)
                      return;
                    i2(e2 = t3);
                  } else
                    o2();
                };
              }
              e.exports = function(e2, t2) {
                if (typeof DEBUG != "undefined" && DEBUG && (typeof document === "undefined" ? "undefined" : _typeof2(document)) != "object")
                  throw new Error("The style-loader cannot be used in a non-browser environment");
                (t2 = t2 || {}).attrs = _typeof2(t2.attrs) == "object" ? t2.attrs : {}, t2.singleton || typeof t2.singleton == "boolean" || (t2.singleton = a()), t2.insertInto || (t2.insertInto = "head"), t2.insertAt || (t2.insertAt = "bottom");
                var n2 = g(e2, t2);
                return d(n2, t2), function(e3) {
                  for (var i2 = [], o2 = 0; o2 < n2.length; o2++) {
                    var a2 = n2[o2];
                    (s2 = r[a2.id]).refs--, i2.push(s2);
                  }
                  e3 && d(g(e3, t2), t2);
                  for (o2 = 0; o2 < i2.length; o2++) {
                    var s2;
                    if ((s2 = i2[o2]).refs === 0) {
                      for (var l2 = 0; l2 < s2.parts.length; l2++) {
                        s2.parts[l2]();
                      }
                      delete r[s2.id];
                    }
                  }
                };
              };
              var w, _ = (w = [], function(e2, t2) {
                return w[e2] = t2, w.filter(Boolean).join("\n");
              });
              function O(e2, t2, n2, i2) {
                var o2 = n2 ? "" : i2.css;
                if (e2.styleSheet)
                  e2.styleSheet.cssText = _(t2, o2);
                else {
                  var r2 = document.createTextNode(o2), a2 = e2.childNodes;
                  a2[t2] && e2.removeChild(a2[t2]), a2.length ? e2.insertBefore(r2, a2[t2]) : e2.appendChild(r2);
                }
              }
              function k(e2, t2) {
                var n2 = t2.css, i2 = t2.media;
                if (i2 && e2.setAttribute("media", i2), e2.styleSheet)
                  e2.styleSheet.cssText = n2;
                else {
                  for (; e2.firstChild; ) {
                    e2.removeChild(e2.firstChild);
                  }
                  e2.appendChild(document.createTextNode(n2));
                }
              }
              function x(e2, t2, n2) {
                var i2 = n2.css, o2 = n2.sourceMap, r2 = t2.convertToAbsoluteUrls === void 0 && o2;
                (t2.convertToAbsoluteUrls || r2) && (i2 = h(i2)), o2 && (i2 += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(o2)))) + " */");
                var a2 = new Blob([i2], { type: "text/css" }), s2 = e2.href;
                e2.href = URL.createObjectURL(a2), s2 && URL.revokeObjectURL(s2);
              }
            }, function(e, t) {
              e.exports = function(e2) {
                var t2 = typeof window != "undefined" && window.location;
                if (!t2)
                  throw new Error("fixUrls requires window.location");
                if (!e2 || typeof e2 != "string")
                  return e2;
                var n = t2.protocol + "//" + t2.host, i = n + t2.pathname.replace(/\/[^\/]*$/, "/");
                return e2.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(e3, t3) {
                  var o, r = t3.trim().replace(/^"(.*)"$/, function(e4, t4) {
                    return t4;
                  }).replace(/^'(.*)'$/, function(e4, t4) {
                    return t4;
                  });
                  return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(r) ? e3 : (o = r.indexOf("//") === 0 ? r : r.indexOf("/") === 0 ? n + r : i + r.replace(/^\.\//, ""), "url(" + JSON.stringify(o) + ")");
                });
              };
            }]);
          });
        }).call(this, __webpack_require__(135)(module2));
      },
      function(module2, exports2) {
        module2.exports = function(module3) {
          if (!module3.webpackPolyfill) {
            module3.deprecate = function() {
            };
            module3.paths = [];
            if (!module3.children)
              module3.children = [];
            Object.defineProperty(module3, "loaded", {
              enumerable: true,
              get: function() {
                return module3.l;
              }
            });
            Object.defineProperty(module3, "id", {
              enumerable: true,
              get: function() {
                return module3.i;
              }
            });
            module3.webpackPolyfill = 1;
          }
          return module3;
        };
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40">\n  <path fill="#f85959" transform="scale(0.8 0.8)" d="M36.5,18.73a1.19,1.19,0,0,0,1-1.14V16.33a1.2,1.2,0,0,0-1-1.13l-.61-.08a1.75,1.75,0,0,1-1.3-.86l-.21-.36-.2-.36A1.72,1.72,0,0,1,34,12l.23-.58a1.18,1.18,0,0,0-.5-1.42l-1.1-.62a1.18,1.18,0,0,0-1.47.3l-.39.51a1.82,1.82,0,0,1-1.41.72c-.44,0-1.88-.27-2.22-.7l-.39-.49a1.18,1.18,0,0,0-1.48-.28l-1.09.64a1.19,1.19,0,0,0-.47,1.43l.25.59a1.87,1.87,0,0,1-.08,1.58c-.26.37-1.17,1.5-1.71,1.58l-.63.09a1.19,1.19,0,0,0-1,1.14l0,1.27a1.17,1.17,0,0,0,1,1.12l.61.08a1.74,1.74,0,0,1,1.3.87l.21.36.2.35A1.69,1.69,0,0,1,24,22.08l-.23.59a1.19,1.19,0,0,0,.5,1.42l1.1.62a1.19,1.19,0,0,0,1.48-.31l.38-.5a1.83,1.83,0,0,1,1.41-.72c.44,0,1.88.25,2.22.69l.39.49a1.18,1.18,0,0,0,1.48.28L33.86,24a1.19,1.19,0,0,0,.47-1.43L34.09,22a1.84,1.84,0,0,1,.07-1.58c.26-.37,1.17-1.5,1.72-1.58ZM31,18.94a2.76,2.76,0,0,1-4.65-1.2A2.71,2.71,0,0,1,27,15.13a2.76,2.76,0,0,1,4.64,1.2A2.7,2.7,0,0,1,31,18.94Z"/>\n  <path fill="#f85959" transform="scale(0.8 0.8)" d="M32,0H3.59A3.59,3.59,0,0,0,0,3.59v17A3.59,3.59,0,0,0,3.59,24.2H19.72a12.59,12.59,0,0,1-.81-1.2A11.73,11.73,0,0,1,35.54,7.28V3.59A3.59,3.59,0,0,0,32,0ZM13,14.18H4.29a1.52,1.52,0,0,1,0-3H13a1.52,1.52,0,0,1,0,3ZM16.45,8H4.29a1.51,1.51,0,0,1,0-3H16.45a1.51,1.51,0,1,1,0,3Z"/>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(138);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .danmu-switch{-webkit-order:6;-moz-box-ordinal-group:7;order:6;z-index:26}.xgplayer-skin-default .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-skin-default .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-skin-default .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-default .xgplayer-panel{outline:none;-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:hsla(0,0%,100%,.8);z-index:36}.xgplayer-skin-default .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-default .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-default .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode ul{display:-webkit-flex;display:-moz-box;display:flex;-webkit-justify-content:space-around;justify-content:space-around}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-threequarters,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-twoquarters{margin-left:-6px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-webkit-flex;display:flex;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-flex;display:-moz-box;display:flex;width:150px;margin-left:10px;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-default .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(140);
        var s_pip2 = function s_pip3() {
          var player = this;
          if (!player.config.pip || typeof player.video.requestPictureInPicture !== "function") {
            return;
          }
          var pip2 = player.lang.PIP;
          var btn = (0, _util.createDom)("xg-pip", '<p class="name"><span>' + pip2 + "</span></p>", { tabindex: 9 }, "xgplayer-pip");
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("pipBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_pip",
          method: s_pip2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(141);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-pip{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(143);
        var s_miniplayer = function s_miniplayer2() {
          var player = this;
          if (!player.config.miniplayer) {
            return;
          }
          var miniplayer2 = player.lang.MINIPLAYER;
          var btn = (0, _util.createDom)("xg-miniplayer", '<p class="name"><span>' + miniplayer2 + "</span></p>", { tabindex: 9 }, "xgplayer-miniplayer");
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("miniplayerBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_miniplayer",
          method: s_miniplayer
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(144);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-miniplayer{-webkit-order:9;-moz-box-ordinal-group:10;order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-default .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-default .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),transparent);z-index:130;display:none}.xgplayer-skin-default .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-default.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-default.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:-webkit-flex;display:-moz-box;display:flex}.xgplayer-skin-default.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _playNext = __webpack_require__(146);
        var _playNext2 = _interopRequireDefault2(_playNext);
        __webpack_require__(147);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_playNext = function s_playNext2() {
          var player = this;
          var nextBtn = player.config.playNext;
          if (!nextBtn || !nextBtn.urlList) {
            return;
          }
          var btn = (0, _util.createDom)("xg-playnext", '<xg-icon class="xgplayer-icon">' + _playNext2.default + "</xg-icon>", {}, "xgplayer-playnext");
          var tipsText = player.lang.PLAYNEXT_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-playnext">' + tipsText + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              (0, _util.addClass)(player.root, "xgplayer-is-enter");
              player.userGestureTrigEvent("playNextBtnClick");
            });
          });
          var onUrlListEnd = function onUrlListEnd2() {
            (0, _util.addClass)(player.root, "xgplayer-playnext-inactive");
          };
          player.on("urlListEnd", onUrlListEnd);
          function onDestroy() {
            player.off("urlListEnd", onUrlListEnd);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "s_playNext",
          method: s_playNext
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.038 0.028)" d="M800 380v768h-128v-352l-320 320v-704l320 320v-352z"></path>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(148);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-playnext{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-default .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-default .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-default .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-default.xgplayer-playnext-inactive .xgplayer-playnext{display:none}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _rotate = __webpack_require__(150);
        var _rotate2 = _interopRequireDefault2(_rotate);
        __webpack_require__(151);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_rotate = function s_rotate2() {
          var player = this;
          if (!player.config.rotate) {
            return;
          }
          var btn = (0, _util.createDom)("xg-rotate", '<xg-icon class="xgplayer-icon">' + _rotate2.default + "</xg-icon>", {}, "xgplayer-rotate");
          var tipsText = player.lang.ROTATE_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-rotate">' + tipsText + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("rotateBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_rotate",
          method: s_rotate
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 40 40" fill="none">\n  <g clip-path="url(#clip0)">\n    <path transform="scale(1.5 1.5)" d="M11.6665 9.16663H4.1665C2.78579 9.16663 1.6665 10.2859 1.6665 11.6666V15.8333C1.6665 17.214 2.78579 18.3333 4.1665 18.3333H11.6665C13.0472 18.3333 14.1665 17.214 14.1665 15.8333V11.6666C14.1665 10.2859 13.0472 9.16663 11.6665 9.16663Z" fill="white"/>\n    <path transform="scale(1.5 1.5)" fill-rule="evenodd" clip-rule="evenodd" d="M3.88148 4.06298C3.75371 4.21005 3.67667 4.40231 3.67749 4.61242C3.67847 4.87253 3.79852 5.10435 3.98581 5.25646L6.99111 8.05895C7.32771 8.37283 7.85502 8.35443 8.16891 8.01782C8.48279 7.68122 8.46437 7.15391 8.12778 6.84003L6.62061 5.43457L9.8198 5.4224C9.82848 5.42239 9.8372 5.42221 9.84591 5.4219C10.9714 5.38233 12.0885 5.6285 13.0931 6.13744C14.0976 6.64635 14.957 7.40148 15.5908 8.33234C16.2246 9.2632 16.6122 10.3394 16.7177 11.4606C16.823 12.5819 16.6427 13.7115 16.1934 14.7442C16.0098 15.1661 16.203 15.6571 16.6251 15.8408C17.0471 16.0243 17.5381 15.8311 17.7216 15.4091C18.2833 14.1183 18.5087 12.7063 18.3771 11.3047C18.2453 9.90318 17.7607 8.55792 16.9684 7.39433C16.1761 6.23073 15.1021 5.28683 13.8463 4.65065C12.5946 4.01651 11.203 3.70872 9.80072 3.75583L6.43415 3.76862L7.96326 2.12885C8.27715 1.79225 8.25872 1.26494 7.92213 0.951061C7.58553 0.63718 7.05822 0.655585 6.74433 0.99219L3.90268 4.0395C3.89545 4.04724 3.88841 4.05509 3.88154 4.06303L3.88148 4.06298Z" fill="white"/>\n  </g>\n  <defs>\n    <clipPath id="clip0">\n      <rect width="40" height="40" fill="white"/>\n    </clipPath>\n  </defs>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(152);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-rotate{position:relative;-webkit-order:10;-moz-box-ordinal-group:11;order:10;display:block;cursor:pointer}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-default .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-default .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _reload = __webpack_require__(154);
        var _reload2 = _interopRequireDefault2(_reload);
        __webpack_require__(155);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_reload = function s_reload2() {
          var player = this;
          if (!player.config.reload) {
            return;
          }
          var btn = (0, _util.createDom)("xg-reload", '<xg-icon class="xgplayer-icon">' + _reload2.default + "</xg-icon>", {}, "xgplayer-reload");
          var tipsText = player.lang.RELOAD_TIPS;
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-reload">' + tipsText + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("reloadBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_reload",
          method: s_reload
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">\n    <path fill="#FFF" fill-opacity="1" fill-rule="nonzero" d="M18.17 19.988a7.182 7.182 0 0 1-4.256 1.318 7.806 7.806 0 0 1-.595-.03c-.08-.008-.16-.021-.242-.031a8.004 8.004 0 0 1-.458-.071c-.094-.018-.185-.042-.276-.063a7.743 7.743 0 0 1-.439-.113c-.068-.022-.136-.047-.205-.07a7.03 7.03 0 0 1-.492-.181c-.037-.015-.072-.032-.108-.049a7.295 7.295 0 0 1-.554-.269l-.025-.012a7.347 7.347 0 0 1-2.111-1.753c-.03-.036-.057-.074-.086-.11a7.305 7.305 0 0 1-1.594-4.557h1.686a.123.123 0 0 0 .108-.064.119.119 0 0 0-.006-.125L5.684 9.532a.123.123 0 0 0-.103-.056.123.123 0 0 0-.102.056l-2.834 4.276a.121.121 0 0 0-.005.125c.022.04.064.064.107.064h1.687c0 2.025.627 3.902 1.693 5.454.013.021.022.044.037.066.11.159.233.305.352.455.043.057.085.116.13.171.175.213.36.413.55.61.02.018.036.038.054.055a9.447 9.447 0 0 0 2.91 1.996c.058.026.115.054.175.079.202.084.41.158.619.228.098.034.196.069.296.1.183.054.37.1.558.145.125.029.249.06.376.085.052.01.102.027.155.035.177.032.355.05.533.071.064.007.128.018.19.026.32.03.639.052.956.052a9.46 9.46 0 0 0 5.47-1.746 1.16 1.16 0 0 0 .282-1.608 1.143 1.143 0 0 0-1.6-.283zm5.397-5.991a9.604 9.604 0 0 0-1.685-5.441c-.016-.027-.026-.054-.043-.078-.132-.19-.276-.366-.419-.543-.017-.022-.032-.044-.05-.065a9.467 9.467 0 0 0-3.571-2.7l-.114-.051a11.2 11.2 0 0 0-.673-.248c-.082-.027-.163-.057-.247-.082a9.188 9.188 0 0 0-.6-.156c-.113-.026-.224-.055-.337-.077-.057-.011-.109-.028-.164-.037-.151-.027-.304-.039-.455-.058-.104-.013-.208-.03-.313-.04a10.05 10.05 0 0 0-.759-.039c-.045 0-.09-.007-.136-.007l-.025.003a9.45 9.45 0 0 0-5.46 1.737 1.16 1.16 0 0 0-.284 1.608c.363.523 1.08.65 1.6.284a7.182 7.182 0 0 1 4.222-1.32c.217.002.429.013.639.033.065.007.129.017.193.025.173.021.344.046.513.08.075.014.149.033.221.05.166.037.331.077.494.127l.152.051c.185.061.366.127.545.201l.054.025a7.308 7.308 0 0 1 2.741 2.067l.013.018a7.302 7.302 0 0 1 1.652 4.633h-1.686a.123.123 0 0 0-.108.064.12.12 0 0 0 .006.124l2.834 4.277c.022.033.06.054.103.054.042 0 .08-.021.102-.054l2.833-4.277a.12.12 0 0 0 .005-.124.123.123 0 0 0-.108-.064h-1.685z"/>\n</svg>\n';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(156);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-reload{position:relative;-webkit-order:1;-moz-box-ordinal-group:2;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-default .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-default .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-default .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-default .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(158);
        var s_screenShot2 = function s_screenShot3() {
          var player = this;
          if (!player.config.screenShot || player.config.screenShot.hideButton) {
            return;
          }
          var screenShotText = player.lang.SCREENSHOT;
          var btn = (0, _util.createDom)("xg-screenshot", '<p class="name"><span>' + (player.config.screenShot.iconText || screenShotText) + "</span></p>", { tabindex: 11 }, "xgplayer-screenshot");
          player.once("ready", function() {
            player.controls.appendChild(btn);
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("screenShotBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_screenShot",
          method: s_screenShot2
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(159);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-screenshot{-webkit-order:11;-moz-box-ordinal-group:12;order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-default .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:hsla(0,0%,100%,.8)}.xgplayer-skin-default .xgplayer-screenshot .name span{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0 10px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _player = __webpack_require__(9);
        var _player2 = _interopRequireDefault2(_player);
        __webpack_require__(78);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_nativeTextTrack = function s_nativeTextTrack2() {
          if (!this.config.nativeTextTrack) {
            return;
          }
          var player = this;
          var root = player.root;
          var util2 = _player2.default.util;
          var container = util2.createDom("xg-texttrack", "", { tabindex: 7 }, "xgplayer-texttrack");
          var list = player.config.nativeTextTrack;
          if (list && Array.isArray(list) && list.length > 0) {
            util2.addClass(player.root, "xgplayer-is-texttrack");
            player.once("canplay", function() {
              var _this = this;
              var tmp = ["<ul>"];
              tmp.push("<li class='" + (this.textTrackShowDefault ? "" : "selected") + "'}'>" + player.lang.OFF + "</li>");
              list.forEach(function(item) {
                tmp.push("<li class='" + (item.default && _this.textTrackShowDefault ? "selected" : "") + "'>" + item.label + "</li>");
              });
              var controlText = player.lang.TEXTTRACK;
              tmp.push('</ul><p class="name">' + controlText + "</p>");
              var urlInRoot = root.querySelector(".xgplayer-texttrack");
              if (urlInRoot) {
                urlInRoot.innerHTML = tmp.join("");
                var cur = urlInRoot.querySelector(".name");
                if (!player.config.textTrackActive || player.config.textTrackActive === "hover") {
                  cur.addEventListener("mouseenter", function(e) {
                    e.preventDefault();
                    e.stopPropagation();
                    util2.addClass(root, "xgplayer-texttrack-active");
                    urlInRoot.focus();
                  });
                }
              } else {
                container.innerHTML = tmp.join("");
                var _cur = container.querySelector(".name");
                if (!player.config.textTrackActive || player.config.textTrackActive === "hover") {
                  _cur.addEventListener("mouseenter", function(e) {
                    e.preventDefault();
                    e.stopPropagation();
                    util2.addClass(player.root, "xgplayer-texttrack-active");
                    container.focus();
                  });
                }
                player.controls.appendChild(container);
              }
            });
          }
          ["touchend", "click"].forEach(function(item) {
            container.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              var li = e.target || e.srcElement;
              if (li && li.tagName.toLocaleLowerCase() === "li") {
                Array.prototype.forEach.call(li.parentNode.childNodes, function(item2) {
                  util2.removeClass(item2, "selected");
                });
                util2.addClass(li, "selected");
                var trackDoms = player.root.getElementsByTagName("Track");
                if (li.innerHTML === player.lang.OFF) {
                  trackDoms[0].track.mode = "hidden";
                  trackDoms[0].src = "";
                  util2.removeClass(player.root, "xgplayer-texttrack-active");
                } else {
                  trackDoms[0].style.display = "block";
                  util2.addClass(player.root, "xgplayer-texttrack-active");
                  trackDoms[0].track.mode = "showing";
                  list.some(function(item2) {
                    if (item2.label === li.innerHTML) {
                      trackDoms[0].src = item2.src;
                      if (item2.kind) {
                        trackDoms[0].kind = item2.kind;
                      }
                      trackDoms[0].label = item2.label;
                      if (item2.srclang) {
                        trackDoms[0].srclang = item2.srclang;
                      }
                      return true;
                    }
                  });
                  player.emit("textTrackChange", li.innerHTML);
                }
              } else if (player.config.textTrackActive === "click" && li && (li.tagName.toLocaleLowerCase() === "p" || li.tagName.toLocaleLowerCase() === "em")) {
                util2.addClass(player.root, "xgplayer-texttrack-active");
                container.focus();
              }
            }, false);
          });
          player.on("play", function() {
            var ul = root.querySelector(".xgplayer-texttrack ul");
            var trackDoms = root.getElementsByTagName("Track");
            if (!player["hls"] || !ul || !trackDoms)
              return;
            trackDoms[0].src = "";
            Array.prototype.forEach.call(ul.childNodes, function(li) {
              if (util2.hasClass(li, "selected")) {
                if (li.innerHTML === player.lang.OFF) {
                  trackDoms[0].track.mode = "hidden";
                  trackDoms[0].src = "";
                } else {
                  trackDoms[0].track.mode = "hidden";
                  list.some(function(item) {
                    if (item.label !== li.innerHTML) {
                      trackDoms[0].src = item.src;
                      if (item.kind) {
                        trackDoms[0].kind = item.kind;
                      }
                      trackDoms[0].label = item.label;
                      if (item.srclang) {
                        trackDoms[0].srclang = item.srclang;
                      }
                      return true;
                    }
                  });
                  list.some(function(item) {
                    if (item.label === li.innerHTML) {
                      setTimeout(function() {
                        trackDoms[0].src = item.src;
                        if (item.kind) {
                          trackDoms[0].kind = item.kind;
                        }
                        trackDoms[0].label = item.label;
                        if (item.srclang) {
                          trackDoms[0].srclang = item.srclang;
                        }
                        trackDoms[0].track.mode = "showing";
                      });
                      return true;
                    }
                  });
                }
              }
            });
            util2.removeClass(player.root, "xgplayer-texttrack-active");
          });
          container.addEventListener("mouseleave", function(e) {
            e.preventDefault();
            e.stopPropagation();
            util2.removeClass(player.root, "xgplayer-texttrack-active");
          });
        };
        exports2.default = {
          name: "s_nativeTextTrack",
          method: s_nativeTextTrack
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-texttrack{-webkit-order:7;-moz-box-ordinal-group:8;order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-default .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-default .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:hsla(0,0%,100%,.8);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-default .xgplayer-texttrack ul li.selected,.xgplayer-skin-default .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-default .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:hsla(0,0%,100%,.8);position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-default .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-default.xgplayer-is-texttrack .xgplayer-texttrack,.xgplayer-skin-default.xgplayer-texttrack-active .xgplayer-texttrack ul{display:block}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(78);
        function renderList(root, textTrack2, offText, isDefaultShow) {
          if (textTrack2.length === 0) {
            root.innerHTML = "";
            return;
          }
          var tmp = [];
          tmp.push('<li data-type="off" class="' + (isDefaultShow ? "" : "selected") + '">' + offText + "</li>");
          textTrack2.forEach(function(item) {
            tmp.push("<li data-id=" + item.id + " data-language=" + item.language + ' class="' + (item.isDefault && isDefaultShow ? "selected" : "") + '">' + item.label + "</li>");
          });
          root.innerHTML = tmp.join("");
        }
        var s_textTrack = function s_textTrack2() {
          var player = this;
          if (!this.config.textTrack) {
            return;
          }
          var textTrack2 = this.config.textTrack;
          var controlText = player.lang.TEXTTRACK;
          var container = (0, _util.createDom)("xg-texttrack", '<ul></ul><p class="name">' + controlText + "</p>", { tabindex: 7 }, "xgplayer-texttrack");
          function onCanPlay() {
            var urlInRoot = player.root.querySelector(".xgplayer-texttrack");
            if (!urlInRoot) {
              player.controls.appendChild(container);
              var cur = container.querySelector(".name");
              if (!player.config.textTrackActive || player.config.textTrackActive === "hover") {
                cur.addEventListener("mouseenter", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  (0, _util.addClass)(player.root, "xgplayer-texttrack-active");
                  container.focus();
                });
                container.addEventListener("mouseleave", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  (0, _util.removeClass)(player.root, "xgplayer-texttrack-active");
                });
              } else {
                cur.addEventListener("click", function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  if ((0, _util.hasClass)(player.root, "xgplayer-texttrack-active")) {
                    (0, _util.removeClass)(player.root, "xgplayer-texttrack-active");
                  } else {
                    (0, _util.addClass)(player.root, "xgplayer-texttrack-active");
                  }
                });
              }
            }
            ["touchend", "click"].forEach(function(item) {
              container.addEventListener(item, function(e) {
                e.preventDefault();
                e.stopPropagation();
                var li = e.target || e.srcElement;
                if (li && li.tagName.toLocaleLowerCase() === "li") {
                  var id = li.getAttribute("data-id");
                  var type = li.getAttribute("data-type");
                  var language = li.getAttribute("data-language");
                  Array.prototype.forEach.call(li.parentNode.childNodes, function(item2) {
                    (0, _util.removeClass)(item2, "selected");
                  });
                  (0, _util.addClass)(li, "selected");
                  if (type === "off") {
                    player.switchOffSubtile();
                    (0, _util.removeClass)(player.root, "xgplayer-texttrack-active");
                  } else {
                    player.switchSubTitle({ id, language });
                    (0, _util.addClass)(player.root, "xgplayer-texttrack-active");
                  }
                }
              });
            });
            var ul = container.getElementsByTagName("ul")[0];
            renderList(ul, textTrack2, player.lang.OFF, player.textTrackShowDefault);
            if (textTrack2.length === 0) {
              (0, _util.addClass)(container, "xgplayer-texttrack-hide");
            } else {
              (0, _util.removeClass)(container, "xgplayer-texttrack-hide");
            }
          }
          var onListUpdate = function onListUpdate2(data) {
            if (!data.isListUpdate)
              return;
            var ul = container.getElementsByTagName("ul")[0];
            textTrack2 = data.list;
            renderList(ul, data.list, player.lang.OFF, player.textTrackShowDefault);
            data.list.length > 0 ? (0, _util.addClass)(player.root, "xgplayer-is-texttrack") : (0, _util.removeClass)(player.root, "xgplayer-is-texttrack");
            if (data.list.length === 0) {
              (0, _util.addClass)(container, "xgplayer-texttrack-hide");
            } else {
              (0, _util.removeClass)(container, "xgplayer-texttrack-hide");
            }
          };
          if (textTrack2 && Array.isArray(textTrack2)) {
            textTrack2.length > 0 && (0, _util.addClass)(player.root, "xgplayer-is-texttrack");
            player.once("canplay", onCanPlay);
            player.on("subtitle_change", onListUpdate);
          }
        };
        exports2.default = {
          name: "s_textTrack",
          method: s_textTrack
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(164);
        var s_error = function s_error2() {
          var player = this;
          var root = player.root;
          var error2 = (0, _util.createDom)("xg-error", '<span class="xgplayer-error-text">\u8BF7<span class="xgplayer-error-refresh">\u5237\u65B0</span>\u8BD5\u8BD5</span>', {}, "xgplayer-error");
          player.once("ready", function() {
            root.appendChild(error2);
          });
          var text = error2.querySelector(".xgplayer-error-text");
          if (player.config.lang && player.config.lang === "zh-cn") {
            text.innerHTML = player.config.errorTips || '\u8BF7<span class="xgplayer-error-refresh">\u5237\u65B0</span>\u8BD5\u8BD5';
          } else {
            text.innerHTML = player.config.errorTips || 'please try to <span class="xgplayer-error-refresh">refresh</span>';
          }
          var refresh = null;
          function onError() {
            (0, _util.addClass)(player.root, "xgplayer-is-error");
            refresh = error2.querySelector(".xgplayer-error-refresh");
            if (refresh) {
              ["touchend", "click"].forEach(function(item) {
                refresh.addEventListener(item, function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  player.autoplay = true;
                  var currentTime = player.currentTime;
                  player.once("playing", function() {
                    player.currentTime = currentTime;
                    (0, _util.removeClass)(player.root, "xgplayer-is-error");
                  });
                  player.src = player.config.url;
                });
              });
            }
          }
          player.on("error", onError);
          function onDestroy() {
            player.off("error", onError);
            player.off("destroy", onDestroy);
          }
          player.once("destroy", onDestroy);
        };
        exports2.default = {
          name: "s_error",
          method: s_error
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(165);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;-webkit-justify-content:center;-moz-box-pack:center;justify-content:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.xgplayer-skin-default .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-default .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-default.xgplayer-is-error .xgplayer-error{display:-webkit-flex;display:-moz-box;display:flex}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        __webpack_require__(167);
        var s_memoryPlay = function s_memoryPlay2() {
          var player = this;
          var lastPlayTime = player.config.lastPlayTime || 0;
          var lastPlayTimeHideDelay = player.config.lastPlayTimeHideDelay || 0;
          var dom = null;
          if (lastPlayTime <= 0) {
            return;
          }
          dom = (0, _util.createDom)("xg-memoryplay", '<div class="xgplayer-memoryplay-spot"><div class="xgplayer-progress-tip">\u60A8\u4E0A\u6B21\u89C2\u770B\u5230 <span class="xgplayer-lasttime">' + (0, _util.format)(lastPlayTime) + '</span> \uFF0C\u4E3A\u60A8\u81EA\u52A8\u7EED\u64AD <span class="btn-close"><svg viewBox="64 64 896 896" focusable="false" class="" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></span></div></div>', {}, "xgplayer-memoryplay");
          dom.addEventListener("mouseover", function(e) {
            e.stopPropagation();
          });
          var removeFunc = function removeFunc2() {
            dom && dom.parentNode && dom.parentNode.removeChild(dom);
            dom = null;
          };
          dom.querySelector(".xgplayer-progress-tip .btn-close").addEventListener("click", removeFunc);
          var handlePlay = function handlePlay2() {
            if (lastPlayTimeHideDelay > 0) {
              player.root.appendChild(dom);
            }
            player.emit("memoryPlayStart", lastPlayTime);
            if (lastPlayTimeHideDelay > 0) {
              setTimeout(function() {
                removeFunc();
              }, lastPlayTimeHideDelay * 1e3);
            }
          };
          player.once("playing", handlePlay);
          player.once("ended", removeFunc);
        };
        exports2.default = {
          name: "s_memoryPlay",
          method: s_memoryPlay
        };
        module2.exports = exports2["default"];
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(168);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-default .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-default .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}", ""]);
      },
      function(module2, exports2, __webpack_require__) {
        Object.defineProperty(exports2, "__esModule", {
          value: true
        });
        var _util = __webpack_require__(0);
        var _airplay = __webpack_require__(170);
        var _airplay2 = _interopRequireDefault2(_airplay);
        __webpack_require__(171);
        function _interopRequireDefault2(obj) {
          return obj && obj.__esModule ? obj : { default: obj };
        }
        var s_airplay = function s_airplay2() {
          var player = this;
          if (!player.config.airplay || !window.WebKitPlaybackTargetAvailabilityEvent)
            return;
          var btn = (0, _util.createDom)("xg-airplay", '<xg-icon class="xgplayer-icon">\n    <div class="xgplayer-icon-airplay">' + _airplay2.default + "</div>\n  </xg-icon>", {}, "xgplayer-airplay");
          var tips = (0, _util.createDom)("xg-tips", '<span class="xgplayer-tip-airplay">' + player.lang.AIRPLAY_TIPS + "</span>", {}, "xgplayer-tips");
          btn.appendChild(tips);
          player.once("ready", function() {
            player.controls.appendChild(btn);
            player.video.addEventListener("webkitplaybacktargetavailabilitychanged", function(event2) {
              switch (event2.availability) {
                case "available":
                  btn.hidden = false;
                  btn.disabled = false;
                  break;
                case "not-available":
                  btn.hidden = true;
                  btn.disabled = true;
                  break;
              }
            });
          });
          ["click", "touchend"].forEach(function(item) {
            btn.addEventListener(item, function(e) {
              e.preventDefault();
              e.stopPropagation();
              player.userGestureTrigEvent("airplayBtnClick");
            });
          });
        };
        exports2.default = {
          name: "s_airplay",
          method: s_airplay
        };
        module2.exports = exports2["default"];
      },
      function(module2, __webpack_exports__, __webpack_require__) {
        __webpack_require__.r(__webpack_exports__);
        __webpack_exports__["default"] = '<svg t="1600422191774" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3100" width="28" height="28"><path d="M256 938.666667h512L512 597.333333 256 938.666667z m170.666667-85.333334l85.333333-113.781333L597.333333 853.333333H426.666667zM853.333333 85.333333H170.666667C99.946667 85.333333 42.666667 142.613333 42.666667 213.333333v426.666667c0 70.72 57.28 128 128 128h106.666666l64-85.333333H170.666667c-23.573333 0-42.666667-19.093333-42.666667-42.666667V213.333333c0-23.573333 19.093333-42.666667 42.666667-42.666666h682.666666c23.573333 0 42.666667 19.093333 42.666667 42.666666v426.666667c0 23.573333-19.093333 42.666667-42.666667 42.666667H682.666667l64 85.333333h106.666666c70.72 0 128-57.28 128-128V213.333333c0-70.72-57.28-128-128-128z" p-id="3101" fill="#ffffff"></path></svg>';
      },
      function(module2, exports2, __webpack_require__) {
        var content = __webpack_require__(172);
        if (typeof content === "string")
          content = [[module2.i, content, ""]];
        var transform;
        var options = { "hmr": true };
        options.transform = transform;
        options.insertInto = void 0;
        __webpack_require__(2)(content, options);
        if (content.locals)
          module2.exports = content.locals;
      },
      function(module2, exports2, __webpack_require__) {
        exports2 = module2.exports = __webpack_require__(1)(false);
        exports2.push([module2.i, ".xgplayer-skin-default .xgplayer-airplay{position:relative;-webkit-order:11;-moz-box-ordinal-group:12;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-default .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-default .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-default .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-default .xgplayer-airplay:hover .xgplayer-tips{display:block}", ""]);
      }
    ]);
  });
})(dist$1);
var Player = /* @__PURE__ */ getDefaultExportFromCjs(dist$1.exports);
var debounce$1 = function(fn, wait) {
  var lastTime = Date.now();
  var timer = null;
  var isFirstTime = true;
  return function() {
    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
    var now = Date.now();
    if (isFirstTime) {
      lastTime = Date.now();
      isFirstTime = false;
      fn.apply(void 0, args);
    }
    if (now - lastTime > wait) {
      lastTime = now;
      fn.apply(void 0, args);
    } else {
      if (timer) {
        window.clearTimeout(timer);
      }
      timer = setTimeout(function() {
        fn.apply(void 0, args);
      }, wait);
    }
  };
};
var BROWSER_EVENTS = {
  VISIBILITY_CHANGE: "VISIBILITY_CHANGE"
};
var PLAYER_EVENTS$1 = {
  SEEK: "SEEK"
};
var LOADER_EVENTS$4 = {
  LADER_START: "LOADER_START",
  LOADER_DATALOADED: "LOADER_DATALOADED",
  LOADER_COMPLETE: "LOADER_COMPLETE",
  LOADER_RESPONSE_HEADERS: "LOADER_RESPONSE_HEADERS",
  LOADER_ERROR: "LOADER_ERROR",
  LOADER_RETRY: "LOADER_RETRY",
  LOADER_TTFB: "LOADER_TTFB"
};
var DEMUX_EVENTS$4 = {
  DEMUX_START: "DEMUX_START",
  DEMUX_COMPLETE: "DEMUX_COMPLETE",
  DEMUX_ERROR: "DEMUX_ERROR",
  METADATA_PARSED: "METADATA_PARSED",
  SEI_PARSED: "SEI_PARSED",
  VIDEO_METADATA_CHANGE: "VIDEO_METADATA_CHANGE",
  AUDIO_METADATA_CHANGE: "AUDIO_METADATA_CHANGE",
  MEDIA_INFO: "MEDIA_INFO",
  ISKEYFRAME: "ISKEYFRAME"
};
var REMUX_EVENTS$6 = {
  REMUX_METADATA: "REMUX_METADATA",
  REMUX_MEDIA: "REMUX_MEDIA",
  MEDIA_SEGMENT: "MEDIA_SEGMENT",
  REMUX_ERROR: "REMUX_ERROR",
  INIT_SEGMENT: "INIT_SEGMENT",
  DETECT_CHANGE_STREAM: "DETECT_CHANGE_STREAM",
  DETECT_CHANGE_STREAM_DISCONTINUE: "DETECT_CHANGE_STREAM_DISCONTINUE",
  DETECT_AUDIO_GAP: "DETECT_AUDIO_GAP",
  DETECT_LARGE_GAP: "DETECT_LARGE_GAP",
  DETECT_AUDIO_OVERLAP: "DETECT_AUDIO_OVERLAP",
  RANDOM_ACCESS_POINT: "RANDOM_ACCESS_POINT",
  DETECT_FRAG_ID_DISCONTINUE: "DETECT_FRAG_ID_DISCONTINUE"
};
var MSE_EVENTS$4 = {
  SOURCE_UPDATE_END: "SOURCE_UPDATE_END",
  MSE_ERROR: "MSE_ERROR",
  MSE_WRONG_TRACK_ADD: "MSE_WRONG_TRACK_ADD"
};
var HLS_EVENTS$3 = {
  RETRY_TIME_EXCEEDED: "RETRY_TIME_EXCEEDED"
};
var CRYPTO_EVENTS$1 = {
  START_DECRYPTOO: "START_DECRYPTO",
  DECRYPTED: "DECRYPTED"
};
var ALLEVENTS = Object.assign({}, LOADER_EVENTS$4, DEMUX_EVENTS$4, REMUX_EVENTS$6, MSE_EVENTS$4, HLS_EVENTS$3, PLAYER_EVENTS$1, BROWSER_EVENTS);
var FlvAllowedEvents = [];
var HlsAllowedEvents$3 = [];
for (var key in ALLEVENTS) {
  if (ALLEVENTS.hasOwnProperty(key)) {
    FlvAllowedEvents.push(ALLEVENTS[key]);
  }
}
for (var _key in ALLEVENTS) {
  if (ALLEVENTS.hasOwnProperty(_key)) {
    HlsAllowedEvents$3.push(ALLEVENTS[_key]);
  }
}
var EVENTS = {
  ALLEVENTS,
  HLS_EVENTS: HLS_EVENTS$3,
  REMUX_EVENTS: REMUX_EVENTS$6,
  DEMUX_EVENTS: DEMUX_EVENTS$4,
  MSE_EVENTS: MSE_EVENTS$4,
  LOADER_EVENTS: LOADER_EVENTS$4,
  FlvAllowedEvents,
  HlsAllowedEvents: HlsAllowedEvents$3,
  CRYPTO_EVENTS: CRYPTO_EVENTS$1,
  PLAYER_EVENTS: PLAYER_EVENTS$1,
  BROWSER_EVENTS
};
var _createClass$G = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$G(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Playlist = function() {
  function Playlist2(configs) {
    _classCallCheck$G(this, Playlist2);
    this._baseURL = "";
    this._list = {};
    this._ts = {};
    this.version = 0;
    this.sequence = -1;
    this.targetduration = 0;
    this.duration = 0;
    this.fragLength = 0;
    this._lastget = void 0;
    this.end = false;
    this.autoclear = configs.autoclear || false;
    this.logger = configs.logger;
    this.downloadedUrls = [];
    this._avgSegmentDuration = 4;
  }
  _createClass$G(Playlist2, [{
    key: "push",
    value: function push(tsURL, duration, discontinue, id, cc, isLast) {
      if (!this._ts[tsURL]) {
        this._ts[tsURL] = {
          duration,
          downloaded: false,
          downloading: false,
          start: this.duration,
          discontinue: !!discontinue,
          id,
          cc,
          isLast: isLast || false
        };
        this._list[this.duration] = tsURL;
        this.duration += duration;
        this.fragLength += 1;
      }
    }
  }, {
    key: "deleteFrag",
    value: function deleteFrag(url) {
      if (this._ts[url]) {
        if (this._ts[url].start > this._lastget.time) {
          this._lastget = {
            duration: this._ts[url].duration,
            time: this._ts[url].start,
            downloaded: false,
            downloading: false,
            url,
            id: this._ts[url].id
          };
        }
        delete this._list[this._ts[url].start];
        delete this._ts[url];
        this.fragLength -= 1;
      }
    }
  }, {
    key: "_calcAvgFrgmentDuration",
    value: function _calcAvgFrgmentDuration(data) {
      if (!data.frags)
        return data.targetduration;
      var fragLen = data.frags.length;
      return Math.floor(data.duration / fragLen / 1e3);
    }
  }, {
    key: "pushM3U8",
    value: function pushM3U8(data, deletepre) {
      if (!data) {
        throw new Error("No m3u8 data received.");
      }
      this.version = data.version;
      this.targetduration = data.targetduration;
      this._avgSegmentDuration = Math.min(this.targetduration, this._calcAvgFrgmentDuration(data));
      if (data.encrypt && !this.encrypt) {
        this.encrypt = data.encrypt;
      }
      this.end = data.end || false;
      if (!data.sequence) {
        data.sequence = 0;
      }
      if (data.sequence > this.sequence) {
        var len = data.frags.length;
        if (this.logger) {
          this.logger.log("PLAYLIST", "new playlist [" + data.sequence + ", " + (data.sequence + len - 1) + "]");
        }
        this.sequence = data.sequence;
        var newfraglist = [];
        for (var i = 0; i < len; i++) {
          var frag = data.frags[i];
          if (!this._ts[frag.url] && this.downloadedUrls.indexOf(frag.url) < 0) {
            newfraglist.push(frag.url);
            this.push(frag.url, frag.duration, frag.discontinue, frag.id, frag.cc, frag.isLast);
          }
        }
        if (newfraglist.length < 1) {
          throw new Error("Can not read ts file list.");
        }
        if (deletepre) {
          var tslist = this.getTsList();
          for (var _i = 0; _i < tslist.length; _i++) {
            if (newfraglist.indexOf(tslist[_i]) < 0) {
              this.deleteFrag(tslist[_i]);
            }
          }
        }
      } else {
        throw new Error("Old m3u8 file received, " + data.sequence);
      }
    }
  }, {
    key: "getTsList",
    value: function getTsList() {
      return Object.keys(this._ts);
    }
  }, {
    key: "downloaded",
    value: function downloaded(tsname, isloaded) {
      var ts = this._ts[tsname];
      if (ts) {
        ts.downloaded = isloaded;
      }
    }
  }, {
    key: "downloading",
    value: function downloading(tsname, loading2) {
      var ts = this._ts[tsname];
      if (ts) {
        ts.downloading = loading2;
      }
    }
  }, {
    key: "getTsByName",
    value: function getTsByName(name) {
      return this._ts[name];
    }
  }, {
    key: "getTs",
    value: function getTs(time2) {
      var timelist = Object.keys(this._list);
      var ts = void 0;
      if (time2 === void 0) {
        if (this._lastget) {
          time2 = this._lastget.time + this._lastget.duration;
        } else {
          time2 = 0;
        }
      }
      if (timelist.length < 1 || time2 >= this.duration) {
        return void 0;
      }
      timelist = timelist.sort(function(a, b) {
        return parseFloat(a) - parseFloat(b);
      });
      for (var i = 0; i < timelist.length; i++) {
        if (time2 >= parseInt(timelist[i])) {
          var url = this._list[timelist[i]];
          var downloaded = this._ts[url].downloaded;
          var downloading = this._ts[url].downloading;
          ts = {
            url,
            downloaded,
            downloading,
            time: parseInt(timelist[i]),
            duration: parseInt(this._ts[url].duration),
            id: this._ts[url].id,
            cc: this._ts[url].cc,
            isLast: this._ts[url].isLast
          };
          if (this.autoclear && this._lastget) {
            delete this._ts[this._lastget.url];
            delete this._list[this._lastget.time];
          }
          this._lastget = ts;
        } else {
          break;
        }
      }
      if (ts) {
        this.downloadedUrls.push(ts.url);
      }
      return ts;
    }
  }, {
    key: "getLastDownloadedTs",
    value: function getLastDownloadedTs() {
      var timelist = Object.keys(this._list).sort(function(a, b) {
        var result = Number(a) - Number(b);
        return result;
      });
      var found = void 0;
      for (var i = 0; i < timelist.length; i++) {
        var url = this._list[timelist[i]];
        var downloaded = this._ts[url].downloaded;
        var downloading = this._ts[url].downloading;
        if (downloaded) {
          found = { url, downloaded, downloading, time: parseInt(timelist[i]), duration: parseInt(this._ts[url].duration) };
        } else {
          break;
        }
      }
      return found;
    }
  }, {
    key: "clear",
    value: function clear() {
      this._baseURL = "";
      this._list = {};
      this._ts = {};
      this.version = 0;
      this.sequence = -1;
      this.targetduration = 0;
      this.duration = 0;
    }
  }, {
    key: "clearDownloaded",
    value: function clearDownloaded() {
      var list = Object.keys(this._ts);
      for (var i = 0, l = list.length; i < l; i++) {
        var ts = this._ts[list[i]];
        ts.downloaded = false;
        ts.downloading = false;
      }
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this._baseURL = "";
      this._list = {};
      this._ts = {};
      this.version = 0;
      this.sequence = -1;
      this.targetduration = 0;
      this.duration = 0;
      this.fragLength = 0;
      this._lastget = void 0;
      this.autoclear = false;
    }
  }, {
    key: "resetSequence",
    value: function resetSequence() {
      this.sequence = -1;
    }
  }, {
    key: "list",
    get: function get5() {
      return this._list;
    }
  }, {
    key: "baseURL",
    set: function set2(baseURL) {
      if (this.baseURL !== baseURL) {
        this.clear();
        this._baseURL = baseURL;
      }
    },
    get: function get5() {
      return this._baseURL;
    }
  }, {
    key: "avgSegmentDuration",
    get: function get5() {
      return this._avgSegmentDuration;
    }
  }]);
  return Playlist2;
}();
var Playlist$1 = Playlist;
var _createClass$F = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$F(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var RemuxedBuffer = function RemuxedBuffer2() {
  _classCallCheck$F(this, RemuxedBuffer2);
  this.mimetype = "";
  this.init = null;
  this.data = [];
  this.bufferDuration = 0;
};
var RemuxedBufferManager = function() {
  function RemuxedBufferManager2() {
    _classCallCheck$F(this, RemuxedBufferManager2);
    this.sources = {};
  }
  _createClass$F(RemuxedBufferManager2, [{
    key: "getSource",
    value: function getSource(name) {
      return this.sources[name];
    }
  }, {
    key: "createSource",
    value: function createSource(name) {
      this.sources[name] = new RemuxedBuffer();
      return this.sources[name];
    }
  }, {
    key: "clear",
    value: function clear() {
      this.sources = {};
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.clear();
    }
  }]);
  return RemuxedBufferManager2;
}();
var RemuxedBufferManager$1 = RemuxedBufferManager;
var _createClass$E = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$E(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var XGDataView = function() {
  function XGDataView2(buffer) {
    _classCallCheck$E(this, XGDataView2);
    if (buffer instanceof ArrayBuffer) {
      this.buffer = buffer;
      this.dataview = new DataView(buffer);
      this.dataview.position = 0;
    } else {
      throw new Error("data is invalid");
    }
  }
  _createClass$E(XGDataView2, [{
    key: "back",
    value: function back(count) {
      this.position -= count;
    }
  }, {
    key: "getUint8",
    value: function getUint8(offset) {
      return this.dataview.getUint8(offset);
    }
  }, {
    key: "skip",
    value: function skip(count) {
      var loop = Math.floor(count / 4);
      var last = count % 4;
      for (var i = 0; i < loop; i++) {
        XGDataView2.readByte(this.dataview, 4);
      }
      if (last > 0) {
        XGDataView2.readByte(this.dataview, last);
      }
    }
  }, {
    key: "readUint8",
    value: function readUint8() {
      return XGDataView2.readByte(this.dataview, 1);
    }
  }, {
    key: "readUint16",
    value: function readUint16() {
      return XGDataView2.readByte(this.dataview, 2);
    }
  }, {
    key: "readUint24",
    value: function readUint24() {
      return XGDataView2.readByte(this.dataview, 3);
    }
  }, {
    key: "readUint32",
    value: function readUint32() {
      return XGDataView2.readByte(this.dataview, 4);
    }
  }, {
    key: "readUint64",
    value: function readUint64() {
      return XGDataView2.readByte(this.dataview, 8);
    }
  }, {
    key: "readInt8",
    value: function readInt8() {
      return XGDataView2.readByte(this.dataview, 1, true);
    }
  }, {
    key: "readInt16",
    value: function readInt16() {
      return XGDataView2.readByte(this.dataview, 2, true);
    }
  }, {
    key: "readInt32",
    value: function readInt32() {
      return XGDataView2.readByte(this.dataview, 4, true);
    }
  }, {
    key: "writeUint32",
    value: function writeUint32(value) {
      return new Uint8Array([value >>> 24 & 255, value >>> 16 & 255, value >>> 8 & 255, value & 255]);
    }
  }, {
    key: "length",
    get: function get5() {
      return this.buffer.byteLength;
    }
  }, {
    key: "position",
    set: function set2(value) {
      this.dataview.position = value;
    },
    get: function get5() {
      return this.dataview.position;
    }
  }], [{
    key: "readByte",
    value: function readByte(buffer, size, sign) {
      var res = void 0;
      switch (size) {
        case 1:
          if (sign) {
            res = buffer.getInt8(buffer.position);
          } else {
            res = buffer.getUint8(buffer.position);
          }
          break;
        case 2:
          if (sign) {
            res = buffer.getInt16(buffer.position);
          } else {
            res = buffer.getUint16(buffer.position);
          }
          break;
        case 3:
          if (sign) {
            throw new Error("not supported for readByte 3");
          } else {
            res = buffer.getUint8(buffer.position) << 16;
            res |= buffer.getUint8(buffer.position + 1) << 8;
            res |= buffer.getUint8(buffer.position + 2);
          }
          break;
        case 4:
          if (sign) {
            res = buffer.getInt32(buffer.position);
          } else {
            res = buffer.getUint32(buffer.position);
          }
          break;
        case 8:
          if (sign) {
            throw new Error("not supported for readBody 8");
          } else {
            res = buffer.getUint32(buffer.position) << 32;
            res |= buffer.getUint32(buffer.position + 4);
          }
          break;
        default:
          res = "";
      }
      buffer.position += size;
      return res;
    }
  }]);
  return XGDataView2;
}();
var XGDataView$1 = XGDataView;
var _createClass$D = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _possibleConstructorReturn$6(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$6(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
function _classCallCheck$D(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Track = function() {
  function Track2() {
    _classCallCheck$D(this, Track2);
    this.id = -1;
    this.sequenceNumber = 0;
    this.samples = [];
    this.droppedSamples = [];
    this.length = 0;
  }
  _createClass$D(Track2, [{
    key: "reset",
    value: function reset() {
      this.sequenceNumber = 0;
      this.samples = [];
      this.length = 0;
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.reset();
      this.id = -1;
    }
  }]);
  return Track2;
}();
var Tracks = Track;
var AudioTrack = function(_Track) {
  _inherits$6(AudioTrack2, _Track);
  function AudioTrack2() {
    _classCallCheck$D(this, AudioTrack2);
    var _this = _possibleConstructorReturn$6(this, (AudioTrack2.__proto__ || Object.getPrototypeOf(AudioTrack2)).call(this));
    _this.TAG = "AudioTrack";
    _this.type = "audio";
    return _this;
  }
  return AudioTrack2;
}(Track);
var VideoTrack = function(_Track2) {
  _inherits$6(VideoTrack2, _Track2);
  function VideoTrack2() {
    _classCallCheck$D(this, VideoTrack2);
    var _this2 = _possibleConstructorReturn$6(this, (VideoTrack2.__proto__ || Object.getPrototypeOf(VideoTrack2)).call(this));
    _this2.TAG = "VideoTrack";
    _this2.type = "video";
    _this2.dropped = 0;
    _this2.sequenceNumber = 0;
    return _this2;
  }
  _createClass$D(VideoTrack2, [{
    key: "reset",
    value: function reset() {
      this.sequenceNumber = 0;
      this.samples = [];
      this.length = 0;
      this.dropped = 0;
    }
  }]);
  return VideoTrack2;
}(Track);
(function() {
  function Tracks2() {
    _classCallCheck$D(this, Tracks2);
    this.audioTrack = null;
    this.videoTrack = null;
  }
  _createClass$D(Tracks2, [{
    key: "destroy",
    value: function destroy() {
      this.audioTrack = null;
      this.videoTrack = null;
    }
  }]);
  return Tracks2;
})();
var _createClass$C = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$C(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var XgBuffer = function() {
  function XgBuffer2(length) {
    _classCallCheck$C(this, XgBuffer2);
    this.length = length || 0;
    this.historyLen = length || 0;
    this.array = [];
    this.offset = 0;
  }
  _createClass$C(XgBuffer2, [{
    key: "push",
    value: function push(data) {
      this.array.push(data);
      this.length += data.byteLength;
      this.historyLen += data.byteLength;
    }
  }, {
    key: "shift",
    value: function shift(length) {
      if (this.array.length < 1) {
        return new Uint8Array(0);
      }
      if (length === void 0) {
        return this._shiftBuffer();
      }
      if (this.offset + length === this.array[0].length) {
        var _ret = this.array[0].slice(this.offset, this.offset + length);
        this.offset = 0;
        this.array.shift();
        this.length -= length;
        return _ret;
      }
      if (this.offset + length < this.array[0].length) {
        var _ret2 = this.array[0].slice(this.offset, this.offset + length);
        this.offset += length;
        this.length -= length;
        return _ret2;
      }
      var ret = new Uint8Array(length);
      var tmpoff = 0;
      while (this.array.length > 0 && length > 0) {
        if (this.offset + length < this.array[0].length) {
          var tmp = this.array[0].slice(this.offset, this.offset + length);
          ret.set(tmp, tmpoff);
          this.offset += length;
          this.length -= length;
          length = 0;
          break;
        } else {
          var templength = this.array[0].length - this.offset;
          ret.set(this.array[0].slice(this.offset, this.array[0].length), tmpoff);
          this.array.shift();
          this.offset = 0;
          tmpoff += templength;
          this.length -= templength;
          length -= templength;
        }
      }
      return ret;
    }
  }, {
    key: "clear",
    value: function clear() {
      this.array = [];
      this.length = 0;
      this.offset = 0;
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.clear();
      this.historyLen = 0;
    }
  }, {
    key: "_shiftBuffer",
    value: function _shiftBuffer() {
      this.length -= this.array[0].length;
      this.offset = 0;
      return this.array.shift();
    }
  }, {
    key: "toInt",
    value: function toInt(start2, length) {
      var retInt = 0;
      var i = this.offset + start2;
      while (i < this.offset + length + start2) {
        if (i < this.array[0].length) {
          retInt = retInt * 256 + this.array[0][i];
        } else if (this.array[1]) {
          retInt = retInt * 256 + this.array[1][i - this.array[0].length];
        }
        i++;
      }
      return retInt;
    }
  }]);
  return XgBuffer2;
}();
var XgBuffer$1 = XgBuffer;
var _createClass$B = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$B(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var AudioTrackMeta = function() {
  function AudioTrackMeta2(meta) {
    _classCallCheck$B(this, AudioTrackMeta2);
    var _default = {
      sampleRate: 48e3,
      channelCount: 2,
      codec: "mp4a.40.2",
      config: [41, 401, 136, 0],
      duration: 0,
      id: 2,
      refSampleDuration: 21,
      sampleRateIndex: 3,
      timescale: 1e3,
      type: "audio"
    };
    if (meta) {
      return Object.assign({}, _default, meta);
    }
    return _default;
  }
  _createClass$B(AudioTrackMeta2, [{
    key: "destroy",
    value: function destroy() {
      this.init = null;
    }
  }]);
  return AudioTrackMeta2;
}();
var VideoTrackMeta = function() {
  function VideoTrackMeta2(meta) {
    _classCallCheck$B(this, VideoTrackMeta2);
    var _default = {
      avcc: null,
      sps: new Uint8Array(0),
      pps: new Uint8Array(0),
      chromaFormat: 420,
      codec: "avc1.640020",
      codecHeight: 720,
      codecWidth: 1280,
      duration: 0,
      frameRate: {
        fixed: true,
        fps: 25,
        fps_num: 25e3,
        fps_den: 1e3
      },
      id: 1,
      level: "3.2",
      presentHeight: 720,
      presentWidth: 1280,
      profile: "High",
      refSampleDuration: 40,
      parRatio: {
        height: 1,
        width: 1
      },
      timescale: 1e3,
      type: "video"
    };
    if (meta) {
      return Object.assign({}, _default, meta);
    }
    return _default;
  }
  _createClass$B(VideoTrackMeta2, [{
    key: "destroy",
    value: function destroy() {
      this.init = null;
      this.sps = null;
      this.pps = null;
    }
  }]);
  return VideoTrackMeta2;
}();
var _createClass$A = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$A(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var AudioSample = function() {
  function AudioSample2(info) {
    _classCallCheck$A(this, AudioSample2);
    var _default = AudioSample2.getDefault();
    if (!info) {
      return _default;
    }
    return Object.assign({}, _default, info);
  }
  _createClass$A(AudioSample2, null, [{
    key: "getDefault",
    value: function getDefault() {
      return {
        dts: -1,
        pts: -1,
        originDts: -1,
        data: new Uint8Array()
      };
    }
  }]);
  return AudioSample2;
}();
var VideoSample = function() {
  function VideoSample2(info) {
    _classCallCheck$A(this, VideoSample2);
    var _default = VideoSample2.getDefault();
    if (!info) {
      return _default;
    }
    var sample = Object.assign({}, _default, info);
    return sample;
  }
  _createClass$A(VideoSample2, null, [{
    key: "getDefault",
    value: function getDefault() {
      return {
        dts: -1,
        pts: void 0,
        isKeyframe: false,
        originDts: -1,
        data: new Uint8Array(),
        nals: []
      };
    }
  }]);
  return VideoSample2;
}();
var _createClass$z = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$z(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var isObjectFilled = function isObjectFilled2(obj) {
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      if (obj[key] === null) {
        return false;
      }
    }
  }
  return true;
};
var MediaInfo = function() {
  function MediaInfo2() {
    _classCallCheck$z(this, MediaInfo2);
    this.mimeType = null;
    this.duration = null;
    this.hasVideo = false;
    this.video = {
      codec: null,
      width: null,
      height: null,
      profile: null,
      level: null,
      frameRate: {
        fixed: true,
        fps: 25,
        fps_num: 25e3,
        fps_den: 1e3
      },
      chromaFormat: null,
      parRatio: {
        width: 1,
        height: 1
      }
    };
    this.hasAudio = false;
    this.audio = {
      codec: null,
      sampleRate: null,
      sampleRateIndex: null,
      channelCount: null
    };
  }
  _createClass$z(MediaInfo2, [{
    key: "isComplete",
    value: function isComplete() {
      return MediaInfo2.isBaseInfoReady(this) && MediaInfo2.isVideoReady(this) && MediaInfo2.isAudioReady(this);
    }
  }], [{
    key: "isBaseInfoReady",
    value: function isBaseInfoReady(mediaInfo) {
      return isObjectFilled(mediaInfo);
    }
  }, {
    key: "isVideoReady",
    value: function isVideoReady(mediaInfo) {
      if (!mediaInfo.hasVideo) {
        return true;
      }
      return isObjectFilled(mediaInfo.video);
    }
  }, {
    key: "isAudioReady",
    value: function isAudioReady(mediaInfo) {
      if (!mediaInfo.hasAudio) {
        return true;
      }
      return isObjectFilled(mediaInfo.video);
    }
  }]);
  return MediaInfo2;
}();
var MediaInfo$1 = MediaInfo;
var _createClass$y = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$y(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var TsFrag = function() {
  _createClass$y(TsFrag2, null, [{
    key: "getDefault",
    value: function getDefault() {
      return {
        id: -1,
        url: "",
        start: -1,
        duration: -1,
        discontinue: false,
        cc: -1
      };
    }
  }]);
  function TsFrag2(props) {
    _classCallCheck$y(this, TsFrag2);
    var merged = Object.assign({}, TsFrag2.getDefault(), props);
    this.id = merged.id;
    this.url = merged.url;
    this.start = merged.start;
    this.duration = merged.duration;
    this.discontinue = merged.discontinue;
    this.cc = merged.cc;
  }
  return TsFrag2;
}();
var TsFrag$1 = TsFrag;
var eventemitter3 = { exports: {} };
(function(module) {
  var has = Object.prototype.hasOwnProperty, prefix = "~";
  function Events() {
  }
  if (Object.create) {
    Events.prototype = /* @__PURE__ */ Object.create(null);
    if (!new Events().__proto__)
      prefix = false;
  }
  function EE(fn, context, once) {
    this.fn = fn;
    this.context = context;
    this.once = once || false;
  }
  function addListener(emitter, event2, fn, context, once) {
    if (typeof fn !== "function") {
      throw new TypeError("The listener must be a function");
    }
    var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event2 : event2;
    if (!emitter._events[evt])
      emitter._events[evt] = listener, emitter._eventsCount++;
    else if (!emitter._events[evt].fn)
      emitter._events[evt].push(listener);
    else
      emitter._events[evt] = [emitter._events[evt], listener];
    return emitter;
  }
  function clearEvent(emitter, evt) {
    if (--emitter._eventsCount === 0)
      emitter._events = new Events();
    else
      delete emitter._events[evt];
  }
  function EventEmitter2() {
    this._events = new Events();
    this._eventsCount = 0;
  }
  EventEmitter2.prototype.eventNames = function eventNames() {
    var names = [], events, name;
    if (this._eventsCount === 0)
      return names;
    for (name in events = this._events) {
      if (has.call(events, name))
        names.push(prefix ? name.slice(1) : name);
    }
    if (Object.getOwnPropertySymbols) {
      return names.concat(Object.getOwnPropertySymbols(events));
    }
    return names;
  };
  EventEmitter2.prototype.listeners = function listeners(event2) {
    var evt = prefix ? prefix + event2 : event2, handlers = this._events[evt];
    if (!handlers)
      return [];
    if (handlers.fn)
      return [handlers.fn];
    for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
      ee[i] = handlers[i].fn;
    }
    return ee;
  };
  EventEmitter2.prototype.listenerCount = function listenerCount(event2) {
    var evt = prefix ? prefix + event2 : event2, listeners = this._events[evt];
    if (!listeners)
      return 0;
    if (listeners.fn)
      return 1;
    return listeners.length;
  };
  EventEmitter2.prototype.emit = function emit(event2, a1, a2, a3, a4, a5) {
    var evt = prefix ? prefix + event2 : event2;
    if (!this._events[evt])
      return false;
    var listeners = this._events[evt], len = arguments.length, args, i;
    if (listeners.fn) {
      if (listeners.once)
        this.removeListener(event2, listeners.fn, void 0, true);
      switch (len) {
        case 1:
          return listeners.fn.call(listeners.context), true;
        case 2:
          return listeners.fn.call(listeners.context, a1), true;
        case 3:
          return listeners.fn.call(listeners.context, a1, a2), true;
        case 4:
          return listeners.fn.call(listeners.context, a1, a2, a3), true;
        case 5:
          return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
        case 6:
          return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
      }
      for (i = 1, args = new Array(len - 1); i < len; i++) {
        args[i - 1] = arguments[i];
      }
      listeners.fn.apply(listeners.context, args);
    } else {
      var length = listeners.length, j;
      for (i = 0; i < length; i++) {
        if (listeners[i].once)
          this.removeListener(event2, listeners[i].fn, void 0, true);
        switch (len) {
          case 1:
            listeners[i].fn.call(listeners[i].context);
            break;
          case 2:
            listeners[i].fn.call(listeners[i].context, a1);
            break;
          case 3:
            listeners[i].fn.call(listeners[i].context, a1, a2);
            break;
          case 4:
            listeners[i].fn.call(listeners[i].context, a1, a2, a3);
            break;
          default:
            if (!args)
              for (j = 1, args = new Array(len - 1); j < len; j++) {
                args[j - 1] = arguments[j];
              }
            listeners[i].fn.apply(listeners[i].context, args);
        }
      }
    }
    return true;
  };
  EventEmitter2.prototype.on = function on(event2, fn, context) {
    return addListener(this, event2, fn, context, false);
  };
  EventEmitter2.prototype.once = function once(event2, fn, context) {
    return addListener(this, event2, fn, context, true);
  };
  EventEmitter2.prototype.removeListener = function removeListener(event2, fn, context, once) {
    var evt = prefix ? prefix + event2 : event2;
    if (!this._events[evt])
      return this;
    if (!fn) {
      clearEvent(this, evt);
      return this;
    }
    var listeners = this._events[evt];
    if (listeners.fn) {
      if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {
        clearEvent(this, evt);
      }
    } else {
      for (var i = 0, events = [], length = listeners.length; i < length; i++) {
        if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {
          events.push(listeners[i]);
        }
      }
      if (events.length)
        this._events[evt] = events.length === 1 ? events[0] : events;
      else
        clearEvent(this, evt);
    }
    return this;
  };
  EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event2) {
    var evt;
    if (event2) {
      evt = prefix ? prefix + event2 : event2;
      if (this._events[evt])
        clearEvent(this, evt);
    } else {
      this._events = new Events();
      this._eventsCount = 0;
    }
    return this;
  };
  EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;
  EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;
  EventEmitter2.prefixed = prefix;
  EventEmitter2.EventEmitter = EventEmitter2;
  {
    module.exports = EventEmitter2;
  }
})(eventemitter3);
var EventEmitter = eventemitter3.exports;
var _get$3 = function get(object, property, receiver) {
  if (object === null)
    object = Function.prototype;
  var desc = Object.getOwnPropertyDescriptor(object, property);
  if (desc === void 0) {
    var parent = Object.getPrototypeOf(object);
    if (parent === null) {
      return void 0;
    } else {
      return get(parent, property, receiver);
    }
  } else if ("value" in desc) {
    return desc.value;
  } else {
    var getter = desc.get;
    if (getter === void 0) {
      return void 0;
    }
    return getter.call(receiver);
  }
};
var _createClass$x = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _possibleConstructorReturn$5(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$5(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
function _classCallCheck$x(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var DIRECT_EMIT_FLAG = "__TO__";
var Context = function() {
  function Context2(player, configs) {
    var allowedEvents = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
    _classCallCheck$x(this, Context2);
    this._emitter = new EventEmitter();
    if (!this._emitter.off) {
      this._emitter.off = this._emitter.removeListener;
    }
    this.mediaInfo = new MediaInfo$1();
    this._instanceMap = {};
    this._clsMap = {};
    this._inited = false;
    this.allowedEvents = allowedEvents;
    this._configs = configs;
    this._player = player;
    this._hooks = {};
  }
  _createClass$x(Context2, [{
    key: "getInstance",
    value: function getInstance(tag) {
      var instance = this._instanceMap[tag];
      if (instance) {
        return instance;
      } else {
        return null;
      }
    }
  }, {
    key: "initInstance",
    value: function initInstance(tag) {
      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        args[_key - 1] = arguments[_key];
      }
      var a = args[0], b = args[1], c = args[2], d = args[3];
      if (this._clsMap[tag]) {
        var newInstance = new this._clsMap[tag](a, b, c, d);
        this._instanceMap[tag] = newInstance;
        if (newInstance.init) {
          newInstance.init();
        }
        return newInstance;
      } else {
        throw new Error(tag + "\u672A\u5728context\u4E2D\u6CE8\u518C");
      }
    }
  }, {
    key: "init",
    value: function init(config) {
      if (this._inited) {
        return;
      }
      for (var tag in this._clsMap) {
        if (this._clsMap.hasOwnProperty(tag) && !this._instanceMap[tag]) {
          this.initInstance(tag, config);
        }
      }
      this._inited = true;
    }
  }, {
    key: "registry",
    value: function registry(tag, cls) {
      var _this2 = this;
      var emitter = this._emitter;
      var checkMessageName = this._isMessageNameValid.bind(this);
      var self2 = this;
      var enhanced = function(_cls) {
        _inherits$5(enhanced2, _cls);
        function enhanced2(a, b, c) {
          _classCallCheck$x(this, enhanced2);
          var _this = _possibleConstructorReturn$5(this, (enhanced2.__proto__ || Object.getPrototypeOf(enhanced2)).call(this, a, b, c));
          _this.listeners = {};
          _this.onceListeners = {};
          _this.TAG = tag;
          _this._context = self2;
          return _this;
        }
        _createClass$x(enhanced2, [{
          key: "on",
          value: function on(messageName, callback) {
            checkMessageName(messageName);
            if (this.listeners[messageName]) {
              this.listeners[messageName].push(callback);
            } else {
              this.listeners[messageName] = [callback];
            }
            emitter.on("" + messageName + DIRECT_EMIT_FLAG + tag, callback);
            return emitter.on(messageName, callback);
          }
        }, {
          key: "before",
          value: function before(messageName, callback) {
            checkMessageName(messageName);
            if (self2._hooks[messageName]) {
              self2._hooks[messageName].push(callback);
            } else {
              self2._hooks[messageName] = [callback];
            }
          }
        }, {
          key: "once",
          value: function once(messageName, callback) {
            checkMessageName(messageName);
            if (this.onceListeners[messageName]) {
              this.onceListeners[messageName].push(callback);
            } else {
              this.onceListeners[messageName] = [callback];
            }
            emitter.once("" + messageName + DIRECT_EMIT_FLAG + tag, callback);
            return emitter.once(messageName, callback);
          }
        }, {
          key: "emit",
          value: function emit(messageName) {
            checkMessageName(messageName);
            var beforeList = self2._hooks ? self2._hooks[messageName] : null;
            for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
              args[_key2 - 1] = arguments[_key2];
            }
            if (beforeList) {
              for (var i = 0, len = beforeList.length; i < len; i++) {
                var callback = beforeList[i];
                callback.apply(void 0, args);
              }
            }
            return emitter.emit.apply(emitter, [messageName].concat(args));
          }
        }, {
          key: "emitTo",
          value: function emitTo(tag2, messageName) {
            checkMessageName(messageName);
            for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
              args[_key3 - 2] = arguments[_key3];
            }
            return emitter.emit.apply(emitter, ["" + messageName + DIRECT_EMIT_FLAG + tag2].concat(args));
          }
        }, {
          key: "off",
          value: function off(messageName, callback) {
            checkMessageName(messageName);
            return emitter.off(messageName, callback);
          }
        }, {
          key: "removeListeners",
          value: function removeListeners() {
            var hasOwn = Object.prototype.hasOwnProperty.bind(this.listeners);
            for (var messageName in this.listeners) {
              if (hasOwn(messageName)) {
                var callbacks = this.listeners[messageName] || [];
                for (var i = 0; i < callbacks.length; i++) {
                  var callback = callbacks[i];
                  emitter.off(messageName, callback);
                  emitter.off("" + messageName + DIRECT_EMIT_FLAG + tag, callback);
                }
              }
            }
            for (var _messageName in this.onceListeners) {
              if (hasOwn(_messageName)) {
                var _callbacks = this.onceListeners[_messageName] || [];
                for (var _i = 0; _i < _callbacks.length; _i++) {
                  var _callback = _callbacks[_i];
                  emitter.off(_messageName, _callback);
                  emitter.off("" + _messageName + DIRECT_EMIT_FLAG + tag, _callback);
                }
              }
            }
          }
        }, {
          key: "destroy",
          value: function destroy() {
            this.removeListeners();
            this.listeners = {};
            delete self2._instanceMap[tag];
            if (_get$3(enhanced2.prototype.__proto__ || Object.getPrototypeOf(enhanced2.prototype), "destroy", this)) {
              return _get$3(enhanced2.prototype.__proto__ || Object.getPrototypeOf(enhanced2.prototype), "destroy", this).call(this);
            }
            this._context = null;
          }
        }, {
          key: "_player",
          get: function get5() {
            if (!this._context) {
              return null;
            }
            return this._context._player;
          },
          set: function set2(v) {
            if (this._context) {
              this._context._player = v;
            }
          }
        }, {
          key: "_pluginConfig",
          get: function get5() {
            if (!this._context) {
              return null;
            }
            return this._context._configs;
          }
        }]);
        return enhanced2;
      }(cls);
      this._clsMap[tag] = enhanced;
      return function() {
        for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
          args[_key4] = arguments[_key4];
        }
        return _this2.initInstance.apply(_this2, [tag].concat(args));
      };
    }
  }, {
    key: "seek",
    value: function seek(time2) {
      this._emitter.emit(EVENTS.PLAYER_EVENTS.SEEK, time2);
    }
  }, {
    key: "destroyInstances",
    value: function destroyInstances() {
      var _this3 = this;
      Object.keys(this._instanceMap).forEach(function(tag) {
        if (_this3._instanceMap[tag].destroy) {
          _this3._instanceMap[tag].destroy();
        }
      });
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.destroyInstances();
      if (this._emitter) {
        this._emitter.removeAllListeners();
      }
      this._emitter = null;
      this.allowedEvents = [];
      this._clsMap = null;
      this._hooks = null;
      this._player = null;
      this._configs = null;
    }
  }, {
    key: "_isMessageNameValid",
    value: function _isMessageNameValid(messageName) {
      if (!this.allowedEvents.indexOf(messageName) < 0) {
        throw new Error("unregistered message name: " + messageName);
      }
    }
  }]);
  return Context2;
}();
var Context$1 = Context;
var _createClass$w = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$w(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var CRYPTO_EVENTS = EVENTS.CRYPTO_EVENTS;
var Crypto = function() {
  function Crypto2(config) {
    _classCallCheck$w(this, Crypto2);
    this.inputBuffer = config.inputbuffer;
    this.outputBuffer = config.outputbuffer;
    this.key = config.key;
    this.iv = config.iv;
    this.method = config.method;
    this.crypto = window.crypto || window.msCrypto;
  }
  _createClass$w(Crypto2, [{
    key: "init",
    value: function init() {
      this.on(CRYPTO_EVENTS.START_DECRYPTO, this.decrypto.bind(this));
    }
  }, {
    key: "decrypto",
    value: function decrypto() {
      var _this = this;
      if (!this.aeskey) {
        var sbkey = this.crypto.subtle.importKey("raw", this.key.buffer, { name: "AES-CBC" }, false, ["encrypt", "decrypt"]);
        sbkey.then(function(key) {
          _this.aeskey = key;
          _this.decryptoData();
        });
      } else {
        this.decryptoData();
      }
    }
  }, {
    key: "decryptoData",
    value: function decryptoData() {
      var _this2 = this;
      var inputbuffer = this._context.getInstance(this.inputBuffer);
      var outputbuffer = this._context.getInstance(this.outputBuffer);
      var data = inputbuffer.shift();
      if (data) {
        this.crypto.subtle.decrypt({ name: "AES-CBC", iv: this.iv.buffer }, this.aeskey, data).then(function(res) {
          outputbuffer.push(new Uint8Array(res));
          _this2.emit(CRYPTO_EVENTS.DECRYPTED);
          _this2.decryptoData(data);
        });
      }
    }
  }]);
  return Crypto2;
}();
var Crypto$1 = Crypto;
var _createClass$v = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$v(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var MSE_EVENTS$3 = EVENTS.MSE_EVENTS;
var MSE = function() {
  function MSE2(configs, context) {
    _classCallCheck$v(this, MSE2);
    if (context) {
      this._context = context;
      this.emit = context._emitter.emit.bind(context._emitter);
    }
    this.TAG = "MSE";
    this.configs = Object.assign({}, configs);
    this.container = this.configs.container;
    this.format = this.configs.format;
    this.mediaSource = null;
    this.sourceBuffers = {};
    this.preloadTime = this.configs.preloadTime || 1;
    this.onSourceOpen = this.onSourceOpen.bind(this);
    this.onTimeUpdate = this.onTimeUpdate.bind(this);
    this.onUpdateEnd = this.onUpdateEnd.bind(this);
    this.onWaiting = this.onWaiting.bind(this);
    this.opened = false;
  }
  _createClass$v(MSE2, [{
    key: "init",
    value: function init() {
      this.mediaSource = new self.MediaSource();
      this.mediaSource.addEventListener("sourceopen", this.onSourceOpen);
      this._url = null;
      this.container.addEventListener("timeupdate", this.onTimeUpdate);
      this.container.addEventListener("waiting", this.onWaiting);
    }
  }, {
    key: "resetContext",
    value: function resetContext(newCtx, keepBuffer) {
      this._context = newCtx;
      this.emit = newCtx._emitter.emit.bind(newCtx._emitter);
      if (!keepBuffer) {
        for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
          var buffer = this.sourceBuffers[Object.keys(this.sourceBuffers)[i]];
          if (!buffer.updating) {
            MSE2.clearBuffer(buffer);
          }
        }
      }
    }
  }, {
    key: "onTimeUpdate",
    value: function onTimeUpdate() {
      this.emit("TIME_UPDATE", this.container);
    }
  }, {
    key: "onWaiting",
    value: function onWaiting() {
      this.emit("WAITING", this.container);
    }
  }, {
    key: "onSourceOpen",
    value: function onSourceOpen() {
      this.opened = true;
      this.addSourceBuffers();
    }
  }, {
    key: "onUpdateEnd",
    value: function onUpdateEnd() {
      this.emit(MSE_EVENTS$3.SOURCE_UPDATE_END);
      this.doAppend();
    }
  }, {
    key: "addSourceBuffers",
    value: function addSourceBuffers() {
      if (!this.mediaSource || this.mediaSource.readyState !== "open" || !this.opened) {
        return;
      }
      var sources = this._context.getInstance("PRE_SOURCE_BUFFER");
      var tracks = this._context.getInstance("TRACKS");
      var track = void 0;
      if (!sources || !tracks) {
        return;
      }
      sources = sources.sources;
      var add = false;
      for (var i = 0, k = Object.keys(sources).length; i < k; i++) {
        var type = Object.keys(sources)[i];
        add = false;
        if (type === "audio") {
          track = tracks.audioTrack;
        } else if (type === "video") {
          track = tracks.videoTrack;
        }
        if (track && sources[type].init !== null && sources[type].data.length) {
          add = true;
        }
      }
      if (add) {
        if (Object.keys(this.sourceBuffers).length > 1) {
          return;
        }
        for (var _i = 0, _k = Object.keys(sources).length; _i < _k; _i++) {
          var _type = Object.keys(sources)[_i];
          if (this.sourceBuffers[_type]) {
            continue;
          }
          var source = sources[_type];
          var mime = _type === "video" ? "video/mp4;codecs=" + source.mimetype : "audio/mp4;codecs=" + source.mimetype;
          try {
            var sourceBuffer = this.mediaSource.addSourceBuffer(mime);
            this.sourceBuffers[_type] = sourceBuffer;
            sourceBuffer.addEventListener("updateend", this.onUpdateEnd);
          } catch (e) {
            if (e.code === 22 && Object.keys(this.sourceBuffers).length > 0) {
              return this.emit(MSE_EVENTS$3.MSE_WRONG_TRACK_ADD, _type);
            }
            this.emit(MSE_EVENTS$3.MSE_ERROR, this.TAG, new Error(e.message));
          }
        }
        if (Object.keys(this.sourceBuffers).length === this.sourceBufferLen) {
          this.doAppend();
        }
      }
    }
  }, {
    key: "doAppend",
    value: function doAppend() {
      if (!this.mediaSource || this.mediaSource.readyState === "closed")
        return;
      this._doCleanupSourceBuffer();
      var sources = this._context.getInstance("PRE_SOURCE_BUFFER");
      if (!sources)
        return;
      if (Object.keys(this.sourceBuffers).length < this.sourceBufferLen) {
        return;
      }
      for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
        var type = Object.keys(this.sourceBuffers)[i];
        var sourceBuffer = this.sourceBuffers[type];
        if (sourceBuffer.updating)
          continue;
        var source = sources.sources[type];
        if (this["no" + type]) {
          source.data = [];
          source.init.buffer = null;
          continue;
        }
        if (source && !source.inited) {
          try {
            sourceBuffer.appendBuffer(source.init.buffer.buffer);
            source.inited = true;
          } catch (e) {
          }
        } else if (source) {
          var data = source.data.shift();
          if (data) {
            try {
              sourceBuffer.appendBuffer(data.buffer.buffer);
            } catch (e) {
              source.data.unshift(data);
            }
          }
        }
      }
    }
  }, {
    key: "endOfStream",
    value: function endOfStream() {
      try {
        var readyState = this.mediaSource.readyState;
        if (readyState === "open") {
          this.mediaSource.endOfStream();
        }
      } catch (e) {
      }
    }
  }, {
    key: "remove",
    value: function remove(end) {
      var start2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
      try {
        for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
          var buffer = this.sourceBuffers[Object.keys(this.sourceBuffers)[i]];
          if (!buffer.updating) {
            if (end > start2) {
              buffer.remove(start2, end);
            }
          }
        }
      } catch (e) {
      }
    }
  }, {
    key: "_doCleanupSourceBuffer",
    value: function _doCleanupSourceBuffer() {
      var currentTime = this.container.currentTime;
      var autoCleanupMinBackwardDuration = 60 * 3;
      var _pendingRemoveRanges = {
        video: [],
        audio: []
      };
      for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
        var type = Object.keys(this.sourceBuffers)[i];
        var sourceBuffer = this.sourceBuffers[type];
        var buffered = sourceBuffer.buffered;
        var doRemove = false;
        for (var j = 0; j < buffered.length; j++) {
          var start2 = buffered.start(j);
          var end = buffered.end(j);
          if (start2 <= currentTime && currentTime < end + 3) {
            if (currentTime - start2 >= autoCleanupMinBackwardDuration) {
              doRemove = true;
              var removeEnd = currentTime - autoCleanupMinBackwardDuration;
              _pendingRemoveRanges[type].push({ start: start2, end: removeEnd });
            }
          } else if (end < currentTime && currentTime - start2 >= autoCleanupMinBackwardDuration) {
            doRemove = true;
            _pendingRemoveRanges[type].push({ start: start2, end });
          }
        }
        if (doRemove && !sourceBuffer.updating) {
          this._doRemoveRanges(_pendingRemoveRanges);
        }
      }
    }
  }, {
    key: "_doRemoveRanges",
    value: function _doRemoveRanges(_pendingRemoveRanges) {
      for (var type in _pendingRemoveRanges) {
        if (!this.sourceBuffers[type] || this.sourceBuffers[type].updating) {
          continue;
        }
        var sb = this.sourceBuffers[type];
        var ranges = _pendingRemoveRanges[type];
        while (ranges.length && !sb.updating) {
          var range = ranges.shift();
          try {
            if (range && range.end > range.start) {
              sb.remove(range.start, range.end);
            }
          } catch (e) {
          }
        }
      }
    }
  }, {
    key: "cleanBuffers",
    value: function cleanBuffers() {
      var _this = this;
      var taskList = [];
      var _loop = function _loop2(i2) {
        var buffer = _this.sourceBuffers[Object.keys(_this.sourceBuffers)[i2]];
        var task = void 0;
        if (buffer.updating) {
          task = new Promise(function(resolve) {
            var doCleanBuffer = function doCleanBuffer2() {
              var retryTime = 3;
              var clean = function clean2() {
                if (!buffer.updating) {
                  MSE2.clearBuffer(buffer);
                  buffer.addEventListener("updateend", function() {
                    resolve();
                  });
                } else if (retryTime > 0) {
                  setTimeout(clean2, 200);
                  retryTime--;
                } else {
                  resolve();
                }
              };
              setTimeout(clean, 200);
              buffer.removeEventListener("updateend", doCleanBuffer2);
            };
            buffer.addEventListener("updateend", doCleanBuffer);
          });
        } else {
          task = new Promise(function(resolve) {
            MSE2.clearBuffer(buffer);
            buffer.addEventListener("updateend", function() {
              resolve();
            });
          });
        }
        taskList.push(task);
      };
      for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
        _loop(i);
      }
      return Promise.all(taskList);
    }
  }, {
    key: "removeBuffers",
    value: function removeBuffers() {
      var _this2 = this;
      var taskList = [];
      var _loop2 = function _loop22(i2) {
        var buffer = _this2.sourceBuffers[Object.keys(_this2.sourceBuffers)[i2]];
        buffer.removeEventListener("updateend", _this2.onUpdateEnd);
        var task = void 0;
        if (buffer.updating) {
          task = new Promise(function(resolve) {
            var doCleanBuffer = function doCleanBuffer2() {
              var retryTime = 3;
              var clean = function clean2() {
                if (!buffer.updating) {
                  MSE2.clearBuffer(buffer);
                  buffer.addEventListener("updateend", function() {
                    resolve();
                  });
                } else if (retryTime > 0) {
                  setTimeout(clean2, 200);
                  retryTime--;
                } else {
                  resolve();
                }
              };
              setTimeout(clean, 200);
              buffer.removeEventListener("updateend", doCleanBuffer2);
            };
            buffer.addEventListener("updateend", doCleanBuffer);
          });
        } else {
          task = new Promise(function(resolve) {
            MSE2.clearBuffer(buffer);
            buffer.addEventListener("updateend", function() {
              resolve();
            });
          });
        }
        taskList.push(task);
      };
      for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {
        _loop2(i);
      }
      return Promise.all(taskList);
    }
  }, {
    key: "destroy",
    value: function destroy() {
      var _this3 = this;
      if (!this.container)
        return Promise.resolve();
      this.container.removeEventListener("timeupdate", this.onTimeUpdate);
      this.container.removeEventListener("waiting", this.onWaiting);
      this.mediaSource.removeEventListener("sourceopen", this.onSourceOpen);
      return this.removeBuffers().then(function() {
        var sources = Object.keys(_this3.sourceBuffers);
        for (var i = 0; i < sources.length; i++) {
          var _buffer = _this3.sourceBuffers[sources[i]];
          delete _this3.sourceBuffers[sources[i]];
          if (_this3.mediaSource.readyState === "open") {
            _this3.mediaSource.removeSourceBuffer(_buffer);
          }
        }
        _this3.endOfStream();
        try {
          window.URL.revokeObjectURL(_this3.url);
        } catch (e) {
        }
        _this3.url = null;
        _this3.configs = {};
        _this3.container = null;
        _this3.mediaSource = null;
        _this3.sourceBuffers = {};
        _this3.preloadTime = 1;
        _this3.onSourceOpen = null;
        _this3.onTimeUpdate = null;
        _this3.onUpdateEnd = null;
        _this3.onWaiting = null;
        _this3.noaudio = void 0;
        _this3.novideo = void 0;
      });
    }
  }, {
    key: "sourceBufferLen",
    get: function get5() {
      if (!this._context.mediaInfo) {
        if (this.noaudio || this.novideo)
          return 1;
        return 2;
      }
      return (!!this._context.mediaInfo.hasVideo && !this.novideo) + (!!this._context.mediaInfo.hasAudio && !this.noaudio);
    }
  }, {
    key: "url",
    set: function set2(val) {
      this._url = val;
    },
    get: function get5() {
      if (!this._url) {
        try {
          this._url = window.URL.createObjectURL(this.mediaSource);
        } catch (e) {
        }
      }
      return this._url;
    }
  }], [{
    key: "clearBuffer",
    value: function clearBuffer(buffer) {
      try {
        var buffered = buffer.buffered;
        var bEnd = 0.1;
        for (var i = 0, len = buffered.length; i < len; i++) {
          bEnd = buffered.end(i);
        }
        buffer.remove(0, bEnd);
      } catch (e) {
      }
    }
  }]);
  return MSE2;
}();
var Mse = MSE;
var _createClass$u = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$u(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Speed = function() {
  function Speed2() {
    _classCallCheck$u(this, Speed2);
    this._firstCheckpoint = 0;
    this._lastCheckpoint = 0;
    this._intervalBytes = 0;
    this._lastSamplingBytes = 0;
    this._now = Date.now;
  }
  _createClass$u(Speed2, [{
    key: "reset",
    value: function reset() {
      this._firstCheckpoint = this._lastCheckpoint = 0;
      this._intervalBytes = 0;
      this._lastSamplingBytes = 0;
    }
  }, {
    key: "addBytes",
    value: function addBytes(bytes) {
      var duration = this._now() - this._lastCheckpoint;
      if (this._firstCheckpoint === 0) {
        this._firstCheckpoint = this._now();
        this._lastCheckpoint = this._firstCheckpoint;
        this._intervalBytes += bytes;
      } else if (duration < 5e3) {
        this._intervalBytes += bytes;
      } else {
        this._lastSamplingBytes = this._intervalBytes / (duration / 1e3);
        this._intervalBytes = bytes;
        this._lastCheckpoint = this._now();
      }
    }
  }, {
    key: "currentKBps",
    get: function get5() {
      this.addBytes(0);
      var durationSeconds = (this._now() - this._lastCheckpoint) / 1e3;
      if (durationSeconds === 0)
        durationSeconds = 1;
      return this._intervalBytes / durationSeconds / 1024;
    }
  }, {
    key: "lastSamplingKBps",
    get: function get5() {
      this.addBytes(0);
      if (this._lastSamplingBytes !== 0) {
        return this._lastSamplingBytes / 1024;
      } else {
        if (this._now() - this._lastCheckpoint >= 500) {
          return this.currentKBps;
        } else {
          return 0;
        }
      }
    }
  }]);
  return Speed2;
}();
var Speed$1 = Speed;
var _typeof$1 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
  return typeof obj;
} : function(obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var _createClass$t = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$t(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var LOADER_EVENTS$3 = EVENTS.LOADER_EVENTS;
var READ_STREAM = 0;
var READ_TEXT = 1;
var READ_JSON = 2;
var READ_BUFFER = 3;
var FetchLoader = function() {
  function FetchLoader2(configs) {
    _classCallCheck$t(this, FetchLoader2);
    this.configs = Object.assign({}, configs);
    this.url = null;
    this.status = 0;
    this.error = null;
    this._reader = null;
    this._canceled = false;
    this._destroyed = false;
    this.readtype = this.configs.readtype;
    this.buffer = this.configs.buffer || "LOADER_BUFFER";
    this._loaderTaskNo = 0;
    this._ttfb = 0;
    this._speed = new Speed$1();
    if (window.AbortController) {
      this.abortControllerEnabled = true;
    }
  }
  _createClass$t(FetchLoader2, [{
    key: "init",
    value: function init() {
      this.on(LOADER_EVENTS$3.LADER_START, this.load.bind(this));
    }
  }, {
    key: "fetch",
    value: function(_fetch) {
      function fetch2(_x, _x2, _x3) {
        return _fetch.apply(this, arguments);
      }
      fetch2.toString = function() {
        return _fetch.toString();
      };
      return fetch2;
    }(function(url, params, timeout) {
      var _this2 = this;
      var timer = null;
      if (this.abortControllerEnabled) {
        this.abortController = new window.AbortController();
      }
      Object.assign(params, { signal: this.abortController ? this.abortController.signal : void 0 });
      var start2 = new Date().getTime();
      return Promise.race([fetch(url, params), new Promise(function(resolve, reject) {
        timer = setTimeout(function() {
          reject({
            code: 999,
            message: "fetch timeout"
          });
          if (_this2.abortController) {
            _this2.abortController.abort();
          }
        }, timeout || 1e4);
      })]).then(function(response) {
        if (timer) {
          clearTimeout(timer);
          timer = null;
        }
        var end = new Date().getTime();
        _this2.emit(LOADER_EVENTS$3.LOADER_TTFB, {
          start: start2,
          end,
          elapsed: end - start2
        });
        return response;
      });
    })
  }, {
    key: "internalLoad",
    value: function internalLoad(url, params, retryTimes, totalRetry) {
      var _this3 = this;
      var delayTime = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : 0;
      var loadTimeout = arguments[5];
      if (this._destroyed)
        return;
      this.loading = true;
      return this.fetch(this.url, params, loadTimeout).then(function(response) {
        !_this3._destroyed && _this3.emit(LOADER_EVENTS$3.LOADER_RESPONSE_HEADERS, _this3.TAG, response.headers);
        if (response.ok) {
          _this3.status = response.status;
          Promise.resolve().then(function() {
            _this3._onFetchResponse(response);
          });
          return Promise.resolve(response);
        }
        if (retryTimes-- > 0) {
          _this3._retryTimer = setTimeout(function() {
            _this3.emit(LOADER_EVENTS$3.LOADER_RETRY, _this3.TAG, {
              response,
              reason: "response not ok",
              retryTime: totalRetry - retryTimes
            });
            return _this3.internalLoad(url, params, retryTimes, totalRetry, delayTime, loadTimeout);
          }, delayTime);
        } else {
          _this3.loading = false;
          _this3.emit(LOADER_EVENTS$3.LOADER_ERROR, _this3.TAG, {
            code: response.status || 21,
            message: response.status + " (" + response.statusText + ")"
          });
        }
      }).catch(function(error2) {
        if (_this3._destroyed) {
          _this3.loading = false;
          return;
        }
        if (retryTimes-- > 0) {
          _this3._retryTimer = setTimeout(function() {
            _this3.emit(LOADER_EVENTS$3.LOADER_RETRY, _this3.TAG, {
              error: error2,
              reason: "fetch error",
              retryTime: totalRetry - retryTimes
            });
            return _this3.internalLoad(url, params, retryTimes, totalRetry, delayTime, loadTimeout);
          }, delayTime);
        } else {
          _this3.loading = false;
          if (error2 && error2.name === "AbortError") {
            return;
          }
          _this3.emit(LOADER_EVENTS$3.LOADER_ERROR, _this3.TAG, Object.assign({ code: 21 }, error2));
        }
      });
    }
  }, {
    key: "load",
    value: function load(url) {
      var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
      var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, retryCount = _ref.retryCount, retryDelay = _ref.retryDelay, loadTimeout = _ref.loadTimeout;
      retryCount = retryCount === void 0 ? 3 : retryCount;
      this.url = url;
      this._canceled = false;
      var params = this.getParams(opts);
      return this.internalLoad(url, params, retryCount, retryCount, retryDelay, loadTimeout);
    }
  }, {
    key: "_onFetchResponse",
    value: function _onFetchResponse(response) {
      var _this4 = this;
      var _this = this;
      var buffer = this._context.getInstance(this.buffer);
      this._loaderTaskNo++;
      var taskno = this._loaderTaskNo;
      if (response.ok === true) {
        switch (this.readtype) {
          case READ_JSON:
            response.json().then(function(data) {
              _this.loading = false;
              if (!_this._canceled && !_this._destroyed) {
                if (buffer) {
                  buffer.push(data);
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, buffer);
                } else {
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, data);
                }
              }
            });
            break;
          case READ_TEXT:
            response.text().then(function(data) {
              _this.loading = false;
              if (!_this._canceled && !_this._destroyed) {
                if (buffer) {
                  buffer.push(data);
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, buffer);
                } else {
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, data);
                }
              }
            });
            break;
          case READ_BUFFER:
            response.arrayBuffer().then(function(data) {
              _this.loading = false;
              if (!_this._canceled && !_this._destroyed) {
                if (buffer) {
                  buffer.push(new Uint8Array(data));
                  _this4._speed.addBytes(data.byteLength);
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, buffer);
                } else {
                  _this.emit(LOADER_EVENTS$3.LOADER_COMPLETE, data);
                }
              }
            }).catch(function() {
            });
            break;
          case READ_STREAM:
          default:
            return this._onReader(response.body.getReader(), taskno);
        }
      }
    }
  }, {
    key: "_onReader",
    value: function _onReader(reader, taskno) {
      var _this5 = this;
      var buffer = this._context.getInstance(this.buffer);
      if (!buffer && this._reader || this._destroyed) {
        try {
          this._reader.cancel();
        } catch (e) {
        }
      }
      this._reader = reader;
      if (this.loading === false) {
        return;
      }
      this._noDataTimer = setTimeout(function() {
        if (_this5.loading === false)
          return;
        _this5.emit(LOADER_EVENTS$3.LOADER_COMPLETE);
      }, 3e3);
      this._reader && this._reader.read().then(function(val) {
        clearTimeout(_this5._noDataTimer);
        if (_this5._canceled || _this5._destroyed) {
          if (_this5._reader) {
            try {
              _this5._reader.cancel();
            } catch (e) {
            }
          }
          return;
        }
        if (val.done) {
          _this5.loading = false;
          _this5.status = 0;
          Promise.resolve().then(function() {
            _this5.emit(LOADER_EVENTS$3.LOADER_COMPLETE, buffer);
          });
          return;
        }
        buffer.push(val.value);
        _this5._speed.addBytes(val.value.byteLength);
        Promise.resolve().then(function() {
          _this5.emit(LOADER_EVENTS$3.LOADER_DATALOADED, buffer);
        });
        return _this5._onReader(reader, taskno);
      }).catch(function(error2) {
        clearTimeout(_this5._noDataTimer);
        _this5.loading = false;
        if (error2 && error2.name === "AbortError")
          return;
        _this5.emit(LOADER_EVENTS$3.LOADER_ERROR, _this5.TAG, error2);
      });
    }
  }, {
    key: "getParams",
    value: function getParams(opts) {
      var options = Object.assign({}, opts);
      var headers = new Headers();
      var params = {
        method: "GET",
        headers,
        mode: "cors",
        cache: "default"
      };
      if (_typeof$1(this.configs.headers) === "object") {
        var configHeaders = this.configs.headers;
        for (var key in configHeaders) {
          if (configHeaders.hasOwnProperty(key)) {
            headers.append(key, configHeaders[key]);
          }
        }
      }
      if (_typeof$1(options.headers) === "object") {
        var optHeaders = options.headers;
        for (var _key in optHeaders) {
          if (optHeaders.hasOwnProperty(_key)) {
            headers.append(_key, optHeaders[_key]);
          }
        }
      }
      if (options.cors === false) {
        params.mode = "same-origin";
      }
      if (options.withCredentials) {
        params.credentials = "include";
      }
      return params;
    }
  }, {
    key: "cancel",
    value: function cancel() {
      if (this._reader) {
        try {
          this._reader.cancel();
        } catch (e) {
        }
        this._reader = null;
        this.loading = false;
      }
      clearTimeout(this._noDataTimer);
      this._canceled = true;
      if (this.abortController) {
        this.abortController.abort();
      }
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this._destroyed = true;
      clearTimeout(this._retryTimer);
      clearTimeout(this._noDataTimer);
      this.cancel();
      this._speed.reset();
    }
  }, {
    key: "currentSpeed",
    get: function get5() {
      return this._speed.lastSamplingKBps;
    }
  }], [{
    key: "isSupported",
    value: function isSupported() {
      return !!window.fetch;
    }
  }, {
    key: "type",
    get: function get5() {
      return "loader";
    }
  }]);
  return FetchLoader2;
}();
var FetchLoader$1 = FetchLoader;
var _createClass$s = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _toConsumableArray$1(arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
      arr2[i] = arr[i];
    }
    return arr2;
  } else {
    return Array.from(arr);
  }
}
function _classCallCheck$s(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var DevLogger = function() {
  function DevLogger2() {
    var _this = this;
    _classCallCheck$s(this, DevLogger2);
    try {
      var matched = /xgd=(\d)/.exec(document.cookie);
      this._status = !!matched;
      this._level = matched && matched[1];
    } catch (e) {
      this._status = false;
    }
    ["group", "groupEnd", "log", "warn", "error"].forEach(function(funName) {
      _this[funName] = function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) {
        var _console;
        if (!_this._status)
          return;
        var tagName = arg1;
        var args = [arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10].filter(function(x) {
          return x !== void 0;
        });
        (_console = console)[funName].apply(_console, ["[" + tagName + "]:"].concat(_toConsumableArray$1(args)));
      };
    });
  }
  _createClass$s(DevLogger2, [{
    key: "enable",
    get: function get5() {
      return this._status;
    }
  }, {
    key: "long",
    get: function get5() {
      return this._level === "2";
    }
  }]);
  return DevLogger2;
}();
var logger = new DevLogger();
var _createClass$r = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$r(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var LOADER_EVENTS$2 = EVENTS.LOADER_EVENTS;
var REMUX_EVENTS$5 = EVENTS.REMUX_EVENTS;
var DEMUX_EVENTS$3 = EVENTS.DEMUX_EVENTS;
var HLS_EVENTS$2 = EVENTS.HLS_EVENTS;
var CRYTO_EVENTS$2 = EVENTS.CRYTO_EVENTS;
var MSE_EVENTS$2 = EVENTS.MSE_EVENTS;
var HLS_ERROR$2 = "HLS_ERROR";
var MASTER_PLAYLIST_REGEX$1 = /#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g;
var HlsLiveController$1 = function() {
  function HlsLiveController2(configs) {
    _classCallCheck$r(this, HlsLiveController2);
    this.configs = Object.assign({}, configs);
    this.url = "";
    this.sequence = 0;
    this._playlist = null;
    this.retrytimes = this.configs.retrytimes || 3;
    this.preloadTime = this.configs.preloadTime;
    this.container = this.configs.container;
    this._m3u8lasttime = 0;
    this._timmer = setInterval(this._checkStatus.bind(this), 300);
    this._lastCheck = 0;
    this.m3u8Text = null;
  }
  _createClass$r(HlsLiveController2, [{
    key: "init",
    value: function init() {
      var _player$hlsOps = this._player.hlsOps, XgBuffer2 = _player$hlsOps.XgBuffer, Tracks2 = _player$hlsOps.Tracks, Playlist2 = _player$hlsOps.Playlist, RemuxedBufferManager2 = _player$hlsOps.RemuxedBufferManager, Compatibility2 = _player$hlsOps.Compatibility, FetchLoader2 = _player$hlsOps.FetchLoader, TsDemuxer2 = _player$hlsOps.TsDemuxer, Mp4Remuxer2 = _player$hlsOps.Mp4Remuxer, Mse2 = _player$hlsOps.Mse;
      this._context.registry("M3U8_BUFFER", XgBuffer2);
      this._context.registry("TS_BUFFER", XgBuffer2);
      this._context.registry("TRACKS", Tracks2);
      this._playlist = this._context.registry("PLAYLIST", Playlist2)({ autoclear: true });
      this._context.registry("PRE_SOURCE_BUFFER", RemuxedBufferManager2);
      this._context.registry("COMPATIBILITY", Compatibility2);
      this._m3u8loader = this._context.registry("M3U8_LOADER", FetchLoader2)({ buffer: "M3U8_BUFFER", readtype: 1 });
      this._tsloader = this._context.registry("TS_LOADER", FetchLoader2)({ buffer: "TS_BUFFER", readtype: 3 });
      this._context.registry("TS_DEMUXER", TsDemuxer2)({ inputbuffer: "TS_BUFFER" });
      this._context.registry("MP4_REMUXER", Mp4Remuxer2);
      this.mse = this._context.registry("MSE", Mse2)({ container: this.container });
      this.initEvents();
    }
  }, {
    key: "initEvents",
    value: function initEvents() {
      this.on(LOADER_EVENTS$2.LOADER_COMPLETE, this._onLoadComplete.bind(this));
      this.on(LOADER_EVENTS$2.LOADER_RETRY, this._handleFetchRetry.bind(this));
      this.on(REMUX_EVENTS$5.INIT_SEGMENT, this.mse.addSourceBuffers.bind(this.mse));
      this.on(REMUX_EVENTS$5.MEDIA_SEGMENT, this.mse.doAppend.bind(this.mse));
      this.on(DEMUX_EVENTS$3.METADATA_PARSED, this._onMetadataParsed.bind(this));
      this.on(DEMUX_EVENTS$3.SEI_PARSED, this._handleSEIParsed.bind(this));
      this.on(DEMUX_EVENTS$3.DEMUX_COMPLETE, this._onDemuxComplete.bind(this));
      this.on(LOADER_EVENTS$2.LOADER_ERROR, this._onLoadError.bind(this));
      this.on(DEMUX_EVENTS$3.DEMUX_ERROR, this._onDemuxError.bind(this));
      this.on(REMUX_EVENTS$5.REMUX_ERROR, this._onRemuxError.bind(this));
      this.on(MSE_EVENTS$2.MSE_ERROR, this._handleMseError.bind(this));
    }
  }, {
    key: "_onError",
    value: function _onError(type, mod, err, fatal) {
      var error2 = {
        code: err.code,
        errorType: type,
        errorDetails: "[" + mod + "]: " + (err ? err.message : ""),
        errorFatal: fatal
      };
      this._player.emit(HLS_ERROR$2, error2);
    }
  }, {
    key: "_onDemuxComplete",
    value: function _onDemuxComplete() {
      this.emit(REMUX_EVENTS$5.REMUX_MEDIA, "ts");
    }
  }, {
    key: "_onMetadataParsed",
    value: function _onMetadataParsed(type) {
      if (type === "video") {
        this._context.mediaInfo.hasVideo = true;
      }
      if (type === "audio") {
        this._context.mediaInfo.hasAudio = true;
      }
      this.emit(REMUX_EVENTS$5.REMUX_METADATA, type);
    }
  }, {
    key: "_onLoadError",
    value: function _onLoadError(loader, error2) {
      if (!this._tsloader.loading && !this._m3u8loader.loading && this.retrytimes >= 1) {
        this.retrytimes--;
        this._onError(LOADER_EVENTS$2.LOADER_ERROR, loader, error2, false);
      } else if (this.retrytimes <= 1) {
        this._player.emit("error", {
          code: error2.code,
          errorType: "network",
          ex: "[" + loader + "]: " + error2.message,
          errd: {}
        });
        this._onError(LOADER_EVENTS$2.LOADER_ERROR, loader, error2, true);
        this.emit(HLS_EVENTS$2.RETRY_TIME_EXCEEDED);
        this.mse.endOfStream();
      }
    }
  }, {
    key: "_onDemuxError",
    value: function _onDemuxError(mod, error2, fatal) {
      if (fatal === void 0) {
        fatal = true;
      }
      this._player.emit("error", {
        code: error2.code,
        errorType: "network",
        ex: "[" + mod + "]: " + (error2 ? error2.message : ""),
        errd: {}
      });
      this._onError(LOADER_EVENTS$2.LOADER_ERROR, mod, error2, fatal);
    }
  }, {
    key: "_onRemuxError",
    value: function _onRemuxError(mod, error2, fatal) {
      if (fatal === void 0) {
        fatal = true;
      }
      this._player.emit("error", {
        errorType: "parse",
        ex: "[" + mod + "]: " + error2.message,
        errd: {}
      });
      this._onError(REMUX_EVENTS$5.REMUX_ERROR, mod, error2, fatal);
    }
  }, {
    key: "_handleMseError",
    value: function _handleMseError(tag, err, fatal) {
      if (fatal === void 0) {
        fatal = false;
      }
      this._player.emit("error", {
        errorType: "format",
        ex: "[" + tag + "]: " + err.message,
        errd: {}
      });
      this._onError(MSE_EVENTS$2.MSE_ERROR, tag, err, fatal);
    }
  }, {
    key: "_handleSEIParsed",
    value: function _handleSEIParsed(sei) {
      this._player.emit("SEI_PARSED", sei);
    }
  }, {
    key: "_onLoadComplete",
    value: function _onLoadComplete(buffer) {
      if (buffer.TAG === "M3U8_BUFFER") {
        var mdata = void 0;
        try {
          this.m3u8Text = buffer.shift();
          var result = MASTER_PLAYLIST_REGEX$1.exec(this.m3u8Text);
          if (result && result[2]) {
            this.load(result[2]);
          } else {
            mdata = this._player.hlsOps.M3U8Parser.parse(this.m3u8Text, this.url);
          }
        } catch (error2) {
          this._onError("M3U8_PARSER_ERROR", "M3U8_PARSER", error2, false);
        }
        if (!mdata) {
          if (this.retrytimes > 0) {
            this.retrytimes--;
            this._preload();
          } else {
            this.emit(HLS_EVENTS$2.RETRY_TIME_EXCEEDED);
            this.mse.endOfStream();
          }
          return;
        }
        try {
          this._playlist.pushM3U8(mdata, true);
        } catch (error2) {
          this._onError("M3U8_PARSER_ERROR", "PLAYLIST", error2, false);
        }
        if (this._playlist.encrypt && this._playlist.encrypt.uri && !this._playlist.encrypt.key) {
          var XgBuffer2 = this._player.hlsOps.XgBuffer;
          this._context.registry("DECRYPT_BUFFER", XgBuffer2)();
          this._context.registry("KEY_BUFFER", XgBuffer2)();
          this._tsloader.buffer = "DECRYPT_BUFFER";
          this._keyLoader = this._context.registry("KEY_LOADER", FetchLoader$1)({ buffer: "KEY_BUFFER", readtype: 3 });
          var _ref = this._player.config.retry || {}, times = _ref.count, delayTime = _ref.delay;
          this.emitTo("KEY_LOADER", LOADER_EVENTS$2.LADER_START, this._playlist.encrypt.uri, {}, times, delayTime);
        } else {
          this._m3u8Loaded(mdata);
        }
      } else if (buffer.TAG === "TS_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.downloaded(this._tsloader.url, true);
        this.emit(DEMUX_EVENTS$3.DEMUX_START);
      } else if (buffer.TAG === "DECRYPT_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.downloaded(this._tsloader.url, true);
        this.emitTo("CRYPTO", CRYTO_EVENTS$2.START_DECRYPT);
      } else if (buffer.TAG === "KEY_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.encrypt.key = buffer.shift();
        this._crypto = this._context.registry("CRYPTO", Crypto$1)({
          key: this._playlist.encrypt.key,
          iv: this._playlist.encrypt.ivb,
          method: this._playlist.encrypt.method,
          inputbuffer: "DECRYPT_BUFFER",
          outputbuffer: "TS_BUFFER"
        });
        this._crypto.on(CRYTO_EVENTS$2.DECRYPTED, this._onDcripted.bind(this));
      }
    }
  }, {
    key: "_handleFetchRetry",
    value: function _handleFetchRetry(tag, info) {
      this._player.emit("retry", Object.assign({
        tag
      }, info));
    }
  }, {
    key: "_onDcripted",
    value: function _onDcripted() {
      this.emit(DEMUX_EVENTS$3.DEMUX_START);
    }
  }, {
    key: "_m3u8Loaded",
    value: function _m3u8Loaded(mdata) {
      if (!this.preloadTime) {
        this.preloadTime = this._playlist.targetduration ? this._playlist.targetduration : 5;
      }
      if (this._playlist.fragLength > 0 && this._playlist.sequence < mdata.sequence) {
        this.retrytimes = this.configs.retrytimes || 3;
      } else {
        if (this.retrytimes > 0) {
          this.retrytimes--;
          this._preload();
        } else {
          this.emit(HLS_EVENTS$2.RETRY_TIME_EXCEEDED);
          this.mse.endOfStream();
        }
      }
    }
  }, {
    key: "_checkStatus",
    value: function _checkStatus() {
      if (this.retrytimes < 1 && Date.now() - this._lastCheck < 4e3) {
        return;
      } else if (this.retrytimes < 1) {
        clearInterval(this._timmer);
      }
      this._lastCheck = new Date().getTime();
      if (this.container.buffered.length < 1) {
        this._preload();
      } else {
        var currentTime = this.container.currentTime;
        var bufferstart = this.container.buffered.start(this.container.buffered.length - 1);
        if (this.container.readyState <= 2) {
          if (currentTime < bufferstart) {
            this.container.currentTime = bufferstart;
            currentTime = bufferstart;
          } else {
            this._preload();
          }
        }
        var bufferend = this.container.buffered.end(this.container.buffered.length - 1);
        if (currentTime < bufferend - this.preloadTime * 2) {
          this.container.currentTime = bufferend - this.preloadTime;
        }
        if (currentTime > bufferend - this.preloadTime) {
          this._preload();
        }
      }
    }
  }, {
    key: "_preload",
    value: function _preload() {
      if (this._tsloader.loading || this._m3u8loader.loading) {
        return;
      }
      var frag = this._playlist.getTs();
      var _ref2 = this._player.config.retry || {}, times = _ref2.count, delayTime = _ref2.delay;
      if (frag && !frag.downloaded && !frag.downloading) {
        this._playlist.downloading(frag.url, true);
        this.emitTo("TS_LOADER", LOADER_EVENTS$2.LADER_START, frag.url, {}, times, delayTime);
      } else {
        var preloadTime = this.preloadTime ? this.preloadTime : 0;
        var current = new Date().getTime();
        if ((!frag || frag.downloaded) && (current - this._m3u8lasttime) / 1e3 > preloadTime) {
          this._m3u8lasttime = current;
          this.emitTo("M3U8_LOADER", LOADER_EVENTS$2.LADER_START, this.url, {}, times, delayTime);
        }
      }
    }
  }, {
    key: "load",
    value: function load(url) {
      this.url = url;
      this._preload();
    }
  }, {
    key: "destroy",
    value: function destroy() {
      clearInterval(this._timmer);
      this.off(LOADER_EVENTS$2.LOADER_COMPLETE, this._onLoadComplete);
      this.off(REMUX_EVENTS$5.INIT_SEGMENT, this.mse.addSourceBuffers);
      this.off(REMUX_EVENTS$5.MEDIA_SEGMENT, this.mse.doAppend);
      this.off(DEMUX_EVENTS$3.METADATA_PARSED, this._onMetadataParsed);
      this.off(DEMUX_EVENTS$3.DEMUX_COMPLETE, this._onDemuxComplete);
      this.mse = null;
      this.m3u8Text = null;
    }
  }]);
  return HlsLiveController2;
}();
var _createClass$q = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$q(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var AAC = function() {
  function AAC2() {
    _classCallCheck$q(this, AAC2);
  }
  _createClass$q(AAC2, null, [{
    key: "getSilentFrame",
    value: function getSilentFrame(codec, channelCount) {
      if (codec === "mp4a.40.2") {
        if (channelCount === 1) {
          return new Uint8Array([0, 200, 0, 128, 35, 128]);
        } else if (channelCount === 2) {
          return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]);
        } else if (channelCount === 3) {
          return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]);
        } else if (channelCount === 4) {
          return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]);
        } else if (channelCount === 5) {
          return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]);
        } else if (channelCount === 6) {
          return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]);
        }
      } else {
        if (channelCount === 1) {
          return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
        } else if (channelCount === 2) {
          return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
        } else if (channelCount === 3) {
          return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]);
        }
      }
      return null;
    }
  }]);
  return AAC2;
}();
var AAC$1 = AAC;
var _createClass$p = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$p(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var ADTS = function() {
  function ADTS2() {
    _classCallCheck$p(this, ADTS2);
  }
  _createClass$p(ADTS2, null, [{
    key: "isHeader",
    value: function isHeader(data, offset) {
      if (offset + 1 < data.length && ADTS2.isHeaderPattern(data, offset)) {
        return true;
      }
      return false;
    }
  }, {
    key: "getFrameDuration",
    value: function getFrameDuration(samplerate) {
      return 1024 * 9e4 / samplerate;
    }
  }, {
    key: "isHeaderPattern",
    value: function isHeaderPattern(data, offset) {
      return data[offset] === 255 && (data[offset + 1] & 246) === 240;
    }
  }, {
    key: "getHeaderLength",
    value: function getHeaderLength(data, offset) {
      return data[offset + 1] & 1 ? 7 : 9;
    }
  }, {
    key: "getFullFrameLength",
    value: function getFullFrameLength(data, offset) {
      return (data[offset + 3] & 3) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 224) >>> 5;
    }
  }, {
    key: "parseFrameHeader",
    value: function parseFrameHeader(data, offset, pts, frameIndex, frameDuration) {
      var headerLength = void 0, frameLength = void 0, stamp = void 0;
      var length = data.length;
      headerLength = ADTS2.getHeaderLength(data, offset);
      frameLength = ADTS2.getFullFrameLength(data, offset);
      frameLength -= headerLength;
      if (frameLength > 0 && offset + headerLength + frameLength <= length) {
        stamp = pts + frameIndex * frameDuration;
        return { headerLength, frameLength, stamp };
      }
      return void 0;
    }
  }, {
    key: "appendFrame",
    value: function appendFrame(sampleRate, data, offset, pts, frameIndex) {
      var frameDuration = ADTS2.getFrameDuration(sampleRate);
      var header = ADTS2.parseFrameHeader(data, offset, pts, frameIndex, frameDuration);
      if (header) {
        var stamp = header.stamp;
        var headerLength = header.headerLength;
        var frameLength = header.frameLength;
        var aacSample = {
          unit: data.subarray(offset + headerLength, offset + headerLength + frameLength),
          pts: stamp,
          dts: stamp
        };
        return { sample: aacSample, length: frameLength + headerLength };
      }
      return void 0;
    }
  }]);
  return ADTS2;
}();
var ADTS$1 = ADTS;
var _createClass$o = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$o(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Golomb$2 = function() {
  function Golomb2(uint8array) {
    _classCallCheck$o(this, Golomb2);
    this.TAG = "Golomb";
    this._buffer = uint8array;
    this._bufferIndex = 0;
    this._totalBytes = uint8array.byteLength;
    this._totalBits = uint8array.byteLength * 8;
    this._currentWord = 0;
    this._currentWordBitsLeft = 0;
  }
  _createClass$o(Golomb2, [{
    key: "destroy",
    value: function destroy() {
      this._buffer = null;
    }
  }, {
    key: "_fillCurrentWord",
    value: function _fillCurrentWord() {
      var bufferBytesLeft = this._totalBytes - this._bufferIndex;
      var bytesRead = Math.min(4, bufferBytesLeft);
      var word = new Uint8Array(4);
      word.set(this._buffer.subarray(this._bufferIndex, this._bufferIndex + bytesRead));
      this._currentWord = new DataView(word.buffer).getUint32(0);
      this._bufferIndex += bytesRead;
      this._currentWordBitsLeft = bytesRead * 8;
    }
  }, {
    key: "readBits",
    value: function readBits(size) {
      var bits = Math.min(this._currentWordBitsLeft, size);
      var valu = this._currentWord >>> 32 - bits;
      if (size > 32) {
        throw new Error("Cannot read more than 32 bits at a time");
      }
      this._currentWordBitsLeft -= bits;
      if (this._currentWordBitsLeft > 0) {
        this._currentWord <<= bits;
      } else if (this._totalBytes - this._bufferIndex > 0) {
        this._fillCurrentWord();
      }
      bits = size - bits;
      if (bits > 0 && this._currentWordBitsLeft) {
        return valu << bits | this.readBits(bits);
      } else {
        return valu;
      }
    }
  }, {
    key: "readBool",
    value: function readBool() {
      return this.readBits(1) === 1;
    }
  }, {
    key: "readByte",
    value: function readByte() {
      return this.readBits(8);
    }
  }, {
    key: "_skipLeadingZero",
    value: function _skipLeadingZero() {
      var zeroCount = void 0;
      for (zeroCount = 0; zeroCount < this._currentWordBitsLeft; zeroCount++) {
        if ((this._currentWord & 2147483648 >>> zeroCount) !== 0) {
          this._currentWord <<= zeroCount;
          this._currentWordBitsLeft -= zeroCount;
          return zeroCount;
        }
      }
      this._fillCurrentWord();
      return zeroCount + this._skipLeadingZero();
    }
  }, {
    key: "readUEG",
    value: function readUEG() {
      var leadingZeros = this._skipLeadingZero();
      return this.readBits(leadingZeros + 1) - 1;
    }
  }, {
    key: "readSEG",
    value: function readSEG() {
      var value = this.readUEG();
      if (value & 1) {
        return value + 1 >>> 1;
      } else {
        return -1 * (value >>> 1);
      }
    }
  }, {
    key: "readSliceType",
    value: function readSliceType() {
      this.readByte();
      this.readUEG();
      return this.readUEG();
    }
  }]);
  return Golomb2;
}();
var Golomb$3 = Golomb$2;
var _createClass$n = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$n(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var SPSParser$1 = function() {
  function SPSParser2() {
    _classCallCheck$n(this, SPSParser2);
  }
  _createClass$n(SPSParser2, null, [{
    key: "_ebsp2rbsp",
    value: function _ebsp2rbsp(uint8array) {
      var src = uint8array;
      var srcLength = src.byteLength;
      var dst = new Uint8Array(srcLength);
      var dstIdx = 0;
      for (var i = 0; i < srcLength; i++) {
        if (i >= 2) {
          if (src[i] === 3 && src[i - 1] === 0 && src[i - 2] === 0) {
            continue;
          }
        }
        dst[dstIdx] = src[i];
        dstIdx++;
      }
      return new Uint8Array(dst.buffer, 0, dstIdx);
    }
  }, {
    key: "parseSPS",
    value: function parseSPS(uint8array) {
      var rbsp = SPSParser2._ebsp2rbsp(uint8array);
      var gb = new Golomb$3(rbsp);
      gb.readByte();
      var profileIdc = gb.readByte();
      gb.readByte();
      var levelIdc = gb.readByte();
      gb.readUEG();
      var profile_string = SPSParser2.getProfileString(profileIdc);
      var level_string = SPSParser2.getLevelString(levelIdc);
      var chroma_format_idc = 1;
      var chroma_format = 420;
      var chroma_format_table = [0, 420, 422, 444];
      var bit_depth = 8;
      if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128 || profileIdc === 138 || profileIdc === 144) {
        chroma_format_idc = gb.readUEG();
        if (chroma_format_idc === 3) {
          gb.readBits(1);
        }
        if (chroma_format_idc <= 3) {
          chroma_format = chroma_format_table[chroma_format_idc];
        }
        bit_depth = gb.readUEG() + 8;
        gb.readUEG();
        gb.readBits(1);
        if (gb.readBool()) {
          var scaling_list_count = chroma_format_idc !== 3 ? 8 : 12;
          for (var i = 0; i < scaling_list_count; i++) {
            if (gb.readBool()) {
              if (i < 6) {
                SPSParser2._skipScalingList(gb, 16);
              } else {
                SPSParser2._skipScalingList(gb, 64);
              }
            }
          }
        }
      }
      gb.readUEG();
      var pic_order_cnt_type = gb.readUEG();
      if (pic_order_cnt_type === 0) {
        gb.readUEG();
      } else if (pic_order_cnt_type === 1) {
        gb.readBits(1);
        gb.readSEG();
        gb.readSEG();
        var num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();
        for (var _i = 0; _i < num_ref_frames_in_pic_order_cnt_cycle; _i++) {
          gb.readSEG();
        }
      }
      gb.readUEG();
      gb.readBits(1);
      var pic_width_in_mbs_minus1 = gb.readUEG();
      var pic_height_in_map_units_minus1 = gb.readUEG();
      var frame_mbs_only_flag = gb.readBits(1);
      if (frame_mbs_only_flag === 0) {
        gb.readBits(1);
      }
      gb.readBits(1);
      var frame_crop_left_offset = 0;
      var frame_crop_right_offset = 0;
      var frame_crop_top_offset = 0;
      var frame_crop_bottom_offset = 0;
      var frame_cropping_flag = gb.readBool();
      if (frame_cropping_flag) {
        frame_crop_left_offset = gb.readUEG();
        frame_crop_right_offset = gb.readUEG();
        frame_crop_top_offset = gb.readUEG();
        frame_crop_bottom_offset = gb.readUEG();
      }
      var par_width = 1;
      var par_height = 1;
      var fps = 0;
      var fps_fixed = true;
      var fps_num = 0;
      var fps_den = 0;
      var vui_parameters_present_flag = gb.readBool();
      if (vui_parameters_present_flag) {
        if (gb.readBool()) {
          var aspect_ratio_idc = gb.readByte();
          var par_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];
          var par_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];
          if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {
            par_width = par_w_table[aspect_ratio_idc - 1];
            par_height = par_h_table[aspect_ratio_idc - 1];
          } else if (aspect_ratio_idc === 255) {
            par_width = gb.readByte() << 8 | gb.readByte();
            par_height = gb.readByte() << 8 | gb.readByte();
          }
        }
        if (gb.readBool()) {
          gb.readBool();
        }
        if (gb.readBool()) {
          gb.readBits(4);
          if (gb.readBool()) {
            gb.readBits(24);
          }
        }
        if (gb.readBool()) {
          gb.readUEG();
          gb.readUEG();
        }
        if (gb.readBool()) {
          var num_units_in_tick = gb.readBits(32);
          var time_scale = gb.readBits(32);
          fps_fixed = gb.readBool();
          fps_num = time_scale;
          fps_den = num_units_in_tick * 2;
          fps = fps_num / fps_den;
        }
      }
      var parScale = 1;
      if (par_width !== 1 || par_height !== 1) {
        parScale = par_width / par_height;
      }
      var crop_unit_x = 0;
      var crop_unit_y = 0;
      if (chroma_format_idc === 0) {
        crop_unit_x = 1;
        crop_unit_y = 2 - frame_mbs_only_flag;
      } else {
        var sub_wc = chroma_format_idc === 3 ? 1 : 2;
        var sub_hc = chroma_format_idc === 1 ? 2 : 1;
        crop_unit_x = sub_wc;
        crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);
      }
      var codec_width = (pic_width_in_mbs_minus1 + 1) * 16;
      var codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);
      codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;
      codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;
      var present_width = Math.ceil(codec_width * parScale);
      gb.destroy();
      gb = null;
      return {
        profile_string,
        level_string,
        bit_depth,
        chroma_format,
        chroma_format_string: SPSParser2.getChromaFormatString(chroma_format),
        frame_rate: {
          fixed: fps_fixed,
          fps,
          fps_den,
          fps_num
        },
        par_ratio: {
          width: par_width,
          height: par_height
        },
        codec_size: {
          width: codec_width,
          height: codec_height
        },
        present_size: {
          width: present_width,
          height: codec_height
        }
      };
    }
  }, {
    key: "_skipScalingList",
    value: function _skipScalingList(gb, count) {
      var lastScale = 8;
      var nextScale = 8;
      var deltaScale = 0;
      for (var i = 0; i < count; i++) {
        if (nextScale !== 0) {
          deltaScale = gb.readSEG();
          nextScale = (lastScale + deltaScale + 256) % 256;
        }
        lastScale = nextScale === 0 ? lastScale : nextScale;
      }
    }
  }, {
    key: "getProfileString",
    value: function getProfileString(profileIdc) {
      switch (profileIdc) {
        case 66:
          return "Baseline";
        case 77:
          return "Main";
        case 88:
          return "Extended";
        case 100:
          return "High";
        case 110:
          return "High10";
        case 122:
          return "High422";
        case 244:
          return "High444";
        default:
          return "Unknown";
      }
    }
  }, {
    key: "getLevelString",
    value: function getLevelString(levelIdc) {
      return (levelIdc / 10).toFixed(1);
    }
  }, {
    key: "getChromaFormatString",
    value: function getChromaFormatString(chroma) {
      switch (chroma) {
        case 420:
          return "4:2:0";
        case 422:
          return "4:2:2";
        case 444:
          return "4:4:4";
        default:
          return "Unknown";
      }
    }
  }, {
    key: "toVideoMeta",
    value: function toVideoMeta(spsConfig) {
      var meta = {};
      if (spsConfig && spsConfig.codec_size) {
        meta.codecWidth = spsConfig.codec_size.width;
        meta.codecHeight = spsConfig.codec_size.height;
        meta.presentWidth = spsConfig.present_size.width;
        meta.presentHeight = spsConfig.present_size.height;
      }
      meta.profile = spsConfig.profile_string;
      meta.level = spsConfig.level_string;
      meta.bitDepth = spsConfig.bit_depth;
      meta.chromaFormat = spsConfig.chroma_format;
      meta.parRatio = {
        width: spsConfig.par_ratio.width,
        height: spsConfig.par_ratio.height
      };
      meta.frameRate = spsConfig.frame_rate;
      var fpsDen = meta.frameRate.fps_den;
      var fpsNum = meta.frameRate.fps_num;
      meta.refSampleDuration = Math.floor(meta.timescale * (fpsDen / fpsNum));
      return meta;
    }
  }]);
  return SPSParser2;
}();
var SpsParser$1 = SPSParser$1;
var _createClass$m = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$m(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var RBSP$2 = function() {
  function RBSP2() {
    _classCallCheck$m(this, RBSP2);
  }
  _createClass$m(RBSP2, null, [{
    key: "EBSP2RBSP",
    value: function EBSP2RBSP(data) {
      return data.filter(function(el, idx) {
        if (idx < 2) {
          return true;
        } else {
          return !(data[idx - 2] === 0 && data[idx - 1] === 0 && el === 3);
        }
      });
    }
  }, {
    key: "EBSP2SODB",
    value: function EBSP2SODB(data) {
      var lastByte = data[data.byteLength - 1];
      if (lastByte && lastByte === 128) {
        return data.slice(0, data.byteLength - 1);
      }
      return data;
    }
  }]);
  return RBSP2;
}();
var RBSP$3 = RBSP$2;
var _createClass$l = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$l(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var u8aToString$1 = function u8aToString(data) {
  var result = "";
  for (var i = 0; i < data.byteLength; i++) {
    result += String.fromCharCode(data[i]);
  }
  return result;
};
var SEIParser$2 = function() {
  function SEIParser2() {
    _classCallCheck$l(this, SEIParser2);
  }
  _createClass$l(SEIParser2, null, [{
    key: "_resolveNalu",
    value: function _resolveNalu(data) {
      if (data.length >= 1) {
        return RBSP$3.EBSP2SODB(RBSP$3.EBSP2RBSP(data.slice(1)));
      }
      return null;
    }
  }, {
    key: "parse",
    value: function parse(data) {
      var sodb = SEIParser2._resolveNalu(data);
      var _SEIParser$switchPayl = SEIParser2.switchPayloadType(sodb), payloadType = _SEIParser$switchPayl.payloadType, offset = _SEIParser$switchPayl.offset;
      var content = sodb.slice(offset);
      switch (payloadType) {
        case 5:
          return SEIParser2.user_data_unregistered(content);
        default:
          return {
            code: payloadType,
            content
          };
      }
    }
  }, {
    key: "switchPayloadType",
    value: function switchPayloadType(data) {
      var dv = new DataView(data.buffer);
      var payloadType = 0;
      var offset = 0;
      while (dv.getUint8(offset) === 255) {
        offset++;
        payloadType += 255;
      }
      payloadType += dv.getUint8(offset++);
      return {
        payloadType,
        offset
      };
    }
  }, {
    key: "getPayloadLength",
    value: function getPayloadLength(data) {
      var dv = new DataView(data.buffer);
      var payloadLength = 0;
      var offset = 0;
      while (dv.getUint8(offset) === 255) {
        offset++;
        payloadLength += 255;
      }
      payloadLength += dv.getUint8(offset++);
      return {
        payloadLength,
        offset
      };
    }
  }, {
    key: "user_data_unregistered",
    value: function user_data_unregistered(data) {
      var _SEIParser$getPayload = SEIParser2.getPayloadLength(data), payloadLength = _SEIParser$getPayload.payloadLength, offset = _SEIParser$getPayload.offset;
      if (payloadLength < 16) {
        return {
          uuid: "",
          content: null
        };
      }
      var payload = data.slice(offset);
      var uuid = u8aToString$1(payload.slice(0, 16));
      var content = u8aToString$1(payload.slice(16, payloadLength));
      return {
        code: 5,
        uuid,
        content
      };
    }
  }]);
  return SEIParser2;
}();
var SEIParser$3 = SEIParser$2;
var _createClass$k = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$k(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Nalunit$2 = function() {
  function Nalunit2() {
    _classCallCheck$k(this, Nalunit2);
  }
  _createClass$k(Nalunit2, null, [{
    key: "getNalunits",
    value: function getNalunits(buffer) {
      if (buffer.length - buffer.position < 4) {
        return [];
      }
      var buf = buffer.dataview;
      var position = buffer.position;
      if (buf.getInt32(position) === 1 || buf.getInt16(position) === 0 && buf.getInt8(position + 2) === 1) {
        return Nalunit2.getAnnexbNals(buffer);
      } else {
        return Nalunit2.getAvccNals(buffer);
      }
    }
  }, {
    key: "getAnnexbNals",
    value: function getAnnexbNals(buffer) {
      var nals = [];
      var position = Nalunit2.getHeaderPositionAnnexB(buffer);
      var start2 = position.pos;
      var end = start2;
      while (start2 < buffer.length - 4) {
        var header = buffer.buffer.slice(start2, start2 + position.headerLength);
        if (position.pos === buffer.position) {
          buffer.skip(position.headerLength);
        }
        position = Nalunit2.getHeaderPositionAnnexB(buffer);
        end = position.pos;
        var body = new Uint8Array(buffer.buffer.slice(start2 + header.byteLength, end));
        var unit = { header, body };
        Nalunit2.analyseNal(unit);
        if (unit.type <= 9 && unit.type !== 0) {
          nals.push(unit);
        }
        buffer.skip(end - buffer.position);
        start2 = end;
      }
      return nals;
    }
  }, {
    key: "getAvccNals",
    value: function getAvccNals(buffer) {
      var nals = [];
      while (buffer.position < buffer.length - 4) {
        var length = buffer.dataview.getInt32(buffer.dataview.position);
        if (buffer.length - buffer.position >= length) {
          var header = buffer.buffer.slice(buffer.position, buffer.position + 4);
          buffer.skip(4);
          var body = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + length));
          buffer.skip(length);
          var unit = { header, body };
          Nalunit2.analyseNal(unit);
          if (unit.type <= 9 && unit.type !== 0) {
            nals.push(unit);
          }
        } else {
          break;
        }
      }
      return nals;
    }
  }, {
    key: "analyseNal",
    value: function analyseNal(unit) {
      var type = unit.body[0] & 31;
      unit.type = type;
      switch (type) {
        case 1:
          unit.ndr = true;
          break;
        case 5:
          unit.idr = true;
          break;
        case 6:
          try {
            unit.sei = SEIParser$3.parse(unit.body);
          } catch (e) {
          }
          break;
        case 7:
          unit.sps = SpsParser$1.parseSPS(unit.body);
          break;
        case 8:
          unit.pps = true;
          break;
      }
    }
  }, {
    key: "getHeaderPositionAnnexB",
    value: function getHeaderPositionAnnexB(buffer) {
      var pos = buffer.position;
      var headerLength = 0;
      var bufferLen = buffer.length;
      while (headerLength !== 3 && headerLength !== 4 && pos < bufferLen - 4) {
        if (buffer.dataview.getInt16(pos) === 0) {
          if (buffer.dataview.getInt16(pos + 2) === 1) {
            headerLength = 4;
          } else if (buffer.dataview.getInt8(pos + 2) === 1) {
            headerLength = 3;
          } else {
            pos++;
          }
        } else {
          pos++;
        }
      }
      if (pos === bufferLen - 4) {
        if (buffer.dataview.getInt16(pos) === 0) {
          if (buffer.dataview.getInt16(pos + 2) === 1) {
            headerLength = 4;
          } else {
            pos = bufferLen;
          }
        } else {
          pos++;
          if (buffer.dataview.getInt16(pos) === 0 && buffer.dataview.getInt8(pos) === 1) {
            headerLength = 3;
          } else {
            pos = bufferLen;
          }
        }
      }
      return { pos, headerLength };
    }
  }, {
    key: "getAvcc",
    value: function getAvcc(sps, pps) {
      var ret = new Uint8Array(sps.byteLength + pps.byteLength + 11);
      ret[0] = 1;
      ret[1] = sps[1];
      ret[2] = sps[2];
      ret[3] = sps[3];
      ret[4] = 255;
      ret[5] = 225;
      var offset = 6;
      ret.set(new Uint8Array([sps.byteLength >>> 8 & 255, sps.byteLength & 255]), offset);
      offset += 2;
      ret.set(sps, offset);
      offset += sps.byteLength;
      ret[offset] = 1;
      offset++;
      ret.set(new Uint8Array([pps.byteLength >>> 8 & 255, pps.byteLength & 255]), offset);
      offset += 2;
      ret.set(pps, offset);
      return ret;
    }
  }]);
  return Nalunit2;
}();
var Nalunit$3 = Nalunit$2;
var _createClass$j = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$j(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Golomb = function() {
  function Golomb2(uint8array) {
    _classCallCheck$j(this, Golomb2);
    this.TAG = "Golomb";
    this._buffer = uint8array;
    this._bufferIndex = 0;
    this._totalBytes = uint8array.byteLength;
    this._totalBits = uint8array.byteLength * 8;
    this._currentWord = 0;
    this._currentWordBitsLeft = 0;
  }
  _createClass$j(Golomb2, [{
    key: "destroy",
    value: function destroy() {
      this._buffer = null;
    }
  }, {
    key: "_fillCurrentWord",
    value: function _fillCurrentWord() {
      var bufferBytesLeft = this._totalBytes - this._bufferIndex;
      var bytesRead = Math.min(4, bufferBytesLeft);
      var word = new Uint8Array(4);
      word.set(this._buffer.subarray(this._bufferIndex, this._bufferIndex + bytesRead));
      this._currentWord = new DataView(word.buffer).getUint32(0);
      this._bufferIndex += bytesRead;
      this._currentWordBitsLeft = bytesRead * 8;
    }
  }, {
    key: "readBits",
    value: function readBits(size) {
      var bits = Math.min(this._currentWordBitsLeft, size);
      var valu = this._currentWord >>> 32 - bits;
      if (size > 32) {
        throw new Error("Cannot read more than 32 bits at a time");
      }
      this._currentWordBitsLeft -= bits;
      if (this._currentWordBitsLeft > 0) {
        this._currentWord <<= bits;
      } else if (this._totalBytes - this._bufferIndex > 0) {
        this._fillCurrentWord();
      }
      bits = size - bits;
      if (bits > 0 && this._currentWordBitsLeft) {
        return valu << bits | this.readBits(bits);
      } else {
        return valu;
      }
    }
  }, {
    key: "readBool",
    value: function readBool() {
      return this.readBits(1) === 1;
    }
  }, {
    key: "readByte",
    value: function readByte() {
      return this.readBits(8);
    }
  }, {
    key: "_skipLeadingZero",
    value: function _skipLeadingZero() {
      var zeroCount = void 0;
      for (zeroCount = 0; zeroCount < this._currentWordBitsLeft; zeroCount++) {
        if ((this._currentWord & 2147483648 >>> zeroCount) !== 0) {
          this._currentWord <<= zeroCount;
          this._currentWordBitsLeft -= zeroCount;
          return zeroCount;
        }
      }
      this._fillCurrentWord();
      return zeroCount + this._skipLeadingZero();
    }
  }, {
    key: "readUEG",
    value: function readUEG() {
      var leadingZeros = this._skipLeadingZero();
      return this.readBits(leadingZeros + 1) - 1;
    }
  }, {
    key: "readSEG",
    value: function readSEG() {
      var value = this.readUEG();
      if (value & 1) {
        return value + 1 >>> 1;
      } else {
        return -1 * (value >>> 1);
      }
    }
  }, {
    key: "readSliceType",
    value: function readSliceType() {
      this.readByte();
      this.readUEG();
      return this.readUEG();
    }
  }]);
  return Golomb2;
}();
var Golomb$1 = Golomb;
var _createClass$i = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$i(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var SPSParser = function() {
  function SPSParser2() {
    _classCallCheck$i(this, SPSParser2);
  }
  _createClass$i(SPSParser2, null, [{
    key: "_ebsp2rbsp",
    value: function _ebsp2rbsp(uint8array) {
      var src = uint8array;
      var srcLength = src.byteLength;
      var dst = new Uint8Array(srcLength);
      var dstIdx = 0;
      for (var i = 0; i < srcLength; i++) {
        if (i >= 2) {
          if (src[i] === 3 && src[i - 1] === 0 && src[i - 2] === 0) {
            continue;
          }
        }
        dst[dstIdx] = src[i];
        dstIdx++;
      }
      return new Uint8Array(dst.buffer, 0, dstIdx);
    }
  }, {
    key: "parseSPS",
    value: function parseSPS(uint8array) {
      var rbsp = SPSParser2._ebsp2rbsp(uint8array);
      var gb = new Golomb$1(rbsp);
      var maxSubLayersMinus1 = 0;
      var separate_colour_plane_flag = 0;
      var chromaFormatIdc = 0;
      var width = 0;
      var height = 0;
      var conf_win_left_offset = 0;
      var conf_win_right_offset = 0;
      var conf_win_top_offset = 0;
      var conf_win_bottom_offset = 0;
      var conformanceWindowFlag = 0;
      var bitDepthLumaMinus8 = 0;
      var bitDepthChromaMinus8 = 0;
      var sub_width_c = 0;
      var sub_height_c = 0;
      var profileTierLevel = {};
      gb.readByte();
      gb.readByte();
      gb.readBits(4);
      maxSubLayersMinus1 = gb.readBits(3);
      gb.readBits(1);
      profileTierLevel = SPSParser2._readProfileTierLevel(gb, maxSubLayersMinus1);
      gb.readUEG();
      chromaFormatIdc = gb.readUEG();
      if (chromaFormatIdc === 3) {
        separate_colour_plane_flag = gb.readBits(1);
      }
      width = gb.readUEG();
      height = gb.readUEG();
      conformanceWindowFlag = gb.readBits(1);
      if (conformanceWindowFlag === 1) {
        conf_win_left_offset = gb.readUEG();
        conf_win_right_offset = gb.readUEG();
        conf_win_top_offset = gb.readUEG();
        conf_win_bottom_offset = gb.readUEG();
      }
      bitDepthLumaMinus8 = gb.readUEG();
      bitDepthChromaMinus8 = gb.readUEG();
      if (conformanceWindowFlag === 1) {
        sub_width_c = (chromaFormatIdc === 1 || chromaFormatIdc === 2) && separate_colour_plane_flag === 0 ? 2 : 1;
        sub_height_c = chromaFormatIdc === 1 && separate_colour_plane_flag === 0 ? 2 : 1;
        width -= sub_width_c * conf_win_right_offset + sub_width_c * conf_win_left_offset;
        height -= sub_height_c * conf_win_bottom_offset + sub_height_c * conf_win_top_offset;
      }
      gb.destroy();
      gb = null;
      return {
        width,
        height,
        general_profile_space: profileTierLevel.general_profile_space,
        general_tier_flag: profileTierLevel.general_tier_flag,
        general_profile_idc: profileTierLevel.general_profile_idc,
        general_level_idc: profileTierLevel.general_level_idc,
        chromaFormatIdc,
        bitDepthLumaMinus8,
        bitDepthChromaMinus8
      };
    }
  }, {
    key: "_readProfileTierLevel",
    value: function _readProfileTierLevel(gb, maxSubLayersMinus1) {
      var general_profile_space = 0;
      var general_tier_flag = 0;
      var general_profile_idc = 0;
      var general_level_idc = 0;
      general_profile_space = gb.readBits(2) || 0;
      general_tier_flag = gb.readBits(1) || 0;
      general_profile_idc = gb.readBits(5) || 0;
      gb.readBits(16);
      gb.readBits(16);
      gb.readBits(1);
      gb.readBits(1);
      gb.readBits(1);
      gb.readBits(1);
      gb.readBits(16);
      gb.readBits(16);
      gb.readBits(12);
      general_level_idc = gb.readBits(8) || 0;
      var subLayerProfilePresentFlag = [];
      var subLayerLevelPresentFlag = [];
      for (var j = 0; j < maxSubLayersMinus1; j++) {
        subLayerProfilePresentFlag[j] = gb.readBits(1);
        subLayerLevelPresentFlag[j] = gb.readBits(1);
      }
      if (maxSubLayersMinus1 > 0) {
        gb.readBits((8 - maxSubLayersMinus1) * 2);
      }
      for (var i = 0; i < maxSubLayersMinus1; i++) {
        if (subLayerProfilePresentFlag[i] !== 0) {
          gb.readBits(2);
          gb.readBits(1);
          gb.readBits(5);
          gb.readBits(16);
          gb.readBits(16);
          gb.readBits(4);
          gb.readBits(16);
          gb.readBits(16);
          gb.readBits(12);
        }
        if (subLayerLevelPresentFlag[i] !== 0) {
          gb.readBits(8);
        }
      }
      return {
        general_profile_space,
        general_tier_flag,
        general_profile_idc,
        general_level_idc
      };
    }
  }, {
    key: "_skipScalingList",
    value: function _skipScalingList(gb, count) {
      var lastScale = 8;
      var nextScale = 8;
      var deltaScale = 0;
      for (var i = 0; i < count; i++) {
        if (nextScale !== 0) {
          deltaScale = gb.readSEG();
          nextScale = (lastScale + deltaScale + 256) % 256;
        }
        lastScale = nextScale === 0 ? lastScale : nextScale;
      }
    }
  }, {
    key: "getProfileString",
    value: function getProfileString(profileIdc) {
      switch (profileIdc) {
        case 66:
          return "Baseline";
        case 77:
          return "Main";
        case 88:
          return "Extended";
        case 100:
          return "High";
        case 110:
          return "High10";
        case 122:
          return "High422";
        case 244:
          return "High444";
        default:
          return "Unknown";
      }
    }
  }, {
    key: "getLevelString",
    value: function getLevelString(levelIdc) {
      return (levelIdc / 10).toFixed(1);
    }
  }, {
    key: "getChromaFormatString",
    value: function getChromaFormatString(chroma) {
      switch (chroma) {
        case 420:
          return "4:2:0";
        case 422:
          return "4:2:2";
        case 444:
          return "4:4:4";
        default:
          return "Unknown";
      }
    }
  }, {
    key: "toVideoMeta",
    value: function toVideoMeta(spsConfig) {
      var meta = {};
      if (spsConfig && spsConfig.codec_size) {
        meta.codecWidth = spsConfig.codec_size.width;
        meta.codecHeight = spsConfig.codec_size.height;
        meta.presentWidth = spsConfig.present_size.width;
        meta.presentHeight = spsConfig.present_size.height;
      } else if (spsConfig.width && spsConfig.height) {
        meta.codecWidth = spsConfig.width;
        meta.codecHeight = spsConfig.height;
        meta.presentWidth = spsConfig.width;
        meta.presentHeight = spsConfig.height;
      }
      meta.profile = spsConfig.profile_string;
      meta.level = spsConfig.level_string;
      meta.bitDepth = spsConfig.bit_depth;
      meta.chromaFormat = spsConfig.chroma_format;
      return meta;
    }
  }]);
  return SPSParser2;
}();
var SpsParser = SPSParser;
var _createClass$h = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$h(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var RBSP = function() {
  function RBSP2() {
    _classCallCheck$h(this, RBSP2);
  }
  _createClass$h(RBSP2, null, [{
    key: "EBSP2RBSP",
    value: function EBSP2RBSP(data) {
      return data.filter(function(el, idx) {
        if (idx < 2) {
          return true;
        } else {
          return !(data[idx - 2] === 0 && data[idx - 1] === 0 && el === 3);
        }
      });
    }
  }, {
    key: "EBSP2SODB",
    value: function EBSP2SODB(data) {
      var lastByte = data[data.byteLength - 1];
      if (lastByte && lastByte === 128) {
        return data.slice(0, data.byteLength - 1);
      }
      return data;
    }
  }]);
  return RBSP2;
}();
var RBSP$1 = RBSP;
var _createClass$g = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$g(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var u8aToString2 = function u8aToString3(data) {
  var result = "";
  for (var i = 0; i < data.byteLength; i++) {
    result += String.fromCharCode(data[i]);
  }
  return result;
};
var SEIParser = function() {
  function SEIParser2() {
    _classCallCheck$g(this, SEIParser2);
  }
  _createClass$g(SEIParser2, null, [{
    key: "_resolveNalu",
    value: function _resolveNalu(data) {
      if (data.length >= 1) {
        return RBSP$1.EBSP2SODB(RBSP$1.EBSP2RBSP(data.slice(1)));
      }
      return null;
    }
  }, {
    key: "parse",
    value: function parse(data) {
      var sodb = SEIParser2._resolveNalu(data);
      var _SEIParser$switchPayl = SEIParser2.switchPayloadType(sodb), payloadType = _SEIParser$switchPayl.payloadType, offset = _SEIParser$switchPayl.offset;
      var content = sodb.slice(offset);
      switch (payloadType) {
        case 5:
          return SEIParser2.user_data_unregistered(content);
        default:
          return {
            code: payloadType,
            content
          };
      }
    }
  }, {
    key: "switchPayloadType",
    value: function switchPayloadType(data) {
      var dv = new DataView(data.buffer);
      var payloadType = 0;
      var offset = 0;
      while (dv.getUint8(offset) === 255) {
        offset++;
        payloadType += 255;
      }
      payloadType += dv.getUint8(offset++);
      return {
        payloadType,
        offset
      };
    }
  }, {
    key: "getPayloadLength",
    value: function getPayloadLength(data) {
      var dv = new DataView(data.buffer);
      var payloadLength = 0;
      var offset = 0;
      while (dv.getUint8(offset) === 255) {
        offset++;
        payloadLength += 255;
      }
      payloadLength += dv.getUint8(offset++);
      return {
        payloadLength,
        offset
      };
    }
  }, {
    key: "user_data_unregistered",
    value: function user_data_unregistered(data) {
      var _SEIParser$getPayload = SEIParser2.getPayloadLength(data), payloadLength = _SEIParser$getPayload.payloadLength, offset = _SEIParser$getPayload.offset;
      if (payloadLength < 16) {
        return {
          uuid: "",
          content: null
        };
      }
      var payload = data.slice(offset);
      var uuid = u8aToString2(payload.slice(0, 16));
      var content = u8aToString2(payload.slice(16, payloadLength));
      return {
        code: 5,
        uuid,
        content
      };
    }
  }]);
  return SEIParser2;
}();
var SEIParser$1 = SEIParser;
var _createClass$f = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$f(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Nalunit = function() {
  function Nalunit2() {
    _classCallCheck$f(this, Nalunit2);
  }
  _createClass$f(Nalunit2, null, [{
    key: "getNalunits",
    value: function getNalunits(buffer) {
      if (buffer.length - buffer.position < 4) {
        return [];
      }
      var buf = buffer.dataview;
      var position = buffer.position;
      if (buf.getInt32(position) === 1 || buf.getInt16(position) === 0 && buf.getInt8(position + 2) === 1) {
        return Nalunit2.getAnnexbNals(buffer);
      } else {
        return Nalunit2.getHvccNals(buffer);
      }
    }
  }, {
    key: "getAnnexbNals",
    value: function getAnnexbNals(buffer) {
      var nals = [];
      var position = Nalunit2.getHeaderPositionAnnexB(buffer);
      var start2 = position.pos;
      var end = start2;
      while (start2 < buffer.length - 4) {
        var header = buffer.buffer.slice(start2, start2 + position.headerLength);
        if (position.pos === buffer.position) {
          buffer.skip(position.headerLength);
        }
        position = Nalunit2.getHeaderPositionAnnexB(buffer);
        end = position.pos;
        var body = new Uint8Array(buffer.buffer.slice(start2 + header.byteLength, end));
        var unit = { header, body };
        Nalunit2.analyseNal(unit);
        if (unit.type <= 40) {
          nals.push(unit);
        }
        buffer.skip(end - buffer.position);
        start2 = end;
      }
      return nals;
    }
  }, {
    key: "getHvccNals",
    value: function getHvccNals(buffer) {
      var nals = [];
      while (buffer.position < buffer.length - 4) {
        var length = buffer.dataview.getInt32(buffer.dataview.position);
        if (buffer.length - buffer.position >= length) {
          var header = buffer.buffer.slice(buffer.position, buffer.position + 4);
          buffer.skip(4);
          var body = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + length));
          buffer.skip(length);
          var unit = { header, body };
          try {
            Nalunit2.analyseNal(unit);
          } catch (e) {
            continue;
          }
          if (unit.type <= 40) {
            nals.push(unit);
          }
        } else {
          break;
        }
      }
      return nals;
    }
  }, {
    key: "analyseNal",
    value: function analyseNal(unit) {
      var type = unit.body[0] >>> 1 & 63;
      unit.type = type;
      switch (type) {
        case 0:
          unit.slice_trail_n = true;
          break;
        case 1:
          unit.slice_trail_r = true;
          unit.key = true;
          break;
        case 2:
          unit.slice_tsa_n = true;
          break;
        case 3:
          unit.slice_tsa_r = true;
          unit.key = true;
          break;
        case 4:
          unit.slice_stsa_n = true;
          break;
        case 5:
          unit.slice_stsa_r = true;
          unit.key = true;
          break;
        case 6:
          unit.slice_radl_n = true;
          break;
        case 7:
          unit.slice_radl_r = true;
          unit.key = true;
          break;
        case 8:
          unit.slice_rasl_n = true;
          break;
        case 9:
          unit.slice_rasl_r = true;
          unit.key = true;
          break;
        case 16:
          unit.slice_bla_w_lp = true;
          break;
        case 17:
          unit.slice_bla_w_radl = true;
          break;
        case 18:
          unit.slice_bla_n_lp = true;
          break;
        case 19:
          unit.slice_idl_w_radl = true;
          unit.key = true;
          break;
        case 20:
          unit.slice_idr_n_lp = true;
          unit.key = true;
          break;
        case 21:
          unit.slice_cra_nut = true;
          unit.key = true;
          break;
        case 32:
          unit.vps = true;
          break;
        case 33:
          unit.sps = SpsParser.parseSPS(unit.body);
          break;
        case 34:
          unit.pps = true;
          break;
        case 35:
          break;
        case 36:
          unit.aud = true;
          break;
        case 37:
          unit.eob = true;
          break;
        case 38:
          unit.fd = true;
          break;
        case 39:
          try {
            unit.sei = SEIParser$1.parse(unit.body.slice(1));
          } catch (e) {
          }
          break;
        case 40:
          unit.sei = SEIParser$1.parse(unit.body.slice(1));
          break;
      }
    }
  }, {
    key: "getHeaderPositionAnnexB",
    value: function getHeaderPositionAnnexB(buffer) {
      var pos = buffer.position;
      var headerLength = 0;
      var bufferLen = buffer.length;
      while (headerLength !== 3 && headerLength !== 4 && pos < bufferLen - 4) {
        if (buffer.dataview.getInt16(pos) === 0) {
          if (buffer.dataview.getInt16(pos + 2) === 1) {
            headerLength = 4;
          } else if (buffer.dataview.getInt8(pos + 2) === 1) {
            headerLength = 3;
          } else {
            pos++;
          }
        } else {
          pos++;
        }
      }
      if (pos === bufferLen - 4) {
        if (buffer.dataview.getInt16(pos) === 0) {
          if (buffer.dataview.getInt16(pos + 2) === 1) {
            headerLength = 4;
          }
        } else {
          pos++;
          if (buffer.dataview.getInt16(pos) === 0 && buffer.dataview.getInt8(pos) === 1) {
            headerLength = 3;
          } else {
            pos = bufferLen;
          }
        }
      }
      return { pos, headerLength };
    }
  }]);
  return Nalunit2;
}();
var Nalunit$1 = Nalunit;
var _createClass$e = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _toConsumableArray(arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
      arr2[i] = arr[i];
    }
    return arr2;
  } else {
    return Array.from(arr);
  }
}
function _classCallCheck$e(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var REMUX_EVENTS$4 = EVENTS.REMUX_EVENTS;
var Compatibility = function() {
  function Compatibility2() {
    var _this = this;
    _classCallCheck$e(this, Compatibility2);
    this.TAG = "Compatibility";
    this.nextAudioDts = 0;
    this.nextVideoDts = 0;
    this.lastAudioSamplesLen = 0;
    this.lastVideoSamplesLen = 0;
    this.lastVideoDts = void 0;
    this.lastAudioDts = void 0;
    this.allAudioSamplesCount = 0;
    this.allVideoSamplesCount = 0;
    this._firstAudioSample = null;
    this._firstVideoSample = null;
    this.filledAudioSamples = [];
    this.filledVideoSamples = [];
    this._lastSegmentId = 0;
    this._currentSegmentId = 0;
    this.videoLastSample = null;
    this.audioLastSample = null;
    Object.defineProperties(this, {
      _videoLargeGap: {
        set: function set2(value) {
          _this.___videoLargeGap = value;
          if (value !== 0) {
            _this.emit(REMUX_EVENTS$4.DETECT_LARGE_GAP, "video", value);
          }
        },
        get: function get5() {
          return _this.___videoLargeGap || 0;
        }
      },
      _audioLargeGap: {
        set: function set2(value) {
          _this.___audioLargeGap = value;
          if (value !== 0) {
            _this.emit(REMUX_EVENTS$4.DETECT_LARGE_GAP, "audio", value);
          }
        },
        get: function get5() {
          return _this.___audioLargeGap || 0;
        }
      }
    });
    this.audioUnsyncTime = 0;
  }
  _createClass$e(Compatibility2, [{
    key: "init",
    value: function init() {
      this.before(REMUX_EVENTS$4.REMUX_MEDIA, this.doFix.bind(this));
    }
  }, {
    key: "reset",
    value: function reset() {
      this.nextAudioDts = null;
      this.nextVideoDts = null;
      this.lastAudioSamplesLen = 0;
      this.lastVideoSamplesLen = 0;
      this.lastVideoDts = void 0;
      this.lastAudioDts = void 0;
      this._audioLargeGap = 0;
      this._videoLargeGap = 0;
      this.videoLastSample = null;
      this.audioLastSample = null;
      this.filledAudioSamples = [];
      this.filledVideoSamples = [];
      this.audioUnsyncTime = 0;
    }
  }, {
    key: "_isSegmentsContinuous",
    value: function _isSegmentsContinuous() {
      return this._lastSegmentId === 0 || this._currentSegmentId - this._lastSegmentId === 1;
    }
  }, {
    key: "doFix",
    value: function doFix() {
      var ops = void 0;
      var vSamp0 = void 0;
      var aSamp0 = void 0;
      var avDelta = 0;
      if (this.videoTrack.samples.length) {
        vSamp0 = this.videoTrack.samples[0];
        ops = vSamp0.options;
        if (logger.long) {
          logger.log(this.TAG, this.videoTrack.samples.slice());
        }
      }
      if (this.audioTrack.samples.length) {
        aSamp0 = this.audioTrack.samples[0];
        if (logger.long) {
          logger.log(this.TAG, this.audioTrack.samples.slice());
        }
      }
      if (vSamp0 && aSamp0) {
        avDelta = aSamp0.dts - vSamp0.dts;
      }
      this._currentSegmentId = ops && ops.id || this._currentSegmentId + 1;
      logger.log(this.TAG, "lastSeg:" + this._lastSegmentId + " , currentSeg:" + this._currentSegmentId + ", discontinue:" + (ops && ops.discontinue) + " vSamp0:" + (vSamp0 && vSamp0.dts) + " aSamp0:" + (aSamp0 && aSamp0.dts));
      var _getFirstSample = this.getFirstSample(), isFirstAudioSamples = _getFirstSample.isFirstAudioSamples, isFirstVideoSamples = _getFirstSample.isFirstVideoSamples;
      this.recordSamplesCount();
      if (this._firstVideoSample) {
        this.fixVideoRefSampleDuration(this.videoTrack.meta, this.videoTrack.samples);
      }
      var _Compatibility$detect = Compatibility2.detectChangeStream(this.videoTrack.samples, isFirstVideoSamples), videoChanged = _Compatibility$detect.changed, videoChangedIdxes = _Compatibility$detect.changedIdxes;
      if (videoChanged) {
        var disContinue = false;
        for (var i = 0; i < videoChangedIdxes.length; i++) {
          if (this.fixChangeStreamVideo(videoChangedIdxes[i], isFirstVideoSamples)) {
            disContinue = true;
          }
        }
        if (!disContinue) {
          this.doFixVideo(isFirstVideoSamples);
        }
      } else {
        if (!this._isSegmentsContinuous() && ops && ops.start !== void 0) {
          this.videoLastSample = null;
          var start2 = ops.start;
          if (avDelta < 0) {
            start2 -= avDelta;
          }
          logger.log(this.TAG, "fix video for _isSegmentsContinuous()\uFF0C delta:", avDelta);
          this.doFixVideo(isFirstVideoSamples, start2);
          this.emit(REMUX_EVENTS$4.DETECT_FRAG_ID_DISCONTINUE, ops.start / 1e3);
        } else {
          this.doFixVideo(isFirstVideoSamples);
        }
      }
      this._appendSampleForLastSegment(ops && ops.isLast);
      var _Compatibility$detect2 = Compatibility2.detectChangeStream(this.audioTrack.samples, isFirstAudioSamples), audioChanged = _Compatibility$detect2.changed, audioChangedIdxes = _Compatibility$detect2.changedIdxes;
      if (audioChanged) {
        var _disContinue = false;
        for (var _i = 0; _i < audioChangedIdxes.length; _i++) {
          if (this.fixChangeStreamAudio(audioChangedIdxes[_i], isFirstAudioSamples)) {
            _disContinue = true;
          }
        }
        if (!_disContinue) {
          this.doFixAudio(isFirstAudioSamples);
        } else {
          return;
        }
      } else {
        if (!this._isSegmentsContinuous() && ops && ops.start !== void 0) {
          logger.log(this.TAG, "fix audio for _isSegmentsContinuous()");
          var sam0 = this.audioTrack.samples[0];
          this.nextAudioDts = ops.start || sam0 && sam0.dts;
          this.doFixAudio(isFirstAudioSamples, ops.start);
          this.emit(REMUX_EVENTS$4.DETECT_FRAG_ID_DISCONTINUE, ops.start / 1e3);
        } else {
          this.doFixAudio(isFirstAudioSamples);
        }
      }
      this.removeInvalidSamples();
      this._lastSegmentId = this._currentSegmentId;
    }
  }, {
    key: "doFixVideo",
    value: function doFixVideo(first, streamChangeStart) {
      var _videoTrack = this.videoTrack, videoSamples = _videoTrack.samples, meta = _videoTrack.meta;
      var len = videoSamples.length;
      for (var i = 0; i < len; i++) {
        var sample = videoSamples[i];
        sample.originDts = sample.dts;
        sample.originPts = sample.pts;
      }
      if (!videoSamples || !len || !this._firstVideoSample) {
        return;
      }
      var firstSample = videoSamples[0];
      logger.log(this.TAG, "doFixVideo:: lastVideoDts: " + this.lastVideoDts + " ,  _videoLargeGap: " + this._videoLargeGap + " ,streamChangeStart:" + streamChangeStart + ", lastVideoSample:[dts=" + (this.videoLastSample && this.videoLastSample.dts) + " , pts=" + (this.videoLastSample && this.videoLastSample.pts) + "] ,  firstDTS:" + firstSample.dts + " ,firstPTS:" + firstSample.pts + " ,lastDTS:" + videoSamples[len - 1].dts + " , lastPTS: " + videoSamples[len - 1].pts);
      if (!first && streamChangeStart === void 0 && this.videoLastSample && Compatibility2.detectVideoLargeGap(this.videoLastSample ? this.videoLastSample.dts : 0, firstSample.dts + this._videoLargeGap)) {
        this._videoLargeGap = this.videoLastSample.dts + meta.refSampleDuration - firstSample.dts;
      }
      if (this._videoLargeGap !== 0) {
        Compatibility2.doFixLargeGap(videoSamples, this._videoLargeGap);
        if (this._videoLargeGap !== this.preVideoGap) {
          this.preVideoGap = this._videoLargeGap;
          this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM_DISCONTINUE, "video", { prevDts: this.videoLastSample && this.videoLastSample.originDts, curDts: firstSample.originDts });
        }
      }
      if (!first && streamChangeStart !== void 0 && streamChangeStart !== 0) {
        this._videoLargeGap = streamChangeStart - firstSample.dts;
        Compatibility2.doFixLargeGap(videoSamples, this._videoLargeGap);
      }
      if (first && this._firstAudioSample) {
        var videoFirstDts = this._firstVideoSample.originDts;
        var audioFirstDts = this._firstAudioSample.dts;
        var gap = videoFirstDts - audioFirstDts;
        if (gap > 2 * meta.refSampleDuration && gap < 10 * meta.refSampleDuration) {
          var fillCount = Math.floor(gap / meta.refSampleDuration);
          for (var _i2 = 0; _i2 < fillCount; _i2++) {
            var clonedFirstSample = Object.assign({}, firstSample);
            clonedFirstSample.dts = videoFirstDts - (_i2 + 1) * meta.refSampleDuration;
            clonedFirstSample.pts = clonedFirstSample.dts + clonedFirstSample.cts;
            videoSamples.unshift(clonedFirstSample);
            this.filledVideoSamples.push({
              dts: clonedFirstSample.dts,
              size: clonedFirstSample.data.byteLength
            });
          }
          this._firstVideoSample = this.filledVideoSamples[0] || this._firstVideoSample;
        } else if (Math.abs(gap) > 2 * meta.refSampleDuration && !this._videoLargeGap) {
          this._videoLargeGap = -1 * gap;
          Compatibility2.doFixLargeGap(videoSamples, -1 * gap);
        }
      }
      var segLen = videoSamples.length;
      for (var _i3 = 1; _i3 < segLen; _i3++) {
        var c = videoSamples[_i3];
        var pre = videoSamples[_i3 - 1];
        var cts = c.dts - c.pts;
        if (Math.abs(cts) < 2e3) {
          if (Math.abs(c.dts - pre.dts) > 1e4) {
            c.dts = pre.dts + meta.refSampleDuration;
            c.pts = pre.pts + meta.refSampleDuration;
          }
        }
      }
      var curLastSample = videoSamples.pop();
      if (videoSamples.length) {
        videoSamples[videoSamples.length - 1].duration = curLastSample.dts - videoSamples[videoSamples.length - 1].dts;
      }
      if (segLen < 4) {
        var _sample = videoSamples[videoSamples.length - 1];
        _sample = _sample || curLastSample;
        var duration = _sample.options && _sample.options.duration;
        var refDuration = meta.refSampleDuration;
        if (duration && refDuration && duration / refDuration > 5) {
          var pts = _sample.pts;
          var dts = _sample.dts;
          for (var _i4 = 0; _i4 < 3; _i4++) {
            dts += refDuration;
            pts += refDuration;
            var sam = Object.assign({}, _sample, { dts, pts });
            if (_i4 === 2) {
              sam.duration = duration;
            }
            videoSamples.push(sam);
          }
        }
        curLastSample = null;
      }
      if (this.videoLastSample) {
        var videoLastSample = this.videoLastSample;
        videoLastSample.duration = firstSample.dts - videoLastSample.dts;
        videoSamples.unshift(this.videoLastSample);
      }
      this.videoLastSample = curLastSample;
      if (videoSamples[videoSamples.length - 1]) {
        this.lastVideoDts = videoSamples[videoSamples.length - 1].dts;
      }
      this.videoTrack.samples = videoSamples;
    }
  }, {
    key: "_appendSampleForLastSegment",
    value: function _appendSampleForLastSegment(isLast) {
      if (isLast && this.videoLastSample) {
        this.videoTrack.samples.push(this.videoLastSample);
      }
    }
  }, {
    key: "doFixAudio",
    value: function doFixAudio(first, streamChangeStart) {
      var _this2 = this;
      var _audioTrack = this.audioTrack, audioSamples = _audioTrack.samples, meta = _audioTrack.meta;
      if (!audioSamples || !audioSamples.length) {
        return;
      }
      this.fixAudioRefSampleDuration(meta);
      for (var i = 0, len = audioSamples.length; i < len; i++) {
        var sample = audioSamples[i];
        sample.originDts = sample.dts;
      }
      var samplesLen = audioSamples.length;
      var silentFrame = AAC$1.getSilentFrame(meta.originCodec, meta.channelCount);
      var iRefSampleDuration = Math.floor(meta.refSampleDuration);
      var firstSample = this._firstAudioSample;
      var _firstSample = audioSamples[0];
      logger.log(this.TAG, "doFixAudio:: audioDtsBase:" + this.audioDtsBase + " ,  _audioLargeGap: " + this._audioLargeGap + ", streamChangeStart:" + streamChangeStart + " ,  nextAudioDts:" + this.nextAudioDts + ",  audio: firstDTS:" + _firstSample.dts + " ,firstPTS:" + _firstSample.pts + " ,lastDTS:" + audioSamples[samplesLen - 1].dts + " , lastPTS: " + audioSamples[samplesLen - 1].pts);
      if (!first && this.nextAudioDts === null && _firstSample.options && _firstSample.options.start) {
        if (streamChangeStart !== void 0) {
          streamChangeStart = _firstSample.options.start;
        }
      }
      if (!first && streamChangeStart === void 0 && this.nextAudioDts && Compatibility2.detectAudioLargeGap(this.nextAudioDts || 0, _firstSample.dts + this._audioLargeGap)) {
        var _audioLargeGap = this.nextAudioDts - _firstSample.dts;
        this._audioLargeGap = Math.abs(_audioLargeGap - this._videoLargeGap) < 200 ? this._videoLargeGap : _audioLargeGap;
      }
      if (this._audioLargeGap !== 0) {
        Compatibility2.doFixLargeGap(audioSamples, this._audioLargeGap);
        if (this._audioLargeGap !== this.preAudioGap) {
          this.preAudioGap = this._audioLargeGap;
          this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM_DISCONTINUE, "audio", { prevDts: this.lastAudioOriginDts, curDts: _firstSample.originDts });
        }
      } else if (!first && (streamChangeStart !== void 0 || Compatibility2.detectAudioLargeGap(this.nextAudioDts, _firstSample.dts))) {
        if (streamChangeStart !== void 0 && streamChangeStart !== 0) {
          this.nextAudioDts = streamChangeStart;
        }
        this._audioLargeGap = this.nextAudioDts - _firstSample.dts;
        if (_firstSample.options.start && !_firstSample.options.start.isContinue) {
          Compatibility2.doFixLargeGap(audioSamples, this._audioLargeGap);
        }
      }
      if (this._firstVideoSample && first) {
        var videoFirstPts = this._firstVideoSample.originDts || this._firstVideoSample.dts;
        var _gap = firstSample.dts - videoFirstPts;
        if (_gap === this._videoLargeGap)
          ;
        else if (_gap > meta.refSampleDuration && _gap < 10 * meta.refSampleDuration) {
          var silentSampleCount = Math.floor((firstSample.dts - videoFirstPts) / meta.refSampleDuration);
          logger.warn(this.TAG, "fill " + silentSampleCount + " frames for av align");
          for (var _i5 = 0; _i5 < silentSampleCount; _i5++) {
            var silentSample = {
              data: silentFrame,
              datasize: silentFrame.byteLength,
              dts: firstSample.dts - (_i5 + 1) * meta.refSampleDuration,
              filtered: 0
            };
            audioSamples.unshift(silentSample);
            this.filledAudioSamples.push({
              dts: silentSample.dts,
              size: silentSample.data.byteLength
            });
          }
          this._firstAudioSample = this.filledAudioSamples[0] || this._firstAudioSample;
        } else if (_gap < -1 * meta.refSampleDuration) {
          this._audioLargeGap = -1 * _gap;
          Compatibility2.doFixLargeGap(audioSamples, -1 * _gap);
        }
      }
      var gap = void 0;
      var firstDts = audioSamples[0].dts;
      if (this.nextAudioDts) {
        gap = firstDts - this.nextAudioDts;
        var absGap = Math.abs(gap);
        if (gap >= iRefSampleDuration && gap < 1e4 && silentFrame) {
          var silentFrameCount = Math.ceil(gap / iRefSampleDuration);
          for (var _i6 = 0; _i6 < silentFrameCount; _i6++) {
            var computed = firstDts - (_i6 + 1) * iRefSampleDuration;
            var _silentSample = {
              dts: computed > this.nextAudioDts ? computed : this.nextAudioDts,
              pts: computed > this.nextAudioDts ? computed : this.nextAudioDts,
              datasize: silentFrame.byteLength,
              filtered: 0,
              data: silentFrame
            };
            this.filledAudioSamples.push({
              dts: _silentSample.dts,
              size: _silentSample.data.byteLength
            });
            this.audioTrack.samples.unshift(_silentSample);
            _firstSample = _silentSample;
          }
          this.emit(REMUX_EVENTS$4.DETECT_AUDIO_GAP, gap, silentFrameCount);
        } else if (absGap < meta.refSampleDuration && absGap > 0) {
          _firstSample.dts = this.nextAudioDts;
          _firstSample.pts = this.nextAudioDts;
        } else if (gap < 0 && absGap < iRefSampleDuration) {
          Compatibility2.doFixLargeGap(audioSamples, -1 * gap);
          this.emit(REMUX_EVENTS$4.DETECT_AUDIO_OVERLAP, gap);
        }
      }
      var nextDts = audioSamples[0].dts + iRefSampleDuration;
      for (var _i7 = 1; _i7 < audioSamples.length; ) {
        var _sample2 = audioSamples[_i7];
        var delta = _sample2.dts - nextDts;
        if (delta <= -1 * iRefSampleDuration) {
          logger.warn("drop 1 audio sample for " + delta + " ms overlap");
          audioSamples.splice(_i7, 1);
          continue;
        }
        if (delta >= 10 * iRefSampleDuration) {
          var missingCount = Math.round(delta / iRefSampleDuration);
          if (missingCount > 1e3) {
            break;
          }
          logger.warn(this.TAG, "inject " + missingCount + " audio frame for " + delta + " ms gap, index=" + _i7);
          for (var j = 0; j < missingCount; j++) {
            var _silentSample2 = {
              data: silentFrame,
              datasize: silentFrame.byteLength,
              dts: nextDts,
              originDts: nextDts,
              filtered: 0
            };
            audioSamples.splice(_i7, 0, _silentSample2);
            nextDts += iRefSampleDuration;
            _i7++;
          }
          _sample2.dts = _sample2.pts = _sample2.originDts = nextDts;
          nextDts += iRefSampleDuration;
          _i7++;
        } else {
          _sample2.dts = _sample2.pts = _sample2.originDts = nextDts;
          nextDts += iRefSampleDuration;
          _i7++;
        }
      }
      var unSyncDuration = meta.refSampleDuration - iRefSampleDuration;
      audioSamples.forEach(function(sample2, idx) {
        if (idx !== 0) {
          var _lastSample = audioSamples[idx - 1];
          sample2.dts = sample2.pts = _lastSample.dts + _lastSample.duration;
        }
        sample2.duration = iRefSampleDuration;
        _this2.audioUnsyncTime = _this2.audioUnsyncTime + unSyncDuration;
        if (_this2.audioUnsyncTime >= 1) {
          sample2.duration += 1;
          _this2.audioUnsyncTime -= 1;
        }
      });
      var lastSample = audioSamples[audioSamples.length - 1];
      this.lastAudioDts = lastSample.dts;
      var lastDuration = lastSample.duration;
      this.lastAudioSamplesLen = samplesLen;
      this.nextAudioDts = this.lastAudioDts + (lastDuration || iRefSampleDuration);
      this.lastAudioOriginDts = lastSample.originDts;
      this.audioTrack.samples = Compatibility2.sortAudioSamples(audioSamples);
    }
  }, {
    key: "fixChangeStreamVideo",
    value: function fixChangeStreamVideo(changeIdx) {
      logger.log(this.TAG, "fixChangeStreamVideo(), changeIdx=", changeIdx);
      var samples = this.videoTrack.samples;
      var prevDts = changeIdx === 0 ? this.lastVideoDts ? this.lastVideoDts : this.getStreamChangeStart(samples[0]) : samples[changeIdx - 1].dts;
      var curDts = samples[changeIdx].dts;
      var isContinue = Math.abs(prevDts - curDts) <= 1e4;
      this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM, "video", curDts);
      if (isContinue) {
        if (!samples[changeIdx].options) {
          samples[changeIdx].options = {
            isContinue: true
          };
        } else {
          samples[changeIdx].options.isContinue = true;
        }
        return false;
      }
      this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM_DISCONTINUE, "video", { prevDts, curDts });
      var firstPartSamples = samples.slice(0, changeIdx);
      var secondPartSamples = samples.slice(changeIdx);
      var changeSample = samples[changeIdx];
      var streamChangeStart = void 0;
      this._videoLargeGap = 0;
      this.videoLastSample = null;
      this.lastVideoDts = null;
      if (changeSample.options && changeSample.options.start !== void 0) {
        streamChangeStart = changeSample.options.start;
      } else {
        streamChangeStart = prevDts - this.videoDtsBase;
      }
      this.videoTrack.samples = samples.slice(0, changeIdx);
      this.doFixVideo(false);
      this.videoTrack.samples = samples.slice(changeIdx);
      this.doFixVideo(false, streamChangeStart);
      this.videoTrack.samples = firstPartSamples.concat(secondPartSamples);
      return true;
    }
  }, {
    key: "fixChangeStreamAudio",
    value: function fixChangeStreamAudio(changeIdx) {
      logger.log(this.TAG, "fixChangeStreamAudio(), changeIdx=", changeIdx);
      var samples = this.audioTrack.samples;
      var prevDts = changeIdx === 0 ? this.lastAudioDts : samples[changeIdx - 1].dts;
      var curDts = samples[changeIdx].dts;
      var isContinue = Math.abs(prevDts - curDts) <= 1e4;
      this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM, "audio", curDts);
      if (isContinue) {
        if (!samples[changeIdx].options) {
          samples[changeIdx].options = {
            isContinue: true
          };
        } else {
          samples[changeIdx].options.isContinue = true;
        }
        return false;
      }
      this.emit(REMUX_EVENTS$4.DETECT_CHANGE_STREAM_DISCONTINUE, "audio", { prevDts, curDts });
      this._audioLargeGap = 0;
      var cacheNextAudioDts = this.nextAudioDts;
      this.nextAudioDts = null;
      var firstPartSamples = samples.slice(0, changeIdx);
      var secondPartSamples = samples.slice(changeIdx);
      var changeSample = samples[changeIdx];
      var streamChangeStart = void 0;
      if (changeSample.options && changeSample.options.start !== void 0) {
        streamChangeStart = changeSample.options.start;
      } else {
        streamChangeStart = cacheNextAudioDts;
        changeSample.options.isContinue = true;
      }
      this.audioTrack.samples = firstPartSamples;
      this.doFixAudio(false);
      this.audioTrack.samples = secondPartSamples;
      this.doFixAudio(false, streamChangeStart);
      this.audioTrack.samples = firstPartSamples.concat(secondPartSamples);
      return true;
    }
  }, {
    key: "getFirstSample",
    value: function getFirstSample() {
      var videoSamples = this.videoTrack.samples;
      var audioSamples = this.audioTrack.samples;
      var isFirstVideoSamples = false;
      var isFirstAudioSamples = false;
      if (!this._firstVideoSample && videoSamples.length) {
        this._firstVideoSample = Compatibility2.findFirstVideoSample(videoSamples);
        this.removeInvalidSamples();
        isFirstVideoSamples = true;
      }
      if (!this._firstAudioSample && audioSamples.length) {
        this._firstAudioSample = Compatibility2.findFirstAudioSample(audioSamples);
        this.removeInvalidSamples();
        isFirstAudioSamples = true;
      }
      return {
        isFirstVideoSamples,
        isFirstAudioSamples
      };
    }
  }, {
    key: "fixVideoRefSampleDuration",
    value: function fixVideoRefSampleDuration(meta, samples) {
      if (!meta) {
        return;
      }
      var allSamplesCount = this.allVideoSamplesCount;
      var firstDts = this._firstVideoSample.dts;
      var filledSamplesCount = this.filledVideoSamples.length;
      if (!Compatibility2.isRefSampleDurationValid(meta.refSampleDuration)) {
        if (samples.length >= 1) {
          var lastDts = samples[samples.length - 1].dts;
          var fixed = Math.floor((lastDts - firstDts) / (allSamplesCount + filledSamplesCount - 1));
          if (Compatibility2.isRefSampleDurationValid(fixed)) {
            meta.refSampleDuration = fixed;
          }
        }
      } else if (meta.refSampleDuration) {
        if (samples.length >= 5) {
          var _lastDts = samples[samples.length - 1].dts;
          var _firstDts = samples[0].dts;
          var durationAvg = (_lastDts - _firstDts) / (samples.length - 1);
          if (durationAvg > 0 && durationAvg < 1e3) {
            var _fixed = Math.floor(Math.abs(meta.refSampleDuration - durationAvg) <= 5 ? meta.refSampleDuration : durationAvg);
            if (Compatibility2.isRefSampleDurationValid(_fixed)) {
              meta.refSampleDuration = _fixed;
            }
          }
        }
      }
      if (!Compatibility2.isRefSampleDurationValid(meta.refSampleDuration)) {
        meta.refSampleDuration = 66;
      }
    }
  }, {
    key: "fixAudioRefSampleDuration",
    value: function fixAudioRefSampleDuration(meta) {
      if (!meta) {
        return;
      }
      meta.refSampleDuration = meta.timescale * 1024 / meta.sampleRate;
    }
  }, {
    key: "recordSamplesCount",
    value: function recordSamplesCount() {
      var audioTrack = this.audioTrack, videoTrack = this.videoTrack;
      this.allAudioSamplesCount += audioTrack.samples.length;
      this.allVideoSamplesCount += videoTrack.samples.length;
    }
  }, {
    key: "removeInvalidSamples",
    value: function removeInvalidSamples() {
      var firstAudioSample = this.audioTrack.samples[0];
      var firstVideoSample = this.videoTrack.samples[0];
      if (firstAudioSample) {
        this.audioTrack.samples = this.audioTrack.samples.filter(function(sample, index2) {
          if (sample === firstAudioSample) {
            return true;
          }
          return sample.dts >= firstAudioSample.dts;
        });
      }
      if (firstVideoSample) {
        this.videoTrack.samples = this.videoTrack.samples.filter(function(sample, index2) {
          if (sample === firstVideoSample) {
            return true;
          }
          return sample.dts >= firstVideoSample.dts;
        });
      }
    }
  }, {
    key: "getStreamChangeStart",
    value: function getStreamChangeStart(sample) {
      if (sample.options && sample.options.start) {
        return sample.options.start - this.dtsBase;
      }
      return Infinity;
    }
  }, {
    key: "tracks",
    get: function get5() {
      return this._context.getInstance("TRACKS");
    }
  }, {
    key: "audioTrack",
    get: function get5() {
      if (this.tracks && this.tracks.audioTrack) {
        return this.tracks.audioTrack;
      }
      return {
        samples: [],
        meta: {}
      };
    }
  }, {
    key: "videoTrack",
    get: function get5() {
      if (this.tracks && this.tracks.videoTrack) {
        return this.tracks.videoTrack;
      }
      return {
        samples: [],
        meta: {}
      };
    }
  }, {
    key: "dtsBase",
    get: function get5() {
      var remuxer = this._context.getInstance("MP4_REMUXER");
      if (remuxer) {
        return remuxer._dtsBase;
      }
      return 0;
    }
  }, {
    key: "audioDtsBase",
    get: function get5() {
      var remuxer = this._context.getInstance("MP4_REMUXER");
      if (remuxer && remuxer._audioDtsBase !== null) {
        return remuxer._audioDtsBase;
      }
      return this.dtsBase;
    }
  }, {
    key: "videoDtsBase",
    get: function get5() {
      var remuxer = this._context.getInstance("MP4_REMUXER");
      if (remuxer && remuxer._videoDtsBase !== null) {
        return remuxer._videoDtsBase;
      }
      return this.dtsBase;
    }
  }], [{
    key: "sortAudioSamples",
    value: function sortAudioSamples(samples) {
      if (samples.length === 1) {
        return samples;
      }
      return [].concat(_toConsumableArray(samples)).sort(function(a, b) {
        return a.dts - b.dts;
      });
    }
  }, {
    key: "isRefSampleDurationValid",
    value: function isRefSampleDurationValid(refSampleDuration) {
      return refSampleDuration && refSampleDuration > 0 && !Number.isNaN(refSampleDuration);
    }
  }, {
    key: "findFirstAudioSample",
    value: function findFirstAudioSample(samples) {
      if (!samples || samples.length === 0) {
        return null;
      }
      return Compatibility2.sortAudioSamples(samples)[0];
    }
  }, {
    key: "findFirstVideoSample",
    value: function findFirstVideoSample(samples) {
      if (!samples.length) {
        return null;
      }
      var sorted = [].concat(_toConsumableArray(samples)).sort(function(a, b) {
        return a.dts - b.dts;
      });
      for (var i = 0, len = sorted.length; i < len; i++) {
        if (sorted[i].isKeyframe) {
          return sorted[i];
        }
      }
    }
  }, {
    key: "detectVideoLargeGap",
    value: function detectVideoLargeGap(nextDts, firstSampleDts) {
      if (nextDts === null) {
        return;
      }
      var delta = 1e3;
      return nextDts - firstSampleDts >= delta || firstSampleDts - nextDts >= delta;
    }
  }, {
    key: "detectAudioLargeGap",
    value: function detectAudioLargeGap(nextDts, firstSampleDts) {
      if (nextDts === null) {
        return;
      }
      return nextDts - firstSampleDts >= 1e3 || firstSampleDts - nextDts >= 1e3;
    }
  }, {
    key: "doFixLargeGap",
    value: function doFixLargeGap(samples, gap) {
      for (var i = 0, len = samples.length; i < len; i++) {
        var sample = samples[i];
        sample.dts += gap;
        if (sample.pts) {
          sample.pts += gap;
        }
      }
      var first = samples[0];
      if (first && first.dts === 0) {
        first.dts = first.pts = 1;
      }
    }
  }, {
    key: "detectChangeStream",
    value: function detectChangeStream(samples, isFirst) {
      var changed = false;
      var changedIdxes = [];
      for (var i = 0, len = samples.length; i < len; i++) {
        var sample = samples[i];
        if (sample.options && sample.options.meta && !(isFirst && i === 0)) {
          changed = true;
          changedIdxes.push(i);
        }
      }
      return {
        changed,
        changedIdxes
      };
    }
  }]);
  return Compatibility2;
}();
var Compatibility$1 = Compatibility;
var _slicedToArray = function() {
  function sliceIterator(arr, i) {
    var _arr = [];
    var _n = true;
    var _d = false;
    var _e = void 0;
    try {
      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
        if (i && _arr.length === i)
          break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"])
          _i["return"]();
      } finally {
        if (_d)
          throw _e;
      }
    }
    return _arr;
  }
  return function(arr, i) {
    if (Array.isArray(arr)) {
      return arr;
    } else if (Symbol.iterator in Object(arr)) {
      return sliceIterator(arr, i);
    } else {
      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    }
  };
}();
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
  return typeof obj;
} : function(obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var _createClass$d = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$d(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _possibleConstructorReturn$4(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$4(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var NalUnit$1 = Nalunit$3;
var NalUnitHEVC$1 = Nalunit$1;
var StreamType = {
  1: ["video", "MPEG-1"],
  2: ["video", "MPEG-2"],
  27: ["video", "AVC.H264"],
  36: ["video", "HVC.H265"],
  234: ["video", "VC-1"],
  3: ["audio", "MPEG-1"],
  4: ["audio", "MPEG-2"],
  15: ["audio", "MPEG-2.AAC"],
  17: ["audio", "MPEG-4.AAC"],
  128: ["audio", "LPCM"],
  129: ["audio", "AC3"],
  6: ["audio", "AC3"],
  130: ["audio", "DTS"],
  131: ["audio", "Dolby TrueHD"],
  132: ["audio", "AC3-Plus"],
  133: ["audio", "DTS-HD"],
  134: ["audio", "DTS-MA"],
  161: ["audio", "AC3-Plus-SEC"],
  162: ["audio", "DTS-HD-SEC"]
};
var TsDemuxer$2 = function(_EventEmitter) {
  _inherits$4(TsDemuxer2, _EventEmitter);
  _createClass$d(TsDemuxer2, null, [{
    key: "EVENTS",
    get: function get5() {
      return {
        DEMUX_COMPLETE: "DEMUX_COMPLETE",
        METADATA_PARSED: "METADATA_PARSED",
        VIDEO_SAMPLE_PARSED: "VIDEO_SAMPLE_PARSED",
        AUDIO_SAMPLE_PARSED: "AUDIO_SAMPLES_PARSED",
        SEI_PARSED: "SEI_PARSED"
      };
    }
  }]);
  function TsDemuxer2(_ref) {
    var videoTrack = _ref.videoTrack, audioTrack = _ref.audioTrack;
    _classCallCheck$d(this, TsDemuxer2);
    var _this = _possibleConstructorReturn$4(this, (TsDemuxer2.__proto__ || Object.getPrototypeOf(TsDemuxer2)).call(this));
    _this.TAG = "TsDemuxer";
    _this.demuxing = false;
    _this.videoTrack = videoTrack;
    _this.audioTrack = audioTrack;
    _this.pat = [];
    _this.pmt = [];
    _this._hasVideoMeta = false;
    _this._hasAudioMeta = false;
    _this.gopId = 0;
    return _this;
  }
  _createClass$d(TsDemuxer2, [{
    key: "demux",
    value: function demux(frag, buffer, isVod) {
      if (frag) {
        logger.log(this.TAG, "do demux: id=" + frag.id + ",demuxing=" + this.demuxing);
      }
      if (this.demuxing) {
        return;
      }
      var frags = { pat: [], pmt: [] };
      var peses = {};
      while (buffer.length >= 188) {
        if (buffer.length >= 1 && buffer.array[0][buffer.offset] !== 71) {
          throw new Error("Untrust sync code: " + buffer.array[0][buffer.offset] + ", try to recover;");
        }
        while (buffer.length >= 1 && buffer.array[0][buffer.offset] !== 71) {
          buffer.shift(1);
        }
        if (buffer.length < 188) {
          continue;
        }
        var buf = buffer.shift(188);
        var tsStream = new XGDataView$1(buf.buffer);
        var ts = {};
        TsDemuxer2.read(tsStream, ts, frags);
        var pes = peses[ts.header.pid];
        if (ts.pes) {
          ts.pes.codec = ts.header.codec;
          ts.pes.streamType = ts.header.streamType;
          if (!peses[ts.header.pid]) {
            peses[ts.header.pid] = [];
          }
          peses[ts.header.pid].push(ts.pes);
          ts.pes.ES.buffer = [ts.pes.ES.buffer];
        } else if (pes) {
          pes[pes.length - 1].ES.buffer.push(ts.payload.stream);
        }
      }
      var AudioOptions = Object.assign({}, frag);
      var VideoOptions = Object.assign({}, frag);
      var noAudio = isVod && this._hasVideoMeta && !this._hasAudioMeta;
      var noVideo = isVod && this._hasAudioMeta && !this._hasVideoMeta;
      for (var i = 0; i < Object.keys(peses).length; i++) {
        var epeses = peses[Object.keys(peses)[i]];
        for (var j = 0; j < epeses.length; j++) {
          var cPes = epeses[j];
          cPes.id = Object.keys(peses)[i];
          var isAAC = cPes.streamType === 15 || cPes.streamType === 17;
          if (cPes.type === "audio" && !noAudio && isAAC) {
            cPes.ES.buffer = TsDemuxer2.mergeAudioES(cPes.ES.buffer);
            this.pushAudioSample(cPes, AudioOptions);
            AudioOptions = {};
          } else if (cPes.type === "video" && !noVideo) {
            cPes.ES.buffer = TsDemuxer2.mergeVideoES(cPes.ES.buffer);
            if (cPes.codec === "HVC.H265") {
              this.pushVideoSampleHEVC(epeses[j], VideoOptions);
            } else {
              this.pushVideoSample(epeses[j], VideoOptions);
            }
            VideoOptions = { spsFound: !!VideoOptions.spsFound };
          }
        }
      }
    }
  }, {
    key: "pushAudioSample",
    value: function pushAudioSample(pes, options) {
      var meta = new AudioTrackMeta({
        audioSampleRate: pes.ES.frequence,
        sampleRate: pes.ES.frequence,
        channelCount: pes.ES.channel,
        codec: "mp4a.40." + pes.ES.audioObjectType,
        originCodec: "mp4a.40." + pes.ES.originAudioObjectType,
        originObjectType: pes.ES.originAudioObjectType,
        config: pes.ES.audioConfig,
        id: 2,
        sampleRateIndex: pes.ES.frequencyIndex
      });
      meta.refSampleDuration = Math.floor(1024 / meta.audioSampleRate * meta.timescale);
      var metaEqual = TsDemuxer2.compareMeta(this.audioTrack.meta, meta, true);
      if (!this._hasAudioMeta || !metaEqual) {
        this._hasAudioMeta = true;
        if (options) {
          options.meta = Object.assign({}, meta);
        } else {
          options = {
            meta: Object.assign({}, meta)
          };
        }
        this.emit(TsDemuxer2.EVENTS.METADATA_PARSED, "audio", meta);
      }
      var frameIndex = 0;
      pes.ES.buffer.skip(pes.pesHeaderLength + 9);
      var streamChanged = false;
      while (pes.ES.buffer.position < pes.ES.buffer.length) {
        if (ADTS$1.isHeader(new Uint8Array(pes.ES.buffer.buffer), pes.ES.buffer.position) && pes.ES.buffer.position + 5 < pes.ES.buffer.length) {
          var frame = ADTS$1.appendFrame(this.audioTrack.meta.sampleRate, new Uint8Array(pes.ES.buffer.buffer), pes.ES.buffer.position, pes.pts, frameIndex);
          if (frame && frame.sample) {
            pes.ES.buffer.skip(frame.length);
            var sample = new AudioSample({
              dts: frame.sample.dts,
              pts: frame.sample.pts,
              data: frame.sample.unit,
              options: streamChanged ? {} : options
            });
            if (options.meta) {
              streamChanged = true;
            }
            sample.dts = sample.pts = Math.ceil(sample.pts / 90);
            this.emit(TsDemuxer2.EVENTS.AUDIO_SAMPLE_PARSED, sample);
            frameIndex++;
          } else {
            break;
          }
        } else {
          pes.ES.buffer.skip(1);
        }
      }
    }
  }, {
    key: "pushVideoSample",
    value: function pushVideoSample(pes, options) {
      var _this2 = this;
      var nals = NalUnit$1.getNalunits(pes.ES.buffer);
      var meta = new VideoTrackMeta();
      var spsFound = options.spsFound;
      var sampleLength = 0;
      var sps = false;
      var pps = false;
      var seiList = [];
      for (var i = 0; i < nals.length; i++) {
        var nal = nals[i];
        if (nal.type < 9 && !nal.sei) {
          sampleLength += 4 + nal.body.byteLength;
        }
        if (nal.sps) {
          sps = nal;
          meta.sps = nal.body;
          meta.chromaFormat = sps.sps.chroma_format;
          meta.codec = "avc1.";
          for (var j = 1; j < 4; j++) {
            var h = sps.body[j].toString(16);
            if (h.length < 2) {
              h = "0" + h;
            }
            meta.codec += h;
          }
          meta.codecHeight = sps.sps.codec_size.height;
          meta.codecWidth = sps.sps.codec_size.width;
          meta.frameRate = sps.sps.frame_rate;
          meta.id = 1;
          meta.level = sps.sps.level_string;
          meta.presentHeight = sps.sps.present_size.height;
          meta.presentWidth = sps.sps.present_size.width;
          meta.profile = sps.sps.profile_string;
          meta.refSampleDuration = Math.floor(meta.timescale * (sps.sps.frame_rate.fps_den / sps.sps.frame_rate.fps_num));
          meta.sarRatio = sps.sps.sar_ratio ? sps.sps.sar_ratio : sps.sps.par_ratio;
        } else if (nal.pps) {
          meta.pps = nal.body;
          pps = nal;
        } else if (nal.sei) {
          seiList.push(nal.sei);
        }
      }
      if (sps && pps) {
        meta.avcc = NalUnit$1.getAvcc(sps.body, pps.body);
        var metaEqual = TsDemuxer2.compareMeta(this.videoTrack.meta, meta, true);
        if (!this._hasVideoMeta || !metaEqual) {
          if (options) {
            options.meta = Object.assign({}, meta);
          } else {
            options = {
              meta: Object.assign({}, meta)
            };
          }
          if (!spsFound) {
            this.emit(TsDemuxer2.EVENTS.METADATA_PARSED, "video", meta);
          }
          options.spsFound = true;
          this._hasVideoMeta = true;
        }
      }
      var data = new Uint8Array(sampleLength);
      var offset = 0;
      var isKeyframe = false;
      for (var _i = 0; _i < nals.length; _i++) {
        var _nal = nals[_i];
        if (_nal.type && _nal.type >= 9) {
          continue;
        }
        var length = _nal.body.byteLength;
        if (_nal.idr) {
          isKeyframe = true;
        }
        if (!_nal.sei) {
          data.set(new Uint8Array([length >>> 24 & 255, length >>> 16 & 255, length >>> 8 & 255, length & 255]), offset);
          offset += 4;
          data.set(_nal.body, offset);
          offset += length;
        }
      }
      var dts = parseInt(pes.dts / 90);
      var pts = parseInt(pes.pts / 90);
      if (seiList.length) {
        seiList.forEach(function(sei) {
          sei.dts = dts;
          _this2.emit(TsDemuxer2.EVENTS.SEI_PARSED, sei);
        });
      }
      var sample = new VideoSample({
        dts,
        pts,
        cts: pts - dts,
        originDts: pes.dts,
        purePts: pes.purePts,
        isKeyframe,
        data,
        nals,
        options,
        firstInGop: isKeyframe,
        gopId: isKeyframe ? ++this.gopId : this.gopId
      });
      this.emit(TsDemuxer2.EVENTS.VIDEO_SAMPLE_PARSED, sample);
    }
  }, {
    key: "pushVideoSampleHEVC",
    value: function pushVideoSampleHEVC(pes, options) {
      var _this3 = this;
      var nals = NalUnitHEVC$1.getNalunits(pes.ES.buffer);
      nals = nals.filter(function(x) {
        return x.body && x.body.length;
      });
      var meta = new VideoTrackMeta();
      meta.streamType = 36;
      var sampleLength = 0;
      var vps = false;
      var sps = false;
      var pps = false;
      var seiList = [];
      var hasVPS = false;
      var hasSPS = false;
      var hasPPS = false;
      var firstInGop = false;
      for (var i = 0; i < nals.length; i++) {
        var nal = nals[i];
        if (nal.vps) {
          if (hasVPS) {
            continue;
          } else {
            hasVPS = true;
          }
        } else if (nal.sps) {
          if (hasSPS) {
            continue;
          } else {
            hasSPS = true;
          }
        } else if (nal.pps) {
          if (hasPPS) {
            continue;
          } else {
            hasPPS = true;
          }
        } else if (nal.key) {
          if (nal.type === 20 || nal.type === 19) {
            firstInGop = true;
          }
        } else if (nal.type === 0)
          ;
        else if (nal.type === 35) {
          continue;
        }
        if (nal.sps) {
          sps = nal;
          meta.sps = nal.body;
          meta.presentWidth = sps.sps.width;
          meta.presentHeight = sps.sps.height;
          meta.general_profile_space = sps.sps.general_profile_space;
          meta.general_tier_flag = sps.sps.general_tier_flag;
          meta.general_profile_idc = sps.sps.general_profile_idc;
          meta.general_level_idc = sps.sps.general_level_idc;
          meta.codec = "hev1.1.6.L93.B0";
          meta.chromaFormatIdc = sps.sps.chromaFormatIdc;
          meta.bitDepthLumaMinus8 = sps.sps.bitDepthLumaMinus8;
          meta.bitDepthChromaMinus8 = sps.sps.bitDepthChromaMinus8;
        } else if (nal.pps) {
          meta.pps = nal.body;
          pps = nal;
        } else if (nal.vps) {
          meta.vps = nal.body;
          vps = nal;
        } else if (nal.sei) {
          seiList.push(nal.sei);
        }
        if (nal.type <= 40) {
          sampleLength += 4 + nal.body.byteLength;
        }
      }
      if (sps && pps && vps) {
        var metaEqual = TsDemuxer2.compareMeta(this.videoTrack.meta, meta, true);
        if (!this._hasVideoMeta || !metaEqual) {
          if (options) {
            options.meta = Object.assign({}, meta);
          } else {
            options = {
              meta: Object.assign({}, meta)
            };
          }
          meta.streamType = 36;
          this.videoTrack.meta = meta;
          this._hasVideoMeta = true;
          this.emit(TsDemuxer2.EVENTS.METADATA_PARSED, "video", meta);
        }
      }
      var data = new Uint8Array(sampleLength);
      var offset = 0;
      var isKeyframe = false;
      hasVPS = false;
      hasSPS = false;
      hasPPS = false;
      for (var _i2 = 0; _i2 < nals.length; _i2++) {
        var _nal2 = nals[_i2];
        if (_nal2.type && _nal2.type > 40) {
          continue;
        }
        if (_nal2.vps) {
          if (hasVPS) {
            continue;
          } else {
            hasVPS = true;
          }
        } else if (_nal2.sps) {
          if (hasSPS) {
            continue;
          } else {
            hasSPS = true;
          }
        } else if (_nal2.pps) {
          if (hasPPS) {
            continue;
          } else {
            hasPPS = true;
          }
        } else if (_nal2.key)
          ;
        else if (_nal2.type === 0)
          ;
        else if (_nal2.type === 35) {
          continue;
        }
        var length = _nal2.body.byteLength;
        if (_nal2.key) {
          isKeyframe = true;
        }
        data.set(new Uint8Array([length >>> 24 & 255, length >>> 16 & 255, length >>> 8 & 255, length & 255]), offset);
        offset += 4;
        data.set(_nal2.body, offset);
        offset += length;
      }
      var dts = parseInt(pes.dts / 90);
      var pts = parseInt(pes.pts / 90);
      if (seiList) {
        seiList.forEach(function(sei) {
          sei.dts = dts;
          _this3.emit(TsDemuxer2.EVENTS.SEI_PARSED, sei);
        });
      }
      var sample = new VideoSample({
        dts,
        pts,
        cts: pts - dts,
        originDts: pes.dts,
        purePts: pes.purePts,
        isKeyframe,
        data,
        nals,
        options,
        firstInGop,
        gopId: firstInGop ? ++this.gopId : this.gopId
      });
      this.emit(TsDemuxer2.EVENTS.VIDEO_SAMPLE_PARSED, sample);
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.removeAllListeners();
      this.configs = {};
      this.demuxing = false;
      this.pat = [];
      this.pmt = [];
      this._hasVideoMeta = false;
      this._hasAudioMeta = false;
    }
  }], [{
    key: "compareArray",
    value: function compareArray(a, b, type) {
      var al = 0;
      var bl = 0;
      if (type === "Uint8Array") {
        al = a.byteLength;
        bl = b.byteLength;
      } else if (type === "Array") {
        al = a.length;
        bl = b.length;
      }
      if (al !== bl) {
        return false;
      }
      for (var i = 0; i < al; i++) {
        if (a[i] !== b[i]) {
          return false;
        }
      }
      return true;
    }
  }, {
    key: "compareMeta",
    value: function compareMeta(a, b, ignoreDuration) {
      if (!a || !b) {
        return false;
      }
      for (var i = 0, k = Object.keys(a).length; i < k; i++) {
        var itema = a[Object.keys(a)[i]];
        var itemb = b[Object.keys(a)[i]];
        if (!itema && !itemb) {
          return true;
        }
        if ((itema === void 0 || itema === null) && itemb || itema && itemb === void 0) {
          return false;
        }
        if ((typeof itema === "undefined" ? "undefined" : _typeof(itema)) !== "object") {
          if (ignoreDuration && Object.keys(a)[i] !== "duration" && Object.keys(a)[i] !== "refSampleDuration" && Object.keys(a)[i] !== "refSampleDurationFixed" && itema !== itemb) {
            return false;
          }
        } else if (itema.byteLength !== void 0) {
          if (itemb.byteLength === void 0) {
            return false;
          }
          if (!TsDemuxer2.compareArray(itema, itemb, "Uint8Array")) {
            return false;
          }
        } else if (itema.length !== void 0) {
          if (itemb.length === void 0) {
            return false;
          }
          if (!TsDemuxer2.compareArray(itema, itemb, "Array")) {
            return false;
          }
        } else {
          if (!TsDemuxer2.compareMeta(itema, itemb)) {
            return false;
          }
        }
      }
      return true;
    }
  }, {
    key: "mergeVideoES",
    value: function mergeVideoES(buffers) {
      var data = void 0;
      var length = 0;
      var offset = 0;
      for (var i = 0; i < buffers.length; i++) {
        length += buffers[i].length - buffers[i].position;
      }
      data = new Uint8Array(length);
      for (var _i3 = 0; _i3 < buffers.length; _i3++) {
        var buffer = buffers[_i3];
        data.set(new Uint8Array(buffer.buffer, buffer.position), offset);
        offset += buffer.length - buffer.position;
      }
      return new XGDataView$1(data.buffer);
    }
  }, {
    key: "mergeAudioES",
    value: function mergeAudioES(buffers) {
      var data = void 0;
      var length = 0;
      var offset = 0;
      for (var i = 0; i < buffers.length; i++) {
        length += buffers[i].length;
      }
      data = new Uint8Array(length);
      for (var _i4 = 0; _i4 < buffers.length; _i4++) {
        var buffer = buffers[_i4];
        data.set(new Uint8Array(buffer.buffer), offset);
        offset += buffer.length;
      }
      return new XGDataView$1(data.buffer);
    }
  }, {
    key: "read",
    value: function read(stream, ts, frags) {
      TsDemuxer2.readHeader(stream, ts);
      TsDemuxer2.readPayload(stream, ts, frags);
      if (ts.header.packet === "MEDIA" && ts.header.payload === 1 && !ts.unknownPIDs) {
        ts.pes = TsDemuxer2.PES(ts);
      }
    }
  }, {
    key: "readPayload",
    value: function readPayload(stream, ts, frags) {
      var header = ts.header;
      var pid = header.pid;
      switch (pid) {
        case 0:
          TsDemuxer2.PAT(stream, ts, frags);
          break;
        case 1:
          TsDemuxer2.CAT(stream, ts, frags);
          break;
        case 2:
          TsDemuxer2.TSDT(stream, ts, frags);
          break;
        case 8191:
          break;
        default:
          var isPMT = false;
          for (var i = 0, len = frags.pat.length; i < len; i++) {
            if (frags.pat[i].pid === pid) {
              isPMT = true;
              break;
            }
          }
          if (isPMT) {
            TsDemuxer2.PMT(stream, ts, frags);
          } else {
            var sts = [];
            for (var _i5 = 0, _len = frags.pmt.length; _i5 < _len; _i5++) {
              if (frags.pmt[_i5].pid === pid) {
                sts.push(frags.pmt[_i5]);
                break;
              }
            }
            if (sts.length > 0) {
              var streamType = sts[0].streamType;
              TsDemuxer2.Media(stream, ts, streamType);
            } else {
              ts.unknownPIDs = true;
            }
          }
      }
    }
  }, {
    key: "readHeader",
    value: function readHeader(stream, ts) {
      var header = {};
      header.sync = stream.readUint8();
      var next = stream.readUint16();
      header.error = next >>> 15;
      header.payload = next >>> 14 & 1;
      header.priority = next >>> 13 & 1;
      header.pid = next & 8191;
      next = stream.readUint8();
      header.scrambling = next >> 6 & 3;
      header.adaptation = next >> 4 & 3;
      header.continuity = next & 15;
      header.packet = header.pid === 0 ? "PAT" : "MEDIA";
      ts.header = header;
    }
  }, {
    key: "PAT",
    value: function PAT(stream, ts, frags) {
      var ret = {};
      var next = stream.readUint8();
      stream.skip(next);
      next = stream.readUint8();
      ret.tabelID = next;
      next = stream.readUint16();
      ret.error = next >>> 7;
      ret.zero = next >>> 6 & 1;
      ret.sectionLength = next & 4095;
      ret.streamID = stream.readUint16();
      ret.current = stream.readUint8() & 1;
      ret.sectionNumber = stream.readUint8();
      ret.lastSectionNumber = stream.readUint8();
      var N = (ret.sectionLength - 9) / 4;
      var list = [];
      for (var i = 0; i < N; i++) {
        var programNumber = stream.readUint16();
        var pid = stream.readUint16() & 8191;
        list.push({
          program: programNumber,
          pid,
          type: programNumber === 0 ? "network" : "mapPID"
        });
      }
      if (list.length > 0) {
        frags.pat = frags.pat.concat(list);
      }
      ret.list = list;
      ret.program = stream.readUint16();
      ret.pid = stream.readUint16() & 8191;
      ts.payload = ret;
    }
  }, {
    key: "PMT",
    value: function PMT(stream, ts, frags) {
      var header = ts.header;
      header.packet = "PMT";
      var offset = stream.position;
      offset += stream.getUint8(offset);
      offset += 1;
      var sectionLength = (stream.getUint8(offset + 1) & 15) << 8 | stream.getUint8(offset + 2);
      var tableEnd = offset + 3 + sectionLength - 4;
      var programInfoLength = (stream.getUint8(offset + 10) & 15) << 8 | stream.getUint8(offset + 11);
      offset += 12 + programInfoLength;
      var list = [];
      while (offset < tableEnd) {
        var pid = (stream.getUint8(offset + 1) & 31) << 8 | stream.getUint8(offset + 2);
        list.push({
          streamType: stream.getUint8(offset),
          pid
        });
        offset += ((stream.getUint8(offset + 3) & 15) << 8 | stream.getUint8(offset + 4)) + 5;
      }
      frags.pmt = list;
      stream.skip(tableEnd + 4);
    }
  }, {
    key: "Media",
    value: function Media(stream, ts, streamType) {
      var header = ts.header;
      var payload = {};
      var _StreamType$streamTyp = _slicedToArray(StreamType[streamType], 2), type = _StreamType$streamTyp[0], codec = _StreamType$streamTyp[1];
      header.streamType = streamType;
      header.type = type;
      header.codec = codec;
      if (header.adaptation === 3) {
        payload.adaptationLength = stream.readUint8();
        if (payload.adaptationLength > 0) {
          var next = stream.readUint8();
          payload.discontinue = next >>> 7;
          payload.access = next >>> 6 & 1;
          payload.priority = next >>> 5 & 1;
          payload.PCR = next >>> 4 & 1;
          payload.OPCR = next >>> 3 & 1;
          payload.splicePoint = next >>> 2 & 1;
          payload.transportPrivate = next >>> 1 & 1;
          payload.adaptationField = next & 1;
          var _start = stream.position;
          if (payload.PCR === 1) {
            payload.programClockBase = stream.readUint32() << 1;
            next = stream.readUint16();
            payload.programClockBase |= next >>> 15;
            payload.programClockExtension = next & 511;
          }
          if (payload.OPCR === 1) {
            payload.originProgramClockBase = stream.readUint32() << 1;
            next = stream.readUint16();
            payload.originProgramClockBase += next >>> 15;
            payload.originProgramClockExtension = next & 511;
          }
          if (payload.splicePoint === 1) {
            payload.spliceCountdown = stream.readUint8();
          }
          if (payload.transportPrivate === 1) {
            var length = stream.readUint8();
            var transportPrivateData = [];
            for (var i = 0; i < length; i++) {
              transportPrivateData.push(stream.readUint8());
            }
          }
          if (payload.adaptationField === 1) {
            var _length = stream.readUint8();
            var _next = stream.readUint8();
            var start2 = stream.position;
            var ltw = _next >>> 7;
            var piecewise = _next >>> 6 & 1;
            var seamless = _next >>> 5 & 1;
            if (ltw === 1) {
              _next = stream.readUint16();
              payload.ltwValid = _next >>> 15;
              payload.ltwOffset = _next & 61439;
            }
            if (piecewise === 1) {
              _next = stream.readUint24();
              payload.piecewiseRate = _next & 4194303;
            }
            if (seamless === 1) {
              _next = stream.readInt8();
              payload.spliceType = _next >>> 4;
              payload.dtsNextAU1 = _next >>> 1 & 7;
              payload.marker1 = _next & 1;
              _next = stream.readUint16();
              payload.dtsNextAU2 = _next >>> 1;
              payload.marker2 = _next & 1;
              _next = stream.readUint16();
              payload.dtsNextAU3 = _next;
            }
            stream.skip(_length - 1 - (stream.position - start2));
          }
          var lastStuffing = payload.adaptationLength - 1 - (stream.position - _start);
          stream.skip(lastStuffing);
        }
      }
      payload.stream = new XGDataView$1(stream.buffer.slice(stream.position));
      ts.payload = payload;
    }
  }, {
    key: "PES",
    value: function PES(ts) {
      var ret = {};
      var buffer = ts.payload.stream;
      var next = buffer.readUint24();
      if (next !== 1) {
        ret.ES = {};
        ret.ES.buffer = buffer;
      } else {
        var streamID = buffer.readUint8();
        if (streamID >= 224 && streamID <= 239) {
          ret.type = "video";
        }
        if (streamID >= 192 && streamID <= 223) {
          ret.type = "audio";
        }
        var packetLength = buffer.readUint16();
        ret.packetLength = packetLength;
        if (ret.type === "video" || ret.type === "audio") {
          var _next2 = buffer.readUint8();
          var first = _next2 >>> 6;
          if (first !== 2) {
            throw new Error("error when parse pes header");
          }
          _next2 = buffer.readUint8();
          ret.ptsDTSFlag = _next2 >>> 6;
          ret.escrFlag = _next2 >>> 5 & 1;
          ret.esRateFlag = _next2 >>> 4 & 1;
          ret.dsmFlag = _next2 >>> 3 & 1;
          ret.additionalFlag = _next2 >>> 2 & 1;
          ret.crcFlag = _next2 >>> 1 & 1;
          ret.extensionFlag = _next2 & 1;
          ret.pesHeaderLength = buffer.readUint8();
          var N1 = ret.pesHeaderLength;
          var pts = [];
          pts.push(buffer.readUint8());
          pts.push(buffer.readUint8());
          pts.push(buffer.readUint8());
          pts.push(buffer.readUint8());
          pts.push(buffer.readUint8());
          var p = (pts[0] & 14) * 536870912 + (pts[1] & 255) * 4194304 + (pts[2] & 254) * 16384 + (pts[3] & 255) * 128 + (pts[4] & 254) / 2;
          ret.purePts = p;
          buffer.dataview.position -= 5;
          pts = [];
          _next2 = buffer.readUint8();
          pts.push(_next2 >>> 1 & 7);
          _next2 = buffer.readUint16();
          pts.push(_next2 >>> 1);
          _next2 = buffer.readUint16();
          pts.push(_next2 >>> 1);
          ret.pts = pts[0] << 30 | pts[1] << 15 | pts[2];
          N1 -= 5;
          if (ret.type === "video") {
            ret.dts = ret.pts;
          }
          if (ret.ptsDTSFlag === 3) {
            var dts = [];
            _next2 = buffer.readUint8();
            dts.push(_next2 >>> 1 & 7);
            _next2 = buffer.readUint16();
            dts.push(_next2 >>> 1);
            _next2 = buffer.readUint16();
            dts.push(_next2 >>> 1);
            ret.dts = dts[0] << 30 | dts[1] << 15 | dts[2];
            N1 -= 5;
          }
          if (ret.escrFlag === 1) {
            var escr = [];
            var ex = [];
            _next2 = buffer.readUint8();
            escr.push(_next2 >>> 3 & 7);
            escr.push(_next2 & 3);
            _next2 = buffer.readUint16();
            escr.push(_next2 >>> 13);
            escr.push(_next2 & 3);
            _next2 = buffer.readUint16();
            escr.push(_next2 >>> 13);
            ex.push(_next2 & 3);
            _next2 = buffer.readUint8();
            ex.push(_next2 >>> 1);
            ret.escr = (escr[0] << 30 | escr[1] << 28 | escr[2] << 15 | escr[3] << 13 | escr[4]) * 300 + (ex[0] << 7 | ex[1]);
            N1 -= 6;
          }
          if (ret.esRateFlag === 1) {
            _next2 = buffer.readUint24();
            ret.esRate = _next2 >>> 1 & 4194303;
            N1 -= 3;
          }
          if (ret.dsmFlag === 1) {
            throw new Error("not support DSM_trick_mode");
          }
          if (ret.additionalFlag === 1) {
            _next2 = buffer.readUint8();
            ret.additionalCopyInfo = _next2 & 127;
            N1 -= 1;
          }
          if (ret.crcFlag === 1) {
            ret.pesCRC = buffer.readUint16();
            N1 -= 2;
          }
          if (ret.extensionFlag === 1) {
            throw new Error("not support extension");
          }
          if (N1 > 0) {
            buffer.skip(N1);
          }
          if (ret.dts > ret.pts) {
            ret.dts = ret.pts;
          }
          ret.ES = TsDemuxer2.ES(buffer, ret.type, ts.header.streamType);
        } else {
          throw new Error("format is not supported");
        }
      }
      return ret;
    }
  }, {
    key: "ES",
    value: function ES(buffer, type, streamType) {
      var ret = {};
      if (type === "video") {
        ret.buffer = buffer;
      } else if (type === "audio") {
        if (streamType === 15 || streamType === 17) {
          ret = TsDemuxer2.parseADTSHeader(buffer);
        }
        ret.buffer = buffer;
      } else {
        throw new Error("ES " + type + " is not supported");
      }
      return ret;
    }
  }, {
    key: "parseADTSHeader",
    value: function parseADTSHeader(buffer) {
      var ret = {};
      var next = buffer.readUint16();
      if (next >>> 4 !== 4095) {
        throw new Error("aac ES parse Error");
      }
      var fq = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350];
      ret.id = (next >>> 3 & 1) === 0 ? "MPEG-4" : "MPEG-2";
      ret.layer = next >>> 1 & 3;
      ret.absent = next & 1;
      next = buffer.readUint16();
      ret.audioObjectType = (next >>> 14 & 3) + 1;
      ret.profile = ret.audioObjectType - 1;
      ret.frequencyIndex = next >>> 10 & 15;
      ret.frequence = fq[ret.frequencyIndex];
      ret.channel = next >>> 6 & 7;
      ret.frameLength = (next & 3) << 11 | buffer.readUint16() >>> 5;
      TsDemuxer2.getAudioConfig(ret);
      buffer.skip(1);
      ret.buffer = buffer;
      return ret;
    }
  }, {
    key: "TSDT",
    value: function TSDT(stream, ts, frags) {
      ts.payload = {};
    }
  }, {
    key: "CAT",
    value: function CAT(stream, ts, frags) {
      var ret = {};
      ret.tableID = stream.readUint8();
      var next = stream.readUint16();
      ret.sectionIndicator = next >>> 7;
      ret.sectionLength = next & 4095;
      stream.skip(2);
      next = stream.readUint8();
      ret.version = next >>> 3;
      ret.currentNextIndicator = next & 1;
      ret.sectionNumber = stream.readUint8();
      ret.lastSectionNumber = stream.readUint8();
      (this.sectionLength - 9) / 4;
      ret.crc32 = stream.readUint32();
      ts.payload = ret;
    }
  }, {
    key: "getAudioConfig",
    value: function getAudioConfig(ret) {
      var userAgent = navigator.userAgent.toLowerCase();
      var config = void 0;
      var extensionSampleIndex = void 0;
      ret.originAudioObjectType = ret.audioObjectType;
      if (/firefox/i.test(userAgent)) {
        if (ret.frequencyIndex >= 8) {
          ret.audioObjectType = 5;
          config = new Array(4);
          extensionSampleIndex = ret.frequencyIndex - 3;
        } else {
          ret.audioObjectType = 2;
          config = new Array(2);
          extensionSampleIndex = ret.frequencyIndex;
        }
      } else if (userAgent.indexOf("android") !== -1) {
        ret.audioObjectType = 2;
        config = new Array(2);
        extensionSampleIndex = ret.frequencyIndex;
      } else {
        ret.audioObjectType = 5;
        config = new Array(4);
        if (ret.frequencyIndex >= 6) {
          extensionSampleIndex = ret.frequencyIndex - 3;
        } else {
          if (ret.channel === 1) {
            ret.audioObjectType = 2;
            config = new Array(2);
          }
          extensionSampleIndex = ret.frequencyIndex;
        }
      }
      config[0] = ret.audioObjectType << 3;
      config[0] |= (ret.frequencyIndex & 14) >> 1;
      config[1] = (ret.frequencyIndex & 1) << 7;
      config[1] |= ret.channel << 3;
      if (ret.audioObjectType === 5) {
        config[1] |= (extensionSampleIndex & 14) >> 1;
        config[2] = (extensionSampleIndex & 1) << 7;
        config[2] |= 2 << 2;
        config[3] = 0;
      }
      ret.audioConfig = config;
    }
  }]);
  return TsDemuxer2;
}(EventEmitter);
var Demuxer = TsDemuxer$2;
var _createClass$c = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$c(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var DEMUX_EVENTS$2 = EVENTS.DEMUX_EVENTS;
var TsDemuxer = function() {
  function TsDemuxer2(configs) {
    _classCallCheck$c(this, TsDemuxer2);
    this.configs = Object.assign({}, configs);
    this.demuxer = null;
  }
  _createClass$c(TsDemuxer2, [{
    key: "init",
    value: function init() {
      this.on(DEMUX_EVENTS$2.DEMUX_START, this.demux.bind(this));
    }
  }, {
    key: "initDemuxer",
    value: function initDemuxer() {
      this.demuxer.on(Demuxer.EVENTS.METADATA_PARSED, this.onMetaDataParsed.bind(this));
      this.demuxer.on(Demuxer.EVENTS.VIDEO_SAMPLE_PARSED, this.onVideoSampleParsed.bind(this));
      this.demuxer.on(Demuxer.EVENTS.AUDIO_SAMPLE_PARSED, this.onAudioSampleParsed.bind(this));
      this.demuxer.on(Demuxer.EVENTS.SEI_PARSED, this.emit.bind(this, DEMUX_EVENTS$2.SEI_PARSED));
    }
  }, {
    key: "demux",
    value: function demux(frag, isVod) {
      if (!this._tracks) {
        return;
      }
      if (!this._tracks.audioTrack) {
        this._tracks.audioTrack = new AudioTrack();
      }
      if (!this._tracks.videoTrack) {
        this._tracks.videoTrack = new VideoTrack();
      }
      if (!this.demuxer) {
        this.demuxer = new Demuxer(this._tracks);
        this.initDemuxer();
      }
      try {
        this.demuxer.demux(frag, this.inputBuffer, isVod);
      } catch (e) {
        this.emit(DEMUX_EVENTS$2.DEMUX_ERROR, this.TAG, e, false);
      }
      var hasVideo = this._tracks.videoTrack && this._tracks.videoTrack.samples.length ? 1 : 0;
      var hasAudio = this._tracks.audioTrack && this._tracks.audioTrack.samples.length ? 1 : 0;
      this.emit(DEMUX_EVENTS$2.DEMUX_COMPLETE, hasVideo, hasAudio);
    }
  }, {
    key: "onMetaDataParsed",
    value: function onMetaDataParsed(type, meta) {
      var _tracks = this._tracks, videoTrack = _tracks.videoTrack, audioTrack = _tracks.audioTrack;
      var track = videoTrack;
      switch (type) {
        case "video":
          track = videoTrack;
          break;
        case "audio":
          track = audioTrack;
          break;
        default:
          track = videoTrack;
      }
      track.meta = meta;
      this.emit(DEMUX_EVENTS$2.METADATA_PARSED, type, meta);
    }
  }, {
    key: "onVideoSampleParsed",
    value: function onVideoSampleParsed(sample) {
      if (sample.isKeyframe) {
        this.emit(DEMUX_EVENTS$2.ISKEYFRAME, sample.pts);
      }
      this._tracks.videoTrack.samples.push(sample);
    }
  }, {
    key: "onAudioSampleParsed",
    value: function onAudioSampleParsed(sample) {
      this._tracks.audioTrack.samples.push(sample);
    }
  }, {
    key: "destroy",
    value: function destroy() {
      this.off(DEMUX_EVENTS$2.DEMUX_START, this.demux);
      this.configs = {};
      this.demuxer && this.demuxer.destroy();
    }
  }, {
    key: "inputBuffer",
    get: function get5() {
      return this._context.getInstance(this.configs.inputbuffer);
    }
  }, {
    key: "_tracks",
    get: function get5() {
      return this._context.getInstance("TRACKS");
    }
  }]);
  return TsDemuxer2;
}();
var TsDemuxer$1 = TsDemuxer;
var _createClass$b = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$b(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var REGEXP_ABSOLUTE_URL = /^(?:[a-zA-Z0-9+\-.]+:)?\/\//;
var REGEXP_URL_PAIR = /^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;
function getAbsoluteUrl(url, parentUrl) {
  if (!parentUrl || !url || REGEXP_ABSOLUTE_URL.test(url))
    return url;
  var pairs = REGEXP_URL_PAIR.exec(parentUrl);
  if (!pairs)
    return url;
  if (url[0] === "/")
    return pairs[1] + url;
  return pairs[1] + pairs[2] + url;
}
var M3U8Parser = function() {
  function M3U8Parser2() {
    _classCallCheck$b(this, M3U8Parser2);
  }
  _createClass$b(M3U8Parser2, null, [{
    key: "parse",
    value: function parse(text) {
      var baseurl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
      var ret = {
        duration: 0
      };
      if (!text || !text.split) {
        return;
      }
      var refs = text.split(/\r|\n/);
      refs = refs.filter(function(ref2) {
        return ref2;
      });
      var ref = refs.shift();
      if (!ref.match("#EXTM3U")) {
        throw new Error('Invalid m3u8 file: not "#EXTM3U"');
      }
      ref = refs.shift();
      var nextDiscontinue = false;
      var nextId = 0;
      while (ref) {
        var refm = ref.match(/#(.[A-Z|-]*):(.*)/);
        var refd = ref.match(/#(.[A-Z|-]*)/);
        if (refd && refm && refm.length > 2) {
          switch (refm[1]) {
            case "EXT-X-VERSION":
              ret.version = parseInt(refm[2]);
              break;
            case "EXT-X-MEDIA-SEQUENCE":
              ret.sequence = parseInt(refm[2]);
              break;
            case "EXT-X-TARGETDURATION":
              ret.targetduration = parseFloat(refm[2]);
              break;
            case "EXTINF":
              nextId = M3U8Parser2.parseFrag(refm, refs, ret, baseurl, nextDiscontinue, nextId);
              nextDiscontinue = false;
              break;
            case "EXT-X-KEY":
              M3U8Parser2.parseDecrypt(refm[2], ret);
              break;
          }
        }
        if (refd && refd.length > 1) {
          switch (refd[1]) {
            case "EXT-X-DISCONTINUITY":
              nextDiscontinue = true;
              break;
            case "EXT-X-ENDLIST":
              var last = ret.frags[ret.frags.length - 1];
              last.isLast = true;
              ret.end = true;
              break;
          }
        }
        ref = refs[nextId++];
      }
      return ret;
    }
  }, {
    key: "parseFrag",
    value: function parseFrag(refm, refs, ret, baseurl, discontinue, nextId) {
      if (!ret.frags) {
        ret.frags = [];
      }
      var frag = new TsFrag$1({
        start: ret.duration,
        duration: parseInt(parseFloat(refm[2]) * 1e3)
      });
      if (frag.duration < 200) {
        return nextId;
      }
      ret.duration += frag.duration;
      var nextline = refs[nextId++];
      if (nextline.match(/#(.*):(.*)/) || nextline.match(/^#/)) {
        nextline = refs[nextId++];
      }
      frag.url = getAbsoluteUrl(nextline, baseurl);
      frag.discontinue = discontinue;
      if (ret.frags.length) {
        var last = ret.frags[ret.frags.length - 1];
        frag.id = last.id + 1;
        frag.cc = discontinue ? last.cc + 1 : last.cc;
      } else {
        frag.id = ret.sequence || 1;
        frag.cc = 0;
      }
      ret.frags.push(frag);
      return nextId;
    }
  }, {
    key: "parseDecrypt",
    value: function parseDecrypt(refm, ret) {
      ret.encrypt = {};
      var refs = refm.split(",");
      for (var i in refs) {
        var cmd = refs[i];
        if (cmd.match(/METHOD=(.*)/)) {
          ret.encrypt.method = cmd.match(/METHOD=(.*)/)[1];
        }
        if (cmd.match(/URI="(.*)"/)) {
          ret.encrypt.uri = cmd.match(/URI="(.*)"/)[1];
        }
        if (cmd.match(/IV=0x(.*)/)) {
          var iv = cmd.match(/IV=0x(.*)/)[1];
          var length = Math.ceil(iv.length / 2);
          ret.encrypt.ivb = new Uint8Array(length);
          for (var _i = length - 1; _i >= 0; _i--) {
            var im = parseInt(iv.substr(_i * 2, 2), 16);
            ret.encrypt.ivb[_i] = im;
          }
          ret.encrypt.iv = iv;
        }
      }
    }
  }, {
    key: "isHTTPS",
    value: function isHTTPS(url) {
      var httpsUrlRegex = /^https:\/\//i;
      return httpsUrlRegex.test(url);
    }
  }]);
  return M3U8Parser2;
}();
var M3U8Parser$1 = M3U8Parser;
var concat = {};
Object.defineProperty(concat, "__esModule", {
  value: true
});
concat.default = function(ResultConstructor) {
  var totalLength = 0;
  for (var _len = arguments.length, arrays = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    arrays[_key - 1] = arguments[_key];
  }
  var _iteratorNormalCompletion = true;
  var _didIteratorError = false;
  var _iteratorError = void 0;
  try {
    for (var _iterator = arrays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
      var arr = _step.value;
      totalLength += arr.length;
    }
  } catch (err) {
    _didIteratorError = true;
    _iteratorError = err;
  } finally {
    try {
      if (!_iteratorNormalCompletion && _iterator.return) {
        _iterator.return();
      }
    } finally {
      if (_didIteratorError) {
        throw _iteratorError;
      }
    }
  }
  var result = new ResultConstructor(totalLength);
  var offset = 0;
  var _iteratorNormalCompletion2 = true;
  var _didIteratorError2 = false;
  var _iteratorError2 = void 0;
  try {
    for (var _iterator2 = arrays[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
      var _arr = _step2.value;
      result.set(_arr, offset);
      offset += _arr.length;
    }
  } catch (err) {
    _didIteratorError2 = true;
    _iteratorError2 = err;
  } finally {
    try {
      if (!_iteratorNormalCompletion2 && _iterator2.return) {
        _iterator2.return();
      }
    } finally {
      if (_didIteratorError2) {
        throw _iteratorError2;
      }
    }
  }
  return result;
};
var _concat = concat;
var _concat2 = _interopRequireDefault(_concat);
function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : { default: obj };
}
var lib = _concat2.default;
var _createClass$a = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$a(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Buffer = function() {
  function Buffer2(buffer) {
    _classCallCheck$a(this, Buffer2);
    this.buffer = buffer || new Uint8Array(0);
  }
  _createClass$a(Buffer2, [{
    key: "write",
    value: function write() {
      var _this = this;
      for (var _len = arguments.length, buffer = Array(_len), _key = 0; _key < _len; _key++) {
        buffer[_key] = arguments[_key];
      }
      buffer.forEach(function(item) {
        _this.buffer = lib(Uint8Array, _this.buffer, item);
      });
    }
  }], [{
    key: "writeUint32",
    value: function writeUint32(value) {
      return new Uint8Array([value >> 24, value >> 16 & 255, value >> 8 & 255, value & 255]);
    }
  }, {
    key: "readAsInt",
    value: function readAsInt(arr) {
      var temp = "";
      function padStart4Hex(hexNum) {
        var hexStr = hexNum.toString(16);
        return hexStr.padStart(2, "0");
      }
      arr.forEach(function(num) {
        temp += padStart4Hex(num);
      });
      return parseInt(temp, 16);
    }
  }]);
  return Buffer2;
}();
var Buffer$1 = Buffer;
var _createClass$9 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$9(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var Fmp4 = function() {
  function Fmp42() {
    _classCallCheck$9(this, Fmp42);
  }
  _createClass$9(Fmp42, null, [{
    key: "size",
    value: function size(value) {
      return Buffer$1.writeUint32(value);
    }
  }, {
    key: "initBox",
    value: function initBox(size, name) {
      var buffer = new Buffer$1();
      for (var _len = arguments.length, content = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
        content[_key - 2] = arguments[_key];
      }
      buffer.write.apply(buffer, [Fmp42.size(size), Fmp42.type(name)].concat(content));
      return buffer.buffer;
    }
  }, {
    key: "extension",
    value: function extension(version, flag) {
      return new Uint8Array([version, flag >> 16 & 255, flag >> 8 & 255, flag & 255]);
    }
  }, {
    key: "ftyp",
    value: function ftyp() {
      return Fmp42.initBox(24, "ftyp", new Uint8Array([
        105,
        115,
        111,
        109,
        0,
        0,
        0,
        1,
        105,
        115,
        111,
        109,
        97,
        118,
        99,
        49
      ]));
    }
  }, {
    key: "ftypHEVC",
    value: function ftypHEVC() {
      return Fmp42.initBox(24, "ftyp", new Uint8Array([
        105,
        115,
        111,
        109,
        0,
        0,
        0,
        1,
        105,
        115,
        111,
        109,
        100,
        97,
        115,
        104
      ]));
    }
  }, {
    key: "moov",
    value: function moov(_ref) {
      var type = _ref.type, meta = _ref.meta;
      var size = 8;
      var mvhd = Fmp42.mvhd(meta.duration, meta.timescale);
      var trak = void 0;
      if (type === "video") {
        trak = Fmp42.videoTrak(meta);
      } else {
        trak = Fmp42.audioTrak(meta);
      }
      var mvex = Fmp42.mvex(meta.duration, meta.timescale || 1e3, meta.id);
      [mvhd, trak, mvex].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "moov", mvhd, trak, mvex);
    }
  }, {
    key: "mvhd",
    value: function mvhd(duration) {
      var timescale = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e3;
      var bytes = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        timescale >>> 24 & 255,
        timescale >>> 16 & 255,
        timescale >>> 8 & 255,
        timescale & 255,
        duration >>> 24 & 255,
        duration >>> 16 & 255,
        duration >>> 8 & 255,
        duration & 255,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        64,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        255,
        255,
        255,
        255
      ]);
      return Fmp42.initBox(8 + bytes.length, "mvhd", new Uint8Array(bytes));
    }
  }, {
    key: "videoTrak",
    value: function videoTrak(data) {
      var size = 8;
      var tkhd = Fmp42.tkhd({
        id: 1,
        duration: data.duration,
        timescale: data.timescale || 1e3,
        width: data.presentWidth,
        height: data.presentHeight,
        type: "video"
      });
      var mdia = Fmp42.mdia({
        type: "video",
        timescale: data.timescale || 1e3,
        duration: data.duration,
        avcc: data.avcc,
        parRatio: data.parRatio,
        width: data.presentWidth,
        height: data.presentHeight,
        streamType: data.streamType
      });
      [tkhd, mdia].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "trak", tkhd, mdia);
    }
  }, {
    key: "audioTrak",
    value: function audioTrak(data) {
      var size = 8;
      var tkhd = Fmp42.tkhd({
        id: 2,
        duration: data.duration,
        timescale: data.timescale || 1e3,
        width: 0,
        height: 0,
        type: "audio"
      });
      var mdia = Fmp42.mdia({
        type: "audio",
        timescale: data.timescale || 1e3,
        duration: data.duration,
        channelCount: data.channelCount,
        samplerate: data.sampleRate,
        config: data.config
      });
      [tkhd, mdia].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "trak", tkhd, mdia);
    }
  }, {
    key: "tkhd",
    value: function tkhd(data) {
      var id = data.id;
      var duration = data.duration;
      var width = data.width;
      var height = data.height;
      var content = new Uint8Array([
        0,
        0,
        0,
        7,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        id >>> 24 & 255,
        id >>> 16 & 255,
        id >>> 8 & 255,
        id & 255,
        0,
        0,
        0,
        0,
        duration >>> 24 & 255,
        duration >>> 16 & 255,
        duration >>> 8 & 255,
        duration & 255,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        64,
        0,
        0,
        0,
        width >>> 8 & 255,
        width & 255,
        0,
        0,
        height >>> 8 & 255,
        height & 255,
        0,
        0
      ]);
      return Fmp42.initBox(8 + content.byteLength, "tkhd", content);
    }
  }, {
    key: "edts",
    value: function edts(data) {
      var buffer = new Buffer$1();
      var duration = data.duration;
      var mediaTime = data.mediaTime;
      buffer.write(Fmp42.size(36), Fmp42.type("edts"));
      buffer.write(Fmp42.size(28), Fmp42.type("elst"));
      buffer.write(new Uint8Array([
        0,
        0,
        0,
        1,
        duration >> 24 & 255,
        duration >> 16 & 255,
        duration >> 8 & 255,
        duration & 255,
        mediaTime >> 24 & 255,
        mediaTime >> 16 & 255,
        mediaTime >> 8 & 255,
        mediaTime & 255,
        0,
        0,
        0,
        1
      ]));
      return buffer.buffer;
    }
  }, {
    key: "mdia",
    value: function mdia(data) {
      var size = 8;
      var mdhd = Fmp42.mdhd(data.timescale, data.duration);
      var hdlr = Fmp42.hdlr(data.type);
      var minf = Fmp42.minf(data);
      [mdhd, hdlr, minf].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "mdia", mdhd, hdlr, minf);
    }
  }, {
    key: "mdhd",
    value: function mdhd() {
      var timescale = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1e3;
      var duration = arguments[1];
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        timescale >>> 24 & 255,
        timescale >>> 16 & 255,
        timescale >>> 8 & 255,
        timescale & 255,
        duration >>> 24 & 255,
        duration >>> 16 & 255,
        duration >>> 8 & 255,
        duration & 255,
        85,
        196,
        0,
        0
      ]);
      return Fmp42.initBox(12 + content.byteLength, "mdhd", Fmp42.extension(0, 0), content);
    }
  }, {
    key: "hdlr",
    value: function hdlr(type) {
      var value = [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        118,
        105,
        100,
        101,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        86,
        105,
        100,
        101,
        111,
        72,
        97,
        110,
        100,
        108,
        101,
        114,
        0
      ];
      if (type === "audio") {
        value.splice.apply(value, [8, 4].concat([115, 111, 117, 110]));
        value.splice.apply(value, [24, 13].concat([83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]));
      }
      return Fmp42.initBox(8 + value.length, "hdlr", new Uint8Array(value));
    }
  }, {
    key: "minf",
    value: function minf(data) {
      var size = 8;
      var vmhd = data.type === "video" ? Fmp42.vmhd() : Fmp42.smhd();
      var dinf = Fmp42.dinf();
      var stbl = Fmp42.stbl(data);
      [vmhd, dinf, stbl].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "minf", vmhd, dinf, stbl);
    }
  }, {
    key: "vmhd",
    value: function vmhd() {
      return Fmp42.initBox(20, "vmhd", new Uint8Array([
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]));
    }
  }, {
    key: "smhd",
    value: function smhd() {
      return Fmp42.initBox(16, "smhd", new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]));
    }
  }, {
    key: "dinf",
    value: function dinf() {
      var buffer = new Buffer$1();
      var dref = [
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        12,
        117,
        114,
        108,
        32,
        0,
        0,
        0,
        1
      ];
      buffer.write(Fmp42.size(36), Fmp42.type("dinf"), Fmp42.size(28), Fmp42.type("dref"), new Uint8Array(dref));
      return buffer.buffer;
    }
  }, {
    key: "stbl",
    value: function stbl(data) {
      var size = 8;
      var stsd = Fmp42.stsd(data);
      var stts = Fmp42.stts();
      var stsc = Fmp42.stsc();
      var stsz = Fmp42.stsz();
      var stco = Fmp42.stco();
      [stsd, stts, stsc, stsz, stco].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "stbl", stsd, stts, stsc, stsz, stco);
    }
  }, {
    key: "stsd",
    value: function stsd(data) {
      var content = void 0;
      if (data.type === "audio") {
        content = Fmp42.mp4a(data);
      } else {
        if (data.streamType === 36) {
          content = Fmp42.hvc1(data);
        } else {
          content = Fmp42.avc1(data);
        }
      }
      return Fmp42.initBox(16 + content.byteLength, "stsd", Fmp42.extension(0, 0), new Uint8Array([0, 0, 0, 1]), content);
    }
  }, {
    key: "mp4a",
    value: function mp4a(data) {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        data.channelCount,
        0,
        16,
        0,
        0,
        0,
        0,
        data.samplerate >> 8 & 255,
        data.samplerate & 255,
        0,
        0
      ]);
      var esds = Fmp42.esds(data.config);
      return Fmp42.initBox(8 + content.byteLength + esds.byteLength, "mp4a", content, esds);
    }
  }, {
    key: "esds",
    value: function esds() {
      var config = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [43, 146, 8, 0];
      var configlen = config.length;
      var buffer = new Buffer$1();
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        3,
        23 + configlen,
        0,
        1,
        0,
        4,
        15 + configlen,
        64,
        21,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        5
      ].concat([configlen]).concat(config).concat([6, 1, 2]));
      buffer.write(Fmp42.size(8 + content.byteLength), Fmp42.type("esds"), content);
      return buffer.buffer;
    }
  }, {
    key: "avc1",
    value: function avc1(data) {
      var buffer = new Buffer$1();
      var size = 40;
      var width = data.width;
      var height = data.height;
      var hSpacing = data.parRatio.width;
      var vSpacing = data.parRatio.height;
      var avcc = data.avcc;
      var avc12 = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        width >> 8 & 255,
        width & 255,
        height >> 8 & 255,
        height & 255,
        0,
        72,
        0,
        0,
        0,
        72,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        18,
        100,
        97,
        105,
        108,
        121,
        109,
        111,
        116,
        105,
        111,
        110,
        47,
        104,
        108,
        115,
        46,
        106,
        115,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        24,
        17,
        17
      ]);
      var btrt = new Uint8Array([
        0,
        28,
        156,
        128,
        0,
        45,
        198,
        192,
        0,
        45,
        198,
        192
      ]);
      var pasp = new Uint8Array([
        hSpacing >> 24,
        hSpacing >> 16 & 255,
        hSpacing >> 8 & 255,
        hSpacing & 255,
        vSpacing >> 24,
        vSpacing >> 16 & 255,
        vSpacing >> 8 & 255,
        vSpacing & 255
      ]);
      buffer.write(Fmp42.size(size + avc12.byteLength + avcc.byteLength + btrt.byteLength), Fmp42.type("avc1"), avc12, Fmp42.size(8 + avcc.byteLength), Fmp42.type("avcC"), avcc, Fmp42.size(20), Fmp42.type("btrt"), btrt, Fmp42.size(16), Fmp42.type("pasp"), pasp);
      return buffer.buffer;
    }
  }, {
    key: "hvc1",
    value: function hvc1(track) {
      var buffer = new Buffer$1();
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        track.width >> 8 & 255,
        track.width & 255,
        track.height >> 8 & 255,
        track.height & 255,
        0,
        72,
        0,
        0,
        0,
        72,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        24,
        255,
        255,
        0,
        0,
        0,
        122,
        104,
        118,
        99,
        67,
        1,
        1,
        96,
        0,
        0,
        0,
        144,
        0,
        0,
        0,
        0,
        0,
        93,
        240,
        0,
        252,
        253,
        248,
        248,
        0,
        0,
        15,
        3,
        160,
        0,
        1,
        0,
        24,
        64,
        1,
        12,
        1,
        255,
        255,
        1,
        96,
        0,
        0,
        3,
        0,
        144,
        0,
        0,
        3,
        0,
        0,
        3,
        0,
        93,
        153,
        152,
        9,
        161,
        0,
        1,
        0,
        45,
        66,
        1,
        1,
        1,
        96,
        0,
        0,
        3,
        0,
        144,
        0,
        0,
        3,
        0,
        0,
        3,
        0,
        93,
        160,
        2,
        128,
        128,
        45,
        22,
        89,
        153,
        164,
        147,
        43,
        154,
        128,
        128,
        128,
        130,
        0,
        0,
        3,
        0,
        2,
        0,
        0,
        3,
        0,
        50,
        16,
        162,
        0,
        1,
        0,
        7,
        68,
        1,
        193,
        114,
        180,
        98,
        64
      ]);
      buffer.write(Fmp42.size(8 + content.byteLength + 10), Fmp42.type("hvc1"), content, Fmp42.size(10), Fmp42.type("fiel"), new Uint8Array([1, 0]));
      return buffer.buffer;
    }
  }, {
    key: "stts",
    value: function stts() {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]);
      return Fmp42.initBox(16, "stts", content);
    }
  }, {
    key: "stsc",
    value: function stsc() {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]);
      return Fmp42.initBox(16, "stsc", content);
    }
  }, {
    key: "stco",
    value: function stco() {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]);
      return Fmp42.initBox(16, "stco", content);
    }
  }, {
    key: "stsz",
    value: function stsz() {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ]);
      return Fmp42.initBox(20, "stsz", content);
    }
  }, {
    key: "mvex",
    value: function mvex(duration) {
      var trackID = arguments[2];
      var buffer = new Buffer$1();
      var mehd = Buffer$1.writeUint32(duration);
      buffer.write(Fmp42.size(56), Fmp42.type("mvex"), Fmp42.size(16), Fmp42.type("mehd"), Fmp42.extension(0, 0), mehd, Fmp42.trex(trackID));
      return buffer.buffer;
    }
  }, {
    key: "trex",
    value: function trex(id) {
      var content = new Uint8Array([
        0,
        0,
        0,
        0,
        id >> 24,
        id >> 16 & 255,
        id >> 8 & 255,
        id & 255,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1
      ]);
      return Fmp42.initBox(8 + content.byteLength, "trex", content);
    }
  }, {
    key: "moof",
    value: function moof(data) {
      var size = 8;
      var mfhd = Fmp42.mfhd();
      var traf = Fmp42.traf(data);
      [mfhd, traf].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "moof", mfhd, traf);
    }
  }, {
    key: "mfhd",
    value: function mfhd() {
      var content = Buffer$1.writeUint32(Fmp42.sequence);
      Fmp42.sequence += 1;
      return Fmp42.initBox(16, "mfhd", Fmp42.extension(0, 0), content);
    }
  }, {
    key: "traf",
    value: function traf(data) {
      var size = 8;
      var tfhd = Fmp42.tfhd(data.id);
      var tfdt = Fmp42.tfdt(data.time);
      var sdtp = Fmp42.sdtp(data);
      var trun = Fmp42.trun(data, sdtp.byteLength);
      [tfhd, tfdt, trun, sdtp].forEach(function(item) {
        size += item.byteLength;
      });
      return Fmp42.initBox(size, "traf", tfhd, tfdt, trun, sdtp);
    }
  }, {
    key: "tfhd",
    value: function tfhd(id) {
      var content = Buffer$1.writeUint32(id);
      return Fmp42.initBox(16, "tfhd", Fmp42.extension(0, 0), content);
    }
  }, {
    key: "tfdt",
    value: function tfdt(time2) {
      return Fmp42.initBox(16, "tfdt", Fmp42.extension(0, 0), Buffer$1.writeUint32(time2));
    }
  }, {
    key: "trun",
    value: function trun(data, sdtpLength) {
      var buffer = new Buffer$1();
      var sampleCount = Buffer$1.writeUint32(data.samples.length);
      var offset = Buffer$1.writeUint32(8 + 8 + 16 + 8 + 16 + 16 + 12 + 4 + 4 + 16 * data.samples.length + sdtpLength);
      buffer.write(Fmp42.size(20 + 16 * data.samples.length), Fmp42.type("trun"), new Uint8Array([0, 0, 15, 1]), sampleCount, offset);
      data.samples.forEach(function(item) {
        var flags = item.flags;
        buffer.write(new Uint8Array([
          item.duration >>> 24 & 255,
          item.duration >>> 16 & 255,
          item.duration >>> 8 & 255,
          item.duration & 255,
          item.size >>> 24 & 255,
          item.size >>> 16 & 255,
          item.size >>> 8 & 255,
          item.size & 255,
          flags.isLeading << 2 | flags.dependsOn,
          flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.isNonSync,
          0,
          0,
          item.cts >>> 24 & 255,
          item.cts >>> 16 & 255,
          item.cts >>> 8 & 255,
          item.cts & 255
        ]));
      });
      return buffer.buffer;
    }
  }, {
    key: "sdtp",
    value: function sdtp(data) {
      var buffer = new Buffer$1();
      buffer.write(Fmp42.size(12 + data.samples.length), Fmp42.type("sdtp"), Fmp42.extension(0, 0));
      data.samples.forEach(function(item) {
        var flags = item.flags;
        var num = flags.isLeading << 6 | flags.dependsOn << 4 | flags.isDependedOn << 2 | flags.hasRedundancy;
        buffer.write(new Uint8Array([num]));
      });
      return buffer.buffer;
    }
  }, {
    key: "mdat",
    value: function mdat(data) {
      var buffer = new Buffer$1();
      var size = 8;
      data.samples.forEach(function(item) {
        size += item.size;
      });
      buffer.write(Fmp42.size(size), Fmp42.type("mdat"));
      var mdatBox = new Uint8Array(size);
      var offset = 0;
      mdatBox.set(buffer.buffer, offset);
      offset += 8;
      data.samples.forEach(function(item) {
        item.buffer.forEach(function(unit) {
          mdatBox.set(unit, offset);
          offset += unit.byteLength;
        });
      });
      return mdatBox;
    }
  }]);
  return Fmp42;
}();
Fmp4.type = function(name) {
  return new Uint8Array([name.charCodeAt(0), name.charCodeAt(1), name.charCodeAt(2), name.charCodeAt(3)]);
};
Fmp4.sequence = 1;
var Fmp4$1 = Fmp4;
var _createClass$8 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$8(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _possibleConstructorReturn$3(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$3(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var Mp4Remuxer$2 = function(_EventEmitter) {
  _inherits$3(Mp4Remuxer2, _EventEmitter);
  function Mp4Remuxer2(_ref) {
    var videoMeta = _ref.videoMeta, audioMeta = _ref.audioMeta, curTime = _ref.curTime;
    _classCallCheck$8(this, Mp4Remuxer2);
    var _this = _possibleConstructorReturn$3(this, (Mp4Remuxer2.__proto__ || Object.getPrototypeOf(Mp4Remuxer2)).call(this));
    _this.TAG = "Fmp4Remuxer";
    _this._dtsBase = curTime * 1e3;
    _this._videoMeta = videoMeta;
    _this._audioMeta = audioMeta;
    _this._audioDtsBase = null;
    _this._videoDtsBase = null;
    _this._isDtsBaseInited = false;
    _this.isFirstVideo = true;
    _this.isFirstAudio = true;
    _this.videoAllDuration = 0;
    _this.audioAllDuration = 0;
    _this.audioRemuxed = 0;
    _this.videoRemuxed = 0;
    _this.mp4Durations = {
      keys: []
    };
    return _this;
  }
  _createClass$8(Mp4Remuxer2, [{
    key: "destroy",
    value: function destroy() {
      this._dtsBase = -1;
      this._isDtsBaseInited = false;
      this.mp4Durations = {
        keys: []
      };
      this.removeAllListeners();
    }
  }, {
    key: "remux",
    value: function remux(audioTrack, videoTrack) {
      !this._isDtsBaseInited && this.calcDtsBase(audioTrack, videoTrack);
      this.remuxVideo(videoTrack);
      this.remuxAudio(audioTrack);
      logger.groupEnd();
    }
  }, {
    key: "resetDtsBase",
    value: function resetDtsBase() {
      this._dtsBase = 0;
    }
  }, {
    key: "seek",
    value: function seek(time2) {
      logger.log(this.TAG, "set dtsBase for seek(),time=", time2);
      if (!this._isDtsBaseInited) {
        this._dtsBase = time2 * 1e3;
      } else {
        this._isDtsBaseInited = false;
        this._dtsBase = time2 * 1e3;
      }
      this._audioDtsBase = this._videoDtsBase = null;
    }
  }, {
    key: "remuxInitSegment",
    value: function remuxInitSegment(type, meta) {
      logger.log(this.TAG, "remuxInitSegment: type=", type);
      var initSegment = new Buffer$1();
      var ftyp = meta.streamType === 36 ? Fmp4$1.ftypHEVC() : Fmp4$1.ftyp();
      var moov = Fmp4$1.moov({ type, meta });
      initSegment.write(ftyp, moov);
      return initSegment;
    }
  }, {
    key: "calcDtsBase",
    value: function calcDtsBase(audioTrack, videoTrack) {
      if (!audioTrack && videoTrack.samples.length) {
        var firstSample = videoTrack.samples[0];
        var _start = void 0;
        if (firstSample.options && firstSample.options.start) {
          _start = firstSample.options.start;
        }
        this._videoDtsBase = firstSample.dts - (_start || this._dtsBase);
        this._isDtsBaseInited = true;
        return;
      }
      if ((!audioTrack || !audioTrack.samples.length) && (!videoTrack || !videoTrack.samples.length)) {
        return;
      }
      var audioBase = null;
      var videoBase = null;
      var start2 = null;
      if (audioTrack && audioTrack.samples && audioTrack.samples.length) {
        var _firstSample = audioTrack.samples[0];
        audioBase = _firstSample.dts;
        if (_firstSample.options && _firstSample.options.start) {
          start2 = _firstSample.options.start;
        }
      }
      if (videoTrack && videoTrack.samples && videoTrack.samples.length) {
        var _firstSample2 = videoTrack.samples[0];
        videoBase = _firstSample2.dts;
        if (_firstSample2.options && _firstSample2.options.start) {
          start2 = _firstSample2.options.start;
        }
      }
      var delta = audioBase - videoBase;
      if (!!audioBase && delta < 0 && start2 !== null) {
        videoTrack.samples.forEach(function(x) {
          x.dts -= delta;
          if (x.pts) {
            x.pts -= delta;
          }
        });
      }
      this._videoDtsBase = (videoBase || audioBase) - (start2 || this._dtsBase);
      this._audioDtsBase = (audioBase || videoBase) - (start2 || this._dtsBase);
      this._dtsBase = Math.min(videoBase, audioBase);
      this._isDtsBaseInited = true;
      logger.log(this.TAG, "calcDtsBase");
      logger.log(this.TAG, "video first dts: " + videoBase + " , start:" + start2 + " , _videoDtsBase:" + this._videoDtsBase + " , _dtsBase:" + this._dtsBase);
      logger.log(this.TAG, "audio first dts: " + audioBase + " , start:" + start2 + " , _audioDtsBase:" + this._audioDtsBase + ", _dtsBase:" + this._dtsBase);
    }
  }, {
    key: "remuxVideo",
    value: function remuxVideo(videoTrack) {
      var _this2 = this;
      var track = videoTrack || {};
      if (!videoTrack || !videoTrack.samples || !videoTrack.samples.length) {
        return;
      }
      var samples = track.samples, meta = track.meta;
      if (!meta)
        return;
      var firstDts = -1;
      var initSegment = null;
      var mp4Samples = [];
      var mdatBox = {
        samples: []
      };
      var maxLoop = 1e4;
      while (samples.length && maxLoop-- > 0) {
        var avcSample = samples.shift();
        var isKeyframe = avcSample.isKeyframe, options = avcSample.options;
        if (!this.isFirstVideo && options && options.meta) {
          initSegment = this.remuxInitSegment("video", options.meta);
          options.meta = null;
          samples.unshift(avcSample);
          if (!options.isContinue) {
            this._videoDtsBase = 0;
          }
          break;
        }
        var dts = Math.max(0, avcSample.dts - this.videoDtsBase);
        if (firstDts === -1) {
          firstDts = dts;
        }
        var cts = void 0;
        var pts = void 0;
        if (avcSample.pts !== void 0) {
          pts = avcSample.pts - this._dtsBase;
          cts = pts - dts;
        }
        if (avcSample.cts !== void 0) {
          pts = avcSample.cts + dts;
          cts = avcSample.cts;
        }
        var mdatSample = {
          buffer: [],
          size: 0
        };
        var sampleDuration = 0;
        if (avcSample.duration) {
          sampleDuration = avcSample.duration;
        } else if (samples.length >= 1) {
          var nextDts = samples[0].dts - this.videoDtsBase;
          sampleDuration = nextDts - dts;
        } else {
          if (mp4Samples.length >= 1) {
            sampleDuration = mp4Samples[mp4Samples.length - 1].duration;
          } else {
            sampleDuration = this._videoMeta.refSampleDuration;
          }
        }
        this.videoAllDuration += sampleDuration;
        if (logger.long) {
          logger.log(this.TAG, "video dts " + dts, "pts " + pts, "cts: " + cts, isKeyframe, "originDts " + avcSample.originDts, "duration " + sampleDuration);
        }
        if (sampleDuration >= 0) {
          mdatBox.samples.push(mdatSample);
          mdatSample.buffer.push(avcSample.data);
          mdatSample.size += avcSample.data.byteLength;
          mp4Samples.push({
            dts,
            cts,
            pts,
            data: avcSample.data,
            size: avcSample.data.byteLength,
            isKeyframe,
            duration: sampleDuration,
            flags: {
              isLeading: 0,
              dependsOn: isKeyframe ? 2 : 1,
              isDependedOn: isKeyframe ? 1 : 0,
              hasRedundancy: 0,
              isNonSync: isKeyframe ? 0 : 1
            },
            originDts: dts,
            type: "video"
          });
          this.mp4Durations[pts] = sampleDuration;
          this.mp4Durations.keys.push(pts);
        }
        if (isKeyframe) {
          this.emit(Mp4Remuxer2.EVENTS.RANDOM_ACCESS_POINT, pts);
        }
      }
      if (this.mp4Durations.keys.length > 1e4) {
        var tmp = this.mp4Durations;
        this.mp4Durations = {};
        this.mp4Durations.keys = tmp.keys.slice(-100);
        this.mp4Durations.keys.forEach(function(key) {
          _this2.mp4Durations[key] = tmp[key];
        });
      }
      if (mp4Samples.length) {
        logger.log(this.TAG, "remux to mp4 video:", [firstDts / 1e3, mp4Samples[mp4Samples.length - 1].dts / 1e3]);
      }
      var moofMdat = new Buffer$1();
      if (mp4Samples.length && track.meta) {
        var moof = Fmp4$1.moof({
          id: track.meta.id,
          time: firstDts,
          samples: mp4Samples
        });
        var mdat = Fmp4$1.mdat(mdatBox);
        moofMdat.write(moof, mdat);
        this.segmentRemuxed("video", moofMdat, mp4Samples[mp4Samples.length - 1].pts - mp4Samples[0].pts);
      }
      if (initSegment) {
        this.segmentRemuxed("video", initSegment);
        if (samples.length) {
          track.samples = samples;
          return this.remuxVideo(track);
        }
      }
      this.isFirstVideo = false;
      this.emit(Mp4Remuxer2.EVENTS.TRACK_REMUXED, "video", moofMdat);
      track.samples = [];
      track.length = 0;
    }
  }, {
    key: "remuxAudio",
    value: function remuxAudio(track) {
      var _ref2 = track || {}, samples = _ref2.samples;
      var firstDts = -1;
      var mp4Samples = [];
      var initSegment = null;
      var mdatBox = {
        samples: []
      };
      if (!samples || !samples.length) {
        return;
      }
      var maxLoop = 1e4;
      var isFirstDtsInited = false;
      while (samples.length && maxLoop-- > 0) {
        var sample = samples.shift();
        var data = sample.data, options = sample.options;
        if (!this.isFirstAudio && options && options.meta) {
          initSegment = this.remuxInitSegment("audio", options.meta);
          options.meta = null;
          samples.unshift(sample);
          if (!options.isContinue) {
            this._audioDtsBase = 0;
          }
          break;
        }
        var dts = Math.max(0, sample.dts - this.audioDtsBase);
        var originDts = sample.originDts;
        if (!isFirstDtsInited) {
          firstDts = dts;
          isFirstDtsInited = true;
        }
        var sampleDuration = 0;
        if (sample.duration) {
          sampleDuration = sample.duration;
        } else if (this._audioMeta.refSampleDurationFixed) {
          sampleDuration = this._audioMeta.refSampleDurationFixed;
        } else if (samples.length >= 1) {
          var nextDts = samples[0].dts - this.audioDtsBase;
          sampleDuration = nextDts - dts;
        } else {
          if (mp4Samples.length >= 1) {
            sampleDuration = mp4Samples[mp4Samples.length - 1].duration;
          } else {
            sampleDuration = this._audioMeta.refSampleDuration;
          }
        }
        if (logger.long)
          ;
        this.audioAllDuration += sampleDuration;
        var mp4Sample = {
          dts,
          pts: dts,
          cts: 0,
          size: data.byteLength,
          duration: sample.duration ? sample.duration : sampleDuration,
          flags: {
            isLeading: 0,
            dependsOn: 1,
            isDependedOn: 0,
            hasRedundancy: 0,
            isNonSync: 0
          },
          isKeyframe: true,
          originDts,
          type: "audio"
        };
        var mdatSample = {
          buffer: [],
          size: 0
        };
        if (sampleDuration >= 0) {
          mdatSample.buffer.push(data);
          mdatSample.size += data.byteLength;
          mdatBox.samples.push(mdatSample);
          mp4Samples.push(mp4Sample);
        }
      }
      var moofMdat = new Buffer$1();
      if (mp4Samples.length && track.meta) {
        logger.log(this.TAG, "remux to mp4 audio:", [firstDts / 1e3, mp4Samples[mp4Samples.length - 1].dts / 1e3]);
        var moof = Fmp4$1.moof({
          id: track.meta.id,
          time: firstDts,
          samples: mp4Samples
        });
        var mdat = Fmp4$1.mdat(mdatBox);
        moofMdat.write(moof, mdat);
        this.segmentRemuxed("audio", moofMdat, mp4Samples[mp4Samples.length - 1].dts - mp4Samples[0].dts);
      }
      if (initSegment) {
        this.segmentRemuxed("audio", initSegment);
        if (samples.length) {
          track.samples = samples;
          return this.remuxAudio(track);
        }
      }
      this.isFirstAudio = false;
      this.emit(Mp4Remuxer2.EVENTS.TRACK_REMUXED, "audio", moofMdat);
      track.samples = [];
      track.length = 0;
    }
  }, {
    key: "segmentRemuxed",
    value: function segmentRemuxed(type, buffer, bufferDuration) {
      this.emit(Mp4Remuxer2.EVENTS.MEDIA_SEGMENT, type, buffer, bufferDuration);
    }
  }, {
    key: "videoDtsBase",
    get: function get5() {
      if (this._videoDtsBase !== null) {
        return this._videoDtsBase;
      }
      return this._dtsBase;
    },
    set: function set2(value) {
      this._videoDtsBase = value;
    }
  }, {
    key: "audioDtsBase",
    get: function get5() {
      if (this._audioDtsBase !== null) {
        return this._audioDtsBase;
      }
      return this._dtsBase;
    }
  }], [{
    key: "EVENTS",
    get: function get5() {
      return {
        MEDIA_SEGMENT: "MEDIA_SEGMENT",
        INIT_SEGMENT: "INIT_SEGMENT",
        RANDOM_ACCESS_POINT: "RANDOM_ACCESS_POINT",
        TRACK_REMUXED: "TRACK_REMUXED"
      };
    }
  }]);
  return Mp4Remuxer2;
}(EventEmitter);
var Remuxer = Mp4Remuxer$2;
var _createClass$7 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$7(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var REMUX_EVENTS$3 = EVENTS.REMUX_EVENTS;
var PLAYER_EVENTS = EVENTS.PLAYER_EVENTS;
var Mp4Remuxer = function() {
  function Mp4Remuxer2() {
    var curTime = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
    _classCallCheck$7(this, Mp4Remuxer2);
    this.TAG = "Mp4Remuxer";
    this._curTime = curTime;
    if (!this.remuxer) {
      this.initRemuxer();
    }
  }
  _createClass$7(Mp4Remuxer2, [{
    key: "init",
    value: function init() {
      this.on(REMUX_EVENTS$3.REMUX_MEDIA, this.remux.bind(this));
      this.on(REMUX_EVENTS$3.REMUX_METADATA, this.onMetaDataReady.bind(this));
      this.on(REMUX_EVENTS$3.DETECT_CHANGE_STREAM, this.resetDtsBase.bind(this));
      this.on(REMUX_EVENTS$3.DETECT_FRAG_ID_DISCONTINUE, this.seek.bind(this));
      this.on(PLAYER_EVENTS.SEEK, this.seek.bind(this));
    }
  }, {
    key: "initRemuxer",
    value: function initRemuxer() {
      this.remuxer = new Remuxer({
        audioMeta: null,
        videoMeta: null,
        curTime: this._curTime
      });
      this.remuxer.on(Remuxer.EVENTS.MEDIA_SEGMENT, this.writeToSource.bind(this));
      this.remuxer.on(Remuxer.EVENTS.TRACK_REMUXED, this.onTrackRemuxed.bind(this));
    }
  }, {
    key: "remux",
    value: function remux() {
      if (!this.remuxer._videoMeta) {
        this.remuxer._videoMeta = this.videoMeta;
        this.remuxer._audioMeta = this.audioMeta;
      }
      var _context$getInstance = this._context.getInstance("TRACKS"), audioTrack = _context$getInstance.audioTrack, videoTrack = _context$getInstance.videoTrack;
      return this.remuxer.remux(audioTrack, videoTrack);
    }
  }, {
    key: "resetDtsBase",
    value: function resetDtsBase() {
      this.remuxer && this.remuxer.resetDtsBase();
    }
  }, {
    key: "seek",
    value: function seek(time2) {
      this.remuxer && this.remuxer.seek(time2);
    }
  }, {
    key: "onMetaDataReady",
    value: function onMetaDataReady(type) {
      if (!this.remuxer) {
        this.initRemuxer();
      }
      var track = void 0;
      if (type === "audio") {
        var _context$getInstance2 = this._context.getInstance("TRACKS"), audioTrack = _context$getInstance2.audioTrack;
        track = audioTrack;
      } else {
        var _context$getInstance3 = this._context.getInstance("TRACKS"), videoTrack = _context$getInstance3.videoTrack;
        track = videoTrack;
      }
      var presourcebuffer = this._context.getInstance("PRE_SOURCE_BUFFER");
      var source = presourcebuffer.getSource(type);
      if (!source) {
        source = presourcebuffer.createSource(type);
      }
      source.mimetype = track.meta.codec;
      source.init = this.remuxer.remuxInitSegment(type, track.meta);
      this.emit(REMUX_EVENTS$3.INIT_SEGMENT, type);
    }
  }, {
    key: "onTrackRemuxed",
    value: function onTrackRemuxed(track) {
      this.emit(REMUX_EVENTS$3.MEDIA_SEGMENT, track);
    }
  }, {
    key: "writeToSource",
    value: function writeToSource(type, buffer, bufferDuration) {
      var presourcebuffer = this._context.getInstance("PRE_SOURCE_BUFFER");
      var source = presourcebuffer.getSource(type);
      if (!source) {
        source = presourcebuffer.createSource(type);
      }
      source.data.push(buffer);
      if (bufferDuration) {
        source.bufferDuration = bufferDuration + (source.bufferDuration || 0);
      }
    }
  }, {
    key: "destroy",
    value: function destroy() {
      if (this.remuxer) {
        this.remuxer.destroy();
      }
      this.remuxer = null;
    }
  }, {
    key: "videoMeta",
    get: function get5() {
      return this._context.getInstance("TRACKS").videoTrack.meta;
    }
  }, {
    key: "audioMeta",
    get: function get5() {
      return this._context.getInstance("TRACKS").audioTrack.meta;
    }
  }]);
  return Mp4Remuxer2;
}();
var Mp4Remuxer$1 = Mp4Remuxer;
var defaultConfig$1 = {
  Mse,
  Tracks,
  RemuxedBufferManager: RemuxedBufferManager$1,
  XgBuffer: XgBuffer$1,
  FetchLoader: FetchLoader$1,
  Compatibility: Compatibility$1,
  Mp4Remuxer: Mp4Remuxer$1,
  Crypto: Crypto$1,
  M3U8Parser: M3U8Parser$1,
  TsDemuxer: TsDemuxer$1,
  Playlist: Playlist$1
};
var _createClass$6 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
var _get$2 = function get2(object, property, receiver) {
  if (object === null)
    object = Function.prototype;
  var desc = Object.getOwnPropertyDescriptor(object, property);
  if (desc === void 0) {
    var parent = Object.getPrototypeOf(object);
    if (parent === null) {
      return void 0;
    } else {
      return get2(parent, property, receiver);
    }
  } else if ("value" in desc) {
    return desc.value;
  } else {
    var getter = desc.get;
    if (getter === void 0) {
      return void 0;
    }
    return getter.call(receiver);
  }
};
function _classCallCheck$6(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _possibleConstructorReturn$2(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$2(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var HlsAllowedEvents$2 = EVENTS.HlsAllowedEvents;
var REMUX_EVENTS$2 = EVENTS.REMUX_EVENTS;
var util = Player.util;
var HlsLivePlayer$2 = function(_Player) {
  _inherits$2(HlsLivePlayer2, _Player);
  function HlsLivePlayer2(options) {
    _classCallCheck$6(this, HlsLivePlayer2);
    var _this = _possibleConstructorReturn$2(this, (HlsLivePlayer2.__proto__ || Object.getPrototypeOf(HlsLivePlayer2)).call(this, options));
    _this.hlsOps = {};
    _this.hlsOps = Object.assign(_this.hlsOps, defaultConfig$1);
    util.deepCopy(_this.hlsOps, options);
    _this._played = false;
    return _this;
  }
  _createClass$6(HlsLivePlayer2, [{
    key: "_initEvents",
    value: function _initEvents() {
      var _this2 = this;
      this.__core__.once(REMUX_EVENTS$2.INIT_SEGMENT, function() {
        var mse = _this2._context.getInstance("MSE");
        if (!_this2.started) {
          var live = util.createDom("xg-live", "\u6B63\u5728\u76F4\u64AD", {}, "xgplayer-live");
          util.addClass(_this2.root, "xgplayer-is-live");
          _this2.controls.appendChild(live);
        }
        _this2.started = true;
        _get$2(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "start", _this2).call(_this2, mse.url);
      });
    }
  }, {
    key: "start",
    value: function start2() {
      var url = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.config.url;
      if (!url || this.started) {
        return;
      }
      if (!this._context) {
        this._context = new Context$1(this, this.hlsOps, HlsAllowedEvents$2);
      }
      if (!this.hlsOps) {
        this.hlsOps = {};
        this.hlsOps = Object.assign(this.hlsOps, defaultConfig$1);
        util.deepCopy(this.hlsOps, this.config);
        this._played = false;
      }
      this.__core__ = this._context.registry("HLS_LIVE_CONTROLLER", HlsLiveController$1)({ player: this, container: this.video, preloadTime: this.config.preloadTime });
      this._context.init();
      this.url = url;
      this.__core__.load(url);
      this._initEvents();
      this.started = true;
    }
  }, {
    key: "play",
    value: function play2() {
      var _this3 = this;
      if (this._played) {
        this.src = this.config.url;
        this.once("canplay", function() {
          _this3.video.play();
        });
        return;
      }
      this._played = true;
      _get$2(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "play", this).call(this);
    }
  }, {
    key: "destroy",
    value: function destroy() {
      var _this4 = this;
      if (this._context) {
        this._context.destroy();
      }
      var prom = new Promise(function(resolve) {
        if (_this4.__core__ && _this4.__core__.mse) {
          _this4.__core__.mse.destroy().then(function() {
            setTimeout(function() {
              resolve();
            }, 50);
          });
        } else {
          setTimeout(function() {
            resolve();
          }, 50);
        }
      });
      _get$2(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "destroy", this).call(this);
      return prom;
    }
  }, {
    key: "src",
    set: function set2(url) {
      var _this5 = this;
      this.onWaiting = this.onWaiting.bind(this);
      this.__core__.mse.destroy().then(function() {
        _this5._context.destroy();
        _this5._context = null;
        _this5.started = false;
        _this5.video.currentTime = 0;
        _this5.start(url);
      });
    }
  }], [{
    key: "isSupported",
    value: function isSupported() {
      return window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"');
    }
  }, {
    key: "install",
    value: function install(name, plugin) {
      return Player.install(name, plugin);
    }
  }]);
  return HlsLivePlayer2;
}(Player);
HlsLivePlayer$2.install = Player.install.bind(Player);
var _createClass$5 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$5(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var NalUnitHEVC = Nalunit$1;
var NalUnit = Nalunit$3;
var LOADER_EVENTS$1 = EVENTS.LOADER_EVENTS;
var DEMUX_EVENTS$1 = EVENTS.DEMUX_EVENTS;
var HLS_EVENTS$1 = EVENTS.HLS_EVENTS;
var CRYTO_EVENTS$1 = EVENTS.CRYTO_EVENTS;
var HLS_ERROR$1 = "HLS_ERROR";
var MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g;
var HlsLiveController = function() {
  function HlsLiveController2(configs) {
    _classCallCheck$5(this, HlsLiveController2);
    this.configs = Object.assign({}, configs);
    this.url = "";
    this.sequence = 0;
    this._playlist = null;
    this.retrytimes = this.configs.retrytimes || 3;
    this.preloadTime = this.configs.preloadTime;
    this.container = this.configs.container;
    this._m3u8lasttime = 0;
    this._timmer = setInterval(this._checkStatus.bind(this), 50);
    this._lastCheck = 0;
    this.m3u8Text = null;
  }
  _createClass$5(HlsLiveController2, [{
    key: "init",
    value: function init() {
      var _player$hlsOps = this._player.hlsOps, XgBuffer2 = _player$hlsOps.XgBuffer, Tracks2 = _player$hlsOps.Tracks, Playlist2 = _player$hlsOps.Playlist, FetchLoader2 = _player$hlsOps.FetchLoader, TsDemuxer2 = _player$hlsOps.TsDemuxer;
      this._context.registry("M3U8_BUFFER", XgBuffer2);
      this._context.registry("TS_BUFFER", XgBuffer2);
      this._context.registry("TRACKS", Tracks2);
      this._playlist = this._context.registry("PLAYLIST", Playlist2)({ autoclear: true });
      this._m3u8loader = this._context.registry("M3U8_LOADER", FetchLoader2)({ buffer: "M3U8_BUFFER", readtype: 1 });
      this._tsloader = this._context.registry("TS_LOADER", FetchLoader2)({ buffer: "TS_BUFFER", readtype: 3 });
      this._context.registry("TS_DEMUXER", TsDemuxer2)({ inputbuffer: "TS_BUFFER" });
      this.initEvents();
    }
  }, {
    key: "initEvents",
    value: function initEvents() {
      this.on(LOADER_EVENTS$1.LOADER_COMPLETE, this._onLoadComplete.bind(this));
      this.on(DEMUX_EVENTS$1.METADATA_PARSED, this._onMetadataParsed.bind(this));
      this.on(DEMUX_EVENTS$1.SEI_PARSED, this._handleSEIParsed.bind(this));
      this.on(DEMUX_EVENTS$1.DEMUX_COMPLETE, this._onDemuxComplete.bind(this));
      this.on(LOADER_EVENTS$1.LOADER_ERROR, this._onLoadError.bind(this));
      this.on(DEMUX_EVENTS$1.DEMUX_ERROR, this._onDemuxError.bind(this));
    }
  }, {
    key: "_onError",
    value: function _onError(type, mod, err, fatal) {
      var error2 = {
        errorType: type,
        errorDetails: "[" + mod + "]: " + (err ? err.message : ""),
        errorFatal: fatal
      };
      this._player.emit(HLS_ERROR$1, error2);
    }
  }, {
    key: "_onDemuxComplete",
    value: function _onDemuxComplete() {
      var _this = this;
      if (this._player.video) {
        var _context$getInstance = this._context.getInstance("TRACKS"), videoTrack = _context$getInstance.videoTrack, audioTrack = _context$getInstance.audioTrack;
        videoTrack.samples.forEach(function(sample) {
          if (sample.analyzed) {
            return;
          }
          sample.analyzed = true;
          var buffer = new XGDataView$1(sample.data.buffer);
          var nals = void 0;
          if (_this._isHEVC(videoTrack.meta)) {
            nals = NalUnitHEVC.getHvccNals(buffer);
          } else {
            nals = NalUnit.getNalunits(buffer);
          }
          var nalsLength = nals.reduce(function(len, current) {
            return len + 4 + current.body.byteLength;
          }, 0);
          var newData = new Uint8Array(nalsLength);
          var offset = 0;
          nals.forEach(function(nal) {
            newData.set([0, 0, 0, 1], offset);
            offset += 4;
            newData.set(new Uint8Array(nal.body), offset);
            offset += nal.body.byteLength;
          });
          sample.data = newData;
        });
        this._player.video.onDemuxComplete(videoTrack, audioTrack);
      }
    }
  }, {
    key: "_onMetadataParsed",
    value: function _onMetadataParsed(type) {
      if (type === "audio") {
        var _context$getInstance2 = this._context.getInstance("TRACKS"), audioTrack = _context$getInstance2.audioTrack;
        if (audioTrack && audioTrack.meta) {
          this._setMetaToAudio(audioTrack.meta);
        }
      } else {
        var _context$getInstance3 = this._context.getInstance("TRACKS"), videoTrack = _context$getInstance3.videoTrack;
        if (videoTrack && videoTrack.meta) {
          this._setMetaToVideo(videoTrack.meta);
        }
      }
    }
  }, {
    key: "_setMetaToAudio",
    value: function _setMetaToAudio(audioMeta) {
      if (this._player.video) {
        this._player.video.setAudioMeta(audioMeta);
      }
    }
  }, {
    key: "_setMetaToVideo",
    value: function _setMetaToVideo(videoMeta) {
      if (this._player.video) {
        this._player.video.setVideoMeta(videoMeta);
      }
    }
  }, {
    key: "_onLoadError",
    value: function _onLoadError(loader, error2) {
      if (!this._tsloader.loading && !this._m3u8loader.loading && this.retrytimes > 1) {
        this.retrytimes--;
        this._onError(LOADER_EVENTS$1.LOADER_ERROR, loader, error2, false);
      } else if (this.retrytimes <= 1) {
        this._onError(LOADER_EVENTS$1.LOADER_ERROR, loader, error2, true);
        this.emit(HLS_EVENTS$1.RETRY_TIME_EXCEEDED);
        if (this._player.video) {
          this._player.video.handleEnded();
        }
      }
    }
  }, {
    key: "_onDemuxError",
    value: function _onDemuxError(mod, error2, fatal) {
      if (fatal === void 0) {
        fatal = true;
      }
      this._onError(LOADER_EVENTS$1.LOADER_ERROR, mod, error2, fatal);
    }
  }, {
    key: "_handleSEIParsed",
    value: function _handleSEIParsed(sei) {
      this._player.emit("SEI_PARSED", sei);
    }
  }, {
    key: "_onLoadComplete",
    value: function _onLoadComplete(buffer) {
      if (buffer.TAG === "M3U8_BUFFER") {
        var mdata = void 0;
        try {
          this.m3u8Text = buffer.shift();
          var result = MASTER_PLAYLIST_REGEX.exec(this.m3u8Text);
          if (result && result[2]) {
            this.load(result[2]);
          } else {
            mdata = this._player.hlsOps.M3U8Parser.parse(this.m3u8Text, this.url);
          }
        } catch (error2) {
          this._onError("M3U8_PARSER_ERROR", "M3U8_PARSER", error2, false);
        }
        if (!mdata) {
          if (this.retrytimes > 0) {
            this.retrytimes--;
            this._preload();
          } else {
            this.emit(HLS_EVENTS$1.RETRY_TIME_EXCEEDED);
            if (this._player.video) {
              this._player.video.handleEnded();
            }
          }
          return;
        }
        try {
          this._playlist.pushM3U8(mdata, true);
        } catch (error2) {
          this._onError("M3U8_PARSER_ERROR", "PLAYLIST", error2, false);
        }
        if (this._playlist.encrypt && this._playlist.encrypt.uri && !this._playlist.encrypt.key) {
          var _player$hlsOps2 = this._player.hlsOps, XgBuffer2 = _player$hlsOps2.XgBuffer, FetchLoader2 = _player$hlsOps2.FetchLoader;
          this._context.registry("DECRYPT_BUFFER", XgBuffer2)();
          this._context.registry("KEY_BUFFER", XgBuffer2)();
          this._tsloader.buffer = "DECRYPT_BUFFER";
          this._keyLoader = this._context.registry("KEY_LOADER", FetchLoader2)({ buffer: "KEY_BUFFER", readtype: 3 });
          this.emitTo("KEY_LOADER", LOADER_EVENTS$1.LADER_START, this._playlist.encrypt.uri);
        } else {
          this._m3u8Loaded(mdata);
        }
      } else if (buffer.TAG === "TS_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.downloaded(this._tsloader.url, true);
        this.emit(DEMUX_EVENTS$1.DEMUX_START);
      } else if (buffer.TAG === "DECRYPT_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.downloaded(this._tsloader.url, true);
        this.emitTo("CRYPTO", CRYTO_EVENTS$1.START_DECRYPT);
      } else if (buffer.TAG === "KEY_BUFFER") {
        var Crypto2 = this._player.hlsOps.Crypto;
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.encrypt.key = buffer.shift();
        this._crypto = this._context.registry("CRYPTO", Crypto2)({
          key: this._playlist.encrypt.key,
          iv: this._playlist.encrypt.ivb,
          method: this._playlist.encrypt.method,
          inputbuffer: "DECRYPT_BUFFER",
          outputbuffer: "TS_BUFFER"
        });
        this._crypto.on(CRYTO_EVENTS$1.DECRYPTED, this._onDcripted.bind(this));
      }
    }
  }, {
    key: "_onDcripted",
    value: function _onDcripted() {
      this.emit(DEMUX_EVENTS$1.DEMUX_START);
    }
  }, {
    key: "_m3u8Loaded",
    value: function _m3u8Loaded(mdata) {
      if (!this.preloadTime) {
        this.preloadTime = this._playlist.targetduration ? this._playlist.targetduration : 5;
      }
      if (this._playlist.fragLength > 0 && this._playlist.sequence < mdata.sequence) {
        this.retrytimes = this.configs.retrytimes || 3;
      } else {
        if (this.retrytimes > 0) {
          this.retrytimes--;
          this._preload();
        } else {
          this.emit(HLS_EVENTS$1.RETRY_TIME_EXCEEDED);
          if (this._player.video) {
            this._player.video.handleEnded();
          }
        }
      }
    }
  }, {
    key: "_checkStatus",
    value: function _checkStatus() {
      if (this.retrytimes < 1 && new Date().getTime() - this._lastCheck < 1e4) {
        return;
      }
      this._lastCheck = new Date().getTime();
      if (this.container.buffered.length < 1) {
        this._preload();
      } else {
        var currentTime = this.container.currentTime;
        if (this.container.readyState <= 2) {
          this._preload();
        }
        var bufferend = this.container.buffered.end(this.container.buffered.length - 1);
        if (currentTime > bufferend - this.preloadTime) {
          this._preload();
        }
      }
    }
  }, {
    key: "_preload",
    value: function _preload() {
      if (this._tsloader.loading || this._m3u8loader.loading) {
        return;
      }
      var frag = this._playlist.getTs();
      if (frag && !frag.downloaded && !frag.downloading) {
        this._playlist.downloading(frag.url, true);
        this.emitTo("TS_LOADER", LOADER_EVENTS$1.LADER_START, frag.url);
      } else {
        var preloadTime = this.preloadTime ? this.preloadTime : 0;
        var current = new Date().getTime();
        if ((!frag || frag.downloaded) && (current - this._m3u8lasttime) / 1e3 > preloadTime) {
          this._m3u8lasttime = current;
          this.emitTo("M3U8_LOADER", LOADER_EVENTS$1.LADER_START, this.url);
        }
      }
    }
  }, {
    key: "_isHEVC",
    value: function _isHEVC(meta) {
      return meta && meta.codec === "hev1.1.6.L93.B0";
    }
  }, {
    key: "load",
    value: function load(url) {
      this.url = url;
      this._preload();
    }
  }, {
    key: "destroy",
    value: function destroy() {
      clearInterval(this._timmer);
      this.off(LOADER_EVENTS$1.LOADER_COMPLETE, this._onLoadComplete);
      this.off(DEMUX_EVENTS$1.METADATA_PARSED, this._onMetadataParsed);
      this.off(DEMUX_EVENTS$1.DEMUX_COMPLETE, this._onDemuxComplete);
      this.m3u8Text = null;
    }
  }]);
  return HlsLiveController2;
}();
var defaultConfig = {
  Tracks,
  XgBuffer: XgBuffer$1,
  FetchLoader: FetchLoader$1,
  Crypto: Crypto$1,
  M3U8Parser: M3U8Parser$1,
  TsDemuxer: TsDemuxer$1,
  Playlist: Playlist$1
};
var _get$1 = function get3(object, property, receiver) {
  if (object === null)
    object = Function.prototype;
  var desc = Object.getOwnPropertyDescriptor(object, property);
  if (desc === void 0) {
    var parent = Object.getPrototypeOf(object);
    if (parent === null) {
      return void 0;
    } else {
      return get3(parent, property, receiver);
    }
  } else if ("value" in desc) {
    return desc.value;
  } else {
    var getter = desc.get;
    if (getter === void 0) {
      return void 0;
    }
    return getter.call(receiver);
  }
};
var _createClass$4 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$4(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _possibleConstructorReturn$1(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits$1(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var HlsAllowedEvents$1 = EVENTS.HlsAllowedEvents;
var HlsLivePlayer$1 = function(_Player) {
  _inherits$1(HlsLivePlayer2, _Player);
  _createClass$4(HlsLivePlayer2, null, [{
    key: "isSupported",
    value: function isSupported() {
      var wasmSupported = "WebAssembly" in window;
      var WebComponentSupported = "customElements" in window && window.customElements.define;
      var isComponentDefined = false;
      if (WebComponentSupported) {
        isComponentDefined = window.customElements.get("live-video");
      }
      return wasmSupported && isComponentDefined;
    }
  }]);
  function HlsLivePlayer2(options) {
    _classCallCheck$4(this, HlsLivePlayer2);
    if (!options.mediaType) {
      options.mediaType = "live-video";
      if (options.videoConfig) {
        options.videoConfig.preloadtime = options.preloadTime || 5;
      } else {
        options.videoConfig = {
          preloadtime: options.preloadTime || 5
        };
      }
    }
    var _this = _possibleConstructorReturn$1(this, (HlsLivePlayer2.__proto__ || Object.getPrototypeOf(HlsLivePlayer2)).call(this, options));
    _this.hlsOps = {};
    _this.util = Player.util;
    _this.hlsOps = Object.assign(_this.hlsOps, defaultConfig);
    _this.util.deepCopy(_this.hlsOps, options);
    if (!_this.playerInited) {
      _this.initPlayer();
    }
    return _this;
  }
  _createClass$4(HlsLivePlayer2, [{
    key: "initPlayer",
    value: function initPlayer() {
      this.video.width = Number.parseInt(this.hlsOps.width || 600);
      this.video.height = Number.parseInt(this.hlsOps.height || 337.5);
      this.video.style.outline = "none";
      this.playerInited = true;
    }
  }, {
    key: "_initEvents",
    value: function _initEvents() {
      var _this2 = this;
      this.once("canplay", function() {
        _this2.video.play();
      });
    }
  }, {
    key: "start",
    value: function start2() {
      var url = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.hlsOps.url;
      if (!url || this.started) {
        return;
      }
      if (!this.playerInited) {
        this.initPlayer();
      }
      if (!this._context) {
        this._context = new Context$1(HlsAllowedEvents$1);
      }
      this.__core__ = this._context.registry("HLS_LIVE_CONTROLLER", HlsLiveController)({ player: this, container: this.video, preloadTime: this.config.preloadTime });
      this._context.init();
      this.url = url;
      this.__core__.load(url);
      _get$1(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "start", this).call(this, url);
      this._initEvents();
      this.started = true;
      this.addLiveFlag();
    }
  }, {
    key: "play",
    value: function play2() {
      if (this.started) {
        this._context.destroy();
        this._context = new Context$1(HlsAllowedEvents$1);
        this.__core__ = this._context.registry("HLS_LIVE_CONTROLLER", HlsLiveController)({ player: this, container: this.video, preloadTime: this.config.preloadTime });
        this._context.init();
        this._initEvents();
        this.__core__.load(this.url);
      }
      _get$1(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "play", this).call(this);
    }
  }, {
    key: "addLiveFlag",
    value: function addLiveFlag() {
      var player = this;
      Player.util.addClass(player.root, "xgplayer-is-live");
      if (!Player.util.findDom(this.root, "xg-live")) {
        var live = Player.util.createDom("xg-live", "\u6B63\u5728\u76F4\u64AD", {}, "xgplayer-live");
        player.controls.appendChild(live);
      }
    }
  }, {
    key: "destroy",
    value: function destroy() {
      var _this3 = this;
      var isDelDOM = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
      return new Promise(function(resolve) {
        _get$1(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "destroy", _this3).call(_this3);
        var video = _this3.video, root = _this3.root;
        _get$1(HlsLivePlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsLivePlayer2.prototype), "destroy", _this3).call(_this3, isDelDOM);
        if (video && video.remove) {
          video.remove();
        } else if (root) {
          root.removeChild(video);
        }
        if (video) {
          video.destroy();
        }
        setTimeout(function() {
          resolve();
        }, 50);
      });
    }
  }, {
    key: "src",
    set: function set2(url) {
      this.onWaiting = this.onWaiting.bind(this);
      this._context.destroy();
      this._context = null;
      this.started = false;
      this.video.currentTime = 0;
      this.start(url);
    }
  }], [{
    key: "install",
    value: function install(name, plugin) {
      return Player.install(name, plugin);
    }
  }]);
  return HlsLivePlayer2;
}(Player);
HlsLivePlayer$1.install = Player.install.bind(Player);
var _createClass$3 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$3(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var HlsLivePlayer = function() {
  function HlsLivePlayer2(config) {
    _classCallCheck$3(this, HlsLivePlayer2);
    if (HlsLivePlayer$1.isSupported() && config.useWASM) {
      return new HlsLivePlayer$1(config);
    }
    if (HlsLivePlayer$2.isSupported()) {
      return new HlsLivePlayer$2(config);
    } else {
      return new Player(config);
    }
  }
  _createClass$3(HlsLivePlayer2, null, [{
    key: "install",
    value: function install(name, plugin) {
      return Player.install(name, plugin);
    }
  }]);
  return HlsLivePlayer2;
}();
HlsLivePlayer.EVENTS = EVENTS;
var _createClass$2 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck$2(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var LOADER_EVENTS = EVENTS.LOADER_EVENTS;
var REMUX_EVENTS$1 = EVENTS.REMUX_EVENTS;
var DEMUX_EVENTS = EVENTS.DEMUX_EVENTS;
EVENTS.HLS_EVENTS;
var CRYTO_EVENTS = EVENTS.CRYTO_EVENTS;
var MSE_EVENTS$1 = EVENTS.MSE_EVENTS;
var HLS_ERROR = "HLS_ERROR";
var HlsVodController = function() {
  function HlsVodController2(configs) {
    _classCallCheck$2(this, HlsVodController2);
    this.TAG = "HlsVodController";
    this.configs = Object.assign({}, configs);
    this.url = "";
    this.sequence = 0;
    this._playlist = null;
    this.retrytimes = this.configs.retrytimes || 3;
    this.container = this.configs.container;
    this.preloadTime = this.configs.preloadTime || 5;
    this.mse = this.configs.mse;
    this._lastSeekTime = 0;
    this.m3u8Text = null;
  }
  _createClass$2(HlsVodController2, [{
    key: "init",
    value: function init() {
      this._context.registry("M3U8_BUFFER", XgBuffer$1);
      this._tsBuffer = this._context.registry("TS_BUFFER", XgBuffer$1)();
      this._tracks = this._context.registry("TRACKS", Tracks)();
      this._playlist = this._context.registry("PLAYLIST", Playlist$1)({ autoclear: false });
      this._presource = this._context.registry("PRE_SOURCE_BUFFER", RemuxedBufferManager$1)();
      this._compat = this._context.registry("COMPATIBILITY", Compatibility$1)();
      this._context.registry("M3U8_LOADER", FetchLoader$1)({ buffer: "M3U8_BUFFER", readtype: 1 });
      this._tsloader = this._context.registry("TS_LOADER", FetchLoader$1)({ buffer: "TS_BUFFER", readtype: 3 });
      this._demuxer = this._context.registry("TS_DEMUXER", TsDemuxer$1)({ inputbuffer: "TS_BUFFER" });
      this._context.registry("MP4_REMUXER", Mp4Remuxer$1)(this._player.currentTime);
      if (!this.mse) {
        this.mse = new Mse({ container: this.container, preloadTime: this.preloadTime }, this._context);
        this.mse.init();
      }
      this.initEvents();
    }
  }, {
    key: "initEvents",
    value: function initEvents() {
      this._onLoaderCompete = this._onLoaderCompete.bind(this);
      this._onLoadError = this._onLoadError.bind(this);
      this._onInitSegment = this._onInitSegment.bind(this);
      this._handleSEIParsed = this._handleSEIParsed.bind(this);
      this._onMediaSegment = this._onMediaSegment.bind(this);
      this._onMetadataParsed = this._onMetadataParsed.bind(this);
      this._onDemuxComplete = this._onDemuxComplete.bind(this);
      this._onDemuxError = this._onDemuxError.bind(this);
      this._onRemuxError = this._onRemuxError.bind(this);
      this._handleMseError = this._handleMseError.bind(this);
      this._onUpdateEnd = this._onUpdateEnd.bind(this);
      this._onTimeUpdate = this._onTimeUpdate.bind(this);
      this._onWaiting = this._onWaiting.bind(this);
      this.on(LOADER_EVENTS.LOADER_COMPLETE, this._onLoaderCompete);
      this.on(LOADER_EVENTS.LOADER_ERROR, this._onLoadError);
      this.on(REMUX_EVENTS$1.INIT_SEGMENT, this._onInitSegment);
      this.on(DEMUX_EVENTS.SEI_PARSED, this._handleSEIParsed);
      this.on(REMUX_EVENTS$1.MEDIA_SEGMENT, this._onMediaSegment);
      this.on(DEMUX_EVENTS.METADATA_PARSED, this._onMetadataParsed);
      this.on(DEMUX_EVENTS.DEMUX_COMPLETE, this._onDemuxComplete);
      this.on(DEMUX_EVENTS.DEMUX_ERROR, this._onDemuxError);
      this.on(REMUX_EVENTS$1.REMUX_ERROR, this._onRemuxError);
      this.on(MSE_EVENTS$1.MSE_ERROR, this._handleMseError);
      this.on(MSE_EVENTS$1.SOURCE_UPDATE_END, this._onUpdateEnd);
      this.on("TIME_UPDATE", this._onTimeUpdate);
      this.on(MSE_EVENTS$1.SOURCE_UPDATE_END, this._onTimeUpdate);
      this.on("WAITING", this._onWaiting);
    }
  }, {
    key: "_onError",
    value: function _onError(type, mod, err, fatal) {
      var error2 = {
        errorType: type,
        errorDetails: "[" + mod + "]: " + (err ? err.message : ""),
        errorFatal: fatal
      };
      this._player && this._player.emit(HLS_ERROR, error2);
    }
  }, {
    key: "_onLoadError",
    value: function _onLoadError(mod, error2) {
      this._player.emit("error", {
        errorType: "network",
        ex: "[" + mod + "]: " + error2.message,
        errd: {}
      });
      this._onError(LOADER_EVENTS.LOADER_ERROR, mod, error2, true);
    }
  }, {
    key: "_onDemuxError",
    value: function _onDemuxError(mod, error2, fatal) {
      if (fatal === void 0) {
        fatal = true;
      }
      this._player.emit("error", {
        errorType: "parse",
        ex: "[" + mod + "]: " + error2.message,
        errd: {}
      });
      this._onError(LOADER_EVENTS.LOADER_ERROR, mod, error2, fatal);
    }
  }, {
    key: "_onRemuxError",
    value: function _onRemuxError(mod, error2, fatal) {
      if (fatal === void 0) {
        fatal = true;
      }
      this._player.emit("error", {
        errorType: "parse",
        ex: "[" + mod + "]: " + error2.message,
        errd: {}
      });
      this._onError(REMUX_EVENTS$1.REMUX_ERROR, mod, error2, fatal);
    }
  }, {
    key: "_handleMseError",
    value: function _handleMseError(tag, err, fatal) {
      if (fatal === void 0) {
        fatal = false;
      }
      this._player.emit("error", {
        errorType: "format",
        ex: "[" + tag + "]: " + err.message,
        errd: {}
      });
      this._onError(MSE_EVENTS$1.MSE_ERROR, tag, err, fatal);
    }
  }, {
    key: "_onWaiting",
    value: function _onWaiting(container) {
      var end = true;
      logger.log(this.TAG, "waiting.......", this._player.video.currentTime);
      this._seekToBufferStart();
      var playList = Object.keys(this._playlist.list);
      var playListLen = playList.length;
      if (!playListLen) {
        return;
      }
      for (var i = 0; i < playListLen; i++) {
        if (this.container.currentTime * 1e3 < parseInt(playList[i])) {
          end = false;
        }
      }
      if (end) {
        var ts = this._playlist.getTs(this.container.currentTime * 1e3);
        if (!ts) {
          this._player.emit("ended");
          this.mse.endOfStream();
        } else {
          if (ts.downloaded) {
            this._player.emit("ended");
            this.mse.endOfStream();
          }
        }
      }
    }
  }, {
    key: "_seekToBufferStart",
    value: function _seekToBufferStart() {
      var video = this._player.video;
      var buffered = video.buffered;
      var range = [0, 0];
      var currentTime = video.currentTime;
      if (buffered) {
        for (var i = 0, len = buffered.length; i < len; i++) {
          range[0] = buffered.start(i);
          range[1] = buffered.end(i);
          if (range[0] <= currentTime && currentTime <= range[1]) {
            return;
          }
        }
      }
      var bufferStart = range[0];
      if (currentTime === 0 && currentTime < bufferStart && Math.abs(currentTime - bufferStart) < 5) {
        video.currentTime = bufferStart;
      }
    }
  }, {
    key: "_checkEnd",
    value: function _checkEnd() {
      var video = this._player.video;
      var buffered = video.buffered;
      var len = buffered.length;
      if (!len)
        return;
      var end = buffered.end(len - 1);
      if (Math.abs(end - video.duration) < 1) {
        this.mse.endOfStream();
      }
    }
  }, {
    key: "_onUpdateEnd",
    value: function _onUpdateEnd() {
      this._checkEnd();
      this._seekToBufferStart();
      this._preload(this._player.currentTime);
    }
  }, {
    key: "_onTimeUpdate",
    value: function _onTimeUpdate() {
      this._seekToBufferStart();
      this._preload(this._player.currentTime);
    }
  }, {
    key: "_onDemuxComplete",
    value: function _onDemuxComplete() {
      this.emit(REMUX_EVENTS$1.REMUX_MEDIA, "ts");
    }
  }, {
    key: "_handleSEIParsed",
    value: function _handleSEIParsed(sei) {
      this._player.emit("SEI_PARSED", sei);
    }
  }, {
    key: "_onMetadataParsed",
    value: function _onMetadataParsed(type) {
      try {
        var m = this._tracks[type + "Track"].meta;
        logger.warn(this.TAG, "meta detect or changed , ", type, Object.assign({}, m));
      } catch (e) {
      }
      var duration = parseInt(this._playlist.duration);
      if (type === "video") {
        this._context.mediaInfo.hasVideo = true;
        this._tracks.videoTrack.meta.duration = duration;
      } else if (type === "audio") {
        this._context.mediaInfo.hasAudio = true;
        this._tracks.audioTrack.meta.duration = duration;
      }
      this.emit(REMUX_EVENTS$1.REMUX_METADATA, type);
    }
  }, {
    key: "_onMediaSegment",
    value: function _onMediaSegment() {
      if (Object.keys(this.mse.sourceBuffers).length < 1) {
        this.mse.addSourceBuffers();
      }
      this.mse.doAppend();
    }
  }, {
    key: "_onInitSegment",
    value: function _onInitSegment() {
      this.mse.addSourceBuffers();
    }
  }, {
    key: "_onLoaderCompete",
    value: function _onLoaderCompete(buffer) {
      if (buffer.TAG === "M3U8_BUFFER") {
        this.m3u8Text = buffer.shift();
        try {
          var mdata = M3U8Parser$1.parse(this.m3u8Text, this.url);
          this._playlist.pushM3U8(mdata);
        } catch (error2) {
          this._onError("M3U8_PARSER_ERROR", "PLAYLIST", error2, true);
        }
        if (this._playlist.encrypt && this._playlist.encrypt.uri && !this._playlist.encrypt.key) {
          this._context.registry("DECRYPT_BUFFER", XgBuffer$1)();
          this._context.registry("KEY_BUFFER", XgBuffer$1)();
          this._tsloader.buffer = "DECRYPT_BUFFER";
          this._keyLoader = this._context.registry("KEY_LOADER", FetchLoader$1)({ buffer: "KEY_BUFFER", readtype: 3 });
          this.emitTo("KEY_LOADER", LOADER_EVENTS.LADER_START, this._playlist.encrypt.uri);
        } else {
          if (!this.preloadTime) {
            if (this._playlist.targetduration) {
              this.preloadTime = this._playlist.targetduration;
              this.mse.preloadTime = this._playlist.targetduration;
            } else {
              this.preloadTime = 5;
              this.mse.preloadTime = 5;
            }
          }
          var frag = this._playlist.getTs((this._player.currentTime + 0.5) * 1e3);
          if (frag) {
            this._logDownSegment(frag);
            this._playlist.downloading(frag.url, true);
            this.emitTo("TS_LOADER", LOADER_EVENTS.LADER_START, frag.url);
          } else {
            if (this.retrytimes > 0) {
              this.retrytimes--;
              this.emitTo("M3U8_LOADER", LOADER_EVENTS.LADER_START, this.url);
            }
          }
        }
      } else if (buffer.TAG === "TS_BUFFER") {
        this._playlist.downloaded(this._tsloader.url, true);
        this._demuxer.demux(Object.assign({ url: this._tsloader.url }, this._playlist._ts[this._tsloader.url]), true);
        this._preload(this.mse.container.currentTime);
      } else if (buffer.TAG === "DECRYPT_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.downloaded(this._tsloader.url, true);
        this.emitTo("CRYPTO", CRYTO_EVENTS.START_DECRYPT, Object.assign({ url: this._tsloader.url }, this._playlist._ts[this._tsloader.url]));
      } else if (buffer.TAG === "KEY_BUFFER") {
        this.retrytimes = this.configs.retrytimes || 3;
        this._playlist.encrypt.key = buffer.shift();
        this._crypto = this._context.registry("CRYPTO", Crypto$1)({
          key: this._playlist.encrypt.key,
          iv: this._playlist.encrypt.ivb,
          method: this._playlist.encrypt.method,
          inputbuffer: "DECRYPT_BUFFER",
          outputbuffer: "TS_BUFFER"
        });
        this._crypto.on(CRYTO_EVENTS.DECRYPTED, this._onDcripted.bind(this));
        var _frag = this._playlist.getTs();
        if (_frag) {
          this._playlist.downloading(_frag.url, true);
          this.emitTo("TS_LOADER", LOADER_EVENTS.LADER_START, _frag.url);
        } else {
          if (this.retrytimes > 0) {
            this.retrytimes--;
            this.emitTo("M3U8_LOADER", LOADER_EVENTS.LADER_START, this.url);
          }
        }
      }
    }
  }, {
    key: "_onDcripted",
    value: function _onDcripted() {
      this.emit(DEMUX_EVENTS.DEMUX_START);
    }
  }, {
    key: "seek",
    value: function seek(time2) {
      var video = this._player.video;
      for (var i = 0; i < video.buffered.length; i++) {
        if (time2 >= video.buffered.start(i) && time2 < video.buffered.end(i)) {
          return;
        }
      }
      logger.warn(this.TAG, "seek: ", time2, "tsloading:", this._tsloader.loading);
      var frag = this._playlist.getTs((time2 + 0.5) * 1e3);
      if (frag && this._tsloader.loading && this._tsloader.url === frag.url)
        return;
      this._lastSeekTime = time2;
      this._tsloader.destroy();
      this._tsloader = this._context.registry("TS_LOADER", FetchLoader$1)({ buffer: "TS_BUFFER", readtype: 3 });
      if (this._presource.sources.video) {
        this._presource.sources.video.data = [];
      }
      if (this._presource.sources.audio) {
        this._presource.sources.audio.data = [];
      }
      if (this._tracks.audioTrack) {
        this._tracks.audioTrack.samples = [];
      }
      if (this._tracks.videoTrack) {
        this._tracks.videoTrack.samples = [];
      }
      if (this._compat) {
        this._compat.reset();
      }
      if (this._tsBuffer) {
        this._tsBuffer.array = [];
        this._tsBuffer.length = 0;
        this._tsBuffer.offset = 0;
      }
      this._playlist.clearDownloaded();
      this._context.seek(time2);
      this._preload(time2);
    }
  }, {
    key: "replay",
    value: function replay2() {
      this._compat.reset();
      this._playlist.clearDownloaded();
    }
  }, {
    key: "load",
    value: function load(url) {
      this.url = url;
      this.emitTo("M3U8_LOADER", LOADER_EVENTS.LADER_START, url, null, 0);
    }
  }, {
    key: "_preload",
    value: function _preload(time2) {
      time2 = Math.floor(time2);
      if (this._tsloader.loading) {
        return;
      }
      logger.log(this.TAG, "preload: time=", time2);
      var video = this.mse.container;
      var currentbufferend = -1;
      if (!time2 && video.buffered.length) {
        time2 = video.buffered.start(0);
      }
      for (var i = 0; i < video.buffered.length; i++) {
        if (time2 >= Math.floor(video.buffered.start(i)) && time2 <= Math.ceil(video.buffered.end(i))) {
          currentbufferend = video.buffered.end(i);
        }
      }
      if (currentbufferend < 0) {
        var frag = this._playlist.getTs((time2 + 0.5) * 1e3);
        if (frag && frag.downloaded) {
          frag = this._playlist.getTs(frag.time + frag.duration);
        }
        if (frag && !frag.downloading && !frag.downloaded) {
          this._logDownSegment(frag);
          this._playlist.downloading(frag.url, true);
          this.emitTo("TS_LOADER", LOADER_EVENTS.LADER_START, frag.url);
        }
      } else if (currentbufferend < time2 + this.preloadTime) {
        var _frag2 = this._playlist.getLastDownloadedTs() || this._playlist.getTs(currentbufferend * 1e3);
        if (!_frag2) {
          return;
        }
        var curTime = _frag2.time + _frag2.duration;
        var curFragTime = _frag2.time;
        if (_frag2.downloaded) {
          var loopMax = 1e3;
          while (loopMax-- > 0) {
            curTime += 10;
            _frag2 = this._playlist.getTs(curTime);
            if (!_frag2 || _frag2.time > curFragTime) {
              break;
            }
          }
        }
        if (_frag2 && !_frag2.downloading && !_frag2.downloaded) {
          this._logDownSegment(_frag2);
          this._playlist.downloading(_frag2.url, true);
          this.emitTo("TS_LOADER", LOADER_EVENTS.LADER_START, _frag2.url);
        }
      }
    }
  }, {
    key: "cleanBuffer",
    value: function cleanBuffer() {
      var _this = this;
      var time2 = this._player.currentTime;
      var video = this._player.video;
      var buffered = video.buffered;
      if (!buffered || !buffered.length) {
        return;
      }
      var range = [0, 0];
      var currentTime = video.currentTime;
      if (buffered) {
        for (var i = 0, len = buffered.length; i < len; i++) {
          range[0] = buffered.start(i);
          range[1] = buffered.end(i);
          if (range[0] <= currentTime && currentTime <= range[1]) {
            break;
          }
        }
      }
      var bufferStart = range[0];
      var bufferEnd = range[1];
      if (time2 - bufferStart > 10 || buffered.length > 1) {
        this.mse.remove(Math.max(Math.min(time2 - 10, bufferEnd - 10), 0.1), 0);
        this.bufferClearTimer = setTimeout(function() {
          _this.bufferClearTimer = null;
        }, 5e3);
      }
    }
  }, {
    key: "destory",
    value: function destory() {
      this.configs = {};
      this.url = "";
      this.sequence = 0;
      this._playlist = null;
      this.retrytimes = 3;
      this.container = void 0;
      this.preloadTime = 5;
      this._lastSeekTime = 0;
      this.m3u8Text = null;
      this.mse = null;
      this.off(LOADER_EVENTS.LOADER_COMPLETE, this._onLoaderCompete);
      this.off(LOADER_EVENTS.LOADER_ERROR, this._onLoadError);
      this.off(REMUX_EVENTS$1.INIT_SEGMENT, this._onInitSegment);
      this.off(REMUX_EVENTS$1.MEDIA_SEGMENT, this._onMediaSegment);
      this.off(DEMUX_EVENTS.METADATA_PARSED, this._onMetadataParsed);
      this.off(DEMUX_EVENTS.DEMUX_COMPLETE, this._onDemuxComplete);
      this.off("TIME_UPDATE", this._onTimeUpdate);
      this.off("WAITING", this._onWaiting);
    }
  }, {
    key: "_logDownSegment",
    value: function _logDownSegment(frag) {
      if (!frag)
        return;
      logger.groupEnd();
      logger.group(this.TAG, "load " + frag.id + ": [" + frag.time / 1e3 + " , " + (frag.time + frag.duration) / 1e3 + "], downloading: " + frag.downloading + " , donwloaded: " + frag.downloaded);
    }
  }]);
  return HlsVodController2;
}();
var _createClass$1 = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
var _set = function set(object, property, value, receiver) {
  var desc = Object.getOwnPropertyDescriptor(object, property);
  if (desc === void 0) {
    var parent = Object.getPrototypeOf(object);
    if (parent !== null) {
      set(parent, property, value, receiver);
    }
  } else if ("value" in desc && desc.writable) {
    desc.value = value;
  } else {
    var setter = desc.set;
    if (setter !== void 0) {
      setter.call(receiver, value);
    }
  }
  return value;
};
var _get = function get4(object, property, receiver) {
  if (object === null)
    object = Function.prototype;
  var desc = Object.getOwnPropertyDescriptor(object, property);
  if (desc === void 0) {
    var parent = Object.getPrototypeOf(object);
    if (parent === null) {
      return void 0;
    } else {
      return get4(parent, property, receiver);
    }
  } else if ("value" in desc) {
    return desc.value;
  } else {
    var getter = desc.get;
    if (getter === void 0) {
      return void 0;
    }
    return getter.call(receiver);
  }
};
function _classCallCheck$1(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function _possibleConstructorReturn(self2, call) {
  if (!self2) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }
  return call && (typeof call === "object" || typeof call === "function") ? call : self2;
}
function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }
  subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
  if (superClass)
    Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
var debounce = debounce$1;
var HlsAllowedEvents = EVENTS.HlsAllowedEvents;
var REMUX_EVENTS = EVENTS.REMUX_EVENTS;
var HLS_EVENTS = EVENTS.HLS_EVENTS;
var MSE_EVENTS = EVENTS.MSE_EVENTS;
var HlsVodPlayer = function(_Player) {
  _inherits(HlsVodPlayer2, _Player);
  function HlsVodPlayer2(options) {
    _classCallCheck$1(this, HlsVodPlayer2);
    var _this = _possibleConstructorReturn(this, (HlsVodPlayer2.__proto__ || Object.getPrototypeOf(HlsVodPlayer2)).call(this, options));
    _this.hlsOps = {};
    _this.util = Player.util;
    _this.util.deepCopy(_this.hlsOps, options);
    _this._handleSetCurrentTime = debounce(_this._handleSetCurrentTime.bind(_this), 200);
    _this.onWaiting = _this.onWaiting.bind(_this);
    return _this;
  }
  _createClass$1(HlsVodPlayer2, [{
    key: "_handleSetCurrentTime",
    value: function _handleSetCurrentTime(time2) {
      time2 = parseFloat(time2);
      if (time2 === this.currentTime)
        return;
      _set(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "currentTime", time2, this);
      if (this._context) {
        this.__core__.seek(time2);
      }
    }
  }, {
    key: "play",
    value: function play2() {
      var _this2 = this;
      return this.video.play().catch(function(e) {
        if (e && e.code === 20) {
          _this2.once("canplay", function() {
            _this2.video.play();
          });
        }
      });
    }
  }, {
    key: "replay",
    value: function replay2() {
      var _this3 = this;
      this.__core__.mse.cleanBuffers().then(function() {
        _this3.__core__.replay();
        _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "replay", _this3).call(_this3);
      });
    }
  }, {
    key: "_initEvents",
    value: function _initEvents() {
      var _this4 = this;
      this.__core__.once(REMUX_EVENTS.INIT_SEGMENT, function() {
        var mse = _this4.__core__.mse;
        _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "start", _this4).call(_this4, mse.url);
      });
      this.__core__.once(HLS_EVENTS.RETRY_TIME_EXCEEDED, function() {
        _this4.emit("error", new Player.Errors("network", _this4.config.url));
      });
      this.__core__.on(MSE_EVENTS.SOURCE_UPDATE_END, function() {
        _this4._onSourceUpdateEnd();
      });
      this.once("canplay", function() {
        if (_this4.config.autoplay) {
          _this4.play();
        }
      });
    }
  }, {
    key: "initHlsBackupEvents",
    value: function initHlsBackupEvents(hls, ctx) {
      var _this5 = this;
      hls.once(REMUX_EVENTS.INIT_SEGMENT, function() {
        if (!_this5.video.src) {
          console.log("\u6302\u8F7D src blob");
          var mse = hls.mse;
          _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "start", _this5).call(_this5, mse.url);
        }
      });
      hls.once(EVENTS.REMUX_EVENTS.MEDIA_SEGMENT, function() {
        _this5.__core__ = hls;
        _this5.__core__.mse.cleanBuffers().then(function() {
          _this5.__core__.mse.resetContext(ctx);
          _this5.__core__.mse.doAppend();
          _this5._context = ctx;
        });
      });
      hls.once(EVENTS.LOADER_EVENTS.LOADER_ERROR, function() {
        ctx.destroy();
      });
    }
  }, {
    key: "_onSourceUpdateEnd",
    value: function _onSourceUpdateEnd() {
      if (this.video.readyState === 1 || this.video.readyState === 2) {
        var _detectBufferGap = this.detectBufferGap(), gap = _detectBufferGap.gap, start2 = _detectBufferGap.start, method = _detectBufferGap.method;
        if (gap) {
          if (method === "ceil" && this.currentTime < Math[method](start2)) {
            this.currentTime = Math[method](start2);
          } else if (method === "floor" && this.currentTime > Math[method](start2)) {
            this.currentTime = Math[method](start2);
          }
        }
      }
    }
  }, {
    key: "start",
    value: function start2() {
      var url = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.config.url;
      if (!url || this.started) {
        return;
      }
      if (!this._context) {
        this._context = new Context$1(this, this.hlsOps, HlsAllowedEvents);
      }
      this.__core__ = this._context.registry("HLS_VOD_CONTROLLER", HlsVodController)({ player: this, container: this.video, preloadTime: this.config.preloadTime });
      this._context.init();
      this.__core__.load(url);
      this._initEvents();
      this.started = true;
    }
  }, {
    key: "switchURL",
    value: function switchURL(url) {
      this.config.url = url;
      var context = new Context$1(this, this.hlsOps, HlsAllowedEvents);
      var hls = context.registry("HLS_VOD_CONTROLLER", HlsVodController)({
        player: this,
        container: this.video,
        mse: this.__core__.mse,
        preloadTime: this.config.preloadTime
      });
      this.newContext = context;
      this.newHls = hls;
      context.init();
      this._context.destroy();
      this.initHlsBackupEvents(hls, context);
      this.__core__.mse.cleanBuffers().then(function() {
        hls.load(url);
      });
    }
  }, {
    key: "destroy",
    value: function destroy() {
      var _this6 = this;
      return new Promise(function(resolve) {
        if (_this6.__core__ && _this6.__core__.mse) {
          _this6.__core__.mse.destroy().then(function() {
            if (_this6._context) {
              _this6._context.destroy();
            }
            _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "destroy", _this6).call(_this6);
            resolve();
          });
          setTimeout(function() {
            resolve();
          }, 100);
        } else {
          _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "destroy", _this6).call(_this6);
          setTimeout(function() {
            resolve();
          }, 50);
        }
      });
    }
  }, {
    key: "detectBufferGap",
    value: function detectBufferGap() {
      var video = this.video;
      var result = {
        gap: false,
        start: -1
      };
      var isStartPlay = this.currentTime === 0;
      for (var i = 0; i < video.buffered.length; i++) {
        var bufferStart = video.buffered.start(i);
        var bufferEnd = video.buffered.end(i);
        if ((!video.played.length || bufferStart <= this.currentTime && bufferEnd - this.currentTime >= 0.5) && !isStartPlay) {
          break;
        }
        var startGap = bufferStart - this.currentTime;
        var endGap = this.currentTime - bufferEnd;
        if (startGap > 0.01 && (startGap <= 2 || isStartPlay)) {
          result = {
            gap: true,
            start: bufferStart,
            method: "ceil"
          };
          break;
        } else if (endGap > 0.1 && (endGap <= 2 || isStartPlay)) {
          result = {
            gap: true,
            start: bufferEnd,
            method: "floor"
          };
        } else {
          result = {
            gap: false,
            start: -1
          };
        }
      }
      return result;
    }
  }, {
    key: "currentTime",
    get: function get5() {
      return _get(HlsVodPlayer2.prototype.__proto__ || Object.getPrototypeOf(HlsVodPlayer2.prototype), "currentTime", this);
    },
    set: function set2(time2) {
      this._handleSetCurrentTime(time2);
    }
  }, {
    key: "src",
    get: function get5() {
      return this.currentSrc;
    },
    set: function set2(url) {
      var _this7 = this;
      this.onWaiting = this.onWaiting.bind(this);
      this.__core__.mse.destroy().then(function() {
        _this7._context.destroy();
        _this7._context = null;
        _this7.video.src = "";
        _this7.video.load();
        _this7.started = false;
        _this7.video.currentTime = 0;
        if (!_this7.paused) {
          _this7.pause();
          _this7.once("canplay", function() {
            _this7.play();
          });
        } else {
          _this7.play();
        }
        _this7.start(url);
      });
    }
  }, {
    key: "context",
    get: function get5() {
      return this._context;
    }
  }], [{
    key: "isSupported",
    value: function isSupported() {
      return window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"');
    }
  }, {
    key: "install",
    value: function install(name, plugin) {
      return Player.install(name, plugin);
    }
  }]);
  return HlsVodPlayer2;
}(Player);
var _createClass = function() {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor)
        descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }
  return function(Constructor, protoProps, staticProps) {
    if (protoProps)
      defineProperties(Constructor.prototype, protoProps);
    if (staticProps)
      defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var HlsPlayer = function() {
  function HlsPlayer2(config) {
    _classCallCheck(this, HlsPlayer2);
    if (config.isLive) {
      return new HlsLivePlayer(config);
    } else {
      return new HlsVodPlayer(config);
    }
  }
  _createClass(HlsPlayer2, null, [{
    key: "isSupported",
    value: function isSupported() {
      return window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"');
    }
  }, {
    key: "install",
    value: function install(name, plugin) {
      return Player.install(name, plugin);
    }
  }]);
  return HlsPlayer2;
}();
function createDom(el = "div", tpl = "", attrs = {}, cname = "") {
  let dom = document.createElement(el);
  dom.className = cname;
  dom.innerHTML = tpl;
  Object.keys(attrs).forEach((item) => {
    let key = item;
    let value = attrs[item];
    if (el === "video" || el === "audio") {
      if (value) {
        dom.setAttribute(key, value);
      }
    } else {
      dom.setAttribute(key, value);
    }
  });
  return dom;
}
function hasClass(el, className) {
  if (!el) {
    return false;
  }
  if (el.classList) {
    return Array.prototype.some.call(el.classList, (item) => item === className);
  } else if (el.className) {
    return !!el.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)"));
  } else {
    return false;
  }
}
function addClass(el, className) {
  if (!el) {
    return;
  }
  if (el.classList) {
    className.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach((item) => {
      item && el.classList.add(item);
    });
  } else if (!hasClass(el, className)) {
    el.className += " " + className;
  }
}
function removeClass(el, className) {
  if (!el) {
    return;
  }
  if (el.classList) {
    className.split(/\s+/g).forEach((item) => {
      el.classList.remove(item);
    });
  } else if (hasClass(el, className)) {
    className.split(/\s+/g).forEach((item) => {
      let reg = new RegExp("(\\s|^)" + item + "(\\s|$)");
      el.className = el.className.replace(reg, " ");
    });
  }
}
function toggleClass(el, className) {
  if (!el) {
    return;
  }
  className.split(/\s+/g).forEach((item) => {
    if (hasClass(el, item)) {
      removeClass(el, item);
    } else {
      addClass(el, item);
    }
  });
}
function findDom(el = document, sel) {
  let dom;
  try {
    dom = el.querySelector(sel);
  } catch (e) {
    if (sel.indexOf("#") === 0) {
      dom = el.getElementById(sel.slice(1));
    }
  }
  return dom;
}
function padStart(str, length, pad) {
  let charstr = String(pad);
  let len = length >> 0;
  let maxlen = Math.ceil(len / charstr.length);
  let chars = [];
  let r = String(str);
  while (maxlen--) {
    chars.push(charstr);
  }
  return chars.join("").substring(0, len - r.length) + r;
}
function format(time2) {
  if (window.isNaN(time2)) {
    return "";
  }
  let hour = padStart(Math.floor(time2 / 3600), 2, 0);
  let minute = padStart(Math.floor((time2 - hour * 3600) / 60), 2, 0);
  let second = padStart(Math.floor(time2 - hour * 3600 - minute * 60), 2, 0);
  return (hour === "00" ? [minute, second] : [hour, minute, second]).join(":");
}
function event(e) {
  if (e.touches) {
    let touch = e.touches[0] || e.changedTouches[0];
    e.clientX = touch.clientX || 0;
    e.clientY = touch.clientY || 0;
    e.offsetX = touch.pageX - touch.target.offsetLeft;
    e.offsetY = touch.pageY - touch.target.offsetTop;
  }
  e._target = e.target || e.srcElement;
}
function typeOf(obj) {
  return Object.prototype.toString.call(obj).match(/([^\s.*]+)(?=]$)/g)[0];
}
function createImgBtn(name, imgUrl, width, height) {
  let btn = createDom(`xg-${name}`, "", {}, `xgplayer-${name}-img`);
  btn.style.backgroundImage = `url("${imgUrl}")`;
  if (width && height) {
    let w, h, unit;
    ["px", "rem", "em", "pt", "dp", "vw", "vh", "vm", "%"].every((item) => {
      if (width.indexOf(item) > -1 && height.indexOf(item) > -1) {
        w = Number(width.slice(0, width.indexOf(item)).trim());
        h = Number(height.slice(0, height.indexOf(item)).trim());
        unit = item;
        return false;
      } else {
        return true;
      }
    });
    btn.style.width = `${w}${unit}`;
    btn.style.height = `${h}${unit}`;
    btn.style.backgroundSize = `${w}${unit} ${h}${unit}`;
    if (name === "start") {
      btn.style.margin = `-${h / 2}${unit} auto auto -${w / 2}${unit}`;
    } else {
      btn.style.margin = "auto 5px auto 5px";
    }
  }
  return btn;
}
function isWeiXin() {
  let ua = window.navigator.userAgent.toLowerCase();
  return ua.indexOf("micromessenger") > -1;
}
function isUc() {
  let ua = window.navigator.userAgent.toLowerCase();
  return ua.indexOf("ucbrowser") > -1;
}
var PlayIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="translate(2,2) scale(0.0320625 0.0320625)" d="M576,363L810,512L576,661zM342,214L576,363L576,661L342,810z"></path>\n</svg>\n';
var PauseIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="translate(2,2) scale(0.0320625 0.0320625)" d="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z"></path>\n</svg>\n';
var play = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-play,.xgplayer-skin-xg-player .xgplayer-play-img{width:40px;position:relative;order:0;display:block;cursor:pointer;margin-left:3px}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-icon,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-icon{margin-top:3px;width:32px}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-icon div,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-xg-player .xgplayer-play .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-xg-player .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause{display:none}.xgplayer-skin-xg-player .xgplayer-play:hover,.xgplayer-skin-xg-player .xgplayer-play-img:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-play:hover .xgplayer-tips,.xgplayer-skin-xg-player .xgplayer-play-img:hover .xgplayer-tips{display:block}.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play{display:none}.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause{display:block}.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play{display:none}.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-play,.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-play{display:block}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play .xgplayer-icon .xgplayer-icon-pause,.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play-img .xgplayer-icon .xgplayer-icon-pause{display:none}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-play,.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-play{display:block}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play .xgplayer-tips .xgplayer-tip-pause,.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-play-img .xgplayer-tips .xgplayer-tip-pause{display:none}\n")();
let s_play = function() {
  let player = this;
  let playBtn = player.config.playBtn ? player.config.playBtn : {};
  let btn;
  if (playBtn.type === "img") {
    btn = createImgBtn("play", playBtn.url.play, playBtn.width, playBtn.height);
  } else {
    btn = createDom("xg-play", `<xg-icon class="xgplayer-icon">
                                      <div class="xgplayer-icon-play">${PlayIcon}</div>
                                      <div class="xgplayer-icon-pause">${PauseIcon}</div>
                                     </xg-icon>`, {}, "xgplayer-play");
  }
  let tipsText = {};
  tipsText.play = player.lang.PLAY_TIPS;
  tipsText.pause = player.lang.PAUSE_TIPS;
  let tips = createDom("xg-tips", `<span class="xgplayer-tip-play">${tipsText.play}</span>
                                        <span class="xgplayer-tip-pause">${tipsText.pause}</span>`, {}, "xgplayer-tips");
  btn.appendChild(tips);
  player.once("ready", () => {
    if (player.controls) {
      player.controls.appendChild(btn);
    }
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, function(e) {
      console.log(111);
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("playBtnClick");
    });
  });
};
var Play = {
  name: "s_play",
  method: s_play
};
var placeholder = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-placeholder{flex:1;order:3;display:block}\n")();
let s_flex = function() {
  let player = this;
  let playceholder = createDom("xg-placeholder", "", {}, "xgplayer-placeholder");
  player.controls.appendChild(playceholder);
};
var Flex = {
  name: "s_flex",
  method: s_flex
};
var RequestFullIcon = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657704936802"\n     viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20523" width="24"\n    height="24" xmlns:xlink="http://www.w3.org/1999/xlink">\n    <defs>\n        <style type="text/css">\n            @font-face {\n                font-family: feedback-iconfont;\n                src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n            }\n        </style>\n    </defs>\n    <path\n        d="M211.97837653 812.54591147h600.8242176V211.60700587H211.97837653v600.9389056z m81.9593216-518.9632h436.90666667v436.994048h-436.90666667v-436.994048z m-177.39175253 27.26843733c22.61538133 0 40.89992533-18.284544 40.89992533-40.90538667V157.0635776h122.8537856c22.62084267 0 40.90538667-18.284544 40.90538667-40.910848s-18.284544-40.910848-40.90538667-40.910848H116.5459456c-22.626304 0-40.90538667 18.284544-40.90538667 40.910848v163.94594987c-0.15291733 22.46792533 18.13162667 40.75246933 40.90538667 40.75246933z m163.7548032 546.24365227H157.4469632V744.21261653c0-22.63176533-18.284544-40.91630933-40.89992533-40.91630933-22.626304 0-40.90538667 18.284544-40.90538667 40.91630933v163.7875712c0 22.626304 18.27908267 40.910848 40.90538667 40.910848h163.91318186c22.626304 0 40.90538667-18.284544 40.90538667-40.910848-0.15947093-22.62084267-18.44401493-40.90538667-41.0648576-40.90538666zM908.38903467 75.087872H744.4758528c-22.61538133 0-40.89992533 18.284544-40.89992533 40.90538667 0 22.626304 18.284544 40.910848 40.89992533 40.910848h122.86470827v122.8865536c0 22.62084267 18.27908267 40.90538667 40.89992533 40.90538666 22.61538133 0 40.89992533-18.284544 40.89992533-40.90538666v-163.79630934c0.1540096-22.62084267-18.12507307-40.90647893-40.75137706-40.90647893z m0 628.2084352c-22.61538133 0-40.89992533 18.284544-40.89992534 40.91630933v122.88109227H744.63423147c-22.626304 0-40.89992533 18.284544-40.89992534 40.90538667 0 22.626304 18.27362133 40.910848 40.89992534 40.910848h163.9186432c22.61538133 0 40.89992533-18.284544 40.89992533-40.910848V744.21261653c-0.15837867-22.63176533-18.43746133-40.91630933-41.06376533-40.91630933z m0 0"\n        fill="#ffffff" p-id="20524"></path>\n</svg>';
var ExitFullIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.0320625 0.0320625)" d="M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z"></path>\n</svg>\n';
var fullscreen = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-fullscreen,.xgplayer-skin-xg-player .xgplayer-fullscreen-img{position:relative;order:13;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-icon,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-icon{margin-top:3px}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-icon div,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-icon div{position:absolute;top:10px;left:4px}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-tips,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-xg-player .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-xg-player .xgplayer-fullscreen:hover,.xgplayer-skin-xg-player .xgplayer-fullscreen-img:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-fullscreen:hover .xgplayer-tips,.xgplayer-skin-xg-player .xgplayer-fullscreen-img:hover .xgplayer-tips{display:block}.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen .xgplayer-fullscreen-img .xgplayer-tips .xgplayer-tip-exitfull{display:block}\n")();
let s_fullscreen = function() {
  let player = this;
  let fullscreenBtn = player.config.fullscreenBtn ? player.config.fullscreenBtn : {};
  let btn;
  if (fullscreenBtn.type === "img") {
    btn = createImgBtn("fullscreen", fullscreenBtn.url.request, fullscreenBtn.width, fullscreenBtn.height);
  } else {
    btn = createDom("xg-fullscreen", `<xg-icon class="xgplayer-icon">
                                             <div class="xgplayer-icon-requestfull">${RequestFullIcon}</div>
                                             <div class="xgplayer-icon-exitfull">${ExitFullIcon}</div>
                                           </xg-icon>`, {}, "xgplayer-fullscreen");
  }
  let tipsText = {};
  tipsText.requestfull = player.lang.FULLSCREEN_TIPS;
  tipsText.exitfull = player.lang.EXITFULLSCREEN_TIPS;
  let tips = createDom("xg-tips", `<span class="xgplayer-tip-requestfull">${tipsText.requestfull}</span>
                                        <span class="xgplayer-tip-exitfull">${tipsText.exitfull}</span>`, {}, "xgplayer-tips");
  btn.appendChild(tips);
  player.once("ready", () => {
    if (player.controls) {
      player.controls.appendChild(btn);
    }
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, function(e) {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("fullscreenBtnClick");
    });
  });
};
var Fullscreen = {
  name: "s_fullscreen",
  method: s_fullscreen
};
var ScreenShot$1 = '<?xml version="1.0" standalone="no"?>\r\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657704752854"\r\n     viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20091" width="24"\r\n    height="24" xmlns:xlink="http://www.w3.org/1999/xlink">\r\n    <defs>\r\n        <style type="text/css">\r\n            @font-face {\r\n                font-family: feedback-iconfont;\r\n                src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\r\n            }\r\n        </style>\r\n    </defs>\r\n    <path d="M128 512h768v320H128V512z"  opacity=".1" p-id="20092"></path>\r\n    <path\r\n        d="M896 864H128c-19.2 0-32-12.8-32-32V256c0-19.2 12.8-32 32-32h768c19.2 0 32 12.8 32 32v576c0 19.2-12.8 32-32 32z m-736-64h704v-512h-704v512z"\r\n         p-id="20093"></path>\r\n    <path\r\n        d="M768 288H256c-12.8 0-19.2-6.4-25.6-12.8s-6.4-19.2 0-32l64-128c0-12.8 12.8-19.2 25.6-19.2h384c12.8 0 25.6 6.4 25.6 19.2l64 128c6.4 12.8 6.4 19.2 0 32-6.4 6.4-12.8 12.8-25.6 12.8z m-460.8-64h409.6l-32-64H339.2l-32 64zM512 736c-108.8 0-192-83.2-192-192s83.2-192 192-192 192 83.2 192 192-83.2 192-192 192z m0-320c-70.4 0-128 57.6-128 128s57.6 128 128 128 128-57.6 128-128-57.6-128-128-128z"\r\n         p-id="20094"></path>\r\n</svg>';
var screenShot = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-screenshot{order:11;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-xg-player .xgplayer-screenshot .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:#fffc}.xgplayer-skin-xg-player .xgplayer-screenshot .name span{width:fit-content;padding:0 10px;height:20px;line-height:20px;display:inline-block;vertical-align:middle}.xgplayer-skin-xg-player .xgplayer-screenshot .name span svg{fill:#fff}.xgplayer-skin-xg-player .xgplayer-screenshot .name span:hover svg{fill:#fffc}.xgplayer-lang-is-en .xgplayer-screenshot .name span,.xgplayer-lang-is-jp .xgplayer-screenshot .name span{width:75px;height:20px}\n")();
let s_screenShot = function() {
  let player = this;
  if (!player.config.screenShot || player.config.screenShot.hideButton) {
    return;
  }
  player.lang.SCREENSHOT;
  let btn = createDom("xg-screenshot", `<p class="name"><span>${ScreenShot$1}</span></p>`, { tabindex: 11 }, "xgplayer-screenshot");
  player.once("ready", () => {
    player.controls.appendChild(btn);
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, (e) => {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("screenShotBtnClick");
    });
  });
};
var ScreenShot = {
  name: "s_screenShot",
  method: s_screenShot
};
var RequestCssFullIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.028 0.028)" d="M843.617212 67.898413 175.411567 67.898413c-61.502749 0-111.367437 49.856501-111.367437 111.367437l0 668.205645c0 61.510936 49.864688 111.367437 111.367437 111.367437L843.617212 958.838931c61.510936 0 111.367437-49.856501 111.367437-111.367437L954.984648 179.26585C954.984648 117.754914 905.12917 67.898413 843.617212 67.898413zM398.146441 736.104057c15.380292 0 27.842115 12.461823 27.842115 27.842115 0 15.379269-12.461823 27.841092-27.842115 27.841092L259.725858 791.787264c-7.785314 0-14.781658-3.217275-19.838837-8.365528-5.383614-4.577249-8.791224-11.228739-8.791224-19.475564L231.095797 624.736621c0-15.371082 12.471033-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115l-0.61603 71.426773 133.036969-133.037992 39.378869 39.378869L324.962651 736.113267 398.146441 736.104057zM419.199942 463.611943 286.162974 330.565764l0.61603 71.435982c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.371082 0-27.842115-12.461823-27.842115-27.842115L231.094774 262.791172c0-8.256034 3.40761-14.908548 8.791224-19.476587 5.057179-5.148253 12.053524-8.374738 19.838837-8.374738l138.420583 0.00921c15.380292 0 27.842115 12.461823 27.842115 27.842115s-12.461823 27.842115-27.842115 27.842115l-73.175603-0.00921 133.607974 133.607974L419.199942 463.611943zM787.932981 763.946172c0 8.247848-3.40761 14.899338-8.791224 19.475564-5.057179 5.148253-12.053524 8.365528-19.839861 8.365528L620.881314 791.787264c-15.379269 0-27.841092-12.461823-27.841092-27.841092 0-15.380292 12.461823-27.842115 27.841092-27.842115l73.185836 0.00921L560.449967 602.50427l39.378869-39.378869L732.875015 696.163393l-0.62524-71.426773c0-15.371082 12.462846-27.842115 27.842115-27.842115 15.380292 0 27.842115 12.471033 27.842115 27.842115L787.934005 763.946172zM787.932981 402.000724c0 15.380292-12.461823 27.842115-27.842115 27.842115-15.379269 0-27.842115-12.461823-27.842115-27.842115l0.62524-71.435982L599.828836 463.611943l-39.378869-39.378869 133.617184-133.607974-73.185836 0.00921c-15.379269 0-27.841092-12.461823-27.841092-27.842115s12.461823-27.842115 27.841092-27.842115l138.421606-0.00921c7.785314 0 14.781658 3.226484 19.839861 8.374738 5.383614 4.568039 8.791224 11.219529 8.791224 19.476587L787.934005 402.000724z"></path>\n</svg>\n';
var ExitCssFullIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40">\n  <path transform="scale(0.028 0.028)" d="M834.56 81.92H189.44c-59.392 0-107.52 48.128-107.52 107.52v645.12c0 59.392 48.128 107.52 107.52 107.52h645.12c59.392 0 107.52-48.128 107.52-107.52V189.44c0-59.392-48.128-107.52-107.52-107.52zM458.24 727.04c0 14.848-12.288 26.624-26.624 26.624S404.48 741.888 404.48 727.04v-69.632L289.28 773.12c-10.752 10.24-27.648 10.24-37.888 0-10.24-10.752-10.24-27.648 0-37.888L366.592 619.52H296.96c-14.848 0-26.624-12.288-26.624-26.624s12.288-26.624 26.624-26.624h134.144c14.848 0 26.624 12.288 26.624 26.624V727.04z m0-295.936c0 14.848-12.288 26.624-26.624 26.624H296.96c-14.848 0-26.624-12.288-26.624-26.624S282.112 404.48 296.96 404.48h69.632L251.392 289.28c-10.24-10.752-10.24-27.648 0-37.888 5.12-5.12 12.288-7.68 18.944-7.68 6.656 0 13.824 2.56 18.944 7.68L404.48 366.592V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v134.144zM773.12 773.12c-10.752 10.24-27.648 10.24-37.888 0L619.52 657.408V727.04c0 14.848-12.288 26.624-26.624 26.624s-26.624-11.776-26.624-26.624v-134.144c0-14.848 12.288-26.624 26.624-26.624H727.04c14.848 0 26.624 12.288 26.624 26.624s-12.288 26.624-26.624 26.624h-69.632l115.2 115.2c10.752 10.752 10.752 27.648 0.512 38.4z m0-483.84L657.408 404.48H727.04c14.848 0 26.624 12.288 26.624 26.624 0 14.848-12.288 26.624-26.624 26.624h-134.144c-14.848 0-26.624-12.288-26.624-26.624V296.96c0-14.848 12.288-26.624 26.624-26.624s26.624 12.288 26.624 26.624v69.632L734.72 250.88c5.12-5.12 12.288-7.68 18.944-7.68s13.824 2.56 18.944 7.68c10.752 10.752 10.752 27.648 0.512 38.4z"></path>\n</svg>\n';
var cssfullscreen = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-cssfullscreen,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img{position:relative;order:12;display:block;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-icon,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-icon{width:32px;margin-top:5px}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-icon div,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull{display:block}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull{display:none}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-tips{margin-left:-40px}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull{display:block}.xgplayer-skin-xg-player .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull{display:none}.xgplayer-skin-xg-player .xgplayer-cssfullscreen:hover,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-cssfullscreen:hover .xgplayer-tips,.xgplayer-skin-xg-player .xgplayer-cssfullscreen-img:hover .xgplayer-tips{display:block}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-requestfull,.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-requestfull{display:none}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-icon .xgplayer-icon-exitfull,.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-icon .xgplayer-icon-exitfull{display:block}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips{margin-left:-47px}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-requestfull,.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-requestfull{display:none}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips .xgplayer-tip-exitfull,.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips .xgplayer-tip-exitfull{display:block}.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-cssfullscreen,.xgplayer-skin-xg-player.xgplayer-is-fullscreen .xgplayer-cssfullscreen-img{display:none}.xgplayer-skin-xg-player.xgplayer-is-cssfullscreen{position:fixed!important;left:0!important;top:0!important;width:100%!important;height:100%!important;z-index:99999!important}.xgplayer-lang-is-en .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en .xgplayer-cssfullscreen-img .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips,.xgplayer-lang-is-en.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips{margin-left:-46px}.lang-is-jp .xgplayer-cssfullscreen .xgplayer-tips,.lang-is-jp .xgplayer-cssfullscreen-img .xgplayer-tips{margin-left:-120px}.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen .xgplayer-tips,.lang-is-jp.xgplayer-is-cssfullscreen .xgplayer-cssfullscreen-img .xgplayer-tips{margin-left:-60px}\n")();
let s_cssFullscreen = function() {
  let player = this;
  if (!player.config.cssFullscreen) {
    return;
  }
  let btn = createDom("xg-cssfullscreen", `<xg-icon class="xgplayer-icon">
                                             <div class="xgplayer-icon-requestfull">${RequestCssFullIcon}</div>
                                             <div class="xgplayer-icon-exitfull">${ExitCssFullIcon}</div>
                                           </xg-icon>`, {}, "xgplayer-cssfullscreen");
  let tipsText = {};
  tipsText.requestfull = player.lang.CSSFULLSCREEN_TIPS;
  tipsText.exitfull = player.lang.EXITCSSFULLSCREEN_TIPS;
  let tips = createDom("xg-tips", `<span class="xgplayer-tip-requestfull">${tipsText.requestfull}</span>
                                        <span class="xgplayer-tip-exitfull">${tipsText.exitfull}</span>`, {}, "xgplayer-tips");
  btn.appendChild(tips);
  player.once("ready", () => {
    player.controls.appendChild(btn);
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, function(e) {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("cssFullscreenBtnClick");
    });
  });
};
var CssFullscreen = {
  name: "s_cssFullscreen",
  method: s_cssFullscreen
};
var MutedIcon = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657705181215"\n   viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2210"\n  xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18">\n  <defs>\n    <style type="text/css">\n      @font-face {\n        font-family: feedback-iconfont;\n        src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n      }\n    </style>\n  </defs>\n  <path d="M733.866667 624.64l-443.733334-204.8v315.733333l433.152 187.733334 10.581334-298.666667z" fill="#ffffff"\n    p-id="2211"></path>\n  <path\n    d="M761.514667 8.192a51.541333 51.541333 0 0 0-49.152-3.413333L278.869333 204.8H51.2A51.2 51.2 0 0 0 0 256v512A51.2 51.2 0 0 0 51.2 819.2h227.669333l433.493334 200.021333A51.2 51.2 0 0 0 785.066667 972.8v-921.6a51.2 51.2 0 0 0-23.552-43.008zM102.4 307.2h136.533333v409.6H102.4z m580.266667 585.728l-341.333334-157.696V288.768l341.333334-157.696zM928.426667 225.28a51.2 51.2 0 0 0-81.92 61.44 375.466667 375.466667 0 0 1 0 450.901333 51.2 51.2 0 1 0 82.261333 61.098667 477.866667 477.866667 0 0 0 0-573.098667z"\n    p-id="2212"></path>\n</svg>';
var SmallIcon = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657705181215"\n   viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2210"\n  xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18">\n  <defs>\n    <style type="text/css">\n      @font-face {\n        font-family: feedback-iconfont;\n        src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n      }\n    </style>\n  </defs>\n  <path d="M733.866667 624.64l-443.733334-204.8v315.733333l433.152 187.733334 10.581334-298.666667z" fill="#ffffff"\n    p-id="2211"></path>\n  <path\n    d="M761.514667 8.192a51.541333 51.541333 0 0 0-49.152-3.413333L278.869333 204.8H51.2A51.2 51.2 0 0 0 0 256v512A51.2 51.2 0 0 0 51.2 819.2h227.669333l433.493334 200.021333A51.2 51.2 0 0 0 785.066667 972.8v-921.6a51.2 51.2 0 0 0-23.552-43.008zM102.4 307.2h136.533333v409.6H102.4z m580.266667 585.728l-341.333334-157.696V288.768l341.333334-157.696zM928.426667 225.28a51.2 51.2 0 0 0-81.92 61.44 375.466667 375.466667 0 0 1 0 450.901333 51.2 51.2 0 1 0 82.261333 61.098667 477.866667 477.866667 0 0 0 0-573.098667z"\n    p-id="2212"></path>\n</svg>';
var LargeIcon = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657705181215"\n  class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2210"\n  xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18">\n  <defs>\n    <style type="text/css">\n      @font-face {\n        font-family: feedback-iconfont;\n        src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n      }\n    </style>\n  </defs>\n  <path d="M733.866667 624.64l-443.733334-204.8v315.733333l433.152 187.733334 10.581334-298.666667z" fill="#ffffff"\n    p-id="2211"></path>\n  <path\n    d="M761.514667 8.192a51.541333 51.541333 0 0 0-49.152-3.413333L278.869333 204.8H51.2A51.2 51.2 0 0 0 0 256v512A51.2 51.2 0 0 0 51.2 819.2h227.669333l433.493334 200.021333A51.2 51.2 0 0 0 785.066667 972.8v-921.6a51.2 51.2 0 0 0-23.552-43.008zM102.4 307.2h136.533333v409.6H102.4z m580.266667 585.728l-341.333334-157.696V288.768l341.333334-157.696zM928.426667 225.28a51.2 51.2 0 0 0-81.92 61.44 375.466667 375.466667 0 0 1 0 450.901333 51.2 51.2 0 1 0 82.261333 61.098667 477.866667 477.866667 0 0 0 0-573.098667z"\n    p-id="2212"></path>\n</svg>';
var volume = /* @__PURE__ */ (() => '.xgplayer-skin-xg-player .xgplayer-volume{outline:none;order:4;width:40px;height:40px;display:block;position:relative;z-index:18}.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon{margin-top:8px;cursor:pointer;position:absolute;bottom:-13px;fill:#fff}.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:none}.xgplayer-skin-xg-player .xgplayer-volume .xgplayer-icon:hover{opacity:.8}.xgplayer-skin-xg-player .xgplayer-slider{display:none;position:absolute;width:28px;height:92px;background:rgba(0,0,0,.54);border-radius:1px;bottom:42px;outline:none}.xgplayer-skin-xg-player .xgplayer-slider:after{content:" ";display:block;height:15px;width:28px;position:absolute;bottom:-15px;z-index:20}.xgplayer-skin-xg-player .xgplayer-bar,.xgplayer-skin-xg-player .xgplayer-drag{display:block;position:absolute;bottom:6px;left:12px;background:rgba(255,255,255,.3);border-radius:100px;width:4px;height:76px;outline:none;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-drag{bottom:0;left:0;background:#97a1f5!important;max-height:76px}.xgplayer-skin-xg-player .xgplayer-drag:after{content:" ";display:inline-block;width:8px;height:8px;background:#fff;box-shadow:0 0 5px #00000042;position:absolute;border-radius:50%;left:-2px;top:-6px}.xgplayer-skin-xg-player.xgplayer-volume-active .xgplayer-slider,.xgplayer-skin-xg-player.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:block}.xgplayer-skin-xg-player.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-small,.xgplayer-skin-xg-player.xgplayer-volume-large .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-xg-player.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-large{display:none}.xgplayer-skin-xg-player.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:block}.xgplayer-skin-xg-player.xgplayer-volume-small .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted,.xgplayer-skin-xg-player.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-large,.xgplayer-skin-xg-player.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-small{display:none}.xgplayer-skin-xg-player.xgplayer-volume-muted .xgplayer-volume .xgplayer-icon .xgplayer-icon-muted{display:block}.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-volume .xgplayer-slider{display:none}\n')();
let s_volume = function() {
  let player = this;
  let container = createDom("xg-volume", `<xg-icon class="xgplayer-icon">
                                         <div class="xgplayer-icon-large">${LargeIcon}</div>
                                         <div class="xgplayer-icon-small">${SmallIcon}</div>
                                         <div class="xgplayer-icon-muted">${MutedIcon}</div>
                                       </xg-icon>
                                       <xg-slider class="xgplayer-slider" tabindex="2">
                                         <xg-bar class="xgplayer-bar">
                                           <xg-drag class="xgplayer-drag"></xg-drag>
                                         </xg-bar>
                                       </xg-slider>`, {}, "xgplayer-volume");
  player.once("ready", () => {
    if (player.controls) {
      player.controls.appendChild(container);
    }
  });
  let slider = container.querySelector(".xgplayer-slider");
  let bar = container.querySelector(".xgplayer-bar");
  let selected = container.querySelector(".xgplayer-drag");
  let icon = container.querySelector(".xgplayer-icon");
  selected.style.height = `${player.config.volume * 100}%`;
  slider.volume = player.config.volume;
  bar.addEventListener("mousedown", (e) => {
    e.preventDefault();
    e.stopPropagation();
    player.userGestureTrigEvent("volumeBarClick", e);
  });
  ["click", "touchend"].forEach((item) => {
    icon.addEventListener(item, (e) => {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("volumeIconClick");
    });
  });
  icon.addEventListener("mouseenter", (e) => {
    e.preventDefault();
    e.stopPropagation();
    player.userGestureTrigEvent("volumeIconEnter");
  });
  ["blur", "mouseleave"].forEach((item) => {
    container.addEventListener(item, (e) => {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("volumeIconLeave");
    });
  });
};
var Volume = {
  name: "s_volume",
  method: s_volume
};
let sniffer = {};
Object.defineProperty(sniffer, "device", {
  get: function() {
    let r = sniffer.os;
    return r.isPc ? "pc" : "mobile";
  }
});
Object.defineProperty(sniffer, "browser", {
  get: function() {
    let ua = navigator.userAgent.toLowerCase();
    let reg = {
      ie: /rv:([\d.]+)\) like gecko/,
      firfox: /firefox\/([\d.]+)/,
      chrome: /chrome\/([\d.]+)/,
      opera: /opera.([\d.]+)/,
      safari: /version\/([\d.]+).*safari/
    };
    return [].concat(Object.keys(reg).filter((key) => reg[key].test(ua)))[0] || "";
  }
});
Object.defineProperty(sniffer, "os", {
  get: function() {
    let ua = navigator.userAgent;
    let isWindowsPhone = /(?:Windows Phone)/.test(ua);
    let isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone;
    let isAndroid = /(?:Android)/.test(ua);
    let isFireFox = /(?:Firefox)/.test(ua);
    let isTablet = /(?:iPad|PlayBook)/.test(ua) || isAndroid && !/(?:Mobile)/.test(ua) || isFireFox && /(?:Tablet)/.test(ua);
    let isPhone = /(?:iPhone)/.test(ua) && !isTablet;
    let isPc = !isPhone && !isAndroid && !isSymbian && !isTablet;
    return {
      isTablet,
      isPhone,
      isAndroid,
      isPc,
      isSymbian,
      isWindowsPhone,
      isFireFox
    };
  }
});
var progress = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-progress{display:block;position:absolute;height:20px;line-height:20px;left:12px;right:12px;outline:none;top:-15px;z-index:35}.xgplayer-skin-xg-player .xgplayer-progress-outer{background:rgba(255,255,255,.3);display:block;height:3px;line-height:3px;margin-top:8.5px;width:100%;position:relative;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-progress-cache,.xgplayer-skin-xg-player .xgplayer-progress-played{display:block;height:100%;line-height:1;position:absolute;left:0;top:0}.xgplayer-skin-xg-player .xgplayer-progress-cache{width:0;background:rgba(255,255,255,.5)}.xgplayer-skin-xg-player .xgplayer-progress-played{display:block;width:0;background-image:linear-gradient(-90deg,#97a1f5 0%,#1653fb 100%)!important;border-radius:0 1.5px 1.5px 0}.xgplayer-skin-xg-player .xgplayer-progress-btn{display:none;position:absolute;left:0px;top:-5px;width:13px;height:13px;border-radius:30px;background:#FFFFFF;box-shadow:0 0 2px #00000042;left:100%;transform:translate(-50%);z-index:36}.xgplayer-skin-xg-player .xgplayer-progress-point{position:absolute}.xgplayer-skin-xg-player .xgplayer-progress-point.xgplayer-tips{margin-left:0;top:-25px;display:none;z-index:100}.xgplayer-skin-xg-player .xgplayer-progress-dot{display:inline-block;position:absolute;height:3px;width:5px;top:0px;background:white;border-radius:6px;z-index:16}.xgplayer-skin-xg-player .xgplayer-progress-dot .xgplayer-progress-tip{position:absolute;bottom:200%;right:50%;transform:translate(50%);height:auto;line-height:30px;width:auto;background:rgba(0,0,0,.3);border-radius:6px;border:1px solid rgba(0,0,0,.8);cursor:default;white-space:nowrap;display:none}.xgplayer-skin-xg-player .xgplayer-progress-dot-show .xgplayer-progress-tip{display:block}.xgplayer-skin-xg-player .xgplayer-progress-thumbnail{position:absolute;box-sizing:border-box}.xgplayer-skin-xg-player .xgplayer-progress-thumbnail.xgplayer-tips{margin-left:0;display:none;z-index:99}.xgplayer-skin-xg-player .xgplayer-coverpreview{position:absolute;width:100%;height:100%;top:0%;left:0%;display:none}.xgplayer-skin-xg-player .xgplayer-coverpreview .xgplayer-coverpreview-outer{position:absolute;display:block;top:50%;left:50%;transform:translate(-50%,-50%)}.xgplayer-skin-xg-player .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-thumbnail{display:block}.xgplayer-skin-xg-player .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point{display:block;text-align:center;font-family:PingFangSC-Regular;font-size:11px;color:#ccc;padding:2px 4px}.xgplayer-skin-xg-player .xgplayer-coverpreview .xgplayer-coverpreview-outer .xgplayer-coverpreview-point span{color:#fff}.xgplayer-skin-xg-player .xgplayer-progress:hover .xgplayer-progress-outer,.xgplayer-skin-xg-player .xgplayer-progress:focus .xgplayer-progress-outer{height:6px;margin-top:7px}.xgplayer-skin-xg-player .xgplayer-progress:hover .xgplayer-progress-dot,.xgplayer-skin-xg-player .xgplayer-progress:focus .xgplayer-progress-dot{height:6px}.xgplayer-skin-xg-player .xgplayer-progress:hover .xgplayer-progress-btn,.xgplayer-skin-xg-player .xgplayer-progress:focus .xgplayer-progress-btn{display:block;top:-3px}.xgplayer-skin-xg-player.xgplayer-volume-active .xgplayer-progress,.xgplayer-skin-xg-player.xgplayer-definition-active .xgplayer-progress,.xgplayer-skin-xg-player.xgplayer-texttrack-active .xgplayer-progress,.xgplayer-skin-xg-player.xgplayer-playbackrate-active .xgplayer-progress{z-index:15}.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-progress-btn{display:block!important}.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-outer,.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-outer{height:3px!important;margin-top:8.5px!important}.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-progress:hover .xgplayer-progress-btn,.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-progress:focus .xgplayer-progress-btn{display:block!important;top:-5px!important}\n")();
const isRotateFullscreen = (player) => {
  return hasClass(player.root, "xgplayer-rotate-fullscreen");
};
let s_progress = function() {
  let player = this;
  let container = createDom("xg-progress", `<xg-outer class="xgplayer-progress-outer">
                                                   <xg-cache class="xgplayer-progress-cache"></xg-cache>
                                                   <xg-played class="xgplayer-progress-played">
                                                     <xg-progress-btn class="xgplayer-progress-btn"></xg-progress-btn>
                                                     <xg-point class="xgplayer-progress-point xgplayer-tips"></xg-point>
                                                     <xg-thumbnail class="xgplayer-progress-thumbnail xgplayer-tips"></xg-thumbnail>
                                                   </xg-played>
                                                 </xg-outer>`, { tabindex: 1 }, "xgplayer-progress");
  let containerWidth;
  player.controls.appendChild(container);
  let progress2 = container.querySelector(".xgplayer-progress-played");
  let outer = container.querySelector(".xgplayer-progress-outer");
  let cache = container.querySelector(".xgplayer-progress-cache");
  let point = container.querySelector(".xgplayer-progress-point");
  let thumbnail = container.querySelector(".xgplayer-progress-thumbnail");
  player.dotArr = {};
  function dotEvent(dotItem, text) {
    dotItem.addEventListener("mouseenter", function(e) {
      if (text) {
        addClass(dotItem, "xgplayer-progress-dot-show");
        addClass(container, "xgplayer-progress-dot-active");
      }
    });
    dotItem.addEventListener("mouseleave", function(e) {
      if (text) {
        removeClass(dotItem, "xgplayer-progress-dot-show");
        removeClass(container, "xgplayer-progress-dot-active");
      }
    });
    dotItem.addEventListener("touchend", function(e) {
      e.stopPropagation();
      if (text) {
        if (!hasClass(dotItem, "xgplayer-progress-dot-show")) {
          Object.keys(player.dotArr).forEach(function(key) {
            if (player.dotArr[key]) {
              removeClass(player.dotArr[key], "xgplayer-progress-dot-show");
            }
          });
        }
        toggleClass(dotItem, "xgplayer-progress-dot-show");
        toggleClass(container, "xgplayer-progress-dot-active");
      }
    });
  }
  function onCanplay() {
    if (player.config.progressDot && typeOf(player.config.progressDot) === "Array") {
      player.config.progressDot.forEach((item) => {
        if (item.time >= 0 && item.time <= player.duration) {
          let dot = createDom("xg-progress-dot", item.text ? `<span class="xgplayer-progress-tip">${item.text}</span>` : "", {}, "xgplayer-progress-dot");
          dot.style.left = item.time / player.duration * 100 + "%";
          if (item.duration >= 0) {
            dot.style.width = Math.min(item.duration, player.duration - item.time) / player.duration * 100 + "%";
          }
          if (item.style) {
            for (let k in item.style) {
              dot.style[k] = item.style[k];
            }
          }
          outer.appendChild(dot);
          player.dotArr[item.time] = dot;
          dotEvent(dot, item.text);
        }
      });
    }
  }
  player.once("canplay", onCanplay);
  player.addProgressDot = function(time2, text, duration, style) {
    if (player.dotArr[time2]) {
      return;
    }
    if (time2 >= 0 && time2 <= player.duration) {
      let dot = createDom("xg-progress-dot", text ? `<span class="xgplayer-progress-tip">${text}</span>` : "", {}, "xgplayer-progress-dot");
      dot.style.left = time2 / player.duration * 100 + "%";
      if (duration >= 0) {
        dot.style.width = Math.min(duration, player.duration - time2) / player.duration * 100 + "%";
      }
      if (style) {
        for (let k in style) {
          dot.style[k] = style[k];
        }
      }
      outer.appendChild(dot);
      player.dotArr[time2] = dot;
      dotEvent(dot, text);
    }
  };
  player.removeProgressDot = function(time2) {
    if (time2 >= 0 && time2 <= player.duration && player.dotArr[time2]) {
      let dot = player.dotArr[time2];
      dot.parentNode.removeChild(dot);
      dot = null;
      player.dotArr[time2] = null;
    }
  };
  player.removeAllProgressDot = function() {
    Object.keys(player.dotArr).forEach(function(key) {
      if (player.dotArr[key]) {
        let dot = player.dotArr[key];
        dot.parentNode.removeChild(dot);
        dot = null;
        player.dotArr[key] = null;
      }
    });
  };
  let tnailPicNum = 0;
  let tnailWidth = 0;
  let tnailHeight = 0;
  let tnailCol = 0;
  let tnailRow = 0;
  let interval = 0;
  let tnailUrls = [];
  let coverPreviewContainer, coverPreviewPoint;
  let onLoadedmetadata = function() {
    if (player.config.thumbnail) {
      if (player.config.thumbnail.isShowCoverPreview && !coverPreviewContainer) {
        progress2.removeChild(thumbnail);
        coverPreviewContainer = createDom("xg-coverpreview", `<xg-outer class="xgplayer-coverpreview-outer">
            <xg-thumbnail class="xgplayer-coverpreview-thumbnail"></xg-thumbnail>
            <xg-point class="xgplayer-coverpreview-point"></xg-point>
          </xg-outer>`, { tabindex: 1 }, "xgplayer-coverpreview");
        coverPreviewContainer.querySelector(".xgplayer-coverpreview-outer");
        coverPreviewPoint = coverPreviewContainer.querySelector(".xgplayer-coverpreview-point");
        thumbnail = coverPreviewContainer.querySelector(".xgplayer-coverpreview-thumbnail");
        player.root.appendChild(coverPreviewContainer);
      }
      tnailPicNum = player.config.thumbnail.pic_num;
      tnailWidth = player.config.thumbnail.width;
      tnailHeight = player.config.thumbnail.height;
      tnailCol = player.config.thumbnail.col;
      tnailRow = player.config.thumbnail.row;
      tnailUrls = player.config.thumbnail.urls;
      thumbnail.style.width = `${tnailWidth}px`;
      thumbnail.style.height = `${tnailHeight}px`;
    }
  };
  player.on("loadedmetadata", onLoadedmetadata);
  if (typeof player.config.disableSwipeHandler === "function" && typeof player.config.enableSwipeHandler === "function") {
    player.root.addEventListener("touchmove", (e) => {
      e.preventDefault();
      if (!player.disableSwipe) {
        player.disableSwipe = true;
        player.config.disableSwipeHandler.call(player);
      }
    });
    player.root.addEventListener("touchstart", (e) => {
      player.disableSwipe = true;
      player.config.disableSwipeHandler.call(player);
    });
    player.root.addEventListener("touchend", (e) => {
      player.disableSwipe = false;
      player.config.enableSwipeHandler.call(player);
    });
  }
  let events = ["touchstart", "mousedown"];
  if (sniffer.device === "mobile") {
    events.pop();
  }
  events.forEach((item) => {
    container.addEventListener(item, function(e) {
      if (player.config.disableProgress)
        return;
      e.stopPropagation();
      event(e);
      if (e._target === point || !player.config.allowSeekAfterEnded && player.ended) {
        return true;
      }
      container.focus();
      let { left } = progress2.getBoundingClientRect();
      const isRotate = isRotateFullscreen(player);
      if (isRotate) {
        left = progress2.getBoundingClientRect().top;
        containerWidth = container.getBoundingClientRect().height;
      } else {
        containerWidth = container.getBoundingClientRect().width;
        left = progress2.getBoundingClientRect().left;
      }
      let move = function(e2) {
        e2.stopPropagation();
        event(e2);
        player.isProgressMoving = true;
        let w = (isRotate ? e2.clientY : e2.clientX) - left;
        if (w > containerWidth) {
          w = containerWidth;
        }
        let now = w / containerWidth * player.duration;
        if (now < 0)
          now = 0;
        if (player.config.allowSeekPlayed && Number(now).toFixed(1) > player.maxPlayedTime)
          ;
        else {
          progress2.style.width = `${w * 100 / containerWidth}%`;
          if (player.videoConfig.mediaType === "video" && !player.dash && !player.config.closeMoveSeek) {
            console.log("trigger touchmove");
            player.currentTime = Number(now).toFixed(1);
          } else {
            let time2 = findDom(player.controls, ".xgplayer-time");
            if (time2) {
              time2.innerHTML = `<span class="xgplayer-time-current">${format(now || 0)}</span><span>${format(player.duration)}</span>`;
            }
          }
        }
        if (player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {
          coverPreviewPoint.innerHTML = `<span>${format(now)}</span> / ${format(player.duration || 0)}`;
          interval = player.duration / tnailPicNum;
          let index2 = Math.floor(now / interval);
          thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1]})`;
          let indexInPage = index2 + 1 - tnailCol * tnailRow * (Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1);
          let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1;
          let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1;
          thumbnail.style["background-position"] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`;
          coverPreviewContainer.style.display = "block";
        }
        player.emit("focus");
      };
      let up = function(e2) {
        console.log("up event", e2);
        e2.stopPropagation();
        event(e2);
        window.removeEventListener("mousemove", move);
        window.removeEventListener("touchmove", move, { passive: false });
        window.removeEventListener("mouseup", up);
        window.removeEventListener("touchend", up);
        if (sniffer.browser.indexOf("ie") < 0) {
          container.blur();
        }
        if (!player.isProgressMoving || player.videoConfig && player.videoConfig.mediaType === "audio" || player.dash || player.config.closeMoveSeek) {
          let w = (isRotate ? e2.clientY : e2.clientX) - left;
          if (w > containerWidth) {
            w = containerWidth;
          }
          let now = w / containerWidth * player.duration;
          if (now < 0)
            now = 0;
          if (player.config.allowSeekPlayed && Number(now).toFixed(1) > player.maxPlayedTime)
            ;
          else {
            progress2.style.width = `${w * 100 / containerWidth}%`;
            console.warn("trigger touchup");
            player.currentTime = Number(now).toFixed(1);
          }
        }
        if (player.config.thumbnail && player.config.thumbnail.isShowCoverPreview) {
          coverPreviewContainer.style.display = "none";
        }
        player.emit("focus");
        player.isProgressMoving = false;
      };
      window.addEventListener("touchmove", move, { passive: false });
      window.addEventListener("touchend", up);
      window.addEventListener("mousemove", move);
      window.addEventListener("mouseup", up);
      return true;
    });
  });
  container.addEventListener("mouseenter", function(e) {
    if (!player.config.allowSeekAfterEnded && player.ended) {
      return true;
    }
    const isRotate = isRotateFullscreen(player);
    let containerLeft = isRotate ? container.getBoundingClientRect().top : container.getBoundingClientRect().left;
    let containerWidth2 = isRotate ? container.getBoundingClientRect().height : container.getBoundingClientRect().width;
    let compute = function(e2) {
      let now = ((isRotate ? e2.clientY : e2.clientX) - containerLeft) / containerWidth2 * player.duration;
      now = now < 0 ? 0 : now;
      point.textContent = format(now);
      let pointWidth = point.getBoundingClientRect().width;
      if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {
        interval = player.duration / tnailPicNum;
        let index2 = Math.floor(now / interval);
        thumbnail.style.backgroundImage = `url(${tnailUrls[Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1]})`;
        let indexInPage = index2 + 1 - tnailCol * tnailRow * (Math.ceil((index2 + 1) / (tnailCol * tnailRow)) - 1);
        let tnaiRowIndex = Math.ceil(indexInPage / tnailRow) - 1;
        let tnaiColIndex = indexInPage - tnaiRowIndex * tnailRow - 1;
        thumbnail.style["background-position"] = `-${tnaiColIndex * tnailWidth}px -${tnaiRowIndex * tnailHeight}px`;
        let left = (isRotate ? e2.clientY : e2.clientX) - containerLeft - tnailWidth / 2;
        left = left > 0 ? left : 0;
        left = left < containerWidth2 - tnailWidth ? left : containerWidth2 - tnailWidth;
        thumbnail.style.left = `${left}px`;
        thumbnail.style.top = `${-10 - tnailHeight}px`;
        thumbnail.style.display = "block";
        point.style.left = `${left + tnailWidth / 2 - pointWidth / 2}px`;
      } else {
        let left = e2.clientX - containerLeft - pointWidth / 2;
        left = left > 0 ? left : 0;
        left = left > containerWidth2 - pointWidth ? containerWidth2 - pointWidth : left;
        point.style.left = `${left}px`;
      }
      if (hasClass(container, "xgplayer-progress-dot-active")) {
        point.style.display = "none";
      } else {
        point.style.display = "block";
      }
    };
    let move = function(e2) {
      compute(e2);
    };
    let leave = function(e2) {
      container.removeEventListener("mousemove", move, false);
      container.removeEventListener("mouseleave", leave, false);
      compute(e2);
      point.style.display = "none";
      if (player.config.thumbnail && !player.config.thumbnail.isShowCoverPreview) {
        thumbnail.style.display = "none";
      }
    };
    container.addEventListener("mousemove", move, false);
    container.addEventListener("mouseleave", leave, false);
    compute(e);
  }, false);
  let onTimeupdate = function() {
    if (player.maxPlayedTime === void 0)
      player.maxPlayedTime = 0;
    if (player.maxPlayedTime < player.currentTime)
      player.maxPlayedTime = player.currentTime;
    if (!containerWidth && container) {
      containerWidth = container.getBoundingClientRect().width;
    }
    if (!player.isProgressMoving && !player.isSeeking && !player.seeking) {
      const precent = player.currentTime / player.duration;
      const prevPrecent = Number(progress2.style.width.replace("%", "") || "0") / Number(container.style.width || "100");
      if (Math.abs(precent - prevPrecent) <= 1) {
        progress2.style.width = `${player.currentTime * 100 / player.duration}%`;
      }
    }
  };
  player.on("timeupdate", onTimeupdate);
  let onCurrentTimeChange = function(time2) {
    progress2.style.width = `${time2 * 100 / player.duration}%`;
  };
  player.on("currentTimeChange", onCurrentTimeChange);
  let onSrcChange = function() {
    progress2.style.width = "0%";
  };
  player.on("srcChange", onSrcChange);
  let onCacheUpdate = function() {
    let buffered = player.buffered;
    if (buffered && buffered.length > 0) {
      let end = buffered.end(buffered.length - 1);
      for (let i = 0, len = buffered.length; i < len; i++) {
        if (player.currentTime >= buffered.start(i) && player.currentTime <= buffered.end(i)) {
          end = buffered.end(i);
          for (let j = i + 1; j < buffered.length; j++) {
            if (buffered.start(j) - buffered.end(j - 1) >= 2) {
              end = buffered.end(j - 1);
              break;
            }
          }
          break;
        }
      }
      cache.style.width = `${end / player.duration * 100}%`;
    }
  };
  const cacheUpdateEvents = ["bufferedChange", "cacheupdate", "ended", "timeupdate"];
  cacheUpdateEvents.forEach((item) => {
    player.on(item, onCacheUpdate);
  });
  function destroyFunc() {
    player.removeAllProgressDot();
    player.off("canplay", onCanplay);
    player.off("timeupdate", onTimeupdate);
    player.off("currentTimeChange", onCurrentTimeChange);
    player.off("srcChange", onSrcChange);
    player.off("loadedmetadata", onLoadedmetadata);
    cacheUpdateEvents.forEach((item) => {
      player.off(item, onCacheUpdate);
    });
    player.off("destroy", destroyFunc);
  }
  player.once("destroy", destroyFunc);
};
var Progress = {
  name: "s_progress",
  method: s_progress
};
var PlaybackRate$1 = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657761438039"\n   viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5492"\n  xmlns:xlink="http://www.w3.org/1999/xlink" width="26" height="26">\n  <defs>\n    <style type="text/css">\n      @font-face {\n        font-family: feedback-iconfont;\n        src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n      }\n    </style>\n  </defs>\n  <path\n    d="M452.266667 814.933333l-209.066667-209.066666-89.6-29.866667L302.933333 426.666667l46.933334 17.066666L571.733333 213.333333h273.066667v273.066667l-221.866667 221.866667 17.066667 46.933333-149.333333 149.333333-38.4-89.6z m-166.4-106.666666L345.6 768 256 857.6l-59.733333-59.733333 89.6-89.6z m46.933333-136.533334l149.333333 149.333334 285.866667-285.866667V285.866667h-149.333333l-285.866667 285.866666z m273.066667-119.466666c-25.6-25.6-25.6-64 0-89.6 25.6-25.6 64-25.6 89.6 0 25.6 25.6 25.6 64 0 89.6-25.6 21.333333-68.266667 21.333333-89.6 0z"\n     p-id="5493"></path>\n</svg>';
var playbackRate = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-playbackrate{order:8;width:40px;height:150px;z-index:18;position:relative;display:inline-block;cursor:pointer!important;margin-top:-119px}.xgplayer-skin-xg-player .xgplayer-playbackrate ul{display:none;list-style:none;width:60px;background:rgba(29,27,27,.8)!important;border-radius:1px;position:absolute;bottom:30px;left:50%;transform:translate(-50%);text-align:left;white-space:nowrap;z-index:26;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-playbackrate ul li{opacity:.8;font-family:PingFangSC-Regular;font-size:13px;color:#fffc;position:relative;padding:6px 0;text-align:center}.xgplayer-skin-xg-player .xgplayer-playbackrate ul li.selected,.xgplayer-skin-xg-player .xgplayer-playbackrate ul li:hover{color:#fff;opacity:1}.xgplayer-skin-xg-player .xgplayer-playbackrate ul li:nth-child(1){position:relative;margin-top:12px}.xgplayer-skin-xg-player .xgplayer-playbackrate ul li:last-child{position:relative;margin-bottom:12px}.xgplayer-skin-xg-player .xgplayer-playbackrate .name{width:40px;height:20px;position:absolute;bottom:3px;text-align:center;font-family:PingFangSC-Regular;font-size:13px!important;background:none!important;color:#fffc;border-radius:10px;line-height:20px}.xgplayer-skin-xg-player .xgplayer-playbackrate .name svg{transform:rotate(13deg);fill:#fff}.xgplayer-skin-xg-player .xgplayer-playbackrate span{position:relative;top:19px;font-weight:700;text-shadow:0 0 4px rgba(0,0,0,.6)}.xgplayer-skin-xg-player .xgplayer-playbackrate:hover{opacity:.8}.xgplayer-skin-xg-player.xgplayer-playbackrate-active .xgplayer-playbackrate ul{display:block}\n")();
let s_playbackRate = function() {
  let player = this;
  let playbackRateList = [];
  if (player.config.playbackRate) {
    playbackRateList = [].concat(player.config.playbackRate);
    playbackRateList.sort((a, b) => b - a);
  } else {
    return false;
  }
  let unit = player.config.playbackRateUnit !== void 0 ? player.config.playbackRateUnit : "x";
  let container = createDom("xg-playbackrate", " ", {}, "xgplayer-playbackrate");
  if (sniffer.device === "mobile") {
    player.config.playbackRateActive = "click";
  }
  let list = [];
  playbackRateList.forEach((item) => {
    list.push({ name: `${item}`, rate: `${item}${unit}`, selected: false });
  });
  let selectedSpeed = 1;
  let tmp = ["<ul>"];
  list.forEach((item) => {
    if (player.config.defaultPlaybackRate && player.config.defaultPlaybackRate.toString() === item.name) {
      item.selected = true;
      selectedSpeed = player.config.defaultPlaybackRate;
      player.once("playing", () => {
        player.video.playbackRate = player.config.defaultPlaybackRate;
      });
    } else if (item.name === "1.0" || item.name === "1") {
      if (!player.config.defaultPlaybackRate || player.config.defaultPlaybackRate === 1) {
        item.selected = true;
      }
    }
    tmp.push(`<li cname='${item.name}' class='${item.selected ? "selected" : ""}'>${item.rate}</li>`);
  });
  tmp.push(`</ul><p class='name'>${PlaybackRate$1}</p>`);
  let playbackDom = player.root.querySelector(".xgplayer-playbackrate");
  if (playbackDom) {
    playbackDom.innerHTML = tmp.join("");
    let cur = playbackDom.querySelector(".name");
    if (!player.config.playbackRateActive || player.config.playbackRateActive === "hover") {
      cur.addEventListener("mouseenter", (e) => {
        e.preventDefault();
        e.stopPropagation();
        addClass(player.root, "xgplayer-playbackrate-active");
        playbackDom.focus();
      });
    }
  } else {
    container.innerHTML = tmp.join("");
    let cur = container.querySelector(".name");
    if (!player.config.playbackRateActive || player.config.playbackRateActive === "hover") {
      cur.addEventListener("mouseenter", (e) => {
        e.preventDefault();
        e.stopPropagation();
        addClass(player.root, "xgplayer-playbackrate-active");
        container.focus();
      });
    }
    player.once("ready", () => {
      player.controls.appendChild(container);
    });
  }
  let ev = ["touchend", "click"];
  ev.forEach((item) => {
    container.addEventListener(item, (e) => {
      e.stopPropagation();
      e.preventDefault();
      let li = e.target;
      if (li && li.tagName.toLocaleLowerCase() === "li") {
        let from, to;
        list.forEach((item2) => {
          item2.selected = false;
          if (li.textContent.replace(/\s+/g, "") === item2.rate) {
            Array.prototype.forEach.call(li.parentNode.childNodes, (item3) => {
              if (hasClass(item3, "selected")) {
                from = Number(item3.getAttribute("cname"));
                removeClass(item3, "selected");
              }
            });
            item2.selected = true;
            player.video.playbackRate = item2.name * 1;
            selectedSpeed = item2.name * 1;
          }
        });
        addClass(li, "selected");
        to = Number(li.getAttribute("cname"));
        player.emit("playbackrateChange", { from, to });
        if (sniffer.device === "mobile") {
          removeClass(player.root, "xgplayer-playbackrate-active");
        }
      } else if (player.config.playbackRateActive === "click" && li && (li.tagName.toLocaleLowerCase() === "p" || li.tagName.toLocaleLowerCase() === "span")) {
        if (sniffer.device === "mobile") {
          toggleClass(player.root, "xgplayer-playbackrate-active");
        } else {
          addClass(player.root, "xgplayer-playbackrate-active");
        }
        container.focus();
      }
      player.emit("focus");
    }, false);
  });
  container.addEventListener("mouseleave", (e) => {
    e.preventDefault();
    e.stopPropagation();
    removeClass(player.root, "xgplayer-playbackrate-active");
  });
  function onBlur() {
    removeClass(player.root, "xgplayer-playbackrate-active");
  }
  player.on("blur", onBlur);
  player.on("play", () => {
    if (player.video.playbackRate.toFixed(1) !== selectedSpeed.toFixed(1)) {
      player.video.playbackRate = selectedSpeed;
    }
  });
  player.switchPlaybackRate = function(playbackRateObj = {}) {
    let liList = player.controls.querySelectorAll(".xgplayer-playbackrate ul li");
    for (let i = 0; i < liList.length; i++) {
      if (!hasClass(liList[i], "selected") && (liList[i].getAttribute("cname") === `${playbackRateObj.playbackRate}` || i === playbackRateObj.index)) {
        liList[i].click();
      }
    }
  };
  player.on("ratechange", () => {
    player.switchPlaybackRate({ playbackRate: player.playbackRate });
  });
};
var PlaybackRate = {
  name: "s_playbackRate",
  method: s_playbackRate
};
var DownloadIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="25px" height="25px" viewBox="0 0 24 24">\n  <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n    <g transform="translate(-488.000000, -340.000000)" fill="#FFFFFF">\n      <g id="Group-2">\n        <g id="volme_big-copy" transform="translate(488.000000, 340.000000)">\n          <rect id="Rectangle-18" x="11" y="4" width="2" height="12" rx="1"></rect>\n          <rect id="Rectangle-2" x="3" y="18" width="18" height="2" rx="1"></rect>\n          <rect id="Rectangle-2" transform="translate(4.000000, 17.500000) rotate(90.000000) translate(-4.000000, -17.500000) " x="1.5" y="16.5" width="5" height="2" rx="1"></rect><rect id="Rectangle-2-Copy-3" transform="translate(20.000000, 17.500000) rotate(90.000000) translate(-20.000000, -17.500000) " x="17.5" y="16.5" width="5" height="2" rx="1"></rect>\n          <path d="M9.48791171,8.26502656 L9.48791171,14.2650266 C9.48791171,14.8173113 9.04019646,15.2650266 8.48791171,15.2650266 C7.93562696,15.2650266 7.48791171,14.8173113 7.48791171,14.2650266 L7.48791171,7.26502656 C7.48791171,6.71274181 7.93562696,6.26502656 8.48791171,6.26502656 L15.4879117,6.26502656 C16.0401965,6.26502656 16.4879117,6.71274181 16.4879117,7.26502656 C16.4879117,7.81731131 16.0401965,8.26502656 15.4879117,8.26502656 L9.48791171,8.26502656 Z" id="Combined-Shape" transform="translate(11.987912, 10.765027) scale(1, -1) rotate(45.000000) translate(-11.987912, -10.765027) "></path>\n        </g>\n      </g>\n    </g>\n  </g>\n</svg>\n';
var download = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-download{position:relative;order:9;display:block;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-download .xgplayer-icon{margin-top:3px}.xgplayer-skin-xg-player .xgplayer-download .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-download .xgplayer-icon svg{position:relative;top:7px;left:0px}.xgplayer-skin-xg-player .xgplayer-download .xgplayer-tips{margin-left:-20px}.xgplayer-skin-xg-player .xgplayer-download .xgplayer-tips .xgplayer-tip-download{display:block}.xgplayer-skin-xg-player .xgplayer-download:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-download:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-download .xgplayer-tips{margin-left:-32px}.xgplayer-lang-is-jp .xgplayer-download .xgplayer-tips{margin-left:-40px}\n")();
let s_download = function() {
  let player = this;
  if (!player.config.download) {
    return;
  }
  let btn = createDom("xg-download", `<xg-icon class="xgplayer-icon">${DownloadIcon}</xg-icon>`, {}, "xgplayer-download");
  let tipsText = player.lang.DOWNLOAD_TIPS;
  let tips = createDom("xg-tips", `<span class="xgplayer-tip-download">${tipsText}</span>`, {}, "xgplayer-tips");
  btn.appendChild(tips);
  player.once("ready", () => {
    player.controls.appendChild(btn);
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, function(e) {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("downloadBtnClick");
    });
  });
};
var Download = {
  name: "s_download",
  method: s_download
};
var pip = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-pip{order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-xg-player .xgplayer-pip .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:#fffc}.xgplayer-skin-xg-player .xgplayer-pip .name span{width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.lang-is-jp .xgplayer-pip .name span{width:70px;height:20px}\n")();
let s_pip = function() {
  let player = this;
  if (!player.config.pip || typeof player.video.requestPictureInPicture !== "function") {
    return;
  }
  let pip2 = player.lang.PIP;
  let btn = createDom("xg-pip", `<p class="name"><span>${pip2}</span></p>`, { tabindex: 9 }, "xgplayer-pip");
  player.once("ready", () => {
    player.controls.appendChild(btn);
  });
  ["click", "touchend"].forEach((item) => {
    btn.addEventListener(item, (e) => {
      e.preventDefault();
      e.stopPropagation();
      player.userGestureTrigEvent("pipBtnClick");
    });
  });
};
var Pip = {
  name: "s_pip",
  method: s_pip
};
var enter = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-enter{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background:black;z-index:120}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner{display:block;position:absolute;left:50%;top:50%;height:100px;width:100px;position:relative;transform:translate(-50%,-50%)}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div{width:12%;height:26%;background-color:#ffffffb3;position:absolute;left:44%;top:37%;opacity:0;border-radius:30px;animation:fade 1s linear infinite}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar1{transform:rotate(0) translateY(-142%);animation-delay:-0s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar2{transform:rotate(30deg) translateY(-142%);animation-delay:-.9163s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar3{transform:rotate(60deg) translateY(-142%);animation-delay:-.833s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar4{transform:rotate(90deg) translateY(-142%);animation-delay:-.7497s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar5{transform:rotate(120deg) translateY(-142%);animation-delay:-.6664s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar6{transform:rotate(150deg) translateY(-142%);animation-delay:-.5831s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar7{transform:rotate(180deg) translateY(-142%);animation-delay:-.4998s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar8{transform:rotate(210deg) translateY(-142%);animation-delay:-.4165s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar9{transform:rotate(240deg) translateY(-142%);animation-delay:-.3332s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar10{transform:rotate(270deg) translateY(-142%);animation-delay:-.2499s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar11{transform:rotate(300deg) translateY(-142%);animation-delay:-.1666s}.xgplayer-skin-xg-player .xgplayer-enter .xgplayer-enter-spinner div.xgplayer-enter-bar12{transform:rotate(330deg) translateY(-142%);animation-delay:-.0833s}@keyframes fade{0%{opacity:1}to{opacity:.25}}.xgplayer-skin-xg-player.xgplayer-is-enter .xgplayer-enter{display:block}\n")();
var StartPlayIcon = '<?xml version="1.0" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657762650397"\n  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9039"\n  xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50">\n  <defs>\n    <style type="text/css">\n      @font-face {\n        font-family: feedback-iconfont;\n        src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");\n      }\n    </style>\n  </defs>\n  <path\n    d="M196.266667 989.866667c-18.773333 0-39.253333-5.12-56.32-15.36-35.84-20.48-56.32-58.026667-56.32-98.986667V148.48c0-40.96 20.48-78.506667 56.32-98.986667 35.84-20.48 78.506667-20.48 114.346666 0l629.76 363.52c35.84 20.48 56.32 58.026667 56.32 98.986667s-20.48 78.506667-56.32 98.986667L254.293333 974.506667c-18.773333 10.24-37.546667 15.36-58.026666 15.36z m0-904.533334c-10.24 0-22.186667 3.413333-30.72 8.533334-18.773333 11.946667-30.72 32.426667-30.72 54.613333v727.04c0 22.186667 11.946667 42.666667 30.72 54.613333 20.48 11.946667 42.666667 11.946667 63.146666 0l629.76-363.52c20.48-11.946667 30.72-32.426667 30.72-54.613333s-11.946667-42.666667-30.72-54.613333L228.693333 93.866667c-10.24-5.12-20.48-8.533333-32.426666-8.533334z"\n     p-id="9040"></path>\n  <path\n    d="M291.84 512v-167.253333c0-30.72 34.133333-51.2 61.44-35.84l145.066667 83.626666 145.066666 83.626667c27.306667 15.36 27.306667 54.613333 0 69.973333l-145.066666 85.333334-145.066667 83.626666c-27.306667 15.36-61.44-3.413333-61.44-35.84V512z"\n     p-id="9041"></path>\n  <path\n    d="M680.96 469.333333L206.506667 194.56c-25.6-13.653333-54.613333-13.653333-80.213334 0s-39.253333 39.253333-39.253333 68.266667v549.546666c0 29.013333 15.36 54.613333 39.253333 68.266667 11.946667 6.826667 25.6 10.24 39.253334 10.24 13.653333 0 27.306667-3.413333 39.253333-10.24l476.16-274.773333c25.6-13.653333 39.253333-39.253333 39.253333-68.266667 1.706667-29.013333-13.653333-54.613333-39.253333-68.266667z"\n     opacity=".3" p-id="9042"></path>\n</svg>';
var StartPauseIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="70" height="70" viewBox="0 0 70 70">\n  <path transform="translate(15,15) scale(0.04 0.04)" d="M598,214h170v596h-170v-596zM256 810v-596h170v596h-170z"></path>\n</svg>\n';
var start = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-start{border-radius:50%;display:inline-block;width:70px;height:70px;overflow:hidden;text-align:center;line-height:70px;vertical-align:middle;position:absolute;left:50%;top:50%;z-index:115;margin:-35px auto auto -35px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-start div{position:absolute;top:6px;left:23px}.xgplayer-skin-xg-player .xgplayer-start div svg{fill:#ffffffb3}.xgplayer-skin-xg-player .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-xg-player .xgplayer-start .xgplayer-icon-pause{display:none}.xgplayer-skin-xg-player .xgplayer-start:hover{opacity:.85}.xgplayer-skin-xg-player.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-xg-player.xgplayer-pause.xgplayer-start-hide .xgplayer-start,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-start,.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-start .xgplayer-icon-play{display:none}.xgplayer-skin-xg-player.xgplayer-playing .xgplayer-start .xgplayer-icon-pause{display:block}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-start{display:inline-block}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-start .xgplayer-icon-pause,.xgplayer-skin-xg-player.xgplayer-is-replay .xgplayer-start{display:none}.xgplayer-skin-xg-player.xgplayer-is-replay .xgplayer-start .xgplayer-icon-play{display:block}.xgplayer-skin-xg-player.xgplayer-is-replay .xgplayer-start .xgplayer-icon-pause{display:none}\n")();
let s_start = function() {
  let player = this;
  let root = player.root;
  let btn = createDom("xg-start", `<div class="xgplayer-icon-play">${StartPlayIcon}</div>
                                      <div class="xgplayer-icon-pause">${StartPauseIcon}</div>`, {}, "xgplayer-start");
  function onPlayerReady(player2) {
    addClass(player2.root, "xgplayer-skin-xg-player");
    if (player2.config) {
      player2.config.autoplay && !isWeiXin() && !isUc() && addClass(player2.root, "xgplayer-is-enter");
      if (player2.config.lang && player2.config.lang === "en") {
        addClass(player2.root, "xgplayer-lang-is-en");
      } else if (player2.config.lang === "jp") {
        addClass(player2.root, "xgplayer-lang-is-jp");
      }
      if (!player2.config.enableContextmenu) {
        player2.video.addEventListener("contextmenu", (e) => {
          e.preventDefault();
          e.stopPropagation();
        });
      }
    }
  }
  if (player.config && player.config.hideStartBtn) {
    addClass(root, "xgplayer-start-hide");
  }
  if (player.isReady) {
    root.appendChild(btn);
    onPlayerReady(player);
  } else {
    player.once("ready", () => {
      root.appendChild(btn);
      onPlayerReady(player);
    });
  }
  player.once("autoplay was prevented", () => {
    removeClass(player.root, "xgplayer-is-enter");
    addClass(player.root, "xgplayer-nostart");
  });
  player.once("canplay", () => {
    removeClass(player.root, "xgplayer-is-enter");
  });
  btn.onclick = (e) => {
    e.preventDefault();
    e.stopPropagation();
    player.userGestureTrigEvent("startBtnClick");
  };
};
var Start = {
  name: "s_start",
  method: s_start
};
var poster = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-poster{display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;background-size:cover;background-position:center center}.xgplayer-skin-xg-player.xgplayer-nostart .xgplayer-poster{display:block}\n")();
var definition = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-definition{order:5;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-left:10px;margin-top:-119px}.xgplayer-skin-xg-player .xgplayer-definition ul{display:none;list-style:none;width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;left:0;text-align:center;white-space:nowrap;margin-left:-10px;z-index:26;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-definition ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:#fffc;padding:6px 13px}.xgplayer-skin-xg-player .xgplayer-definition ul li.selected,.xgplayer-skin-xg-player .xgplayer-definition ul li:hover{color:#fff;opacity:1}.xgplayer-skin-xg-player .xgplayer-definition .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:#fffc;position:absolute;bottom:0px;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-xg-player.xgplayer-definition-active .xgplayer-definition ul,.xgplayer-skin-xg-player.xgplayer-is-definition .xgplayer-definition{display:block}\n")();
var loading = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-loading{display:none;width:100px;height:100px;overflow:hidden;transform:scale(.7);position:absolute;left:50%;top:50%;margin:-50px auto auto -50px}.xgplayer-skin-xg-player .xgplayer-loading svg{border-radius:50%;transform-origin:center;animation:loadingRotate 1s linear infinite}.xgplayer-skin-xg-player .xgplayer-loading svg path{stroke:#ddd;stroke-dasharray:236;animation:loadingDashOffset 2s linear infinite;animation-direction:alternate-reverse;fill:none;stroke-width:12px}.xgplayer-skin-xg-player.xgplayer-nostart .xgplayer-loading{display:none}.xgplayer-skin-xg-player.xgplayer-pause .xgplayer-loading{display:none!important}.xgplayer-skin-xg-player.xgplayer-isloading .xgplayer-loading{display:block}\n")();
var time = /* @__PURE__ */ (() => '.xgplayer-skin-xg-player .xgplayer-time{order:2;font-family:ArialMT;font-size:13px;color:#fff;line-height:40px;height:40px;text-align:center;display:inline-block;margin:auto 8px}.xgplayer-skin-xg-player .xgplayer-time span{color:#ffffff80}.xgplayer-skin-xg-player .xgplayer-time .xgplayer-time-current{color:#fff}.xgplayer-skin-xg-player .xgplayer-time .xgplayer-time-current:after{content:"/";display:inline-block;padding:0 3px}\n')();
var replay = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-replay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:105;display:none;justify-content:center;align-items:center;background:rgba(0,0,0,.54);flex-direction:column}.xgplayer-skin-xg-player .xgplayer-replay svg{background:rgba(0,0,0,.58);border-radius:100%;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-replay svg path{transform:translate(20px,21px);fill:#ddd}.xgplayer-skin-xg-player .xgplayer-replay svg:hover{background:rgba(0,0,0,.38)}.xgplayer-skin-xg-player .xgplayer-replay svg:hover path{fill:#fff}.xgplayer-skin-xg-player .xgplayer-replay .xgplayer-replay-txt{display:inline-block;font-family:PingFangSC-Regular;font-size:14px;color:#fff;line-height:34px}.xgplayer-skin-xg-player.xgplayer.xgplayer-ended .xgplayer-controls{display:none}.xgplayer-skin-xg-player.xgplayer.xgplayer-ended .xgplayer-replay{display:flex}\n")();
var dist = { exports: {} };
(function(module, exports) {
  !function(e, t) {
    module.exports = t();
  }(window, function() {
    return function(e) {
      var t = {};
      function n(i) {
        if (t[i])
          return t[i].exports;
        var o = t[i] = { i, l: false, exports: {} };
        return e[i].call(o.exports, o, o.exports, n), o.l = true, o.exports;
      }
      return n.m = e, n.c = t, n.d = function(e2, t2, i) {
        n.o(e2, t2) || Object.defineProperty(e2, t2, { enumerable: true, get: i });
      }, n.r = function(e2) {
        typeof Symbol != "undefined" && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
      }, n.t = function(e2, t2) {
        if (1 & t2 && (e2 = n(e2)), 8 & t2)
          return e2;
        if (4 & t2 && typeof e2 == "object" && e2 && e2.__esModule)
          return e2;
        var i = /* @__PURE__ */ Object.create(null);
        if (n.r(i), Object.defineProperty(i, "default", { enumerable: true, value: e2 }), 2 & t2 && typeof e2 != "string")
          for (var o in e2)
            n.d(i, o, function(t3) {
              return e2[t3];
            }.bind(null, o));
        return i;
      }, n.n = function(e2) {
        var t2 = e2 && e2.__esModule ? function() {
          return e2.default;
        } : function() {
          return e2;
        };
        return n.d(t2, "a", t2), t2;
      }, n.o = function(e2, t2) {
        return Object.prototype.hasOwnProperty.call(e2, t2);
      }, n.p = "", n(n.s = 4);
    }([function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = { createDom: function() {
        var e2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "div", t2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "", n2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, i2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "", o = document.createElement(e2);
        return o.className = i2, o.innerHTML = t2, Object.keys(n2).forEach(function(t3) {
          var i3 = t3, r = n2[t3];
          e2 === "video" || e2 === "audio" ? r && o.setAttribute(i3, r) : o.setAttribute(i3, r);
        }), o;
      }, hasClass: function(e2, t2) {
        return e2.classList ? Array.prototype.some.call(e2.classList, function(e3) {
          return e3 === t2;
        }) : !!e2.className.match(new RegExp("(\\s|^)" + t2 + "(\\s|$)"));
      }, addClass: function(e2, t2) {
        e2.classList ? t2.replace(/(^\s+|\s+$)/g, "").split(/\s+/g).forEach(function(t3) {
          t3 && e2.classList.add(t3);
        }) : i.hasClass(e2, t2) || (e2.className += " " + t2);
      }, removeClass: function(e2, t2) {
        e2.classList ? t2.split(/\s+/g).forEach(function(t3) {
          e2.classList.remove(t3);
        }) : i.hasClass(e2, t2) && t2.split(/\s+/g).forEach(function(t3) {
          var n2 = new RegExp("(\\s|^)" + t3 + "(\\s|$)");
          e2.className = e2.className.replace(n2, " ");
        });
      }, toggleClass: function(e2, t2) {
        t2.split(/\s+/g).forEach(function(t3) {
          i.hasClass(e2, t3) ? i.removeClass(e2, t3) : i.addClass(e2, t3);
        });
      }, findDom: function() {
        var e2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : document, t2 = arguments[1], n2 = void 0;
        try {
          n2 = e2.querySelector(t2);
        } catch (i2) {
          t2.startsWith("#") && (n2 = e2.getElementById(t2.slice(1)));
        }
        return n2;
      }, deepCopy: function(e2, t2) {
        if (i.typeOf(t2) === "Object" && i.typeOf(e2) === "Object")
          return Object.keys(t2).forEach(function(n2) {
            i.typeOf(t2[n2]) !== "Object" || t2[n2] instanceof Node ? i.typeOf(t2[n2]) === "Array" ? e2[n2] = i.typeOf(e2[n2]) === "Array" ? e2[n2].concat(t2[n2]) : t2[n2] : e2[n2] = t2[n2] : e2[n2] ? i.deepCopy(e2[n2], t2[n2]) : e2[n2] = t2[n2];
          }), e2;
      }, typeOf: function(e2) {
        return Object.prototype.toString.call(e2).match(/([^\s.*]+)(?=]$)/g)[0];
      }, copyDom: function(e2) {
        if (e2 && e2.nodeType === 1) {
          var t2 = document.createElement(e2.tagName);
          return Array.prototype.forEach.call(e2.attributes, function(e3) {
            t2.setAttribute(e3.name, e3.value);
          }), e2.innerHTML && (t2.innerHTML = e2.innerHTML), t2;
        }
        return "";
      }, formatTime: function(e2) {
        var t2 = Math.floor(e2);
        return 1e3 * t2 + (e2 - t2);
      }, offInDestroy: function(e2, t2, n2, i2) {
        e2.once(i2, function o() {
          e2.off(t2, n2), e2.off(i2, o);
        });
      }, on: function(e2, t2, n2, o) {
        if (o)
          e2.on(t2, n2), i.offInDestroy(e2, t2, n2, o);
        else {
          e2.on(t2, function i2(o2) {
            n2(o2), e2.off(t2, i2);
          });
        }
      }, style: function(e2, t2, n2) {
        var i2 = e2.style;
        try {
          i2[t2] = n2;
        } catch (e3) {
          i2.setProperty(t2, n2);
        }
      } };
      t.default = i, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i, o = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), r = n(26), a = (i = r) && i.__esModule ? i : { default: i };
      var s = function() {
        function e2() {
          !function(e3, t2) {
            if (!(e3 instanceof t2))
              throw new TypeError("Cannot call a class as a function");
          }(this, e2);
        }
        return o(e2, [{ key: "setLogger", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
          this.logger = new a.default(e3 + ".js");
        } }]), e2;
      }();
      t.default = s, e.exports = t.default;
    }, function(e, t, n) {
      var i = n(19)();
      e.exports = function(e2) {
        return e2 !== i && e2 !== null;
      };
    }, function(e, t, n) {
      e.exports = function(e2) {
        return e2 != null;
      };
    }, function(e, t, n) {
      e.exports = n(5);
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i, o = n(6), r = (i = o) && i.__esModule ? i : { default: i };
      n(34), t.default = r.default, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), o = f(n(7)), r = f(n(1)), a = f(n(27)), s = f(n(31)), l = f(n(0)), u = n(32), c = n(33);
      function f(e2) {
        return e2 && e2.__esModule ? e2 : { default: e2 };
      }
      function h(e2, t2) {
        if (!e2)
          throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return !t2 || typeof t2 != "object" && typeof t2 != "function" ? e2 : t2;
      }
      var d = function(e2) {
        function t2(e3) {
          !function(e4, t3) {
            if (!(e4 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, t2);
          var n2 = h(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
          n2.setLogger("danmu"), n2.logger && n2.logger.info("danmu.js version: " + u.version);
          var i2 = n2;
          if (i2.config = l.default.deepCopy({ overlap: false, area: { start: 0, end: 1 }, live: false, comments: [], direction: "r2l", needResizeObserver: false }, e3), i2.hideArr = [], i2.domObj = new s.default(), (0, o.default)(i2), i2.config.comments.forEach(function(e4) {
            e4.duration = e4.duration ? e4.duration : 5e3, e4.mode || (e4.mode = "scroll");
          }), !i2.config.container || i2.config.container.nodeType !== 1)
            return i2.emit("error", "container id can't be empty"), h(n2, false);
          if (i2.container = i2.config.container, i2.config.containerStyle) {
            var r2 = i2.config.containerStyle;
            Object.keys(r2).forEach(function(e4) {
              i2.container.style[e4] = r2[e4];
            });
          }
          return i2.live = i2.config.live, i2.player = i2.config.player, i2.direction = i2.config.direction, l.default.addClass(i2.container, "danmu"), i2.bulletBtn = new a.default(i2), i2.isReady = true, i2.emit("ready"), n2.logger && n2.logger.info("ready"), n2.addResizeObserver(), n2;
        }
        return function(e3, t3) {
          if (typeof t3 != "function" && t3 !== null)
            throw new TypeError("Super expression must either be null or a function, not " + typeof t3);
          e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
        }(t2, e2), i(t2, [{ key: "addResizeObserver", value: function() {
          var e3 = this;
          this.config.needResizeObserver && (0, c.addObserver)(this.container, function() {
            e3.logger && e3.logger.info("needResizeObserver"), e3.resize();
          });
        } }, { key: "start", value: function() {
          this.logger && this.logger.info("start"), this.bulletBtn.main.start();
        } }, { key: "pause", value: function() {
          this.logger && this.logger.info("pause"), this.bulletBtn.main.pause();
        } }, { key: "play", value: function() {
          this.logger && this.logger.info("play"), this.bulletBtn.main.play();
        } }, { key: "stop", value: function() {
          this.logger && this.logger.info("stop"), this.bulletBtn.main.stop();
        } }, { key: "clear", value: function() {
          this.logger && this.logger.info("clear"), this.bulletBtn.main.clear();
        } }, { key: "destroy", value: function() {
          for (var e3 in (0, c.unObserver)(this.container), this.logger && this.logger.info("destroy"), this.stop(), this.bulletBtn.destroy(), this.domObj.destroy(), this)
            delete this[e3];
          this.emit("destroy");
        } }, { key: "sendComment", value: function(e3) {
          this.logger && this.logger.info("sendComment: " + (e3.txt || "[DOM Element]")), e3.duration || (e3.duration = 15e3), e3 && e3.id && e3.duration && (e3.el || e3.txt) && (e3.duration = e3.duration ? e3.duration : 5e3, e3.style || (e3.style = { opacity: void 0, fontSize: void 0 }), e3.style && (this.opacity && this.opacity !== e3.style.opacity && (e3.style.opacity = this.opacity), this.fontSize && this.fontSize !== e3.style.fontSize && (e3.style.fontSize = this.fontSize), this.like && (e3.like = e3.like ? e3.like : this.like)), e3.prior || e3.realTime ? (this.bulletBtn.main.data.unshift(e3), e3.realTime && (this.bulletBtn.main.readData(), this.bulletBtn.main.dataHandle())) : this.bulletBtn.main.data.push(e3));
        } }, { key: "setCommentID", value: function(e3, t3) {
          var n2 = this;
          this.logger && this.logger.info("setCommentID: oldID " + e3 + " newID " + t3);
          var i2 = this.container.getBoundingClientRect();
          e3 && t3 && (this.bulletBtn.main.data.some(function(n3) {
            return n3.id === e3 && (n3.id = t3, true);
          }), this.bulletBtn.main.queue.some(function(o2) {
            return o2.id === e3 && (o2.id = t3, o2.pauseMove(i2), n2.bulletBtn.main.status !== "paused" && o2.startMove(i2), true);
          }));
        } }, { key: "setCommentDuration", value: function(e3, t3) {
          var n2 = this;
          this.logger && this.logger.info("setCommentDuration: id " + e3 + " duration " + t3);
          var i2 = this.container.getBoundingClientRect();
          e3 && t3 && (t3 = t3 || 5e3, this.bulletBtn.main.data.some(function(n3) {
            return n3.id === e3 && (n3.duration = t3, true);
          }), this.bulletBtn.main.queue.some(function(o2) {
            return o2.id === e3 && (o2.duration = t3, o2.pauseMove(i2), n2.bulletBtn.main.status !== "paused" && o2.startMove(i2), true);
          }));
        } }, { key: "setCommentLike", value: function(e3, t3) {
          this.logger && this.logger.info("setCommentLike: id " + e3 + " like " + t3);
          var n2 = this.container.getBoundingClientRect();
          this.like = t3, e3 && t3 && (this.bulletBtn.main.data.some(function(n3) {
            return n3.id === e3 && (n3.like = t3, true);
          }), this.bulletBtn.main.queue.some(function(i2) {
            return i2.id === e3 && (i2.pauseMove(n2), i2.setLikeDom(t3.el, t3.style), i2.danmu.bulletBtn.main.status !== "paused" && i2.startMove(n2), true);
          }));
        } }, { key: "restartComment", value: function(e3) {
          this.logger && this.logger.info("restartComment: id " + e3), this.mouseControl = false;
          var t3 = this.container.getBoundingClientRect();
          e3 && this.bulletBtn.main.queue.some(function(n2) {
            return n2.id === e3 && (n2.danmu.bulletBtn.main.status !== "paused" ? n2.startMove(t3, true) : n2.status = "paused", true);
          });
        } }, { key: "freezeComment", value: function(e3) {
          this.logger && this.logger.info("freezeComment: id " + e3), this.mouseControl = true;
          var t3 = this.container.getBoundingClientRect();
          e3 && this.bulletBtn.main.queue.some(function(n2) {
            return n2.id === e3 && (n2.status = "forcedPause", n2.pauseMove(t3), n2.el && n2.el.style && l.default.style(n2.el, "zIndex", 10), true);
          });
        } }, { key: "removeComment", value: function(e3) {
          this.logger && this.logger.info("removeComment: id " + e3), e3 && (this.bulletBtn.main.queue.some(function(t3) {
            return t3.id === e3 && (t3.remove(), true);
          }), this.bulletBtn.main.data = this.bulletBtn.main.data.filter(function(t3) {
            return t3.id !== e3;
          }));
        } }, { key: "updateComments", value: function(e3) {
          var t3 = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1];
          t3 && (this.bulletBtn.main.data = []), this.bulletBtn.main.data = this.bulletBtn.main.data.concat(e3);
        } }, { key: "setAllDuration", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll", t3 = arguments[1], n2 = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2];
          this.logger && this.logger.info("setAllDuration: mode " + e3 + " duration " + t3 + " force " + n2);
          var i2 = this.container.getBoundingClientRect();
          t3 && (t3 = t3 || 5e3, n2 && (this.bulletBtn.main.forceDuration = t3), this.bulletBtn.main.data.forEach(function(n3) {
            e3 === n3.mode && (n3.duration = t3);
          }), this.bulletBtn.main.queue.forEach(function(n3) {
            e3 === n3.mode && (n3.duration = t3, n3.pauseMove(i2), n3.danmu.bulletBtn.main.status !== "paused" && n3.startMove(i2));
          }));
        } }, { key: "setOpacity", value: function(e3) {
          this.logger && this.logger.info("setOpacity: opacity " + e3), this.container.style.opacity = e3;
        } }, { key: "setFontSize", value: function(e3, t3) {
          var n2 = this;
          this.logger && this.logger.info("setFontSize: size " + e3 + " channelSize " + t3), this.fontSize = e3 + "px", e3 && (this.bulletBtn.main.data.forEach(function(e4) {
            e4.style && (e4.style.fontSize = n2.fontSize);
          }), this.bulletBtn.main.queue.forEach(function(e4) {
            e4.options.style || (e4.options.style = {}), e4.options.style.fontSize = n2.fontSize, e4.setFontSize(n2.fontSize), t3 && (e4.top = e4.channel_id[0] * t3, e4.topInit());
          })), t3 && (this.config.channelSize = t3, this.bulletBtn.main.channel.resize(true));
        } }, { key: "setArea", value: function(e3) {
          this.logger && this.logger.info("setArea: area " + e3), this.config.area = e3, this.bulletBtn.main.channel.resize(true);
        } }, { key: "hide", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll";
          this.logger && this.logger.info("hide: mode " + e3), this.hideArr.indexOf(e3) < 0 && this.hideArr.push(e3);
          var t3 = this.bulletBtn.main.queue.filter(function(t4) {
            return e3 === t4.mode || e3 === "color" && t4.color;
          });
          t3.forEach(function(e4) {
            return e4.remove();
          });
        } }, { key: "show", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "scroll";
          this.logger && this.logger.info("show: mode " + e3);
          var t3 = this.hideArr.indexOf(e3);
          t3 > -1 && this.hideArr.splice(t3, 1);
        } }, { key: "setDirection", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "r2l";
          this.logger && this.logger.info("setDirection: direction " + e3), this.emit("changeDirection", e3);
        } }, { key: "resize", value: function() {
          this.logger && this.logger.info("resize"), this.emit("channel_resize");
        } }]), t2;
      }(r.default);
      t.default = d, e.exports = t.default;
    }, function(e, t, n) {
      var i, o, r, a, s, l, u, c = n(8), f = n(25), h = Function.prototype.apply, d = Function.prototype.call, g = Object.create, p = Object.defineProperty, m = Object.defineProperties, v = Object.prototype.hasOwnProperty, b = { configurable: true, enumerable: false, writable: true };
      o = function(e2, t2) {
        var n2, o2;
        return f(t2), o2 = this, i.call(this, e2, n2 = function() {
          r.call(o2, e2, n2), h.call(t2, this, arguments);
        }), n2.__eeOnceListener__ = t2, this;
      }, s = { on: i = function(e2, t2) {
        var n2;
        return f(t2), v.call(this, "__ee__") ? n2 = this.__ee__ : (n2 = b.value = g(null), p(this, "__ee__", b), b.value = null), n2[e2] ? typeof n2[e2] == "object" ? n2[e2].push(t2) : n2[e2] = [n2[e2], t2] : n2[e2] = t2, this;
      }, once: o, off: r = function(e2, t2) {
        var n2, i2, o2, r2;
        if (f(t2), !v.call(this, "__ee__"))
          return this;
        if (!(n2 = this.__ee__)[e2])
          return this;
        if (typeof (i2 = n2[e2]) == "object")
          for (r2 = 0; o2 = i2[r2]; ++r2)
            o2 !== t2 && o2.__eeOnceListener__ !== t2 || (i2.length === 2 ? n2[e2] = i2[r2 ? 0 : 1] : i2.splice(r2, 1));
        else
          i2 !== t2 && i2.__eeOnceListener__ !== t2 || delete n2[e2];
        return this;
      }, emit: a = function(e2) {
        var t2, n2, i2, o2, r2;
        if (v.call(this, "__ee__") && (o2 = this.__ee__[e2]))
          if (typeof o2 == "object") {
            for (n2 = arguments.length, r2 = new Array(n2 - 1), t2 = 1; t2 < n2; ++t2)
              r2[t2 - 1] = arguments[t2];
            for (o2 = o2.slice(), t2 = 0; i2 = o2[t2]; ++t2)
              h.call(i2, this, r2);
          } else
            switch (arguments.length) {
              case 1:
                d.call(o2, this);
                break;
              case 2:
                d.call(o2, this, arguments[1]);
                break;
              case 3:
                d.call(o2, this, arguments[1], arguments[2]);
                break;
              default:
                for (n2 = arguments.length, r2 = new Array(n2 - 1), t2 = 1; t2 < n2; ++t2)
                  r2[t2 - 1] = arguments[t2];
                h.call(o2, this, r2);
            }
      } }, l = { on: c(i), once: c(o), off: c(r), emit: c(a) }, u = m({}, l), e.exports = t = function(e2) {
        return e2 == null ? g(u) : m(Object(e2), l);
      }, t.methods = s;
    }, function(e, t, n) {
      var i = n(3), o = n(9), r = n(13), a = n(21), s = n(22);
      (e.exports = function(e2, t2) {
        var n2, o2, l, u, c;
        return arguments.length < 2 || typeof e2 != "string" ? (u = t2, t2 = e2, e2 = null) : u = arguments[2], i(e2) ? (n2 = s.call(e2, "c"), o2 = s.call(e2, "e"), l = s.call(e2, "w")) : (n2 = l = true, o2 = false), c = { value: t2, configurable: n2, enumerable: o2, writable: l }, u ? r(a(u), c) : c;
      }).gs = function(e2, t2, n2) {
        var l, u, c, f;
        return typeof e2 != "string" ? (c = n2, n2 = t2, t2 = e2, e2 = null) : c = arguments[3], i(t2) ? o(t2) ? i(n2) ? o(n2) || (c = n2, n2 = void 0) : n2 = void 0 : (c = t2, t2 = n2 = void 0) : t2 = void 0, i(e2) ? (l = s.call(e2, "c"), u = s.call(e2, "e")) : (l = true, u = false), f = { get: t2, set: n2, configurable: l, enumerable: u }, c ? r(a(c), f) : f;
      };
    }, function(e, t, n) {
      var i = n(10), o = /^\s*class[\s{/}]/, r = Function.prototype.toString;
      e.exports = function(e2) {
        return !!i(e2) && !o.test(r.call(e2));
      };
    }, function(e, t, n) {
      var i = n(11);
      e.exports = function(e2) {
        if (typeof e2 != "function")
          return false;
        if (!hasOwnProperty.call(e2, "length"))
          return false;
        try {
          if (typeof e2.length != "number")
            return false;
          if (typeof e2.call != "function")
            return false;
          if (typeof e2.apply != "function")
            return false;
        } catch (e3) {
          return false;
        }
        return !i(e2);
      };
    }, function(e, t, n) {
      var i = n(12);
      e.exports = function(e2) {
        if (!i(e2))
          return false;
        try {
          return !!e2.constructor && e2.constructor.prototype === e2;
        } catch (e3) {
          return false;
        }
      };
    }, function(e, t, n) {
      var i = n(3), o = { object: true, function: true, undefined: true };
      e.exports = function(e2) {
        return !!i(e2) && hasOwnProperty.call(o, typeof e2);
      };
    }, function(e, t, n) {
      e.exports = n(14)() ? Object.assign : n(15);
    }, function(e, t, n) {
      e.exports = function() {
        var e2, t2 = Object.assign;
        return typeof t2 == "function" && (t2(e2 = { foo: "raz" }, { bar: "dwa" }, { trzy: "trzy" }), e2.foo + e2.bar + e2.trzy === "razdwatrzy");
      };
    }, function(e, t, n) {
      var i = n(16), o = n(20), r = Math.max;
      e.exports = function(e2, t2) {
        var n2, a, s, l = r(arguments.length, 2);
        for (e2 = Object(o(e2)), s = function(i2) {
          try {
            e2[i2] = t2[i2];
          } catch (e3) {
            n2 || (n2 = e3);
          }
        }, a = 1; a < l; ++a)
          i(t2 = arguments[a]).forEach(s);
        if (n2 !== void 0)
          throw n2;
        return e2;
      };
    }, function(e, t, n) {
      e.exports = n(17)() ? Object.keys : n(18);
    }, function(e, t, n) {
      e.exports = function() {
        try {
          return Object.keys("primitive"), true;
        } catch (e2) {
          return false;
        }
      };
    }, function(e, t, n) {
      var i = n(2), o = Object.keys;
      e.exports = function(e2) {
        return o(i(e2) ? Object(e2) : e2);
      };
    }, function(e, t, n) {
      e.exports = function() {
      };
    }, function(e, t, n) {
      var i = n(2);
      e.exports = function(e2) {
        if (!i(e2))
          throw new TypeError("Cannot use null or undefined");
        return e2;
      };
    }, function(e, t, n) {
      var i = n(2), o = Array.prototype.forEach, r = Object.create, a = function(e2, t2) {
        var n2;
        for (n2 in e2)
          t2[n2] = e2[n2];
      };
      e.exports = function(e2) {
        var t2 = r(null);
        return o.call(arguments, function(e3) {
          i(e3) && a(Object(e3), t2);
        }), t2;
      };
    }, function(e, t, n) {
      e.exports = n(23)() ? String.prototype.contains : n(24);
    }, function(e, t, n) {
      var i = "razdwatrzy";
      e.exports = function() {
        return typeof i.contains == "function" && (i.contains("dwa") === true && i.contains("foo") === false);
      };
    }, function(e, t, n) {
      var i = String.prototype.indexOf;
      e.exports = function(e2) {
        return i.call(this, e2, arguments[1]) > -1;
      };
    }, function(e, t, n) {
      e.exports = function(e2) {
        if (typeof e2 != "function")
          throw new TypeError(e2 + " is not a function");
        return e2;
      };
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }();
      var o = typeof window != "undefined" && window.location.href.indexOf("danmu-debug") > -1, r = function() {
        function e2(t2) {
          !function(e3, t3) {
            if (!(e3 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, e2), this.constructorName = t2 || "";
        }
        return i(e2, [{ key: "info", value: function(e3) {
          for (var t2, n2 = arguments.length, i2 = Array(n2 > 1 ? n2 - 1 : 0), r2 = 1; r2 < n2; r2++)
            i2[r2 - 1] = arguments[r2];
          o && (t2 = console).log.apply(t2, ["[Danmu Log][" + this.constructorName + "]", e3].concat(i2));
        } }]), e2;
      }();
      t.default = r, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), o = s(n(1)), r = s(n(0)), a = s(n(28));
      function s(e2) {
        return e2 && e2.__esModule ? e2 : { default: e2 };
      }
      var l = function(e2) {
        function t2(e3) {
          !function(e4, t3) {
            if (!(e4 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, t2);
          var n2 = function(e4, t3) {
            if (!e4)
              throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !t3 || typeof t3 != "object" && typeof t3 != "function" ? e4 : t3;
          }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
          return n2.setLogger("control"), n2.danmu = e3, n2.main = new a.default(e3), e3.config.defaultOff || n2.main.start(), n2;
        }
        return function(e3, t3) {
          if (typeof t3 != "function" && t3 !== null)
            throw new TypeError("Super expression must either be null or a function, not " + typeof t3);
          e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
        }(t2, e2), i(t2, [{ key: "createSwitch", value: function() {
          var e3 = !(arguments.length > 0 && arguments[0] !== void 0) || arguments[0];
          return this.logger && this.logger.info("createSwitch"), this.switchBtn = r.default.createDom("dk-switch", '<span class="txt">\u5F39</span>', {}, "danmu-switch " + (e3 ? "danmu-switch-active" : "")), this.switchBtn;
        } }, { key: "destroy", value: function() {
          for (var e3 in this.logger && this.logger.info("destroy"), this.main.destroy(), this)
            delete this[e3];
        } }]), t2;
      }(o.default);
      t.default = l, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), o = l(n(1)), r = l(n(29)), a = l(n(30)), s = l(n(0));
      function l(e2) {
        return e2 && e2.__esModule ? e2 : { default: e2 };
      }
      var u = function(e2) {
        function t2(e3) {
          !function(e4, t3) {
            if (!(e4 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, t2);
          var n2 = function(e4, t3) {
            if (!e4)
              throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !t3 || typeof t3 != "object" && typeof t3 != "function" ? e4 : t3;
          }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
          n2.setLogger("main"), n2.danmu = e3, n2.container = e3.container, n2.channel = new r.default(e3), n2.data = [].concat(e3.config.comments), n2.playedData = [], n2.queue = [], n2.timer = null, n2.retryTimer = null, n2.retryStatus = "normal", n2.interval = e3.config.interval || 2e3, n2.status = "idle", s.default.on(e3, "bullet_remove", n2.updateQueue.bind(n2), "destroy");
          var i2 = n2;
          return s.default.on(n2.danmu, "changeDirection", function(e4) {
            i2.danmu.direction = e4;
          }, "destroy"), n2.nums = 0, n2;
        }
        return function(e3, t3) {
          if (typeof t3 != "function" && t3 !== null)
            throw new TypeError("Super expression must either be null or a function, not " + typeof t3);
          e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
        }(t2, e2), i(t2, [{ key: "destroy", value: function() {
          for (var e3 in this.logger && this.logger.info("destroy"), clearTimeout(this.dataHandleTimer), this.channel.destroy(), this.data = [], this)
            delete this[e3];
        } }, { key: "updateQueue", value: function(e3) {
          this.logger && this.logger.info("updateQueue");
          var t3 = this;
          t3.queue.some(function(n2, i2) {
            return n2.id === e3.bullet.id && (t3.queue.splice(i2, 1), true);
          }), t3.data.some(function(t4, n2) {
            return t4.id === e3.bullet.id && (t4.hasAttached = false, true);
          });
        } }, { key: "init", value: function(e3, t3) {
          t3.logger && t3.logger.info("init"), t3 || (t3 = this), t3.retryStatus = "normal", t3.data.sort(function(e4, t4) {
            return e4.start - t4.start;
          });
          t3.retryTimer || function e4() {
            t3.status === "closed" && t3.retryStatus === "stop" || (t3.status === "playing" && (t3.readData(), t3.dataHandle()), t3.retryStatus === "stop" && t3.status !== "paused" || (t3.dataHandleTimer = setTimeout(function() {
              e4();
            }, t3.interval - 1e3)));
          }();
        } }, { key: "start", value: function() {
          this.logger && this.logger.info("start");
          this.status = "playing", this.queue = [], this.container.innerHTML = "", this.channel.resetWithCb(this.init, this);
        } }, { key: "stop", value: function() {
          this.logger && this.logger.info("stop");
          this.status = "closed", this.retryTimer = null, this.retryStatus = "stop", this.channel.reset(), this.queue = [], this.container.innerHTML = "";
        } }, { key: "clear", value: function() {
          this.logger && this.logger.info("clear"), this.channel.reset(), this.data = [], this.queue = [], this.container.innerHTML = "";
        } }, { key: "play", value: function() {
          var e3 = this;
          this.logger && this.logger.info("play"), this.status = "playing";
          var t3 = this.channel.channels, n2 = this.danmu.container.getBoundingClientRect();
          t3 && t3.length > 0 && ["scroll", "top", "bottom"].forEach(function(i2) {
            e3.queue.forEach(function(e4) {
              e4.startMove(n2), e4.resized = true;
            });
            for (var o2 = 0; o2 < t3.length; o2++)
              t3[o2].queue[i2].forEach(function(e4) {
                e4.resized = false;
              });
          });
        } }, { key: "pause", value: function() {
          this.logger && this.logger.info("pause"), this.status = "paused";
          var e3 = this.channel.channels, t3 = this.danmu.container.getBoundingClientRect();
          e3 && e3.length > 0 && this.queue.forEach(function(e4) {
            e4.pauseMove(t3);
          });
        } }, { key: "dataHandle", value: function() {
          var e3 = this;
          this.status !== "paused" && this.status !== "closed" && e3.queue.length && e3.queue.forEach(function(t3) {
            t3.status === "waiting" && t3.startMove(e3.channel.containerPos);
          });
        } }, { key: "readData", value: function() {
          var e3 = this, t3 = this.danmu;
          if (t3.isReady) {
            var n2 = 0;
            t3.player && t3.player.currentTime && (n2 = s.default.formatTime(t3.player.currentTime));
            var i2 = void 0, o2 = e3.interval, r2 = e3.channel, l2 = void 0;
            t3.player ? (l2 = e3.data.filter(function(t4) {
              return !t4.start && e3.danmu.hideArr.indexOf(t4.mode) < 0 && (!t4.color || e3.danmu.hideArr.indexOf("color") < 0) && (t4.start = n2), e3.danmu.hideArr.indexOf(t4.mode) < 0 && (!t4.color || e3.danmu.hideArr.indexOf("color") < 0) && t4.start - o2 <= n2 && n2 <= t4.start + o2;
            }), t3.live && (e3.data = [])) : (l2 = e3.data.splice(0, 1)).length === 0 && (l2 = e3.playedData.splice(0, 1)), l2.length > 0 && l2.forEach(function(n3) {
              if (e3.forceDuration && e3.forceDuration != n3.duration && (n3.duration = e3.forceDuration), i2 = new a.default(t3, n3), n3.hasAttached) {
                for (var o3 in i2.detach(), i2)
                  delete i2[o3];
                i2 = null, n3.hasAttached = false, n3.noDiscard && (n3.prior ? e3.data.unshift(n3) : e3.data.push(n3));
              } else if (i2.attach(), n3.hasAttached = true, r2.addBullet(i2).result)
                e3.queue.push(i2), e3.nums++, i2.topInit();
              else {
                for (var s2 in i2.detach(), i2)
                  delete i2[s2];
                i2 = null, n3.hasAttached = false, n3.noDiscard && (n3.prior ? e3.data.unshift(n3) : e3.data.push(n3));
              }
            });
          }
        } }]), t2;
      }(o.default);
      t.default = u, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), o = a(n(1)), r = a(n(0));
      function a(e2) {
        return e2 && e2.__esModule ? e2 : { default: e2 };
      }
      var s = function(e2) {
        function t2(e3) {
          !function(e4, t3) {
            if (!(e4 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, t2);
          var n2 = function(e4, t3) {
            if (!e4)
              throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !t3 || typeof t3 != "object" && typeof t3 != "function" ? e4 : t3;
          }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
          n2.setLogger("channel"), n2.danmu = e3, n2.reset(true);
          var i2 = n2;
          return r.default.on(n2.danmu, "bullet_remove", function(e4) {
            i2.removeBullet(e4.bullet);
          }, "destroy"), n2.direction = e3.direction, r.default.on(n2.danmu, "changeDirection", function(e4) {
            i2.direction = e4;
          }, "destroy"), n2.containerPos = n2.danmu.container.getBoundingClientRect(), n2.containerWidth = n2.containerPos.width, n2.containerHeight = n2.containerPos.height, n2.containerLeft = n2.containerPos.left, n2.containerRight = n2.containerPos.right, r.default.on(n2.danmu, "channel_resize", function() {
            i2.containerPos = i2.danmu.container.getBoundingClientRect(), i2.resizing || (i2.containerWidth = i2.containerPos.width, i2.containerHeight = i2.containerPos.height, i2.containerLeft = i2.containerPos.left, i2.containerRight = i2.containerPos.right, i2.resize(true));
          }, "destroy"), n2;
        }
        return function(e3, t3) {
          if (typeof t3 != "function" && t3 !== null)
            throw new TypeError("Super expression must either be null or a function, not " + typeof t3);
          e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
        }(t2, e2), i(t2, [{ key: "destroy", value: function() {
          for (var e3 in this.logger && this.logger.info("destroy"), clearTimeout(this.resizeTimer), this.channels = [], this)
            delete this[e3];
        } }, { key: "resize", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 && arguments[0];
          this.logger && this.logger.info("resize");
          var t3 = this.danmu.container, n2 = this;
          n2.resizing || (n2.resizing = true, this.resizeTimer = setTimeout(function() {
            n2.danmu.bulletBtn.main.data && n2.danmu.bulletBtn.main.data.forEach(function(e4) {
              e4.bookChannelId && (delete e4.bookChannelId, n2.logger && n2.logger.info("resize\u5BFC\u81F4" + e4.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A\u53D6\u6D88"));
            }), n2.logger && n2.logger.info("resize\u5BFC\u81F4\u6240\u6709\u8F68\u9053\u6062\u590D\u6B63\u5E38\u4F7F\u7528");
            var i2 = t3.getBoundingClientRect();
            n2.width = i2.width, n2.height = i2.height, n2.danmu.config.area && n2.danmu.config.area.start >= 0 && n2.danmu.config.area.end >= n2.danmu.config.area.start && (n2.direction === "b2t" ? n2.width = n2.width * (n2.danmu.config.area.end - n2.danmu.config.area.start) : n2.height = n2.height * (n2.danmu.config.area.end - n2.danmu.config.area.start)), n2.container = t3;
            var o2 = n2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), r2 = void 0;
            r2 = n2.direction === "b2t" ? Math.floor(n2.width / o2) : Math.floor(n2.height / o2);
            for (var a2 = [], s2 = 0; s2 < r2; s2++)
              a2[s2] = { id: s2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
            if (n2.channels && n2.channels.length <= a2.length) {
              for (var l = function(t4) {
                a2[t4] = { id: t4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top"].forEach(function(i3) {
                  n2.channels[t4].queue[i3].forEach(function(o3) {
                    o3.el && (a2[t4].queue[i3].push(o3), o3.resized || (o3.pauseMove(n2.containerPos, e3), o3.danmu.bulletBtn.main.status !== "paused" && o3.startMove(n2.containerPos), o3.resized = true));
                  });
                }), n2.channels[t4].queue.bottom.forEach(function(i3) {
                  if (i3.el) {
                    if (a2[t4 + a2.length - n2.channels.length].queue.bottom.push(i3), i3.channel_id[0] + i3.channel_id[1] - 1 === t4) {
                      var r3 = [].concat(i3.channel_id);
                      i3.channel_id = [r3[0] - n2.channels.length + a2.length, r3[1]], i3.top = i3.channel_id[0] * o2, n2.danmu.config.area && n2.danmu.config.area.start && (i3.top += n2.containerHeight * n2.danmu.config.area.start), i3.topInit();
                    }
                    i3.resized || (i3.pauseMove(n2.containerPos, e3), i3.danmu.bulletBtn.main.status !== "paused" && i3.startMove(n2.containerPos), i3.resized = true);
                  }
                });
              }, u = 0; u < n2.channels.length; u++)
                l(u);
              for (var c = function(e4) {
                ["scroll", "top", "bottom"].forEach(function(t4) {
                  a2[e4].queue[t4].forEach(function(e5) {
                    e5.resized = false;
                  });
                });
              }, f = 0; f < a2.length; f++)
                c(f);
              n2.channels = a2, n2.direction === "b2t" ? n2.channelWidth = o2 : n2.channelHeight = o2;
            } else if (n2.channels && n2.channels.length > a2.length) {
              for (var h = function(t4) {
                a2[t4] = { id: t4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top", "bottom"].forEach(function(i3) {
                  if (i3 === "top" && t4 > Math.floor(a2.length / 2))
                    ;
                  else if (i3 === "bottom" && t4 <= Math.floor(a2.length / 2))
                    ;
                  else {
                    var r3 = i3 === "bottom" ? t4 - a2.length + n2.channels.length : t4;
                    n2.channels[r3].queue[i3].forEach(function(s3, l2) {
                      if (s3.el) {
                        if (a2[t4].queue[i3].push(s3), i3 === "bottom" && s3.channel_id[0] + s3.channel_id[1] - 1 === r3) {
                          var u2 = [].concat(s3.channel_id);
                          s3.channel_id = [u2[0] - n2.channels.length + a2.length, u2[1]], s3.top = s3.channel_id[0] * o2, n2.danmu.config.area && n2.danmu.config.area.start && (s3.top += n2.containerHeight * n2.danmu.config.area.start), s3.topInit();
                        }
                        s3.pauseMove(n2.containerPos, e3), s3.danmu.bulletBtn.main.status !== "paused" && s3.startMove(n2.containerPos), s3.resized || (s3.resized = true);
                      }
                      n2.channels[r3].queue[i3].splice(l2, 1);
                    });
                  }
                });
              }, d = 0; d < a2.length; d++)
                h(d);
              for (var g = function(e4) {
                ["scroll", "top", "bottom"].forEach(function(t4) {
                  a2[e4].queue[t4].forEach(function(e5) {
                    e5.resized = false;
                  });
                });
              }, p = 0; p < a2.length; p++)
                g(p);
              n2.channels = a2, n2.direction === "b2t" ? n2.channelWidth = o2 : n2.channelHeight = o2;
            }
            n2.resizing = false;
          }, 10));
        } }, { key: "addBullet", value: function(e3) {
          var t3 = this, n2 = this.danmu, i2 = this.channels, o2 = void 0, r2 = void 0, a2 = void 0;
          if (t3.direction === "b2t" ? (r2 = this.channelWidth, a2 = Math.ceil(e3.width / r2)) : (o2 = this.channelHeight, a2 = Math.ceil(e3.height / o2)), a2 > i2.length)
            return { result: false, message: "exceed channels.length, occupy=" + a2 + ",channelsSize=" + i2.length };
          for (var s2 = true, l = void 0, u = -1, c = 0, f = i2.length; c < f; c++)
            if (i2[c].queue[e3.mode].some(function(t4) {
              return t4.id === e3.id;
            }))
              return { result: false, message: "exsited, channelOrder=" + c + ",danmu_id=" + e3.id };
          if (e3.mode === "scroll")
            for (var h = 0, d = i2.length - a2; h <= d; h++) {
              s2 = true;
              for (var g = h; g < h + a2; g++) {
                if ((l = i2[g]).operating.scroll) {
                  s2 = false;
                  break;
                }
                if (l.bookId.scroll && l.bookId.scroll !== e3.id) {
                  s2 = false;
                  break;
                }
                l.operating.scroll = true;
                var p = l.queue.scroll[0];
                if (p) {
                  var m = p.el.getBoundingClientRect();
                  if (t3.direction === "b2t") {
                    if (m.bottom > t3.containerPos.bottom) {
                      s2 = false, l.operating.scroll = false;
                      break;
                    }
                  } else if (m.right > t3.containerPos.right) {
                    s2 = false, l.operating.scroll = false;
                    break;
                  }
                  var v, b = void 0, y = void 0, w = void 0, _ = void 0;
                  if (t3.direction === "b2t" ? (y = (m.top - t3.containerPos.top + m.height) / (b = (t3.containerPos.height + m.height) / p.duration), w = t3.containerPos.height, _ = (t3.containerPos.height + e3.height) / e3.duration) : (y = (m.left - t3.containerPos.left + m.width) / (b = (t3.containerPos.width + m.width) / p.duration), w = t3.containerPos.width, _ = (t3.containerPos.width + e3.width) / e3.duration), v = w / _, n2.config.bOffset || (n2.config.bOffset = 0), b < _ && y + n2.config.bOffset > v) {
                    s2 = false, l.operating.scroll = false;
                    break;
                  }
                }
                l.operating.scroll = false;
              }
              if (s2) {
                u = h;
                break;
              }
            }
          else if (e3.mode === "top")
            for (var O = 0, k = i2.length - a2; O <= k; O++) {
              s2 = true;
              for (var x = O; x < O + a2; x++) {
                if (x > Math.floor(i2.length / 2)) {
                  s2 = false;
                  break;
                }
                if ((l = i2[x]).operating[e3.mode]) {
                  s2 = false;
                  break;
                }
                if ((l.bookId[e3.mode] || e3.prior) && l.bookId[e3.mode] !== e3.id) {
                  s2 = false;
                  break;
                }
                if (l.operating[e3.mode] = true, l.queue[e3.mode].length > 0) {
                  s2 = false, l.operating[e3.mode] = false;
                  break;
                }
                l.operating[e3.mode] = false;
              }
              if (s2) {
                u = O;
                break;
              }
            }
          else if (e3.mode === "bottom")
            for (var M = i2.length - a2; M >= 0; M--) {
              s2 = true;
              for (var C = M; C < M + a2; C++) {
                if (C <= Math.floor(i2.length / 2)) {
                  s2 = false;
                  break;
                }
                if ((l = i2[C]).operating[e3.mode]) {
                  s2 = false;
                  break;
                }
                if ((l.bookId[e3.mode] || e3.prior) && l.bookId[e3.mode] !== e3.id) {
                  s2 = false;
                  break;
                }
                if (l.operating[e3.mode] = true, l.queue[e3.mode].length > 0) {
                  s2 = false, l.operating[e3.mode] = false;
                  break;
                }
                l.operating[e3.mode] = false;
              }
              if (s2) {
                u = M;
                break;
              }
            }
          if (u !== -1) {
            for (var E = u, j = u + a2; E < j; E++)
              (l = i2[E]).operating[e3.mode] = true, l.queue[e3.mode].unshift(e3), e3.prior && (delete l.bookId[e3.mode], t3.logger && t3.logger.info(E + "\u53F7\u8F68\u9053\u6062\u590D\u6B63\u5E38\u4F7F\u7528")), l.operating[e3.mode] = false;
            if (e3.prior) {
              if (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u8FD0\u884C\u5B8C\u6BD5"), delete e3.bookChannelId, n2.player)
                n2.bulletBtn.main.data.some(function(t4) {
                  return t4.id === e3.id && (delete t4.bookChannelId, true);
                });
            }
            return e3.channel_id = [u, a2], t3.direction === "b2t" ? (e3.top = u * r2, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerWidth * t3.danmu.config.area.start)) : (e3.top = u * o2, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerHeight * t3.danmu.config.area.start)), { result: e3, message: "success" };
          }
          if (e3.options.realTime) {
            var B = 0, T = -1, P = null;
            if (t3.danmu.bulletBtn.main.queue.forEach(function(e4, n3) {
              !e4.prior && !e4.options.realTime && e4.el && e4.el.getBoundingClientRect().left > t3.containerPos.right && e4.start >= B && (B = e4.start, T = n3, P = e4);
            }), P) {
              P.remove(), t3.removeBullet(P), t3.danmu.bulletBtn.main.queue.splice(T, 1), e3.channel_id = P.channel_id;
              for (var z = P.channel_id[0], S = P.channel_id[0] + P.channel_id[1]; z < S; z++)
                (l = i2[z]).operating[e3.mode] = true, l.queue[e3.mode].unshift(e3), e3.prior && delete l.bookId[e3.mode], l.operating[e3.mode] = false;
              return e3.top = P.top, t3.danmu.config.area && t3.danmu.config.area.start && (e3.top += t3.containerHeight * t3.danmu.config.area.start), { result: e3, message: "success" };
            }
          }
          if (e3.prior)
            if (e3.bookChannelId || t3.danmu.live) {
              if (n2.player)
                n2.bulletBtn.main.data.some(function(n3) {
                  return n3.id === e3.id && (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u5C06\u4E8E2\u79D2\u540E\u518D\u6B21\u8BF7\u6C42\u6CE8\u518C"), n3.start += 2e3, true);
                });
            } else {
              u = -1;
              for (var L = 0, D = i2.length - a2; L <= D; L++) {
                s2 = true;
                for (var q = L; q < L + a2; q++)
                  if (i2[q].bookId[e3.mode]) {
                    s2 = false;
                    break;
                  }
                if (s2) {
                  u = L;
                  break;
                }
              }
              if (u !== -1) {
                for (var R = u; R < u + a2; R++)
                  i2[R].bookId[e3.mode] = e3.id, t3.logger && t3.logger.info(R + "\u53F7\u8F68\u9053\u88AB" + e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A");
                if (n2.player)
                  n2.bulletBtn.main.data.some(function(n3) {
                    return n3.id === e3.id && (t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u5C06\u4E8E2\u79D2\u540E\u518D\u6B21\u8BF7\u6C42\u6CE8\u518C"), n3.start += 2e3, n3.bookChannelId = [u, a2], t3.logger && t3.logger.info(e3.id + "\u53F7\u4F18\u5148\u5F39\u5E55\u9884\u5B9A\u4E86" + u + "~" + (u + a2 - 1) + "\u53F7\u8F68\u9053"), true);
                  });
              }
            }
          return { result: false, message: "no surplus will right" };
        } }, { key: "removeBullet", value: function(e3) {
          this.logger && this.logger.info("removeBullet " + (e3.options.txt || "[DOM Element]"));
          for (var t3 = this.channels, n2 = e3.channel_id, i2 = void 0, o2 = n2[0], r2 = n2[0] + n2[1]; o2 < r2; o2++)
            if (i2 = t3[o2]) {
              i2.operating[e3.mode] = true;
              var a2 = -1;
              i2.queue[e3.mode].some(function(t4, n3) {
                return t4.id === e3.id && (a2 = n3, true);
              }), a2 > -1 && i2.queue[e3.mode].splice(a2, 1), i2.operating[e3.mode] = false;
            }
          e3.options.loop && this.danmu.bulletBtn.main.playedData.push(e3.options);
        } }, { key: "resetArea", value: function() {
          this.logger && this.logger.info("resetArea");
          var e3 = this.danmu.container, t3 = this, n2 = e3.getBoundingClientRect();
          t3.width = n2.width, t3.height = n2.height, t3.danmu.config.area && t3.danmu.config.area.start >= 0 && t3.danmu.config.area.end >= t3.danmu.config.area.start && (t3.direction === "b2t" ? t3.width = t3.width * (t3.danmu.config.area.end - t3.danmu.config.area.start) : t3.height = t3.height * (t3.danmu.config.area.end - t3.danmu.config.area.start)), t3.container = e3;
          var i2 = t3.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), o2 = void 0;
          o2 = t3.direction === "b2t" ? Math.floor(t3.width / i2) : Math.floor(t3.height / i2);
          for (var r2 = [], a2 = 0; a2 < o2; a2++)
            r2[a2] = { id: a2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
          if (t3.channels && t3.channels.length <= r2.length) {
            for (var s2 = function(e4) {
              r2[e4] = { id: e4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top"].forEach(function(n3) {
                t3.channels[e4].queue[n3].forEach(function(i3) {
                  i3.el && (r2[e4].queue[n3].push(i3), i3.resized || (i3.pauseMove(t3.containerPos, false), i3.startMove(t3.containerPos), i3.resized = true));
                });
              }), t3.channels[e4].queue.bottom.forEach(function(n3) {
                if (n3.el) {
                  if (r2[e4 + r2.length - t3.channels.length].queue.bottom.push(n3), n3.channel_id[0] + n3.channel_id[1] - 1 === e4) {
                    var o3 = [].concat(n3.channel_id);
                    n3.channel_id = [o3[0] - t3.channels.length + r2.length, o3[1]], n3.top = n3.channel_id[0] * i2, t3.danmu.config.area && t3.danmu.config.area.start && (n3.top += t3.containerHeight * t3.danmu.config.area.start), n3.topInit();
                  }
                  n3.resized || (n3.pauseMove(t3.containerPos, false), n3.startMove(t3.containerPos), n3.resized = true);
                }
              });
            }, l = 0; l < t3.channels.length; l++)
              s2(l);
            for (var u = function(e4) {
              ["scroll", "top", "bottom"].forEach(function(t4) {
                r2[e4].queue[t4].forEach(function(e5) {
                  e5.resized = false;
                });
              });
            }, c = 0; c < r2.length; c++)
              u(c);
            t3.channels = r2, t3.direction === "b2t" ? t3.channelWidth = i2 : t3.channelHeight = i2;
          } else if (t3.channels && t3.channels.length > r2.length) {
            for (var f = function(e4) {
              r2[e4] = { id: e4, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} }, ["scroll", "top", "bottom"].forEach(function(n3) {
                if (n3 === "top" && e4 > Math.floor(r2.length / 2))
                  ;
                else if (n3 === "bottom" && e4 <= Math.floor(r2.length / 2))
                  ;
                else {
                  var o3 = n3 === "bottom" ? e4 - r2.length + t3.channels.length : e4;
                  t3.channels[o3].queue[n3].forEach(function(a3, s3) {
                    if (a3.el) {
                      if (r2[e4].queue[n3].push(a3), n3 === "bottom" && a3.channel_id[0] + a3.channel_id[1] - 1 === o3) {
                        var l2 = [].concat(a3.channel_id);
                        a3.channel_id = [l2[0] - t3.channels.length + r2.length, l2[1]], a3.top = a3.channel_id[0] * i2, t3.danmu.config.area && t3.danmu.config.area.start && (a3.top += t3.containerHeight * t3.danmu.config.area.start), a3.topInit();
                      }
                      a3.resized || (a3.pauseMove(t3.containerPos, false), a3.startMove(t3.containerPos), a3.resized = true);
                    }
                    t3.channels[o3].queue[n3].splice(s3, 1);
                  });
                }
              });
            }, h = 0; h < r2.length; h++)
              f(h);
            for (var d = function(e4) {
              ["scroll", "top", "bottom"].forEach(function(t4) {
                r2[e4].queue[t4].forEach(function(e5) {
                  e5.resized = false;
                });
              });
            }, g = 0; g < r2.length; g++)
              d(g);
            t3.channels = r2, t3.direction === "b2t" ? t3.channelWidth = i2 : t3.channelHeight = i2;
          }
        } }, { key: "reset", value: function() {
          var e3 = arguments.length > 0 && arguments[0] !== void 0 && arguments[0];
          this.logger && this.logger.info("reset");
          var t3 = this.danmu.container, n2 = this;
          function i2() {
            var e4 = t3.getBoundingClientRect();
            n2.width = e4.width, n2.height = e4.height, n2.danmu.config.area && n2.danmu.config.area.start >= 0 && n2.danmu.config.area.end >= n2.danmu.config.area.start && (n2.direction === "b2t" ? n2.width = n2.width * (n2.danmu.config.area.end - n2.danmu.config.area.start) : n2.height = n2.height * (n2.danmu.config.area.end - n2.danmu.config.area.start)), n2.container = t3;
            var i3 = n2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), o2 = void 0;
            o2 = n2.direction === "b2t" ? Math.floor(n2.width / i3) : Math.floor(n2.height / i3);
            for (var r2 = [], a2 = 0; a2 < o2; a2++)
              r2[a2] = { id: a2, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
            n2.channels = r2, n2.direction === "b2t" ? n2.channelWidth = i3 : n2.channelHeight = i3;
          }
          n2.danmu.bulletBtn && n2.danmu.bulletBtn.main && n2.danmu.bulletBtn.main.queue.forEach(function(e4) {
            e4.pauseMove(n2.containerPos), e4.remove();
          }), n2.channels && n2.channels.length > 0 && ["scroll", "top", "bottom"].forEach(function(e4) {
            for (var t4 = 0; t4 < n2.channels.length; t4++)
              n2.channels[t4].queue[e4].forEach(function(e5) {
                e5.pauseMove(n2.containerPos), e5.remove();
              });
          }), n2.danmu.bulletBtn && n2.danmu.bulletBtn.main && n2.danmu.bulletBtn.main.data && n2.danmu.bulletBtn.main.data.forEach(function(e4) {
            e4.hasAttached = false;
          }), e3 ? this.resetTimer = setTimeout(i2, 200) : i2();
        } }, { key: "resetWithCb", value: function(e3, t3) {
          this.logger && this.logger.info("resetWithCb");
          var n2 = this.danmu.container, i2 = this;
          i2.channels && i2.channels.length > 0 && ["scroll", "top", "bottom"].forEach(function(e4) {
            for (var t4 = 0; t4 < i2.channels.length; t4++)
              i2.channels[t4].queue[e4].forEach(function(e5) {
                e5.pauseMove(i2.containerPos), e5.remove();
              });
          });
          var o2 = n2.getBoundingClientRect();
          i2.width = o2.width, i2.height = o2.height, i2.danmu.config.area && i2.danmu.config.area.start >= 0 && i2.danmu.config.area.end >= i2.danmu.config.area.start && (i2.direction === "b2t" ? i2.width = i2.width * (i2.danmu.config.area.end - i2.danmu.config.area.start) : i2.height = i2.height * (i2.danmu.config.area.end - i2.danmu.config.area.start)), i2.container = n2;
          var r2 = i2.danmu.config.channelSize || (/mobile/gi.test(navigator.userAgent) ? 10 : 12), a2 = void 0;
          a2 = i2.direction === "b2t" ? Math.floor(i2.width / r2) : Math.floor(i2.height / r2);
          for (var s2 = [], l = 0; l < a2; l++)
            s2[l] = { id: l, queue: { scroll: [], top: [], bottom: [] }, operating: { scroll: false, top: false, bottom: false }, bookId: {} };
          i2.channels = s2, i2.channelHeight = r2, e3 && e3(true, t3);
        } }]), t2;
      }(o.default);
      t.default = s, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), o = a(n(1)), r = a(n(0));
      function a(e2) {
        return e2 && e2.__esModule ? e2 : { default: e2 };
      }
      var s = function(e2) {
        function t2(e3, n2) {
          !function(e4, t3) {
            if (!(e4 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, t2);
          var i2 = function(e4, t3) {
            if (!e4)
              throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !t3 || typeof t3 != "object" && typeof t3 != "function" ? e4 : t3;
          }(this, (t2.__proto__ || Object.getPrototypeOf(t2)).call(this));
          i2.setLogger("bullet"), i2.danmu = e3, i2.options = n2, i2.duration = n2.duration, i2.moveV = n2.moveV, i2.id = n2.id, i2.container = e3.container, i2.start = n2.start, i2.prior = n2.prior, i2.color = n2.color, i2.bookChannelId = n2.bookChannelId, i2.direction = e3.direction;
          var o2 = i2;
          i2.onChangeDirection = function(e4) {
            o2.direction = e4;
          }, i2.danmu.on("changeDirection", i2.onChangeDirection);
          var a2 = void 0;
          if (i2.domObj = e3.domObj, n2.el && n2.el.nodeType === 1) {
            a2 = i2.domObj.use();
            var s2 = r.default.copyDom(n2.el);
            n2.eventListeners && n2.eventListeners.length > 0 && n2.eventListeners.forEach(function(e4) {
              s2.addEventListener(e4.event, e4.listener, e4.useCapture || false);
            }), a2.appendChild(s2);
          } else
            (a2 = i2.domObj.use()).textContent = n2.txt;
          if (n2.style) {
            var l = n2.style;
            Object.keys(l).forEach(function(e4) {
              r.default.style(a2, e4, l[e4]);
            });
          }
          n2.mode === "top" || n2.mode === "bottom" ? i2.mode = n2.mode : i2.mode = "scroll", i2.el = a2, n2.like && n2.like.el && i2.setLikeDom(n2.like.el, n2.like.style), i2.status = "waiting";
          var u = i2.container.getBoundingClientRect(), c = Math.floor(Math.random() * (u.width / 10 > 100 ? 200 : u.width / 10));
          n2.realTime && (c = 0);
          var f = u.width + c + "px";
          return r.default.style(i2.el, "left", f), i2.containerPos = u, i2;
        }
        return function(e3, t3) {
          if (typeof t3 != "function" && t3 !== null)
            throw new TypeError("Super expression must either be null or a function, not " + typeof t3);
          e3.prototype = Object.create(t3 && t3.prototype, { constructor: { value: e3, enumerable: false, writable: true, configurable: true } }), t3 && (Object.setPrototypeOf ? Object.setPrototypeOf(e3, t3) : e3.__proto__ = t3);
        }(t2, e2), i(t2, [{ key: "attach", value: function() {
          if (this.container.appendChild(this.el), this.elPos = this.el.getBoundingClientRect(), this.direction === "b2t" ? (this.width = this.elPos.height, this.height = this.elPos.width) : (this.width = this.elPos.width, this.height = this.elPos.height), this.moveV) {
            var e3 = this.containerPos;
            this.duration = (e3.width + this.width) / this.moveV * 1e3;
          }
          this.danmu.config && this.danmu.config.mouseControl && (this.mouseoverFunWrapper = this.mouseoverFun.bind(this), this.el.addEventListener("mouseover", this.mouseoverFunWrapper, false)), this.danmu.config && this.danmu.config.mouseEnterControl && (this.mouseEnterFunWrapper = this.mouseoverFun.bind(this), this.el.addEventListener("mouseenter", this.mouseEnterFunWrapper, false));
        } }, { key: "mouseoverFun", value: function(e3) {
          this.danmu && this.danmu.mouseControl && this.danmu.config.mouseControlPause || this.status === "waiting" || this.status === "end" || this.danmu && this.danmu.emit("bullet_hover", { bullet: this, event: e3 });
        } }, { key: "detach", value: function() {
          this.el && (this.danmu.config && this.danmu.config.mouseControl && this.el.removeEventListener("mouseover", this.mouseoverFunWrapper, false), this.danmu.config && this.danmu.config.mouseEnterControl && this.el.removeEventListener("mouseenter", this.mouseEnterFunWrapper, false), this.el.parentNode && this.el.parentNode.removeChild(this.el), this.domObj.unuse(this.el), this.el = null), this.danmu.off("changeDirection", this.onChangeDirection);
        } }, { key: "topInit", value: function() {
          if (this.logger && this.logger.info("topInit #" + (this.options.txt || "[DOM Element]") + "#"), this.direction === "b2t") {
            var e3 = this.containerPos;
            r.default.style(this.el, "transformOrigin", "left top"), r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + e3.height + "px) translateZ(0px) rotate(90deg)"), r.default.style(this.el, "transition", "transform 0s linear 0s");
          } else
            r.default.style(this.el, "top", this.top + "px");
        } }, { key: "pauseMove", value: function(e3) {
          var t3 = arguments.length > 1 && arguments[1] !== void 0 && arguments[1];
          this.logger && this.logger.info("pauseMove #" + (this.options.txt || "[DOM Element]") + "#");
          var n2 = this;
          if (this.status !== "paused" && (n2.status !== "forcedPause" && (this.status = "paused"), clearTimeout(n2.removeTimer), this.el))
            if (r.default.style(this.el, "willChange", "auto"), this.mode === "scroll") {
              if (t3) {
                var i2 = (new Date().getTime() - n2.moveTime) / 1e3, o2 = i2 * this.moveV, a2 = 0;
                a2 = n2.moveMoreS - o2 >= 0 ? this.direction === "b2t" ? (n2.moveMoreS - o2) / n2.moveContainerHeight * e3.height : (n2.moveMoreS - o2) / n2.moveContainerWidth * e3.width : n2.moveMoreS - o2, this.direction === "b2t" ? r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + a2 + "px) translateZ(0px) rotate(90deg)") : r.default.style(this.el, "left", a2 + "px");
              } else
                this.direction === "b2t" ? r.default.style(this.el, "transform", "translateX(-" + this.top + "px) translateY(" + (this.el.getBoundingClientRect().top - e3.top) + "px) translateZ(0px) rotate(90deg)") : r.default.style(this.el, "left", this.el.getBoundingClientRect().left - e3.left + "px");
              this.direction === "b2t" || r.default.style(this.el, "transform", "translateX(0px) translateY(0px) translateZ(0px)"), r.default.style(this.el, "transition", "transform 0s linear 0s");
            } else
              this.pastDuration && this.startTime ? this.pastDuration = this.pastDuration + new Date().getTime() - this.startTime : this.pastDuration = 1;
        } }, { key: "startMove", value: function(e3, t3) {
          this.logger && this.logger.info("startMove #" + (this.options.txt || "[DOM Element]") + "#");
          var n2 = this;
          if (n2.hasMove || (n2.danmu.emit("bullet_start", n2), n2.hasMove = true), (n2.status !== "forcedPause" || t3) && this.el && this.status !== "start")
            if (this.status = "start", r.default.style(this.el, "willChange", "transform"), this.mode === "scroll")
              if (this.direction === "b2t") {
                this.moveV = (e3.height + this.height) / this.duration * 1e3;
                var i2 = (n2.el.getBoundingClientRect().bottom - e3.top) / this.moveV;
                r.default.style(this.el, "transition", "transform " + i2 + "s linear 0s"), this.startMoveTimer = setTimeout(function() {
                  n2.el && (r.default.style(n2.el, "transform", "translateX(-" + n2.top + "px) translateY(-" + n2.height + "px) translateZ(0px) rotate(90deg)"), n2.moveTime = new Date().getTime(), n2.moveMoreS = n2.el.getBoundingClientRect().top - e3.top, n2.moveContainerHeight = e3.height, n2.removeTimer = setTimeout(l, 1e3 * i2));
                }, 20);
              } else {
                var o2 = this.el.getBoundingClientRect();
                this.moveV = (e3.width + this.width) / this.duration * 1e3;
                var a2 = (o2.right - e3.left) / this.moveV;
                r.default.style(this.el, "transition", "transform " + a2 + "s linear 0s"), this.startMoveTimer = setTimeout(function() {
                  if (n2.el) {
                    var t4 = n2.el.getBoundingClientRect(), i3 = (t4.right - e3.left) / a2;
                    t4.right > e3.left && i3 > n2.moveV - 1 && i3 < n2.moveV + 1 ? (r.default.style(n2.el, "transform", "translateX(-" + (t4.right - e3.left) + "px) translateY(0px) translateZ(0px)"), n2.moveTime = new Date().getTime(), n2.moveMoreS = t4.left - e3.left, n2.moveContainerWidth = e3.width, n2.removeTimer = setTimeout(l, 1e3 * a2)) : (n2.status = "end", n2.remove());
                  }
                }, 0);
              }
            else {
              r.default.style(this.el, "left", "50%"), r.default.style(this.el, "margin", "0 0 0 -" + this.width / 2 + "px"), this.pastDuration || (this.pastDuration = 1);
              var s2 = this.duration >= this.pastDuration ? this.duration - this.pastDuration : 0;
              this.removeTimer = setTimeout(l, s2), this.startTime = new Date().getTime();
            }
          function l() {
            if (n2.el)
              if (n2.mode === "scroll") {
                var e4 = n2.containerPos, t4 = n2.el.getBoundingClientRect();
                n2.direction === "b2t" ? t4 && t4.bottom <= e4.top + 100 ? (n2.status = "end", n2.remove()) : (n2.pauseMove(e4), n2.danmu.bulletBtn.main.status !== "paused" && n2.startMove(e4)) : t4 && t4.right <= e4.left + 100 ? (n2.status = "end", n2.remove()) : (n2.pauseMove(e4), n2.danmu.bulletBtn.main.status !== "paused" && n2.startMove(e4));
              } else
                n2.status = "end", n2.remove();
          }
        } }, { key: "remove", value: function() {
          this.logger && this.logger.info("remove #" + (this.options.txt || "[DOM Element]") + "#");
          this.removeTimer && clearTimeout(this.removeTimer), this.startMoveTimer && clearTimeout(this.startMoveTimer), this.el && this.el.parentNode && (r.default.style(this.el, "willChange", "auto"), this.detach(), this.danmu.emit("bullet_remove", { bullet: this }));
        } }, { key: "setFontSize", value: function(e3) {
          this.el && (this.el.style.fontSize = e3);
        } }, { key: "setLikeDom", value: function(e3, t3) {
          if (e3) {
            Object.keys(t3).forEach(function(n3) {
              e3.style[n3] = t3[n3];
            });
            if (e3.className = "danmu-like", this.el) {
              var n2 = this.el.querySelector(".danmu-like");
              n2 && this.el.removeChild(n2), this.el.innerHTML = "" + this.el.innerHTML + e3.outerHTML;
            }
          }
          return e3;
        } }]), t2;
      }(o.default);
      t.default = s, e.exports = t.default;
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i, o = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }(), r = n(0), a = (i = r) && i.__esModule ? i : { default: i };
      var s = function() {
        function e2(t2) {
          !function(e3, t3) {
            if (!(e3 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, e2), t2 = { initDOM: function() {
            return document.createElement("div");
          }, initSize: 10 }, this.init(t2);
        }
        return o(e2, [{ key: "init", value: function(e3) {
          this.idleList = [], this.usingList = [], this._id = 0, this.options = e3, this._expand(e3.initSize);
        } }, { key: "use", value: function() {
          this.idleList.length || this._expand(1);
          var e3 = this.idleList.shift();
          return this.usingList.push(e3), e3;
        } }, { key: "unuse", value: function(e3) {
          var t2 = this.usingList.indexOf(e3);
          t2 < 0 || (this.usingList.splice(t2, 1), e3.innerHTML = "", e3.textcontent = "", this.clearElementStyle(e3), this.idleList.push(e3));
        } }, { key: "_expand", value: function(e3) {
          for (var t2 = 0; t2 < e3; t2++)
            this.idleList.push(this.options.initDOM(this._id++));
        } }, { key: "destroy", value: function() {
          for (var e3 = 0; e3 < this.idleList.length; e3++)
            this.idleList[e3].innerHTML = "", this.idleList[e3].textcontent = "", this.clearElementStyle(this.idleList[e3]);
          for (var t2 = 0; t2 < this.usingList.length; t2++)
            this.usingList[t2].innerHTML = "", this.usingList[t2].textcontent = "", this.clearElementStyle(this.usingList[t2]);
          for (var n2 in this)
            delete this[n2];
        } }, { key: "clearElementStyle", value: function(e3) {
          var t2 = typeof window != "undefined" ? window.navigator.userAgent : null;
          t2 && (t2.indexOf("MSIE ") > -1 || t2.indexOf("Trident/") > -1 ? a.default.style(e3, "transform", "none") : e3.setAttribute("style", ""));
        } }]), e2;
      }();
      t.default = s, e.exports = t.default;
    }, function(e) {
      e.exports = JSON.parse('{"version":"0.5.10"}');
    }, function(e, t, n) {
      Object.defineProperty(t, "__esModule", { value: true });
      var i = function() {
        function e2(e3, t2) {
          for (var n2 = 0; n2 < t2.length; n2++) {
            var i2 = t2[n2];
            i2.enumerable = i2.enumerable || false, i2.configurable = true, "value" in i2 && (i2.writable = true), Object.defineProperty(e3, i2.key, i2);
          }
        }
        return function(t2, n2, i2) {
          return n2 && e2(t2.prototype, n2), i2 && e2(t2, i2), t2;
        };
      }();
      var o = new (function() {
        function e2() {
          var t2 = this;
          if (function(e3, t3) {
            if (!(e3 instanceof t3))
              throw new TypeError("Cannot call a class as a function");
          }(this, e2), this.__handlers = [], window.ResizeObserver)
            try {
              this.observer = new window.ResizeObserver(function(e3) {
                var n2 = new Date().getTime();
                n2 - t2.timeStampe < 200 || (t2.timeStampe = n2, t2.__trigger(e3));
              }), this.timeStampe = new Date().getTime();
            } catch (e3) {
            }
        }
        return i(e2, [{ key: "addObserver", value: function(e3, t2) {
          if (this.observer) {
            this.observer && this.observer.observe(e3);
            for (var n2 = this.__handlers, i2 = -1, o2 = 0; o2 < n2.length; o2++)
              n2[o2] && e3 === n2[o2].target && (i2 = o2);
            i2 > -1 ? this.__handlers[i2].handler.push(t2) : this.__handlers.push({ target: e3, handler: [t2] });
          }
        } }, { key: "unObserver", value: function(e3) {
          var t2 = -1;
          this.__handlers.map(function(n2, i2) {
            e3 === n2.target && (t2 = i2);
          }), this.observer && this.observer.unobserve(e3), t2 > -1 && this.__handlers.splice(t2, 1);
        } }, { key: "destroyObserver", value: function() {
          this.observer && this.observer.disconnect(), this.observer = null, this.__handlers = null;
        } }, { key: "__runHandler", value: function(e3) {
          for (var t2 = this.__handlers, n2 = 0; n2 < t2.length; n2++)
            if (t2[n2] && e3 === t2[n2].target) {
              t2[n2].handler && t2[n2].handler.map(function(e4) {
                try {
                  e4();
                } catch (e5) {
                  console.error(e5);
                }
              });
              break;
            }
        } }, { key: "__trigger", value: function(e3) {
          var t2 = this;
          e3.map(function(e4) {
            t2.__runHandler(e4.target);
          });
        } }]), e2;
      }())();
      t.addObserver = function(e2, t2) {
        o.addObserver(e2, t2);
      }, t.unObserver = function(e2, t2) {
        o.unObserver(e2, t2);
      }, t.destroyObserver = function(e2, t2) {
        o.destroyObserver(e2, t2);
      };
    }, function(e, t, n) {
      var i = n(35);
      typeof i == "string" && (i = [[e.i, i, ""]]);
      var o = { hmr: true, transform: void 0, insertInto: void 0 };
      n(37)(i, o);
      i.locals && (e.exports = i.locals);
    }, function(e, t, n) {
      (e.exports = n(36)(false)).push([e.i, ".danmu{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;-ms-user-select:none}.danmu>*{position:absolute;white-space:nowrap}.danmu-switch{width:32px;height:20px;border-radius:100px;background-color:#ccc;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;cursor:pointer;position:relative;text-align:center;margin:10px auto}.danmu-switch.danmu-switch-active{padding-left:12px;background-color:#f85959}.danmu-switch span.txt{width:20px;height:20px;line-height:20px;text-align:center;display:block;border-radius:100px;background-color:#ffffff;-webkit-box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);box-shadow:-2px 0 0 0 rgba(0, 0, 0, .04);font-family:PingFangSC;font-size:10px;font-weight:500;color:#f44336}\n", ""]);
    }, function(e, t) {
      e.exports = function(e2) {
        var t2 = [];
        return t2.toString = function() {
          return this.map(function(t3) {
            var n = function(e3, t4) {
              var n2 = e3[1] || "", i = e3[3];
              if (!i)
                return n2;
              if (t4 && typeof btoa == "function") {
                var o = (a = i, "/*# sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(a)))) + " */"), r = i.sources.map(function(e4) {
                  return "/*# sourceURL=" + i.sourceRoot + e4 + " */";
                });
                return [n2].concat(r).concat([o]).join("\n");
              }
              var a;
              return [n2].join("\n");
            }(t3, e2);
            return t3[2] ? "@media " + t3[2] + "{" + n + "}" : n;
          }).join("");
        }, t2.i = function(e3, n) {
          typeof e3 == "string" && (e3 = [[null, e3, ""]]);
          for (var i = {}, o = 0; o < this.length; o++) {
            var r = this[o][0];
            typeof r == "number" && (i[r] = true);
          }
          for (o = 0; o < e3.length; o++) {
            var a = e3[o];
            typeof a[0] == "number" && i[a[0]] || (n && !a[2] ? a[2] = n : n && (a[2] = "(" + a[2] + ") and (" + n + ")"), t2.push(a));
          }
        }, t2;
      };
    }, function(e, t, n) {
      var i, o, r = {}, a = (i = function() {
        return window && document && document.all && !window.atob;
      }, function() {
        return o === void 0 && (o = i.apply(this, arguments)), o;
      }), s = function(e2) {
        return document.querySelector(e2);
      }, l = function(e2) {
        var t2 = {};
        return function(e3) {
          if (typeof e3 == "function")
            return e3();
          if (t2[e3] === void 0) {
            var n2 = s.call(this, e3);
            if (window.HTMLIFrameElement && n2 instanceof window.HTMLIFrameElement)
              try {
                n2 = n2.contentDocument.head;
              } catch (e4) {
                n2 = null;
              }
            t2[e3] = n2;
          }
          return t2[e3];
        };
      }(), u = null, c = 0, f = [], h = n(38);
      function d(e2, t2) {
        for (var n2 = 0; n2 < e2.length; n2++) {
          var i2 = e2[n2], o2 = r[i2.id];
          if (o2) {
            o2.refs++;
            for (var a2 = 0; a2 < o2.parts.length; a2++)
              o2.parts[a2](i2.parts[a2]);
            for (; a2 < i2.parts.length; a2++)
              o2.parts.push(y(i2.parts[a2], t2));
          } else {
            var s2 = [];
            for (a2 = 0; a2 < i2.parts.length; a2++)
              s2.push(y(i2.parts[a2], t2));
            r[i2.id] = { id: i2.id, refs: 1, parts: s2 };
          }
        }
      }
      function g(e2, t2) {
        for (var n2 = [], i2 = {}, o2 = 0; o2 < e2.length; o2++) {
          var r2 = e2[o2], a2 = t2.base ? r2[0] + t2.base : r2[0], s2 = { css: r2[1], media: r2[2], sourceMap: r2[3] };
          i2[a2] ? i2[a2].parts.push(s2) : n2.push(i2[a2] = { id: a2, parts: [s2] });
        }
        return n2;
      }
      function p(e2, t2) {
        var n2 = l(e2.insertInto);
        if (!n2)
          throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
        var i2 = f[f.length - 1];
        if (e2.insertAt === "top")
          i2 ? i2.nextSibling ? n2.insertBefore(t2, i2.nextSibling) : n2.appendChild(t2) : n2.insertBefore(t2, n2.firstChild), f.push(t2);
        else if (e2.insertAt === "bottom")
          n2.appendChild(t2);
        else {
          if (typeof e2.insertAt != "object" || !e2.insertAt.before)
            throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
          var o2 = l(e2.insertInto + " " + e2.insertAt.before);
          n2.insertBefore(t2, o2);
        }
      }
      function m(e2) {
        if (e2.parentNode === null)
          return false;
        e2.parentNode.removeChild(e2);
        var t2 = f.indexOf(e2);
        t2 >= 0 && f.splice(t2, 1);
      }
      function v(e2) {
        var t2 = document.createElement("style");
        return e2.attrs.type === void 0 && (e2.attrs.type = "text/css"), b(t2, e2.attrs), p(e2, t2), t2;
      }
      function b(e2, t2) {
        Object.keys(t2).forEach(function(n2) {
          e2.setAttribute(n2, t2[n2]);
        });
      }
      function y(e2, t2) {
        var n2, i2, o2, r2;
        if (t2.transform && e2.css) {
          if (!(r2 = t2.transform(e2.css)))
            return function() {
            };
          e2.css = r2;
        }
        if (t2.singleton) {
          var a2 = c++;
          n2 = u || (u = v(t2)), i2 = O.bind(null, n2, a2, false), o2 = O.bind(null, n2, a2, true);
        } else
          e2.sourceMap && typeof URL == "function" && typeof URL.createObjectURL == "function" && typeof URL.revokeObjectURL == "function" && typeof Blob == "function" && typeof btoa == "function" ? (n2 = function(e3) {
            var t3 = document.createElement("link");
            return e3.attrs.type === void 0 && (e3.attrs.type = "text/css"), e3.attrs.rel = "stylesheet", b(t3, e3.attrs), p(e3, t3), t3;
          }(t2), i2 = x.bind(null, n2, t2), o2 = function() {
            m(n2), n2.href && URL.revokeObjectURL(n2.href);
          }) : (n2 = v(t2), i2 = k.bind(null, n2), o2 = function() {
            m(n2);
          });
        return i2(e2), function(t3) {
          if (t3) {
            if (t3.css === e2.css && t3.media === e2.media && t3.sourceMap === e2.sourceMap)
              return;
            i2(e2 = t3);
          } else
            o2();
        };
      }
      e.exports = function(e2, t2) {
        if (typeof DEBUG != "undefined" && DEBUG && typeof document != "object")
          throw new Error("The style-loader cannot be used in a non-browser environment");
        (t2 = t2 || {}).attrs = typeof t2.attrs == "object" ? t2.attrs : {}, t2.singleton || typeof t2.singleton == "boolean" || (t2.singleton = a()), t2.insertInto || (t2.insertInto = "head"), t2.insertAt || (t2.insertAt = "bottom");
        var n2 = g(e2, t2);
        return d(n2, t2), function(e3) {
          for (var i2 = [], o2 = 0; o2 < n2.length; o2++) {
            var a2 = n2[o2];
            (s2 = r[a2.id]).refs--, i2.push(s2);
          }
          e3 && d(g(e3, t2), t2);
          for (o2 = 0; o2 < i2.length; o2++) {
            var s2;
            if ((s2 = i2[o2]).refs === 0) {
              for (var l2 = 0; l2 < s2.parts.length; l2++)
                s2.parts[l2]();
              delete r[s2.id];
            }
          }
        };
      };
      var w, _ = (w = [], function(e2, t2) {
        return w[e2] = t2, w.filter(Boolean).join("\n");
      });
      function O(e2, t2, n2, i2) {
        var o2 = n2 ? "" : i2.css;
        if (e2.styleSheet)
          e2.styleSheet.cssText = _(t2, o2);
        else {
          var r2 = document.createTextNode(o2), a2 = e2.childNodes;
          a2[t2] && e2.removeChild(a2[t2]), a2.length ? e2.insertBefore(r2, a2[t2]) : e2.appendChild(r2);
        }
      }
      function k(e2, t2) {
        var n2 = t2.css, i2 = t2.media;
        if (i2 && e2.setAttribute("media", i2), e2.styleSheet)
          e2.styleSheet.cssText = n2;
        else {
          for (; e2.firstChild; )
            e2.removeChild(e2.firstChild);
          e2.appendChild(document.createTextNode(n2));
        }
      }
      function x(e2, t2, n2) {
        var i2 = n2.css, o2 = n2.sourceMap, r2 = t2.convertToAbsoluteUrls === void 0 && o2;
        (t2.convertToAbsoluteUrls || r2) && (i2 = h(i2)), o2 && (i2 += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(o2)))) + " */");
        var a2 = new Blob([i2], { type: "text/css" }), s2 = e2.href;
        e2.href = URL.createObjectURL(a2), s2 && URL.revokeObjectURL(s2);
      }
    }, function(e, t) {
      e.exports = function(e2) {
        var t2 = typeof window != "undefined" && window.location;
        if (!t2)
          throw new Error("fixUrls requires window.location");
        if (!e2 || typeof e2 != "string")
          return e2;
        var n = t2.protocol + "//" + t2.host, i = n + t2.pathname.replace(/\/[^\/]*$/, "/");
        return e2.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(e3, t3) {
          var o, r = t3.trim().replace(/^"(.*)"$/, function(e4, t4) {
            return t4;
          }).replace(/^'(.*)'$/, function(e4, t4) {
            return t4;
          });
          return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(r) ? e3 : (o = r.indexOf("//") === 0 ? r : r.indexOf("/") === 0 ? n + r : i + r.replace(/^\.\//, ""), "url(" + JSON.stringify(o) + ")");
        });
      };
    }]);
  });
})(dist);
var danmu = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .danmu-switch{order:6;z-index:26}.xgplayer-skin-xg-player .xgplayer-danmu{display:none;position:absolute;top:0;left:0;right:0;height:100%;overflow:hidden;z-index:9;outline:none}.xgplayer-skin-xg-player .xgplayer-danmu>*{position:absolute;white-space:nowrap;z-index:9}.xgplayer-skin-xg-player .xgplayer-danmu.xgplayer-has-danmu{display:block}.xgplayer-skin-xg-player .xgplayer-panel{outline:none;order:7;width:40px;height:40px;display:inline-block;position:relative;font-family:PingFangSC-Regular;font-size:13px;color:#fffc;z-index:36}.xgplayer-skin-xg-player .xgplayer-panel .xgplayer-panel-icon{cursor:pointer;position:absolute;margin-left:5px;top:10px}.xgplayer-skin-xg-player .xgplayer-panel-active{display:block!important;bottom:30px}.xgplayer-skin-xg-player .xgplayer-panel-slider{z-index:36;display:none;position:absolute;width:230px;height:230px;background:rgba(0,0,0,.54);border-radius:1px;padding:10px 20px;outline:none;left:-115px;bottom:40px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-hidemode{padding-bottom:10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-hidemode-radio li{display:inline;list-style:none;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-hidemode ul{display:flex;justify-content:space-around}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-hidemode li{margin:0 12px;font-size:11px;color:#aaa}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-hidemode-font{margin-bottom:10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency{display:block;margin-top:10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-line::-moz-focus-outer{border:0!important}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-transparency .xgplayer-transparency-bar::-moz-range-progress{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(to right,#f85959,#f85959 100%,#aaa)}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea{display:block;margin-top:8px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-control{display:inline-block}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-control-up{width:150px;margin-left:10px;display:-moz-box;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-control-down{position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-control-down-dots{display:-webkit-box;display:-ms-flexbox;display:flex;width:150px;margin-left:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-twoquarters,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-threequarters{margin-left:-6px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea-full{margin-right:3px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-line::-moz-focus-outer{border:0!important}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-zero-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-onequarters-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-twoquarters-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-threequarters-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-showarea .xgplayer-showarea-full-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed{display:block}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed-control{display:inline-block}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed-control-up{width:150px;margin-left:10px;display:-moz-box;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed-control-down{position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed-control-down-dots{display:-webkit-box;display:-ms-flexbox;display:flex;width:150px;margin-left:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-line::-moz-focus-outer{border:0!important}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-small-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-middle-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmuspeed .xgplayer-danmuspeed-large-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont{display:block}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont-name{display:inline-block;position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont-control{display:inline-block}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont-control-up{width:150px;margin-left:10px;display:-moz-box;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:#aaa}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont-control-down{position:relative;top:-10px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont-control-down-dots{display:-webkit-box;display:-ms-flexbox;display:flex;width:150px;margin-left:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;width:150px;height:4px;background:#aaa;border-radius:4px;border-style:none;margin-left:10px;margin-top:-2px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-line::-moz-focus-outer{border:0!important}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-webkit-slider-runnable-track{outline:none;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-moz-range-track{outline:none;background-color:#aaa;border-color:transparent;cursor:pointer;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-color::-ms-track{outline:none;background-color:#aaa;color:transparent;border-color:transparent;width:150px;height:4px;border-radius:4px}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-webkit-slider-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;margin-top:-4px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-moz-range-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:0;width:0;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-bar::-ms-thumb{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:6px solid #f85959;height:6px;width:6px;border-radius:6px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-small-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-middle-dot,.xgplayer-skin-xg-player .xgplayer-panel-slider .xgplayer-danmufont .xgplayer-danmufont-large-dot{width:3px;height:3px;border:3px solid #aaa;border-radius:50%;background-color:#aaa;position:relative;top:16px;z-index:-1}\n")();
var miniplayer = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-miniplayer{order:9;position:relative;outline:none;display:block;cursor:pointer;height:20px;top:10px}.xgplayer-skin-xg-player .xgplayer-miniplayer .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;line-height:20px;height:20px;color:#fffc}.xgplayer-skin-xg-player .xgplayer-miniplayer .name span{width:80px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-xg-player .xgplayer-miniplayer-lay{position:absolute;top:26px;left:0;width:100%;height:100%;z-index:130;cursor:pointer;background-color:transparent;display:none}.xgplayer-skin-xg-player .xgplayer-miniplayer-lay div{width:100%;height:100%}.xgplayer-skin-xg-player .xgplayer-miniplayer-drag{cursor:move;position:absolute;top:0;left:0;width:100%;height:26px;line-height:26px;background-image:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,0));z-index:130;display:none}.xgplayer-skin-xg-player .xgplayer-miniplayer-drag .drag-handle{width:100%}.xgplayer-skin-xg-player.xgplayer-miniplayer-active{position:fixed;right:0;bottom:200px;width:320px;height:180px;z-index:110}.xgplayer-skin-xg-player.xgplayer-miniplayer-active .xgplayer-controls,.xgplayer-skin-xg-player.xgplayer-miniplayer-active .xgplayer-danmu{display:none}.xgplayer-skin-xg-player.xgplayer-miniplayer-active .xgplayer-miniplayer-lay{display:block}.xgplayer-skin-xg-player.xgplayer-miniplayer-active .xgplayer-miniplayer-drag{display:flex}.xgplayer-skin-xg-player.xgplayer-inactive .xgplayer-miniplayer-drag{display:none}.lang-is-jp .xgplayer-miniplayer .name span{width:70px;height:20px}\n")();
var playNext = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-playnext{position:relative;order:1;display:block;cursor:pointer;top:-2px}.xgplayer-skin-xg-player .xgplayer-playnext .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-playnext .xgplayer-tips .xgplayer-tip-playnext{display:block}.xgplayer-skin-xg-player .xgplayer-playnext:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-playnext:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-playnext .xgplayer-tips{margin-left:-25px}.xgplayer-lang-is-jp .xgplayer-playnext .xgplayer-tips{margin-left:-38px}.xgplayer-skin-xg-player.xgplayer-playnext-inactive .xgplayer-playnext{display:none}\n")();
var rotate = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-rotate{position:relative;order:10;display:block;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-rotate .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-xg-player .xgplayer-rotate .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-rotate .xgplayer-tips{margin-left:-22px}.xgplayer-skin-xg-player .xgplayer-rotate .xgplayer-tips .xgplayer-tip-rotate{display:block}.xgplayer-skin-xg-player .xgplayer-rotate:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-rotate:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-rotate .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-rotate .xgplayer-tips{margin-left:-38px}\n")();
var reload = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-reload{position:relative;order:1;display:block;width:40px;height:40px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-reload .xgplayer-icon{margin-top:7px;width:26px}.xgplayer-skin-xg-player .xgplayer-reload .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-reload .xgplayer-tips{margin-left:-22px}.xgplayer-skin-xg-player .xgplayer-reload .xgplayer-tips .xgplayer-tip-reload{display:block}.xgplayer-skin-xg-player .xgplayer-reload:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-reload:hover .xgplayer-tips{display:block}.xgplayer-lang-is-en .xgplayer-reload .xgplayer-tips{margin-left:-26px}.xgplayer-lang-is-jp .xgplayer-reload .xgplayer-tips{margin-left:-38px}\n")();
var textTrack = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-texttrack{order:7;width:60px;height:150px;z-index:18;position:relative;outline:none;display:none;cursor:default;margin-top:-119px}.xgplayer-skin-xg-player .xgplayer-texttrack ul{display:none;list-style:none;min-width:78px;background:rgba(0,0,0,.54);border-radius:1px;position:absolute;bottom:30px;text-align:center;white-space:nowrap;left:50%;transform:translate(-50%);width:fit-content;z-index:26;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-texttrack ul li{opacity:.7;font-family:PingFangSC-Regular;font-size:11px;color:#fffc;width:fit-content;margin:auto;padding:6px 13px}.xgplayer-skin-xg-player .xgplayer-texttrack ul li.selected,.xgplayer-skin-xg-player .xgplayer-texttrack ul li:hover{color:#fff;opacity:1}.xgplayer-skin-xg-player .xgplayer-texttrack .name{text-align:center;font-family:PingFangSC-Regular;font-size:13px;cursor:pointer;color:#fffc;position:absolute;bottom:0;width:60px;height:20px;line-height:20px;background:rgba(0,0,0,.38);border-radius:10px;display:inline-block;vertical-align:middle}.xgplayer-skin-xg-player .xgplayer-texttrack.xgplayer-texttrack-hide{display:none}xg-text-track{transition:bottom .3s ease}.xgplayer-skin-xg-player.xgplayer-texttrack-active .xgplayer-texttrack ul,.xgplayer-skin-xg-player.xgplayer-is-texttrack .xgplayer-texttrack{display:block}\n")();
var error = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-error{background:#000;display:none;position:absolute;left:0;top:0;width:100%;height:100%;z-index:125;font-family:PingFangSC-Regular;font-size:14px;color:#fff;text-align:center;line-height:100%;justify-content:center;align-items:center}.xgplayer-skin-xg-player .xgplayer-error .xgplayer-error-refresh{color:#fa1f41;padding:0 3px;cursor:pointer}.xgplayer-skin-xg-player .xgplayer-error .xgplayer-error-text{line-height:18px;margin:auto 6px}.xgplayer-skin-xg-player.xgplayer-is-error .xgplayer-error{display:flex}\n")();
var memoryPlay = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-memoryplay-spot{position:absolute;height:32px;left:10px;bottom:46px;background:rgba(0,0,0,.5);border-radius:32px;line-height:32px;color:#ddd;z-index:15;padding:0 32px 0 16px}.xgplayer-skin-xg-player .xgplayer-memoryplay-spot .xgplayer-lasttime{color:red;font-weight:700}.xgplayer-skin-xg-player .xgplayer-memoryplay-spot .btn-close{position:absolute;width:16px;height:16px;right:10px;top:2px;cursor:pointer;color:#fff;font-size:16px}\n")();
var airplay = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player .xgplayer-airplay{position:relative;order:11;display:block;cursor:pointer;margin-left:5px;margin-right:3px}.xgplayer-skin-xg-player .xgplayer-airplay .xgplayer-icon{margin-top:6px;margin-left:6px}.xgplayer-skin-xg-player .xgplayer-airplay .xgplayer-icon div{position:absolute}.xgplayer-skin-xg-player .xgplayer-airplay .xgplayer-icon .xgplayer-icon-airplay{display:block}.xgplayer-skin-xg-player .xgplayer-airplay .xgplayer-tips{position:absolute;right:0;left:auto}.xgplayer-skin-xg-player .xgplayer-airplay .xgplayer-tips .xgplayer-tip-airplay{display:block}.xgplayer-skin-xg-player .xgplayer-airplay:hover{opacity:.85}.xgplayer-skin-xg-player .xgplayer-airplay:hover .xgplayer-tips{display:block}\n")();
var index = /* @__PURE__ */ (() => ".xgplayer-skin-xg-player{background:#000;width:100%;height:100%;position:relative;user-select:none;-ms-user-select:none}.xgplayer-skin-xg-player *{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.xgplayer-skin-xg-player .xgplayer-none{display:none}.xgplayer-skin-xg-player.xgplayer-rotate-fullscreen{position:absolute;top:0;left:100%;bottom:0;right:0;height:100vw!important;width:100vh!important;transform-origin:top left;transform:rotate(90deg)}.xgplayer-skin-xg-player.xgplayer-is-fullscreen{width:100%!important;height:100%!important;padding-top:0!important;z-index:9999}.xgplayer-skin-xg-player.xgplayer-is-fullscreen.xgplayer-inactive{cursor:none}.xgplayer-skin-xg-player video{width:100%;height:100%;outline:none}.xgplayer-skin-xg-player .xgplayer-none{display:none}@keyframes loadingRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loadingDashOffset{0%{stroke-dashoffset:236}to{stroke-dashoffset:0}}.xgplayer-skin-xg-player .xgplayer-controls{display:flex;position:absolute;bottom:0;left:0;right:0;height:40px;background-image:none;z-index:10}.xgplayer-skin-xg-player.xgplayer-nostart .xgplayer-controls,.xgplayer-skin-xg-player.xgplayer-no-controls .xgplayer-controls,.xgplayer-skin-xg-player.xgplayer-inactive .xgplayer-controls,.xgplayer-skin-xg-player.xgplayer-is-live .xgplayer-controls .xgplayer-time,.xgplayer-skin-xg-player.xgplayer-is-live .xgplayer-controls .xgplayer-progress{display:none}.xgplayer-skin-xg-player.xgplayer-is-live .xgplayer-controls .xgplayer-live{display:block}.xgplayer-skin-xg-player .xgplayer-live{display:block;font-size:12px;color:#fff;line-height:40px;order:1}.xgplayer-skin-xg-player .xgplayer-icon{display:block;width:40px;height:40px;overflow:hidden;fill:#fff}.xgplayer-skin-xg-player .xgplayer-icon svg{position:absolute}.xgplayer-skin-xg-player .xgplayer-tips{background:rgba(0,0,0,.54);border-radius:1px;display:none;position:absolute;font-family:PingFangSC-Regular;font-size:11px;color:#fff;padding:2px 4px;text-align:center;top:-30px;left:50%;margin-left:-16px;width:auto;white-space:nowrap}.xgplayer-skin-xg-player.xgplayer-mobile .xgplayer-tips{display:none!important}.xgplayer-skin-xg-player .xgplayer-screen-container{display:block;width:100%}\n")();
Player.useAll([
  Start,
  Play,
  Progress,
  Volume,
  Pip,
  Flex,
  Download,
  ScreenShot,
  CssFullscreen,
  PlaybackRate,
  Fullscreen
]);
Player.install("xgplayer-skin-xg-player", () => {
});
const _hoisted_1 = { id: "vs" };
const _sfc_main = /* @__PURE__ */ defineComponent({
  __name: "index",
  props: {
    height: {
      type: Number,
      default: 337.5
    },
    width: {
      type: Number,
      default: 600
    },
    controlPlugins: {
      type: Array,
      default: []
    },
    autoplay: {
      type: Boolean,
      default: false
    },
    videoInit: {
      type: Boolean,
      default: true
    },
    screenShot: {
      type: Object,
      default: {
        saveImg: false,
        quality: 0.92,
        type: "image/png",
        format: ".png"
      }
    },
    download: {
      type: Boolean,
      default: false
    },
    cssFullscreen: {
      type: Boolean,
      default: false
    },
    url: {
      type: String,
      default: ""
    },
    poster: {
      type: String,
      default: ""
    },
    playbackRate: {
      type: Array,
      default: [0.5, 0.75, 1, 1.5, 2]
    },
    progressDot: {
      type: Array,
      default: []
    }
  },
  setup(__props) {
    const props = __props;
    const defalutConfig = {
      id: "vs",
      lang: "zh-cn",
      screenShot: {
        saveImg: true,
        quality: 0.92,
        type: "image/png",
        format: ".png"
      }
    };
    onMounted(() => {
      let format2 = props.url.substring(props.url.lastIndexOf(".") + 1).toLowerCase();
      let config = Object.assign({}, toRaw(props), defalutConfig);
      let player;
      if (format2 && format2 === "m3u8") {
        player = new HlsPlayer(config);
      } else {
        player = new Player(config);
      }
      player.once("ready", () => {
        removeClass(document.getElementsByClassName("xgplayer-skin-xg-player")[0], "xgplayer-skin-default");
      });
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1);
    };
  }
});
export { _sfc_main as CjszPlayer };
