/*! For license information please see dash.all.min.js.LICENSE.txt */
var t = { 7267: function(t3, e2) {
  e2.byteLength = function(t4) {
    var e3 = o2(t4), n3 = e3[0], a3 = e3[1];
    return 3 * (n3 + a3) / 4 - a3;
  }, e2.toByteArray = function(t4) {
    var e3, n3, i3 = o2(t4), l3 = i3[0], s3 = i3[1], u2 = new r2(function(t5, e4, n4) {
      return 3 * (e4 + n4) / 4 - n4;
    }(0, l3, s3)), d2 = 0, c2 = s3 > 0 ? l3 - 4 : l3;
    for (n3 = 0; n3 < c2; n3 += 4)
      e3 = a2[t4.charCodeAt(n3)] << 18 | a2[t4.charCodeAt(n3 + 1)] << 12 | a2[t4.charCodeAt(n3 + 2)] << 6 | a2[t4.charCodeAt(n3 + 3)], u2[d2++] = e3 >> 16 & 255, u2[d2++] = e3 >> 8 & 255, u2[d2++] = 255 & e3;
    return 2 === s3 && (e3 = a2[t4.charCodeAt(n3)] << 2 | a2[t4.charCodeAt(n3 + 1)] >> 4, u2[d2++] = 255 & e3), 1 === s3 && (e3 = a2[t4.charCodeAt(n3)] << 10 | a2[t4.charCodeAt(n3 + 1)] << 4 | a2[t4.charCodeAt(n3 + 2)] >> 2, u2[d2++] = e3 >> 8 & 255, u2[d2++] = 255 & e3), u2;
  }, e2.fromByteArray = function(t4) {
    for (var e3, a3 = t4.length, r3 = a3 % 3, i3 = [], l3 = 16383, o3 = 0, u2 = a3 - r3; o3 < u2; o3 += l3)
      i3.push(s2(t4, o3, o3 + l3 > u2 ? u2 : o3 + l3));
    return 1 === r3 ? (e3 = t4[a3 - 1], i3.push(n2[e3 >> 2] + n2[e3 << 4 & 63] + "==")) : 2 === r3 && (e3 = (t4[a3 - 2] << 8) + t4[a3 - 1], i3.push(n2[e3 >> 10] + n2[e3 >> 4 & 63] + n2[e3 << 2 & 63] + "=")), i3.join("");
  };
  for (var n2 = [], a2 = [], r2 = "undefined" != typeof Uint8Array ? Uint8Array : Array, i2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", l2 = 0; l2 < 64; ++l2)
    n2[l2] = i2[l2], a2[i2.charCodeAt(l2)] = l2;
  function o2(t4) {
    var e3 = t4.length;
    if (e3 % 4 > 0)
      throw new Error("Invalid string. Length must be a multiple of 4");
    var n3 = t4.indexOf("=");
    return -1 === n3 && (n3 = e3), [n3, n3 === e3 ? 0 : 4 - n3 % 4];
  }
  function s2(t4, e3, a3) {
    for (var r3, i3, l3 = [], o3 = e3; o3 < a3; o3 += 3)
      r3 = (t4[o3] << 16 & 16711680) + (t4[o3 + 1] << 8 & 65280) + (255 & t4[o3 + 2]), l3.push(n2[(i3 = r3) >> 18 & 63] + n2[i3 >> 12 & 63] + n2[i3 >> 6 & 63] + n2[63 & i3]);
    return l3.join("");
  }
  a2["-".charCodeAt(0)] = 62, a2["_".charCodeAt(0)] = 63;
}, 44: function(t3, e2, n2) {
  var a2 = n2(7267), r2 = n2(7986), i2 = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null;
  e2.Buffer = s2, e2.SlowBuffer = function(t4) {
    return +t4 != t4 && (t4 = 0), s2.alloc(+t4);
  }, e2.INSPECT_MAX_BYTES = 50;
  var l2 = 2147483647;
  function o2(t4) {
    if (t4 > l2)
      throw new RangeError('The value "' + t4 + '" is invalid for option "size"');
    var e3 = new Uint8Array(t4);
    return Object.setPrototypeOf(e3, s2.prototype), e3;
  }
  function s2(t4, e3, n3) {
    if ("number" == typeof t4) {
      if ("string" == typeof e3)
        throw new TypeError('The "string" argument must be of type string. Received type number');
      return c2(t4);
    }
    return u2(t4, e3, n3);
  }
  function u2(t4, e3, n3) {
    if ("string" == typeof t4)
      return function(t5, e4) {
        if ("string" == typeof e4 && "" !== e4 || (e4 = "utf8"), !s2.isEncoding(e4))
          throw new TypeError("Unknown encoding: " + e4);
        var n4 = 0 | h2(t5, e4), a4 = o2(n4), r4 = a4.write(t5, e4);
        return r4 !== n4 && (a4 = a4.slice(0, r4)), a4;
      }(t4, e3);
    if (ArrayBuffer.isView(t4))
      return function(t5) {
        if (q(t5, Uint8Array)) {
          var e4 = new Uint8Array(t5);
          return g2(e4.buffer, e4.byteOffset, e4.byteLength);
        }
        return f2(t5);
      }(t4);
    if (null == t4)
      throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t4);
    if (q(t4, ArrayBuffer) || t4 && q(t4.buffer, ArrayBuffer))
      return g2(t4, e3, n3);
    if ("undefined" != typeof SharedArrayBuffer && (q(t4, SharedArrayBuffer) || t4 && q(t4.buffer, SharedArrayBuffer)))
      return g2(t4, e3, n3);
    if ("number" == typeof t4)
      throw new TypeError('The "value" argument must not be of type number. Received type number');
    var a3 = t4.valueOf && t4.valueOf();
    if (null != a3 && a3 !== t4)
      return s2.from(a3, e3, n3);
    var r3 = function(t5) {
      if (s2.isBuffer(t5)) {
        var e4 = 0 | m2(t5.length), n4 = o2(e4);
        return 0 === n4.length || t5.copy(n4, 0, 0, e4), n4;
      }
      return void 0 !== t5.length ? "number" != typeof t5.length || B(t5.length) ? o2(0) : f2(t5) : "Buffer" === t5.type && Array.isArray(t5.data) ? f2(t5.data) : void 0;
    }(t4);
    if (r3)
      return r3;
    if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t4[Symbol.toPrimitive])
      return s2.from(t4[Symbol.toPrimitive]("string"), e3, n3);
    throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t4);
  }
  function d2(t4) {
    if ("number" != typeof t4)
      throw new TypeError('"size" argument must be of type number');
    if (t4 < 0)
      throw new RangeError('The value "' + t4 + '" is invalid for option "size"');
  }
  function c2(t4) {
    return d2(t4), o2(t4 < 0 ? 0 : 0 | m2(t4));
  }
  function f2(t4) {
    for (var e3 = t4.length < 0 ? 0 : 0 | m2(t4.length), n3 = o2(e3), a3 = 0; a3 < e3; a3 += 1)
      n3[a3] = 255 & t4[a3];
    return n3;
  }
  function g2(t4, e3, n3) {
    if (e3 < 0 || t4.byteLength < e3)
      throw new RangeError('"offset" is outside of buffer bounds');
    if (t4.byteLength < e3 + (n3 || 0))
      throw new RangeError('"length" is outside of buffer bounds');
    var a3;
    return a3 = void 0 === e3 && void 0 === n3 ? new Uint8Array(t4) : void 0 === n3 ? new Uint8Array(t4, e3) : new Uint8Array(t4, e3, n3), Object.setPrototypeOf(a3, s2.prototype), a3;
  }
  function m2(t4) {
    if (t4 >= l2)
      throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + l2.toString(16) + " bytes");
    return 0 | t4;
  }
  function h2(t4, e3) {
    if (s2.isBuffer(t4))
      return t4.length;
    if (ArrayBuffer.isView(t4) || q(t4, ArrayBuffer))
      return t4.byteLength;
    if ("string" != typeof t4)
      throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t4);
    var n3 = t4.length, a3 = arguments.length > 2 && true === arguments[2];
    if (!a3 && 0 === n3)
      return 0;
    for (var r3 = false; ; )
      switch (e3) {
        case "ascii":
        case "latin1":
        case "binary":
          return n3;
        case "utf8":
        case "utf-8":
          return F(t4).length;
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return 2 * n3;
        case "hex":
          return n3 >>> 1;
        case "base64":
          return U(t4).length;
        default:
          if (r3)
            return a3 ? -1 : F(t4).length;
          e3 = ("" + e3).toLowerCase(), r3 = true;
      }
  }
  function p2(t4, e3, n3) {
    var a3 = false;
    if ((void 0 === e3 || e3 < 0) && (e3 = 0), e3 > this.length)
      return "";
    if ((void 0 === n3 || n3 > this.length) && (n3 = this.length), n3 <= 0)
      return "";
    if ((n3 >>>= 0) <= (e3 >>>= 0))
      return "";
    for (t4 || (t4 = "utf8"); ; )
      switch (t4) {
        case "hex":
          return C(this, e3, n3);
        case "utf8":
        case "utf-8":
          return k2(this, e3, n3);
        case "ascii":
          return R(this, e3, n3);
        case "latin1":
        case "binary":
          return N(this, e3, n3);
        case "base64":
          return I2(this, e3, n3);
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return D(this, e3, n3);
        default:
          if (a3)
            throw new TypeError("Unknown encoding: " + t4);
          t4 = (t4 + "").toLowerCase(), a3 = true;
      }
  }
  function b2(t4, e3, n3) {
    var a3 = t4[e3];
    t4[e3] = t4[n3], t4[n3] = a3;
  }
  function y2(t4, e3, n3, a3, r3) {
    if (0 === t4.length)
      return -1;
    if ("string" == typeof n3 ? (a3 = n3, n3 = 0) : n3 > 2147483647 ? n3 = 2147483647 : n3 < -2147483648 && (n3 = -2147483648), B(n3 = +n3) && (n3 = r3 ? 0 : t4.length - 1), n3 < 0 && (n3 = t4.length + n3), n3 >= t4.length) {
      if (r3)
        return -1;
      n3 = t4.length - 1;
    } else if (n3 < 0) {
      if (!r3)
        return -1;
      n3 = 0;
    }
    if ("string" == typeof e3 && (e3 = s2.from(e3, a3)), s2.isBuffer(e3))
      return 0 === e3.length ? -1 : E2(t4, e3, n3, a3, r3);
    if ("number" == typeof e3)
      return e3 &= 255, "function" == typeof Uint8Array.prototype.indexOf ? r3 ? Uint8Array.prototype.indexOf.call(t4, e3, n3) : Uint8Array.prototype.lastIndexOf.call(t4, e3, n3) : E2(t4, [e3], n3, a3, r3);
    throw new TypeError("val must be string, number or Buffer");
  }
  function E2(t4, e3, n3, a3, r3) {
    var i3, l3 = 1, o3 = t4.length, s3 = e3.length;
    if (void 0 !== a3 && ("ucs2" === (a3 = String(a3).toLowerCase()) || "ucs-2" === a3 || "utf16le" === a3 || "utf-16le" === a3)) {
      if (t4.length < 2 || e3.length < 2)
        return -1;
      l3 = 2, o3 /= 2, s3 /= 2, n3 /= 2;
    }
    function u3(t5, e4) {
      return 1 === l3 ? t5[e4] : t5.readUInt16BE(e4 * l3);
    }
    if (r3) {
      var d3 = -1;
      for (i3 = n3; i3 < o3; i3++)
        if (u3(t4, i3) === u3(e3, -1 === d3 ? 0 : i3 - d3)) {
          if (-1 === d3 && (d3 = i3), i3 - d3 + 1 === s3)
            return d3 * l3;
        } else
          -1 !== d3 && (i3 -= i3 - d3), d3 = -1;
    } else
      for (n3 + s3 > o3 && (n3 = o3 - s3), i3 = n3; i3 >= 0; i3--) {
        for (var c3 = true, f3 = 0; f3 < s3; f3++)
          if (u3(t4, i3 + f3) !== u3(e3, f3)) {
            c3 = false;
            break;
          }
        if (c3)
          return i3;
      }
    return -1;
  }
  function T2(t4, e3, n3, a3) {
    n3 = Number(n3) || 0;
    var r3 = t4.length - n3;
    a3 ? (a3 = Number(a3)) > r3 && (a3 = r3) : a3 = r3;
    var i3 = e3.length;
    a3 > i3 / 2 && (a3 = i3 / 2);
    for (var l3 = 0; l3 < a3; ++l3) {
      var o3 = parseInt(e3.substr(2 * l3, 2), 16);
      if (B(o3))
        return l3;
      t4[n3 + l3] = o3;
    }
    return l3;
  }
  function _2(t4, e3, n3, a3) {
    return j(F(e3, t4.length - n3), t4, n3, a3);
  }
  function v2(t4, e3, n3, a3) {
    return j(function(t5) {
      for (var e4 = [], n4 = 0; n4 < t5.length; ++n4)
        e4.push(255 & t5.charCodeAt(n4));
      return e4;
    }(e3), t4, n3, a3);
  }
  function S2(t4, e3, n3, a3) {
    return j(U(e3), t4, n3, a3);
  }
  function w2(t4, e3, n3, a3) {
    return j(function(t5, e4) {
      for (var n4, a4, r3, i3 = [], l3 = 0; l3 < t5.length && !((e4 -= 2) < 0); ++l3)
        a4 = (n4 = t5.charCodeAt(l3)) >> 8, r3 = n4 % 256, i3.push(r3), i3.push(a4);
      return i3;
    }(e3, t4.length - n3), t4, n3, a3);
  }
  function I2(t4, e3, n3) {
    return 0 === e3 && n3 === t4.length ? a2.fromByteArray(t4) : a2.fromByteArray(t4.slice(e3, n3));
  }
  function k2(t4, e3, n3) {
    n3 = Math.min(t4.length, n3);
    for (var a3 = [], r3 = e3; r3 < n3; ) {
      var i3, l3, o3, s3, u3 = t4[r3], d3 = null, c3 = u3 > 239 ? 4 : u3 > 223 ? 3 : u3 > 191 ? 2 : 1;
      if (r3 + c3 <= n3)
        switch (c3) {
          case 1:
            u3 < 128 && (d3 = u3);
            break;
          case 2:
            128 == (192 & (i3 = t4[r3 + 1])) && (s3 = (31 & u3) << 6 | 63 & i3) > 127 && (d3 = s3);
            break;
          case 3:
            i3 = t4[r3 + 1], l3 = t4[r3 + 2], 128 == (192 & i3) && 128 == (192 & l3) && (s3 = (15 & u3) << 12 | (63 & i3) << 6 | 63 & l3) > 2047 && (s3 < 55296 || s3 > 57343) && (d3 = s3);
            break;
          case 4:
            i3 = t4[r3 + 1], l3 = t4[r3 + 2], o3 = t4[r3 + 3], 128 == (192 & i3) && 128 == (192 & l3) && 128 == (192 & o3) && (s3 = (15 & u3) << 18 | (63 & i3) << 12 | (63 & l3) << 6 | 63 & o3) > 65535 && s3 < 1114112 && (d3 = s3);
        }
      null === d3 ? (d3 = 65533, c3 = 1) : d3 > 65535 && (d3 -= 65536, a3.push(d3 >>> 10 & 1023 | 55296), d3 = 56320 | 1023 & d3), a3.push(d3), r3 += c3;
    }
    return function(t5) {
      var e4 = t5.length;
      if (e4 <= A)
        return String.fromCharCode.apply(String, t5);
      for (var n4 = "", a4 = 0; a4 < e4; )
        n4 += String.fromCharCode.apply(String, t5.slice(a4, a4 += A));
      return n4;
    }(a3);
  }
  e2.kMaxLength = l2, s2.TYPED_ARRAY_SUPPORT = function() {
    try {
      var t4 = new Uint8Array(1), e3 = { foo: function() {
        return 42;
      } };
      return Object.setPrototypeOf(e3, Uint8Array.prototype), Object.setPrototypeOf(t4, e3), 42 === t4.foo();
    } catch (t5) {
      return false;
    }
  }(), s2.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(s2.prototype, "parent", { enumerable: true, get: function() {
    if (s2.isBuffer(this))
      return this.buffer;
  } }), Object.defineProperty(s2.prototype, "offset", { enumerable: true, get: function() {
    if (s2.isBuffer(this))
      return this.byteOffset;
  } }), s2.poolSize = 8192, s2.from = function(t4, e3, n3) {
    return u2(t4, e3, n3);
  }, Object.setPrototypeOf(s2.prototype, Uint8Array.prototype), Object.setPrototypeOf(s2, Uint8Array), s2.alloc = function(t4, e3, n3) {
    return function(t5, e4, n4) {
      return d2(t5), t5 <= 0 ? o2(t5) : void 0 !== e4 ? "string" == typeof n4 ? o2(t5).fill(e4, n4) : o2(t5).fill(e4) : o2(t5);
    }(t4, e3, n3);
  }, s2.allocUnsafe = function(t4) {
    return c2(t4);
  }, s2.allocUnsafeSlow = function(t4) {
    return c2(t4);
  }, s2.isBuffer = function(t4) {
    return null != t4 && true === t4._isBuffer && t4 !== s2.prototype;
  }, s2.compare = function(t4, e3) {
    if (q(t4, Uint8Array) && (t4 = s2.from(t4, t4.offset, t4.byteLength)), q(e3, Uint8Array) && (e3 = s2.from(e3, e3.offset, e3.byteLength)), !s2.isBuffer(t4) || !s2.isBuffer(e3))
      throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
    if (t4 === e3)
      return 0;
    for (var n3 = t4.length, a3 = e3.length, r3 = 0, i3 = Math.min(n3, a3); r3 < i3; ++r3)
      if (t4[r3] !== e3[r3]) {
        n3 = t4[r3], a3 = e3[r3];
        break;
      }
    return n3 < a3 ? -1 : a3 < n3 ? 1 : 0;
  }, s2.isEncoding = function(t4) {
    switch (String(t4).toLowerCase()) {
      case "hex":
      case "utf8":
      case "utf-8":
      case "ascii":
      case "latin1":
      case "binary":
      case "base64":
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
        return true;
      default:
        return false;
    }
  }, s2.concat = function(t4, e3) {
    if (!Array.isArray(t4))
      throw new TypeError('"list" argument must be an Array of Buffers');
    if (0 === t4.length)
      return s2.alloc(0);
    var n3;
    if (void 0 === e3)
      for (e3 = 0, n3 = 0; n3 < t4.length; ++n3)
        e3 += t4[n3].length;
    var a3 = s2.allocUnsafe(e3), r3 = 0;
    for (n3 = 0; n3 < t4.length; ++n3) {
      var i3 = t4[n3];
      if (q(i3, Uint8Array))
        r3 + i3.length > a3.length ? s2.from(i3).copy(a3, r3) : Uint8Array.prototype.set.call(a3, i3, r3);
      else {
        if (!s2.isBuffer(i3))
          throw new TypeError('"list" argument must be an Array of Buffers');
        i3.copy(a3, r3);
      }
      r3 += i3.length;
    }
    return a3;
  }, s2.byteLength = h2, s2.prototype._isBuffer = true, s2.prototype.swap16 = function() {
    var t4 = this.length;
    if (t4 % 2 != 0)
      throw new RangeError("Buffer size must be a multiple of 16-bits");
    for (var e3 = 0; e3 < t4; e3 += 2)
      b2(this, e3, e3 + 1);
    return this;
  }, s2.prototype.swap32 = function() {
    var t4 = this.length;
    if (t4 % 4 != 0)
      throw new RangeError("Buffer size must be a multiple of 32-bits");
    for (var e3 = 0; e3 < t4; e3 += 4)
      b2(this, e3, e3 + 3), b2(this, e3 + 1, e3 + 2);
    return this;
  }, s2.prototype.swap64 = function() {
    var t4 = this.length;
    if (t4 % 8 != 0)
      throw new RangeError("Buffer size must be a multiple of 64-bits");
    for (var e3 = 0; e3 < t4; e3 += 8)
      b2(this, e3, e3 + 7), b2(this, e3 + 1, e3 + 6), b2(this, e3 + 2, e3 + 5), b2(this, e3 + 3, e3 + 4);
    return this;
  }, s2.prototype.toString = function() {
    var t4 = this.length;
    return 0 === t4 ? "" : 0 === arguments.length ? k2(this, 0, t4) : p2.apply(this, arguments);
  }, s2.prototype.toLocaleString = s2.prototype.toString, s2.prototype.equals = function(t4) {
    if (!s2.isBuffer(t4))
      throw new TypeError("Argument must be a Buffer");
    return this === t4 || 0 === s2.compare(this, t4);
  }, s2.prototype.inspect = function() {
    var t4 = "", n3 = e2.INSPECT_MAX_BYTES;
    return t4 = this.toString("hex", 0, n3).replace(/(.{2})/g, "$1 ").trim(), this.length > n3 && (t4 += " ... "), "<Buffer " + t4 + ">";
  }, i2 && (s2.prototype[i2] = s2.prototype.inspect), s2.prototype.compare = function(t4, e3, n3, a3, r3) {
    if (q(t4, Uint8Array) && (t4 = s2.from(t4, t4.offset, t4.byteLength)), !s2.isBuffer(t4))
      throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t4);
    if (void 0 === e3 && (e3 = 0), void 0 === n3 && (n3 = t4 ? t4.length : 0), void 0 === a3 && (a3 = 0), void 0 === r3 && (r3 = this.length), e3 < 0 || n3 > t4.length || a3 < 0 || r3 > this.length)
      throw new RangeError("out of range index");
    if (a3 >= r3 && e3 >= n3)
      return 0;
    if (a3 >= r3)
      return -1;
    if (e3 >= n3)
      return 1;
    if (this === t4)
      return 0;
    for (var i3 = (r3 >>>= 0) - (a3 >>>= 0), l3 = (n3 >>>= 0) - (e3 >>>= 0), o3 = Math.min(i3, l3), u3 = this.slice(a3, r3), d3 = t4.slice(e3, n3), c3 = 0; c3 < o3; ++c3)
      if (u3[c3] !== d3[c3]) {
        i3 = u3[c3], l3 = d3[c3];
        break;
      }
    return i3 < l3 ? -1 : l3 < i3 ? 1 : 0;
  }, s2.prototype.includes = function(t4, e3, n3) {
    return -1 !== this.indexOf(t4, e3, n3);
  }, s2.prototype.indexOf = function(t4, e3, n3) {
    return y2(this, t4, e3, n3, true);
  }, s2.prototype.lastIndexOf = function(t4, e3, n3) {
    return y2(this, t4, e3, n3, false);
  }, s2.prototype.write = function(t4, e3, n3, a3) {
    if (void 0 === e3)
      a3 = "utf8", n3 = this.length, e3 = 0;
    else if (void 0 === n3 && "string" == typeof e3)
      a3 = e3, n3 = this.length, e3 = 0;
    else {
      if (!isFinite(e3))
        throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
      e3 >>>= 0, isFinite(n3) ? (n3 >>>= 0, void 0 === a3 && (a3 = "utf8")) : (a3 = n3, n3 = void 0);
    }
    var r3 = this.length - e3;
    if ((void 0 === n3 || n3 > r3) && (n3 = r3), t4.length > 0 && (n3 < 0 || e3 < 0) || e3 > this.length)
      throw new RangeError("Attempt to write outside buffer bounds");
    a3 || (a3 = "utf8");
    for (var i3 = false; ; )
      switch (a3) {
        case "hex":
          return T2(this, t4, e3, n3);
        case "utf8":
        case "utf-8":
          return _2(this, t4, e3, n3);
        case "ascii":
        case "latin1":
        case "binary":
          return v2(this, t4, e3, n3);
        case "base64":
          return S2(this, t4, e3, n3);
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return w2(this, t4, e3, n3);
        default:
          if (i3)
            throw new TypeError("Unknown encoding: " + a3);
          a3 = ("" + a3).toLowerCase(), i3 = true;
      }
  }, s2.prototype.toJSON = function() {
    return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
  };
  var A = 4096;
  function R(t4, e3, n3) {
    var a3 = "";
    n3 = Math.min(t4.length, n3);
    for (var r3 = e3; r3 < n3; ++r3)
      a3 += String.fromCharCode(127 & t4[r3]);
    return a3;
  }
  function N(t4, e3, n3) {
    var a3 = "";
    n3 = Math.min(t4.length, n3);
    for (var r3 = e3; r3 < n3; ++r3)
      a3 += String.fromCharCode(t4[r3]);
    return a3;
  }
  function C(t4, e3, n3) {
    var a3 = t4.length;
    (!e3 || e3 < 0) && (e3 = 0), (!n3 || n3 < 0 || n3 > a3) && (n3 = a3);
    for (var r3 = "", i3 = e3; i3 < n3; ++i3)
      r3 += G[t4[i3]];
    return r3;
  }
  function D(t4, e3, n3) {
    for (var a3 = t4.slice(e3, n3), r3 = "", i3 = 0; i3 < a3.length - 1; i3 += 2)
      r3 += String.fromCharCode(a3[i3] + 256 * a3[i3 + 1]);
    return r3;
  }
  function x(t4, e3, n3) {
    if (t4 % 1 != 0 || t4 < 0)
      throw new RangeError("offset is not uint");
    if (t4 + e3 > n3)
      throw new RangeError("Trying to access beyond buffer length");
  }
  function M(t4, e3, n3, a3, r3, i3) {
    if (!s2.isBuffer(t4))
      throw new TypeError('"buffer" argument must be a Buffer instance');
    if (e3 > r3 || e3 < i3)
      throw new RangeError('"value" argument is out of bounds');
    if (n3 + a3 > t4.length)
      throw new RangeError("Index out of range");
  }
  function P(t4, e3, n3, a3, r3, i3) {
    if (n3 + a3 > t4.length)
      throw new RangeError("Index out of range");
    if (n3 < 0)
      throw new RangeError("Index out of range");
  }
  function O(t4, e3, n3, a3, i3) {
    return e3 = +e3, n3 >>>= 0, i3 || P(t4, 0, n3, 4), r2.write(t4, e3, n3, a3, 23, 4), n3 + 4;
  }
  function z(t4, e3, n3, a3, i3) {
    return e3 = +e3, n3 >>>= 0, i3 || P(t4, 0, n3, 8), r2.write(t4, e3, n3, a3, 52, 8), n3 + 8;
  }
  s2.prototype.slice = function(t4, e3) {
    var n3 = this.length;
    (t4 = ~~t4) < 0 ? (t4 += n3) < 0 && (t4 = 0) : t4 > n3 && (t4 = n3), (e3 = void 0 === e3 ? n3 : ~~e3) < 0 ? (e3 += n3) < 0 && (e3 = 0) : e3 > n3 && (e3 = n3), e3 < t4 && (e3 = t4);
    var a3 = this.subarray(t4, e3);
    return Object.setPrototypeOf(a3, s2.prototype), a3;
  }, s2.prototype.readUintLE = s2.prototype.readUIntLE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4], r3 = 1, i3 = 0; ++i3 < e3 && (r3 *= 256); )
      a3 += this[t4 + i3] * r3;
    return a3;
  }, s2.prototype.readUintBE = s2.prototype.readUIntBE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4 + --e3], r3 = 1; e3 > 0 && (r3 *= 256); )
      a3 += this[t4 + --e3] * r3;
    return a3;
  }, s2.prototype.readUint8 = s2.prototype.readUInt8 = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 1, this.length), this[t4];
  }, s2.prototype.readUint16LE = s2.prototype.readUInt16LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 2, this.length), this[t4] | this[t4 + 1] << 8;
  }, s2.prototype.readUint16BE = s2.prototype.readUInt16BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 2, this.length), this[t4] << 8 | this[t4 + 1];
  }, s2.prototype.readUint32LE = s2.prototype.readUInt32LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), (this[t4] | this[t4 + 1] << 8 | this[t4 + 2] << 16) + 16777216 * this[t4 + 3];
  }, s2.prototype.readUint32BE = s2.prototype.readUInt32BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), 16777216 * this[t4] + (this[t4 + 1] << 16 | this[t4 + 2] << 8 | this[t4 + 3]);
  }, s2.prototype.readIntLE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4], r3 = 1, i3 = 0; ++i3 < e3 && (r3 *= 256); )
      a3 += this[t4 + i3] * r3;
    return a3 >= (r3 *= 128) && (a3 -= Math.pow(2, 8 * e3)), a3;
  }, s2.prototype.readIntBE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = e3, r3 = 1, i3 = this[t4 + --a3]; a3 > 0 && (r3 *= 256); )
      i3 += this[t4 + --a3] * r3;
    return i3 >= (r3 *= 128) && (i3 -= Math.pow(2, 8 * e3)), i3;
  }, s2.prototype.readInt8 = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 1, this.length), 128 & this[t4] ? -1 * (255 - this[t4] + 1) : this[t4];
  }, s2.prototype.readInt16LE = function(t4, e3) {
    t4 >>>= 0, e3 || x(t4, 2, this.length);
    var n3 = this[t4] | this[t4 + 1] << 8;
    return 32768 & n3 ? 4294901760 | n3 : n3;
  }, s2.prototype.readInt16BE = function(t4, e3) {
    t4 >>>= 0, e3 || x(t4, 2, this.length);
    var n3 = this[t4 + 1] | this[t4] << 8;
    return 32768 & n3 ? 4294901760 | n3 : n3;
  }, s2.prototype.readInt32LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), this[t4] | this[t4 + 1] << 8 | this[t4 + 2] << 16 | this[t4 + 3] << 24;
  }, s2.prototype.readInt32BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), this[t4] << 24 | this[t4 + 1] << 16 | this[t4 + 2] << 8 | this[t4 + 3];
  }, s2.prototype.readFloatLE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), r2.read(this, t4, true, 23, 4);
  }, s2.prototype.readFloatBE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), r2.read(this, t4, false, 23, 4);
  }, s2.prototype.readDoubleLE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 8, this.length), r2.read(this, t4, true, 52, 8);
  }, s2.prototype.readDoubleBE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 8, this.length), r2.read(this, t4, false, 52, 8);
  }, s2.prototype.writeUintLE = s2.prototype.writeUIntLE = function(t4, e3, n3, a3) {
    t4 = +t4, e3 >>>= 0, n3 >>>= 0, a3 || M(this, t4, e3, n3, Math.pow(2, 8 * n3) - 1, 0);
    var r3 = 1, i3 = 0;
    for (this[e3] = 255 & t4; ++i3 < n3 && (r3 *= 256); )
      this[e3 + i3] = t4 / r3 & 255;
    return e3 + n3;
  }, s2.prototype.writeUintBE = s2.prototype.writeUIntBE = function(t4, e3, n3, a3) {
    t4 = +t4, e3 >>>= 0, n3 >>>= 0, a3 || M(this, t4, e3, n3, Math.pow(2, 8 * n3) - 1, 0);
    var r3 = n3 - 1, i3 = 1;
    for (this[e3 + r3] = 255 & t4; --r3 >= 0 && (i3 *= 256); )
      this[e3 + r3] = t4 / i3 & 255;
    return e3 + n3;
  }, s2.prototype.writeUint8 = s2.prototype.writeUInt8 = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 1, 255, 0), this[e3] = 255 & t4, e3 + 1;
  }, s2.prototype.writeUint16LE = s2.prototype.writeUInt16LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 65535, 0), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, e3 + 2;
  }, s2.prototype.writeUint16BE = s2.prototype.writeUInt16BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 65535, 0), this[e3] = t4 >>> 8, this[e3 + 1] = 255 & t4, e3 + 2;
  }, s2.prototype.writeUint32LE = s2.prototype.writeUInt32LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 4294967295, 0), this[e3 + 3] = t4 >>> 24, this[e3 + 2] = t4 >>> 16, this[e3 + 1] = t4 >>> 8, this[e3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeUint32BE = s2.prototype.writeUInt32BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 4294967295, 0), this[e3] = t4 >>> 24, this[e3 + 1] = t4 >>> 16, this[e3 + 2] = t4 >>> 8, this[e3 + 3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeIntLE = function(t4, e3, n3, a3) {
    if (t4 = +t4, e3 >>>= 0, !a3) {
      var r3 = Math.pow(2, 8 * n3 - 1);
      M(this, t4, e3, n3, r3 - 1, -r3);
    }
    var i3 = 0, l3 = 1, o3 = 0;
    for (this[e3] = 255 & t4; ++i3 < n3 && (l3 *= 256); )
      t4 < 0 && 0 === o3 && 0 !== this[e3 + i3 - 1] && (o3 = 1), this[e3 + i3] = (t4 / l3 | 0) - o3 & 255;
    return e3 + n3;
  }, s2.prototype.writeIntBE = function(t4, e3, n3, a3) {
    if (t4 = +t4, e3 >>>= 0, !a3) {
      var r3 = Math.pow(2, 8 * n3 - 1);
      M(this, t4, e3, n3, r3 - 1, -r3);
    }
    var i3 = n3 - 1, l3 = 1, o3 = 0;
    for (this[e3 + i3] = 255 & t4; --i3 >= 0 && (l3 *= 256); )
      t4 < 0 && 0 === o3 && 0 !== this[e3 + i3 + 1] && (o3 = 1), this[e3 + i3] = (t4 / l3 | 0) - o3 & 255;
    return e3 + n3;
  }, s2.prototype.writeInt8 = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 1, 127, -128), t4 < 0 && (t4 = 255 + t4 + 1), this[e3] = 255 & t4, e3 + 1;
  }, s2.prototype.writeInt16LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 32767, -32768), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, e3 + 2;
  }, s2.prototype.writeInt16BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 32767, -32768), this[e3] = t4 >>> 8, this[e3 + 1] = 255 & t4, e3 + 2;
  }, s2.prototype.writeInt32LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 2147483647, -2147483648), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, this[e3 + 2] = t4 >>> 16, this[e3 + 3] = t4 >>> 24, e3 + 4;
  }, s2.prototype.writeInt32BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 2147483647, -2147483648), t4 < 0 && (t4 = 4294967295 + t4 + 1), this[e3] = t4 >>> 24, this[e3 + 1] = t4 >>> 16, this[e3 + 2] = t4 >>> 8, this[e3 + 3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeFloatLE = function(t4, e3, n3) {
    return O(this, t4, e3, true, n3);
  }, s2.prototype.writeFloatBE = function(t4, e3, n3) {
    return O(this, t4, e3, false, n3);
  }, s2.prototype.writeDoubleLE = function(t4, e3, n3) {
    return z(this, t4, e3, true, n3);
  }, s2.prototype.writeDoubleBE = function(t4, e3, n3) {
    return z(this, t4, e3, false, n3);
  }, s2.prototype.copy = function(t4, e3, n3, a3) {
    if (!s2.isBuffer(t4))
      throw new TypeError("argument should be a Buffer");
    if (n3 || (n3 = 0), a3 || 0 === a3 || (a3 = this.length), e3 >= t4.length && (e3 = t4.length), e3 || (e3 = 0), a3 > 0 && a3 < n3 && (a3 = n3), a3 === n3)
      return 0;
    if (0 === t4.length || 0 === this.length)
      return 0;
    if (e3 < 0)
      throw new RangeError("targetStart out of bounds");
    if (n3 < 0 || n3 >= this.length)
      throw new RangeError("Index out of range");
    if (a3 < 0)
      throw new RangeError("sourceEnd out of bounds");
    a3 > this.length && (a3 = this.length), t4.length - e3 < a3 - n3 && (a3 = t4.length - e3 + n3);
    var r3 = a3 - n3;
    return this === t4 && "function" == typeof Uint8Array.prototype.copyWithin ? this.copyWithin(e3, n3, a3) : Uint8Array.prototype.set.call(t4, this.subarray(n3, a3), e3), r3;
  }, s2.prototype.fill = function(t4, e3, n3, a3) {
    if ("string" == typeof t4) {
      if ("string" == typeof e3 ? (a3 = e3, e3 = 0, n3 = this.length) : "string" == typeof n3 && (a3 = n3, n3 = this.length), void 0 !== a3 && "string" != typeof a3)
        throw new TypeError("encoding must be a string");
      if ("string" == typeof a3 && !s2.isEncoding(a3))
        throw new TypeError("Unknown encoding: " + a3);
      if (1 === t4.length) {
        var r3 = t4.charCodeAt(0);
        ("utf8" === a3 && r3 < 128 || "latin1" === a3) && (t4 = r3);
      }
    } else
      "number" == typeof t4 ? t4 &= 255 : "boolean" == typeof t4 && (t4 = Number(t4));
    if (e3 < 0 || this.length < e3 || this.length < n3)
      throw new RangeError("Out of range index");
    if (n3 <= e3)
      return this;
    var i3;
    if (e3 >>>= 0, n3 = void 0 === n3 ? this.length : n3 >>> 0, t4 || (t4 = 0), "number" == typeof t4)
      for (i3 = e3; i3 < n3; ++i3)
        this[i3] = t4;
    else {
      var l3 = s2.isBuffer(t4) ? t4 : s2.from(t4, a3), o3 = l3.length;
      if (0 === o3)
        throw new TypeError('The value "' + t4 + '" is invalid for argument "value"');
      for (i3 = 0; i3 < n3 - e3; ++i3)
        this[i3 + e3] = l3[i3 % o3];
    }
    return this;
  };
  var L = /[^+/0-9A-Za-z-_]/g;
  function F(t4, e3) {
    var n3;
    e3 = e3 || 1 / 0;
    for (var a3 = t4.length, r3 = null, i3 = [], l3 = 0; l3 < a3; ++l3) {
      if ((n3 = t4.charCodeAt(l3)) > 55295 && n3 < 57344) {
        if (!r3) {
          if (n3 > 56319) {
            (e3 -= 3) > -1 && i3.push(239, 191, 189);
            continue;
          }
          if (l3 + 1 === a3) {
            (e3 -= 3) > -1 && i3.push(239, 191, 189);
            continue;
          }
          r3 = n3;
          continue;
        }
        if (n3 < 56320) {
          (e3 -= 3) > -1 && i3.push(239, 191, 189), r3 = n3;
          continue;
        }
        n3 = 65536 + (r3 - 55296 << 10 | n3 - 56320);
      } else
        r3 && (e3 -= 3) > -1 && i3.push(239, 191, 189);
      if (r3 = null, n3 < 128) {
        if ((e3 -= 1) < 0)
          break;
        i3.push(n3);
      } else if (n3 < 2048) {
        if ((e3 -= 2) < 0)
          break;
        i3.push(n3 >> 6 | 192, 63 & n3 | 128);
      } else if (n3 < 65536) {
        if ((e3 -= 3) < 0)
          break;
        i3.push(n3 >> 12 | 224, n3 >> 6 & 63 | 128, 63 & n3 | 128);
      } else {
        if (!(n3 < 1114112))
          throw new Error("Invalid code point");
        if ((e3 -= 4) < 0)
          break;
        i3.push(n3 >> 18 | 240, n3 >> 12 & 63 | 128, n3 >> 6 & 63 | 128, 63 & n3 | 128);
      }
    }
    return i3;
  }
  function U(t4) {
    return a2.toByteArray(function(t5) {
      if ((t5 = (t5 = t5.split("=")[0]).trim().replace(L, "")).length < 2)
        return "";
      for (; t5.length % 4 != 0; )
        t5 += "=";
      return t5;
    }(t4));
  }
  function j(t4, e3, n3, a3) {
    for (var r3 = 0; r3 < a3 && !(r3 + n3 >= e3.length || r3 >= t4.length); ++r3)
      e3[r3 + n3] = t4[r3];
    return r3;
  }
  function q(t4, e3) {
    return t4 instanceof e3 || null != t4 && null != t4.constructor && null != t4.constructor.name && t4.constructor.name === e3.name;
  }
  function B(t4) {
    return t4 != t4;
  }
  var G = function() {
    for (var t4 = "0123456789abcdef", e3 = new Array(256), n3 = 0; n3 < 16; ++n3)
      for (var a3 = 16 * n3, r3 = 0; r3 < 16; ++r3)
        e3[a3 + r3] = t4[n3] + t4[r3];
    return e3;
  }();
}, 6877: function(t3, e2) {
  var n2 = { parseBuffer: function(t4) {
    return new a2(t4).parse();
  }, addBoxProcessor: function(t4, e3) {
    "string" == typeof t4 && "function" == typeof e3 && (r2.prototype._boxProcessors[t4] = e3);
  }, createFile: function() {
    return new a2();
  }, createBox: function(t4, e3, n3) {
    var a3 = r2.create(t4);
    return e3 && e3.append(a3, n3), a3;
  }, createFullBox: function(t4, e3, a3) {
    var r3 = n2.createBox(t4, e3, a3);
    return r3.version = 0, r3.flags = 0, r3;
  }, Utils: {} };
  n2.Utils.dataViewToString = function(t4, e3) {
    var n3 = e3 || "utf-8";
    if ("undefined" != typeof TextDecoder)
      return new TextDecoder(n3).decode(t4);
    var a3 = [], r3 = 0;
    if ("utf-8" === n3)
      for (; r3 < t4.byteLength; ) {
        var i2 = t4.getUint8(r3++);
        i2 < 128 || (i2 < 224 ? (i2 = (31 & i2) << 6, i2 |= 63 & t4.getUint8(r3++)) : i2 < 240 ? (i2 = (15 & i2) << 12, i2 |= (63 & t4.getUint8(r3++)) << 6, i2 |= 63 & t4.getUint8(r3++)) : (i2 = (7 & i2) << 18, i2 |= (63 & t4.getUint8(r3++)) << 12, i2 |= (63 & t4.getUint8(r3++)) << 6, i2 |= 63 & t4.getUint8(r3++))), a3.push(String.fromCharCode(i2));
      }
    else
      for (; r3 < t4.byteLength; )
        a3.push(String.fromCharCode(t4.getUint8(r3++)));
    return a3.join("");
  }, n2.Utils.utf8ToByteArray = function(t4) {
    var e3, n3;
    if ("undefined" != typeof TextEncoder)
      e3 = new TextEncoder().encode(t4);
    else
      for (e3 = [], n3 = 0; n3 < t4.length; ++n3) {
        var a3 = t4.charCodeAt(n3);
        a3 < 128 ? e3.push(a3) : a3 < 2048 ? (e3.push(192 | a3 >> 6), e3.push(128 | 63 & a3)) : a3 < 65536 ? (e3.push(224 | a3 >> 12), e3.push(128 | 63 & a3 >> 6), e3.push(128 | 63 & a3)) : (e3.push(240 | a3 >> 18), e3.push(128 | 63 & a3 >> 12), e3.push(128 | 63 & a3 >> 6), e3.push(128 | 63 & a3));
      }
    return e3;
  }, n2.Utils.appendBox = function(t4, e3, n3) {
    if (e3._offset = t4._cursor.offset, e3._root = t4._root ? t4._root : t4, e3._raw = t4._raw, e3._parent = t4, -1 !== n3)
      if (null != n3) {
        var a3, r3 = -1;
        if ("number" == typeof n3)
          r3 = n3;
        else {
          if ("string" == typeof n3)
            a3 = n3;
          else {
            if ("object" != typeof n3 || !n3.type)
              return void t4.boxes.push(e3);
            a3 = n3.type;
          }
          for (var i2 = 0; i2 < t4.boxes.length; i2++)
            if (a3 === t4.boxes[i2].type) {
              r3 = i2 + 1;
              break;
            }
        }
        t4.boxes.splice(r3, 0, e3);
      } else
        t4.boxes.push(e3);
  }, e2.parseBuffer = n2.parseBuffer, e2.addBoxProcessor = n2.addBoxProcessor, e2.createFile = n2.createFile, e2.createBox = n2.createBox, e2.createFullBox = n2.createFullBox, e2.Utils = n2.Utils, n2.Cursor = function(t4) {
    this.offset = void 0 === t4 ? 0 : t4;
  };
  var a2 = function(t4) {
    this._cursor = new n2.Cursor(), this.boxes = [], t4 && (this._raw = new DataView(t4));
  };
  a2.prototype.fetch = function(t4) {
    var e3 = this.fetchAll(t4, true);
    return e3.length ? e3[0] : null;
  }, a2.prototype.fetchAll = function(t4, e3) {
    var n3 = [];
    return a2._sweep.call(this, t4, n3, e3), n3;
  }, a2.prototype.parse = function() {
    for (this._cursor.offset = 0, this.boxes = []; this._cursor.offset < this._raw.byteLength; ) {
      var t4 = r2.parse(this);
      if (void 0 === t4.type)
        break;
      this.boxes.push(t4);
    }
    return this;
  }, a2._sweep = function(t4, e3, n3) {
    for (var r3 in this.type && this.type == t4 && e3.push(this), this.boxes) {
      if (e3.length && n3)
        return;
      a2._sweep.call(this.boxes[r3], t4, e3, n3);
    }
  }, a2.prototype.write = function() {
    var t4, e3 = 0;
    for (t4 = 0; t4 < this.boxes.length; t4++)
      e3 += this.boxes[t4].getLength(false);
    var n3 = new Uint8Array(e3);
    for (this._rawo = new DataView(n3.buffer), this.bytes = n3, this._cursor.offset = 0, t4 = 0; t4 < this.boxes.length; t4++)
      this.boxes[t4].write();
    return n3.buffer;
  }, a2.prototype.append = function(t4, e3) {
    n2.Utils.appendBox(this, t4, e3);
  };
  var r2 = function() {
    this._cursor = new n2.Cursor();
  };
  r2.parse = function(t4) {
    var e3 = new r2();
    return e3._offset = t4._cursor.offset, e3._root = t4._root ? t4._root : t4, e3._raw = t4._raw, e3._parent = t4, e3._parseBox(), t4._cursor.offset = e3._raw.byteOffset + e3._raw.byteLength, e3;
  }, r2.create = function(t4) {
    var e3 = new r2();
    return e3.type = t4, e3.boxes = [], e3;
  }, r2.prototype._boxContainers = ["dinf", "edts", "mdia", "meco", "mfra", "minf", "moof", "moov", "mvex", "stbl", "strk", "traf", "trak", "tref", "udta", "vttc", "sinf", "schi", "encv", "enca", "meta", "grpl", "prsl"], r2.prototype._boxProcessors = {}, r2.prototype._procField = function(t4, e3, n3) {
    this._parsing ? this[t4] = this._readField(e3, n3) : this._writeField(e3, n3, this[t4]);
  }, r2.prototype._procFieldArray = function(t4, e3, n3, a3) {
    var r3;
    if (this._parsing)
      for (this[t4] = [], r3 = 0; r3 < e3; r3++)
        this[t4][r3] = this._readField(n3, a3);
    else
      for (r3 = 0; r3 < this[t4].length; r3++)
        this._writeField(n3, a3, this[t4][r3]);
  }, r2.prototype._procFullBox = function() {
    this._procField("version", "uint", 8), this._procField("flags", "uint", 24);
  }, r2.prototype._procEntries = function(t4, e3, n3) {
    var a3;
    if (this._parsing)
      for (this[t4] = [], a3 = 0; a3 < e3; a3++)
        this[t4].push({}), n3.call(this, this[t4][a3]);
    else
      for (a3 = 0; a3 < e3; a3++)
        n3.call(this, this[t4][a3]);
  }, r2.prototype._procSubEntries = function(t4, e3, n3, a3) {
    var r3;
    if (this._parsing)
      for (t4[e3] = [], r3 = 0; r3 < n3; r3++)
        t4[e3].push({}), a3.call(this, t4[e3][r3]);
    else
      for (r3 = 0; r3 < n3; r3++)
        a3.call(this, t4[e3][r3]);
  }, r2.prototype._procEntryField = function(t4, e3, n3, a3) {
    this._parsing ? t4[e3] = this._readField(n3, a3) : this._writeField(n3, a3, t4[e3]);
  }, r2.prototype._procSubBoxes = function(t4, e3) {
    var n3;
    if (this._parsing)
      for (this[t4] = [], n3 = 0; n3 < e3; n3++)
        this[t4].push(r2.parse(this));
    else
      for (n3 = 0; n3 < e3; n3++)
        this._rawo ? this[t4][n3].write() : this.size += this[t4][n3].getLength();
  }, r2.prototype._readField = function(t4, e3) {
    switch (t4) {
      case "uint":
        return this._readUint(e3);
      case "int":
        return this._readInt(e3);
      case "template":
        return this._readTemplate(e3);
      case "string":
        return -1 === e3 ? this._readTerminatedString() : this._readString(e3);
      case "data":
        return this._readData(e3);
      case "utf8":
        return this._readUTF8String();
      case "utf8string":
        return this._readUTF8TerminatedString();
      default:
        return -1;
    }
  }, r2.prototype._readInt = function(t4) {
    var e3 = null, n3 = this._cursor.offset - this._raw.byteOffset;
    switch (t4) {
      case 8:
        e3 = this._raw.getInt8(n3);
        break;
      case 16:
        e3 = this._raw.getInt16(n3);
        break;
      case 32:
        e3 = this._raw.getInt32(n3);
        break;
      case 64:
        var a3 = this._raw.getInt32(n3), r3 = this._raw.getInt32(n3 + 4);
        e3 = a3 * Math.pow(2, 32) + r3;
    }
    return this._cursor.offset += t4 >> 3, e3;
  }, r2.prototype._readUint = function(t4) {
    var e3, n3, a3 = null, r3 = this._cursor.offset - this._raw.byteOffset;
    switch (t4) {
      case 8:
        a3 = this._raw.getUint8(r3);
        break;
      case 16:
        a3 = this._raw.getUint16(r3);
        break;
      case 24:
        a3 = ((e3 = this._raw.getUint16(r3)) << 8) + (n3 = this._raw.getUint8(r3 + 2));
        break;
      case 32:
        a3 = this._raw.getUint32(r3);
        break;
      case 64:
        e3 = this._raw.getUint32(r3), n3 = this._raw.getUint32(r3 + 4), a3 = e3 * Math.pow(2, 32) + n3;
    }
    return this._cursor.offset += t4 >> 3, a3;
  }, r2.prototype._readString = function(t4) {
    for (var e3 = "", n3 = 0; n3 < t4; n3++) {
      var a3 = this._readUint(8);
      e3 += String.fromCharCode(a3);
    }
    return e3;
  }, r2.prototype._readTemplate = function(t4) {
    return this._readUint(t4 / 2) + this._readUint(t4 / 2) / Math.pow(2, t4 / 2);
  }, r2.prototype._readTerminatedString = function() {
    for (var t4 = ""; this._cursor.offset - this._offset < this._raw.byteLength; ) {
      var e3 = this._readUint(8);
      if (0 === e3)
        break;
      t4 += String.fromCharCode(e3);
    }
    return t4;
  }, r2.prototype._readData = function(t4) {
    var e3 = t4 > 0 ? t4 : this._raw.byteLength - (this._cursor.offset - this._offset);
    if (e3 > 0) {
      var n3 = new Uint8Array(this._raw.buffer, this._cursor.offset, e3);
      return this._cursor.offset += e3, n3;
    }
    return null;
  }, r2.prototype._readUTF8String = function() {
    var t4 = this._raw.byteLength - (this._cursor.offset - this._offset), e3 = null;
    return t4 > 0 && (e3 = new DataView(this._raw.buffer, this._cursor.offset, t4), this._cursor.offset += t4), e3 ? n2.Utils.dataViewToString(e3) : e3;
  }, r2.prototype._readUTF8TerminatedString = function() {
    var t4 = this._raw.byteLength - (this._cursor.offset - this._offset), e3 = null;
    if (t4 > 0) {
      var a3;
      for (e3 = new DataView(this._raw.buffer, this._cursor.offset, t4), a3 = 0; a3 < t4 && 0 !== e3.getUint8(a3); a3++)
        ;
      e3 = new DataView(this._raw.buffer, this._cursor.offset, a3), this._cursor.offset += Math.min(a3 + 1, t4);
    }
    return e3 ? n2.Utils.dataViewToString(e3) : e3;
  }, r2.prototype._parseBox = function() {
    if (this._parsing = true, this._cursor.offset = this._offset, this._offset + 8 > this._raw.buffer.byteLength)
      this._root._incomplete = true;
    else {
      switch (this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this.size) {
        case 0:
          this._raw = new DataView(this._raw.buffer, this._offset);
          break;
        case 1:
          this._offset + this.size > this._raw.buffer.byteLength ? (this._incomplete = true, this._root._incomplete = true) : this._raw = new DataView(this._raw.buffer, this._offset, this.largesize);
          break;
        default:
          this._offset + this.size > this._raw.buffer.byteLength ? (this._incomplete = true, this._root._incomplete = true) : this._raw = new DataView(this._raw.buffer, this._offset, this.size);
      }
      this._incomplete || (this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type) ? this._parseContainerBox() : this._data = this._readData());
    }
  }, r2.prototype._parseFullBox = function() {
    this.version = this._readUint(8), this.flags = this._readUint(24);
  }, r2.prototype._parseContainerBox = function() {
    for (this.boxes = []; this._cursor.offset - this._raw.byteOffset < this._raw.byteLength; )
      this.boxes.push(r2.parse(this));
  }, r2.prototype.append = function(t4, e3) {
    n2.Utils.appendBox(this, t4, e3);
  }, r2.prototype.getLength = function() {
    if (this._parsing = false, this._rawo = null, this.size = 0, this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type))
      for (var t4 = 0; t4 < this.boxes.length; t4++)
        this.size += this.boxes[t4].getLength();
    return this._data && this._writeData(this._data), this.size;
  }, r2.prototype.write = function() {
    switch (this._parsing = false, this._cursor.offset = this._parent._cursor.offset, this.size) {
      case 0:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.parent._rawo.byteLength - this._cursor.offset);
        break;
      case 1:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.largesize);
        break;
      default:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.size);
    }
    if (this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type))
      for (var t4 = 0; t4 < this.boxes.length; t4++)
        this.boxes[t4].write();
    return this._data && this._writeData(this._data), this._parent._cursor.offset += this.size, this.size;
  }, r2.prototype._writeInt = function(t4, e3) {
    if (this._rawo) {
      var n3 = this._cursor.offset - this._rawo.byteOffset;
      switch (t4) {
        case 8:
          this._rawo.setInt8(n3, e3);
          break;
        case 16:
          this._rawo.setInt16(n3, e3);
          break;
        case 32:
          this._rawo.setInt32(n3, e3);
          break;
        case 64:
          var a3 = Math.floor(e3 / Math.pow(2, 32)), r3 = e3 - a3 * Math.pow(2, 32);
          this._rawo.setUint32(n3, a3), this._rawo.setUint32(n3 + 4, r3);
      }
      this._cursor.offset += t4 >> 3;
    } else
      this.size += t4 >> 3;
  }, r2.prototype._writeUint = function(t4, e3) {
    if (this._rawo) {
      var n3, a3, r3 = this._cursor.offset - this._rawo.byteOffset;
      switch (t4) {
        case 8:
          this._rawo.setUint8(r3, e3);
          break;
        case 16:
          this._rawo.setUint16(r3, e3);
          break;
        case 24:
          n3 = (16776960 & e3) >> 8, a3 = 255 & e3, this._rawo.setUint16(r3, n3), this._rawo.setUint8(r3 + 2, a3);
          break;
        case 32:
          this._rawo.setUint32(r3, e3);
          break;
        case 64:
          a3 = e3 - (n3 = Math.floor(e3 / Math.pow(2, 32))) * Math.pow(2, 32), this._rawo.setUint32(r3, n3), this._rawo.setUint32(r3 + 4, a3);
      }
      this._cursor.offset += t4 >> 3;
    } else
      this.size += t4 >> 3;
  }, r2.prototype._writeString = function(t4, e3) {
    for (var n3 = 0; n3 < t4; n3++)
      this._writeUint(8, e3.charCodeAt(n3));
  }, r2.prototype._writeTerminatedString = function(t4) {
    if (0 !== t4.length) {
      for (var e3 = 0; e3 < t4.length; e3++)
        this._writeUint(8, t4.charCodeAt(e3));
      this._writeUint(8, 0);
    }
  }, r2.prototype._writeTemplate = function(t4, e3) {
    var n3 = Math.floor(e3), a3 = (e3 - n3) * Math.pow(2, t4 / 2);
    this._writeUint(t4 / 2, n3), this._writeUint(t4 / 2, a3);
  }, r2.prototype._writeData = function(t4) {
    if (t4)
      if (this._rawo) {
        if (t4 instanceof Array) {
          for (var e3 = this._cursor.offset - this._rawo.byteOffset, n3 = 0; n3 < t4.length; n3++)
            this._rawo.setInt8(e3 + n3, t4[n3]);
          this._cursor.offset += t4.length;
        }
        t4 instanceof Uint8Array && (this._root.bytes.set(t4, this._cursor.offset), this._cursor.offset += t4.length);
      } else
        this.size += t4.length;
  }, r2.prototype._writeUTF8String = function(t4) {
    var e3 = n2.Utils.utf8ToByteArray(t4);
    if (this._rawo)
      for (var a3 = new DataView(this._rawo.buffer, this._cursor.offset, e3.length), r3 = 0; r3 < e3.length; r3++)
        a3.setUint8(r3, e3[r3]);
    else
      this.size += e3.length;
  }, r2.prototype._writeField = function(t4, e3, n3) {
    switch (t4) {
      case "uint":
        this._writeUint(e3, n3);
        break;
      case "int":
        this._writeInt(e3, n3);
        break;
      case "template":
        this._writeTemplate(e3, n3);
        break;
      case "string":
        -1 == e3 ? this._writeTerminatedString(n3) : this._writeString(e3, n3);
        break;
      case "data":
        this._writeData(n3);
        break;
      case "utf8":
        this._writeUTF8String(n3);
    }
  }, r2.prototype._boxProcessors.ardi = function() {
    this._procFullBox(), this._procField("audio_rendering_indication", "uint", 8);
  }, r2.prototype._boxProcessors.avc1 = r2.prototype._boxProcessors.avc2 = r2.prototype._boxProcessors.avc3 = r2.prototype._boxProcessors.avc4 = r2.prototype._boxProcessors.hvc1 = r2.prototype._boxProcessors.hev1 = r2.prototype._boxProcessors.encv = function() {
    this._procFieldArray("reserved1", 6, "uint", 8), this._procField("data_reference_index", "uint", 16), this._procField("pre_defined1", "uint", 16), this._procField("reserved2", "uint", 16), this._procFieldArray("pre_defined2", 3, "uint", 32), this._procField("width", "uint", 16), this._procField("height", "uint", 16), this._procField("horizresolution", "template", 32), this._procField("vertresolution", "template", 32), this._procField("reserved3", "uint", 32), this._procField("frame_count", "uint", 16), this._procFieldArray("compressorname", 32, "uint", 8), this._procField("depth", "uint", 16), this._procField("pre_defined3", "int", 16), this._procField("config", "data", -1);
  }, r2.prototype._boxProcessors.ctts = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_count", "uint", 32), this._procEntryField(t4, "sample_offset", 1 === this.version ? "int" : "uint", 32);
    });
  }, r2.prototype._boxProcessors.dref = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procSubBoxes("entries", this.entry_count);
  }, r2.prototype._boxProcessors.elng = function() {
    this._procFullBox(), this._procField("extended_language", "utf8string");
  }, r2.prototype._boxProcessors.elst = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "segment_duration", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "media_time", "int", 1 === this.version ? 64 : 32), this._procEntryField(t4, "media_rate_integer", "int", 16), this._procEntryField(t4, "media_rate_fraction", "int", 16);
    });
  }, r2.prototype._boxProcessors.emsg = function() {
    this._procFullBox(), 1 == this.version ? (this._procField("timescale", "uint", 32), this._procField("presentation_time", "uint", 64), this._procField("event_duration", "uint", 32), this._procField("id", "uint", 32), this._procField("scheme_id_uri", "string", -1), this._procField("value", "string", -1)) : (this._procField("scheme_id_uri", "string", -1), this._procField("value", "string", -1), this._procField("timescale", "uint", 32), this._procField("presentation_time_delta", "uint", 32), this._procField("event_duration", "uint", 32), this._procField("id", "uint", 32)), this._procField("message_data", "data", -1);
  }, r2.prototype._boxProcessors.free = r2.prototype._boxProcessors.skip = function() {
    this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.frma = function() {
    this._procField("data_format", "uint", 32);
  }, r2.prototype._boxProcessors.ftyp = r2.prototype._boxProcessors.styp = function() {
    this._procField("major_brand", "string", 4), this._procField("minor_version", "uint", 32);
    var t4 = -1;
    this._parsing && (t4 = (this._raw.byteLength - (this._cursor.offset - this._raw.byteOffset)) / 4), this._procFieldArray("compatible_brands", t4, "string", 4);
  }, r2.prototype._boxProcessors.hdlr = function() {
    this._procFullBox(), this._procField("pre_defined", "uint", 32), this._procField("handler_type", "string", 4), this._procFieldArray("reserved", 3, "uint", 32), this._procField("name", "string", -1);
  }, r2.prototype._boxProcessors.imda = function() {
    this._procField("imda_identifier", "uint", 32), this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.kind = function() {
    this._procFullBox(), this._procField("schemeURI", "utf8string"), this._procField("value", "utf8string");
  }, r2.prototype._boxProcessors.labl = function() {
    this._procFullBox(), this.is_group_label = !!(1 & this.flags), this._procField("label_id", "uint", 16), this._procField("language", "utf8string"), this._procField("label", "utf8string");
  }, r2.prototype._boxProcessors.mdat = function() {
    this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.mdhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("timescale", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._parsing || "string" != typeof this.language || (this.language = this.language.charCodeAt(0) - 96 << 10 | this.language.charCodeAt(1) - 96 << 5 | this.language.charCodeAt(2) - 96), this._procField("language", "uint", 16), this._parsing && (this.language = String.fromCharCode(96 + (this.language >> 10 & 31), 96 + (this.language >> 5 & 31), 96 + (31 & this.language))), this._procField("pre_defined", "uint", 16);
  }, r2.prototype._boxProcessors.mehd = function() {
    this._procFullBox(), this._procField("fragment_duration", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.meta = function() {
    this._procFullBox();
  }, r2.prototype._boxProcessors.mfhd = function() {
    this._procFullBox(), this._procField("sequence_number", "uint", 32);
  }, r2.prototype._boxProcessors.mfro = function() {
    this._procFullBox(), this._procField("mfra_size", "uint", 32);
  }, r2.prototype._boxProcessors.mp4a = r2.prototype._boxProcessors.enca = function() {
    this._procFieldArray("reserved1", 6, "uint", 8), this._procField("data_reference_index", "uint", 16), this._procFieldArray("reserved2", 2, "uint", 32), this._procField("channelcount", "uint", 16), this._procField("samplesize", "uint", 16), this._procField("pre_defined", "uint", 16), this._procField("reserved3", "uint", 16), this._procField("samplerate", "template", 32), this._procField("esds", "data", -1);
  }, r2.prototype._boxProcessors.mvhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("timescale", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._procField("rate", "template", 32), this._procField("volume", "template", 16), this._procField("reserved1", "uint", 16), this._procFieldArray("reserved2", 2, "uint", 32), this._procFieldArray("matrix", 9, "template", 32), this._procFieldArray("pre_defined", 6, "uint", 32), this._procField("next_track_ID", "uint", 32);
  }, r2.prototype._boxProcessors.payl = function() {
    this._procField("cue_text", "utf8");
  }, r2.prototype._boxProcessors.prft = function() {
    this._procFullBox(), this._procField("reference_track_ID", "uint", 32), this._procField("ntp_timestamp_sec", "uint", 32), this._procField("ntp_timestamp_frac", "uint", 32), this._procField("media_time", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.prsl = function() {
    this._procFullBox(), this._procField("group_id", "uint", 32), this._procField("num_entities_in_group", "uint", 32), this._procEntries("entities", this.num_entities_in_group, function(t4) {
      this._procEntryField(t4, "entity_id", "uint", 32);
    }), 4096 & this.flags && this._procField("preselection_tag", "utf8string"), 8192 & this.flags && this._procField("selection_priority", "uint", 8), 16384 & this.flags && this._procField("interleaving_tag", "utf8string");
  }, r2.prototype._boxProcessors.pssh = function() {
    this._procFullBox(), this._procFieldArray("SystemID", 16, "uint", 8), this._procField("DataSize", "uint", 32), this._procFieldArray("Data", this.DataSize, "uint", 8);
  }, r2.prototype._boxProcessors.schm = function() {
    this._procFullBox(), this._procField("scheme_type", "uint", 32), this._procField("scheme_version", "uint", 32), 1 & this.flags && this._procField("scheme_uri", "string", -1);
  }, r2.prototype._boxProcessors.sdtp = function() {
    this._procFullBox();
    var t4 = -1;
    this._parsing && (t4 = this._raw.byteLength - (this._cursor.offset - this._raw.byteOffset)), this._procFieldArray("sample_dependency_table", t4, "uint", 8);
  }, r2.prototype._boxProcessors.sidx = function() {
    this._procFullBox(), this._procField("reference_ID", "uint", 32), this._procField("timescale", "uint", 32), this._procField("earliest_presentation_time", "uint", 1 == this.version ? 64 : 32), this._procField("first_offset", "uint", 1 == this.version ? 64 : 32), this._procField("reserved", "uint", 16), this._procField("reference_count", "uint", 16), this._procEntries("references", this.reference_count, function(t4) {
      this._parsing || (t4.reference = (1 & t4.reference_type) << 31, t4.reference |= 2147483647 & t4.referenced_size, t4.sap = (1 & t4.starts_with_SAP) << 31, t4.sap |= (3 & t4.SAP_type) << 28, t4.sap |= 268435455 & t4.SAP_delta_time), this._procEntryField(t4, "reference", "uint", 32), this._procEntryField(t4, "subsegment_duration", "uint", 32), this._procEntryField(t4, "sap", "uint", 32), this._parsing && (t4.reference_type = t4.reference >> 31 & 1, t4.referenced_size = 2147483647 & t4.reference, t4.starts_with_SAP = t4.sap >> 31 & 1, t4.SAP_type = t4.sap >> 28 & 7, t4.SAP_delta_time = 268435455 & t4.sap);
    });
  }, r2.prototype._boxProcessors.smhd = function() {
    this._procFullBox(), this._procField("balance", "uint", 16), this._procField("reserved", "uint", 16);
  }, r2.prototype._boxProcessors.ssix = function() {
    this._procFullBox(), this._procField("subsegment_count", "uint", 32), this._procEntries("subsegments", this.subsegment_count, function(t4) {
      this._procEntryField(t4, "ranges_count", "uint", 32), this._procSubEntries(t4, "ranges", t4.ranges_count, function(t5) {
        this._procEntryField(t5, "level", "uint", 8), this._procEntryField(t5, "range_size", "uint", 24);
      });
    });
  }, r2.prototype._boxProcessors.stsd = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procSubBoxes("entries", this.entry_count);
  }, r2.prototype._boxProcessors.sttg = function() {
    this._procField("settings", "utf8");
  }, r2.prototype._boxProcessors.stts = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_count", "uint", 32), this._procEntryField(t4, "sample_delta", "uint", 32);
    });
  }, r2.prototype._boxProcessors.subs = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_delta", "uint", 32), this._procEntryField(t4, "subsample_count", "uint", 16), this._procSubEntries(t4, "subsamples", t4.subsample_count, function(t5) {
        this._procEntryField(t5, "subsample_size", "uint", 1 === this.version ? 32 : 16), this._procEntryField(t5, "subsample_priority", "uint", 8), this._procEntryField(t5, "discardable", "uint", 8), this._procEntryField(t5, "codec_specific_parameters", "uint", 32);
      });
    });
  }, r2.prototype._boxProcessors.tenc = function() {
    this._procFullBox(), this._procField("default_IsEncrypted", "uint", 24), this._procField("default_IV_size", "uint", 8), this._procFieldArray("default_KID", 16, "uint", 8);
  }, r2.prototype._boxProcessors.tfdt = function() {
    this._procFullBox(), this._procField("baseMediaDecodeTime", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.tfhd = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), 1 & this.flags && this._procField("base_data_offset", "uint", 64), 2 & this.flags && this._procField("sample_description_offset", "uint", 32), 8 & this.flags && this._procField("default_sample_duration", "uint", 32), 16 & this.flags && this._procField("default_sample_size", "uint", 32), 32 & this.flags && this._procField("default_sample_flags", "uint", 32);
  }, r2.prototype._boxProcessors.tfra = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), this._parsing || (this.reserved = 0, this.reserved |= (48 & this.length_size_of_traf_num) << 4, this.reserved |= (12 & this.length_size_of_trun_num) << 2, this.reserved |= 3 & this.length_size_of_sample_num), this._procField("reserved", "uint", 32), this._parsing && (this.length_size_of_traf_num = (48 & this.reserved) >> 4, this.length_size_of_trun_num = (12 & this.reserved) >> 2, this.length_size_of_sample_num = 3 & this.reserved), this._procField("number_of_entry", "uint", 32), this._procEntries("entries", this.number_of_entry, function(t4) {
      this._procEntryField(t4, "time", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "moof_offset", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "traf_number", "uint", 8 * (this.length_size_of_traf_num + 1)), this._procEntryField(t4, "trun_number", "uint", 8 * (this.length_size_of_trun_num + 1)), this._procEntryField(t4, "sample_number", "uint", 8 * (this.length_size_of_sample_num + 1));
    });
  }, r2.prototype._boxProcessors.tkhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("track_ID", "uint", 32), this._procField("reserved1", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._procFieldArray("reserved2", 2, "uint", 32), this._procField("layer", "uint", 16), this._procField("alternate_group", "uint", 16), this._procField("volume", "template", 16), this._procField("reserved3", "uint", 16), this._procFieldArray("matrix", 9, "template", 32), this._procField("width", "template", 32), this._procField("height", "template", 32);
  }, r2.prototype._boxProcessors.trex = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), this._procField("default_sample_description_index", "uint", 32), this._procField("default_sample_duration", "uint", 32), this._procField("default_sample_size", "uint", 32), this._procField("default_sample_flags", "uint", 32);
  }, r2.prototype._boxProcessors.trun = function() {
    this._procFullBox(), this._procField("sample_count", "uint", 32), 1 & this.flags && this._procField("data_offset", "int", 32), 4 & this.flags && this._procField("first_sample_flags", "uint", 32), this._procEntries("samples", this.sample_count, function(t4) {
      256 & this.flags && this._procEntryField(t4, "sample_duration", "uint", 32), 512 & this.flags && this._procEntryField(t4, "sample_size", "uint", 32), 1024 & this.flags && this._procEntryField(t4, "sample_flags", "uint", 32), 2048 & this.flags && this._procEntryField(t4, "sample_composition_time_offset", 1 === this.version ? "int" : "uint", 32);
    });
  }, r2.prototype._boxProcessors["url "] = r2.prototype._boxProcessors["urn "] = function() {
    this._procFullBox(), "urn " === this.type && this._procField("name", "string", -1), this._procField("location", "string", -1);
  }, r2.prototype._boxProcessors.vlab = function() {
    this._procField("source_label", "utf8");
  }, r2.prototype._boxProcessors.vmhd = function() {
    this._procFullBox(), this._procField("graphicsmode", "uint", 16), this._procFieldArray("opcolor", 3, "uint", 16);
  }, r2.prototype._boxProcessors.vttC = function() {
    this._procField("config", "utf8");
  }, r2.prototype._boxProcessors.vtte = function() {
  };
}, 9826: function(t3) {
  var e2, n2 = "object" == typeof Reflect ? Reflect : null, a2 = n2 && "function" == typeof n2.apply ? n2.apply : function(t4, e3, n3) {
    return Function.prototype.apply.call(t4, e3, n3);
  };
  e2 = n2 && "function" == typeof n2.ownKeys ? n2.ownKeys : Object.getOwnPropertySymbols ? function(t4) {
    return Object.getOwnPropertyNames(t4).concat(Object.getOwnPropertySymbols(t4));
  } : function(t4) {
    return Object.getOwnPropertyNames(t4);
  };
  var r2 = Number.isNaN || function(t4) {
    return t4 != t4;
  };
  function i2() {
    i2.init.call(this);
  }
  t3.exports = i2, t3.exports.once = function(t4, e3) {
    return new Promise(function(n3, a3) {
      function r3(n4) {
        t4.removeListener(e3, i3), a3(n4);
      }
      function i3() {
        "function" == typeof t4.removeListener && t4.removeListener("error", r3), n3([].slice.call(arguments));
      }
      h2(t4, e3, i3, { once: true }), "error" !== e3 && function(t5, e4) {
        "function" == typeof t5.on && h2(t5, "error", e4, { once: true });
      }(t4, r3);
    });
  }, i2.EventEmitter = i2, i2.prototype._events = void 0, i2.prototype._eventsCount = 0, i2.prototype._maxListeners = void 0;
  var l2 = 10;
  function o2(t4) {
    if ("function" != typeof t4)
      throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t4);
  }
  function s2(t4) {
    return void 0 === t4._maxListeners ? i2.defaultMaxListeners : t4._maxListeners;
  }
  function u2(t4, e3, n3, a3) {
    var r3, i3, l3, u3;
    if (o2(n3), void 0 === (i3 = t4._events) ? (i3 = t4._events = /* @__PURE__ */ Object.create(null), t4._eventsCount = 0) : (void 0 !== i3.newListener && (t4.emit("newListener", e3, n3.listener ? n3.listener : n3), i3 = t4._events), l3 = i3[e3]), void 0 === l3)
      l3 = i3[e3] = n3, ++t4._eventsCount;
    else if ("function" == typeof l3 ? l3 = i3[e3] = a3 ? [n3, l3] : [l3, n3] : a3 ? l3.unshift(n3) : l3.push(n3), (r3 = s2(t4)) > 0 && l3.length > r3 && !l3.warned) {
      l3.warned = true;
      var d3 = new Error("Possible EventEmitter memory leak detected. " + l3.length + " " + String(e3) + " listeners added. Use emitter.setMaxListeners() to increase limit");
      d3.name = "MaxListenersExceededWarning", d3.emitter = t4, d3.type = e3, d3.count = l3.length, u3 = d3, console && console.warn && console.warn(u3);
    }
    return t4;
  }
  function d2() {
    if (!this.fired)
      return this.target.removeListener(this.type, this.wrapFn), this.fired = true, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
  }
  function c2(t4, e3, n3) {
    var a3 = { fired: false, wrapFn: void 0, target: t4, type: e3, listener: n3 }, r3 = d2.bind(a3);
    return r3.listener = n3, a3.wrapFn = r3, r3;
  }
  function f2(t4, e3, n3) {
    var a3 = t4._events;
    if (void 0 === a3)
      return [];
    var r3 = a3[e3];
    return void 0 === r3 ? [] : "function" == typeof r3 ? n3 ? [r3.listener || r3] : [r3] : n3 ? function(t5) {
      for (var e4 = new Array(t5.length), n4 = 0; n4 < e4.length; ++n4)
        e4[n4] = t5[n4].listener || t5[n4];
      return e4;
    }(r3) : m2(r3, r3.length);
  }
  function g2(t4) {
    var e3 = this._events;
    if (void 0 !== e3) {
      var n3 = e3[t4];
      if ("function" == typeof n3)
        return 1;
      if (void 0 !== n3)
        return n3.length;
    }
    return 0;
  }
  function m2(t4, e3) {
    for (var n3 = new Array(e3), a3 = 0; a3 < e3; ++a3)
      n3[a3] = t4[a3];
    return n3;
  }
  function h2(t4, e3, n3, a3) {
    if ("function" == typeof t4.on)
      a3.once ? t4.once(e3, n3) : t4.on(e3, n3);
    else {
      if ("function" != typeof t4.addEventListener)
        throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof t4);
      t4.addEventListener(e3, function r3(i3) {
        a3.once && t4.removeEventListener(e3, r3), n3(i3);
      });
    }
  }
  Object.defineProperty(i2, "defaultMaxListeners", { enumerable: true, get: function() {
    return l2;
  }, set: function(t4) {
    if ("number" != typeof t4 || t4 < 0 || r2(t4))
      throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + t4 + ".");
    l2 = t4;
  } }), i2.init = function() {
    void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
  }, i2.prototype.setMaxListeners = function(t4) {
    if ("number" != typeof t4 || t4 < 0 || r2(t4))
      throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + t4 + ".");
    return this._maxListeners = t4, this;
  }, i2.prototype.getMaxListeners = function() {
    return s2(this);
  }, i2.prototype.emit = function(t4) {
    for (var e3 = [], n3 = 1; n3 < arguments.length; n3++)
      e3.push(arguments[n3]);
    var r3 = "error" === t4, i3 = this._events;
    if (void 0 !== i3)
      r3 = r3 && void 0 === i3.error;
    else if (!r3)
      return false;
    if (r3) {
      var l3;
      if (e3.length > 0 && (l3 = e3[0]), l3 instanceof Error)
        throw l3;
      var o3 = new Error("Unhandled error." + (l3 ? " (" + l3.message + ")" : ""));
      throw o3.context = l3, o3;
    }
    var s3 = i3[t4];
    if (void 0 === s3)
      return false;
    if ("function" == typeof s3)
      a2(s3, this, e3);
    else {
      var u3 = s3.length, d3 = m2(s3, u3);
      for (n3 = 0; n3 < u3; ++n3)
        a2(d3[n3], this, e3);
    }
    return true;
  }, i2.prototype.addListener = function(t4, e3) {
    return u2(this, t4, e3, false);
  }, i2.prototype.on = i2.prototype.addListener, i2.prototype.prependListener = function(t4, e3) {
    return u2(this, t4, e3, true);
  }, i2.prototype.once = function(t4, e3) {
    return o2(e3), this.on(t4, c2(this, t4, e3)), this;
  }, i2.prototype.prependOnceListener = function(t4, e3) {
    return o2(e3), this.prependListener(t4, c2(this, t4, e3)), this;
  }, i2.prototype.removeListener = function(t4, e3) {
    var n3, a3, r3, i3, l3;
    if (o2(e3), void 0 === (a3 = this._events))
      return this;
    if (void 0 === (n3 = a3[t4]))
      return this;
    if (n3 === e3 || n3.listener === e3)
      0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : (delete a3[t4], a3.removeListener && this.emit("removeListener", t4, n3.listener || e3));
    else if ("function" != typeof n3) {
      for (r3 = -1, i3 = n3.length - 1; i3 >= 0; i3--)
        if (n3[i3] === e3 || n3[i3].listener === e3) {
          l3 = n3[i3].listener, r3 = i3;
          break;
        }
      if (r3 < 0)
        return this;
      0 === r3 ? n3.shift() : function(t5, e4) {
        for (; e4 + 1 < t5.length; e4++)
          t5[e4] = t5[e4 + 1];
        t5.pop();
      }(n3, r3), 1 === n3.length && (a3[t4] = n3[0]), void 0 !== a3.removeListener && this.emit("removeListener", t4, l3 || e3);
    }
    return this;
  }, i2.prototype.off = i2.prototype.removeListener, i2.prototype.removeAllListeners = function(t4) {
    var e3, n3, a3;
    if (void 0 === (n3 = this._events))
      return this;
    if (void 0 === n3.removeListener)
      return 0 === arguments.length ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : void 0 !== n3[t4] && (0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : delete n3[t4]), this;
    if (0 === arguments.length) {
      var r3, i3 = Object.keys(n3);
      for (a3 = 0; a3 < i3.length; ++a3)
        "removeListener" !== (r3 = i3[a3]) && this.removeAllListeners(r3);
      return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
    }
    if ("function" == typeof (e3 = n3[t4]))
      this.removeListener(t4, e3);
    else if (void 0 !== e3)
      for (a3 = e3.length - 1; a3 >= 0; a3--)
        this.removeListener(t4, e3[a3]);
    return this;
  }, i2.prototype.listeners = function(t4) {
    return f2(this, t4, true);
  }, i2.prototype.rawListeners = function(t4) {
    return f2(this, t4, false);
  }, i2.listenerCount = function(t4, e3) {
    return "function" == typeof t4.listenerCount ? t4.listenerCount(e3) : g2.call(t4, e3);
  }, i2.prototype.listenerCount = g2, i2.prototype.eventNames = function() {
    return this._eventsCount > 0 ? e2(this._events) : [];
  };
}, 7316: function(t3) {
  t3.exports = function t4(e2, n2) {
    if (e2 === n2)
      return true;
    if (e2 && n2 && "object" == typeof e2 && "object" == typeof n2) {
      if (e2.constructor !== n2.constructor)
        return false;
      var a2, r2, i2;
      if (Array.isArray(e2)) {
        if ((a2 = e2.length) != n2.length)
          return false;
        for (r2 = a2; 0 != r2--; )
          if (!t4(e2[r2], n2[r2]))
            return false;
        return true;
      }
      if (e2.constructor === RegExp)
        return e2.source === n2.source && e2.flags === n2.flags;
      if (e2.valueOf !== Object.prototype.valueOf)
        return e2.valueOf() === n2.valueOf();
      if (e2.toString !== Object.prototype.toString)
        return e2.toString() === n2.toString();
      if ((a2 = (i2 = Object.keys(e2)).length) !== Object.keys(n2).length)
        return false;
      for (r2 = a2; 0 != r2--; )
        if (!Object.prototype.hasOwnProperty.call(n2, i2[r2]))
          return false;
      for (r2 = a2; 0 != r2--; ) {
        var l2 = i2[r2];
        if (!t4(e2[l2], n2[l2]))
          return false;
      }
      return true;
    }
    return e2 != e2 && n2 != n2;
  };
}, 7986: function(t3, e2) {
  e2.read = function(t4, e3, n2, a2, r2) {
    var i2, l2, o2 = 8 * r2 - a2 - 1, s2 = (1 << o2) - 1, u2 = s2 >> 1, d2 = -7, c2 = n2 ? r2 - 1 : 0, f2 = n2 ? -1 : 1, g2 = t4[e3 + c2];
    for (c2 += f2, i2 = g2 & (1 << -d2) - 1, g2 >>= -d2, d2 += o2; d2 > 0; i2 = 256 * i2 + t4[e3 + c2], c2 += f2, d2 -= 8)
      ;
    for (l2 = i2 & (1 << -d2) - 1, i2 >>= -d2, d2 += a2; d2 > 0; l2 = 256 * l2 + t4[e3 + c2], c2 += f2, d2 -= 8)
      ;
    if (0 === i2)
      i2 = 1 - u2;
    else {
      if (i2 === s2)
        return l2 ? NaN : 1 / 0 * (g2 ? -1 : 1);
      l2 += Math.pow(2, a2), i2 -= u2;
    }
    return (g2 ? -1 : 1) * l2 * Math.pow(2, i2 - a2);
  }, e2.write = function(t4, e3, n2, a2, r2, i2) {
    var l2, o2, s2, u2 = 8 * i2 - r2 - 1, d2 = (1 << u2) - 1, c2 = d2 >> 1, f2 = 23 === r2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, g2 = a2 ? 0 : i2 - 1, m2 = a2 ? 1 : -1, h2 = e3 < 0 || 0 === e3 && 1 / e3 < 0 ? 1 : 0;
    for (e3 = Math.abs(e3), isNaN(e3) || e3 === 1 / 0 ? (o2 = isNaN(e3) ? 1 : 0, l2 = d2) : (l2 = Math.floor(Math.log(e3) / Math.LN2), e3 * (s2 = Math.pow(2, -l2)) < 1 && (l2--, s2 *= 2), (e3 += l2 + c2 >= 1 ? f2 / s2 : f2 * Math.pow(2, 1 - c2)) * s2 >= 2 && (l2++, s2 /= 2), l2 + c2 >= d2 ? (o2 = 0, l2 = d2) : l2 + c2 >= 1 ? (o2 = (e3 * s2 - 1) * Math.pow(2, r2), l2 += c2) : (o2 = e3 * Math.pow(2, c2 - 1) * Math.pow(2, r2), l2 = 0)); r2 >= 8; t4[n2 + g2] = 255 & o2, g2 += m2, o2 /= 256, r2 -= 8)
      ;
    for (l2 = l2 << r2 | o2, u2 += r2; u2 > 0; t4[n2 + g2] = 255 & l2, g2 += m2, l2 /= 256, u2 -= 8)
      ;
    t4[n2 + g2 - m2] |= 128 * h2;
  };
}, 5474: function(t3, e2, n2) {
  !function(t4) {
    t4.parser = function(t5, e4) {
      return new r2(t5, e4);
    }, t4.SAXParser = r2, t4.SAXStream = l2, t4.createStream = function(t5, e4) {
      return new l2(t5, e4);
    }, t4.MAX_BUFFER_LENGTH = 65536;
    var e3, a2 = ["comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script"];
    function r2(e4, n3) {
      if (!(this instanceof r2))
        return new r2(e4, n3);
      var i3 = this;
      !function(t5) {
        for (var e5 = 0, n4 = a2.length; e5 < n4; e5++)
          t5[a2[e5]] = "";
      }(i3), i3.q = i3.c = "", i3.bufferCheckPosition = t4.MAX_BUFFER_LENGTH, i3.opt = n3 || {}, i3.opt.lowercase = i3.opt.lowercase || i3.opt.lowercasetags, i3.looseCase = i3.opt.lowercase ? "toLowerCase" : "toUpperCase", i3.tags = [], i3.closed = i3.closedRoot = i3.sawRoot = false, i3.tag = i3.error = null, i3.strict = !!e4, i3.noscript = !(!e4 && !i3.opt.noscript), i3.state = A.BEGIN, i3.strictEntities = i3.opt.strictEntities, i3.ENTITIES = i3.strictEntities ? Object.create(t4.XML_ENTITIES) : Object.create(t4.ENTITIES), i3.attribList = [], i3.opt.xmlns && (i3.ns = Object.create(p2)), i3.trackPosition = false !== i3.opt.position, i3.trackPosition && (i3.position = i3.line = i3.column = 0), N(i3, "onready");
    }
    t4.EVENTS = ["text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "opentagstart", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace"], Object.create || (Object.create = function(t5) {
      function e4() {
      }
      return e4.prototype = t5, new e4();
    }), Object.keys || (Object.keys = function(t5) {
      var e4 = [];
      for (var n3 in t5)
        t5.hasOwnProperty(n3) && e4.push(n3);
      return e4;
    }), r2.prototype = { end: function() {
      P(this);
    }, write: function(e4) {
      var n3 = this;
      if (this.error)
        throw this.error;
      if (n3.closed)
        return M(n3, "Cannot write after close. Assign an onready handler.");
      if (null === e4)
        return P(n3);
      "object" == typeof e4 && (e4 = e4.toString());
      for (var r3 = 0, i3 = ""; i3 = G(e4, r3++), n3.c = i3, i3; )
        switch (n3.trackPosition && (n3.position++, "\n" === i3 ? (n3.line++, n3.column = 0) : n3.column++), n3.state) {
          case A.BEGIN:
            if (n3.state = A.BEGIN_WHITESPACE, "\uFEFF" === i3)
              continue;
            B(n3, i3);
            continue;
          case A.BEGIN_WHITESPACE:
            B(n3, i3);
            continue;
          case A.TEXT:
            if (n3.sawRoot && !n3.closedRoot) {
              for (var l3 = r3 - 1; i3 && "<" !== i3 && "&" !== i3; )
                (i3 = G(e4, r3++)) && n3.trackPosition && (n3.position++, "\n" === i3 ? (n3.line++, n3.column = 0) : n3.column++);
              n3.textNode += e4.substring(l3, r3 - 1);
            }
            "<" !== i3 || n3.sawRoot && n3.closedRoot && !n3.strict ? (!S2(o2, i3) || n3.sawRoot && !n3.closedRoot || O(n3, "Text data outside of root node."), "&" === i3 ? n3.state = A.TEXT_ENTITY : n3.textNode += i3) : (n3.state = A.OPEN_WAKA, n3.startTagPosition = n3.position);
            continue;
          case A.SCRIPT:
            "<" === i3 ? n3.state = A.SCRIPT_ENDING : n3.script += i3;
            continue;
          case A.SCRIPT_ENDING:
            "/" === i3 ? n3.state = A.CLOSE_TAG : (n3.script += "<" + i3, n3.state = A.SCRIPT);
            continue;
          case A.OPEN_WAKA:
            if ("!" === i3)
              n3.state = A.SGML_DECL, n3.sgmlDecl = "";
            else if (v2(o2, i3))
              ;
            else if (v2(b2, i3))
              n3.state = A.OPEN_TAG, n3.tagName = i3;
            else if ("/" === i3)
              n3.state = A.CLOSE_TAG, n3.tagName = "";
            else if ("?" === i3)
              n3.state = A.PROC_INST, n3.procInstName = n3.procInstBody = "";
            else {
              if (O(n3, "Unencoded <"), n3.startTagPosition + 1 < n3.position) {
                var s3 = n3.position - n3.startTagPosition;
                i3 = new Array(s3).join(" ") + i3;
              }
              n3.textNode += "<" + i3, n3.state = A.TEXT;
            }
            continue;
          case A.SGML_DECL:
            (n3.sgmlDecl + i3).toUpperCase() === f2 ? (C(n3, "onopencdata"), n3.state = A.CDATA, n3.sgmlDecl = "", n3.cdata = "") : n3.sgmlDecl + i3 === "--" ? (n3.state = A.COMMENT, n3.comment = "", n3.sgmlDecl = "") : (n3.sgmlDecl + i3).toUpperCase() === g2 ? (n3.state = A.DOCTYPE, (n3.doctype || n3.sawRoot) && O(n3, "Inappropriately located doctype declaration"), n3.doctype = "", n3.sgmlDecl = "") : ">" === i3 ? (C(n3, "onsgmldeclaration", n3.sgmlDecl), n3.sgmlDecl = "", n3.state = A.TEXT) : v2(d2, i3) ? (n3.state = A.SGML_DECL_QUOTED, n3.sgmlDecl += i3) : n3.sgmlDecl += i3;
            continue;
          case A.SGML_DECL_QUOTED:
            i3 === n3.q && (n3.state = A.SGML_DECL, n3.q = ""), n3.sgmlDecl += i3;
            continue;
          case A.DOCTYPE:
            ">" === i3 ? (n3.state = A.TEXT, C(n3, "ondoctype", n3.doctype), n3.doctype = true) : (n3.doctype += i3, "[" === i3 ? n3.state = A.DOCTYPE_DTD : v2(d2, i3) && (n3.state = A.DOCTYPE_QUOTED, n3.q = i3));
            continue;
          case A.DOCTYPE_QUOTED:
            n3.doctype += i3, i3 === n3.q && (n3.q = "", n3.state = A.DOCTYPE);
            continue;
          case A.DOCTYPE_DTD:
            n3.doctype += i3, "]" === i3 ? n3.state = A.DOCTYPE : v2(d2, i3) && (n3.state = A.DOCTYPE_DTD_QUOTED, n3.q = i3);
            continue;
          case A.DOCTYPE_DTD_QUOTED:
            n3.doctype += i3, i3 === n3.q && (n3.state = A.DOCTYPE_DTD, n3.q = "");
            continue;
          case A.COMMENT:
            "-" === i3 ? n3.state = A.COMMENT_ENDING : n3.comment += i3;
            continue;
          case A.COMMENT_ENDING:
            "-" === i3 ? (n3.state = A.COMMENT_ENDED, n3.comment = x(n3.opt, n3.comment), n3.comment && C(n3, "oncomment", n3.comment), n3.comment = "") : (n3.comment += "-" + i3, n3.state = A.COMMENT);
            continue;
          case A.COMMENT_ENDED:
            ">" !== i3 ? (O(n3, "Malformed comment"), n3.comment += "--" + i3, n3.state = A.COMMENT) : n3.state = A.TEXT;
            continue;
          case A.CDATA:
            "]" === i3 ? n3.state = A.CDATA_ENDING : n3.cdata += i3;
            continue;
          case A.CDATA_ENDING:
            "]" === i3 ? n3.state = A.CDATA_ENDING_2 : (n3.cdata += "]" + i3, n3.state = A.CDATA);
            continue;
          case A.CDATA_ENDING_2:
            ">" === i3 ? (n3.cdata && C(n3, "oncdata", n3.cdata), C(n3, "onclosecdata"), n3.cdata = "", n3.state = A.TEXT) : "]" === i3 ? n3.cdata += "]" : (n3.cdata += "]]" + i3, n3.state = A.CDATA);
            continue;
          case A.PROC_INST:
            "?" === i3 ? n3.state = A.PROC_INST_ENDING : v2(o2, i3) ? n3.state = A.PROC_INST_BODY : n3.procInstName += i3;
            continue;
          case A.PROC_INST_BODY:
            if (!n3.procInstBody && v2(o2, i3))
              continue;
            "?" === i3 ? n3.state = A.PROC_INST_ENDING : n3.procInstBody += i3;
            continue;
          case A.PROC_INST_ENDING:
            ">" === i3 ? (C(n3, "onprocessinginstruction", { name: n3.procInstName, body: n3.procInstBody }), n3.procInstName = n3.procInstBody = "", n3.state = A.TEXT) : (n3.procInstBody += "?" + i3, n3.state = A.PROC_INST_BODY);
            continue;
          case A.OPEN_TAG:
            v2(y2, i3) ? n3.tagName += i3 : (z(n3), ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : (S2(o2, i3) && O(n3, "Invalid character in tag name"), n3.state = A.ATTRIB));
            continue;
          case A.OPEN_TAG_SLASH:
            ">" === i3 ? (U(n3, true), j(n3)) : (O(n3, "Forward-slash in opening tag not followed by >"), n3.state = A.ATTRIB);
            continue;
          case A.ATTRIB:
            if (v2(o2, i3))
              continue;
            ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : v2(b2, i3) ? (n3.attribName = i3, n3.attribValue = "", n3.state = A.ATTRIB_NAME) : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_NAME:
            "=" === i3 ? n3.state = A.ATTRIB_VALUE : ">" === i3 ? (O(n3, "Attribute without value"), n3.attribValue = n3.attribName, F(n3), U(n3)) : v2(o2, i3) ? n3.state = A.ATTRIB_NAME_SAW_WHITE : v2(y2, i3) ? n3.attribName += i3 : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_NAME_SAW_WHITE:
            if ("=" === i3)
              n3.state = A.ATTRIB_VALUE;
            else {
              if (v2(o2, i3))
                continue;
              O(n3, "Attribute without value"), n3.tag.attributes[n3.attribName] = "", n3.attribValue = "", C(n3, "onattribute", { name: n3.attribName, value: "" }), n3.attribName = "", ">" === i3 ? U(n3) : v2(b2, i3) ? (n3.attribName = i3, n3.state = A.ATTRIB_NAME) : (O(n3, "Invalid attribute name"), n3.state = A.ATTRIB);
            }
            continue;
          case A.ATTRIB_VALUE:
            if (v2(o2, i3))
              continue;
            v2(d2, i3) ? (n3.q = i3, n3.state = A.ATTRIB_VALUE_QUOTED) : (O(n3, "Unquoted attribute value"), n3.state = A.ATTRIB_VALUE_UNQUOTED, n3.attribValue = i3);
            continue;
          case A.ATTRIB_VALUE_QUOTED:
            if (i3 !== n3.q) {
              "&" === i3 ? n3.state = A.ATTRIB_VALUE_ENTITY_Q : n3.attribValue += i3;
              continue;
            }
            F(n3), n3.q = "", n3.state = A.ATTRIB_VALUE_CLOSED;
            continue;
          case A.ATTRIB_VALUE_CLOSED:
            v2(o2, i3) ? n3.state = A.ATTRIB : ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : v2(b2, i3) ? (O(n3, "No whitespace between attributes"), n3.attribName = i3, n3.attribValue = "", n3.state = A.ATTRIB_NAME) : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_VALUE_UNQUOTED:
            if (S2(c2, i3)) {
              "&" === i3 ? n3.state = A.ATTRIB_VALUE_ENTITY_U : n3.attribValue += i3;
              continue;
            }
            F(n3), ">" === i3 ? U(n3) : n3.state = A.ATTRIB;
            continue;
          case A.CLOSE_TAG:
            if (n3.tagName)
              ">" === i3 ? j(n3) : v2(y2, i3) ? n3.tagName += i3 : n3.script ? (n3.script += "</" + n3.tagName, n3.tagName = "", n3.state = A.SCRIPT) : (S2(o2, i3) && O(n3, "Invalid tagname in closing tag"), n3.state = A.CLOSE_TAG_SAW_WHITE);
            else {
              if (v2(o2, i3))
                continue;
              S2(b2, i3) ? n3.script ? (n3.script += "</" + i3, n3.state = A.SCRIPT) : O(n3, "Invalid tagname in closing tag.") : n3.tagName = i3;
            }
            continue;
          case A.CLOSE_TAG_SAW_WHITE:
            if (v2(o2, i3))
              continue;
            ">" === i3 ? j(n3) : O(n3, "Invalid characters in closing tag");
            continue;
          case A.TEXT_ENTITY:
          case A.ATTRIB_VALUE_ENTITY_Q:
          case A.ATTRIB_VALUE_ENTITY_U:
            var u3, m3;
            switch (n3.state) {
              case A.TEXT_ENTITY:
                u3 = A.TEXT, m3 = "textNode";
                break;
              case A.ATTRIB_VALUE_ENTITY_Q:
                u3 = A.ATTRIB_VALUE_QUOTED, m3 = "attribValue";
                break;
              case A.ATTRIB_VALUE_ENTITY_U:
                u3 = A.ATTRIB_VALUE_UNQUOTED, m3 = "attribValue";
            }
            ";" === i3 ? (n3[m3] += q(n3), n3.entity = "", n3.state = u3) : v2(n3.entity.length ? T2 : E2, i3) ? n3.entity += i3 : (O(n3, "Invalid character in entity name"), n3[m3] += "&" + n3.entity + i3, n3.entity = "", n3.state = u3);
            continue;
          default:
            throw new Error(n3, "Unknown state: " + n3.state);
        }
      return n3.position >= n3.bufferCheckPosition && function(e5) {
        for (var n4 = Math.max(t4.MAX_BUFFER_LENGTH, 10), r4 = 0, i4 = 0, l4 = a2.length; i4 < l4; i4++) {
          var o3 = e5[a2[i4]].length;
          if (o3 > n4)
            switch (a2[i4]) {
              case "textNode":
                D(e5);
                break;
              case "cdata":
                C(e5, "oncdata", e5.cdata), e5.cdata = "";
                break;
              case "script":
                C(e5, "onscript", e5.script), e5.script = "";
                break;
              default:
                M(e5, "Max buffer length exceeded: " + a2[i4]);
            }
          r4 = Math.max(r4, o3);
        }
        var s4 = t4.MAX_BUFFER_LENGTH - r4;
        e5.bufferCheckPosition = s4 + e5.position;
      }(n3), n3;
    }, resume: function() {
      return this.error = null, this;
    }, close: function() {
      return this.write(null);
    }, flush: function() {
      var t5;
      D(t5 = this), "" !== t5.cdata && (C(t5, "oncdata", t5.cdata), t5.cdata = ""), "" !== t5.script && (C(t5, "onscript", t5.script), t5.script = "");
    } };
    try {
      e3 = n2(3515).Stream;
    } catch (t5) {
      e3 = function() {
      };
    }
    var i2 = t4.EVENTS.filter(function(t5) {
      return "error" !== t5 && "end" !== t5;
    });
    function l2(t5, n3) {
      if (!(this instanceof l2))
        return new l2(t5, n3);
      e3.apply(this), this._parser = new r2(t5, n3), this.writable = true, this.readable = true;
      var a3 = this;
      this._parser.onend = function() {
        a3.emit("end");
      }, this._parser.onerror = function(t6) {
        a3.emit("error", t6), a3._parser.error = null;
      }, this._decoder = null, i2.forEach(function(t6) {
        Object.defineProperty(a3, "on" + t6, { get: function() {
          return a3._parser["on" + t6];
        }, set: function(e4) {
          if (!e4)
            return a3.removeAllListeners(t6), a3._parser["on" + t6] = e4, e4;
          a3.on(t6, e4);
        }, enumerable: true, configurable: false });
      });
    }
    l2.prototype = Object.create(e3.prototype, { constructor: { value: l2 } }), l2.prototype.write = function(t5) {
      if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(t5)) {
        if (!this._decoder) {
          var e4 = n2(748).StringDecoder;
          this._decoder = new e4("utf8");
        }
        t5 = this._decoder.write(t5);
      }
      return this._parser.write(t5.toString()), this.emit("data", t5), true;
    }, l2.prototype.end = function(t5) {
      return t5 && t5.length && this.write(t5), this._parser.end(), true;
    }, l2.prototype.on = function(t5, n3) {
      var a3 = this;
      return a3._parser["on" + t5] || -1 === i2.indexOf(t5) || (a3._parser["on" + t5] = function() {
        var e4 = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments);
        e4.splice(0, 0, t5), a3.emit.apply(a3, e4);
      }), e3.prototype.on.call(a3, t5, n3);
    };
    var o2 = "\r\n	 ", s2 = "0124356789", u2 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", d2 = `'"`, c2 = o2 + ">", f2 = "[CDATA[", g2 = "DOCTYPE", m2 = "http://www.w3.org/XML/1998/namespace", h2 = "http://www.w3.org/2000/xmlns/", p2 = { xml: m2, xmlns: h2 };
    o2 = _2(o2), s2 = _2(s2), u2 = _2(u2);
    var b2 = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, y2 = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/, E2 = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, T2 = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/;
    function _2(t5) {
      return t5.split("").reduce(function(t6, e4) {
        return t6[e4] = true, t6;
      }, {});
    }
    function v2(t5, e4) {
      return function(t6) {
        return "[object RegExp]" === Object.prototype.toString.call(t6);
      }(t5) ? !!e4.match(t5) : t5[e4];
    }
    function S2(t5, e4) {
      return !v2(t5, e4);
    }
    d2 = _2(d2), c2 = _2(c2);
    var w2, I2, k2, A = 0;
    for (var R in t4.STATE = { BEGIN: A++, BEGIN_WHITESPACE: A++, TEXT: A++, TEXT_ENTITY: A++, OPEN_WAKA: A++, SGML_DECL: A++, SGML_DECL_QUOTED: A++, DOCTYPE: A++, DOCTYPE_QUOTED: A++, DOCTYPE_DTD: A++, DOCTYPE_DTD_QUOTED: A++, COMMENT_STARTING: A++, COMMENT: A++, COMMENT_ENDING: A++, COMMENT_ENDED: A++, CDATA: A++, CDATA_ENDING: A++, CDATA_ENDING_2: A++, PROC_INST: A++, PROC_INST_BODY: A++, PROC_INST_ENDING: A++, OPEN_TAG: A++, OPEN_TAG_SLASH: A++, ATTRIB: A++, ATTRIB_NAME: A++, ATTRIB_NAME_SAW_WHITE: A++, ATTRIB_VALUE: A++, ATTRIB_VALUE_QUOTED: A++, ATTRIB_VALUE_CLOSED: A++, ATTRIB_VALUE_UNQUOTED: A++, ATTRIB_VALUE_ENTITY_Q: A++, ATTRIB_VALUE_ENTITY_U: A++, CLOSE_TAG: A++, CLOSE_TAG_SAW_WHITE: A++, SCRIPT: A++, SCRIPT_ENDING: A++ }, t4.XML_ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'" }, t4.ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'", AElig: 198, Aacute: 193, Acirc: 194, Agrave: 192, Aring: 197, Atilde: 195, Auml: 196, Ccedil: 199, ETH: 208, Eacute: 201, Ecirc: 202, Egrave: 200, Euml: 203, Iacute: 205, Icirc: 206, Igrave: 204, Iuml: 207, Ntilde: 209, Oacute: 211, Ocirc: 212, Ograve: 210, Oslash: 216, Otilde: 213, Ouml: 214, THORN: 222, Uacute: 218, Ucirc: 219, Ugrave: 217, Uuml: 220, Yacute: 221, aacute: 225, acirc: 226, aelig: 230, agrave: 224, aring: 229, atilde: 227, auml: 228, ccedil: 231, eacute: 233, ecirc: 234, egrave: 232, eth: 240, euml: 235, iacute: 237, icirc: 238, igrave: 236, iuml: 239, ntilde: 241, oacute: 243, ocirc: 244, ograve: 242, oslash: 248, otilde: 245, ouml: 246, szlig: 223, thorn: 254, uacute: 250, ucirc: 251, ugrave: 249, uuml: 252, yacute: 253, yuml: 255, copy: 169, reg: 174, nbsp: 160, iexcl: 161, cent: 162, pound: 163, curren: 164, yen: 165, brvbar: 166, sect: 167, uml: 168, ordf: 170, laquo: 171, not: 172, shy: 173, macr: 175, deg: 176, plusmn: 177, sup1: 185, sup2: 178, sup3: 179, acute: 180, micro: 181, para: 182, middot: 183, cedil: 184, ordm: 186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, times: 215, divide: 247, OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml: 376, fnof: 402, circ: 710, tilde: 732, Alpha: 913, Beta: 914, Gamma: 915, Delta: 916, Epsilon: 917, Zeta: 918, Eta: 919, Theta: 920, Iota: 921, Kappa: 922, Lambda: 923, Mu: 924, Nu: 925, Xi: 926, Omicron: 927, Pi: 928, Rho: 929, Sigma: 931, Tau: 932, Upsilon: 933, Phi: 934, Chi: 935, Psi: 936, Omega: 937, alpha: 945, beta: 946, gamma: 947, delta: 948, epsilon: 949, zeta: 950, eta: 951, theta: 952, iota: 953, kappa: 954, lambda: 955, mu: 956, nu: 957, xi: 958, omicron: 959, pi: 960, rho: 961, sigmaf: 962, sigma: 963, tau: 964, upsilon: 965, phi: 966, chi: 967, psi: 968, omega: 969, thetasym: 977, upsih: 978, piv: 982, ensp: 8194, emsp: 8195, thinsp: 8201, zwnj: 8204, zwj: 8205, lrm: 8206, rlm: 8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, bull: 8226, hellip: 8230, permil: 8240, prime: 8242, Prime: 8243, lsaquo: 8249, rsaquo: 8250, oline: 8254, frasl: 8260, euro: 8364, image: 8465, weierp: 8472, real: 8476, trade: 8482, alefsym: 8501, larr: 8592, uarr: 8593, rarr: 8594, darr: 8595, harr: 8596, crarr: 8629, lArr: 8656, uArr: 8657, rArr: 8658, dArr: 8659, hArr: 8660, forall: 8704, part: 8706, exist: 8707, empty: 8709, nabla: 8711, isin: 8712, notin: 8713, ni: 8715, prod: 8719, sum: 8721, minus: 8722, lowast: 8727, radic: 8730, prop: 8733, infin: 8734, ang: 8736, and: 8743, or: 8744, cap: 8745, cup: 8746, int: 8747, there4: 8756, sim: 8764, cong: 8773, asymp: 8776, ne: 8800, equiv: 8801, le: 8804, ge: 8805, sub: 8834, sup: 8835, nsub: 8836, sube: 8838, supe: 8839, oplus: 8853, otimes: 8855, perp: 8869, sdot: 8901, lceil: 8968, rceil: 8969, lfloor: 8970, rfloor: 8971, lang: 9001, rang: 9002, loz: 9674, spades: 9824, clubs: 9827, hearts: 9829, diams: 9830 }, Object.keys(t4.ENTITIES).forEach(function(e4) {
      var n3 = t4.ENTITIES[e4], a3 = "number" == typeof n3 ? String.fromCharCode(n3) : n3;
      t4.ENTITIES[e4] = a3;
    }), t4.STATE)
      t4.STATE[t4.STATE[R]] = R;
    function N(t5, e4, n3) {
      t5[e4] && t5[e4](n3);
    }
    function C(t5, e4, n3) {
      t5.textNode && D(t5), N(t5, e4, n3);
    }
    function D(t5) {
      t5.textNode = x(t5.opt, t5.textNode), t5.textNode && N(t5, "ontext", t5.textNode), t5.textNode = "";
    }
    function x(t5, e4) {
      return t5.trim && (e4 = e4.trim()), t5.normalize && (e4 = e4.replace(/\s+/g, " ")), e4;
    }
    function M(t5, e4) {
      return D(t5), t5.trackPosition && (e4 += "\nLine: " + t5.line + "\nColumn: " + t5.column + "\nChar: " + t5.c), e4 = new Error(e4), t5.error = e4, N(t5, "onerror", e4), t5;
    }
    function P(t5) {
      return t5.sawRoot && !t5.closedRoot && O(t5, "Unclosed root tag"), t5.state !== A.BEGIN && t5.state !== A.BEGIN_WHITESPACE && t5.state !== A.TEXT && M(t5, "Unexpected end"), D(t5), t5.c = "", t5.closed = true, N(t5, "onend"), r2.call(t5, t5.strict, t5.opt), t5;
    }
    function O(t5, e4) {
      if ("object" != typeof t5 || !(t5 instanceof r2))
        throw new Error("bad call to strictFail");
      t5.strict && M(t5, e4);
    }
    function z(t5) {
      t5.strict || (t5.tagName = t5.tagName[t5.looseCase]());
      var e4 = t5.tags[t5.tags.length - 1] || t5, n3 = t5.tag = { name: t5.tagName, attributes: {} };
      t5.opt.xmlns && (n3.ns = e4.ns), t5.attribList.length = 0, C(t5, "onopentagstart", n3);
    }
    function L(t5, e4) {
      var n3 = t5.indexOf(":") < 0 ? ["", t5] : t5.split(":"), a3 = n3[0], r3 = n3[1];
      return e4 && "xmlns" === t5 && (a3 = "xmlns", r3 = ""), { prefix: a3, local: r3 };
    }
    function F(t5) {
      if (t5.strict || (t5.attribName = t5.attribName[t5.looseCase]()), -1 !== t5.attribList.indexOf(t5.attribName) || t5.tag.attributes.hasOwnProperty(t5.attribName))
        t5.attribName = t5.attribValue = "";
      else {
        if (t5.opt.xmlns) {
          var e4 = L(t5.attribName, true), n3 = e4.prefix, a3 = e4.local;
          if ("xmlns" === n3)
            if ("xml" === a3 && t5.attribValue !== m2)
              O(t5, "xml: prefix must be bound to " + m2 + "\nActual: " + t5.attribValue);
            else if ("xmlns" === a3 && t5.attribValue !== h2)
              O(t5, "xmlns: prefix must be bound to " + h2 + "\nActual: " + t5.attribValue);
            else {
              var r3 = t5.tag, i3 = t5.tags[t5.tags.length - 1] || t5;
              r3.ns === i3.ns && (r3.ns = Object.create(i3.ns)), r3.ns[a3] = t5.attribValue;
            }
          t5.attribList.push([t5.attribName, t5.attribValue]);
        } else
          t5.tag.attributes[t5.attribName] = t5.attribValue, C(t5, "onattribute", { name: t5.attribName, value: t5.attribValue });
        t5.attribName = t5.attribValue = "";
      }
    }
    function U(t5, e4) {
      if (t5.opt.xmlns) {
        var n3 = t5.tag, a3 = L(t5.tagName);
        n3.prefix = a3.prefix, n3.local = a3.local, n3.uri = n3.ns[a3.prefix] || "", n3.prefix && !n3.uri && (O(t5, "Unbound namespace prefix: " + JSON.stringify(t5.tagName)), n3.uri = a3.prefix);
        var r3 = t5.tags[t5.tags.length - 1] || t5;
        n3.ns && r3.ns !== n3.ns && Object.keys(n3.ns).forEach(function(e5) {
          C(t5, "onopennamespace", { prefix: e5, uri: n3.ns[e5] });
        });
        for (var i3 = 0, l3 = t5.attribList.length; i3 < l3; i3++) {
          var o3 = t5.attribList[i3], s3 = o3[0], u3 = o3[1], d3 = L(s3, true), c3 = d3.prefix, f3 = d3.local, g3 = "" === c3 ? "" : n3.ns[c3] || "", m3 = { name: s3, value: u3, prefix: c3, local: f3, uri: g3 };
          c3 && "xmlns" !== c3 && !g3 && (O(t5, "Unbound namespace prefix: " + JSON.stringify(c3)), m3.uri = c3), t5.tag.attributes[s3] = m3, C(t5, "onattribute", m3);
        }
        t5.attribList.length = 0;
      }
      t5.tag.isSelfClosing = !!e4, t5.sawRoot = true, t5.tags.push(t5.tag), C(t5, "onopentag", t5.tag), e4 || (t5.noscript || "script" !== t5.tagName.toLowerCase() ? t5.state = A.TEXT : t5.state = A.SCRIPT, t5.tag = null, t5.tagName = ""), t5.attribName = t5.attribValue = "", t5.attribList.length = 0;
    }
    function j(t5) {
      if (!t5.tagName)
        return O(t5, "Weird empty close tag."), t5.textNode += "</>", void (t5.state = A.TEXT);
      if (t5.script) {
        if ("script" !== t5.tagName)
          return t5.script += "</" + t5.tagName + ">", t5.tagName = "", void (t5.state = A.SCRIPT);
        C(t5, "onscript", t5.script), t5.script = "";
      }
      var e4 = t5.tags.length, n3 = t5.tagName;
      t5.strict || (n3 = n3[t5.looseCase]());
      for (var a3 = n3; e4-- && t5.tags[e4].name !== a3; )
        O(t5, "Unexpected close tag");
      if (e4 < 0)
        return O(t5, "Unmatched closing tag: " + t5.tagName), t5.textNode += "</" + t5.tagName + ">", void (t5.state = A.TEXT);
      t5.tagName = n3;
      for (var r3 = t5.tags.length; r3-- > e4; ) {
        var i3 = t5.tag = t5.tags.pop();
        t5.tagName = t5.tag.name, C(t5, "onclosetag", t5.tagName);
        var l3 = {};
        for (var o3 in i3.ns)
          l3[o3] = i3.ns[o3];
        var s3 = t5.tags[t5.tags.length - 1] || t5;
        t5.opt.xmlns && i3.ns !== s3.ns && Object.keys(i3.ns).forEach(function(e5) {
          var n4 = i3.ns[e5];
          C(t5, "onclosenamespace", { prefix: e5, uri: n4 });
        });
      }
      0 === e4 && (t5.closedRoot = true), t5.tagName = t5.attribValue = t5.attribName = "", t5.attribList.length = 0, t5.state = A.TEXT;
    }
    function q(t5) {
      var e4, n3 = t5.entity, a3 = n3.toLowerCase(), r3 = "";
      return t5.ENTITIES[n3] ? t5.ENTITIES[n3] : t5.ENTITIES[a3] ? t5.ENTITIES[a3] : ("#" === (n3 = a3).charAt(0) && ("x" === n3.charAt(1) ? (n3 = n3.slice(2), r3 = (e4 = parseInt(n3, 16)).toString(16)) : (n3 = n3.slice(1), r3 = (e4 = parseInt(n3, 10)).toString(10))), n3 = n3.replace(/^0+/, ""), r3.toLowerCase() !== n3 ? (O(t5, "Invalid character entity"), "&" + t5.entity + ";") : String.fromCodePoint(e4));
    }
    function B(t5, e4) {
      "<" === e4 ? (t5.state = A.OPEN_WAKA, t5.startTagPosition = t5.position) : S2(o2, e4) && (O(t5, "Non-whitespace before first tag."), t5.textNode = e4, t5.state = A.TEXT);
    }
    function G(t5, e4) {
      var n3 = "";
      return e4 < t5.length && (n3 = t5.charAt(e4)), n3;
    }
    A = t4.STATE, String.fromCodePoint || (w2 = String.fromCharCode, I2 = Math.floor, k2 = function() {
      var t5, e4, n3 = [], a3 = -1, r3 = arguments.length;
      if (!r3)
        return "";
      for (var i3 = ""; ++a3 < r3; ) {
        var l3 = Number(arguments[a3]);
        if (!isFinite(l3) || l3 < 0 || l3 > 1114111 || I2(l3) !== l3)
          throw RangeError("Invalid code point: " + l3);
        l3 <= 65535 ? n3.push(l3) : (t5 = 55296 + ((l3 -= 65536) >> 10), e4 = l3 % 1024 + 56320, n3.push(t5, e4)), (a3 + 1 === r3 || n3.length > 16384) && (i3 += w2.apply(null, n3), n3.length = 0);
      }
      return i3;
    }, Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { value: k2, configurable: true, writable: true }) : String.fromCodePoint = k2);
  }(e2);
}, 6739: function(t3, e2, n2) {
  !function(t4, e3, n3, a2, r2) {
    function i2(t5) {
      if ("contents" in t5)
        for (var e4 = ("styleAttrs" in t5) ? t5.styleAttrs[a2.byName.ruby.qname] : null, n4 = "span" === t5.kind && ("container" === e4 || "textContainer" === e4 || "baseContainer" === e4), r3 = t5.contents.length - 1; r3 >= 0; r3--)
          !n4 || "styleAttrs" in t5.contents[r3] && a2.byName.ruby.qname in t5.contents[r3].styleAttrs ? i2(t5.contents[r3]) : delete t5.contents[r3];
    }
    function l2(t5, e4, n4, a3) {
      var r3 = a3 && "seq" === a3.timeContainer, i3 = 0;
      a3 && (i3 = r3 && n4 ? n4.end : a3.begin), e4.begin = e4.explicit_begin ? e4.explicit_begin + i3 : i3;
      var o3 = e4.begin, s3 = null;
      if ("sets" in e4)
        for (var u3 = 0; u3 < e4.sets.length; u3++)
          l2(t5, e4.sets[u3], s3, e4), o3 = "seq" === e4.timeContainer ? e4.sets[u3].end : Math.max(o3, e4.sets[u3].end), s3 = e4.sets[u3];
      if ("contents" in e4) {
        if ("contents" in e4)
          for (var d3 = 0; d3 < e4.contents.length; d3++)
            l2(t5, e4.contents[d3], s3, e4), o3 = "seq" === e4.timeContainer ? e4.contents[d3].end : Math.max(o3, e4.contents[d3].end), s3 = e4.contents[d3];
      } else
        o3 = r3 ? e4.begin : Number.POSITIVE_INFINITY;
      null !== e4.explicit_end && null !== e4.explicit_dur ? e4.end = Math.min(e4.begin + e4.explicit_dur, i3 + e4.explicit_end) : null === e4.explicit_end && null !== e4.explicit_dur ? e4.end = e4.begin + e4.explicit_dur : null !== e4.explicit_end && null === e4.explicit_dur ? e4.end = i3 + e4.explicit_end : e4.end = o3, delete e4.explicit_begin, delete e4.explicit_dur, delete e4.explicit_end, t5._registerEvent(e4);
    }
    function o2(t5) {
      this.node = t5;
    }
    function s2() {
      this.events = [], this.head = new u2(), this.body = null;
    }
    function u2() {
      this.styling = new d2(), this.layout = new g2();
    }
    function d2() {
      this.styles = {}, this.initials = {};
    }
    function c2() {
      this.id = null, this.styleAttrs = null, this.styleRefs = null;
    }
    function f2() {
      this.styleAttrs = null;
    }
    function g2() {
      this.regions = {};
    }
    function m2(t5, e4) {
      h2.call(this, "image"), this.src = t5, this.type = e4;
    }
    function h2(t5) {
      this.kind = t5;
    }
    function p2(t5) {
      this.id = t5;
    }
    function b2(t5) {
      this.regionID = t5;
    }
    function y2(t5) {
      this.styleAttrs = t5;
    }
    function E2(t5) {
      this.sets = t5;
    }
    function T2(t5) {
      this.contents = t5;
    }
    function _2(t5, e4, n4) {
      this.explicit_begin = t5, this.explicit_end = e4, this.explicit_dur = n4;
    }
    function v2() {
      h2.call(this, "body");
    }
    function S2() {
      h2.call(this, "div");
    }
    function w2() {
      h2.call(this, "p");
    }
    function I2() {
      h2.call(this, "span");
    }
    function k2() {
      h2.call(this, "span");
    }
    function A() {
      h2.call(this, "br");
    }
    function R() {
    }
    function N() {
    }
    function C(t5) {
      return t5 && "xml:id" in t5.attributes && t5.attributes["xml:id"].value || null;
    }
    function D(t5) {
      return t5 && "style" in t5.attributes ? t5.attributes.style.value.split(" ") : [];
    }
    function x(t5, e4) {
      var n4 = {};
      if (null !== t5)
        for (var r3 in t5.attributes) {
          var i3 = t5.attributes[r3].uri + " " + t5.attributes[r3].local, l3 = a2.byQName[i3];
          if (void 0 !== l3) {
            var o3 = l3.parse(t5.attributes[r3].value);
            null !== o3 ? (n4[i3] = o3, l3 === a2.byName.zIndex && F(e4, "zIndex attribute present but not used by IMSC1 since regions do not overlap")) : U(e4, "Cannot parse styling attribute " + i3 + " --> " + t5.attributes[r3].value);
          }
        }
      return n4;
    }
    function M(t5, e4, n4) {
      for (var a3 in t5.attributes)
        if (t5.attributes[a3].uri === e4 && t5.attributes[a3].local === n4)
          return t5.attributes[a3].value;
      return null;
    }
    function P(t5, e4, n4) {
      var a3, r3 = null;
      return null !== (a3 = /^(\d+(?:\.\d+)?)f$/.exec(n4)) ? null !== e4 && (r3 = parseFloat(a3[1]) / e4) : null !== (a3 = /^(\d+(?:\.\d+)?)t$/.exec(n4)) ? null !== t5 && (r3 = parseFloat(a3[1]) / t5) : null !== (a3 = /^(\d+(?:\.\d+)?)ms$/.exec(n4)) ? r3 = parseFloat(a3[1]) / 1e3 : null !== (a3 = /^(\d+(?:\.\d+)?)s$/.exec(n4)) ? r3 = parseFloat(a3[1]) : null !== (a3 = /^(\d+(?:\.\d+)?)h$/.exec(n4)) ? r3 = 3600 * parseFloat(a3[1]) : null !== (a3 = /^(\d+(?:\.\d+)?)m$/.exec(n4)) ? r3 = 60 * parseFloat(a3[1]) : null !== (a3 = /^(\d{2,}):(\d\d):(\d\d(?:\.\d+)?)$/.exec(n4)) ? r3 = 3600 * parseInt(a3[1]) + 60 * parseInt(a3[2]) + parseFloat(a3[3]) : null !== (a3 = /^(\d{2,}):(\d\d):(\d\d)\:(\d{2,})$/.exec(n4)) && null !== e4 && (r3 = 3600 * parseInt(a3[1]) + 60 * parseInt(a3[2]) + parseInt(a3[3]) + (null === a3[4] ? 0 : parseInt(a3[4]) / e4)), r3;
    }
    function O(t5, e4, n4) {
      for (; e4.styleRefs.length > 0; ) {
        var a3 = e4.styleRefs.pop();
        a3 in t5.styles ? (O(t5, t5.styles[a3], n4), L(t5.styles[a3].styleAttrs, e4.styleAttrs)) : U(n4, "Non-existant style id referenced");
      }
    }
    function z(t5, e4, n4, a3) {
      for (var r3 = e4.length - 1; r3 >= 0; r3--) {
        var i3 = e4[r3];
        i3 in t5.styles ? L(t5.styles[i3].styleAttrs, n4) : U(a3, "Non-existant style id referenced");
      }
    }
    function L(t5, e4) {
      for (var n4 in t5)
        t5.hasOwnProperty(n4) && (n4 in e4 || (e4[n4] = t5[n4]));
    }
    function F(t5, e4) {
      if (t5 && t5.warn && t5.warn(e4))
        throw e4;
    }
    function U(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
    function j(t5, e4) {
      throw t5 && t5.fatal && t5.fatal(e4), e4;
    }
    function q(t5, e4) {
      for (var n4, a3 = 0, r3 = t5.length - 1; a3 <= r3; ) {
        var i3 = t5[n4 = Math.floor((a3 + r3) / 2)];
        if (i3 < e4)
          a3 = n4 + 1;
        else {
          if (!(i3 > e4))
            return { found: true, index: n4 };
          r3 = n4 - 1;
        }
      }
      return { found: false, index: a3 };
    }
    t4.fromXML = function(t5, r3, h3) {
      var p3 = e3.parser(true, { xmlns: true }), b3 = [], y3 = [], E3 = [], T3 = 0, _3 = null;
      p3.onclosetag = function(t6) {
        if (b3[0] instanceof R)
          null !== _3.head && null !== _3.head.styling && z(_3.head.styling, b3[0].styleRefs, b3[0].styleAttrs, r3), delete b3[0].styleRefs;
        else if (b3[0] instanceof d2)
          for (var e4 in b3[0].styles)
            b3[0].styles.hasOwnProperty(e4) && O(b3[0], b3[0].styles[e4], r3);
        else if (b3[0] instanceof w2 || b3[0] instanceof I2) {
          if (b3[0].contents.length > 1) {
            var a3, i3 = [b3[0].contents[0]];
            for (a3 = 1; a3 < b3[0].contents.length; a3++)
              b3[0].contents[a3] instanceof k2 && i3[i3.length - 1] instanceof k2 ? i3[i3.length - 1].text += b3[0].contents[a3].text : i3.push(b3[0].contents[a3]);
            b3[0].contents = i3;
          }
          b3[0] instanceof I2 && 1 === b3[0].contents.length && b3[0].contents[0] instanceof k2 && (b3[0].text = b3[0].contents[0].text, delete b3[0].contents);
        } else
          b3[0] instanceof o2 && (b3[0].node.uri === n3.ns_tt && "metadata" === b3[0].node.local ? T3-- : T3 > 0 && h3 && "onCloseTag" in h3 && h3.onCloseTag());
        E3.shift(), y3.shift(), b3.shift();
      }, p3.ontext = function(t6) {
        if (void 0 === b3[0])
          ;
        else if (b3[0] instanceof I2 || b3[0] instanceof w2) {
          if (b3[0] instanceof I2) {
            var e4 = b3[0].styleAttrs[a2.byName.ruby.qname];
            if ("container" === e4 || "textContainer" === e4 || "baseContainer" === e4)
              return;
          }
          var n4 = new k2();
          n4.initFromText(_3, b3[0], t6, y3[0], E3[0], r3), b3[0].contents.push(n4);
        } else
          b3[0] instanceof o2 && T3 > 0 && h3 && "onText" in h3 && h3.onText(t6);
      }, p3.onopentag = function(t6) {
        var e4 = t6.attributes["xml:space"];
        e4 ? E3.unshift(e4.value) : 0 === E3.length ? E3.unshift("default") : E3.unshift(E3[0]);
        var i3 = t6.attributes["xml:lang"];
        if (i3 ? y3.unshift(i3.value) : 0 === y3.length ? y3.unshift("") : y3.unshift(y3[0]), t6.uri === n3.ns_tt)
          if ("tt" === t6.local)
            null !== _3 && j(r3, "Two <tt> elements at (" + this.line + "," + this.column + ")"), (_3 = new s2()).initFromNode(t6, y3[0], r3), b3.unshift(_3);
          else if ("head" === t6.local)
            b3[0] instanceof s2 || j(r3, "Parent of <head> element is not <tt> at (" + this.line + "," + this.column + ")"), b3.unshift(_3.head);
          else if ("styling" === t6.local)
            b3[0] instanceof u2 || j(r3, "Parent of <styling> element is not <head> at (" + this.line + "," + this.column + ")"), b3.unshift(_3.head.styling);
          else if ("style" === t6.local) {
            var l3;
            b3[0] instanceof d2 ? ((l3 = new c2()).initFromNode(t6, r3), l3.id ? _3.head.styling.styles[l3.id] = l3 : U(r3, "<style> element missing @id attribute"), b3.unshift(l3)) : b3[0] instanceof R ? ((l3 = new c2()).initFromNode(t6, r3), L(l3.styleAttrs, b3[0].styleAttrs), b3.unshift(l3)) : j(r3, "Parent of <style> element is not <styling> or <region> at (" + this.line + "," + this.column + ")");
          } else if ("initial" === t6.local) {
            var p4;
            if (b3[0] instanceof d2) {
              for (var k3 in (p4 = new f2()).initFromNode(t6, r3), p4.styleAttrs)
                p4.styleAttrs.hasOwnProperty(k3) && (_3.head.styling.initials[k3] = p4.styleAttrs[k3]);
              b3.unshift(p4);
            } else
              j(r3, "Parent of <initial> element is not <styling> at (" + this.line + "," + this.column + ")");
          } else if ("layout" === t6.local)
            b3[0] instanceof u2 || j(r3, "Parent of <layout> element is not <head> at " + this.line + "," + this.column + ")"), b3.unshift(_3.head.layout);
          else if ("region" === t6.local) {
            b3[0] instanceof g2 || j(r3, "Parent of <region> element is not <layout> at " + this.line + "," + this.column + ")");
            var C3 = new R();
            C3.initFromNode(_3, t6, y3[0], r3), !C3.id || C3.id in _3.head.layout.regions ? U(r3, "Ignoring <region> with duplicate or missing @id at " + this.line + "," + this.column + ")") : _3.head.layout.regions[C3.id] = C3, b3.unshift(C3);
          } else if ("body" === t6.local) {
            b3[0] instanceof s2 || j(r3, "Parent of <body> element is not <tt> at " + this.line + "," + this.column + ")"), null !== _3.body && j(r3, "Second <body> element at " + this.line + "," + this.column + ")");
            var D3 = new v2();
            D3.initFromNode(_3, t6, y3[0], r3), _3.body = D3, b3.unshift(D3);
          } else if ("div" === t6.local) {
            b3[0] instanceof S2 || b3[0] instanceof v2 || j(r3, "Parent of <div> element is not <body> or <div> at " + this.line + "," + this.column + ")");
            var x3 = new S2();
            x3.initFromNode(_3, b3[0], t6, y3[0], r3);
            var M3 = x3.styleAttrs[a2.byName.backgroundImage.qname];
            M3 && (x3.contents.push(new m2(M3)), delete x3.styleAttrs[a2.byName.backgroundImage.qname]), b3[0].contents.push(x3), b3.unshift(x3);
          } else if ("image" === t6.local) {
            b3[0] instanceof S2 || j(r3, "Parent of <image> element is not <div> at " + this.line + "," + this.column + ")");
            var P2 = new m2();
            P2.initFromNode(_3, b3[0], t6, y3[0], r3), b3[0].contents.push(P2), b3.unshift(P2);
          } else if ("p" === t6.local) {
            b3[0] instanceof S2 || j(r3, "Parent of <p> element is not <div> at " + this.line + "," + this.column + ")");
            var O2 = new w2();
            O2.initFromNode(_3, b3[0], t6, y3[0], r3), b3[0].contents.push(O2), b3.unshift(O2);
          } else if ("span" === t6.local) {
            b3[0] instanceof I2 || b3[0] instanceof w2 || j(r3, "Parent of <span> element is not <span> or <p> at " + this.line + "," + this.column + ")");
            var z2 = new I2();
            z2.initFromNode(_3, b3[0], t6, y3[0], E3[0], r3), b3[0].contents.push(z2), b3.unshift(z2);
          } else if ("br" === t6.local) {
            b3[0] instanceof I2 || b3[0] instanceof w2 || j(r3, "Parent of <br> element is not <span> or <p> at " + this.line + "," + this.column + ")");
            var F2 = new A();
            F2.initFromNode(_3, b3[0], t6, y3[0], r3), b3[0].contents.push(F2), b3.unshift(F2);
          } else if ("set" === t6.local) {
            b3[0] instanceof I2 || b3[0] instanceof w2 || b3[0] instanceof S2 || b3[0] instanceof v2 || b3[0] instanceof R || b3[0] instanceof A || j(r3, "Parent of <set> element is not a content element or a region at " + this.line + "," + this.column + ")");
            var q2 = new N();
            q2.initFromNode(_3, b3[0], t6, r3), b3[0].sets.push(q2), b3.unshift(q2);
          } else
            b3.unshift(new o2(t6));
        else
          b3.unshift(new o2(t6));
        if (b3[0] instanceof o2) {
          if (t6.uri === n3.ns_tt && "metadata" === t6.local)
            T3++;
          else if (T3 > 0 && h3 && "onOpenTag" in h3) {
            var B = [];
            for (var G in t6.attributes)
              B[t6.attributes[G].uri + " " + t6.attributes[G].local] = { uri: t6.attributes[G].uri, local: t6.attributes[G].local, value: t6.attributes[G].value };
            h3.onOpenTag(t6.uri, t6.local, B);
          }
        }
      }, p3.write(t5).close(), delete _3.head.styling.styles;
      var C2 = false;
      for (var D2 in _3.head.layout.regions)
        if (_3.head.layout.regions.hasOwnProperty(D2)) {
          C2 = true;
          break;
        }
      if (!C2) {
        var x2 = R.prototype.createDefaultRegion(_3.lang);
        _3.head.layout.regions[x2.id] = x2;
      }
      for (var M2 in _3.head.layout.regions)
        _3.head.layout.regions.hasOwnProperty(M2) && l2(_3, _3.head.layout.regions[M2], null, null);
      return _3.body && l2(_3, _3.body, null, null), _3.body && i2(_3.body), _3;
    }, s2.prototype.initFromNode = function(t5, e4, a3) {
      var i3 = function(t6, e5) {
        var a4 = M(t6, n3.ns_ttp, "cellResolution"), r3 = 15, i4 = 32;
        if (null !== a4) {
          var l4 = /(\d+) (\d+)/.exec(a4);
          null !== l4 ? (i4 = parseInt(l4[1]), r3 = parseInt(l4[2])) : F(e5, "Malformed cellResolution value (using initial value instead)");
        }
        return { w: i4, h: r3 };
      }(t5, a3);
      this.cellLength = { h: new r2.ComputedLength(0, 1 / i3.h), w: new r2.ComputedLength(1 / i3.w, 0) };
      var l3 = function(t6, e5) {
        var a4, r3 = M(t6, n3.ns_ttp, "frameRate"), i4 = 30;
        null !== r3 && (null !== (a4 = /(\d+)/.exec(r3)) ? i4 = parseInt(a4[1]) : F(e5, "Malformed frame rate attribute (using initial value instead)"));
        var l4 = M(t6, n3.ns_ttp, "frameRateMultiplier"), o4 = 1;
        null !== l4 && (null !== (a4 = /(\d+) (\d+)/.exec(l4)) ? o4 = parseInt(a4[1]) / parseInt(a4[2]) : F(e5, "Malformed frame rate multiplier attribute (using initial value instead)"));
        var s4 = o4 * i4, u3 = 1, d3 = M(t6, n3.ns_ttp, "tickRate");
        return null === d3 ? null !== r3 && (u3 = s4) : null !== (a4 = /(\d+)/.exec(d3)) ? u3 = parseInt(a4[1]) : F(e5, "Malformed tick rate attribute (using initial value instead)"), { effectiveFrameRate: s4, tickRate: u3 };
      }(t5, a3);
      this.effectiveFrameRate = l3.effectiveFrameRate, this.tickRate = l3.tickRate, this.aspectRatio = function(t6, e5) {
        var a4 = M(t6, n3.ns_ittp, "aspectRatio");
        null === a4 && (a4 = M(t6, n3.ns_ttp, "displayAspectRatio"));
        var r3 = null;
        if (null !== a4) {
          var i4 = /(\d+)\s+(\d+)/.exec(a4);
          if (null !== i4) {
            var l4 = parseInt(i4[1]), o4 = parseInt(i4[2]);
            0 !== l4 && 0 !== o4 ? r3 = l4 / o4 : U(e5, "Illegal aspectRatio values (ignoring)");
          } else
            U(e5, "Malformed aspectRatio attribute (ignoring)");
        }
        return r3;
      }(t5, a3);
      var o3 = M(t5, n3.ns_ttp, "timeBase");
      null !== o3 && "media" !== o3 && j(a3, "Unsupported time base");
      var s3 = function(t6, e5) {
        var a4 = M(t6, n3.ns_tts, "extent");
        if (null === a4)
          return null;
        var i4 = a4.split(" ");
        if (2 !== i4.length)
          return F(e5, "Malformed extent (ignoring)"), null;
        var l4 = r2.parseLength(i4[0]), o4 = r2.parseLength(i4[1]);
        return o4 && l4 ? { h: o4, w: l4 } : (F(e5, "Malformed extent values (ignoring)"), null);
      }(t5, a3);
      null === s3 ? this.pxLength = { h: null, w: null } : ("px" === s3.h.unit && "px" === s3.w.unit || j(a3, "Extent on TT must be in px or absent"), this.pxLength = { h: new r2.ComputedLength(0, 1 / s3.h.value), w: new r2.ComputedLength(1 / s3.w.value, 0) }), this.dimensions = { h: new r2.ComputedLength(0, 1), w: new r2.ComputedLength(1, 0) }, this.lang = e4;
    }, s2.prototype._registerEvent = function(t5) {
      if (!(t5.end <= t5.begin)) {
        var e4 = q(this.events, t5.begin);
        if (e4.found || this.events.splice(e4.index, 0, t5.begin), t5.end !== Number.POSITIVE_INFINITY) {
          var n4 = q(this.events, t5.end);
          n4.found || this.events.splice(n4.index, 0, t5.end);
        }
      }
    }, s2.prototype.getMediaTimeRange = function() {
      return [this.events[0], this.events[this.events.length - 1]];
    }, s2.prototype.getMediaTimeEvents = function() {
      return this.events;
    }, c2.prototype.initFromNode = function(t5, e4) {
      this.id = C(t5), this.styleAttrs = x(t5, e4), this.styleRefs = D(t5);
    }, f2.prototype.initFromNode = function(t5, e4) {
      for (var a3 in this.styleAttrs = {}, t5.attributes)
        if (t5.attributes[a3].uri === n3.ns_itts || t5.attributes[a3].uri === n3.ns_ebutts || t5.attributes[a3].uri === n3.ns_tts) {
          var r3 = t5.attributes[a3].uri + " " + t5.attributes[a3].local;
          this.styleAttrs[r3] = t5.attributes[a3].value;
        }
    }, m2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      this.src = "src" in n4.attributes ? n4.attributes.src.value : null, this.src || U(r3, "Invalid image@src attribute"), this.type = "type" in n4.attributes ? n4.attributes.type.value : null, this.type || U(r3, "Invalid image@type attribute"), y2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, p2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.id = C(n4);
    }, b2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.regionID = function(t6) {
        return t6 && "region" in t6.attributes ? t6.attributes.region.value : "";
      }(n4);
    }, y2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.styleAttrs = x(n4, a3), null !== t5.head && null !== t5.head.styling && z(t5.head.styling, D(n4), this.styleAttrs, a3);
    }, E2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.sets = [];
    }, T2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.contents = [];
    }, _2.prototype.initFromNode = function(t5, e4, n4, a3) {
      var r3 = function(t6, e5, n5, a4) {
        var r4 = null;
        n5 && "begin" in n5.attributes && null === (r4 = P(t6.tickRate, t6.effectiveFrameRate, n5.attributes.begin.value)) && F(a4, "Malformed begin value " + n5.attributes.begin.value + " (using 0)");
        var i3 = null;
        n5 && "dur" in n5.attributes && null === (i3 = P(t6.tickRate, t6.effectiveFrameRate, n5.attributes.dur.value)) && F(a4, "Malformed dur value " + n5.attributes.dur.value + " (ignoring)");
        var l3 = null;
        return n5 && "end" in n5.attributes && null === (l3 = P(t6.tickRate, t6.effectiveFrameRate, n5.attributes.end.value)) && F(a4, "Malformed end value (ignoring)"), { explicit_begin: r4, explicit_end: l3, explicit_dur: i3 };
      }(t5, 0, n4, a3);
      this.explicit_begin = r3.explicit_begin, this.explicit_end = r3.explicit_end, this.explicit_dur = r3.explicit_dur, this.timeContainer = function(t6, e5) {
        var n5 = t6 && "timeContainer" in t6.attributes ? t6.attributes.timeContainer.value : null;
        return n5 && "par" !== n5 ? "seq" === n5 ? "seq" : (U(e5, "Illegal value of timeContainer (assuming 'par')"), "par") : "par";
      }(n4, a3);
    }, v2.prototype.initFromNode = function(t5, e4, n4, a3) {
      y2.prototype.initFromNode.call(this, t5, null, e4, a3), _2.prototype.initFromNode.call(this, t5, null, e4, a3), E2.prototype.initFromNode.call(this, t5, null, e4, a3), b2.prototype.initFromNode.call(this, t5, null, e4, a3), T2.prototype.initFromNode.call(this, t5, null, e4, a3), this.lang = n4;
    }, S2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, w2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, I2.prototype.initFromNode = function(t5, e4, n4, a3, r3, i3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, i3), _2.prototype.initFromNode.call(this, t5, e4, n4, i3), E2.prototype.initFromNode.call(this, t5, e4, n4, i3), b2.prototype.initFromNode.call(this, t5, e4, n4, i3), T2.prototype.initFromNode.call(this, t5, e4, n4, i3), this.space = r3, this.lang = a3;
    }, k2.prototype.initFromText = function(t5, e4, n4, a3, r3, i3) {
      _2.prototype.initFromNode.call(this, t5, e4, null, i3), this.text = n4, this.space = r3, this.lang = a3;
    }, A.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      b2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, R.prototype.createDefaultRegion = function(t5) {
      var e4 = new R();
      return p2.call(e4, ""), y2.call(e4, {}), E2.call(e4, []), _2.call(e4, 0, Number.POSITIVE_INFINITY, null), this.lang = t5, e4;
    }, R.prototype.initFromNode = function(t5, e4, n4, a3) {
      p2.prototype.initFromNode.call(this, t5, null, e4, a3), _2.prototype.initFromNode.call(this, t5, null, e4, a3), E2.prototype.initFromNode.call(this, t5, null, e4, a3), this.styleAttrs = x(e4, a3), this.styleRefs = D(e4), this.lang = n4;
    }, N.prototype.initFromNode = function(t5, e4, n4, a3) {
      _2.prototype.initFromNode.call(this, t5, e4, n4, a3);
      var r3 = x(n4, a3);
      for (var i3 in this.qname = null, this.value = null, r3)
        if (r3.hasOwnProperty(i3)) {
          if (this.qname) {
            U(a3, "More than one style specified on set");
            break;
          }
          this.qname = i3, this.value = r3[i3];
        }
    };
  }(e2, "undefined" == typeof sax ? n2(5474) : sax, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 1612: function(t3, e2, n2) {
  var a2 = /firefox/i.test(navigator.userAgent);
  !function(t4, e3, n3) {
    function r2(t5, e4, c3, g3) {
      var m3;
      if ("region" === c3.kind)
        (m3 = document.createElement("div")).style.position = "absolute";
      else if ("body" === c3.kind)
        m3 = document.createElement("div");
      else if ("div" === c3.kind)
        m3 = document.createElement("div");
      else if ("image" === c3.kind) {
        if (m3 = document.createElement("img"), null !== t5.imgResolver && null !== c3.src) {
          var b3 = t5.imgResolver(c3.src, m3);
          b3 && (m3.src = b3), m3.height = t5.regionH, m3.width = t5.regionW;
        }
      } else if ("p" === c3.kind)
        m3 = document.createElement("p");
      else if ("span" === c3.kind)
        if ("container" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("ruby"), t5.ruby = true;
        else if ("base" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("span");
        else if ("text" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rt");
        else if ("baseContainer" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rbc");
        else if ("textContainer" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rtc");
        else {
          if ("delimiter" === c3.styleAttrs[n3.byName.ruby.qname])
            return;
          m3 = document.createElement("span");
        }
      else
        "br" === c3.kind && (m3 = document.createElement("br"));
      if (m3) {
        if (c3.lang && ("region" !== c3.kind && c3.lang === g3.lang || (m3.lang = c3.lang)), e4.appendChild(m3), m3.style.margin = "0", "region" === c3.kind) {
          var T2 = c3.styleAttrs[n3.byName.writingMode.qname];
          "lrtb" === T2 || "lr" === T2 ? (t5.ipd = "lr", t5.bpd = "tb") : "rltb" === T2 || "rl" === T2 ? (t5.ipd = "rl", t5.bpd = "tb") : "tblr" === T2 ? (t5.ipd = "tb", t5.bpd = "lr") : "tbrl" !== T2 && "tb" !== T2 || (t5.ipd = "tb", t5.bpd = "rl");
        } else if ("p" === c3.kind && "tb" === t5.bpd) {
          var _2 = c3.styleAttrs[n3.byName.direction.qname];
          t5.ipd = "ltr" === _2 ? "lr" : "rl";
        }
        for (var v2 = 0; v2 < f2.length; v2++) {
          var S2 = f2[v2], w2 = c3.styleAttrs[S2.qname];
          void 0 !== w2 && null !== S2.map && S2.map(t5, m3, c3, w2);
        }
        var I2 = m3, k2 = c3.styleAttrs[n3.byName.linePadding.qname];
        if (k2 && !k2.isZero()) {
          var A = k2.toUsedLength(t5.w, t5.h);
          if (A > 0) {
            var R = Math.ceil(A) + "px";
            "tb" === t5.bpd ? (I2.style.paddingLeft = R, I2.style.paddingRight = R) : (I2.style.paddingTop = R, I2.style.paddingBottom = R), t5.lp = k2;
          }
        }
        var N = c3.styleAttrs[n3.byName.multiRowAlign.qname];
        if (N && "auto" !== N) {
          var C = document.createElement("span");
          C.style.display = "inline-block", C.style.textAlign = N, m3.appendChild(C), I2 = C, t5.mra = N;
        }
        var D = c3.styleAttrs[n3.byName.rubyReserve.qname];
        if (D && "none" !== D[0] && (t5.rubyReserve = D), c3.styleAttrs[n3.byName.fillLineGap.qname] && (t5.flg = true), "span" === c3.kind && c3.text) {
          var x = c3.styleAttrs[n3.byName.textEmphasis.qname];
          if (x && "none" !== x.style && (t5.textEmphasis = true), n3.byName.textCombine.qname in c3.styleAttrs && "all" === c3.styleAttrs[n3.byName.textCombine.qname])
            m3.textContent = c3.text, m3._isd_element = c3, x && d2(t5, m3, 0, x);
          else
            for (var M = "", P = 0; P < c3.text.length; P++) {
              M += c3.text.charAt(P);
              var O = c3.text.charCodeAt(P);
              if (O < 55296 || O > 56319 || P === c3.text.length - 1) {
                var z = document.createElement("span");
                z.textContent = M, x && d2(t5, z, 0, x), m3.appendChild(z), M = "", z._isd_element = c3;
              }
            }
        }
        if ("contents" in c3)
          for (var L = 0; L < c3.contents.length; L++)
            r2(t5, I2, c3.contents[L], c3);
        var F = [];
        if ("p" === c3.kind && (u2(t5, I2, F, null), t5.rubyReserve && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++) {
            var a3, r3, i3 = document.createElement("ruby"), l3 = document.createElement("span");
            l3.textContent = "​", i3.appendChild(l3);
            var o3, s3 = e5.rubyReserve[1].toUsedLength(e5.w, e5.h) + "px";
            "both" === e5.rubyReserve[0] || "outside" === e5.rubyReserve[0] && 1 == t6.length ? ((a3 = document.createElement("rtc")).style[p2] = h2 ? "after" : "under", a3.textContent = "​", a3.style.fontSize = s3, (r3 = document.createElement("rtc")).style[p2] = h2 ? "before" : "over", r3.textContent = "​", r3.style.fontSize = s3, i3.appendChild(a3), i3.appendChild(r3)) : ((a3 = document.createElement("rtc")).textContent = "​", a3.style.fontSize = s3, o3 = "after" === e5.rubyReserve[0] || "outside" === e5.rubyReserve[0] && n4 > 0 ? h2 ? "after" : "tb" === e5.bpd || "rl" === e5.bpd ? "under" : "over" : h2 ? "before" : "tb" === e5.bpd || "rl" === e5.bpd ? "over" : "under", a3.style[p2] = o3, i3.appendChild(a3));
            for (var u3 = null, d3 = 0; d3 < t6[n4].rbc.length; d3++)
              if ("ruby" === t6[n4].rbc[d3].localName) {
                u3 = t6[n4].rbc[d3];
                for (var c4 = 0; c4 < u3.style.length; c4++)
                  i3.style.setProperty(u3.style.item(c4), u3.style.getPropertyValue(u3.style.item(c4)));
                break;
              }
            (u3 = u3 || t6[n4].elements[0].node).parentElement.insertBefore(i3, u3);
          }
        }(F, t5), t5.rubyReserve = null), (t5.ruby || t5.rubyReserve) && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = 0; a3 < t6[n4].rbc.length; a3++) {
              var r3;
              t6[n4].rbc[a3].style[p2] || (r3 = h2 ? 0 === n4 ? "before" : "after" : "tb" === e5.bpd || "rl" === e5.bpd ? 0 === n4 ? "over" : "under" : 0 === n4 ? "under" : "over", t6[n4].rbc[a3].style[p2] = r3);
            }
        }(F, t5), t5.ruby = null), t5.textEmphasis && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = 0; a3 < t6[n4].te.length; a3++) {
              var r3;
              t6[n4].te[a3].style[y2] && "none" !== t6[n4].te[a3].style[y2] || (r3 = "tb" === e5.bpd ? 0 === n4 ? "left over" : "left under" : "rl" === e5.bpd ? 0 === n4 ? "right under" : "left under" : 0 === n4 ? "left under" : "right under", t6[n4].te[a3].style[y2] = r3);
            }
        }(F, t5), t5.textEmphasis = null), t5.mra && (function(t6) {
          for (var e5 = 0; e5 < t6.length - 1; e5++) {
            var n4 = t6[e5].elements.length;
            if (0 !== n4 && false === t6[e5].br) {
              var a3 = document.createElement("br"), r3 = t6[e5].elements[n4 - 1].node;
              r3.parentElement.insertBefore(a3, r3.nextSibling);
            }
          }
        }(F), t5.mra = null), t5.lp && (function(t6, e5, n4) {
          if (null !== t6)
            for (var r3 = 0; r3 < t6.length; r3++) {
              var i3 = t6[r3].elements.length, l3 = Math.ceil(e5) + "px", o3 = "-" + Math.ceil(e5) + "px";
              if (0 !== i3) {
                var s3 = t6[r3].elements[t6[r3].start_elem], u3 = t6[r3].elements[t6[r3].end_elem];
                if (s3 === u3) {
                  var d3 = s3.node.getBoundingClientRect();
                  if (0 == d3.width || 0 == d3.height)
                    continue;
                }
                "lr" === n4.ipd ? (s3.node.style.marginLeft = o3, s3.node.style.paddingLeft = l3) : "rl" === n4.ipd ? (s3.node.style.paddingRight = l3, s3.node.style.marginRight = o3) : "tb" === n4.ipd && (s3.node.style.paddingTop = l3, s3.node.style.marginTop = o3), "lr" === n4.ipd ? (a2 || (u3.node.style.marginRight = o3), u3.node.style.paddingRight = l3) : "rl" === n4.ipd ? (u3.node.style.paddingLeft = l3, a2 || (u3.node.style.marginLeft = o3)) : "tb" === n4.ipd && (u3.node.style.paddingBottom = l3, u3.node.style.marginBottom = o3);
              }
            }
        }(F, t5.lp.toUsedLength(t5.w, t5.h), t5), t5.lp = null), function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = t6[n4], r3 = 1; r3 < a3.elements.length; ) {
              var o3 = a3.elements[r3 - 1], s3 = a3.elements[r3];
              l2(o3.node, s3.node, e5) ? a3.elements.splice(r3, 1) : r3++;
            }
          for (var u3, d3, c4 = [], f3 = 0; f3 < t6.length; f3++)
            for (var g4 = 0; g4 < t6[f3].elements.length; g4++)
              (d3 = i2(u3 = t6[f3].elements[g4].node, c4, false)) && (u3.style.backgroundColor = d3);
          for (var m4 = 0; m4 < c4.length; m4++)
            c4[m4].style.backgroundColor = "";
        }(F, t5), t5.flg)) {
          var U = s2(I2.getBoundingClientRect(), t5);
          !function(t6, e5, n4, a3) {
            for (var r3 = Math.sign(n4 - e5), i3 = 0; i3 <= t6.length; i3++) {
              var l3, o3, s3, u3;
              if (l3 = 0 === i3 ? Math.round(e5) : i3 === t6.length ? Math.round(n4) : Math.round((t6[i3 - 1].after + t6[i3].before) / 2), i3 > 0 && t6[i3 - 1])
                for (s3 = 0; s3 < t6[i3 - 1].elements.length; s3++)
                  o3 = r3 * (l3 - (u3 = t6[i3 - 1].elements[s3]).after) + "px", "lr" === a3.bpd ? u3.node.style.paddingRight = o3 : "rl" === a3.bpd ? u3.node.style.paddingLeft = o3 : "tb" === a3.bpd && (u3.node.style.paddingBottom = o3);
              if (i3 < t6.length)
                for (s3 = 0; s3 < t6[i3].elements.length; s3++)
                  o3 = r3 * ((u3 = t6[i3].elements[s3]).before - l3) + "px", "lr" === a3.bpd ? u3.node.style.paddingLeft = o3 : "rl" === a3.bpd ? u3.node.style.paddingRight = o3 : "tb" === a3.bpd && (u3.node.style.paddingTop = o3);
            }
          }(F, U.before, U.after, t5), t5.flg = null;
        }
        if ("region" === c3.kind && "tb" === t5.bpd && t5.enableRollUp && c3.contents.length > 0 && "after" === c3.styleAttrs[n3.byName.displayAlign.qname]) {
          u2(t5, I2, F, null);
          var j = new o2("" === c3.id ? "_" : c3.id, F);
          if (t5.currentISDState[j.id] = j, t5.previousISDState && j.id in t5.previousISDState && t5.previousISDState[j.id].plist.length > 0 && j.plist.length > 1 && j.plist[j.plist.length - 2].text === t5.previousISDState[j.id].plist[t5.previousISDState[j.id].plist.length - 1].text) {
            var q = m3.firstElementChild, B = j.plist[j.plist.length - 1].after - j.plist[j.plist.length - 1].before;
            q.style.bottom = "-" + B + "px", q.style.transition = "transform 0.4s", q.style.position = "relative", q.style.transform = "translateY(-" + B + "px)";
          }
        }
      } else
        E2(t5.errorHandler, "Error processing ISD element kind: " + c3.kind);
    }
    function i2(t5, e4, n4) {
      return t5.style.backgroundColor ? (n4 && !e4.includes(t5) && e4.push(t5), t5.style.backgroundColor) : "SPAN" === t5.parentElement.nodeName || "RUBY" === t5.parentElement.nodeName || "RBC" === t5.parentElement.nodeName || "RTC" === t5.parentElement.nodeName || "RT" === t5.parentElement.nodeName ? i2(t5.parentElement, e4, true) : void 0;
    }
    function l2(t5, e4, n4) {
      if ("SPAN" === t5.tagName && "SPAN" === e4.tagName && t5._isd_element === e4._isd_element) {
        if (!t5._isd_element)
          return E2(n4.errorHandler, "Internal error: HTML span is not linked to a source element; cannot merge spans."), false;
        t5.textContent += e4.textContent;
        for (var a3 = 0; a3 < e4.style.length; a3++) {
          var r3 = e4.style[a3];
          (r3.indexOf("border") >= 0 || r3.indexOf("padding") >= 0 || r3.indexOf("margin") >= 0) && (t5.style[r3] = e4.style[r3]);
        }
        return e4.parentElement.removeChild(e4), true;
      }
      return false;
    }
    function o2(t5, e4) {
      this.id = t5, this.plist = e4;
    }
    function s2(t5, e4) {
      var n4 = { before: null, after: null, start: null, end: null };
      return "tb" === e4.bpd ? (n4.before = t5.top, n4.after = t5.bottom, "lr" === e4.ipd ? (n4.start = t5.left, n4.end = t5.right) : (n4.start = t5.right, n4.end = t5.left)) : "lr" === e4.bpd ? (n4.before = t5.left, n4.after = t5.right, n4.start = t5.top, n4.end = t5.bottom) : "rl" === e4.bpd && (n4.before = t5.right, n4.after = t5.left, n4.start = t5.top, n4.end = t5.bottom), n4;
    }
    function u2(t5, e4, n4, a3) {
      if ("rt" !== e4.localName && "rtc" !== e4.localName) {
        var r3, i3, l3, o3, d3 = e4.style.backgroundColor || a3;
        if (0 === e4.childElementCount)
          if ("span" === e4.localName || "rb" === e4.localName) {
            var c3 = s2(e4.getBoundingClientRect(), t5);
            if (0 !== n4.length && (r3 = c3.before, i3 = c3.after, l3 = n4[n4.length - 1].before, i3 < (o3 = n4[n4.length - 1].after) && r3 > l3 || o3 <= i3 && l3 >= r3)) {
              var f3 = Math.sign(c3.after - c3.before), g3 = Math.sign(c3.end - c3.start);
              f3 * (c3.before - n4[n4.length - 1].before) < 0 && (n4[n4.length - 1].before = c3.before), f3 * (c3.after - n4[n4.length - 1].after) > 0 && (n4[n4.length - 1].after = c3.after), g3 * (c3.start - n4[n4.length - 1].start) < 0 && (n4[n4.length - 1].start = c3.start, n4[n4.length - 1].start_elem = n4[n4.length - 1].elements.length), g3 * (c3.end - n4[n4.length - 1].end) > 0 && (n4[n4.length - 1].end = c3.end, n4[n4.length - 1].end_elem = n4[n4.length - 1].elements.length);
            } else
              n4.push({ before: c3.before, after: c3.after, start: c3.start, end: c3.end, start_elem: 0, end_elem: 0, elements: [], rbc: [], te: [], text: "", br: false });
            n4[n4.length - 1].text += e4.textContent, n4[n4.length - 1].elements.push({ node: e4, bgcolor: d3, before: c3.before, after: c3.after });
          } else
            "br" === e4.localName && 0 !== n4.length && (n4[n4.length - 1].br = true);
        else
          for (var m3 = e4.firstChild; m3; )
            m3.nodeType === Node.ELEMENT_NODE && (u2(t5, m3, n4, d3), "ruby" === m3.localName || "rtc" === m3.localName ? n4.length > 0 && n4[n4.length - 1].rbc.push(m3) : "span" === m3.localName && m3.style[b2] && "none" !== m3.style[b2] && n4.length > 0 && n4[n4.length - 1].te.push(m3)), m3 = m3.nextSibling;
      }
    }
    function d2(t5, e4, n4, a3) {
      var r3;
      "none" !== a3.style && ("auto" === a3.style ? e4.style[b2] = "filled" : e4.style[b2] = a3.style + " " + a3.symbol, ("before" === a3.position || "after" === a3.position) && (r3 = "tb" === t5.bpd ? "before" === a3.position ? "left over" : "left under" : "rl" === t5.bpd ? "before" === a3.position ? "right under" : "left under" : "before" === a3.position ? "left under" : "right under", e4.style[y2] = r3));
    }
    function c2(t5, e4) {
      this.qname = t5, this.map = e4;
    }
    t4.render = function(t5, e4, n4, a3, i3, l3, o3, s3, u3) {
      var d3 = a3 || e4.clientHeight, c3 = i3 || e4.clientWidth;
      if (null !== t5.aspectRatio) {
        var f3 = d3 * t5.aspectRatio;
        f3 > c3 ? d3 = Math.round(c3 / t5.aspectRatio) : c3 = f3;
      }
      var g3 = document.createElement("div");
      g3.style.position = "relative", g3.style.width = c3 + "px", g3.style.height = d3 + "px", g3.style.margin = "auto", g3.style.top = 0, g3.style.bottom = 0, g3.style.left = 0, g3.style.right = 0, g3.style.zIndex = 0;
      var m3 = { h: d3, w: c3, regionH: null, regionW: null, imgResolver: n4, displayForcedOnlyMode: l3 || false, isd: t5, errorHandler: o3, previousISDState: s3, enableRollUp: u3 || false, currentISDState: {}, flg: null, lp: null, mra: null, ipd: null, bpd: null, ruby: null, textEmphasis: null, rubyReserve: null };
      if (e4.appendChild(g3), "contents" in t5)
        for (var h3 = 0; h3 < t5.contents.length; h3++)
          r2(m3, g3, t5.contents[h3], t5);
      return m3.currentISDState;
    };
    for (var f2 = [new c2("http://www.w3.org/ns/ttml#styling backgroundColor", function(t5, e4, n4, a3) {
      0 !== a3[3] && (e4.style.backgroundColor = "rgba(" + a3[0].toString() + "," + a3[1].toString() + "," + a3[2].toString() + "," + (a3[3] / 255).toString() + ")");
    }), new c2("http://www.w3.org/ns/ttml#styling color", function(t5, e4, n4, a3) {
      e4.style.color = "rgba(" + a3[0].toString() + "," + a3[1].toString() + "," + a3[2].toString() + "," + (a3[3] / 255).toString() + ")";
    }), new c2("http://www.w3.org/ns/ttml#styling direction", function(t5, e4, n4, a3) {
      e4.style.direction = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling display", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling displayAlign", function(t5, e4, n4, a3) {
      e4.style.display = "flex", e4.style.flexDirection = "column", "before" === a3 ? e4.style.justifyContent = "flex-start" : "center" === a3 ? e4.style.justifyContent = "center" : "after" === a3 && (e4.style.justifyContent = "flex-end");
    }), new c2("http://www.w3.org/ns/ttml#styling extent", function(t5, e4, n4, a3) {
      t5.regionH = a3.h.toUsedLength(t5.w, t5.h), t5.regionW = a3.w.toUsedLength(t5.w, t5.h);
      var r3 = 0, i3 = 0, l3 = n4.styleAttrs["http://www.w3.org/ns/ttml#styling padding"];
      l3 && (r3 = l3[0].toUsedLength(t5.w, t5.h) + l3[2].toUsedLength(t5.w, t5.h), i3 = l3[1].toUsedLength(t5.w, t5.h) + l3[3].toUsedLength(t5.w, t5.h)), e4.style.height = t5.regionH - r3 + "px", e4.style.width = t5.regionW - i3 + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling fontFamily", function(t5, e4, n4, a3) {
      for (var r3 = [], i3 = 0; i3 < a3.length; i3++)
        a3[i3] = a3[i3].trim(), "monospaceSerif" === a3[i3] ? (r3.push("Courier New"), r3.push('"Liberation Mono"'), r3.push("Courier"), r3.push("monospace")) : "proportionalSansSerif" === a3[i3] ? (r3.push("Arial"), r3.push("Helvetica"), r3.push('"Liberation Sans"'), r3.push("sans-serif")) : "monospace" === a3[i3] ? r3.push("monospace") : "sansSerif" === a3[i3] ? r3.push("sans-serif") : "serif" === a3[i3] ? r3.push("serif") : "monospaceSansSerif" === a3[i3] ? (r3.push("Consolas"), r3.push("monospace")) : "proportionalSerif" === a3[i3] ? r3.push("serif") : r3.push(a3[i3]);
      if (r3.length > 0) {
        for (var l3 = [r3[0]], o3 = 1; o3 < r3.length; o3++)
          -1 == l3.indexOf(r3[o3]) && l3.push(r3[o3]);
        r3 = l3;
      }
      e4.style.fontFamily = r3.join(",");
    }), new c2("http://www.w3.org/ns/ttml#styling shear", function(t5, e4, n4, a3) {
      if (0 !== a3) {
        var r3 = -0.9 * a3;
        "tb" === t5.bpd ? e4.style.transform = "skewX(" + r3 + "deg)" : e4.style.transform = "skewY(" + r3 + "deg)";
      }
    }), new c2("http://www.w3.org/ns/ttml#styling fontSize", function(t5, e4, n4, a3) {
      e4.style.fontSize = a3.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling fontStyle", function(t5, e4, n4, a3) {
      e4.style.fontStyle = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling fontWeight", function(t5, e4, n4, a3) {
      e4.style.fontWeight = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling lineHeight", function(t5, e4, n4, a3) {
      e4.style.lineHeight = "normal" === a3 ? "normal" : a3.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling opacity", function(t5, e4, n4, a3) {
      e4.style.opacity = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling origin", function(t5, e4, n4, a3) {
      e4.style.top = a3.h.toUsedLength(t5.w, t5.h) + "px", e4.style.left = a3.w.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling overflow", function(t5, e4, n4, a3) {
      e4.style.overflow = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling padding", function(t5, e4, n4, a3) {
      var r3 = [];
      r3[0] = a3[0].toUsedLength(t5.w, t5.h) + "px", r3[1] = a3[3].toUsedLength(t5.w, t5.h) + "px", r3[2] = a3[2].toUsedLength(t5.w, t5.h) + "px", r3[3] = a3[1].toUsedLength(t5.w, t5.h) + "px", e4.style.padding = r3.join(" ");
    }), new c2("http://www.w3.org/ns/ttml#styling position", function(t5, e4, n4, a3) {
      e4.style.top = a3.h.toUsedLength(t5.w, t5.h) + "px", e4.style.left = a3.w.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling rubyAlign", function(t5, e4, n4, a3) {
      e4.style.rubyAlign = "spaceAround" === a3 ? "space-around" : "center";
    }), new c2("http://www.w3.org/ns/ttml#styling rubyPosition", function(t5, e4, n4, a3) {
      var r3;
      "before" !== a3 && "after" !== a3 || (r3 = h2 ? a3 : "tb" === t5.bpd || "rl" === t5.bpd ? "before" === a3 ? "over" : "under" : "before" === a3 ? "under" : "over", e4.parentElement.style[p2] = r3);
    }), new c2("http://www.w3.org/ns/ttml#styling showBackground", null), new c2("http://www.w3.org/ns/ttml#styling textAlign", function(t5, e4, n4, a3) {
      var r3;
      r3 = "start" === a3 ? "rl" === t5.ipd ? "right" : "left" : "end" === a3 ? "rl" === t5.ipd ? "left" : "right" : a3, e4.style.textAlign = r3;
    }), new c2("http://www.w3.org/ns/ttml#styling textDecoration", function(t5, e4, n4, a3) {
      e4.style.textDecoration = a3.join(" ").replace("lineThrough", "line-through");
    }), new c2("http://www.w3.org/ns/ttml#styling textOutline", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling textShadow", function(t5, e4, a3, r3) {
      var i3 = a3.styleAttrs[n3.byName.textOutline.qname];
      if ("none" === r3 && "none" === i3)
        e4.style.textShadow = "";
      else {
        var l3 = [];
        if ("none" !== i3) {
          var o3 = "rgba(" + i3.color[0].toString() + "," + i3.color[1].toString() + "," + i3.color[2].toString() + "," + (i3.color[3] / 255).toString() + ")";
          l3.push("1px 1px 1px " + o3), l3.push("-1px 1px 1px " + o3), l3.push("1px -1px 1px " + o3), l3.push("-1px -1px 1px " + o3);
        }
        if ("none" !== r3)
          for (var s3 = 0; s3 < r3.length; s3++)
            l3.push(r3[s3].x_off.toUsedLength(t5.w, t5.h) + "px " + r3[s3].y_off.toUsedLength(t5.w, t5.h) + "px " + r3[s3].b_radius.toUsedLength(t5.w, t5.h) + "px rgba(" + r3[s3].color[0].toString() + "," + r3[s3].color[1].toString() + "," + r3[s3].color[2].toString() + "," + (r3[s3].color[3] / 255).toString() + ")");
        e4.style.textShadow = l3.join(",");
      }
    }), new c2("http://www.w3.org/ns/ttml#styling textCombine", function(t5, e4, n4, a3) {
      e4.style.textCombineUpright = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling textEmphasis", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling unicodeBidi", function(t5, e4, n4, a3) {
      var r3;
      r3 = "bidiOverride" === a3 ? "bidi-override" : a3, e4.style.unicodeBidi = r3;
    }), new c2("http://www.w3.org/ns/ttml#styling visibility", function(t5, e4, n4, a3) {
      e4.style.visibility = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling wrapOption", function(t5, e4, n4, a3) {
      "wrap" === a3 ? "preserve" === n4.space ? e4.style.whiteSpace = "pre-wrap" : e4.style.whiteSpace = "normal" : "preserve" === n4.space ? e4.style.whiteSpace = "pre" : e4.style.whiteSpace = "noWrap";
    }), new c2("http://www.w3.org/ns/ttml#styling writingMode", function(t5, e4, n4, a3) {
      "lrtb" === a3 || "lr" === a3 || "rltb" === a3 || "rl" === a3 ? e4.style.writingMode = "horizontal-tb" : "tblr" === a3 ? e4.style.writingMode = "vertical-lr" : "tbrl" !== a3 && "tb" !== a3 || (e4.style.writingMode = "vertical-rl");
    }), new c2("http://www.w3.org/ns/ttml#styling zIndex", function(t5, e4, n4, a3) {
      e4.style.zIndex = a3;
    }), new c2("http://www.w3.org/ns/ttml/profile/imsc1#styling forcedDisplay", function(t5, e4, n4, a3) {
      t5.displayForcedOnlyMode && false === a3 && (e4.style.visibility = "hidden");
    })], g2 = {}, m2 = 0; m2 < f2.length; m2++)
      g2[f2[m2].qname] = f2[m2];
    var h2 = "webkitRubyPosition" in window.getComputedStyle(document.documentElement), p2 = h2 ? "webkitRubyPosition" : "rubyPosition", b2 = "webkitTextEmphasisStyle" in window.getComputedStyle(document.documentElement) ? "webkitTextEmphasisStyle" : "textEmphasisStyle", y2 = "webkitTextEmphasisPosition" in window.getComputedStyle(document.documentElement) ? "webkitTextEmphasisPosition" : "textEmphasisPosition";
    function E2(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 8905: function(t3, e2, n2) {
  !function(t4, e3, n3, a2) {
    t4.generateISD = function(t5, e4, a3) {
      var r3, l3 = new s2(t5), o3 = {}, u3 = {}, d3 = t5.head.styling.initials[n3.byName.showBackground.qname], c2 = t5.head.styling.initials[n3.byName.backgroundColor.qname];
      for (var f2 in t5.head.layout.regions)
        if (t5.head.layout.regions.hasOwnProperty(f2)) {
          var g2 = t5.head.layout.regions[f2], m2 = g2.styleAttrs[n3.byName.showBackground.qname] || d3, h2 = g2.styleAttrs[n3.byName.backgroundColor.qname] || c2;
          u3[g2.id] = ("always" === m2 || void 0 === m2) && void 0 !== h2 && !(e4 < g2.begin || e4 >= g2.end);
        }
      for (var p2 in t5.body && t5.body.regionID && (u3[t5.body.regionID] = true), r3 = null !== t5.body ? function t6(e5, n4) {
        if (n4.contents) {
          var a4 = {};
          for (var r4 in n4)
            n4.hasOwnProperty(r4) && (a4[r4] = n4[r4]);
          return a4.contents = [], n4.contents.filter(function(t7) {
            return !(e5 < t7.begin || e5 >= t7.end);
          }).forEach(function(n5) {
            var r5 = t6(e5, n5);
            r5.regionID && (u3[r5.regionID] = true), null !== r5 && a4.contents.push(r5);
          }), a4;
        }
        return n4;
      }(e4, t5.body) : null, void 0 !== u3[""] && (u3[""] = true), u3)
        if (u3[p2]) {
          var b2 = i2(t5, e4, t5.head.layout.regions[p2], r3, null, "", t5.head.layout.regions[p2], a3, o3);
          null !== b2 && l3.contents.push(b2.element);
        }
      return l3;
    };
    var r2 = [n3.byName.color.qname, n3.byName.textCombine.qname, n3.byName.textDecoration.qname, n3.byName.textEmphasis.qname, n3.byName.textOutline.qname, n3.byName.textShadow.qname];
    function i2(t5, e4, s3, c2, f2, g2, m2, h2, p2) {
      if (e4 < m2.begin || e4 >= m2.end)
        return null;
      var b2 = "regionID" in m2 && "" !== m2.regionID ? m2.regionID : g2;
      if (null !== f2 && b2 !== s3.id && (!("contents" in m2) || "contents" in m2 && 0 === m2.contents.length || "" !== b2))
        return null;
      var y2 = new u2(m2);
      if ("sets" in m2)
        for (var E2 = 0; E2 < m2.sets.length; E2++)
          e4 < m2.sets[E2].begin || e4 >= m2.sets[E2].end || (y2.styleAttrs[m2.sets[E2].qname] = m2.sets[E2].value);
      var T2 = {};
      for (var _2 in y2.styleAttrs)
        if (y2.styleAttrs.hasOwnProperty(_2) && (T2[_2] = true, "region" === y2.kind && _2 === n3.byName.writingMode.qname && !(n3.byName.direction.qname in y2.styleAttrs))) {
          var v2 = y2.styleAttrs[_2];
          "lrtb" === v2 || "lr" === v2 ? y2.styleAttrs[n3.byName.direction.qname] = "ltr" : "rltb" !== v2 && "rl" !== v2 || (y2.styleAttrs[n3.byName.direction.qname] = "rtl");
        }
      if (null !== f2)
        for (var S2 = 0; S2 < n3.all.length; S2++) {
          var w2 = n3.all[S2];
          if (w2.qname === n3.byName.textDecoration.qname) {
            var I2 = f2.styleAttrs[w2.qname], k2 = y2.styleAttrs[w2.qname], A = [];
            void 0 === k2 ? A = I2 : -1 === k2.indexOf("none") ? ((-1 === k2.indexOf("noUnderline") && -1 !== I2.indexOf("underline") || -1 !== k2.indexOf("underline")) && A.push("underline"), (-1 === k2.indexOf("noLineThrough") && -1 !== I2.indexOf("lineThrough") || -1 !== k2.indexOf("lineThrough")) && A.push("lineThrough"), (-1 === k2.indexOf("noOverline") && -1 !== I2.indexOf("overline") || -1 !== k2.indexOf("overline")) && A.push("overline")) : A.push("none"), y2.styleAttrs[w2.qname] = A;
          } else if (w2.qname !== n3.byName.fontSize.qname || w2.qname in y2.styleAttrs || "span" !== y2.kind || "textContainer" !== y2.styleAttrs[n3.byName.ruby.qname])
            if (w2.qname !== n3.byName.fontSize.qname || w2.qname in y2.styleAttrs || "span" !== y2.kind || "text" !== y2.styleAttrs[n3.byName.ruby.qname])
              w2.inherit && w2.qname in f2.styleAttrs && !(w2.qname in y2.styleAttrs) && (y2.styleAttrs[w2.qname] = f2.styleAttrs[w2.qname]);
            else {
              var R = f2.styleAttrs[n3.byName.fontSize.qname];
              "textContainer" === f2.styleAttrs[n3.byName.ruby.qname] ? y2.styleAttrs[w2.qname] = R : y2.styleAttrs[w2.qname] = new a2.ComputedLength(0.5 * R.rw, 0.5 * R.rh);
            }
          else {
            var N = f2.styleAttrs[n3.byName.fontSize.qname];
            y2.styleAttrs[w2.qname] = new a2.ComputedLength(0.5 * N.rw, 0.5 * N.rh);
          }
        }
      for (var C = 0; C < n3.all.length; C++) {
        var D = n3.all[C];
        if (!(D.qname in y2.styleAttrs) && !(D.qname === n3.byName.position.qname && n3.byName.origin.qname in y2.styleAttrs || D.qname === n3.byName.origin.qname && n3.byName.position.qname in y2.styleAttrs)) {
          var x = t5.head.styling.initials[D.qname] || D.initial;
          if (null !== x && ("region" === y2.kind || false === D.inherit && null !== x)) {
            var M = D.parse(x);
            null !== M ? (y2.styleAttrs[D.qname] = M, T2[D.qname] = true) : d2(h2, "Invalid initial value for '" + D.qname + "' on element '" + y2.kind);
          }
        }
      }
      for (var P = 0; P < n3.all.length; P++) {
        var O = n3.all[P];
        if (O.qname in T2 && null !== O.compute) {
          var z = O.compute(t5, f2, y2, y2.styleAttrs[O.qname], p2);
          null !== z ? y2.styleAttrs[O.qname] = z : (y2.styleAttrs[O.qname] = O.compute(t5, f2, y2, O.parse(O.initial), p2), d2(h2, "Style '" + O.qname + "' on element '" + y2.kind + "' cannot be computed"));
        }
      }
      if ("none" === y2.styleAttrs[n3.byName.display.qname])
        return null;
      var L = null;
      null === f2 ? L = null === c2 ? [] : [c2] : "contents" in m2 && (L = m2.contents);
      for (var F = 0; null !== L && F < L.length; F++) {
        var U = i2(t5, e4, s3, c2, y2, b2, L[F], h2, p2);
        null !== U && y2.contents.push(U.element);
      }
      for (var j in y2.styleAttrs)
        if (y2.styleAttrs.hasOwnProperty(j)) {
          var q = false;
          if ("span" === y2.kind) {
            var B = y2.styleAttrs[n3.byName.ruby.qname];
            (q = ("container" === B || "textContainer" === B || "baseContainer" === B) && -1 !== r2.indexOf(j)) || (q = "container" !== B && j === n3.byName.rubyAlign.qname), q || (q = !("textContainer" === B || "text" === B) && j === n3.byName.rubyPosition.qname);
          }
          if (!q) {
            var G = n3.byQName[j];
            "applies" in G && (q = -1 === G.applies.indexOf(y2.kind));
          }
          q && delete y2.styleAttrs[j];
        }
      var H = y2.styleAttrs[n3.byName.ruby.qname];
      if ("p" === y2.kind || "span" === y2.kind && ("textContainer" === H || "text" === H)) {
        var Y = [];
        l2(y2, Y), function(t6) {
          for (var e5, n4 = 0; n4 < t6.length; )
            if ("br" !== (e5 = t6[n4]).kind && "preserve" !== e5.space) {
              var a3 = e5.text.replace(/[\t\r\n ]+/g, " ");
              /^[ ]/.test(a3) && (0 === n4 || ("br" === (r3 = t6[n4 - 1]).kind || /[\r\n\t ]$/.test(r3.text))) && (a3 = a3.substring(1)), e5.text = a3, 0 === a3.length ? t6.splice(n4, 1) : n4++;
            } else
              n4++;
          var r3, i3;
          for (n4 = 0; n4 < t6.length; n4++)
            "br" !== (e5 = t6[n4]).kind && "preserve" !== e5.space ? /[ ]$/.test(e5.text) && (n4 === t6.length - 1 || ("br" === (i3 = t6[n4 + 1]).kind || "preserve" === i3.space && /^[\r\n]/.test(i3.text))) && (e5.text = e5.text.slice(0, -1)) : n4++;
        }(Y), o2(y2);
      }
      return "div" === y2.kind && n3.byName.backgroundImage.qname in y2.styleAttrs || "br" === y2.kind || "image" === y2.kind || "contents" in y2 && y2.contents.length > 0 || "span" === y2.kind && null !== y2.text || "region" === y2.kind && "always" === y2.styleAttrs[n3.byName.showBackground.qname] ? { region_id: b2, element: y2 } : null;
    }
    function l2(t5, e4) {
      if ("contents" in t5)
        for (var a3 = 0; a3 < t5.contents.length; a3++) {
          var r3 = t5.contents[a3], i3 = r3.styleAttrs[n3.byName.ruby.qname];
          ("span" !== r3.kind || "textContainer" !== i3 && "text" !== i3) && ("contents" in r3 ? l2(r3, e4) : ("span" === r3.kind && 0 !== r3.text.length || "br" === r3.kind) && e4.push(r3));
        }
    }
    function o2(t5) {
      if ("br" === t5.kind)
        return false;
      if ("text" in t5)
        return 0 === t5.text.length;
      if ("contents" in t5) {
        for (var e4 = t5.contents.length; e4--; )
          o2(t5.contents[e4]) && t5.contents.splice(e4, 1);
        return 0 === t5.contents.length;
      }
    }
    function s2(t5) {
      this.contents = [], this.aspectRatio = t5.aspectRatio, this.lang = t5.lang;
    }
    function u2(t5) {
      for (var e4 in this.kind = t5.kind || "region", this.lang = t5.lang, t5.id && (this.id = t5.id), this.styleAttrs = {}, t5.styleAttrs)
        t5.styleAttrs.hasOwnProperty(e4) && (this.styleAttrs[e4] = t5.styleAttrs[e4]);
      "src" in t5 && (this.src = t5.src), "type" in t5 && (this.type = t5.type), "text" in t5 ? this.text = t5.text : ("region" === this.kind || "contents" in t5) && (this.contents = []), "space" in t5 && (this.space = t5.space);
    }
    function d2(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 7640: function(t3, e2, n2) {
  e2.generateISD = n2(8905).generateISD, e2.fromXML = n2(6739).fromXML, e2.renderHTML = n2(1612).render;
}, 977: function(t3, e2) {
  !function(t4) {
    t4.ns_tt = "http://www.w3.org/ns/ttml", t4.ns_tts = "http://www.w3.org/ns/ttml#styling", t4.ns_ttp = "http://www.w3.org/ns/ttml#parameter", t4.ns_xml = "http://www.w3.org/XML/1998/namespace", t4.ns_itts = "http://www.w3.org/ns/ttml/profile/imsc1#styling", t4.ns_ittp = "http://www.w3.org/ns/ttml/profile/imsc1#parameter", t4.ns_smpte = "http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt", t4.ns_ebutts = "urn:ebu:tt:style";
  }(e2);
}, 1219: function(t3, e2, n2) {
  !function(t4, e3, n3) {
    function a2(t5, e4, n4, a3, r3, i3, l2, o2) {
      this.name = e4, this.ns = t5, this.qname = t5 + " " + e4, this.inherit = r3, this.animatable = i3, this.initial = n4, this.applies = a3, this.parse = l2, this.compute = o2;
    }
    for (var r2 in t4.all = [new a2(e3.ns_tts, "backgroundColor", "transparent", ["body", "div", "p", "region", "span"], false, true, n3.parseColor, null), new a2(e3.ns_tts, "color", "white", ["span"], true, true, n3.parseColor, null), new a2(e3.ns_tts, "direction", "ltr", ["p", "span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "display", "auto", ["body", "div", "p", "region", "span"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "displayAlign", "before", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "extent", "auto", ["tt", "region"], false, true, function(t5) {
      if ("auto" === t5)
        return t5;
      var e4 = t5.split(" ");
      if (2 !== e4.length)
        return null;
      var a3 = n3.parseLength(e4[0]), r3 = n3.parseLength(e4[1]);
      return r3 && a3 ? { h: r3, w: a3 } : null;
    }, function(t5, e4, a3, r3, i3) {
      var l2, o2;
      if ("auto" === r3)
        l2 = new n3.ComputedLength(0, 1);
      else if (null === (l2 = n3.toComputedLength(r3.h.value, r3.h.unit, null, t5.dimensions.h, null, t5.pxLength.h)))
        return null;
      if ("auto" === r3)
        o2 = new n3.ComputedLength(1, 0);
      else if (null === (o2 = n3.toComputedLength(r3.w.value, r3.w.unit, null, t5.dimensions.w, null, t5.pxLength.w)))
        return null;
      return { h: l2, w: o2 };
    }), new a2(e3.ns_tts, "fontFamily", "default", ["span", "p"], true, true, function(t5) {
      for (var e4 = t5.split(","), n4 = [], a3 = 0; a3 < e4.length; a3++)
        e4[a3] = e4[a3].trim(), "'" !== e4[a3].charAt(0) && '"' !== e4[a3].charAt(0) && "default" === e4[a3] ? n4.push("monospaceSerif") : n4.push(e4[a3]);
      return n4;
    }, null), new a2(e3.ns_tts, "shear", "0%", ["p"], true, true, n3.parseLength, function(t5, e4, n4, a3) {
      return "%" !== a3.unit ? null : Math.abs(a3.value) > 100 ? 100 * Math.sign(a3.value) : a3.value;
    }), new a2(e3.ns_tts, "fontSize", "1c", ["span", "p"], true, true, n3.parseLength, function(e4, a3, r3, i3, l2) {
      return n3.toComputedLength(i3.value, i3.unit, null !== a3 ? a3.styleAttrs[t4.byName.fontSize.qname] : e4.cellLength.h, null !== a3 ? a3.styleAttrs[t4.byName.fontSize.qname] : e4.cellLength.h, e4.cellLength.h, e4.pxLength.h);
    }), new a2(e3.ns_tts, "fontStyle", "normal", ["span", "p"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "fontWeight", "normal", ["span", "p"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "lineHeight", "normal", ["p"], true, true, function(t5) {
      return "normal" === t5 ? t5 : n3.parseLength(t5);
    }, function(e4, a3, r3, i3, l2) {
      var o2;
      if ("normal" === i3)
        o2 = i3;
      else if (null === (o2 = n3.toComputedLength(i3.value, i3.unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h)))
        return null;
      return o2;
    }), new a2(e3.ns_tts, "opacity", 1, ["region"], false, true, parseFloat, null), new a2(e3.ns_tts, "origin", "auto", ["region"], false, true, function(t5) {
      if ("auto" === t5)
        return t5;
      var e4 = t5.split(" ");
      if (2 !== e4.length)
        return null;
      var a3 = n3.parseLength(e4[0]), r3 = n3.parseLength(e4[1]);
      return r3 && a3 ? { h: r3, w: a3 } : null;
    }, function(t5, e4, a3, r3, i3) {
      var l2, o2;
      if ("auto" === r3)
        l2 = new n3.ComputedLength(0, 0);
      else if (null === (l2 = n3.toComputedLength(r3.h.value, r3.h.unit, null, t5.dimensions.h, null, t5.pxLength.h)))
        return null;
      if ("auto" === r3)
        o2 = new n3.ComputedLength(0, 0);
      else if (null === (o2 = n3.toComputedLength(r3.w.value, r3.w.unit, null, t5.dimensions.w, null, t5.pxLength.w)))
        return null;
      return { h: l2, w: o2 };
    }), new a2(e3.ns_tts, "overflow", "hidden", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "padding", "0px", ["region"], false, true, function(t5) {
      var e4 = t5.split(" ");
      if (e4.length > 4)
        return null;
      for (var a3 = [], r3 = 0; r3 < e4.length; r3++) {
        var i3 = n3.parseLength(e4[r3]);
        if (!i3)
          return null;
        a3.push(i3);
      }
      return a3;
    }, function(e4, a3, r3, i3, l2) {
      var o2;
      if (1 === i3.length)
        o2 = [i3[0], i3[0], i3[0], i3[0]];
      else if (2 === i3.length)
        o2 = [i3[0], i3[1], i3[0], i3[1]];
      else if (3 === i3.length)
        o2 = [i3[0], i3[1], i3[2], i3[1]];
      else {
        if (4 !== i3.length)
          return null;
        o2 = [i3[0], i3[1], i3[2], i3[3]];
      }
      var s2 = r3.styleAttrs[t4.byName.writingMode.qname];
      if ("lrtb" === s2 || "lr" === s2)
        o2 = [o2[0], o2[3], o2[2], o2[1]];
      else if ("rltb" === s2 || "rl" === s2)
        o2 = [o2[0], o2[1], o2[2], o2[3]];
      else if ("tblr" === s2)
        o2 = [o2[3], o2[0], o2[1], o2[2]];
      else {
        if ("tbrl" !== s2 && "tb" !== s2)
          return null;
        o2 = [o2[3], o2[2], o2[1], o2[0]];
      }
      for (var u2 = [], d2 = 0; d2 < o2.length; d2++)
        if (0 === o2[d2].value)
          u2[d2] = new n3.ComputedLength(0, 0);
        else if (u2[d2] = n3.toComputedLength(o2[d2].value, o2[d2].unit, r3.styleAttrs[t4.byName.fontSize.qname], 0 === d2 || 2 === d2 ? r3.styleAttrs[t4.byName.extent.qname].h : r3.styleAttrs[t4.byName.extent.qname].w, 0 === d2 || 2 === d2 ? e4.cellLength.h : e4.cellLength.w, 0 === d2 || 2 === d2 ? e4.pxLength.h : e4.pxLength.w), null === u2[d2])
          return null;
      return u2;
    }), new a2(e3.ns_tts, "position", "top left", ["region"], false, true, function(t5) {
      return n3.parsePosition(t5);
    }, function(e4, a3, r3, i3) {
      var l2, o2;
      return null === (l2 = n3.toComputedLength(i3.v.offset.value, i3.v.offset.unit, null, new n3.ComputedLength(-r3.styleAttrs[t4.byName.extent.qname].h.rw, e4.dimensions.h.rh - r3.styleAttrs[t4.byName.extent.qname].h.rh), null, e4.pxLength.h)) ? null : ("bottom" === i3.v.edge && (l2 = new n3.ComputedLength(-l2.rw - r3.styleAttrs[t4.byName.extent.qname].h.rw, e4.dimensions.h.rh - l2.rh - r3.styleAttrs[t4.byName.extent.qname].h.rh)), o2 = n3.toComputedLength(i3.h.offset.value, i3.h.offset.unit, null, new n3.ComputedLength(e4.dimensions.w.rw - r3.styleAttrs[t4.byName.extent.qname].w.rw, -r3.styleAttrs[t4.byName.extent.qname].w.rh), null, e4.pxLength.w), null === l2 ? null : ("right" === i3.h.edge && (o2 = new n3.ComputedLength(e4.dimensions.w.rw - o2.rw - r3.styleAttrs[t4.byName.extent.qname].w.rw, -o2.rh - r3.styleAttrs[t4.byName.extent.qname].w.rh)), { h: l2, w: o2 }));
    }), new a2(e3.ns_tts, "ruby", "none", ["span"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "rubyAlign", "center", ["span"], true, true, function(t5) {
      return "center" !== t5 && "spaceAround" !== t5 ? null : t5;
    }, null), new a2(e3.ns_tts, "rubyPosition", "outside", ["span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "rubyReserve", "none", ["p"], true, true, function(t5) {
      var e4 = t5.split(" "), a3 = [null, null];
      if (0 === e4.length || e4.length > 2)
        return null;
      if ("none" !== e4[0] && "both" !== e4[0] && "after" !== e4[0] && "before" !== e4[0] && "outside" !== e4[0])
        return null;
      if (a3[0] = e4[0], 2 === e4.length && "none" !== e4[0]) {
        var r3 = n3.parseLength(e4[1]);
        if (!r3)
          return null;
        a3[1] = r3;
      }
      return a3;
    }, function(e4, a3, r3, i3, l2) {
      if ("none" === i3[0])
        return i3;
      var o2;
      return null === (o2 = null === i3[1] ? new n3.ComputedLength(0.5 * r3.styleAttrs[t4.byName.fontSize.qname].rw, 0.5 * r3.styleAttrs[t4.byName.fontSize.qname].rh) : n3.toComputedLength(i3[1].value, i3[1].unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h)) ? null : [i3[0], o2];
    }), new a2(e3.ns_tts, "showBackground", "always", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "textAlign", "start", ["p"], true, true, function(t5) {
      return t5;
    }, function(t5, e4, n4, a3, r3) {
      return "left" === a3 ? "start" : "right" === a3 ? "end" : a3;
    }), new a2(e3.ns_tts, "textCombine", "none", ["span"], true, true, function(t5) {
      return "none" === t5 || "all" === t5 ? t5 : null;
    }, null), new a2(e3.ns_tts, "textDecoration", "none", ["span"], true, true, function(t5) {
      return t5.split(" ");
    }, null), new a2(e3.ns_tts, "textEmphasis", "none", ["span"], true, true, function(t5) {
      for (var e4 = t5.split(" "), a3 = { style: null, symbol: null, color: null, position: null }, r3 = 0; r3 < e4.length; r3++)
        if ("none" === e4[r3] || "auto" === e4[r3])
          a3.style = e4[r3];
        else if ("filled" === e4[r3] || "open" === e4[r3])
          a3.style = e4[r3];
        else if ("circle" === e4[r3] || "dot" === e4[r3] || "sesame" === e4[r3])
          a3.symbol = e4[r3];
        else if ("current" === e4[r3])
          a3.color = e4[r3];
        else if ("outside" === e4[r3] || "before" === e4[r3] || "after" === e4[r3])
          a3.position = e4[r3];
        else if (a3.color = n3.parseColor(e4[r3]), null === a3.color)
          return null;
      return null == a3.style && null == a3.symbol ? a3.style = "auto" : (a3.symbol = a3.symbol || "circle", a3.style = a3.style || "filled"), a3.position = a3.position || "outside", a3.color = a3.color || "current", a3;
    }, null), new a2(e3.ns_tts, "textOutline", "none", ["span"], true, true, function(t5) {
      if ("none" === t5)
        return t5;
      var e4 = {}, a3 = t5.split(" ");
      if (0 === a3.length || a3.length > 2)
        return null;
      var r3 = n3.parseColor(a3[0]);
      if (e4.color = r3, null !== r3 && a3.shift(), 1 !== a3.length)
        return null;
      var i3 = n3.parseLength(a3[0]);
      return i3 ? (e4.thickness = i3, e4) : null;
    }, function(e4, a3, r3, i3, l2) {
      if ("none" === i3)
        return i3;
      var o2 = {};
      return null === i3.color ? o2.color = r3.styleAttrs[t4.byName.color.qname] : o2.color = i3.color, o2.thickness = n3.toComputedLength(i3.thickness.value, i3.thickness.unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h), null === o2.thickness ? null : o2;
    }), new a2(e3.ns_tts, "textShadow", "none", ["span"], true, true, n3.parseTextShadow, function(e4, a3, r3, i3) {
      if ("none" === i3)
        return i3;
      for (var l2 = [], o2 = 0; o2 < i3.length; o2++) {
        var s2 = {};
        if (s2.x_off = n3.toComputedLength(i3[o2][0].value, i3[o2][0].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.w), null === s2.x_off)
          return null;
        if (s2.y_off = n3.toComputedLength(i3[o2][1].value, i3[o2][1].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.h), null === s2.y_off)
          return null;
        if (null === i3[o2][2])
          s2.b_radius = 0;
        else if (s2.b_radius = n3.toComputedLength(i3[o2][2].value, i3[o2][2].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.h), null === s2.b_radius)
          return null;
        null === i3[o2][3] ? s2.color = r3.styleAttrs[t4.byName.color.qname] : s2.color = i3[o2][3], l2.push(s2);
      }
      return l2;
    }), new a2(e3.ns_tts, "unicodeBidi", "normal", ["span", "p"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "visibility", "visible", ["body", "div", "p", "region", "span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "wrapOption", "wrap", ["span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "writingMode", "lrtb", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "zIndex", "auto", ["region"], false, true, function(t5) {
      var e4;
      return "auto" === t5 ? e4 = t5 : (e4 = parseInt(t5), isNaN(e4) && (e4 = null)), e4;
    }, null), new a2(e3.ns_ebutts, "linePadding", "0c", ["p"], true, false, n3.parseLength, function(t5, e4, a3, r3, i3) {
      return n3.toComputedLength(r3.value, r3.unit, null, null, t5.cellLength.w, null);
    }), new a2(e3.ns_ebutts, "multiRowAlign", "auto", ["p"], true, false, function(t5) {
      return t5;
    }, null), new a2(e3.ns_smpte, "backgroundImage", null, ["div"], false, false, function(t5) {
      return t5;
    }, null), new a2(e3.ns_itts, "forcedDisplay", "false", ["body", "div", "p", "region", "span"], true, true, function(t5) {
      return "true" === t5;
    }, null), new a2(e3.ns_itts, "fillLineGap", "false", ["p"], true, true, function(t5) {
      return "true" === t5;
    }, null)], t4.byQName = {}, t4.all)
      t4.byQName[t4.all[r2].qname] = t4.all[r2];
    for (var i2 in t4.byName = {}, t4.all)
      t4.byName[t4.all[i2].name] = t4.all[i2];
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 6404: function(t3, e2) {
  !function(t4) {
    var e3 = /#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?/, n2 = /rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/, a2 = /rgba\(\s*(\d+),\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/, r2 = { transparent: [0, 0, 0, 0], black: [0, 0, 0, 255], silver: [192, 192, 192, 255], gray: [128, 128, 128, 255], white: [255, 255, 255, 255], maroon: [128, 0, 0, 255], red: [255, 0, 0, 255], purple: [128, 0, 128, 255], fuchsia: [255, 0, 255, 255], magenta: [255, 0, 255, 255], green: [0, 128, 0, 255], lime: [0, 255, 0, 255], olive: [128, 128, 0, 255], yellow: [255, 255, 0, 255], navy: [0, 0, 128, 255], blue: [0, 0, 255, 255], teal: [0, 128, 128, 255], aqua: [0, 255, 255, 255], cyan: [0, 255, 255, 255] };
    t4.parseColor = function(t5) {
      var i3, l2 = null, o2 = r2[t5.toLowerCase()];
      return void 0 !== o2 ? l2 = o2 : null !== (i3 = e3.exec(t5)) ? l2 = [parseInt(i3[1], 16), parseInt(i3[2], 16), parseInt(i3[3], 16), void 0 !== i3[4] ? parseInt(i3[4], 16) : 255] : null !== (i3 = n2.exec(t5)) ? l2 = [parseInt(i3[1]), parseInt(i3[2]), parseInt(i3[3]), 255] : null !== (i3 = a2.exec(t5)) && (l2 = [parseInt(i3[1]), parseInt(i3[2]), parseInt(i3[3]), parseInt(i3[4])]), l2;
    };
    var i2 = /^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
    t4.parseLength = function(t5) {
      var e4, n3 = null;
      return null !== (e4 = i2.exec(t5)) && (n3 = { value: parseFloat(e4[1]), unit: e4[2] }), n3;
    }, t4.parseTextShadow = function(e4) {
      for (var n3 = e4.match(/([^\(,\)]|\([^\)]+\))+/g), a3 = [], r3 = 0; r3 < n3.length; r3++) {
        var i3 = n3[r3].split(" ");
        if (1 === i3.length && "none" === i3[0])
          return "none";
        if (i3.length > 1 && i3.length < 5) {
          var l2 = [null, null, null, null], o2 = t4.parseLength(i3.shift());
          if (null === o2)
            return null;
          if (l2[0] = o2, null === (o2 = t4.parseLength(i3.shift())))
            return null;
          if (l2[1] = o2, 0 === i3.length) {
            a3.push(l2);
            continue;
          }
          if (null !== (o2 = t4.parseLength(i3[0])) && (l2[2] = o2, i3.shift()), 0 === i3.length) {
            a3.push(l2);
            continue;
          }
          var s2 = t4.parseColor(i3[0]);
          if (null === s2)
            return null;
          l2[3] = s2, a3.push(l2);
        }
      }
      return a3;
    }, t4.parsePosition = function(e4) {
      var n3 = e4.split(" "), a3 = function(t5) {
        return "center" === t5 || "left" === t5 || "top" === t5 || "bottom" === t5 || "right" === t5;
      };
      if (n3.length > 4)
        return null;
      for (var r3 = 0; r3 < n3.length; r3++)
        if (!a3(n3[r3])) {
          var i3 = t4.parseLength(n3[r3]);
          if (null === i3)
            return null;
          n3[r3] = i3;
        }
      for (var l2 = { h: { edge: "left", offset: { value: 50, unit: "%" } }, v: { edge: "top", offset: { value: 50, unit: "%" } } }, o2 = 0; o2 < n3.length; ) {
        var s2 = n3[o2++];
        if (a3(s2)) {
          var u2 = { value: 0, unit: "%" };
          2 !== n3.length && o2 < n3.length && !a3(n3[o2]) && (u2 = n3[o2++]), "right" === s2 ? (l2.h.edge = s2, l2.h.offset = u2) : "bottom" === s2 ? (l2.v.edge = s2, l2.v.offset = u2) : "left" === s2 ? l2.h.offset = u2 : "top" === s2 && (l2.v.offset = u2);
        } else {
          if (1 !== n3.length && 2 !== n3.length)
            return null;
          1 === o2 ? l2.h.offset = s2 : l2.v.offset = s2;
        }
      }
      return l2;
    }, t4.ComputedLength = function(t5, e4) {
      this.rw = t5, this.rh = e4;
    }, t4.ComputedLength.prototype.toUsedLength = function(t5, e4) {
      return t5 * this.rw + e4 * this.rh;
    }, t4.ComputedLength.prototype.isZero = function() {
      return 0 === this.rw && 0 === this.rh;
    }, t4.toComputedLength = function(e4, n3, a3, r3, i3, l2) {
      return "%" === n3 && r3 ? new t4.ComputedLength(r3.rw * e4 / 100, r3.rh * e4 / 100) : "em" === n3 && a3 ? new t4.ComputedLength(a3.rw * e4, a3.rh * e4) : "c" === n3 && i3 ? new t4.ComputedLength(e4 * i3.rw, e4 * i3.rh) : "px" === n3 && l2 ? new t4.ComputedLength(e4 * l2.rw, e4 * l2.rh) : "rh" === n3 ? new t4.ComputedLength(0, e4 / 100) : "rw" === n3 ? new t4.ComputedLength(e4 / 100, 0) : null;
    };
  }(e2);
}, 7523: function(t3) {
  "function" == typeof Object.create ? t3.exports = function(t4, e2) {
    e2 && (t4.super_ = e2, t4.prototype = Object.create(e2.prototype, { constructor: { value: t4, enumerable: false, writable: true, configurable: true } }));
  } : t3.exports = function(t4, e2) {
    if (e2) {
      t4.super_ = e2;
      var n2 = function() {
      };
      n2.prototype = e2.prototype, t4.prototype = new n2(), t4.prototype.constructor = t4;
    }
  };
}, 3282: function(t3) {
  function e2(t4) {
    if ("string" != typeof t4)
      throw new TypeError("Path must be a string. Received " + JSON.stringify(t4));
  }
  function n2(t4, e3) {
    for (var n3, a3 = "", r2 = 0, i2 = -1, l2 = 0, o2 = 0; o2 <= t4.length; ++o2) {
      if (o2 < t4.length)
        n3 = t4.charCodeAt(o2);
      else {
        if (47 === n3)
          break;
        n3 = 47;
      }
      if (47 === n3) {
        if (i2 === o2 - 1 || 1 === l2)
          ;
        else if (i2 !== o2 - 1 && 2 === l2) {
          if (a3.length < 2 || 2 !== r2 || 46 !== a3.charCodeAt(a3.length - 1) || 46 !== a3.charCodeAt(a3.length - 2)) {
            if (a3.length > 2) {
              var s2 = a3.lastIndexOf("/");
              if (s2 !== a3.length - 1) {
                -1 === s2 ? (a3 = "", r2 = 0) : r2 = (a3 = a3.slice(0, s2)).length - 1 - a3.lastIndexOf("/"), i2 = o2, l2 = 0;
                continue;
              }
            } else if (2 === a3.length || 1 === a3.length) {
              a3 = "", r2 = 0, i2 = o2, l2 = 0;
              continue;
            }
          }
          e3 && (a3.length > 0 ? a3 += "/.." : a3 = "..", r2 = 2);
        } else
          a3.length > 0 ? a3 += "/" + t4.slice(i2 + 1, o2) : a3 = t4.slice(i2 + 1, o2), r2 = o2 - i2 - 1;
        i2 = o2, l2 = 0;
      } else
        46 === n3 && -1 !== l2 ? ++l2 : l2 = -1;
    }
    return a3;
  }
  var a2 = { resolve: function() {
    for (var t4, a3 = "", r2 = false, i2 = arguments.length - 1; i2 >= -1 && !r2; i2--) {
      var l2;
      i2 >= 0 ? l2 = arguments[i2] : (void 0 === t4 && (t4 = process.cwd()), l2 = t4), e2(l2), 0 !== l2.length && (a3 = l2 + "/" + a3, r2 = 47 === l2.charCodeAt(0));
    }
    return a3 = n2(a3, !r2), r2 ? a3.length > 0 ? "/" + a3 : "/" : a3.length > 0 ? a3 : ".";
  }, normalize: function(t4) {
    if (e2(t4), 0 === t4.length)
      return ".";
    var a3 = 47 === t4.charCodeAt(0), r2 = 47 === t4.charCodeAt(t4.length - 1);
    return 0 !== (t4 = n2(t4, !a3)).length || a3 || (t4 = "."), t4.length > 0 && r2 && (t4 += "/"), a3 ? "/" + t4 : t4;
  }, isAbsolute: function(t4) {
    return e2(t4), t4.length > 0 && 47 === t4.charCodeAt(0);
  }, join: function() {
    if (0 === arguments.length)
      return ".";
    for (var t4, n3 = 0; n3 < arguments.length; ++n3) {
      var r2 = arguments[n3];
      e2(r2), r2.length > 0 && (void 0 === t4 ? t4 = r2 : t4 += "/" + r2);
    }
    return void 0 === t4 ? "." : a2.normalize(t4);
  }, relative: function(t4, n3) {
    if (e2(t4), e2(n3), t4 === n3)
      return "";
    if ((t4 = a2.resolve(t4)) === (n3 = a2.resolve(n3)))
      return "";
    for (var r2 = 1; r2 < t4.length && 47 === t4.charCodeAt(r2); ++r2)
      ;
    for (var i2 = t4.length, l2 = i2 - r2, o2 = 1; o2 < n3.length && 47 === n3.charCodeAt(o2); ++o2)
      ;
    for (var s2 = n3.length - o2, u2 = l2 < s2 ? l2 : s2, d2 = -1, c2 = 0; c2 <= u2; ++c2) {
      if (c2 === u2) {
        if (s2 > u2) {
          if (47 === n3.charCodeAt(o2 + c2))
            return n3.slice(o2 + c2 + 1);
          if (0 === c2)
            return n3.slice(o2 + c2);
        } else
          l2 > u2 && (47 === t4.charCodeAt(r2 + c2) ? d2 = c2 : 0 === c2 && (d2 = 0));
        break;
      }
      var f2 = t4.charCodeAt(r2 + c2);
      if (f2 !== n3.charCodeAt(o2 + c2))
        break;
      47 === f2 && (d2 = c2);
    }
    var g2 = "";
    for (c2 = r2 + d2 + 1; c2 <= i2; ++c2)
      c2 !== i2 && 47 !== t4.charCodeAt(c2) || (0 === g2.length ? g2 += ".." : g2 += "/..");
    return g2.length > 0 ? g2 + n3.slice(o2 + d2) : (o2 += d2, 47 === n3.charCodeAt(o2) && ++o2, n3.slice(o2));
  }, _makeLong: function(t4) {
    return t4;
  }, dirname: function(t4) {
    if (e2(t4), 0 === t4.length)
      return ".";
    for (var n3 = t4.charCodeAt(0), a3 = 47 === n3, r2 = -1, i2 = true, l2 = t4.length - 1; l2 >= 1; --l2)
      if (47 === (n3 = t4.charCodeAt(l2))) {
        if (!i2) {
          r2 = l2;
          break;
        }
      } else
        i2 = false;
    return -1 === r2 ? a3 ? "/" : "." : a3 && 1 === r2 ? "//" : t4.slice(0, r2);
  }, basename: function(t4, n3) {
    if (void 0 !== n3 && "string" != typeof n3)
      throw new TypeError('"ext" argument must be a string');
    e2(t4);
    var a3, r2 = 0, i2 = -1, l2 = true;
    if (void 0 !== n3 && n3.length > 0 && n3.length <= t4.length) {
      if (n3.length === t4.length && n3 === t4)
        return "";
      var o2 = n3.length - 1, s2 = -1;
      for (a3 = t4.length - 1; a3 >= 0; --a3) {
        var u2 = t4.charCodeAt(a3);
        if (47 === u2) {
          if (!l2) {
            r2 = a3 + 1;
            break;
          }
        } else
          -1 === s2 && (l2 = false, s2 = a3 + 1), o2 >= 0 && (u2 === n3.charCodeAt(o2) ? -1 == --o2 && (i2 = a3) : (o2 = -1, i2 = s2));
      }
      return r2 === i2 ? i2 = s2 : -1 === i2 && (i2 = t4.length), t4.slice(r2, i2);
    }
    for (a3 = t4.length - 1; a3 >= 0; --a3)
      if (47 === t4.charCodeAt(a3)) {
        if (!l2) {
          r2 = a3 + 1;
          break;
        }
      } else
        -1 === i2 && (l2 = false, i2 = a3 + 1);
    return -1 === i2 ? "" : t4.slice(r2, i2);
  }, extname: function(t4) {
    e2(t4);
    for (var n3 = -1, a3 = 0, r2 = -1, i2 = true, l2 = 0, o2 = t4.length - 1; o2 >= 0; --o2) {
      var s2 = t4.charCodeAt(o2);
      if (47 !== s2)
        -1 === r2 && (i2 = false, r2 = o2 + 1), 46 === s2 ? -1 === n3 ? n3 = o2 : 1 !== l2 && (l2 = 1) : -1 !== n3 && (l2 = -1);
      else if (!i2) {
        a3 = o2 + 1;
        break;
      }
    }
    return -1 === n3 || -1 === r2 || 0 === l2 || 1 === l2 && n3 === r2 - 1 && n3 === a3 + 1 ? "" : t4.slice(n3, r2);
  }, format: function(t4) {
    if (null === t4 || "object" != typeof t4)
      throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t4);
    return function(t5, e3) {
      var n3 = e3.dir || e3.root, a3 = e3.base || (e3.name || "") + (e3.ext || "");
      return n3 ? n3 === e3.root ? n3 + a3 : n3 + "/" + a3 : a3;
    }(0, t4);
  }, parse: function(t4) {
    e2(t4);
    var n3 = { root: "", dir: "", base: "", ext: "", name: "" };
    if (0 === t4.length)
      return n3;
    var a3, r2 = t4.charCodeAt(0), i2 = 47 === r2;
    i2 ? (n3.root = "/", a3 = 1) : a3 = 0;
    for (var l2 = -1, o2 = 0, s2 = -1, u2 = true, d2 = t4.length - 1, c2 = 0; d2 >= a3; --d2)
      if (47 !== (r2 = t4.charCodeAt(d2)))
        -1 === s2 && (u2 = false, s2 = d2 + 1), 46 === r2 ? -1 === l2 ? l2 = d2 : 1 !== c2 && (c2 = 1) : -1 !== l2 && (c2 = -1);
      else if (!u2) {
        o2 = d2 + 1;
        break;
      }
    return -1 === l2 || -1 === s2 || 0 === c2 || 1 === c2 && l2 === s2 - 1 && l2 === o2 + 1 ? -1 !== s2 && (n3.base = n3.name = 0 === o2 && i2 ? t4.slice(1, s2) : t4.slice(o2, s2)) : (0 === o2 && i2 ? (n3.name = t4.slice(1, l2), n3.base = t4.slice(1, s2)) : (n3.name = t4.slice(o2, l2), n3.base = t4.slice(o2, s2)), n3.ext = t4.slice(l2, s2)), o2 > 0 ? n3.dir = t4.slice(0, o2 - 1) : i2 && (n3.dir = "/"), n3;
  }, sep: "/", delimiter: ":", win32: null, posix: null };
  a2.posix = a2, t3.exports = a2;
}, 3515: function(t3, e2, n2) {
  t3.exports = r2;
  var a2 = n2(9826).EventEmitter;
  function r2() {
    a2.call(this);
  }
  n2(7523)(r2, a2), r2.Readable = n2(2762), r2.Writable = n2(3726), r2.Duplex = n2(884), r2.Transform = n2(6756), r2.PassThrough = n2(1390), r2.finished = n2(2896), r2.pipeline = n2(8460), r2.Stream = r2, r2.prototype.pipe = function(t4, e3) {
    var n3 = this;
    function r3(e4) {
      t4.writable && false === t4.write(e4) && n3.pause && n3.pause();
    }
    function i2() {
      n3.readable && n3.resume && n3.resume();
    }
    n3.on("data", r3), t4.on("drain", i2), t4._isStdio || e3 && false === e3.end || (n3.on("end", o2), n3.on("close", s2));
    var l2 = false;
    function o2() {
      l2 || (l2 = true, t4.end());
    }
    function s2() {
      l2 || (l2 = true, "function" == typeof t4.destroy && t4.destroy());
    }
    function u2(t5) {
      if (d2(), 0 === a2.listenerCount(this, "error"))
        throw t5;
    }
    function d2() {
      n3.removeListener("data", r3), t4.removeListener("drain", i2), n3.removeListener("end", o2), n3.removeListener("close", s2), n3.removeListener("error", u2), t4.removeListener("error", u2), n3.removeListener("end", d2), n3.removeListener("close", d2), t4.removeListener("close", d2);
    }
    return n3.on("error", u2), t4.on("error", u2), n3.on("end", d2), n3.on("close", d2), t4.on("close", d2), t4.emit("pipe", n3), t4;
  };
}, 1602: function(t3) {
  var e2 = {};
  function n2(t4, n3, a3) {
    a3 || (a3 = Error);
    var r2 = function(t5) {
      var e3, a4;
      function r3(e4, a5, r4) {
        return t5.call(this, function(t6, e5, a6) {
          return "string" == typeof n3 ? n3 : n3(t6, e5, a6);
        }(e4, a5, r4)) || this;
      }
      return a4 = t5, (e3 = r3).prototype = Object.create(a4.prototype), e3.prototype.constructor = e3, e3.__proto__ = a4, r3;
    }(a3);
    r2.prototype.name = a3.name, r2.prototype.code = t4, e2[t4] = r2;
  }
  function a2(t4, e3) {
    if (Array.isArray(t4)) {
      var n3 = t4.length;
      return t4 = t4.map(function(t5) {
        return String(t5);
      }), n3 > 2 ? "one of ".concat(e3, " ").concat(t4.slice(0, n3 - 1).join(", "), ", or ") + t4[n3 - 1] : 2 === n3 ? "one of ".concat(e3, " ").concat(t4[0], " or ").concat(t4[1]) : "of ".concat(e3, " ").concat(t4[0]);
    }
    return "of ".concat(e3, " ").concat(String(t4));
  }
  n2("ERR_INVALID_OPT_VALUE", function(t4, e3) {
    return 'The value "' + e3 + '" is invalid for option "' + t4 + '"';
  }, TypeError), n2("ERR_INVALID_ARG_TYPE", function(t4, e3, n3) {
    var r2, i2, l2, o2, s2;
    if ("string" == typeof e3 && (i2 = "not ", e3.substr(0, 4) === i2) ? (r2 = "must not be", e3 = e3.replace(/^not /, "")) : r2 = "must be", function(t5, e4, n4) {
      return (void 0 === n4 || n4 > t5.length) && (n4 = t5.length), t5.substring(n4 - 9, n4) === e4;
    }(t4, " argument"))
      l2 = "The ".concat(t4, " ").concat(r2, " ").concat(a2(e3, "type"));
    else {
      var u2 = ("number" != typeof s2 && (s2 = 0), s2 + 1 > (o2 = t4).length || -1 === o2.indexOf(".", s2) ? "argument" : "property");
      l2 = 'The "'.concat(t4, '" ').concat(u2, " ").concat(r2, " ").concat(a2(e3, "type"));
    }
    return l2 + ". Received type ".concat(typeof n3);
  }, TypeError), n2("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"), n2("ERR_METHOD_NOT_IMPLEMENTED", function(t4) {
    return "The " + t4 + " method is not implemented";
  }), n2("ERR_STREAM_PREMATURE_CLOSE", "Premature close"), n2("ERR_STREAM_DESTROYED", function(t4) {
    return "Cannot call " + t4 + " after a stream was destroyed";
  }), n2("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"), n2("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"), n2("ERR_STREAM_WRITE_AFTER_END", "write after end"), n2("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError), n2("ERR_UNKNOWN_ENCODING", function(t4) {
    return "Unknown encoding: " + t4;
  }, TypeError), n2("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"), t3.exports.codes = e2;
}, 884: function(t3, e2, n2) {
  var a2 = Object.keys || function(t4) {
    var e3 = [];
    for (var n3 in t4)
      e3.push(n3);
    return e3;
  };
  t3.exports = u2;
  var r2 = n2(2762), i2 = n2(3726);
  n2(7523)(u2, r2);
  for (var l2 = a2(i2.prototype), o2 = 0; o2 < l2.length; o2++) {
    var s2 = l2[o2];
    u2.prototype[s2] || (u2.prototype[s2] = i2.prototype[s2]);
  }
  function u2(t4) {
    if (!(this instanceof u2))
      return new u2(t4);
    r2.call(this, t4), i2.call(this, t4), this.allowHalfOpen = true, t4 && (false === t4.readable && (this.readable = false), false === t4.writable && (this.writable = false), false === t4.allowHalfOpen && (this.allowHalfOpen = false, this.once("end", d2)));
  }
  function d2() {
    this._writableState.ended || process.nextTick(c2, this);
  }
  function c2(t4) {
    t4.end();
  }
  Object.defineProperty(u2.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
    return this._writableState.highWaterMark;
  } }), Object.defineProperty(u2.prototype, "writableBuffer", { enumerable: false, get: function() {
    return this._writableState && this._writableState.getBuffer();
  } }), Object.defineProperty(u2.prototype, "writableLength", { enumerable: false, get: function() {
    return this._writableState.length;
  } }), Object.defineProperty(u2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._readableState && void 0 !== this._writableState && this._readableState.destroyed && this._writableState.destroyed;
  }, set: function(t4) {
    void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = t4, this._writableState.destroyed = t4);
  } });
}, 1390: function(t3, e2, n2) {
  t3.exports = r2;
  var a2 = n2(6756);
  function r2(t4) {
    if (!(this instanceof r2))
      return new r2(t4);
    a2.call(this, t4);
  }
  n2(7523)(r2, a2), r2.prototype._transform = function(t4, e3, n3) {
    n3(null, t4);
  };
}, 2762: function(t3, e2, n2) {
  var a2;
  t3.exports = w2, w2.ReadableState = S2, n2(9826).EventEmitter;
  var r2, i2 = function(t4, e3) {
    return t4.listeners(e3).length;
  }, l2 = n2(2611), o2 = n2(44).Buffer, s2 = (void 0 !== n2.g ? n2.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : {}).Uint8Array || function() {
  }, u2 = n2(7199);
  r2 = u2 && u2.debuglog ? u2.debuglog("stream") : function() {
  };
  var d2, c2, f2, g2 = n2(3791), m2 = n2(2410), h2 = n2(1749).getHighWaterMark, p2 = n2(1602).codes, b2 = p2.ERR_INVALID_ARG_TYPE, y2 = p2.ERR_STREAM_PUSH_AFTER_EOF, E2 = p2.ERR_METHOD_NOT_IMPLEMENTED, T2 = p2.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
  n2(7523)(w2, l2);
  var _2 = m2.errorOrDestroy, v2 = ["error", "close", "destroy", "pause", "resume"];
  function S2(t4, e3, r3) {
    a2 = a2 || n2(884), t4 = t4 || {}, "boolean" != typeof r3 && (r3 = e3 instanceof a2), this.objectMode = !!t4.objectMode, r3 && (this.objectMode = this.objectMode || !!t4.readableObjectMode), this.highWaterMark = h2(this, t4, "readableHighWaterMark", r3), this.buffer = new g2(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = false, this.endEmitted = false, this.reading = false, this.sync = true, this.needReadable = false, this.emittedReadable = false, this.readableListening = false, this.resumeScheduled = false, this.paused = true, this.emitClose = false !== t4.emitClose, this.autoDestroy = !!t4.autoDestroy, this.destroyed = false, this.defaultEncoding = t4.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = false, this.decoder = null, this.encoding = null, t4.encoding && (d2 || (d2 = n2(748).StringDecoder), this.decoder = new d2(t4.encoding), this.encoding = t4.encoding);
  }
  function w2(t4) {
    if (a2 = a2 || n2(884), !(this instanceof w2))
      return new w2(t4);
    var e3 = this instanceof a2;
    this._readableState = new S2(t4, this, e3), this.readable = true, t4 && ("function" == typeof t4.read && (this._read = t4.read), "function" == typeof t4.destroy && (this._destroy = t4.destroy)), l2.call(this);
  }
  function I2(t4, e3, n3, a3, i3) {
    r2("readableAddChunk", e3);
    var l3, u3 = t4._readableState;
    if (null === e3)
      u3.reading = false, function(t5, e4) {
        if (r2("onEofChunk"), !e4.ended) {
          if (e4.decoder) {
            var n4 = e4.decoder.end();
            n4 && n4.length && (e4.buffer.push(n4), e4.length += e4.objectMode ? 1 : n4.length);
          }
          e4.ended = true, e4.sync ? N(t5) : (e4.needReadable = false, e4.emittedReadable || (e4.emittedReadable = true, C(t5)));
        }
      }(t4, u3);
    else if (i3 || (l3 = function(t5, e4) {
      var n4, a4;
      return a4 = e4, o2.isBuffer(a4) || a4 instanceof s2 || "string" == typeof e4 || void 0 === e4 || t5.objectMode || (n4 = new b2("chunk", ["string", "Buffer", "Uint8Array"], e4)), n4;
    }(u3, e3)), l3)
      _2(t4, l3);
    else if (u3.objectMode || e3 && e3.length > 0)
      if ("string" == typeof e3 || u3.objectMode || Object.getPrototypeOf(e3) === o2.prototype || (e3 = function(t5) {
        return o2.from(t5);
      }(e3)), a3)
        u3.endEmitted ? _2(t4, new T2()) : k2(t4, u3, e3, true);
      else if (u3.ended)
        _2(t4, new y2());
      else {
        if (u3.destroyed)
          return false;
        u3.reading = false, u3.decoder && !n3 ? (e3 = u3.decoder.write(e3), u3.objectMode || 0 !== e3.length ? k2(t4, u3, e3, false) : D(t4, u3)) : k2(t4, u3, e3, false);
      }
    else
      a3 || (u3.reading = false, D(t4, u3));
    return !u3.ended && (u3.length < u3.highWaterMark || 0 === u3.length);
  }
  function k2(t4, e3, n3, a3) {
    e3.flowing && 0 === e3.length && !e3.sync ? (e3.awaitDrain = 0, t4.emit("data", n3)) : (e3.length += e3.objectMode ? 1 : n3.length, a3 ? e3.buffer.unshift(n3) : e3.buffer.push(n3), e3.needReadable && N(t4)), D(t4, e3);
  }
  Object.defineProperty(w2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._readableState && this._readableState.destroyed;
  }, set: function(t4) {
    this._readableState && (this._readableState.destroyed = t4);
  } }), w2.prototype.destroy = m2.destroy, w2.prototype._undestroy = m2.undestroy, w2.prototype._destroy = function(t4, e3) {
    e3(t4);
  }, w2.prototype.push = function(t4, e3) {
    var n3, a3 = this._readableState;
    return a3.objectMode ? n3 = true : "string" == typeof t4 && ((e3 = e3 || a3.defaultEncoding) !== a3.encoding && (t4 = o2.from(t4, e3), e3 = ""), n3 = true), I2(this, t4, e3, false, n3);
  }, w2.prototype.unshift = function(t4) {
    return I2(this, t4, null, true, false);
  }, w2.prototype.isPaused = function() {
    return false === this._readableState.flowing;
  }, w2.prototype.setEncoding = function(t4) {
    d2 || (d2 = n2(748).StringDecoder);
    var e3 = new d2(t4);
    this._readableState.decoder = e3, this._readableState.encoding = this._readableState.decoder.encoding;
    for (var a3 = this._readableState.buffer.head, r3 = ""; null !== a3; )
      r3 += e3.write(a3.data), a3 = a3.next;
    return this._readableState.buffer.clear(), "" !== r3 && this._readableState.buffer.push(r3), this._readableState.length = r3.length, this;
  };
  var A = 1073741824;
  function R(t4, e3) {
    return t4 <= 0 || 0 === e3.length && e3.ended ? 0 : e3.objectMode ? 1 : t4 != t4 ? e3.flowing && e3.length ? e3.buffer.head.data.length : e3.length : (t4 > e3.highWaterMark && (e3.highWaterMark = function(t5) {
      return t5 >= A ? t5 = A : (t5--, t5 |= t5 >>> 1, t5 |= t5 >>> 2, t5 |= t5 >>> 4, t5 |= t5 >>> 8, t5 |= t5 >>> 16, t5++), t5;
    }(t4)), t4 <= e3.length ? t4 : e3.ended ? e3.length : (e3.needReadable = true, 0));
  }
  function N(t4) {
    var e3 = t4._readableState;
    r2("emitReadable", e3.needReadable, e3.emittedReadable), e3.needReadable = false, e3.emittedReadable || (r2("emitReadable", e3.flowing), e3.emittedReadable = true, process.nextTick(C, t4));
  }
  function C(t4) {
    var e3 = t4._readableState;
    r2("emitReadable_", e3.destroyed, e3.length, e3.ended), e3.destroyed || !e3.length && !e3.ended || (t4.emit("readable"), e3.emittedReadable = false), e3.needReadable = !e3.flowing && !e3.ended && e3.length <= e3.highWaterMark, z(t4);
  }
  function D(t4, e3) {
    e3.readingMore || (e3.readingMore = true, process.nextTick(x, t4, e3));
  }
  function x(t4, e3) {
    for (; !e3.reading && !e3.ended && (e3.length < e3.highWaterMark || e3.flowing && 0 === e3.length); ) {
      var n3 = e3.length;
      if (r2("maybeReadMore read 0"), t4.read(0), n3 === e3.length)
        break;
    }
    e3.readingMore = false;
  }
  function M(t4) {
    var e3 = t4._readableState;
    e3.readableListening = t4.listenerCount("readable") > 0, e3.resumeScheduled && !e3.paused ? e3.flowing = true : t4.listenerCount("data") > 0 && t4.resume();
  }
  function P(t4) {
    r2("readable nexttick read 0"), t4.read(0);
  }
  function O(t4, e3) {
    r2("resume", e3.reading), e3.reading || t4.read(0), e3.resumeScheduled = false, t4.emit("resume"), z(t4), e3.flowing && !e3.reading && t4.read(0);
  }
  function z(t4) {
    var e3 = t4._readableState;
    for (r2("flow", e3.flowing); e3.flowing && null !== t4.read(); )
      ;
  }
  function L(t4, e3) {
    return 0 === e3.length ? null : (e3.objectMode ? n3 = e3.buffer.shift() : !t4 || t4 >= e3.length ? (n3 = e3.decoder ? e3.buffer.join("") : 1 === e3.buffer.length ? e3.buffer.first() : e3.buffer.concat(e3.length), e3.buffer.clear()) : n3 = e3.buffer.consume(t4, e3.decoder), n3);
    var n3;
  }
  function F(t4) {
    var e3 = t4._readableState;
    r2("endReadable", e3.endEmitted), e3.endEmitted || (e3.ended = true, process.nextTick(U, e3, t4));
  }
  function U(t4, e3) {
    if (r2("endReadableNT", t4.endEmitted, t4.length), !t4.endEmitted && 0 === t4.length && (t4.endEmitted = true, e3.readable = false, e3.emit("end"), t4.autoDestroy)) {
      var n3 = e3._writableState;
      (!n3 || n3.autoDestroy && n3.finished) && e3.destroy();
    }
  }
  function j(t4, e3) {
    for (var n3 = 0, a3 = t4.length; n3 < a3; n3++)
      if (t4[n3] === e3)
        return n3;
    return -1;
  }
  w2.prototype.read = function(t4) {
    r2("read", t4), t4 = parseInt(t4, 10);
    var e3 = this._readableState, n3 = t4;
    if (0 !== t4 && (e3.emittedReadable = false), 0 === t4 && e3.needReadable && ((0 !== e3.highWaterMark ? e3.length >= e3.highWaterMark : e3.length > 0) || e3.ended))
      return r2("read: emitReadable", e3.length, e3.ended), 0 === e3.length && e3.ended ? F(this) : N(this), null;
    if (0 === (t4 = R(t4, e3)) && e3.ended)
      return 0 === e3.length && F(this), null;
    var a3, i3 = e3.needReadable;
    return r2("need readable", i3), (0 === e3.length || e3.length - t4 < e3.highWaterMark) && r2("length less than watermark", i3 = true), e3.ended || e3.reading ? r2("reading or ended", i3 = false) : i3 && (r2("do read"), e3.reading = true, e3.sync = true, 0 === e3.length && (e3.needReadable = true), this._read(e3.highWaterMark), e3.sync = false, e3.reading || (t4 = R(n3, e3))), null === (a3 = t4 > 0 ? L(t4, e3) : null) ? (e3.needReadable = e3.length <= e3.highWaterMark, t4 = 0) : (e3.length -= t4, e3.awaitDrain = 0), 0 === e3.length && (e3.ended || (e3.needReadable = true), n3 !== t4 && e3.ended && F(this)), null !== a3 && this.emit("data", a3), a3;
  }, w2.prototype._read = function(t4) {
    _2(this, new E2("_read()"));
  }, w2.prototype.pipe = function(t4, e3) {
    var n3 = this, a3 = this._readableState;
    switch (a3.pipesCount) {
      case 0:
        a3.pipes = t4;
        break;
      case 1:
        a3.pipes = [a3.pipes, t4];
        break;
      default:
        a3.pipes.push(t4);
    }
    a3.pipesCount += 1, r2("pipe count=%d opts=%j", a3.pipesCount, e3);
    var l3 = e3 && false === e3.end || t4 === process.stdout || t4 === process.stderr ? m3 : o3;
    function o3() {
      r2("onend"), t4.end();
    }
    a3.endEmitted ? process.nextTick(l3) : n3.once("end", l3), t4.on("unpipe", function e4(i3, l4) {
      r2("onunpipe"), i3 === n3 && l4 && false === l4.hasUnpiped && (l4.hasUnpiped = true, r2("cleanup"), t4.removeListener("close", f3), t4.removeListener("finish", g3), t4.removeListener("drain", s3), t4.removeListener("error", c3), t4.removeListener("unpipe", e4), n3.removeListener("end", o3), n3.removeListener("end", m3), n3.removeListener("data", d3), u3 = true, !a3.awaitDrain || t4._writableState && !t4._writableState.needDrain || s3());
    });
    var s3 = /* @__PURE__ */ function(t5) {
      return function() {
        var e4 = t5._readableState;
        r2("pipeOnDrain", e4.awaitDrain), e4.awaitDrain && e4.awaitDrain--, 0 === e4.awaitDrain && i2(t5, "data") && (e4.flowing = true, z(t5));
      };
    }(n3);
    t4.on("drain", s3);
    var u3 = false;
    function d3(e4) {
      r2("ondata");
      var i3 = t4.write(e4);
      r2("dest.write", i3), false === i3 && ((1 === a3.pipesCount && a3.pipes === t4 || a3.pipesCount > 1 && -1 !== j(a3.pipes, t4)) && !u3 && (r2("false write response, pause", a3.awaitDrain), a3.awaitDrain++), n3.pause());
    }
    function c3(e4) {
      r2("onerror", e4), m3(), t4.removeListener("error", c3), 0 === i2(t4, "error") && _2(t4, e4);
    }
    function f3() {
      t4.removeListener("finish", g3), m3();
    }
    function g3() {
      r2("onfinish"), t4.removeListener("close", f3), m3();
    }
    function m3() {
      r2("unpipe"), n3.unpipe(t4);
    }
    return n3.on("data", d3), function(t5, e4, n4) {
      if ("function" == typeof t5.prependListener)
        return t5.prependListener(e4, n4);
      t5._events && t5._events[e4] ? Array.isArray(t5._events[e4]) ? t5._events[e4].unshift(n4) : t5._events[e4] = [n4, t5._events[e4]] : t5.on(e4, n4);
    }(t4, "error", c3), t4.once("close", f3), t4.once("finish", g3), t4.emit("pipe", n3), a3.flowing || (r2("pipe resume"), n3.resume()), t4;
  }, w2.prototype.unpipe = function(t4) {
    var e3 = this._readableState, n3 = { hasUnpiped: false };
    if (0 === e3.pipesCount)
      return this;
    if (1 === e3.pipesCount)
      return t4 && t4 !== e3.pipes || (t4 || (t4 = e3.pipes), e3.pipes = null, e3.pipesCount = 0, e3.flowing = false, t4 && t4.emit("unpipe", this, n3)), this;
    if (!t4) {
      var a3 = e3.pipes, r3 = e3.pipesCount;
      e3.pipes = null, e3.pipesCount = 0, e3.flowing = false;
      for (var i3 = 0; i3 < r3; i3++)
        a3[i3].emit("unpipe", this, { hasUnpiped: false });
      return this;
    }
    var l3 = j(e3.pipes, t4);
    return -1 === l3 || (e3.pipes.splice(l3, 1), e3.pipesCount -= 1, 1 === e3.pipesCount && (e3.pipes = e3.pipes[0]), t4.emit("unpipe", this, n3)), this;
  }, w2.prototype.on = function(t4, e3) {
    var n3 = l2.prototype.on.call(this, t4, e3), a3 = this._readableState;
    return "data" === t4 ? (a3.readableListening = this.listenerCount("readable") > 0, false !== a3.flowing && this.resume()) : "readable" === t4 && (a3.endEmitted || a3.readableListening || (a3.readableListening = a3.needReadable = true, a3.flowing = false, a3.emittedReadable = false, r2("on readable", a3.length, a3.reading), a3.length ? N(this) : a3.reading || process.nextTick(P, this))), n3;
  }, w2.prototype.addListener = w2.prototype.on, w2.prototype.removeListener = function(t4, e3) {
    var n3 = l2.prototype.removeListener.call(this, t4, e3);
    return "readable" === t4 && process.nextTick(M, this), n3;
  }, w2.prototype.removeAllListeners = function(t4) {
    var e3 = l2.prototype.removeAllListeners.apply(this, arguments);
    return "readable" !== t4 && void 0 !== t4 || process.nextTick(M, this), e3;
  }, w2.prototype.resume = function() {
    var t4 = this._readableState;
    return t4.flowing || (r2("resume"), t4.flowing = !t4.readableListening, function(t5, e3) {
      e3.resumeScheduled || (e3.resumeScheduled = true, process.nextTick(O, t5, e3));
    }(this, t4)), t4.paused = false, this;
  }, w2.prototype.pause = function() {
    return r2("call pause flowing=%j", this._readableState.flowing), false !== this._readableState.flowing && (r2("pause"), this._readableState.flowing = false, this.emit("pause")), this._readableState.paused = true, this;
  }, w2.prototype.wrap = function(t4) {
    var e3 = this, n3 = this._readableState, a3 = false;
    for (var i3 in t4.on("end", function() {
      if (r2("wrapped end"), n3.decoder && !n3.ended) {
        var t5 = n3.decoder.end();
        t5 && t5.length && e3.push(t5);
      }
      e3.push(null);
    }), t4.on("data", function(i4) {
      r2("wrapped data"), n3.decoder && (i4 = n3.decoder.write(i4)), n3.objectMode && null == i4 || (n3.objectMode || i4 && i4.length) && (e3.push(i4) || (a3 = true, t4.pause()));
    }), t4)
      void 0 === this[i3] && "function" == typeof t4[i3] && (this[i3] = /* @__PURE__ */ function(e4) {
        return function() {
          return t4[e4].apply(t4, arguments);
        };
      }(i3));
    for (var l3 = 0; l3 < v2.length; l3++)
      t4.on(v2[l3], this.emit.bind(this, v2[l3]));
    return this._read = function(e4) {
      r2("wrapped _read", e4), a3 && (a3 = false, t4.resume());
    }, this;
  }, "function" == typeof Symbol && (w2.prototype[Symbol.asyncIterator] = function() {
    return void 0 === c2 && (c2 = n2(5857)), c2(this);
  }), Object.defineProperty(w2.prototype, "readableHighWaterMark", { enumerable: false, get: function() {
    return this._readableState.highWaterMark;
  } }), Object.defineProperty(w2.prototype, "readableBuffer", { enumerable: false, get: function() {
    return this._readableState && this._readableState.buffer;
  } }), Object.defineProperty(w2.prototype, "readableFlowing", { enumerable: false, get: function() {
    return this._readableState.flowing;
  }, set: function(t4) {
    this._readableState && (this._readableState.flowing = t4);
  } }), w2._fromList = L, Object.defineProperty(w2.prototype, "readableLength", { enumerable: false, get: function() {
    return this._readableState.length;
  } }), "function" == typeof Symbol && (w2.from = function(t4, e3) {
    return void 0 === f2 && (f2 = n2(3411)), f2(w2, t4, e3);
  });
}, 6756: function(t3, e2, n2) {
  t3.exports = d2;
  var a2 = n2(1602).codes, r2 = a2.ERR_METHOD_NOT_IMPLEMENTED, i2 = a2.ERR_MULTIPLE_CALLBACK, l2 = a2.ERR_TRANSFORM_ALREADY_TRANSFORMING, o2 = a2.ERR_TRANSFORM_WITH_LENGTH_0, s2 = n2(884);
  function u2(t4, e3) {
    var n3 = this._transformState;
    n3.transforming = false;
    var a3 = n3.writecb;
    if (null === a3)
      return this.emit("error", new i2());
    n3.writechunk = null, n3.writecb = null, null != e3 && this.push(e3), a3(t4);
    var r3 = this._readableState;
    r3.reading = false, (r3.needReadable || r3.length < r3.highWaterMark) && this._read(r3.highWaterMark);
  }
  function d2(t4) {
    if (!(this instanceof d2))
      return new d2(t4);
    s2.call(this, t4), this._transformState = { afterTransform: u2.bind(this), needTransform: false, transforming: false, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = true, this._readableState.sync = false, t4 && ("function" == typeof t4.transform && (this._transform = t4.transform), "function" == typeof t4.flush && (this._flush = t4.flush)), this.on("prefinish", c2);
  }
  function c2() {
    var t4 = this;
    "function" != typeof this._flush || this._readableState.destroyed ? f2(this, null, null) : this._flush(function(e3, n3) {
      f2(t4, e3, n3);
    });
  }
  function f2(t4, e3, n3) {
    if (e3)
      return t4.emit("error", e3);
    if (null != n3 && t4.push(n3), t4._writableState.length)
      throw new o2();
    if (t4._transformState.transforming)
      throw new l2();
    return t4.push(null);
  }
  n2(7523)(d2, s2), d2.prototype.push = function(t4, e3) {
    return this._transformState.needTransform = false, s2.prototype.push.call(this, t4, e3);
  }, d2.prototype._transform = function(t4, e3, n3) {
    n3(new r2("_transform()"));
  }, d2.prototype._write = function(t4, e3, n3) {
    var a3 = this._transformState;
    if (a3.writecb = n3, a3.writechunk = t4, a3.writeencoding = e3, !a3.transforming) {
      var r3 = this._readableState;
      (a3.needTransform || r3.needReadable || r3.length < r3.highWaterMark) && this._read(r3.highWaterMark);
    }
  }, d2.prototype._read = function(t4) {
    var e3 = this._transformState;
    null === e3.writechunk || e3.transforming ? e3.needTransform = true : (e3.transforming = true, this._transform(e3.writechunk, e3.writeencoding, e3.afterTransform));
  }, d2.prototype._destroy = function(t4, e3) {
    s2.prototype._destroy.call(this, t4, function(t5) {
      e3(t5);
    });
  };
}, 3726: function(t3, e2, n2) {
  function a2(t4) {
    var e3 = this;
    this.next = null, this.entry = null, this.finish = function() {
      !function(t5, e4) {
        var n3 = t5.entry;
        for (t5.entry = null; n3; ) {
          var a3 = n3.callback;
          e4.pendingcb--, a3(void 0), n3 = n3.next;
        }
        e4.corkedRequestsFree.next = t5;
      }(e3, t4);
    };
  }
  var r2;
  t3.exports = w2, w2.WritableState = S2;
  var i2, l2 = { deprecate: n2(9e3) }, o2 = n2(2611), s2 = n2(44).Buffer, u2 = (void 0 !== n2.g ? n2.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : {}).Uint8Array || function() {
  }, d2 = n2(2410), c2 = n2(1749).getHighWaterMark, f2 = n2(1602).codes, g2 = f2.ERR_INVALID_ARG_TYPE, m2 = f2.ERR_METHOD_NOT_IMPLEMENTED, h2 = f2.ERR_MULTIPLE_CALLBACK, p2 = f2.ERR_STREAM_CANNOT_PIPE, b2 = f2.ERR_STREAM_DESTROYED, y2 = f2.ERR_STREAM_NULL_VALUES, E2 = f2.ERR_STREAM_WRITE_AFTER_END, T2 = f2.ERR_UNKNOWN_ENCODING, _2 = d2.errorOrDestroy;
  function v2() {
  }
  function S2(t4, e3, i3) {
    r2 = r2 || n2(884), t4 = t4 || {}, "boolean" != typeof i3 && (i3 = e3 instanceof r2), this.objectMode = !!t4.objectMode, i3 && (this.objectMode = this.objectMode || !!t4.writableObjectMode), this.highWaterMark = c2(this, t4, "writableHighWaterMark", i3), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false;
    var l3 = false === t4.decodeStrings;
    this.decodeStrings = !l3, this.defaultEncoding = t4.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = function(t5) {
      !function(t6, e4) {
        var n3 = t6._writableState, a3 = n3.sync, r3 = n3.writecb;
        if ("function" != typeof r3)
          throw new h2();
        if (function(t7) {
          t7.writing = false, t7.writecb = null, t7.length -= t7.writelen, t7.writelen = 0;
        }(n3), e4)
          !function(t7, e5, n4, a4, r4) {
            --e5.pendingcb, n4 ? (process.nextTick(r4, a4), process.nextTick(C, t7, e5), t7._writableState.errorEmitted = true, _2(t7, a4)) : (r4(a4), t7._writableState.errorEmitted = true, _2(t7, a4), C(t7, e5));
          }(t6, n3, a3, e4, r3);
        else {
          var i4 = R(n3) || t6.destroyed;
          i4 || n3.corked || n3.bufferProcessing || !n3.bufferedRequest || A(t6, n3), a3 ? process.nextTick(k2, t6, n3, i4, r3) : k2(t6, n3, i4, r3);
        }
      }(e3, t5);
    }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = false, this.errorEmitted = false, this.emitClose = false !== t4.emitClose, this.autoDestroy = !!t4.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new a2(this);
  }
  function w2(t4) {
    var e3 = this instanceof (r2 = r2 || n2(884));
    if (!e3 && !i2.call(w2, this))
      return new w2(t4);
    this._writableState = new S2(t4, this, e3), this.writable = true, t4 && ("function" == typeof t4.write && (this._write = t4.write), "function" == typeof t4.writev && (this._writev = t4.writev), "function" == typeof t4.destroy && (this._destroy = t4.destroy), "function" == typeof t4.final && (this._final = t4.final)), o2.call(this);
  }
  function I2(t4, e3, n3, a3, r3, i3, l3) {
    e3.writelen = a3, e3.writecb = l3, e3.writing = true, e3.sync = true, e3.destroyed ? e3.onwrite(new b2("write")) : n3 ? t4._writev(r3, e3.onwrite) : t4._write(r3, i3, e3.onwrite), e3.sync = false;
  }
  function k2(t4, e3, n3, a3) {
    n3 || function(t5, e4) {
      0 === e4.length && e4.needDrain && (e4.needDrain = false, t5.emit("drain"));
    }(t4, e3), e3.pendingcb--, a3(), C(t4, e3);
  }
  function A(t4, e3) {
    e3.bufferProcessing = true;
    var n3 = e3.bufferedRequest;
    if (t4._writev && n3 && n3.next) {
      var r3 = e3.bufferedRequestCount, i3 = new Array(r3), l3 = e3.corkedRequestsFree;
      l3.entry = n3;
      for (var o3 = 0, s3 = true; n3; )
        i3[o3] = n3, n3.isBuf || (s3 = false), n3 = n3.next, o3 += 1;
      i3.allBuffers = s3, I2(t4, e3, true, e3.length, i3, "", l3.finish), e3.pendingcb++, e3.lastBufferedRequest = null, l3.next ? (e3.corkedRequestsFree = l3.next, l3.next = null) : e3.corkedRequestsFree = new a2(e3), e3.bufferedRequestCount = 0;
    } else {
      for (; n3; ) {
        var u3 = n3.chunk, d3 = n3.encoding, c3 = n3.callback;
        if (I2(t4, e3, false, e3.objectMode ? 1 : u3.length, u3, d3, c3), n3 = n3.next, e3.bufferedRequestCount--, e3.writing)
          break;
      }
      null === n3 && (e3.lastBufferedRequest = null);
    }
    e3.bufferedRequest = n3, e3.bufferProcessing = false;
  }
  function R(t4) {
    return t4.ending && 0 === t4.length && null === t4.bufferedRequest && !t4.finished && !t4.writing;
  }
  function N(t4, e3) {
    t4._final(function(n3) {
      e3.pendingcb--, n3 && _2(t4, n3), e3.prefinished = true, t4.emit("prefinish"), C(t4, e3);
    });
  }
  function C(t4, e3) {
    var n3 = R(e3);
    if (n3 && (function(t5, e4) {
      e4.prefinished || e4.finalCalled || ("function" != typeof t5._final || e4.destroyed ? (e4.prefinished = true, t5.emit("prefinish")) : (e4.pendingcb++, e4.finalCalled = true, process.nextTick(N, t5, e4)));
    }(t4, e3), 0 === e3.pendingcb && (e3.finished = true, t4.emit("finish"), e3.autoDestroy))) {
      var a3 = t4._readableState;
      (!a3 || a3.autoDestroy && a3.endEmitted) && t4.destroy();
    }
    return n3;
  }
  n2(7523)(w2, o2), S2.prototype.getBuffer = function() {
    for (var t4 = this.bufferedRequest, e3 = []; t4; )
      e3.push(t4), t4 = t4.next;
    return e3;
  }, function() {
    try {
      Object.defineProperty(S2.prototype, "buffer", { get: l2.deprecate(function() {
        return this.getBuffer();
      }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") });
    } catch (t4) {
    }
  }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (i2 = Function.prototype[Symbol.hasInstance], Object.defineProperty(w2, Symbol.hasInstance, { value: function(t4) {
    return !!i2.call(this, t4) || this === w2 && t4 && t4._writableState instanceof S2;
  } })) : i2 = function(t4) {
    return t4 instanceof this;
  }, w2.prototype.pipe = function() {
    _2(this, new p2());
  }, w2.prototype.write = function(t4, e3, n3) {
    var a3, r3 = this._writableState, i3 = false, l3 = !r3.objectMode && (a3 = t4, s2.isBuffer(a3) || a3 instanceof u2);
    return l3 && !s2.isBuffer(t4) && (t4 = function(t5) {
      return s2.from(t5);
    }(t4)), "function" == typeof e3 && (n3 = e3, e3 = null), l3 ? e3 = "buffer" : e3 || (e3 = r3.defaultEncoding), "function" != typeof n3 && (n3 = v2), r3.ending ? function(t5, e4) {
      var n4 = new E2();
      _2(t5, n4), process.nextTick(e4, n4);
    }(this, n3) : (l3 || function(t5, e4, n4, a4) {
      var r4;
      return null === n4 ? r4 = new y2() : "string" == typeof n4 || e4.objectMode || (r4 = new g2("chunk", ["string", "Buffer"], n4)), !r4 || (_2(t5, r4), process.nextTick(a4, r4), false);
    }(this, r3, t4, n3)) && (r3.pendingcb++, i3 = function(t5, e4, n4, a4, r4, i4) {
      if (!n4) {
        var l4 = function(t6, e5, n5) {
          return t6.objectMode || false === t6.decodeStrings || "string" != typeof e5 || (e5 = s2.from(e5, n5)), e5;
        }(e4, a4, r4);
        a4 !== l4 && (n4 = true, r4 = "buffer", a4 = l4);
      }
      var o3 = e4.objectMode ? 1 : a4.length;
      e4.length += o3;
      var u3 = e4.length < e4.highWaterMark;
      if (u3 || (e4.needDrain = true), e4.writing || e4.corked) {
        var d3 = e4.lastBufferedRequest;
        e4.lastBufferedRequest = { chunk: a4, encoding: r4, isBuf: n4, callback: i4, next: null }, d3 ? d3.next = e4.lastBufferedRequest : e4.bufferedRequest = e4.lastBufferedRequest, e4.bufferedRequestCount += 1;
      } else
        I2(t5, e4, false, o3, a4, r4, i4);
      return u3;
    }(this, r3, l3, t4, e3, n3)), i3;
  }, w2.prototype.cork = function() {
    this._writableState.corked++;
  }, w2.prototype.uncork = function() {
    var t4 = this._writableState;
    t4.corked && (t4.corked--, t4.writing || t4.corked || t4.bufferProcessing || !t4.bufferedRequest || A(this, t4));
  }, w2.prototype.setDefaultEncoding = function(t4) {
    if ("string" == typeof t4 && (t4 = t4.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((t4 + "").toLowerCase()) > -1))
      throw new T2(t4);
    return this._writableState.defaultEncoding = t4, this;
  }, Object.defineProperty(w2.prototype, "writableBuffer", { enumerable: false, get: function() {
    return this._writableState && this._writableState.getBuffer();
  } }), Object.defineProperty(w2.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
    return this._writableState.highWaterMark;
  } }), w2.prototype._write = function(t4, e3, n3) {
    n3(new m2("_write()"));
  }, w2.prototype._writev = null, w2.prototype.end = function(t4, e3, n3) {
    var a3 = this._writableState;
    return "function" == typeof t4 ? (n3 = t4, t4 = null, e3 = null) : "function" == typeof e3 && (n3 = e3, e3 = null), null != t4 && this.write(t4, e3), a3.corked && (a3.corked = 1, this.uncork()), a3.ending || function(t5, e4, n4) {
      e4.ending = true, C(t5, e4), n4 && (e4.finished ? process.nextTick(n4) : t5.once("finish", n4)), e4.ended = true, t5.writable = false;
    }(this, a3, n3), this;
  }, Object.defineProperty(w2.prototype, "writableLength", { enumerable: false, get: function() {
    return this._writableState.length;
  } }), Object.defineProperty(w2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._writableState && this._writableState.destroyed;
  }, set: function(t4) {
    this._writableState && (this._writableState.destroyed = t4);
  } }), w2.prototype.destroy = d2.destroy, w2.prototype._undestroy = d2.undestroy, w2.prototype._destroy = function(t4, e3) {
    e3(t4);
  };
}, 5857: function(t3, e2, n2) {
  var a2;
  function r2(t4, e3, n3) {
    return (e3 = function(t5) {
      var e4 = function(t6) {
        if ("object" != typeof t6 || null === t6)
          return t6;
        var e5 = t6[Symbol.toPrimitive];
        if (void 0 !== e5) {
          var n4 = e5.call(t6, "string");
          if ("object" != typeof n4)
            return n4;
          throw new TypeError("@@toPrimitive must return a primitive value.");
        }
        return String(t6);
      }(t5);
      return "symbol" == typeof e4 ? e4 : String(e4);
    }(e3)) in t4 ? Object.defineProperty(t4, e3, { value: n3, enumerable: true, configurable: true, writable: true }) : t4[e3] = n3, t4;
  }
  var i2 = n2(2896), l2 = Symbol("lastResolve"), o2 = Symbol("lastReject"), s2 = Symbol("error"), u2 = Symbol("ended"), d2 = Symbol("lastPromise"), c2 = Symbol("handlePromise"), f2 = Symbol("stream");
  function g2(t4, e3) {
    return { value: t4, done: e3 };
  }
  function m2(t4) {
    var e3 = t4[l2];
    if (null !== e3) {
      var n3 = t4[f2].read();
      null !== n3 && (t4[d2] = null, t4[l2] = null, t4[o2] = null, e3(g2(n3, false)));
    }
  }
  function h2(t4) {
    process.nextTick(m2, t4);
  }
  var p2 = Object.getPrototypeOf(function() {
  }), b2 = Object.setPrototypeOf((r2(a2 = { get stream() {
    return this[f2];
  }, next: function() {
    var t4 = this, e3 = this[s2];
    if (null !== e3)
      return Promise.reject(e3);
    if (this[u2])
      return Promise.resolve(g2(void 0, true));
    if (this[f2].destroyed)
      return new Promise(function(e4, n4) {
        process.nextTick(function() {
          t4[s2] ? n4(t4[s2]) : e4(g2(void 0, true));
        });
      });
    var n3, a3 = this[d2];
    if (a3)
      n3 = new Promise(/* @__PURE__ */ function(t5, e4) {
        return function(n4, a4) {
          t5.then(function() {
            e4[u2] ? n4(g2(void 0, true)) : e4[c2](n4, a4);
          }, a4);
        };
      }(a3, this));
    else {
      var r3 = this[f2].read();
      if (null !== r3)
        return Promise.resolve(g2(r3, false));
      n3 = new Promise(this[c2]);
    }
    return this[d2] = n3, n3;
  } }, Symbol.asyncIterator, function() {
    return this;
  }), r2(a2, "return", function() {
    var t4 = this;
    return new Promise(function(e3, n3) {
      t4[f2].destroy(null, function(t5) {
        t5 ? n3(t5) : e3(g2(void 0, true));
      });
    });
  }), a2), p2);
  t3.exports = function(t4) {
    var e3, n3 = Object.create(b2, (r2(e3 = {}, f2, { value: t4, writable: true }), r2(e3, l2, { value: null, writable: true }), r2(e3, o2, { value: null, writable: true }), r2(e3, s2, { value: null, writable: true }), r2(e3, u2, { value: t4._readableState.endEmitted, writable: true }), r2(e3, c2, { value: function(t5, e4) {
      var a3 = n3[f2].read();
      a3 ? (n3[d2] = null, n3[l2] = null, n3[o2] = null, t5(g2(a3, false))) : (n3[l2] = t5, n3[o2] = e4);
    }, writable: true }), e3));
    return n3[d2] = null, i2(t4, function(t5) {
      if (t5 && "ERR_STREAM_PREMATURE_CLOSE" !== t5.code) {
        var e4 = n3[o2];
        return null !== e4 && (n3[d2] = null, n3[l2] = null, n3[o2] = null, e4(t5)), void (n3[s2] = t5);
      }
      var a3 = n3[l2];
      null !== a3 && (n3[d2] = null, n3[l2] = null, n3[o2] = null, a3(g2(void 0, true))), n3[u2] = true;
    }), t4.on("readable", h2.bind(null, n3)), n3;
  };
}, 3791: function(t3, e2, n2) {
  function a2(t4, e3) {
    var n3 = Object.keys(t4);
    if (Object.getOwnPropertySymbols) {
      var a3 = Object.getOwnPropertySymbols(t4);
      e3 && (a3 = a3.filter(function(e4) {
        return Object.getOwnPropertyDescriptor(t4, e4).enumerable;
      })), n3.push.apply(n3, a3);
    }
    return n3;
  }
  function r2(t4) {
    for (var e3 = 1; e3 < arguments.length; e3++) {
      var n3 = null != arguments[e3] ? arguments[e3] : {};
      e3 % 2 ? a2(Object(n3), true).forEach(function(e4) {
        i2(t4, e4, n3[e4]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t4, Object.getOwnPropertyDescriptors(n3)) : a2(Object(n3)).forEach(function(e4) {
        Object.defineProperty(t4, e4, Object.getOwnPropertyDescriptor(n3, e4));
      });
    }
    return t4;
  }
  function i2(t4, e3, n3) {
    return (e3 = o2(e3)) in t4 ? Object.defineProperty(t4, e3, { value: n3, enumerable: true, configurable: true, writable: true }) : t4[e3] = n3, t4;
  }
  function l2(t4, e3) {
    for (var n3 = 0; n3 < e3.length; n3++) {
      var a3 = e3[n3];
      a3.enumerable = a3.enumerable || false, a3.configurable = true, "value" in a3 && (a3.writable = true), Object.defineProperty(t4, o2(a3.key), a3);
    }
  }
  function o2(t4) {
    var e3 = function(t5) {
      if ("object" != typeof t5 || null === t5)
        return t5;
      var e4 = t5[Symbol.toPrimitive];
      if (void 0 !== e4) {
        var n3 = e4.call(t5, "string");
        if ("object" != typeof n3)
          return n3;
        throw new TypeError("@@toPrimitive must return a primitive value.");
      }
      return String(t5);
    }(t4);
    return "symbol" == typeof e3 ? e3 : String(e3);
  }
  var s2 = n2(44).Buffer, u2 = n2(3779).inspect, d2 = u2 && u2.custom || "inspect";
  t3.exports = function() {
    function t4() {
      !function(t5, e4) {
        if (!(t5 instanceof e4))
          throw new TypeError("Cannot call a class as a function");
      }(this, t4), this.head = null, this.tail = null, this.length = 0;
    }
    var e3, n3;
    return e3 = t4, (n3 = [{ key: "push", value: function(t5) {
      var e4 = { data: t5, next: null };
      this.length > 0 ? this.tail.next = e4 : this.head = e4, this.tail = e4, ++this.length;
    } }, { key: "unshift", value: function(t5) {
      var e4 = { data: t5, next: this.head };
      0 === this.length && (this.tail = e4), this.head = e4, ++this.length;
    } }, { key: "shift", value: function() {
      if (0 !== this.length) {
        var t5 = this.head.data;
        return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, t5;
      }
    } }, { key: "clear", value: function() {
      this.head = this.tail = null, this.length = 0;
    } }, { key: "join", value: function(t5) {
      if (0 === this.length)
        return "";
      for (var e4 = this.head, n4 = "" + e4.data; e4 = e4.next; )
        n4 += t5 + e4.data;
      return n4;
    } }, { key: "concat", value: function(t5) {
      if (0 === this.length)
        return s2.alloc(0);
      for (var e4, n4, a3, r3 = s2.allocUnsafe(t5 >>> 0), i3 = this.head, l3 = 0; i3; )
        e4 = i3.data, n4 = r3, a3 = l3, s2.prototype.copy.call(e4, n4, a3), l3 += i3.data.length, i3 = i3.next;
      return r3;
    } }, { key: "consume", value: function(t5, e4) {
      var n4;
      return t5 < this.head.data.length ? (n4 = this.head.data.slice(0, t5), this.head.data = this.head.data.slice(t5)) : n4 = t5 === this.head.data.length ? this.shift() : e4 ? this._getString(t5) : this._getBuffer(t5), n4;
    } }, { key: "first", value: function() {
      return this.head.data;
    } }, { key: "_getString", value: function(t5) {
      var e4 = this.head, n4 = 1, a3 = e4.data;
      for (t5 -= a3.length; e4 = e4.next; ) {
        var r3 = e4.data, i3 = t5 > r3.length ? r3.length : t5;
        if (i3 === r3.length ? a3 += r3 : a3 += r3.slice(0, t5), 0 == (t5 -= i3)) {
          i3 === r3.length ? (++n4, e4.next ? this.head = e4.next : this.head = this.tail = null) : (this.head = e4, e4.data = r3.slice(i3));
          break;
        }
        ++n4;
      }
      return this.length -= n4, a3;
    } }, { key: "_getBuffer", value: function(t5) {
      var e4 = s2.allocUnsafe(t5), n4 = this.head, a3 = 1;
      for (n4.data.copy(e4), t5 -= n4.data.length; n4 = n4.next; ) {
        var r3 = n4.data, i3 = t5 > r3.length ? r3.length : t5;
        if (r3.copy(e4, e4.length - t5, 0, i3), 0 == (t5 -= i3)) {
          i3 === r3.length ? (++a3, n4.next ? this.head = n4.next : this.head = this.tail = null) : (this.head = n4, n4.data = r3.slice(i3));
          break;
        }
        ++a3;
      }
      return this.length -= a3, e4;
    } }, { key: d2, value: function(t5, e4) {
      return u2(this, r2(r2({}, e4), {}, { depth: 0, customInspect: false }));
    } }]) && l2(e3.prototype, n3), Object.defineProperty(e3, "prototype", { writable: false }), t4;
  }();
}, 2410: function(t3) {
  function e2(t4, e3) {
    a2(t4, e3), n2(t4);
  }
  function n2(t4) {
    t4._writableState && !t4._writableState.emitClose || t4._readableState && !t4._readableState.emitClose || t4.emit("close");
  }
  function a2(t4, e3) {
    t4.emit("error", e3);
  }
  t3.exports = { destroy: function(t4, r2) {
    var i2 = this, l2 = this._readableState && this._readableState.destroyed, o2 = this._writableState && this._writableState.destroyed;
    return l2 || o2 ? (r2 ? r2(t4) : t4 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = true, process.nextTick(a2, this, t4)) : process.nextTick(a2, this, t4)), this) : (this._readableState && (this._readableState.destroyed = true), this._writableState && (this._writableState.destroyed = true), this._destroy(t4 || null, function(t5) {
      !r2 && t5 ? i2._writableState ? i2._writableState.errorEmitted ? process.nextTick(n2, i2) : (i2._writableState.errorEmitted = true, process.nextTick(e2, i2, t5)) : process.nextTick(e2, i2, t5) : r2 ? (process.nextTick(n2, i2), r2(t5)) : process.nextTick(n2, i2);
    }), this);
  }, undestroy: function() {
    this._readableState && (this._readableState.destroyed = false, this._readableState.reading = false, this._readableState.ended = false, this._readableState.endEmitted = false), this._writableState && (this._writableState.destroyed = false, this._writableState.ended = false, this._writableState.ending = false, this._writableState.finalCalled = false, this._writableState.prefinished = false, this._writableState.finished = false, this._writableState.errorEmitted = false);
  }, errorOrDestroy: function(t4, e3) {
    var n3 = t4._readableState, a3 = t4._writableState;
    n3 && n3.autoDestroy || a3 && a3.autoDestroy ? t4.destroy(e3) : t4.emit("error", e3);
  } };
}, 2896: function(t3, e2, n2) {
  var a2 = n2(1602).codes.ERR_STREAM_PREMATURE_CLOSE;
  function r2() {
  }
  t3.exports = function t4(e3, n3, i2) {
    if ("function" == typeof n3)
      return t4(e3, null, n3);
    n3 || (n3 = {}), i2 = /* @__PURE__ */ function(t5) {
      var e4 = false;
      return function() {
        if (!e4) {
          e4 = true;
          for (var n4 = arguments.length, a3 = new Array(n4), r3 = 0; r3 < n4; r3++)
            a3[r3] = arguments[r3];
          t5.apply(this, a3);
        }
      };
    }(i2 || r2);
    var l2 = n3.readable || false !== n3.readable && e3.readable, o2 = n3.writable || false !== n3.writable && e3.writable, s2 = function() {
      e3.writable || d2();
    }, u2 = e3._writableState && e3._writableState.finished, d2 = function() {
      o2 = false, u2 = true, l2 || i2.call(e3);
    }, c2 = e3._readableState && e3._readableState.endEmitted, f2 = function() {
      l2 = false, c2 = true, o2 || i2.call(e3);
    }, g2 = function(t5) {
      i2.call(e3, t5);
    }, m2 = function() {
      var t5;
      return l2 && !c2 ? (e3._readableState && e3._readableState.ended || (t5 = new a2()), i2.call(e3, t5)) : o2 && !u2 ? (e3._writableState && e3._writableState.ended || (t5 = new a2()), i2.call(e3, t5)) : void 0;
    }, h2 = function() {
      e3.req.on("finish", d2);
    };
    return function(t5) {
      return t5.setHeader && "function" == typeof t5.abort;
    }(e3) ? (e3.on("complete", d2), e3.on("abort", m2), e3.req ? h2() : e3.on("request", h2)) : o2 && !e3._writableState && (e3.on("end", s2), e3.on("close", s2)), e3.on("end", f2), e3.on("finish", d2), false !== n3.error && e3.on("error", g2), e3.on("close", m2), function() {
      e3.removeListener("complete", d2), e3.removeListener("abort", m2), e3.removeListener("request", h2), e3.req && e3.req.removeListener("finish", d2), e3.removeListener("end", s2), e3.removeListener("close", s2), e3.removeListener("finish", d2), e3.removeListener("end", f2), e3.removeListener("error", g2), e3.removeListener("close", m2);
    };
  };
}, 3411: function(t3) {
  t3.exports = function() {
    throw new Error("Readable.from is not available in the browser");
  };
}, 8460: function(t3, e2, n2) {
  var a2, r2 = n2(1602).codes, i2 = r2.ERR_MISSING_ARGS, l2 = r2.ERR_STREAM_DESTROYED;
  function o2(t4) {
    if (t4)
      throw t4;
  }
  function s2(t4) {
    t4();
  }
  function u2(t4, e3) {
    return t4.pipe(e3);
  }
  t3.exports = function() {
    for (var t4 = arguments.length, e3 = new Array(t4), r3 = 0; r3 < t4; r3++)
      e3[r3] = arguments[r3];
    var d2, c2 = function(t5) {
      return t5.length ? "function" != typeof t5[t5.length - 1] ? o2 : t5.pop() : o2;
    }(e3);
    if (Array.isArray(e3[0]) && (e3 = e3[0]), e3.length < 2)
      throw new i2("streams");
    var f2 = e3.map(function(t5, r4) {
      var i3 = r4 < e3.length - 1;
      return function(t6, e4, r5, i4) {
        i4 = /* @__PURE__ */ function(t7) {
          var e5 = false;
          return function() {
            e5 || (e5 = true, t7.apply(void 0, arguments));
          };
        }(i4);
        var o3 = false;
        t6.on("close", function() {
          o3 = true;
        }), void 0 === a2 && (a2 = n2(2896)), a2(t6, { readable: e4, writable: r5 }, function(t7) {
          if (t7)
            return i4(t7);
          o3 = true, i4();
        });
        var s3 = false;
        return function(e5) {
          if (!o3 && !s3)
            return s3 = true, function(t7) {
              return t7.setHeader && "function" == typeof t7.abort;
            }(t6) ? t6.abort() : "function" == typeof t6.destroy ? t6.destroy() : void i4(e5 || new l2("pipe"));
        };
      }(t5, i3, r4 > 0, function(t6) {
        d2 || (d2 = t6), t6 && f2.forEach(s2), i3 || (f2.forEach(s2), c2(d2));
      });
    });
    return e3.reduce(u2);
  };
}, 1749: function(t3, e2, n2) {
  var a2 = n2(1602).codes.ERR_INVALID_OPT_VALUE;
  t3.exports = { getHighWaterMark: function(t4, e3, n3, r2) {
    var i2 = function(t5, e4, n4) {
      return null != t5.highWaterMark ? t5.highWaterMark : e4 ? t5[n4] : null;
    }(e3, r2, n3);
    if (null != i2) {
      if (!isFinite(i2) || Math.floor(i2) !== i2 || i2 < 0)
        throw new a2(r2 ? n3 : "highWaterMark", i2);
      return Math.floor(i2);
    }
    return t4.objectMode ? 16 : 16384;
  } };
}, 2611: function(t3, e2, n2) {
  t3.exports = n2(9826).EventEmitter;
}, 748: function(t3, e2, n2) {
  var a2 = n2(4598).Buffer, r2 = a2.isEncoding || function(t4) {
    switch ((t4 = "" + t4) && t4.toLowerCase()) {
      case "hex":
      case "utf8":
      case "utf-8":
      case "ascii":
      case "binary":
      case "base64":
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
      case "raw":
        return true;
      default:
        return false;
    }
  };
  function i2(t4) {
    var e3;
    switch (this.encoding = function(t5) {
      var e4 = function(t6) {
        if (!t6)
          return "utf8";
        for (var e5; ; )
          switch (t6) {
            case "utf8":
            case "utf-8":
              return "utf8";
            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return "utf16le";
            case "latin1":
            case "binary":
              return "latin1";
            case "base64":
            case "ascii":
            case "hex":
              return t6;
            default:
              if (e5)
                return;
              t6 = ("" + t6).toLowerCase(), e5 = true;
          }
      }(t5);
      if ("string" != typeof e4 && (a2.isEncoding === r2 || !r2(t5)))
        throw new Error("Unknown encoding: " + t5);
      return e4 || t5;
    }(t4), this.encoding) {
      case "utf16le":
        this.text = s2, this.end = u2, e3 = 4;
        break;
      case "utf8":
        this.fillLast = o2, e3 = 4;
        break;
      case "base64":
        this.text = d2, this.end = c2, e3 = 3;
        break;
      default:
        return this.write = f2, void (this.end = g2);
    }
    this.lastNeed = 0, this.lastTotal = 0, this.lastChar = a2.allocUnsafe(e3);
  }
  function l2(t4) {
    return t4 <= 127 ? 0 : t4 >> 5 == 6 ? 2 : t4 >> 4 == 14 ? 3 : t4 >> 3 == 30 ? 4 : t4 >> 6 == 2 ? -1 : -2;
  }
  function o2(t4) {
    var e3 = this.lastTotal - this.lastNeed, n3 = function(t5, e4) {
      if (128 != (192 & e4[0]))
        return t5.lastNeed = 0, "�";
      if (t5.lastNeed > 1 && e4.length > 1) {
        if (128 != (192 & e4[1]))
          return t5.lastNeed = 1, "�";
        if (t5.lastNeed > 2 && e4.length > 2 && 128 != (192 & e4[2]))
          return t5.lastNeed = 2, "�";
      }
    }(this, t4);
    return void 0 !== n3 ? n3 : this.lastNeed <= t4.length ? (t4.copy(this.lastChar, e3, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (t4.copy(this.lastChar, e3, 0, t4.length), void (this.lastNeed -= t4.length));
  }
  function s2(t4, e3) {
    if ((t4.length - e3) % 2 == 0) {
      var n3 = t4.toString("utf16le", e3);
      if (n3) {
        var a3 = n3.charCodeAt(n3.length - 1);
        if (a3 >= 55296 && a3 <= 56319)
          return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t4[t4.length - 2], this.lastChar[1] = t4[t4.length - 1], n3.slice(0, -1);
      }
      return n3;
    }
    return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t4[t4.length - 1], t4.toString("utf16le", e3, t4.length - 1);
  }
  function u2(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    if (this.lastNeed) {
      var n3 = this.lastTotal - this.lastNeed;
      return e3 + this.lastChar.toString("utf16le", 0, n3);
    }
    return e3;
  }
  function d2(t4, e3) {
    var n3 = (t4.length - e3) % 3;
    return 0 === n3 ? t4.toString("base64", e3) : (this.lastNeed = 3 - n3, this.lastTotal = 3, 1 === n3 ? this.lastChar[0] = t4[t4.length - 1] : (this.lastChar[0] = t4[t4.length - 2], this.lastChar[1] = t4[t4.length - 1]), t4.toString("base64", e3, t4.length - n3));
  }
  function c2(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    return this.lastNeed ? e3 + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : e3;
  }
  function f2(t4) {
    return t4.toString(this.encoding);
  }
  function g2(t4) {
    return t4 && t4.length ? this.write(t4) : "";
  }
  e2.StringDecoder = i2, i2.prototype.write = function(t4) {
    if (0 === t4.length)
      return "";
    var e3, n3;
    if (this.lastNeed) {
      if (void 0 === (e3 = this.fillLast(t4)))
        return "";
      n3 = this.lastNeed, this.lastNeed = 0;
    } else
      n3 = 0;
    return n3 < t4.length ? e3 ? e3 + this.text(t4, n3) : this.text(t4, n3) : e3 || "";
  }, i2.prototype.end = function(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    return this.lastNeed ? e3 + "�" : e3;
  }, i2.prototype.text = function(t4, e3) {
    var n3 = function(t5, e4, n4) {
      var a4 = e4.length - 1;
      if (a4 < n4)
        return 0;
      var r3 = l2(e4[a4]);
      return r3 >= 0 ? (r3 > 0 && (t5.lastNeed = r3 - 1), r3) : --a4 < n4 || -2 === r3 ? 0 : (r3 = l2(e4[a4])) >= 0 ? (r3 > 0 && (t5.lastNeed = r3 - 2), r3) : --a4 < n4 || -2 === r3 ? 0 : (r3 = l2(e4[a4])) >= 0 ? (r3 > 0 && (2 === r3 ? r3 = 0 : t5.lastNeed = r3 - 3), r3) : 0;
    }(this, t4, e3);
    if (!this.lastNeed)
      return t4.toString("utf8", e3);
    this.lastTotal = n3;
    var a3 = t4.length - (n3 - this.lastNeed);
    return t4.copy(this.lastChar, 0, a3), t4.toString("utf8", e3, a3);
  }, i2.prototype.fillLast = function(t4) {
    if (this.lastNeed <= t4.length)
      return t4.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
    t4.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t4.length), this.lastNeed -= t4.length;
  };
}, 4598: function(t3, e2, n2) {
  var a2 = n2(44), r2 = a2.Buffer;
  function i2(t4, e3) {
    for (var n3 in t4)
      e3[n3] = t4[n3];
  }
  function l2(t4, e3, n3) {
    return r2(t4, e3, n3);
  }
  r2.from && r2.alloc && r2.allocUnsafe && r2.allocUnsafeSlow ? t3.exports = a2 : (i2(a2, e2), e2.Buffer = l2), i2(r2, l2), l2.from = function(t4, e3, n3) {
    if ("number" == typeof t4)
      throw new TypeError("Argument must not be a number");
    return r2(t4, e3, n3);
  }, l2.alloc = function(t4, e3, n3) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    var a3 = r2(t4);
    return void 0 !== e3 ? "string" == typeof n3 ? a3.fill(e3, n3) : a3.fill(e3) : a3.fill(0), a3;
  }, l2.allocUnsafe = function(t4) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    return r2(t4);
  }, l2.allocUnsafeSlow = function(t4) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    return a2.SlowBuffer(t4);
  };
}, 8571: function(t3, e2, n2) {
  var a2;
  !function(r2, i2) {
    var l2 = "function", o2 = "undefined", s2 = "object", u2 = "string", d2 = "major", c2 = "model", f2 = "name", g2 = "type", m2 = "vendor", h2 = "version", p2 = "architecture", b2 = "console", y2 = "mobile", E2 = "tablet", T2 = "smarttv", _2 = "wearable", v2 = "embedded", S2 = "Amazon", w2 = "Apple", I2 = "ASUS", k2 = "BlackBerry", A = "Browser", R = "Chrome", N = "Firefox", C = "Google", D = "Huawei", x = "LG", M = "Microsoft", P = "Motorola", O = "Opera", z = "Samsung", L = "Sharp", F = "Sony", U = "Xiaomi", j = "Zebra", q = "Facebook", B = "Chromium OS", G = "Mac OS", H = function(t4) {
      for (var e3 = {}, n3 = 0; n3 < t4.length; n3++)
        e3[t4[n3].toUpperCase()] = t4[n3];
      return e3;
    }, Y = function(t4, e3) {
      return typeof t4 === u2 && -1 !== V(e3).indexOf(V(t4));
    }, V = function(t4) {
      return t4.toLowerCase();
    }, K = function(t4, e3) {
      if (typeof t4 === u2)
        return t4 = t4.replace(/^\s\s*/, ""), typeof e3 === o2 ? t4 : t4.substring(0, 500);
    }, W = function(t4, e3) {
      for (var n3, a3, r3, o3, u3, d3, c3 = 0; c3 < e3.length && !u3; ) {
        var f3 = e3[c3], g3 = e3[c3 + 1];
        for (n3 = a3 = 0; n3 < f3.length && !u3 && f3[n3]; )
          if (u3 = f3[n3++].exec(t4))
            for (r3 = 0; r3 < g3.length; r3++)
              d3 = u3[++a3], typeof (o3 = g3[r3]) === s2 && o3.length > 0 ? 2 === o3.length ? typeof o3[1] == l2 ? this[o3[0]] = o3[1].call(this, d3) : this[o3[0]] = o3[1] : 3 === o3.length ? typeof o3[1] !== l2 || o3[1].exec && o3[1].test ? this[o3[0]] = d3 ? d3.replace(o3[1], o3[2]) : i2 : this[o3[0]] = d3 ? o3[1].call(this, d3, o3[2]) : i2 : 4 === o3.length && (this[o3[0]] = d3 ? o3[3].call(this, d3.replace(o3[1], o3[2])) : i2) : this[o3] = d3 || i2;
        c3 += 2;
      }
    }, $ = function(t4, e3) {
      for (var n3 in e3)
        if (typeof e3[n3] === s2 && e3[n3].length > 0) {
          for (var a3 = 0; a3 < e3[n3].length; a3++)
            if (Y(e3[n3][a3], t4))
              return "?" === n3 ? i2 : n3;
        } else if (Y(e3[n3], t4))
          return "?" === n3 ? i2 : n3;
      return t4;
    }, Q = { ME: "4.90", "NT 3.11": "NT3.51", "NT 4.0": "NT4.0", 2e3: "NT 5.0", XP: ["NT 5.1", "NT 5.2"], Vista: "NT 6.0", 7: "NT 6.1", 8: "NT 6.2", 8.1: "NT 6.3", 10: ["NT 6.4", "NT 10.0"], RT: "ARM" }, X = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [h2, [f2, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [h2, [f2, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [f2, h2], [/opios[\/ ]+([\w\.]+)/i], [h2, [f2, O + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [h2, [f2, O + " GX"]], [/\bopr\/([\w\.]+)/i], [h2, [f2, O]], [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i], [h2, [f2, "Baidu"]], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, /(heytap|ovi)browser\/([\d\.]+)/i, /(weibo)__([\d\.]+)/i], [f2, h2], [/\bddg\/([\w\.]+)/i], [h2, [f2, "DuckDuckGo"]], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [h2, [f2, "UC" + A]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i, /micromessenger\/([\w\.]+)/i], [h2, [f2, "WeChat"]], [/konqueror\/([\w\.]+)/i], [h2, [f2, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [h2, [f2, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [h2, [f2, "Yandex"]], [/slbrowser\/([\w\.]+)/i], [h2, [f2, "Smart Lenovo " + A]], [/(avast|avg)\/([\w\.]+)/i], [[f2, /(.+)/, "$1 Secure " + A], h2], [/\bfocus\/([\w\.]+)/i], [h2, [f2, N + " Focus"]], [/\bopt\/([\w\.]+)/i], [h2, [f2, O + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [h2, [f2, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [h2, [f2, "Dolphin"]], [/coast\/([\w\.]+)/i], [h2, [f2, O + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [h2, [f2, "MIUI " + A]], [/fxios\/([-\w\.]+)/i], [h2, [f2, N]], [/\bqihu|(qi?ho?o?|360)browser/i], [[f2, "360 " + A]], [/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i], [[f2, /(.+)/, "$1 " + A], h2], [/samsungbrowser\/([\w\.]+)/i], [h2, [f2, z + " Internet"]], [/(comodo_dragon)\/([\w\.]+)/i], [[f2, /_/g, " "], h2], [/metasr[\/ ]?([\d\.]+)/i], [h2, [f2, "Sogou Explorer"]], [/(sogou)mo\w+\/([\d\.]+)/i], [[f2, "Sogou Mobile"], h2], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i], [f2, h2], [/(lbbrowser)/i, /\[(linkedin)app\]/i], [f2], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[f2, q], h2], [/(Klarna)\/([\w\.]+)/i, /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, /safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(alipay)client\/([\w\.]+)/i, /(twitter)(?:and| f.+e\/([\w\.]+))/i, /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i], [f2, h2], [/\bgsa\/([\w\.]+) .*safari\//i], [h2, [f2, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [h2, [f2, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [h2, [f2, R + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[f2, R + " WebView"], h2], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [h2, [f2, "Android " + A]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [f2, h2], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [h2, [f2, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [h2, f2], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [f2, [h2, $, { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }]], [/(webkit|khtml)\/([\w\.]+)/i], [f2, h2], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[f2, "Netscape"], h2], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [h2, [f2, N + " Reality"]], [/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i, /panasonic;(viera)/i], [f2, h2], [/(cobalt)\/([\w\.]+)/i], [f2, [h2, /master.|lts./, ""]]], cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[p2, "amd64"]], [/(ia32(?=;))/i], [[p2, V]], [/((?:i[346]|x)86)[;\)]/i], [[p2, "ia32"]], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[p2, "arm64"]], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[p2, "armhf"]], [/windows (ce|mobile); ppc;/i], [[p2, "arm"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[p2, /ower/, "", V]], [/(sun4\w)[;\)]/i], [[p2, "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[p2, V]]], device: [[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [c2, [m2, z], [g2, E2]], [/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [c2, [m2, z], [g2, y2]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [c2, [m2, w2], [g2, y2]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [c2, [m2, w2], [g2, E2]], [/(macintosh);/i], [c2, [m2, w2]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [c2, [m2, L], [g2, y2]], [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [c2, [m2, D], [g2, E2]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [c2, [m2, D], [g2, y2]], [/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i], [[c2, /_/g, " "], [m2, U], [g2, y2]], [/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], [[c2, /_/g, " "], [m2, U], [g2, E2]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [c2, [m2, "OPPO"], [g2, y2]], [/\b(opd2\d{3}a?) bui/i], [c2, [m2, "OPPO"], [g2, E2]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [c2, [m2, "Vivo"], [g2, y2]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [c2, [m2, "Realme"], [g2, y2]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [c2, [m2, P], [g2, y2]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [c2, [m2, P], [g2, E2]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [c2, [m2, x], [g2, E2]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i], [c2, [m2, x], [g2, y2]], [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i], [c2, [m2, "Lenovo"], [g2, E2]], [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], [[c2, /_/g, " "], [m2, "Nokia"], [g2, y2]], [/(pixel c)\b/i], [c2, [m2, C], [g2, E2]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [c2, [m2, C], [g2, y2]], [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [c2, [m2, F], [g2, y2]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[c2, "Xperia Tablet"], [m2, F], [g2, E2]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [c2, [m2, "OnePlus"], [g2, y2]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [c2, [m2, S2], [g2, E2]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[c2, /(.+)/g, "Fire Phone $1"], [m2, S2], [g2, y2]], [/(playbook);[-\w\),; ]+(rim)/i], [c2, m2, [g2, E2]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [c2, [m2, k2], [g2, y2]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [c2, [m2, I2], [g2, E2]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [c2, [m2, I2], [g2, y2]], [/(nexus 9)/i], [c2, [m2, "HTC"], [g2, E2]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [m2, [c2, /_/g, " "], [g2, y2]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [c2, [m2, "Acer"], [g2, E2]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [c2, [m2, "Meizu"], [g2, y2]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [c2, [m2, "Ulefone"], [g2, y2]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i], [m2, c2, [g2, y2]], [/(kobo)\s(ereader|touch)/i, /(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [m2, c2, [g2, E2]], [/(surface duo)/i], [c2, [m2, M], [g2, E2]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [c2, [m2, "Fairphone"], [g2, y2]], [/(u304aa)/i], [c2, [m2, "AT&T"], [g2, y2]], [/\bsie-(\w*)/i], [c2, [m2, "Siemens"], [g2, y2]], [/\b(rct\w+) b/i], [c2, [m2, "RCA"], [g2, E2]], [/\b(venue[\d ]{2,7}) b/i], [c2, [m2, "Dell"], [g2, E2]], [/\b(q(?:mv|ta)\w+) b/i], [c2, [m2, "Verizon"], [g2, E2]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [c2, [m2, "Barnes & Noble"], [g2, E2]], [/\b(tm\d{3}\w+) b/i], [c2, [m2, "NuVision"], [g2, E2]], [/\b(k88) b/i], [c2, [m2, "ZTE"], [g2, E2]], [/\b(nx\d{3}j) b/i], [c2, [m2, "ZTE"], [g2, y2]], [/\b(gen\d{3}) b.+49h/i], [c2, [m2, "Swiss"], [g2, y2]], [/\b(zur\d{3}) b/i], [c2, [m2, "Swiss"], [g2, E2]], [/\b((zeki)?tb.*\b) b/i], [c2, [m2, "Zeki"], [g2, E2]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[m2, "Dragon Touch"], c2, [g2, E2]], [/\b(ns-?\w{0,9}) b/i], [c2, [m2, "Insignia"], [g2, E2]], [/\b((nxa|next)-?\w{0,9}) b/i], [c2, [m2, "NextBook"], [g2, E2]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[m2, "Voice"], c2, [g2, y2]], [/\b(lvtel\-)?(v1[12]) b/i], [[m2, "LvTel"], c2, [g2, y2]], [/\b(ph-1) /i], [c2, [m2, "Essential"], [g2, y2]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [c2, [m2, "Envizen"], [g2, E2]], [/\b(trio[-\w\. ]+) b/i], [c2, [m2, "MachSpeed"], [g2, E2]], [/\btu_(1491) b/i], [c2, [m2, "Rotor"], [g2, E2]], [/(shield[\w ]+) b/i], [c2, [m2, "Nvidia"], [g2, E2]], [/(sprint) (\w+)/i], [m2, c2, [g2, y2]], [/(kin\.[onetw]{3})/i], [[c2, /\./g, " "], [m2, M], [g2, y2]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [c2, [m2, j], [g2, E2]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [c2, [m2, j], [g2, y2]], [/smart-tv.+(samsung)/i], [m2, [g2, T2]], [/hbbtv.+maple;(\d+)/i], [[c2, /^/, "SmartTV"], [m2, z], [g2, T2]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[m2, x], [g2, T2]], [/(apple) ?tv/i], [m2, [c2, w2 + " TV"], [g2, T2]], [/crkey/i], [[c2, R + "cast"], [m2, C], [g2, T2]], [/droid.+aft(\w+)( bui|\))/i], [c2, [m2, S2], [g2, T2]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [c2, [m2, L], [g2, T2]], [/(bravia[\w ]+)( bui|\))/i], [c2, [m2, F], [g2, T2]], [/(mitv-\w{5}) bui/i], [c2, [m2, U], [g2, T2]], [/Hbbtv.*(technisat) (.*);/i], [m2, c2, [g2, T2]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[m2, K], [c2, K], [g2, T2]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[g2, T2]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [m2, c2, [g2, b2]], [/droid.+; (shield) bui/i], [c2, [m2, "Nvidia"], [g2, b2]], [/(playstation [345portablevi]+)/i], [c2, [m2, F], [g2, b2]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [c2, [m2, M], [g2, b2]], [/((pebble))app/i], [m2, c2, [g2, _2]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [c2, [m2, w2], [g2, _2]], [/droid.+; (glass) \d/i], [c2, [m2, C], [g2, _2]], [/droid.+; (wt63?0{2,3})\)/i], [c2, [m2, j], [g2, _2]], [/(quest( \d| pro)?)/i], [c2, [m2, q], [g2, _2]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [m2, [g2, v2]], [/(aeobc)\b/i], [c2, [m2, S2], [g2, v2]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [c2, [g2, y2]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [c2, [g2, E2]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[g2, E2]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[g2, y2]], [/(android[-\w\. ]{0,9});.+buil/i], [c2, [m2, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [h2, [f2, "EdgeHTML"]], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [h2, [f2, "Blink"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i, /\b(libweb)/i], [f2, h2], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [h2, f2]], os: [[/microsoft (windows) (vista|xp)/i], [f2, h2], [/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i], [f2, [h2, $, Q]], [/windows nt 6\.2; (arm)/i, /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i, /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[h2, $, Q], [f2, "Windows"]], [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[h2, /_/g, "."], [f2, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[f2, G], [h2, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [h2, f2], [/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i], [f2, h2], [/\(bb(10);/i], [h2, [f2, k2]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], [h2, [f2, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [h2, [f2, N + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [h2, [f2, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [h2, [f2, "watchOS"]], [/crkey\/([\d\.]+)/i], [h2, [f2, R + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[f2, B], h2], [/panasonic;(viera)/i, /(netrange)mmh/i, /(nettv)\/(\d+\.[\w\.]+)/i, /(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i], [f2, h2], [/(sunos) ?([\w\.\d]*)/i], [[f2, "Solaris"], h2], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [f2, h2]] }, Z = function(t4, e3) {
      if (typeof t4 === s2 && (e3 = t4, t4 = i2), !(this instanceof Z))
        return new Z(t4, e3).getResult();
      var n3 = typeof r2 !== o2 && r2.navigator ? r2.navigator : i2, a3 = t4 || (n3 && n3.userAgent ? n3.userAgent : ""), b3 = n3 && n3.userAgentData ? n3.userAgentData : i2, T3 = e3 ? function(t5, e4) {
        var n4 = {};
        for (var a4 in t5)
          e4[a4] && e4[a4].length % 2 == 0 ? n4[a4] = e4[a4].concat(t5[a4]) : n4[a4] = t5[a4];
        return n4;
      }(X, e3) : X, _3 = n3 && n3.userAgent == a3;
      return this.getBrowser = function() {
        var t5, e4 = {};
        return e4[f2] = i2, e4[h2] = i2, W.call(e4, a3, T3.browser), e4[d2] = typeof (t5 = e4[h2]) === u2 ? t5.replace(/[^\d\.]/g, "").split(".")[0] : i2, _3 && n3 && n3.brave && typeof n3.brave.isBrave == l2 && (e4[f2] = "Brave"), e4;
      }, this.getCPU = function() {
        var t5 = {};
        return t5[p2] = i2, W.call(t5, a3, T3.cpu), t5;
      }, this.getDevice = function() {
        var t5 = {};
        return t5[m2] = i2, t5[c2] = i2, t5[g2] = i2, W.call(t5, a3, T3.device), _3 && !t5[g2] && b3 && b3.mobile && (t5[g2] = y2), _3 && "Macintosh" == t5[c2] && n3 && typeof n3.standalone !== o2 && n3.maxTouchPoints && n3.maxTouchPoints > 2 && (t5[c2] = "iPad", t5[g2] = E2), t5;
      }, this.getEngine = function() {
        var t5 = {};
        return t5[f2] = i2, t5[h2] = i2, W.call(t5, a3, T3.engine), t5;
      }, this.getOS = function() {
        var t5 = {};
        return t5[f2] = i2, t5[h2] = i2, W.call(t5, a3, T3.os), _3 && !t5[f2] && b3 && b3.platform && "Unknown" != b3.platform && (t5[f2] = b3.platform.replace(/chrome os/i, B).replace(/macos/i, G)), t5;
      }, this.getResult = function() {
        return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() };
      }, this.getUA = function() {
        return a3;
      }, this.setUA = function(t5) {
        return a3 = typeof t5 === u2 && t5.length > 500 ? K(t5, 500) : t5, this;
      }, this.setUA(a3), this;
    };
    Z.VERSION = "1.0.38", Z.BROWSER = H([f2, h2, d2]), Z.CPU = H([p2]), Z.DEVICE = H([c2, m2, g2, b2, y2, T2, E2, _2, v2]), Z.ENGINE = Z.OS = H([f2, h2]), typeof e2 !== o2 ? (t3.exports && (e2 = t3.exports = Z), e2.UAParser = Z) : n2.amdO ? (a2 = (function() {
      return Z;
    }).call(e2, n2, e2, t3)) === i2 || (t3.exports = a2) : typeof r2 !== o2 && (r2.UAParser = Z);
    var J = typeof r2 !== o2 && (r2.jQuery || r2.Zepto);
    if (J && !J.ua) {
      var tt = new Z();
      J.ua = tt.getResult(), J.ua.get = function() {
        return tt.getUA();
      }, J.ua.set = function(t4) {
        tt.setUA(t4);
        var e3 = tt.getResult();
        for (var n3 in e3)
          J.ua[n3] = e3[n3];
      };
    }
  }("object" == typeof window ? window : this);
}, 9e3: function(t3, e2, n2) {
  function a2(t4) {
    try {
      if (!n2.g.localStorage)
        return false;
    } catch (t5) {
      return false;
    }
    var e3 = n2.g.localStorage[t4];
    return null != e3 && "true" === String(e3).toLowerCase();
  }
  t3.exports = function(t4, e3) {
    if (a2("noDeprecation"))
      return t4;
    var n3 = false;
    return function() {
      if (!n3) {
        if (a2("throwDeprecation"))
          throw new Error(e3);
        a2("traceDeprecation") ? console.trace(e3) : console.warn(e3), n3 = true;
      }
      return t4.apply(this, arguments);
    };
  };
}, 3779: function() {
}, 7199: function() {
}, 5393: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { Debug: function() {
    return i2.default;
  }, FactoryMaker: function() {
    return r2.default;
  }, MediaPlayer: function() {
    return a2.default;
  } });
  var a2 = n2(8200), r2 = n2(138), i2 = n2(649), l2 = n2(8986), o2 = "undefined" != typeof window && window || global, s2 = o2.dashjs;
  s2 || (s2 = o2.dashjs = {}), s2.MediaPlayer = a2.default, s2.FactoryMaker = r2.default, s2.Debug = i2.default, s2.Version = (0, l2.getVersionString)(), e2.default = s2;
}, 649: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(8850), r2 = n2(3621), i2 = n2(138);
  function l2(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, a2.default)(e3).getInstance(), i3 = t4.settings, l3 = [];
    let o3, s2, u2, d2;
    function c2(t5) {
      return t5 && t5.bind ? t5.bind(window.console) : window.console.log.bind(window.console);
    }
    function f2(...t5) {
      b2(1, this, ...t5);
    }
    function g2(...t5) {
      b2(2, this, ...t5);
    }
    function m2(...t5) {
      b2(3, this, ...t5);
    }
    function h2(...t5) {
      b2(4, this, ...t5);
    }
    function p2(...t5) {
      b2(5, this, ...t5);
    }
    function b2(t5, e4, ...a3) {
      let o4 = "", c3 = null;
      s2 && (c3 = (/* @__PURE__ */ new Date()).getTime(), o4 += "[" + (c3 - d2) + "]"), u2 && e4 && e4.getClassName && (o4 += "[" + e4.getClassName() + "]", e4.getType && (o4 += "[" + e4.getType() + "]")), o4.length > 0 && (o4 += " "), Array.apply(null, a3).forEach(function(t6) {
        o4 += t6 + " ";
      }), l3[t5] && i3 && i3.get().debug.logLevel >= t5 && l3[t5](o4), i3 && i3.get().debug.dispatchEvent && n3.trigger(r2.default.LOG, { message: o4, level: t5 });
    }
    return o3 = { getLogger: function(t5) {
      return { fatal: f2.bind(t5), error: g2.bind(t5), warn: m2.bind(t5), info: h2.bind(t5), debug: p2.bind(t5) };
    }, setLogTimestampVisible: function(t5) {
      s2 = t5;
    }, setCalleeNameVisible: function(t5) {
      u2 = t5;
    } }, s2 = true, u2 = true, d2 = (/* @__PURE__ */ new Date()).getTime(), "undefined" != typeof window && window.console && (l3[1] = c2(window.console.error), l3[2] = c2(window.console.error), l3[3] = c2(window.console.warn), l3[4] = c2(window.console.info), l3[5] = c2(window.console.debug)), o3;
  }
  l2.__dashjs_factory_name = "Debug";
  const o2 = i2.default.getSingletonFactory(l2);
  o2.LOG_LEVEL_NONE = 0, o2.LOG_LEVEL_FATAL = 1, o2.LOG_LEVEL_ERROR = 2, o2.LOG_LEVEL_WARNING = 3, o2.LOG_LEVEL_INFO = 4, o2.LOG_LEVEL_DEBUG = 5, i2.default.updateSingletonFactory(l2.__dashjs_factory_name, o2), e2.default = o2;
}, 8850: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(1191);
  function i2() {
    let t4 = {};
    function e3(e4, n4, r3, i3 = {}, l3 = false) {
      if (!e4)
        throw new Error("event type cannot be null or undefined");
      if (!n4 || "function" != typeof n4)
        throw new Error("listener must be a function: " + n4);
      let o2 = i3.priority || 0;
      if (a3(e4, n4, r3) >= 0)
        return;
      t4[e4] = t4[e4] || [];
      const s2 = { callback: n4, scope: r3, priority: o2, executeOnlyOnce: l3 };
      r3 && r3.getStreamId && (s2.streamId = r3.getStreamId()), r3 && r3.getType && (s2.mediaType = r3.getType()), i3 && i3.mode && (s2.mode = i3.mode), t4[e4].some((n5, a4) => {
        if (n5 && o2 > n5.priority)
          return t4[e4].splice(a4, 0, s2), true;
      }) || t4[e4].push(s2);
    }
    function n3(e4, n4, r3) {
      if (!e4 || !n4 || !t4[e4])
        return;
      const i3 = a3(e4, n4, r3);
      i3 < 0 || (t4[e4][i3] = null);
    }
    function a3(e4, n4, a4) {
      let r3 = -1;
      return t4[e4] ? (t4[e4].some((t5, e5) => {
        if (t5 && t5.callback === n4 && (!a4 || a4 === t5.scope))
          return r3 = e5, true;
      }), r3) : r3;
    }
    return { on: function(t5, n4, a4, r3 = {}) {
      e3(t5, n4, a4, r3);
    }, once: function(t5, n4, a4, r3 = {}) {
      e3(t5, n4, a4, r3, true);
    }, off: n3, trigger: function(e4, a4 = {}, i3 = {}) {
      if (!e4 || !t4[e4])
        return;
      if ((a4 = a4 || {}).hasOwnProperty("type"))
        throw new Error("'type' is a reserved word for event dispatching");
      a4.type = e4, i3.streamId && (a4.streamId = i3.streamId), i3.mediaType && (a4.mediaType = i3.mediaType);
      const l3 = [];
      t4[e4].filter((t5) => !(!t5 || i3.streamId && t5.streamId && t5.streamId !== i3.streamId || i3.mediaType && t5.mediaType && t5.mediaType !== i3.mediaType || i3.mode && t5.mode && t5.mode !== i3.mode || !t5.mode && i3.mode && i3.mode === r2.default.EVENT_MODE_ON_RECEIVE)).forEach((t5) => {
        t5 && t5.callback.call(t5.scope, a4), t5.executeOnlyOnce && l3.push(t5);
      }), l3.forEach((t5) => {
        n3(e4, t5.callback, t5.scope);
      });
    }, reset: function() {
      t4 = {};
    } };
  }
  i2.__dashjs_factory_name = "EventBus";
  const l2 = a2.default.getSingletonFactory(i2);
  l2.EVENT_PRIORITY_LOW = 0, l2.EVENT_PRIORITY_HIGH = 5e3, a2.default.updateSingletonFactory(i2.__dashjs_factory_name, l2), e2.default = l2;
}, 138: function(t3, e2, n2) {
  n2.r(e2);
  const a2 = function() {
    let t4, e3 = [];
    const n3 = {}, a3 = {};
    function r2(t5, n4) {
      for (const a4 in e3) {
        const r3 = e3[a4];
        if (r3.context === t5 && r3.name === n4)
          return r3.instance;
      }
      return null;
    }
    function i2(t5, e4) {
      return e4[t5];
    }
    function l2(t5, e4, n4) {
      t5 in n4 && (n4[t5] = e4);
    }
    function o2(e4, n4, a4) {
      let r3;
      const i3 = e4.__dashjs_factory_name, l3 = n4[i3];
      if (l3) {
        let i4 = l3.instance;
        if (!l3.override)
          return i4.apply({ context: n4, factory: t4 }, a4);
        r3 = e4.apply({ context: n4 }, a4), i4 = i4.apply({ context: n4, factory: t4, parent: r3 }, a4);
        for (const t5 in i4)
          r3.hasOwnProperty(t5) && (r3[t5] = i4[t5]);
      } else
        r3 = e4.apply({ context: n4 }, a4);
      return r3.getClassName = function() {
        return i3;
      }, r3;
    }
    return t4 = { deleteSingletonInstances: function(t5) {
      e3 = e3.filter((e4) => e4.context !== t5);
    }, extend: function(t5, e4, n4, a4) {
      !a4[t5] && e4 && (a4[t5] = { instance: e4, override: n4 });
    }, getClassFactory: function(t5) {
      let e4 = i2(t5.__dashjs_factory_name, a3);
      return e4 || (e4 = function(e5) {
        return void 0 === e5 && (e5 = {}), { create: function() {
          return o2(t5, e5, arguments);
        } };
      }, a3[t5.__dashjs_factory_name] = e4), e4;
    }, getClassFactoryByName: function(t5) {
      return i2(t5, a3);
    }, getSingletonFactory: function(t5) {
      let a4 = i2(t5.__dashjs_factory_name, n3);
      return a4 || (a4 = function(n4) {
        let a5;
        return void 0 === n4 && (n4 = {}), { getInstance: function() {
          return a5 || (a5 = r2(n4, t5.__dashjs_factory_name)), a5 || (a5 = o2(t5, n4, arguments), e3.push({ name: t5.__dashjs_factory_name, context: n4, instance: a5 })), a5;
        } };
      }, n3[t5.__dashjs_factory_name] = a4), a4;
    }, getSingletonFactoryByName: function(t5) {
      return i2(t5, n3);
    }, getSingletonInstance: r2, setSingletonInstance: function(t5, n4, a4) {
      for (const r3 in e3) {
        const i3 = e3[r3];
        if (i3.context === t5 && i3.name === n4)
          return void (e3[r3].instance = a4);
      }
      e3.push({ name: n4, context: t5, instance: a4 });
    }, updateClassFactory: function(t5, e4) {
      l2(t5, e4, a3);
    }, updateSingletonFactory: function(t5, e4) {
      l2(t5, e4, n3);
    } }, t4;
  }();
  e2.default = a2;
}, 8261: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(7263), i2 = n2(649), l2 = n2(5212), o2 = n2(7568), s2 = n2(8850), u2 = n2(3621), d2 = n2(4246);
  function c2() {
    let t4;
    const e3 = this.context, n3 = (0, s2.default)(e3).getInstance(), a3 = { "streaming.delay.liveDelay": u2.default.SETTING_UPDATED_LIVE_DELAY, "streaming.delay.liveDelayFragmentCount": u2.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, "streaming.liveCatchup.enabled": u2.default.SETTING_UPDATED_CATCHUP_ENABLED, "streaming.liveCatchup.playbackRate.min": u2.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, "streaming.liveCatchup.playbackRate.max": u2.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, "streaming.abr.rules.throughputRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.bolaRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.insufficientBufferRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.switchHistoryRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.droppedFramesRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.abandonRequestsRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.l2ARule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.loLPRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.maxBitrate.video": u2.default.SETTING_UPDATED_MAX_BITRATE, "streaming.abr.maxBitrate.audio": u2.default.SETTING_UPDATED_MAX_BITRATE, "streaming.abr.minBitrate.video": u2.default.SETTING_UPDATED_MIN_BITRATE, "streaming.abr.minBitrate.audio": u2.default.SETTING_UPDATED_MIN_BITRATE }, c3 = { debug: { logLevel: i2.default.LOG_LEVEL_WARNING, dispatchEvent: false }, streaming: { abandonLoadTimeout: 1e4, wallclockTimeUpdateInterval: 100, manifestUpdateRetryInterval: 100, liveUpdateTimeThresholdInMilliseconds: 0, cacheInitSegments: false, applyServiceDescription: true, applyProducerReferenceTime: true, applyContentSteering: true, enableManifestDurationMismatchFix: true, parseInbandPrft: false, enableManifestTimescaleMismatchFix: false, capabilities: { filterUnsupportedEssentialProperties: true, supportedEssentialProperties: [{ schemeIdUri: l2.default.FONT_DOWNLOAD_DVB_SCHEME }, { schemeIdUri: l2.default.COLOUR_PRIMARIES_SCHEME_ID_URI, value: /1|5|6|7/ }, { schemeIdUri: l2.default.URL_QUERY_INFO_SCHEME }, { schemeIdUri: l2.default.EXT_URL_QUERY_INFO_SCHEME }, { schemeIdUri: l2.default.MATRIX_COEFFICIENTS_SCHEME_ID_URI, value: /0|1|5|6/ }, { schemeIdUri: l2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI, value: /1|6|13|14|15/ }, { schemeIdUri: l2.default.SEGMENT_SEQUENCE_REPRESENTATION_SCHEME_ID_URI }, ...l2.default.THUMBNAILS_SCHEME_ID_URIS.map((t5) => ({ schemeIdUri: t5 }))], useMediaCapabilitiesApi: true, filterVideoColorimetryEssentialProperties: false, filterHDRMetadataFormatEssentialProperties: false, filterAudioChannelConfiguration: false }, events: { eventControllerRefreshDelay: 100, deleteEventMessageDataTimeout: 1e4 }, timeShiftBuffer: { calcFromSegmentTimeline: false, fallbackToSegmentTimeline: true }, metrics: { maxListDepth: 100 }, delay: { liveDelayFragmentCount: NaN, liveDelay: NaN, useSuggestedPresentationDelay: true }, protection: { keepProtectionMediaKeys: false, keepProtectionMediaKeysMaximumOpenSessions: -1, ignoreEmeEncryptedEvent: false, detectPlayreadyMessageFormat: true, ignoreKeyStatuses: false }, buffer: { enableSeekDecorrelationFix: false, fastSwitchEnabled: null, flushBufferAtTrackSwitch: false, reuseExistingSourceBuffers: true, bufferPruningInterval: 10, bufferToKeep: 20, bufferTimeAtTopQuality: 30, bufferTimeAtTopQualityLongForm: 60, initialBufferLevel: NaN, bufferTimeDefault: 18, longFormContentDurationThreshold: 600, stallThreshold: 0.3, lowLatencyStallThreshold: 0.3, useAppendWindow: true, setStallState: true, avoidCurrentTimeRangePruning: false, useChangeType: true, mediaSourceDurationInfinity: true, resetSourceBuffersForTrackSwitch: false, syntheticStallEvents: { enabled: false, ignoreReadyState: false } }, gaps: { jumpGaps: true, jumpLargeGaps: true, smallGapLimit: 1.5, threshold: 0.3, enableSeekFix: true, enableStallFix: false, stallSeek: 0.1, seekOffset: 0 }, utcSynchronization: { enabled: true, useManifestDateHeaderTimeSource: true, backgroundAttempts: 2, timeBetweenSyncAttempts: 30, maximumTimeBetweenSyncAttempts: 600, minimumTimeBetweenSyncAttempts: 2, timeBetweenSyncAttemptsAdjustmentFactor: 2, maximumAllowedDrift: 100, enableBackgroundSyncAfterSegmentDownloadError: true, defaultTimingSource: { scheme: "urn:mpeg:dash:utc:http-xsdate:2014", value: "https://time.akamai.com/?iso&ms" }, artificialTimeOffsetToApply: 0 }, scheduling: { defaultTimeout: 500, lowLatencyTimeout: 0, scheduleWhilePaused: true }, text: { defaultEnabled: true, dispatchForManualRendering: false, extendSegmentedCues: true, imsc: { displayForcedOnlyMode: false, enableRollUp: true }, webvtt: { customRenderingEnabled: false } }, liveCatchup: { maxDrift: NaN, playbackRate: { min: NaN, max: NaN }, playbackBufferMin: 0.5, enabled: null, mode: l2.default.LIVE_CATCHUP_MODE_DEFAULT }, lastBitrateCachingInfo: { enabled: true, ttl: 36e4 }, lastMediaSettingsCachingInfo: { enabled: true, ttl: 36e4 }, saveLastMediaSettingsForCurrentStreamingSession: true, cacheLoadThresholds: { video: 10, audio: 5 }, trackSwitchMode: { audio: l2.default.TRACK_SWITCH_MODE_ALWAYS_REPLACE, video: l2.default.TRACK_SWITCH_MODE_NEVER_REPLACE }, includePreselectionsInMediainfoArray: true, includePreselectionsForInitialTrackSelection: false, ignoreSelectionPriority: false, prioritizeRoleMain: true, assumeDefaultRoleAsMain: true, selectionModeForInitialTrack: l2.default.TRACK_SELECTION_MODE_LOWEST_STARTUP_DELAY, fragmentRequestTimeout: 2e4, fragmentRequestProgressTimeout: -1, manifestRequestTimeout: 1e4, retryIntervals: { [o2.HTTPRequest.MPD_TYPE]: 500, [o2.HTTPRequest.XLINK_EXPANSION_TYPE]: 500, [o2.HTTPRequest.MEDIA_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.INIT_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.INDEX_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.LICENSE]: 1e3, [o2.HTTPRequest.OTHER_TYPE]: 1e3, lowLatencyReductionFactor: 10 }, retryAttempts: { [o2.HTTPRequest.MPD_TYPE]: 3, [o2.HTTPRequest.XLINK_EXPANSION_TYPE]: 1, [o2.HTTPRequest.MEDIA_SEGMENT_TYPE]: 3, [o2.HTTPRequest.INIT_SEGMENT_TYPE]: 3, [o2.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: 3, [o2.HTTPRequest.INDEX_SEGMENT_TYPE]: 3, [o2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE]: 3, [o2.HTTPRequest.LICENSE]: 3, [o2.HTTPRequest.OTHER_TYPE]: 3, lowLatencyMultiplyFactor: 5 }, abr: { limitBitrateByPortal: false, usePixelRatioInLimitBitrateByPortal: false, enableSupplementalPropertyAdaptationSetSwitching: true, rules: { throughputRule: { active: true, priority: d2.default.PRIORITY.DEFAULT }, bolaRule: { active: true, priority: d2.default.PRIORITY.DEFAULT }, insufficientBufferRule: { active: true, priority: d2.default.PRIORITY.DEFAULT, parameters: { throughputSafetyFactor: 0.7, segmentIgnoreCount: 2 } }, switchHistoryRule: { active: true, priority: d2.default.PRIORITY.DEFAULT, parameters: { sampleSize: 8, switchPercentageThreshold: 0.075 } }, droppedFramesRule: { active: false, priority: d2.default.PRIORITY.DEFAULT, parameters: { minimumSampleSize: 375, droppedFramesPercentageThreshold: 0.15 } }, abandonRequestsRule: { active: true, priority: d2.default.PRIORITY.DEFAULT, parameters: { abandonDurationMultiplier: 1.8, minSegmentDownloadTimeThresholdInMs: 500, minThroughputSamplesThreshold: 6 } }, l2ARule: { active: false, priority: d2.default.PRIORITY.DEFAULT }, loLPRule: { active: false, priority: d2.default.PRIORITY.DEFAULT } }, throughput: { averageCalculationMode: l2.default.THROUGHPUT_CALCULATION_MODES.EWMA, lowLatencyDownloadTimeCalculationMode: l2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING, useResourceTimingApi: true, useNetworkInformationApi: { xhr: false, fetch: false }, useDeadTimeLatency: true, bandwidthSafetyFactor: 0.9, sampleSettings: { live: 3, vod: 4, enableSampleSizeAdjustment: true, decreaseScale: 0.7, increaseScale: 1.3, maxMeasurementsToKeep: 20, averageLatencySampleAmount: 4 }, ewma: { throughputSlowHalfLifeSeconds: 8, throughputFastHalfLifeSeconds: 3, latencySlowHalfLifeCount: 2, latencyFastHalfLifeCount: 1, weightDownloadTimeMultiplicationFactor: 15e-4 } }, maxBitrate: { audio: -1, video: -1 }, minBitrate: { audio: -1, video: -1 }, initialBitrate: { audio: -1, video: -1 }, autoSwitchBitrate: { audio: true, video: true } }, cmcd: { applyParametersFromMpd: true, enabled: false, sid: null, cid: null, rtp: null, rtpSafetyFactor: 5, mode: l2.default.CMCD_MODE_QUERY, enabledKeys: l2.default.CMCD_AVAILABLE_KEYS, includeInRequests: ["segment", "mpd"], version: 1 }, cmsd: { enabled: false, abr: { applyMb: false, etpWeightRatio: 0 } }, enhancement: { enabled: false, codecs: ["lvc1"] }, defaultSchemeIdUri: { viewpoint: "", audioChannelConfiguration: "urn:mpeg:mpegB:cicp:ChannelConfiguration", role: "urn:mpeg:dash:role:2011", accessibility: "urn:mpeg:dash:role:2011" } }, errors: { recoverAttempts: { mediaErrorDecode: 5 } } };
    let f3 = r2.default.clone(c3);
    function g2(t5, e4, i3) {
      for (let l3 in t5)
        t5.hasOwnProperty(l3) && (e4.hasOwnProperty(l3) ? "object" != typeof t5[l3] || t5[l3] instanceof RegExp || t5[l3] instanceof Array || null === t5[l3] ? (e4[l3] = r2.default.clone(t5[l3]), a3[i3 + l3] && n3.trigger(a3[i3 + l3])) : g2(t5[l3], e4[l3], i3.slice() + l3 + ".") : console.error("Settings parameter " + i3 + l3 + " is not supported"));
    }
    return t4 = { get: function() {
      return f3;
    }, update: function(t5) {
      "object" == typeof t5 && g2(t5, f3, "");
    }, reset: function() {
      f3 = r2.default.clone(c3);
    } }, t4;
  }
  c2.__dashjs_factory_name = "Settings";
  let f2 = a2.default.getSingletonFactory(c2);
  e2.default = f2;
}, 7263: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(3282), r2 = n2(8571), i2 = n2(5212);
  class l2 {
    static mixin(t4, e3, n3) {
      let a3, r3 = {};
      if (t4)
        for (let i3 in e3)
          e3.hasOwnProperty(i3) && (a3 = e3[i3], i3 in t4 && (t4[i3] === a3 || i3 in r3 && r3[i3] === a3) || ("object" == typeof t4[i3] && null !== t4[i3] ? t4[i3] = l2.mixin(t4[i3], a3, n3) : t4[i3] = n3(a3)));
      return t4;
    }
    static clone(t4) {
      if (!t4 || "object" != typeof t4)
        return t4;
      if (t4 instanceof RegExp)
        return new RegExp(t4);
      let e3;
      if (t4 instanceof Array) {
        e3 = [];
        for (let n3 = 0, a3 = t4.length; n3 < a3; ++n3)
          n3 in t4 && e3.push(l2.clone(t4[n3]));
      } else
        e3 = {};
      return l2.mixin(e3, t4, l2.clone);
    }
    static addAdditionalQueryParameterToUrl(t4, e3) {
      try {
        if (!e3 || 0 === e3.length)
          return t4;
        let n3 = t4;
        return e3.forEach(({ key: t5, value: e4 }) => {
          const a3 = n3.includes("?") ? "&" : "?";
          n3 += `${a3}${encodeURIComponent(t5)}=${encodeURIComponent(e4)}`;
        }), n3;
      } catch (e4) {
        return t4;
      }
    }
    static removeQueryParameterFromUrl(t4, e3) {
      if (!t4 || !e3)
        return t4;
      const n3 = new URL(t4), a3 = new URLSearchParams(n3.search);
      if (!a3 || 0 === a3.size || !a3.has(e3))
        return t4;
      a3.delete(e3);
      const r3 = Array.from(a3.entries()).map(([t5, e4]) => `${t5}=${e4}`).join("&"), i3 = `${n3.origin}${n3.pathname}`;
      return r3 ? `${i3}?${r3}` : i3;
    }
    static parseHttpHeaders(t4) {
      let e3 = {};
      if (!t4)
        return e3;
      let n3 = t4.trim().split("\r\n");
      for (let t5 = 0, a3 = n3.length; t5 < a3; t5++) {
        let a4 = n3[t5], r3 = a4.indexOf(": ");
        r3 > 0 && (e3[a4.substring(0, r3)] = a4.substring(r3 + 2));
      }
      return e3;
    }
    static parseQueryParams(t4) {
      const e3 = [], n3 = new URLSearchParams(t4);
      for (const [t5, a3] of n3.entries())
        e3.push({ key: decodeURIComponent(t5), value: decodeURIComponent(a3) });
      return e3;
    }
    static generateUuid() {
      let t4 = (/* @__PURE__ */ new Date()).getTime();
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e3) {
        const n3 = (t4 + 16 * Math.random()) % 16 | 0;
        return t4 = Math.floor(t4 / 16), ("x" == e3 ? n3 : 3 & n3 | 8).toString(16);
      });
    }
    static generateHashCode(t4) {
      let e3 = 0;
      if (0 === t4.length)
        return e3;
      for (let n3 = 0; n3 < t4.length; n3++)
        e3 = (e3 << 5) - e3 + t4.charCodeAt(n3), e3 |= 0;
      return e3;
    }
    static getRelativeUrl(t4, e3) {
      try {
        const n3 = new URL(t4), r3 = new URL(e3);
        if (n3.protocol = r3.protocol, n3.origin !== r3.origin)
          return e3;
        let i3 = a2.relative(n3.pathname.substr(0, n3.pathname.lastIndexOf("/")), r3.pathname.substr(0, r3.pathname.lastIndexOf("/")));
        const l3 = 0 === i3.length ? 1 : 0;
        return i3 += r3.pathname.substr(r3.pathname.lastIndexOf("/") + l3, r3.pathname.length - 1), r3.pathname.length < i3.length ? r3.pathname : i3;
      } catch (t5) {
        return e3;
      }
    }
    static getHostFromUrl(t4) {
      try {
        return new URL(t4).host;
      } catch (t5) {
        return null;
      }
    }
    static parseUserAgent(t4 = null) {
      try {
        const e3 = null === t4 && "undefined" != typeof navigator ? navigator.userAgent.toLowerCase() : "";
        return (0, r2.UAParser)(e3);
      } catch (t5) {
        return {};
      }
    }
    static stringHasProtocol(t4) {
      return /(http(s?)):\/\//i.test(t4);
    }
    static bufferSourceToDataView(t4) {
      return l2.toDataView(t4, DataView);
    }
    static bufferSourceToInt8(t4) {
      return l2.toDataView(t4, Uint8Array);
    }
    static uint8ArrayToString(t4) {
      return new TextDecoder("utf-8").decode(t4);
    }
    static bufferSourceToHex(t4) {
      const e3 = l2.bufferSourceToInt8(t4);
      let n3 = "";
      for (let t5 of e3)
        t5 = t5.toString(16), 1 === t5.length && (t5 = "0" + t5), n3 += t5;
      return n3;
    }
    static toDataView(t4, e3) {
      const n3 = l2.getArrayBuffer(t4);
      let a3 = 1;
      "BYTES_PER_ELEMENT" in DataView && (a3 = DataView.BYTES_PER_ELEMENT);
      const r3 = ((t4.byteOffset || 0) + t4.byteLength) / a3, i3 = (t4.byteOffset || 0) / a3, o2 = Math.floor(Math.max(0, Math.min(i3, r3)));
      return new e3(n3, o2, Math.floor(Math.min(o2 + Math.max(1 / 0, 0), r3)) - o2);
    }
    static getArrayBuffer(t4) {
      return t4 instanceof ArrayBuffer ? t4 : t4.buffer;
    }
    static getCodecFamily(t4) {
      const { base: e3, profile: n3 } = l2._getCodecParts(t4);
      switch (e3) {
        case "mp4a":
          switch (n3) {
            case "69":
            case "6b":
            case "40.34":
              return i2.default.CODEC_FAMILIES.MP3;
            case "66":
            case "67":
            case "68":
            case "40.2":
            case "40.02":
            case "40.5":
            case "40.05":
            case "40.29":
            case "40.42":
              return i2.default.CODEC_FAMILIES.AAC;
            case "a5":
              return i2.default.CODEC_FAMILIES.AC3;
            case "e6":
              return i2.default.CODEC_FAMILIES.EC3;
            case "b2":
              return i2.default.CODEC_FAMILIES.DTSX;
            case "a9":
              return i2.default.CODEC_FAMILIES.DTSC;
          }
          break;
        case "avc1":
        case "avc3":
          return i2.default.CODEC_FAMILIES.AVC;
        case "hvc1":
        case "hvc3":
          return i2.default.CODEC_FAMILIES.HEVC;
        default:
          return e3;
      }
      return e3;
    }
    static _getCodecParts(t4) {
      const [e3, ...n3] = t4.split(".");
      return { base: e3, profile: n3.join(".") };
    }
  }
  e2.default = l2;
}, 8986: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { getVersionString: function() {
    return r2;
  } });
  const a2 = "5.1.1";
  function r2() {
    return a2;
  }
}, 8748: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    extend(t4, e3) {
      if (!t4)
        return;
      let n3 = !!e3 && e3.override, a2 = !!e3 && e3.publicOnly;
      for (const e4 in t4)
        !t4.hasOwnProperty(e4) || this[e4] && !n3 || a2 && -1 === t4[e4].indexOf("public_") || (this[e4] = t4[e4]);
    }
  };
}, 5734: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.ATTEMPT_BACKGROUND_SYNC = "attemptBackgroundSync", this.BUFFERING_COMPLETED = "bufferingCompleted", this.BUFFER_CLEARED = "bufferCleared", this.BUFFER_REPLACEMENT_STARTED = "bufferReplacementStarted", this.BYTES_APPENDED_END_FRAGMENT = "bytesAppendedEndFragment", this.CHECK_FOR_EXISTENCE_COMPLETED = "checkForExistenceCompleted", this.CMSD_STATIC_HEADER = "cmsdStaticHeader", this.CURRENT_TRACK_CHANGED = "currentTrackChanged", this.DATA_UPDATE_COMPLETED = "dataUpdateCompleted", this.INBAND_EVENTS = "inbandEvents", this.INITIAL_STREAM_SWITCH = "initialStreamSwitch", this.INIT_FRAGMENT_LOADED = "initFragmentLoaded", this.INIT_FRAGMENT_NEEDED = "initFragmentNeeded", this.INTERNAL_MANIFEST_LOADED = "internalManifestLoaded", this.LOADING_ABANDONED = "loadingAborted", this.LOADING_COMPLETED = "loadingCompleted", this.LOADING_DATA_PROGRESS = "loadingDataProgress", this.LOADING_PROGRESS = "loadingProgress", this.MANIFEST_UPDATED = "manifestUpdated", this.MEDIAINFO_UPDATED = "mediaInfoUpdated", this.MEDIA_FRAGMENT_LOADED = "mediaFragmentLoaded", this.MEDIA_FRAGMENT_NEEDED = "mediaFragmentNeeded", this.ORIGINAL_MANIFEST_LOADED = "originalManifestLoaded", this.QUOTA_EXCEEDED = "quotaExceeded", this.SEEK_TARGET = "seekTarget", this.SEGMENT_LOCATION_BLACKLIST_ADD = "segmentLocationBlacklistAdd", this.SEGMENT_LOCATION_BLACKLIST_CHANGED = "segmentLocationBlacklistChanged", this.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD = "serviceLocationBlacklistAdd", this.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED = "serviceLocationBlacklistChanged", this.SERVICE_LOCATION_LOCATION_BLACKLIST_ADD = "serviceLocationLocationBlacklistAdd", this.SERVICE_LOCATION_LOCATION_BLACKLIST_CHANGED = "serviceLocationLocationBlacklistChanged", this.SETTING_UPDATED_ABR_ACTIVE_RULES = "settingUpdatedAbrActiveRules", this.SETTING_UPDATED_CATCHUP_ENABLED = "settingUpdatedCatchupEnabled", this.SETTING_UPDATED_LIVE_DELAY = "settingUpdatedLiveDelay", this.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT = "settingUpdatedLiveDelayFragmentCount", this.SETTING_UPDATED_MAX_BITRATE = "settingUpdatedMaxBitrate", this.SETTING_UPDATED_MIN_BITRATE = "settingUpdatedMinBitrate", this.SETTING_UPDATED_PLAYBACK_RATE_MAX = "settingUpdatedPlaybackRateMax", this.SETTING_UPDATED_PLAYBACK_RATE_MIN = "settingUpdatedPlaybackRateMin", this.SET_FRAGMENTED_TEXT_AFTER_DISABLED = "setFragmentedTextAfterDisabled", this.SET_NON_FRAGMENTED_TEXT = "setNonFragmentedText", this.SOURCE_BUFFER_ERROR = "sourceBufferError", this.STREAMS_COMPOSED = "streamsComposed", this.STREAM_BUFFERING_COMPLETED = "streamBufferingCompleted", this.STREAM_REQUESTING_COMPLETED = "streamRequestingCompleted", this.TEXT_TRACKS_QUEUE_INITIALIZED = "textTracksQueueInitialized", this.TIME_SYNCHRONIZATION_COMPLETED = "timeSynchronizationComplete", this.UPDATE_TIME_SYNC_OFFSET = "updateTimeSyncOffset", this.URL_RESOLUTION_FAILED = "urlResolutionFailed", this.VIDEO_CHUNK_RECEIVED = "videoChunkReceived", this.VIDEO_ELEMENT_RESIZED = "videoElementResized", this.WALLCLOCK_TIME_UPDATED = "wallclockTimeUpdated", this.XLINK_ELEMENT_LOADED = "xlinkElementLoaded", this.XLINK_READY = "xlinkReady";
    }
  }
  e2.default = r2;
}, 3621: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(5734);
  class r2 extends a2.default {
  }
  let i2 = new r2();
  e2.default = i2;
}, 7252: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    extend(t4, e3) {
      if (!t4)
        return;
      let n3 = !!e3 && e3.override, a2 = !!e3 && e3.publicOnly;
      for (const e4 in t4)
        !t4.hasOwnProperty(e4) || this[e4] && !n3 || a2 && -1 === t4[e4].indexOf("public_") || (this[e4] = t4[e4]);
    }
  };
}, 8854: function(t3, e2, n2) {
  n2.r(e2), e2.default = { ACCESSIBILITY: "Accessibility", ADAPTATION_SET: "AdaptationSet", ADAPTATION_SETS: "adaptationSets", ADAPTATION_SET_SWITCHING_SCHEME_ID_URI: "urn:mpeg:dash:adaptation-set-switching:2016", ADD: "add", ASSET_IDENTIFIER: "AssetIdentifier", AUDIO_CHANNEL_CONFIGURATION: "AudioChannelConfiguration", AUDIO_SAMPLING_RATE: "audioSamplingRate", AVAILABILITY_END_TIME: "availabilityEndTime", AVAILABILITY_START_TIME: "availabilityStartTime", AVAILABILITY_TIME_COMPLETE: "availabilityTimeComplete", AVAILABILITY_TIME_OFFSET: "availabilityTimeOffset", BANDWITH: "bandwidth", BASE_URL: "BaseURL", BITSTREAM_SWITCHING: "BitstreamSwitching", BITSTREAM_SWITCHING_MINUS: "bitstreamSwitching", BYTE_RANGE: "byteRange", CAPTION: "caption", CENC_DEFAULT_KID: "cenc:default_KID", CLIENT_DATA_REPORTING: "ClientDataReporting", CLIENT_REQUIREMENT: "clientRequirement", CMCD_PARAMETERS: "CMCDParameters", CODECS: "codecs", CODEC_PRIVATE_DATA: "codecPrivateData", CODING_DEPENDENCY: "codingDependency", CONTENT_COMPONENT: "ContentComponent", CONTENT_PROTECTION: "ContentProtection", CONTENT_STEERING: "ContentSteering", CONTENT_STEERING_RESPONSE: { VERSION: "VERSION", TTL: "TTL", RELOAD_URI: "RELOAD-URI", PATHWAY_PRIORITY: "PATHWAY-PRIORITY", PATHWAY_CLONES: "PATHWAY-CLONES", BASE_ID: "BASE-ID", ID: "ID", URI_REPLACEMENT: "URI-REPLACEMENT", HOST: "HOST", PARAMS: "PARAMS" }, CONTENT_TYPE: "contentType", DEFAULT_SERVICE_LOCATION: "defaultServiceLocation", DEPENDENCY_ID: "dependencyId", DURATION: "duration", DVB_PRIORITY: "dvb:priority", DVB_WEIGHT: "dvb:weight", DVB_URL: "dvb:url", DVB_MIMETYPE: "dvb:mimeType", DVB_FONTFAMILY: "dvb:fontFamily", DYNAMIC: "dynamic", END_NUMBER: "endNumber", ESSENTIAL_PROPERTY: "EssentialProperty", EVENT: "Event", EVENT_STREAM: "EventStream", FORCED_SUBTITLE: "forced-subtitle", FRAMERATE: "frameRate", FRAME_PACKING: "FramePacking", GROUP_LABEL: "GroupLabel", HEIGHT: "height", ID: "id", INBAND: "inband", INBAND_EVENT_STREAM: "InbandEventStream", INDEX: "index", INDEX_RANGE: "indexRange", INITIALIZATION: "Initialization", INITIALIZATION_MINUS: "initialization", LA_URL: "Laurl", LA_URL_LOWER_CASE: "laurl", LABEL: "Label", LANG: "lang", LOCATION: "Location", MAIN: "main", MAXIMUM_SAP_PERIOD: "maximumSAPPeriod", MAX_PLAYOUT_RATE: "maxPlayoutRate", MAX_SEGMENT_DURATION: "maxSegmentDuration", MAX_SUBSEGMENT_DURATION: "maxSubsegmentDuration", MEDIA: "media", MEDIA_PRESENTATION_DURATION: "mediaPresentationDuration", MEDIA_RANGE: "mediaRange", MEDIA_STREAM_STRUCTURE_ID: "mediaStreamStructureId", METRICS: "Metrics", METRICS_MINUS: "metrics", MIME_TYPE: "mimeType", MINIMUM_UPDATE_PERIOD: "minimumUpdatePeriod", MIN_BUFFER_TIME: "minBufferTime", MP4_PROTECTION_SCHEME: "urn:mpeg:dash:mp4protection:2011", MPD: "MPD", MPD_TYPE: "mpd", MPD_PATCH_TYPE: "mpdpatch", ORDER: "order", ORIGINAL_MPD_ID: "mpdId", ORIGINAL_PUBLISH_TIME: "originalPublishTime", PATCH_LOCATION: "PatchLocation", PERIOD: "Period", PRESELECTION: "Preselection", PRESELECTION_COMPONENTS: "preselectionComponents", PRESENTATION_TIME: "presentationTime", PRESENTATION_TIME_OFFSET: "presentationTimeOffset", PRO: "pro", PRODUCER_REFERENCE_TIME: "ProducerReferenceTime", PRODUCER_REFERENCE_TIME_TYPE: { ENCODER: "encoder", CAPTURED: "captured", APPLICATION: "application" }, PROFILES: "profiles", PSSH: "pssh", PUBLISH_TIME: "publishTime", QUALITY_RANKING: "qualityRanking", QUERY_BEFORE_START: "queryBeforeStart", QUERY_PART: "$querypart$", RANGE: "range", RATING: "Rating", REF: "ref", REF_ID: "refId", REMOVE: "remove", REPLACE: "replace", REPORTING: "Reporting", REPRESENTATION: "Representation", REPRESENTATION_INDEX: "RepresentationIndex", ROBUSTNESS: "robustness", ROLE: "Role", S: "S", SAR: "sar", SCAN_TYPE: "scanType", SEGMENT_ALIGNMENT: "segmentAlignment", SEGMENT_BASE: "SegmentBase", SEGMENT_LIST: "SegmentList", SEGMENT_PROFILES: "segmentProfiles", SEGMENT_SEQUENCE_PROPERTIES: "SegmentSequenceProperties", SEGMENT_TEMPLATE: "SegmentTemplate", SEGMENT_TIMELINE: "SegmentTimeline", SEGMENT_TYPE: "segment", SEGMENT_URL: "SegmentURL", SERVICE_DESCRIPTION: "ServiceDescription", SERVICE_DESCRIPTION_LATENCY: "Latency", SERVICE_DESCRIPTION_OPERATING_BANDWIDTH: "OperatingBandwidth", SERVICE_DESCRIPTION_OPERATING_QUALITY: "OperatingQuality", SERVICE_DESCRIPTION_PLAYBACK_RATE: "PlaybackRate", SERVICE_DESCRIPTION_SCOPE: "Scope", SERVICE_LOCATION: "serviceLocation", SERVICE_LOCATIONS: "serviceLocations", SOURCE_URL: "sourceURL", START: "start", START_NUMBER: "startNumber", START_WITH_SAP: "startWithSAP", STATIC: "static", STEERING_TYPE: "steering", SUBSET: "Subset", SUBTITLE: "subtitle", SUB_REPRESENTATION: "SubRepresentation", SUB_SEGMENT_ALIGNMENT: "subsegmentAlignment", SUGGESTED_PRESENTATION_DELAY: "suggestedPresentationDelay", SUPPLEMENTAL_PROPERTY: "SupplementalProperty", SUPPLEMENTAL_CODECS: "scte214:supplementalCodecs", TAG: "tag", TIMESCALE: "timescale", TIMESHIFT_BUFFER_DEPTH: "timeShiftBufferDepth", TTL: "ttl", TYPE: "type", UTC_TIMING: "UTCTiming", VALUE: "value", VIEWPOINT: "Viewpoint", WALL_CLOCK_TIME: "wallClockTime", WIDTH: "width" };
}, 5717: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    constructor() {
      this.schemeIdUri = "", this.value = "";
    }
  };
}, 8200: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return Is;
  } });
  var r2 = n2(138), i2 = n2(4246), l2 = { TCP_CONNECTION: "TcpList", HTTP_REQUEST: "HttpList", TRACK_SWITCH: "RepSwitchList", BUFFER_LEVEL: "BufferLevel", BUFFER_LOADED: "bufferLoaded", ABANDON_LOAD: "abandonload", ALLOW_LOAD: "allowload", BUFFER_EMPTY: "bufferStalled", BUFFER_STATE: "BufferState", DVR_INFO: "DVRInfo", DROPPED_FRAMES: "DroppedFrames", SCHEDULING_INFO: "SchedulingInfo", REQUESTS_QUEUE: "RequestsQueue", MANIFEST_UPDATE: "ManifestUpdate", MANIFEST_UPDATE_STREAM_INFO: "ManifestUpdatePeriodInfo", MANIFEST_UPDATE_TRACK_INFO: "ManifestUpdateRepresentationInfo", PLAY_LIST: "PlayList", DVB_ERRORS: "DVBErrors", HTTP_REQUEST_DVB_REPORTING_TYPE: "DVBReporting" }, o2 = n2(649), u2 = n2(8261);
  function d2(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics;
    let a2, r3, s2;
    return a2 = { getSwitchRequest: function(t5) {
      try {
        const a3 = (0, i2.default)(e3).create();
        a3.rule = this.getClassName();
        const o3 = t5.getMediaInfo(), s3 = t5.getMediaType(), u3 = n3.getCurrentBufferState(s3), d3 = t5.getScheduleController(), c3 = t5.getAbrController(), f3 = t5.getStreamInfo(), g3 = f3 ? f3.id : null, m3 = f3 && f3.manifestInfo ? f3.manifestInfo.isDynamic : null, h3 = t5.getThroughputController(), p3 = h3.getSafeAverageThroughput(s3), b3 = h3.getAverageLatency(s3);
        return isNaN(p3) || !u3 || c3.getAbandonmentStateFor(g3, s3) === l2.ALLOW_LOAD && (u3.state === l2.BUFFER_LOADED || m3) && (a3.representation = c3.getOptimalRepresentationForBitrate(o3, p3, true), a3.priority = r3.get().streaming.abr.rules.throughputRule.priority, a3.reason = { throughput: p3, latency: b3, message: `[ThroughputRule]: Switching to Representation with bitrate ${a3.representation ? a3.representation.bitrateInKbit : "n/a"} kbit/s. Throughput: ${p3}` }, d3.setTimeToLoadDelay(0)), a3;
      } catch (t6) {
        return s2.error(t6), (0, i2.default)(e3).create();
      }
    }, reset: function() {
    } }, s2 = (0, o2.default)(e3).getInstance().getLogger(a2), r3 = (0, u2.default)(e3).getInstance(), a2;
  }
  d2.__dashjs_factory_name = "ThroughputRule";
  var c2 = r2.default.getClassFactory(d2), f2 = n2(8850), g2 = n2(3621), m2 = n2(5212), h2 = n2(1191);
  function p2(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = t4.dashMetrics, r3 = (0, u2.default)(e3).getInstance();
    let s2, d3, c3;
    function p3() {
      const t5 = r3.get().streaming.abr.rules.insufficientBufferRule.parameters.segmentIgnoreCount;
      c3 = {}, c3[m2.default.VIDEO] = { ignoreCount: t5 }, c3[m2.default.AUDIO] = { ignoreCount: t5 }, c3[m2.default.ENHANCEMENT] = { ignoreCount: t5 };
    }
    function b3() {
      p3();
    }
    function y3(t5) {
      isNaN(t5.startTime) || t5.mediaType !== m2.default.AUDIO && t5.mediaType !== m2.default.VIDEO || c3[t5.mediaType].ignoreCount > 0 && c3[t5.mediaType].ignoreCount--;
    }
    return s2 = { getSwitchRequest: function(t5) {
      const n4 = (0, i2.default)(e3).create();
      if (n4.rule = this.getClassName(), !t5 || !t5.hasOwnProperty("getMediaType"))
        return n4;
      const o3 = t5.getMediaType(), s3 = a2.getCurrentBufferState(o3), u3 = t5.getRepresentation().fragmentDuration;
      if (!function(t6, e4, n5) {
        return !t6.getLowLatencyModeEnabled() && c3[e4].ignoreCount <= 0 && n5;
      }(t5.getScheduleController().getPlaybackController(), o3, u3))
        return n4;
      const f3 = t5.getMediaInfo(), g3 = t5.getAbrController();
      if (s3 && s3.state === l2.BUFFER_EMPTY)
        d3.debug("[" + o3 + "] Switch to index 0; buffer is empty."), n4.representation = g3.getOptimalRepresentationForBitrate(f3, 0, true), n4.reason = { message: "[InsufficientBufferRule]: Switching to lowest Representation because buffer is empty" };
      else {
        const e4 = t5.getThroughputController(), i3 = a2.getCurrentBufferLevel(o3), l3 = e4.getAverageThroughput(o3, null, NaN) * r3.get().streaming.abr.rules.insufficientBufferRule.parameters.throughputSafetyFactor * i3 / u3;
        if (isNaN(l3) || l3 <= 0)
          return n4;
        n4.representation = g3.getOptimalRepresentationForBitrate(f3, l3, true), n4.priority = r3.get().streaming.abr.rules.insufficientBufferRule.priority, n4.reason = { message: "[InsufficientBufferRule]: Limiting maximum bitrate to avoid a buffer underrun.", bitrate: l3 };
      }
      return n4;
    }, reset: function() {
      p3(), n3.off(h2.default.PLAYBACK_SEEKING, b3, s2), n3.off(g2.default.BYTES_APPENDED_END_FRAGMENT, y3, s2);
    } }, d3 = (0, o2.default)(e3).getInstance().getLogger(s2), p3(), n3.on(h2.default.PLAYBACK_SEEKING, b3, s2), n3.on(g2.default.BYTES_APPENDED_END_FRAGMENT, y3, s2), s2;
  }
  p2.__dashjs_factory_name = "InsufficientBufferRule";
  var b2 = r2.default.getClassFactory(p2);
  function y2(t4) {
    const e3 = (t4 = t4 || {}).mediaPlayerModel, n3 = t4.dashMetrics, a2 = this.context, r3 = (0, u2.default)(a2).getInstance();
    let l3, s2, d3;
    function c3() {
      d3 = {};
    }
    return l3 = { shouldAbandon: function(t5) {
      const l4 = (0, i2.default)(a2).create();
      l4.rule = this.getClassName();
      try {
        if (!t5)
          return l4;
        const a3 = t5.getCurrentRequest();
        if (!isNaN(a3.index)) {
          if (null === a3.firstByteDate || d3.hasOwnProperty(a3.index))
            return l4;
          const i3 = e3.getBufferTimeDefault(), o3 = t5.getMediaType();
          if (n3.getCurrentBufferLevel(o3) > i3)
            return l4;
          const s3 = Date.now() - a3.firstByteDate.getTime();
          if (a3.traces.length >= r3.get().streaming.abr.rules.abandonRequestsRule.parameters.minThroughputSamplesThreshold && s3 > r3.get().streaming.abr.rules.abandonRequestsRule.parameters.minSegmentDownloadTimeThresholdInMs && a3.bytesLoaded < a3.bytesTotal)
            return function(t6, e4, n4) {
              const a4 = t6.getMediaInfo(), i4 = t6.getMediaType(), l5 = e4.traces.reduce((t7, e5) => t7 + e5.b[0], 0) - e4.traces[0].b[0], o4 = Math.max(e4.traces.reduce((t7, e5) => t7 + e5.d, 0) - e4.traces[0].d, 1), s4 = Math.round(8 * l5 / o4), u3 = Number(8 * e4.bytesTotal / s4 / 1e3).toFixed(2), c4 = t6.getRepresentation(), f3 = t6.getAbrController();
              if (u3 < e4.duration * r3.get().streaming.abr.rules.abandonRequestsRule.parameters.abandonDurationMultiplier || f3.isPlayingAtLowestQuality(c4))
                return n4;
              if (!d3.hasOwnProperty(e4.index)) {
                const l6 = t6.getAbrController(), o5 = e4.bytesTotal - e4.bytesLoaded, u4 = l6.getOptimalRepresentationForBitrate(a4, s4, true), c5 = e4.representation;
                o5 > e4.bytesTotal * u4.bitrateInKbit / c5.bitrateInKbit && (n4.representation = u4, n4.priority = r3.get().streaming.abr.rules.abandonRequestsRule.priority, n4.reason = { throughputInKbit: s4, message: `[AbandonRequestRule][${i4} is asking to abandon and switch to quality to ${u4.absoluteIndex}. The measured bandwidth was ${s4} kbit/s` }, d3[e4.index] = true);
              }
              return n4;
            }(t5, a3, l4);
        }
        return l4;
      } catch (t6) {
        return s2.error(t6), l4;
      }
    }, reset: c3 }, s2 = (0, o2.default)(a2).getInstance().getLogger(l3), c3(), l3;
  }
  y2.__dashjs_factory_name = "AbandonRequestsRule";
  var E2 = r2.default.getClassFactory(y2);
  function T2() {
    const t4 = this.context, e3 = (0, u2.default)(t4).getInstance();
    let n3;
    return n3 = { getSwitchRequest: function(n4) {
      const a2 = (0, i2.default)(t4).create();
      if (a2.rule = this.getClassName(), !n4 || !n4.hasOwnProperty("getDroppedFramesHistory"))
        return a2;
      const r3 = n4.getDroppedFramesHistory();
      if (!r3)
        return a2;
      const l3 = n4.getStreamInfo().id, o3 = n4.getMediaInfo(), s2 = n4.getAbrController(), u3 = r3.getFrameHistory(l3);
      if (!u3 || 0 === Object.keys(u3).length)
        return a2;
      let d3 = 0, c3 = 0;
      const f3 = s2.getPossibleVoRepresentationsFilteredBySettings(o3, true);
      let g3 = null;
      for (let t5 = 1; t5 < f3.length; t5++) {
        const n5 = f3[t5];
        if (n5 && u3[n5.id] && (d3 = u3[n5.id].droppedVideoFrames, c3 = u3[n5.id].totalVideoFrames, c3 > e3.get().streaming.abr.rules.droppedFramesRule.parameters.minimumSampleSize && d3 / c3 > e3.get().streaming.abr.rules.droppedFramesRule.parameters.droppedFramesPercentageThreshold)) {
          g3 = f3[t5 - 1];
          break;
        }
      }
      return g3 && (a2.representation = g3, a2.priority = e3.get().streaming.abr.rules.droppedFramesRule.priority, a2.reason = { droppedFrames: d3, message: `[DroppedFramesRule]: Switching to index ${g3.absoluteIndex}. Dropped Frames: ${d3}, Total Frames: ${c3}` }), a2;
    } }, n3;
  }
  T2.__dashjs_factory_name = "DroppedFramesRule";
  var _2 = r2.default.getClassFactory(T2);
  function v2() {
    const t4 = this.context, e3 = (0, u2.default)(t4).getInstance();
    let n3;
    return n3 = { getSwitchRequest: function(n4) {
      const a2 = (0, i2.default)(t4).create();
      if (a2.rule = this.getClassName(), !n4)
        return a2;
      const r3 = n4.getStreamInfo().id, l3 = n4.getMediaType(), o3 = n4 ? n4.getSwitchRequestHistory() : null, s2 = o3 ? o3.getSwitchRequests(r3, l3) : {}, u3 = n4.getAbrController(), d3 = n4.getMediaInfo(), c3 = u3.getPossibleVoRepresentationsFilteredBySettings(d3, true);
      let f3 = 0, g3 = 0;
      for (let t5 = 0; t5 < c3.length; t5++) {
        const n5 = c3[t5];
        if (n5 && s2[n5.id] && (f3 += s2[n5.id].drops, g3 += s2[n5.id].noDrops, f3 + g3 >= e3.get().streaming.abr.rules.switchHistoryRule.parameters.sampleSize && f3 / g3 > e3.get().streaming.abr.rules.switchHistoryRule.parameters.switchPercentageThreshold)) {
          a2.representation = t5 > 0 && s2[n5.id].drops > 0 ? c3[t5 - 1] : n5, a2.priority = e3.get().streaming.abr.rules.switchHistoryRule.priority, a2.reason = { drops: f3, noDrops: g3, message: `[SwitchHistoryRule]: Switch to index: ${a2.representation.absoluteIndex} samples: ${f3 + g3} drops:  ${f3}` };
          break;
        }
      }
      return a2;
    } }, n3;
  }
  v2.__dashjs_factory_name = "SwitchHistoryRule";
  var S2 = r2.default.getClassFactory(v2), w2 = n2(7568);
  const I2 = "BOLA_STATE_ONE_BITRATE", k2 = "BOLA_STATE_STARTUP", A = "BOLA_STATE_STEADY", R = 10;
  function N(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics, a2 = t4.mediaPlayerModel, r3 = (0, f2.default)(e3).getInstance(), s2 = pt(e3).getInstance();
    let d3, c3, p3, b3;
    function y3(t5) {
      const e4 = t5.mediaType, n4 = t5.streamId, a3 = e4 === m2.default.AUDIO ? [m2.default.AUDIO] : b3[n4];
      for (const t6 in a3)
        b3[n4] && b3[n4].hasOwnProperty(t6) && b3[n4][t6].state === A && (b3[n4][t6].placeholderBuffer = 0);
    }
    function E3(t5) {
      const e4 = t5.streamId;
      for (const t6 in b3[e4])
        if (b3[e4].hasOwnProperty(t6)) {
          const n4 = b3[e4][t6];
          n4.state !== I2 && (n4.state = k2, T3(n4));
        }
    }
    function T3(t5) {
      t5.placeholderBuffer = 0, t5.mostAdvancedSegmentStart = NaN, t5.lastSegmentWasReplacement = false, t5.lastSegmentStart = NaN, t5.lastSegmentDurationS = NaN, t5.lastSegmentRequestTimeMs = NaN, t5.lastSegmentFinishTimeMs = NaN;
    }
    function _3(t5) {
      try {
        if (t5 && t5.metric === l2.HTTP_REQUEST && t5.value && t5.value.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE && t5.value.trace && t5.value.trace.length) {
          const e4 = b3[t5.value._streamId] && b3[t5.value._streamId][t5.mediaType] ? b3[t5.value._streamId][t5.mediaType] : null;
          e4 && e4.state !== I2 && (e4.lastSegmentRequestTimeMs = t5.value.trequest.getTime(), e4.lastSegmentFinishTimeMs = t5.value._tfinish.getTime(), v3(e4, t5.mediaType));
        }
      } catch (t6) {
        c3.error(t6);
      }
    }
    function v3(t5, e4) {
      if (!isNaN(t5.lastSegmentStart) && !isNaN(t5.lastSegmentRequestTimeMs) && !isNaN(t5.placeholderBuffer)) {
        if (t5.placeholderBuffer *= 0.99, !isNaN(t5.lastSegmentFinishTimeMs)) {
          const a3 = n3.getCurrentBufferLevel(e4) + 1e-3 * (t5.lastSegmentFinishTimeMs - t5.lastSegmentRequestTimeMs), r4 = D2(t5, t5.currentRepresentation), i3 = Math.max(0, r4 - a3);
          t5.placeholderBuffer = Math.min(i3, t5.placeholderBuffer);
        }
        t5.lastSegmentWasReplacement && !isNaN(t5.lastSegmentDurationS) && (t5.placeholderBuffer += t5.lastSegmentDurationS), t5.lastSegmentStart = NaN, t5.lastSegmentRequestTimeMs = NaN;
      }
    }
    function S3(t5) {
      if (t5 && b3[t5.streamId] && b3[t5.streamId][t5.mediaType]) {
        const e4 = b3[t5.streamId][t5.mediaType];
        e4 && e4.state !== I2 && (e4.currentRepresentation = t5.newRepresentation);
      }
    }
    function N2(t5, e4, n4) {
      const a3 = n4.reduce((t6, e5, a4) => e5 > n4[t6] ? a4 : t6, 0);
      if (0 === a3)
        return null;
      const r4 = Math.max(t5, R + 2 * e4.length), i3 = (n4[a3] - 1) / (r4 / R - 1);
      return { gp: i3, Vp: R / i3 };
    }
    function C2(t5, e4) {
      const r4 = a2.getBufferTimeDefault();
      if (t5.bufferTimeDefault !== r4) {
        const a3 = N2(r4, t5.representations, t5.utilities);
        if (a3.Vp !== t5.Vp || a3.gp !== t5.gp) {
          const i3 = n3.getCurrentBufferLevel(e4);
          let l3 = i3 + t5.placeholderBuffer;
          l3 -= R, l3 *= a3.Vp / t5.Vp, l3 += R, t5.bufferTimeDefault = r4, t5.Vp = a3.Vp, t5.gp = a3.gp, t5.placeholderBuffer = Math.max(0, l3 - i3);
        }
      }
    }
    function D2(t5, e4) {
      return t5.Vp * (t5.utilities[e4.absoluteIndex] + t5.gp);
    }
    function x2(t5) {
      if (t5 && t5.chunk && t5.chunk.representation.mediaInfo && b3[t5.streamId]) {
        const e4 = b3[t5.streamId][t5.chunk.representation.mediaInfo.type];
        if (e4 && e4.state !== I2) {
          const n4 = t5.chunk.start;
          isNaN(e4.mostAdvancedSegmentStart) || n4 > e4.mostAdvancedSegmentStart ? (e4.mostAdvancedSegmentStart = n4, e4.lastSegmentWasReplacement = false) : e4.lastSegmentWasReplacement = true, e4.lastSegmentStart = n4, e4.lastSegmentDurationS = t5.chunk.duration, e4.currentRepresentation = t5.chunk.representation, v3(e4, t5.chunk.representation.mediaInfo.type);
        }
      }
    }
    function M2() {
      L2();
    }
    function P2() {
      p3.get().streaming.abr.limitBitrateByPortal && L2();
    }
    function O2(t5, e4) {
      const n4 = e4.absoluteIndex, a3 = e4.bandwidth, r4 = t5.utilities[n4];
      let i3 = 0;
      for (let e5 = n4 - 1; e5 >= 0; --e5)
        if (t5.utilities[e5] < t5.utilities[n4]) {
          const n5 = t5.representations[e5].bandwidth, l3 = t5.utilities[e5], o3 = t5.Vp * (t5.gp + (a3 * l3 - n5 * r4) / (a3 - n5));
          i3 = Math.max(i3, o3);
        }
      return i3;
    }
    function z2(t5) {
      if (t5 && b3[t5.streamId]) {
        const e4 = b3[t5.streamId][t5.mediaType];
        if (e4 && e4.state !== I2) {
          const a3 = n3.getCurrentBufferLevel(t5.mediaType);
          let r4;
          r4 = e4.currentRepresentation.absoluteIndex > 0 ? O2(e4, e4.currentRepresentation) : R;
          const i3 = Math.max(0, r4 - a3);
          e4.placeholderBuffer = Math.min(e4.placeholderBuffer, i3);
        }
      }
    }
    function L2() {
      b3 = {};
    }
    return d3 = { getSwitchRequest: function(t5) {
      try {
        const r4 = (0, i2.default)(e3).create();
        t5.getScheduleController().setTimeToLoadDelay(0), r4.rule = this.getClassName(), r4.reason = r4.reason || {};
        const l3 = function(t6) {
          const e4 = t6.getMediaType(), n4 = t6.getStreamInfo().id;
          b3[n4] || (b3 = {}, b3[n4] = {});
          let r5 = b3[n4][e4];
          return r5 ? r5.state !== I2 && C2(r5, e4) : (r5 = function(t7) {
            const e5 = {}, n5 = t7.getMediaInfo(), r6 = s2.getPossibleVoRepresentationsFilteredBySettings(n5, true);
            let i3 = r6.map((t8) => t8.bandwidth).map((t8) => Math.log(t8));
            i3 = i3.map((t8) => t8 - i3[0] + 1);
            const l4 = a2.getBufferTimeDefault(), o3 = N2(l4, r6, i3);
            return o3 ? (e5.state = k2, e5.representations = r6, e5.utilities = i3, e5.bufferTimeDefault = l4, e5.Vp = o3.Vp, e5.gp = o3.gp, e5.currentRepresentation = null, T3(e5)) : e5.state = I2, e5;
          }(t6), b3[n4][e4] = r5), r5;
        }(t5);
        switch (r4.reason.state = l3.state, l3.state) {
          case I2:
            break;
          case k2:
            !function(t6, e4, a3) {
              const r5 = e4.getMediaType(), i3 = e4.getThroughputController().getSafeAverageThroughput(r5);
              if (isNaN(i3))
                return;
              const l4 = e4.getMediaInfo(), o3 = s2.getOptimalRepresentationForBitrate(l4, i3, true), u3 = n3.getCurrentBufferLevel(r5);
              t6.representation = o3, t6.reason.throughput = i3, a3.placeholderBuffer = Math.max(0, O2(a3, o3) - u3), a3.currentRepresentation = o3, !isNaN(a3.lastSegmentDurationS) && u3 >= a3.lastSegmentDurationS && (a3.state = A);
            }(r4, t5, l3);
            break;
          case A:
            !function(t6, e4, a3) {
              const r5 = e4.getMediaType(), i3 = e4.getThroughputController(), l4 = e4.getMediaInfo(), o3 = i3.getSafeAverageThroughput(r5), u3 = e4.getScheduleController();
              !function(t7, e5) {
                const n4 = Date.now();
                if (isNaN(t7.lastSegmentFinishTimeMs)) {
                  if (!isNaN(t7.lastCallTimeMs)) {
                    const e6 = 1e-3 * (n4 - t7.lastCallTimeMs);
                    t7.placeholderBuffer += Math.max(0, e6);
                  }
                } else {
                  const e6 = 1e-3 * (n4 - t7.lastSegmentFinishTimeMs);
                  t7.placeholderBuffer += Math.max(0, e6);
                }
                t7.lastCallTimeMs = n4, t7.lastSegmentStart = NaN, t7.lastSegmentRequestTimeMs = NaN, t7.lastSegmentFinishTimeMs = NaN, C2(t7, e5);
              }(a3, r5);
              const d4 = n3.getCurrentBufferLevel(r5);
              let c4 = function(t7, e5) {
                const n4 = t7.representations.length;
                let a4 = NaN, r6 = NaN;
                for (let i4 = 0; i4 < n4; ++i4) {
                  let n5 = (t7.Vp * (t7.utilities[i4] - 1 + t7.gp) - e5) / t7.representations[i4].bandwidth;
                  (isNaN(r6) || n5 >= r6) && (r6 = n5, a4 = i4);
                }
                return t7.representations[a4];
              }(a3, d4 + a3.placeholderBuffer);
              const f3 = s2.getOptimalRepresentationForBitrate(l4, o3, true);
              c4.absoluteIndex > a3.currentRepresentation.absoluteIndex && c4.absoluteIndex > f3.absoluteIndex && (c4 = f3.absoluteIndex > a3.currentRepresentation.absoluteIndex ? f3 : a3.currentRepresentation);
              let g3 = Math.max(0, d4 + a3.placeholderBuffer - D2(a3, c4));
              g3 <= a3.placeholderBuffer ? (a3.placeholderBuffer -= g3, g3 = 0) : (g3 -= a3.placeholderBuffer, a3.placeholderBuffer = 0, s2.isPlayingAtTopQuality(c4) ? g3 = 0 : u3.setTimeToLoadDelay(1e3 * g3)), t6.representation = c4, t6.reason.throughput = o3, t6.reason.bufferLevel = d4, t6.reason.placeholderBuffer = a3.placeholderBuffer, t6.reason.delay = g3, a3.currentRepresentation = c4;
            }(r4, t5, l3);
            break;
          default:
            !function(t6, e4, n4) {
              c3.debug("BOLA ABR rule invoked in bad state.");
              const a3 = e4.getMediaInfo(), r5 = e4.getMediaType(), i3 = e4.getThroughputController().getSafeAverageThroughput(r5);
              t6.representation = s2.getOptimalRepresentationForBitrate(a3, i3, true), t6.reason.state = n4.state, t6.reason.throughput = i3, n4.state = k2, T3(n4);
            }(r4, t5, l3);
        }
        return r4.priority = p3.get().streaming.abr.rules.bolaRule.priority, r4;
      } catch (t6) {
        return c3.error(t6), (0, i2.default)(e3).create();
      }
    }, handleNewMediaInfo: function(t5) {
      t5 && t5.streamInfo && t5.type && b3[t5.streamInfo.id] && b3[t5.streamInfo.id][t5.type] && delete b3[t5.streamInfo.id][t5.type];
    }, reset: function() {
      L2(), r3.off(h2.default.BUFFER_EMPTY, y3, d3), r3.off(h2.default.PLAYBACK_SEEKING, E3, d3), r3.off(h2.default.METRIC_ADDED, _3, d3), r3.off(h2.default.QUALITY_CHANGE_REQUESTED, S3, d3), r3.off(h2.default.FRAGMENT_LOADING_ABANDONED, z2, d3), r3.off(g2.default.MEDIA_FRAGMENT_LOADED, x2, d3), r3.off(g2.default.SETTING_UPDATED_MAX_BITRATE, M2, d3), r3.off(g2.default.SETTING_UPDATED_MIN_BITRATE, M2, d3), r3.off(g2.default.VIDEO_ELEMENT_RESIZED, P2, d3);
    } }, c3 = (0, o2.default)(e3).getInstance().getLogger(d3), p3 = (0, u2.default)(e3).getInstance(), L2(), r3.on(h2.default.BUFFER_EMPTY, y3, d3), r3.on(h2.default.PLAYBACK_SEEKING, E3, d3), r3.on(h2.default.METRIC_ADDED, _3, d3), r3.on(h2.default.QUALITY_CHANGE_REQUESTED, S3, d3), r3.on(h2.default.FRAGMENT_LOADING_ABANDONED, z2, d3), r3.on(g2.default.MEDIA_FRAGMENT_LOADED, x2, d3), r3.on(g2.default.SETTING_UPDATED_MAX_BITRATE, M2, d3), r3.on(g2.default.SETTING_UPDATED_MIN_BITRATE, M2, d3), r3.on(g2.default.VIDEO_ELEMENT_RESIZED, P2, d3), d3;
  }
  N.__dashjs_factory_name = "BolaRule";
  var C = r2.default.getClassFactory(N);
  const D = "L2A_STATE_ONE_BITRATE", x = "L2A_STATE_STARTUP", M = "L2A_STATE_STEADY", P = Math.pow(4, 0.99);
  function O(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics, a2 = (0, f2.default)(e3).getInstance(), r3 = (0, u2.default)(e3).getInstance();
    let s2, d3, c3, h3;
    function p3(t5) {
      t5.placeholderBuffer = 0, t5.mostAdvancedSegmentStart = NaN, t5.lastSegmentWasReplacement = false, t5.lastSegmentStart = NaN, t5.lastSegmentDurationS = NaN, t5.lastSegmentRequestTimeMs = NaN, t5.lastSegmentFinishTimeMs = NaN, t5.lastSegmentUrl = "";
    }
    function b3() {
      for (const t5 in d3)
        if (d3.hasOwnProperty(t5)) {
          const e4 = d3[t5];
          e4.state !== D && (e4.state = x, p3(e4));
        }
    }
    function y3(t5) {
      if (t5 && t5.chunk && t5.chunk.representation && t5.chunk.representation.mediaInfo) {
        const e4 = d3[t5.chunk.representation.mediaInfo.type], n4 = c3[t5.chunk.representation.mediaInfo.type];
        if (e4 && e4.state !== D) {
          const a3 = t5.chunk.start;
          isNaN(e4.mostAdvancedSegmentStart) || a3 > e4.mostAdvancedSegmentStart ? (e4.mostAdvancedSegmentStart = a3, e4.lastSegmentWasReplacement = false) : e4.lastSegmentWasReplacement = true, e4.lastSegmentStart = a3, e4.lastSegmentDurationS = t5.chunk.duration, e4.currentRepresentation = t5.chunk.representation, T3(e4, n4);
        }
      }
    }
    function E3(t5) {
      if (t5 && t5.metric === l2.HTTP_REQUEST && t5.value && t5.value.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE && t5.value.trace && t5.value.trace.length) {
        const e4 = d3[t5.mediaType], n4 = c3[t5.mediaType];
        e4 && e4.state !== D && (e4.lastSegmentRequestTimeMs = t5.value.trequest.getTime(), e4.lastSegmentFinishTimeMs = t5.value._tfinish.getTime(), T3(e4, n4));
      }
    }
    function T3(t5, e4) {
      isNaN(t5.lastSegmentStart) || isNaN(t5.lastSegmentRequestTimeMs) || (e4.segment_request_start_s = 1e-3 * t5.lastSegmentRequestTimeMs, e4.segment_download_finish_s = 1e-3 * t5.lastSegmentFinishTimeMs, t5.lastSegmentStart = NaN, t5.lastSegmentRequestTimeMs = NaN);
    }
    function _3(t5, e4) {
      if (t5.length !== e4.length)
        return -1;
      let n4 = 0;
      for (let a3 = 0; a3 < t5.length; a3++)
        n4 += t5[a3] * e4[a3];
      return n4;
    }
    function v3() {
      d3 = {}, c3 = {};
    }
    return s2 = { getSwitchRequest: function(t5) {
      try {
        const a3 = (0, i2.default)(e3).create();
        a3.rule = this.getClassName();
        const l3 = t5.getMediaType(), o3 = t5.getScheduleController();
        if (a3.reason = a3.reason || {}, l3 === m2.default.AUDIO)
          return a3;
        o3.setTimeToLoadDelay(0);
        const s3 = function(t6) {
          const e4 = t6.getMediaType();
          let n4 = d3[e4];
          return n4 || (n4 = function(t7) {
            const e5 = {}, n5 = t7.getMediaInfo();
            return e5.state = x, e5.currentRepresentation = null, function(t8) {
              t8 && t8.type && (c3[t8.type] = {}, c3[t8.type].w = [], c3[t8.type].prev_w = [], c3[t8.type].Q = 0, c3[t8.type].segment_request_start_s = 0, c3[t8.type].segment_download_finish_s = 0, c3[t8.type].B_target = 1.5);
            }(n5), p3(e5), e5;
          }(t6), d3[e4] = n4), n4;
        }(t5);
        if (!c3[l3])
          return a3;
        switch (a3.reason.state = s3.state, s3.state) {
          case D:
            break;
          case x:
            !function(t6, e4, a4) {
              const r4 = t6.getMediaInfo(), i3 = t6.getMediaType(), l4 = t6.getThroughputController().getSafeAverageThroughput(i3);
              if (isNaN(l4))
                return e4;
              const o4 = t6.getAbrController(), s4 = o4.getOptimalRepresentationForBitrate(r4, l4, true), u3 = n3.getCurrentBufferLevel(i3, true), d4 = c3[i3], f3 = o4.getPossibleVoRepresentationsFilteredBySettings(r4, true);
              if (e4.representation = s4, e4.reason.throughput = l4, a4.currentRepresentation = s4, !isNaN(a4.lastSegmentDurationS) && u3 >= d4.B_target) {
                a4.state = M, d4.Q = P;
                for (let t7 = 0; t7 < f3.length; ++t7)
                  f3[t7].id === a4.currentRepresentation.id ? d4.prev_w[t7] = 1 : d4.prev_w[t7] = 0;
              }
            }(t5, a3, s3);
            break;
          case M:
            !function(t6, e4, a4) {
              let r4 = [];
              const i3 = t6.getThroughputController(), l4 = t6.getMediaType();
              let o4 = i3.getAverageThroughput(l4, m2.default.THROUGHPUT_CALCULATION_MODES.ARITHMETIC_MEAN, 1), s4 = n3.getCurrentHttpRequest(l4), u3 = null;
              const d4 = c3[l4];
              if (o4 < 1 && (o4 = 1), s4.url === a4.lastSegmentUrl || s4.type === w2.HTTPRequest.INIT_SEGMENT_TYPE)
                u3 = a4.currentRepresentation;
              else {
                let e5 = a4.lastSegmentDurationS, n4 = 1;
                const i4 = t6.getAbrController(), l5 = t6.getMediaInfo(), c4 = i4.getPossibleVoRepresentationsFilteredBySettings(l5, true);
                let f3 = t6.getVideoModel().getPlaybackRate();
                const g3 = Math.max(Math.pow(4, 1), P * Math.sqrt(4));
                for (let t7 = 0; t7 < c4.length; ++t7) {
                  const a5 = c4[t7];
                  f3 * a5.bitrateInKbit > o4 && (n4 = -1), d4.w[t7] = d4.prev_w[t7] + n4 * (e5 / (2 * g3)) * ((d4.Q + P) * (f3 * a5.bitrateInKbit / o4));
                }
                d4.w = function(t7) {
                  const e6 = t7.length;
                  let n5 = false, a5 = [];
                  for (let n6 = 0; n6 < e6; ++n6)
                    a5[n6] = t7[n6];
                  let r5 = t7.sort(function(t8, e7) {
                    return e7 - t8;
                  }), i5 = 0, l6 = 0, o5 = [];
                  for (let t8 = 0; t8 < e6 - 1; ++t8)
                    if (i5 += r5[t8], l6 = (i5 - 1) / (t8 + 1), l6 >= r5[t8 + 1]) {
                      n5 = true;
                      break;
                    }
                  n5 || (l6 = (i5 + r5[e6 - 1] - 1) / e6);
                  for (let t8 = 0; t8 < e6; ++t8)
                    o5[t8] = Math.max(a5[t8] - l6, 0);
                  return o5;
                }(d4.w);
                for (let t7 = 0; t7 < c4.length; ++t7)
                  r4[t7] = d4.w[t7] - d4.prev_w[t7], d4.prev_w[t7] = d4.w[t7];
                const m3 = c4.map((t7) => t7.bandwidth);
                d4.Q = Math.max(0, d4.Q - e5 + e5 * f3 * ((_3(m3, d4.prev_w) + _3(m3, r4)) / o4));
                let h4 = [];
                for (let t7 = 0; t7 < m3.length; ++t7)
                  h4[t7] = Math.abs(m3[t7] - _3(d4.w, m3));
                const p4 = h4.indexOf(Math.min(...h4));
                u3 = i4.getRepresentationByAbsoluteIndex(p4, l5, true), u3.absoluteIndex > a4.currentRepresentation.absoluteIndex && m3[a4.currentRepresentation.absoluteIndex + 1] <= o4 && (u3 = i4.getRepresentationByAbsoluteIndex(a4.currentRepresentation.absoluteIndex + 1, l5, true)), u3.bitrateInKbit >= o4 && (d4.Q = 2 * Math.max(P, d4.Q)), a4.lastSegmentUrl = s4.url;
              }
              e4.representation = u3, a4.currentRepresentation = e4.representation;
            }(t5, a3, s3);
            break;
          default:
            !function(t6, e4, n4) {
              const a4 = t6.getAbrController(), r4 = t6.getMediaInfo(), i3 = t6.getMediaType(), l4 = t6.getThroughputController().getSafeAverageThroughput(i3);
              e4.representation = a4.getOptimalRepresentationForBitrate(r4, l4, true), e4.reason.throughput = l4, n4.state = x, p3(n4);
            }(t5, a3, s3);
        }
        return a3.priority = r3.get().streaming.abr.rules.l2ARule.priority, a3;
      } catch (t6) {
        return h3.error(t6), (0, i2.default)(e3).create();
      }
    }, reset: function() {
      v3(), a2.off(g2.default.PLAYBACK_SEEKING, b3, s2), a2.off(g2.default.MEDIA_FRAGMENT_LOADED, y3, s2), a2.off(g2.default.METRIC_ADDED, E3, s2);
    } }, h3 = (0, o2.default)(e3).getInstance().getLogger(s2), v3(), a2.on(g2.default.PLAYBACK_SEEKING, b3, s2), a2.on(g2.default.MEDIA_FRAGMENT_LOADED, y3, s2), a2.on(g2.default.METRIC_ADDED, E3, s2), s2;
  }
  O.__dashjs_factory_name = "L2ARule";
  var z = r2.default.getClassFactory(O);
  function L() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, s2, u3, d3;
    function c3() {
      a2 = null, r3 = 1, i3 = 100, l3 = 0, s2 = null, u3 = null, d3 = "dynamic_weight_selection";
    }
    function f3() {
      let t5 = 0;
      if (a2)
        for (let e4 = 0; e4 < a2.length; e4++) {
          let n4 = a2[e4];
          n4.state.throughput > t5 && (t5 = n4.state.throughput);
        }
      return t5;
    }
    function g3(t5, e4, n4) {
      let a3 = t5.map((t6, a4) => n4[a4] * Math.pow(t6 - e4[a4], 2)).reduce((t6, e5) => t6 + e5);
      return (a3 < 0 ? -1 : 1) * Math.sqrt(Math.abs(a3));
    }
    function m3(t5, e4) {
      return g3([t5.state.throughput, t5.state.latency, t5.state.rebuffer, t5.state.switch], [e4.state.throughput, e4.state.latency, e4.state.rebuffer, e4.state.switch], [1, 1, 1, 1]);
    }
    function h3(t5, e4) {
      for (let n4 = 0; n4 < a2.length; n4++) {
        let r4 = a2[n4], i4 = 0.1;
        const l4 = m3(r4, t5);
        p3(r4, e4, Math.exp(-1 * Math.pow(l4, 2) / (2 * Math.pow(i4, 2))));
      }
    }
    function p3(t5, e4, n4) {
      let a3 = t5.state, r4 = [0.01, 0.01, 0.01, 0.01];
      a3.throughput = a3.throughput + (e4[0] - a3.throughput) * r4[0] * n4, a3.latency = a3.latency + (e4[1] - a3.latency) * r4[1] * n4, a3.rebuffer = a3.rebuffer + (e4[2] - a3.rebuffer) * r4[2] * n4, a3.switch = a3.switch + (e4[3] - a3.switch) * r4[3] * n4;
    }
    return e3 = { getNextQuality: function(t5, e4, o3, c4, m4, p4, b3, y3) {
      let E3 = c4, T3 = o3;
      !function(t6, e5) {
        if (!a2) {
          a2 = [];
          const n4 = e5.getPossibleVoRepresentationsFilteredBySettings(t6, true), i4 = n4.map((t7) => t7.bandwidth);
          l3 = Math.min(...i4), r3 = function(t7) {
            const e6 = t7.map((t8) => Math.pow(t8, 2)).reduce((t8, e7) => t8 + e7);
            return Math.sqrt(e6);
          }(i4), n4.forEach((t7) => {
            let e6 = { representation: t7, state: { throughput: t7.bandwidth / r3, latency: 0, rebuffer: 0, switch: 0 } };
            a2.push(e6);
          }), u3 = function(t7) {
            let e6 = [], n5 = function(t8) {
              let e7 = [];
              for (let n6 = 0; n6 < t8; n6++) {
                let t9 = [Math.random() * f3(), Math.random(), Math.random(), Math.random()];
                e7.push(t9);
              }
              return e7;
            }(Math.pow(t7.length, 2));
            e6.push(n5[0]);
            let a3 = [1, 1, 1, 1];
            for (let r5 = 1; r5 < t7.length; r5++) {
              let t8 = null, r6 = null;
              for (let i6 = 0; i6 < n5.length; i6++) {
                let l5 = n5[i6], o4 = null;
                for (let t9 = 0; t9 < e6.length; t9++) {
                  let n6 = g3(l5, e6[t9], a3);
                  (null === o4 || n6 < o4) && (o4 = n6);
                }
                (null === r6 || o4 > r6) && (t8 = l5, r6 = o4);
              }
              e6.push(t8);
            }
            let r4 = null, i5 = null;
            for (let t8 = 0; t8 < e6.length; t8++) {
              let n6 = 0;
              for (let r5 = 0; r5 < e6.length; r5++)
                t8 !== r5 && (n6 += g3(e6[t8], e6[r5], a3));
              (null === r4 || n6 > r4) && (r4 = n6, i5 = t8);
            }
            let l4 = [];
            for (l4.push(e6[i5]), e6.splice(i5, 1); e6.length > 0; ) {
              let t8 = null, n6 = null;
              for (let r5 = 0; r5 < e6.length; r5++) {
                let i6 = g3(l4[0], e6[r5], a3);
                (null === t8 || i6 < t8) && (t8 = i6, n6 = r5);
              }
              l4.push(e6[n6]), e6.splice(n6, 1);
            }
            return l4;
          }(a2);
        }
      }(e4, t5);
      let _3 = o3 / r3;
      _3 > 1 && (_3 = f3()), c4 /= i3;
      let v3 = a2.find((t6) => t6.representation.id === b3.id), S3 = v3.representation.bandwidth * y3.getSegmentDuration() / T3, w3 = Math.max(0, S3 - m4);
      if (m4 - S3 < y3.getMinBuffer())
        return n3.debug(`Buffer is low for bitrate= ${v3.representation.bandwidth} downloadTime=${S3} currentBuffer=${m4} rebuffer=${w3}`), function(t6, e5) {
          let n4 = 0, r4 = t6;
          if (a2)
            for (let i4 = 0; i4 < a2.length; i4++) {
              let l4 = a2[i4];
              l4.representation.bandwidth < t6.representation.bandwidth && l4.representation.bandwidth > n4 && e5 > l4.representation.bandwidth && (n4 = l4.representation.bandwidth, r4 = l4);
            }
          return r4;
        }(v3, T3).representation;
      switch (d3) {
        case "manual_weight_selection":
          s2 = [0.4, 0.4, 0.4, 0.4];
          break;
        case "random_weight_selection":
          s2 = function(t6) {
            let e5 = [], n4 = Math.sqrt(2 / t6);
            for (let t7 = 0; t7 < 4; t7++)
              e5.push(Math.random() * n4);
            return s2 = e5, s2;
          }(a2.length);
          break;
        default:
          !function(t6, e5, n4, r4, i4, l4) {
            s2 || (s2 = u3[u3.length - 1]);
            let o4 = t6.findWeightVector(a2, e5, n4, r4, i4, l4);
            null !== o4 && -1 !== o4 && (s2 = o4);
          }(y3, E3, m4, w3, T3, p4);
      }
      let I3 = null, k3 = null, A2 = null;
      for (let t6 = 0; t6 < a2.length; t6++) {
        let e5 = a2[t6], r4 = e5.state, i4 = [r4.throughput, r4.latency, r4.rebuffer, r4.switch], u4 = s2.slice(), d4 = y3.getNextBufferWithBitrate(e5.representation.bandwidth, m4, T3), c5 = d4 < y3.getMinBuffer();
        c5 && n3.debug(`Buffer is low for bitrate=${e5.representation.bandwidth} downloadTime=${S3} currentBuffer=${m4} nextBuffer=${d4}`), (e5.representation.bandwidth > o3 - 1e4 || c5) && e5.representation.bandwidth !== l3 && (u4[0] = 100);
        let f4 = g3(i4, [_3, 0, 0, 0], u4);
        (null === I3 || f4 < I3) && (I3 = f4, k3 = e5.representation, A2 = e5);
      }
      let R2 = Math.abs(v3.representation.bandwidth - A2.representation.bandwidth) / r3;
      return h3(v3, [_3, c4, w3, R2]), h3(A2, [_3, 0, 0, R2]), k3;
    }, reset: function() {
      c3();
    } }, n3 = (0, o2.default)(t4).getInstance().getLogger(e3), c3(), e3;
  }
  L.__dashjs_factory_name = "LearningAbrController";
  var F = r2.default.getClassFactory(L), U = class {
    constructor() {
      this.type = null, this.lastBitrate = null, this.weights = {}, this.weights.bitrateReward = null, this.weights.bitrateSwitchPenalty = null, this.weights.rebufferPenalty = null, this.weights.latencyPenalty = null, this.weights.playbackSpeedPenalty = null, this.bitrateWSum = 0, this.bitrateSwitchWSum = 0, this.rebufferWSum = 0, this.latencyWSum = 0, this.playbackSpeedWSum = 0, this.totalQoe = 0;
    }
  };
  function j() {
    let t4, e3, n3, a2, r3;
    function i3() {
      e3 = null, n3 = null, a2 = null, r3 = null;
    }
    function l3(t5, e4, n4, a3) {
      let r4 = new U();
      return r4.type = t5, r4.weights.bitrateReward = e4 || 1, r4.weights.bitrateSwitchPenalty = 1, r4.weights.rebufferPenalty = n4 || 1e3, r4.weights.latencyPenalty = [], r4.weights.latencyPenalty.push({ threshold: 1.1, penalty: 0.05 * a3 }), r4.weights.latencyPenalty.push({ threshold: 1e8, penalty: 0.1 * n4 }), r4.weights.playbackSpeedPenalty = a3 || 200, r4;
    }
    function o3(t5, e4, n4, a3, r4) {
      r4.bitrateWSum += r4.weights.bitrateReward * t5, r4.lastBitrate && (r4.bitrateSwitchWSum += r4.weights.bitrateSwitchPenalty * Math.abs(t5 - r4.lastBitrate)), r4.lastBitrate = t5, r4.rebufferWSum += r4.weights.rebufferPenalty * e4;
      for (let t6 = 0; t6 < r4.weights.latencyPenalty.length; t6++) {
        let e5 = r4.weights.latencyPenalty[t6];
        if (n4 <= e5.threshold) {
          r4.latencyWSum += e5.penalty * n4;
          break;
        }
      }
      r4.playbackSpeedWSum += r4.weights.playbackSpeedPenalty * Math.abs(1 - a3), r4.totalQoe = r4.bitrateWSum - r4.bitrateSwitchWSum - r4.rebufferWSum - r4.latencyWSum - r4.playbackSpeedWSum;
    }
    return t4 = { setupPerSegmentQoe: function(t5, i4, o4) {
      e3 = l3("segment", t5, i4, o4), n3 = t5, a2 = i4, r3 = o4;
    }, logSegmentMetrics: function(t5, n4, a3, r4) {
      e3 && o3(t5, n4, a3, r4, e3);
    }, getPerSegmentQoe: function() {
      return e3;
    }, calculateSingleUseQoe: function(t5, e4, i4, s2) {
      let u3 = null;
      return n3 && a2 && r3 && (u3 = l3("segment", n3, a2, r3)), u3 ? (o3(t5, e4, i4, s2, u3), u3.totalQoe) : 0;
    }, reset: function() {
      i3();
    } }, i3(), t4;
  }
  j.__dashjs_factory_name = "LoLpQoeEvaluator";
  var q = r2.default.getClassFactory(j);
  function B(t4) {
    let e3, n3, r3, i3, l3 = t4.targetLatency, o3 = t4.bufferMin, s2 = t4.segmentDuration, u3 = t4.qoeEvaluator;
    function d3() {
      return s2;
    }
    function c3(t5, e4) {
      const n4 = d3();
      let a2;
      return a2 = e4 > n4 ? t5 - n4 : t5 + n4 - e4, a2;
    }
    return e3 = { getMinBuffer: function() {
      return o3;
    }, getSegmentDuration: d3, getNextBufferWithBitrate: function(t5, e4, n4) {
      return c3(e4, t5 * s2 / n4);
    }, getNextBuffer: c3, findWeightVector: function(t5, e4, n4, a2, d4, f3) {
      let g3 = null, m3 = null, h3 = null, p3 = Math.abs(e4 - i3);
      return t5.forEach((t6) => {
        r3.forEach((a3) => {
          a3[0];
          let r4, i4 = a3[1], b3 = a3[2], y3 = (a3[3], t6.representation.bandwidth * s2 / d4), E3 = c3(n4, y3);
          r4 = 0 === b3 ? 10 : 1 / b3;
          let T3 = r4 * Math.max(1e-5, y3 - E3);
          r4 = 0 === i4 ? 10 : 1 / i4;
          let _3 = r4 * t6.state.latency, v3 = u3.calculateSingleUseQoe(t6.representation.bandwidth, T3, _3, f3);
          (null === g3 || v3 > g3) && function(t7, e5, n5) {
            return !(t7 > l3 + n5) && e5 >= o3;
          }(e4, E3, p3) && (g3 = v3, m3 = a3, h3 = t6.representation.bandwidth);
        });
      }), null === m3 && null === h3 && (m3 = -1), i3 = e4, m3;
    } }, n3 = [0.2, 0.4, 0.6, 0.8, 1], r3 = function(t5) {
      let e4 = t5.map(function(t6) {
        return [t6];
      }), n4 = function(e5, a2, r4) {
        if (r4 === a2)
          return e5;
        let i4 = e5.length;
        for (let n5 = 0; n5 < i4; n5++) {
          let n6 = e5.shift();
          for (let a3 = 0; a3 < t5.length; a3++)
            e5.push(n6.concat(t5[a3]));
        }
        return n4(e5, a2, r4 + 1);
      };
      return n4(e4, 4, 1);
    }(n3), i3 = 0, e3;
  }
  B.__dashjs_factory_name = "LoLpWeightSelector";
  var G = r2.default.getClassFactory(B);
  function H(t4) {
    let e3, n3, a2, r3, s2, d3 = (t4 = t4 || {}).dashMetrics, c3 = this.context;
    return a2 = { getSwitchRequest: function(t5) {
      try {
        let a3 = (0, i2.default)(c3).create();
        a3.rule = this.getClassName();
        let o3 = t5.getMediaInfo().type, u3 = t5.getAbrController();
        const f3 = t5.getStreamInfo();
        let g3 = t5.getRepresentation();
        const h3 = t5.getMediaInfo(), p3 = d3.getCurrentBufferState(o3), b3 = t5.getScheduleController(), y3 = d3.getCurrentBufferLevel(o3, true), E3 = b3.getPlaybackController();
        let T3 = E3.getCurrentLiveLatency();
        if (o3 === m2.default.AUDIO)
          return a3;
        T3 || (T3 = 0);
        const _3 = E3.getPlaybackRate(), v3 = t5.getThroughputController().getSafeAverageThroughput(o3);
        if (e3.debug(`Throughput ${Math.round(v3)} kbps`), isNaN(v3) || !p3)
          return a3;
        if (u3.getAbandonmentStateFor(f3.id, o3) === l2.ABANDON_LOAD)
          return a3;
        let S3 = u3.getPossibleVoRepresentationsFilteredBySettings(h3, true).map((t6) => t6.bandwidth), w3 = t5.getRepresentation().fragmentDuration, I3 = Math.min(...S3) / 1e3, k3 = Math.max(...S3) / 1e3, A2 = g3.bandwidth / 1e3, R2 = d3.getCurrentHttpRequest(o3, true), N2 = (R2.tresponse.getTime() - R2.trequest.getTime()) / 1e3, C2 = N2 > w3 ? N2 - w3 : 0;
        s2.setupPerSegmentQoe(w3, k3, I3), s2.logSegmentMetrics(A2, C2, T3, _3);
        let D2 = G(c3).create({ targetLatency: 1.5, bufferMin: 0.3, segmentDuration: w3, qoeEvaluator: s2 });
        return a3.representation = r3.getNextQuality(u3, h3, 1e3 * v3, T3, y3, _3, g3, D2), a3.reason = { throughput: v3, latency: T3 }, a3.priority = n3.get().streaming.abr.rules.loLPRule.priority, b3.setTimeToLoadDelay(0), a3;
      } catch (t6) {
        throw t6;
      }
    }, reset: function() {
      r3.reset(), s2.reset();
    } }, e3 = (0, o2.default)(c3).getInstance().getLogger(a2), r3 = F(c3).create(), s2 = q(c3).create(), n3 = (0, u2.default)(c3).getInstance(), a2;
  }
  H.__dashjs_factory_name = "LoLPRule";
  var Y = r2.default.getClassFactory(H);
  function V(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.mediaPlayerModel, a2 = t4.customParametersModel, r3 = t4.dashMetrics, l3 = t4.settings, o3 = (0, f2.default)(e3).getInstance();
    let s2, u3, d3, h3;
    function p3() {
      Object.values(m2.default.QUALITY_SWITCH_RULES).forEach((t5) => {
        u3 = y3(t5, u3);
      }), Object.values(m2.default.ABANDON_FRAGMENT_RULES).forEach((t5) => {
        d3 = y3(t5, d3);
      }), a2.getAbrCustomRules().forEach(function(t5) {
        t5.type === m2.default.RULES_TYPES.QUALITY_SWITCH_RULES && u3.push(t5.rule(e3).create()), t5.type === m2.default.RULES_TYPES.ABANDON_FRAGMENT_RULES && d3.push(t5.rule(e3).create());
      }), 0 === u3.length && (u3.push(C(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: l3 })), u3.push(c2(e3).create({ dashMetrics: r3 })));
    }
    function y3(t5, a3) {
      const i3 = t5.charAt(0).toLowerCase() + t5.slice(1);
      return l3.get().streaming.abr.rules[i3].active && !function(t6, e4) {
        return t6.filter((t7) => t7.getClassName() === e4).length > 0;
      }(a3, t5) ? (a3.push(function(t6) {
        switch (t6) {
          case m2.default.QUALITY_SWITCH_RULES.BOLA_RULE:
            return C(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: l3 });
          case m2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE:
            return c2(e3).create({ dashMetrics: r3 });
          case m2.default.QUALITY_SWITCH_RULES.INSUFFICIENT_BUFFER_RULE:
            return b2(e3).create({ dashMetrics: r3, settings: l3 });
          case m2.default.QUALITY_SWITCH_RULES.SWITCH_HISTORY_RULE:
            return S2(e3).create();
          case m2.default.QUALITY_SWITCH_RULES.DROPPED_FRAMES_RULE:
            return _2(e3).create();
          case m2.default.QUALITY_SWITCH_RULES.LEARN_TO_ADAPT_RULE:
            return z(e3).create({ dashMetrics: r3, settings: l3 });
          case m2.default.QUALITY_SWITCH_RULES.LOL_PLUS_RULE:
            return Y(e3).create({ dashMetrics: r3 });
          case m2.default.ABANDON_FRAGMENT_RULES.ABANDON_REQUEST_RULE:
            return E2(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: l3 });
        }
      }(t5)), a3) : l3.get().streaming.abr.rules[i3].active ? a3 : function(t6, e4) {
        return t6.filter((t7) => t7.getClassName() !== e4);
      }(a3, t5);
    }
    function T3(t5) {
      return t5.filter((t6) => t6.representation !== i2.default.NO_CHANGE);
    }
    function v3(t5) {
      const e4 = {};
      let n4, a3, r4, l4 = null;
      if (0 !== t5.length) {
        for (e4[i2.default.PRIORITY.STRONG] = null, e4[i2.default.PRIORITY.WEAK] = null, e4[i2.default.PRIORITY.DEFAULT] = null, n4 = 0, a3 = t5.length; n4 < a3; n4 += 1)
          r4 = t5[n4], r4.representation !== i2.default.NO_CHANGE && (null === e4[r4.priority] || e4[r4.priority].representation !== i2.default.NO_CHANGE && r4.representation.bitrateInKbit < e4[r4.priority].representation.bitrateInKbit) && (e4[r4.priority] = r4);
        return e4[i2.default.PRIORITY.WEAK] && e4[i2.default.PRIORITY.WEAK].representation !== i2.default.NO_CHANGE && (l4 = e4[i2.default.PRIORITY.WEAK]), e4[i2.default.PRIORITY.DEFAULT] && e4[i2.default.PRIORITY.DEFAULT].representation !== i2.default.NO_CHANGE && (l4 = e4[i2.default.PRIORITY.DEFAULT]), e4[i2.default.PRIORITY.STRONG] && e4[i2.default.PRIORITY.STRONG].representation !== i2.default.NO_CHANGE && (l4 = e4[i2.default.PRIORITY.STRONG]), l4;
      }
    }
    function w3() {
      p3();
    }
    return s2 = { clearDataForStream: function(t5) {
      [u3, d3].forEach((e4) => {
        e4 && e4.length && e4.forEach((e5) => e5.clearDataForStream && "function" == typeof e5.clearDataForStream && e5.clearDataForStream(t5));
      });
    }, getAbandonFragmentRules: function() {
      return d3;
    }, getBestPossibleSwitchRequest: function(t5) {
      return t5 && v3(T3(u3.filter((e4) => {
        const n4 = e4.getClassName();
        if (n4 !== m2.default.QUALITY_SWITCH_RULES.BOLA_RULE && n4 !== m2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE)
          return true;
        const a3 = t5.getMediaType();
        return h3[a3] && n4 === m2.default.QUALITY_SWITCH_RULES.BOLA_RULE || !h3[a3] && n4 === m2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE;
      }).map((e4) => e4.getSwitchRequest(t5)))) || (0, i2.default)(e3).create();
    }, getBolaState: function(t5) {
      return h3[t5];
    }, getMinSwitchRequest: v3, getQualitySwitchRules: function() {
      return u3;
    }, handleNewMediaInfo: function(t5) {
      u3.forEach((e4) => e4.handleNewMediaInfo && e4.handleNewMediaInfo(t5)), d3.forEach((e4) => e4.handleNewMediaInfo && e4.handleNewMediaInfo(t5));
    }, initialize: function() {
      u3 = [], d3 = [], h3 = {}, p3(), o3.on(g2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, w3, s2);
    }, reset: function() {
      [u3, d3].forEach((t5) => {
        t5 && t5.length && t5.forEach((t6) => t6.reset && t6.reset());
      }), u3 = [], d3 = [], h3 = {}, o3.off(g2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, w3, s2);
    }, setBolaState: function(t5, e4) {
      h3[t5] = e4;
    }, shouldAbandonFragment: function(t5) {
      if (!t5)
        return (0, i2.default)(e3).create();
      const n4 = v3(T3(d3.map((e4) => e4.shouldAbandon(t5))));
      return n4 && n4.reason && (n4.reason.forceAbandon = true), n4 || (0, i2.default)(e3).create();
    } }, s2;
  }
  V.__dashjs_factory_name = "ABRRulesCollection";
  const K = r2.default.getClassFactory(V);
  r2.default.updateSingletonFactory(V.__dashjs_factory_name, K);
  var W = K;
  class $ {
    constructor(t4) {
      this.action = $.ACTION_DOWNLOAD, this.availabilityEndTime = null, this.availabilityStartTime = null, this.bandwidth = NaN, this.bytesLoaded = NaN, this.bytesTotal = NaN, this.delayLoadingTime = NaN, this.duration = NaN, this.endDate = null, this.firstByteDate = null, this.index = NaN, this.isPartialSegmentRequest = false, this.mediaStartTime = NaN, this.mediaType = null, this.presentationStartTime = NaN, this.range = null, this.representation = null, this.responseType = "arraybuffer", this.retryAttempts = 0, this.serviceLocation = null, this.startDate = null, this.startTime = NaN, this.timescale = NaN, this.type = null, this.url = t4 || null, this.wallStartTime = null;
    }
    isInitializationRequest() {
      return this.type && this.type === w2.HTTPRequest.INIT_SEGMENT_TYPE;
    }
    setInfo(t4) {
      this.type = t4 && t4.init ? w2.HTTPRequest.INIT_SEGMENT_TYPE : w2.HTTPRequest.MEDIA_SEGMENT_TYPE, this.url = t4 && t4.url ? t4.url : null, this.range = t4 && t4.range ? t4.range.start + "-" + t4.range.end : null, this.mediaType = t4 && t4.mediaType ? t4.mediaType : null, this.representation = t4 && t4.representation ? t4.representation : null;
    }
  }
  $.ACTION_DOWNLOAD = "download", $.ACTION_COMPLETE = "complete";
  var Q = $;
  const X = "loading", Z = "executed", J = "failed";
  function tt(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.events, a2 = t4.dashMetrics, r3 = t4.fragmentLoader, i3 = t4.debug, l3 = t4.streamInfo, o3 = t4.type;
    let s2, u3, d3, c3;
    function f3(t5) {
      return !!t5 && function(e4) {
        let n4 = false;
        return e4.some((e5) => {
          if (a3 = t5, r4 = e5, !isNaN(a3.index) && a3.startTime === r4.startTime && a3.adaptationIndex === r4.adaptationIndex && a3.type === r4.type || function(t6, e6) {
            return t6.representation.id === e6.representation.id;
          }(t5, e5) || function(t6, e6) {
            return t6.action === Q.ACTION_COMPLETE && t6.action === e6.action;
          }(t5, e5))
            return n4 = true, n4;
          var a3, r4;
        }), n4;
      }(d3);
    }
    function g3(t5) {
      return isNaN(t5.duration) ? 0.25 : Math.min(t5.duration / 8, 0.5);
    }
    function m3(t5) {
      d3 = d3.filter((e4) => {
        const n4 = g3(e4);
        return isNaN(e4.startTime) || void 0 !== t5 && e4.startTime >= t5 - n4;
      });
    }
    function h3(t5, e4) {
      e4 <= t5 + 0.5 || (d3 = d3.filter((n4) => {
        const a3 = g3(n4);
        return isNaN(n4.startTime) || n4.startTime >= e4 - a3 || isNaN(n4.duration) || n4.startTime + n4.duration <= t5 + a3;
      }));
    }
    function p3(t5, e4, n4) {
      for (let a3 = t5.length - 1; a3 >= 0; a3--) {
        const r4 = t5[a3], i4 = r4.startTime, l4 = i4 + r4.duration;
        if (n4 = isNaN(n4) ? g3(r4) : n4, !isNaN(i4) && !isNaN(l4) && e4 + n4 >= i4 && e4 - n4 < l4 || isNaN(i4) && isNaN(e4))
          return r4;
      }
      return null;
    }
    function b3(t5, e4) {
      a2.addSchedulingInfo(t5, e4), a2.addRequestsQueue(t5.mediaType, c3, d3);
    }
    function y3(t5) {
      t5.sender === r3 && (c3.splice(c3.indexOf(t5.request), 1), t5.response && !t5.error && d3.push(t5.request), b3(t5.request, t5.error ? J : Z), e3.trigger(n3.FRAGMENT_LOADING_COMPLETED, { request: t5.request, response: t5.response, error: t5.error, sender: this }, { streamId: l3.id, mediaType: o3 }));
    }
    function E3(t5) {
      t5.sender === r3 && e3.trigger(n3.FRAGMENT_LOADING_PROGRESS, { request: t5.request, response: t5.response, error: t5.error, sender: this }, { streamId: l3.id, mediaType: o3 });
    }
    function T3(t5) {
      t5.sender === r3 && e3.trigger(n3.FRAGMENT_LOADING_ABANDONED, { request: t5.request }, { streamId: l3.id, mediaType: o3 });
    }
    function _3() {
      d3 = [], c3 = [], r3 && r3.resetInitialSettings();
    }
    return s2 = { abortRequests: function() {
      u3.debug("abort requests"), r3.abort(), c3 = [];
    }, executeRequest: function(t5) {
      t5.action === Q.ACTION_DOWNLOAD ? (b3(t5, X), c3.push(t5), function(t6) {
        e3.trigger(n3.FRAGMENT_LOADING_STARTED, { request: t6 }, { streamId: l3.id, mediaType: o3 }), r3.load(t6);
      }(t5)) : u3.warn("Unknown request action.");
    }, getRequests: function(t5) {
      const e4 = t5 ? t5.state instanceof Array ? t5.state : [t5.state] : [];
      let n4 = [];
      return e4.forEach((e5) => {
        const a3 = function(t6) {
          let e6;
          switch (t6) {
            case X:
              e6 = c3;
              break;
            case Z:
              e6 = d3;
              break;
            default:
              e6 = [];
          }
          return e6;
        }(e5);
        n4 = n4.concat(function(t6, e6) {
          return e6.hasOwnProperty("time") ? [p3(t6, e6.time, e6.threshold)] : t6.filter((t7) => {
            for (const n5 in e6)
              if ("state" !== n5 && e6.hasOwnProperty(n5) && t7[n5] != e6[n5])
                return false;
            return true;
          });
        }(a3, t5));
      }), n4;
    }, getStreamId: function() {
      return l3.id;
    }, getType: function() {
      return o3;
    }, isFragmentLoaded: f3, isFragmentLoadedOrPending: function(t5) {
      let e4, n4 = false, a3 = 0;
      if (n4 = f3(t5), !n4)
        for (a3 = 0; a3 < c3.length; a3++)
          e4 = c3[a3], t5.url === e4.url && t5.startTime === e4.startTime && (n4 = true);
      return n4;
    }, removeExecutedRequestsAfterTime: function(t5) {
      d3 = d3.filter((e4) => isNaN(e4.startTime) || void 0 !== t5 && e4.startTime < t5);
    }, removeExecutedRequestsBeforeTime: m3, reset: function() {
      e3.off(n3.LOADING_COMPLETED, y3, this), e3.off(n3.LOADING_DATA_PROGRESS, E3, this), e3.off(n3.LOADING_ABANDONED, T3, this), r3 && r3.reset(), _3();
    }, resetInitialSettings: _3, syncExecutedRequestsWithBufferedRange: function(t5, e4) {
      if (!t5 || 0 === t5.length)
        return void m3();
      let n4 = 0;
      for (let e5 = 0, a3 = t5.length; e5 < a3; e5++)
        h3(n4, t5.start(e5)), n4 = t5.end(e5);
      e4 > 0 && h3(n4, e4);
    } }, u3 = i3.getLogger(s2), _3(), e3.on(n3.LOADING_COMPLETED, y3, s2), e3.on(n3.LOADING_DATA_PROGRESS, E3, s2), e3.on(n3.LOADING_ABANDONED, T3, s2), s2;
  }
  tt.__dashjs_factory_name = "FragmentModel";
  const et = r2.default.getClassFactory(tt);
  et.FRAGMENT_MODEL_LOADING = X, et.FRAGMENT_MODEL_EXECUTED = Z, et.FRAGMENT_MODEL_CANCELED = "canceled", et.FRAGMENT_MODEL_FAILED = J, r2.default.updateClassFactory(tt.__dashjs_factory_name, et);
  var nt = et;
  function at(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).abrController, a2 = t4.throughputController, r3 = t4.switchRequestHistory, i3 = t4.droppedFramesHistory, l3 = t4.currentRequest, o3 = t4.streamProcessor ? t4.streamProcessor.getScheduleController() : null, s2 = t4.streamProcessor ? t4.streamProcessor.getRepresentation() : null, u3 = t4.videoModel ? t4.videoModel : null;
    function d3() {
      return s2 ? s2.mediaInfo : null;
    }
    return e3 = { getAbrController: function() {
      return n3;
    }, getCurrentRequest: function() {
      return l3;
    }, getDroppedFramesHistory: function() {
      return i3;
    }, getMediaInfo: d3, getMediaType: function() {
      const t5 = d3();
      return t5 ? t5.type : null;
    }, getRepresentation: function() {
      return s2;
    }, getScheduleController: function() {
      return o3;
    }, getStreamInfo: function() {
      const t5 = d3();
      return t5 ? t5.streamInfo : null;
    }, getSwitchRequestHistory: function() {
      return r3;
    }, getThroughputController: function() {
      return a2;
    }, getVideoModel: function() {
      return u3;
    } }, e3;
  }
  at.__dashjs_factory_name = "RulesContext";
  var rt = r2.default.getClassFactory(at);
  function it() {
    let t4 = {}, e3 = {};
    const n3 = this.context, a2 = (0, u2.default)(n3).getInstance();
    return { clearForStream: function(n4) {
      delete t4[n4], delete e3[n4];
    }, getSwitchRequests: function(e4, n4) {
      return null != e4 && null != n4 && t4[e4] && t4[e4][n4] ? t4[e4][n4] : {};
    }, push: function(n4) {
      const r3 = n4.currentRepresentation, i3 = n4.newRepresentation;
      if (r3.mediaInfo.streamInfo.id !== i3.mediaInfo.streamInfo.id || i3.mediaInfo.id !== r3.mediaInfo.id)
        return;
      const l3 = r3.mediaInfo.streamInfo.id;
      t4[l3] || function(n5) {
        t4[n5] = {}, e3[n5] = {};
      }(l3);
      const o3 = r3.mediaInfo.type;
      t4[l3][o3] || function(n5, a3) {
        t4[n5][a3] = {}, e3[n5][a3] = [];
      }(l3, o3);
      const s2 = n4.currentRepresentation.id;
      t4[l3][o3][s2] || function(e4, n5, a3) {
        t4[e4][n5][a3] = { noDrops: 0, drops: 0, dropSize: 0 };
      }(l3, o3, s2);
      let u3 = n4.newRepresentation.absoluteIndex - n4.currentRepresentation.absoluteIndex, d3 = u3 < 0 ? 1 : 0, c3 = d3 ? -u3 : 0, f3 = d3 ? 0 : 1;
      t4[l3][o3][n4.currentRepresentation.id].drops += d3, t4[l3][o3][n4.currentRepresentation.id].dropSize += c3, t4[l3][o3][n4.currentRepresentation.id].noDrops += f3, e3[l3][o3].push({ id: n4.currentRepresentation.id, noDrop: f3, drop: d3, dropSize: c3 });
      const g3 = function(t5, n5) {
        return e3[t5][n5].length > a2.get().streaming.abr.rules.switchHistoryRule.parameters.sampleSize ? e3[t5][n5].shift() : null;
      }(l3, o3);
      g3 && function(e4, n5, a3) {
        t4[e4][n5][a3.id].drops -= a3.drop, t4[e4][n5][a3.id].dropSize -= a3.dropSize, t4[e4][n5][a3.id].noDrops -= a3.noDrop;
      }(l3, o3, g3);
    }, reset: function() {
      t4 = {}, e3 = {};
    } };
  }
  it.__dashjs_factory_name = "SwitchRequestHistory";
  var lt = r2.default.getClassFactory(it);
  function ot() {
    let t4 = {}, e3 = {}, n3 = {};
    return { clearForStream: function(a2) {
      delete t4[a2], delete e3[a2], delete n3[a2];
    }, getFrameHistory: function(e4) {
      return t4[e4];
    }, push: function(a2, r3, i3) {
      if (!r3)
        return;
      t4[a2] || function(a3) {
        t4[a3] = [], e3[a3] = 0, n3[a3] = 0;
      }(a2);
      let l3 = i3 && i3.droppedVideoFrames ? i3.droppedVideoFrames : 0, o3 = i3 && i3.totalVideoFrames ? i3.totalVideoFrames : 0, s2 = l3 - e3[a2];
      e3[a2] = l3;
      let u3 = o3 - n3[a2];
      n3[a2] = o3;
      const d3 = t4[a2];
      d3[r3] ? (d3[r3].droppedVideoFrames += s2, d3[r3].totalVideoFrames += u3) : d3[r3] = { droppedVideoFrames: s2, totalVideoFrames: u3 };
    }, reset: function() {
      t4 = {}, e3 = {}, n3 = {};
    } };
  }
  ot.__dashjs_factory_name = "DroppedFramesHistory";
  var st = r2.default.getClassFactory(ot);
  function ut() {
    const t4 = this.context, e3 = (0, o2.default)(t4).getInstance(), n3 = (0, f2.default)(t4).getInstance();
    let a2, r3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, w3, I3, k3, A2, R2, N2, C2;
    function D2() {
      a2 = {}, A2 = {}, w3 = /* @__PURE__ */ new Map(), T3 && T3.reset(), R2 && R2.reset(), p3 = void 0, T3 = void 0, R2 = void 0, clearTimeout(r3), r3 = null;
    }
    function x2(t5, e4 = true) {
      let n4 = M2(t5, e4);
      return n4 = function(t6) {
        try {
          return function(t7) {
            try {
              if (!I3.get().streaming.cmsd.enabled || !I3.get().streaming.cmsd.abr.applyMb)
                return t7;
              const e5 = t7.filter((t8) => {
                const e6 = t8.mediaInfo.type;
                let n5 = c3.getMaxBitrate(e6);
                if (e6 !== m2.default.VIDEO || n5 < 0)
                  return true;
                const a3 = t8.mediaInfo.streamInfo.id;
                return n5 -= A2[a3][m2.default.AUDIO].getRepresentation().bitrateInKbit || 0, t8.bitrateInKbit <= n5;
              });
              return e5.length > 0 ? e5 : t7;
            } catch (e5) {
              return v3.error(e5), t7;
            }
          }(t6 = function(t7) {
            try {
              if (!I3.get().streaming.abr.limitBitrateByPortal)
                return t7;
              const { elementWidth: e5 } = C2.getVideoElementSize(), n5 = t7.filter((t8) => t8.mediaInfo.type !== m2.default.VIDEO || t8.width <= e5);
              return n5.length > 0 ? n5 : t7;
            } catch (e5) {
              return v3.error(e5), t7;
            }
          }(t6 = function(t7) {
            try {
              const e5 = t7.filter((t8) => {
                const e6 = t8.mediaInfo.type, n5 = t8.bitrateInKbit, a3 = S3.getAbrBitrateParameter("maxBitrate", e6), r4 = S3.getAbrBitrateParameter("minBitrate", e6);
                return !(a3 > -1 && n5 > a3 || r4 > -1 && n5 < r4);
              });
              return e5.length > 0 ? e5 : t7;
            } catch (e5) {
              return v3.error(e5), t7;
            }
          }(t6)));
        } catch (e5) {
          return v3.error(e5), t6;
        }
      }(n4), n4;
    }
    function M2(t5, e4) {
      let n4 = [];
      if (!t5)
        return n4;
      const a3 = function(t6) {
        try {
          const e5 = [];
          if (t6 && e5.push(t6), !I3.get().streaming.abr.enableSupplementalPropertyAdaptationSetSwitching || !t6.adaptationSetSwitchingCompatibleIds || 0 === t6.adaptationSetSwitchingCompatibleIds.length)
            return e5;
          const n5 = A2[t6.streamInfo.id][t6.type].getAllMediaInfos().filter((e6) => t6.adaptationSetSwitchingCompatibleIds.includes(e6.id));
          return e5.concat(n5);
        } catch (e5) {
          return [t6];
        }
      }(t5);
      return a3.forEach((t6) => {
        let e5 = u3.getVoRepresentations(t6);
        e5 && e5.length > 0 && (n4 = n4.concat(e5));
      }), n4 = function(t6) {
        return t6.forEach((e5) => {
          if (e5.dependentRepresentation && null === e5.dependentRepresentation.mediaInfo) {
            let n5 = e5.dependentRepresentation.id, a4 = t6.find((t7) => t7.id === n5);
            a4 && (e5.dependentRepresentation = a4);
          }
        }), t6;
      }(n4), n4 = function(t6) {
        return t6 = function(t7) {
          let e5 = null;
          return t7.filter((t8) => (e5 || (e5 = t8.mediaInfo), !isNaN(t8.qualityRanking) && u3.areMediaInfosEqual(e5, t8.mediaInfo))).length === t7.length;
        }(t6) ? function(t7) {
          return t7.sort((t8, e5) => e5.qualityRanking - t8.qualityRanking), t7;
        }(t6) : function(t7) {
          return t7.sort((t8, e5) => u3.areMediaInfosEqual(t8.mediaInfo, e5.mediaInfo) ? isNaN(t8.pixelsPerSecond) || isNaN(e5.pixelsPerSecond) || t8.pixelsPerSecond === e5.pixelsPerSecond ? t8.bandwidth - e5.bandwidth : t8.pixelsPerSecond - e5.pixelsPerSecond : isNaN(t8.pixelsPerSecond) || isNaN(e5.pixelsPerSecond) || t8.pixelsPerSecond === e5.pixelsPerSecond ? isNaN(t8.bitsPerPixel) || isNaN(e5.bitsPerPixel) ? t8.bandwidth - e5.bandwidth : e5.bitsPerPixel - t8.bitsPerPixel : t8.pixelsPerSecond - e5.pixelsPerSecond), t7;
        }(t6);
      }(n4), n4.forEach((t6, e5) => {
        t6.absoluteIndex = e5;
      }), n4 = n4.filter((n5) => {
        const a4 = !!e4 || u3.areMediaInfosEqual(n5.mediaInfo, t5), r4 = !n5 || !n5.mediaInfo || d3.areKeyIdsUsable(n5.mediaInfo);
        return a4 && r4;
      }), n4;
    }
    function P2(t5) {
      const e4 = t5.request.mediaType, n4 = t5.streamId;
      if (!(e4 && n4 && A2[n4] && I3.get().streaming.abr.autoSwitchBitrate[e4]))
        return;
      const o3 = A2[n4][e4];
      if (!o3)
        return;
      var u4;
      if (!(!((u4 = o3.getLastSegment()) && u4.isPartialSegment && !isNaN(u4.totalNumberOfPartialSegments) && !isNaN(u4.replacementSubNumber)) || 0 === u4.replacementSubNumber))
        return;
      const d4 = z2(o3, t5.request), c4 = s2.shouldAbandonFragment(d4);
      c4 && c4.representation !== i2.default.NO_CHANGE && function(t6, e5, n5, i3, o4) {
        if (i3.getFragmentModel().getRequests({ state: nt.FRAGMENT_MODEL_LOADING, index: t6.request.index })[0]) {
          const t7 = function(t8, e6) {
            return a2[t8] && a2[t8][e6] ? a2[t8][e6] : null;
          }(e5, n5);
          t7 && (t7.state = l2.ABANDON_LOAD), R2.reset(), B2(n5, k3.getActiveStreamInfo(), o4.representation, o4.reason), clearTimeout(r3), r3 = setTimeout(() => {
            t7 && (a2[e5][n5].state = l2.ALLOW_LOAD), r3 = null;
          }, I3.get().streaming.abandonLoadTimeout);
        }
      }(t5, n4, e4, o3, c4);
    }
    function O2() {
      I3.get().streaming.abr.limitBitrateByPortal && Object.keys(A2).forEach((t5) => {
        Object.keys(A2[t5]).forEach((e4) => {
          U2(e4, t5);
        });
      });
    }
    function z2(e4, n4) {
      return rt(t4).create({ abrController: _3, adapter: u3, currentRequest: n4, droppedFramesHistory: T3, streamProcessor: e4, switchRequestHistory: R2, throughputController: N2, videoModel: C2 });
    }
    function L2(t5) {
      t5.mediaType === m2.default.VIDEO && (q2(t5.streamId), p3 = t5.newRepresentation.id);
    }
    function F2(t5) {
      !Y2() || t5.metric !== l2.BUFFER_LEVEL || t5.mediaType !== m2.default.AUDIO && t5.mediaType !== m2.default.VIDEO || function(t6, e4) {
        try {
          const n4 = S3.getBufferTimeDefault(), a3 = n4, r4 = 0.5 * n4, i3 = s2.getBolaState(t6), l3 = e4 >= (i3 ? r4 : a3);
          s2.setBolaState(t6, l3), l3 !== i3 && (l3 ? v3.info("[" + t6 + "] switching from throughput to buffer occupancy ABR rule (buffer: " + e4.toFixed(3) + ").") : v3.info("[" + t6 + "] switching from buffer occupancy to throughput ABR rule (buffer: " + e4.toFixed(3) + ")."));
        } catch (t7) {
          v3.error(t7);
        }
      }(t5.mediaType, 1e-3 * t5.value.level);
    }
    function U2(t5, e4) {
      var _a2;
      try {
        if (!(t5 && A2 && A2[e4] && A2[e4][t5]))
          return false;
        q2(e4);
        const n4 = A2[e4][t5], r4 = n4.getLastSegment(), i3 = (_a2 = n4.getRepresentationController()) == null ? void 0 : _a2.getCurrentCompositeRepresentation(), o3 = j2(r4, i3);
        if (!I3.get().streaming.abr.autoSwitchBitrate[t5] || !o3)
          return false;
        const u4 = z2(n4), d4 = s2.getBestPossibleSwitchRequest(u4);
        if (!d4 || !d4.representation)
          return false;
        let c4 = d4.representation;
        return function(t6, e5) {
          R2.push({ currentRepresentation: t6, newRepresentation: e5 });
        }(i3, c4), c4.id !== i3.id && (a2[e4][t5].state === l2.ALLOW_LOAD || c4.absoluteIndex < i3.absoluteIndex) && (H2(t5, i3, c4, d4.reason), true);
      } catch (t6) {
        return v3.error(t6), false;
      }
    }
    function j2(t5, e4) {
      return !(t5 && t5.isPartialSegment && !isNaN(t5.totalNumberOfPartialSegments) && !isNaN(t5.replacementSubNumber)) || t5.replacementSubNumber === t5.totalNumberOfPartialSegments - 1 || function(t6, e5) {
        if (!e5 || !e5.segmentSequenceProperties || e5.segmentSequenceProperties.length <= 0)
          return false;
        if (e5 && e5.mediaInfo && e5.mediaInfo.adaptationSetSwitchingCompatibleIds && e5.mediaInfo.adaptationSetSwitchingCompatibleIds.length > 0)
          return false;
        const n4 = e5.segmentSequenceProperties.filter((t7) => !isNaN(t7.sapType) && t7.sapType <= 1);
        if (0 === n4.length)
          return false;
        let a3 = (t6.replacementSubNumber + 1) % t6.totalNumberOfPartialSegments;
        return n4.some((t7) => a3 % t7.cadence == 0);
      }(t5, e4);
    }
    function q2(t5) {
      if (T3) {
        const e4 = C2.getPlaybackQuality();
        e4 && T3.push(t5, p3, e4);
      }
    }
    function B2(t5, e4, n4, a3 = {}) {
      var _a2;
      if (!(e4 && e4.id && t5 && A2 && A2[e4.id] && A2[e4.id][t5] && n4))
        return false;
      const r4 = A2[e4.id][t5], i3 = (_a2 = r4.getRepresentationController()) == null ? void 0 : _a2.getCurrentCompositeRepresentation();
      return (!i3 || n4.id !== i3.id) && H2(t5, i3, n4, a3);
    }
    function G2(t5, e4) {
      return `${t5}-${e4}`;
    }
    function H2(t5, e4, a3, r4) {
      const i3 = a3.mediaInfo.streamInfo.id;
      if (!t5 || !A2[i3] || !A2[i3][t5])
        return false;
      const l3 = A2[i3][t5].getStreamInfo(), o3 = y3.getCurrentBufferLevel(t5), s3 = null !== e4 && !u3.areMediaInfosEqual(e4.mediaInfo, a3.mediaInfo), d4 = e4 ? e4.bitrateInKbit : 0;
      return v3.info(`[AbrController]: Switching quality in period ${i3} for media type ${t5}. Switch from bitrate ${d4} to bitrate ${a3.bitrateInKbit}. Current buffer level: ${o3}. Reason:` + (r4 ? JSON.stringify(r4) : "/")), n3.trigger(h2.default.QUALITY_CHANGE_REQUESTED, { isAdaptationSetSwitch: s3, mediaType: t5, newRepresentation: a3, oldRepresentation: e4, reason: r4, streamInfo: l3 }, { streamId: l3.id, mediaType: t5 }), function(t6) {
        const e5 = N2.getAverageThroughput(t6);
        isNaN(e5) || E3.setSavedBitrateSettings(t6, e5);
      }(t5), true;
    }
    function Y2() {
      return I3.get().streaming.abr.rules.bolaRule.active && I3.get().streaming.abr.rules.throughputRule.active;
    }
    return _3 = { canPerformQualitySwitch: j2, checkPlaybackQuality: U2, clearDataForStream: function(t5) {
      T3 && T3.clearForStream(t5), A2[t5] && delete A2[t5], R2 && R2.clearForStream(t5), a2[t5] && delete a2[t5], s2.clearDataForStream(t5);
    }, getAbandonmentStateFor: function(t5, e4) {
      return a2[t5] && a2[t5][e4] ? a2[t5][e4].state : null;
    }, getInitialBitrateFor: function(t5) {
      if (t5 === m2.default.TEXT)
        return NaN;
      let e4 = S3.getAbrBitrateParameter("initialBitrate", t5);
      if (e4 > 0)
        return e4;
      let n4 = NaN;
      if (E3 && E3.hasOwnProperty("getSavedBitrateSettings") && (n4 = E3.getSavedBitrateSettings(t5)), !isNaN(n4))
        return n4;
      const a3 = N2.getAverageThroughput(t5);
      return !isNaN(a3) && a3 > 0 ? a3 : t5 === m2.default.VIDEO ? 1e3 : 100;
    }, getOptimalRepresentationForBitrate: function(t5, e4, n4 = true) {
      const a3 = x2(t5, n4);
      if (!a3 || 0 === a3.length)
        return null;
      const r4 = a3.reduce((t6, e5) => t6.bandwidth < e5.bandwidth ? t6 : e5);
      if (e4 <= 0)
        return r4;
      const i3 = a3.filter((t6) => t6.bitrateInKbit <= e4);
      return i3 && 0 !== i3.length ? i3.reduce((t6, e5) => e5.absoluteIndex > t6.absoluteIndex ? e5 : t6) : r4;
    }, getPossibleVoRepresentations: function(t5, e4 = true) {
      return M2(t5, e4);
    }, getPossibleVoRepresentationsFilteredBySettings: x2, getRepresentationByAbsoluteIndex: function(t5, e4, n4 = true) {
      return isNaN(t5) || t5 < 0 ? null : x2(e4, n4).find((e5) => e5.absoluteIndex === t5);
    }, handleNewMediaInfo: function(t5) {
      s2.handleNewMediaInfo(t5);
    }, handlePendingManualQualitySwitch: function(t5, e4) {
      try {
        const n4 = G2(t5, e4);
        let a3 = null;
        if (w3.has(n4) && (a3 = w3.get(n4)), !a3)
          return false;
        const r4 = A2[t5][e4], i3 = r4.getLastSegment();
        if (!j2(i3, r4.getRepresentation()))
          return false;
        const { type: l3, streamInfo: o3, representation: s3, reason: u4 } = a3;
        return w3.delete(n4), B2(l3, o3, s3, u4), true;
      } catch (t6) {
        v3.error(`Can not handle pending manual quality switch: ${t6}`);
      }
    }, initialize: function() {
      T3 = st(t4).create(), R2 = lt(t4).create(), s2 = W(t4).create({ dashMetrics: y3, customParametersModel: b3, mediaPlayerModel: S3, settings: I3 }), s2.initialize(), n3.on(h2.default.QUALITY_CHANGE_RENDERED, L2, _3), n3.on(h2.default.METRIC_ADDED, F2, _3), n3.on(g2.default.LOADING_PROGRESS, P2, _3), n3.on(g2.default.VIDEO_ELEMENT_RESIZED, O2, _3);
    }, isPlayingAtLowestQuality: function(t5) {
      return x2(t5.mediaInfo, true)[0].id === t5.id;
    }, isPlayingAtTopQuality: function(t5) {
      if (!t5)
        return true;
      const e4 = x2(t5.mediaInfo, true);
      return e4[e4.length - 1].id === t5.id;
    }, manuallySetPlaybackQuality: function(t5, e4, n4, a3 = {}) {
      const r4 = A2[e4.id][t5];
      if (j2(r4.getLastSegment(), r4.getRepresentation()))
        return B2(t5, e4, n4, a3);
      !function(t6, e5, n5, a4) {
        try {
          v3.debug(`[AbrController] Queuing manual quality switch for stream ${e5.id} and type ${t6} to representation ${n5.id}`);
          const r5 = G2(e5.id, t6);
          w3.set(r5, { type: t6, streamInfo: e5, representation: n5, reason: a4 });
        } catch (t7) {
          v3.error(`Can not queue manual quality switch: ${t7}`);
        }
      }(t5, e4, n4, a3);
    }, registerStreamType: function(t5, e4) {
      const n4 = e4.getStreamInfo().id;
      A2[n4] || (A2[n4] = {}), A2[n4][t5] = e4, a2[n4] || (a2[n4] = {}), a2[n4][t5] = {}, a2[n4][t5].state = l2.ALLOW_LOAD, void 0 === s2.getBolaState(t5) && s2.setBolaState(t5, I3.get().streaming.abr.rules.bolaRule.active && !Y2());
    }, reset: function() {
      D2(), n3.off(h2.default.QUALITY_CHANGE_RENDERED, L2, _3), n3.off(h2.default.METRIC_ADDED, F2, _3), n3.off(g2.default.LOADING_PROGRESS, P2, _3), n3.off(g2.default.VIDEO_ELEMENT_RESIZED, O2, _3), s2 && s2.reset();
    }, setConfig: function(t5) {
      t5 && (t5.streamController && (k3 = t5.streamController), t5.throughputController && (N2 = t5.throughputController), t5.domStorage && (E3 = t5.domStorage), t5.mediaPlayerModel && (S3 = t5.mediaPlayerModel), t5.customParametersModel && (b3 = t5.customParametersModel), t5.cmsdModel && (c3 = t5.cmsdModel), t5.dashMetrics && (y3 = t5.dashMetrics), t5.adapter && (u3 = t5.adapter), t5.videoModel && (C2 = t5.videoModel), t5.settings && (I3 = t5.settings), t5.capabilities && (d3 = t5.capabilities));
    }, setPlaybackQuality: B2, unRegisterStreamType: function(t5, e4) {
      try {
        A2[t5] && A2[t5][e4] && delete A2[t5][e4], a2[t5] && a2[t5][e4] && delete a2[t5][e4];
      } catch (t6) {
      }
    } }, v3 = e3.getLogger(_3), D2(), _3;
  }
  ut.__dashjs_factory_name = "AbrController";
  const dt = r2.default.getSingletonFactory(ut);
  r2.default.updateSingletonFactory(ut.__dashjs_factory_name, dt);
  var ct, ft, gt, mt, ht, pt = dt, bt = function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ++n3) {
      var a2 = t4.charCodeAt(n3);
      a2 < 128 ? e3.push(a2) : a2 < 2048 ? (e3.push(192 | a2 >> 6), e3.push(128 | 63 & a2)) : a2 < 65536 ? (e3.push(224 | a2 >> 12), e3.push(128 | 63 & a2 >> 6), e3.push(128 | 63 & a2)) : (e3.push(240 | a2 >> 18), e3.push(128 | 63 & a2 >> 12), e3.push(128 | 63 & a2 >> 6), e3.push(128 | 63 & a2));
    }
    return e3;
  }, yt = function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ) {
      var a2 = t4[n3++];
      a2 < 128 || (a2 < 224 ? (a2 = (31 & a2) << 6, a2 |= 63 & t4[n3++]) : a2 < 240 ? (a2 = (15 & a2) << 12, a2 |= (63 & t4[n3++]) << 6, a2 |= 63 & t4[n3++]) : (a2 = (7 & a2) << 18, a2 |= (63 & t4[n3++]) << 12, a2 |= (63 & t4[n3++]) << 6, a2 |= 63 & t4[n3++])), e3.push(String.fromCharCode(a2));
    }
    return e3.join("");
  }, Et = {};
  ct = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", ft = function(t4) {
    for (var e3 = 0, n3 = [], a2 = 0 | t4.length / 3; 0 < a2--; ) {
      var r3 = (t4[e3] << 16) + (t4[e3 + 1] << 8) + t4[e3 + 2];
      e3 += 3, n3.push(ct.charAt(63 & r3 >> 18)), n3.push(ct.charAt(63 & r3 >> 12)), n3.push(ct.charAt(63 & r3 >> 6)), n3.push(ct.charAt(63 & r3));
    }
    return 2 == t4.length - e3 ? (r3 = (t4[e3] << 16) + (t4[e3 + 1] << 8), n3.push(ct.charAt(63 & r3 >> 18)), n3.push(ct.charAt(63 & r3 >> 12)), n3.push(ct.charAt(63 & r3 >> 6)), n3.push("=")) : 1 == t4.length - e3 && (r3 = t4[e3] << 16, n3.push(ct.charAt(63 & r3 >> 18)), n3.push(ct.charAt(63 & r3 >> 12)), n3.push("==")), n3.join("");
  }, gt = function() {
    for (var t4 = [], e3 = 0; e3 < 64; ++e3)
      t4[ct.charCodeAt(e3)] = e3;
    return t4["=".charCodeAt(0)] = 0, t4;
  }(), mt = function(t4) {
    for (var e3 = 0, n3 = [], a2 = 0 | t4.length / 4; 0 < a2--; ) {
      var r3 = (gt[t4.charCodeAt(e3)] << 18) + (gt[t4.charCodeAt(e3 + 1)] << 12) + (gt[t4.charCodeAt(e3 + 2)] << 6) + gt[t4.charCodeAt(e3 + 3)];
      n3.push(255 & r3 >> 16), n3.push(255 & r3 >> 8), n3.push(255 & r3), e3 += 4;
    }
    return n3 && ("=" == t4.charAt(e3 - 2) ? (n3.pop(), n3.pop()) : "=" == t4.charAt(e3 - 1) && n3.pop()), n3;
  }, ht = { encode: function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ++n3)
      e3.push(t4.charCodeAt(n3));
    return e3;
  }, decode: function(t4) {
    for (var e3 = 0; e3 < s.length; ++e3)
      a[e3] = String.fromCharCode(a[e3]);
    return a.join("");
  } }, Et.decodeArray = function(t4) {
    var e3 = mt(t4);
    return new Uint8Array(e3);
  }, Et.encodeASCII = function(t4) {
    var e3 = ht.encode(t4);
    return ft(e3);
  }, Et.decodeASCII = function(t4) {
    var e3 = mt(t4);
    return ht.decode(e3);
  }, Et.encode = function(t4) {
    var e3 = bt(t4);
    return ft(e3);
  }, Et.decode = function(t4) {
    var e3 = mt(t4);
    return yt(e3);
  }, "undefined" != typeof exports && (exports.decode = Et.decode, exports.decodeArray = Et.decodeArray, exports.encode = Et.encode, exports.encodeASCII = Et.encodeASCII);
  var Tt = Et, _t = n2(7393);
  const vt = NaN;
  class St {
    constructor(t4, e3) {
      this.data = { baseUrls: t4 || null, selectedIdx: e3 || vt }, this.children = [];
    }
  }
  function wt() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = (0, _t.default)(r3).getInstance();
    function l3(t5, e4, n4) {
      const a3 = o3(n4);
      t5[e4] ? i3.areEqual(a3, t5[e4].data.baseUrls) || (t5[e4].data.baseUrls = a3, t5[e4].data.selectedIdx = vt) : t5[e4] = new St(a3);
    }
    function o3(t5) {
      let e4 = n3.getBaseURLsFromElement(t5);
      const r4 = a2.getSynthesizedBaseUrlElements(e4);
      return r4 && r4.length > 0 && r4.forEach((t6) => {
        const n4 = e4.findIndex((e5) => e5.serviceLocation === t6.serviceLocation);
        -1 !== n4 ? e4[n4] = t6 : e4.push(t6);
      }), e4;
    }
    function s2(t5, n4) {
      const a3 = n4 || e3;
      t5(a3.data), a3.children && a3.children.forEach((e4) => s2(t5, e4));
    }
    function u3() {
      e3 = new St();
    }
    return t4 = { reset: u3, update: function(t5) {
      !function(t6) {
        !function() {
          if (!n3 || !n3.hasOwnProperty("getBaseURLsFromElement") || !n3.hasOwnProperty("getRepresentationSortFunction"))
            throw new Error("setConfig function has to be called previously");
        }();
        const a3 = o3(t6);
        i3.areEqual(a3, e3.data.baseUrls) || (e3.data.baseUrls = a3, e3.data.selectedIdx = vt), t6 && t6.Period && t6.Period.forEach((t7, a4) => {
          l3(e3.children, a4, t7), t7.AdaptationSet && t7.AdaptationSet.forEach((t8, r4) => {
            l3(e3.children[a4].children, r4, t8), t8.Representation && t8.Representation.sort(n3.getRepresentationSortFunction()).forEach((t9, n4) => {
              l3(e3.children[a4].children[r4].children, n4, t9);
            });
          });
        });
      }(t5);
    }, getForPath: function(t5) {
      let n4 = e3;
      const a3 = [n4.data];
      return t5 && t5.forEach((t6) => {
        n4 = n4.children[t6], n4 && a3.push(n4.data);
      }), a3.filter((t6) => t6.baseUrls.length);
    }, invalidateSelectedIndexes: function(t5) {
      s2((e4) => {
        isNaN(e4.selectedIdx) || t5 === e4.baseUrls[e4.selectedIdx].serviceLocation && (e4.selectedIdx = vt);
      });
    }, setConfig: function(t5) {
      t5.adapter && (n3 = t5.adapter), t5.contentSteeringController && (a2 = t5.contentSteeringController);
    }, getBaseUrls: function(t5) {
      return o3(t5);
    } }, u3(), t4;
  }
  wt.__dashjs_factory_name = "BaseURLTreeModel";
  var It = r2.default.getClassFactory(wt), kt = n2(8748);
  class At extends kt.default {
    constructor() {
      super(), this.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE = 10, this.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE = 11, this.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE = 12, this.SEGMENT_BASE_LOADER_ERROR_CODE = 15, this.TIME_SYNC_FAILED_ERROR_CODE = 16, this.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE = 17, this.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE = 18, this.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE = 19, this.APPEND_ERROR_CODE = 20, this.REMOVE_ERROR_CODE = 21, this.DATA_UPDATE_FAILED_ERROR_CODE = 22, this.CAPABILITY_MEDIASOURCE_ERROR_CODE = 23, this.CAPABILITY_MEDIAKEYS_ERROR_CODE = 24, this.DOWNLOAD_ERROR_ID_MANIFEST_CODE = 25, this.DOWNLOAD_ERROR_ID_SIDX_CODE = 26, this.DOWNLOAD_ERROR_ID_CONTENT_CODE = 27, this.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE = 28, this.DOWNLOAD_ERROR_ID_XLINK_CODE = 29, this.MANIFEST_ERROR_ID_PARSE_CODE = 31, this.MANIFEST_ERROR_ID_NOSTREAMS_CODE = 32, this.TIMED_TEXT_ERROR_ID_PARSE_CODE = 33, this.MANIFEST_ERROR_ID_MULTIPLEXED_CODE = 34, this.MEDIASOURCE_TYPE_UNSUPPORTED_CODE = 35, this.NO_SUPPORTED_KEY_IDS = 36, this.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE = "parsing failed for ", this.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE = "Failed loading manifest: ", this.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE = "Failed loading Xlink element: ", this.SEGMENTS_UPDATE_FAILED_ERROR_MESSAGE = "Segments update failed", this.SEGMENTS_UNAVAILABLE_ERROR_MESSAGE = "no segments are available yet", this.SEGMENT_BASE_LOADER_ERROR_MESSAGE = "error loading segment ranges from sidx", this.TIME_SYNC_FAILED_ERROR_MESSAGE = "Failed to synchronize client and server time", this.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE = "request is null", this.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE = "Failed to resolve a valid URL", this.APPEND_ERROR_MESSAGE = "chunk is not defined", this.REMOVE_ERROR_MESSAGE = "Removing data from the SourceBuffer", this.DATA_UPDATE_FAILED_ERROR_MESSAGE = "Data update failed", this.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE = "mediasource is not supported", this.CAPABILITY_MEDIAKEYS_ERROR_MESSAGE = "mediakeys is not supported", this.TIMED_TEXT_ERROR_MESSAGE_PARSE = "parsing error :", this.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE = "Error creating source buffer of type : ", this.NO_SUPPORTED_KEY_IDS_MESSAGE = "All possible Adaptation Sets have an invalid key status";
    }
  }
  var Rt = new At();
  function Nt(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = [];
    const a2 = (0, f2.default)(this.context).getInstance(), r3 = t4.updateEventName, i3 = t4.addBlacklistEventName;
    function l3(t5) {
      -1 === n3.indexOf(t5) && (n3.push(t5), a2.trigger(r3, { entry: t5 }));
    }
    function o3(t5) {
      l3(t5.entry);
    }
    return e3 = { add: l3, remove: function(t5) {
      const e4 = n3.indexOf(t5);
      -1 !== e4 && n3.splice(e4, 1);
    }, contains: function(t5) {
      return !!(n3.length && t5 && t5.length) && -1 !== n3.indexOf(t5);
    }, reset: function() {
      i3 && a2.off(i3, o3, e3), n3 = [];
    } }, i3 && a2.on(i3, o3, e3), e3;
  }
  Nt.__dashjs_factory_name = "BlackListController";
  var Ct = r2.default.getClassFactory(Nt);
  function Dt(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).blacklistController;
    return e3 = { select: function(t5) {
      return t5 && function(t6) {
        let e4, n4, a2 = 0, r3 = [], i3 = 0;
        if (n4 = t6.sort(function(t7, e5) {
          let n5 = t7.dvbPriority - e5.dvbPriority;
          return isNaN(n5) ? 0 : n5;
        }).filter(function(t7, e5, n5) {
          return !e5 || n5[0].dvbPriority && t7.dvbPriority && n5[0].dvbPriority === t7.dvbPriority;
        }), n4.length)
          return n4.length > 1 && (n4.forEach((t7) => {
            a2 += t7.dvbWeight, r3.push(a2);
          }), e4 = Math.floor(Math.random() * (a2 - 1)), r3.every((t7, n5) => (i3 = n5, !(e4 < t7)))), n4[i3];
      }(function(t6) {
        let e4 = [];
        return t6.filter(function(t7) {
          return !n3.contains(t7.serviceLocation) || (t7.dvbPriority && e4.push(t7.dvbPriority), false);
        }).filter(function(t7) {
          return !e4.length || !t7.dvbPriority || -1 === e4.indexOf(t7.dvbPriority);
        });
      }(t5));
    } }, e3;
  }
  Dt.__dashjs_factory_name = "DVBSelector";
  var xt = r2.default.getClassFactory(Dt);
  function Mt(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).blacklistController;
    return e3 = { select: function(t5) {
      let e4, a2 = 0;
      return t5 && t5.some((t6, e5) => (a2 = e5, !n3.contains(t6.serviceLocation))) && (e4 = t5[a2]), e4;
    } }, e3;
  }
  Mt.__dashjs_factory_name = "BasicSelector";
  var Pt = r2.default.getClassFactory(Mt), Ot = n2(1944), zt = n2(656), Lt = n2(7263);
  function Ft() {
    let t4, e3;
    function n3() {
      e3 && (e3.onloadend = e3.onerror = e3.onprogress = e3.onload = null, e3.abort(), e3 = null);
    }
    return t4 = { load: function(t5, a2) {
      if (e3 = null, e3 = new XMLHttpRequest(), e3.open(t5.method, t5.url, true), t5.responseType && (e3.responseType = t5.responseType), t5.headers)
        for (let n4 in t5.headers) {
          let a3 = t5.headers[n4];
          a3 && e3.setRequestHeader(n4, a3);
        }
      return e3.withCredentials = "include" === t5.credentials, e3.timeout = t5.timeout, e3.onload = function() {
        a2.url = this.responseURL, a2.status = this.status, a2.statusText = this.statusText, a2.headers = Lt.default.parseHttpHeaders(this.getAllResponseHeaders()), a2.data = this.response;
      }, t5.customData && (e3.onloadend = t5.customData.onloadend, e3.onprogress = t5.customData.onprogress, e3.onabort = t5.customData.onabort, e3.ontimeout = t5.customData.ontimeout), e3.send(), t5.customData.abort = n3.bind(this), true;
    }, abort: n3, getXhr: function() {
      return e3;
    }, reset: function() {
      n3(), t4 = null;
    }, resetInitialSettings: function() {
      n3();
    } }, t4;
  }
  Ft.__dashjs_factory_name = "XHRLoader";
  var Ut = r2.default.getClassFactory(Ft);
  function jt() {
    const t4 = this.context, e3 = (0, u2.default)(t4).getInstance();
    let n3, a2, r3;
    function i3(t5, e4, n4) {
      t5.customData.reader.read().then(n4).catch(function() {
        l3(t5);
      });
    }
    function l3(t5) {
      t5.customData.onloadend && t5.customData.onloadend();
    }
    function s2() {
      return "undefined" != typeof performance && "function" == typeof performance.now ? performance.now() : Date.now();
    }
    function d3() {
      if (this.customData.abortController)
        this.customData.abortController.abort();
      else if (this.customData.reader)
        try {
          this.customData.reader.cancel(), this.onabort();
        } catch (t5) {
        }
    }
    function c3(t5, e4) {
      try {
        if ((t5 = t5.filter((n4) => n4.bytes > e4 / 4 / t5.length)).length > 1) {
          let e5 = 0;
          const n4 = (t5[t5.length - 1].timestamp - t5[0].timestamp) / t5.length;
          return t5.forEach((a3, r4) => {
            const i4 = t5[r4 + 1];
            if (i4) {
              const t6 = i4.timestamp - a3.timestamp;
              e5 += t6 < n4 ? t6 : 0;
            }
          }), e5;
        }
        return null;
      } catch (t6) {
        return null;
      }
    }
    function f3(t5, e4) {
      return 8 * t5 / e4;
    }
    return r3 = (0, o2.default)(t4).getInstance().getLogger(n3), n3 = { abort: d3, calculateDownloadedTime: c3, load: function(t5, n4) {
      const o3 = function(t6) {
        const e4 = new Headers();
        if (t6.headers)
          for (let n5 in t6.headers) {
            let a3 = t6.headers[n5];
            a3 && e4.append(n5, a3);
          }
        return e4;
      }(t5), u3 = function(t6) {
        let e4;
        return "function" == typeof window.AbortController && (e4 = new AbortController(), t6.customData.abortController = e4, e4.signal.onabort = t6.customData.onabort), t6.customData.abort = d3.bind(t6), e4;
      }(t5), g3 = function(t6, e4, n5) {
        return new Request(t6.url, { method: t6.method, headers: e4, credentials: t6.credentials, signal: n5 ? n5.signal : void 0 });
      }(t5, o3, u3);
      fetch(g3).then((l4) => {
        !function(t6, n5, l5) {
          (function(t7, e4) {
            t7.status = e4.status, t7.statusText = e4.statusText, t7.url = e4.url;
            const n6 = {};
            for (const t8 of e4.headers.keys())
              n6[t8] = e4.headers.get(t8);
            t7.headers = n6;
          })(l5, t6), t6.ok || n5.customData.onloadend();
          let o4 = 0, u4 = false, d4 = new Uint8Array(), g4 = 0;
          n5.customData.reader = t6.body.getReader();
          let h3 = [], p3 = [], b3 = [], y3 = true;
          const E3 = e3.get().streaming.abr.throughput.lowLatencyDownloadTimeCalculationMode, T3 = ({ value: t7, done: e4 }) => {
            e4 ? function() {
              if (d4) {
                const t8 = function() {
                  let t9 = null;
                  return E3 === m2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING ? t9 = function() {
                    const t10 = function(t11, e5) {
                      try {
                        let n6, a3;
                        if (n6 = t11.slice(0, -1), a3 = e5.slice(0, -1), n6.length !== a3.length && r3.warn(`[FetchLoader] Moof and Mdat data arrays have different lengths. Moof: ${n6.length}, Mdat: ${a3.length}`), n6.length <= 1)
                          return null;
                        let i4 = [], l6 = 0, o5 = 0;
                        for (let t12 = 0; t12 < n6.length; t12++)
                          if (n6[t12] && a3[t12]) {
                            let e6 = a3[t12].timestamp - n6[t12].timestamp;
                            if (e6 > 1) {
                              const n7 = f3(a3[t12].bytes, e6);
                              i4.push(n7), o5 = 0;
                            } else {
                              0 === o5 && (o5 = n6[t12].timestamp, l6 = 0);
                              let e7 = a3[t12].timestamp - o5;
                              if (e7 > 1) {
                                l6 += a3[t12].bytes;
                                const n7 = f3(l6, e7);
                                i4.push(n7), o5 = 0;
                              } else
                                l6 += a3[t12].bytes;
                            }
                          }
                        return i4.length > 0 ? i4.reduce((t12, e6) => t12 + e6, 0) / i4.length : null;
                      } catch (t12) {
                        return null;
                      }
                    }(p3, b3);
                    return t10 ? 8 * o4 / t10 : null;
                  }() : E3 === m2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.DOWNLOADED_DATA && (t9 = c3(h3, o4)), t9;
                }();
                n5.customData.onprogress({ loaded: o4, total: o4, lengthComputable: true, time: t8 }), l5.data = d4.buffer;
              }
              n5.customData.onloadend();
            }() : (t7 && t7.length > 0 && function(t8) {
              d4 = function(t9, e6) {
                if (0 === t9.length)
                  return e6;
                const n6 = new Uint8Array(t9.length + e6.length);
                return n6.set(t9), n6.set(e6, t9.length), n6;
              }(d4, t8), o4 += t8.length, h3.push({ timestamp: s2(), bytes: t8.length }), E3 === m2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING && y3 && a2.findLastTopIsoBoxCompleted(["moof"], d4, g4).found && (y3 = false, p3.push({ timestamp: s2() }));
              const e5 = a2.findLastTopIsoBoxCompleted(["moov", "mdat"], d4, g4);
              e5.found ? function(t9) {
                const e6 = function(t10) {
                  let e7;
                  return t10 === d4.length ? (e7 = d4, d4 = new Uint8Array()) : (e7 = new Uint8Array(d4.subarray(0, t10)), d4 = d4.subarray(t10)), e7;
                }(t9.startOffsetOfLastFoundTargetBox + t9.sizeOfLastFoundTargetBox);
                E3 !== m2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING || y3 || (y3 = true, b3.push({ timestamp: s2(), bytes: e6.length })), n5.customData.onprogress({ data: e6.buffer, lengthComputable: false, noTrace: true }), g4 = 0;
              }(e5) : function(t9) {
                g4 = t9.startOffsetOfLastCompletedBox + t9.sizeOfLastCompletedBox, u4 || (n5.customData.onprogress({ lengthComputable: false, noTrace: true }), u4 = true);
              }(e5);
            }(t7), i3(n5, 0, T3));
          };
          i3(n5, 0, T3);
        }(l4, t5, n4);
      }).catch(() => {
        l3(t5);
      });
    }, reset: function() {
    }, setConfig: function(t5) {
      a2 = t5.boxParser;
    } }, n3;
  }
  jt.__dashjs_factory_name = "FetchLoader";
  var qt = r2.default.getClassFactory(jt), Bt = n2(913), Gt = class {
    constructor() {
      this.period = null, this.index = -1, this.id = null, this.type = null;
    }
  };
  class Ht {
    constructor(t4, e3, n3, a2) {
      this.url = t4 || "", this.serviceLocation = e3 || t4 || "", this.dvbPriority = n3 || 1, this.dvbWeight = a2 || 1, this.availabilityTimeOffset = 0, this.availabilityTimeComplete = true, this.queryParams = {};
    }
  }
  Ht.DEFAULT_DVB_PRIORITY = 1, Ht.DEFAULT_DVB_WEIGHT = 1;
  var Yt = Ht, Vt = n2(8854), Kt = class {
    constructor() {
      this.schemeIdUri = null, this.value = null, this.id = null;
    }
    init(t4) {
      t4 && (this.schemeIdUri = t4.schemeIdUri ? t4.schemeIdUri : null, this.value = null !== t4.value && void 0 !== t4.value ? t4.value.toString() : null, this.id = t4.id ? t4.id : null, t4[Vt.default.DVB_URL] && (this.dvbUrl = t4[Vt.default.DVB_URL]), t4[Vt.default.DVB_MIMETYPE] && (this.dvbMimeType = t4[Vt.default.DVB_MIMETYPE]), t4[Vt.default.DVB_FONTFAMILY] && (this.dvbFontFamily = t4[Vt.default.DVB_FONTFAMILY]));
    }
    inArray(t4) {
      return !!t4 && t4.some((t5) => this.schemeIdUri === t5.schemeIdUri && (this.value ? this.value.toString().match(t5.value) : "".match(t5.value)));
    }
  }, Wt = class extends Kt {
    constructor() {
      super(), this.version = null, this.sessionID = null, this.contentID = null, this.mode = null, this.keys = null, this.includeInRequests = null;
    }
    init(t4) {
      super.init(t4), t4 && (this.version = t4.version, this.sessionID = t4.sessionID, this.contentID = t4.contentID, this.mode = t4.mode ?? "query", this.keys = t4.keys ? t4.keys.split(" ") : null, this.includeInRequests = t4.includeInRequests ? t4.includeInRequests.split(" ") : ["segment"], this.schemeIdUri = t4.schemeIdUri);
    }
  }, $t = class {
    constructor() {
      this.adaptationSets = null, this.adaptationSetsArray = [], this.cmcdParameters = null, this.serviceLocations = null, this.serviceLocationsArray = [];
    }
  }, Qt = class extends Kt {
    constructor() {
      super(), this.ref = null, this.refId = null, this.robustness = null, this.keyId = null, this.cencDefaultKid = null, this.pssh = null, this.pro = null, this.laUrl = null;
    }
    init(t4) {
      super.init(t4), t4 && (this.ref = t4.hasOwnProperty(Vt.default.REF) ? t4[Vt.default.REF] : null, this.refId = t4.hasOwnProperty(Vt.default.REF_ID) ? t4[Vt.default.REF_ID] : null, this.robustness = t4.hasOwnProperty(Vt.default.ROBUSTNESS) ? t4[Vt.default.ROBUSTNESS] : null, this.cencDefaultKid = t4.hasOwnProperty(Vt.default.CENC_DEFAULT_KID) ? t4[Vt.default.CENC_DEFAULT_KID] : null, this.pssh = t4.hasOwnProperty(Vt.default.PSSH) ? t4[Vt.default.PSSH] : null, this.pro = t4.hasOwnProperty(Vt.default.PRO) ? t4[Vt.default.PRO] : null, this.laUrl = t4.hasOwnProperty(Vt.default.LA_URL) ? t4[Vt.default.LA_URL] : t4.hasOwnProperty(Vt.default.LA_URL_LOWER_CASE) ? t4[Vt.default.LA_URL_LOWER_CASE] : null);
    }
    mergeAttributesFromReference(t4) {
      ["schemeIdUri", "value", "id", "robustness", "cencDefaultKid", "pro", "pssh", "laUrl"].forEach((e3) => {
        null === this[e3] && (this[e3] = t4[e3]);
      });
    }
  }, Xt = class {
    constructor() {
      this.defaultServiceLocation = null, this.defaultServiceLocationArray = [], this.queryBeforeStart = false, this.serverUrl = null, this.clientRequirement = true;
    }
  }, Zt = class {
    constructor() {
      this.type = "", this.duration = NaN, this.presentationTime = NaN, this.id = NaN, this.messageData = "", this.eventStream = null, this.presentationTimeDelta = NaN, this.parsedMessageData = null;
    }
  }, Jt = class {
    constructor() {
      this.adaptionSet = null, this.representation = null, this.period = null, this.timescale = 1, this.value = "", this.schemeIdUri = "", this.presentationTimeOffset = 0;
    }
  }, te = class {
    constructor() {
      this.availabilityEndTime = Number.POSITIVE_INFINITY, this.availabilityStartTime = null, this.manifest = null, this.maxSegmentDuration = Number.POSITIVE_INFINITY, this.mediaPresentationDuration = NaN, this.minimumUpdatePeriod = NaN, this.publishTime = null, this.suggestedPresentationDelay = 0, this.timeShiftBufferDepth = Number.POSITIVE_INFINITY;
    }
  }, ee = class {
    constructor(t4, e3) {
      this.url = t4 || "", this.serviceLocation = e3 || null, this.queryParams = {};
    }
  }, ne = class {
    constructor(t4, e3, n3) {
      this.url = t4 || "", this.serviceLocation = e3 || null, this.ttl = n3 || NaN, this.queryParams = {};
    }
  };
  class ae {
    constructor() {
      this.id = null, this.index = -1, this.duration = NaN, this.start = NaN, this.mpd = null, this.nextPeriodId = null, this.isEncrypted = false;
    }
  }
  ae.DEFAULT_ID = "defaultId";
  var re = ae, ie = class {
    constructor() {
      this.period = null, this.index = -1, this.id = 1, this.type = null, this.tag = null, this.order = "undefined", this.preselectionComponents = [];
    }
  }, le = class {
    constructor() {
      this.id = null, this.inband = false, this.type = "encoder", this.applicationScheme = null, this.wallClockTime = null, this.presentationTime = NaN, this.UTCTiming = null;
    }
  }, oe = class {
    constructor() {
      this.absoluteIndex = NaN, this.adaptation = null, this.availabilityTimeComplete = true, this.availabilityTimeOffset = 0, this.bandwidth = NaN, this.bitrateInKbit = NaN, this.bitsPerPixel = NaN, this.codecFamily = null, this.codecPrivateData = null, this.codecs = null, this.dependencyId = null, this.dependentRepresentation = null, this.endNumber = null, this.essentialProperties = [], this.fragmentDuration = null, this.frameRate = null, this.height = NaN, this.id = null, this.indexRange = null, this.initialization = null, this.maxPlayoutRate = NaN, this.mediaFinishedInformation = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN }, this.mediaInfo = null, this.mimeType = null, this.mseTimeOffset = NaN, this.pixelsPerSecond = NaN, this.presentationTimeOffset = 0, this.qualityRanking = NaN, this.range = null, this.scanType = null, this.segments = null, this.segmentDuration = NaN, this.segmentInfoType = null, this.segmentSequenceProperties = [], this.supplementalProperties = [], this.startNumber = 1, this.timescale = 1, this.width = NaN;
    }
    hasInitialization() {
      return null !== this.initialization || null !== this.range;
    }
    hasSegments() {
      return this.segmentInfoType !== Vt.default.BASE_URL && this.segmentInfoType !== Vt.default.SEGMENT_BASE && !this.indexRange;
    }
  };
  function se() {
    let t4;
    const e3 = /^[a-z][a-z0-9+\-_.]*:/i, n3 = /^https?:\/\//i, a2 = /^https:\/\//i, r3 = /^([a-z][a-z0-9+\-_.]*:\/\/[^\/]+)\/?/i, i3 = (t5, e4) => {
      try {
        return new window.URL(t5, e4).toString();
      } catch (e5) {
        return t5;
      }
    }, l3 = (t5, e4) => {
      let n4 = o3;
      if (!e4)
        return t5;
      if (!d3(t5))
        return t5;
      c3(t5) && (n4 = s2), f3(t5) && (n4 = u3);
      const a3 = n4(e4), r4 = "/" !== a3.charAt(a3.length - 1) && "/" !== t5.charAt(0) ? "/" : "";
      return [a3, t5].join(r4);
    };
    function o3(t5) {
      const e4 = t5.indexOf("/"), n4 = t5.lastIndexOf("/");
      return -1 !== e4 ? n4 === e4 + 1 ? t5 : (-1 !== t5.indexOf("?") && (t5 = t5.substring(0, t5.indexOf("?"))), t5.substring(0, n4 + 1)) : "";
    }
    function s2(t5) {
      const e4 = t5.match(r3);
      return e4 ? e4[1] : "";
    }
    function u3(t5) {
      const n4 = t5.match(e3);
      return n4 ? n4[0] : "";
    }
    function d3(t5) {
      return !e3.test(t5);
    }
    function c3(t5) {
      return d3(t5) && "/" === t5.charAt(0);
    }
    function f3(t5) {
      return 0 === t5.indexOf("//");
    }
    return function() {
      try {
        new window.URL("x", "http://y"), t4 = i3;
      } catch (t5) {
      } finally {
        t4 = t4 || l3;
      }
    }(), { parseBaseUrl: o3, parseOrigin: s2, parseScheme: u3, isRelative: d3, isPathAbsolute: c3, isSchemeRelative: f3, isHTTPURL: function(t5) {
      return n3.test(t5);
    }, isHTTPS: function(t5) {
      return a2.test(t5);
    }, removeHostname: function(t5) {
      return /^(?:\w+\:\/\/)?([^\/]+)(.*)$/.exec(t5)[2].substring(1);
    }, resolve: function(e4, n4) {
      return t4(e4, n4);
    } };
  }
  se.__dashjs_factory_name = "DefaultURLUtils";
  var ue = r2.default.getSingletonFactory(se);
  function de() {
    let t4, e3, n3 = [];
    const a2 = this.context;
    function r3(t5, a3, r4) {
      let i3 = function(t6) {
        let a4;
        for (a4 = 0; a4 < n3.length; a4++)
          if (n3[a4].regex.test(t6))
            return n3[a4].utils;
        return e3;
      }(r4 || a3);
      return i3 && "function" == typeof i3[t5] ? i3[t5](a3, r4) : e3[t5](a3, r4);
    }
    return e3 = ue(a2).getInstance(), t4 = { registerUrlRegex: function(t5, e4) {
      n3.push({ regex: t5, utils: e4 });
    }, parseBaseUrl: function(t5) {
      return r3("parseBaseUrl", t5);
    }, parseOrigin: function(t5) {
      return r3("parseOrigin", t5);
    }, parseScheme: function(t5) {
      return r3("parseScheme", t5);
    }, isRelative: function(t5) {
      return r3("isRelative", t5);
    }, isPathAbsolute: function(t5) {
      return r3("isPathAbsolute", t5);
    }, isSchemeRelative: function(t5) {
      return r3("isSchemeRelative", t5);
    }, isHTTPURL: function(t5) {
      return r3("isHTTPURL", t5);
    }, isHTTPS: function(t5) {
      return r3("isHTTPS", t5);
    }, removeHostname: function(t5) {
      return r3("removeHostname", t5);
    }, resolve: function(t5, e4) {
      return r3("resolve", t5, e4);
    } }, t4;
  }
  de.__dashjs_factory_name = "URLUtils";
  var ce = r2.default.getSingletonFactory(de), fe = n2(5717), ge = class {
    constructor() {
      this.cadence = 1, this.sapType = 0, this.event = true, this.alignment = null;
    }
    init(t4) {
      t4 && (this.cadence = void 0 === t4.cadence || isNaN(t4.cadence) ? 1 : t4.cadence, this.sapType = void 0 === t4.sapType || isNaN(t4.sapType) ? 0 : t4.sapType, this.event = void 0 === t4.event || t4.event, this.alignment = void 0 !== t4.alignment ? t4.alignment : null);
    }
  };
  function me() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = ce(r3).getInstance(), l3 = Number.isInteger || function(t5) {
      return "number" == typeof t5 && isFinite(t5) && Math.floor(t5) === t5;
    };
    function s2(t5, e4) {
      if (!t5)
        throw new Error("adaptation is not defined");
      if (!e4)
        throw new Error("type is not defined");
      if (t5.Representation && t5.Representation.length) {
        const n5 = S3(t5.Representation[0]);
        if (n5 && n5.some((t6) => m2.default.THUMBNAILS_SCHEME_ID_URIS.indexOf(t6.schemeIdUri) >= 0))
          return e4 === m2.default.IMAGE;
      }
      if (t5.ContentComponent && t5.ContentComponent.length > 0) {
        if (t5.ContentComponent.length > 1)
          return e4 === m2.default.MUXED;
        if (t5.ContentComponent[0].contentType === e4)
          return true;
      }
      const n4 = e4 === m2.default.TEXT ? new RegExp("(ttml|vtt|wvtt|stpp)") : new RegExp(e4);
      if (t5.Representation && t5.Representation.length) {
        const e5 = t5.Representation[0].codecs;
        if (n4.test(e5))
          return true;
      }
      if (t5.hasOwnProperty(Vt.default.MIME_TYPE))
        return n4.test(t5.mimeType);
      if (t5.Representation) {
        let e5;
        for (let a3 = 0; a3 < t5.Representation.length; a3++)
          if (e5 = t5.Representation[a3], e5.hasOwnProperty(Vt.default.MIME_TYPE))
            return n4.test(e5.mimeType);
      }
      return false;
    }
    function u3(t5) {
      if (!t5)
        throw new Error("adaptation is not defined");
      if (t5.hasOwnProperty(Vt.default.SEGMENT_TEMPLATE) || t5.hasOwnProperty(Vt.default.SEGMENT_TIMELINE) || t5.hasOwnProperty(Vt.default.SEGMENT_LIST) || t5.hasOwnProperty(Vt.default.SEGMENT_BASE))
        return true;
      if (t5.Representation && t5.Representation.length > 0) {
        const e4 = t5.Representation[0];
        if (e4.hasOwnProperty(Vt.default.SEGMENT_TEMPLATE) || e4.hasOwnProperty(Vt.default.SEGMENT_TIMELINE) || e4.hasOwnProperty(Vt.default.SEGMENT_LIST) || e4.hasOwnProperty(Vt.default.SEGMENT_BASE))
          return true;
      }
      return false;
    }
    function d3(t5) {
      return s2(t5, m2.default.TEXT);
    }
    function c3(t5) {
      return t5 && t5.Representation && t5.Representation.sort((t6, e4) => t6.bandwidth - e4.bandwidth), t5;
    }
    function f3(t5, e4) {
      return t5 && t5.Period && l3(e4) && t5.Period[e4] ? t5.Period[e4].AdaptationSet : [];
    }
    function g3(t5) {
      return t5 && t5.Period ? t5.Period : [];
    }
    function h3(t5, e4, n4) {
      let a3 = null;
      if (t5 && t5.Representation && t5.Representation.length > 0) {
        const r4 = l3(e4) && e4 >= 0 && e4 < t5.Representation.length ? t5.Representation[e4] : t5.Representation[0];
        r4 && (a3 = r4.mimeType + ';codecs="' + r4.codecs + '"', n4 && void 0 !== r4.width && (a3 += ';width="' + r4.width + '";height="' + r4.height + '"'));
      }
      return a3 && (a3 = a3.replace(/\sprofiles=[^;]*/g, "")), a3;
    }
    function p3(t5) {
      const e4 = b3(t5);
      return e4 && e4.length > 0;
    }
    function b3(t5) {
      let e4 = [];
      if (!t5)
        return e4;
      const n4 = y3(t5);
      return e4 = e4.concat(n4), t5.hasOwnProperty(Vt.default.ADAPTATION_SET) && t5[Vt.default.ADAPTATION_SET].length > 0 && t5[Vt.default.ADAPTATION_SET].forEach((t6) => {
        const n5 = y3(t6);
        e4 = e4.concat(n5);
      }), e4;
    }
    function y3(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.CONTENT_PROTECTION) && 0 !== t5.ContentProtection.length ? t5[Vt.default.CONTENT_PROTECTION].map((t6) => {
        const e4 = new Qt();
        return e4.init(t6), e4;
      }) : [];
    }
    function E3(t5) {
      let e4 = false;
      return t5 && t5.hasOwnProperty("type") && (e4 = t5.type === Vt.default.DYNAMIC), e4;
    }
    function T3(t5) {
      if (!t5)
        return null;
      const e4 = t5[Vt.default.FRAMERATE];
      if (!e4)
        return null;
      if ("string" == typeof e4 && e4.includes("/")) {
        const [t6, n4] = e4.split("/").map((t7) => parseInt(t7, 10));
        if (!isNaN(t6) && !isNaN(n4) && 0 !== n4)
          return t6 / n4;
      }
      return parseInt(e4);
    }
    function _3(t5, e4) {
      return e4 && e4.hasOwnProperty(t5) && e4[t5].length ? e4[t5].map((t6) => {
        const e5 = new Kt();
        return e5.init(t6), e5;
      }) : [];
    }
    function v3(t5, e4) {
      if (!e4)
        return [];
      let n4 = function(t6, e5) {
        if (!e5 || !e5.length)
          return [];
        let n5 = e5[0][t6] || [];
        return 0 === n5.length ? [] : 1 === e5.length ? n5 : n5.filter((n6) => e5.slice(1).every((e6) => e6.hasOwnProperty(t6) && e6[t6].some((t7) => t7.schemeIdUri === n6.schemeIdUri && t7.value === n6.value)));
      }(t5, e4[Vt.default.REPRESENTATION]);
      return e4.hasOwnProperty(t5) && e4[t5].length && n4.push(...e4[t5]), n4.map((t6) => {
        const e5 = new Kt();
        return e5.init(t6), e5;
      });
    }
    function S3(t5) {
      return _3(Vt.default.ESSENTIAL_PROPERTY, t5);
    }
    function w3(t5) {
      return _3(Vt.default.SUPPLEMENTAL_PROPERTY, t5);
    }
    function I3(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.SEGMENT_SEQUENCE_PROPERTIES) && t5[Vt.default.SEGMENT_SEQUENCE_PROPERTIES].length ? t5[Vt.default.SEGMENT_SEQUENCE_PROPERTIES].map((t6) => {
        const e4 = new ge(t6);
        return e4.init(t6), e4;
      }) : [];
    }
    function k3(t5, e4, n4, a3, r4, i4) {
      const l4 = new oe();
      !function(t6, e5, n5, a4, r5) {
        if (t6.index = r5, t6.adaptation = n5, t6.mediaInfo = a4, e5.hasOwnProperty(Vt.default.ID) && (t6.id = e5.id), e5.hasOwnProperty(Vt.default.CODECS) && (t6.codecs = e5.codecs, t6.codecFamily = Lt.default.getCodecFamily(t6.codecs)), e5.hasOwnProperty(Vt.default.DEPENDENCY_ID)) {
          const n6 = e5[Vt.default.DEPENDENCY_ID].toString().split(" ")[0];
          t6.dependencyId = n6, t6.dependentRepresentation = new oe(), t6.dependentRepresentation.id = n6;
        }
        e5.hasOwnProperty(Vt.default.MIME_TYPE) && (t6.mimeType = e5[Vt.default.MIME_TYPE]), e5.hasOwnProperty(Vt.default.CODEC_PRIVATE_DATA) && (t6.codecPrivateData = e5.codecPrivateData), e5.hasOwnProperty(Vt.default.BANDWITH) && (t6.bandwidth = e5.bandwidth, t6.bitrateInKbit = e5.bandwidth / 1e3), e5.hasOwnProperty(Vt.default.WIDTH) && (t6.width = e5.width), e5.hasOwnProperty(Vt.default.HEIGHT) && (t6.height = e5.height), e5.hasOwnProperty(Vt.default.SCAN_TYPE) && (t6.scanType = e5.scanType), e5.hasOwnProperty(Vt.default.FRAMERATE) && (t6.frameRate = T3(e5)), e5.hasOwnProperty(Vt.default.QUALITY_RANKING) && (t6.qualityRanking = e5[Vt.default.QUALITY_RANKING]), e5.hasOwnProperty(Vt.default.MAX_PLAYOUT_RATE) && (t6.maxPlayoutRate = e5.maxPlayoutRate), t6.essentialProperties = S3(e5), t6.supplementalProperties = w3(e5), t6.segmentSequenceProperties = I3(e5), t6.path = [n5.period.index, n5.index, r5];
      }(l4, e4, n4, t5, i4);
      const { segmentInfo: o3, segmentInfoType: s3 } = function(t6) {
        let e5, n5;
        return t6.hasOwnProperty(Vt.default.SEGMENT_BASE) ? (e5 = t6.SegmentBase, n5 = Vt.default.SEGMENT_BASE) : t6.hasOwnProperty(Vt.default.SEGMENT_LIST) ? (e5 = t6.SegmentList, n5 = e5.hasOwnProperty(Vt.default.SEGMENT_TIMELINE) ? Vt.default.SEGMENT_TIMELINE : Vt.default.SEGMENT_LIST) : t6.hasOwnProperty(Vt.default.SEGMENT_TEMPLATE) ? (e5 = t6.SegmentTemplate, n5 = e5.hasOwnProperty(Vt.default.SEGMENT_TIMELINE) ? Vt.default.SEGMENT_TIMELINE : Vt.default.SEGMENT_TEMPLATE) : n5 = Vt.default.BASE_URL, { segmentInfo: e5, segmentInfoType: n5 };
      }(e4);
      return l4.segmentInfoType = s3, function(t6, e5, n5, a4, r5, i5) {
        if (t6) {
          if (t6.hasOwnProperty(Vt.default.INITIALIZATION_MINUS) && (n5.initialization = t6.initialization.split("$Bandwidth$").join(r5.bandwidth).split("$RepresentationID$").join(r5.id)), t6.hasOwnProperty(Vt.default.INITIALIZATION)) {
            const e6 = t6.Initialization;
            e6.hasOwnProperty(Vt.default.SOURCE_URL) && (n5.initialization = e6.sourceURL), e6.hasOwnProperty(Vt.default.RANGE) && (n5.range = e6.range);
          } else
            d3(a4) && u3(a4) && a4.mimeType && -1 === a4.mimeType.indexOf("application/mp4") && (n5.range = 0);
          t6.hasOwnProperty(Vt.default.TIMESCALE) && (n5.timescale = t6.timescale), t6.hasOwnProperty(Vt.default.DURATION) ? n5.segmentDuration = t6.duration / n5.timescale : e5 === Vt.default.SEGMENT_TIMELINE && (n5.segmentDuration = function(t7) {
            if (!t7 || !t7.S)
              return NaN;
            let e6 = t7.S[0], n6 = t7.S[1];
            return e6.hasOwnProperty("d") ? e6.d : n6.t - e6.t;
          }(t6.SegmentTimeline) / n5.timescale), t6.hasOwnProperty(Vt.default.MEDIA) && (n5.media = t6.media), t6.hasOwnProperty(Vt.default.START_NUMBER) && (n5.startNumber = parseInt(t6.startNumber)), t6.hasOwnProperty(Vt.default.INDEX_RANGE) && (n5.indexRange = t6.indexRange), t6.hasOwnProperty(Vt.default.PRESENTATION_TIME_OFFSET) && (n5.presentationTimeOffset = t6.presentationTimeOffset / n5.timescale), t6.hasOwnProperty(Vt.default.AVAILABILITY_TIME_OFFSET) ? n5.availabilityTimeOffset = t6.availabilityTimeOffset : i5 && void 0 !== i5.availabilityTimeOffset && (n5.availabilityTimeOffset = i5.availabilityTimeOffset), t6.hasOwnProperty(Vt.default.AVAILABILITY_TIME_COMPLETE) ? n5.availabilityTimeComplete = "false" !== t6.availabilityTimeComplete : i5 && void 0 !== i5.availabilityTimeComplete && (n5.availabilityTimeComplete = i5.availabilityTimeComplete), t6.hasOwnProperty(Vt.default.END_NUMBER) && (n5.endNumber = t6[Vt.default.END_NUMBER]), n5.mseTimeOffset = function(t7) {
            const e6 = t7.presentationTimeOffset;
            return t7.adaptation.period.start - e6;
          }(n5);
        }
      }(o3, s3, l4, a3, e4, r4), function(t6) {
        isNaN(t6.width) || isNaN(t6.height) || isNaN(t6.frameRate) || (t6.pixelsPerSecond = Math.max(1, t6.width * t6.height * t6.frameRate), isNaN(t6.bandwidth) || (t6.bitsPerPixel = t6.bandwidth / t6.pixelsPerSecond));
      }(l4), l4;
    }
    function A2(t5) {
      return s2(t5, m2.default.MUXED) ? m2.default.MUXED : s2(t5, m2.default.AUDIO) ? m2.default.AUDIO : function(t6) {
        return s2(t6, m2.default.VIDEO);
      }(t5) ? m2.default.VIDEO : d3(t5) ? m2.default.TEXT : function(t6) {
        return s2(t6, m2.default.IMAGE);
      }(t5) ? m2.default.IMAGE : (e3.warn("Unknown Preselection stream type"), null);
    }
    function R2(t5, e4) {
      if (t5 && t5.hasOwnProperty(Vt.default.PRESELECTION_COMPONENTS) && Array.isArray(e4))
        return String(t5.preselectionComponents).split(" ").map((t6) => e4.find((e5) => e5.id === t6));
    }
    function N2(t5, e4) {
      if (!t5 || !t5.hasOwnProperty(Vt.default.PRESELECTION_COMPONENTS) || !Array.isArray(e4))
        return;
      const n4 = String(t5.preselectionComponents).split(" ");
      return e4.find((t6) => t6.id === n4[0]);
    }
    function C2(t5, e4) {
      if (!t5)
        throw new Error("Period cannot be null or undefined");
      let n4 = re.DEFAULT_ID + "_" + e4;
      return t5.hasOwnProperty(Vt.default.ID) && t5.id.toString().length > 0 && "__proto__" !== t5.id && (n4 = t5.id.toString()), n4;
    }
    function D2(t5, e4, n4) {
      const a3 = [];
      let r4;
      if (!t5)
        return a3;
      for (r4 = 0; r4 < t5.length; r4++) {
        const i4 = new Jt();
        if (i4.timescale = 1, i4.representation = e4, !t5[r4].hasOwnProperty(m2.default.SCHEME_ID_URI))
          throw new Error("Invalid EventStream. SchemeIdUri has to be set");
        i4.schemeIdUri = t5[r4].schemeIdUri, t5[r4].hasOwnProperty(Vt.default.TIMESCALE) && (i4.timescale = t5[r4].timescale), t5[r4].hasOwnProperty(Vt.default.VALUE) && (i4.value = t5[r4].value), a3.push(i4), i4.period = n4;
      }
      return a3;
    }
    function x2(t5) {
      const e4 = [], n4 = t5.BaseURL || [t5.baseUri];
      let a3 = false;
      return n4.some((n5) => {
        if (n5) {
          const r4 = new Yt();
          let l4 = n5.__text || n5;
          return i3.isRelative(l4) && (a3 = true, t5.baseUri && (l4 = i3.resolve(l4, t5.baseUri))), r4.url = l4, n5.hasOwnProperty(Vt.default.SERVICE_LOCATION) && n5.serviceLocation.length ? r4.serviceLocation = n5.serviceLocation : r4.serviceLocation = l4, n5.hasOwnProperty(Vt.default.DVB_PRIORITY) && (r4.dvbPriority = n5[Vt.default.DVB_PRIORITY]), n5.hasOwnProperty(Vt.default.DVB_WEIGHT) && (r4.dvbWeight = n5[Vt.default.DVB_WEIGHT]), n5.hasOwnProperty(Vt.default.AVAILABILITY_TIME_OFFSET) && (r4.availabilityTimeOffset = n5[Vt.default.AVAILABILITY_TIME_OFFSET]), n5.hasOwnProperty(Vt.default.AVAILABILITY_TIME_COMPLETE) && (r4.availabilityTimeComplete = "false" !== n5[Vt.default.AVAILABILITY_TIME_COMPLETE]), e4.push(r4), a3;
        }
      }), e4;
    }
    function M2(t5) {
      const e4 = new Xt();
      return e4.serverUrl = t5.__text, t5.hasOwnProperty(Vt.default.DEFAULT_SERVICE_LOCATION) && (e4.defaultServiceLocation = t5[Vt.default.DEFAULT_SERVICE_LOCATION], e4.defaultServiceLocationArray = e4.defaultServiceLocation.split(" ")), t5.hasOwnProperty(Vt.default.QUERY_BEFORE_START) && (e4.queryBeforeStart = "true" === t5[Vt.default.QUERY_BEFORE_START].toLowerCase()), t5.hasOwnProperty(Vt.default.CLIENT_REQUIREMENT) && (e4.clientRequirement = "false" !== t5[Vt.default.CLIENT_REQUIREMENT].toLowerCase()), e4;
    }
    function P2(t5) {
      const e4 = new $t();
      return t5.hasOwnProperty(Vt.default.CMCD_PARAMETERS) && t5[Vt.default.CMCD_PARAMETERS].schemeIdUri === m2.default.CTA_5004_2023_SCHEME && (e4.cmcdParameters = new Wt(), e4.cmcdParameters.init(t5[Vt.default.CMCD_PARAMETERS])), t5.hasOwnProperty(Vt.default.SERVICE_LOCATIONS) && "" !== t5[Vt.default.SERVICE_LOCATIONS] && (e4.serviceLocations = t5[Vt.default.SERVICE_LOCATIONS], e4.serviceLocationsArray = e4.serviceLocations.toString().split(" ")), t5.hasOwnProperty(Vt.default.ADAPTATION_SETS) && "" !== t5[Vt.default.ADAPTATION_SETS] && (e4.adaptationSets = t5[Vt.default.ADAPTATION_SETS], e4.adaptationSetsArray = e4.adaptationSets.toString().split(" ")), e4;
    }
    return t4 = { getAccessibilityForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.ACCESSIBILITY) && t5[Vt.default.ACCESSIBILITY].length ? t5[Vt.default.ACCESSIBILITY].map((t6) => {
        const e4 = new Kt();
        return e4.init(t6), e4;
      }) : [];
    }, getAdaptationForId: function(t5, e4, n4) {
      const a3 = f3(e4, n4);
      let r4, i4;
      for (r4 = 0, i4 = a3.length; r4 < i4; r4++)
        if (a3[r4].hasOwnProperty(Vt.default.ID) && a3[r4].id === t5)
          return a3[r4];
      return null;
    }, getAdaptationForIndex: function(t5, e4, n4) {
      const a3 = f3(e4, n4);
      return a3.length > 0 && l3(t5) ? a3[t5] : null;
    }, getAdaptationsForPeriod: function(t5) {
      const e4 = t5 && l3(t5.index) ? t5.mpd.manifest.Period[t5.index] : null, n4 = [];
      let a3, r4, i4;
      if (e4 && e4.AdaptationSet)
        for (i4 = 0; i4 < e4.AdaptationSet.length; i4++)
          r4 = e4.AdaptationSet[i4], a3 = new Gt(), r4.hasOwnProperty(Vt.default.ID) && (a3.id = r4.id), a3.index = i4, a3.period = t5, a3.type = A2(r4), n4.push(a3);
      return n4;
    }, getAdaptationsForType: function(t5, e4, n4) {
      const a3 = f3(t5, e4);
      let r4, i4;
      const l4 = [];
      for (r4 = 0, i4 = a3.length; r4 < i4; r4++)
        s2(a3[r4], n4) && l4.push(c3(a3[r4]));
      return l4;
    }, getAudioChannelConfigurationForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.AUDIO_CHANNEL_CONFIGURATION) && t5[Vt.default.AUDIO_CHANNEL_CONFIGURATION].length ? t5[Vt.default.AUDIO_CHANNEL_CONFIGURATION].map((t6) => {
        const e4 = new Kt();
        return e4.init(t6), e4;
      }) : [];
    }, getAudioChannelConfigurationForRepresentation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.AUDIO_CHANNEL_CONFIGURATION) && t5[Vt.default.AUDIO_CHANNEL_CONFIGURATION].length ? t5[Vt.default.AUDIO_CHANNEL_CONFIGURATION].map((t6) => {
        const e4 = new Kt();
        return e4.init(t6), e4;
      }) : [];
    }, getAvailabilityStartTime: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.AVAILABILITY_START_TIME) && null !== t5.availabilityStartTime ? t5.availabilityStartTime.getTime() : null;
    }, getBandwidth: function(t5) {
      return t5 && t5.bandwidth ? t5.bandwidth : NaN;
    }, getBaseURLsFromElement: x2, getBitrateListForAdaptation: function(t5) {
      const e4 = c3(t5);
      return (e4 && e4.Representation ? e4.Representation : []).map((t6) => ({ bandwidth: t6.bandwidth, width: t6.width || 0, height: t6.height || 0, scanType: t6.scanType || null, id: t6.id || null }));
    }, getCodec: h3, getCodecForPreselection: function(t5, n4, a3) {
      let r4 = null;
      if (t5 && n4) {
        let i4 = h3(N2(t5, n4), 0, a3);
        if (t5.hasOwnProperty(Vt.default.CODECS)) {
          let n5 = t5.codecs;
          r4 = i4.replace(/(codecs=")[^"]*(")/, `$1${n5}$2`), e3.info("Preselection has own codecs-attribute: replacing in MainAdaptationSet (was: " + i4 + "), new Preselection codec is: " + r4);
        } else
          r4 = i4;
      }
      return r4;
    }, getCombinedEssentialPropertiesForAdaptationSet: function(t5) {
      return v3(Vt.default.ESSENTIAL_PROPERTY, t5);
    }, getCombinedSupplementalPropertiesForAdaptationSet: function(t5) {
      return v3(Vt.default.SUPPLEMENTAL_PROPERTY, t5);
    }, getContentProtectionByAdaptation: function(t5) {
      return y3(t5);
    }, getContentProtectionByManifest: function(t5) {
      let e4 = [];
      if (!t5)
        return e4;
      const n4 = y3(t5);
      return e4 = e4.concat(n4), t5.hasOwnProperty(Vt.default.PERIOD) && t5[Vt.default.PERIOD].length > 0 && t5[Vt.default.PERIOD].forEach((t6) => {
        const n5 = b3(t6);
        e4 = e4.concat(n5);
      }), e4;
    }, getContentProtectionByPeriod: b3, getContentSteering: function(t5) {
      if (t5 && t5.hasOwnProperty(Vt.default.CONTENT_STEERING))
        return M2(t5[Vt.default.CONTENT_STEERING][0]);
    }, getDuration: function(t5) {
      let e4;
      return e4 = t5 && t5.hasOwnProperty(Vt.default.MEDIA_PRESENTATION_DURATION) ? t5.mediaPresentationDuration : t5 && "dynamic" === t5.type ? Number.POSITIVE_INFINITY : Number.MAX_SAFE_INTEGER || Number.MAX_VALUE, e4;
    }, getEssentialProperties: S3, getEventStreamForAdaptationSet: function(t5, e4, n4) {
      let a3, r4, i4;
      return t5 && t5.Period && e4 && e4.period && l3(e4.period.index) && (r4 = t5.Period[e4.period.index], r4 && r4.AdaptationSet && l3(e4.index) && (i4 = r4.AdaptationSet[e4.index], i4 && (a3 = i4.InbandEventStream))), D2(a3, null, n4);
    }, getEventStreamForRepresentation: function(t5, e4, n4) {
      let a3, r4, i4, o3;
      return t5 && t5.Period && e4 && e4.adaptation && e4.adaptation.period && l3(e4.adaptation.period.index) && (r4 = t5.Period[e4.adaptation.period.index], r4 && r4.AdaptationSet && l3(e4.adaptation.index) && (i4 = r4.AdaptationSet[e4.adaptation.index], i4 && i4.Representation && l3(e4.index) && (o3 = i4.Representation[e4.index], o3 && (a3 = o3.InbandEventStream)))), D2(a3, e4, n4);
    }, getEventsForPeriod: function(t5) {
      const e4 = t5 && t5.mpd && t5.mpd.manifest ? t5.mpd.manifest : null, n4 = e4 ? e4.Period : null, r4 = n4 && t5 && l3(t5.index) ? n4[t5.index].EventStream : null, i4 = [];
      let o3, s3;
      if (r4)
        for (o3 = 0; o3 < r4.length; o3++) {
          const e5 = new Jt();
          if (e5.period = t5, e5.timescale = 1, !r4[o3].hasOwnProperty(m2.default.SCHEME_ID_URI))
            throw new Error("Invalid EventStream. SchemeIdUri has to be set");
          for (e5.schemeIdUri = r4[o3][m2.default.SCHEME_ID_URI], r4[o3].hasOwnProperty(Vt.default.TIMESCALE) && (e5.timescale = r4[o3][Vt.default.TIMESCALE]), r4[o3].hasOwnProperty(Vt.default.VALUE) && (e5.value = r4[o3][Vt.default.VALUE]), r4[o3].hasOwnProperty(Vt.default.PRESENTATION_TIME_OFFSET) && (e5.presentationTimeOffset = r4[o3][Vt.default.PRESENTATION_TIME_OFFSET]), s3 = 0; r4[o3].Event && s3 < r4[o3].Event.length; s3++) {
            const n5 = r4[o3].Event[s3], l4 = new Zt();
            l4.presentationTime = 0, l4.eventStream = e5, n5.hasOwnProperty(Vt.default.PRESENTATION_TIME) && (l4.presentationTime = n5.presentationTime);
            const u4 = e5.presentationTimeOffset ? e5.presentationTimeOffset / e5.timescale : 0;
            l4.calculatedPresentationTime = l4.presentationTime / e5.timescale + t5.start - u4, n5.hasOwnProperty(Vt.default.DURATION) && (l4.duration = n5.duration / e5.timescale), n5.hasOwnProperty(Vt.default.ID) ? l4.id = parseInt(n5.id) : l4.id = null, n5.Signal && n5.Signal.Binary && n5.Signal.Binary.__text ? l4.messageData = a2.decodeArray(n5.Signal.Binary.__text.toString()) : l4.messageData = n5.messageData || n5.__cdata || n5.__text, i4.push(l4);
          }
        }
      return i4;
    }, getFramerate: T3, getId: function(t5) {
      return t5 && t5[Vt.default.ID] || null;
    }, getIndexForAdaptation: function(t5, e4, n4) {
      if (!t5)
        return -1;
      const a3 = f3(e4, n4);
      for (let e5 = 0; e5 < a3.length; e5++)
        if ((0, _t.default)(r3).getInstance().areEqual(a3[e5], t5))
          return e5;
      return -1;
    }, getIsDynamic: E3, getIsFragmented: u3, getIsText: d3, getIsTypeOf: s2, getLabelsForAdaptation: function(t5) {
      if (!t5 || !t5.Label)
        return [];
      const e4 = [];
      for (let n4 = 0; n4 < t5.Label.length; n4++)
        e4.push({ lang: t5.Label[n4].lang, text: t5.Label[n4].__text || t5.Label[n4] });
      return e4;
    }, getLanguageForAdaptation: function(t5) {
      let e4 = "";
      return t5 && t5.hasOwnProperty(Vt.default.LANG) && (e4 = t5.lang), e4;
    }, getLocation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.LOCATION) ? t5[Vt.default.LOCATION].map((t6) => {
        const e4 = t6.__text || t6, n4 = t6.hasOwnProperty(Vt.default.SERVICE_LOCATION) ? t6[Vt.default.SERVICE_LOCATION] : null;
        return new ee(e4, n4);
      }) : [];
    }, getMainAdaptationSetForPreselection: N2, getCommonRepresentationForPreselection: function(t5, e4) {
      if (!t5 || !Array.isArray(e4))
        return;
      const n4 = N2(t5, e4);
      return n4 ? n4.Representation[0] : void 0;
    }, getManifestUpdatePeriod: function(t5, e4 = 0) {
      let n4 = NaN;
      return t5 && t5.hasOwnProperty(Vt.default.MINIMUM_UPDATE_PERIOD) && (n4 = t5.minimumUpdatePeriod), isNaN(n4) ? n4 : Math.max(n4 - e4, 1);
    }, getMimeType: function(t5) {
      return t5 && t5.Representation && t5.Representation.length > 0 ? t5.Representation[0].mimeType : null;
    }, getMpd: function(t5) {
      const e4 = new te();
      return t5 && (e4.manifest = t5, t5.hasOwnProperty(Vt.default.AVAILABILITY_START_TIME) ? e4.availabilityStartTime = new Date(t5.availabilityStartTime.getTime()) : t5.loadedTime && (e4.availabilityStartTime = new Date(t5.loadedTime.getTime())), t5.hasOwnProperty(Vt.default.AVAILABILITY_END_TIME) && (e4.availabilityEndTime = new Date(t5.availabilityEndTime.getTime())), t5.hasOwnProperty(Vt.default.MINIMUM_UPDATE_PERIOD) && (e4.minimumUpdatePeriod = t5.minimumUpdatePeriod), t5.hasOwnProperty(Vt.default.MEDIA_PRESENTATION_DURATION) && (e4.mediaPresentationDuration = t5.mediaPresentationDuration), t5.hasOwnProperty(Vt.default.SUGGESTED_PRESENTATION_DELAY) && (e4.suggestedPresentationDelay = t5.suggestedPresentationDelay), t5.hasOwnProperty(Vt.default.TIMESHIFT_BUFFER_DEPTH) && (e4.timeShiftBufferDepth = t5.timeShiftBufferDepth), t5.hasOwnProperty(Vt.default.MAX_SEGMENT_DURATION) && (e4.maxSegmentDuration = t5.maxSegmentDuration), t5.hasOwnProperty(Vt.default.PUBLISH_TIME) && (e4.publishTime = new Date(t5.publishTime))), e4;
    }, getPatchLocation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.PATCH_LOCATION) ? t5[Vt.default.PATCH_LOCATION].map((t6) => {
        const e4 = t6.__text || t6, n4 = t6.hasOwnProperty(Vt.default.SERVICE_LOCATION) ? t6[Vt.default.SERVICE_LOCATION] : null;
        let a3 = t6.hasOwnProperty(Vt.default.TTL) ? 1e3 * parseFloat(t6[Vt.default.TTL]) : NaN;
        return new ne(e4, n4, a3);
      }) : [];
    }, getPreselectionIsTypeOf: function(t5, e4, n4) {
      if (!t5)
        throw new Error("preselection is not defined");
      if (!e4)
        throw new Error("adaptations is not defined");
      if (!n4)
        throw new Error("type is not defined");
      const a3 = N2(t5, e4);
      return !!a3 && s2(a3, n4);
    }, getPreselectionsForPeriod: function(t5) {
      const n4 = t5 && l3(t5.index) ? t5.mpd.manifest.Period[t5.index] : null, a3 = [];
      let r4, i4, o3;
      if (n4 && n4.Preselection)
        for (o3 = 0; o3 < n4.Preselection.length; o3++) {
          i4 = n4.Preselection[o3], r4 = new ie();
          const l4 = R2(i4, n4.AdaptationSet);
          l4.every((t6) => !!t6) && 1 === l4.length ? (i4.hasOwnProperty(Vt.default.ID) && (r4.id = i4.id), r4.index = o3, r4.period = t5, i4.hasOwnProperty(Vt.default.TAG) && (r4.tag = i4.tag), i4.hasOwnProperty(Vt.default.PRESELECTION_COMPONENTS) ? r4.preselectionComponents = l4 : e3.warn("Preselection (index: " + r4.index + ") missing component(s)"), i4.hasOwnProperty(Vt.default.ORDER) && (r4.order = i4.order), r4.type = A2(l4[0]), a3.push(r4)) : e3.warn("Preselection removed because we don't support multi-representation preselections or not all components available.");
        }
      return a3;
    }, getProducerReferenceTimesForAdaptation: function(t5) {
      const e4 = t5 && t5.hasOwnProperty(Vt.default.PRODUCER_REFERENCE_TIME) ? t5[Vt.default.PRODUCER_REFERENCE_TIME] : [];
      (t5 && t5.hasOwnProperty(Vt.default.REPRESENTATION) ? t5[Vt.default.REPRESENTATION] : []).forEach((t6) => {
        t6.hasOwnProperty(Vt.default.PRODUCER_REFERENCE_TIME) && e4.push(...t6[Vt.default.PRODUCER_REFERENCE_TIME]);
      });
      const n4 = [];
      return e4.forEach((t6) => {
        const e5 = new le();
        t6.hasOwnProperty(Vt.default.ID) && (e5[Vt.default.ID] = parseInt(t6[Vt.default.ID]), t6.hasOwnProperty(Vt.default.WALL_CLOCK_TIME) && (e5[Vt.default.WALL_CLOCK_TIME] = t6[Vt.default.WALL_CLOCK_TIME], t6.hasOwnProperty(Vt.default.PRESENTATION_TIME) && (e5[Vt.default.PRESENTATION_TIME] = t6[Vt.default.PRESENTATION_TIME], t6.hasOwnProperty(Vt.default.INBAND) && (e5[Vt.default.INBAND] = "false" !== t6[Vt.default.INBAND]), t6.hasOwnProperty(Vt.default.TYPE) && (e5[Vt.default.TYPE] = t6[Vt.default.TYPE]), n4.push(e5))));
      }), n4;
    }, getPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.PUBLISH_TIME) ? new Date(t5[Vt.default.PUBLISH_TIME]) : null;
    }, getRealPeriodForIndex: function(t5, e4) {
      const n4 = g3(e4);
      return n4.length > 0 && l3(t5) ? n4[t5] : null;
    }, getRealPeriods: g3, getRegularPeriods: function(t5) {
      const a3 = !!t5 && E3(t5.manifest), r4 = [];
      let i4, l4, o3 = null, s3 = null, u4 = null, d4 = null;
      for (l4 = 0, i4 = t5 && t5.manifest && t5.manifest.Period ? t5.manifest.Period.length : 0; l4 < i4; l4++)
        s3 = t5.manifest.Period[l4], s3.hasOwnProperty(Vt.default.START) ? (d4 = new re(), d4.start = s3.start) : null !== o3 && o3.hasOwnProperty(Vt.default.DURATION) && null !== u4 ? (d4 = new re(), d4.start = parseFloat((u4.start + u4.duration).toFixed(5))) : 0 !== l4 || a3 || (d4 = new re(), d4.start = 0), null !== u4 && isNaN(u4.duration) && (null !== d4 ? u4.duration = parseFloat((d4.start - u4.start).toFixed(5)) : e3.warn("First period duration could not be calculated because lack of start and duration period properties. This will cause timing issues during playback")), null !== d4 && (d4.id = C2(s3, l4), d4.index = l4, d4.mpd = t5, d4.isEncrypted = p3(s3), s3.hasOwnProperty(Vt.default.DURATION) && (d4.duration = s3.duration), u4 && (u4.nextPeriodId = d4.id), r4.push(d4), o3 = s3, u4 = d4), s3 = null, d4 = null;
      return 0 === r4.length || null !== u4 && isNaN(u4.duration) && (u4.duration = parseFloat((function(t6) {
        !function() {
          if (!n3 || !n3.hasOwnProperty("error"))
            throw new Error(m2.default.MISSING_CONFIG_ERROR);
        }();
        const e4 = E3(t6.mpd.manifest);
        let a4;
        return t6.mpd.manifest.mediaPresentationDuration ? a4 = t6.mpd.manifest.mediaPresentationDuration : t6.duration ? a4 = t6.duration : e4 ? a4 = Number.POSITIVE_INFINITY : n3.error(new Ot.default(Rt.MANIFEST_ERROR_ID_PARSE_CODE, "Must have @mediaPresentationDuration on MPD or an explicit @duration on the last period.", t6)), a4;
      }(u4) - u4.start).toFixed(5))), r4;
    }, getRepresentationCount: function(t5) {
      return t5 && t5.Representation ? t5.Representation.length : 0;
    }, getRepresentationFor: function(t5, e4) {
      return e4 && e4.Representation && e4.Representation.length > 0 && l3(t5) ? e4.Representation[t5] : null;
    }, getRepresentationSortFunction: function() {
      return (t5, e4) => t5.bandwidth - e4.bandwidth;
    }, getRepresentationsForAdaptation: function(t5, e4) {
      const n4 = [], a3 = function(t6) {
        if (t6 && t6.period && l3(t6.period.index)) {
          const e5 = t6.period.mpd.manifest.Period[t6.period.index];
          if (e5 && e5.AdaptationSet && l3(t6.index))
            return c3(e5.AdaptationSet[t6.index]);
        }
      }(t5);
      let r4;
      if (a3 && a3.Representation) {
        if (t5 && t5.period && l3(t5.period.index)) {
          const e5 = x2(t5.period.mpd.manifest);
          e5 && (r4 = e5[0]);
        }
        for (let i4 = 0, l4 = a3.Representation.length; i4 < l4; ++i4) {
          const l5 = k3(e4, a3.Representation[i4], t5, a3, r4, i4);
          n4.push(l5);
        }
      }
      return n4;
    }, getRolesForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.ROLE) && t5[Vt.default.ROLE].length ? t5[Vt.default.ROLE].map((t6) => {
        t6.schemeIdUri === m2.default.DASH_ROLE_SCHEME_ID && "Main" === t6.value && (t6.value = Vt.default.MAIN);
        const e4 = new Kt();
        return e4.init(t6), e4;
      }) : [];
    }, getSegmentAlignment: function(t5) {
      return !(!t5 || !t5.hasOwnProperty(Vt.default.SEGMENT_ALIGNMENT)) && "true" === t5[Vt.default.SEGMENT_ALIGNMENT];
    }, getSegmentSequencePropertiesForAdaptationSet: function(t5) {
      const e4 = [];
      return t5 ? (e4.push(...I3(t5)), t5.Representation && t5.Representation.length && t5.Representation.forEach((t6) => {
        e4.push(...I3(t6));
      }), e4) : e4;
    }, getSelectionPriority: function(t5) {
      try {
        const e4 = t5 && void 0 !== t5.selectionPriority ? parseInt(t5.selectionPriority) : 1;
        return isNaN(e4) ? 1 : e4;
      } catch (t6) {
        return 1;
      }
    }, getServiceDescriptions: function(t5) {
      const e4 = [];
      if (t5 && t5.hasOwnProperty(Vt.default.SERVICE_DESCRIPTION))
        for (const n4 of t5.ServiceDescription) {
          let t6 = null, a3 = null, r4 = null, i4 = null, l4 = null, o3 = null, s3 = null, u4 = null;
          for (const e5 in n4)
            if (n4.hasOwnProperty(e5))
              if (e5 === Vt.default.ID)
                t6 = n4[e5];
              else if (e5 === Vt.default.SERVICE_DESCRIPTION_SCOPE)
                a3 = n4[e5].schemeIdUri;
              else if (e5 === Vt.default.SERVICE_DESCRIPTION_LATENCY)
                r4 = { target: parseInt(n4[e5].target), max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), referenceId: parseInt(n4[e5].referenceId) };
              else if (e5 === Vt.default.SERVICE_DESCRIPTION_PLAYBACK_RATE)
                i4 = { max: parseFloat(n4[e5].max), min: parseFloat(n4[e5].min) };
              else if (e5 === Vt.default.SERVICE_DESCRIPTION_OPERATING_QUALITY)
                l4 = { mediaType: n4[e5].mediaType, max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), target: parseInt(n4[e5].target), type: n4[e5].type, maxQualityDifference: parseInt(n4[e5].maxQualityDifference) };
              else if (e5 === Vt.default.SERVICE_DESCRIPTION_OPERATING_BANDWIDTH)
                o3 = { mediaType: n4[e5].mediaType, max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), target: parseInt(n4[e5].target) };
              else if (e5 === Vt.default.CONTENT_STEERING) {
                let t7 = n4[e5];
                t7 = Array.isArray(t7) ? t7.at(t7.length - 1) : t7, s3 = M2(t7);
              } else
                e5 === Vt.default.CLIENT_DATA_REPORTING && (u4 = P2(n4[e5]));
          e4.push({ id: t6, schemeIdUri: a3, latency: r4, playbackRate: i4, operatingQuality: l4, operatingBandwidth: o3, contentSteering: s3, clientDataReporting: u4 });
        }
      return e4;
    }, getSubSegmentAlignment: function(t5) {
      return !(!t5 || !t5.hasOwnProperty(Vt.default.SUB_SEGMENT_ALIGNMENT)) && "true" === t5[Vt.default.SUB_SEGMENT_ALIGNMENT];
    }, getSuggestedPresentationDelay: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.SUGGESTED_PRESENTATION_DELAY) ? t5.suggestedPresentationDelay : null;
    }, getSupplementalProperties: w3, getUTCTimingSources: function(t5) {
      const e4 = E3(t5), n4 = !!t5 && t5.hasOwnProperty(Vt.default.AVAILABILITY_START_TIME), a3 = t5 ? t5.UTCTiming : null, r4 = [];
      return (e4 || n4) && a3 && a3.forEach(function(t6) {
        const e5 = new fe.default();
        t6.hasOwnProperty(m2.default.SCHEME_ID_URI) && (e5.schemeIdUri = t6.schemeIdUri, t6.hasOwnProperty(Vt.default.VALUE) && (e5.value = t6.value.toString(), r4.push(e5)));
      }), r4;
    }, getViewpointForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.VIEWPOINT) && t5[Vt.default.VIEWPOINT].length ? t5[Vt.default.VIEWPOINT].map((t6) => {
        const e4 = new Kt();
        return e4.init(t6), e4;
      }) : [];
    }, hasProfile: function(t5, e4) {
      let n4 = false;
      return t5 && t5.profiles && t5.profiles.length > 0 && (n4 = -1 !== t5.profiles.indexOf(e4)), n4;
    }, isPeriodEncrypted: p3, setConfig: function(t5) {
      t5 && (t5.errHandler && (n3 = t5.errHandler), t5.BASE64 && (a2 = t5.BASE64));
    } }, e3 = (0, o2.default)(r3).getInstance().getLogger(t4), t4;
  }
  me.__dashjs_factory_name = "DashManifestModel";
  var he = r2.default.getSingletonFactory(me);
  const pe = "utf-16", be = "utf-16be", ye = "utf-16le", Ee = "utf-8";
  function Te(t4, e3) {
    if (t4 < 0)
      return -Te(-t4, e3);
    const n3 = Math.pow(10, e3);
    if (Math.abs(t4 * n3 % 1 - 0.5) < Number.EPSILON) {
      const e4 = Math.floor(t4 * n3);
      return (e4 % 2 == 0 ? e4 : e4 + 1) / n3;
    }
    return Math.round(t4 * n3) / n3;
  }
  const _e = /&(?:amp|lt|gt|quot|apos|nbsp|lrm|rlm|#[xX]?[0-9a-fA-F]+);/g;
  function ve(t4) {
    return -1 === t4.indexOf("&") ? t4 : t4.replace(_e, (t5) => {
      switch (t5) {
        case "&amp;":
          return "&";
        case "&lt;":
          return "<";
        case "&gt;":
          return ">";
        case "&quot;":
          return '"';
        case "&apos;":
          return "'";
        case "&nbsp;":
          return " ";
        case "&lrm;":
          return "‎";
        case "&rlm;":
          return "‏";
        default:
          if ("#" === t5[1]) {
            const e3 = "x" === t5[2] || "X" === t5[2] ? parseInt(t5.slice(3), 16) : parseInt(t5.slice(2), 10);
            return String.fromCodePoint(e3);
          }
          return t5;
      }
    });
  }
  var Se = class t4 {
    constructor(e3, n3) {
      Array.isArray(e3) && (e3 = e3.map((e4) => e4 instanceof t4 ? e4 : new t4(e4))), this.value = e3, this.params = n3;
    }
  };
  const we = "Dict";
  function Ie(t4, e3) {
    return { value: t4, src: e3 };
  }
  function ke(t4, e3, n3, a2) {
    return new Error(`failed to ${t4} "${r3 = e3, Array.isArray(r3) ? JSON.stringify(r3) : r3 instanceof Map ? "Map{}" : r3 instanceof Set ? "Set{}" : "object" == typeof r3 ? JSON.stringify(r3) : String(r3)}" as ${n3}`, { cause: a2 });
    var r3;
  }
  function Ae(t4, e3, n3) {
    return ke("parse", t4, e3, n3);
  }
  const Re = "Inner List", Ne = "Bare Item", Ce = "Boolean", De = "Byte Sequence", xe = "Date", Me = "Decimal", Pe = "Integer", Oe = `${Pe} or ${Me}`;
  function ze(t4) {
    return t4 < -999999999999999 || 999999999999999 < t4;
  }
  function Le(t4) {
    let e3, n3 = 1, a2 = "";
    const r3 = Ae(t4, Oe);
    if ("-" === t4[0] && (n3 = -1, t4 = t4.substring(1)), t4.length <= 0)
      throw r3;
    const i3 = /^(\d+)?/g, l3 = i3.exec(t4);
    if (0 === l3[0].length)
      throw r3;
    if (a2 += l3[1], "." === (t4 = t4.substring(i3.lastIndex))[0]) {
      if (a2.length > 12)
        throw r3;
      const i4 = /^(\.\d+)?/g, l4 = i4.exec(t4);
      if (t4 = t4.substring(i4.lastIndex), 0 === l4[0].length || l4[1].length > 4)
        throw r3;
      if (a2 += l4[1], a2.length > 16)
        throw r3;
      e3 = parseFloat(a2) * n3;
    } else {
      if (a2.length > 15)
        throw r3;
      if (e3 = parseInt(a2) * n3, ze(e3))
        throw Ae(a2, Oe);
    }
    return Ie(e3, t4);
  }
  const Fe = "String", Ue = /[\x00-\x1f\x7f]+/;
  var je = class {
    constructor(t4) {
      this.description = t4;
    }
  };
  const qe = "Token";
  function Be(t4, e3) {
    const n3 = t4[0];
    if ('"' === n3)
      return function(t5) {
        let e4 = "", n4 = 0;
        if ('"' !== t5[n4])
          throw Ae(t5, Fe);
        for (n4++; t5.length > n4; ) {
          if ("\\" === t5[n4]) {
            if (t5.length <= n4 + 1)
              throw Ae(t5, Fe);
            if (n4++, '"' !== t5[n4] && "\\" !== t5[n4])
              throw Ae(t5, Fe);
            e4 += t5[n4];
          } else {
            if ('"' === t5[n4])
              return Ie(e4, t5.substring(++n4));
            if (Ue.test(t5[n4]))
              throw Ae(t5, Fe);
            e4 += t5[n4];
          }
          n4++;
        }
        throw Ae(t5, Fe);
      }(t4);
    if (/^[-0-9]/.test(n3))
      return Le(t4);
    if ("?" === n3)
      return function(t5) {
        let e4 = 0;
        if ("?" !== t5[e4])
          throw Ae(t5, Ce);
        if (e4++, "1" === t5[e4])
          return Ie(true, t5.substring(++e4));
        if ("0" === t5[e4])
          return Ie(false, t5.substring(++e4));
        throw Ae(t5, Ce);
      }(t4);
    if (":" === n3)
      return function(t5) {
        if (":" !== t5[0])
          throw Ae(t5, De);
        if (false === (t5 = t5.substring(1)).includes(":"))
          throw Ae(t5, De);
        const e4 = /(^.*?)(:)/g, n4 = e4.exec(t5)[1];
        return t5 = t5.substring(e4.lastIndex), Ie(new Uint8Array([...atob(n4)].map((t6) => t6.charCodeAt(0))), t5);
      }(t4);
    if (/^[a-zA-Z*]/.test(n3))
      return function(t5, e4) {
        if (false === /^[a-zA-Z*]$/.test(t5[0]))
          throw Ae(t5, qe);
        const n4 = /^([!#$%&'*+\-.^_`|~\w:/]+)/g, a2 = n4.exec(t5)[1];
        return t5 = t5.substring(n4.lastIndex), Ie(Symbol.for(a2), t5);
      }(t4);
    if ("@" === n3)
      return function(t5) {
        let e4 = 0;
        if ("@" !== t5[e4])
          throw Ae(t5, xe);
        e4++;
        const n4 = Le(t5.substring(e4));
        if (false === Number.isInteger(n4.value))
          throw Ae(t5, xe);
        return Ie(new Date(1e3 * n4.value), n4.src);
      }(t4);
    throw Ae(t4, Ne);
  }
  const Ge = "Key";
  function He(t4) {
    let e3 = 0;
    if (false === /^[a-z*]$/.test(t4[e3]))
      throw Ae(t4, Ge);
    let n3 = "";
    for (; t4.length > e3; ) {
      if (false === /^[a-z0-9_\-.*]$/.test(t4[e3]))
        return Ie(n3, t4.substring(e3));
      n3 += t4[e3], e3++;
    }
    return Ie(n3, t4.substring(e3));
  }
  function Ye(t4, e3) {
    let n3;
    for (; t4.length > 0 && ";" === t4[0]; ) {
      const a2 = He(t4 = t4.substring(1).trim()), r3 = a2.value;
      let i3 = true;
      if ("=" === (t4 = a2.src)[0]) {
        const n4 = Be(t4 = t4.substring(1));
        i3 = n4.value, t4 = n4.src;
      }
      null == n3 && (n3 = {}), n3[r3] = i3;
    }
    return Ie(n3, t4);
  }
  function Ve(t4, e3) {
    const n3 = Be(t4), a2 = Ye(t4 = n3.src);
    return t4 = a2.src, Ie(new Se(n3.value, a2.value), t4);
  }
  function Ke(t4, e3) {
    return "(" === t4[0] ? function(t5, e4) {
      if ("(" !== t5[0])
        throw Ae(t5, Re);
      t5 = t5.substring(1);
      const n3 = [];
      for (; t5.length > 0; ) {
        if (")" === (t5 = t5.trim())[0]) {
          const a3 = Ye(t5 = t5.substring(1));
          return Ie(new Se(n3, a3.value), a3.src);
        }
        const a2 = Ve(t5);
        if (n3.push(a2.value), " " !== (t5 = a2.src)[0] && ")" !== t5[0])
          throw Ae(t5, Re);
      }
      throw Ae(t5, Re);
    }(t4) : Ve(t4);
  }
  const We = "List";
  function $e(t4, e3, n3) {
    return ke("serialize", t4, e3, n3);
  }
  function Qe(t4) {
    if (ze(t4))
      throw $e(t4, Pe);
    return t4.toString();
  }
  function Xe(t4) {
    const e3 = Te(t4, 3);
    if (Math.floor(Math.abs(e3)).toString().length > 12)
      throw $e(t4, Me);
    const n3 = e3.toString();
    return n3.includes(".") ? n3 : `${n3}.0`;
  }
  function Ze(t4) {
    return t4.description || t4.toString().slice(7, -1);
  }
  function Je(t4) {
    const e3 = Ze(t4);
    if (false === /^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e3))
      throw $e(e3, qe);
    return e3;
  }
  function tn(t4) {
    switch (typeof t4) {
      case "number":
        if (!Number.isFinite(t4))
          throw $e(t4, Ne);
        return Number.isInteger(t4) ? Qe(t4) : Xe(t4);
      case "string":
        return function(t5) {
          if (Ue.test(t5))
            throw $e(t5, Fe);
          return `"${t5.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
        }(t4);
      case "symbol":
        return Je(t4);
      case "boolean":
        return function(t5) {
          if ("boolean" != typeof t5)
            throw $e(t5, Ce);
          return t5 ? "?1" : "?0";
        }(t4);
      case "object":
        if (t4 instanceof Date)
          return function(t5) {
            return `@${Qe(t5.getTime() / 1e3)}`;
          }(t4);
        if (t4 instanceof Uint8Array)
          return function(t5) {
            if (false === ArrayBuffer.isView(t5))
              throw $e(t5, De);
            return `:${e3 = t5, btoa(String.fromCharCode(...e3))}:`;
            var e3;
          }(t4);
        if (t4 instanceof je)
          return Je(t4);
      default:
        throw $e(t4, Ne);
    }
  }
  function en(t4) {
    if (false === /^[a-z*][a-z0-9\-_.*]*$/.test(t4))
      throw $e(t4, Ge);
    return t4;
  }
  function nn(t4) {
    return null == t4 ? "" : Object.entries(t4).map(([t5, e3]) => true === e3 ? `;${en(t5)}` : `;${en(t5)}=${tn(e3)}`).join("");
  }
  function an(t4) {
    return t4 instanceof Se ? `${tn(t4.value)}${nn(t4.params)}` : tn(t4);
  }
  function rn(t4, e3) {
    return function(t5, e4 = { whitespace: true }) {
      if ("object" != typeof t5 || null == t5)
        throw $e(t5, we);
      const n3 = t5 instanceof Map ? t5.entries() : Object.entries(t5), a2 = (e4 == null ? void 0 : e4.whitespace) ? " " : "";
      return Array.from(n3).map(([t6, e5]) => {
        e5 instanceof Se == 0 && (e5 = new Se(e5));
        let n4 = en(t6);
        return true === e5.value ? n4 += nn(e5.params) : (n4 += "=", Array.isArray(e5.value) ? n4 += function(t7) {
          return `(${t7.value.map(an).join(" ")})${nn(t7.params)}`;
        }(e5) : n4 += an(e5)), n4;
      }).join(`,${a2}`);
    }(t4, e3);
  }
  const ln = { MANIFEST: "m", AUDIO: "a", VIDEO: "v", MUXED: "av", INIT: "i", CAPTION: "c", TIMED_TEXT: "tt", KEY: "k", OTHER: "o" };
  const on = "CMCD-Object", sn = "CMCD-Request", un = "CMCD-Session", dn = "CMCD-Status", cn = { br: on, ab: on, d: on, ot: on, tb: on, tpb: on, lb: on, tab: on, lab: on, url: on, pb: sn, bl: sn, tbl: sn, dl: sn, ltc: sn, mtp: sn, nor: sn, nrr: sn, rc: sn, sn, sta: sn, su: sn, ttfb: sn, ttfbb: sn, ttlb: sn, cmsdd: sn, cmsds: sn, smrt: sn, df: sn, cs: sn, ts: sn, cid: un, pr: un, sf: un, sid: un, st: un, v: un, msd: un, bs: dn, bsd: dn, cdn: dn, rtp: dn, bg: dn, pt: dn, ec: dn, e: dn }, fn = { OBJECT: on, REQUEST: sn, SESSION: un, STATUS: dn };
  const gn = "event", mn = (t4) => Math.round(t4), hn = (t4, e3) => Array.isArray(t4) ? t4.map((t5) => hn(t5, e3)) : t4 instanceof Se && "string" == typeof t4.value ? new Se(hn(t4.value, e3), t4.params) : (e3.baseUrl && (t4 = function(t5, e4) {
    const n3 = new URL(t5), a2 = new URL(e4);
    if (n3.origin !== a2.origin)
      return t5;
    const r3 = n3.pathname.split("/").slice(1), i3 = a2.pathname.split("/").slice(1, -1), l3 = Math.min(r3.length, i3.length);
    for (let t6 = 0; t6 < l3 && r3[t6] === i3[t6]; t6++)
      r3.shift(), i3.shift();
    for (; i3.length; )
      i3.shift(), r3.unshift("..");
    return r3.join("/") + n3.search + n3.hash;
  }(t4, e3.baseUrl)), 1 === e3.version ? encodeURIComponent(t4) : t4), pn = (t4) => 100 * mn(t4 / 100), bn = { br: mn, d: mn, bl: pn, dl: pn, mtp: pn, nor: (t4, e3) => {
    let n3 = t4;
    return e3.version >= 2 && (t4 instanceof Se && "string" == typeof t4.value ? n3 = new Se([t4]) : "string" == typeof t4 && (n3 = [t4])), hn(n3, e3);
  }, rtp: pn, tb: mn }, yn = "request", En = ["ab", "bg", "bl", "br", "bs", "bsd", "cdn", "cid", "cs", "df", "ec", "lab", "lb", "ltc", "msd", "mtp", "pb", "pr", "pt", "sf", "sid", "sn", "st", "sta", "tab", "tb", "tbl", "tpb", "ts", "v"], Tn = ["e"], _n = ["cmsdd", "cmsds", "rc", "smrt", "ttfb", "ttfbb", "ttlb", "url"], vn = /^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;
  function Sn(t4) {
    return vn.test(t4);
  }
  const wn = ["d", "dl", "nor", "ot", "rtp", "su"], In = ["bl", "br", "bs", "cid", "d", "dl", "mtp", "nor", "nrr", "ot", "pr", "rtp", "sf", "sid", "st", "su", "tb", "v"];
  function kn(t4) {
    return In.includes(t4) || Sn(t4);
  }
  const An = { [gn]: function(t4) {
    return En.includes(t4) || Tn.includes(t4) || _n.includes(t4) || Sn(t4);
  }, [yn]: function(t4) {
    return En.includes(t4) || wn.includes(t4) || Sn(t4);
  } };
  function Rn(t4, e3 = {}) {
    const n3 = {};
    if (null == t4 || "object" != typeof t4)
      return n3;
    const a2 = e3.version || t4.v || 1, r3 = e3.reportingMode || yn, i3 = 1 === a2 ? kn : An[r3];
    let l3 = Object.keys(t4).filter(i3);
    t4.e && "rr" !== t4.e && (l3 = l3.filter((t5) => !function(t6) {
      return _n.includes(t6);
    }(t5)));
    const o3 = e3.filter;
    "function" == typeof o3 && (l3 = l3.filter(o3));
    const s2 = r3 === gn;
    s2 && !l3.includes("ts") && l3.push("ts"), a2 > 1 && !l3.includes("v") && l3.push("v");
    const u3 = Object.assign({}, bn, e3.formatters), d3 = { version: a2, reportingMode: r3, baseUrl: e3.baseUrl };
    return l3.sort().forEach((e4) => {
      let r4 = t4[e4];
      const i4 = u3[e4];
      if ("function" == typeof i4 && (r4 = i4(r4, d3)), "v" === e4) {
        if (1 === a2)
          return;
        r4 = a2;
      }
      "pr" == e4 && 1 === r4 || (s2 && "ts" === e4 && !Number.isFinite(r4) && (r4 = Date.now()), function(t5) {
        return "number" == typeof t5 ? Number.isFinite(t5) : null != t5 && "" !== t5 && false !== t5;
      }(r4) && (function(t5) {
        return ["ot", "sf", "st", "e", "sta"].includes(t5);
      }(e4) && "string" == typeof r4 && (r4 = new je(r4)), n3[e4] = r4));
    }), n3;
  }
  function Nn(t4, e3 = {}) {
    const n3 = {};
    if (!t4)
      return n3;
    const a2 = function(t5, e4) {
      const n4 = {};
      if (!t5)
        return n4;
      const a3 = Object.keys(t5), r3 = e4 ? (i3 = e4, Object.keys(i3).reduce((t6, e5) => {
        var _a2;
        return (_a2 = i3[e5]) == null ? void 0 : _a2.forEach((n5) => t6[n5] = e5), t6;
      }, {})) : {};
      var i3;
      return a3.reduce((e5, n5) => {
        const a4 = cn[n5] || r3[n5] || fn.REQUEST;
        return (e5[a4] ?? (e5[a4] = {}))[n5] = t5[n5], e5;
      }, n4);
    }(Rn(t4, e3), e3 == null ? void 0 : e3.customHeaderMap);
    return Object.entries(a2).reduce((t5, [e4, n4]) => {
      const a3 = rn(n4, { whitespace: false });
      return a3 && (t5[e4] = a3), t5;
    }, n3);
  }
  const Cn = /* @__PURE__ */ new Set([...In, ...En, ...wn, ..._n, ...Tn]), Dn = (Array.from(Cn), ln), xn = { DASH: "d", HLS: "h", SMOOTH: "s", OTHER: "o" }, Mn = { VOD: "v", LIVE: "l" }, Pn = "segment";
  function On() {
    let t4, e3, n3, a2, r3, i3, l3, s2, d3, c3, g3, p3, b3, y3, E3, T3, _3 = this.context, v3 = (0, f2.default)(_3).getInstance(), S3 = (0, u2.default)(_3).getInstance(), I3 = (0, o2.default)(_3).getInstance();
    function k3() {
      a2 = { pr: 1, nor: null, st: null, sf: null, sid: `${Lt.default.generateUuid()}`, cid: null }, b3 = {}, p3 = {}, y3 = {}, g3 = void 0, E3 = void 0, T3 = false, C2();
    }
    function A2() {
      C2();
    }
    function R2() {
      E3 || (E3 = Date.now());
    }
    function N2() {
      E3 && !a2.msd && (a2.msd = Date.now() - E3);
    }
    function C2() {
      if (!l3)
        return;
      const t5 = l3.getStreamController();
      if (!t5)
        return;
      if ("function" != typeof t5.getActiveStream)
        return;
      const e4 = t5.getActiveStream();
      e4 && (c3 = e4.getStreamProcessors());
    }
    function D2(t5) {
      try {
        const e4 = M2(), n4 = e4.version ? e4.keys : S3.get().streaming.cmcd.enabledKeys;
        return Object.keys(t5).filter((t6) => n4.includes(t6)).reduce((e5, n5) => (e5[n5] = t5[n5], e5), {});
      } catch (e4) {
        return t5;
      }
    }
    function x2() {
      const t5 = M2();
      return function(t6) {
        if (Object.keys(t6).length) {
          if (1 !== parseInt(t6.version))
            return n3.error("version parameter must be defined in 1."), false;
          if (!t6.keys)
            return n3.error("keys parameter must be defined."), false;
        }
        const e4 = t6.version, a3 = S3.get().streaming.cmcd && S3.get().streaming.cmcd.enabled;
        return e4 || a3;
      }(t5) && function(t6) {
        let e4 = S3.get().streaming.cmcd.includeInRequests;
        t6.version && (e4 = t6.includeInRequests ?? [Pn]);
        const a3 = m2.default.CMCD_AVAILABLE_REQUESTS, r4 = e4.filter((t7) => !a3.includes(t7));
        return r4.length === e4.length ? (n3.error("None of the request types are supported."), false) : (r4.map((t7) => {
          n3.warn(`request type ${t7} is not supported.`);
        }), true);
      }(t5) && function(t6) {
        const e4 = m2.default.CMCD_AVAILABLE_KEYS, a3 = m2.default.CMCD_V2_AVAILABLE_KEYS, r4 = t6.version ? t6.keys : S3.get().streaming.cmcd.enabledKeys, i4 = S3.get().streaming.cmcd.version, l4 = r4.filter((t7) => !(e4.includes(t7) || 2 === i4 && a3.includes(t7)));
        return l4.length === r4.length && r4.length > 0 ? (n3.error(`None of the keys are implemented for CMCD version ${i4}.`), false) : (l4.map((t7) => {
          n3.warn(`key parameter ${t7} is not implemented for CMCD version ${i4}.`);
        }), true);
      }(t5);
    }
    function M2() {
      let t5 = {};
      if (s2) {
        const e4 = s2.getServiceDescriptionSettings();
        S3.get().streaming.cmcd.applyParametersFromMpd && e4.clientDataReporting && e4.clientDataReporting.cmcdParameters && (t5 = e4.clientDataReporting.cmcdParameters);
      }
      return t5;
    }
    function P2(t5) {
      try {
        let n4 = null;
        if (t5.type, (e4 = t5.mediaType) !== m2.default.VIDEO && e4 !== m2.default.AUDIO || g3 && g3 != m2.default.AUDIO || (g3 = e4), function(t6) {
          const e5 = M2();
          let n5 = S3.get().streaming.cmcd.includeInRequests;
          e5.version && (n5 = e5.includeInRequests ? e5.includeInRequests : [Pn]);
          const a3 = { [w2.HTTPRequest.INIT_SEGMENT_TYPE]: "segment", [w2.HTTPRequest.MEDIA_SEGMENT_TYPE]: "segment", [w2.HTTPRequest.XLINK_EXPANSION_TYPE]: "xlink", [w2.HTTPRequest.MPD_TYPE]: "mpd", [w2.HTTPRequest.CONTENT_STEERING_TYPE]: "steering", [w2.HTTPRequest.OTHER_TYPE]: "other" };
          return n5.some((e6) => a3[t6] === e6);
        }(t5.type)) {
          if (t5.type === w2.HTTPRequest.MPD_TYPE)
            return function() {
              const t6 = L2();
              return t6.ot = Dn.MANIFEST, t6;
            }();
          if (t5.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE)
            return z2(t5.mediaType), O2(t5, t5.mediaType);
          if (t5.type === w2.HTTPRequest.INIT_SEGMENT_TYPE)
            return function() {
              const t6 = L2();
              return t6.ot = Dn.INIT, t6.su = true, t6;
            }();
          if (t5.type === w2.HTTPRequest.OTHER_TYPE || t5.type === w2.HTTPRequest.XLINK_EXPANSION_TYPE)
            return function() {
              const t6 = L2();
              return t6.ot = Dn.OTHER, t6;
            }();
          if (t5.type === w2.HTTPRequest.LICENSE)
            return function() {
              const t6 = L2();
              return t6.ot = Dn.KEY, t6;
            }();
          if (t5.type === w2.HTTPRequest.CONTENT_STEERING_TYPE)
            return function(t6) {
              const e5 = g3 ? O2(t6, g3) : L2();
              return e5.ot = Dn.OTHER, e5;
            }(t5);
        }
        return n4;
      } catch (t6) {
        return null;
      }
      var e4;
    }
    function O2(t5, e4) {
      var _a2;
      z2(e4);
      const n4 = L2(), o3 = function(t6) {
        try {
          return parseInt(t6.bandwidth / 1e3);
        } catch (t7) {
          return null;
        }
      }(t5), s3 = function(t6) {
        try {
          return isNaN(t6.duration) ? NaN : Math.round(1e3 * t6.duration);
        } catch (t7) {
          return null;
        }
      }(t5), u3 = function(t6) {
        try {
          return 100 * parseInt(d3.getSafeAverageThroughput(t6) / 100);
        } catch (t7) {
          return null;
        }
      }(e4), f3 = function(t6) {
        try {
          const e5 = a2.pr, n5 = i3.getCurrentBufferLevel(t6);
          return isNaN(e5) || isNaN(n5) ? null : 100 * parseInt(n5 / e5 * 10);
        } catch (t7) {
          return null;
        }
      }(e4), g4 = F2(e4), h3 = function(t6) {
        try {
          const e5 = r3.getPossibleVoRepresentationsFilteredBySettings(t6).map((t7) => t7.bitrateInKbit);
          return Math.max(...e5);
        } catch (t7) {
          return null;
        }
      }((_a2 = t5.representation) == null ? void 0 : _a2.mediaInfo), E4 = a2.pr, T4 = function(t6) {
        if (c3 && 0 !== c3.length) {
          for (let e5 of c3)
            if (e5.getType() === t6)
              return e5.probeNextRequest();
        }
      }(e4);
      let _4;
      e4 === m2.default.VIDEO && (_4 = Dn.VIDEO), e4 === m2.default.AUDIO && (_4 = Dn.AUDIO), t5.mediaType === m2.default.ENHANCEMENT && (_4 = Dn.OTHER), e4 === m2.default.TEXT && (_4 = "application/mp4" === t5.representation.mediaInfo.mimeType ? Dn.TIMED_TEXT : Dn.CAPTION);
      let v4 = S3.get().streaming.cmcd.rtp;
      return v4 || (v4 = function(t6) {
        try {
          let e5 = l3.getPlaybackRate();
          e5 || (e5 = 1);
          let { bandwidth: n5, mediaType: a3, representation: r4, duration: i4 } = t6;
          if (!r4.mediaInfo)
            return NaN;
          let o4 = F2(a3);
          0 === o4 && (o4 = 500);
          let s4 = n5 * i4 / 1e3 / (o4 / e5 / 1e3), u4 = S3.get().streaming.cmcd.rtpSafetyFactor && !isNaN(S3.get().streaming.cmcd.rtpSafetyFactor) ? S3.get().streaming.cmcd.rtpSafetyFactor : 5;
          return 100 * (parseInt(s4 * u4 / 100) + 1);
        } catch (t7) {
          return NaN;
        }
      }(t5)), isNaN(v4) || (n4.rtp = v4), T4 && (t5.url !== T4.url ? n4.nor = encodeURIComponent(Lt.default.getRelativeUrl(t5.url, T4.url)) : T4.range && (n4.nrr = T4.range)), o3 && (n4.br = o3), _4 && (n4.ot = _4), isNaN(s3) || (n4.d = s3), isNaN(u3) || (n4.mtp = u3), isNaN(f3) || (n4.dl = f3), isNaN(g4) || (n4.bl = g4), isNaN(h3) || (n4.tb = h3), isNaN(E4) || 1 === E4 || (n4.pr = E4), b3[e4] && (n4.bs = true, b3[e4] = false), !p3[e4] && y3[e4] || (n4.su = true, p3[e4] = false, y3[e4] = true), n4;
    }
    function z2(t5) {
      y3.hasOwnProperty(t5) || (y3[t5] = false), p3.hasOwnProperty(t5) || (p3[t5] = false), b3.hasOwnProperty(t5) || (b3[t5] = false);
    }
    function L2() {
      const t5 = M2(), e4 = {};
      let n4 = S3.get().streaming.cmcd.cid ? S3.get().streaming.cmcd.cid : a2.cid;
      if (n4 = t5.contentID ? t5.contentID : n4, e4.v = S3.get().streaming.cmcd.version ?? 1, e4.sid = S3.get().streaming.cmcd.sid ? S3.get().streaming.cmcd.sid : a2.sid, e4.sid = t5.sessionID ? t5.sessionID : e4.sid, e4.sid = `${e4.sid}`, n4 && (e4.cid = `${n4}`), isNaN(a2.pr) || 1 === a2.pr || null === a2.pr || (e4.pr = a2.pr), a2.st && (e4.st = a2.st), a2.sf && (e4.sf = a2.sf), 2 === e4.v) {
        let t6 = 1e3 * l3.getCurrentLiveLatency();
        isNaN(t6) || (e4.ltc = t6);
        const n5 = a2.msd;
        T3 || isNaN(n5) || (e4.msd = n5, T3 = true);
      }
      return e4;
    }
    function F2(t5) {
      try {
        const e4 = i3.getCurrentBufferLevel(t5);
        return isNaN(e4) ? null : 100 * parseInt(10 * e4);
      } catch (t6) {
        return null;
      }
    }
    function U2(t5) {
      try {
        a2.pr = t5.playbackRate;
      } catch (t6) {
      }
    }
    function j2(e4) {
      try {
        const n4 = t4.getIsDynamic(e4.data) ? Mn.LIVE : Mn.VOD, r4 = e4.protocol && "MSS" === e4.protocol ? xn.SMOOTH : xn.DASH;
        a2.st = `${n4}`, a2.sf = `${r4}`;
      } catch (t5) {
      }
    }
    function q2(t5) {
      try {
        t5.state && t5.mediaType && t5.state === h2.default.BUFFER_EMPTY && (b3[t5.mediaType] || (b3[t5.mediaType] = true), p3[t5.mediaType] || (p3[t5.mediaType] = true));
      } catch (t6) {
      }
    }
    function B2() {
      for (let t5 in b3)
        b3.hasOwnProperty(t5) && (b3[t5] = true);
      for (let t5 in p3)
        p3.hasOwnProperty(t5) && (p3[t5] = true);
    }
    return e3 = { getCmcdData: P2, getQueryParameter: function(t5) {
      try {
        if (x2()) {
          const e4 = P2(t5), n4 = function(t6, e5 = {}) {
            return t6 ? rn(Rn(t6, e5), { whitespace: false }) : "";
          }(D2(e4));
          return v3.trigger(Bt.default.CMCD_DATA_GENERATED, { url: t5.url, mediaType: t5.mediaType, cmcdData: e4, cmcdString: n4 }), { key: "CMCD", value: n4 };
        }
        return null;
      } catch (t6) {
        return null;
      }
    }, getHeaderParameters: function(t5) {
      try {
        if (x2()) {
          const e4 = P2(t5), n4 = Nn(D2(e4), 1 === S3.get().streaming.cmcd.version ? {} : { customHeaderMap: { [fn.REQUEST]: ["ltc"], [fn.SESSION]: ["msd"] } });
          return v3.trigger(Bt.default.CMCD_DATA_GENERATED, { url: t5.url, mediaType: t5.mediaType, cmcdData: e4, headers: n4 }), n4;
        }
        return null;
      } catch (t6) {
        return null;
      }
    }, getCmcdParametersFromManifest: M2, setConfig: function(t5) {
      t5 && (t5.abrController && (r3 = t5.abrController), t5.dashMetrics && (i3 = t5.dashMetrics), t5.throughputController && (d3 = t5.throughputController), t5.playbackController && (l3 = t5.playbackController), t5.serviceDescriptionController && (s2 = t5.serviceDescriptionController));
    }, reset: function() {
      v3.off(h2.default.PLAYBACK_RATE_CHANGED, U2, this), v3.off(h2.default.MANIFEST_LOADED, j2, this), v3.off(h2.default.BUFFER_LEVEL_STATE_CHANGED, q2, e3), v3.off(h2.default.PLAYBACK_SEEKED, B2, e3), v3.off(h2.default.PLAYBACK_STARTED, R2, e3), v3.off(h2.default.PLAYBACK_PLAYING, N2, e3), k3();
    }, initialize: function(t5) {
      v3.on(h2.default.PLAYBACK_RATE_CHANGED, U2, e3), v3.on(h2.default.MANIFEST_LOADED, j2, e3), v3.on(h2.default.BUFFER_LEVEL_STATE_CHANGED, q2, e3), v3.on(h2.default.PLAYBACK_SEEKED, B2, e3), v3.on(h2.default.PERIOD_SWITCH_COMPLETED, A2, e3), t5 ? v3.on(h2.default.MANIFEST_LOADING_STARTED, R2, e3) : v3.on(h2.default.PLAYBACK_STARTED, R2, e3), v3.on(h2.default.PLAYBACK_PLAYING, N2, e3);
    }, isCmcdEnabled: x2 }, t4 = he(_3).getInstance(), n3 = I3.getLogger(e3), k3(), e3;
  }
  On.__dashjs_factory_name = "CmcdModel";
  var zn = r2.default.getSingletonFactory(On);
  const Ln = "CMSD-Dynamic", Fn = "CMSD-Static", Un = ln, jn = Fn.toLowerCase(), qn = Ln.toLowerCase(), Bn = ["mb", "st", "sf", "v"], Gn = "stream", Hn = { video: Un.VIDEO, audio: Un.AUDIO, text: Un.TIMED_TEXT, stream: Gn };
  function Yn() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3;
    function l3() {
      r3 = {}, i3 = {};
    }
    function s2(t5) {
      t5 && Object.keys(t5).forEach((e4) => {
        Bn.includes(e4) || delete t5[e4];
      });
    }
    function u3(t5) {
      try {
        return (e4 = t5) ? Object.entries(function(t6, e5) {
          try {
            const { src: n4, value: a3 } = function(t7, e6) {
              const n5 = {};
              for (; t7.length > 0; ) {
                let a4;
                const r4 = He(t7), i4 = r4.value;
                if ("=" === (t7 = r4.src)[0]) {
                  const n6 = Ke(t7.substring(1), e6);
                  a4 = n6.value, t7 = n6.src;
                } else {
                  const n6 = Ye(t7, e6);
                  a4 = new Se(true, n6.value), t7 = n6.src;
                }
                if (n5[i4] = a4, 0 === (t7 = t7.trim()).length)
                  return Ie(n5, t7);
                if ("," !== t7[0])
                  throw Ae(t7, we);
                if (0 === (t7 = t7.substring(1).trim()).length || "," === t7[0])
                  throw Ae(t7, we);
              }
              return Ie(n5, t7);
            }(t6.trim(), e5);
            if ("" !== n4)
              throw Ae(n4, we);
            return a3;
          } catch (e6) {
            throw Ae(t6, we, e6);
          }
        }(e4)).reduce((t6, [e5, n4]) => {
          const { value: a3 } = n4;
          return t6[e5] = "symbol" == typeof a3 ? Ze(a3) : a3, t6;
        }, {}) : {};
      } catch (t6) {
        a2.error("Failed to parse CMSD-Static response header value:", t6);
      }
      var e4;
    }
    function d3(t5) {
      try {
        const n4 = (e4 = t5) ? function(t6, e5) {
          try {
            const { src: n5, value: a4 } = function(t7, e6) {
              const n6 = [];
              for (; t7.length > 0; ) {
                const a5 = Ke(t7, e6);
                if (n6.push(a5.value), 0 === (t7 = a5.src.trim()).length)
                  return Ie(n6, t7);
                if ("," !== t7[0])
                  throw Ae(t7, We);
                if (0 === (t7 = t7.substring(1).trim()).length || "," === t7[0])
                  throw Ae(t7, We);
              }
              return Ie(n6, t7);
            }(t6.trim(), e5);
            if ("" !== n5)
              throw Ae(n5, We);
            return a4;
          } catch (e6) {
            throw Ae(t6, We, e6);
          }
        }(e4) : [], a3 = n4[n4.length - 1];
        return (a3 == null ? void 0 : a3.params) || {};
      } catch (t6) {
        return a2.error("Failed to parse CMSD-Dynamic response header value:", t6), {};
      }
      var e4;
    }
    function c3(t5) {
      return Hn[t5] || Un.OTHER;
    }
    function m3(t5, e4, n4) {
      const a3 = t5 === Fn ? r3 : i3, l4 = a3[e4] || {}, o3 = a3[Gn] || {};
      return l4[n4] || o3[n4];
    }
    return n3 = { setConfig: function() {
    }, initialize: function() {
    }, reset: function() {
      l3();
    }, parseResponseHeaders: function(t5, n4) {
      let a3 = null, l4 = null;
      for (const n5 in t5) {
        const r4 = t5[n5];
        switch (n5) {
          case jn:
            a3 = u3(r4), e3.trigger(g2.default.CMSD_STATIC_HEADER, a3);
            break;
          case qn:
            l4 || (l4 = d3(r4));
        }
      }
      let o3 = Gn;
      return a3 && a3.ot ? o3 = a3.ot : n4 && (o3 = c3(n4)), s2(r3[o3]), s2(i3[o3]), a3 && (r3[o3] = Object.assign(r3[o3] || {}, a3)), l4 && (i3[o3] = Object.assign(i3[o3] || {}, l4)), { static: a3, dynamic: l4 };
    }, getMaxBitrate: function(t5) {
      let e4 = c3(t5);
      return m3(Ln, e4, "mb") || -1;
    }, getEstimatedThroughput: function(t5) {
      let e4 = c3(t5);
      return m3(Ln, e4, "etp") || null;
    }, getResponseDelay: function(t5) {
      let e4 = c3(t5);
      return m3(Ln, e4, "rd") || null;
    }, getRoundTripTime: function(t5) {
      let e4 = c3(t5);
      return m3(Ln, e4, "rtt") || null;
    } }, a2 = (0, o2.default)(t4).getInstance().getLogger(n3), l3(), n3;
  }
  Yn.__dashjs_factory_name = "CmsdModel";
  var Vn = r2.default.getSingletonFactory(Yn), Kn = n2(1926);
  function Wn() {
    let t4, e3;
    function n3() {
      e3 = {};
    }
    return t4 = { reset: function() {
      n3();
    }, processResponseHeaders: function(t5) {
      if (!(t5 && t5.headers && t5.request && t5.request.url))
        return;
      const n4 = t5.headers[m2.default.COMMON_ACCESS_TOKEN_HEADER];
      if (n4) {
        const a2 = Lt.default.getHostFromUrl(t5.request.url);
        a2 && (e3[a2] = n4);
      }
    }, getCommonAccessTokenForUrl: function(t5) {
      if (!t5)
        return null;
      const n4 = Lt.default.getHostFromUrl(t5);
      return n4 ? e3[n4] ? e3[n4] : null : void 0;
    } }, n3(), t4;
  }
  Wn.__dashjs_factory_name = "CommonAccessTokenController";
  var $n = r2.default.getSingletonFactory(Wn);
  function Qn() {
    let t4, e3;
    return t4 = { setConfig: function(t5) {
      t5 && t5.serviceDescriptionController && (e3 = t5.serviceDescriptionController);
    }, isAdaptationsIncluded: function(t5) {
      var _a2;
      const { adaptationSetsArray: n3 } = ((_a2 = e3 == null ? void 0 : e3.getServiceDescriptionSettings()) == null ? void 0 : _a2.clientDataReporting) ?? {};
      return !n3 || 0 === (n3 == null ? void 0 : n3.length) || n3.includes(t5);
    }, isServiceLocationIncluded: function(t5, n3) {
      var _a2;
      if (t5 === w2.HTTPRequest.CONTENT_STEERING_TYPE)
        return true;
      const { serviceLocationsArray: a2 } = ((_a2 = e3 == null ? void 0 : e3.getServiceDescriptionSettings()) == null ? void 0 : _a2.clientDataReporting) ?? {};
      return !a2 || 0 === (a2 == null ? void 0 : a2.length) || a2.includes(n3);
    } }, t4;
  }
  Qn.__dashjs_factory_name = "ClientDataReportingController";
  var Xn = r2.default.getSingletonFactory(Qn);
  function Zn() {
    let t4, e3, n3;
    const a2 = this.context;
    function r3(t5, e4, n4, a3, r4) {
      var _a2;
      const i3 = function(t6, e5) {
        let n5 = [];
        return n5 = e5 === Vt.default.PERIOD ? t6[Vt.default.SUPPLEMENTAL_PROPERTY] || [] : [...t6[Vt.default.ESSENTIAL_PROPERTY] || [], ...t6[Vt.default.SUPPLEMENTAL_PROPERTY] || []], n5.find((t7) => t7.schemeIdUri === m2.default.URL_QUERY_INFO_SCHEME && t7.UrlQueryInfo || t7.schemeIdUri === m2.default.EXT_URL_QUERY_INFO_SCHEME && t7.ExtUrlQueryInfo);
      }(e4, r4);
      !function(t6, e5, n5, a4) {
        n5.initialQueryString = "";
        let r5 = "";
        const i4 = (t6 == null ? void 0 : t6.ExtUrlQueryInfo) || (t6 == null ? void 0 : t6.UrlQueryInfo);
        r5 = i4 && i4.queryString ? e5 && e5.length > 0 ? e5 + "&" + i4.queryString : i4.queryString : e5, "true" === (i4 == null ? void 0 : i4.useMPDUrlQuery) && a4 && (r5 = r5 ? r5 + "&" + a4 : a4), n5.initialQueryString = r5;
      }(i3, a3.initialQueryString, t5, n4), function(t6, e5, n5) {
        var _a3, _b;
        if (!t6)
          return void (e5.finalQueryString = n5);
        const a4 = ((_a3 = t6 == null ? void 0 : t6.ExtUrlQueryInfo) == null ? void 0 : _a3.queryTemplate) || ((_b = t6 == null ? void 0 : t6.UrlQueryInfo) == null ? void 0 : _b.queryTemplate) || "";
        e5.finalQueryString = a4 === Vt.default.QUERY_PART ? e5 == null ? void 0 : e5.initialQueryString : "";
      }(i3, t5, a3.finalQueryString), t5.sameOriginOnly = (_a2 = i3 == null ? void 0 : i3.ExtUrlQueryInfo) == null ? void 0 : _a2.sameOriginOnly, t5.queryParams = Lt.default.parseQueryParams(t5 == null ? void 0 : t5.finalQueryString), t5.includeInRequests = function(t6, e5) {
        var _a3;
        return t6 ? ((_a3 = t6.ExtUrlQueryInfo) == null ? void 0 : _a3.includeInRequests) ? t6.ExtUrlQueryInfo.includeInRequests.split(" ") : [Vt.default.SEGMENT_TYPE] : e5;
      }(i3, a3.includeInRequests);
    }
    return e3 = (0, o2.default)(a2).getInstance().getLogger(t4), t4 = { getFinalQueryString: function(t5) {
      try {
        if (!n3)
          return null;
        if (t5.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE || t5.type === w2.HTTPRequest.INIT_SEGMENT_TYPE) {
          const e4 = t5.representation;
          if (!e4)
            return null;
          const a3 = e4.adaptation, r4 = a3.period, i3 = n3.period[r4.index].adaptation[a3.index].representation[e4.index], l3 = new URL(t5.url), o3 = !i3.sameOriginOnly || n3.origin === l3.origin;
          if (i3.includeInRequests.includes(Vt.default.SEGMENT_TYPE) && o3)
            return i3.queryParams;
        } else if (t5.type === w2.HTTPRequest.MPD_TYPE) {
          if ([Vt.default.MPD_TYPE, Vt.default.MPD_PATCH_TYPE].some((t6) => n3.includeInRequests.includes(t6)))
            return n3.queryParams;
        } else if (t5.type === w2.HTTPRequest.CONTENT_STEERING_TYPE && n3.includeInRequests.includes(Vt.default.STEERING_TYPE))
          return n3.queryParams;
      } catch (t6) {
        return e3.error(t6), null;
      }
    }, createFinalQueryStrings: function(t5) {
      n3 = { origin: new URL(t5.url).origin, period: [] };
      const e4 = t5.url.split("?")[1];
      r3(n3, t5, e4, { initialQueryString: "", includeInRequests: [] }, Vt.default.MPD), t5.Period.forEach((t6) => {
        const a3 = { adaptation: [] };
        r3(a3, t6, e4, n3, Vt.default.PERIOD), t6.AdaptationSet.forEach((t7) => {
          const n4 = { representation: [] };
          r3(n4, t7, e4, a3, Vt.default.ADAPTATION_SET), t7.Representation.forEach((t8) => {
            const a4 = {};
            r3(a4, t8, e4, n4, Vt.default.REPRESENTATION), n4.representation.push(a4);
          }), a3.adaptation.push(n4);
        }), n3.period.push(a3);
      });
    } }, t4;
  }
  Zn.__dashjs_factory_name = "ExtUrlQueryInfoController";
  var Jn = r2.default.getSingletonFactory(Zn), ta = class {
    constructor(t4) {
      this.url = t4.url, this.method = t4.method, this.responseType = void 0 !== t4.responseType ? t4.responseType : null, this.headers = void 0 !== t4.headers ? t4.headers : {}, this.credentials = void 0 !== t4.credentials ? t4.credentials : null, this.mode = void 0 !== t4.mode ? t4.mode : null, this.timeout = void 0 !== t4.timeout ? t4.timeout : 0, this.cmcd = void 0 !== t4.cmcd ? t4.cmcd : null, this.customData = void 0 !== t4.customData ? t4.customData : null;
    }
  }, ea = class {
    constructor(t4) {
      this.request = t4.request, this.url = void 0 !== t4.url ? t4.url : null, this.redirected = void 0 !== t4.redirected && t4.redirected, this.status = void 0 !== t4.status ? t4.status : null, this.statusText = void 0 !== t4.statusText ? t4.statusText : "", this.type = void 0 !== t4.type ? t4.type : "", this.headers = void 0 !== t4.headers ? t4.headers : {}, this.data = void 0 !== t4.data ? t4.data : null, this.resourceTiming = void 0 !== t4.resourceTiming ? t4.resourceTiming : null;
    }
  };
  function na(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.errHandler, a2 = t4.dashMetrics, r3 = t4.mediaPlayerModel, i3 = t4.boxParser, l3 = t4.errors, s2 = t4.requestTimeout || 0, d3 = (0, f2.default)(e3).getInstance(), c3 = (0, u2.default)(e3).getInstance();
    let h3, p3, b3, y3, E3, T3, _3, v3, S3, I3, k3, A2, R2, N2;
    function C2(t5, l4) {
      const o3 = function() {
        D2();
      }, u3 = function(e4) {
        const n4 = /* @__PURE__ */ new Date();
        F2 && (F2 = false, (!e4.lengthComputable || e4.lengthComputable && e4.total !== e4.loaded) && (z2.firstByteDate = n4, H2.resourceTiming.responseStart = n4.getTime())), e4.lengthComputable && (z2.bytesLoaded = H2.length = e4.loaded, z2.bytesTotal = H2.resourceTiming.encodedBodySize = e4.total, H2.length = e4.total, H2.resourceTiming.encodedBodySize = e4.loaded), e4.noTrace || (L2.push({ s: j2, d: e4.time ? e4.time : n4.getTime() - j2.getTime(), b: [e4.loaded ? e4.loaded - q2 : 0], t: e4.throughput }), z2.traces = L2, j2 = n4, q2 = e4.loaded), B2 && (clearTimeout(B2), B2 = null), c3.get().streaming.fragmentRequestProgressTimeout > 0 && (B2 = setTimeout(function() {
          N2.warn("Abort request " + G2.url + " due to progress timeout"), V2.abort(G2), o3();
        }, c3.get().streaming.fragmentRequestProgressTimeout)), t5.progress && e4 && t5.progress(e4);
      }, f3 = function() {
        D2(true);
      }, h4 = function(t6) {
        let e4;
        if (t6.lengthComputable) {
          let n4 = t6.loaded / t6.total * 100;
          e4 = "Request timeout: loaded: " + t6.loaded + ", out of: " + t6.total + " : " + n4.toFixed(3) + "% Completed";
        } else
          e4 = "Request timeout: non-computable download size";
        N2.warn(e4);
      }, D2 = function(e4 = false) {
        -1 !== p3.indexOf(G2) && p3.splice(p3.indexOf(G2), 1), B2 && (clearTimeout(B2), B2 = null), k3.processResponseHeaders(H2), x2(), M2(), function(t6) {
          const e5 = I3.getResponseInterceptors();
          return e5 ? e5.reduce((t7, e6) => t7.then((t8) => e6(t8)), Promise.resolve(t6)) : Promise.resolve(t6);
        }(H2).then((n4) => {
          if (H2 = n4, function(t6, e5, n5) {
            const r4 = t6.customData.request, i4 = c3.get().streaming.cmsd && c3.get().streaming.cmsd.enabled ? _3.parseResponseHeaders(e5.headers, r4.mediaType) : null;
            a2.addHttpRequest(r4, e5.url, e5.status, e5.headers, n5, i4);
          }(G2, H2, L2), e4)
            t5.abort && t5.abort(z2);
          else if (z2.type === w2.HTTPRequest.MPD_TYPE && (a2.addManifestUpdate(z2), d3.trigger(g2.default.MANIFEST_LOADING_FINISHED, { requestObject: z2 })), H2.status >= 200 && H2.status <= 299 && H2.data)
            t5.success && t5.success(H2.data, H2.statusText, H2.url), t5.complete && t5.complete(z2, H2.statusText);
          else {
            try {
              404 === H2.status && c3.get().streaming.utcSynchronization.enableBackgroundSyncAfterSegmentDownloadError && z2.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE && r3.getRetryAttemptsForType(w2.HTTPRequest.MEDIA_SEGMENT_TYPE) === l4 && d3.trigger(g2.default.ATTEMPT_BACKGROUND_SYNC);
            } catch (t6) {
            }
            O2();
          }
        });
      }, x2 = function() {
        z2.startDate = U2, z2.endDate = /* @__PURE__ */ new Date(), z2.firstByteDate = z2.firstByteDate || U2;
      }, M2 = function() {
        H2.resourceTiming.responseEnd = Date.now(), function(t6, e4) {
          var _a2;
          if (!c3.get().streaming.abr.throughput.useResourceTimingApi)
            return;
          if ("undefined" == typeof performance || t6.range)
            return;
          const n4 = (_a2 = performance.getEntriesByType) == null ? void 0 : _a2.call(performance, "resource");
          if (void 0 === n4 || n4.length <= 0)
            return;
          let a3 = 0, r4 = null;
          for (; a3 < n4.length; ) {
            if (n4[a3].name === t6.url) {
              r4 = n4[a3];
              break;
            }
            a3 += 1;
          }
          (function(t7) {
            return t7 && !isNaN(t7.responseStart) && t7.responseStart > 0 && !isNaN(t7.responseEnd) && t7.responseEnd > 0 && !isNaN(t7.transferSize) && t7.transferSize > 0;
          })(r4) && (t6.customData.request.resourceTimingValues = r4, e4.resourceTiming.startTime = r4.startTime, e4.resourceTiming.encodedBodySize = r4.encodedBodySize, e4.resourceTiming.responseStart = r4.startTime, e4.resourceTiming.responseEnd = r4.responseEnd, e4.resourceTiming.duration = r4.duration);
        }(G2, H2);
      }, P2 = function(t6, e4, n4) {
        return new Promise((a3) => {
          (function(t7) {
            const e5 = I3.getRequestInterceptors();
            return e5 ? e5.reduce((t8, e6) => t8.then((t9) => e6(t9)), Promise.resolve(t7)) : Promise.resolve(t7);
          })(e4).then((r4) => {
            (e4 = r4).customData.onloadend = o3, e4.customData.onprogress = u3, e4.customData.onabort = f3, e4.customData.ontimeout = h4, n4.resourceTiming.startTime = Date.now(), t6.load(e4, n4), a3();
          });
        });
      }, O2 = function() {
        if (l4 > 0) {
          l4--, t5 && t5.request && (t5.request.retryAttempts += 1);
          let e4 = { config: t5 };
          y3.push(e4), e4.timeout = setTimeout(function() {
            -1 !== y3.indexOf(e4) && (y3.splice(y3.indexOf(e4), 1), C2(t5, l4));
          }, r3.getRetryIntervalsForType(z2.type));
        } else {
          if (z2.type === w2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE)
            return;
          n3.error(new Ot.default(E3[z2.type], z2.url + " is not available", { request: z2, response: H2 })), t5.error && t5.error(z2, "error", H2.statusText, H2), t5.complete && t5.complete(z2, H2.statusText);
        }
      }, z2 = t5.request, L2 = [];
      let F2, U2, j2, q2, B2, G2, H2;
      if (z2.bytesLoaded = NaN, z2.bytesTotal = NaN, z2.firstByteDate = null, z2.traces = [], F2 = true, U2 = /* @__PURE__ */ new Date(), j2 = U2, q2 = 0, B2 = null, !a2 || !n3)
        throw new Error("config object is not correct or missing");
      const Y2 = function(t6) {
        let n4, r4;
        return !t6.isPartialSegmentRequest && t6.hasOwnProperty("availabilityTimeComplete") && false === t6.availabilityTimeComplete && window.fetch && "arraybuffer" === t6.responseType && t6.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE ? (S3 || (S3 = qt(e3).create(), S3.setConfig({ dashMetrics: a2, boxParser: i3 })), n4 = S3, r4 = m2.default.FILE_LOADER_TYPES.FETCH) : (v3 || (v3 = Ut(e3).create()), n4 = v3, r4 = m2.default.FILE_LOADER_TYPES.XHR), { loader: n4, fileLoaderType: r4 };
      }(z2), V2 = Y2.loader;
      var K2;
      z2.fileLoaderType = Y2.fileLoaderType, z2.headers = {}, function(t6) {
        var _a2, _b;
        const e4 = t6 == null ? void 0 : t6.serviceLocation, n4 = (_b = (_a2 = t6 == null ? void 0 : t6.mediaInfo) == null ? void 0 : _a2.id) == null ? void 0 : _b.toString();
        if (A2.isServiceLocationIncluded(t6.type, e4) && A2.isAdaptationsIncluded(n4) && T3.isCmcdEnabled()) {
          const e5 = T3.getCmcdParametersFromManifest(), n5 = e5.mode ? e5.mode : c3.get().streaming.cmcd.mode;
          if (n5 === m2.default.CMCD_MODE_QUERY) {
            t6.url = Lt.default.removeQueryParameterFromUrl(t6.url, m2.default.CMCD_QUERY_KEY);
            const e6 = function(t7) {
              try {
                const e7 = [], n6 = T3.getQueryParameter(t7);
                return n6 && e7.push(n6), e7;
              } catch (t8) {
                return [];
              }
            }(t6);
            t6.url = Lt.default.addAdditionalQueryParameterToUrl(t6.url, e6);
          } else
            n5 === m2.default.CMCD_MODE_HEADER && (t6.headers = Object.assign(t6.headers, T3.getHeaderParameters(t6)));
        }
      }(K2 = z2), 0 === K2.retryAttempts && function(t6) {
        let e4 = R2.getFinalQueryString(t6);
        e4 && (t6.url = Lt.default.addAdditionalQueryParameterToUrl(t6.url, e4));
      }(K2), function(t6) {
        if (t6.queryParams) {
          const e4 = Object.keys(t6.queryParams).map((e5) => ({ key: e5, value: t6.queryParams[e5] }));
          t6.url = Lt.default.addAdditionalQueryParameterToUrl(t6.url, e4);
        }
      }(K2), function(t6) {
        const e4 = k3.getCommonAccessTokenForUrl(t6.url);
        e4 && (t6.headers[m2.default.COMMON_ACCESS_TOKEN_HEADER] = e4);
      }(K2), z2.range && (z2.headers.Range = "bytes=" + z2.range);
      const W2 = I3.getXHRWithCredentialsForType(z2.type);
      G2 = new ta({ url: z2.url, method: w2.HTTPRequest.GET, responseType: z2.responseType, headers: z2.headers, credentials: W2 ? "include" : "omit", timeout: s2, cmcd: T3.getCmcdData(z2), customData: { request: z2 } }), H2 = new ea({ request: G2, resourceTiming: { startTime: Date.now(), encodedBodySize: 0 }, status: 0 });
      let $2 = (/* @__PURE__ */ new Date()).getTime();
      if (isNaN(z2.delayLoadingTime) || $2 >= z2.delayLoadingTime)
        return p3.push(G2), P2(V2, G2, H2);
      {
        let t6 = { httpRequest: G2, httpResponse: H2 };
        return b3.push(t6), t6.delayTimeout = setTimeout(function() {
          if (-1 !== b3.indexOf(t6)) {
            b3.splice(b3.indexOf(t6), 1);
            try {
              U2 = /* @__PURE__ */ new Date(), j2 = U2, p3.push(t6.httpRequest), P2(V2, t6.httpRequest, t6.httpResponse);
            } catch (e4) {
              t6.httpRequest.onloadend();
            }
          }
        }, z2.delayLoadingTime - $2), Promise.resolve();
      }
    }
    return h3 = { abort: function() {
      y3.forEach((t5) => {
        clearTimeout(t5.timeout), t5.config.request && t5.config.abort && t5.config.abort(t5.config.request);
      }), y3 = [], b3.forEach((t5) => clearTimeout(t5.delayTimeout)), b3 = [], p3.forEach((t5) => {
        const e4 = t5.customData;
        e4 && (e4.request && e4.request.type === w2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE || (e4.onloadend = e4.onprogress = void 0, e4.abort && e4.abort()));
      }), p3 = [];
    }, load: function(t5) {
      return t5.request ? C2(t5, r3.getRetryAttemptsForType(t5.request.type)) : (t5.error && t5.error(t5.request, "error"), Promise.resolve());
    }, reset: function() {
      p3 = [], b3 = [], y3 = [], v3 && v3.reset(), S3 && S3.reset(), v3 = null, S3 = null;
    }, resetInitialSettings: function() {
      v3 && v3.resetInitialSettings();
    }, setConfig: function(t5) {
      t5 && (t5.commonAccessTokenController && (k3 = t5.commonAccessTokenController), t5.extUrlQueryInfoController && (R2 = t5.extUrlQueryInfoController));
    } }, N2 = (0, o2.default)(e3).getInstance().getLogger(h3), p3 = [], b3 = [], y3 = [], T3 = zn(e3).getInstance(), A2 = Xn(e3).getInstance(), _3 = Vn(e3).getInstance(), I3 = (0, Kn.default)(e3).getInstance(), k3 = $n(e3).getInstance(), R2 = Jn(e3).getInstance(), E3 = { [w2.HTTPRequest.MPD_TYPE]: l3.DOWNLOAD_ERROR_ID_MANIFEST_CODE, [w2.HTTPRequest.XLINK_EXPANSION_TYPE]: l3.DOWNLOAD_ERROR_ID_XLINK_CODE, [w2.HTTPRequest.INIT_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE, [w2.HTTPRequest.MEDIA_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [w2.HTTPRequest.INDEX_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [w2.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [w2.HTTPRequest.OTHER_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE }, h3;
  }
  na.__dashjs_factory_name = "HTTPLoader";
  var aa = r2.default.getClassFactory(na);
  function ra() {
    let t4, e3;
    function n3() {
      e3 = {};
    }
    function a2() {
      n3();
    }
    return a2(), t4 = { getLoader: function(t5) {
      for (var n4 in e3)
        if (e3.hasOwnProperty(n4) && t5.startsWith(n4))
          return e3[n4];
      return aa;
    }, registerLoader: function(t5, n4) {
      e3[t5] = n4;
    }, unregisterLoader: function(t5) {
      e3[t5] && delete e3[t5];
    }, unregisterAllLoader: n3, reset: a2 }, t4;
  }
  ra.__dashjs_factory_name = "SchemeLoaderFactory";
  var ia = r2.default.getSingletonFactory(ra);
  function la(t4) {
    t4 = t4 || {};
    const e3 = this.context;
    let n3, a2, r3;
    return a2 = ia(e3).getInstance(), n3 = { abort: function() {
      r3 && r3.abort();
    }, load: function(n4) {
      if (!r3) {
        let i3 = a2.getLoader(n4 && n4.request ? n4.request.url : null);
        r3 = i3(e3).create({ errHandler: t4.errHandler, mediaPlayerModel: t4.mediaPlayerModel, dashMetrics: t4.dashMetrics, boxParser: t4.boxParser ? t4.boxParser : null, constants: t4.constants ? t4.constants : null, dashConstants: t4.dashConstants ? t4.dashConstants : null, urlUtils: t4.urlUtils ? t4.urlUtils : null, requestTimeout: isNaN(t4.requestTimeout) ? 0 : t4.requestTimeout, errors: t4.errors });
      }
      r3.load(n4);
    }, reset: function() {
      a2 && (a2.reset(), a2 = null), r3 && "function" == typeof r3.reset && r3.reset(), r3 = null;
    }, resetInitialSettings: function() {
      r3 && "function" == typeof r3.resetInitialSettings && r3.resetInitialSettings();
    } }, n3;
  }
  la.__dashjs_factory_name = "URLLoader";
  var oa = r2.default.getClassFactory(la), sa = class {
    constructor(t4) {
      this.url = t4 || null, this.type = w2.HTTPRequest.CONTENT_STEERING_TYPE, this.responseType = "json";
    }
  }, ua = class {
    constructor() {
      this.version = null, this.ttl = 300, this.reloadUri = null, this.pathwayPriority = [], this.pathwayClones = [];
    }
  };
  function da() {
    const t4 = this.context, e3 = ce(t4).getInstance();
    let n3, a2, r3, i3, l3, s2, u3, d3, c3, f3, g3, m3, p3, b3, y3, E3;
    function T3(t5) {
      S3(t5, "baseUrl");
    }
    function _3(t5) {
      S3(t5, "location");
    }
    function v3(t5) {
      var e4, n4;
      t5 && t5.throughputValues && t5.throughputValues.serviceLocation && (e4 = t5.throughputValues.serviceLocation, n4 = t5.throughputValues, b3[e4] || (b3[e4] = []), b3[e4].push(n4), b3[e4].length > 4 && b3[e4].shift());
    }
    function S3(t5, e4) {
      if (t5 && t5.request && t5.request.serviceLocation) {
        const n4 = t5.request.serviceLocation;
        -1 === m3[e4].all.indexOf(n4) && m3[e4].all.push(n4), m3[e4].current = n4;
      }
    }
    function w3() {
      const t5 = d3.getValue();
      let e4 = n3.getContentSteering(t5);
      return e4 || (e4 = g3.getServiceDescriptionSettings().contentSteering), !e4 && a2 && (e4 = a2), a2 = e4, e4;
    }
    function I3() {
      return new Promise((t5) => {
        try {
          const n4 = w3();
          if (!n4 || !n4.serverUrl)
            return void t5();
          const i4 = function(t6) {
            let n5 = t6.serverUrl;
            r3 && r3.reloadUri && (n5 = e3.isRelative(r3.reloadUri) ? e3.resolve(r3.reloadUri, t6.serverUrl) : r3.reloadUri);
            const a3 = [], i5 = m3.baseUrl.all.concat(m3.location.all);
            if (i5.length > 0) {
              const t7 = i5.map((t8) => {
                const e5 = function(t9) {
                  if (!t9 || !b3[t9] || 0 === b3[t9].length)
                    return -1;
                  const e6 = p3.getArithmeticMean(b3[t9], b3[t9].length, true);
                  return parseInt(1e3 * e6);
                }(t8);
                return { serviceLocation: t8, throughput: e5 };
              });
              let e4 = "", n6 = "";
              t7.forEach((t8, a4) => {
                0 !== a4 && (e4 += ",", n6 += ","), e4 += t8.serviceLocation, n6 += t8.throughput > -1 ? t8.throughput : "";
              }), a3.push({ key: "_DASH_pathway", value: `"${e4}"` }), a3.push({ key: "_DASH_throughput", value: n6 });
            }
            return n5 = Lt.default.addAdditionalQueryParameterToUrl(n5, a3), n5;
          }(n4), l4 = new sa(i4);
          y3.load({ request: l4, success: (e4) => {
            !function(t6) {
              t6 && t6[Vt.default.CONTENT_STEERING_RESPONSE.VERSION] && 1 === parseInt(t6[Vt.default.CONTENT_STEERING_RESPONSE.VERSION]) && (r3 = new ua(), r3.version = t6[Vt.default.CONTENT_STEERING_RESPONSE.VERSION], t6[Vt.default.CONTENT_STEERING_RESPONSE.TTL] && !isNaN(t6[Vt.default.CONTENT_STEERING_RESPONSE.TTL]) && (r3.ttl = t6[Vt.default.CONTENT_STEERING_RESPONSE.TTL]), t6[Vt.default.CONTENT_STEERING_RESPONSE.RELOAD_URI] && (r3.reloadUri = t6[Vt.default.CONTENT_STEERING_RESPONSE.RELOAD_URI]), t6[Vt.default.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY] && (r3.pathwayPriority = t6[Vt.default.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY]), t6[Vt.default.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES] && (r3.pathwayClones = t6[Vt.default.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES], r3.pathwayClones = r3.pathwayClones.filter((t7) => function(t8) {
                return t8[Vt.default.CONTENT_STEERING_RESPONSE.BASE_ID] && t8[Vt.default.CONTENT_STEERING_RESPONSE.ID] && t8[Vt.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT] && t8[Vt.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][Vt.default.CONTENT_STEERING_RESPONSE.HOST];
              }(t7))), R2());
            }(e4), s2.trigger(h2.default.CONTENT_STEERING_REQUEST_COMPLETED, { currentSteeringResponseData: r3, url: i4 }), t5();
          }, error: (e4, n5, i5, l5) => {
            !function(t6, e5) {
              try {
                switch (u3.warn("Error fetching data from content steering server", t6), e5.status) {
                  case 404:
                  case 410:
                    a2 = null;
                    break;
                  case 429:
                    const t7 = e5 && e5.getResponseHeader ? e5.getResponseHeader("retry-after") : null;
                    null !== t7 && (r3 || (r3 = {}), r3.ttl = parseInt(t7)), R2();
                    break;
                  default:
                    R2();
                }
              } catch (t7) {
                u3.error(t7);
              }
            }(e4, l5), t5(e4);
          }, complete: () => {
            m3.baseUrl.all = k3(m3.baseUrl), m3.location.all = k3(m3.location);
          } });
        } catch (e4) {
          t5(e4);
        }
      });
    }
    function k3(t5) {
      return t5.all && 0 !== t5.all.length && t5.current ? t5.all.filter((e4) => e4 === t5.current) : [];
    }
    function A2(t5) {
      try {
        const e4 = [];
        return t5 && 0 !== t5.length && r3 && r3.pathwayClones && 0 !== r3.pathwayClones.length ? (r3.pathwayClones.forEach((n4) => {
          let a3 = t5.filter((t6) => n4[Vt.default.CONTENT_STEERING_RESPONSE.BASE_ID] === t6.serviceLocation), r4 = null;
          if (a3 && a3.length > 0 && (r4 = a3[0]), r4) {
            const t6 = new URL(r4.url);
            let a4 = n4[Vt.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][Vt.default.CONTENT_STEERING_RESPONSE.HOST];
            a4 = Lt.default.stringHasProtocol(a4) ? a4 : `${t6.protocol}//${a4}`;
            const i4 = { synthesizedUrl: `${a4}${t6.pathname}`, serviceLocation: n4[Vt.default.CONTENT_STEERING_RESPONSE.ID], queryParams: n4[Vt.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][Vt.default.CONTENT_STEERING_RESPONSE.PARAMS], reference: r4 };
            e4.push(i4);
          }
        }), e4) : e4;
      } catch (t6) {
        return u3.error(t6), [];
      }
    }
    function R2() {
      r3 && r3.ttl && !isNaN(r3.ttl) && (f3 && clearTimeout(f3), f3 = setTimeout(() => {
        I3();
      }, 1e3 * r3.ttl));
    }
    function N2() {
      f3 && clearTimeout(f3), f3 = null;
    }
    function C2() {
      r3 = null, a2 = null, b3 = {}, m3 = { baseUrl: { current: null, all: [] }, location: { current: null, all: [] } }, N2();
    }
    return E3 = { reset: function() {
      C2(), s2.off(h2.default.FRAGMENT_LOADING_STARTED, T3, E3), s2.off(h2.default.MANIFEST_LOADING_STARTED, _3, E3), s2.off(h2.default.THROUGHPUT_MEASUREMENT_STORED, v3, E3);
    }, setConfig: function(t5) {
      t5 && (t5.adapter && (n3 = t5.adapter), t5.errHandler && (l3 = t5.errHandler), t5.dashMetrics && (i3 = t5.dashMetrics), t5.mediaPlayerModel && (c3 = t5.mediaPlayerModel), t5.manifestModel && (d3 = t5.manifestModel), t5.serviceDescriptionController && (g3 = t5.serviceDescriptionController), t5.throughputController && (p3 = t5.throughputController), t5.eventBus && (s2 = t5.eventBus));
    }, loadSteeringData: I3, getCurrentSteeringResponseData: function() {
      return r3;
    }, shouldQueryBeforeStart: function() {
      const t5 = w3();
      return !!t5 && t5.queryBeforeStart;
    }, getSteeringDataFromManifest: w3, stopSteeringRequestTimer: N2, getSynthesizedBaseUrlElements: function(t5) {
      try {
        return A2(t5).map((t6) => {
          const e4 = new Yt(t6.synthesizedUrl, t6.serviceLocation);
          return e4.queryParams = t6.queryParams, e4.dvbPriority = t6.reference.dvbPriority, e4.dvbWeight = t6.reference.dvbWeight, e4.availabilityTimeOffset = t6.reference.availabilityTimeOffset, e4.availabilityTimeComplete = t6.reference.availabilityTimeComplete, e4;
        });
      } catch (t6) {
        return u3.error(t6), [];
      }
    }, getSynthesizedLocationElements: function(t5) {
      try {
        return A2(t5).map((t6) => {
          const e4 = new ee(t6.synthesizedUrl, t6.serviceLocation);
          return e4.queryParams = t6.queryParams, e4;
        });
      } catch (t6) {
        return u3.error(t6), [];
      }
    }, initialize: function() {
      y3 = oa(t4).create({ errHandler: l3, dashMetrics: i3, mediaPlayerModel: c3, errors: Rt }), s2.on(h2.default.FRAGMENT_LOADING_STARTED, T3, E3), s2.on(h2.default.MANIFEST_LOADING_STARTED, _3, E3), s2.on(h2.default.THROUGHPUT_MEASUREMENT_STORED, v3, E3);
    } }, u3 = (0, o2.default)(t4).getInstance().getLogger(E3), C2(), E3;
  }
  da.__dashjs_factory_name = "ContentSteeringController";
  var ca = r2.default.getSingletonFactory(da);
  function fa() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3 = [];
    function l3(t5 = [], e4 = []) {
      let n4 = 0, a3 = NaN;
      for (; n4 < t5.length; ) {
        const i4 = t5[n4], l4 = e4.findIndex((t6) => t6.serviceLocation && t6.serviceLocation === i4);
        if (-1 !== l4 && !r3.contains(e4[l4].serviceLocation)) {
          a3 = l4;
          break;
        }
        n4 += 1;
      }
      return a3;
    }
    function o3(t5) {
      const e4 = a2.getCurrentSteeringResponseData();
      if (!e4)
        return;
      const n4 = t5.entry, l4 = setTimeout(() => {
        r3.remove(n4), i3.splice(i3.indexOf(l4, 1));
      }, 1e3 * e4.ttl);
      i3.push(l4);
    }
    return n3 = { selectBaseUrlIndex: function(t5) {
      let e4 = NaN;
      if (isNaN(t5.selectedIdx)) {
        const n5 = a2.getSteeringDataFromManifest();
        n5 && n5.defaultServiceLocationArray.length > 0 && (e4 = l3(n5.defaultServiceLocationArray, t5.baseUrls));
      }
      const n4 = a2.getCurrentSteeringResponseData();
      return t5.baseUrls && t5.baseUrls.length && n4 && n4.pathwayPriority && n4.pathwayPriority.length && (e4 = l3(n4.pathwayPriority, t5.baseUrls)), e4;
    }, setConfig: function(t5) {
      t5.blacklistController && (r3 = t5.blacklistController), t5.contentSteeringController && (a2 = t5.contentSteeringController), e3.on(t5.addBlacklistEventName, o3, n3);
    }, reset: function() {
      i3.forEach((t5) => clearTimeout(t5)), i3 = [];
    } }, a2 = ca(t4).getInstance(), n3;
  }
  fa.__dashjs_factory_name = "ContentSteeringSelector";
  var ga = r2.default.getClassFactory(fa);
  function ma() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance(), n3 = (0, u2.default)(t4).getInstance();
    let a2, r3, i3, l3, o3, s2;
    function d3() {
      o3.reset(), r3.reset();
    }
    return a2 = { chooseSelector: function(t5) {
      (0, zt.checkParameterType)(t5, "boolean"), s2 = t5 ? l3 : i3;
    }, select: function(t5) {
      if (!t5)
        return;
      if (n3.get().streaming.applyContentSteering) {
        const e4 = o3.selectBaseUrlIndex(t5);
        isNaN(e4) || -1 === e4 || (t5.selectedIdx = e4);
      }
      if (!isNaN(t5.selectedIdx))
        return t5.baseUrls[t5.selectedIdx];
      let a3 = s2.select(t5.baseUrls);
      return a3 ? (t5.selectedIdx = t5.baseUrls.indexOf(a3), a3) : (e3.trigger(g2.default.URL_RESOLUTION_FAILED, { error: new Ot.default(Rt.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE, Rt.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE) }), void (s2 === i3 && d3()));
    }, reset: d3, setConfig: function(t5) {
      t5.selector && (s2 = t5.selector), t5.contentSteeringSelector && (o3 = t5.contentSteeringSelector);
    } }, r3 = Ct(t4).create({ updateEventName: g2.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, addBlacklistEventName: g2.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD }), i3 = Pt(t4).create({ blacklistController: r3 }), l3 = xt(t4).create({ blacklistController: r3 }), o3 = ga(t4).create(), o3.setConfig({ blacklistController: r3, addBlacklistEventName: g2.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD }), s2 = i3, a2;
  }
  ma.__dashjs_factory_name = "BaseURLSelector";
  var ha = r2.default.getClassFactory(ma);
  function pa() {
    let t4, e3;
    const n3 = this.context, a2 = (0, f2.default)(n3).getInstance(), r3 = ce(n3).getInstance();
    let i3, l3, o3;
    function s2(t5) {
      i3.update(t5), l3.chooseSelector(e3.getIsDVB(t5)), a2.trigger(h2.default.BASE_URLS_UPDATED, { baseUrls: u3(t5) });
    }
    function u3(t5) {
      return i3.getBaseUrls(t5);
    }
    return t4 = { reset: function() {
      i3.reset(), l3.reset();
    }, initialize: function(t5) {
      i3.setConfig({ adapter: e3, contentSteeringController: o3 }), s2(t5);
    }, resolve: function(t5) {
      const e4 = i3.getForPath(t5).reduce((t6, e5) => {
        const n4 = l3.select(e5);
        return n4 ? (r3.isRelative(n4.url) ? t6.url = r3.resolve(n4.url, t6.url) : (t6.url = n4.url, t6.serviceLocation = n4.serviceLocation), t6.availabilityTimeOffset = n4.availabilityTimeOffset, t6.availabilityTimeComplete = n4.availabilityTimeComplete, t6.queryParams = n4.queryParams, t6) : new Yt();
      }, new Yt());
      if (!r3.isRelative(e4.url))
        return e4;
    }, setConfig: function(t5) {
      t5.baseURLTreeModel && (i3 = t5.baseURLTreeModel), t5.baseURLSelector && (l3 = t5.baseURLSelector), t5.adapter && (e3 = t5.adapter), t5.contentSteeringController && (o3 = t5.contentSteeringController);
    }, getBaseUrls: u3, update: s2 }, i3 = It(n3).create(), l3 = ha(n3).create(), a2.on(g2.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, function(t5) {
      i3.invalidateSelectedIndexes(t5.entry);
    }, t4), t4;
  }
  pa.__dashjs_factory_name = "BaseURLController";
  var ba = r2.default.getClassFactory(pa);
  class ya {
    constructor(t4) {
      if (this.offset = t4._offset, this.type = t4.type, this.size = t4.size, this.boxes = [], t4.boxes)
        for (let e3 = 0; e3 < t4.boxes.length; e3++)
          this.boxes.push(new ya(t4.boxes[e3]));
      switch (this.isComplete = true, t4.type) {
        case "sidx":
          if (this.timescale = t4.timescale, this.earliest_presentation_time = t4.earliest_presentation_time, this.first_offset = t4.first_offset, this.references = t4.references, t4.references) {
            this.references = [];
            for (let e3 = 0; e3 < t4.references.length; e3++) {
              let n3 = { reference_type: t4.references[e3].reference_type, referenced_size: t4.references[e3].referenced_size, subsegment_duration: t4.references[e3].subsegment_duration };
              this.references.push(n3);
            }
          }
          break;
        case "emsg":
          this.id = t4.id, this.version = 1 === t4.version ? 1 : 0, this.value = t4.value, this.timescale = t4.timescale, this.scheme_id_uri = t4.scheme_id_uri, this.presentation_time_delta = 1 === t4.version ? t4.presentation_time : t4.presentation_time_delta, this.event_duration = t4.event_duration, this.message_data = t4.message_data;
          break;
        case "mdhd":
          this.timescale = t4.timescale;
          break;
        case "mfhd":
          this.sequence_number = t4.sequence_number;
          break;
        case "subs":
          this.entry_count = t4.entry_count, this.entries = t4.entries;
          break;
        case "tfhd":
          this.base_data_offset = t4.base_data_offset, this.sample_description_index = t4.sample_description_index, this.default_sample_duration = t4.default_sample_duration, this.default_sample_size = t4.default_sample_size, this.default_sample_flags = t4.default_sample_flags, this.flags = t4.flags;
          break;
        case "tfdt":
          this.version = t4.version, this.baseMediaDecodeTime = t4.baseMediaDecodeTime, this.flags = t4.flags;
          break;
        case "trun":
          if (this.sample_count = t4.sample_count, this.first_sample_flags = t4.first_sample_flags, this.data_offset = t4.data_offset, this.flags = t4.flags, this.samples = t4.samples, t4.samples) {
            this.samples = [];
            for (let e3 = 0, n3 = t4.samples.length; e3 < n3; e3++) {
              let n4 = { sample_size: t4.samples[e3].sample_size, sample_duration: t4.samples[e3].sample_duration, sample_composition_time_offset: t4.samples[e3].sample_composition_time_offset };
              this.samples.push(n4);
            }
          }
          break;
        case "prft":
          this.version = t4.version, this.reference_track_ID = t4.reference_track_ID, this.ntp_timestamp_sec = t4.ntp_timestamp_sec, this.ntp_timestamp_frac = t4.ntp_timestamp_frac, this.media_time = t4.media_time, this.flags = t4.flags;
      }
    }
    getChildBox(t4) {
      for (let e3 = 0; e3 < this.boxes.length; e3++)
        if (this.boxes[e3].type === t4)
          return this.boxes[e3];
    }
    getChildBoxes(t4) {
      let e3 = [];
      for (let n3 = 0; n3 < this.boxes.length; n3++)
        this.boxes[n3].type === t4 && e3.push(this.boxes[n3]);
      return e3;
    }
  }
  var Ea = ya;
  function Ta() {
    let t4, e3;
    function n3(t5) {
      let n4 = [];
      if (!t5 || !e3 || "function" != typeof e3.fetchAll)
        return n4;
      let r3, i3 = e3.fetchAll(t5);
      for (let t6 = 0, e4 = i3.length; t6 < e4; t6++)
        r3 = a2(i3[t6]), r3 && n4.push(r3);
      return n4;
    }
    function a2(t5) {
      if (!t5)
        return null;
      let e4 = new Ea(t5);
      return t5.hasOwnProperty("_incomplete") && (e4.isComplete = !t5._incomplete), e4;
    }
    return t4 = { getBox: function(t5) {
      return t5 && e3 && e3.boxes && 0 !== e3.boxes.length && "function" == typeof e3.fetch ? a2(e3.fetch(t5)) : null;
    }, getBoxes: n3, setData: function(t5) {
      e3 = t5;
    }, getLastBox: function() {
      if (!e3 || !e3.boxes || !e3.boxes.length)
        return null;
      let t5 = n3(e3.boxes[e3.boxes.length - 1].type);
      return t5.length > 0 ? t5[t5.length - 1] : null;
    } }, t4;
  }
  Ta.__dashjs_factory_name = "IsoFile";
  var _a = r2.default.getClassFactory(Ta), va = n2(6877), Sa = class {
    constructor({ found: t4, sizeOfLastCompletedBox: e3, sizeOfLastFoundTargetBox: n3, startOffsetOfLastCompletedBox: a2, startOffsetOfLastFoundTargetBox: r3, typeOfLastCompletedBox: i3, typeOfLastTargetBox: l3 }) {
      this.found = void 0 !== t4 && t4, this.sizeOfLastCompletedBox = void 0 !== e3 ? e3 : 0, this.sizeOfLastFoundTargetBox = void 0 !== n3 ? n3 : 0, this.startOffsetOfLastCompletedBox = void 0 !== a2 ? a2 : 0, this.startOffsetOfLastFoundTargetBox = void 0 !== r3 ? r3 : 0, this.typeOfLastCompletedBox = void 0 !== i3 ? i3 : null, this.typeOfLastTargetBox = void 0 !== l3 ? l3 : null;
    }
  };
  function wa() {
    let t4, e3, n3 = this.context;
    function a2(t5) {
      if (!t5)
        return null;
      void 0 === t5.fileStart && (t5.fileStart = 0);
      let e4 = va.parseBuffer(t5), a3 = _a(n3).create();
      return a3.setData(e4), a3;
    }
    function r3(t5, e4) {
      return t5[e4 + 3] >>> 0 | t5[e4 + 2] << 8 >>> 0 | t5[e4 + 1] << 16 >>> 0 | t5[e4] << 24 >>> 0;
    }
    function i3(t5, e4) {
      return String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4]);
    }
    return e3 = { findInitRange: function(e4) {
      let n4, r4, i4 = null;
      const l3 = a2(e4);
      if (!l3)
        return i4;
      const o3 = l3.getBox("ftyp"), s2 = l3.getBox("moov");
      return t4.debug("Searching for initialization."), s2 && s2.isComplete && (n4 = o3 ? o3.offset : s2.offset, r4 = s2.offset + s2.size - 1, i4 = n4 + "-" + r4, t4.debug("Found the initialization.  Range: " + i4)), i4;
    }, findLastTopIsoBoxCompleted: function(t5, e4, n4) {
      if (void 0 === n4 && (n4 = 0), !e4 || n4 + 8 >= e4.byteLength)
        return new Sa({ found: false });
      const a3 = e4 instanceof ArrayBuffer ? new Uint8Array(e4) : e4;
      let l3, o3 = 0, s2 = 0, u3 = null;
      for (; n4 < a3.byteLength; ) {
        const e5 = r3(a3, n4), d3 = i3(a3, n4 + 4);
        if (0 === e5)
          break;
        n4 + e5 <= a3.byteLength && (t5.indexOf(d3) >= 0 ? l3 = new Sa({ found: true, startOffsetOfLastFoundTargetBox: n4, sizeOfLastFoundTargetBox: e5, typeOfLastTargetBox: d3 }) : (o3 = n4, s2 = e5, u3 = d3)), n4 += e5;
      }
      return l3 || new Sa({ found: false, startOffsetOfLastCompletedBox: o3, sizeOfLastCompletedBox: s2, typeOfLastCompletedBox: u3 });
    }, getMediaTimescaleFromMoov: function(t5) {
      let e4 = a2(t5), n4 = e4 ? e4.getBox("mdhd") : void 0;
      return n4 ? n4.timescale : NaN;
    }, getSamplesInfo: function(t5) {
      if (!t5 || 0 === t5.byteLength)
        return { sampleList: [], lastSequenceNumber: NaN, totalDuration: NaN, numSequences: NaN };
      let e4, n4, r4, i4, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3 = a2(t5), T3 = E3.getBoxes("moof"), _3 = E3.getBoxes("mfhd");
      b3 = E3.getBoxes("moof").length, p3 = _3[_3.length - 1].sequence_number, r4 = 0, o3 = [];
      let v3 = -1, S3 = -1;
      for (f3 = 0; f3 < T3.length; f3++) {
        let t6 = T3[f3], a3 = t6.getChildBoxes("traf");
        for (d3 = 0; d3 < a3.length; d3++) {
          let f4 = a3[d3], p4 = f4.getChildBox("tfhd"), b4 = f4.getChildBox("tfdt");
          l3 = b4.baseMediaDecodeTime;
          let E4 = f4.getChildBoxes("trun"), T4 = f4.getChildBoxes("subs");
          for (c3 = 0; c3 < E4.length; c3++) {
            let a4 = E4[c3];
            for (r4 = a4.sample_count, h3 = (p4.base_data_offset || 0) + (a4.data_offset || 0), u3 = 0; u3 < r4; u3++) {
              s2 = a4.samples[u3], e4 = void 0 !== s2.sample_duration ? s2.sample_duration : p4.default_sample_duration, i4 = void 0 !== s2.sample_size ? s2.sample_size : p4.default_sample_size, n4 = void 0 !== s2.sample_composition_time_offset ? s2.sample_composition_time_offset : 0;
              let r5 = { dts: l3, cts: l3 + n4, duration: e4, offset: t6.offset + h3, size: i4, subSizes: [i4] };
              if (T4)
                for (g3 = 0; g3 < T4.length; g3++) {
                  let t7 = T4[g3];
                  if (v3 < t7.entry_count - 1 && u3 > S3 && (v3++, S3 += t7.entries[v3].sample_delta), u3 == S3) {
                    r5.subSizes = [];
                    let e5 = t7.entries[v3];
                    for (m3 = 0; m3 < e5.subsample_count; m3++)
                      r5.subSizes.push(e5.subsamples[m3].subsample_size);
                  }
                }
              o3.push(r5), h3 += i4, l3 += e4;
            }
          }
          y3 = l3 - b4.baseMediaDecodeTime;
        }
      }
      return { sampleList: o3, lastSequenceNumber: p3, totalDuration: y3, numSequences: b3 };
    }, parse: a2 }, t4 = (0, o2.default)(n3).getInstance().getLogger(e3), e3;
  }
  wa.__dashjs_factory_name = "BoxParser";
  var Ia = r2.default.getSingletonFactory(wa), ka = n2(559);
  const Aa = { 0: void 0, 1: { channels: 1, lfe: 0 }, 2: { channels: 2, lfe: 0 }, 3: { channels: 3, lfe: 0 }, 4: { channels: 4, lfe: 0 }, 5: { channels: 5, lfe: 0 }, 6: { channels: 5, lfe: 1 }, 7: { channels: 7, lfe: 1 }, 8: { channels: 2, lfe: 0 }, 9: { channels: 3, lfe: 0 }, 10: { channels: 4, lfe: 0 }, 11: { channels: 6, lfe: 1 }, 12: { channels: 7, lfe: 1 }, 13: { channels: 22, lfe: 2 }, 14: { channels: 7, lfe: 1 }, 15: { channels: 10, lfe: 2 }, 16: { channels: 9, lfe: 1 }, 17: { channels: 11, lfe: 1 }, 18: { channels: 13, lfe: 1 }, 19: { channels: 11, lfe: 1 }, 20: { channels: 13, lfe: 1 } };
  function Ra(t4) {
    return 0 == t4 ? 0 : t4.toString(2).match(/1/g).length;
  }
  function Na(t4, e3) {
    let n3, a2 = parseInt("0x" + t4, 16), r3 = a2 & e3[0], i3 = a2 & e3[1];
    return n3 = Ra(r3) + 2 * Ra(i3), n3;
  }
  var Ca = function(t4, e3 = false) {
    let n3;
    if (!t4 || !t4.schemeIdUri || !t4.value)
      return;
    const a2 = t4.schemeIdUri, r3 = t4.value;
    return "urn:mpeg:dash:23003:3:audio_channel_configuration:2011" === a2 || "urn:mpeg:mpegB:cicp:ChannelConfiguration" === a2 ? n3 = Aa[r3] && Aa[r3].channels + (e3 ? Aa[r3].lfe : 0) : "tag:dolby.com,2014:dash:audio_channel_configuration:2011" === a2 ? n3 = function(t5, e4) {
      if (4 === t5.length)
        return Na(t5, [63880 + (e4 ? 6 : 0), 1648]);
    }(r3, e3) : "tag:dolby.com,2015:dash:audio_channel_configuration:2015" === a2 ? n3 = function(t5, e4) {
      if (6 === t5.length)
        return "800000" === t5 ? 24 : Na(t5, [56834 + (e4 ? 4160 : 0), 205245]);
    }(r3, e3) : "tag:dts.com,2014:dash:audio_channel_configuration:2012" === a2 ? n3 = parseInt(r3) : "tag:dts.com,2018:uhd:audio_channel_configuration" === a2 && (n3 = function(t5, e4) {
      if (!(t5.length > 8))
        return Na(t5, [4294901727 + (e4 ? 65568 : 0), 0]);
    }(r3, e3)), n3;
  };
  function Da() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, s2, u3;
    function d3(t5, e4, n4, a3 = void 0) {
      const i4 = h3(t5, e4, n4, a3);
      return r3.isCodecSupportedBasedOnTestedConfigurations(i4, t5);
    }
    function c3(t5, e4, n4, a3, r4, i4 = void 0) {
      const l4 = h3(t5, e4, n4, i4), o3 = JSON.stringify(l4);
      a3.has(o3) || (a3.add(o3), r4.push(l4));
    }
    function h3(t5, e4, n4, r4) {
      let l4 = null;
      switch (t5) {
        case m2.default.VIDEO:
          l4 = function(t6, e5, n5) {
            let r5 = { codec: e5, width: t6 && t6.width || null, height: t6 && t6.height || null, framerate: a2.getFramerate(t6) || null, bitrate: t6 && t6.bandwidth || null, isSupported: true };
            if (t6.tagName === Vt.default.PRESELECTION && n5 && (r5.width || (r5.width = n5.width || null), r5.height || (r5.height = n5.height || null), r5.bitrate || (r5.bitrate = n5.bandwidth || null), r5.framerate || (r5.framerate = a2.getFramerate(n5) || null)), i3.get().streaming.capabilities.filterVideoColorimetryEssentialProperties && (Object.assign(r5, b3(t6)), t6.tagName === Vt.default.PRESELECTION && n5)) {
              let t7 = b3(n5), e6 = t7.isSupported;
              delete t7.isSupported, r5.isSupported = r5.isSupported && e6, p3(r5, t7);
            }
            let l5 = r5.isSupported;
            if (i3.get().streaming.capabilities.filterHDRMetadataFormatEssentialProperties && (Object.assign(r5, y3(t6)), t6.tagName === Vt.default.PRESELECTION && n5)) {
              let t7 = y3(n5), e6 = t7.isSupported;
              delete t7.isSupported, r5.isSupported = r5.isSupported && e6, p3(r5, t7);
            }
            let o3 = r5.isSupported;
            return l5 && o3 || (r5.isSupported = false), r5;
          }(e4, n4, r4);
          break;
        case m2.default.AUDIO:
          l4 = function(t6, e5, n5) {
            let a3 = { codec: e5, samplerate: t6 && t6.audioSamplingRate || null, bitrate: t6 && t6.bandwidth || null, isSupported: true };
            return t6.tagName === Vt.default.PRESELECTION && n5 && (a3.samplerate || (a3.samplerate = n5.audioSamplingRate || null), a3.bitrate || (a3.bitrate = n5.bandwidth || null)), i3.get().streaming.capabilities.filterAudioChannelConfiguration && Object.assign(a3, function(t7, e6) {
              let n6 = t7[Vt.default.AUDIO_CHANNEL_CONFIGURATION] || [], a4 = null;
              0 == n6.length && e6 && (n6 = e6[Vt.default.AUDIO_CHANNEL_CONFIGURATION] || []);
              const r5 = n6.map((t8) => Ca(t8, true));
              return r5.every((t8) => t8 == r5[0]) && (a4 = r5[0]), { channels: a4 };
            }(t6, n5)), a3;
          }(e4, n4, r4);
          break;
        default:
          return l4;
      }
      return r4 && (l4 = E3(r4, l4)), E3(e4, l4);
    }
    function p3(t5, e4) {
      for (const n4 in e4)
        Object.prototype.hasOwnProperty.call(e4, n4) && !(n4 in t5) && (t5[n4] = e4[n4]);
      return t5;
    }
    function b3(t5) {
      let e4 = { colorGamut: null, transferFunction: null, isSupported: true };
      for (const n4 of t5.EssentialProperty || [])
        n4.schemeIdUri === m2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["1", "5", "6", "7"].includes(n4.value.toString()) ? e4.colorGamut = m2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.SRGB : n4.schemeIdUri === m2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["11", "12"].includes(n4.value.toString()) ? e4.colorGamut = m2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.P3 : n4.schemeIdUri === m2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["9"].includes(n4.value.toString()) ? e4.colorGamut = m2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.REC2020 : n4.schemeIdUri === m2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["2"].includes(n4.value.toString()) ? e4.colorGamut = null : n4.schemeIdUri === m2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && (e4.isSupported = false), n4.schemeIdUri === m2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["1", "6", "13", "14", "15"].includes(n4.value.toString()) ? e4.transferFunction = m2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.SRGB : n4.schemeIdUri === m2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["16"].includes(n4.value.toString()) ? e4.transferFunction = m2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.PQ : n4.schemeIdUri === m2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["18"].includes(n4.value.toString()) ? e4.transferFunction = m2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.HLG : n4.schemeIdUri === m2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["2"].includes(n4.value.toString()) ? e4.transferFunction = null : n4.schemeIdUri === m2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && (e4.isSupported = false);
      return e4;
    }
    function y3(t5) {
      let e4 = { isSupported: true, hdrMetadataType: null };
      for (const n4 of t5.EssentialProperty || [])
        n4.schemeIdUri === m2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n4.value === m2.default.HDR_METADATA_FORMAT_VALUES.ST2094_10 ? e4.hdrMetadataType = m2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SMPTE_ST_2094_10 : n4.schemeIdUri === m2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n4.value === m2.default.HDR_METADATA_FORMAT_VALUES.SL_HDR2 ? e4.hdrMetadataType = m2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SLHDR2 : n4.schemeIdUri === m2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n4.value === m2.default.HDR_METADATA_FORMAT_VALUES.ST2094_40 ? e4.hdrMetadataType = m2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SMPTE_ST_2094_40 : n4.schemeIdUri === m2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && (e4.isSupported = false);
      return e4;
    }
    function E3(t5, e4) {
      return s2 && t5 && t5[Vt.default.CONTENT_PROTECTION] && t5[Vt.default.CONTENT_PROTECTION].length > 0 && (e4.keySystemsMetadata = s2.getSupportedKeySystemMetadataFromContentProtection(t5[Vt.default.CONTENT_PROTECTION])), e4;
    }
    function T3(t5) {
      if (!t5 || 0 === t5.length)
        return true;
      let e4 = 0;
      for (; e4 < t5.length; ) {
        if (!r3.supportsEssentialProperty(t5[e4]))
          return u3.debug("[Stream] EssentialProperty not supported: " + t5[e4].schemeIdUri), false;
        e4 += 1;
      }
      return true;
    }
    return n3 = { setConfig: function(t5) {
      t5 && (t5.adapter && (a2 = t5.adapter), t5.capabilities && (r3 = t5.capabilities), t5.settings && (i3 = t5.settings), t5.protectionController && (s2 = t5.protectionController), t5.customParametersModel && (l3 = t5.customParametersModel));
    }, filterUnsupportedFeatures: function(t5) {
      return new Promise((n4) => {
        const o3 = [m2.default.VIDEO, m2.default.AUDIO], s3 = [];
        o3.forEach((e4) => {
          const n5 = function(t6, e5) {
            if (!t6 || !t6.Period || 0 === t6.Period.length)
              return [];
            const n6 = /* @__PURE__ */ new Set(), r4 = [];
            return t6.Period.forEach((t7) => {
              t7.AdaptationSet.forEach((t8) => {
                a2.getIsTypeOf(t8, e5) && t8.Representation.forEach((i4, l4) => {
                  const o4 = a2.getCodec(t8, l4, false);
                  c3(e5, i4, o4, n6, r4);
                  const s4 = a2.getSupplementalCodecs(i4);
                  s4.length > 0 && c3(e5, i4, s4[0], n6, r4);
                });
              }), t7.Preselection && t7.Preselection.length && t7.Preselection.forEach((i4) => {
                if (a2.getPreselectionIsTypeOf(i4, t7.AdaptationSet, e5)) {
                  const l4 = a2.getCodecForPreselection(i4, t7.AdaptationSet), o4 = a2.getCommonRepresentationForPreselection(i4, t7.AdaptationSet);
                  c3(e5, i4, l4, n6, r4, o4);
                }
              });
            }), r4;
          }(t5, e4);
          n5.forEach((t6) => {
            s3.push(r3.runCodecSupportCheck(t6, e4));
          });
        }), Promise.allSettled(s3).then(() => (o3.forEach((n5) => {
          !function(t6, n6) {
            n6 && n6.Period && 0 !== n6.Period.length && n6.Period.forEach((n7) => {
              !function(t7, n8) {
                t7 && t7.AdaptationSet && 0 !== t7.AdaptationSet.length && (t7.AdaptationSet = t7.AdaptationSet.filter((t8) => {
                  a2.getIsTypeOf(t8, n8) && function(t9, e4) {
                    t9.Representation && 0 !== t9.Representation.length && (t9.Representation = t9.Representation.filter((n9, r5) => {
                      const i4 = a2.getCodec(t9, r5, false), l4 = d3(e4, n9, i4);
                      let o4 = function(t10, e5) {
                        let n10 = false;
                        const r6 = a2.getSupplementalCodecs(t10);
                        return r6.length > 0 && (r6.length > 1 && u3.warn("[CapabilitiesFilter] Multiple supplemental codecs not supported; using the first in list"), n10 = d3(e5, t10, r6[0])), n10;
                      }(n9, e4);
                      return o4 && (u3.debug(`[CapabilitiesFilter] Codec supported. Upgrading codecs string of Representation with ID ${n9.id}`), n9.codecs = n9[Vt.default.SUPPLEMENTAL_CODECS]), l4 || o4 || u3.warn(`[CapabilitiesFilter] Codec ${i4} not supported. Removing Representation with ID ${n9.id}`), l4 || o4;
                    }));
                  }(t8, n8);
                  const r4 = t8.Representation && t8.Representation.length > 0;
                  return r4 || (e3.trigger(g2.default.ADAPTATION_SET_REMOVED_NO_CAPABILITIES, { adaptationSet: t8 }), u3.warn(`[CapabilitiesFilter] AdaptationSet with ID ${t8.id ? t8.id : "undefined"} and codec ${t8.codecs ? t8.codecs : "undefined"} has been removed because of no supported Representation`)), r4;
                }));
              }(n7, t6), function(t7, e4) {
                t7 && t7.Preselection && 0 !== t7.Preselection.length && (t7.Preselection = t7.Preselection.filter((n8) => {
                  if (a2.getPreselectionIsTypeOf(n8, t7.AdaptationSet, e4)) {
                    const r4 = a2.getCodecForPreselection(n8, t7.AdaptationSet);
                    let i4 = true;
                    if (r4) {
                      let l4 = a2.getCommonRepresentationForPreselection(n8, t7.AdaptationSet);
                      i4 = d3(e4, n8, r4, l4);
                    }
                    return i4 || u3.warn(`[CapabilitiesFilter] Preselection@codecs ${r4} not supported. Removing Preselection with ID ${n8.id}`), i4;
                  }
                  return true;
                }));
              }(n7, t6);
            });
          }(n5, t5);
        }), i3.get().streaming.capabilities.filterUnsupportedEssentialProperties && function(t6) {
          t6 && t6.Period && 0 !== t6.Period.length && t6.Period.forEach((t7) => {
            t7.AdaptationSet = t7.AdaptationSet.filter((t8) => !t8.Representation || 0 === t8.Representation.length || !!T3(a2.getEssentialProperties(t8)) && (t8.Representation = t8.Representation.filter((t9) => T3(a2.getEssentialProperties(t9))), t8.Representation && t8.Representation.length > 0)), t7.Preselection && t7.Preselection.length && (t7.Preselection = t7.Preselection.filter((t8) => !!T3(a2.getEssentialProperties(t8)) || (u3.warn(`[CapabilitiesFilter] removed Preselection (id: ${t8.id}) with unsupported EssentialProperty`), false)));
          });
        }(t5), function(t6) {
          t6 && t6.Period && 0 !== t6.Period.length && t6.Period.forEach((t7) => {
            t7.Preselection && (t7.Preselection = t7.Preselection.filter((t8) => {
              const e4 = String(t8.preselectionComponents).split(" ").length;
              return 1 !== e4 && u3.warn(`Multi-Representation Preselection (id: ${t8.id}) removed as not supported.`), 1 === e4;
            }));
          });
        }(t5), function(t6) {
          t6 && t6.Period && 0 !== t6.Period.length && t6.Period.forEach((t7) => {
            t7.Preselection && (t7.Preselection = t7.Preselection.filter((e4) => {
              const n5 = String(e4.preselectionComponents).split(" "), a3 = t7.AdaptationSet.map((t8) => t8.id);
              return n5.every((t8) => a3.includes(t8));
            }));
          });
        }(t5), function(t6) {
          if (!t6 || !t6.Period || 0 === t6.Period.length)
            return Promise.resolve();
          const e4 = [];
          return t6.Period.forEach((t7) => {
            e4.push(function(t8) {
              return new Promise((e5) => {
                if (!t8 || !t8.AdaptationSet || 0 === t8.AdaptationSet.length)
                  return void e5();
                const n5 = [];
                t8.AdaptationSet.forEach((t9) => {
                  n5.push(function(t10) {
                    return new Promise((e6) => {
                      if (!t10.Representation || 0 === t10.Representation.length)
                        return void e6();
                      const n6 = [];
                      t10.Representation.forEach((t11) => {
                        n6.push(function(t12) {
                          const e7 = [], n7 = l3.getCustomCapabilitiesFilters();
                          return n7 && 0 !== n7.length ? n7.forEach((n8) => {
                            e7.push(new Promise((e8) => e8(n8(t12))));
                          }) : e7.push(Promise.resolve(true)), Promise.all(e7);
                        }(t11));
                      }), Promise.all(n6).then((n7) => {
                        t10.Representation = t10.Representation.filter((t11, e7) => {
                          let a3 = n7[e7].every((t12) => t12);
                          return a3 || u3.debug("[Stream] Representation " + t11.id + " has been removed because of unsupported CustomFilter"), a3;
                        }), e6();
                      }).catch((t11) => {
                        u3.warn("[Stream] at least one promise rejected in CustomFilter with error: ", t11), e6();
                      });
                    });
                  }(t9));
                }), Promise.all(n5).then(() => {
                  t8.AdaptationSet = t8.AdaptationSet.filter((t9) => t9.Representation && t9.Representation.length > 0), e5();
                }).catch(() => {
                  e5();
                });
              });
            }(t7));
          }), Promise.all(e4);
        }(t5))).then(() => {
          n4();
        }).catch((t6) => {
          u3.error(t6), n4();
        });
      });
    } }, u3 = (0, o2.default)(t4).getInstance().getLogger(n3), n3;
  }
  Da.__dashjs_factory_name = "CapabilitiesFilter";
  var xa = r2.default.getSingletonFactory(Da);
  function Ma() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, s2, u3, d3, c3, p3, b3;
    function y3() {
      a2 = false;
      const t5 = Lt.default.parseUserAgent();
      r3 = t5 && t5.browser && t5.browser.name && "safari" === t5.browser.name.toLowerCase();
    }
    function E3() {
      a2 = false;
    }
    function T3(t5) {
      if (t5.streamId !== u3.getActiveStreamInfo().id || !p3)
        return;
      const e4 = d3.getLiveDelay();
      d3.getBufferLevel() > e4 / 2 && (p3 = false);
    }
    function _3(t5) {
      t5.streamId === u3.getActiveStreamInfo().id && (p3 = t5.state === l2.BUFFER_EMPTY);
    }
    function v3() {
      c3.getCatchupModeEnabled() || i3.setPlaybackRate(1);
    }
    function S3() {
      d3.getIsDynamic() && c3.getCatchupModeEnabled() && (c3.getCatchupPlaybackRates().max > 0 || c3.getCatchupPlaybackRates().min < 0) && !d3.isPaused() && !d3.isSeeking() && function() {
        try {
          if (!d3.getTime() > 0 || a2)
            return false;
          if (I3() === m2.default.LIVE_CATCHUP_MODE_LOLP) {
            return function(t5, e4) {
              try {
                return Math.abs(w3()) > 0 || t5 < e4;
              } catch (t6) {
                return false;
              }
            }(d3.getBufferLevel(), s2.get().streaming.liveCatchup.playbackBufferMin);
          }
          return function() {
            try {
              return Math.abs(w3()) > 0;
            } catch (t5) {
              return false;
            }
          }();
        } catch (t5) {
          return false;
        }
      }() && function() {
        if (!a2 && i3) {
          let t5;
          const e4 = i3.getPlaybackRate(), n4 = c3.getCatchupPlaybackRates(), l3 = d3.getBufferLevel(), o3 = w3(), u4 = c3.getCatchupMaxDrift();
          if (!isNaN(u4) && u4 > 0 && o3 > u4)
            b3.info("[CatchupController]: Low Latency catchup mechanism. Latency too high, doing a seek to live point"), a2 = true, d3.seekToCurrentLive(true, false);
          else {
            const a3 = d3.getCurrentLiveLatency(), o4 = d3.getLiveDelay();
            t5 = I3() === m2.default.LIVE_CATCHUP_MODE_LOLP ? function(t6, e5, n5, a4, r4) {
              let i4;
              if (r4 < a4) {
                const e6 = Math.abs(t6.min), n6 = 5 * (r4 - a4);
                i4 = 1 - e6 + 2 * e6 / (1 + Math.pow(Math.E, -n6)), b3.debug("[LoL+ playback control_buffer-based] bufferLevel: " + r4 + ", newRate: " + i4);
              } else {
                const a5 = 0.02;
                if (Math.abs(e5 - n5) <= a5 * n5)
                  i4 = 1;
                else {
                  const a6 = e5 - n5, r5 = a6 < 0 ? Math.abs(t6.min) : t6.max, l4 = 5 * a6;
                  i4 = 1 - r5 + 2 * r5 / (1 + Math.pow(Math.E, -l4));
                }
                b3.debug("[LoL+ playback control_latency-based] latency: " + e5 + ", newRate: " + i4);
              }
              return i4;
            }(n4, a3, o4, s2.get().streaming.liveCatchup.playbackBufferMin, l3) : function(t6, e5, n5, a4) {
              if (p3)
                return 1;
              const r4 = e5 - n5, i4 = r4 < 0 ? Math.abs(t6.min) : t6.max, l4 = 5 * r4;
              let o5 = 1 - i4 + 2 * i4 / (1 + Math.pow(Math.E, -l4));
              return d3.getPlaybackStalled() && a4 <= n5 / 2 && r4 > 0 && (o5 = 1), o5;
            }(n4, a3, o4, l3);
            const u5 = r3 ? 0.25 : 0.02 / (0.5 / n4.max);
            (t5 && Math.abs(e4 - t5) >= u5 || 1 == t5) && (b3.debug(`[CatchupController]: Setting playback rate to ${t5}`), i3.setPlaybackRate(t5));
          }
        }
      }();
    }
    function w3() {
      return d3.getCurrentLiveLatency() - d3.getLiveDelay();
    }
    function I3() {
      const t5 = s2.get().streaming.liveCatchup.playbackBufferMin;
      return s2.get().streaming.liveCatchup.mode !== m2.default.LIVE_CATCHUP_MODE_LOLP || null === t5 || isNaN(t5) ? m2.default.LIVE_CATCHUP_MODE_DEFAULT : m2.default.LIVE_CATCHUP_MODE_LOLP;
    }
    function k3() {
      c3.getCatchupPlaybackRates(true);
    }
    return n3 = { reset: function() {
      e3.off(h2.default.BUFFER_LEVEL_UPDATED, T3, n3), e3.off(h2.default.BUFFER_LEVEL_STATE_CHANGED, _3, n3), e3.off(h2.default.PLAYBACK_PROGRESS, S3, n3), e3.off(h2.default.PLAYBACK_TIME_UPDATED, S3, n3), e3.off(h2.default.PLAYBACK_SEEKED, E3, n3), e3.off(g2.default.SETTING_UPDATED_CATCHUP_ENABLED, v3, n3), e3.off(g2.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, k3, n3), e3.off(g2.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, k3, n3), e3.off(h2.default.STREAM_INITIALIZED, k3, n3), y3(), i3.setPlaybackRate(1, true);
    }, setConfig: function(t5) {
      t5 && (t5.settings && (s2 = t5.settings), t5.videoModel && (i3 = t5.videoModel), t5.streamController && (u3 = t5.streamController), t5.playbackController && (d3 = t5.playbackController), t5.mediaPlayerModel && (c3 = t5.mediaPlayerModel));
    }, initialize: function() {
      e3.on(h2.default.BUFFER_LEVEL_UPDATED, T3, n3), e3.on(h2.default.BUFFER_LEVEL_STATE_CHANGED, _3, n3), e3.on(h2.default.PLAYBACK_PROGRESS, S3, n3), e3.on(h2.default.PLAYBACK_TIME_UPDATED, S3, n3), e3.on(h2.default.PLAYBACK_SEEKED, E3, n3), e3.on(g2.default.SETTING_UPDATED_CATCHUP_ENABLED, v3, n3), e3.on(g2.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, k3, n3), e3.on(g2.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, k3, n3), e3.on(h2.default.STREAM_INITIALIZED, k3, n3), k3();
    } }, b3 = (0, o2.default)(t4).getInstance().getLogger(n3), y3(), n3;
  }
  Ma.__dashjs_factory_name = "CatchupController";
  var Pa = r2.default.getSingletonFactory(Ma);
  const Oa = [{ oldKey: "dashjs_vbitrate", newKey: "dashjs_video_bitrate" }, { oldKey: "dashjs_abitrate", newKey: "dashjs_audio_bitrate" }, { oldKey: "dashjs_vsettings", newKey: "dashjs_video_settings" }, { oldKey: "dashjs_asettings", newKey: "dashjs_audio_settings" }], za = "dashjs_?_bitrate", La = "dashjs_?_settings", Fa = "localStorage", Ua = "lastBitrate", ja = "lastMediaSettings";
  function qa(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.settings;
    let a2, r3, i3;
    function l3(t5) {
      if (void 0 !== i3)
        return i3;
      let e4;
      i3 = false;
      try {
        "undefined" != typeof window && (e4 = window[t5]);
      } catch (t6) {
        return r3.warn("DOMStorage access denied: " + t6.message), i3;
      }
      if (!e4 || t5 !== Fa)
        return i3;
      try {
        e4.setItem("1", "1"), e4.removeItem("1"), i3 = true;
      } catch (t6) {
        r3.warn("DOMStorage is supported, but cannot be used: " + t6.message);
      }
      return i3;
    }
    function s2() {
      const t5 = 6e5;
      return Math.round((/* @__PURE__ */ new Date()).getTime() / t5) * t5;
    }
    function u3(t5, e4) {
      return l3(t5) && n3.get().streaming[e4 + "CachingInfo"].enabled;
    }
    function d3() {
      if (!n3)
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
    }
    return a2 = { getSavedBitrateSettings: function(t5) {
      if (d3(), !n3.get().streaming.lastBitrateCachingInfo.enabled)
        return NaN;
      let e4 = NaN;
      if (u3(Fa, Ua)) {
        const a3 = za.replace(/\?/, t5);
        try {
          const i4 = JSON.parse(localStorage.getItem(a3)) || {}, l4 = (/* @__PURE__ */ new Date()).getTime() - parseInt(i4.timestamp, 10) >= n3.get().streaming.lastBitrateCachingInfo.ttl || false, o3 = parseFloat(i4.bitrate);
          isNaN(o3) || l4 ? l4 && localStorage.removeItem(a3) : (e4 = o3, r3.debug("Last saved bitrate for " + t5 + " was " + o3));
        } catch (t6) {
          return null;
        }
      }
      return e4;
    }, setSavedBitrateSettings: function(t5, e4) {
      if (u3(Fa, Ua) && e4) {
        const n4 = za.replace(/\?/, t5);
        try {
          localStorage.setItem(n4, JSON.stringify({ bitrate: e4.toFixed(3), timestamp: s2() }));
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    }, getSavedMediaSettings: function(t5) {
      if (d3(), !n3.get().streaming.lastMediaSettingsCachingInfo.enabled)
        return null;
      let e4 = null;
      if (u3(Fa, ja)) {
        const a3 = La.replace(/\?/, t5);
        try {
          const t6 = JSON.parse(localStorage.getItem(a3)) || {}, r4 = (/* @__PURE__ */ new Date()).getTime() - parseInt(t6.timestamp, 10) >= n3.get().streaming.lastMediaSettingsCachingInfo.ttl || false;
          e4 = t6.settings, r4 && (localStorage.removeItem(a3), e4 = null);
        } catch (t6) {
          return null;
        }
      }
      return e4;
    }, setSavedMediaSettings: function(t5, e4) {
      if (u3(Fa, ja)) {
        const n4 = La.replace(/\?/, t5);
        try {
          localStorage.setItem(n4, JSON.stringify({ settings: e4, timestamp: s2() }));
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    } }, r3 = (0, o2.default)(e3).getInstance().getLogger(a2), l3(Fa) && Oa.forEach((t5) => {
      const e4 = localStorage.getItem(t5.oldKey);
      if (e4) {
        localStorage.removeItem(t5.oldKey);
        try {
          localStorage.setItem(t5.newKey, e4);
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    }), a2;
  }
  qa.__dashjs_factory_name = "DOMStorage";
  var Ba = r2.default.getSingletonFactory(qa), Ga = class {
    constructor() {
      this.accessibility = null, this.adaptationSetSwitchingCompatibleIds = [], this.audioChannelConfiguration = null, this.bitrateList = null, this.codec = null, this.contentProtection = null, this.essentialProperties = [], this.id = null, this.index = null, this.isEmbedded = null, this.isFragmented = null, this.isPreselection = false, this.isText = false, this.labels = null, this.lang = null, this.mimeType = null, this.normalizedKeyIds = /* @__PURE__ */ new Set(), this.representationCount = 0, this.roles = null, this.segmentAlignment = false, this.segmentSequenceProperties = [], this.selectionPriority = 1, this.streamInfo = null, this.subSegmentAlignment = false, this.supplementalProperties = [], this.type = null, this.viewpoint = null;
    }
  }, Ha = class {
    constructor() {
      this.id = null, this.index = null, this.start = NaN, this.duration = NaN, this.manifestInfo = null, this.isLast = true, this.isEncrypted = false;
    }
  }, Ya = class {
    constructor() {
      this.availableFrom = null, this.duration = NaN, this.dvrWindowSize = NaN, this.isDynamic = false, this.loadedTime = null, this.maxFragmentDuration = null, this.minBufferTime = NaN, this.protocol = null, this.serviceDescriptions = [];
    }
  }, Va = class {
    constructor(t4) {
      this.valid = "/" == t4[0], this.path = t4.split("/").filter((t5) => 0 !== t5.length).map((t5) => {
        let e3 = { name: t5 }, n3 = t5.indexOf("[");
        if (-1 != n3) {
          e3.name = t5.substring(0, n3);
          let a2 = t5.substring(n3 + 1, t5.length - 1);
          this.valid = this.valid && -1 == a2.indexOf("[");
          let r3 = a2.indexOf("=");
          -1 != r3 ? (e3.attribute = { name: a2.substring(1, r3), value: a2.substring(r3 + 1) }, -1 != ["'", '"'].indexOf(e3.attribute.value[0]) && (e3.attribute.value = e3.attribute.value.substring(1, e3.attribute.value.length - 1))) : e3.position = parseInt(a2, 10) - 1;
        }
        return e3;
      });
    }
    isValid() {
      return this.valid;
    }
    findsElement() {
      return !this.findsAttribute();
    }
    findsAttribute() {
      return this.path[this.path.length - 1].name.startsWith("@");
    }
    findsTextReplace() {
      return "text()" === this.path[this.path.length - 1].name;
    }
    getMpdTarget(t4, e3) {
      let n3 = null, a2 = t4, r3 = 1, i3 = "MPD";
      for (; r3 < this.path.length && null !== a2; ) {
        n3 = a2;
        let t5 = this.path[r3];
        if (i3 = t5.name, r3 !== this.path.length - 1 || !i3.startsWith("@") && "text()" !== i3) {
          let e4 = n3[i3] || [];
          if (0 === e4.length && n3[i3] && e4.push(n3[i3]), t5.position)
            a2 = e4[t5.position] || null;
          else if (t5.attribute) {
            let n4 = t5.attribute;
            a2 = e4.filter((t6) => t6[n4.name] == n4.value)[0] || null;
          } else
            a2 = Array.isArray(e4) ? e4[0] : e4;
        }
        r3++;
      }
      return null === a2 ? null : i3.startsWith("@") ? { name: i3.substring(1), leaf: a2, target: a2 } : "text()" === i3 ? { name: "__text", leaf: a2, target: a2 } : { name: i3, leaf: a2, target: e3 ? n3 : a2 };
    }
  }, Ka = class {
    constructor(t4, e3, n3) {
      this.action = t4, this.xpath = e3, this.value = n3, this.position = null;
    }
    getMpdTarget(t4) {
      let e3 = "remove" === this.action || "replace" === this.action || "before" === this.position || "after" === this.position;
      return this.xpath.getMpdTarget(t4, e3);
    }
  };
  function Wa() {
    let t4, e3;
    const n3 = this.context;
    return t4 = { getIsPatch: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.ORIGINAL_MPD_ID) || false;
    }, getMpdId: function(t5) {
      return t5 && t5[Vt.default.ORIGINAL_MPD_ID] || null;
    }, getOriginalPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.ORIGINAL_PUBLISH_TIME) ? new Date(t5[Vt.default.ORIGINAL_PUBLISH_TIME]) : null;
    }, getPatchOperations: function(t5) {
      return t5 ? (t5.__children || []).map((t6) => {
        const n4 = t6.tagName;
        if ("add" !== n4 && "remove" !== n4 && "replace" !== n4)
          return e3.warn(`Ignoring node of invalid action: ${n4}`), null;
        let a2 = t6.sel;
        if ("add" === n4 && t6.type) {
          if (!t6.type.startsWith("@"))
            return e3.warn(`Ignoring add action for prefixed namespace declaration: ${t6.type}=${t6.__text}`), null;
          a2 = `${a2}/${t6.type}`;
        }
        let r3 = new Va(a2);
        if (!r3.isValid())
          return e3.warn(`Ignoring action with invalid selector: ${n4} - ${a2}`), null;
        let i3 = null;
        r3.findsAttribute() || r3.findsTextReplace() ? i3 = t6.__text || "" : "remove" !== n4 && (i3 = t6.__children.reduce((t7, e4) => {
          let n5 = e4.tagName;
          return "#text" !== n5 && (t7[n5] = t7[n5] || [], t7[n5].push(e4)), t7;
        }, {}));
        let l3 = new Ka(n4, r3, i3);
        return "add" === n4 && (l3.position = t6.pos), l3;
      }).filter((t6) => !!t6) : [];
    }, getPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(Vt.default.PUBLISH_TIME) ? new Date(t5[Vt.default.PUBLISH_TIME]) : null;
    } }, e3 = (0, o2.default)(n3).getInstance().getLogger(t4), t4;
  }
  Wa.__dashjs_factory_name = "PatchManifestModel";
  var $a = r2.default.getSingletonFactory(Wa);
  function Qa(t4 = {}) {
    let e3 = [];
    if (t4.irregular)
      return t4.irregular;
    if (t4.regular)
      return t4.regular;
    if (t4.language) {
      e3 = e3.concat(t4.language, t4.extendedLanguageSubtags || [], t4.script || [], t4.region || [], t4.variants || []);
      const n3 = t4.extensions || [];
      let a2 = -1;
      for (; ++a2 < n3.length; ) {
        const t5 = n3[a2];
        t5.singleton && t5.extensions && t5.extensions.length > 0 && e3.push(t5.singleton, ...t5.extensions);
      }
    }
    return t4.privateuse && t4.privateuse.length > 0 && e3.push("x", ...t4.privateuse), e3.join("-");
  }
  function Xa(t4) {
    const e3 = "string" == typeof t4 ? t4.charCodeAt(0) : t4;
    return e3 >= 97 && e3 <= 122 || e3 >= 65 && e3 <= 90;
  }
  function Za(t4) {
    const e3 = "string" == typeof t4 ? t4.charCodeAt(0) : t4;
    return e3 >= 48 && e3 <= 57;
  }
  function Ja(t4) {
    return Xa(t4) || Za(t4);
  }
  const tr = ["art-lojban", "cel-gaulish", "no-bok", "no-nyn", "zh-guoyu", "zh-hakka", "zh-min", "zh-min-nan", "zh-xiang"], er = { "en-gb-oed": "en-GB-oxendict", "i-ami": "ami", "i-bnn": "bnn", "i-default": null, "i-enochian": null, "i-hak": "hak", "i-klingon": "tlh", "i-lux": "lb", "i-mingo": null, "i-navajo": "nv", "i-pwn": "pwn", "i-tao": "tao", "i-tay": "tay", "i-tsu": "tsu", "sgn-be-fr": "sfb", "sgn-be-nl": "vgt", "sgn-ch-de": "sgg", "art-lojban": "jbo", "cel-gaulish": null, "no-bok": "nb", "no-nyn": "nn", "zh-guoyu": "cmn", "zh-hakka": "hak", "zh-min": null, "zh-min-nan": "nan", "zh-xiang": "hsn" }, nr = {}.hasOwnProperty;
  function ar(t4, e3 = {}) {
    const n3 = { language: null, extendedLanguageSubtags: [], script: null, region: null, variants: [], extensions: [], privateuse: [], irregular: null, regular: null }, a2 = String(t4), r3 = a2.toLowerCase();
    let i3 = 0;
    if (null == t4)
      throw new Error("Expected string, got `" + t4 + "`");
    if (nr.call(er, r3)) {
      const t5 = er[r3];
      return void 0 !== e3.normalize && null !== e3.normalize && !e3.normalize || "string" != typeof t5 ? (n3[tr.includes(r3) ? "regular" : "irregular"] = a2, n3) : ar(t5);
    }
    for (; Xa(r3.charCodeAt(i3)) && i3 < 9; )
      i3++;
    if (i3 > 1 && i3 < 9) {
      if (n3.language = a2.slice(0, i3), i3 < 4) {
        let t5 = 0;
        for (; 45 === r3.charCodeAt(i3) && Xa(r3.charCodeAt(i3 + 1)) && Xa(r3.charCodeAt(i3 + 2)) && Xa(r3.charCodeAt(i3 + 3)) && !Xa(r3.charCodeAt(i3 + 4)); ) {
          if (t5 > 2)
            return l3(i3, 3, "Too many extended language subtags, expected at most 3 subtags");
          n3.extendedLanguageSubtags.push(a2.slice(i3 + 1, i3 + 4)), i3 += 4, t5++;
        }
      }
      for (45 === r3.charCodeAt(i3) && Xa(r3.charCodeAt(i3 + 1)) && Xa(r3.charCodeAt(i3 + 2)) && Xa(r3.charCodeAt(i3 + 3)) && Xa(r3.charCodeAt(i3 + 4)) && !Xa(r3.charCodeAt(i3 + 5)) && (n3.script = a2.slice(i3 + 1, i3 + 5), i3 += 5), 45 === r3.charCodeAt(i3) && (Xa(r3.charCodeAt(i3 + 1)) && Xa(r3.charCodeAt(i3 + 2)) && !Xa(r3.charCodeAt(i3 + 3)) ? (n3.region = a2.slice(i3 + 1, i3 + 3), i3 += 3) : Za(r3.charCodeAt(i3 + 1)) && Za(r3.charCodeAt(i3 + 2)) && Za(r3.charCodeAt(i3 + 3)) && !Za(r3.charCodeAt(i3 + 4)) && (n3.region = a2.slice(i3 + 1, i3 + 4), i3 += 4)); 45 === r3.charCodeAt(i3); ) {
        const t5 = i3 + 1;
        let e4 = t5;
        for (; Ja(r3.charCodeAt(e4)); ) {
          if (e4 - t5 > 7)
            return l3(e4, 1, "Too long variant, expected at most 8 characters");
          e4++;
        }
        if (!(e4 - t5 > 4 || e4 - t5 > 3 && Za(r3.charCodeAt(t5))))
          break;
        n3.variants.push(a2.slice(t5, e4)), i3 = e4;
      }
      for (; 45 === r3.charCodeAt(i3) && 120 !== r3.charCodeAt(i3 + 1) && Ja(r3.charCodeAt(i3 + 1)) && 45 === r3.charCodeAt(i3 + 2) && Ja(r3.charCodeAt(i3 + 3)); ) {
        let t5 = i3 + 2, e4 = 0;
        for (; 45 === r3.charCodeAt(t5) && Ja(r3.charCodeAt(t5 + 1)) && Ja(r3.charCodeAt(t5 + 2)); ) {
          const n4 = t5 + 1;
          for (t5 = n4 + 2, e4++; Ja(r3.charCodeAt(t5)); ) {
            if (t5 - n4 > 7)
              return l3(t5, 2, "Too long extension, expected at most 8 characters");
            t5++;
          }
        }
        if (!e4)
          return l3(t5, 4, "Empty extension, extensions must have at least 2 characters of content");
        n3.extensions.push({ singleton: a2.charAt(i3 + 1), extensions: a2.slice(i3 + 3, t5).split("-") }), i3 = t5;
      }
    } else
      i3 = 0;
    if (0 === i3 && 120 === r3.charCodeAt(i3) || 45 === r3.charCodeAt(i3) && 120 === r3.charCodeAt(i3 + 1)) {
      i3 = i3 ? i3 + 2 : 1;
      let t5 = i3;
      for (; 45 === r3.charCodeAt(t5) && Ja(r3.charCodeAt(t5 + 1)); ) {
        const e4 = i3 + 1;
        for (t5 = e4; Ja(r3.charCodeAt(t5)); ) {
          if (t5 - e4 > 7)
            return l3(t5, 5, "Too long private-use area, expected at most 8 characters");
          t5++;
        }
        n3.privateuse.push(a2.slice(i3 + 1, t5)), i3 = t5;
      }
    }
    return i3 !== a2.length ? l3(i3, 6, "Found superfluous content after tag") : n3;
    function l3(t5, a3, r4) {
      return e3.warning && e3.warning(r4, a3, t5), e3.forgiving ? n3 : { language: null, extendedLanguageSubtags: [], script: null, region: null, variants: [], extensions: [], privateuse: [], irregular: null, regular: null };
    }
  }
  function rr(t4, e3) {
    return function(n3, a2) {
      let r3 = lr(n3, "tag");
      const i3 = lr(null == a2 ? "*" : a2, "range"), l3 = [];
      let o3 = -1;
      for (; ++o3 < i3.length; ) {
        const n4 = i3[o3].toLowerCase();
        if (!e3 && "*" === n4)
          continue;
        let a3 = -1;
        const s2 = [];
        for (; ++a3 < r3.length; )
          if (t4(r3[a3].toLowerCase(), n4)) {
            if (!e3)
              return r3[a3];
            l3.push(r3[a3]);
          } else
            s2.push(r3[a3]);
        r3 = s2;
      }
      return e3 ? l3 : void 0;
    };
  }
  const ir = rr(function(t4, e3) {
    const n3 = t4.split("-"), a2 = e3.split("-");
    let r3 = 0, i3 = 0;
    if ("*" !== a2[i3] && n3[r3] !== a2[i3])
      return false;
    for (r3++, i3++; i3 < a2.length; )
      if ("*" !== a2[i3]) {
        if (!n3[r3])
          return false;
        if (n3[r3] !== a2[i3]) {
          if (1 === n3[r3].length)
            return false;
          r3++;
        } else
          r3++, i3++;
      } else
        i3++;
    return true;
  }, true);
  function lr(t4, e3) {
    const n3 = t4 && "string" == typeof t4 ? [t4] : t4;
    if (!n3 || "object" != typeof n3 || !("length" in n3))
      throw new Error("Invalid " + e3 + " `" + n3 + "`, expected non-empty string");
    return n3;
  }
  const or = [{ from: "in", to: "id" }, { from: "iw", to: "he" }, { from: "ji", to: "yi" }, { from: "jw", to: "jv" }, { from: "mo", to: "ro" }, { from: "scc", to: "sr" }, { from: "scr", to: "hr" }, { from: "aam", to: "aas" }, { from: "adp", to: "dz" }, { from: "aue", to: "ktz" }, { from: "ayx", to: "nun" }, { from: "bgm", to: "bcg" }, { from: "bjd", to: "drl" }, { from: "ccq", to: "rki" }, { from: "cjr", to: "mom" }, { from: "cka", to: "cmr" }, { from: "cmk", to: "xch" }, { from: "coy", to: "pij" }, { from: "cqu", to: "quh" }, { from: "drh", to: "mn" }, { from: "drw", to: "fa-af" }, { from: "gav", to: "dev" }, { from: "gfx", to: "vaj" }, { from: "ggn", to: "gvr" }, { from: "gti", to: "nyc" }, { from: "guv", to: "duz" }, { from: "hrr", to: "jal" }, { from: "ibi", to: "opa" }, { from: "ilw", to: "gal" }, { from: "jeg", to: "oyb" }, { from: "kgc", to: "tdf" }, { from: "kgh", to: "kml" }, { from: "koj", to: "kwv" }, { from: "krm", to: "bmf" }, { from: "ktr", to: "dtp" }, { from: "kvs", to: "gdj" }, { from: "kwq", to: "yam" }, { from: "kxe", to: "tvd" }, { from: "kzj", to: "dtp" }, { from: "kzt", to: "dtp" }, { from: "lii", to: "raq" }, { from: "lmm", to: "rmx" }, { from: "meg", to: "cir" }, { from: "mst", to: "mry" }, { from: "mwj", to: "vaj" }, { from: "myt", to: "mry" }, { from: "nad", to: "xny" }, { from: "ncp", to: "kdz" }, { from: "nnx", to: "ngv" }, { from: "nts", to: "pij" }, { from: "oun", to: "vaj" }, { from: "pcr", to: "adx" }, { from: "pmc", to: "huw" }, { from: "pmu", to: "phr" }, { from: "ppa", to: "bfy" }, { from: "ppr", to: "lcq" }, { from: "pry", to: "prt" }, { from: "puz", to: "pub" }, { from: "sca", to: "hle" }, { from: "skk", to: "oyb" }, { from: "tdu", to: "dtp" }, { from: "thc", to: "tpo" }, { from: "thx", to: "oyb" }, { from: "tie", to: "ras" }, { from: "tkk", to: "twm" }, { from: "tlw", to: "weo" }, { from: "tmp", to: "tyj" }, { from: "tne", to: "kak" }, { from: "tnf", to: "fa-af" }, { from: "tsf", to: "taj" }, { from: "uok", to: "ema" }, { from: "xba", to: "cax" }, { from: "xia", to: "acn" }, { from: "xkh", to: "waw" }, { from: "xsj", to: "suj" }, { from: "ybd", to: "rki" }, { from: "yma", to: "lrr" }, { from: "ymt", to: "mtm" }, { from: "yos", to: "zom" }, { from: "yuu", to: "yug" }, { from: "asd", to: "snz" }, { from: "dit", to: "dif" }, { from: "llo", to: "ngt" }, { from: "myd", to: "aog" }, { from: "nns", to: "nbr" }, { from: "agp", to: "apf" }, { from: "ais", to: "ami" }, { from: "ajt", to: "aeb" }, { from: "baz", to: "nvo" }, { from: "bhk", to: "fbl" }, { from: "bic", to: "bir" }, { from: "bjq", to: "bzc" }, { from: "bkb", to: "ebk" }, { from: "blg", to: "iba" }, { from: "btb", to: "beb" }, { from: "daf", to: "dnj" }, { from: "dap", to: "njz" }, { from: "djl", to: "dze" }, { from: "dkl", to: "aqd" }, { from: "drr", to: "kzk" }, { from: "dud", to: "uth" }, { from: "duj", to: "dwu" }, { from: "dwl", to: "dbt" }, { from: "elp", to: "amq" }, { from: "gbc", to: "wny" }, { from: "ggo", to: "esg" }, { from: "ggr", to: "gtu" }, { from: "gio", to: "aou" }, { from: "gli", to: "kzk" }, { from: "ill", to: "ilm" }, { from: "izi", to: "eza" }, { from: "jar", to: "jgk" }, { from: "kdv", to: "zkd" }, { from: "kgd", to: "ncq" }, { from: "kpp", to: "jkm" }, { from: "kxl", to: "kru" }, { from: "kzh", to: "dgl" }, { from: "lak", to: "ksp" }, { from: "leg", to: "enl" }, { from: "mgx", to: "jbk" }, { from: "mnt", to: "wnn" }, { from: "mof", to: "xnt" }, { from: "mwd", to: "dmw" }, { from: "nbf", to: "nru" }, { from: "nbx", to: "ekc" }, { from: "nln", to: "azd" }, { from: "nlr", to: "nrk" }, { from: "noo", to: "dtd" }, { from: "nxu", to: "bpp" }, { from: "pat", to: "kxr" }, { from: "rmr", to: "emx" }, { from: "sap", to: "aqt" }, { from: "sgl", to: "isk" }, { from: "smd", to: "kmb" }, { from: "snb", to: "iba" }, { from: "sul", to: "sgd" }, { from: "sum", to: "ulw" }, { from: "tgg", to: "bjp" }, { from: "thw", to: "ola" }, { from: "tid", to: "itd" }, { from: "unp", to: "wro" }, { from: "wgw", to: "wgb" }, { from: "wit", to: "nol" }, { from: "wiw", to: "nwo" }, { from: "xrq", to: "dmw" }, { from: "yen", to: "ynq" }, { from: "yiy", to: "yrm" }, { from: "zir", to: "scv" }, { from: "sgn-br", to: "bzs" }, { from: "sgn-co", to: "csn" }, { from: "sgn-de", to: "gsg" }, { from: "sgn-dk", to: "dsl" }, { from: "sgn-fr", to: "fsl" }, { from: "sgn-gb", to: "bfi" }, { from: "sgn-gr", to: "gss" }, { from: "sgn-ie", to: "isg" }, { from: "sgn-it", to: "ise" }, { from: "sgn-jp", to: "jsl" }, { from: "sgn-mx", to: "mfs" }, { from: "sgn-ni", to: "ncs" }, { from: "sgn-nl", to: "dse" }, { from: "sgn-no", to: "nsi" }, { from: "sgn-pt", to: "psr" }, { from: "sgn-se", to: "swl" }, { from: "sgn-us", to: "ase" }, { from: "sgn-za", to: "sfs" }, { from: "sgn-es", to: "ssp" }, { from: "zh-cmn", to: "zh" }, { from: "zh-cmn-hans", to: "zh-hans" }, { from: "zh-cmn-hant", to: "zh-hant" }, { from: "zh-gan", to: "gan" }, { from: "zh-wuu", to: "wuu" }, { from: "zh-yue", to: "yue" }, { from: "no-bokmal", to: "nb" }, { from: "no-nynorsk", to: "nn" }, { from: "aa-saaho", to: "ssy" }, { from: "sh", to: "sr-latn" }, { from: "cnr", to: "sr-me" }, { from: "tl", to: "fil" }, { from: "aju", to: "jrb" }, { from: "als", to: "sq" }, { from: "arb", to: "ar" }, { from: "ayr", to: "ay" }, { from: "azj", to: "az" }, { from: "bcc", to: "bal" }, { from: "bcl", to: "bik" }, { from: "bxk", to: "luy" }, { from: "bxr", to: "bua" }, { from: "cld", to: "syr" }, { from: "cmn", to: "zh" }, { from: "cwd", to: "cr" }, { from: "dgo", to: "doi" }, { from: "dhd", to: "mwr" }, { from: "dik", to: "din" }, { from: "diq", to: "zza" }, { from: "lbk", to: "bnc" }, { from: "ekk", to: "et" }, { from: "emk", to: "man" }, { from: "esk", to: "ik" }, { from: "fat", to: "ak" }, { from: "fuc", to: "ff" }, { from: "gaz", to: "om" }, { from: "gbo", to: "grb" }, { from: "gno", to: "gon" }, { from: "gug", to: "gn" }, { from: "gya", to: "gba" }, { from: "hdn", to: "hai" }, { from: "hea", to: "hmn" }, { from: "ike", to: "iu" }, { from: "kmr", to: "ku" }, { from: "knc", to: "kr" }, { from: "kng", to: "kg" }, { from: "knn", to: "kok" }, { from: "kpv", to: "kv" }, { from: "lvs", to: "lv" }, { from: "mhr", to: "chm" }, { from: "mup", to: "raj" }, { from: "khk", to: "mn" }, { from: "npi", to: "ne" }, { from: "ojg", to: "oj" }, { from: "ory", to: "or" }, { from: "pbu", to: "ps" }, { from: "pes", to: "fa" }, { from: "plt", to: "mg" }, { from: "pnb", to: "lah" }, { from: "quz", to: "qu" }, { from: "rmy", to: "rom" }, { from: "spy", to: "kln" }, { from: "src", to: "sc" }, { from: "swh", to: "sw" }, { from: "ttq", to: "tmh" }, { from: "tw", to: "ak" }, { from: "umu", to: "del" }, { from: "uzn", to: "uz" }, { from: "xpe", to: "kpe" }, { from: "xsl", to: "den" }, { from: "ydd", to: "yi" }, { from: "zai", to: "zap" }, { from: "zsm", to: "ms" }, { from: "zyb", to: "za" }, { from: "him", to: "srx" }, { from: "mnk", to: "man" }, { from: "bh", to: "bho" }, { from: "prs", to: "fa-af" }, { from: "swc", to: "sw-cd" }, { from: "aar", to: "aa" }, { from: "abk", to: "ab" }, { from: "ave", to: "ae" }, { from: "afr", to: "af" }, { from: "aka", to: "ak" }, { from: "amh", to: "am" }, { from: "arg", to: "an" }, { from: "ara", to: "ar" }, { from: "asm", to: "as" }, { from: "ava", to: "av" }, { from: "aym", to: "ay" }, { from: "aze", to: "az" }, { from: "bak", to: "ba" }, { from: "bel", to: "be" }, { from: "bul", to: "bg" }, { from: "bih", to: "bho" }, { from: "bis", to: "bi" }, { from: "bam", to: "bm" }, { from: "ben", to: "bn" }, { from: "bod", to: "bo" }, { from: "bre", to: "br" }, { from: "bos", to: "bs" }, { from: "cat", to: "ca" }, { from: "che", to: "ce" }, { from: "cha", to: "ch" }, { from: "cos", to: "co" }, { from: "cre", to: "cr" }, { from: "ces", to: "cs" }, { from: "chu", to: "cu" }, { from: "chv", to: "cv" }, { from: "cym", to: "cy" }, { from: "dan", to: "da" }, { from: "deu", to: "de" }, { from: "div", to: "dv" }, { from: "dzo", to: "dz" }, { from: "ewe", to: "ee" }, { from: "ell", to: "el" }, { from: "eng", to: "en" }, { from: "epo", to: "eo" }, { from: "spa", to: "es" }, { from: "est", to: "et" }, { from: "eus", to: "eu" }, { from: "fas", to: "fa" }, { from: "ful", to: "ff" }, { from: "fin", to: "fi" }, { from: "fij", to: "fj" }, { from: "fao", to: "fo" }, { from: "fra", to: "fr" }, { from: "fry", to: "fy" }, { from: "gle", to: "ga" }, { from: "gla", to: "gd" }, { from: "glg", to: "gl" }, { from: "grn", to: "gn" }, { from: "guj", to: "gu" }, { from: "glv", to: "gv" }, { from: "hau", to: "ha" }, { from: "heb", to: "he" }, { from: "hin", to: "hi" }, { from: "hmo", to: "ho" }, { from: "hrv", to: "hr" }, { from: "hat", to: "ht" }, { from: "hun", to: "hu" }, { from: "hye", to: "hy" }, { from: "her", to: "hz" }, { from: "ina", to: "ia" }, { from: "ind", to: "id" }, { from: "ile", to: "ie" }, { from: "ibo", to: "ig" }, { from: "iii", to: "ii" }, { from: "ipk", to: "ik" }, { from: "ido", to: "io" }, { from: "isl", to: "is" }, { from: "ita", to: "it" }, { from: "iku", to: "iu" }, { from: "jpn", to: "ja" }, { from: "jav", to: "jv" }, { from: "kat", to: "ka" }, { from: "kon", to: "kg" }, { from: "kik", to: "ki" }, { from: "kua", to: "kj" }, { from: "kaz", to: "kk" }, { from: "kal", to: "kl" }, { from: "khm", to: "km" }, { from: "kan", to: "kn" }, { from: "kor", to: "ko" }, { from: "kau", to: "kr" }, { from: "kas", to: "ks" }, { from: "kur", to: "ku" }, { from: "kom", to: "kv" }, { from: "cor", to: "kw" }, { from: "kir", to: "ky" }, { from: "lat", to: "la" }, { from: "ltz", to: "lb" }, { from: "lug", to: "lg" }, { from: "lim", to: "li" }, { from: "lin", to: "ln" }, { from: "lao", to: "lo" }, { from: "lit", to: "lt" }, { from: "lub", to: "lu" }, { from: "lav", to: "lv" }, { from: "mlg", to: "mg" }, { from: "mah", to: "mh" }, { from: "mri", to: "mi" }, { from: "mkd", to: "mk" }, { from: "mal", to: "ml" }, { from: "mon", to: "mn" }, { from: "mol", to: "ro" }, { from: "mar", to: "mr" }, { from: "msa", to: "ms" }, { from: "mlt", to: "mt" }, { from: "mya", to: "my" }, { from: "nau", to: "na" }, { from: "nob", to: "nb" }, { from: "nde", to: "nd" }, { from: "nep", to: "ne" }, { from: "ndo", to: "ng" }, { from: "nld", to: "nl" }, { from: "nno", to: "nn" }, { from: "nor", to: "no" }, { from: "nbl", to: "nr" }, { from: "nav", to: "nv" }, { from: "nya", to: "ny" }, { from: "oci", to: "oc" }, { from: "oji", to: "oj" }, { from: "orm", to: "om" }, { from: "ori", to: "or" }, { from: "oss", to: "os" }, { from: "pan", to: "pa" }, { from: "pli", to: "pi" }, { from: "pol", to: "pl" }, { from: "pus", to: "ps" }, { from: "por", to: "pt" }, { from: "que", to: "qu" }, { from: "roh", to: "rm" }, { from: "run", to: "rn" }, { from: "ron", to: "ro" }, { from: "rus", to: "ru" }, { from: "kin", to: "rw" }, { from: "san", to: "sa" }, { from: "srd", to: "sc" }, { from: "snd", to: "sd" }, { from: "sme", to: "se" }, { from: "sag", to: "sg" }, { from: "hbs", to: "sr-latn" }, { from: "sin", to: "si" }, { from: "slk", to: "sk" }, { from: "slv", to: "sl" }, { from: "smo", to: "sm" }, { from: "sna", to: "sn" }, { from: "som", to: "so" }, { from: "sqi", to: "sq" }, { from: "srp", to: "sr" }, { from: "ssw", to: "ss" }, { from: "sot", to: "st" }, { from: "sun", to: "su" }, { from: "swe", to: "sv" }, { from: "swa", to: "sw" }, { from: "tam", to: "ta" }, { from: "tel", to: "te" }, { from: "tgk", to: "tg" }, { from: "tha", to: "th" }, { from: "tir", to: "ti" }, { from: "tuk", to: "tk" }, { from: "tgl", to: "fil" }, { from: "tsn", to: "tn" }, { from: "ton", to: "to" }, { from: "tur", to: "tr" }, { from: "tso", to: "ts" }, { from: "tat", to: "tt" }, { from: "twi", to: "ak" }, { from: "tah", to: "ty" }, { from: "uig", to: "ug" }, { from: "ukr", to: "uk" }, { from: "urd", to: "ur" }, { from: "uzb", to: "uz" }, { from: "ven", to: "ve" }, { from: "vie", to: "vi" }, { from: "vol", to: "vo" }, { from: "wln", to: "wa" }, { from: "wol", to: "wo" }, { from: "xho", to: "xh" }, { from: "yid", to: "yi" }, { from: "yor", to: "yo" }, { from: "zha", to: "za" }, { from: "zho", to: "zh" }, { from: "zul", to: "zu" }, { from: "alb", to: "sq" }, { from: "arm", to: "hy" }, { from: "baq", to: "eu" }, { from: "bur", to: "my" }, { from: "chi", to: "zh" }, { from: "cze", to: "cs" }, { from: "dut", to: "nl" }, { from: "fre", to: "fr" }, { from: "geo", to: "ka" }, { from: "ger", to: "de" }, { from: "gre", to: "el" }, { from: "ice", to: "is" }, { from: "mac", to: "mk" }, { from: "mao", to: "mi" }, { from: "may", to: "ms" }, { from: "per", to: "fa" }, { from: "rum", to: "ro" }, { from: "slo", to: "sk" }, { from: "tib", to: "bo" }, { from: "wel", to: "cy" }, { from: "und-aaland", to: "und-ax" }, { from: "hy-arevmda", to: "hyw" }, { from: "und-arevmda", to: "und" }, { from: "und-arevela", to: "und" }, { from: "und-lojban", to: "und" }, { from: "und-saaho", to: "und" }, { from: "und-bokmal", to: "und" }, { from: "und-nynorsk", to: "und" }, { from: "und-hakka", to: "und" }, { from: "und-xiang", to: "und" }, { from: "und-hepburn-heploc", to: "und-alalc97" }], sr = [{ from: { field: "script", value: "qaai" }, to: { field: "script", value: "zinh" } }, { from: { field: "region", value: "bu" }, to: { field: "region", value: "mm" } }, { from: { field: "region", value: "ct" }, to: { field: "region", value: "ki" } }, { from: { field: "region", value: "dd" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "dy" }, to: { field: "region", value: "bj" } }, { from: { field: "region", value: "fx" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "hv" }, to: { field: "region", value: "bf" } }, { from: { field: "region", value: "jt" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "mi" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "nh" }, to: { field: "region", value: "vu" } }, { from: { field: "region", value: "nq" }, to: { field: "region", value: "aq" } }, { from: { field: "region", value: "pu" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "pz" }, to: { field: "region", value: "pa" } }, { from: { field: "region", value: "qu" }, to: { field: "region", value: "eu" } }, { from: { field: "region", value: "rh" }, to: { field: "region", value: "zw" } }, { from: { field: "region", value: "tp" }, to: { field: "region", value: "tl" } }, { from: { field: "region", value: "uk" }, to: { field: "region", value: "gb" } }, { from: { field: "region", value: "vd" }, to: { field: "region", value: "vn" } }, { from: { field: "region", value: "wk" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "yd" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "zr" }, to: { field: "region", value: "cd" } }, { from: { field: "region", value: "230" }, to: { field: "region", value: "et" } }, { from: { field: "region", value: "280" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "736" }, to: { field: "region", value: "sd" } }, { from: { field: "region", value: "886" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "958" }, to: { field: "region", value: "aa" } }, { from: { field: "region", value: "020" }, to: { field: "region", value: "ad" } }, { from: { field: "region", value: "784" }, to: { field: "region", value: "ae" } }, { from: { field: "region", value: "004" }, to: { field: "region", value: "af" } }, { from: { field: "region", value: "028" }, to: { field: "region", value: "ag" } }, { from: { field: "region", value: "660" }, to: { field: "region", value: "ai" } }, { from: { field: "region", value: "008" }, to: { field: "region", value: "al" } }, { from: { field: "region", value: "051" }, to: { field: "region", value: "am" } }, { from: { field: "region", value: "024" }, to: { field: "region", value: "ao" } }, { from: { field: "region", value: "010" }, to: { field: "region", value: "aq" } }, { from: { field: "region", value: "032" }, to: { field: "region", value: "ar" } }, { from: { field: "region", value: "016" }, to: { field: "region", value: "as" } }, { from: { field: "region", value: "040" }, to: { field: "region", value: "at" } }, { from: { field: "region", value: "036" }, to: { field: "region", value: "au" } }, { from: { field: "region", value: "533" }, to: { field: "region", value: "aw" } }, { from: { field: "region", value: "248" }, to: { field: "region", value: "ax" } }, { from: { field: "region", value: "031" }, to: { field: "region", value: "az" } }, { from: { field: "region", value: "070" }, to: { field: "region", value: "ba" } }, { from: { field: "region", value: "052" }, to: { field: "region", value: "bb" } }, { from: { field: "region", value: "050" }, to: { field: "region", value: "bd" } }, { from: { field: "region", value: "056" }, to: { field: "region", value: "be" } }, { from: { field: "region", value: "854" }, to: { field: "region", value: "bf" } }, { from: { field: "region", value: "100" }, to: { field: "region", value: "bg" } }, { from: { field: "region", value: "048" }, to: { field: "region", value: "bh" } }, { from: { field: "region", value: "108" }, to: { field: "region", value: "bi" } }, { from: { field: "region", value: "204" }, to: { field: "region", value: "bj" } }, { from: { field: "region", value: "652" }, to: { field: "region", value: "bl" } }, { from: { field: "region", value: "060" }, to: { field: "region", value: "bm" } }, { from: { field: "region", value: "096" }, to: { field: "region", value: "bn" } }, { from: { field: "region", value: "068" }, to: { field: "region", value: "bo" } }, { from: { field: "region", value: "535" }, to: { field: "region", value: "bq" } }, { from: { field: "region", value: "076" }, to: { field: "region", value: "br" } }, { from: { field: "region", value: "044" }, to: { field: "region", value: "bs" } }, { from: { field: "region", value: "064" }, to: { field: "region", value: "bt" } }, { from: { field: "region", value: "104" }, to: { field: "region", value: "mm" } }, { from: { field: "region", value: "074" }, to: { field: "region", value: "bv" } }, { from: { field: "region", value: "072" }, to: { field: "region", value: "bw" } }, { from: { field: "region", value: "112" }, to: { field: "region", value: "by" } }, { from: { field: "region", value: "084" }, to: { field: "region", value: "bz" } }, { from: { field: "region", value: "124" }, to: { field: "region", value: "ca" } }, { from: { field: "region", value: "166" }, to: { field: "region", value: "cc" } }, { from: { field: "region", value: "180" }, to: { field: "region", value: "cd" } }, { from: { field: "region", value: "140" }, to: { field: "region", value: "cf" } }, { from: { field: "region", value: "178" }, to: { field: "region", value: "cg" } }, { from: { field: "region", value: "756" }, to: { field: "region", value: "ch" } }, { from: { field: "region", value: "384" }, to: { field: "region", value: "ci" } }, { from: { field: "region", value: "184" }, to: { field: "region", value: "ck" } }, { from: { field: "region", value: "152" }, to: { field: "region", value: "cl" } }, { from: { field: "region", value: "120" }, to: { field: "region", value: "cm" } }, { from: { field: "region", value: "156" }, to: { field: "region", value: "cn" } }, { from: { field: "region", value: "170" }, to: { field: "region", value: "co" } }, { from: { field: "region", value: "188" }, to: { field: "region", value: "cr" } }, { from: { field: "region", value: "192" }, to: { field: "region", value: "cu" } }, { from: { field: "region", value: "132" }, to: { field: "region", value: "cv" } }, { from: { field: "region", value: "531" }, to: { field: "region", value: "cw" } }, { from: { field: "region", value: "162" }, to: { field: "region", value: "cx" } }, { from: { field: "region", value: "196" }, to: { field: "region", value: "cy" } }, { from: { field: "region", value: "203" }, to: { field: "region", value: "cz" } }, { from: { field: "region", value: "278" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "276" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "262" }, to: { field: "region", value: "dj" } }, { from: { field: "region", value: "208" }, to: { field: "region", value: "dk" } }, { from: { field: "region", value: "212" }, to: { field: "region", value: "dm" } }, { from: { field: "region", value: "214" }, to: { field: "region", value: "do" } }, { from: { field: "region", value: "012" }, to: { field: "region", value: "dz" } }, { from: { field: "region", value: "218" }, to: { field: "region", value: "ec" } }, { from: { field: "region", value: "233" }, to: { field: "region", value: "ee" } }, { from: { field: "region", value: "818" }, to: { field: "region", value: "eg" } }, { from: { field: "region", value: "732" }, to: { field: "region", value: "eh" } }, { from: { field: "region", value: "232" }, to: { field: "region", value: "er" } }, { from: { field: "region", value: "724" }, to: { field: "region", value: "es" } }, { from: { field: "region", value: "231" }, to: { field: "region", value: "et" } }, { from: { field: "region", value: "246" }, to: { field: "region", value: "fi" } }, { from: { field: "region", value: "242" }, to: { field: "region", value: "fj" } }, { from: { field: "region", value: "238" }, to: { field: "region", value: "fk" } }, { from: { field: "region", value: "583" }, to: { field: "region", value: "fm" } }, { from: { field: "region", value: "234" }, to: { field: "region", value: "fo" } }, { from: { field: "region", value: "250" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "249" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "266" }, to: { field: "region", value: "ga" } }, { from: { field: "region", value: "826" }, to: { field: "region", value: "gb" } }, { from: { field: "region", value: "308" }, to: { field: "region", value: "gd" } }, { from: { field: "region", value: "268" }, to: { field: "region", value: "ge" } }, { from: { field: "region", value: "254" }, to: { field: "region", value: "gf" } }, { from: { field: "region", value: "831" }, to: { field: "region", value: "gg" } }, { from: { field: "region", value: "288" }, to: { field: "region", value: "gh" } }, { from: { field: "region", value: "292" }, to: { field: "region", value: "gi" } }, { from: { field: "region", value: "304" }, to: { field: "region", value: "gl" } }, { from: { field: "region", value: "270" }, to: { field: "region", value: "gm" } }, { from: { field: "region", value: "324" }, to: { field: "region", value: "gn" } }, { from: { field: "region", value: "312" }, to: { field: "region", value: "gp" } }, { from: { field: "region", value: "226" }, to: { field: "region", value: "gq" } }, { from: { field: "region", value: "300" }, to: { field: "region", value: "gr" } }, { from: { field: "region", value: "239" }, to: { field: "region", value: "gs" } }, { from: { field: "region", value: "320" }, to: { field: "region", value: "gt" } }, { from: { field: "region", value: "316" }, to: { field: "region", value: "gu" } }, { from: { field: "region", value: "624" }, to: { field: "region", value: "gw" } }, { from: { field: "region", value: "328" }, to: { field: "region", value: "gy" } }, { from: { field: "region", value: "344" }, to: { field: "region", value: "hk" } }, { from: { field: "region", value: "334" }, to: { field: "region", value: "hm" } }, { from: { field: "region", value: "340" }, to: { field: "region", value: "hn" } }, { from: { field: "region", value: "191" }, to: { field: "region", value: "hr" } }, { from: { field: "region", value: "332" }, to: { field: "region", value: "ht" } }, { from: { field: "region", value: "348" }, to: { field: "region", value: "hu" } }, { from: { field: "region", value: "360" }, to: { field: "region", value: "id" } }, { from: { field: "region", value: "372" }, to: { field: "region", value: "ie" } }, { from: { field: "region", value: "376" }, to: { field: "region", value: "il" } }, { from: { field: "region", value: "833" }, to: { field: "region", value: "im" } }, { from: { field: "region", value: "356" }, to: { field: "region", value: "in" } }, { from: { field: "region", value: "086" }, to: { field: "region", value: "io" } }, { from: { field: "region", value: "368" }, to: { field: "region", value: "iq" } }, { from: { field: "region", value: "364" }, to: { field: "region", value: "ir" } }, { from: { field: "region", value: "352" }, to: { field: "region", value: "is" } }, { from: { field: "region", value: "380" }, to: { field: "region", value: "it" } }, { from: { field: "region", value: "832" }, to: { field: "region", value: "je" } }, { from: { field: "region", value: "388" }, to: { field: "region", value: "jm" } }, { from: { field: "region", value: "400" }, to: { field: "region", value: "jo" } }, { from: { field: "region", value: "392" }, to: { field: "region", value: "jp" } }, { from: { field: "region", value: "404" }, to: { field: "region", value: "ke" } }, { from: { field: "region", value: "417" }, to: { field: "region", value: "kg" } }, { from: { field: "region", value: "116" }, to: { field: "region", value: "kh" } }, { from: { field: "region", value: "296" }, to: { field: "region", value: "ki" } }, { from: { field: "region", value: "174" }, to: { field: "region", value: "km" } }, { from: { field: "region", value: "659" }, to: { field: "region", value: "kn" } }, { from: { field: "region", value: "408" }, to: { field: "region", value: "kp" } }, { from: { field: "region", value: "410" }, to: { field: "region", value: "kr" } }, { from: { field: "region", value: "414" }, to: { field: "region", value: "kw" } }, { from: { field: "region", value: "136" }, to: { field: "region", value: "ky" } }, { from: { field: "region", value: "398" }, to: { field: "region", value: "kz" } }, { from: { field: "region", value: "418" }, to: { field: "region", value: "la" } }, { from: { field: "region", value: "422" }, to: { field: "region", value: "lb" } }, { from: { field: "region", value: "662" }, to: { field: "region", value: "lc" } }, { from: { field: "region", value: "438" }, to: { field: "region", value: "li" } }, { from: { field: "region", value: "144" }, to: { field: "region", value: "lk" } }, { from: { field: "region", value: "430" }, to: { field: "region", value: "lr" } }, { from: { field: "region", value: "426" }, to: { field: "region", value: "ls" } }, { from: { field: "region", value: "440" }, to: { field: "region", value: "lt" } }, { from: { field: "region", value: "442" }, to: { field: "region", value: "lu" } }, { from: { field: "region", value: "428" }, to: { field: "region", value: "lv" } }, { from: { field: "region", value: "434" }, to: { field: "region", value: "ly" } }, { from: { field: "region", value: "504" }, to: { field: "region", value: "ma" } }, { from: { field: "region", value: "492" }, to: { field: "region", value: "mc" } }, { from: { field: "region", value: "498" }, to: { field: "region", value: "md" } }, { from: { field: "region", value: "499" }, to: { field: "region", value: "me" } }, { from: { field: "region", value: "663" }, to: { field: "region", value: "mf" } }, { from: { field: "region", value: "450" }, to: { field: "region", value: "mg" } }, { from: { field: "region", value: "584" }, to: { field: "region", value: "mh" } }, { from: { field: "region", value: "807" }, to: { field: "region", value: "mk" } }, { from: { field: "region", value: "466" }, to: { field: "region", value: "ml" } }, { from: { field: "region", value: "496" }, to: { field: "region", value: "mn" } }, { from: { field: "region", value: "446" }, to: { field: "region", value: "mo" } }, { from: { field: "region", value: "580" }, to: { field: "region", value: "mp" } }, { from: { field: "region", value: "474" }, to: { field: "region", value: "mq" } }, { from: { field: "region", value: "478" }, to: { field: "region", value: "mr" } }, { from: { field: "region", value: "500" }, to: { field: "region", value: "ms" } }, { from: { field: "region", value: "470" }, to: { field: "region", value: "mt" } }, { from: { field: "region", value: "480" }, to: { field: "region", value: "mu" } }, { from: { field: "region", value: "462" }, to: { field: "region", value: "mv" } }, { from: { field: "region", value: "454" }, to: { field: "region", value: "mw" } }, { from: { field: "region", value: "484" }, to: { field: "region", value: "mx" } }, { from: { field: "region", value: "458" }, to: { field: "region", value: "my" } }, { from: { field: "region", value: "508" }, to: { field: "region", value: "mz" } }, { from: { field: "region", value: "516" }, to: { field: "region", value: "na" } }, { from: { field: "region", value: "540" }, to: { field: "region", value: "nc" } }, { from: { field: "region", value: "562" }, to: { field: "region", value: "ne" } }, { from: { field: "region", value: "574" }, to: { field: "region", value: "nf" } }, { from: { field: "region", value: "566" }, to: { field: "region", value: "ng" } }, { from: { field: "region", value: "558" }, to: { field: "region", value: "ni" } }, { from: { field: "region", value: "528" }, to: { field: "region", value: "nl" } }, { from: { field: "region", value: "578" }, to: { field: "region", value: "no" } }, { from: { field: "region", value: "524" }, to: { field: "region", value: "np" } }, { from: { field: "region", value: "520" }, to: { field: "region", value: "nr" } }, { from: { field: "region", value: "570" }, to: { field: "region", value: "nu" } }, { from: { field: "region", value: "554" }, to: { field: "region", value: "nz" } }, { from: { field: "region", value: "512" }, to: { field: "region", value: "om" } }, { from: { field: "region", value: "591" }, to: { field: "region", value: "pa" } }, { from: { field: "region", value: "604" }, to: { field: "region", value: "pe" } }, { from: { field: "region", value: "258" }, to: { field: "region", value: "pf" } }, { from: { field: "region", value: "598" }, to: { field: "region", value: "pg" } }, { from: { field: "region", value: "608" }, to: { field: "region", value: "ph" } }, { from: { field: "region", value: "586" }, to: { field: "region", value: "pk" } }, { from: { field: "region", value: "616" }, to: { field: "region", value: "pl" } }, { from: { field: "region", value: "666" }, to: { field: "region", value: "pm" } }, { from: { field: "region", value: "612" }, to: { field: "region", value: "pn" } }, { from: { field: "region", value: "630" }, to: { field: "region", value: "pr" } }, { from: { field: "region", value: "275" }, to: { field: "region", value: "ps" } }, { from: { field: "region", value: "620" }, to: { field: "region", value: "pt" } }, { from: { field: "region", value: "585" }, to: { field: "region", value: "pw" } }, { from: { field: "region", value: "600" }, to: { field: "region", value: "py" } }, { from: { field: "region", value: "634" }, to: { field: "region", value: "qa" } }, { from: { field: "region", value: "959" }, to: { field: "region", value: "qm" } }, { from: { field: "region", value: "960" }, to: { field: "region", value: "qn" } }, { from: { field: "region", value: "962" }, to: { field: "region", value: "qp" } }, { from: { field: "region", value: "963" }, to: { field: "region", value: "qq" } }, { from: { field: "region", value: "964" }, to: { field: "region", value: "qr" } }, { from: { field: "region", value: "965" }, to: { field: "region", value: "qs" } }, { from: { field: "region", value: "966" }, to: { field: "region", value: "qt" } }, { from: { field: "region", value: "967" }, to: { field: "region", value: "eu" } }, { from: { field: "region", value: "968" }, to: { field: "region", value: "qv" } }, { from: { field: "region", value: "969" }, to: { field: "region", value: "qw" } }, { from: { field: "region", value: "970" }, to: { field: "region", value: "qx" } }, { from: { field: "region", value: "971" }, to: { field: "region", value: "qy" } }, { from: { field: "region", value: "972" }, to: { field: "region", value: "qz" } }, { from: { field: "region", value: "638" }, to: { field: "region", value: "re" } }, { from: { field: "region", value: "642" }, to: { field: "region", value: "ro" } }, { from: { field: "region", value: "688" }, to: { field: "region", value: "rs" } }, { from: { field: "region", value: "643" }, to: { field: "region", value: "ru" } }, { from: { field: "region", value: "646" }, to: { field: "region", value: "rw" } }, { from: { field: "region", value: "682" }, to: { field: "region", value: "sa" } }, { from: { field: "region", value: "090" }, to: { field: "region", value: "sb" } }, { from: { field: "region", value: "690" }, to: { field: "region", value: "sc" } }, { from: { field: "region", value: "729" }, to: { field: "region", value: "sd" } }, { from: { field: "region", value: "752" }, to: { field: "region", value: "se" } }, { from: { field: "region", value: "702" }, to: { field: "region", value: "sg" } }, { from: { field: "region", value: "654" }, to: { field: "region", value: "sh" } }, { from: { field: "region", value: "705" }, to: { field: "region", value: "si" } }, { from: { field: "region", value: "744" }, to: { field: "region", value: "sj" } }, { from: { field: "region", value: "703" }, to: { field: "region", value: "sk" } }, { from: { field: "region", value: "694" }, to: { field: "region", value: "sl" } }, { from: { field: "region", value: "674" }, to: { field: "region", value: "sm" } }, { from: { field: "region", value: "686" }, to: { field: "region", value: "sn" } }, { from: { field: "region", value: "706" }, to: { field: "region", value: "so" } }, { from: { field: "region", value: "740" }, to: { field: "region", value: "sr" } }, { from: { field: "region", value: "728" }, to: { field: "region", value: "ss" } }, { from: { field: "region", value: "678" }, to: { field: "region", value: "st" } }, { from: { field: "region", value: "222" }, to: { field: "region", value: "sv" } }, { from: { field: "region", value: "534" }, to: { field: "region", value: "sx" } }, { from: { field: "region", value: "760" }, to: { field: "region", value: "sy" } }, { from: { field: "region", value: "748" }, to: { field: "region", value: "sz" } }, { from: { field: "region", value: "796" }, to: { field: "region", value: "tc" } }, { from: { field: "region", value: "148" }, to: { field: "region", value: "td" } }, { from: { field: "region", value: "260" }, to: { field: "region", value: "tf" } }, { from: { field: "region", value: "768" }, to: { field: "region", value: "tg" } }, { from: { field: "region", value: "764" }, to: { field: "region", value: "th" } }, { from: { field: "region", value: "762" }, to: { field: "region", value: "tj" } }, { from: { field: "region", value: "772" }, to: { field: "region", value: "tk" } }, { from: { field: "region", value: "626" }, to: { field: "region", value: "tl" } }, { from: { field: "region", value: "795" }, to: { field: "region", value: "tm" } }, { from: { field: "region", value: "788" }, to: { field: "region", value: "tn" } }, { from: { field: "region", value: "776" }, to: { field: "region", value: "to" } }, { from: { field: "region", value: "792" }, to: { field: "region", value: "tr" } }, { from: { field: "region", value: "780" }, to: { field: "region", value: "tt" } }, { from: { field: "region", value: "798" }, to: { field: "region", value: "tv" } }, { from: { field: "region", value: "158" }, to: { field: "region", value: "tw" } }, { from: { field: "region", value: "834" }, to: { field: "region", value: "tz" } }, { from: { field: "region", value: "804" }, to: { field: "region", value: "ua" } }, { from: { field: "region", value: "800" }, to: { field: "region", value: "ug" } }, { from: { field: "region", value: "581" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "840" }, to: { field: "region", value: "us" } }, { from: { field: "region", value: "858" }, to: { field: "region", value: "uy" } }, { from: { field: "region", value: "860" }, to: { field: "region", value: "uz" } }, { from: { field: "region", value: "336" }, to: { field: "region", value: "va" } }, { from: { field: "region", value: "670" }, to: { field: "region", value: "vc" } }, { from: { field: "region", value: "862" }, to: { field: "region", value: "ve" } }, { from: { field: "region", value: "092" }, to: { field: "region", value: "vg" } }, { from: { field: "region", value: "850" }, to: { field: "region", value: "vi" } }, { from: { field: "region", value: "704" }, to: { field: "region", value: "vn" } }, { from: { field: "region", value: "548" }, to: { field: "region", value: "vu" } }, { from: { field: "region", value: "876" }, to: { field: "region", value: "wf" } }, { from: { field: "region", value: "882" }, to: { field: "region", value: "ws" } }, { from: { field: "region", value: "973" }, to: { field: "region", value: "xa" } }, { from: { field: "region", value: "974" }, to: { field: "region", value: "xb" } }, { from: { field: "region", value: "975" }, to: { field: "region", value: "xc" } }, { from: { field: "region", value: "976" }, to: { field: "region", value: "xd" } }, { from: { field: "region", value: "977" }, to: { field: "region", value: "xe" } }, { from: { field: "region", value: "978" }, to: { field: "region", value: "xf" } }, { from: { field: "region", value: "979" }, to: { field: "region", value: "xg" } }, { from: { field: "region", value: "980" }, to: { field: "region", value: "xh" } }, { from: { field: "region", value: "981" }, to: { field: "region", value: "xi" } }, { from: { field: "region", value: "982" }, to: { field: "region", value: "xj" } }, { from: { field: "region", value: "983" }, to: { field: "region", value: "xk" } }, { from: { field: "region", value: "984" }, to: { field: "region", value: "xl" } }, { from: { field: "region", value: "985" }, to: { field: "region", value: "xm" } }, { from: { field: "region", value: "986" }, to: { field: "region", value: "xn" } }, { from: { field: "region", value: "987" }, to: { field: "region", value: "xo" } }, { from: { field: "region", value: "988" }, to: { field: "region", value: "xp" } }, { from: { field: "region", value: "989" }, to: { field: "region", value: "xq" } }, { from: { field: "region", value: "990" }, to: { field: "region", value: "xr" } }, { from: { field: "region", value: "991" }, to: { field: "region", value: "xs" } }, { from: { field: "region", value: "992" }, to: { field: "region", value: "xt" } }, { from: { field: "region", value: "993" }, to: { field: "region", value: "xu" } }, { from: { field: "region", value: "994" }, to: { field: "region", value: "xv" } }, { from: { field: "region", value: "995" }, to: { field: "region", value: "xw" } }, { from: { field: "region", value: "996" }, to: { field: "region", value: "xx" } }, { from: { field: "region", value: "997" }, to: { field: "region", value: "xy" } }, { from: { field: "region", value: "998" }, to: { field: "region", value: "xz" } }, { from: { field: "region", value: "720" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "887" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "175" }, to: { field: "region", value: "yt" } }, { from: { field: "region", value: "710" }, to: { field: "region", value: "za" } }, { from: { field: "region", value: "894" }, to: { field: "region", value: "zm" } }, { from: { field: "region", value: "716" }, to: { field: "region", value: "zw" } }, { from: { field: "region", value: "999" }, to: { field: "region", value: "zz" } }, { from: { field: "variants", value: "polytoni" }, to: { field: "variants", value: "polyton" } }, { from: { field: "variants", value: "heploc" }, to: { field: "variants", value: "alalc97" } }], ur = { region: { 172: ["ru", "am", "az", "by", "ge", "kg", "kz", "md", "tj", "tm", "ua", "uz"], 200: ["cz", "sk"], 530: ["cw", "sx", "bq"], 532: ["cw", "sx", "bq"], 536: ["sa", "iq"], 582: ["fm", "mh", "mp", "pw"], 810: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], 830: ["je", "gg"], 890: ["rs", "me", "si", "hr", "mk", "ba"], 891: ["rs", "me"], an: ["cw", "sx", "bq"], cs: ["rs", "me"], fq: ["aq", "tf"], nt: ["sa", "iq"], pc: ["fm", "mh", "mp", "pw"], su: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], yu: ["rs", "me"], "062": ["034", "143"], ant: ["cw", "sx", "bq"], scg: ["rs", "me"], ntz: ["sa", "iq"], sun: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], yug: ["rs", "me"] } }, dr = { aa: "aa-latn-et", aaa: "aaa-latn-ng", aab: "aab-latn-ng", aac: "aac-latn-pg", aad: "aad-latn-pg", aae: "aae-latn-it", "aae-grek": "aae-grek-it", aaf: "aaf-mlym-in", "aaf-arab": "aaf-arab-in", aag: "aag-latn-pg", aah: "aah-latn-pg", aai: "aai-latn-zz", aak: "aak-latn-zz", aal: "aal-latn-cm", aan: "aan-latn-br", aao: "aao-arab-dz", aap: "aap-latn-br", aaq: "aaq-latn-us", aas: "aas-latn-tz", aat: "aat-grek-gr", aau: "aau-latn-zz", aaw: "aaw-latn-pg", aax: "aax-latn-id", aaz: "aaz-latn-id", ab: "ab-cyrl-ge", aba: "aba-latn-ci", abb: "abb-latn-cm", abc: "abc-latn-ph", abd: "abd-latn-ph", abe: "abe-latn-ca", abf: "abf-latn-my", abg: "abg-latn-pg", abh: "abh-arab-tj", abi: "abi-latn-zz", abl: "abl-rjng-id", "abl-latn": "abl-latn-id", abm: "abm-latn-ng", abn: "abn-latn-ng", abo: "abo-latn-ng", abp: "abp-latn-ph", abq: "abq-cyrl-zz", abr: "abr-latn-gh", abs: "abs-latn-id", abt: "abt-latn-zz", abu: "abu-latn-ci", abv: "abv-arab-bh", abw: "abw-latn-pg", abx: "abx-latn-ph", aby: "aby-latn-zz", abz: "abz-latn-id", aca: "aca-latn-co", acb: "acb-latn-ng", acd: "acd-latn-zz", ace: "ace-latn-id", acf: "acf-latn-lc", ach: "ach-latn-ug", acm: "acm-arab-iq", acn: "acn-latn-cn", acp: "acp-latn-ng", acq: "acq-arab-ye", acr: "acr-latn-gt", acs: "acs-latn-br", act: "act-latn-nl", acu: "acu-latn-ec", acv: "acv-latn-us", acw: "acw-arab-sa", acx: "acx-arab-om", acy: "acy-latn-cy", "acy-arab": "acy-arab-cy", "acy-grek": "acy-grek-cy", acz: "acz-latn-sd", ada: "ada-latn-gh", adb: "adb-latn-tl", add: "add-latn-cm", ade: "ade-latn-zz", adf: "adf-arab-om", adg: "adg-latn-au", adh: "adh-latn-ug", adi: "adi-latn-in", "adi-tibt": "adi-tibt-cn", adj: "adj-latn-zz", adl: "adl-latn-in", adn: "adn-latn-id", ado: "ado-latn-pg", adp: "adp-tibt-bt", adq: "adq-latn-gh", adr: "adr-latn-id", adt: "adt-latn-au", adu: "adu-latn-ng", adw: "adw-latn-br", adx: "adx-tibt-cn", ady: "ady-cyrl-ru", adz: "adz-latn-zz", ae: "ae-avst-ir", aea: "aea-latn-au", aeb: "aeb-arab-tn", aec: "aec-arab-eg", aee: "aee-arab-af", aek: "aek-latn-nc", ael: "ael-latn-cm", aem: "aem-latn-vn", aeq: "aeq-arab-pk", aer: "aer-latn-au", aeu: "aeu-latn-cn", aew: "aew-latn-pg", aey: "aey-latn-zz", aez: "aez-latn-pg", af: "af-latn-za", afb: "afb-arab-kw", afd: "afd-latn-pg", afe: "afe-latn-ng", afh: "afh-latn-gh", afi: "afi-latn-pg", afk: "afk-latn-pg", afn: "afn-latn-ng", afo: "afo-latn-ng", afp: "afp-latn-pg", afs: "afs-latn-mx", afu: "afu-latn-gh", afz: "afz-latn-id", aga: "aga-latn-pe", agb: "agb-latn-ng", agc: "agc-latn-zz", agd: "agd-latn-zz", age: "age-latn-pg", agf: "agf-latn-id", agg: "agg-latn-zz", agh: "agh-latn-cd", agi: "agi-deva-in", agj: "agj-ethi-et", "agj-arab": "agj-arab-et", agk: "agk-latn-ph", agl: "agl-latn-pg", agm: "agm-latn-zz", agn: "agn-latn-ph", ago: "ago-latn-zz", agq: "agq-latn-cm", agr: "agr-latn-pe", ags: "ags-latn-cm", agt: "agt-latn-ph", agu: "agu-latn-gt", agv: "agv-latn-ph", agw: "agw-latn-sb", agx: "agx-cyrl-ru", agy: "agy-latn-ph", agz: "agz-latn-ph", aha: "aha-latn-zz", ahb: "ahb-latn-vu", ahg: "ahg-ethi-et", ahh: "ahh-latn-id", ahi: "ahi-latn-ci", ahk: "ahk-latn-mm", "ahk-mymr": "ahk-mymr-mm", "ahk-th": "ahk-latn-th", "ahk-thai": "ahk-thai-th", ahl: "ahl-latn-zz", ahm: "ahm-latn-ci", ahn: "ahn-latn-ng", aho: "aho-ahom-in", ahp: "ahp-latn-ci", ahr: "ahr-deva-in", ahs: "ahs-latn-ng", aht: "aht-latn-us", aia: "aia-latn-sb", aib: "aib-arab-cn", aic: "aic-latn-pg", aid: "aid-latn-au", aie: "aie-latn-pg", aif: "aif-latn-pg", aig: "aig-latn-ag", aij: "aij-hebr-il", aik: "aik-latn-ng", ail: "ail-latn-pg", aim: "aim-latn-in", ain: "ain-kana-jp", "ain-latn": "ain-latn-jp", aio: "aio-mymr-in", aip: "aip-latn-id", aiq: "aiq-arab-af", air: "air-latn-id", ait: "ait-latn-br", aiw: "aiw-latn-et", "aiw-arab": "aiw-arab-et", "aiw-ethi": "aiw-ethi-et", aix: "aix-latn-pg", aiy: "aiy-latn-cf", aja: "aja-latn-ss", ajg: "ajg-latn-zz", aji: "aji-latn-nc", ajn: "ajn-latn-au", ajp: "ajp-arab-jo", ajt: "ajt-arab-tn", ajw: "ajw-latn-ng", ajz: "ajz-latn-in", ak: "ak-latn-gh", akb: "akb-latn-id", "akb-batk": "akb-batk-id", akc: "akc-latn-id", akd: "akd-latn-ng", ake: "ake-latn-gy", akf: "akf-latn-ng", akg: "akg-latn-id", akh: "akh-latn-pg", aki: "aki-latn-pg", akk: "akk-xsux-iq", akl: "akl-latn-ph", ako: "ako-latn-sr", akp: "akp-latn-gh", akq: "akq-latn-pg", akr: "akr-latn-vu", aks: "aks-latn-tg", akt: "akt-latn-pg", aku: "aku-latn-cm", akv: "akv-cyrl-ru", akw: "akw-latn-cg", akz: "akz-latn-us", ala: "ala-latn-zz", alc: "alc-latn-cl", ald: "ald-latn-ci", ale: "ale-latn-us", alf: "alf-latn-ng", alh: "alh-latn-au", ali: "ali-latn-zz", alj: "alj-latn-ph", alk: "alk-laoo-la", all: "all-mlym-in", alm: "alm-latn-vu", aln: "aln-latn-xk", alo: "alo-latn-id", alp: "alp-latn-id", alq: "alq-latn-ca", alr: "alr-cyrl-ru", alt: "alt-cyrl-ru", alu: "alu-latn-sb", alw: "alw-ethi-et", alx: "alx-latn-pg", aly: "aly-latn-au", alz: "alz-latn-cd", am: "am-ethi-et", ama: "ama-latn-br", amb: "amb-latn-ng", amc: "amc-latn-pe", ame: "ame-latn-pe", amf: "amf-latn-et", "amf-ethi": "amf-ethi-et", amg: "amg-latn-au", ami: "ami-latn-tw", amj: "amj-latn-td", amk: "amk-latn-id", amm: "amm-latn-zz", amn: "amn-latn-zz", amo: "amo-latn-ng", amp: "amp-latn-zz", amq: "amq-latn-id", amr: "amr-latn-pe", ams: "ams-jpan-jp", amt: "amt-latn-pg", amu: "amu-latn-mx", amv: "amv-latn-id", amw: "amw-syrc-sy", "amw-arab": "amw-arab-sy", "amw-armi": "amw-armi-sy", "amw-latn": "amw-latn-sy", amx: "amx-latn-au", amy: "amy-latn-au", amz: "amz-latn-au", an: "an-latn-es", ana: "ana-latn-co", anb: "anb-latn-pe", anc: "anc-latn-zz", and: "and-latn-id", ane: "ane-latn-nc", anf: "anf-latn-gh", ang: "ang-latn-gb", anh: "anh-latn-pg", ani: "ani-cyrl-ru", anj: "anj-latn-pg", ank: "ank-latn-zz", anl: "anl-latn-mm", anm: "anm-latn-in", ann: "ann-latn-ng", ano: "ano-latn-co", anp: "anp-deva-in", anr: "anr-deva-in", ans: "ans-latn-co", ant: "ant-latn-au", anu: "anu-ethi-et", "anu-arab": "anu-arab-ss", "anu-latn": "anu-latn-ss", anv: "anv-latn-cm", anw: "anw-latn-ng", anx: "anx-latn-pg", any: "any-latn-zz", anz: "anz-latn-pg", aoa: "aoa-latn-st", aob: "aob-latn-pg", aoc: "aoc-latn-ve", aod: "aod-latn-pg", aoe: "aoe-latn-pg", aof: "aof-latn-pg", aog: "aog-latn-pg", aoi: "aoi-latn-au", aoj: "aoj-latn-zz", aok: "aok-latn-nc", aol: "aol-latn-id", aom: "aom-latn-zz", aon: "aon-latn-pg", aor: "aor-latn-vu", aos: "aos-latn-id", aot: "aot-beng-bd", "aot-latn": "aot-latn-in", aox: "aox-latn-gy", aoz: "aoz-latn-id", apb: "apb-latn-sb", apc: "apc-arab-sy", apd: "apd-arab-tg", ape: "ape-latn-zz", apf: "apf-latn-ph", apg: "apg-latn-id", aph: "aph-deva-np", api: "api-latn-br", apj: "apj-latn-us", apk: "apk-latn-us", apl: "apl-latn-us", apm: "apm-latn-us", apn: "apn-latn-br", apo: "apo-latn-pg", app: "app-latn-vu", apr: "apr-latn-zz", aps: "aps-latn-zz", apt: "apt-latn-in", apu: "apu-latn-br", apv: "apv-latn-br", apw: "apw-latn-us", apx: "apx-latn-id", apy: "apy-latn-br", apz: "apz-latn-zz", aqc: "aqc-cyrl-ru", aqd: "aqd-latn-ml", aqg: "aqg-latn-ng", aqk: "aqk-latn-ng", aqm: "aqm-latn-id", aqn: "aqn-latn-ph", aqr: "aqr-latn-nc", aqt: "aqt-latn-py", aqz: "aqz-latn-br", ar: "ar-arab-eg", arc: "arc-armi-ir", "arc-nbat": "arc-nbat-jo", "arc-palm": "arc-palm-sy", ard: "ard-latn-au", are: "are-latn-au", arh: "arh-latn-zz", ari: "ari-latn-us", arj: "arj-latn-br", ark: "ark-latn-br", arl: "arl-latn-pe", arn: "arn-latn-cl", aro: "aro-latn-bo", arp: "arp-latn-us", arq: "arq-arab-dz", arr: "arr-latn-br", ars: "ars-arab-sa", aru: "aru-latn-br", arw: "arw-latn-sr", arx: "arx-latn-br", ary: "ary-arab-ma", arz: "arz-arab-eg", as: "as-beng-in", asa: "asa-latn-tz", asb: "asb-latn-ca", asc: "asc-latn-id", ase: "ase-sgnw-us", asg: "asg-latn-zz", ash: "ash-latn-pe", asi: "asi-latn-id", asj: "asj-latn-cm", ask: "ask-arab-af", asl: "asl-latn-id", asn: "asn-latn-br", aso: "aso-latn-zz", ass: "ass-latn-cm", ast: "ast-latn-es", asu: "asu-latn-br", asv: "asv-latn-cd", asx: "asx-latn-pg", asy: "asy-latn-id", asz: "asz-latn-id", ata: "ata-latn-zz", atb: "atb-latn-cn", "atb-lisu": "atb-lisu-cn", atc: "atc-latn-pe", atd: "atd-latn-ph", ate: "ate-latn-pg", atg: "atg-latn-zz", ati: "ati-latn-ci", atj: "atj-latn-ca", atk: "atk-latn-ph", atl: "atl-latn-ph", atm: "atm-latn-ph", atn: "atn-arab-ir", ato: "ato-latn-cm", atp: "atp-latn-ph", atq: "atq-latn-id", atr: "atr-latn-br", ats: "ats-latn-us", att: "att-latn-ph", atu: "atu-latn-ss", atv: "atv-cyrl-ru", atw: "atw-latn-us", atx: "atx-latn-br", aty: "aty-latn-vu", atz: "atz-latn-ph", aua: "aua-latn-sb", auc: "auc-latn-ec", aud: "aud-latn-sb", aug: "aug-latn-bj", auh: "auh-latn-zm", aui: "aui-latn-pg", auj: "auj-arab-ly", "auj-latn": "auj-latn-ly", "auj-tfng": "auj-tfng-ly", auk: "auk-latn-pg", aul: "aul-latn-vu", aum: "aum-latn-ng", aun: "aun-latn-pg", auo: "auo-latn-ng", aup: "aup-latn-pg", auq: "auq-latn-id", aur: "aur-latn-pg", aut: "aut-latn-pf", auu: "auu-latn-id", auw: "auw-latn-id", auy: "auy-latn-zz", auz: "auz-arab-uz", av: "av-cyrl-ru", avb: "avb-latn-pg", avd: "avd-arab-ir", avi: "avi-latn-ci", avk: "avk-latn-001", avl: "avl-arab-zz", avm: "avm-latn-au", avn: "avn-latn-zz", avo: "avo-latn-br", avs: "avs-latn-pe", avt: "avt-latn-zz", avu: "avu-latn-zz", avv: "avv-latn-br", awa: "awa-deva-in", awb: "awb-latn-zz", awc: "awc-latn-ng", awe: "awe-latn-br", awg: "awg-latn-au", awh: "awh-latn-id", awi: "awi-latn-pg", awk: "awk-latn-au", awm: "awm-latn-pg", awn: "awn-ethi-et", awo: "awo-latn-zz", awr: "awr-latn-id", aws: "aws-latn-id", awt: "awt-latn-br", awu: "awu-latn-id", awv: "awv-latn-id", aww: "aww-latn-pg", awx: "awx-latn-zz", awy: "awy-latn-id", axb: "axb-latn-ar", axe: "axe-latn-au", axg: "axg-latn-br", axk: "axk-latn-cf", axl: "axl-latn-au", axm: "axm-armn-am", axx: "axx-latn-nc", ay: "ay-latn-bo", aya: "aya-latn-pg", ayb: "ayb-latn-zz", ayc: "ayc-latn-pe", ayd: "ayd-latn-au", aye: "aye-latn-ng", ayg: "ayg-latn-tg", ayh: "ayh-arab-ye", ayi: "ayi-latn-ng", ayk: "ayk-latn-ng", ayl: "ayl-arab-ly", ayn: "ayn-arab-ye", ayo: "ayo-latn-py", ayp: "ayp-arab-iq", ayq: "ayq-latn-pg", ays: "ays-latn-ph", ayt: "ayt-latn-ph", ayu: "ayu-latn-ng", ayz: "ayz-latn-id", az: "az-latn-az", "az-arab": "az-arab-ir", "az-iq": "az-arab-iq", "az-ir": "az-arab-ir", "az-ru": "az-cyrl-ru", azb: "azb-arab-ir", "azb-cyrl": "azb-cyrl-az", "azb-latn": "azb-latn-az", azd: "azd-latn-mx", azg: "azg-latn-mx", azm: "azm-latn-mx", azn: "azn-latn-mx", azo: "azo-latn-cm", azt: "azt-latn-ph", azz: "azz-latn-mx", ba: "ba-cyrl-ru", baa: "baa-latn-sb", bab: "bab-latn-gw", bac: "bac-latn-id", bae: "bae-latn-ve", baf: "baf-latn-cm", bag: "bag-latn-cm", bah: "bah-latn-bs", baj: "baj-latn-id", bal: "bal-arab-pk", ban: "ban-latn-id", bao: "bao-latn-co", bap: "bap-deva-np", bar: "bar-latn-at", bas: "bas-latn-cm", bau: "bau-latn-ng", bav: "bav-latn-zz", baw: "baw-latn-cm", bax: "bax-bamu-cm", bay: "bay-latn-id", bba: "bba-latn-zz", bbb: "bbb-latn-zz", bbc: "bbc-latn-id", bbd: "bbd-latn-zz", bbe: "bbe-latn-cd", bbf: "bbf-latn-pg", bbg: "bbg-latn-ga", bbi: "bbi-latn-cm", bbj: "bbj-latn-cm", bbk: "bbk-latn-cm", bbl: "bbl-geor-ge", bbm: "bbm-latn-cd", bbn: "bbn-latn-pg", bbo: "bbo-latn-bf", bbp: "bbp-latn-zz", bbq: "bbq-latn-cm", bbr: "bbr-latn-zz", bbs: "bbs-latn-ng", bbt: "bbt-latn-ng", bbu: "bbu-latn-ng", bbv: "bbv-latn-pg", bbw: "bbw-latn-cm", bbx: "bbx-latn-cm", bby: "bby-latn-cm", bca: "bca-latn-cn", "bca-hani": "bca-hani-cn", bcb: "bcb-latn-sn", bcd: "bcd-latn-id", bce: "bce-latn-cm", bcf: "bcf-latn-zz", bcg: "bcg-latn-gn", bch: "bch-latn-zz", bci: "bci-latn-ci", bcj: "bcj-latn-au", bck: "bck-latn-au", bcm: "bcm-latn-zz", bcn: "bcn-latn-zz", bco: "bco-latn-zz", bcp: "bcp-latn-cd", bcq: "bcq-ethi-zz", bcr: "bcr-latn-ca", bcs: "bcs-latn-ng", bct: "bct-latn-cd", bcu: "bcu-latn-zz", bcv: "bcv-latn-ng", bcw: "bcw-latn-cm", bcy: "bcy-latn-ng", bcz: "bcz-latn-sn", bda: "bda-latn-sn", bdb: "bdb-latn-id", bdc: "bdc-latn-co", bdd: "bdd-latn-zz", bde: "bde-latn-ng", bdf: "bdf-latn-pg", bdg: "bdg-latn-my", bdh: "bdh-latn-ss", bdi: "bdi-latn-sd", bdj: "bdj-latn-ss", bdk: "bdk-latn-az", bdl: "bdl-latn-id", bdm: "bdm-latn-td", bdn: "bdn-latn-cm", bdo: "bdo-latn-td", bdp: "bdp-latn-tz", bdq: "bdq-latn-vn", bdr: "bdr-latn-my", bds: "bds-latn-tz", bdt: "bdt-latn-cf", bdu: "bdu-latn-cm", bdv: "bdv-orya-in", bdw: "bdw-latn-id", bdx: "bdx-latn-id", bdy: "bdy-latn-au", bdz: "bdz-arab-pk", be: "be-cyrl-by", bea: "bea-latn-ca", "bea-cans": "bea-cans-ca", beb: "beb-latn-cm", bec: "bec-latn-cm", bed: "bed-latn-id", bee: "bee-deva-in", bef: "bef-latn-zz", beh: "beh-latn-zz", bei: "bei-latn-id", bej: "bej-arab-sd", bek: "bek-latn-pg", bem: "bem-latn-zm", beo: "beo-latn-pg", bep: "bep-latn-id", beq: "beq-latn-cg", bes: "bes-latn-td", bet: "bet-latn-zz", beu: "beu-latn-id", bev: "bev-latn-ci", bew: "bew-latn-id", bex: "bex-latn-zz", bey: "bey-latn-pg", bez: "bez-latn-tz", bfa: "bfa-latn-ss", "bfa-arab": "bfa-arab-ss", bfb: "bfb-deva-in", bfc: "bfc-latn-cn", bfd: "bfd-latn-cm", bfe: "bfe-latn-id", bff: "bff-latn-cf", bfg: "bfg-latn-id", bfh: "bfh-latn-pg", bfj: "bfj-latn-cm", bfl: "bfl-latn-cf", bfm: "bfm-latn-cm", bfn: "bfn-latn-tl", bfo: "bfo-latn-bf", bfp: "bfp-latn-cm", bfq: "bfq-taml-in", bfs: "bfs-latn-cn", "bfs-hani": "bfs-hani-cn", bft: "bft-arab-pk", bfu: "bfu-tibt-in", "bfu-takr": "bfu-takr-in", bfw: "bfw-orya-in", bfx: "bfx-latn-ph", bfy: "bfy-deva-in", bfz: "bfz-deva-in", bg: "bg-cyrl-bg", bga: "bga-latn-ng", bgb: "bgb-latn-id", bgc: "bgc-deva-in", bgd: "bgd-deva-in", bgf: "bgf-latn-cm", bgg: "bgg-latn-in", bgi: "bgi-latn-ph", bgj: "bgj-latn-cm", bgn: "bgn-arab-pk", bgo: "bgo-latn-gn", bgp: "bgp-arab-pk", bgq: "bgq-deva-in", bgr: "bgr-latn-in", bgs: "bgs-latn-ph", bgt: "bgt-latn-sb", bgu: "bgu-latn-ng", bgv: "bgv-latn-id", bgw: "bgw-deva-in", bgx: "bgx-grek-tr", bgy: "bgy-latn-id", bgz: "bgz-latn-id", bha: "bha-deva-in", bhb: "bhb-deva-in", bhc: "bhc-latn-id", bhd: "bhd-deva-in", "bhd-arab": "bhd-arab-in", "bhd-takr": "bhd-takr-in", bhe: "bhe-arab-pk", bhf: "bhf-latn-pg", bhg: "bhg-latn-zz", bhh: "bhh-cyrl-il", "bhh-hebr": "bhh-hebr-il", "bhh-latn": "bhh-latn-il", bhi: "bhi-deva-in", bhj: "bhj-deva-np", bhl: "bhl-latn-zz", bhm: "bhm-arab-om", bhn: "bhn-syrc-ge", bho: "bho-deva-in", bhp: "bhp-latn-id", bhq: "bhq-latn-id", bhr: "bhr-latn-mg", bhs: "bhs-latn-cm", bht: "bht-takr-in", "bht-deva": "bht-deva-in", "bht-latn": "bht-latn-in", bhu: "bhu-deva-in", bhv: "bhv-latn-id", bhw: "bhw-latn-id", bhy: "bhy-latn-zz", bhz: "bhz-latn-id", bi: "bi-latn-vu", bia: "bia-latn-au", bib: "bib-latn-zz", bid: "bid-latn-td", bie: "bie-latn-pg", bif: "bif-latn-gw", big: "big-latn-zz", bik: "bik-latn-ph", bil: "bil-latn-ng", bim: "bim-latn-zz", bin: "bin-latn-ng", bio: "bio-latn-zz", bip: "bip-latn-cd", biq: "biq-latn-zz", bir: "bir-latn-pg", bit: "bit-latn-pg", biu: "biu-latn-in", biv: "biv-latn-gh", biw: "biw-latn-cm", biy: "biy-deva-in", biz: "biz-latn-cd", bja: "bja-latn-cd", bjb: "bjb-latn-au", bjc: "bjc-latn-pg", bjf: "bjf-syrc-il", bjg: "bjg-latn-gw", bjh: "bjh-latn-zz", bji: "bji-ethi-zz", bjj: "bjj-deva-in", bjk: "bjk-latn-pg", bjl: "bjl-latn-pg", bjm: "bjm-arab-iq", bjn: "bjn-latn-id", bjo: "bjo-latn-zz", bjp: "bjp-latn-pg", bjr: "bjr-latn-zz", bjs: "bjs-latn-bb", bjt: "bjt-latn-sn", bju: "bju-latn-cm", bjv: "bjv-latn-td", bjw: "bjw-latn-ci", bjx: "bjx-latn-ph", bjy: "bjy-latn-au", bjz: "bjz-latn-zz", bka: "bka-latn-ng", bkc: "bkc-latn-zz", bkd: "bkd-latn-ph", bkf: "bkf-latn-cd", bkg: "bkg-latn-cf", bkh: "bkh-latn-cm", bki: "bki-latn-vu", bkj: "bkj-latn-cf", bkl: "bkl-latn-id", bkm: "bkm-latn-cm", bkn: "bkn-latn-id", bko: "bko-latn-cm", bkp: "bkp-latn-cd", bkq: "bkq-latn-zz", bkr: "bkr-latn-id", bks: "bks-latn-ph", bkt: "bkt-latn-cd", bku: "bku-latn-ph", bkv: "bkv-latn-zz", bkw: "bkw-latn-cg", bkx: "bkx-latn-tl", bky: "bky-latn-ng", bkz: "bkz-latn-id", bla: "bla-latn-ca", blb: "blb-latn-sb", blc: "blc-latn-ca", bld: "bld-latn-id", ble: "ble-latn-gw", blf: "blf-latn-id", blg: "blg-latn-my", blh: "blh-latn-lr", bli: "bli-latn-cd", blj: "blj-latn-id", blk: "blk-mymr-mm", blm: "blm-latn-ss", bln: "bln-latn-ph", blo: "blo-latn-bj", blp: "blp-latn-sb", blq: "blq-latn-pg", blr: "blr-latn-cn", "blr-tale": "blr-tale-cn", "blr-thai": "blr-thai-th", bls: "bls-latn-id", blt: "blt-tavt-vn", blv: "blv-latn-ao", blw: "blw-latn-ph", blx: "blx-latn-ph", bly: "bly-latn-bj", blz: "blz-latn-id", bm: "bm-latn-ml", bma: "bma-latn-ng", bmb: "bmb-latn-cd", bmc: "bmc-latn-pg", bmd: "bmd-latn-gn", bme: "bme-latn-cf", bmf: "bmf-latn-sl", bmg: "bmg-latn-cd", bmh: "bmh-latn-zz", bmi: "bmi-latn-td", bmj: "bmj-deva-np", bmk: "bmk-latn-zz", bml: "bml-latn-cd", bmm: "bmm-latn-mg", bmn: "bmn-latn-pg", bmo: "bmo-latn-cm", bmp: "bmp-latn-pg", bmq: "bmq-latn-ml", bmr: "bmr-latn-co", bms: "bms-latn-ne", bmu: "bmu-latn-zz", bmv: "bmv-latn-cm", bmw: "bmw-latn-cg", bmx: "bmx-latn-pg", bmz: "bmz-latn-pg", bn: "bn-beng-bd", bna: "bna-latn-id", bnb: "bnb-latn-my", bnc: "bnc-latn-ph", bnd: "bnd-latn-id", bne: "bne-latn-id", bnf: "bnf-latn-id", bng: "bng-latn-zz", bni: "bni-latn-cd", bnj: "bnj-latn-ph", bnk: "bnk-latn-vu", bnm: "bnm-latn-zz", bnn: "bnn-latn-tw", bno: "bno-latn-ph", bnp: "bnp-latn-zz", bnq: "bnq-latn-id", bnr: "bnr-latn-vu", bns: "bns-deva-in", bnu: "bnu-latn-id", bnv: "bnv-latn-id", bnw: "bnw-latn-pg", bnx: "bnx-latn-cd", bny: "bny-latn-my", bnz: "bnz-latn-cm", bo: "bo-tibt-cn", boa: "boa-latn-pe", bob: "bob-latn-ke", boe: "boe-latn-cm", bof: "bof-latn-bf", boh: "boh-latn-cd", boj: "boj-latn-zz", bok: "bok-latn-cg", bol: "bol-latn-ng", bom: "bom-latn-zz", bon: "bon-latn-zz", boo: "boo-latn-ml", bop: "bop-latn-pg", boq: "boq-latn-pg", bor: "bor-latn-br", bot: "bot-latn-ss", bou: "bou-latn-tz", bov: "bov-latn-gh", bow: "bow-latn-pg", box: "box-latn-bf", boy: "boy-latn-cf", boz: "boz-latn-ml", "boz-arab": "boz-arab-ml", bpa: "bpa-latn-vu", bpc: "bpc-latn-cm", bpd: "bpd-latn-cf", bpe: "bpe-latn-pg", bpg: "bpg-latn-id", bph: "bph-cyrl-ru", bpi: "bpi-latn-pg", bpj: "bpj-latn-cd", bpk: "bpk-latn-nc", bpl: "bpl-latn-au", bpm: "bpm-latn-pg", bpo: "bpo-latn-id", bpp: "bpp-latn-id", bpq: "bpq-latn-id", bpr: "bpr-latn-ph", bps: "bps-latn-ph", bpt: "bpt-latn-au", bpu: "bpu-latn-pg", bpv: "bpv-latn-id", bpw: "bpw-latn-pg", bpx: "bpx-deva-in", bpy: "bpy-beng-in", bpz: "bpz-latn-id", bqa: "bqa-latn-bj", bqb: "bqb-latn-id", bqc: "bqc-latn-zz", bqd: "bqd-latn-cm", bqf: "bqf-latn-gn", "bqf-arab": "bqf-arab-gn", bqg: "bqg-latn-tg", bqi: "bqi-arab-ir", bqj: "bqj-latn-sn", bqk: "bqk-latn-cf", bql: "bql-latn-pg", bqm: "bqm-latn-cm", bqo: "bqo-latn-cm", bqp: "bqp-latn-zz", bqq: "bqq-latn-id", bqr: "bqr-latn-id", bqs: "bqs-latn-pg", bqt: "bqt-latn-cm", bqu: "bqu-latn-cd", bqv: "bqv-latn-ci", bqw: "bqw-latn-ng", bqx: "bqx-latn-ng", bqz: "bqz-latn-cm", br: "br-latn-fr", bra: "bra-deva-in", brb: "brb-khmr-kh", "brb-laoo": "brb-laoo-la", "brb-latn": "brb-latn-vn", brc: "brc-latn-gy", brd: "brd-deva-np", brf: "brf-latn-cd", brg: "brg-latn-bo", brh: "brh-arab-pk", bri: "bri-latn-cm", brj: "brj-latn-vu", brk: "brk-arab-sd", brl: "brl-latn-bw", brm: "brm-latn-cd", brn: "brn-latn-cr", brp: "brp-latn-id", brq: "brq-latn-pg", brr: "brr-latn-sb", brs: "brs-latn-id", brt: "brt-latn-ng", bru: "bru-latn-vn", "bru-laoo": "bru-laoo-la", "bru-thai": "bru-thai-la", brv: "brv-laoo-la", brx: "brx-deva-in", bry: "bry-latn-pg", brz: "brz-latn-zz", bs: "bs-latn-ba", bsa: "bsa-latn-id", bsb: "bsb-latn-bn", bsc: "bsc-latn-sn", bse: "bse-latn-cm", bsf: "bsf-latn-ng", bsh: "bsh-arab-af", bsi: "bsi-latn-cm", bsj: "bsj-latn-zz", bsk: "bsk-arab-pk", "bsk-latn": "bsk-latn-pk", bsl: "bsl-latn-ng", bsm: "bsm-latn-id", bsn: "bsn-latn-co", bso: "bso-latn-td", bsp: "bsp-latn-gn", bsq: "bsq-bass-lr", bsr: "bsr-latn-ng", bss: "bss-latn-cm", bst: "bst-ethi-zz", bsu: "bsu-latn-id", bsv: "bsv-latn-gn", "bsv-arab": "bsv-arab-gn", bsw: "bsw-latn-et", "bsw-ethi": "bsw-ethi-et", bsx: "bsx-latn-ng", bsy: "bsy-latn-my", bta: "bta-latn-ng", btc: "btc-latn-cm", btd: "btd-batk-id", bte: "bte-latn-ng", btf: "btf-latn-td", btg: "btg-latn-ci", bth: "bth-latn-my", bti: "bti-latn-id", btj: "btj-latn-id", btm: "btm-batk-id", btn: "btn-latn-ph", bto: "bto-latn-ph", btp: "btp-latn-pg", btq: "btq-latn-my", btr: "btr-latn-vu", bts: "bts-latn-id", "bts-batk": "bts-batk-id", btt: "btt-latn-zz", btu: "btu-latn-ng", btv: "btv-deva-pk", btw: "btw-latn-ph", btx: "btx-latn-id", "btx-batk": "btx-batk-id", bty: "bty-latn-id", btz: "btz-latn-id", bua: "bua-cyrl-ru", bub: "bub-latn-td", buc: "buc-latn-yt", bud: "bud-latn-zz", bue: "bue-latn-ca", buf: "buf-latn-cd", bug: "bug-latn-id", buh: "buh-latn-cn", bui: "bui-latn-cg", buj: "buj-latn-ng", buk: "buk-latn-zz", bum: "bum-latn-cm", bun: "bun-latn-sl", buo: "buo-latn-zz", bup: "bup-latn-id", buq: "buq-latn-pg", bus: "bus-latn-zz", but: "but-latn-pg", buu: "buu-latn-zz", buv: "buv-latn-pg", buw: "buw-latn-ga", bux: "bux-latn-ng", buy: "buy-latn-sl", buz: "buz-latn-ng", bva: "bva-latn-td", bvb: "bvb-latn-gq", bvc: "bvc-latn-sb", bvd: "bvd-latn-sb", bve: "bve-latn-id", bvf: "bvf-latn-td", bvg: "bvg-latn-cm", bvh: "bvh-latn-ng", bvi: "bvi-latn-ss", bvj: "bvj-latn-ng", bvk: "bvk-latn-id", bvm: "bvm-latn-cm", bvn: "bvn-latn-pg", bvo: "bvo-latn-td", bvq: "bvq-latn-cf", bvr: "bvr-latn-au", bvt: "bvt-latn-id", bvu: "bvu-latn-id", bvv: "bvv-latn-ve", bvw: "bvw-latn-ng", bvx: "bvx-latn-cg", bvy: "bvy-latn-ph", bvz: "bvz-latn-id", bwa: "bwa-latn-nc", bwb: "bwb-latn-fj", bwc: "bwc-latn-zm", bwd: "bwd-latn-zz", bwe: "bwe-mymr-mm", "bwe-latn": "bwe-latn-mm", bwf: "bwf-latn-pg", bwg: "bwg-latn-mz", bwh: "bwh-latn-cm", bwi: "bwi-latn-ve", bwj: "bwj-latn-bf", bwk: "bwk-latn-pg", bwl: "bwl-latn-cd", bwm: "bwm-latn-pg", bwo: "bwo-latn-et", "bwo-ethi": "bwo-ethi-et", bwp: "bwp-latn-id", bwq: "bwq-latn-bf", bwr: "bwr-latn-zz", bws: "bws-latn-cd", bwt: "bwt-latn-cm", bwu: "bwu-latn-gh", bww: "bww-latn-cd", bwx: "bwx-latn-cn", bwy: "bwy-latn-bf", bwz: "bwz-latn-cg", bxa: "bxa-latn-sb", bxb: "bxb-latn-ss", bxc: "bxc-latn-gq", bxf: "bxf-latn-pg", bxg: "bxg-latn-cd", bxh: "bxh-latn-zz", bxi: "bxi-latn-au", bxj: "bxj-latn-au", bxl: "bxl-latn-bf", bxm: "bxm-cyrl-mn", "bxm-latn": "bxm-latn-mn", "bxm-mong": "bxm-mong-mn", bxn: "bxn-latn-au", bxo: "bxo-latn-ng", bxp: "bxp-latn-cm", bxq: "bxq-latn-ng", bxs: "bxs-latn-cm", bxu: "bxu-mong-cn", "bxu-cyrl": "bxu-cyrl-cn", "bxu-latn": "bxu-latn-cn", bxv: "bxv-latn-td", bxw: "bxw-latn-ml", bxz: "bxz-latn-pg", bya: "bya-latn-ph", byb: "byb-latn-cm", byc: "byc-latn-ng", byd: "byd-latn-id", bye: "bye-latn-zz", byf: "byf-latn-ng", byh: "byh-deva-np", byi: "byi-latn-cd", byj: "byj-latn-ng", byk: "byk-latn-cn", byl: "byl-latn-id", bym: "bym-latn-au", byn: "byn-ethi-er", byp: "byp-latn-ng", byr: "byr-latn-zz", bys: "bys-latn-zz", byv: "byv-latn-cm", byw: "byw-deva-np", byx: "byx-latn-zz", byz: "byz-latn-pg", bza: "bza-latn-zz", bzb: "bzb-latn-id", bzc: "bzc-latn-mg", bzd: "bzd-latn-cr", bze: "bze-latn-ml", bzf: "bzf-latn-zz", bzh: "bzh-latn-zz", bzi: "bzi-thai-th", bzj: "bzj-latn-bz", bzk: "bzk-latn-ni", bzl: "bzl-latn-id", bzm: "bzm-latn-cd", bzn: "bzn-latn-id", bzo: "bzo-latn-cd", bzp: "bzp-latn-id", bzq: "bzq-latn-id", bzr: "bzr-latn-au", bzt: "bzt-latn-001", bzu: "bzu-latn-id", bzv: "bzv-latn-cm", bzw: "bzw-latn-zz", bzx: "bzx-latn-ml", bzy: "bzy-latn-ng", bzz: "bzz-latn-ng", ca: "ca-latn-es", caa: "caa-latn-gt", cab: "cab-latn-hn", cac: "cac-latn-gt", cad: "cad-latn-us", cae: "cae-latn-sn", caf: "caf-latn-ca", "caf-cans": "caf-cans-ca", cag: "cag-latn-py", cah: "cah-latn-pe", caj: "caj-latn-ar", cak: "cak-latn-gt", cal: "cal-latn-mp", cam: "cam-latn-nc", can: "can-latn-zz", cao: "cao-latn-bo", cap: "cap-latn-bo", caq: "caq-latn-in", car: "car-latn-ve", cas: "cas-latn-bo", cav: "cav-latn-bo", caw: "caw-latn-bo", cax: "cax-latn-bo", cay: "cay-latn-ca", caz: "caz-latn-bo", cbb: "cbb-latn-co", cbc: "cbc-latn-co", cbd: "cbd-latn-co", cbg: "cbg-latn-co", cbi: "cbi-latn-ec", cbj: "cbj-latn-zz", cbk: "cbk-latn-ph", "cbk-brai": "cbk-brai-ph", cbl: "cbl-latn-mm", cbn: "cbn-thai-th", cbo: "cbo-latn-ng", cbq: "cbq-latn-ng", cbr: "cbr-latn-pe", cbs: "cbs-latn-pe", cbt: "cbt-latn-pe", cbu: "cbu-latn-pe", cbv: "cbv-latn-co", cbw: "cbw-latn-ph", cby: "cby-latn-co", ccc: "ccc-latn-pe", ccd: "ccd-latn-br", cce: "cce-latn-mz", ccg: "ccg-latn-ng", cch: "cch-latn-ng", ccj: "ccj-latn-gw", ccl: "ccl-latn-tz", ccm: "ccm-latn-my", cco: "cco-latn-mx", ccp: "ccp-cakm-bd", ccr: "ccr-latn-sv", cde: "cde-telu-in", cdf: "cdf-latn-in", "cdf-beng": "cdf-beng-in", cdh: "cdh-deva-in", "cdh-takr": "cdh-takr-in", cdi: "cdi-gujr-in", cdj: "cdj-deva-in", cdm: "cdm-deva-np", "cdm-latn": "cdm-latn-np", cdo: "cdo-hans-cn", "cdo-hant": "cdo-hant-cn", "cdo-latn": "cdo-latn-cn", cdr: "cdr-latn-ng", cdz: "cdz-beng-in", ce: "ce-cyrl-ru", cea: "cea-latn-us", ceb: "ceb-latn-ph", ceg: "ceg-latn-py", cek: "cek-latn-mm", cen: "cen-latn-ng", cet: "cet-latn-ng", cey: "cey-latn-mm", cfa: "cfa-latn-zz", cfd: "cfd-latn-ng", cfg: "cfg-latn-ng", cfm: "cfm-latn-mm", "cfm-beng": "cfm-beng-in", cga: "cga-latn-pg", cgc: "cgc-latn-ph", cgg: "cgg-latn-ug", cgk: "cgk-tibt-bt", ch: "ch-latn-gu", chb: "chb-latn-co", chd: "chd-latn-mx", chf: "chf-latn-mx", chg: "chg-arab-tm", chh: "chh-latn-us", chj: "chj-latn-mx", chk: "chk-latn-fm", chl: "chl-latn-us", chm: "chm-cyrl-ru", chn: "chn-latn-us", "chn-dupl": "chn-dupl-us", cho: "cho-latn-us", chp: "chp-latn-ca", chq: "chq-latn-mx", chr: "chr-cher-us", cht: "cht-latn-pe", chw: "chw-latn-mz", chx: "chx-deva-np", chy: "chy-latn-us", chz: "chz-latn-mx", cia: "cia-latn-id", "cia-arab": "cia-arab-id", "cia-hang": "cia-hang-id", cib: "cib-latn-bj", cic: "cic-latn-us", cie: "cie-latn-ng", cih: "cih-deva-in", cim: "cim-latn-it", cin: "cin-latn-br", cip: "cip-latn-mx", cir: "cir-latn-nc", ciw: "ciw-latn-us", "ciw-cans": "ciw-cans-us", ciy: "ciy-latn-ve", cja: "cja-arab-kh", cje: "cje-latn-vn", cjh: "cjh-latn-us", cji: "cji-cyrl-ru", cjk: "cjk-latn-ao", cjm: "cjm-cham-vn", cjn: "cjn-latn-pg", cjo: "cjo-latn-pe", cjp: "cjp-latn-cr", cjs: "cjs-latn-ru", "cjs-cyrl": "cjs-cyrl-ru", cjv: "cjv-latn-zz", cjy: "cjy-hans-cn", "cjy-hant": "cjy-hant-cn", ckb: "ckb-arab-iq", ckl: "ckl-latn-zz", ckm: "ckm-latn-hr", "ckm-glag": "ckm-glag-hr", ckn: "ckn-latn-mm", cko: "cko-latn-zz", ckq: "ckq-latn-td", ckr: "ckr-latn-pg", cks: "cks-latn-nc", ckt: "ckt-cyrl-ru", cku: "cku-latn-us", ckv: "ckv-latn-tw", ckx: "ckx-latn-cm", cky: "cky-latn-zz", ckz: "ckz-latn-gt", cla: "cla-latn-zz", clc: "clc-latn-ca", cle: "cle-latn-mx", clh: "clh-arab-pk", cli: "cli-latn-gh", clj: "clj-latn-mm", clk: "clk-latn-in", "clk-tibt": "clk-tibt-cn", cll: "cll-latn-gh", clm: "clm-latn-us", clo: "clo-latn-mx", clt: "clt-latn-mm", clu: "clu-latn-ph", clw: "clw-cyrl-ru", cly: "cly-latn-mx", cma: "cma-latn-vn", cme: "cme-latn-zz", cmg: "cmg-soyo-mn", cmi: "cmi-latn-co", cml: "cml-latn-id", cmo: "cmo-latn-vn", "cmo-kh": "cmo-latn-kh", "cmo-khmr": "cmo-khmr-kh", cmr: "cmr-latn-mm", cms: "cms-latn-it", cmt: "cmt-latn-za", cna: "cna-tibt-in", cnb: "cnb-latn-mm", cnc: "cnc-latn-vn", cng: "cng-latn-cn", cnh: "cnh-latn-mm", cni: "cni-latn-pe", cnk: "cnk-latn-mm", cnl: "cnl-latn-mx", cnp: "cnp-hans-cn", "cnp-hant": "cnp-hant-cn", cnq: "cnq-latn-cm", cns: "cns-latn-id", cnt: "cnt-latn-mx", cnw: "cnw-latn-mm", cnx: "cnx-latn-gb", co: "co-latn-fr", coa: "coa-latn-au", cob: "cob-latn-mx", coc: "coc-latn-mx", cod: "cod-latn-pe", coe: "coe-latn-co", cof: "cof-latn-ec", cog: "cog-thai-th", coh: "coh-latn-ke", coj: "coj-latn-mx", cok: "cok-latn-mx", col: "col-latn-us", com: "com-latn-us", coo: "coo-latn-ca", cop: "cop-copt-eg", coq: "coq-latn-us", cot: "cot-latn-pe", cou: "cou-latn-sn", cox: "cox-latn-pe", coz: "coz-latn-mx", cpa: "cpa-latn-mx", cpb: "cpb-latn-pe", cpc: "cpc-latn-pe", cpg: "cpg-grek-gr", cpi: "cpi-latn-nr", cpn: "cpn-latn-gh", cpo: "cpo-latn-bf", cps: "cps-latn-ph", cpu: "cpu-latn-pe", cpx: "cpx-latn-cn", cpy: "cpy-latn-pe", cqd: "cqd-latn-cn", cr: "cr-cans-ca", crb: "crb-latn-vc", crc: "crc-latn-vu", crd: "crd-latn-us", crf: "crf-latn-co", crg: "crg-latn-ca", crh: "crh-cyrl-ua", cri: "cri-latn-st", crj: "crj-cans-ca", "crj-latn": "crj-latn-ca", crk: "crk-cans-ca", crl: "crl-cans-ca", crm: "crm-cans-ca", crn: "crn-latn-mx", cro: "cro-latn-us", crq: "crq-latn-ar", crs: "crs-latn-sc", crt: "crt-latn-ar", crv: "crv-latn-in", crw: "crw-latn-vn", crx: "crx-latn-ca", "crx-cans": "crx-cans-ca", cry: "cry-latn-ng", crz: "crz-latn-us", cs: "cs-latn-cz", csa: "csa-latn-mx", csb: "csb-latn-pl", csh: "csh-mymr-mm", "csh-latn": "csh-latn-mm", csj: "csj-latn-mm", csk: "csk-latn-sn", csm: "csm-latn-us", cso: "cso-latn-mx", csp: "csp-hans-cn", "csp-hant": "csp-hant-cn", css: "css-latn-us", cst: "cst-latn-us", csv: "csv-latn-mm", csw: "csw-cans-ca", csy: "csy-latn-mm", csz: "csz-latn-us", cta: "cta-latn-mx", ctc: "ctc-latn-us", ctd: "ctd-pauc-mm", cte: "cte-latn-mx", ctg: "ctg-beng-bd", "ctg-arab": "ctg-arab-bd", "ctg-latn": "ctg-latn-bd", cth: "cth-latn-mm", ctl: "ctl-latn-mx", ctm: "ctm-latn-us", ctn: "ctn-deva-np", cto: "cto-latn-co", ctp: "ctp-latn-mx", cts: "cts-latn-ph", ctt: "ctt-taml-in", ctu: "ctu-latn-mx", ctz: "ctz-latn-mx", cu: "cu-cyrl-ru", "cu-glag": "cu-glag-bg", cua: "cua-latn-vn", cub: "cub-latn-co", cuc: "cuc-latn-mx", cuh: "cuh-latn-ke", cui: "cui-latn-co", cuj: "cuj-latn-pe", cuk: "cuk-latn-pa", cul: "cul-latn-br", cuo: "cuo-latn-ve", cup: "cup-latn-us", cut: "cut-latn-mx", cuu: "cuu-lana-cn", cuv: "cuv-latn-cm", cux: "cux-latn-mx", cv: "cv-cyrl-ru", cvg: "cvg-latn-in", "cvg-tibt": "cvg-tibt-in", cvn: "cvn-latn-mx", cwa: "cwa-latn-tz", cwb: "cwb-latn-mz", cwe: "cwe-latn-tz", cwg: "cwg-latn-my", cwt: "cwt-latn-sn", cy: "cy-latn-gb", cya: "cya-latn-mx", cyb: "cyb-latn-bo", cyo: "cyo-latn-ph", czh: "czh-hans-cn", "czh-hant": "czh-hant-cn", czk: "czk-hebr-cz", czn: "czn-latn-mx", czt: "czt-latn-mm", da: "da-latn-dk", daa: "daa-latn-td", dac: "dac-latn-pg", dad: "dad-latn-zz", dae: "dae-latn-cm", daf: "daf-latn-ci", dag: "dag-latn-zz", dah: "dah-latn-zz", dai: "dai-latn-td", daj: "daj-latn-sd", dak: "dak-latn-us", dal: "dal-latn-ke", dam: "dam-latn-ng", dao: "dao-latn-mm", daq: "daq-deva-in", dar: "dar-cyrl-ru", das: "das-latn-ci", dau: "dau-latn-td", dav: "dav-latn-ke", daw: "daw-latn-ph", dax: "dax-latn-au", daz: "daz-latn-id", dba: "dba-latn-ml", dbb: "dbb-latn-ng", dbd: "dbd-latn-zz", dbe: "dbe-latn-id", dbf: "dbf-latn-id", dbg: "dbg-latn-ml", dbi: "dbi-latn-ng", dbj: "dbj-latn-my", "dbj-arab": "dbj-arab-my", dbl: "dbl-latn-au", dbm: "dbm-latn-ng", dbn: "dbn-latn-id", dbo: "dbo-latn-ng", dbp: "dbp-latn-ng", dbq: "dbq-latn-zz", dbt: "dbt-latn-ml", dbu: "dbu-latn-ml", dbv: "dbv-latn-ng", dbw: "dbw-latn-ml", dby: "dby-latn-pg", dcc: "dcc-arab-in", dcr: "dcr-latn-vi", dda: "dda-latn-au", ddd: "ddd-latn-ss", dde: "dde-latn-cg", ddg: "ddg-latn-tl", ddi: "ddi-latn-pg", ddj: "ddj-latn-au", ddn: "ddn-latn-zz", ddo: "ddo-cyrl-ru", ddr: "ddr-latn-au", dds: "dds-latn-ml", ddw: "ddw-latn-id", de: "de-latn-de", dec: "dec-latn-sd", ded: "ded-latn-zz", dee: "dee-latn-lr", def: "def-arab-ir", deg: "deg-latn-ng", deh: "deh-arab-pk", dei: "dei-latn-id", dek: "dek-latn-cm", del: "del-latn-us", dem: "dem-latn-id", den: "den-latn-ca", deq: "deq-latn-cf", der: "der-beng-in", "der-latn": "der-latn-in", des: "des-latn-br", dev: "dev-latn-pg", dez: "dez-latn-cd", dga: "dga-latn-zz", dgb: "dgb-latn-ml", dgc: "dgc-latn-ph", dgd: "dgd-latn-bf", dge: "dge-latn-pg", dgg: "dgg-latn-pg", dgh: "dgh-latn-zz", dgi: "dgi-latn-zz", dgk: "dgk-latn-cf", dgl: "dgl-arab-zz", dgn: "dgn-latn-au", dgr: "dgr-latn-ca", dgs: "dgs-latn-bf", dgt: "dgt-latn-au", dgw: "dgw-latn-au", dgx: "dgx-latn-pg", dgz: "dgz-latn-zz", dhg: "dhg-latn-au", dhi: "dhi-deva-np", dhl: "dhl-latn-au", dhm: "dhm-latn-ao", dhn: "dhn-gujr-in", dho: "dho-deva-in", dhr: "dhr-latn-au", dhs: "dhs-latn-tz", dhu: "dhu-latn-au", dhv: "dhv-latn-nc", dhw: "dhw-deva-np", dhx: "dhx-latn-au", dia: "dia-latn-zz", dib: "dib-latn-ss", dic: "dic-latn-ci", did: "did-latn-ss", dif: "dif-latn-au", dig: "dig-latn-ke", dih: "dih-latn-mx", dii: "dii-latn-cm", dij: "dij-latn-id", dil: "dil-latn-sd", din: "din-latn-ss", "din-arab": "din-arab-ss", dio: "dio-latn-ng", dip: "dip-latn-ss", dir: "dir-latn-ng", dis: "dis-latn-in", "dis-beng": "dis-beng-in", diu: "diu-latn-na", diw: "diw-latn-ss", dix: "dix-latn-vu", diy: "diy-latn-id", diz: "diz-latn-cd", dja: "dja-latn-au", djb: "djb-latn-au", djc: "djc-latn-td", djd: "djd-latn-au", dje: "dje-latn-ne", djf: "djf-latn-au", dji: "dji-latn-au", djj: "djj-latn-au", djk: "djk-latn-sr", djm: "djm-latn-ml", djn: "djn-latn-au", djo: "djo-latn-id", djr: "djr-latn-au", dju: "dju-latn-pg", djw: "djw-latn-au", dka: "dka-tibt-bt", dkg: "dkg-latn-ng", dkk: "dkk-latn-id", dkr: "dkr-latn-my", dks: "dks-latn-ss", dkx: "dkx-latn-cm", dlg: "dlg-cyrl-ru", dlm: "dlm-latn-hr", dln: "dln-latn-in", dma: "dma-latn-ga", dmb: "dmb-latn-ml", dmc: "dmc-latn-pg", dmd: "dmd-latn-au", dme: "dme-latn-cm", dmf: "dmf-medf-ng", dmg: "dmg-latn-my", dmk: "dmk-arab-pk", dml: "dml-arab-pk", dmm: "dmm-latn-cm", dmo: "dmo-latn-cm", dmr: "dmr-latn-id", dms: "dms-latn-id", dmu: "dmu-latn-id", dmv: "dmv-latn-my", dmw: "dmw-latn-au", dmx: "dmx-latn-mz", dmy: "dmy-latn-id", dna: "dna-latn-id", dnd: "dnd-latn-pg", dne: "dne-latn-tz", dng: "dng-cyrl-kg", "dng-arab": "dng-arab-kg", dni: "dni-latn-id", dnj: "dnj-latn-ci", dnk: "dnk-latn-id", dnn: "dnn-latn-bf", dno: "dno-latn-cd", dnr: "dnr-latn-pg", dnt: "dnt-latn-id", dnu: "dnu-mymr-mm", dnv: "dnv-mymr-mm", dnw: "dnw-latn-id", dny: "dny-latn-br", doa: "doa-latn-pg", dob: "dob-latn-zz", doc: "doc-latn-cn", doe: "doe-latn-tz", dof: "dof-latn-pg", doh: "doh-latn-ng", doi: "doi-deva-in", dok: "dok-latn-id", dol: "dol-latn-pg", don: "don-latn-pg", doo: "doo-latn-cd", dop: "dop-latn-zz", dor: "dor-latn-sb", dos: "dos-latn-bf", dot: "dot-latn-ng", dov: "dov-latn-zw", dow: "dow-latn-zz", dox: "dox-ethi-et", doy: "doy-latn-gh", dpp: "dpp-latn-my", drc: "drc-latn-pt", dre: "dre-tibt-np", drg: "drg-latn-my", drh: "drh-mong-cn", dri: "dri-latn-zz", drl: "drl-latn-au", drn: "drn-latn-id", dro: "dro-latn-my", drq: "drq-deva-np", drs: "drs-ethi-zz", drt: "drt-latn-nl", dru: "dru-latn-tw", dry: "dry-deva-np", dsb: "dsb-latn-de", dsh: "dsh-latn-ke", dsi: "dsi-latn-td", dsn: "dsn-latn-id", dso: "dso-orya-in", dsq: "dsq-latn-ml", "dsq-arab": "dsq-arab-ml", dta: "dta-latn-cn", "dta-cyrl": "dta-cyrl-cn", "dta-hans": "dta-hans-cn", dtb: "dtb-latn-my", dtd: "dtd-latn-ca", dth: "dth-latn-au", dti: "dti-latn-ml", dtk: "dtk-latn-ml", dtm: "dtm-latn-ml", dto: "dto-latn-ml", dtp: "dtp-latn-my", dtr: "dtr-latn-my", dts: "dts-latn-zz", dtt: "dtt-latn-ml", dtu: "dtu-latn-ml", dty: "dty-deva-np", dua: "dua-latn-cm", dub: "dub-gujr-in", duc: "duc-latn-zz", dud: "dud-latn-zz", due: "due-latn-ph", duf: "duf-latn-nc", dug: "dug-latn-zz", duh: "duh-deva-in", "duh-gujr": "duh-gujr-in", dui: "dui-latn-pg", duk: "duk-latn-pg", dul: "dul-latn-ph", dum: "dum-latn-nl", dun: "dun-latn-id", duo: "duo-latn-ph", dup: "dup-latn-id", duq: "duq-latn-id", dur: "dur-latn-cm", dus: "dus-deva-np", duu: "duu-latn-cn", duv: "duv-latn-id", duw: "duw-latn-id", dux: "dux-latn-ml", duy: "duy-latn-ph", duz: "duz-latn-cm", dv: "dv-thaa-mv", dva: "dva-latn-zz", dwa: "dwa-latn-ng", dwk: "dwk-orya-in", dwr: "dwr-latn-et", "dwr-ethi": "dwr-ethi-et", dws: "dws-latn-001", dwu: "dwu-latn-au", dww: "dww-latn-zz", dwy: "dwy-latn-au", dwz: "dwz-deva-np", dya: "dya-latn-bf", dyb: "dyb-latn-au", dyd: "dyd-latn-au", dyg: "dyg-latn-ph", dyi: "dyi-latn-ci", dym: "dym-latn-ml", dyn: "dyn-latn-au", dyo: "dyo-latn-sn", dyu: "dyu-latn-bf", dyy: "dyy-latn-au", dz: "dz-tibt-bt", dza: "dza-latn-ng", dze: "dze-latn-au", dzg: "dzg-latn-zz", dzl: "dzl-tibt-bt", dzn: "dzn-latn-cd", eaa: "eaa-latn-au", ebc: "ebc-latn-id", ebg: "ebg-latn-ng", ebk: "ebk-latn-ph", ebo: "ebo-latn-cg", ebr: "ebr-latn-ci", ebu: "ebu-latn-ke", ecr: "ecr-grek-gr", ecy: "ecy-cprt-cy", ee: "ee-latn-gh", efa: "efa-latn-ng", efe: "efe-latn-cd", efi: "efi-latn-ng", ega: "ega-latn-ci", egl: "egl-latn-it", egm: "egm-latn-tz", ego: "ego-latn-ng", egy: "egy-egyp-eg", ehu: "ehu-latn-ng", eip: "eip-latn-id", eit: "eit-latn-pg", eiv: "eiv-latn-pg", eja: "eja-latn-gw", eka: "eka-latn-zz", eke: "eke-latn-ng", ekg: "ekg-latn-id", eki: "eki-latn-ng", ekl: "ekl-latn-bd", ekm: "ekm-latn-cm", eko: "eko-latn-mz", "eko-arab": "eko-arab-mz", ekp: "ekp-latn-ng", ekr: "ekr-latn-ng", eky: "eky-kali-mm", el: "el-grek-gr", ele: "ele-latn-pg", elk: "elk-latn-pg", elm: "elm-latn-ng", elo: "elo-latn-ke", elu: "elu-latn-pg", ema: "ema-latn-zz", emb: "emb-latn-id", eme: "eme-latn-gf", emg: "emg-deva-np", emi: "emi-latn-zz", emm: "emm-latn-mx", emn: "emn-latn-cm", emp: "emp-latn-pa", ems: "ems-latn-us", "ems-cyrl": "ems-cyrl-us", emu: "emu-deva-in", emw: "emw-latn-id", emx: "emx-latn-fr", emz: "emz-latn-cm", en: "en-latn-us", "en-shaw": "en-shaw-gb", ena: "ena-latn-pg", enb: "enb-latn-ke", enc: "enc-latn-vn", end: "end-latn-id", enf: "enf-cyrl-ru", enh: "enh-cyrl-ru", enl: "enl-latn-py", enm: "enm-latn-gb", enn: "enn-latn-zz", eno: "eno-latn-id", enq: "enq-latn-zz", enr: "enr-latn-id", env: "env-latn-ng", enw: "enw-latn-ng", enx: "enx-latn-py", eo: "eo-latn-001", eot: "eot-latn-ci", epi: "epi-latn-ng", era: "era-taml-in", erg: "erg-latn-vu", erh: "erh-latn-ng", eri: "eri-latn-zz", erk: "erk-latn-vu", err: "err-latn-au", ert: "ert-latn-id", erw: "erw-latn-id", es: "es-latn-es", ese: "ese-latn-bo", esg: "esg-gonm-in", esh: "esh-arab-ir", esi: "esi-latn-us", esm: "esm-latn-ci", ess: "ess-latn-us", "ess-cyrl": "ess-cyrl-us", esu: "esu-latn-us", esy: "esy-latn-ph", et: "et-latn-ee", etb: "etb-latn-ng", etn: "etn-latn-vu", eto: "eto-latn-cm", etr: "etr-latn-zz", ets: "ets-latn-ng", ett: "ett-ital-it", etu: "etu-latn-zz", etx: "etx-latn-zz", etz: "etz-latn-id", eu: "eu-latn-es", eve: "eve-cyrl-ru", evh: "evh-latn-ng", evn: "evn-cyrl-ru", "evn-latn": "evn-latn-cn", "evn-mong": "evn-mong-cn", ewo: "ewo-latn-cm", ext: "ext-latn-es", eya: "eya-latn-us", eyo: "eyo-latn-ke", eza: "eza-latn-zz", eze: "eze-latn-ng", fa: "fa-arab-ir", faa: "faa-latn-zz", fab: "fab-latn-zz", fad: "fad-latn-pg", faf: "faf-latn-sb", fag: "fag-latn-zz", fah: "fah-latn-ng", fai: "fai-latn-zz", faj: "faj-latn-pg", fak: "fak-latn-cm", fal: "fal-latn-cm", fam: "fam-latn-ng", fan: "fan-latn-gq", fap: "fap-latn-sn", far: "far-latn-sb", fau: "fau-latn-id", fax: "fax-latn-es", fay: "fay-arab-ir", faz: "faz-arab-ir", fbl: "fbl-latn-ph", fer: "fer-latn-ss", ff: "ff-latn-sn", "ff-adlm": "ff-adlm-gn", ffi: "ffi-latn-zz", ffm: "ffm-latn-ml", fgr: "fgr-latn-td", fi: "fi-latn-fi", fia: "fia-arab-sd", fie: "fie-latn-ng", fif: "fif-latn-sa", fil: "fil-latn-ph", fip: "fip-latn-tz", fir: "fir-latn-ng", fit: "fit-latn-se", fiw: "fiw-latn-pg", fj: "fj-latn-fj", fkk: "fkk-latn-ng", fkv: "fkv-latn-no", fla: "fla-latn-us", flh: "flh-latn-id", fli: "fli-latn-ng", fll: "fll-latn-cm", fln: "fln-latn-au", flr: "flr-latn-zz", fly: "fly-latn-za", fmp: "fmp-latn-zz", fmu: "fmu-deva-in", fnb: "fnb-latn-vu", fng: "fng-latn-za", fni: "fni-latn-td", fo: "fo-latn-fo", fod: "fod-latn-zz", foi: "foi-latn-pg", fom: "fom-latn-cd", fon: "fon-latn-bj", for: "for-latn-zz", fos: "fos-latn-tw", fpe: "fpe-latn-zz", fqs: "fqs-latn-zz", fr: "fr-latn-fr", frc: "frc-latn-us", frd: "frd-latn-id", frk: "frk-latn-de", frm: "frm-latn-fr", fro: "fro-latn-fr", frp: "frp-latn-fr", frq: "frq-latn-pg", frr: "frr-latn-de", frs: "frs-latn-de", frt: "frt-latn-vu", fub: "fub-arab-cm", fud: "fud-latn-wf", fue: "fue-latn-zz", fuf: "fuf-latn-gn", fuh: "fuh-latn-zz", fui: "fui-latn-td", fum: "fum-latn-ng", fun: "fun-latn-br", fuq: "fuq-latn-ne", fur: "fur-latn-it", fut: "fut-latn-vu", fuu: "fuu-latn-cd", fuv: "fuv-latn-ng", fuy: "fuy-latn-zz", fvr: "fvr-latn-sd", fwa: "fwa-latn-nc", fwe: "fwe-latn-na", fy: "fy-latn-nl", ga: "ga-latn-ie", gaa: "gaa-latn-gh", gab: "gab-latn-td", gac: "gac-latn-in", "gac-deva": "gac-deva-in", gad: "gad-latn-ph", gae: "gae-latn-ve", gaf: "gaf-latn-zz", gag: "gag-latn-md", gah: "gah-latn-zz", gai: "gai-latn-pg", gaj: "gaj-latn-zz", gak: "gak-latn-id", gal: "gal-latn-tl", gam: "gam-latn-zz", gan: "gan-hans-cn", gao: "gao-latn-pg", gap: "gap-latn-pg", gaq: "gaq-orya-in", gar: "gar-latn-pg", gas: "gas-gujr-in", gat: "gat-latn-pg", gau: "gau-telu-in", gaw: "gaw-latn-zz", gax: "gax-latn-et", "gax-ethi": "gax-ethi-et", gay: "gay-latn-id", gba: "gba-latn-zz", gbb: "gbb-latn-au", gbd: "gbd-latn-au", gbe: "gbe-latn-pg", gbf: "gbf-latn-zz", gbg: "gbg-latn-cf", gbh: "gbh-latn-bj", gbi: "gbi-latn-id", gbj: "gbj-orya-in", gbk: "gbk-deva-in", "gbk-takr": "gbk-takr-in", gbl: "gbl-gujr-in", "gbl-deva": "gbl-deva-in", gbm: "gbm-deva-in", gbn: "gbn-latn-ss", gbp: "gbp-latn-cf", gbq: "gbq-latn-cf", gbr: "gbr-latn-ng", gbs: "gbs-latn-bj", gbu: "gbu-latn-au", gbv: "gbv-latn-cf", gbw: "gbw-latn-au", gbx: "gbx-latn-bj", gby: "gby-latn-zz", gbz: "gbz-arab-ir", gcc: "gcc-latn-pg", gcd: "gcd-latn-au", gcf: "gcf-latn-gp", gcl: "gcl-latn-gd", gcn: "gcn-latn-pg", gcr: "gcr-latn-gf", gct: "gct-latn-ve", gd: "gd-latn-gb", gdb: "gdb-orya-in", "gdb-telu": "gdb-telu-in", gdc: "gdc-latn-au", gdd: "gdd-latn-pg", gde: "gde-latn-zz", gdf: "gdf-latn-ng", gdg: "gdg-latn-ph", gdh: "gdh-latn-au", gdi: "gdi-latn-cf", gdj: "gdj-latn-au", gdk: "gdk-latn-td", gdl: "gdl-latn-et", "gdl-ethi": "gdl-ethi-et", gdm: "gdm-latn-td", gdn: "gdn-latn-zz", gdo: "gdo-cyrl-ru", gdq: "gdq-latn-ye", gdr: "gdr-latn-zz", gdt: "gdt-latn-au", gdu: "gdu-latn-ng", gdx: "gdx-deva-in", gea: "gea-latn-ng", geb: "geb-latn-zz", gec: "gec-latn-lr", ged: "ged-latn-ng", gef: "gef-latn-id", geg: "geg-latn-ng", geh: "geh-latn-ca", gei: "gei-latn-id", gej: "gej-latn-zz", gek: "gek-latn-ng", gel: "gel-latn-zz", geq: "geq-latn-cf", ges: "ges-latn-id", gev: "gev-latn-ga", gew: "gew-latn-ng", gex: "gex-latn-so", gey: "gey-latn-cd", gez: "gez-ethi-et", gfk: "gfk-latn-zz", gga: "gga-latn-sb", ggb: "ggb-latn-lr", ggd: "ggd-latn-au", gge: "gge-latn-au", ggg: "ggg-arab-pk", ggk: "ggk-latn-au", ggl: "ggl-latn-pg", ggn: "ggn-deva-np", ggt: "ggt-latn-pg", ggu: "ggu-latn-ci", ggw: "ggw-latn-pg", gha: "gha-arab-ly", "gha-latn": "gha-latn-ly", "gha-tfng": "gha-tfng-ly", ghc: "ghc-latn-gb", ghe: "ghe-deva-np", ghk: "ghk-latn-mm", ghn: "ghn-latn-sb", ghr: "ghr-arab-pk", ghs: "ghs-latn-zz", ght: "ght-tibt-np", gia: "gia-latn-au", gib: "gib-latn-ng", gic: "gic-latn-za", gid: "gid-latn-cm", gie: "gie-latn-ci", gig: "gig-arab-pk", gih: "gih-latn-au", gil: "gil-latn-ki", gim: "gim-latn-zz", gin: "gin-cyrl-ru", gip: "gip-latn-pg", giq: "giq-latn-vn", gir: "gir-latn-vn", gis: "gis-latn-cm", git: "git-latn-ca", gix: "gix-latn-cd", giy: "giy-latn-au", giz: "giz-latn-cm", gjk: "gjk-arab-pk", gjm: "gjm-latn-au", gjn: "gjn-latn-zz", gjr: "gjr-latn-au", gju: "gju-arab-pk", gka: "gka-latn-pg", gkd: "gkd-latn-pg", gke: "gke-latn-cm", gkn: "gkn-latn-zz", gko: "gko-latn-au", gkp: "gkp-latn-zz", gku: "gku-latn-za", gl: "gl-latn-es", glb: "glb-latn-ng", glc: "glc-latn-td", gld: "gld-cyrl-ru", glh: "glh-arab-af", glj: "glj-latn-td", glk: "glk-arab-ir", gll: "gll-latn-au", glo: "glo-latn-ng", glr: "glr-latn-lr", glu: "glu-latn-td", glw: "glw-latn-ng", gma: "gma-latn-au", gmb: "gmb-latn-sb", gmd: "gmd-latn-ng", gmg: "gmg-latn-pg", gmh: "gmh-latn-de", gmm: "gmm-latn-zz", gmn: "gmn-latn-cm", gmr: "gmr-latn-au", gmu: "gmu-latn-pg", gmv: "gmv-ethi-zz", gmx: "gmx-latn-tz", gmy: "gmy-linb-gr", gmz: "gmz-latn-ng", gn: "gn-latn-py", gna: "gna-latn-bf", gnb: "gnb-latn-in", gnc: "gnc-latn-es", gnd: "gnd-latn-zz", gne: "gne-latn-ng", gng: "gng-latn-zz", gnh: "gnh-latn-ng", gni: "gni-latn-au", gnj: "gnj-latn-ci", gnk: "gnk-latn-bw", gnl: "gnl-latn-au", gnm: "gnm-latn-pg", gnn: "gnn-latn-au", gnq: "gnq-latn-my", gnr: "gnr-latn-au", gnt: "gnt-latn-pg", gnu: "gnu-latn-pg", gnw: "gnw-latn-bo", gnz: "gnz-latn-cf", goa: "goa-latn-ci", gob: "gob-latn-co", goc: "goc-latn-pg", god: "god-latn-zz", goe: "goe-tibt-bt", gof: "gof-ethi-zz", gog: "gog-latn-tz", goh: "goh-latn-de", goi: "goi-latn-zz", gok: "gok-deva-in", gol: "gol-latn-lr", gom: "gom-deva-in", gon: "gon-telu-in", goo: "goo-latn-fj", gop: "gop-latn-id", goq: "goq-latn-id", gor: "gor-latn-id", gos: "gos-latn-nl", got: "got-goth-ua", gou: "gou-latn-cm", gov: "gov-latn-ci", gow: "gow-latn-tz", gox: "gox-latn-cd", goy: "goy-latn-td", gpa: "gpa-latn-ng", gpe: "gpe-latn-gh", gpn: "gpn-latn-pg", gqa: "gqa-latn-ng", gqn: "gqn-latn-br", gqr: "gqr-latn-td", gra: "gra-deva-in", "gra-gujr": "gra-gujr-in", grb: "grb-latn-zz", grc: "grc-cprt-cy", "grc-linb": "grc-linb-gr", grd: "grd-latn-ng", grg: "grg-latn-pg", grh: "grh-latn-ng", gri: "gri-latn-sb", grj: "grj-latn-lr", grm: "grm-latn-my", grq: "grq-latn-pg", grs: "grs-latn-id", grt: "grt-beng-in", gru: "gru-ethi-et", "gru-latn": "gru-latn-et", grv: "grv-latn-lr", grw: "grw-latn-zz", grx: "grx-latn-pg", gry: "gry-latn-lr", grz: "grz-latn-pg", gsl: "gsl-latn-sn", gsn: "gsn-latn-pg", gso: "gso-latn-cf", gsp: "gsp-latn-pg", gsw: "gsw-latn-ch", gta: "gta-latn-br", gtu: "gtu-latn-au", gu: "gu-gujr-in", gua: "gua-latn-ng", gub: "gub-latn-br", guc: "guc-latn-co", gud: "gud-latn-zz", gue: "gue-latn-au", guf: "guf-latn-au", guh: "guh-latn-co", gui: "gui-latn-bo", guk: "guk-latn-et", "guk-ethi": "guk-ethi-et", gul: "gul-latn-us", gum: "gum-latn-co", gun: "gun-latn-br", guo: "guo-latn-co", gup: "gup-latn-au", guq: "guq-latn-py", gur: "gur-latn-gh", gut: "gut-latn-cr", guu: "guu-latn-ve", guw: "guw-latn-zz", gux: "gux-latn-zz", guz: "guz-latn-ke", gv: "gv-latn-im", gva: "gva-latn-py", gvc: "gvc-latn-br", gve: "gve-latn-pg", gvf: "gvf-latn-zz", gvj: "gvj-latn-br", gvl: "gvl-latn-td", gvm: "gvm-latn-ng", gvn: "gvn-latn-au", gvo: "gvo-latn-br", gvp: "gvp-latn-br", gvr: "gvr-deva-np", gvs: "gvs-latn-zz", gvy: "gvy-latn-au", gwa: "gwa-latn-ci", gwb: "gwb-latn-ng", gwc: "gwc-arab-zz", gwd: "gwd-latn-et", gwe: "gwe-latn-tz", gwf: "gwf-arab-pk", gwg: "gwg-latn-ng", gwi: "gwi-latn-ca", gwj: "gwj-latn-bw", gwm: "gwm-latn-au", gwn: "gwn-latn-ng", gwr: "gwr-latn-ug", gwt: "gwt-arab-zz", gwu: "gwu-latn-au", gww: "gww-latn-au", gwx: "gwx-latn-gh", gxx: "gxx-latn-ci", gyb: "gyb-latn-pg", gyd: "gyd-latn-au", gye: "gye-latn-ng", gyf: "gyf-latn-au", gyg: "gyg-latn-cf", gyi: "gyi-latn-zz", gyl: "gyl-latn-et", "gyl-ethi": "gyl-ethi-et", gym: "gym-latn-pa", gyn: "gyn-latn-gy", gyo: "gyo-deva-np", gyr: "gyr-latn-bo", gyy: "gyy-latn-au", gyz: "gyz-latn-ng", gza: "gza-latn-sd", gzi: "gzi-arab-ir", gzn: "gzn-latn-id", ha: "ha-latn-ng", "ha-cm": "ha-arab-cm", "ha-sd": "ha-arab-sd", haa: "haa-latn-us", hac: "hac-arab-ir", had: "had-latn-id", hae: "hae-latn-et", hag: "hag-latn-zz", hah: "hah-latn-pg", hai: "hai-latn-ca", haj: "haj-latn-in", "haj-beng": "haj-beng-in", hak: "hak-hans-cn", hal: "hal-latn-vn", ham: "ham-latn-zz", han: "han-latn-tz", hao: "hao-latn-pg", hap: "hap-latn-id", haq: "haq-latn-tz", har: "har-ethi-et", "har-arab": "har-arab-et", "har-latn": "har-latn-et", has: "has-latn-ca", hav: "hav-latn-cd", haw: "haw-latn-us", hax: "hax-latn-ca", hay: "hay-latn-tz", haz: "haz-arab-af", hba: "hba-latn-cd", hbb: "hbb-latn-zz", hbn: "hbn-latn-sd", hbo: "hbo-hebr-il", hbu: "hbu-latn-tl", hch: "hch-latn-mx", hdy: "hdy-ethi-zz", he: "he-hebr-il", hed: "hed-latn-td", heg: "heg-latn-id", heh: "heh-latn-tz", hei: "hei-latn-ca", hem: "hem-latn-cd", hgm: "hgm-latn-na", hgw: "hgw-latn-pg", hhi: "hhi-latn-pg", hhr: "hhr-latn-sn", hhy: "hhy-latn-zz", hi: "hi-deva-in", "hi-latn": "hi-latn-in", hia: "hia-latn-zz", hib: "hib-latn-pe", hid: "hid-latn-us", hif: "hif-latn-fj", hig: "hig-latn-zz", hih: "hih-latn-zz", hii: "hii-takr-in", "hii-deva": "hii-deva-in", hij: "hij-latn-cm", hik: "hik-latn-id", hil: "hil-latn-ph", hio: "hio-latn-bw", hir: "hir-latn-br", hit: "hit-xsux-tr", hiw: "hiw-latn-vu", hix: "hix-latn-br", hji: "hji-latn-id", hka: "hka-latn-tz", hke: "hke-latn-cd", hkh: "hkh-arab-in", "hkh-deva": "hkh-deva-in", "hkh-latn": "hkh-latn-in", hkk: "hkk-latn-pg", hla: "hla-latn-zz", hlb: "hlb-deva-in", hld: "hld-latn-vn", hlt: "hlt-latn-mm", hlu: "hlu-hluw-tr", hma: "hma-latn-cn", hmb: "hmb-latn-ml", hmd: "hmd-plrd-cn", hmf: "hmf-latn-vn", hmj: "hmj-bopo-cn", hmm: "hmm-latn-cn", hmn: "hmn-latn-cn", "hmn-bopo": "hmn-bopo-cn", "hmn-hmng": "hmn-hmng-cn", hmp: "hmp-latn-cn", hmq: "hmq-bopo-cn", hmr: "hmr-latn-in", hms: "hms-latn-cn", hmt: "hmt-latn-zz", hmu: "hmu-latn-id", hmv: "hmv-latn-vn", hmw: "hmw-latn-cn", hmy: "hmy-latn-cn", hmz: "hmz-latn-cn", "hmz-plrd": "hmz-plrd-cn", hna: "hna-latn-cm", hnd: "hnd-arab-pk", hne: "hne-deva-in", hng: "hng-latn-ao", hnh: "hnh-latn-bw", hni: "hni-latn-cn", hnj: "hnj-hmnp-us", "hnj-au": "hnj-laoo-au", "hnj-cn": "hnj-laoo-cn", "hnj-fr": "hnj-laoo-fr", "hnj-gf": "hnj-laoo-gf", "hnj-la": "hnj-laoo-la", "hnj-laoo": "hnj-laoo-la", "hnj-mm": "hnj-laoo-mm", "hnj-sr": "hnj-laoo-sr", "hnj-th": "hnj-laoo-th", "hnj-us": "hnj-hmnp-us", "hnj-vn": "hnj-laoo-vn", hnn: "hnn-latn-ph", hno: "hno-arab-pk", hns: "hns-latn-sr", ho: "ho-latn-pg", hoa: "hoa-latn-sb", hob: "hob-latn-pg", hoc: "hoc-deva-in", hod: "hod-latn-ng", hoe: "hoe-latn-ng", hoh: "hoh-arab-om", hoi: "hoi-latn-us", hoj: "hoj-deva-in", hol: "hol-latn-ao", hom: "hom-latn-ss", hoo: "hoo-latn-cd", hop: "hop-latn-us", hor: "hor-latn-td", hot: "hot-latn-zz", hov: "hov-latn-id", how: "how-hani-cn", hoy: "hoy-deva-in", hpo: "hpo-mymr-mm", hr: "hr-latn-hr", hra: "hra-latn-in", hrc: "hrc-latn-pg", hre: "hre-latn-vn", hrk: "hrk-latn-id", hrm: "hrm-latn-cn", "hrm-hmng": "hrm-hmng-cn", hro: "hro-latn-vn", hrp: "hrp-latn-au", hrt: "hrt-syrc-tr", hru: "hru-latn-in", hrw: "hrw-latn-pg", hrx: "hrx-latn-br", hrz: "hrz-arab-ir", hsb: "hsb-latn-de", hsn: "hsn-hans-cn", hss: "hss-arab-om", ht: "ht-latn-ht", hti: "hti-latn-id", hto: "hto-latn-co", hts: "hts-latn-tz", htu: "htu-latn-id", htx: "htx-xsux-tr", hu: "hu-latn-hu", hub: "hub-latn-pe", huc: "huc-latn-bw", hud: "hud-latn-id", hue: "hue-latn-mx", huf: "huf-latn-pg", hug: "hug-latn-pe", huh: "huh-latn-cl", hui: "hui-latn-zz", huk: "huk-latn-id", hul: "hul-latn-pg", hum: "hum-latn-cd", hup: "hup-latn-us", hur: "hur-latn-ca", hus: "hus-latn-mx", hut: "hut-deva-np", "hut-tibt": "hut-tibt-np", huu: "huu-latn-pe", huv: "huv-latn-mx", huw: "huw-latn-id", hux: "hux-latn-pe", huy: "huy-hebr-il", huz: "huz-cyrl-ru", hvc: "hvc-latn-ht", hve: "hve-latn-mx", hvk: "hvk-latn-nc", hvn: "hvn-latn-id", hvv: "hvv-latn-mx", hwa: "hwa-latn-ci", hwc: "hwc-latn-us", hwo: "hwo-latn-ng", hy: "hy-armn-am", hya: "hya-latn-cm", hyw: "hyw-armn-am", hz: "hz-latn-na", ia: "ia-latn-001", iai: "iai-latn-nc", ian: "ian-latn-zz", iar: "iar-latn-zz", iba: "iba-latn-my", ibb: "ibb-latn-ng", ibd: "ibd-latn-au", ibe: "ibe-latn-ng", ibg: "ibg-latn-ph", ibh: "ibh-latn-vn", ibl: "ibl-latn-ph", ibm: "ibm-latn-ng", ibn: "ibn-latn-ng", ibr: "ibr-latn-ng", ibu: "ibu-latn-id", iby: "iby-latn-zz", ica: "ica-latn-zz", ich: "ich-latn-zz", icr: "icr-latn-co", id: "id-latn-id", ida: "ida-latn-ke", idb: "idb-latn-in", idc: "idc-latn-ng", idd: "idd-latn-zz", ide: "ide-latn-ng", idi: "idi-latn-zz", idr: "idr-latn-ss", ids: "ids-latn-ng", idt: "idt-latn-tl", idu: "idu-latn-zz", ie: "ie-latn-001", ifa: "ifa-latn-ph", ifb: "ifb-latn-ph", ife: "ife-latn-tg", iff: "iff-latn-vu", ifk: "ifk-latn-ph", ifm: "ifm-latn-cg", ifu: "ifu-latn-ph", ify: "ify-latn-ph", ig: "ig-latn-ng", igb: "igb-latn-zz", ige: "ige-latn-zz", igg: "igg-latn-pg", igl: "igl-latn-ng", igm: "igm-latn-pg", ign: "ign-latn-bo", igo: "igo-latn-pg", igs: "igs-latn-001", "igs-grek": "igs-grek-001", igw: "igw-latn-ng", ihb: "ihb-latn-id", ihi: "ihi-latn-ng", ihp: "ihp-latn-id", ihw: "ihw-latn-au", ii: "ii-yiii-cn", iin: "iin-latn-au", ijc: "ijc-latn-ng", ije: "ije-latn-ng", ijj: "ijj-latn-zz", ijn: "ijn-latn-ng", ijs: "ijs-latn-ng", ik: "ik-latn-us", iki: "iki-latn-ng", ikk: "ikk-latn-zz", ikl: "ikl-latn-ng", iko: "iko-latn-ng", ikp: "ikp-latn-ng", ikr: "ikr-latn-au", ikt: "ikt-latn-ca", "ikt-cans": "ikt-cans-ca", ikv: "ikv-latn-ng", ikw: "ikw-latn-zz", ikx: "ikx-latn-zz", ikz: "ikz-latn-tz", ila: "ila-latn-id", ilb: "ilb-latn-zm", ilg: "ilg-latn-au", ili: "ili-latn-cn", "ili-arab": "ili-arab-cn", "ili-cyrl": "ili-cyrl-kz", ilk: "ilk-latn-ph", ilm: "ilm-latn-my", ilo: "ilo-latn-ph", ilp: "ilp-latn-ph", ilu: "ilu-latn-id", ilv: "ilv-latn-ng", imi: "imi-latn-pg", iml: "iml-latn-us", imn: "imn-latn-pg", imo: "imo-latn-zz", imr: "imr-latn-id", ims: "ims-latn-it", imt: "imt-latn-ss", imy: "imy-lyci-tr", in: "in-latn-id", inb: "inb-latn-co", ing: "ing-latn-us", inh: "inh-cyrl-ru", inj: "inj-latn-co", inn: "inn-latn-ph", ino: "ino-latn-pg", inp: "inp-latn-pe", int: "int-mymr-mm", io: "io-latn-001", ior: "ior-ethi-et", iou: "iou-latn-zz", iow: "iow-latn-us", ipi: "ipi-latn-pg", ipo: "ipo-latn-pg", iqu: "iqu-latn-pe", iqw: "iqw-latn-ng", ire: "ire-latn-id", irh: "irh-latn-id", iri: "iri-latn-zz", irk: "irk-latn-tz", irn: "irn-latn-br", iru: "iru-taml-in", "iru-mlym": "iru-mlym-in", irx: "irx-latn-id", iry: "iry-latn-ph", is: "is-latn-is", isa: "isa-latn-pg", isc: "isc-latn-pe", isd: "isd-latn-ph", ish: "ish-latn-ng", isi: "isi-latn-ng", isk: "isk-arab-af", "isk-cyrl": "isk-cyrl-tj", ism: "ism-latn-id", isn: "isn-latn-tz", iso: "iso-latn-ng", ist: "ist-latn-hr", isu: "isu-latn-cm", it: "it-latn-it", itb: "itb-latn-ph", itd: "itd-latn-id", ite: "ite-latn-bo", iti: "iti-latn-ph", itk: "itk-hebr-it", itl: "itl-cyrl-ru", itm: "itm-latn-ng", ito: "ito-latn-bo", itr: "itr-latn-pg", its: "its-latn-ng", itt: "itt-latn-ph", itv: "itv-latn-ph", itw: "itw-latn-ng", itx: "itx-latn-id", ity: "ity-latn-ph", itz: "itz-latn-gt", iu: "iu-cans-ca", ium: "ium-latn-cn", "ium-hani": "ium-hani-cn", "ium-laoo": "ium-laoo-la", "ium-thai": "ium-thai-th", ivb: "ivb-latn-ph", ivv: "ivv-latn-ph", iw: "iw-hebr-il", iwk: "iwk-latn-ph", iwm: "iwm-latn-zz", iwo: "iwo-latn-id", iws: "iws-latn-zz", ixc: "ixc-latn-mx", ixl: "ixl-latn-gt", iya: "iya-latn-ng", iyo: "iyo-latn-cm", iyx: "iyx-latn-cg", izh: "izh-latn-ru", izi: "izi-latn-zz", izr: "izr-latn-ng", izz: "izz-latn-ng", ja: "ja-jpan-jp", jaa: "jaa-latn-br", jab: "jab-latn-zz", jac: "jac-latn-gt", jad: "jad-arab-gn", jae: "jae-latn-pg", jaf: "jaf-latn-ng", jah: "jah-latn-my", jaj: "jaj-latn-sb", jak: "jak-latn-my", jal: "jal-latn-id", jam: "jam-latn-jm", jan: "jan-latn-au", jao: "jao-latn-au", jaq: "jaq-latn-id", jar: "jar-latn-zz", jas: "jas-latn-nc", jat: "jat-arab-af", jau: "jau-latn-id", jax: "jax-latn-id", jay: "jay-latn-au", jaz: "jaz-latn-nc", jbe: "jbe-hebr-il", jbi: "jbi-latn-au", jbj: "jbj-latn-id", jbk: "jbk-latn-pg", jbm: "jbm-latn-ng", jbn: "jbn-arab-ly", jbo: "jbo-latn-001", jbr: "jbr-latn-id", jbt: "jbt-latn-br", jbu: "jbu-latn-zz", jbw: "jbw-latn-au", jct: "jct-cyrl-ua", "jct-latn": "jct-latn-ua", jda: "jda-tibt-in", jdg: "jdg-arab-pk", jdt: "jdt-cyrl-ru", "jdt-hebr": "jdt-hebr-ru", "jdt-latn": "jdt-latn-az", jeb: "jeb-latn-pe", jee: "jee-deva-np", jeh: "jeh-latn-vn", "jeh-laoo": "jeh-laoo-la", jei: "jei-latn-id", jek: "jek-latn-ci", jel: "jel-latn-id", jen: "jen-latn-zz", jer: "jer-latn-ng", jet: "jet-latn-pg", jeu: "jeu-latn-td", jgb: "jgb-latn-cd", jge: "jge-geor-ge", "jge-hebr": "jge-hebr-il", jgk: "jgk-latn-zz", jgo: "jgo-latn-cm", jhi: "jhi-latn-my", ji: "ji-hebr-ua", jia: "jia-latn-cm", jib: "jib-latn-zz", jic: "jic-latn-hn", jid: "jid-latn-ng", jie: "jie-latn-ng", jig: "jig-latn-au", jil: "jil-latn-pg", jim: "jim-latn-cm", jit: "jit-latn-tz", jiu: "jiu-latn-cn", jiv: "jiv-latn-ec", jiy: "jiy-latn-cn", jje: "jje-hang-kr", jjr: "jjr-latn-ng", jka: "jka-latn-id", jkm: "jkm-mymr-mm", "jkm-brai": "jkm-brai-mm", "jkm-latn": "jkm-latn-mm", jko: "jko-latn-pg", jku: "jku-latn-ng", jle: "jle-latn-sd", jma: "jma-latn-pg", jmb: "jmb-latn-ng", jmc: "jmc-latn-tz", jmd: "jmd-latn-id", jmi: "jmi-latn-ng", jml: "jml-deva-np", jmn: "jmn-latn-mm", jmr: "jmr-latn-gh", jms: "jms-latn-ng", jmw: "jmw-latn-pg", jmx: "jmx-latn-mx", jna: "jna-takr-in", jnd: "jnd-arab-pk", jng: "jng-latn-au", jni: "jni-latn-ng", jnj: "jnj-latn-et", "jnj-ethi": "jnj-ethi-et", jnl: "jnl-deva-in", jns: "jns-deva-in", "jns-latn": "jns-latn-in", "jns-takr": "jns-takr-in", job: "job-latn-cd", jod: "jod-latn-ci", jog: "jog-arab-pk", jor: "jor-latn-bo", jow: "jow-latn-ml", jpa: "jpa-hebr-ps", jpr: "jpr-hebr-il", jqr: "jqr-latn-pe", jra: "jra-latn-zz", jrr: "jrr-latn-ng", jrt: "jrt-latn-ng", jru: "jru-latn-ve", jua: "jua-latn-br", jub: "jub-latn-ng", jud: "jud-latn-ci", juh: "juh-latn-ng", jui: "jui-latn-au", juk: "juk-latn-ng", jul: "jul-deva-np", jum: "jum-latn-sd", jun: "jun-orya-in", juo: "juo-latn-ng", jup: "jup-latn-br", jur: "jur-latn-br", jut: "jut-latn-dk", juu: "juu-latn-ng", juw: "juw-latn-ng", juy: "juy-orya-in", jv: "jv-latn-id", jvd: "jvd-latn-id", jvn: "jvn-latn-sr", jw: "jw-latn-id", jwi: "jwi-latn-gh", jya: "jya-tibt-cn", jye: "jye-hebr-il", jyy: "jyy-latn-td", ka: "ka-geor-ge", kaa: "kaa-cyrl-uz", kab: "kab-latn-dz", kac: "kac-latn-mm", kad: "kad-latn-zz", kag: "kag-latn-my", kah: "kah-latn-cf", kai: "kai-latn-zz", kaj: "kaj-latn-ng", kak: "kak-latn-ph", kam: "kam-latn-ke", kao: "kao-latn-ml", kap: "kap-cyrl-ru", kaq: "kaq-latn-pe", kav: "kav-latn-br", kaw: "kaw-kawi-id", kax: "kax-latn-id", kay: "kay-latn-br", kba: "kba-latn-au", kbb: "kbb-latn-br", kbc: "kbc-latn-br", kbd: "kbd-cyrl-ru", kbe: "kbe-latn-au", kbh: "kbh-latn-co", kbi: "kbi-latn-id", kbj: "kbj-latn-cd", kbk: "kbk-latn-pg", kbl: "kbl-latn-td", kbm: "kbm-latn-zz", kbn: "kbn-latn-cf", kbo: "kbo-latn-ss", kbp: "kbp-latn-zz", kbq: "kbq-latn-zz", kbr: "kbr-latn-et", "kbr-ethi": "kbr-ethi-et", kbs: "kbs-latn-ga", kbt: "kbt-latn-pg", kbu: "kbu-arab-pk", kbv: "kbv-latn-id", kbw: "kbw-latn-pg", kbx: "kbx-latn-zz", kby: "kby-arab-ne", kbz: "kbz-latn-ng", kca: "kca-cyrl-ru", kcb: "kcb-latn-pg", kcc: "kcc-latn-ng", kcd: "kcd-latn-id", kce: "kce-latn-ng", kcf: "kcf-latn-ng", kcg: "kcg-latn-ng", kch: "kch-latn-ng", kci: "kci-latn-ng", kcj: "kcj-latn-gw", kck: "kck-latn-zw", kcl: "kcl-latn-zz", kcm: "kcm-latn-cf", kcn: "kcn-latn-ug", kco: "kco-latn-pg", kcp: "kcp-latn-sd", kcq: "kcq-latn-ng", kcs: "kcs-latn-ng", kct: "kct-latn-zz", kcu: "kcu-latn-tz", kcv: "kcv-latn-cd", kcw: "kcw-latn-cd", kcz: "kcz-latn-tz", kda: "kda-latn-au", kdc: "kdc-latn-tz", kdd: "kdd-latn-au", kde: "kde-latn-tz", kdf: "kdf-latn-pg", kdg: "kdg-latn-cd", kdh: "kdh-latn-tg", kdi: "kdi-latn-ug", kdj: "kdj-latn-ug", kdk: "kdk-latn-nc", kdl: "kdl-latn-zz", kdm: "kdm-latn-ng", kdn: "kdn-latn-zw", kdp: "kdp-latn-ng", kdq: "kdq-beng-in", kdr: "kdr-latn-lt", "kdr-cyrl": "kdr-cyrl-ua", kdt: "kdt-thai-th", kdw: "kdw-latn-id", kdx: "kdx-latn-ng", kdy: "kdy-latn-id", kdz: "kdz-latn-cm", kea: "kea-latn-cv", keb: "keb-latn-ga", kec: "kec-latn-sd", ked: "ked-latn-tz", kee: "kee-latn-us", kef: "kef-latn-tg", keg: "keg-latn-sd", keh: "keh-latn-pg", kei: "kei-latn-id", kek: "kek-latn-gt", kel: "kel-latn-cd", kem: "kem-latn-tl", ken: "ken-latn-cm", keo: "keo-latn-ug", ker: "ker-latn-td", kes: "kes-latn-ng", ket: "ket-cyrl-ru", keu: "keu-latn-tg", kew: "kew-latn-pg", kex: "kex-deva-in", "kex-gujr": "kex-gujr-in", key: "key-telu-in", kez: "kez-latn-zz", kfa: "kfa-knda-in", kfb: "kfb-deva-in", kfc: "kfc-telu-in", kfd: "kfd-knda-in", kfe: "kfe-taml-in", kff: "kff-latn-in", "kff-deva": "kff-deva-in", "kff-orya": "kff-orya-in", "kff-telu": "kff-telu-in", kfh: "kfh-mlym-in", kfi: "kfi-taml-in", "kfi-knda": "kfi-knda-in", kfk: "kfk-deva-in", "kfk-takr": "kfk-takr-in", kfl: "kfl-latn-cm", kfm: "kfm-arab-ir", kfn: "kfn-latn-cm", kfo: "kfo-latn-ci", kfp: "kfp-deva-in", kfq: "kfq-deva-in", kfr: "kfr-deva-in", kfs: "kfs-deva-in", kfv: "kfv-latn-in", kfw: "kfw-latn-in", kfx: "kfx-deva-in", "kfx-takr": "kfx-takr-in", kfy: "kfy-deva-in", kfz: "kfz-latn-bf", kg: "kg-latn-cd", kga: "kga-latn-ci", kgb: "kgb-latn-id", kge: "kge-latn-id", kgf: "kgf-latn-zz", kgj: "kgj-deva-np", kgk: "kgk-latn-br", kgl: "kgl-latn-au", kgm: "kgm-latn-br", kgo: "kgo-latn-sd", kgp: "kgp-latn-br", kgq: "kgq-latn-id", kgr: "kgr-latn-id", kgs: "kgs-latn-au", kgt: "kgt-latn-ng", kgu: "kgu-latn-pg", kgv: "kgv-latn-id", kgw: "kgw-latn-id", kgx: "kgx-latn-id", kgy: "kgy-deva-np", kha: "kha-latn-in", khb: "khb-talu-cn", khc: "khc-latn-id", khd: "khd-latn-id", khe: "khe-latn-id", khf: "khf-thai-la", khg: "khg-tibt-cn", khh: "khh-latn-id", khj: "khj-latn-ng", khl: "khl-latn-pg", khn: "khn-deva-in", khp: "khp-latn-id", khq: "khq-latn-ml", khr: "khr-latn-in", "khr-deva": "khr-deva-in", khs: "khs-latn-zz", kht: "kht-mymr-in", khu: "khu-latn-ao", khv: "khv-cyrl-ru", khw: "khw-arab-pk", khx: "khx-latn-cd", khy: "khy-latn-cd", khz: "khz-latn-zz", ki: "ki-latn-ke", kia: "kia-latn-td", kib: "kib-latn-sd", kic: "kic-latn-us", kid: "kid-latn-cm", kie: "kie-latn-td", kif: "kif-deva-np", kig: "kig-latn-id", kih: "kih-latn-pg", kij: "kij-latn-zz", kil: "kil-latn-ng", kim: "kim-cyrl-ru", kio: "kio-latn-us", kip: "kip-deva-np", kiq: "kiq-latn-id", kis: "kis-latn-pg", kit: "kit-latn-pg", kiu: "kiu-latn-tr", kiv: "kiv-latn-tz", kiw: "kiw-latn-zz", kix: "kix-latn-in", kiy: "kiy-latn-id", kiz: "kiz-latn-tz", kj: "kj-latn-na", kja: "kja-latn-id", kjb: "kjb-latn-gt", kjc: "kjc-latn-id", kjd: "kjd-latn-zz", kje: "kje-latn-id", kjg: "kjg-laoo-la", kjh: "kjh-cyrl-ru", kji: "kji-latn-sb", kjj: "kjj-latn-az", kjk: "kjk-latn-id", kjl: "kjl-deva-np", kjm: "kjm-latn-vn", kjn: "kjn-latn-au", kjo: "kjo-deva-in", kjp: "kjp-mymr-mm", "kjp-thai": "kjp-thai-th", kjq: "kjq-latn-us", kjr: "kjr-latn-id", kjs: "kjs-latn-zz", kjt: "kjt-thai-th", kju: "kju-latn-us", kjx: "kjx-latn-pg", kjy: "kjy-latn-zz", kk: "kk-cyrl-kz", "kk-af": "kk-arab-af", "kk-arab": "kk-arab-cn", "kk-cn": "kk-arab-cn", "kk-ir": "kk-arab-ir", "kk-mn": "kk-arab-mn", kka: "kka-latn-ng", kkb: "kkb-latn-id", kkc: "kkc-latn-zz", kkd: "kkd-latn-ng", kke: "kke-latn-gn", "kke-arab": "kke-arab-gn", kkf: "kkf-tibt-in", kkg: "kkg-latn-ph", kkh: "kkh-lana-mm", kki: "kki-latn-tz", kkj: "kkj-latn-cm", kkk: "kkk-latn-sb", kkl: "kkl-latn-id", kkm: "kkm-latn-ng", kko: "kko-latn-sd", kkp: "kkp-latn-au", kkq: "kkq-latn-cd", kkr: "kkr-latn-ng", kks: "kks-latn-ng", kkt: "kkt-deva-np", kku: "kku-latn-ng", kkv: "kkv-latn-id", kkw: "kkw-latn-cg", kkx: "kkx-latn-id", kky: "kky-latn-au", kkz: "kkz-latn-ca", kl: "kl-latn-gl", kla: "kla-latn-us", klb: "klb-latn-mx", klc: "klc-latn-cm", kld: "kld-latn-au", kle: "kle-deva-np", klf: "klf-latn-td", klg: "klg-latn-ph", klh: "klh-latn-pg", kli: "kli-latn-id", klj: "klj-arab-ir", klk: "klk-latn-ng", kll: "kll-latn-ph", klm: "klm-latn-pg", kln: "kln-latn-ke", klo: "klo-latn-ng", klp: "klp-latn-pg", klq: "klq-latn-zz", klr: "klr-deva-np", kls: "kls-latn-pk", "kls-arab": "kls-arab-pk", klt: "klt-latn-zz", klu: "klu-latn-lr", klv: "klv-latn-vu", klw: "klw-latn-id", klx: "klx-latn-zz", kly: "kly-latn-id", klz: "klz-latn-id", km: "km-khmr-kh", kma: "kma-latn-gh", kmb: "kmb-latn-ao", kmc: "kmc-latn-cn", "kmc-hani": "kmc-hani-cn", kmd: "kmd-latn-ph", kme: "kme-latn-cm", kmf: "kmf-latn-pg", kmg: "kmg-latn-pg", kmh: "kmh-latn-zz", kmi: "kmi-latn-ng", kmj: "kmj-deva-in", kmk: "kmk-latn-ph", kml: "kml-latn-ph", kmm: "kmm-latn-in", kmn: "kmn-latn-pg", kmo: "kmo-latn-zz", kmp: "kmp-latn-cm", kmq: "kmq-latn-et", kms: "kms-latn-zz", kmt: "kmt-latn-id", kmu: "kmu-latn-zz", kmv: "kmv-latn-br", kmw: "kmw-latn-zz", kmx: "kmx-latn-pg", kmy: "kmy-latn-ng", kmz: "kmz-arab-ir", kn: "kn-knda-in", kna: "kna-latn-ng", knb: "knb-latn-ph", knd: "knd-latn-id", kne: "kne-latn-ph", knf: "knf-latn-gw", kni: "kni-latn-ng", knj: "knj-latn-gt", knk: "knk-latn-sl", "knk-arab": "knk-arab-sl", knl: "knl-latn-id", knm: "knm-latn-br", kno: "kno-latn-sl", knp: "knp-latn-zz", knq: "knq-latn-my", knr: "knr-latn-pg", kns: "kns-latn-my", "kns-thai": "kns-thai-th", knt: "knt-latn-br", knu: "knu-latn-gn", knv: "knv-latn-pg", knw: "knw-latn-na", knx: "knx-latn-id", kny: "kny-latn-cd", knz: "knz-latn-bf", ko: "ko-kore-kr", koa: "koa-latn-pg", koc: "koc-latn-ng", kod: "kod-latn-id", koe: "koe-latn-ss", kof: "kof-latn-ng", kog: "kog-latn-co", koh: "koh-latn-cg", koi: "koi-cyrl-ru", kok: "kok-deva-in", kol: "kol-latn-zz", koo: "koo-latn-ug", kop: "kop-latn-pg", koq: "koq-latn-ga", kos: "kos-latn-fm", kot: "kot-latn-cm", kou: "kou-latn-td", kov: "kov-latn-ng", kow: "kow-latn-ng", koy: "koy-latn-us", koz: "koz-latn-zz", kpa: "kpa-latn-ng", kpc: "kpc-latn-co", kpd: "kpd-latn-id", kpe: "kpe-latn-lr", kpf: "kpf-latn-zz", kpg: "kpg-latn-fm", kph: "kph-latn-gh", kpi: "kpi-latn-id", kpj: "kpj-latn-br", kpk: "kpk-latn-ng", kpl: "kpl-latn-cd", kpm: "kpm-latn-vn", kpn: "kpn-latn-br", kpo: "kpo-latn-zz", kpq: "kpq-latn-id", kpr: "kpr-latn-zz", kps: "kps-latn-id", kpt: "kpt-cyrl-ru", kpu: "kpu-latn-id", kpw: "kpw-latn-pg", kpx: "kpx-latn-zz", kpy: "kpy-cyrl-ru", kpz: "kpz-latn-ug", kqa: "kqa-latn-pg", kqb: "kqb-latn-zz", kqc: "kqc-latn-pg", kqd: "kqd-syrc-iq", kqe: "kqe-latn-ph", kqf: "kqf-latn-zz", kqg: "kqg-latn-bf", kqh: "kqh-latn-tz", kqi: "kqi-latn-pg", kqj: "kqj-latn-pg", kqk: "kqk-latn-bj", kql: "kql-latn-pg", kqm: "kqm-latn-ci", kqn: "kqn-latn-zm", kqo: "kqo-latn-lr", kqp: "kqp-latn-td", kqq: "kqq-latn-br", kqr: "kqr-latn-my", kqs: "kqs-latn-zz", kqt: "kqt-latn-my", kqu: "kqu-latn-za", kqv: "kqv-latn-id", kqw: "kqw-latn-pg", kqx: "kqx-latn-cm", kqy: "kqy-ethi-zz", kqz: "kqz-latn-za", kr: "kr-latn-zz", kra: "kra-deva-np", krb: "krb-latn-us", krc: "krc-cyrl-ru", krd: "krd-latn-tl", kre: "kre-latn-br", krf: "krf-latn-vu", krh: "krh-latn-ng", kri: "kri-latn-sl", krj: "krj-latn-ph", krk: "krk-cyrl-ru", krl: "krl-latn-ru", krn: "krn-latn-lr", krp: "krp-latn-ng", krr: "krr-khmr-kh", krs: "krs-latn-zz", krt: "krt-latn-ne", kru: "kru-deva-in", krv: "krv-khmr-kh", krw: "krw-latn-lr", krx: "krx-latn-sn", kry: "kry-latn-az", krz: "krz-latn-id", ks: "ks-arab-in", ksa: "ksa-latn-ng", ksb: "ksb-latn-tz", ksc: "ksc-latn-ph", ksd: "ksd-latn-zz", kse: "kse-latn-pg", ksf: "ksf-latn-cm", ksg: "ksg-latn-sb", ksh: "ksh-latn-de", ksi: "ksi-latn-pg", ksj: "ksj-latn-zz", ksk: "ksk-latn-us", ksl: "ksl-latn-pg", ksm: "ksm-latn-ng", ksn: "ksn-latn-ph", kso: "kso-latn-ng", ksp: "ksp-latn-cf", ksq: "ksq-latn-ng", ksr: "ksr-latn-zz", kss: "kss-latn-lr", kst: "kst-latn-bf", ksu: "ksu-mymr-in", ksv: "ksv-latn-cd", ksw: "ksw-mymr-mm", "ksw-latn": "ksw-latn-mm", ksx: "ksx-latn-id", ksz: "ksz-deva-in", kta: "kta-latn-vn", ktb: "ktb-ethi-zz", ktc: "ktc-latn-ng", ktd: "ktd-latn-au", ktf: "ktf-latn-cd", ktg: "ktg-latn-au", kth: "kth-latn-td", kti: "kti-latn-id", ktj: "ktj-latn-ci", ktk: "ktk-latn-pg", ktl: "ktl-arab-ir", ktm: "ktm-latn-zz", ktn: "ktn-latn-br", kto: "kto-latn-zz", ktp: "ktp-plrd-cn", ktq: "ktq-latn-ph", ktr: "ktr-latn-my", kts: "kts-latn-id", ktt: "ktt-latn-id", ktu: "ktu-latn-cd", ktv: "ktv-latn-vn", ktw: "ktw-latn-us", ktx: "ktx-latn-br", kty: "kty-latn-cd", ktz: "ktz-latn-na", ku: "ku-latn-tr", "ku-arab": "ku-arab-iq", "ku-lb": "ku-arab-lb", "ku-yezi": "ku-yezi-ge", kub: "kub-latn-zz", kuc: "kuc-latn-id", kud: "kud-latn-zz", kue: "kue-latn-zz", kuf: "kuf-laoo-la", kug: "kug-latn-ng", kuh: "kuh-latn-ng", kui: "kui-latn-br", kuj: "kuj-latn-zz", kuk: "kuk-latn-id", kul: "kul-latn-ng", kum: "kum-cyrl-ru", kun: "kun-latn-zz", kuo: "kuo-latn-pg", kup: "kup-latn-zz", kuq: "kuq-latn-br", kus: "kus-latn-zz", kut: "kut-latn-ca", kuu: "kuu-latn-us", kuv: "kuv-latn-id", kuw: "kuw-latn-cf", kux: "kux-latn-au", kuy: "kuy-latn-au", kuz: "kuz-latn-cl", kv: "kv-cyrl-ru", kva: "kva-cyrl-ru", kvb: "kvb-latn-id", kvc: "kvc-latn-pg", kvd: "kvd-latn-id", kve: "kve-latn-my", kvf: "kvf-latn-td", kvg: "kvg-latn-zz", kvh: "kvh-latn-id", kvi: "kvi-latn-td", kvj: "kvj-latn-cm", kvl: "kvl-latn-mm", kvm: "kvm-latn-cm", kvn: "kvn-latn-co", kvo: "kvo-latn-id", kvp: "kvp-latn-id", kvq: "kvq-mymr-mm", "kvq-latn": "kvq-latn-mm", kvr: "kvr-latn-id", kvt: "kvt-mymr-mm", kvv: "kvv-latn-id", kvw: "kvw-latn-id", kvx: "kvx-arab-pk", kvy: "kvy-kali-mm", kvz: "kvz-latn-id", kw: "kw-latn-gb", kwa: "kwa-latn-br", kwb: "kwb-latn-ng", kwc: "kwc-latn-cg", kwd: "kwd-latn-sb", kwe: "kwe-latn-id", kwf: "kwf-latn-sb", kwg: "kwg-latn-td", kwh: "kwh-latn-id", kwi: "kwi-latn-co", kwj: "kwj-latn-zz", kwk: "kwk-latn-ca", kwl: "kwl-latn-ng", kwm: "kwm-latn-na", kwn: "kwn-latn-na", kwo: "kwo-latn-zz", kwp: "kwp-latn-ci", kwq: "kwq-latn-zz", kwr: "kwr-latn-id", kws: "kws-latn-cd", kwt: "kwt-latn-id", kwu: "kwu-latn-cm", kwv: "kwv-latn-td", kww: "kww-latn-sr", kwy: "kwy-latn-cd", kwz: "kwz-latn-ao", kxa: "kxa-latn-zz", kxb: "kxb-latn-ci", kxc: "kxc-ethi-zz", kxd: "kxd-latn-bn", "kxd-arab": "kxd-arab-bn", kxe: "kxe-latn-zz", kxf: "kxf-mymr-mm", "kxf-latn": "kxf-latn-mm", kxi: "kxi-latn-my", kxj: "kxj-latn-td", kxk: "kxk-mymr-mm", kxl: "kxl-deva-in", kxm: "kxm-thai-th", kxn: "kxn-latn-my", kxo: "kxo-latn-br", kxp: "kxp-arab-pk", kxq: "kxq-latn-id", kxr: "kxr-latn-pg", kxt: "kxt-latn-pg", kxv: "kxv-orya-in", "kxv-latn": "kxv-latn-in", "kxv-telu": "kxv-telu-in", kxw: "kxw-latn-zz", kxx: "kxx-latn-cg", kxy: "kxy-latn-vn", kxz: "kxz-latn-zz", ky: "ky-cyrl-kg", "ky-arab": "ky-arab-cn", "ky-cn": "ky-arab-cn", "ky-latn": "ky-latn-tr", "ky-tr": "ky-latn-tr", kya: "kya-latn-tz", kyb: "kyb-latn-ph", kyc: "kyc-latn-pg", kyd: "kyd-latn-id", kye: "kye-latn-zz", kyf: "kyf-latn-ci", kyg: "kyg-latn-pg", kyh: "kyh-latn-us", kyi: "kyi-latn-my", kyj: "kyj-latn-ph", kyk: "kyk-latn-ph", kyl: "kyl-latn-us", kym: "kym-latn-cf", kyn: "kyn-latn-ph", kyo: "kyo-latn-id", kyq: "kyq-latn-td", kyr: "kyr-latn-br", kys: "kys-latn-my", kyt: "kyt-latn-id", kyu: "kyu-kali-mm", "kyu-latn": "kyu-latn-mm", "kyu-mymr": "kyu-mymr-mm", kyv: "kyv-deva-np", kyw: "kyw-deva-in", "kyw-beng": "kyw-beng-in", "kyw-orya": "kyw-orya-in", kyx: "kyx-latn-zz", kyy: "kyy-latn-pg", kyz: "kyz-latn-br", kza: "kza-latn-bf", kzb: "kzb-latn-id", kzc: "kzc-latn-ci", kzd: "kzd-latn-id", kze: "kze-latn-pg", kzf: "kzf-latn-id", kzh: "kzh-arab-zz", kzi: "kzi-latn-my", kzj: "kzj-latn-my", kzk: "kzk-latn-sb", kzl: "kzl-latn-id", kzm: "kzm-latn-id", kzn: "kzn-latn-mw", kzo: "kzo-latn-ga", kzp: "kzp-latn-id", kzr: "kzr-latn-zz", kzs: "kzs-latn-my", kzt: "kzt-latn-my", kzu: "kzu-latn-id", kzv: "kzv-latn-id", kzw: "kzw-latn-br", kzx: "kzx-latn-id", kzy: "kzy-latn-cd", kzz: "kzz-latn-id", la: "la-latn-va", laa: "laa-latn-ph", lab: "lab-lina-gr", lac: "lac-latn-mx", lad: "lad-hebr-il", lae: "lae-deva-in", "lae-tibt": "lae-tibt-in", lag: "lag-latn-tz", lah: "lah-arab-pk", lai: "lai-latn-mw", laj: "laj-latn-ug", lal: "lal-latn-cd", lam: "lam-latn-zm", lan: "lan-latn-ng", lap: "lap-latn-td", laq: "laq-latn-vn", lar: "lar-latn-gh", las: "las-latn-zz", lau: "lau-latn-id", law: "law-latn-id", lax: "lax-latn-in", "lax-beng": "lax-beng-in", laz: "laz-latn-pg", lb: "lb-latn-lu", lbb: "lbb-latn-pg", lbc: "lbc-lisu-cn", lbe: "lbe-cyrl-ru", lbf: "lbf-deva-in", "lbf-tibt": "lbf-tibt-cn", lbi: "lbi-latn-cm", lbj: "lbj-tibt-in", "lbj-arab": "lbj-arab-in", lbl: "lbl-latn-ph", lbm: "lbm-deva-in", lbn: "lbn-latn-la", "lbn-laoo": "lbn-laoo-la", lbo: "lbo-laoo-la", "lbo-latn": "lbo-latn-us", lbq: "lbq-latn-pg", lbr: "lbr-deva-np", lbt: "lbt-latn-vn", lbu: "lbu-latn-zz", lbv: "lbv-latn-pg", lbw: "lbw-latn-id", lbx: "lbx-latn-id", lby: "lby-latn-au", lbz: "lbz-latn-au", lcc: "lcc-latn-id", lcd: "lcd-latn-id", lce: "lce-latn-id", lcf: "lcf-latn-id", lch: "lch-latn-ao", lcl: "lcl-latn-id", lcm: "lcm-latn-zz", lcp: "lcp-thai-cn", lcq: "lcq-latn-id", lcs: "lcs-latn-id", lda: "lda-latn-ci", ldb: "ldb-latn-zz", ldd: "ldd-latn-ng", ldg: "ldg-latn-ng", ldh: "ldh-latn-ng", ldi: "ldi-latn-cg", ldj: "ldj-latn-ng", ldk: "ldk-latn-ng", ldl: "ldl-latn-ng", ldm: "ldm-latn-gn", ldn: "ldn-latn-001", ldo: "ldo-latn-ng", ldp: "ldp-latn-ng", ldq: "ldq-latn-ng", lea: "lea-latn-cd", leb: "leb-latn-zm", lec: "lec-latn-bo", led: "led-latn-zz", lee: "lee-latn-zz", lef: "lef-latn-gh", leh: "leh-latn-zm", lei: "lei-latn-pg", lej: "lej-latn-cd", lek: "lek-latn-pg", lel: "lel-latn-cd", lem: "lem-latn-zz", len: "len-latn-hn", leo: "leo-latn-cm", lep: "lep-lepc-in", leq: "leq-latn-zz", ler: "ler-latn-pg", les: "les-latn-cd", let: "let-latn-pg", leu: "leu-latn-zz", lev: "lev-latn-id", lew: "lew-latn-id", lex: "lex-latn-id", ley: "ley-latn-id", lez: "lez-cyrl-ru", lfa: "lfa-latn-cm", lfn: "lfn-latn-001", "lfn-cyrl": "lfn-cyrl-001", lg: "lg-latn-ug", lga: "lga-latn-sb", lgb: "lgb-latn-sb", lgg: "lgg-latn-zz", lgh: "lgh-latn-vn", lgi: "lgi-latn-id", lgk: "lgk-latn-vu", lgl: "lgl-latn-sb", lgm: "lgm-latn-cd", lgn: "lgn-latn-et", lgo: "lgo-latn-ss", lgq: "lgq-latn-gh", lgr: "lgr-latn-sb", lgt: "lgt-latn-pg", lgu: "lgu-latn-sb", lgz: "lgz-latn-cd", lha: "lha-latn-vn", lhh: "lhh-latn-id", lhi: "lhi-latn-cn", lhm: "lhm-deva-np", lhn: "lhn-latn-my", lhs: "lhs-syrc-sy", lht: "lht-latn-vu", lhu: "lhu-latn-cn", li: "li-latn-nl", lia: "lia-latn-zz", lib: "lib-latn-pg", lic: "lic-latn-cn", lid: "lid-latn-zz", lie: "lie-latn-cd", lif: "lif-deva-np", "lif-limb": "lif-limb-in", lig: "lig-latn-zz", lih: "lih-latn-zz", lij: "lij-latn-it", lik: "lik-latn-cd", lil: "lil-latn-ca", lio: "lio-latn-id", lip: "lip-latn-gh", liq: "liq-latn-et", lir: "lir-latn-lr", lis: "lis-lisu-cn", liu: "liu-latn-sd", liv: "liv-latn-lv", liw: "liw-latn-id", lix: "lix-latn-id", liy: "liy-latn-cf", liz: "liz-latn-cd", lja: "lja-latn-au", lje: "lje-latn-id", lji: "lji-latn-id", ljl: "ljl-latn-id", ljp: "ljp-latn-id", ljw: "ljw-latn-au", ljx: "ljx-latn-au", lka: "lka-latn-tl", lkb: "lkb-latn-ke", lkc: "lkc-latn-vn", lkd: "lkd-latn-br", lke: "lke-latn-ug", lkh: "lkh-tibt-bt", lki: "lki-arab-ir", lkj: "lkj-latn-my", lkl: "lkl-latn-pg", lkm: "lkm-latn-au", lkn: "lkn-latn-vu", lko: "lko-latn-ke", lkr: "lkr-latn-ss", lks: "lks-latn-ke", lkt: "lkt-latn-us", lku: "lku-latn-au", lky: "lky-latn-ss", lla: "lla-latn-ng", llb: "llb-latn-mz", llc: "llc-latn-gn", lld: "lld-latn-it", lle: "lle-latn-zz", llf: "llf-latn-pg", llg: "llg-latn-id", lli: "lli-latn-cg", llj: "llj-latn-au", llk: "llk-latn-my", lll: "lll-latn-pg", llm: "llm-latn-id", lln: "lln-latn-zz", llp: "llp-latn-vu", llq: "llq-latn-id", llu: "llu-latn-sb", llx: "llx-latn-fj", lma: "lma-latn-gn", lmb: "lmb-latn-vu", lmc: "lmc-latn-au", lmd: "lmd-latn-sd", lme: "lme-latn-td", lmf: "lmf-latn-id", lmg: "lmg-latn-pg", lmh: "lmh-deva-np", lmi: "lmi-latn-cd", lmj: "lmj-latn-id", lmk: "lmk-latn-in", "lmk-mymr": "lmk-mymr-in", lml: "lml-latn-vu", lmn: "lmn-telu-in", lmo: "lmo-latn-it", lmp: "lmp-latn-zz", lmq: "lmq-latn-id", lmr: "lmr-latn-id", lmu: "lmu-latn-vu", lmv: "lmv-latn-fj", lmw: "lmw-latn-us", lmx: "lmx-latn-cm", lmy: "lmy-latn-id", ln: "ln-latn-cd", lna: "lna-latn-cf", lnb: "lnb-latn-na", lnd: "lnd-latn-id", lnh: "lnh-latn-my", lni: "lni-latn-pg", lnj: "lnj-latn-au", lnl: "lnl-latn-cf", lnm: "lnm-latn-pg", lnn: "lnn-latn-vu", lns: "lns-latn-zz", lnu: "lnu-latn-zz", lnw: "lnw-latn-au", lnz: "lnz-latn-cd", lo: "lo-laoo-la", loa: "loa-latn-id", lob: "lob-latn-bf", loc: "loc-latn-ph", loe: "loe-latn-id", log: "log-latn-cd", loh: "loh-latn-ss", loi: "loi-latn-ci", loj: "loj-latn-zz", lok: "lok-latn-zz", lol: "lol-latn-cd", lom: "lom-latn-lr", lon: "lon-latn-mw", loo: "loo-latn-cd", lop: "lop-latn-ng", loq: "loq-latn-cd", lor: "lor-latn-zz", los: "los-latn-zz", lot: "lot-latn-ss", "lot-arab": "lot-arab-ss", lou: "lou-latn-us", low: "low-latn-my", lox: "lox-latn-id", loy: "loy-deva-np", "loy-tibt": "loy-tibt-np", loz: "loz-latn-zm", lpa: "lpa-latn-vu", lpe: "lpe-latn-id", lpn: "lpn-latn-mm", lpo: "lpo-plrd-cn", "lpo-lisu": "lpo-lisu-cn", lpx: "lpx-latn-ss", lqr: "lqr-latn-ss", lra: "lra-latn-my", lrc: "lrc-arab-ir", lrg: "lrg-latn-au", lri: "lri-latn-ke", lrk: "lrk-arab-pk", lrl: "lrl-arab-ir", lrm: "lrm-latn-ke", lrn: "lrn-latn-id", lro: "lro-latn-sd", lrt: "lrt-latn-id", lrv: "lrv-latn-vu", lrz: "lrz-latn-vu", lsa: "lsa-arab-ir", lsd: "lsd-hebr-il", lse: "lse-latn-cd", lsi: "lsi-latn-mm", lsm: "lsm-latn-ug", lsr: "lsr-latn-pg", lss: "lss-arab-pk", lt: "lt-latn-lt", ltg: "ltg-latn-lv", lth: "lth-latn-ug", lti: "lti-latn-id", ltn: "ltn-latn-br", lto: "lto-latn-ke", lts: "lts-latn-ke", ltu: "ltu-latn-id", lu: "lu-latn-cd", lua: "lua-latn-cd", luc: "luc-latn-ug", lud: "lud-latn-ru", lue: "lue-latn-zm", luf: "luf-latn-pg", lui: "lui-latn-us", luj: "luj-latn-cd", luk: "luk-tibt-bt", lul: "lul-latn-ss", lum: "lum-latn-ao", lun: "lun-latn-zm", luo: "luo-latn-ke", lup: "lup-latn-ga", luq: "luq-latn-cu", lur: "lur-latn-id", lus: "lus-latn-in", "lus-beng": "lus-beng-bd", "lus-brai": "lus-brai-in", lut: "lut-latn-us", luu: "luu-deva-np", luv: "luv-arab-om", luw: "luw-latn-cm", luy: "luy-latn-ke", luz: "luz-arab-ir", lv: "lv-latn-lv", lva: "lva-latn-tl", lvi: "lvi-latn-la", lvk: "lvk-latn-sb", lvu: "lvu-latn-id", lwa: "lwa-latn-cd", lwe: "lwe-latn-id", lwg: "lwg-latn-ke", lwh: "lwh-latn-vn", lwl: "lwl-thai-th", lwm: "lwm-thai-cn", lwo: "lwo-latn-ss", "lwo-za": "lwo-latn-za", lwt: "lwt-latn-id", lww: "lww-latn-vu", lxm: "lxm-latn-pg", lya: "lya-tibt-bt", lyn: "lyn-latn-zm", lzh: "lzh-hans-cn", lzl: "lzl-latn-vu", lzn: "lzn-latn-mm", lzz: "lzz-latn-tr", maa: "maa-latn-mx", mab: "mab-latn-mx", mad: "mad-latn-id", mae: "mae-latn-ng", maf: "maf-latn-cm", mag: "mag-deva-in", mai: "mai-deva-in", maj: "maj-latn-mx", mak: "mak-latn-id", mam: "mam-latn-gt", man: "man-latn-gm", "man-gn": "man-nkoo-gn", "man-nkoo": "man-nkoo-gn", maq: "maq-latn-mx", mas: "mas-latn-ke", mat: "mat-latn-mx", mau: "mau-latn-mx", mav: "mav-latn-br", maw: "maw-latn-zz", max: "max-latn-id", maz: "maz-latn-mx", mba: "mba-latn-ph", mbb: "mbb-latn-ph", mbc: "mbc-latn-br", mbd: "mbd-latn-ph", mbf: "mbf-latn-sg", mbh: "mbh-latn-zz", mbi: "mbi-latn-ph", mbj: "mbj-latn-br", mbk: "mbk-latn-pg", mbl: "mbl-latn-br", mbm: "mbm-latn-cg", mbn: "mbn-latn-co", mbo: "mbo-latn-zz", mbp: "mbp-latn-co", mbq: "mbq-latn-zz", mbr: "mbr-latn-co", mbs: "mbs-latn-ph", mbt: "mbt-latn-ph", mbu: "mbu-latn-zz", mbv: "mbv-latn-gn", mbw: "mbw-latn-zz", mbx: "mbx-latn-pg", mby: "mby-arab-pk", mbz: "mbz-latn-mx", mca: "mca-latn-py", mcb: "mcb-latn-pe", mcc: "mcc-latn-pg", mcd: "mcd-latn-pe", mce: "mce-latn-mx", mcf: "mcf-latn-pe", mcg: "mcg-latn-ve", mch: "mch-latn-ve", mci: "mci-latn-zz", mcj: "mcj-latn-ng", mck: "mck-latn-ao", mcl: "mcl-latn-co", mcm: "mcm-latn-my", mcn: "mcn-latn-td", mco: "mco-latn-mx", mcp: "mcp-latn-zz", mcq: "mcq-latn-zz", mcr: "mcr-latn-zz", mcs: "mcs-latn-cm", mct: "mct-latn-cm", mcu: "mcu-latn-zz", mcv: "mcv-latn-pg", mcw: "mcw-latn-td", mcx: "mcx-latn-cf", mcy: "mcy-latn-pg", mcz: "mcz-latn-pg", mda: "mda-latn-zz", mdb: "mdb-latn-pg", mdc: "mdc-latn-pg", mdd: "mdd-latn-cm", mde: "mde-arab-zz", mdf: "mdf-cyrl-ru", mdg: "mdg-latn-td", mdh: "mdh-latn-ph", mdi: "mdi-latn-cd", mdj: "mdj-latn-zz", mdk: "mdk-latn-cd", mdm: "mdm-latn-cd", mdn: "mdn-latn-cf", mdp: "mdp-latn-cd", mdq: "mdq-latn-cd", mdr: "mdr-latn-id", mds: "mds-latn-pg", mdt: "mdt-latn-cg", mdu: "mdu-latn-cg", mdv: "mdv-latn-mx", mdw: "mdw-latn-cg", mdx: "mdx-ethi-zz", mdy: "mdy-ethi-et", "mdy-latn": "mdy-latn-et", mdz: "mdz-latn-br", mea: "mea-latn-cm", meb: "meb-latn-pg", mec: "mec-latn-au", med: "med-latn-zz", mee: "mee-latn-zz", meh: "meh-latn-mx", mej: "mej-latn-id", mek: "mek-latn-zz", mel: "mel-latn-my", mem: "mem-latn-au", men: "men-latn-sl", meo: "meo-latn-my", "meo-arab": "meo-arab-my", mep: "mep-latn-au", meq: "meq-latn-cm", mer: "mer-latn-ke", mes: "mes-latn-td", met: "met-latn-zz", meu: "meu-latn-zz", mev: "mev-latn-lr", mew: "mew-latn-ng", mey: "mey-latn-mr", "mey-arab": "mey-arab-mr", mez: "mez-latn-us", mfa: "mfa-arab-th", mfb: "mfb-latn-id", mfc: "mfc-latn-cd", mfd: "mfd-latn-cm", mfe: "mfe-latn-mu", mff: "mff-latn-cm", mfg: "mfg-latn-gn", "mfg-arab": "mfg-arab-gn", mfh: "mfh-latn-cm", mfi: "mfi-arab-cm", "mfi-latn": "mfi-latn-cm", mfj: "mfj-latn-cm", mfk: "mfk-latn-cm", mfl: "mfl-latn-ng", mfm: "mfm-latn-ng", mfn: "mfn-latn-zz", mfo: "mfo-latn-zz", mfp: "mfp-latn-id", mfq: "mfq-latn-zz", mfr: "mfr-latn-au", mft: "mft-latn-pg", mfu: "mfu-latn-ao", mfv: "mfv-latn-gw", mfw: "mfw-latn-pg", mfx: "mfx-latn-et", "mfx-ethi": "mfx-ethi-et", mfy: "mfy-latn-mx", mfz: "mfz-latn-ss", mg: "mg-latn-mg", mgb: "mgb-latn-td", mgc: "mgc-latn-ss", mgd: "mgd-latn-ss", "mgd-arab": "mgd-arab-ss", mge: "mge-latn-td", mgf: "mgf-latn-id", mgg: "mgg-latn-cm", mgh: "mgh-latn-mz", mgi: "mgi-latn-ng", mgj: "mgj-latn-ng", mgk: "mgk-latn-id", mgl: "mgl-latn-zz", mgm: "mgm-latn-tl", mgn: "mgn-latn-cf", mgo: "mgo-latn-cm", mgp: "mgp-deva-np", mgq: "mgq-latn-tz", mgr: "mgr-latn-zm", mgs: "mgs-latn-tz", mgt: "mgt-latn-pg", mgu: "mgu-latn-pg", mgv: "mgv-latn-tz", mgw: "mgw-latn-tz", mgy: "mgy-latn-tz", mgz: "mgz-latn-tz", mh: "mh-latn-mh", mhb: "mhb-latn-ga", mhc: "mhc-latn-mx", mhd: "mhd-latn-tz", mhe: "mhe-latn-my", mhf: "mhf-latn-pg", mhg: "mhg-latn-au", mhi: "mhi-latn-zz", mhj: "mhj-arab-af", mhk: "mhk-latn-cm", mhl: "mhl-latn-zz", mhm: "mhm-latn-mz", mhn: "mhn-latn-it", mho: "mho-latn-zm", mhp: "mhp-latn-id", mhq: "mhq-latn-us", mhs: "mhs-latn-id", mht: "mht-latn-ve", mhu: "mhu-latn-in", mhw: "mhw-latn-bw", mhx: "mhx-latn-mm", mhy: "mhy-latn-id", mhz: "mhz-latn-id", mi: "mi-latn-nz", mia: "mia-latn-us", mib: "mib-latn-mx", mic: "mic-latn-ca", mid: "mid-mand-iq", mie: "mie-latn-mx", mif: "mif-latn-zz", mig: "mig-latn-mx", mih: "mih-latn-mx", mii: "mii-latn-mx", mij: "mij-latn-cm", mik: "mik-latn-us", mil: "mil-latn-mx", mim: "mim-latn-mx", min: "min-latn-id", mio: "mio-latn-mx", mip: "mip-latn-mx", miq: "miq-latn-ni", mir: "mir-latn-mx", mit: "mit-latn-mx", miu: "miu-latn-mx", miw: "miw-latn-zz", mix: "mix-latn-mx", miy: "miy-latn-mx", miz: "miz-latn-mx", mjb: "mjb-latn-tl", mjc: "mjc-latn-mx", mjd: "mjd-latn-us", mje: "mje-latn-td", mjg: "mjg-latn-cn", mjh: "mjh-latn-tz", mji: "mji-latn-cn", mjj: "mjj-latn-pg", mjk: "mjk-latn-pg", mjl: "mjl-deva-in", "mjl-takr": "mjl-takr-in", mjm: "mjm-latn-pg", mjn: "mjn-latn-pg", mjq: "mjq-mlym-in", mjr: "mjr-mlym-in", mjs: "mjs-latn-ng", mjt: "mjt-deva-in", "mjt-beng": "mjt-beng-bd", mju: "mju-telu-in", mjv: "mjv-mlym-in", mjw: "mjw-latn-in", mjx: "mjx-latn-bd", "mjx-beng": "mjx-beng-bd", mjy: "mjy-latn-us", mjz: "mjz-deva-np", mk: "mk-cyrl-mk", mka: "mka-latn-ci", mkb: "mkb-deva-in", mkc: "mkc-latn-pg", mke: "mke-deva-in", mkf: "mkf-latn-ng", mki: "mki-arab-zz", mkj: "mkj-latn-fm", mkk: "mkk-latn-cm", mkl: "mkl-latn-zz", mkm: "mkm-thai-th", mkn: "mkn-latn-id", mko: "mko-latn-ng", mkp: "mkp-latn-zz", mkr: "mkr-latn-pg", mks: "mks-latn-mx", mkt: "mkt-latn-nc", mku: "mku-latn-gn", mkv: "mkv-latn-vu", mkw: "mkw-latn-zz", mkx: "mkx-latn-ph", mky: "mky-latn-id", mkz: "mkz-latn-tl", ml: "ml-mlym-in", mla: "mla-latn-vu", mlb: "mlb-latn-cm", mlc: "mlc-latn-vn", mle: "mle-latn-zz", mlf: "mlf-thai-la", "mlf-latn": "mlf-latn-la", mlh: "mlh-latn-pg", mli: "mli-latn-id", mlj: "mlj-latn-td", mlk: "mlk-latn-ke", mll: "mll-latn-vu", mln: "mln-latn-sb", mlo: "mlo-latn-sn", mlp: "mlp-latn-zz", mlq: "mlq-latn-sn", "mlq-arab": "mlq-arab-sn", mlr: "mlr-latn-cm", mls: "mls-latn-sd", mlu: "mlu-latn-sb", mlv: "mlv-latn-vu", mlw: "mlw-latn-cm", mlx: "mlx-latn-vu", mlz: "mlz-latn-ph", mma: "mma-latn-ng", mmb: "mmb-latn-id", mmc: "mmc-latn-mx", mmd: "mmd-latn-cn", "mmd-hans": "mmd-hans-cn", "mmd-hant": "mmd-hant-cn", mme: "mme-latn-vu", mmf: "mmf-latn-ng", mmg: "mmg-latn-vu", mmh: "mmh-latn-br", mmi: "mmi-latn-pg", mmm: "mmm-latn-vu", mmn: "mmn-latn-ph", mmo: "mmo-latn-zz", mmp: "mmp-latn-pg", mmq: "mmq-latn-pg", mmr: "mmr-latn-cn", mmt: "mmt-latn-pg", mmu: "mmu-latn-zz", mmv: "mmv-latn-br", mmw: "mmw-latn-vu", mmx: "mmx-latn-zz", mmy: "mmy-latn-td", mmz: "mmz-latn-cd", mn: "mn-cyrl-mn", "mn-cn": "mn-mong-cn", "mn-mong": "mn-mong-cn", mna: "mna-latn-zz", mnb: "mnb-latn-id", mnd: "mnd-latn-br", mne: "mne-latn-td", mnf: "mnf-latn-zz", mng: "mng-latn-vn", mnh: "mnh-latn-cd", mni: "mni-beng-in", mnj: "mnj-arab-af", mnl: "mnl-latn-vu", mnm: "mnm-latn-pg", mnn: "mnn-latn-vn", mnp: "mnp-latn-cn", mnq: "mnq-latn-my", mnr: "mnr-latn-us", mns: "mns-cyrl-ru", mnu: "mnu-latn-id", mnv: "mnv-latn-sb", mnw: "mnw-mymr-mm", mnx: "mnx-latn-id", mny: "mny-latn-mz", mnz: "mnz-latn-id", mo: "mo-latn-ro", moa: "moa-latn-zz", moc: "moc-latn-ar", mod: "mod-latn-us", moe: "moe-latn-ca", mog: "mog-latn-id", moh: "moh-latn-ca", moi: "moi-latn-ng", moj: "moj-latn-cg", mok: "mok-latn-id", mom: "mom-latn-ni", moo: "moo-latn-vn", mop: "mop-latn-bz", moq: "moq-latn-id", mor: "mor-latn-sd", mos: "mos-latn-bf", mot: "mot-latn-co", mou: "mou-latn-td", mov: "mov-latn-us", mow: "mow-latn-cg", mox: "mox-latn-zz", moy: "moy-latn-et", "moy-ethi": "moy-ethi-et", moz: "moz-latn-td", mpa: "mpa-latn-tz", mpb: "mpb-latn-au", mpc: "mpc-latn-au", mpd: "mpd-latn-br", mpe: "mpe-latn-et", "mpe-ethi": "mpe-ethi-et", mpg: "mpg-latn-td", mph: "mph-latn-au", mpi: "mpi-latn-cm", mpj: "mpj-latn-au", mpk: "mpk-latn-td", mpl: "mpl-latn-pg", mpm: "mpm-latn-mx", mpn: "mpn-latn-pg", mpo: "mpo-latn-pg", mpp: "mpp-latn-zz", mpq: "mpq-latn-br", mpr: "mpr-latn-sb", mps: "mps-latn-zz", mpt: "mpt-latn-zz", mpu: "mpu-latn-br", mpv: "mpv-latn-pg", mpw: "mpw-latn-br", mpx: "mpx-latn-zz", mpy: "mpy-latn-id", mpz: "mpz-thai-th", mqa: "mqa-latn-id", mqb: "mqb-latn-cm", mqc: "mqc-latn-id", mqe: "mqe-latn-pg", mqf: "mqf-latn-id", mqg: "mqg-latn-id", mqh: "mqh-latn-mx", mqi: "mqi-latn-id", mqj: "mqj-latn-id", mqk: "mqk-latn-ph", mql: "mql-latn-zz", mqm: "mqm-latn-pf", mqn: "mqn-latn-id", mqo: "mqo-latn-id", mqp: "mqp-latn-id", mqq: "mqq-latn-my", mqr: "mqr-latn-id", mqs: "mqs-latn-id", mqu: "mqu-latn-ss", mqv: "mqv-latn-pg", mqw: "mqw-latn-pg", mqx: "mqx-latn-id", "mqx-bugi": "mqx-bugi-id", mqy: "mqy-latn-id", mqz: "mqz-latn-pg", mr: "mr-deva-in", mra: "mra-thai-th", mrb: "mrb-latn-vu", mrc: "mrc-latn-us", mrd: "mrd-deva-np", mrf: "mrf-latn-id", mrg: "mrg-latn-in", "mrg-beng": "mrg-beng-in", "mrg-deva": "mrg-deva-in", mrh: "mrh-latn-in", mrj: "mrj-cyrl-ru", mrk: "mrk-latn-nc", mrl: "mrl-latn-fm", mrm: "mrm-latn-vu", mrn: "mrn-latn-sb", mro: "mro-mroo-bd", mrp: "mrp-latn-vu", mrq: "mrq-latn-pf", mrr: "mrr-deva-in", mrs: "mrs-latn-vu", mrt: "mrt-latn-ng", mru: "mru-latn-cm", mrv: "mrv-latn-pf", mrw: "mrw-latn-ph", "mrw-arab": "mrw-arab-ph", mrx: "mrx-latn-id", mry: "mry-latn-ph", mrz: "mrz-latn-id", ms: "ms-latn-my", "ms-cc": "ms-arab-cc", msb: "msb-latn-ph", msc: "msc-latn-gn", mse: "mse-latn-td", msf: "msf-latn-id", msg: "msg-latn-id", msh: "msh-latn-mg", msi: "msi-latn-my", msj: "msj-latn-cd", msk: "msk-latn-ph", msl: "msl-latn-id", msm: "msm-latn-ph", msn: "msn-latn-vu", mso: "mso-latn-id", msp: "msp-latn-br", msq: "msq-latn-nc", mss: "mss-latn-id", msu: "msu-latn-pg", msv: "msv-latn-cm", msw: "msw-latn-gw", msx: "msx-latn-pg", msy: "msy-latn-pg", msz: "msz-latn-pg", mt: "mt-latn-mt", mta: "mta-latn-ph", mtb: "mtb-latn-ci", mtc: "mtc-latn-zz", mtd: "mtd-latn-id", mte: "mte-latn-sb", mtf: "mtf-latn-zz", mtg: "mtg-latn-id", mth: "mth-latn-id", mti: "mti-latn-zz", mtj: "mtj-latn-id", mtk: "mtk-latn-cm", mtl: "mtl-latn-ng", mtm: "mtm-cyrl-ru", mtn: "mtn-latn-ni", mto: "mto-latn-mx", mtp: "mtp-latn-bo", mtq: "mtq-latn-vn", mtr: "mtr-deva-in", mts: "mts-latn-pe", mtt: "mtt-latn-vu", mtu: "mtu-latn-mx", mtv: "mtv-latn-pg", mtw: "mtw-latn-ph", mtx: "mtx-latn-mx", mty: "mty-latn-pg", mua: "mua-latn-cm", mub: "mub-latn-td", muc: "muc-latn-cm", mud: "mud-cyrl-ru", mue: "mue-latn-ec", mug: "mug-latn-cm", muh: "muh-latn-ss", mui: "mui-latn-id", muj: "muj-latn-td", muk: "muk-tibt-np", mum: "mum-latn-pg", muo: "muo-latn-cm", muq: "muq-latn-cn", mur: "mur-latn-zz", mus: "mus-latn-us", mut: "mut-deva-in", muu: "muu-latn-ke", muv: "muv-taml-in", mux: "mux-latn-pg", muy: "muy-latn-cm", muz: "muz-ethi-et", "muz-latn": "muz-latn-et", mva: "mva-latn-zz", mvd: "mvd-latn-id", mvf: "mvf-mong-cn", "mvf-phag": "mvf-phag-cn", mvg: "mvg-latn-mx", mvh: "mvh-latn-td", mvk: "mvk-latn-pg", mvl: "mvl-latn-au", mvn: "mvn-latn-zz", mvo: "mvo-latn-sb", mvp: "mvp-latn-id", mvq: "mvq-latn-pg", mvr: "mvr-latn-id", mvs: "mvs-latn-id", mvt: "mvt-latn-vu", mvu: "mvu-latn-td", mvv: "mvv-latn-my", mvw: "mvw-latn-tz", mvx: "mvx-latn-id", mvy: "mvy-arab-pk", mvz: "mvz-ethi-et", "mvz-arab": "mvz-arab-et", mwa: "mwa-latn-pg", mwb: "mwb-latn-pg", mwc: "mwc-latn-pg", mwe: "mwe-latn-tz", mwf: "mwf-latn-au", mwg: "mwg-latn-pg", mwh: "mwh-latn-pg", mwi: "mwi-latn-vu", mwk: "mwk-latn-ml", mwl: "mwl-latn-pt", mwm: "mwm-latn-td", mwn: "mwn-latn-zm", mwo: "mwo-latn-vu", mwp: "mwp-latn-au", mwq: "mwq-latn-mm", mwr: "mwr-deva-in", mws: "mws-latn-ke", mwt: "mwt-mymr-mm", "mwt-thai": "mwt-thai-th", mwu: "mwu-latn-ss", mwv: "mwv-latn-id", mww: "mww-hmnp-us", mwz: "mwz-latn-cd", mxa: "mxa-latn-mx", mxb: "mxb-latn-mx", mxc: "mxc-latn-zw", mxd: "mxd-latn-id", mxe: "mxe-latn-vu", mxf: "mxf-latn-cm", mxg: "mxg-latn-ao", mxh: "mxh-latn-cd", mxi: "mxi-latn-es", mxj: "mxj-latn-in", mxk: "mxk-latn-pg", mxl: "mxl-latn-bj", mxm: "mxm-latn-zz", mxn: "mxn-latn-id", mxo: "mxo-latn-zm", mxp: "mxp-latn-mx", mxq: "mxq-latn-mx", mxr: "mxr-latn-my", mxs: "mxs-latn-mx", mxt: "mxt-latn-mx", mxu: "mxu-latn-cm", mxv: "mxv-latn-mx", mxw: "mxw-latn-pg", mxx: "mxx-latn-ci", mxy: "mxy-latn-mx", mxz: "mxz-latn-id", my: "my-mymr-mm", myb: "myb-latn-td", myc: "myc-latn-cd", mye: "mye-latn-ga", myf: "myf-latn-et", myg: "myg-latn-cm", myh: "myh-latn-us", myj: "myj-latn-ss", myk: "myk-latn-zz", myl: "myl-latn-id", mym: "mym-ethi-zz", myp: "myp-latn-br", myr: "myr-latn-pe", myu: "myu-latn-br", myv: "myv-cyrl-ru", myw: "myw-latn-zz", myx: "myx-latn-ug", myy: "myy-latn-co", myz: "myz-mand-ir", mza: "mza-latn-mx", mzd: "mzd-latn-cm", mze: "mze-latn-pg", mzh: "mzh-latn-ar", mzi: "mzi-latn-mx", mzj: "mzj-latn-lr", mzk: "mzk-latn-zz", mzl: "mzl-latn-mx", mzm: "mzm-latn-zz", mzn: "mzn-arab-ir", mzo: "mzo-latn-br", mzp: "mzp-latn-zz", mzq: "mzq-latn-id", mzr: "mzr-latn-br", mzt: "mzt-latn-my", mzu: "mzu-latn-pg", mzv: "mzv-latn-cf", mzw: "mzw-latn-zz", mzx: "mzx-latn-gy", mzz: "mzz-latn-zz", na: "na-latn-nr", naa: "naa-latn-id", nab: "nab-latn-br", nac: "nac-latn-zz", nae: "nae-latn-id", naf: "naf-latn-zz", nag: "nag-latn-in", naj: "naj-latn-gn", nak: "nak-latn-zz", nal: "nal-latn-pg", nam: "nam-latn-au", nan: "nan-hans-cn", nao: "nao-deva-np", nap: "nap-latn-it", naq: "naq-latn-na", nar: "nar-latn-ng", nas: "nas-latn-zz", nat: "nat-latn-ng", naw: "naw-latn-gh", nax: "nax-latn-pg", nay: "nay-latn-au", naz: "naz-latn-mx", nb: "nb-latn-no", nba: "nba-latn-ao", nbb: "nbb-latn-ng", nbc: "nbc-latn-in", nbd: "nbd-latn-cd", nbe: "nbe-latn-in", nbh: "nbh-latn-ng", nbi: "nbi-latn-in", nbj: "nbj-latn-au", nbk: "nbk-latn-pg", nbm: "nbm-latn-cf", nbn: "nbn-latn-id", nbo: "nbo-latn-ng", nbp: "nbp-latn-ng", nbq: "nbq-latn-id", nbr: "nbr-latn-ng", nbt: "nbt-latn-in", "nbt-deva": "nbt-deva-in", nbu: "nbu-latn-in", nbv: "nbv-latn-cm", nbw: "nbw-latn-cd", nby: "nby-latn-pg", nca: "nca-latn-zz", ncb: "ncb-latn-in", "ncb-deva": "ncb-deva-in", ncc: "ncc-latn-pg", ncd: "ncd-deva-np", nce: "nce-latn-zz", ncf: "ncf-latn-zz", ncg: "ncg-latn-ca", nch: "nch-latn-mx", nci: "nci-latn-mx", ncj: "ncj-latn-mx", nck: "nck-latn-au", ncl: "ncl-latn-mx", ncm: "ncm-latn-pg", ncn: "ncn-latn-pg", nco: "nco-latn-zz", ncq: "ncq-laoo-la", "ncq-thai": "ncq-thai-la", ncr: "ncr-latn-cm", nct: "nct-latn-in", "nct-beng": "nct-beng-in", ncu: "ncu-latn-zz", ncx: "ncx-latn-mx", ncz: "ncz-latn-us", nd: "nd-latn-zw", nda: "nda-latn-cg", ndb: "ndb-latn-cm", ndc: "ndc-latn-mz", ndd: "ndd-latn-ng", ndf: "ndf-cyrl-ru", ndg: "ndg-latn-tz", ndh: "ndh-latn-tz", ndi: "ndi-latn-ng", ndj: "ndj-latn-tz", ndk: "ndk-latn-cd", ndl: "ndl-latn-cd", ndm: "ndm-latn-td", ndn: "ndn-latn-cg", ndp: "ndp-latn-ug", ndq: "ndq-latn-ao", ndr: "ndr-latn-ng", nds: "nds-latn-de", ndt: "ndt-latn-cd", ndu: "ndu-latn-cm", ndv: "ndv-latn-sn", ndw: "ndw-latn-cd", ndx: "ndx-latn-id", ndy: "ndy-latn-cf", "ndy-td": "ndy-latn-td", ndz: "ndz-latn-ss", ne: "ne-deva-np", nea: "nea-latn-id", neb: "neb-latn-zz", nec: "nec-latn-id", ned: "ned-latn-ng", nee: "nee-latn-nc", neg: "neg-cyrl-ru", neh: "neh-tibt-bt", nei: "nei-xsux-tr", nej: "nej-latn-pg", nek: "nek-latn-nc", nem: "nem-latn-nc", nen: "nen-latn-nc", neo: "neo-latn-vn", neq: "neq-latn-mx", ner: "ner-latn-id", net: "net-latn-pg", neu: "neu-latn-001", new: "new-deva-np", nex: "nex-latn-zz", ney: "ney-latn-ci", nez: "nez-latn-us", nfa: "nfa-latn-id", nfd: "nfd-latn-ng", nfl: "nfl-latn-sb", nfr: "nfr-latn-zz", nfu: "nfu-latn-cm", ng: "ng-latn-na", nga: "nga-latn-zz", ngb: "ngb-latn-zz", ngc: "ngc-latn-cd", ngd: "ngd-latn-cf", nge: "nge-latn-cm", ngg: "ngg-latn-cf", ngh: "ngh-latn-za", ngi: "ngi-latn-ng", ngj: "ngj-latn-cm", ngk: "ngk-latn-au", ngl: "ngl-latn-mz", ngm: "ngm-latn-fm", ngn: "ngn-latn-cm", ngp: "ngp-latn-tz", ngq: "ngq-latn-tz", ngr: "ngr-latn-sb", ngs: "ngs-latn-ng", ngt: "ngt-laoo-la", ngu: "ngu-latn-mx", ngv: "ngv-latn-cm", ngw: "ngw-latn-ng", ngx: "ngx-latn-ng", ngy: "ngy-latn-cm", ngz: "ngz-latn-cg", nha: "nha-latn-au", nhb: "nhb-latn-zz", nhc: "nhc-latn-mx", nhd: "nhd-latn-py", nhe: "nhe-latn-mx", nhf: "nhf-latn-au", nhg: "nhg-latn-mx", nhi: "nhi-latn-mx", nhk: "nhk-latn-mx", nhm: "nhm-latn-mx", nhn: "nhn-latn-mx", nho: "nho-latn-pg", nhp: "nhp-latn-mx", nhq: "nhq-latn-mx", nhr: "nhr-latn-bw", nht: "nht-latn-mx", nhu: "nhu-latn-cm", nhv: "nhv-latn-mx", nhw: "nhw-latn-mx", nhx: "nhx-latn-mx", nhy: "nhy-latn-mx", nhz: "nhz-latn-mx", nia: "nia-latn-id", nib: "nib-latn-pg", nid: "nid-latn-au", nie: "nie-latn-td", nif: "nif-latn-zz", nig: "nig-latn-au", nih: "nih-latn-tz", nii: "nii-latn-zz", nij: "nij-latn-id", nil: "nil-latn-id", nim: "nim-latn-tz", nin: "nin-latn-zz", nio: "nio-cyrl-ru", niq: "niq-latn-ke", nir: "nir-latn-id", nis: "nis-latn-pg", nit: "nit-telu-in", niu: "niu-latn-nu", niv: "niv-cyrl-ru", "niv-latn": "niv-latn-ru", niw: "niw-latn-pg", nix: "nix-latn-cd", niy: "niy-latn-zz", niz: "niz-latn-zz", nja: "nja-latn-ng", njb: "njb-latn-in", njd: "njd-latn-tz", njh: "njh-latn-in", nji: "nji-latn-au", njj: "njj-latn-cm", njl: "njl-latn-ss", njm: "njm-latn-in", njn: "njn-latn-in", njo: "njo-latn-in", njr: "njr-latn-ng", njs: "njs-latn-id", njt: "njt-latn-sr", nju: "nju-latn-au", njx: "njx-latn-cg", njy: "njy-latn-cm", njz: "njz-latn-in", "njz-beng": "njz-beng-in", nka: "nka-latn-zm", nkb: "nkb-latn-in", nkc: "nkc-latn-cm", nkd: "nkd-latn-in", nke: "nke-latn-sb", nkf: "nkf-latn-in", nkg: "nkg-latn-zz", nkh: "nkh-latn-in", nki: "nki-latn-in", "nki-beng": "nki-beng-in", nkj: "nkj-latn-id", nkk: "nkk-latn-vu", nkm: "nkm-latn-pg", nkn: "nkn-latn-ao", nko: "nko-latn-zz", nkq: "nkq-latn-gh", nkr: "nkr-latn-fm", nks: "nks-latn-id", nkt: "nkt-latn-tz", nku: "nku-latn-ci", nkv: "nkv-latn-mw", nkw: "nkw-latn-cd", nkx: "nkx-latn-ng", nkz: "nkz-latn-ng", nl: "nl-latn-nl", nla: "nla-latn-cm", nlc: "nlc-latn-id", nle: "nle-latn-ke", nlg: "nlg-latn-sb", nli: "nli-arab-af", nlj: "nlj-latn-cd", nlk: "nlk-latn-id", nlm: "nlm-arab-pk", nlo: "nlo-latn-cd", nlq: "nlq-latn-mm", nlu: "nlu-latn-gh", nlv: "nlv-latn-mx", nlw: "nlw-latn-au", nlx: "nlx-deva-in", nly: "nly-latn-au", nlz: "nlz-latn-sb", nma: "nma-latn-in", nmb: "nmb-latn-vu", nmc: "nmc-latn-td", nmd: "nmd-latn-ga", nme: "nme-latn-in", nmf: "nmf-latn-in", nmg: "nmg-latn-cm", nmh: "nmh-latn-in", nmi: "nmi-latn-ng", nmj: "nmj-latn-cf", nmk: "nmk-latn-vu", nml: "nml-latn-cm", nmm: "nmm-deva-np", "nmm-tibt": "nmm-tibt-np", nmn: "nmn-latn-bw", nmo: "nmo-latn-in", "nmo-beng": "nmo-beng-in", nmp: "nmp-latn-au", nmq: "nmq-latn-zw", nmr: "nmr-latn-cm", nms: "nms-latn-vu", nmt: "nmt-latn-fm", nmu: "nmu-latn-us", nmv: "nmv-latn-au", nmw: "nmw-latn-pg", nmx: "nmx-latn-pg", nmz: "nmz-latn-zz", nn: "nn-latn-no", nna: "nna-latn-au", nnb: "nnb-latn-cd", nnc: "nnc-latn-td", nnd: "nnd-latn-vu", nne: "nne-latn-ao", nnf: "nnf-latn-zz", nng: "nng-latn-in", "nng-beng": "nng-beng-in", nnh: "nnh-latn-cm", nni: "nni-latn-id", nnj: "nnj-latn-et", nnk: "nnk-latn-zz", nnl: "nnl-latn-in", nnm: "nnm-latn-zz", nnn: "nnn-latn-td", nnp: "nnp-wcho-in", nnq: "nnq-latn-tz", nnr: "nnr-latn-au", nnt: "nnt-latn-us", nnu: "nnu-latn-gh", nnv: "nnv-latn-au", nnw: "nnw-latn-bf", nny: "nny-latn-au", nnz: "nnz-latn-cm", no: "no-latn-no", noa: "noa-latn-co", noc: "noc-latn-pg", nod: "nod-lana-th", noe: "noe-deva-in", nof: "nof-latn-pg", nog: "nog-cyrl-ru", noh: "noh-latn-pg", noi: "noi-deva-in", noj: "noj-latn-co", nok: "nok-latn-us", nom: "nom-latn-pe", non: "non-runr-se", nop: "nop-latn-zz", noq: "noq-latn-cd", nos: "nos-yiii-cn", not: "not-latn-pe", nou: "nou-latn-zz", nov: "nov-latn-001", now: "now-latn-tz", noy: "noy-latn-td", npb: "npb-tibt-bt", npg: "npg-latn-mm", nph: "nph-latn-in", npl: "npl-latn-mx", npn: "npn-latn-pg", npo: "npo-latn-in", nps: "nps-latn-id", npu: "npu-latn-in", npx: "npx-latn-sb", npy: "npy-latn-id", nqg: "nqg-latn-bj", nqk: "nqk-latn-bj", nql: "nql-latn-ao", nqm: "nqm-latn-id", nqn: "nqn-latn-pg", nqo: "nqo-nkoo-gn", nqq: "nqq-latn-mm", nqt: "nqt-latn-ng", nqy: "nqy-latn-mm", nr: "nr-latn-za", nra: "nra-latn-ga", nrb: "nrb-latn-zz", nre: "nre-latn-in", nrf: "nrf-latn-je", nrg: "nrg-latn-vu", nri: "nri-latn-in", nrk: "nrk-latn-au", nrl: "nrl-latn-au", nrm: "nrm-latn-my", nrp: "nrp-latn-it", nru: "nru-latn-cn", "nru-hans": "nru-hans-cn", "nru-hant": "nru-hant-cn", nrx: "nrx-latn-au", nrz: "nrz-latn-pg", nsa: "nsa-latn-in", nsb: "nsb-latn-za", nsc: "nsc-latn-ng", nsd: "nsd-yiii-cn", nse: "nse-latn-zm", nsf: "nsf-yiii-cn", nsg: "nsg-latn-tz", nsh: "nsh-latn-cm", nsk: "nsk-cans-ca", nsm: "nsm-latn-in", nsn: "nsn-latn-zz", nso: "nso-latn-za", nsq: "nsq-latn-us", nss: "nss-latn-zz", nst: "nst-tnsa-in", nsu: "nsu-latn-mx", nsv: "nsv-yiii-cn", nsw: "nsw-latn-vu", nsx: "nsx-latn-ao", nsy: "nsy-latn-id", nsz: "nsz-latn-us", ntd: "ntd-latn-my", nte: "nte-latn-mz", ntg: "ntg-latn-au", nti: "nti-latn-bf", ntj: "ntj-latn-au", ntk: "ntk-latn-tz", ntm: "ntm-latn-zz", nto: "nto-latn-cd", ntp: "ntp-latn-mx", ntr: "ntr-latn-zz", ntu: "ntu-latn-sb", ntx: "ntx-latn-mm", nty: "nty-yiii-vn", ntz: "ntz-arab-ir", nua: "nua-latn-nc", nuc: "nuc-latn-br", nud: "nud-latn-pg", nue: "nue-latn-cd", nuf: "nuf-latn-cn", nug: "nug-latn-au", nuh: "nuh-latn-ng", nui: "nui-latn-zz", nuj: "nuj-latn-ug", nuk: "nuk-latn-ca", num: "num-latn-to", nun: "nun-latn-mm", nuo: "nuo-latn-vn", nup: "nup-latn-zz", nuq: "nuq-latn-pg", nur: "nur-latn-pg", nus: "nus-latn-ss", nut: "nut-latn-vn", nuu: "nuu-latn-cd", nuv: "nuv-latn-zz", nuw: "nuw-latn-fm", nux: "nux-latn-zz", nuy: "nuy-latn-au", nuz: "nuz-latn-mx", nv: "nv-latn-us", nvh: "nvh-latn-vu", nvm: "nvm-latn-pg", nvo: "nvo-latn-cm", nwb: "nwb-latn-zz", nwc: "nwc-newa-np", "nwc-brah": "nwc-brah-np", "nwc-deva": "nwc-deva-np", "nwc-sidd": "nwc-sidd-np", nwe: "nwe-latn-cm", nwg: "nwg-latn-au", nwi: "nwi-latn-vu", nwm: "nwm-latn-ss", nwo: "nwo-latn-au", nwr: "nwr-latn-pg", nww: "nww-latn-tz", nwx: "nwx-deva-np", nxa: "nxa-latn-tl", nxd: "nxd-latn-cd", nxe: "nxe-latn-id", nxg: "nxg-latn-id", nxi: "nxi-latn-tz", nxl: "nxl-latn-id", nxn: "nxn-latn-au", nxo: "nxo-latn-ga", nxq: "nxq-latn-cn", nxr: "nxr-latn-zz", nxx: "nxx-latn-id", ny: "ny-latn-mw", nyb: "nyb-latn-gh", nyc: "nyc-latn-cd", nyd: "nyd-latn-ke", nye: "nye-latn-ao", nyf: "nyf-latn-ke", nyg: "nyg-latn-cd", nyh: "nyh-latn-au", nyi: "nyi-latn-sd", nyj: "nyj-latn-cd", nyk: "nyk-latn-ao", nyl: "nyl-thai-th", nym: "nym-latn-tz", nyn: "nyn-latn-ug", nyo: "nyo-latn-ug", nyp: "nyp-latn-ug", nyq: "nyq-arab-ir", nyr: "nyr-latn-mw", nys: "nys-latn-au", nyt: "nyt-latn-au", nyu: "nyu-latn-mz", nyv: "nyv-latn-au", nyx: "nyx-latn-au", nyy: "nyy-latn-tz", nza: "nza-latn-cm", nzb: "nzb-latn-ga", nzd: "nzd-latn-cd", nzi: "nzi-latn-gh", nzk: "nzk-latn-cf", nzm: "nzm-latn-in", nzu: "nzu-latn-cg", nzy: "nzy-latn-td", nzz: "nzz-latn-ml", oaa: "oaa-cyrl-ru", oac: "oac-cyrl-ru", oar: "oar-syrc-sy", oav: "oav-geor-ge", obi: "obi-latn-us", obk: "obk-latn-ph", obl: "obl-latn-cm", obm: "obm-phnx-jo", obo: "obo-latn-ph", obr: "obr-mymr-mm", obt: "obt-latn-fr", obu: "obu-latn-ng", oc: "oc-latn-fr", oca: "oca-latn-pe", oco: "oco-latn-gb", ocu: "ocu-latn-mx", oda: "oda-latn-ng", odk: "odk-arab-pk", odt: "odt-latn-nl", odu: "odu-latn-ng", ofu: "ofu-latn-ng", ogb: "ogb-latn-ng", ogc: "ogc-latn-zz", ogg: "ogg-latn-ng", ogo: "ogo-latn-ng", ogu: "ogu-latn-ng", oht: "oht-xsux-tr", oia: "oia-latn-id", oie: "oie-latn-ss", oin: "oin-latn-pg", oj: "oj-cans-ca", ojb: "ojb-latn-ca", "ojb-cans": "ojb-cans-ca", ojc: "ojc-latn-ca", ojs: "ojs-cans-ca", ojv: "ojv-latn-sb", ojw: "ojw-latn-ca", "ojw-cans": "ojw-cans-ca", oka: "oka-latn-ca", okb: "okb-latn-ng", okc: "okc-latn-cd", okd: "okd-latn-ng", oke: "oke-latn-ng", okg: "okg-latn-au", oki: "oki-latn-ke", okk: "okk-latn-pg", okm: "okm-hang-kr", oko: "oko-hani-kr", okr: "okr-latn-zz", oks: "oks-latn-ng", oku: "oku-latn-cm", okv: "okv-latn-zz", okx: "okx-latn-ng", okz: "okz-khmr-kh", ola: "ola-deva-np", "ola-tibt": "ola-tibt-cn", old: "old-latn-tz", ole: "ole-tibt-bt", olk: "olk-latn-au", olm: "olm-latn-ng", olo: "olo-latn-ru", olr: "olr-latn-vu", olt: "olt-latn-lt", olu: "olu-latn-ao", om: "om-latn-et", oma: "oma-latn-us", omb: "omb-latn-vu", omc: "omc-latn-pe", omg: "omg-latn-pe", omi: "omi-latn-cd", omk: "omk-cyrl-ru", oml: "oml-latn-cd", omo: "omo-latn-pg", omp: "omp-mtei-in", omr: "omr-modi-in", omt: "omt-latn-ke", omu: "omu-latn-pe", omw: "omw-latn-pg", ona: "ona-latn-ar", one: "one-latn-ca", ong: "ong-latn-zz", oni: "oni-latn-id", onj: "onj-latn-pg", onk: "onk-latn-pg", onn: "onn-latn-zz", ono: "ono-latn-ca", onp: "onp-latn-in", "onp-deva": "onp-deva-in", onr: "onr-latn-pg", ons: "ons-latn-zz", ont: "ont-latn-pg", onu: "onu-latn-vu", onx: "onx-latn-id", ood: "ood-latn-us", oon: "oon-deva-in", oor: "oor-latn-za", opa: "opa-latn-ng", opk: "opk-latn-id", opm: "opm-latn-zz", opo: "opo-latn-pg", opt: "opt-latn-mx", opy: "opy-latn-br", or: "or-orya-in", ora: "ora-latn-sb", orc: "orc-latn-ke", ore: "ore-latn-pe", org: "org-latn-ng", orn: "orn-latn-my", oro: "oro-latn-zz", orr: "orr-latn-ng", ors: "ors-latn-my", ort: "ort-telu-in", oru: "oru-arab-zz", orv: "orv-cyrl-ru", orw: "orw-latn-br", orx: "orx-latn-ng", orz: "orz-latn-id", os: "os-cyrl-ge", osa: "osa-osge-us", osc: "osc-ital-it", "osc-latn": "osc-latn-it", osi: "osi-java-id", oso: "oso-latn-ng", osp: "osp-latn-es", ost: "ost-latn-cm", osu: "osu-latn-pg", osx: "osx-latn-de", ota: "ota-arab-zz", otb: "otb-tibt-cn", otd: "otd-latn-id", ote: "ote-latn-mx", oti: "oti-latn-br", otk: "otk-orkh-mn", otl: "otl-latn-mx", otm: "otm-latn-mx", otn: "otn-latn-mx", otq: "otq-latn-mx", otr: "otr-latn-sd", ots: "ots-latn-mx", ott: "ott-latn-mx", otu: "otu-latn-br", otw: "otw-latn-ca", otx: "otx-latn-mx", oty: "oty-gran-in", otz: "otz-latn-mx", oub: "oub-latn-lr", oue: "oue-latn-pg", oui: "oui-ougr-143", oum: "oum-latn-pg", ovd: "ovd-latn-se", owi: "owi-latn-pg", owl: "owl-latn-gb", oyd: "oyd-latn-et", oym: "oym-latn-br", oyy: "oyy-latn-pg", ozm: "ozm-latn-zz", pa: "pa-guru-in", "pa-arab": "pa-arab-pk", "pa-pk": "pa-arab-pk", pab: "pab-latn-br", pac: "pac-latn-vn", pad: "pad-latn-br", pae: "pae-latn-cd", paf: "paf-latn-br", pag: "pag-latn-ph", pah: "pah-latn-br", pai: "pai-latn-ng", pak: "pak-latn-br", pal: "pal-phli-ir", "pal-phlp": "pal-phlp-cn", pam: "pam-latn-ph", pao: "pao-latn-us", pap: "pap-latn-cw", paq: "paq-cyrl-tj", par: "par-latn-us", pas: "pas-latn-id", pau: "pau-latn-pw", pav: "pav-latn-br", paw: "paw-latn-us", pax: "pax-latn-br", pay: "pay-latn-hn", paz: "paz-latn-br", pbb: "pbb-latn-co", pbc: "pbc-latn-gy", pbe: "pbe-latn-mx", pbf: "pbf-latn-mx", pbg: "pbg-latn-ve", pbh: "pbh-latn-ve", pbi: "pbi-latn-zz", pbl: "pbl-latn-ng", pbm: "pbm-latn-mx", pbn: "pbn-latn-ng", pbo: "pbo-latn-gw", pbp: "pbp-latn-gn", pbr: "pbr-latn-tz", pbs: "pbs-latn-mx", pbt: "pbt-arab-af", pbv: "pbv-latn-in", pby: "pby-latn-pg", pca: "pca-latn-mx", pcb: "pcb-khmr-kh", pcc: "pcc-latn-cn", "pcc-hani": "pcc-hani-cn", pcd: "pcd-latn-fr", pce: "pce-mymr-mm", "pce-thai": "pce-thai-th", pcf: "pcf-mlym-in", pcg: "pcg-mlym-in", "pcg-knda": "pcg-knda-in", "pcg-taml": "pcg-taml-in", pch: "pch-deva-in", pci: "pci-deva-in", "pci-orya": "pci-orya-in", pcj: "pcj-telu-in", pck: "pck-latn-in", pcm: "pcm-latn-ng", pcn: "pcn-latn-ng", pcp: "pcp-latn-bo", pcw: "pcw-latn-ng", pda: "pda-latn-pg", pdc: "pdc-latn-us", pdn: "pdn-latn-id", pdo: "pdo-latn-id", pdt: "pdt-latn-ca", pdu: "pdu-latn-mm", "pdu-mymr": "pdu-mymr-mm", pea: "pea-latn-id", peb: "peb-latn-us", ped: "ped-latn-zz", pee: "pee-latn-id", peg: "peg-orya-in", pei: "pei-latn-mx", pek: "pek-latn-pg", pel: "pel-latn-id", pem: "pem-latn-cd", peo: "peo-xpeo-ir", pep: "pep-latn-pg", peq: "peq-latn-us", pev: "pev-latn-ve", pex: "pex-latn-zz", pey: "pey-latn-id", pez: "pez-latn-my", pfa: "pfa-latn-fm", pfe: "pfe-latn-cm", pfl: "pfl-latn-de", pga: "pga-latn-ss", pgd: "pgd-khar-pk", pgg: "pgg-deva-in", pgi: "pgi-latn-pg", pgk: "pgk-latn-vu", pgl: "pgl-ogam-ie", pgn: "pgn-ital-it", pgs: "pgs-latn-ng", pgu: "pgu-latn-id", phd: "phd-deva-in", phg: "phg-latn-vn", phh: "phh-latn-vn", phk: "phk-mymr-in", phl: "phl-arab-zz", phm: "phm-latn-mz", phn: "phn-phnx-lb", pho: "pho-laoo-la", phr: "phr-arab-pk", pht: "pht-thai-th", phv: "phv-arab-af", phw: "phw-deva-np", pi: "pi-sinh-in", "pi-brah": "pi-brah-in", "pi-deva": "pi-deva-in", "pi-khar": "pi-khar-in", "pi-khmr": "pi-khmr-in", "pi-mymr": "pi-mymr-in", "pi-thai": "pi-thai-in", pia: "pia-latn-mx", pib: "pib-latn-pe", pic: "pic-latn-ga", pid: "pid-latn-ve", pif: "pif-latn-fm", pig: "pig-latn-pe", pih: "pih-latn-nf", pij: "pij-latn-co", pil: "pil-latn-zz", pim: "pim-latn-us", pin: "pin-latn-pg", pio: "pio-latn-co", pip: "pip-latn-zz", pir: "pir-latn-br", pis: "pis-latn-sb", pit: "pit-latn-au", piu: "piu-latn-au", piv: "piv-latn-sb", piw: "piw-latn-tz", pix: "pix-latn-pg", piy: "piy-latn-ng", piz: "piz-latn-nc", pjt: "pjt-latn-au", pka: "pka-brah-in", pkb: "pkb-latn-ke", pkg: "pkg-latn-pg", pkh: "pkh-latn-bd", "pkh-deva": "pkh-deva-bd", pkn: "pkn-latn-au", pko: "pko-latn-ke", pkp: "pkp-latn-ck", pkr: "pkr-mlym-in", pku: "pku-latn-id", pl: "pl-latn-pl", pla: "pla-latn-zz", plb: "plb-latn-vu", plc: "plc-latn-ph", pld: "pld-latn-gb", ple: "ple-latn-id", plg: "plg-latn-ar", plh: "plh-latn-id", plj: "plj-latn-ng", plk: "plk-arab-pk", pll: "pll-mymr-mm", pln: "pln-latn-co", plo: "plo-latn-mx", plr: "plr-latn-ci", pls: "pls-latn-mx", plu: "plu-latn-br", plv: "plv-latn-ph", plw: "plw-latn-ph", plz: "plz-latn-my", pma: "pma-latn-vu", pmb: "pmb-latn-cd", pmd: "pmd-latn-au", pme: "pme-latn-nc", pmf: "pmf-latn-id", pmh: "pmh-brah-in", pmi: "pmi-latn-cn", pmj: "pmj-latn-cn", pml: "pml-latn-tn", pmm: "pmm-latn-cm", pmn: "pmn-latn-cm", pmo: "pmo-latn-id", pmq: "pmq-latn-mx", pmr: "pmr-latn-pg", pms: "pms-latn-it", pmt: "pmt-latn-pf", pmw: "pmw-latn-us", pmx: "pmx-latn-in", pmy: "pmy-latn-id", pmz: "pmz-latn-mx", pna: "pna-latn-my", pnc: "pnc-latn-id", pnd: "pnd-latn-ao", pne: "pne-latn-my", png: "png-latn-zz", pnh: "pnh-latn-ck", pni: "pni-latn-id", pnj: "pnj-latn-au", pnk: "pnk-latn-bo", pnl: "pnl-latn-bf", pnm: "pnm-latn-my", pnn: "pnn-latn-zz", pno: "pno-latn-pe", pnp: "pnp-latn-id", pnq: "pnq-latn-bf", pnr: "pnr-latn-pg", pns: "pns-latn-id", pnt: "pnt-grek-gr", pnv: "pnv-latn-au", pnw: "pnw-latn-au", pny: "pny-latn-cm", pnz: "pnz-latn-cf", poc: "poc-latn-gt", poe: "poe-latn-mx", pof: "pof-latn-cd", pog: "pog-latn-br", poh: "poh-latn-gt", poi: "poi-latn-mx", pok: "pok-latn-br", pom: "pom-latn-us", pon: "pon-latn-fm", poo: "poo-latn-us", pop: "pop-latn-nc", poq: "poq-latn-mx", pos: "pos-latn-mx", pot: "pot-latn-us", pov: "pov-latn-gw", pow: "pow-latn-mx", poy: "poy-latn-tz", ppa: "ppa-deva-in", ppe: "ppe-latn-pg", ppi: "ppi-latn-mx", ppk: "ppk-latn-id", ppl: "ppl-latn-sv", ppm: "ppm-latn-id", ppn: "ppn-latn-pg", ppo: "ppo-latn-zz", ppp: "ppp-latn-cd", ppq: "ppq-latn-pg", pps: "pps-latn-mx", ppt: "ppt-latn-pg", pqa: "pqa-latn-ng", pqm: "pqm-latn-ca", pra: "pra-khar-pk", prc: "prc-arab-af", prd: "prd-arab-ir", pre: "pre-latn-st", prf: "prf-latn-ph", prg: "prg-latn-001", prh: "prh-latn-ph", pri: "pri-latn-nc", prk: "prk-latn-mm", prm: "prm-latn-pg", pro: "pro-latn-fr", prp: "prp-gujr-in", prq: "prq-latn-pe", prr: "prr-latn-br", prt: "prt-thai-th", pru: "pru-latn-id", prw: "prw-latn-pg", prx: "prx-arab-in", "prx-tibt": "prx-tibt-in", ps: "ps-arab-af", psa: "psa-latn-id", pse: "pse-latn-id", psh: "psh-arab-af", psi: "psi-arab-af", psm: "psm-latn-bo", psn: "psn-latn-id", psq: "psq-latn-pg", pss: "pss-latn-zz", pst: "pst-arab-pk", psw: "psw-latn-vu", pt: "pt-latn-br", pta: "pta-latn-py", pth: "pth-latn-br", pti: "pti-latn-au", ptn: "ptn-latn-id", pto: "pto-latn-br", ptp: "ptp-latn-zz", ptr: "ptr-latn-vu", ptt: "ptt-latn-id", ptu: "ptu-latn-id", ptv: "ptv-latn-vu", pua: "pua-latn-mx", pub: "pub-latn-in", puc: "puc-latn-id", pud: "pud-latn-id", pue: "pue-latn-ar", puf: "puf-latn-id", pug: "pug-latn-bf", pui: "pui-latn-co", puj: "puj-latn-id", pum: "pum-deva-np", puo: "puo-latn-vn", pup: "pup-latn-pg", puq: "puq-latn-pe", pur: "pur-latn-br", put: "put-latn-id", puu: "puu-latn-ga", puw: "puw-latn-fm", pux: "pux-latn-pg", puy: "puy-latn-us", pwa: "pwa-latn-zz", pwb: "pwb-latn-ng", pwg: "pwg-latn-pg", pwm: "pwm-latn-ph", pwn: "pwn-latn-tw", pwo: "pwo-mymr-mm", pwr: "pwr-deva-in", pww: "pww-thai-th", pxm: "pxm-latn-mx", pye: "pye-latn-ci", pym: "pym-latn-ng", pyn: "pyn-latn-br", pyu: "pyu-latn-tw", "pyu-hani": "pyu-hani-tw", pyx: "pyx-mymr-mm", pyy: "pyy-latn-mm", pzh: "pzh-latn-tw", pzn: "pzn-latn-mm", qu: "qu-latn-pe", qua: "qua-latn-us", qub: "qub-latn-pe", quc: "quc-latn-gt", qud: "qud-latn-ec", quf: "quf-latn-pe", qug: "qug-latn-ec", qui: "qui-latn-us", quk: "quk-latn-pe", qul: "qul-latn-bo", qum: "qum-latn-gt", qun: "qun-latn-us", qup: "qup-latn-pe", quq: "quq-latn-es", qur: "qur-latn-pe", qus: "qus-latn-ar", quv: "quv-latn-gt", quw: "quw-latn-ec", qux: "qux-latn-pe", quy: "quy-latn-pe", qva: "qva-latn-pe", qvc: "qvc-latn-pe", qve: "qve-latn-pe", qvh: "qvh-latn-pe", qvi: "qvi-latn-ec", qvj: "qvj-latn-ec", qvl: "qvl-latn-pe", qvm: "qvm-latn-pe", qvn: "qvn-latn-pe", qvo: "qvo-latn-pe", qvp: "qvp-latn-pe", qvs: "qvs-latn-pe", qvw: "qvw-latn-pe", qvz: "qvz-latn-ec", qwa: "qwa-latn-pe", qwc: "qwc-latn-pe", qwh: "qwh-latn-pe", qwm: "qwm-latn-ru", "qwm-cyrl": "qwm-cyrl-ru", "qwm-runr": "qwm-runr-ru", qws: "qws-latn-pe", qwt: "qwt-latn-us", qxa: "qxa-latn-pe", qxc: "qxc-latn-pe", qxh: "qxh-latn-pe", qxl: "qxl-latn-ec", qxn: "qxn-latn-pe", qxo: "qxo-latn-pe", qxp: "qxp-latn-pe", qxq: "qxq-arab-ir", qxr: "qxr-latn-ec", qxt: "qxt-latn-pe", qxu: "qxu-latn-pe", qxw: "qxw-latn-pe", qya: "qya-latn-001", qyp: "qyp-latn-us", raa: "raa-deva-np", rab: "rab-deva-np", rac: "rac-latn-id", rad: "rad-latn-vn", raf: "raf-deva-np", rag: "rag-latn-ke", rah: "rah-beng-in", "rah-latn": "rah-latn-in", rai: "rai-latn-zz", raj: "raj-deva-in", rak: "rak-latn-pg", ram: "ram-latn-br", ran: "ran-latn-id", rao: "rao-latn-zz", rap: "rap-latn-cl", rar: "rar-latn-ck", rav: "rav-deva-np", raw: "raw-latn-mm", rax: "rax-latn-ng", ray: "ray-latn-pf", raz: "raz-latn-id", rbb: "rbb-mymr-mm", rbk: "rbk-latn-ph", rbl: "rbl-latn-ph", rbp: "rbp-latn-au", rcf: "rcf-latn-re", rdb: "rdb-arab-ir", rea: "rea-latn-pg", reb: "reb-latn-id", ree: "ree-latn-my", reg: "reg-latn-tz", rei: "rei-orya-in", "rei-telu": "rei-telu-in", rej: "rej-latn-id", rel: "rel-latn-zz", rem: "rem-latn-pe", ren: "ren-latn-vn", res: "res-latn-zz", ret: "ret-latn-id", rey: "rey-latn-bo", rga: "rga-latn-vu", rgn: "rgn-latn-it", rgr: "rgr-latn-pe", rgs: "rgs-latn-vn", rgu: "rgu-latn-id", rhg: "rhg-rohg-mm", rhp: "rhp-latn-pg", ria: "ria-latn-in", rif: "rif-latn-ma", ril: "ril-latn-mm", rim: "rim-latn-tz", rin: "rin-latn-ng", rir: "rir-latn-id", rit: "rit-latn-au", riu: "riu-latn-id", rjg: "rjg-latn-id", rji: "rji-deva-np", rjs: "rjs-deva-np", rka: "rka-khmr-kh", rkb: "rkb-latn-br", rkh: "rkh-latn-ck", rki: "rki-mymr-mm", rkm: "rkm-latn-bf", rkt: "rkt-beng-bd", rkw: "rkw-latn-au", rm: "rm-latn-ch", rma: "rma-latn-ni", rmb: "rmb-latn-au", rmc: "rmc-latn-sk", rmd: "rmd-latn-dk", rme: "rme-latn-gb", rmf: "rmf-latn-fi", rmg: "rmg-latn-no", rmh: "rmh-latn-id", rmi: "rmi-armn-am", rmk: "rmk-latn-pg", rml: "rml-latn-pl", "rml-cyrl": "rml-cyrl-by", rmm: "rmm-latn-id", rmn: "rmn-latn-rs", "rmn-cyrl": "rmn-cyrl-bg", "rmn-grek": "rmn-grek-gr", rmo: "rmo-latn-ch", rmp: "rmp-latn-pg", rmq: "rmq-latn-es", rmt: "rmt-arab-ir", rmu: "rmu-latn-se", rmw: "rmw-latn-gb", rmx: "rmx-latn-vn", rmz: "rmz-mymr-in", rn: "rn-latn-bi", rna: "rna-latn-zz", rnd: "rnd-latn-cd", rng: "rng-latn-mz", rnl: "rnl-latn-in", rnn: "rnn-latn-id", rnr: "rnr-latn-au", rnw: "rnw-latn-tz", ro: "ro-latn-ro", rob: "rob-latn-id", roc: "roc-latn-vn", rod: "rod-latn-ng", roe: "roe-latn-pg", rof: "rof-latn-tz", rog: "rog-latn-vn", rol: "rol-latn-ph", rom: "rom-latn-ro", "rom-cyrl": "rom-cyrl-ro", roo: "roo-latn-zz", rop: "rop-latn-au", ror: "ror-latn-id", rou: "rou-latn-td", row: "row-latn-id", rpn: "rpn-latn-vu", rpt: "rpt-latn-pg", rri: "rri-latn-sb", rro: "rro-latn-zz", rrt: "rrt-latn-au", rsk: "rsk-cyrl-rs", rtc: "rtc-latn-mm", rth: "rth-latn-id", rtm: "rtm-latn-fj", rtw: "rtw-deva-in", ru: "ru-cyrl-ru", rub: "rub-latn-ug", ruc: "ruc-latn-ug", rue: "rue-cyrl-ua", ruf: "ruf-latn-tz", rug: "rug-latn-sb", rui: "rui-latn-tz", ruk: "ruk-latn-ng", ruo: "ruo-latn-hr", rup: "rup-latn-ro", "rup-grek": "rup-grek-gr", ruq: "ruq-latn-gr", rut: "rut-cyrl-ru", "rut-latn": "rut-latn-az", ruu: "ruu-latn-my", ruy: "ruy-latn-ng", ruz: "ruz-latn-ng", rw: "rw-latn-rw", rwa: "rwa-latn-pg", rwk: "rwk-latn-tz", rwl: "rwl-latn-tz", rwm: "rwm-latn-ug", rwo: "rwo-latn-zz", rwr: "rwr-deva-in", rxd: "rxd-latn-au", rxw: "rxw-latn-au", ryu: "ryu-kana-jp", sa: "sa-deva-in", saa: "saa-latn-td", sab: "sab-latn-pa", sac: "sac-latn-us", sad: "sad-latn-tz", sae: "sae-latn-br", saf: "saf-latn-gh", sah: "sah-cyrl-ru", saj: "saj-latn-id", sak: "sak-latn-ga", sam: "sam-samr-ps", "sam-hebr": "sam-hebr-ps", "sam-syrc": "sam-syrc-ps", sao: "sao-latn-id", saq: "saq-latn-ke", sar: "sar-latn-bo", sas: "sas-latn-id", sat: "sat-olck-in", sau: "sau-latn-id", sav: "sav-latn-sn", saw: "saw-latn-id", sax: "sax-latn-vu", say: "say-latn-ng", saz: "saz-saur-in", sba: "sba-latn-zz", sbb: "sbb-latn-sb", sbc: "sbc-latn-pg", sbd: "sbd-latn-bf", sbe: "sbe-latn-zz", sbg: "sbg-latn-id", sbh: "sbh-latn-pg", sbi: "sbi-latn-pg", sbj: "sbj-latn-td", sbk: "sbk-latn-tz", sbl: "sbl-latn-ph", sbm: "sbm-latn-tz", sbn: "sbn-arab-pk", sbo: "sbo-latn-my", sbp: "sbp-latn-tz", sbq: "sbq-latn-pg", sbr: "sbr-latn-id", sbs: "sbs-latn-na", sbt: "sbt-latn-id", sbu: "sbu-tibt-in", "sbu-deva": "sbu-deva-in", sbv: "sbv-latn-it", sbw: "sbw-latn-ga", sbx: "sbx-latn-id", sby: "sby-latn-zm", sbz: "sbz-latn-cf", sc: "sc-latn-it", scb: "scb-latn-vn", sce: "sce-latn-cn", "sce-arab": "sce-arab-cn", scf: "scf-latn-pa", scg: "scg-latn-id", sch: "sch-latn-in", sci: "sci-latn-lk", sck: "sck-deva-in", scl: "scl-arab-zz", scn: "scn-latn-it", sco: "sco-latn-gb", scp: "scp-deva-np", scs: "scs-latn-ca", "scs-cans": "scs-cans-ca", sct: "sct-laoo-la", scu: "scu-takr-in", scv: "scv-latn-ng", scw: "scw-latn-ng", scx: "scx-grek-it", sd: "sd-arab-pk", "sd-deva": "sd-deva-in", "sd-in": "sd-deva-in", "sd-khoj": "sd-khoj-in", "sd-sind": "sd-sind-in", sda: "sda-latn-id", sdb: "sdb-arab-iq", sdc: "sdc-latn-it", sde: "sde-latn-ng", sdf: "sdf-arab-iq", sdg: "sdg-arab-af", sdh: "sdh-arab-ir", sdj: "sdj-latn-cg", sdk: "sdk-latn-pg", sdn: "sdn-latn-it", sdo: "sdo-latn-my", sdq: "sdq-latn-id", sds: "sds-arab-tn", sdu: "sdu-latn-id", sdx: "sdx-latn-my", se: "se-latn-no", sea: "sea-latn-my", seb: "seb-latn-ci", sec: "sec-latn-ca", sed: "sed-latn-vn", see: "see-latn-us", sef: "sef-latn-ci", seg: "seg-latn-tz", seh: "seh-latn-mz", sei: "sei-latn-mx", sej: "sej-latn-pg", sek: "sek-latn-ca", "sek-cans": "sek-cans-ca", sel: "sel-cyrl-ru", sen: "sen-latn-bf", seo: "seo-latn-pg", sep: "sep-latn-bf", seq: "seq-latn-bf", ser: "ser-latn-us", ses: "ses-latn-ml", set: "set-latn-id", seu: "seu-latn-id", sev: "sev-latn-ci", sew: "sew-latn-pg", sey: "sey-latn-ec", sez: "sez-latn-mm", sfe: "sfe-latn-ph", sfm: "sfm-plrd-cn", sfw: "sfw-latn-gh", sg: "sg-latn-cf", sga: "sga-ogam-ie", sgb: "sgb-latn-ph", sgc: "sgc-latn-ke", sgd: "sgd-latn-ph", sge: "sge-latn-id", sgh: "sgh-cyrl-tj", "sgh-arab": "sgh-arab-af", "sgh-latn": "sgh-latn-tj", sgi: "sgi-latn-cm", sgj: "sgj-deva-in", sgm: "sgm-latn-ke", sgp: "sgp-latn-in", sgr: "sgr-arab-ir", sgs: "sgs-latn-lt", sgt: "sgt-tibt-bt", sgu: "sgu-latn-id", sgw: "sgw-ethi-zz", sgy: "sgy-arab-af", sgz: "sgz-latn-zz", sha: "sha-latn-ng", shb: "shb-latn-br", shc: "shc-latn-cd", shd: "shd-arab-pk", she: "she-latn-et", shg: "shg-latn-bw", shh: "shh-latn-us", shi: "shi-tfng-ma", shj: "shj-latn-sd", shk: "shk-latn-zz", shm: "shm-arab-ir", shn: "shn-mymr-mm", sho: "sho-latn-ng", shp: "shp-latn-pe", shq: "shq-latn-zm", shr: "shr-latn-cd", shs: "shs-latn-ca", sht: "sht-latn-us", shu: "shu-arab-zz", shv: "shv-arab-om", shw: "shw-latn-sd", shy: "shy-latn-dz", "shy-arab": "shy-arab-dz", "shy-tfng": "shy-tfng-dz", shz: "shz-latn-ml", si: "si-sinh-lk", sia: "sia-cyrl-ru", sib: "sib-latn-my", sid: "sid-latn-et", sie: "sie-latn-zm", sif: "sif-latn-bf", sig: "sig-latn-zz", sih: "sih-latn-nc", sii: "sii-latn-in", sij: "sij-latn-pg", sik: "sik-latn-br", sil: "sil-latn-zz", sim: "sim-latn-zz", sip: "sip-tibt-in", siq: "siq-latn-pg", sir: "sir-latn-ng", sis: "sis-latn-us", siu: "siu-latn-pg", siv: "siv-latn-pg", siw: "siw-latn-pg", six: "six-latn-pg", siy: "siy-arab-ir", siz: "siz-arab-eg", sja: "sja-latn-co", sjb: "sjb-latn-id", sjd: "sjd-cyrl-ru", sje: "sje-latn-se", sjg: "sjg-latn-td", sjl: "sjl-latn-in", sjm: "sjm-latn-ph", sjp: "sjp-deva-in", "sjp-beng": "sjp-beng-in", sjr: "sjr-latn-zz", sjt: "sjt-cyrl-ru", sju: "sju-latn-se", sjw: "sjw-latn-us", sk: "sk-latn-sk", ska: "ska-latn-us", skb: "skb-thai-th", skc: "skc-latn-zz", skd: "skd-latn-us", ske: "ske-latn-vu", skf: "skf-latn-br", skg: "skg-latn-mg", skh: "skh-latn-id", ski: "ski-latn-id", skj: "skj-deva-np", skm: "skm-latn-pg", skn: "skn-latn-ph", sko: "sko-latn-id", skp: "skp-latn-my", skq: "skq-latn-bf", skr: "skr-arab-pk", sks: "sks-latn-zz", skt: "skt-latn-cd", sku: "sku-latn-vu", skv: "skv-latn-id", skw: "skw-latn-gy", skx: "skx-latn-id", sky: "sky-latn-sb", skz: "skz-latn-id", sl: "sl-latn-si", slc: "slc-latn-co", sld: "sld-latn-zz", slg: "slg-latn-id", slh: "slh-latn-us", sli: "sli-latn-pl", slj: "slj-latn-br", sll: "sll-latn-zz", slm: "slm-latn-ph", sln: "sln-latn-us", slp: "slp-latn-id", slq: "slq-arab-ir", slr: "slr-latn-cn", slu: "slu-latn-id", slw: "slw-latn-pg", slx: "slx-latn-cd", sly: "sly-latn-id", slz: "slz-latn-id", sm: "sm-latn-ws", sma: "sma-latn-se", smb: "smb-latn-pg", smc: "smc-latn-pg", smd: "smd-latn-ao", smf: "smf-latn-pg", smg: "smg-latn-pg", smh: "smh-yiii-cn", smj: "smj-latn-se", smk: "smk-latn-ph", sml: "sml-latn-ph", smn: "smn-latn-fi", smp: "smp-samr-il", smq: "smq-latn-zz", smr: "smr-latn-id", sms: "sms-latn-fi", smt: "smt-latn-in", smu: "smu-khmr-kh", smw: "smw-latn-id", smx: "smx-latn-cd", smy: "smy-arab-ir", smz: "smz-latn-pg", sn: "sn-latn-zw", snb: "snb-latn-my", snc: "snc-latn-zz", sne: "sne-latn-my", snf: "snf-latn-sn", sng: "sng-latn-cd", "sng-brai": "sng-brai-cd", sni: "sni-latn-pe", snj: "snj-latn-cf", snk: "snk-latn-ml", snl: "snl-latn-ph", snm: "snm-latn-ug", snn: "snn-latn-co", sno: "sno-latn-us", snp: "snp-latn-zz", snq: "snq-latn-ga", snr: "snr-latn-pg", sns: "sns-latn-vu", snu: "snu-latn-id", snv: "snv-latn-my", snw: "snw-latn-gh", snx: "snx-latn-zz", sny: "sny-latn-zz", snz: "snz-latn-pg", so: "so-latn-so", soa: "soa-tavt-th", "soa-thai": "soa-thai-th", sob: "sob-latn-id", soc: "soc-latn-cd", sod: "sod-latn-cd", soe: "soe-latn-cd", sog: "sog-sogd-uz", soi: "soi-deva-np", sok: "sok-latn-zz", sol: "sol-latn-pg", soo: "soo-latn-cd", sop: "sop-latn-cd", soq: "soq-latn-zz", sor: "sor-latn-td", sos: "sos-latn-bf", sou: "sou-thai-th", sov: "sov-latn-pw", sow: "sow-latn-pg", sox: "sox-latn-cm", soy: "soy-latn-zz", soz: "soz-latn-tz", spb: "spb-latn-id", spc: "spc-latn-ve", spd: "spd-latn-zz", spe: "spe-latn-pg", spg: "spg-latn-my", spi: "spi-latn-id", spk: "spk-latn-pg", spl: "spl-latn-zz", spm: "spm-latn-pg", spn: "spn-latn-py", spo: "spo-latn-us", spp: "spp-latn-ml", spq: "spq-latn-pe", spr: "spr-latn-id", sps: "sps-latn-zz", spt: "spt-tibt-in", spv: "spv-orya-in", sq: "sq-latn-al", sqa: "sqa-latn-ng", sqh: "sqh-latn-ng", sqm: "sqm-latn-cf", sqo: "sqo-arab-ir", sqq: "sqq-laoo-la", sqt: "sqt-arab-ye", "sqt-latn": "sqt-latn-ye", squ: "squ-latn-ca", sr: "sr-cyrl-rs", "sr-me": "sr-latn-me", "sr-ro": "sr-latn-ro", "sr-ru": "sr-latn-ru", "sr-tr": "sr-latn-tr", sra: "sra-latn-pg", srb: "srb-sora-in", sre: "sre-latn-id", srf: "srf-latn-pg", srg: "srg-latn-ph", srh: "srh-arab-cn", sri: "sri-latn-co", srk: "srk-latn-my", srl: "srl-latn-id", srm: "srm-latn-sr", srn: "srn-latn-sr", sro: "sro-latn-it", srq: "srq-latn-bo", srr: "srr-latn-sn", srs: "srs-latn-ca", srt: "srt-latn-id", sru: "sru-latn-br", srv: "srv-latn-ph", srw: "srw-latn-id", srx: "srx-deva-in", sry: "sry-latn-pg", srz: "srz-arab-ir", ss: "ss-latn-za", ssb: "ssb-latn-ph", ssc: "ssc-latn-tz", ssd: "ssd-latn-zz", sse: "sse-latn-ph", "sse-arab": "sse-arab-ph", ssf: "ssf-latn-tw", ssg: "ssg-latn-zz", ssh: "ssh-arab-ae", ssj: "ssj-latn-pg", ssl: "ssl-latn-gh", ssm: "ssm-latn-my", ssn: "ssn-latn-ke", sso: "sso-latn-pg", ssq: "ssq-latn-id", sss: "sss-laoo-la", "sss-thai": "sss-thai-th", sst: "sst-latn-pg", ssu: "ssu-latn-pg", ssv: "ssv-latn-vu", ssx: "ssx-latn-pg", ssy: "ssy-latn-er", ssz: "ssz-latn-pg", st: "st-latn-za", sta: "sta-latn-zm", stb: "stb-latn-ph", ste: "ste-latn-id", stf: "stf-latn-pg", stg: "stg-latn-vn", sth: "sth-latn-ie", sti: "sti-latn-vn", "sti-kh": "sti-latn-kh", stj: "stj-latn-bf", stk: "stk-latn-zz", stl: "stl-latn-nl", stm: "stm-latn-pg", stn: "stn-latn-sb", sto: "sto-latn-ca", stp: "stp-latn-mx", stq: "stq-latn-de", str: "str-latn-ca", sts: "sts-arab-af", stt: "stt-latn-vn", stv: "stv-ethi-et", "stv-arab": "stv-arab-et", stw: "stw-latn-fm", sty: "sty-cyrl-ru", su: "su-latn-id", sua: "sua-latn-zz", sub: "sub-latn-cd", suc: "suc-latn-ph", sue: "sue-latn-zz", sug: "sug-latn-pg", sui: "sui-latn-pg", suj: "suj-latn-tz", suk: "suk-latn-tz", suo: "suo-latn-pg", suq: "suq-latn-et", "suq-ethi": "suq-ethi-et", sur: "sur-latn-zz", sus: "sus-latn-gn", sut: "sut-latn-ni", suv: "suv-latn-in", "suv-beng": "suv-beng-in", "suv-deva": "suv-deva-in", suw: "suw-latn-tz", suy: "suy-latn-br", suz: "suz-deva-np", sv: "sv-latn-se", sva: "sva-geor-ge", "sva-cyrl": "sva-cyrl-ge", "sva-latn": "sva-latn-ge", svb: "svb-latn-pg", svc: "svc-latn-vc", sve: "sve-latn-id", svm: "svm-latn-it", svs: "svs-latn-sb", sw: "sw-latn-tz", swb: "swb-arab-yt", swc: "swc-latn-cd", swf: "swf-latn-cd", swg: "swg-latn-de", swi: "swi-hani-cn", swj: "swj-latn-ga", swk: "swk-latn-mw", swm: "swm-latn-pg", swo: "swo-latn-br", swp: "swp-latn-zz", swq: "swq-latn-cm", swr: "swr-latn-id", sws: "sws-latn-id", swt: "swt-latn-id", swu: "swu-latn-id", swv: "swv-deva-in", sww: "sww-latn-vu", swx: "swx-latn-br", swy: "swy-latn-td", sxb: "sxb-latn-ke", sxe: "sxe-latn-ga", sxn: "sxn-latn-id", sxr: "sxr-latn-tw", sxs: "sxs-latn-ng", sxu: "sxu-latn-de", "sxu-runr": "sxu-runr-de", sxw: "sxw-latn-zz", sya: "sya-latn-id", syb: "syb-latn-ph", syc: "syc-syrc-tr", syi: "syi-latn-ga", syk: "syk-latn-ng", syl: "syl-beng-bd", sym: "sym-latn-bf", syn: "syn-syrc-ir", syo: "syo-latn-kh", syr: "syr-syrc-iq", sys: "sys-latn-td", syw: "syw-deva-np", syx: "syx-latn-ga", sza: "sza-latn-my", szb: "szb-latn-id", szc: "szc-latn-my", szd: "szd-latn-my", szg: "szg-latn-cd", szl: "szl-latn-pl", szn: "szn-latn-id", szp: "szp-latn-id", szv: "szv-latn-cm", szw: "szw-latn-id", szy: "szy-latn-tw", ta: "ta-taml-in", taa: "taa-latn-us", tab: "tab-cyrl-ru", tac: "tac-latn-mx", tad: "tad-latn-id", tae: "tae-latn-br", taf: "taf-latn-br", tag: "tag-latn-sd", taj: "taj-deva-np", tak: "tak-latn-ng", tal: "tal-latn-zz", tan: "tan-latn-zz", tao: "tao-latn-tw", tap: "tap-latn-cd", taq: "taq-latn-zz", tar: "tar-latn-mx", tas: "tas-latn-vn", tau: "tau-latn-us", tav: "tav-latn-co", taw: "taw-latn-pg", tax: "tax-latn-td", tay: "tay-latn-tw", "tay-hans": "tay-hans-tw", "tay-hant": "tay-hant-tw", taz: "taz-latn-sd", tba: "tba-latn-br", tbc: "tbc-latn-zz", tbd: "tbd-latn-zz", tbe: "tbe-latn-sb", tbf: "tbf-latn-zz", tbg: "tbg-latn-zz", tbh: "tbh-latn-au", tbi: "tbi-latn-sd", tbj: "tbj-latn-pg", tbk: "tbk-tagb-ph", "tbk-hano": "tbk-hano-ph", "tbk-latn": "tbk-latn-ph", tbl: "tbl-latn-ph", tbm: "tbm-latn-cd", tbn: "tbn-latn-co", tbo: "tbo-latn-zz", tbp: "tbp-latn-id", tbs: "tbs-latn-pg", tbt: "tbt-latn-cd", tbu: "tbu-latn-mx", tbv: "tbv-latn-pg", tbw: "tbw-latn-ph", tbx: "tbx-latn-pg", tby: "tby-latn-id", tbz: "tbz-latn-zz", tca: "tca-latn-br", tcb: "tcb-latn-us", tcc: "tcc-latn-tz", tcd: "tcd-latn-gh", tce: "tce-latn-ca", tcf: "tcf-latn-mx", tcg: "tcg-latn-id", tch: "tch-latn-tc", tci: "tci-latn-zz", tck: "tck-latn-ga", tcm: "tcm-latn-id", tcn: "tcn-tibt-np", tco: "tco-mymr-mm", tcp: "tcp-latn-mm", tcq: "tcq-latn-id", tcs: "tcs-latn-au", tcu: "tcu-latn-mx", tcw: "tcw-latn-mx", tcx: "tcx-taml-in", tcy: "tcy-knda-in", tcz: "tcz-latn-in", tda: "tda-tfng-ne", "tda-arab": "tda-arab-ne", "tda-latn": "tda-latn-ne", tdb: "tdb-deva-in", "tdb-beng": "tdb-beng-in", "tdb-kthi": "tdb-kthi-in", tdc: "tdc-latn-co", tdd: "tdd-tale-cn", tde: "tde-latn-ml", tdg: "tdg-deva-np", tdh: "tdh-deva-np", tdi: "tdi-latn-id", tdj: "tdj-latn-id", tdk: "tdk-latn-ng", tdl: "tdl-latn-ng", tdm: "tdm-latn-gy", tdn: "tdn-latn-id", tdo: "tdo-latn-ng", tdq: "tdq-latn-ng", tdr: "tdr-latn-vn", tds: "tds-latn-id", tdt: "tdt-latn-tl", tdu: "tdu-latn-my", tdv: "tdv-latn-ng", tdx: "tdx-latn-mg", tdy: "tdy-latn-ph", te: "te-telu-in", tea: "tea-latn-my", teb: "teb-latn-ec", tec: "tec-latn-ke", ted: "ted-latn-zz", tee: "tee-latn-mx", teg: "teg-latn-ga", teh: "teh-latn-ar", tei: "tei-latn-pg", tek: "tek-latn-cd", tem: "tem-latn-sl", ten: "ten-latn-co", teo: "teo-latn-ug", tep: "tep-latn-mx", teq: "teq-latn-sd", ter: "ter-latn-br", tes: "tes-java-id", tet: "tet-latn-tl", teu: "teu-latn-ug", tev: "tev-latn-id", tew: "tew-latn-us", tex: "tex-latn-ss", tey: "tey-latn-sd", tfi: "tfi-latn-zz", tfn: "tfn-latn-us", tfo: "tfo-latn-id", tfr: "tfr-latn-pa", tft: "tft-latn-id", tg: "tg-cyrl-tj", "tg-arab": "tg-arab-pk", "tg-pk": "tg-arab-pk", tga: "tga-latn-ke", tgb: "tgb-latn-my", tgc: "tgc-latn-zz", tgd: "tgd-latn-ng", tge: "tge-deva-np", tgf: "tgf-tibt-bt", tgh: "tgh-latn-tt", tgi: "tgi-latn-pg", tgj: "tgj-latn-in", tgn: "tgn-latn-ph", tgo: "tgo-latn-zz", tgp: "tgp-latn-vu", tgq: "tgq-latn-my", tgs: "tgs-latn-vu", tgt: "tgt-latn-ph", "tgt-hano": "tgt-hano-ph", "tgt-tagb": "tgt-tagb-ph", tgu: "tgu-latn-zz", tgv: "tgv-latn-br", tgw: "tgw-latn-ci", tgx: "tgx-latn-ca", tgy: "tgy-latn-ss", tgz: "tgz-latn-au", th: "th-thai-th", thd: "thd-latn-au", the: "the-deva-np", thf: "thf-deva-np", thh: "thh-latn-mx", thi: "thi-tale-la", thk: "thk-latn-ke", thl: "thl-deva-np", thm: "thm-thai-th", thp: "thp-latn-ca", "thp-dupl": "thp-dupl-ca", thq: "thq-deva-np", thr: "thr-deva-np", ths: "ths-deva-np", tht: "tht-latn-ca", thu: "thu-latn-ss", thv: "thv-latn-dz", "thv-arab": "thv-arab-dz", "thv-tfng": "thv-tfng-dz", thy: "thy-latn-ng", thz: "thz-latn-ne", "thz-tfng": "thz-tfng-ne", ti: "ti-ethi-et", tic: "tic-latn-sd", tif: "tif-latn-zz", tig: "tig-ethi-er", tih: "tih-latn-my", tii: "tii-latn-cd", tij: "tij-deva-np", tik: "tik-latn-zz", til: "til-latn-us", tim: "tim-latn-zz", tin: "tin-cyrl-ru", tio: "tio-latn-zz", tip: "tip-latn-id", tiq: "tiq-latn-bf", tis: "tis-latn-ph", tit: "tit-latn-co", tiu: "tiu-latn-ph", tiv: "tiv-latn-ng", tiw: "tiw-latn-au", tix: "tix-latn-us", tiy: "tiy-latn-ph", tja: "tja-latn-lr", tjg: "tjg-latn-id", tji: "tji-latn-cn", tjj: "tjj-latn-au", tjl: "tjl-mymr-mm", tjn: "tjn-latn-ci", tjo: "tjo-arab-dz", tjp: "tjp-latn-au", tjs: "tjs-latn-cn", tju: "tju-latn-au", tjw: "tjw-latn-au", tk: "tk-latn-tm", tka: "tka-latn-br", tkb: "tkb-deva-in", tkd: "tkd-latn-tl", tke: "tke-latn-mz", tkf: "tkf-latn-br", tkg: "tkg-latn-mg", tkl: "tkl-latn-tk", tkp: "tkp-latn-sb", tkq: "tkq-latn-ng", tkr: "tkr-latn-az", tks: "tks-arab-ir", tkt: "tkt-deva-np", tku: "tku-latn-mx", tkv: "tkv-latn-pg", tkw: "tkw-latn-sb", tkx: "tkx-latn-id", tkz: "tkz-latn-vn", tl: "tl-latn-ph", tla: "tla-latn-mx", tlb: "tlb-latn-id", tlc: "tlc-latn-mx", tld: "tld-latn-id", tlf: "tlf-latn-zz", tlg: "tlg-latn-id", tli: "tli-latn-us", "tli-cyrl": "tli-cyrl-us", tlj: "tlj-latn-ug", tlk: "tlk-latn-id", tll: "tll-latn-cd", tlm: "tlm-latn-vu", tln: "tln-latn-id", tlp: "tlp-latn-mx", tlq: "tlq-latn-mm", tlr: "tlr-latn-sb", tls: "tls-latn-vu", tlt: "tlt-latn-id", tlu: "tlu-latn-id", tlv: "tlv-latn-id", tlx: "tlx-latn-zz", tly: "tly-latn-az", tma: "tma-latn-td", tmb: "tmb-latn-vu", tmc: "tmc-latn-td", tmd: "tmd-latn-pg", tme: "tme-latn-br", tmf: "tmf-latn-py", tmg: "tmg-latn-id", tmh: "tmh-latn-ne", tmi: "tmi-latn-vu", tmj: "tmj-latn-id", tmk: "tmk-deva-np", tml: "tml-latn-id", tmm: "tmm-latn-vn", tmn: "tmn-latn-id", tmo: "tmo-latn-my", tmq: "tmq-latn-pg", tmr: "tmr-syrc-il", tmt: "tmt-latn-vu", tmu: "tmu-latn-id", tmv: "tmv-latn-cd", tmw: "tmw-latn-my", tmy: "tmy-latn-zz", tmz: "tmz-latn-ve", tn: "tn-latn-za", tna: "tna-latn-bo", tnb: "tnb-latn-co", tnc: "tnc-latn-co", tnd: "tnd-latn-co", tng: "tng-latn-td", tnh: "tnh-latn-zz", tni: "tni-latn-id", tnk: "tnk-latn-vu", tnl: "tnl-latn-vu", tnm: "tnm-latn-id", tnn: "tnn-latn-vu", tno: "tno-latn-bo", tnp: "tnp-latn-vu", tnq: "tnq-latn-pr", tnr: "tnr-latn-sn", tns: "tns-latn-pg", tnt: "tnt-latn-id", tnv: "tnv-cakm-bd", tnw: "tnw-latn-id", tnx: "tnx-latn-sb", tny: "tny-latn-tz", to: "to-latn-to", tob: "tob-latn-ar", toc: "toc-latn-mx", tod: "tod-latn-gn", tof: "tof-latn-zz", tog: "tog-latn-mw", toh: "toh-latn-mz", toi: "toi-latn-zm", toj: "toj-latn-mx", tok: "tok-latn-001", tol: "tol-latn-us", tom: "tom-latn-id", too: "too-latn-mx", top: "top-latn-mx", toq: "toq-latn-zz", tor: "tor-latn-cd", tos: "tos-latn-mx", tou: "tou-latn-vn", tov: "tov-arab-ir", tow: "tow-latn-us", tox: "tox-latn-pw", toy: "toy-latn-id", toz: "toz-latn-cm", tpa: "tpa-latn-pg", tpc: "tpc-latn-mx", tpe: "tpe-latn-bd", "tpe-beng": "tpe-beng-bd", tpf: "tpf-latn-id", tpg: "tpg-latn-id", tpi: "tpi-latn-pg", tpj: "tpj-latn-py", tpk: "tpk-latn-br", tpl: "tpl-latn-mx", tpm: "tpm-latn-zz", tpn: "tpn-latn-br", tpp: "tpp-latn-mx", tpr: "tpr-latn-br", tpt: "tpt-latn-mx", tpu: "tpu-khmr-kh", tpv: "tpv-latn-mp", tpx: "tpx-latn-mx", tpy: "tpy-latn-br", tpz: "tpz-latn-zz", tqb: "tqb-latn-br", tql: "tql-latn-vu", tqm: "tqm-latn-pg", tqn: "tqn-latn-us", tqo: "tqo-latn-zz", tqp: "tqp-latn-pg", tqt: "tqt-latn-mx", tqu: "tqu-latn-sb", tqw: "tqw-latn-us", tr: "tr-latn-tr", tra: "tra-arab-af", trb: "trb-latn-pg", trc: "trc-latn-mx", tre: "tre-latn-id", trf: "trf-latn-tt", trg: "trg-hebr-il", trh: "trh-latn-pg", tri: "tri-latn-sr", trj: "trj-latn-td", trl: "trl-latn-gb", trm: "trm-arab-af", trn: "trn-latn-bo", tro: "tro-latn-in", trp: "trp-latn-in", "trp-beng": "trp-beng-in", trq: "trq-latn-mx", trr: "trr-latn-pe", trs: "trs-latn-mx", trt: "trt-latn-id", tru: "tru-latn-tr", trv: "trv-latn-tw", trw: "trw-arab-pk", trx: "trx-latn-my", try: "try-latn-in", trz: "trz-latn-br", ts: "ts-latn-za", tsa: "tsa-latn-cg", tsb: "tsb-latn-et", tsc: "tsc-latn-mz", tsd: "tsd-grek-gr", tsf: "tsf-deva-np", tsg: "tsg-latn-ph", tsh: "tsh-latn-cm", tsi: "tsi-latn-ca", tsj: "tsj-tibt-bt", tsl: "tsl-latn-vn", tsp: "tsp-latn-bf", tsr: "tsr-latn-vu", tst: "tst-latn-ml", tsu: "tsu-latn-tw", tsv: "tsv-latn-ga", tsw: "tsw-latn-zz", tsx: "tsx-latn-pg", tsz: "tsz-latn-mx", tt: "tt-cyrl-ru", ttb: "ttb-latn-ng", ttc: "ttc-latn-gt", ttd: "ttd-latn-zz", tte: "tte-latn-zz", ttf: "ttf-latn-cm", tth: "tth-laoo-la", tti: "tti-latn-id", ttj: "ttj-latn-ug", ttk: "ttk-latn-co", ttl: "ttl-latn-zm", ttm: "ttm-latn-ca", ttn: "ttn-latn-id", tto: "tto-laoo-la", ttp: "ttp-latn-id", ttr: "ttr-latn-zz", tts: "tts-thai-th", ttt: "ttt-latn-az", ttu: "ttu-latn-pg", ttv: "ttv-latn-pg", ttw: "ttw-latn-my", tty: "tty-latn-id", tua: "tua-latn-pg", tub: "tub-latn-us", tuc: "tuc-latn-pg", tud: "tud-latn-br", tue: "tue-latn-co", tuf: "tuf-latn-co", tug: "tug-latn-td", tuh: "tuh-latn-zz", tui: "tui-latn-cm", tuj: "tuj-latn-id", tul: "tul-latn-zz", tum: "tum-latn-mw", tun: "tun-latn-us", tuo: "tuo-latn-br", tuq: "tuq-latn-zz", tus: "tus-latn-ca", tuu: "tuu-latn-us", tuv: "tuv-latn-ke", tux: "tux-latn-br", tuy: "tuy-latn-ke", tuz: "tuz-latn-bf", tva: "tva-latn-sb", tvd: "tvd-latn-zz", tve: "tve-latn-id", tvk: "tvk-latn-vu", tvl: "tvl-latn-tv", tvm: "tvm-latn-id", tvn: "tvn-mymr-mm", tvo: "tvo-latn-id", tvs: "tvs-latn-ke", tvt: "tvt-latn-in", tvu: "tvu-latn-zz", tvw: "tvw-latn-id", tvx: "tvx-latn-tw", twa: "twa-latn-us", twb: "twb-latn-ph", twd: "twd-latn-nl", twe: "twe-latn-id", twf: "twf-latn-us", twg: "twg-latn-id", twh: "twh-latn-zz", twl: "twl-latn-mz", twm: "twm-deva-in", twn: "twn-latn-cm", two: "two-latn-bw", twp: "twp-latn-pg", twq: "twq-latn-ne", twr: "twr-latn-mx", twt: "twt-latn-br", twu: "twu-latn-id", tww: "tww-latn-pg", twx: "twx-latn-mz", twy: "twy-latn-id", txa: "txa-latn-my", txe: "txe-latn-id", txg: "txg-tang-cn", txi: "txi-latn-br", txj: "txj-latn-ng", txm: "txm-latn-id", txn: "txn-latn-id", txo: "txo-toto-in", txq: "txq-latn-id", txs: "txs-latn-id", txt: "txt-latn-id", txu: "txu-latn-br", txx: "txx-latn-my", txy: "txy-latn-mg", ty: "ty-latn-pf", tya: "tya-latn-zz", tye: "tye-latn-ng", tyh: "tyh-latn-vn", tyi: "tyi-latn-cg", tyj: "tyj-latn-vn", tyl: "tyl-latn-vn", tyn: "tyn-latn-id", typ: "typ-latn-au", tyr: "tyr-tavt-vn", tys: "tys-latn-vn", tyt: "tyt-latn-vn", "tyt-tavt": "tyt-tavt-vn", tyu: "tyu-latn-bw", tyv: "tyv-cyrl-ru", tyx: "tyx-latn-cg", tyy: "tyy-latn-ng", tyz: "tyz-latn-vn", tzh: "tzh-latn-mx", tzj: "tzj-latn-gt", tzl: "tzl-latn-001", tzm: "tzm-latn-ma", tzn: "tzn-latn-id", tzo: "tzo-latn-mx", tzx: "tzx-latn-pg", uam: "uam-latn-br", uar: "uar-latn-pg", uba: "uba-latn-ng", ubi: "ubi-latn-td", ubl: "ubl-latn-ph", ubr: "ubr-latn-pg", ubu: "ubu-latn-zz", uda: "uda-latn-ng", ude: "ude-cyrl-ru", udg: "udg-mlym-in", udi: "udi-aghb-ru", udj: "udj-latn-id", udl: "udl-latn-cm", udm: "udm-cyrl-ru", udu: "udu-latn-sd", ues: "ues-latn-id", ufi: "ufi-latn-pg", ug: "ug-arab-cn", "ug-cyrl": "ug-cyrl-kz", "ug-kz": "ug-cyrl-kz", "ug-mn": "ug-cyrl-mn", uga: "uga-ugar-sy", ugb: "ugb-latn-au", uge: "uge-latn-sb", ugh: "ugh-cyrl-ru", ugo: "ugo-thai-th", uha: "uha-latn-ng", uhn: "uhn-latn-id", uis: "uis-latn-pg", uiv: "uiv-latn-cm", uji: "uji-latn-ng", uk: "uk-cyrl-ua", uka: "uka-latn-id", ukg: "ukg-latn-pg", ukh: "ukh-latn-cf", uki: "uki-orya-in", ukk: "ukk-latn-mm", ukp: "ukp-latn-ng", ukq: "ukq-latn-ng", uku: "uku-latn-ng", ukv: "ukv-latn-ss", ukw: "ukw-latn-ng", uky: "uky-latn-au", ula: "ula-latn-ng", ulb: "ulb-latn-ng", ulc: "ulc-cyrl-ru", ule: "ule-latn-ar", ulf: "ulf-latn-id", uli: "uli-latn-fm", ulk: "ulk-latn-au", ulm: "ulm-latn-id", uln: "uln-latn-pg", ulu: "ulu-latn-id", ulw: "ulw-latn-ni", uma: "uma-latn-us", umb: "umb-latn-ao", umd: "umd-latn-au", umg: "umg-latn-au", umi: "umi-latn-my", umm: "umm-latn-ng", umn: "umn-latn-mm", umo: "umo-latn-br", ump: "ump-latn-au", umr: "umr-latn-au", ums: "ums-latn-id", una: "una-latn-pg", und: "en-latn-us", "und-002": "en-latn-ng", "und-003": "en-latn-us", "und-005": "pt-latn-br", "und-009": "en-latn-au", "und-011": "en-latn-ng", "und-013": "es-latn-mx", "und-014": "sw-latn-tz", "und-015": "ar-arab-eg", "und-017": "sw-latn-cd", "und-018": "en-latn-za", "und-019": "en-latn-us", "und-021": "en-latn-us", "und-029": "es-latn-cu", "und-030": "zh-hans-cn", "und-034": "hi-deva-in", "und-035": "id-latn-id", "und-039": "it-latn-it", "und-053": "en-latn-au", "und-054": "en-latn-pg", "und-057": "en-latn-gu", "und-061": "sm-latn-ws", "und-142": "zh-hans-cn", "und-143": "uz-latn-uz", "und-145": "ar-arab-sa", "und-150": "ru-cyrl-ru", "und-151": "ru-cyrl-ru", "und-154": "en-latn-gb", "und-155": "de-latn-de", "und-202": "en-latn-ng", "und-419": "es-latn-419", "und-ad": "ca-latn-ad", "und-adlm": "ff-adlm-gn", "und-ae": "ar-arab-ae", "und-af": "fa-arab-af", "und-aghb": "udi-aghb-ru", "und-ahom": "aho-ahom-in", "und-al": "sq-latn-al", "und-am": "hy-armn-am", "und-ao": "pt-latn-ao", "und-aq": "und-latn-aq", "und-ar": "es-latn-ar", "und-arab": "ar-arab-eg", "und-arab-cc": "ms-arab-cc", "und-arab-cn": "ug-arab-cn", "und-arab-gb": "ur-arab-gb", "und-arab-id": "ms-arab-id", "und-arab-in": "ur-arab-in", "und-arab-kh": "cja-arab-kh", "und-arab-mm": "rhg-arab-mm", "und-arab-mn": "kk-arab-mn", "und-arab-mu": "ur-arab-mu", "und-arab-ng": "ha-arab-ng", "und-arab-pk": "ur-arab-pk", "und-arab-tg": "apd-arab-tg", "und-arab-th": "mfa-arab-th", "und-arab-tj": "fa-arab-tj", "und-arab-tr": "apc-arab-tr", "und-arab-yt": "swb-arab-yt", "und-armi": "arc-armi-ir", "und-armn": "hy-armn-am", "und-as": "sm-latn-as", "und-at": "de-latn-at", "und-avst": "ae-avst-ir", "und-aw": "nl-latn-aw", "und-ax": "sv-latn-ax", "und-az": "az-latn-az", "und-ba": "bs-latn-ba", "und-bali": "ban-bali-id", "und-bamu": "bax-bamu-cm", "und-bass": "bsq-bass-lr", "und-batk": "bbc-batk-id", "und-bd": "bn-beng-bd", "und-be": "nl-latn-be", "und-beng": "bn-beng-bd", "und-bf": "fr-latn-bf", "und-bg": "bg-cyrl-bg", "und-bh": "ar-arab-bh", "und-bhks": "sa-bhks-in", "und-bi": "rn-latn-bi", "und-bj": "fr-latn-bj", "und-bl": "fr-latn-bl", "und-bn": "ms-latn-bn", "und-bo": "es-latn-bo", "und-bopo": "zh-bopo-tw", "und-bq": "pap-latn-bq", "und-br": "pt-latn-br", "und-brah": "pka-brah-in", "und-brai": "fr-brai-fr", "und-bt": "dz-tibt-bt", "und-bugi": "bug-bugi-id", "und-buhd": "bku-buhd-ph", "und-bv": "und-latn-bv", "und-by": "be-cyrl-by", "und-cakm": "ccp-cakm-bd", "und-cans": "iu-cans-ca", "und-cari": "xcr-cari-tr", "und-cd": "sw-latn-cd", "und-cf": "fr-latn-cf", "und-cg": "fr-latn-cg", "und-ch": "de-latn-ch", "und-cham": "cjm-cham-vn", "und-cher": "chr-cher-us", "und-chrs": "xco-chrs-uz", "und-ci": "fr-latn-ci", "und-cl": "es-latn-cl", "und-cm": "fr-latn-cm", "und-cn": "zh-hans-cn", "und-co": "es-latn-co", "und-copt": "cop-copt-eg", "und-cp": "und-latn-cp", "und-cpmn": "und-cpmn-cy", "und-cpmn-cy": "und-cpmn-cy", "und-cprt": "grc-cprt-cy", "und-cr": "es-latn-cr", "und-cu": "es-latn-cu", "und-cv": "pt-latn-cv", "und-cw": "pap-latn-cw", "und-cy": "el-grek-cy", "und-cyrl": "ru-cyrl-ru", "und-cyrl-al": "mk-cyrl-al", "und-cyrl-ba": "sr-cyrl-ba", "und-cyrl-ge": "ab-cyrl-ge", "und-cyrl-gr": "mk-cyrl-gr", "und-cyrl-md": "uk-cyrl-md", "und-cyrl-ro": "bg-cyrl-ro", "und-cyrl-sk": "uk-cyrl-sk", "und-cyrl-tr": "kbd-cyrl-tr", "und-cyrl-xk": "sr-cyrl-xk", "und-cz": "cs-latn-cz", "und-de": "de-latn-de", "und-deva": "hi-deva-in", "und-deva-bt": "ne-deva-bt", "und-deva-fj": "hif-deva-fj", "und-deva-mu": "bho-deva-mu", "und-deva-pk": "btv-deva-pk", "und-diak": "dv-diak-mv", "und-dj": "aa-latn-dj", "und-dk": "da-latn-dk", "und-do": "es-latn-do", "und-dogr": "doi-dogr-in", "und-dupl": "fr-dupl-fr", "und-dz": "ar-arab-dz", "und-ea": "es-latn-ea", "und-ec": "es-latn-ec", "und-ee": "et-latn-ee", "und-eg": "ar-arab-eg", "und-egyp": "egy-egyp-eg", "und-eh": "ar-arab-eh", "und-elba": "sq-elba-al", "und-elym": "arc-elym-ir", "und-er": "ti-ethi-er", "und-es": "es-latn-es", "und-et": "am-ethi-et", "und-ethi": "am-ethi-et", "und-eu": "en-latn-ie", "und-ez": "de-latn-ez", "und-fi": "fi-latn-fi", "und-fo": "fo-latn-fo", "und-fr": "fr-latn-fr", "und-ga": "fr-latn-ga", "und-ge": "ka-geor-ge", "und-geor": "ka-geor-ge", "und-gf": "fr-latn-gf", "und-gh": "ak-latn-gh", "und-gl": "kl-latn-gl", "und-glag": "cu-glag-bg", "und-gn": "fr-latn-gn", "und-gong": "wsg-gong-in", "und-gonm": "esg-gonm-in", "und-goth": "got-goth-ua", "und-gp": "fr-latn-gp", "und-gq": "es-latn-gq", "und-gr": "el-grek-gr", "und-gran": "sa-gran-in", "und-grek": "el-grek-gr", "und-grek-tr": "bgx-grek-tr", "und-gs": "und-latn-gs", "und-gt": "es-latn-gt", "und-gujr": "gu-gujr-in", "und-guru": "pa-guru-in", "und-gw": "pt-latn-gw", "und-hanb": "zh-hanb-tw", "und-hang": "ko-hang-kr", "und-hani": "zh-hani-cn", "und-hano": "hnn-hano-ph", "und-hans": "zh-hans-cn", "und-hant": "zh-hant-tw", "und-hant-ca": "yue-hant-ca", "und-hebr": "he-hebr-il", "und-hebr-se": "yi-hebr-se", "und-hebr-ua": "yi-hebr-ua", "und-hebr-us": "yi-hebr-us", "und-hira": "ja-hira-jp", "und-hk": "zh-hant-hk", "und-hluw": "hlu-hluw-tr", "und-hm": "und-latn-hm", "und-hmng": "hnj-hmng-la", "und-hmnp": "hnj-hmnp-us", "und-hn": "es-latn-hn", "und-hr": "hr-latn-hr", "und-ht": "ht-latn-ht", "und-hu": "hu-latn-hu", "und-hung": "hu-hung-hu", "und-ic": "es-latn-ic", "und-id": "id-latn-id", "und-il": "he-hebr-il", "und-in": "hi-deva-in", "und-iq": "ar-arab-iq", "und-ir": "fa-arab-ir", "und-is": "is-latn-is", "und-it": "it-latn-it", "und-ital": "ett-ital-it", "und-jamo": "ko-jamo-kr", "und-java": "jv-java-id", "und-jo": "ar-arab-jo", "und-jp": "ja-jpan-jp", "und-jpan": "ja-jpan-jp", "und-kali": "eky-kali-mm", "und-kana": "ja-kana-jp", "und-kawi": "kaw-kawi-id", "und-ke": "sw-latn-ke", "und-kg": "ky-cyrl-kg", "und-kh": "km-khmr-kh", "und-khar": "pra-khar-pk", "und-khmr": "km-khmr-kh", "und-khoj": "sd-khoj-in", "und-kits": "zkt-kits-cn", "und-km": "ar-arab-km", "und-knda": "kn-knda-in", "und-kore": "ko-kore-kr", "und-kp": "ko-kore-kp", "und-kr": "ko-kore-kr", "und-kthi": "bho-kthi-in", "und-kw": "ar-arab-kw", "und-kz": "ru-cyrl-kz", "und-la": "lo-laoo-la", "und-lana": "nod-lana-th", "und-laoo": "lo-laoo-la", "und-laoo-au": "hnj-laoo-au", "und-laoo-cn": "hnj-laoo-cn", "und-laoo-fr": "hnj-laoo-fr", "und-laoo-gf": "hnj-laoo-gf", "und-laoo-mm": "hnj-laoo-mm", "und-laoo-sr": "hnj-laoo-sr", "und-laoo-th": "hnj-laoo-th", "und-laoo-us": "hnj-laoo-us", "und-laoo-vn": "hnj-laoo-vn", "und-latn-af": "tk-latn-af", "und-latn-am": "ku-latn-am", "und-latn-cn": "za-latn-cn", "und-latn-cy": "tr-latn-cy", "und-latn-dz": "fr-latn-dz", "und-latn-et": "en-latn-et", "und-latn-ge": "ku-latn-ge", "und-latn-ir": "tk-latn-ir", "und-latn-km": "fr-latn-km", "und-latn-ma": "fr-latn-ma", "und-latn-mk": "sq-latn-mk", "und-latn-mm": "kac-latn-mm", "und-latn-mo": "pt-latn-mo", "und-latn-mr": "fr-latn-mr", "und-latn-ru": "krl-latn-ru", "und-latn-sy": "fr-latn-sy", "und-latn-tn": "fr-latn-tn", "und-latn-tw": "trv-latn-tw", "und-latn-ua": "pl-latn-ua", "und-lb": "ar-arab-lb", "und-lepc": "lep-lepc-in", "und-li": "de-latn-li", "und-limb": "lif-limb-in", "und-lina": "lab-lina-gr", "und-linb": "grc-linb-gr", "und-lisu": "lis-lisu-cn", "und-lk": "si-sinh-lk", "und-ls": "st-latn-ls", "und-lt": "lt-latn-lt", "und-lu": "fr-latn-lu", "und-lv": "lv-latn-lv", "und-ly": "ar-arab-ly", "und-lyci": "xlc-lyci-tr", "und-lydi": "xld-lydi-tr", "und-ma": "ar-arab-ma", "und-mahj": "hi-mahj-in", "und-maka": "mak-maka-id", "und-mand": "myz-mand-ir", "und-mani": "xmn-mani-cn", "und-marc": "bo-marc-cn", "und-mc": "fr-latn-mc", "und-md": "ro-latn-md", "und-me": "sr-latn-me", "und-medf": "dmf-medf-ng", "und-mend": "men-mend-sl", "und-merc": "xmr-merc-sd", "und-mero": "xmr-mero-sd", "und-mf": "fr-latn-mf", "und-mg": "mg-latn-mg", "und-mk": "mk-cyrl-mk", "und-ml": "bm-latn-ml", "und-mlym": "ml-mlym-in", "und-mm": "my-mymr-mm", "und-mn": "mn-cyrl-mn", "und-mo": "zh-hant-mo", "und-modi": "mr-modi-in", "und-mong": "mn-mong-cn", "und-mq": "fr-latn-mq", "und-mr": "ar-arab-mr", "und-mroo": "mro-mroo-bd", "und-mt": "mt-latn-mt", "und-mtei": "mni-mtei-in", "und-mu": "mfe-latn-mu", "und-mult": "skr-mult-pk", "und-mv": "dv-thaa-mv", "und-mx": "es-latn-mx", "und-my": "ms-latn-my", "und-mymr": "my-mymr-mm", "und-mymr-in": "kht-mymr-in", "und-mymr-th": "mnw-mymr-th", "und-mz": "pt-latn-mz", "und-na": "af-latn-na", "und-nagm": "unr-nagm-in", "und-nand": "sa-nand-in", "und-narb": "xna-narb-sa", "und-nbat": "arc-nbat-jo", "und-nc": "fr-latn-nc", "und-ne": "ha-latn-ne", "und-newa": "new-newa-np", "und-ni": "es-latn-ni", "und-nkoo": "man-nkoo-gn", "und-nl": "nl-latn-nl", "und-no": "nb-latn-no", "und-np": "ne-deva-np", "und-nshu": "zhx-nshu-cn", "und-ogam": "sga-ogam-ie", "und-olck": "sat-olck-in", "und-om": "ar-arab-om", "und-orkh": "otk-orkh-mn", "und-orya": "or-orya-in", "und-osge": "osa-osge-us", "und-osma": "so-osma-so", "und-ougr": "oui-ougr-143", "und-pa": "es-latn-pa", "und-palm": "arc-palm-sy", "und-pauc": "ctd-pauc-mm", "und-pe": "es-latn-pe", "und-perm": "kv-perm-ru", "und-pf": "fr-latn-pf", "und-pg": "tpi-latn-pg", "und-ph": "fil-latn-ph", "und-phag": "lzh-phag-cn", "und-phli": "pal-phli-ir", "und-phlp": "pal-phlp-cn", "und-phnx": "phn-phnx-lb", "und-pk": "ur-arab-pk", "und-pl": "pl-latn-pl", "und-plrd": "hmd-plrd-cn", "und-pm": "fr-latn-pm", "und-pr": "es-latn-pr", "und-prti": "xpr-prti-ir", "und-ps": "ar-arab-ps", "und-pt": "pt-latn-pt", "und-pw": "pau-latn-pw", "und-py": "gn-latn-py", "und-qa": "ar-arab-qa", "und-qo": "en-latn-dg", "und-re": "fr-latn-re", "und-rjng": "rej-rjng-id", "und-ro": "ro-latn-ro", "und-rohg": "rhg-rohg-mm", "und-rs": "sr-cyrl-rs", "und-ru": "ru-cyrl-ru", "und-runr": "non-runr-se", "und-rw": "rw-latn-rw", "und-sa": "ar-arab-sa", "und-samr": "smp-samr-il", "und-sarb": "xsa-sarb-ye", "und-saur": "saz-saur-in", "und-sc": "fr-latn-sc", "und-sd": "ar-arab-sd", "und-se": "sv-latn-se", "und-sgnw": "ase-sgnw-us", "und-shaw": "en-shaw-gb", "und-shrd": "sa-shrd-in", "und-si": "sl-latn-si", "und-sidd": "sa-sidd-in", "und-sind": "sd-sind-in", "und-sinh": "si-sinh-lk", "und-sj": "nb-latn-sj", "und-sk": "sk-latn-sk", "und-sm": "it-latn-sm", "und-sn": "fr-latn-sn", "und-so": "so-latn-so", "und-sogd": "sog-sogd-uz", "und-sogo": "sog-sogo-uz", "und-sora": "srb-sora-in", "und-soyo": "cmg-soyo-mn", "und-sr": "nl-latn-sr", "und-st": "pt-latn-st", "und-sund": "su-sund-id", "und-sv": "es-latn-sv", "und-sy": "ar-arab-sy", "und-sylo": "syl-sylo-bd", "und-syrc": "syr-syrc-iq", "und-tagb": "tbw-tagb-ph", "und-takr": "doi-takr-in", "und-tale": "tdd-tale-cn", "und-talu": "khb-talu-cn", "und-taml": "ta-taml-in", "und-tang": "txg-tang-cn", "und-tavt": "blt-tavt-vn", "und-td": "fr-latn-td", "und-telu": "te-telu-in", "und-tf": "fr-latn-tf", "und-tfng": "zgh-tfng-ma", "und-tg": "fr-latn-tg", "und-tglg": "fil-tglg-ph", "und-th": "th-thai-th", "und-thaa": "dv-thaa-mv", "und-thai": "th-thai-th", "und-thai-cn": "lcp-thai-cn", "und-thai-kh": "kdt-thai-kh", "und-thai-la": "kdt-thai-la", "und-tibt": "bo-tibt-cn", "und-tirh": "mai-tirh-in", "und-tj": "tg-cyrl-tj", "und-tk": "tkl-latn-tk", "und-tl": "pt-latn-tl", "und-tm": "tk-latn-tm", "und-tn": "ar-arab-tn", "und-tnsa": "nst-tnsa-in", "und-to": "to-latn-to", "und-toto": "txo-toto-in", "und-tr": "tr-latn-tr", "und-tv": "tvl-latn-tv", "und-tw": "zh-hant-tw", "und-tz": "sw-latn-tz", "und-ua": "uk-cyrl-ua", "und-ug": "sw-latn-ug", "und-ugar": "uga-ugar-sy", "und-uy": "es-latn-uy", "und-uz": "uz-latn-uz", "und-va": "it-latn-va", "und-vaii": "vai-vaii-lr", "und-ve": "es-latn-ve", "und-vith": "sq-vith-al", "und-vn": "vi-latn-vn", "und-vu": "bi-latn-vu", "und-wara": "hoc-wara-in", "und-wcho": "nnp-wcho-in", "und-wf": "fr-latn-wf", "und-ws": "sm-latn-ws", "und-xk": "sq-latn-xk", "und-xpeo": "peo-xpeo-ir", "und-xsux": "akk-xsux-iq", "und-ye": "ar-arab-ye", "und-yezi": "ku-yezi-ge", "und-yiii": "ii-yiii-cn", "und-yt": "fr-latn-yt", "und-zanb": "cmg-zanb-mn", "und-zw": "sn-latn-zw", une: "une-latn-ng", ung: "ung-latn-au", uni: "uni-latn-pg", unk: "unk-latn-br", unm: "unm-latn-us", unn: "unn-latn-au", unr: "unr-beng-in", "unr-deva": "unr-deva-np", "unr-np": "unr-deva-np", unu: "unu-latn-pg", unx: "unx-beng-in", unz: "unz-latn-id", uok: "uok-latn-zz", uon: "uon-latn-tw", upi: "upi-latn-pg", upv: "upv-latn-vu", ur: "ur-arab-pk", ura: "ura-latn-pe", urb: "urb-latn-br", urc: "urc-latn-au", ure: "ure-latn-bo", urf: "urf-latn-au", urg: "urg-latn-pg", urh: "urh-latn-ng", uri: "uri-latn-zz", urk: "urk-thai-th", urm: "urm-latn-pg", urn: "urn-latn-id", uro: "uro-latn-pg", urp: "urp-latn-br", urr: "urr-latn-vu", urt: "urt-latn-zz", uru: "uru-latn-br", urv: "urv-latn-pg", urw: "urw-latn-zz", urx: "urx-latn-pg", ury: "ury-latn-id", urz: "urz-latn-br", usa: "usa-latn-zz", ush: "ush-arab-pk", usi: "usi-latn-bd", "usi-beng": "usi-beng-bd", usk: "usk-latn-cm", usp: "usp-latn-gt", uss: "uss-latn-ng", usu: "usu-latn-pg", uta: "uta-latn-ng", ute: "ute-latn-us", uth: "uth-latn-zz", utp: "utp-latn-sb", utr: "utr-latn-zz", utu: "utu-latn-pg", uum: "uum-grek-ge", "uum-cyrl": "uum-cyrl-ge", uur: "uur-latn-vu", uve: "uve-latn-nc", uvh: "uvh-latn-zz", uvl: "uvl-latn-zz", uwa: "uwa-latn-au", uya: "uya-latn-ng", uz: "uz-latn-uz", "uz-af": "uz-arab-af", "uz-arab": "uz-arab-af", "uz-cn": "uz-cyrl-cn", uzs: "uzs-arab-af", vaa: "vaa-taml-in", vae: "vae-latn-cf", vaf: "vaf-arab-ir", vag: "vag-latn-zz", vah: "vah-deva-in", vai: "vai-vaii-lr", vaj: "vaj-latn-na", val: "val-latn-pg", vam: "vam-latn-pg", van: "van-latn-zz", vao: "vao-latn-vu", vap: "vap-latn-in", var: "var-latn-mx", vas: "vas-deva-in", "vas-gujr": "vas-gujr-in", vau: "vau-latn-cd", vav: "vav-deva-in", "vav-gujr": "vav-gujr-in", vay: "vay-deva-np", vbb: "vbb-latn-id", vbk: "vbk-latn-ph", ve: "ve-latn-za", vec: "vec-latn-it", vem: "vem-latn-ng", veo: "veo-latn-us", vep: "vep-latn-ru", ver: "ver-latn-ng", vgr: "vgr-arab-pk", vi: "vi-latn-vn", vic: "vic-latn-sx", vid: "vid-latn-tz", vif: "vif-latn-cg", vig: "vig-latn-bf", vil: "vil-latn-ar", vin: "vin-latn-tz", vit: "vit-latn-ng", viv: "viv-latn-zz", vka: "vka-latn-au", vkj: "vkj-latn-td", vkk: "vkk-latn-id", vkl: "vkl-latn-id", vkm: "vkm-latn-br", vkn: "vkn-latn-ng", vko: "vko-latn-id", vkp: "vkp-latn-in", "vkp-deva": "vkp-deva-in", vkt: "vkt-latn-id", vku: "vku-latn-au", vkz: "vkz-latn-ng", vlp: "vlp-latn-vu", vls: "vls-latn-be", vma: "vma-latn-au", vmb: "vmb-latn-au", vmc: "vmc-latn-mx", vmd: "vmd-knda-in", vme: "vme-latn-id", vmf: "vmf-latn-de", vmg: "vmg-latn-pg", vmh: "vmh-arab-ir", vmi: "vmi-latn-au", vmj: "vmj-latn-mx", vmk: "vmk-latn-mz", vml: "vml-latn-au", vmm: "vmm-latn-mx", vmp: "vmp-latn-mx", vmq: "vmq-latn-mx", vmr: "vmr-latn-mz", vms: "vms-latn-id", vmu: "vmu-latn-au", vmw: "vmw-latn-mz", vmx: "vmx-latn-mx", vmy: "vmy-latn-mx", vmz: "vmz-latn-mx", vnk: "vnk-latn-sb", vnm: "vnm-latn-vu", vnp: "vnp-latn-vu", vo: "vo-latn-001", vor: "vor-latn-ng", vot: "vot-latn-ru", vra: "vra-latn-vu", vro: "vro-latn-ee", vrs: "vrs-latn-sb", vrt: "vrt-latn-vu", vto: "vto-latn-id", vum: "vum-latn-ga", vun: "vun-latn-tz", vut: "vut-latn-zz", vwa: "vwa-latn-cn", "vwa-mymr": "vwa-mymr-cn", wa: "wa-latn-be", waa: "waa-latn-us", wab: "wab-latn-pg", wac: "wac-latn-us", wad: "wad-latn-id", wae: "wae-latn-ch", waf: "waf-latn-br", wag: "wag-latn-pg", wah: "wah-latn-id", wai: "wai-latn-id", waj: "waj-latn-zz", wal: "wal-ethi-et", wam: "wam-latn-us", wan: "wan-latn-zz", wap: "wap-latn-gy", waq: "waq-latn-au", war: "war-latn-ph", was: "was-latn-us", wat: "wat-latn-pg", wau: "wau-latn-br", wav: "wav-latn-ng", waw: "waw-latn-br", wax: "wax-latn-pg", way: "way-latn-sr", waz: "waz-latn-pg", wba: "wba-latn-ve", wbb: "wbb-latn-id", wbe: "wbe-latn-id", wbf: "wbf-latn-bf", wbh: "wbh-latn-tz", wbi: "wbi-latn-tz", wbj: "wbj-latn-tz", wbk: "wbk-arab-af", wbl: "wbl-latn-pk", "wbl-arab": "wbl-arab-af", "wbl-cyrl": "wbl-cyrl-tj", wbm: "wbm-latn-cn", wbp: "wbp-latn-au", wbq: "wbq-telu-in", wbr: "wbr-deva-in", wbt: "wbt-latn-au", wbv: "wbv-latn-au", wbw: "wbw-latn-id", wca: "wca-latn-br", wci: "wci-latn-zz", wdd: "wdd-latn-ga", wdg: "wdg-latn-pg", wdj: "wdj-latn-au", wdk: "wdk-latn-au", wdt: "wdt-latn-ca", wdu: "wdu-latn-au", wdy: "wdy-latn-au", wec: "wec-latn-ci", wed: "wed-latn-pg", weg: "weg-latn-au", weh: "weh-latn-cm", wei: "wei-latn-pg", wem: "wem-latn-bj", weo: "weo-latn-id", wep: "wep-latn-de", wer: "wer-latn-zz", wes: "wes-latn-cm", wet: "wet-latn-id", weu: "weu-latn-mm", wew: "wew-latn-id", wfg: "wfg-latn-id", wga: "wga-latn-au", wgb: "wgb-latn-pg", wgg: "wgg-latn-au", wgi: "wgi-latn-zz", wgo: "wgo-latn-id", wgu: "wgu-latn-au", wgy: "wgy-latn-au", wha: "wha-latn-id", whg: "whg-latn-zz", whk: "whk-latn-id", whu: "whu-latn-id", wib: "wib-latn-zz", wic: "wic-latn-us", wie: "wie-latn-au", wif: "wif-latn-au", wig: "wig-latn-au", wih: "wih-latn-au", wii: "wii-latn-pg", wij: "wij-latn-au", wik: "wik-latn-au", wil: "wil-latn-au", wim: "wim-latn-au", win: "win-latn-us", wir: "wir-latn-br", wiu: "wiu-latn-zz", wiv: "wiv-latn-zz", wiy: "wiy-latn-us", wja: "wja-latn-zz", wji: "wji-latn-zz", wka: "wka-latn-tz", wkd: "wkd-latn-id", wkr: "wkr-latn-au", wkw: "wkw-latn-au", wky: "wky-latn-au", wla: "wla-latn-pg", wlg: "wlg-latn-au", wlh: "wlh-latn-tl", wli: "wli-latn-id", wlm: "wlm-latn-gb", wlo: "wlo-arab-id", wlr: "wlr-latn-vu", wls: "wls-latn-wf", wlu: "wlu-latn-au", wlv: "wlv-latn-ar", wlw: "wlw-latn-id", wlx: "wlx-latn-gh", wma: "wma-latn-ng", wmb: "wmb-latn-au", wmc: "wmc-latn-pg", wmd: "wmd-latn-br", wme: "wme-deva-np", wmh: "wmh-latn-tl", wmi: "wmi-latn-au", wmm: "wmm-latn-id", wmn: "wmn-latn-nc", wmo: "wmo-latn-zz", wms: "wms-latn-id", wmt: "wmt-latn-au", wmw: "wmw-latn-mz", "wmw-arab": "wmw-arab-mz", wmx: "wmx-latn-pg", wnb: "wnb-latn-pg", wnc: "wnc-latn-zz", wnd: "wnd-latn-au", wne: "wne-arab-pk", wng: "wng-latn-id", wni: "wni-arab-km", wnk: "wnk-latn-id", wnm: "wnm-latn-au", wnn: "wnn-latn-au", wno: "wno-latn-id", wnp: "wnp-latn-pg", wnu: "wnu-latn-zz", wnw: "wnw-latn-us", wny: "wny-latn-au", wo: "wo-latn-sn", woa: "woa-latn-au", wob: "wob-latn-zz", woc: "woc-latn-pg", wod: "wod-latn-id", woe: "woe-latn-fm", wof: "wof-latn-gm", "wof-arab": "wof-arab-gm", wog: "wog-latn-pg", woi: "woi-latn-id", wok: "wok-latn-cm", wom: "wom-latn-ng", won: "won-latn-cd", woo: "woo-latn-id", wor: "wor-latn-id", wos: "wos-latn-zz", wow: "wow-latn-id", wpc: "wpc-latn-ve", wrb: "wrb-latn-au", wrg: "wrg-latn-au", wrh: "wrh-latn-au", wri: "wri-latn-au", wrk: "wrk-latn-au", wrl: "wrl-latn-au", wrm: "wrm-latn-au", wro: "wro-latn-au", wrp: "wrp-latn-id", wrr: "wrr-latn-au", wrs: "wrs-latn-zz", wru: "wru-latn-id", wrv: "wrv-latn-pg", wrw: "wrw-latn-au", wrx: "wrx-latn-id", wrz: "wrz-latn-au", wsa: "wsa-latn-id", wsg: "wsg-gong-in", wsi: "wsi-latn-vu", wsk: "wsk-latn-zz", wsr: "wsr-latn-pg", wss: "wss-latn-gh", wsu: "wsu-latn-br", wsv: "wsv-arab-af", wtf: "wtf-latn-pg", wth: "wth-latn-au", wti: "wti-latn-et", wtk: "wtk-latn-pg", wtm: "wtm-deva-in", wtw: "wtw-latn-id", "wtw-bugi": "wtw-bugi-id", wua: "wua-latn-au", wub: "wub-latn-au", wud: "wud-latn-tg", wul: "wul-latn-id", wum: "wum-latn-ga", wun: "wun-latn-tz", wur: "wur-latn-au", wut: "wut-latn-pg", wuu: "wuu-hans-cn", wuv: "wuv-latn-zz", wux: "wux-latn-au", wuy: "wuy-latn-id", wwa: "wwa-latn-zz", wwb: "wwb-latn-au", wwo: "wwo-latn-vu", wwr: "wwr-latn-au", www: "www-latn-cm", wxw: "wxw-latn-au", wyb: "wyb-latn-au", wyi: "wyi-latn-au", wym: "wym-latn-pl", wyn: "wyn-latn-us", wyr: "wyr-latn-br", wyy: "wyy-latn-fj", xaa: "xaa-latn-es", xab: "xab-latn-ng", xai: "xai-latn-br", xaj: "xaj-latn-br", xak: "xak-latn-ve", xal: "xal-cyrl-ru", xam: "xam-latn-za", xan: "xan-ethi-et", xao: "xao-latn-vn", xar: "xar-latn-pg", xas: "xas-cyrl-ru", xat: "xat-latn-br", xau: "xau-latn-id", xav: "xav-latn-br", xaw: "xaw-latn-us", xay: "xay-latn-id", xbb: "xbb-latn-au", xbd: "xbd-latn-au", xbe: "xbe-latn-au", xbg: "xbg-latn-au", xbi: "xbi-latn-zz", xbj: "xbj-latn-au", xbm: "xbm-latn-fr", xbn: "xbn-latn-my", xbp: "xbp-latn-au", xbr: "xbr-latn-id", xbw: "xbw-latn-br", xby: "xby-latn-au", xch: "xch-latn-us", xco: "xco-chrs-uz", xcr: "xcr-cari-tr", xda: "xda-latn-au", xdk: "xdk-latn-au", xdo: "xdo-latn-ao", xdq: "xdq-cyrl-ru", xdy: "xdy-latn-id", xed: "xed-latn-cm", xeg: "xeg-latn-za", xem: "xem-latn-id", xer: "xer-latn-br", xes: "xes-latn-zz", xet: "xet-latn-br", xeu: "xeu-latn-pg", xgb: "xgb-latn-ci", xgd: "xgd-latn-au", xgg: "xgg-latn-au", xgi: "xgi-latn-au", xgm: "xgm-latn-au", xgu: "xgu-latn-au", xgw: "xgw-latn-au", xh: "xh-latn-za", xhe: "xhe-arab-pk", xhm: "xhm-khmr-kh", xhv: "xhv-latn-vn", xii: "xii-latn-za", xin: "xin-latn-gt", xir: "xir-latn-br", xis: "xis-orya-in", xiy: "xiy-latn-br", xjb: "xjb-latn-au", xjt: "xjt-latn-au", xka: "xka-arab-pk", xkb: "xkb-latn-bj", xkc: "xkc-arab-ir", xkd: "xkd-latn-id", xke: "xke-latn-id", xkg: "xkg-latn-ml", xkj: "xkj-arab-ir", xkl: "xkl-latn-id", xkn: "xkn-latn-id", xkp: "xkp-arab-ir", xkq: "xkq-latn-id", xkr: "xkr-latn-br", xks: "xks-latn-id", xkt: "xkt-latn-gh", xku: "xku-latn-cg", xkv: "xkv-latn-bw", xkw: "xkw-latn-id", xkx: "xkx-latn-pg", xky: "xky-latn-my", xkz: "xkz-latn-bt", xla: "xla-latn-zz", xlc: "xlc-lyci-tr", xld: "xld-lydi-tr", xly: "xly-elym-ir", xma: "xma-latn-so", xmb: "xmb-latn-cm", xmc: "xmc-latn-mz", xmd: "xmd-latn-cm", xmf: "xmf-geor-ge", xmg: "xmg-latn-cm", xmh: "xmh-latn-au", xmj: "xmj-latn-cm", xmm: "xmm-latn-id", xmn: "xmn-mani-cn", xmo: "xmo-latn-br", xmp: "xmp-latn-au", xmq: "xmq-latn-au", xmr: "xmr-merc-sd", xmt: "xmt-latn-id", xmu: "xmu-latn-au", xmv: "xmv-latn-mg", xmw: "xmw-latn-mg", xmx: "xmx-latn-id", xmy: "xmy-latn-au", xmz: "xmz-latn-id", xna: "xna-narb-sa", xnb: "xnb-latn-tw", xni: "xni-latn-au", xnj: "xnj-latn-tz", xnk: "xnk-latn-au", xnm: "xnm-latn-au", xnn: "xnn-latn-ph", xnq: "xnq-latn-mz", xnr: "xnr-deva-in", xnt: "xnt-latn-us", xnu: "xnu-latn-au", xny: "xny-latn-au", xnz: "xnz-latn-eg", "xnz-arab": "xnz-arab-eg", xoc: "xoc-latn-ng", xod: "xod-latn-id", xog: "xog-latn-ug", xoi: "xoi-latn-pg", xok: "xok-latn-br", xom: "xom-latn-sd", "xom-ethi": "xom-ethi-et", xon: "xon-latn-zz", xoo: "xoo-latn-br", xop: "xop-latn-pg", xor: "xor-latn-br", xow: "xow-latn-pg", xpa: "xpa-latn-au", xpb: "xpb-latn-au", xpd: "xpd-latn-au", xpf: "xpf-latn-au", xpg: "xpg-grek-tr", xph: "xph-latn-au", xpi: "xpi-ogam-gb", xpj: "xpj-latn-au", xpk: "xpk-latn-br", xpl: "xpl-latn-au", xpm: "xpm-cyrl-ru", xpn: "xpn-latn-br", xpo: "xpo-latn-mx", xpq: "xpq-latn-us", xpr: "xpr-prti-ir", xpt: "xpt-latn-au", xpv: "xpv-latn-au", xpw: "xpw-latn-au", xpx: "xpx-latn-au", xpz: "xpz-latn-au", xra: "xra-latn-br", xrb: "xrb-latn-zz", xrd: "xrd-latn-au", xre: "xre-latn-br", xrg: "xrg-latn-au", xri: "xri-latn-br", xrm: "xrm-cyrl-ru", xrn: "xrn-cyrl-ru", xrr: "xrr-latn-it", xru: "xru-latn-au", xrw: "xrw-latn-pg", xsa: "xsa-sarb-ye", xsb: "xsb-latn-ph", xse: "xse-latn-id", xsh: "xsh-latn-ng", xsi: "xsi-latn-zz", xsm: "xsm-latn-zz", xsn: "xsn-latn-ng", xsp: "xsp-latn-pg", xsq: "xsq-latn-mz", xsr: "xsr-deva-np", xss: "xss-cyrl-ru", xsu: "xsu-latn-ve", xsy: "xsy-latn-tw", xta: "xta-latn-mx", xtb: "xtb-latn-mx", xtc: "xtc-latn-sd", xtd: "xtd-latn-mx", xte: "xte-latn-id", xth: "xth-latn-au", xti: "xti-latn-mx", xtj: "xtj-latn-mx", xtl: "xtl-latn-mx", xtm: "xtm-latn-mx", xtn: "xtn-latn-mx", xtp: "xtp-latn-mx", xts: "xts-latn-mx", xtt: "xtt-latn-mx", xtu: "xtu-latn-mx", xtv: "xtv-latn-au", xtw: "xtw-latn-br", xty: "xty-latn-mx", xub: "xub-taml-in", "xub-knda": "xub-knda-in", "xub-mlym": "xub-mlym-in", xud: "xud-latn-au", xuj: "xuj-taml-in", xul: "xul-latn-au", xum: "xum-latn-it", "xum-ital": "xum-ital-it", xun: "xun-latn-au", xuo: "xuo-latn-td", xut: "xut-latn-au", xuu: "xuu-latn-na", xve: "xve-ital-it", xvi: "xvi-arab-af", xvn: "xvn-latn-es", xvo: "xvo-latn-it", xvs: "xvs-latn-it", xwa: "xwa-latn-br", xwd: "xwd-latn-au", xwe: "xwe-latn-zz", xwj: "xwj-latn-au", xwk: "xwk-latn-au", xwl: "xwl-latn-bj", xwo: "xwo-cyrl-ru", xwr: "xwr-latn-id", xwt: "xwt-latn-au", xww: "xww-latn-au", xxb: "xxb-latn-gh", xxk: "xxk-latn-id", xxm: "xxm-latn-au", xxr: "xxr-latn-br", xxt: "xxt-latn-id", xya: "xya-latn-au", xyb: "xyb-latn-au", xyj: "xyj-latn-au", xyk: "xyk-latn-au", xyl: "xyl-latn-br", xyt: "xyt-latn-au", xyy: "xyy-latn-au", xzh: "xzh-marc-cn", xzp: "xzp-latn-mx", yaa: "yaa-latn-pe", yab: "yab-latn-br", yac: "yac-latn-id", yad: "yad-latn-pe", yae: "yae-latn-ve", yaf: "yaf-latn-cd", yag: "yag-latn-cl", yai: "yai-cyrl-tj", yaj: "yaj-latn-cf", yak: "yak-latn-us", yal: "yal-latn-gn", "yal-arab": "yal-arab-gn", yam: "yam-latn-zz", yan: "yan-latn-ni", yao: "yao-latn-mz", yap: "yap-latn-fm", yaq: "yaq-latn-mx", yar: "yar-latn-ve", yas: "yas-latn-zz", yat: "yat-latn-zz", yau: "yau-latn-ve", yav: "yav-latn-cm", yaw: "yaw-latn-br", yax: "yax-latn-ao", yay: "yay-latn-zz", yaz: "yaz-latn-zz", yba: "yba-latn-zz", ybb: "ybb-latn-cm", ybe: "ybe-latn-cn", "ybe-ougr": "ybe-ougr-cn", ybh: "ybh-deva-np", ybi: "ybi-deva-np", ybj: "ybj-latn-ng", ybl: "ybl-latn-ng", ybm: "ybm-latn-pg", ybn: "ybn-latn-br", ybo: "ybo-latn-pg", ybx: "ybx-latn-pg", yby: "yby-latn-zz", ycl: "ycl-latn-cn", ycn: "ycn-latn-co", yda: "yda-latn-au", yde: "yde-latn-pg", ydg: "ydg-arab-pk", ydk: "ydk-latn-pg", yea: "yea-mlym-in", "yea-knda": "yea-knda-in", yec: "yec-latn-de", yee: "yee-latn-pg", yei: "yei-latn-cm", yej: "yej-grek-il", yel: "yel-latn-cd", yer: "yer-latn-zz", yes: "yes-latn-ng", yet: "yet-latn-id", yeu: "yeu-telu-in", yev: "yev-latn-pg", yey: "yey-latn-bw", yga: "yga-latn-au", ygi: "ygi-latn-au", ygl: "ygl-latn-pg", ygm: "ygm-latn-pg", ygp: "ygp-plrd-cn", ygr: "ygr-latn-zz", ygu: "ygu-latn-au", ygw: "ygw-latn-zz", yhd: "yhd-hebr-il", yi: "yi-hebr-001", yia: "yia-latn-au", yig: "yig-yiii-cn", yih: "yih-hebr-de", yii: "yii-latn-au", yij: "yij-latn-au", yil: "yil-latn-au", yim: "yim-latn-in", yir: "yir-latn-id", yis: "yis-latn-pg", yiv: "yiv-yiii-cn", yka: "yka-latn-ph", "yka-arab": "yka-arab-ph", ykg: "ykg-cyrl-ru", yki: "yki-latn-id", ykk: "ykk-latn-pg", ykm: "ykm-latn-pg", yko: "yko-latn-zz", ykr: "ykr-latn-pg", yky: "yky-latn-cf", yla: "yla-latn-pg", ylb: "ylb-latn-pg", yle: "yle-latn-zz", ylg: "ylg-latn-zz", yli: "yli-latn-id", yll: "yll-latn-zz", ylr: "ylr-latn-au", ylu: "ylu-latn-pg", yly: "yly-latn-nc", ymb: "ymb-latn-pg", yme: "yme-latn-pe", ymg: "ymg-latn-cd", ymk: "ymk-latn-mz", "ymk-arab": "ymk-arab-mz", yml: "yml-latn-zz", ymm: "ymm-latn-so", ymn: "ymn-latn-id", ymo: "ymo-latn-pg", ymp: "ymp-latn-pg", yna: "yna-plrd-cn", ynd: "ynd-latn-au", yng: "yng-latn-cd", ynk: "ynk-cyrl-ru", ynl: "ynl-latn-pg", ynq: "ynq-latn-ng", yns: "yns-latn-cd", ynu: "ynu-latn-co", yo: "yo-latn-ng", yob: "yob-latn-pg", yog: "yog-latn-ph", yoi: "yoi-jpan-jp", yok: "yok-latn-us", yol: "yol-latn-gb", yom: "yom-latn-cd", yon: "yon-latn-zz", yot: "yot-latn-ng", yoy: "yoy-thai-th", yra: "yra-latn-pg", yrb: "yrb-latn-zz", yre: "yre-latn-zz", yrk: "yrk-cyrl-ru", yrl: "yrl-latn-br", yrm: "yrm-latn-au", yro: "yro-latn-br", yrs: "yrs-latn-id", yrw: "yrw-latn-pg", yry: "yry-latn-au", ysd: "ysd-yiii-cn", ysn: "ysn-yiii-cn", ysp: "ysp-yiii-cn", ysr: "ysr-cyrl-ru", yss: "yss-latn-zz", ysy: "ysy-plrd-cn", ytw: "ytw-latn-pg", yty: "yty-latn-au", yua: "yua-latn-mx", yub: "yub-latn-au", yuc: "yuc-latn-us", yud: "yud-hebr-il", yue: "yue-hant-hk", "yue-cn": "yue-hans-cn", "yue-hans": "yue-hans-cn", yuf: "yuf-latn-us", yug: "yug-cyrl-ru", yui: "yui-latn-co", yuj: "yuj-latn-zz", yul: "yul-latn-cf", yum: "yum-latn-us", yun: "yun-latn-ng", yup: "yup-latn-co", yuq: "yuq-latn-bo", yur: "yur-latn-us", yut: "yut-latn-zz", yuw: "yuw-latn-zz", yux: "yux-cyrl-ru", yuz: "yuz-latn-bo", yva: "yva-latn-id", yvt: "yvt-latn-ve", ywa: "ywa-latn-pg", ywg: "ywg-latn-au", ywn: "ywn-latn-br", ywq: "ywq-plrd-cn", "ywq-yiii": "ywq-yiii-cn", ywr: "ywr-latn-au", ywu: "ywu-plrd-cn", "ywu-yiii": "ywu-yiii-cn", yww: "yww-latn-au", yxa: "yxa-latn-au", yxg: "yxg-latn-au", yxl: "yxl-latn-au", yxm: "yxm-latn-au", yxu: "yxu-latn-au", yxy: "yxy-latn-au", yyr: "yyr-latn-au", yyu: "yyu-latn-pg", za: "za-latn-cn", zaa: "zaa-latn-mx", zab: "zab-latn-mx", zac: "zac-latn-mx", zad: "zad-latn-mx", zae: "zae-latn-mx", zaf: "zaf-latn-mx", zag: "zag-latn-sd", zah: "zah-latn-ng", zaj: "zaj-latn-tz", zak: "zak-latn-tz", zam: "zam-latn-mx", zao: "zao-latn-mx", zap: "zap-latn-mx", zaq: "zaq-latn-mx", zar: "zar-latn-mx", zas: "zas-latn-mx", zat: "zat-latn-mx", zau: "zau-tibt-in", "zau-arab": "zau-arab-in", zav: "zav-latn-mx", zaw: "zaw-latn-mx", zax: "zax-latn-mx", zay: "zay-latn-et", "zay-ethi": "zay-ethi-et", zaz: "zaz-latn-ng", zba: "zba-arab-001", zbc: "zbc-latn-my", zbe: "zbe-latn-my", zbt: "zbt-latn-id", zbu: "zbu-latn-ng", zbw: "zbw-latn-my", zca: "zca-latn-mx", zch: "zch-hani-cn", zdj: "zdj-arab-km", zea: "zea-latn-nl", zeg: "zeg-latn-pg", zeh: "zeh-hani-cn", zen: "zen-tfng-mr", "zen-arab": "zen-arab-mr", zga: "zga-latn-tz", zgb: "zgb-hani-cn", zgh: "zgh-tfng-ma", zgm: "zgm-hani-cn", zgn: "zgn-hani-cn", zgr: "zgr-latn-pg", zh: "zh-hans-cn", "zh-au": "zh-hant-au", "zh-bn": "zh-hant-bn", "zh-bopo": "zh-bopo-tw", "zh-gb": "zh-hant-gb", "zh-gf": "zh-hant-gf", "zh-hanb": "zh-hanb-tw", "zh-hant": "zh-hant-tw", "zh-hk": "zh-hant-hk", "zh-id": "zh-hant-id", "zh-mo": "zh-hant-mo", "zh-pa": "zh-hant-pa", "zh-pf": "zh-hant-pf", "zh-ph": "zh-hant-ph", "zh-sr": "zh-hant-sr", "zh-th": "zh-hant-th", "zh-tw": "zh-hant-tw", "zh-us": "zh-hant-us", "zh-vn": "zh-hant-vn", zhd: "zhd-hani-cn", "zhd-latn": "zhd-latn-vn", zhi: "zhi-latn-ng", zhn: "zhn-latn-cn", "zhn-hani": "zhn-hani-cn", zhw: "zhw-latn-cm", zhx: "zhx-nshu-cn", zia: "zia-latn-zz", zik: "zik-latn-pg", zil: "zil-latn-gn", zim: "zim-latn-td", zin: "zin-latn-tz", ziw: "ziw-latn-tz", ziz: "ziz-latn-ng", zka: "zka-latn-id", zkb: "zkb-cyrl-ru", zkd: "zkd-latn-mm", zko: "zko-cyrl-ru", zkp: "zkp-latn-br", zkt: "zkt-kits-cn", zku: "zku-latn-au", zkz: "zkz-cyrl-ru", zla: "zla-latn-cd", zlj: "zlj-hani-cn", "zlj-latn": "zlj-latn-cn", zlm: "zlm-latn-tg", zln: "zln-hani-cn", zlq: "zlq-hani-cn", zma: "zma-latn-au", zmb: "zmb-latn-cd", zmc: "zmc-latn-au", zmd: "zmd-latn-au", zme: "zme-latn-au", zmf: "zmf-latn-cd", zmg: "zmg-latn-au", zmh: "zmh-latn-pg", zmi: "zmi-latn-my", zmj: "zmj-latn-au", zmk: "zmk-latn-au", zml: "zml-latn-au", zmm: "zmm-latn-au", zmn: "zmn-latn-ga", zmo: "zmo-latn-sd", zmp: "zmp-latn-cd", zmq: "zmq-latn-cd", zmr: "zmr-latn-au", zms: "zms-latn-cd", zmt: "zmt-latn-au", zmu: "zmu-latn-au", zmv: "zmv-latn-au", zmw: "zmw-latn-cd", zmx: "zmx-latn-cg", zmy: "zmy-latn-au", zmz: "zmz-latn-cd", zna: "zna-latn-td", zne: "zne-latn-zz", zng: "zng-latn-vn", znk: "znk-latn-au", zns: "zns-latn-ng", zoc: "zoc-latn-mx", zoh: "zoh-latn-mx", zom: "zom-latn-in", zoo: "zoo-latn-mx", zoq: "zoq-latn-mx", zor: "zor-latn-mx", zos: "zos-latn-mx", zpa: "zpa-latn-mx", zpb: "zpb-latn-mx", zpc: "zpc-latn-mx", zpd: "zpd-latn-mx", zpe: "zpe-latn-mx", zpf: "zpf-latn-mx", zpg: "zpg-latn-mx", zph: "zph-latn-mx", zpi: "zpi-latn-mx", zpj: "zpj-latn-mx", zpk: "zpk-latn-mx", zpl: "zpl-latn-mx", zpm: "zpm-latn-mx", zpn: "zpn-latn-mx", zpo: "zpo-latn-mx", zpp: "zpp-latn-mx", zpq: "zpq-latn-mx", zpr: "zpr-latn-mx", zps: "zps-latn-mx", zpt: "zpt-latn-mx", zpu: "zpu-latn-mx", zpv: "zpv-latn-mx", zpw: "zpw-latn-mx", zpx: "zpx-latn-mx", zpy: "zpy-latn-mx", zpz: "zpz-latn-mx", zqe: "zqe-hani-cn", "zqe-latn": "zqe-latn-cn", zrn: "zrn-latn-td", zro: "zro-latn-ec", zrp: "zrp-hebr-fr", zrs: "zrs-latn-id", zsa: "zsa-latn-pg", zsr: "zsr-latn-mx", zsu: "zsu-latn-pg", zte: "zte-latn-mx", ztg: "ztg-latn-mx", ztl: "ztl-latn-mx", ztm: "ztm-latn-mx", ztn: "ztn-latn-mx", ztp: "ztp-latn-mx", ztq: "ztq-latn-mx", zts: "zts-latn-mx", ztt: "ztt-latn-mx", ztu: "ztu-latn-mx", ztx: "ztx-latn-mx", zty: "zty-latn-mx", zu: "zu-latn-za", zua: "zua-latn-ng", zuh: "zuh-latn-pg", zum: "zum-arab-om", zun: "zun-latn-us", zuy: "zuy-latn-cm", zyg: "zyg-hani-cn", zyj: "zyj-latn-cn", "zyj-hani": "zyj-hani-cn", zyn: "zyn-hani-cn", zyp: "zyp-latn-mm", zza: "zza-latn-tr", zzj: "zzj-hani-cn" }, cr = {}.hasOwnProperty;
  function fr(t4) {
    const { language: e3, script: n3, region: a2 } = t4;
    let r3;
    var i3, l3;
    return n3 && a2 && (r3 = dr[Qa({ language: e3, script: n3, region: a2 })]) ? (t4.script = void 0, t4.region = void 0) : n3 && (r3 = dr[Qa({ language: e3, script: n3 })]) ? t4.script = void 0 : a2 && (r3 = dr[Qa({ language: e3, region: a2 })]) ? t4.region = void 0 : e3 && (r3 = dr[e3]), r3 && (t4.language = void 0, i3 = t4, l3 = ar(r3), i3.language || (i3.language = l3.language), i3.script || (i3.script = l3.script), i3.region || (i3.region = l3.region), l3.variants && i3.variants.push(...l3.variants)), Qa(t4);
  }
  function gr(t4, e3) {
    const n3 = {}, a2 = ar(String(t4 || "").toLowerCase(), n3), r3 = Qa(a2);
    if (!r3)
      return r3;
    let i3 = -1;
    for (; ++i3 < or.length; ) {
      let t5 = or[i3].from;
      "und-" === t5.slice(0, 4) && a2.language && (t5 = a2.language + t5.slice(3)), ir(r3, t5).length > 0 && mr(a2, t5, or[i3].to);
    }
    for (i3 = -1; ++i3 < sr.length; )
      hr(a2, sr[i3].from.field, sr[i3].from.value) && pr(a2, sr[i3].to.field, sr[i3].to.value);
    if (function(t5) {
      fr(t5);
      const { language: e4, script: n4, region: a3 } = t5;
      if (!e4)
        return t5;
      const r4 = Qa({ language: e4, script: n4, region: a3 });
      r4 === fr(ar(e4)) ? (t5.script = void 0, t5.region = void 0) : a3 && r4 === fr(ar(e4 + "-" + a3)) ? t5.script = void 0 : n4 && r4 === fr(ar(e4 + "-" + n4)) && (t5.region = void 0);
    }(a2), a2.variants.sort(), a2.extensions.sort(br), n3.warning) {
      let t5;
      for (t5 in ur)
        if (cr.call(ur, t5)) {
          const e4 = ur[t5], r4 = a2[t5];
          if (r4 && cr.call(e4, r4)) {
            const a3 = e4[r4];
            n3.warning("Deprecated " + t5 + " `" + r4 + "`, expected one of `" + a3.join("`, `") + "`", -1, 7);
          }
        }
    }
    return a2.script && (a2.script = a2.script.charAt(0).toUpperCase() + a2.script.slice(1)), a2.region && (a2.region = a2.region.toUpperCase()), Qa(a2);
  }
  function mr(t4, e3, n3) {
    const a2 = ar(e3), r3 = ar(n3), i3 = [], l3 = a2.language;
    let o3;
    for (o3 in a2)
      if (cr.call(a2, o3)) {
        const e4 = a2[o3];
        e4 && hr(t4, o3, e4) && i3.push(o3);
      }
    for (o3 in r3)
      if (cr.call(r3, o3)) {
        const e4 = r3[o3];
        l3 && e4 && (i3.includes(o3) || !t4[o3]) && pr(t4, o3, "language" === o3 && "und" === e4 ? l3 : e4);
      }
  }
  function hr(t4, e3, n3) {
    let a2, r3 = false;
    if (n3) {
      const i3 = t4[e3];
      if (a2 = i3, Array.isArray(i3)) {
        a2 = [];
        let t5 = -1;
        for (; ++t5 < i3.length; ) {
          const e4 = i3[t5];
          n3.includes(e4) ? r3 = true : a2.push(e4);
        }
      } else
        i3 === n3 && (a2 = null, r3 = true);
      t4[e3] = a2;
    }
    return r3;
  }
  function pr(t4, e3, n3) {
    const a2 = t4[e3];
    if (Array.isArray(a2)) {
      const t5 = Array.isArray(n3) ? n3 : [n3];
      let e4 = -1;
      for (; ++e4 < t5.length; ) {
        const n4 = t5[e4];
        a2.includes(n4) || a2.push(n4);
      }
    } else
      t4[e3] = n3;
  }
  function br(t4, e3) {
    return t4.singleton > e3.singleton ? 1 : t4.singleton < e3.singleton ? -1 : 0;
  }
  function yr(t4, e3) {
    return e3 + 10 <= t4.length && 73 === t4[e3] && 68 === t4[e3 + 1] && 51 === t4[e3 + 2] && t4[e3 + 3] < 255 && t4[e3 + 4] < 255 && t4[e3 + 6] < 128 && t4[e3 + 7] < 128 && t4[e3 + 8] < 128 && t4[e3 + 9] < 128;
  }
  function Er(t4, e3) {
    let n3 = 0;
    return n3 = (127 & t4[e3]) << 21, n3 |= (127 & t4[e3 + 1]) << 14, n3 |= (127 & t4[e3 + 2]) << 7, n3 |= 127 & t4[e3 + 3], n3;
  }
  function Tr(t4, e3) {
    return e3 + 10 <= t4.length && 51 === t4[e3] && 68 === t4[e3 + 1] && 73 === t4[e3 + 2] && t4[e3 + 3] < 255 && t4[e3 + 4] < 255 && t4[e3 + 6] < 128 && t4[e3 + 7] < 128 && t4[e3 + 8] < 128 && t4[e3 + 9] < 128;
  }
  function _r(t4, e3 = 0, n3 = 1 / 0) {
    return function(t5, e4, n4, a2) {
      const r3 = (i3 = t5) instanceof ArrayBuffer ? i3 : i3.buffer;
      var i3;
      let l3 = 1;
      "BYTES_PER_ELEMENT" in a2 && (l3 = a2.BYTES_PER_ELEMENT);
      const o3 = (c3 = t5) && c3.buffer instanceof ArrayBuffer && void 0 !== c3.byteLength && void 0 !== c3.byteOffset ? t5.byteOffset : 0, s2 = (o3 + t5.byteLength) / l3, u3 = (o3 + e4) / l3, d3 = Math.floor(Math.max(0, Math.min(u3, s2)));
      var c3;
      return new a2(r3, d3, Math.floor(Math.min(d3 + Math.max(n4, 0), s2)) - d3);
    }(t4, e3, n3, Uint8Array);
  }
  function vr(t4, e3 = false) {
    const n3 = e3 ? t4.indexOf(0) : t4.length, a2 = function(t5, e4 = {}) {
      let n4;
      n4 = t5 instanceof ArrayBuffer ? new DataView(t5) : new DataView(t5.buffer, t5.byteOffset, t5.byteLength);
      let a3 = 0, { encoding: r3 } = e4;
      if (!r3) {
        const t6 = n4.getUint8(0), e5 = n4.getUint8(1);
        239 == t6 && 187 == e5 && 191 == n4.getUint8(2) ? (r3 = Ee, a3 = 3) : 254 == t6 && 255 == e5 ? (r3 = be, a3 = 2) : 255 == t6 && 254 == e5 ? (r3 = ye, a3 = 2) : r3 = Ee;
      }
      if ("undefined" != typeof TextDecoder)
        return new TextDecoder(r3).decode(n4);
      const { byteLength: i3 } = n4, l3 = r3 !== be;
      let o3, s2 = "";
      for (; a3 < i3; ) {
        switch (r3) {
          case Ee:
            if (o3 = n4.getUint8(a3), o3 < 128)
              a3++;
            else if (o3 >= 194 && o3 <= 223)
              if (a3 + 1 < i3) {
                const t6 = n4.getUint8(a3 + 1);
                t6 >= 128 && t6 <= 191 ? (o3 = (31 & o3) << 6 | 63 & t6, a3 += 2) : a3++;
              } else
                a3++;
            else if (o3 >= 224 && o3 <= 239)
              if (a3 + 2 <= i3 - 1) {
                const t6 = n4.getUint8(a3 + 1), e5 = n4.getUint8(a3 + 2);
                t6 >= 128 && t6 <= 191 && e5 >= 128 && e5 <= 191 ? (o3 = (15 & o3) << 12 | (63 & t6) << 6 | 63 & e5, a3 += 3) : a3++;
              } else
                a3++;
            else if (o3 >= 240 && o3 <= 244)
              if (a3 + 3 <= i3 - 1) {
                const t6 = n4.getUint8(a3 + 1), e5 = n4.getUint8(a3 + 2), r4 = n4.getUint8(a3 + 3);
                t6 >= 128 && t6 <= 191 && e5 >= 128 && e5 <= 191 && r4 >= 128 && r4 <= 191 ? (o3 = (7 & o3) << 18 | (63 & t6) << 12 | (63 & e5) << 6 | 63 & r4, a3 += 4) : a3++;
              } else
                a3++;
            else
              a3++;
            break;
          case be:
          case pe:
          case ye:
            o3 = n4.getUint16(a3, l3), a3 += 2;
        }
        s2 += String.fromCodePoint(o3);
      }
      return s2;
    }(new DataView(t4.buffer, t4.byteOffset, n3), { encoding: Ee });
    return e3 ? a2 : a2.replace(/\0/g, "");
  }
  function Sr(t4) {
    return "PRIV" === t4.type ? function(t5) {
      if (t5.size < 2)
        return;
      const e3 = vr(t5.data, true), n3 = new Uint8Array(t5.data.subarray(e3.length + 1));
      return { key: t5.type, info: e3, data: n3.buffer };
    }(t4) : "W" === t4.type[0] ? function(t5) {
      if ("WXXX" === t5.type) {
        if (t5.size < 2)
          return;
        let e4 = 1;
        const n3 = vr(t5.data.subarray(e4), true);
        e4 += n3.length + 1;
        const a2 = vr(t5.data.subarray(e4));
        return { key: t5.type, info: n3, data: a2 };
      }
      const e3 = vr(t5.data);
      return { key: t5.type, info: "", data: e3 };
    }(t4) : "APIC" === t4.type ? function(t5) {
      const e3 = { key: t5.type, description: "", data: "", mimeType: null, pictureType: null };
      if (t5.size < 2)
        return;
      if (3 !== t5.data[0])
        return void console.log("Ignore frame with unrecognized character encoding");
      const n3 = t5.data.subarray(1).indexOf(0);
      if (-1 === n3)
        return;
      const a2 = vr(_r(t5.data, 1, n3)), r3 = t5.data[2 + n3], i3 = t5.data.subarray(3 + n3).indexOf(0);
      if (-1 === i3)
        return;
      const l3 = vr(_r(t5.data, 3 + n3, i3));
      let o3;
      var s2;
      return o3 = "-->" === a2 ? vr(_r(t5.data, 4 + n3 + i3)) : (s2 = t5.data.subarray(4 + n3 + i3)) instanceof ArrayBuffer ? s2 : 0 == s2.byteOffset && s2.byteLength == s2.buffer.byteLength ? s2.buffer : new Uint8Array(s2).buffer, e3.mimeType = a2, e3.pictureType = r3, e3.description = l3, e3.data = o3, e3;
    }(t4) : function(t5) {
      if (t5.size < 2)
        return;
      if ("TXXX" === t5.type) {
        let e4 = 1;
        const { data: n3 } = t5, a2 = vr(n3.subarray(e4), true);
        e4 += a2.length + 1;
        const r3 = vr(n3.subarray(e4));
        return { key: t5.type, info: a2, data: r3 };
      }
      const e3 = vr(t5.data.subarray(1));
      return { key: t5.type, info: "", data: e3 };
    }(t4);
  }
  function wr(t4) {
    const e3 = String.fromCharCode(t4[0], t4[1], t4[2], t4[3]), n3 = Er(t4, 4);
    return { type: e3, size: n3, data: t4.subarray(10, 10 + n3) };
  }
  const Ir = 10, kr = 10;
  function Ar() {
    let t4, e3, n3, a2, r3, i3, l3;
    const o3 = this.context;
    function s2(t5, n4) {
      const a3 = n4 ? n4.index : 0, i4 = e3.getAdaptationsForType(r3[a3].mpd.manifest, a3, t5);
      if (!i4 || 0 === i4.length)
        return null;
      if (i4.length > 1 && n4) {
        for (let t6 = 0, n5 = i4.length; t6 < n5; t6++)
          if (l4 = i4[t6], e3.getRolesForAdaptation(l4).filter(function(t7) {
            return t7.schemeIdUri === m2.default.DASH_ROLE_SCHEME_ID && t7.value === Vt.default.MAIN;
          })[0])
            return i4[t6];
      }
      var l4;
      return i4[0];
    }
    function d3(t5, n4, r4, l4, o4, s3) {
      let u3, d4, c4, f4, g4, m3, h4 = [];
      if (!l4 || 0 === l4.length)
        return [];
      const p4 = e3.getAdaptationsForPeriod(n4);
      for (f4 = 0, m3 = l4.length; f4 < m3; f4++)
        if (u3 = l4[f4], c4 = e3.getIndexForAdaptation(u3, t5, r4.index), d4 = y3(p4[c4]), s3) {
          let t6 = d4.accessibility.length;
          for (g4 = 0; g4 < t6; g4++) {
            if (!d4)
              continue;
            let t7 = d4.accessibility[g4];
            if (t7.schemeIdUri === i3.ACCESSIBILITY_CEA608_SCHEME)
              if (t7.value && "" !== t7.value) {
                let e4 = t7.value.split(";");
                if ("CC" === e4[0].substring(0, 2))
                  for (g4 = 0; g4 < e4.length; g4++)
                    d4 || (d4 = y3.call(this, p4[c4])), T3(d4, e4[g4].substring(0, 3), e4[g4].substring(4)), h4.push(d4), d4 = null;
                else
                  for (g4 = 0; g4 < e4.length; g4++)
                    d4 || (d4 = y3.call(this, p4[c4])), T3(d4, "CC" + (g4 + 1), e4[g4]), h4.push(d4), d4 = null;
              } else
                T3(d4, i3.CC1, "eng"), h4.push(d4), d4 = null;
          }
        } else
          o4 === i3.IMAGE ? (d4.type = i3.IMAGE, h4.push(d4), d4 = null) : d4 && h4.push(d4);
      if (a2.get().streaming.includePreselectionsInMediainfoArray) {
        const t6 = e3.getPreselectionsForPeriod(n4);
        for (f4 = 0, m3 = t6.length; f4 < m3; f4++) {
          const e4 = t6[f4];
          e4.hasOwnProperty("type") && e4.type === o4 && (d4 = E3(t6[f4]), d4 && h4.push(d4));
        }
      }
      return h4;
    }
    function c3(t5) {
      const n4 = f3(t5);
      return e3.getRegularPeriods(n4);
    }
    function f3(t5) {
      const n4 = h3(t5);
      return e3.getMpd(n4);
    }
    function g3() {
      r3 = [];
    }
    function h3(t5) {
      return t5 || (r3.length > 0 ? r3[0].mpd.manifest : null);
    }
    function p3(t5) {
      try {
        const n4 = b3(t5.streamInfo, r3), a3 = e3.getAdaptationsForPeriod(n4);
        return t5 && t5.streamInfo && void 0 !== t5.streamInfo.id && a3 ? a3[t5.index] : null;
      } catch (t6) {
        return null;
      }
    }
    function b3(t5, e4) {
      const n4 = e4.length;
      for (let a3 = 0; a3 < n4; a3++) {
        let n5 = e4[a3];
        if (t5 && t5.id === n5.id)
          return n5;
      }
      return null;
    }
    function y3(t5) {
      if (!t5)
        return null;
      let n4 = new Ga();
      const r4 = t5.period.mpd.manifest.Period[t5.period.index].AdaptationSet[t5.index];
      n4.id = t5.id, n4.index = t5.index, n4.codec = e3.getCodec(r4);
      const i4 = a2.get().streaming.enhancement.codecs;
      return n4.type = i4.some((t6) => {
        var _a2;
        return (_a2 = n4.codec) == null ? void 0 : _a2.includes(t6);
      }) ? m2.default.ENHANCEMENT : t5.type, n4.streamInfo = _3(t5.period), n4.representationCount = e3.getRepresentationCount(r4), n4.labels = e3.getLabelsForAdaptation(r4), n4.lang = e3.getLanguageForAdaptation(r4), n4.segmentAlignment = e3.getSegmentAlignment(r4), n4.subSegmentAlignment = e3.getSubSegmentAlignment(r4), n4.viewpoint = e3.getViewpointForAdaptation(r4), n4.accessibility = e3.getAccessibilityForAdaptation(r4), n4.accessibility.filter(function(t6) {
        if (t6.schemeIdUri && t6.schemeIdUri.search("cea-608") >= 0 && void 0 !== l3)
          return true;
      })[0] && (n4.embeddedCaptions = true), n4.audioChannelConfiguration = e3.getAudioChannelConfigurationForAdaptation(r4), 0 === n4.audioChannelConfiguration.length && r4.Representation && r4.Representation.length > 0 && (n4.audioChannelConfiguration = e3.getAudioChannelConfigurationForRepresentation(r4.Representation[0])), n4.roles = e3.getRolesForAdaptation(r4), n4.mimeType = e3.getMimeType(r4), n4.contentProtection = e3.getContentProtectionByAdaptation(r4), n4.bitrateList = e3.getBitrateListForAdaptation(r4), n4.selectionPriority = e3.getSelectionPriority(r4), n4.contentProtection && n4.contentProtection.length > 0 && (n4.contentProtection = function(t6, n5) {
        if (!t6 || !t6.length || !n5)
          return t6;
        const a3 = e3.getContentProtectionByManifest(n5);
        if (!a3 || !a3.length)
          return t6;
        const r5 = a3.reduce((t7, e4) => (e4.refId && t7.set(e4.refId, e4), t7), /* @__PURE__ */ new Map());
        return t6.map((t7) => {
          if (t7.ref) {
            const e4 = r5.get(t7.ref);
            e4 && t7.mergeAttributesFromReference(e4);
          }
          return t7;
        });
      }(n4.contentProtection, t5.period.mpd.manifest), n4.contentProtection = function(t6) {
        const e4 = t6.map((t7) => t7.cencDefaultKid).filter((t7) => null !== t7);
        if (e4.length) {
          const n5 = e4[0];
          t6.forEach((t7) => {
            t7.keyId = n5;
          });
        }
        return t6;
      }(n4.contentProtection), n4.normalizedKeyIds = function(t6) {
        const e4 = /* @__PURE__ */ new Set();
        return t6.forEach((t7) => {
          t7.cencDefaultKid && "string" == typeof t7.cencDefaultKid && e4.add(t7.cencDefaultKid.replace(/-/g, "").toLowerCase());
        }), e4;
      }(n4.contentProtection)), n4.isText = e3.getIsText(r4), n4.essentialProperties = e3.getCombinedEssentialPropertiesForAdaptationSet(r4), n4.supplementalProperties = e3.getCombinedSupplementalPropertiesForAdaptationSet(r4), n4.isFragmented = e3.getIsFragmented(r4), n4.isEmbedded = false, n4.adaptationSetSwitchingCompatibleIds = function(t6) {
        if (!t6 || !t6.supplementalProperties)
          return [];
        let e4 = [];
        const n5 = t6.supplementalProperties.filter((t7) => t7.schemeIdUri === Vt.default.ADAPTATION_SET_SWITCHING_SCHEME_ID_URI);
        return n5 && n5.length > 0 && (e4 = n5[0].value.toString().split(",").map((t7) => t7)), e4;
      }(n4), n4.segmentSequenceProperties = e3.getSegmentSequencePropertiesForAdaptationSet(r4), n4;
    }
    function E3(t5) {
      if (!t5)
        return null;
      let n4 = new Ga();
      const a3 = t5.period.mpd.manifest.Period[t5.period.index].Preselection[t5.index], r4 = t5.period.mpd.manifest.Period[t5.period.index].AdaptationSet, i4 = e3.getAdaptationsForPeriod(t5.period);
      return n4 = y3(e3.getMainAdaptationSetForPreselection(a3, i4)), n4 && (n4.isPreselection = true, n4.tag = t5.tag, n4.id = t5.id, n4.codec = e3.getCodecForPreselection(a3, r4), n4.selectionPriority = e3.getSelectionPriority(a3), n4.labels = e3.getLabelsForAdaptation(a3), n4.lang = e3.getLanguageForAdaptation(a3), n4.viewpoint = e3.getViewpointForAdaptation(a3), n4.accessibility = e3.getAccessibilityForAdaptation(a3), n4.audioChannelConfiguration = e3.getAudioChannelConfigurationForAdaptation(a3), n4.roles = e3.getRolesForAdaptation(a3), n4.essentialProperties = e3.getCombinedEssentialPropertiesForAdaptationSet(a3), n4.supplementalProperties = e3.getCombinedSupplementalPropertiesForAdaptationSet(a3)), n4;
    }
    function T3(t5, e4, n4) {
      t5.id = e4, t5.index = 100 + parseInt(e4.substring(2, 3)), t5.type = i3.TEXT, t5.codec = "cea-608-in-SEI", t5.isEmbedded = true, t5.isFragmented = false, t5.lang = gr(n4), t5.roles = [{ schemeIdUri: "urn:mpeg:dash:role:2011", value: "caption" }];
    }
    function _3(t5) {
      let n4 = new Ha();
      return n4.id = t5.id, n4.index = t5.index, n4.start = t5.start, n4.duration = t5.duration, n4.manifestInfo = function(t6) {
        let n5 = new Ya();
        return n5.dvrWindowSize = t6.timeShiftBufferDepth, n5.loadedTime = t6.manifest.loadedTime, n5.availableFrom = t6.availabilityStartTime, n5.minBufferTime = t6.manifest.minBufferTime, n5.maxFragmentDuration = t6.maxSegmentDuration, n5.duration = e3.getDuration(t6.manifest), n5.isDynamic = e3.getIsDynamic(t6.manifest), n5.serviceDescriptions = e3.getServiceDescriptions(t6.manifest), n5.protocol = t6.manifest.protocol, n5;
      }(t5.mpd), n4.isLast = 1 === t5.mpd.manifest.Period.length || Math.abs(n4.start + n4.duration - n4.manifestInfo.duration) < 1, n4.isEncrypted = t5.isEncrypted, n4;
    }
    function v3() {
      if (!i3)
        throw new Error("setConfig function has to be called previously");
    }
    function S3(t5) {
      return r3.length > 0 ? r3[0].mpd.manifest.Period[t5] : null;
    }
    function w3(t5, e4, n4) {
      let a3, r4, i4, l4, o4, s3;
      if (t5) {
        for (r4 = t5.AdaptationSet, o4 = 0; o4 < r4.length; o4 += 1)
          for (a3 = r4[o4], l4 = a3.Representation, s3 = 0; s3 < l4.length; s3 += 1)
            if (i4 = l4[s3], e4 === i4.id)
              return n4 ? s3 : i4;
      }
      return null;
    }
    return t4 = { applyPatchToManifest: function(t5, e4) {
      n3.getPatchOperations(e4).forEach((e5) => {
        let n4 = e5.getMpdTarget(t5);
        if (null === n4)
          return;
        let { name: a3, target: r4, leaf: i4 } = n4;
        if (e5.xpath.findsAttribute() || "__text" === a3) {
          switch (e5.action) {
            case "add":
            case "replace":
              r4[a3] = e5.value;
              break;
            case "remove":
              delete r4[a3];
          }
          return;
        }
        let l4 = (r4[a3] || []).indexOf(i4), o4 = "prepend" === e5.position || "before" === e5.position;
        if ("remove" === e5.action || "replace" === e5.action)
          if (Array.isArray(r4[a3])) {
            if (-1 != l4) {
              let t6 = r4[a3];
              t6.splice(l4, 1), t6.length > 0 ? r4[a3] = t6 : delete r4[a3];
            }
          } else
            delete r4[a3];
        "add" !== e5.action && "replace" !== e5.action || Object.keys(e5.value).forEach((t6) => {
          let n5 = e5.value[t6], i5 = r4[t6] || [];
          if (0 === i5.length && r4[t6] && i5.push(r4[t6]), 0 === i5.length)
            i5 = n5;
          else {
            let r5 = i5.length;
            r5 = t6 == a3 && -1 != l4 ? l4 + (o4 ? 0 : 1) + ("replace" === e5.action ? -1 : 0) : o4 ? 0 : i5.length, i5.splice.apply(i5, [r5, 0].concat(n5));
          }
          r4[t6] = i5;
        });
      });
    }, areMediaInfosEqual: function(t5, e4) {
      if (!t5 || !e4)
        return false;
      const n4 = t5.id === e4.id, a3 = t5.codec === e4.codec, r4 = JSON.stringify(t5.viewpoint) === JSON.stringify(e4.viewpoint), i4 = t5.lang === e4.lang, l4 = JSON.stringify(t5.roles) === JSON.stringify(e4.roles), o4 = JSON.stringify(t5.accessibility) === JSON.stringify(e4.accessibility), s3 = JSON.stringify(t5.audioChannelConfiguration) === JSON.stringify(e4.audioChannelConfiguration);
      return n4 && a3 && r4 && i4 && l4 && o4 && s3;
    }, getAllMediaInfoForType: function(t5, n4, a3) {
      let l4 = r3, o4 = a3, s3 = [];
      if (o4)
        v3(), l4 = c3(o4);
      else {
        if (!(r3.length > 0))
          return s3;
        o4 = r3[0].mpd.manifest;
      }
      const u3 = b3(t5, l4);
      let f4 = e3.getAdaptationsForType(o4, t5 ? t5.index : null, n4);
      return s3 = d3(o4, u3, t5, f4, n4), n4 === i3.TEXT && (f4 = e3.getAdaptationsForType(o4, t5 ? t5.index : null, i3.VIDEO), s3 = s3.concat(d3(o4, u3, t5, f4, n4, true))), s3;
    }, getAvailabilityStartTime: function(t5) {
      const n4 = f3(t5);
      return e3.getAvailabilityStartTime(n4);
    }, getBandwidthForRepresentation: function(t5, e4) {
      let n4;
      return n4 = w3(S3(e4), t5), n4 ? n4.bandwidth : null;
    }, getBaseURLsFromElement: function(t5) {
      return e3.getBaseURLsFromElement(t5);
    }, getCodec: function(t5, n4, a3) {
      return e3.getCodec(t5, n4, a3);
    }, getCodecForPreselection: function(t5, n4) {
      return e3.getCodecForPreselection(t5, n4);
    }, getContentSteering: function(t5) {
      return e3.getContentSteering(t5);
    }, getDuration: function(t5) {
      const n4 = h3(t5);
      return e3.getDuration(n4);
    }, getEssentialProperties: function(t5) {
      try {
        return e3.getEssentialProperties(t5);
      } catch (t6) {
        return [];
      }
    }, getEvent: function(t5, e4, n4, a3) {
      try {
        if (!t5 || !e4 || isNaN(n4) || !a3)
          return null;
        const r4 = t5.scheme_id_uri, i4 = t5.value;
        if (!e4[r4 + "/" + i4])
          return null;
        const l4 = new Zt(), o4 = t5.timescale || 1, s3 = a3.adaptation.period.start, u3 = e4[r4 + "/" + i4], d4 = isNaN(a3.presentationTimeOffset) ? isNaN(u3.presentationTimeOffset) ? 0 : u3.presentationTimeOffset : a3.presentationTimeOffset;
        let c4, f4 = t5.presentation_time_delta / o4;
        c4 = 0 === t5.version ? s3 + n4 - d4 + f4 : s3 - d4 + f4;
        const g4 = t5.event_duration / o4, h4 = t5.id, p4 = t5.message_data;
        return l4.eventStream = u3, l4.eventStream.value = i4, l4.eventStream.timescale = o4, l4.duration = g4, l4.id = h4, l4.calculatedPresentationTime = c4, l4.messageData = p4, l4.presentationTimeDelta = f4, l4.parsedMessageData = r4 === m2.default.ID3_SCHEME_ID_URI ? function(t6) {
          let e5 = 0;
          const n5 = [];
          for (; yr(t6, e5); ) {
            const a4 = Er(t6, e5 + 6);
            t6[e5 + 5] >> 6 & 1 && (e5 += Ir), e5 += Ir;
            const r5 = e5 + a4;
            for (; e5 + kr < r5; ) {
              const a5 = wr(t6.subarray(e5)), r6 = Sr(a5);
              r6 && n5.push(r6), e5 += a5.size + Ir;
            }
            Tr(t6, e5) && (e5 += Ir);
          }
          return n5;
        }(p4) : null, l4;
      } catch (t6) {
        return null;
      }
    }, getEventsFor: function(t5, n4, a3) {
      let i4 = [];
      if (r3.length > 0) {
        const l4 = r3[0].mpd.manifest;
        if (t5 instanceof Ha) {
          const n5 = b3(t5, r3);
          i4 = e3.getEventsForPeriod(n5);
        } else if (t5 instanceof Ga) {
          const n5 = b3(a3, r3);
          i4 = e3.getEventStreamForAdaptationSet(l4, p3(t5), n5);
        } else if (t5 instanceof oe) {
          const t6 = b3(a3, r3);
          i4 = e3.getEventStreamForRepresentation(l4, n4, t6);
        }
      }
      return i4;
    }, getFramerate: function(t5) {
      return e3.getFramerate(t5);
    }, getIndexForRepresentation: function(t5, e4) {
      return function(t6, e5) {
        const n4 = w3(t6, e5, true);
        return null !== n4 ? n4 : -1;
      }(S3(e4), t5);
    }, getIsDVB: function(t5) {
      return e3.hasProfile(t5, "urn:dvb:dash:profile:dvb-dash:2014");
    }, getIsDynamic: function(t5) {
      const n4 = h3(t5);
      return e3.getIsDynamic(n4);
    }, getIsPatch: function(t5) {
      return n3.getIsPatch(t5);
    }, getIsTextTrack: function(t5) {
      return e3.getIsText(t5);
    }, getIsTypeOf: function(t5, n4) {
      return e3.getIsTypeOf(t5, n4);
    }, getLocation: function(t5) {
      return e3.getLocation(t5);
    }, getMainAdaptationForType: s2, getMainAdaptationSetForPreselection: function(t5, n4) {
      return e3.getMainAdaptationSetForPreselection(t5, n4);
    }, getCommonRepresentationForPreselection: function(t5, n4) {
      return e3.getCommonRepresentationForPreselection(t5, n4);
    }, getManifestUpdatePeriod: function(t5, n4 = 0) {
      return e3.getManifestUpdatePeriod(t5, n4);
    }, getMediaInfoForType: function(t5, n4) {
      if (0 === r3.length || !t5)
        return null;
      let a3 = b3(t5, r3);
      if (!a3)
        return null;
      const i4 = e3.getAdaptationsForPeriod(a3);
      let l4 = s2(n4, t5);
      return l4 ? y3(i4[e3.getIndexForAdaptation(l4, r3[0].mpd.manifest, t5.index)]) : null;
    }, getMpd: f3, getPatchLocation: function(t5) {
      const n4 = e3.getPatchLocation(t5), a3 = e3.getPublishTime(t5);
      return n4 && 0 !== n4.length && a3 ? n4.filter((t6) => isNaN(t6.ttl) || a3.getTime() + t6.ttl > (/* @__PURE__ */ new Date()).getTime()) : [];
    }, getPeriodById: function(t5) {
      if (!t5 || 0 === r3.length)
        return null;
      const e4 = r3.filter((e5) => e5.id === t5);
      return e4 && e4.length > 0 ? e4[0] : null;
    }, getPreselectionIsTypeOf: function(t5, n4, a3) {
      return e3.getPreselectionIsTypeOf(t5, n4, a3);
    }, getProducerReferenceTimes: function(t5, n4) {
      let a3, i4;
      const l4 = b3(t5, r3);
      return a3 = n4 ? n4.id : null, r3.length > 0 && l4 && (i4 = a3 ? e3.getAdaptationForId(a3, r3[0].mpd.manifest, l4.index) : e3.getAdaptationForIndex(n4 ? n4.index : null, r3[0].mpd.manifest, l4.index)), i4 ? e3.getProducerReferenceTimesForAdaptation(i4) : [];
    }, getPublishTime: function(t5) {
      return e3.getPublishTime(t5);
    }, getRealAdaptation: function(t5, n4) {
      let a3, i4;
      const l4 = b3(t5, r3);
      return a3 = n4 ? n4.id : null, r3.length > 0 && l4 && (i4 = a3 ? e3.getAdaptationForId(a3, r3[0].mpd.manifest, l4.index) : e3.getAdaptationForIndex(n4 ? n4.index : null, r3[0].mpd.manifest, l4.index)), i4;
    }, getRealPeriodByIndex: function(t5) {
      return e3.getRealPeriodForIndex(t5, r3[0].mpd.manifest);
    }, getRegularPeriods: c3, getRepresentationSortFunction: function() {
      return e3.getRepresentationSortFunction();
    }, getStreamsInfo: function(t5, e4) {
      const n4 = [];
      let a3 = r3;
      if (t5 && (v3(), a3 = c3(t5)), a3.length > 0) {
        (!e4 || e4 > a3.length) && (e4 = a3.length);
        for (let t6 = 0; t6 < e4; t6++)
          n4.push(_3(a3[t6]));
      }
      return n4;
    }, getSuggestedPresentationDelay: function() {
      const t5 = r3.length > 0 ? r3[0].mpd : null;
      return e3.getSuggestedPresentationDelay(t5);
    }, getSupplementalCodecs: function(t5) {
      const e4 = t5[Vt.default.SUPPLEMENTAL_CODECS];
      return e4 ? e4.split(" ").map((e5) => t5.mimeType + ';codecs="' + e5 + '"') : [];
    }, getUTCTimingSources: function() {
      const t5 = h3();
      return e3.getUTCTimingSources(t5);
    }, getVoRepresentations: function(t5) {
      let n4;
      const a3 = p3(t5);
      return n4 = e3.getRepresentationsForAdaptation(a3, t5), n4;
    }, isPatchValid: function(t5, a3) {
      let r4 = e3.getId(t5), i4 = n3.getMpdId(a3), l4 = e3.getPublishTime(t5), o4 = n3.getPublishTime(a3), s3 = n3.getOriginalPublishTime(a3);
      return !!(r4 && i4 && r4 == i4 && l4 && s3 && l4.getTime() == s3.getTime() && o4 && l4.getTime() < o4.getTime());
    }, reset: g3, setConfig: function(t5) {
      t5 && (t5.constants && (i3 = t5.constants), t5.cea608parser && (l3 = t5.cea608parser), t5.errHandler && e3.setConfig({ errHandler: t5.errHandler }), t5.BASE64 && e3.setConfig({ BASE64: t5.BASE64 }));
    }, updatePeriods: function(t5) {
      if (!t5)
        return null;
      v3(), r3 = c3(t5);
    } }, e3 = he(o3).getInstance(), n3 = $a(o3).getInstance(), a2 = (0, u2.default)(o3).getInstance(), g3(), t4;
  }
  Ar.__dashjs_factory_name = "DashAdapter";
  var Rr = r2.default.getSingletonFactory(Ar);
  class Nr {
    static round10(t4, e3) {
      return function(t5, e4, n3) {
        return void 0 === n3 || 0 == +n3 ? Math[t5](e4) : (n3 = +n3, null === (e4 = +e4) || isNaN(e4) || "number" != typeof n3 || n3 % 1 != 0 ? NaN : (e4 = e4.toString().split("e"), +((e4 = (e4 = Math[t5](+(e4[0] + "e" + (e4[1] ? +e4[1] - n3 : -n3)))).toString().split("e"))[0] + "e" + (e4[1] ? +e4[1] + n3 : n3))));
      }("round", t4, e3);
    }
  }
  var Cr = class {
    constructor() {
      this.TcpList = [], this.HttpList = [], this.RepSwitchList = [], this.BufferLevel = [], this.BufferState = [], this.PlayList = [], this.DroppedFrames = [], this.SchedulingInfo = [], this.DVRInfo = [], this.ManifestUpdate = [], this.RequestsQueue = null, this.DVBErrors = [];
    }
  }, Dr = class {
    constructor() {
      this.t = null, this.mt = null, this.to = null, this.lto = null;
    }
  }, xr = class {
    constructor() {
      this.t = null, this.level = null;
    }
  }, Mr = class {
    constructor() {
      this.target = null, this.state = l2.BUFFER_EMPTY;
    }
  }, Pr = class {
    constructor() {
      this.time = null, this.range = null, this.manifestInfo = null;
    }
  }, Or = class {
    constructor() {
      this.time = null, this.droppedFrames = null;
    }
  };
  class zr {
    constructor() {
      this.mediaType = null, this.type = null, this.requestTime = null, this.fetchTime = null, this.availabilityStartTime = null, this.presentationStartTime = 0, this.clientTimeOffset = 0, this.currentTime = null, this.buffered = null, this.latency = 0, this.streamInfo = [], this.representationInfo = [];
    }
  }
  class Lr {
    constructor() {
      this.id = null, this.index = null, this.start = null, this.duration = null;
    }
  }
  class Fr {
    constructor() {
      this.id = null, this.index = null, this.mediaType = null, this.presentationTimeOffset = null, this.startNumber = null;
    }
  }
  var Ur = class {
    constructor() {
      this.mediaType = null, this.t = null, this.type = null, this.startTime = null, this.availabilityStartTime = null, this.duration = null, this.bandwidth = null, this.range = null, this.state = null;
    }
  }, jr = class {
    constructor() {
      this.loadingRequests = [], this.executedRequests = [];
    }
  };
  function qr(t4) {
    const e3 = (t4 = t4 || {}).settings;
    let n3, a2, r3 = this.context, i3 = (0, f2.default)(r3).getInstance();
    function o3() {
      i3.trigger(g2.default.METRICS_CHANGED);
    }
    function s2(t5) {
      i3.trigger(g2.default.METRIC_CHANGED, { mediaType: t5 }), o3();
    }
    function u3(t5, e4, n4) {
      i3.trigger(g2.default.METRIC_UPDATED, { mediaType: t5, metric: e4, value: n4 }), s2(t5);
    }
    function d3(t5, e4, n4) {
      i3.trigger(g2.default.METRIC_ADDED, { mediaType: t5, metric: e4, value: n4 }), s2(t5);
    }
    function c3(t5, e4) {
      let n4 = null;
      return t5 ? (a2.hasOwnProperty(t5) ? n4 = a2[t5] : e4 || (n4 = new Cr(), a2[t5] = n4), n4) : n4;
    }
    function h3(t5, n4, a3) {
      let r4 = c3(t5);
      null !== r4 && (r4[n4].push(a3), r4[n4].length > e3.get().streaming.metrics.maxListDepth && r4[n4].shift());
    }
    function p3(t5, e4, n4) {
      h3(t5, e4, n4), d3(t5, e4, n4);
    }
    return n3 = { addBufferLevel: function(t5, e4, n4) {
      let a3 = new xr();
      a3.t = e4, a3.level = n4, p3(t5, l2.BUFFER_LEVEL, a3);
    }, addBufferState: function(t5, e4, n4) {
      let a3 = new Mr();
      a3.target = n4, a3.state = e4, p3(t5, l2.BUFFER_STATE, a3);
    }, addDVBErrors: function(t5) {
      p3(m2.default.STREAM, l2.DVB_ERRORS, t5);
    }, addDVRInfo: function(t5, e4, n4, a3) {
      let r4 = new Pr();
      r4.time = e4, r4.range = a3, r4.manifestInfo = n4, p3(t5, l2.DVR_INFO, r4);
    }, addDroppedFrames: function(t5, e4) {
      let n4 = new Or(), a3 = c3(t5).DroppedFrames;
      e4 && (n4.time = e4.creationTime, n4.droppedFrames = e4.droppedVideoFrames, a3.length > 0 && a3[a3.length - 1] == n4 || p3(t5, l2.DROPPED_FRAMES, n4));
    }, addHttpRequest: function t5(e4, n4, a3, r4) {
      let i4 = new w2.HTTPRequest();
      n4.url && n4.url !== e4.url && (t5({ mediaType: e4.mediaType, type: e4.type, url: e4.url, serviceLocation: null, range: e4.range, startDate: e4.startDate, firstByteDate: null, endDate: null, duration: e4.duration, fileLoaderType: e4.fileLoaderType, resourceTimingValues: e4.resourceTimingValues }, { url: null, status: null, headers: null }, null, r4), i4.actualurl = n4.url), i4.tcpid = null, i4.type = e4.type, i4.url = e4.url, i4.range = e4.range || null, i4.trequest = e4.startDate, i4.tresponse = e4.firstByteDate, i4.responsecode = n4.status, i4.cmsd = r4, i4._tfinish = e4.endDate, i4._stream = e4.mediaType, i4._mediaduration = e4.duration, i4._responseHeaders = "";
      for (const t6 in n4.headers)
        i4._responseHeaders += t6 + ": " + n4.headers[t6] + "\r\n";
      i4._serviceLocation = e4.serviceLocation || null, i4._fileLoaderType = e4.fileLoaderType, i4._resourceTimingValues = e4.resourceTimingValues, i4._streamId = e4 && e4.representation && e4.representation.mediaInfo && e4.representation.mediaInfo.streamInfo ? e4.representation.mediaInfo.streamInfo.id : null, a3 ? a3.forEach((t6) => {
        !function(t7, e5, n5, a4) {
          let r5 = new w2.HTTPRequestTrace();
          r5.s = e5, r5.d = n5, r5.b = a4, t7.trace.push(r5), t7.interval || (t7.interval = 0), t7.interval += n5;
        }(i4, t6.s, t6.d, t6.b, t6.t);
      }) : (delete i4.interval, delete i4.trace), p3(e4.mediaType, l2.HTTP_REQUEST, i4);
    }, addManifestUpdate: function(t5, e4, n4, a3) {
      let r4 = new zr();
      r4.mediaType = t5, r4.type = e4, r4.requestTime = n4, r4.fetchTime = a3, h3(m2.default.STREAM, l2.MANIFEST_UPDATE, r4), d3(t5, l2.MANIFEST_UPDATE, r4);
    }, addManifestUpdateRepresentationInfo: function(t5, e4, n4) {
      if (t5 && t5.representationInfo) {
        const a3 = new Fr();
        a3.id = e4 ? e4.id : null, a3.index = e4 ? e4.index : null, a3.mediaType = n4, a3.startNumber = e4 ? e4.startNumber : null, a3.presentationTimeOffset = e4 ? e4.presentationTimeOffset : null, t5.representationInfo.push(a3), u3(t5.mediaType, l2.MANIFEST_UPDATE_TRACK_INFO, t5);
      }
    }, addManifestUpdateStreamInfo: function(t5, e4, n4, a3, r4) {
      if (t5) {
        let i4 = new Lr();
        i4.id = e4, i4.index = n4, i4.start = a3, i4.duration = r4, t5.streamInfo.push(i4), u3(t5.mediaType, l2.MANIFEST_UPDATE_STREAM_INFO, t5);
      }
    }, addPlayList: function(t5) {
      t5.trace && Array.isArray(t5.trace) ? t5.trace.forEach((t6) => {
        t6.hasOwnProperty("subreplevel") && !t6.subreplevel && delete t6.subreplevel;
      }) : delete t5.trace, p3(m2.default.STREAM, l2.PLAY_LIST, t5);
    }, addRepresentationSwitch: function(t5, e4, n4, a3, r4) {
      let i4 = new Dr();
      i4.t = e4, i4.mt = n4, i4.to = a3, r4 ? i4.lto = r4 : delete i4.lto, p3(t5, l2.TRACK_SWITCH, i4);
    }, addRequestsQueue: function(t5, e4, n4) {
      let a3 = new jr();
      a3.loadingRequests = e4, a3.executedRequests = n4, c3(t5).RequestsQueue = a3, d3(t5, l2.REQUESTS_QUEUE, a3);
    }, addSchedulingInfo: function(t5, e4, n4, a3, r4, i4, o4, s3, u4) {
      let d4 = new Ur();
      d4.mediaType = t5, d4.t = e4, d4.type = n4, d4.startTime = a3, d4.availabilityStartTime = r4, d4.duration = i4, d4.bandwidth = o4, d4.range = s3, d4.state = u4, p3(t5, l2.SCHEDULING_INFO, d4);
    }, clearAllCurrentMetrics: function() {
      a2 = {}, o3();
    }, clearCurrentMetricsForType: function(t5) {
      delete a2[t5], s2(t5);
    }, getMetricsFor: c3, updateManifestUpdateInfo: function(t5, e4) {
      if (t5) {
        for (let n4 in e4)
          t5[n4] = e4[n4];
        u3(t5.mediaType, l2.MANIFEST_UPDATE, t5);
      }
    } }, a2 = {}, n3;
  }
  qr.__dashjs_factory_name = "MetricsModel";
  var Br = r2.default.getSingletonFactory(qr);
  class Gr {
    constructor() {
      this.start = null, this.mstart = null, this.starttype = null, this.trace = [];
    }
  }
  Gr.INITIAL_PLAYOUT_START_REASON = "initial_playout", Gr.SEEK_START_REASON = "seek", Gr.RESUME_FROM_PAUSE_START_REASON = "resume", Gr.METRICS_COLLECTION_START_REASON = "metrics_collection_start";
  class Hr {
    constructor() {
      this.representationid = null, this.subreplevel = null, this.start = null, this.mstart = null, this.duration = null, this.playbackspeed = null, this.stopreason = null;
    }
  }
  function Yr(t4) {
    t4 = t4 || {};
    const e3 = this.context;
    let n3, a2, r3, i3, o3 = t4.metricsModel;
    function s2(t5) {
      const e4 = o3.getMetricsFor(t5, true);
      if (!e4)
        return null;
      const n4 = e4.HttpList;
      let a3, r4 = null;
      if (!n4 || n4.length <= 0)
        return null;
      for (a3 = n4.length - 1; a3 >= 0; ) {
        if (n4[a3].responsecode) {
          r4 = n4[a3];
          break;
        }
        a3--;
      }
      return r4;
    }
    function u3(t5) {
      const e4 = o3.getMetricsFor(t5, true);
      return e4 && e4.HttpList ? e4.HttpList : [];
    }
    function d3(t5, e4) {
      if (!t5)
        return null;
      const n4 = t5[e4];
      return n4 && 0 !== n4.length ? n4[n4.length - 1] : null;
    }
    return n3 = { getCurrentRepresentationSwitch: function(t5) {
      return d3(o3.getMetricsFor(t5, true), l2.TRACK_SWITCH);
    }, getCurrentBufferState: function(t5) {
      return d3(o3.getMetricsFor(t5, true), l2.BUFFER_STATE);
    }, getCurrentBufferLevel: function(t5) {
      const e4 = d3(o3.getMetricsFor(t5, true), l2.BUFFER_LEVEL);
      return e4 ? Nr.round10(e4.level / 1e3, -3) : 0;
    }, getCurrentHttpRequest: s2, getHttpRequests: u3, getCurrentDroppedFrames: function() {
      return d3(o3.getMetricsFor(m2.default.VIDEO, true), l2.DROPPED_FRAMES);
    }, getCurrentSchedulingInfo: function(t5) {
      return d3(o3.getMetricsFor(t5, true), l2.SCHEDULING_INFO);
    }, getCurrentDVRInfo: function(t5) {
      return d3(t5 ? o3.getMetricsFor(t5, true) : o3.getMetricsFor(m2.default.VIDEO, true) || o3.getMetricsFor(m2.default.AUDIO, true), l2.DVR_INFO);
    }, getCurrentManifestUpdate: function() {
      return d3(o3.getMetricsFor(m2.default.STREAM), l2.MANIFEST_UPDATE);
    }, getLatestFragmentRequestHeaderValueByID: function(t5, e4) {
      if (!e4)
        return null;
      let n4 = {}, a3 = s2(t5);
      a3 && (n4 = Lt.default.parseHttpHeaders(a3._responseHeaders));
      const r4 = n4[e4.toLowerCase()];
      return void 0 === r4 ? null : r4;
    }, getLatestMPDRequestHeaderValueByID: function(t5) {
      if (!t5)
        return null;
      let e4, n4, a3, r4 = {};
      for (e4 = u3(m2.default.STREAM), a3 = e4.length - 1; a3 >= 0; a3--)
        if (n4 = e4[a3], n4.type === w2.HTTPRequest.MPD_TYPE) {
          r4 = Lt.default.parseHttpHeaders(n4._responseHeaders);
          break;
        }
      const i4 = r4[t5.toLowerCase()];
      return void 0 === i4 ? null : i4;
    }, addRepresentationSwitch: function(t5, e4, n4, a3, r4) {
      o3.addRepresentationSwitch(t5, e4, n4, a3, r4);
    }, addDVRInfo: function(t5, e4, n4, a3) {
      o3.addDVRInfo(t5, e4, n4, a3);
    }, updateManifestUpdateInfo: function(t5) {
      const e4 = this.getCurrentManifestUpdate();
      o3.updateManifestUpdateInfo(e4, t5);
    }, addManifestUpdateStreamInfo: function(t5) {
      if (t5) {
        const e4 = this.getCurrentManifestUpdate();
        o3.addManifestUpdateStreamInfo(e4, t5.id, t5.index, t5.start, t5.duration);
      }
    }, addManifestUpdateRepresentationInfo: function(t5, e4) {
      if (t5) {
        const n4 = this.getCurrentManifestUpdate();
        o3.addManifestUpdateRepresentationInfo(n4, t5, e4);
      }
    }, addManifestUpdate: function(t5) {
      o3.addManifestUpdate(m2.default.STREAM, t5.type, t5.startDate, t5.endDate);
    }, addHttpRequest: function(t5, e4, n4, a3, r4, i4) {
      const l3 = { status: n4, headers: a3, url: e4 };
      o3.addHttpRequest(t5, l3, r4, i4);
    }, addSchedulingInfo: function(t5, e4) {
      o3.addSchedulingInfo(t5.mediaType, /* @__PURE__ */ new Date(), t5.type, t5.startTime, t5.availabilityStartTime, t5.duration, t5.bandwidth, t5.range, e4);
    }, addRequestsQueue: function(t5, e4, n4) {
      o3.addRequestsQueue(t5, e4, n4);
    }, addBufferLevel: function(t5, e4, n4) {
      o3.addBufferLevel(t5, e4, n4);
    }, addBufferState: function(t5, e4, n4) {
      o3.addBufferState(t5, e4, n4);
    }, addDroppedFrames: function(t5) {
      o3.addDroppedFrames(m2.default.VIDEO, t5);
    }, addPlayList: function() {
      i3 && (o3.addPlayList(i3), i3 = null);
    }, addDVBErrors: function(t5) {
      o3.addDVBErrors(t5);
    }, createPlaylistMetrics: function(t5, e4) {
      i3 = new Gr(), i3.start = /* @__PURE__ */ new Date(), i3.mstart = t5, i3.starttype = e4;
    }, createPlaylistTraceMetrics: function(t5, e4, n4) {
      true === a2 && (a2 = false, r3 = new Hr(), r3.representationid = t5, r3.start = /* @__PURE__ */ new Date(), r3.mstart = e4, r3.playbackspeed = null !== n4 ? n4.toString() : null);
    }, updatePlayListTraceMetrics: function(t5) {
      if (r3)
        for (let e4 in r3)
          r3[e4] = t5[e4];
    }, pushPlayListTraceMetrics: function(t5, e4) {
      if (false === a2 && i3 && r3 && r3.start) {
        const n4 = r3.start;
        r3.duration = t5.getTime() - n4.getTime(), r3.stopreason = e4, i3.trace.push(r3), a2 = true;
      }
    }, clearAllCurrentMetrics: function() {
      o3.clearAllCurrentMetrics();
    } }, o3 = o3 || Br(e3).getInstance({ settings: t4.settings }), a2 = true, r3 = null, i3 = null, n3;
  }
  Hr.REPRESENTATION_SWITCH_STOP_REASON = "representation_switch", Hr.REBUFFERING_REASON = "rebuffering", Hr.USER_REQUEST_STOP_REASON = "user_request", Hr.END_OF_PERIOD_STOP_REASON = "end_of_period", Hr.END_OF_CONTENT_STOP_REASON = "end_of_content", Hr.METRICS_COLLECTION_STOP_REASON = "metrics_collection_end", Hr.FAILURE_STOP_REASON = "failure", Yr.__dashjs_factory_name = "DashMetrics";
  var Vr = r2.default.getSingletonFactory(Yr);
  function Kr() {
    let t4;
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance();
    return t4 = { error: function(t5) {
      n3.trigger(g2.default.ERROR, { error: t5 });
    } }, t4;
  }
  Kr.__dashjs_factory_name = "ErrorHandler";
  var Wr = r2.default.getSingletonFactory(Kr), $r = n2(5560);
  function Qr() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, s2, u3, d3, c3, h3, p3, b3;
    function y3() {
      b3.debug("Stopping the gap controller"), l3 && (clearInterval(l3), l3 = null), function() {
        e3.off(g2.default.WALLCLOCK_TIME_UPDATED, S3, this), e3.off(g2.default.INITIAL_STREAM_SWITCH, v3, this), e3.off(g2.default.PLAYBACK_SEEKING, E3, this), e3.off(g2.default.BUFFER_REPLACEMENT_STARTED, T3, n3), e3.off(g2.default.TRACK_CHANGE_RENDERED, _3, n3);
      }(), l3 = null, s2 = NaN, i3 = 0, h3 = null, p3 = {};
    }
    function E3() {
      h3 && (clearTimeout(h3), h3 = null);
    }
    function T3(t5) {
      try {
        if (t5.streamId !== d3.getActiveStreamInfo().id || t5.mediaType !== m2.default.VIDEO && t5.mediaType !== m2.default.AUDIO)
          return;
        t5.streamId === d3.getActiveStreamInfo().id && (p3[t5.mediaType] = true);
      } catch (t6) {
        b3.error(t6);
      }
    }
    function _3(t5) {
      t5 && t5.mediaType && (p3[t5.mediaType] = false);
    }
    function v3() {
      l3 || function() {
        try {
          l3 || (b3.debug("Starting the gap controller"), l3 = setInterval(() => {
            w3() && I3(u3.getTime());
          }, 100));
        } catch (t5) {
        }
      }();
    }
    function S3() {
      if (w3(r3.get().streaming.gaps.enableSeekFix) && (i3++, i3 >= 10)) {
        const t5 = u3.getTime();
        a2 === t5 ? I3(t5, true) : (a2 = t5, s2 = NaN), i3 = 0;
      }
    }
    function w3(t5 = false) {
      if (!d3.getActiveStream())
        return false;
      const e4 = Object.keys(p3).some((t6) => p3[t6]), n4 = !!t5 && function() {
        const t6 = d3.getActiveStream(), e5 = parseFloat((t6.getStartTime() + t6.getDuration()).toFixed(5));
        return u3.getTime() + r3.get().streaming.gaps.threshold >= e5;
      }();
      return !e4 && r3.get().streaming.gaps.jumpGaps && d3.getActiveStreamProcessors().length > 0 && (!u3.isSeeking() || n4) && !u3.isPaused() && !d3.getIsStreamSwitchInProgress() && !d3.getHasMediaOrInitialisationError();
    }
    function I3(t5, e4 = false) {
      const n4 = r3.get().streaming.gaps.enableStallFix, a3 = r3.get().streaming.gaps.stallSeek, i4 = r3.get().streaming.gaps.smallGapLimit, l4 = r3.get().streaming.gaps.jumpLargeGaps, o3 = r3.get().streaming.gaps.seekOffset, f3 = c3.getBufferRange();
      let g3, m3 = NaN, p4 = false;
      if (g3 = function(t6, e5) {
        try {
          if (!t6 || t6.length <= 1 && e5 > 0)
            return NaN;
          let n5 = NaN, a4 = 0;
          for (; isNaN(n5) && a4 < t6.length; ) {
            const i5 = a4 > 0 ? t6.end(a4 - 1) : 0;
            e5 < t6.start(a4) && i5 - e5 < r3.get().streaming.gaps.threshold && (n5 = a4), a4 += 1;
          }
          return n5;
        } catch (t7) {
          return null;
        }
      }(f3, t5), !isNaN(g3)) {
        const e5 = f3.start(g3), n5 = e5 - t5;
        n5 > 0 && (n5 <= i4 || l4) && (m3 = e5);
      }
      const y4 = u3.getTimeToStreamEnd();
      if (isNaN(m3) && e4 && isFinite(y4) && !isNaN(y4) && y4 < i4 && (m3 = parseFloat(u3.getStreamEndTime().toFixed(5)), p4 = true), n4 && isNaN(m3) && e4 && isNaN(g3) && function(t6, e5) {
        for (let n5 = 0, a4 = t6.length; n5 < a4; n5++)
          if (e5 >= t6.start(n5) && e5 <= t6.end(n5))
            return true;
        return false;
      }(f3, t5) && (0 === a3 ? (b3.warn("Toggle play pause to break stall"), c3.pause(), c3.play()) : (b3.warn(`Jumping ${a3}s to break stall`), m3 = t5 + a3)), m3 > 0 && s2 !== m3 && m3 > t5 && !h3) {
        const e5 = m3 - t5;
        if (p4) {
          const n5 = d3.getStreamForTime(m3), a4 = n5 && !!n5.getPreloaded();
          b3.warn(`Jumping to end of stream because of gap from ${t5} to ${m3}. Gap duration: ${e5}`), u3.seek(m3 + o3, true, a4);
        } else {
          const n5 = u3.getIsDynamic(), a4 = g3 > 0 ? f3.end(g3 - 1) : t5, r4 = n5 ? 1e3 * Math.max(0, e5 - 0.1) : 0;
          h3 = window.setTimeout(() => {
            u3.seek(m3 + o3, true, true);
            const t6 = d3.getActiveStream();
            t6 && b3.warn(`Jumping gap occuring in period ${t6.getStreamId()} starting at ${a4} and ending at ${m3}. Jumping by: ${m3 + o3 - a4}`), h3 = null;
          }, r4);
        }
        s2 = m3;
      }
    }
    return n3 = { reset: y3, setConfig: function(t5) {
      t5 && (t5.settings && (r3 = t5.settings), t5.playbackController && (u3 = t5.playbackController), t5.streamController && (d3 = t5.streamController), t5.videoModel && (c3 = t5.videoModel));
    }, initialize: function() {
      !function() {
        e3.on(g2.default.WALLCLOCK_TIME_UPDATED, S3, this), e3.on(g2.default.INITIAL_STREAM_SWITCH, v3, this), e3.on(g2.default.PLAYBACK_SEEKING, E3, this), e3.on(g2.default.BUFFER_REPLACEMENT_STARTED, T3, n3), e3.on(g2.default.TRACK_CHANGE_RENDERED, _3, n3);
      }();
    } }, b3 = (0, o2.default)(t4).getInstance().getLogger(n3), y3(), n3;
  }
  Qr.__dashjs_factory_name = "GapController";
  var Xr = r2.default.getSingletonFactory(Qr), Zr = class extends Q {
    constructor(t4, e3) {
      super(), this.url = t4 || null, this.type = e3 || null, this.mediaType = m2.default.STREAM, this.responseType = "";
    }
  };
  function Jr(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance();
    let a2, r3 = oa(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, errors: Rt });
    return a2 = { load: function(t5, e4, a3) {
      const i3 = function(r4, i4) {
        e4.resolved = true, e4.resolvedContent = r4 || null, n3.trigger(g2.default.XLINK_ELEMENT_LOADED, { element: e4, resolveObject: a3, error: r4 || i4 ? null : new Ot.default(Rt.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE, Rt.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE + t5) });
      };
      if ("urn:mpeg:dash:resolve-to-zero:2013" === t5)
        i3(null, true);
      else {
        const e5 = new Zr(t5, w2.HTTPRequest.XLINK_EXPANSION_TYPE);
        r3.load({ request: e5, success: function(t6) {
          i3(t6);
        }, error: function() {
          i3(null);
        } });
      }
    }, reset: function() {
      r3 && (r3.abort(), r3 = null);
    } }, a2;
  }
  Jr.__dashjs_factory_name = "XlinkLoader";
  var ti = r2.default.getClassFactory(Jr);
  const ei = "onLoad";
  function ni(t4) {
    t4 = t4 || {};
    let e3 = this.context, n3 = (0, f2.default)(e3).getInstance();
    const a2 = ce(e3).getInstance();
    let r3, i3, l3, o3;
    function s2(t5, e4, n4) {
      let r4, i4, l4 = {};
      l4.elements = t5, l4.type = e4, l4.resolveType = n4, 0 === l4.elements.length && d3(l4);
      for (let t6 = 0; t6 < l4.elements.length; t6++)
        r4 = l4.elements[t6], i4 = a2.isHTTPURL(r4.url) ? r4.url : r4.originalContent.BaseURL + r4.url, o3.load(i4, r4, l4);
    }
    function u3(t5) {
      let e4, n4, a3 = "";
      if (e4 = t5.element, n4 = t5.resolveObject, e4.resolvedContent) {
        let t6 = 0;
        0 === e4.resolvedContent.indexOf("<?xml") && (t6 = e4.resolvedContent.indexOf("?>") + 2), a3 = e4.resolvedContent.substr(0, t6) + "<response>" + e4.resolvedContent.substr(t6) + "</response>", e4.resolvedContent = i3.parseXml(a3).response;
      }
      (function(t6) {
        let e5, n5;
        for (e5 = 0; e5 < t6.elements.length; e5++)
          if (n5 = t6.elements[e5], false === n5.resolved)
            return false;
        return true;
      })(n4) && d3(n4);
    }
    function d3(t5) {
      let e4, a3, r4 = [];
      if (function(t6) {
        let e5, n4, a4, r5, o4, s3, u4 = [];
        for (r5 = t6.elements.length - 1; r5 >= 0; r5--) {
          if (e5 = t6.elements[r5], n4 = e5.type, e5.resolvedContent) {
            if (e5.resolvedContent)
              for (o4 = 0; o4 < e5.resolvedContent[n4].length; o4++)
                a4 = e5.resolvedContent[n4][o4], u4.push(a4);
          } else
            delete e5.originalContent["xlink:actuate"], delete e5.originalContent["xlink:href"], u4.push(e5.originalContent);
          for (e5.parentElement[n4].splice(e5.index, 1), s3 = 0; s3 < u4.length; s3++)
            e5.parentElement[n4].splice(e5.index + s3, 0, u4[s3]);
          u4 = [];
        }
        t6.elements.length > 0 && i3.getIron().run(l3);
      }(t5), "onActuate" === t5.resolveType && n3.trigger(g2.default.XLINK_READY, { manifest: l3 }), t5.resolveType === ei)
        switch (t5.type) {
          case Vt.default.PERIOD:
            for (e4 = 0; e4 < l3[Vt.default.PERIOD].length; e4++)
              a3 = l3[Vt.default.PERIOD][e4], a3.hasOwnProperty(Vt.default.ADAPTATION_SET) && (r4 = r4.concat(c3(a3[Vt.default.ADAPTATION_SET], a3, Vt.default.ADAPTATION_SET, ei))), a3.hasOwnProperty(Vt.default.EVENT_STREAM) && (r4 = r4.concat(c3(a3[Vt.default.EVENT_STREAM], a3, Vt.default.EVENT_STREAM, ei)));
            s2(r4, Vt.default.ADAPTATION_SET, ei);
            break;
          case Vt.default.ADAPTATION_SET:
            n3.trigger(g2.default.XLINK_READY, { manifest: l3 });
        }
    }
    function c3(t5, e4, n4, a3) {
      let r4, i4, l4, o4 = [];
      for (i4 = t5.length - 1; i4 >= 0; i4--)
        r4 = t5[i4], r4.hasOwnProperty("xlink:href") && "urn:mpeg:dash:resolve-to-zero:2013" === r4["xlink:href"] && t5.splice(i4, 1);
      for (i4 = 0; i4 < t5.length; i4++)
        r4 = t5[i4], r4.hasOwnProperty("xlink:href") && r4.hasOwnProperty("xlink:actuate") && r4["xlink:actuate"] === a3 && (l4 = m3(r4["xlink:href"], e4, n4, i4, a3, r4), o4.push(l4));
      return o4;
    }
    function m3(t5, e4, n4, a3, r4, i4) {
      return { url: t5, parentElement: e4, type: n4, index: a3, resolveType: r4, originalContent: i4, resolvedContent: null, resolved: false };
    }
    return r3 = { resolveManifestOnLoad: function(t5) {
      let e4;
      l3 = t5, l3.Period ? (e4 = c3(l3.Period, l3, Vt.default.PERIOD, ei), s2(e4, Vt.default.PERIOD, ei)) : n3.trigger(g2.default.XLINK_READY, { manifest: l3 });
    }, setParser: function(t5) {
      t5 && (i3 = t5);
    }, reset: function() {
      n3.off(g2.default.XLINK_ELEMENT_LOADED, u3, r3), o3 && (o3.reset(), o3 = null);
    } }, n3.on(g2.default.XLINK_ELEMENT_LOADED, u3, r3), o3 = ti(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, settings: t4.settings }), r3;
  }
  ni.__dashjs_factory_name = "XlinkController";
  var ai = r2.default.getClassFactory(ni);
  function ri(t4) {
    function e3(t5, e4) {
      for (let n4 in t5)
        e4.hasOwnProperty(n4) || (e4[n4] = t5[n4]);
    }
    function n3(t5, n4, a3) {
      for (let r3 = 0, i3 = t5.length; r3 < i3; ++r3) {
        const i4 = t5[r3];
        if (n4[i4.name])
          if (a3[i4.name]) {
            if (i4.merge) {
              const t6 = n4[i4.name], r4 = a3[i4.name];
              "object" == typeof t6 && "object" == typeof r4 ? e3(t6, r4) : a3[i4.name] = t6 + r4;
            }
          } else
            a3[i4.name] = n4[i4.name];
      }
    }
    function a2(t5, e4) {
      for (let r3 = 0, i3 = t5.children.length; r3 < i3; ++r3) {
        const i4 = t5.children[r3], l3 = e4[i4.name];
        if (l3)
          for (let r4 = 0, o3 = l3.length; r4 < o3; ++r4) {
            const o4 = l3[r4];
            n3(t5.properties, e4, o4), a2(i4, o4);
          }
      }
    }
    return { run: function(e4) {
      if (null === e4 || "object" != typeof e4)
        return e4;
      if (e4.Period && "period" in t4) {
        const n4 = t4.period, r3 = e4.Period;
        for (let e5 = 0, i3 = r3.length; e5 < i3; ++e5) {
          const i4 = r3[e5];
          if (a2(n4, i4), "adaptationset" in t4) {
            const e6 = i4.AdaptationSet;
            if (e6) {
              const n5 = t4.adaptationset;
              for (let t5 = 0, r4 = e6.length; t5 < r4; ++t5)
                a2(n5, e6[t5]);
            }
          }
        }
      }
      return e4;
    } };
  }
  ri.__dashjs_factory_name = "ObjectIron";
  var ii = r2.default.getClassFactory(ri), li = class {
    constructor(t4, e3) {
      this._test = t4, this._converter = e3;
    }
    get test() {
      return this._test;
    }
    get converter() {
      return this._converter;
    }
  };
  const oi = /^([-])?P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/;
  var si = class extends li {
    constructor() {
      super((t4, e3, n3) => {
        const a2 = [Vt.default.MIN_BUFFER_TIME, Vt.default.MEDIA_PRESENTATION_DURATION, Vt.default.MINIMUM_UPDATE_PERIOD, Vt.default.TIMESHIFT_BUFFER_DEPTH, Vt.default.MAX_SEGMENT_DURATION, Vt.default.MAX_SUBSEGMENT_DURATION, Vt.default.SUGGESTED_PRESENTATION_DELAY, Vt.default.START, m2.default.START_TIME, Vt.default.DURATION], r3 = a2.length;
        for (let t5 = 0; t5 < r3; t5++)
          if (e3 === a2[t5])
            return oi.test(n3);
        return false;
      }, (t4) => {
        const e3 = oi.exec(t4);
        let n3 = 31536e3 * parseFloat(e3[3] || 0) + 2592e3 * parseFloat(e3[5] || 0) + 86400 * parseFloat(e3[7] || 0) + 3600 * parseFloat(e3[9] || 0) + 60 * parseFloat(e3[11] || 0) + parseFloat(e3[13] || 0);
        return void 0 !== e3[1] && (n3 = -n3), n3;
      });
    }
  };
  const ui = /^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+-])([0-9]{2})(?::?)([0-9]{2}))?/;
  var di = class extends li {
    constructor() {
      super((t4, e3, n3) => ui.test(n3), (t4) => {
        const e3 = ui.exec(t4);
        let n3;
        if (n3 = Date.UTC(parseInt(e3[1], 10), parseInt(e3[2], 10) - 1, parseInt(e3[3], 10), parseInt(e3[4], 10), parseInt(e3[5], 10), e3[6] && parseInt(e3[6], 10) || 0, e3[7] && 1e3 * parseFloat(e3[7]) || 0), e3[9] && e3[10]) {
          const t5 = 60 * parseInt(e3[9], 10) + parseInt(e3[10], 10);
          n3 += ("+" === e3[8] ? -1 : 1) * t5 * 60 * 1e3;
        }
        return new Date(n3);
      });
    }
  };
  const ci = /^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$/, fi = [Vt.default.ID];
  var gi = class extends li {
    constructor() {
      super((t4, e3, n3) => ci.test(n3) && -1 === fi.indexOf(e3), (t4) => parseFloat(t4));
    }
  }, mi = class extends li {
    constructor() {
      super((t4, e3) => {
        const n3 = { [Vt.default.ADAPTATION_SET]: [Vt.default.LANG], [Vt.default.REPRESENTATION]: [Vt.default.LANG], [Vt.default.CONTENT_COMPONENT]: [Vt.default.LANG], [Vt.default.LABEL]: [Vt.default.LANG], [Vt.default.GROUP_LABEL]: [Vt.default.LANG] };
        if (n3.hasOwnProperty(t4)) {
          let a2 = n3[t4];
          return void 0 !== a2 && a2.indexOf(e3) >= 0;
        }
        return false;
      }, (t4) => gr(t4) || String(t4));
    }
  }, hi = class {
    constructor(t4) {
      var e3;
      this._name = t4, this._merge = (e3 = t4) && e3.length && e3.charAt(0) === e3.charAt(0).toUpperCase();
    }
    get name() {
      return this._name;
    }
    get merge() {
      return this._merge;
    }
  }, pi = class {
    constructor(t4, e3, n3) {
      this._name = t4 || "", this._properties = [], this._children = n3 || [], Array.isArray(e3) && e3.forEach((t5) => {
        this._properties.push(new hi(t5));
      });
    }
    get name() {
      return this._name;
    }
    get children() {
      return this._children;
    }
    get properties() {
      return this._properties;
    }
  }, bi = class extends pi {
    constructor() {
      const t4 = [Vt.default.AUDIO_CHANNEL_CONFIGURATION, Vt.default.AUDIO_SAMPLING_RATE, Vt.default.CODECS, Vt.default.CODING_DEPENDENCY, Vt.default.CONTENT_PROTECTION, Vt.default.FRAMERATE, Vt.default.FRAME_PACKING, Vt.default.HEIGHT, Vt.default.INBAND_EVENT_STREAM, Vt.default.MAXIMUM_SAP_PERIOD, Vt.default.MAX_PLAYOUT_RATE, Vt.default.MIME_TYPE, Vt.default.PROFILES, Vt.default.SAR, Vt.default.SCAN_TYPE, Vt.default.SEGMENT_PROFILES, Vt.default.SEGMENT_SEQUENCE_PROPERTIES, Vt.default.START_WITH_SAP, Vt.default.WIDTH];
      super(Vt.default.ADAPTATION_SET, t4, [new pi(Vt.default.REPRESENTATION, t4, [new pi(Vt.default.SUB_REPRESENTATION, t4)])]);
    }
  }, yi = class extends pi {
    constructor() {
      const t4 = [Vt.default.SEGMENT_BASE, Vt.default.SEGMENT_TEMPLATE, Vt.default.SEGMENT_LIST];
      super(Vt.default.PERIOD, t4, [new pi(Vt.default.ADAPTATION_SET, t4, [new pi(Vt.default.REPRESENTATION, t4)])]);
    }
  };
  const Ei = [Vt.default.ACCESSIBILITY, Vt.default.ADAPTATION_SET, Vt.default.ADD, Vt.default.AUDIO_CHANNEL_CONFIGURATION, Vt.default.BASE_URL, Vt.default.CONTENT_COMPONENT, Vt.default.CONTENT_PROTECTION, Vt.default.CONTENT_STEERING, Vt.default.ESSENTIAL_PROPERTY, Vt.default.EVENT, Vt.default.EVENT_STREAM, Vt.default.INBAND_EVENT_STREAM, Vt.default.LABEL, Vt.default.LOCATION, Vt.default.METRICS, Vt.default.PATCH_LOCATION, Vt.default.PERIOD, Vt.default.PRESELECTION, Vt.default.PRODUCER_REFERENCE_TIME, Vt.default.REMOVE, Vt.default.REPLACE, Vt.default.REPORTING, Vt.default.REPRESENTATION, Vt.default.ROLE, Vt.default.S, Vt.default.SEGMENT_SEQUENCE_PROPERTIES, Vt.default.SEGMENT_URL, Vt.default.SERVICE_DESCRIPTION, Vt.default.SUPPLEMENTAL_PROPERTY, Vt.default.UTC_TIMING];
  function Ti(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.debug;
    let a2, r3, i3, l3;
    function o3(t5) {
      try {
        const e4 = function(t6) {
          const e5 = function(t7, e6 = {}) {
            let n5 = e6.pos || 0;
            const a3 = t7.length, r4 = !!e6.keepComments, i4 = !!e6.keepWhitespace, l4 = "<", o4 = "<".charCodeAt(0), s2 = ">", u3 = ">".charCodeAt(0), d3 = "-".charCodeAt(0), c3 = "/".charCodeAt(0), f3 = "?".charCodeAt(0), g3 = "!".charCodeAt(0), m3 = "'".charCodeAt(0), h3 = '"'.charCodeAt(0), p3 = "[".charCodeAt(0), b3 = "]".charCodeAt(0), y3 = "\r\n	>/= ";
            function E3(t8, e7 = "#text") {
              return { nodeName: e7, nodeValue: t8, attributes: {}, childNodes: [] };
            }
            function T3(e7 = "") {
              const l5 = [];
              for (; t7[n5]; )
                if (t7.charCodeAt(n5) == o4) {
                  if (t7.charCodeAt(n5 + 1) === c3) {
                    const a4 = n5 + 2;
                    if (n5 = t7.indexOf(s2, n5), !t7.startsWith(e7, a4)) {
                      const e8 = t7.substring(0, n5).split("\n");
                      throw new Error("Unexpected close tag\nLine: " + (e8.length - 1) + "\nColumn: " + (e8[e8.length - 1].length + 1) + "\nChar: " + t7[n5]);
                    }
                    return n5 + 1 && (n5 += 1), l5;
                  }
                  if (t7.charCodeAt(n5 + 1) === f3) {
                    n5 = t7.indexOf(s2, n5), n5++;
                    continue;
                  }
                  if (t7.charCodeAt(n5 + 1) === g3) {
                    if (t7.charCodeAt(n5 + 2) == d3) {
                      const e8 = n5;
                      for (; -1 !== n5 && (t7.charCodeAt(n5) !== u3 || t7.charCodeAt(n5 - 1) != d3 || t7.charCodeAt(n5 - 2) != d3 || -1 == n5); )
                        n5 = t7.indexOf(s2, n5 + 1);
                      -1 === n5 && (n5 = a3), r4 && l5.push(E3(t7.substring(e8, n5 + 1), "#comment"));
                    } else {
                      if (t7.charCodeAt(n5 + 2) === p3 && t7.charCodeAt(n5 + 8) === p3 && t7.startsWith("CDATA", n5 + 3)) {
                        const e8 = t7.indexOf("]]>", n5);
                        -1 == e8 ? (l5.push(E3(t7.substr(n5 + 9), "#cdata")), n5 = a3) : (l5.push(E3(t7.substring(n5 + 9, e8), "#cdata")), n5 = e8 + 3);
                        continue;
                      }
                      {
                        const e8 = n5 + 1;
                        n5 += 2;
                        let a4 = false;
                        for (; (t7.charCodeAt(n5) !== u3 || true === a4) && t7[n5]; )
                          t7.charCodeAt(n5) === p3 ? a4 = true : true === a4 && t7.charCodeAt(n5) === b3 && (a4 = false), n5++;
                        l5.push(E3(t7.substring(e8, n5), "#doctype"));
                      }
                    }
                    n5++;
                    continue;
                  }
                  const i5 = S3();
                  l5.push(i5);
                } else {
                  const t8 = _3();
                  if (i4)
                    t8.length > 0 && l5.push(E3(t8));
                  else {
                    const e8 = t8.trim();
                    e8.length > 0 && l5.push(E3(e8));
                  }
                  n5++;
                }
              return l5;
            }
            function _3() {
              const e7 = n5;
              return n5 = t7.indexOf(l4, n5) - 1, -2 === n5 && (n5 = a3), ve(t7.slice(e7, n5 + 1));
            }
            function v3() {
              const e7 = n5;
              for (; -1 === y3.indexOf(t7[n5]) && t7[n5]; )
                n5++;
              return t7.slice(e7, n5);
            }
            function S3() {
              n5++;
              const e7 = v3();
              let a4 = e7, r5 = null;
              const i5 = e7.indexOf(":");
              -1 !== i5 && (r5 = e7.slice(0, i5), a4 = e7.slice(i5 + 1));
              const l5 = function() {
                const e8 = {};
                for (; t7.charCodeAt(n5) !== u3 && t7[n5]; ) {
                  const a5 = t7.charCodeAt(n5);
                  if (a5 > 64 && a5 < 91 || a5 > 96 && a5 < 123) {
                    const a6 = v3();
                    let r6 = "", i6 = t7.charCodeAt(n5);
                    for (; i6 !== m3 && i6 !== h3; )
                      n5++, i6 = t7.charCodeAt(n5);
                    if (i6 === m3 || i6 === h3) {
                      if (r6 = w3(), -1 === n5)
                        throw new Error("Missing closing quote");
                    } else
                      n5--;
                    e8[a6] = ve(r6);
                  }
                  n5++;
                }
                return e8;
              }();
              let o5 = [];
              const s3 = t7.charCodeAt(n5 - 1);
              return n5++, s3 !== c3 && (o5 = T3(e7)), { nodeName: e7, nodeValue: null, attributes: l5, childNodes: o5, prefix: r5, localName: a4 };
            }
            function w3() {
              const e7 = t7[n5], a4 = n5 + 1;
              return n5 = t7.indexOf(e7, a4), t7.slice(a4, n5);
            }
            return { nodeName: "#document", nodeValue: null, childNodes: T3(""), attributes: {} };
          }(t6), n4 = e5.childNodes.find((t7) => "MPD" === t7.nodeName || "Patch" === t7.nodeName) || e5.childNodes[0];
          return function t7(e6) {
            -1 !== e6.nodeName.indexOf(":") && (e6.__prefix = e6.prefix, e6.nodeName = e6.localName);
            const { childNodes: n5, attributes: a3, nodeName: r4 } = e6;
            e6.tagName = r4;
            for (let t8 in a3) {
              let n6 = a3[t8];
              if ("S" === r4)
                n6 = parseInt(n6);
              else
                for (let e7 = 0, a4 = i3.length; e7 < a4; e7++) {
                  const a5 = i3[e7];
                  if (a5.test(r4, t8, n6)) {
                    n6 = a5.converter(n6);
                    break;
                  }
                }
              e6[t8] = n6;
            }
            const l4 = n5 == null ? void 0 : n5.length;
            for (let a4 = 0; a4 < l4; a4++) {
              const r5 = n5[a4];
              if ("#text" === r5.nodeName) {
                e6.__text = r5.nodeValue;
                continue;
              }
              t7(r5);
              const { nodeName: i4 } = r5;
              Array.isArray(e6[i4]) ? e6[i4].push(r5) : -1 !== Ei.indexOf(i4) ? (e6[i4] || (e6[i4] = []), e6[i4].push(r5)) : e6[i4] = r5;
            }
            e6.__children = n5;
          }(n4), n4;
        }(t5);
        return { [e4.tagName]: e4 };
      } catch (t6) {
        return null;
      }
    }
    return a2 = { getIron: function() {
      return l3;
    }, parseXml: o3, parse: function(t5) {
      let e4;
      const n4 = window.performance.now();
      if (e4 = o3(t5), !e4)
        throw new Error("failed to parse the manifest");
      e4.Patch ? (e4 = e4.Patch, e4.add && e4.add.forEach((t6) => l3.run(t6)), e4.replace && e4.replace.forEach((t6) => l3.run(t6))) : (e4 = e4.MPD, l3.run(e4));
      const a3 = window.performance.now();
      return r3.info("Parsing complete: " + (a3 - n4).toPrecision(3) + "ms"), e4.protocol = "DASH", e4;
    } }, r3 = n3.getLogger(a2), i3 = [new si(), new di(), new gi(), new mi()], l3 = ii(e3).create({ adaptationset: new bi(), period: new yi() }), a2;
  }
  Ti.__dashjs_factory_name = "DashParser";
  var _i = r2.default.getClassFactory(Ti);
  function vi(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.debug, a2 = t4.settings, r3 = (0, f2.default)(e3).getInstance(), i3 = ce(e3).getInstance();
    let l3, o3, s2, u3, d3, c3 = t4.mssHandler, h3 = t4.errHandler;
    function p3(t5) {
      r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: t5.manifest });
    }
    return l3 = { load: function(t5, l4 = null, f3 = null) {
      const m3 = /* @__PURE__ */ new Date(), h4 = new Zr(t5, w2.HTTPRequest.MPD_TYPE);
      l4 && (h4.serviceLocation = l4), f3 && (h4.queryParams = f3), h4.startDate || (h4.startDate = m3), r3.trigger(g2.default.MANIFEST_LOADING_STARTED, { request: h4 }), s2.load({ request: h4, success: function(l5, s3, f4) {
        if (!u3)
          return;
        let m4, h5, p4;
        if (f4 && f4 !== t5 ? (h5 = i3.parseBaseUrl(f4), m4 = f4) : (i3.isRelative(t5) && (t5 = i3.resolve(t5, window.location.href)), h5 = i3.parseBaseUrl(t5)), "No Content" != s3)
          if (null === d3 && (d3 = function(t6) {
            let a3 = null;
            return t6.indexOf("SmoothStreamingMedia") > -1 ? (c3 && (a3 = c3.createMssParser(), c3.createMssFragmentProcessor(), c3.registerEvents()), a3) : t6.indexOf("MPD") > -1 || t6.indexOf("Patch") > -1 ? _i(e3).create({ debug: n3 }) : a3;
          }(l5)), null !== d3) {
            u3.setParser(d3);
            try {
              p4 = d3.parse(l5);
            } catch (e4) {
              return void r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new Ot.default(Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
            }
            if (p4) {
              if (p4.url = m4 || t5, p4.originalUrl || (p4.originalUrl = p4.url), a2 && a2.get().streaming.enableManifestDurationMismatchFix && p4.mediaPresentationDuration && p4.Period.length > 1) {
                const t6 = p4.Period.reduce((t7, e4) => t7 + e4.duration, 0);
                !isNaN(t6) && p4.mediaPresentationDuration > t6 && (o3.warn("Media presentation duration greater than duration of all periods. Setting duration to total period duration"), p4.mediaPresentationDuration = t6);
              }
              p4.baseUri = h5, p4.loadedTime = /* @__PURE__ */ new Date(), u3.resolveManifestOnLoad(p4), r3.trigger(g2.default.ORIGINAL_MANIFEST_LOADED, { originalManifest: l5 });
            } else
              r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new Ot.default(Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
          } else
            r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new Ot.default(Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
        else
          r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: null });
      }, error: function(e4, n4, a3) {
        r3.trigger(g2.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new Ot.default(Rt.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE, Rt.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE + `${t5}, ${a3}`) });
      } });
    }, reset: function() {
      r3.off(g2.default.XLINK_READY, p3, l3), c3 && c3.reset(), u3 && (u3.reset(), u3 = null), s2 && (s2.abort(), s2 = null);
    } }, o3 = n3.getLogger(l3), r3.on(g2.default.XLINK_READY, p3, l3), s2 = oa(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, urlUtils: i3, constants: m2.default, dashConstants: Vt.default, errors: Rt, requestTimeout: t4.settings.get().streaming.manifestRequestTimeout }), u3 = ai(e3).create({ errHandler: h3, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, settings: t4.settings }), d3 = null, l3;
  }
  vi.__dashjs_factory_name = "ManifestLoader";
  var Si = r2.default.getClassFactory(vi);
  function wi() {
    let t4, e3, n3 = this.context, a2 = (0, f2.default)(n3).getInstance();
    return t4 = { getValue: function() {
      return e3;
    }, setValue: function(t5) {
      e3 = t5, t5 && a2.trigger(g2.default.MANIFEST_LOADED, { data: t5 });
    } }, t4;
  }
  wi.__dashjs_factory_name = "ManifestModel";
  var Ii = r2.default.getSingletonFactory(wi);
  function ki() {
    const t4 = this.context, e3 = (0, u2.default)(t4).getInstance();
    let n3, a2, r3;
    return n3 = { select: function(t5) {
      if (!t5 || 0 === t5.length)
        return null;
      let n4 = null;
      return e3.get().streaming.applyContentSteering && (n4 = function(t6) {
        const e4 = r3.getCurrentSteeringResponseData();
        return e4 && e4.pathwayPriority && e4.pathwayPriority.length > 0 ? function(t7 = [], e5 = []) {
          let n5 = 0, r4 = null;
          for (; n5 < t7.length; ) {
            const i3 = t7[n5], l3 = e5.findIndex((t8) => t8.serviceLocation && t8.serviceLocation === i3);
            if (-1 !== l3 && !a2.contains(e5[l3].serviceLocation)) {
              r4 = e5[l3];
              break;
            }
            n5 += 1;
          }
          return r4;
        }(e4.pathwayPriority, t6) : null;
      }(t5)), n4 || (n4 = function(t6) {
        return t6[0];
      }(t5)), n4;
    }, setConfig: function(t5) {
      t5.blacklistController && (a2 = t5.blacklistController), t5.contentSteeringController && (r3 = t5.contentSteeringController);
    }, reset: function() {
      a2.reset();
    } }, a2 = Ct(t4).create({ updateEventName: g2.default.SERVICE_LOCATION_LOCATION_BLACKLIST_CHANGED, addBlacklistEventName: g2.default.SERVICE_LOCATION_LOCATION_BLACKLIST_ADD }), r3 = ca(t4).getInstance(), n3;
  }
  ki.__dashjs_factory_name = "LocationSelector";
  var Ai = r2.default.getClassFactory(ki);
  function Ri() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance(), n3 = ce(t4).getInstance();
    let a2, r3, i3, l3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3;
    function S3() {
      T3 = NaN, c3 = false, u3 = true, d3 = false, w3();
    }
    function w3() {
      null !== _3 && (clearTimeout(_3), _3 = null);
    }
    function I3(t5) {
      w3(), d3 || (isNaN(t5) && !isNaN(T3) && (t5 = 1e3 * T3), isNaN(t5) || (b3.debug("Refresh manifest in " + t5 + " milliseconds."), _3 = setTimeout(R2, t5)));
    }
    function k3(t5 = false) {
      c3 = true;
      const e4 = E3.getValue();
      let i4 = e4.url;
      i4 && (i4 = Lt.default.removeQueryParameterFromUrl(i4, m2.default.CMCD_QUERY_KEY));
      let l4 = null;
      const o3 = a2.getPatchLocation(e4), s3 = p3.select(o3);
      let u4 = null;
      if (s3 && !t5)
        i4 = s3.url, l4 = s3.serviceLocation, u4 = s3.queryParams;
      else {
        const t6 = function(t7) {
          const e5 = a2.getLocation(t7), n5 = r3.getSynthesizedLocationElements(e5);
          return e5.concat(n5);
        }(e4), n4 = p3.select(t6);
        n4 && (i4 = n4.url, l4 = n4.serviceLocation, u4 = n4.queryParams);
      }
      n3.isRelative(i4) && (i4 = n3.resolve(i4, e4.url)), y3.load(i4, l4, u4);
    }
    function A2(t5) {
      if (t5) {
        if (a2.getIsPatch(t5)) {
          let e4 = t5;
          t5 = E3.getValue();
          let n5 = a2.isPatchValid(t5, e4), r5 = n5;
          if (n5) {
            let n6 = a2.getPublishTime(t5);
            a2.applyPatchToManifest(t5, e4);
            let i4 = a2.getPublishTime(t5);
            r5 = n6.getTime() !== i4.getTime();
          }
          if (!r5)
            return b3.debug("Patch provided is invalid, performing full manifest refresh"), void k3(true);
          t5.loadedTime = /* @__PURE__ */ new Date();
        }
      } else
        (t5 = E3.getValue()).loadedTime = /* @__PURE__ */ new Date();
      if (E3.getValue() && E3.getValue().type === Vt.default.DYNAMIC && t5.type === Vt.default.STATIC)
        return e3.trigger(g2.default.DYNAMIC_TO_STATIC), c3 = false, void (d3 = true);
      E3.setValue(t5);
      const n4 = /* @__PURE__ */ new Date(), r4 = (n4.getTime() - t5.loadedTime.getTime()) / 1e3;
      T3 = a2.getManifestUpdatePeriod(t5, r4), 1e3 * T3 > 2147483647 && (T3 = 2147483647e-3), e3.trigger(g2.default.MANIFEST_UPDATED, { manifest: t5 }), b3.info("Manifest has been refreshed at " + n4 + "[" + n4.getTime() / 1e3 + "] "), u3 || I3();
    }
    function R2() {
      u3 || (c3 ? I3(v3.get().streaming.manifestUpdateRetryInterval) : k3());
    }
    function N2(t5) {
      if (t5.error)
        t5.error.code === Rt.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE && l3.error(t5.error);
      else {
        const e4 = t5.manifest;
        !function(t6) {
          !function(t7) {
            const e5 = i3.getExternalSubtitles();
            if (!e5 || 0 === e5.length)
              return;
            const n4 = t7 && t7.Period ? t7.Period.length : 0;
            e5.forEach((e6) => {
              if (null === e6.periodId && n4 > 1)
                b3.warn(`External subtitle with id ${e6.id} has no periodId and the MPD contains more than one period. Unable to add the external subtitle as it is not clear which period shall be used.`);
              else if (1 === n4)
                C2(t7.Period[0], e6);
              else {
                const n5 = t7.Period.find((t8) => t8.id === e6.periodId);
                n5 ? C2(n5, e6) : b3.warn(`External subtitle with id ${e6.id} has periodId ${e6.periodId} but the MPD does not contain a period with that id. Unable to add the external subtitle.`);
              }
            });
          }(t6);
        }(e4), A2(e4);
      }
    }
    function C2(t5, e4) {
      if (!t5 || !t5.AdaptationSet)
        return t5;
      t5.AdaptationSet.push(e4.serializeToMpdParserFormat());
    }
    function D2() {
      u3 = false, I3();
    }
    function x2() {
      u3 = !v3.get().streaming.scheduling.scheduleWhilePaused, u3 && w3();
    }
    function M2() {
      c3 = false;
    }
    return s2 = { getIsUpdating: function() {
      return c3;
    }, initialize: function() {
      S3(), e3.on(g2.default.STREAMS_COMPOSED, M2, this), e3.on(h2.default.PLAYBACK_STARTED, D2, this), e3.on(h2.default.PLAYBACK_PAUSED, x2, this), e3.on(g2.default.INTERNAL_MANIFEST_LOADED, N2, this);
    }, refreshManifest: k3, reset: function() {
      e3.off(h2.default.PLAYBACK_STARTED, D2, this), e3.off(h2.default.PLAYBACK_PAUSED, x2, this), e3.off(g2.default.STREAMS_COMPOSED, M2, this), e3.off(g2.default.INTERNAL_MANIFEST_LOADED, N2, this), S3();
    }, setConfig: function(t5) {
      t5 && (t5.manifestModel && (E3 = t5.manifestModel), t5.adapter && (a2 = t5.adapter), t5.manifestLoader && (y3 = t5.manifestLoader), t5.errHandler && (l3 = t5.errHandler), t5.locationSelector && (p3 = t5.locationSelector), t5.settings && (v3 = t5.settings), t5.contentSteeringController && (r3 = t5.contentSteeringController), t5.customParametersModel && (i3 = t5.customParametersModel));
    }, setManifest: function(t5) {
      A2(t5);
    } }, b3 = (0, o2.default)(t4).getInstance().getLogger(s2), p3 = Ai(t4).create(), i3 = (0, Kn.default)(t4).getInstance(), s2;
  }
  Ri.__dashjs_factory_name = "ManifestUpdater";
  var Ni = r2.default.getClassFactory(Ri);
  function Ci() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, s2, u3, d3, c3, p3, b3;
    function y3(t5) {
      if (!(t5 && t5.currentRepresentation && t5.currentRepresentation.mediaInfo && t5.currentRepresentation.mediaInfo.type))
        return;
      const e4 = t5.currentRepresentation.mediaInfo.type;
      u3[e4] = t5.currentRepresentation;
    }
    function E3(t5, e4) {
      return t5 && r3[e4] && r3[e4][t5] ? r3[e4][t5].list : [];
    }
    function T3(t5, e4) {
      return t5 && r3[e4] && r3[e4][t5] ? r3[e4][t5].current : null;
    }
    function _3(t5, n4 = {}) {
      if (!t5 || !t5.streamInfo)
        return;
      const a3 = t5.type, l4 = t5.streamInfo.id, o3 = T3(a3, l4);
      if (r3[l4] && r3[l4][a3] && (r3[l4][a3].current = t5, r3[l4][a3].current && (a3 !== m2.default.TEXT && !w3(t5, o3) || a3 === m2.default.TEXT && t5.isFragmented) && e3.trigger(g2.default.CURRENT_TRACK_CHANGED, { oldMediaInfo: o3, newMediaInfo: t5, switchMode: i3.get().streaming.trackSwitchMode[a3], options: n4 }, { streamId: l4 }), !n4.hasOwnProperty("noSettingsSave") || !n4.noSettingsSave)) {
        let e4 = function(t6) {
          const e5 = { lang: t6.lang, viewpoint: t6.viewpoint, roles: t6.roles, accessibility: t6.accessibility, audioChannelConfiguration: t6.audioChannelConfiguration, codec: t6.codec };
          return e5.lang || e5.viewpoint || e5.role && e5.role.length > 0 || e5.accessibility && e5.accessibility.length > 0 || e5.audioChannelConfiguration && e5.audioChannelConfiguration.length > 0 ? e5 : null;
        }(t5);
        if (!e4 || !r3[l4][a3].storeLastSettings)
          return;
        e4.roles && (e4.role = e4.roles[0], delete e4.roles), e4.accessibility && (e4.accessibility = e4.accessibility[0]), e4.audioChannelConfiguration && (e4.audioChannelConfiguration = e4.audioChannelConfiguration[0]), s2[a3] = e4, b3.setSavedMediaSettings(a3, e4);
      }
    }
    function v3(t5, e4) {
      t5 && e4 && (l3[t5] = e4);
    }
    function S3(t5) {
      return t5 ? l3[t5] : null;
    }
    function w3(t5, e4) {
      if (!t5 && !e4)
        return true;
      if (!t5 || !e4)
        return false;
      if (t5.isPreselection !== e4.isPreselection)
        return false;
      const n4 = t5.id === e4.id, a3 = JSON.stringify(t5.viewpoint) === JSON.stringify(e4.viewpoint), r4 = t5.lang === e4.lang, i4 = t5.codec === e4.codec, l4 = JSON.stringify(t5.roles) === JSON.stringify(e4.roles), o3 = JSON.stringify(t5.accessibility) === JSON.stringify(e4.accessibility), s3 = JSON.stringify(t5.audioChannelConfiguration) === JSON.stringify(e4.audioChannelConfiguration);
      return n4 && i4 && a3 && r4 && l4 && o3 && s3;
    }
    function I3() {
      r3 = {}, s2 = {}, u3 = {}, l3 = { audio: null, video: null, text: null }, e3.off(h2.default.REPRESENTATION_SWITCH, y3, n3);
    }
    function k3(t5, e4, n4) {
      let r4 = [];
      return t5.forEach(function(t6) {
        e4(n4, t6) && r4.push(t6);
      }), 0 !== r4.length || e4 === D2 && i3.get().streaming.assumeDefaultRoleAsMain && G2(n4.role, { schemeIdUri: m2.default.DASH_ROLE_SCHEME_ID, value: Vt.default.MAIN }) && (a2.info("no track with Role set to main - assuming main as default and searching again"), r4 = k3(t5, x2, null), 0 !== r4.length) ? r4 : (a2.info("Filter-Function (" + e4.name + ") resulted in no tracks; setting ignored"), t5);
    }
    function A2(t5, e4) {
      try {
        return !t5.lang || t5.lang instanceof RegExp ? e4.lang.match(t5.lang) : "" !== e4.lang && ir(e4.lang, gr(t5.lang)).length > 0;
      } catch (t6) {
        return false;
      }
    }
    function R2(t5, e4) {
      return void 0 === t5.index || null === t5.index || e4.index === t5.index;
    }
    function N2(t5, e4) {
      return void 0 === t5.id || null === t5.id || e4.id === t5.id;
    }
    function C2(t5, e4) {
      return !t5.viewpoint || !!e4.viewpoint.filter(function(e5) {
        return G2(e5, t5.viewpoint);
      })[0];
    }
    function D2(t5, e4, n4 = false) {
      return !!e4.roles && (!t5.role || !!e4.roles.filter(function(e5) {
        return G2(e5, t5.role);
      })[0] || e4.type === m2.default.AUDIO && n4);
    }
    function x2(t5, e4) {
      return !e4.roles || 0 === e4.roles.length;
    }
    function M2(t5, e4) {
      let n4;
      return n4 = t5.accessibility ? !!e4.accessibility.filter(function(e5) {
        return G2(e5, t5.accessibility);
      })[0] : !e4.accessibility.length, n4;
    }
    function P2(t5, e4) {
      return !t5.audioChannelConfiguration || !!e4.audioChannelConfiguration.filter(function(e5) {
        return G2(e5, t5.audioChannelConfiguration);
      })[0];
    }
    function O2(t5, e4) {
      return !t5.codec || t5.codec === e4.codec;
    }
    function z2(t5) {
      let e4 = 0, n4 = [];
      return t5.forEach((t6) => {
        isNaN(t6.selectionPriority) || (t6.selectionPriority > e4 ? (e4 = t6.selectionPriority, n4 = [t6]) : t6.selectionPriority === e4 && n4.push(t6));
      }), n4;
    }
    function L2(t5) {
      let e4, n4 = 0, a3 = [];
      return t5.forEach(function(t6) {
        e4 = Math.max.apply(Math, t6.bitrateList.map(function(t7) {
          return t7.bandwidth;
        })), e4 > n4 ? (n4 = e4, a3 = [t6]) : e4 === n4 && a3.push(t6);
      }), a3;
    }
    function F2(t5) {
      return t5[0] && t5[0].type === m2.default.VIDEO ? function(t6) {
        let e4, n4 = 1 / 0, a3 = [];
        return t6.forEach(function(t7) {
          const r4 = t7.bitrateList.reduce(function(t8, e5) {
            const n5 = Math.max(1, e5.width * e5.height);
            return t8 + e5.bandwidth / n5;
          }, 0);
          e4 = r4 / t7.bitrateList.length, e4 < n4 ? (n4 = e4, a3 = [t7]) : e4 === n4 && a3.push(t7);
        }), a3;
      }(t5) : t5[0] && t5[0].type === m2.default.AUDIO ? function(t6) {
        let e4 = 1 / 0, n4 = [];
        return t6.forEach(function(t7) {
          let a3 = t7.audioChannelConfiguration.reduce(function(t8, e5) {
            return t8 + (Ca(e5) || 0);
          }, 0) / t7.audioChannelConfiguration.length;
          t7.hasOwnProperty("supplementalProperties") && t7.supplementalProperties.some((t8) => "tag:dolby.com,2018:dash:EC3_ExtensionType:2018" === t8.schemeIdUri && "JOC" === t8.value) && (a3 = 16), a3 || (a3 = 1);
          let r4 = t7.bitrateList.reduce(function(t8, e5) {
            return t8 + e5.bandwidth / a3;
          }, 0) / t7.bitrateList.length;
          r4 < e4 ? (e4 = r4, n4 = [t7]) : r4 === e4 && n4.push(t7);
        }), n4;
      }(t5) : t5;
    }
    function U2(t5) {
      let e4, n4 = 0, a3 = [];
      return t5.forEach(function(t6) {
        e4 = t6.representationCount, e4 > n4 ? (n4 = e4, a3 = [t6]) : e4 === n4 && a3.push(t6);
      }), a3;
    }
    function j2(t5, e4) {
      if (t5 === m2.default.TEXT)
        return function(t6) {
          if (!t6 || 0 === t6.length)
            return null;
          const e5 = t6.filter((t7) => !(t7 && t7.roles && t7.roles.length > 0) || t7.roles.every((t8) => t8.schemeIdUri !== m2.default.DASH_ROLE_SCHEME_ID || t8.value !== Vt.default.FORCED_SUBTITLE));
          return e5.length > 0 ? e5[0] : t6[0];
        }(e4);
      let n4;
      const r4 = d3.getCustomInitialTrackSelectionFunction();
      if (n4 = function(t6) {
        try {
          let e5;
          return e5 = function(t7) {
            try {
              const e6 = t7.filter((t8) => {
                const e7 = t8.type;
                return t8.bitrateList.some((t9) => {
                  const n5 = c3.getAbrBitrateParameter("maxBitrate", e7), a3 = c3.getAbrBitrateParameter("minBitrate", e7);
                  return !(n5 > -1 && t9.bandwidth > 1e3 * n5 || a3 > -1 && t9.bandwidth < 1e3 * a3);
                });
              });
              return e6.length > 0 ? e6 : t7;
            } catch (e6) {
              return a2.error(e6), t7;
            }
          }(t6), e5 = function(t7) {
            try {
              if (!i3.get().streaming.abr.limitBitrateByPortal)
                return t7;
              const { elementWidth: e6 } = p3.getVideoElementSize(), n5 = t7.filter((t8) => t8.type !== m2.default.VIDEO || t8.bitrateList.some((t9) => t9.width <= e6));
              return n5.length > 0 ? n5 : t7;
            } catch (e6) {
              return a2.error(e6), t7;
            }
          }(e5), e5;
        } catch (e5) {
          return a2.error(e5), t6;
        }
      }(e4), r4 && "function" == typeof r4)
        n4 = r4(n4);
      else if (u3[t5])
        n4 = function(t6, e5) {
          if (!t6 || 0 === t6.length || !e5 || !u3[e5])
            return t6;
          const n5 = u3[e5].bandwidth;
          if (!n5 || isNaN(n5))
            return t6;
          let a3 = { min: NaN, track: null };
          return t6.forEach((t7) => {
            t7.bitrateList.forEach((e6) => {
              const r5 = Math.abs(e6.bandwidth - n5);
              (isNaN(a3.min) || r5 < a3.min) && (a3.min = r5, a3.track = t7);
            });
          }), a3.track ? [a3.track] : t6;
        }(n4, t5);
      else if (i3.get().streaming.ignoreSelectionPriority || (a2.info("Trying to find track with highest selectionPriority"), n4 = function(t6) {
        return z2(t6);
      }(n4)), n4.length > 1 && i3.get().streaming.prioritizeRoleMain && (a2.info("Trying to find a main track"), n4 = k3(n4, D2, { role: { schemeIdUri: m2.default.DASH_ROLE_SCHEME_ID, value: Vt.default.MAIN } })), n4.length > 1) {
        a2.info("Selecting track based on selectionModeForInitialTrack");
        let t6 = i3.get().streaming.selectionModeForInitialTrack;
        switch (t6) {
          case m2.default.TRACK_SELECTION_MODE_HIGHEST_BITRATE:
            n4 = function(t7) {
              let e5 = L2(t7);
              return e5.length > 1 && (e5 = U2(e5)), e5;
            }(n4);
            break;
          case m2.default.TRACK_SELECTION_MODE_FIRST_TRACK:
            n4 = q2(n4);
            break;
          case m2.default.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY:
            n4 = B2(n4);
            break;
          case m2.default.TRACK_SELECTION_MODE_WIDEST_RANGE:
            n4 = function(t7) {
              let e5 = U2(t7);
              return e5.length > 1 && (e5 = L2(t7)), e5;
            }(n4);
            break;
          case m2.default.TRACK_SELECTION_MODE_LOWEST_STARTUP_DELAY:
            n4 = function(t7) {
              let e5 = t7.filter((t8) => !(!t8.segmentSequenceProperties || 0 === t8.segmentSequenceProperties.length) && t8.segmentSequenceProperties.some((t9) => 1 === t9.cadence && (0 === t9.sapType || 1 === t9.sapType)));
              return B2(e5.length > 0 ? e5 : t7);
            }(n4);
            break;
          default:
            a2.warn(`Track selection mode ${t6} is not supported. Falling back to TRACK_SELECTION_MODE_FIRST_TRACK`), n4 = q2(n4);
        }
      }
      return n4.length > 0 ? n4[0] : e4[0];
    }
    function q2(t5) {
      return t5[0];
    }
    function B2(t5) {
      let e4 = F2(t5);
      return e4.length > 1 && (e4 = L2(e4)), e4;
    }
    function G2(t5, e4) {
      return !(!t5 || !e4) && JSON.stringify({ schemeIdUri: t5.schemeIdUri, value: t5.value }) === JSON.stringify({ schemeIdUri: e4.schemeIdUri, value: e4.value });
    }
    return n3 = { addTrack: function(t5) {
      if (!t5)
        return;
      a2.info("addTrack with track.codec='" + t5.codec + "', track.type='" + t5.type + "'");
      const e4 = t5.type;
      if ((n4 = e4) !== m2.default.AUDIO && n4 !== m2.default.VIDEO && n4 !== m2.default.TEXT && n4 !== m2.default.IMAGE)
        return;
      var n4;
      let l4 = t5.streamInfo.id;
      r3[l4] || (r3[l4] = function() {
        const t6 = i3.get().streaming.saveLastMediaSettingsForCurrentStreamingSession;
        return { audio: { list: [], storeLastSettings: t6, current: null }, video: { list: [], storeLastSettings: t6, current: null }, text: { list: [], storeLastSettings: t6, current: null }, image: { list: [], storeLastSettings: t6, current: null } };
      }());
      const o3 = r3[l4][e4].list;
      for (let e5 = 0, n5 = o3.length; e5 < n5; ++e5)
        if (w3(o3[e5], t5))
          return;
      o3.push(t5);
    }, areTracksEqual: w3, clearDataForStream: function(t5) {
      r3[t5] && delete r3[t5];
    }, getCurrentTrackFor: T3, getInitialSettings: S3, getTracksFor: E3, getTracksWithHighestSelectionPriority: z2, getTracksWithHighestBitrate: L2, getTracksWithHighestEfficiency: F2, getTracksWithWidestRange: U2, initialize: function() {
      e3.on(h2.default.REPRESENTATION_SWITCH, y3, n3);
    }, isCurrentTrack: function(t5) {
      if (!t5)
        return false;
      const e4 = t5.type, n4 = t5.streamInfo.id;
      return r3[n4] && r3[n4][e4] && w3(r3[n4][e4].current, t5);
    }, matchSettings: function(t5, e4, n4 = false) {
      try {
        let a3 = false;
        if (t5.lang) {
          if (t5.lang instanceof RegExp)
            a3 = e4.lang.match(t5.lang);
          else if ("" !== e4.lang) {
            const n5 = gr(t5.lang);
            n5 && (a3 = ir(e4.lang, n5).length > 0);
          }
        } else
          a3 = true;
        const r4 = void 0 === t5.index || null === t5.index || e4.index === t5.index, i4 = !t5.viewpoint || !!e4.viewpoint.filter(function(e5) {
          return G2(e5, t5.viewpoint);
        })[0], l4 = !t5.role || !!e4.roles.filter(function(e5) {
          return G2(e5, t5.role);
        })[0];
        let o3 = !t5.accessibility || !!e4.accessibility.filter(function(e5) {
          return G2(e5, t5.accessibility);
        })[0], s3 = !t5.audioChannelConfiguration || !!e4.audioChannelConfiguration.filter(function(e5) {
          return G2(e5, t5.audioChannelConfiguration);
        })[0];
        return a3 && r4 && i4 && (l4 || e4.type === m2.default.AUDIO && n4) && o3 && s3;
      } catch (t6) {
        return false;
      }
    }, matchSettingsAccessibility: M2, matchSettingsAudioChannelConfig: P2, matchSettingsIndex: R2, matchSettingsLang: A2, matchSettingsRole: D2, matchSettingsViewPoint: C2, reset: I3, saveTextSettingsDisabled: function() {
      b3.setSavedMediaSettings(m2.default.TEXT, null);
    }, selectInitialTrack: j2, setConfig: function(t5) {
      t5 && (t5.domStorage && (b3 = t5.domStorage), t5.settings && (i3 = t5.settings), t5.customParametersModel && (d3 = t5.customParametersModel), t5.mediaPlayerModel && (c3 = t5.mediaPlayerModel), t5.videoModel && (p3 = t5.videoModel));
    }, setInitialMediaSettingsForType: function(t5, e4) {
      let n4 = s2[t5] || S3(t5);
      const r4 = E3(t5, e4.id);
      let l4 = [];
      n4 && 0 !== Object.keys(n4).length || (n4 = b3.getSavedMediaSettings(t5), n4 && delete n4.codec, v3(t5, n4)), r4 && 0 !== r4.length && (l4 = i3.get().streaming.includePreselectionsForInitialTrackSelection ? Array.from(r4) : r4.filter((t6) => !t6.isPreselection), n4 && (a2.info("Filtering " + l4.length + " " + t5 + " tracks based on settings"), l4 = k3(l4, N2, n4), l4 = k3(l4, A2, n4), l4 = k3(l4, R2, n4), l4 = k3(l4, C2, n4), t5 === m2.default.AUDIO && s2[t5] || (l4 = k3(l4, D2, n4)), l4 = k3(l4, M2, n4), l4 = k3(l4, P2, n4), l4 = k3(l4, O2, n4), a2.info("Filtering " + t5 + " tracks ended, found " + l4.length + " matching track(s).")), l4.length > 1 ? _3(j2(t5, l4)) : _3(l4[0]));
    }, setInitialSettings: v3, setTrack: _3 }, a2 = (0, o2.default)(t4).getInstance().getLogger(n3), I3(), n3;
  }
  Ci.__dashjs_factory_name = "MediaController";
  const Di = r2.default.getSingletonFactory(Ci);
  r2.default.updateSingletonFactory(Ci.__dashjs_factory_name, Di);
  var xi = Di;
  function Mi() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = (0, u2.default)(r3).getInstance();
    function l3(t5, n4) {
      return isNaN(t5) ? 0 : t5 > 0 ? (n4 && e3.warn("Supplied minimum playback rate is a positive value when it should be negative or 0. The supplied rate will not be applied and set to 0: 100% playback speed."), 0) : t5 < -0.5 ? (n4 && e3.warn("Supplied minimum playback rate is out of range and will be limited to -0.5: -50% playback speed."), -0.5) : t5;
    }
    function s2(t5, n4) {
      return isNaN(t5) ? 0 : t5 < 0 ? (n4 && e3.warn("Supplied maximum playback rate is a negative value when it should be negative or 0. The supplied rate will not be applied and set to 0: 100% playback speed."), 0) : t5 > 1 ? (n4 && e3.warn("Supplied maximum playback rate is out of range and will be limited to 1: 200% playback speed."), 1) : t5;
    }
    function d3() {
      const t5 = c3(), e4 = n3.getLiveDelay();
      return !isNaN(e4) && e4 > 0 ? Math.min(t5, e4) : t5;
    }
    function c3() {
      return i3.get().streaming.buffer.bufferTimeDefault > 0 ? i3.get().streaming.buffer.bufferTimeDefault : f3() ? 20 : 12;
    }
    function f3() {
      return null !== i3.get().streaming.buffer.fastSwitchEnabled ? i3.get().streaming.buffer.fastSwitchEnabled : !n3.getLowLatencyModeEnabled();
    }
    return t4 = { getAbrBitrateParameter: function(t5, e4) {
      try {
        const n4 = i3.get().streaming.abr[t5][e4];
        if (!isNaN(n4) && -1 !== n4)
          return n4;
        const r4 = a2.getServiceDescriptionSettings();
        return r4 && r4[t5] && !isNaN(r4[t5][e4]) ? r4[t5][e4] : -1;
      } catch (t6) {
        return -1;
      }
    }, getBufferTimeDefault: d3, getBufferTimeDefaultUnadjusted: c3, getCatchupMaxDrift: function() {
      if (!isNaN(i3.get().streaming.liveCatchup.maxDrift) && i3.get().streaming.liveCatchup.maxDrift >= 0)
        return i3.get().streaming.liveCatchup.maxDrift;
      const t5 = a2.getServiceDescriptionSettings();
      return t5 && t5.liveCatchup && !isNaN(t5.liveCatchup.maxDrift) && t5.liveCatchup.maxDrift >= 0 ? t5.liveCatchup.maxDrift : 12;
    }, getCatchupModeEnabled: function() {
      return null !== i3.get().streaming.liveCatchup.enabled ? i3.get().streaming.liveCatchup.enabled : n3.getInitialCatchupModeActivated();
    }, getCatchupPlaybackRates: function(t5) {
      const e4 = i3.get().streaming.liveCatchup.playbackRate;
      if (!isNaN(e4.min) || !isNaN(e4.max))
        return { min: l3(e4.min, t5), max: s2(e4.max, t5) };
      const n4 = a2.getServiceDescriptionSettings();
      if (n4 && n4.liveCatchup && (!isNaN(n4.liveCatchup.playbackRate.min) || !isNaN(n4.liveCatchup.playbackRate.max))) {
        const e5 = n4.liveCatchup.playbackRate;
        return { min: l3(e5.min, t5), max: s2(e5.max, t5) };
      }
      return { min: -0.5, max: 0.5 };
    }, getFastSwitchEnabled: f3, getInitialBufferLevel: function() {
      const t5 = i3.get().streaming.buffer.initialBufferLevel;
      return isNaN(t5) || t5 < 0 ? 0 : Math.min(d3(), t5);
    }, getRetryAttemptsForType: function(t5) {
      const e4 = isNaN(i3.get().streaming.retryAttempts.lowLatencyMultiplyFactor) ? 5 : i3.get().streaming.retryAttempts.lowLatencyMultiplyFactor;
      return n3.getLowLatencyModeEnabled() ? i3.get().streaming.retryAttempts[t5] * e4 : i3.get().streaming.retryAttempts[t5];
    }, getRetryIntervalsForType: function(t5) {
      const e4 = isNaN(i3.get().streaming.retryIntervals.lowLatencyReductionFactor) ? 10 : i3.get().streaming.retryIntervals.lowLatencyReductionFactor;
      return n3.getLowLatencyModeEnabled() ? i3.get().streaming.retryIntervals[t5] / e4 : i3.get().streaming.retryIntervals[t5];
    }, getScheduleTimeout: function() {
      return n3.getLowLatencyModeEnabled() ? i3.get().streaming.scheduling.lowLatencyTimeout : i3.get().streaming.scheduling.defaultTimeout;
    }, reset: function() {
    }, setConfig: function(t5) {
      t5.playbackController && (n3 = t5.playbackController), t5.serviceDescriptionController && (a2 = t5.serviceDescriptionController);
    } }, e3 = (0, o2.default)(r3).getInstance().getLogger(t4), t4;
  }
  Mi.__dashjs_factory_name = "MediaPlayerModel";
  var Pi = r2.default.getSingletonFactory(Mi);
  function Oi() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, w3, I3, k3, A2, R2, N2, C2, D2;
    function x2() {
      z2(), v3 = false, b3 = 0, _3 = 0, a2 = 0, T3 = false, E3 = false, i3 = false, w3 = NaN, p3 = NaN, C2 && (e3.off(g2.default.DATA_UPDATE_COMPLETED, Q2, s2), e3.off(g2.default.MANIFEST_UPDATED, Et2, s2), e3.off(g2.default.STREAMS_COMPOSED, Tt2, s2), e3.off(h2.default.PLAYBACK_ENDED, gt2, s2), e3.off(h2.default.STREAM_INITIALIZING, bt2, s2), e3.off(h2.default.REPRESENTATION_SWITCH, yt2, s2), e3.off(h2.default.BUFFER_LEVEL_STATE_CHANGED, J2, s2), $2(), C2.removeEventListener("canplay", X2), C2.removeEventListener("canplaythrough", Z2), C2.removeEventListener("ended", ct2), C2.removeEventListener("error", mt2), C2.removeEventListener("loadeddata", dt2), C2.removeEventListener("loadedmetadata", ut2), C2.removeEventListener("pause", at2), C2.removeEventListener("play", tt2), C2.removeEventListener("playing", nt2), C2.removeEventListener("progress", ot2), C2.removeEventListener("ratechange", st2), C2.removeEventListener("seeked", it2), C2.removeEventListener("seeking", rt2), C2.removeEventListener("stalled", pt2), C2.removeEventListener("timeupdate", lt2), C2.removeEventListener("volumechange", ft2), C2.removeEventListener("waiting", et2)), D2 = null, C2 = null, R2 = null, d3 = null;
    }
    function M2(t5 = null) {
      return parseFloat((P2(t5) - j2()).toFixed(5));
    }
    function P2(t5) {
      const e4 = t5 || R2;
      return e4.start + e4.duration;
    }
    function O2(t5 = false) {
      R2 && C2 && C2.getElement() ? (t5 && d3 && U2(j2()), C2.play()) : v3 = true;
    }
    function z2() {
      R2 && C2 && C2.pause();
    }
    function L2(t5, e4 = false, n4 = false, a3 = false) {
      R2 && C2 && C2.getElement() && t5 !== (isNaN(w3) ? C2.getTime() : w3) && (u3 = true === n4, u3 || (w3 = t5), y3.info("Requesting seek to time: " + t5 + (u3 ? " (internal)" : "")), d3 && a3 && U2(t5), C2.setCurrentTime(t5, e4));
    }
    function F2() {
      if (!R2 || !C2 || !d3)
        return;
      const t5 = A2 && A2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO, e4 = r3.getCurrentDVRInfo(t5);
      return e4 && e4.range ? e4.range.end : 0;
    }
    function U2(t5) {
      const e4 = new Date(N2.getClientReferenceTime()), a3 = n3.getRegularPeriods()[0], r4 = N2.calcPresentationTimeFromWallTime(e4, a3);
      b3 = r4 - t5;
    }
    function j2() {
      return R2 && C2 ? C2.getTime() : null;
    }
    function q2() {
      return R2 && C2 ? C2.isPaused() : null;
    }
    function B2() {
      return R2 && C2 ? C2.isSeeking() : null;
    }
    function G2() {
      return R2 && C2 ? C2.isStalled() : null;
    }
    function H2() {
      return R2 && C2 ? C2.getPlaybackRate() : null;
    }
    function Y2() {
      return R2 && C2 ? C2.getEnded() : null;
    }
    function V2() {
      return d3;
    }
    function K2(t5 = null) {
      if (q2() || !d3 || 0 === C2.getReadyState() || B2() || T3)
        return;
      t5 || (t5 = A2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO);
      const e4 = j2(), n4 = function(t6, e5) {
        const n5 = r3.getCurrentDVRInfo(e5), a3 = n5 ? n5.range : null;
        let i4;
        return a3 ? (i4 = t6 > a3.end ? Math.max(a3.end - b3, a3.start) : t6 > 0 && t6 + 0.25 < a3.start && Math.abs(t6 - a3.start) < 31536e4 ? E3 ? Math.max(a3.end - b3, a3.start) : a3.start : t6, i4) : NaN;
      }(e4, t5);
      !isNaN(n4) && n4 !== e4 && !B2() && (G2() || S3 || 1 === C2.getReadyState()) && (y3.debug(`UpdateCurrentTime: Seek to actual time: ${n4} from currentTime: ${e4}`), L2(n4, false, false));
    }
    function W2() {
      null === D2 && (D2 = setInterval(() => {
        !function() {
          if (e3.trigger(g2.default.WALLCLOCK_TIME_UPDATED, { isDynamic: d3, time: /* @__PURE__ */ new Date() }), V2()) {
            const t5 = Date.now();
            (isNaN(p3) || t5 > p3 + k3.get().streaming.liveUpdateTimeThresholdInMilliseconds) && (A2.addDVRMetric(), q2() ? function() {
              const t6 = Date.now();
              (!c3 || t6 > c3 + 500) && (c3 = t6, lt2());
            }() : K2(), p3 = t5);
          }
        }();
      }, k3.get().streaming.wallclockTimeUpdateInterval));
    }
    function $2() {
      clearInterval(D2), D2 = null;
    }
    function Q2(t5) {
      const e4 = t5.currentRepresentation, n4 = e4 ? e4.mediaInfo.streamInfo : null;
      null !== n4 && R2.id === n4.id && (R2 = n4);
    }
    function X2() {
      e3.trigger(g2.default.CAN_PLAY);
    }
    function Z2() {
      e3.trigger(g2.default.CAN_PLAY_THROUGH);
    }
    function J2(t5) {
      t5.streamId === A2.getActiveStreamInfo().id && (S3 = t5.state === l2.BUFFER_EMPTY, k3.get().streaming.buffer.setStallState && C2.setStallState(t5.mediaType, t5.state === l2.BUFFER_EMPTY));
    }
    function tt2() {
      y3.info("Native video element event: play"), K2(), W2(), e3.trigger(g2.default.PLAYBACK_STARTED, { startTime: j2() });
    }
    function et2() {
      y3.info("Native video element event: waiting"), e3.trigger(g2.default.PLAYBACK_WAITING, { playingTime: j2() });
    }
    function nt2() {
      y3.info("Native video element event: playing"), u3 = false, e3.trigger(g2.default.PLAYBACK_PLAYING, { playingTime: j2() });
    }
    function at2() {
      y3.info("Native video element event: pause"), e3.trigger(g2.default.PLAYBACK_PAUSED, { ended: Y2() });
    }
    function rt2() {
      if (u3)
        return;
      let t5 = j2();
      isNaN(w3) || w3 === t5 || (t5 = w3), w3 = NaN, y3.info("Seeking to: " + t5), W2(), e3.trigger(g2.default.PLAYBACK_SEEKING, { seekTime: t5, streamId: R2.id });
    }
    function it2() {
      y3.info("Native video element event: seeked"), u3 = false, e3.trigger(g2.default.PLAYBACK_SEEKED, { streamId: R2.id });
    }
    function lt2() {
      R2 && e3.trigger(g2.default.PLAYBACK_TIME_UPDATED, { timeToEnd: M2(), time: j2(), streamId: R2.id });
    }
    function ot2() {
      e3.trigger(g2.default.PLAYBACK_PROGRESS, { streamId: R2.id });
    }
    function st2() {
      const t5 = H2();
      y3.info("Native video element event: ratechange: ", t5), e3.trigger(g2.default.PLAYBACK_RATE_CHANGED, { playbackRate: t5 });
    }
    function ut2() {
      y3.info("Native video element event: loadedmetadata"), e3.trigger(g2.default.PLAYBACK_METADATA_LOADED), W2();
    }
    function dt2() {
      y3.info("Native video element event: loadeddata"), e3.trigger(g2.default.PLAYBACK_LOADED_DATA);
    }
    function ct2() {
      y3.info("Native video element event: ended"), z2(), $2();
      const t5 = A2 ? A2.getActiveStreamInfo() : null;
      t5 && e3.trigger(g2.default.PLAYBACK_ENDED, { isLast: t5.isLast });
    }
    function ft2() {
      e3.trigger(g2.default.PLAYBACK_VOLUME_CHANGED);
    }
    function gt2(t5) {
      if (D2 && t5.isLast) {
        y3.info("onPlaybackEnded -- PLAYBACK_ENDED but native video element didn't fire ended");
        const e4 = t5.seekTime ? t5.seekTime : P2();
        C2.setCurrentTime(e4), z2(), $2();
      }
    }
    function mt2(t5) {
      const n4 = t5.target || t5.srcElement;
      e3.trigger(g2.default.PLAYBACK_ERROR, { error: n4.error });
    }
    function ht2() {
      d3 = false;
    }
    function pt2(t5) {
      e3.trigger(g2.default.PLAYBACK_STALLED, { e: t5 });
    }
    function bt2(t5) {
      var e4;
      (e4 = t5.mediaInfo) && e4.supplementalProperties && e4.supplementalProperties.find((t6) => t6.schemeIdUri === m2.default.SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME) && (y3.debug("Low Latency critical SupplementalProperty set: Enabling low Latency"), E3 = true);
    }
    function yt2(t5) {
      const e4 = A2.getActiveStreamInfo();
      t5 && e4 && t5.currentRepresentation && t5.streamId && t5.streamId === e4.id && t5.mediaType && (t5.mediaType === m2.default.VIDEO || t5.mediaType === m2.default.AUDIO) && (E3 = false === t5.currentRepresentation.availabilityTimeComplete, E3 && !i3 && (i3 = true));
    }
    function Et2() {
      T3 = true;
    }
    function Tt2() {
      T3 = false;
    }
    return s2 = { computeAndSetLiveDelay: function(t5, e4) {
      let r4, i4, l3;
      const o3 = !isNaN(t5) && isFinite(t5) ? t5 : NaN;
      let s3 = n3.getSuggestedPresentationDelay();
      const u4 = I3.getServiceDescriptionSettings();
      return r4 = isNaN(k3.get().streaming.delay.liveDelay) ? null === k3.get().streaming.delay.liveDelayFragmentCount || isNaN(k3.get().streaming.delay.liveDelayFragmentCount) || isNaN(o3) ? u4 && !isNaN(u4.liveDelay) && u4.liveDelay > 0 ? u4.liveDelay : true === k3.get().streaming.delay.useSuggestedPresentationDelay && null !== s3 && !isNaN(s3) && s3 > 0 ? s3 : isNaN(o3) ? e4 && !isNaN(e4.minBufferTime) ? 4 * e4.minBufferTime : 4 * R2.manifestInfo.minBufferTime : 4 * o3 : o3 * k3.get().streaming.delay.liveDelayFragmentCount : k3.get().streaming.delay.liveDelay, l3 = n3.getAvailabilityStartTime(), null !== l3 && (a2 = l3), i4 = e4 && e4.dvrWindowSize > 0 ? Math.min(r4, e4.dvrWindowSize) : r4, b3 = i4, _3 = i4, i4;
    }, getAvailabilityStartTime: function() {
      return a2;
    }, getBufferLevel: function(t5 = null) {
      let e4 = null;
      return A2.getActiveStreamProcessors().forEach((n4) => {
        if (!t5 || 0 === t5.length || -1 === t5.indexOf(n4.getType())) {
          const t6 = n4.getBufferLevel();
          e4 = null === e4 ? t6 : Math.min(e4, t6);
        }
      }), e4;
    }, getCurrentLiveLatency: function() {
      if (!d3 || isNaN(a2))
        return NaN;
      let t5 = j2();
      if (isNaN(t5) || 0 === t5)
        return 0;
      const e4 = (/* @__PURE__ */ new Date()).getTime() + 1e3 * N2.getClientTimeOffset();
      return Math.max(((e4 - a2 - 1e3 * t5) / 1e3).toFixed(3), 0);
    }, getEnded: Y2, getInitialCatchupModeActivated: function() {
      return i3;
    }, getIsDynamic: V2, getIsManifestUpdateInProgress: function() {
      return T3;
    }, getLiveDelay: function() {
      return b3;
    }, getLowLatencyModeEnabled: function() {
      return E3;
    }, getOriginalLiveDelay: function() {
      return _3;
    }, getPlaybackRate: H2, getPlaybackStalled: function() {
      return S3;
    }, getPlayedRanges: function() {
      return R2 && C2 ? C2.getPlayedRanges() : null;
    }, getStreamController: function() {
      return A2;
    }, getStreamEndTime: P2, getTime: j2, getTimeToStreamEnd: M2, initialize: function(t5, n4) {
      R2 = t5, true !== n4 && (C2.addEventListener("canplay", X2), C2.addEventListener("canplaythrough", Z2), C2.addEventListener("ended", ct2), C2.addEventListener("error", mt2), C2.addEventListener("loadeddata", dt2), C2.addEventListener("loadedmetadata", ut2), C2.addEventListener("pause", at2), C2.addEventListener("play", tt2), C2.addEventListener("playing", nt2), C2.addEventListener("progress", ot2), C2.addEventListener("ratechange", st2), C2.addEventListener("seeked", it2), C2.addEventListener("seeking", rt2), C2.addEventListener("stalled", pt2), C2.addEventListener("timeupdate", lt2), C2.addEventListener("volumechange", ft2), C2.addEventListener("waiting", et2), d3 = R2.manifestInfo.isDynamic, S3 = false, u3 = false, e3.on(g2.default.DATA_UPDATE_COMPLETED, Q2, s2), e3.on(g2.default.MANIFEST_UPDATED, Et2, s2), e3.on(g2.default.STREAMS_COMPOSED, Tt2, s2), e3.on(h2.default.PLAYBACK_ENDED, gt2, s2, { priority: f2.default.EVENT_PRIORITY_HIGH }), e3.on(h2.default.STREAM_INITIALIZING, bt2, s2), e3.on(h2.default.REPRESENTATION_SWITCH, yt2, s2), e3.on(h2.default.BUFFER_LEVEL_STATE_CHANGED, J2, s2), e3.on(h2.default.DYNAMIC_TO_STATIC, ht2, s2), v3 && (v3 = false, O2()));
    }, isPaused: q2, isProgressing: function(t5 = 500) {
      return new Promise((n4) => {
        let a3 = -1, r4 = null;
        const i4 = (t6) => {
          clearTimeout(r4), r4 = null, e3.off(h2.default.PLAYBACK_TIME_UPDATED, l3, s2), n4(t6);
        }, l3 = (t6) => {
          a3 < 0 ? a3 = t6.time : t6.time > a3 + 0.1 && i4(true);
        };
        r4 = setTimeout(() => {
          i4(false);
        }, t5), e3.on(h2.default.PLAYBACK_TIME_UPDATED, l3, s2);
      });
    }, isSeeking: B2, isStalled: G2, pause: z2, play: O2, reset: x2, seek: L2, seekToCurrentLive: function(t5 = false, e4 = false, n4 = false) {
      const a3 = F2();
      0 !== a3 && L2(a3 - b3, t5, e4, n4);
    }, seekToOriginalLive: function(t5 = false, e4 = false, n4 = false) {
      const a3 = F2();
      0 !== a3 && (b3 = _3, L2(a3 - b3, t5, e4, n4));
    }, setConfig: function(t5) {
      t5 && (t5.streamController && (A2 = t5.streamController), t5.serviceDescriptionController && (I3 = t5.serviceDescriptionController), t5.dashMetrics && (r3 = t5.dashMetrics), t5.adapter && (n3 = t5.adapter), t5.videoModel && (C2 = t5.videoModel), t5.timelineConverter && (N2 = t5.timelineConverter), t5.settings && (k3 = t5.settings));
    }, updateCurrentTime: K2 }, y3 = (0, o2.default)(t4).getInstance().getLogger(s2), x2(), s2;
  }
  Oi.__dashjs_factory_name = "PlaybackController";
  var zi = r2.default.getSingletonFactory(Oi), Li = class {
    constructor() {
      this.availabilityEndTime = NaN, this.availabilityStartTime = NaN, this.duration = NaN, this.index = null, this.indexRange = null, this.isPartialSegment = false, this.media = null, this.mediaRange = null, this.mediaUrl = null, this.mediaStartTime = NaN, this.presentationStartTime = NaN, this.replacementNumber = NaN, this.replacementTime = null, this.representation = null, this.wallStartTime = NaN;
    }
    assignAttributes(t4) {
      for (let e3 in t4)
        t4.hasOwnProperty(e3) && this.hasOwnProperty(e3) && (this[e3] = t4[e3]);
    }
  }, Fi = class extends Li {
    constructor() {
      super();
    }
  };
  function Ui() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3;
    function g3(t5, e4, a3, i4) {
      let l4 = null;
      const s3 = t5 ? f3.resolve(t5.path) : null, u4 = i4 || { init: true, url: s3 ? s3.url : void 0, range: { start: 0, end: 1500 }, searching: false, bytesLoaded: 0, bytesToLoad: 1500, mediaType: e4, representation: t5 };
      n3.debug("Start searching for initialization.");
      const d4 = p3(u4);
      o3.load({ request: d4, success: function(n4) {
        if (u4.bytesLoaded = u4.range.end, l4 = r3.findInitRange(n4), !l4)
          return u4.range.end = u4.bytesLoaded + u4.bytesToLoad, g3(t5, e4, a3, u4);
        t5.range = l4, a3(t5);
      }, error: function() {
        a3(t5);
      } }), n3.debug("Perform init search: " + u4.url);
    }
    function m3(t5, e4, a3, i4, l4, s3) {
      if (a3 && (void 0 === a3.start || void 0 === a3.end)) {
        const t6 = a3 ? a3.toString().split("-") : null;
        a3 = t6 ? { start: parseFloat(t6[0]), end: parseFloat(t6[1]) } : null;
      }
      l4 = l4 || h3;
      let u4 = null, d4 = null;
      const c4 = !!a3, g4 = t5 ? f3.resolve(t5.path) : null, b3 = { init: false, url: g4 ? g4.url : void 0, range: c4 ? a3 : { start: 0, end: 1500 }, searching: !c4, bytesLoaded: s3 ? s3.bytesLoaded : 0, bytesToLoad: 1500, mediaType: e4, representation: t5 }, y3 = p3(b3);
      o3.load({ request: y3, success: function(a4) {
        const o4 = b3.bytesToLoad, s4 = a4.byteLength;
        if (b3.bytesLoaded = b3.range.end - b3.range.start, u4 = r3.parse(a4), d4 = u4.getBox("sidx"), d4 && d4.isComplete) {
          const a5 = d4.references;
          let r4, o5;
          if (null != a5 && a5.length > 0 && (r4 = 1 === a5[0].reference_type), r4) {
            let r5, o6, s5, u5, c5;
            n3.debug("Initiate multiple SIDX load."), b3.range.end = b3.range.start + d4.size;
            let f4 = [], g5 = 0, h4 = (d4.offset || b3.range.start) + d4.size;
            const p4 = function(e5) {
              e5 ? (f4 = f4.concat(e5), g5++, g5 >= o6 && (f4.sort(function(t6, e6) {
                return t6.startTime - e6.startTime < 0 ? -1 : 0;
              }), l4(f4, t5, i4))) : l4(null, t5, i4);
            };
            for (r5 = 0, o6 = a5.length; r5 < o6; r5++)
              s5 = h4, u5 = h4 + a5[r5].referenced_size - 1, h4 += a5[r5].referenced_size, c5 = { start: s5, end: u5 }, m3(t5, e4, c5, i4, p4, b3);
          } else
            n3.debug("Parsing segments from SIDX. representation " + e4 + " - id: " + t5.id + " for range : " + b3.range.start + " - " + b3.range.end), o5 = function(t6, e5) {
              const n4 = t6.references, a6 = n4.length, r5 = t6.timescale;
              let i5 = t6.earliest_presentation_time, l5 = e5.range.start + t6.offset + t6.first_offset + t6.size;
              const o6 = [];
              let s5, u5, d5, c5;
              for (let t7 = 0; t7 < a6; t7++)
                d5 = n4[t7].subsegment_duration, c5 = n4[t7].referenced_size, s5 = new Fi(), s5.duration = d5, s5.startTime = i5, s5.timescale = r5, u5 = l5 + c5 - 1, s5.mediaRange = l5 + "-" + u5, o6.push(s5), i5 += d5, l5 += c5;
              return o6;
            }(d4, b3), l4(o5, t5, i4);
        } else {
          if (d4)
            b3.range.start = d4.offset || b3.range.start, b3.range.end = b3.range.start + (d4.size || o4);
          else {
            if (s4 < b3.bytesLoaded)
              return void l4(null, t5, i4);
            {
              const t6 = u4.getLastBox();
              t6 && t6.size ? (b3.range.start = t6.offset + t6.size, b3.range.end = b3.range.start + o4) : b3.range.end += o4;
            }
          }
          m3(t5, e4, b3.range, i4, null, b3);
        }
      }, error: function() {
        l4(null, t5, i4);
      } }), n3.debug(`Perform SIDX load for type ${e4} : ${b3.url} with range ${b3.range.start} - ${b3.range.end}`);
    }
    function h3(t5, e4, n4) {
      n4({ segments: t5, representation: e4, error: t5 ? void 0 : new Ot.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
    }
    function p3(t5) {
      if (!t5.url)
        return;
      const e4 = new Q();
      return e4.setInfo(t5), e4;
    }
    return e3 = { setConfig: function(t5) {
      t5.baseURLController && (f3 = t5.baseURLController), t5.dashMetrics && (i3 = t5.dashMetrics), t5.mediaPlayerModel && (l3 = t5.mediaPlayerModel), t5.errHandler && (a2 = t5.errHandler), t5.boxParser && (r3 = t5.boxParser), t5.debug && (n3 = t5.debug.getLogger(e3)), t5.errors && (s2 = t5.errors), t5.urlUtils && (c3 = t5.urlUtils), t5.constants && (u3 = t5.constants), t5.dashConstants && (d3 = t5.dashConstants);
    }, initialize: function() {
      o3 = oa(t4).create({ errHandler: a2, dashMetrics: i3, mediaPlayerModel: l3, boxParser: r3, errors: s2, urlUtils: c3, constants: u3, dashConstants: d3 });
    }, loadInitialization: function(t5, e4) {
      return new Promise((n4) => {
        g3(t5, e4, n4);
      });
    }, loadSegments: function(t5, e4, n4) {
      return new Promise((a3) => {
        m3(t5, e4, n4, a3);
      });
    }, reset: function() {
      o3 && (o3.abort(), o3 = null);
    } }, e3;
  }
  Ui.__dashjs_factory_name = "SegmentBaseLoader";
  var ji = r2.default.getSingletonFactory(Ui);
  function qi(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = new DataView(t4.data), a2 = 0;
    function r3(t5, e4) {
      let r4, i4, l3 = true, o3 = 0;
      if (void 0 === e4 && (e4 = false), t5.tag > 16777215 ? (n3.getUint32(a2) !== t5.tag && (l3 = false), o3 = 4) : t5.tag > 65535 ? (r4 = n3.getUint16(a2), i4 = n3.getUint8(a2 + 2), 256 * r4 + i4 !== t5.tag && (l3 = false), o3 = 3) : t5.tag > 255 ? (n3.getUint16(a2) !== t5.tag && (l3 = false), o3 = 2) : (n3.getUint8(a2) !== t5.tag && (l3 = false), o3 = 1), !l3 && t5.required && !e4)
        throw new Error("required tag not found");
      return l3 && (a2 += o3), l3;
    }
    function i3(t5) {
      let e4 = 1, r4 = 128, i4 = -1, l3 = 0, o3 = n3.getUint8(a2), s2 = 0;
      for (s2 = 0; s2 < 8; s2 += 1) {
        if ((o3 & r4) === r4) {
          l3 = void 0 === t5 ? o3 & ~r4 : o3, i4 = s2;
          break;
        }
        r4 >>= 1;
      }
      for (s2 = 0; s2 < i4; s2 += 1, e4 += 1)
        l3 = l3 << 8 | 255 & n3.getUint8(a2 + e4);
      return a2 += e4, l3;
    }
    return e3 = { getPos: function() {
      return a2;
    }, setPos: function(t5) {
      a2 = t5;
    }, consumeTag: r3, consumeTagAndSize: function(t5, e4) {
      let n4 = r3(t5, e4);
      return n4 && i3(), n4;
    }, parseTag: function(t5) {
      let n4;
      return r3(t5), n4 = i3(), e3[t5.parse](n4);
    }, skipOverElement: function(t5, e4) {
      let n4, l3 = r3(t5, e4);
      return l3 && (n4 = i3(), a2 += n4), l3;
    }, getMatroskaCodedNum: i3, getMatroskaFloat: function(t5) {
      let e4;
      switch (t5) {
        case 4:
          e4 = n3.getFloat32(a2), a2 += 4;
          break;
        case 8:
          e4 = n3.getFloat64(a2), a2 += 8;
      }
      return e4;
    }, getMatroskaUint: function(t5) {
      if (t5 > 4)
        return function(t6) {
          const e5 = Math.floor(Number.MAX_SAFE_INTEGER / 256);
          let r4 = 0;
          for (let i4 = 0; i4 < t6; i4 += 1) {
            if (r4 > e5)
              throw new Error("Value exceeds safe integer limit");
            r4 *= 256;
            const t7 = n3.getUint8(a2 + i4);
            if (r4 > Number.MAX_SAFE_INTEGER - t7)
              throw new Error("Value exceeds safe integer limit");
            r4 += t7;
          }
          return a2 += t6, r4;
        }(t5);
      let e4 = 0;
      for (let r4 = 0; r4 < t5; r4 += 1)
        e4 <<= 8, e4 |= 255 & n3.getUint8(a2 + r4);
      return a2 += t5, e4 >>> 0;
    }, moreData: function() {
      return a2 < n3.byteLength;
    } }, e3;
  }
  qi.__dashjs_factory_name = "EBMLParser";
  var Bi = r2.default.getClassFactory(qi);
  function Gi() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, o3, s2, u3;
    function d3(t5) {
      const e4 = new Q();
      return e4.setInfo(t5), e4;
    }
    return e3 = { setConfig: function(t5) {
      if (!(t5.baseURLController && t5.dashMetrics && t5.mediaPlayerModel && t5.errHandler))
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
      u3 = t5.baseURLController, i3 = t5.dashMetrics, l3 = t5.mediaPlayerModel, r3 = t5.errHandler, s2 = t5.errors, n3 = t5.debug.getLogger(e3);
    }, initialize: function() {
      o3 = oa(t4).create({ errHandler: r3, dashMetrics: i3, mediaPlayerModel: l3, errors: s2 });
    }, loadInitialization: function(t5, e4) {
      return new Promise((a3) => {
        let r4 = null, i4 = t5 ? u3.resolve(t5.path) : null, l4 = t5 ? t5.range.split("-") : null, s3 = { range: { start: l4 ? parseFloat(l4[0]) : null, end: l4 ? parseFloat(l4[1]) : null }, request: r4, url: i4 ? i4.url : void 0, init: true, mediaType: e4 };
        n3.info("Start loading initialization."), r4 = d3(s3), o3.load({ request: r4, success: function() {
          a3(t5);
        }, error: function() {
          a3(t5);
        } }), n3.debug("Perform init load: " + s3.url);
      });
    }, loadSegments: function(e4, r4, i4) {
      return new Promise((l4) => {
        let c3 = null, f3 = e4 ? u3.resolve(e4.path) : null, g3 = f3 ? f3.url : void 0;
        c3 = d3({ bytesLoaded: 0, bytesToLoad: 8192, range: { start: 0, end: 8192 }, request: c3, url: g3, init: false, mediaType: r4, representation: e4 }), n3.debug("Parsing ebml header"), o3.load({ request: c3, success: function(r5) {
          !function(e5, r6, i5, l5) {
            if (!e5 || 0 === e5.byteLength)
              return void l5(null);
            let s3, u4, c4, f4, g4 = Bi(t4).create({ data: e5 }), m3 = i5 ? i5.split("-") : null, h3 = null, p3 = { url: r6, range: { start: m3 ? parseFloat(m3[0]) : null, end: m3 ? parseFloat(m3[1]) : null }, request: h3 };
            for (n3.debug("Parse EBML header: " + p3.url), g4.skipOverElement(a2.EBML), g4.consumeTag(a2.Segment), c4 = g4.getMatroskaCodedNum(), c4 += g4.getPos(), f4 = g4.getPos(); g4.moreData() && !g4.consumeTagAndSize(a2.Segment.Info, true); )
              if (!(g4.skipOverElement(a2.Segment.SeekHead, true) || g4.skipOverElement(a2.Segment.Tracks, true) || g4.skipOverElement(a2.Segment.Cues, true) || g4.skipOverElement(a2.Void, true)))
                throw new Error("no valid top level element found");
            for (; void 0 === s3; ) {
              let t5 = g4.getMatroskaCodedNum(true), e6 = g4.getMatroskaCodedNum();
              t5 === a2.Segment.Info.Duration.tag ? s3 = g4[a2.Segment.Info.Duration.parse](e6) : g4.setPos(g4.getPos() + e6);
            }
            h3 = d3(p3), o3.load({ request: h3, success: function(e6) {
              u4 = function(e7, r7, i6, l6) {
                let o4, s4, u5, d4, c5, f5, g5, m4;
                for (s4 = function(e8) {
                  let n4, r8, i7 = [], l7 = Bi(t4).create({ data: e8 });
                  for (l7.consumeTagAndSize(a2.Segment.Cues); l7.moreData() && l7.consumeTagAndSize(a2.Segment.Cues.CuePoint, true); ) {
                    for (n4 = {}, n4.CueTime = l7.parseTag(a2.Segment.Cues.CuePoint.CueTime), n4.CueTracks = []; l7.moreData() && l7.consumeTag(a2.Segment.Cues.CuePoint.CueTrackPositions, true); ) {
                      const t5 = l7.getMatroskaCodedNum(), e9 = l7.getPos();
                      if (r8 = {}, r8.Track = l7.parseTag(a2.Segment.Cues.CuePoint.CueTrackPositions.CueTrack), 0 === r8.Track)
                        throw new Error("Cue track cannot be 0");
                      r8.ClusterPosition = l7.parseTag(a2.Segment.Cues.CuePoint.CueTrackPositions.CueClusterPosition), n4.CueTracks.push(r8), l7.setPos(e9 + t5);
                    }
                    if (0 === n4.CueTracks.length)
                      throw new Error("Mandatory cuetrack not found");
                    i7.push(n4);
                  }
                  if (0 === i7.length)
                    throw new Error("mandatory cuepoint not found");
                  return i7;
                }(e7), u5 = [], c5 = 0, f5 = s4.length; c5 < f5; c5 += 1)
                  d4 = new Fi(), o4 = 0, o4 = c5 < s4.length - 1 ? s4[c5 + 1].CueTime - s4[c5].CueTime : l6 - s4[c5].CueTime, d4.duration = o4, d4.startTime = s4[c5].CueTime, d4.timescale = 1e3, g5 = s4[c5].CueTracks[0].ClusterPosition + r7, m4 = c5 < s4.length - 1 ? s4[c5 + 1].CueTracks[0].ClusterPosition + r7 - 1 : i6 - 1, d4.mediaRange = g5 + "-" + m4, u5.push(d4);
                return n3.debug("Parsed cues: " + u5.length + " cues."), u5;
              }(e6, f4, c4, s3), l5(u4);
            }, error: function() {
              n3.error("Download Error: Cues " + p3.url), l5(null);
            } }), n3.debug("Perform cues load: " + p3.url + " bytes=" + p3.range.start + "-" + p3.range.end);
          }(r5, g3, i4, function(t5) {
            l4({ segments: t5, representation: e4, error: t5 ? void 0 : new Ot.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
          });
        }, error: function() {
          l4({ representation: e4, error: new Ot.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
        } });
      });
    }, reset: function() {
      o3 && (o3.abort(), o3 = null);
    } }, a2 = { EBML: { tag: 440786851, required: true }, Segment: { tag: 408125543, required: true, SeekHead: { tag: 290298740, required: true }, Info: { tag: 357149030, required: true, TimecodeScale: { tag: 2807729, required: true, parse: "getMatroskaUint" }, Duration: { tag: 17545, required: true, parse: "getMatroskaFloat" } }, Tracks: { tag: 374648427, required: true }, Cues: { tag: 475249515, required: true, CuePoint: { tag: 187, required: true, CueTime: { tag: 179, required: true, parse: "getMatroskaUint" }, CueTrackPositions: { tag: 183, required: true, CueTrack: { tag: 247, required: true, parse: "getMatroskaUint" }, CueClusterPosition: { tag: 241, required: true, parse: "getMatroskaUint" } } } } }, Void: { tag: 236, required: true } }, e3;
  }
  Gi.__dashjs_factory_name = "WebmSegmentBaseLoader";
  var Hi = r2.default.getSingletonFactory(Gi);
  function Yi(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a2 = t4.events, r3 = t4.dashMetrics, i3 = t4.mediaPlayerModel, l3 = t4.errHandler, o3 = t4.baseURLController, s2 = t4.debug, u3 = t4.boxParser, d3 = t4.errors;
    let c3, f3, g3;
    function m3(t5) {
      return "webm" === (t5 ? t5.split("/")[1] : "").toLowerCase();
    }
    return c3 = { initialize: function() {
      f3.initialize(), g3.initialize();
    }, getSegmentBaseInitSegment: function(t5) {
      return m3(t5.representation.mimeType) ? g3.loadInitialization(t5.representation, t5.mediaType) : f3.loadInitialization(t5.representation, t5.mediaType);
    }, getSegmentList: function(t5) {
      return m3(t5.mimeType) ? g3.loadSegments(t5.representation, t5.mediaType, t5.representation ? t5.representation.indexRange : null) : f3.loadSegments(t5.representation, t5.mediaType, t5.representation ? t5.representation.indexRange : null);
    }, reset: function() {
      f3.reset(), g3.reset();
    } }, f3 = ji(e3).getInstance(), g3 = Hi(e3).getInstance(), f3.setConfig({ baseURLController: o3, dashMetrics: r3, mediaPlayerModel: i3, errHandler: l3, eventBus: n3, events: a2, errors: d3, debug: s2, boxParser: u3 }), g3.setConfig({ baseURLController: o3, dashMetrics: r3, mediaPlayerModel: i3, errHandler: l3, eventBus: n3, events: a2, errors: d3, debug: s2 }), c3;
  }
  Yi.__dashjs_factory_name = "SegmentBaseController";
  var Vi = r2.default.getSingletonFactory(Yi);
  const Ki = [m2.default.SERVICE_DESCRIPTION_DVB_LL_SCHEME], Wi = "video", $i = "audio";
  function Qi() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3;
    function l3() {
      n3 = { liveDelay: NaN, liveCatchup: { maxDrift: NaN, playbackRate: { min: NaN, max: NaN } }, minBitrate: {}, maxBitrate: {}, initialBitrate: {}, contentSteering: null, clientDataReporting: null }, a2 = [];
    }
    function s2(t5, e4, a3) {
      try {
        n3[t5][e4] = a3 / 1e3;
      } catch (t6) {
        r3.error(t6);
      }
    }
    return e3 = { getServiceDescriptionSettings: function() {
      return n3;
    }, getProducerReferenceTimeOffsets: function() {
      return a2;
    }, calculateProducerReferenceTimeOffsets: function(t5) {
      try {
        let e4 = [];
        if (t5 && t5.length > 0) {
          const n4 = [m2.default.VIDEO, m2.default.AUDIO, m2.default.TEXT], a3 = i3.getAvailabilityStartTime() / 1e3;
          t5.forEach((t6) => {
            const r4 = n4.reduce((e5, n5) => e5.concat(i3.getAllMediaInfoForType(t6, n5)), []).reduce((e5, n5) => (i3.getProducerReferenceTimes(t6, n5).forEach((r5) => {
              const l4 = i3.getVoRepresentations(n5);
              if (l4 && l4.length > 0 && l4[0].adaptation && l4[0].segmentInfoType === Vt.default.SEGMENT_TEMPLATE) {
                const n6 = l4[0], i4 = new Date(r5[Vt.default.WALL_CLOCK_TIME]).getTime() / 1e3 - (r5[Vt.default.PRESENTATION_TIME] / n6[Vt.default.TIMESCALE] - n6[Vt.default.PRESENTATION_TIME_OFFSET] + t6.start), o3 = a3 - i4;
                e5.push({ id: r5[Vt.default.ID], to: o3 });
              }
            }), e5), []);
            e4 = e4.concat(r4);
          });
        }
        a2 = e4;
      } catch (t6) {
        r3.error(t6), a2 = [];
      }
    }, applyServiceDescription: function(t5) {
      if (!t5 || !t5.serviceDescriptions)
        return;
      const e4 = t5.serviceDescriptions.filter((t6) => Ki.includes(t6.schemeIdUri)), i4 = t5.serviceDescriptions.filter((t6) => null == t6.schemeIdUri);
      let l4 = e4.length > 0 ? e4[e4.length - 1] : i4[i4.length - 1];
      l4 && (l4.latency && l4.latency.target > 0 && function(t6) {
        let e5;
        if (t6.schemeIdUri, m2.default.SERVICE_DESCRIPTION_DVB_LL_SCHEME, e5 = function(t7) {
          return { liveDelay: t7.latency.target / 1e3, maxDrift: !isNaN(t7.latency.max) && t7.latency.max > t7.latency.target ? (t7.latency.max - t7.latency.target + 500) / 1e3 : NaN, referenceId: t7.latency.referenceId || NaN };
        }(t6), a2.length > 0) {
          let { to: t7, id: i5 } = function(t8) {
            let e6, n4 = 0, r4 = a2.filter((e7) => e7.id === t8.referenceId);
            return 0 === r4.length ? (n4 = a2.length > 0 ? a2[0].to : 0, e6 = a2[0].id || NaN) : (n4 = r4[0].to || 0, e6 = r4[0].id || NaN), { to: n4, id: e6 };
          }(e5);
          n3.liveDelay = e5.liveDelay - t7, n3.liveCatchup.maxDrift = e5.maxDrift, r3.debug(`
                Found latency properties coming from service description. Applied time offset of ${t7} from ProducerReferenceTime element with id ${i5}.
                Live Delay: ${e5.liveDelay - t7}, Live catchup max drift: ${e5.maxDrift}
            `);
        } else
          n3.liveDelay = e5.liveDelay, n3.liveCatchup.maxDrift = e5.maxDrift, r3.debug(`Found latency properties coming from service description: Live Delay: ${e5.liveDelay}, Live catchup max drift: ${e5.maxDrift}`);
      }(l4), l4.playbackRate && function(t6) {
        const e5 = t6.playbackRate.min ? Math.round(1e3 * (t6.playbackRate.min - 1)) / 1e3 : NaN, a3 = t6.playbackRate.max ? Math.round(1e3 * (t6.playbackRate.max - 1)) / 1e3 : NaN;
        n3.liveCatchup.playbackRate.min = e5, n3.liveCatchup.playbackRate.max = a3, r3.debug(`Found latency properties coming from service description: Live catchup min playback rate: ${e5}`), r3.debug(`Found latency properties coming from service description: Live catchup max playback rate: ${a3}`);
      }(l4), l4.operatingQuality, l4.operatingBandwidth && function(t6) {
        if (!t6 || !t6.operatingBandwidth || !t6.operatingBandwidth.mediaType || "all" === t6.operatingBandwidth.mediaType)
          return;
        const e5 = {};
        e5.minBandwidth = t6.operatingBandwidth.min, e5.maxBandwidth = t6.operatingBandwidth.max, e5.targetBandwidth = t6.operatingBandwidth.target;
        const n4 = [];
        t6.operatingBandwidth.mediaType === Wi || t6.operatingBandwidth.mediaType === $i ? n4.push(t6.operatingBandwidth.mediaType) : "any" === t6.operatingBandwidth.mediaType && (n4.push($i), n4.push(Wi)), n4.forEach((t7) => {
          isNaN(e5.minBandwidth) || s2("minBitrate", t7, e5.minBandwidth), isNaN(e5.maxBandwidth) || s2("maxBitrate", t7, e5.maxBandwidth), isNaN(e5.targetBandwidth) || s2("initialBitrate", t7, e5.targetBandwidth);
        });
      }(l4), l4.contentSteering && function(t6) {
        n3.contentSteering = t6.contentSteering;
      }(l4), l4.clientDataReporting && function(t6) {
        n3.clientDataReporting = t6.clientDataReporting;
      }(l4));
    }, reset: function() {
      l3();
    }, setConfig: function(t5) {
      t5 && t5.adapter && (i3 = t5.adapter);
    } }, r3 = (0, o2.default)(t4).getInstance().getLogger(e3), l3(), e3;
  }
  Qi.__dashjs_factory_name = "ServiceDescriptionController";
  var Xi = r2.default.getSingletonFactory(Qi);
  class Zi {
    constructor(t4) {
      this._ranges = [];
      for (const e3 of t4) {
        const t5 = this._ranges, n3 = { start: e3.start, end: e3.end }, a2 = t5.length ? t5[t5.length - 1] : null;
        !a2 || n3.start > a2.end ? t5.push(n3) : a2.end = n3.end;
      }
    }
    get length() {
      return this._ranges.length;
    }
    start(t4) {
      return this._ranges[t4].start;
    }
    end(t4) {
      return this._ranges[t4].end;
    }
  }
  var Ji = class {
    constructor(t4, e3) {
      this.eventBus = e3, this.mimeType = t4, this.updating = false, this.chunks = [], this.appendWindowStart = 0, this.appendWindowEnd = 1 / 0, this.timestampOffset = 0, this.mode = "segments";
    }
    appendBuffer(t4, e3, n3) {
      if (this.updating)
        throw new Error("SourceBuffer is currently updating");
      this.updating = true, this.eventBus.trigger("externalSourceBufferUpdateStart", { mimeType: this.mimeType, request: "appendBuffer", data: t4, start: e3, end: n3 }), Number.isNaN(e3) || (this.chunks.push({ data: t4, start: e3, end: n3 }), this.chunks.sort((t5, e4) => t5.start - e4.start)), setTimeout(() => {
        this.updating = false, this.eventBus.trigger("externalSourceBufferUpdating", { mimeType: this.mimeType }), this.eventBus.trigger("externalSourceBufferUpdateEnd", { mimeType: this.mimeType });
      }, 10);
    }
    abort() {
      this.updating && (this.updating = false, this.eventBus.trigger("externalSourceBufferAbort", { mimeType: this.mimeType }), this.eventBus.trigger("externalSourceBufferUpdateEnd", { mimeType: this.mimeType }));
    }
    remove(t4, e3) {
      if (this.updating)
        throw new Error("SourceBuffer is currently updating");
      this.updating = true, this.eventBus.trigger("externalSourceBufferUpdateStart", { mimeType: this.mimeType, request: "remove", start: t4, end: e3 }), this.chunks = this.chunks.filter((n3) => n3.end <= t4 || n3.start >= e3), setTimeout(() => {
        this.updating = false, this.eventBus.trigger("externalSourceBufferUpdating", { mimeType: this.mimeType }), this.eventBus.trigger("externalSourceBufferUpdateEnd", { mimeType: this.mimeType });
      }, 10);
    }
    get buffered() {
      return new Zi(this.chunks);
    }
  }, tl = class {
    constructor(t4) {
      this.eventBus = t4, this.reset();
    }
    get duration() {
      return this._duration;
    }
    set duration(t4) {
      if ("open" !== this._readyState)
        throw new Error("ExternalMediaSource is not open");
      this._duration = t4;
    }
    get readyState() {
      return this._readyState;
    }
    addSourceBuffer(t4) {
      if ("open" !== this._readyState)
        throw new Error("ExternalMediaSource is not open");
      const e3 = new Ji(t4, this.eventBus);
      return this.sourceBuffers.set(e3, t4), e3;
    }
    removeSourceBuffer(t4) {
      if (!this.sourceBuffers.has(t4))
        throw new Error("ExternalSourceBuffer not found");
      this.sourceBuffers.delete(t4);
    }
    open() {
      this._readyState = "open", this.eventBus.trigger("externalMediaSourceOpen", {});
    }
    endOfStream() {
      if ("open" !== this._readyState)
        throw new Error("ExternalMediaSource is not open");
      this._readyState = "ended", this.eventBus.trigger("externalMediaSourceEnded", {});
    }
    close() {
      this._readyState = "closed", this.eventBus.trigger("externalMediaSourceClosed", {});
    }
    reset() {
      this.sourceBuffers = /* @__PURE__ */ new Map(), this._duration = NaN, this._readyState = "closed";
    }
  }, el = class {
    constructor() {
      this.streamId = null, this.segmentType = null, this.index = NaN, this.bytes = null, this.start = NaN, this.end = NaN, this.duration = NaN, this.representation = null, this.endFragment = null;
    }
  }, nl = class extends Q {
    constructor(t4) {
      super(t4), this.checkForExistenceOnly = true;
    }
  };
  function al(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a2 = t4.events, r3 = t4.urlUtils, i3 = t4.errors, l3 = t4.streamId;
    let o3, s2;
    return o3 = { abort: function() {
      s2 && s2.abort();
    }, checkForExistence: function(t5) {
      const e4 = function(e5) {
        n3.trigger(a2.CHECK_FOR_EXISTENCE_COMPLETED, { request: t5, exists: e5 });
      };
      if (t5) {
        let n4 = new nl(t5.url);
        s2.load({ request: n4, success: function() {
          e4(true);
        }, error: function() {
          e4(false);
        } });
      } else
        e4(false);
    }, load: function(t5) {
      const e4 = function(e5, r4) {
        n3.trigger(a2.LOADING_COMPLETED, { request: t5, response: e5 || null, error: r4 || null, sender: o3 });
      };
      t5 ? s2.load({ request: t5, progress: function(e5) {
        n3.trigger(a2.LOADING_PROGRESS, { request: t5, stream: e5.stream, streamId: l3 }), e5.data && n3.trigger(a2.LOADING_DATA_PROGRESS, { request: t5, response: e5.data || null, error: null, sender: o3 });
      }, success: function(t6) {
        e4(t6);
      }, error: function(t6, n4, a3) {
        e4(void 0, new Ot.default(i3.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE, a3, n4));
      }, abort: function(t6) {
        t6 && n3.trigger(a2.LOADING_ABANDONED, { mediaType: t6.mediaType, request: t6, sender: o3 });
      } }) : e4(void 0, new Ot.default(i3.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE, i3.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE));
    }, reset: function() {
      s2 && (s2.abort(), s2.reset(), s2 = null);
    }, resetInitialSettings: function() {
      s2 && s2.resetInitialSettings();
    } }, s2 = oa(e3).create({ errHandler: t4.errHandler, errors: i3, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, urlUtils: r3, constants: m2.default, boxParser: t4.boxParser, dashConstants: t4.dashConstants, requestTimeout: t4.settings.get().streaming.fragmentRequestTimeout }), o3;
  }
  al.__dashjs_factory_name = "FragmentLoader";
  var rl = r2.default.getClassFactory(al);
  function il(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = t4.errHandler, r3 = t4.mediaPlayerModel, i3 = t4.dashMetrics, l3 = (0, o2.default)(e3).getInstance(), s2 = t4.streamInfo;
    let u3, d3, c3;
    function p3() {
      return s2.id;
    }
    function b3() {
      for (let t5 in c3)
        c3[t5].reset();
      c3 = {};
    }
    function y3(t5) {
      if (!t5.sender)
        return;
      const e4 = t5.request, a3 = t5.response, r4 = e4.isInitializationRequest(), i4 = e4.representation.mediaInfo.streamInfo;
      if (t5.error && (e4.mediaType === m2.default.AUDIO || e4.mediaType === m2.default.VIDEO || e4.mediaType === m2.default.TEXT && e4.representation.mediaInfo.isFragmented) && n3.trigger(g2.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD, { entry: t5.request.serviceLocation }), !a3 || !i4)
        return void d3.warn("No " + e4.mediaType + " bytes to push or stream is inactive.");
      const l4 = function(t6, e5, n4, a4) {
        const r5 = new el();
        return r5.streamId = n4, r5.segmentType = e5.type, r5.start = e5.startTime, r5.duration = e5.duration, r5.end = r5.start + r5.duration, r5.bytes = t6, r5.index = e5.index, r5.representation = e5.representation, r5.endFragment = a4, r5;
      }(a3, e4, s2.id, t5.type !== g2.default.FRAGMENT_LOADING_PROGRESS);
      n3.trigger(r4 ? g2.default.INIT_FRAGMENT_LOADED : g2.default.MEDIA_FRAGMENT_LOADED, { chunk: l4, request: e4 }, { streamId: i4.id, mediaType: e4.mediaType });
    }
    return u3 = { getStreamId: p3, getModel: function(o3) {
      let u4 = c3[o3];
      return u4 || (u4 = nt(e3).create({ streamInfo: s2, type: o3, dashMetrics: i3, fragmentLoader: rl(e3).create({ dashMetrics: i3, mediaPlayerModel: r3, errHandler: a2, settings: t4.settings, boxParser: t4.boxParser, eventBus: n3, events: g2.default, errors: Rt, dashConstants: t4.dashConstants, urlUtils: t4.urlUtils, streamId: p3() }), debug: l3, eventBus: n3, events: g2.default }), c3[o3] = u4), u4;
    }, reset: function() {
      n3.off(h2.default.FRAGMENT_LOADING_COMPLETED, y3, this), n3.off(h2.default.FRAGMENT_LOADING_PROGRESS, y3, this), b3();
    } }, d3 = l3.getLogger(u3), b3(), n3.on(h2.default.FRAGMENT_LOADING_COMPLETED, y3, u3), n3.on(h2.default.FRAGMENT_LOADING_PROGRESS, y3, u3), u3;
  }
  il.__dashjs_factory_name = "FragmentController";
  var ll = r2.default.getClassFactory(il), ol = class {
    constructor(t4) {
      this.newMediaInfo = t4.newMediaInfo, this.previouslySelectedRepresentation = t4.previouslySelectedRepresentation, this.newRepresentation = t4.newRepresentation;
    }
  };
  function sl(t4) {
    const e3 = this.context, n3 = (0, u2.default)(e3).getInstance(), a2 = t4.textController, r3 = t4.eventBus;
    let i3, l3, s2, d3, c3, f3, h3 = [], p3 = [], b3 = false, y3 = t4.mediaSource, E3 = null;
    function T3(t5) {
      return t5.mimeType + ';codecs="' + t5.codecs + '"';
    }
    function _3(t5) {
      return d3 = a2.getTextSourceBuffer(t5), Promise.resolve();
    }
    function v3() {
      if ("function" == typeof d3.addEventListener)
        try {
          d3.addEventListener("updateend", N2, false), d3.addEventListener("error", C2, false), d3.addEventListener("abort", C2, false);
        } catch (t5) {
          f3 = setInterval(N2, 50);
        }
      else
        f3 = setInterval(N2, 50);
    }
    function S3() {
      try {
        "function" == typeof d3.removeEventListener && (d3.removeEventListener("updateend", N2, false), d3.removeEventListener("error", C2, false), d3.removeEventListener("abort", C2, false)), clearInterval(f3);
      } catch (t5) {
        s2.error(t5);
      }
    }
    function I3(t5) {
      return new Promise((e4) => {
        d3 && n3.get().streaming.buffer.useAppendWindow ? D2(() => {
          try {
            if (!d3)
              return void e4();
            let n4 = y3.duration, a3 = 0;
            t5 && !isNaN(t5.start) && !isNaN(t5.duration) && isFinite(t5.duration) && (n4 = t5.start + t5.duration), t5 && !isNaN(t5.start) && (a3 = t5.start), d3.appendWindowEnd === n4 && d3.appendWindowStart === a3 || (d3.appendWindowStart = 0, d3.appendWindowEnd = n4 + 0.01, d3.appendWindowStart = Math.max(a3 - 0.1, 0), s2.debug(`Updated append window for ${c3.type}. Set start to ${d3.appendWindowStart} and end to ${d3.appendWindowEnd}`)), e4();
          } catch (t6) {
            s2.warn("Failed to set append window"), e4();
          }
        }) : e4();
      });
    }
    function k3(t5) {
      return new Promise((e4) => {
        d3 ? D2(() => {
          try {
            d3.timestampOffset === t5 || isNaN(t5) || (d3.timestampOffset = t5, s2.debug(`Set MSE timestamp offset to ${t5}`)), e4();
          } catch (t6) {
            e4();
          }
        }) : e4();
      });
    }
    function A2() {
      if (!b3 && p3.length > 0) {
        b3 = true;
        const t5 = p3[0];
        p3.splice(0, 1);
        const e4 = function() {
          b3 = false, p3.length > 0 && A2.call(this), t5 && t5.data && t5.data.segmentType && t5.data.segmentType !== w2.HTTPRequest.INIT_SEGMENT_TYPE && delete t5.data.bytes, t5.promise.resolve({ chunk: t5.data });
        };
        try {
          if (E3 = t5.request, 0 === t5.data.bytes.byteLength)
            e4.call(this);
          else {
            try {
              s2.debug(`Appending ${t5.data.segmentType} from period ${t5.data.streamId} to buffer. Request URL: ${t5.request.url}, Representation: ID: ${t5.data.representation.id}, bitrate: ${t5.data.representation.bitrateInKbit}`);
            } catch (t6) {
            }
            d3 instanceof Ji ? d3.appendBuffer(t5.data.bytes, t5.data.start, t5.data.end) : d3.appendBuffer ? d3.appendBuffer(t5.data.bytes) : d3.append(t5.data.bytes, t5.data), D2(e4.bind(this));
          }
        } catch (e5) {
          s2.fatal('SourceBuffer append failed "' + e5 + '"'), p3.length > 0 ? A2() : b3 = false, delete t5.data.bytes, t5.promise.reject({ chunk: t5.data, error: new Ot.default(e5.code, e5.message) });
        }
      }
    }
    function R2() {
      h3.length > 0 && !d3.updating && (h3.shift()(), R2());
    }
    function N2() {
      d3.updating || R2();
    }
    function C2(t5) {
      const e4 = t5.target || {};
      !function(t6, e5) {
        let n4 = e5 || {};
        r3.trigger(t6, n4, { streamId: c3.streamInfo.id, mediaType: l3 });
      }(g2.default.SOURCE_BUFFER_ERROR, { error: e4, lastRequestAppended: E3 });
    }
    function D2(t5) {
      try {
        h3.push(t5), d3 && !d3.updating && R2();
      } catch (t6) {
        s2.error(t6);
      }
    }
    return i3 = { abort: function() {
      return new Promise((t5) => {
        try {
          p3 = [], "open" === y3.readyState ? D2(() => {
            try {
              d3 && d3.abort(), t5();
            } catch (e4) {
              t5();
            }
          }) : d3 && d3.setTextTrack && "ended" === y3.readyState ? (d3.abort(), t5()) : t5();
        } catch (e4) {
          t5();
        }
      });
    }, abortBeforeAppend: function() {
      return new Promise((t5) => {
        D2(() => {
          const e4 = d3.appendWindowStart, n4 = d3.appendWindowEnd;
          d3 && (d3.abort(), d3.appendWindowStart = e4, d3.appendWindowEnd = n4), t5();
        });
      });
    }, append: function(t5, e4 = null) {
      return new Promise((n4, a3) => {
        t5 ? (p3.push({ data: t5, promise: { resolve: n4, reject: a3 }, request: e4 }), D2(A2.bind(this))) : a3({ chunk: t5, error: new Ot.default(Rt.APPEND_ERROR_CODE, Rt.APPEND_ERROR_MESSAGE) });
      });
    }, changeType: function(t5) {
      const e4 = T3(t5);
      return new Promise((t6) => {
        D2(() => {
          d3.changeType && (s2.debug(`Changing SourceBuffer codec to ${e4}`), d3.changeType(e4)), t6();
        });
      });
    }, getAllBufferRanges: function() {
      try {
        return d3 == null ? void 0 : d3.buffered;
      } catch (t5) {
        return s2.error("getAllBufferRanges exception: " + t5.message), null;
      }
    }, getBuffer: function() {
      return d3;
    }, getType: function() {
      return l3;
    }, initializeForFirstUse: function(t5, e4) {
      c3 = t5;
      const n4 = t5.streamInfo;
      l3 = c3.type;
      const a3 = e4 ? T3(e4) : t5.codec;
      try {
        if (a3.match(/application\/mp4;\s*codecs="(stpp|wvtt).*"/i))
          return _3(n4);
        d3 = y3.addSourceBuffer(a3), v3();
        const t6 = [];
        return t6.push(I3(c3.streamInfo)), e4 && void 0 !== e4.mseTimeOffset && t6.push(k3(e4.mseTimeOffset)), Promise.all(t6);
      } catch (t6) {
        return c3.type == m2.default.TEXT && !c3.isFragmented || -1 !== a3.indexOf('codecs="stpp') || -1 !== a3.indexOf('codecs="vtt') || -1 !== a3.indexOf("text/vtt") ? _3(n4) : Promise.reject(t6);
      }
    }, initializeForStreamSwitch: function(t5, e4, n4) {
      c3 = t5, l3 = c3.type, function(t6) {
        d3 = t6.getBuffer();
      }(n4), v3();
    }, remove: function(t5) {
      return new Promise((e4, n4) => {
        const a3 = t5.start, r4 = t5.end;
        a3 >= 0 && r4 > a3 ? D2(function() {
          try {
            d3.remove(a3, r4), D2(function() {
              e4({ from: a3, to: r4, unintended: false }), t5.resolve && t5.resolve();
            });
          } catch (e5) {
            n4({ from: a3, to: r4, unintended: false, error: new Ot.default(Rt.REMOVE_ERROR_CODE, Rt.REMOVE_ERROR_MESSAGE) }), t5.reject && t5.reject(e5);
          }
        }) : e4();
      });
    }, removeEventListeners: S3, reset: function() {
      if (d3) {
        try {
          h3 = [], S3(), b3 = false, p3 = [], d3.getClassName && "TextSourceBuffer" === d3.getClassName() || (s2.debug("Removing sourcebuffer from media source"), y3.removeSourceBuffer(d3));
        } catch (t5) {
        }
        d3 = null;
      }
      E3 = null;
    }, updateAppendWindow: I3, updateTimestampOffset: k3 }, s2 = (0, o2.default)(e3).getInstance().getLogger(i3), i3;
  }
  sl.__dashjs_factory_name = "SourceBufferSink";
  var ul = r2.default.getClassFactory(sl);
  function dl(t4) {
    const e3 = this.context;
    let n3, a2, r3, i3 = [], l3 = t4;
    function s2(t5, e4) {
      return i3 = i3.filter((n4) => !((isNaN(e4) || n4.start < e4) && (isNaN(t5) || n4.end > t5))), Promise.resolve();
    }
    return n3 = { getAllBufferRanges: function() {
      let t5 = [];
      for (let e5 = 0; e5 < i3.length; e5++) {
        let n4 = i3[e5];
        0 === t5.length || n4.start > t5[t5.length - 1].end ? t5.push({ start: n4.start, end: n4.end }) : t5[t5.length - 1].end = n4.end;
      }
      const e4 = { start: function(e5) {
        return t5[e5].start;
      }, end: function(e5) {
        return t5[e5].end;
      } };
      return Object.defineProperty(e4, "length", { get: function() {
        return t5.length;
      } }), e4;
    }, append: function(t5) {
      return "InitializationSegment" !== t5.segmentType ? (i3.push(t5), i3.sort(function(t6, e4) {
        return t6.start - e4.start;
      }), r3 = null) : r3 = t5, a2.debug("PreBufferSink appended chunk s: " + t5.start + "; e: " + t5.end), l3 && l3({ chunk: t5 }), Promise.resolve();
    }, remove: s2, abort: function() {
      return Promise.resolve();
    }, discharge: function(t5, e4) {
      const n4 = function(t6, e5) {
        return i3.filter((n5) => (isNaN(e5) || n5.start < e5) && (isNaN(t6) || n5.end > t6));
      }(t5, e4);
      return r3 && (n4.push(r3), r3 = null), s2(t5, e4), n4;
    }, reset: function() {
      i3 = [], r3 = null, l3 = null;
    }, updateTimestampOffset: function() {
      return Promise.resolve();
    }, waitForUpdateEnd: function(t5) {
      t5();
    }, getBuffer: function() {
      return this;
    } }, a2 = (0, o2.default)(e3).getInstance().getLogger(n3), n3;
  }
  dl.__dashjs_factory_name = "PreBufferSink";
  var cl = r2.default.getClassFactory(dl);
  function fl() {
    let t4 = {};
    return { save: function(e3) {
      const n3 = e3.streamId, a2 = e3.representation.id;
      t4[n3] = t4[n3] || {}, t4[n3][a2] = e3;
    }, extract: function(e3, n3) {
      return t4 && t4[e3] && t4[e3][n3] ? t4[e3][n3] : null;
    }, reset: function() {
      t4 = {};
    } };
  }
  fl.__dashjs_factory_name = "InitCache";
  var gl = r2.default.getSingletonFactory(fl);
  const ml = 0.01, hl = "BufferController";
  function pl(t4) {
    const e3 = (t4 = t4 || {}).capabilities, n3 = this.context, a2 = (0, f2.default)(n3).getInstance(), r3 = t4.fragmentModel, i3 = t4.playbackController, s2 = t4.representationController, u3 = t4.settings, d3 = t4.streamInfo, c3 = t4.textController, p3 = t4.type;
    let b3, y3, E3, T3, _3, v3, S3, I3, k3, A2, R2, N2, C2, D2, x2, M2, P2, O2, z2, L2, F2;
    function U2(t5, e4 = null) {
      return new Promise((n4, a3) => {
        v3 = t5, k3 && e4 && "function" == typeof k3.discharge ? (A2 = k3, j2(e4).then(() => {
          n4();
        }).catch((t6) => {
          a3(t6);
        })) : n4();
      });
    }
    function j2(t5, e4 = /* @__PURE__ */ new Map(), r4) {
      return new Promise((i4, l3) => {
        O2 && t5 ? v3 ? (R2 = false, function(t6, e5, r5) {
          return new Promise((i5) => {
            k3 = ul(n3).create({ mediaSource: v3, textController: c3, eventBus: a2 }), function(t7, e6, n4) {
              const a3 = s2.getCurrentRepresentation();
              let r6 = null;
              return p3 !== m2.default.VIDEO && p3 !== m2.default.AUDIO || (r6 = e6.get(p3)), r6 ? function(t8, e7, n5, a4) {
                k3.initializeForStreamSwitch(t8, e7, n5);
                const r7 = [];
                return r7.push(k3.abortBeforeAppend()), r7.push(ct2()), r7.push(K2(e7, a4)), e7 && void 0 !== e7.mseTimeOffset && r7.push(dt2(e7)), Promise.allSettled(r7);
              }(t7, a3, r6, n4) : function(t8, e7) {
                return k3.initializeForFirstUse(t8, e7);
              }(t7, a3);
            }(t6, e5, r5).then(() => dt2(s2.getCurrentRepresentation())).then(() => {
              i5(k3);
            }).catch((t7) => {
              y3.warn("Caught error on create SourceBuffer: " + t7), i5(k3);
            });
          });
        }(t5, e4, r4).then((t6) => {
          i4(t6);
        }).catch((t6) => {
          l3(t6);
        })) : (R2 = true, function() {
          return new Promise((t6, e5) => {
            k3 = cl(n3).create(Y2.bind(this)), dt2(s2.getCurrentRepresentation()).then(() => {
              t6(k3);
            }).catch(() => {
              e5();
            });
          });
        }().then((t6) => {
          i4(t6);
        }).catch((t6) => {
          l3(t6);
        })) : i4(null);
      });
    }
    function q2(t5) {
      u3.get().streaming.cacheInitSegments && (y3.info("Init fragment finished loading saving to", p3 + "'s init cache"), O2.save(t5.chunk)), y3.debug(`Appending init fragment for type ${p3}, representationId ${t5.chunk.representation.id} and bandwidth ${t5.chunk.representation.bandwidth}`), G2(t5.chunk);
    }
    function B2(t5) {
      G2(t5.chunk, t5.request);
    }
    function G2(t5, e4 = null) {
      k3 && (k3.append(t5, e4).then((t6) => {
        Y2(t6);
      }).catch((t6) => {
        Y2(t6);
      }), t5.representation.mediaInfo.type === m2.default.VIDEO && yt2(g2.default.VIDEO_CHUNK_RECEIVED, { chunk: t5 }));
    }
    function H2(t5) {
      if (t5 && t5.length > 0)
        for (let e4 = 0, n4 = t5.length; e4 < n4; e4++)
          y3.debug("Buffered range: " + t5.start(e4) + " - " + t5.end(e4) + ", currentTime = ", i3.getTime());
    }
    function Y2(t5) {
      if (t5.error)
        return 22 === t5.error.code && function() {
          if (P2 = true, _3 = 0.8 * ht2(), y3.warn("Quota exceeded, Critical Buffer: " + _3), _3 > 0) {
            const t6 = Math.max(0.2 * _3, 1), e5 = _3 - t6, n5 = Math.min(u3.get().streaming.buffer.bufferTimeAtTopQuality, 0.9 * e5), a3 = Math.min(u3.get().streaming.buffer.bufferTimeAtTopQualityLongForm, 0.9 * e5), r4 = { streaming: { buffer: { bufferToKeep: parseFloat(t6.toFixed(5)), bufferTimeAtTopQuality: parseFloat(n5.toFixed(5)), bufferTimeAtTopQualityLongForm: parseFloat(a3.toFixed(5)) } } };
            u3.update(r4);
          }
        }(), void (22 !== t5.error.code && bt2() || (y3.warn("Clearing playback buffer to overcome quota exceed situation"), yt2(g2.default.QUOTA_EXCEEDED, { criticalBufferLevel: _3, quotaExceededTime: t5.chunk.start }), ot2(lt2())));
      if (!k3)
        return;
      if (tt2(), P2 = false, D2 = t5.chunk, !D2 || !D2.endFragment)
        return;
      D2 && !isNaN(D2.index) && (S3 = Math.max(D2.index, S3), et2());
      const e4 = k3.getAllBufferRanges();
      D2.segmentType === w2.HTTPRequest.MEDIA_SEGMENT_TYPE && (H2(e4), Q2(), function() {
        if (isNaN(F2) || R2)
          return;
        if (p3 !== m2.default.AUDIO && p3 !== m2.default.VIDEO)
          return void (F2 = NaN);
        const t6 = i3.getTime(), e5 = J2(t6, 0), n5 = J2(F2, 0);
        if (e5 && n5 && e5.start === n5.start)
          return void (F2 = NaN);
        const a3 = s2.getCurrentRepresentation().segmentDuration, r4 = J2(F2, a3);
        r4 && (u3.get().streaming.buffer.enableSeekDecorrelationFix && Math.abs(t6 - F2) > a3 ? F2 <= r4.end && i3.seek(Math.max(F2, r4.start), false, true) : t6 < r4.start && i3.seek(r4.start, false, true));
      }());
      let n4 = false;
      N2 && (N2.indexOf(D2) > 0 && (n4 = true), N2 = null), D2 && !n4 && yt2(g2.default.BYTES_APPENDED_END_FRAGMENT, { startTime: D2.start, index: D2.index, bufferedRanges: e4, segmentType: D2.segmentType, mediaType: p3, representationId: D2.representation.id });
    }
    function V2(t5, e4) {
      const n4 = [];
      return n4.push(dt2(t5)), n4.push(k3 ? k3.abort() : Promise.resolve()), n4.push(K2(t5, e4)), Promise.allSettled(n4);
    }
    function K2(t5, n4) {
      if (!t5 || !n4)
        return y3.warn("BufferController._changeCodec() is missing the information about the Representations. Doing nothing"), Promise.resolve();
      if (t5 && n4 && t5.mimeType === n4.mimeType && t5.codecFamily === n4.codecFamily)
        return y3.debug(`Switching to new codec ${t5.codecs} without changeType as previous codec ${n4.codecs} is compatible.`), Promise.resolve();
      if (!u3.get().streaming.buffer.useChangeType || !e3.supportsChangeType())
        return y3.debug("changeType() not available"), Promise.resolve();
      y3.debug(`Using changeType() to switch from codec ${n4.codecs} to ${t5.codecs}`);
      const a3 = t5.dependentRepresentation ? t5.dependentRepresentation : t5;
      return k3.changeType(a3);
    }
    function W2() {
      return new Promise((t5, e4) => {
        let n4 = $2();
        if (!n4 || 0 === n4.length)
          return Q2(), void t5();
        ot2(n4).then(() => {
          t5();
        }).catch((t6) => {
          e4(t6);
        });
      });
    }
    function $2(t5) {
      const e4 = [], n4 = k3.getAllBufferRanges();
      if (!n4 || 0 === n4.length)
        return e4;
      if (!t5 && 0 !== t5 || isNaN(t5))
        e4.push({ start: n4.start(0), end: n4.end(n4.length - 1) + 0.5 });
      else {
        const a3 = function(t6, e5) {
          const n5 = u3.get().streaming.buffer.bufferToKeep, a4 = e5.start(0);
          if (t6 - a4 > n5) {
            let e6 = Math.max(0, t6 - n5);
            const i5 = r3.getRequests({ state: nt.FRAGMENT_MODEL_EXECUTED, time: t6, threshold: ml })[0];
            if (i5 && (e6 = Math.min(i5.startTime, e6)), e6 > 0)
              return { start: a4, end: e6 };
          }
          return null;
        }(t5, n4), i4 = function(t6, e5) {
          const n5 = e5.end(e5.length - 1) + 0.5, a4 = pt2(t6), i5 = d3.manifestInfo.duration >= u3.get().streaming.buffer.longFormContentDurationThreshold ? u3.get().streaming.buffer.bufferTimeAtTopQualityLongForm : u3.get().streaming.buffer.bufferTimeAtTopQuality;
          let l3 = isNaN(a4) ? t6 : Math.min(a4, t6 + i5);
          if (l3 >= e5.end(e5.length - 1))
            return null;
          const o3 = r3.getRequests({ state: nt.FRAGMENT_MODEL_EXECUTED, time: t6, threshold: ml })[0];
          if (o3 && (l3 = Math.max(o3.startTime + o3.duration, l3)), u3.get().streaming.buffer.avoidCurrentTimeRangePruning) {
            for (let a5 = 0; a5 < e5.length; a5++)
              if (e5.start(a5) <= t6 && t6 <= e5.end(a5) && e5.start(a5) <= l3 && l3 <= e5.end(a5)) {
                let r4 = l3;
                l3 = a5 + 1 < e5.length ? e5.start(a5 + 1) : e5.end(a5) + 1, y3.debug("Buffered range [" + e5.start(a5) + ", " + e5.end(a5) + "] overlaps with targetTime " + t6 + " and range to be pruned [" + r4 + ", " + n5 + "], using [" + l3 + ", " + n5 + "] instead" + (l3 < n5 ? "" : " (no actual pruning)"));
                break;
              }
          }
          return l3 < e5.end(e5.length - 1) ? { start: l3, end: n5 } : null;
        }(t5, n4);
        a3 && e4.push(a3), i4 && e4.push(i4);
      }
      return e4;
    }
    function Q2() {
      (!L2 || p3 === m2.default.TEXT && c3.isTextEnabled()) && tt2();
    }
    function X2() {
      at2();
    }
    function Z2() {
      at2(), F2 = NaN;
    }
    function J2(t5, e4) {
      if (!k3)
        return null;
      const n4 = k3.getAllBufferRanges();
      let a3, r4, i4 = 0, l3 = 0, o3 = null, s3 = null, u4 = 0;
      const d4 = isNaN(e4) ? 0.15 : e4;
      if (null != n4) {
        for (r4 = 0, a3 = n4.length; r4 < a3; r4++)
          if (i4 = n4.start(r4), l3 = n4.end(r4), null === o3)
            u4 = Math.abs(i4 - t5), (t5 >= i4 && t5 < l3 || u4 <= d4) && (o3 = i4, s3 = l3);
          else {
            if (u4 = i4 - s3, !(u4 <= d4))
              break;
            s3 = l3;
          }
        if (null !== o3)
          return { start: o3, end: s3 };
      }
      return null;
    }
    function tt2() {
      if (i3) {
        let t5 = i3.getTime() || 0;
        R2 && (t5 = isNaN(F2) ? 0 : F2);
        const e4 = u3.get().streaming.gaps.jumpGaps && !isNaN(u3.get().streaming.gaps.smallGapLimit) ? u3.get().streaming.gaps.smallGapLimit : NaN;
        T3 = Math.max(function(t6, e5) {
          let n4, a3;
          return u3.get().streaming.gaps.jumpGaps && (e5 = u3.get().streaming.gaps.smallGapLimit), n4 = J2(t6, e5), a3 = null === n4 ? 0 : n4.end - t6, a3;
        }(t5, e4), 0), yt2(g2.default.BUFFER_LEVEL_UPDATED, { mediaType: p3, bufferLevel: T3 }), at2();
      }
    }
    function et2() {
      const t5 = S3 >= I3 - 1, e4 = i3.getTimeToStreamEnd(d3) - T3 < 1e-5;
      !t5 && !e4 || E3 || (mt2(true), y3.debug(`checkIfBufferingCompleted trigger BUFFERING_COMPLETED for stream id ${d3.id} and type ${p3}`));
    }
    function at2() {
      if (p3 !== m2.default.AUDIO && p3 !== m2.default.VIDEO)
        return;
      const t5 = i3.getLowLatencyModeEnabled() ? u3.get().streaming.buffer.lowLatencyStallThreshold : u3.get().streaming.buffer.stallThreshold;
      T3 <= t5 && !E3 ? rt2(l2.BUFFER_EMPTY) : (E3 || T3 > t5) && rt2(l2.BUFFER_LOADED);
    }
    function rt2(t5) {
      C2 === t5 || t5 === l2.BUFFER_EMPTY && 0 === i3.getTime() || p3 === m2.default.TEXT && !c3.isTextEnabled() || (C2 = t5, yt2(g2.default.BUFFER_LEVEL_STATE_CHANGED, { state: t5 }), yt2(t5 === l2.BUFFER_LOADED ? g2.default.BUFFER_LOADED : g2.default.BUFFER_EMPTY), y3.debug(t5 === l2.BUFFER_LOADED ? "Got enough buffer to start" : "Waiting for more buffer before starting playback"));
    }
    function it2() {
      k3 && p3 !== m2.default.TEXT && (E3 || ot2(lt2()));
    }
    function lt2() {
      const t5 = [], e4 = k3.getAllBufferRanges();
      if (!e4 || 0 === e4.length)
        return t5;
      const n4 = i3.getTime();
      let a3 = Math.max(0, n4 - u3.get().streaming.buffer.bufferToKeep);
      const l3 = r3.getRequests({ state: nt.FRAGMENT_MODEL_EXECUTED, time: n4, threshold: ml })[0];
      if (l3)
        a3 = Math.min(l3.startTime, a3);
      else if (0 === n4 && i3.getIsDynamic())
        return [];
      if (e4.start(0) <= a3) {
        const n5 = { start: 0, end: a3 };
        for (let t6 = 0; t6 < e4.length && e4.end(t6) <= a3; t6++)
          n5.end = e4.end(t6);
        n5.start < n5.end && t5.push(n5);
      }
      return t5;
    }
    function ot2(t5) {
      return new Promise((e4, n4) => {
        if (!t5 || !k3 || 0 === t5.length)
          return tt2(), void e4();
        const a3 = [];
        t5.forEach((t6) => {
          a3.push(function(t7) {
            return new Promise((e5, n5) => {
              t7.resolve = e5, t7.reject = n5, z2.push(t7);
            });
          }(t6));
        }), M2 || st2(), Promise.all(a3).then(() => {
          e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }
    function st2() {
      try {
        if (0 === z2.length || !k3)
          return y3.debug("Nothing to prune, halt pruning"), z2 = [], void (M2 = false);
        const t5 = k3.getBuffer();
        if (!t5 || !t5.buffered || 0 === t5.buffered.length)
          return y3.debug("SourceBuffer is empty (or does not exist), halt pruning"), z2 = [], void (M2 = false);
        const e4 = z2.shift();
        y3.debug(`${p3}: Removing buffer from: ${e4.start} to ${e4.end}`), M2 = true, i3.getTime() < e4.end && mt2(false), k3.remove(e4).then((t6) => {
          ut2(t6);
        }).catch((t6) => {
          ut2(t6);
        });
      } catch (t5) {
        M2 = false;
      }
    }
    function ut2(t5) {
      y3.debug("onRemoved buffer from:", t5.from, "to", t5.to), k3 && (H2(k3.getAllBufferRanges()), 0 === z2.length && (M2 = false, tt2()), t5.unintended && (y3.warn("Detected unintended removal from:", t5.from, "to", t5.to, "setting streamprocessor time to", t5.from), yt2(g2.default.SEEK_TARGET, { time: t5.from })), M2 ? st2() : (L2 ? L2 = false : tt2(), yt2(g2.default.BUFFER_CLEARED, { from: t5.from, to: t5.to, unintended: t5.unintended, hasEnoughSpaceToAppend: bt2(), quotaExceeded: P2 })));
    }
    function dt2(t5) {
      return new Promise((e4) => {
        t5 && void 0 !== t5.mseTimeOffset && k3 && k3.updateTimestampOffset ? k3.updateTimestampOffset(t5.mseTimeOffset).then(() => {
          e4();
        }).catch(() => {
          e4();
        }) : e4();
      });
    }
    function ct2() {
      return k3 && !E3 ? k3.updateAppendWindow(d3) : Promise.resolve();
    }
    function ft2() {
      x2++, x2 * (u3.get().streaming.wallclockTimeUpdateInterval / 1e3) >= u3.get().streaming.buffer.bufferPruningInterval && (x2 = 0, it2());
    }
    function gt2() {
      at2();
    }
    function mt2(t5) {
      E3 = t5, E3 ? yt2(g2.default.BUFFERING_COMPLETED) : I3 = Number.POSITIVE_INFINITY;
    }
    function ht2() {
      try {
        const t5 = k3.getAllBufferRanges();
        let e4, n4, a3 = 0;
        if (!t5)
          return a3;
        for (n4 = 0, e4 = t5.length; n4 < e4; n4++)
          a3 += t5.end(n4) - t5.start(n4);
        return a3;
      } catch (t5) {
        return 0;
      }
    }
    function pt2(t5) {
      try {
        let e4 = t5;
        const n4 = k3.getAllBufferRanges();
        if (!n4 || 0 === n4.length)
          return NaN;
        let a3 = 0;
        for (; e4 === t5 && a3 < n4.length; ) {
          const t6 = n4.start(a3), r4 = n4.end(a3);
          e4 >= t6 && e4 <= r4 && (e4 = r4), a3 += 1;
        }
        return e4 === t5 ? NaN : e4;
      } catch (t6) {
        return NaN;
      }
    }
    function bt2() {
      const t5 = ht2();
      return isNaN(t5) || t5 < _3;
    }
    function yt2(t5, e4) {
      let n4 = e4 || {};
      a2.trigger(t5, n4, { streamId: d3.id, mediaType: p3 });
    }
    function Et2(t5, e4) {
      if (_3 = Number.POSITIVE_INFINITY, C2 = void 0, I3 = Number.POSITIVE_INFINITY, S3 = 0, D2 = null, E3 = false, M2 = false, P2 = false, T3 = 0, x2 = 0, z2 = [], F2 = NaN, R2 = false, k3) {
        let n4 = k3;
        k3 = null, t5 || (e4 ? n4.removeEventListeners() : n4.abort().then(() => {
          n4.reset(e4), n4 = null;
        }));
      }
      L2 = false;
    }
    return b3 = { appendInitSegmentFromCache: function(t5) {
      const e4 = O2.extract(d3.id, t5);
      return !!e4 && (y3.debug(`Appending init fragment for type ${p3}, representationId ${e4.representation.id} and bandwidth ${e4.representation.bandwidth}`), G2(e4), true);
    }, clearBuffers: ot2, createBufferSink: j2, dischargePreBuffer: function() {
      if (k3 && A2 && "function" == typeof A2.discharge) {
        const t5 = A2.getAllBufferRanges();
        if (t5.length > 0) {
          let e5 = "Beginning " + p3 + "PreBuffer discharge, adding buffer for:";
          for (let n5 = 0; n5 < t5.length; n5++)
            e5 += " start: " + t5.start(n5) + ", end: " + t5.end(n5) + ";";
          y3.debug(e5);
        } else
          y3.debug("PreBuffer discharge requested, but there were no media segments in the PreBuffer.");
        N2 = [];
        let e4 = A2.discharge(), n4 = null;
        for (let t6 = 0; t6 < e4.length; t6++) {
          const a3 = e4[t6];
          if (a3.segmentType !== w2.HTTPRequest.INIT_SEGMENT_TYPE) {
            const t7 = O2.extract(a3.streamId, a3.representation.id);
            t7 && n4 !== t7 && (N2.push(t7), k3.append(t7), n4 = t7);
          }
          N2.push(a3), k3.append(a3);
        }
        A2.reset(), A2 = null;
      }
    }, getAllRangesWithSafetyFactor: $2, getBuffer: function() {
      return k3;
    }, getBufferControllerType: function() {
      return hl;
    }, getBufferLevel: function() {
      return T3;
    }, getContinuousBufferTimeForTargetTime: pt2, getIsBufferingCompleted: function() {
      return E3;
    }, getIsPruningInProgress: function() {
      return M2;
    }, getMediaSource: function() {
      return v3;
    }, getRangeAt: J2, getStreamId: function() {
      return d3.id;
    }, getType: function() {
      return p3;
    }, hasBufferAtTime: function(t5) {
      try {
        const e4 = k3.getAllBufferRanges();
        if (!e4 || 0 === e4.length)
          return false;
        let n4 = 0;
        for (; n4 < e4.length; ) {
          const a3 = e4.start(n4), r4 = e4.end(n4);
          if (t5 >= a3 && t5 <= r4)
            return true;
          n4 += 1;
        }
        return false;
      } catch (t6) {
        return y3.error(t6), false;
      }
    }, initialize: function(t5) {
      U2(t5), a2.on(g2.default.INIT_FRAGMENT_LOADED, q2, b3), a2.on(g2.default.MEDIA_FRAGMENT_LOADED, B2, b3), a2.on(g2.default.WALLCLOCK_TIME_UPDATED, ft2, b3), a2.on(h2.default.PLAYBACK_PLAYING, Z2, b3), a2.on(h2.default.PLAYBACK_PROGRESS, Q2, b3), a2.on(h2.default.PLAYBACK_TIME_UPDATED, Q2, b3), a2.on(h2.default.PLAYBACK_RATE_CHANGED, gt2, b3), a2.on(h2.default.PLAYBACK_STALLED, X2, b3);
    }, prepareForAbandonQualitySwitch: function(t5, e4) {
      return V2(t5, e4);
    }, prepareForDefaultQualitySwitch: function(t5, e4) {
      return V2(t5, e4);
    }, prepareForFastQualitySwitch: function(t5, e4) {
      return V2(t5, e4);
    }, prepareForForceReplacementQualitySwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(k3.abort()), a3.push(ct2()), a3.push(W2()), a3.push(dt2(t5)), a3.push(K2(t5, e4)), Promise.allSettled(a3).then(() => {
          mt2(false), n4();
        });
      });
    }, prepareForNonReplacementTrackSwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(ct2()), a3.push(K2(t5, e4)), Promise.allSettled(a3).then(() => {
          n4();
        });
      });
    }, prepareForPlaybackSeek: function() {
      return E3 && mt2(false), k3.abort();
    }, prepareForReplacementTrackSwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(k3.abort()), a3.push(ct2()), a3.push(K2(t5, e4)), a3.push(W2()), a3.push(dt2(t5)), Promise.allSettled(a3).then(() => {
          mt2(false), n4();
        });
      });
    }, pruneAllSafely: W2, pruneBuffer: it2, reset: function(t5, e4) {
      a2.off(g2.default.INIT_FRAGMENT_LOADED, q2, this), a2.off(g2.default.MEDIA_FRAGMENT_LOADED, B2, this), a2.off(g2.default.WALLCLOCK_TIME_UPDATED, ft2, this), a2.off(h2.default.PLAYBACK_PLAYING, Z2, this), a2.off(h2.default.PLAYBACK_PROGRESS, Q2, this), a2.off(h2.default.PLAYBACK_TIME_UPDATED, Q2, this), a2.off(h2.default.PLAYBACK_RATE_CHANGED, gt2, this), a2.off(h2.default.PLAYBACK_STALLED, X2, this), Et2(t5, e4);
    }, segmentRequestingCompleted: function(t5) {
      isNaN(t5) || (I3 = t5, et2());
    }, setIsBufferingCompleted: mt2, setMediaSource: U2, setSeekTarget: function(t5) {
      F2 = t5;
    }, updateAppendWindow: ct2, updateBufferTimestampOffset: dt2 }, y3 = (0, o2.default)(n3).getInstance().getLogger(b3), O2 = gl(n3).getInstance(), Et2(), b3;
  }
  pl.__dashjs_factory_name = hl;
  var bl = r2.default.getClassFactory(pl);
  const yl = "NotFragmentedTextBufferController";
  function El(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = t4.textController, r3 = t4.errHandler, i3 = t4.streamInfo, l3 = t4.type;
    let o3, s2, u3, d3, c3, m3;
    function h3(t5) {
      d3 = t5;
    }
    function p3(t5) {
      s2 !== t5 && (s2 = t5, s2 && function(t6) {
        let e4 = {};
        n3.trigger(t6, e4, { streamId: i3.id, mediaType: l3 });
      }(g2.default.BUFFERING_COMPLETED));
    }
    function b3(t5) {
      t5.chunk.bytes && !s2 && (m3.save(t5.chunk), c3.append(t5.chunk), p3(true));
    }
    return o3 = { initialize: function(t5) {
      h3(t5);
    }, getStreamId: function() {
      return i3.id;
    }, getType: function() {
      return l3;
    }, getBufferControllerType: function() {
      return yl;
    }, createBufferSink: function(t5) {
      return new Promise((i4, o4) => {
        try {
          c3 = ul(e3).create({ mediaSource: d3, textController: a2, eventBus: n3 }), c3.initializeForFirstUse(t5), u3 || (c3.getBuffer() && "function" == typeof c3.getBuffer().initialize && c3.getBuffer().initialize(), u3 = true), i4(c3);
        } catch (t6) {
          r3.error(new Ot.default(Rt.MEDIASOURCE_TYPE_UNSUPPORTED_CODE, Rt.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE + l3)), o4(t6);
        }
      });
    }, dischargePreBuffer: function() {
    }, getBuffer: function() {
      return c3;
    }, getBufferLevel: function() {
      return 0;
    }, getRangeAt: function() {
      return null;
    }, pruneBuffer: function() {
    }, hasBufferAtTime: function() {
      return true;
    }, getAllRangesWithSafetyFactor: function() {
      return [];
    }, getContinuousBufferTimeForTargetTime: function() {
      return Number.POSITIVE_INFINITY;
    }, setMediaSource: h3, getMediaSource: function() {
      return d3;
    }, appendInitSegmentFromCache: function(t5) {
      return null !== m3.extract(i3.id, t5);
    }, getIsBufferingCompleted: function() {
      return s2;
    }, setIsBufferingCompleted: p3, getIsPruningInProgress: function() {
      return false;
    }, reset: function(t5) {
      n3.off(g2.default.INIT_FRAGMENT_LOADED, b3, o3), !t5 && c3 && (c3.abort(), c3.reset(), c3 = null);
    }, clearBuffers: function() {
      return Promise.resolve();
    }, prepareForPlaybackSeek: function() {
      return Promise.resolve();
    }, prepareForReplacementTrackSwitch: function() {
      return s2 = false, Promise.resolve();
    }, setSeekTarget: function() {
    }, updateAppendWindow: function() {
      return Promise.resolve();
    }, pruneAllSafely: function() {
      return Promise.resolve();
    }, updateBufferTimestampOffset: function() {
      return Promise.resolve();
    }, segmentRequestingCompleted: function() {
    } }, u3 = false, d3 = null, s2 = false, m3 = gl(e3).getInstance(), n3.on(g2.default.INIT_FRAGMENT_LOADED, b3, o3), o3;
  }
  El.__dashjs_factory_name = yl;
  var Tl = r2.default.getClassFactory(El);
  function _l(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = t4.dashMetrics, r3 = t4.mediaPlayerModel, i3 = t4.fragmentModel, s2 = t4.abrController, u3 = t4.playbackController, d3 = t4.textController, c3 = t4.type, p3 = t4.bufferController, b3 = t4.representationController, y3 = t4.settings;
    let E3, T3, _3, v3, S3, w3, I3, k3, A2, R2, N2, C2;
    function D2() {
      I3 = (0, o2.default)(e3).getInstance().getLogger(v3), G2(), R2 = t4.streamInfo;
    }
    function x2() {
      k3 = true;
    }
    function M2() {
      k3 = false;
    }
    function P2(t5) {
      if (p3.getIsBufferingCompleted())
        return;
      O2();
      const e4 = isNaN(t5) ? 0 : t5;
      A2 = setTimeout(z2, e4);
    }
    function O2() {
      A2 && (clearTimeout(A2), A2 = null);
    }
    function z2() {
      const t5 = r3.getScheduleTimeout();
      try {
        if (function() {
          try {
            return c3 === m2.default.TEXT && !d3.isTextEnabled() || u3.isPaused() && (!u3.getStreamController().getInitialPlayback() || !u3.getStreamController().getAutoPlay()) && !y3.get().streaming.scheduling.scheduleWhilePaused;
          } catch (t6) {
            return false;
          }
        }())
          return void O2();
        !function() {
          try {
            return !!k3 && (b3.getCurrentRepresentation() && (null == w3 || N2 || function() {
              const t6 = b3.getCurrentRepresentation();
              if (!c3 || !t6)
                return true;
              let e4 = t6 && t6.segmentDuration && !isNaN(t6.segmentDuration) ? t6.segmentDuration : 0;
              const n4 = a2.getCurrentBufferLevel(c3), r4 = L2();
              return (r4 <= e4 || u3.getLowLatencyModeEnabled() || c3 === m2.default.AUDIO && T3) && (e4 = 0), n4 + e4 < r4;
            }()));
          } catch (t6) {
            return false;
          }
        }() ? P2(t5) : function() {
          if (s2.handlePendingManualQualitySwitch(R2.id, c3))
            return;
          let t6 = false;
          E3 && (t6 = s2.checkPlaybackQuality(c3, R2.id)), t6 || function() {
            const t7 = b3.getCurrentRepresentation();
            _3 || t7.id !== w3 || N2 ? function(t8) {
              N2 ? (I3.debug("Switch track for " + c3 + ", representation id = " + t8.id), N2 = false) : I3.debug("Quality has changed, get init request for representationid = " + t8.id), n3.trigger(g2.default.INIT_FRAGMENT_NEEDED, { representationId: t8.id, sender: v3 }, { streamId: R2.id, mediaType: c3 }), E3 = false, _3 = false;
            }(t7) : (I3.debug(`Media segment needed for ${c3} and stream id ${R2.id}`), n3.trigger(g2.default.MEDIA_FRAGMENT_NEEDED, {}, { streamId: R2.id, mediaType: c3 }), E3 = true);
          }();
        }();
      } catch (e4) {
        P2(t5);
      }
    }
    function L2() {
      let t5 = NaN;
      const e4 = b3.getCurrentRepresentation();
      return c3 && e4 ? (t5 = c3 === m2.default.TEXT ? function() {
        try {
          if (d3.isTextEnabled()) {
            const t6 = b3.getCurrentRepresentation();
            if (isNaN(t6.fragmentDuration)) {
              const t7 = a2.getCurrentSchedulingInfo(l2.SCHEDULING_INFO);
              return t7 ? t7.duration : 0;
            }
            return t6.fragmentDuration;
          }
          return 0;
        } catch (t6) {
          return 0;
        }
      }() : c3 === m2.default.AUDIO && T3 ? function() {
        try {
          const t6 = a2.getCurrentBufferLevel(m2.default.VIDEO), e5 = b3.getCurrentRepresentation();
          return isNaN(e5.fragmentDuration) ? t6 + 1 : Math.max(t6 + 1, e5.fragmentDuration);
        } catch (t6) {
          return 0;
        }
      }() : function() {
        try {
          const t6 = y3.get().streaming.enhancement.enabled ? b3.getCurrentCompositeRepresentation() : b3.getCurrentRepresentation(), e5 = t6.mediaInfo.streamInfo;
          return s2.isPlayingAtTopQuality(t6) ? e5.manifestInfo.duration >= y3.get().streaming.buffer.longFormContentDurationThreshold ? y3.get().streaming.buffer.bufferTimeAtTopQualityLongForm : y3.get().streaming.buffer.bufferTimeAtTopQuality : r3.getBufferTimeDefaultUnadjusted();
        } catch (t6) {
          return r3.getBufferTimeDefaultUnadjusted();
        }
      }(), t5) : t5;
    }
    function F2() {
      U2(true);
    }
    function U2(t5) {
      if (u3 && i3) {
        const e4 = i3.getRequests({ state: nt.FRAGMENT_MODEL_EXECUTED, time: u3.getTime(), threshold: 0 })[0];
        e4 && u3.getTime() >= e4.startTime && ((!S3.representation || e4.representation.mediaInfo.type === S3.representation.mediaInfo.type && e4.representation.mediaInfo.index !== S3.representation.mediaInfo.index) && t5 && function(t6) {
          I3.debug(`Track change rendered for streamId ${R2.id} and type ${c3}`), n3.trigger(g2.default.TRACK_CHANGE_RENDERED, { mediaType: c3, oldMediaInfo: S3 && S3.representation && S3.representation.mediaInfo ? S3.representation.mediaInfo : null, newMediaInfo: t6.representation.mediaInfo, streamId: R2.id });
        }(e4), S3.representation && e4.representation.id === S3.representation.id || !t5 || function(t6) {
          I3.debug(`Quality change rendered for streamId ${R2.id} and type ${c3}`), n3.trigger(g2.default.QUALITY_CHANGE_RENDERED, { mediaType: c3, oldRepresentation: S3.representation ? S3.representation : null, newRepresentation: t6.representation, streamId: R2.id });
        }(e4), S3.representation = e4.representation);
      }
    }
    function j2() {
      i3.abortRequests(), O2();
    }
    function q2() {
      y3.get().streaming.scheduling.scheduleWhilePaused || P2();
    }
    function B2(t5) {
      a2.updatePlayListTraceMetrics({ playbackspeed: t5.playbackRate.toString() });
    }
    function G2() {
      E3 = true, C2 = 0, w3 = null, S3 = { representation: null }, N2 = false, _3 = false, k3 = true;
    }
    return v3 = { clearScheduleTimer: O2, getBufferTarget: L2, getPlaybackController: function() {
      return u3;
    }, getStreamId: function() {
      return R2.id;
    }, getSwitchTrack: function() {
      return N2;
    }, getTimeToLoadDelay: function() {
      return C2;
    }, getType: function() {
      return c3;
    }, initialize: function(t5) {
      T3 = t5, n3.on(g2.default.URL_RESOLUTION_FAILED, j2, v3), n3.on(h2.default.PLAYBACK_STARTED, q2, v3), n3.on(h2.default.PLAYBACK_RATE_CHANGED, B2, v3), n3.on(h2.default.PLAYBACK_TIME_UPDATED, F2, v3), n3.on(h2.default.MANAGED_MEDIA_SOURCE_START_STREAMING, x2, v3), n3.on(h2.default.MANAGED_MEDIA_SOURCE_END_STREAMING, M2, v3);
    }, reset: function() {
      n3.off(g2.default.URL_RESOLUTION_FAILED, j2, v3), n3.off(h2.default.PLAYBACK_STARTED, q2, v3), n3.off(h2.default.PLAYBACK_RATE_CHANGED, B2, v3), n3.off(h2.default.PLAYBACK_TIME_UPDATED, F2, v3), n3.off(h2.default.MANAGED_MEDIA_SOURCE_START_STREAMING, x2, v3), n3.off(h2.default.MANAGED_MEDIA_SOURCE_END_STREAMING, M2, v3), O2(), U2(false), G2(), R2 = null;
    }, setShouldCheckPlaybackQuality: function(t5) {
      E3 = t5;
    }, setInitSegmentRequired: function(t5) {
      _3 = t5;
    }, setLastInitializedRepresentationId: function(t5) {
      w3 = t5;
    }, setup: D2, setSwitchTrack: function(t5) {
      N2 = t5;
    }, setTimeToLoadDelay: function(t5) {
      C2 = t5;
    }, startScheduleTimer: P2 }, D2(), v3;
  }
  _l.__dashjs_factory_name = "ScheduleController";
  var vl = r2.default.getClassFactory(_l);
  const Sl = /\$(RepresentationID|Number|SubNumber|Bandwidth|Time)?(?:%0([0-9]+)([diouxX]))?\$/g;
  var wl = class extends Li {
    constructor() {
      super(), this.isPartialSegment = true, this.replacementSubNumber = NaN, this.totalNumberOfPartialSegments = NaN;
    }
  };
  function Il(t4) {
    return t4 ? t4.totalNumberOfPartialSegments && !isNaN(t4.totalNumberOfPartialSegments) && t4.totalNumberOfPartialSegments > 0 && !isNaN(t4.subNumberOfPartialSegmentToRequest) ? function(t5) {
      const e3 = function(t6, e4) {
        const n3 = new wl(), a2 = t6.segmentDurationInSeconds / t6.totalNumberOfPartialSegments, { representation: r3, timelineConverter: i3, isDynamic: l3, index: o3, totalNumberOfPartialSegments: s2 } = t6, u3 = kl({ representation: r3, segmentDurationInSeconds: a2, presentationStartTime: t6.presentationStartTime + e4 * a2, presentationEndTime: t6.presentationStartTime + (e4 + 1) * a2, timelineConverter: i3, isDynamic: l3, mediaTimeInSeconds: t6.mediaTimeInSeconds + e4 * a2, index: o3 });
        return n3.assignAttributes(u3), n3.replacementSubNumber = e4, n3.totalNumberOfPartialSegments = s2, n3;
      }(t5, t5.subNumberOfPartialSegmentToRequest);
      return Al(e3, t5), e3;
    }(t4) : function(t5) {
      const e3 = new Fi(), n3 = kl(t5);
      return e3.assignAttributes(n3), Al(e3, t5), e3;
    }(t4) : null;
  }
  function kl(t4) {
    const { representation: e3, segmentDurationInSeconds: n3, presentationStartTime: a2, presentationEndTime: r3, mediaTimeInSeconds: i3, timelineConverter: l3, isDynamic: o3, index: s2 } = t4, u3 = { availabilityEndTime: l3.calcAvailabilityEndTimeFromPresentationTime(r3 + n3, e3, o3), availabilityStartTime: l3.calcAvailabilityStartTimeFromPresentationTime(r3, e3, o3), duration: n3, index: s2, mediaStartTime: i3, presentationStartTime: a2, replacementNumber: e3.startNumber + s2, representation: e3 };
    return u3.wallStartTime = l3.calcWallTimeForSegment(u3, o3), u3;
  }
  function Al(t4, e3) {
    const { tManifest: n3, mediaTime: a2, mediaUrl: r3, mediaRange: i3 } = e3;
    t4.replacementTime = n3 || a2, t4.media = Nl(r3, t4.representation.id, t4.replacementNumber, t4.replacementSubNumber, t4.representation.bandwidth, t4.replacementTime), t4.mediaRange = i3, t4.mediaUrl = r3;
  }
  function Rl(t4, e3, n3, a2) {
    const r3 = e3.adaptation.period;
    if (isFinite(r3.duration) && r3.start + r3.duration <= n3.presentationStartTime)
      return false;
    if (a2) {
      if ("INF" === e3.availabilityTimeOffset)
        return true;
      const a3 = t4.getClientReferenceTime();
      return n3.availabilityStartTime.getTime() <= a3 && (!isFinite(n3.availabilityEndTime) || n3.availabilityEndTime.getTime() >= a3);
    }
    return true;
  }
  function Nl(t4, e3, n3, a2, r3, i3) {
    return t4 ? function(t5, e4, n4, a3, r4, i4) {
      return t5.replace(Sl, (t6, l3, o3, s2) => {
        let u3, d3;
        switch (l3) {
          case void 0:
            return "$";
          case "RepresentationID":
            u3 = e4;
            break;
          case "Number":
            u3 = n4;
            break;
          case "SubNumber":
            u3 = a3;
            break;
          case "Bandwidth":
            u3 = r4;
            break;
          case "Time":
            if ("string" == typeof i4)
              return i4;
            u3 = i4 ? Math.round(i4) : i4;
            break;
          default:
            u3 = null;
        }
        if (null == u3)
          return t6;
        switch (s2) {
          case void 0:
          case "d":
          case "i":
          case "u":
            d3 = u3.toString();
            break;
          case "o":
            d3 = u3.toString(8);
            break;
          case "x":
            d3 = u3.toString(16);
            break;
          case "X":
            d3 = u3.toString(16).toUpperCase();
            break;
          default:
            d3 = u3.toString();
        }
        const c3 = parseInt(o3, 10) || 1;
        return d3.padStart(c3, "0");
      });
    }(t4, e3, n3, a2, r3, i3) : t4;
  }
  function Cl(t4) {
    const { index: e3, isDynamic: n3, mediaRange: a2, mediaTime: r3, mediaUrl: i3, representation: l3, subNumberOfPartialSegmentToRequest: o3, timelineConverter: s2, totalNumberOfPartialSegments: u3 } = t4;
    let d3, c3, f3;
    d3 = l3.segmentDuration, isNaN(d3) && (d3 = l3.adaptation.period.duration), c3 = parseFloat((l3.adaptation.period.start + e3 * d3).toFixed(5)), f3 = parseFloat((c3 + d3).toFixed(5));
    const g3 = Il({ index: e3, isDynamic: n3, mediaRange: a2, mediaTime: r3, mediaTimeInSeconds: s2.calcMediaTimeFromPresentationTime(c3, l3), mediaUrl: i3, presentationEndTime: f3, presentationStartTime: c3, representation: l3, segmentDurationInSeconds: d3, subNumberOfPartialSegmentToRequest: o3, timelineConverter: s2, totalNumberOfPartialSegments: u3 });
    return Rl(s2, l3, g3, n3) ? g3 : null;
  }
  function Dl(t4) {
    const { durationInTimescale: e3, fTimescale: n3, index: a2, subNumberOfPartialSegmentToRequest: r3, isDynamic: i3, mediaRange: l3, mediaTime: o3, mediaUrl: s2, totalNumberOfPartialSegments: u3, representation: d3, tManifest: c3, timelineConverter: f3 } = t4, g3 = o3 / n3, m3 = e3 / n3;
    let h3 = f3.calcPresentationTimeFromMediaTime(g3, d3), p3 = Il({ representation: d3, segmentDurationInSeconds: m3, presentationStartTime: h3, presentationEndTime: h3 + m3, mediaTimeInSeconds: g3, timelineConverter: f3, isDynamic: i3, index: a2, totalNumberOfPartialSegments: u3, subNumberOfPartialSegmentToRequest: r3, mediaUrl: s2, mediaRange: l3, tManifest: c3, mediaTime: o3 });
    return Rl(f3, d3, p3, i3) ? p3 : null;
  }
  function xl(t4) {
    return t4.k;
  }
  function Ml(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.events, a2 = t4.abrController, r3 = t4.dashMetrics, i3 = t4.playbackController, l3 = t4.timelineConverter, o3 = t4.type, s2 = t4.streamInfo, u3 = t4.segmentsController, d3 = t4.isDynamic;
    let c3, f3, g3;
    function p3() {
      return o3;
    }
    function b3() {
      return (g3 == null ? void 0 : g3.mediaInfo.type) === o3 ? g3 : function() {
        let t5 = g3 == null ? void 0 : g3.dependentRepresentation;
        if (t5) {
          if (!t5.mediaInfo)
            throw new Error("dependentRepresentation has no mediaInfo!");
          if (t5.mediaInfo.type === o3)
            return t5;
        }
        return null;
      }();
    }
    function y3() {
      g3 = null, f3 = [];
    }
    function E3(t5) {
      return new Promise((e4, n4) => {
        const a3 = t5.hasInitialization(), i4 = t5.hasSegments(), o4 = [];
        o4.push(u3.updateInitData(t5, a3)), o4.push(u3.updateSegmentData(t5, i4)), Promise.all(o4).then((n5) => {
          var a4;
          n5[0] && !n5[0].error && (t5 = function(t6, e5) {
            return e5 && !e5.error && e5.representation ? e5.representation : t6;
          }(t5, n5[0])), n5[1] && !n5[1].error && (t5 = function(t6, e5) {
            if (!e5 || e5.error)
              return;
            const n6 = e5.segments, a5 = [];
            let r4, i5, o5, s3, u4 = 0;
            for (r4 = 0, i5 = n6 ? n6.length : 0; r4 < i5; r4++)
              o5 = n6[r4], s3 = Dl({ durationInTimescale: o5.duration, fTimescale: o5.timescale, index: u4, isDynamic: d3, mediaRange: o5.mediaRange, mediaTime: o5.startTime, mediaUrl: o5.media, representation: t6, timelineConverter: l3 }), s3 && (a5.push(s3), s3 = null, u4++);
            return a5.length > 0 && (t6.segments = a5), t6;
          }(t5, n5[1])), t5.fragmentDuration = t5.segmentDuration ? t5.segmentDuration : t5.segments && t5.segments.length > 0 ? t5.segments[0].duration : NaN, (a4 = t5).mediaFinishedInformation = u3.getMediaFinishedInformation(a4), function(t6) {
            let e5, n6 = r3.getCurrentManifestUpdate(), a5 = false;
            if (n6) {
              for (let r4 = 0; r4 < n6.representationInfo.length; r4++)
                if (e5 = n6.representationInfo[r4], e5.index === t6.index && e5.mediaType === p3()) {
                  a5 = true;
                  break;
                }
              a5 || r3.addManifestUpdateRepresentationInfo(t6, p3());
            }
          }(t5), e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }
    function T3(t5) {
      if (!f3 || 0 === f3.length)
        return null;
      const e4 = f3.filter((e5) => e5.id === t5);
      return e4.length > 0 ? e4[0] : null;
    }
    function _3(t5) {
      e3.trigger(n3.DATA_UPDATE_COMPLETED, { currentRepresentation: g3, error: t5 }, { streamId: s2.id, mediaType: o3 });
    }
    function v3(t5) {
      g3 && g3.id === t5.id || function(t6) {
        !function() {
          if (!(a2 && r3 && i3 && l3))
            throw new Error(m2.default.MISSING_CONFIG_ERROR);
        }();
        const n4 = /* @__PURE__ */ new Date(), u4 = 1e3 * i3.getTime();
        t6 && r3.addRepresentationSwitch(t6.adaptation.type, n4, u4, t6.id), e3.trigger(h2.default.REPRESENTATION_SWITCH, { mediaType: o3, streamId: s2.id, currentRepresentation: t6 }, { streamId: s2.id, mediaType: o3 });
      }(t5), g3 = t5;
    }
    function S3(t5) {
      if (t5.newDuration) {
        const e4 = b3();
        e4 && e4.adaptation.period && (e4.adaptation.period.duration = t5.newDuration);
      }
    }
    return c3 = { getCurrentCompositeRepresentation: function() {
      return g3;
    }, getCurrentRepresentation: b3, getRepresentationById: T3, getStreamId: function() {
      return s2.id;
    }, getType: p3, prepareQualityChange: function(t5) {
      const e4 = f3.filter((e5) => e5.id === t5.id);
      e4.length > 0 && v3(e4[0]);
    }, reset: function() {
      e3.off(h2.default.MANIFEST_VALIDITY_CHANGED, S3, c3), y3();
    }, updateData: function(t5, e4, n4) {
      return new Promise((l4, u4) => {
        if (f3 = t5, v3(T3(n4)), o3 !== m2.default.VIDEO && o3 !== m2.default.ENHANCEMENT && o3 !== m2.default.AUDIO && (o3 !== m2.default.TEXT || !e4))
          return _3(), void l4();
        const d4 = [];
        for (let t6 = 0, e5 = f3.length; t6 < e5; t6++) {
          const e6 = f3[t6];
          d4.push(E3(e6));
        }
        Promise.all(d4).then(() => {
          !function() {
            a2.setPlaybackQuality(o3, s2, g3);
            const t6 = r3.getCurrentDVRInfo(o3);
            t6 && r3.updateManifestUpdateInfo({ latency: t6.range.end - i3.getTime() }), _3();
          }(), l4();
        }).catch((t6) => {
          u4(t6);
        });
      });
    } }, y3(), e3.on(h2.default.MANIFEST_VALIDITY_CHANGED, S3, c3), c3;
  }
  Ml.__dashjs_factory_name = "RepresentationController";
  var Pl = r2.default.getClassFactory(Ml);
  function Ol(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.debug, a2 = t4.urlUtils, r3 = t4.type, i3 = t4.streamInfo, l3 = t4.segmentsController, o3 = t4.timelineConverter, s2 = t4.baseURLController;
    let u3, d3, c3, f3, g3;
    function m3() {
      return r3;
    }
    function p3() {
      c3 = null;
    }
    function b3(t5, e4, n4) {
      const r4 = s2.resolve(n4.path);
      let i4, l4, o4 = {};
      return r4 && e4 !== r4.url && a2.isRelative(e4) ? (i4 = r4.url, l4 = r4.serviceLocation, o4 = r4.queryParams, e4 && (i4 = a2.resolve(e4, i4))) : i4 = e4, !a2.isRelative(i4) && (t5.url = i4, t5.serviceLocation = l4, t5.queryParams = o4, true);
    }
    function y3(t5, e4, n4) {
      let a3 = null;
      if (!e4 || !e4.segmentInfoType)
        return a3;
      const r4 = l3.getSegmentByTime(e4, n4);
      return r4 && (c3 = r4, d3.debug("Index for time " + n4 + " is " + r4.index), a3 = E3(0, r4)), a3;
    }
    function E3(t5, e4) {
      if (null == e4)
        return null;
      const n4 = new Q(), a3 = e4.representation, r4 = a3.bandwidth, i4 = Nl(e4.media, a3.id, e4.replacementNumber, e4.replacementSubNumber, r4, e4.replacementTime);
      return n4.adaptationIndex = a3.adaptation.index, n4.availabilityEndTime = e4.availabilityEndTime, n4.availabilityStartTime = e4.availabilityStartTime, n4.availabilityTimeComplete = a3.availabilityTimeComplete, n4.bandwidth = a3.bandwidth, n4.duration = e4.duration, n4.index = e4.index, n4.isPartialSegmentRequest = e4.isPartialSegment, n4.mediaStartTime = e4.mediaStartTime, n4.mediaType = m3(), n4.presentationStartTime = e4.presentationStartTime, n4.range = e4.mediaRange, n4.representation = a3, n4.startTime = e4.presentationStartTime, n4.timescale = a3.timescale, n4.type = w2.HTTPRequest.MEDIA_SEGMENT_TYPE, n4.wallStartTime = e4.wallStartTime, b3(n4, i4, a3) ? n4 : void 0;
    }
    function T3(t5) {
      if (!t5)
        return { indexToRequest: 0, subNumberOfPartialSegmentToRequest: NaN };
      const e4 = t5.isPartialSegment, n4 = !isNaN(t5.replacementSubNumber), a3 = !isNaN(t5.totalNumberOfPartialSegments);
      if (e4 && n4 && a3) {
        const e5 = t5.replacementSubNumber + 1;
        return e5 < t5.totalNumberOfPartialSegments ? { indexToRequest: t5.index, subNumberOfPartialSegmentToRequest: e5 } : { indexToRequest: t5.index + 1, subNumberOfPartialSegmentToRequest: 0 };
      }
      return { indexToRequest: t5.index + 1, subNumberOfPartialSegmentToRequest: NaN };
    }
    function _3(t5, e4, n4, a3) {
      let r4 = null;
      const i4 = l3.getSegmentByIndex(e4, n4, a3, c3);
      if (i4)
        r4 = E3(0, i4), c3 = i4;
      else {
        if (f3 && !g3)
          return d3.debug(m3() + " No segment found at index: " + n4 + ". Wait for next loop"), null;
        g3 = true;
      }
      return r4;
    }
    function v3() {
      d3.debug("Dynamic stream complete"), g3 = true;
    }
    return u3 = { getCurrentIndex: function() {
      return c3 ? c3.index : -1;
    }, getInitRequest: function(t5, e4) {
      return e4 ? function(t6, e5, n4) {
        const a3 = new Q(), r4 = e5.adaptation.period, i4 = r4.start;
        if (a3.mediaType = n4, a3.type = w2.HTTPRequest.INIT_SEGMENT_TYPE, a3.range = e5.range, a3.availabilityStartTime = o3.calcAvailabilityStartTimeFromPresentationTime(i4, e5, f3), a3.availabilityEndTime = o3.calcAvailabilityEndTimeFromPresentationTime(i4 + r4.duration, e5, f3), a3.representation = e5, b3(a3, e5.initialization, e5))
          return a3.url = Nl(a3.url, e5.id, void 0, void 0, e5.bandwidth), a3;
      }(0, e4, m3()) : null;
    }, getLastSegment: function() {
      return c3;
    }, getNextSegmentRequest: function(t5, e4) {
      if (!e4 || !e4.segmentInfoType)
        return null;
      if (function(t6) {
        return t6 && c3 && t6.endNumber && c3.replacementNumber && c3.replacementNumber >= t6.endNumber;
      }(e4))
        return g3 = true, null;
      let { indexToRequest: n4, subNumberOfPartialSegmentToRequest: a3 } = T3(c3);
      return _3(0, e4, n4, a3);
    }, getNextSegmentRequestIdempotent: function(t5, e4) {
      let n4 = null, { indexToRequest: a3, subNumberOfPartialSegmentToRequest: r4 } = T3(c3);
      const i4 = l3.getSegmentByIndex(e4, a3, r4, c3);
      return i4 ? (n4 = E3(0, i4), n4) : null;
    }, getSegmentRequestForTime: y3, getStreamId: function() {
      return i3.id;
    }, getStreamInfo: function() {
      return i3;
    }, getType: m3, getValidTimeAheadOfTargetTime: function(t5, e4, n4, a3) {
      try {
        if (isNaN(t5) || !e4 || !n4)
          return NaN;
        if (t5 < 0 && (t5 = 0), isNaN(a3) && (a3 = 0.5), y3(0, n4, t5))
          return t5;
        if (n4.adaptation.period.start + n4.adaptation.period.duration < t5)
          return NaN;
        const r4 = isFinite(n4.adaptation.period.duration) ? n4.adaptation.period.start + n4.adaptation.period.duration : t5 + 30;
        let i4 = Math.min(t5 + a3, r4), l4 = NaN, o4 = null;
        for (; i4 <= r4; ) {
          let t6 = null;
          if (i4 <= r4 && (t6 = y3(0, n4, i4)), t6) {
            l4 = i4, o4 = t6;
            break;
          }
          i4 += a3;
        }
        if (o4) {
          const e5 = o4.startTime + o4.duration;
          return t5 > o4.startTime && e5 - t5 > a3 ? t5 : !isNaN(o4.startTime) && t5 < o4.startTime && l4 > o4.startTime ? o4.startTime + 1e-3 : Math.min(e5 - a3, l4);
        }
        return l4;
      } catch (t6) {
        return NaN;
      }
    }, initialize: function(t5) {
      f3 = t5, g3 = false, l3.initialize(t5);
    }, isLastSegmentRequested: function(t5, e4) {
      if (!t5 || !c3)
        return false;
      if (g3)
        return true;
      if (!isFinite(t5.adaptation.period.duration))
        return false;
      if (c3.presentationStartTime + c3.duration > e4)
        return false;
      if (t5.mediaFinishedInformation && !isNaN(t5.mediaFinishedInformation.numberOfSegments) && !isNaN(c3.index) && c3.index >= t5.mediaFinishedInformation.numberOfSegments - 1) {
        if (!f3 || t5.segmentInfoType === Vt.default.SEGMENT_TEMPLATE)
          return true;
        if (f3 && t5.segmentInfoType === Vt.default.SEGMENT_LIST && t5.adaptation.period.nextPeriodId)
          return true;
      }
      return !!(f3 && t5.adaptation.period.nextPeriodId && t5.segmentInfoType === Vt.default.SEGMENT_TIMELINE && t5.mediaFinishedInformation && !isNaN(t5.mediaFinishedInformation.mediaTimeOfLastSignaledSegment) && c3 && !isNaN(c3.mediaStartTime) && !isNaN(c3.duration) && c3.mediaStartTime + c3.duration >= t5.mediaFinishedInformation.mediaTimeOfLastSignaledSegment - 0.05);
    }, repeatSegmentRequest: function(t5, e4) {
      return e4 && e4.segmentInfoType ? _3(0, e4, c3 ? c3.index : 0, c3 && c3.isPartialSegment && !isNaN(c3.replacementSubNumber) ? c3.replacementSubNumber : NaN) : null;
    }, reset: function() {
      p3(), e3.off(h2.default.DYNAMIC_TO_STATIC, v3, u3);
    } }, d3 = n3.getLogger(u3), p3(), e3.on(h2.default.DYNAMIC_TO_STATIC, v3, u3), u3;
  }
  Ol.__dashjs_factory_name = "DashHandler";
  var zl = r2.default.getClassFactory(Ol);
  function Ll(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter, a2 = t4.dashMetrics;
    let r3;
    function i3(t5, a3) {
      if (function() {
        if (!n3)
          throw new Error(m2.default.MISSING_CONFIG_ERROR);
      }(), !t5)
        return null;
      void 0 === a3 && (a3 = null);
      let r4 = null;
      const i4 = n3.calcMediaTimeFromPresentationTime(a3, t5);
      return function(t6, e4) {
        const n4 = function(t7) {
          return t7.adaptation.period.mpd.manifest.Period[t7.adaptation.period.index].AdaptationSet[t7.adaptation.index].Representation[t7.index].SegmentTemplate || t7.adaptation.period.mpd.manifest.Period[t7.adaptation.period.index].AdaptationSet[t7.adaptation.index].Representation[t7.index].SegmentList;
        }(t6), a4 = n4.SegmentTimeline, r5 = n4.SegmentURL;
        let i5, o3, s2, u3, d3, c3, f3 = 0, g3 = -1;
        c3 = t6.timescale, i5 = a4.S;
        let m3 = false;
        const h3 = i5.length;
        for (s2 = 0; s2 < h3 && !m3; s2++)
          for (o3 = i5[s2], d3 = 0, o3.hasOwnProperty("r") && (d3 = o3.r), o3.hasOwnProperty("t") && (f3 = o3.t), d3 < 0 && (d3 = l3(t6, i5[s2 + 1], o3, c3, f3 / c3)), u3 = 0; u3 <= d3 && !m3; u3++)
            g3++, m3 = e4({ mediaTime: f3, segmentBase: n4, segmentURL: r5, currentSElement: o3, sElementCounterIncludingRepeats: g3, sElementCounter: s2 }), m3 && (t6.segmentDuration = o3.d / c3), f3 += o3.d;
      }(t5, function(a4) {
        const l4 = t5.timescale;
        return function(a5, i5) {
          const { mediaTime: l5, segmentBase: o3, segmentURL: s2, currentSElement: u3, sElementCounterIncludingRepeats: d3, sElementCounter: c3 } = i5, f3 = u3.d, g3 = t5.timescale;
          return a5 < l5 + f3 && a5 >= l5 && (function(a6) {
            const { segmentBase: i6, segmentURL: l6, sElementCounter: o4, currentSElement: s3, mediaTime: u4, durationInTimescale: d4, fTimescale: c4, requiredMediaTimeInTimescaleUnits: f4, sElementCounterIncludingRepeats: g4 } = a6;
            let m3 = function(t6, e4, n4) {
              let a7 = t6.media;
              return e4 && (a7 = e4[n4].media || ""), a7;
            }(i6, l6, o4), h3 = function(t6, e4, n4) {
              let a7 = t6.mediaRange;
              return e4 && (a7 = e4[n4].mediaRange), a7;
            }(s3, l6, o4);
            const p3 = xl(s3), b3 = function(t6) {
              if (!t6 || void 0 === t6.totalNumberOfPartialSegments || isNaN(t6.totalNumberOfPartialSegments) || t6.totalNumberOfPartialSegments < 1)
                return;
              const { durationInTimescale: e4, requiredMediaTimeInTimescaleUnits: n4, mediaTime: a7, totalNumberOfPartialSegments: r5 } = t6, i7 = e4 / r5;
              for (let t7 = 0; t7 < r5; t7++) {
                const e5 = a7 + t7 * i7;
                if (n4 >= e5 && n4 < e5 + i7)
                  return t7;
              }
              return NaN;
            }({ durationInTimescale: d4, requiredMediaTimeInTimescaleUnits: f4, mediaTime: u4, totalNumberOfPartialSegments: p3 });
            r4 = Dl({ timelineConverter: n3, isDynamic: e3, representation: t5, mediaTime: u4, durationInTimescale: d4, fTimescale: c4, mediaUrl: m3, mediaRange: h3, index: g4, tManifest: s3.tManifest, totalNumberOfPartialSegments: p3, subNumberOfPartialSegmentToRequest: b3 });
          }({ segmentBase: o3, segmentURL: s2, sElementCounter: c3, currentSElement: u3, mediaTime: l5, durationInTimescale: f3, fTimescale: g3, requiredMediaTimeInTimescaleUnits: a5, sElementCounterIncludingRepeats: d3 }), true);
        }(parseFloat((i4 * l4).toPrecision(15)), a4);
      }), r4;
    }
    function l3(t5, e4, r4, i4, l4) {
      let o3;
      if (e4 && e4.hasOwnProperty("t"))
        o3 = e4.t / i4;
      else
        try {
          let e5 = 0;
          if (isNaN(t5.adaptation.period.start) || isNaN(t5.adaptation.period.duration) || !isFinite(t5.adaptation.period.duration)) {
            const t6 = a2.getCurrentDVRInfo();
            e5 = isNaN(t6.end) ? 0 : t6.end;
          } else
            e5 = t5.adaptation.period.start + t5.adaptation.period.duration;
          o3 = n3.calcMediaTimeFromPresentationTime(e5, t5), t5.segmentDuration = r4.d / i4;
        } catch (t6) {
          o3 = 0;
        }
      return Math.max(Math.ceil((o3 - l4) / (r4.d / i4)) - 1, 0);
    }
    return r3 = { getMediaFinishedInformation: function(t5) {
      if (!t5)
        return 0;
      const e4 = (t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentTemplate || t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList).SegmentTimeline;
      let n4, a3, r4, i4, o3, s2, u3 = 0, d3 = 0, c3 = 0;
      s2 = t5.timescale, n4 = e4.S;
      const f3 = n4.length;
      for (r4 = 0; r4 < f3; r4++)
        for (a3 = n4[r4], o3 = 0, a3.hasOwnProperty("r") && (o3 = a3.r), a3.hasOwnProperty("t") && (u3 = a3.t, d3 = u3 / s2), o3 < 0 && (o3 = l3(t5, n4[r4 + 1], a3, s2, d3)), i4 = 0; i4 <= o3; i4++)
          c3++, u3 += a3.d, d3 = u3 / s2;
      return { numberOfSegments: c3, mediaTimeOfLastSignaledSegment: d3 };
    }, getSegmentByIndex: function(t5, e4) {
      return t5 ? i3(t5, e4 && !isNaN(e4.presentationStartTime) ? e4.presentationStartTime + e4.duration + 0.01 : 0) : null;
    }, getSegmentByTime: i3 }, r3;
  }
  Ll.__dashjs_factory_name = "TimelineSegmentsGetter";
  var Fl = r2.default.getClassFactory(Ll);
  function Ul(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter;
    let a2;
    function r3(t5, a3, r4) {
      if (!t5)
        return null;
      const l3 = i3(t5), o3 = xl(l3);
      void 0 !== o3 && o3 >= 0 && (r4 = void 0 !== r4 && r4 < o3 ? r4 : 0);
      const s2 = Cl({ index: a3 = Math.max(a3, 0), isDynamic: e3, mediaTime: Math.round(a3 * t5.segmentDuration * t5.timescale, 10), mediaUrl: l3.media, representation: t5, subNumberOfPartialSegmentToRequest: r4, timelineConverter: n3, totalNumberOfPartialSegments: o3 });
      return s2 && t5.endNumber && s2.replacementNumber > t5.endNumber ? null : s2;
    }
    function i3(t5) {
      return t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentTemplate;
    }
    return a2 = { getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      if (!t5)
        return e4;
      const n4 = t5.segmentDuration;
      return isNaN(n4) ? e4.numberOfSegments = 1 : e4.numberOfSegments = Math.ceil(t5.adaptation.period.duration / n4), e4;
    }, getSegmentByIndex: r3, getSegmentByTime: function(t5, e4) {
      if (!t5)
        return null;
      const a3 = t5.segmentDuration;
      if (isNaN(a3))
        return null;
      let l3 = n3.calcPeriodRelativeTimeFromMpdRelativeTime(t5, e4);
      const o3 = i3(t5), s2 = Math.floor(l3 / a3), u3 = function(t6) {
        if (!t6 || void 0 === t6.totalNumberOfPartialSegments || isNaN(t6.totalNumberOfPartialSegments) || t6.totalNumberOfPartialSegments < 1)
          return;
        const { totalNumberOfPartialSegments: e5, representation: n4, requestedTimeRelativeToPeriodStart: a4, indexWithoutStartNumber: r4 } = t6, i4 = r4 * n4.segmentDuration, l4 = n4.segmentDuration / e5, o4 = a4 - i4;
        let s3 = Math.floor(o4 / l4);
        return s3 = Math.max(0, Math.min(s3, e5 - 1)), s3;
      }({ totalNumberOfPartialSegments: xl(o3), representation: t5, requestedTimeRelativeToPeriodStart: l3, indexWithoutStartNumber: s2 });
      return r3(t5, s2, u3);
    } }, a2;
  }
  Ul.__dashjs_factory_name = "TemplateSegmentsGetter";
  var jl = r2.default.getClassFactory(Ul);
  function ql(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter;
    let a2;
    function r3() {
      if (!n3 || !n3.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
    }
    function i3(t5, a3) {
      if (r3(), !t5)
        return null;
      const i4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList, l3 = i4.SegmentURL.length, o3 = t5 && !isNaN(t5.startNumber) ? t5.startNumber : 1, s2 = Math.max(o3 - 1, 0), u3 = Math.max(a3 - s2, 0);
      let d3 = null;
      if (u3 < l3) {
        const r4 = i4.SegmentURL[u3];
        d3 = Cl({ index: a3, isDynamic: e3, mediaRange: r4.mediaRange, mediaTime: (o3 + a3 - 1) * t5.segmentDuration, representation: t5, timelineConverter: n3 }), d3 && (d3.media = r4.media ? r4.media : "", d3.indexRange = r4.indexRange);
      }
      return d3;
    }
    return a2 = { getSegmentByIndex: i3, getSegmentByTime: function(t5, e4) {
      if (r3(), !t5)
        return null;
      const a3 = t5.segmentDuration;
      if (isNaN(a3))
        return null;
      const l3 = n3.calcPeriodRelativeTimeFromMpdRelativeTime(t5, e4);
      return i3(t5, Math.floor(l3 / a3));
    }, getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      if (!t5)
        return e4;
      const n4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList, a3 = t5 && !isNaN(t5.startNumber) ? t5.startNumber : 1, r4 = Math.max(a3 - 1, 0);
      return e4.numberOfSegments = r4 + n4.SegmentURL.length, e4;
    } }, a2;
  }
  ql.__dashjs_factory_name = "ListSegmentsGetter";
  var Bl = r2.default.getClassFactory(ql);
  function Gl(t4) {
    const e3 = (t4 = t4 || {}).timelineConverter;
    let n3;
    function a2() {
      if (!e3 || !e3.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
    }
    function r3(t5, e4) {
      if (a2(), !t5)
        return null;
      const n4 = t5.segments ? t5.segments.length : -1;
      let r4;
      if (e4 < n4 && (r4 = t5.segments[e4], r4 && r4.index === e4))
        return r4;
      for (let a3 = 0; a3 < n4; a3++)
        if (r4 = t5.segments[a3], r4 && r4.index === e4)
          return r4;
      return null;
    }
    return n3 = { getSegmentByIndex: r3, getSegmentByTime: function(t5, e4) {
      a2();
      const n4 = function(t6, e5) {
        if (!t6)
          return -1;
        const n5 = t6.segments, a3 = n5 ? n5.length : null;
        let r4, i3, l3, o3, s2, u3 = -1;
        if (n5 && a3 > 0) {
          for (s2 = 0; s2 < a3; s2++)
            if (i3 = n5[s2], l3 = i3.presentationStartTime, o3 = i3.duration, r4 = o3 / 2, e5 + r4 >= l3 && e5 - r4 < l3 + o3) {
              u3 = i3.index;
              break;
            }
        }
        return u3;
      }(t5, e4);
      return r3(t5, n4);
    }, getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      return t5 && t5.segments ? (e4.numberOfSegments = t5.segments.length, e4) : e4;
    } }, n3;
  }
  Gl.__dashjs_factory_name = "SegmentBaseGetter";
  var Hl = r2.default.getClassFactory(Gl);
  function Yl(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashConstants, a2 = t4.type, r3 = t4.segmentBaseController;
    let i3, l3;
    function o3(t5) {
      return t5 ? t5.segments ? l3[n3.SEGMENT_BASE] : l3[t5.segmentInfoType] : null;
    }
    return i3 = { initialize: function(a3) {
      l3[n3.SEGMENT_TIMELINE] = Fl(e3).create(t4, a3), l3[n3.SEGMENT_TEMPLATE] = jl(e3).create(t4, a3), l3[n3.SEGMENT_LIST] = Bl(e3).create(t4, a3), l3[n3.SEGMENT_BASE] = Hl(e3).create(t4, a3);
    }, updateInitData: function(t5, e4) {
      return e4 ? Promise.resolve() : r3.getSegmentBaseInitSegment({ representation: t5, mediaType: a2 });
    }, updateSegmentData: function(t5, e4) {
      return e4 ? Promise.resolve() : r3.getSegmentList({ mimeType: t5.mimeType, representation: t5, mediaType: a2 });
    }, getSegmentByIndex: function(t5, e4, a3, r4) {
      const i4 = o3(t5);
      return i4 ? t5.segmentInfoType ? t5.segmentInfoType === n3.SEGMENT_TIMELINE ? i4.getSegmentByIndex(t5, r4) : t5.segmentInfoType === n3.SEGMENT_TEMPLATE ? i4.getSegmentByIndex(t5, e4, a3) : i4.getSegmentByIndex(t5, e4) : i4.getSegmentByIndex(t5, e4) : null;
    }, getSegmentByTime: function(t5, e4) {
      const n4 = o3(t5);
      return n4 ? n4.getSegmentByTime(t5, e4) : null;
    }, getMediaFinishedInformation: function(t5) {
      const e4 = o3(t5);
      return e4 ? e4.getMediaFinishedInformation(t5) : { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
    } }, l3 = {}, i3;
  }
  Yl.__dashjs_factory_name = "SegmentsController";
  var Vl = r2.default.getClassFactory(Yl);
  function Kl() {
    let t4;
    return t4 = { ntpToUTC: function(t5) {
      const e3 = new Date(Date.UTC(1900, 0, 1, 0, 0, 0));
      return new Date(e3.getTime() + t5).getTime();
    } }, t4;
  }
  Kl.__dashjs_factory_name = "TimeUtils";
  var Wl = r2.default.getSingletonFactory(Kl);
  function $l(t4) {
    t4 = t4 || {};
    let e3, n3, a2, r3, i3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, I3, k3 = this.context, A2 = (0, f2.default)(k3).getInstance(), R2 = t4.abrController, N2 = t4.adapter, C2 = t4.boxParser, D2 = t4.capabilities, x2 = t4.dashMetrics, M2 = t4.errHandler, P2 = t4.fragmentModel, O2 = t4.manifestModel, z2 = t4.mediaController, L2 = t4.mediaPlayerModel, F2 = t4.mimeType, U2 = t4.playbackController, j2 = t4.segmentBlacklistController, q2 = t4.settings, B2 = t4.streamInfo, G2 = t4.textController, H2 = t4.timelineConverter, Y2 = t4.type;
    function V2() {
      return B2.id;
    }
    function K2() {
      return Y2;
    }
    function W2() {
      p3 = [], r3 = null, n3 = 0, S3 = false, v3 = false, y3 = false, s2 = null, I3 = false, it2();
    }
    function $2(t5) {
      return !isNaN(t5) && !isNaN(B2.duration) && isFinite(B2.duration) && t5 >= B2.start + B2.duration;
    }
    function Q2(t5, n4 = true) {
      if (t5.sender) {
        if (U2.getIsManifestUpdateInProgress())
          J2();
        else if ((!r3.isText || G2.isTextEnabled()) && e3 && t5.representationId && !e3.appendInitSegmentFromCache(t5.representationId)) {
          const t6 = E3.getCurrentRepresentation();
          if (0 === t6.range)
            return void X2();
          const e4 = i3 ? i3.getInitRequest(r3, t6) : null;
          e4 ? P2.executeRequest(e4) : n4 && (T3.setInitSegmentRequired(true), J2());
        }
      }
    }
    function X2(t5, a3 = true) {
      if (U2.getIsManifestUpdateInProgress() || e3.getIsPruningInProgress())
        return void J2();
      let l3 = function() {
        let t6;
        if (isNaN(n3) || K2() === m2.default.TEXT && !G2.isTextEnabled())
          return null;
        if (i3) {
          const e4 = vt2();
          t6 = S3 ? i3.getSegmentRequestForTime(r3, e4, n3) : v3 ? i3.repeatSegmentRequest(r3, e4) : i3.getNextSegmentRequest(r3, e4);
        }
        return t6;
      }();
      l3 ? (S3 = false, v3 = false, function(t6) {
        isNaN(t6.startTime + t6.duration) || (n3 = t6.startTime + t6.duration), t6.delayLoadingTime = (/* @__PURE__ */ new Date()).getTime() + T3.getTimeToLoadDelay(), T3.setTimeToLoadDelay(0), function(t7) {
          let e4 = t7.url;
          return t7.range && (e4 = e4.concat("_", t7.range)), j2.contains(e4);
        }(t6) ? (c3.warn(`Fragment request url ${t6.url} for stream id ${B2.id} and media type ${Y2} is on the ignore list and will be skipped`), J2()) : (c3.debug(`Next fragment request url for stream id ${B2.id} and media type ${Y2} is ${t6.url} with request range ${t6.range}`), P2.executeRequest(t6));
      }(l3)) : function(t6) {
        const e4 = E3.getCurrentRepresentation();
        try {
          if (q2.get().streaming.gaps.enableSeekFix && (S3 || 0 === U2.getTime())) {
            let a4;
            if (d3 ? d3 && e4.segmentInfoType === Vt.default.SEGMENT_TIMELINE && (a4 = function(t7) {
              return i3.getValidTimeAheadOfTargetTime(n3, r3, t7, q2.get().streaming.gaps.threshold);
            }(e4)) : a4 = function(t7) {
              let e5 = i3.getValidTimeAheadOfTargetTime(n3, r3, t7, q2.get().streaming.gaps.threshold);
              return isNaN(e5) && n3 >= t7.adaptation.period.mpd.mediaPresentationDuration - t7.segmentDuration && (e5 = n3 - 0.1), e5;
            }(e4), !isNaN(a4) && a4 !== n3)
              return void function(t7, e5) {
                U2.isSeeking() || 0 === U2.getTime() ? (c3.warn(`Adjusting playback time ${t7} because of gap in the manifest. Seeking by ${t7 - n3}`), U2.seek(t7, false, false)) : (c3.warn(`Adjusting buffering time ${t7} because of gap in the manifest. Adjusting time by ${t7 - n3}`), Ct2(t7), e5 && J2());
              }(a4, t6);
          }
        } catch (t7) {
          c3.error(t7);
        }
        Z2() || t6 && J2();
      }(a3);
    }
    function Z2() {
      const t5 = E3.getCurrentRepresentation(), a3 = i3.isLastSegmentRequested(t5, n3);
      if (a3) {
        const t6 = i3.getCurrentIndex();
        c3.debug(`Segment requesting for stream ${B2.id} has finished`), A2.trigger(g2.default.STREAM_REQUESTING_COMPLETED, { segmentIndex: t6 }, { streamId: B2.id, mediaType: Y2 }), e3.segmentRequestingCompleted(t6), _t2();
      }
      return a3;
    }
    function J2() {
      const t5 = L2.getScheduleTimeout();
      T3.startScheduleTimer(t5);
    }
    function tt2(t5) {
      x2.addBufferState(Y2, t5.state, T3.getBufferTarget()), t5.state !== l2.BUFFER_EMPTY || U2.isSeeking() || (c3.info("Buffer is empty! Stalling!"), x2.pushPlayListTraceMetrics(/* @__PURE__ */ new Date(), Hr.REBUFFERING_REASON));
    }
    function et2(t5) {
      P2.syncExecutedRequestsWithBufferedRange(e3.getBuffer().getAllBufferRanges(), B2.duration), t5.quotaExceeded && t5.from > U2.getTime() && Ct2(t5.from), t5.hasEnoughSpaceToAppend && t5.quotaExceeded && T3.startScheduleTimer();
    }
    function at2(t5) {
      if (!t5 || !t5.lastRequestAppended || !t5.lastRequestAppended.url)
        return;
      let e4 = t5.lastRequestAppended.url;
      t5.lastRequestAppended.range && (e4 = e4.concat("_", t5.lastRequestAppended.range)), c3.warn(`Blacklisting segment with url ${e4}`), j2.add(e4);
    }
    function rt2(t5) {
      if (c3.debug(`Appended bytes for ${t5.mediaType} and stream id ${t5.streamId}`), t5.segmentType === w2.HTTPRequest.INIT_SEGMENT_TYPE) {
        const e4 = t5.representationId;
        T3.setLastInitializedRepresentationId(e4), c3.info("[" + Y2 + "] lastInitializedRepresentationId changed to " + e4);
      }
      b3 && b3.enabled ? ft2(b3.newRepresentation, b3.oldRepresentation) : I3 || T3.startScheduleTimer(0);
    }
    function it2() {
      b3 = { newRepresentation: null, oldRepresentation: null, enabled: false };
    }
    function lt2(t5) {
      return new Promise((n4) => {
        if (!E3)
          return Promise.resolve();
        let a3 = null;
        var i4;
        a3 = t5.newRepresentation ? { selectedRepresentation: (i4 = t5).newRepresentation, currentMediaInfo: i4.newMediaInfo } : null !== r3 && N2.areMediaInfosEqual(r3, t5.newMediaInfo) ? function(t6) {
          return { currentMediaInfo: t6.newMediaInfo, selectedRepresentation: E3.getCurrentRepresentation() };
        }(t5) : function(t6) {
          let e4 = NaN;
          e4 = !q2.get().streaming.abr.autoSwitchBitrate[t6.newMediaInfo.type] && t6.previouslySelectedRepresentation ? t6.previouslySelectedRepresentation.bitrateInKbit : R2.getInitialBitrateFor(Y2);
          return { selectedRepresentation: R2.getOptimalRepresentationForBitrate(t6.newMediaInfo, e4, false), currentMediaInfo: t6.newMediaInfo };
        }(t5), ot2(a3.currentMediaInfo), A2.trigger(), function(t6) {
          s2 && t6.selectedRepresentation.dependentRepresentation && (c3.info("[" + Y2 + "] selectMediaInfo : call selectMediaInfo on enhancementStreamProcessor for index = " + t6.selectedRepresentation.absoluteIndex), s2.selectMediaInfo(new ol({ newMediaInfo: t6.selectedRepresentation.mediaInfo, newRepresentation: t6.selectedRepresentation })));
        }(a3);
        const l3 = R2.getPossibleVoRepresentations(r3, false);
        return E3.updateData(l3, r3.isFragmented, a3.selectedRepresentation.id).then(() => {
          !function() {
            const t6 = E3.getCurrentCompositeRepresentation();
            e3.getIsBufferingCompleted() || e3.updateBufferTimestampOffset(t6);
          }(), n4();
        }).catch((t6) => {
          c3.error(t6), n4();
        });
      });
    }
    function ot2(t5) {
      N2.areMediaInfosEqual(r3, t5) || A2.trigger(h2.default.NEW_TRACK_SELECTED, { value: t5 }), r3 = t5, R2.handleNewMediaInfo(r3), A2.trigger(g2.default.MEDIAINFO_UPDATED, { mediaType: Y2, streamId: B2.id, currentMediaInfo: r3 });
    }
    function st2(t5) {
      const n4 = t5.newRepresentation, a3 = t5.oldRepresentation, i4 = Dt2();
      n4 && a3 || c3.warn("_handleDifferentSwitchTypes() is missing the target representations"), t5.reason && t5.reason.forceReplace ? function(t6, n5) {
        P2.abortRequests(), A2.trigger(g2.default.BUFFER_REPLACEMENT_STARTED, { mediaType: Y2, streamId: B2.id }, { mediaType: Y2, streamId: B2.id }), T3.setShouldCheckPlaybackQuality(false), e3.prepareForForceReplacementQualitySwitch(t6, n5).then(() => {
          ut2();
        }).catch(() => {
          ut2();
        });
      }(n4, a3) : t5 && t5.reason && t5.reason.forceAbandon ? function(t6, n5) {
        e3.prepareForAbandonQualitySwitch(t6, n5).then(() => {
          dt2();
        }).catch(() => {
          dt2();
        });
      }(n4, a3) : !L2.getFastSwitchEnabled() || i4 && i4.isPartialSegment ? ft2(n4, a3) : function(t6, n5) {
        const a4 = U2.getTime();
        let i5 = 1.5 * (isNaN(t6.fragmentDuration) ? 1 : t6.fragmentDuration);
        const o3 = P2.getRequests({ state: nt.FRAGMENT_MODEL_EXECUTED, time: a4 + i5, threshold: 0 })[0];
        if (o3 && !r3.isText) {
          const r4 = e3.getBufferLevel(), s3 = R2.getAbandonmentStateFor(B2.id, Y2);
          o3.bandwidth < t6.bandwidth && r4 >= i5 && s3 === l2.ALLOW_LOAD ? e3.prepareForFastQualitySwitch(t6, n5).then(() => {
            ct2(a4, i5);
          }).catch(() => {
            ct2(a4, i5);
          }) : ft2(t6, n5);
        } else
          ft2(t6, n5);
      }(n4, a3), x2.pushPlayListTraceMetrics(/* @__PURE__ */ new Date(), Hr.REPRESENTATION_SWITCH_STOP_REASON), x2.createPlaylistTraceMetrics(n4.id, 1e3 * U2.getTime(), U2.getPlaybackRate());
    }
    function ut2() {
      kt2(), it2(), y3 = false;
    }
    function dt2() {
      P2.abortRequests(), v3 = true, T3.setShouldCheckPlaybackQuality(false), T3.startScheduleTimer(), y3 = false;
    }
    function ct2(t5, e4) {
      P2.abortRequests(), Ct2(t5 + e4), T3.setShouldCheckPlaybackQuality(false), T3.startScheduleTimer(), y3 = false;
    }
    function ft2(t5, n4) {
      const a3 = P2.getRequests({ state: nt.FRAGMENT_MODEL_LOADING });
      if (a3 && a3.length > 0)
        return c3.debug("Preparing for default quality switch: Waiting for ongoing segment request to be finished before applying switch."), b3.newRepresentation = t5, b3.oldRepresentation = n4, void (b3.enabled = true);
      e3.prepareForDefaultQualitySwitch(t5, n4).then(() => {
        gt2();
      }).catch(() => {
        gt2();
      });
    }
    function gt2() {
      T3.setShouldCheckPlaybackQuality(false), r3.segmentAlignment || r3.subSegmentAlignment ? T3.startScheduleTimer() : At2(), it2(), y3 = false;
    }
    function mt2(t5) {
      c3.info("onFragmentLoadingAbandoned request: " + t5.request.url + " has been aborted"), U2.isSeeking() || T3.getSwitchTrack() || y3 || (c3.info("onFragmentLoadingAbandoned request: " + t5.request.url + " has to be downloaded again, origin is not seeking process or switch track call"), t5.request && t5.request.isInitializationRequest() ? T3.setInitSegmentRequired(true) : Ct2(t5.request.startTime + t5.request.duration / 2), T3.startScheduleTimer(0));
    }
    function ht2(t5) {
      c3.info("OnFragmentLoadingCompleted for stream id " + B2.id + " and media type " + Y2 + " - Url:", t5.request ? t5.request.url : "undefined", t5.request.range ? ", Range:" + t5.request.range : ""), r3.isText && T3.startScheduleTimer(0), t5.error && t5.request.serviceLocation && function(t6) {
        c3.info("Fragment loading completed with an error"), t6 && t6.request && t6.request.type && (t6.request.type === w2.HTTPRequest.INIT_SEGMENT_TYPE ? Q2({ representationId: t6.request.representation.id, sender: {} }, false) : t6.request.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE && (Ct2(t6.request.startTime + t6.request.duration / 2), X2(0, false)));
      }(t5);
    }
    function pt2() {
      Ct2(U2.getTime()), Tt2().startScheduleTimer();
    }
    function bt2(t5) {
      const n4 = t5.currentTrackInfo;
      if (!n4)
        return;
      const a3 = p3.find((t6) => t6.index === n4.index && t6.lang === n4.lang);
      a3 && lt2(new ol({ newMediaInfo: a3 })).then(() => {
        e3.setIsBufferingCompleted(false), Ct2(U2.getTime()), T3.setInitSegmentRequired(true), T3.startScheduleTimer();
      });
    }
    function yt2(t5) {
      Ct2(t5.quotaExceededTime), _t2();
    }
    function Et2() {
      return e3 ? e3.getBuffer() : null;
    }
    function Tt2() {
      return T3;
    }
    function _t2() {
      T3 && T3.clearScheduleTimer();
    }
    function vt2(t5 = NaN) {
      let e4;
      return isNaN(t5) ? e4 = E3 ? E3.getCurrentRepresentation() : null : ((0, zt.checkInteger)(t5), e4 = E3 ? E3.getRepresentationById(t5) : null), e4;
    }
    function St2() {
      return !!e3 && e3.getIsBufferingCompleted();
    }
    function wt2(t5) {
      if (!q2.get().streaming.enableManifestTimescaleMismatchFix)
        return;
      const e4 = t5.chunk, n4 = e4.bytes, a3 = vt2(e4.representation.id);
      a3 && (a3.timescale = C2.getMediaTimescaleFromMoov(n4));
    }
    function It2(t5) {
      const e4 = t5.chunk, n4 = e4.bytes, a3 = vt2(e4.representation.id);
      if (a3) {
        let e5;
        if (q2.get().streaming.parseInbandPrft && t5.request.type === w2.HTTPRequest.MEDIA_SEGMENT_TYPE) {
          e5 = e5 || C2.parse(n4);
          const t6 = function(t7, e6) {
            const n5 = t7.getBoxes("prft"), a4 = [];
            return n5.forEach((t8) => {
              a4.push(function(t9, e7) {
                let n6 = "unknown";
                switch (t9.flags) {
                  case 0:
                    n6 = Vt.default.PRODUCER_REFERENCE_TIME_TYPE.ENCODER;
                    break;
                  case 16:
                    n6 = Vt.default.PRODUCER_REFERENCE_TIME_TYPE.APPLICATION;
                    break;
                  case 24:
                    n6 = Vt.default.PRODUCER_REFERENCE_TIME_TYPE.CAPTURED;
                }
                let a5 = 1e3 * t9.ntp_timestamp_sec + t9.ntp_timestamp_frac / 2 ** 32 * 1e3;
                a5 = Wl(k3).getInstance().ntpToUTC(a5);
                return { type: n6, ntpTimestamp: a5, mediaTime: t9.media_time / e7 };
              }(t8, e6));
            }), a4;
          }(e5, a3.timescale);
          t6 && t6.length && A2.trigger(h2.default.INBAND_PRFT, { data: t6 }, { streamId: B2.id, mediaType: Y2 });
        }
        const r4 = N2.getEventsFor(a3.mediaInfo, null, B2), i4 = N2.getEventsFor(a3, a3, B2);
        if (r4 && r4.length > 0 || i4 && i4.length > 0) {
          const a4 = t5.request;
          e5 = e5 || C2.parse(n4);
          const l3 = function(t6, e6, n5, a5) {
            try {
              const r5 = {}, i5 = [], l4 = n5.concat(a5);
              for (let t7 = 0, e7 = l4.length; t7 < e7; t7++)
                r5[l4[t7].schemeIdUri + "/" + l4[t7].value] = l4[t7];
              const o3 = t6.getBoxes("emsg");
              if (!o3 || 0 === o3.length)
                return i5;
              const s3 = t6.getBox("sidx"), u4 = !s3 || isNaN(s3.earliest_presentation_time) || isNaN(s3.timescale) ? e6 && !isNaN(e6.mediaStartTime) ? e6.mediaStartTime : 0 : s3.earliest_presentation_time / s3.timescale, d4 = Math.max(u4, 0), c4 = E3.getCurrentRepresentation();
              for (let t7 = 0, e7 = o3.length; t7 < e7; t7++) {
                const e8 = N2.getEvent(o3[t7], r5, d4, c4);
                e8 && i5.push(e8);
              }
              return i5;
            } catch (t7) {
              return [];
            }
          }(e5, a4, r4, i4);
          A2.trigger(g2.default.INBAND_EVENTS, { events: l3 }, { streamId: B2.id });
        }
      }
    }
    function kt2() {
      const t5 = U2.getTime();
      q2.get().streaming.buffer.flushBufferAtTrackSwitch && U2.seek(t5 + 1e-3, false, true), Ct2(t5), e3.setSeekTarget(t5), T3.startScheduleTimer();
    }
    function At2() {
      const t5 = U2.getTime(), n4 = e3.getContinuousBufferTimeForTargetTime(t5);
      Ct2(isNaN(n4) ? t5 : n4), T3.startScheduleTimer();
    }
    function Nt2(t5) {
      t5 && !isNaN(t5.time) && (Ct2(t5.time), e3.setSeekTarget(t5.time));
    }
    function Ct2(t5) {
      n3 = t5, S3 = true;
    }
    function Dt2() {
      return i3.getLastSegment();
    }
    return u3 = { checkAndHandleCompletedBuffering: Z2, clearScheduleTimer: _t2, createBufferSinks: function(t5, n4) {
      const a3 = Et2();
      return a3 ? Promise.resolve(a3) : e3 ? e3.createBufferSink(r3, t5, n4) : Promise.resolve(null);
    }, dischargePreBuffer: function() {
      e3.dischargePreBuffer();
    }, finalisePlayList: function(t5, e4) {
      x2.pushPlayListTraceMetrics(t5, e4);
    }, getAllMediaInfos: function() {
      return p3;
    }, getBuffer: Et2, getBufferController: function() {
      return e3;
    }, getBufferLevel: function() {
      return e3 ? e3.getBufferLevel() : 0;
    }, getFragmentModel: function() {
      return P2;
    }, getLastSegment: Dt2, getMediaInfo: function() {
      return r3;
    }, getMediaSource: function() {
      return e3.getMediaSource();
    }, getRepresentation: vt2, getRepresentationController: function() {
      return E3;
    }, getScheduleController: Tt2, getStreamId: V2, getStreamInfo: function() {
      return B2;
    }, getType: K2, initialize: function(r4, l3, s3) {
      _3 = Vl(k3).create({ events: g2.default, eventBus: A2, streamInfo: B2, timelineConverter: H2, dashConstants: Vt.default, segmentBaseController: t4.segmentBaseController, type: Y2 }), i3 = zl(k3).create({ baseURLController: t4.baseURLController, boxParser: C2, constants: m2.default, dashConstants: Vt.default, dashMetrics: x2, debug: (0, o2.default)(k3).getInstance(), errHandler: M2, errors: Rt, eventBus: A2, events: g2.default, mediaPlayerModel: L2, segmentsController: _3, settings: q2, streamInfo: B2, timelineConverter: H2, type: Y2, urlUtils: ce(k3).getInstance() }), d3 = B2.manifestInfo.isDynamic, i3.initialize(d3), R2.registerStreamType(Y2, u3), E3 = Pl(k3).create({ abrController: R2, adapter: N2, dashConstants: Vt.default, dashMetrics: x2, errors: Rt, eventBus: A2, events: g2.default, isDynamic: d3, playbackController: U2, segmentsController: _3, streamInfo: B2, timelineConverter: H2, type: Y2 }), e3 = function(t5, e4) {
        let n4 = null;
        return t5 ? (n4 = t5 !== m2.default.TEXT || e4 ? bl(k3).create({ abrController: R2, capabilities: D2, errHandler: M2, fragmentModel: P2, manifestModel: O2, mediaController: z2, mediaPlayerModel: L2, playbackController: U2, representationController: E3, settings: q2, streamInfo: B2, textController: G2, type: t5 }) : Tl(k3).create({ errHandler: M2, fragmentModel: P2, mimeType: F2, settings: q2, streamInfo: B2, textController: G2, type: t5 }), n4) : (M2.error(new Ot.default(Rt.MEDIASOURCE_TYPE_UNSUPPORTED_CODE, Rt.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE + "not properly defined")), null);
      }(Y2, s3), e3 && e3.initialize(r4), T3 = vl(k3).create({ abrController: R2, adapter: N2, bufferController: e3, dashMetrics: x2, fragmentModel: P2, mediaController: z2, mediaPlayerModel: L2, mimeType: F2, playbackController: U2, representationController: E3, settings: q2, streamInfo: B2, textController: G2, type: Y2 }), a2 = l3, T3.initialize(l3), n3 = 0, S3 = false, v3 = false;
    }, isBufferingCompleted: St2, prepareInnerPeriodPlaybackSeeking: function(t5) {
      return new Promise((n4) => {
        if (e3.hasBufferAtTime(t5.seekTime))
          return e3.pruneBuffer(), $2(e3.getContinuousBufferTimeForTargetTime(t5.seekTime)) && e3.setIsBufferingCompleted(true), void n4();
        _t2(), P2.abortRequests(), e3.prepareForPlaybackSeek().then(() => {
          const n5 = e3.getAllRangesWithSafetyFactor(t5.seekTime);
          return e3.clearBuffers(n5);
        }).then(() => {
          const a3 = e3.getContinuousBufferTimeForTargetTime(t5.seekTime);
          if ($2(a3))
            e3.setIsBufferingCompleted(true), n4();
          else {
            const r4 = isNaN(a3) ? t5.seekTime : a3;
            Ct2(r4), e3.setSeekTarget(r4);
            const i4 = [];
            i4.push(e3.updateAppendWindow());
            const l3 = vt2();
            i4.push(e3.updateBufferTimestampOffset(l3)), Promise.all(i4).then(() => {
              T3.setInitSegmentRequired(true), T3.setShouldCheckPlaybackQuality(false), T3.startScheduleTimer(), n4();
            });
          }
        }).catch((t6) => {
          c3.error(t6);
        });
      });
    }, prepareOuterPeriodPlaybackSeeking: function() {
      return new Promise((t5, n4) => {
        try {
          _t2(), P2.abortRequests(), e3.prepareForPlaybackSeek().then(() => e3.pruneAllSafely()).then(() => {
            t5();
          });
        } catch (t6) {
          n4(t6);
        }
      });
    }, prepareQualityChange: function(t5) {
      t5.newRepresentation && (function(t6) {
        if (s2)
          s2.prepareQualityChange(t6);
        else if (Y2 === m2.default.ENHANCEMENT) {
          const e4 = t6.oldRepresentation.mediaInfo.type, n4 = t6.newRepresentation.mediaInfo.type;
          if (e4 === m2.default.ENHANCEMENT && n4 === m2.default.VIDEO)
            return c3.info("Stop " + Y2 + " stream processor"), T3.reset(), true;
          if (e4 === m2.default.VIDEO && n4 === m2.default.ENHANCEMENT)
            return c3.info("Start " + Y2 + " stream processor"), lt2(new ol({ newMediaInfo: t6.newRepresentation.mediaInfo, newRepresentation: t6.newRepresentation })).then(() => {
              T3.setup(), T3.initialize(a2), T3.startScheduleTimer();
            }), true;
        }
        return false;
      }(t5) || (b3 && b3.enabled && c3.warn(`Canceling queued representation switch to ${b3.newRepresentation.id} for ${Y2}`), t5.isAdaptationSetSwitch ? (c3.debug(`Preparing quality switch to different AdaptationSet for type ${Y2} from representation id ${t5.oldRepresentation.id} to ${t5.newRepresentation.id}`), function(t6) {
        const e4 = t6.newRepresentation;
        y3 = true, _t2(), T3.setSwitchTrack(true);
        const n4 = e4.mediaInfo;
        ot2(n4), lt2(new ol({ newMediaInfo: n4, newRepresentation: e4 })).then(() => {
          st2(t6);
        });
      }(t5)) : (c3.debug(`Preparing quality within the same AdaptationSet for type ${Y2} from representation id ${t5.oldRepresentation.id} to ${t5.newRepresentation.id}`), function(t6) {
        const e4 = t6.newRepresentation;
        y3 = true, _t2(), E3.prepareQualityChange(e4), st2(t6);
      }(t5))));
    }, prepareTrackSwitch: function(t5, n4 = false) {
      return new Promise((a3) => {
        c3.debug(`Preparing track switch for type ${Y2}`);
        const r4 = Y2 === m2.default.TEXT || n4 || q2.get().streaming.trackSwitchMode[Y2] === m2.default.TRACK_SWITCH_MODE_ALWAYS_REPLACE && U2.getTimeToStreamEnd(B2) > q2.get().streaming.buffer.stallThreshold;
        e3.getIsBufferingCompleted() && !r4 ? function(t6) {
          return new Promise((n5) => {
            const a4 = E3.getCurrentRepresentation();
            e3.prepareForNonReplacementTrackSwitch(a4, t6).then(() => {
              A2.trigger(g2.default.BUFFERING_COMPLETED, {}, { streamId: B2.id, mediaType: Y2 }), n5();
            }).catch(() => {
              A2.trigger(g2.default.BUFFERING_COMPLETED, {}, { streamId: B2.id, mediaType: Y2 }), n5();
            });
          });
        }(t5).then(() => {
          a3();
        }) : (T3.setSwitchTrack(true), r4 ? function(t6) {
          return new Promise((n5) => {
            A2.trigger(g2.default.BUFFER_REPLACEMENT_STARTED, { mediaType: Y2, streamId: B2.id }, { mediaType: Y2, streamId: B2.id }), P2.abortRequests();
            const a4 = vt2();
            e3.prepareForReplacementTrackSwitch(a4, t6).then(() => {
              kt2(), n5();
            }).catch(() => {
              kt2(), n5();
            });
          });
        }(t5).then(() => {
          a3();
        }) : function(t6) {
          return new Promise((n5) => {
            const a4 = () => {
              const r5 = P2.getRequests({ state: nt.FRAGMENT_MODEL_LOADING });
              if (r5 && 0 !== r5.length)
                A2.once(h2.default.FRAGMENT_LOADING_COMPLETED, a4, u3);
              else {
                const a5 = vt2();
                e3.prepareForNonReplacementTrackSwitch(a5, t6).then(() => {
                  At2(), n5();
                }).catch((t7) => {
                  c3.error(t7), At2(), n5();
                });
              }
            };
            a4();
          });
        }(t5).then(() => {
          a3();
        }));
      });
    }, probeNextRequest: function() {
      const t5 = vt2();
      return i3.getNextSegmentRequestIdempotent(r3, t5);
    }, reset: function(t5, n4) {
      i3 && i3.reset(), e3 && (e3.reset(t5, n4), e3 = null), T3 && (T3.reset(), T3 = null), E3 && (E3.reset(), E3 = null), _3 && (_3 = null), R2 && R2.unRegisterStreamType(V2(), Y2), A2.off(g2.default.BUFFER_CLEARED, et2, u3), A2.off(g2.default.BUFFER_LEVEL_STATE_CHANGED, tt2, u3), A2.off(g2.default.BYTES_APPENDED_END_FRAGMENT, rt2, u3), A2.off(g2.default.FRAGMENT_LOADING_ABANDONED, mt2, u3), A2.off(g2.default.FRAGMENT_LOADING_COMPLETED, ht2, u3), A2.off(g2.default.INIT_FRAGMENT_LOADED, wt2, u3), A2.off(g2.default.INIT_FRAGMENT_NEEDED, Q2, u3), A2.off(g2.default.MEDIA_FRAGMENT_LOADED, It2, u3), A2.off(g2.default.MEDIA_FRAGMENT_NEEDED, X2, u3), A2.off(g2.default.QUOTA_EXCEEDED, yt2, u3), A2.off(g2.default.SEEK_TARGET, Nt2, u3), A2.off(g2.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, pt2, u3), A2.off(g2.default.SET_NON_FRAGMENTED_TEXT, bt2, u3), A2.off(g2.default.SOURCE_BUFFER_ERROR, at2, u3), W2(), Y2 = null, B2 = null;
    }, selectMediaInfo: lt2, setEnhancementStreamProcessor: function(t5) {
      s2 = t5, c3.info("enhancementStreamProcessor = " + s2);
    }, setExplicitBufferingTime: Ct2, setMediaInfoArray: function(t5) {
      p3 = t5;
    }, setMediaSource: function(t5) {
      return e3.setMediaSource(t5, r3);
    }, setTrackSwitchInProgress: function(t5) {
      I3 = t5;
    }, updateStreamInfo: function(t5) {
      return B2 = t5, St2() ? Promise.resolve() : e3.updateAppendWindow();
    } }, c3 = (0, o2.default)(k3).getInstance().getLogger(u3), W2(), A2.on(g2.default.BUFFER_CLEARED, et2, u3), A2.on(g2.default.BUFFER_LEVEL_STATE_CHANGED, tt2, u3), A2.on(g2.default.BYTES_APPENDED_END_FRAGMENT, rt2, u3), A2.on(g2.default.FRAGMENT_LOADING_ABANDONED, mt2, u3), A2.on(g2.default.FRAGMENT_LOADING_COMPLETED, ht2, u3), A2.on(g2.default.INIT_FRAGMENT_LOADED, wt2, u3), A2.on(g2.default.INIT_FRAGMENT_NEEDED, Q2, u3), A2.on(g2.default.MEDIA_FRAGMENT_LOADED, It2, u3), A2.on(g2.default.MEDIA_FRAGMENT_NEEDED, X2, u3), A2.on(g2.default.QUOTA_EXCEEDED, yt2, u3), A2.on(g2.default.SEEK_TARGET, Nt2, u3), A2.on(g2.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, pt2, u3), A2.on(g2.default.SET_NON_FRAGMENTED_TEXT, bt2, u3), A2.on(g2.default.SOURCE_BUFFER_ERROR, at2, u3), u3;
  }
  $l.__dashjs_factory_name = "StreamProcessor";
  var Ql = r2.default.getClassFactory($l), Xl = class {
    constructor() {
      this.url = null, this.width = null, this.height = null, this.x = null, this.y = null;
    }
  }, Zl = class {
    constructor() {
      this.bitrate = 0, this.width = 0, this.height = 0, this.tilesHor = 0, this.tilesVert = 0, this.widthPerTile = 0, this.heightPerTile = 0, this.startNumber = 0, this.segmentDuration = 0, this.timescale = 0, this.templateUrl = "", this.id = "";
    }
  };
  function Jl(t4) {
    const e3 = this.context, n3 = t4.adapter, a2 = t4.baseURLController, r3 = t4.streamInfo, i3 = t4.timelineConverter, l3 = t4.debug, o3 = t4.eventBus, s2 = t4.events, u3 = t4.dashConstants, d3 = ce(e3).getInstance();
    let c3, f3, g3, h3, p3, b3, y3, E3, T3;
    function _3(t5, e4) {
      const r4 = new Zl();
      r4.id = t5.id, r4.bitrate = t5.bandwidth, r4.width = t5.width, r4.height = t5.height, r4.tilesHor = 1, r4.tilesVert = 1, t5.essentialProperties && t5.essentialProperties.forEach((t6) => {
        if (m2.default.THUMBNAILS_SCHEME_ID_URIS.indexOf(t6.schemeIdUri) >= 0 && t6.value) {
          const e5 = t6.value.split("x");
          2 !== e5.length || isNaN(e5[0]) || isNaN(e5[1]) || (r4.tilesHor = parseInt(e5[0], 10), r4.tilesVert = parseInt(e5[1], 10));
        }
      }), e4 ? y3.updateSegmentData(t5).then((e5) => {
        !function(t6, e6, r5) {
          let l4 = [];
          const o4 = function(t7, e7) {
            const a3 = [];
            let r6, l5, o5, s3, u4 = 0;
            for (r6 = 0, l5 = t7.segments.length; r6 < l5; r6++)
              o5 = t7.segments[r6], s3 = Dl({ durationInTimescale: o5.duration, fTimescale: o5.timescale, index: u4, isDynamic: n3.getIsDynamic(), mediaRange: o5.mediaRange, mediaTime: o5.startTime, mediaUrl: o5.media, representation: e7, timelineConverter: i3 }), s3 && (a3.push(s3), s3 = null, u4++);
            return a3;
          }(r5, e6);
          e6.segments = o4, e6.fragmentDuration = e6.segmentDuration || (e6.segments && e6.segments.length > 0 ? e6.segments[0].duration : NaN), t6.segmentDuration = e6.segments[0].duration, t6.readThumbnail = function(t7, n4) {
            let r6 = null;
            l4.some((e7) => {
              if (e7.start <= t7 && e7.end > t7)
                return r6 = e7.url, true;
            }), r6 ? n4(r6) : e6.segments.some((r7) => {
              if (r7.mediaStartTime <= t7 && r7.mediaStartTime + r7.duration > t7) {
                const t8 = a2.resolve(e6.path), i4 = new ta({ method: "get", url: t8.url, responseType: "arraybuffer", customData: { request: { range: r7.mediaRange }, onloadend: function(t9) {
                  let e7 = T3.getSamplesInfo(t9.target.response), a3 = new Blob([t9.target.response.slice(e7.sampleList[0].offset, e7.sampleList[0].offset + e7.sampleList[0].size)], { type: "image/jpeg" }), i5 = window.URL.createObjectURL(a3);
                  l4.push({ start: r7.mediaStartTime, end: r7.mediaStartTime + r7.duration, url: i5 }), n4 && n4(i5);
                } } }), o5 = new ea({ request: i4 });
                return E3.load(i4, o5), true;
              }
            });
          };
        }(r4, t5, e5);
      }) : (r4.startNumber = t5.startNumber, r4.segmentDuration = t5.segmentDuration, r4.timescale = t5.timescale, r4.templateUrl = function(t6) {
        const e5 = d3.isRelative(t6.media) ? d3.resolve(t6.media, a2.resolve(t6.path).url) : t6.media;
        return e5 ? Nl(e5, t6.id) : "";
      }(t5)), r4.tilesHor > 0 && r4.tilesVert > 0 && (r4.widthPerTile = r4.width / r4.tilesHor, r4.heightPerTile = r4.height / r4.tilesVert, f3.push(r4));
    }
    function v3() {
      f3 = [], g3 = [], p3 = -1, b3 = null, h3 && (h3.reset(), h3 = null);
    }
    return c3 = { addTracks: function() {
      if (!r3 || !n3)
        return;
      if (b3 = n3.getMediaInfoForType(r3, m2.default.IMAGE), !b3)
        return;
      const t5 = n3.getVoRepresentations(b3);
      t5 && t5.length > 0 && t5.forEach((t6) => {
        (t6.segmentInfoType === Vt.default.SEGMENT_TEMPLATE && t6.segmentDuration > 0 && t6.media || t6.segmentInfoType === Vt.default.SEGMENT_TIMELINE) && _3(t6), t6.segmentInfoType === Vt.default.SEGMENT_BASE && _3(t6, true), g3.push(t6);
      }), f3.length > 0 && f3.sort((t6, e4) => t6.bitrate - e4.bitrate);
    }, getCurrentTrack: function() {
      return p3 < 0 ? null : f3[p3];
    }, getCurrentTrackIndex: function() {
      return p3;
    }, getRepresentations: function() {
      return g3;
    }, getThumbnailRequestForTime: function(t5) {
      let e4;
      const a3 = n3.getVoRepresentations(b3);
      for (let t6 = 0; t6 < a3.length; t6++)
        if (f3[p3].id === a3[t6].id) {
          e4 = a3[t6];
          break;
        }
      return h3.getSegmentRequestForTime(b3, e4, t5);
    }, getTracks: function() {
      return f3;
    }, reset: v3, setTrackById: function(t5) {
      if (!f3 || 0 === f3.length)
        return;
      const e4 = f3.findIndex((e5) => e5.id === t5);
      -1 !== e4 && (p3 = e4);
    }, setTrackByIndex: function(t5) {
      f3 && 0 !== f3.length && (t5 >= f3.length && (t5 = f3.length - 1), p3 = t5);
    } }, v3(), E3 = Ut(e3).create({}), T3 = Ia(e3).getInstance(), y3 = Vl(e3).create({ events: s2, eventBus: o3, streamInfo: r3, timelineConverter: i3, dashConstants: u3, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController, type: m2.default.IMAGE }), h3 = zl(e3).create({ streamInfo: r3, type: m2.default.IMAGE, timelineConverter: i3, segmentsController: y3, baseURLController: a2, debug: l3, eventBus: o3, events: s2, dashConstants: u3, urlUtils: d3 }), h3.initialize(!!n3 && n3.getIsDynamic()), c3;
  }
  Jl.__dashjs_factory_name = "ThumbnailTracks";
  var to = r2.default.getClassFactory(Jl);
  function eo(t4) {
    const e3 = this.context, n3 = t4.streamInfo;
    let a2, r3;
    function i3(t5) {
      r3.setTrackByIndex(t5);
    }
    function l3() {
      r3 && r3.reset();
    }
    return a2 = { getCurrentTrack: function() {
      return r3.getCurrentTrack();
    }, getCurrentTrackIndex: function() {
      return r3.getCurrentTrackIndex();
    }, getPossibleVoRepresentations: function() {
      return r3.getRepresentations();
    }, getStreamId: function() {
      return n3.id;
    }, initialize: function() {
      r3.addTracks();
      const t5 = r3.getTracks();
      t5 && t5.length > 0 && i3(0);
    }, provide: function(t5, e4) {
      if ("function" != typeof e4)
        return;
      const n4 = r3.getCurrentTrack();
      let a3, i4;
      if (!n4 || n4.segmentDuration <= 0 || null == t5)
        return void e4(null);
      i4 = r3.getThumbnailRequestForTime(t5), i4 && (n4.segmentDuration = i4.duration), a3 = t5 % n4.segmentDuration;
      const l4 = Math.floor(a3 * n4.tilesHor * n4.tilesVert / n4.segmentDuration), o3 = new Xl();
      if (o3.width = Math.floor(n4.widthPerTile), o3.height = Math.floor(n4.heightPerTile), o3.x = Math.floor(l4 % n4.tilesHor) * n4.widthPerTile, o3.y = Math.floor(l4 / n4.tilesHor) * n4.heightPerTile, "readThumbnail" in n4)
        return n4.readThumbnail(t5, (t6) => {
          o3.url = t6, e4(o3);
        });
      if (i4)
        o3.url = i4.url, n4.segmentDuration = NaN;
      else {
        const e5 = Math.floor(t5 / n4.segmentDuration);
        o3.url = function(t6, e6) {
          const n5 = e6 + t6.startNumber;
          return Nl(t6.templateUrl, void 0, n5, void 0, t6.bandwidth, (n5 - 1) * t6.segmentDuration * t6.timescale);
        }(n4, e5);
      }
      e4(o3);
    }, reset: l3, setTrackByIndex: i3, setTrackById: function(t5) {
      r3.setTrackById(t5);
    } }, l3(), r3 = to(e3).create({ streamInfo: n3, adapter: t4.adapter, baseURLController: t4.baseURLController, timelineConverter: t4.timelineConverter, debug: t4.debug, eventBus: t4.eventBus, events: t4.events, dashConstants: t4.dashConstants, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController }), a2;
  }
  eo.__dashjs_factory_name = "ThumbnailController";
  var no = r2.default.getClassFactory(eo);
  const ao = [m2.default.VIDEO, m2.default.AUDIO, m2.default.TEXT, m2.default.MUXED, m2.default.IMAGE];
  function ro(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = ce(e3).getInstance(), r3 = t4.manifestModel, i3 = t4.mediaPlayerModel, l3 = t4.dashMetrics, s2 = t4.manifestUpdater, u3 = t4.adapter, d3 = t4.timelineConverter, c3 = t4.capabilities, p3 = t4.errHandler, b3 = t4.abrController, y3 = t4.playbackController, E3 = t4.throughputController, T3 = t4.eventController, _3 = t4.mediaController, v3 = t4.protectionController, S3 = t4.textController, w3 = t4.videoModel;
    let I3 = t4.streamInfo;
    const k3 = t4.settings;
    let A2, R2, N2, C2, D2, x2, M2, P2, O2, z2, L2, F2, U2, j2, q2, B2;
    function G2(t5, e4, n4) {
      return new Promise((a3, i4) => {
        Z2(), tt2();
        let l4 = w3.getElement();
        const o3 = [];
        ao.forEach((e5) => {
          if ((e5 !== m2.default.TEXT || t5) && (e5 !== m2.default.VIDEO || !l4 || l4 && /^VIDEO$/i.test(l4.nodeName))) {
            const a4 = n4.find((t6) => t6.mediaInfo.type === e5);
            o3.push(H2(e5, t5, a4));
          }
        }), Promise.all(o3).then(() => function(t6) {
          return new Promise((e5) => {
            const n5 = {}, a4 = j2.map((e6) => {
              const n6 = e6.getRepresentation();
              return e6.createBufferSinks(t6, n6);
            });
            Promise.all(a4).then((t7) => {
              t7.forEach((t8) => {
                t8 && (n5[t8.getType()] = t8);
              }), e5(n5);
            }).catch(() => {
              e5(n5);
            });
          });
        }(e4)).then((e5) => {
          if (0 === j2.length) {
            const t6 = "No streams to play.";
            p3.error(new Ot.default(Rt.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t6, r3.getValue())), L2.fatal(t6);
          } else
            ct2();
          t5 && S3.createTracks(I3), a3(e5);
        }).catch((t6) => {
          i4(t6);
        });
      });
    }
    function H2(a3, r4, i4) {
      let l4, o3 = u3.getAllMediaInfoForType(I3, a3), s3 = [], d4 = null, c4 = -1;
      if (!o3 || 0 === o3.length)
        return L2.info("No " + a3 + " data."), Promise.resolve();
      a3 === m2.default.VIDEO && (x2 = true), a3 === m2.default.AUDIO && (C2 = true);
      for (let t5 = 0, e4 = o3.length; t5 < e4; t5++)
        d4 = o3[t5], a3 === m2.default.TEXT && d4.isEmbedded && (S3.addEmbeddedTrack(I3, d4), s3.push(d4)), Y2(d4) && _3.addTrack(d4), d4.type === m2.default.ENHANCEMENT && (c4 = t5);
      if (s3.length > 0 && (_3.setInitialMediaSettingsForType(a3, I3), S3.addMediaInfosToBuffer(I3, a3, s3)), o3 = o3.filter((t5) => !t5.isEmbedded), 0 === o3.length)
        return Promise.resolve();
      if (a3 === m2.default.IMAGE)
        return q2 = no(e3).create({ streamInfo: I3, adapter: u3, baseURLController: t4.baseURLController, timelineConverter: t4.timelineConverter, debug: R2, eventBus: n3, events: g2.default, dashConstants: Vt.default, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController }), q2.initialize(), Promise.resolve();
      n3.trigger(g2.default.STREAM_INITIALIZING, { streamInfo: I3, mediaInfo: d4 }), _3.setInitialMediaSettingsForType(a3, I3);
      let f3 = V2(o3, r4, a3);
      if (c4 >= 0) {
        let t5 = new tl(n3);
        t5.open(), t5.duration = I3.manifestInfo.duration;
        let e4 = V2(o3, t5, m2.default.ENHANCEMENT);
        e4.selectMediaInfo(new ol({ newMediaInfo: o3[c4] })), f3.setEnhancementStreamProcessor(e4);
      }
      if (l4 = _3.getCurrentTrackFor(a3, I3.id), l4) {
        const t5 = a3 === m2.default.TEXT && l4.isEmbedded ? o3[0] : l4, e4 = new ol({ newMediaInfo: t5, previouslySelectedRepresentation: i4 });
        return f3.selectMediaInfo(e4);
      }
      return Promise.resolve();
    }
    function Y2(t5) {
      const e4 = t5 ? t5.type : null;
      let n4;
      return e4 === m2.default.MUXED ? (n4 = "Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines", L2.fatal(n4), p3.error(new Ot.default(Rt.MANIFEST_ERROR_ID_MULTIPLEXED_CODE, n4, r3.getValue())), false) : !(e4 !== m2.default.TEXT && e4 !== m2.default.IMAGE && t5.contentProtection && t5.contentProtection.length > 0 && !c3.supportsEncryptedMedia() && (p3.error(new Ot.default(Rt.CAPABILITY_MEDIAKEYS_ERROR_CODE, Rt.CAPABILITY_MEDIAKEYS_ERROR_MESSAGE)), 1));
    }
    function V2(n4, a3, l4) {
      const o3 = n4 && n4.length > 0 ? n4.filter((t5) => t5.type === l4)[0] : null;
      let s3 = N2.getModel(o3 ? o3.type : null);
      const f3 = o3 ? o3.type : null, g3 = o3 ? o3.mimeType : null, h3 = o3 ? o3.isFragmented : null;
      let T4 = Ql(e3).create({ abrController: b3, adapter: u3, baseURLController: t4.baseURLController, boxParser: A2, capabilities: c3, dashMetrics: t4.dashMetrics, errHandler: p3, fragmentModel: s3, manifestModel: r3, mediaController: _3, mediaPlayerModel: i3, mimeType: g3, playbackController: y3, segmentBaseController: t4.segmentBaseController, segmentBlacklistController: U2, settings: k3, streamInfo: I3, textController: S3, throughputController: E3, timelineConverter: d3, type: f3 });
      return T4.initialize(a3, x2, h3), j2.push(T4), T4.setMediaInfoArray(n4), f3 === m2.default.TEXT && S3.addMediaInfosToBuffer(I3, f3, n4, s3), T4;
    }
    function K2(t5) {
      let e4 = j2 ? j2.length : 0;
      for (let n4 = 0; n4 < e4; n4++) {
        let e5 = j2[n4].getFragmentModel();
        e5.abortRequests(), e5.resetInitialSettings(), j2[n4].reset(false, t5);
      }
      S3 && S3.deactivateStream(I3), q2 && (q2.reset(), q2 = null), j2 = [], P2 = false, D2 = false, ft2(false), $2(false), n3.trigger(g2.default.STREAM_DEACTIVATED, { streamInfo: I3 });
    }
    function W2(t5) {
      K2(t5), z2 = false, x2 = false, C2 = false, O2 = false, B2 = [];
    }
    function $2(t5) {
      O2 = t5;
    }
    function Q2() {
      return I3 ? I3.start : NaN;
    }
    function X2() {
      return I3 ? I3.id : null;
    }
    function Z2() {
      if (!w3 || !b3)
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
    }
    function J2(t5) {
      t5.error && (p3.error(t5.error), L2.fatal(t5.error.message));
    }
    function tt2() {
      if (T3) {
        const t5 = u3.getEventsFor(I3);
        t5 && t5.length > 0 && T3.addInlineEvents(t5, I3.id);
      }
    }
    function et2(t5) {
      let e4 = nt2(t5);
      return e4 ? e4.getMediaInfo() : null;
    }
    function nt2(t5) {
      return t5 ? j2.find((e4) => e4.getType() === t5) : null;
    }
    function at2() {
      let t5 = ut2();
      const e4 = t5.length;
      if (0 !== e4) {
        for (let n4 = 0; n4 < e4; n4++)
          if (!t5[n4].isBufferingCompleted() && (t5[n4].getType() === m2.default.AUDIO || t5[n4].getType() === m2.default.VIDEO))
            return void L2.debug("onBufferingCompleted - One streamProcessor has finished but", t5[n4].getType(), "one is not buffering completed");
        L2.debug("onBufferingCompleted - trigger STREAM_BUFFERING_COMPLETED"), D2 = true, n3.trigger(g2.default.STREAM_BUFFERING_COMPLETED, { streamInfo: I3 }, { streamInfo: I3 });
      } else
        L2.warn("onBufferingCompleted - can't trigger STREAM_BUFFERING_COMPLETED because no streamProcessor is defined");
    }
    function rt2(t5) {
      T3 && T3.addInbandEvents(t5.events, I3.id);
    }
    function it2() {
      ct2();
    }
    function lt2() {
      tt2();
    }
    function ot2(t5) {
      return t5 && t5.type ? st2(t5.type) : null;
    }
    function st2(t5) {
      return t5 ? ut2().filter(function(e4) {
        return e4.getType() === t5;
      })[0] : null;
    }
    function ut2() {
      let t5, e4, n4 = [];
      for (let a3 = 0; a3 < j2.length; a3++)
        e4 = j2[a3], t5 = e4.getType(), t5 !== m2.default.AUDIO && t5 !== m2.default.VIDEO && t5 !== m2.default.TEXT && t5 !== m2.default.ENHANCEMENT || n4.push(e4);
      return n4;
    }
    function dt2() {
      const t5 = j2.length;
      for (let e4 = 0; e4 < t5 && j2[e4]; e4++)
        j2[e4].getScheduleController().startScheduleTimer();
    }
    function ct2() {
      const t5 = j2.length;
      if (v3) {
        v3.clearMediaInfoArray();
        for (let e4 = 0; e4 < t5 && j2[e4]; e4++) {
          const t6 = j2[e4].getType(), n4 = j2[e4].getMediaInfo();
          if (t6 === m2.default.AUDIO || t6 === m2.default.VIDEO || t6 === m2.default.TEXT && n4 && n4.isFragmented) {
            let t7 = j2[e4].getMediaInfo();
            t7 && v3.initializeForMedia(t7);
          }
        }
        v3.handleKeySystemFromManifest();
      }
      z2 || (z2 = true, w3.waitForReadyState(m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, () => {
        n3.trigger(g2.default.STREAM_INITIALIZED, { streamInfo: I3 });
      }));
    }
    function ft2(t5) {
      F2 = t5;
    }
    function gt2() {
      return F2;
    }
    return M2 = { activate: function(t5, e4, a3 = []) {
      return new Promise((r4, i4) => {
        if (!P2)
          return gt2() ? (P2 = true, n3.trigger(g2.default.STREAM_ACTIVATED, { streamInfo: I3 }), void r4()) : void function(t6, e5, n4 = []) {
            return G2(t6, e5, n4);
          }(t5, e4, a3).then(() => {
            P2 = true, a3 && a3.length > 0 && dt2(), n3.trigger(g2.default.STREAM_ACTIVATED, { streamInfo: I3 }), r4();
          }).catch((t6) => {
            i4(t6);
          });
        r4();
      });
    }, checkAndHandleCompletedBuffering: function() {
      D2 || j2.forEach((t5) => {
        t5.checkAndHandleCompletedBuffering();
      });
    }, deactivate: K2, getAdapter: function() {
      return u3;
    }, getCurrentMediaInfoForType: function(t5) {
      const e4 = st2(t5);
      return e4 ? e4.getMediaInfo() : null;
    }, getCurrentRepresentationForType: function(t5) {
      const e4 = st2(t5);
      return e4 ? e4.getRepresentation() : null;
    }, getDuration: function() {
      return I3 ? I3.duration : NaN;
    }, getHasAudioTrack: function() {
      return C2;
    }, getHasFinishedBuffering: function() {
      return D2;
    }, getHasVideoTrack: function() {
      return x2;
    }, getId: X2, getIsActive: function() {
      return P2;
    }, getIsEndedEventSignaled: function() {
      return O2;
    }, getPreloaded: gt2, getRepresentationForTypeById: function(t5, e4) {
      let n4;
      if (t5 === m2.default.IMAGE) {
        if (!q2)
          return null;
        n4 = q2.getPossibleVoRepresentations();
      } else {
        const e5 = function(t6) {
          let e6 = nt2(t6);
          return e6 ? e6.getAllMediaInfos() : [];
        }(t5);
        n4 = e5.flatMap((t6) => b3.getPossibleVoRepresentationsFilteredBySettings(t6, true));
      }
      if (!n4 || 0 === n4.length)
        return null;
      const a3 = n4.filter((t6) => t6.id === e4);
      return a3 && a3.length > 0 ? a3[0] : null;
    }, getRepresentationForTypeByIndex: function(t5, e4) {
      let n4;
      if (t5 === m2.default.IMAGE) {
        if (!q2)
          return null;
        n4 = q2.getPossibleVoRepresentations();
      } else {
        const e5 = et2(t5);
        n4 = b3.getPossibleVoRepresentationsFilteredBySettings(e5, true);
      }
      return n4[e4 = Math.max(Math.min(e4, n4.length - 1), 0)];
    }, getRepresentationsByType: function(t5) {
      if (Z2(), t5 === m2.default.IMAGE)
        return q2 ? q2.getPossibleVoRepresentations() : [];
      const e4 = et2(t5);
      return b3.getPossibleVoRepresentationsFilteredBySettings(e4, true);
    }, getStartTime: Q2, getStreamId: function() {
      return I3 ? I3.id : null;
    }, getStreamInfo: function() {
      return I3;
    }, getStreamProcessors: ut2, getThumbnailController: function() {
      return q2;
    }, initialize: function() {
      n3.on(g2.default.BUFFERING_COMPLETED, at2, M2), n3.on(g2.default.INBAND_EVENTS, rt2, M2), n3.on(g2.default.DATA_UPDATE_COMPLETED, it2, M2), n3.on(h2.default.PLAYBACK_SEEKED, lt2, M2), v3 && (n3.on(g2.default.KEY_ERROR, J2, M2), n3.on(g2.default.SERVER_CERTIFICATE_UPDATED, J2, M2), n3.on(g2.default.LICENSE_REQUEST_COMPLETE, J2, M2), n3.on(g2.default.KEY_SYSTEM_SELECTED, J2, M2), n3.on(g2.default.KEY_SESSION_CREATED, J2, M2)), S3.initializeForStream(I3), n3.trigger(g2.default.STREAM_UPDATED, { streamInfo: I3 });
    }, initializeForTextWithMediaSource: function(t5) {
      return new Promise((e4, n4) => {
        H2(m2.default.TEXT, t5, null).then(() => function() {
          const t6 = st2(m2.default.TEXT);
          return t6 ? t6.createBufferSinks() : Promise.resolve();
        }()).then(() => {
          S3.createTracks(I3), e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }, prepareQualityChange: function(t5) {
      const e4 = st2(t5.mediaType);
      e4 && e4.prepareQualityChange(t5);
    }, prepareTrackChange: function(t5) {
      if (!P2 || !I3)
        return;
      D2 = false;
      let e4 = t5.newMediaInfo, n4 = r3.getValue(), a3 = ot2(e4);
      if (!a3)
        return;
      let i4 = y3.getTime();
      if (L2.info("Stream -  Process track changed at current time " + i4), n4.refreshManifestOnSwitchTrack)
        B2.push(t5), s2.getIsUpdating() || (L2.debug("Stream -  Refreshing manifest for switch track"), s2.refreshManifest());
      else {
        a3.clearScheduleTimer(), a3.setTrackSwitchInProgress(true);
        const n5 = a3.getRepresentation();
        a3.selectMediaInfo(new ol({ newMediaInfo: e4 })).then(() => {
          const e5 = !!(t5 && t5.options && t5.options.hasOwnProperty("replaceBuffer")) && t5.options.replaceBuffer;
          return a3.prepareTrackSwitch(n5, e5);
        }).then(() => {
          a3.setTrackSwitchInProgress(false);
        });
      }
    }, reset: function(t5) {
      N2 && (N2.reset(), N2 = null), b3 && I3 && b3.clearDataForStream(I3.id), U2 && (U2.reset(), U2 = null), S3 && I3 && S3.clearDataForStream(I3.id), _3 && I3 && _3.clearDataForStream(I3.id), W2(t5), I3 = null, n3.off(g2.default.BUFFERING_COMPLETED, at2, M2), n3.off(g2.default.INBAND_EVENTS, rt2, M2), n3.off(g2.default.DATA_UPDATE_COMPLETED, it2, M2), n3.off(h2.default.PLAYBACK_SEEKED, lt2, M2), v3 && (n3.off(g2.default.KEY_ERROR, J2, M2), n3.off(g2.default.SERVER_CERTIFICATE_UPDATED, J2, M2), n3.off(g2.default.LICENSE_REQUEST_COMPLETE, J2, M2), n3.off(g2.default.KEY_SYSTEM_SELECTED, J2, M2), n3.off(g2.default.KEY_SESSION_CREATED, J2, M2));
    }, setIsEndedEventSignaled: $2, setMediaSource: function(t5) {
      return new Promise((e4, n4) => {
        const a3 = [];
        for (let e5 = 0; e5 < j2.length; )
          Y2(j2[e5].getMediaInfo()) ? (a3.push(j2[e5].setMediaSource(t5)), e5++) : (j2[e5].reset(), j2.splice(e5, 1));
        Promise.all(a3).then(() => {
          for (let t6 = 0; t6 < j2.length; t6++)
            j2[t6].dischargePreBuffer();
          if (0 === j2.length) {
            const t6 = "No streams to play.";
            p3.error(new Ot.default(Rt.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t6 + "nostreams", r3.getValue())), L2.fatal(t6);
          }
          e4();
        }).catch((t6) => {
          L2.error(t6), n4(t6);
        });
      });
    }, startPreloading: function(t5, e4, n4 = []) {
      return new Promise((a3, r4) => {
        gt2() ? r4() : (L2.info(`[startPreloading] Preloading next stream with id ${X2()}`), ft2(true), G2(t5, e4, n4).then(() => {
          for (let t6 = 0; t6 < j2.length && j2[t6]; t6++)
            j2[t6].setExplicitBufferingTime(Q2()), j2[t6].getScheduleController().startScheduleTimer();
          a3();
        }).catch(() => {
          ft2(false), r4();
        }));
      });
    }, startScheduleControllers: dt2, triggerProtectionError: function(t5) {
      J2(t5);
    }, updateData: function(t5) {
      return new Promise((e4) => {
        I3 = t5, T3 && tt2();
        let a3, r4 = [];
        for (let t6 = 0, e5 = j2.length; t6 < e5; t6++) {
          let e6 = j2[t6];
          const n4 = e6.getMediaInfo();
          r4.push(e6.updateStreamInfo(I3));
          let a4 = u3.getAllMediaInfoForType(I3, e6.getType());
          if (a4 = a4.filter((t7) => !t7.isEmbedded), e6.setMediaInfoArray(a4), a4)
            for (let t7 = 0; t7 < a4.length; t7++)
              u3.areMediaInfosEqual(n4, a4[t7]) && r4.push(e6.selectMediaInfo(new ol({ newMediaInfo: a4[t7] })));
        }
        Promise.all(r4).then(() => {
          let t6 = [];
          for (; B2.length > 0; ) {
            let e5 = B2.pop(), n4 = e5.newMediaInfo;
            if (a3 = ot2(e5.oldMediaInfo), !a3)
              return;
            const r5 = a3.getRepresentation();
            a3.setTrackSwitchInProgress(true), t6.push(a3.prepareTrackSwitch(r5)), t6.push(a3.selectMediaInfo(new ol({ newMediaInfo: n4 })));
          }
          return Promise.all(t6);
        }).then(() => {
          ct2(), a3 && a3.setTrackSwitchInProgress(false), n3.trigger(g2.default.STREAM_UPDATED, { streamInfo: I3 }), e4();
        }).catch((t6) => {
          p3.error(t6);
        });
      });
    } }, function() {
      try {
        R2 = (0, o2.default)(e3).getInstance(), L2 = R2.getLogger(M2), W2(), A2 = Ia(e3).getInstance(), U2 = Ct(e3).create({ updateEventName: g2.default.SEGMENT_LOCATION_BLACKLIST_CHANGED, addBlacklistEventName: g2.default.SEGMENT_LOCATION_BLACKLIST_ADD }), N2 = ll(e3).create({ streamInfo: I3, mediaPlayerModel: i3, dashMetrics: l3, errHandler: p3, settings: k3, boxParser: A2, dashConstants: Vt.default, urlUtils: a2 });
      } catch (t5) {
        throw t5;
      }
    }(), M2;
  }
  ro.__dashjs_factory_name = "Stream";
  var io = r2.default.getClassFactory(ro);
  function lo() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance(), n3 = ce(t4).getInstance();
    let a2, r3, i3, l3, s2, u3, d3, c3, m3, h3, p3, b3, y3, E3, T3, _3;
    function v3() {
      c3 = [], m3 = [], h3 = null, p3 = null, y3 = null, b3 = NaN, i3 = false, l3 = false, E3 = s2.get().streaming.utcSynchronization.timeBetweenSyncAttempts;
    }
    function S3() {
      s2.get().streaming.utcSynchronization.enabled && !i3 && !l3 && y3 && y3.value && y3.schemeIdUri && !isNaN(b3) && !isNaN(s2.get().streaming.utcSynchronization.backgroundAttempts) && (p3 && (Date.now() - p3) / 1e3 < 30 || (c3 = [], l3 = true, I3(isNaN(s2.get().streaming.utcSynchronization.backgroundAttempts) ? 2 : s2.get().streaming.utcSynchronization.backgroundAttempts)));
    }
    function I3(t5) {
      try {
        if (t5 <= 0)
          return void L2();
        const e4 = Date.now();
        u3[y3.schemeIdUri](y3.value, function(n4) {
          const a3 = Date.now(), r4 = A2(e4, a3, n4);
          c3.push(r4), I3(t5 - 1);
        }, function() {
          L2();
        });
      } catch (t6) {
        L2();
      }
    }
    function k3(t5 = null) {
      let e4 = t5 || 0;
      if (!m3 || 0 === m3.length || e4 >= m3.length)
        return void R2();
      let n4 = m3[e4];
      if (n4)
        if (u3.hasOwnProperty(n4.schemeIdUri)) {
          const t6 = (/* @__PURE__ */ new Date()).getTime();
          u3[n4.schemeIdUri](n4.value, function(e5) {
            const a3 = (/* @__PURE__ */ new Date()).getTime(), r4 = A2(t6, a3, e5);
            y3 = n4, R2(r4);
          }, function() {
            k3(e4 + 1);
          });
        } else
          k3(e4 + 1);
      else
        R2();
    }
    function A2(t5, e4, n4) {
      return n4 - (e4 - (e4 - t5) / 2);
    }
    function R2(t5 = NaN) {
      let e4 = isNaN(t5);
      e4 && s2.get().streaming.utcSynchronization.useManifestDateHeaderTimeSource ? function() {
        let t6 = d3.getLatestMPDRequestHeaderValueByID("Date"), e5 = null !== t6 ? new Date(t6).getTime() : Number.NaN;
        isNaN(e5) ? z2(true) : z2(false, e5 - Date.now());
      }() : z2(e4, t5);
    }
    function N2(t5) {
      let e4 = Date.parse(t5);
      return isNaN(e4) && (e4 = function(t6) {
        let e5, n4, a3 = /^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+\-])([0-9]{2})([0-9]{2}))?/.exec(t6);
        return e5 = Date.UTC(parseInt(a3[1], 10), parseInt(a3[2], 10) - 1, parseInt(a3[3], 10), parseInt(a3[4], 10), parseInt(a3[5], 10), a3[6] && (parseInt(a3[6], 10) || 0), a3[7] && 1e3 * parseFloat(a3[7]) || 0), a3[9] && a3[10] && (n4 = 60 * parseInt(a3[9], 10) + parseInt(a3[10], 10), e5 += ("+" === a3[8] ? -1 : 1) * n4 * 60 * 1e3), new Date(e5).getTime();
      }(t5)), e4;
    }
    function C2(t5) {
      return Date.parse(t5);
    }
    function D2(t5) {
      return Date.parse(t5);
    }
    function x2(t5, e4, n4) {
      n4();
    }
    function M2(t5, e4, n4) {
      let a3 = N2(t5);
      isNaN(a3) ? n4() : e4(a3);
    }
    function P2(t5, e4, a3, r4, i4) {
      let l4, o3, s3 = false, u4 = new XMLHttpRequest(), d4 = i4 ? w2.HTTPRequest.HEAD : w2.HTTPRequest.GET, c4 = e4.match(/\S+/g);
      if (e4 = c4.shift(), l4 = function() {
        s3 || (s3 = true, c4.length ? P2(t5, c4.join(" "), a3, r4, i4) : r4());
      }, o3 = function() {
        let e5, n4;
        200 === u4.status && (e5 = i4 ? u4.getResponseHeader("Date") : u4.response, n4 = t5(e5), isNaN(n4) || (a3(n4), s3 = true));
      }, n3.isRelative(e4)) {
        const t6 = _3.resolve();
        t6 && (e4 = n3.resolve(e4, t6.url));
      }
      u4.open(d4, e4), u4.timeout = 5e3, u4.onload = o3, u4.onloadend = l4, u4.send();
    }
    function O2(t5, e4, n4) {
      P2(D2, t5, e4, n4, true);
    }
    function z2(t5, n4) {
      if (isNaN(b3) || isNaN(n4) || t5 || function(t6) {
        try {
          const e4 = F2(t6), n5 = isNaN(E3) ? 30 : E3, a4 = isNaN(s2.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor) ? 2 : s2.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor, i4 = isNaN(s2.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts) ? 600 : s2.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts, l4 = isNaN(s2.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts) ? 2 : s2.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts;
          let o3;
          e4 ? (o3 = Math.min(n5 * a4, i4), r3.debug(`Increasing timeBetweenSyncAttempts to ${o3}`)) : (o3 = Math.max(n5 / a4, l4), r3.debug(`Decreasing timeBetweenSyncAttempts to ${o3}`)), E3 = o3;
        } catch (t7) {
        }
      }(n4), !t5 && !isNaN(n4)) {
        h3 = Date.now(), i3 = false;
        const t6 = isNaN(b3);
        b3 = n4, t6 && S3(), r3.debug(`Completed UTC sync. Setting client - server offset to ${n4}`);
      }
      t5 && (y3 = null, i3 = false, T3.error(new Ot.default(Rt.TIME_SYNC_FAILED_ERROR_CODE, Rt.TIME_SYNC_FAILED_ERROR_MESSAGE)));
      const a3 = s2.get().streaming.utcSynchronization.artificialTimeOffsetToApply;
      e3.trigger(g2.default.UPDATE_TIME_SYNC_OFFSET, { offset: n4 + a3 }), e3.trigger(g2.default.TIME_SYNCHRONIZATION_COMPLETED);
    }
    function L2() {
      if (!c3 || 0 === c3.length)
        return;
      const t5 = c3.reduce((t6, e4) => t6 + e4, 0) / c3.length;
      F2(t5) ? r3.debug("Completed background UTC sync. Offset is within allowed threshold and is not adjusted.") : (r3.debug(`Completed background UTC sync. Setting client - server offset to ${t5}`), b3 = t5, e3.trigger(g2.default.UPDATE_TIME_SYNC_OFFSET, { offset: b3 })), l3 = false, p3 = Date.now();
    }
    function F2(t5) {
      try {
        if (isNaN(b3))
          return true;
        const e4 = s2.get().streaming.utcSynchronization.maximumAllowedDrift && !isNaN(s2.get().streaming.utcSynchronization.maximumAllowedDrift) ? s2.get().streaming.utcSynchronization.maximumAllowedDrift : 100;
        return t5 >= b3 - e4 && t5 <= b3 + e4;
      } catch (t6) {
        return true;
      }
    }
    return a2 = { initialize: function() {
      v3(), u3 = { "urn:mpeg:dash:utc:http-head:2014": O2, "urn:mpeg:dash:utc:http-xsdate:2014": P2.bind(null, N2), "urn:mpeg:dash:utc:http-iso:2014": P2.bind(null, C2), "urn:mpeg:dash:utc:direct:2014": M2, "urn:mpeg:dash:utc:http-head:2012": O2, "urn:mpeg:dash:utc:http-xsdate:2012": P2.bind(null, N2), "urn:mpeg:dash:utc:http-iso:2012": P2.bind(null, C2), "urn:mpeg:dash:utc:direct:2012": M2, "urn:mpeg:dash:utc:http-ntp:2014": x2, "urn:mpeg:dash:utc:ntp:2014": x2, "urn:mpeg:dash:utc:sntp:2014": x2 };
    }, attemptSync: function(t5, n4) {
      m3 = t5, i3 || (function(t6) {
        try {
          if (!t6 || !s2.get().streaming.utcSynchronization.enabled)
            return false;
          const e4 = isNaN(E3) ? 30 : E3;
          return !(h3 && e4 && !isNaN(e4)) || (Date.now() - h3) / 1e3 >= e4;
        } catch (t7) {
          return true;
        }
      }(n4) ? (i3 = true, k3()) : e3.trigger(g2.default.TIME_SYNCHRONIZATION_COMPLETED));
    }, setConfig: function(t5) {
      t5 && (t5.dashMetrics && (d3 = t5.dashMetrics), t5.baseURLController && (_3 = t5.baseURLController), t5.errHandler && (T3 = t5.errHandler), t5.settings && (s2 = t5.settings));
    }, reset: function() {
      v3(), e3.off(g2.default.ATTEMPT_BACKGROUND_SYNC, S3, a2);
    } }, r3 = (0, o2.default)(t4).getInstance().getLogger(a2), e3.on(g2.default.ATTEMPT_BACKGROUND_SYNC, S3, a2), a2;
  }
  lo.__dashjs_factory_name = "TimeSyncController";
  const oo = r2.default.getSingletonFactory(lo);
  oo.HTTP_TIMEOUT_MS = 5e3, r2.default.updateSingletonFactory(lo.__dashjs_factory_name, oo);
  var so = oo;
  function uo() {
    let t4, e3, n3, a2, r3;
    const i3 = this.context, l3 = (0, f2.default)(i3).getInstance();
    return t4 = { attachMediaSource: function(t5) {
      let n4 = window.URL.createObjectURL(e3);
      return t5.setSource(n4), "managedMediaSource" === a2 && (t5.setDisableRemotePlayback(true), e3.addEventListener("startstreaming", () => {
        l3.trigger(h2.default.MANAGED_MEDIA_SOURCE_START_STREAMING);
      }), e3.addEventListener("endstreaming", () => {
        l3.trigger(h2.default.MANAGED_MEDIA_SOURCE_END_STREAMING);
      })), n4;
    }, createMediaSource: function() {
      let t5 = "WebKitMediaSource" in window, n4 = "MediaSource" in window;
      return "ManagedMediaSource" in window ? (e3 = new ManagedMediaSource(), a2 = "managedMediaSource", r3.info("Created ManagedMediaSource")) : n4 ? (e3 = new MediaSource(), a2 = "mediaSource", r3.info("Created MediaSource")) : t5 && (e3 = new WebKitMediaSource(), r3.info("Created WebkitMediaSource")), e3;
    }, detachMediaSource: function(t5) {
      t5.setSource(null);
    }, setConfig: function(t5) {
      t5 && t5.settings && (n3 = t5.settings);
    }, setDuration: function t5(a3) {
      e3 && "open" === e3.readyState && (null === a3 && isNaN(a3) || e3.duration !== a3 && (a3 !== 1 / 0 || n3.get().streaming.buffer.mediaSourceDurationInfinity || (a3 = Math.pow(2, 32)), function(t6) {
        let e4 = t6.sourceBuffers;
        for (let t7 = 0; t7 < e4.length; t7++)
          if (e4[t7].updating)
            return true;
        return false;
      }(e3) ? setTimeout(t5.bind(null, a3), 50) : (r3.info("Set MediaSource duration:" + a3), e3.duration = a3)));
    }, setSeekable: function(t5, n4) {
      e3 && "function" == typeof e3.setLiveSeekableRange && "function" == typeof e3.clearLiveSeekableRange && "open" === e3.readyState && t5 >= 0 && t5 < n4 && (e3.clearLiveSeekableRange(), e3.setLiveSeekableRange(t5, n4));
    }, signalEndOfStream: function(t5) {
      if (!t5 || "open" !== t5.readyState)
        return;
      let e4 = t5.sourceBuffers;
      for (let t6 = 0; t6 < e4.length; t6++) {
        if (e4[t6].updating)
          return;
        if (0 === e4[t6].buffered.length)
          return;
      }
      r3.info("call to mediaSource endOfStream"), t5.endOfStream();
    } }, r3 = (0, o2.default)(i3).getInstance().getLogger(t4), t4;
  }
  uo.__dashjs_factory_name = "MediaSourceController";
  var co = r2.default.getSingletonFactory(uo);
  function fo() {
    const t4 = "urn:mpeg:dash:event:2012", e3 = 1, n3 = "urn:mpeg:dash:event:callback:2015", a2 = 1, r3 = 300, i3 = "discarded", l3 = "updated", s2 = "added", u3 = this.context, d3 = (0, f2.default)(u3).getInstance();
    let c3, g3, m3, p3, b3, y3, E3, T3, _3, v3, S3;
    function w3() {
      if (!E3 || !T3)
        throw new Error("setConfig function has to be called previously");
    }
    function I3() {
      S3 = false, m3 = {}, p3 = {}, b3 = null, v3 = false, y3 = Date.now() / 1e3;
    }
    function k3() {
      try {
        if (!v3) {
          v3 = true;
          const t5 = T3.getTime();
          let e4 = t5 - y3;
          e4 = y3 > 0 ? Math.max(0, e4) : 0, A2(p3, e4, t5), A2(m3, e4, t5), R2(p3), R2(m3), y3 = t5, v3 = false;
        }
      } catch (t5) {
        v3 = false, g3.error(t5);
      }
    }
    function A2(t5, e4, n4) {
      try {
        const a3 = function(a4) {
          if (void 0 !== a4) {
            const r4 = isNaN(a4.duration) ? 0 : a4.duration;
            a4.calculatedPresentationTime <= n4 && a4.calculatedPresentationTime + e4 + r4 >= n4 ? P2(a4, h2.default.EVENT_MODE_ON_START) : (M2(n4, r4 + e4, a4.calculatedPresentationTime) || function(t6) {
              try {
                const e5 = t6.eventStream.period.start + t6.eventStream.period.duration;
                return t6.calculatedPresentationTime > e5;
              } catch (t7) {
                return g3.error(t7), false;
              }
            }(a4)) && (g3.debug(`Removing event ${a4.id} from period ${a4.eventStream.period.id} as it is expired or invalid`), function(t6, e5) {
              try {
                const n5 = e5.eventStream.schemeIdUri, a5 = e5.eventStream.period.id, r5 = e5.eventStream.value, i4 = e5.id;
                t6[a5][n5] = t6[a5][n5].filter((t7) => r5 && t7.eventStream.value && t7.eventStream.value !== r5 || t7.id !== i4), 0 === t6[a5][n5].length && delete t6[a5][n5];
              } catch (t7) {
                g3.error(t7);
              }
            }(t5, a4));
          }
        };
        x2(t5, a3);
      } catch (t6) {
        g3.error(t6);
      }
    }
    function R2(t5) {
      try {
        for (const e4 in t5)
          t5.hasOwnProperty(e4) && 0 === Object.keys(t5[e4]).length && delete t5[e4];
      } catch (t6) {
        g3.error(t6);
      }
    }
    function N2(t5, e4, n4 = false) {
      const a3 = t5.eventStream.schemeIdUri, r4 = t5.eventStream.value, o3 = t5.id;
      let u4 = i3;
      e4[a3] || (e4[a3] = []);
      const d4 = e4[a3].findIndex((t6) => (!r4 || t6.eventStream.value && t6.eventStream.value === r4) && t6.id === o3);
      if (-1 === d4)
        e4[a3].push(t5), t5.triggeredReceivedEvent = false, t5.triggeredStartEvent = false, u4 = s2;
      else if (n4) {
        const n5 = e4[a3][d4];
        t5.triggeredReceivedEvent = n5.triggeredReceivedEvent, t5.triggeredStartEvent = n5.triggeredStartEvent, e4[a3][d4] = t5, u4 = l3;
      }
      return u4;
    }
    function C2(t5) {
      try {
        if (t5.eventStream.value == e3) {
          const e4 = t5.calculatedPresentationTime;
          let n4;
          n4 = 4294967295 == t5.calculatedPresentationTime ? NaN : t5.calculatedPresentationTime + t5.duration, d3.trigger(h2.default.MANIFEST_VALIDITY_CHANGED, { id: t5.id, validUntil: e4, newDuration: n4, newManifestValidAfter: NaN }, { mode: h2.default.EVENT_MODE_ON_START });
        }
      } catch (t6) {
        g3.error(t6);
      }
    }
    function D2(t5) {
      try {
        const e4 = T3.getTime();
        x2(t5, function(t6) {
          const n4 = t6.eventStream && t6.eventStream.period && !isNaN(t6.eventStream.period.duration) ? t6.eventStream.period.duration : NaN, a3 = t6.eventStream && t6.eventStream.period && !isNaN(t6.eventStream.period.start) ? t6.eventStream.period.start : NaN;
          if (isNaN(n4) || isNaN(a3))
            return;
          const i4 = t6.calculatedPresentationTime;
          Math.abs(i4 - e4) < r3 && P2(t6, h2.default.EVENT_MODE_ON_START);
        });
      } catch (t6) {
        g3.error(t6);
      }
    }
    function x2(t5, e4) {
      try {
        if (t5) {
          const n4 = Object.keys(t5);
          for (let a3 = 0; a3 < n4.length; a3++) {
            const r4 = t5[n4[a3]], i4 = Object.keys(r4);
            for (let t6 = 0; t6 < i4.length; t6++)
              r4[i4[t6]].forEach((t7) => {
                void 0 !== t7 && e4(t7);
              });
          }
        }
      } catch (t6) {
        g3.error(t6);
      }
    }
    function M2(t5, e4, n4) {
      try {
        return t5 - e4 > n4;
      } catch (t6) {
        return g3.error(t6), false;
      }
    }
    function P2(r4, i4) {
      try {
        const l4 = T3.getTime(), o3 = r4.id;
        if (i4 === h2.default.EVENT_MODE_ON_RECEIVE && !r4.triggeredReceivedEvent)
          return g3.debug(`Received event ${o3}`), r4.triggeredReceivedEvent = true, void d3.trigger(r4.eventStream.schemeIdUri, { event: r4 }, { mode: i4 });
        r4.triggeredStartEvent || (r4.eventStream.schemeIdUri === t4 && r4.eventStream.value == e3 ? 0 === r4.duration && 0 === r4.presentationTimeDelta || (g3.debug(`Starting manifest refresh event ${o3} at ${l4}`), function() {
          try {
            w3(), E3.refreshManifest();
          } catch (t5) {
            g3.error(t5);
          }
        }()) : r4.eventStream.schemeIdUri === n3 && r4.eventStream.value == a2 ? (g3.debug(`Starting callback event ${o3} at ${l4}`), function(t5) {
          try {
            let e4 = Ut(u3).create({});
            const n4 = new ta({ method: "get", url: t5, responseType: "arraybuffer", customData: {} }), a3 = new ea({ request: n4 });
            e4.load(n4, a3);
          } catch (t6) {
            g3.error(t6);
          }
        }(r4.messageData instanceof Uint8Array ? Lt.default.uint8ArrayToString(r4.messageData) : r4.messageData)) : (g3.debug(`Starting event ${o3} from period ${r4.eventStream.period.id} at ${l4}`), d3.trigger(r4.eventStream.schemeIdUri, { event: r4 }, { mode: i4 }), _3.get().streaming.events.deleteEventMessageDataTimeout > -1 && setTimeout(() => {
          delete r4.messageData, delete r4.parsedMessageData;
        }, _3.get().streaming.events.deleteEventMessageDataTimeout)), r4.triggeredStartEvent = true);
      } catch (t5) {
        g3.error(t5);
      }
    }
    return c3 = { addInlineEvents: function(t5, e4) {
      try {
        if (w3(), m3[e4] || (m3[e4] = {}), t5)
          for (let n4 = 0; n4 < t5.length; n4++) {
            let a3 = t5[n4];
            if (!M2(T3.getTime(), isNaN(a3.duration) ? 0 : a3.duration, a3.calculatedPresentationTime)) {
              let t6 = N2(a3, m3[e4], true);
              t6 === s2 ? (g3.debug(`Added inline event with id ${a3.id} from period ${e4}`), P2(a3, h2.default.EVENT_MODE_ON_RECEIVE)) : t6 === l3 && g3.debug(`Updated inline event with id ${a3.id} from period ${e4}`);
            }
          }
      } catch (t6) {
        throw t6;
      }
    }, addInbandEvents: function(e4, n4) {
      try {
        w3(), p3[n4] || (p3[n4] = {});
        for (let a3 = 0; a3 < e4.length; a3++) {
          let r4 = e4[a3];
          M2(T3.getTime(), isNaN(r4.duration) ? 0 : r4.duration, r4.calculatedPresentationTime) || (N2(r4, p3[n4], false) === s2 ? (r4.eventStream.schemeIdUri === t4 && C2(r4), g3.debug(`Added inband event with id ${r4.id} from period ${n4}`), P2(r4, h2.default.EVENT_MODE_ON_RECEIVE)) : g3.debug(`Inband event with scheme_id_uri ${r4.eventStream.schemeIdUri}, value ${r4.eventStream.value}, period id ${n4} and event id ${r4.id} was ignored because it has been added before.`));
        }
        k3();
      } catch (t5) {
        throw t5;
      }
    }, getInbandEvents: function() {
      return p3;
    }, getInlineEvents: function() {
      return m3;
    }, start: function() {
      try {
        w3(), g3.debug("Start Event Controller");
        const t5 = _3.get().streaming.events.eventControllerRefreshDelay;
        S3 || isNaN(t5) || (S3 = true, b3 = setInterval(k3, t5));
      } catch (t5) {
        throw t5;
      }
    }, setConfig: function(t5) {
      try {
        if (!t5)
          return;
        t5.manifestUpdater && (E3 = t5.manifestUpdater), t5.playbackController && (T3 = t5.playbackController), t5.settings && (_3 = t5.settings);
      } catch (t6) {
        throw t6;
      }
    }, reset: function() {
      (function() {
        try {
          null !== b3 && S3 && (clearInterval(b3), b3 = null, S3 = false, function() {
            try {
              D2(p3), D2(m3);
            } catch (t5) {
              g3.error(t5);
            }
          }());
        } catch (t5) {
          throw t5;
        }
      })(), I3();
    } }, g3 = (0, o2.default)(u3).getInstance().getLogger(c3), I3(), c3;
  }
  fo.__dashjs_factory_name = "EventController";
  var go = r2.default.getSingletonFactory(fo), mo = { LEVELS: { WARNING: "Warning", ERROR: "Error" }, EVENTS: { NO_UTC_TIMING_ELEMENT: { key: "NO_UTC_TIMING_ELEMENT", message: "No UTCTiming element is present in the manifest. You may experience playback failures. For a detailed validation use https://conformance.dashif.org/" }, NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE: { key: "NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE", message: 'SMPTE 2052-1:2013 defines the attribute name as "imageType" and does not define "imagetype"' }, INVALID_DVR_WINDOW: { key: "INVALID_DVR_WINDOW", message: "No valid segment found when applying a specification compliant DVR window calculation. Using SegmentTimeline entries as a fallback." } } }, ho = n2(445), po = n2(1923);
  function bo() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3, i3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, w3, I3, k3, A2, R2, N2, C2, D2, x2, M2, P2, O2, z2, L2, F2, U2, j2, q2, B2, G2, H2, Y2, V2, K2, W2, $2, Q2, X2, Z2, J2, tt2, et2;
    function nt2() {
      if (!(u3 && u3.hasOwnProperty("load") && N2 && N2.hasOwnProperty("initialize") && N2.hasOwnProperty("reset") && N2.hasOwnProperty("getClientTimeOffset") && d3 && R2 && p3 && B2))
        throw new Error(m2.default.MISSING_CONFIG_ERROR);
    }
    function at2() {
      !function() {
        try {
          const t5 = c3.getStreamsInfo();
          if (!D2 && 0 === t5.length)
            throw new Error("There are no periods in the MPD");
          D2 && t5.length > 0 && p3.updateManifestUpdateInfo({ currentTime: B2.getTime(), buffered: q2.getBufferRange(), presentationStartTime: t5[0].start, clientTimeOffset: N2.getClientTimeOffset() }), C2.length > 0 && function(t6) {
            0 !== t6.length ? C2 = C2.filter((e4) => {
              const n5 = t6.filter((t7) => t7.id === e4.getId()).length > 0 || e4.getId() === D2.getId();
              return n5 || (a2.debug(`Removing stream ${e4.getId()}`), e4.reset(true), e4 = null), n5;
            }) : a2.warn("No periods included in the current manifest. Skipping the filtering of outdated stream objects.");
          }(t5);
          const n4 = [];
          for (let e4 = 0, a3 = t5.length; e4 < a3; e4++) {
            const a4 = t5[e4];
            n4.push(it2(a4)), p3.addManifestUpdateStreamInfo(a4);
          }
          Promise.all(n4).then(() => new Promise((e4, n5) => {
            D2 ? e4() : lt2(t5, e4, n5);
          })).then(() => {
            e3.trigger(g2.default.STREAMS_COMPOSED), Nt2();
          }).catch((t6) => {
            throw t6;
          });
        } catch (t5) {
          R2.error(new Ot.default(Rt.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t5.message + " nostreamscomposed", d3.getValue())), U2 = true, Zt2();
        }
      }();
    }
    function rt2() {
      Z2 = true;
    }
    function it2(e4) {
      let n4 = $t2(e4.id);
      return n4 ? n4.updateData(e4) : (n4 = io(t4).create({ manifestModel: d3, mediaPlayerModel: H2, dashMetrics: p3, manifestUpdater: s2, adapter: c3, timelineConverter: N2, capabilities: r3, capabilitiesFilter: i3, errHandler: R2, baseURLController: T3, segmentBaseController: _3, textController: M2, abrController: S3, playbackController: B2, throughputController: w3, eventController: k3, mediaController: I3, protectionController: x2, videoModel: q2, streamInfo: e4, settings: X2 }), C2.push(n4), n4.initialize(), Promise.resolve());
    }
    function lt2(t5, n4, r4) {
      try {
        Tt2();
        const i4 = p3.getCurrentDVRInfo().range;
        if (i4.end < i4.start)
          return void function(t6, n5, r5, i5) {
            J2 && clearTimeout(J2);
            const l4 = Math.min(1e3 * (-1 * (t6.end - t6.start) + 2), 2147483647);
            a2.debug(`Waiting for ${l4} ms before playback can start`), e3.trigger(g2.default.AST_IN_FUTURE, { delay: l4 }), J2 = setTimeout(() => {
              lt2(n5, r5, i5);
            }, l4);
          }(i4, t5, n4, r4);
        X2.get().streaming.applyProducerReferenceTime && G2.calculateProducerReferenceTimeOffsets(t5);
        const l3 = t5[0].manifestInfo;
        if (X2.get().streaming.applyServiceDescription && G2.applyServiceDescription(l3), c3.getIsDynamic()) {
          const t6 = Ft2(0, l3);
          B2.computeAndSetLiveDelay(t6, l3);
        }
        (X2.get().streaming.applyContentSteering && E3.shouldQueryBeforeStart() ? E3.loadSteeringData() : Promise.resolve()).then(() => {
          const t6 = d3.getValue();
          t6 && T3.update(t6), ot2(), n4();
        }).catch((t6) => {
          a2.error(t6), ot2(), n4();
        });
      } catch (t6) {
        r4(t6);
      }
    }
    function ot2() {
      const t5 = function() {
        let t6;
        return t6 = c3.getIsDynamic() ? function() {
          let t7;
          const e4 = p3.getCurrentDVRInfo();
          t7 = (e4 && e4.range ? e4.range.end : 0) - B2.getOriginalLiveDelay();
          const n5 = e4 ? e4.range : null;
          if (n5) {
            if (isNaN(tt2) && -1 === tt2.toString().indexOf("posix:")) {
              const e6 = Pt2(true);
              isNaN(e6) || (a2.info(`Start time from URI parameters: ${e6}`), t7 = Math.min(t7, e6));
            } else {
              a2.info(`Start time provided by the app: ${tt2}`);
              const e6 = zt2(true, tt2);
              isNaN(e6) || (t7 = Math.min(t7, e6));
            }
            const e5 = X2.get().streaming.timeShiftBuffer.calcFromSegmentTimeline ? 0.1 : 0;
            t7 = Math.max(t7, n5.start + e5);
          }
          return t7;
        }() : function() {
          let t7 = te2()[0].getStreamInfo().start;
          if (isNaN(tt2)) {
            const e4 = Pt2(false);
            isNaN(e4) || (a2.info(`Start time from URI parameters: ${e4}`), t7 = Math.max(t7, e4));
          } else {
            a2.info(`Start time provided by the app: ${tt2}`);
            const e4 = zt2(false, tt2);
            isNaN(e4) || (t7 = Math.max(t7, e4));
          }
          return t7;
        }(), t6;
      }();
      let n4 = Et2(t5);
      const r4 = null !== n4 ? n4 : C2[0];
      e3.trigger(g2.default.INITIAL_STREAM_SWITCH, { startTime: t5 }), st2(r4, null, t5), $2 || ($2 = setInterval(function() {
        !L2 && B2.getTimeToStreamEnd() <= 0 && !B2.isSeeking() && e3.trigger(g2.default.PLAYBACK_ENDED, { isLast: Wt2().isLast });
      }, 200));
    }
    function st2(t5, n4, r4) {
      try {
        if (L2 || !t5 || n4 === t5 && t5.getIsActive())
          return;
        L2 = true, e3.trigger(g2.default.PERIOD_SWITCH_STARTED, { fromStreamInfo: n4 ? n4.getStreamInfo() : null, toStreamInfo: t5.getStreamInfo() });
        let i4 = false, l3 = [], o3 = ft2(n4);
        D2 = t5, n4 && (i4 = bt2(t5, n4), l3 = ct2(n4), n4.deactivate(i4)), r4 = isNaN(r4) ? !i4 && n4 ? t5.getStreamInfo().start : NaN : r4, a2.info(`Switch to stream ${t5.getId()}. Seektime is ${r4}, current playback time is ${B2.getTime()}. Seamless period switch is set to ${i4}`), Q2 = Q2.filter((t6) => t6.getId() !== D2.getId()), B2.initialize(Wt2(), !!n4), q2.getElement() ? ut2({ seekTime: r4, keepBuffers: i4, sourceBufferSinksFromPreviousPeriod: o3, streamActivated: false, representationsFromPreviousPeriod: l3 }) : dt2({ seekTime: r4, keepBuffers: i4, sourceBufferSinksFromPreviousPeriod: o3 });
      } catch (t6) {
        L2 = false;
      }
    }
    function ut2(t5) {
      let e4;
      function n4() {
        if (!j2 || "open" !== j2.readyState)
          return;
        a2.debug("MediaSource is open!"), window.URL.revokeObjectURL(e4), j2.removeEventListener("sourceopen", n4), j2.removeEventListener("webkitsourceopen", n4), Mt2();
        const r5 = p3.getCurrentDVRInfo();
        b3.setSeekable(r5.range.start, r5.range.end), t5.streamActivated ? (isNaN(t5.seekTime) || B2.seek(t5.seekTime, true, true), D2.setMediaSource(j2).then(() => {
          D2.initializeForTextWithMediaSource(j2);
        })) : dt2(t5);
      }
      function r4() {
        j2.addEventListener("sourceopen", n4, false), j2.addEventListener("webkitsourceopen", n4, false), e4 = b3.attachMediaSource(q2), a2.debug("MediaSource attached to element.  Waiting on open...");
      }
      j2 ? t5.keepBuffers ? dt2(t5) : (b3.detachMediaSource(q2), r4()) : (j2 = b3.createMediaSource(), r4());
    }
    function dt2(t5) {
      const n4 = t5.representationsFromPreviousPeriod || [];
      D2.activate(j2, t5.sourceBufferSinksFromPreviousPeriod, n4).then(() => {
        isNaN(t5.seekTime) || (e3.trigger(g2.default.SEEK_TARGET, { time: t5.seekTime }, { streamId: D2.getId() }), B2.seek(t5.seekTime, false, true), D2.startScheduleControllers()), L2 = false, e3.trigger(g2.default.PERIOD_SWITCH_COMPLETED, { toStreamInfo: Wt2() });
      });
    }
    function ct2(t5) {
      return (t5 ? t5.getStreamProcessors() : []).map((t6) => t6.getRepresentation());
    }
    function ft2(t5) {
      const e4 = /* @__PURE__ */ new Map();
      return t5 ? ((t5 ? t5.getStreamProcessors() : []).forEach((t6) => {
        const n4 = t6.getBuffer();
        n4 && e4.set(n4.getType(), n4);
      }), e4) : e4;
    }
    function gt2(t5) {
      const e4 = Et2(t5.seekTime);
      e4 && e4 !== D2 ? e4 && e4 !== D2 && (mt2(e4), function(t6, e5) {
        const n4 = t6 && !isNaN(t6.seekTime) ? t6.seekTime : NaN, a3 = D2.getStreamProcessors().map((e6) => e6.prepareOuterPeriodPlaybackSeeking(t6));
        Promise.all(a3).then(() => {
          st2(e5, D2, n4);
        }).catch((t7) => {
          R2.error(t7);
        });
      }(t5, e4)) : (mt2(), function(t6) {
        D2.getStreamProcessors().forEach((e5) => e5.prepareInnerPeriodPlaybackSeeking(t6)), Gt2(Hr.USER_REQUEST_STOP_REASON);
      }(t5)), Ht2(Gr.SEEK_START_REASON);
    }
    function mt2(t5 = null) {
      ht2();
    }
    function ht2() {
      Q2 && Q2.length > 0 && (Q2.forEach((t5) => {
        t5.deactivate(true);
      }), Q2 = []);
    }
    function pt2(t5) {
      if (t5.newMediaInfo.streamInfo.id === D2.getId()) {
        if (ht2(), X2.get().streaming.buffer.resetSourceBuffersForTrackSwitch && t5.oldMediaInfo && t5.oldMediaInfo.codec !== t5.newMediaInfo.codec) {
          const t6 = B2.getTime();
          return D2.deactivate(false), void ut2({ seekTime: t6, keepBuffers: false, streamActivated: false });
        }
        D2.prepareTrackChange(t5);
      }
    }
    function bt2(t5, e4) {
      try {
        return X2.get().streaming.buffer.reuseExistingSourceBuffers && (r3.isProtectionCompatible(e4.getStreamInfo(), t5.getStreamInfo()) || Z2) && r3.supportsChangeType() && X2.get().streaming.buffer.useChangeType;
      } catch (t6) {
        return false;
      }
    }
    function yt2(t5, e4 = null) {
      if (!j2 || t5.getPreloaded())
        return;
      if (!bt2(t5, e4))
        return;
      const n4 = ct2(e4), a3 = ft2(e4);
      t5.startPreloading(j2, a3, n4).then(() => {
        Q2.push(t5);
      });
    }
    function Et2(t5) {
      if (isNaN(t5))
        return null;
      const e4 = C2.length;
      for (let n4 = 0; n4 < e4; n4++) {
        const e5 = C2[n4];
        if (t5 < parseFloat((e5.getStartTime() + e5.getDuration()).toFixed(5)))
          return e5;
      }
      return null;
    }
    function Tt2() {
      try {
        const t5 = c3.getIsDynamic(), e4 = c3.getStreamsInfo()[0].manifestInfo, n4 = B2.getTime(), a3 = N2.calcTimeShiftBufferWindow(C2, t5), r4 = Dt2();
        if (void 0 === a3.start || void 0 === a3.end)
          return;
        r4 && 0 !== r4.length ? r4.forEach((t6) => {
          p3.addDVRInfo(t6.getType(), n4, e4, a3);
        }) : p3.addDVRInfo(m2.default.VIDEO, n4, e4, a3);
      } catch (t5) {
      }
    }
    function _t2(t5) {
      if (K2 && z2) {
        const t6 = H2.getInitialBufferLevel(), e4 = [m2.default.TEXT];
        (isNaN(t6) || t6 <= B2.getBufferLevel(e4) || c3.getIsDynamic() && t6 > B2.getLiveDelay()) && (K2 = false, Ht2(Gr.INITIAL_PLAYOUT_START_REASON), B2.play());
      }
      t5 && t5.mediaType && p3.addBufferLevel(t5.mediaType, /* @__PURE__ */ new Date(), 1e3 * t5.bufferLevel);
    }
    function vt2(t5) {
      t5.streamInfo.id === D2.getId() && ht2(), $t2(t5.streamInfo.id).prepareQualityChange(t5);
    }
    function St2() {
      if (c3.getIsDynamic() && 0 !== B2.getOriginalLiveDelay() && D2) {
        const t5 = c3.getStreamsInfo();
        if (t5.length > 0) {
          const e4 = t5[0].manifestInfo, n4 = Ft2(0, e4);
          B2.computeAndSetLiveDelay(n4, e4);
        }
      }
    }
    function wt2() {
      if (qt2()) {
        const t5 = q2.getPlaybackQuality();
        t5 && p3.addDroppedFrames(t5);
      }
    }
    function It2() {
      a2.debug("[onPlaybackStarted]"), !K2 && V2 && Ht2(Gr.RESUME_FROM_PAUSE_START_REASON), K2 && (K2 = false), W2 && (W2 = false, X2.get().streaming.applyContentSteering && !E3.shouldQueryBeforeStart() && E3.loadSteeringData()), V2 = false;
    }
    function kt2(t5) {
      a2.debug("[onPlaybackPaused]"), t5.ended || (V2 = true, Gt2(Hr.USER_REQUEST_STOP_REASON));
    }
    function At2(t5) {
      a2.debug(`Stream with id ${t5.streamInfo.id} finished buffering`);
      const e4 = t5.streamInfo.isLast;
      j2 && e4 ? (a2.info("[onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController."), b3.signalEndOfStream(j2)) : Nt2();
    }
    function Nt2() {
      if (!D2)
        return;
      if (!D2.getHasFinishedBuffering())
        return void D2.checkAndHandleCompletedBuffering();
      const t5 = function(t6 = null) {
        try {
          const e5 = t6 || D2 || null;
          if (e5) {
            const t7 = e5.getStreamInfo();
            return C2.filter(function(e6) {
              const n4 = e6.getStreamInfo();
              return n4.start > t7.start && t7.id !== n4.id;
            });
          }
        } catch (t7) {
          return [];
        }
      }(D2);
      let e4 = 0;
      for (; e4 < t5.length; ) {
        const n4 = t5[e4], a3 = 0 === e4 ? D2 : t5[e4 - 1];
        !n4.getPreloaded() && a3.getHasFinishedBuffering() && yt2(n4, a3), e4 += 1;
      }
    }
    function Ct2() {
      $2 && (clearInterval($2), $2 = null);
    }
    function Dt2() {
      return D2 ? D2.getStreamProcessors() : [];
    }
    function xt2(t5) {
      if (D2 && !D2.getIsEndedEventSignaled()) {
        D2.setIsEndedEventSignaled(true);
        const t6 = function(t7 = null) {
          const e4 = t7 || D2 || null;
          if (!e4)
            return null;
          const n4 = e4.getStreamInfo(), a3 = n4.start;
          let r4 = 0, i4 = -1, l3 = NaN;
          for (; r4 < C2.length; ) {
            const t8 = C2[r4].getStreamInfo(), e5 = t8.start - a3;
            e5 > 0 && (isNaN(l3) || e5 < l3) && n4.id !== t8.id && (l3 = e5, i4 = r4), r4 += 1;
          }
          return i4 >= 0 ? C2[i4] : null;
        }();
        t6 ? (a2.debug(`StreamController onEnded, found next stream with id ${t6.getStreamInfo().id}. Switching from ${D2.getStreamInfo().id} to ${t6.getStreamInfo().id}`), st2(t6, D2, NaN)) : (a2.debug("StreamController no next stream found"), D2.setIsEndedEventSignaled(false)), Gt2(t6 ? Hr.END_OF_PERIOD_STOP_REASON : Hr.END_OF_CONTENT_STOP_REASON);
      }
      t5 && t5.isLast && (Ct2(), E3.stopSteeringRequestTimer());
    }
    function Mt2(t5) {
      const e4 = t5 || Wt2().manifestInfo.duration;
      b3.setDuration(e4);
    }
    function Pt2(t5) {
      const e4 = v3.getURIFragmentData();
      if (!e4 || !e4.t)
        return NaN;
      const n4 = te2()[0].getStreamInfo().start;
      return e4.t = e4.t.split(",")[0], Lt2(t5, e4.t, n4);
    }
    function zt2(t5, e4) {
      let n4 = 0;
      return t5 || (n4 = te2()[0].getStreamInfo().start), Lt2(t5, e4, n4);
    }
    function Lt2(t5, e4, n4) {
      const a3 = c3.getRegularPeriods()[0], r4 = e4.toString(), i4 = -1 !== r4.indexOf("posix:") ? "now" === r4.substring(6) ? Date.now() / 1e3 : parseFloat(r4.substring(6)) : NaN;
      return t5 && !isNaN(i4) ? N2.calcPresentationTimeFromWallTime(new Date(1e3 * i4), a3) : parseFloat(r4) + n4;
    }
    function Ft2(t5, e4) {
      try {
        let t6 = NaN;
        return e4 && !isNaN(e4.maxFragmentDuration) && isFinite(e4.maxFragmentDuration) ? e4.maxFragmentDuration : isFinite(t6) ? t6 : NaN;
      } catch (t6) {
        return NaN;
      }
    }
    function Ut2() {
      const t5 = d3.getValue();
      T3.initialize(t5);
    }
    function jt2(t5) {
      if (t5.error)
        U2 = true, Zt2();
      else {
        a2.info("Manifest updated... updating data system wide.");
        const n4 = t5.manifest;
        c3.updatePeriods(n4), i3.filterUnsupportedFeatures(n4).then(() => {
          T3.initialize(n4);
          let t6 = c3.getUTCTimingSources();
          !c3.getIsDynamic() || t6 && 0 !== t6.length || e3.trigger(h2.default.CONFORMANCE_VIOLATION, { level: mo.LEVELS.WARNING, event: mo.EVENTS.NO_UTC_TIMING_ELEMENT });
          let a3 = c3.getIsDynamic() ? t6.concat(Y2.getUTCTimingSources()) : t6;
          y3.attemptSync(a3, c3.getIsDynamic()), O2.createFinalQueryStrings(n4);
        });
      }
    }
    function qt2() {
      return !!D2 && D2.getHasVideoTrack();
    }
    function Bt2() {
      return !!D2 && D2.getHasAudioTrack();
    }
    function Gt2(t5, e4) {
      e4 = e4 || /* @__PURE__ */ new Date(), Dt2().forEach((n4) => {
        n4.finalisePlayList(e4, t5);
      }), p3.addPlayList();
    }
    function Ht2(t5) {
      p3.createPlaylistMetrics(1e3 * B2.getTime(), t5);
    }
    function Yt2(t5) {
      x2.updateKeyStatusesMap(t5), function() {
        const t6 = Dt2();
        let a3 = false;
        t6.forEach((t7) => {
          const e4 = t7.getMediaInfo();
          !e4 || r3.areKeyIdsUsable(e4) ? e4 && r3.areKeyIdsExpired(e4) && function(t8) {
            const e5 = $t2(t8.getStreamId());
            e5 && e5.triggerProtectionError({ error: new Ot.default(po.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE, po.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE) });
          }(t7) : (a3 = true, function(t8) {
            const e5 = t8.getAllMediaInfos().filter((t9) => r3.areKeyIdsUsable(t9));
            if (e5 && 0 !== e5.length)
              I3.setTrack(e5[0], { replaceBuffer: true });
            else {
              const e6 = t8.getType();
              R2.error(new Ot.default(Rt.NO_SUPPORTED_KEY_IDS, `Type: ${e6}: ${Rt.NO_SUPPORTED_KEY_IDS_MESSAGE}`));
            }
          }(t7));
        }), a3 && (0 === B2.getTime() ? e3.once(h2.default.FRAGMENT_LOADING_COMPLETED, () => {
          Vt2();
        }, n3) : B2.isProgressing(500).then((t7) => {
          t7 || Vt2();
        }));
      }();
    }
    function Vt2() {
      const t5 = B2.getTime();
      B2.seek(t5 + 0.01, false, false);
    }
    function Kt2(t5) {
      if (!t5.error)
        return;
      let e4;
      switch (t5.error.code) {
        case 1:
          e4 = "MEDIA_ERR_ABORTED";
          break;
        case 2:
          e4 = "MEDIA_ERR_NETWORK";
          break;
        case 3:
          e4 = "MEDIA_ERR_DECODE", et2.counts.mediaErrorDecode += 1;
          break;
        case 4:
          e4 = "MEDIA_ERR_SRC_NOT_SUPPORTED";
          break;
        case 5:
          e4 = "MEDIA_ERR_ENCRYPTED";
          break;
        default:
          e4 = "UNKNOWN";
      }
      "MEDIA_ERR_DECODE" === e4 && X2.get().errors.recoverAttempts.mediaErrorDecode >= et2.counts.mediaErrorDecode ? function() {
        a2.error("A MEDIA_ERR_DECODE occured: Resetting the MediaSource");
        const t6 = B2.getTime();
        D2.deactivate(false), a2.info(`MediaSource has been resetted. Resuming playback from time ${t6}`), ut2({ seekTime: t6, keepBuffers: false, streamActivated: false });
      }() : (F2 = true, t5.error.message && (e4 += " (" + t5.error.message + ")"), t5.error.msExtendedCode && (e4 += " (0x" + (t5.error.msExtendedCode >>> 0).toString(16).toUpperCase() + ")"), a2.fatal("Video Element Error: " + e4), t5.error && a2.fatal(t5.error), R2.error(new Ot.default(t5.error.code, e4)), Zt2());
    }
    function Wt2() {
      return D2 ? D2.getStreamInfo() : null;
    }
    function $t2(t5) {
      for (let e4 = 0, n4 = C2.length; e4 < n4; e4++)
        if (C2[e4].getId() === t5)
          return C2[e4];
      return null;
    }
    function Qt2(t5) {
      isNaN(t5.newDuration) || Mt2(t5.newDuration);
    }
    function Xt2() {
      C2 = [], tt2 = NaN, x2 = null, L2 = false, D2 = null, F2 = false, U2 = false, K2 = true, W2 = true, V2 = false, z2 = true, $2 = null, Z2 = false, Q2 = [], J2 = null, et2 = { counts: { mediaErrorDecode: 0 } };
    }
    function Zt2() {
      nt2(), y3.reset(), Gt2(F2 || U2 ? Hr.FAILURE_STOP_REASON : Hr.USER_REQUEST_STOP_REASON);
      for (let t5 = 0, e4 = C2 ? C2.length : 0; t5 < e4; t5++)
        C2[t5].reset(F2);
      e3.off(h2.default.PLAYBACK_TIME_UPDATED, wt2, n3), e3.off(h2.default.PLAYBACK_SEEKING, gt2, n3), e3.off(h2.default.PLAYBACK_ERROR, Kt2, n3), e3.off(h2.default.PLAYBACK_STARTED, It2, n3), e3.off(h2.default.PLAYBACK_PAUSED, kt2, n3), e3.off(h2.default.PLAYBACK_ENDED, xt2, n3), e3.off(h2.default.METRIC_ADDED, Jt2, n3), e3.off(h2.default.MANIFEST_VALIDITY_CHANGED, Qt2, n3), e3.off(h2.default.BUFFER_LEVEL_UPDATED, _t2, n3), e3.off(h2.default.QUALITY_CHANGE_REQUESTED, vt2, n3), e3.off(h2.default.CONTENT_STEERING_REQUEST_COMPLETED, Ut2, n3), g2.default.KEY_SESSION_UPDATED && e3.off(g2.default.KEY_SESSION_UPDATED, rt2, n3), e3.off(g2.default.MANIFEST_UPDATED, jt2, n3), e3.off(g2.default.STREAM_BUFFERING_COMPLETED, At2, n3), e3.off(g2.default.TIME_SYNCHRONIZATION_COMPLETED, at2, n3), e3.off(g2.default.CURRENT_TRACK_CHANGED, pt2, n3), e3.off(g2.default.SETTING_UPDATED_LIVE_DELAY, St2, n3), e3.off(g2.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, St2, n3), e3.off(ho.default.INTERNAL_KEY_STATUSES_CHANGED, Yt2, n3), T3.reset(), s2.reset(), k3.reset(), p3.clearAllCurrentMetrics(), d3.setValue(null), u3.reset(), N2.reset(), A2.reset(), j2 && (b3.detachMediaSource(q2), j2 = null), q2 = null, x2 && (x2 = null, P2 = null, d3.getValue() && e3.trigger(g2.default.PROTECTION_DESTROYED, { data: d3.getValue().url })), Ct2(), e3.trigger(g2.default.STREAM_TEARDOWN_COMPLETE), Xt2();
    }
    function Jt2(t5) {
      if (t5.metric === l2.DVR_INFO) {
        const e4 = Bt2() ? m2.default.AUDIO : m2.default.VIDEO;
        t5.mediaType === e4 && b3.setSeekable(t5.value.range.start, t5.value.range.end);
      }
    }
    function te2() {
      return C2;
    }
    return n3 = { addDVRMetric: Tt2, getActiveStream: function() {
      return D2;
    }, getActiveStreamInfo: Wt2, getActiveStreamProcessors: Dt2, getAutoPlay: function() {
      return z2;
    }, getHasMediaOrInitialisationError: function() {
      return F2 || U2;
    }, getInitialPlayback: function() {
      return K2;
    }, getIsStreamSwitchInProgress: function() {
      return L2;
    }, getStreamById: $t2, getStreamForTime: Et2, getStreams: te2, getTimeRelativeToStreamId: function(t5, e4) {
      let n4 = null, a3 = 0, r4 = 0, i4 = null;
      for (let l3 = 0; l3 < C2.length; l3++) {
        if (n4 = C2[l3], r4 = n4.getStartTime(), i4 = n4.getDuration(), Number.isFinite(r4) && (a3 = r4), n4.getId() === e4)
          return t5 - a3;
        Number.isFinite(i4) && (a3 += i4);
      }
      return null;
    }, hasAudioTrack: Bt2, hasVideoTrack: qt2, initialize: function(a3, r4) {
      nt2(), z2 = a3, P2 = r4, N2.initialize(), s2 = Ni(t4).create(), s2.setConfig({ manifestModel: d3, adapter: c3, manifestLoader: u3, errHandler: R2, settings: X2, contentSteeringController: E3 }), s2.initialize(), k3 = go(t4).getInstance(), k3.setConfig({ manifestUpdater: s2, playbackController: B2, settings: X2 }), k3.start(), O2 = Jn(t4).getInstance(), y3.setConfig({ dashMetrics: p3, baseURLController: T3, errHandler: R2, settings: X2 }), y3.initialize(), b3.setConfig({ settings: X2 }), x2 && (e3.trigger(g2.default.PROTECTION_CREATED, { controller: x2 }), x2.setMediaElement(q2.getElement()), P2 && x2.setProtectionData(P2)), e3.on(h2.default.PLAYBACK_TIME_UPDATED, wt2, n3), e3.on(h2.default.PLAYBACK_SEEKING, gt2, n3), e3.on(h2.default.PLAYBACK_ERROR, Kt2, n3), e3.on(h2.default.PLAYBACK_STARTED, It2, n3), e3.on(h2.default.PLAYBACK_PAUSED, kt2, n3), e3.on(h2.default.PLAYBACK_ENDED, xt2, n3), e3.on(h2.default.METRIC_ADDED, Jt2, n3), e3.on(h2.default.MANIFEST_VALIDITY_CHANGED, Qt2, n3), e3.on(h2.default.BUFFER_LEVEL_UPDATED, _t2, n3), e3.on(h2.default.QUALITY_CHANGE_REQUESTED, vt2, n3), e3.on(h2.default.CONTENT_STEERING_REQUEST_COMPLETED, Ut2, n3), g2.default.KEY_SESSION_UPDATED && e3.on(g2.default.KEY_SESSION_UPDATED, rt2, n3), e3.on(g2.default.MANIFEST_UPDATED, jt2, n3), e3.on(g2.default.STREAM_BUFFERING_COMPLETED, At2, n3), e3.on(g2.default.TIME_SYNCHRONIZATION_COMPLETED, at2, n3), e3.on(g2.default.CURRENT_TRACK_CHANGED, pt2, n3), e3.on(g2.default.SETTING_UPDATED_LIVE_DELAY, St2, n3), e3.on(g2.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, St2, n3), e3.on(ho.default.INTERNAL_KEY_STATUSES_CHANGED, Yt2, n3);
    }, load: function(t5, e4 = NaN) {
      nt2(), tt2 = e4, u3.load(t5);
    }, loadWithManifest: function(t5, e4 = NaN) {
      !function() {
        if (!s2 || !s2.hasOwnProperty("setManifest"))
          throw new Error("initialize function has to be called previously");
      }(), tt2 = e4, s2.setManifest(t5);
    }, refreshManifest: function() {
      s2.getIsUpdating() || s2.refreshManifest();
    }, reset: Zt2, setConfig: function(t5) {
      t5 && (t5.capabilities && (r3 = t5.capabilities), t5.capabilitiesFilter && (i3 = t5.capabilitiesFilter), t5.manifestLoader && (u3 = t5.manifestLoader), t5.manifestModel && (d3 = t5.manifestModel), t5.mediaPlayerModel && (H2 = t5.mediaPlayerModel), t5.customParametersModel && (Y2 = t5.customParametersModel), t5.protectionController && (x2 = t5.protectionController), t5.adapter && (c3 = t5.adapter), t5.dashMetrics && (p3 = t5.dashMetrics), t5.errHandler && (R2 = t5.errHandler), t5.timelineConverter && (N2 = t5.timelineConverter), t5.videoModel && (q2 = t5.videoModel), t5.playbackController && (B2 = t5.playbackController), t5.throughputController && (w3 = t5.throughputController), t5.serviceDescriptionController && (G2 = t5.serviceDescriptionController), t5.contentSteeringController && (E3 = t5.contentSteeringController), t5.textController && (M2 = t5.textController), t5.abrController && (S3 = t5.abrController), t5.mediaController && (I3 = t5.mediaController), t5.settings && (X2 = t5.settings), t5.baseURLController && (T3 = t5.baseURLController), t5.uriFragmentModel && (v3 = t5.uriFragmentModel), t5.segmentBaseController && (_3 = t5.segmentBaseController), t5.manifestUpdater && (s2 = t5.manifestUpdater));
    }, setProtectionData: function(t5) {
      P2 = t5, x2 && x2.setProtectionData(P2);
    }, switchToVideoElement: function(t5) {
      D2 && (B2.initialize(Wt2()), ut2({ seekTime: t5, keepBuffers: false, streamActivated: true }));
    } }, a2 = (0, o2.default)(t4).getInstance().getLogger(n3), y3 = so(t4).getInstance(), b3 = co(t4).getInstance(), A2 = gl(t4).getInstance(), Xt2(), n3;
  }
  bo.__dashjs_factory_name = "StreamController";
  var yo = r2.default.getSingletonFactory(bo), Eo = class extends Ga {
    constructor() {
      super(), this.captionData = null, this.label = null, this.defaultTrack = false, this.kind = null, this.isFragmented = false, this.isEmbedded = false, this.isTTML = null;
    }
  }, To = n2(7377);
  function _o() {
    let t4, e3 = 0;
    function n3(t5) {
      let e4 = "";
      for (let n4 = 0; n4 < t5.length; ++n4)
        e4 += t5[n4].uchar;
      return e4.length - e4.replace(/^\s+/, "").length;
    }
    function a2(t5) {
      return "left: " + 3.125 * t5.x + "%; top: " + 6.66 * t5.y1 + "%; width: " + (100 - 3.125 * t5.x) + "%; height: " + 6.66 * Math.max(t5.y2 - 1 - t5.y1, 1) + "%; align-items: flex-start; overflow: visible; -webkit-writing-mode: horizontal-tb;";
    }
    function r3(t5) {
      return "red" === t5 ? "rgb(255, 0, 0)" : "green" === t5 ? "rgb(0, 255, 0)" : "blue" === t5 ? "rgb(0, 0, 255)" : "cyan" === t5 ? "rgb(0, 255, 255)" : "magenta" === t5 ? "rgb(255, 0, 255)" : "yellow" === t5 ? "rgb(255, 255, 0)" : "white" === t5 ? "rgb(255, 255, 255)" : "black" === t5 ? "rgb(0, 0, 0)" : t5;
    }
    function i3(t5, e4) {
      const n4 = t5.videoHeight / 15;
      return e4 ? "font-size: " + n4 + "px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; color: " + (e4.foreground ? r3(e4.foreground) : "rgb(255, 255, 255)") + "; font-style: " + (e4.italics ? "italic" : "normal") + "; text-decoration: " + (e4.underline ? "underline" : "none") + "; white-space: pre; background-color: " + (e4.background ? r3(e4.background) : "transparent") + ";" : "font-size: " + n4 + "px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; justify-content: flex-start; text-align: left; color: rgb(255, 255, 255); font-style: normal; white-space: pre; line-height: normal; font-weight: normal; text-decoration: none; width: 100%; display: flex;";
    }
    function l3(t5) {
      return t5.replace(/^\s+/g, "");
    }
    function o3(t5) {
      return t5.replace(/\s+$/g, "");
    }
    return t4 = { createHTMLCaptionsFromScreen: function(t5, r4, s2, u3) {
      let d3 = null, c3 = null, f3 = false, g3 = -1, m3 = { start: r4, end: s2, spans: [] }, h3 = "style_cea608_white_black";
      const p3 = {}, b3 = {}, y3 = [];
      let E3, T3;
      for (E3 = 0; E3 < 15; ++E3) {
        const t6 = u3.rows[E3];
        let e4 = "", a3 = null;
        if (false === t6.isEmpty()) {
          const i4 = n3(t6.chars);
          null === d3 && (d3 = { x: i4, y1: E3, y2: E3 + 1, p: [] }), i4 !== g3 && f3 && (d3.p.push(m3), m3 = { start: r4, end: s2, spans: [] }, d3.y2 = E3, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = { x: i4, y1: E3, y2: E3 + 1, p: [] });
          for (let n4 = 0; n4 < t6.chars.length; ++n4) {
            const r5 = t6.chars[n4], i5 = r5.penState;
            if (null === a3 || !i5.equals(a3)) {
              e4.trim().length > 0 && (m3.spans.push({ name: h3, line: e4, row: E3 }), e4 = "");
              let t7 = "style_cea608_" + i5.foreground + "_" + i5.background;
              i5.underline && (t7 += "_underline"), i5.italics && (t7 += "_italics"), b3.hasOwnProperty(t7) || (b3[t7] = JSON.parse(JSON.stringify(i5))), a3 = i5, h3 = t7;
            }
            e4 += r5.uchar;
          }
          e4.trim().length > 0 && m3.spans.push({ name: h3, line: e4, row: E3 }), f3 = true, g3 = i4;
        } else
          f3 = false, g3 = -1, d3 && (d3.p.push(m3), m3 = { start: r4, end: s2, spans: [] }, d3.y2 = E3, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = null);
      }
      d3 && (d3.p.push(m3), d3.y2 = E3 + 1, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = null);
      const _3 = [];
      for (E3 = 0; E3 < y3.length; ++E3) {
        const n4 = y3[E3], u4 = "sub_cea608_" + e3++, d4 = document.createElement("div");
        d4.id = u4;
        const c4 = a2(n4);
        d4.style.cssText = "position: absolute; margin: 0; display: flex; box-sizing: border-box; pointer-events: none;" + c4;
        const f4 = document.createElement("div");
        f4.className = "paragraph bodyStyle", f4.style.cssText = i3(t5);
        const g4 = document.createElement("div");
        g4.className = "cueUniWrapper", g4.style.cssText = "unicode-bidi: normal; direction: ltr;";
        for (let e4 = 0; e4 < n4.p.length; ++e4) {
          const a3 = n4.p[e4];
          let r5 = 0;
          for (T3 = 0; T3 < a3.spans.length; ++T3) {
            let e5 = a3.spans[T3];
            if (e5.line.length > 0) {
              if (0 !== T3 && r5 != e5.row) {
                const t6 = document.createElement("br");
                t6.className = "lineBreak", g4.appendChild(t6);
              }
              let n5 = false;
              r5 === e5.row && (n5 = true), r5 = e5.row;
              const s3 = b3[e5.name], u5 = document.createElement("span");
              u5.className = "spanPadding " + e5.name + " customSpanColor", u5.style.cssText = i3(t5, s3), 0 !== T3 && n5 ? T3 === a3.spans.length - 1 ? u5.textContent = o3(e5.line) : u5.textContent = e5.line : a3.spans.length > 1 && T3 < a3.spans.length - 1 && e5.row === a3.spans[T3 + 1].row ? u5.textContent = l3(e5.line) : u5.textContent = e5.line.trim(), g4.appendChild(u5);
            }
          }
        }
        f4.appendChild(g4), d4.appendChild(f4);
        const m4 = { bodyStyle: ["%", 90] };
        for (const t6 in b3)
          b3.hasOwnProperty(t6) && (m4[t6] = ["%", 90]);
        _3.push({ type: "html", start: r4, end: s2, cueHTMLElement: d4, cueID: u4, cellResolution: [32, 15], isFromCEA608: true, fontSize: m4, lineHeight: {}, linePadding: {} });
      }
      return _3;
    } }, t4;
  }
  _o.__dashjs_factory_name = "EmbeddedTextHtmlRender";
  var vo = r2.default.getSingletonFactory(_o);
  var So = class {
    constructor() {
      this.time = null, this.verboseLevel = 0;
    }
    log(t4, e3) {
      if (this.verboseLevel >= t4) {
        const n3 = "function" == typeof e3 ? e3() : e3;
        console.log(`${this.time} [${t4}] ${n3}`);
      }
    }
  }, wo = class {
    constructor() {
      this.foreground = "white", this.underline = false, this.italics = false, this.background = "black", this.flash = false;
    }
    reset() {
      this.foreground = "white", this.underline = false, this.italics = false, this.background = "black", this.flash = false;
    }
    setStyles(t4) {
      for (const e3 of ["foreground", "underline", "italics", "background", "flash"])
        Object.prototype.hasOwnProperty.call(t4, e3) && (this[e3] = t4[e3]);
    }
    isDefault() {
      return "white" === this.foreground && !this.underline && !this.italics && "black" === this.background && !this.flash;
    }
    equals(t4) {
      return this.foreground === t4.foreground && this.underline === t4.underline && this.italics === t4.italics && this.background === t4.background && this.flash === t4.flash;
    }
    copy(t4) {
      this.foreground = t4.foreground, this.underline = t4.underline, this.italics = t4.italics, this.background = t4.background, this.flash = t4.flash;
    }
  }, Io = class {
    constructor() {
      this.uchar = " ", this.penState = new wo();
    }
    reset() {
      this.uchar = " ", this.penState.reset();
    }
    setChar(t4, e3) {
      this.uchar = t4, this.penState.copy(e3);
    }
    setPenState(t4) {
      this.penState.copy(t4);
    }
    equals(t4) {
      return this.uchar === t4.uchar && this.penState.equals(t4.penState);
    }
    copy(t4) {
      this.uchar = t4.uchar, this.penState.copy(t4.penState);
    }
    isEmpty() {
      return " " === this.uchar && this.penState.isDefault();
    }
  };
  const ko = 100, Ao = { 42: 225, 92: 233, 94: 237, 95: 243, 96: 250, 123: 231, 124: 247, 125: 209, 126: 241, 127: 9608, 128: 174, 129: 176, 130: 189, 131: 191, 132: 8482, 133: 162, 134: 163, 135: 9834, 136: 224, 137: 32, 138: 232, 139: 226, 140: 234, 141: 238, 142: 244, 143: 251, 144: 193, 145: 201, 146: 211, 147: 218, 148: 220, 149: 252, 150: 8216, 151: 161, 152: 42, 153: 8217, 154: 9473, 155: 169, 156: 8480, 157: 8226, 158: 8220, 159: 8221, 160: 192, 161: 194, 162: 199, 163: 200, 164: 202, 165: 203, 166: 235, 167: 206, 168: 207, 169: 239, 170: 212, 171: 217, 172: 249, 173: 219, 174: 171, 175: 187, 176: 195, 177: 227, 178: 205, 179: 204, 180: 236, 181: 210, 182: 242, 183: 213, 184: 245, 185: 123, 186: 125, 187: 92, 188: 94, 189: 95, 190: 124, 191: 8764, 192: 196, 193: 228, 194: 214, 195: 246, 196: 223, 197: 165, 198: 164, 199: 9475, 200: 197, 201: 229, 202: 216, 203: 248, 204: 9487, 205: 9491, 206: 9495, 207: 9499 };
  function Ro(t4) {
    return String.fromCharCode(Ao[t4] || t4);
  }
  var No = class {
    constructor(t4 = new So()) {
      this.chars = [], this.cueStartTime = null, this.pos = 0, this.currPenState = new wo();
      for (let t5 = 0; t5 < ko; t5++)
        this.chars.push(new Io());
      this.logger = t4;
    }
    equals(t4) {
      for (let e3 = 0; e3 < ko; e3++)
        if (!this.chars[e3].equals(t4.chars[e3]))
          return false;
      return true;
    }
    copy(t4) {
      for (let e3 = 0; e3 < ko; e3++)
        this.chars[e3].copy(t4.chars[e3]);
    }
    isEmpty() {
      let t4 = true;
      for (let e3 = 0; e3 < ko; e3++)
        if (!this.chars[e3].isEmpty()) {
          t4 = false;
          break;
        }
      return t4;
    }
    setCursor(t4) {
      this.pos !== t4 && (this.pos = t4), this.pos < 0 ? (this.logger.log(3, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > ko && (this.logger.log(3, "Too large cursor position " + this.pos), this.pos = ko);
    }
    moveCursor(t4) {
      const e3 = this.pos + t4;
      if (t4 > 1)
        for (let t5 = this.pos + 1; t5 < e3 + 1; t5++)
          this.chars[t5].setPenState(this.currPenState);
      this.setCursor(e3);
    }
    backSpace() {
      this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState);
    }
    insertChar(t4) {
      t4 >= 144 && this.backSpace();
      const e3 = Ro(t4);
      this.pos >= ko ? this.logger.log(0, () => "Cannot insert " + t4.toString(16) + " (" + e3 + ") at position " + this.pos + ". Skipping it!") : (this.chars[this.pos].setChar(e3, this.currPenState), this.moveCursor(1));
    }
    clearFromPos(t4) {
      let e3;
      for (e3 = t4; e3 < ko; e3++)
        this.chars[e3].reset();
    }
    clear() {
      this.clearFromPos(0), this.pos = 0, this.currPenState.reset();
    }
    clearToEndOfRow() {
      this.clearFromPos(this.pos);
    }
    getTextString() {
      const t4 = [];
      let e3 = true;
      for (let n3 = 0; n3 < ko; n3++) {
        const a2 = this.chars[n3].uchar;
        " " !== a2 && (e3 = false), t4.push(a2);
      }
      return e3 ? "" : t4.join("");
    }
    setPenStyles(t4) {
      this.currPenState.setStyles(t4), this.chars[this.pos].setPenState(this.currPenState);
    }
  };
  const Co = 15;
  var Do = class {
    constructor(t4 = new So()) {
      this.rows = [], this.currRow = 14, this.nrRollUpRows = null, this.lastOutputScreen = null;
      for (let e3 = 0; e3 < Co; e3++)
        this.rows.push(new No(t4));
      this.logger = t4;
    }
    reset() {
      for (let t4 = 0; t4 < Co; t4++)
        this.rows[t4].clear();
      this.currRow = 14;
    }
    equals(t4) {
      let e3 = true;
      for (let n3 = 0; n3 < Co; n3++)
        if (!this.rows[n3].equals(t4.rows[n3])) {
          e3 = false;
          break;
        }
      return e3;
    }
    copy(t4) {
      for (let e3 = 0; e3 < Co; e3++)
        this.rows[e3].copy(t4.rows[e3]);
    }
    isEmpty() {
      let t4 = true;
      for (let e3 = 0; e3 < Co; e3++)
        if (!this.rows[e3].isEmpty()) {
          t4 = false;
          break;
        }
      return t4;
    }
    backSpace() {
      this.rows[this.currRow].backSpace();
    }
    clearToEndOfRow() {
      this.rows[this.currRow].clearToEndOfRow();
    }
    insertChar(t4) {
      this.rows[this.currRow].insertChar(t4);
    }
    setPen(t4) {
      this.rows[this.currRow].setPenStyles(t4);
    }
    moveCursor(t4) {
      this.rows[this.currRow].moveCursor(t4);
    }
    setCursor(t4) {
      this.logger.log(2, "setCursor: " + t4), this.rows[this.currRow].setCursor(t4);
    }
    setPAC(t4) {
      this.logger.log(2, () => "pacData = " + JSON.stringify(t4));
      let e3 = t4.row - 1;
      if (this.nrRollUpRows && e3 < this.nrRollUpRows - 1 && (e3 = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== e3) {
        for (let t6 = 0; t6 < Co; t6++)
          this.rows[t6].clear();
        const t5 = this.currRow + 1 - this.nrRollUpRows, n4 = this.lastOutputScreen;
        if (n4) {
          const a3 = n4.rows[t5].cueStartTime, r3 = this.logger.time;
          if (null !== a3 && null !== r3 && a3 < r3)
            for (let a4 = 0; a4 < this.nrRollUpRows; a4++)
              this.rows[e3 - this.nrRollUpRows + a4 + 1].copy(n4.rows[t5 + a4]);
        }
      }
      this.currRow = e3;
      const n3 = this.rows[this.currRow];
      if (null !== t4.indent) {
        const e4 = t4.indent, a3 = Math.max(e4 - 1, 0);
        n3.setCursor(t4.indent), t4.color = n3.chars[a3].penState.foreground;
      }
      const a2 = { foreground: t4.color, underline: t4.underline, italics: t4.italics, background: "black", flash: false };
      this.setPen(a2);
    }
    setBkgData(t4) {
      this.logger.log(2, () => "bkgData = " + JSON.stringify(t4)), this.backSpace(), this.setPen(t4), this.insertChar(32);
    }
    setRollUpRows(t4) {
      this.nrRollUpRows = t4;
    }
    rollUp() {
      if (null === this.nrRollUpRows)
        return void this.logger.log(3, "roll_up but nrRollUpRows not set yet");
      this.logger.log(1, () => this.getDisplayText());
      const t4 = this.currRow + 1 - this.nrRollUpRows, e3 = this.rows.splice(t4, 1)[0];
      e3.clear(), this.rows.splice(this.currRow, 0, e3), this.logger.log(2, "Rolling up");
    }
    getDisplayText(t4) {
      t4 = t4 || false;
      const e3 = [];
      let n3 = "", a2 = -1;
      for (let n4 = 0; n4 < Co; n4++) {
        const r3 = this.rows[n4].getTextString();
        r3 && (a2 = n4 + 1, t4 ? e3.push("Row " + a2 + ": '" + r3 + "'") : e3.push(r3.trim()));
      }
      return e3.length > 0 && (n3 = t4 ? "[" + e3.join(" | ") + "]" : e3.join("\n")), n3;
    }
    getTextAndFormat() {
      return this.rows;
    }
  }, xo = class {
    constructor(t4, e3, n3 = new So()) {
      this.chNr = t4, this.outputFilter = e3, this.mode = null, this.displayedMemory = new Do(n3), this.nonDisplayedMemory = new Do(n3), this.lastOutputScreen = new Do(n3), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = n3, this.logger.log(2, "new Cea608Channel(" + this.chNr + ")");
    }
    reset() {
      var _a2, _b;
      this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), (_b = (_a2 = this.outputFilter) == null ? void 0 : _a2.reset) == null ? void 0 : _b.call(_a2), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null;
    }
    getHandler() {
      return this.outputFilter;
    }
    setHandler(t4) {
      this.outputFilter = t4;
    }
    setPAC(t4) {
      this.writeScreen.setPAC(t4);
    }
    setBkgData(t4) {
      this.writeScreen.setBkgData(t4);
    }
    setMode(t4) {
      t4 !== this.mode && (this.mode = t4, this.logger.log(2, () => "MODE=" + t4), "MODE_POP-ON" === this.mode ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), "MODE_ROLL-UP" !== this.mode && (this.displayedMemory.setRollUpRows(null), this.nonDisplayedMemory.setRollUpRows(null)), this.mode = t4);
    }
    insertChars(t4) {
      for (const e4 of t4)
        this.writeScreen.insertChar(e4);
      const e3 = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP";
      this.logger.log(2, () => e3 + ": " + this.writeScreen.getDisplayText(true)), "MODE_PAINT-ON" !== this.mode && "MODE_ROLL-UP" !== this.mode || (this.logger.log(1, () => "DISPLAYED: " + this.displayedMemory.getDisplayText(true)), this.outputDataUpdate());
    }
    ccRCL() {
      this.logger.log(2, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON");
    }
    ccBS() {
      this.logger.log(2, "BS - BackSpace"), "MODE_TEXT" !== this.mode && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate());
    }
    ccAOF() {
    }
    ccAON() {
    }
    ccDER() {
      this.logger.log(2, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate();
    }
    ccRU(t4) {
      this.logger.log(2, "RU(" + t4 + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(t4);
    }
    ccFON() {
      this.logger.log(2, "FON - Flash On"), this.writeScreen.setPen({ flash: true });
    }
    ccRDC() {
      this.logger.log(2, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON");
    }
    ccTR() {
      this.logger.log(2, "TR"), this.setMode("MODE_TEXT");
    }
    ccRTD() {
      this.logger.log(2, "RTD"), this.setMode("MODE_TEXT");
    }
    ccEDM() {
      this.logger.log(2, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(true);
    }
    ccCR() {
      this.logger.log(2, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(true);
    }
    ccENM() {
      this.logger.log(2, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset();
    }
    ccEOC() {
      if (this.logger.log(2, "EOC - End Of Caption"), "MODE_POP-ON" === this.mode) {
        const t4 = this.displayedMemory;
        this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = t4, this.writeScreen = this.nonDisplayedMemory, this.logger.log(1, () => "DISP: " + this.displayedMemory.getDisplayText());
      }
      this.outputDataUpdate(true);
    }
    ccTO(t4) {
      this.logger.log(2, "TO(" + t4 + ") - Tab Offset"), this.writeScreen.moveCursor(t4);
    }
    ccMIDROW(t4) {
      const e3 = { flash: false };
      e3.underline = t4 % 2 == 1, e3.italics = t4 >= 46, e3.italics ? e3.foreground = "white" : e3.foreground = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"][Math.floor(t4 / 2) - 16], this.logger.log(2, "MIDROW: " + JSON.stringify(e3)), this.writeScreen.setPen(e3);
    }
    outputDataUpdate(t4 = false) {
      const e3 = this.logger.time;
      null !== e3 && this.outputFilter && (null !== this.cueStartTime || this.displayedMemory.isEmpty() ? this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, e3, this.lastOutputScreen), t4 && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : e3) : this.cueStartTime = e3, this.lastOutputScreen.copy(this.displayedMemory));
    }
    cueSplitAtTime(t4) {
      this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, t4, this.displayedMemory), this.cueStartTime = t4));
    }
  };
  const Mo = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"];
  function Po(t4, e3, n3) {
    return n3.a === t4 && n3.b === e3;
  }
  function Oo(t4) {
    const e3 = [];
    for (const n3 of t4)
      e3.push(n3.toString(16));
    return e3;
  }
  const zo = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 }, Lo = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 }, Fo = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 }, Uo = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 };
  function jo(t4, e3, n3) {
    n3.a = t4, n3.b = e3;
  }
  var qo = class {
    constructor(t4, e3, n3) {
      this.currentChannel = 0, this.cmdHistory = { a: null, b: null }, this.lastTime = null;
      const a2 = this.logger = new So();
      this.channels = [null, new xo(t4, e3, a2), new xo(t4 + 1, n3, a2)];
    }
    addData(t4, e3) {
      this.lastTime = t4, this.logger.time = t4;
      for (let n3 = 0; n3 < e3.length; n3 += 2) {
        const a2 = 127 & e3[n3], r3 = 127 & e3[n3 + 1];
        let i3 = false, l3 = null;
        if (null !== this.lastTime && (t4 = this.lastTime + 0.5 * n3 * 1001 / 3e4, this.logger.time = t4), 0 === a2 && 0 === r3)
          continue;
        this.logger.log(3, () => "[" + Oo([e3[n3], e3[n3 + 1]]) + "] -> (" + Oo([a2, r3]) + ")");
        const o3 = this.cmdHistory;
        if (a2 >= 16 && a2 <= 31) {
          if (Po(a2, r3, o3)) {
            jo(null, null, o3), this.logger.log(3, () => "Repeated command (" + Oo([a2, r3]) + ") is dropped");
            continue;
          }
          jo(a2, r3, this.cmdHistory), i3 = this.parseCmd(a2, r3), i3 || (i3 = this.parseMidrow(a2, r3)), i3 || (i3 = this.parsePAC(a2, r3)), i3 || (i3 = this.parseBackgroundAttributes(a2, r3));
        } else
          jo(null, null, o3);
        if (!i3 && (l3 = this.parseChars(a2, r3), l3.length)) {
          const t5 = this.currentChannel;
          t5 && t5 > 0 ? this.channels[t5].insertChars(l3) : this.logger.log(2, "No channel found yet. TEXT-MODE?");
        }
        i3 || l3 || this.logger.log(2, () => "Couldn't parse cleaned data " + Oo([a2, r3]) + " orig: " + Oo([e3[n3], e3[n3 + 1]]));
      }
    }
    parseCmd(t4, e3) {
      if (!((20 === t4 || 28 === t4 || 21 === t4 || 29 === t4) && e3 >= 32 && e3 <= 47 || (23 === t4 || 31 === t4) && e3 >= 33 && e3 <= 35))
        return false;
      const n3 = 20 === t4 || 21 === t4 || 23 === t4 ? 1 : 2, a2 = this.channels[n3];
      return 20 === t4 || 21 === t4 || 28 === t4 || 29 === t4 ? 32 === e3 ? a2.ccRCL() : 33 === e3 ? a2.ccBS() : 34 === e3 ? a2.ccAOF() : 35 === e3 ? a2.ccAON() : 36 === e3 ? a2.ccDER() : 37 === e3 ? a2.ccRU(2) : 38 === e3 ? a2.ccRU(3) : 39 === e3 ? a2.ccRU(4) : 40 === e3 ? a2.ccFON() : 41 === e3 ? a2.ccRDC() : 42 === e3 ? a2.ccTR() : 43 === e3 ? a2.ccRTD() : 44 === e3 ? a2.ccEDM() : 45 === e3 ? a2.ccCR() : 46 === e3 ? a2.ccENM() : 47 === e3 && a2.ccEOC() : a2.ccTO(e3 - 32), this.currentChannel = n3, true;
    }
    parseMidrow(t4, e3) {
      let n3 = 0;
      if ((17 === t4 || 25 === t4) && e3 >= 32 && e3 <= 47) {
        if (n3 = 17 === t4 ? 1 : 2, n3 !== this.currentChannel)
          return this.logger.log(0, "Mismatch channel in midrow parsing"), false;
        const a2 = this.channels[n3];
        return !!a2 && (a2.ccMIDROW(e3), this.logger.log(3, () => "MIDROW (" + Oo([t4, e3]) + ")"), true);
      }
      return false;
    }
    parsePAC(t4, e3) {
      let n3;
      if (!((t4 >= 17 && t4 <= 23 || t4 >= 25 && t4 <= 31) && e3 >= 64 && e3 <= 127 || (16 === t4 || 24 === t4) && e3 >= 64 && e3 <= 95))
        return false;
      const a2 = t4 <= 23 ? 1 : 2;
      n3 = e3 >= 64 && e3 <= 95 ? 1 === a2 ? Fo[t4] : Uo[t4] : 1 === a2 ? zo[t4] : Lo[t4];
      const r3 = this.channels[a2];
      return !!r3 && (r3.setPAC(this.interpretPAC(n3, e3)), this.currentChannel = a2, true);
    }
    interpretPAC(t4, e3) {
      let n3;
      const a2 = { color: null, italics: false, indent: null, underline: false, row: t4 };
      return n3 = e3 > 95 ? e3 - 96 : e3 - 64, a2.underline = !(1 & ~n3), n3 <= 13 ? a2.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(n3 / 2)] : n3 <= 15 ? (a2.italics = true, a2.color = "white") : a2.indent = 4 * Math.floor((n3 - 16) / 2), a2;
    }
    parseChars(t4, e3) {
      let n3, a2 = [], r3 = null;
      if (t4 >= 25 ? (n3 = 2, r3 = t4 - 8) : (n3 = 1, r3 = t4), r3 >= 17 && r3 <= 19) {
        let t5;
        t5 = 17 === r3 ? e3 + 80 : 18 === r3 ? e3 + 112 : e3 + 144, this.logger.log(2, () => "Special char '" + Ro(t5) + "' in channel " + n3), a2 = [t5];
      } else
        t4 >= 32 && t4 <= 127 && (a2 = 0 === e3 ? [t4] : [t4, e3]);
      return a2 && this.logger.log(3, () => "Char codes =  " + Oo(a2).join(",")), a2;
    }
    parseBackgroundAttributes(t4, e3) {
      if (!((16 === t4 || 24 === t4) && e3 >= 32 && e3 <= 47 || (23 === t4 || 31 === t4) && e3 >= 45 && e3 <= 47))
        return false;
      let n3;
      const a2 = {};
      16 === t4 || 24 === t4 ? (n3 = Math.floor((e3 - 32) / 2), a2.background = Mo[n3], e3 % 2 == 1 && (a2.background = a2.background + "_semi")) : 45 === e3 ? a2.background = "transparent" : (a2.foreground = "black", 47 === e3 && (a2.underline = true));
      const r3 = t4 <= 23 ? 1 : 2;
      return this.channels[r3].setBkgData(a2), true;
    }
    reset() {
      for (let t4 = 0; t4 < Object.keys(this.channels).length; t4++) {
        const e3 = this.channels[t4];
        e3 && e3.reset();
      }
      jo(null, null, this.cmdHistory);
    }
    cueSplitAtTime(t4) {
      for (const e3 of this.channels)
        e3 && e3.cueSplitAtTime(t4);
    }
  };
  function Bo(t4, e3, n3) {
    const a2 = [];
    for (let r3 = e3; r3 < n3; r3++)
      r3 + 2 < n3 && 0 === t4.getUint8(r3) && 0 === t4.getUint8(r3 + 1) && 3 === t4.getUint8(r3 + 2) ? (a2.push(0), a2.push(0), r3 += 2) : a2.push(t4.getUint8(r3));
    return new DataView(new Uint8Array(a2).buffer);
  }
  function Go(t4, e3, n3, a2) {
    return !(4 !== t4 || e3 < 8) && 181 === n3.getUint8(a2) && 49 === n3.getUint16(a2 + 1) && 1195456820 === n3.getUint32(a2 + 3) && 3 === n3.getUint8(a2 + 7);
  }
  function Ho(t4, e3) {
    return (127 & t4) > 0 || (127 & e3) > 0;
  }
  function Yo(t4, e3) {
    let n3 = 0;
    for (; n3 < t4.byteLength; ) {
      let r3, i3 = 0, l3 = 0;
      do {
        i3 += r3 = t4.getUint8(n3++);
      } while (255 === r3);
      do {
        l3 += r3 = t4.getUint8(n3++);
      } while (255 === r3);
      if (Go(i3, l3, t4, n3)) {
        const r4 = n3 + 10, i4 = r4 + 3 * (31 & t4.getUint8(r4 - 2));
        for (let n4 = r4; n4 < i4; n4 += 3) {
          const r5 = t4.getUint8(n4);
          if (4 & r5) {
            const i5 = 3 & r5;
            if (0 === (a2 = i5) || 1 === a2) {
              const a3 = t4.getUint8(n4 + 1), r6 = t4.getUint8(n4 + 2);
              Ho(a3, r6) && e3[i5].push(a3, r6);
            }
          }
        }
      }
      n3 += l3;
    }
    var a2;
  }
  function Vo(t4, e3, n3) {
    let a2 = 0, r3 = 0;
    const i3 = [[], []];
    for (let l3 = e3; l3 < e3 + n3 - 5 && (a2 = t4.getUint32(l3), r3 = 31 & t4.getUint8(l3 + 4), !(l3 + 5 + a2 > e3 + n3)); l3++)
      6 === r3 && l3 + 5 + a2 <= t4.byteLength && Yo(Bo(t4, l3 + 5, l3 + 5 + a2), i3), l3 += a2 + 3;
    return i3;
  }
  function Ko(t4) {
    const e3 = t4.errHandler, n3 = t4.manifestModel, a2 = t4.mediaController, r3 = t4.videoModel, i3 = t4.textTracks, l3 = t4.vttParser, s2 = t4.vttCustomRenderingParser, u3 = t4.ttmlParser, d3 = t4.streamInfo, c3 = t4.settings, h3 = this.context, p3 = (0, f2.default)(h3).getInstance();
    let b3, y3, E3, T3, _3, v3, S3, I3, k3, A2, R2, N2, C2, D2, x2, M2, P2, O2 = false;
    function z2() {
      v3 = null, I3 = NaN, k3 = [], A2 = null, S3 = false, _3 = [], T3 = null;
    }
    function L2(t5) {
      const e4 = {};
      e4[Vt.default.SUBTITLE] = "subtitles", e4[Vt.default.CAPTION] = "captions", e4[Vt.default.FORCED_SUBTITLE] = "subtitles";
      const n4 = new Eo();
      for (let e5 in t5)
        n4[e5] = t5[e5];
      n4.defaultTrack = function(t6) {
        let e5 = false;
        return N2.length > 1 && t6.isEmbedded ? e5 = t6.id && t6.id === m2.default.CC1 : 1 === N2.length ? t6.id && "string" == typeof t6.id && "CC" === t6.id.substring(0, 2) && (e5 = true) : 0 === N2.length && (e5 = t6.index === _3[0].index), e5;
      }(t5), n4.isTTML = function(t6) {
        return t6.codec && t6.codec.search(m2.default.STPP) >= 0 || t6.mimeType && t6.mimeType.search(m2.default.TTML) >= 0;
      }(t5), n4.kind = function(t6, e5) {
        let n5 = t6.roles && t6.roles.length > 0 ? e5[t6.roles[0].value] : e5.caption;
        return n5 = Object.values(e5).includes(n5) ? n5 : e5.caption, n5;
      }(t5, e4), i3.addTextTrackInfo(n4);
    }
    function F2(t5) {
      const e4 = t5.chunk;
      e4.representation.mediaInfo.embeddedCaptions && j2(e4.bytes, e4);
    }
    function U2(t5) {
      R2 = t5;
    }
    function j2(t5, a3) {
      const r4 = a3.representation.mediaInfo, o3 = r4.type, s3 = r4.mimeType, u4 = r4.codec || s3;
      u4 ? -1 !== r4.codec.indexOf("application/mp4") ? function(t6, e4, a4) {
        let r5, o4;
        if ("InitializationSegment" === e4.segmentType)
          S3 = true, I3 = E3.getMediaTimescaleFromMoov(t6);
        else {
          if (!S3)
            return;
          o4 = E3.getSamplesInfo(t6), r5 = o4.sampleList, r5.length > 0 && (A2 = r5[0].cts - e4.start * I3), a4.search(m2.default.STPP) >= 0 ? function(t7, e5, a5) {
            let r6, l4;
            for (T3 = null !== T3 ? T3 : G2(a5), r6 = 0; r6 < e5.length; r6++) {
              const a6 = e5[r6], o5 = a6.cts, s4 = B2(), u5 = s4 + o5 / I3, d4 = u5 + a6.duration / I3;
              b3.buffered.add(u5, d4);
              const c4 = new DataView(t7, a6.offset, a6.subSizes[0]);
              let f3 = va.Utils.dataViewToString(c4, m2.default.UTF8);
              const g3 = [];
              let h4 = a6.offset + a6.subSizes[0];
              for (l4 = 1; l4 < a6.subSizes.length; l4++) {
                const e6 = new Uint8Array(t7, h4, a6.subSizes[l4]), n4 = String.fromCharCode.apply(null, e6);
                g3.push(n4), h4 += a6.subSizes[l4];
              }
              try {
                const t8 = n3.getValue().ttmlTimeIsRelative ? o5 / I3 : 0, e6 = T3.parse(f3, t8, o5 / I3, (o5 + a6.duration) / I3, g3);
                i3.addCaptions(R2, s4, e6);
              } catch (t8) {
                v3.removeExecutedRequestsBeforeTime(), H2(), y3.error("TTML parser error: " + t8);
              }
            }
          }(t6, r5, a4) : function(t7, e5) {
            let n4, a5, r6;
            const o5 = [];
            for (n4 = 0; n4 < e5.length; n4++) {
              const i4 = e5[n4];
              i4.cts -= A2;
              const s4 = B2() + i4.cts / I3, u5 = s4 + i4.duration / I3;
              b3.buffered.add(s4, u5);
              const d4 = t7.slice(i4.offset, i4.offset + i4.size), c4 = va.parseBuffer(d4);
              for (a5 = 0; a5 < c4.boxes.length; a5++) {
                const t8 = c4.boxes[a5];
                if (y3.debug("VTT box1: " + t8.type), "vtte" !== t8.type && "vttc" === t8.type) {
                  y3.debug("VTT vttc boxes.length = " + t8.boxes.length);
                  let e6 = { styles: {} };
                  for (r6 = 0; r6 < t8.boxes.length; r6++) {
                    const n5 = t8.boxes[r6];
                    if (y3.debug("VTT box2: " + n5.type), "payl" === n5.type)
                      e6.start = i4.cts / I3, e6.end = (i4.cts + i4.duration) / I3, e6.data = n5.cue_text;
                    else if ("sttg" === n5.type && n5.settings && "" !== n5.settings)
                      try {
                        const t9 = n5.settings.split(" ");
                        e6.styles = l3.getCaptionStyles(t9);
                      } catch (t9) {
                      }
                  }
                  e6 && e6.data && (o5.push(e6), y3.debug(`VTT  ${e6.start} - ${e6.end} :  ${e6.data}`));
                }
              }
            }
            o5.length > 0 && i3.addCaptions(R2, 0, o5);
          }(t6, r5);
        }
      }(t5, a3, u4) : o3 === m2.default.VIDEO ? function(t6, e4) {
        let n4, a4;
        if (e4.segmentType === w2.HTTPRequest.INIT_SEGMENT_TYPE)
          0 === C2 && (C2 = E3.getMediaTimescaleFromMoov(t6));
        else if (e4.segmentType === w2.HTTPRequest.MEDIA_SEGMENT_TYPE) {
          if (0 === C2)
            return void y3.warn("CEA-608: No timescale for embeddedTextTrack yet");
          a4 = E3.getSamplesInfo(t6);
          const r5 = a4.lastSequenceNumber, l4 = Math.trunc(e4.start), o4 = Math.trunc(e4.end);
          if (M2[0] || M2[1] || function() {
            let t7;
            for (let e5 = 0; e5 < N2.length; e5++) {
              if (t7 = i3.getTrackIdxForId(N2[e5].id), -1 === t7)
                return void y3.warn("CEA-608: data before track is ready.");
              const n5 = q2(t7);
              M2[e5] = new qo(e5 + 1, { newCue: n5 }, null);
            }
          }(), C2) {
            if (function(t7, e6, n5, a5, r6) {
              return null !== t7 && null !== e6 && null !== a5 && null !== r6 && (e6 === t7 ? a5 !== r6 : e6 !== t7 + n5);
            }(D2, r5, a4.numSequences, x2, l4))
              for (n4 = 0; n4 < M2.length; n4++)
                M2[n4] && M2[n4].reset();
            const e5 = function(t7, e6) {
              if (0 === e6.length)
                return null;
              const n5 = { splits: [], fields: [[], []] }, a5 = new DataView(t7);
              for (let t8 = 0; t8 < e6.length; t8++) {
                const r6 = e6[t8], i4 = Vo(a5, r6.offset, r6.size);
                let l5 = null, o5 = 0;
                for (let t9 = 0; t9 < 2; t9++)
                  if (i4[t9].length > 0) {
                    r6.cts !== l5 ? o5 = 0 : o5 += 1;
                    const e7 = B2();
                    n5.fields[t9].push([r6.cts + e7 * C2, i4[t9], o5]), l5 = r6.cts;
                  }
              }
              return n5.fields.forEach(function(t8) {
                t8.sort(function(t9, e7) {
                  return t9[0] === e7[0] ? t9[2] - e7[2] : t9[0] - e7[0];
                });
              }), n5;
            }(t6, a4.sampleList);
            for (let t7 = 0; t7 < M2.length; t7++) {
              const a5 = e5.fields[t7], r6 = M2[t7];
              if (r6)
                for (n4 = 0; n4 < a5.length; n4++)
                  r6.addData(a5[n4][0] / C2, a5[n4][1]);
            }
            D2 = r5, x2 = o4;
          }
        }
      }(t5, a3) : function(t6, n4, a4) {
        let r5, l4;
        const o4 = new DataView(t6, 0, t6.byteLength);
        l4 = va.Utils.dataViewToString(o4, m2.default.UTF8);
        try {
          r5 = G2(a4).parse(l4, 0), i3.addCaptions(i3.getCurrentTrackIdx(), 0, r5), b3.buffered && b3.buffered.add(n4.start, n4.end);
        } catch (t7) {
          e3.error(new Ot.default(Rt.TIMED_TEXT_ERROR_ID_PARSE_CODE, Rt.TIMED_TEXT_ERROR_MESSAGE_PARSE + t7.message, l4));
        }
      }(t5, a3, u4) : y3.error("No text type defined");
    }
    function q2(t5) {
      return function(e4, n4, a3) {
        let l4;
        l4 = r3.getTTMLRenderingDiv() ? P2.createHTMLCaptionsFromScreen(r3.getElement(), e4, n4, a3) : [{ start: e4, end: n4, data: a3.getDisplayText(), styles: {} }], l4 && i3.addCaptions(t5, 0, l4);
      };
    }
    function B2() {
      return isNaN(b3.timestampOffset) ? 0 : b3.timestampOffset;
    }
    function G2(t5) {
      let e4;
      return t5.search(m2.default.VTT) >= 0 ? e4 = c3.get().streaming.text.webvtt.customRenderingEnabled && s2 ? s2 : l3 : (t5.search(m2.default.TTML) >= 0 || t5.search(m2.default.STPP) >= 0) && (e4 = u3), e4;
    }
    function H2(t5, e4) {
      void 0 === t5 && t5 === e4 && (t5 = b3.buffered.start(0), e4 = b3.buffered.end(b3.buffered.length - 1)), b3.buffered.remove(t5, e4), i3.deleteCuesFromTrackIdx(R2, t5, e4);
    }
    function Y2(t5) {
      N2.forEach(function(e4) {
        const n4 = i3.getTrackIdxForId(e4.id);
        n4 >= 0 && i3.deleteCuesFromTrackIdx(n4, t5.from, t5.to);
      });
    }
    return b3 = { initialize: function() {
      O2 || (N2 = [], R2 = null, C2 = 0, M2 = [], D2 = null, x2 = null, O2 = true, P2 = vo(h3).getInstance(), p3.on(g2.default.VIDEO_CHUNK_RECEIVED, F2, b3), p3.on(g2.default.BUFFER_CLEARED, Y2, b3));
    }, addMediaInfos: function(t5, e4, n4) {
      if (_3 = _3.concat(e4), t5 === m2.default.TEXT && e4[0].isFragmented && !e4[0].isEmbedded) {
        v3 = n4, b3.buffered = (0, To.default)(h3).create(), k3 = a2.getTracksFor(m2.default.TEXT, d3.id).filter((t7) => t7.isFragmented);
        const t6 = a2.getCurrentTrackFor(m2.default.TEXT, d3.id);
        for (let e5 = 0; e5 < k3.length; e5++)
          if (k3[e5] === t6) {
            U2(e5);
            break;
          }
      }
      for (let t6 = 0; t6 < e4.length; t6++)
        L2(e4[t6]);
    }, resetMediaInfos: function() {
      _3 = [];
    }, getStreamId: function() {
      return d3.id;
    }, append: j2, abort: function() {
    }, addEmbeddedTrack: function(t5) {
      if (O2 && t5)
        if (t5.id === m2.default.CC1 || t5.id === m2.default.CC3) {
          for (let e4 = 0; e4 < N2.length; e4++)
            if (N2[e4].id === t5.id)
              return;
          N2.push(t5);
        } else
          y3.warn("Embedded track " + t5.id + " not supported!");
    }, resetEmbedded: function() {
      p3.off(g2.default.VIDEO_CHUNK_RECEIVED, F2, b3), p3.off(g2.default.BUFFER_CLEARED, Y2, b3), i3 && i3.deleteAllTextTracks(), O2 = false, N2 = [], M2 = [null, null], D2 = null, x2 = null;
    }, getConfig: function() {
      return { fragmentModel: v3, fragmentedTracks: k3, videoModel: r3 };
    }, setCurrentFragmentedTrackIdx: U2, remove: H2, reset: function() {
      z2(), _3 = [], E3 = null;
    } }, y3 = (0, o2.default)(h3).getInstance().getLogger(b3), E3 = Ia(h3).getInstance(), z2(), b3;
  }
  Ko.__dashjs_factory_name = "TextSourceBuffer";
  var Wo = r2.default.getClassFactory(Ko);
  class $o {
    constructor() {
      this.root = null, this.size = 0;
    }
    addCue(t4) {
      const e3 = { start: t4.startTime, end: t4.endTime, cue: t4, maxEnd: t4.endTime, left: null, right: null, height: 1 }, [n3, a2] = this._insert(e3, this.root);
      this.root = n3, a2 && this.size++;
    }
    removeCue(t4) {
      const [e3, n3] = this._remove(t4, this.root);
      return this.root = e3, n3 && this.size--, n3;
    }
    findCuesInRange(t4, e3) {
      const n3 = [];
      return this._searchRange(this.root, t4, e3, n3), n3;
    }
    findCuesAtTime(t4) {
      return this.findCuesInRange(t4, t4);
    }
    getAllCues() {
      const t4 = [];
      return this._inorderTraversal(this.root, t4), t4;
    }
    getSize() {
      return this.size;
    }
    clear() {
      this.root = null, this.size = 0;
    }
    _compareCues(t4, e3) {
      return t4.startTime !== e3.startTime ? t4.startTime - e3.startTime : t4.endTime !== e3.endTime ? t4.endTime - e3.endTime : "undefined" != typeof VTTCue && t4 instanceof VTTCue && e3 instanceof VTTCue || t4.text && e3.text ? t4.text.localeCompare(e3.text) : 0;
    }
    _compareIntervals(t4, e3) {
      return this._compareCues(t4.cue, e3.cue);
    }
    _insert(t4, e3) {
      if (!e3)
        return [t4, true];
      const n3 = this._compareIntervals(t4, e3);
      if (n3 < 0) {
        const [n4] = this._insert(t4, e3.left);
        e3.left = n4;
      } else {
        if (!(n3 > 0))
          return [e3, false];
        {
          const [n4] = this._insert(t4, e3.right);
          e3.right = n4;
        }
      }
      e3.height = 1 + Math.max(this._getHeight(e3.left), this._getHeight(e3.right)), e3.maxEnd = Math.max(e3.maxEnd, t4.maxEnd);
      const a2 = this._getBalance(e3);
      return a2 > 1 ? (this._compareIntervals(t4, e3.left) < 0 || (e3.left = this._leftRotate(e3.left)), [this._rightRotate(e3), true]) : a2 < -1 ? (this._compareIntervals(t4, e3.right) > 0 || (e3.right = this._rightRotate(e3.right)), [this._leftRotate(e3), true]) : [e3, true];
    }
    _searchRange(t4, e3, n3, a2) {
      t4 && (this._overlaps(t4, e3, n3) && a2.push(t4.cue), t4.left && t4.left.maxEnd >= e3 && this._searchRange(t4.left, e3, n3, a2), t4.right && t4.start <= n3 && this._searchRange(t4.right, e3, n3, a2));
    }
    _inorderTraversal(t4, e3) {
      t4 && (this._inorderTraversal(t4.left, e3), e3.push(t4.cue), this._inorderTraversal(t4.right, e3));
    }
    _overlaps(t4, e3, n3) {
      if (n3 === e3) {
        const n4 = e3;
        return t4.start <= n4 && n4 < t4.end;
      }
      return t4.start < n3 && e3 < t4.end;
    }
    _getHeight(t4) {
      return t4 ? t4.height : 0;
    }
    _getBalance(t4) {
      return t4 ? this._getHeight(t4.left) - this._getHeight(t4.right) : 0;
    }
    _leftRotate(t4) {
      const e3 = t4.right, n3 = e3.left;
      return e3.left = t4, t4.right = n3, t4.height = 1 + Math.max(this._getHeight(t4.left), this._getHeight(t4.right)), e3.height = 1 + Math.max(this._getHeight(e3.left), this._getHeight(e3.right)), t4.maxEnd = Math.max(t4.end, t4.left ? t4.left.maxEnd : 0, t4.right ? t4.right.maxEnd : 0), e3.maxEnd = Math.max(e3.end, e3.left ? e3.left.maxEnd : 0, e3.right ? e3.right.maxEnd : 0), e3;
    }
    _rightRotate(t4) {
      const e3 = t4.left, n3 = e3.right;
      return e3.right = t4, t4.left = n3, t4.height = 1 + Math.max(this._getHeight(t4.left), this._getHeight(t4.right)), e3.height = 1 + Math.max(this._getHeight(e3.left), this._getHeight(e3.right)), t4.maxEnd = Math.max(t4.end, t4.left ? t4.left.maxEnd : 0, t4.right ? t4.right.maxEnd : 0), e3.maxEnd = Math.max(e3.end, e3.left ? e3.left.maxEnd : 0, e3.right ? e3.right.maxEnd : 0), e3;
    }
    _remove(t4, e3) {
      if (!e3)
        return [null, false];
      const n3 = this._compareCues(t4, e3.cue);
      if (n3 < 0) {
        const [n4, a2] = this._remove(t4, e3.left);
        return e3.left = n4, a2 && this._updateNode(e3), [e3, a2];
      }
      if (n3 > 0) {
        const [n4, a2] = this._remove(t4, e3.right);
        return e3.right = n4, a2 && this._updateNode(e3), [e3, a2];
      }
      if (e3.left || e3.right) {
        if (e3.left) {
          if (e3.right) {
            const t5 = this._findMin(e3.right);
            e3.cue = t5.cue, e3.start = t5.start, e3.end = t5.end;
            const [n4] = this._remove(t5.cue, e3.right);
            return e3.right = n4, this._updateNode(e3), [e3, true];
          }
          return [e3.left, true];
        }
        return [e3.right, true];
      }
      return [null, true];
    }
    _findMin(t4) {
      for (; t4.left; )
        t4 = t4.left;
      return t4;
    }
    _updateNode(t4) {
      t4.height = 1 + Math.max(this._getHeight(t4.left), this._getHeight(t4.right)), t4.maxEnd = Math.max(t4.end, t4.left ? t4.left.maxEnd : 0, t4.right ? t4.right.maxEnd : 0);
    }
  }
  var Qo = n2(7640);
  const Xo = ["text", "align", "fontSize", "id", "isd", "line", "lineAlign", "lineHeight", "linePadding", "position", "positionAlign", "region", "size", "snapToLines", "vertical"];
  function Zo(t4) {
    const e3 = this.context, n3 = (0, f2.default)(e3).getInstance(), a2 = t4.videoModel, r3 = t4.streamInfo, i3 = t4.settings;
    let l3, s2, u3, d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, w3, I3, k3, A2, R2, N2, C2;
    const D2 = /* @__PURE__ */ new Map();
    function x2(t5) {
      const e4 = t5.kind, n4 = void 0 !== t5.id ? t5.id : t5.lang, r4 = t5.lang, i4 = t5.isTTML, l4 = t5.isEmbedded;
      return a2.addTextTrack(e4, n4, r4, i4, l4);
    }
    function M2(t5, e4, n4, a3, r4, i4) {
      let l4 = 0, o3 = 0;
      t5 / e4 > n4 / a3 ? (o3 = e4, l4 = o3 / a3 * n4) : (l4 = t5, o3 = l4 / n4 * a3);
      let s3 = 0, u4 = 0, d4 = 0, c4 = 0;
      return l4 / o3 > r4 ? (c4 = o3, d4 = o3 * r4) : (d4 = l4, c4 = l4 / r4), s3 = (t5 - d4) / 2, u4 = (e4 - c4) / 2, i4 ? { x: s3 + 0.1 * d4, y: u4 + 0.1 * c4, w: 0.8 * d4, h: 0.8 * c4 } : { x: s3, y: u4, w: d4, h: c4 };
    }
    function P2(t5, e4) {
      const r4 = a2.getClientWidth(), i4 = a2.getClientHeight(), l4 = a2.getVideoWidth(), o3 = a2.getVideoHeight(), s3 = a2.getVideoRelativeOffsetTop(), u4 = a2.getVideoRelativeOffsetLeft();
      if (0 !== l4 && 0 !== o3) {
        let a3 = l4 / o3, d4 = false;
        t5.isFromCEA608 && (a3 = 3.5 / 3, d4 = true);
        const c4 = M2.call(this, r4, i4, l4, o3, a3, d4), f3 = c4.w, g3 = c4.h, m3 = c4.x, p4 = c4.y;
        if (f3 != E3 || g3 != T3 || m3 != b3 || p4 != y3 || e4) {
          if (b3 = m3 + u4, y3 = p4 + s3, E3 = f3, T3 = g3, _3) {
            const t6 = _3.style;
            t6 && (t6.left = b3 + "px", t6.top = y3 + "px", t6.width = E3 + "px", t6.height = T3 + "px", t6.zIndex = w3 && document[w3] || I3 ? A2 : null, n3.trigger(h2.default.CAPTION_CONTAINER_RESIZE));
          }
          const e5 = t5.activeCues;
          if (e5) {
            const t6 = e5.length;
            for (let n4 = 0; n4 < t6; ++n4) {
              const t7 = e5[n4];
              t7.scaleCue(t7);
            }
          }
        }
      }
    }
    function O2(t5) {
      const e4 = E3, n4 = T3;
      let a3, r4, i4, l4, o3;
      if (t5.cellResolution) {
        const s3 = [e4 / t5.cellResolution[0], n4 / t5.cellResolution[1]];
        if (t5.linePadding) {
          for (a3 in t5.linePadding)
            if (t5.linePadding.hasOwnProperty(a3)) {
              r4 = (t5.linePadding[a3] * s3[0]).toString();
              const e5 = document.getElementsByClassName("spanPadding");
              for (let t6 = 0; t6 < e5.length; t6++)
                e5[t6].style.cssText = e5[t6].style.cssText.replace(/(padding-left\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4), e5[t6].style.cssText = e5[t6].style.cssText.replace(/(padding-right\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
            }
        }
        if (t5.fontSize) {
          for (a3 in t5.fontSize)
            if (t5.fontSize.hasOwnProperty(a3)) {
              "%" === t5.fontSize[a3][0] ? i4 = t5.fontSize[a3][1] / 100 : "c" === t5.fontSize[a3][0] && (i4 = t5.fontSize[a3][1]), r4 = (i4 * s3[1]).toString(), o3 = "defaultFontSize" !== a3 ? document.getElementsByClassName(a3) : document.getElementsByClassName("paragraph");
              for (let t6 = 0; t6 < o3.length; t6++)
                o3[t6].style.cssText = o3[t6].style.cssText.replace(/(font-size\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
            }
          if (t5.lineHeight) {
            for (a3 in t5.lineHeight)
              if (t5.lineHeight.hasOwnProperty(a3)) {
                "%" === t5.lineHeight[a3][0] ? l4 = t5.lineHeight[a3][1] / 100 : "c" === t5.fontSize[a3][0] && (l4 = t5.lineHeight[a3][1]), r4 = (l4 * s3[1]).toString(), o3 = document.getElementsByClassName(a3);
                for (let t6 = 0; t6 < o3.length; t6++)
                  o3[t6].style.cssText = o3[t6].style.cssText.replace(/(line-height\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
              }
          }
        }
      }
      if (t5.isd) {
        let e5 = document.getElementById(t5.cueID);
        e5 && _3.removeChild(e5), L2(t5);
      }
    }
    function z2(t5, e4) {
      const n4 = /^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/, a3 = /^#(.*)$/;
      if (n4.test(e4)) {
        const a4 = n4.exec(e4), r4 = parseInt(a4[4], 10) - 1;
        return "data:image/png;base64," + btoa(t5.images[r4]);
      }
      if (a3.test(e4)) {
        const n5 = a3.exec(e4)[1];
        return "data:image/png;base64," + t5.embeddedImages[n5];
      }
      return e4;
    }
    function L2(t5) {
      if (_3) {
        lt2.call(this);
        const e4 = document.createElement("div");
        _3.appendChild(e4), k3 = (0, Qo.renderHTML)(t5.isd, e4, function(e5) {
          return z2(t5, e5);
        }, _3.clientHeight, _3.clientWidth, i3.get().streaming.text.imsc.displayForcedOnlyMode, function(t6) {
          s2.info("renderCaption :", t6);
        }, k3, i3.get().streaming.text.imsc.enableRollUp), e4.id = t5.cueID, n3.trigger(h2.default.CAPTION_RENDERED, { captionDiv: e4, currentTrackIdx: p3 });
      }
    }
    function F2(t5, e4) {
      const n4 = e4.findCuesInRange(t5.startTime - 0.1, t5.endTime + 0.1);
      for (const e5 of n4) {
        if (U2(t5, e5) && j2(t5, e5, Xo))
          return e5;
        if (U2(e5, t5) && j2(t5, e5, Xo))
          return e5;
      }
      return null;
    }
    function U2(t5, e4) {
      return !!e4 && e4.endTime >= t5.startTime;
    }
    function j2(t5, e4, n4) {
      for (let a3 = 0; a3 < n4.length; a3++) {
        const r4 = n4[a3];
        if (JSON.stringify(t5[r4]) !== JSON.stringify(e4[r4]))
          return false;
      }
      return true;
    }
    function q2(t5, e4) {
      e4 && e4.forEach((e5) => {
        e5.kind && "image" === e5.kind && (e5.src = z2(t5, e5.src)), q2(t5, e5.contents);
      });
    }
    function B2(t5, e4, n4) {
      const a3 = Z2(t5), r4 = D2.get(a3), l4 = i3.get().streaming.text.dispatchForManualRendering;
      if (a3 && r4 && Array.isArray(n4) && 0 !== n4.length) {
        for (let t6 = 0; t6 < n4.length; t6++) {
          let d4 = null;
          const c4 = n4[t6];
          if (a3.cellResolution = c4.cellResolution, a3.isFromCEA608 = c4.isFromCEA608, isNaN(c4.start) || isNaN(c4.end) || (l4 ? d4 = G2(c4, e4) : W2(c4) && _3 ? d4 = V2(c4, e4, a3) : c4.data && (d4 = K2(c4, e4, a3))), d4) {
            if (i3.get().streaming.text.extendSegmentedCues) {
              const t7 = F2(d4, r4.allCues);
              t7 && (r4.allCues.removeCue(t7), u4 = d4, (o3 = t7).startTime = Math.min(o3.startTime, u4.startTime), o3.endTime = Math.max(o3.endTime, u4.endTime), d4 = o3);
            }
            r4.allCues.addCue(d4);
          } else
            s2.error("Impossible to display subtitles. You might have missed setting a TTML rendering div via player.attachTTMLRenderingDiv(TTMLRenderingDiv)");
        }
        var o3, u4;
        at2();
      }
    }
    function G2(t5, e4) {
      let n4 = $2(t5, e4);
      return n4.onenter = function() {
        W2(t5) && C2 && C2.cueID !== n4.cueID && Y2(C2), delete n4.type, C2 = n4, H2(n4);
      }, n4.onexit = function() {
        Y2(n4), C2 = null;
      }, n4;
    }
    function H2(t5) {
      n3.trigger(h2.default.CUE_ENTER, t5);
    }
    function Y2(t5) {
      n3.trigger(h2.default.CUE_EXIT, { cueID: t5.cueID });
    }
    function V2(t5, e4, a3) {
      const r4 = this;
      let i4 = $2(t5, e4);
      return _3.style.left = b3 + "px", _3.style.top = y3 + "px", _3.style.width = E3 + "px", _3.style.height = T3 + "px", i4.onenter = function() {
        a3.mode === m2.default.TEXT_SHOWING && (this.isd ? (N2 ? requestAnimationFrame(() => L2(this)) : L2(this), s2.debug("Cue enter id:" + this.cueID)) : (_3.appendChild(this.cueHTMLElement), O2.call(r4, this), n3.trigger(h2.default.CAPTION_RENDERED, { captionDiv: this.cueHTMLElement, currentTrackIdx: p3 })));
      }, i4.onexit = function() {
        if (_3) {
          const t6 = _3.childNodes;
          for (let e5 = 0; e5 < t6.length; ++e5)
            t6[e5].id === this.cueID && (s2.debug("Cue exit id:" + t6[e5].id), _3.removeChild(t6[e5]), --e5);
        }
      }, i4;
    }
    function K2(t5, e4, a3) {
      let r4 = $2(t5, e4);
      if (t5.styles)
        try {
          void 0 !== t5.styles.align && "align" in r4 && (r4.align = t5.styles.align), void 0 !== t5.styles.line && "line" in r4 && (r4.line = t5.styles.line), void 0 !== t5.styles.lineAlign && (r4.lineAlign = t5.styles.lineAlign), void 0 !== t5.styles.snapToLines && "snapToLines" in r4 && (r4.snapToLines = t5.styles.snapToLines), void 0 !== t5.styles.position && "position" in r4 && (r4.position = t5.styles.position), void 0 !== t5.styles.positionAlign && (r4.positionAlign = t5.styles.positionAlign), void 0 !== t5.styles.size && "size" in r4 && (r4.size = t5.styles.size);
        } catch (t6) {
          s2.error(t6);
        }
      return r4.onenter = function() {
        a3.mode === m2.default.TEXT_SHOWING && n3.trigger(h2.default.CAPTION_RENDERED, { currentTrackIdx: p3 });
      }, r4;
    }
    function W2(t5) {
      return "html" === t5.type;
    }
    function $2(t5, e4) {
      return W2(t5) ? function(t6, e5) {
        let n4 = new u3(t6.start + e5, t6.end + e5, "");
        return n4.cueHTMLElement = t6.cueHTMLElement, n4.isd = t6.isd, n4.images = t6.images, n4.embeddedImages = t6.embeddedImages, n4.cueID = t6.cueID, n4.scaleCue = O2.bind(self), n4.cellResolution = t6.cellResolution, n4.lineHeight = t6.lineHeight, n4.linePadding = t6.linePadding, n4.fontSize = t6.fontSize, n4.isd && q2(n4, n4.isd.contents), n4;
      }(t5, e4) : function(t6, e5) {
        let n4 = new u3(t6.start - e5, t6.end - e5, t6.data);
        return n4.cueID = Lt.default.generateUuid(), n4;
      }(t5, e4);
    }
    function Q2(t5) {
      if (v3) {
        const e4 = v3.childNodes;
        for (let n4 = 0; n4 < e4.length; ++n4)
          e4[n4].id === t5.cueID && (v3.removeChild(e4[n4]), --n4);
      }
    }
    function X2() {
      const t5 = a2.getTextTracks(), e4 = [];
      for (const n4 of t5)
        n4.manualMode === m2.default.TEXT_SHOWING && e4.push(n4);
      return e4;
    }
    function Z2(t5) {
      return t5 >= 0 && d3[t5] ? a2.getTextTrack(d3[t5].kind, d3[t5].id, d3[t5].lang, d3[t5].isTTML, d3[t5].isEmbedded) : null;
    }
    function J2(t5) {
      if (t5 === p3)
        return;
      p3 = t5;
      const e4 = Z2(p3);
      tt2.call(this, e4), S3 && (clearInterval(S3), S3 = null), e4 && "html" === e4.renderingType && (P2.call(this, e4, true), window.ResizeObserver ? (R2 = new window.ResizeObserver(() => {
        P2.call(this, e4, true);
      }), R2.observe(a2.getElement())) : S3 = setInterval(P2.bind(this, e4), 500));
    }
    function tt2(t5) {
      lt2.call(this), t5 && "html" === t5.renderingType ? rt2.call(this) : it2.call(this);
    }
    function et2(t5, e4, n4, a3 = true) {
      return !!t5 && (isNaN(e4) || (a3 ? t5.startTime : t5.endTime) >= e4) && (isNaN(n4) || (a3 ? t5.endTime : t5.startTime) <= n4);
    }
    function nt2(t5, e4, n4, a3 = true) {
      if (!t5)
        return;
      if (t5.cues && t5.cues.length > 0)
        for (let r5 = t5.cues.length - 1; r5 >= 0; r5--)
          et2(t5.cues[r5], e4, n4, a3) && (t5.cues[r5].onexit && t5.cues[r5].onexit(), t5.removeCue(t5.cues[r5]));
      const r4 = D2.get(t5);
      if (r4) {
        const t6 = r4.activeCues, a4 = t6.filter((t7) => t7.startTime >= e4 && t7.endTime <= n4);
        a4.forEach((t7) => {
          i3.get().streaming.text.dispatchForManualRendering ? Y2(t7) : Q2(t7);
        }), r4.activeCues = t6.filter((t7) => !a4.includes(t7));
      }
    }
    function at2() {
      for (const t5 of D2.values())
        t5.lastCueWindowUpdate = -1 / 0;
    }
    function rt2() {
      let t5 = document.getElementById("native-cue-style");
      if (t5)
        return;
      t5 = document.createElement("style"), t5.id = "native-cue-style", document.head.appendChild(t5);
      const e4 = t5.sheet, n4 = a2.getElement();
      try {
        n4 && (n4.id ? e4.insertRule("#" + n4.id + "::cue {background: transparent}", 0) : 0 !== n4.classList.length ? e4.insertRule("." + n4.className + "::cue {background: transparent}", 0) : e4.insertRule("video::cue {background: transparent}", 0));
      } catch (t6) {
        s2.info("" + t6.message);
      }
    }
    function it2() {
      const t5 = document.getElementById("native-cue-style");
      t5 && document.head.removeChild(t5);
    }
    function lt2() {
      if (_3)
        for (; _3.firstChild; )
          _3.removeChild(_3.firstChild);
    }
    function ot2() {
      return d3;
    }
    return l3 = { addCaptions: B2, addTextTrackInfo: function(t5) {
      d3.push(t5);
    }, createTracks: function() {
      d3.sort(function(t6, e4) {
        return t6.index - e4.index;
      }), _3 = a2.getTTMLRenderingDiv(), v3 = a2.getVttRenderingDiv();
      let t5 = -1;
      for (let e4 = 0; e4 < d3.length; e4++) {
        const a3 = x2(d3[e4]);
        c3.push(a3), d3[e4].defaultTrack && (a3.default = true, t5 = e4);
        const r4 = Z2(e4);
        r4 && (r4.mode = m2.default.TEXT_SHOWING, _3 && (d3[e4].isTTML || d3[e4].isEmbedded) ? r4.renderingType = "html" : r4.renderingType = "default", D2.set(r4, { allCues: new $o(), lastCueWindowUpdate: -1 / 0, activeCues: [] })), B2(e4, 0, d3[e4].captionData), n3.trigger(h2.default.TEXT_TRACK_ADDED);
      }
      if (J2.call(this, t5), t5 >= 0) {
        let e4 = function() {
          const a3 = Z2(t5);
          a3 && "html" === a3.renderingType && P2.call(this, a3, true), n3.off(h2.default.PLAYBACK_METADATA_LOADED, e4, this);
        };
        n3.on(h2.default.PLAYBACK_METADATA_LOADED, e4, this);
        for (let e5 = 0; e5 < d3.length; e5++) {
          const n4 = Z2(e5);
          if (n4) {
            const a3 = i3.get().streaming.text.dispatchForManualRendering;
            n4.mode = e5 !== t5 || a3 ? m2.default.TEXT_HIDDEN : m2.default.TEXT_SHOWING, n4.manualMode = e5 === t5 ? m2.default.TEXT_SHOWING : m2.default.TEXT_HIDDEN;
          }
        }
      }
      n3.trigger(g2.default.TEXT_TRACKS_QUEUE_INITIALIZED, { index: p3, tracks: d3, streamId: r3.id });
    }, deleteAllTextTracks: function() {
      const t5 = c3 ? c3.length : 0;
      for (let e4 = 0; e4 < t5; e4++) {
        const t6 = Z2(e4);
        t6 && nt2.call(this, t6, r3.start, r3.start + r3.duration, false);
      }
      c3 = [], d3 = [], S3 && (clearInterval(S3), S3 = null), R2 && a2 && (R2.unobserve(a2.getElement()), R2 = null), p3 = -1, lt2.call(this), D2.clear();
    }, deleteCuesFromTrackIdx: function(t5, e4, n4) {
      const a3 = Z2(t5);
      a3 && nt2(a3, e4, n4);
    }, disableManualTracks: function() {
      const t5 = X2();
      if (t5 && t5.length > 0) {
        const e4 = t5[0], n4 = D2.get(e4);
        if (!n4)
          return;
        n4.activeCues.forEach((t6) => {
          i3.get().streaming.text.dispatchForManualRendering ? Y2(t6) : Q2(t6);
        }), n4.activeCues = [];
      }
    }, getCurrentTrackIdx: function() {
      return p3;
    }, getCurrentTextTrackInfo: function() {
      return d3[p3];
    }, getStreamId: function() {
      return r3.id;
    }, getTextTrackInfos: ot2, getTrackIdxForId: function(t5) {
      let e4 = -1;
      for (let n4 = 0; n4 < d3.length; n4++)
        if (d3[n4].id === t5) {
          e4 = n4;
          break;
        }
      return e4;
    }, initialize: function() {
      "undefined" != typeof window && "undefined" != typeof navigator && (u3 = window.VTTCue || window.TextTrackCue, d3 = [], c3 = [], p3 = -1, b3 = 0, y3 = 0, E3 = 0, T3 = 0, _3 = null, v3 = null, S3 = null, I3 = false, A2 = 2147483647, k3 = null, N2 = "requestAnimationFrame" in window, D2.clear(), void 0 !== document.fullscreenElement ? w3 = "fullscreenElement" : void 0 !== document.webkitIsFullScreen ? w3 = "webkitIsFullScreen" : document.msFullscreenElement ? w3 = "msFullscreenElement" : document.mozFullScreen && (w3 = "mozFullScreen"));
    }, manualCueProcessing: function(t5) {
      const e4 = X2();
      if (e4 && e4.length > 0) {
        const n4 = e4[0], a3 = D2.get(n4);
        if (!a3)
          return;
        const r4 = a3.activeCues, l4 = a3.allCues.findCuesAtTime(t5), o3 = r4.filter((t6) => !l4.includes(t6)), s3 = l4.filter((t6) => !r4.includes(t6));
        o3.forEach((t6) => {
          i3.get().streaming.text.dispatchForManualRendering ? Y2(t6) : Q2(t6);
        }), s3.forEach((t6) => {
          i3.get().streaming.text.dispatchForManualRendering ? H2(t6) : WebVTT.processCues(window, [t6], v3, t6.cueID);
        }), a3.activeCues = l4;
      }
    }, setCurrentTrackIdx: J2, setModeForTrackIdx: function(t5, e4) {
      const n4 = Z2(t5);
      n4 && n4.mode !== e4 && (n4.mode = e4), n4 && n4.manualMode !== e4 && (n4.manualMode = e4);
    }, updateTextTrackWindow: function(t5, e4 = false) {
      const n4 = ot2(), r4 = i3.get().streaming.text.webvtt.customRenderingEnabled;
      for (let l4 = 0; l4 < n4.length; l4++) {
        const o3 = n4[l4], s3 = Z2(l4), u4 = D2.get(s3);
        if (!s3 || !u4)
          continue;
        if (!o3.isEmbedded && r4)
          continue;
        const { bufferToKeep: d4, bufferPruningInterval: c4 } = i3.get().streaming.buffer, f3 = Date.now();
        if ((f3 - u4.lastCueWindowUpdate) / 1e3 < c4 && !e4)
          continue;
        const g3 = a2.getPlaybackRate() || 1, h3 = Math.max(0, t5 - d4 / g3), p4 = t5 + 2 * c4 / g3;
        if (s3.cues)
          for (; s3.cues.length > 0; )
            s3.removeCue(s3.cues[0]);
        s3.mode !== m2.default.TEXT_DISABLED && u4.allCues.findCuesInRange(h3, p4).forEach((t6) => {
          s3.addCue(t6);
        }), u4.lastCueWindowUpdate = f3;
      }
    }, invalidateCueWindow: at2 }, s2 = (0, o2.default)(e3).getInstance().getLogger(l3), l3;
  }
  Zo.__dashjs_factory_name = "TextTracks";
  var Jo = r2.default.getClassFactory(Zo);
  function ts() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3;
    function s2(t5) {
      const e4 = t5.split(":"), n4 = e4.length - 1;
      return t5 = 60 * parseInt(e4[n4 - 1], 10) + parseFloat(e4[n4]), 2 === n4 && (t5 += 3600 * parseInt(e4[0], 10)), t5;
    }
    function u3(t5) {
      const e4 = t5.split(r3), n4 = e4[1].split(l3);
      return n4.shift(), e4[1] = n4[0], n4.shift(), { cuePoints: e4, styles: d3(n4) };
    }
    function d3(t5) {
      const e4 = {};
      return t5.forEach(function(t6) {
        const n4 = t6.split(":");
        if (n4.length > 1) {
          const [t7, a3] = n4;
          switch (t7) {
            case "align":
            case "A":
              e4.align = a3;
              break;
            case "line":
            case "L":
              const [t8, n5] = a3.split(","), r4 = t8.endsWith("%");
              e4.line = "auto" === t8 ? t8 : parseInt(t8, 10), r4 && (e4.snapToLines = false), n5 && (e4.lineAlign = n5);
              break;
            case "position":
            case "P":
              const [i4, l4] = a3.split(",");
              e4.position = parseInt(i4, 10), l4 && (e4.positionAlign = l4);
              break;
            case "size":
            case "S":
              e4.size = parseInt(a3, 10);
          }
        }
      }), e4;
    }
    function c3(t5, e4) {
      let n4, a3 = e4, i4 = "", l4 = "";
      for (; "" !== t5[a3] && a3 < t5.length; )
        a3++;
      if (n4 = a3 - e4, n4 > 1)
        for (let a4 = 0; a4 < n4; a4++) {
          if (l4 = t5[e4 + a4], l4.match(r3)) {
            i4 = "";
            break;
          }
          i4 += l4, a4 !== n4 - 1 && (i4 += "\n");
        }
      else
        l4 = t5[e4], l4.match(r3) || (i4 = l4);
      return i4;
    }
    return e3 = { parse: function(t5) {
      const e4 = [];
      let l4, o3;
      if (!t5)
        return e4;
      l4 = (t5 = t5.split(a2)).length, o3 = -1;
      for (let a3 = 0; a3 < l4; a3++) {
        let l5 = t5[a3];
        if (l5.length > 0 && "WEBVTT" !== l5 && l5.match(r3)) {
          const r4 = u3(l5), d4 = r4.cuePoints, f3 = r4.styles, g3 = c3(t5, a3 + 1), m3 = s2(d4[0].replace(i3, "")), h3 = s2(d4[1].replace(i3, ""));
          !isNaN(m3) && !isNaN(h3) && m3 >= o3 && h3 > m3 ? "" !== g3 ? (o3 = m3, e4.push({ start: m3, end: h3, data: g3, styles: f3 })) : n3.error("Skipping cue due to empty/malformed cue text") : n3.error("Skipping cue due to incorrect cue timing");
        }
      }
      return e4;
    }, getCaptionStyles: d3 }, n3 = (0, o2.default)(t4).getInstance().getLogger(e3), a2 = /(?:\r\n|\r|\n)/gm, r3 = /-->/, i3 = /(^[\s]+|[\s]+$)/g, l3 = /\s\b/g, e3;
  }
  ts.__dashjs_factory_name = "VTTParser";
  var es = r2.default.getSingletonFactory(ts);
  function ns() {
    let t4, e3;
    return t4 = { parse: function(t5) {
      let n3 = [];
      return e3.oncue = function(t6) {
        t6.start = t6.startTime, t6.end = t6.endTime, t6.data = t6.text, t6.styles = { align: t6.align, line: t6.line, position: t6.position, size: t6.size }, n3.push(t6);
      }, e3.parse(t5), n3;
    } }, function() {
      try {
        window && window.WebVTT && window.WebVTT.Parser && (e3 = new window.WebVTT.Parser(window, window.vttjs, window.WebVTT.StringDecoder()));
      } catch (t5) {
      }
    }(), t4;
  }
  ns.__dashjs_factory_name = "VttCustomRenderingParser";
  var as = r2.default.getSingletonFactory(ns);
  function rs() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3 = 0;
    function i3() {
      const t5 = "cue_TTML_" + r3;
      return r3++, t5;
    }
    return n3 = { parse: function(t5, n4, r4, l3, o3) {
      let s2 = "";
      const u3 = [];
      let d3, c3, f3;
      const m3 = {}, p3 = {};
      let b3 = "", y3 = "", E3 = { onOpenTag: function(t6, n5, r5) {
        if (r5[" imagetype"] && !r5[" imageType"] && (e3.trigger(h2.default.CONFORMANCE_VIOLATION, { level: mo.LEVELS.ERROR, event: mo.EVENTS.NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE }), r5[" imageType"] = r5[" imagetype"]), "image" === n5 && ("http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt" === t6 || "http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt" === t6)) {
          if (!r5[" imageType"] || "PNG" !== r5[" imageType"].value)
            return void a2.warn("smpte-tt imageType != PNG. Discarded");
          b3 = r5["http://www.w3.org/XML/1998/namespace id"].value;
        }
      }, onCloseTag: function() {
        b3 && (p3[b3] = y3.trim()), y3 = "", b3 = "";
      }, onText: function(t6) {
        b3 && (y3 += t6);
      } };
      if (!t5)
        throw s2 = "no ttml data to parse", new Error(s2);
      m3.data = t5, e3.trigger(g2.default.TTML_TO_PARSE, m3);
      let T3 = (0, Qo.fromXML)(m3.data, function(t6) {
        s2 = t6;
      }, E3);
      e3.trigger(g2.default.TTML_PARSED, { ttmlString: m3.data, ttmlDoc: T3 });
      const _3 = T3.getMediaTimeEvents();
      for (f3 = 0; f3 < _3.length; f3++) {
        let t6 = (0, Qo.generateISD)(T3, _3[f3], function(t7) {
          s2 = t7;
        });
        t6.contents.some((t7) => t7.contents.length) && (d3 = _3[f3] + n4, c3 = _3[f3 + 1] + n4, d3 < c3 && u3.push({ start: d3, end: c3, type: "html", cueID: i3(), isd: t6, images: o3, embeddedImages: p3 }));
      }
      if ("" !== s2)
        throw a2.error(s2), new Error(s2);
      return u3;
    } }, a2 = (0, o2.default)(t4).getInstance().getLogger(n3), n3;
  }
  rs.__dashjs_factory_name = "TTMLParser";
  var is = r2.default.getSingletonFactory(rs);
  function ls(t4) {
    let e3 = this.context;
    const n3 = (0, f2.default)(e3).getInstance(), a2 = ce(e3).getInstance(), r3 = t4.adapter, i3 = t4.baseURLController, l3 = "error", s2 = "loaded", u3 = "unloaded";
    let d3, c3, g3;
    function p3(t5, e4) {
      let n4, l4, o3 = false;
      if (i3.resolve()) {
        const e5 = r3.getVoRepresentations(t5);
        e5 && e5.length > 0 && (n4 = i3.resolve(e5[0].path).url);
      }
      const s3 = t5.essentialProperties.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === m2.default.FONT_DOWNLOAD_DVB_SCHEME), d4 = t5.supplementalProperties.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === m2.default.FONT_DOWNLOAD_DVB_SCHEME);
      s3.length > 0 ? (o3 = true, l4 = s3) : l4 = d4, l4.forEach((r4) => {
        if (function(t6) {
          return !(!(t6.value && 1 === parseInt(t6.value) && t6.dvbUrl && t6.dvbUrl.length > 0 && t6.dvbFontFamily && t6.dvbFontFamily.length > 0 && t6.dvbMimeType) || t6.dvbMimeType !== m2.default.OFF_MIMETYPE && t6.dvbMimeType !== m2.default.WOFF_MIMETYPE);
        }(r4)) {
          let s4 = (i4 = r4.dvbUrl, l5 = n4, a2.isPathAbsolute(i4) ? i4 : a2.isRelative(i4) ? l5 ? a2.resolve(i4, l5) : a2.resolve(i4) : i4);
          g3.push({ fontFamily: r4.dvbFontFamily, url: s4, mimeType: r4.dvbMimeType, trackId: t5.id, streamId: e4, isEssential: o3, status: u3, fontFace: new FontFace(r4.dvbFontFamily, `url(${s4})`, { display: "swap" }) });
        }
        var i4, l5;
      });
    }
    function b3(t5, e4) {
      const n4 = g3[t5];
      g3[t5] = { ...n4, status: e4 };
    }
    function y3() {
      g3 = [];
    }
    return d3 = { addFontsFromTracks: function(t5, e4) {
      if (t5 && Array.isArray(t5) && e4)
        for (let n4 = 0; n4 < t5.length; n4++)
          p3(t5[n4], e4);
    }, downloadFonts: function() {
      for (let t5 = 0; t5 < g3.length; t5++) {
        let e4 = g3[t5];
        document.fonts.add(e4.fontFace), n3.trigger(h2.default.DVB_FONT_DOWNLOAD_ADDED, e4), e4.fontFace.load().then(() => {
          b3(t5, s2), n3.trigger(h2.default.DVB_FONT_DOWNLOAD_COMPLETE, e4);
        }, (a3) => {
          b3(t5, l3), c3.debug("Font download error: ", a3), n3.trigger(h2.default.DVB_FONT_DOWNLOAD_FAILED, e4);
        });
      }
    }, getFonts: function() {
      return g3;
    }, getFontsForTrackId: function(t5) {
      return g3.filter((e4) => e4.trackId && e4.trackId === t5);
    }, reset: function() {
      !function() {
        for (const t5 of g3) {
          let e4 = document.fonts.delete(t5.fontFace);
          c3.debug(`Removal of fontFamily: ${t5.fontFamily} was ${e4 ? "successful" : "unsuccessful"}`);
        }
      }(), y3();
    } }, c3 = (0, o2.default)(e3).getInstance().getLogger(d3), y3(), d3;
  }
  ls.__dashjs_factory_name = "DVBFonts";
  var os = r2.default.getClassFactory(ls);
  function ss(t4) {
    let e3 = this.context;
    const n3 = t4.adapter, a2 = t4.errHandler, r3 = t4.manifestModel, i3 = t4.mediaController, l3 = t4.baseURLController, s2 = t4.videoModel, u3 = t4.settings;
    let d3, c3, p3, b3, y3, E3, T3, _3, v3, S3, w3, I3, k3, A2;
    function R2(t5) {
      if (A2.error(`Could not download ${t5.isEssential ? "an essential" : "a"} font - fontFamily: ${t5.fontFamily}, url: ${t5.url}`), t5.isEssential) {
        let e4 = b3[t5.streamId].getTrackIdxForId(t5.trackId);
        b3[t5.streamId].setModeForTrackIdx(e4, m2.default.TEXT_DISABLED);
      }
    }
    function N2(t5) {
      if (A2.debug(`Successfully downloaded ${t5.isEssential ? "an essential" : "a"} font - fontFamily: ${t5.fontFamily}, url: ${t5.url}`), t5.isEssential) {
        let e4 = b3[t5.streamId].getTrackIdxForId(t5.trackId);
        e4 === b3[t5.streamId].getCurrentTrackIdx() ? b3[t5.streamId].setModeForTrackIdx(e4, m2.default.TEXT_SHOWING) : b3[t5.streamId].setModeForTrackIdx(e4, m2.default.TEXT_HIDDEN);
      }
    }
    function C2(t5) {
      let e4 = t5.tracks, n4 = t5.index;
      const a3 = t5.streamId;
      if (false === u3.get().streaming.text.defaultEnabled && !O2() || I3)
        z2(a3, -1);
      else {
        const t6 = i3.getCurrentTrackFor(m2.default.TEXT, a3);
        if (t6) {
          const r4 = { lang: t6.lang, role: t6.roles[0], index: t6.index, codec: t6.codec, accessibility: t6.accessibility[0] };
          e4.some((t7, e5) => {
            if (i3.matchSettings(r4, t7))
              return z2(a3, e5), n4 = e5, true;
          });
        }
        v3 = false;
      }
      c3[a3].lastEnabledIndex = n4, _3.trigger(h2.default.TEXT_TRACKS_ADDED, { enabled: O2(), index: n4, tracks: e4, streamId: a3 }), w3 = true, k3.addFontsFromTracks(e4, a3), k3.getFonts().forEach((t6) => {
        if (t6.isEssential) {
          let e5 = b3[t6.streamId].getTrackIdxForId(t6.trackId);
          b3[t6.streamId].setModeForTrackIdx(e5, m2.default.TEXT_DISABLED);
        }
      }), k3.downloadFonts();
    }
    function D2(t5) {
      try {
        const e4 = t5.streamId, n4 = b3[e4];
        if (!n4 || isNaN(t5.time))
          return;
        n4.updateTextTrackWindow(t5.time), u3.get().streaming.text.webvtt.customRenderingEnabled && n4.manualCueProcessing(t5.time);
      } catch (t6) {
      }
    }
    function x2(t5) {
      try {
        const e4 = t5.streamId;
        if (!b3[e4])
          return;
        b3[e4].disableManualTracks();
      } catch (t6) {
      }
    }
    function M2(t5) {
      try {
        const e4 = b3[t5.streamId];
        if (!e4)
          return;
        const n4 = s2.getTime() || 0;
        e4.updateTextTrackWindow(n4, true);
      } catch (t6) {
        A2.error(t6);
      }
    }
    function P2(t5) {
      try {
        if (!t5 || !t5.mediaType || t5.mediaType !== m2.default.AUDIO || !t5.currentMediaInfo)
          return;
        const e4 = b3[t5.streamId].getCurrentTextTrackInfo();
        let n4 = NaN;
        v3 ? n4 = L2(t5.streamId) : F2(e4) && t5.currentMediaInfo.lang && t5.currentMediaInfo.lang !== e4.lang && (n4 = L2(t5.streamId), isNaN(n4) && (n4 = -1)), isNaN(n4) || z2(t5.streamId, n4);
      } catch (t6) {
        A2.error(t6);
      }
    }
    function O2() {
      let t5 = true;
      return v3 && !S3 && (t5 = false), t5;
    }
    function z2(t5, e4) {
      v3 = -1 === e4, v3 && i3 && i3.saveTextSettingsDisabled();
      let n4 = U2(t5);
      if (n4 === e4 || !b3[t5])
        return;
      b3[t5].disableManualTracks(), b3[t5].invalidateCueWindow();
      let a3 = b3[t5].getCurrentTextTrackInfo(), r4 = a3 ? s2.getTextTrack(a3.kind, a3.id, a3.lang, a3.isTTML, a3.isEmbedded) : null;
      r4 && r4.mode !== m2.default.TEXT_DISABLED && b3[t5].setModeForTrackIdx(n4, m2.default.TEXT_HIDDEN), b3[t5].setCurrentTrackIdx(e4), a3 = b3[t5].getCurrentTextTrackInfo();
      const l4 = u3.get().streaming.text.dispatchForManualRendering;
      if (a3 && !l4 && a3.mode !== m2.default.TEXT_DISABLED && b3[t5].setModeForTrackIdx(e4, m2.default.TEXT_SHOWING), a3 && a3.isFragmented && !a3.isEmbedded)
        !function(t6, e5, n5) {
          if (!p3[t6])
            return;
          let a4 = p3[t6].getConfig().fragmentedTracks;
          for (let r5 = 0; r5 < a4.length; r5++) {
            let l5 = a4[r5];
            if (e5.lang === l5.lang && (l5.id ? e5.id === l5.id : e5.index === l5.index)) {
              let e6 = i3.getCurrentTrackFor(m2.default.TEXT, t6);
              (l5.id ? e6.id !== l5.id : e6.index !== l5.index) ? (b3[t6].deleteCuesFromTrackIdx(n5), p3[t6].setCurrentFragmentedTrackIdx(r5)) : -1 === n5 && _3.trigger(g2.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, {}, { streamId: t6, mediaType: m2.default.TEXT });
            }
          }
        }(t5, a3, n4);
      else if (a3 && !a3.isFragmented)
        !function(t6, e5) {
          _3.trigger(g2.default.SET_NON_FRAGMENTED_TEXT, { currentTrackInfo: e5 }, { streamId: t6, mediaType: m2.default.TEXT });
        }(t5, a3);
      else if (!a3 && v3) {
        const e5 = L2(t5);
        return void (isNaN(e5) || z2(t5, e5));
      }
      i3.setTrack(a3);
    }
    function L2(t5) {
      const e4 = function(t6) {
        return b3[t6].getTextTrackInfos().filter((t7, e5) => (t7._indexToSelect = e5, !!(t7 && t7.roles && t7.roles.length > 0) && F2(t7)));
      }(t5);
      if (!e4 || e4.length <= 0)
        return NaN;
      const n4 = i3.getCurrentTrackFor(m2.default.AUDIO, t5);
      if (!n4)
        return NaN;
      const a3 = e4.find((t6) => n4.lang === t6.lang);
      return a3 ? a3._indexToSelect : NaN;
    }
    function F2(t5) {
      return !(!t5 || !t5.roles || 0 === t5.roles.length) && t5.roles.some((t6) => t6.schemeIdUri === m2.default.DASH_ROLE_SCHEME_ID && t6.value === Vt.default.FORCED_SUBTITLE);
    }
    function U2(t5) {
      return b3[t5].getCurrentTrackIdx();
    }
    function j2() {
      p3 = {}, b3 = {}, c3 = {}, v3 = true, w3 = false, I3 = false;
    }
    return d3 = { addEmbeddedTrack: function(t5, e4) {
      const n4 = t5.id;
      p3[n4] && p3[n4].addEmbeddedTrack(e4);
    }, addMediaInfosToBuffer: function(t5, e4, n4, a3 = null) {
      const r4 = t5.id;
      p3[r4] && p3[r4].addMediaInfos(e4, n4, a3);
    }, createTracks: function(t5) {
      const e4 = t5.id;
      b3[e4] && b3[e4].createTracks();
    }, deactivateStream: function(t5) {
      if (!t5)
        return;
      const e4 = t5.id;
      p3[e4] && p3[e4].resetMediaInfos(), b3[e4] && b3[e4].deleteAllTextTracks();
    }, enableForcedTextStreaming: function(t5) {
      return (0, zt.checkParameterType)(t5, "boolean"), S3 = t5, true;
    }, enableText: function(t5, e4) {
      return (0, zt.checkParameterType)(e4, "boolean"), O2() !== e4 && (e4 && z2(t5, c3[t5].lastEnabledIndex), e4 || (c3[t5].lastEnabledIndex = U2(t5), w3 ? z2(t5, -1) : I3 = true)), true;
    }, getAllTracksAreDisabled: function() {
      return v3;
    }, getCurrentTrackIdx: U2, getTextSourceBuffer: function(t5) {
      const e4 = t5.id;
      if (p3 && p3[e4])
        return p3[e4];
    }, initialize: function() {
      k3 = os(e3).create({ adapter: n3, baseURLController: l3 }), _3.on(g2.default.TEXT_TRACKS_QUEUE_INITIALIZED, C2, d3), _3.on(g2.default.DVB_FONT_DOWNLOAD_FAILED, R2, d3), _3.on(g2.default.DVB_FONT_DOWNLOAD_COMPLETE, N2, d3), _3.on(g2.default.MEDIAINFO_UPDATED, P2, d3), _3.on(g2.default.PLAYBACK_TIME_UPDATED, D2, d3), u3.get().streaming.text.webvtt.customRenderingEnabled && _3.on(g2.default.PLAYBACK_SEEKING, x2, d3), _3.on(g2.default.PLAYBACK_SEEKED, M2, d3);
    }, initializeForStream: function(t5) {
      const l4 = t5.id, o3 = Jo(e3).create({ videoModel: s2, settings: u3, streamInfo: t5 });
      o3.initialize(), b3[l4] = o3;
      const d4 = Wo(e3).create({ errHandler: a2, adapter: n3, dvbFonts: k3, manifestModel: r3, mediaController: i3, videoModel: s2, textTracks: o3, vttParser: y3, vttCustomRenderingParser: E3, ttmlParser: T3, streamInfo: t5, settings: u3 });
      d4.initialize(), p3[l4] = d4, c3[l4] = {}, c3[l4].lastEnabledIndex = -1;
    }, isTextEnabled: O2, reset: function() {
      Object.keys(p3).forEach((t5) => {
        p3[t5].resetEmbedded(), p3[t5].reset();
      }), k3.reset(), j2(), _3.off(g2.default.TEXT_TRACKS_QUEUE_INITIALIZED, C2, d3), _3.off(g2.default.DVB_FONT_DOWNLOAD_FAILED, R2, d3), _3.off(g2.default.DVB_FONT_DOWNLOAD_COMPLETE, N2, d3), _3.off(g2.default.MEDIAINFO_UPDATED, P2, d3), _3.off(g2.default.PLAYBACK_TIME_UPDATED, D2, d3), u3.get().streaming.text.webvtt.customRenderingEnabled && _3.off(g2.default.PLAYBACK_SEEKING, x2, d3), _3.off(g2.default.PLAYBACK_SEEKED, M2, d3);
    }, setTextTrack: z2, clearDataForStream: function(t5) {
      p3[t5] && (p3[t5].resetEmbedded(), p3[t5].reset(), delete p3[t5]), b3[t5] && (b3[t5].deleteAllTextTracks(), delete b3[t5]), c3[t5] && delete c3[t5];
    } }, S3 = false, w3 = false, I3 = false, y3 = es(e3).getInstance(), E3 = as(e3).getInstance(), T3 = is(e3).getInstance(), _3 = (0, f2.default)(e3).getInstance(), A2 = (0, o2.default)(e3).getInstance().getLogger(d3), j2(), d3;
  }
  ss.__dashjs_factory_name = "TextController";
  var us = r2.default.getClassFactory(ss);
  function ds(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, o2.default)(e3).getInstance(), a2 = t4.settings, r3 = (0, f2.default)(e3).getInstance();
    let i3, l3, s2, u3, d3, c3;
    function g3() {
      return navigator && navigator.connection && !isNaN(navigator.connection.downlink) && navigator.connection.downlink > 0 ? 1e3 * navigator.connection.downlink : NaN;
    }
    function p3(t5, e4, n4, a3) {
      const r4 = Math.pow(0.5, n4 / a3.fast);
      t5.fastEstimate = (1 - r4) * e4 + r4 * t5.fastEstimate;
      const i4 = Math.pow(0.5, n4 / a3.slow);
      t5.slowEstimate = (1 - i4) * e4 + i4 * t5.slowEstimate, t5.totalWeight += n4;
    }
    function b3() {
      i3 = {}, l3 = {}, s2 = {}, u3 = {};
    }
    const y3 = { addEntry: function(t5, e4) {
      try {
        if (!(t5 && e4 && e4.trace && e4.trace.length))
          return;
        !function(t6) {
          i3[t6] = i3[t6] || [], l3[t6] = l3[t6] || [], s2[t6] = s2[t6] || { fastEstimate: 0, slowEstimate: 0, totalWeight: 0 }, u3[t6] = u3[t6] || { fastEstimate: 0, slowEstimate: 0, totalWeight: 0 };
        }(t5);
        const n4 = e4.tresponse.getTime() - e4.trequest.getTime() || 1;
        let o3 = function(t6, e5) {
          return t6._fileLoaderType && t6._fileLoaderType === m2.default.FILE_LOADER_TYPES.FETCH ? function(t7) {
            const e6 = t7.trace.reduce((t8, e7) => t8 + e7.b[0], 0), n5 = t7.trace.reduce((t8, e7) => t8 + e7.d, 0);
            let r4 = NaN;
            return a2.get().streaming.abr.throughput.useNetworkInformationApi.fetch && (r4 = g3()), isNaN(r4) && (r4 = Math.round(8 * e6 / n5)), { downloadedBytes: e6, value: r4, downloadTimeInMs: n5 };
          }(t6) : function(t7, e6) {
            let n5 = NaN, r4 = NaN, i4 = false;
            if (a2.get().streaming.abr.throughput.useResourceTimingApi && t7._resourceTimingValues)
              n5 = t7._resourceTimingValues.transferSize, r4 = t7._resourceTimingValues.responseEnd - t7._resourceTimingValues.responseStart, i4 = true;
            else {
              if (t7.trace.length <= 1)
                return { throughput: NaN, downloadTimeInMs: NaN };
              n5 = t7.trace.reduce((t8, e7) => t8 + e7.b[0], 0) - t7.trace[0].b[0], r4 = Math.max(t7.trace.reduce((t8, e7) => t8 + e7.d, 0) - t7.trace[0].d, 1);
            }
            let l4 = NaN;
            if (!i4 && a2.get().streaming.abr.throughput.useNetworkInformationApi.xhr && (l4 = g3()), isNaN(l4)) {
              const t8 = a2.get().streaming.abr.throughput.useDeadTimeLatency ? r4 : r4 + e6;
              l4 = Math.round(8 * n5 / t8);
            }
            return { downloadedBytes: n5, value: l4, downloadTimeInMs: r4 };
          }(t6, e5);
        }(e4, n4);
        if (o3.latencyInMs = n4, isNaN(o3.value) || !isFinite(o3.value))
          return;
        if (e4.cmsd) {
          const t6 = e4.cmsd.dynamic && e4.cmsd.dynamic.etp ? e4.cmsd.dynamic.etp : null;
          if (t6) {
            const e5 = a2.get().streaming.cmsd.abr.etpWeightRatio;
            e5 > 0 && e5 <= 1 && (o3.value = o3.value * (1 - e5) + t6 * e5);
          }
        }
        if (function(t6, e5, n5) {
          return a2.get().streaming.abr.throughput.useResourceTimingApi && n5._resourceTimingValues ? 0 === n5._resourceTimingValues.transferSize && n5._resourceTimingValues.decodedBodySize > 0 : !isNaN(e5) && (t6 === m2.default.VIDEO ? e5 < a2.get().streaming.cacheLoadThresholds[m2.default.VIDEO] : t6 === m2.default.AUDIO ? e5 < a2.get().streaming.cacheLoadThresholds[m2.default.AUDIO] : void 0);
        }(t5, e4._tfinish.getTime() - e4.trequest.getTime(), e4))
          return void c3.debug(`${t5} Assuming segment ${e4.url} came from cache, ignoring it for throughput calculation`);
        c3.debug(`Added throughput entry for ${t5}: ${o3.value} kbit/s`), o3.serviceLocation = e4._serviceLocation, i3[t5].push(o3), l3[t5].push({ value: n4 }), function(t6) {
          i3[t6].length > a2.get().streaming.abr.throughput.sampleSettings.maxMeasurementsToKeep && i3[t6].shift(), l3[t6].length > a2.get().streaming.abr.throughput.sampleSettings.maxMeasurementsToKeep && l3[t6].shift();
        }(t5), r3.trigger(h2.default.THROUGHPUT_MEASUREMENT_STORED, { throughputValues: o3 }), e4.type !== w2.HTTPRequest.MPD_TYPE && (p3(s2[t5], o3.value, a2.get().streaming.abr.throughput.ewma.weightDownloadTimeMultiplicationFactor * o3.downloadTimeInMs, d3.bandwidthHalfLife), p3(u3[t5], n4, 1, d3.latencyHalfLife));
      } catch (t6) {
        c3.error(t6);
      }
    }, getThroughputDict: function(t5) {
      return t5 ? i3[t5] : i3;
    }, getEwmaThroughputDict: function(t5) {
      return t5 ? s2[t5] : s2;
    }, getEwmaLatencyDict: function(t5) {
      return t5 ? u3[t5] : u3;
    }, getEwmaHalfLife: function() {
      return d3;
    }, getLatencyDict: function(t5) {
      return t5 ? l3[t5] : l3;
    }, reset: b3 };
    return c3 = n3.getLogger(y3), d3 = { bandwidthHalfLife: { fast: a2.get().streaming.abr.throughput.ewma.throughputFastHalfLifeSeconds, slow: a2.get().streaming.abr.throughput.ewma.throughputSlowHalfLifeSeconds }, latencyHalfLife: { fast: a2.get().streaming.abr.throughput.ewma.latencyFastHalfLifeCount, slow: a2.get().streaming.abr.throughput.ewma.latencySlowHalfLifeCount } }, b3(), y3;
  }
  ds.__dashjs_factory_name = "ThroughputModel";
  var cs = r2.default.getClassFactory(ds);
  function fs() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance();
    let n3, a2, r3;
    function i3() {
      performance.clearResourceTimings();
    }
    function o3(t5) {
      t5.metric !== l2.HTTP_REQUEST || !t5.value || t5.value.type !== w2.HTTPRequest.MPD_TYPE && (t5.value.type !== w2.HTTPRequest.MEDIA_SEGMENT_TYPE || t5.mediaType !== m2.default.AUDIO && t5.mediaType !== m2.default.VIDEO) || n3.addEntry(t5.mediaType, t5.value);
    }
    function s2(t5, e4, i4 = null, l3 = NaN) {
      let o4, s3 = null, f3 = n3.getEwmaHalfLife(), h3 = null, _4 = true;
      switch (i4 || (i4 = r3.get().streaming.abr.throughput.averageCalculationMode), t5) {
        case m2.default.THROUGHPUT_TYPES.BANDWIDTH:
          s3 = i4 === m2.default.THROUGHPUT_CALCULATION_MODES.EWMA ? n3.getEwmaThroughputDict(e4) : n3.getThroughputDict(e4), h3 = f3.bandwidthHalfLife, _4 = true, l3 = isNaN(l3) ? a2.getIsDynamic() ? r3.get().streaming.abr.throughput.sampleSettings.live : r3.get().streaming.abr.throughput.sampleSettings.vod : l3;
          break;
        case m2.default.THROUGHPUT_TYPES.LATENCY:
          s3 = i4 === m2.default.THROUGHPUT_CALCULATION_MODES.EWMA ? n3.getEwmaLatencyDict(e4) : n3.getLatencyDict(e4), h3 = f3.latencyHalfLife, _4 = false, l3 = isNaN(l3) ? r3.get().streaming.abr.throughput.sampleSettings.averageLatencySampleAmount : l3;
      }
      if (!s3 || 0 === s3.length)
        return NaN;
      switch (i4) {
        case m2.default.THROUGHPUT_CALCULATION_MODES.ARITHMETIC_MEAN:
          return o4 = u3(s3, l3, t5), d3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.BYTE_SIZE_WEIGHTED_ARITHMETIC_MEAN:
          return o4 = u3(s3, l3, t5), c3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.DATE_WEIGHTED_ARITHMETIC_MEAN:
          return o4 = u3(s3, l3, t5), g3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.HARMONIC_MEAN:
          return o4 = u3(s3, l3, t5), p3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.BYTE_SIZE_WEIGHTED_HARMONIC_MEAN:
          return o4 = u3(s3, l3, t5), b3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.DATE_WEIGHTED_HARMONIC_MEAN:
          return o4 = u3(s3, l3, t5), y3(s3, o4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.EWMA:
          return E3(s3, h3, _4);
        case m2.default.THROUGHPUT_CALCULATION_MODES.ZLEMA:
          return o4 = u3(s3, l3, t5), T3(s3, o4);
      }
    }
    function u3(t5, e4, n4) {
      if (t5) {
        if (e4 >= t5.length)
          e4 = t5.length;
        else if (n4 === m2.default.THROUGHPUT_TYPES.BANDWIDTH && r3.get().streaming.abr.throughput.sampleSettings.enableSampleSizeAdjustment)
          for (let n5 = 1; n5 < e4; ++n5) {
            const a3 = t5[t5.length - n5].value / t5[t5.length - n5 - 1].value;
            if ((a3 >= r3.get().streaming.abr.throughput.sampleSettings.increaseScale || a3 <= r3.get().streaming.abr.throughput.sampleSettings.decreaseScale) && (e4 += 1) === t5.length)
              break;
          }
      } else
        e4 = 0;
      return e4;
    }
    function d3(t5, e4) {
      let n4 = t5;
      return 0 !== e4 && n4 && 0 !== n4.length ? (n4 = n4.slice(-e4), n4.reduce((t6, e5) => t6 + e5.value, 0) / n4.length) : NaN;
    }
    function c3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      return n4.reduce((t6, e5) => {
        let n5 = Math.sqrt(e5.downloadedBytes);
        return a3 += n5, t6 + e5.value * n5;
      }, 0) / a3;
    }
    function g3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      return n4.reduce((t6, e5, n5) => {
        let r4 = n5 + 1;
        return a3 += r4, t6 + e5.value * r4;
      }, 0) / a3;
    }
    function p3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      const a3 = n4.reduce((t6, e5) => t6 + 1 / e5.value, 0);
      return n4.length / a3;
    }
    function b3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      const r4 = n4.reduce((t6, e5) => {
        let n5 = Math.sqrt(e5.downloadedBytes);
        return a3 += n5, t6 + 1 / e5.value * n5;
      }, 0);
      return a3 / r4;
    }
    function y3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      const r4 = n4.reduce((t6, e5, n5) => {
        let r5 = n5 + 1;
        return a3 += r5, t6 + 1 / e5.value * r5;
      }, 0);
      return a3 / r4;
    }
    function E3(t5, e4, n4 = true) {
      if (!t5 || t5.totalWeight <= 0)
        return NaN;
      const a3 = t5.fastEstimate / (1 - Math.pow(0.5, t5.totalWeight / e4.fast)), r4 = t5.slowEstimate / (1 - Math.pow(0.5, t5.totalWeight / e4.slow));
      return n4 ? Math.min(a3, r4) : Math.max(a3, r4);
    }
    function T3(t5, e4) {
      if (0 === e4 || !t5 || 0 === t5.length)
        return NaN;
      let n4 = t5.slice(-e4).map((t6) => t6.value), a3 = 2 / (n4.length + 1), r4 = n4[n4.length - 1], i4 = n4[n4.length - 1];
      for (let t6 = 0; t6 < n4.length; t6++)
        r4 = a3 * n4[t6] + (1 - a3) * r4, i4 = a3 * r4 + (1 - a3) * i4;
      return i4;
    }
    function _3(t5, e4 = null, n4 = NaN) {
      const a3 = s2(m2.default.THROUGHPUT_TYPES.BANDWIDTH, t5, e4, n4);
      return Math.round(a3);
    }
    const v3 = { getArithmeticMean: d3, getAverageLatency: function(t5, e4 = null, n4 = NaN) {
      const a3 = s2(m2.default.THROUGHPUT_TYPES.LATENCY, t5, e4, n4);
      return Math.round(a3);
    }, getAverageThroughput: _3, getByteSizeWeightedArithmeticMean: c3, getByteSizeWeightedHarmonicMean: b3, getDateWeightedArithmeticMean: g3, getDateWeightedHarmonicMean: y3, getEwma: E3, getHarmonicMean: p3, getRawThroughputData: function(t5) {
      return t5 ? n3.getThroughputDict(t5) : [];
    }, getSafeAverageThroughput: function(t5, e4 = null, n4 = NaN) {
      let a3 = _3(t5, e4, n4);
      return isNaN(a3) || (a3 *= r3.get().streaming.abr.throughput.bandwidthSafetyFactor), a3;
    }, getZlema: T3, initialize: function() {
      var _a2, _b;
      n3 = cs(t4).create({ settings: r3 }), e3.on(h2.default.METRIC_ADDED, o3, v3), (_b = (_a2 = window.performance) == null ? void 0 : _a2.addEventListener) == null ? void 0 : _b.call(_a2, "resourcetimingbufferfull", i3);
    }, reset: function() {
      var _a2, _b;
      n3.reset(), e3.off(h2.default.METRIC_ADDED, o3, v3), (_b = (_a2 = window.performance) == null ? void 0 : _a2.removeEventListener) == null ? void 0 : _b.call(_a2, "resourcetimingbufferfull", i3);
    }, setConfig: function(t5) {
      t5.settings && (r3 = t5.settings), t5.playbackController && (a2 = t5.playbackController);
    } };
    return v3;
  }
  fs.__dashjs_factory_name = "ThroughputController";
  var gs = r2.default.getSingletonFactory(fs);
  function ms() {
    const t4 = this.context, e3 = (0, f2.default)(t4).getInstance(), n3 = (0, u2.default)(t4).getInstance();
    let a2, r3, i3, l3;
    function o3(t5) {
      l3 = t5;
    }
    function s2(t5, e4, n4, a3) {
      let r4, i4 = e4.adaptation.period.mpd;
      const l4 = i4.availabilityStartTime;
      if (a3)
        r4 = n4 && i4.timeShiftBufferDepth !== Number.POSITIVE_INFINITY ? new Date(l4.getTime() + 1e3 * (t5 + i4.timeShiftBufferDepth)) : i4.availabilityEndTime;
      else if (n4) {
        const n5 = e4.availabilityTimeOffset;
        r4 = new Date(l4.getTime() + 1e3 * (t5 - n5));
      } else
        r4 = l4;
      return r4;
    }
    function d3(t5, e4) {
      return (t5.getTime() - e4.mpd.availabilityStartTime.getTime() + 1e3 * l3) / 1e3;
    }
    function c3(t5, e4) {
      return t5 + (e4.adaptation.period.start - e4.presentationTimeOffset);
    }
    function p3(t5) {
      const e4 = { start: NaN, end: NaN }, n4 = t5[0].getAdapter().getRegularPeriods()[0], a3 = d3(/* @__PURE__ */ new Date(), n4);
      if (!t5 || 0 === t5.length)
        return { range: e4, now: a3 };
      t5.forEach((t6) => {
        let n5 = t6.getCurrentRepresentationForType(m2.default.VIDEO);
        if (n5 || (n5 = t6.getCurrentRepresentationForType(m2.default.AUDIO)), !n5) {
          const e5 = t6.getAdapter(), a4 = e5.getMediaInfoForType(t6.getStreamInfo(), m2.default.VIDEO) || e5.getMediaInfoForType(t6.getStreamInfo(), m2.default.AUDIO);
          n5 = e5.getVoRepresentations(a4)[0];
        }
        let i5 = { start: NaN, end: NaN };
        if (n5)
          if (n5.segmentInfoType === Vt.default.SEGMENT_TIMELINE)
            i5 = function(t7) {
              const e5 = t7.adaptation.period.mpd.manifest.Period[t7.adaptation.period.index].AdaptationSet[t7.adaptation.index], n6 = r3.getRepresentationFor(t7.index, e5), a4 = n6.SegmentTemplate || n6.SegmentList, i6 = a4.SegmentTimeline, l4 = a4.timescale, o4 = i6.S, s3 = { start: 0, end: 0 }, u3 = o4[0].t, d4 = !isNaN(u3), f3 = d4 ? u3 : 0;
              let g3, m3, h3, p4, b4 = 0;
              for (d4 && (s3.start = c3(f3 / l4, t7)), h3 = 0, p4 = o4.length; h3 < p4; h3++)
                g3 = o4[h3], m3 = 0, g3.hasOwnProperty("r") && (m3 = g3.r), b4 += g3.d * (1 + m3);
              return s3.end = c3((f3 + b4) / l4, t7), s3;
            }(n5);
          else {
            const t7 = n5.adaptation.period;
            i5.start = t7.start, i5.end = Math.max(a3, t7.start + t7.duration);
          }
        !isNaN(i5.start) && (isNaN(e4.start) || e4.start > i5.start) && (e4.start = i5.start), !isNaN(i5.end) && (isNaN(e4.end) || e4.end < i5.end) && (e4.end = i5.end);
      }), e4.end = Math.min(a3, e4.end);
      const i4 = y3(t5, e4.end, true);
      return e4.end = isNaN(i4) ? e4.end : i4, e4.start = n4 && n4.mpd && n4.mpd.timeShiftBufferDepth && !isNaN(n4.mpd.timeShiftBufferDepth) && !isNaN(e4.end) ? Math.max(e4.end - n4.mpd.timeShiftBufferDepth, e4.start) : e4.start, e4.start = y3(t5, e4.start), { range: e4, now: a3 };
    }
    function b3(t5, e4) {
      i3 = t5 - e4.end;
    }
    function y3(t5, e4, n4 = false) {
      try {
        let a3 = 0, r4 = false, i4 = NaN;
        for (; !r4 && a3 < t5.length; ) {
          const l4 = t5[a3].getStreamInfo();
          l4.start <= e4 && (!isFinite(l4.duration) || l4.start + l4.duration >= e4) ? (i4 = e4, r4 = true) : !n4 && l4.start > e4 && (isNaN(i4) || l4.start < i4) ? i4 = l4.start : n4 && l4.start + l4.duration < e4 && (isNaN(i4) || l4.start + l4.duration > i4) && (i4 = l4.start + l4.duration), a3 += 1;
        }
        return i4;
      } catch (t6) {
        return e4;
      }
    }
    function E3(t5) {
      void 0 === t5.offset || isNaN(t5.offset) || o3(t5.offset / 1e3);
    }
    function T3() {
      l3 = 0, i3 = 0;
    }
    function _3() {
      e3.off(g2.default.UPDATE_TIME_SYNC_OFFSET, E3, this), T3();
    }
    return a2 = { calcAvailabilityEndTimeFromPresentationTime: function(t5, e4, n4) {
      return s2(t5, e4, n4, true);
    }, calcAvailabilityStartTimeFromPresentationTime: function(t5, e4, n4) {
      return s2(t5, e4, n4);
    }, calcMediaTimeFromPresentationTime: function(t5, e4) {
      return t5 - e4.adaptation.period.start + e4.presentationTimeOffset;
    }, calcPeriodRelativeTimeFromMpdRelativeTime: function(t5, e4) {
      return e4 - t5.adaptation.period.start;
    }, calcPresentationTimeFromMediaTime: c3, calcPresentationTimeFromWallTime: d3, calcTimeShiftBufferWindow: function(t5, a3) {
      if (!a3)
        return function(t6) {
          const e4 = { start: NaN, end: NaN };
          let n4 = 0, a4 = NaN;
          return t6.forEach((t7) => {
            const e5 = t7.getStreamInfo();
            n4 += e5.duration, (isNaN(a4) || e5.start < a4) && (a4 = e5.start);
          }), e4.start = a4, e4.end = a4 + n4, e4;
        }(t5);
      if (n3.get().streaming.timeShiftBuffer.calcFromSegmentTimeline) {
        const e4 = p3(t5);
        return b3(e4.now, e4.range), e4.range;
      }
      return function(t6) {
        const a4 = { start: NaN, end: NaN };
        if (!t6 || 0 === t6.length)
          return a4;
        const r4 = t6[0].getAdapter().getRegularPeriods()[0], i4 = d3(/* @__PURE__ */ new Date(), r4), l4 = r4.mpd.timeShiftBufferDepth, o4 = isNaN(l4) ? 0 : i4 - l4;
        if (a4.start = y3(t6, o4), a4.end = !isNaN(a4.start) && i4 < a4.start ? i4 : y3(t6, i4, true), !isNaN(l4) && a4.end < i4 - l4 && (a4.end = NaN), n3.get().streaming.timeShiftBuffer.fallbackToSegmentTimeline) {
          const n4 = p3(t6);
          if (n4.range.end < a4.start)
            return e3.trigger(h2.default.CONFORMANCE_VIOLATION, { level: mo.LEVELS.WARNING, event: mo.EVENTS.INVALID_DVR_WINDOW }), b3(n4.now, n4.range), n4.range;
        }
        return a4;
      }(t5);
    }, calcWallTimeForSegment: function(t5, e4) {
      let n4, a3, r4;
      return e4 && (n4 = t5.representation.adaptation.period.mpd.suggestedPresentationDelay, a3 = t5.presentationStartTime + n4, r4 = new Date(t5.availabilityStartTime.getTime() + 1e3 * a3)), r4;
    }, getClientReferenceTime: function() {
      return Date.now() - 1e3 * i3 + 1e3 * l3;
    }, getClientTimeOffset: function() {
      return l3;
    }, initialize: function() {
      T3(), e3.on(g2.default.UPDATE_TIME_SYNC_OFFSET, E3, this);
    }, reset: _3, setClientTimeOffset: o3, setConfig: function(t5) {
      t5 && t5.dashManifestModel && (r3 = t5.dashManifestModel);
    } }, r3 = he(t4).getInstance(), _3(), a2;
  }
  ms.__dashjs_factory_name = "TimelineConverter";
  var hs = r2.default.getSingletonFactory(ms), ps = class {
    constructor() {
      this.t = null, this.xywh = null, this.track = null, this.id = null, this.s = null, this.r = null;
    }
  };
  function bs() {
    let t4, e3;
    return t4 = { initialize: function(t5) {
      if (e3 = new ps(), !t5)
        return null;
      const n3 = t5.indexOf("#");
      if (-1 !== n3) {
        const a2 = t5.substr(n3 + 1).split("&");
        for (let t6 = 0, n4 = a2.length; t6 < n4; ++t6) {
          const n5 = a2[t6], r3 = n5.indexOf("=");
          if (-1 !== r3) {
            const t7 = n5.substring(0, r3);
            e3.hasOwnProperty(t7) && (e3[t7] = n5.substr(r3 + 1));
          }
        }
      }
    }, getURIFragmentData: function() {
      return e3;
    } }, t4;
  }
  bs.__dashjs_factory_name = "URIFragmentModel";
  var ys = r2.default.getSingletonFactory(bs);
  const Es = /* @__PURE__ */ new Map([[m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, "loadedmetadata"], [m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_CURRENT_DATA, "loadeddata"], [m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, "canplay"], [m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_ENOUGH_DATA, "canplaythrough"]]);
  function Ts() {
    let t4, e3, n3, a2, r3, i3, l3, s2, d3, c3, h3, p3;
    const b3 = this.context, y3 = (0, f2.default)(b3).getInstance(), E3 = [];
    function T3(t5, e4 = false) {
      n3 && (e4 ? n3.playbackRate = t5 : D2(m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, () => {
        n3.playbackRate = t5;
      }));
    }
    function _3() {
      return E3.length > 0;
    }
    function v3(t5) {
      let e4 = E3.indexOf(t5);
      if (null !== t5 && (-1 !== e4 && E3.splice(e4, 1), c3.get().streaming.buffer.syntheticStallEvents.enabled && n3 && !_3())) {
        const t6 = () => {
          if (T3(i3 || 1, c3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState), !n3.paused) {
            const t7 = document.createEvent("Event");
            t7.initEvent("playing", true, false), n3.dispatchEvent(t7);
          }
        };
        c3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState ? t6() : (s2 && s2.func && s2.event && I3(s2.event, s2.func), s2 = D2(m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, t6));
      }
    }
    function S3() {
      if (n3 && _3() && 0 === n3.playbackRate) {
        const t5 = document.createEvent("Event");
        t5.initEvent("waiting", true, false), n3.dispatchEvent(t5);
      }
    }
    function w3(t5, e4) {
      n3 && n3.addEventListener(t5, e4);
    }
    function I3(t5, e4) {
      n3 && n3.removeEventListener(t5, e4);
    }
    function k3() {
      return n3 ? n3.readyState : NaN;
    }
    function A2() {
      return n3 ? n3.buffered : null;
    }
    function R2() {
      return n3 ? n3.clientWidth : NaN;
    }
    function N2() {
      return n3 ? n3.clientHeight : NaN;
    }
    function C2(t5, e4, a3, r4, i4) {
      if (n3) {
        for (let l4 = 0; l4 < n3.textTracks.length; l4++)
          if (n3.textTracks[l4].kind === t5 && (!e4 || n3.textTracks[l4].label == e4) && n3.textTracks[l4].language === a3 && n3.textTracks[l4].isTTML === r4 && n3.textTracks[l4].isEmbedded === i4)
            return n3.textTracks[l4];
      }
      return null;
    }
    function D2(t5, e4) {
      return t5 === m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_NOTHING || k3() >= t5 ? (e4(), null) : function(t6, e5) {
        const n4 = () => {
          I3(t6, n4), e5(t6);
        };
        return w3(t6, n4), { func: n4, event: t6 };
      }(Es.get(t5), e4);
    }
    return a2 = { addEventListener: w3, addTextTrack: function(t5, e4, a3, r4, i4) {
      if (!n3)
        return null;
      let l4 = C2(t5, e4, a3, r4, i4);
      return l4 || (l4 = n3.addTextTrack(t5, e4, a3), l4.isEmbedded = i4, l4.isTTML = r4), l4;
    }, appendChild: function(t5) {
      n3 && (n3.appendChild(t5), void 0 !== t5.isTTML && (n3.textTracks[n3.textTracks.length - 1].isTTML = t5.isTTML, n3.textTracks[n3.textTracks.length - 1].isEmbedded = t5.isEmbedded));
    }, getBufferRange: A2, getClientHeight: N2, getClientWidth: R2, getElement: function() {
      return n3;
    }, getEnded: function() {
      return n3 ? n3.ended : null;
    }, getPlaybackQuality: function() {
      if (!n3)
        return null;
      let t5 = "webkitDroppedFrameCount" in n3 && "webkitDecodedFrameCount" in n3, e4 = null;
      return "getVideoPlaybackQuality" in n3 ? e4 = n3.getVideoPlaybackQuality() : t5 && (e4 = { droppedVideoFrames: n3.webkitDroppedFrameCount, totalVideoFrames: n3.webkitDroppedFrameCount + n3.webkitDecodedFrameCount, creationTime: /* @__PURE__ */ new Date() }), e4;
    }, getPlaybackRate: function() {
      return n3 ? n3.playbackRate : null;
    }, getPlayedRanges: function() {
      return n3 ? n3.played : null;
    }, getReadyState: k3, getSource: function() {
      return n3 ? n3.src : null;
    }, getTTMLRenderingDiv: function() {
      return t4;
    }, getTextTrack: C2, getTextTracks: function() {
      return n3 ? n3.textTracks : [];
    }, getTime: function() {
      return n3 ? isNaN(e3) ? n3.currentTime : e3 : null;
    }, getVideoElementSize: function() {
      const t5 = c3.get().streaming.abr.usePixelRatioInLimitBitrateByPortal && window.hasOwnProperty("devicePixelRatio") ? window.devicePixelRatio : 1;
      return { elementWidth: R2() * t5, elementHeight: N2() * t5 };
    }, getVideoHeight: function() {
      return n3 ? n3.videoHeight : NaN;
    }, getVideoRelativeOffsetLeft: function() {
      if (n3) {
        const t5 = n3.parentNode.host || n3.parentNode;
        return t5 ? n3.getBoundingClientRect().left - t5.getBoundingClientRect().left : NaN;
      }
      return NaN;
    }, getVideoRelativeOffsetTop: function() {
      if (n3) {
        const t5 = n3.parentNode.host || n3.parentNode;
        return t5 ? n3.getBoundingClientRect().top - t5.getBoundingClientRect().top : NaN;
      }
      return NaN;
    }, getVideoWidth: function() {
      return n3 ? n3.videoWidth : NaN;
    }, getVttRenderingDiv: function() {
      return p3;
    }, initialize: function() {
      y3.on(g2.default.PLAYBACK_PLAYING, S3, this);
    }, isPaused: function() {
      return n3 ? n3.paused : null;
    }, isSeeking: function() {
      return n3 ? n3.seeking || !isNaN(e3) : null;
    }, isStalled: _3, pause: function() {
      n3 && (n3.pause(), n3.autoplay = false);
    }, play: function() {
      if (n3) {
        n3.autoplay = true;
        const t5 = n3.play();
        t5 && t5.catch && "undefined" != typeof Promise && t5.catch((t6) => {
          "NotAllowedError" === t6.name && y3.trigger(g2.default.PLAYBACK_NOT_ALLOWED), r3.warn(`Caught pending play exception - continuing (${t6})`);
        });
      }
    }, removeChild: function(t5) {
      n3 && n3.removeChild(t5);
    }, removeEventListener: I3, reset: function() {
      clearTimeout(h3), y3.off(g2.default.PLAYBACK_PLAYING, S3, this), E3.length = 0, function() {
        try {
          l3 && n3 && (l3.unobserve(n3), l3.disconnect(), l3 = null);
        } catch (t5) {
        }
      }();
    }, setConfig: function(t5) {
      t5 && t5.settings && (c3 = t5.settings);
    }, setCurrentTime: function(t5, a3) {
      n3 && (d3 && d3.func && d3.event && I3(d3.event, d3.func), e3 = t5, d3 = D2(m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, () => {
        if (n3)
          if (n3.currentTime !== e3)
            try {
              e3 = a3 ? function(t6) {
                const e4 = A2();
                let n4 = t6, a4 = 9999999999;
                if (e4)
                  for (let r4 = 0; r4 < e4.length; r4++) {
                    const i4 = e4.start(r4), l4 = e4.end(r4), o3 = Math.abs(i4 - t6), s3 = Math.abs(l4 - t6);
                    if (t6 >= i4 && t6 <= l4)
                      return t6;
                    o3 < a4 && (a4 = o3, n4 = i4), s3 < a4 && (a4 = s3, n4 = l4);
                  }
                return n4;
              }(e3) : e3, isNaN(e3) || (n3.currentTime = e3), e3 = NaN;
            } catch (t6) {
              0 === n3.readyState && t6.code === t6.INVALID_STATE_ERR && (h3 = setTimeout(function() {
                n3.currentTime = e3, e3 = NaN;
              }, 400));
            }
          else
            e3 = NaN;
      }));
    }, setDisableRemotePlayback: function(t5) {
      n3 && (n3.disableRemotePlayback = t5);
    }, setElement: function(t5) {
      if (!(null == t5 || t5 && /^(VIDEO|AUDIO)$/i.test(t5.nodeName)))
        throw "element is not video or audio DOM type!";
      n3 = t5, function(t6) {
        try {
          if (!l3 || !t6)
            return;
          l3.observe(t6);
        } catch (t7) {
        }
      }(n3);
    }, setPlaybackRate: T3, setSource: function(t5) {
      n3 && (t5 ? n3.src = t5 : (n3.removeAttribute("src"), n3.load()));
    }, setStallState: function(t5, e4) {
      !function(t6, e5) {
        e5 ? function(t7) {
          if (null !== t7 && n3 && !n3.seeking && -1 === E3.indexOf(t7) && (E3.push(t7), c3.get().streaming.buffer.syntheticStallEvents.enabled && n3 && 1 === E3.length && (c3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState || k3() >= m2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA))) {
            i3 = n3.playbackRate, T3(0, true);
            const t8 = document.createEvent("Event");
            t8.initEvent("waiting", true, false), n3.dispatchEvent(t8);
          }
        }(t6) : v3(t6);
      }(t5, e4);
    }, setTTMLRenderingDiv: function(e4) {
      t4 = e4, t4.style.position = "absolute", t4.style.display = "flex", t4.style.overflow = "hidden", t4.style.pointerEvents = "none", t4.style.top = 0, t4.style.left = 0;
    }, setVttRenderingDiv: function(t5) {
      p3 = t5;
    }, waitForReadyState: D2 }, r3 = (0, o2.default)(b3).getInstance().getLogger(a2), c3 = (0, u2.default)(b3).getInstance(), e3 = NaN, function() {
      try {
        l3 = new ResizeObserver(() => {
          y3.trigger(g2.default.VIDEO_ELEMENT_RESIZED);
        });
      } catch (t5) {
      }
    }(), a2;
  }
  Ts.__dashjs_factory_name = "VideoModel";
  var _s = r2.default.getSingletonFactory(Ts), vs = n2(8986);
  function Ss() {
    const t4 = "You must first call initialize() and set a source before calling this method", e3 = "You must first call initialize() and set a valid source and view before calling this method", n3 = "You must first call attachView() to set the video element before calling this method", a2 = "You must first call attachSource() with a valid source before calling this method", i3 = "MediaPlayer not initialized!", s2 = this.context, d3 = (0, f2.default)(s2).getInstance();
    let c3 = (0, u2.default)(s2).getInstance();
    const p3 = (0, o2.default)(s2).getInstance({ settings: c3 });
    let b3, y3, E3, T3, _3, v3, S3, I3, k3, A2, R2, N2, C2, D2, x2, M2, P2, O2, z2, L2, F2, U2, j2, q2, B2, G2, H2, Y2, V2, K2, W2, $2, Q2, X2, Z2, J2, tt2, et2, nt2, at2, rt2;
    function it2() {
      _t2(null), yt2(null), T3 = null, x2 && (x2.reset(), x2 = null), M2 && (M2.reset(), M2 = null), F2 && F2.reset(), c3.reset(), O2 && (O2.reset(), O2 = null);
    }
    function lt2() {
      return !!E3 && !!tt2.getElement();
    }
    function ot2() {
      return (0, vs.getVersionString)();
    }
    function st2() {
      if (!S3)
        throw e3;
      return V2.isPaused();
    }
    function ut2() {
      if (!S3)
        throw e3;
      return V2.getIsDynamic();
    }
    function dt2(t5) {
      const e4 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
      let n4 = Q2.getCurrentDVRInfo(e4);
      return n4 ? ct2(n4.range.start + t5, n4) : 0;
    }
    function ct2(t5, e4) {
      let n4 = V2.getOriginalLiveDelay();
      return t5 > e4.range.end - n4 && (t5 = e4.range.end - n4), t5;
    }
    function ft2(t5 = "") {
      if (!S3)
        throw e3;
      let n4 = bt2().currentTime;
      return "" !== t5 && (n4 = G2.getTimeRelativeToStreamId(n4, t5)), n4;
    }
    function gt2(t5) {
      (0, zt.checkParameterType)(t5, "boolean"), I3 = t5;
    }
    function mt2() {
      F2.restoreDefaultUTCTimingSources();
    }
    function ht2() {
      return Q2;
    }
    function bt2() {
      if (!tt2.getElement())
        throw n3;
      return tt2.getElement();
    }
    function yt2(t5) {
      if (!_3)
        throw i3;
      tt2.setElement(t5), t5 && (kt2(), function() {
        if (M2 || "undefined" == typeof dashjs)
          return;
        let t6 = dashjs.MetricsReporting;
        if ("function" == typeof t6) {
          let e4 = t6(s2).create();
          M2 = e4.createMetricsReporting({ debug: p3, eventBus: d3, mediaElement: bt2(), adapter: z2, dashMetrics: Q2, mediaPlayerModel: L2, events: g2.default, constants: m2.default, metricsConstants: l2 });
        }
      }(), function() {
        if (P2 || "undefined" == typeof dashjs)
          return;
        let t6 = dashjs.MssHandler;
        "function" == typeof t6 && (Rt.extend(t6.errors), P2 = t6(s2).create({ eventBus: d3, mediaPlayerModel: L2, dashMetrics: Q2, manifestModel: X2, playbackController: V2, streamController: G2, protectionController: x2, baseURLController: j2, errHandler: U2, events: g2.default, constants: m2.default, debug: p3, initSegmentType: w2.HTTPRequest.INIT_SEGMENT_TYPE, BASE64: Tt, ISOBoxer: va, settings: c3 }));
      }(), G2 && G2.switchToVideoElement(k3)), S3 && (St2(), wt2()), Nt2(k3);
    }
    function Et2(e4) {
      if (!v3)
        throw t4;
      let n4 = G2.getActiveStreamInfo();
      return n4 ? D2.getTracksFor(e4, n4.id).filter((t5) => !x2 || x2.areKeyIdsUsable(t5.normalizedKeyIds)) : [];
    }
    function _t2(t5, e4 = NaN) {
      if (!_3)
        throw i3;
      "string" == typeof t5 && et2.initialize(t5), null == e4 && (e4 = NaN), isNaN(e4) || (e4 = Math.max(0, e4)), k3 = e4, E3 = t5, (v3 || S3) && (St2(), wt2()), lt2() && Nt2(k3);
    }
    function vt2() {
      if (!v3)
        throw t4;
      let e4 = G2.getActiveStreamInfo();
      return e4 ? G2.getStreamById(e4.id) : null;
    }
    function St2() {
      S3 = false, v3 = false, z2.reset(), G2.reset(), Y2.reset(), $2.reset(), V2.reset(), K2.reset(), W2.reset(), A2.reset(), R2.reset(), D2.reset(), at2.reset(), x2 && (c3.get().streaming.protection.keepProtectionMediaKeys ? x2.stop() : (x2.reset(), x2 = null, kt2())), H2.reset(), Z2.reset(), J2.reset();
    }
    function wt2() {
      F2.resetPlaybackSessionSpecificSettings();
    }
    function It2() {
      return Si(s2).create({ debug: p3, errHandler: U2, dashMetrics: Q2, mediaPlayerModel: L2, mssHandler: P2, settings: c3 });
    }
    function kt2() {
      if (x2)
        return x2;
      if ("undefined" == typeof dashjs)
        return null;
      let t5 = dashjs.Protection;
      if ("function" == typeof t5) {
        let e4 = t5(s2).create();
        return g2.default.extend(t5.events), h2.default.extend(t5.events, { publicOnly: true }), Rt.extend(t5.errors), x2 = e4.createProtectionSystem({ debug: p3, errHandler: U2, videoModel: tt2, customParametersModel: F2, capabilities: q2, eventBus: d3, events: g2.default, BASE64: Tt, constants: m2.default, cmcdModel: Z2, settings: c3 }), q2 || (q2 = (0, ka.default)(s2).getInstance()), q2.setProtectionController(x2), x2;
      }
      return null;
    }
    function At2() {
      if (!_3)
        throw i3;
      if (O2)
        return O2;
      if ("undefined" == typeof dashjs)
        return null;
      let t5 = dashjs.OfflineController;
      if ("function" == typeof t5) {
        g2.default.extend(t5.events), h2.default.extend(t5.events, { publicOnly: true }), Rt.extend(t5.errors);
        const e4 = It2(), n4 = Ni(s2).create();
        return n4.setConfig({ manifestModel: X2, adapter: z2, manifestLoader: e4, errHandler: U2, contentSteeringController: W2 }), O2 = t5(s2).create({ debug: p3, manifestUpdater: n4, baseURLController: j2, manifestLoader: e4, manifestModel: X2, mediaPlayerModel: L2, abrController: A2, playbackController: V2, adapter: z2, errHandler: U2, dashMetrics: Q2, timelineConverter: C2, segmentBaseController: at2, schemeLoaderFactory: N2, eventBus: d3, events: g2.default, errors: Rt, constants: m2.default, settings: c3, dashConstants: Vt.default, urlUtils: ce(s2).getInstance() }), O2;
      }
      return null;
    }
    function Nt2(t5 = NaN) {
      O2 && O2.resetRecords(), !v3 && E3 && (v3 = true, y3.info("Streaming Initialized"), function() {
        const t6 = It2();
        G2 || (G2 = yo(s2).getInstance()), H2 || (H2 = us(s2).create({ errHandler: U2, manifestModel: X2, adapter: z2, mediaController: D2, baseURLController: j2, videoModel: tt2, settings: c3 })), B2.setConfig({ capabilities: q2, customParametersModel: F2, adapter: z2, settings: c3, protectionController: x2, manifestModel: X2, errHandler: U2 }), G2.setConfig({ capabilities: q2, capabilitiesFilter: B2, manifestLoader: t6, manifestModel: X2, mediaPlayerModel: L2, customParametersModel: F2, protectionController: x2, textController: H2, adapter: z2, dashMetrics: Q2, errHandler: U2, timelineConverter: C2, videoModel: tt2, playbackController: V2, serviceDescriptionController: K2, contentSteeringController: W2, abrController: A2, throughputController: R2, mediaController: D2, settings: c3, baseURLController: j2, uriFragmentModel: et2, segmentBaseController: at2 }), Y2.setConfig({ settings: c3, playbackController: V2, streamController: G2, videoModel: tt2, timelineConverter: C2, adapter: z2 }), V2.setConfig({ streamController: G2, serviceDescriptionController: K2, dashMetrics: Q2, adapter: z2, videoModel: tt2, timelineConverter: C2, settings: c3 }), $2.setConfig({ streamController: G2, playbackController: V2, mediaPlayerModel: L2, videoModel: tt2, settings: c3 }), R2.setConfig({ settings: c3, playbackController: V2 }), A2.setConfig({ streamController: G2, capabilities: q2, domStorage: nt2, mediaPlayerModel: L2, customParametersModel: F2, throughputController: R2, cmsdModel: J2, dashMetrics: Q2, adapter: z2, videoModel: tt2, settings: c3 }), Z2.setConfig({ abrController: A2, dashMetrics: Q2, playbackController: V2, serviceDescriptionController: K2, throughputController: R2 }), rt2.setConfig({ serviceDescriptionController: K2 }), J2.setConfig({}), D2.initialize(), R2.initialize(), A2.initialize(), G2.initialize(I3, T3), H2.initialize(), Y2.initialize(), $2.initialize(), Z2.initialize(I3), J2.initialize(), W2.initialize(), at2.initialize();
      }(), "string" == typeof E3 ? G2.load(E3, t5) : G2.loadWithManifest(E3, t5)), !S3 && lt2() && (S3 = true, d3.trigger(h2.default.PLAYBACK_INITIALIZED), y3.info("Playback Initialized"));
    }
    return b3 = { addABRCustomRule: function(t5, e4, n4) {
      F2.addAbrCustomRule(t5, e4, n4);
    }, addExternalSubtitle: function(t5) {
      t5 instanceof $r.default || y3.error("Invalid external subtitle object. Must be an instance of dashjs.ExternalSubtitle"), F2.addExternalSubtitle(t5);
    }, addRequestInterceptor: function(t5) {
      F2.addRequestInterceptor(t5);
    }, addResponseInterceptor: function(t5) {
      F2.addResponseInterceptor(t5);
    }, addUTCTimingSource: function(t5, e4) {
      F2.addUTCTimingSource(t5, e4);
    }, attachProtectionController: function(t5) {
      x2 = t5;
    }, attachSource: _t2, attachTTMLRenderingDiv: function(t5) {
      if (!tt2.getElement())
        throw n3;
      tt2.setTTMLRenderingDiv(t5);
    }, attachView: yt2, attachVttRenderingDiv: function(t5) {
      if (!tt2.getElement())
        throw n3;
      tt2.setVttRenderingDiv(t5);
    }, clearDefaultUTCTimingSources: function() {
      F2.clearDefaultUTCTimingSources();
    }, convertToTimeCode: function(t5) {
      t5 = Math.max(t5, 0);
      let e4 = Math.floor(t5 / 3600), n4 = Math.floor(t5 % 3600 / 60), a3 = Math.floor(t5 % 3600 % 60);
      return (0 === e4 ? "" : e4 < 10 ? "0" + e4.toString() + ":" : e4.toString() + ":") + (n4 < 10 ? "0" + n4.toString() : n4.toString()) + ":" + (a3 < 10 ? "0" + a3.toString() : a3.toString());
    }, destroy: function() {
      it2(), r2.default.deleteSingletonInstances(s2);
    }, duration: function() {
      if (!S3)
        throw e3;
      let t5 = bt2().duration;
      if (V2.getIsDynamic()) {
        const e4 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
        let n4 = Q2.getCurrentDVRInfo(e4);
        t5 = n4 ? n4.range.end - n4.range.start : 0;
      }
      return t5;
    }, enableForcedTextStreaming: function(t5) {
      return !(!G2.getActiveStreamInfo() || !H2) && H2.enableForcedTextStreaming(t5);
    }, enableText: function(t5) {
      const e4 = G2.getActiveStreamInfo();
      return !(!e4 || !H2) && H2.enableText(e4.id, t5);
    }, extend: function(t5, e4, n4) {
      r2.default.extend(t5, e4, n4, s2);
    }, formatUTC: function(t5, e4, n4, a3 = false) {
      const r3 = new Date(1e3 * t5), i4 = r3.toLocaleDateString(e4), l3 = r3.toLocaleTimeString(e4, { hour12: n4 });
      return a3 ? l3 + " " + i4 : l3;
    }, getABRCustomRules: function() {
      return F2.getAbrCustomRules();
    }, getActiveStream: vt2, getAutoPlay: function() {
      return I3;
    }, getAvailableBaseUrls: function() {
      const t5 = X2.getValue();
      return t5 ? j2.getBaseUrls(t5) : [];
    }, getAvailableLocations: function() {
      const t5 = X2.getValue();
      if (!t5)
        return [];
      const e4 = z2.getLocation(t5), n4 = W2.getSynthesizedLocationElements(e4);
      return e4.concat(n4);
    }, getAverageLatency: function(t5 = m2.default.VIDEO, e4 = null, n4 = NaN) {
      return R2 ? R2.getAverageLatency(t5, e4, n4) : 0;
    }, getAverageThroughput: function(t5 = m2.default.VIDEO, e4 = null, n4 = NaN) {
      return R2 ? R2.getAverageThroughput(t5, e4, n4) : 0;
    }, getBufferLength: function(t5) {
      const e4 = [m2.default.VIDEO, m2.default.AUDIO, m2.default.TEXT];
      if (t5) {
        if (-1 !== e4.indexOf(t5)) {
          return ht2().getCurrentBufferLevel(t5) || NaN;
        }
        return y3.warn("getBufferLength requested for invalid type"), NaN;
      }
      {
        const t6 = e4.map((t7) => Et2(t7).length > 0 ? ht2().getCurrentBufferLevel(t7) : Number.MAX_VALUE).reduce((t7, e5) => Math.min(t7, e5));
        return t6 === Number.MAX_VALUE ? NaN : t6;
      }
    }, getCurrentLiveLatency: function() {
      if (!_3)
        throw i3;
      return S3 ? V2.getCurrentLiveLatency() : NaN;
    }, getCurrentRepresentationForType: function(e4) {
      if (!v3)
        throw t4;
      if (e4 !== m2.default.IMAGE && e4 !== m2.default.VIDEO && e4 !== m2.default.AUDIO)
        return null;
      const n4 = vt2();
      if (!n4)
        return null;
      if (e4 === m2.default.IMAGE) {
        const t5 = n4.getThumbnailController();
        return t5 ? t5.getCurrentTrack() : -1;
      }
      return n4.getCurrentRepresentationForType(e4);
    }, getCurrentSteeringResponseData: function() {
      if (W2)
        return W2.getCurrentSteeringResponseData();
    }, getCurrentTextTrackIndex: function() {
      let t5 = NaN;
      const e4 = G2.getActiveStreamInfo();
      if (e4 && H2)
        return t5 = H2.getCurrentTrackIdx(e4.id), t5;
    }, getCurrentTrackFor: function(e4) {
      if (!v3)
        throw t4;
      let n4 = G2.getActiveStreamInfo();
      return n4 ? D2.getCurrentTrackFor(e4, n4.id) : null;
    }, getDashAdapter: function() {
      return z2;
    }, getDashMetrics: ht2, getDebug: function() {
      return p3;
    }, getDvrSeekOffset: dt2, getDvrWindow: function() {
      if (!S3)
        throw e3;
      const t5 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
      let n4 = Q2.getCurrentDVRInfo(t5);
      if (!n4)
        return {};
      let a3 = 0;
      const r3 = V2.getIsDynamic();
      return r3 && (a3 = n4.manifestInfo.availableFrom.getTime() / 1e3), { start: n4.range.start, end: n4.range.end, startAsUtc: r3 ? a3 + n4.range.start : NaN, endAsUtc: r3 ? a3 + n4.range.end : NaN, size: n4.range.end - n4.range.start };
    }, getExternalSubtitles: function() {
      F2.getExternalSubtitles();
    }, getInitialMediaSettingsFor: function(t5) {
      if (!_3)
        throw i3;
      return D2.getInitialSettings(t5);
    }, getLowLatencyModeEnabled: function() {
      if (!S3)
        throw e3;
      return V2.getLowLatencyModeEnabled();
    }, getManifest: function() {
      return X2.getValue();
    }, getOfflineController: function() {
      return At2();
    }, getPlaybackRate: function() {
      return bt2().playbackRate;
    }, getProtectionController: function() {
      return kt2();
    }, getRawThroughputData: function(t5 = m2.default.VIDEO) {
      return R2 ? R2.getRawThroughputData(t5) : [];
    }, getRepresentationsByType: function(e4, n4 = null) {
      if (!v3)
        throw t4;
      let a3 = n4 ? G2.getStreamById(n4) : vt2();
      return a3 ? a3.getRepresentationsByType(e4) : [];
    }, getSafeAverageThroughput: function(t5 = m2.default.VIDEO, e4 = null, n4 = NaN) {
      return R2 ? R2.getSafeAverageThroughput(t5, e4, n4) : 0;
    }, getSettings: function() {
      return c3.get();
    }, getSource: function() {
      if (!E3)
        throw a2;
      return E3;
    }, getStreamsFromManifest: function(e4) {
      if (!v3)
        throw t4;
      return z2.getStreamsInfo(e4);
    }, getTTMLRenderingDiv: function() {
      return tt2 ? tt2.getTTMLRenderingDiv() : null;
    }, getTargetLiveDelay: function() {
      if (!S3)
        throw e3;
      return V2.getOriginalLiveDelay();
    }, getTracksFor: Et2, getTracksForTypeFromManifest: function(e4, n4, a3) {
      if (!v3)
        throw t4;
      return (a3 = a3 || z2.getStreamsInfo(n4, 1)[0]) ? z2.getAllMediaInfoForType(a3, e4, n4) : [];
    }, getVersion: ot2, getVideoElement: bt2, getVolume: function() {
      return bt2().volume;
    }, getXHRWithCredentialsForType: function(t5) {
      return F2.getXHRWithCredentialsForType(t5);
    }, initialize: function(t5, e4, n4, a3 = NaN) {
      q2 || (q2 = (0, ka.default)(s2).getInstance(), q2.setConfig({ settings: c3, protectionController: x2 })), U2 || (U2 = Wr(s2).getInstance()), q2.supportsMediaSource() ? (_3 || (_3 = true, C2 = hs(s2).getInstance(), R2 || (R2 = gs(s2).getInstance()), A2 || (A2 = pt(s2).getInstance()), N2 || (N2 = ia(s2).getInstance()), V2 || (V2 = zi(s2).getInstance()), D2 || (D2 = xi(s2).getInstance()), G2 || (G2 = yo(s2).getInstance()), Y2 || (Y2 = Xr(s2).getInstance()), $2 || ($2 = Pa(s2).getInstance()), K2 || (K2 = Xi(s2).getInstance()), W2 || (W2 = ca(s2).getInstance()), B2 || (B2 = xa(s2).getInstance()), z2 = Rr(s2).getInstance(), X2 = Ii(s2).getInstance(), Z2 = zn(s2).getInstance(), J2 = Vn(s2).getInstance(), rt2 = Xn(s2).getInstance(), Q2 = Vr(s2).getInstance({ settings: c3 }), nt2 = Ba(s2).getInstance({ settings: c3 }), z2.setConfig({ constants: m2.default, cea608parser: new qo(), errHandler: U2, BASE64: Tt }), j2 || (j2 = ba(s2).create()), j2.setConfig({ adapter: z2, contentSteeringController: W2 }), K2.setConfig({ adapter: z2 }), at2 || (at2 = Vi(s2).getInstance({ dashMetrics: Q2, mediaPlayerModel: L2, errHandler: U2, baseURLController: j2, events: g2.default, eventBus: d3, debug: p3, boxParser: Ia(s2).getInstance(), errors: Rt })), D2.setConfig({ domStorage: nt2, settings: c3, mediaPlayerModel: L2, customParametersModel: F2, videoModel: tt2 }), L2.setConfig({ playbackController: V2, serviceDescriptionController: K2 }), W2.setConfig({ adapter: z2, errHandler: U2, dashMetrics: Q2, mediaPlayerModel: L2, manifestModel: X2, serviceDescriptionController: K2, throughputController: R2, eventBus: d3 }), mt2(), gt2(void 0 === n4 || n4), At2()), t5 && yt2(t5), e4 && _t2(e4, a3), y3.info("[dash.js " + ot2() + "] MediaPlayer has been initialized")) : U2.error(new Ot.default(Rt.CAPABILITY_MEDIASOURCE_ERROR_CODE, Rt.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE));
    }, isDynamic: ut2, isMuted: function() {
      return bt2().muted;
    }, isPaused: st2, isReady: lt2, isSeeking: function() {
      if (!S3)
        throw e3;
      return V2.isSeeking();
    }, isTextEnabled: function() {
      const t5 = G2.getActiveStreamInfo();
      return !(!t5 || !H2) && H2.isTextEnabled(t5);
    }, off: function(t5, e4, n4) {
      d3.off(t5, e4, n4);
    }, on: function(t5, e4, n4, a3) {
      d3.on(t5, e4, n4, a3);
    }, pause: function() {
      if (!S3)
        throw e3;
      V2.pause();
    }, play: function() {
      if (!S3)
        throw e3;
      (!I3 || st2() && S3) && V2.play(true);
    }, preload: function() {
      if (!tt2.getElement() && !v3) {
        if (!E3)
          throw a2;
        Nt2(k3);
      }
    }, provideThumbnail: function(t5, e4) {
      if ("function" != typeof e4)
        return;
      if (t5 < 0)
        return void e4(null);
      const n4 = V2.getIsDynamic() ? dt2(t5) : t5, a3 = G2.getStreamForTime(n4);
      if (null === a3)
        return void e4(null);
      const r3 = a3.getThumbnailController();
      if (r3)
        return r3.provide(n4, e4);
      e4(null);
    }, refreshManifest: function(t5) {
      if (!_3)
        throw i3;
      if (!lt2())
        return t5(null, a2);
      let e4 = this;
      if ("function" == typeof t5) {
        const n4 = function(a3) {
          d3.off(g2.default.INTERNAL_MANIFEST_LOADED, n4, e4), a3.error ? t5(null, a3.error) : t5(a3.manifest);
        };
        d3.on(g2.default.INTERNAL_MANIFEST_LOADED, n4, e4);
      }
      G2.refreshManifest();
    }, registerCustomCapabilitiesFilter: function(t5) {
      F2.registerCustomCapabilitiesFilter(t5);
    }, registerLicenseRequestFilter: function(t5) {
      F2.registerLicenseRequestFilter(t5);
    }, registerLicenseResponseFilter: function(t5) {
      F2.registerLicenseResponseFilter(t5);
    }, removeABRCustomRule: function(t5) {
      F2.removeAbrCustomRule(t5);
    }, removeAllABRCustomRule: function() {
      F2.removeAllAbrCustomRule();
    }, removeExternalSubtitleById: function(t5) {
      F2.removeExternalSubtitleById(t5);
    }, removeExternalSubtitleByUrl: function(t5) {
      F2.removeExternalSubtitleByUrl(t5);
    }, removeRequestInterceptor: function(t5) {
      F2.removeRequestInterceptor(t5);
    }, removeResponseInterceptor: function(t5) {
      F2.removeResponseInterceptor(t5);
    }, removeUTCTimingSource: function(t5, e4) {
      F2.removeUTCTimingSource(t5, e4);
    }, reset: it2, resetCustomInitialTrackSelectionFunction: function() {
      F2.resetCustomInitialTrackSelectionFunction(null);
    }, resetSettings: function() {
      c3.reset();
    }, restoreDefaultUTCTimingSources: mt2, retrieveManifest: function(t5, e4) {
      let n4 = It2(), a3 = this;
      const r3 = function(t6) {
        t6.error ? e4(null, t6.error) : e4(t6.manifest), d3.off(g2.default.INTERNAL_MANIFEST_LOADED, r3, a3), n4.reset();
      };
      d3.on(g2.default.INTERNAL_MANIFEST_LOADED, r3, a3), et2.initialize(t5), n4.load(t5);
    }, seek: function(t5) {
      if (!S3)
        throw e3;
      if ((0, zt.checkParameterType)(t5, "number"), isNaN(t5))
        throw m2.default.BAD_ARGUMENT_ERROR;
      t5 < 0 && (t5 = 0);
      let n4 = V2.getIsDynamic() ? dt2(t5) : t5;
      const a3 = bt2();
      !V2.getIsDynamic() && a3.duration && (n4 = Math.min(a3.duration, n4)), V2.seek(n4, false, false, true);
    }, seekToOriginalLive: function() {
      S3 && ut2() && V2.seekToOriginalLive();
    }, seekToPresentationTime: function(t5) {
      if (!S3)
        throw e3;
      if ((0, zt.checkParameterType)(t5, "number"), isNaN(t5))
        throw m2.default.BAD_ARGUMENT_ERROR;
      t5 < 0 && (t5 = 0);
      const n4 = bt2();
      if (!V2.getIsDynamic() && n4.duration && (t5 = Math.min(n4.duration, t5)), V2.getIsDynamic()) {
        const e4 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
        let n5 = Q2.getCurrentDVRInfo(e4);
        if (!n5)
          return;
        (t5 = ct2(t5, n5)) < n5.range.start && (t5 = n5.range.start);
      }
      V2.seek(t5, false, false, true);
    }, setAutoPlay: gt2, setConfig: function(t5) {
      t5 && (t5.capabilities && (q2 = t5.capabilities), t5.capabilitiesFilter && (B2 = t5.capabilitiesFilter), t5.streamController && (G2 = t5.streamController), t5.textController && (H2 = t5.textController), t5.gapController && (Y2 = t5.gapController), t5.throughputController && (R2 = t5.throughputController), t5.playbackController && (V2 = t5.playbackController), t5.serviceDescriptionController && (K2 = t5.serviceDescriptionController), t5.contentSteeringController && (W2 = t5.contentSteeringController), t5.clientDataReportingController && (rt2 = t5.clientDataReportingController), t5.catchupController && ($2 = t5.catchupController), t5.mediaPlayerModel && (L2 = t5.mediaPlayerModel), t5.customParametersModel && (F2 = t5.customParametersModel), t5.abrController && (A2 = t5.abrController), t5.schemeLoaderFactory && (N2 = t5.schemeLoaderFactory), t5.mediaController && (D2 = t5.mediaController), t5.settings && (c3 = t5.settings), t5.dashMetrics && (Q2 = t5.dashMetrics));
    }, setCurrentTrack: function(e4, n4 = false) {
      if (!v3)
        throw t4;
      !x2 || x2.areKeyIdsUsable(e4.normalizedKeyIds) ? D2.setTrack(e4, { noSettingsSave: n4 }) : y3.error(`Can not switch to track with index ${e4.index} because key is not usable`);
    }, setCustomInitialTrackSelectionFunction: function(t5) {
      F2.setCustomInitialTrackSelectionFunction(t5);
    }, setInitialMediaSettingsFor: function(t5, e4) {
      if (!_3)
        throw i3;
      let n4 = function(t6) {
        const e5 = c3.get().streaming.defaultSchemeIdUri;
        let n5 = {};
        function a3(t7, e6, n6) {
          let a4 = {};
          if (e6) {
            if (e6 instanceof Array)
              throw "Array type not supported for settings!";
            return e6 instanceof Object ? (a4.schemeIdUri = e6.schemeIdUri ? e6.schemeIdUri : "", a4.value = e6.value ? e6.value : "") : (a4.schemeIdUri = n6, a4.value = e6, y3.warn("No schemeIdUri provided for " + t7 + ', using default "' + n6 + '"')), a4;
          }
          return null;
        }
        return void 0 !== t6.id && (n5.id = t6.id), void 0 !== t6.lang && (n5.lang = t6.lang), isNaN(t6.index) || (n5.index = t6.index), void 0 !== t6.viewpoint && (n5.viewpoint = a3("viewpoint", t6.viewpoint, e5.viewpoint)), void 0 !== t6.audioChannelConfiguration && (n5.audioChannelConfiguration = a3("audioChannelConfiguration", t6.audioChannelConfiguration, e5.audioChannelConfiguration)), void 0 !== t6.role && null !== t6.role && (n5.role = a3("role", t6.role, e5.role), n5.role.schemeIdUri === m2.default.DASH_ROLE_SCHEME_ID && "Main" === n5.role.value && (n5.role.value = Vt.default.MAIN)), void 0 !== t6.accessibility && (n5.accessibility = a3("accessibility", t6.accessibility, e5.accessibility)), n5;
      }(e4);
      D2.setInitialSettings(t5, n4);
    }, setMute: function(t5) {
      (0, zt.checkParameterType)(t5, "boolean"), bt2().muted = t5;
    }, setPlaybackRate: function(t5) {
      bt2().playbackRate = t5;
    }, setProtectionData: function(t5) {
      T3 = t5, G2 && G2.setProtectionData(T3);
    }, setRepresentationForTypeById: function(e4, n4, a3 = false) {
      if (e4 !== m2.default.IMAGE && e4 !== m2.default.VIDEO && e4 !== m2.default.AUDIO)
        return;
      if (!v3)
        throw t4;
      const r3 = vt2();
      if (r3)
        if (e4 === m2.default.IMAGE) {
          const t5 = r3.getThumbnailController();
          t5 && t5.setTrackById(n4);
        } else {
          const t5 = r3.getRepresentationForTypeById(e4, n4);
          t5 && A2.manuallySetPlaybackQuality(e4, G2.getActiveStreamInfo(), t5, { forceReplace: a3 });
        }
    }, setRepresentationForTypeByIndex: function(e4, n4, a3 = false) {
      if (e4 !== m2.default.IMAGE && e4 !== m2.default.VIDEO && e4 !== m2.default.AUDIO)
        return;
      if (!v3)
        throw t4;
      const r3 = vt2();
      if (r3)
        if (e4 === m2.default.IMAGE) {
          const t5 = r3.getThumbnailController();
          t5 && t5.setTrackByIndex(n4);
        } else {
          const t5 = r3.getRepresentationForTypeByIndex(e4, n4);
          t5 && A2.manuallySetPlaybackQuality(e4, G2.getActiveStreamInfo(), t5, { forceReplace: a3 });
        }
    }, setTextTrack: function(t5) {
      if (!S3)
        throw e3;
      const n4 = G2.getActiveStreamInfo();
      n4 && H2 && H2.setTextTrack(n4.id, t5);
    }, setVolume: function(t5) {
      if ("number" != typeof t5 || isNaN(t5) || t5 < 0 || t5 > 1)
        throw m2.default.BAD_ARGUMENT_ERROR;
      bt2().volume = t5;
    }, setXHRWithCredentialsForType: function(t5, e4) {
      F2.setXHRWithCredentialsForType(t5, e4);
    }, time: ft2, timeAsUTC: function() {
      if (!S3)
        throw e3;
      if (!V2.getIsDynamic() || ft2() < 0)
        return NaN;
      const t5 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
      let n4, a3, r3 = Q2.getCurrentDVRInfo(t5);
      return r3 ? (n4 = r3.manifestInfo.availableFrom.getTime() / 1e3, a3 = n4 + ft2(), a3) : 0;
    }, timeInDvrWindow: function() {
      if (!S3)
        throw e3;
      if (!V2.getIsDynamic())
        return ft2();
      let t5 = bt2().currentTime;
      const n4 = G2 && G2.hasVideoTrack() ? m2.default.VIDEO : m2.default.AUDIO;
      let a3 = Q2.getCurrentDVRInfo(n4);
      return t5 = null === a3 || 0 === t5 ? 0 : Math.max(0, t5 - a3.range.start), t5;
    }, trigger: function(t5, e4, n4) {
      d3.trigger(t5, e4, n4);
    }, triggerSteeringRequest: function() {
      if (W2)
        return W2.loadSteeringData();
    }, unregisterCustomCapabilitiesFilter: function(t5) {
      F2.unregisterCustomCapabilitiesFilter(t5);
    }, unregisterLicenseRequestFilter: function(t5) {
      F2.unregisterLicenseRequestFilter(t5);
    }, unregisterLicenseResponseFilter: function(t5) {
      F2.unregisterLicenseResponseFilter(t5);
    }, updateSettings: function(t5) {
      c3.update(t5);
    }, updateSource: function(t5) {
      E3 = t5, G2.load(E3);
    } }, y3 = p3.getLogger(b3), _3 = false, S3 = false, v3 = false, I3 = true, k3 = NaN, x2 = null, O2 = null, T3 = null, z2 = null, at2 = null, g2.default.extend(h2.default), L2 = Pi(s2).getInstance(), F2 = (0, Kn.default)(s2).getInstance(), tt2 = _s(s2).getInstance(), et2 = ys(s2).getInstance(), b3;
  }
  Ss.__dashjs_factory_name = "MediaPlayer";
  const ws = r2.default.getClassFactory(Ss);
  ws.events = h2.default, ws.errors = Rt, r2.default.updateClassFactory(Ss.__dashjs_factory_name, ws);
  var Is = ws;
}, 1191: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.AST_IN_FUTURE = "astInFuture", this.BASE_URLS_UPDATED = "baseUrlsUpdated", this.BUFFER_EMPTY = "bufferStalled", this.BUFFER_LOADED = "bufferLoaded", this.BUFFER_LEVEL_STATE_CHANGED = "bufferStateChanged", this.BUFFER_LEVEL_UPDATED = "bufferLevelUpdated", this.DVB_FONT_DOWNLOAD_ADDED = "dvbFontDownloadAdded", this.DVB_FONT_DOWNLOAD_COMPLETE = "dvbFontDownloadComplete", this.DVB_FONT_DOWNLOAD_FAILED = "dvbFontDownloadFailed", this.DYNAMIC_TO_STATIC = "dynamicToStatic", this.ERROR = "error", this.FRAGMENT_LOADING_COMPLETED = "fragmentLoadingCompleted", this.FRAGMENT_LOADING_PROGRESS = "fragmentLoadingProgress", this.FRAGMENT_LOADING_STARTED = "fragmentLoadingStarted", this.FRAGMENT_LOADING_ABANDONED = "fragmentLoadingAbandoned", this.LOG = "log", this.MANIFEST_LOADING_STARTED = "manifestLoadingStarted", this.MANIFEST_LOADING_FINISHED = "manifestLoadingFinished", this.MANIFEST_LOADED = "manifestLoaded", this.METRICS_CHANGED = "metricsChanged", this.METRIC_CHANGED = "metricChanged", this.METRIC_ADDED = "metricAdded", this.METRIC_UPDATED = "metricUpdated", this.PERIOD_SWITCH_STARTED = "periodSwitchStarted", this.PERIOD_SWITCH_COMPLETED = "periodSwitchCompleted", this.QUALITY_CHANGE_REQUESTED = "qualityChangeRequested", this.QUALITY_CHANGE_RENDERED = "qualityChangeRendered", this.NEW_TRACK_SELECTED = "newTrackSelected", this.TRACK_CHANGE_RENDERED = "trackChangeRendered", this.STREAM_INITIALIZING = "streamInitializing", this.STREAM_UPDATED = "streamUpdated", this.STREAM_ACTIVATED = "streamActivated", this.STREAM_DEACTIVATED = "streamDeactivated", this.STREAM_INITIALIZED = "streamInitialized", this.STREAM_TEARDOWN_COMPLETE = "streamTeardownComplete", this.TEXT_TRACKS_ADDED = "allTextTracksAdded", this.TEXT_TRACK_ADDED = "textTrackAdded", this.CUE_ENTER = "cueEnter", this.CUE_EXIT = "cueExit", this.THROUGHPUT_MEASUREMENT_STORED = "throughputMeasurementStored", this.TTML_PARSED = "ttmlParsed", this.TTML_TO_PARSE = "ttmlToParse", this.CAPTION_RENDERED = "captionRendered", this.CAPTION_CONTAINER_RESIZE = "captionContainerResize", this.CAN_PLAY = "canPlay", this.CAN_PLAY_THROUGH = "canPlayThrough", this.PLAYBACK_ENDED = "playbackEnded", this.PLAYBACK_ERROR = "playbackError", this.PLAYBACK_INITIALIZED = "playbackInitialized", this.PLAYBACK_NOT_ALLOWED = "playbackNotAllowed", this.PLAYBACK_METADATA_LOADED = "playbackMetaDataLoaded", this.PLAYBACK_LOADED_DATA = "playbackLoadedData", this.PLAYBACK_PAUSED = "playbackPaused", this.PLAYBACK_PLAYING = "playbackPlaying", this.PLAYBACK_PROGRESS = "playbackProgress", this.PLAYBACK_RATE_CHANGED = "playbackRateChanged", this.PLAYBACK_SEEKED = "playbackSeeked", this.PLAYBACK_SEEKING = "playbackSeeking", this.PLAYBACK_STALLED = "playbackStalled", this.PLAYBACK_STARTED = "playbackStarted", this.PLAYBACK_TIME_UPDATED = "playbackTimeUpdated", this.PLAYBACK_VOLUME_CHANGED = "playbackVolumeChanged", this.PLAYBACK_WAITING = "playbackWaiting", this.MANIFEST_VALIDITY_CHANGED = "manifestValidityChanged", this.EVENT_MODE_ON_START = "eventModeOnStart", this.EVENT_MODE_ON_RECEIVE = "eventModeOnReceive", this.CONFORMANCE_VIOLATION = "conformanceViolation", this.REPRESENTATION_SWITCH = "representationSwitch", this.ADAPTATION_SET_REMOVED_NO_CAPABILITIES = "adaptationSetRemovedNoCapabilities", this.CONTENT_STEERING_REQUEST_COMPLETED = "contentSteeringRequestCompleted", this.INBAND_PRFT = "inbandPrft", this.MANAGED_MEDIA_SOURCE_START_STREAMING = "managedMediaSourceStartStreaming", this.MANAGED_MEDIA_SOURCE_END_STREAMING = "managedMediaSourceEndStreaming";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 5212: function(t3, e2, n2) {
  n2.r(e2), e2.default = { STREAM: "stream", VIDEO: "video", ENHANCEMENT: "enhancement", AUDIO: "audio", TEXT: "text", MUXED: "muxed", IMAGE: "image", STPP: "stpp", TTML: "ttml", VTT: "vtt", WVTT: "wvtt", CONTENT_STEERING: "contentSteering", LIVE_CATCHUP_MODE_DEFAULT: "liveCatchupModeDefault", LIVE_CATCHUP_MODE_LOLP: "liveCatchupModeLoLP", MOVING_AVERAGE_SLIDING_WINDOW: "slidingWindow", MOVING_AVERAGE_EWMA: "ewma", BAD_ARGUMENT_ERROR: "Invalid Arguments", MISSING_CONFIG_ERROR: "Missing config parameter(s)", TRACK_SWITCH_MODE_ALWAYS_REPLACE: "alwaysReplace", TRACK_SWITCH_MODE_NEVER_REPLACE: "neverReplace", TRACK_SELECTION_MODE_FIRST_TRACK: "firstTrack", TRACK_SELECTION_MODE_HIGHEST_BITRATE: "highestBitrate", TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY: "highestEfficiency", TRACK_SELECTION_MODE_LOWEST_STARTUP_DELAY: "lowestStartupDelay", TRACK_SELECTION_MODE_WIDEST_RANGE: "widestRange", CMCD_QUERY_KEY: "CMCD", CMCD_MODE_QUERY: "query", CMCD_MODE_HEADER: "header", CMCD_AVAILABLE_KEYS: ["br", "d", "ot", "tb", "bl", "dl", "mtp", "nor", "nrr", "su", "bs", "rtp", "cid", "pr", "sf", "sid", "st", "v"], CMCD_V2_AVAILABLE_KEYS: ["msd", "ltc"], CMCD_AVAILABLE_REQUESTS: ["segment", "mpd", "xlink", "steering", "other"], INITIALIZE: "initialize", TEXT_SHOWING: "showing", TEXT_HIDDEN: "hidden", TEXT_DISABLED: "disabled", ACCESSIBILITY_CEA608_SCHEME: "urn:scte:dash:cc:cea-608:2015", CC1: "CC1", CC3: "CC3", UTF8: "utf-8", SCHEME_ID_URI: "schemeIdUri", START_TIME: "starttime", SERVICE_DESCRIPTION_DVB_LL_SCHEME: "urn:dvb:dash:lowlatency:scope:2019", SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME: "urn:dvb:dash:lowlatency:critical:2019", CTA_5004_2023_SCHEME: "urn:mpeg:dash:cta-5004:2023", THUMBNAILS_SCHEME_ID_URIS: ["http://dashif.org/thumbnail_tile", "http://dashif.org/guidelines/thumbnail_tile"], FONT_DOWNLOAD_DVB_SCHEME: "urn:dvb:dash:fontdownload:2014", COLOUR_PRIMARIES_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:ColourPrimaries", URL_QUERY_INFO_SCHEME: "urn:mpeg:dash:urlparam:2014", EXT_URL_QUERY_INFO_SCHEME: "urn:mpeg:dash:urlparam:2016", MATRIX_COEFFICIENTS_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:MatrixCoefficients", TRANSFER_CHARACTERISTICS_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:TransferCharacteristics", SEGMENT_SEQUENCE_REPRESENTATION_SCHEME_ID_URI: "urn:mpeg:dash:ssr:2023", HDR_METADATA_FORMAT_SCHEME_ID_URI: "urn:dvb:dash:hdr-dmi", HDR_METADATA_FORMAT_VALUES: { ST2094_10: "ST2094-10", SL_HDR2: "SL-HDR2", ST2094_40: "ST2094-40" }, MEDIA_CAPABILITIES_API: { COLORGAMUT: { SRGB: "srgb", P3: "p3", REC2020: "rec2020" }, TRANSFERFUNCTION: { SRGB: "srgb", PQ: "pq", HLG: "hlg" }, HDR_METADATATYPE: { SMPTE_ST_2094_10: "smpteSt2094-10", SLHDR2: "slhdr2", SMPTE_ST_2094_40: "smpteSt2094-40" } }, XML: "XML", ARRAY_BUFFER: "ArrayBuffer", DVB_REPORTING_URL: "dvb:reportingUrl", DVB_PROBABILITY: "dvb:probability", OFF_MIMETYPE: "application/font-sfnt", WOFF_MIMETYPE: "application/font-woff", VIDEO_ELEMENT_READY_STATES: { HAVE_NOTHING: 0, HAVE_METADATA: 1, HAVE_CURRENT_DATA: 2, HAVE_FUTURE_DATA: 3, HAVE_ENOUGH_DATA: 4 }, FILE_LOADER_TYPES: { FETCH: "fetch_loader", XHR: "xhr_loader" }, THROUGHPUT_TYPES: { LATENCY: "throughput_type_latency", BANDWIDTH: "throughput_type_bandwidth" }, THROUGHPUT_CALCULATION_MODES: { EWMA: "throughputCalculationModeEwma", ZLEMA: "throughputCalculationModeZlema", ARITHMETIC_MEAN: "throughputCalculationModeArithmeticMean", BYTE_SIZE_WEIGHTED_ARITHMETIC_MEAN: "throughputCalculationModeByteSizeWeightedArithmeticMean", DATE_WEIGHTED_ARITHMETIC_MEAN: "throughputCalculationModeDateWeightedArithmeticMean", HARMONIC_MEAN: "throughputCalculationModeHarmonicMean", BYTE_SIZE_WEIGHTED_HARMONIC_MEAN: "throughputCalculationModeByteSizeWeightedHarmonicMean", DATE_WEIGHTED_HARMONIC_MEAN: "throughputCalculationModeDateWeightedHarmonicMean" }, LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE: { MOOF_PARSING: "lowLatencyDownloadTimeCalculationModeMoofParsing", DOWNLOADED_DATA: "lowLatencyDownloadTimeCalculationModeDownloadedData", AAST: "lowLatencyDownloadTimeCalculationModeAast" }, RULES_TYPES: { QUALITY_SWITCH_RULES: "qualitySwitchRules", ABANDON_FRAGMENT_RULES: "abandonFragmentRules" }, QUALITY_SWITCH_RULES: { BOLA_RULE: "BolaRule", THROUGHPUT_RULE: "ThroughputRule", INSUFFICIENT_BUFFER_RULE: "InsufficientBufferRule", SWITCH_HISTORY_RULE: "SwitchHistoryRule", DROPPED_FRAMES_RULE: "DroppedFramesRule", LEARN_TO_ADAPT_RULE: "L2ARule", LOL_PLUS_RULE: "LoLPRule" }, ABANDON_FRAGMENT_RULES: { ABANDON_REQUEST_RULE: "AbandonRequestsRule" }, ID3_SCHEME_ID_URI: "https://aomedia.org/emsg/ID3", COMMON_ACCESS_TOKEN_HEADER: "common-access-token", DASH_ROLE_SCHEME_ID: "urn:mpeg:dash:role:2011", CODEC_FAMILIES: { MP3: "mp3", AAC: "aac", AC3: "ac3", EC3: "ec3", DTSX: "dtsx", DTSC: "dtsc", AVC: "avc", HEVC: "hevc" } };
}, 2861: function(t3, e2, n2) {
  n2.r(e2), e2.default = { CLEARKEY_KEYSTEM_STRING: "org.w3.clearkey", WIDEVINE_KEYSTEM_STRING: "com.widevine.alpha", PLAYREADY_KEYSTEM_STRING: "com.microsoft.playready", PLAYREADY_RECOMMENDATION_KEYSTEM_STRING: "com.microsoft.playready.recommendation", WIDEVINE_UUID: "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed", PLAYREADY_UUID: "9a04f079-9840-4286-ab92-e65be0885f95", CLEARKEY_UUID: "e2719d58-a985-b3c9-781a-b030af78d30e", W3C_CLEARKEY_UUID: "1077efec-c0b2-4d02-ace3-3c1e52e2fb4b", INITIALIZATION_DATA_TYPE_CENC: "cenc", INITIALIZATION_DATA_TYPE_KEYIDS: "keyids", INITIALIZATION_DATA_TYPE_WEBM: "webm", ENCRYPTION_SCHEME_CENC: "cenc", ENCRYPTION_SCHEME_CBCS: "cbcs", MEDIA_KEY_MESSAGE_TYPES: { LICENSE_REQUEST: "license-request", LICENSE_RENEWAL: "license-renewal", LICENSE_RELEASE: "license-release", INDIVIDUALIZATION_REQUEST: "individualization-request" }, ROBUSTNESS_STRINGS: { WIDEVINE: { SW_SECURE_CRYPTO: "SW_SECURE_CRYPTO", SW_SECURE_DECODE: "SW_SECURE_DECODE", HW_SECURE_CRYPTO: "HW_SECURE_CRYPTO", HW_SECURE_DECODE: "HW_SECURE_DECODE", HW_SECURE_ALL: "HW_SECURE_ALL" } }, MEDIA_KEY_STATUSES: { USABLE: "usable", EXPIRED: "expired", RELEASED: "released", OUTPUT_RESTRICTED: "output-restricted", OUTPUT_DOWNSCALED: "output-downscaled", STATUS_PENDING: "status-pending", INTERNAL_ERROR: "internal-error" } };
}, 4469: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return K;
  } });
  class a2 {
    constructor() {
      this.mpdurl = null, this.errorcode = null, this.terror = null, this.url = null, this.ipaddress = null, this.servicelocation = null;
    }
  }
  a2.SSL_CONNECTION_FAILED_PREFIX = "SSL", a2.DNS_RESOLUTION_FAILED = "C00", a2.HOST_UNREACHABLE = "C01", a2.CONNECTION_REFUSED = "C02", a2.CONNECTION_ERROR = "C03", a2.CORRUPT_MEDIA_ISOBMFF = "M00", a2.CORRUPT_MEDIA_OTHER = "M01", a2.BASE_URL_CHANGED = "F00", a2.BECAME_REPORTER = "S00";
  var r2 = a2, i2 = n2(913), l2 = n2(138);
  function o2(t4) {
    let e3, n3;
    const a3 = (t4 = t4 || {}).eventBus, l3 = t4.dashMetrics, o3 = t4.metricsConstants, s3 = t4.events;
    function u3(t5) {
      let e4 = new r2();
      if (n3) {
        for (const n4 in t5)
          t5.hasOwnProperty(n4) && (e4[n4] = t5[n4]);
        e4.mpdurl || (e4.mpdurl = n3.originalUrl || n3.url), e4.terror || (e4.terror = /* @__PURE__ */ new Date()), l3.addDVBErrors(e4);
      }
    }
    function d3(t5) {
      t5.error || (n3 = t5.manifest);
    }
    function c3(t5) {
      u3({ errorcode: r2.BASE_URL_CHANGED, servicelocation: t5.entry });
    }
    function f3() {
      u3({ errorcode: r2.BECAME_REPORTER });
    }
    function g3(t5) {
      var e4;
      t5.metric === o3.HTTP_REQUEST && (0 === (e4 = t5.value).responsecode || null == e4.responsecode || e4.responsecode >= 400 || e4.responsecode < 100 || e4.responsecode >= 600) && u3({ errorcode: e4.responsecode || r2.CONNECTION_ERROR, url: e4.url, terror: e4.tresponse, servicelocation: e4._serviceLocation });
    }
    function m3(t5) {
      let e4;
      switch (t5.error ? t5.error.code : 0) {
        case MediaError.MEDIA_ERR_NETWORK:
          e4 = r2.CONNECTION_ERROR;
          break;
        case MediaError.MEDIA_ERR_DECODE:
          e4 = r2.CORRUPT_MEDIA_OTHER;
          break;
        default:
          return;
      }
      u3({ errorcode: e4 });
    }
    return e3 = { initialize: function() {
      a3.on(s3.MANIFEST_UPDATED, d3, e3), a3.on(s3.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, c3, e3), a3.on(s3.METRIC_ADDED, g3, e3), a3.on(s3.METRIC_UPDATED, g3, e3), a3.on(s3.PLAYBACK_ERROR, m3, e3), a3.on(i2.default.BECAME_REPORTING_PLAYER, f3, e3);
    }, reset: function() {
      a3.off(s3.MANIFEST_UPDATED, d3, e3), a3.off(s3.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, c3, e3), a3.off(s3.METRIC_ADDED, g3, e3), a3.off(s3.METRIC_UPDATED, g3, e3), a3.off(s3.PLAYBACK_ERROR, m3, e3), a3.off(i2.default.BECAME_REPORTING_PLAYER, f3, e3);
    } }, e3;
  }
  o2.__dashjs_factory_name = "DVBErrorsTranslator";
  var s2 = l2.default.getSingletonFactory(o2), u2 = n2(7377);
  function d2(t4) {
    t4 = t4 || {};
    let e3, n3, a3 = false, r3 = this.context, i3 = t4.mediaElement;
    return e3 = { initialize: function(t5) {
      t5 && t5.length && (t5.forEach((t6) => {
        let e4 = t6.starttime, a4 = e4 + t6.duration;
        n3.add(e4, a4);
      }), a3 = !!t5[0]._useWallClockTime);
    }, reset: function() {
      n3.clear();
    }, isEnabled: function() {
      let t5, e4 = n3.length;
      if (!e4)
        return true;
      t5 = a3 ? (/* @__PURE__ */ new Date()).getTime() / 1e3 : i3.currentTime;
      for (let a4 = 0; a4 < e4; a4 += 1) {
        let e5 = n3.start(a4), r4 = n3.end(a4);
        if (e5 <= t5 && t5 < r4)
          return true;
      }
      return false;
    } }, n3 = (0, u2.default)(r3).create(), e3;
  }
  d2.__dashjs_factory_name = "RangeController";
  var c2 = l2.default.getClassFactory(d2);
  function f2() {
    return { serialise: function t4(e3) {
      let n3, a3, r3 = [], i3 = [];
      for (n3 in e3)
        if (e3.hasOwnProperty(n3) && 0 !== n3.indexOf("_")) {
          if (a3 = e3[n3], null == a3 && (a3 = ""), Array.isArray(a3)) {
            if (!a3.length)
              continue;
            i3 = [], a3.forEach(function(e4) {
              let n4 = "Object" !== Object.prototype.toString.call(e4).slice(8, -1);
              i3.push(n4 ? e4 : t4(e4));
            }), a3 = i3.map(encodeURIComponent).join(",");
          } else
            "string" == typeof a3 ? a3 = encodeURIComponent(a3) : a3 instanceof Date ? a3 = a3.toISOString() : "number" == typeof a3 && (a3 = Math.round(a3));
          r3.push(n3 + "=" + a3);
        }
      return r3.join("&");
    } };
  }
  f2.__dashjs_factory_name = "MetricSerialiser";
  var g2 = l2.default.getSingletonFactory(f2);
  function m2() {
    let t4, e3, n3, a3 = window.crypto || window.msCrypto, r3 = Uint32Array, i3 = Math.pow(2, 8 * r3.BYTES_PER_ELEMENT) - 1;
    function l3() {
      a3 && (t4 || (t4 = new r3(10)), a3.getRandomValues(t4), e3 = 0);
    }
    return n3 = { random: function(n4, r4) {
      let o3;
      return n4 || (n4 = 0), r4 || (r4 = 1), a3 ? (e3 === t4.length && l3(), o3 = t4[e3] / i3, e3 += 1) : o3 = Math.random(), o3 * (r4 - n4) + n4;
    } }, l3(), n3;
  }
  m2.__dashjs_factory_name = "RNG";
  var h2 = l2.default.getSingletonFactory(m2), p2 = n2(1926);
  function b2(t4) {
    let e3;
    t4 = t4 || {};
    let n3, a3, r3, i3, l3, o3, s3, u3 = this.context, d3 = [];
    const c3 = t4.metricsConstants;
    function f3() {
      i3 = false, l3 = false, o3 = null, s3 = null;
    }
    return e3 = { report: function(t5, e4) {
      Array.isArray(e4) || (e4 = [e4]), l3 && s3.isEnabled() && e4.forEach(function(e5) {
        let r4 = n3.serialise(e5);
        t5 !== c3.DVB_ERRORS && (r4 = `metricname=${t5}&${r4}`), r4 = `${o3}?${r4}`, function(t6, e6, n4) {
          let r5 = new XMLHttpRequest();
          r5.withCredentials = a3.getXHRWithCredentialsForType(c3.HTTP_REQUEST_DVB_REPORTING_TYPE);
          const i4 = function() {
            let t7 = d3.indexOf(r5);
            -1 !== t7 && (d3.splice(t7, 1), !(r5.status >= 200 && r5.status < 300) && (n4 && n4()));
          };
          d3.push(r5);
          try {
            r5.open("GET", t6), r5.onloadend = i4, r5.onerror = i4, r5.send();
          } catch (t7) {
            r5.onerror();
          }
        }(r4, 0, function() {
          l3 = false;
        });
      });
    }, initialize: function(t5, e4) {
      let n4;
      if (s3 = e4, o3 = t5.dvbReportingUrl, !o3)
        throw new Error("required parameter missing (dvb:reportingUrl)");
      i3 || (n4 = t5.dvbProbability, n4 && (1e3 === n4 || n4 / 1e3 >= r3.random()) && (l3 = true), i3 = true);
    }, reset: function() {
      f3();
    } }, n3 = g2(u3).getInstance(), r3 = h2(u3).getInstance(), a3 = (0, p2.default)(u3).getInstance(), f3(), e3;
  }
  b2.__dashjs_factory_name = "DVBReporting";
  var y2 = l2.default.getClassFactory(b2);
  function E2(t4) {
    t4 = t4 || {};
    const e3 = { "urn:dvb:dash:reporting:2014": y2 }, n3 = this.context;
    let a3;
    const r3 = t4.debug ? t4.debug.getLogger(a3) : {}, i3 = t4.metricsConstants, l3 = t4.mediaPlayerModel || {};
    return a3 = { create: function(t5, a4) {
      let o3;
      try {
        o3 = e3[t5.schemeIdUri](n3).create({ metricsConstants: i3, mediaPlayerModel: l3 }), o3.initialize(t5, a4);
      } catch (e4) {
        o3 = null, r3.error(`ReportingFactory: could not create Reporting with schemeIdUri ${t5.schemeIdUri} (${e4.message})`);
      }
      return o3;
    }, register: function(t5, n4) {
      e3[t5] = n4;
    }, unregister: function(t5) {
      delete e3[t5];
    } }, a3;
  }
  E2.__dashjs_factory_name = "ReportingFactory";
  var T2 = l2.default.getSingletonFactory(E2);
  function _2(t4) {
    let e3, n3 = [];
    const a3 = T2(this.context).getInstance(t4);
    return e3 = { initialize: function(t5, e4) {
      t5.some((t6) => {
        let r3 = a3.create(t6, e4);
        if (r3)
          return n3.push(r3), true;
      });
    }, reset: function() {
      n3.forEach((t5) => t5.reset()), n3 = [];
    }, report: function(t5, e4) {
      n3.forEach((n4) => n4.report(t5, e4));
    } }, e3;
  }
  _2.__dashjs_factory_name = "ReportingController";
  var v2 = l2.default.getClassFactory(_2);
  function S2() {
    return { reconstructFullMetricName: function(t4, e3, n3) {
      let a3 = t4;
      return e3 && (a3 += "(" + e3, n3 && n3.length && (a3 += "," + n3), a3 += ")"), a3;
    }, validateN: function(t4) {
      if (!t4)
        throw new Error("missing n");
      if (isNaN(t4))
        throw new Error("n is NaN");
      if (t4 < 0)
        throw new Error("n must be positive");
      return t4;
    } };
  }
  S2.__dashjs_factory_name = "HandlerHelpers";
  var w2 = l2.default.getSingletonFactory(S2);
  function I2(t4) {
    let e3, n3, a3, r3, i3, l3;
    t4 = t4 || {};
    let o3 = this.context, s3 = w2(o3).getInstance(), u3 = [];
    const d3 = t4.metricsConstants;
    function c3() {
      let t5 = function() {
        try {
          return Object.keys(u3).map((t6) => u3[t6]).reduce((t6, e4) => t6.level < e4.level ? t6 : e4);
        } catch (t6) {
          return;
        }
      }();
      t5 && l3 !== t5.t && (l3 = t5.t, n3.report(r3, t5));
    }
    return e3 = { initialize: function(t5, e4, l4) {
      e4 && (a3 = s3.validateN(l4), n3 = e4, r3 = s3.reconstructFullMetricName(t5, l4), i3 = setInterval(c3, a3));
    }, reset: function() {
      clearInterval(i3), i3 = null, a3 = 0, n3 = null, l3 = null;
    }, handleNewMetric: function(t5, e4, n4) {
      t5 === d3.BUFFER_LEVEL && (u3[n4] = e4);
    } }, e3;
  }
  I2.__dashjs_factory_name = "BufferLevelHandler";
  var k2 = l2.default.getClassFactory(I2), A = l2.default.getClassFactory(function(t4) {
    let e3, n3, a3 = (t4 = t4 || {}).eventBus;
    const r3 = t4.metricsConstants;
    function l3() {
      a3.off(i2.default.METRICS_INITIALISATION_COMPLETE, l3, this), a3.trigger(i2.default.BECAME_REPORTING_PLAYER);
    }
    return e3 = { initialize: function(t5, e4) {
      e4 && (n3 = e4, a3.on(i2.default.METRICS_INITIALISATION_COMPLETE, l3, this));
    }, reset: function() {
      n3 = null;
    }, handleNewMetric: function(t5, e4) {
      t5 === r3.DVB_ERRORS && n3 && n3.report(t5, e4);
    } }, e3;
  });
  function R(t4) {
    let e3, n3, a3, r3, i3, l3;
    t4 = t4 || {};
    let o3 = [], s3 = w2(this.context).getInstance();
    const u3 = t4.metricsConstants;
    function d3() {
      var t5 = o3;
      t5.length && n3 && n3.report(i3, t5), o3 = [];
    }
    return e3 = { initialize: function(t5, e4, o4, u4) {
      e4 && (a3 = s3.validateN(o4), n3 = e4, u4 && u4.length && (r3 = u4), i3 = s3.reconstructFullMetricName(t5, o4, u4), l3 = setInterval(d3, a3));
    }, reset: function() {
      clearInterval(l3), l3 = null, a3 = null, r3 = null, o3 = [], n3 = null;
    }, handleNewMetric: function(t5, e4) {
      t5 === u3.HTTP_REQUEST && (r3 && r3 !== e4.type || o3.push(e4));
    } }, e3;
  }
  R.__dashjs_factory_name = "HttpListHandler";
  var N = l2.default.getClassFactory(R);
  function C() {
    let t4, e3, n3;
    return t4 = { initialize: function(t5, a3) {
      e3 = t5, n3 = a3;
    }, reset: function() {
      n3 = null, e3 = void 0;
    }, handleNewMetric: function(t5, a3) {
      t5 === e3 && n3 && n3.report(e3, a3);
    } }, t4;
  }
  C.__dashjs_factory_name = "GenericMetricHandler";
  var D = l2.default.getClassFactory(C);
  function x(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).debug ? t4.debug.getLogger(e3) : {};
    let a3 = /([a-zA-Z]*)(\(([0-9]*)(\,\s*([a-zA-Z]*))?\))?/;
    const r3 = this.context;
    let i3 = { BufferLevel: k2, DVBErrors: A, HttpList: N, PlayList: D, RepSwitchList: D, TcpList: D };
    return e3 = { create: function(e4, l3) {
      var o3, s3 = e4.match(a3);
      if (s3) {
        try {
          (o3 = i3[s3[1]](r3).create({ eventBus: t4.eventBus, metricsConstants: t4.metricsConstants })).initialize(s3[1], l3, s3[3], s3[5]);
        } catch (t5) {
          o3 = null, n3.error(`MetricsHandlerFactory: Could not create handler for type ${s3[1]} with args ${s3[3]}, ${s3[5]} (${t5.message})`);
        }
        return o3;
      }
    }, register: function(t5, e4) {
      i3[t5] = e4;
    }, unregister: function(t5) {
      delete i3[t5];
    } }, e3;
  }
  x.__dashjs_factory_name = "MetricsHandlerFactory";
  var M = l2.default.getSingletonFactory(x);
  function P(t4) {
    t4 = t4 || {};
    let e3, n3 = [];
    const a3 = this.context, r3 = t4.eventBus, i3 = t4.events;
    let l3 = M(a3).getInstance({ debug: t4.debug, eventBus: t4.eventBus, metricsConstants: t4.metricsConstants });
    function o3(t5) {
      n3.forEach((e4) => {
        e4.handleNewMetric(t5.metric, t5.value, t5.mediaType);
      });
    }
    return e3 = { initialize: function(t5, a4) {
      t5.split(",").forEach((t6, e4, r4) => {
        let i4;
        if (-1 !== t6.indexOf("(") && -1 === t6.indexOf(")")) {
          let n4 = r4[e4 + 1];
          n4 && -1 === n4.indexOf("(") && -1 !== n4.indexOf(")") && (t6 += "," + n4, delete r4[e4 + 1]);
        }
        i4 = l3.create(t6, a4), i4 && n3.push(i4);
      }), r3.on(i3.METRIC_ADDED, o3, e3), r3.on(i3.METRIC_UPDATED, o3, e3);
    }, reset: function() {
      r3.off(i3.METRIC_ADDED, o3, e3), r3.off(i3.METRIC_UPDATED, o3, e3), n3.forEach((t5) => t5.reset()), n3 = [];
    } }, e3;
  }
  P.__dashjs_factory_name = "MetricsHandlersController";
  var O = l2.default.getClassFactory(P);
  function z(t4) {
    let e3, n3, a3, r3;
    t4 = t4 || {};
    let i3 = this.context;
    function l3() {
      e3 && e3.reset(), n3 && n3.reset(), a3 && a3.reset();
    }
    return r3 = { initialize: function(r4) {
      try {
        a3 = c2(i3).create({ mediaElement: t4.mediaElement }), a3.initialize(r4.Range), n3 = v2(i3).create({ debug: t4.debug, metricsConstants: t4.metricsConstants, mediaPlayerModel: t4.mediaPlayerModel }), n3.initialize(r4.Reporting, a3), e3 = O(i3).create({ debug: t4.debug, eventBus: t4.eventBus, metricsConstants: t4.metricsConstants, events: t4.events }), e3.initialize(r4.metrics, n3);
      } catch (t5) {
        throw l3(), t5;
      }
    }, reset: l3 }, r3;
  }
  z.__dashjs_factory_name = "MetricsController";
  var L = l2.default.getClassFactory(z), F = class {
    constructor() {
      this.metrics = "", this.Range = [], this.Reporting = [];
    }
  }, U = class {
    constructor() {
      this.starttime = 0, this.duration = 1 / 0, this._useWallClockTime = false;
    }
  }, j = class {
    constructor() {
      this.schemeIdUri = "", this.value = "", this.dvbReportingUrl = "", this.dvbProbability = 1e3;
    }
  };
  function q(t4) {
    let e3, n3 = (t4 = t4 || {}).adapter;
    const a3 = t4.constants;
    return e3 = { getMetrics: function(t5) {
      let e4 = [];
      return t5 && t5.Metrics && t5.Metrics.forEach((r3) => {
        var i3 = new F(), l3 = n3.getIsDynamic(t5);
        r3.hasOwnProperty("metrics") && (i3.metrics = r3.metrics, r3.Range && r3.Range.forEach((e5) => {
          var r4 = new U();
          r4.starttime = function(t6, e6, r5) {
            let i4, l4, o3 = 0;
            return e6 ? o3 = n3.getAvailabilityStartTime(t6) / 1e3 : (i4 = n3.getRegularPeriods(t6), i4.length && (o3 = i4[0].start)), l4 = o3, r5 && r5.hasOwnProperty(a3.START_TIME) && (l4 += r5.starttime), l4;
          }(t5, l3, e5), e5.hasOwnProperty("duration") ? r4.duration = e5.duration : r4.duration = n3.getDuration(t5), r4._useWallClockTime = l3, i3.Range.push(r4);
        }), r3.Reporting && (r3.Reporting.forEach((t6) => {
          var e5 = new j();
          t6.hasOwnProperty(a3.SCHEME_ID_URI) && (e5.schemeIdUri = t6.schemeIdUri, t6.hasOwnProperty("value") && (e5.value = t6.value), t6.hasOwnProperty(a3.DVB_REPORTING_URL) && (e5.dvbReportingUrl = t6[a3.DVB_REPORTING_URL]), t6.hasOwnProperty(a3.DVB_PROBABILITY) && (e5.dvbProbability = t6[a3.DVB_PROBABILITY]), i3.Reporting.push(e5));
        }), e4.push(i3)));
      }), e4;
    } }, e3;
  }
  q.__dashjs_factory_name = "ManifestParsing";
  var B = l2.default.getSingletonFactory(q);
  function G(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = {}, a3 = this.context, r3 = t4.eventBus;
    const l3 = t4.events;
    function o3(e4) {
      if (e4.error)
        return;
      let l4 = Object.keys(n3);
      B(a3).getInstance({ adapter: t4.adapter, constants: t4.constants }).getMetrics(e4.manifest).forEach((e5) => {
        const r4 = JSON.stringify(e5);
        if (n3.hasOwnProperty(r4))
          l4.splice(r4, 1);
        else
          try {
            let i3 = L(a3).create(t4);
            i3.initialize(e5), n3[r4] = i3;
          } catch (t5) {
          }
      }), l4.forEach((t5) => {
        n3[t5].reset(), delete n3[t5];
      }), r3.trigger(i2.default.METRICS_INITIALISATION_COMPLETE);
    }
    function s3() {
      Object.keys(n3).forEach((t5) => {
        n3[t5].reset();
      }), n3 = {};
    }
    return e3 = { reset: function() {
      r3.off(l3.MANIFEST_UPDATED, o3, e3), r3.off(l3.STREAM_TEARDOWN_COMPLETE, s3, e3);
    } }, r3.on(l3.MANIFEST_UPDATED, o3, e3), r3.on(l3.STREAM_TEARDOWN_COMPLETE, s3, e3), e3;
  }
  G.__dashjs_factory_name = "MetricsCollectionController";
  var H = l2.default.getClassFactory(G);
  function Y() {
    let t4, e3, n3 = this.context;
    return t4 = { createMetricsReporting: function(t5) {
      return e3 = s2(n3).getInstance({ eventBus: t5.eventBus, dashMetrics: t5.dashMetrics, metricsConstants: t5.metricsConstants, events: t5.events }), e3.initialize(), H(n3).create(t5);
    }, getReportingFactory: function() {
      return T2(n3).getInstance();
    }, getMetricsHandlerFactory: function() {
      return M(n3).getInstance();
    } }, t4;
  }
  Y.__dashjs_factory_name = "MetricsReporting";
  const V = l2.default.getClassFactory(Y);
  V.events = i2.default, l2.default.updateClassFactory(Y.__dashjs_factory_name, V);
  var K = V;
}, 913: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.METRICS_INITIALISATION_COMPLETE = "internal_metricsReportingInitialized", this.BECAME_REPORTING_PLAYER = "internal_becameReportingPlayer", this.CMCD_DATA_GENERATED = "cmcdDataGenerated";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 1926: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(5717), r2 = n2(138), i2 = n2(8261), l2 = n2(656), o2 = n2(5212), s2 = n2(5560);
  function u2() {
    let t4, e3, n3, r3, u3, d2, c2, f2, g2, m2, h2;
    const p2 = this.context, b2 = (0, i2.default)(p2).getInstance();
    function y2() {
      r3 = [], u3 = [], d2 = [], c2 = [], f2 = [], h2 = [], g2 = null, e3 = [], m2 = /* @__PURE__ */ new Set();
    }
    function E2(t5, e4) {
      let n4 = -1;
      t5.some((t6, a3) => {
        if (t6 === e4)
          return n4 = a3, true;
      }), n4 < 0 || t5.splice(n4, 1);
    }
    function T2(t5) {
      let e4;
      for (e4 = 0; e4 < h2.length; e4++)
        if (h2[e4].rulename === t5)
          return e4;
      return -1;
    }
    function _2(t5, e4) {
      let n4 = false;
      return m2.forEach((a3) => {
        a3[t5] === e4 && (n4 = true);
      }), n4;
    }
    function v2(t5, n4) {
      S2(t5, n4);
      let r4 = new a2.default();
      r4.schemeIdUri = t5, r4.value = n4, e3.push(r4);
    }
    function S2(t5, n4) {
      (0, l2.checkParameterType)(t5, "string"), (0, l2.checkParameterType)(n4, "string"), e3.forEach(function(a3, r4) {
        a3.schemeIdUri === t5 && a3.value === n4 && e3.splice(r4, 1);
      });
    }
    return t4 = { addAbrCustomRule: function(t5, e4, n4) {
      if ("string" != typeof t5 || t5 !== o2.default.RULES_TYPES.ABANDON_FRAGMENT_RULES && t5 !== o2.default.RULES_TYPES.QUALITY_SWITCH_RULES || "string" != typeof e4)
        throw o2.default.BAD_ARGUMENT_ERROR;
      let a3 = T2(e4);
      -1 === a3 ? h2.push({ type: t5, rulename: e4, rule: n4 }) : (h2[a3].type = t5, h2[a3].rule = n4);
    }, addExternalSubtitle: function(t5) {
      if (!(t5 && void 0 !== t5.id && t5.url && t5.language && t5.mimeType && void 0 !== t5.bandwidth))
        return;
      const e4 = new s2.default(t5);
      _2("url", e4.url) || _2("id", e4.id) || m2.add(e4);
    }, addRequestInterceptor: function(t5) {
      r3.push(t5);
    }, addResponseInterceptor: function(t5) {
      u3.push(t5);
    }, addUTCTimingSource: v2, clearDefaultUTCTimingSources: function() {
      e3 = [];
    }, getAbrCustomRules: function() {
      return h2;
    }, getCustomCapabilitiesFilters: function() {
      return f2;
    }, getCustomInitialTrackSelectionFunction: function() {
      return g2;
    }, getExternalSubtitles: function() {
      return m2;
    }, getLicenseRequestFilters: function() {
      return d2;
    }, getLicenseResponseFilters: function() {
      return c2;
    }, getRequestInterceptors: function() {
      return r3;
    }, getResponseInterceptors: function() {
      return u3;
    }, getUTCTimingSources: function() {
      return e3;
    }, getXHRWithCredentialsForType: function(t5) {
      const e4 = n3[t5];
      return void 0 === e4 ? n3.default : e4;
    }, registerCustomCapabilitiesFilter: function(t5) {
      f2.push(t5);
    }, registerLicenseRequestFilter: function(t5) {
      d2.push(t5);
    }, registerLicenseResponseFilter: function(t5) {
      c2.push(t5);
    }, removeAbrCustomRule: function(t5) {
      if (t5) {
        let e4 = T2(t5);
        -1 !== e4 && h2.splice(e4, 1);
      } else
        h2 = [];
    }, removeAllAbrCustomRule: function() {
      h2 = [];
    }, removeExternalSubtitleById: function(t5) {
      m2.forEach((e4) => {
        e4.id === t5 && m2.delete(e4);
      });
    }, removeExternalSubtitleByUrl: function(t5) {
      m2.forEach((e4) => {
        e4.url === t5 && m2.delete(e4);
      });
    }, removeRequestInterceptor: function(t5) {
      E2(r3, t5);
    }, removeResponseInterceptor: function(t5) {
      E2(u3, t5);
    }, removeUTCTimingSource: S2, reset: function() {
      y2();
    }, resetCustomInitialTrackSelectionFunction: function() {
      g2 = null;
    }, resetPlaybackSessionSpecificSettings: function() {
      m2 = /* @__PURE__ */ new Set();
    }, restoreDefaultUTCTimingSources: function() {
      let t5 = b2.get().streaming.utcSynchronization.defaultTimingSource;
      v2(t5.scheme, t5.value);
    }, setConfig: function() {
    }, setCustomInitialTrackSelectionFunction: function(t5) {
      g2 = t5;
    }, setXHRWithCredentialsForType: function t5(e4, a3) {
      e4 ? n3[e4] = !!a3 : Object.keys(n3).forEach((e5) => {
        t5(e5, a3);
      });
    }, unregisterCustomCapabilitiesFilter: function(t5) {
      E2(f2, t5);
    }, unregisterLicenseRequestFilter: function(t5) {
      E2(d2, t5);
    }, unregisterLicenseResponseFilter: function(t5) {
      E2(c2, t5);
    } }, n3 = { default: false }, y2(), t4;
  }
  u2.__dashjs_factory_name = "CustomParametersModel", e2.default = r2.default.getSingletonFactory(u2);
}, 3888: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return mt;
  } });
  var a2 = n2(8854), r2 = n2(2861);
  const i2 = { prefixes: ["clearkey", "dashif", "ck"] };
  class l2 {
    static findMp4ProtectionElement(t4) {
      let e3 = null;
      for (let n3 = 0; n3 < t4.length; ++n3) {
        let i3 = t4[n3];
        i3.schemeIdUri && i3.schemeIdUri.toLowerCase() === a2.default.MP4_PROTECTION_SCHEME && i3.value && (i3.value.toLowerCase() === r2.default.ENCRYPTION_SCHEME_CENC || i3.value.toLowerCase() === r2.default.ENCRYPTION_SCHEME_CBCS) && (e3 = i3);
      }
      return e3;
    }
    static getPSSHData(t4) {
      let e3 = 8, n3 = new DataView(t4), a3 = n3.getUint8(e3);
      return e3 += 20, a3 > 0 && (e3 += 4 + 16 * n3.getUint32(e3)), e3 += 4, t4.slice(e3);
    }
    static getPSSHForKeySystem(t4, e3) {
      let n3 = l2.parsePSSHList(e3);
      return t4 && n3.hasOwnProperty(t4.uuid.toLowerCase()) ? n3[t4.uuid.toLowerCase()] : null;
    }
    static parseInitDataFromContentProtection(t4, e3) {
      return "pssh" in t4 && t4.pssh ? (t4.pssh.__text = t4.pssh.__text.replace(/\r?\n|\r/g, "").replace(/\s+/g, ""), e3.decodeArray(t4.pssh.__text).buffer) : null;
    }
    static parsePSSHList(t4) {
      if (null == t4)
        return [];
      let e3 = new DataView(t4.buffer || t4), n3 = {}, a3 = 0;
      for (; ; ) {
        let t5, r3, i3, l3, o3, s3, u3 = a3;
        if (a3 >= e3.buffer.byteLength)
          break;
        if (t5 = e3.getUint32(a3), r3 = a3 + t5, a3 += 4, 1886614376 === e3.getUint32(a3))
          if (a3 += 4, i3 = e3.getUint8(a3), 0 === i3 || 1 === i3) {
            for (a3++, a3 += 3, l3 = "", o3 = 0; o3 < 4; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 4, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 6; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            a3 += 6, l3 = l3.toLowerCase(), a3 += 4, n3[l3] = e3.buffer.slice(u3, r3), a3 = r3;
          } else
            a3 = r3;
        else
          a3 = r3;
      }
      return n3;
    }
    static getLicenseServerUrlFromMediaInfo(t4, e3) {
      try {
        if (!t4 || 0 === t4.length)
          return null;
        let n3 = 0, a3 = null;
        for (; n3 < t4.length && !a3; ) {
          const r3 = t4[n3];
          if (r3 && r3.contentProtection && r3.contentProtection.length > 0) {
            const t5 = r3.contentProtection.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === e3);
            if (t5 && t5.length > 0) {
              let e4 = 0;
              for (; e4 < t5.length && !a3; ) {
                const n4 = t5[e4];
                n4.laUrl && n4.laUrl.__prefix && i2.prefixes.includes(n4.laUrl.__prefix) && n4.laUrl.__text && (a3 = n4.laUrl.__text), e4 += 1;
              }
            }
          }
          n3 += 1;
        }
        return a3;
      } catch (t5) {
        return null;
      }
    }
    static hexKidToBufferSource(t4) {
      const e3 = t4.replace(/-/g, "");
      return new Uint8Array(e3.match(/[\da-f]{2}/gi).map(function(t5) {
        return parseInt(t5, 16);
      })).buffer;
    }
  }
  var o2 = l2, s2 = class {
    constructor(t4, e3) {
      this.contentType = t4, this.robustness = e3;
    }
  }, u2 = class {
    constructor(t4, e3, n3, a3, i3, l3) {
      this.initDataTypes = l3 && l3.length > 0 ? l3 : [r2.default.INITIALIZATION_DATA_TYPE_CENC], t4 && t4.length && (this.audioCapabilities = t4), e3 && e3.length && (this.videoCapabilities = e3), this.distinctiveIdentifier = n3, this.persistentState = a3, this.sessionTypes = i3;
    }
  }, d2 = n2(1923), c2 = n2(1944), f2 = class {
    constructor(t4, e3, n3, a3, r3, i3, l3, o3) {
      this.url = t4, this.method = e3, this.responseType = n3, this.headers = a3, this.withCredentials = r3, this.messageType = i3, this.sessionId = l3, this.data = o3;
    }
  }, g2 = class {
    constructor(t4, e3, n3) {
      this.url = t4, this.headers = e3, this.data = n3;
    }
  }, m2 = n2(7568), h2 = n2(7263), p2 = n2(5212), b2 = n2(138);
  function y2(t4) {
    const e3 = (t4 = t4 || {}).BASE64, n3 = t4.cmcdModel, a3 = t4.constants, i3 = t4.customParametersModel, l3 = t4.debug, b3 = t4.eventBus, y3 = t4.events, E3 = t4.protectionKeyController, T3 = t4.settings;
    let _3, v3, S3, w3, I3, k3, A2, R2, N2, C2, D2, x2, M2 = t4.protectionModel, P2 = [];
    function O2() {
      if (!(b3 && b3.hasOwnProperty("on") && E3 && E3.hasOwnProperty("getSupportedKeySystemMetadataFromContentProtection")))
        throw new Error("Missing config parameter(s)");
    }
    function z2(t5, n4) {
      D2 || w3 ? D2 && L2() : function(t6, n5) {
        if (w3)
          return;
        var a4;
        w3 = true;
        const r3 = function(t7) {
          const e4 = [];
          for (let n6 = 0; n6 < t7.length; n6++) {
            const a5 = F2(t7[n6]);
            e4.push({ ks: t7[n6].ks, configs: [a5], protData: t7[n6].protData });
          }
          return e4;
        }(t6 = (a4 = t6).sort((t7, e4) => (_3 && _3[t7.ks.systemString] && _3[t7.ks.systemString].priority >= 0 ? _3[t7.ks.systemString].priority : a4.length) - (_3 && _3[e4.ks.systemString] && _3[e4.ks.systemString].priority >= 0 ? _3[e4.ks.systemString].priority : a4.length)));
        let i4;
        M2.requestKeySystemAccess(r3).then((t7) => (i4 = t7.data, function(t8) {
          let e4 = t8 && t8.selectedSystemString ? t8.selectedSystemString : t8.keySystem.systemString;
          return A2.info("DRM: KeySystem Access Granted for system string (" + e4 + ")!  Selecting key system..."), M2.selectKeySystem(t8);
        }(i4))).then((t7) => {
          !function(t8, n6) {
            try {
              D2 = t8, w3 = false, b3.trigger(y3.KEY_SYSTEM_SELECTED, { data: n6 });
              const a5 = q2(D2);
              a5 && a5.serverCertificate && a5.serverCertificate.length > 0 && M2.setServerCertificate(e3.decodeArray(a5.serverCertificate).buffer), L2();
            } catch (t9) {
              A2.error(t9);
            }
          }(t7, i4);
        }).catch((t7) => {
          !function(t8, e4) {
            D2 = null, w3 = false, e4 || b3.trigger(y3.KEY_SYSTEM_SELECTED, { data: null, error: new c2.default(d2.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE, d2.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE + "Error selecting key system! -- " + t8.error) });
          }(t7, n5);
        });
      }(t5, n4);
    }
    function L2() {
      let t5;
      for (let n4 = 0; n4 < N2.length; n4++)
        for (t5 = 0; t5 < N2[n4].length; t5++)
          if (D2 === N2[n4][t5].ks) {
            e4 = N2[n4][t5], E3.isClearKey(D2) && function(t6) {
              if (t6.protData && t6.protData.hasOwnProperty("clearkeys") && 0 !== Object.keys(t6.protData.clearkeys).length) {
                const e5 = { kids: Object.keys(t6.protData.clearkeys) };
                t6.initData = new TextEncoder().encode(JSON.stringify(e5));
              }
            }(e4), e4.sessionId ? U2(e4) : null !== e4.initData && j2(e4);
            break;
          }
      var e4;
      N2 = [];
    }
    function F2(t5) {
      const e4 = t5.protData, n4 = [], i4 = [], l4 = e4 && e4.initDataTypes && e4.initDataTypes.length > 0 ? e4.initDataTypes : [r2.default.INITIALIZATION_DATA_TYPE_CENC], o3 = e4 && e4.audioRobustness && e4.audioRobustness.length > 0 ? e4.audioRobustness : C2, d3 = e4 && e4.videoRobustness && e4.videoRobustness.length > 0 ? e4.videoRobustness : C2, c3 = t5.sessionType, f3 = e4 && e4.distinctiveIdentifier ? e4.distinctiveIdentifier : "optional", g3 = e4 && e4.persistentState ? e4.persistentState : "temporary" === c3 ? "optional" : "required";
      return R2.forEach((t6) => {
        t6.type === a3.AUDIO ? n4.push(new s2(t6.codec, o3)) : t6.type === a3.VIDEO && i4.push(new s2(t6.codec, d3));
      }), new u2(n4, i4, f3, g3, [c3], l4);
    }
    function U2(t5) {
      O2(), M2.loadKeySession(t5);
    }
    function j2(t5) {
      if (t5 && function(t6) {
        if (!t6)
          return false;
        try {
          const e5 = M2.getSessionTokens();
          for (let n4 = 0; n4 < e5.length; n4++)
            if (e5[n4].getKeyId() === t6)
              return true;
          return false;
        } catch (t7) {
          return false;
        }
      }(t5.keyId))
        return;
      !function() {
        if (!T3)
          return;
        const t6 = T3.get().streaming.protection.keepProtectionMediaKeys, e5 = T3.get().streaming.protection.keepProtectionMediaKeysMaximumOpenSessions;
        if ("number" != typeof e5 || e5 <= 0)
          return;
        if (!t6)
          return void A2.warn("DRM: keepProtectionMediaKeysMaximumOpenSessions is set to " + e5 + ", but keepProtectionMediaKeys is not enabled. Therefore, keepProtectionMediaKeysMaximumOpenSessions will be ignored.");
        if (!M2 || "function" != typeof M2.getSessionTokens)
          return;
        const n4 = M2.getSessionTokens() || [];
        if (n4.length < e5)
          return;
        const a4 = n4[0];
        a4 && (A2.info("DRM: Maximum number of open MediaKeySessions reached (" + e5 + "), closing oldest session."), G2(a4));
      }();
      const e4 = o2.getPSSHForKeySystem(D2, t5 ? t5.initData : null);
      if (e4) {
        if (B2(e4))
          return;
        try {
          t5.initData = e4, M2.createKeySession(t5);
        } catch (t6) {
          b3.trigger(y3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + t6.message) });
        }
      } else
        t5 && t5.initData ? M2.createKeySession(t5) : b3.trigger(y3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Selected key system is " + (D2 ? D2.systemString : null) + ".  needkey/encrypted event contains no initData corresponding to that key system!") });
    }
    function q2(t5) {
      if (t5) {
        const e4 = t5.systemString;
        if (_3)
          return e4 in _3 ? _3[e4] : null;
      }
      return null;
    }
    function B2(t5) {
      if (!t5)
        return false;
      try {
        const e4 = M2.getAllInitData();
        for (let n4 = 0; n4 < e4.length; n4++)
          if (E3.initDataEquals(t5, e4[n4]))
            return A2.debug("DRM: Ignoring initData because we have already seen it!"), true;
        return false;
      } catch (t6) {
        return false;
      }
    }
    function G2(t5) {
      O2(), M2.closeKeySession(t5);
    }
    function H2(t5) {
      O2(), t5 ? (M2.setMediaElement(t5), b3.on(y3.NEED_KEY, Z2, v3)) : null === t5 && (M2.setMediaElement(t5), b3.off(y3.NEED_KEY, Z2, v3));
    }
    function Y2(t5) {
      A2.debug("DRM: onKeyMessage");
      const e4 = t5.data;
      b3.trigger(y3.KEY_MESSAGE, { data: e4 });
      const n4 = e4.messageType ? e4.messageType : r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST, a4 = e4.message, l4 = e4.sessionToken, s3 = q2(D2), u3 = E3.getLicenseServerModelInstance(D2, s3, n4), p3 = { sessionToken: l4, messageType: n4 };
      if (a4 && 0 !== a4.byteLength) {
        if (!u3)
          return A2.debug("DRM: License server request not required for this message (type = " + t5.data.messageType + ").  Session ID = " + l4.getSessionId()), void V2(p3);
        if (E3.isClearKey(D2)) {
          const t6 = E3.processClearKeyLicenseRequest(D2, s3, a4);
          if (t6 && t6.keyPairs && t6.keyPairs.length > 0)
            return A2.debug("DRM: ClearKey license request handled by application!"), V2(p3), void M2.updateKeySession(l4, t6);
        }
        !function(t6, e5, n5) {
          const a5 = t6.sessionToken, l5 = t6.messageType ? t6.messageType : r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST, s4 = { sessionToken: a5, messageType: l5 }, u4 = D2 ? D2.systemString : null;
          let p4 = function(t7, e6, n6, a6, r3) {
            let i4 = null;
            const l6 = a6.message;
            if (t7 && t7.serverURL) {
              const n7 = t7.serverURL;
              "string" == typeof n7 && "" !== n7 ? i4 = n7 : "object" == typeof n7 && n7.hasOwnProperty(e6) && (i4 = n7[e6]);
            } else if (t7 && t7.laURL && "" !== t7.laURL)
              i4 = t7.laURL;
            else if (i4 = o2.getLicenseServerUrlFromMediaInfo(R2, D2.schemeIdURI), !i4 && !E3.isClearKey(D2)) {
              const t8 = o2.getPSSHData(n6.initData);
              i4 = D2.getLicenseServerURLFromInitData(t8), i4 || (i4 = a6.laURL);
            }
            return i4 = r3.getServerURLFromMessage(i4, l6, e6), i4;
          }(n5, l5, a5, t6, e5);
          if (!p4)
            return void V2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE));
          const b4 = {};
          let y4 = false;
          n5 && $2(b4, n5.httpRequestHeaders);
          const _4 = t6.message;
          $2(b4, D2.getRequestHeadersFromMessage(_4)), Object.keys(b4).forEach((t7) => {
            "authorization" === t7.toLowerCase() && (y4 = true);
          }), n5 && "boolean" == typeof n5.withCredentials && (y4 = n5.withCredentials);
          const v4 = function(t7) {
            if (M2)
              if (t7.status >= 200 && t7.status <= 299) {
                const n6 = h2.default.parseHttpHeaders(t7.getAllResponseHeaders ? t7.getAllResponseHeaders() : null);
                let r3 = new g2(t7.responseURL, n6, t7.response);
                X2(i3.getLicenseResponseFilters(), r3).then(() => {
                  const n7 = e5.getLicenseMessage(r3.data, u4, l5);
                  null !== n7 ? (V2(s4), M2.updateKeySession(a5, n7)) : Q2(t7, s4, u4, l5, e5);
                });
              } else
                Q2(t7, s4, u4, l5, e5);
          }, S4 = function(t7) {
            V2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + u4 + ' update, XHR aborted. status is "' + t7.statusText + '" (' + t7.status + "), readyState is " + t7.readyState));
          }, w4 = function(t7) {
            V2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + u4 + ' update, XHR error. status is "' + t7.statusText + '" (' + t7.status + "), readyState is " + t7.readyState));
          }, I4 = D2.getLicenseRequestFromMessage(_4), k4 = e5.getHTTPMethod(l5), A3 = e5.getResponseType(u4, l5), N3 = n5 && !isNaN(n5.httpTimeout) ? n5.httpTimeout : 8e3, C3 = a5.getSessionId() || null;
          let x3 = new f2(p4, k4, A3, b4, y4, l5, C3, I4);
          const P3 = isNaN(T3.get().streaming.retryAttempts[m2.HTTPRequest.LICENSE]) ? 3 : T3.get().streaming.retryAttempts[m2.HTTPRequest.LICENSE];
          X2(i3.getLicenseRequestFilters(), x3).then(() => {
            K2(x3, P3, N3, v4, S4, w4);
          });
        }(e4, u3, s3);
      } else
        V2(p3, new c2.default(d2.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE));
    }
    function V2(t5, e4 = null) {
      b3.trigger(y3.LICENSE_REQUEST_COMPLETE, { data: t5, error: e4 });
    }
    function K2(t5, e4, a4, r3, i4, l4) {
      const o3 = new XMLHttpRequest(), s3 = n3.getCmcdParametersFromManifest();
      if (n3.isCmcdEnabled() && (s3.mode ? s3.mode : T3.get().streaming.cmcd.mode) === p2.default.CMCD_MODE_QUERY) {
        const e5 = n3.getQueryParameter({ url: t5.url, type: m2.HTTPRequest.LICENSE });
        e5 && (t5.url = h2.default.addAdditionalQueryParameterToUrl(t5.url, [e5]));
      }
      o3.open(t5.method, t5.url, true), o3.responseType = t5.responseType, o3.withCredentials = t5.withCredentials, a4 > 0 && (o3.timeout = a4);
      for (const e5 in t5.headers)
        o3.setRequestHeader(e5, t5.headers[e5]);
      if (n3.isCmcdEnabled() && (s3.mode ? s3.mode : T3.get().streaming.cmcd.mode) === p2.default.CMCD_MODE_HEADER) {
        const e5 = n3.getHeaderParameters({ url: t5.url, type: m2.HTTPRequest.LICENSE });
        if (e5)
          for (const t6 in e5) {
            let n4 = e5[t6];
            n4 && o3.setRequestHeader(t6, n4);
          }
      }
      const u3 = function() {
        e4--;
        const n4 = isNaN(T3.get().streaming.retryIntervals[m2.HTTPRequest.LICENSE]) ? 1e3 : T3.get().streaming.retryIntervals[m2.HTTPRequest.LICENSE];
        I3 = setTimeout(function() {
          K2(t5, e4, a4, r3, i4, l4);
        }, n4);
      };
      o3.onload = function() {
        k3 = null, this.status >= 200 && this.status <= 299 || e4 <= 0 ? r3(this) : (A2.warn("License request failed (" + this.status + "). Retrying it... Pending retries: " + e4), u3());
      }, o3.ontimeout = o3.onerror = function() {
        k3 = null, e4 <= 0 ? l4(this) : (A2.warn("License request network request failed . Retrying it... Pending retries: " + e4), u3());
      }, o3.onabort = function() {
        i4(this);
      }, b3.trigger(y3.LICENSE_REQUEST_SENDING, { url: t5.url, headers: t5.headers, payload: t5.data, sessionId: t5.sessionId }), k3 = o3, o3.send(t5.data);
    }
    function W2() {
      k3 && (k3.onloadend = k3.onerror = k3.onprogress = void 0, k3.abort(), k3 = null), I3 && (clearTimeout(I3), I3 = null);
    }
    function $2(t5, e4) {
      if (e4)
        for (const n4 in e4)
          t5[n4] = e4[n4];
    }
    function Q2(t5, e4, n4, a4, r3) {
      let i4 = "NONE", l4 = null;
      t5.response && (i4 = r3.getErrorResponse(t5.response, n4, a4), l4 = { serverResponse: t5.response || null, responseCode: t5.status || null, responseText: t5.statusText || null }), V2(e4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + n4 + ' update, XHR complete. status is "' + t5.statusText + '" (' + t5.status + "), readyState is " + t5.readyState + ".  Response is " + i4, l4));
    }
    function X2(t5, e4) {
      return t5 ? t5.reduce((t6, n4) => t6.then(() => n4(e4)), Promise.resolve()) : Promise.resolve();
    }
    function Z2(t5, e4) {
      if (T3.get().streaming.protection.ignoreEmeEncryptedEvent)
        return;
      if (A2.debug("DRM: onNeedKey"), t5.key.initDataType !== r2.default.INITIALIZATION_DATA_TYPE_CENC)
        return void A2.warn("DRM:  Only 'cenc' initData is supported!  Ignoring initData of type: " + t5.key.initDataType);
      if (0 === R2.length && (A2.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"), (e4 = void 0 === e4 ? 1 : e4 + 1) < 5))
        return void P2.push(setTimeout(() => {
          Z2(t5, e4);
        }, 500));
      let n4 = t5.key.initData;
      if (ArrayBuffer.isView(n4) && (n4 = n4.buffer), D2) {
        const t6 = o2.getPSSHForKeySystem(D2, n4);
        if (t6 && B2(t6))
          return;
      }
      A2.debug("DRM: initData:", String.fromCharCode.apply(null, new Uint8Array(n4)));
      const a4 = E3.getSupportedKeySystemMetadataFromSegmentPssh(n4, _3, x2);
      0 !== a4.length ? function(t6) {
        N2.push(t6), z2(t6, false);
      }(a4) : A2.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!");
    }
    function J2(t5, e4) {
      if (t5.size <= 0)
        return false;
      if (e4.size > 0 && [...t5].every((t6) => {
        const n5 = e4.get(t6);
        return void 0 !== n5 && "" !== n5;
      }))
        return true;
      const n4 = M2.getSessionTokens();
      if (n4 && n4.length > 0) {
        const e5 = n4.filter((e6) => [...t5].includes(e6.normalizedKeyId));
        if (e5.some((t6) => !t6.hasTriggeredKeyStatusMapUpdate) || 0 === e5.length)
          return false;
      }
      return !T3.get().streaming.protection.ignoreKeyStatuses && t5 && t5.size > 0 && e4 && e4.size > 0;
    }
    return v3 = { areKeyIdsExpired: function(t5) {
      try {
        return !!J2(t5, S3) && [...t5].every((t6) => S3.get(t6) === r2.default.MEDIA_KEY_STATUSES.EXPIRED);
      } catch (t6) {
        return A2.error(t6), false;
      }
    }, areKeyIdsUsable: function(t5) {
      try {
        return !J2(t5, S3) || [...t5].some((t6) => {
          const e4 = S3.get(t6);
          return e4 && e4 !== r2.default.MEDIA_KEY_STATUSES.INTERNAL_ERROR && e4 !== r2.default.MEDIA_KEY_STATUSES.OUTPUT_RESTRICTED;
        });
      } catch (t6) {
        return A2.error(t6), true;
      }
    }, clearMediaInfoArray: function() {
      R2 = [];
    }, closeKeySession: G2, createKeySession: j2, getKeySystems: function() {
      return E3 ? E3.getKeySystems() : [];
    }, getSupportedKeySystemMetadataFromContentProtection: function(t5) {
      return O2(), E3.getSupportedKeySystemMetadataFromContentProtection(t5, _3, x2);
    }, handleKeySystemFromManifest: function() {
      if (!R2 || 0 === R2.length)
        return;
      let t5 = [];
      R2.forEach((e4) => {
        const n4 = E3.getSupportedKeySystemMetadataFromContentProtection(e4.contentProtection, _3, x2);
        n4.length > 0 && (0 === t5.length && (t5 = n4), N2.push(n4));
      }), t5 && t5.length > 0 && z2(t5, true);
    }, initializeForMedia: function(t5) {
      if (!t5)
        throw new Error("mediaInfo can not be null or undefined");
      O2(), R2.push(t5);
    }, loadKeySession: U2, removeKeySession: function(t5) {
      O2(), M2.removeKeySession(t5);
    }, reset: function() {
      b3.off(y3.INTERNAL_KEY_MESSAGE, Y2, v3), O2(), W2(), H2(null), D2 = null, w3 = false, S3 = /* @__PURE__ */ new Map(), M2 && (M2.reset(), M2 = null), P2.forEach((t5) => clearTimeout(t5)), P2 = [], R2 = [], N2 = [];
    }, setKeySystems: function(t5) {
      E3 && E3.setKeySystems(t5);
    }, setMediaElement: H2, setProtectionData: function(t5) {
      _3 = t5, E3.setProtectionData(t5);
    }, setRobustnessLevel: function(t5) {
      C2 = t5;
    }, setServerCertificate: function(t5) {
      return O2(), M2.setServerCertificate(t5);
    }, setSessionType: function(t5) {
      x2 = t5;
    }, stop: function() {
      W2(), M2 && M2.stop();
    }, updateKeyStatusesMap: function(t5) {
      try {
        if (!t5 || !t5.sessionToken || !t5.parsedKeyStatuses)
          return;
        t5.sessionToken.hasTriggeredKeyStatusMapUpdate = true;
        const e4 = t5.parsedKeyStatuses, n4 = h2.default.parseUserAgent(), a4 = n4 && n4.browser && n4.browser.name && "edge" === n4.browser.name.toLowerCase();
        e4.forEach((t6) => {
          a4 && D2.uuid === r2.default.PLAYREADY_UUID && t6.keyId && 16 === t6.keyId.byteLength && function(t7) {
            const e6 = h2.default.bufferSourceToDataView(t7), n5 = e6.getUint32(0, true), a5 = e6.getUint16(4, true), r3 = e6.getUint16(6, true);
            e6.setUint32(0, n5, false), e6.setUint16(4, a5, false), e6.setUint16(6, r3, false);
          }(t6.keyId);
          const e5 = h2.default.bufferSourceToHex(t6.keyId).slice(0, 32);
          e5 && "" !== e5 && S3.set(e5, t6.status);
        }), b3.trigger(y3.KEY_STATUSES_MAP_UPDATED, { keyStatusMap: S3 });
      } catch (t6) {
        A2.error(t6);
      }
    } }, A2 = l3.getLogger(v3), N2 = [], R2 = [], x2 = "temporary", C2 = "", k3 = null, I3 = null, S3 = /* @__PURE__ */ new Map(), b3.on(y3.INTERNAL_KEY_MESSAGE, Y2, v3), v3;
  }
  y2.__dashjs_factory_name = "ProtectionController";
  var E2 = b2.default.getClassFactory(y2), T2 = class {
    constructor(t4, e3) {
      this.keyID = t4, this.key = e3;
    }
  }, _2 = class {
    constructor(t4, e3) {
      if (e3 && "persistent" !== e3 && "temporary" !== e3)
        throw new Error("Invalid ClearKey key set type!  Must be one of 'persistent' or 'temporary'");
      this.keyPairs = t4, this.type = e3;
    }
    toJWK() {
      let t4, e3 = this.keyPairs.length, n3 = { keys: [] };
      for (t4 = 0; t4 < e3; t4++) {
        let e4 = { kty: "oct", alg: "A128KW", kid: this.keyPairs[t4].keyID, k: this.keyPairs[t4].key };
        n3.keys.push(e4);
      }
      this.type && (n3.type = this.type);
      let a3 = JSON.stringify(n3);
      const r3 = a3.length;
      let i3 = new ArrayBuffer(r3), l3 = new Uint8Array(i3);
      for (t4 = 0; t4 < r3; t4++)
        l3[t4] = a3.charCodeAt(t4);
      return i3;
    }
  };
  const v2 = r2.default.CLEARKEY_UUID, S2 = r2.default.CLEARKEY_KEYSTEM_STRING, w2 = "urn:uuid:" + v2;
  function I2(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).BASE64;
    return e3 = { uuid: v2, schemeIdURI: w2, systemString: S2, getInitData: function(t5, e4) {
      try {
        let a3 = o2.parseInitDataFromContentProtection(t5, n3);
        if (!a3 && e4) {
          const t6 = { kids: [function(t7) {
            try {
              let e5 = t7.replace(/-/g, "");
              return e5 = btoa(e5.match(/\w{2}/g).map((t8) => String.fromCharCode(parseInt(t8, 16))).join("")), e5.replace(/=/g, "").replace(/\//g, "_").replace(/\+/g, "-");
            } catch (t8) {
              return null;
            }
          }(e4.cencDefaultKid)] };
          a3 = new TextEncoder().encode(JSON.stringify(t6));
        }
        return a3;
      } catch (t6) {
        return null;
      }
    }, getRequestHeadersFromMessage: function() {
      return { "Content-Type": "application/json" };
    }, getLicenseRequestFromMessage: function(t5) {
      return JSON.stringify(JSON.parse(String.fromCharCode.apply(null, new Uint8Array(t5))));
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    }, getClearKeysFromProtectionData: function(t5, e4) {
      let n4 = null;
      if (t5) {
        const a3 = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(e4))), r3 = [];
        for (let e5 = 0; e5 < a3.kids.length; e5++) {
          const n5 = a3.kids[e5], i3 = t5.clearkeys && t5.clearkeys.hasOwnProperty(n5) ? t5.clearkeys[n5] : null;
          if (!i3)
            throw new Error("DRM: ClearKey keyID (" + n5 + ") is not known!");
          r3.push(new T2(n5, i3));
        }
        n4 = new _2(r3);
      }
      return n4;
    } }, e3;
  }
  I2.__dashjs_factory_name = "KeySystemClearKey";
  var k2 = b2.default.getSingletonFactory(I2);
  const A = r2.default.W3C_CLEARKEY_UUID, R = r2.default.CLEARKEY_KEYSTEM_STRING, N = "urn:uuid:" + A;
  function C(t4) {
    let e3;
    const n3 = t4.BASE64, a3 = t4.debug.getLogger(e3);
    return e3 = { uuid: A, schemeIdURI: N, systemString: R, getInitData: function(t5) {
      return o2.parseInitDataFromContentProtection(t5, n3);
    }, getRequestHeadersFromMessage: function() {
      return null;
    }, getLicenseRequestFromMessage: function(t5) {
      return new Uint8Array(t5);
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    }, getClearKeysFromProtectionData: function(t5, e4) {
      let n4 = null;
      if (t5) {
        const r3 = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(e4))), i3 = [];
        for (let e5 = 0; e5 < r3.kids.length; e5++) {
          const n5 = r3.kids[e5], a4 = t5.clearkeys && t5.clearkeys.hasOwnProperty(n5) ? t5.clearkeys[n5] : null;
          if (!a4)
            throw new Error("DRM: ClearKey keyID (" + n5 + ") is not known!");
          i3.push(new T2(n5, a4));
        }
        n4 = new _2(i3), a3.warn("ClearKey schemeIdURI is using W3C Common PSSH systemID (1077efec-c0b2-4d02-ace3-3c1e52e2fb4b) in Content Protection. See DASH-IF IOP v4.1 section 7.6.2.4");
      }
      return n4;
    } }, e3;
  }
  C.__dashjs_factory_name = "KeySystemW3CClearKey";
  var D = b2.default.getSingletonFactory(C);
  const x = r2.default.WIDEVINE_UUID, M = r2.default.WIDEVINE_KEYSTEM_STRING, P = "urn:uuid:" + x;
  function O(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).BASE64;
    return e3 = { uuid: x, schemeIdURI: P, systemString: M, getInitData: function(t5) {
      return o2.parseInitDataFromContentProtection(t5, n3);
    }, getRequestHeadersFromMessage: function() {
      return null;
    }, getLicenseRequestFromMessage: function(t5) {
      return new Uint8Array(t5);
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    } }, e3;
  }
  O.__dashjs_factory_name = "KeySystemWidevine";
  var z = b2.default.getSingletonFactory(O);
  const L = r2.default.PLAYREADY_UUID, F = r2.default.PLAYREADY_KEYSTEM_STRING, U = "urn:uuid:" + L;
  function j(t4) {
    let e3, n3 = "utf-16";
    const a3 = (t4 = t4 || {}).BASE64, r3 = t4.settings;
    function i3() {
      if (!a3 || !a3.hasOwnProperty("decodeArray") || !a3.hasOwnProperty("decodeArray"))
        throw new Error("Missing config parameter(s)");
    }
    return e3 = { uuid: L, schemeIdURI: U, systemString: F, getInitData: function(t5) {
      const e4 = new Uint8Array([112, 115, 115, 104, 0, 0, 0, 0]), n4 = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]);
      let r4, l3, s3, u3, d3, c3 = 0, f3 = null;
      if (i3(), !t5)
        return null;
      if ("pssh" in t5 && t5.pssh)
        return o2.parseInitDataFromContentProtection(t5, a3);
      if ("pro" in t5 && t5.pro)
        f3 = a3.decodeArray(t5.pro.__text);
      else {
        if (!("prheader" in t5) || !t5.prheader)
          return null;
        f3 = a3.decodeArray(t5.prheader.__text);
      }
      return r4 = f3.length, l3 = 4 + e4.length + n4.length + 4 + r4, s3 = new ArrayBuffer(l3), u3 = new Uint8Array(s3), d3 = new DataView(s3), d3.setUint32(c3, l3), c3 += 4, u3.set(e4, c3), c3 += e4.length, u3.set(n4, c3), c3 += n4.length, d3.setUint32(c3, r4), c3 += 4, u3.set(f3, c3), c3 += r4, u3.buffer;
    }, getRequestHeadersFromMessage: function(t5) {
      let e4, a4;
      const i4 = {}, l3 = new DOMParser();
      if (r3 && r3.get().streaming.protection.detectPlayreadyMessageFormat && "utf-16" === n3 && t5 && t5.byteLength % 2 == 1)
        return i4["Content-Type"] = "text/xml; charset=utf-8", i4;
      const o3 = "utf-16" === n3 ? new Uint16Array(t5) : new Uint8Array(t5);
      e4 = String.fromCharCode.apply(null, o3), a4 = l3.parseFromString(e4, "application/xml");
      const s3 = a4.getElementsByTagName("name"), u3 = a4.getElementsByTagName("value");
      for (let t6 = 0; t6 < s3.length; t6++)
        i4[s3[t6].childNodes[0].nodeValue] = u3[t6].childNodes[0].nodeValue;
      return i4.hasOwnProperty("Content") && (i4["Content-Type"] = i4.Content, delete i4.Content), i4.hasOwnProperty("Content-Type") || (i4["Content-Type"] = "text/xml; charset=utf-8"), i4;
    }, getLicenseRequestFromMessage: function(t5) {
      let e4 = null;
      const l3 = new DOMParser();
      if (r3 && r3.get().streaming.protection.detectPlayreadyMessageFormat && "utf-16" === n3 && t5 && t5.byteLength % 2 == 1)
        return t5;
      const o3 = "utf-16" === n3 ? new Uint16Array(t5) : new Uint8Array(t5);
      i3();
      const s3 = String.fromCharCode.apply(null, o3), u3 = l3.parseFromString(s3, "application/xml");
      if (!u3.getElementsByTagName("PlayReadyKeyMessage")[0])
        return t5;
      {
        const t6 = u3.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;
        t6 && (e4 = a3.decode(t6));
      }
      return e4;
    }, getLicenseServerURLFromInitData: function(t5) {
      if (t5) {
        const e4 = new DataView(t5), n4 = e4.getUint16(4, true);
        let a4 = 6;
        const r4 = new DOMParser();
        for (let i4 = 0; i4 < n4; i4++) {
          const n5 = e4.getUint16(a4, true);
          a4 += 2;
          const i5 = e4.getUint16(a4, true);
          if (a4 += 2, 1 !== n5) {
            a4 += i5;
            continue;
          }
          const l3 = t5.slice(a4, a4 + i5), o3 = String.fromCharCode.apply(null, new Uint16Array(l3)), s3 = r4.parseFromString(o3, "application/xml");
          if (s3.getElementsByTagName("LA_URL")[0]) {
            const t6 = s3.getElementsByTagName("LA_URL")[0].childNodes[0].nodeValue;
            if (t6)
              return t6;
          }
          if (s3.getElementsByTagName("LUI_URL")[0]) {
            const t6 = s3.getElementsByTagName("LUI_URL")[0].childNodes[0].nodeValue;
            if (t6)
              return t6;
          }
        }
      }
      return null;
    }, getCDMData: function(t5) {
      let e4, n4, r4, l3;
      if (i3(), !t5)
        return null;
      for (e4 = [], l3 = 0; l3 < t5.length; ++l3)
        e4.push(t5.charCodeAt(l3)), e4.push(0);
      for (e4 = String.fromCharCode.apply(null, e4), e4 = a3.encode(e4), n4 = '<PlayReadyCDMData type="LicenseAcquisition"><LicenseAcquisition version="1.0" Proactive="false"><CustomData encoding="base64encoded">%CUSTOMDATA%</CustomData></LicenseAcquisition></PlayReadyCDMData>'.replace("%CUSTOMDATA%", e4), r4 = [], l3 = 0; l3 < n4.length; ++l3)
        r4.push(n4.charCodeAt(l3)), r4.push(0);
      return new Uint8Array(r4).buffer;
    }, setPlayReadyMessageFormat: function(t5) {
      if ("utf-8" !== t5 && "utf-16" !== t5)
        throw new Error('Specified message format is not one of "utf-8" or "utf-16"');
      n3 = t5;
    } }, e3;
  }
  j.__dashjs_factory_name = "KeySystemPlayReady";
  var q = b2.default.getSingletonFactory(j);
  function B(t4) {
    const e3 = (t4 = t4 || {}).BASE64, n3 = {};
    let a3;
    return n3[r2.default.WIDEVINE_KEYSTEM_STRING] = { responseType: "json", getLicenseMessage: function(t5) {
      return e3.decodeArray(t5.license);
    }, getErrorResponse: function(t5) {
      return t5;
    } }, n3[r2.default.PLAYREADY_KEYSTEM_STRING] = { responseType: "arraybuffer", getLicenseMessage: function(t5) {
      return t5;
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, a3 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function(t5) {
      return n3[t5].responseType;
    }, getLicenseMessage: function(t5, a4) {
      return function() {
        if (!e3 || !e3.hasOwnProperty("decodeArray"))
          throw new Error("Missing config parameter(s)");
      }(), n3[a4].getLicenseMessage(t5);
    }, getErrorResponse: function(t5, e4) {
      return n3[e4].getErrorResponse(t5);
    } }, a3;
  }
  B.__dashjs_factory_name = "DRMToday";
  var G = b2.default.getSingletonFactory(B);
  function H() {
    let t4;
    const e3 = "http://schemas.xmlsoap.org/soap/envelope/";
    function n3(t5) {
      const e4 = String.fromCharCode.apply(null, new Uint8Array(t5));
      return decodeURIComponent(escape(e4));
    }
    function a3(t5) {
      if (window.DOMParser) {
        const a4 = n3(t5), r4 = new window.DOMParser().parseFromString(a4, "text/xml"), i3 = r4 ? r4.getElementsByTagNameNS(e3, "Envelope")[0] : null, l3 = i3 ? i3.getElementsByTagNameNS(e3, "Body")[0] : null;
        if (l3 && l3.getElementsByTagNameNS(e3, "Fault")[0])
          return null;
      }
      return t5;
    }
    function r3(t5) {
      let a4 = "", r4 = "", i3 = "", l3 = -1, o3 = -1;
      if (window.DOMParser) {
        const s4 = n3(t5), u3 = new window.DOMParser().parseFromString(s4, "text/xml"), d3 = u3 ? u3.getElementsByTagNameNS(e3, "Envelope")[0] : null, c3 = d3 ? d3.getElementsByTagNameNS(e3, "Body")[0] : null, f3 = c3 ? c3.getElementsByTagNameNS(e3, "Fault")[0] : null, g3 = f3 ? f3.getElementsByTagName("detail")[0] : null, m3 = g3 ? g3.getElementsByTagName("Exception")[0] : null;
        let h3 = null;
        if (null === f3)
          return s4;
        h3 = f3.getElementsByTagName("faultstring")[0].firstChild, a4 = h3 ? h3.nodeValue : null, null !== m3 && (h3 = m3.getElementsByTagName("StatusCode")[0], r4 = h3 ? h3.firstChild.nodeValue : null, h3 = m3.getElementsByTagName("Message")[0], i3 = h3 ? h3.firstChild.nodeValue : null, l3 = i3 ? i3.lastIndexOf("[") + 1 : -1, o3 = i3 ? i3.indexOf("]") : -1, i3 = i3 ? i3.substring(l3, o3) : "");
      }
      let s3 = `code: ${r4}, name: ${a4}`;
      return i3 && (s3 += `, message: ${i3}`), s3;
    }
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "arraybuffer";
    }, getLicenseMessage: function(t5) {
      return a3.call(this, t5);
    }, getErrorResponse: function(t5) {
      return r3.call(this, t5);
    } }, t4;
  }
  H.__dashjs_factory_name = "PlayReady";
  var Y = b2.default.getSingletonFactory(H);
  function V() {
    let t4;
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "arraybuffer";
    }, getLicenseMessage: function(t5) {
      return t5;
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, t4;
  }
  V.__dashjs_factory_name = "Widevine";
  var K = b2.default.getSingletonFactory(V);
  function W() {
    let t4;
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "json";
    }, getLicenseMessage: function(t5) {
      if (!t5.hasOwnProperty("keys"))
        return null;
      let e3 = [];
      for (let n3 = 0; n3 < t5.keys.length; n3++) {
        let a3 = t5.keys[n3], r3 = a3.kid.replace(/=/g, ""), i3 = a3.k.replace(/=/g, "");
        e3.push(new T2(r3, i3));
      }
      return new _2(e3);
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, t4;
  }
  W.__dashjs_factory_name = "ClearKey";
  var $ = b2.default.getSingletonFactory(W), Q = class {
    constructor(t4) {
      this.ks = t4.ks, this.keyId = t4.keyId, this.initData = t4.initData, this.protData = t4.protData, this.cdmData = t4.cdmData, this.sessionId = t4.sessionId, this.sessionType = t4.sessionType;
    }
  };
  function X() {
    let t4, e3, n3, a3, i3, l3, s3, u3, d3 = this.context;
    function c3(t5, e4) {
      return e4 && t5 in e4 ? e4[t5] : null;
    }
    function f3(t5, e4) {
      return t5 && t5.sessionId ? t5.sessionId : e4 && e4.sessionId ? e4.sessionId : null;
    }
    function g3(t5, e4) {
      return t5 && t5.sessionType ? t5.sessionType : e4;
    }
    return t4 = { getKeySystemBySystemString: function(t5) {
      for (let e4 = 0; e4 < a3.length; e4++)
        if (a3[e4].systemString === t5)
          return a3[e4];
      return null;
    }, getKeySystems: function() {
      return a3;
    }, getLicenseServerModelInstance: function(t5, e4, n4) {
      if (n4 === r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_RELEASE || n4 === r2.default.MEDIA_KEY_MESSAGE_TYPES.INDIVIDUALIZATION_REQUEST)
        return null;
      let a4 = null;
      return e4 && e4.hasOwnProperty("drmtoday") ? a4 = G(d3).getInstance({ BASE64: i3 }) : t5.systemString === r2.default.WIDEVINE_KEYSTEM_STRING ? a4 = K(d3).getInstance() : t5.systemString === r2.default.PLAYREADY_KEYSTEM_STRING ? a4 = Y(d3).getInstance() : t5.systemString === r2.default.CLEARKEY_KEYSTEM_STRING && (a4 = $(d3).getInstance()), a4;
    }, getSupportedKeySystemMetadataFromContentProtection: function(t5, e4, n4) {
      let r3, i4, l4, s4, u4 = [];
      if (!t5 || !t5.length)
        return u4;
      const d4 = o2.findMp4ProtectionElement(t5);
      for (l4 = 0; l4 < a3.length; l4++) {
        i4 = a3[l4];
        const o3 = c3(i4.systemString, e4);
        for (s4 = 0; s4 < t5.length; s4++)
          if (r3 = t5[s4], r3.schemeIdUri.toLowerCase() === i4.schemeIdURI) {
            let t6 = i4.getInitData(r3, d4);
            const e5 = new Q({ ks: a3[l4], keyId: r3.keyId, initData: t6, protData: o3, cdmData: i4.getCDMData(o3 ? o3.cdmData : null), sessionId: f3(o3, r3), sessionType: g3(o3, n4) });
            o3 ? u4.unshift(e5) : u4.push(e5);
          }
      }
      return u4;
    }, getSupportedKeySystemMetadataFromSegmentPssh: function(t5, e4, n4) {
      let r3, i4, l4 = [], s4 = o2.parsePSSHList(t5);
      for (let t6 = 0; t6 < a3.length; ++t6) {
        r3 = a3[t6], i4 = r3.systemString;
        const o3 = c3(i4, e4);
        r3.uuid in s4 && l4.push({ ks: r3, initData: s4[r3.uuid], protData: o3, cdmData: r3.getCDMData(o3 ? o3.cdmData : null), sessionId: f3(o3), sessionType: g3(o3, n4) });
      }
      return l4;
    }, initDataEquals: function(t5, e4) {
      if (t5.byteLength === e4.byteLength) {
        let n4 = new Uint8Array(t5), a4 = new Uint8Array(e4);
        for (let t6 = 0; t6 < n4.length; t6++)
          if (n4[t6] !== a4[t6])
            return false;
        return true;
      }
      return false;
    }, initialize: function() {
      let t5;
      a3 = [], t5 = q(d3).getInstance({ BASE64: i3, settings: l3 }), a3.push(t5), t5 = z(d3).getInstance({ BASE64: i3 }), a3.push(t5), t5 = k2(d3).getInstance({ BASE64: i3 }), a3.push(t5), s3 = t5, t5 = D(d3).getInstance({ BASE64: i3, debug: e3 }), a3.push(t5), u3 = t5;
    }, isClearKey: function(t5) {
      return t5 === s3 || t5 === u3;
    }, processClearKeyLicenseRequest: function(t5, e4, a4) {
      try {
        return t5.getClearKeysFromProtectionData(e4, a4);
      } catch (t6) {
        return n3.error("Failed to retrieve clearkeys from ProtectionData"), null;
      }
    }, setConfig: function(a4) {
      a4 && (a4.debug && (e3 = a4.debug, n3 = e3.getLogger(t4)), a4.BASE64 && (i3 = a4.BASE64), a4.settings && (l3 = a4.settings));
    }, setKeySystems: function(t5) {
      a3 = t5;
    }, setProtectionData: function(t5) {
      for (var e4, n4, r3 = 0; r3 < a3.length; r3++) {
        var i4 = a3[r3];
        i4.hasOwnProperty("init") && i4.init((e4 = i4.systemString, n4 = void 0, n4 = null, t5 && (n4 = e4 in t5 ? t5[e4] : null), n4));
      }
    } }, t4;
  }
  X.__dashjs_factory_name = "ProtectionKeyController";
  var Z = b2.default.getSingletonFactory(X), J = n2(445), tt = class {
    constructor(t4, e3) {
      this.initData = t4, this.initDataType = e3;
    }
  }, et = class {
    constructor(t4, e3, n3, a3) {
      this.sessionToken = t4, this.message = e3, this.defaultURL = n3, this.messageType = a3 || r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST;
    }
  }, nt = class {
    constructor(t4, e3) {
      this.keySystem = t4, this.ksConfiguration = e3, this.nativeMediaKeySystemAccessObject = null, this.selectedSystemString = null;
    }
  };
  const at = {};
  function rt(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug;
    let l3, o3, s3, u3, f3, g3, m3, h3;
    function p3(t5, e4, r3, i4) {
      if (void 0 === navigator.requestMediaKeySystemAccess || "function" != typeof navigator.requestMediaKeySystemAccess) {
        const t6 = "Insecure origins are not allowed";
        return n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), void i4({ error: t6 });
      }
      const l4 = t5[e4].protData && t5[e4].protData.systemStringPriority ? t5[e4].protData.systemStringPriority : null, o4 = t5[e4].configs, s4 = t5[e4].ks;
      let u4 = s4.systemString;
      (function(t6, e5) {
        return new Promise((n4, a4) => {
          b3(t6, e5, 0, n4, a4);
        });
      })(l4 || (at[u4] ? at[u4] : [u4]), o4).then((t6) => {
        const e5 = t6 && t6.nativeMediaKeySystemAccessObject && "function" == typeof t6.nativeMediaKeySystemAccessObject.getConfiguration ? t6.nativeMediaKeySystemAccessObject.getConfiguration() : null, i5 = new nt(s4, e5);
        i5.selectedSystemString = t6.selectedSystemString, i5.nativeMediaKeySystemAccessObject = t6.nativeMediaKeySystemAccessObject, n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: i5 }), r3({ data: i5 });
      }).catch((l5) => {
        if (e4 + 1 < t5.length)
          p3(t5, e4 + 1, r3, i4);
        else {
          const t6 = "Key system access denied! ";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 + l5.message }), i4({ error: t6 + l5.message });
        }
      });
    }
    function b3(t5, e4, n4, a4, r3) {
      const i4 = t5[n4];
      o3.debug(`Requesting key system access for system string ${i4}`), navigator.requestMediaKeySystemAccess(i4, e4).then((t6) => {
        a4({ nativeMediaKeySystemAccessObject: t6, selectedSystemString: i4 });
      }).catch((i5) => {
        n4 + 1 < t5.length ? b3(t5, e4, n4 + 1, a4, r3) : r3(i5);
      });
    }
    function y3(t5) {
      if (!t5 || !t5.session)
        return Promise.resolve;
      const e4 = t5.session;
      return e4.removeEventListener("keystatuseschange", t5), e4.removeEventListener("message", t5), e4.close();
    }
    function E3(t5) {
      for (let e4 = 0; e4 < g3.length; e4++)
        if (g3[e4] === t5) {
          g3.splice(e4, 1);
          break;
        }
    }
    function T3(t5, e4) {
      const i4 = { session: t5, keyId: e4.keyId, normalizedKeyId: e4 && e4.keyId && "string" == typeof e4.keyId ? e4.keyId.replace(/-/g, "").toLowerCase() : "", initData: e4.initData, sessionId: e4.sessionId, sessionType: e4.sessionType, hasTriggeredKeyStatusMapUpdate: false, handleEvent: function(t6) {
        switch (t6.type) {
          case "keystatuseschange":
            this._onKeyStatusesChange(t6);
            break;
          case "message":
            this._onKeyMessage(t6);
        }
      }, _onKeyStatusesChange: function(t6) {
        n3.trigger(a3.KEY_STATUSES_CHANGED, { data: this });
        const e5 = [];
        t6.target.keyStatuses.forEach(function() {
          e5.push(_3(arguments));
        }), n3.trigger(a3.INTERNAL_KEY_STATUSES_CHANGED, { parsedKeyStatuses: e5, sessionToken: i4 });
      }, _onKeyMessage: function(t6) {
        let e5 = ArrayBuffer.isView(t6.message) ? t6.message.buffer : t6.message;
        n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(this, e5, void 0, t6.messageType) });
      }, getKeyId: function() {
        return this.keyId;
      }, getSessionId: function() {
        return t5.sessionId;
      }, getSessionType: function() {
        return this.sessionType;
      }, getExpirationTime: function() {
        return t5.expiration;
      }, getKeyStatuses: function() {
        return t5.keyStatuses;
      }, getUsable: function() {
        let e5 = false;
        return t5.keyStatuses.forEach(function() {
          _3(arguments).status === r2.default.MEDIA_KEY_STATUSES.USABLE && (e5 = true);
        }), e5;
      } };
      return t5.addEventListener("keystatuseschange", i4), t5.addEventListener("message", i4), t5.closed.then(() => {
        E3(i4), o3.debug("DRM: Session closed.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CLOSED, { data: i4.getSessionId() });
      }), g3.push(i4), i4;
    }
    function _3(t5) {
      let e4, n4;
      return t5 && t5.length > 0 && (t5[0] && ("string" == typeof t5[0] ? e4 = t5[0] : n4 = t5[0]), t5[1] && ("string" == typeof t5[1] ? e4 = t5[1] : n4 = t5[1])), { status: e4, keyId: n4 };
    }
    return l3 = { closeKeySession: function(t5) {
      y3(t5).catch(function(e4) {
        E3(t5), n3.trigger(a3.KEY_SESSION_CLOSED, { data: null, error: "Error closing session (" + t5.getSessionId() + ") " + e4.name });
      });
    }, createKeySession: function(t5) {
      if (!s3 || !f3)
        throw new Error("Can not create sessions until you have selected a key system");
      const e4 = f3.createSession(t5.sessionType), i4 = T3(e4, t5), l4 = s3.systemString === r2.default.CLEARKEY_KEYSTEM_STRING && (t5.initData || t5.protData && t5.protData.clearkeys) ? r2.default.INITIALIZATION_DATA_TYPE_KEYIDS : r2.default.INITIALIZATION_DATA_TYPE_CENC;
      e4.generateRequest(l4, t5.initData).then(function() {
        o3.debug("DRM: Session created.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: i4 });
      }).catch(function(t6) {
        E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Error generating key request -- " + t6.name) });
      });
    }, getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < g3.length; e4++)
        g3[e4].initData && t5.push(g3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return g3;
    }, loadKeySession: function(t5) {
      if (!s3 || !f3)
        throw new Error("Can not load sessions until you have selected a key system");
      const e4 = t5.sessionId;
      for (let t6 = 0; t6 < g3.length; t6++)
        if (e4 === g3[t6].sessionId)
          return void o3.warn("DRM: Ignoring session ID because we have already seen it!");
      const r3 = f3.createSession(t5.sessionType), i4 = T3(r3, t5);
      i4.hasTriggeredKeyStatusMapUpdate = true, r3.load(e4).then(function(t6) {
        t6 ? (o3.debug("DRM: Session loaded.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: i4 })) : (E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Could not load session! Invalid Session ID (" + e4 + ")") }));
      }).catch(function(t6) {
        E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Could not load session (" + e4 + ")! " + t6.name) });
      });
    }, removeKeySession: function(t5) {
      t5.session.remove().then(function() {
        o3.debug("DRM: Session removed.  SessionID = " + t5.getSessionId()), n3.trigger(a3.KEY_SESSION_REMOVED, { data: t5.getSessionId() });
      }, function(e4) {
        n3.trigger(a3.KEY_SESSION_REMOVED, { data: null, error: "Error removing session (" + t5.getSessionId() + "). " + e4.name });
      });
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, n4) => {
        p3(t5, 0, e4, n4);
      });
    }, reset: function() {
      const t5 = g3.length;
      let e4;
      if (0 !== t5) {
        const r3 = function(t6) {
          E3(t6), 0 === g3.length && (u3 ? (u3.removeEventListener("encrypted", m3), u3.setMediaKeys(null).then(function() {
            n3.trigger(a3.TEARDOWN_COMPLETE);
          })) : n3.trigger(a3.TEARDOWN_COMPLETE));
        };
        for (let n4 = 0; n4 < t5; n4++)
          e4 = g3[n4], function(t6) {
            y3(e4), r3(t6);
          }(e4);
      } else
        n3.trigger(a3.TEARDOWN_COMPLETE);
    }, selectKeySystem: function(t5) {
      return new Promise((e4, n4) => {
        t5.nativeMediaKeySystemAccessObject.createMediaKeys().then((e5) => (s3 = t5.keySystem, f3 = e5, u3 ? u3.setMediaKeys(f3) : Promise.resolve())).then(() => {
          e4(s3);
        }).catch(function() {
          n4({ error: "Error selecting keys system (" + t5.keySystem.systemString + ")! Could not create MediaKeys -- TODO" });
        });
      });
    }, setMediaElement: function(t5) {
      u3 !== t5 && (u3 && (u3.removeEventListener("encrypted", m3), u3.setMediaKeys && u3.setMediaKeys(null)), u3 = t5, u3 && (u3.addEventListener("encrypted", m3), u3.setMediaKeys && f3 && u3.setMediaKeys(f3)));
    }, setServerCertificate: function(t5) {
      return new Promise((e4) => {
        f3.setServerCertificate(t5).then(function() {
          o3.info("DRM: License server certificate successfully updated."), n3.trigger(a3.SERVER_CERTIFICATE_UPDATED), e4();
        }).catch((t6) => {
          n3.trigger(a3.SERVER_CERTIFICATE_UPDATED, { error: new c2.default(d2.default.SERVER_CERTIFICATE_UPDATED_ERROR_CODE, d2.default.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE + t6.name) }), e4();
        });
      });
    }, stop: function() {
      let t5;
      for (let e4 = 0; e4 < g3.length; e4++)
        t5 = g3[e4], t5.getUsable() || (y3(t5), E3(t5));
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.session;
      h3.isClearKey(s3) && (e4 = e4.toJWK()), r3.update(e4).then(() => {
        n3.trigger(a3.KEY_SESSION_UPDATED);
      }).catch(function(e5) {
        n3.trigger(a3.KEY_ERROR, { error: new c2.default(d2.default.MEDIA_KEYERR_CODE, "Error sending update() message! " + e5.name, t5) });
      });
    } }, o3 = i3.getLogger(l3), s3 = null, u3 = null, f3 = null, g3 = [], h3 = Z(e3).getInstance(), m3 = { handleEvent: function(t5) {
      if ("encrypted" === t5.type && t5.initData) {
        let e4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
        n3.trigger(a3.NEED_KEY, { key: new tt(e4, t5.initDataType) });
      }
    } }, l3;
  }
  at[r2.default.PLAYREADY_KEYSTEM_STRING] = [r2.default.PLAYREADY_KEYSTEM_STRING, r2.default.PLAYREADY_RECOMMENDATION_KEYSTEM_STRING], at[r2.default.WIDEVINE_KEYSTEM_STRING] = [r2.default.WIDEVINE_KEYSTEM_STRING], at[r2.default.CLEARKEY_KEYSTEM_STRING] = [r2.default.CLEARKEY_KEYSTEM_STRING], rt.__dashjs_factory_name = "DefaultProtectionModel";
  var it = b2.default.getClassFactory(rt);
  function lt(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug, l3 = t4.api;
    let o3, s3, f3, g3, m3, h3, p3, b3, y3;
    function E3() {
      try {
        for (let t5 = 0; t5 < p3.length; t5++)
          T3(p3[t5]);
        f3 && f3.removeEventListener(l3.needkey, b3), n3.trigger(a3.TEARDOWN_COMPLETE);
      } catch (t5) {
        n3.trigger(a3.TEARDOWN_COMPLETE, { error: "Error tearing down key sessions and MediaKeys! -- " + t5.message });
      }
    }
    function T3(t5) {
      const e4 = t5.session;
      e4.removeEventListener(l3.error, t5), e4.removeEventListener(l3.message, t5), e4.removeEventListener(l3.ready, t5), e4.removeEventListener(l3.close, t5);
      for (let e5 = 0; e5 < p3.length; e5++)
        if (p3[e5] === t5) {
          p3.splice(e5, 1);
          break;
        }
      e4[l3.release]();
    }
    function _3() {
      let t5 = null;
      const e4 = function() {
        f3.removeEventListener("loadedmetadata", t5), f3[l3.setMediaKeys](m3), n3.trigger(a3.VIDEO_ELEMENT_SELECTED);
      };
      f3.readyState >= 1 ? e4() : (t5 = e4.bind(this), f3.addEventListener("loadedmetadata", t5));
    }
    return o3 = { getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < p3.length; e4++)
        t5.push(p3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return p3;
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, r3) => {
        let i4 = false;
        for (let r4 = 0; r4 < t5.length; r4++) {
          const o4 = t5[r4].ks.systemString, s4 = t5[r4].configs;
          let d3 = null, c3 = null;
          for (let t6 = 0; t6 < s4.length; t6++) {
            const r5 = s4[t6].audioCapabilities, f4 = s4[t6].videoCapabilities;
            if (r5 && 0 !== r5.length) {
              d3 = [];
              for (let t7 = 0; t7 < r5.length; t7++)
                window[l3.MediaKeys].isTypeSupported(o4, r5[t7].contentType) && d3.push(r5[t7]);
            }
            if (f4 && 0 !== f4.length) {
              c3 = [];
              for (let t7 = 0; t7 < f4.length; t7++)
                window[l3.MediaKeys].isTypeSupported(o4, f4[t7].contentType) && c3.push(f4[t7]);
            }
            if (!d3 && !c3 || d3 && 0 === d3.length || c3 && 0 === c3.length)
              continue;
            i4 = true;
            const g4 = new u2(d3, c3), m4 = y3.getKeySystemBySystemString(o4), h4 = new nt(m4, g4);
            n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: h4 }), e4({ data: h4 });
            break;
          }
        }
        if (!i4) {
          const t6 = "Key system access denied! -- No valid audio/video content configurations detected!";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), r3({ error: t6 });
        }
      });
    }, selectKeySystem: function(t5) {
      return new Promise((e4, n4) => {
        try {
          m3 = t5.mediaKeys = new window[l3.MediaKeys](t5.keySystem.systemString), g3 = t5.keySystem, h3 = t5, f3 && _3(), e4(g3);
        } catch (t6) {
          n4({ error: "Error selecting keys system (" + g3.systemString + ")! Could not create MediaKeys -- TODO" });
        }
      });
    }, setMediaElement: function(t5) {
      f3 !== t5 && (f3 && f3.removeEventListener(l3.needkey, b3), f3 = t5, f3 && (f3.addEventListener(l3.needkey, b3), m3 && _3()));
    }, createKeySession: function(t5) {
      if (!g3 || !m3 || !h3)
        throw new Error("Can not create sessions until you have selected a key system");
      let e4 = null;
      if (h3.ksConfiguration.videoCapabilities && h3.ksConfiguration.videoCapabilities.length > 0 && (e4 = h3.ksConfiguration.videoCapabilities[0]), null === e4 && h3.ksConfiguration.audioCapabilities && h3.ksConfiguration.audioCapabilities.length > 0 && (e4 = h3.ksConfiguration.audioCapabilities[0]), null === e4)
        throw new Error("Can not create sessions for unknown content types.");
      const r3 = e4.contentType, i4 = m3.createSession(r3, new Uint8Array(t5.initData), t5.cdmData ? new Uint8Array(t5.cdmData) : null), o4 = function(t6, e5) {
        return { session: t6, keyId: e5.keyId, normalizedKeyId: e5 && e5.keyId && "string" == typeof e5.keyId ? e5.keyId.replace(/-/g, "").toLowerCase() : "", initData: e5.initData, hasTriggeredKeyStatusMapUpdate: false, getKeyId: function() {
          return this.keyId;
        }, getSessionId: function() {
          return this.session.sessionId;
        }, getExpirationTime: function() {
          return NaN;
        }, getSessionType: function() {
          return "temporary";
        }, getKeyStatuses: function() {
          return { size: 0, has: () => false, get: () => {
          } };
        }, handleEvent: function(t7) {
          switch (t7.type) {
            case l3.error:
              let e6 = "KeyError";
              n3.trigger(a3.KEY_ERROR, { error: new c2.default(d2.default.MEDIA_KEYERR_CODE, e6, this) });
              break;
            case l3.message:
              let r4 = ArrayBuffer.isView(t7.message) ? t7.message.buffer : t7.message;
              n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(this, r4, t7.destinationURL) });
              break;
            case l3.ready:
              s3.debug("DRM: Key added."), n3.trigger(a3.KEY_ADDED);
              break;
            case l3.close:
              s3.debug("DRM: Session closed.  SessionID = " + this.getSessionId()), n3.trigger(a3.KEY_SESSION_CLOSED, { data: this.getSessionId() });
          }
        } };
      }(i4, t5);
      i4.addEventListener(l3.error, o4), i4.addEventListener(l3.message, o4), i4.addEventListener(l3.ready, o4), i4.addEventListener(l3.close, o4), p3.push(o4), s3.debug("DRM: Session created.  SessionID = " + o4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: o4 });
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.session;
      y3.isClearKey(g3) ? r3.update(new Uint8Array(e4.toJWK())) : r3.update(new Uint8Array(e4)), n3.trigger(a3.KEY_SESSION_UPDATED);
    }, closeKeySession: T3, setServerCertificate: function() {
      return Promise.resolve();
    }, loadKeySession: function() {
    }, removeKeySession: function() {
    }, stop: E3, reset: E3 }, s3 = i3.getLogger(o3), f3 = null, g3 = null, m3 = null, h3 = null, p3 = [], y3 = Z(e3).getInstance(), b3 = { handleEvent: function(t5) {
      if (t5.type === l3.needkey && t5.initData) {
        const e4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
        n3.trigger(a3.NEED_KEY, { key: new tt(e4, r2.default.INITIALIZATION_DATA_TYPE_CENC) });
      }
    } }, o3;
  }
  lt.__dashjs_factory_name = "ProtectionModel_3Feb2014";
  var ot = b2.default.getClassFactory(lt);
  function st(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug, l3 = t4.api, o3 = t4.errHandler;
    let s3, f3, g3, m3, h3, p3, b3, y3, E3;
    function T3() {
      g3 && S3();
      for (let t5 = 0; t5 < b3.length; t5++)
        _3(b3[t5]);
      n3.trigger(a3.TEARDOWN_COMPLETE);
    }
    function _3(t5) {
      try {
        g3[l3.cancelKeyRequest](m3.systemString, t5.sessionId);
      } catch (e4) {
        n3.trigger(a3.KEY_SESSION_CLOSED, { data: null, error: "Error closing session (" + t5.sessionId + ") " + e4.message });
      }
    }
    function v3(t5, e4) {
      if (e4 && t5) {
        const n4 = t5.length;
        for (let a4 = 0; a4 < n4; a4++)
          if (t5[a4].sessionId == e4)
            return t5[a4];
        return null;
      }
      return null;
    }
    function S3() {
      g3.removeEventListener(l3.keyerror, E3), g3.removeEventListener(l3.needkey, E3), g3.removeEventListener(l3.keymessage, E3), g3.removeEventListener(l3.keyadded, E3);
    }
    return s3 = { getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < p3.length; e4++)
        t5.push(p3[e4].initData);
      for (let e4 = 0; e4 < b3.length; e4++)
        t5.push(b3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return b3.concat(p3);
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, r3) => {
        let i4 = g3;
        i4 || (i4 = document.createElement("video"));
        let l4 = false;
        for (let r4 = 0; r4 < t5.length; r4++) {
          const o4 = t5[r4].ks.systemString, s4 = t5[r4].configs;
          let d3 = null, c3 = null;
          for (let t6 = 0; t6 < s4.length; t6++) {
            const r5 = s4[t6].videoCapabilities;
            if (r5 && 0 !== r5.length) {
              c3 = [];
              for (let t7 = 0; t7 < r5.length; t7++)
                "" !== i4.canPlayType(r5[t7].contentType, o4) && c3.push(r5[t7]);
            }
            if (!c3 || d3 || c3 && 0 === c3.length)
              continue;
            l4 = true;
            const f4 = new u2(d3, c3), g4 = h3.getKeySystemBySystemString(o4), m4 = new nt(g4, f4);
            n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: m4 }), e4({ data: m4 });
            break;
          }
        }
        if (!l4) {
          const t6 = "Key system access denied! -- No valid audio/video content configurations detected!";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), r3({ error: t6 });
        }
      });
    }, selectKeySystem: function(t5) {
      return m3 = t5.keySystem, Promise.resolve(m3);
    }, setMediaElement: function(t5) {
      if (g3 !== t5) {
        if (g3) {
          S3();
          for (var e4 = 0; e4 < b3.length; e4++)
            _3(b3[e4]);
          b3 = [];
        }
        g3 = t5, g3 && (g3.addEventListener(l3.keyerror, E3), g3.addEventListener(l3.needkey, E3), g3.addEventListener(l3.keymessage, E3), g3.addEventListener(l3.keyadded, E3), n3.trigger(a3.VIDEO_ELEMENT_SELECTED));
      }
    }, createKeySession: function(t5) {
      if (!m3)
        throw new Error("Can not create sessions until you have selected a key system");
      if (y3 || 0 === b3.length) {
        const e4 = { sessionId: null, keyId: t5.keyId, normalizedKeyId: t5 && t5.keyId && "string" == typeof t5.keyId ? t5.keyId.replace(/-/g, "").toLowerCase() : "", initData: t5.initData, hasTriggeredKeyStatusMapUpdate: false, getKeyId: function() {
          return this.keyId;
        }, getSessionId: function() {
          return this.sessionId;
        }, getExpirationTime: function() {
          return NaN;
        }, getSessionType: function() {
          return "temporary";
        }, getKeyStatuses: function() {
          return { size: 0, has: () => false, get: () => {
          } };
        } };
        return p3.push(e4), g3[l3.generateKeyRequest](m3.systemString, new Uint8Array(t5.initData)), e4;
      }
      throw new Error("Multiple sessions not allowed!");
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.sessionId;
      if (h3.isClearKey(m3))
        for (let t6 = 0; t6 < e4.keyPairs.length; t6++)
          g3[l3.addKey](m3.systemString, e4.keyPairs[t6].key, e4.keyPairs[t6].keyID, r3);
      else
        g3[l3.addKey](m3.systemString, new Uint8Array(e4), new Uint8Array(t5.initData), r3);
      n3.trigger(a3.KEY_SESSION_UPDATED);
    }, closeKeySession: _3, setServerCertificate: function() {
      return Promise.resolve();
    }, loadKeySession: function() {
    }, removeKeySession: function() {
    }, stop: T3, reset: T3 }, f3 = i3.getLogger(s3), g3 = null, m3 = null, p3 = [], b3 = [], h3 = Z(e3).getInstance(), E3 = { handleEvent: function(t5) {
      let e4 = null;
      switch (t5.type) {
        case l3.needkey:
          let i4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
          n3.trigger(a3.NEED_KEY, { key: new tt(i4, r2.default.INITIALIZATION_DATA_TYPE_CENC) });
          break;
        case l3.keyerror:
          if (e4 = v3(b3, t5.sessionId), e4 || (e4 = v3(p3, t5.sessionId)), e4) {
            let r3 = d2.default.MEDIA_KEYERR_CODE, i5 = "";
            switch (t5.errorCode.code) {
              case 1:
                r3 = d2.default.MEDIA_KEYERR_UNKNOWN_CODE, i5 += "MEDIA_KEYERR_UNKNOWN - " + d2.default.MEDIA_KEYERR_UNKNOWN_MESSAGE;
                break;
              case 2:
                r3 = d2.default.MEDIA_KEYERR_CLIENT_CODE, i5 += "MEDIA_KEYERR_CLIENT - " + d2.default.MEDIA_KEYERR_CLIENT_MESSAGE;
                break;
              case 3:
                r3 = d2.default.MEDIA_KEYERR_SERVICE_CODE, i5 += "MEDIA_KEYERR_SERVICE - " + d2.default.MEDIA_KEYERR_SERVICE_MESSAGE;
                break;
              case 4:
                r3 = d2.default.MEDIA_KEYERR_OUTPUT_CODE, i5 += "MEDIA_KEYERR_OUTPUT - " + d2.default.MEDIA_KEYERR_OUTPUT_MESSAGE;
                break;
              case 5:
                r3 = d2.default.MEDIA_KEYERR_HARDWARECHANGE_CODE, i5 += "MEDIA_KEYERR_HARDWARECHANGE - " + d2.default.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE;
                break;
              case 6:
                r3 = d2.default.MEDIA_KEYERR_DOMAIN_CODE, i5 += "MEDIA_KEYERR_DOMAIN - " + d2.default.MEDIA_KEYERR_DOMAIN_MESSAGE;
            }
            i5 += "  System Code = " + t5.systemCode, n3.trigger(a3.KEY_ERROR, { error: new c2.default(r3, i5, e4) });
          } else
            f3.error("No session token found for key error");
          break;
        case l3.keyadded:
          e4 = v3(b3, t5.sessionId), e4 || (e4 = v3(p3, t5.sessionId)), e4 ? (f3.debug("DRM: Key added."), n3.trigger(a3.KEY_ADDED, { data: e4 })) : f3.debug("No session token found for key added");
          break;
        case l3.keymessage:
          if (y3 = null !== t5.sessionId && void 0 !== t5.sessionId, y3 ? (e4 = v3(b3, t5.sessionId), !e4 && p3.length > 0 && (e4 = p3.shift(), b3.push(e4), e4.sessionId = t5.sessionId, n3.trigger(a3.KEY_SESSION_CREATED, { data: e4 }))) : p3.length > 0 && (e4 = p3.shift(), b3.push(e4), 0 !== p3.length && o3.error(new c2.default(d2.default.MEDIA_KEY_MESSAGE_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_ERROR_MESSAGE))), e4) {
            let r3 = ArrayBuffer.isView(t5.message) ? t5.message.buffer : t5.message;
            e4.keyMessage = r3, n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(e4, r3, t5.defaultURL) });
          } else
            f3.warn("No session token found for key message");
      }
    } }, s3;
  }
  st.__dashjs_factory_name = "ProtectionModel_01b";
  var ut = b2.default.getClassFactory(st);
  const dt = [{ generateKeyRequest: "generateKeyRequest", addKey: "addKey", cancelKeyRequest: "cancelKeyRequest", needkey: "needkey", keyerror: "keyerror", keyadded: "keyadded", keymessage: "keymessage" }, { generateKeyRequest: "webkitGenerateKeyRequest", addKey: "webkitAddKey", cancelKeyRequest: "webkitCancelKeyRequest", needkey: "webkitneedkey", keyerror: "webkitkeyerror", keyadded: "webkitkeyadded", keymessage: "webkitkeymessage" }], ct = [{ setMediaKeys: "setMediaKeys", MediaKeys: "MediaKeys", release: "close", needkey: "needkey", error: "keyerror", message: "keymessage", ready: "keyadded", close: "keyclose" }, { setMediaKeys: "msSetMediaKeys", MediaKeys: "MSMediaKeys", release: "close", needkey: "msneedkey", error: "mskeyerror", message: "mskeymessage", ready: "mskeyadded", close: "mskeyclose" }];
  function ft() {
    let t4;
    const e3 = this.context;
    function n3(t5, e4) {
      for (let n4 = 0; n4 < e4.length; n4++) {
        const a3 = e4[n4];
        if ("function" == typeof t5[a3[Object.keys(a3)[0]]])
          return a3;
      }
      return null;
    }
    return t4 = { createProtectionSystem: function(a3) {
      let r3 = null;
      const i3 = Z(e3).getInstance();
      i3.setConfig({ debug: a3.debug, BASE64: a3.BASE64, settings: a3.settings }), i3.initialize();
      let l3 = function(a4) {
        const r4 = a4.debug, i4 = r4.getLogger(t4), l4 = a4.eventBus, o3 = a4.errHandler, s3 = a4.videoModel ? a4.videoModel.getElement() : null;
        return s3 && void 0 === s3.onencrypted || s3 && void 0 === s3.mediaKeys ? n3(s3, ct) ? (i4.info("EME detected on this user agent! (ProtectionModel_3Feb2014)"), ot(e3).create({ debug: r4, eventBus: l4, events: a4.events, api: n3(s3, ct) })) : n3(s3, dt) ? (i4.info("EME detected on this user agent! (ProtectionModel_01b)"), ut(e3).create({ debug: r4, eventBus: l4, errHandler: o3, events: a4.events, api: n3(s3, dt) })) : (i4.warn("No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!"), null) : (i4.info("EME detected on this user agent! (DefaultProtectionModel"), it(e3).create({ debug: r4, eventBus: l4, events: a4.events }));
      }(a3);
      return l3 && (r3 = E2(e3).create({ BASE64: a3.BASE64, cmcdModel: a3.cmcdModel, constants: a3.constants, customParametersModel: a3.customParametersModel, debug: a3.debug, eventBus: a3.eventBus, events: a3.events, protectionKeyController: i3, protectionModel: l3, settings: a3.settings }), a3.capabilities.setEncryptedMediaSupported(true)), r3;
    } }, t4;
  }
  ft.__dashjs_factory_name = "Protection";
  const gt = b2.default.getClassFactory(ft);
  gt.events = J.default, gt.errors = d2.default, b2.default.updateClassFactory(ft.__dashjs_factory_name, gt);
  var mt = gt;
}, 445: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.INTERNAL_KEY_MESSAGE = "internalKeyMessage", this.INTERNAL_KEY_STATUSES_CHANGED = "internalkeyStatusesChanged", this.KEY_ADDED = "public_keyAdded", this.KEY_ERROR = "public_keyError", this.KEY_MESSAGE = "public_keyMessage", this.KEY_SESSION_CLOSED = "public_keySessionClosed", this.KEY_SESSION_CREATED = "public_keySessionCreated", this.KEY_SESSION_REMOVED = "public_keySessionRemoved", this.KEY_STATUSES_CHANGED = "public_keyStatusesChanged", this.KEY_STATUSES_MAP_UPDATED = "keyStatusesMapUpdated", this.KEY_SYSTEM_ACCESS_COMPLETE = "public_keySystemAccessComplete", this.KEY_SYSTEM_SELECTED = "public_keySystemSelected", this.LICENSE_REQUEST_COMPLETE = "public_licenseRequestComplete", this.LICENSE_REQUEST_SENDING = "public_licenseRequestSending", this.NEED_KEY = "needkey", this.PROTECTION_CREATED = "public_protectioncreated", this.PROTECTION_DESTROYED = "public_protectiondestroyed", this.SERVER_CERTIFICATE_UPDATED = "serverCertificateUpdated", this.TEARDOWN_COMPLETE = "protectionTeardownComplete", this.VIDEO_ELEMENT_SELECTED = "videoElementSelected", this.KEY_SESSION_UPDATED = "public_keySessionUpdated";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 1923: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(8748);
  class r2 extends a2.default {
    constructor() {
      super(), this.MEDIA_KEYERR_CODE = 100, this.MEDIA_KEYERR_UNKNOWN_CODE = 101, this.MEDIA_KEYERR_CLIENT_CODE = 102, this.MEDIA_KEYERR_SERVICE_CODE = 103, this.MEDIA_KEYERR_OUTPUT_CODE = 104, this.MEDIA_KEYERR_HARDWARECHANGE_CODE = 105, this.MEDIA_KEYERR_DOMAIN_CODE = 106, this.MEDIA_KEY_MESSAGE_ERROR_CODE = 107, this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE = 108, this.SERVER_CERTIFICATE_UPDATED_ERROR_CODE = 109, this.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE = 110, this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE = 111, this.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE = 112, this.KEY_SESSION_CREATED_ERROR_CODE = 113, this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE = 114, this.MEDIA_KEYERR_UNKNOWN_MESSAGE = "An unspecified error occurred. This value is used for errors that don't match any of the other codes.", this.MEDIA_KEYERR_CLIENT_MESSAGE = "The Key System could not be installed or updated.", this.MEDIA_KEYERR_SERVICE_MESSAGE = "The message passed into update indicated an error from the license service.", this.MEDIA_KEYERR_OUTPUT_MESSAGE = "There is no available output device with the required characteristics for the content protection system.", this.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE = "A hardware configuration change caused a content protection error.", this.MEDIA_KEYERR_DOMAIN_MESSAGE = "An error occurred in a multi-device domain licensing configuration. The most common error is a failure to join the domain.", this.MEDIA_KEY_MESSAGE_ERROR_MESSAGE = "Multiple key sessions were creates with a user-agent that does not support sessionIDs!! Unpredictable behavior ahead!", this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE = "DRM: Empty key message from CDM", this.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE = "Error updating server certificate -- ", this.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE = "DRM: KeyStatusChange error! -- License has expired", this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE = "DRM: No license server URL specified!", this.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE = "DRM: KeySystem Access Denied! -- ", this.KEY_SESSION_CREATED_ERROR_MESSAGE = "DRM: unable to create session! --", this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE = "DRM: licenser error! --";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 4246: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138);
  const r2 = { DEFAULT: 0.5, STRONG: 1, WEAK: 0 };
  function i2(t4, e3, n3, a3) {
    let i3, l3, o2, s2, u2;
    return l3 = void 0 === t4 ? null : t4, o2 = function(t5) {
      let e4 = r2.DEFAULT;
      return t5 !== r2.DEFAULT && t5 !== r2.STRONG && t5 !== r2.WEAK || (e4 = t5), e4;
    }(n3), s2 = void 0 === e3 ? null : e3, u2 = void 0 === a3 ? null : a3, i3 = { representation: l3, reason: s2, rule: u2, priority: o2 }, i3;
  }
  i2.__dashjs_factory_name = "SwitchRequest";
  const l2 = a2.default.getClassFactory(i2);
  l2.NO_CHANGE = null, l2.PRIORITY = r2, a2.default.updateClassFactory(i2.__dashjs_factory_name, l2), e2.default = l2;
}, 559: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { supportsMediaSource: function() {
    return s2;
  } });
  var a2 = n2(138), r2 = n2(5212), i2 = n2(2861), l2 = n2(7393), o2 = n2(649);
  function s2() {
    let t4 = "ManagedMediaSource" in window, e3 = "WebKitMediaSource" in window, n3 = "MediaSource" in window;
    return t4 || e3 || n3;
  }
  function u2() {
    let t4, e3, n3, a3, u3, d2;
    const c2 = this.context, f2 = (0, l2.default)(c2).getInstance();
    function g2(t5, e4) {
      let n4;
      e4 === r2.default.VIDEO ? n4 = function(t6) {
        const e5 = { video: {} };
        return t6 ? (t6.width && (e5.video.width = t6.width), t6.height && (e5.video.height = t6.height), t6.framerate && (e5.video.framerate = parseFloat(t6.framerate)), t6.hdrMetadataType && (e5.video.hdrMetadataType = t6.hdrMetadataType), t6.colorGamut && (e5.video.colorGamut = t6.colorGamut), t6.transferFunction && (e5.video.transferFunction = t6.transferFunction), e5) : e5;
      }(t5) : e4 === r2.default.AUDIO && (n4 = function(t6) {
        const e5 = { audio: {} };
        return t6.samplerate && (e5.audio.samplerate = t6.samplerate), t6.channels && (e5.audio.channels = t6.channels), e5;
      }(t5)), n4[e4].contentType = t5.codec, n4[e4].bitrate = parseInt(t5.bitrate), n4.type = "media-source";
      let a4 = t5.codec;
      return t5.width && t5.height && (a4 += ';width="' + t5.width + '";height="' + t5.height + '"'), n4.mediaSourceCodecString = a4, function(t6, e5, n5) {
        if (!e5 || !e5.keySystemsMetadata || 0 === e5.keySystemsMetadata.length)
          return [t6];
        const a5 = [];
        return e5.keySystemsMetadata.forEach((e6) => {
          if (!e6.ks)
            return void a5.push({ ...t6 });
          const l3 = e6.protData && e6.protData.systemStringPriority ? e6.protData.systemStringPriority : null;
          let o3 = e6.ks.systemString;
          (l3 || [o3]).forEach((l4) => {
            const o4 = { ...t6 };
            o4.keySystemConfiguration = {}, l4 && (o4.keySystemConfiguration.keySystem = l4);
            let s3 = "";
            e6.ks.systemString === i2.default.WIDEVINE_KEYSTEM_STRING && (s3 = i2.default.ROBUSTNESS_STRINGS.WIDEVINE.SW_SECURE_CRYPTO);
            const u4 = e6.protData, d3 = u4 && u4.audioRobustness && u4.audioRobustness.length > 0 ? u4.audioRobustness : s3, c3 = u4 && u4.videoRobustness && u4.videoRobustness.length > 0 ? u4.videoRobustness : s3;
            n5 === r2.default.AUDIO ? o4.keySystemConfiguration[n5] = { robustness: d3 } : n5 === r2.default.VIDEO && (o4.keySystemConfiguration[n5] = { robustness: c3 }), a5.push(o4);
          });
        }), a5;
      }(n4, t5, e4);
    }
    function m2(t5) {
      return e3.get().streaming.enhancement.codecs.some((e4) => t5.includes(e4));
    }
    function h2(t5) {
      if (a3 && 0 !== a3.length && t5)
        return a3.find((e4) => {
          const n4 = p2(t5, e4, r2.default.AUDIO), a4 = p2(t5, e4, r2.default.VIDEO), i3 = p2(t5, e4, "keySystemConfiguration");
          return n4 && a4 && i3;
        });
    }
    function p2(t5, e4, n4) {
      return !t5[n4] && !e4[n4] || !(!t5[n4] || !e4[n4]) && f2.areEqual(t5[n4], e4[n4]);
    }
    function b2(t5, e4) {
      return (t5 = t5.filter((t6) => !(t6.schemeIdUri && e4.some((e5) => e5.schemeIdUri === t6.schemeIdUri)))).push(...e4), t5;
    }
    return t4 = { areKeyIdsExpired: function(t5) {
      return !!(n3 && t5 && t5.normalizedKeyIds && 0 !== t5.normalizedKeyIds.size) && n3.areKeyIdsExpired(t5.normalizedKeyIds);
    }, areKeyIdsUsable: function(t5) {
      return !(n3 && t5 && t5.normalizedKeyIds && 0 !== t5.normalizedKeyIds.size) || n3.areKeyIdsUsable(t5.normalizedKeyIds);
    }, isCodecSupportedBasedOnTestedConfigurations: function(t5, e4) {
      if (!t5 || !t5.codec || false === t5.isSupported)
        return false;
      const n4 = g2(t5, e4).map((t6) => h2(t6)).filter((t6) => null != t6);
      return !(n4 && n4.length > 0) || function(t6) {
        return t6.some((t7) => t7 && t7.decodingInfo && t7.decodingInfo.supported);
      }(n4);
    }, isProtectionCompatible: function(t5, e4) {
      return !e4 || !(!t5.isEncrypted && e4.isEncrypted);
    }, runCodecSupportCheck: function(t5, n4) {
      if (n4 !== r2.default.AUDIO && n4 !== r2.default.VIDEO)
        return Promise.resolve();
      if (e3.get().streaming.enhancement.enabled && m2(t5.codec))
        return a3 = a3.filter((t6) => !m2(t6.mediaSourceCodecString)), Promise.resolve(true);
      const i3 = g2(t5, n4);
      return function(t6, n5) {
        return e3.get().streaming.capabilities.useMediaCapabilitiesApi && navigator.mediaCapabilities && navigator.mediaCapabilities.decodingInfo && (t6.codec && n5 === r2.default.AUDIO || n5 === r2.default.VIDEO && t6.codec && t6.width && t6.height && t6.bitrate && t6.framerate);
      }(t5, n4) ? function(t6) {
        return new Promise((e4) => {
          if (!t6 || 0 === t6.length)
            return void e4();
          const n5 = t6.map((t7) => function(t8) {
            return new Promise((e5) => {
              h2(t8) ? e5() : navigator.mediaCapabilities.decodingInfo(t8).then((n6) => {
                t8.decodingInfo = n6, a3.push(t8), e5();
              }).catch((n6) => {
                t8.decodingInfo = { supported: false }, a3.push(t8), d2.error(n6), e5();
              });
            });
          }(t7));
          Promise.allSettled(n5).then(() => {
            e4();
          }).catch((t7) => {
            d2.error(t7), e4();
          });
        });
      }(i3) : (function(t6) {
        if (!t6 || !t6.length)
          return;
        const e4 = t6[0];
        if (h2(e4))
          return;
        let n5 = { supported: false };
        ("ManagedMediaSource" in window && ManagedMediaSource.isTypeSupported(e4.mediaSourceCodecString) || "MediaSource" in window && MediaSource.isTypeSupported(e4.mediaSourceCodecString) || "WebKitMediaSource" in window && WebKitMediaSource.isTypeSupported(e4.mediaSourceCodecString)) && (n5.supported = true), e4.decodingInfo = n5, a3.push(e4);
      }(i3), Promise.resolve());
    }, setConfig: function(t5) {
      t5 && (t5.settings && (e3 = t5.settings), t5.protectionController && (n3 = t5.protectionController));
    }, setEncryptedMediaSupported: function(t5) {
      u3 = t5;
    }, setProtectionController: function(t5) {
      n3 = t5;
    }, supportsChangeType: function() {
      return !!window.SourceBuffer && !!SourceBuffer.prototype && !!SourceBuffer.prototype.changeType;
    }, supportsEncryptedMedia: function() {
      return u3;
    }, supportsEssentialProperty: function(t5) {
      let n4 = e3.get().streaming.capabilities.supportedEssentialProperties;
      e3.get().streaming.capabilities.useMediaCapabilitiesApi && e3.get().streaming.capabilities.filterVideoColorimetryEssentialProperties && (n4 = b2(n4, [{ schemeIdUri: r2.default.COLOUR_PRIMARIES_SCHEME_ID_URI }, { schemeIdUri: r2.default.MATRIX_COEFFICIENTS_SCHEME_ID_URI }, { schemeIdUri: r2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI }])), e3.get().streaming.capabilities.useMediaCapabilitiesApi && e3.get().streaming.capabilities.filterHDRMetadataFormatEssentialProperties && (n4 = b2(n4, [{ schemeIdUri: r2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI }]));
      try {
        return t5.inArray(n4);
      } catch (t6) {
        return true;
      }
    }, supportsMediaSource: s2 }, u3 = false, a3 = [], d2 = (0, o2.default)(c2).getInstance().getLogger(t4), t4;
  }
  u2.__dashjs_factory_name = "Capabilities", e2.default = a2.default.getSingletonFactory(u2);
}, 7377: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(656);
  function i2() {
    return { customTimeRangeArray: [], length: 0, add: function(t4, e3) {
      let n3;
      for (n3 = 0; n3 < this.customTimeRangeArray.length && t4 > this.customTimeRangeArray[n3].start; n3++)
        ;
      for (this.customTimeRangeArray.splice(n3, 0, { start: t4, end: e3 }), n3 = 0; n3 < this.customTimeRangeArray.length - 1; n3++)
        this.mergeRanges(n3, n3 + 1) && n3--;
      this.length = this.customTimeRangeArray.length;
    }, clear: function() {
      this.customTimeRangeArray = [], this.length = 0;
    }, remove: function(t4, e3) {
      for (let n3 = 0; n3 < this.customTimeRangeArray.length; n3++)
        if (t4 <= this.customTimeRangeArray[n3].start && e3 >= this.customTimeRangeArray[n3].end)
          this.customTimeRangeArray.splice(n3, 1), n3--;
        else {
          if (t4 > this.customTimeRangeArray[n3].start && e3 < this.customTimeRangeArray[n3].end) {
            this.customTimeRangeArray.splice(n3 + 1, 0, { start: e3, end: this.customTimeRangeArray[n3].end }), this.customTimeRangeArray[n3].end = t4;
            break;
          }
          t4 > this.customTimeRangeArray[n3].start && t4 < this.customTimeRangeArray[n3].end ? this.customTimeRangeArray[n3].end = t4 : e3 > this.customTimeRangeArray[n3].start && e3 < this.customTimeRangeArray[n3].end && (this.customTimeRangeArray[n3].start = e3);
        }
      this.length = this.customTimeRangeArray.length;
    }, mergeRanges: function(t4, e3) {
      let n3 = this.customTimeRangeArray[t4], a3 = this.customTimeRangeArray[e3];
      return n3.start <= a3.start && a3.start <= n3.end && n3.end <= a3.end ? (n3.end = a3.end, this.customTimeRangeArray.splice(e3, 1), true) : a3.start <= n3.start && n3.start <= a3.end && a3.end <= n3.end ? (n3.start = a3.start, this.customTimeRangeArray.splice(e3, 1), true) : a3.start <= n3.start && n3.start <= a3.end && n3.end <= a3.end ? (this.customTimeRangeArray.splice(t4, 1), true) : n3.start <= a3.start && a3.start <= n3.end && a3.end <= n3.end && (this.customTimeRangeArray.splice(e3, 1), true);
    }, start: function(t4) {
      return (0, r2.checkInteger)(t4), t4 >= this.customTimeRangeArray.length || t4 < 0 ? NaN : this.customTimeRangeArray[t4].start;
    }, end: function(t4) {
      return (0, r2.checkInteger)(t4), t4 >= this.customTimeRangeArray.length || t4 < 0 ? NaN : this.customTimeRangeArray[t4].end;
    } };
  }
  i2.__dashjs_factory_name = "CustomTimeRanges", e2.default = a2.default.getClassFactory(i2);
}, 7393: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(7316);
  function i2() {
    let t4;
    return t4 = { areEqual: function(t5, e3) {
      return r2(t5, e3);
    } }, t4;
  }
  i2.__dashjs_factory_name = "ObjectUtils", e2.default = a2.default.getSingletonFactory(i2);
}, 656: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { checkInteger: function() {
    return i2;
  }, checkIsVideoOrAudioType: function() {
    return o2;
  }, checkParameterType: function() {
    return r2;
  }, checkRange: function() {
    return l2;
  } });
  var a2 = n2(5212);
  function r2(t4, e3) {
    if (typeof t4 !== e3)
      throw a2.default.BAD_ARGUMENT_ERROR;
  }
  function i2(t4) {
    if (null === t4 || isNaN(t4) || t4 % 1 != 0)
      throw a2.default.BAD_ARGUMENT_ERROR + " : argument is not an integer";
  }
  function l2(t4, e3, n3) {
    if (t4 < e3 || t4 > n3)
      throw a2.default.BAD_ARGUMENT_ERROR + " : argument out of range";
  }
  function o2(t4) {
    if ("string" != typeof t4 || t4 !== a2.default.AUDIO && t4 !== a2.default.VIDEO)
      throw a2.default.BAD_ARGUMENT_ERROR;
  }
}, 1944: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    constructor(t4, e3, n3) {
      this.code = t4 || null, this.message = e3 || null, this.data = n3 || null;
    }
  };
}, 5560: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(8854);
  e2.default = class {
    constructor(t4) {
      this.id = t4.id, this.url = t4.url, this.language = t4.language, this.mimeType = t4.mimeType, this.bandwidth = t4.bandwidth, this.periodId = t4.periodId || null;
    }
    serializeToMpdParserFormat() {
      return { tagName: a2.default.ADAPTATION_SET, mimeType: this.mimeType, lang: this.language, Representation: [{ tagName: a2.default.REPRESENTATION, id: this.id, bandwidth: this.bandwidth, BaseURL: [{ tagName: a2.default.BASE_URL, __text: this.url }], mimeType: this.mimeType }] };
    }
  };
}, 7568: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { HTTPRequest: function() {
    return a2;
  }, HTTPRequestTrace: function() {
    return r2;
  } });
  class a2 {
    constructor() {
      this.tcpid = null, this.type = null, this.url = null, this.actualurl = null, this.range = null, this.trequest = null, this.tresponse = null, this.responsecode = null, this.interval = null, this.trace = [], this.cmsd = null, this._stream = null, this._tfinish = null, this._mediaduration = null, this._responseHeaders = null, this._serviceLocation = null, this._fileLoaderType = null, this._resourceTimingValues = null;
    }
  }
  class r2 {
    constructor() {
      this.s = null, this.d = null, this.b = [];
    }
  }
  a2.GET = "GET", a2.HEAD = "HEAD", a2.MPD_TYPE = "MPD", a2.XLINK_EXPANSION_TYPE = "XLinkExpansion", a2.INIT_SEGMENT_TYPE = "InitializationSegment", a2.INDEX_SEGMENT_TYPE = "IndexSegment", a2.MEDIA_SEGMENT_TYPE = "MediaSegment", a2.BITSTREAM_SWITCHING_SEGMENT_TYPE = "BitstreamSwitchingSegment", a2.MSS_FRAGMENT_INFO_SEGMENT_TYPE = "FragmentInfoSegment", a2.DVB_REPORTING_TYPE = "DVBReporting", a2.LICENSE = "license", a2.CONTENT_STEERING_TYPE = "ContentSteering", a2.OTHER_TYPE = "other";
} }, e = {};
function n(a2) {
  var r2 = e[a2];
  if (void 0 !== r2)
    return r2.exports;
  var i2 = e[a2] = { exports: {} };
  return t[a2].call(i2.exports, i2, i2.exports, n), i2.exports;
}
n.amdO = {}, n.d = function(t3, e2) {
  for (var a2 in e2)
    n.o(e2, a2) && !n.o(t3, a2) && Object.defineProperty(t3, a2, { enumerable: true, get: e2[a2] });
}, n.g = function() {
  if ("object" == typeof globalThis)
    return globalThis;
  try {
    return this || new Function("return this")();
  } catch (t3) {
    if ("object" == typeof window)
      return window;
  }
}(), n.o = function(t3, e2) {
  return Object.prototype.hasOwnProperty.call(t3, e2);
}, n.r = function(t3) {
  "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t3, "__esModule", { value: true });
};
var r = {};
n.r(r), n.d(r, { Constants: function() {
  return m.default;
}, Debug: function() {
  return g.default;
}, ExternalSubtitle: function() {
  return p.default;
}, MediaPlayer: function() {
  return i.MediaPlayer;
}, MediaPlayerFactory: function() {
  return f;
}, MetricsReporting: function() {
  return l.default;
}, Protection: function() {
  return o.default;
}, default: function() {
  return b;
}, supportsMediaSource: function() {
  return h.supportsMediaSource;
} });
var i = n(5393), l = n(4469), o = n(3888), u = n(8200);
let d, c = /* @__PURE__ */ function() {
  const t3 = "application/dash+xml";
  let e2;
  function n2(n3, a3, r2) {
    if (!n3 || !/^VIDEO$/i.test(n3.nodeName))
      return null;
    if (n3._dashjs_player)
      return n3._dashjs_player;
    let i2, l2 = n3.id || n3.name || "video element";
    if (!(a3 = a3 || [].slice.call(n3.querySelectorAll("source")).filter(function(e3) {
      return e3.type == t3;
    })[0]) && n3.src)
      (a3 = document.createElement("source")).src = n3.src;
    else if (!a3 && !n3.src)
      return null;
    return r2 = r2 || {}, i2 = (0, u.default)(r2).create(), i2.initialize(n3, a3.src, n3.autoplay), e2 || (e2 = i2.getDebug().getLogger()), e2.debug("Converted " + l2 + " to dash.js player and added content: " + a3.src), n3._dashjs_player = i2, i2;
  }
  function a2(t4) {
    return /^VIDEO$/i.test(t4.nodeName) ? t4 : a2(t4.parentNode);
  }
  return { create: n2, createAll: function(e3, r2) {
    let i2 = [];
    e3 = e3 || "[data-dashjs-player]";
    let l2 = (r2 = r2 || document).querySelectorAll(e3);
    for (let t4 = 0; t4 < l2.length; t4++) {
      let e4 = n2(l2[t4], null);
      i2.push(e4);
    }
    let o2 = r2.querySelectorAll('source[type="' + t3 + '"]');
    for (let t4 = 0; t4 < o2.length; t4++) {
      let e4 = n2(a2(o2[t4]), null);
      i2.push(e4);
    }
    return i2;
  } };
}();
!("undefined" != typeof window && window && window.dashjs && window.dashjs.skipAutoCreate) && "undefined" != typeof window && window && window.addEventListener && ("complete" === window.document.readyState ? window.dashjs ? c.createAll() : d = window.setInterval(function() {
  window.dashjs && (window.clearInterval(d), c.createAll());
}, 500) : window.addEventListener("load", function t2() {
  window.removeEventListener("load", t2), c.createAll();
}));
var f = c, g = n(649), m = n(5212), h = n(559), p = n(5560);
dashjs.Protection = o.default, dashjs.MetricsReporting = l.default, dashjs.MediaPlayerFactory = f, dashjs.Debug = g.default, dashjs.supportsMediaSource = h.supportsMediaSource, dashjs.Constants = m.default, dashjs.ExternalSubtitle = p.default;
var b = dashjs, y = (r = r.default).Constants, E = r.Debug, T = r.ExternalSubtitle, _ = r.MediaPlayer, v = r.MediaPlayerFactory, S = r.MetricsReporting, w = r.Protection, I = r.default, k = r.supportsMediaSource;
export {
  y as Constants,
  E as Debug,
  T as ExternalSubtitle,
  _ as MediaPlayer,
  v as MediaPlayerFactory,
  S as MetricsReporting,
  w as Protection,
  I as default,
  k as supportsMediaSource
};
