shuisheng 2 лет назад
Родитель
Сommit
5e94704196

+ 4 - 0
README.md

@@ -91,6 +91,10 @@ pnpm i billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest bil
 npm run start
 npm run start
 ```
 ```
 
 
+## FAQ
+
+~~不通过 npm 安装 flv.js,因为安装了 flv.js 后,`import flvJs from 'flv.js'` 会导致 vscode 的 ts 错乱。因此直接下载 flv.min.js 使用。~~,应该是我的 vscode 用了 vscode 的 ts 版本(ts 的 5.x 版本),用回工作区(也就是项目里面安装的 ts 的 4.9 的版本)的 ts 版本就没事了
+
 ## 赞助
 ## 赞助
 
 
 [https://live.hsslive.cn/sponsors](https://live.hsslive.cn/sponsors)
 [https://live.hsslive.cn/sponsors](https://live.hsslive.cn/sponsors)

+ 0 - 1
package.json

@@ -39,7 +39,6 @@
     "billd-scss": "^0.0.6",
     "billd-scss": "^0.0.6",
     "billd-utils": "^0.0.12",
     "billd-utils": "^0.0.12",
     "browser-tool": "^1.0.5",
     "browser-tool": "^1.0.5",
-    "flv.js": "^1.6.2",
     "js-cookie": "^3.0.5",
     "js-cookie": "^3.0.5",
     "mediasoup-client": "^3.6.84",
     "mediasoup-client": "^3.6.84",
     "msr": "^1.3.4",
     "msr": "^1.3.4",

+ 0 - 17
pnpm-lock.yaml

@@ -36,7 +36,6 @@ specifiers:
   eslint-plugin-vue: ^8.5.0
   eslint-plugin-vue: ^8.5.0
   eslint-webpack-plugin: ^3.1.1
   eslint-webpack-plugin: ^3.1.1
   file-loader: ^6.2.0
   file-loader: ^6.2.0
-  flv.js: ^1.6.2
   fork-ts-checker-webpack-plugin: ^7.2.6
   fork-ts-checker-webpack-plugin: ^7.2.6
   html-webpack-plugin: ^5.5.0
   html-webpack-plugin: ^5.5.0
   html-webpack-tags-plugin: ^3.0.1
   html-webpack-tags-plugin: ^3.0.1
@@ -89,7 +88,6 @@ dependencies:
   billd-scss: 0.0.6
   billd-scss: 0.0.6
   billd-utils: 0.0.12_typescript@4.9.5
   billd-utils: 0.0.12_typescript@4.9.5
   browser-tool: 1.0.5
   browser-tool: 1.0.5
-  flv.js: 1.6.2
   js-cookie: 3.0.5
   js-cookie: 3.0.5
   mediasoup-client: 3.6.84
   mediasoup-client: 3.6.84
   msr: 1.3.4
   msr: 1.3.4
@@ -4653,10 +4651,6 @@ packages:
       is-symbol: 1.0.4
       is-symbol: 1.0.4
     dev: true
     dev: true
 
 
-  /es6-promise/4.2.8:
-    resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
-    dev: false
-
   /esbuild-android-64/0.15.18:
   /esbuild-android-64/0.15.18:
     resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
     resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
     engines: {node: '>=12'}
     engines: {node: '>=12'}
@@ -5469,13 +5463,6 @@ packages:
   /flatted/3.2.7:
   /flatted/3.2.7:
     resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
     resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
 
 
-  /flv.js/1.6.2:
-    resolution: {integrity: sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==}
-    dependencies:
-      es6-promise: 4.2.8
-      webworkify-webpack: 2.1.5
-    dev: false
-
   /follow-redirects/1.15.2:
   /follow-redirects/1.15.2:
     resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
     resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
     engines: {node: '>=4.0'}
     engines: {node: '>=4.0'}
@@ -10336,10 +10323,6 @@ packages:
     resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
     resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
     engines: {node: '>=0.8.0'}
     engines: {node: '>=0.8.0'}
 
 
-  /webworkify-webpack/2.1.5:
-    resolution: {integrity: sha512-2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw==}
-    dev: false
-
   /which-boxed-primitive/1.0.2:
   /which-boxed-primitive/1.0.2:
     resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
     resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
     dependencies:
     dependencies:

+ 8106 - 0
public/flv.min.js

@@ -0,0 +1,8106 @@
+!(function (e, t) {
+  'object' == typeof exports && 'object' == typeof module
+    ? (module.exports = t())
+    : 'function' == typeof define && define.amd
+    ? define([], t)
+    : 'object' == typeof exports
+    ? (exports.flvjs = t())
+    : (e.flvjs = t());
+})(self, function () {
+  return (function () {
+    var e = {
+        264: function (e, t, i) {
+          /*!
+           * @overview es6-promise - a tiny implementation of Promises/A+.
+           * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+           * @license   Licensed under MIT license
+           *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+           * @version   v4.2.8+1e68dce6
+           */
+          e.exports = (function () {
+            'use strict';
+            function e(e) {
+              var t = typeof e;
+              return null !== e && ('object' === t || 'function' === t);
+            }
+            function t(e) {
+              return 'function' == typeof e;
+            }
+            var n = Array.isArray
+                ? Array.isArray
+                : function (e) {
+                    return (
+                      '[object Array]' === Object.prototype.toString.call(e)
+                    );
+                  },
+              r = 0,
+              s = void 0,
+              o = void 0,
+              a = function (e, t) {
+                (b[r] = e), (b[r + 1] = t), 2 === (r += 2) && (o ? o(E) : A());
+              };
+            function h(e) {
+              o = e;
+            }
+            function u(e) {
+              a = e;
+            }
+            var l = 'undefined' != typeof window ? window : void 0,
+              d = l || {},
+              c = d.MutationObserver || d.WebKitMutationObserver,
+              f =
+                'undefined' == typeof self &&
+                'undefined' != typeof process &&
+                '[object process]' === {}.toString.call(process),
+              _ =
+                'undefined' != typeof Uint8ClampedArray &&
+                'undefined' != typeof importScripts &&
+                'undefined' != typeof MessageChannel;
+            function p() {
+              return function () {
+                return process.nextTick(E);
+              };
+            }
+            function m() {
+              return void 0 !== s
+                ? function () {
+                    s(E);
+                  }
+                : y();
+            }
+            function g() {
+              var e = 0,
+                t = new c(E),
+                i = document.createTextNode('');
+              return (
+                t.observe(i, { characterData: !0 }),
+                function () {
+                  i.data = e = ++e % 2;
+                }
+              );
+            }
+            function v() {
+              var e = new MessageChannel();
+              return (
+                (e.port1.onmessage = E),
+                function () {
+                  return e.port2.postMessage(0);
+                }
+              );
+            }
+            function y() {
+              var e = setTimeout;
+              return function () {
+                return e(E, 1);
+              };
+            }
+            var b = new Array(1e3);
+            function E() {
+              for (var e = 0; e < r; e += 2)
+                (0, b[e])(b[e + 1]), (b[e] = void 0), (b[e + 1] = void 0);
+              r = 0;
+            }
+            function S() {
+              try {
+                var e = Function('return this')().require('vertx');
+                return (s = e.runOnLoop || e.runOnContext), m();
+              } catch (e) {
+                return y();
+              }
+            }
+            var A = void 0;
+            function L(e, t) {
+              var i = this,
+                n = new this.constructor(O);
+              void 0 === n[w] && W(n);
+              var r = i._state;
+              if (r) {
+                var s = arguments[r - 1];
+                a(function () {
+                  return V(r, n, s, i._result);
+                });
+              } else G(i, n, e, t);
+              return n;
+            }
+            function R(e) {
+              var t = this;
+              if (e && 'object' == typeof e && e.constructor === t) return e;
+              var i = new t(O);
+              return U(i, e), i;
+            }
+            A = f ? p() : c ? g() : _ ? v() : void 0 === l ? S() : y();
+            var w = Math.random().toString(36).substring(2);
+            function O() {}
+            var T = void 0,
+              C = 1,
+              k = 2;
+            function D() {
+              return new TypeError('You cannot resolve a promise with itself');
+            }
+            function I() {
+              return new TypeError(
+                'A promises callback cannot return that same promise.'
+              );
+            }
+            function M(e, t, i, n) {
+              try {
+                e.call(t, i, n);
+              } catch (e) {
+                return e;
+              }
+            }
+            function B(e, t, i) {
+              a(function (e) {
+                var n = !1,
+                  r = M(
+                    i,
+                    t,
+                    function (i) {
+                      n || ((n = !0), t !== i ? U(e, i) : Z(e, i));
+                    },
+                    function (t) {
+                      n || ((n = !0), F(e, t));
+                    },
+                    'Settle: ' + (e._label || ' unknown promise')
+                  );
+                !n && r && ((n = !0), F(e, r));
+              }, e);
+            }
+            function x(e, t) {
+              t._state === C
+                ? Z(e, t._result)
+                : t._state === k
+                ? F(e, t._result)
+                : G(
+                    t,
+                    void 0,
+                    function (t) {
+                      return U(e, t);
+                    },
+                    function (t) {
+                      return F(e, t);
+                    }
+                  );
+            }
+            function P(e, i, n) {
+              i.constructor === e.constructor &&
+              n === L &&
+              i.constructor.resolve === R
+                ? x(e, i)
+                : void 0 === n
+                ? Z(e, i)
+                : t(n)
+                ? B(e, i, n)
+                : Z(e, i);
+            }
+            function U(t, i) {
+              if (t === i) F(t, D());
+              else if (e(i)) {
+                var n = void 0;
+                try {
+                  n = i.then;
+                } catch (e) {
+                  return void F(t, e);
+                }
+                P(t, i, n);
+              } else Z(t, i);
+            }
+            function N(e) {
+              e._onerror && e._onerror(e._result), j(e);
+            }
+            function Z(e, t) {
+              e._state === T &&
+                ((e._result = t),
+                (e._state = C),
+                0 !== e._subscribers.length && a(j, e));
+            }
+            function F(e, t) {
+              e._state === T && ((e._state = k), (e._result = t), a(N, e));
+            }
+            function G(e, t, i, n) {
+              var r = e._subscribers,
+                s = r.length;
+              (e._onerror = null),
+                (r[s] = t),
+                (r[s + C] = i),
+                (r[s + k] = n),
+                0 === s && e._state && a(j, e);
+            }
+            function j(e) {
+              var t = e._subscribers,
+                i = e._state;
+              if (0 !== t.length) {
+                for (
+                  var n = void 0, r = void 0, s = e._result, o = 0;
+                  o < t.length;
+                  o += 3
+                )
+                  (n = t[o]), (r = t[o + i]), n ? V(i, n, r, s) : r(s);
+                e._subscribers.length = 0;
+              }
+            }
+            function V(e, i, n, r) {
+              var s = t(n),
+                o = void 0,
+                a = void 0,
+                h = !0;
+              if (s) {
+                try {
+                  o = n(r);
+                } catch (e) {
+                  (h = !1), (a = e);
+                }
+                if (i === o) return void F(i, I());
+              } else o = r;
+              i._state !== T ||
+                (s && h
+                  ? U(i, o)
+                  : !1 === h
+                  ? F(i, a)
+                  : e === C
+                  ? Z(i, o)
+                  : e === k && F(i, o));
+            }
+            function z(e, t) {
+              try {
+                t(
+                  function (t) {
+                    U(e, t);
+                  },
+                  function (t) {
+                    F(e, t);
+                  }
+                );
+              } catch (t) {
+                F(e, t);
+              }
+            }
+            var K = 0;
+            function H() {
+              return K++;
+            }
+            function W(e) {
+              (e[w] = K++),
+                (e._state = void 0),
+                (e._result = void 0),
+                (e._subscribers = []);
+            }
+            function q() {
+              return new Error('Array Methods must be provided an Array');
+            }
+            var Y = (function () {
+              function e(e, t) {
+                (this._instanceConstructor = e),
+                  (this.promise = new e(O)),
+                  this.promise[w] || W(this.promise),
+                  n(t)
+                    ? ((this.length = t.length),
+                      (this._remaining = t.length),
+                      (this._result = new Array(this.length)),
+                      0 === this.length
+                        ? Z(this.promise, this._result)
+                        : ((this.length = this.length || 0),
+                          this._enumerate(t),
+                          0 === this._remaining &&
+                            Z(this.promise, this._result)))
+                    : F(this.promise, q());
+              }
+              return (
+                (e.prototype._enumerate = function (e) {
+                  for (var t = 0; this._state === T && t < e.length; t++)
+                    this._eachEntry(e[t], t);
+                }),
+                (e.prototype._eachEntry = function (e, t) {
+                  var i = this._instanceConstructor,
+                    n = i.resolve;
+                  if (n === R) {
+                    var r = void 0,
+                      s = void 0,
+                      o = !1;
+                    try {
+                      r = e.then;
+                    } catch (e) {
+                      (o = !0), (s = e);
+                    }
+                    if (r === L && e._state !== T)
+                      this._settledAt(e._state, t, e._result);
+                    else if ('function' != typeof r)
+                      this._remaining--, (this._result[t] = e);
+                    else if (i === te) {
+                      var a = new i(O);
+                      o ? F(a, s) : P(a, e, r), this._willSettleAt(a, t);
+                    } else
+                      this._willSettleAt(
+                        new i(function (t) {
+                          return t(e);
+                        }),
+                        t
+                      );
+                  } else this._willSettleAt(n(e), t);
+                }),
+                (e.prototype._settledAt = function (e, t, i) {
+                  var n = this.promise;
+                  n._state === T &&
+                    (this._remaining--,
+                    e === k ? F(n, i) : (this._result[t] = i)),
+                    0 === this._remaining && Z(n, this._result);
+                }),
+                (e.prototype._willSettleAt = function (e, t) {
+                  var i = this;
+                  G(
+                    e,
+                    void 0,
+                    function (e) {
+                      return i._settledAt(C, t, e);
+                    },
+                    function (e) {
+                      return i._settledAt(k, t, e);
+                    }
+                  );
+                }),
+                e
+              );
+            })();
+            function X(e) {
+              return new Y(this, e).promise;
+            }
+            function J(e) {
+              var t = this;
+              return n(e)
+                ? new t(function (i, n) {
+                    for (var r = e.length, s = 0; s < r; s++)
+                      t.resolve(e[s]).then(i, n);
+                  })
+                : new t(function (e, t) {
+                    return t(new TypeError('You must pass an array to race.'));
+                  });
+            }
+            function Q(e) {
+              var t = new this(O);
+              return F(t, e), t;
+            }
+            function $() {
+              throw new TypeError(
+                'You must pass a resolver function as the first argument to the promise constructor'
+              );
+            }
+            function ee() {
+              throw new TypeError(
+                "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
+              );
+            }
+            var te = (function () {
+              function e(t) {
+                (this[w] = H()),
+                  (this._result = this._state = void 0),
+                  (this._subscribers = []),
+                  O !== t &&
+                    ('function' != typeof t && $(),
+                    this instanceof e ? z(this, t) : ee());
+              }
+              return (
+                (e.prototype.catch = function (e) {
+                  return this.then(null, e);
+                }),
+                (e.prototype.finally = function (e) {
+                  var i = this,
+                    n = i.constructor;
+                  return t(e)
+                    ? i.then(
+                        function (t) {
+                          return n.resolve(e()).then(function () {
+                            return t;
+                          });
+                        },
+                        function (t) {
+                          return n.resolve(e()).then(function () {
+                            throw t;
+                          });
+                        }
+                      )
+                    : i.then(e, e);
+                }),
+                e
+              );
+            })();
+            function ie() {
+              var e = void 0;
+              if (void 0 !== i.g) e = i.g;
+              else if ('undefined' != typeof self) e = self;
+              else
+                try {
+                  e = Function('return this')();
+                } catch (e) {
+                  throw new Error(
+                    'polyfill failed because global object is unavailable in this environment'
+                  );
+                }
+              var t = e.Promise;
+              if (t) {
+                var n = null;
+                try {
+                  n = Object.prototype.toString.call(t.resolve());
+                } catch (e) {}
+                if ('[object Promise]' === n && !t.cast) return;
+              }
+              e.Promise = te;
+            }
+            return (
+              (te.prototype.then = L),
+              (te.all = X),
+              (te.race = J),
+              (te.resolve = R),
+              (te.reject = Q),
+              (te._setScheduler = h),
+              (te._setAsap = u),
+              (te._asap = a),
+              (te.polyfill = ie),
+              (te.Promise = te),
+              te
+            );
+          })();
+        },
+        716: function (e) {
+          'use strict';
+          var t,
+            i = 'object' == typeof Reflect ? Reflect : null,
+            n =
+              i && 'function' == typeof i.apply
+                ? i.apply
+                : function (e, t, i) {
+                    return Function.prototype.apply.call(e, t, i);
+                  };
+          t =
+            i && 'function' == typeof i.ownKeys
+              ? i.ownKeys
+              : Object.getOwnPropertySymbols
+              ? function (e) {
+                  return Object.getOwnPropertyNames(e).concat(
+                    Object.getOwnPropertySymbols(e)
+                  );
+                }
+              : function (e) {
+                  return Object.getOwnPropertyNames(e);
+                };
+          var r =
+            Number.isNaN ||
+            function (e) {
+              return e != e;
+            };
+          function s() {
+            s.init.call(this);
+          }
+          (e.exports = s),
+            (e.exports.once = function (e, t) {
+              return new Promise(function (i, n) {
+                function r(i) {
+                  e.removeListener(t, s), n(i);
+                }
+                function s() {
+                  'function' == typeof e.removeListener &&
+                    e.removeListener('error', r),
+                    i([].slice.call(arguments));
+                }
+                p(e, t, s, { once: !0 }),
+                  'error' !== t &&
+                    (function (e, t, i) {
+                      'function' == typeof e.on && p(e, 'error', t, i);
+                    })(e, r, { once: !0 });
+              });
+            }),
+            (s.EventEmitter = s),
+            (s.prototype._events = void 0),
+            (s.prototype._eventsCount = 0),
+            (s.prototype._maxListeners = void 0);
+          var o = 10;
+          function a(e) {
+            if ('function' != typeof e)
+              throw new TypeError(
+                'The "listener" argument must be of type Function. Received type ' +
+                  typeof e
+              );
+          }
+          function h(e) {
+            return void 0 === e._maxListeners
+              ? s.defaultMaxListeners
+              : e._maxListeners;
+          }
+          function u(e, t, i, n) {
+            var r, s, o, u;
+            if (
+              (a(i),
+              void 0 === (s = e._events)
+                ? ((s = e._events = Object.create(null)), (e._eventsCount = 0))
+                : (void 0 !== s.newListener &&
+                    (e.emit('newListener', t, i.listener ? i.listener : i),
+                    (s = e._events)),
+                  (o = s[t])),
+              void 0 === o)
+            )
+              (o = s[t] = i), ++e._eventsCount;
+            else if (
+              ('function' == typeof o
+                ? (o = s[t] = n ? [i, o] : [o, i])
+                : n
+                ? o.unshift(i)
+                : o.push(i),
+              (r = h(e)) > 0 && o.length > r && !o.warned)
+            ) {
+              o.warned = !0;
+              var l = new Error(
+                'Possible EventEmitter memory leak detected. ' +
+                  o.length +
+                  ' ' +
+                  String(t) +
+                  ' listeners added. Use emitter.setMaxListeners() to increase limit'
+              );
+              (l.name = 'MaxListenersExceededWarning'),
+                (l.emitter = e),
+                (l.type = t),
+                (l.count = o.length),
+                (u = l),
+                console && console.warn && console.warn(u);
+            }
+            return e;
+          }
+          function l() {
+            if (!this.fired)
+              return (
+                this.target.removeListener(this.type, this.wrapFn),
+                (this.fired = !0),
+                0 === arguments.length
+                  ? this.listener.call(this.target)
+                  : this.listener.apply(this.target, arguments)
+              );
+          }
+          function d(e, t, i) {
+            var n = {
+                fired: !1,
+                wrapFn: void 0,
+                target: e,
+                type: t,
+                listener: i,
+              },
+              r = l.bind(n);
+            return (r.listener = i), (n.wrapFn = r), r;
+          }
+          function c(e, t, i) {
+            var n = e._events;
+            if (void 0 === n) return [];
+            var r = n[t];
+            return void 0 === r
+              ? []
+              : 'function' == typeof r
+              ? i
+                ? [r.listener || r]
+                : [r]
+              : i
+              ? (function (e) {
+                  for (var t = new Array(e.length), i = 0; i < t.length; ++i)
+                    t[i] = e[i].listener || e[i];
+                  return t;
+                })(r)
+              : _(r, r.length);
+          }
+          function f(e) {
+            var t = this._events;
+            if (void 0 !== t) {
+              var i = t[e];
+              if ('function' == typeof i) return 1;
+              if (void 0 !== i) return i.length;
+            }
+            return 0;
+          }
+          function _(e, t) {
+            for (var i = new Array(t), n = 0; n < t; ++n) i[n] = e[n];
+            return i;
+          }
+          function p(e, t, i, n) {
+            if ('function' == typeof e.on) n.once ? e.once(t, i) : e.on(t, i);
+            else {
+              if ('function' != typeof e.addEventListener)
+                throw new TypeError(
+                  'The "emitter" argument must be of type EventEmitter. Received type ' +
+                    typeof e
+                );
+              e.addEventListener(t, function r(s) {
+                n.once && e.removeEventListener(t, r), i(s);
+              });
+            }
+          }
+          Object.defineProperty(s, 'defaultMaxListeners', {
+            enumerable: !0,
+            get: function () {
+              return o;
+            },
+            set: function (e) {
+              if ('number' != typeof e || e < 0 || r(e))
+                throw new RangeError(
+                  'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
+                    e +
+                    '.'
+                );
+              o = e;
+            },
+          }),
+            (s.init = function () {
+              (void 0 !== this._events &&
+                this._events !== Object.getPrototypeOf(this)._events) ||
+                ((this._events = Object.create(null)), (this._eventsCount = 0)),
+                (this._maxListeners = this._maxListeners || void 0);
+            }),
+            (s.prototype.setMaxListeners = function (e) {
+              if ('number' != typeof e || e < 0 || r(e))
+                throw new RangeError(
+                  'The value of "n" is out of range. It must be a non-negative number. Received ' +
+                    e +
+                    '.'
+                );
+              return (this._maxListeners = e), this;
+            }),
+            (s.prototype.getMaxListeners = function () {
+              return h(this);
+            }),
+            (s.prototype.emit = function (e) {
+              for (var t = [], i = 1; i < arguments.length; i++)
+                t.push(arguments[i]);
+              var r = 'error' === e,
+                s = this._events;
+              if (void 0 !== s) r = r && void 0 === s.error;
+              else if (!r) return !1;
+              if (r) {
+                var o;
+                if ((t.length > 0 && (o = t[0]), o instanceof Error)) throw o;
+                var a = new Error(
+                  'Unhandled error.' + (o ? ' (' + o.message + ')' : '')
+                );
+                throw ((a.context = o), a);
+              }
+              var h = s[e];
+              if (void 0 === h) return !1;
+              if ('function' == typeof h) n(h, this, t);
+              else {
+                var u = h.length,
+                  l = _(h, u);
+                for (i = 0; i < u; ++i) n(l[i], this, t);
+              }
+              return !0;
+            }),
+            (s.prototype.addListener = function (e, t) {
+              return u(this, e, t, !1);
+            }),
+            (s.prototype.on = s.prototype.addListener),
+            (s.prototype.prependListener = function (e, t) {
+              return u(this, e, t, !0);
+            }),
+            (s.prototype.once = function (e, t) {
+              return a(t), this.on(e, d(this, e, t)), this;
+            }),
+            (s.prototype.prependOnceListener = function (e, t) {
+              return a(t), this.prependListener(e, d(this, e, t)), this;
+            }),
+            (s.prototype.removeListener = function (e, t) {
+              var i, n, r, s, o;
+              if ((a(t), void 0 === (n = this._events))) return this;
+              if (void 0 === (i = n[e])) return this;
+              if (i === t || i.listener === t)
+                0 == --this._eventsCount
+                  ? (this._events = Object.create(null))
+                  : (delete n[e],
+                    n.removeListener &&
+                      this.emit('removeListener', e, i.listener || t));
+              else if ('function' != typeof i) {
+                for (r = -1, s = i.length - 1; s >= 0; s--)
+                  if (i[s] === t || i[s].listener === t) {
+                    (o = i[s].listener), (r = s);
+                    break;
+                  }
+                if (r < 0) return this;
+                0 === r
+                  ? i.shift()
+                  : (function (e, t) {
+                      for (; t + 1 < e.length; t++) e[t] = e[t + 1];
+                      e.pop();
+                    })(i, r),
+                  1 === i.length && (n[e] = i[0]),
+                  void 0 !== n.removeListener &&
+                    this.emit('removeListener', e, o || t);
+              }
+              return this;
+            }),
+            (s.prototype.off = s.prototype.removeListener),
+            (s.prototype.removeAllListeners = function (e) {
+              var t, i, n;
+              if (void 0 === (i = this._events)) return this;
+              if (void 0 === i.removeListener)
+                return (
+                  0 === arguments.length
+                    ? ((this._events = Object.create(null)),
+                      (this._eventsCount = 0))
+                    : void 0 !== i[e] &&
+                      (0 == --this._eventsCount
+                        ? (this._events = Object.create(null))
+                        : delete i[e]),
+                  this
+                );
+              if (0 === arguments.length) {
+                var r,
+                  s = Object.keys(i);
+                for (n = 0; n < s.length; ++n)
+                  'removeListener' !== (r = s[n]) && this.removeAllListeners(r);
+                return (
+                  this.removeAllListeners('removeListener'),
+                  (this._events = Object.create(null)),
+                  (this._eventsCount = 0),
+                  this
+                );
+              }
+              if ('function' == typeof (t = i[e])) this.removeListener(e, t);
+              else if (void 0 !== t)
+                for (n = t.length - 1; n >= 0; n--)
+                  this.removeListener(e, t[n]);
+              return this;
+            }),
+            (s.prototype.listeners = function (e) {
+              return c(this, e, !0);
+            }),
+            (s.prototype.rawListeners = function (e) {
+              return c(this, e, !1);
+            }),
+            (s.listenerCount = function (e, t) {
+              return 'function' == typeof e.listenerCount
+                ? e.listenerCount(t)
+                : f.call(e, t);
+            }),
+            (s.prototype.listenerCount = f),
+            (s.prototype.eventNames = function () {
+              return this._eventsCount > 0 ? t(this._events) : [];
+            });
+        },
+        397: function (e, t, i) {
+          function n(e) {
+            var t = {};
+            function i(n) {
+              if (t[n]) return t[n].exports;
+              var r = (t[n] = { i: n, l: !1, exports: {} });
+              return (
+                e[n].call(r.exports, r, r.exports, i), (r.l = !0), r.exports
+              );
+            }
+            (i.m = e),
+              (i.c = t),
+              (i.i = function (e) {
+                return e;
+              }),
+              (i.d = function (e, t, n) {
+                i.o(e, t) ||
+                  Object.defineProperty(e, t, {
+                    configurable: !1,
+                    enumerable: !0,
+                    get: n,
+                  });
+              }),
+              (i.r = function (e) {
+                Object.defineProperty(e, '__esModule', { value: !0 });
+              }),
+              (i.n = function (e) {
+                var t =
+                  e && e.__esModule
+                    ? function () {
+                        return e.default;
+                      }
+                    : function () {
+                        return e;
+                      };
+                return i.d(t, 'a', t), t;
+              }),
+              (i.o = function (e, t) {
+                return Object.prototype.hasOwnProperty.call(e, t);
+              }),
+              (i.p = '/'),
+              (i.oe = function (e) {
+                throw (console.error(e), e);
+              });
+            var n = i((i.s = ENTRY_MODULE));
+            return n.default || n;
+          }
+          var r = '[\\.|\\-|\\+|\\w|/|@]+',
+            s = '\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)';
+          function o(e) {
+            return (e + '').replace(/[.?*+^$[\]\\(){}|-]/g, '\\$&');
+          }
+          function a(e, t, n) {
+            var a = {};
+            a[n] = [];
+            var h = t.toString(),
+              u = h.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);
+            if (!u) return a;
+            for (
+              var l, d = u[1], c = new RegExp('(\\\\n|\\W)' + o(d) + s, 'g');
+              (l = c.exec(h));
+
+            )
+              'dll-reference' !== l[3] && a[n].push(l[3]);
+            for (
+              c = new RegExp(
+                '\\(' + o(d) + '\\("(dll-reference\\s(' + r + '))"\\)\\)' + s,
+                'g'
+              );
+              (l = c.exec(h));
+
+            )
+              e[l[2]] || (a[n].push(l[1]), (e[l[2]] = i(l[1]).m)),
+                (a[l[2]] = a[l[2]] || []),
+                a[l[2]].push(l[4]);
+            for (var f, _ = Object.keys(a), p = 0; p < _.length; p++)
+              for (var m = 0; m < a[_[p]].length; m++)
+                (f = a[_[p]][m]), isNaN(1 * f) || (a[_[p]][m] = 1 * a[_[p]][m]);
+            return a;
+          }
+          function h(e) {
+            return Object.keys(e).reduce(function (t, i) {
+              return t || e[i].length > 0;
+            }, !1);
+          }
+          e.exports = function (e, t) {
+            t = t || {};
+            var r = { main: i.m },
+              s = t.all
+                ? { main: Object.keys(r.main) }
+                : (function (e, t) {
+                    for (
+                      var i = { main: [t] }, n = { main: [] }, r = { main: {} };
+                      h(i);
+
+                    )
+                      for (var s = Object.keys(i), o = 0; o < s.length; o++) {
+                        var u = s[o],
+                          l = i[u].pop();
+                        if (((r[u] = r[u] || {}), !r[u][l] && e[u][l])) {
+                          (r[u][l] = !0), (n[u] = n[u] || []), n[u].push(l);
+                          for (
+                            var d = a(e, e[u][l], u), c = Object.keys(d), f = 0;
+                            f < c.length;
+                            f++
+                          )
+                            (i[c[f]] = i[c[f]] || []),
+                              (i[c[f]] = i[c[f]].concat(d[c[f]]));
+                        }
+                      }
+                    return n;
+                  })(r, e),
+              o = '';
+            Object.keys(s)
+              .filter(function (e) {
+                return 'main' !== e;
+              })
+              .forEach(function (e) {
+                for (var t = 0; s[e][t]; ) t++;
+                s[e].push(t),
+                  (r[e][t] =
+                    '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'),
+                  (o =
+                    o +
+                    'var ' +
+                    e +
+                    ' = (' +
+                    n.toString().replace('ENTRY_MODULE', JSON.stringify(t)) +
+                    ')({' +
+                    s[e]
+                      .map(function (t) {
+                        return JSON.stringify(t) + ': ' + r[e][t].toString();
+                      })
+                      .join(',') +
+                    '});\n');
+              }),
+              (o =
+                o +
+                'new ((' +
+                n.toString().replace('ENTRY_MODULE', JSON.stringify(e)) +
+                ')({' +
+                s.main
+                  .map(function (e) {
+                    return JSON.stringify(e) + ': ' + r.main[e].toString();
+                  })
+                  .join(',') +
+                '}))(self);');
+            var u = new window.Blob([o], { type: 'text/javascript' });
+            if (t.bare) return u;
+            var l = (
+                window.URL ||
+                window.webkitURL ||
+                window.mozURL ||
+                window.msURL
+              ).createObjectURL(u),
+              d = new window.Worker(l);
+            return (d.objectURL = l), d;
+          };
+        },
+        118: function (e, t) {
+          'use strict';
+          var i = (function () {
+            function e() {
+              (this.mimeType = null),
+                (this.duration = null),
+                (this.hasAudio = null),
+                (this.hasVideo = null),
+                (this.audioCodec = null),
+                (this.videoCodec = null),
+                (this.audioDataRate = null),
+                (this.videoDataRate = null),
+                (this.audioSampleRate = null),
+                (this.audioChannelCount = null),
+                (this.width = null),
+                (this.height = null),
+                (this.fps = null),
+                (this.profile = null),
+                (this.level = null),
+                (this.refFrames = null),
+                (this.chromaFormat = null),
+                (this.sarNum = null),
+                (this.sarDen = null),
+                (this.metadata = null),
+                (this.segments = null),
+                (this.segmentCount = null),
+                (this.hasKeyframesIndex = null),
+                (this.keyframesIndex = null);
+            }
+            return (
+              (e.prototype.isComplete = function () {
+                var e =
+                    !1 === this.hasAudio ||
+                    (!0 === this.hasAudio &&
+                      null != this.audioCodec &&
+                      null != this.audioSampleRate &&
+                      null != this.audioChannelCount),
+                  t =
+                    !1 === this.hasVideo ||
+                    (!0 === this.hasVideo &&
+                      null != this.videoCodec &&
+                      null != this.width &&
+                      null != this.height &&
+                      null != this.fps &&
+                      null != this.profile &&
+                      null != this.level &&
+                      null != this.refFrames &&
+                      null != this.chromaFormat &&
+                      null != this.sarNum &&
+                      null != this.sarDen);
+                return (
+                  null != this.mimeType &&
+                  null != this.duration &&
+                  null != this.metadata &&
+                  null != this.hasKeyframesIndex &&
+                  e &&
+                  t
+                );
+              }),
+              (e.prototype.isSeekable = function () {
+                return !0 === this.hasKeyframesIndex;
+              }),
+              (e.prototype.getNearestKeyframe = function (e) {
+                if (null == this.keyframesIndex) return null;
+                var t = this.keyframesIndex,
+                  i = this._search(t.times, e);
+                return {
+                  index: i,
+                  milliseconds: t.times[i],
+                  fileposition: t.filepositions[i],
+                };
+              }),
+              (e.prototype._search = function (e, t) {
+                var i = 0,
+                  n = e.length - 1,
+                  r = 0,
+                  s = 0,
+                  o = n;
+                for (t < e[0] && ((i = 0), (s = o + 1)); s <= o; ) {
+                  if (
+                    (r = s + Math.floor((o - s) / 2)) === n ||
+                    (t >= e[r] && t < e[r + 1])
+                  ) {
+                    i = r;
+                    break;
+                  }
+                  e[r] < t ? (s = r + 1) : (o = r - 1);
+                }
+                return i;
+              }),
+              e
+            );
+          })();
+          t.Z = i;
+        },
+        51: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            Wk: function () {
+              return n;
+            },
+            Yy: function () {
+              return r;
+            },
+            Vn: function () {
+              return s;
+            },
+            J1: function () {
+              return o;
+            },
+          });
+          var n = function (e, t, i, n, r) {
+              (this.dts = e),
+                (this.pts = t),
+                (this.duration = i),
+                (this.originalDts = n),
+                (this.isSyncPoint = r),
+                (this.fileposition = null);
+            },
+            r = (function () {
+              function e() {
+                (this.beginDts = 0),
+                  (this.endDts = 0),
+                  (this.beginPts = 0),
+                  (this.endPts = 0),
+                  (this.originalBeginDts = 0),
+                  (this.originalEndDts = 0),
+                  (this.syncPoints = []),
+                  (this.firstSample = null),
+                  (this.lastSample = null);
+              }
+              return (
+                (e.prototype.appendSyncPoint = function (e) {
+                  (e.isSyncPoint = !0), this.syncPoints.push(e);
+                }),
+                e
+              );
+            })(),
+            s = (function () {
+              function e() {
+                this._list = [];
+              }
+              return (
+                (e.prototype.clear = function () {
+                  this._list = [];
+                }),
+                (e.prototype.appendArray = function (e) {
+                  var t = this._list;
+                  0 !== e.length &&
+                    (t.length > 0 &&
+                      e[0].originalDts < t[t.length - 1].originalDts &&
+                      this.clear(),
+                    Array.prototype.push.apply(t, e));
+                }),
+                (e.prototype.getLastSyncPointBeforeDts = function (e) {
+                  if (0 == this._list.length) return null;
+                  var t = this._list,
+                    i = 0,
+                    n = t.length - 1,
+                    r = 0,
+                    s = 0,
+                    o = n;
+                  for (e < t[0].dts && ((i = 0), (s = o + 1)); s <= o; ) {
+                    if (
+                      (r = s + Math.floor((o - s) / 2)) === n ||
+                      (e >= t[r].dts && e < t[r + 1].dts)
+                    ) {
+                      i = r;
+                      break;
+                    }
+                    t[r].dts < e ? (s = r + 1) : (o = r - 1);
+                  }
+                  return this._list[i];
+                }),
+                e
+              );
+            })(),
+            o = (function () {
+              function e(e) {
+                (this._type = e),
+                  (this._list = []),
+                  (this._lastAppendLocation = -1);
+              }
+              return (
+                Object.defineProperty(e.prototype, 'type', {
+                  get: function () {
+                    return this._type;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'length', {
+                  get: function () {
+                    return this._list.length;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype.isEmpty = function () {
+                  return 0 === this._list.length;
+                }),
+                (e.prototype.clear = function () {
+                  (this._list = []), (this._lastAppendLocation = -1);
+                }),
+                (e.prototype._searchNearestSegmentBefore = function (e) {
+                  var t = this._list;
+                  if (0 === t.length) return -2;
+                  var i = t.length - 1,
+                    n = 0,
+                    r = 0,
+                    s = i,
+                    o = 0;
+                  if (e < t[0].originalBeginDts) return (o = -1);
+                  for (; r <= s; ) {
+                    if (
+                      (n = r + Math.floor((s - r) / 2)) === i ||
+                      (e > t[n].lastSample.originalDts &&
+                        e < t[n + 1].originalBeginDts)
+                    ) {
+                      o = n;
+                      break;
+                    }
+                    t[n].originalBeginDts < e ? (r = n + 1) : (s = n - 1);
+                  }
+                  return o;
+                }),
+                (e.prototype._searchNearestSegmentAfter = function (e) {
+                  return this._searchNearestSegmentBefore(e) + 1;
+                }),
+                (e.prototype.append = function (e) {
+                  var t = this._list,
+                    i = e,
+                    n = this._lastAppendLocation,
+                    r = 0;
+                  -1 !== n &&
+                  n < t.length &&
+                  i.originalBeginDts >= t[n].lastSample.originalDts &&
+                  (n === t.length - 1 ||
+                    (n < t.length - 1 &&
+                      i.originalBeginDts < t[n + 1].originalBeginDts))
+                    ? (r = n + 1)
+                    : t.length > 0 &&
+                      (r =
+                        this._searchNearestSegmentBefore(i.originalBeginDts) +
+                        1),
+                    (this._lastAppendLocation = r),
+                    this._list.splice(r, 0, i);
+                }),
+                (e.prototype.getLastSegmentBefore = function (e) {
+                  var t = this._searchNearestSegmentBefore(e);
+                  return t >= 0 ? this._list[t] : null;
+                }),
+                (e.prototype.getLastSampleBefore = function (e) {
+                  var t = this.getLastSegmentBefore(e);
+                  return null != t ? t.lastSample : null;
+                }),
+                (e.prototype.getLastSyncPointBefore = function (e) {
+                  for (
+                    var t = this._searchNearestSegmentBefore(e),
+                      i = this._list[t].syncPoints;
+                    0 === i.length && t > 0;
+
+                  )
+                    t--, (i = this._list[t].syncPoints);
+                  return i.length > 0 ? i[i.length - 1] : null;
+                }),
+                e
+              );
+            })();
+        },
+        949: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            Z: function () {
+              return R;
+            },
+          });
+          var n = i(716),
+            r = i.n(n),
+            s = i(300),
+            o = i(538),
+            a = i(118);
+          function h(e, t, i) {
+            var n = e;
+            if (t + i < n.length) {
+              for (; i--; ) if (128 != (192 & n[++t])) return !1;
+              return !0;
+            }
+            return !1;
+          }
+          var u,
+            l = function (e) {
+              for (var t = [], i = e, n = 0, r = e.length; n < r; )
+                if (i[n] < 128) t.push(String.fromCharCode(i[n])), ++n;
+                else {
+                  if (i[n] < 192);
+                  else if (i[n] < 224) {
+                    if (h(i, n, 1))
+                      if ((s = ((31 & i[n]) << 6) | (63 & i[n + 1])) >= 128) {
+                        t.push(String.fromCharCode(65535 & s)), (n += 2);
+                        continue;
+                      }
+                  } else if (i[n] < 240) {
+                    if (h(i, n, 2))
+                      if (
+                        (s =
+                          ((15 & i[n]) << 12) |
+                          ((63 & i[n + 1]) << 6) |
+                          (63 & i[n + 2])) >= 2048 &&
+                        55296 != (63488 & s)
+                      ) {
+                        t.push(String.fromCharCode(65535 & s)), (n += 3);
+                        continue;
+                      }
+                  } else if (i[n] < 248) {
+                    var s;
+                    if (h(i, n, 3))
+                      if (
+                        (s =
+                          ((7 & i[n]) << 18) |
+                          ((63 & i[n + 1]) << 12) |
+                          ((63 & i[n + 2]) << 6) |
+                          (63 & i[n + 3])) > 65536 &&
+                        s < 1114112
+                      ) {
+                        (s -= 65536),
+                          t.push(String.fromCharCode((s >>> 10) | 55296)),
+                          t.push(String.fromCharCode((1023 & s) | 56320)),
+                          (n += 4);
+                        continue;
+                      }
+                  }
+                  t.push(String.fromCharCode(65533)), ++n;
+                }
+              return t.join('');
+            },
+            d = i(29),
+            c =
+              ((u = new ArrayBuffer(2)),
+              new DataView(u).setInt16(0, 256, !0),
+              256 === new Int16Array(u)[0]),
+            f = (function () {
+              function e() {}
+              return (
+                (e.parseScriptData = function (t, i, n) {
+                  var r = {};
+                  try {
+                    var o = e.parseValue(t, i, n),
+                      a = e.parseValue(t, i + o.size, n - o.size);
+                    r[o.data] = a.data;
+                  } catch (e) {
+                    s.Z.e('AMF', e.toString());
+                  }
+                  return r;
+                }),
+                (e.parseObject = function (t, i, n) {
+                  if (n < 3)
+                    throw new d.rT(
+                      'Data not enough when parse ScriptDataObject'
+                    );
+                  var r = e.parseString(t, i, n),
+                    s = e.parseValue(t, i + r.size, n - r.size),
+                    o = s.objectEnd;
+                  return {
+                    data: { name: r.data, value: s.data },
+                    size: r.size + s.size,
+                    objectEnd: o,
+                  };
+                }),
+                (e.parseVariable = function (t, i, n) {
+                  return e.parseObject(t, i, n);
+                }),
+                (e.parseString = function (e, t, i) {
+                  if (i < 2)
+                    throw new d.rT('Data not enough when parse String');
+                  var n = new DataView(e, t, i).getUint16(0, !c);
+                  return {
+                    data: n > 0 ? l(new Uint8Array(e, t + 2, n)) : '',
+                    size: 2 + n,
+                  };
+                }),
+                (e.parseLongString = function (e, t, i) {
+                  if (i < 4)
+                    throw new d.rT('Data not enough when parse LongString');
+                  var n = new DataView(e, t, i).getUint32(0, !c);
+                  return {
+                    data: n > 0 ? l(new Uint8Array(e, t + 4, n)) : '',
+                    size: 4 + n,
+                  };
+                }),
+                (e.parseDate = function (e, t, i) {
+                  if (i < 10)
+                    throw new d.rT('Data size invalid when parse Date');
+                  var n = new DataView(e, t, i),
+                    r = n.getFloat64(0, !c),
+                    s = n.getInt16(8, !c);
+                  return { data: new Date((r += 60 * s * 1e3)), size: 10 };
+                }),
+                (e.parseValue = function (t, i, n) {
+                  if (n < 1) throw new d.rT('Data not enough when parse Value');
+                  var r,
+                    o = new DataView(t, i, n),
+                    a = 1,
+                    h = o.getUint8(0),
+                    u = !1;
+                  try {
+                    switch (h) {
+                      case 0:
+                        (r = o.getFloat64(1, !c)), (a += 8);
+                        break;
+                      case 1:
+                        (r = !!o.getUint8(1)), (a += 1);
+                        break;
+                      case 2:
+                        var l = e.parseString(t, i + 1, n - 1);
+                        (r = l.data), (a += l.size);
+                        break;
+                      case 3:
+                        r = {};
+                        var f = 0;
+                        for (
+                          9 == (16777215 & o.getUint32(n - 4, !c)) && (f = 3);
+                          a < n - 4;
+
+                        ) {
+                          var _ = e.parseObject(t, i + a, n - a - f);
+                          if (_.objectEnd) break;
+                          (r[_.data.name] = _.data.value), (a += _.size);
+                        }
+                        if (a <= n - 3)
+                          9 === (16777215 & o.getUint32(a - 1, !c)) && (a += 3);
+                        break;
+                      case 8:
+                        (r = {}), (a += 4);
+                        f = 0;
+                        for (
+                          9 == (16777215 & o.getUint32(n - 4, !c)) && (f = 3);
+                          a < n - 8;
+
+                        ) {
+                          var p = e.parseVariable(t, i + a, n - a - f);
+                          if (p.objectEnd) break;
+                          (r[p.data.name] = p.data.value), (a += p.size);
+                        }
+                        if (a <= n - 3)
+                          9 === (16777215 & o.getUint32(a - 1, !c)) && (a += 3);
+                        break;
+                      case 9:
+                        (r = void 0), (a = 1), (u = !0);
+                        break;
+                      case 10:
+                        r = [];
+                        var m = o.getUint32(1, !c);
+                        a += 4;
+                        for (var g = 0; g < m; g++) {
+                          var v = e.parseValue(t, i + a, n - a);
+                          r.push(v.data), (a += v.size);
+                        }
+                        break;
+                      case 11:
+                        var y = e.parseDate(t, i + 1, n - 1);
+                        (r = y.data), (a += y.size);
+                        break;
+                      case 12:
+                        var b = e.parseString(t, i + 1, n - 1);
+                        (r = b.data), (a += b.size);
+                        break;
+                      default:
+                        (a = n),
+                          s.Z.w('AMF', 'Unsupported AMF value type ' + h);
+                    }
+                  } catch (e) {
+                    s.Z.e('AMF', e.toString());
+                  }
+                  return { data: r, size: a, objectEnd: u };
+                }),
+                e
+              );
+            })(),
+            _ = (function () {
+              function e(e) {
+                (this.TAG = 'ExpGolomb'),
+                  (this._buffer = e),
+                  (this._buffer_index = 0),
+                  (this._total_bytes = e.byteLength),
+                  (this._total_bits = 8 * e.byteLength),
+                  (this._current_word = 0),
+                  (this._current_word_bits_left = 0);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  this._buffer = null;
+                }),
+                (e.prototype._fillCurrentWord = function () {
+                  var e = this._total_bytes - this._buffer_index;
+                  if (e <= 0)
+                    throw new d.rT(
+                      'ExpGolomb: _fillCurrentWord() but no bytes available'
+                    );
+                  var t = Math.min(4, e),
+                    i = new Uint8Array(4);
+                  i.set(
+                    this._buffer.subarray(
+                      this._buffer_index,
+                      this._buffer_index + t
+                    )
+                  ),
+                    (this._current_word = new DataView(i.buffer).getUint32(
+                      0,
+                      !1
+                    )),
+                    (this._buffer_index += t),
+                    (this._current_word_bits_left = 8 * t);
+                }),
+                (e.prototype.readBits = function (e) {
+                  if (e > 32)
+                    throw new d.OC(
+                      'ExpGolomb: readBits() bits exceeded max 32bits!'
+                    );
+                  if (e <= this._current_word_bits_left) {
+                    var t = this._current_word >>> (32 - e);
+                    return (
+                      (this._current_word <<= e),
+                      (this._current_word_bits_left -= e),
+                      t
+                    );
+                  }
+                  var i = this._current_word_bits_left ? this._current_word : 0;
+                  i >>>= 32 - this._current_word_bits_left;
+                  var n = e - this._current_word_bits_left;
+                  this._fillCurrentWord();
+                  var r = Math.min(n, this._current_word_bits_left),
+                    s = this._current_word >>> (32 - r);
+                  return (
+                    (this._current_word <<= r),
+                    (this._current_word_bits_left -= r),
+                    (i = (i << r) | s)
+                  );
+                }),
+                (e.prototype.readBool = function () {
+                  return 1 === this.readBits(1);
+                }),
+                (e.prototype.readByte = function () {
+                  return this.readBits(8);
+                }),
+                (e.prototype._skipLeadingZero = function () {
+                  var e;
+                  for (e = 0; e < this._current_word_bits_left; e++)
+                    if (0 != (this._current_word & (2147483648 >>> e)))
+                      return (
+                        (this._current_word <<= e),
+                        (this._current_word_bits_left -= e),
+                        e
+                      );
+                  return this._fillCurrentWord(), e + this._skipLeadingZero();
+                }),
+                (e.prototype.readUEG = function () {
+                  var e = this._skipLeadingZero();
+                  return this.readBits(e + 1) - 1;
+                }),
+                (e.prototype.readSEG = function () {
+                  var e = this.readUEG();
+                  return 1 & e ? (e + 1) >>> 1 : -1 * (e >>> 1);
+                }),
+                e
+              );
+            })(),
+            p = (function () {
+              function e() {}
+              return (
+                (e._ebsp2rbsp = function (e) {
+                  for (
+                    var t = e,
+                      i = t.byteLength,
+                      n = new Uint8Array(i),
+                      r = 0,
+                      s = 0;
+                    s < i;
+                    s++
+                  )
+                    (s >= 2 &&
+                      3 === t[s] &&
+                      0 === t[s - 1] &&
+                      0 === t[s - 2]) ||
+                      ((n[r] = t[s]), r++);
+                  return new Uint8Array(n.buffer, 0, r);
+                }),
+                (e.parseSPS = function (t) {
+                  var i = e._ebsp2rbsp(t),
+                    n = new _(i);
+                  n.readByte();
+                  var r = n.readByte();
+                  n.readByte();
+                  var s = n.readByte();
+                  n.readUEG();
+                  var o = e.getProfileString(r),
+                    a = e.getLevelString(s),
+                    h = 1,
+                    u = 420,
+                    l = 8;
+                  if (
+                    (100 === r ||
+                      110 === r ||
+                      122 === r ||
+                      244 === r ||
+                      44 === r ||
+                      83 === r ||
+                      86 === r ||
+                      118 === r ||
+                      128 === r ||
+                      138 === r ||
+                      144 === r) &&
+                    (3 === (h = n.readUEG()) && n.readBits(1),
+                    h <= 3 && (u = [0, 420, 422, 444][h]),
+                    (l = n.readUEG() + 8),
+                    n.readUEG(),
+                    n.readBits(1),
+                    n.readBool())
+                  )
+                    for (var d = 3 !== h ? 8 : 12, c = 0; c < d; c++)
+                      n.readBool() &&
+                        (c < 6
+                          ? e._skipScalingList(n, 16)
+                          : e._skipScalingList(n, 64));
+                  n.readUEG();
+                  var f = n.readUEG();
+                  if (0 === f) n.readUEG();
+                  else if (1 === f) {
+                    n.readBits(1), n.readSEG(), n.readSEG();
+                    var p = n.readUEG();
+                    for (c = 0; c < p; c++) n.readSEG();
+                  }
+                  var m = n.readUEG();
+                  n.readBits(1);
+                  var g = n.readUEG(),
+                    v = n.readUEG(),
+                    y = n.readBits(1);
+                  0 === y && n.readBits(1), n.readBits(1);
+                  var b = 0,
+                    E = 0,
+                    S = 0,
+                    A = 0;
+                  n.readBool() &&
+                    ((b = n.readUEG()),
+                    (E = n.readUEG()),
+                    (S = n.readUEG()),
+                    (A = n.readUEG()));
+                  var L = 1,
+                    R = 1,
+                    w = 0,
+                    O = !0,
+                    T = 0,
+                    C = 0;
+                  if (n.readBool()) {
+                    if (n.readBool()) {
+                      var k = n.readByte();
+                      k > 0 && k < 16
+                        ? ((L = [
+                            1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160,
+                            4, 3, 2,
+                          ][k - 1]),
+                          (R = [
+                            1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99,
+                            3, 2, 1,
+                          ][k - 1]))
+                        : 255 === k &&
+                          ((L = (n.readByte() << 8) | n.readByte()),
+                          (R = (n.readByte() << 8) | n.readByte()));
+                    }
+                    if (
+                      (n.readBool() && n.readBool(),
+                      n.readBool() &&
+                        (n.readBits(4), n.readBool() && n.readBits(24)),
+                      n.readBool() && (n.readUEG(), n.readUEG()),
+                      n.readBool())
+                    ) {
+                      var D = n.readBits(32),
+                        I = n.readBits(32);
+                      (O = n.readBool()), (w = (T = I) / (C = 2 * D));
+                    }
+                  }
+                  var M = 1;
+                  (1 === L && 1 === R) || (M = L / R);
+                  var B = 0,
+                    x = 0;
+                  0 === h
+                    ? ((B = 1), (x = 2 - y))
+                    : ((B = 3 === h ? 1 : 2),
+                      (x = (1 === h ? 2 : 1) * (2 - y)));
+                  var P = 16 * (g + 1),
+                    U = 16 * (v + 1) * (2 - y);
+                  (P -= (b + E) * B), (U -= (S + A) * x);
+                  var N = Math.ceil(P * M);
+                  return (
+                    n.destroy(),
+                    (n = null),
+                    {
+                      profile_string: o,
+                      level_string: a,
+                      bit_depth: l,
+                      ref_frames: m,
+                      chroma_format: u,
+                      chroma_format_string: e.getChromaFormatString(u),
+                      frame_rate: { fixed: O, fps: w, fps_den: C, fps_num: T },
+                      sar_ratio: { width: L, height: R },
+                      codec_size: { width: P, height: U },
+                      present_size: { width: N, height: U },
+                    }
+                  );
+                }),
+                (e._skipScalingList = function (e, t) {
+                  for (var i = 8, n = 8, r = 0; r < t; r++)
+                    0 !== n && (n = (i + e.readSEG() + 256) % 256),
+                      (i = 0 === n ? i : n);
+                }),
+                (e.getProfileString = function (e) {
+                  switch (e) {
+                    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';
+                  }
+                }),
+                (e.getLevelString = function (e) {
+                  return (e / 10).toFixed(1);
+                }),
+                (e.getChromaFormatString = function (e) {
+                  switch (e) {
+                    case 420:
+                      return '4:2:0';
+                    case 422:
+                      return '4:2:2';
+                    case 444:
+                      return '4:4:4';
+                    default:
+                      return 'Unknown';
+                  }
+                }),
+                e
+              );
+            })(),
+            m = i(600);
+          var g = (function () {
+              function e(e, t) {
+                (this.TAG = 'FLVDemuxer'),
+                  (this._config = t),
+                  (this._onError = null),
+                  (this._onMediaInfo = null),
+                  (this._onMetaDataArrived = null),
+                  (this._onScriptDataArrived = null),
+                  (this._onTrackMetadata = null),
+                  (this._onDataAvailable = null),
+                  (this._dataOffset = e.dataOffset),
+                  (this._firstParse = !0),
+                  (this._dispatch = !1),
+                  (this._hasAudio = e.hasAudioTrack),
+                  (this._hasVideo = e.hasVideoTrack),
+                  (this._hasAudioFlagOverrided = !1),
+                  (this._hasVideoFlagOverrided = !1),
+                  (this._audioInitialMetadataDispatched = !1),
+                  (this._videoInitialMetadataDispatched = !1),
+                  (this._mediaInfo = new a.Z()),
+                  (this._mediaInfo.hasAudio = this._hasAudio),
+                  (this._mediaInfo.hasVideo = this._hasVideo),
+                  (this._metadata = null),
+                  (this._audioMetadata = null),
+                  (this._videoMetadata = null),
+                  (this._naluLengthSize = 4),
+                  (this._timestampBase = 0),
+                  (this._timescale = 1e3),
+                  (this._duration = 0),
+                  (this._durationOverrided = !1),
+                  (this._referenceFrameRate = {
+                    fixed: !0,
+                    fps: 23.976,
+                    fps_num: 23976,
+                    fps_den: 1e3,
+                  }),
+                  (this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48e3]),
+                  (this._mpegSamplingRates = [
+                    96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3,
+                    12e3, 11025, 8e3, 7350,
+                  ]),
+                  (this._mpegAudioV10SampleRateTable = [44100, 48e3, 32e3, 0]),
+                  (this._mpegAudioV20SampleRateTable = [22050, 24e3, 16e3, 0]),
+                  (this._mpegAudioV25SampleRateTable = [11025, 12e3, 8e3, 0]),
+                  (this._mpegAudioL1BitRateTable = [
+                    0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384,
+                    416, 448, -1,
+                  ]),
+                  (this._mpegAudioL2BitRateTable = [
+                    0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
+                    320, 384, -1,
+                  ]),
+                  (this._mpegAudioL3BitRateTable = [
+                    0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
+                    320, -1,
+                  ]),
+                  (this._videoTrack = {
+                    type: 'video',
+                    id: 1,
+                    sequenceNumber: 0,
+                    samples: [],
+                    length: 0,
+                  }),
+                  (this._audioTrack = {
+                    type: 'audio',
+                    id: 2,
+                    sequenceNumber: 0,
+                    samples: [],
+                    length: 0,
+                  }),
+                  (this._littleEndian = (function () {
+                    var e = new ArrayBuffer(2);
+                    return (
+                      new DataView(e).setInt16(0, 256, !0),
+                      256 === new Int16Array(e)[0]
+                    );
+                  })());
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  (this._mediaInfo = null),
+                    (this._metadata = null),
+                    (this._audioMetadata = null),
+                    (this._videoMetadata = null),
+                    (this._videoTrack = null),
+                    (this._audioTrack = null),
+                    (this._onError = null),
+                    (this._onMediaInfo = null),
+                    (this._onMetaDataArrived = null),
+                    (this._onScriptDataArrived = null),
+                    (this._onTrackMetadata = null),
+                    (this._onDataAvailable = null);
+                }),
+                (e.probe = function (e) {
+                  var t = new Uint8Array(e),
+                    i = { match: !1 };
+                  if (70 !== t[0] || 76 !== t[1] || 86 !== t[2] || 1 !== t[3])
+                    return i;
+                  var n,
+                    r,
+                    s = (4 & t[4]) >>> 2 != 0,
+                    o = 0 != (1 & t[4]),
+                    a =
+                      ((n = t)[(r = 5)] << 24) |
+                      (n[r + 1] << 16) |
+                      (n[r + 2] << 8) |
+                      n[r + 3];
+                  return a < 9
+                    ? i
+                    : {
+                        match: !0,
+                        consumed: a,
+                        dataOffset: a,
+                        hasAudioTrack: s,
+                        hasVideoTrack: o,
+                      };
+                }),
+                (e.prototype.bindDataSource = function (e) {
+                  return (e.onDataArrival = this.parseChunks.bind(this)), this;
+                }),
+                Object.defineProperty(e.prototype, 'onTrackMetadata', {
+                  get: function () {
+                    return this._onTrackMetadata;
+                  },
+                  set: function (e) {
+                    this._onTrackMetadata = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onMediaInfo', {
+                  get: function () {
+                    return this._onMediaInfo;
+                  },
+                  set: function (e) {
+                    this._onMediaInfo = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onMetaDataArrived', {
+                  get: function () {
+                    return this._onMetaDataArrived;
+                  },
+                  set: function (e) {
+                    this._onMetaDataArrived = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onScriptDataArrived', {
+                  get: function () {
+                    return this._onScriptDataArrived;
+                  },
+                  set: function (e) {
+                    this._onScriptDataArrived = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onError', {
+                  get: function () {
+                    return this._onError;
+                  },
+                  set: function (e) {
+                    this._onError = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onDataAvailable', {
+                  get: function () {
+                    return this._onDataAvailable;
+                  },
+                  set: function (e) {
+                    this._onDataAvailable = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'timestampBase', {
+                  get: function () {
+                    return this._timestampBase;
+                  },
+                  set: function (e) {
+                    this._timestampBase = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'overridedDuration', {
+                  get: function () {
+                    return this._duration;
+                  },
+                  set: function (e) {
+                    (this._durationOverrided = !0),
+                      (this._duration = e),
+                      (this._mediaInfo.duration = e);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'overridedHasAudio', {
+                  set: function (e) {
+                    (this._hasAudioFlagOverrided = !0),
+                      (this._hasAudio = e),
+                      (this._mediaInfo.hasAudio = e);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'overridedHasVideo', {
+                  set: function (e) {
+                    (this._hasVideoFlagOverrided = !0),
+                      (this._hasVideo = e),
+                      (this._mediaInfo.hasVideo = e);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype.resetMediaInfo = function () {
+                  this._mediaInfo = new a.Z();
+                }),
+                (e.prototype._isInitialMetadataDispatched = function () {
+                  return this._hasAudio && this._hasVideo
+                    ? this._audioInitialMetadataDispatched &&
+                        this._videoInitialMetadataDispatched
+                    : this._hasAudio && !this._hasVideo
+                    ? this._audioInitialMetadataDispatched
+                    : !(this._hasAudio || !this._hasVideo) &&
+                      this._videoInitialMetadataDispatched;
+                }),
+                (e.prototype.parseChunks = function (t, i) {
+                  if (
+                    !(
+                      this._onError &&
+                      this._onMediaInfo &&
+                      this._onTrackMetadata &&
+                      this._onDataAvailable
+                    )
+                  )
+                    throw new d.rT(
+                      'Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified'
+                    );
+                  var n = 0,
+                    r = this._littleEndian;
+                  if (0 === i) {
+                    if (!(t.byteLength > 13)) return 0;
+                    n = e.probe(t).dataOffset;
+                  }
+                  this._firstParse &&
+                    ((this._firstParse = !1),
+                    i + n !== this._dataOffset &&
+                      s.Z.w(
+                        this.TAG,
+                        'First time parsing but chunk byteStart invalid!'
+                      ),
+                    0 !== (o = new DataView(t, n)).getUint32(0, !r) &&
+                      s.Z.w(this.TAG, 'PrevTagSize0 !== 0 !!!'),
+                    (n += 4));
+                  for (; n < t.byteLength; ) {
+                    this._dispatch = !0;
+                    var o = new DataView(t, n);
+                    if (n + 11 + 4 > t.byteLength) break;
+                    var a = o.getUint8(0),
+                      h = 16777215 & o.getUint32(0, !r);
+                    if (n + 11 + h + 4 > t.byteLength) break;
+                    if (8 === a || 9 === a || 18 === a) {
+                      var u = o.getUint8(4),
+                        l = o.getUint8(5),
+                        c =
+                          o.getUint8(6) |
+                          (l << 8) |
+                          (u << 16) |
+                          (o.getUint8(7) << 24);
+                      0 !== (16777215 & o.getUint32(7, !r)) &&
+                        s.Z.w(this.TAG, 'Meet tag which has StreamID != 0!');
+                      var f = n + 11;
+                      switch (a) {
+                        case 8:
+                          this._parseAudioData(t, f, h, c);
+                          break;
+                        case 9:
+                          this._parseVideoData(t, f, h, c, i + n);
+                          break;
+                        case 18:
+                          this._parseScriptData(t, f, h);
+                      }
+                      var _ = o.getUint32(11 + h, !r);
+                      _ !== 11 + h &&
+                        s.Z.w(this.TAG, 'Invalid PrevTagSize ' + _),
+                        (n += 11 + h + 4);
+                    } else
+                      s.Z.w(
+                        this.TAG,
+                        'Unsupported tag type ' + a + ', skipped'
+                      ),
+                        (n += 11 + h + 4);
+                  }
+                  return (
+                    this._isInitialMetadataDispatched() &&
+                      this._dispatch &&
+                      (this._audioTrack.length || this._videoTrack.length) &&
+                      this._onDataAvailable(this._audioTrack, this._videoTrack),
+                    n
+                  );
+                }),
+                (e.prototype._parseScriptData = function (e, t, i) {
+                  var n = f.parseScriptData(e, t, i);
+                  if (n.hasOwnProperty('onMetaData')) {
+                    if (null == n.onMetaData || 'object' != typeof n.onMetaData)
+                      return void s.Z.w(
+                        this.TAG,
+                        'Invalid onMetaData structure!'
+                      );
+                    this._metadata &&
+                      s.Z.w(this.TAG, 'Found another onMetaData tag!'),
+                      (this._metadata = n);
+                    var r = this._metadata.onMetaData;
+                    if (
+                      (this._onMetaDataArrived &&
+                        this._onMetaDataArrived(Object.assign({}, r)),
+                      'boolean' == typeof r.hasAudio &&
+                        !1 === this._hasAudioFlagOverrided &&
+                        ((this._hasAudio = r.hasAudio),
+                        (this._mediaInfo.hasAudio = this._hasAudio)),
+                      'boolean' == typeof r.hasVideo &&
+                        !1 === this._hasVideoFlagOverrided &&
+                        ((this._hasVideo = r.hasVideo),
+                        (this._mediaInfo.hasVideo = this._hasVideo)),
+                      'number' == typeof r.audiodatarate &&
+                        (this._mediaInfo.audioDataRate = r.audiodatarate),
+                      'number' == typeof r.videodatarate &&
+                        (this._mediaInfo.videoDataRate = r.videodatarate),
+                      'number' == typeof r.width &&
+                        (this._mediaInfo.width = r.width),
+                      'number' == typeof r.height &&
+                        (this._mediaInfo.height = r.height),
+                      'number' == typeof r.duration)
+                    ) {
+                      if (!this._durationOverrided) {
+                        var o = Math.floor(r.duration * this._timescale);
+                        (this._duration = o), (this._mediaInfo.duration = o);
+                      }
+                    } else this._mediaInfo.duration = 0;
+                    if ('number' == typeof r.framerate) {
+                      var a = Math.floor(1e3 * r.framerate);
+                      if (a > 0) {
+                        var h = a / 1e3;
+                        (this._referenceFrameRate.fixed = !0),
+                          (this._referenceFrameRate.fps = h),
+                          (this._referenceFrameRate.fps_num = a),
+                          (this._referenceFrameRate.fps_den = 1e3),
+                          (this._mediaInfo.fps = h);
+                      }
+                    }
+                    if ('object' == typeof r.keyframes) {
+                      this._mediaInfo.hasKeyframesIndex = !0;
+                      var u = r.keyframes;
+                      (this._mediaInfo.keyframesIndex =
+                        this._parseKeyframesIndex(u)),
+                        (r.keyframes = null);
+                    } else this._mediaInfo.hasKeyframesIndex = !1;
+                    (this._dispatch = !1),
+                      (this._mediaInfo.metadata = r),
+                      s.Z.v(this.TAG, 'Parsed onMetaData'),
+                      this._mediaInfo.isComplete() &&
+                        this._onMediaInfo(this._mediaInfo);
+                  }
+                  Object.keys(n).length > 0 &&
+                    this._onScriptDataArrived &&
+                    this._onScriptDataArrived(Object.assign({}, n));
+                }),
+                (e.prototype._parseKeyframesIndex = function (e) {
+                  for (var t = [], i = [], n = 1; n < e.times.length; n++) {
+                    var r = this._timestampBase + Math.floor(1e3 * e.times[n]);
+                    t.push(r), i.push(e.filepositions[n]);
+                  }
+                  return { times: t, filepositions: i };
+                }),
+                (e.prototype._parseAudioData = function (e, t, i, n) {
+                  if (i <= 1)
+                    s.Z.w(
+                      this.TAG,
+                      'Flv: Invalid audio packet, missing SoundData payload!'
+                    );
+                  else if (
+                    !0 !== this._hasAudioFlagOverrided ||
+                    !1 !== this._hasAudio
+                  ) {
+                    this._littleEndian;
+                    var r = new DataView(e, t, i).getUint8(0),
+                      o = r >>> 4;
+                    if (2 === o || 10 === o) {
+                      var a = 0,
+                        h = (12 & r) >>> 2;
+                      if (h >= 0 && h <= 4) {
+                        a = this._flvSoundRateTable[h];
+                        var u = 1 & r,
+                          l = this._audioMetadata,
+                          d = this._audioTrack;
+                        if (
+                          (l ||
+                            (!1 === this._hasAudio &&
+                              !1 === this._hasAudioFlagOverrided &&
+                              ((this._hasAudio = !0),
+                              (this._mediaInfo.hasAudio = !0)),
+                            ((l = this._audioMetadata = {}).type = 'audio'),
+                            (l.id = d.id),
+                            (l.timescale = this._timescale),
+                            (l.duration = this._duration),
+                            (l.audioSampleRate = a),
+                            (l.channelCount = 0 === u ? 1 : 2)),
+                          10 === o)
+                        ) {
+                          var c = this._parseAACAudioData(e, t + 1, i - 1);
+                          if (null == c) return;
+                          if (0 === c.packetType) {
+                            l.config &&
+                              s.Z.w(
+                                this.TAG,
+                                'Found another AudioSpecificConfig!'
+                              );
+                            var f = c.data;
+                            (l.audioSampleRate = f.samplingRate),
+                              (l.channelCount = f.channelCount),
+                              (l.codec = f.codec),
+                              (l.originalCodec = f.originalCodec),
+                              (l.config = f.config),
+                              (l.refSampleDuration =
+                                (1024 / l.audioSampleRate) * l.timescale),
+                              s.Z.v(this.TAG, 'Parsed AudioSpecificConfig'),
+                              this._isInitialMetadataDispatched()
+                                ? this._dispatch &&
+                                  (this._audioTrack.length ||
+                                    this._videoTrack.length) &&
+                                  this._onDataAvailable(
+                                    this._audioTrack,
+                                    this._videoTrack
+                                  )
+                                : (this._audioInitialMetadataDispatched = !0),
+                              (this._dispatch = !1),
+                              this._onTrackMetadata('audio', l),
+                              ((g = this._mediaInfo).audioCodec =
+                                l.originalCodec),
+                              (g.audioSampleRate = l.audioSampleRate),
+                              (g.audioChannelCount = l.channelCount),
+                              g.hasVideo
+                                ? null != g.videoCodec &&
+                                  (g.mimeType =
+                                    'video/x-flv; codecs="' +
+                                    g.videoCodec +
+                                    ',' +
+                                    g.audioCodec +
+                                    '"')
+                                : (g.mimeType =
+                                    'video/x-flv; codecs="' +
+                                    g.audioCodec +
+                                    '"'),
+                              g.isComplete() && this._onMediaInfo(g);
+                          } else if (1 === c.packetType) {
+                            var _ = this._timestampBase + n,
+                              p = {
+                                unit: c.data,
+                                length: c.data.byteLength,
+                                dts: _,
+                                pts: _,
+                              };
+                            d.samples.push(p), (d.length += c.data.length);
+                          } else
+                            s.Z.e(
+                              this.TAG,
+                              'Flv: Unsupported AAC data type ' + c.packetType
+                            );
+                        } else if (2 === o) {
+                          if (!l.codec) {
+                            var g;
+                            if (
+                              null ==
+                              (f = this._parseMP3AudioData(e, t + 1, i - 1, !0))
+                            )
+                              return;
+                            (l.audioSampleRate = f.samplingRate),
+                              (l.channelCount = f.channelCount),
+                              (l.codec = f.codec),
+                              (l.originalCodec = f.originalCodec),
+                              (l.refSampleDuration =
+                                (1152 / l.audioSampleRate) * l.timescale),
+                              s.Z.v(this.TAG, 'Parsed MPEG Audio Frame Header'),
+                              (this._audioInitialMetadataDispatched = !0),
+                              this._onTrackMetadata('audio', l),
+                              ((g = this._mediaInfo).audioCodec = l.codec),
+                              (g.audioSampleRate = l.audioSampleRate),
+                              (g.audioChannelCount = l.channelCount),
+                              (g.audioDataRate = f.bitRate),
+                              g.hasVideo
+                                ? null != g.videoCodec &&
+                                  (g.mimeType =
+                                    'video/x-flv; codecs="' +
+                                    g.videoCodec +
+                                    ',' +
+                                    g.audioCodec +
+                                    '"')
+                                : (g.mimeType =
+                                    'video/x-flv; codecs="' +
+                                    g.audioCodec +
+                                    '"'),
+                              g.isComplete() && this._onMediaInfo(g);
+                          }
+                          var v = this._parseMP3AudioData(e, t + 1, i - 1, !1);
+                          if (null == v) return;
+                          _ = this._timestampBase + n;
+                          var y = {
+                            unit: v,
+                            length: v.byteLength,
+                            dts: _,
+                            pts: _,
+                          };
+                          d.samples.push(y), (d.length += v.length);
+                        }
+                      } else
+                        this._onError(
+                          m.Z.FORMAT_ERROR,
+                          'Flv: Invalid audio sample rate idx: ' + h
+                        );
+                    } else
+                      this._onError(
+                        m.Z.CODEC_UNSUPPORTED,
+                        'Flv: Unsupported audio codec idx: ' + o
+                      );
+                  }
+                }),
+                (e.prototype._parseAACAudioData = function (e, t, i) {
+                  if (!(i <= 1)) {
+                    var n = {},
+                      r = new Uint8Array(e, t, i);
+                    return (
+                      (n.packetType = r[0]),
+                      0 === r[0]
+                        ? (n.data = this._parseAACAudioSpecificConfig(
+                            e,
+                            t + 1,
+                            i - 1
+                          ))
+                        : (n.data = r.subarray(1)),
+                      n
+                    );
+                  }
+                  s.Z.w(
+                    this.TAG,
+                    'Flv: Invalid AAC packet, missing AACPacketType or/and Data!'
+                  );
+                }),
+                (e.prototype._parseAACAudioSpecificConfig = function (e, t, i) {
+                  var n,
+                    r,
+                    s = new Uint8Array(e, t, i),
+                    o = null,
+                    a = 0,
+                    h = null;
+                  if (
+                    ((a = n = s[0] >>> 3),
+                    (r = ((7 & s[0]) << 1) | (s[1] >>> 7)) < 0 ||
+                      r >= this._mpegSamplingRates.length)
+                  )
+                    this._onError(
+                      m.Z.FORMAT_ERROR,
+                      'Flv: AAC invalid sampling frequency index!'
+                    );
+                  else {
+                    var u = this._mpegSamplingRates[r],
+                      l = (120 & s[1]) >>> 3;
+                    if (!(l < 0 || l >= 8)) {
+                      5 === a &&
+                        ((h = ((7 & s[1]) << 1) | (s[2] >>> 7)),
+                        (124 & s[2]) >>> 2);
+                      var d = self.navigator.userAgent.toLowerCase();
+                      return (
+                        -1 !== d.indexOf('firefox')
+                          ? r >= 6
+                            ? ((a = 5), (o = new Array(4)), (h = r - 3))
+                            : ((a = 2), (o = new Array(2)), (h = r))
+                          : -1 !== d.indexOf('android')
+                          ? ((a = 2), (o = new Array(2)), (h = r))
+                          : ((a = 5),
+                            (h = r),
+                            (o = new Array(4)),
+                            r >= 6
+                              ? (h = r - 3)
+                              : 1 === l &&
+                                ((a = 2), (o = new Array(2)), (h = r))),
+                        (o[0] = a << 3),
+                        (o[0] |= (15 & r) >>> 1),
+                        (o[1] = (15 & r) << 7),
+                        (o[1] |= (15 & l) << 3),
+                        5 === a &&
+                          ((o[1] |= (15 & h) >>> 1),
+                          (o[2] = (1 & h) << 7),
+                          (o[2] |= 8),
+                          (o[3] = 0)),
+                        {
+                          config: o,
+                          samplingRate: u,
+                          channelCount: l,
+                          codec: 'mp4a.40.' + a,
+                          originalCodec: 'mp4a.40.' + n,
+                        }
+                      );
+                    }
+                    this._onError(
+                      m.Z.FORMAT_ERROR,
+                      'Flv: AAC invalid channel configuration'
+                    );
+                  }
+                }),
+                (e.prototype._parseMP3AudioData = function (e, t, i, n) {
+                  if (!(i < 4)) {
+                    this._littleEndian;
+                    var r = new Uint8Array(e, t, i),
+                      o = null;
+                    if (n) {
+                      if (255 !== r[0]) return;
+                      var a = (r[1] >>> 3) & 3,
+                        h = (6 & r[1]) >> 1,
+                        u = (240 & r[2]) >>> 4,
+                        l = (12 & r[2]) >>> 2,
+                        d = 3 !== ((r[3] >>> 6) & 3) ? 2 : 1,
+                        c = 0,
+                        f = 0;
+                      switch (a) {
+                        case 0:
+                          c = this._mpegAudioV25SampleRateTable[l];
+                          break;
+                        case 2:
+                          c = this._mpegAudioV20SampleRateTable[l];
+                          break;
+                        case 3:
+                          c = this._mpegAudioV10SampleRateTable[l];
+                      }
+                      switch (h) {
+                        case 1:
+                          34,
+                            u < this._mpegAudioL3BitRateTable.length &&
+                              (f = this._mpegAudioL3BitRateTable[u]);
+                          break;
+                        case 2:
+                          33,
+                            u < this._mpegAudioL2BitRateTable.length &&
+                              (f = this._mpegAudioL2BitRateTable[u]);
+                          break;
+                        case 3:
+                          32,
+                            u < this._mpegAudioL1BitRateTable.length &&
+                              (f = this._mpegAudioL1BitRateTable[u]);
+                      }
+                      o = {
+                        bitRate: f,
+                        samplingRate: c,
+                        channelCount: d,
+                        codec: 'mp3',
+                        originalCodec: 'mp3',
+                      };
+                    } else o = r;
+                    return o;
+                  }
+                  s.Z.w(this.TAG, 'Flv: Invalid MP3 packet, header missing!');
+                }),
+                (e.prototype._parseVideoData = function (e, t, i, n, r) {
+                  if (i <= 1)
+                    s.Z.w(
+                      this.TAG,
+                      'Flv: Invalid video packet, missing VideoData payload!'
+                    );
+                  else if (
+                    !0 !== this._hasVideoFlagOverrided ||
+                    !1 !== this._hasVideo
+                  ) {
+                    var o = new Uint8Array(e, t, i)[0],
+                      a = (240 & o) >>> 4,
+                      h = 15 & o;
+                    7 === h
+                      ? this._parseAVCVideoPacket(e, t + 1, i - 1, n, r, a)
+                      : this._onError(
+                          m.Z.CODEC_UNSUPPORTED,
+                          'Flv: Unsupported codec in video frame: ' + h
+                        );
+                  }
+                }),
+                (e.prototype._parseAVCVideoPacket = function (
+                  e,
+                  t,
+                  i,
+                  n,
+                  r,
+                  o
+                ) {
+                  if (i < 4)
+                    s.Z.w(
+                      this.TAG,
+                      'Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime'
+                    );
+                  else {
+                    var a = this._littleEndian,
+                      h = new DataView(e, t, i),
+                      u = h.getUint8(0),
+                      l = ((16777215 & h.getUint32(0, !a)) << 8) >> 8;
+                    if (0 === u)
+                      this._parseAVCDecoderConfigurationRecord(e, t + 4, i - 4);
+                    else if (1 === u)
+                      this._parseAVCVideoData(e, t + 4, i - 4, n, r, o, l);
+                    else if (2 !== u)
+                      return void this._onError(
+                        m.Z.FORMAT_ERROR,
+                        'Flv: Invalid video packet type ' + u
+                      );
+                  }
+                }),
+                (e.prototype._parseAVCDecoderConfigurationRecord = function (
+                  e,
+                  t,
+                  i
+                ) {
+                  if (i < 7)
+                    s.Z.w(
+                      this.TAG,
+                      'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!'
+                    );
+                  else {
+                    var n = this._videoMetadata,
+                      r = this._videoTrack,
+                      o = this._littleEndian,
+                      a = new DataView(e, t, i);
+                    n
+                      ? void 0 !== n.avcc &&
+                        s.Z.w(
+                          this.TAG,
+                          'Found another AVCDecoderConfigurationRecord!'
+                        )
+                      : (!1 === this._hasVideo &&
+                          !1 === this._hasVideoFlagOverrided &&
+                          ((this._hasVideo = !0),
+                          (this._mediaInfo.hasVideo = !0)),
+                        ((n = this._videoMetadata = {}).type = 'video'),
+                        (n.id = r.id),
+                        (n.timescale = this._timescale),
+                        (n.duration = this._duration));
+                    var h = a.getUint8(0),
+                      u = a.getUint8(1);
+                    a.getUint8(2), a.getUint8(3);
+                    if (1 === h && 0 !== u)
+                      if (
+                        ((this._naluLengthSize = 1 + (3 & a.getUint8(4))),
+                        3 === this._naluLengthSize ||
+                          4 === this._naluLengthSize)
+                      ) {
+                        var l = 31 & a.getUint8(5);
+                        if (0 !== l) {
+                          l > 1 &&
+                            s.Z.w(
+                              this.TAG,
+                              'Flv: Strange AVCDecoderConfigurationRecord: SPS Count = ' +
+                                l
+                            );
+                          for (var d = 6, c = 0; c < l; c++) {
+                            var f = a.getUint16(d, !o);
+                            if (((d += 2), 0 !== f)) {
+                              var _ = new Uint8Array(e, t + d, f);
+                              d += f;
+                              var g = p.parseSPS(_);
+                              if (0 === c) {
+                                (n.codecWidth = g.codec_size.width),
+                                  (n.codecHeight = g.codec_size.height),
+                                  (n.presentWidth = g.present_size.width),
+                                  (n.presentHeight = g.present_size.height),
+                                  (n.profile = g.profile_string),
+                                  (n.level = g.level_string),
+                                  (n.bitDepth = g.bit_depth),
+                                  (n.chromaFormat = g.chroma_format),
+                                  (n.sarRatio = g.sar_ratio),
+                                  (n.frameRate = g.frame_rate),
+                                  (!1 !== g.frame_rate.fixed &&
+                                    0 !== g.frame_rate.fps_num &&
+                                    0 !== g.frame_rate.fps_den) ||
+                                    (n.frameRate = this._referenceFrameRate);
+                                var v = n.frameRate.fps_den,
+                                  y = n.frameRate.fps_num;
+                                n.refSampleDuration = n.timescale * (v / y);
+                                for (
+                                  var b = _.subarray(1, 4), E = 'avc1.', S = 0;
+                                  S < 3;
+                                  S++
+                                ) {
+                                  var A = b[S].toString(16);
+                                  A.length < 2 && (A = '0' + A), (E += A);
+                                }
+                                n.codec = E;
+                                var L = this._mediaInfo;
+                                (L.width = n.codecWidth),
+                                  (L.height = n.codecHeight),
+                                  (L.fps = n.frameRate.fps),
+                                  (L.profile = n.profile),
+                                  (L.level = n.level),
+                                  (L.refFrames = g.ref_frames),
+                                  (L.chromaFormat = g.chroma_format_string),
+                                  (L.sarNum = n.sarRatio.width),
+                                  (L.sarDen = n.sarRatio.height),
+                                  (L.videoCodec = E),
+                                  L.hasAudio
+                                    ? null != L.audioCodec &&
+                                      (L.mimeType =
+                                        'video/x-flv; codecs="' +
+                                        L.videoCodec +
+                                        ',' +
+                                        L.audioCodec +
+                                        '"')
+                                    : (L.mimeType =
+                                        'video/x-flv; codecs="' +
+                                        L.videoCodec +
+                                        '"'),
+                                  L.isComplete() && this._onMediaInfo(L);
+                              }
+                            }
+                          }
+                          var R = a.getUint8(d);
+                          if (0 !== R) {
+                            R > 1 &&
+                              s.Z.w(
+                                this.TAG,
+                                'Flv: Strange AVCDecoderConfigurationRecord: PPS Count = ' +
+                                  R
+                              ),
+                              d++;
+                            for (c = 0; c < R; c++) {
+                              f = a.getUint16(d, !o);
+                              (d += 2), 0 !== f && (d += f);
+                            }
+                            (n.avcc = new Uint8Array(i)),
+                              n.avcc.set(new Uint8Array(e, t, i), 0),
+                              s.Z.v(
+                                this.TAG,
+                                'Parsed AVCDecoderConfigurationRecord'
+                              ),
+                              this._isInitialMetadataDispatched()
+                                ? this._dispatch &&
+                                  (this._audioTrack.length ||
+                                    this._videoTrack.length) &&
+                                  this._onDataAvailable(
+                                    this._audioTrack,
+                                    this._videoTrack
+                                  )
+                                : (this._videoInitialMetadataDispatched = !0),
+                              (this._dispatch = !1),
+                              this._onTrackMetadata('video', n);
+                          } else
+                            this._onError(
+                              m.Z.FORMAT_ERROR,
+                              'Flv: Invalid AVCDecoderConfigurationRecord: No PPS'
+                            );
+                        } else
+                          this._onError(
+                            m.Z.FORMAT_ERROR,
+                            'Flv: Invalid AVCDecoderConfigurationRecord: No SPS'
+                          );
+                      } else
+                        this._onError(
+                          m.Z.FORMAT_ERROR,
+                          'Flv: Strange NaluLengthSizeMinusOne: ' +
+                            (this._naluLengthSize - 1)
+                        );
+                    else
+                      this._onError(
+                        m.Z.FORMAT_ERROR,
+                        'Flv: Invalid AVCDecoderConfigurationRecord'
+                      );
+                  }
+                }),
+                (e.prototype._parseAVCVideoData = function (
+                  e,
+                  t,
+                  i,
+                  n,
+                  r,
+                  o,
+                  a
+                ) {
+                  for (
+                    var h = this._littleEndian,
+                      u = new DataView(e, t, i),
+                      l = [],
+                      d = 0,
+                      c = 0,
+                      f = this._naluLengthSize,
+                      _ = this._timestampBase + n,
+                      p = 1 === o;
+                    c < i;
+
+                  ) {
+                    if (c + 4 >= i) {
+                      s.Z.w(
+                        this.TAG,
+                        'Malformed Nalu near timestamp ' +
+                          _ +
+                          ', offset = ' +
+                          c +
+                          ', dataSize = ' +
+                          i
+                      );
+                      break;
+                    }
+                    var m = u.getUint32(c, !h);
+                    if ((3 === f && (m >>>= 8), m > i - f))
+                      return void s.Z.w(
+                        this.TAG,
+                        'Malformed Nalus near timestamp ' +
+                          _ +
+                          ', NaluSize > DataSize!'
+                      );
+                    var g = 31 & u.getUint8(c + f);
+                    5 === g && (p = !0);
+                    var v = new Uint8Array(e, t + c, f + m),
+                      y = { type: g, data: v };
+                    l.push(y), (d += v.byteLength), (c += f + m);
+                  }
+                  if (l.length) {
+                    var b = this._videoTrack,
+                      E = {
+                        units: l,
+                        length: d,
+                        isKeyframe: p,
+                        dts: _,
+                        cts: a,
+                        pts: _ + a,
+                      };
+                    p && (E.fileposition = r),
+                      b.samples.push(E),
+                      (b.length += d);
+                  }
+                }),
+                e
+              );
+            })(),
+            v = (function () {
+              function e() {}
+              return (
+                (e.init = function () {
+                  for (var t in ((e.types = {
+                    avc1: [],
+                    avcC: [],
+                    btrt: [],
+                    dinf: [],
+                    dref: [],
+                    esds: [],
+                    ftyp: [],
+                    hdlr: [],
+                    mdat: [],
+                    mdhd: [],
+                    mdia: [],
+                    mfhd: [],
+                    minf: [],
+                    moof: [],
+                    moov: [],
+                    mp4a: [],
+                    mvex: [],
+                    mvhd: [],
+                    sdtp: [],
+                    stbl: [],
+                    stco: [],
+                    stsc: [],
+                    stsd: [],
+                    stsz: [],
+                    stts: [],
+                    tfdt: [],
+                    tfhd: [],
+                    traf: [],
+                    trak: [],
+                    trun: [],
+                    trex: [],
+                    tkhd: [],
+                    vmhd: [],
+                    smhd: [],
+                    '.mp3': [],
+                  }),
+                  e.types))
+                    e.types.hasOwnProperty(t) &&
+                      (e.types[t] = [
+                        t.charCodeAt(0),
+                        t.charCodeAt(1),
+                        t.charCodeAt(2),
+                        t.charCodeAt(3),
+                      ]);
+                  var i = (e.constants = {});
+                  (i.FTYP = new Uint8Array([
+                    105, 115, 111, 109, 0, 0, 0, 1, 105, 115, 111, 109, 97, 118,
+                    99, 49,
+                  ])),
+                    (i.STSD_PREFIX = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1])),
+                    (i.STTS = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
+                    (i.STSC = i.STCO = i.STTS),
+                    (i.STSZ = new Uint8Array([
+                      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    ])),
+                    (i.HDLR_VIDEO = new Uint8Array([
+                      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,
+                    ])),
+                    (i.HDLR_AUDIO = new Uint8Array([
+                      0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0,
+                      0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110,
+                      100, 108, 101, 114, 0,
+                    ])),
+                    (i.DREF = new Uint8Array([
+                      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0,
+                      0, 0, 1,
+                    ])),
+                    (i.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
+                    (i.VMHD = new Uint8Array([
+                      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+                    ]));
+                }),
+                (e.box = function (e) {
+                  for (
+                    var t = 8,
+                      i = null,
+                      n = Array.prototype.slice.call(arguments, 1),
+                      r = n.length,
+                      s = 0;
+                    s < r;
+                    s++
+                  )
+                    t += n[s].byteLength;
+                  ((i = new Uint8Array(t))[0] = (t >>> 24) & 255),
+                    (i[1] = (t >>> 16) & 255),
+                    (i[2] = (t >>> 8) & 255),
+                    (i[3] = 255 & t),
+                    i.set(e, 4);
+                  var o = 8;
+                  for (s = 0; s < r; s++)
+                    i.set(n[s], o), (o += n[s].byteLength);
+                  return i;
+                }),
+                (e.generateInitSegment = function (t) {
+                  var i = e.box(e.types.ftyp, e.constants.FTYP),
+                    n = e.moov(t),
+                    r = new Uint8Array(i.byteLength + n.byteLength);
+                  return r.set(i, 0), r.set(n, i.byteLength), r;
+                }),
+                (e.moov = function (t) {
+                  var i = e.mvhd(t.timescale, t.duration),
+                    n = e.trak(t),
+                    r = e.mvex(t);
+                  return e.box(e.types.moov, i, n, r);
+                }),
+                (e.mvhd = function (t, i) {
+                  return e.box(
+                    e.types.mvhd,
+                    new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (t >>> 24) & 255,
+                      (t >>> 16) & 255,
+                      (t >>> 8) & 255,
+                      255 & t,
+                      (i >>> 24) & 255,
+                      (i >>> 16) & 255,
+                      (i >>> 8) & 255,
+                      255 & i,
+                      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,
+                    ])
+                  );
+                }),
+                (e.trak = function (t) {
+                  return e.box(e.types.trak, e.tkhd(t), e.mdia(t));
+                }),
+                (e.tkhd = function (t) {
+                  var i = t.id,
+                    n = t.duration,
+                    r = t.presentWidth,
+                    s = t.presentHeight;
+                  return e.box(
+                    e.types.tkhd,
+                    new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      7,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (i >>> 24) & 255,
+                      (i >>> 16) & 255,
+                      (i >>> 8) & 255,
+                      255 & i,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (n >>> 24) & 255,
+                      (n >>> 16) & 255,
+                      (n >>> 8) & 255,
+                      255 & n,
+                      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,
+                      (r >>> 8) & 255,
+                      255 & r,
+                      0,
+                      0,
+                      (s >>> 8) & 255,
+                      255 & s,
+                      0,
+                      0,
+                    ])
+                  );
+                }),
+                (e.mdia = function (t) {
+                  return e.box(e.types.mdia, e.mdhd(t), e.hdlr(t), e.minf(t));
+                }),
+                (e.mdhd = function (t) {
+                  var i = t.timescale,
+                    n = t.duration;
+                  return e.box(
+                    e.types.mdhd,
+                    new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (i >>> 24) & 255,
+                      (i >>> 16) & 255,
+                      (i >>> 8) & 255,
+                      255 & i,
+                      (n >>> 24) & 255,
+                      (n >>> 16) & 255,
+                      (n >>> 8) & 255,
+                      255 & n,
+                      85,
+                      196,
+                      0,
+                      0,
+                    ])
+                  );
+                }),
+                (e.hdlr = function (t) {
+                  var i = null;
+                  return (
+                    (i =
+                      'audio' === t.type
+                        ? e.constants.HDLR_AUDIO
+                        : e.constants.HDLR_VIDEO),
+                    e.box(e.types.hdlr, i)
+                  );
+                }),
+                (e.minf = function (t) {
+                  var i = null;
+                  return (
+                    (i =
+                      'audio' === t.type
+                        ? e.box(e.types.smhd, e.constants.SMHD)
+                        : e.box(e.types.vmhd, e.constants.VMHD)),
+                    e.box(e.types.minf, i, e.dinf(), e.stbl(t))
+                  );
+                }),
+                (e.dinf = function () {
+                  return e.box(
+                    e.types.dinf,
+                    e.box(e.types.dref, e.constants.DREF)
+                  );
+                }),
+                (e.stbl = function (t) {
+                  return e.box(
+                    e.types.stbl,
+                    e.stsd(t),
+                    e.box(e.types.stts, e.constants.STTS),
+                    e.box(e.types.stsc, e.constants.STSC),
+                    e.box(e.types.stsz, e.constants.STSZ),
+                    e.box(e.types.stco, e.constants.STCO)
+                  );
+                }),
+                (e.stsd = function (t) {
+                  return 'audio' === t.type
+                    ? 'mp3' === t.codec
+                      ? e.box(e.types.stsd, e.constants.STSD_PREFIX, e.mp3(t))
+                      : e.box(e.types.stsd, e.constants.STSD_PREFIX, e.mp4a(t))
+                    : e.box(e.types.stsd, e.constants.STSD_PREFIX, e.avc1(t));
+                }),
+                (e.mp3 = function (t) {
+                  var i = t.channelCount,
+                    n = t.audioSampleRate,
+                    r = new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      1,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      i,
+                      0,
+                      16,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (n >>> 8) & 255,
+                      255 & n,
+                      0,
+                      0,
+                    ]);
+                  return e.box(e.types['.mp3'], r);
+                }),
+                (e.mp4a = function (t) {
+                  var i = t.channelCount,
+                    n = t.audioSampleRate,
+                    r = new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      1,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      i,
+                      0,
+                      16,
+                      0,
+                      0,
+                      0,
+                      0,
+                      (n >>> 8) & 255,
+                      255 & n,
+                      0,
+                      0,
+                    ]);
+                  return e.box(e.types.mp4a, r, e.esds(t));
+                }),
+                (e.esds = function (t) {
+                  var i = t.config || [],
+                    n = i.length,
+                    r = new Uint8Array(
+                      [
+                        0,
+                        0,
+                        0,
+                        0,
+                        3,
+                        23 + n,
+                        0,
+                        1,
+                        0,
+                        4,
+                        15 + n,
+                        64,
+                        21,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        5,
+                      ]
+                        .concat([n])
+                        .concat(i)
+                        .concat([6, 1, 2])
+                    );
+                  return e.box(e.types.esds, r);
+                }),
+                (e.avc1 = function (t) {
+                  var i = t.avcc,
+                    n = t.codecWidth,
+                    r = t.codecHeight,
+                    s = 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,
+                      (n >>> 8) & 255,
+                      255 & n,
+                      (r >>> 8) & 255,
+                      255 & r,
+                      0,
+                      72,
+                      0,
+                      0,
+                      0,
+                      72,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      1,
+                      10,
+                      120,
+                      113,
+                      113,
+                      47,
+                      102,
+                      108,
+                      118,
+                      46,
+                      106,
+                      115,
+                      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,
+                    ]);
+                  return e.box(e.types.avc1, s, e.box(e.types.avcC, i));
+                }),
+                (e.mvex = function (t) {
+                  return e.box(e.types.mvex, e.trex(t));
+                }),
+                (e.trex = function (t) {
+                  var i = t.id,
+                    n = new Uint8Array([
+                      0,
+                      0,
+                      0,
+                      0,
+                      (i >>> 24) & 255,
+                      (i >>> 16) & 255,
+                      (i >>> 8) & 255,
+                      255 & i,
+                      0,
+                      0,
+                      0,
+                      1,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      0,
+                      1,
+                      0,
+                      1,
+                    ]);
+                  return e.box(e.types.trex, n);
+                }),
+                (e.moof = function (t, i) {
+                  return e.box(
+                    e.types.moof,
+                    e.mfhd(t.sequenceNumber),
+                    e.traf(t, i)
+                  );
+                }),
+                (e.mfhd = function (t) {
+                  var i = new Uint8Array([
+                    0,
+                    0,
+                    0,
+                    0,
+                    (t >>> 24) & 255,
+                    (t >>> 16) & 255,
+                    (t >>> 8) & 255,
+                    255 & t,
+                  ]);
+                  return e.box(e.types.mfhd, i);
+                }),
+                (e.traf = function (t, i) {
+                  var n = t.id,
+                    r = e.box(
+                      e.types.tfhd,
+                      new Uint8Array([
+                        0,
+                        0,
+                        0,
+                        0,
+                        (n >>> 24) & 255,
+                        (n >>> 16) & 255,
+                        (n >>> 8) & 255,
+                        255 & n,
+                      ])
+                    ),
+                    s = e.box(
+                      e.types.tfdt,
+                      new Uint8Array([
+                        0,
+                        0,
+                        0,
+                        0,
+                        (i >>> 24) & 255,
+                        (i >>> 16) & 255,
+                        (i >>> 8) & 255,
+                        255 & i,
+                      ])
+                    ),
+                    o = e.sdtp(t),
+                    a = e.trun(t, o.byteLength + 16 + 16 + 8 + 16 + 8 + 8);
+                  return e.box(e.types.traf, r, s, a, o);
+                }),
+                (e.sdtp = function (t) {
+                  for (
+                    var i = t.samples || [],
+                      n = i.length,
+                      r = new Uint8Array(4 + n),
+                      s = 0;
+                    s < n;
+                    s++
+                  ) {
+                    var o = i[s].flags;
+                    r[s + 4] =
+                      (o.isLeading << 6) |
+                      (o.dependsOn << 4) |
+                      (o.isDependedOn << 2) |
+                      o.hasRedundancy;
+                  }
+                  return e.box(e.types.sdtp, r);
+                }),
+                (e.trun = function (t, i) {
+                  var n = t.samples || [],
+                    r = n.length,
+                    s = 12 + 16 * r,
+                    o = new Uint8Array(s);
+                  (i += 8 + s),
+                    o.set(
+                      [
+                        0,
+                        0,
+                        15,
+                        1,
+                        (r >>> 24) & 255,
+                        (r >>> 16) & 255,
+                        (r >>> 8) & 255,
+                        255 & r,
+                        (i >>> 24) & 255,
+                        (i >>> 16) & 255,
+                        (i >>> 8) & 255,
+                        255 & i,
+                      ],
+                      0
+                    );
+                  for (var a = 0; a < r; a++) {
+                    var h = n[a].duration,
+                      u = n[a].size,
+                      l = n[a].flags,
+                      d = n[a].cts;
+                    o.set(
+                      [
+                        (h >>> 24) & 255,
+                        (h >>> 16) & 255,
+                        (h >>> 8) & 255,
+                        255 & h,
+                        (u >>> 24) & 255,
+                        (u >>> 16) & 255,
+                        (u >>> 8) & 255,
+                        255 & u,
+                        (l.isLeading << 2) | l.dependsOn,
+                        (l.isDependedOn << 6) |
+                          (l.hasRedundancy << 4) |
+                          l.isNonSync,
+                        0,
+                        0,
+                        (d >>> 24) & 255,
+                        (d >>> 16) & 255,
+                        (d >>> 8) & 255,
+                        255 & d,
+                      ],
+                      12 + 16 * a
+                    );
+                  }
+                  return e.box(e.types.trun, o);
+                }),
+                (e.mdat = function (t) {
+                  return e.box(e.types.mdat, t);
+                }),
+                e
+              );
+            })();
+          v.init();
+          var y = v,
+            b = (function () {
+              function e() {}
+              return (
+                (e.getSilentFrame = function (e, t) {
+                  if ('mp4a.40.2' === e) {
+                    if (1 === t)
+                      return new Uint8Array([0, 200, 0, 128, 35, 128]);
+                    if (2 === t)
+                      return new Uint8Array([
+                        33, 0, 73, 144, 2, 25, 0, 35, 128,
+                      ]);
+                    if (3 === t)
+                      return new Uint8Array([
+                        0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142,
+                      ]);
+                    if (4 === t)
+                      return new Uint8Array([
+                        0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44,
+                        128, 8, 2, 56,
+                      ]);
+                    if (5 === t)
+                      return new Uint8Array([
+                        0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48,
+                        4, 153, 0, 33, 144, 2, 56,
+                      ]);
+                    if (6 === t)
+                      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 (1 === t)
+                      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,
+                      ]);
+                    if (2 === t)
+                      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,
+                      ]);
+                    if (3 === t)
+                      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;
+                }),
+                e
+              );
+            })(),
+            E = i(51),
+            S = (function () {
+              function e(e) {
+                (this.TAG = 'MP4Remuxer'),
+                  (this._config = e),
+                  (this._isLive = !0 === e.isLive),
+                  (this._dtsBase = -1),
+                  (this._dtsBaseInited = !1),
+                  (this._audioDtsBase = 1 / 0),
+                  (this._videoDtsBase = 1 / 0),
+                  (this._audioNextDts = void 0),
+                  (this._videoNextDts = void 0),
+                  (this._audioStashedLastSample = null),
+                  (this._videoStashedLastSample = null),
+                  (this._audioMeta = null),
+                  (this._videoMeta = null),
+                  (this._audioSegmentInfoList = new E.J1('audio')),
+                  (this._videoSegmentInfoList = new E.J1('video')),
+                  (this._onInitSegment = null),
+                  (this._onMediaSegment = null),
+                  (this._forceFirstIDR = !(
+                    !o.Z.chrome ||
+                    !(
+                      o.Z.version.major < 50 ||
+                      (50 === o.Z.version.major && o.Z.version.build < 2661)
+                    )
+                  )),
+                  (this._fillSilentAfterSeek = o.Z.msedge || o.Z.msie),
+                  (this._mp3UseMpegAudio = !o.Z.firefox),
+                  (this._fillAudioTimestampGap =
+                    this._config.fixAudioTimestampGap);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  (this._dtsBase = -1),
+                    (this._dtsBaseInited = !1),
+                    (this._audioMeta = null),
+                    (this._videoMeta = null),
+                    this._audioSegmentInfoList.clear(),
+                    (this._audioSegmentInfoList = null),
+                    this._videoSegmentInfoList.clear(),
+                    (this._videoSegmentInfoList = null),
+                    (this._onInitSegment = null),
+                    (this._onMediaSegment = null);
+                }),
+                (e.prototype.bindDataSource = function (e) {
+                  return (
+                    (e.onDataAvailable = this.remux.bind(this)),
+                    (e.onTrackMetadata =
+                      this._onTrackMetadataReceived.bind(this)),
+                    this
+                  );
+                }),
+                Object.defineProperty(e.prototype, 'onInitSegment', {
+                  get: function () {
+                    return this._onInitSegment;
+                  },
+                  set: function (e) {
+                    this._onInitSegment = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onMediaSegment', {
+                  get: function () {
+                    return this._onMediaSegment;
+                  },
+                  set: function (e) {
+                    this._onMediaSegment = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype.insertDiscontinuity = function () {
+                  this._audioNextDts = this._videoNextDts = void 0;
+                }),
+                (e.prototype.seek = function (e) {
+                  (this._audioStashedLastSample = null),
+                    (this._videoStashedLastSample = null),
+                    this._videoSegmentInfoList.clear(),
+                    this._audioSegmentInfoList.clear();
+                }),
+                (e.prototype.remux = function (e, t) {
+                  if (!this._onMediaSegment)
+                    throw new d.rT(
+                      'MP4Remuxer: onMediaSegment callback must be specificed!'
+                    );
+                  this._dtsBaseInited || this._calculateDtsBase(e, t),
+                    this._remuxVideo(t),
+                    this._remuxAudio(e);
+                }),
+                (e.prototype._onTrackMetadataReceived = function (e, t) {
+                  var i = null,
+                    n = 'mp4',
+                    r = t.codec;
+                  if ('audio' === e)
+                    (this._audioMeta = t),
+                      'mp3' === t.codec && this._mp3UseMpegAudio
+                        ? ((n = 'mpeg'), (r = ''), (i = new Uint8Array()))
+                        : (i = y.generateInitSegment(t));
+                  else {
+                    if ('video' !== e) return;
+                    (this._videoMeta = t), (i = y.generateInitSegment(t));
+                  }
+                  if (!this._onInitSegment)
+                    throw new d.rT(
+                      'MP4Remuxer: onInitSegment callback must be specified!'
+                    );
+                  this._onInitSegment(e, {
+                    type: e,
+                    data: i.buffer,
+                    codec: r,
+                    container: e + '/' + n,
+                    mediaDuration: t.duration,
+                  });
+                }),
+                (e.prototype._calculateDtsBase = function (e, t) {
+                  this._dtsBaseInited ||
+                    (e.samples &&
+                      e.samples.length &&
+                      (this._audioDtsBase = e.samples[0].dts),
+                    t.samples &&
+                      t.samples.length &&
+                      (this._videoDtsBase = t.samples[0].dts),
+                    (this._dtsBase = Math.min(
+                      this._audioDtsBase,
+                      this._videoDtsBase
+                    )),
+                    (this._dtsBaseInited = !0));
+                }),
+                (e.prototype.flushStashedSamples = function () {
+                  var e = this._videoStashedLastSample,
+                    t = this._audioStashedLastSample,
+                    i = {
+                      type: 'video',
+                      id: 1,
+                      sequenceNumber: 0,
+                      samples: [],
+                      length: 0,
+                    };
+                  null != e && (i.samples.push(e), (i.length = e.length));
+                  var n = {
+                    type: 'audio',
+                    id: 2,
+                    sequenceNumber: 0,
+                    samples: [],
+                    length: 0,
+                  };
+                  null != t && (n.samples.push(t), (n.length = t.length)),
+                    (this._videoStashedLastSample = null),
+                    (this._audioStashedLastSample = null),
+                    this._remuxVideo(i, !0),
+                    this._remuxAudio(n, !0);
+                }),
+                (e.prototype._remuxAudio = function (e, t) {
+                  if (null != this._audioMeta) {
+                    var i,
+                      n = e,
+                      r = n.samples,
+                      a = void 0,
+                      h = -1,
+                      u = this._audioMeta.refSampleDuration,
+                      l =
+                        'mp3' === this._audioMeta.codec &&
+                        this._mp3UseMpegAudio,
+                      d = this._dtsBaseInited && void 0 === this._audioNextDts,
+                      c = !1;
+                    if (r && 0 !== r.length && (1 !== r.length || t)) {
+                      var f = 0,
+                        _ = null,
+                        p = 0;
+                      l
+                        ? ((f = 0), (p = n.length))
+                        : ((f = 8), (p = 8 + n.length));
+                      var m = null;
+                      if (
+                        (r.length > 1 && (p -= (m = r.pop()).length),
+                        null != this._audioStashedLastSample)
+                      ) {
+                        var g = this._audioStashedLastSample;
+                        (this._audioStashedLastSample = null),
+                          r.unshift(g),
+                          (p += g.length);
+                      }
+                      null != m && (this._audioStashedLastSample = m);
+                      var v = r[0].dts - this._dtsBase;
+                      if (this._audioNextDts) a = v - this._audioNextDts;
+                      else if (this._audioSegmentInfoList.isEmpty())
+                        (a = 0),
+                          this._fillSilentAfterSeek &&
+                            !this._videoSegmentInfoList.isEmpty() &&
+                            'mp3' !== this._audioMeta.originalCodec &&
+                            (c = !0);
+                      else {
+                        var S =
+                          this._audioSegmentInfoList.getLastSampleBefore(v);
+                        if (null != S) {
+                          var A = v - (S.originalDts + S.duration);
+                          A <= 3 && (A = 0), (a = v - (S.dts + S.duration + A));
+                        } else a = 0;
+                      }
+                      if (c) {
+                        var L = v - a,
+                          R =
+                            this._videoSegmentInfoList.getLastSegmentBefore(v);
+                        if (null != R && R.beginDts < L) {
+                          if (
+                            (P = b.getSilentFrame(
+                              this._audioMeta.originalCodec,
+                              this._audioMeta.channelCount
+                            ))
+                          ) {
+                            var w = R.beginDts,
+                              O = L - R.beginDts;
+                            s.Z.v(
+                              this.TAG,
+                              'InsertPrefixSilentAudio: dts: ' +
+                                w +
+                                ', duration: ' +
+                                O
+                            ),
+                              r.unshift({ unit: P, dts: w, pts: w }),
+                              (p += P.byteLength);
+                          }
+                        } else c = !1;
+                      }
+                      for (var T = [], C = 0; C < r.length; C++) {
+                        var k = (g = r[C]).unit,
+                          D = g.dts - this._dtsBase,
+                          I = ((w = D), !1),
+                          M = null,
+                          B = 0;
+                        if (!(D < -0.001)) {
+                          if ('mp3' !== this._audioMeta.codec) {
+                            var x = D;
+                            if (
+                              (this._audioNextDts && (x = this._audioNextDts),
+                              (a = D - x) <= -3 * u)
+                            ) {
+                              s.Z.w(
+                                this.TAG,
+                                'Dropping 1 audio frame (originalDts: ' +
+                                  D +
+                                  ' ms ,curRefDts: ' +
+                                  x +
+                                  ' ms)  due to dtsCorrection: ' +
+                                  a +
+                                  ' ms overlap.'
+                              );
+                              continue;
+                            }
+                            if (
+                              a >= 3 * u &&
+                              this._fillAudioTimestampGap &&
+                              !o.Z.safari
+                            ) {
+                              I = !0;
+                              var P,
+                                U = Math.floor(a / u);
+                              s.Z.w(
+                                this.TAG,
+                                'Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: ' +
+                                  D +
+                                  ' ms, curRefDts: ' +
+                                  x +
+                                  ' ms, dtsCorrection: ' +
+                                  Math.round(a) +
+                                  ' ms, generate: ' +
+                                  U +
+                                  ' frames'
+                              ),
+                                (w = Math.floor(x)),
+                                (B = Math.floor(x + u) - w),
+                                null ==
+                                  (P = b.getSilentFrame(
+                                    this._audioMeta.originalCodec,
+                                    this._audioMeta.channelCount
+                                  )) &&
+                                  (s.Z.w(
+                                    this.TAG,
+                                    'Unable to generate silent frame for ' +
+                                      this._audioMeta.originalCodec +
+                                      ' with ' +
+                                      this._audioMeta.channelCount +
+                                      ' channels, repeat last frame'
+                                  ),
+                                  (P = k)),
+                                (M = []);
+                              for (var N = 0; N < U; N++) {
+                                x += u;
+                                var Z = Math.floor(x),
+                                  F = Math.floor(x + u) - Z,
+                                  G = {
+                                    dts: Z,
+                                    pts: Z,
+                                    cts: 0,
+                                    unit: P,
+                                    size: P.byteLength,
+                                    duration: F,
+                                    originalDts: D,
+                                    flags: {
+                                      isLeading: 0,
+                                      dependsOn: 1,
+                                      isDependedOn: 0,
+                                      hasRedundancy: 0,
+                                    },
+                                  };
+                                M.push(G), (p += G.size);
+                              }
+                              this._audioNextDts = x + u;
+                            } else
+                              (w = Math.floor(x)),
+                                (B = Math.floor(x + u) - w),
+                                (this._audioNextDts = x + u);
+                          } else {
+                            if (((w = D - a), C !== r.length - 1))
+                              B = r[C + 1].dts - this._dtsBase - a - w;
+                            else if (null != m)
+                              B = m.dts - this._dtsBase - a - w;
+                            else
+                              B =
+                                T.length >= 1
+                                  ? T[T.length - 1].duration
+                                  : Math.floor(u);
+                            this._audioNextDts = w + B;
+                          }
+                          -1 === h && (h = w),
+                            T.push({
+                              dts: w,
+                              pts: w,
+                              cts: 0,
+                              unit: g.unit,
+                              size: g.unit.byteLength,
+                              duration: B,
+                              originalDts: D,
+                              flags: {
+                                isLeading: 0,
+                                dependsOn: 1,
+                                isDependedOn: 0,
+                                hasRedundancy: 0,
+                              },
+                            }),
+                            I && T.push.apply(T, M);
+                        }
+                      }
+                      if (0 === T.length)
+                        return (n.samples = []), void (n.length = 0);
+                      l
+                        ? (_ = new Uint8Array(p))
+                        : (((_ = new Uint8Array(p))[0] = (p >>> 24) & 255),
+                          (_[1] = (p >>> 16) & 255),
+                          (_[2] = (p >>> 8) & 255),
+                          (_[3] = 255 & p),
+                          _.set(y.types.mdat, 4));
+                      for (C = 0; C < T.length; C++) {
+                        k = T[C].unit;
+                        _.set(k, f), (f += k.byteLength);
+                      }
+                      var j = T[T.length - 1];
+                      i = j.dts + j.duration;
+                      var V = new E.Yy();
+                      (V.beginDts = h),
+                        (V.endDts = i),
+                        (V.beginPts = h),
+                        (V.endPts = i),
+                        (V.originalBeginDts = T[0].originalDts),
+                        (V.originalEndDts = j.originalDts + j.duration),
+                        (V.firstSample = new E.Wk(
+                          T[0].dts,
+                          T[0].pts,
+                          T[0].duration,
+                          T[0].originalDts,
+                          !1
+                        )),
+                        (V.lastSample = new E.Wk(
+                          j.dts,
+                          j.pts,
+                          j.duration,
+                          j.originalDts,
+                          !1
+                        )),
+                        this._isLive || this._audioSegmentInfoList.append(V),
+                        (n.samples = T),
+                        n.sequenceNumber++;
+                      var z = null;
+                      (z = l ? new Uint8Array() : y.moof(n, h)),
+                        (n.samples = []),
+                        (n.length = 0);
+                      var K = {
+                        type: 'audio',
+                        data: this._mergeBoxes(z, _).buffer,
+                        sampleCount: T.length,
+                        info: V,
+                      };
+                      l && d && (K.timestampOffset = h),
+                        this._onMediaSegment('audio', K);
+                    }
+                  }
+                }),
+                (e.prototype._remuxVideo = function (e, t) {
+                  if (null != this._videoMeta) {
+                    var i,
+                      n,
+                      r = e,
+                      s = r.samples,
+                      o = void 0,
+                      a = -1,
+                      h = -1;
+                    if (s && 0 !== s.length && (1 !== s.length || t)) {
+                      var u = 8,
+                        l = null,
+                        d = 8 + e.length,
+                        c = null;
+                      if (
+                        (s.length > 1 && (d -= (c = s.pop()).length),
+                        null != this._videoStashedLastSample)
+                      ) {
+                        var f = this._videoStashedLastSample;
+                        (this._videoStashedLastSample = null),
+                          s.unshift(f),
+                          (d += f.length);
+                      }
+                      null != c && (this._videoStashedLastSample = c);
+                      var _ = s[0].dts - this._dtsBase;
+                      if (this._videoNextDts) o = _ - this._videoNextDts;
+                      else if (this._videoSegmentInfoList.isEmpty()) o = 0;
+                      else {
+                        var p =
+                          this._videoSegmentInfoList.getLastSampleBefore(_);
+                        if (null != p) {
+                          var m = _ - (p.originalDts + p.duration);
+                          m <= 3 && (m = 0), (o = _ - (p.dts + p.duration + m));
+                        } else o = 0;
+                      }
+                      for (
+                        var g = new E.Yy(), v = [], b = 0;
+                        b < s.length;
+                        b++
+                      ) {
+                        var S = (f = s[b]).dts - this._dtsBase,
+                          A = f.isKeyframe,
+                          L = S - o,
+                          R = f.cts,
+                          w = L + R;
+                        -1 === a && ((a = L), (h = w));
+                        var O = 0;
+                        if (b !== s.length - 1)
+                          O = s[b + 1].dts - this._dtsBase - o - L;
+                        else if (null != c) O = c.dts - this._dtsBase - o - L;
+                        else
+                          O =
+                            v.length >= 1
+                              ? v[v.length - 1].duration
+                              : Math.floor(this._videoMeta.refSampleDuration);
+                        if (A) {
+                          var T = new E.Wk(L, w, O, f.dts, !0);
+                          (T.fileposition = f.fileposition),
+                            g.appendSyncPoint(T);
+                        }
+                        v.push({
+                          dts: L,
+                          pts: w,
+                          cts: R,
+                          units: f.units,
+                          size: f.length,
+                          isKeyframe: A,
+                          duration: O,
+                          originalDts: S,
+                          flags: {
+                            isLeading: 0,
+                            dependsOn: A ? 2 : 1,
+                            isDependedOn: A ? 1 : 0,
+                            hasRedundancy: 0,
+                            isNonSync: A ? 0 : 1,
+                          },
+                        });
+                      }
+                      ((l = new Uint8Array(d))[0] = (d >>> 24) & 255),
+                        (l[1] = (d >>> 16) & 255),
+                        (l[2] = (d >>> 8) & 255),
+                        (l[3] = 255 & d),
+                        l.set(y.types.mdat, 4);
+                      for (b = 0; b < v.length; b++)
+                        for (var C = v[b].units; C.length; ) {
+                          var k = C.shift().data;
+                          l.set(k, u), (u += k.byteLength);
+                        }
+                      var D = v[v.length - 1];
+                      if (
+                        ((i = D.dts + D.duration),
+                        (n = D.pts + D.duration),
+                        (this._videoNextDts = i),
+                        (g.beginDts = a),
+                        (g.endDts = i),
+                        (g.beginPts = h),
+                        (g.endPts = n),
+                        (g.originalBeginDts = v[0].originalDts),
+                        (g.originalEndDts = D.originalDts + D.duration),
+                        (g.firstSample = new E.Wk(
+                          v[0].dts,
+                          v[0].pts,
+                          v[0].duration,
+                          v[0].originalDts,
+                          v[0].isKeyframe
+                        )),
+                        (g.lastSample = new E.Wk(
+                          D.dts,
+                          D.pts,
+                          D.duration,
+                          D.originalDts,
+                          D.isKeyframe
+                        )),
+                        this._isLive || this._videoSegmentInfoList.append(g),
+                        (r.samples = v),
+                        r.sequenceNumber++,
+                        this._forceFirstIDR)
+                      ) {
+                        var I = v[0].flags;
+                        (I.dependsOn = 2), (I.isNonSync = 0);
+                      }
+                      var M = y.moof(r, a);
+                      (r.samples = []),
+                        (r.length = 0),
+                        this._onMediaSegment('video', {
+                          type: 'video',
+                          data: this._mergeBoxes(M, l).buffer,
+                          sampleCount: v.length,
+                          info: g,
+                        });
+                    }
+                  }
+                }),
+                (e.prototype._mergeBoxes = function (e, t) {
+                  var i = new Uint8Array(e.byteLength + t.byteLength);
+                  return i.set(e, 0), i.set(t, e.byteLength), i;
+                }),
+                e
+              );
+            })(),
+            A = i(191),
+            L = i(257),
+            R = (function () {
+              function e(e, t) {
+                (this.TAG = 'TransmuxingController'),
+                  (this._emitter = new (r())()),
+                  (this._config = t),
+                  e.segments ||
+                    (e.segments = [
+                      {
+                        duration: e.duration,
+                        filesize: e.filesize,
+                        url: e.url,
+                      },
+                    ]),
+                  'boolean' != typeof e.cors && (e.cors = !0),
+                  'boolean' != typeof e.withCredentials &&
+                    (e.withCredentials = !1),
+                  (this._mediaDataSource = e),
+                  (this._currentSegmentIndex = 0);
+                var i = 0;
+                this._mediaDataSource.segments.forEach(function (n) {
+                  (n.timestampBase = i),
+                    (i += n.duration),
+                    (n.cors = e.cors),
+                    (n.withCredentials = e.withCredentials),
+                    t.referrerPolicy && (n.referrerPolicy = t.referrerPolicy);
+                }),
+                  isNaN(i) ||
+                    this._mediaDataSource.duration === i ||
+                    (this._mediaDataSource.duration = i),
+                  (this._mediaInfo = null),
+                  (this._demuxer = null),
+                  (this._remuxer = null),
+                  (this._ioctl = null),
+                  (this._pendingSeekTime = null),
+                  (this._pendingResolveSeekPoint = null),
+                  (this._statisticsReporter = null);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  (this._mediaInfo = null),
+                    (this._mediaDataSource = null),
+                    this._statisticsReporter &&
+                      this._disableStatisticsReporter(),
+                    this._ioctl &&
+                      (this._ioctl.destroy(), (this._ioctl = null)),
+                    this._demuxer &&
+                      (this._demuxer.destroy(), (this._demuxer = null)),
+                    this._remuxer &&
+                      (this._remuxer.destroy(), (this._remuxer = null)),
+                    this._emitter.removeAllListeners(),
+                    (this._emitter = null);
+                }),
+                (e.prototype.on = function (e, t) {
+                  this._emitter.addListener(e, t);
+                }),
+                (e.prototype.off = function (e, t) {
+                  this._emitter.removeListener(e, t);
+                }),
+                (e.prototype.start = function () {
+                  this._loadSegment(0), this._enableStatisticsReporter();
+                }),
+                (e.prototype._loadSegment = function (e, t) {
+                  this._currentSegmentIndex = e;
+                  var i = this._mediaDataSource.segments[e],
+                    n = (this._ioctl = new A.Z(i, this._config, e));
+                  (n.onError = this._onIOException.bind(this)),
+                    (n.onSeeked = this._onIOSeeked.bind(this)),
+                    (n.onComplete = this._onIOComplete.bind(this)),
+                    (n.onRedirect = this._onIORedirect.bind(this)),
+                    (n.onRecoveredEarlyEof =
+                      this._onIORecoveredEarlyEof.bind(this)),
+                    t
+                      ? this._demuxer.bindDataSource(this._ioctl)
+                      : (n.onDataArrival = this._onInitChunkArrival.bind(this)),
+                    n.open(t);
+                }),
+                (e.prototype.stop = function () {
+                  this._internalAbort(), this._disableStatisticsReporter();
+                }),
+                (e.prototype._internalAbort = function () {
+                  this._ioctl && (this._ioctl.destroy(), (this._ioctl = null));
+                }),
+                (e.prototype.pause = function () {
+                  this._ioctl &&
+                    this._ioctl.isWorking() &&
+                    (this._ioctl.pause(), this._disableStatisticsReporter());
+                }),
+                (e.prototype.resume = function () {
+                  this._ioctl &&
+                    this._ioctl.isPaused() &&
+                    (this._ioctl.resume(), this._enableStatisticsReporter());
+                }),
+                (e.prototype.seek = function (e) {
+                  if (null != this._mediaInfo && this._mediaInfo.isSeekable()) {
+                    var t = this._searchSegmentIndexContains(e);
+                    if (t === this._currentSegmentIndex) {
+                      var i = this._mediaInfo.segments[t];
+                      if (null == i) this._pendingSeekTime = e;
+                      else {
+                        var n = i.getNearestKeyframe(e);
+                        this._remuxer.seek(n.milliseconds),
+                          this._ioctl.seek(n.fileposition),
+                          (this._pendingResolveSeekPoint = n.milliseconds);
+                      }
+                    } else {
+                      var r = this._mediaInfo.segments[t];
+                      if (null == r)
+                        (this._pendingSeekTime = e),
+                          this._internalAbort(),
+                          this._remuxer.seek(),
+                          this._remuxer.insertDiscontinuity(),
+                          this._loadSegment(t);
+                      else {
+                        n = r.getNearestKeyframe(e);
+                        this._internalAbort(),
+                          this._remuxer.seek(e),
+                          this._remuxer.insertDiscontinuity(),
+                          this._demuxer.resetMediaInfo(),
+                          (this._demuxer.timestampBase =
+                            this._mediaDataSource.segments[t].timestampBase),
+                          this._loadSegment(t, n.fileposition),
+                          (this._pendingResolveSeekPoint = n.milliseconds),
+                          this._reportSegmentMediaInfo(t);
+                      }
+                    }
+                    this._enableStatisticsReporter();
+                  }
+                }),
+                (e.prototype._searchSegmentIndexContains = function (e) {
+                  for (
+                    var t = this._mediaDataSource.segments,
+                      i = t.length - 1,
+                      n = 0;
+                    n < t.length;
+                    n++
+                  )
+                    if (e < t[n].timestampBase) {
+                      i = n - 1;
+                      break;
+                    }
+                  return i;
+                }),
+                (e.prototype._onInitChunkArrival = function (e, t) {
+                  var i = this,
+                    n = null,
+                    r = 0;
+                  if (t > 0)
+                    this._demuxer.bindDataSource(this._ioctl),
+                      (this._demuxer.timestampBase =
+                        this._mediaDataSource.segments[
+                          this._currentSegmentIndex
+                        ].timestampBase),
+                      (r = this._demuxer.parseChunks(e, t));
+                  else if ((n = g.probe(e)).match) {
+                    (this._demuxer = new g(n, this._config)),
+                      this._remuxer || (this._remuxer = new S(this._config));
+                    var o = this._mediaDataSource;
+                    null == o.duration ||
+                      isNaN(o.duration) ||
+                      (this._demuxer.overridedDuration = o.duration),
+                      'boolean' == typeof o.hasAudio &&
+                        (this._demuxer.overridedHasAudio = o.hasAudio),
+                      'boolean' == typeof o.hasVideo &&
+                        (this._demuxer.overridedHasVideo = o.hasVideo),
+                      (this._demuxer.timestampBase =
+                        o.segments[this._currentSegmentIndex].timestampBase),
+                      (this._demuxer.onError =
+                        this._onDemuxException.bind(this)),
+                      (this._demuxer.onMediaInfo =
+                        this._onMediaInfo.bind(this)),
+                      (this._demuxer.onMetaDataArrived =
+                        this._onMetaDataArrived.bind(this)),
+                      (this._demuxer.onScriptDataArrived =
+                        this._onScriptDataArrived.bind(this)),
+                      this._remuxer.bindDataSource(
+                        this._demuxer.bindDataSource(this._ioctl)
+                      ),
+                      (this._remuxer.onInitSegment =
+                        this._onRemuxerInitSegmentArrival.bind(this)),
+                      (this._remuxer.onMediaSegment =
+                        this._onRemuxerMediaSegmentArrival.bind(this)),
+                      (r = this._demuxer.parseChunks(e, t));
+                  } else
+                    (n = null),
+                      s.Z.e(this.TAG, 'Non-FLV, Unsupported media type!'),
+                      Promise.resolve().then(function () {
+                        i._internalAbort();
+                      }),
+                      this._emitter.emit(
+                        L.Z.DEMUX_ERROR,
+                        m.Z.FORMAT_UNSUPPORTED,
+                        'Non-FLV, Unsupported media type'
+                      ),
+                      (r = 0);
+                  return r;
+                }),
+                (e.prototype._onMediaInfo = function (e) {
+                  var t = this;
+                  null == this._mediaInfo &&
+                    ((this._mediaInfo = Object.assign({}, e)),
+                    (this._mediaInfo.keyframesIndex = null),
+                    (this._mediaInfo.segments = []),
+                    (this._mediaInfo.segmentCount =
+                      this._mediaDataSource.segments.length),
+                    Object.setPrototypeOf(this._mediaInfo, a.Z.prototype));
+                  var i = Object.assign({}, e);
+                  Object.setPrototypeOf(i, a.Z.prototype),
+                    (this._mediaInfo.segments[this._currentSegmentIndex] = i),
+                    this._reportSegmentMediaInfo(this._currentSegmentIndex),
+                    null != this._pendingSeekTime &&
+                      Promise.resolve().then(function () {
+                        var e = t._pendingSeekTime;
+                        (t._pendingSeekTime = null), t.seek(e);
+                      });
+                }),
+                (e.prototype._onMetaDataArrived = function (e) {
+                  this._emitter.emit(L.Z.METADATA_ARRIVED, e);
+                }),
+                (e.prototype._onScriptDataArrived = function (e) {
+                  this._emitter.emit(L.Z.SCRIPTDATA_ARRIVED, e);
+                }),
+                (e.prototype._onIOSeeked = function () {
+                  this._remuxer.insertDiscontinuity();
+                }),
+                (e.prototype._onIOComplete = function (e) {
+                  var t = e + 1;
+                  t < this._mediaDataSource.segments.length
+                    ? (this._internalAbort(),
+                      this._remuxer.flushStashedSamples(),
+                      this._loadSegment(t))
+                    : (this._remuxer.flushStashedSamples(),
+                      this._emitter.emit(L.Z.LOADING_COMPLETE),
+                      this._disableStatisticsReporter());
+                }),
+                (e.prototype._onIORedirect = function (e) {
+                  var t = this._ioctl.extraData;
+                  this._mediaDataSource.segments[t].redirectedURL = e;
+                }),
+                (e.prototype._onIORecoveredEarlyEof = function () {
+                  this._emitter.emit(L.Z.RECOVERED_EARLY_EOF);
+                }),
+                (e.prototype._onIOException = function (e, t) {
+                  s.Z.e(
+                    this.TAG,
+                    'IOException: type = ' +
+                      e +
+                      ', code = ' +
+                      t.code +
+                      ', msg = ' +
+                      t.msg
+                  ),
+                    this._emitter.emit(L.Z.IO_ERROR, e, t),
+                    this._disableStatisticsReporter();
+                }),
+                (e.prototype._onDemuxException = function (e, t) {
+                  s.Z.e(
+                    this.TAG,
+                    'DemuxException: type = ' + e + ', info = ' + t
+                  ),
+                    this._emitter.emit(L.Z.DEMUX_ERROR, e, t);
+                }),
+                (e.prototype._onRemuxerInitSegmentArrival = function (e, t) {
+                  this._emitter.emit(L.Z.INIT_SEGMENT, e, t);
+                }),
+                (e.prototype._onRemuxerMediaSegmentArrival = function (e, t) {
+                  if (
+                    null == this._pendingSeekTime &&
+                    (this._emitter.emit(L.Z.MEDIA_SEGMENT, e, t),
+                    null != this._pendingResolveSeekPoint && 'video' === e)
+                  ) {
+                    var i = t.info.syncPoints,
+                      n = this._pendingResolveSeekPoint;
+                    (this._pendingResolveSeekPoint = null),
+                      o.Z.safari &&
+                        i.length > 0 &&
+                        i[0].originalDts === n &&
+                        (n = i[0].pts),
+                      this._emitter.emit(L.Z.RECOMMEND_SEEKPOINT, n);
+                  }
+                }),
+                (e.prototype._enableStatisticsReporter = function () {
+                  null == this._statisticsReporter &&
+                    (this._statisticsReporter = self.setInterval(
+                      this._reportStatisticsInfo.bind(this),
+                      this._config.statisticsInfoReportInterval
+                    ));
+                }),
+                (e.prototype._disableStatisticsReporter = function () {
+                  this._statisticsReporter &&
+                    (self.clearInterval(this._statisticsReporter),
+                    (this._statisticsReporter = null));
+                }),
+                (e.prototype._reportSegmentMediaInfo = function (e) {
+                  var t = this._mediaInfo.segments[e],
+                    i = Object.assign({}, t);
+                  (i.duration = this._mediaInfo.duration),
+                    (i.segmentCount = this._mediaInfo.segmentCount),
+                    delete i.segments,
+                    delete i.keyframesIndex,
+                    this._emitter.emit(L.Z.MEDIA_INFO, i);
+                }),
+                (e.prototype._reportStatisticsInfo = function () {
+                  var e = {};
+                  (e.url = this._ioctl.currentURL),
+                    (e.hasRedirect = this._ioctl.hasRedirect),
+                    e.hasRedirect &&
+                      (e.redirectedURL = this._ioctl.currentRedirectedURL),
+                    (e.speed = this._ioctl.currentSpeed),
+                    (e.loaderType = this._ioctl.loaderType),
+                    (e.currentSegmentIndex = this._currentSegmentIndex),
+                    (e.totalSegmentCount =
+                      this._mediaDataSource.segments.length),
+                    this._emitter.emit(L.Z.STATISTICS_INFO, e);
+                }),
+                e
+              );
+            })();
+        },
+        257: function (e, t) {
+          'use strict';
+          t.Z = {
+            IO_ERROR: 'io_error',
+            DEMUX_ERROR: 'demux_error',
+            INIT_SEGMENT: 'init_segment',
+            MEDIA_SEGMENT: 'media_segment',
+            LOADING_COMPLETE: 'loading_complete',
+            RECOVERED_EARLY_EOF: 'recovered_early_eof',
+            MEDIA_INFO: 'media_info',
+            METADATA_ARRIVED: 'metadata_arrived',
+            SCRIPTDATA_ARRIVED: 'scriptdata_arrived',
+            STATISTICS_INFO: 'statistics_info',
+            RECOMMEND_SEEKPOINT: 'recommend_seekpoint',
+          };
+        },
+        82: function (e, t, i) {
+          'use strict';
+          i(846), i(219), i(949), i(257);
+        },
+        600: function (e, t) {
+          'use strict';
+          t.Z = {
+            OK: 'OK',
+            FORMAT_ERROR: 'FormatError',
+            FORMAT_UNSUPPORTED: 'FormatUnsupported',
+            CODEC_UNSUPPORTED: 'CodecUnsupported',
+          };
+        },
+        60: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            default: function () {
+              return D;
+            },
+          });
+          var n = i(219),
+            r = i(191),
+            s = {
+              enableWorker: !1,
+              enableStashBuffer: !0,
+              stashInitialSize: void 0,
+              isLive: !1,
+              lazyLoad: !0,
+              lazyLoadMaxDuration: 180,
+              lazyLoadRecoverDuration: 30,
+              deferLoadAfterSourceOpen: !0,
+              autoCleanupMaxBackwardDuration: 180,
+              autoCleanupMinBackwardDuration: 120,
+              statisticsInfoReportInterval: 600,
+              fixAudioTimestampGap: !0,
+              accurateSeek: !1,
+              seekType: 'range',
+              seekParamStart: 'bstart',
+              seekParamEnd: 'bend',
+              rangeLoadZeroStart: !1,
+              customSeekHandler: void 0,
+              reuseRedirectedURL: !1,
+              headers: void 0,
+              customLoader: void 0,
+            };
+          function o() {
+            return Object.assign({}, s);
+          }
+          var a = (function () {
+              function e() {}
+              return (
+                (e.supportMSEH264Playback = function () {
+                  return (
+                    window.MediaSource &&
+                    window.MediaSource.isTypeSupported(
+                      'video/mp4; codecs="avc1.42E01E,mp4a.40.2"'
+                    )
+                  );
+                }),
+                (e.supportNetworkStreamIO = function () {
+                  var e = new r.Z({}, o()),
+                    t = e.loaderType;
+                  return (
+                    e.destroy(),
+                    'fetch-stream-loader' == t || 'xhr-moz-chunked-loader' == t
+                  );
+                }),
+                (e.getNetworkLoaderTypeName = function () {
+                  var e = new r.Z({}, o()),
+                    t = e.loaderType;
+                  return e.destroy(), t;
+                }),
+                (e.supportNativeMediaPlayback = function (t) {
+                  null == e.videoElement &&
+                    (e.videoElement = window.document.createElement('video'));
+                  var i = e.videoElement.canPlayType(t);
+                  return 'probably' === i || 'maybe' == i;
+                }),
+                (e.getFeatureList = function () {
+                  var t = {
+                    mseFlvPlayback: !1,
+                    mseLiveFlvPlayback: !1,
+                    networkStreamIO: !1,
+                    networkLoaderName: '',
+                    nativeMP4H264Playback: !1,
+                    nativeWebmVP8Playback: !1,
+                    nativeWebmVP9Playback: !1,
+                  };
+                  return (
+                    (t.mseFlvPlayback = e.supportMSEH264Playback()),
+                    (t.networkStreamIO = e.supportNetworkStreamIO()),
+                    (t.networkLoaderName = e.getNetworkLoaderTypeName()),
+                    (t.mseLiveFlvPlayback =
+                      t.mseFlvPlayback && t.networkStreamIO),
+                    (t.nativeMP4H264Playback = e.supportNativeMediaPlayback(
+                      'video/mp4; codecs="avc1.42001E, mp4a.40.2"'
+                    )),
+                    (t.nativeWebmVP8Playback = e.supportNativeMediaPlayback(
+                      'video/webm; codecs="vp8.0, vorbis"'
+                    )),
+                    (t.nativeWebmVP9Playback = e.supportNativeMediaPlayback(
+                      'video/webm; codecs="vp9"'
+                    )),
+                    t
+                  );
+                }),
+                e
+              );
+            })(),
+            h = i(939),
+            u = i(716),
+            l = i.n(u),
+            d = i(300),
+            c = i(538),
+            f = {
+              ERROR: 'error',
+              LOADING_COMPLETE: 'loading_complete',
+              RECOVERED_EARLY_EOF: 'recovered_early_eof',
+              MEDIA_INFO: 'media_info',
+              METADATA_ARRIVED: 'metadata_arrived',
+              SCRIPTDATA_ARRIVED: 'scriptdata_arrived',
+              STATISTICS_INFO: 'statistics_info',
+            },
+            _ = i(397),
+            p = i.n(_),
+            m = i(846),
+            g = i(949),
+            v = i(257),
+            y = i(118),
+            b = (function () {
+              function e(e, t) {
+                if (
+                  ((this.TAG = 'Transmuxer'),
+                  (this._emitter = new (l())()),
+                  t.enableWorker && 'undefined' != typeof Worker)
+                )
+                  try {
+                    (this._worker = p()(82)),
+                      (this._workerDestroying = !1),
+                      this._worker.addEventListener(
+                        'message',
+                        this._onWorkerMessage.bind(this)
+                      ),
+                      this._worker.postMessage({ cmd: 'init', param: [e, t] }),
+                      (this.e = {
+                        onLoggingConfigChanged:
+                          this._onLoggingConfigChanged.bind(this),
+                      }),
+                      m.Z.registerListener(this.e.onLoggingConfigChanged),
+                      this._worker.postMessage({
+                        cmd: 'logging_config',
+                        param: m.Z.getConfig(),
+                      });
+                  } catch (i) {
+                    d.Z.e(
+                      this.TAG,
+                      'Error while initialize transmuxing worker, fallback to inline transmuxing'
+                    ),
+                      (this._worker = null),
+                      (this._controller = new g.Z(e, t));
+                  }
+                else this._controller = new g.Z(e, t);
+                if (this._controller) {
+                  var i = this._controller;
+                  i.on(v.Z.IO_ERROR, this._onIOError.bind(this)),
+                    i.on(v.Z.DEMUX_ERROR, this._onDemuxError.bind(this)),
+                    i.on(v.Z.INIT_SEGMENT, this._onInitSegment.bind(this)),
+                    i.on(v.Z.MEDIA_SEGMENT, this._onMediaSegment.bind(this)),
+                    i.on(
+                      v.Z.LOADING_COMPLETE,
+                      this._onLoadingComplete.bind(this)
+                    ),
+                    i.on(
+                      v.Z.RECOVERED_EARLY_EOF,
+                      this._onRecoveredEarlyEof.bind(this)
+                    ),
+                    i.on(v.Z.MEDIA_INFO, this._onMediaInfo.bind(this)),
+                    i.on(
+                      v.Z.METADATA_ARRIVED,
+                      this._onMetaDataArrived.bind(this)
+                    ),
+                    i.on(
+                      v.Z.SCRIPTDATA_ARRIVED,
+                      this._onScriptDataArrived.bind(this)
+                    ),
+                    i.on(
+                      v.Z.STATISTICS_INFO,
+                      this._onStatisticsInfo.bind(this)
+                    ),
+                    i.on(
+                      v.Z.RECOMMEND_SEEKPOINT,
+                      this._onRecommendSeekpoint.bind(this)
+                    );
+                }
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  this._worker
+                    ? this._workerDestroying ||
+                      ((this._workerDestroying = !0),
+                      this._worker.postMessage({ cmd: 'destroy' }),
+                      m.Z.removeListener(this.e.onLoggingConfigChanged),
+                      (this.e = null))
+                    : (this._controller.destroy(), (this._controller = null)),
+                    this._emitter.removeAllListeners(),
+                    (this._emitter = null);
+                }),
+                (e.prototype.on = function (e, t) {
+                  this._emitter.addListener(e, t);
+                }),
+                (e.prototype.off = function (e, t) {
+                  this._emitter.removeListener(e, t);
+                }),
+                (e.prototype.hasWorker = function () {
+                  return null != this._worker;
+                }),
+                (e.prototype.open = function () {
+                  this._worker
+                    ? this._worker.postMessage({ cmd: 'start' })
+                    : this._controller.start();
+                }),
+                (e.prototype.close = function () {
+                  this._worker
+                    ? this._worker.postMessage({ cmd: 'stop' })
+                    : this._controller.stop();
+                }),
+                (e.prototype.seek = function (e) {
+                  this._worker
+                    ? this._worker.postMessage({ cmd: 'seek', param: e })
+                    : this._controller.seek(e);
+                }),
+                (e.prototype.pause = function () {
+                  this._worker
+                    ? this._worker.postMessage({ cmd: 'pause' })
+                    : this._controller.pause();
+                }),
+                (e.prototype.resume = function () {
+                  this._worker
+                    ? this._worker.postMessage({ cmd: 'resume' })
+                    : this._controller.resume();
+                }),
+                (e.prototype._onInitSegment = function (e, t) {
+                  var i = this;
+                  Promise.resolve().then(function () {
+                    i._emitter.emit(v.Z.INIT_SEGMENT, e, t);
+                  });
+                }),
+                (e.prototype._onMediaSegment = function (e, t) {
+                  var i = this;
+                  Promise.resolve().then(function () {
+                    i._emitter.emit(v.Z.MEDIA_SEGMENT, e, t);
+                  });
+                }),
+                (e.prototype._onLoadingComplete = function () {
+                  var e = this;
+                  Promise.resolve().then(function () {
+                    e._emitter.emit(v.Z.LOADING_COMPLETE);
+                  });
+                }),
+                (e.prototype._onRecoveredEarlyEof = function () {
+                  var e = this;
+                  Promise.resolve().then(function () {
+                    e._emitter.emit(v.Z.RECOVERED_EARLY_EOF);
+                  });
+                }),
+                (e.prototype._onMediaInfo = function (e) {
+                  var t = this;
+                  Promise.resolve().then(function () {
+                    t._emitter.emit(v.Z.MEDIA_INFO, e);
+                  });
+                }),
+                (e.prototype._onMetaDataArrived = function (e) {
+                  var t = this;
+                  Promise.resolve().then(function () {
+                    t._emitter.emit(v.Z.METADATA_ARRIVED, e);
+                  });
+                }),
+                (e.prototype._onScriptDataArrived = function (e) {
+                  var t = this;
+                  Promise.resolve().then(function () {
+                    t._emitter.emit(v.Z.SCRIPTDATA_ARRIVED, e);
+                  });
+                }),
+                (e.prototype._onStatisticsInfo = function (e) {
+                  var t = this;
+                  Promise.resolve().then(function () {
+                    t._emitter.emit(v.Z.STATISTICS_INFO, e);
+                  });
+                }),
+                (e.prototype._onIOError = function (e, t) {
+                  var i = this;
+                  Promise.resolve().then(function () {
+                    i._emitter.emit(v.Z.IO_ERROR, e, t);
+                  });
+                }),
+                (e.prototype._onDemuxError = function (e, t) {
+                  var i = this;
+                  Promise.resolve().then(function () {
+                    i._emitter.emit(v.Z.DEMUX_ERROR, e, t);
+                  });
+                }),
+                (e.prototype._onRecommendSeekpoint = function (e) {
+                  var t = this;
+                  Promise.resolve().then(function () {
+                    t._emitter.emit(v.Z.RECOMMEND_SEEKPOINT, e);
+                  });
+                }),
+                (e.prototype._onLoggingConfigChanged = function (e) {
+                  this._worker &&
+                    this._worker.postMessage({
+                      cmd: 'logging_config',
+                      param: e,
+                    });
+                }),
+                (e.prototype._onWorkerMessage = function (e) {
+                  var t = e.data,
+                    i = t.data;
+                  if ('destroyed' === t.msg || this._workerDestroying)
+                    return (
+                      (this._workerDestroying = !1),
+                      this._worker.terminate(),
+                      void (this._worker = null)
+                    );
+                  switch (t.msg) {
+                    case v.Z.INIT_SEGMENT:
+                    case v.Z.MEDIA_SEGMENT:
+                      this._emitter.emit(t.msg, i.type, i.data);
+                      break;
+                    case v.Z.LOADING_COMPLETE:
+                    case v.Z.RECOVERED_EARLY_EOF:
+                      this._emitter.emit(t.msg);
+                      break;
+                    case v.Z.MEDIA_INFO:
+                      Object.setPrototypeOf(i, y.Z.prototype),
+                        this._emitter.emit(t.msg, i);
+                      break;
+                    case v.Z.METADATA_ARRIVED:
+                    case v.Z.SCRIPTDATA_ARRIVED:
+                    case v.Z.STATISTICS_INFO:
+                      this._emitter.emit(t.msg, i);
+                      break;
+                    case v.Z.IO_ERROR:
+                    case v.Z.DEMUX_ERROR:
+                      this._emitter.emit(t.msg, i.type, i.info);
+                      break;
+                    case v.Z.RECOMMEND_SEEKPOINT:
+                      this._emitter.emit(t.msg, i);
+                      break;
+                    case 'logcat_callback':
+                      d.Z.emitter.emit('log', i.type, i.logcat);
+                  }
+                }),
+                e
+              );
+            })(),
+            E = {
+              ERROR: 'error',
+              SOURCE_OPEN: 'source_open',
+              UPDATE_END: 'update_end',
+              BUFFER_FULL: 'buffer_full',
+            },
+            S = i(51),
+            A = i(29),
+            L = (function () {
+              function e(e) {
+                (this.TAG = 'MSEController'),
+                  (this._config = e),
+                  (this._emitter = new (l())()),
+                  this._config.isLive &&
+                    null == this._config.autoCleanupSourceBuffer &&
+                    (this._config.autoCleanupSourceBuffer = !0),
+                  (this.e = {
+                    onSourceOpen: this._onSourceOpen.bind(this),
+                    onSourceEnded: this._onSourceEnded.bind(this),
+                    onSourceClose: this._onSourceClose.bind(this),
+                    onSourceBufferError: this._onSourceBufferError.bind(this),
+                    onSourceBufferUpdateEnd:
+                      this._onSourceBufferUpdateEnd.bind(this),
+                  }),
+                  (this._mediaSource = null),
+                  (this._mediaSourceObjectURL = null),
+                  (this._mediaElement = null),
+                  (this._isBufferFull = !1),
+                  (this._hasPendingEos = !1),
+                  (this._requireSetMediaDuration = !1),
+                  (this._pendingMediaDuration = 0),
+                  (this._pendingSourceBufferInit = []),
+                  (this._mimeTypes = { video: null, audio: null }),
+                  (this._sourceBuffers = { video: null, audio: null }),
+                  (this._lastInitSegments = { video: null, audio: null }),
+                  (this._pendingSegments = { video: [], audio: [] }),
+                  (this._pendingRemoveRanges = { video: [], audio: [] }),
+                  (this._idrList = new S.Vn());
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  (this._mediaElement || this._mediaSource) &&
+                    this.detachMediaElement(),
+                    (this.e = null),
+                    this._emitter.removeAllListeners(),
+                    (this._emitter = null);
+                }),
+                (e.prototype.on = function (e, t) {
+                  this._emitter.addListener(e, t);
+                }),
+                (e.prototype.off = function (e, t) {
+                  this._emitter.removeListener(e, t);
+                }),
+                (e.prototype.attachMediaElement = function (e) {
+                  if (this._mediaSource)
+                    throw new A.rT(
+                      'MediaSource has been attached to an HTMLMediaElement!'
+                    );
+                  var t = (this._mediaSource = new window.MediaSource());
+                  t.addEventListener('sourceopen', this.e.onSourceOpen),
+                    t.addEventListener('sourceended', this.e.onSourceEnded),
+                    t.addEventListener('sourceclose', this.e.onSourceClose),
+                    (this._mediaElement = e),
+                    (this._mediaSourceObjectURL = window.URL.createObjectURL(
+                      this._mediaSource
+                    )),
+                    (e.src = this._mediaSourceObjectURL);
+                }),
+                (e.prototype.detachMediaElement = function () {
+                  if (this._mediaSource) {
+                    var e = this._mediaSource;
+                    for (var t in this._sourceBuffers) {
+                      var i = this._pendingSegments[t];
+                      i.splice(0, i.length),
+                        (this._pendingSegments[t] = null),
+                        (this._pendingRemoveRanges[t] = null),
+                        (this._lastInitSegments[t] = null);
+                      var n = this._sourceBuffers[t];
+                      if (n) {
+                        if ('closed' !== e.readyState) {
+                          try {
+                            e.removeSourceBuffer(n);
+                          } catch (e) {
+                            d.Z.e(this.TAG, e.message);
+                          }
+                          n.removeEventListener(
+                            'error',
+                            this.e.onSourceBufferError
+                          ),
+                            n.removeEventListener(
+                              'updateend',
+                              this.e.onSourceBufferUpdateEnd
+                            );
+                        }
+                        (this._mimeTypes[t] = null),
+                          (this._sourceBuffers[t] = null);
+                      }
+                    }
+                    if ('open' === e.readyState)
+                      try {
+                        e.endOfStream();
+                      } catch (e) {
+                        d.Z.e(this.TAG, e.message);
+                      }
+                    e.removeEventListener('sourceopen', this.e.onSourceOpen),
+                      e.removeEventListener(
+                        'sourceended',
+                        this.e.onSourceEnded
+                      ),
+                      e.removeEventListener(
+                        'sourceclose',
+                        this.e.onSourceClose
+                      ),
+                      (this._pendingSourceBufferInit = []),
+                      (this._isBufferFull = !1),
+                      this._idrList.clear(),
+                      (this._mediaSource = null);
+                  }
+                  this._mediaElement &&
+                    ((this._mediaElement.src = ''),
+                    this._mediaElement.removeAttribute('src'),
+                    (this._mediaElement = null)),
+                    this._mediaSourceObjectURL &&
+                      (window.URL.revokeObjectURL(this._mediaSourceObjectURL),
+                      (this._mediaSourceObjectURL = null));
+                }),
+                (e.prototype.appendInitSegment = function (e, t) {
+                  if (
+                    !this._mediaSource ||
+                    'open' !== this._mediaSource.readyState
+                  )
+                    return (
+                      this._pendingSourceBufferInit.push(e),
+                      void this._pendingSegments[e.type].push(e)
+                    );
+                  var i = e,
+                    n = '' + i.container;
+                  i.codec && i.codec.length > 0 && (n += ';codecs=' + i.codec);
+                  var r = !1;
+                  if (
+                    (d.Z.v(
+                      this.TAG,
+                      'Received Initialization Segment, mimeType: ' + n
+                    ),
+                    (this._lastInitSegments[i.type] = i),
+                    n !== this._mimeTypes[i.type])
+                  ) {
+                    if (this._mimeTypes[i.type])
+                      d.Z.v(
+                        this.TAG,
+                        'Notice: ' +
+                          i.type +
+                          ' mimeType changed, origin: ' +
+                          this._mimeTypes[i.type] +
+                          ', target: ' +
+                          n
+                      );
+                    else {
+                      r = !0;
+                      try {
+                        var s = (this._sourceBuffers[i.type] =
+                          this._mediaSource.addSourceBuffer(n));
+                        s.addEventListener('error', this.e.onSourceBufferError),
+                          s.addEventListener(
+                            'updateend',
+                            this.e.onSourceBufferUpdateEnd
+                          );
+                      } catch (e) {
+                        return (
+                          d.Z.e(this.TAG, e.message),
+                          void this._emitter.emit(E.ERROR, {
+                            code: e.code,
+                            msg: e.message,
+                          })
+                        );
+                      }
+                    }
+                    this._mimeTypes[i.type] = n;
+                  }
+                  t || this._pendingSegments[i.type].push(i),
+                    r ||
+                      (this._sourceBuffers[i.type] &&
+                        !this._sourceBuffers[i.type].updating &&
+                        this._doAppendSegments()),
+                    c.Z.safari &&
+                      'audio/mpeg' === i.container &&
+                      i.mediaDuration > 0 &&
+                      ((this._requireSetMediaDuration = !0),
+                      (this._pendingMediaDuration = i.mediaDuration / 1e3),
+                      this._updateMediaSourceDuration());
+                }),
+                (e.prototype.appendMediaSegment = function (e) {
+                  var t = e;
+                  this._pendingSegments[t.type].push(t),
+                    this._config.autoCleanupSourceBuffer &&
+                      this._needCleanupSourceBuffer() &&
+                      this._doCleanupSourceBuffer();
+                  var i = this._sourceBuffers[t.type];
+                  !i ||
+                    i.updating ||
+                    this._hasPendingRemoveRanges() ||
+                    this._doAppendSegments();
+                }),
+                (e.prototype.seek = function (e) {
+                  for (var t in this._sourceBuffers)
+                    if (this._sourceBuffers[t]) {
+                      var i = this._sourceBuffers[t];
+                      if ('open' === this._mediaSource.readyState)
+                        try {
+                          i.abort();
+                        } catch (e) {
+                          d.Z.e(this.TAG, e.message);
+                        }
+                      this._idrList.clear();
+                      var n = this._pendingSegments[t];
+                      if (
+                        (n.splice(0, n.length),
+                        'closed' !== this._mediaSource.readyState)
+                      ) {
+                        for (var r = 0; r < i.buffered.length; r++) {
+                          var s = i.buffered.start(r),
+                            o = i.buffered.end(r);
+                          this._pendingRemoveRanges[t].push({
+                            start: s,
+                            end: o,
+                          });
+                        }
+                        if (
+                          (i.updating || this._doRemoveRanges(), c.Z.safari)
+                        ) {
+                          var a = this._lastInitSegments[t];
+                          a &&
+                            (this._pendingSegments[t].push(a),
+                            i.updating || this._doAppendSegments());
+                        }
+                      }
+                    }
+                }),
+                (e.prototype.endOfStream = function () {
+                  var e = this._mediaSource,
+                    t = this._sourceBuffers;
+                  e && 'open' === e.readyState
+                    ? (t.video && t.video.updating) ||
+                      (t.audio && t.audio.updating)
+                      ? (this._hasPendingEos = !0)
+                      : ((this._hasPendingEos = !1), e.endOfStream())
+                    : e &&
+                      'closed' === e.readyState &&
+                      this._hasPendingSegments() &&
+                      (this._hasPendingEos = !0);
+                }),
+                (e.prototype.getNearestKeyframe = function (e) {
+                  return this._idrList.getLastSyncPointBeforeDts(e);
+                }),
+                (e.prototype._needCleanupSourceBuffer = function () {
+                  if (!this._config.autoCleanupSourceBuffer) return !1;
+                  var e = this._mediaElement.currentTime;
+                  for (var t in this._sourceBuffers) {
+                    var i = this._sourceBuffers[t];
+                    if (i) {
+                      var n = i.buffered;
+                      if (
+                        n.length >= 1 &&
+                        e - n.start(0) >=
+                          this._config.autoCleanupMaxBackwardDuration
+                      )
+                        return !0;
+                    }
+                  }
+                  return !1;
+                }),
+                (e.prototype._doCleanupSourceBuffer = function () {
+                  var e = this._mediaElement.currentTime;
+                  for (var t in this._sourceBuffers) {
+                    var i = this._sourceBuffers[t];
+                    if (i) {
+                      for (
+                        var n = i.buffered, r = !1, s = 0;
+                        s < n.length;
+                        s++
+                      ) {
+                        var o = n.start(s),
+                          a = n.end(s);
+                        if (o <= e && e < a + 3) {
+                          if (
+                            e - o >=
+                            this._config.autoCleanupMaxBackwardDuration
+                          ) {
+                            r = !0;
+                            var h =
+                              e - this._config.autoCleanupMinBackwardDuration;
+                            this._pendingRemoveRanges[t].push({
+                              start: o,
+                              end: h,
+                            });
+                          }
+                        } else
+                          a < e &&
+                            ((r = !0),
+                            this._pendingRemoveRanges[t].push({
+                              start: o,
+                              end: a,
+                            }));
+                      }
+                      r && !i.updating && this._doRemoveRanges();
+                    }
+                  }
+                }),
+                (e.prototype._updateMediaSourceDuration = function () {
+                  var e = this._sourceBuffers;
+                  if (
+                    0 !== this._mediaElement.readyState &&
+                    'open' === this._mediaSource.readyState &&
+                    !(
+                      (e.video && e.video.updating) ||
+                      (e.audio && e.audio.updating)
+                    )
+                  ) {
+                    var t = this._mediaSource.duration,
+                      i = this._pendingMediaDuration;
+                    i > 0 &&
+                      (isNaN(t) || i > t) &&
+                      (d.Z.v(
+                        this.TAG,
+                        'Update MediaSource duration from ' + t + ' to ' + i
+                      ),
+                      (this._mediaSource.duration = i)),
+                      (this._requireSetMediaDuration = !1),
+                      (this._pendingMediaDuration = 0);
+                  }
+                }),
+                (e.prototype._doRemoveRanges = function () {
+                  for (var e in this._pendingRemoveRanges)
+                    if (
+                      this._sourceBuffers[e] &&
+                      !this._sourceBuffers[e].updating
+                    )
+                      for (
+                        var t = this._sourceBuffers[e],
+                          i = this._pendingRemoveRanges[e];
+                        i.length && !t.updating;
+
+                      ) {
+                        var n = i.shift();
+                        t.remove(n.start, n.end);
+                      }
+                }),
+                (e.prototype._doAppendSegments = function () {
+                  var e = this._pendingSegments;
+                  for (var t in e)
+                    if (
+                      this._sourceBuffers[t] &&
+                      !this._sourceBuffers[t].updating &&
+                      e[t].length > 0
+                    ) {
+                      var i = e[t].shift();
+                      if (i.timestampOffset) {
+                        var n = this._sourceBuffers[t].timestampOffset,
+                          r = i.timestampOffset / 1e3;
+                        Math.abs(n - r) > 0.1 &&
+                          (d.Z.v(
+                            this.TAG,
+                            'Update MPEG audio timestampOffset from ' +
+                              n +
+                              ' to ' +
+                              r
+                          ),
+                          (this._sourceBuffers[t].timestampOffset = r)),
+                          delete i.timestampOffset;
+                      }
+                      if (!i.data || 0 === i.data.byteLength) continue;
+                      try {
+                        this._sourceBuffers[t].appendBuffer(i.data),
+                          (this._isBufferFull = !1),
+                          'video' === t &&
+                            i.hasOwnProperty('info') &&
+                            this._idrList.appendArray(i.info.syncPoints);
+                      } catch (e) {
+                        this._pendingSegments[t].unshift(i),
+                          22 === e.code
+                            ? (this._isBufferFull ||
+                                this._emitter.emit(E.BUFFER_FULL),
+                              (this._isBufferFull = !0))
+                            : (d.Z.e(this.TAG, e.message),
+                              this._emitter.emit(E.ERROR, {
+                                code: e.code,
+                                msg: e.message,
+                              }));
+                      }
+                    }
+                }),
+                (e.prototype._onSourceOpen = function () {
+                  if (
+                    (d.Z.v(this.TAG, 'MediaSource onSourceOpen'),
+                    this._mediaSource.removeEventListener(
+                      'sourceopen',
+                      this.e.onSourceOpen
+                    ),
+                    this._pendingSourceBufferInit.length > 0)
+                  )
+                    for (var e = this._pendingSourceBufferInit; e.length; ) {
+                      var t = e.shift();
+                      this.appendInitSegment(t, !0);
+                    }
+                  this._hasPendingSegments() && this._doAppendSegments(),
+                    this._emitter.emit(E.SOURCE_OPEN);
+                }),
+                (e.prototype._onSourceEnded = function () {
+                  d.Z.v(this.TAG, 'MediaSource onSourceEnded');
+                }),
+                (e.prototype._onSourceClose = function () {
+                  d.Z.v(this.TAG, 'MediaSource onSourceClose'),
+                    this._mediaSource &&
+                      null != this.e &&
+                      (this._mediaSource.removeEventListener(
+                        'sourceopen',
+                        this.e.onSourceOpen
+                      ),
+                      this._mediaSource.removeEventListener(
+                        'sourceended',
+                        this.e.onSourceEnded
+                      ),
+                      this._mediaSource.removeEventListener(
+                        'sourceclose',
+                        this.e.onSourceClose
+                      ));
+                }),
+                (e.prototype._hasPendingSegments = function () {
+                  var e = this._pendingSegments;
+                  return e.video.length > 0 || e.audio.length > 0;
+                }),
+                (e.prototype._hasPendingRemoveRanges = function () {
+                  var e = this._pendingRemoveRanges;
+                  return e.video.length > 0 || e.audio.length > 0;
+                }),
+                (e.prototype._onSourceBufferUpdateEnd = function () {
+                  this._requireSetMediaDuration
+                    ? this._updateMediaSourceDuration()
+                    : this._hasPendingRemoveRanges()
+                    ? this._doRemoveRanges()
+                    : this._hasPendingSegments()
+                    ? this._doAppendSegments()
+                    : this._hasPendingEos && this.endOfStream(),
+                    this._emitter.emit(E.UPDATE_END);
+                }),
+                (e.prototype._onSourceBufferError = function (e) {
+                  d.Z.e(this.TAG, 'SourceBuffer Error: ' + e);
+                }),
+                e
+              );
+            })(),
+            R = i(600),
+            w = {
+              NETWORK_ERROR: 'NetworkError',
+              MEDIA_ERROR: 'MediaError',
+              OTHER_ERROR: 'OtherError',
+            },
+            O = {
+              NETWORK_EXCEPTION: h.nm.EXCEPTION,
+              NETWORK_STATUS_CODE_INVALID: h.nm.HTTP_STATUS_CODE_INVALID,
+              NETWORK_TIMEOUT: h.nm.CONNECTING_TIMEOUT,
+              NETWORK_UNRECOVERABLE_EARLY_EOF: h.nm.UNRECOVERABLE_EARLY_EOF,
+              MEDIA_MSE_ERROR: 'MediaMSEError',
+              MEDIA_FORMAT_ERROR: R.Z.FORMAT_ERROR,
+              MEDIA_FORMAT_UNSUPPORTED: R.Z.FORMAT_UNSUPPORTED,
+              MEDIA_CODEC_UNSUPPORTED: R.Z.CODEC_UNSUPPORTED,
+            },
+            T = (function () {
+              function e(e, t) {
+                if (
+                  ((this.TAG = 'FlvPlayer'),
+                  (this._type = 'FlvPlayer'),
+                  (this._emitter = new (l())()),
+                  (this._config = o()),
+                  'object' == typeof t && Object.assign(this._config, t),
+                  'flv' !== e.type.toLowerCase())
+                )
+                  throw new A.OC(
+                    'FlvPlayer requires an flv MediaDataSource input!'
+                  );
+                !0 === e.isLive && (this._config.isLive = !0),
+                  (this.e = {
+                    onvLoadedMetadata: this._onvLoadedMetadata.bind(this),
+                    onvSeeking: this._onvSeeking.bind(this),
+                    onvCanPlay: this._onvCanPlay.bind(this),
+                    onvStalled: this._onvStalled.bind(this),
+                    onvProgress: this._onvProgress.bind(this),
+                  }),
+                  self.performance && self.performance.now
+                    ? (this._now = self.performance.now.bind(self.performance))
+                    : (this._now = Date.now),
+                  (this._pendingSeekTime = null),
+                  (this._requestSetTime = !1),
+                  (this._seekpointRecord = null),
+                  (this._progressChecker = null),
+                  (this._mediaDataSource = e),
+                  (this._mediaElement = null),
+                  (this._msectl = null),
+                  (this._transmuxer = null),
+                  (this._mseSourceOpened = !1),
+                  (this._hasPendingLoad = !1),
+                  (this._receivedCanPlay = !1),
+                  (this._mediaInfo = null),
+                  (this._statisticsInfo = null);
+                var i =
+                  c.Z.chrome &&
+                  (c.Z.version.major < 50 ||
+                    (50 === c.Z.version.major && c.Z.version.build < 2661));
+                (this._alwaysSeekKeyframe = !!(i || c.Z.msedge || c.Z.msie)),
+                  this._alwaysSeekKeyframe && (this._config.accurateSeek = !1);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  null != this._progressChecker &&
+                    (window.clearInterval(this._progressChecker),
+                    (this._progressChecker = null)),
+                    this._transmuxer && this.unload(),
+                    this._mediaElement && this.detachMediaElement(),
+                    (this.e = null),
+                    (this._mediaDataSource = null),
+                    this._emitter.removeAllListeners(),
+                    (this._emitter = null);
+                }),
+                (e.prototype.on = function (e, t) {
+                  var i = this;
+                  e === f.MEDIA_INFO
+                    ? null != this._mediaInfo &&
+                      Promise.resolve().then(function () {
+                        i._emitter.emit(f.MEDIA_INFO, i.mediaInfo);
+                      })
+                    : e === f.STATISTICS_INFO &&
+                      null != this._statisticsInfo &&
+                      Promise.resolve().then(function () {
+                        i._emitter.emit(f.STATISTICS_INFO, i.statisticsInfo);
+                      }),
+                    this._emitter.addListener(e, t);
+                }),
+                (e.prototype.off = function (e, t) {
+                  this._emitter.removeListener(e, t);
+                }),
+                (e.prototype.attachMediaElement = function (e) {
+                  var t = this;
+                  if (
+                    ((this._mediaElement = e),
+                    e.addEventListener(
+                      'loadedmetadata',
+                      this.e.onvLoadedMetadata
+                    ),
+                    e.addEventListener('seeking', this.e.onvSeeking),
+                    e.addEventListener('canplay', this.e.onvCanPlay),
+                    e.addEventListener('stalled', this.e.onvStalled),
+                    e.addEventListener('progress', this.e.onvProgress),
+                    (this._msectl = new L(this._config)),
+                    this._msectl.on(
+                      E.UPDATE_END,
+                      this._onmseUpdateEnd.bind(this)
+                    ),
+                    this._msectl.on(
+                      E.BUFFER_FULL,
+                      this._onmseBufferFull.bind(this)
+                    ),
+                    this._msectl.on(E.SOURCE_OPEN, function () {
+                      (t._mseSourceOpened = !0),
+                        t._hasPendingLoad &&
+                          ((t._hasPendingLoad = !1), t.load());
+                    }),
+                    this._msectl.on(E.ERROR, function (e) {
+                      t._emitter.emit(
+                        f.ERROR,
+                        w.MEDIA_ERROR,
+                        O.MEDIA_MSE_ERROR,
+                        e
+                      );
+                    }),
+                    this._msectl.attachMediaElement(e),
+                    null != this._pendingSeekTime)
+                  )
+                    try {
+                      (e.currentTime = this._pendingSeekTime),
+                        (this._pendingSeekTime = null);
+                    } catch (e) {}
+                }),
+                (e.prototype.detachMediaElement = function () {
+                  this._mediaElement &&
+                    (this._msectl.detachMediaElement(),
+                    this._mediaElement.removeEventListener(
+                      'loadedmetadata',
+                      this.e.onvLoadedMetadata
+                    ),
+                    this._mediaElement.removeEventListener(
+                      'seeking',
+                      this.e.onvSeeking
+                    ),
+                    this._mediaElement.removeEventListener(
+                      'canplay',
+                      this.e.onvCanPlay
+                    ),
+                    this._mediaElement.removeEventListener(
+                      'stalled',
+                      this.e.onvStalled
+                    ),
+                    this._mediaElement.removeEventListener(
+                      'progress',
+                      this.e.onvProgress
+                    ),
+                    (this._mediaElement = null)),
+                    this._msectl &&
+                      (this._msectl.destroy(), (this._msectl = null));
+                }),
+                (e.prototype.load = function () {
+                  var e = this;
+                  if (!this._mediaElement)
+                    throw new A.rT(
+                      'HTMLMediaElement must be attached before load()!'
+                    );
+                  if (this._transmuxer)
+                    throw new A.rT(
+                      'FlvPlayer.load() has been called, please call unload() first!'
+                    );
+                  this._hasPendingLoad ||
+                    (this._config.deferLoadAfterSourceOpen &&
+                    !1 === this._mseSourceOpened
+                      ? (this._hasPendingLoad = !0)
+                      : (this._mediaElement.readyState > 0 &&
+                          ((this._requestSetTime = !0),
+                          (this._mediaElement.currentTime = 0)),
+                        (this._transmuxer = new b(
+                          this._mediaDataSource,
+                          this._config
+                        )),
+                        this._transmuxer.on(v.Z.INIT_SEGMENT, function (t, i) {
+                          e._msectl.appendInitSegment(i);
+                        }),
+                        this._transmuxer.on(v.Z.MEDIA_SEGMENT, function (t, i) {
+                          if (
+                            (e._msectl.appendMediaSegment(i),
+                            e._config.lazyLoad && !e._config.isLive)
+                          ) {
+                            var n = e._mediaElement.currentTime;
+                            i.info.endDts >=
+                              1e3 * (n + e._config.lazyLoadMaxDuration) &&
+                              null == e._progressChecker &&
+                              (d.Z.v(
+                                e.TAG,
+                                'Maximum buffering duration exceeded, suspend transmuxing task'
+                              ),
+                              e._suspendTransmuxer());
+                          }
+                        }),
+                        this._transmuxer.on(v.Z.LOADING_COMPLETE, function () {
+                          e._msectl.endOfStream(),
+                            e._emitter.emit(f.LOADING_COMPLETE);
+                        }),
+                        this._transmuxer.on(
+                          v.Z.RECOVERED_EARLY_EOF,
+                          function () {
+                            e._emitter.emit(f.RECOVERED_EARLY_EOF);
+                          }
+                        ),
+                        this._transmuxer.on(v.Z.IO_ERROR, function (t, i) {
+                          e._emitter.emit(f.ERROR, w.NETWORK_ERROR, t, i);
+                        }),
+                        this._transmuxer.on(v.Z.DEMUX_ERROR, function (t, i) {
+                          e._emitter.emit(f.ERROR, w.MEDIA_ERROR, t, {
+                            code: -1,
+                            msg: i,
+                          });
+                        }),
+                        this._transmuxer.on(v.Z.MEDIA_INFO, function (t) {
+                          (e._mediaInfo = t),
+                            e._emitter.emit(f.MEDIA_INFO, Object.assign({}, t));
+                        }),
+                        this._transmuxer.on(v.Z.METADATA_ARRIVED, function (t) {
+                          e._emitter.emit(f.METADATA_ARRIVED, t);
+                        }),
+                        this._transmuxer.on(
+                          v.Z.SCRIPTDATA_ARRIVED,
+                          function (t) {
+                            e._emitter.emit(f.SCRIPTDATA_ARRIVED, t);
+                          }
+                        ),
+                        this._transmuxer.on(v.Z.STATISTICS_INFO, function (t) {
+                          (e._statisticsInfo = e._fillStatisticsInfo(t)),
+                            e._emitter.emit(
+                              f.STATISTICS_INFO,
+                              Object.assign({}, e._statisticsInfo)
+                            );
+                        }),
+                        this._transmuxer.on(
+                          v.Z.RECOMMEND_SEEKPOINT,
+                          function (t) {
+                            e._mediaElement &&
+                              !e._config.accurateSeek &&
+                              ((e._requestSetTime = !0),
+                              (e._mediaElement.currentTime = t / 1e3));
+                          }
+                        ),
+                        this._transmuxer.open()));
+                }),
+                (e.prototype.unload = function () {
+                  this._mediaElement && this._mediaElement.pause(),
+                    this._msectl && this._msectl.seek(0),
+                    this._transmuxer &&
+                      (this._transmuxer.close(),
+                      this._transmuxer.destroy(),
+                      (this._transmuxer = null));
+                }),
+                (e.prototype.play = function () {
+                  return this._mediaElement.play();
+                }),
+                (e.prototype.pause = function () {
+                  this._mediaElement.pause();
+                }),
+                Object.defineProperty(e.prototype, 'type', {
+                  get: function () {
+                    return this._type;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'buffered', {
+                  get: function () {
+                    return this._mediaElement.buffered;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'duration', {
+                  get: function () {
+                    return this._mediaElement.duration;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'volume', {
+                  get: function () {
+                    return this._mediaElement.volume;
+                  },
+                  set: function (e) {
+                    this._mediaElement.volume = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'muted', {
+                  get: function () {
+                    return this._mediaElement.muted;
+                  },
+                  set: function (e) {
+                    this._mediaElement.muted = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'currentTime', {
+                  get: function () {
+                    return this._mediaElement
+                      ? this._mediaElement.currentTime
+                      : 0;
+                  },
+                  set: function (e) {
+                    this._mediaElement
+                      ? this._internalSeek(e)
+                      : (this._pendingSeekTime = e);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'mediaInfo', {
+                  get: function () {
+                    return Object.assign({}, this._mediaInfo);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'statisticsInfo', {
+                  get: function () {
+                    return (
+                      null == this._statisticsInfo &&
+                        (this._statisticsInfo = {}),
+                      (this._statisticsInfo = this._fillStatisticsInfo(
+                        this._statisticsInfo
+                      )),
+                      Object.assign({}, this._statisticsInfo)
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype._fillStatisticsInfo = function (e) {
+                  if (
+                    ((e.playerType = this._type),
+                    !(this._mediaElement instanceof HTMLVideoElement))
+                  )
+                    return e;
+                  var t = !0,
+                    i = 0,
+                    n = 0;
+                  if (this._mediaElement.getVideoPlaybackQuality) {
+                    var r = this._mediaElement.getVideoPlaybackQuality();
+                    (i = r.totalVideoFrames), (n = r.droppedVideoFrames);
+                  } else
+                    null != this._mediaElement.webkitDecodedFrameCount
+                      ? ((i = this._mediaElement.webkitDecodedFrameCount),
+                        (n = this._mediaElement.webkitDroppedFrameCount))
+                      : (t = !1);
+                  return t && ((e.decodedFrames = i), (e.droppedFrames = n)), e;
+                }),
+                (e.prototype._onmseUpdateEnd = function () {
+                  if (this._config.lazyLoad && !this._config.isLive) {
+                    for (
+                      var e = this._mediaElement.buffered,
+                        t = this._mediaElement.currentTime,
+                        i = 0,
+                        n = 0;
+                      n < e.length;
+                      n++
+                    ) {
+                      var r = e.start(n),
+                        s = e.end(n);
+                      if (r <= t && t < s) {
+                        r, (i = s);
+                        break;
+                      }
+                    }
+                    i >= t + this._config.lazyLoadMaxDuration &&
+                      null == this._progressChecker &&
+                      (d.Z.v(
+                        this.TAG,
+                        'Maximum buffering duration exceeded, suspend transmuxing task'
+                      ),
+                      this._suspendTransmuxer());
+                  }
+                }),
+                (e.prototype._onmseBufferFull = function () {
+                  d.Z.v(
+                    this.TAG,
+                    'MSE SourceBuffer is full, suspend transmuxing task'
+                  ),
+                    null == this._progressChecker && this._suspendTransmuxer();
+                }),
+                (e.prototype._suspendTransmuxer = function () {
+                  this._transmuxer &&
+                    (this._transmuxer.pause(),
+                    null == this._progressChecker &&
+                      (this._progressChecker = window.setInterval(
+                        this._checkProgressAndResume.bind(this),
+                        1e3
+                      )));
+                }),
+                (e.prototype._checkProgressAndResume = function () {
+                  for (
+                    var e = this._mediaElement.currentTime,
+                      t = this._mediaElement.buffered,
+                      i = !1,
+                      n = 0;
+                    n < t.length;
+                    n++
+                  ) {
+                    var r = t.start(n),
+                      s = t.end(n);
+                    if (e >= r && e < s) {
+                      e >= s - this._config.lazyLoadRecoverDuration && (i = !0);
+                      break;
+                    }
+                  }
+                  i &&
+                    (window.clearInterval(this._progressChecker),
+                    (this._progressChecker = null),
+                    i &&
+                      (d.Z.v(this.TAG, 'Continue loading from paused position'),
+                      this._transmuxer.resume()));
+                }),
+                (e.prototype._isTimepointBuffered = function (e) {
+                  for (
+                    var t = this._mediaElement.buffered, i = 0;
+                    i < t.length;
+                    i++
+                  ) {
+                    var n = t.start(i),
+                      r = t.end(i);
+                    if (e >= n && e < r) return !0;
+                  }
+                  return !1;
+                }),
+                (e.prototype._internalSeek = function (e) {
+                  var t = this._isTimepointBuffered(e),
+                    i = !1,
+                    n = 0;
+                  if (e < 1 && this._mediaElement.buffered.length > 0) {
+                    var r = this._mediaElement.buffered.start(0);
+                    ((r < 1 && e < r) || c.Z.safari) &&
+                      ((i = !0), (n = c.Z.safari ? 0.1 : r));
+                  }
+                  if (i)
+                    (this._requestSetTime = !0),
+                      (this._mediaElement.currentTime = n);
+                  else if (t) {
+                    if (this._alwaysSeekKeyframe) {
+                      var s = this._msectl.getNearestKeyframe(
+                        Math.floor(1e3 * e)
+                      );
+                      (this._requestSetTime = !0),
+                        (this._mediaElement.currentTime =
+                          null != s ? s.dts / 1e3 : e);
+                    } else
+                      (this._requestSetTime = !0),
+                        (this._mediaElement.currentTime = e);
+                    null != this._progressChecker &&
+                      this._checkProgressAndResume();
+                  } else
+                    null != this._progressChecker &&
+                      (window.clearInterval(this._progressChecker),
+                      (this._progressChecker = null)),
+                      this._msectl.seek(e),
+                      this._transmuxer.seek(Math.floor(1e3 * e)),
+                      this._config.accurateSeek &&
+                        ((this._requestSetTime = !0),
+                        (this._mediaElement.currentTime = e));
+                }),
+                (e.prototype._checkAndApplyUnbufferedSeekpoint = function () {
+                  if (this._seekpointRecord)
+                    if (this._seekpointRecord.recordTime <= this._now() - 100) {
+                      var e = this._mediaElement.currentTime;
+                      (this._seekpointRecord = null),
+                        this._isTimepointBuffered(e) ||
+                          (null != this._progressChecker &&
+                            (window.clearTimeout(this._progressChecker),
+                            (this._progressChecker = null)),
+                          this._msectl.seek(e),
+                          this._transmuxer.seek(Math.floor(1e3 * e)),
+                          this._config.accurateSeek &&
+                            ((this._requestSetTime = !0),
+                            (this._mediaElement.currentTime = e)));
+                    } else
+                      window.setTimeout(
+                        this._checkAndApplyUnbufferedSeekpoint.bind(this),
+                        50
+                      );
+                }),
+                (e.prototype._checkAndResumeStuckPlayback = function (e) {
+                  var t = this._mediaElement;
+                  if (e || !this._receivedCanPlay || t.readyState < 2) {
+                    var i = t.buffered;
+                    i.length > 0 &&
+                      t.currentTime < i.start(0) &&
+                      (d.Z.w(
+                        this.TAG,
+                        'Playback seems stuck at ' +
+                          t.currentTime +
+                          ', seek to ' +
+                          i.start(0)
+                      ),
+                      (this._requestSetTime = !0),
+                      (this._mediaElement.currentTime = i.start(0)),
+                      this._mediaElement.removeEventListener(
+                        'progress',
+                        this.e.onvProgress
+                      ));
+                  } else
+                    this._mediaElement.removeEventListener(
+                      'progress',
+                      this.e.onvProgress
+                    );
+                }),
+                (e.prototype._onvLoadedMetadata = function (e) {
+                  null != this._pendingSeekTime &&
+                    ((this._mediaElement.currentTime = this._pendingSeekTime),
+                    (this._pendingSeekTime = null));
+                }),
+                (e.prototype._onvSeeking = function (e) {
+                  var t = this._mediaElement.currentTime,
+                    i = this._mediaElement.buffered;
+                  if (this._requestSetTime) this._requestSetTime = !1;
+                  else {
+                    if (t < 1 && i.length > 0) {
+                      var n = i.start(0);
+                      if ((n < 1 && t < n) || c.Z.safari)
+                        return (
+                          (this._requestSetTime = !0),
+                          void (this._mediaElement.currentTime = c.Z.safari
+                            ? 0.1
+                            : n)
+                        );
+                    }
+                    if (this._isTimepointBuffered(t)) {
+                      if (this._alwaysSeekKeyframe) {
+                        var r = this._msectl.getNearestKeyframe(
+                          Math.floor(1e3 * t)
+                        );
+                        null != r &&
+                          ((this._requestSetTime = !0),
+                          (this._mediaElement.currentTime = r.dts / 1e3));
+                      }
+                      null != this._progressChecker &&
+                        this._checkProgressAndResume();
+                    } else
+                      (this._seekpointRecord = {
+                        seekPoint: t,
+                        recordTime: this._now(),
+                      }),
+                        window.setTimeout(
+                          this._checkAndApplyUnbufferedSeekpoint.bind(this),
+                          50
+                        );
+                  }
+                }),
+                (e.prototype._onvCanPlay = function (e) {
+                  (this._receivedCanPlay = !0),
+                    this._mediaElement.removeEventListener(
+                      'canplay',
+                      this.e.onvCanPlay
+                    );
+                }),
+                (e.prototype._onvStalled = function (e) {
+                  this._checkAndResumeStuckPlayback(!0);
+                }),
+                (e.prototype._onvProgress = function (e) {
+                  this._checkAndResumeStuckPlayback();
+                }),
+                e
+              );
+            })(),
+            C = (function () {
+              function e(e, t) {
+                if (
+                  ((this.TAG = 'NativePlayer'),
+                  (this._type = 'NativePlayer'),
+                  (this._emitter = new (l())()),
+                  (this._config = o()),
+                  'object' == typeof t && Object.assign(this._config, t),
+                  'flv' === e.type.toLowerCase())
+                )
+                  throw new A.OC(
+                    "NativePlayer does't support flv MediaDataSource input!"
+                  );
+                if (e.hasOwnProperty('segments'))
+                  throw new A.OC(
+                    'NativePlayer(' +
+                      e.type +
+                      ") doesn't support multipart playback!"
+                  );
+                (this.e = {
+                  onvLoadedMetadata: this._onvLoadedMetadata.bind(this),
+                }),
+                  (this._pendingSeekTime = null),
+                  (this._statisticsReporter = null),
+                  (this._mediaDataSource = e),
+                  (this._mediaElement = null);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  this._mediaElement &&
+                    (this.unload(), this.detachMediaElement()),
+                    (this.e = null),
+                    (this._mediaDataSource = null),
+                    this._emitter.removeAllListeners(),
+                    (this._emitter = null);
+                }),
+                (e.prototype.on = function (e, t) {
+                  var i = this;
+                  e === f.MEDIA_INFO
+                    ? null != this._mediaElement &&
+                      0 !== this._mediaElement.readyState &&
+                      Promise.resolve().then(function () {
+                        i._emitter.emit(f.MEDIA_INFO, i.mediaInfo);
+                      })
+                    : e === f.STATISTICS_INFO &&
+                      null != this._mediaElement &&
+                      0 !== this._mediaElement.readyState &&
+                      Promise.resolve().then(function () {
+                        i._emitter.emit(f.STATISTICS_INFO, i.statisticsInfo);
+                      }),
+                    this._emitter.addListener(e, t);
+                }),
+                (e.prototype.off = function (e, t) {
+                  this._emitter.removeListener(e, t);
+                }),
+                (e.prototype.attachMediaElement = function (e) {
+                  if (
+                    ((this._mediaElement = e),
+                    e.addEventListener(
+                      'loadedmetadata',
+                      this.e.onvLoadedMetadata
+                    ),
+                    null != this._pendingSeekTime)
+                  )
+                    try {
+                      (e.currentTime = this._pendingSeekTime),
+                        (this._pendingSeekTime = null);
+                    } catch (e) {}
+                }),
+                (e.prototype.detachMediaElement = function () {
+                  this._mediaElement &&
+                    ((this._mediaElement.src = ''),
+                    this._mediaElement.removeAttribute('src'),
+                    this._mediaElement.removeEventListener(
+                      'loadedmetadata',
+                      this.e.onvLoadedMetadata
+                    ),
+                    (this._mediaElement = null)),
+                    null != this._statisticsReporter &&
+                      (window.clearInterval(this._statisticsReporter),
+                      (this._statisticsReporter = null));
+                }),
+                (e.prototype.load = function () {
+                  if (!this._mediaElement)
+                    throw new A.rT(
+                      'HTMLMediaElement must be attached before load()!'
+                    );
+                  (this._mediaElement.src = this._mediaDataSource.url),
+                    this._mediaElement.readyState > 0 &&
+                      (this._mediaElement.currentTime = 0),
+                    (this._mediaElement.preload = 'auto'),
+                    this._mediaElement.load(),
+                    (this._statisticsReporter = window.setInterval(
+                      this._reportStatisticsInfo.bind(this),
+                      this._config.statisticsInfoReportInterval
+                    ));
+                }),
+                (e.prototype.unload = function () {
+                  this._mediaElement &&
+                    ((this._mediaElement.src = ''),
+                    this._mediaElement.removeAttribute('src')),
+                    null != this._statisticsReporter &&
+                      (window.clearInterval(this._statisticsReporter),
+                      (this._statisticsReporter = null));
+                }),
+                (e.prototype.play = function () {
+                  return this._mediaElement.play();
+                }),
+                (e.prototype.pause = function () {
+                  this._mediaElement.pause();
+                }),
+                Object.defineProperty(e.prototype, 'type', {
+                  get: function () {
+                    return this._type;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'buffered', {
+                  get: function () {
+                    return this._mediaElement.buffered;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'duration', {
+                  get: function () {
+                    return this._mediaElement.duration;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'volume', {
+                  get: function () {
+                    return this._mediaElement.volume;
+                  },
+                  set: function (e) {
+                    this._mediaElement.volume = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'muted', {
+                  get: function () {
+                    return this._mediaElement.muted;
+                  },
+                  set: function (e) {
+                    this._mediaElement.muted = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'currentTime', {
+                  get: function () {
+                    return this._mediaElement
+                      ? this._mediaElement.currentTime
+                      : 0;
+                  },
+                  set: function (e) {
+                    this._mediaElement
+                      ? (this._mediaElement.currentTime = e)
+                      : (this._pendingSeekTime = e);
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'mediaInfo', {
+                  get: function () {
+                    var e = {
+                      mimeType:
+                        (this._mediaElement instanceof HTMLAudioElement
+                          ? 'audio/'
+                          : 'video/') + this._mediaDataSource.type,
+                    };
+                    return (
+                      this._mediaElement &&
+                        ((e.duration = Math.floor(
+                          1e3 * this._mediaElement.duration
+                        )),
+                        this._mediaElement instanceof HTMLVideoElement &&
+                          ((e.width = this._mediaElement.videoWidth),
+                          (e.height = this._mediaElement.videoHeight))),
+                      e
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'statisticsInfo', {
+                  get: function () {
+                    var e = {
+                      playerType: this._type,
+                      url: this._mediaDataSource.url,
+                    };
+                    if (!(this._mediaElement instanceof HTMLVideoElement))
+                      return e;
+                    var t = !0,
+                      i = 0,
+                      n = 0;
+                    if (this._mediaElement.getVideoPlaybackQuality) {
+                      var r = this._mediaElement.getVideoPlaybackQuality();
+                      (i = r.totalVideoFrames), (n = r.droppedVideoFrames);
+                    } else
+                      null != this._mediaElement.webkitDecodedFrameCount
+                        ? ((i = this._mediaElement.webkitDecodedFrameCount),
+                          (n = this._mediaElement.webkitDroppedFrameCount))
+                        : (t = !1);
+                    return (
+                      t && ((e.decodedFrames = i), (e.droppedFrames = n)), e
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype._onvLoadedMetadata = function (e) {
+                  null != this._pendingSeekTime &&
+                    ((this._mediaElement.currentTime = this._pendingSeekTime),
+                    (this._pendingSeekTime = null)),
+                    this._emitter.emit(f.MEDIA_INFO, this.mediaInfo);
+                }),
+                (e.prototype._reportStatisticsInfo = function () {
+                  this._emitter.emit(f.STATISTICS_INFO, this.statisticsInfo);
+                }),
+                e
+              );
+            })();
+          n.Z.install();
+          var k = {
+            createPlayer: function (e, t) {
+              var i = e;
+              if (null == i || 'object' != typeof i)
+                throw new A.OC('MediaDataSource must be an javascript object!');
+              if (!i.hasOwnProperty('type'))
+                throw new A.OC(
+                  'MediaDataSource must has type field to indicate video file type!'
+                );
+              switch (i.type) {
+                case 'flv':
+                  return new T(i, t);
+                default:
+                  return new C(i, t);
+              }
+            },
+            isSupported: function () {
+              return a.supportMSEH264Playback();
+            },
+            getFeatureList: function () {
+              return a.getFeatureList();
+            },
+          };
+          (k.BaseLoader = h.fp),
+            (k.LoaderStatus = h.GM),
+            (k.LoaderErrors = h.nm),
+            (k.Events = f),
+            (k.ErrorTypes = w),
+            (k.ErrorDetails = O),
+            (k.FlvPlayer = T),
+            (k.NativePlayer = C),
+            (k.LoggingControl = m.Z),
+            Object.defineProperty(k, 'version', {
+              enumerable: !0,
+              get: function () {
+                return '1.6.2';
+              },
+            });
+          var D = k;
+        },
+        324: function (e, t, i) {
+          e.exports = i(60).default;
+        },
+        191: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            Z: function () {
+              return y;
+            },
+          });
+          var n,
+            r = i(300),
+            s = (function () {
+              function e() {
+                (this._firstCheckpoint = 0),
+                  (this._lastCheckpoint = 0),
+                  (this._intervalBytes = 0),
+                  (this._totalBytes = 0),
+                  (this._lastSecondBytes = 0),
+                  self.performance && self.performance.now
+                    ? (this._now = self.performance.now.bind(self.performance))
+                    : (this._now = Date.now);
+              }
+              return (
+                (e.prototype.reset = function () {
+                  (this._firstCheckpoint = this._lastCheckpoint = 0),
+                    (this._totalBytes = this._intervalBytes = 0),
+                    (this._lastSecondBytes = 0);
+                }),
+                (e.prototype.addBytes = function (e) {
+                  0 === this._firstCheckpoint
+                    ? ((this._firstCheckpoint = this._now()),
+                      (this._lastCheckpoint = this._firstCheckpoint),
+                      (this._intervalBytes += e),
+                      (this._totalBytes += e))
+                    : this._now() - this._lastCheckpoint < 1e3
+                    ? ((this._intervalBytes += e), (this._totalBytes += e))
+                    : ((this._lastSecondBytes = this._intervalBytes),
+                      (this._intervalBytes = e),
+                      (this._totalBytes += e),
+                      (this._lastCheckpoint = this._now()));
+                }),
+                Object.defineProperty(e.prototype, 'currentKBps', {
+                  get: function () {
+                    this.addBytes(0);
+                    var e = (this._now() - this._lastCheckpoint) / 1e3;
+                    return 0 == e && (e = 1), this._intervalBytes / e / 1024;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'lastSecondKBps', {
+                  get: function () {
+                    return (
+                      this.addBytes(0),
+                      0 !== this._lastSecondBytes
+                        ? this._lastSecondBytes / 1024
+                        : this._now() - this._lastCheckpoint >= 500
+                        ? this.currentKBps
+                        : 0
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'averageKBps', {
+                  get: function () {
+                    var e = (this._now() - this._firstCheckpoint) / 1e3;
+                    return this._totalBytes / e / 1024;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                e
+              );
+            })(),
+            o = i(939),
+            a = i(538),
+            h = i(29),
+            u =
+              ((n = function (e, t) {
+                return (n =
+                  Object.setPrototypeOf ||
+                  ({ __proto__: [] } instanceof Array &&
+                    function (e, t) {
+                      e.__proto__ = t;
+                    }) ||
+                  function (e, t) {
+                    for (var i in t)
+                      Object.prototype.hasOwnProperty.call(t, i) &&
+                        (e[i] = t[i]);
+                  })(e, t);
+              }),
+              function (e, t) {
+                if ('function' != typeof t && null !== t)
+                  throw new TypeError(
+                    'Class extends value ' +
+                      String(t) +
+                      ' is not a constructor or null'
+                  );
+                function i() {
+                  this.constructor = e;
+                }
+                n(e, t),
+                  (e.prototype =
+                    null === t
+                      ? Object.create(t)
+                      : ((i.prototype = t.prototype), new i()));
+              }),
+            l = (function (e) {
+              function t(t, i) {
+                var n = e.call(this, 'fetch-stream-loader') || this;
+                return (
+                  (n.TAG = 'FetchStreamLoader'),
+                  (n._seekHandler = t),
+                  (n._config = i),
+                  (n._needStash = !0),
+                  (n._requestAbort = !1),
+                  (n._contentLength = null),
+                  (n._receivedLength = 0),
+                  n
+                );
+              }
+              return (
+                u(t, e),
+                (t.isSupported = function () {
+                  try {
+                    var e = a.Z.msedge && a.Z.version.minor >= 15048,
+                      t = !a.Z.msedge || e;
+                    return self.fetch && self.ReadableStream && t;
+                  } catch (e) {
+                    return !1;
+                  }
+                }),
+                (t.prototype.destroy = function () {
+                  this.isWorking() && this.abort(),
+                    e.prototype.destroy.call(this);
+                }),
+                (t.prototype.open = function (e, t) {
+                  var i = this;
+                  (this._dataSource = e), (this._range = t);
+                  var n = e.url;
+                  this._config.reuseRedirectedURL &&
+                    null != e.redirectedURL &&
+                    (n = e.redirectedURL);
+                  var r = this._seekHandler.getConfig(n, t),
+                    s = new self.Headers();
+                  if ('object' == typeof r.headers) {
+                    var a = r.headers;
+                    for (var u in a) a.hasOwnProperty(u) && s.append(u, a[u]);
+                  }
+                  var l = {
+                    method: 'GET',
+                    headers: s,
+                    mode: 'cors',
+                    cache: 'default',
+                    referrerPolicy: 'no-referrer-when-downgrade',
+                  };
+                  if ('object' == typeof this._config.headers)
+                    for (var u in this._config.headers)
+                      s.append(u, this._config.headers[u]);
+                  !1 === e.cors && (l.mode = 'same-origin'),
+                    e.withCredentials && (l.credentials = 'include'),
+                    e.referrerPolicy && (l.referrerPolicy = e.referrerPolicy),
+                    self.AbortController &&
+                      ((this._abortController = new self.AbortController()),
+                      (l.signal = this._abortController.signal)),
+                    (this._status = o.GM.kConnecting),
+                    self
+                      .fetch(r.url, l)
+                      .then(function (e) {
+                        if (i._requestAbort)
+                          return (i._status = o.GM.kIdle), void e.body.cancel();
+                        if (e.ok && e.status >= 200 && e.status <= 299) {
+                          if (e.url !== r.url && i._onURLRedirect) {
+                            var t = i._seekHandler.removeURLParameters(e.url);
+                            i._onURLRedirect(t);
+                          }
+                          var n = e.headers.get('Content-Length');
+                          return (
+                            null != n &&
+                              ((i._contentLength = parseInt(n)),
+                              0 !== i._contentLength &&
+                                i._onContentLengthKnown &&
+                                i._onContentLengthKnown(i._contentLength)),
+                            i._pump.call(i, e.body.getReader())
+                          );
+                        }
+                        if (((i._status = o.GM.kError), !i._onError))
+                          throw new h.OZ(
+                            'FetchStreamLoader: Http code invalid, ' +
+                              e.status +
+                              ' ' +
+                              e.statusText
+                          );
+                        i._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
+                          code: e.status,
+                          msg: e.statusText,
+                        });
+                      })
+                      .catch(function (e) {
+                        if (
+                          !i._abortController ||
+                          !i._abortController.signal.aborted
+                        ) {
+                          if (((i._status = o.GM.kError), !i._onError)) throw e;
+                          i._onError(o.nm.EXCEPTION, {
+                            code: -1,
+                            msg: e.message,
+                          });
+                        }
+                      });
+                }),
+                (t.prototype.abort = function () {
+                  if (
+                    ((this._requestAbort = !0),
+                    (this._status !== o.GM.kBuffering || !a.Z.chrome) &&
+                      this._abortController)
+                  )
+                    try {
+                      this._abortController.abort();
+                    } catch (e) {}
+                }),
+                (t.prototype._pump = function (e) {
+                  var t = this;
+                  return e
+                    .read()
+                    .then(function (i) {
+                      if (i.done)
+                        if (
+                          null !== t._contentLength &&
+                          t._receivedLength < t._contentLength
+                        ) {
+                          t._status = o.GM.kError;
+                          var n = o.nm.EARLY_EOF,
+                            r = {
+                              code: -1,
+                              msg: 'Fetch stream meet Early-EOF',
+                            };
+                          if (!t._onError) throw new h.OZ(r.msg);
+                          t._onError(n, r);
+                        } else
+                          (t._status = o.GM.kComplete),
+                            t._onComplete &&
+                              t._onComplete(
+                                t._range.from,
+                                t._range.from + t._receivedLength - 1
+                              );
+                      else {
+                        if (
+                          t._abortController &&
+                          t._abortController.signal.aborted
+                        )
+                          return void (t._status = o.GM.kComplete);
+                        if (!0 === t._requestAbort)
+                          return (t._status = o.GM.kComplete), e.cancel();
+                        t._status = o.GM.kBuffering;
+                        var s = i.value.buffer,
+                          a = t._range.from + t._receivedLength;
+                        (t._receivedLength += s.byteLength),
+                          t._onDataArrival &&
+                            t._onDataArrival(s, a, t._receivedLength),
+                          t._pump(e);
+                      }
+                    })
+                    .catch(function (e) {
+                      if (
+                        t._abortController &&
+                        t._abortController.signal.aborted
+                      )
+                        t._status = o.GM.kComplete;
+                      else if (11 !== e.code || !a.Z.msedge) {
+                        t._status = o.GM.kError;
+                        var i = 0,
+                          n = null;
+                        if (
+                          ((19 !== e.code && 'network error' !== e.message) ||
+                          !(
+                            null === t._contentLength ||
+                            (null !== t._contentLength &&
+                              t._receivedLength < t._contentLength)
+                          )
+                            ? ((i = o.nm.EXCEPTION),
+                              (n = { code: e.code, msg: e.message }))
+                            : ((i = o.nm.EARLY_EOF),
+                              (n = {
+                                code: e.code,
+                                msg: 'Fetch stream meet Early-EOF',
+                              })),
+                          !t._onError)
+                        )
+                          throw new h.OZ(n.msg);
+                        t._onError(i, n);
+                      }
+                    });
+                }),
+                t
+              );
+            })(o.fp),
+            d = (function () {
+              var e = function (t, i) {
+                return (e =
+                  Object.setPrototypeOf ||
+                  ({ __proto__: [] } instanceof Array &&
+                    function (e, t) {
+                      e.__proto__ = t;
+                    }) ||
+                  function (e, t) {
+                    for (var i in t)
+                      Object.prototype.hasOwnProperty.call(t, i) &&
+                        (e[i] = t[i]);
+                  })(t, i);
+              };
+              return function (t, i) {
+                if ('function' != typeof i && null !== i)
+                  throw new TypeError(
+                    'Class extends value ' +
+                      String(i) +
+                      ' is not a constructor or null'
+                  );
+                function n() {
+                  this.constructor = t;
+                }
+                e(t, i),
+                  (t.prototype =
+                    null === i
+                      ? Object.create(i)
+                      : ((n.prototype = i.prototype), new n()));
+              };
+            })(),
+            c = (function (e) {
+              function t(t, i) {
+                var n = e.call(this, 'xhr-moz-chunked-loader') || this;
+                return (
+                  (n.TAG = 'MozChunkedLoader'),
+                  (n._seekHandler = t),
+                  (n._config = i),
+                  (n._needStash = !0),
+                  (n._xhr = null),
+                  (n._requestAbort = !1),
+                  (n._contentLength = null),
+                  (n._receivedLength = 0),
+                  n
+                );
+              }
+              return (
+                d(t, e),
+                (t.isSupported = function () {
+                  try {
+                    var e = new XMLHttpRequest();
+                    return (
+                      e.open('GET', 'https://example.com', !0),
+                      (e.responseType = 'moz-chunked-arraybuffer'),
+                      'moz-chunked-arraybuffer' === e.responseType
+                    );
+                  } catch (e) {
+                    return r.Z.w('MozChunkedLoader', e.message), !1;
+                  }
+                }),
+                (t.prototype.destroy = function () {
+                  this.isWorking() && this.abort(),
+                    this._xhr &&
+                      ((this._xhr.onreadystatechange = null),
+                      (this._xhr.onprogress = null),
+                      (this._xhr.onloadend = null),
+                      (this._xhr.onerror = null),
+                      (this._xhr = null)),
+                    e.prototype.destroy.call(this);
+                }),
+                (t.prototype.open = function (e, t) {
+                  (this._dataSource = e), (this._range = t);
+                  var i = e.url;
+                  this._config.reuseRedirectedURL &&
+                    null != e.redirectedURL &&
+                    (i = e.redirectedURL);
+                  var n = this._seekHandler.getConfig(i, t);
+                  this._requestURL = n.url;
+                  var r = (this._xhr = new XMLHttpRequest());
+                  if (
+                    (r.open('GET', n.url, !0),
+                    (r.responseType = 'moz-chunked-arraybuffer'),
+                    (r.onreadystatechange =
+                      this._onReadyStateChange.bind(this)),
+                    (r.onprogress = this._onProgress.bind(this)),
+                    (r.onloadend = this._onLoadEnd.bind(this)),
+                    (r.onerror = this._onXhrError.bind(this)),
+                    e.withCredentials && (r.withCredentials = !0),
+                    'object' == typeof n.headers)
+                  ) {
+                    var s = n.headers;
+                    for (var a in s)
+                      s.hasOwnProperty(a) && r.setRequestHeader(a, s[a]);
+                  }
+                  if ('object' == typeof this._config.headers) {
+                    s = this._config.headers;
+                    for (var a in s)
+                      s.hasOwnProperty(a) && r.setRequestHeader(a, s[a]);
+                  }
+                  (this._status = o.GM.kConnecting), r.send();
+                }),
+                (t.prototype.abort = function () {
+                  (this._requestAbort = !0),
+                    this._xhr && this._xhr.abort(),
+                    (this._status = o.GM.kComplete);
+                }),
+                (t.prototype._onReadyStateChange = function (e) {
+                  var t = e.target;
+                  if (2 === t.readyState) {
+                    if (
+                      null != t.responseURL &&
+                      t.responseURL !== this._requestURL &&
+                      this._onURLRedirect
+                    ) {
+                      var i = this._seekHandler.removeURLParameters(
+                        t.responseURL
+                      );
+                      this._onURLRedirect(i);
+                    }
+                    if (0 !== t.status && (t.status < 200 || t.status > 299)) {
+                      if (((this._status = o.GM.kError), !this._onError))
+                        throw new h.OZ(
+                          'MozChunkedLoader: Http code invalid, ' +
+                            t.status +
+                            ' ' +
+                            t.statusText
+                        );
+                      this._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
+                        code: t.status,
+                        msg: t.statusText,
+                      });
+                    } else this._status = o.GM.kBuffering;
+                  }
+                }),
+                (t.prototype._onProgress = function (e) {
+                  if (this._status !== o.GM.kError) {
+                    null === this._contentLength &&
+                      null !== e.total &&
+                      0 !== e.total &&
+                      ((this._contentLength = e.total),
+                      this._onContentLengthKnown &&
+                        this._onContentLengthKnown(this._contentLength));
+                    var t = e.target.response,
+                      i = this._range.from + this._receivedLength;
+                    (this._receivedLength += t.byteLength),
+                      this._onDataArrival &&
+                        this._onDataArrival(t, i, this._receivedLength);
+                  }
+                }),
+                (t.prototype._onLoadEnd = function (e) {
+                  !0 !== this._requestAbort
+                    ? this._status !== o.GM.kError &&
+                      ((this._status = o.GM.kComplete),
+                      this._onComplete &&
+                        this._onComplete(
+                          this._range.from,
+                          this._range.from + this._receivedLength - 1
+                        ))
+                    : (this._requestAbort = !1);
+                }),
+                (t.prototype._onXhrError = function (e) {
+                  this._status = o.GM.kError;
+                  var t = 0,
+                    i = null;
+                  if (
+                    (this._contentLength && e.loaded < this._contentLength
+                      ? ((t = o.nm.EARLY_EOF),
+                        (i = {
+                          code: -1,
+                          msg: 'Moz-Chunked stream meet Early-Eof',
+                        }))
+                      : ((t = o.nm.EXCEPTION),
+                        (i = {
+                          code: -1,
+                          msg: e.constructor.name + ' ' + e.type,
+                        })),
+                    !this._onError)
+                  )
+                    throw new h.OZ(i.msg);
+                  this._onError(t, i);
+                }),
+                t
+              );
+            })(o.fp),
+            f = (function () {
+              var e = function (t, i) {
+                return (e =
+                  Object.setPrototypeOf ||
+                  ({ __proto__: [] } instanceof Array &&
+                    function (e, t) {
+                      e.__proto__ = t;
+                    }) ||
+                  function (e, t) {
+                    for (var i in t)
+                      Object.prototype.hasOwnProperty.call(t, i) &&
+                        (e[i] = t[i]);
+                  })(t, i);
+              };
+              return function (t, i) {
+                if ('function' != typeof i && null !== i)
+                  throw new TypeError(
+                    'Class extends value ' +
+                      String(i) +
+                      ' is not a constructor or null'
+                  );
+                function n() {
+                  this.constructor = t;
+                }
+                e(t, i),
+                  (t.prototype =
+                    null === i
+                      ? Object.create(i)
+                      : ((n.prototype = i.prototype), new n()));
+              };
+            })(),
+            _ = (function (e) {
+              function t(t, i) {
+                var n = e.call(this, 'xhr-range-loader') || this;
+                return (
+                  (n.TAG = 'RangeLoader'),
+                  (n._seekHandler = t),
+                  (n._config = i),
+                  (n._needStash = !1),
+                  (n._chunkSizeKBList = [
+                    128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120,
+                    6144, 7168, 8192,
+                  ]),
+                  (n._currentChunkSizeKB = 384),
+                  (n._currentSpeedNormalized = 0),
+                  (n._zeroSpeedChunkCount = 0),
+                  (n._xhr = null),
+                  (n._speedSampler = new s()),
+                  (n._requestAbort = !1),
+                  (n._waitForTotalLength = !1),
+                  (n._totalLengthReceived = !1),
+                  (n._currentRequestURL = null),
+                  (n._currentRedirectedURL = null),
+                  (n._currentRequestRange = null),
+                  (n._totalLength = null),
+                  (n._contentLength = null),
+                  (n._receivedLength = 0),
+                  (n._lastTimeLoaded = 0),
+                  n
+                );
+              }
+              return (
+                f(t, e),
+                (t.isSupported = function () {
+                  try {
+                    var e = new XMLHttpRequest();
+                    return (
+                      e.open('GET', 'https://example.com', !0),
+                      (e.responseType = 'arraybuffer'),
+                      'arraybuffer' === e.responseType
+                    );
+                  } catch (e) {
+                    return r.Z.w('RangeLoader', e.message), !1;
+                  }
+                }),
+                (t.prototype.destroy = function () {
+                  this.isWorking() && this.abort(),
+                    this._xhr &&
+                      ((this._xhr.onreadystatechange = null),
+                      (this._xhr.onprogress = null),
+                      (this._xhr.onload = null),
+                      (this._xhr.onerror = null),
+                      (this._xhr = null)),
+                    e.prototype.destroy.call(this);
+                }),
+                Object.defineProperty(t.prototype, 'currentSpeed', {
+                  get: function () {
+                    return this._speedSampler.lastSecondKBps;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (t.prototype.open = function (e, t) {
+                  (this._dataSource = e),
+                    (this._range = t),
+                    (this._status = o.GM.kConnecting);
+                  var i = !1;
+                  null != this._dataSource.filesize &&
+                    0 !== this._dataSource.filesize &&
+                    ((i = !0), (this._totalLength = this._dataSource.filesize)),
+                    this._totalLengthReceived || i
+                      ? this._openSubRange()
+                      : ((this._waitForTotalLength = !0),
+                        this._internalOpen(this._dataSource, {
+                          from: 0,
+                          to: -1,
+                        }));
+                }),
+                (t.prototype._openSubRange = function () {
+                  var e = 1024 * this._currentChunkSizeKB,
+                    t = this._range.from + this._receivedLength,
+                    i = t + e;
+                  null != this._contentLength &&
+                    i - this._range.from >= this._contentLength &&
+                    (i = this._range.from + this._contentLength - 1),
+                    (this._currentRequestRange = { from: t, to: i }),
+                    this._internalOpen(
+                      this._dataSource,
+                      this._currentRequestRange
+                    );
+                }),
+                (t.prototype._internalOpen = function (e, t) {
+                  this._lastTimeLoaded = 0;
+                  var i = e.url;
+                  this._config.reuseRedirectedURL &&
+                    (null != this._currentRedirectedURL
+                      ? (i = this._currentRedirectedURL)
+                      : null != e.redirectedURL && (i = e.redirectedURL));
+                  var n = this._seekHandler.getConfig(i, t);
+                  this._currentRequestURL = n.url;
+                  var r = (this._xhr = new XMLHttpRequest());
+                  if (
+                    (r.open('GET', n.url, !0),
+                    (r.responseType = 'arraybuffer'),
+                    (r.onreadystatechange =
+                      this._onReadyStateChange.bind(this)),
+                    (r.onprogress = this._onProgress.bind(this)),
+                    (r.onload = this._onLoad.bind(this)),
+                    (r.onerror = this._onXhrError.bind(this)),
+                    e.withCredentials && (r.withCredentials = !0),
+                    'object' == typeof n.headers)
+                  ) {
+                    var s = n.headers;
+                    for (var o in s)
+                      s.hasOwnProperty(o) && r.setRequestHeader(o, s[o]);
+                  }
+                  if ('object' == typeof this._config.headers) {
+                    s = this._config.headers;
+                    for (var o in s)
+                      s.hasOwnProperty(o) && r.setRequestHeader(o, s[o]);
+                  }
+                  r.send();
+                }),
+                (t.prototype.abort = function () {
+                  (this._requestAbort = !0),
+                    this._internalAbort(),
+                    (this._status = o.GM.kComplete);
+                }),
+                (t.prototype._internalAbort = function () {
+                  this._xhr &&
+                    ((this._xhr.onreadystatechange = null),
+                    (this._xhr.onprogress = null),
+                    (this._xhr.onload = null),
+                    (this._xhr.onerror = null),
+                    this._xhr.abort(),
+                    (this._xhr = null));
+                }),
+                (t.prototype._onReadyStateChange = function (e) {
+                  var t = e.target;
+                  if (2 === t.readyState) {
+                    if (null != t.responseURL) {
+                      var i = this._seekHandler.removeURLParameters(
+                        t.responseURL
+                      );
+                      t.responseURL !== this._currentRequestURL &&
+                        i !== this._currentRedirectedURL &&
+                        ((this._currentRedirectedURL = i),
+                        this._onURLRedirect && this._onURLRedirect(i));
+                    }
+                    if (t.status >= 200 && t.status <= 299) {
+                      if (this._waitForTotalLength) return;
+                      this._status = o.GM.kBuffering;
+                    } else {
+                      if (((this._status = o.GM.kError), !this._onError))
+                        throw new h.OZ(
+                          'RangeLoader: Http code invalid, ' +
+                            t.status +
+                            ' ' +
+                            t.statusText
+                        );
+                      this._onError(o.nm.HTTP_STATUS_CODE_INVALID, {
+                        code: t.status,
+                        msg: t.statusText,
+                      });
+                    }
+                  }
+                }),
+                (t.prototype._onProgress = function (e) {
+                  if (this._status !== o.GM.kError) {
+                    if (null === this._contentLength) {
+                      var t = !1;
+                      if (this._waitForTotalLength) {
+                        (this._waitForTotalLength = !1),
+                          (this._totalLengthReceived = !0),
+                          (t = !0);
+                        var i = e.total;
+                        this._internalAbort(),
+                          (null != i) & (0 !== i) && (this._totalLength = i);
+                      }
+                      if (
+                        (-1 === this._range.to
+                          ? (this._contentLength =
+                              this._totalLength - this._range.from)
+                          : (this._contentLength =
+                              this._range.to - this._range.from + 1),
+                        t)
+                      )
+                        return void this._openSubRange();
+                      this._onContentLengthKnown &&
+                        this._onContentLengthKnown(this._contentLength);
+                    }
+                    var n = e.loaded - this._lastTimeLoaded;
+                    (this._lastTimeLoaded = e.loaded),
+                      this._speedSampler.addBytes(n);
+                  }
+                }),
+                (t.prototype._normalizeSpeed = function (e) {
+                  var t = this._chunkSizeKBList,
+                    i = t.length - 1,
+                    n = 0,
+                    r = 0,
+                    s = i;
+                  if (e < t[0]) return t[0];
+                  for (; r <= s; ) {
+                    if (
+                      (n = r + Math.floor((s - r) / 2)) === i ||
+                      (e >= t[n] && e < t[n + 1])
+                    )
+                      return t[n];
+                    t[n] < e ? (r = n + 1) : (s = n - 1);
+                  }
+                }),
+                (t.prototype._onLoad = function (e) {
+                  if (this._status !== o.GM.kError)
+                    if (this._waitForTotalLength) this._waitForTotalLength = !1;
+                    else {
+                      this._lastTimeLoaded = 0;
+                      var t = this._speedSampler.lastSecondKBps;
+                      if (
+                        (0 === t &&
+                          (this._zeroSpeedChunkCount++,
+                          this._zeroSpeedChunkCount >= 3 &&
+                            (t = this._speedSampler.currentKBps)),
+                        0 !== t)
+                      ) {
+                        var i = this._normalizeSpeed(t);
+                        this._currentSpeedNormalized !== i &&
+                          ((this._currentSpeedNormalized = i),
+                          (this._currentChunkSizeKB = i));
+                      }
+                      var n = e.target.response,
+                        r = this._range.from + this._receivedLength;
+                      this._receivedLength += n.byteLength;
+                      var s = !1;
+                      null != this._contentLength &&
+                      this._receivedLength < this._contentLength
+                        ? this._openSubRange()
+                        : (s = !0),
+                        this._onDataArrival &&
+                          this._onDataArrival(n, r, this._receivedLength),
+                        s &&
+                          ((this._status = o.GM.kComplete),
+                          this._onComplete &&
+                            this._onComplete(
+                              this._range.from,
+                              this._range.from + this._receivedLength - 1
+                            ));
+                    }
+                }),
+                (t.prototype._onXhrError = function (e) {
+                  this._status = o.GM.kError;
+                  var t = 0,
+                    i = null;
+                  if (
+                    (this._contentLength &&
+                    this._receivedLength > 0 &&
+                    this._receivedLength < this._contentLength
+                      ? ((t = o.nm.EARLY_EOF),
+                        (i = { code: -1, msg: 'RangeLoader meet Early-Eof' }))
+                      : ((t = o.nm.EXCEPTION),
+                        (i = {
+                          code: -1,
+                          msg: e.constructor.name + ' ' + e.type,
+                        })),
+                    !this._onError)
+                  )
+                    throw new h.OZ(i.msg);
+                  this._onError(t, i);
+                }),
+                t
+              );
+            })(o.fp),
+            p = (function () {
+              var e = function (t, i) {
+                return (e =
+                  Object.setPrototypeOf ||
+                  ({ __proto__: [] } instanceof Array &&
+                    function (e, t) {
+                      e.__proto__ = t;
+                    }) ||
+                  function (e, t) {
+                    for (var i in t)
+                      Object.prototype.hasOwnProperty.call(t, i) &&
+                        (e[i] = t[i]);
+                  })(t, i);
+              };
+              return function (t, i) {
+                if ('function' != typeof i && null !== i)
+                  throw new TypeError(
+                    'Class extends value ' +
+                      String(i) +
+                      ' is not a constructor or null'
+                  );
+                function n() {
+                  this.constructor = t;
+                }
+                e(t, i),
+                  (t.prototype =
+                    null === i
+                      ? Object.create(i)
+                      : ((n.prototype = i.prototype), new n()));
+              };
+            })(),
+            m = (function (e) {
+              function t() {
+                var t = e.call(this, 'websocket-loader') || this;
+                return (
+                  (t.TAG = 'WebSocketLoader'),
+                  (t._needStash = !0),
+                  (t._ws = null),
+                  (t._requestAbort = !1),
+                  (t._receivedLength = 0),
+                  t
+                );
+              }
+              return (
+                p(t, e),
+                (t.isSupported = function () {
+                  try {
+                    return void 0 !== self.WebSocket;
+                  } catch (e) {
+                    return !1;
+                  }
+                }),
+                (t.prototype.destroy = function () {
+                  this._ws && this.abort(), e.prototype.destroy.call(this);
+                }),
+                (t.prototype.open = function (e) {
+                  try {
+                    var t = (this._ws = new self.WebSocket(e.url));
+                    (t.binaryType = 'arraybuffer'),
+                      (t.onopen = this._onWebSocketOpen.bind(this)),
+                      (t.onclose = this._onWebSocketClose.bind(this)),
+                      (t.onmessage = this._onWebSocketMessage.bind(this)),
+                      (t.onerror = this._onWebSocketError.bind(this)),
+                      (this._status = o.GM.kConnecting);
+                  } catch (e) {
+                    this._status = o.GM.kError;
+                    var i = { code: e.code, msg: e.message };
+                    if (!this._onError) throw new h.OZ(i.msg);
+                    this._onError(o.nm.EXCEPTION, i);
+                  }
+                }),
+                (t.prototype.abort = function () {
+                  var e = this._ws;
+                  !e ||
+                    (0 !== e.readyState && 1 !== e.readyState) ||
+                    ((this._requestAbort = !0), e.close()),
+                    (this._ws = null),
+                    (this._status = o.GM.kComplete);
+                }),
+                (t.prototype._onWebSocketOpen = function (e) {
+                  this._status = o.GM.kBuffering;
+                }),
+                (t.prototype._onWebSocketClose = function (e) {
+                  !0 !== this._requestAbort
+                    ? ((this._status = o.GM.kComplete),
+                      this._onComplete &&
+                        this._onComplete(0, this._receivedLength - 1))
+                    : (this._requestAbort = !1);
+                }),
+                (t.prototype._onWebSocketMessage = function (e) {
+                  var t = this;
+                  if (e.data instanceof ArrayBuffer)
+                    this._dispatchArrayBuffer(e.data);
+                  else if (e.data instanceof Blob) {
+                    var i = new FileReader();
+                    (i.onload = function () {
+                      t._dispatchArrayBuffer(i.result);
+                    }),
+                      i.readAsArrayBuffer(e.data);
+                  } else {
+                    this._status = o.GM.kError;
+                    var n = {
+                      code: -1,
+                      msg:
+                        'Unsupported WebSocket message type: ' +
+                        e.data.constructor.name,
+                    };
+                    if (!this._onError) throw new h.OZ(n.msg);
+                    this._onError(o.nm.EXCEPTION, n);
+                  }
+                }),
+                (t.prototype._dispatchArrayBuffer = function (e) {
+                  var t = e,
+                    i = this._receivedLength;
+                  (this._receivedLength += t.byteLength),
+                    this._onDataArrival &&
+                      this._onDataArrival(t, i, this._receivedLength);
+                }),
+                (t.prototype._onWebSocketError = function (e) {
+                  this._status = o.GM.kError;
+                  var t = { code: e.code, msg: e.message };
+                  if (!this._onError) throw new h.OZ(t.msg);
+                  this._onError(o.nm.EXCEPTION, t);
+                }),
+                t
+              );
+            })(o.fp),
+            g = (function () {
+              function e(e) {
+                this._zeroStart = e || !1;
+              }
+              return (
+                (e.prototype.getConfig = function (e, t) {
+                  var i = {};
+                  if (0 !== t.from || -1 !== t.to) {
+                    var n = void 0;
+                    (n =
+                      -1 !== t.to
+                        ? 'bytes=' + t.from.toString() + '-' + t.to.toString()
+                        : 'bytes=' + t.from.toString() + '-'),
+                      (i.Range = n);
+                  } else this._zeroStart && (i.Range = 'bytes=0-');
+                  return { url: e, headers: i };
+                }),
+                (e.prototype.removeURLParameters = function (e) {
+                  return e;
+                }),
+                e
+              );
+            })(),
+            v = (function () {
+              function e(e, t) {
+                (this._startName = e), (this._endName = t);
+              }
+              return (
+                (e.prototype.getConfig = function (e, t) {
+                  var i = e;
+                  if (0 !== t.from || -1 !== t.to) {
+                    var n = !0;
+                    -1 === i.indexOf('?') && ((i += '?'), (n = !1)),
+                      n && (i += '&'),
+                      (i += this._startName + '=' + t.from.toString()),
+                      -1 !== t.to &&
+                        (i += '&' + this._endName + '=' + t.to.toString());
+                  }
+                  return { url: i, headers: {} };
+                }),
+                (e.prototype.removeURLParameters = function (e) {
+                  var t = e.split('?')[0],
+                    i = void 0,
+                    n = e.indexOf('?');
+                  -1 !== n && (i = e.substring(n + 1));
+                  var r = '';
+                  if (null != i && i.length > 0)
+                    for (var s = i.split('&'), o = 0; o < s.length; o++) {
+                      var a = s[o].split('='),
+                        h = o > 0;
+                      a[0] !== this._startName &&
+                        a[0] !== this._endName &&
+                        (h && (r += '&'), (r += s[o]));
+                    }
+                  return 0 === r.length ? t : t + '?' + r;
+                }),
+                e
+              );
+            })(),
+            y = (function () {
+              function e(e, t, i) {
+                (this.TAG = 'IOController'),
+                  (this._config = t),
+                  (this._extraData = i),
+                  (this._stashInitialSize = 393216),
+                  null != t.stashInitialSize &&
+                    t.stashInitialSize > 0 &&
+                    (this._stashInitialSize = t.stashInitialSize),
+                  (this._stashUsed = 0),
+                  (this._stashSize = this._stashInitialSize),
+                  (this._bufferSize = 3145728),
+                  (this._stashBuffer = new ArrayBuffer(this._bufferSize)),
+                  (this._stashByteStart = 0),
+                  (this._enableStash = !0),
+                  !1 === t.enableStashBuffer && (this._enableStash = !1),
+                  (this._loader = null),
+                  (this._loaderClass = null),
+                  (this._seekHandler = null),
+                  (this._dataSource = e),
+                  (this._isWebSocketURL = /wss?:\/\/(.+?)/.test(e.url)),
+                  (this._refTotalLength = e.filesize ? e.filesize : null),
+                  (this._totalLength = this._refTotalLength),
+                  (this._fullRequestFlag = !1),
+                  (this._currentRange = null),
+                  (this._redirectedURL = null),
+                  (this._speedNormalized = 0),
+                  (this._speedSampler = new s()),
+                  (this._speedNormalizeList = [
+                    64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096,
+                  ]),
+                  (this._isEarlyEofReconnecting = !1),
+                  (this._paused = !1),
+                  (this._resumeFrom = 0),
+                  (this._onDataArrival = null),
+                  (this._onSeeked = null),
+                  (this._onError = null),
+                  (this._onComplete = null),
+                  (this._onRedirect = null),
+                  (this._onRecoveredEarlyEof = null),
+                  this._selectSeekHandler(),
+                  this._selectLoader(),
+                  this._createLoader();
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  this._loader.isWorking() && this._loader.abort(),
+                    this._loader.destroy(),
+                    (this._loader = null),
+                    (this._loaderClass = null),
+                    (this._dataSource = null),
+                    (this._stashBuffer = null),
+                    (this._stashUsed =
+                      this._stashSize =
+                      this._bufferSize =
+                      this._stashByteStart =
+                        0),
+                    (this._currentRange = null),
+                    (this._speedSampler = null),
+                    (this._isEarlyEofReconnecting = !1),
+                    (this._onDataArrival = null),
+                    (this._onSeeked = null),
+                    (this._onError = null),
+                    (this._onComplete = null),
+                    (this._onRedirect = null),
+                    (this._onRecoveredEarlyEof = null),
+                    (this._extraData = null);
+                }),
+                (e.prototype.isWorking = function () {
+                  return (
+                    this._loader && this._loader.isWorking() && !this._paused
+                  );
+                }),
+                (e.prototype.isPaused = function () {
+                  return this._paused;
+                }),
+                Object.defineProperty(e.prototype, 'status', {
+                  get: function () {
+                    return this._loader.status;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'extraData', {
+                  get: function () {
+                    return this._extraData;
+                  },
+                  set: function (e) {
+                    this._extraData = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onDataArrival', {
+                  get: function () {
+                    return this._onDataArrival;
+                  },
+                  set: function (e) {
+                    this._onDataArrival = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onSeeked', {
+                  get: function () {
+                    return this._onSeeked;
+                  },
+                  set: function (e) {
+                    this._onSeeked = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onError', {
+                  get: function () {
+                    return this._onError;
+                  },
+                  set: function (e) {
+                    this._onError = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onComplete', {
+                  get: function () {
+                    return this._onComplete;
+                  },
+                  set: function (e) {
+                    this._onComplete = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onRedirect', {
+                  get: function () {
+                    return this._onRedirect;
+                  },
+                  set: function (e) {
+                    this._onRedirect = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onRecoveredEarlyEof', {
+                  get: function () {
+                    return this._onRecoveredEarlyEof;
+                  },
+                  set: function (e) {
+                    this._onRecoveredEarlyEof = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'currentURL', {
+                  get: function () {
+                    return this._dataSource.url;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'hasRedirect', {
+                  get: function () {
+                    return (
+                      null != this._redirectedURL ||
+                      null != this._dataSource.redirectedURL
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'currentRedirectedURL', {
+                  get: function () {
+                    return (
+                      this._redirectedURL || this._dataSource.redirectedURL
+                    );
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'currentSpeed', {
+                  get: function () {
+                    return this._loaderClass === _
+                      ? this._loader.currentSpeed
+                      : this._speedSampler.lastSecondKBps;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'loaderType', {
+                  get: function () {
+                    return this._loader.type;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype._selectSeekHandler = function () {
+                  var e = this._config;
+                  if ('range' === e.seekType)
+                    this._seekHandler = new g(this._config.rangeLoadZeroStart);
+                  else if ('param' === e.seekType) {
+                    var t = e.seekParamStart || 'bstart',
+                      i = e.seekParamEnd || 'bend';
+                    this._seekHandler = new v(t, i);
+                  } else {
+                    if ('custom' !== e.seekType)
+                      throw new h.OC(
+                        'Invalid seekType in config: ' + e.seekType
+                      );
+                    if ('function' != typeof e.customSeekHandler)
+                      throw new h.OC(
+                        'Custom seekType specified in config but invalid customSeekHandler!'
+                      );
+                    this._seekHandler = new e.customSeekHandler();
+                  }
+                }),
+                (e.prototype._selectLoader = function () {
+                  if (null != this._config.customLoader)
+                    this._loaderClass = this._config.customLoader;
+                  else if (this._isWebSocketURL) this._loaderClass = m;
+                  else if (l.isSupported()) this._loaderClass = l;
+                  else if (c.isSupported()) this._loaderClass = c;
+                  else {
+                    if (!_.isSupported())
+                      throw new h.OZ(
+                        "Your browser doesn't support xhr with arraybuffer responseType!"
+                      );
+                    this._loaderClass = _;
+                  }
+                }),
+                (e.prototype._createLoader = function () {
+                  (this._loader = new this._loaderClass(
+                    this._seekHandler,
+                    this._config
+                  )),
+                    !1 === this._loader.needStashBuffer &&
+                      (this._enableStash = !1),
+                    (this._loader.onContentLengthKnown =
+                      this._onContentLengthKnown.bind(this)),
+                    (this._loader.onURLRedirect =
+                      this._onURLRedirect.bind(this)),
+                    (this._loader.onDataArrival =
+                      this._onLoaderChunkArrival.bind(this)),
+                    (this._loader.onComplete =
+                      this._onLoaderComplete.bind(this)),
+                    (this._loader.onError = this._onLoaderError.bind(this));
+                }),
+                (e.prototype.open = function (e) {
+                  (this._currentRange = { from: 0, to: -1 }),
+                    e && (this._currentRange.from = e),
+                    this._speedSampler.reset(),
+                    e || (this._fullRequestFlag = !0),
+                    this._loader.open(
+                      this._dataSource,
+                      Object.assign({}, this._currentRange)
+                    );
+                }),
+                (e.prototype.abort = function () {
+                  this._loader.abort(),
+                    this._paused &&
+                      ((this._paused = !1), (this._resumeFrom = 0));
+                }),
+                (e.prototype.pause = function () {
+                  this.isWorking() &&
+                    (this._loader.abort(),
+                    0 !== this._stashUsed
+                      ? ((this._resumeFrom = this._stashByteStart),
+                        (this._currentRange.to = this._stashByteStart - 1))
+                      : (this._resumeFrom = this._currentRange.to + 1),
+                    (this._stashUsed = 0),
+                    (this._stashByteStart = 0),
+                    (this._paused = !0));
+                }),
+                (e.prototype.resume = function () {
+                  if (this._paused) {
+                    this._paused = !1;
+                    var e = this._resumeFrom;
+                    (this._resumeFrom = 0), this._internalSeek(e, !0);
+                  }
+                }),
+                (e.prototype.seek = function (e) {
+                  (this._paused = !1),
+                    (this._stashUsed = 0),
+                    (this._stashByteStart = 0),
+                    this._internalSeek(e, !0);
+                }),
+                (e.prototype._internalSeek = function (e, t) {
+                  this._loader.isWorking() && this._loader.abort(),
+                    this._flushStashBuffer(t),
+                    this._loader.destroy(),
+                    (this._loader = null);
+                  var i = { from: e, to: -1 };
+                  (this._currentRange = { from: i.from, to: -1 }),
+                    this._speedSampler.reset(),
+                    (this._stashSize = this._stashInitialSize),
+                    this._createLoader(),
+                    this._loader.open(this._dataSource, i),
+                    this._onSeeked && this._onSeeked();
+                }),
+                (e.prototype.updateUrl = function (e) {
+                  if (!e || 'string' != typeof e || 0 === e.length)
+                    throw new h.OC('Url must be a non-empty string!');
+                  this._dataSource.url = e;
+                }),
+                (e.prototype._expandBuffer = function (e) {
+                  for (var t = this._stashSize; t + 1048576 < e; ) t *= 2;
+                  if ((t += 1048576) !== this._bufferSize) {
+                    var i = new ArrayBuffer(t);
+                    if (this._stashUsed > 0) {
+                      var n = new Uint8Array(
+                        this._stashBuffer,
+                        0,
+                        this._stashUsed
+                      );
+                      new Uint8Array(i, 0, t).set(n, 0);
+                    }
+                    (this._stashBuffer = i), (this._bufferSize = t);
+                  }
+                }),
+                (e.prototype._normalizeSpeed = function (e) {
+                  var t = this._speedNormalizeList,
+                    i = t.length - 1,
+                    n = 0,
+                    r = 0,
+                    s = i;
+                  if (e < t[0]) return t[0];
+                  for (; r <= s; ) {
+                    if (
+                      (n = r + Math.floor((s - r) / 2)) === i ||
+                      (e >= t[n] && e < t[n + 1])
+                    )
+                      return t[n];
+                    t[n] < e ? (r = n + 1) : (s = n - 1);
+                  }
+                }),
+                (e.prototype._adjustStashSize = function (e) {
+                  var t = 0;
+                  (t =
+                    this._config.isLive || e < 512
+                      ? e
+                      : e >= 512 && e <= 1024
+                      ? Math.floor(1.5 * e)
+                      : 2 * e) > 8192 && (t = 8192);
+                  var i = 1024 * t + 1048576;
+                  this._bufferSize < i && this._expandBuffer(i),
+                    (this._stashSize = 1024 * t);
+                }),
+                (e.prototype._dispatchChunks = function (e, t) {
+                  return (
+                    (this._currentRange.to = t + e.byteLength - 1),
+                    this._onDataArrival(e, t)
+                  );
+                }),
+                (e.prototype._onURLRedirect = function (e) {
+                  (this._redirectedURL = e),
+                    this._onRedirect && this._onRedirect(e);
+                }),
+                (e.prototype._onContentLengthKnown = function (e) {
+                  e &&
+                    this._fullRequestFlag &&
+                    ((this._totalLength = e), (this._fullRequestFlag = !1));
+                }),
+                (e.prototype._onLoaderChunkArrival = function (e, t, i) {
+                  if (!this._onDataArrival)
+                    throw new h.rT(
+                      'IOController: No existing consumer (onDataArrival) callback!'
+                    );
+                  if (!this._paused) {
+                    this._isEarlyEofReconnecting &&
+                      ((this._isEarlyEofReconnecting = !1),
+                      this._onRecoveredEarlyEof && this._onRecoveredEarlyEof()),
+                      this._speedSampler.addBytes(e.byteLength);
+                    var n = this._speedSampler.lastSecondKBps;
+                    if (0 !== n) {
+                      var r = this._normalizeSpeed(n);
+                      this._speedNormalized !== r &&
+                        ((this._speedNormalized = r), this._adjustStashSize(r));
+                    }
+                    if (this._enableStash)
+                      if (
+                        (0 === this._stashUsed &&
+                          0 === this._stashByteStart &&
+                          (this._stashByteStart = t),
+                        this._stashUsed + e.byteLength <= this._stashSize)
+                      ) {
+                        (a = new Uint8Array(
+                          this._stashBuffer,
+                          0,
+                          this._stashSize
+                        )).set(new Uint8Array(e), this._stashUsed),
+                          (this._stashUsed += e.byteLength);
+                      } else {
+                        a = new Uint8Array(
+                          this._stashBuffer,
+                          0,
+                          this._bufferSize
+                        );
+                        if (this._stashUsed > 0) {
+                          var s = this._stashBuffer.slice(0, this._stashUsed);
+                          if (
+                            (u = this._dispatchChunks(
+                              s,
+                              this._stashByteStart
+                            )) < s.byteLength
+                          ) {
+                            if (u > 0) {
+                              l = new Uint8Array(s, u);
+                              a.set(l, 0),
+                                (this._stashUsed = l.byteLength),
+                                (this._stashByteStart += u);
+                            }
+                          } else
+                            (this._stashUsed = 0), (this._stashByteStart += u);
+                          this._stashUsed + e.byteLength > this._bufferSize &&
+                            (this._expandBuffer(this._stashUsed + e.byteLength),
+                            (a = new Uint8Array(
+                              this._stashBuffer,
+                              0,
+                              this._bufferSize
+                            ))),
+                            a.set(new Uint8Array(e), this._stashUsed),
+                            (this._stashUsed += e.byteLength);
+                        } else {
+                          if ((u = this._dispatchChunks(e, t)) < e.byteLength)
+                            (o = e.byteLength - u) > this._bufferSize &&
+                              (this._expandBuffer(o),
+                              (a = new Uint8Array(
+                                this._stashBuffer,
+                                0,
+                                this._bufferSize
+                              ))),
+                              a.set(new Uint8Array(e, u), 0),
+                              (this._stashUsed += o),
+                              (this._stashByteStart = t + u);
+                        }
+                      }
+                    else if (0 === this._stashUsed) {
+                      var o;
+                      if ((u = this._dispatchChunks(e, t)) < e.byteLength)
+                        (o = e.byteLength - u) > this._bufferSize &&
+                          this._expandBuffer(o),
+                          (a = new Uint8Array(
+                            this._stashBuffer,
+                            0,
+                            this._bufferSize
+                          )).set(new Uint8Array(e, u), 0),
+                          (this._stashUsed += o),
+                          (this._stashByteStart = t + u);
+                    } else {
+                      var a, u;
+                      if (
+                        (this._stashUsed + e.byteLength > this._bufferSize &&
+                          this._expandBuffer(this._stashUsed + e.byteLength),
+                        (a = new Uint8Array(
+                          this._stashBuffer,
+                          0,
+                          this._bufferSize
+                        )).set(new Uint8Array(e), this._stashUsed),
+                        (this._stashUsed += e.byteLength),
+                        (u = this._dispatchChunks(
+                          this._stashBuffer.slice(0, this._stashUsed),
+                          this._stashByteStart
+                        )) < this._stashUsed && u > 0)
+                      ) {
+                        var l = new Uint8Array(this._stashBuffer, u);
+                        a.set(l, 0);
+                      }
+                      (this._stashUsed -= u), (this._stashByteStart += u);
+                    }
+                  }
+                }),
+                (e.prototype._flushStashBuffer = function (e) {
+                  if (this._stashUsed > 0) {
+                    var t = this._stashBuffer.slice(0, this._stashUsed),
+                      i = this._dispatchChunks(t, this._stashByteStart),
+                      n = t.byteLength - i;
+                    if (i < t.byteLength) {
+                      if (!e) {
+                        if (i > 0) {
+                          var s = new Uint8Array(
+                              this._stashBuffer,
+                              0,
+                              this._bufferSize
+                            ),
+                            o = new Uint8Array(t, i);
+                          s.set(o, 0),
+                            (this._stashUsed = o.byteLength),
+                            (this._stashByteStart += i);
+                        }
+                        return 0;
+                      }
+                      r.Z.w(
+                        this.TAG,
+                        n +
+                          ' bytes unconsumed data remain when flush buffer, dropped'
+                      );
+                    }
+                    return (this._stashUsed = 0), (this._stashByteStart = 0), n;
+                  }
+                  return 0;
+                }),
+                (e.prototype._onLoaderComplete = function (e, t) {
+                  this._flushStashBuffer(!0),
+                    this._onComplete && this._onComplete(this._extraData);
+                }),
+                (e.prototype._onLoaderError = function (e, t) {
+                  switch (
+                    (r.Z.e(
+                      this.TAG,
+                      'Loader error, code = ' + t.code + ', msg = ' + t.msg
+                    ),
+                    this._flushStashBuffer(!1),
+                    this._isEarlyEofReconnecting &&
+                      ((this._isEarlyEofReconnecting = !1),
+                      (e = o.nm.UNRECOVERABLE_EARLY_EOF)),
+                    e)
+                  ) {
+                    case o.nm.EARLY_EOF:
+                      if (!this._config.isLive && this._totalLength) {
+                        var i = this._currentRange.to + 1;
+                        return void (
+                          i < this._totalLength &&
+                          (r.Z.w(
+                            this.TAG,
+                            'Connection lost, trying reconnect...'
+                          ),
+                          (this._isEarlyEofReconnecting = !0),
+                          this._internalSeek(i, !1))
+                        );
+                      }
+                      e = o.nm.UNRECOVERABLE_EARLY_EOF;
+                      break;
+                    case o.nm.UNRECOVERABLE_EARLY_EOF:
+                    case o.nm.CONNECTING_TIMEOUT:
+                    case o.nm.HTTP_STATUS_CODE_INVALID:
+                    case o.nm.EXCEPTION:
+                  }
+                  if (!this._onError) throw new h.OZ('IOException: ' + t.msg);
+                  this._onError(e, t);
+                }),
+                e
+              );
+            })();
+        },
+        939: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            GM: function () {
+              return r;
+            },
+            nm: function () {
+              return s;
+            },
+            fp: function () {
+              return o;
+            },
+          });
+          var n = i(29),
+            r = {
+              kIdle: 0,
+              kConnecting: 1,
+              kBuffering: 2,
+              kError: 3,
+              kComplete: 4,
+            },
+            s = {
+              OK: 'OK',
+              EXCEPTION: 'Exception',
+              HTTP_STATUS_CODE_INVALID: 'HttpStatusCodeInvalid',
+              CONNECTING_TIMEOUT: 'ConnectingTimeout',
+              EARLY_EOF: 'EarlyEof',
+              UNRECOVERABLE_EARLY_EOF: 'UnrecoverableEarlyEof',
+            },
+            o = (function () {
+              function e(e) {
+                (this._type = e || 'undefined'),
+                  (this._status = r.kIdle),
+                  (this._needStash = !1),
+                  (this._onContentLengthKnown = null),
+                  (this._onURLRedirect = null),
+                  (this._onDataArrival = null),
+                  (this._onError = null),
+                  (this._onComplete = null);
+              }
+              return (
+                (e.prototype.destroy = function () {
+                  (this._status = r.kIdle),
+                    (this._onContentLengthKnown = null),
+                    (this._onURLRedirect = null),
+                    (this._onDataArrival = null),
+                    (this._onError = null),
+                    (this._onComplete = null);
+                }),
+                (e.prototype.isWorking = function () {
+                  return (
+                    this._status === r.kConnecting ||
+                    this._status === r.kBuffering
+                  );
+                }),
+                Object.defineProperty(e.prototype, 'type', {
+                  get: function () {
+                    return this._type;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'status', {
+                  get: function () {
+                    return this._status;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'needStashBuffer', {
+                  get: function () {
+                    return this._needStash;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onContentLengthKnown', {
+                  get: function () {
+                    return this._onContentLengthKnown;
+                  },
+                  set: function (e) {
+                    this._onContentLengthKnown = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onURLRedirect', {
+                  get: function () {
+                    return this._onURLRedirect;
+                  },
+                  set: function (e) {
+                    this._onURLRedirect = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onDataArrival', {
+                  get: function () {
+                    return this._onDataArrival;
+                  },
+                  set: function (e) {
+                    this._onDataArrival = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onError', {
+                  get: function () {
+                    return this._onError;
+                  },
+                  set: function (e) {
+                    this._onError = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'onComplete', {
+                  get: function () {
+                    return this._onComplete;
+                  },
+                  set: function (e) {
+                    this._onComplete = e;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype.open = function (e, t) {
+                  throw new n.do('Unimplemented abstract function!');
+                }),
+                (e.prototype.abort = function () {
+                  throw new n.do('Unimplemented abstract function!');
+                }),
+                e
+              );
+            })();
+        },
+        538: function (e, t) {
+          'use strict';
+          var i = {};
+          !(function () {
+            var e = self.navigator.userAgent.toLowerCase(),
+              t =
+                /(edge)\/([\w.]+)/.exec(e) ||
+                /(opr)[\/]([\w.]+)/.exec(e) ||
+                /(chrome)[ \/]([\w.]+)/.exec(e) ||
+                /(iemobile)[\/]([\w.]+)/.exec(e) ||
+                /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
+                  e
+                ) ||
+                /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
+                  e
+                ) ||
+                /(webkit)[ \/]([\w.]+)/.exec(e) ||
+                /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) ||
+                /(msie) ([\w.]+)/.exec(e) ||
+                (e.indexOf('trident') >= 0 && /(rv)(?::| )([\w.]+)/.exec(e)) ||
+                (e.indexOf('compatible') < 0 &&
+                  /(firefox)[ \/]([\w.]+)/.exec(e)) ||
+                [],
+              n =
+                /(ipad)/.exec(e) ||
+                /(ipod)/.exec(e) ||
+                /(windows phone)/.exec(e) ||
+                /(iphone)/.exec(e) ||
+                /(kindle)/.exec(e) ||
+                /(android)/.exec(e) ||
+                /(windows)/.exec(e) ||
+                /(mac)/.exec(e) ||
+                /(linux)/.exec(e) ||
+                /(cros)/.exec(e) ||
+                [],
+              r = {
+                browser: t[5] || t[3] || t[1] || '',
+                version: t[2] || t[4] || '0',
+                majorVersion: t[4] || t[2] || '0',
+                platform: n[0] || '',
+              },
+              s = {};
+            if (r.browser) {
+              s[r.browser] = !0;
+              var o = r.majorVersion.split('.');
+              (s.version = {
+                major: parseInt(r.majorVersion, 10),
+                string: r.version,
+              }),
+                o.length > 1 && (s.version.minor = parseInt(o[1], 10)),
+                o.length > 2 && (s.version.build = parseInt(o[2], 10));
+            }
+            if (
+              (r.platform && (s[r.platform] = !0),
+              (s.chrome || s.opr || s.safari) && (s.webkit = !0),
+              s.rv || s.iemobile)
+            ) {
+              s.rv && delete s.rv;
+              var a = 'msie';
+              (r.browser = a), (s.msie = !0);
+            }
+            if (s.edge) {
+              delete s.edge;
+              var h = 'msedge';
+              (r.browser = h), (s.msedge = !0);
+            }
+            if (s.opr) {
+              var u = 'opera';
+              (r.browser = u), (s.opera = !0);
+            }
+            if (s.safari && s.android) {
+              var l = 'android';
+              (r.browser = l), (s.android = !0);
+            }
+            for (var d in ((s.name = r.browser), (s.platform = r.platform), i))
+              i.hasOwnProperty(d) && delete i[d];
+            Object.assign(i, s);
+          })(),
+            (t.Z = i);
+        },
+        29: function (e, t, i) {
+          'use strict';
+          i.d(t, {
+            OZ: function () {
+              return s;
+            },
+            rT: function () {
+              return o;
+            },
+            OC: function () {
+              return a;
+            },
+            do: function () {
+              return h;
+            },
+          });
+          var n,
+            r =
+              ((n = function (e, t) {
+                return (n =
+                  Object.setPrototypeOf ||
+                  ({ __proto__: [] } instanceof Array &&
+                    function (e, t) {
+                      e.__proto__ = t;
+                    }) ||
+                  function (e, t) {
+                    for (var i in t)
+                      Object.prototype.hasOwnProperty.call(t, i) &&
+                        (e[i] = t[i]);
+                  })(e, t);
+              }),
+              function (e, t) {
+                if ('function' != typeof t && null !== t)
+                  throw new TypeError(
+                    'Class extends value ' +
+                      String(t) +
+                      ' is not a constructor or null'
+                  );
+                function i() {
+                  this.constructor = e;
+                }
+                n(e, t),
+                  (e.prototype =
+                    null === t
+                      ? Object.create(t)
+                      : ((i.prototype = t.prototype), new i()));
+              }),
+            s = (function () {
+              function e(e) {
+                this._message = e;
+              }
+              return (
+                Object.defineProperty(e.prototype, 'name', {
+                  get: function () {
+                    return 'RuntimeException';
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e.prototype, 'message', {
+                  get: function () {
+                    return this._message;
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.prototype.toString = function () {
+                  return this.name + ': ' + this.message;
+                }),
+                e
+              );
+            })(),
+            o = (function (e) {
+              function t(t) {
+                return e.call(this, t) || this;
+              }
+              return (
+                r(t, e),
+                Object.defineProperty(t.prototype, 'name', {
+                  get: function () {
+                    return 'IllegalStateException';
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                t
+              );
+            })(s),
+            a = (function (e) {
+              function t(t) {
+                return e.call(this, t) || this;
+              }
+              return (
+                r(t, e),
+                Object.defineProperty(t.prototype, 'name', {
+                  get: function () {
+                    return 'InvalidArgumentException';
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                t
+              );
+            })(s),
+            h = (function (e) {
+              function t(t) {
+                return e.call(this, t) || this;
+              }
+              return (
+                r(t, e),
+                Object.defineProperty(t.prototype, 'name', {
+                  get: function () {
+                    return 'NotImplementedException';
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                t
+              );
+            })(s);
+        },
+        300: function (e, t, i) {
+          'use strict';
+          var n = i(716),
+            r = i.n(n),
+            s = (function () {
+              function e() {}
+              return (
+                (e.e = function (t, i) {
+                  (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
+                  var n = '[' + t + '] > ' + i;
+                  e.ENABLE_CALLBACK && e.emitter.emit('log', 'error', n),
+                    e.ENABLE_ERROR &&
+                      (console.error
+                        ? console.error(n)
+                        : console.warn
+                        ? console.warn(n)
+                        : console.log(n));
+                }),
+                (e.i = function (t, i) {
+                  (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
+                  var n = '[' + t + '] > ' + i;
+                  e.ENABLE_CALLBACK && e.emitter.emit('log', 'info', n),
+                    e.ENABLE_INFO &&
+                      (console.info ? console.info(n) : console.log(n));
+                }),
+                (e.w = function (t, i) {
+                  (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
+                  var n = '[' + t + '] > ' + i;
+                  e.ENABLE_CALLBACK && e.emitter.emit('log', 'warn', n),
+                    e.ENABLE_WARN &&
+                      (console.warn ? console.warn(n) : console.log(n));
+                }),
+                (e.d = function (t, i) {
+                  (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
+                  var n = '[' + t + '] > ' + i;
+                  e.ENABLE_CALLBACK && e.emitter.emit('log', 'debug', n),
+                    e.ENABLE_DEBUG &&
+                      (console.debug ? console.debug(n) : console.log(n));
+                }),
+                (e.v = function (t, i) {
+                  (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
+                  var n = '[' + t + '] > ' + i;
+                  e.ENABLE_CALLBACK && e.emitter.emit('log', 'verbose', n),
+                    e.ENABLE_VERBOSE && console.log(n);
+                }),
+                e
+              );
+            })();
+          (s.GLOBAL_TAG = 'flv.js'),
+            (s.FORCE_GLOBAL_TAG = !1),
+            (s.ENABLE_ERROR = !0),
+            (s.ENABLE_INFO = !0),
+            (s.ENABLE_WARN = !0),
+            (s.ENABLE_DEBUG = !0),
+            (s.ENABLE_VERBOSE = !0),
+            (s.ENABLE_CALLBACK = !1),
+            (s.emitter = new (r())()),
+            (t.Z = s);
+        },
+        846: function (e, t, i) {
+          'use strict';
+          var n = i(716),
+            r = i.n(n),
+            s = i(300),
+            o = (function () {
+              function e() {}
+              return (
+                Object.defineProperty(e, 'forceGlobalTag', {
+                  get: function () {
+                    return s.Z.FORCE_GLOBAL_TAG;
+                  },
+                  set: function (t) {
+                    (s.Z.FORCE_GLOBAL_TAG = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'globalTag', {
+                  get: function () {
+                    return s.Z.GLOBAL_TAG;
+                  },
+                  set: function (t) {
+                    (s.Z.GLOBAL_TAG = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableAll', {
+                  get: function () {
+                    return (
+                      s.Z.ENABLE_VERBOSE &&
+                      s.Z.ENABLE_DEBUG &&
+                      s.Z.ENABLE_INFO &&
+                      s.Z.ENABLE_WARN &&
+                      s.Z.ENABLE_ERROR
+                    );
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_VERBOSE = t),
+                      (s.Z.ENABLE_DEBUG = t),
+                      (s.Z.ENABLE_INFO = t),
+                      (s.Z.ENABLE_WARN = t),
+                      (s.Z.ENABLE_ERROR = t),
+                      e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableDebug', {
+                  get: function () {
+                    return s.Z.ENABLE_DEBUG;
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_DEBUG = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableVerbose', {
+                  get: function () {
+                    return s.Z.ENABLE_VERBOSE;
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_VERBOSE = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableInfo', {
+                  get: function () {
+                    return s.Z.ENABLE_INFO;
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_INFO = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableWarn', {
+                  get: function () {
+                    return s.Z.ENABLE_WARN;
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_WARN = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                Object.defineProperty(e, 'enableError', {
+                  get: function () {
+                    return s.Z.ENABLE_ERROR;
+                  },
+                  set: function (t) {
+                    (s.Z.ENABLE_ERROR = t), e._notifyChange();
+                  },
+                  enumerable: !1,
+                  configurable: !0,
+                }),
+                (e.getConfig = function () {
+                  return {
+                    globalTag: s.Z.GLOBAL_TAG,
+                    forceGlobalTag: s.Z.FORCE_GLOBAL_TAG,
+                    enableVerbose: s.Z.ENABLE_VERBOSE,
+                    enableDebug: s.Z.ENABLE_DEBUG,
+                    enableInfo: s.Z.ENABLE_INFO,
+                    enableWarn: s.Z.ENABLE_WARN,
+                    enableError: s.Z.ENABLE_ERROR,
+                    enableCallback: s.Z.ENABLE_CALLBACK,
+                  };
+                }),
+                (e.applyConfig = function (e) {
+                  (s.Z.GLOBAL_TAG = e.globalTag),
+                    (s.Z.FORCE_GLOBAL_TAG = e.forceGlobalTag),
+                    (s.Z.ENABLE_VERBOSE = e.enableVerbose),
+                    (s.Z.ENABLE_DEBUG = e.enableDebug),
+                    (s.Z.ENABLE_INFO = e.enableInfo),
+                    (s.Z.ENABLE_WARN = e.enableWarn),
+                    (s.Z.ENABLE_ERROR = e.enableError),
+                    (s.Z.ENABLE_CALLBACK = e.enableCallback);
+                }),
+                (e._notifyChange = function () {
+                  var t = e.emitter;
+                  if (t.listenerCount('change') > 0) {
+                    var i = e.getConfig();
+                    t.emit('change', i);
+                  }
+                }),
+                (e.registerListener = function (t) {
+                  e.emitter.addListener('change', t);
+                }),
+                (e.removeListener = function (t) {
+                  e.emitter.removeListener('change', t);
+                }),
+                (e.addLogListener = function (t) {
+                  s.Z.emitter.addListener('log', t),
+                    s.Z.emitter.listenerCount('log') > 0 &&
+                      ((s.Z.ENABLE_CALLBACK = !0), e._notifyChange());
+                }),
+                (e.removeLogListener = function (t) {
+                  s.Z.emitter.removeListener('log', t),
+                    0 === s.Z.emitter.listenerCount('log') &&
+                      ((s.Z.ENABLE_CALLBACK = !1), e._notifyChange());
+                }),
+                e
+              );
+            })();
+          (o.emitter = new (r())()), (t.Z = o);
+        },
+        219: function (e, t, i) {
+          'use strict';
+          var n = (function () {
+            function e() {}
+            return (
+              (e.install = function () {
+                (Object.setPrototypeOf =
+                  Object.setPrototypeOf ||
+                  function (e, t) {
+                    return (e.__proto__ = t), e;
+                  }),
+                  (Object.assign =
+                    Object.assign ||
+                    function (e) {
+                      if (null == e)
+                        throw new TypeError(
+                          'Cannot convert undefined or null to object'
+                        );
+                      for (
+                        var t = Object(e), i = 1;
+                        i < arguments.length;
+                        i++
+                      ) {
+                        var n = arguments[i];
+                        if (null != n)
+                          for (var r in n) n.hasOwnProperty(r) && (t[r] = n[r]);
+                      }
+                      return t;
+                    }),
+                  'function' != typeof self.Promise && i(264).polyfill();
+              }),
+              e
+            );
+          })();
+          n.install(), (t.Z = n);
+        },
+      },
+      t = {};
+    function i(n) {
+      var r = t[n];
+      if (void 0 !== r) return r.exports;
+      var s = (t[n] = { exports: {} });
+      return e[n].call(s.exports, s, s.exports, i), s.exports;
+    }
+    return (
+      (i.m = e),
+      (i.n = function (e) {
+        var t =
+          e && e.__esModule
+            ? function () {
+                return e.default;
+              }
+            : function () {
+                return e;
+              };
+        return i.d(t, { a: t }), t;
+      }),
+      (i.d = function (e, t) {
+        for (var n in t)
+          i.o(t, n) &&
+            !i.o(e, n) &&
+            Object.defineProperty(e, n, { enumerable: !0, get: t[n] });
+      }),
+      (i.g = (function () {
+        if ('object' == typeof globalThis) return globalThis;
+        try {
+          return this || new Function('return this')();
+        } catch (e) {
+          if ('object' == typeof window) return window;
+        }
+      })()),
+      (i.o = function (e, t) {
+        return Object.prototype.hasOwnProperty.call(e, t);
+      }),
+      i(324)
+    );
+  })();
+});
+//# sourceMappingURL=flv.min.js.map

+ 1 - 0
public/index.html

@@ -14,6 +14,7 @@
       rel="icon"
       rel="icon"
       href="<%= BASE_URL %>favicon.ico"
       href="<%= BASE_URL %>favicon.ico"
     />
     />
+    <script src="<%= BASE_URL %>flv.min.js"></script>
     <title><%= htmlWebpackPlugin.options.title %></title>
     <title><%= htmlWebpackPlugin.options.title %></title>
   </head>
   </head>
 
 

+ 1 - 0
script/config/webpack.dev.ts

@@ -86,6 +86,7 @@ export default new Promise((resolve) => {
             },
             },
             '/api': {
             '/api': {
               target: 'http://localhost:4300',
               target: 'http://localhost:4300',
+              // target: 'https://live.hsslive.cn/aliyun-hk/',
               secure: false, // 默认情况下(secure: true),不接受在HTTPS上运行的带有无效证书的后端服务器。设置secure: false后,后端服务器的HTTPS有无效证书也可运行
               secure: false, // 默认情况下(secure: true),不接受在HTTPS上运行的带有无效证书的后端服务器。设置secure: false后,后端服务器的HTTPS有无效证书也可运行
               /**
               /**
                * changeOrigin,是否修改请求地址的源
                * changeOrigin,是否修改请求地址的源

+ 78 - 0
src/components/Avatar/index.vue

@@ -0,0 +1,78 @@
+<template>
+  <div
+    class="avatar-wrap"
+    :style="{ '--width': size + 'px' }"
+  >
+    <div class="cycle-wrap">
+      <div
+        class="avatar"
+        :style="{ backgroundImage: `url(${avatar})` }"
+      ></div>
+      <template v-if="living">
+        <div class="cycle cycle-1"></div>
+        <div class="cycle cycle-2"></div>
+        <div class="cycle cycle-3"></div
+      ></template>
+    </div>
+    <div class="border"></div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { defineProps } from 'vue';
+
+const props = defineProps({
+  avatar: { type: String, default: '' },
+  size: { type: Number, default: 100 },
+  living: { type: Boolean, default: false },
+});
+</script>
+
+<style lang="scss" scoped>
+.avatar-wrap {
+  position: relative;
+  @keyframes scaleCycle {
+    0% {
+      opacity: 1;
+      transform: scale(1);
+    }
+    100% {
+      opacity: 0;
+      transform: scale(1.5);
+    }
+  }
+  .cycle-wrap {
+    position: relative;
+    width: var(--width);
+    height: var(--width);
+    .avatar {
+      display: inline-block;
+      margin: 0 auto;
+      width: var(--width);
+      height: var(--width);
+      border-radius: 50%;
+
+      @extend %containBg;
+    }
+    .cycle {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: var(--width);
+      height: var(--width);
+      border: 1px solid $theme-color-gold;
+      border-radius: 50%;
+      animation: scaleCycle 1.5s linear infinite;
+      &.cycle-1 {
+        animation-delay: 0;
+      }
+      &.cycle-2 {
+        animation-delay: 0.5s;
+      }
+      &.cycle-3 {
+        animation-delay: 1s;
+      }
+    }
+  }
+}
+</style>

+ 3 - 1
src/hooks/use-play.ts

@@ -1,6 +1,8 @@
-import flvJs from 'flv.js';
 import { onMounted, onUnmounted, ref } from 'vue';
 import { onMounted, onUnmounted, ref } from 'vue';
 
 
+// @ts-ignore
+const flvJs = window.flvjs;
+
 export function useFlvPlay() {
 export function useFlvPlay() {
   const flvPlayer = ref();
   const flvPlayer = ref();
 
 

+ 1 - 1
src/hooks/use-pull.ts

@@ -552,7 +552,7 @@ export function usePull({
       WsMsgTypeEnum.joined,
       WsMsgTypeEnum.joined,
       async (data: { data: ILive }) => {
       async (data: { data: ILive }) => {
         prettierReceiveWebsocket(WsMsgTypeEnum.joined, data);
         prettierReceiveWebsocket(WsMsgTypeEnum.joined, data);
-        roomName.value = data.data.live_room?.roomName!;
+        roomName.value = data.data.live_room?.name!;
         userName.value = data.data.user?.username!;
         userName.value = data.data.user?.username!;
         userAvatar.value = data.data.user?.avatar!;
         userAvatar.value = data.data.user?.avatar!;
         track.audio = data.data.track_audio!;
         track.audio = data.data.track_audio!;

+ 12 - 13
src/hooks/use-push.ts

@@ -66,18 +66,8 @@ export function usePush({
     audio: true,
     audio: true,
     video: true,
     video: true,
   });
   });
-  const streamurl = ref(
-    `webrtc://${
-      process.env.NODE_ENV === 'development' ? 'localhost' : 'live.hsslive.cn'
-    }/live/livestream/${roomId.value}`
-  );
-  const flvurl = ref(
-    `${
-      process.env.NODE_ENV === 'development'
-        ? 'http://localhost:5001'
-        : 'https://live.hsslive.cn/srsflv'
-    }/live/livestream/${roomId.value}.flv`
-  );
+  const streamurl = ref('');
+  const flvurl = ref('');
 
 
   const damuList = ref<IDanmu[]>([]);
   const damuList = ref<IDanmu[]>([]);
   const liveUserList = ref<ILiveUser[]>([]);
   const liveUserList = ref<ILiveUser[]>([]);
@@ -117,6 +107,15 @@ export function usePush({
   );
   );
 
 
   onMounted(() => {
   onMounted(() => {
+    roomId.value = route.query.roomId as string;
+    streamurl.value = `webrtc://${
+      process.env.NODE_ENV === 'development' ? 'localhost' : 'live.hsslive.cn'
+    }/livestream/roomId___${roomId.value}`;
+    flvurl.value = `${
+      process.env.NODE_ENV === 'development'
+        ? 'http://localhost:5001'
+        : 'https://live.hsslive.cn/srsflv'
+    }/livestream/roomId___${roomId.value}.flv`;
     if (!loginTip()) return;
     if (!loginTip()) return;
   });
   });
 
 
@@ -140,7 +139,7 @@ export function usePush({
   async function userHasLiveRoom() {
   async function userHasLiveRoom() {
     const res = await fetchUserHasLiveRoom(userStore.userInfo?.id!);
     const res = await fetchUserHasLiveRoom(userStore.userInfo?.id!);
     if (res.code === 200 && res.data) {
     if (res.code === 200 && res.data) {
-      roomName.value = res.data.live_room?.roomName || '';
+      roomName.value = res.data.live_room?.name || '';
       roomId.value = `${res.data.live_room?.id || -1}`;
       roomId.value = `${res.data.live_room?.id || -1}`;
       router.push({ query: { ...route.query, roomId: roomId.value } });
       router.push({ query: { ...route.query, roomId: roomId.value } });
       return true;
       return true;

+ 5 - 1
src/interface.ts

@@ -141,7 +141,10 @@ export interface ILiveRoom {
   /** 用户信息 */
   /** 用户信息 */
   user?: IUser;
   user?: IUser;
   /** 直播间名字 */
   /** 直播间名字 */
-  roomName?: string;
+  name?: string;
+  rtmp_url?: string;
+  flv_url?: string;
+  hls_url?: string;
   created_at?: string;
   created_at?: string;
   updated_at?: string;
   updated_at?: string;
   deleted_at?: string;
   deleted_at?: string;
@@ -225,6 +228,7 @@ export interface IUser {
   updated_at?: string;
   updated_at?: string;
   deleted_at?: string;
   deleted_at?: string;
   qq_users?: IQqUser[];
   qq_users?: IQqUser[];
+  live_rooms?: ILiveRoom[];
   wallet?: IWallet;
   wallet?: IWallet;
 }
 }
 
 

+ 6 - 0
src/router/index.ts

@@ -20,6 +20,7 @@ export const routerName = {
   release: 'release',
   release: 'release',
   notFound: 'notFound',
   notFound: 'notFound',
   group: 'group',
   group: 'group',
+  profile: 'profile',
 
 
   pull: 'pull',
   pull: 'pull',
   push: 'push',
   push: 'push',
@@ -72,6 +73,11 @@ export const defaultRoutes: RouteRecordRaw[] = [
         path: '/shop',
         path: '/shop',
         component: () => import('@/views/shop/index.vue'),
         component: () => import('@/views/shop/index.vue'),
       },
       },
+      {
+        name: routerName.profile,
+        path: '/profile/:userId',
+        component: () => import('@/views/profile/index.vue'),
+      },
       {
       {
         name: routerName.sponsors,
         name: routerName.sponsors,
         path: '/sponsors',
         path: '/sponsors',

+ 5 - 11
src/utils/request.ts

@@ -55,20 +55,13 @@ class MyAxios {
           window.$message.error('请求超时,请重试');
           window.$message.error('请求超时,请重试');
         }
         }
         const statusCode = error.response.status as number;
         const statusCode = error.response.status as number;
-        const errorResponseData = error.response.data;
+        const errorResponse = error.response;
+        const errorResponseData = errorResponse.data;
         const whiteList = ['400', '401', '403', '404'];
         const whiteList = ['400', '401', '403', '404'];
         if (error.response) {
         if (error.response) {
           if (!whiteList.includes(`${statusCode}`)) {
           if (!whiteList.includes(`${statusCode}`)) {
-            if (statusCode === 500) {
-              let msg = errorResponseData.message;
-              if (errorResponseData?.errorCode) {
-                msg = errorResponseData.error;
-              }
-              console.error(msg);
-              return Promise.reject(msg);
-            }
-            console.error(error.message);
-            return Promise.reject(error);
+            window.$message.error(error.message);
+            return Promise.reject(error.message);
           }
           }
           if (statusCode === 400) {
           if (statusCode === 400) {
             console.error(errorResponseData.message);
             console.error(errorResponseData.message);
@@ -95,6 +88,7 @@ class MyAxios {
         } else {
         } else {
           // 请求超时没有response
           // 请求超时没有response
           console.error(error.message);
           console.error(error.message);
+          window.$message.error(error.message);
           return Promise.reject(error.message);
           return Promise.reject(error.message);
         }
         }
       }
       }

+ 37 - 5
src/views/ad/index.vue

@@ -1,6 +1,10 @@
 <template>
 <template>
   <div class="ad-wrap">
   <div class="ad-wrap">
     <h1 class="title">广告位招租</h1>
     <h1 class="title">广告位招租</h1>
+    <h3 class="title">
+      billd-live服务器:阿里云轻量服务器:2核cpu、2GB内存、30M带宽(香港)
+    </h3>
+
     <div class="ad-list">
     <div class="ad-list">
       <div
       <div
         v-for="(item, index) in list"
         v-for="(item, index) in list"
@@ -15,7 +19,16 @@
             alt=""
             alt=""
           />
           />
         </div>
         </div>
-        <div>{{ item.name }}</div>
+        <div>
+          <div>{{ item.name }}</div>
+          <div
+            v-for="(iten, indey) in item.list"
+            :key="indey"
+            class="hot"
+          >
+            {{ iten }}
+          </div>
+        </div>
       </div>
       </div>
     </div>
     </div>
   </div>
   </div>
@@ -29,20 +42,36 @@ const list = ref([
   {
   {
     // eslint-disable-next-line
     // eslint-disable-next-line
     cover: require('@/assets/img/ad/tencent-1.jpg'),
     cover: require('@/assets/img/ad/tencent-1.jpg'),
-    name: '【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中',
-    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ebe55ad4d940d688bcde548b101dff5f&from=console',
+    name: '【腾讯云】个人开发者 买赠福利专区 买即送 个人开发者专享免费服务器3个月!',
+    list: [
+      '【腾讯云】:1年轻量服务器 2核cpu、2G内存、4M带宽、50G系统盘(上海/广州/北京),132元!',
+      '【腾讯云】:1年轻量服务器 2核cpu、4G内存、5M带宽、60G系统盘(上海/广州/北京),198元!',
+    ],
+    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=35916&cps_key=ebe55ad4d940d688bcde548b101dff5f',
   },
   },
   {
   {
     // eslint-disable-next-line
     // eslint-disable-next-line
     cover: require('@/assets/img/ad/tencent-2.png'),
     cover: require('@/assets/img/ad/tencent-2.png'),
     name: '【腾讯云】爆品抢先购,预热专属折上折券限时领!',
     name: '【腾讯云】爆品抢先购,预热专属折上折券限时领!',
-    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=undefined&cps_key=ebe55ad4d940d688bcde548b101dff5f&from=console',
+    list: [
+      '【腾讯云】:1年轻量服务器 2核cpu、2G内存、3M带宽、40G系统盘(上海/广州/北京),95元!',
+      '【腾讯云】:1年轻量服务器 2核cpu、4G内存、5M带宽、60G系统盘(上海/广州/北京),168元!',
+      '【腾讯云】:3年轻量服务器 2核cpu、2G内存、4M带宽、50G系统盘(上海/广州/北京),396元!',
+      '【腾讯云】:3年轻量服务器 2核cpu、4G内存、5M带宽、60G系统盘(上海/广州/北京),628元!',
+    ],
+    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=35864&cps_key=ebe55ad4d940d688bcde548b101dff5f',
   },
   },
   {
   {
     // eslint-disable-next-line
     // eslint-disable-next-line
     cover: require('@/assets/img/ad/tencent-3.jpg'),
     cover: require('@/assets/img/ad/tencent-3.jpg'),
     name: '【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。',
     name: '【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。',
-    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=1040&cps_key=ebe55ad4d940d688bcde548b101dff5f&from=console',
+    list: [
+      '【腾讯云】满200减100,仅用于非促销新购云服务器、MySQL数据库',
+      '【腾讯云】满500减250,仅用于非促销新购云服务器、MySQL数据库',
+      '【腾讯云】满1000减500,仅用于非促销新购云服务器、MySQL数据库',
+      '【腾讯云】满2000减1000,仅用于非促销新购云服务器、MySQL数据库',
+    ],
+    url: 'https://cloud.tencent.com/act/cps/redirect?redirect=35834&cps_key=ebe55ad4d940d688bcde548b101dff5f',
   },
   },
   {
   {
     // eslint-disable-next-line
     // eslint-disable-next-line
@@ -109,6 +138,9 @@ const list = ref([
         width: 300px;
         width: 300px;
         margin-right: 10px;
         margin-right: 10px;
       }
       }
+      .hot {
+        color: red;
+      }
     }
     }
   }
   }
 }
 }

+ 49 - 0
src/views/profile/index.vue

@@ -0,0 +1,49 @@
+<template>
+  <div class="profile-wrap">
+    <div class="uid">用户id:{{ userInfo?.id }}</div>
+    <div class="avatar">
+      <span class="txt">用户头像:</span>
+      <Avatar
+        :avatar="userInfo?.avatar"
+        :size="30"
+      ></Avatar>
+    </div>
+    <div class="username">用户昵称:{{ userInfo?.username }}</div>
+    <div class="pull-url">
+      推流地址:{{ userInfo?.live_rooms?.[0].rtmp_url }}
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { onMounted, ref } from 'vue';
+
+import { fetchUserInfo } from '@/api/user';
+import { IUser } from '@/interface';
+
+const userInfo = ref<IUser>();
+
+async function handleUserInfo() {
+  const res = await fetchUserInfo();
+  if (res.code === 200) {
+    userInfo.value = res.data;
+  }
+}
+
+onMounted(() => {
+  handleUserInfo();
+});
+</script>
+
+<style lang="scss" scoped>
+.profile-wrap {
+  padding: 10px;
+  .avatar {
+    display: flex;
+    align-items: center;
+    .txt {
+      margin-right: 10px;
+    }
+  }
+}
+</style>

+ 5 - 2
src/views/pull/index.vue

@@ -44,7 +44,9 @@
             ></video>
             ></video>
             <div
             <div
               class="controls"
               class="controls"
-              :style="{ display: showControls ? 'block' : 'none' }"
+              :style="{
+                display: !isMobile() ? 'none' : showControls ? 'block' : 'none',
+              }"
             >
             >
               <VideoControls></VideoControls>
               <VideoControls></VideoControls>
             </div>
             </div>
@@ -197,6 +199,7 @@
 </template>
 </template>
 
 
 <script lang="ts" setup>
 <script lang="ts" setup>
+import { isMobile } from 'billd-utils';
 import { nextTick, onMounted, onUnmounted, ref } from 'vue';
 import { nextTick, onMounted, onUnmounted, ref } from 'vue';
 import { useRoute } from 'vue-router';
 import { useRoute } from 'vue-router';
 
 
@@ -418,7 +421,7 @@ onMounted(() => {
 
 
         &:hover {
         &:hover {
           .controls {
           .controls {
-            display: block;
+            display: block !important;
           }
           }
         }
         }
       }
       }

+ 58 - 36
src/views/rank/index.vue

@@ -21,15 +21,22 @@
           :key="index"
           :key="index"
           :class="{ item: 1, [`rank-${item.rank}`]: 1 }"
           :class="{ item: 1, [`rank-${item.rank}`]: 1 }"
         >
         >
-          <div class="avatar-wrap">
-            <img
-              class="avatar"
-              :src="item.avatar"
-              alt=""
-            />
-            <div class="border"></div>
+          <div
+            class="avatar"
+            @click="
+              router.push({
+                name: routerName.profile,
+                params: { userId: item.user.id },
+              })
+            "
+          >
+            <Avatar
+              :size="100"
+              :avatar="item.user.avatar"
+              :living="!!item.live"
+            ></Avatar>
           </div>
           </div>
-          <div class="username">{{ item.username }}</div>
+          <div class="username">{{ item.user.username }}</div>
           <div class="rank">
           <div class="rank">
             <i>0{{ item.rank }}</i>
             <i>0{{ item.rank }}</i>
             <div
             <div
@@ -66,11 +73,11 @@
           </div>
           </div>
           <div class="left">
           <div class="left">
             <img
             <img
-              :src="item.avatar"
+              :src="item.user.avatar"
               class="avatar"
               class="avatar"
               alt=""
               alt=""
             />
             />
-            <div class="username">{{ item.username }}</div>
+            <div class="username">{{ item.user.username }}</div>
             <div class="wallet">
             <div class="wallet">
               <div v-if="item.balance && currRankType === RankTypeEnum.wallet">
               <div v-if="item.balance && currRankType === RankTypeEnum.wallet">
                 (钱包:{{ item.balance }})
                 (钱包:{{ item.balance }})
@@ -108,7 +115,7 @@ import { fetchLiveRoomList } from '@/api/liveRoom';
 import { fetchUserList } from '@/api/user';
 import { fetchUserList } from '@/api/user';
 import { fetchWalletList } from '@/api/wallet';
 import { fetchWalletList } from '@/api/wallet';
 import { fullLoading } from '@/components/FullLoading';
 import { fullLoading } from '@/components/FullLoading';
-import { ILive, RankTypeEnum, liveTypeEnum } from '@/interface';
+import { ILive, IUser, liveTypeEnum, RankTypeEnum } from '@/interface';
 import router, { routerName } from '@/router';
 import router, { routerName } from '@/router';
 
 
 export interface IRankType {
 export interface IRankType {
@@ -136,8 +143,7 @@ const mockDataNums = 4;
 const currRankType = ref(RankTypeEnum.liveRoom);
 const currRankType = ref(RankTypeEnum.liveRoom);
 
 
 const mockRank: {
 const mockRank: {
-  username: string;
-  avatar: string;
+  user: IUser;
   rank: number;
   rank: number;
   level: number;
   level: number;
   score: number;
   score: number;
@@ -145,8 +151,11 @@ const mockRank: {
   live?: ILive;
   live?: ILive;
 }[] = [
 }[] = [
   {
   {
-    username: '待上榜',
-    avatar: '',
+    user: {
+      id: -1,
+      username: '待上榜',
+      avatar: '',
+    },
     rank: 1,
     rank: 1,
     level: -1,
     level: -1,
     score: -1,
     score: -1,
@@ -154,8 +163,11 @@ const mockRank: {
     live: undefined,
     live: undefined,
   },
   },
   {
   {
-    username: '待上榜',
-    avatar: '',
+    user: {
+      id: -1,
+      username: '待上榜',
+      avatar: '',
+    },
     rank: 2,
     rank: 2,
     level: -1,
     level: -1,
     score: -1,
     score: -1,
@@ -163,8 +175,11 @@ const mockRank: {
     live: undefined,
     live: undefined,
   },
   },
   {
   {
-    username: '待上榜',
-    avatar: '',
+    user: {
+      id: -1,
+      username: '待上榜',
+      avatar: '',
+    },
     rank: 3,
     rank: 3,
     level: -1,
     level: -1,
     score: -1,
     score: -1,
@@ -172,8 +187,11 @@ const mockRank: {
     live: undefined,
     live: undefined,
   },
   },
   {
   {
-    username: '待上榜',
-    avatar: '',
+    user: {
+      id: -1,
+      username: '待上榜',
+      avatar: '',
+    },
     rank: 4,
     rank: 4,
     level: -1,
     level: -1,
     score: -1,
     score: -1,
@@ -191,8 +209,11 @@ async function getWalletList() {
       const length = res.data.rows.length;
       const length = res.data.rows.length;
       rankList.value = res.data.rows.map((item, index) => {
       rankList.value = res.data.rows.map((item, index) => {
         return {
         return {
-          username: item.user.username!,
-          avatar: item.user.avatar!,
+          user: {
+            id: item.id!,
+            username: item.username!,
+            avatar: item.avatar!,
+          },
           rank: index + 1,
           rank: index + 1,
           level: 1,
           level: 1,
           score: 1,
           score: 1,
@@ -221,8 +242,11 @@ async function getLiveRoomList() {
       const length = res.data.rows.length;
       const length = res.data.rows.length;
       rankList.value = res.data.rows.map((item, index) => {
       rankList.value = res.data.rows.map((item, index) => {
         return {
         return {
-          username: item.user_username!,
-          avatar: item.user_avatar!,
+          user: {
+            id: item.user_id!,
+            username: item.user_username!,
+            avatar: item.user_avatar!,
+          },
           rank: index + 1,
           rank: index + 1,
           level: 1,
           level: 1,
           score: 1,
           score: 1,
@@ -272,8 +296,11 @@ async function getUserList() {
       const length = res.data.rows.length;
       const length = res.data.rows.length;
       rankList.value = res.data.rows.map((item, index) => {
       rankList.value = res.data.rows.map((item, index) => {
         return {
         return {
-          username: item.username!,
-          avatar: item.avatar!,
+          user: {
+            id: item.id!,
+            username: item.username!,
+            avatar: item.avatar!,
+          },
           rank: index + 1,
           rank: index + 1,
           level: 1,
           level: 1,
           score: 1,
           score: 1,
@@ -386,17 +413,12 @@ async function getUserList() {
           }
           }
         }
         }
 
 
-        .avatar-wrap {
-          position: relative;
+        .avatar {
           margin-top: -50px;
           margin-top: -50px;
-          img {
-            display: inline-block;
-            margin: 0 auto;
-            width: 100px;
-            height: 100px;
-            border-radius: 50%;
-          }
+          display: inline-block;
+          cursor: pointer;
         }
         }
+
         .username {
         .username {
           margin-bottom: 10px;
           margin-bottom: 10px;
           font-size: 22px;
           font-size: 22px;