diff --git a/env.js b/env.js index 220600d..ec53de0 100644 --- a/env.js +++ b/env.js @@ -12,12 +12,14 @@ const envConfig = { baseURL: 'http://192.168.2.59:8081',//http://192.168.2.56:8081 //baseURL: 'http://1.95.137.212:59015',//http://192.168.2.56:8081 WS_URL: 'ws://192.168.2.59:9002/ws/', + geoserver_url: "http://192.168.2.59:7000/geoserver" }, [ENV.PROD]: { //baseURL: 'https://pvcloudservice.satabot.com', baseURL: 'http://1.95.137.212:59015',//http://192.168.2.56:8081 //baseURL: 'https://serviceri.satabot.com', - WS_URL: 'ws://1.95.137.212:59017/ws/' + WS_URL: 'ws://1.95.137.212:59017/ws/', + geoserver_url: "http://1.95.137.212:59018/geoserver" }, }; diff --git a/index.html b/index.html index 4aaa597..dd332d1 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,11 @@ href="https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/2.11.2/umd/veplayer.production.css" media="print" onload="this.media='all'"> - + + + + +
@@ -48,10 +52,7 @@ Promise.resolve() //.then(() => loadScript('/js/jswebrtc.min.js')) //.then(() => loadScript('/js/jswebrtcnew.js')) - .then(() => loadScript('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js')) - .then(() => loadScript('https://cdn.jsdelivr.net/npm/cesium@latest/Build/Cesium/Cesium.js')) - .then(() => loadScript('https://cdn.jsdelivr.net/npm/hls.js@1.5.8/dist/hls.min.js')) - .then(() => loadScript('https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/2.11.2/umd/veplayer.production.js')) + //.then(() => loadScript('https://cdn.jsdelivr.net/npm/cesium@latest/Build/Cesium/Cesium.js')) .then(() => { console.log('✅ 所有地图/视频SDK加载完成'); window.CESIUM_BASE_URL = "https://cdnjs.cloudflare.com/ajax/libs/cesium/1.114.0/"; diff --git a/public/js/hls.js b/public/js/hls.js new file mode 100644 index 0000000..3a0550b --- /dev/null +++ b/public/js/hls.js @@ -0,0 +1,2 @@ +!function t(e) { var r, i; r = this, i = function () { "use strict"; function r(t, e) { var r = Object.keys(t); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(t); e && (i = i.filter((function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable }))), r.push.apply(r, i) } return r } function i(t) { for (var e = 1; e < arguments.length; e++) { var i = null != arguments[e] ? arguments[e] : {}; e % 2 ? r(Object(i), !0).forEach((function (e) { var r, a, s; r = t, a = e, s = i[e], (a = n(a)) in r ? Object.defineProperty(r, a, { value: s, enumerable: !0, configurable: !0, writable: !0 }) : r[a] = s })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function (e) { Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e)) })) } return t } function n(t) { var e = function (t, e) { if ("object" != typeof t || !t) return t; var r = t[Symbol.toPrimitive]; if (void 0 !== r) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === e ? String : Number)(t) }(t, "string"); return "symbol" == typeof e ? e : String(e) } function a(t, e) { for (var r = 0; r < e.length; r++) { var i = e[r]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, n(i.key), i) } } function s(t, e, r) { return e && a(t.prototype, e), r && a(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t } function o() { return o = Object.assign ? Object.assign.bind() : function (t) { for (var e = 1; e < arguments.length; e++) { var r = arguments[e]; for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i]) } return t }, o.apply(this, arguments) } function l(t, e) { t.prototype = Object.create(e.prototype), t.prototype.constructor = t, h(t, e) } function u(t) { return u = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t) }, u(t) } function h(t, e) { return h = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t }, h(t, e) } function d(t, e, r) { return d = function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0 } catch (t) { return !1 } }() ? Reflect.construct.bind() : function (t, e, r) { var i = [null]; i.push.apply(i, e); var n = new (Function.bind.apply(t, i)); return r && h(n, r.prototype), n }, d.apply(null, arguments) } function c(t) { var e = "function" == typeof Map ? new Map : void 0; return c = function (t) { if (null === t || !function (t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]") } catch (e) { return "function" == typeof t } }(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) { if (e.has(t)) return e.get(t); e.set(t, r) } function r() { return d(t, arguments, u(this).constructor) } return r.prototype = Object.create(t.prototype, { constructor: { value: r, enumerable: !1, writable: !0, configurable: !0 } }), h(r, t) }, c(t) } function f(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, i = new Array(e); r < e; r++)i[r] = t[r]; return i } function g(t, e) { var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (r) return (r = r.call(t)).next.bind(r); if (Array.isArray(t) || (r = function (t, e) { if (t) { if ("string" == typeof t) return f(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? f(t, e) : void 0 } }(t)) || e && t && "number" == typeof t.length) { r && (t = r); var i = 0; return function () { return i >= t.length ? { done: !0 } : { done: !1, value: t[i++] } } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } function v(t) { return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t } var m = { exports: {} }; !function (t, e) { var r, i, n, a, s; r = /^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/, i = /^(?=([^\/?#]*))\1([^]*)$/, n = /(?:\/|^)\.(?=\/)/g, a = /(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g, s = { buildAbsoluteURL: function (t, e, r) { if (r = r || {}, t = t.trim(), !(e = e.trim())) { if (!r.alwaysNormalize) return t; var n = s.parseURL(t); if (!n) throw new Error("Error trying to parse base URL."); return n.path = s.normalizePath(n.path), s.buildURLFromParts(n) } var a = s.parseURL(e); if (!a) throw new Error("Error trying to parse relative URL."); if (a.scheme) return r.alwaysNormalize ? (a.path = s.normalizePath(a.path), s.buildURLFromParts(a)) : e; var o = s.parseURL(t); if (!o) throw new Error("Error trying to parse base URL."); if (!o.netLoc && o.path && "/" !== o.path[0]) { var l = i.exec(o.path); o.netLoc = l[1], o.path = l[2] } o.netLoc && !o.path && (o.path = "/"); var u = { scheme: o.scheme, netLoc: a.netLoc, path: null, params: a.params, query: a.query, fragment: a.fragment }; if (!a.netLoc && (u.netLoc = o.netLoc, "/" !== a.path[0])) if (a.path) { var h = o.path, d = h.substring(0, h.lastIndexOf("/") + 1) + a.path; u.path = s.normalizePath(d) } else u.path = o.path, a.params || (u.params = o.params, a.query || (u.query = o.query)); return null === u.path && (u.path = r.alwaysNormalize ? s.normalizePath(a.path) : a.path), s.buildURLFromParts(u) }, parseURL: function (t) { var e = r.exec(t); return e ? { scheme: e[1] || "", netLoc: e[2] || "", path: e[3] || "", params: e[4] || "", query: e[5] || "", fragment: e[6] || "" } : null }, normalizePath: function (t) { for (t = t.split("").reverse().join("").replace(n, ""); t.length !== (t = t.replace(a, "")).length;); return t.split("").reverse().join("") }, buildURLFromParts: function (t) { return t.scheme + t.netLoc + t.path + t.params + t.query + t.fragment } }, t.exports = s }(m); var p = m.exports, y = Number.isFinite || function (t) { return "number" == typeof t && isFinite(t) }, E = Number.isSafeInteger || function (t) { return "number" == typeof t && Math.abs(t) <= T }, T = Number.MAX_SAFE_INTEGER || 9007199254740991, S = function (t) { return t.MEDIA_ATTACHING = "hlsMediaAttaching", t.MEDIA_ATTACHED = "hlsMediaAttached", t.MEDIA_DETACHING = "hlsMediaDetaching", t.MEDIA_DETACHED = "hlsMediaDetached", t.BUFFER_RESET = "hlsBufferReset", t.BUFFER_CODECS = "hlsBufferCodecs", t.BUFFER_CREATED = "hlsBufferCreated", t.BUFFER_APPENDING = "hlsBufferAppending", t.BUFFER_APPENDED = "hlsBufferAppended", t.BUFFER_EOS = "hlsBufferEos", t.BUFFER_FLUSHING = "hlsBufferFlushing", t.BUFFER_FLUSHED = "hlsBufferFlushed", t.MANIFEST_LOADING = "hlsManifestLoading", t.MANIFEST_LOADED = "hlsManifestLoaded", t.MANIFEST_PARSED = "hlsManifestParsed", t.LEVEL_SWITCHING = "hlsLevelSwitching", t.LEVEL_SWITCHED = "hlsLevelSwitched", t.LEVEL_LOADING = "hlsLevelLoading", t.LEVEL_LOADED = "hlsLevelLoaded", t.LEVEL_UPDATED = "hlsLevelUpdated", t.LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", t.LEVELS_UPDATED = "hlsLevelsUpdated", t.AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", t.AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", t.AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", t.AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", t.AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", t.SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated", t.SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", t.SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", t.SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", t.SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", t.SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", t.CUES_PARSED = "hlsCuesParsed", t.NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", t.INIT_PTS_FOUND = "hlsInitPtsFound", t.FRAG_LOADING = "hlsFragLoading", t.FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", t.FRAG_LOADED = "hlsFragLoaded", t.FRAG_DECRYPTED = "hlsFragDecrypted", t.FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", t.FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", t.FRAG_PARSING_METADATA = "hlsFragParsingMetadata", t.FRAG_PARSED = "hlsFragParsed", t.FRAG_BUFFERED = "hlsFragBuffered", t.FRAG_CHANGED = "hlsFragChanged", t.FPS_DROP = "hlsFpsDrop", t.FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", t.MAX_AUTO_LEVEL_UPDATED = "hlsMaxAutoLevelUpdated", t.ERROR = "hlsError", t.DESTROYING = "hlsDestroying", t.KEY_LOADING = "hlsKeyLoading", t.KEY_LOADED = "hlsKeyLoaded", t.LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", t.BACK_BUFFER_REACHED = "hlsBackBufferReached", t.STEERING_MANIFEST_LOADED = "hlsSteeringManifestLoaded", t }({}), L = function (t) { return t.NETWORK_ERROR = "networkError", t.MEDIA_ERROR = "mediaError", t.KEY_SYSTEM_ERROR = "keySystemError", t.MUX_ERROR = "muxError", t.OTHER_ERROR = "otherError", t }({}), A = function (t) { return t.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", t.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", t.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", t.KEY_SYSTEM_NO_CONFIGURED_LICENSE = "keySystemNoConfiguredLicense", t.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = "keySystemServerCertificateRequestFailed", t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = "keySystemServerCertificateUpdateFailed", t.KEY_SYSTEM_SESSION_UPDATE_FAILED = "keySystemSessionUpdateFailed", t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = "keySystemStatusOutputRestricted", t.KEY_SYSTEM_STATUS_INTERNAL_ERROR = "keySystemStatusInternalError", t.MANIFEST_LOAD_ERROR = "manifestLoadError", t.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", t.MANIFEST_PARSING_ERROR = "manifestParsingError", t.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", t.LEVEL_EMPTY_ERROR = "levelEmptyError", t.LEVEL_LOAD_ERROR = "levelLoadError", t.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", t.LEVEL_PARSING_ERROR = "levelParsingError", t.LEVEL_SWITCH_ERROR = "levelSwitchError", t.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", t.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", t.SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", t.SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", t.FRAG_LOAD_ERROR = "fragLoadError", t.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", t.FRAG_DECRYPT_ERROR = "fragDecryptError", t.FRAG_PARSING_ERROR = "fragParsingError", t.FRAG_GAP = "fragGap", t.REMUX_ALLOC_ERROR = "remuxAllocError", t.KEY_LOAD_ERROR = "keyLoadError", t.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", t.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", t.BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError", t.BUFFER_APPEND_ERROR = "bufferAppendError", t.BUFFER_APPENDING_ERROR = "bufferAppendingError", t.BUFFER_STALLED_ERROR = "bufferStalledError", t.BUFFER_FULL_ERROR = "bufferFullError", t.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", t.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", t.INTERNAL_EXCEPTION = "internalException", t.INTERNAL_ABORTED = "aborted", t.UNKNOWN = "unknown", t }({}), R = function () { }, k = { trace: R, debug: R, log: R, warn: R, info: R, error: R }, b = k; function D(t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; r.forEach((function (e) { b[e] = t[e] ? t[e].bind(t) : function (t) { var e = self.console[t]; return e ? e.bind(self.console, "[" + t + "] >") : R }(e) })) } function I(t, e) { if ("object" == typeof console && !0 === t || "object" == typeof t) { D(t, "debug", "log", "info", "warn", "error"); try { b.log('Debug logs enabled for "' + e + '" in hls.js version 1.5.8') } catch (t) { b = k } } else b = k } var w = b, C = /^(\d+)x(\d+)$/, _ = /(.+?)=(".*?"|.*?)(?:,|$)/g, x = function () { function t(e) { "string" == typeof e && (e = t.parseAttrList(e)), o(this, e) } var e = t.prototype; return e.decimalInteger = function (t) { var e = parseInt(this[t], 10); return e > Number.MAX_SAFE_INTEGER ? 1 / 0 : e }, e.hexadecimalInteger = function (t) { if (this[t]) { var e = (this[t] || "0x").slice(2); e = (1 & e.length ? "0" : "") + e; for (var r = new Uint8Array(e.length / 2), i = 0; i < e.length / 2; i++)r[i] = parseInt(e.slice(2 * i, 2 * i + 2), 16); return r } return null }, e.hexadecimalIntegerAsNumber = function (t) { var e = parseInt(this[t], 16); return e > Number.MAX_SAFE_INTEGER ? 1 / 0 : e }, e.decimalFloatingPoint = function (t) { return parseFloat(this[t]) }, e.optionalFloat = function (t, e) { var r = this[t]; return r ? parseFloat(r) : e }, e.enumeratedString = function (t) { return this[t] }, e.bool = function (t) { return "YES" === this[t] }, e.decimalResolution = function (t) { var e = C.exec(this[t]); if (null !== e) return { width: parseInt(e[1], 10), height: parseInt(e[2], 10) } }, t.parseAttrList = function (t) { var e, r = {}; for (_.lastIndex = 0; null !== (e = _.exec(t));) { var i = e[2]; 0 === i.indexOf('"') && i.lastIndexOf('"') === i.length - 1 && (i = i.slice(1, -1)), r[e[1].trim()] = i } return r }, s(t, [{ key: "clientAttrs", get: function () { return Object.keys(this).filter((function (t) { return "X-" === t.substring(0, 2) })) } }]), t }(); function P(t) { return "SCTE35-OUT" === t || "SCTE35-IN" === t } var F = function () { function t(t, e) { if (this.attr = void 0, this._startDate = void 0, this._endDate = void 0, this._badValueForSameId = void 0, e) { var r = e.attr; for (var i in r) if (Object.prototype.hasOwnProperty.call(t, i) && t[i] !== r[i]) { w.warn('DATERANGE tag attribute: "' + i + '" does not match for tags with ID: "' + t.ID + '"'), this._badValueForSameId = i; break } t = o(new x({}), r, t) } if (this.attr = t, this._startDate = new Date(t["START-DATE"]), "END-DATE" in this.attr) { var n = new Date(this.attr["END-DATE"]); y(n.getTime()) && (this._endDate = n) } } return s(t, [{ key: "id", get: function () { return this.attr.ID } }, { key: "class", get: function () { return this.attr.CLASS } }, { key: "startDate", get: function () { return this._startDate } }, { key: "endDate", get: function () { if (this._endDate) return this._endDate; var t = this.duration; return null !== t ? new Date(this._startDate.getTime() + 1e3 * t) : null } }, { key: "duration", get: function () { if ("DURATION" in this.attr) { var t = this.attr.decimalFloatingPoint("DURATION"); if (y(t)) return t } else if (this._endDate) return (this._endDate.getTime() - this._startDate.getTime()) / 1e3; return null } }, { key: "plannedDuration", get: function () { return "PLANNED-DURATION" in this.attr ? this.attr.decimalFloatingPoint("PLANNED-DURATION") : null } }, { key: "endOnNext", get: function () { return this.attr.bool("END-ON-NEXT") } }, { key: "isValid", get: function () { return !!this.id && !this._badValueForSameId && y(this.startDate.getTime()) && (null === this.duration || this.duration >= 0) && (!this.endOnNext || !!this.class) } }]), t }(), M = function () { this.aborted = !1, this.loaded = 0, this.retry = 0, this.total = 0, this.chunkCount = 0, this.bwEstimate = 0, this.loading = { start: 0, first: 0, end: 0 }, this.parsing = { start: 0, end: 0 }, this.buffering = { start: 0, first: 0, end: 0 } }, O = "audio", N = "video", U = "audiovideo", B = function () { function t(t) { var e; this._byteRange = null, this._url = null, this.baseurl = void 0, this.relurl = void 0, this.elementaryStreams = ((e = {})[O] = null, e[N] = null, e[U] = null, e), this.baseurl = t } return t.prototype.setByteRange = function (t, e) { var r, i = t.split("@", 2); r = 1 === i.length ? (null == e ? void 0 : e.byteRangeEndOffset) || 0 : parseInt(i[1]), this._byteRange = [r, parseInt(i[0]) + r] }, s(t, [{ key: "byteRange", get: function () { return this._byteRange ? this._byteRange : [] } }, { key: "byteRangeStartOffset", get: function () { return this.byteRange[0] } }, { key: "byteRangeEndOffset", get: function () { return this.byteRange[1] } }, { key: "url", get: function () { return !this._url && this.baseurl && this.relurl && (this._url = p.buildAbsoluteURL(this.baseurl, this.relurl, { alwaysNormalize: !0 })), this._url || "" }, set: function (t) { this._url = t } }]), t }(), G = function (t) { function e(e, r) { var i; return (i = t.call(this, r) || this)._decryptdata = null, i.rawProgramDateTime = null, i.programDateTime = null, i.tagList = [], i.duration = 0, i.sn = 0, i.levelkeys = void 0, i.type = void 0, i.loader = null, i.keyLoader = null, i.level = -1, i.cc = 0, i.startPTS = void 0, i.endPTS = void 0, i.startDTS = void 0, i.endDTS = void 0, i.start = 0, i.deltaPTS = void 0, i.maxStartPTS = void 0, i.minEndPTS = void 0, i.stats = new M, i.data = void 0, i.bitrateTest = !1, i.title = null, i.initSegment = null, i.endList = void 0, i.gap = void 0, i.urlId = 0, i.type = e, i } l(e, t); var r = e.prototype; return r.setKeyFormat = function (t) { if (this.levelkeys) { var e = this.levelkeys[t]; e && !this._decryptdata && (this._decryptdata = e.getDecryptData(this.sn)) } }, r.abortRequests = function () { var t, e; null == (t = this.loader) || t.abort(), null == (e = this.keyLoader) || e.abort() }, r.setElementaryStreamInfo = function (t, e, r, i, n, a) { void 0 === a && (a = !1); var s = this.elementaryStreams, o = s[t]; o ? (o.startPTS = Math.min(o.startPTS, e), o.endPTS = Math.max(o.endPTS, r), o.startDTS = Math.min(o.startDTS, i), o.endDTS = Math.max(o.endDTS, n)) : s[t] = { startPTS: e, endPTS: r, startDTS: i, endDTS: n, partial: a } }, r.clearElementaryStreamInfo = function () { var t = this.elementaryStreams; t[O] = null, t[N] = null, t[U] = null }, s(e, [{ key: "decryptdata", get: function () { if (!this.levelkeys && !this._decryptdata) return null; if (!this._decryptdata && this.levelkeys && !this.levelkeys.NONE) { var t = this.levelkeys.identity; if (t) this._decryptdata = t.getDecryptData(this.sn); else { var e = Object.keys(this.levelkeys); if (1 === e.length) return this._decryptdata = this.levelkeys[e[0]].getDecryptData(this.sn) } } return this._decryptdata } }, { key: "end", get: function () { return this.start + this.duration } }, { key: "endProgramDateTime", get: function () { if (null === this.programDateTime) return null; if (!y(this.programDateTime)) return null; var t = y(this.duration) ? this.duration : 0; return this.programDateTime + 1e3 * t } }, { key: "encrypted", get: function () { var t; if (null != (t = this._decryptdata) && t.encrypted) return !0; if (this.levelkeys) { var e = Object.keys(this.levelkeys), r = e.length; if (r > 1 || 1 === r && this.levelkeys[e[0]].encrypted) return !0 } return !1 } }]), e }(B), K = function (t) { function e(e, r, i, n, a) { var s; (s = t.call(this, i) || this).fragOffset = 0, s.duration = 0, s.gap = !1, s.independent = !1, s.relurl = void 0, s.fragment = void 0, s.index = void 0, s.stats = new M, s.duration = e.decimalFloatingPoint("DURATION"), s.gap = e.bool("GAP"), s.independent = e.bool("INDEPENDENT"), s.relurl = e.enumeratedString("URI"), s.fragment = r, s.index = n; var o = e.enumeratedString("BYTERANGE"); return o && s.setByteRange(o, a), a && (s.fragOffset = a.fragOffset + a.duration), s } return l(e, t), s(e, [{ key: "start", get: function () { return this.fragment.start + this.fragOffset } }, { key: "end", get: function () { return this.start + this.duration } }, { key: "loaded", get: function () { var t = this.elementaryStreams; return !!(t.audio || t.video || t.audiovideo) } }]), e }(B), H = function () { function t(t) { this.PTSKnown = !1, this.alignedSliding = !1, this.averagetargetduration = void 0, this.endCC = 0, this.endSN = 0, this.fragments = void 0, this.fragmentHint = void 0, this.partList = null, this.dateRanges = void 0, this.live = !0, this.ageHeader = 0, this.advancedDateTime = void 0, this.updated = !0, this.advanced = !0, this.availabilityDelay = void 0, this.misses = 0, this.startCC = 0, this.startSN = 0, this.startTimeOffset = null, this.targetduration = 0, this.totalduration = 0, this.type = null, this.url = void 0, this.m3u8 = "", this.version = null, this.canBlockReload = !1, this.canSkipUntil = 0, this.canSkipDateRanges = !1, this.skippedSegments = 0, this.recentlyRemovedDateranges = void 0, this.partHoldBack = 0, this.holdBack = 0, this.partTarget = 0, this.preloadHint = void 0, this.renditionReports = void 0, this.tuneInGoal = 0, this.deltaUpdateFailed = void 0, this.driftStartTime = 0, this.driftEndTime = 0, this.driftStart = 0, this.driftEnd = 0, this.encryptedFragments = void 0, this.playlistParsingError = null, this.variableList = null, this.hasVariableRefs = !1, this.fragments = [], this.encryptedFragments = [], this.dateRanges = {}, this.url = t } return t.prototype.reloaded = function (t) { if (!t) return this.advanced = !0, void (this.updated = !0); var e = this.lastPartSn - t.lastPartSn, r = this.lastPartIndex - t.lastPartIndex; this.updated = this.endSN !== t.endSN || !!r || !!e || !this.live, this.advanced = this.endSN > t.endSN || e > 0 || 0 === e && r > 0, this.updated || this.advanced ? this.misses = Math.floor(.6 * t.misses) : this.misses = t.misses + 1, this.availabilityDelay = t.availabilityDelay }, s(t, [{ key: "hasProgramDateTime", get: function () { return !!this.fragments.length && y(this.fragments[this.fragments.length - 1].programDateTime) } }, { key: "levelTargetDuration", get: function () { return this.averagetargetduration || this.targetduration || 10 } }, { key: "drift", get: function () { var t = this.driftEndTime - this.driftStartTime; return t > 0 ? 1e3 * (this.driftEnd - this.driftStart) / t : 1 } }, { key: "edge", get: function () { return this.partEnd || this.fragmentEnd } }, { key: "partEnd", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].end : this.fragmentEnd } }, { key: "fragmentEnd", get: function () { var t; return null != (t = this.fragments) && t.length ? this.fragments[this.fragments.length - 1].end : 0 } }, { key: "age", get: function () { return this.advancedDateTime ? Math.max(Date.now() - this.advancedDateTime, 0) / 1e3 : 0 } }, { key: "lastPartIndex", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].index : -1 } }, { key: "lastPartSn", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].fragment.sn : this.endSN } }]), t }(); function V(t) { return Uint8Array.from(atob(t), (function (t) { return t.charCodeAt(0) })) } function Y(t) { var e, r, i = t.split(":"), n = null; if ("data" === i[0] && 2 === i.length) { var a = i[1].split(";"), s = a[a.length - 1].split(","); if (2 === s.length) { var o = "base64" === s[0], l = s[1]; o ? (a.splice(-1, 1), n = V(l)) : (e = W(l).subarray(0, 16), (r = new Uint8Array(16)).set(e, 16 - e.length), n = r) } } return n } function W(t) { return Uint8Array.from(unescape(encodeURIComponent(t)), (function (t) { return t.charCodeAt(0) })) } var j = "undefined" != typeof self ? self : void 0, q = { CLEARKEY: "org.w3.clearkey", FAIRPLAY: "com.apple.fps", PLAYREADY: "com.microsoft.playready", WIDEVINE: "com.widevine.alpha" }, X = "org.w3.clearkey", z = "com.apple.streamingkeydelivery", Q = "com.microsoft.playready", J = "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"; function $(t) { switch (t) { case z: return q.FAIRPLAY; case Q: return q.PLAYREADY; case J: return q.WIDEVINE; case X: return q.CLEARKEY } } var Z = "edef8ba979d64acea3c827dcd51d21ed"; function tt(t) { switch (t) { case q.FAIRPLAY: return z; case q.PLAYREADY: return Q; case q.WIDEVINE: return J; case q.CLEARKEY: return X } } function et(t) { var e = t.drmSystems, r = t.widevineLicenseUrl, i = e ? [q.FAIRPLAY, q.WIDEVINE, q.PLAYREADY, q.CLEARKEY].filter((function (t) { return !!e[t] })) : []; return !i[q.WIDEVINE] && r && i.push(q.WIDEVINE), i } var rt, it = null != j && null != (rt = j.navigator) && rt.requestMediaKeySystemAccess ? self.navigator.requestMediaKeySystemAccess.bind(self.navigator) : null; function nt(t, e, r) { return Uint8Array.prototype.slice ? t.slice(e, r) : new Uint8Array(Array.prototype.slice.call(t, e, r)) } var at, st = function (t, e) { return e + 10 <= t.length && 73 === t[e] && 68 === t[e + 1] && 51 === t[e + 2] && t[e + 3] < 255 && t[e + 4] < 255 && t[e + 6] < 128 && t[e + 7] < 128 && t[e + 8] < 128 && t[e + 9] < 128 }, ot = function (t, e) { return e + 10 <= t.length && 51 === t[e] && 68 === t[e + 1] && 73 === t[e + 2] && t[e + 3] < 255 && t[e + 4] < 255 && t[e + 6] < 128 && t[e + 7] < 128 && t[e + 8] < 128 && t[e + 9] < 128 }, lt = function (t, e) { for (var r = e, i = 0; st(t, e);)i += 10, i += ut(t, e + 6), ot(t, e + 10) && (i += 10), e += i; if (i > 0) return t.subarray(r, r + i) }, ut = function (t, e) { var r = 0; return r = (127 & t[e]) << 21, r |= (127 & t[e + 1]) << 14, r |= (127 & t[e + 2]) << 7, r |= 127 & t[e + 3] }, ht = function (t, e) { return st(t, e) && ut(t, e + 6) + 10 <= t.length - e }, dt = function (t) { for (var e = gt(t), r = 0; r < e.length; r++) { var i = e[r]; if (ct(i)) return Et(i) } }, ct = function (t) { return t && "PRIV" === t.key && "com.apple.streaming.transportStreamTimestamp" === t.info }, ft = function (t) { var e = String.fromCharCode(t[0], t[1], t[2], t[3]), r = ut(t, 4); return { type: e, size: r, data: t.subarray(10, 10 + r) } }, gt = function (t) { for (var e = 0, r = []; st(t, e);) { for (var i = ut(t, e + 6), n = (e += 10) + i; e + 8 < n;) { var a = ft(t.subarray(e)), s = vt(a); s && r.push(s), e += a.size + 10 } ot(t, e) && (e += 10) } return r }, vt = function (t) { return "PRIV" === t.type ? mt(t) : "W" === t.type[0] ? yt(t) : pt(t) }, mt = function (t) { if (!(t.size < 2)) { var e = Tt(t.data, !0), r = new Uint8Array(t.data.subarray(e.length + 1)); return { key: t.type, info: e, data: r.buffer } } }, pt = function (t) { if (!(t.size < 2)) { if ("TXXX" === t.type) { var e = 1, r = Tt(t.data.subarray(e), !0); e += r.length + 1; var i = Tt(t.data.subarray(e)); return { key: t.type, info: r, data: i } } var n = Tt(t.data.subarray(1)); return { key: t.type, data: n } } }, yt = function (t) { if ("WXXX" === t.type) { if (t.size < 2) return; var e = 1, r = Tt(t.data.subarray(e), !0); e += r.length + 1; var i = Tt(t.data.subarray(e)); return { key: t.type, info: r, data: i } } var n = Tt(t.data); return { key: t.type, data: n } }, Et = function (t) { if (8 === t.data.byteLength) { var e = new Uint8Array(t.data), r = 1 & e[3], i = (e[4] << 23) + (e[5] << 15) + (e[6] << 7) + e[7]; return i /= 45, r && (i += 47721858.84), Math.round(i) } }, Tt = function (t, e) { void 0 === e && (e = !1); var r = St(); if (r) { var i = r.decode(t); if (e) { var n = i.indexOf("\0"); return -1 !== n ? i.substring(0, n) : i } return i.replace(/\0/g, "") } for (var a, s, o, l = t.length, u = "", h = 0; h < l;) { if (0 === (a = t[h++]) && e) return u; if (0 !== a && 3 !== a) switch (a >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: u += String.fromCharCode(a); break; case 12: case 13: s = t[h++], u += String.fromCharCode((31 & a) << 6 | 63 & s); break; case 14: s = t[h++], o = t[h++], u += String.fromCharCode((15 & a) << 12 | (63 & s) << 6 | (63 & o) << 0) } } return u }; function St() { if (!navigator.userAgent.includes("PlayStation 4")) return at || void 0 === self.TextDecoder || (at = new self.TextDecoder("utf-8")), at } var Lt = function (t) { for (var e = "", r = 0; r < t.length; r++) { var i = t[r].toString(16); i.length < 2 && (i = "0" + i), e += i } return e }, At = Math.pow(2, 32) - 1, Rt = [].push, kt = { video: 1, audio: 2, id3: 3, text: 4 }; function bt(t) { return String.fromCharCode.apply(null, t) } function Dt(t, e) { var r = t[e] << 8 | t[e + 1]; return r < 0 ? 65536 + r : r } function It(t, e) { var r = Ct(t, e); return r < 0 ? 4294967296 + r : r } function wt(t, e) { var r = It(t, e); return r *= Math.pow(2, 32), r += It(t, e + 4) } function Ct(t, e) { return t[e] << 24 | t[e + 1] << 16 | t[e + 2] << 8 | t[e + 3] } function _t(t, e, r) { t[e] = r >> 24, t[e + 1] = r >> 16 & 255, t[e + 2] = r >> 8 & 255, t[e + 3] = 255 & r } function xt(t, e) { var r = []; if (!e.length) return r; for (var i = t.byteLength, n = 0; n < i;) { var a = It(t, n), s = a > 1 ? n + a : i; if (bt(t.subarray(n + 4, n + 8)) === e[0]) if (1 === e.length) r.push(t.subarray(n + 8, s)); else { var o = xt(t.subarray(n + 8, s), e.slice(1)); o.length && Rt.apply(r, o) } n = s } return r } function Pt(t) { var e = [], r = t[0], i = 8, n = It(t, i); i += 4; var a = 0, s = 0; 0 === r ? (a = It(t, i), s = It(t, i + 4), i += 8) : (a = wt(t, i), s = wt(t, i + 8), i += 16), i += 2; var o = t.length + s, l = Dt(t, i); i += 2; for (var u = 0; u < l; u++) { var h = i, d = It(t, h); h += 4; var c = 2147483647 & d; if (1 == (2147483648 & d) >>> 31) return w.warn("SIDX has hierarchical references (not supported)"), null; var f = It(t, h); h += 4, e.push({ referenceSize: c, subsegmentDuration: f, info: { duration: f / n, start: o, end: o + c - 1 } }), o += c, i = h += 4 } return { earliestPresentationTime: a, timescale: n, version: r, referencesCount: l, references: e } } function Ft(t) { for (var e = [], r = xt(t, ["moov", "trak"]), n = 0; n < r.length; n++) { var a = r[n], s = xt(a, ["tkhd"])[0]; if (s) { var o = s[0], l = It(s, 0 === o ? 12 : 20), u = xt(a, ["mdia", "mdhd"])[0]; if (u) { var h = It(u, 0 === (o = u[0]) ? 12 : 20), d = xt(a, ["mdia", "hdlr"])[0]; if (d) { var c = bt(d.subarray(8, 12)), f = { soun: O, vide: N }[c]; if (f) { var g = Mt(xt(a, ["mdia", "minf", "stbl", "stsd"])[0]); e[l] = { timescale: h, type: f }, e[f] = i({ timescale: h, id: l }, g) } } } } } return xt(t, ["moov", "mvex", "trex"]).forEach((function (t) { var r = It(t, 4), i = e[r]; i && (i.default = { duration: It(t, 12), flags: It(t, 20) }) })), e } function Mt(t) { var e = t.subarray(8), r = e.subarray(86), i = bt(e.subarray(4, 8)), n = i, a = "enca" === i || "encv" === i; if (a) { var s = xt(e, [i])[0]; xt(s.subarray("enca" === i ? 28 : 78), ["sinf"]).forEach((function (t) { var e = xt(t, ["schm"])[0]; if (e) { var r = bt(e.subarray(4, 8)); if ("cbcs" === r || "cenc" === r) { var i = xt(t, ["frma"])[0]; i && (n = bt(i)) } } })) } switch (n) { case "avc1": case "avc2": case "avc3": case "avc4": var o = xt(r, ["avcC"])[0]; n += "." + Nt(o[1]) + Nt(o[2]) + Nt(o[3]); break; case "mp4a": var l = xt(e, [i])[0], u = xt(l.subarray(28), ["esds"])[0]; if (u && u.length > 12) { var h = 4; if (3 !== u[h++]) break; h = Ot(u, h), h += 2; var d = u[h++]; if (128 & d && (h += 2), 64 & d && (h += u[h++]), 4 !== u[h++]) break; h = Ot(u, h); var c = u[h++]; if (64 !== c) break; if (n += "." + Nt(c), h += 12, 5 !== u[h++]) break; h = Ot(u, h); var f = u[h++], g = (248 & f) >> 3; 31 === g && (g += 1 + ((7 & f) << 3) + ((224 & u[h]) >> 5)), n += "." + g } break; case "hvc1": case "hev1": var v = xt(r, ["hvcC"])[0], m = v[1], p = ["", "A", "B", "C"][m >> 6], y = 31 & m, E = It(v, 2), T = (32 & m) >> 5 ? "H" : "L", S = v[12], L = v.subarray(6, 12); n += "." + p + y, n += "." + E.toString(16).toUpperCase(), n += "." + T + S; for (var A = "", R = L.length; R--;) { var k = L[R]; (k || A) && (A = "." + k.toString(16).toUpperCase() + A) } n += A; break; case "dvh1": case "dvhe": var b = xt(r, ["dvcC"])[0], D = b[2] >> 1 & 127, I = b[2] << 5 & 32 | b[3] >> 3 & 31; n += "." + Ut(D) + "." + Ut(I); break; case "vp09": var w = xt(r, ["vpcC"])[0], C = w[4], _ = w[5], x = w[6] >> 4 & 15; n += "." + Ut(C) + "." + Ut(_) + "." + Ut(x); break; case "av01": var P = xt(r, ["av1C"])[0], F = P[1] >>> 5, M = 31 & P[1], O = P[2] >>> 7 ? "H" : "M", N = (64 & P[2]) >> 6, U = (32 & P[2]) >> 5, B = 2 === F && N ? U ? 12 : 10 : N ? 10 : 8, G = (16 & P[2]) >> 4, K = (8 & P[2]) >> 3, H = (4 & P[2]) >> 2, V = 3 & P[2]; n += "." + F + "." + Ut(M) + O + "." + Ut(B) + "." + G + "." + K + H + V + "." + Ut(1) + "." + Ut(1) + "." + Ut(1) + ".0" }return { codec: n, encrypted: a } } function Ot(t, e) { for (var r = e + 5; 128 & t[e++] && e < r;); return e } function Nt(t) { return ("0" + t.toString(16).toUpperCase()).slice(-2) } function Ut(t) { return (t < 10 ? "0" : "") + t } function Bt(t) { var e = xt(t, ["schm"])[0]; if (e) { var r = bt(e.subarray(4, 8)); if ("cbcs" === r || "cenc" === r) return xt(t, ["schi", "tenc"])[0] } return w.error("[eme] missing 'schm' box"), null } function Gt(t) { var e = It(t, 0), r = 8; 1 & e && (r += 4), 4 & e && (r += 4); for (var i = 0, n = It(t, 4), a = 0; a < n; a++)256 & e && (i += It(t, r), r += 4), 512 & e && (r += 4), 1024 & e && (r += 4), 2048 & e && (r += 4); return i } function Kt(t, e) { var r = new Uint8Array(t.length + e.length); return r.set(t), r.set(e, t.length), r } function Ht(t, e) { var r = [], i = e.samples, n = e.timescale, a = e.id, s = !1; return xt(i, ["moof"]).map((function (o) { var l = o.byteOffset - 8; xt(o, ["traf"]).map((function (o) { var u = xt(o, ["tfdt"]).map((function (t) { var e = t[0], r = It(t, 4); return 1 === e && (r *= Math.pow(2, 32), r += It(t, 8)), r / n }))[0]; return void 0 !== u && (t = u), xt(o, ["tfhd"]).map((function (u) { var h = It(u, 4), d = 16777215 & It(u, 0), c = 0, f = 0 != (16 & d), g = 0, v = 0 != (32 & d), m = 8; h === a && (0 != (1 & d) && (m += 8), 0 != (2 & d) && (m += 4), 0 != (8 & d) && (c = It(u, m), m += 4), f && (g = It(u, m), m += 4), v && (m += 4), "video" === e.type && (s = function (t) { if (!t) return !1; var e = t.indexOf("."), r = e < 0 ? t : t.substring(0, e); return "hvc1" === r || "hev1" === r || "dvh1" === r || "dvhe" === r }(e.codec)), xt(o, ["trun"]).map((function (a) { var o = a[0], u = 16777215 & It(a, 0), h = 0 != (1 & u), d = 0, f = 0 != (4 & u), v = 0 != (256 & u), m = 0, p = 0 != (512 & u), y = 0, E = 0 != (1024 & u), T = 0 != (2048 & u), S = 0, L = It(a, 4), A = 8; h && (d = It(a, A), A += 4), f && (A += 4); for (var R = d + l, k = 0; k < L; k++) { if (v ? (m = It(a, A), A += 4) : m = c, p ? (y = It(a, A), A += 4) : y = g, E && (A += 4), T && (S = 0 === o ? It(a, A) : Ct(a, A), A += 4), e.type === N) for (var b = 0; b < y;) { var D = It(i, R); Vt(s, i[R += 4]) && Yt(i.subarray(R, R + D), s ? 2 : 1, t + S / n, r), R += D, b += D + 4 } t += m / n } }))) })) })) })), r } function Vt(t, e) { if (t) { var r = e >> 1 & 63; return 39 === r || 40 === r } return 6 == (31 & e) } function Yt(t, e, r, i) { var n = Wt(t), a = 0; a += e; for (var s = 0, o = 0, l = 0; a < n.length;) { s = 0; do { if (a >= n.length) break; s += l = n[a++] } while (255 === l); o = 0; do { if (a >= n.length) break; o += l = n[a++] } while (255 === l); var u = n.length - a, h = a; if (o < u) a += o; else if (o > u) { w.error("Malformed SEI payload. " + o + " is too small, only " + u + " bytes left to parse."); break } if (4 === s) { if (181 === n[h++]) { var d = Dt(n, h); if (h += 2, 49 === d) { var c = It(n, h); if (h += 4, 1195456820 === c) { var f = n[h++]; if (3 === f) { var g = n[h++], v = 64 & g, m = v ? 2 + 3 * (31 & g) : 0, p = new Uint8Array(m); if (v) { p[0] = g; for (var y = 1; y < m; y++)p[y] = n[h++] } i.push({ type: f, payloadType: s, pts: r, bytes: p }) } } } } } else if (5 === s && o > 16) { for (var E = [], T = 0; T < 16; T++) { var S = n[h++].toString(16); E.push(1 == S.length ? "0" + S : S), 3 !== T && 5 !== T && 7 !== T && 9 !== T || E.push("-") } for (var L = o - 16, A = new Uint8Array(L), R = 0; R < L; R++)A[R] = n[h++]; i.push({ payloadType: s, pts: r, uuid: E.join(""), userData: Tt(A), userDataBytes: A }) } } } function Wt(t) { for (var e = t.byteLength, r = [], i = 1; i < e - 2;)0 === t[i] && 0 === t[i + 1] && 3 === t[i + 2] ? (r.push(i + 2), i += 2) : i++; if (0 === r.length) return t; var n = e - r.length, a = new Uint8Array(n), s = 0; for (i = 0; i < n; s++, i++)s === r[0] && (s++, r.shift()), a[i] = t[s]; return a } function jt(t, e, r) { if (16 !== t.byteLength) throw new RangeError("Invalid system id"); var i, n, a; if (e) { i = 1, n = new Uint8Array(16 * e.length); for (var s = 0; s < e.length; s++) { var o = e[s]; if (16 !== o.byteLength) throw new RangeError("Invalid key"); n.set(o, 16 * s) } } else i = 0, n = new Uint8Array; i > 0 ? (a = new Uint8Array(4), e.length > 0 && new DataView(a.buffer).setUint32(0, e.length, !1)) : a = new Uint8Array; var l = new Uint8Array(4); return r && r.byteLength > 0 && new DataView(l.buffer).setUint32(0, r.byteLength, !1), function (t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; for (var n = r.length, a = 8, s = n; s--;)a += r[s].byteLength; var o = new Uint8Array(a); for (o[0] = a >> 24 & 255, o[1] = a >> 16 & 255, o[2] = a >> 8 & 255, o[3] = 255 & a, o.set(t, 4), s = 0, a = 8; s < n; s++)o.set(r[s], a), a += r[s].byteLength; return o }([112, 115, 115, 104], new Uint8Array([i, 0, 0, 0]), t, a, n, l, r || new Uint8Array) } var qt = {}, Xt = function () { function t(t, e, r, i, n) { void 0 === i && (i = [1]), void 0 === n && (n = null), this.uri = void 0, this.method = void 0, this.keyFormat = void 0, this.keyFormatVersions = void 0, this.encrypted = void 0, this.isCommonEncryption = void 0, this.iv = null, this.key = null, this.keyId = null, this.pssh = null, this.method = t, this.uri = e, this.keyFormat = r, this.keyFormatVersions = i, this.iv = n, this.encrypted = !!t && "NONE" !== t, this.isCommonEncryption = this.encrypted && "AES-128" !== t } t.clearKeyUriToKeyIdMap = function () { qt = {} }; var e = t.prototype; return e.isSupported = function () { if (this.method) { if ("AES-128" === this.method || "NONE" === this.method) return !0; if ("identity" === this.keyFormat) return "SAMPLE-AES" === this.method; switch (this.keyFormat) { case z: case J: case Q: case X: return -1 !== ["ISO-23001-7", "SAMPLE-AES", "SAMPLE-AES-CENC", "SAMPLE-AES-CTR"].indexOf(this.method) } } return !1 }, e.getDecryptData = function (e) { if (!this.encrypted || !this.uri) return null; if ("AES-128" === this.method && this.uri && !this.iv) { "number" != typeof e && ("AES-128" !== this.method || this.iv || w.warn('missing IV for initialization segment with method="' + this.method + '" - compliance issue'), e = 0); var r = function (t) { for (var e = new Uint8Array(16), r = 12; r < 16; r++)e[r] = t >> 8 * (15 - r) & 255; return e }(e); return new t(this.method, this.uri, "identity", this.keyFormatVersions, r) } var i = Y(this.uri); if (i) switch (this.keyFormat) { case J: this.pssh = i, i.length >= 22 && (this.keyId = i.subarray(i.length - 22, i.length - 6)); break; case Q: var n = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]); this.pssh = jt(n, null, i); var a = new Uint16Array(i.buffer, i.byteOffset, i.byteLength / 2), s = String.fromCharCode.apply(null, Array.from(a)), o = s.substring(s.indexOf("<"), s.length), l = (new DOMParser).parseFromString(o, "text/xml").getElementsByTagName("KID")[0]; if (l) { var u = l.childNodes[0] ? l.childNodes[0].nodeValue : l.getAttribute("VALUE"); if (u) { var h = V(u).subarray(0, 16); !function (t) { var e = function (t, e, r) { var i = t[e]; t[e] = t[r], t[r] = i }; e(t, 0, 3), e(t, 1, 2), e(t, 4, 5), e(t, 6, 7) }(h), this.keyId = h } } break; default: var d = i.subarray(0, 16); if (16 !== d.length) { var c = new Uint8Array(16); c.set(d, 16 - d.length), d = c } this.keyId = d }if (!this.keyId || 16 !== this.keyId.byteLength) { var f = qt[this.uri]; if (!f) { var g = Object.keys(qt).length % Number.MAX_SAFE_INTEGER; f = new Uint8Array(16), new DataView(f.buffer, 12, 4).setUint32(0, g), qt[this.uri] = f } this.keyId = f } return this }, t }(), zt = /\{\$([a-zA-Z0-9-_]+)\}/g; function Qt(t) { return zt.test(t) } function Jt(t, e, r) { if (null !== t.variableList || t.hasVariableRefs) for (var i = r.length; i--;) { var n = r[i], a = e[n]; a && (e[n] = $t(t, a)) } } function $t(t, e) { if (null !== t.variableList || t.hasVariableRefs) { var r = t.variableList; return e.replace(zt, (function (e) { var i = e.substring(2, e.length - 1), n = null == r ? void 0 : r[i]; return void 0 === n ? (t.playlistParsingError || (t.playlistParsingError = new Error('Missing preceding EXT-X-DEFINE tag for Variable Reference: "' + i + '"')), e) : n })) } return e } function Zt(t, e, r) { var i, n, a = t.variableList; if (a || (t.variableList = a = {}), "QUERYPARAM" in e) { i = e.QUERYPARAM; try { var s = new self.URL(r).searchParams; if (!s.has(i)) throw new Error('"' + i + '" does not match any query parameter in URI: "' + r + '"'); n = s.get(i) } catch (e) { t.playlistParsingError || (t.playlistParsingError = new Error("EXT-X-DEFINE QUERYPARAM: " + e.message)) } } else i = e.NAME, n = e.VALUE; i in a ? t.playlistParsingError || (t.playlistParsingError = new Error('EXT-X-DEFINE duplicate Variable Name declarations: "' + i + '"')) : a[i] = n || "" } function te(t, e, r) { var i = e.IMPORT; if (r && i in r) { var n = t.variableList; n || (t.variableList = n = {}), n[i] = r[i] } else t.playlistParsingError || (t.playlistParsingError = new Error('EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "' + i + '"')) } function ee(t) { if (void 0 === t && (t = !0), "undefined" != typeof self) return (t || !self.MediaSource) && self.ManagedMediaSource || self.MediaSource || self.WebKitMediaSource } var re = { audio: { a3ds: 1, "ac-3": .95, "ac-4": 1, alac: .9, alaw: 1, dra1: 1, "dts+": 1, "dts-": 1, dtsc: 1, dtse: 1, dtsh: 1, "ec-3": .9, enca: 1, fLaC: .9, flac: .9, FLAC: .9, g719: 1, g726: 1, m4ae: 1, mha1: 1, mha2: 1, mhm1: 1, mhm2: 1, mlpa: 1, mp4a: 1, "raw ": 1, Opus: 1, opus: 1, samr: 1, sawb: 1, sawp: 1, sevc: 1, sqcp: 1, ssmv: 1, twos: 1, ulaw: 1 }, video: { avc1: 1, avc2: 1, avc3: 1, avc4: 1, avcp: 1, av01: .8, drac: 1, dva1: 1, dvav: 1, dvh1: .7, dvhe: .7, encv: 1, hev1: .75, hvc1: .75, mjp2: 1, mp4v: 1, mvc1: 1, mvc2: 1, mvc3: 1, mvc4: 1, resv: 1, rv60: 1, s263: 1, svc1: 1, svc2: 1, "vc-1": 1, vp08: 1, vp09: .9 }, text: { stpp: 1, wvtt: 1 } }; function ie(t, e, r) { return void 0 === r && (r = !0), !t.split(",").some((function (t) { return !ne(t, e, r) })) } function ne(t, e, r) { var i; void 0 === r && (r = !0); var n = ee(r); return null != (i = null == n ? void 0 : n.isTypeSupported(ae(t, e))) && i } function ae(t, e) { return e + '/mp4;codecs="' + t + '"' } function se(t) { if (t) { var e = t.substring(0, 4); return re.video[e] } return 2 } function oe(t) { return t.split(",").reduce((function (t, e) { var r = re.video[e]; return r ? (2 * r + t) / (t ? 3 : 2) : (re.audio[e] + t) / (t ? 2 : 1) }), 0) } var le = {}, ue = /flac|opus/i; function he(t, e) { return void 0 === e && (e = !0), t.replace(ue, (function (t) { return function (t, e) { if (void 0 === e && (e = !0), le[t]) return le[t]; for (var r = { flac: ["flac", "fLaC", "FLAC"], opus: ["opus", "Opus"] }[t], i = 0; i < r.length; i++)if (ne(r[i], "audio", e)) return le[t] = r[i], r[i]; return t }(t.toLowerCase(), e) })) } function de(t, e) { return t && "mp4a" !== t ? t : e ? e.split(",")[0] : e } var ce = /#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g, fe = /#EXT-X-MEDIA:(.*)/g, ge = /^#EXT(?:INF|-X-TARGETDURATION):/m, ve = new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source, /(?!#) *(\S[\S ]*)/.source, /#EXT-X-BYTERANGE:*(.+)/.source, /#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, /#.*/.source].join("|"), "g"), me = new RegExp([/#(EXTM3U)/.source, /#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source, /#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source, /#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source, /(#)([^:]*):(.*)/.source, /(#)(.*)(?:.*)\r?\n?/.source].join("|")), pe = function () { function t() { } return t.findGroup = function (t, e) { for (var r = 0; r < t.length; r++) { var i = t[r]; if (i.id === e) return i } }, t.resolve = function (t, e) { return p.buildAbsoluteURL(e, t, { alwaysNormalize: !0 }) }, t.isMediaPlaylist = function (t) { return ge.test(t) }, t.parseMasterPlaylist = function (e, r) { var i, n = { contentSteering: null, levels: [], playlistParsingError: null, sessionData: null, sessionKeys: null, startTimeOffset: null, variableList: null, hasVariableRefs: Qt(e) }, a = []; for (ce.lastIndex = 0; null != (i = ce.exec(e));)if (i[1]) { var s, o = new x(i[1]); Jt(n, o, ["CODECS", "SUPPLEMENTAL-CODECS", "ALLOWED-CPC", "PATHWAY-ID", "STABLE-VARIANT-ID", "AUDIO", "VIDEO", "SUBTITLES", "CLOSED-CAPTIONS", "NAME"]); var l = $t(n, i[2]), u = { attrs: o, bitrate: o.decimalInteger("BANDWIDTH") || o.decimalInteger("AVERAGE-BANDWIDTH"), name: o.NAME, url: t.resolve(l, r) }, h = o.decimalResolution("RESOLUTION"); h && (u.width = h.width, u.height = h.height), Te(o.CODECS, u), null != (s = u.unknownCodecs) && s.length || a.push(u), n.levels.push(u) } else if (i[3]) { var d = i[3], c = i[4]; switch (d) { case "SESSION-DATA": var f = new x(c); Jt(n, f, ["DATA-ID", "LANGUAGE", "VALUE", "URI"]); var g = f["DATA-ID"]; g && (null === n.sessionData && (n.sessionData = {}), n.sessionData[g] = f); break; case "SESSION-KEY": var v = ye(c, r, n); v.encrypted && v.isSupported() ? (null === n.sessionKeys && (n.sessionKeys = []), n.sessionKeys.push(v)) : w.warn('[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "' + c + '"'); break; case "DEFINE": var m = new x(c); Jt(n, m, ["NAME", "VALUE", "QUERYPARAM"]), Zt(n, m, r); break; case "CONTENT-STEERING": var p = new x(c); Jt(n, p, ["SERVER-URI", "PATHWAY-ID"]), n.contentSteering = { uri: t.resolve(p["SERVER-URI"], r), pathwayId: p["PATHWAY-ID"] || "." }; break; case "START": n.startTimeOffset = Ee(c) } } var y = a.length > 0 && a.length < n.levels.length; return n.levels = y ? a : n.levels, 0 === n.levels.length && (n.playlistParsingError = new Error("no levels found in manifest")), n }, t.parseMasterPlaylistMedia = function (e, r, i) { var n, a = {}, s = i.levels, o = { AUDIO: s.map((function (t) { return { id: t.attrs.AUDIO, audioCodec: t.audioCodec } })), SUBTITLES: s.map((function (t) { return { id: t.attrs.SUBTITLES, textCodec: t.textCodec } })), "CLOSED-CAPTIONS": [] }, l = 0; for (fe.lastIndex = 0; null !== (n = fe.exec(e));) { var u = new x(n[1]), h = u.TYPE; if (h) { var d = o[h], c = a[h] || []; a[h] = c, Jt(i, u, ["URI", "GROUP-ID", "LANGUAGE", "ASSOC-LANGUAGE", "STABLE-RENDITION-ID", "NAME", "INSTREAM-ID", "CHARACTERISTICS", "CHANNELS"]); var f = u.LANGUAGE, g = u["ASSOC-LANGUAGE"], v = u.CHANNELS, m = u.CHARACTERISTICS, p = u["INSTREAM-ID"], y = { attrs: u, bitrate: 0, id: l++, groupId: u["GROUP-ID"] || "", name: u.NAME || f || "", type: h, default: u.bool("DEFAULT"), autoselect: u.bool("AUTOSELECT"), forced: u.bool("FORCED"), lang: f, url: u.URI ? t.resolve(u.URI, r) : "" }; if (g && (y.assocLang = g), v && (y.channels = v), m && (y.characteristics = m), p && (y.instreamId = p), null != d && d.length) { var E = t.findGroup(d, y.groupId) || d[0]; Se(y, E, "audioCodec"), Se(y, E, "textCodec") } c.push(y) } } return a }, t.parseLevelPlaylist = function (t, e, r, i, n, a) { var s, l, u, h = new H(e), d = h.fragments, c = null, f = 0, g = 0, v = 0, m = 0, p = null, E = new G(i, e), T = -1, S = !1, L = null; for (ve.lastIndex = 0, h.m3u8 = t, h.hasVariableRefs = Qt(t); null !== (s = ve.exec(t));) { S && (S = !1, (E = new G(i, e)).start = v, E.sn = f, E.cc = m, E.level = r, c && (E.initSegment = c, E.rawProgramDateTime = c.rawProgramDateTime, c.rawProgramDateTime = null, L && (E.setByteRange(L), L = null))); var A = s[1]; if (A) { E.duration = parseFloat(A); var R = (" " + s[2]).slice(1); E.title = R || null, E.tagList.push(R ? ["INF", A, R] : ["INF", A]) } else if (s[3]) { if (y(E.duration)) { E.start = v, u && Re(E, u, h), E.sn = f, E.level = r, E.cc = m, d.push(E); var k = (" " + s[3]).slice(1); E.relurl = $t(h, k), Le(E, p), p = E, v += E.duration, f++, g = 0, S = !0 } } else if (s[4]) { var b = (" " + s[4]).slice(1); p ? E.setByteRange(b, p) : E.setByteRange(b) } else if (s[5]) E.rawProgramDateTime = (" " + s[5]).slice(1), E.tagList.push(["PROGRAM-DATE-TIME", E.rawProgramDateTime]), -1 === T && (T = d.length); else { if (!(s = s[0].match(me))) { w.warn("No matches on slow regex match for level playlist!"); continue } for (l = 1; l < s.length && void 0 === s[l]; l++); var D = (" " + s[l]).slice(1), I = (" " + s[l + 1]).slice(1), C = s[l + 2] ? (" " + s[l + 2]).slice(1) : ""; switch (D) { case "PLAYLIST-TYPE": h.type = I.toUpperCase(); break; case "MEDIA-SEQUENCE": f = h.startSN = parseInt(I); break; case "SKIP": var _ = new x(I); Jt(h, _, ["RECENTLY-REMOVED-DATERANGES"]); var P = _.decimalInteger("SKIPPED-SEGMENTS"); if (y(P)) { h.skippedSegments = P; for (var M = P; M--;)d.unshift(null); f += P } var O = _.enumeratedString("RECENTLY-REMOVED-DATERANGES"); O && (h.recentlyRemovedDateranges = O.split("\t")); break; case "TARGETDURATION": h.targetduration = Math.max(parseInt(I), 1); break; case "VERSION": h.version = parseInt(I); break; case "INDEPENDENT-SEGMENTS": case "EXTM3U": break; case "ENDLIST": h.live = !1; break; case "#": (I || C) && E.tagList.push(C ? [I, C] : [I]); break; case "DISCONTINUITY": m++, E.tagList.push(["DIS"]); break; case "GAP": E.gap = !0, E.tagList.push([D]); break; case "BITRATE": E.tagList.push([D, I]); break; case "DATERANGE": var N = new x(I); Jt(h, N, ["ID", "CLASS", "START-DATE", "END-DATE", "SCTE35-CMD", "SCTE35-OUT", "SCTE35-IN"]), Jt(h, N, N.clientAttrs); var U = new F(N, h.dateRanges[N.ID]); U.isValid || h.skippedSegments ? h.dateRanges[U.id] = U : w.warn('Ignoring invalid DATERANGE tag: "' + I + '"'), E.tagList.push(["EXT-X-DATERANGE", I]); break; case "DEFINE": var B = new x(I); Jt(h, B, ["NAME", "VALUE", "IMPORT", "QUERYPARAM"]), "IMPORT" in B ? te(h, B, a) : Zt(h, B, e); break; case "DISCONTINUITY-SEQUENCE": m = parseInt(I); break; case "KEY": var V = ye(I, e, h); if (V.isSupported()) { if ("NONE" === V.method) { u = void 0; break } u || (u = {}), u[V.keyFormat] && (u = o({}, u)), u[V.keyFormat] = V } else w.warn('[Keys] Ignoring invalid EXT-X-KEY tag: "' + I + '"'); break; case "START": h.startTimeOffset = Ee(I); break; case "MAP": var Y = new x(I); if (Jt(h, Y, ["BYTERANGE", "URI"]), E.duration) { var W = new G(i, e); Ae(W, Y, r, u), c = W, E.initSegment = c, c.rawProgramDateTime && !E.rawProgramDateTime && (E.rawProgramDateTime = c.rawProgramDateTime) } else { var j = E.byteRangeEndOffset; if (j) { var q = E.byteRangeStartOffset; L = j - q + "@" + q } else L = null; Ae(E, Y, r, u), c = E, S = !0 } break; case "SERVER-CONTROL": var X = new x(I); h.canBlockReload = X.bool("CAN-BLOCK-RELOAD"), h.canSkipUntil = X.optionalFloat("CAN-SKIP-UNTIL", 0), h.canSkipDateRanges = h.canSkipUntil > 0 && X.bool("CAN-SKIP-DATERANGES"), h.partHoldBack = X.optionalFloat("PART-HOLD-BACK", 0), h.holdBack = X.optionalFloat("HOLD-BACK", 0); break; case "PART-INF": var z = new x(I); h.partTarget = z.decimalFloatingPoint("PART-TARGET"); break; case "PART": var Q = h.partList; Q || (Q = h.partList = []); var J = g > 0 ? Q[Q.length - 1] : void 0, $ = g++, Z = new x(I); Jt(h, Z, ["BYTERANGE", "URI"]); var tt = new K(Z, E, e, $, J); Q.push(tt), E.duration += tt.duration; break; case "PRELOAD-HINT": var et = new x(I); Jt(h, et, ["URI"]), h.preloadHint = et; break; case "RENDITION-REPORT": var rt = new x(I); Jt(h, rt, ["URI"]), h.renditionReports = h.renditionReports || [], h.renditionReports.push(rt); break; default: w.warn("line parsed but not handled: " + s) } } } p && !p.relurl ? (d.pop(), v -= p.duration, h.partList && (h.fragmentHint = p)) : h.partList && (Le(E, p), E.cc = m, h.fragmentHint = E, u && Re(E, u, h)); var it = d.length, nt = d[0], at = d[it - 1]; if ((v += h.skippedSegments * h.targetduration) > 0 && it && at) { h.averagetargetduration = v / it; var st = at.sn; h.endSN = "initSegment" !== st ? st : 0, h.live || (at.endList = !0), nt && (h.startCC = nt.cc) } else h.endSN = 0, h.startCC = 0; return h.fragmentHint && (v += h.fragmentHint.duration), h.totalduration = v, h.endCC = m, T > 0 && function (t, e) { for (var r = t[e], i = e; i--;) { var n = t[i]; if (!n) return; n.programDateTime = r.programDateTime - 1e3 * n.duration, r = n } }(d, T), h }, t }(); function ye(t, e, r) { var i, n, a = new x(t); Jt(r, a, ["KEYFORMAT", "KEYFORMATVERSIONS", "URI", "IV", "URI"]); var s = null != (i = a.METHOD) ? i : "", o = a.URI, l = a.hexadecimalInteger("IV"), u = a.KEYFORMATVERSIONS, h = null != (n = a.KEYFORMAT) ? n : "identity"; o && a.IV && !l && w.error("Invalid IV: " + a.IV); var d = o ? pe.resolve(o, e) : "", c = (u || "1").split("/").map(Number).filter(Number.isFinite); return new Xt(s, d, h, c, l) } function Ee(t) { var e = new x(t).decimalFloatingPoint("TIME-OFFSET"); return y(e) ? e : null } function Te(t, e) { var r = (t || "").split(/[ ,]+/).filter((function (t) { return t }));["video", "audio", "text"].forEach((function (t) { var i = r.filter((function (e) { return function (t, e) { var r = re[e]; return !!r && !!r[t.slice(0, 4)] }(e, t) })); i.length && (e[t + "Codec"] = i.join(","), r = r.filter((function (t) { return -1 === i.indexOf(t) }))) })), e.unknownCodecs = r } function Se(t, e, r) { var i = e[r]; i && (t[r] = i) } function Le(t, e) { t.rawProgramDateTime ? t.programDateTime = Date.parse(t.rawProgramDateTime) : null != e && e.programDateTime && (t.programDateTime = e.endProgramDateTime), y(t.programDateTime) || (t.programDateTime = null, t.rawProgramDateTime = null) } function Ae(t, e, r, i) { t.relurl = e.URI, e.BYTERANGE && t.setByteRange(e.BYTERANGE), t.level = r, t.sn = "initSegment", i && (t.levelkeys = i), t.initSegment = null } function Re(t, e, r) { t.levelkeys = e; var i = r.encryptedFragments; i.length && i[i.length - 1].levelkeys === e || !Object.keys(e).some((function (t) { return e[t].isCommonEncryption })) || i.push(t) } var ke = "manifest", be = "level", De = "audioTrack", Ie = "subtitleTrack", we = "main", Ce = "audio", _e = "subtitle"; function xe(t) { switch (t.type) { case De: return Ce; case Ie: return _e; default: return we } } function Pe(t, e) { var r = t.url; return void 0 !== r && 0 !== r.indexOf("data:") || (r = e.url), r } var Fe = function () { function t(t) { this.hls = void 0, this.loaders = Object.create(null), this.variableList = null, this.hls = t, this.registerListeners() } var e = t.prototype; return e.startLoad = function (t) { }, e.stopLoad = function () { this.destroyInternalLoaders() }, e.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.on(S.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this) }, e.unregisterListeners = function () { var t = this.hls; t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.off(S.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this) }, e.createInternalLoader = function (t) { var e = this.hls.config, r = e.pLoader, i = e.loader, n = new (r || i)(e); return this.loaders[t.type] = n, n }, e.getInternalLoader = function (t) { return this.loaders[t.type] }, e.resetInternalLoader = function (t) { this.loaders[t] && delete this.loaders[t] }, e.destroyInternalLoaders = function () { for (var t in this.loaders) { var e = this.loaders[t]; e && e.destroy(), this.resetInternalLoader(t) } }, e.destroy = function () { this.variableList = null, this.unregisterListeners(), this.destroyInternalLoaders() }, e.onManifestLoading = function (t, e) { var r = e.url; this.variableList = null, this.load({ id: null, level: 0, responseType: "text", type: ke, url: r, deliveryDirectives: null }) }, e.onLevelLoading = function (t, e) { var r = e.id, i = e.level, n = e.pathwayId, a = e.url, s = e.deliveryDirectives; this.load({ id: r, level: i, pathwayId: n, responseType: "text", type: be, url: a, deliveryDirectives: s }) }, e.onAudioTrackLoading = function (t, e) { var r = e.id, i = e.groupId, n = e.url, a = e.deliveryDirectives; this.load({ id: r, groupId: i, level: null, responseType: "text", type: De, url: n, deliveryDirectives: a }) }, e.onSubtitleTrackLoading = function (t, e) { var r = e.id, i = e.groupId, n = e.url, a = e.deliveryDirectives; this.load({ id: r, groupId: i, level: null, responseType: "text", type: Ie, url: n, deliveryDirectives: a }) }, e.load = function (t) { var e, r, i, n = this, a = this.hls.config, s = this.getInternalLoader(t); if (s) { var l = s.context; if (l && l.url === t.url && l.level === t.level) return void w.trace("[playlist-loader]: playlist request ongoing"); w.log("[playlist-loader]: aborting previous loader for type: " + t.type), s.abort() } if (r = t.type === ke ? a.manifestLoadPolicy.default : o({}, a.playlistLoadPolicy.default, { timeoutRetry: null, errorRetry: null }), s = this.createInternalLoader(t), y(null == (e = t.deliveryDirectives) ? void 0 : e.part) && (t.type === be && null !== t.level ? i = this.hls.levels[t.level].details : t.type === De && null !== t.id ? i = this.hls.audioTracks[t.id].details : t.type === Ie && null !== t.id && (i = this.hls.subtitleTracks[t.id].details), i)) { var u = i.partTarget, h = i.targetduration; if (u && h) { var d = 1e3 * Math.max(3 * u, .8 * h); r = o({}, r, { maxTimeToFirstByteMs: Math.min(d, r.maxTimeToFirstByteMs), maxLoadTimeMs: Math.min(d, r.maxTimeToFirstByteMs) }) } } var c = r.errorRetry || r.timeoutRetry || {}, f = { loadPolicy: r, timeout: r.maxLoadTimeMs, maxRetry: c.maxNumRetry || 0, retryDelay: c.retryDelayMs || 0, maxRetryDelay: c.maxRetryDelayMs || 0 }, g = { onSuccess: function (t, e, r, i) { var a = n.getInternalLoader(r); n.resetInternalLoader(r.type); var s = t.data; 0 === s.indexOf("#EXTM3U") ? (e.parsing.start = performance.now(), pe.isMediaPlaylist(s) ? n.handleTrackOrLevelPlaylist(t, e, r, i || null, a) : n.handleMasterPlaylist(t, e, r, i)) : n.handleManifestParsingError(t, r, new Error("no EXTM3U delimiter"), i || null, e) }, onError: function (t, e, r, i) { n.handleNetworkError(e, r, !1, t, i) }, onTimeout: function (t, e, r) { n.handleNetworkError(e, r, !0, void 0, t) } }; s.load(t, f, g) }, e.handleMasterPlaylist = function (t, e, r, i) { var n = this.hls, a = t.data, s = Pe(t, r), o = pe.parseMasterPlaylist(a, s); if (o.playlistParsingError) this.handleManifestParsingError(t, r, o.playlistParsingError, i, e); else { var l = o.contentSteering, u = o.levels, h = o.sessionData, d = o.sessionKeys, c = o.startTimeOffset, f = o.variableList; this.variableList = f; var g = pe.parseMasterPlaylistMedia(a, s, o), v = g.AUDIO, m = void 0 === v ? [] : v, p = g.SUBTITLES, y = g["CLOSED-CAPTIONS"]; m.length && (m.some((function (t) { return !t.url })) || !u[0].audioCodec || u[0].attrs.AUDIO || (w.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"), m.unshift({ type: "main", name: "main", groupId: "main", default: !1, autoselect: !1, forced: !1, id: -1, attrs: new x({}), bitrate: 0, url: "" }))), n.trigger(S.MANIFEST_LOADED, { levels: u, audioTracks: m, subtitles: p, captions: y, contentSteering: l, url: s, stats: e, networkDetails: i, sessionData: h, sessionKeys: d, startTimeOffset: c, variableList: f }) } }, e.handleTrackOrLevelPlaylist = function (t, e, r, i, n) { var a = this.hls, s = r.id, o = r.level, l = r.type, u = Pe(t, r), h = y(o) ? o : y(s) ? s : 0, d = xe(r), c = pe.parseLevelPlaylist(t.data, u, h, d, 0, this.variableList); if (l === ke) { var f = { attrs: new x({}), bitrate: 0, details: c, name: "", url: u }; a.trigger(S.MANIFEST_LOADED, { levels: [f], audioTracks: [], url: u, stats: e, networkDetails: i, sessionData: null, sessionKeys: null, contentSteering: null, startTimeOffset: null, variableList: null }) } e.parsing.end = performance.now(), r.levelDetails = c, this.handlePlaylistLoaded(c, t, e, r, i, n) }, e.handleManifestParsingError = function (t, e, r, i, n) { this.hls.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.MANIFEST_PARSING_ERROR, fatal: e.type === ke, url: t.url, err: r, error: r, reason: r.message, response: t, context: e, networkDetails: i, stats: n }) }, e.handleNetworkError = function (t, e, r, n, a) { void 0 === r && (r = !1); var s = "A network " + (r ? "timeout" : "error" + (n ? " (status " + n.code + ")" : "")) + " occurred while loading " + t.type; t.type === be ? s += ": " + t.level + " id: " + t.id : t.type !== De && t.type !== Ie || (s += " id: " + t.id + ' group-id: "' + t.groupId + '"'); var o = new Error(s); w.warn("[playlist-loader]: " + s); var l = A.UNKNOWN, u = !1, h = this.getInternalLoader(t); switch (t.type) { case ke: l = r ? A.MANIFEST_LOAD_TIMEOUT : A.MANIFEST_LOAD_ERROR, u = !0; break; case be: l = r ? A.LEVEL_LOAD_TIMEOUT : A.LEVEL_LOAD_ERROR, u = !1; break; case De: l = r ? A.AUDIO_TRACK_LOAD_TIMEOUT : A.AUDIO_TRACK_LOAD_ERROR, u = !1; break; case Ie: l = r ? A.SUBTITLE_TRACK_LOAD_TIMEOUT : A.SUBTITLE_LOAD_ERROR, u = !1 }h && this.resetInternalLoader(t.type); var d = { type: L.NETWORK_ERROR, details: l, fatal: u, url: t.url, loader: h, context: t, error: o, networkDetails: e, stats: a }; if (n) { var c = (null == e ? void 0 : e.url) || t.url; d.response = i({ url: c, data: void 0 }, n) } this.hls.trigger(S.ERROR, d) }, e.handlePlaylistLoaded = function (t, e, r, i, n, a) { var s = this.hls, o = i.type, l = i.level, u = i.id, h = i.groupId, d = i.deliveryDirectives, c = Pe(e, i), f = xe(i), g = "number" == typeof i.level && f === we ? l : void 0; if (t.fragments.length) { t.targetduration || (t.playlistParsingError = new Error("Missing Target Duration")); var v = t.playlistParsingError; if (v) s.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.LEVEL_PARSING_ERROR, fatal: !1, url: c, error: v, reason: v.message, response: e, context: i, level: g, parent: f, networkDetails: n, stats: r }); else switch (t.live && a && (a.getCacheAge && (t.ageHeader = a.getCacheAge() || 0), a.getCacheAge && !isNaN(t.ageHeader) || (t.ageHeader = 0)), o) { case ke: case be: s.trigger(S.LEVEL_LOADED, { details: t, level: g || 0, id: u || 0, stats: r, networkDetails: n, deliveryDirectives: d }); break; case De: s.trigger(S.AUDIO_TRACK_LOADED, { details: t, id: u || 0, groupId: h || "", stats: r, networkDetails: n, deliveryDirectives: d }); break; case Ie: s.trigger(S.SUBTITLE_TRACK_LOADED, { details: t, id: u || 0, groupId: h || "", stats: r, networkDetails: n, deliveryDirectives: d }) } } else { var m = new Error("No Segments found in Playlist"); s.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.LEVEL_EMPTY_ERROR, fatal: !1, url: c, error: m, reason: m.message, response: e, context: i, level: g, parent: f, networkDetails: n, stats: r }) } }, t }(); function Me(t, e) { var r; try { r = new Event("addtrack") } catch (t) { (r = document.createEvent("Event")).initEvent("addtrack", !1, !1) } r.track = t, e.dispatchEvent(r) } function Oe(t, e) { var r = t.mode; if ("disabled" === r && (t.mode = "hidden"), t.cues && !t.cues.getCueById(e.id)) try { if (t.addCue(e), !t.cues.getCueById(e.id)) throw new Error("addCue is failed for: " + e) } catch (r) { w.debug("[texttrack-utils]: " + r); try { var i = new self.TextTrackCue(e.startTime, e.endTime, e.text); i.id = e.id, t.addCue(i) } catch (t) { w.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: " + t) } } "disabled" === r && (t.mode = r) } function Ne(t) { var e = t.mode; if ("disabled" === e && (t.mode = "hidden"), t.cues) for (var r = t.cues.length; r--;)t.removeCue(t.cues[r]); "disabled" === e && (t.mode = e) } function Ue(t, e, r, i) { var n = t.mode; if ("disabled" === n && (t.mode = "hidden"), t.cues && t.cues.length > 0) for (var a = function (t, e, r) { var i = [], n = function (t, e) { if (e < t[0].startTime) return 0; var r = t.length - 1; if (e > t[r].endTime) return -1; for (var i = 0, n = r; i <= n;) { var a = Math.floor((n + i) / 2); if (e < t[a].startTime) n = a - 1; else { if (!(e > t[a].startTime && i < r)) return a; i = a + 1 } } return t[i].startTime - e < e - t[n].startTime ? i : n }(t, e); if (n > -1) for (var a = n, s = t.length; a < s; a++) { var o = t[a]; if (o.startTime >= e && o.endTime <= r) i.push(o); else if (o.startTime > r) return i } return i }(t.cues, e, r), s = 0; s < a.length; s++)i && !i(a[s]) || t.removeCue(a[s]); "disabled" === n && (t.mode = n) } function Be(t) { for (var e = [], r = 0; r < t.length; r++) { var i = t[r]; "subtitles" !== i.kind && "captions" !== i.kind || !i.label || e.push(t[r]) } return e } var Ge = "org.id3", Ke = "com.apple.quicktime.HLS", He = "https://aomedia.org/emsg/ID3"; function Ve() { if ("undefined" != typeof self) return self.VTTCue || self.TextTrackCue } function Ye(t, e, r, n, a) { var s = new t(e, r, ""); try { s.value = n, a && (s.type = a) } catch (o) { s = new t(e, r, JSON.stringify(a ? i({ type: a }, n) : n)) } return s } var We = function () { var t = Ve(); try { t && new t(0, Number.POSITIVE_INFINITY, "") } catch (t) { return Number.MAX_VALUE } return Number.POSITIVE_INFINITY }(); function je(t, e) { return t.getTime() / 1e3 - e } var qe = function () { function t(t) { this.hls = void 0, this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = t, this._registerListeners() } var e = t.prototype; return e.destroy = function () { this._unregisterListeners(), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = null }, e._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e.onMediaAttached = function (t, e) { this.media = e.media }, e.onMediaDetaching = function () { this.id3Track && (Ne(this.id3Track), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}) }, e.onManifestLoading = function () { this.dateRangeCuesAppended = {} }, e.createTrack = function (t) { var e = this.getID3Track(t.textTracks); return e.mode = "hidden", e }, e.getID3Track = function (t) { if (this.media) { for (var e = 0; e < t.length; e++) { var r = t[e]; if ("metadata" === r.kind && "id3" === r.label) return Me(r, this.media), r } return this.media.addTextTrack("metadata", "id3") } }, e.onFragParsingMetadata = function (t, e) { if (this.media) { var r = this.hls.config, i = r.enableEmsgMetadataCues, n = r.enableID3MetadataCues; if (i || n) { var a = e.samples; this.id3Track || (this.id3Track = this.createTrack(this.media)); var s = Ve(); if (s) for (var o = 0; o < a.length; o++) { var l = a[o].type; if ((l !== He || i) && n) { var u = gt(a[o].data); if (u) { var h = a[o].pts, d = h + a[o].duration; d > We && (d = We), d - h <= 0 && (d = h + .25); for (var c = 0; c < u.length; c++) { var f = u[c]; if (!ct(f)) { this.updateId3CueEnds(h, l); var g = Ye(s, h, d, f, l); g && this.id3Track.addCue(g) } } } } } } } }, e.updateId3CueEnds = function (t, e) { var r, i = null == (r = this.id3Track) ? void 0 : r.cues; if (i) for (var n = i.length; n--;) { var a = i[n]; a.type === e && a.startTime < t && a.endTime === We && (a.endTime = t) } }, e.onBufferFlushing = function (t, e) { var r = e.startOffset, i = e.endOffset, n = e.type, a = this.id3Track, s = this.hls; if (s) { var o = s.config, l = o.enableEmsgMetadataCues, u = o.enableID3MetadataCues; a && (l || u) && Ue(a, r, i, "audio" === n ? function (t) { return t.type === Ge && u } : "video" === n ? function (t) { return t.type === He && l } : function (t) { return t.type === Ge && u || t.type === He && l }) } }, e.onLevelUpdated = function (t, e) { var r = this, i = e.details; if (this.media && i.hasProgramDateTime && this.hls.config.enableDateRangeMetadataCues) { var n = this.dateRangeCuesAppended, a = this.id3Track, s = i.dateRanges, o = Object.keys(s); if (a) for (var l = Object.keys(n).filter((function (t) { return !o.includes(t) })), u = function () { var t = l[h]; Object.keys(n[t].cues).forEach((function (e) { a.removeCue(n[t].cues[e]) })), delete n[t] }, h = l.length; h--;)u(); var d = i.fragments[i.fragments.length - 1]; if (0 !== o.length && y(null == d ? void 0 : d.programDateTime)) { this.id3Track || (this.id3Track = this.createTrack(this.media)); for (var c = d.programDateTime / 1e3 - d.start, f = Ve(), g = function () { var t = o[v], e = s[t], i = je(e.startDate, c), a = n[t], l = (null == a ? void 0 : a.cues) || {}, u = (null == a ? void 0 : a.durationKnown) || !1, h = We, d = e.endDate; if (d) h = je(d, c), u = !0; else if (e.endOnNext && !u) { var g = o.reduce((function (t, r) { if (r !== e.id) { var i = s[r]; if (i.class === e.class && i.startDate > e.startDate && (!t || e.startDate < t.startDate)) return i } return t }), null); g && (h = je(g.startDate, c), u = !0) } for (var m, p, y = Object.keys(e.attr), E = 0; E < y.length; E++) { var T = y[E]; if ("ID" !== (p = T) && "CLASS" !== p && "START-DATE" !== p && "DURATION" !== p && "END-DATE" !== p && "END-ON-NEXT" !== p) { var S = l[T]; if (S) u && !a.durationKnown && (S.endTime = h); else if (f) { var L = e.attr[T]; P(T) && (m = L, L = Uint8Array.from(m.replace(/^0x/, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")).buffer); var A = Ye(f, i, h, { key: T, data: L }, Ke); A && (A.id = t, r.id3Track.addCue(A), l[T] = A) } } } n[t] = { cues: l, dateRange: e, durationKnown: u } }, v = 0; v < o.length; v++)g() } } }, t }(), Xe = function () { function t(t) { var e = this; this.hls = void 0, this.config = void 0, this.media = null, this.levelDetails = null, this.currentTime = 0, this.stallCount = 0, this._latency = null, this.timeupdateHandler = function () { return e.timeupdate() }, this.hls = t, this.config = t.config, this.registerListeners() } var e = t.prototype; return e.destroy = function () { this.unregisterListeners(), this.onMediaDetaching(), this.levelDetails = null, this.hls = this.timeupdateHandler = null }, e.registerListeners = function () { this.hls.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), this.hls.on(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.on(S.LEVEL_UPDATED, this.onLevelUpdated, this), this.hls.on(S.ERROR, this.onError, this) }, e.unregisterListeners = function () { this.hls.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), this.hls.off(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.off(S.LEVEL_UPDATED, this.onLevelUpdated, this), this.hls.off(S.ERROR, this.onError, this) }, e.onMediaAttached = function (t, e) { this.media = e.media, this.media.addEventListener("timeupdate", this.timeupdateHandler) }, e.onMediaDetaching = function () { this.media && (this.media.removeEventListener("timeupdate", this.timeupdateHandler), this.media = null) }, e.onManifestLoading = function () { this.levelDetails = null, this._latency = null, this.stallCount = 0 }, e.onLevelUpdated = function (t, e) { var r = e.details; this.levelDetails = r, r.advanced && this.timeupdate(), !r.live && this.media && this.media.removeEventListener("timeupdate", this.timeupdateHandler) }, e.onError = function (t, e) { var r; e.details === A.BUFFER_STALLED_ERROR && (this.stallCount++, null != (r = this.levelDetails) && r.live && w.warn("[playback-rate-controller]: Stall detected, adjusting target latency")) }, e.timeupdate = function () { var t = this.media, e = this.levelDetails; if (t && e) { this.currentTime = t.currentTime; var r = this.computeLatency(); if (null !== r) { this._latency = r; var i = this.config, n = i.lowLatencyMode, a = i.maxLiveSyncPlaybackRate; if (n && 1 !== a && e.live) { var s = this.targetLatency; if (null !== s) { var o = r - s; if (o < Math.min(this.maxLatency, s + e.targetduration) && o > .05 && this.forwardBufferLength > 1) { var l = Math.min(2, Math.max(1, a)), u = Math.round(2 / (1 + Math.exp(-.75 * o - this.edgeStalled)) * 20) / 20; t.playbackRate = Math.min(l, Math.max(1, u)) } else 1 !== t.playbackRate && 0 !== t.playbackRate && (t.playbackRate = 1) } } } } }, e.estimateLiveEdge = function () { var t = this.levelDetails; return null === t ? null : t.edge + t.age }, e.computeLatency = function () { var t = this.estimateLiveEdge(); return null === t ? null : t - this.currentTime }, s(t, [{ key: "latency", get: function () { return this._latency || 0 } }, { key: "maxLatency", get: function () { var t = this.config, e = this.levelDetails; return void 0 !== t.liveMaxLatencyDuration ? t.liveMaxLatencyDuration : e ? t.liveMaxLatencyDurationCount * e.targetduration : 0 } }, { key: "targetLatency", get: function () { var t = this.levelDetails; if (null === t) return null; var e = t.holdBack, r = t.partHoldBack, i = t.targetduration, n = this.config, a = n.liveSyncDuration, s = n.liveSyncDurationCount, o = n.lowLatencyMode, l = this.hls.userConfig, u = o && r || e; (l.liveSyncDuration || l.liveSyncDurationCount || 0 === u) && (u = void 0 !== a ? a : s * i); var h = i; return u + Math.min(1 * this.stallCount, h) } }, { key: "liveSyncPosition", get: function () { var t = this.estimateLiveEdge(), e = this.targetLatency, r = this.levelDetails; if (null === t || null === e || null === r) return null; var i = r.edge, n = t - e - this.edgeStalled, a = i - r.totalduration, s = i - (this.config.lowLatencyMode && r.partTarget || r.targetduration); return Math.min(Math.max(a, n), s) } }, { key: "drift", get: function () { var t = this.levelDetails; return null === t ? 1 : t.drift } }, { key: "edgeStalled", get: function () { var t = this.levelDetails; if (null === t) return 0; var e = 3 * (this.config.lowLatencyMode && t.partTarget || t.targetduration); return Math.max(t.age - e, 0) } }, { key: "forwardBufferLength", get: function () { var t = this.media, e = this.levelDetails; if (!t || !e) return 0; var r = t.buffered.length; return (r ? t.buffered.end(r - 1) : e.edge) - this.currentTime } }]), t }(), ze = ["NONE", "TYPE-0", "TYPE-1", null], Qe = ["SDR", "PQ", "HLG"], Je = "", $e = "YES", Ze = "v2"; function tr(t) { var e = t.canSkipUntil, r = t.canSkipDateRanges, i = t.age; return e && i < e / 2 ? r ? Ze : $e : Je } var er = function () { function t(t, e, r) { this.msn = void 0, this.part = void 0, this.skip = void 0, this.msn = t, this.part = e, this.skip = r } return t.prototype.addDirectives = function (t) { var e = new self.URL(t); return void 0 !== this.msn && e.searchParams.set("_HLS_msn", this.msn.toString()), void 0 !== this.part && e.searchParams.set("_HLS_part", this.part.toString()), this.skip && e.searchParams.set("_HLS_skip", this.skip), e.href }, t }(), rr = function () { function t(t) { this._attrs = void 0, this.audioCodec = void 0, this.bitrate = void 0, this.codecSet = void 0, this.url = void 0, this.frameRate = void 0, this.height = void 0, this.id = void 0, this.name = void 0, this.videoCodec = void 0, this.width = void 0, this.details = void 0, this.fragmentError = 0, this.loadError = 0, this.loaded = void 0, this.realBitrate = 0, this.supportedPromise = void 0, this.supportedResult = void 0, this._avgBitrate = 0, this._audioGroups = void 0, this._subtitleGroups = void 0, this._urlId = 0, this.url = [t.url], this._attrs = [t.attrs], this.bitrate = t.bitrate, t.details && (this.details = t.details), this.id = t.id || 0, this.name = t.name, this.width = t.width || 0, this.height = t.height || 0, this.frameRate = t.attrs.optionalFloat("FRAME-RATE", 0), this._avgBitrate = t.attrs.decimalInteger("AVERAGE-BANDWIDTH"), this.audioCodec = t.audioCodec, this.videoCodec = t.videoCodec, this.codecSet = [t.videoCodec, t.audioCodec].filter((function (t) { return !!t })).map((function (t) { return t.substring(0, 4) })).join(","), this.addGroupId("audio", t.attrs.AUDIO), this.addGroupId("text", t.attrs.SUBTITLES) } var e = t.prototype; return e.hasAudioGroup = function (t) { return ir(this._audioGroups, t) }, e.hasSubtitleGroup = function (t) { return ir(this._subtitleGroups, t) }, e.addGroupId = function (t, e) { if (e) if ("audio" === t) { var r = this._audioGroups; r || (r = this._audioGroups = []), -1 === r.indexOf(e) && r.push(e) } else if ("text" === t) { var i = this._subtitleGroups; i || (i = this._subtitleGroups = []), -1 === i.indexOf(e) && i.push(e) } }, e.addFallback = function () { }, s(t, [{ key: "maxBitrate", get: function () { return Math.max(this.realBitrate, this.bitrate) } }, { key: "averageBitrate", get: function () { return this._avgBitrate || this.realBitrate || this.bitrate } }, { key: "attrs", get: function () { return this._attrs[0] } }, { key: "codecs", get: function () { return this.attrs.CODECS || "" } }, { key: "pathwayId", get: function () { return this.attrs["PATHWAY-ID"] || "." } }, { key: "videoRange", get: function () { return this.attrs["VIDEO-RANGE"] || "SDR" } }, { key: "score", get: function () { return this.attrs.optionalFloat("SCORE", 0) } }, { key: "uri", get: function () { return this.url[0] || "" } }, { key: "audioGroups", get: function () { return this._audioGroups } }, { key: "subtitleGroups", get: function () { return this._subtitleGroups } }, { key: "urlId", get: function () { return 0 }, set: function (t) { } }, { key: "audioGroupIds", get: function () { return this.audioGroups ? [this.audioGroupId] : void 0 } }, { key: "textGroupIds", get: function () { return this.subtitleGroups ? [this.textGroupId] : void 0 } }, { key: "audioGroupId", get: function () { var t; return null == (t = this.audioGroups) ? void 0 : t[0] } }, { key: "textGroupId", get: function () { var t; return null == (t = this.subtitleGroups) ? void 0 : t[0] } }]), t }(); function ir(t, e) { return !(!e || !t) && -1 !== t.indexOf(e) } function nr(t, e) { var r = e.startPTS; if (y(r)) { var i, n = 0; e.sn > t.sn ? (n = r - t.start, i = t) : (n = t.start - r, i = e), i.duration !== n && (i.duration = n) } else e.sn > t.sn ? t.cc === e.cc && t.minEndPTS ? e.start = t.start + (t.minEndPTS - t.start) : e.start = t.start + t.duration : e.start = Math.max(t.start - e.duration, 0) } function ar(t, e, r, i, n, a) { i - r <= 0 && (w.warn("Fragment should have a positive duration", e), i = r + e.duration, a = n + e.duration); var s = r, o = i, l = e.startPTS, u = e.endPTS; if (y(l)) { var h = Math.abs(l - r); y(e.deltaPTS) ? e.deltaPTS = Math.max(h, e.deltaPTS) : e.deltaPTS = h, s = Math.max(r, l), r = Math.min(r, l), n = Math.min(n, e.startDTS), o = Math.min(i, u), i = Math.max(i, u), a = Math.max(a, e.endDTS) } var d = r - e.start; 0 !== e.start && (e.start = r), e.duration = i - e.start, e.startPTS = r, e.maxStartPTS = s, e.startDTS = n, e.endPTS = i, e.minEndPTS = o, e.endDTS = a; var c, f = e.sn; if (!t || f < t.startSN || f > t.endSN) return 0; var g = f - t.startSN, v = t.fragments; for (v[g] = e, c = g; c > 0; c--)nr(v[c], v[c - 1]); for (c = g; c < v.length - 1; c++)nr(v[c], v[c + 1]); return t.fragmentHint && nr(v[v.length - 1], t.fragmentHint), t.PTSKnown = t.alignedSliding = !0, d } function sr(t, e) { for (var r = null, i = t.fragments, n = i.length - 1; n >= 0; n--) { var a = i[n].initSegment; if (a) { r = a; break } } t.fragmentHint && delete t.fragmentHint.endPTS; var s, l, u, h, d, c = 0; if (function (t, e, r) { for (var i = e.skippedSegments, n = Math.max(t.startSN, e.startSN) - e.startSN, a = (t.fragmentHint ? 1 : 0) + (i ? e.endSN : Math.min(t.endSN, e.endSN)) - e.startSN, s = e.startSN - t.startSN, o = e.fragmentHint ? e.fragments.concat(e.fragmentHint) : e.fragments, l = t.fragmentHint ? t.fragments.concat(t.fragmentHint) : t.fragments, u = n; u <= a; u++) { var h = l[s + u], d = o[u]; i && !d && u < i && (d = e.fragments[u] = h), h && d && r(h, d) } }(t, e, (function (t, i) { t.relurl && (c = t.cc - i.cc), y(t.startPTS) && y(t.endPTS) && (i.start = i.startPTS = t.startPTS, i.startDTS = t.startDTS, i.maxStartPTS = t.maxStartPTS, i.endPTS = t.endPTS, i.endDTS = t.endDTS, i.minEndPTS = t.minEndPTS, i.duration = t.endPTS - t.startPTS, i.duration && (s = i), e.PTSKnown = e.alignedSliding = !0), i.elementaryStreams = t.elementaryStreams, i.loader = t.loader, i.stats = t.stats, t.initSegment && (i.initSegment = t.initSegment, r = t.initSegment) })), r && (e.fragmentHint ? e.fragments.concat(e.fragmentHint) : e.fragments).forEach((function (t) { var e; !t || t.initSegment && t.initSegment.relurl !== (null == (e = r) ? void 0 : e.relurl) || (t.initSegment = r) })), e.skippedSegments) if (e.deltaUpdateFailed = e.fragments.some((function (t) { return !t })), e.deltaUpdateFailed) { w.warn("[level-helper] Previous playlist missing segments skipped in delta playlist"); for (var f = e.skippedSegments; f--;)e.fragments.shift(); e.startSN = e.fragments[0].sn, e.startCC = e.fragments[0].cc } else e.canSkipDateRanges && (e.dateRanges = (l = t.dateRanges, u = e.dateRanges, h = e.recentlyRemovedDateranges, d = o({}, l), h && h.forEach((function (t) { delete d[t] })), Object.keys(u).forEach((function (t) { var e = new F(u[t].attr, d[t]); e.isValid ? d[t] = e : w.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "' + JSON.stringify(u[t].attr) + '"') })), d)); var g = e.fragments; if (c) { w.warn("discontinuity sliding from playlist, take drift into account"); for (var v = 0; v < g.length; v++)g[v].cc += c } e.skippedSegments && (e.startCC = e.fragments[0].cc), function (t, e, r) { if (t && e) for (var i = 0, n = 0, a = t.length; n <= a; n++) { var s = t[n], o = e[n + i]; s && o && s.index === o.index && s.fragment.sn === o.fragment.sn ? r(s, o) : i-- } }(t.partList, e.partList, (function (t, e) { e.elementaryStreams = t.elementaryStreams, e.stats = t.stats })), s ? ar(e, s, s.startPTS, s.endPTS, s.startDTS, s.endDTS) : or(t, e), g.length && (e.totalduration = e.edge - g[0].start), e.driftStartTime = t.driftStartTime, e.driftStart = t.driftStart; var m = e.advancedDateTime; if (e.advanced && m) { var p = e.edge; e.driftStart || (e.driftStartTime = m, e.driftStart = p), e.driftEndTime = m, e.driftEnd = p } else e.driftEndTime = t.driftEndTime, e.driftEnd = t.driftEnd, e.advancedDateTime = t.advancedDateTime } function or(t, e) { var r = e.startSN + e.skippedSegments - t.startSN, i = t.fragments; r < 0 || r >= i.length || lr(e, i[r].start) } function lr(t, e) { if (e) { for (var r = t.fragments, i = t.skippedSegments; i < r.length; i++)r[i].start += e; t.fragmentHint && (t.fragmentHint.start += e) } } function ur(t, e, r) { var i; return null != t && t.details ? hr(null == (i = t.details) ? void 0 : i.partList, e, r) : null } function hr(t, e, r) { if (t) for (var i = t.length; i--;) { var n = t[i]; if (n.index === r && n.fragment.sn === e) return n } return null } function dr(t) { t.forEach((function (t, e) { var r = t.details; null != r && r.fragments && r.fragments.forEach((function (t) { t.level = e })) })) } function cr(t) { switch (t.details) { case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_TIMEOUT: case A.LEVEL_LOAD_TIMEOUT: case A.MANIFEST_LOAD_TIMEOUT: return !0 }return !1 } function fr(t, e) { var r = cr(e); return t.default[(r ? "timeout" : "error") + "Retry"] } function gr(t, e) { var r = "linear" === t.backoff ? 1 : Math.pow(2, e); return Math.min(r * t.retryDelayMs, t.maxRetryDelayMs) } function vr(t) { return i(i({}, t), { errorRetry: null, timeoutRetry: null }) } function mr(t, e, r, i) { if (!t) return !1; var n = null == i ? void 0 : i.code, a = e < t.maxNumRetry && (function (t) { return 0 === t && !1 === navigator.onLine || !!t && (t < 400 || t > 499) }(n) || !!r); return t.shouldRetry ? t.shouldRetry(t, e, r, i, a) : a } var pr = function (t, e) { for (var r = 0, i = t.length - 1, n = null, a = null; r <= i;) { var s = e(a = t[n = (r + i) / 2 | 0]); if (s > 0) r = n + 1; else { if (!(s < 0)) return a; i = n - 1 } } return null }; function yr(t, e, r, i) { void 0 === r && (r = 0), void 0 === i && (i = 0); var n = null; if (t) { n = e[t.sn - e[0].sn + 1] || null; var a = t.endDTS - r; a > 0 && a < 15e-7 && (r += 15e-7) } else 0 === r && 0 === e[0].start && (n = e[0]); if (n && (!t || t.level === n.level) && 0 === Er(r, i, n)) return n; var s = pr(e, Er.bind(null, r, i)); return !s || s === t && n ? n : s } function Er(t, e, r) { if (void 0 === t && (t = 0), void 0 === e && (e = 0), r.start <= t && r.start + r.duration > t) return 0; var i = Math.min(e, r.duration + (r.deltaPTS ? r.deltaPTS : 0)); return r.start + r.duration - i <= t ? 1 : r.start - i > t && r.start ? -1 : 0 } function Tr(t, e, r) { var i = 1e3 * Math.min(e, r.duration + (r.deltaPTS ? r.deltaPTS : 0)); return (r.endProgramDateTime || 0) - i > t } var Sr = 0, Lr = 2, Ar = 3, Rr = 5, kr = 0, br = 1, Dr = 2, Ir = function () { function t(t) { this.hls = void 0, this.playlistError = 0, this.penalizedRenditions = {}, this.log = void 0, this.warn = void 0, this.error = void 0, this.hls = t, this.log = w.log.bind(w, "[info]:"), this.warn = w.warn.bind(w, "[warning]:"), this.error = w.error.bind(w, "[error]:"), this.registerListeners() } var e = t.prototype; return e.registerListeners = function () { var t = this.hls; t.on(S.ERROR, this.onError, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e.unregisterListeners = function () { var t = this.hls; t && (t.off(S.ERROR, this.onError, this), t.off(S.ERROR, this.onErrorOut, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this)) }, e.destroy = function () { this.unregisterListeners(), this.hls = null, this.penalizedRenditions = {} }, e.startLoad = function (t) { }, e.stopLoad = function () { this.playlistError = 0 }, e.getVariantLevelIndex = function (t) { return (null == t ? void 0 : t.type) === we ? t.level : this.hls.loadLevel }, e.onManifestLoading = function () { this.playlistError = 0, this.penalizedRenditions = {} }, e.onLevelUpdated = function () { this.playlistError = 0 }, e.onError = function (t, e) { var r, i; if (!e.fatal) { var n = this.hls, a = e.context; switch (e.details) { case A.FRAG_LOAD_ERROR: case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_ERROR: case A.KEY_LOAD_TIMEOUT: return void (e.errorAction = this.getFragRetryOrSwitchAction(e)); case A.FRAG_PARSING_ERROR: if (null != (r = e.frag) && r.gap) return void (e.errorAction = { action: Sr, flags: kr }); case A.FRAG_GAP: case A.FRAG_DECRYPT_ERROR: return e.errorAction = this.getFragRetryOrSwitchAction(e), void (e.errorAction.action = Lr); case A.LEVEL_EMPTY_ERROR: case A.LEVEL_PARSING_ERROR: var s, o, l = e.parent === we ? e.level : n.loadLevel; return void (e.details === A.LEVEL_EMPTY_ERROR && null != (s = e.context) && null != (o = s.levelDetails) && o.live ? e.errorAction = this.getPlaylistRetryOrSwitchAction(e, l) : (e.levelRetry = !1, e.errorAction = this.getLevelSwitchAction(e, l))); case A.LEVEL_LOAD_ERROR: case A.LEVEL_LOAD_TIMEOUT: return void ("number" == typeof (null == a ? void 0 : a.level) && (e.errorAction = this.getPlaylistRetryOrSwitchAction(e, a.level))); case A.AUDIO_TRACK_LOAD_ERROR: case A.AUDIO_TRACK_LOAD_TIMEOUT: case A.SUBTITLE_LOAD_ERROR: case A.SUBTITLE_TRACK_LOAD_TIMEOUT: if (a) { var u = n.levels[n.loadLevel]; if (u && (a.type === De && u.hasAudioGroup(a.groupId) || a.type === Ie && u.hasSubtitleGroup(a.groupId))) return e.errorAction = this.getPlaylistRetryOrSwitchAction(e, n.loadLevel), e.errorAction.action = Lr, void (e.errorAction.flags = br) } return; case A.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED: var h = n.levels[n.loadLevel], d = null == h ? void 0 : h.attrs["HDCP-LEVEL"]; return void (d ? e.errorAction = { action: Lr, flags: Dr, hdcpLevel: d } : this.keySystemError(e)); case A.BUFFER_ADD_CODEC_ERROR: case A.REMUX_ALLOC_ERROR: case A.BUFFER_APPEND_ERROR: return void (e.errorAction = this.getLevelSwitchAction(e, null != (i = e.level) ? i : n.loadLevel)); case A.INTERNAL_EXCEPTION: case A.BUFFER_APPENDING_ERROR: case A.BUFFER_FULL_ERROR: case A.LEVEL_SWITCH_ERROR: case A.BUFFER_STALLED_ERROR: case A.BUFFER_SEEK_OVER_HOLE: case A.BUFFER_NUDGE_ON_STALL: return void (e.errorAction = { action: Sr, flags: kr }) }e.type === L.KEY_SYSTEM_ERROR && this.keySystemError(e) } }, e.keySystemError = function (t) { var e = this.getVariantLevelIndex(t.frag); t.levelRetry = !1, t.errorAction = this.getLevelSwitchAction(t, e) }, e.getPlaylistRetryOrSwitchAction = function (t, e) { var r = fr(this.hls.config.playlistLoadPolicy, t), i = this.playlistError++; if (mr(r, i, cr(t), t.response)) return { action: Rr, flags: kr, retryConfig: r, retryCount: i }; var n = this.getLevelSwitchAction(t, e); return r && (n.retryConfig = r, n.retryCount = i), n }, e.getFragRetryOrSwitchAction = function (t) { var e = this.hls, r = this.getVariantLevelIndex(t.frag), i = e.levels[r], n = e.config, a = n.fragLoadPolicy, s = n.keyLoadPolicy, o = fr(t.details.startsWith("key") ? s : a, t), l = e.levels.reduce((function (t, e) { return t + e.fragmentError }), 0); if (i && (t.details !== A.FRAG_GAP && i.fragmentError++, mr(o, l, cr(t), t.response))) return { action: Rr, flags: kr, retryConfig: o, retryCount: l }; var u = this.getLevelSwitchAction(t, r); return o && (u.retryConfig = o, u.retryCount = l), u }, e.getLevelSwitchAction = function (t, e) { var r = this.hls; null == e && (e = r.loadLevel); var i = this.hls.levels[e]; if (i) { var n, a, s = t.details; i.loadError++, s === A.BUFFER_APPEND_ERROR && i.fragmentError++; var o = -1, l = r.levels, u = r.loadLevel, h = r.minAutoLevel, d = r.maxAutoLevel; r.autoLevelEnabled || (r.loadLevel = -1); for (var c, f = null == (n = t.frag) ? void 0 : n.type, g = (f === Ce && s === A.FRAG_PARSING_ERROR || "audio" === t.sourceBufferName && (s === A.BUFFER_ADD_CODEC_ERROR || s === A.BUFFER_APPEND_ERROR)) && l.some((function (t) { var e = t.audioCodec; return i.audioCodec !== e })), v = "video" === t.sourceBufferName && (s === A.BUFFER_ADD_CODEC_ERROR || s === A.BUFFER_APPEND_ERROR) && l.some((function (t) { var e = t.codecSet, r = t.audioCodec; return i.codecSet !== e && i.audioCodec === r })), m = null != (a = t.context) ? a : {}, p = m.type, y = m.groupId, E = function () { var e = (T + u) % l.length; if (e !== u && e >= h && e <= d && 0 === l[e].loadError) { var r, n, a = l[e]; if (s === A.FRAG_GAP && t.frag) { var c = l[e].details; if (c) { var m = yr(t.frag, c.fragments, t.frag.start); if (null != m && m.gap) return 0 } } else { if (p === De && a.hasAudioGroup(y) || p === Ie && a.hasSubtitleGroup(y)) return 0; if (f === Ce && null != (r = i.audioGroups) && r.some((function (t) { return a.hasAudioGroup(t) })) || f === _e && null != (n = i.subtitleGroups) && n.some((function (t) { return a.hasSubtitleGroup(t) })) || g && i.audioCodec === a.audioCodec || !g && i.audioCodec !== a.audioCodec || v && i.codecSet === a.codecSet) return 0 } return o = e, 1 } }, T = l.length; T-- && (0 === (c = E()) || 1 !== c);); if (o > -1 && r.loadLevel !== o) return t.levelRetry = !0, this.playlistError = 0, { action: Lr, flags: kr, nextAutoLevel: o } } return { action: Lr, flags: br } }, e.onErrorOut = function (t, e) { var r; switch (null == (r = e.errorAction) ? void 0 : r.action) { case Sr: break; case Lr: this.sendAlternateToPenaltyBox(e), e.errorAction.resolved || e.details === A.FRAG_GAP ? /MediaSource readyState: ended/.test(e.error.message) && (this.warn('MediaSource ended after "' + e.sourceBufferName + '" sourceBuffer append error. Attempting to recover from media error.'), this.hls.recoverMediaError()) : e.fatal = !0 }e.fatal && this.hls.stopLoad() }, e.sendAlternateToPenaltyBox = function (t) { var e = this.hls, r = t.errorAction; if (r) { var i = r.flags, n = r.hdcpLevel, a = r.nextAutoLevel; switch (i) { case kr: this.switchLevel(t, a); break; case Dr: n && (e.maxHdcpLevel = ze[ze.indexOf(n) - 1], r.resolved = !0), this.warn('Restricting playback to HDCP-LEVEL of "' + e.maxHdcpLevel + '" or lower') }r.resolved || this.switchLevel(t, a) } }, e.switchLevel = function (t, e) { void 0 !== e && t.errorAction && (this.warn("switching to level " + e + " after " + t.details), this.hls.nextAutoLevel = e, t.errorAction.resolved = !0, this.hls.nextLoadLevel = this.hls.nextAutoLevel) }, t }(), wr = function () { function t(t, e) { this.hls = void 0, this.timer = -1, this.requestScheduled = -1, this.canLoad = !1, this.log = void 0, this.warn = void 0, this.log = w.log.bind(w, e + ":"), this.warn = w.warn.bind(w, e + ":"), this.hls = t } var e = t.prototype; return e.destroy = function () { this.clearTimer(), this.hls = this.log = this.warn = null }, e.clearTimer = function () { -1 !== this.timer && (self.clearTimeout(this.timer), this.timer = -1) }, e.startLoad = function () { this.canLoad = !0, this.requestScheduled = -1, this.loadPlaylist() }, e.stopLoad = function () { this.canLoad = !1, this.clearTimer() }, e.switchParams = function (t, e, r) { var i = null == e ? void 0 : e.renditionReports; if (i) { for (var n = -1, a = 0; a < i.length; a++) { var s = i[a], o = void 0; try { o = new self.URL(s.URI, e.url).href } catch (t) { w.warn("Could not construct new URL for Rendition Report: " + t), o = s.URI || "" } if (o === t) { n = a; break } o === t.substring(0, o.length) && (n = a) } if (-1 !== n) { var l = i[n], u = parseInt(l["LAST-MSN"]) || (null == e ? void 0 : e.lastPartSn), h = parseInt(l["LAST-PART"]) || (null == e ? void 0 : e.lastPartIndex); if (this.hls.config.lowLatencyMode) { var d = Math.min(e.age - e.partTarget, e.targetduration); h >= 0 && d > e.partTarget && (h += 1) } var c = r && tr(r); return new er(u, h >= 0 ? h : void 0, c) } } }, e.loadPlaylist = function (t) { -1 === this.requestScheduled && (this.requestScheduled = self.performance.now()) }, e.shouldLoadPlaylist = function (t) { return this.canLoad && !!t && !!t.url && (!t.details || t.details.live) }, e.shouldReloadPlaylist = function (t) { return -1 === this.timer && -1 === this.requestScheduled && this.shouldLoadPlaylist(t) }, e.playlistLoaded = function (t, e, r) { var i = this, n = e.details, a = e.stats, s = self.performance.now(), o = a.loading.first ? Math.max(0, s - a.loading.first) : 0; if (n.advancedDateTime = Date.now() - o, n.live || null != r && r.live) { if (n.reloaded(r), r && this.log("live playlist " + t + " " + (n.advanced ? "REFRESHED " + n.lastPartSn + "-" + n.lastPartIndex : n.updated ? "UPDATED" : "MISSED")), r && n.fragments.length > 0 && sr(r, n), !this.canLoad || !n.live) return; var l, u = void 0, h = void 0; if (n.canBlockReload && n.endSN && n.advanced) { var d = this.hls.config.lowLatencyMode, c = n.lastPartSn, f = n.endSN, g = n.lastPartIndex, v = c === f; -1 !== g ? (u = v ? f + 1 : c, h = v ? d ? 0 : g : g + 1) : u = f + 1; var m = n.age, p = m + n.ageHeader, y = Math.min(p - n.partTarget, 1.5 * n.targetduration); if (y > 0) { if (r && y > r.tuneInGoal) this.warn("CDN Tune-in goal increased from: " + r.tuneInGoal + " to: " + y + " with playlist age: " + n.age), y = 0; else { var E = Math.floor(y / n.targetduration); u += E, void 0 !== h && (h += Math.round(y % n.targetduration / n.partTarget)), this.log("CDN Tune-in age: " + n.ageHeader + "s last advanced " + m.toFixed(2) + "s goal: " + y + " skip sn " + E + " to part " + h) } n.tuneInGoal = y } if (l = this.getDeliveryDirectives(n, e.deliveryDirectives, u, h), d || !v) return void this.loadPlaylist(l) } else (n.canBlockReload || n.canSkipUntil) && (l = this.getDeliveryDirectives(n, e.deliveryDirectives, u, h)); var T = this.hls.mainForwardBufferInfo, S = T ? T.end - T.len : 0, L = function (t, e) { void 0 === e && (e = 1 / 0); var r = 1e3 * t.targetduration; if (t.updated) { var i = t.fragments; if (i.length && 4 * r > e) { var n = 1e3 * i[i.length - 1].duration; n < r && (r = n) } } else r /= 2; return Math.round(r) }(n, 1e3 * (n.edge - S)); n.updated && s > this.requestScheduled + L && (this.requestScheduled = a.loading.start), void 0 !== u && n.canBlockReload ? this.requestScheduled = a.loading.first + L - (1e3 * n.partTarget || 1e3) : -1 === this.requestScheduled || this.requestScheduled + L < s ? this.requestScheduled = s : this.requestScheduled - s <= 0 && (this.requestScheduled += L); var A = this.requestScheduled - s; A = Math.max(0, A), this.log("reload live playlist " + t + " in " + Math.round(A) + " ms"), this.timer = self.setTimeout((function () { return i.loadPlaylist(l) }), A) } else this.clearTimer() }, e.getDeliveryDirectives = function (t, e, r, i) { var n = tr(t); return null != e && e.skip && t.deltaUpdateFailed && (r = e.msn, i = e.part, n = Je), new er(r, i, n) }, e.checkRetry = function (t) { var e = this, r = t.details, i = cr(t), n = t.errorAction, a = n || {}, s = a.action, o = a.retryCount, l = void 0 === o ? 0 : o, u = a.retryConfig, h = !!n && !!u && (s === Rr || !n.resolved && s === Lr); if (h) { var d; if (this.requestScheduled = -1, l >= u.maxNumRetry) return !1; if (i && null != (d = t.context) && d.deliveryDirectives) this.warn("Retrying playlist loading " + (l + 1) + "/" + u.maxNumRetry + ' after "' + r + '" without delivery-directives'), this.loadPlaylist(); else { var c = gr(u, l); this.timer = self.setTimeout((function () { return e.loadPlaylist() }), c), this.warn("Retrying playlist loading " + (l + 1) + "/" + u.maxNumRetry + ' after "' + r + '" in ' + c + "ms") } t.levelRetry = !0, n.resolved = !0 } return h }, t }(), Cr = function () { function t(t, e, r) { void 0 === e && (e = 0), void 0 === r && (r = 0), this.halfLife = void 0, this.alpha_ = void 0, this.estimate_ = void 0, this.totalWeight_ = void 0, this.halfLife = t, this.alpha_ = t ? Math.exp(Math.log(.5) / t) : 0, this.estimate_ = e, this.totalWeight_ = r } var e = t.prototype; return e.sample = function (t, e) { var r = Math.pow(this.alpha_, t); this.estimate_ = e * (1 - r) + r * this.estimate_, this.totalWeight_ += t }, e.getTotalWeight = function () { return this.totalWeight_ }, e.getEstimate = function () { if (this.alpha_) { var t = 1 - Math.pow(this.alpha_, this.totalWeight_); if (t) return this.estimate_ / t } return this.estimate_ }, t }(), _r = function () { function t(t, e, r, i) { void 0 === i && (i = 100), this.defaultEstimate_ = void 0, this.minWeight_ = void 0, this.minDelayMs_ = void 0, this.slow_ = void 0, this.fast_ = void 0, this.defaultTTFB_ = void 0, this.ttfb_ = void 0, this.defaultEstimate_ = r, this.minWeight_ = .001, this.minDelayMs_ = 50, this.slow_ = new Cr(t), this.fast_ = new Cr(e), this.defaultTTFB_ = i, this.ttfb_ = new Cr(t) } var e = t.prototype; return e.update = function (t, e) { var r = this.slow_, i = this.fast_, n = this.ttfb_; r.halfLife !== t && (this.slow_ = new Cr(t, r.getEstimate(), r.getTotalWeight())), i.halfLife !== e && (this.fast_ = new Cr(e, i.getEstimate(), i.getTotalWeight())), n.halfLife !== t && (this.ttfb_ = new Cr(t, n.getEstimate(), n.getTotalWeight())) }, e.sample = function (t, e) { var r = (t = Math.max(t, this.minDelayMs_)) / 1e3, i = 8 * e / r; this.fast_.sample(r, i), this.slow_.sample(r, i) }, e.sampleTTFB = function (t) { var e = t / 1e3, r = Math.sqrt(2) * Math.exp(-Math.pow(e, 2) / 2); this.ttfb_.sample(r, Math.max(t, 5)) }, e.canEstimate = function () { return this.fast_.getTotalWeight() >= this.minWeight_ }, e.getEstimate = function () { return this.canEstimate() ? Math.min(this.fast_.getEstimate(), this.slow_.getEstimate()) : this.defaultEstimate_ }, e.getEstimateTTFB = function () { return this.ttfb_.getTotalWeight() >= this.minWeight_ ? this.ttfb_.getEstimate() : this.defaultTTFB_ }, e.destroy = function () { }, t }(), xr = { supported: !0, configurations: [], decodingInfoResults: [{ supported: !0, powerEfficient: !0, smooth: !0 }] }, Pr = {}; function Fr(t, e, r) { var n = t.videoCodec, a = t.audioCodec; if (!n || !a || !r) return Promise.resolve(xr); var s = { width: t.width, height: t.height, bitrate: Math.ceil(Math.max(.9 * t.bitrate, t.averageBitrate)), framerate: t.frameRate || 30 }, o = t.videoRange; "SDR" !== o && (s.transferFunction = o.toLowerCase()); var l = n.split(",").map((function (t) { return { type: "media-source", video: i(i({}, s), {}, { contentType: ae(t, "video") }) } })); return a && t.audioGroups && t.audioGroups.forEach((function (t) { var r; t && (null == (r = e.groups[t]) || r.tracks.forEach((function (e) { if (e.groupId === t) { var r = e.channels || "", i = parseFloat(r); y(i) && i > 2 && l.push.apply(l, a.split(",").map((function (t) { return { type: "media-source", audio: { contentType: ae(t, "audio"), channels: "" + i } } }))) } }))) })), Promise.all(l.map((function (t) { var e = function (t) { var e = t.audio, r = t.video, i = r || e; if (i) { var n = i.contentType.split('"')[1]; if (r) return "r" + r.height + "x" + r.width + "f" + Math.ceil(r.framerate) + (r.transferFunction || "sd") + "_" + n + "_" + Math.ceil(r.bitrate / 1e5); if (e) return "c" + e.channels + (e.spatialRendering ? "s" : "n") + "_" + n } return "" }(t); return Pr[e] || (Pr[e] = r.decodingInfo(t)) }))).then((function (t) { return { supported: !t.some((function (t) { return !t.supported })), configurations: l, decodingInfoResults: t } })).catch((function (t) { return { supported: !1, configurations: l, decodingInfoResults: [], error: t } })) } function Mr(t, e) { var r = !1, i = []; return t && (r = "SDR" !== t, i = [t]), e && (i = e.allowedVideoRanges || Qe.slice(0), i = (r = void 0 !== e.preferHDR ? e.preferHDR : function () { if ("function" == typeof matchMedia) { var t = matchMedia("(dynamic-range: high)"), e = matchMedia("bad query"); if (t.media !== e.media) return !0 === t.matches } return !1 }()) ? i.filter((function (t) { return "SDR" !== t })) : ["SDR"]), { preferHDR: r, allowedVideoRanges: i } } function Or(t, e) { w.log('[abr] start candidates with "' + t + '" ignored because ' + e) } function Nr(t, e, r) { if ("attrs" in t) { var i = e.indexOf(t); if (-1 !== i) return i } for (var n = 0; n < e.length; n++)if (Ur(t, e[n], r)) return n; return -1 } function Ur(t, e, r) { var i = t.groupId, n = t.name, a = t.lang, s = t.assocLang, o = t.characteristics, l = t.default, u = t.forced; return (void 0 === i || e.groupId === i) && (void 0 === n || e.name === n) && (void 0 === a || e.lang === a) && (void 0 === a || e.assocLang === s) && (void 0 === l || e.default === l) && (void 0 === u || e.forced === u) && (void 0 === o || function (t, e) { void 0 === e && (e = ""); var r = t.split(","), i = e.split(","); return r.length === i.length && !r.some((function (t) { return -1 === i.indexOf(t) })) }(o, e.characteristics)) && (void 0 === r || r(t, e)) } function Br(t, e) { var r = t.audioCodec, i = t.channels; return !(void 0 !== r && (e.audioCodec || "").substring(0, 4) !== r.substring(0, 4) || void 0 !== i && i !== (e.channels || "2")) } function Gr(t, e, r) { for (var i = e; i; i--)if (r(t[i])) return i; for (var n = e + 1; n < t.length; n++)if (r(t[n])) return n; return -1 } var Kr = function () { function t(t) { var e = this; this.hls = void 0, this.lastLevelLoadSec = 0, this.lastLoadedFragLevel = -1, this.firstSelection = -1, this._nextAutoLevel = -1, this.nextAutoLevelKey = "", this.audioTracksByGroup = null, this.codecTiers = null, this.timer = -1, this.fragCurrent = null, this.partCurrent = null, this.bitrateTestDelay = 0, this.bwEstimator = void 0, this._abandonRulesCheck = function () { var t = e.fragCurrent, r = e.partCurrent, i = e.hls, n = i.autoLevelEnabled, a = i.media; if (t && a) { var s = performance.now(), o = r ? r.stats : t.stats, l = r ? r.duration : t.duration, u = s - o.loading.start, h = i.minAutoLevel; if (o.aborted || o.loaded && o.loaded === o.total || t.level <= h) return e.clearTimer(), void (e._nextAutoLevel = -1); if (n && !a.paused && a.playbackRate && a.readyState) { var d = i.mainForwardBufferInfo; if (null !== d) { var c = e.bwEstimator.getEstimateTTFB(), f = Math.abs(a.playbackRate); if (!(u <= Math.max(c, l / (2 * f) * 1e3))) { var g = d.len / f, v = o.loading.first ? o.loading.first - o.loading.start : -1, m = o.loaded && v > -1, p = e.getBwEstimate(), E = i.levels, T = E[t.level], L = o.total || Math.max(o.loaded, Math.round(l * T.averageBitrate / 8)), A = m ? u - v : u; A < 1 && m && (A = Math.min(u, 8 * o.loaded / p)); var R = m ? 1e3 * o.loaded / A : 0, k = R ? (L - o.loaded) / R : 8 * L / p + c / 1e3; if (!(k <= g)) { var b, D = R ? 8 * R : p, I = Number.POSITIVE_INFINITY; for (b = t.level - 1; b > h; b--) { var C = E[b].maxBitrate; if ((I = e.getTimeToLoadFrag(c / 1e3, D, l * C, !E[b].details)) < g) break } if (!(I >= k || I > 10 * l)) { i.nextLoadLevel = i.nextAutoLevel = b, m ? e.bwEstimator.sample(u - Math.min(c, v), o.loaded) : e.bwEstimator.sampleTTFB(u); var _ = E[b].maxBitrate; e.getBwEstimate() * e.hls.config.abrBandWidthUpFactor > _ && e.resetEstimator(_), e.clearTimer(), w.warn("[abr] Fragment " + t.sn + (r ? " part " + r.index : "") + " of level " + t.level + " is loading too slowly;\n Time to underbuffer: " + g.toFixed(3) + " s\n Estimated load time for current fragment: " + k.toFixed(3) + " s\n Estimated load time for down switch fragment: " + I.toFixed(3) + " s\n TTFB estimate: " + (0 | v) + " ms\n Current BW estimate: " + (y(p) ? 0 | p : "Unknown") + " bps\n New BW estimate: " + (0 | e.getBwEstimate()) + " bps\n Switching to level " + b + " @ " + (0 | _) + " bps"), i.trigger(S.FRAG_LOAD_EMERGENCY_ABORTED, { frag: t, part: r, stats: o }) } } } } } } }, this.hls = t, this.bwEstimator = this.initEstimator(), this.registerListeners() } var e = t.prototype; return e.resetEstimator = function (t) { t && (w.log("setting initial bwe to " + t), this.hls.config.abrEwmaDefaultEstimate = t), this.firstSelection = -1, this.bwEstimator = this.initEstimator() }, e.initEstimator = function () { var t = this.hls.config; return new _r(t.abrEwmaSlowVoD, t.abrEwmaFastVoD, t.abrEwmaDefaultEstimate) }, e.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.FRAG_LOADING, this.onFragLoading, this), t.on(S.FRAG_LOADED, this.onFragLoaded, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.on(S.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this), t.on(S.ERROR, this.onError, this) }, e.unregisterListeners = function () { var t = this.hls; t && (t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.FRAG_LOADING, this.onFragLoading, this), t.off(S.FRAG_LOADED, this.onFragLoaded, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.off(S.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this), t.off(S.ERROR, this.onError, this)) }, e.destroy = function () { this.unregisterListeners(), this.clearTimer(), this.hls = this._abandonRulesCheck = null, this.fragCurrent = this.partCurrent = null }, e.onManifestLoading = function (t, e) { this.lastLoadedFragLevel = -1, this.firstSelection = -1, this.lastLevelLoadSec = 0, this.fragCurrent = this.partCurrent = null, this.onLevelsUpdated(), this.clearTimer() }, e.onLevelsUpdated = function () { this.lastLoadedFragLevel > -1 && this.fragCurrent && (this.lastLoadedFragLevel = this.fragCurrent.level), this._nextAutoLevel = -1, this.onMaxAutoLevelUpdated(), this.codecTiers = null, this.audioTracksByGroup = null }, e.onMaxAutoLevelUpdated = function () { this.firstSelection = -1, this.nextAutoLevelKey = "" }, e.onFragLoading = function (t, e) { var r, i = e.frag; this.ignoreFragment(i) || (i.bitrateTest || (this.fragCurrent = i, this.partCurrent = null != (r = e.part) ? r : null), this.clearTimer(), this.timer = self.setInterval(this._abandonRulesCheck, 100)) }, e.onLevelSwitching = function (t, e) { this.clearTimer() }, e.onError = function (t, e) { if (!e.fatal) switch (e.details) { case A.BUFFER_ADD_CODEC_ERROR: case A.BUFFER_APPEND_ERROR: this.lastLoadedFragLevel = -1, this.firstSelection = -1; break; case A.FRAG_LOAD_TIMEOUT: var r = e.frag, i = this.fragCurrent, n = this.partCurrent; if (r && i && r.sn === i.sn && r.level === i.level) { var a = performance.now(), s = n ? n.stats : r.stats, o = a - s.loading.start, l = s.loading.first ? s.loading.first - s.loading.start : -1; if (s.loaded && l > -1) { var u = this.bwEstimator.getEstimateTTFB(); this.bwEstimator.sample(o - Math.min(u, l), s.loaded) } else this.bwEstimator.sampleTTFB(o) } } }, e.getTimeToLoadFrag = function (t, e, r, i) { return t + r / e + (i ? this.lastLevelLoadSec : 0) }, e.onLevelLoaded = function (t, e) { var r = this.hls.config, i = e.stats.loading, n = i.end - i.start; y(n) && (this.lastLevelLoadSec = n / 1e3), e.details.live ? this.bwEstimator.update(r.abrEwmaSlowLive, r.abrEwmaFastLive) : this.bwEstimator.update(r.abrEwmaSlowVoD, r.abrEwmaFastVoD) }, e.onFragLoaded = function (t, e) { var r = e.frag, i = e.part, n = i ? i.stats : r.stats; if (r.type === we && this.bwEstimator.sampleTTFB(n.loading.first - n.loading.start), !this.ignoreFragment(r)) { if (this.clearTimer(), r.level === this._nextAutoLevel && (this._nextAutoLevel = -1), this.firstSelection = -1, this.hls.config.abrMaxWithRealBitrate) { var a = i ? i.duration : r.duration, s = this.hls.levels[r.level], o = (s.loaded ? s.loaded.bytes : 0) + n.loaded, l = (s.loaded ? s.loaded.duration : 0) + a; s.loaded = { bytes: o, duration: l }, s.realBitrate = Math.round(8 * o / l) } if (r.bitrateTest) { var u = { stats: n, frag: r, part: i, id: r.type }; this.onFragBuffered(S.FRAG_BUFFERED, u), r.bitrateTest = !1 } else this.lastLoadedFragLevel = r.level } }, e.onFragBuffered = function (t, e) { var r = e.frag, i = e.part, n = null != i && i.stats.loaded ? i.stats : r.stats; if (!n.aborted && !this.ignoreFragment(r)) { var a = n.parsing.end - n.loading.start - Math.min(n.loading.first - n.loading.start, this.bwEstimator.getEstimateTTFB()); this.bwEstimator.sample(a, n.loaded), n.bwEstimate = this.getBwEstimate(), r.bitrateTest ? this.bitrateTestDelay = a / 1e3 : this.bitrateTestDelay = 0 } }, e.ignoreFragment = function (t) { return t.type !== we || "initSegment" === t.sn }, e.clearTimer = function () { this.timer > -1 && (self.clearInterval(this.timer), this.timer = -1) }, e.getAutoLevelKey = function () { return this.getBwEstimate() + "_" + this.getStarvationDelay().toFixed(2) }, e.getNextABRAutoLevel = function () { var t = this.fragCurrent, e = this.partCurrent, r = this.hls, i = r.maxAutoLevel, n = r.config, a = r.minAutoLevel, s = e ? e.duration : t ? t.duration : 0, o = this.getBwEstimate(), l = this.getStarvationDelay(), u = n.abrBandWidthFactor, h = n.abrBandWidthUpFactor; if (l) { var d = this.findBestLevel(o, a, i, l, 0, u, h); if (d >= 0) return d } var c = s ? Math.min(s, n.maxStarvationDelay) : n.maxStarvationDelay; if (!l) { var f = this.bitrateTestDelay; f && (c = (s ? Math.min(s, n.maxLoadingDelay) : n.maxLoadingDelay) - f, w.info("[abr] bitrate test took " + Math.round(1e3 * f) + "ms, set first fragment max fetchDuration to " + Math.round(1e3 * c) + " ms"), u = h = 1) } var g = this.findBestLevel(o, a, i, l, c, u, h); if (w.info("[abr] " + (l ? "rebuffering expected" : "buffer is empty") + ", optimal quality level " + g), g > -1) return g; var v = r.levels[a], m = r.levels[r.loadLevel]; return (null == v ? void 0 : v.bitrate) < (null == m ? void 0 : m.bitrate) ? a : r.loadLevel }, e.getStarvationDelay = function () { var t = this.hls, e = t.media; if (!e) return 1 / 0; var r = e && 0 !== e.playbackRate ? Math.abs(e.playbackRate) : 1, i = t.mainForwardBufferInfo; return (i ? i.len : 0) / r }, e.getBwEstimate = function () { return this.bwEstimator.canEstimate() ? this.bwEstimator.getEstimate() : this.hls.config.abrEwmaDefaultEstimate }, e.findBestLevel = function (t, e, r, i, n, a, s) { var o, l = this, u = i + n, h = this.lastLoadedFragLevel, d = -1 === h ? this.hls.firstLevel : h, c = this.fragCurrent, f = this.partCurrent, g = this.hls, v = g.levels, m = g.allAudioTracks, p = g.loadLevel, E = g.config; if (1 === v.length) return 0; var T, S = v[d], L = !(null == S || null == (o = S.details) || !o.live), A = -1 === p || -1 === h, R = "SDR", k = (null == S ? void 0 : S.frameRate) || 0, b = E.audioPreference, D = E.videoPreference, I = this.audioTracksByGroup || (this.audioTracksByGroup = function (t) { return t.reduce((function (t, e) { var r = t.groups[e.groupId]; r || (r = t.groups[e.groupId] = { tracks: [], channels: { 2: 0 }, hasDefault: !1, hasAutoSelect: !1 }), r.tracks.push(e); var i = e.channels || "2"; return r.channels[i] = (r.channels[i] || 0) + 1, r.hasDefault = r.hasDefault || e.default, r.hasAutoSelect = r.hasAutoSelect || e.autoselect, r.hasDefault && (t.hasDefaultAudio = !0), r.hasAutoSelect && (t.hasAutoSelectAudio = !0), t }), { hasDefaultAudio: !1, hasAutoSelectAudio: !1, groups: {} }) }(m)); if (A) { if (-1 !== this.firstSelection) return this.firstSelection; var C = this.codecTiers || (this.codecTiers = function (t, e, r, i) { return t.slice(r, i + 1).reduce((function (t, r) { if (!r.codecSet) return t; var i = r.audioGroups, n = t[r.codecSet]; n || (t[r.codecSet] = n = { minBitrate: 1 / 0, minHeight: 1 / 0, minFramerate: 1 / 0, maxScore: 0, videoRanges: { SDR: 0 }, channels: { 2: 0 }, hasDefaultAudio: !i, fragmentError: 0 }), n.minBitrate = Math.min(n.minBitrate, r.bitrate); var a = Math.min(r.height, r.width); return n.minHeight = Math.min(n.minHeight, a), n.minFramerate = Math.min(n.minFramerate, r.frameRate), n.maxScore = Math.max(n.maxScore, r.score), n.fragmentError += r.fragmentError, n.videoRanges[r.videoRange] = (n.videoRanges[r.videoRange] || 0) + 1, i && i.forEach((function (t) { if (t) { var r = e.groups[t]; r && (n.hasDefaultAudio = n.hasDefaultAudio || e.hasDefaultAudio ? r.hasDefault : r.hasAutoSelect || !e.hasDefaultAudio && !e.hasAutoSelectAudio, Object.keys(r.channels).forEach((function (t) { n.channels[t] = (n.channels[t] || 0) + r.channels[t] }))) } })), t }), {}) }(v, I, e, r)), _ = function (t, e, r, i, n) { for (var a = Object.keys(t), s = null == i ? void 0 : i.channels, o = null == i ? void 0 : i.audioCodec, l = s && 2 === parseInt(s), u = !0, h = !1, d = 1 / 0, c = 1 / 0, f = 1 / 0, g = 0, v = [], m = Mr(e, n), p = m.preferHDR, E = m.allowedVideoRanges, T = function () { var e = t[a[S]]; u = e.channels[2] > 0, d = Math.min(d, e.minHeight), c = Math.min(c, e.minFramerate), f = Math.min(f, e.minBitrate); var r = E.filter((function (t) { return e.videoRanges[t] > 0 })); r.length > 0 && (h = !0, v = r) }, S = a.length; S--;)T(); d = y(d) ? d : 0, c = y(c) ? c : 0; var L = Math.max(1080, d), A = Math.max(30, c); return f = y(f) ? f : r, r = Math.max(f, r), h || (e = void 0, v = []), { codecSet: a.reduce((function (e, i) { var n = t[i]; if (i === e) return e; if (n.minBitrate > r) return Or(i, "min bitrate of " + n.minBitrate + " > current estimate of " + r), e; if (!n.hasDefaultAudio) return Or(i, "no renditions with default or auto-select sound found"), e; if (o && i.indexOf(o.substring(0, 4)) % 5 != 0) return Or(i, 'audio codec preference "' + o + '" not found'), e; if (s && !l) { if (!n.channels[s]) return Or(i, "no renditions with " + s + " channel sound found (channels options: " + Object.keys(n.channels) + ")"), e } else if ((!o || l) && u && 0 === n.channels[2]) return Or(i, "no renditions with stereo sound found"), e; return n.minHeight > L ? (Or(i, "min resolution of " + n.minHeight + " > maximum of " + L), e) : n.minFramerate > A ? (Or(i, "min framerate of " + n.minFramerate + " > maximum of " + A), e) : v.some((function (t) { return n.videoRanges[t] > 0 })) ? n.maxScore < g ? (Or(i, "max score of " + n.maxScore + " < selected max of " + g), e) : e && (oe(i) >= oe(e) || n.fragmentError > t[e].fragmentError) ? e : (g = n.maxScore, i) : (Or(i, "no variants with VIDEO-RANGE of " + JSON.stringify(v) + " found"), e) }), void 0), videoRanges: v, preferHDR: p, minFramerate: c, minBitrate: f } }(C, R, t, b, D), x = _.codecSet, P = _.videoRanges, F = _.minFramerate, M = _.minBitrate, O = _.preferHDR; T = x, R = O ? P[P.length - 1] : P[0], k = F, t = Math.max(t, M), w.log("[abr] picked start tier " + JSON.stringify(_)) } else T = null == S ? void 0 : S.codecSet, R = null == S ? void 0 : S.videoRange; for (var N, U = f ? f.duration : c ? c.duration : 0, B = this.bwEstimator.getEstimateTTFB() / 1e3, G = [], K = function () { var e, o = v[H], c = H > d; if (!o) return 0; if (E.useMediaCapabilities && !o.supportedResult && !o.supportedPromise) { var g = navigator.mediaCapabilities; "function" == typeof (null == g ? void 0 : g.decodingInfo) && function (t, e, r, i, n, a) { var s = t.audioCodec ? t.audioGroups : null, o = null == a ? void 0 : a.audioCodec, l = null == a ? void 0 : a.channels, u = l ? parseInt(l) : o ? 1 / 0 : 2, h = null; if (null != s && s.length) try { h = 1 === s.length && s[0] ? e.groups[s[0]].channels : s.reduce((function (t, r) { if (r) { var i = e.groups[r]; if (!i) throw new Error("Audio track group " + r + " not found"); Object.keys(i.channels).forEach((function (e) { t[e] = (t[e] || 0) + i.channels[e] })) } return t }), { 2: 0 }) } catch (t) { return !0 } return void 0 !== t.videoCodec && (t.width > 1920 && t.height > 1088 || t.height > 1920 && t.width > 1088 || t.frameRate > Math.max(i, 30) || "SDR" !== t.videoRange && t.videoRange !== r || t.bitrate > Math.max(n, 8e6)) || !!h && y(u) && Object.keys(h).some((function (t) { return parseInt(t) > u })) }(o, I, R, k, t, b) ? (o.supportedPromise = Fr(o, I, g), o.supportedPromise.then((function (t) { if (l.hls) { o.supportedResult = t; var e = l.hls.levels, r = e.indexOf(o); t.error ? w.warn('[abr] MediaCapabilities decodingInfo error: "' + t.error + '" for level ' + r + " " + JSON.stringify(t)) : t.supported || (w.warn("[abr] Unsupported MediaCapabilities decodingInfo result for level " + r + " " + JSON.stringify(t)), r > -1 && e.length > 1 && (w.log("[abr] Removing unsupported level " + r), l.hls.removeLevel(r))) } }))) : o.supportedResult = xr } if (T && o.codecSet !== T || R && o.videoRange !== R || c && k > o.frameRate || !c && k > 0 && k < o.frameRate || o.supportedResult && (null == (e = o.supportedResult.decodingInfoResults) || !e[0].smooth)) return G.push(H), 0; var m, D = o.details, C = (f ? null == D ? void 0 : D.partTarget : null == D ? void 0 : D.averagetargetduration) || U; m = c ? s * t : a * t; var _ = U && i >= 2 * U && 0 === n ? v[H].averageBitrate : v[H].maxBitrate, x = l.getTimeToLoadFrag(B, m, _ * C, void 0 === D); if (m >= _ && (H === h || 0 === o.loadError && 0 === o.fragmentError) && (x <= B || !y(x) || L && !l.bitrateTestDelay || x < u)) { var P = l.forcedAutoLevel; return H === p || -1 !== P && P === p || (G.length && w.trace("[abr] Skipped level(s) " + G.join(",") + " of " + r + ' max with CODECS and VIDEO-RANGE:"' + v[G[0]].codecs + '" ' + v[G[0]].videoRange + '; not compatible with "' + S.codecs + '" ' + R), w.info("[abr] switch candidate:" + d + "->" + H + " adjustedbw(" + Math.round(m) + ")-bitrate=" + Math.round(m - _) + " ttfb:" + B.toFixed(1) + " avgDuration:" + C.toFixed(1) + " maxFetchDuration:" + u.toFixed(1) + " fetchDuration:" + x.toFixed(1) + " firstSelection:" + A + " codecSet:" + T + " videoRange:" + R + " hls.loadLevel:" + p)), A && (l.firstSelection = H), { v: H } } }, H = r; H >= e; H--)if (0 !== (N = K()) && N) return N.v; return -1 }, s(t, [{ key: "firstAutoLevel", get: function () { var t = this.hls, e = t.maxAutoLevel, r = t.minAutoLevel, i = this.getBwEstimate(), n = this.hls.config.maxStarvationDelay, a = this.findBestLevel(i, r, e, 0, n, 1, 1); if (a > -1) return a; var s = this.hls.firstLevel, o = Math.min(Math.max(s, r), e); return w.warn("[abr] Could not find best starting auto level. Defaulting to first in playlist " + s + " clamped to " + o), o } }, { key: "forcedAutoLevel", get: function () { return this.nextAutoLevelKey ? -1 : this._nextAutoLevel } }, { key: "nextAutoLevel", get: function () { var t = this.forcedAutoLevel, e = this.bwEstimator.canEstimate(), r = this.lastLoadedFragLevel > -1; if (!(-1 === t || e && r && this.nextAutoLevelKey !== this.getAutoLevelKey())) return t; var i = e && r ? this.getNextABRAutoLevel() : this.firstAutoLevel; if (-1 !== t) { var n = this.hls.levels; if (n.length > Math.max(t, i) && n[t].loadError <= n[i].loadError) return t } return this._nextAutoLevel = i, this.nextAutoLevelKey = this.getAutoLevelKey(), i }, set: function (t) { var e = this.hls, r = e.maxAutoLevel, i = e.minAutoLevel, n = Math.min(Math.max(t, i), r); this._nextAutoLevel !== n && (this.nextAutoLevelKey = "", this._nextAutoLevel = n) } }]), t }(), Hr = function () { function t() { this._boundTick = void 0, this._tickTimer = null, this._tickInterval = null, this._tickCallCount = 0, this._boundTick = this.tick.bind(this) } var e = t.prototype; return e.destroy = function () { this.onHandlerDestroying(), this.onHandlerDestroyed() }, e.onHandlerDestroying = function () { this.clearNextTick(), this.clearInterval() }, e.onHandlerDestroyed = function () { }, e.hasInterval = function () { return !!this._tickInterval }, e.hasNextTick = function () { return !!this._tickTimer }, e.setInterval = function (t) { return !this._tickInterval && (this._tickCallCount = 0, this._tickInterval = self.setInterval(this._boundTick, t), !0) }, e.clearInterval = function () { return !!this._tickInterval && (self.clearInterval(this._tickInterval), this._tickInterval = null, !0) }, e.clearNextTick = function () { return !!this._tickTimer && (self.clearTimeout(this._tickTimer), this._tickTimer = null, !0) }, e.tick = function () { this._tickCallCount++, 1 === this._tickCallCount && (this.doTick(), this._tickCallCount > 1 && this.tickImmediate(), this._tickCallCount = 0) }, e.tickImmediate = function () { this.clearNextTick(), this._tickTimer = self.setTimeout(this._boundTick, 0) }, e.doTick = function () { }, t }(), Vr = "NOT_LOADED", Yr = "APPENDING", Wr = "PARTIAL", jr = "OK", qr = function () { function t(t) { this.activePartLists = Object.create(null), this.endListFragments = Object.create(null), this.fragments = Object.create(null), this.timeRanges = Object.create(null), this.bufferPadding = .2, this.hls = void 0, this.hasGaps = !1, this.hls = t, this._registerListeners() } var e = t.prototype; return e._registerListeners = function () { var t = this.hls; t.on(S.BUFFER_APPENDED, this.onBufferAppended, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this), t.on(S.FRAG_LOADED, this.onFragLoaded, this) }, e._unregisterListeners = function () { var t = this.hls; t.off(S.BUFFER_APPENDED, this.onBufferAppended, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this), t.off(S.FRAG_LOADED, this.onFragLoaded, this) }, e.destroy = function () { this._unregisterListeners(), this.fragments = this.activePartLists = this.endListFragments = this.timeRanges = null }, e.getAppendedFrag = function (t, e) { var r = this.activePartLists[e]; if (r) for (var i = r.length; i--;) { var n = r[i]; if (!n) break; var a = n.end; if (n.start <= t && null !== a && t <= a) return n } return this.getBufferedFrag(t, e) }, e.getBufferedFrag = function (t, e) { for (var r = this.fragments, i = Object.keys(r), n = i.length; n--;) { var a = r[i[n]]; if ((null == a ? void 0 : a.body.type) === e && a.buffered) { var s = a.body; if (s.start <= t && t <= s.end) return s } } return null }, e.detectEvictedFragments = function (t, e, r, i) { var n = this; this.timeRanges && (this.timeRanges[t] = e); var a = (null == i ? void 0 : i.fragment.sn) || -1; Object.keys(this.fragments).forEach((function (i) { var s = n.fragments[i]; if (s && !(a >= s.body.sn)) if (s.buffered || s.loaded) { var o = s.range[t]; o && o.time.some((function (t) { var r = !n.isTimeBuffered(t.startPTS, t.endPTS, e); return r && n.removeFragment(s.body), r })) } else s.body.type === r && n.removeFragment(s.body) })) }, e.detectPartialFragments = function (t) { var e = this, r = this.timeRanges, i = t.frag, n = t.part; if (r && "initSegment" !== i.sn) { var a = zr(i), s = this.fragments[a]; if (!(!s || s.buffered && i.gap)) { var o = !i.relurl; Object.keys(r).forEach((function (t) { var a = i.elementaryStreams[t]; if (a) { var l = r[t], u = o || !0 === a.partial; s.range[t] = e.getBufferedTimes(i, n, u, l) } })), s.loaded = null, Object.keys(s.range).length ? (s.buffered = !0, (s.body.endList = i.endList || s.body.endList) && (this.endListFragments[s.body.type] = s), Xr(s) || this.removeParts(i.sn - 1, i.type)) : this.removeFragment(s.body) } } }, e.removeParts = function (t, e) { var r = this.activePartLists[e]; r && (this.activePartLists[e] = r.filter((function (e) { return e.fragment.sn >= t }))) }, e.fragBuffered = function (t, e) { var r = zr(t), i = this.fragments[r]; !i && e && (i = this.fragments[r] = { body: t, appendedPTS: null, loaded: null, buffered: !1, range: Object.create(null) }, t.gap && (this.hasGaps = !0)), i && (i.loaded = null, i.buffered = !0) }, e.getBufferedTimes = function (t, e, r, i) { for (var n = { time: [], partial: r }, a = t.start, s = t.end, o = t.minEndPTS || s, l = t.maxStartPTS || a, u = 0; u < i.length; u++) { var h = i.start(u) - this.bufferPadding, d = i.end(u) + this.bufferPadding; if (l >= h && o <= d) { n.time.push({ startPTS: Math.max(a, i.start(u)), endPTS: Math.min(s, i.end(u)) }); break } if (a < d && s > h) { var c = Math.max(a, i.start(u)), f = Math.min(s, i.end(u)); f > c && (n.partial = !0, n.time.push({ startPTS: c, endPTS: f })) } else if (s <= h) break } return n }, e.getPartialFragment = function (t) { var e, r, i, n = null, a = 0, s = this.bufferPadding, o = this.fragments; return Object.keys(o).forEach((function (l) { var u = o[l]; u && Xr(u) && (r = u.body.start - s, i = u.body.end + s, t >= r && t <= i && (e = Math.min(t - r, i - t), a <= e && (n = u.body, a = e))) })), n }, e.isEndListAppended = function (t) { var e = this.endListFragments[t]; return void 0 !== e && (e.buffered || Xr(e)) }, e.getState = function (t) { var e = zr(t), r = this.fragments[e]; return r ? r.buffered ? Xr(r) ? Wr : jr : Yr : Vr }, e.isTimeBuffered = function (t, e, r) { for (var i, n, a = 0; a < r.length; a++) { if (i = r.start(a) - this.bufferPadding, n = r.end(a) + this.bufferPadding, t >= i && e <= n) return !0; if (e <= i) return !1 } return !1 }, e.onFragLoaded = function (t, e) { var r = e.frag, i = e.part; if ("initSegment" !== r.sn && !r.bitrateTest) { var n = i ? null : e, a = zr(r); this.fragments[a] = { body: r, appendedPTS: null, loaded: n, buffered: !1, range: Object.create(null) } } }, e.onBufferAppended = function (t, e) { var r = this, i = e.frag, n = e.part, a = e.timeRanges; if ("initSegment" !== i.sn) { var s = i.type; if (n) { var o = this.activePartLists[s]; o || (this.activePartLists[s] = o = []), o.push(n) } this.timeRanges = a, Object.keys(a).forEach((function (t) { var e = a[t]; r.detectEvictedFragments(t, e, s, n) })) } }, e.onFragBuffered = function (t, e) { this.detectPartialFragments(e) }, e.hasFragment = function (t) { var e = zr(t); return !!this.fragments[e] }, e.hasParts = function (t) { var e; return !(null == (e = this.activePartLists[t]) || !e.length) }, e.removeFragmentsInRange = function (t, e, r, i, n) { var a = this; i && !this.hasGaps || Object.keys(this.fragments).forEach((function (s) { var o = a.fragments[s]; if (o) { var l = o.body; l.type !== r || i && !l.gap || l.start < e && l.end > t && (o.buffered || n) && a.removeFragment(l) } })) }, e.removeFragment = function (t) { var e = zr(t); t.stats.loaded = 0, t.clearElementaryStreamInfo(); var r = this.activePartLists[t.type]; if (r) { var i = t.sn; this.activePartLists[t.type] = r.filter((function (t) { return t.fragment.sn !== i })) } delete this.fragments[e], t.endList && delete this.endListFragments[t.type] }, e.removeAllFragments = function () { this.fragments = Object.create(null), this.endListFragments = Object.create(null), this.activePartLists = Object.create(null), this.hasGaps = !1 }, t }(); function Xr(t) { var e, r, i; return t.buffered && (t.body.gap || (null == (e = t.range.video) ? void 0 : e.partial) || (null == (r = t.range.audio) ? void 0 : r.partial) || (null == (i = t.range.audiovideo) ? void 0 : i.partial)) } function zr(t) { return t.type + "_" + t.level + "_" + t.sn } var Qr = { length: 0, start: function () { return 0 }, end: function () { return 0 } }, Jr = function () { function t() { } return t.isBuffered = function (e, r) { try { if (e) for (var i = t.getBuffered(e), n = 0; n < i.length; n++)if (r >= i.start(n) && r <= i.end(n)) return !0 } catch (t) { } return !1 }, t.bufferInfo = function (e, r, i) { try { if (e) { var n, a = t.getBuffered(e), s = []; for (n = 0; n < a.length; n++)s.push({ start: a.start(n), end: a.end(n) }); return this.bufferedInfo(s, r, i) } } catch (t) { } return { len: 0, start: r, end: r, nextStart: void 0 } }, t.bufferedInfo = function (t, e, r) { e = Math.max(0, e), t.sort((function (t, e) { var r = t.start - e.start; return r || e.end - t.end })); var i = []; if (r) for (var n = 0; n < t.length; n++) { var a = i.length; if (a) { var s = i[a - 1].end; t[n].start - s < r ? t[n].end > s && (i[a - 1].end = t[n].end) : i.push(t[n]) } else i.push(t[n]) } else i = t; for (var o, l = 0, u = e, h = e, d = 0; d < i.length; d++) { var c = i[d].start, f = i[d].end; if (e + r >= c && e < f) u = c, l = (h = f) - e; else if (e + r < c) { o = c; break } } return { len: l, start: u || 0, end: h || 0, nextStart: o } }, t.getBuffered = function (t) { try { return t.buffered } catch (t) { return w.log("failed to get media.buffered", t), Qr } }, t }(), $r = function (t, e, r, i, n, a) { void 0 === i && (i = 0), void 0 === n && (n = -1), void 0 === a && (a = !1), this.level = void 0, this.sn = void 0, this.part = void 0, this.id = void 0, this.size = void 0, this.partial = void 0, this.transmuxing = { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, this.buffering = { audio: { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, video: { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, audiovideo: { start: 0, executeStart: 0, executeEnd: 0, end: 0 } }, this.level = t, this.sn = e, this.id = r, this.size = i, this.part = n, this.partial = a }; function Zr(t, e) { for (var r = 0, i = t.length; r < i; r++) { var n; if ((null == (n = t[r]) ? void 0 : n.cc) === e) return t[r] } return null } function ti(t, e) { if (t) { var r = t.start + e; t.start = t.startPTS = r, t.endPTS = r + t.duration } } function ei(t, e) { for (var r = e.fragments, i = 0, n = r.length; i < n; i++)ti(r[i], t); e.fragmentHint && ti(e.fragmentHint, t), e.alignedSliding = !0 } function ri(t, e, r) { e && (function (t, e, r) { if (function (t, e, r) { return !(!e || !(r.endCC > r.startCC || t && t.cc < r.startCC)) }(t, r, e)) { var i = function (t, e) { var r = t.fragments, i = e.fragments; if (i.length && r.length) { var n = Zr(r, i[0].cc); if (n && (!n || n.startPTS)) return n; w.log("No frag in previous level to align on") } else w.log("No fragments to align") }(r, e); i && y(i.start) && (w.log("Adjusting PTS using last level due to CC increase within current level " + e.url), ei(i.start, e)) } }(t, r, e), !r.alignedSliding && e && ii(r, e), r.alignedSliding || !e || r.skippedSegments || or(e, r)) } function ii(t, e) { if (t.hasProgramDateTime && e.hasProgramDateTime) { var r = t.fragments, i = e.fragments; if (r.length && i.length) { var n, a, s = Math.min(e.endCC, t.endCC); e.startCC < s && t.startCC < s && (n = Zr(i, s), a = Zr(r, s)), n && a || (a = Zr(r, (n = i[Math.floor(i.length / 2)]).cc) || r[Math.floor(r.length / 2)]); var o = n.programDateTime, l = a.programDateTime; o && l && ei((l - o) / 1e3 - (a.start - n.start), t) } } } var ni = Math.pow(2, 17), ai = function () { function t(t) { this.config = void 0, this.loader = null, this.partLoadTimeout = -1, this.config = t } var e = t.prototype; return e.destroy = function () { this.loader && (this.loader.destroy(), this.loader = null) }, e.abort = function () { this.loader && this.loader.abort() }, e.load = function (t, e) { var r = this, n = t.url; if (!n) return Promise.reject(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, error: new Error("Fragment does not have a " + (n ? "part list" : "url")), networkDetails: null })); this.abort(); var a = this.config, s = a.fLoader, o = a.loader; return new Promise((function (l, u) { if (r.loader && r.loader.destroy(), t.gap) { if (t.tagList.some((function (t) { return "GAP" === t[0] }))) return void u(oi(t)); t.gap = !1 } var h = r.loader = t.loader = s ? new s(a) : new o(a), d = si(t), c = vr(a.fragLoadPolicy.default), f = { loadPolicy: c, timeout: c.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0, highWaterMark: "initSegment" === t.sn ? 1 / 0 : ni }; t.stats = h.stats, h.load(d, f, { onSuccess: function (e, i, n, a) { r.resetLoader(t, h); var s = e.data; n.resetIV && t.decryptdata && (t.decryptdata.iv = new Uint8Array(s.slice(0, 16)), s = s.slice(16)), l({ frag: t, part: null, payload: s, networkDetails: a }) }, onError: function (e, a, s, o) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, response: i({ url: n, data: void 0 }, e), error: new Error("HTTP Error " + e.code + " " + e.text), networkDetails: s, stats: o })) }, onAbort: function (e, i, n) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.INTERNAL_ABORTED, fatal: !1, frag: t, error: new Error("Aborted"), networkDetails: n, stats: e })) }, onTimeout: function (e, i, n) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_TIMEOUT, fatal: !1, frag: t, error: new Error("Timeout after " + f.timeout + "ms"), networkDetails: n, stats: e })) }, onProgress: function (r, i, n, a) { e && e({ frag: t, part: null, payload: n, networkDetails: a }) } }) })) }, e.loadPart = function (t, e, r) { var n = this; this.abort(); var a = this.config, s = a.fLoader, o = a.loader; return new Promise((function (l, u) { if (n.loader && n.loader.destroy(), t.gap || e.gap) u(oi(t, e)); else { var h = n.loader = t.loader = s ? new s(a) : new o(a), d = si(t, e), c = vr(a.fragLoadPolicy.default), f = { loadPolicy: c, timeout: c.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0, highWaterMark: ni }; e.stats = h.stats, h.load(d, f, { onSuccess: function (i, a, s, o) { n.resetLoader(t, h), n.updateStatsFromPart(t, e); var u = { frag: t, part: e, payload: i.data, networkDetails: o }; r(u), l(u) }, onError: function (r, a, s, o) { n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, part: e, response: i({ url: d.url, data: void 0 }, r), error: new Error("HTTP Error " + r.code + " " + r.text), networkDetails: s, stats: o })) }, onAbort: function (r, i, a) { t.stats.aborted = e.stats.aborted, n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.INTERNAL_ABORTED, fatal: !1, frag: t, part: e, error: new Error("Aborted"), networkDetails: a, stats: r })) }, onTimeout: function (r, i, a) { n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_TIMEOUT, fatal: !1, frag: t, part: e, error: new Error("Timeout after " + f.timeout + "ms"), networkDetails: a, stats: r })) } }) } })) }, e.updateStatsFromPart = function (t, e) { var r = t.stats, i = e.stats, n = i.total; if (r.loaded += i.loaded, n) { var a = Math.round(t.duration / e.duration), s = Math.min(Math.round(r.loaded / n), a), o = (a - s) * Math.round(r.loaded / s); r.total = r.loaded + o } else r.total = Math.max(r.loaded, r.total); var l = r.loading, u = i.loading; l.start ? l.first += u.first - u.start : (l.start = u.start, l.first = u.first), l.end = u.end }, e.resetLoader = function (t, e) { t.loader = null, this.loader === e && (self.clearTimeout(this.partLoadTimeout), this.loader = null), e.destroy() }, t }(); function si(t, e) { void 0 === e && (e = null); var r = e || t, i = { frag: t, part: e, responseType: "arraybuffer", url: r.url, headers: {}, rangeStart: 0, rangeEnd: 0 }, n = r.byteRangeStartOffset, a = r.byteRangeEndOffset; if (y(n) && y(a)) { var s, o = n, l = a; if ("initSegment" === t.sn && "AES-128" === (null == (s = t.decryptdata) ? void 0 : s.method)) { var u = a - n; u % 16 && (l = a + (16 - u % 16)), 0 !== n && (i.resetIV = !0, o = n - 16) } i.rangeStart = o, i.rangeEnd = l } return i } function oi(t, e) { var r = new Error("GAP " + (t.gap ? "tag" : "attribute") + " found"), i = { type: L.MEDIA_ERROR, details: A.FRAG_GAP, fatal: !1, frag: t, error: r, networkDetails: null }; return e && (i.part = e), (e || t).stats.aborted = !0, new li(i) } var li = function (t) { function e(e) { var r; return (r = t.call(this, e.error.message) || this).data = void 0, r.data = e, r } return l(e, t), e }(c(Error)), ui = function () { function t(t, e) { this.subtle = void 0, this.aesIV = void 0, this.subtle = t, this.aesIV = e } return t.prototype.decrypt = function (t, e) { return this.subtle.decrypt({ name: "AES-CBC", iv: this.aesIV }, e, t) }, t }(), hi = function () { function t(t, e) { this.subtle = void 0, this.key = void 0, this.subtle = t, this.key = e } return t.prototype.expandKey = function () { return this.subtle.importKey("raw", this.key, { name: "AES-CBC" }, !1, ["encrypt", "decrypt"]) }, t }(), di = function () { function t() { this.rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.sBox = new Uint32Array(256), this.invSBox = new Uint32Array(256), this.key = new Uint32Array(0), this.ksRows = 0, this.keySize = 0, this.keySchedule = void 0, this.invKeySchedule = void 0, this.initTable() } var e = t.prototype; return e.uint8ArrayToUint32Array_ = function (t) { for (var e = new DataView(t), r = new Uint32Array(4), i = 0; i < 4; i++)r[i] = e.getUint32(4 * i); return r }, e.initTable = function () { var t = this.sBox, e = this.invSBox, r = this.subMix, i = r[0], n = r[1], a = r[2], s = r[3], o = this.invSubMix, l = o[0], u = o[1], h = o[2], d = o[3], c = new Uint32Array(256), f = 0, g = 0, v = 0; for (v = 0; v < 256; v++)c[v] = v < 128 ? v << 1 : v << 1 ^ 283; for (v = 0; v < 256; v++) { var m = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4; m = m >>> 8 ^ 255 & m ^ 99, t[f] = m, e[m] = f; var p = c[f], y = c[p], E = c[y], T = 257 * c[m] ^ 16843008 * m; i[f] = T << 24 | T >>> 8, n[f] = T << 16 | T >>> 16, a[f] = T << 8 | T >>> 24, s[f] = T, T = 16843009 * E ^ 65537 * y ^ 257 * p ^ 16843008 * f, l[m] = T << 24 | T >>> 8, u[m] = T << 16 | T >>> 16, h[m] = T << 8 | T >>> 24, d[m] = T, f ? (f = p ^ c[c[c[E ^ p]]], g ^= c[c[g]]) : f = g = 1 } }, e.expandKey = function (t) { for (var e = this.uint8ArrayToUint32Array_(t), r = !0, i = 0; i < e.length && r;)r = e[i] === this.key[i], i++; if (!r) { this.key = e; var n = this.keySize = e.length; if (4 !== n && 6 !== n && 8 !== n) throw new Error("Invalid aes key size=" + n); var a, s, o, l, u = this.ksRows = 4 * (n + 6 + 1), h = this.keySchedule = new Uint32Array(u), d = this.invKeySchedule = new Uint32Array(u), c = this.sBox, f = this.rcon, g = this.invSubMix, v = g[0], m = g[1], p = g[2], y = g[3]; for (a = 0; a < u; a++)a < n ? o = h[a] = e[a] : (l = o, a % n == 0 ? (l = c[(l = l << 8 | l >>> 24) >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l], l ^= f[a / n | 0] << 24) : n > 6 && a % n == 4 && (l = c[l >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l]), h[a] = o = (h[a - n] ^ l) >>> 0); for (s = 0; s < u; s++)a = u - s, l = 3 & s ? h[a] : h[a - 4], d[s] = s < 4 || a <= 4 ? l : v[c[l >>> 24]] ^ m[c[l >>> 16 & 255]] ^ p[c[l >>> 8 & 255]] ^ y[c[255 & l]], d[s] = d[s] >>> 0 } }, e.networkToHostOrderSwap = function (t) { return t << 24 | (65280 & t) << 8 | (16711680 & t) >> 8 | t >>> 24 }, e.decrypt = function (t, e, r) { for (var i, n, a, s, o, l, u, h, d, c, f, g, v, m, p = this.keySize + 6, y = this.invKeySchedule, E = this.invSBox, T = this.invSubMix, S = T[0], L = T[1], A = T[2], R = T[3], k = this.uint8ArrayToUint32Array_(r), b = k[0], D = k[1], I = k[2], w = k[3], C = new Int32Array(t), _ = new Int32Array(C.length), x = this.networkToHostOrderSwap; e < C.length;) { for (d = x(C[e]), c = x(C[e + 1]), f = x(C[e + 2]), g = x(C[e + 3]), o = d ^ y[0], l = g ^ y[1], u = f ^ y[2], h = c ^ y[3], v = 4, m = 1; m < p; m++)i = S[o >>> 24] ^ L[l >> 16 & 255] ^ A[u >> 8 & 255] ^ R[255 & h] ^ y[v], n = S[l >>> 24] ^ L[u >> 16 & 255] ^ A[h >> 8 & 255] ^ R[255 & o] ^ y[v + 1], a = S[u >>> 24] ^ L[h >> 16 & 255] ^ A[o >> 8 & 255] ^ R[255 & l] ^ y[v + 2], s = S[h >>> 24] ^ L[o >> 16 & 255] ^ A[l >> 8 & 255] ^ R[255 & u] ^ y[v + 3], o = i, l = n, u = a, h = s, v += 4; i = E[o >>> 24] << 24 ^ E[l >> 16 & 255] << 16 ^ E[u >> 8 & 255] << 8 ^ E[255 & h] ^ y[v], n = E[l >>> 24] << 24 ^ E[u >> 16 & 255] << 16 ^ E[h >> 8 & 255] << 8 ^ E[255 & o] ^ y[v + 1], a = E[u >>> 24] << 24 ^ E[h >> 16 & 255] << 16 ^ E[o >> 8 & 255] << 8 ^ E[255 & l] ^ y[v + 2], s = E[h >>> 24] << 24 ^ E[o >> 16 & 255] << 16 ^ E[l >> 8 & 255] << 8 ^ E[255 & u] ^ y[v + 3], _[e] = x(i ^ b), _[e + 1] = x(s ^ D), _[e + 2] = x(a ^ I), _[e + 3] = x(n ^ w), b = d, D = c, I = f, w = g, e += 4 } return _.buffer }, t }(), ci = function () { function t(t, e) { var r = (void 0 === e ? {} : e).removePKCS7Padding, i = void 0 === r || r; if (this.logEnabled = !0, this.removePKCS7Padding = void 0, this.subtle = null, this.softwareDecrypter = null, this.key = null, this.fastAesKey = null, this.remainderData = null, this.currentIV = null, this.currentResult = null, this.useSoftware = void 0, this.useSoftware = t.enableSoftwareAES, this.removePKCS7Padding = i, i) try { var n = self.crypto; n && (this.subtle = n.subtle || n.webkitSubtle) } catch (t) { } null === this.subtle && (this.useSoftware = !0) } var e = t.prototype; return e.destroy = function () { this.subtle = null, this.softwareDecrypter = null, this.key = null, this.fastAesKey = null, this.remainderData = null, this.currentIV = null, this.currentResult = null }, e.isSync = function () { return this.useSoftware }, e.flush = function () { var t = this.currentResult, e = this.remainderData; if (!t || e) return this.reset(), null; var r, i, n, a = new Uint8Array(t); return this.reset(), this.removePKCS7Padding ? (i = (r = a).byteLength, (n = i && new DataView(r.buffer).getUint8(i - 1)) ? nt(r, 0, i - n) : r) : a }, e.reset = function () { this.currentResult = null, this.currentIV = null, this.remainderData = null, this.softwareDecrypter && (this.softwareDecrypter = null) }, e.decrypt = function (t, e, r) { var i = this; return this.useSoftware ? new Promise((function (n, a) { i.softwareDecrypt(new Uint8Array(t), e, r); var s = i.flush(); s ? n(s.buffer) : a(new Error("[softwareDecrypt] Failed to decrypt data")) })) : this.webCryptoDecrypt(new Uint8Array(t), e, r) }, e.softwareDecrypt = function (t, e, r) { var i = this.currentIV, n = this.currentResult, a = this.remainderData; this.logOnce("JS AES decrypt"), a && (t = Kt(a, t), this.remainderData = null); var s = this.getValidChunk(t); if (!s.length) return null; i && (r = i); var o = this.softwareDecrypter; o || (o = this.softwareDecrypter = new di), o.expandKey(e); var l = n; return this.currentResult = o.decrypt(s.buffer, 0, r), this.currentIV = nt(s, -16).buffer, l || null }, e.webCryptoDecrypt = function (t, e, r) { var i = this, n = this.subtle; return this.key === e && this.fastAesKey || (this.key = e, this.fastAesKey = new hi(n, e)), this.fastAesKey.expandKey().then((function (e) { return n ? (i.logOnce("WebCrypto AES decrypt"), new ui(n, new Uint8Array(r)).decrypt(t.buffer, e)) : Promise.reject(new Error("web crypto not initialized")) })).catch((function (n) { return w.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, " + n.name + ": " + n.message), i.onWebCryptoError(t, e, r) })) }, e.onWebCryptoError = function (t, e, r) { this.useSoftware = !0, this.logEnabled = !0, this.softwareDecrypt(t, e, r); var i = this.flush(); if (i) return i.buffer; throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data") }, e.getValidChunk = function (t) { var e = t, r = t.length - t.length % 16; return r !== t.length && (e = nt(t, 0, r), this.remainderData = nt(t, r)), e }, e.logOnce = function (t) { this.logEnabled && (w.log("[decrypter]: " + t), this.logEnabled = !1) }, t }(), fi = function (t) { for (var e = "", r = t.length, i = 0; i < r; i++)e += "[" + t.start(i).toFixed(3) + "-" + t.end(i).toFixed(3) + "]"; return e }, gi = "STOPPED", vi = "IDLE", mi = "KEY_LOADING", pi = "FRAG_LOADING", yi = "FRAG_LOADING_WAITING_RETRY", Ei = "WAITING_TRACK", Ti = "PARSING", Si = "PARSED", Li = "ENDED", Ai = "ERROR", Ri = "WAITING_INIT_PTS", ki = "WAITING_LEVEL", bi = function (t) { function e(e, r, i, n, a) { var s; return (s = t.call(this) || this).hls = void 0, s.fragPrevious = null, s.fragCurrent = null, s.fragmentTracker = void 0, s.transmuxer = null, s._state = gi, s.playlistType = void 0, s.media = null, s.mediaBuffer = null, s.config = void 0, s.bitrateTest = !1, s.lastCurrentTime = 0, s.nextLoadPosition = 0, s.startPosition = 0, s.startTimeOffset = null, s.loadedmetadata = !1, s.retryDate = 0, s.levels = null, s.fragmentLoader = void 0, s.keyLoader = void 0, s.levelLastLoaded = null, s.startFragRequested = !1, s.decrypter = void 0, s.initPTS = [], s.onvseeking = null, s.onvended = null, s.logPrefix = "", s.log = void 0, s.warn = void 0, s.playlistType = a, s.logPrefix = n, s.log = w.log.bind(w, n + ":"), s.warn = w.warn.bind(w, n + ":"), s.hls = e, s.fragmentLoader = new ai(e.config), s.keyLoader = i, s.fragmentTracker = r, s.config = e.config, s.decrypter = new ci(e.config), e.on(S.MANIFEST_LOADED, s.onManifestLoaded, function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t }(s)), s } l(e, t); var r = e.prototype; return r.doTick = function () { this.onTickEnd() }, r.onTickEnd = function () { }, r.startLoad = function (t) { }, r.stopLoad = function () { this.fragmentLoader.abort(), this.keyLoader.abort(this.playlistType); var t = this.fragCurrent; null != t && t.loader && (t.abortRequests(), this.fragmentTracker.removeFragment(t)), this.resetTransmuxer(), this.fragCurrent = null, this.fragPrevious = null, this.clearInterval(), this.clearNextTick(), this.state = gi }, r._streamEnded = function (t, e) { if (e.live || t.nextStart || !t.end || !this.media) return !1; var r = e.partList; if (null != r && r.length) { var i = r[r.length - 1]; return Jr.isBuffered(this.media, i.start + i.duration / 2) } var n = e.fragments[e.fragments.length - 1].type; return this.fragmentTracker.isEndListAppended(n) }, r.getLevelDetails = function () { var t; if (this.levels && null !== this.levelLastLoaded) return null == (t = this.levelLastLoaded) ? void 0 : t.details }, r.onMediaAttached = function (t, e) { var r = this.media = this.mediaBuffer = e.media; this.onvseeking = this.onMediaSeeking.bind(this), this.onvended = this.onMediaEnded.bind(this), r.addEventListener("seeking", this.onvseeking), r.addEventListener("ended", this.onvended); var i = this.config; this.levels && i.autoStartLoad && this.state === gi && this.startLoad(i.startPosition) }, r.onMediaDetaching = function () { var t = this.media; null != t && t.ended && (this.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0), t && this.onvseeking && this.onvended && (t.removeEventListener("seeking", this.onvseeking), t.removeEventListener("ended", this.onvended), this.onvseeking = this.onvended = null), this.keyLoader && this.keyLoader.detach(), this.media = this.mediaBuffer = null, this.loadedmetadata = !1, this.fragmentTracker.removeAllFragments(), this.stopLoad() }, r.onMediaSeeking = function () { var t = this.config, e = this.fragCurrent, r = this.media, i = this.mediaBuffer, n = this.state, a = r ? r.currentTime : 0, s = Jr.bufferInfo(i || r, a, t.maxBufferHole); if (this.log("media seeking to " + (y(a) ? a.toFixed(3) : a) + ", state: " + n), this.state === Li) this.resetLoadingState(); else if (e) { var o = t.maxFragLookUpTolerance, l = e.start - o, u = e.start + e.duration + o; if (!s.len || u < s.start || l > s.end) { var h = a > u; (a < l || h) && (h && e.loader && (this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"), e.abortRequests(), this.resetLoadingState()), this.fragPrevious = null) } } r && (this.fragmentTracker.removeFragmentsInRange(a, 1 / 0, this.playlistType, !0), this.lastCurrentTime = a), this.loadedmetadata || s.len || (this.nextLoadPosition = this.startPosition = a), this.tickImmediate() }, r.onMediaEnded = function () { this.startPosition = this.lastCurrentTime = 0 }, r.onManifestLoaded = function (t, e) { this.startTimeOffset = e.startTimeOffset, this.initPTS = [] }, r.onHandlerDestroying = function () { this.hls.off(S.MANIFEST_LOADED, this.onManifestLoaded, this), this.stopLoad(), t.prototype.onHandlerDestroying.call(this), this.hls = null }, r.onHandlerDestroyed = function () { this.state = gi, this.fragmentLoader && this.fragmentLoader.destroy(), this.keyLoader && this.keyLoader.destroy(), this.decrypter && this.decrypter.destroy(), this.hls = this.log = this.warn = this.decrypter = this.keyLoader = this.fragmentLoader = this.fragmentTracker = null, t.prototype.onHandlerDestroyed.call(this) }, r.loadFragment = function (t, e, r) { this._loadFragForPlayback(t, e, r) }, r._loadFragForPlayback = function (t, e, r) { var i = this; this._doFragLoad(t, e, r, (function (e) { if (i.fragContextChanged(t)) return i.warn("Fragment " + t.sn + (e.part ? " p: " + e.part.index : "") + " of level " + t.level + " was dropped during download."), void i.fragmentTracker.removeFragment(t); t.stats.chunkCount++, i._handleFragmentLoadProgress(e) })).then((function (e) { if (e) { var r = i.state; i.fragContextChanged(t) ? (r === pi || !i.fragCurrent && r === Ti) && (i.fragmentTracker.removeFragment(t), i.state = vi) : ("payload" in e && (i.log("Loaded fragment " + t.sn + " of level " + t.level), i.hls.trigger(S.FRAG_LOADED, e)), i._handleFragmentLoadComplete(e)) } })).catch((function (e) { i.state !== gi && i.state !== Ai && (i.warn(e), i.resetFragmentLoading(t)) })) }, r.clearTrackerIfNeeded = function (t) { var e, r = this.fragmentTracker; if (r.getState(t) === Yr) { var i = t.type, n = this.getFwdBufferInfo(this.mediaBuffer, i), a = Math.max(t.duration, n ? n.len : this.config.maxBufferLength); this.reduceMaxBufferLength(a) && r.removeFragment(t) } else 0 === (null == (e = this.mediaBuffer) ? void 0 : e.buffered.length) ? r.removeAllFragments() : r.hasParts(t.type) && (r.detectPartialFragments({ frag: t, part: null, stats: t.stats, id: t.type }), r.getState(t) === Wr && r.removeFragment(t)) }, r.checkLiveUpdate = function (t) { if (t.updated && !t.live) { var e = t.fragments[t.fragments.length - 1]; this.fragmentTracker.detectPartialFragments({ frag: e, part: null, stats: e.stats, id: e.type }) } t.fragments[0] || (t.deltaUpdateFailed = !0) }, r.flushMainBuffer = function (t, e, r) { if (void 0 === r && (r = null), t - e) { var i = { startOffset: t, endOffset: e, type: r }; this.hls.trigger(S.BUFFER_FLUSHING, i) } }, r._loadInitSegment = function (t, e) { var r = this; this._doFragLoad(t, e).then((function (e) { if (!e || r.fragContextChanged(t) || !r.levels) throw new Error("init load aborted"); return e })).then((function (e) { var i = r.hls, n = e.payload, a = t.decryptdata; if (n && n.byteLength > 0 && null != a && a.key && a.iv && "AES-128" === a.method) { var s = self.performance.now(); return r.decrypter.decrypt(new Uint8Array(n), a.key.buffer, a.iv.buffer).catch((function (e) { throw i.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_DECRYPT_ERROR, fatal: !1, error: e, reason: e.message, frag: t }), e })).then((function (n) { var a = self.performance.now(); return i.trigger(S.FRAG_DECRYPTED, { frag: t, payload: n, stats: { tstart: s, tdecrypt: a } }), e.payload = n, r.completeInitSegmentLoad(e) })) } return r.completeInitSegmentLoad(e) })).catch((function (e) { r.state !== gi && r.state !== Ai && (r.warn(e), r.resetFragmentLoading(t)) })) }, r.completeInitSegmentLoad = function (t) { if (!this.levels) throw new Error("init load aborted, missing levels"); var e = t.frag.stats; this.state = vi, t.frag.data = new Uint8Array(t.payload), e.parsing.start = e.buffering.start = self.performance.now(), e.parsing.end = e.buffering.end = self.performance.now(), this.tick() }, r.fragContextChanged = function (t) { var e = this.fragCurrent; return !t || !e || t.sn !== e.sn || t.level !== e.level }, r.fragBufferedComplete = function (t, e) { var r, i, n, a, s = this.mediaBuffer ? this.mediaBuffer : this.media; if (this.log("Buffered " + t.type + " sn: " + t.sn + (e ? " part: " + e.index : "") + " of " + (this.playlistType === we ? "level" : "track") + " " + t.level + " (frag:[" + (null != (r = t.startPTS) ? r : NaN).toFixed(3) + "-" + (null != (i = t.endPTS) ? i : NaN).toFixed(3) + "] > buffer:" + (s ? fi(Jr.getBuffered(s)) : "(detached)") + ")"), "initSegment" !== t.sn) { var o; if (t.type !== _e) { var l = t.elementaryStreams; if (!Object.keys(l).some((function (t) { return !!l[t] }))) return void (this.state = vi) } var u = null == (o = this.levels) ? void 0 : o[t.level]; null != u && u.fragmentError && (this.log("Resetting level fragment error count of " + u.fragmentError + " on frag buffered"), u.fragmentError = 0) } this.state = vi, s && (!this.loadedmetadata && t.type == we && s.buffered.length && (null == (n = this.fragCurrent) ? void 0 : n.sn) === (null == (a = this.fragPrevious) ? void 0 : a.sn) && (this.loadedmetadata = !0, this.seekToStartPos()), this.tick()) }, r.seekToStartPos = function () { }, r._handleFragmentLoadComplete = function (t) { var e = this.transmuxer; if (e) { var r = t.frag, i = t.part, n = t.partsLoaded, a = !n || 0 === n.length || n.some((function (t) { return !t })), s = new $r(r.level, r.sn, r.stats.chunkCount + 1, 0, i ? i.index : -1, !a); e.flush(s) } }, r._handleFragmentLoadProgress = function (t) { }, r._doFragLoad = function (t, e, r, i) { var n, a = this; void 0 === r && (r = null); var s = null == e ? void 0 : e.details; if (!this.levels || !s) throw new Error("frag load aborted, missing level" + (s ? "" : " detail") + "s"); var o = null; if (!t.encrypted || null != (n = t.decryptdata) && n.key ? !t.encrypted && s.encryptedFragments.length && this.keyLoader.loadClear(t, s.encryptedFragments) : (this.log("Loading key for " + t.sn + " of [" + s.startSN + "-" + s.endSN + "], " + ("[stream-controller]" === this.logPrefix ? "level" : "track") + " " + t.level), this.state = mi, this.fragCurrent = t, o = this.keyLoader.load(t).then((function (t) { if (!a.fragContextChanged(t.frag)) return a.hls.trigger(S.KEY_LOADED, t), a.state === mi && (a.state = vi), t })), this.hls.trigger(S.KEY_LOADING, { frag: t }), null === this.fragCurrent && (o = Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))), r = Math.max(t.start, r || 0), this.config.lowLatencyMode && "initSegment" !== t.sn) { var l = s.partList; if (l && i) { r > t.end && s.fragmentHint && (t = s.fragmentHint); var u = this.getNextPart(l, t, r); if (u > -1) { var h, d = l[u]; return this.log("Loading part sn: " + t.sn + " p: " + d.index + " cc: " + t.cc + " of playlist [" + s.startSN + "-" + s.endSN + "] parts [0-" + u + "-" + (l.length - 1) + "] " + ("[stream-controller]" === this.logPrefix ? "level" : "track") + ": " + t.level + ", target: " + parseFloat(r.toFixed(3))), this.nextLoadPosition = d.start + d.duration, this.state = pi, h = o ? o.then((function (r) { return !r || a.fragContextChanged(r.frag) ? null : a.doFragPartsLoad(t, d, e, i) })).catch((function (t) { return a.handleFragLoadError(t) })) : this.doFragPartsLoad(t, d, e, i).catch((function (t) { return a.handleFragLoadError(t) })), this.hls.trigger(S.FRAG_LOADING, { frag: t, part: d, targetBufferTime: r }), null === this.fragCurrent ? Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")) : h } if (!t.url || this.loadedEndOfParts(l, r)) return Promise.resolve(null) } } this.log("Loading fragment " + t.sn + " cc: " + t.cc + " " + (s ? "of [" + s.startSN + "-" + s.endSN + "] " : "") + ("[stream-controller]" === this.logPrefix ? "level" : "track") + ": " + t.level + ", target: " + parseFloat(r.toFixed(3))), y(t.sn) && !this.bitrateTest && (this.nextLoadPosition = t.start + t.duration), this.state = pi; var c, f = this.config.progressive; return c = f && o ? o.then((function (e) { return !e || a.fragContextChanged(null == e ? void 0 : e.frag) ? null : a.fragmentLoader.load(t, i) })).catch((function (t) { return a.handleFragLoadError(t) })) : Promise.all([this.fragmentLoader.load(t, f ? i : void 0), o]).then((function (t) { var e = t[0]; return !f && e && i && i(e), e })).catch((function (t) { return a.handleFragLoadError(t) })), this.hls.trigger(S.FRAG_LOADING, { frag: t, targetBufferTime: r }), null === this.fragCurrent ? Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")) : c }, r.doFragPartsLoad = function (t, e, r, i) { var n = this; return new Promise((function (a, s) { var o, l = [], u = null == (o = r.details) ? void 0 : o.partList; !function e(o) { n.fragmentLoader.loadPart(t, o, i).then((function (i) { l[o.index] = i; var s = i.part; n.hls.trigger(S.FRAG_LOADED, i); var h = ur(r, t.sn, o.index + 1) || hr(u, t.sn, o.index + 1); if (!h) return a({ frag: t, part: s, partsLoaded: l }); e(h) })).catch(s) }(e) })) }, r.handleFragLoadError = function (t) { if ("data" in t) { var e = t.data; t.data && e.details === A.INTERNAL_ABORTED ? this.handleFragLoadAborted(e.frag, e.part) : this.hls.trigger(S.ERROR, e) } else this.hls.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.INTERNAL_EXCEPTION, err: t, error: t, fatal: !0 }); return null }, r._handleTransmuxerFlush = function (t) { var e = this.getCurrentContext(t); if (e && this.state === Ti) { var r = e.frag, i = e.part, n = e.level, a = self.performance.now(); r.stats.parsing.end = a, i && (i.stats.parsing.end = a), this.updateLevelTiming(r, i, n, t.partial) } else this.fragCurrent || this.state === gi || this.state === Ai || (this.state = vi) }, r.getCurrentContext = function (t) { var e = this.levels, r = this.fragCurrent, i = t.level, n = t.sn, a = t.part; if (null == e || !e[i]) return this.warn("Levels object was unset while buffering fragment " + n + " of level " + i + ". The current chunk will not be buffered."), null; var s = e[i], o = a > -1 ? ur(s, n, a) : null, l = o ? o.fragment : function (t, e, r) { if (null == t || !t.details) return null; var i = t.details, n = i.fragments[e - i.startSN]; return n || ((n = i.fragmentHint) && n.sn === e ? n : e < i.startSN && r && r.sn === e ? r : null) }(s, n, r); return l ? (r && r !== l && (l.stats = r.stats), { frag: l, part: o, level: s }) : null }, r.bufferFragmentData = function (t, e, r, i, n) { var a; if (t && this.state === Ti) { var s = t.data1, o = t.data2, l = s; if (s && o && (l = Kt(s, o)), null != (a = l) && a.length) { var u = { type: t.type, frag: e, part: r, chunkMeta: i, parent: e.type, data: l }; if (this.hls.trigger(S.BUFFER_APPENDING, u), t.dropped && t.independent && !r) { if (n) return; this.flushBufferGap(e) } } } }, r.flushBufferGap = function (t) { var e = this.media; if (e) if (Jr.isBuffered(e, e.currentTime)) { var r = e.currentTime, i = Jr.bufferInfo(e, r, 0), n = t.duration, a = Math.min(2 * this.config.maxFragLookUpTolerance, .25 * n), s = Math.max(Math.min(t.start - a, i.end - a), r + a); t.start - s > a && this.flushMainBuffer(s, t.start) } else this.flushMainBuffer(0, t.start) }, r.getFwdBufferInfo = function (t, e) { var r = this.getLoadPosition(); return y(r) ? this.getFwdBufferInfoAtPos(t, r, e) : null }, r.getFwdBufferInfoAtPos = function (t, e, r) { var i = this.config.maxBufferHole, n = Jr.bufferInfo(t, e, i); if (0 === n.len && void 0 !== n.nextStart) { var a = this.fragmentTracker.getBufferedFrag(e, r); if (a && n.nextStart < a.end) return Jr.bufferInfo(t, e, Math.max(n.nextStart, i)) } return n }, r.getMaxBufferLength = function (t) { var e, r = this.config; return e = t ? Math.max(8 * r.maxBufferSize / t, r.maxBufferLength) : r.maxBufferLength, Math.min(e, r.maxMaxBufferLength) }, r.reduceMaxBufferLength = function (t) { var e = this.config, r = t || e.maxBufferLength; return e.maxMaxBufferLength >= r && (e.maxMaxBufferLength /= 2, this.warn("Reduce max buffer length to " + e.maxMaxBufferLength + "s"), !0) }, r.getAppendedFrag = function (t, e) { var r = this.fragmentTracker.getAppendedFrag(t, we); return r && "fragment" in r ? r.fragment : r }, r.getNextFragment = function (t, e) { var r = e.fragments, i = r.length; if (!i) return null; var n, a = this.config, s = r[0].start; if (e.live) { var o = a.initialLiveManifestSize; if (i < o) return this.warn("Not enough fragments to start playback (have: " + i + ", need: " + o + ")"), null; (!e.PTSKnown && !this.startFragRequested && -1 === this.startPosition || t < s) && (n = this.getInitialLiveFragment(e, r), this.startPosition = this.nextLoadPosition = n ? this.hls.liveSyncPosition || n.start : t) } else t <= s && (n = r[0]); if (!n) { var l = a.lowLatencyMode ? e.partEnd : e.fragmentEnd; n = this.getFragmentAtPosition(t, l, e) } return this.mapToInitFragWhenRequired(n) }, r.isLoopLoading = function (t, e) { var r = this.fragmentTracker.getState(t); return (r === jr || r === Wr && !!t.gap) && this.nextLoadPosition > e }, r.getNextFragmentLoopLoading = function (t, e, r, i, n) { var a = t.gap, s = this.getNextFragment(this.nextLoadPosition, e); if (null === s) return s; if (t = s, a && t && !t.gap && r.nextStart) { var o = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, r.nextStart, i); if (null !== o && r.len + o.len >= n) return this.log('buffer full after gaps in "' + i + '" playlist starting at sn: ' + t.sn), null } return t }, r.mapToInitFragWhenRequired = function (t) { return null == t || !t.initSegment || null != t && t.initSegment.data || this.bitrateTest ? t : t.initSegment }, r.getNextPart = function (t, e, r) { for (var i = -1, n = !1, a = !0, s = 0, o = t.length; s < o; s++) { var l = t[s]; if (a = a && !l.independent, i > -1 && r < l.start) break; var u = l.loaded; u ? i = -1 : (n || l.independent || a) && l.fragment === e && (i = s), n = u } return i }, r.loadedEndOfParts = function (t, e) { var r = t[t.length - 1]; return r && e > r.start && r.loaded }, r.getInitialLiveFragment = function (t, e) { var r = this.fragPrevious, i = null; if (r) { if (t.hasProgramDateTime && (this.log("Live playlist, switching playlist, load frag with same PDT: " + r.programDateTime), i = function (t, e, r) { if (null === e || !Array.isArray(t) || !t.length || !y(e)) return null; if (e < (t[0].programDateTime || 0)) return null; if (e >= (t[t.length - 1].endProgramDateTime || 0)) return null; r = r || 0; for (var i = 0; i < t.length; ++i) { var n = t[i]; if (Tr(e, r, n)) return n } return null }(e, r.endProgramDateTime, this.config.maxFragLookUpTolerance)), !i) { var n = r.sn + 1; if (n >= t.startSN && n <= t.endSN) { var a = e[n - t.startSN]; r.cc === a.cc && (i = a, this.log("Live playlist, switching playlist, load frag with next SN: " + i.sn)) } i || (i = function (t, e) { return pr(t, (function (t) { return t.cc < e ? 1 : t.cc > e ? -1 : 0 })) }(e, r.cc), i && this.log("Live playlist, switching playlist, load frag with same CC: " + i.sn)) } } else { var s = this.hls.liveSyncPosition; null !== s && (i = this.getFragmentAtPosition(s, this.bitrateTest ? t.fragmentEnd : t.edge, t)) } return i }, r.getFragmentAtPosition = function (t, e, r) { var i, n = this.config, a = this.fragPrevious, s = r.fragments, o = r.endSN, l = r.fragmentHint, u = n.maxFragLookUpTolerance, h = r.partList, d = !!(n.lowLatencyMode && null != h && h.length && l); if (d && l && !this.bitrateTest && (s = s.concat(l), o = l.sn), i = t < e ? yr(a, s, t, t > e - u ? 0 : u) : s[s.length - 1]) { var c = i.sn - r.startSN, f = this.fragmentTracker.getState(i); if ((f === jr || f === Wr && i.gap) && (a = i), a && i.sn === a.sn && (!d || h[0].fragment.sn > i.sn) && a && i.level === a.level) { var g = s[c + 1]; i = i.sn < o && this.fragmentTracker.getState(g) !== jr ? g : null } } return i }, r.synchronizeToLiveEdge = function (t) { var e = this.config, r = this.media; if (r) { var i = this.hls.liveSyncPosition, n = r.currentTime, a = t.fragments[0].start, s = t.edge, o = n >= a - e.maxFragLookUpTolerance && n <= s; if (null !== i && r.duration > i && (n < i || !o)) { var l = void 0 !== e.liveMaxLatencyDuration ? e.liveMaxLatencyDuration : e.liveMaxLatencyDurationCount * t.targetduration; (!o && r.readyState < 4 || n < s - l) && (this.loadedmetadata || (this.nextLoadPosition = i), r.readyState && (this.warn("Playback: " + n.toFixed(3) + " is located too far from the end of live sliding playlist: " + s + ", reset currentTime to : " + i.toFixed(3)), r.currentTime = i)) } } }, r.alignPlaylists = function (t, e, r) { var i = t.fragments.length; if (!i) return this.warn("No fragments in live playlist"), 0; var n = t.fragments[0].start, a = !e, s = t.alignedSliding && y(n); if (a || !s && !n) { var o = this.fragPrevious; ri(o, r, t); var l = t.fragments[0].start; return this.log("Live playlist sliding: " + l.toFixed(2) + " start-sn: " + (e ? e.startSN : "na") + "->" + t.startSN + " prev-sn: " + (o ? o.sn : "na") + " fragments: " + i), l } return n }, r.waitForCdnTuneIn = function (t) { return t.live && t.canBlockReload && t.partTarget && t.tuneInGoal > Math.max(t.partHoldBack, 3 * t.partTarget) }, r.setStartPosition = function (t, e) { var r = this.startPosition; if (r < e && (r = -1), -1 === r || -1 === this.lastCurrentTime) { var i = null !== this.startTimeOffset, n = i ? this.startTimeOffset : t.startTimeOffset; null !== n && y(n) ? (r = e + n, n < 0 && (r += t.totalduration), r = Math.min(Math.max(e, r), e + t.totalduration), this.log("Start time offset " + n + " found in " + (i ? "multivariant" : "media") + " playlist, adjust startPosition to " + r), this.startPosition = r) : t.live ? r = this.hls.liveSyncPosition || e : this.startPosition = r = 0, this.lastCurrentTime = r } this.nextLoadPosition = r }, r.getLoadPosition = function () { var t = this.media, e = 0; return this.loadedmetadata && t ? e = t.currentTime : this.nextLoadPosition && (e = this.nextLoadPosition), e }, r.handleFragLoadAborted = function (t, e) { this.transmuxer && "initSegment" !== t.sn && t.stats.aborted && (this.warn("Fragment " + t.sn + (e ? " part " + e.index : "") + " of level " + t.level + " was aborted"), this.resetFragmentLoading(t)) }, r.resetFragmentLoading = function (t) { this.fragCurrent && (this.fragContextChanged(t) || this.state === yi) || (this.state = vi) }, r.onFragmentOrKeyLoadError = function (t, e) { if (e.chunkMeta && !e.frag) { var r = this.getCurrentContext(e.chunkMeta); r && (e.frag = r.frag) } var i = e.frag; if (i && i.type === t && this.levels) if (this.fragContextChanged(i)) { var n; this.warn("Frag load error must match current frag to retry " + i.url + " > " + (null == (n = this.fragCurrent) ? void 0 : n.url)) } else { var a = e.details === A.FRAG_GAP; a && this.fragmentTracker.fragBuffered(i, !0); var s = e.errorAction, o = s || {}, l = o.action, u = o.retryCount, h = void 0 === u ? 0 : u, d = o.retryConfig; if (s && l === Rr && d) { this.resetStartWhenNotLoaded(this.levelLastLoaded); var c = gr(d, h); this.warn("Fragment " + i.sn + " of " + t + " " + i.level + " errored with " + e.details + ", retrying loading " + (h + 1) + "/" + d.maxNumRetry + " in " + c + "ms"), s.resolved = !0, this.retryDate = self.performance.now() + c, this.state = yi } else if (d && s) { if (this.resetFragmentErrors(t), !(h < d.maxNumRetry)) return void w.warn(e.details + " reached or exceeded max retry (" + h + ")"); a || l === Ar || (s.resolved = !0) } else (null == s ? void 0 : s.action) === Lr ? this.state = ki : this.state = Ai; this.tickImmediate() } }, r.reduceLengthAndFlushBuffer = function (t) { if (this.state === Ti || this.state === Si) { var e = t.parent, r = this.getFwdBufferInfo(this.mediaBuffer, e), i = r && r.len > .5; i && this.reduceMaxBufferLength(r.len); var n = !i; return n && this.warn("Buffer full error while media.currentTime is not buffered, flush " + e + " buffer"), t.frag && (this.fragmentTracker.removeFragment(t.frag), this.nextLoadPosition = t.frag.start), this.resetLoadingState(), n } return !1 }, r.resetFragmentErrors = function (t) { t === Ce && (this.fragCurrent = null), this.loadedmetadata || (this.startFragRequested = !1), this.state !== gi && (this.state = vi) }, r.afterBufferFlushed = function (t, e, r) { if (t) { var i = Jr.getBuffered(t); this.fragmentTracker.detectEvictedFragments(e, i, r), this.state === Li && this.resetLoadingState() } }, r.resetLoadingState = function () { this.log("Reset loading state"), this.fragCurrent = null, this.fragPrevious = null, this.state = vi }, r.resetStartWhenNotLoaded = function (t) { if (!this.loadedmetadata) { this.startFragRequested = !1; var e = t ? t.details : null; null != e && e.live ? (this.startPosition = -1, this.setStartPosition(e, 0), this.resetLoadingState()) : this.nextLoadPosition = this.startPosition } }, r.resetWhenMissingContext = function (t) { this.warn("The loading context changed while buffering fragment " + t.sn + " of level " + t.level + ". This chunk will not be buffered."), this.removeUnbufferedFrags(), this.resetStartWhenNotLoaded(this.levelLastLoaded), this.resetLoadingState() }, r.removeUnbufferedFrags = function (t) { void 0 === t && (t = 0), this.fragmentTracker.removeFragmentsInRange(t, 1 / 0, this.playlistType, !1, !0) }, r.updateLevelTiming = function (t, e, r, i) { var n, a = this, s = r.details; if (s) { if (!Object.keys(t.elementaryStreams).reduce((function (e, n) { var o = t.elementaryStreams[n]; if (o) { var l = o.endPTS - o.startPTS; if (l <= 0) return a.warn("Could not parse fragment " + t.sn + " " + n + " duration reliably (" + l + ")"), e || !1; var u = i ? 0 : ar(s, t, o.startPTS, o.endPTS, o.startDTS, o.endDTS); return a.hls.trigger(S.LEVEL_PTS_UPDATED, { details: s, level: r, drift: u, type: n, frag: t, start: o.startPTS, end: o.endPTS }), !0 } return e }), !1) && null === (null == (n = this.transmuxer) ? void 0 : n.error)) { var o = new Error("Found no media in fragment " + t.sn + " of level " + t.level + " resetting transmuxer to fallback to playlist timing"); if (0 === r.fragmentError && (r.fragmentError++, t.gap = !0, this.fragmentTracker.removeFragment(t), this.fragmentTracker.fragBuffered(t, !0)), this.warn(o.message), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: o, frag: t, reason: "Found no media in msn " + t.sn + ' of level "' + r.url + '"' }), !this.hls) return; this.resetTransmuxer() } this.state = Si, this.hls.trigger(S.FRAG_PARSED, { frag: t, part: e }) } else this.warn("level.details undefined") }, r.resetTransmuxer = function () { this.transmuxer && (this.transmuxer.destroy(), this.transmuxer = null) }, r.recoverWorkerError = function (t) { "demuxerWorker" === t.event && (this.fragmentTracker.removeAllFragments(), this.resetTransmuxer(), this.resetStartWhenNotLoaded(this.levelLastLoaded), this.resetLoadingState()) }, s(e, [{ key: "state", get: function () { return this._state }, set: function (t) { var e = this._state; e !== t && (this._state = t, this.log(e + "->" + t)) } }]), e }(Hr), Di = function () { function t() { this.chunks = [], this.dataLength = 0 } var e = t.prototype; return e.push = function (t) { this.chunks.push(t), this.dataLength += t.length }, e.flush = function () { var t, e = this.chunks, r = this.dataLength; return e.length ? (t = 1 === e.length ? e[0] : function (t, e) { for (var r = new Uint8Array(e), i = 0, n = 0; n < t.length; n++) { var a = t[n]; r.set(a, i), i += a.length } return r }(e, r), this.reset(), t) : new Uint8Array(0) }, e.reset = function () { this.chunks.length = 0, this.dataLength = 0 }, t }(); function Ii(t, e) { return void 0 === t && (t = ""), void 0 === e && (e = 9e4), { type: t, id: -1, pid: -1, inputTimeScale: e, sequenceNumber: -1, samples: [], dropped: 0 } } var wi = function () { function t() { this._audioTrack = void 0, this._id3Track = void 0, this.frameIndex = 0, this.cachedData = null, this.basePTS = null, this.initPTS = null, this.lastPTS = null } var e = t.prototype; return e.resetInitSegment = function (t, e, r, i) { this._id3Track = { type: "id3", id: 3, pid: -1, inputTimeScale: 9e4, sequenceNumber: 0, samples: [], dropped: 0 } }, e.resetTimeStamp = function (t) { this.initPTS = t, this.resetContiguity() }, e.resetContiguity = function () { this.basePTS = null, this.lastPTS = null, this.frameIndex = 0 }, e.canParse = function (t, e) { return !1 }, e.appendFrame = function (t, e, r) { }, e.demux = function (t, e) { this.cachedData && (t = Kt(this.cachedData, t), this.cachedData = null); var r, i = lt(t, 0), n = i ? i.length : 0, a = this._audioTrack, s = this._id3Track, o = i ? dt(i) : void 0, l = t.length; for ((null === this.basePTS || 0 === this.frameIndex && y(o)) && (this.basePTS = Ci(o, e, this.initPTS), this.lastPTS = this.basePTS), null === this.lastPTS && (this.lastPTS = this.basePTS), i && i.length > 0 && s.samples.push({ pts: this.lastPTS, dts: this.lastPTS, data: i, type: Ge, duration: Number.POSITIVE_INFINITY }); n < l;) { if (this.canParse(t, n)) { var u = this.appendFrame(a, t, n); u ? (this.frameIndex++, this.lastPTS = u.sample.pts, r = n += u.length) : n = l } else ht(t, n) ? (i = lt(t, n), s.samples.push({ pts: this.lastPTS, dts: this.lastPTS, data: i, type: Ge, duration: Number.POSITIVE_INFINITY }), r = n += i.length) : n++; if (n === l && r !== l) { var h = nt(t, r); this.cachedData ? this.cachedData = Kt(this.cachedData, h) : this.cachedData = h } } return { audioTrack: a, videoTrack: Ii(), id3Track: s, textTrack: Ii() } }, e.demuxSampleAes = function (t, e, r) { return Promise.reject(new Error("[" + this + "] This demuxer does not support Sample-AES decryption")) }, e.flush = function (t) { var e = this.cachedData; return e && (this.cachedData = null, this.demux(e, 0)), { audioTrack: this._audioTrack, videoTrack: Ii(), id3Track: this._id3Track, textTrack: Ii() } }, e.destroy = function () { }, t }(), Ci = function (t, e, r) { return y(t) ? 90 * t : 9e4 * e + (r ? 9e4 * r.baseTime / r.timescale : 0) }; function _i(t, e) { return 255 === t[e] && 240 == (246 & t[e + 1]) } function xi(t, e) { return 1 & t[e + 1] ? 7 : 9 } function Pi(t, e) { return (3 & t[e + 3]) << 11 | t[e + 4] << 3 | (224 & t[e + 5]) >>> 5 } function Fi(t, e) { return e + 1 < t.length && _i(t, e) } function Mi(t, e) { if (Fi(t, e)) { var r = xi(t, e); if (e + r >= t.length) return !1; var i = Pi(t, e); if (i <= r) return !1; var n = e + i; return n === t.length || Fi(t, n) } return !1 } function Oi(t, e, r, i, n) { if (!t.samplerate) { var a = function (t, e, r, i) { var n, a, s, o, l = navigator.userAgent.toLowerCase(), u = i, h = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; n = 1 + ((192 & e[r + 2]) >>> 6); var d = (60 & e[r + 2]) >>> 2; if (!(d > h.length - 1)) return s = (1 & e[r + 2]) << 2, s |= (192 & e[r + 3]) >>> 6, w.log("manifest codec:" + i + ", ADTS type:" + n + ", samplingIndex:" + d), /firefox/i.test(l) ? d >= 6 ? (n = 5, o = new Array(4), a = d - 3) : (n = 2, o = new Array(2), a = d) : -1 !== l.indexOf("android") ? (n = 2, o = new Array(2), a = d) : (n = 5, o = new Array(4), i && (-1 !== i.indexOf("mp4a.40.29") || -1 !== i.indexOf("mp4a.40.5")) || !i && d >= 6 ? a = d - 3 : ((i && -1 !== i.indexOf("mp4a.40.2") && (d >= 6 && 1 === s || /vivaldi/i.test(l)) || !i && 1 === s) && (n = 2, o = new Array(2)), a = d)), o[0] = n << 3, o[0] |= (14 & d) >> 1, o[1] |= (1 & d) << 7, o[1] |= s << 3, 5 === n && (o[1] |= (14 & a) >> 1, o[2] = (1 & a) << 7, o[2] |= 8, o[3] = 0), { config: o, samplerate: h[d], channelCount: s, codec: "mp4a.40." + n, manifestCodec: u }; var c = new Error("invalid ADTS sampling index:" + d); t.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !0, error: c, reason: c.message }) }(e, r, i, n); if (!a) return; t.config = a.config, t.samplerate = a.samplerate, t.channelCount = a.channelCount, t.codec = a.codec, t.manifestCodec = a.manifestCodec, w.log("parsed codec:" + t.codec + ", rate:" + a.samplerate + ", channels:" + a.channelCount) } } function Ni(t) { return 9216e4 / t } function Ui(t, e, r, i, n) { var a, s = i + n * Ni(t.samplerate), o = function (t, e) { var r = xi(t, e); if (e + r <= t.length) { var i = Pi(t, e) - r; if (i > 0) return { headerLength: r, frameLength: i } } }(e, r); if (o) { var l = o.frameLength, u = o.headerLength, h = u + l, d = Math.max(0, r + h - e.length); d ? (a = new Uint8Array(h - u)).set(e.subarray(r + u, e.length), 0) : a = e.subarray(r + u, r + h); var c = { unit: a, pts: s }; return d || t.samples.push(c), { sample: c, length: h, missing: d } } var f = e.length - r; return (a = new Uint8Array(f)).set(e.subarray(r, e.length), 0), { sample: { unit: a, pts: s }, length: f, missing: -1 } } var Bi = null, Gi = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], Ki = [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3], Hi = [[0, 72, 144, 12], [0, 0, 0, 0], [0, 72, 144, 12], [0, 144, 144, 12]], Vi = [0, 1, 1, 4]; function Yi(t, e, r, i, n) { if (!(r + 24 > e.length)) { var a = Wi(e, r); if (a && r + a.frameLength <= e.length) { var s = i + n * (9e4 * a.samplesPerFrame / a.sampleRate), o = { unit: e.subarray(r, r + a.frameLength), pts: s, dts: s }; return t.config = [], t.channelCount = a.channelCount, t.samplerate = a.sampleRate, t.samples.push(o), { sample: o, length: a.frameLength, missing: 0 } } } } function Wi(t, e) { var r = t[e + 1] >> 3 & 3, i = t[e + 1] >> 1 & 3, n = t[e + 2] >> 4 & 15, a = t[e + 2] >> 2 & 3; if (1 !== r && 0 !== n && 15 !== n && 3 !== a) { var s = t[e + 2] >> 1 & 1, o = t[e + 3] >> 6, l = 1e3 * Gi[14 * (3 === r ? 3 - i : 3 === i ? 3 : 4) + n - 1], u = Ki[3 * (3 === r ? 0 : 2 === r ? 1 : 2) + a], h = 3 === o ? 1 : 2, d = Hi[r][i], c = Vi[i], f = 8 * d * c, g = Math.floor(d * l / u + s) * c; if (null === Bi) { var v = (navigator.userAgent || "").match(/Chrome\/(\d+)/i); Bi = v ? parseInt(v[1]) : 0 } return !!Bi && Bi <= 87 && 2 === i && l >= 224e3 && 0 === o && (t[e + 3] = 128 | t[e + 3]), { sampleRate: u, channelCount: h, frameLength: g, samplesPerFrame: f } } } function ji(t, e) { return 255 === t[e] && 224 == (224 & t[e + 1]) && 0 != (6 & t[e + 1]) } function qi(t, e) { return e + 1 < t.length && ji(t, e) } function Xi(t, e) { if (e + 1 < t.length && ji(t, e)) { var r = Wi(t, e), i = 4; null != r && r.frameLength && (i = r.frameLength); var n = e + i; return n === t.length || qi(t, n) } return !1 } var zi = function (t) { function e(e, r) { var i; return (i = t.call(this) || this).observer = void 0, i.config = void 0, i.observer = e, i.config = r, i } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/adts", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "aac", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0), r = (null == e ? void 0 : e.length) || 0; if (Xi(t, r)) return !1; for (var i = t.length; r < i; r++)if (Mi(t, r)) return w.log("ADTS sync word found !"), !0; return !1 }, r.canParse = function (t, e) { return function (t, e) { return function (t, e) { return e + 5 < t.length }(t, e) && _i(t, e) && Pi(t, e) <= t.length - e }(t, e) }, r.appendFrame = function (t, e, r) { Oi(t, this.observer, e, r, t.manifestCodec); var i = Ui(t, e, r, this.basePTS, this.frameIndex); if (i && 0 === i.missing) return i }, e }(wi), Qi = /\/emsg[-/]ID3/i, Ji = function () { function t(t, e) { this.remainderData = null, this.timeOffset = 0, this.config = void 0, this.videoTrack = void 0, this.audioTrack = void 0, this.id3Track = void 0, this.txtTrack = void 0, this.config = e } var e = t.prototype; return e.resetTimeStamp = function () { }, e.resetInitSegment = function (t, e, r, i) { var n = this.videoTrack = Ii("video", 1), a = this.audioTrack = Ii("audio", 1), s = this.txtTrack = Ii("text", 1); if (this.id3Track = Ii("id3", 1), this.timeOffset = 0, null != t && t.byteLength) { var o = Ft(t); if (o.video) { var l = o.video, u = l.id, h = l.timescale, d = l.codec; n.id = u, n.timescale = s.timescale = h, n.codec = d } if (o.audio) { var c = o.audio, f = c.id, g = c.timescale, v = c.codec; a.id = f, a.timescale = g, a.codec = v } s.id = kt.text, n.sampleDuration = 0, n.duration = a.duration = i } }, e.resetContiguity = function () { this.remainderData = null }, t.probe = function (t) { return function (t) { for (var e = t.byteLength, r = 0; r < e;) { var i = It(t, r); if (i > 8 && 109 === t[r + 4] && 111 === t[r + 5] && 111 === t[r + 6] && 102 === t[r + 7]) return !0; r = i > 1 ? r + i : e } return !1 }(t) }, e.demux = function (t, e) { this.timeOffset = e; var r = t, i = this.videoTrack, n = this.txtTrack; if (this.config.progressive) { this.remainderData && (r = Kt(this.remainderData, t)); var a = function (t) { var e = { valid: null, remainder: null }, r = xt(t, ["moof"]); if (r.length < 2) return e.remainder = t, e; var i = r[r.length - 1]; return e.valid = nt(t, 0, i.byteOffset - 8), e.remainder = nt(t, i.byteOffset - 8), e }(r); this.remainderData = a.remainder, i.samples = a.valid || new Uint8Array } else i.samples = r; var s = this.extractID3Track(i, e); return n.samples = Ht(e, i), { videoTrack: i, audioTrack: this.audioTrack, id3Track: s, textTrack: this.txtTrack } }, e.flush = function () { var t = this.timeOffset, e = this.videoTrack, r = this.txtTrack; e.samples = this.remainderData || new Uint8Array, this.remainderData = null; var i = this.extractID3Track(e, this.timeOffset); return r.samples = Ht(t, e), { videoTrack: e, audioTrack: Ii(), id3Track: i, textTrack: Ii() } }, e.extractID3Track = function (t, e) { var r = this.id3Track; if (t.samples.length) { var i = xt(t.samples, ["emsg"]); i && i.forEach((function (t) { var i = function (t) { var e = t[0], r = "", i = "", n = 0, a = 0, s = 0, o = 0, l = 0, u = 0; if (0 === e) { for (; "\0" !== bt(t.subarray(u, u + 1));)r += bt(t.subarray(u, u + 1)), u += 1; for (r += bt(t.subarray(u, u + 1)), u += 1; "\0" !== bt(t.subarray(u, u + 1));)i += bt(t.subarray(u, u + 1)), u += 1; i += bt(t.subarray(u, u + 1)), u += 1, n = It(t, 12), a = It(t, 16), o = It(t, 20), l = It(t, 24), u = 28 } else if (1 === e) { n = It(t, u += 4); var h = It(t, u += 4), d = It(t, u += 4); for (u += 4, s = Math.pow(2, 32) * h + d, E(s) || (s = Number.MAX_SAFE_INTEGER, w.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")), o = It(t, u), l = It(t, u += 4), u += 4; "\0" !== bt(t.subarray(u, u + 1));)r += bt(t.subarray(u, u + 1)), u += 1; for (r += bt(t.subarray(u, u + 1)), u += 1; "\0" !== bt(t.subarray(u, u + 1));)i += bt(t.subarray(u, u + 1)), u += 1; i += bt(t.subarray(u, u + 1)), u += 1 } return { schemeIdUri: r, value: i, timeScale: n, presentationTime: s, presentationTimeDelta: a, eventDuration: o, id: l, payload: t.subarray(u, t.byteLength) } }(t); if (Qi.test(i.schemeIdUri)) { var n = y(i.presentationTime) ? i.presentationTime / i.timeScale : e + i.presentationTimeDelta / i.timeScale, a = 4294967295 === i.eventDuration ? Number.POSITIVE_INFINITY : i.eventDuration / i.timeScale; a <= .001 && (a = Number.POSITIVE_INFINITY); var s = i.payload; r.samples.push({ data: s, len: s.byteLength, dts: n, pts: n, type: He, duration: a }) } })) } return r }, e.demuxSampleAes = function (t, e, r) { return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption")) }, e.destroy = function () { }, t }(), $i = function (t, e) { var r = 0, i = 5; e += i; for (var n = new Uint32Array(1), a = new Uint32Array(1), s = new Uint8Array(1); i > 0;) { s[0] = t[e]; var o = Math.min(i, 8), l = 8 - o; a[0] = 4278190080 >>> 24 + l << l, n[0] = (s[0] & a[0]) >> l, r = r ? r << o | n[0] : n[0], e += 1, i -= o } return r }, Zi = function (t) { function e(e) { var r; return (r = t.call(this) || this).observer = void 0, r.observer = e, r } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/ac-3", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "ac3", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, r.canParse = function (t, e) { return e + 64 < t.length }, r.appendFrame = function (t, e, r) { var i = tn(t, e, r, this.basePTS, this.frameIndex); if (-1 !== i) return { sample: t.samples[t.samples.length - 1], length: i, missing: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0); if (!e) return !1; var r = e.length; return 11 === t[r] && 119 === t[r + 1] && void 0 !== dt(e) && $i(t, r) < 16 }, e }(wi); function tn(t, e, r, i, n) { if (r + 8 > e.length) return -1; if (11 !== e[r] || 119 !== e[r + 1]) return -1; var a = e[r + 4] >> 6; if (a >= 3) return -1; var s = [48e3, 44100, 32e3][a], o = 63 & e[r + 4], l = 2 * [64, 69, 96, 64, 70, 96, 80, 87, 120, 80, 88, 120, 96, 104, 144, 96, 105, 144, 112, 121, 168, 112, 122, 168, 128, 139, 192, 128, 140, 192, 160, 174, 240, 160, 175, 240, 192, 208, 288, 192, 209, 288, 224, 243, 336, 224, 244, 336, 256, 278, 384, 256, 279, 384, 320, 348, 480, 320, 349, 480, 384, 417, 576, 384, 418, 576, 448, 487, 672, 448, 488, 672, 512, 557, 768, 512, 558, 768, 640, 696, 960, 640, 697, 960, 768, 835, 1152, 768, 836, 1152, 896, 975, 1344, 896, 976, 1344, 1024, 1114, 1536, 1024, 1115, 1536, 1152, 1253, 1728, 1152, 1254, 1728, 1280, 1393, 1920, 1280, 1394, 1920][3 * o + a]; if (r + l > e.length) return -1; var u = e[r + 6] >> 5, h = 0; 2 === u ? h += 2 : (1 & u && 1 !== u && (h += 2), 4 & u && (h += 2)); var d = (e[r + 6] << 8 | e[r + 7]) >> 12 - h & 1, c = [2, 1, 2, 3, 3, 4, 4, 5][u] + d, f = e[r + 5] >> 3, g = 7 & e[r + 5], v = new Uint8Array([a << 6 | f << 1 | g >> 2, (3 & g) << 6 | u << 3 | d << 2 | o >> 4, o << 4 & 224]), m = i + n * (1536 / s * 9e4), p = e.subarray(r, r + l); return t.config = v, t.channelCount = c, t.samplerate = s, t.samples.push({ unit: p, pts: m }), l } var en = function () { function t() { this.VideoSample = null } var e = t.prototype; return e.createVideoSample = function (t, e, r, i) { return { key: t, frame: !1, pts: e, dts: r, units: [], debug: i, length: 0 } }, e.getLastNalUnit = function (t) { var e, r, i = this.VideoSample; if (i && 0 !== i.units.length || (i = t[t.length - 1]), null != (e = i) && e.units) { var n = i.units; r = n[n.length - 1] } return r }, e.pushAccessUnit = function (t, e) { if (t.units.length && t.frame) { if (void 0 === t.pts) { var r = e.samples, i = r.length; if (!i) return void e.dropped++; var n = r[i - 1]; t.pts = n.pts, t.dts = n.dts } e.samples.push(t) } t.debug.length && w.log(t.pts + "/" + t.dts + ":" + t.debug) }, t }(), rn = function () { function t(t) { this.data = void 0, this.bytesAvailable = void 0, this.word = void 0, this.bitsAvailable = void 0, this.data = t, this.bytesAvailable = t.byteLength, this.word = 0, this.bitsAvailable = 0 } var e = t.prototype; return e.loadWord = function () { var t = this.data, e = this.bytesAvailable, r = t.byteLength - e, i = new Uint8Array(4), n = Math.min(4, e); if (0 === n) throw new Error("no bytes available"); i.set(t.subarray(r, r + n)), this.word = new DataView(i.buffer).getUint32(0), this.bitsAvailable = 8 * n, this.bytesAvailable -= n }, e.skipBits = function (t) { var e; t = Math.min(t, 8 * this.bytesAvailable + this.bitsAvailable), this.bitsAvailable > t ? (this.word <<= t, this.bitsAvailable -= t) : (t -= this.bitsAvailable, t -= (e = t >> 3) << 3, this.bytesAvailable -= e, this.loadWord(), this.word <<= t, this.bitsAvailable -= t) }, e.readBits = function (t) { var e = Math.min(this.bitsAvailable, t), r = this.word >>> 32 - e; if (t > 32 && w.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= e, this.bitsAvailable > 0) this.word <<= e; else { if (!(this.bytesAvailable > 0)) throw new Error("no bits available"); this.loadWord() } return (e = t - e) > 0 && this.bitsAvailable ? r << e | this.readBits(e) : r }, e.skipLZ = function () { var t; for (t = 0; t < this.bitsAvailable; ++t)if (0 != (this.word & 2147483648 >>> t)) return this.word <<= t, this.bitsAvailable -= t, t; return this.loadWord(), t + this.skipLZ() }, e.skipUEG = function () { this.skipBits(1 + this.skipLZ()) }, e.skipEG = function () { this.skipBits(1 + this.skipLZ()) }, e.readUEG = function () { var t = this.skipLZ(); return this.readBits(t + 1) - 1 }, e.readEG = function () { var t = this.readUEG(); return 1 & t ? 1 + t >>> 1 : -1 * (t >>> 1) }, e.readBoolean = function () { return 1 === this.readBits(1) }, e.readUByte = function () { return this.readBits(8) }, e.readUShort = function () { return this.readBits(16) }, e.readUInt = function () { return this.readBits(32) }, e.skipScalingList = function (t) { for (var e = 8, r = 8, i = 0; i < t; i++)0 !== r && (r = (e + this.readEG() + 256) % 256), e = 0 === r ? e : r }, e.readSPS = function () { var t, e, r, i = 0, n = 0, a = 0, s = 0, o = this.readUByte.bind(this), l = this.readBits.bind(this), u = this.readUEG.bind(this), h = this.readBoolean.bind(this), d = this.skipBits.bind(this), c = this.skipEG.bind(this), f = this.skipUEG.bind(this), g = this.skipScalingList.bind(this); o(); var v = o(); if (l(5), d(3), o(), f(), 100 === v || 110 === v || 122 === v || 244 === v || 44 === v || 83 === v || 86 === v || 118 === v || 128 === v) { var m = u(); if (3 === m && d(1), f(), f(), d(1), h()) for (e = 3 !== m ? 8 : 12, r = 0; r < e; r++)h() && g(r < 6 ? 16 : 64) } f(); var p = u(); if (0 === p) u(); else if (1 === p) for (d(1), c(), c(), t = u(), r = 0; r < t; r++)c(); f(), d(1); var y = u(), E = u(), T = l(1); 0 === T && d(1), d(1), h() && (i = u(), n = u(), a = u(), s = u()); var S = [1, 1]; if (h() && h()) switch (o()) { case 1: S = [1, 1]; break; case 2: S = [12, 11]; break; case 3: S = [10, 11]; break; case 4: S = [16, 11]; break; case 5: S = [40, 33]; break; case 6: S = [24, 11]; break; case 7: S = [20, 11]; break; case 8: S = [32, 11]; break; case 9: S = [80, 33]; break; case 10: S = [18, 11]; break; case 11: S = [15, 11]; break; case 12: S = [64, 33]; break; case 13: S = [160, 99]; break; case 14: S = [4, 3]; break; case 15: S = [3, 2]; break; case 16: S = [2, 1]; break; case 255: S = [o() << 8 | o(), o() << 8 | o()] }return { width: Math.ceil(16 * (y + 1) - 2 * i - 2 * n), height: (2 - T) * (E + 1) * 16 - (T ? 2 : 4) * (a + s), pixelRatio: S } }, e.readSliceType = function () { return this.readUByte(), this.readUEG(), this.readUEG() }, t }(), nn = function (t) { function e() { return t.apply(this, arguments) || this } l(e, t); var r = e.prototype; return r.parseAVCPES = function (t, e, r, i, n) { var a, s = this, o = this.parseAVCNALu(t, r.data), l = this.VideoSample, u = !1; r.data = null, l && o.length && !t.audFound && (this.pushAccessUnit(l, t), l = this.VideoSample = this.createVideoSample(!1, r.pts, r.dts, "")), o.forEach((function (i) { var o; switch (i.type) { case 1: var h = !1; a = !0; var d, c = i.data; if (u && c.length > 4) { var f = new rn(c).readSliceType(); 2 !== f && 4 !== f && 7 !== f && 9 !== f || (h = !0) } h && null != (d = l) && d.frame && !l.key && (s.pushAccessUnit(l, t), l = s.VideoSample = null), l || (l = s.VideoSample = s.createVideoSample(!0, r.pts, r.dts, "")), l.frame = !0, l.key = h; break; case 5: a = !0, null != (o = l) && o.frame && !l.key && (s.pushAccessUnit(l, t), l = s.VideoSample = null), l || (l = s.VideoSample = s.createVideoSample(!0, r.pts, r.dts, "")), l.key = !0, l.frame = !0; break; case 6: a = !0, Yt(i.data, 1, r.pts, e.samples); break; case 7: var g, v; a = !0, u = !0; var m = i.data, p = new rn(m).readSPS(); if (!t.sps || t.width !== p.width || t.height !== p.height || (null == (g = t.pixelRatio) ? void 0 : g[0]) !== p.pixelRatio[0] || (null == (v = t.pixelRatio) ? void 0 : v[1]) !== p.pixelRatio[1]) { t.width = p.width, t.height = p.height, t.pixelRatio = p.pixelRatio, t.sps = [m], t.duration = n; for (var y = m.subarray(1, 4), E = "avc1.", T = 0; T < 3; T++) { var S = y[T].toString(16); S.length < 2 && (S = "0" + S), E += S } t.codec = E } break; case 8: a = !0, t.pps = [i.data]; break; case 9: a = !0, t.audFound = !0, l && s.pushAccessUnit(l, t), l = s.VideoSample = s.createVideoSample(!1, r.pts, r.dts, ""); break; case 12: a = !0; break; default: a = !1, l && (l.debug += "unknown NAL " + i.type + " ") }l && a && l.units.push(i) })), i && l && (this.pushAccessUnit(l, t), this.VideoSample = null) }, r.parseAVCNALu = function (t, e) { var r, i, n = e.byteLength, a = t.naluState || 0, s = a, o = [], l = 0, u = -1, h = 0; for (-1 === a && (u = 0, h = 31 & e[0], a = 0, l = 1); l < n;)if (r = e[l++], a) if (1 !== a) if (r) if (1 === r) { if (i = l - a - 1, u >= 0) { var d = { data: e.subarray(u, i), type: h }; o.push(d) } else { var c = this.getLastNalUnit(t.samples); c && (s && l <= 4 - s && c.state && (c.data = c.data.subarray(0, c.data.byteLength - s)), i > 0 && (c.data = Kt(c.data, e.subarray(0, i)), c.state = 0)) } l < n ? (u = l, h = 31 & e[l], a = 0) : a = -1 } else a = 0; else a = 3; else a = r ? 0 : 2; else a = r ? 0 : 1; if (u >= 0 && a >= 0) { var f = { data: e.subarray(u, n), type: h, state: a }; o.push(f) } if (0 === o.length) { var g = this.getLastNalUnit(t.samples); g && (g.data = Kt(g.data, e)) } return t.naluState = a, o }, e }(en), an = function () { function t(t, e, r) { this.keyData = void 0, this.decrypter = void 0, this.keyData = r, this.decrypter = new ci(e, { removePKCS7Padding: !1 }) } var e = t.prototype; return e.decryptBuffer = function (t) { return this.decrypter.decrypt(t, this.keyData.key.buffer, this.keyData.iv.buffer) }, e.decryptAacSample = function (t, e, r) { var i = this, n = t[e].unit; if (!(n.length <= 16)) { var a = n.subarray(16, n.length - n.length % 16), s = a.buffer.slice(a.byteOffset, a.byteOffset + a.length); this.decryptBuffer(s).then((function (a) { var s = new Uint8Array(a); n.set(s, 16), i.decrypter.isSync() || i.decryptAacSamples(t, e + 1, r) })) } }, e.decryptAacSamples = function (t, e, r) { for (; ; e++) { if (e >= t.length) return void r(); if (!(t[e].unit.length < 32 || (this.decryptAacSample(t, e, r), this.decrypter.isSync()))) return } }, e.getAvcEncryptedData = function (t) { for (var e = 16 * Math.floor((t.length - 48) / 160) + 16, r = new Int8Array(e), i = 0, n = 32; n < t.length - 16; n += 160, i += 16)r.set(t.subarray(n, n + 16), i); return r }, e.getAvcDecryptedUnit = function (t, e) { for (var r = new Uint8Array(e), i = 0, n = 32; n < t.length - 16; n += 160, i += 16)t.set(r.subarray(i, i + 16), n); return t }, e.decryptAvcSample = function (t, e, r, i, n) { var a = this, s = Wt(n.data), o = this.getAvcEncryptedData(s); this.decryptBuffer(o.buffer).then((function (o) { n.data = a.getAvcDecryptedUnit(s, o), a.decrypter.isSync() || a.decryptAvcSamples(t, e, r + 1, i) })) }, e.decryptAvcSamples = function (t, e, r, i) { if (t instanceof Uint8Array) throw new Error("Cannot decrypt samples of type Uint8Array"); for (; ; e++, r = 0) { if (e >= t.length) return void i(); for (var n = t[e].units; !(r >= n.length); r++) { var a = n[r]; if (!(a.data.length <= 48 || 1 !== a.type && 5 !== a.type || (this.decryptAvcSample(t, e, r, i, a), this.decrypter.isSync()))) return } } }, t }(), sn = 188, on = function () { function t(t, e, r) { this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.sampleAes = null, this.pmtParsed = !1, this.audioCodec = void 0, this.videoCodec = void 0, this._duration = 0, this._pmtId = -1, this._videoTrack = void 0, this._audioTrack = void 0, this._id3Track = void 0, this._txtTrack = void 0, this.aacOverFlow = null, this.remainderData = null, this.videoParser = void 0, this.observer = t, this.config = e, this.typeSupported = r, this.videoParser = new nn } t.probe = function (e) { var r = t.syncOffset(e); return r > 0 && w.warn("MPEG2-TS detected but first sync word found @ offset " + r), -1 !== r }, t.syncOffset = function (t) { for (var e = t.length, r = Math.min(940, e - sn) + 1, i = 0; i < r;) { for (var n = !1, a = -1, s = 0, o = i; o < e; o += sn) { if (71 !== t[o] || e - o !== sn && 71 !== t[o + sn]) { if (s) return -1; break } if (s++, -1 === a && 0 !== (a = o) && (r = Math.min(a + 18612, t.length - sn) + 1), n || (n = 0 === ln(t, o)), n && s > 1 && (0 === a && s > 2 || o + sn > r)) return a } i++ } return -1 }, t.createTrack = function (t, e) { return { container: "video" === t || "audio" === t ? "video/mp2t" : void 0, type: t, id: kt[t], pid: -1, inputTimeScale: 9e4, sequenceNumber: 0, samples: [], dropped: 0, duration: "audio" === t ? e : void 0 } }; var e = t.prototype; return e.resetInitSegment = function (e, r, i, n) { this.pmtParsed = !1, this._pmtId = -1, this._videoTrack = t.createTrack("video"), this._audioTrack = t.createTrack("audio", n), this._id3Track = t.createTrack("id3"), this._txtTrack = t.createTrack("text"), this._audioTrack.segmentCodec = "aac", this.aacOverFlow = null, this.remainderData = null, this.audioCodec = r, this.videoCodec = i, this._duration = n }, e.resetTimeStamp = function () { }, e.resetContiguity = function () { var t = this._audioTrack, e = this._videoTrack, r = this._id3Track; t && (t.pesData = null), e && (e.pesData = null), r && (r.pesData = null), this.aacOverFlow = null, this.remainderData = null }, e.demux = function (e, r, i, n) { var a; void 0 === i && (i = !1), void 0 === n && (n = !1), i || (this.sampleAes = null); var s = this._videoTrack, o = this._audioTrack, l = this._id3Track, u = this._txtTrack, h = s.pid, d = s.pesData, c = o.pid, f = l.pid, g = o.pesData, v = l.pesData, m = null, p = this.pmtParsed, y = this._pmtId, E = e.length; if (this.remainderData && (E = (e = Kt(this.remainderData, e)).length, this.remainderData = null), E < sn && !n) return this.remainderData = e, { audioTrack: o, videoTrack: s, id3Track: l, textTrack: u }; var T = Math.max(0, t.syncOffset(e)); (E -= (E - T) % sn) < e.byteLength && !n && (this.remainderData = new Uint8Array(e.buffer, E, e.buffer.byteLength - E)); for (var R = 0, k = T; k < E; k += sn)if (71 === e[k]) { var b = !!(64 & e[k + 1]), D = ln(e, k), I = void 0; if ((48 & e[k + 3]) >> 4 > 1) { if ((I = k + 5 + e[k + 4]) === k + sn) continue } else I = k + 4; switch (D) { case h: b && (d && (a = cn(d)) && this.videoParser.parseAVCPES(s, u, a, !1, this._duration), d = { data: [], size: 0 }), d && (d.data.push(e.subarray(I, k + sn)), d.size += k + sn - I); break; case c: if (b) { if (g && (a = cn(g))) switch (o.segmentCodec) { case "aac": this.parseAACPES(o, a); break; case "mp3": this.parseMPEGPES(o, a); break; case "ac3": this.parseAC3PES(o, a) }g = { data: [], size: 0 } } g && (g.data.push(e.subarray(I, k + sn)), g.size += k + sn - I); break; case f: b && (v && (a = cn(v)) && this.parseID3PES(l, a), v = { data: [], size: 0 }), v && (v.data.push(e.subarray(I, k + sn)), v.size += k + sn - I); break; case 0: b && (I += e[I] + 1), y = this._pmtId = un(e, I); break; case y: b && (I += e[I] + 1); var C = hn(e, I, this.typeSupported, i); (h = C.videoPid) > 0 && (s.pid = h, s.segmentCodec = C.segmentVideoCodec), (c = C.audioPid) > 0 && (o.pid = c, o.segmentCodec = C.segmentAudioCodec), (f = C.id3Pid) > 0 && (l.pid = f), null === m || p || (w.warn("MPEG-TS PMT found at " + k + " after unknown PID '" + m + "'. Backtracking to sync byte @" + T + " to parse all TS packets."), m = null, k = T - 188), p = this.pmtParsed = !0; break; case 17: case 8191: break; default: m = D } } else R++; if (R > 0) { var _ = new Error("Found " + R + " TS packet/s that do not start with 0x47"); this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: _, reason: _.message }) } s.pesData = d, o.pesData = g, l.pesData = v; var x = { audioTrack: o, videoTrack: s, id3Track: l, textTrack: u }; return n && this.extractRemainingSamples(x), x }, e.flush = function () { var t, e = this.remainderData; return this.remainderData = null, t = e ? this.demux(e, -1, !1, !0) : { videoTrack: this._videoTrack, audioTrack: this._audioTrack, id3Track: this._id3Track, textTrack: this._txtTrack }, this.extractRemainingSamples(t), this.sampleAes ? this.decrypt(t, this.sampleAes) : t }, e.extractRemainingSamples = function (t) { var e, r = t.audioTrack, i = t.videoTrack, n = t.id3Track, a = t.textTrack, s = i.pesData, o = r.pesData, l = n.pesData; if (s && (e = cn(s)) ? (this.videoParser.parseAVCPES(i, a, e, !0, this._duration), i.pesData = null) : i.pesData = s, o && (e = cn(o))) { switch (r.segmentCodec) { case "aac": this.parseAACPES(r, e); break; case "mp3": this.parseMPEGPES(r, e); break; case "ac3": this.parseAC3PES(r, e) }r.pesData = null } else null != o && o.size && w.log("last AAC PES packet truncated,might overlap between fragments"), r.pesData = o; l && (e = cn(l)) ? (this.parseID3PES(n, e), n.pesData = null) : n.pesData = l }, e.demuxSampleAes = function (t, e, r) { var i = this.demux(t, r, !0, !this.config.progressive), n = this.sampleAes = new an(this.observer, this.config, e); return this.decrypt(i, n) }, e.decrypt = function (t, e) { return new Promise((function (r) { var i = t.audioTrack, n = t.videoTrack; i.samples && "aac" === i.segmentCodec ? e.decryptAacSamples(i.samples, 0, (function () { n.samples ? e.decryptAvcSamples(n.samples, 0, 0, (function () { r(t) })) : r(t) })) : n.samples && e.decryptAvcSamples(n.samples, 0, 0, (function () { r(t) })) })) }, e.destroy = function () { this._duration = 0 }, e.parseAACPES = function (t, e) { var r, i, n, a = 0, s = this.aacOverFlow, o = e.data; if (s) { this.aacOverFlow = null; var l = s.missing, u = s.sample.unit.byteLength; if (-1 === l) o = Kt(s.sample.unit, o); else { var h = u - l; s.sample.unit.set(o.subarray(0, l), h), t.samples.push(s.sample), a = s.missing } } for (r = a, i = o.length; r < i - 1 && !Fi(o, r); r++); if (r !== a) { var d, c = r < i - 1; d = c ? "AAC PES did not start with ADTS header,offset:" + r : "No ADTS header found in AAC PES"; var f = new Error(d); if (w.warn("parsing error: " + d), this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, levelRetry: c, error: f, reason: d }), !c) return } if (Oi(t, this.observer, o, r, this.audioCodec), void 0 !== e.pts) n = e.pts; else { if (!s) return void w.warn("[tsdemuxer]: AAC PES unknown PTS"); var g = Ni(t.samplerate); n = s.sample.pts + g } for (var v, m = 0; r < i;) { if (r += (v = Ui(t, o, r, n, m)).length, v.missing) { this.aacOverFlow = v; break } for (m++; r < i - 1 && !Fi(o, r); r++); } }, e.parseMPEGPES = function (t, e) { var r = e.data, i = r.length, n = 0, a = 0, s = e.pts; if (void 0 !== s) for (; a < i;)if (qi(r, a)) { var o = Yi(t, r, a, s, n); if (!o) break; a += o.length, n++ } else a++; else w.warn("[tsdemuxer]: MPEG PES unknown PTS") }, e.parseAC3PES = function (t, e) { var r = e.data, i = e.pts; if (void 0 !== i) for (var n, a = r.length, s = 0, o = 0; o < a && (n = tn(t, r, o, i, s++)) > 0;)o += n; else w.warn("[tsdemuxer]: AC3 PES unknown PTS") }, e.parseID3PES = function (t, e) { if (void 0 !== e.pts) { var r = o({}, e, { type: this._videoTrack ? He : Ge, duration: Number.POSITIVE_INFINITY }); t.samples.push(r) } else w.warn("[tsdemuxer]: ID3 PES unknown PTS") }, t }(); function ln(t, e) { return ((31 & t[e + 1]) << 8) + t[e + 2] } function un(t, e) { return (31 & t[e + 10]) << 8 | t[e + 11] } function hn(t, e, r, i) { var n = { audioPid: -1, videoPid: -1, id3Pid: -1, segmentVideoCodec: "avc", segmentAudioCodec: "aac" }, a = e + 3 + ((15 & t[e + 1]) << 8 | t[e + 2]) - 4; for (e += 12 + ((15 & t[e + 10]) << 8 | t[e + 11]); e < a;) { var s = ln(t, e), o = (15 & t[e + 3]) << 8 | t[e + 4]; switch (t[e]) { case 207: if (!i) { dn("ADTS AAC"); break } case 15: -1 === n.audioPid && (n.audioPid = s); break; case 21: -1 === n.id3Pid && (n.id3Pid = s); break; case 219: if (!i) { dn("H.264"); break } case 27: -1 === n.videoPid && (n.videoPid = s, n.segmentVideoCodec = "avc"); break; case 3: case 4: r.mpeg || r.mp3 ? -1 === n.audioPid && (n.audioPid = s, n.segmentAudioCodec = "mp3") : w.log("MPEG audio found, not supported in this browser"); break; case 193: if (!i) { dn("AC-3"); break } case 129: r.ac3 ? -1 === n.audioPid && (n.audioPid = s, n.segmentAudioCodec = "ac3") : w.log("AC-3 audio found, not supported in this browser"); break; case 6: if (-1 === n.audioPid && o > 0) for (var l = e + 5, u = o; u > 2;) { 106 === t[l] && (!0 !== r.ac3 ? w.log("AC-3 audio found, not supported in this browser for now") : (n.audioPid = s, n.segmentAudioCodec = "ac3")); var h = t[l + 1] + 2; l += h, u -= h } break; case 194: case 135: w.warn("Unsupported EC-3 in M2TS found"); break; case 36: w.warn("Unsupported HEVC in M2TS found") }e += o + 5 } return n } function dn(t) { w.log(t + " with AES-128-CBC encryption found in unencrypted stream") } function cn(t) { var e, r, i, n, a, s = 0, o = t.data; if (!t || 0 === t.size) return null; for (; o[0].length < 19 && o.length > 1;)o[0] = Kt(o[0], o[1]), o.splice(1, 1); if (1 === ((e = o[0])[0] << 16) + (e[1] << 8) + e[2]) { if ((r = (e[4] << 8) + e[5]) && r > t.size - 6) return null; var l = e[7]; 192 & l && (n = 536870912 * (14 & e[9]) + 4194304 * (255 & e[10]) + 16384 * (254 & e[11]) + 128 * (255 & e[12]) + (254 & e[13]) / 2, 64 & l ? n - (a = 536870912 * (14 & e[14]) + 4194304 * (255 & e[15]) + 16384 * (254 & e[16]) + 128 * (255 & e[17]) + (254 & e[18]) / 2) > 54e5 && (w.warn(Math.round((n - a) / 9e4) + "s delta between PTS and DTS, align them"), n = a) : a = n); var u = (i = e[8]) + 9; if (t.size <= u) return null; t.size -= u; for (var h = new Uint8Array(t.size), d = 0, c = o.length; d < c; d++) { var f = (e = o[d]).byteLength; if (u) { if (u > f) { u -= f; continue } e = e.subarray(u), f -= u, u = 0 } h.set(e, s), s += f } return r && (r -= i + 3), { data: h, pts: n, dts: a, len: r } } return null } var fn = function (t) { function e() { return t.apply(this, arguments) || this } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/mpeg", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "mp3", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0), r = (null == e ? void 0 : e.length) || 0; if (e && 11 === t[r] && 119 === t[r + 1] && void 0 !== dt(e) && $i(t, r) <= 16) return !1; for (var i = t.length; r < i; r++)if (Xi(t, r)) return w.log("MPEG Audio sync word found !"), !0; return !1 }, r.canParse = function (t, e) { return function (t, e) { return ji(t, e) && 4 <= t.length - e }(t, e) }, r.appendFrame = function (t, e, r) { if (null !== this.basePTS) return Yi(t, e, r, this.basePTS, this.frameIndex) }, e }(wi), gn = function () { function t() { } return t.getSilentFrame = function (t, e) { if ("mp4a.40.2" === t) { if (1 === e) return new Uint8Array([0, 200, 0, 128, 35, 128]); if (2 === e) return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]); if (3 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]); if (4 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]); if (5 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]); if (6 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]) } else { if (1 === e) return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (2 === e) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (3 === e) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]) } }, t }(), vn = Math.pow(2, 32) - 1, mn = function () { function t() { } return t.init = function () { var e; for (e in t.types = { avc1: [], avcC: [], btrt: [], dinf: [], dref: [], esds: [], ftyp: [], hdlr: [], mdat: [], mdhd: [], mdia: [], mfhd: [], minf: [], moof: [], moov: [], mp4a: [], ".mp3": [], dac3: [], "ac-3": [], mvex: [], mvhd: [], pasp: [], sdtp: [], stbl: [], stco: [], stsc: [], stsd: [], stsz: [], stts: [], tfdt: [], tfhd: [], traf: [], trak: [], trun: [], trex: [], tkhd: [], vmhd: [], smhd: [] }, t.types) t.types.hasOwnProperty(e) && (t.types[e] = [e.charCodeAt(0), e.charCodeAt(1), e.charCodeAt(2), e.charCodeAt(3)]); var r = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), i = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]); t.HDLR_TYPES = { video: r, audio: i }; var n = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), a = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]); t.STTS = t.STSC = t.STCO = a, t.STSZ = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), t.VMHD = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]), t.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), t.STSD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]); var s = new Uint8Array([105, 115, 111, 109]), o = new Uint8Array([97, 118, 99, 49]), l = new Uint8Array([0, 0, 0, 1]); t.FTYP = t.box(t.types.ftyp, s, l, s, o), t.DINF = t.box(t.types.dinf, t.box(t.types.dref, n)) }, t.box = function (t) { for (var e = 8, r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++)i[n - 1] = arguments[n]; for (var a = i.length, s = a; a--;)e += i[a].byteLength; var o = new Uint8Array(e); for (o[0] = e >> 24 & 255, o[1] = e >> 16 & 255, o[2] = e >> 8 & 255, o[3] = 255 & e, o.set(t, 4), a = 0, e = 8; a < s; a++)o.set(i[a], e), e += i[a].byteLength; return o }, t.hdlr = function (e) { return t.box(t.types.hdlr, t.HDLR_TYPES[e]) }, t.mdat = function (e) { return t.box(t.types.mdat, e) }, t.mdhd = function (e, r) { r *= e; var i = Math.floor(r / (vn + 1)), n = Math.floor(r % (vn + 1)); return t.box(t.types.mdhd, new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, i >> 24, i >> 16 & 255, i >> 8 & 255, 255 & i, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n, 85, 196, 0, 0])) }, t.mdia = function (e) { return t.box(t.types.mdia, t.mdhd(e.timescale, e.duration), t.hdlr(e.type), t.minf(e)) }, t.mfhd = function (e) { return t.box(t.types.mfhd, new Uint8Array([0, 0, 0, 0, e >> 24, e >> 16 & 255, e >> 8 & 255, 255 & e])) }, t.minf = function (e) { return "audio" === e.type ? t.box(t.types.minf, t.box(t.types.smhd, t.SMHD), t.DINF, t.stbl(e)) : t.box(t.types.minf, t.box(t.types.vmhd, t.VMHD), t.DINF, t.stbl(e)) }, t.moof = function (e, r, i) { return t.box(t.types.moof, t.mfhd(e), t.traf(i, r)) }, t.moov = function (e) { for (var r = e.length, i = []; r--;)i[r] = t.trak(e[r]); return t.box.apply(null, [t.types.moov, t.mvhd(e[0].timescale, e[0].duration)].concat(i).concat(t.mvex(e))) }, t.mvex = function (e) { for (var r = e.length, i = []; r--;)i[r] = t.trex(e[r]); return t.box.apply(null, [t.types.mvex].concat(i)) }, t.mvhd = function (e, r) { r *= e; var i = Math.floor(r / (vn + 1)), n = Math.floor(r % (vn + 1)), a = new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, i >> 24, i >> 16 & 255, i >> 8 & 255, 255 & i, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255]); return t.box(t.types.mvhd, a) }, t.sdtp = function (e) { var r, i, n = e.samples || [], a = new Uint8Array(4 + n.length); for (r = 0; r < n.length; r++)i = n[r].flags, a[r + 4] = i.dependsOn << 4 | i.isDependedOn << 2 | i.hasRedundancy; return t.box(t.types.sdtp, a) }, t.stbl = function (e) { return t.box(t.types.stbl, t.stsd(e), t.box(t.types.stts, t.STTS), t.box(t.types.stsc, t.STSC), t.box(t.types.stsz, t.STSZ), t.box(t.types.stco, t.STCO)) }, t.avc1 = function (e) { var r, i, n, a = [], s = []; for (r = 0; r < e.sps.length; r++)n = (i = e.sps[r]).byteLength, a.push(n >>> 8 & 255), a.push(255 & n), a = a.concat(Array.prototype.slice.call(i)); for (r = 0; r < e.pps.length; r++)n = (i = e.pps[r]).byteLength, s.push(n >>> 8 & 255), s.push(255 & n), s = s.concat(Array.prototype.slice.call(i)); var o = t.box(t.types.avcC, new Uint8Array([1, a[3], a[4], a[5], 255, 224 | e.sps.length].concat(a).concat([e.pps.length]).concat(s))), l = e.width, u = e.height, h = e.pixelRatio[0], d = e.pixelRatio[1]; return t.box(t.types.avc1, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, l >> 8 & 255, 255 & l, u >> 8 & 255, 255 & u, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 18, 100, 97, 105, 108, 121, 109, 111, 116, 105, 111, 110, 47, 104, 108, 115, 46, 106, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), o, t.box(t.types.btrt, new Uint8Array([0, 28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192])), t.box(t.types.pasp, new Uint8Array([h >> 24, h >> 16 & 255, h >> 8 & 255, 255 & h, d >> 24, d >> 16 & 255, d >> 8 & 255, 255 & d]))) }, t.esds = function (t) { var e = t.config.length; return new Uint8Array([0, 0, 0, 0, 3, 23 + e, 0, 1, 0, 4, 15 + e, 64, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5].concat([e]).concat(t.config).concat([6, 1, 2])) }, t.audioStsd = function (t) { var e = t.samplerate; return new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, t.channelCount, 0, 16, 0, 0, 0, 0, e >> 8 & 255, 255 & e, 0, 0]) }, t.mp4a = function (e) { return t.box(t.types.mp4a, t.audioStsd(e), t.box(t.types.esds, t.esds(e))) }, t.mp3 = function (e) { return t.box(t.types[".mp3"], t.audioStsd(e)) }, t.ac3 = function (e) { return t.box(t.types["ac-3"], t.audioStsd(e), t.box(t.types.dac3, e.config)) }, t.stsd = function (e) { return "audio" === e.type ? "mp3" === e.segmentCodec && "mp3" === e.codec ? t.box(t.types.stsd, t.STSD, t.mp3(e)) : "ac3" === e.segmentCodec ? t.box(t.types.stsd, t.STSD, t.ac3(e)) : t.box(t.types.stsd, t.STSD, t.mp4a(e)) : t.box(t.types.stsd, t.STSD, t.avc1(e)) }, t.tkhd = function (e) { var r = e.id, i = e.duration * e.timescale, n = e.width, a = e.height, s = Math.floor(i / (vn + 1)), o = Math.floor(i % (vn + 1)); return t.box(t.types.tkhd, new Uint8Array([1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, 255 & r, 0, 0, 0, 0, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 & s, o >> 24, o >> 16 & 255, o >> 8 & 255, 255 & o, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, n >> 8 & 255, 255 & n, 0, 0, a >> 8 & 255, 255 & a, 0, 0])) }, t.traf = function (e, r) { var i = t.sdtp(e), n = e.id, a = Math.floor(r / (vn + 1)), s = Math.floor(r % (vn + 1)); return t.box(t.types.traf, t.box(t.types.tfhd, new Uint8Array([0, 0, 0, 0, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n])), t.box(t.types.tfdt, new Uint8Array([1, 0, 0, 0, a >> 24, a >> 16 & 255, a >> 8 & 255, 255 & a, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 & s])), t.trun(e, i.length + 16 + 20 + 8 + 16 + 8 + 8), i) }, t.trak = function (e) { return e.duration = e.duration || 4294967295, t.box(t.types.trak, t.tkhd(e), t.mdia(e)) }, t.trex = function (e) { var r = e.id; return t.box(t.types.trex, new Uint8Array([0, 0, 0, 0, r >> 24, r >> 16 & 255, r >> 8 & 255, 255 & r, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1])) }, t.trun = function (e, r) { var i, n, a, s, o, l, u = e.samples || [], h = u.length, d = 12 + 16 * h, c = new Uint8Array(d); for (r += 8 + d, c.set(["video" === e.type ? 1 : 0, 0, 15, 1, h >>> 24 & 255, h >>> 16 & 255, h >>> 8 & 255, 255 & h, r >>> 24 & 255, r >>> 16 & 255, r >>> 8 & 255, 255 & r], 0), i = 0; i < h; i++)a = (n = u[i]).duration, s = n.size, o = n.flags, l = n.cts, c.set([a >>> 24 & 255, a >>> 16 & 255, a >>> 8 & 255, 255 & a, s >>> 24 & 255, s >>> 16 & 255, s >>> 8 & 255, 255 & s, o.isLeading << 2 | o.dependsOn, o.isDependedOn << 6 | o.hasRedundancy << 4 | o.paddingValue << 1 | o.isNonSync, 61440 & o.degradPrio, 15 & o.degradPrio, l >>> 24 & 255, l >>> 16 & 255, l >>> 8 & 255, 255 & l], 12 + 16 * i); return t.box(t.types.trun, c) }, t.initSegment = function (e) { t.types || t.init(); var r = t.moov(e); return Kt(t.FTYP, r) }, t }(); mn.types = void 0, mn.HDLR_TYPES = void 0, mn.STTS = void 0, mn.STSC = void 0, mn.STCO = void 0, mn.STSZ = void 0, mn.VMHD = void 0, mn.SMHD = void 0, mn.STSD = void 0, mn.FTYP = void 0, mn.DINF = void 0; var pn = 9e4; function yn(t, e, r, i) { void 0 === r && (r = 1), void 0 === i && (i = !1); var n = t * e * r; return i ? Math.round(n) : n } function En(t, e) { return void 0 === e && (e = !1), yn(t, 1e3, 1 / pn, e) } var Tn = null, Sn = null, Ln = function () { function t(t, e, r, i) { if (this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.ISGenerated = !1, this._initPTS = null, this._initDTS = null, this.nextAvcDts = null, this.nextAudioPts = null, this.videoSampleDuration = null, this.isAudioContiguous = !1, this.isVideoContiguous = !1, this.videoTrackConfig = void 0, this.observer = t, this.config = e, this.typeSupported = r, this.ISGenerated = !1, null === Tn) { var n = (navigator.userAgent || "").match(/Chrome\/(\d+)/i); Tn = n ? parseInt(n[1]) : 0 } if (null === Sn) { var a = navigator.userAgent.match(/Safari\/(\d+)/i); Sn = a ? parseInt(a[1]) : 0 } } var e = t.prototype; return e.destroy = function () { this.config = this.videoTrackConfig = this._initPTS = this._initDTS = null }, e.resetTimeStamp = function (t) { w.log("[mp4-remuxer]: initPTS & initDTS reset"), this._initPTS = this._initDTS = t }, e.resetNextTimestamp = function () { w.log("[mp4-remuxer]: reset next timestamp"), this.isVideoContiguous = !1, this.isAudioContiguous = !1 }, e.resetInitSegment = function () { w.log("[mp4-remuxer]: ISGenerated flag reset"), this.ISGenerated = !1, this.videoTrackConfig = void 0 }, e.getVideoStartPts = function (t) { var e = !1, r = t.reduce((function (t, r) { var i = r.pts - t; return i < -4294967296 ? (e = !0, An(t, r.pts)) : i > 0 ? t : r.pts }), t[0].pts); return e && w.debug("PTS rollover detected"), r }, e.remux = function (t, e, r, i, n, a, s, o) { var l, u, h, d, c, f, g = n, v = n, m = t.pid > -1, p = e.pid > -1, y = e.samples.length, E = t.samples.length > 0, T = s && y > 0 || y > 1; if ((!m || E) && (!p || T) || this.ISGenerated || s) { if (this.ISGenerated) { var S, L, A, R, k = this.videoTrackConfig; !k || e.width === k.width && e.height === k.height && (null == (S = e.pixelRatio) ? void 0 : S[0]) === (null == (L = k.pixelRatio) ? void 0 : L[0]) && (null == (A = e.pixelRatio) ? void 0 : A[1]) === (null == (R = k.pixelRatio) ? void 0 : R[1]) || this.resetInitSegment() } else h = this.generateIS(t, e, n, a); var b, D = this.isVideoContiguous, I = -1; if (T && (I = function (t) { for (var e = 0; e < t.length; e++)if (t[e].key) return e; return -1 }(e.samples), !D && this.config.forceKeyFrameOnDiscontinuity)) if (f = !0, I > 0) { w.warn("[mp4-remuxer]: Dropped " + I + " out of " + y + " video samples due to a missing keyframe"); var C = this.getVideoStartPts(e.samples); e.samples = e.samples.slice(I), e.dropped += I, b = v += (e.samples[0].pts - C) / e.inputTimeScale } else -1 === I && (w.warn("[mp4-remuxer]: No keyframe found out of " + y + " video samples"), f = !1); if (this.ISGenerated) { if (E && T) { var _ = this.getVideoStartPts(e.samples), x = (An(t.samples[0].pts, _) - _) / e.inputTimeScale; g += Math.max(0, x), v += Math.max(0, -x) } if (E) { if (t.samplerate || (w.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"), h = this.generateIS(t, e, n, a)), u = this.remuxAudio(t, g, this.isAudioContiguous, a, p || T || o === Ce ? v : void 0), T) { var P = u ? u.endPTS - u.startPTS : 0; e.inputTimeScale || (w.warn("[mp4-remuxer]: regenerate InitSegment as video detected"), h = this.generateIS(t, e, n, a)), l = this.remuxVideo(e, v, D, P) } } else T && (l = this.remuxVideo(e, v, D, 0)); l && (l.firstKeyFrame = I, l.independent = -1 !== I, l.firstKeyFramePTS = b) } } return this.ISGenerated && this._initPTS && this._initDTS && (r.samples.length && (c = Rn(r, n, this._initPTS, this._initDTS)), i.samples.length && (d = kn(i, n, this._initPTS))), { audio: u, video: l, initSegment: h, independent: f, text: d, id3: c } }, e.generateIS = function (t, e, r, i) { var n, a, s, o = t.samples, l = e.samples, u = this.typeSupported, h = {}, d = this._initPTS, c = !d || i, f = "audio/mp4"; if (c && (n = a = 1 / 0), t.config && o.length) { switch (t.timescale = t.samplerate, t.segmentCodec) { case "mp3": u.mpeg ? (f = "audio/mpeg", t.codec = "") : u.mp3 && (t.codec = "mp3"); break; case "ac3": t.codec = "ac-3" }h.audio = { id: "audio", container: f, codec: t.codec, initSegment: "mp3" === t.segmentCodec && u.mpeg ? new Uint8Array(0) : mn.initSegment([t]), metadata: { channelCount: t.channelCount } }, c && (s = t.inputTimeScale, d && s === d.timescale ? c = !1 : n = a = o[0].pts - Math.round(s * r)) } if (e.sps && e.pps && l.length) { if (e.timescale = e.inputTimeScale, h.video = { id: "main", container: "video/mp4", codec: e.codec, initSegment: mn.initSegment([e]), metadata: { width: e.width, height: e.height } }, c) if (s = e.inputTimeScale, d && s === d.timescale) c = !1; else { var g = this.getVideoStartPts(l), v = Math.round(s * r); a = Math.min(a, An(l[0].dts, g) - v), n = Math.min(n, g - v) } this.videoTrackConfig = { width: e.width, height: e.height, pixelRatio: e.pixelRatio } } if (Object.keys(h).length) return this.ISGenerated = !0, c ? (this._initPTS = { baseTime: n, timescale: s }, this._initDTS = { baseTime: a, timescale: s }) : n = s = void 0, { tracks: h, initPTS: n, timescale: s } }, e.remuxVideo = function (t, e, r, i) { var n, a, s = t.inputTimeScale, l = t.samples, u = [], h = l.length, d = this._initPTS, c = this.nextAvcDts, f = 8, g = this.videoSampleDuration, v = Number.POSITIVE_INFINITY, m = Number.NEGATIVE_INFINITY, p = !1; if (!r || null === c) { var y = e * s, E = l[0].pts - An(l[0].dts, l[0].pts); Tn && null !== c && Math.abs(y - E - c) < 15e3 ? r = !0 : c = y - E } for (var T = d.baseTime * s / d.timescale, R = 0; R < h; R++) { var k = l[R]; k.pts = An(k.pts - T, c), k.dts = An(k.dts - T, c), k.dts < l[R > 0 ? R - 1 : R].dts && (p = !0) } p && l.sort((function (t, e) { var r = t.dts - e.dts, i = t.pts - e.pts; return r || i })), n = l[0].dts; var b = (a = l[l.length - 1].dts) - n, D = b ? Math.round(b / (h - 1)) : g || t.inputTimeScale / 30; if (r) { var I = n - c, C = I > D, _ = I < -1; if ((C || _) && (C ? w.warn("AVC: " + En(I, !0) + " ms (" + I + "dts) hole between fragments detected at " + e.toFixed(3)) : w.warn("AVC: " + En(-I, !0) + " ms (" + I + "dts) overlapping between fragments detected at " + e.toFixed(3)), !_ || c >= l[0].pts || Tn)) { n = c; var x = l[0].pts - I; if (C) l[0].dts = n, l[0].pts = x; else for (var P = 0; P < l.length && !(l[P].dts > x); P++)l[P].dts -= I, l[P].pts -= I; w.log("Video: Initial PTS/DTS adjusted: " + En(x, !0) + "/" + En(n, !0) + ", delta: " + En(I, !0) + " ms") } } for (var F = 0, M = 0, O = n = Math.max(0, n), N = 0; N < h; N++) { for (var U = l[N], B = U.units, G = B.length, K = 0, H = 0; H < G; H++)K += B[H].data.length; M += K, F += G, U.length = K, U.dts < O ? (U.dts = O, O += D / 4 | 0 || 1) : O = U.dts, v = Math.min(U.pts, v), m = Math.max(U.pts, m) } a = l[h - 1].dts; var V, Y = M + 4 * F + 8; try { V = new Uint8Array(Y) } catch (t) { return void this.observer.emit(S.ERROR, S.ERROR, { type: L.MUX_ERROR, details: A.REMUX_ALLOC_ERROR, fatal: !1, error: t, bytes: Y, reason: "fail allocating video mdat " + Y }) } var W = new DataView(V.buffer); W.setUint32(0, Y), V.set(mn.types.mdat, 4); for (var j = !1, q = Number.POSITIVE_INFINITY, X = Number.POSITIVE_INFINITY, z = Number.NEGATIVE_INFINITY, Q = Number.NEGATIVE_INFINITY, J = 0; J < h; J++) { for (var $ = l[J], Z = $.units, tt = 0, et = 0, rt = Z.length; et < rt; et++) { var it = Z[et], nt = it.data, at = it.data.byteLength; W.setUint32(f, at), f += 4, V.set(nt, f), f += at, tt += 4 + at } var st = void 0; if (J < h - 1) g = l[J + 1].dts - $.dts, st = l[J + 1].pts - $.pts; else { var ot = this.config, lt = J > 0 ? $.dts - l[J - 1].dts : D; if (st = J > 0 ? $.pts - l[J - 1].pts : D, ot.stretchShortVideoTrack && null !== this.nextAudioPts) { var ut = Math.floor(ot.maxBufferHole * s), ht = (i ? v + i * s : this.nextAudioPts) - $.pts; ht > ut ? ((g = ht - lt) < 0 ? g = lt : j = !0, w.log("[mp4-remuxer]: It is approximately " + ht / 90 + " ms to the next segment; using duration " + g / 90 + " ms for the last video frame.")) : g = lt } else g = lt } var dt = Math.round($.pts - $.dts); q = Math.min(q, g), z = Math.max(z, g), X = Math.min(X, st), Q = Math.max(Q, st), u.push(new Dn($.key, g, tt, dt)) } if (u.length) if (Tn) { if (Tn < 70) { var ct = u[0].flags; ct.dependsOn = 2, ct.isNonSync = 0 } } else if (Sn && Q - X < z - q && D / z < .025 && 0 === u[0].cts) { w.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration."); for (var ft = n, gt = 0, vt = u.length; gt < vt; gt++) { var mt = ft + u[gt].duration, pt = ft + u[gt].cts; if (gt < vt - 1) { var yt = mt + u[gt + 1].cts; u[gt].duration = yt - pt } else u[gt].duration = gt ? u[gt - 1].duration : D; u[gt].cts = 0, ft = mt } } g = j || !g ? D : g, this.nextAvcDts = c = a + g, this.videoSampleDuration = g, this.isVideoContiguous = !0; var Et = { data1: mn.moof(t.sequenceNumber++, n, o({}, t, { samples: u })), data2: V, startPTS: v / s, endPTS: (m + g) / s, startDTS: n / s, endDTS: c / s, type: "video", hasAudio: !1, hasVideo: !0, nb: u.length, dropped: t.dropped }; return t.samples = [], t.dropped = 0, Et }, e.getSamplesPerFrame = function (t) { switch (t.segmentCodec) { case "mp3": return 1152; case "ac3": return 1536; default: return 1024 } }, e.remuxAudio = function (t, e, r, i, n) { var a = t.inputTimeScale, s = a / (t.samplerate ? t.samplerate : a), l = this.getSamplesPerFrame(t), u = l * s, h = this._initPTS, d = "mp3" === t.segmentCodec && this.typeSupported.mpeg, c = [], f = void 0 !== n, g = t.samples, v = d ? 0 : 8, m = this.nextAudioPts || -1, p = e * a, y = h.baseTime * a / h.timescale; if (this.isAudioContiguous = r = r || g.length && m > 0 && (i && Math.abs(p - m) < 9e3 || Math.abs(An(g[0].pts - y, p) - m) < 20 * u), g.forEach((function (t) { t.pts = An(t.pts - y, p) })), !r || m < 0) { if (g = g.filter((function (t) { return t.pts >= 0 })), !g.length) return; m = 0 === n ? 0 : i && !f ? Math.max(0, p) : g[0].pts } if ("aac" === t.segmentCodec) for (var E = this.config.maxAudioFramesDrift, T = 0, R = m; T < g.length; T++) { var k = g[T], b = k.pts, D = b - R, I = Math.abs(1e3 * D / a); if (D <= -E * u && f) 0 === T && (w.warn("Audio frame @ " + (b / a).toFixed(3) + "s overlaps nextAudioPts by " + Math.round(1e3 * D / a) + " ms."), this.nextAudioPts = m = R = b); else if (D >= E * u && I < 1e4 && f) { var C = Math.round(D / u); (R = b - C * u) < 0 && (C--, R += u), 0 === T && (this.nextAudioPts = m = R), w.warn("[mp4-remuxer]: Injecting " + C + " audio frame @ " + (R / a).toFixed(3) + "s due to " + Math.round(1e3 * D / a) + " ms gap."); for (var _ = 0; _ < C; _++) { var x = Math.max(R, 0), P = gn.getSilentFrame(t.manifestCodec || t.codec, t.channelCount); P || (w.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."), P = k.unit.subarray()), g.splice(T, 0, { unit: P, pts: x }), R += u, T++ } } k.pts = R, R += u } for (var F, M = null, O = null, N = 0, U = g.length; U--;)N += g[U].unit.byteLength; for (var B = 0, G = g.length; B < G; B++) { var K = g[B], H = K.unit, V = K.pts; if (null !== O) c[B - 1].duration = Math.round((V - O) / s); else { if (r && "aac" === t.segmentCodec && (V = m), M = V, !(N > 0)) return; N += v; try { F = new Uint8Array(N) } catch (t) { return void this.observer.emit(S.ERROR, S.ERROR, { type: L.MUX_ERROR, details: A.REMUX_ALLOC_ERROR, fatal: !1, error: t, bytes: N, reason: "fail allocating audio mdat " + N }) } d || (new DataView(F.buffer).setUint32(0, N), F.set(mn.types.mdat, 4)) } F.set(H, v); var Y = H.byteLength; v += Y, c.push(new Dn(!0, l, Y, 0)), O = V } var W = c.length; if (W) { var j = c[c.length - 1]; this.nextAudioPts = m = O + s * j.duration; var q = d ? new Uint8Array(0) : mn.moof(t.sequenceNumber++, M / s, o({}, t, { samples: c })); t.samples = []; var X = M / a, z = m / a, Q = { data1: q, data2: F, startPTS: X, endPTS: z, startDTS: X, endDTS: z, type: "audio", hasAudio: !0, hasVideo: !1, nb: W }; return this.isAudioContiguous = !0, Q } }, e.remuxEmptyAudio = function (t, e, r, i) { var n = t.inputTimeScale, a = n / (t.samplerate ? t.samplerate : n), s = this.nextAudioPts, o = this._initDTS, l = 9e4 * o.baseTime / o.timescale, u = (null !== s ? s : i.startDTS * n) + l, h = i.endDTS * n + l, d = 1024 * a, c = Math.ceil((h - u) / d), f = gn.getSilentFrame(t.manifestCodec || t.codec, t.channelCount); if (w.warn("[mp4-remuxer]: remux empty Audio"), f) { for (var g = [], v = 0; v < c; v++) { var m = u + v * d; g.push({ unit: f, pts: m, dts: m }) } return t.samples = g, this.remuxAudio(t, e, r, !1) } w.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec") }, t }(); function An(t, e) { var r; if (null === e) return t; for (r = e < t ? -8589934592 : 8589934592; Math.abs(t - e) > 4294967296;)t += r; return t } function Rn(t, e, r, i) { var n = t.samples.length; if (n) { for (var a = t.inputTimeScale, s = 0; s < n; s++) { var o = t.samples[s]; o.pts = An(o.pts - r.baseTime * a / r.timescale, e * a) / a, o.dts = An(o.dts - i.baseTime * a / i.timescale, e * a) / a } var l = t.samples; return t.samples = [], { samples: l } } } function kn(t, e, r) { var i = t.samples.length; if (i) { for (var n = t.inputTimeScale, a = 0; a < i; a++) { var s = t.samples[a]; s.pts = An(s.pts - r.baseTime * n / r.timescale, e * n) / n } t.samples.sort((function (t, e) { return t.pts - e.pts })); var o = t.samples; return t.samples = [], { samples: o } } } var bn, Dn = function (t, e, r, i) { this.size = void 0, this.duration = void 0, this.cts = void 0, this.flags = void 0, this.duration = e, this.size = r, this.cts = i, this.flags = { isLeading: 0, isDependedOn: 0, hasRedundancy: 0, degradPrio: 0, dependsOn: t ? 2 : 1, isNonSync: t ? 0 : 1 } }, In = function () { function t() { this.emitInitSegment = !1, this.audioCodec = void 0, this.videoCodec = void 0, this.initData = void 0, this.initPTS = null, this.initTracks = void 0, this.lastEndTime = null } var e = t.prototype; return e.destroy = function () { }, e.resetTimeStamp = function (t) { this.initPTS = t, this.lastEndTime = null }, e.resetNextTimestamp = function () { this.lastEndTime = null }, e.resetInitSegment = function (t, e, r, i) { this.audioCodec = e, this.videoCodec = r, this.generateInitSegment(function (t, e) { if (!t || !e) return t; var r = e.keyId; return r && e.isCommonEncryption && xt(t, ["moov", "trak"]).forEach((function (t) { var e = xt(t, ["mdia", "minf", "stbl", "stsd"])[0].subarray(8), i = xt(e, ["enca"]), n = i.length > 0; n || (i = xt(e, ["encv"])), i.forEach((function (t) { xt(n ? t.subarray(28) : t.subarray(78), ["sinf"]).forEach((function (t) { var e = Bt(t); if (e) { var i = e.subarray(8, 24); i.some((function (t) { return 0 !== t })) || (w.log("[eme] Patching keyId in 'enc" + (n ? "a" : "v") + ">sinf>>tenc' box: " + Lt(i) + " -> " + Lt(r)), e.set(r, 8)) } })) })) })), t }(t, i)), this.emitInitSegment = !0 }, e.generateInitSegment = function (t) { var e = this.audioCodec, r = this.videoCodec; if (null == t || !t.byteLength) return this.initTracks = void 0, void (this.initData = void 0); var i = this.initData = Ft(t); i.audio && (e = wn(i.audio, O)), i.video && (r = wn(i.video, N)); var n = {}; i.audio && i.video ? n.audiovideo = { container: "video/mp4", codec: e + "," + r, initSegment: t, id: "main" } : i.audio ? n.audio = { container: "audio/mp4", codec: e, initSegment: t, id: "audio" } : i.video ? n.video = { container: "video/mp4", codec: r, initSegment: t, id: "main" } : w.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."), this.initTracks = n }, e.remux = function (t, e, r, i, n, a) { var s, o, l = this.initPTS, u = this.lastEndTime, h = { audio: void 0, video: void 0, text: i, id3: r, initSegment: void 0 }; y(u) || (u = this.lastEndTime = n || 0); var d = e.samples; if (null == d || !d.length) return h; var c = { initPTS: void 0, timescale: 1 }, f = this.initData; if (null != (s = f) && s.length || (this.generateInitSegment(d), f = this.initData), null == (o = f) || !o.length) return w.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."), h; this.emitInitSegment && (c.tracks = this.initTracks, this.emitInitSegment = !1); var g = function (t, e) { for (var r = 0, i = 0, n = 0, a = xt(t, ["moof", "traf"]), s = 0; s < a.length; s++) { var o = a[s], l = xt(o, ["tfhd"])[0], u = e[It(l, 4)]; if (u) { var h = u.default, d = It(l, 0) | (null == h ? void 0 : h.flags), c = null == h ? void 0 : h.duration; 8 & d && (c = It(l, 2 & d ? 12 : 8)); for (var f = u.timescale || 9e4, g = xt(o, ["trun"]), v = 0; v < g.length; v++)!(r = Gt(g[v])) && c && (r = c * It(g[v], 4)), u.type === N ? i += r / f : u.type === O && (n += r / f) } } if (0 === i && 0 === n) { for (var m = 1 / 0, p = 0, E = 0, T = xt(t, ["sidx"]), S = 0; S < T.length; S++) { var L = Pt(T[S]); if (null != L && L.references) { m = Math.min(m, L.earliestPresentationTime / L.timescale); var A = L.references.reduce((function (t, e) { return t + e.info.duration || 0 }), 0); E = (p = Math.max(p, A + L.earliestPresentationTime / L.timescale)) - m } } if (E && y(E)) return E } return i || n }(d, f), v = function (t, e) { return xt(e, ["moof", "traf"]).reduce((function (e, r) { var i = xt(r, ["tfdt"])[0], n = i[0], a = xt(r, ["tfhd"]).reduce((function (e, r) { var a = It(r, 4), s = t[a]; if (s) { var o = It(i, 4); if (1 === n) { if (o === At) return w.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"), e; o *= At + 1, o += It(i, 8) } var l = o / (s.timescale || 9e4); if (y(l) && (null === e || l < e)) return l } return e }), null); return null !== a && y(a) && (null === e || a < e) ? a : e }), null) }(f, d), m = null === v ? n : v; (function (t, e, r, i) { if (null === t) return !0; var n = Math.max(i, 1), a = e - t.baseTime / t.timescale; return Math.abs(a - r) > n }(l, m, n, g) || c.timescale !== l.timescale && a) && (c.initPTS = m - n, l && 1 === l.timescale && w.warn("Adjusting initPTS by " + (c.initPTS - l.baseTime)), this.initPTS = l = { baseTime: c.initPTS, timescale: 1 }); var p = t ? m - l.baseTime / l.timescale : u, E = p + g; !function (t, e, r) { xt(e, ["moof", "traf"]).forEach((function (e) { xt(e, ["tfhd"]).forEach((function (i) { var n = It(i, 4), a = t[n]; if (a) { var s = a.timescale || 9e4; xt(e, ["tfdt"]).forEach((function (t) { var e = t[0], i = r * s; if (i) { var n = It(t, 4); if (0 === e) n -= i, _t(t, 4, n = Math.max(n, 0)); else { n *= Math.pow(2, 32), n += It(t, 8), n -= i, n = Math.max(n, 0); var a = Math.floor(n / (At + 1)), o = Math.floor(n % (At + 1)); _t(t, 4, a), _t(t, 8, o) } } })) } })) })) }(f, d, l.baseTime / l.timescale), g > 0 ? this.lastEndTime = E : (w.warn("Duration parsed from mp4 should be greater than zero"), this.resetNextTimestamp()); var T = !!f.audio, S = !!f.video, L = ""; T && (L += "audio"), S && (L += "video"); var A = { data1: d, startPTS: p, startDTS: p, endPTS: E, endDTS: E, type: L, hasAudio: T, hasVideo: S, nb: 1, dropped: 0 }; return h.audio = "audio" === A.type ? A : void 0, h.video = "audio" !== A.type ? A : void 0, h.initSegment = c, h.id3 = Rn(r, n, l, l), i.samples.length && (h.text = kn(i, n, l)), h }, t }(); function wn(t, e) { var r = null == t ? void 0 : t.codec; if (r && r.length > 4) return r; if (e === O) { if ("ec-3" === r || "ac-3" === r || "alac" === r) return r; if ("fLaC" === r || "Opus" === r) return he(r, !1); var i = "mp4a.40.5"; return w.info('Parsed audio codec "' + r + '" or audio object type not handled. Using "' + i + '"'), i } return w.warn('Unhandled video codec "' + r + '"'), "hvc1" === r || "hev1" === r ? "hvc1.1.6.L120.90" : "av01" === r ? "av01.0.04M.08" : "avc1.42e01e" } try { bn = self.performance.now.bind(self.performance) } catch (t) { w.debug("Unable to use Performance API on this environment"), bn = null == j ? void 0 : j.Date.now } var Cn = [{ demux: Ji, remux: In }, { demux: on, remux: Ln }, { demux: zi, remux: Ln }, { demux: fn, remux: Ln }]; Cn.splice(2, 0, { demux: Zi, remux: Ln }); var _n = function () { function t(t, e, r, i, n) { this.async = !1, this.observer = void 0, this.typeSupported = void 0, this.config = void 0, this.vendor = void 0, this.id = void 0, this.demuxer = void 0, this.remuxer = void 0, this.decrypter = void 0, this.probe = void 0, this.decryptionPromise = null, this.transmuxConfig = void 0, this.currentTransmuxState = void 0, this.observer = t, this.typeSupported = e, this.config = r, this.vendor = i, this.id = n } var e = t.prototype; return e.configure = function (t) { this.transmuxConfig = t, this.decrypter && this.decrypter.reset() }, e.push = function (t, e, r, i) { var n = this, a = r.transmuxing; a.executeStart = bn(); var s = new Uint8Array(t), o = this.currentTransmuxState, l = this.transmuxConfig; i && (this.currentTransmuxState = i); var u = i || o, h = u.contiguous, d = u.discontinuity, c = u.trackSwitch, f = u.accurateTimeOffset, g = u.timeOffset, v = u.initSegmentChange, m = l.audioCodec, p = l.videoCodec, y = l.defaultInitPts, E = l.duration, T = l.initSegmentData, R = function (t, e) { var r = null; return t.byteLength > 0 && null != (null == e ? void 0 : e.key) && null !== e.iv && null != e.method && (r = e), r }(s, e); if (R && "AES-128" === R.method) { var k = this.getDecrypter(); if (!k.isSync()) return this.decryptionPromise = k.webCryptoDecrypt(s, R.key.buffer, R.iv.buffer).then((function (t) { var e = n.push(t, null, r); return n.decryptionPromise = null, e })), this.decryptionPromise; var b = k.softwareDecrypt(s, R.key.buffer, R.iv.buffer); if (r.part > -1 && (b = k.flush()), !b) return a.executeEnd = bn(), xn(r); s = new Uint8Array(b) } var D = this.needsProbing(d, c); if (D) { var I = this.configureTransmuxer(s); if (I) return w.warn("[transmuxer] " + I.message), this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: I, reason: I.message }), a.executeEnd = bn(), xn(r) } (d || c || v || D) && this.resetInitSegment(T, m, p, E, e), (d || v || D) && this.resetInitialTimestamp(y), h || this.resetContiguity(); var C = this.transmux(s, R, g, f, r), _ = this.currentTransmuxState; return _.contiguous = !0, _.discontinuity = !1, _.trackSwitch = !1, a.executeEnd = bn(), C }, e.flush = function (t) { var e = this, r = t.transmuxing; r.executeStart = bn(); var i = this.decrypter, n = this.currentTransmuxState, a = this.decryptionPromise; if (a) return a.then((function () { return e.flush(t) })); var s = [], o = n.timeOffset; if (i) { var l = i.flush(); l && s.push(this.push(l, null, t)) } var u = this.demuxer, h = this.remuxer; if (!u || !h) return r.executeEnd = bn(), [xn(t)]; var d = u.flush(o); return Pn(d) ? d.then((function (r) { return e.flushRemux(s, r, t), s })) : (this.flushRemux(s, d, t), s) }, e.flushRemux = function (t, e, r) { var i = e.audioTrack, n = e.videoTrack, a = e.id3Track, s = e.textTrack, o = this.currentTransmuxState, l = o.accurateTimeOffset, u = o.timeOffset; w.log("[transmuxer.ts]: Flushed fragment " + r.sn + (r.part > -1 ? " p: " + r.part : "") + " of level " + r.level); var h = this.remuxer.remux(i, n, a, s, u, l, !0, this.id); t.push({ remuxResult: h, chunkMeta: r }), r.transmuxing.executeEnd = bn() }, e.resetInitialTimestamp = function (t) { var e = this.demuxer, r = this.remuxer; e && r && (e.resetTimeStamp(t), r.resetTimeStamp(t)) }, e.resetContiguity = function () { var t = this.demuxer, e = this.remuxer; t && e && (t.resetContiguity(), e.resetNextTimestamp()) }, e.resetInitSegment = function (t, e, r, i, n) { var a = this.demuxer, s = this.remuxer; a && s && (a.resetInitSegment(t, e, r, i), s.resetInitSegment(t, e, r, n)) }, e.destroy = function () { this.demuxer && (this.demuxer.destroy(), this.demuxer = void 0), this.remuxer && (this.remuxer.destroy(), this.remuxer = void 0) }, e.transmux = function (t, e, r, i, n) { return e && "SAMPLE-AES" === e.method ? this.transmuxSampleAes(t, e, r, i, n) : this.transmuxUnencrypted(t, r, i, n) }, e.transmuxUnencrypted = function (t, e, r, i) { var n = this.demuxer.demux(t, e, !1, !this.config.progressive), a = n.audioTrack, s = n.videoTrack, o = n.id3Track, l = n.textTrack; return { remuxResult: this.remuxer.remux(a, s, o, l, e, r, !1, this.id), chunkMeta: i } }, e.transmuxSampleAes = function (t, e, r, i, n) { var a = this; return this.demuxer.demuxSampleAes(t, e, r).then((function (t) { return { remuxResult: a.remuxer.remux(t.audioTrack, t.videoTrack, t.id3Track, t.textTrack, r, i, !1, a.id), chunkMeta: n } })) }, e.configureTransmuxer = function (t) { for (var e, r = this.config, i = this.observer, n = this.typeSupported, a = this.vendor, s = 0, o = Cn.length; s < o; s++) { var l; if (null != (l = Cn[s].demux) && l.probe(t)) { e = Cn[s]; break } } if (!e) return new Error("Failed to find demuxer by probing fragment data"); var u = this.demuxer, h = this.remuxer, d = e.remux, c = e.demux; h && h instanceof d || (this.remuxer = new d(i, r, n, a)), u && u instanceof c || (this.demuxer = new c(i, r, n), this.probe = c.probe) }, e.needsProbing = function (t, e) { return !this.demuxer || !this.remuxer || t || e }, e.getDecrypter = function () { var t = this.decrypter; return t || (t = this.decrypter = new ci(this.config)), t }, t }(), xn = function (t) { return { remuxResult: {}, chunkMeta: t } }; function Pn(t) { return "then" in t && t.then instanceof Function } var Fn = function (t, e, r, i, n) { this.audioCodec = void 0, this.videoCodec = void 0, this.initSegmentData = void 0, this.duration = void 0, this.defaultInitPts = void 0, this.audioCodec = t, this.videoCodec = e, this.initSegmentData = r, this.duration = i, this.defaultInitPts = n || null }, Mn = function (t, e, r, i, n, a) { this.discontinuity = void 0, this.contiguous = void 0, this.accurateTimeOffset = void 0, this.trackSwitch = void 0, this.timeOffset = void 0, this.initSegmentChange = void 0, this.discontinuity = t, this.contiguous = e, this.accurateTimeOffset = r, this.trackSwitch = i, this.timeOffset = n, this.initSegmentChange = a }, On = { exports: {} }; !function (t) { var e = Object.prototype.hasOwnProperty, r = "~"; function i() { } function n(t, e, r) { this.fn = t, this.context = e, this.once = r || !1 } function a(t, e, i, a, s) { if ("function" != typeof i) throw new TypeError("The listener must be a function"); var o = new n(i, a || t, s), l = r ? r + e : e; return t._events[l] ? t._events[l].fn ? t._events[l] = [t._events[l], o] : t._events[l].push(o) : (t._events[l] = o, t._eventsCount++), t } function s(t, e) { 0 == --t._eventsCount ? t._events = new i : delete t._events[e] } function o() { this._events = new i, this._eventsCount = 0 } Object.create && (i.prototype = Object.create(null), (new i).__proto__ || (r = !1)), o.prototype.eventNames = function () { var t, i, n = []; if (0 === this._eventsCount) return n; for (i in t = this._events) e.call(t, i) && n.push(r ? i.slice(1) : i); return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n }, o.prototype.listeners = function (t) { var e = r ? r + t : t, i = this._events[e]; if (!i) return []; if (i.fn) return [i.fn]; for (var n = 0, a = i.length, s = new Array(a); n < a; n++)s[n] = i[n].fn; return s }, o.prototype.listenerCount = function (t) { var e = r ? r + t : t, i = this._events[e]; return i ? i.fn ? 1 : i.length : 0 }, o.prototype.emit = function (t, e, i, n, a, s) { var o = r ? r + t : t; if (!this._events[o]) return !1; var l, u, h = this._events[o], d = arguments.length; if (h.fn) { switch (h.once && this.removeListener(t, h.fn, void 0, !0), d) { case 1: return h.fn.call(h.context), !0; case 2: return h.fn.call(h.context, e), !0; case 3: return h.fn.call(h.context, e, i), !0; case 4: return h.fn.call(h.context, e, i, n), !0; case 5: return h.fn.call(h.context, e, i, n, a), !0; case 6: return h.fn.call(h.context, e, i, n, a, s), !0 }for (u = 1, l = new Array(d - 1); u < d; u++)l[u - 1] = arguments[u]; h.fn.apply(h.context, l) } else { var c, f = h.length; for (u = 0; u < f; u++)switch (h[u].once && this.removeListener(t, h[u].fn, void 0, !0), d) { case 1: h[u].fn.call(h[u].context); break; case 2: h[u].fn.call(h[u].context, e); break; case 3: h[u].fn.call(h[u].context, e, i); break; case 4: h[u].fn.call(h[u].context, e, i, n); break; default: if (!l) for (c = 1, l = new Array(d - 1); c < d; c++)l[c - 1] = arguments[c]; h[u].fn.apply(h[u].context, l) } } return !0 }, o.prototype.on = function (t, e, r) { return a(this, t, e, r, !1) }, o.prototype.once = function (t, e, r) { return a(this, t, e, r, !0) }, o.prototype.removeListener = function (t, e, i, n) { var a = r ? r + t : t; if (!this._events[a]) return this; if (!e) return s(this, a), this; var o = this._events[a]; if (o.fn) o.fn !== e || n && !o.once || i && o.context !== i || s(this, a); else { for (var l = 0, u = [], h = o.length; l < h; l++)(o[l].fn !== e || n && !o[l].once || i && o[l].context !== i) && u.push(o[l]); u.length ? this._events[a] = 1 === u.length ? u[0] : u : s(this, a) } return this }, o.prototype.removeAllListeners = function (t) { var e; return t ? (e = r ? r + t : t, this._events[e] && s(this, e)) : (this._events = new i, this._eventsCount = 0), this }, o.prototype.off = o.prototype.removeListener, o.prototype.addListener = o.prototype.on, o.prefixed = r, o.EventEmitter = o, t.exports = o }(On); var Nn = v(On.exports); function Un(t, e) { if (!((r = e.remuxResult).audio || r.video || r.text || r.id3 || r.initSegment)) return !1; var r, i = [], n = e.remuxResult, a = n.audio, s = n.video; return a && Bn(i, a), s && Bn(i, s), t.postMessage({ event: "transmuxComplete", data: e }, i), !0 } function Bn(t, e) { e.data1 && t.push(e.data1.buffer), e.data2 && t.push(e.data2.buffer) } function Gn(t, e, r) { e.reduce((function (e, r) { return Un(t, r) || e }), !1) || t.postMessage({ event: "transmuxComplete", data: e[0] }), t.postMessage({ event: "flush", data: r }) } void 0 !== e && e && function (t) { var e = new Nn, r = function (e, r) { t.postMessage({ event: e, data: r }) }; e.on(S.FRAG_DECRYPTED, r), e.on(S.ERROR, r); var i = function () { var t = function (t) { var e = function (e) { r("workerLog", { logType: t, message: e }) }; w[t] = e }; for (var e in w) t(e) }; t.addEventListener("message", (function (n) { var a = n.data; switch (a.cmd) { case "init": var s = JSON.parse(a.config); t.transmuxer = new _n(e, a.typeSupported, s, a.vendor, a.id), I(s.debug, a.id), i(), r("init", null); break; case "configure": t.transmuxer.configure(a.config); break; case "demux": var o = t.transmuxer.push(a.data, a.decryptdata, a.chunkMeta, a.state); Pn(o) ? (t.transmuxer.async = !0, o.then((function (e) { Un(t, e) })).catch((function (t) { r(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: a.chunkMeta, fatal: !1, error: t, err: t, reason: "transmuxer-worker push error" }) }))) : (t.transmuxer.async = !1, Un(t, o)); break; case "flush": var l = a.chunkMeta, u = t.transmuxer.flush(l); Pn(u) || t.transmuxer.async ? (Pn(u) || (u = Promise.resolve(u)), u.then((function (e) { Gn(t, e, l) })).catch((function (t) { r(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: a.chunkMeta, fatal: !1, error: t, err: t, reason: "transmuxer-worker flush error" }) }))) : Gn(t, u, l) } })) }(self); var Kn = function () { function e(e, r, i, n) { var a = this; this.error = null, this.hls = void 0, this.id = void 0, this.observer = void 0, this.frag = null, this.part = null, this.useWorker = void 0, this.workerContext = null, this.onwmsg = void 0, this.transmuxer = null, this.onTransmuxComplete = void 0, this.onFlush = void 0; var s = e.config; this.hls = e, this.id = r, this.useWorker = !!s.enableWorker, this.onTransmuxComplete = i, this.onFlush = n; var o = function (t, e) { (e = e || {}).frag = a.frag, e.id = a.id, t === S.ERROR && (a.error = e.error), a.hls.trigger(t, e) }; this.observer = new Nn, this.observer.on(S.FRAG_DECRYPTED, o), this.observer.on(S.ERROR, o); var l, u, h, d, c = ee(s.preferManagedMediaSource) || { isTypeSupported: function () { return !1 } }, f = { mpeg: c.isTypeSupported("audio/mpeg"), mp3: c.isTypeSupported('audio/mp4; codecs="mp3"'), ac3: c.isTypeSupported('audio/mp4; codecs="ac-3"') }, g = navigator.vendor; if (!this.useWorker || "undefined" == typeof Worker || (s.workerPath, 0)) this.transmuxer = new _n(this.observer, f, s, g, r); else try { s.workerPath ? (w.log("loading Web Worker " + s.workerPath + ' for "' + r + '"'), this.workerContext = (h = s.workerPath, d = new self.URL(h, self.location.href).href, { worker: new self.Worker(d), scriptURL: d })) : (w.log('injecting Web Worker for "' + r + '"'), this.workerContext = (l = new self.Blob(["var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(" + t.toString() + ")(true);"], { type: "text/javascript" }), u = self.URL.createObjectURL(l), { worker: new self.Worker(u), objectURL: u })), this.onwmsg = function (t) { return a.onWorkerMessage(t) }; var v = this.workerContext.worker; v.addEventListener("message", this.onwmsg), v.onerror = function (t) { var e = new Error(t.message + " (" + t.filename + ":" + t.lineno + ")"); s.enableWorker = !1, w.warn('Error in "' + r + '" Web Worker, fallback to inline'), a.hls.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.INTERNAL_EXCEPTION, fatal: !1, event: "demuxerWorker", error: e }) }, v.postMessage({ cmd: "init", typeSupported: f, vendor: g, id: r, config: JSON.stringify(s) }) } catch (t) { w.warn('Error setting up "' + r + '" Web Worker, fallback to inline', t), this.resetWorker(), this.error = null, this.transmuxer = new _n(this.observer, f, s, g, r) } } var r = e.prototype; return r.resetWorker = function () { if (this.workerContext) { var t = this.workerContext, e = t.worker, r = t.objectURL; r && self.URL.revokeObjectURL(r), e.removeEventListener("message", this.onwmsg), e.onerror = null, e.terminate(), this.workerContext = null } }, r.destroy = function () { if (this.workerContext) this.resetWorker(), this.onwmsg = void 0; else { var t = this.transmuxer; t && (t.destroy(), this.transmuxer = null) } var e = this.observer; e && e.removeAllListeners(), this.frag = null, this.observer = null, this.hls = null }, r.push = function (t, e, r, i, n, a, s, o, l, u) { var h, d, c = this; l.transmuxing.start = self.performance.now(); var f = this.transmuxer, g = a ? a.start : n.start, v = n.decryptdata, m = this.frag, p = !(m && n.cc === m.cc), y = !(m && l.level === m.level), E = m ? l.sn - m.sn : -1, T = this.part ? l.part - this.part.index : -1, S = 0 === E && l.id > 1 && l.id === (null == m ? void 0 : m.stats.chunkCount), L = !y && (1 === E || 0 === E && (1 === T || S && T <= 0)), A = self.performance.now(); (y || E || 0 === n.stats.parsing.start) && (n.stats.parsing.start = A), !a || !T && L || (a.stats.parsing.start = A); var R = !(m && (null == (h = n.initSegment) ? void 0 : h.url) === (null == (d = m.initSegment) ? void 0 : d.url)), k = new Mn(p, L, o, y, g, R); if (!L || p || R) { w.log("[transmuxer-interface, " + n.type + "]: Starting new transmux session for sn: " + l.sn + " p: " + l.part + " level: " + l.level + " id: " + l.id + "\n discontinuity: " + p + "\n trackSwitch: " + y + "\n contiguous: " + L + "\n accurateTimeOffset: " + o + "\n timeOffset: " + g + "\n initSegmentChange: " + R); var b = new Fn(r, i, e, s, u); this.configureTransmuxer(b) } if (this.frag = n, this.part = a, this.workerContext) this.workerContext.worker.postMessage({ cmd: "demux", data: t, decryptdata: v, chunkMeta: l, state: k }, t instanceof ArrayBuffer ? [t] : []); else if (f) { var D = f.push(t, v, l, k); Pn(D) ? (f.async = !0, D.then((function (t) { c.handleTransmuxComplete(t) })).catch((function (t) { c.transmuxerError(t, l, "transmuxer-interface push error") }))) : (f.async = !1, this.handleTransmuxComplete(D)) } }, r.flush = function (t) { var e = this; t.transmuxing.start = self.performance.now(); var r = this.transmuxer; if (this.workerContext) this.workerContext.worker.postMessage({ cmd: "flush", chunkMeta: t }); else if (r) { var i = r.flush(t); Pn(i) || r.async ? (Pn(i) || (i = Promise.resolve(i)), i.then((function (r) { e.handleFlushResult(r, t) })).catch((function (r) { e.transmuxerError(r, t, "transmuxer-interface flush error") }))) : this.handleFlushResult(i, t) } }, r.transmuxerError = function (t, e, r) { this.hls && (this.error = t, this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: e, fatal: !1, error: t, err: t, reason: r })) }, r.handleFlushResult = function (t, e) { var r = this; t.forEach((function (t) { r.handleTransmuxComplete(t) })), this.onFlush(e) }, r.onWorkerMessage = function (t) { var e = t.data, r = this.hls; switch (e.event) { case "init": var i, n = null == (i = this.workerContext) ? void 0 : i.objectURL; n && self.URL.revokeObjectURL(n); break; case "transmuxComplete": this.handleTransmuxComplete(e.data); break; case "flush": this.onFlush(e.data); break; case "workerLog": w[e.data.logType] && w[e.data.logType](e.data.message); break; default: e.data = e.data || {}, e.data.frag = this.frag, e.data.id = this.id, r.trigger(e.event, e.data) } }, r.configureTransmuxer = function (t) { var e = this.transmuxer; this.workerContext ? this.workerContext.worker.postMessage({ cmd: "configure", config: t }) : e && e.configure(t) }, r.handleTransmuxComplete = function (t) { t.chunkMeta.transmuxing.end = self.performance.now(), this.onTransmuxComplete(t) }, e }(); function Hn(t, e) { if (t.length !== e.length) return !1; for (var r = 0; r < t.length; r++)if (!Vn(t[r].attrs, e[r].attrs)) return !1; return !0 } function Vn(t, e, r) { var i = t["STABLE-RENDITION-ID"]; return i && !r ? i === e["STABLE-RENDITION-ID"] : !(r || ["LANGUAGE", "NAME", "CHARACTERISTICS", "AUTOSELECT", "DEFAULT", "FORCED", "ASSOC-LANGUAGE"]).some((function (r) { return t[r] !== e[r] })) } function Yn(t, e) { return e.label.toLowerCase() === t.name.toLowerCase() && (!e.language || e.language.toLowerCase() === (t.lang || "").toLowerCase()) } var Wn = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e, r, i, "[audio-stream-controller]", Ce) || this).videoBuffer = null, n.videoTrackCC = -1, n.waitingVideoCC = -1, n.bufferedTrack = null, n.switchingTrack = null, n.trackId = -1, n.waitingData = null, n.mainDetails = null, n.flushing = !1, n.bufferFlushed = !1, n.cachedTrackLoadedData = null, n._registerListeners(), n } l(e, t); var r = e.prototype; return r.onHandlerDestroying = function () { this._unregisterListeners(), t.prototype.onHandlerDestroying.call(this), this.mainDetails = null, this.bufferedTrack = null, this.switchingTrack = null }, r._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), t.on(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.on(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.on(S.ERROR, this.onError, this), t.on(S.BUFFER_RESET, this.onBufferReset, this), t.on(S.BUFFER_CREATED, this.onBufferCreated, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.on(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), t.off(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.off(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.off(S.ERROR, this.onError, this), t.off(S.BUFFER_RESET, this.onBufferReset, this), t.off(S.BUFFER_CREATED, this.onBufferCreated, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.off(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r.onInitPtsFound = function (t, e) { var r = e.frag, i = e.id, n = e.initPTS, a = e.timescale; if ("main" === i) { var s = r.cc; this.initPTS[r.cc] = { baseTime: n, timescale: a }, this.log("InitPTS for cc: " + s + " found from main: " + n), this.videoTrackCC = s, this.state === Ri && this.tick() } }, r.startLoad = function (t) { if (!this.levels) return this.startPosition = t, void (this.state = gi); var e = this.lastCurrentTime; this.stopLoad(), this.setInterval(100), e > 0 && -1 === t ? (this.log("Override startPosition with lastCurrentTime @" + e.toFixed(3)), t = e, this.state = vi) : (this.loadedmetadata = !1, this.state = Ei), this.nextLoadPosition = this.startPosition = this.lastCurrentTime = t, this.tick() }, r.doTick = function () { switch (this.state) { case vi: this.doTickIdle(); break; case Ei: var e, r = this.levels, i = this.trackId, n = null == r || null == (e = r[i]) ? void 0 : e.details; if (n) { if (this.waitForCdnTuneIn(n)) break; this.state = Ri } break; case yi: var a, s = performance.now(), o = this.retryDate; if (!o || s >= o || null != (a = this.media) && a.seeking) { var l = this.levels, u = this.trackId; this.log("RetryDate reached, switch back to IDLE state"), this.resetStartWhenNotLoaded((null == l ? void 0 : l[u]) || null), this.state = vi } break; case Ri: var h = this.waitingData; if (h) { var d = h.frag, c = h.part, f = h.cache, g = h.complete; if (void 0 !== this.initPTS[d.cc]) { this.waitingData = null, this.waitingVideoCC = -1, this.state = pi; var v = { frag: d, part: c, payload: f.flush(), networkDetails: null }; this._handleFragmentLoadProgress(v), g && t.prototype._handleFragmentLoadComplete.call(this, v) } else if (this.videoTrackCC !== this.waitingVideoCC) this.log("Waiting fragment cc (" + d.cc + ") cancelled because video is at cc " + this.videoTrackCC), this.clearWaitingFragment(); else { var m = this.getLoadPosition(), p = Jr.bufferInfo(this.mediaBuffer, m, this.config.maxBufferHole); Er(p.end, this.config.maxFragLookUpTolerance, d) < 0 && (this.log("Waiting fragment cc (" + d.cc + ") @ " + d.start + " cancelled because another fragment at " + p.end + " is needed"), this.clearWaitingFragment()) } } else this.state = vi }this.onTickEnd() }, r.clearWaitingFragment = function () { var t = this.waitingData; t && (this.fragmentTracker.removeFragment(t.frag), this.waitingData = null, this.waitingVideoCC = -1, this.state = vi) }, r.resetLoadingState = function () { this.clearWaitingFragment(), t.prototype.resetLoadingState.call(this) }, r.onTickEnd = function () { var t = this.media; null != t && t.readyState && (this.lastCurrentTime = t.currentTime) }, r.doTickIdle = function () { var t = this.hls, e = this.levels, r = this.media, i = this.trackId, n = t.config; if ((r || !this.startFragRequested && n.startFragPrefetch) && null != e && e[i]) { var a = e[i], s = a.details; if (!s || s.live && this.levelLastLoaded !== a || this.waitForCdnTuneIn(s)) this.state = Ei; else { var o = this.mediaBuffer ? this.mediaBuffer : this.media; this.bufferFlushed && o && (this.bufferFlushed = !1, this.afterBufferFlushed(o, O, Ce)); var l = this.getFwdBufferInfo(o, Ce); if (null !== l) { var u = this.bufferedTrack, h = this.switchingTrack; if (!h && this._streamEnded(l, s)) return t.trigger(S.BUFFER_EOS, { type: "audio" }), void (this.state = Li); var d = this.getFwdBufferInfo(this.videoBuffer ? this.videoBuffer : this.media, we), c = l.len, f = this.getMaxBufferLength(null == d ? void 0 : d.len), g = s.fragments, v = g[0].start, m = this.flushing ? this.getLoadPosition() : l.end; if (h && r) { var p = this.getLoadPosition(); u && !Vn(h.attrs, u.attrs) && (m = p), s.PTSKnown && p < v && (l.end > v || l.nextStart) && (this.log("Alt audio track ahead of main track, seek to start of alt audio track"), r.currentTime = v + .05) } if (!(c >= f && !h && m < g[g.length - 1].start)) { var y = this.getNextFragment(m, s), E = !1; if (y && this.isLoopLoading(y, m) && (E = !!y.gap, y = this.getNextFragmentLoopLoading(y, s, l, we, f)), y) { var T = d && y.start > d.end + s.targetduration; if (T || (null == d || !d.len) && l.len) { var L = this.getAppendedFrag(y.start, we); if (null === L) return; if (E || (E = !!L.gap || !!T && 0 === d.len), T && !E || E && l.nextStart && l.nextStart < L.end) return } this.loadFragment(y, a, m) } else this.bufferFlushed = !0 } } } } }, r.getMaxBufferLength = function (e) { var r = t.prototype.getMaxBufferLength.call(this); return e ? Math.min(Math.max(r, e), this.config.maxMaxBufferLength) : r }, r.onMediaDetaching = function () { this.videoBuffer = null, this.bufferFlushed = this.flushing = !1, t.prototype.onMediaDetaching.call(this) }, r.onAudioTracksUpdated = function (t, e) { var r = e.audioTracks; this.resetTransmuxer(), this.levels = r.map((function (t) { return new rr(t) })) }, r.onAudioTrackSwitching = function (t, e) { var r = !!e.url; this.trackId = e.id; var i = this.fragCurrent; i && (i.abortRequests(), this.removeUnbufferedFrags(i.start)), this.resetLoadingState(), r ? this.setInterval(100) : this.resetTransmuxer(), r ? (this.switchingTrack = e, this.state = vi, this.flushAudioIfNeeded(e)) : (this.switchingTrack = null, this.bufferedTrack = e, this.state = gi), this.tick() }, r.onManifestLoading = function () { this.fragmentTracker.removeAllFragments(), this.startPosition = this.lastCurrentTime = 0, this.bufferFlushed = this.flushing = !1, this.levels = this.mainDetails = this.waitingData = this.bufferedTrack = this.cachedTrackLoadedData = this.switchingTrack = null, this.startFragRequested = !1, this.trackId = this.videoTrackCC = this.waitingVideoCC = -1 }, r.onLevelLoaded = function (t, e) { this.mainDetails = e.details, null !== this.cachedTrackLoadedData && (this.hls.trigger(S.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData), this.cachedTrackLoadedData = null) }, r.onAudioTrackLoaded = function (t, e) { var r; if (null != this.mainDetails) { var i = this.levels, n = e.details, a = e.id; if (i) { this.log("Audio track " + a + " loaded [" + n.startSN + "," + n.endSN + "]" + (n.lastPartSn ? "[part-" + n.lastPartSn + "-" + n.lastPartIndex + "]" : "") + ",duration:" + n.totalduration); var s = i[a], o = 0; if (n.live || null != (r = s.details) && r.live) { this.checkLiveUpdate(n); var l, u = this.mainDetails; if (n.deltaUpdateFailed || !u) return; !s.details && n.hasProgramDateTime && u.hasProgramDateTime ? (ii(n, u), o = n.fragments[0].start) : o = this.alignPlaylists(n, s.details, null == (l = this.levelLastLoaded) ? void 0 : l.details) } s.details = n, this.levelLastLoaded = s, this.startFragRequested || !this.mainDetails && n.live || this.setStartPosition(this.mainDetails || n, o), this.state !== Ei || this.waitForCdnTuneIn(n) || (this.state = vi), this.tick() } else this.warn("Audio tracks were reset while loading level " + a) } else this.cachedTrackLoadedData = e }, r._handleFragmentLoadProgress = function (t) { var e, r = t.frag, i = t.part, n = t.payload, a = this.config, s = this.trackId, o = this.levels; if (o) { var l = o[s]; if (l) { var u = l.details; if (!u) return this.warn("Audio track details undefined on fragment load progress"), void this.removeUnbufferedFrags(r.start); var h = a.defaultAudioCodec || l.audioCodec || "mp4a.40.2", d = this.transmuxer; d || (d = this.transmuxer = new Kn(this.hls, Ce, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this))); var c = this.initPTS[r.cc], f = null == (e = r.initSegment) ? void 0 : e.data; if (void 0 !== c) { var g = i ? i.index : -1, v = -1 !== g, m = new $r(r.level, r.sn, r.stats.chunkCount, n.byteLength, g, v); d.push(n, f, h, "", r, i, u.totalduration, !1, m, c) } else this.log("Unknown video PTS for cc " + r.cc + ", waiting for video PTS before demuxing audio frag " + r.sn + " of [" + u.startSN + " ," + u.endSN + "],track " + s), (this.waitingData = this.waitingData || { frag: r, part: i, cache: new Di, complete: !1 }).cache.push(new Uint8Array(n)), this.waitingVideoCC = this.videoTrackCC, this.state = Ri } else this.warn("Audio track is undefined on fragment load progress") } else this.warn("Audio tracks were reset while fragment load was in progress. Fragment " + r.sn + " of level " + r.level + " will not be buffered") }, r._handleFragmentLoadComplete = function (e) { this.waitingData ? this.waitingData.complete = !0 : t.prototype._handleFragmentLoadComplete.call(this, e) }, r.onBufferReset = function () { this.mediaBuffer = this.videoBuffer = null, this.loadedmetadata = !1 }, r.onBufferCreated = function (t, e) { var r = e.tracks.audio; r && (this.mediaBuffer = r.buffer || null), e.tracks.video && (this.videoBuffer = e.tracks.video.buffer || null) }, r.onFragBuffered = function (t, e) { var r = e.frag, n = e.part; if (r.type === Ce) if (this.fragContextChanged(r)) this.warn("Fragment " + r.sn + (n ? " p: " + n.index : "") + " of level " + r.level + " finished buffering, but was aborted. state: " + this.state + ", audioSwitch: " + (this.switchingTrack ? this.switchingTrack.name : "false")); else { if ("initSegment" !== r.sn) { this.fragPrevious = r; var a = this.switchingTrack; a && (this.bufferedTrack = a, this.switchingTrack = null, this.hls.trigger(S.AUDIO_TRACK_SWITCHED, i({}, a))) } this.fragBufferedComplete(r, n) } else if (!this.loadedmetadata && r.type === we) { var s = this.videoBuffer || this.media; s && Jr.getBuffered(s).length && (this.loadedmetadata = !0) } }, r.onError = function (e, r) { var i; if (r.fatal) this.state = Ai; else switch (r.details) { case A.FRAG_GAP: case A.FRAG_PARSING_ERROR: case A.FRAG_DECRYPT_ERROR: case A.FRAG_LOAD_ERROR: case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_ERROR: case A.KEY_LOAD_TIMEOUT: this.onFragmentOrKeyLoadError(Ce, r); break; case A.AUDIO_TRACK_LOAD_ERROR: case A.AUDIO_TRACK_LOAD_TIMEOUT: case A.LEVEL_PARSING_ERROR: r.levelRetry || this.state !== Ei || (null == (i = r.context) ? void 0 : i.type) !== De || (this.state = vi); break; case A.BUFFER_APPEND_ERROR: case A.BUFFER_FULL_ERROR: if (!r.parent || "audio" !== r.parent) return; if (r.details === A.BUFFER_APPEND_ERROR) return void this.resetLoadingState(); this.reduceLengthAndFlushBuffer(r) && (this.bufferedTrack = null, t.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio")); break; case A.INTERNAL_EXCEPTION: this.recoverWorkerError(r) } }, r.onBufferFlushing = function (t, e) { e.type !== N && (this.flushing = !0) }, r.onBufferFlushed = function (t, e) { var r = e.type; if (r !== N) { this.flushing = !1, this.bufferFlushed = !0, this.state === Li && (this.state = vi); var i = this.mediaBuffer || this.media; i && (this.afterBufferFlushed(i, r, Ce), this.tick()) } }, r._handleTransmuxComplete = function (t) { var e, r = "audio", i = this.hls, n = t.remuxResult, a = t.chunkMeta, s = this.getCurrentContext(a); if (s) { var l = s.frag, u = s.part, h = s.level, d = h.details, c = n.audio, f = n.text, g = n.id3, v = n.initSegment; if (!this.fragContextChanged(l) && d) { if (this.state = Ti, this.switchingTrack && c && this.completeAudioSwitch(this.switchingTrack), null != v && v.tracks) { var m = l.initSegment || l; this._bufferInitSegment(h, v.tracks, m, a), i.trigger(S.FRAG_PARSING_INIT_SEGMENT, { frag: m, id: r, tracks: v.tracks }) } if (c) { var p = c.startPTS, y = c.endPTS, E = c.startDTS, T = c.endDTS; u && (u.elementaryStreams[O] = { startPTS: p, endPTS: y, startDTS: E, endDTS: T }), l.setElementaryStreamInfo(O, p, y, E, T), this.bufferFragmentData(c, l, u, a) } if (null != g && null != (e = g.samples) && e.length) { var L = o({ id: r, frag: l, details: d }, g); i.trigger(S.FRAG_PARSING_METADATA, L) } if (f) { var A = o({ id: r, frag: l, details: d }, f); i.trigger(S.FRAG_PARSING_USERDATA, A) } } else this.fragmentTracker.removeFragment(l) } else this.resetWhenMissingContext(a) }, r._bufferInitSegment = function (t, e, r, i) { if (this.state === Ti) { e.video && delete e.video; var n = e.audio; if (n) { n.id = "audio"; var a = t.audioCodec; this.log("Init audio buffer, container:" + n.container + ", codecs[level/parsed]=[" + a + "/" + n.codec + "]"), a && 1 === a.split(",").length && (n.levelCodec = a), this.hls.trigger(S.BUFFER_CODECS, e); var s = n.initSegment; if (null != s && s.byteLength) { var o = { type: "audio", frag: r, part: null, chunkMeta: i, parent: r.type, data: s }; this.hls.trigger(S.BUFFER_APPENDING, o) } this.tickImmediate() } } }, r.loadFragment = function (e, r, i) { var n, a = this.fragmentTracker.getState(e); if (this.fragCurrent = e, this.switchingTrack || a === Vr || a === Wr) if ("initSegment" === e.sn) this._loadInitSegment(e, r); else if (null != (n = r.details) && n.live && !this.initPTS[e.cc]) { this.log("Waiting for video PTS in continuity counter " + e.cc + " of live stream before loading audio fragment " + e.sn + " of level " + this.trackId), this.state = Ri; var s = this.mainDetails; s && s.fragments[0].start !== r.details.fragments[0].start && ii(r.details, s) } else this.startFragRequested = !0, t.prototype.loadFragment.call(this, e, r, i); else this.clearTrackerIfNeeded(e) }, r.flushAudioIfNeeded = function (e) { var r = this.media, i = this.bufferedTrack, n = null == i ? void 0 : i.attrs, a = e.attrs; r && n && (n.CHANNELS !== a.CHANNELS || i.name !== e.name || i.lang !== e.lang) && (this.log("Switching audio track : flushing all audio"), t.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio"), this.bufferedTrack = null) }, r.completeAudioSwitch = function (t) { var e = this.hls; this.flushAudioIfNeeded(t), this.bufferedTrack = t, this.switchingTrack = null, e.trigger(S.AUDIO_TRACK_SWITCHED, i({}, t)) }, e }(bi), jn = function (t) { function e(e) { var r; return (r = t.call(this, e, "[audio-track-controller]") || this).tracks = [], r.groupIds = null, r.tracksInGroup = [], r.trackId = -1, r.currentTrack = null, r.selectDefaultTrack = !0, r.registerListeners(), r } l(e, t); var r = e.prototype; return r.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.on(S.ERROR, this.onError, this) }, r.unregisterListeners = function () { var t = this.hls; t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.off(S.ERROR, this.onError, this) }, r.destroy = function () { this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, this.currentTrack = null, t.prototype.destroy.call(this) }, r.onManifestLoading = function () { this.tracks = [], this.tracksInGroup = [], this.groupIds = null, this.currentTrack = null, this.trackId = -1, this.selectDefaultTrack = !0 }, r.onManifestParsed = function (t, e) { this.tracks = e.audioTracks || [] }, r.onAudioTrackLoaded = function (t, e) { var r = e.id, i = e.groupId, n = e.details, a = this.tracksInGroup[r]; if (a && a.groupId === i) { var s = a.details; a.details = e.details, this.log("Audio track " + r + ' "' + a.name + '" lang:' + a.lang + " group:" + i + " loaded [" + n.startSN + "-" + n.endSN + "]"), r === this.trackId && this.playlistLoaded(r, e, s) } else this.warn("Audio track with id:" + r + " and group:" + i + " not found in active group " + (null == a ? void 0 : a.groupId)) }, r.onLevelLoading = function (t, e) { this.switchLevel(e.level) }, r.onLevelSwitching = function (t, e) { this.switchLevel(e.level) }, r.switchLevel = function (t) { var e = this.hls.levels[t]; if (e) { var r = e.audioGroups || null, i = this.groupIds, n = this.currentTrack; if (!r || (null == i ? void 0 : i.length) !== (null == r ? void 0 : r.length) || null != r && r.some((function (t) { return -1 === (null == i ? void 0 : i.indexOf(t)) }))) { this.groupIds = r, this.trackId = -1, this.currentTrack = null; var a = this.tracks.filter((function (t) { return !r || -1 !== r.indexOf(t.groupId) })); if (a.length) this.selectDefaultTrack && !a.some((function (t) { return t.default })) && (this.selectDefaultTrack = !1), a.forEach((function (t, e) { t.id = e })); else if (!n && !this.tracksInGroup.length) return; this.tracksInGroup = a; var s = this.hls.config.audioPreference; if (!n && s) { var o = Nr(s, a, Br); if (o > -1) n = a[o]; else { var l = Nr(s, this.tracks); n = this.tracks[l] } } var u = this.findTrackId(n); -1 === u && n && (u = this.findTrackId(null)); var h = { audioTracks: a }; this.log("Updating audio tracks, " + a.length + " track(s) found in group(s): " + (null == r ? void 0 : r.join(","))), this.hls.trigger(S.AUDIO_TRACKS_UPDATED, h); var d = this.trackId; if (-1 !== u && -1 === d) this.setAudioTrack(u); else if (a.length && -1 === d) { var c, f = new Error("No audio track selected for current audio group-ID(s): " + (null == (c = this.groupIds) ? void 0 : c.join(",")) + " track count: " + a.length); this.warn(f.message), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.AUDIO_TRACK_LOAD_ERROR, fatal: !0, error: f }) } } else this.shouldReloadPlaylist(n) && this.setAudioTrack(this.trackId) } }, r.onError = function (t, e) { !e.fatal && e.context && (e.context.type !== De || e.context.id !== this.trackId || this.groupIds && -1 === this.groupIds.indexOf(e.context.groupId) || (this.requestScheduled = -1, this.checkRetry(e))) }, r.setAudioOption = function (t) { var e = this.hls; if (e.config.audioPreference = t, t) { var r = this.allAudioTracks; if (this.selectDefaultTrack = !1, r.length) { var i = this.currentTrack; if (i && Ur(t, i, Br)) return i; var n = Nr(t, this.tracksInGroup, Br); if (n > -1) { var a = this.tracksInGroup[n]; return this.setAudioTrack(n), a } if (i) { var s = e.loadLevel; -1 === s && (s = e.firstAutoLevel); var o = function (t, e, r, i, n) { var a = e[i], s = e.reduce((function (t, e, r) { var i = e.uri; return (t[i] || (t[i] = [])).push(r), t }), {})[a.uri]; s.length > 1 && (i = Math.max.apply(Math, s)); var o = a.videoRange, l = a.frameRate, u = a.codecSet.substring(0, 4), h = Gr(e, i, (function (e) { if (e.videoRange !== o || e.frameRate !== l || e.codecSet.substring(0, 4) !== u) return !1; var i = e.audioGroups, a = r.filter((function (t) { return !i || -1 !== i.indexOf(t.groupId) })); return Nr(t, a, n) > -1 })); return h > -1 ? h : Gr(e, i, (function (e) { var i = e.audioGroups, a = r.filter((function (t) { return !i || -1 !== i.indexOf(t.groupId) })); return Nr(t, a, n) > -1 })) }(t, e.levels, r, s, Br); if (-1 === o) return null; e.nextLoadLevel = o } if (t.channels || t.audioCodec) { var l = Nr(t, r); if (l > -1) return r[l] } } } return null }, r.setAudioTrack = function (t) { var e = this.tracksInGroup; if (t < 0 || t >= e.length) this.warn("Invalid audio track id: " + t); else { this.clearTimer(), this.selectDefaultTrack = !1; var r = this.currentTrack, n = e[t], a = n.details && !n.details.live; if (!(t === this.trackId && n === r && a || (this.log("Switching to audio-track " + t + ' "' + n.name + '" lang:' + n.lang + " group:" + n.groupId + " channels:" + n.channels), this.trackId = t, this.currentTrack = n, this.hls.trigger(S.AUDIO_TRACK_SWITCHING, i({}, n)), a))) { var s = this.switchParams(n.url, null == r ? void 0 : r.details, n.details); this.loadPlaylist(s) } } }, r.findTrackId = function (t) { for (var e = this.tracksInGroup, r = 0; r < e.length; r++) { var i = e[r]; if ((!this.selectDefaultTrack || i.default) && (!t || Ur(t, i, Br))) return r } if (t) { for (var n = t.name, a = t.lang, s = t.assocLang, o = t.characteristics, l = t.audioCodec, u = t.channels, h = 0; h < e.length; h++)if (Ur({ name: n, lang: a, assocLang: s, characteristics: o, audioCodec: l, channels: u }, e[h], Br)) return h; for (var d = 0; d < e.length; d++) { var c = e[d]; if (Vn(t.attrs, c.attrs, ["LANGUAGE", "ASSOC-LANGUAGE", "CHARACTERISTICS"])) return d } for (var f = 0; f < e.length; f++) { var g = e[f]; if (Vn(t.attrs, g.attrs, ["LANGUAGE"])) return f } } return -1 }, r.loadPlaylist = function (e) { var r = this.currentTrack; if (this.shouldLoadPlaylist(r) && r) { t.prototype.loadPlaylist.call(this); var i = r.id, n = r.groupId, a = r.url; if (e) try { a = e.addDirectives(a) } catch (t) { this.warn("Could not construct new URL with HLS Delivery Directives: " + t) } this.log("loading audio-track playlist " + i + ' "' + r.name + '" lang:' + r.lang + " group:" + n), this.clearTimer(), this.hls.trigger(S.AUDIO_TRACK_LOADING, { url: a, id: i, groupId: n, deliveryDirectives: e || null }) } }, s(e, [{ key: "allAudioTracks", get: function () { return this.tracks } }, { key: "audioTracks", get: function () { return this.tracksInGroup } }, { key: "audioTrack", get: function () { return this.trackId }, set: function (t) { this.selectDefaultTrack = !1, this.setAudioTrack(t) } }]), e }(wr), qn = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e, r, i, "[subtitle-stream-controller]", _e) || this).currentTrackId = -1, n.tracksBuffered = [], n.mainDetails = null, n._registerListeners(), n } l(e, t); var r = e.prototype; return r.onHandlerDestroying = function () { this._unregisterListeners(), t.prototype.onHandlerDestroying.call(this), this.mainDetails = null }, r._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.ERROR, this.onError, this), t.on(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.on(S.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), t.on(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.on(S.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.ERROR, this.onError, this), t.off(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.off(S.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), t.off(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.off(S.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r.startLoad = function (t) { this.stopLoad(), this.state = vi, this.setInterval(500), this.nextLoadPosition = this.startPosition = this.lastCurrentTime = t, this.tick() }, r.onManifestLoading = function () { this.mainDetails = null, this.fragmentTracker.removeAllFragments() }, r.onMediaDetaching = function () { this.tracksBuffered = [], t.prototype.onMediaDetaching.call(this) }, r.onLevelLoaded = function (t, e) { this.mainDetails = e.details }, r.onSubtitleFragProcessed = function (t, e) { var r = e.frag, i = e.success; if (this.fragPrevious = r, this.state = vi, i) { var n = this.tracksBuffered[this.currentTrackId]; if (n) { for (var a, s = r.start, o = 0; o < n.length; o++)if (s >= n[o].start && s <= n[o].end) { a = n[o]; break } var l = r.start + r.duration; a ? a.end = l : (a = { start: s, end: l }, n.push(a)), this.fragmentTracker.fragBuffered(r), this.fragBufferedComplete(r, null) } } }, r.onBufferFlushing = function (t, e) { var r = e.startOffset, i = e.endOffset; if (0 === r && i !== Number.POSITIVE_INFINITY) { var n = i - 1; if (n <= 0) return; e.endOffsetSubtitles = Math.max(0, n), this.tracksBuffered.forEach((function (t) { for (var e = 0; e < t.length;)if (t[e].end <= n) t.shift(); else { if (!(t[e].start < n)) break; t[e].start = n, e++ } })), this.fragmentTracker.removeFragmentsInRange(r, n, _e) } }, r.onFragBuffered = function (t, e) { var r; this.loadedmetadata || e.frag.type !== we || null != (r = this.media) && r.buffered.length && (this.loadedmetadata = !0) }, r.onError = function (t, e) { var r = e.frag; (null == r ? void 0 : r.type) === _e && (this.fragCurrent && this.fragCurrent.abortRequests(), this.state !== gi && (this.state = vi)) }, r.onSubtitleTracksUpdated = function (t, e) { var r = this, i = e.subtitleTracks; this.levels && Hn(this.levels, i) ? this.levels = i.map((function (t) { return new rr(t) })) : (this.tracksBuffered = [], this.levels = i.map((function (t) { var e = new rr(t); return r.tracksBuffered[e.id] = [], e })), this.fragmentTracker.removeFragmentsInRange(0, Number.POSITIVE_INFINITY, _e), this.fragPrevious = null, this.mediaBuffer = null) }, r.onSubtitleTrackSwitch = function (t, e) { var r; if (this.currentTrackId = e.id, null != (r = this.levels) && r.length && -1 !== this.currentTrackId) { var i = this.levels[this.currentTrackId]; null != i && i.details ? this.mediaBuffer = this.mediaBufferTimeRanges : this.mediaBuffer = null, i && this.setInterval(500) } else this.clearInterval() }, r.onSubtitleTrackLoaded = function (t, e) { var r, i = this.currentTrackId, n = this.levels, a = e.details, s = e.id; if (n) { var o = n[i]; if (!(s >= n.length || s !== i) && o) { this.log("Subtitle track " + s + " loaded [" + a.startSN + "," + a.endSN + "]" + (a.lastPartSn ? "[part-" + a.lastPartSn + "-" + a.lastPartIndex + "]" : "") + ",duration:" + a.totalduration), this.mediaBuffer = this.mediaBufferTimeRanges; var l = 0; if (a.live || null != (r = o.details) && r.live) { var u = this.mainDetails; if (a.deltaUpdateFailed || !u) return; var h, d = u.fragments[0]; o.details ? 0 === (l = this.alignPlaylists(a, o.details, null == (h = this.levelLastLoaded) ? void 0 : h.details)) && d && lr(a, l = d.start) : a.hasProgramDateTime && u.hasProgramDateTime ? (ii(a, u), l = a.fragments[0].start) : d && lr(a, l = d.start) } o.details = a, this.levelLastLoaded = o, this.startFragRequested || !this.mainDetails && a.live || this.setStartPosition(this.mainDetails || a, l), this.tick(), a.live && !this.fragCurrent && this.media && this.state === vi && (yr(null, a.fragments, this.media.currentTime, 0) || (this.warn("Subtitle playlist not aligned with playback"), o.details = void 0)) } } else this.warn("Subtitle tracks were reset while loading level " + s) }, r._handleFragmentLoadComplete = function (t) { var e = this, r = t.frag, i = t.payload, n = r.decryptdata, a = this.hls; if (!this.fragContextChanged(r) && i && i.byteLength > 0 && null != n && n.key && n.iv && "AES-128" === n.method) { var s = performance.now(); this.decrypter.decrypt(new Uint8Array(i), n.key.buffer, n.iv.buffer).catch((function (t) { throw a.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_DECRYPT_ERROR, fatal: !1, error: t, reason: t.message, frag: r }), t })).then((function (t) { var e = performance.now(); a.trigger(S.FRAG_DECRYPTED, { frag: r, payload: t, stats: { tstart: s, tdecrypt: e } }) })).catch((function (t) { e.warn(t.name + ": " + t.message), e.state = vi })) } }, r.doTick = function () { if (this.media) { if (this.state === vi) { var t = this.currentTrackId, e = this.levels, r = null == e ? void 0 : e[t]; if (!r || !e.length || !r.details) return; var i = this.config, n = this.getLoadPosition(), a = Jr.bufferedInfo(this.tracksBuffered[this.currentTrackId] || [], n, i.maxBufferHole), s = a.end, o = a.len, l = this.getFwdBufferInfo(this.media, we), u = r.details; if (o > this.getMaxBufferLength(null == l ? void 0 : l.len) + u.levelTargetDuration) return; var h = u.fragments, d = h.length, c = u.edge, f = null, g = this.fragPrevious; if (s < c) { var v = i.maxFragLookUpTolerance, m = s > c - v ? 0 : v; !(f = yr(g, h, Math.max(h[0].start, s), m)) && g && g.start < h[0].start && (f = h[0]) } else f = h[d - 1]; if (!f) return; if ("initSegment" !== (f = this.mapToInitFragWhenRequired(f)).sn) { var p = h[f.sn - u.startSN - 1]; p && p.cc === f.cc && this.fragmentTracker.getState(p) === Vr && (f = p) } this.fragmentTracker.getState(f) === Vr && this.loadFragment(f, r, s) } } else this.state = vi }, r.getMaxBufferLength = function (e) { var r = t.prototype.getMaxBufferLength.call(this); return e ? Math.max(r, e) : r }, r.loadFragment = function (e, r, i) { this.fragCurrent = e, "initSegment" === e.sn ? this._loadInitSegment(e, r) : (this.startFragRequested = !0, t.prototype.loadFragment.call(this, e, r, i)) }, s(e, [{ key: "mediaBufferTimeRanges", get: function () { return new Xn(this.tracksBuffered[this.currentTrackId] || []) } }]), e }(bi), Xn = function (t) { this.buffered = void 0; var e = function (e, r, i) { if ((r >>>= 0) > i - 1) throw new DOMException("Failed to execute '" + e + "' on 'TimeRanges': The index provided (" + r + ") is greater than the maximum bound (" + i + ")"); return t[r][e] }; this.buffered = { get length() { return t.length }, end: function (r) { return e("end", r, t.length) }, start: function (r) { return e("start", r, t.length) } } }, zn = function (t) { function e(e) { var r; return (r = t.call(this, e, "[subtitle-track-controller]") || this).media = null, r.tracks = [], r.groupIds = null, r.tracksInGroup = [], r.trackId = -1, r.currentTrack = null, r.selectDefaultTrack = !0, r.queuedDefaultTrack = -1, r.asyncPollTrackChange = function () { return r.pollTrackChange(0) }, r.useTextTrackPolling = !1, r.subtitlePollingInterval = -1, r._subtitleDisplay = !0, r.onTextTracksChanged = function () { if (r.useTextTrackPolling || self.clearInterval(r.subtitlePollingInterval), r.media && r.hls.config.renderTextTracksNatively) { for (var t = null, e = Be(r.media.textTracks), i = 0; i < e.length; i++)if ("hidden" === e[i].mode) t = e[i]; else if ("showing" === e[i].mode) { t = e[i]; break } var n = r.findTrackForTextTrack(t); r.subtitleTrack !== n && r.setSubtitleTrack(n) } }, r.registerListeners(), r } l(e, t); var r = e.prototype; return r.destroy = function () { this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, this.currentTrack = null, this.onTextTracksChanged = this.asyncPollTrackChange = null, t.prototype.destroy.call(this) }, r.registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.on(S.ERROR, this.onError, this) }, r.unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.off(S.ERROR, this.onError, this) }, r.onMediaAttached = function (t, e) { this.media = e.media, this.media && (this.queuedDefaultTrack > -1 && (this.subtitleTrack = this.queuedDefaultTrack, this.queuedDefaultTrack = -1), this.useTextTrackPolling = !(this.media.textTracks && "onchange" in this.media.textTracks), this.useTextTrackPolling ? this.pollTrackChange(500) : this.media.textTracks.addEventListener("change", this.asyncPollTrackChange)) }, r.pollTrackChange = function (t) { self.clearInterval(this.subtitlePollingInterval), this.subtitlePollingInterval = self.setInterval(this.onTextTracksChanged, t) }, r.onMediaDetaching = function () { this.media && (self.clearInterval(this.subtitlePollingInterval), this.useTextTrackPolling || this.media.textTracks.removeEventListener("change", this.asyncPollTrackChange), this.trackId > -1 && (this.queuedDefaultTrack = this.trackId), Be(this.media.textTracks).forEach((function (t) { Ne(t) })), this.subtitleTrack = -1, this.media = null) }, r.onManifestLoading = function () { this.tracks = [], this.groupIds = null, this.tracksInGroup = [], this.trackId = -1, this.currentTrack = null, this.selectDefaultTrack = !0 }, r.onManifestParsed = function (t, e) { this.tracks = e.subtitleTracks }, r.onSubtitleTrackLoaded = function (t, e) { var r = e.id, i = e.groupId, n = e.details, a = this.tracksInGroup[r]; if (a && a.groupId === i) { var s = a.details; a.details = e.details, this.log("Subtitle track " + r + ' "' + a.name + '" lang:' + a.lang + " group:" + i + " loaded [" + n.startSN + "-" + n.endSN + "]"), r === this.trackId && this.playlistLoaded(r, e, s) } else this.warn("Subtitle track with id:" + r + " and group:" + i + " not found in active group " + (null == a ? void 0 : a.groupId)) }, r.onLevelLoading = function (t, e) { this.switchLevel(e.level) }, r.onLevelSwitching = function (t, e) { this.switchLevel(e.level) }, r.switchLevel = function (t) { var e = this.hls.levels[t]; if (e) { var r = e.subtitleGroups || null, i = this.groupIds, n = this.currentTrack; if (!r || (null == i ? void 0 : i.length) !== (null == r ? void 0 : r.length) || null != r && r.some((function (t) { return -1 === (null == i ? void 0 : i.indexOf(t)) }))) { this.groupIds = r, this.trackId = -1, this.currentTrack = null; var a = this.tracks.filter((function (t) { return !r || -1 !== r.indexOf(t.groupId) })); if (a.length) this.selectDefaultTrack && !a.some((function (t) { return t.default })) && (this.selectDefaultTrack = !1), a.forEach((function (t, e) { t.id = e })); else if (!n && !this.tracksInGroup.length) return; this.tracksInGroup = a; var s = this.hls.config.subtitlePreference; if (!n && s) { this.selectDefaultTrack = !1; var o = Nr(s, a); if (o > -1) n = a[o]; else { var l = Nr(s, this.tracks); n = this.tracks[l] } } var u = this.findTrackId(n); -1 === u && n && (u = this.findTrackId(null)); var h = { subtitleTracks: a }; this.log("Updating subtitle tracks, " + a.length + ' track(s) found in "' + (null == r ? void 0 : r.join(",")) + '" group-id'), this.hls.trigger(S.SUBTITLE_TRACKS_UPDATED, h), -1 !== u && -1 === this.trackId && this.setSubtitleTrack(u) } else this.shouldReloadPlaylist(n) && this.setSubtitleTrack(this.trackId) } }, r.findTrackId = function (t) { for (var e = this.tracksInGroup, r = this.selectDefaultTrack, i = 0; i < e.length; i++) { var n = e[i]; if ((!r || n.default) && (r || t) && (!t || Ur(n, t))) return i } if (t) { for (var a = 0; a < e.length; a++) { var s = e[a]; if (Vn(t.attrs, s.attrs, ["LANGUAGE", "ASSOC-LANGUAGE", "CHARACTERISTICS"])) return a } for (var o = 0; o < e.length; o++) { var l = e[o]; if (Vn(t.attrs, l.attrs, ["LANGUAGE"])) return o } } return -1 }, r.findTrackForTextTrack = function (t) { if (t) for (var e = this.tracksInGroup, r = 0; r < e.length; r++)if (Yn(e[r], t)) return r; return -1 }, r.onError = function (t, e) { !e.fatal && e.context && (e.context.type !== Ie || e.context.id !== this.trackId || this.groupIds && -1 === this.groupIds.indexOf(e.context.groupId) || this.checkRetry(e)) }, r.setSubtitleOption = function (t) { if (this.hls.config.subtitlePreference = t, t) { var e = this.allSubtitleTracks; if (this.selectDefaultTrack = !1, e.length) { var r = this.currentTrack; if (r && Ur(t, r)) return r; var i = Nr(t, this.tracksInGroup); if (i > -1) { var n = this.tracksInGroup[i]; return this.setSubtitleTrack(i), n } if (r) return null; var a = Nr(t, e); if (a > -1) return e[a] } } return null }, r.loadPlaylist = function (e) { t.prototype.loadPlaylist.call(this); var r = this.currentTrack; if (this.shouldLoadPlaylist(r) && r) { var i = r.id, n = r.groupId, a = r.url; if (e) try { a = e.addDirectives(a) } catch (t) { this.warn("Could not construct new URL with HLS Delivery Directives: " + t) } this.log("Loading subtitle playlist for id " + i), this.hls.trigger(S.SUBTITLE_TRACK_LOADING, { url: a, id: i, groupId: n, deliveryDirectives: e || null }) } }, r.toggleTrackModes = function () { var t = this.media; if (t) { var e, r = Be(t.textTracks), i = this.currentTrack; if (i && ((e = r.filter((function (t) { return Yn(i, t) }))[0]) || this.warn('Unable to find subtitle TextTrack with name "' + i.name + '" and language "' + i.lang + '"')), [].slice.call(r).forEach((function (t) { "disabled" !== t.mode && t !== e && (t.mode = "disabled") })), e) { var n = this.subtitleDisplay ? "showing" : "hidden"; e.mode !== n && (e.mode = n) } } }, r.setSubtitleTrack = function (t) { var e = this.tracksInGroup; if (this.media) if (t < -1 || t >= e.length || !y(t)) this.warn("Invalid subtitle track id: " + t); else { this.clearTimer(), this.selectDefaultTrack = !1; var r = this.currentTrack, i = e[t] || null; if (this.trackId = t, this.currentTrack = i, this.toggleTrackModes(), i) { var n = !!i.details && !i.details.live; if (t !== this.trackId || i !== r || !n) { this.log("Switching to subtitle-track " + t + (i ? ' "' + i.name + '" lang:' + i.lang + " group:" + i.groupId : "")); var a = i.id, s = i.groupId, o = void 0 === s ? "" : s, l = i.name, u = i.type, h = i.url; this.hls.trigger(S.SUBTITLE_TRACK_SWITCH, { id: a, groupId: o, name: l, type: u, url: h }); var d = this.switchParams(i.url, null == r ? void 0 : r.details, i.details); this.loadPlaylist(d) } } else this.hls.trigger(S.SUBTITLE_TRACK_SWITCH, { id: t }) } else this.queuedDefaultTrack = t }, s(e, [{ key: "subtitleDisplay", get: function () { return this._subtitleDisplay }, set: function (t) { this._subtitleDisplay = t, this.trackId > -1 && this.toggleTrackModes() } }, { key: "allSubtitleTracks", get: function () { return this.tracks } }, { key: "subtitleTracks", get: function () { return this.tracksInGroup } }, { key: "subtitleTrack", get: function () { return this.trackId }, set: function (t) { this.selectDefaultTrack = !1, this.setSubtitleTrack(t) } }]), e }(wr), Qn = function () { function t(t) { this.buffers = void 0, this.queues = { video: [], audio: [], audiovideo: [] }, this.buffers = t } var e = t.prototype; return e.append = function (t, e, r) { var i = this.queues[e]; i.push(t), 1 !== i.length || r || this.executeNext(e) }, e.insertAbort = function (t, e) { this.queues[e].unshift(t), this.executeNext(e) }, e.appendBlocker = function (t) { var e, r = new Promise((function (t) { e = t })), i = { execute: e, onStart: function () { }, onComplete: function () { }, onError: function () { } }; return this.append(i, t), r }, e.executeNext = function (t) { var e = this.queues[t]; if (e.length) { var r = e[0]; try { r.execute() } catch (e) { w.warn('[buffer-operation-queue]: Exception executing "' + t + '" SourceBuffer operation: ' + e), r.onError(e); var i = this.buffers[t]; null != i && i.updating || this.shiftAndExecuteNext(t) } } }, e.shiftAndExecuteNext = function (t) { this.queues[t].shift(), this.executeNext(t) }, e.current = function (t) { return this.queues[t][0] }, t }(), Jn = /(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/, $n = function () { function t(t) { var e = this; this.details = null, this._objectUrl = null, this.operationQueue = void 0, this.listeners = void 0, this.hls = void 0, this.bufferCodecEventsExpected = 0, this._bufferCodecEventsTotal = 0, this.media = null, this.mediaSource = null, this.lastMpegAudioChunk = null, this.appendSource = void 0, this.appendErrors = { audio: 0, video: 0, audiovideo: 0 }, this.tracks = {}, this.pendingTracks = {}, this.sourceBuffer = void 0, this.log = void 0, this.warn = void 0, this.error = void 0, this._onEndStreaming = function (t) { e.hls && e.hls.pauseBuffering() }, this._onStartStreaming = function (t) { e.hls && e.hls.resumeBuffering() }, this._onMediaSourceOpen = function () { var t = e.media, r = e.mediaSource; e.log("Media source opened"), t && (t.removeEventListener("emptied", e._onMediaEmptied), e.updateMediaElementDuration(), e.hls.trigger(S.MEDIA_ATTACHED, { media: t, mediaSource: r })), r && r.removeEventListener("sourceopen", e._onMediaSourceOpen), e.checkPendingTracks() }, this._onMediaSourceClose = function () { e.log("Media source closed") }, this._onMediaSourceEnded = function () { e.log("Media source ended") }, this._onMediaEmptied = function () { var t = e.mediaSrc, r = e._objectUrl; t !== r && w.error("Media element src was set while attaching MediaSource (" + r + " > " + t + ")") }, this.hls = t; var r, i = "[buffer-controller]"; this.appendSource = (r = ee(t.config.preferManagedMediaSource), "undefined" != typeof self && r === self.ManagedMediaSource), this.log = w.log.bind(w, i), this.warn = w.warn.bind(w, i), this.error = w.error.bind(w, i), this._initSourceBuffer(), this.registerListeners() } var e = t.prototype; return e.hasSourceTypes = function () { return this.getSourceBufferTypes().length > 0 || Object.keys(this.pendingTracks).length > 0 }, e.destroy = function () { this.unregisterListeners(), this.details = null, this.lastMpegAudioChunk = null, this.hls = null }, e.registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.BUFFER_RESET, this.onBufferReset, this), t.on(S.BUFFER_APPENDING, this.onBufferAppending, this), t.on(S.BUFFER_CODECS, this.onBufferCodecs, this), t.on(S.BUFFER_EOS, this.onBufferEos, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this), t.on(S.FRAG_PARSED, this.onFragParsed, this), t.on(S.FRAG_CHANGED, this.onFragChanged, this) }, e.unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.BUFFER_RESET, this.onBufferReset, this), t.off(S.BUFFER_APPENDING, this.onBufferAppending, this), t.off(S.BUFFER_CODECS, this.onBufferCodecs, this), t.off(S.BUFFER_EOS, this.onBufferEos, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this), t.off(S.FRAG_PARSED, this.onFragParsed, this), t.off(S.FRAG_CHANGED, this.onFragChanged, this) }, e._initSourceBuffer = function () { this.sourceBuffer = {}, this.operationQueue = new Qn(this.sourceBuffer), this.listeners = { audio: [], video: [], audiovideo: [] }, this.appendErrors = { audio: 0, video: 0, audiovideo: 0 }, this.lastMpegAudioChunk = null }, e.onManifestLoading = function () { this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = 0, this.details = null }, e.onManifestParsed = function (t, e) { var r = 2; (e.audio && !e.video || !e.altAudio) && (r = 1), this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = r, this.log(this.bufferCodecEventsExpected + " bufferCodec event(s) expected") }, e.onMediaAttaching = function (t, e) { var r = this.media = e.media, i = ee(this.appendSource); if (r && i) { var n, a = this.mediaSource = new i; this.log("created media source: " + (null == (n = a.constructor) ? void 0 : n.name)), a.addEventListener("sourceopen", this._onMediaSourceOpen), a.addEventListener("sourceended", this._onMediaSourceEnded), a.addEventListener("sourceclose", this._onMediaSourceClose), this.appendSource && (a.addEventListener("startstreaming", this._onStartStreaming), a.addEventListener("endstreaming", this._onEndStreaming)); var s = this._objectUrl = self.URL.createObjectURL(a); if (this.appendSource) try { r.removeAttribute("src"); var o = self.ManagedMediaSource; r.disableRemotePlayback = r.disableRemotePlayback || o && a instanceof o, Zn(r), function (t, e) { var r = self.document.createElement("source"); r.type = "video/mp4", r.src = e, t.appendChild(r) }(r, s), r.load() } catch (t) { r.src = s } else r.src = s; r.addEventListener("emptied", this._onMediaEmptied) } }, e.onMediaDetaching = function () { var t = this.media, e = this.mediaSource, r = this._objectUrl; if (e) { if (this.log("media source detaching"), "open" === e.readyState) try { e.endOfStream() } catch (t) { this.warn("onMediaDetaching: " + t.message + " while calling endOfStream") } this.onBufferReset(), e.removeEventListener("sourceopen", this._onMediaSourceOpen), e.removeEventListener("sourceended", this._onMediaSourceEnded), e.removeEventListener("sourceclose", this._onMediaSourceClose), this.appendSource && (e.removeEventListener("startstreaming", this._onStartStreaming), e.removeEventListener("endstreaming", this._onEndStreaming)), t && (t.removeEventListener("emptied", this._onMediaEmptied), r && self.URL.revokeObjectURL(r), this.mediaSrc === r ? (t.removeAttribute("src"), this.appendSource && Zn(t), t.load()) : this.warn("media|source.src was changed by a third party - skip cleanup")), this.mediaSource = null, this.media = null, this._objectUrl = null, this.bufferCodecEventsExpected = this._bufferCodecEventsTotal, this.pendingTracks = {}, this.tracks = {} } this.hls.trigger(S.MEDIA_DETACHED, void 0) }, e.onBufferReset = function () { var t = this; this.getSourceBufferTypes().forEach((function (e) { t.resetBuffer(e) })), this._initSourceBuffer() }, e.resetBuffer = function (t) { var e = this.sourceBuffer[t]; try { var r; e && (this.removeBufferListeners(t), this.sourceBuffer[t] = void 0, null != (r = this.mediaSource) && r.sourceBuffers.length && this.mediaSource.removeSourceBuffer(e)) } catch (e) { this.warn("onBufferReset " + t, e) } }, e.onBufferCodecs = function (t, e) { var r = this, i = this.getSourceBufferTypes().length, n = Object.keys(e); if (n.forEach((function (t) { if (i) { var n = r.tracks[t]; if (n && "function" == typeof n.buffer.changeType) { var a, s = e[t], o = s.id, l = s.codec, u = s.levelCodec, h = s.container, d = s.metadata, c = de(n.codec, n.levelCodec), f = null == c ? void 0 : c.replace(Jn, "$1"), g = de(l, u), v = null == (a = g) ? void 0 : a.replace(Jn, "$1"); if (g && f !== v) { "audio" === t.slice(0, 5) && (g = he(g, r.appendSource)); var m = h + ";codecs=" + g; r.appendChangeType(t, m), r.log("switching codec " + c + " to " + g), r.tracks[t] = { buffer: n.buffer, codec: l, container: h, levelCodec: u, metadata: d, id: o } } } } else r.pendingTracks[t] = e[t] })), !i) { var a = Math.max(this.bufferCodecEventsExpected - 1, 0); this.bufferCodecEventsExpected !== a && (this.log(a + " bufferCodec event(s) expected " + n.join(",")), this.bufferCodecEventsExpected = a), this.mediaSource && "open" === this.mediaSource.readyState && this.checkPendingTracks() } }, e.appendChangeType = function (t, e) { var r = this, i = this.operationQueue, n = { execute: function () { var n = r.sourceBuffer[t]; n && (r.log("changing " + t + " sourceBuffer type to " + e), n.changeType(e)), i.shiftAndExecuteNext(t) }, onStart: function () { }, onComplete: function () { }, onError: function (e) { r.warn("Failed to change " + t + " SourceBuffer type", e) } }; i.append(n, t, !!this.pendingTracks[t]) }, e.onBufferAppending = function (t, e) { var r = this, i = this.hls, n = this.operationQueue, a = this.tracks, s = e.data, o = e.type, l = e.frag, u = e.part, h = e.chunkMeta, d = h.buffering[o], c = self.performance.now(); d.start = c; var f = l.stats.buffering, g = u ? u.stats.buffering : null; 0 === f.start && (f.start = c), g && 0 === g.start && (g.start = c); var v = a.audio, m = !1; "audio" === o && "audio/mpeg" === (null == v ? void 0 : v.container) && (m = !this.lastMpegAudioChunk || 1 === h.id || this.lastMpegAudioChunk.sn !== h.sn, this.lastMpegAudioChunk = h); var p = l.start, y = { execute: function () { if (d.executeStart = self.performance.now(), m) { var t = r.sourceBuffer[o]; if (t) { var e = p - t.timestampOffset; Math.abs(e) >= .1 && (r.log("Updating audio SourceBuffer timestampOffset to " + p + " (delta: " + e + ") sn: " + l.sn + ")"), t.timestampOffset = p) } } r.appendExecutor(s, o) }, onStart: function () { }, onComplete: function () { var t = self.performance.now(); d.executeEnd = d.end = t, 0 === f.first && (f.first = t), g && 0 === g.first && (g.first = t); var e = r.sourceBuffer, i = {}; for (var n in e) i[n] = Jr.getBuffered(e[n]); r.appendErrors[o] = 0, "audio" === o || "video" === o ? r.appendErrors.audiovideo = 0 : (r.appendErrors.audio = 0, r.appendErrors.video = 0), r.hls.trigger(S.BUFFER_APPENDED, { type: o, frag: l, part: u, chunkMeta: h, parent: l.type, timeRanges: i }) }, onError: function (t) { var e = { type: L.MEDIA_ERROR, parent: l.type, details: A.BUFFER_APPEND_ERROR, sourceBufferName: o, frag: l, part: u, chunkMeta: h, error: t, err: t, fatal: !1 }; if (t.code === DOMException.QUOTA_EXCEEDED_ERR) e.details = A.BUFFER_FULL_ERROR; else { var n = ++r.appendErrors[o]; e.details = A.BUFFER_APPEND_ERROR, r.warn("Failed " + n + "/" + i.config.appendErrorMaxRetry + ' times to append segment in "' + o + '" sourceBuffer'), n >= i.config.appendErrorMaxRetry && (e.fatal = !0) } i.trigger(S.ERROR, e) } }; n.append(y, o, !!this.pendingTracks[o]) }, e.onBufferFlushing = function (t, e) { var r = this, i = this.operationQueue, n = function (t) { return { execute: r.removeExecutor.bind(r, t, e.startOffset, e.endOffset), onStart: function () { }, onComplete: function () { r.hls.trigger(S.BUFFER_FLUSHED, { type: t }) }, onError: function (e) { r.warn("Failed to remove from " + t + " SourceBuffer", e) } } }; e.type ? i.append(n(e.type), e.type) : this.getSourceBufferTypes().forEach((function (t) { i.append(n(t), t) })) }, e.onFragParsed = function (t, e) { var r = this, i = e.frag, n = e.part, a = [], s = n ? n.elementaryStreams : i.elementaryStreams; s[U] ? a.push("audiovideo") : (s[O] && a.push("audio"), s[N] && a.push("video")), 0 === a.length && this.warn("Fragments must have at least one ElementaryStreamType set. type: " + i.type + " level: " + i.level + " sn: " + i.sn), this.blockBuffers((function () { var t = self.performance.now(); i.stats.buffering.end = t, n && (n.stats.buffering.end = t); var e = n ? n.stats : i.stats; r.hls.trigger(S.FRAG_BUFFERED, { frag: i, part: n, stats: e, id: i.type }) }), a) }, e.onFragChanged = function (t, e) { this.trimBuffers() }, e.onBufferEos = function (t, e) { var r = this; this.getSourceBufferTypes().reduce((function (t, i) { var n = r.sourceBuffer[i]; return !n || e.type && e.type !== i || (n.ending = !0, n.ended || (n.ended = !0, r.log(i + " sourceBuffer now EOS"))), t && !(n && !n.ended) }), !0) && (this.log("Queueing mediaSource.endOfStream()"), this.blockBuffers((function () { r.getSourceBufferTypes().forEach((function (t) { var e = r.sourceBuffer[t]; e && (e.ending = !1) })); var t = r.mediaSource; t && "open" === t.readyState ? (r.log("Calling mediaSource.endOfStream()"), t.endOfStream()) : t && r.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: " + t.readyState) }))) }, e.onLevelUpdated = function (t, e) { var r = e.details; r.fragments.length && (this.details = r, this.getSourceBufferTypes().length ? this.blockBuffers(this.updateMediaElementDuration.bind(this)) : this.updateMediaElementDuration()) }, e.trimBuffers = function () { var t = this.hls, e = this.details, r = this.media; if (r && null !== e && this.getSourceBufferTypes().length) { var i = t.config, n = r.currentTime, a = e.levelTargetDuration, s = e.live && null !== i.liveBackBufferLength ? i.liveBackBufferLength : i.backBufferLength; if (y(s) && s > 0) { var o = Math.max(s, a), l = Math.floor(n / a) * a - o; this.flushBackBuffer(n, a, l) } if (y(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) { var u = Math.max(i.maxBufferLength, i.frontBufferFlushThreshold), h = Math.max(u, a), d = Math.floor(n / a) * a + h; this.flushFrontBuffer(n, a, d) } } }, e.flushBackBuffer = function (t, e, r) { var i = this, n = this.details, a = this.sourceBuffer; this.getSourceBufferTypes().forEach((function (s) { var o = a[s]; if (o) { var l = Jr.getBuffered(o); if (l.length > 0 && r > l.start(0)) { if (i.hls.trigger(S.BACK_BUFFER_REACHED, { bufferEnd: r }), null != n && n.live) i.hls.trigger(S.LIVE_BACK_BUFFER_REACHED, { bufferEnd: r }); else if (o.ended && l.end(l.length - 1) - t < 2 * e) return void i.log("Cannot flush " + s + " back buffer while SourceBuffer is in ended state"); i.hls.trigger(S.BUFFER_FLUSHING, { startOffset: 0, endOffset: r, type: s }) } } })) }, e.flushFrontBuffer = function (t, e, r) { var i = this, n = this.sourceBuffer; this.getSourceBufferTypes().forEach((function (a) { var s = n[a]; if (s) { var o = Jr.getBuffered(s), l = o.length; if (l < 2) return; var u = o.start(l - 1), h = o.end(l - 1); if (r > u || t >= u && t <= h) return; if (s.ended && t - h < 2 * e) return void i.log("Cannot flush " + a + " front buffer while SourceBuffer is in ended state"); i.hls.trigger(S.BUFFER_FLUSHING, { startOffset: u, endOffset: 1 / 0, type: a }) } })) }, e.updateMediaElementDuration = function () { if (this.details && this.media && this.mediaSource && "open" === this.mediaSource.readyState) { var t = this.details, e = this.hls, r = this.media, i = this.mediaSource, n = t.fragments[0].start + t.totalduration, a = r.duration, s = y(i.duration) ? i.duration : 0; t.live && e.config.liveDurationInfinity ? (i.duration = 1 / 0, this.updateSeekableRange(t)) : (n > s && n > a || !y(a)) && (this.log("Updating Media Source duration to " + n.toFixed(3)), i.duration = n) } }, e.updateSeekableRange = function (t) { var e = this.mediaSource, r = t.fragments; if (r.length && t.live && null != e && e.setLiveSeekableRange) { var i = Math.max(0, r[0].start), n = Math.max(i, i + t.totalduration); this.log("Media Source duration is set to " + e.duration + ". Setting seekable range to " + i + "-" + n + "."), e.setLiveSeekableRange(i, n) } }, e.checkPendingTracks = function () { var t = this.bufferCodecEventsExpected, e = this.operationQueue, r = this.pendingTracks, i = Object.keys(r).length; if (i && (!t || 2 === i || "audiovideo" in r)) { this.createSourceBuffers(r), this.pendingTracks = {}; var n = this.getSourceBufferTypes(); if (n.length) this.hls.trigger(S.BUFFER_CREATED, { tracks: this.tracks }), n.forEach((function (t) { e.executeNext(t) })); else { var a = new Error("could not create source buffer for media codec(s)"); this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_INCOMPATIBLE_CODECS_ERROR, fatal: !0, error: a, reason: a.message }) } } }, e.createSourceBuffers = function (t) { var e = this, r = this.sourceBuffer, i = this.mediaSource; if (!i) throw Error("createSourceBuffers called when mediaSource was null"); var n = function (n) { if (!r[n]) { var a, s = t[n]; if (!s) throw Error("source buffer exists for track " + n + ", however track does not"); var o = -1 === (null == (a = s.levelCodec) ? void 0 : a.indexOf(",")) ? s.levelCodec : s.codec; o && "audio" === n.slice(0, 5) && (o = he(o, e.appendSource)); var l = s.container + ";codecs=" + o; e.log("creating sourceBuffer(" + l + ")"); try { var u = r[n] = i.addSourceBuffer(l), h = n; e.addBufferListener(h, "updatestart", e._onSBUpdateStart), e.addBufferListener(h, "updateend", e._onSBUpdateEnd), e.addBufferListener(h, "error", e._onSBUpdateError), e.appendSource && e.addBufferListener(h, "bufferedchange", (function (t, r) { var i = r.removedRanges; null != i && i.length && e.hls.trigger(S.BUFFER_FLUSHED, { type: n }) })), e.tracks[n] = { buffer: u, codec: o, container: s.container, levelCodec: s.levelCodec, metadata: s.metadata, id: s.id } } catch (t) { e.error("error while trying to add sourceBuffer: " + t.message), e.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_ADD_CODEC_ERROR, fatal: !1, error: t, sourceBufferName: n, mimeType: l }) } } }; for (var a in t) n(a) }, e._onSBUpdateStart = function (t) { this.operationQueue.current(t).onStart() }, e._onSBUpdateEnd = function (t) { var e; if ("closed" !== (null == (e = this.mediaSource) ? void 0 : e.readyState)) { var r = this.operationQueue; r.current(t).onComplete(), r.shiftAndExecuteNext(t) } else this.resetBuffer(t) }, e._onSBUpdateError = function (t, e) { var r, i = new Error(t + " SourceBuffer error. MediaSource readyState: " + (null == (r = this.mediaSource) ? void 0 : r.readyState)); this.error("" + i, e), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_APPENDING_ERROR, sourceBufferName: t, error: i, fatal: !1 }); var n = this.operationQueue.current(t); n && n.onError(i) }, e.removeExecutor = function (t, e, r) { var i = this.media, n = this.mediaSource, a = this.operationQueue, s = this.sourceBuffer[t]; if (!i || !n || !s) return this.warn("Attempting to remove from the " + t + " SourceBuffer, but it does not exist"), void a.shiftAndExecuteNext(t); var o = y(i.duration) ? i.duration : 1 / 0, l = y(n.duration) ? n.duration : 1 / 0, u = Math.max(0, e), h = Math.min(r, o, l); h > u && (!s.ending || s.ended) ? (s.ended = !1, this.log("Removing [" + u + "," + h + "] from the " + t + " SourceBuffer"), s.remove(u, h)) : a.shiftAndExecuteNext(t) }, e.appendExecutor = function (t, e) { var r = this.sourceBuffer[e]; if (r) r.ended = !1, r.appendBuffer(t); else if (!this.pendingTracks[e]) throw new Error("Attempting to append to the " + e + " SourceBuffer, but it does not exist") }, e.blockBuffers = function (t, e) { var r = this; if (void 0 === e && (e = this.getSourceBufferTypes()), !e.length) return this.log("Blocking operation requested, but no SourceBuffers exist"), void Promise.resolve().then(t); var i = this.operationQueue, n = e.map((function (t) { return i.appendBlocker(t) })); Promise.all(n).then((function () { t(), e.forEach((function (t) { var e = r.sourceBuffer[t]; null != e && e.updating || i.shiftAndExecuteNext(t) })) })) }, e.getSourceBufferTypes = function () { return Object.keys(this.sourceBuffer) }, e.addBufferListener = function (t, e, r) { var i = this.sourceBuffer[t]; if (i) { var n = r.bind(this, t); this.listeners[t].push({ event: e, listener: n }), i.addEventListener(e, n) } }, e.removeBufferListeners = function (t) { var e = this.sourceBuffer[t]; e && this.listeners[t].forEach((function (t) { e.removeEventListener(t.event, t.listener) })) }, s(t, [{ key: "mediaSrc", get: function () { var t, e = (null == (t = this.media) ? void 0 : t.firstChild) || this.media; return null == e ? void 0 : e.src } }]), t }(); function Zn(t) { var e = t.querySelectorAll("source");[].slice.call(e).forEach((function (e) { t.removeChild(e) })) } var ta = { 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 }, ea = function (t) { var e = t; return ta.hasOwnProperty(t) && (e = ta[t]), String.fromCharCode(e) }, ra = 15, ia = 100, na = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 }, aa = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 }, sa = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 }, oa = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 }, la = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"], ua = function () { function t() { this.time = null, this.verboseLevel = 0 } return t.prototype.log = function (t, e) { if (this.verboseLevel >= t) { var r = "function" == typeof e ? e() : e; w.log(this.time + " [" + t + "] " + r) } }, t }(), ha = function (t) { for (var e = [], r = 0; r < t.length; r++)e.push(t[r].toString(16)); return e }, da = function () { function t() { this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1 } var e = t.prototype; return e.reset = function () { this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1 }, e.setStyles = function (t) { for (var e = ["foreground", "underline", "italics", "background", "flash"], r = 0; r < e.length; r++) { var i = e[r]; t.hasOwnProperty(i) && (this[i] = t[i]) } }, e.isDefault = function () { return "white" === this.foreground && !this.underline && !this.italics && "black" === this.background && !this.flash }, e.equals = function (t) { return this.foreground === t.foreground && this.underline === t.underline && this.italics === t.italics && this.background === t.background && this.flash === t.flash }, e.copy = function (t) { this.foreground = t.foreground, this.underline = t.underline, this.italics = t.italics, this.background = t.background, this.flash = t.flash }, e.toString = function () { return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash }, t }(), ca = function () { function t() { this.uchar = " ", this.penState = new da } var e = t.prototype; return e.reset = function () { this.uchar = " ", this.penState.reset() }, e.setChar = function (t, e) { this.uchar = t, this.penState.copy(e) }, e.setPenState = function (t) { this.penState.copy(t) }, e.equals = function (t) { return this.uchar === t.uchar && this.penState.equals(t.penState) }, e.copy = function (t) { this.uchar = t.uchar, this.penState.copy(t.penState) }, e.isEmpty = function () { return " " === this.uchar && this.penState.isDefault() }, t }(), fa = function () { function t(t) { this.chars = [], this.pos = 0, this.currPenState = new da, this.cueStartTime = null, this.logger = void 0; for (var e = 0; e < ia; e++)this.chars.push(new ca); this.logger = t } var e = t.prototype; return e.equals = function (t) { for (var e = 0; e < ia; e++)if (!this.chars[e].equals(t.chars[e])) return !1; return !0 }, e.copy = function (t) { for (var e = 0; e < ia; e++)this.chars[e].copy(t.chars[e]) }, e.isEmpty = function () { for (var t = !0, e = 0; e < ia; e++)if (!this.chars[e].isEmpty()) { t = !1; break } return t }, e.setCursor = function (t) { this.pos !== t && (this.pos = t), this.pos < 0 ? (this.logger.log(3, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > ia && (this.logger.log(3, "Too large cursor position " + this.pos), this.pos = ia) }, e.moveCursor = function (t) { var e = this.pos + t; if (t > 1) for (var r = this.pos + 1; r < e + 1; r++)this.chars[r].setPenState(this.currPenState); this.setCursor(e) }, e.backSpace = function () { this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState) }, e.insertChar = function (t) { var e = this; t >= 144 && this.backSpace(); var r = ea(t); this.pos >= ia ? this.logger.log(0, (function () { return "Cannot insert " + t.toString(16) + " (" + r + ") at position " + e.pos + ". Skipping it!" })) : (this.chars[this.pos].setChar(r, this.currPenState), this.moveCursor(1)) }, e.clearFromPos = function (t) { var e; for (e = t; e < ia; e++)this.chars[e].reset() }, e.clear = function () { this.clearFromPos(0), this.pos = 0, this.currPenState.reset() }, e.clearToEndOfRow = function () { this.clearFromPos(this.pos) }, e.getTextString = function () { for (var t = [], e = !0, r = 0; r < ia; r++) { var i = this.chars[r].uchar; " " !== i && (e = !1), t.push(i) } return e ? "" : t.join("") }, e.setPenStyles = function (t) { this.currPenState.setStyles(t), this.chars[this.pos].setPenState(this.currPenState) }, t }(), ga = function () { function t(t) { this.rows = [], this.currRow = 14, this.nrRollUpRows = null, this.lastOutputScreen = null, this.logger = void 0; for (var e = 0; e < ra; e++)this.rows.push(new fa(t)); this.logger = t } var e = t.prototype; return e.reset = function () { for (var t = 0; t < ra; t++)this.rows[t].clear(); this.currRow = 14 }, e.equals = function (t) { for (var e = !0, r = 0; r < ra; r++)if (!this.rows[r].equals(t.rows[r])) { e = !1; break } return e }, e.copy = function (t) { for (var e = 0; e < ra; e++)this.rows[e].copy(t.rows[e]) }, e.isEmpty = function () { for (var t = !0, e = 0; e < ra; e++)if (!this.rows[e].isEmpty()) { t = !1; break } return t }, e.backSpace = function () { this.rows[this.currRow].backSpace() }, e.clearToEndOfRow = function () { this.rows[this.currRow].clearToEndOfRow() }, e.insertChar = function (t) { this.rows[this.currRow].insertChar(t) }, e.setPen = function (t) { this.rows[this.currRow].setPenStyles(t) }, e.moveCursor = function (t) { this.rows[this.currRow].moveCursor(t) }, e.setCursor = function (t) { this.logger.log(2, "setCursor: " + t), this.rows[this.currRow].setCursor(t) }, e.setPAC = function (t) { this.logger.log(2, (function () { return "pacData = " + JSON.stringify(t) })); var e = t.row - 1; if (this.nrRollUpRows && e < this.nrRollUpRows - 1 && (e = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== e) { for (var r = 0; r < ra; r++)this.rows[r].clear(); var i = this.currRow + 1 - this.nrRollUpRows, n = this.lastOutputScreen; if (n) { var a = n.rows[i].cueStartTime, s = this.logger.time; if (null !== a && null !== s && a < s) for (var o = 0; o < this.nrRollUpRows; o++)this.rows[e - this.nrRollUpRows + o + 1].copy(n.rows[i + o]) } } this.currRow = e; var l = this.rows[this.currRow]; if (null !== t.indent) { var u = t.indent, h = Math.max(u - 1, 0); l.setCursor(t.indent), t.color = l.chars[h].penState.foreground } var d = { foreground: t.color, underline: t.underline, italics: t.italics, background: "black", flash: !1 }; this.setPen(d) }, e.setBkgData = function (t) { this.logger.log(2, (function () { return "bkgData = " + JSON.stringify(t) })), this.backSpace(), this.setPen(t), this.insertChar(32) }, e.setRollUpRows = function (t) { this.nrRollUpRows = t }, e.rollUp = function () { var t = this; if (null !== this.nrRollUpRows) { this.logger.log(1, (function () { return t.getDisplayText() })); var e = this.currRow + 1 - this.nrRollUpRows, r = this.rows.splice(e, 1)[0]; r.clear(), this.rows.splice(this.currRow, 0, r), this.logger.log(2, "Rolling up") } else this.logger.log(3, "roll_up but nrRollUpRows not set yet") }, e.getDisplayText = function (t) { t = t || !1; for (var e = [], r = "", i = -1, n = 0; n < ra; n++) { var a = this.rows[n].getTextString(); a && (i = n + 1, t ? e.push("Row " + i + ": '" + a + "'") : e.push(a.trim())) } return e.length > 0 && (r = t ? "[" + e.join(" | ") + "]" : e.join("\n")), r }, e.getTextAndFormat = function () { return this.rows }, t }(), va = function () { function t(t, e, r) { this.chNr = void 0, this.outputFilter = void 0, this.mode = void 0, this.verbose = void 0, this.displayedMemory = void 0, this.nonDisplayedMemory = void 0, this.lastOutputScreen = void 0, this.currRollUpRow = void 0, this.writeScreen = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chNr = t, this.outputFilter = e, this.mode = null, this.verbose = 0, this.displayedMemory = new ga(r), this.nonDisplayedMemory = new ga(r), this.lastOutputScreen = new ga(r), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = r } var e = t.prototype; return e.reset = function () { this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), this.outputFilter.reset(), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null }, e.getHandler = function () { return this.outputFilter }, e.setHandler = function (t) { this.outputFilter = t }, e.setPAC = function (t) { this.writeScreen.setPAC(t) }, e.setBkgData = function (t) { this.writeScreen.setBkgData(t) }, e.setMode = function (t) { t !== this.mode && (this.mode = t, this.logger.log(2, (function () { return "MODE=" + t })), "MODE_POP-ON" === this.mode ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), "MODE_ROLL-UP" !== this.mode && (this.displayedMemory.nrRollUpRows = null, this.nonDisplayedMemory.nrRollUpRows = null), this.mode = t) }, e.insertChars = function (t) { for (var e = this, r = 0; r < t.length; r++)this.writeScreen.insertChar(t[r]); var i = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP"; this.logger.log(2, (function () { return i + ": " + e.writeScreen.getDisplayText(!0) })), "MODE_PAINT-ON" !== this.mode && "MODE_ROLL-UP" !== this.mode || (this.logger.log(1, (function () { return "DISPLAYED: " + e.displayedMemory.getDisplayText(!0) })), this.outputDataUpdate()) }, e.ccRCL = function () { this.logger.log(2, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON") }, e.ccBS = function () { this.logger.log(2, "BS - BackSpace"), "MODE_TEXT" !== this.mode && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate()) }, e.ccAOF = function () { }, e.ccAON = function () { }, e.ccDER = function () { this.logger.log(2, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate() }, e.ccRU = function (t) { this.logger.log(2, "RU(" + t + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(t) }, e.ccFON = function () { this.logger.log(2, "FON - Flash On"), this.writeScreen.setPen({ flash: !0 }) }, e.ccRDC = function () { this.logger.log(2, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON") }, e.ccTR = function () { this.logger.log(2, "TR"), this.setMode("MODE_TEXT") }, e.ccRTD = function () { this.logger.log(2, "RTD"), this.setMode("MODE_TEXT") }, e.ccEDM = function () { this.logger.log(2, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(!0) }, e.ccCR = function () { this.logger.log(2, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(!0) }, e.ccENM = function () { this.logger.log(2, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset() }, e.ccEOC = function () { var t = this; if (this.logger.log(2, "EOC - End Of Caption"), "MODE_POP-ON" === this.mode) { var e = this.displayedMemory; this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = e, this.writeScreen = this.nonDisplayedMemory, this.logger.log(1, (function () { return "DISP: " + t.displayedMemory.getDisplayText() })) } this.outputDataUpdate(!0) }, e.ccTO = function (t) { this.logger.log(2, "TO(" + t + ") - Tab Offset"), this.writeScreen.moveCursor(t) }, e.ccMIDROW = function (t) { var e = { flash: !1 }; if (e.underline = t % 2 == 1, e.italics = t >= 46, e.italics) e.foreground = "white"; else { var r = Math.floor(t / 2) - 16; e.foreground = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"][r] } this.logger.log(2, "MIDROW: " + JSON.stringify(e)), this.writeScreen.setPen(e) }, e.outputDataUpdate = function (t) { void 0 === t && (t = !1); var e = this.logger.time; null !== e && this.outputFilter && (null !== this.cueStartTime || this.displayedMemory.isEmpty() ? this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, e, this.lastOutputScreen), t && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : e) : this.cueStartTime = e, this.lastOutputScreen.copy(this.displayedMemory)) }, e.cueSplitAtTime = function (t) { this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, t, this.displayedMemory), this.cueStartTime = t)) }, t }(), ma = function () { function t(t, e, r) { this.channels = void 0, this.currentChannel = 0, this.cmdHistory = { a: null, b: null }, this.logger = void 0; var i = this.logger = new ua; this.channels = [null, new va(t, e, i), new va(t + 1, r, i)] } var e = t.prototype; return e.getHandler = function (t) { return this.channels[t].getHandler() }, e.setHandler = function (t, e) { this.channels[t].setHandler(e) }, e.addData = function (t, e) { var r, i, n, a = !1; this.logger.time = t; for (var s = 0; s < e.length; s += 2)if (i = 127 & e[s], n = 127 & e[s + 1], 0 !== i || 0 !== n) { if (this.logger.log(3, "[" + ha([e[s], e[s + 1]]) + "] -> (" + ha([i, n]) + ")"), (r = this.parseCmd(i, n)) || (r = this.parseMidrow(i, n)), r || (r = this.parsePAC(i, n)), r || (r = this.parseBackgroundAttributes(i, n)), !r && (a = this.parseChars(i, n))) { var o = this.currentChannel; o && o > 0 ? this.channels[o].insertChars(a) : this.logger.log(2, "No channel found yet. TEXT-MODE?") } r || a || this.logger.log(2, "Couldn't parse cleaned data " + ha([i, n]) + " orig: " + ha([e[s], e[s + 1]])) } }, e.parseCmd = function (t, e) { var r = this.cmdHistory; if (!((20 === t || 28 === t || 21 === t || 29 === t) && e >= 32 && e <= 47 || (23 === t || 31 === t) && e >= 33 && e <= 35)) return !1; if (ya(t, e, r)) return pa(null, null, r), this.logger.log(3, "Repeated command (" + ha([t, e]) + ") is dropped"), !0; var i = 20 === t || 21 === t || 23 === t ? 1 : 2, n = this.channels[i]; return 20 === t || 21 === t || 28 === t || 29 === t ? 32 === e ? n.ccRCL() : 33 === e ? n.ccBS() : 34 === e ? n.ccAOF() : 35 === e ? n.ccAON() : 36 === e ? n.ccDER() : 37 === e ? n.ccRU(2) : 38 === e ? n.ccRU(3) : 39 === e ? n.ccRU(4) : 40 === e ? n.ccFON() : 41 === e ? n.ccRDC() : 42 === e ? n.ccTR() : 43 === e ? n.ccRTD() : 44 === e ? n.ccEDM() : 45 === e ? n.ccCR() : 46 === e ? n.ccENM() : 47 === e && n.ccEOC() : n.ccTO(e - 32), pa(t, e, r), this.currentChannel = i, !0 }, e.parseMidrow = function (t, e) { var r = 0; if ((17 === t || 25 === t) && e >= 32 && e <= 47) { if ((r = 17 === t ? 1 : 2) !== this.currentChannel) return this.logger.log(0, "Mismatch channel in midrow parsing"), !1; var i = this.channels[r]; return !!i && (i.ccMIDROW(e), this.logger.log(3, "MIDROW (" + ha([t, e]) + ")"), !0) } return !1 }, e.parsePAC = function (t, e) { var r, i = this.cmdHistory; if (!((t >= 17 && t <= 23 || t >= 25 && t <= 31) && e >= 64 && e <= 127 || (16 === t || 24 === t) && e >= 64 && e <= 95)) return !1; if (ya(t, e, i)) return pa(null, null, i), !0; var n = t <= 23 ? 1 : 2; r = e >= 64 && e <= 95 ? 1 === n ? na[t] : sa[t] : 1 === n ? aa[t] : oa[t]; var a = this.channels[n]; return !!a && (a.setPAC(this.interpretPAC(r, e)), pa(t, e, i), this.currentChannel = n, !0) }, e.interpretPAC = function (t, e) { var r, i = { color: null, italics: !1, indent: null, underline: !1, row: t }; return r = e > 95 ? e - 96 : e - 64, i.underline = 1 == (1 & r), r <= 13 ? i.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(r / 2)] : r <= 15 ? (i.italics = !0, i.color = "white") : i.indent = 4 * Math.floor((r - 16) / 2), i }, e.parseChars = function (t, e) { var r, i, n = null, a = null; if (t >= 25 ? (r = 2, a = t - 8) : (r = 1, a = t), a >= 17 && a <= 19 ? (i = 17 === a ? e + 80 : 18 === a ? e + 112 : e + 144, this.logger.log(2, "Special char '" + ea(i) + "' in channel " + r), n = [i]) : t >= 32 && t <= 127 && (n = 0 === e ? [t] : [t, e]), n) { var s = ha(n); this.logger.log(3, "Char codes = " + s.join(",")), pa(t, e, this.cmdHistory) } return n }, e.parseBackgroundAttributes = function (t, e) { var r; if (!((16 === t || 24 === t) && e >= 32 && e <= 47 || (23 === t || 31 === t) && e >= 45 && e <= 47)) return !1; var i = {}; 16 === t || 24 === t ? (r = Math.floor((e - 32) / 2), i.background = la[r], e % 2 == 1 && (i.background = i.background + "_semi")) : 45 === e ? i.background = "transparent" : (i.foreground = "black", 47 === e && (i.underline = !0)); var n = t <= 23 ? 1 : 2; return this.channels[n].setBkgData(i), pa(t, e, this.cmdHistory), !0 }, e.reset = function () { for (var t = 0; t < Object.keys(this.channels).length; t++) { var e = this.channels[t]; e && e.reset() } this.cmdHistory = { a: null, b: null } }, e.cueSplitAtTime = function (t) { for (var e = 0; e < this.channels.length; e++) { var r = this.channels[e]; r && r.cueSplitAtTime(t) } }, t }(); function pa(t, e, r) { r.a = t, r.b = e } function ya(t, e, r) { return r.a === t && r.b === e } var Ea = function () { function t(t, e) { this.timelineController = void 0, this.cueRanges = [], this.trackName = void 0, this.startTime = null, this.endTime = null, this.screen = null, this.timelineController = t, this.trackName = e } var e = t.prototype; return e.dispatchCue = function () { null !== this.startTime && (this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges), this.startTime = null) }, e.newCue = function (t, e, r) { (null === this.startTime || this.startTime > t) && (this.startTime = t), this.endTime = e, this.screen = r, this.timelineController.createCaptionsTrack(this.trackName) }, e.reset = function () { this.cueRanges = [], this.startTime = null }, t }(), Ta = function () { if (null != j && j.VTTCue) return self.VTTCue; var t = ["", "lr", "rl"], e = ["start", "middle", "end", "left", "right"]; function r(t, e) { if ("string" != typeof e) return !1; if (!Array.isArray(t)) return !1; var r = e.toLowerCase(); return !!~t.indexOf(r) && r } function i(t) { return r(e, t) } function n(t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; for (var n = 1; n < arguments.length; n++) { var a = arguments[n]; for (var s in a) t[s] = a[s] } return t } function a(e, a, s) { var o = this, l = { enumerable: !0 }; o.hasBeenReset = !1; var u = "", h = !1, d = e, c = a, f = s, g = null, v = "", m = !0, p = "auto", y = "start", E = 50, T = "middle", S = 50, L = "middle"; Object.defineProperty(o, "id", n({}, l, { get: function () { return u }, set: function (t) { u = "" + t } })), Object.defineProperty(o, "pauseOnExit", n({}, l, { get: function () { return h }, set: function (t) { h = !!t } })), Object.defineProperty(o, "startTime", n({}, l, { get: function () { return d }, set: function (t) { if ("number" != typeof t) throw new TypeError("Start time must be set to a number."); d = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "endTime", n({}, l, { get: function () { return c }, set: function (t) { if ("number" != typeof t) throw new TypeError("End time must be set to a number."); c = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "text", n({}, l, { get: function () { return f }, set: function (t) { f = "" + t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "region", n({}, l, { get: function () { return g }, set: function (t) { g = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "vertical", n({}, l, { get: function () { return v }, set: function (e) { var i = function (e) { return r(t, e) }(e); if (!1 === i) throw new SyntaxError("An invalid or illegal string was specified."); v = i, this.hasBeenReset = !0 } })), Object.defineProperty(o, "snapToLines", n({}, l, { get: function () { return m }, set: function (t) { m = !!t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "line", n({}, l, { get: function () { return p }, set: function (t) { if ("number" != typeof t && "auto" !== t) throw new SyntaxError("An invalid number or illegal string was specified."); p = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "lineAlign", n({}, l, { get: function () { return y }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); y = e, this.hasBeenReset = !0 } })), Object.defineProperty(o, "position", n({}, l, { get: function () { return E }, set: function (t) { if (t < 0 || t > 100) throw new Error("Position must be between 0 and 100."); E = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "positionAlign", n({}, l, { get: function () { return T }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); T = e, this.hasBeenReset = !0 } })), Object.defineProperty(o, "size", n({}, l, { get: function () { return S }, set: function (t) { if (t < 0 || t > 100) throw new Error("Size must be between 0 and 100."); S = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "align", n({}, l, { get: function () { return L }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); L = e, this.hasBeenReset = !0 } })), o.displayState = void 0 } return a.prototype.getCueAsHTML = function () { return self.WebVTT.convertCueToDOMTree(self, this.text) }, a }(), Sa = function () { function t() { } return t.prototype.decode = function (t, e) { if (!t) return ""; if ("string" != typeof t) throw new Error("Error - expected string data."); return decodeURIComponent(encodeURIComponent(t)) }, t }(); function La(t) { function e(t, e, r, i) { return 3600 * (0 | t) + 60 * (0 | e) + (0 | r) + parseFloat(i || 0) } var r = t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/); return r ? parseFloat(r[2]) > 59 ? e(r[2], r[3], 0, r[4]) : e(r[1], r[2], r[3], r[4]) : null } var Aa = function () { function t() { this.values = Object.create(null) } var e = t.prototype; return e.set = function (t, e) { this.get(t) || "" === e || (this.values[t] = e) }, e.get = function (t, e, r) { return r ? this.has(t) ? this.values[t] : e[r] : this.has(t) ? this.values[t] : e }, e.has = function (t) { return t in this.values }, e.alt = function (t, e, r) { for (var i = 0; i < r.length; ++i)if (e === r[i]) { this.set(t, e); break } }, e.integer = function (t, e) { /^-?\d+$/.test(e) && this.set(t, parseInt(e, 10)) }, e.percent = function (t, e) { if (/^([\d]{1,3})(\.[\d]*)?%$/.test(e)) { var r = parseFloat(e); if (r >= 0 && r <= 100) return this.set(t, r), !0 } return !1 }, t }(); function Ra(t, e, r, i) { var n = i ? t.split(i) : [t]; for (var a in n) if ("string" == typeof n[a]) { var s = n[a].split(r); 2 === s.length && e(s[0], s[1]) } } var ka = new Ta(0, 0, ""), ba = "middle" === ka.align ? "middle" : "center"; function Da(t, e, r) { var i = t; function n() { var e = La(t); if (null === e) throw new Error("Malformed timestamp: " + i); return t = t.replace(/^[^\sa-zA-Z-]+/, ""), e } function a() { t = t.replace(/^\s+/, "") } if (a(), e.startTime = n(), a(), "--\x3e" !== t.slice(0, 3)) throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): " + i); t = t.slice(3), a(), e.endTime = n(), a(), function (t, e) { var i = new Aa; Ra(t, (function (t, e) { var n; switch (t) { case "region": for (var a = r.length - 1; a >= 0; a--)if (r[a].id === e) { i.set(t, r[a].region); break } break; case "vertical": i.alt(t, e, ["rl", "lr"]); break; case "line": n = e.split(","), i.integer(t, n[0]), i.percent(t, n[0]) && i.set("snapToLines", !1), i.alt(t, n[0], ["auto"]), 2 === n.length && i.alt("lineAlign", n[1], ["start", ba, "end"]); break; case "position": n = e.split(","), i.percent(t, n[0]), 2 === n.length && i.alt("positionAlign", n[1], ["start", ba, "end", "line-left", "line-right", "auto"]); break; case "size": i.percent(t, e); break; case "align": i.alt(t, e, ["start", ba, "end", "left", "right"]) } }), /:/, /\s/), e.region = i.get("region", null), e.vertical = i.get("vertical", ""); var n = i.get("line", "auto"); "auto" === n && -1 === ka.line && (n = -1), e.line = n, e.lineAlign = i.get("lineAlign", "start"), e.snapToLines = i.get("snapToLines", !0), e.size = i.get("size", 100), e.align = i.get("align", ba); var a = i.get("position", "auto"); "auto" === a && 50 === ka.position && (a = "start" === e.align || "left" === e.align ? 0 : "end" === e.align || "right" === e.align ? 100 : 50), e.position = a }(t, e) } function Ia(t) { return t.replace(/=X7[e]||"undefined"!=typeof window&&n._checkOpenLog())&&(null===(d=window.console)||void 0===d||null===(E=d[e])||void 0===E||E.call.apply(E,V8(f=[d,B]).call(f,p)))}}return m8(e,[{key:"update",value:function(e){var A=e||{},t=A.logger,n=A.level;this.updateLevel(n),this.updateLogger(t)}},{key:"info",value:function(e){for(var A,t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r 1?t-1:0),r=1;r this.serviceStrategyConfig.local_cache_expired_at)||this.serviceStrategyConfig.cache_key!==(null===(e=this.serviceStrategyConfigLoader)||void 0===e?void 0:e.getCacheKey())}}]),e}(),t9=KP,n9=eJ,r9=yH,i9=pJ,o9=jV,a9=SP,s9=Function,g9=t9(xf([])),c9=t9([].join),l9={},u9=a9?s9.bind:function(e){var A=n9(this),t=A.prototype,n=o9(arguments,1),r=function t(){var r=g9(n,o9(arguments));return this instanceof t?function(e,A,t){if(!i9(l9,A)){for(var n=[],r=0;r0&&(r+=A)})),r=0===r?1:r;for(var i=0;i 1e3)try{e.off("timeupdate",i);var o=e.video.getVideoPlaybackQuality();localStorage.setItem("player_".concat(A,"_fps"),o.totalVideoFrames-n+"")}catch(s){}}else if(r.bufferLength>1){var a=e.video.getVideoPlaybackQuality();n=a.totalVideoFrames,t=H7()}}else e.off("timeupdate",i)})))}},{key:"bufferLength",get:function(){var e=this._player.getBufferedRange();if(!this._player.video)return 0;var A=this._player.video.currentTime,t=e[1]-Math.max(e[0],A);return Math.max(0,t)}}]),t}(),W9=WO,Z9=Math.log,$9=Math.LN2;W9({target:"Math",stat:!0},{log2:function(e){return Z9(e)/$9}});var eee=DP(mH.Math.log2),Aee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){var A=navigator.hardwareConcurrency,t=0;if(A>0){var n=eee(A);t=n<=2?3*n:n<=3?1.6*(n-2)+6:.523*(n-3)+7.6}e({score:t,origin:A})}))}}]),e}(),tee=new Aee,nee=Math.log,ree=Math.LOG10E,iee=MY||function(e){return nee(e)*ree};WO({target:"Math",stat:!0},{log10:iee});var oee=DP(mH.Math.log10),aee=Y9,see=function(e,A,t){return function(e,A,t){A in e?aee(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==O$(A)?A+"":A,t),t},gee=function(){function e(){v8(this,e),see(this,"_worker"),see(this,"_getScoreCallback",(function(){}))}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){try{var A=new Image;A.src="//lf6-cdn-tos.douyinstatic.com/obj/venus/pc-theme/spring/20230411-162827.jpeg",A.onload=function(){var t=H7();"function"==typeof A.decode?A.decode().then((function(){var A=1e3/(H7()-t),n=0;if(A>0){var r=oee(A);n=r<=1?6*r:r<=2?1.6*(r-1)+6:2.4*(r-2)+7.6}e({score:n,origin:A})})):e({score:0,origin:-1})}}catch(t){e({score:0,origin:-1})}}))}}]),e}(),cee=new gee,lee=fJ,uee=Qj,Iee=sz,hee=function(e){for(var A=lee(this),t=Iee(A),n=arguments.length,r=uee(n>1?arguments[1]:void 0,t),i=n>2?arguments[2]:void 0,o=void 0===i?t:uee(i,t);o>r;)A[r++]=e;return A};WO({target:"Array",proto:!0},{fill:hee});var Cee=ZT(e0("Array")),dee=MH,Eee=Cee,fee=Array.prototype,Bee=function(e){var A=ZT(e);return e===fee||dee(fee,e)&&A===ZT(fee)?Eee:A},Qee=DP(Bee),pee=function(){function e(){v8(this,e)}return m8(e,[{key:"_getOrigin",value:function(){var e=new Uint8Array(3686400);Qee(e).call(e,8);var A=performance.now();return 1e3/(performance.now()-A)}},{key:"getScore",value:function(){var e=this;return new D8((function(A){A({score:0,origin:e._getOrigin()})}))}}]),e}(),vee=new pee,yee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){e({score:0,origin:navigator.deviceMemory})}))}}]),e}(),mee=new yee,Dee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){var A,t=null==(A=null==navigator?void 0:navigator.connection)?void 0:A.downlink,n=0;t>0&&t<1e6&&(n=t<1?60*t:t<5?.4*(t-1)+6.01:.02*(t-5)+7.61),e({score:n,origin:t})}))}}]),e}(),wee=new Dee,Ree=eJ,kee=fJ,See=IH,Mee=sz,Gee=TypeError,_ee=function(e){return function(A,t,n,r){Ree(t);var i=kee(A),o=See(i),a=Mee(i),s=e?a-1:0,g=e?-1:1;if(n<2)for(;;){if(s in o){r=o[s],s+=g;break}if(s+=g,e?s<0:a<=s)throw Gee("Reduce of empty array with no initial value")}for(;e?s>=0:a>s;s+=g)s in o&&(r=t(r,o[s],s,i));return r}},bee={left:_ee(!1),right:_ee(!0)}.left;WO({target:"Array",proto:!0,forced:!A5&&UH>79&&UH<83||!F0("reduce")},{reduce:function(e){var A=arguments.length;return bee(this,e,A,A>1?arguments[1]:void 0)}});var Tee=wF(e0("Array")),Fee=MH,Nee=Tee,Lee=Array.prototype,Uee=function(e){var A=wF(e);return e===Lee||Fee(Lee,e)&&A===wF(Lee)?Nee:A},Kee=DP(Uee),xee=function(){function e(){v8(this,e)}return m8(e,[{key:"_getBandwidth",value:function(){var e;if(!performance.getEntries)return-1;var A=W8(e=performance.getEntries()).call(e,(function(e){var A=e.initiatorType,t=e.decodedBodySize;return"img"===A&&t>0})),t=Kee(A).call(A,(function(e,A){return e+1e3*A.decodedBodySize/(A.responseEnd-A.responseStart)}),0);return A.length?t/A.length/1024:0}},{key:"getScore",value:function(){var e=this;return new D8((function(A,t){try{var n=e._getBandwidth(),r=0;n>0&&n<1e6&&(r=n<1?60*performance_speed:n<5?.4*(performance_speed-1)+6.01:.02*(performance_speed-5)+7.61),A({score:r,origin:n})}catch(i){A({score:0,origin:-1})}}))}}]),e}(),Yee=new xee,Pee=function(e){return e.H264="h264",e.H265="h265",e}(Pee||{}),Hee=Y9,Jee=function(e,A,t){return function(e,A,t){A in e?Hee(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==O$(A)?A+"":A,t),t},Oee=function(){function e(A){v8(this,e),Jee(this,"_origin"),Jee(this,"_codec"),this._codec=A}return m8(e,[{key:"_getOrigin",value:function(){try{var e=localStorage.getItem("player_".concat(this._codec,"_fps"))||-1;return Number(e)}catch(A){return-1}}},{key:"getScore",value:function(){var e=this;return new D8((function(A){var t=e._origin||e._getOrigin(),n=0;t>0&&t<=120&&(n=t<=30?.2*t:t<=60?.0533*(t-30)+6:.04*(t-60)+7.6),A({score:n,origin:t})}))}}]),e}(),zee={plugins:{cpu:{cls:O9,factor:8,plugins:{cpu_core_number:{factor:4,instance:tee},decodeImg:{factor:3,instance:cee}}},memory:{cls:z9,factor:0,plugins:{copy:{factor:5,instance:vee},usage:{factor:5,instance:mee}}},net:{cls:j9,factor:9,plugins:{downlink:{factor:5,instance:wee},performance:{factor:4,instance:Yee}}},render:{cls:V9,factor:0,plugins:{avc:{factor:5,instance:new(function(e){p9(t,Oee);var A=x9(t);function t(e){return v8(this,t),A.call(this,e)}return m8(t)}())(Pee.H264)},hevc:{factor:5,instance:new(function(e){p9(t,Oee);var A=x9(t);function t(e){return v8(this,t),A.call(this,e)}return m8(t)}())(Pee.H265)}}}}},jee=function(e){p9(t,J9);var A=x9(t);function t(e){return v8(this,t),A.call(this,J8({},zee,e))}return m8(t,[{key:"setPlayer",value:function(e,A){var t,n;(null==(t=this.options.plugins.render)?void 0:t.instance)&&(null==(n=this.options.plugins.render)||n.instance.setPlayer(e,A))}}]),t}(),Xee="\t\n\v\f\r 聽釟€鈥€鈥佲€傗€冣€勨€呪€嗏€団€堚€夆€娾€仧銆€\u2028\u2029\ufeff",qee=EH,Vee=Cj,Wee=Xee,Zee=KP("".replace),$ee=RegExp("^["+Wee+"]+"),eAe=RegExp("(^|[^"+Wee+"])["+Wee+"]+$"),AAe=function(e){return function(A){var t=Vee(qee(A));return 1&e&&(t=Zee(t,$ee,"")),2&e&&(t=Zee(t,eAe,"$1")),t}},tAe={start:AAe(1),end:AAe(2),trim:AAe(3)},nAe=KW.PROPER,rAe=kP,iAe=Xee,oAe=WO,aAe=lD(tAe),sAe=function(e){return rAe((function(){return!!iAe[e]()||"鈥嬄呩爭"!=="鈥嬄呩爭"[e]()||nAe&&iAe[e].name!==e}))};oAe({target:"String",proto:!0,forced:sAe("trim")},{trim:function(){return aAe(this)}});var gAe=lD(e0("String")),cAe=MH,lAe=gAe,uAe=String.prototype,IAe=function(e){var A=lD(e);return"string"==typeof e||e===uAe||cAe(uAe,e)&&A===lD(uAe)?lAe:A},hAe=DP(IAe),CAe=/ANGLE\s+\((?:[^,]+,\s+)?([^,/]+)?(?:[^,]*)(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,dAe=/ANGLE\s+\((?:[^,]+,\s+)?([^,]+)?(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,EAe="OpenGL Engine",fAe="Unknow",BAe=4318,QAe=32902,pAe=4098,vAe=function(e){return e.CpuDeriver="CpuDeriver",e.Intel="Intel",e.Nvidia="NVIDIA",e.Amd="AMD",e.Apple="Apple",e[e.Unknow=fAe]="Unknow",e}(vAe||{});function yAe(e){return"NVIDIA"===e?BAe:"AMD"===e?pAe:"Intel"===e?QAe:0}function mAe(e){var A,t,n,r,i=function(e){var A=/(SwiftShader|Intel|NVIDIA|AMD|Radeon|Apple)/.exec(e);return A?"Radeon"===A[0]?"AMD":"SwiftShader"===A[0]?"CpuDeriver":A[0]:vAe.Unknow}(e);return i===vAe.Unknow||"CpuDeriver"===i?{vendor:i,vendorId:0,model:fAe,backupModel:fAe,api:fAe}:/^ANGLE/.test(e)?function(e,A){var t,n,r,i,o,a=fAe,s=fAe,g=fAe;return"Intel"!==e&&"NVIDIA"!==e||(t=CAe.exec(A)),"AMD"!==e&&"Apple"!==e||(t=dAe.exec(A)),(null==t?void 0:t[1])&&(null==t?void 0:t[2])&&(a=hAe(n=t[1].replace(/(AMD|NVIDIA)/,"")).call(n),g=hAe(r=t[2]).call(r)),s="Intel"===e?a=hAe(i=a.split(EAe)[0]).call(i):hAe(o=a.split(EAe)[0]).call(o),{vendor:e,vendorId:yAe(e),model:a,backupModel:s,api:g}}(i,e):"Intel"===i?{vendor:i,vendorId:yAe(i),model:hAe(n=e.split(EAe)[0]).call(n),backupModel:hAe(r=e.split(EAe)[0]).call(r),api:fAe}:{vendor:i,vendorId:yAe(i),model:hAe(A=e.replace(/(AMD|NVIDIA)/,"")).call(A),backupModel:hAe(t=e.split(EAe)[0].replace(/(AMD|NVIDIA)/,"")).call(t),api:fAe}}var DAe=RP,wAe=kP,RAe=KP,kAe=Cj,SAe=lD(tAe),MAe=Xee,GAe=DAe.parseInt,_Ae=DAe.Symbol,bAe=_Ae&&_Ae.iterator,TAe=/^[+-]?0x/i,FAe=RAe(TAe.exec),NAe=8!==GAe(MAe+"08")||22!==GAe(MAe+"0x16")||bAe&&!wAe((function(){GAe(Object(bAe))}))?function(e,A){var t=SAe(kAe(e));return GAe(t,A>>>0||(FAe(TAe,t)?16:10))}:GAe;WO({global:!0,forced:Uv!=NAe},{parseInt:NAe});var LAe=DP(mH.parseInt),UAe=RP,KAe=kP,xAe=KP,YAe=Cj,PAe=lD(tAe),HAe=Xee,JAe=xAe("".charAt),OAe=UAe.parseFloat,zAe=UAe.Symbol,jAe=zAe&&zAe.iterator,XAe=1/OAe(HAe+"-0")!=-1/0||jAe&&!KAe((function(){OAe(Object(jAe))}))?function(e){var A=PAe(YAe(e)),t=OAe(A);return 0===t&&"-"==JAe(A,0)?-0:t}:OAe;WO({global:!0,forced:tD!=XAe},{parseFloat:XAe});var qAe=DP(mH.parseFloat),VAe="g_ven";function WAe(e,A){var t,n;return t=A===vAe.Intel?i7(n=e.split("\n")).call(n,(function(e){return"Intel(R) ".concat(e)})):e.split("\n"),i7(t).call(t,(function(e){return e.split("|")}))}function ZAe(e){return 0===e?0:-1===e?-1:qAe(eee(e).toFixed(2))}var $Ae={AMD_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_am.txt",INTEL_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_int.txt",NVIDIA_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_nvi.txt"},ete=[],Ate=[],tte=[];function nte(){return(nte=p8(B8().mark((function e(A){var t,n,r;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A!==vAe.Intel){e.next=4;break}if(!ete.length){e.next=3;break}return e.abrupt("return",ete);case 3:t=$Ae.INTEL_PATH;case 4:if(A!==vAe.Nvidia){e.next=8;break}if(!Ate.length){e.next=7;break}return e.abrupt("return",Ate);case 7:t=$Ae.NVIDIA_PATH;case 8:if(A!==vAe.Amd){e.next=12;break}if(!tte.length){e.next=11;break}return e.abrupt("return",tte);case 11:t=$Ae.AMD_PATH;case 12:if(t){e.next=14;break}return e.abrupt("return",D8.resolve([]));case 14:return e.prev=14,e.next=17,fetch(t).then((function(e){return e.text()}));case 17:return n=e.sent,r=WAe(n,A),A===vAe.Intel&&(ete=r),A===vAe.Nvidia&&(Ate=r),A===vAe.Amd&&(tte=r),e.abrupt("return",r);case 25:e.prev=25,e.t0=e.catch(14);case 27:return e.abrupt("return",[]);case 28:case"end":return e.stop()}}),e,null,[[14,25]])})))).apply(this,arguments)}function rte(e){return e?function(e){return nte.apply(this,arguments)}(e.vendor).then((function(A){return function(e,A){var t=W8(e).call(e,(function(e){return e[0]===A.model}));t.length||(t=W8(e).call(e,(function(e){return e[0]===A.backupModel}))),t.length||A.vendor!==vAe.Intel||/^Intel(R)/.test(A.model)||(t=W8(e).call(e,(function(e){return e[0]==="Intel(R) "+A.model})));var n="-1";if(t.length){var r=t[0][1];n="-1"===r?"0":r}return LAe(n)}(A,e)})).then(ZAe):D8.resolve(0)}var ite="";function ote(){return ite||(ite=function(){try{var e=localStorage.getItem(VAe)||"";if(e)return e;var A,t=document.createElement("canvas").getContext("webgl");if(t)return(e=(A=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(A.UNMASKED_RENDERER_WEBGL):"")&&localStorage.setItem(VAe,e),e}catch(n){}return""}())}function ate(e){var A;try{A=mAe(e||ste.getGPUVendor())}catch(t){return null}return A}var ste=function(){function e(){v8(this,e)}return m8(e,null,[{key:"getGPUVendor",value:function(){return ote()}},{key:"parseVendorAsync",value:function(e){var A=ate(e);return A?rte(A).then((function(e){return m1(m1({},A||{}),{},{score:e})})).catch((function(){return null})):D8.resolve(null)}}]),e}();function gte(){var e=!1;if("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)return e;if(e=MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"')){var A=ate();e=!!A&&A.vendor!==vAe.CpuDeriver}return e}var cte=DP(R1),lte=DP(_1),ute=DP(V6),Ite=DP(E8),hte=WO,Cte=qf(yq),dte=!0;"find"in[]&&qf(pP=Array(1)).call(pP,(function(){dte=!1})),hte({target:"Array",proto:!0,forced:dte},{find:function(e){return Cte(this,e,arguments.length>1?arguments[1]:void 0)}});var Ete=qf(e0("Array")),fte=MH,Bte=Ete,Qte=Array.prototype,pte=function(e){var A=qf(e);return e===Qte||fte(Qte,e)&&A===qf(Qte)?Bte:A},vte=DP(pte),yte=yq.some;WO({target:"Array",proto:!0,forced:!F0("some")},{some:function(e){return yte(this,e,arguments.length>1?arguments[1]:void 0)}});var mte=e0("Array").some,Dte=MH,wte=mte,Rte=Array.prototype,kte=function(e){var A=e.some;return e===Rte||Dte(Rte,e)&&A===Rte.some?wte:A},Ste=DP(kte),Mte=WO,Gte=zP,_te=zp(Dj),bte=F0,Tte=Gte(zp([])),Fte=!!Tte&&1/Tte([1],1,-0)<0;Mte({target:"Array",proto:!0,forced:Fte||!bte("indexOf")},{indexOf:function(e){var A=arguments.length>1?arguments[1]:void 0;return Fte?Tte(this,e,A)||0:_te(this,e,A)}});var Nte=zp(e0("Array")),Lte=MH,Ute=Nte,Kte=Array.prototype,xte=function(e){var A=zp(e);return e===Kte||Lte(Kte,e)&&A===zp(Kte)?Ute:A},Yte=DP(xte),Pte=VH,Hte=TypeError,Jte=WO,Ote=fJ,zte=Qj,jte=rz,Xte=sz,qte=p0,Vte=cz,Wte=Xz,Zte=hz,$te=function(e,A){if(!delete e[A])throw Hte("Cannot delete property "+Pte(A)+" of "+Pte(e))},ene=Zz("splice"),Ane=Math.max,tne=Math.min;Jte({target:"Array",proto:!0,forced:!ene},{splice:function(e,A){var t,n,r,i,o,a,s=Ote(this),g=Xte(s),c=zte(e,g),l=arguments.length;for(0===l?t=n=0:1===l?(t=0,n=g-c):(t=l-2,n=tne(Ane(jte(A),0),g-c)),Vte(g+t-n),r=Wte(s,n),i=0;i g-n+t;i--)$te(s,i-1)}else if(t>n)for(i=g-n;i>c;i--)a=i+t-1,(o=i+n-1)in s?s[a]=s[o]:$te(s,a);for(i=0;i 0&&t[1]||""}},{key:"getSecondMatch",value:function(e,A){var t=A.match(e);return t&&t.length>1&&t[2]||""}},{key:"matchAndReturnConst",value:function(e,A,t){if(e.test(A))return t}},{key:"getWindowsVersionName",value:function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}},{key:"getMacOSVersionName",value:function(e){var A,t,n=i7(A=sne(t=e.split(".")).call(t,0,2)).call(A,(function(e){return LAe(e,10)||0}));if(n.push(0),10===n[0])switch(n[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}},{key:"getAndroidVersionName",value:function(e){var A,t,n=i7(A=sne(t=e.split(".")).call(t,0,2)).call(A,(function(e){return LAe(e,10)||0}));if(n.push(0),!(1===n[0]&&n[1]<5))return 1===n[0]&&n[1]<6?"Cupcake":1===n[0]&&n[1]>=6?"Donut":2===n[0]&&n[1]<2?"Eclair":2===n[0]&&2===n[1]?"Froyo":2===n[0]&&n[1]>2?"Gingerbread":3===n[0]?"Honeycomb":4===n[0]&&n[1]<1?"Ice Cream Sandwich":4===n[0]&&n[1]<4?"Jelly Bean":4===n[0]&&n[1]>=4?"KitKat":5===n[0]?"Lollipop":6===n[0]?"Marshmallow":7===n[0]?"Nougat":8===n[0]?"Oreo":9===n[0]?"Pie":void 0}},{key:"getVersionPrecision",value:function(e){return e.split(".").length}},{key:"compareVersions",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.getVersionPrecision(A),i=e.getVersionPrecision(t),o=Math.max(r,i),a=0,s=i7(e).call(e,[A,t],(function(A){var t,n=o-e.getVersionPrecision(A),r=A+new Array(n+1).join(".0");return ute(t=i7(e).call(e,r.split("."),(function(e){return new Array(20-e.length).join("0")+e}))).call(t)}));for(n&&(a=o-Math.min(r,i)),o-=1;o>=a;){if(s[0][o]>s[1][o])return 1;if(s[0][o]===s[1][o]){if(o===a)return 0;o-=1}else if(s[0][o] 1?i-1:0),a=1;a=3},describe:function(){return{type:lne.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:lne.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:lne.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:lne.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:lne.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:lne.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:lne.tv}}}],Bne=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:Ine.Blink};var A=hne.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:Ine.EdgeHTML,version:A}}},{test:[/trident/i],describe:function(e){var A={name:Ine.Trident},t=hne.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){return e.test(/presto/i)},describe:function(e){var A={name:Ine.Presto},t=hne.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){var A=e.test(/gecko/i),t=e.test(/like gecko/i);return A&&!t},describe:function(e){var A={name:Ine.Gecko},t=hne.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:Ine.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var A={name:Ine.WebKit},t=hne.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}}],Qne=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(v8(this,e),null==A||""===A)throw new Error("UserAgent parameter can't be empty");this._ua=A,this.parsedResult={},!0!==t&&this.parse()}return m8(e,[{key:"getUA",value:function(){return this._ua}},{key:"test",value:function(e){return e.test(this._ua)}},{key:"parseBrowser",value:function(){var e=this;this.parsedResult.browser={};var A=vte(hne).call(hne,dne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.browser=A.describe(this.getUA())),this.parsedResult.browser}},{key:"getBrowser",value:function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}},{key:"getBrowserName",value:function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}},{key:"getBrowserVersion",value:function(){return this.getBrowser().version}},{key:"getOS",value:function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}},{key:"parseOS",value:function(){var e=this;this.parsedResult.os={};var A=vte(hne).call(hne,Ene,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.os=A.describe(this.getUA())),this.parsedResult.os}},{key:"getOSName",value:function(e){var A=this.getOS().name;return e?String(A).toLowerCase()||"":A||""}},{key:"getOSVersion",value:function(){return this.getOS().version}},{key:"getPlatform",value:function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}},{key:"getPlatformType",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],A=this.getPlatform().type;return e?String(A).toLowerCase()||"":A||""}},{key:"parsePlatform",value:function(){var e=this;this.parsedResult.platform={};var A=vte(hne).call(hne,fne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.platform=A.describe(this.getUA())),this.parsedResult.platform}},{key:"getEngine",value:function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}},{key:"getEngineName",value:function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}},{key:"parseEngine",value:function(){var e=this;this.parsedResult.engine={};var A=vte(hne).call(hne,Bne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.engine=A.describe(this.getUA())),this.parsedResult.engine}},{key:"parse",value:function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}},{key:"getResult",value:function(){return hne.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var A=this,t={},n=0,r={},i=0,o=R8(e);if(w8(o).call(o,(function(A){var o=e[A];"string"==typeof o?(r[A]=o,i+=1):"object"===O$(o)&&(t[A]=o,n+=1)})),n>0){var a=R8(t),s=vte(hne).call(hne,a,(function(e){return A.isOS(e)}));if(s){var g=this.satisfies(t[s]);if(void 0!==g)return g}var c=vte(hne).call(hne,a,(function(e){return A.isPlatform(e)}));if(c){var l=this.satisfies(t[c]);if(void 0!==l)return l}}if(i>0){var u=R8(r),I=vte(hne).call(hne,u,(function(e){return A.isBrowser(e,!0)}));if(void 0!==I)return this.compareVersion(r[I])}}},{key:"isBrowser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),r=hne.getBrowserTypeByAlias(n);return A&&r&&(n=r.toLowerCase()),n===t}},{key:"compareVersion",value:function(e){var A=[0],t=e,n=!1,r=this.getBrowserVersion();if("string"==typeof r)return">"===e[0]||"<"===e[0]?(t=e.substr(1),"="===e[1]?(n=!0,t=e.substr(2)):A=[],">"===e[0]?A.push(1):A.push(-1)):"="===e[0]?t=e.substr(1):"~"===e[0]&&(n=!0,t=e.substr(1)),Yte(A).call(A,hne.compareVersions(r,t,n))>-1}},{key:"isOS",value:function(e){return this.getOSName(!0)===String(e).toLowerCase()}},{key:"isPlatform",value:function(e){return this.getPlatformType(!0)===String(e).toLowerCase()}},{key:"isEngine",value:function(e){return this.getEngineName(!0)===String(e).toLowerCase()}},{key:"is",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.isBrowser(e,A)||this.isOS(e)||this.isPlatform(e)}},{key:"some",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Ste(A).call(A,(function(A){return e.is(A)}))}}]),e}(),pne=function(){function e(){v8(this,e)}return m8(e,null,[{key:"getParser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Qne(e,A)}},{key:"parse",value:function(e){return new Qne(e).getResult()}},{key:"BROWSER_MAP",get:function(){return cne}},{key:"ENGINE_MAP",get:function(){return Ine}},{key:"OS_MAP",get:function(){return une}},{key:"PLATFORMS_MAP",get:function(){return lne}}]),e}(),vne=function(){function e(A){v8(this,e),v1(this,"featureList",void 0),v1(this,"videoType",void 0),this.videoType=A.type||J7.VOD,this.featureList=m1(m1(m1(m1({deviceId:null==A?void 0:A.deviceId,userId:null==A?void 0:A.userId,playerVersion:null==A?void 0:A.playerVersion},this.initSync()),this.getGPUInfo()),this.getLocalDeviceMarkInfo()),this.getH265FeatureList())}var A;return m8(e,[{key:"initSync",value:function(){return m1({},this.getBrowserInfo())}},{key:"updateFeatureList",value:function(e){return this.featureList=m1(m1({},this.featureList),e)}},{key:"getFeatureList",value:function(){return this.featureList}},{key:"getH265FeatureList",value:function(){return{isHevcSupported:gte()}}},{key:"getLocalDeviceMarkInfo",value:function(){var e=N7(this.videoType===J7.LIVE?W7:V7),A={cpuScore:-1,netScore:-1,renderScore:-1};if(!e)return A;try{var t=JSON.parse(e);return{cpuScore:t.cpuScore,netScore:t.netScore,renderScore:t.renderScore}}catch(n){}return A}},{key:"getDeviceMarkInfoAsync",value:(A=p8(B8().mark((function e(){var A,t,n,r,i,o;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=new jee({}),e.next=3,A.getScore();case 3:if(e.t0=e.sent,e.t0){e.next=6;break}e.t0={};case 6:return t=e.t0,n=t.cpu,r=t.net,i=t.render,o={cpuScore:(null==n?void 0:n.score)||-1,netScore:(null==r?void 0:r.score)||-1,renderScore:(null==i?void 0:i.score)||-1},F7(this.videoType===J7.LIVE?W7:V7,G8(o)),this.updateFeatureList(o),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"getBrowserInfo",value:function(){var e=pne.getParser(navigator.userAgent);return{browserVersion:e.getBrowserVersion(),browserName:e.getBrowserName(),cpuCore:navigator.hardwareConcurrency,osName:e.getOSName(),osVersion:e.getOSVersion(),platformType:e.getPlatformType(),engineName:e.getEngineName()}}},{key:"getGPUInfo",value:function(){try{var e=yP.parseVendor(),A=yP.getGPUVendor(),t=k7(A).call(A,"SwiftShader");return{gpuScore:(null==e?void 0:e.score)||-1,isCloseGPU:t}}catch(n){return{gpuScore:-1,isCloseGPU:!1}}}}]),e}(),yne={exports:{}},mne=kP((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);_Y(e)&&Iy(e,"a",{value:8})}})),Dne=yH,wne=HP,Rne=mne,kne=_Y,Sne=kP((function(){kne(1)}))||Rne?function(e){return!!Dne(e)&&(!Rne||"ArrayBuffer"!=wne(e))&&(!kne||kne(e))}:kne,Mne=!kP((function(){return _Y(KY({}))})),Gne=WO,_ne=KP,bne=wj,Tne=yH,Fne=pJ,Nne=QO.f,Lne=gX,Une=IX,Kne=Sne,xne=Mne,Yne=!1,Pne=wJ("meta"),Hne=0,Jne=function(e){Nne(e,Pne,{value:{objectID:"O"+Hne++,weakData:{}}})},One=yne.exports={enable:function(){One.enable=function(){},Yne=!0;var e=Lne.f,A=_ne(Cv([])),t={};t[Pne]=1,e(t).length&&(Lne.f=function(t){for(var n=e(t),r=0,i=n.length;r1?arguments[1]:void 0);A=A?A.next:t.first;)for(n(A.value,A.key,this);A&&A.removed;)A=A.previous},has:function(e){return!!s(this,e)}}),ure(i,t?{get:function(e){var A=s(this,e);return A&&A.value},set:function(e,A){return a(this,0===e?0:e,A)}}:{add:function(e){return a(this,e=0===e?0:e,e)}}),Qre&&lre(i,"size",{configurable:!0,get:function(){return o(this).size}}),r},setStrong:function(e,A,t){var n=A+" Iterator",r=yre(A),i=yre(n);Ere(e,A,(function(e,A){vre(this,{type:n,target:e,state:r(e),kind:A,last:void 0})}),(function(){for(var e=i(this),A=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?fre("keys"==A?t.key:"values"==A?t.value:[t.key,t.value],!1):(e.target=void 0,fre(void 0,!0))}),t?"entries":"values",!t,!0),Bre(A)}},Dre=function(e,A,t){var n,r=-1!==zp(e).call(e,"Map"),i=-1!==zp(e).call(e,"Weak"),o=r?"set":"add",a=Xne[e],s=a&&a.prototype,g={};if(ire&&ere(a)&&(i||s.forEach&&!Vne((function(){var e;PK(e=new a).call(e).next()})))){var c=(n=A((function(A,t){ore($ne(A,c),{type:e,collection:new a}),null!=t&&Zne(t,A[o],{that:A,AS_ENTRIES:r})}))).prototype,l=are(e);rre(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(e){var A="add"==e||"set"==e;!(e in s)||i&&"clear"==e||Wne(c,e,(function(t,n){var r=l(this).collection;if(!A&&i&&!Are(t))return"get"==e&&void 0;var o=r[e](0===t?0:t,n);return A?this:o}))})),i||nre(c,"size",{configurable:!0,get:function(){return l(this).collection.size}})}else n=t.getConstructor(A,e,r,o),qne.enable();return tre(n,e,!1,!0),g[e]=n,jne({global:!0,forced:!0},g),i||t.setStrong(n,e,r),n};Dre("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),mre);var wre=mH.Map,Rre=BO,kre=AH,Sre=eJ,Mre=I5,Gre=hH,_re=_2,bre=[].push,Tre=function(e){var A,t,n,r,i=arguments.length,o=i>1?arguments[1]:void 0;return Mre(this),(A=void 0!==o)&&Sre(o),Gre(e)?new this:(t=[],A?(n=0,r=Rre(o,i>2?arguments[2]:void 0),_re(e,(function(e){kre(bre,t,r(e,n++))}))):_re(e,bre,{that:t}),new this(t))};WO({target:"Map",stat:!0,forced:!0},{from:Tre});var Fre=jV,Nre=function(){return new this(Fre(arguments))};WO({target:"Map",stat:!0,forced:!0},{of:Nre});var Lre=VH,Ure=function(e){if("object"==wc(e)&&"size"in e&&"has"in e&&"get"in e&&"set"in e&&"delete"in e&&"entries"in e)return e;throw TypeError(Lre(e)+" is not a map")},Kre=function(e,A){return 1==A?function(A,t){return A[e](t)}:function(A,t,n){return A[e](t,n)}},xre=SH("Map"),Yre={Map:xre,set:Kre("set",2),get:Kre("get",1),has:Kre("has",1),remove:Kre("delete",1),proto:xre.prototype},Pre=Ure,Hre=Yre.remove;WO({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,A=Pre(this),t=!0,n=0,r=arguments.length;n1?arguments[1]:void 0);return!1!==$re(A,(function(e,n){if(!t(e,n,A))return!1}),!0)}});var eie=BO,Aie=Ure,tie=Vre,nie=Yre.Map,rie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var A=Aie(this),t=eie(e,arguments.length>1?arguments[1]:void 0),n=new nie;return tie(A,(function(e,r){t(e,r,A)&&rie(n,r,e)})),n}});var iie=BO,oie=Ure,aie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var A=oie(this),t=iie(e,arguments.length>1?arguments[1]:void 0),n=aie(A,(function(e,n){if(t(e,n,A))return{value:e}}),!0);return n&&n.value}});var sie=BO,gie=Ure,cie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var A=gie(this),t=sie(e,arguments.length>1?arguments[1]:void 0),n=cie(A,(function(e,n){if(t(e,n,A))return{key:n}}),!0);return n&&n.key}});var lie=WO,uie=eJ,Iie=EH,hie=_2,Cie=Yre.Map,die=Yre.has,Eie=Yre.get,fie=Yre.set,Bie=KP([].push);lie({target:"Map",stat:!0,forced:!0},{groupBy:function(e,A){Iie(e),uie(A);var t=new Cie,n=0;return hie(e,(function(e){var r=A(e,n++);die(t,r)?Bie(Eie(t,r),e):fie(t,r,[e])})),t}});var Qie=function(e,A){return e===A||e!=e&&A!=A},pie=Ure,vie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===vie(pie(this),(function(A){if(Qie(A,e))return!0}),!0)}});var yie=AH,mie=_2,Die=VP,wie=eJ,Rie=Yre.Map;WO({target:"Map",stat:!0,forced:!0},{keyBy:function(e,A){var t=new(Die(this)?this:Rie);wie(A);var n=wie(t.set);return mie(e,(function(e){yie(n,t,A(e),e)})),t}});var kie=Ure,Sie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var A=Sie(kie(this),(function(A,t){if(A===e)return{key:t}}),!0);return A&&A.key}});var Mie=BO,Gie=Ure,_ie=Vre,bie=Yre.Map,Tie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var A=Gie(this),t=Mie(e,arguments.length>1?arguments[1]:void 0),n=new bie;return _ie(A,(function(e,r){Tie(n,t(e,r,A),e)})),n}});var Fie=BO,Nie=Ure,Lie=Vre,Uie=Yre.Map,Kie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var A=Nie(this),t=Fie(e,arguments.length>1?arguments[1]:void 0),n=new Uie;return Lie(A,(function(e,r){Kie(n,r,t(e,r,A))})),n}});var xie=Ure,Yie=_2,Pie=Yre.set;WO({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var A=xie(this),t=arguments.length,n=0;n 1?arguments[1]:void 0);return!0===qie(A,(function(e,n){if(t(e,n,A))return!0}),!0)}});var Vie=eJ,Wie=Ure,Zie=TypeError,$ie=Yre.get,eoe=Yre.has,Aoe=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,A){var t=Wie(this),n=arguments.length;Vie(A);var r=eoe(t,e);if(!r&&n<3)throw Zie("Updating absent value");var i=r?$ie(t,e):Vie(n>2?arguments[2]:void 0)(e,t);return Aoe(t,e,A(i,e,t)),t}});var toe=AH,noe=eJ,roe=VP,ioe=DO,ooe=TypeError,aoe=function(e,A){var t,n=ioe(this),r=noe(n.get),i=noe(n.has),o=noe(n.set),a=arguments.length>2?arguments[2]:void 0;if(!roe(A)&&!roe(a))throw ooe("At least one callback required");return toe(i,n,e)?(t=toe(r,n,e),roe(A)&&(t=A(t),toe(o,n,e,t))):roe(a)&&(t=a(),toe(o,n,e,t)),t};WO({target:"Map",proto:!0,real:!0,forced:!0},{upsert:aoe}),WO({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:aoe});var soe=DP(wre),goe=DO,coe=f2,loe=BO,uoe=AH,Ioe=fJ,hoe=function(e,A,t,n){try{return n?A(goe(t)[0],t[1]):A(t)}catch(r){coe(e,"throw",r)}},Coe=A2,doe=Yz,Eoe=sz,foe=hz,Boe=h2,Qoe=a2,poe=Array,voe=function(e){var A=Ioe(e),t=doe(this),n=arguments.length,r=n>1?arguments[1]:void 0,i=void 0!==r;i&&(r=loe(r,n>2?arguments[2]:void 0));var o,a,s,g,c,l,u=Qoe(A),I=0;if(!u||this===poe&&Coe(u))for(o=Eoe(A),a=t?new this(o):poe(o);o>I;I++)l=i?r(A[I],I):A[I],foe(a,I,l);else for(c=(g=Boe(A,u)).next,a=t?new this:[];!(s=uoe(c,g)).done;I++)l=i?hoe(g,r,[s.value,I],!0):s.value,foe(a,I,l);return a.length=I,a},yoe=WO,moe=voe,Doe=!P3((function(e){nm(e)}));yoe({target:"Array",stat:!0,forced:Doe},{from:moe});var woe=DP(mH.Array.from),Roe=jY(e0("Array")),koe=yz,Soe=pJ,Moe=MH,Goe=Roe,_oe=Array.prototype,boe={DOMTokenList:!0,NodeList:!0},Toe=function(e){var A=jY(e);return e===_oe||Moe(_oe,e)&&A===jY(_oe)||Soe(boe,koe(e))?Goe:A},Foe=DP(Toe),Noe=function(){function e(A){v8(this,e),v1(this,"ctx",void 0),v1(this,"strategyMap",new soe),this.ctx=A}return m8(e,[{key:"registerStrategy",value:function(e){var A;return!(null==e||null===(A=e.Strategy)||void 0===A||!A.strategyName||(this.strategyMap.get(e.Strategy.strategyName)||this.strategyMap.set(e.Strategy.strategyName,{inst:new e.Strategy({ctx:this.ctx,config:e.config,strategyName:e.Strategy.strategyName,strategyCenter:this})}),0))}},{key:"getStrategyInstByName",value:function(e){var A;return e&&null!==(A=this.strategyMap.get(e))&&void 0!==A&&A.inst?this.strategyMap.get(e).inst:null}},{key:"getStrategyList",value:function(){var e,A;return i7(e=woe(Foe(A=this.strategyMap).call(A))).call(e,(function(e){return e.inst}))}},{key:"getStrategyByName",value:function(e){return e&&this.strategyMap.get(e)?this.strategyMap.get(e):null}},{key:"registerAlgorithm",value:function(){}},{key:"getStrategyInstByNameAsync",value:function(){}},{key:"loadStrategySrcAsync",value:function(){}}]),e}(),Loe=function(){function e(A){v8(this,e),v1(this,"inst",void 0),this.inst=A.inst}return m8(e,[{key:"getInst",value:function(){return this.inst}},{key:"getPlayerConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.playerConfig}},{key:"getStrategyConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.strategyConfig}}]),e}(),Uoe=function(){function e(){v8(this,e),v1(this,"players",void 0),this.players=new soe}return m8(e,[{key:"get",value:function(e){return this.players.get(e)}},{key:"addPlayer",value:function(e,A){return!(!e||this.players.get(e)||(this.players.set(e,new Loe(A)),0))}},{key:"getPlayerList",value:function(){var e;return woe(Foe(e=this.players).call(e))}},{key:"removePlayer",value:function(e){return!(!e||!this.players.get(e)||(this.players.delete(e),0))}}]),e}();!function(){function e(A){v8(this,e),v1(this,"strategyCenter",void 0),v1(this,"ctx",void 0),v1(this,"config",void 0),v1(this,"player",void 0),v1(this,"strategyName",void 0),this.ctx=A.ctx,this.config=A.config,this.strategyName=A.strategyName,this.strategyCenter=A.strategyCenter,this.player=null}m8(e,[{key:"getStrategyConfig",value:function(){return this.config}},{key:"setPlayerInst",value:function(e){this.player=e.getInst()}},{key:"beforePlayerCreate",value:function(e){}},{key:"onPlayerEvent",value:function(e,A){}},{key:"onGlobalEvent",value:function(e,A){}}])}();var Koe=function(){function e(A){v8(this,e),v1(this,"tracker",void 0),v1(this,"_tea",void 0),v1(this,"ctx",void 0),v1(this,"options",void 0),this.ctx=A.cxt,this.options=A,this.initTracker(A),this.bindABVersion()}return m8(e,[{key:"bindTrackerABVersion",value:function(e){var A,t,n,r=this;!this._tea&&e&&null!==(A=this.options)&&void 0!==A&&null!==(A=A.trackInfo)&&void 0!==A&&A.enableABVersion&&(this._tea=e,null===(t=this._tea)||void 0===t||null===(n=t.filterEvent)||void 0===n||n.call(t,(function(e){var A,t;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(t=w8(A))||void 0===t||t.call(A,(function(e){var A,t,n,i=((null===(A=r.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;!i||!e||null!==(t=e.ab_sdk_version)&&void 0!==t&&k7(t).call(t,i)||(e.ab_sdk_version=e.ab_sdk_version?V8(n="".concat(e.ab_sdk_version,",")).call(n,i):"".concat(i))})),e})))}},{key:"track",value:function(e,A){var t,n;"function"==typeof this.tracker?this.tracker(e,A):null===(t=this.tracker)||void 0===t||null===(n=t.event)||void 0===n||n.call(t,e,A)}},{key:"initTracker",value:function(e){var A,t;if(k7(A=[J7.LIVE,J7.VOD]).call(A,e.type)&&null!==(t=e.trackInfo)&&void 0!==t&&t.Collector&&"undefined"!=typeof window){var n="__vestrategy_".concat(e.type,"_tracker__");if(!window[n]){this.tracker=window[n]=new e.trackInfo.Collector("".concat(e.type,"_tracker")),this.tracker.init({app_id:e.appId,channel:e.channel||O7.CN,log:!1,disable_sdk_monitor:!0});var r=m1({play_type:e.type===J7.VOD?0:1,line_app_id:e.lineAppId,line_user_id:e.lineUserId},U7(this.ctx.featureCenter.getFeatureList()));return this.tracker.config(m1(m1({},r),{},{user_unique_id:e.lineUserId,disable_auto_pv:!0})),void this.tracker.start()}this.tracker=window[n]}}},{key:"bindABVersion",value:function(){var e,A,t=this;this.tracker&&(null===(e=this.tracker)||void 0===e||null===(A=e.filterEvent)||void 0===A||A.call(e,(function(e){var A,n;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(n=w8(A))||void 0===n||n.call(A,(function(e){var A,n=((null===(A=t.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;n&&e&&(e.ab_sdk_version="".concat(n))})),e})))}}]),e}();WO({target:"Array",stat:!0},{isArray:$O});var xoe,Yoe=DP(mH.Array.isArray),Poe=function(e){return e.Equal="锛�",e.NotEqual="鈮�",e.Greater=">",e.GreaterOrEqual="鈮�",e.Less="<",e.LessOrEqual="鈮�",e}(Poe||{}),Hoe=(v1(xoe={},"锛�",{validate:function(e,A){var t;return Yoe(Foe(e))?k7(t=Foe(e)).call(t,A):Foe(e)===A}}),v1(xoe,"鈮�",{validate:function(e,A){var t;return Yoe(Foe(e))?!k7(t=Foe(e)).call(t,A):Foe(e)!==A}}),v1(xoe,">",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&A>Foe(e)}}),v1(xoe,"鈮�",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&A>=Foe(e)}}),v1(xoe,"<",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&A a;)t=r[a++],Xoe&&!(i?t in n:eae(n,t))||Aae(s,e?[t,n[t]]:n[t]);return s}},rae={entries:nae(!0),values:nae(!1)},iae=WO,oae=jY(rae);iae({target:"Object",stat:!0},{values:function(e){return oae(e)}});var aae=DP(jY(mH.Object)),sae=zv(e0("Array")),gae=yz,cae=pJ,lae=MH,uae=sae,Iae=Array.prototype,hae={DOMTokenList:!0,NodeList:!0},Cae=function(e){var A=zv(e);return e===Iae||lae(Iae,e)&&A===zv(Iae)||cae(hae,gae(e))?uae:A},dae=DP(Cae),Eae={exports:{}};!function(e,A){var t="__lodash_hash_undefined__",n=9007199254740991,r="[object Arguments]",i="[object AsyncFunction]",o="[object Function]",a="[object GeneratorFunction]",s="[object Null]",g="[object Object]",c="[object Proxy]",l="[object Undefined]",u=/^\[object .+?Constructor\]$/,I=/^(?:0|[1-9]\d*)$/,h={};h["[object Float32Array]"]=h["[object Float64Array]"]=h["[object Int8Array]"]=h["[object Int16Array]"]=h["[object Int32Array]"]=h["[object Uint8Array]"]=h["[object Uint8ClampedArray]"]=h["[object Uint16Array]"]=h["[object Uint32Array]"]=!0,h[r]=h["[object Array]"]=h["[object ArrayBuffer]"]=h["[object Boolean]"]=h["[object DataView]"]=h["[object Date]"]=h["[object Error]"]=h[o]=h["[object Map]"]=h["[object Number]"]=h[g]=h["[object RegExp]"]=h["[object Set]"]=h["[object String]"]=h["[object WeakMap]"]=!1;var C,d,E,f="object"==O$(mP)&&mP&&mP.Object===Object&&mP,B="object"==("undefined"==typeof self?"undefined":O$(self))&&self&&self.Object===Object&&self,Q=f||B||Function("return this")(),p=A&&!A.nodeType&&A,v=p&&e&&!e.nodeType&&e,y=v&&v.exports===p,m=y&&f.process,D=function(){try{return v&&v.require&&v.require("util").types||m&&m.binding&&m.binding("util")}catch(e){}}(),w=D&&D.isTypedArray,R=Array.prototype,k=Function.prototype,S=Object.prototype,M=Q["__core-js_shared__"],G=k.toString,_=S.hasOwnProperty,b=(C=/[^.]+$/.exec(M&&dae(M)&&dae(M).IE_PROTO||""))?"Symbol(src)_1."+C:"",T=S.toString,F=G.call(Object),N=RegExp("^"+G.call(_).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),L=y?Q.Buffer:void 0,U=Q.Symbol,K=Q.Uint8Array,x=(L&&L.allocUnsafe,d=lte,E=Object,function(e){return d(E(e))}),Y=cte,P=S.propertyIsEnumerable,H=sne(R),J=U?U.toStringTag:void 0,O=function(){try{var e=le(Object,"defineProperty");return e({},"",{}),e}catch(A){}}(),z=L?L.isBuffer:void 0,j=Math.max,X=H7,q=le(Q,"Map"),V=le(Object,"create"),W=function(){function e(){}return function(A){if(!we(A))return{};if(Y)return Y(A);e.prototype=A;var t=new e;return e.prototype=void 0,t}}();function Z(e){var A=-1,t=null==e?0:e.length;for(this.clear();++A -1},$.prototype.set=function(e,A){var t=this.__data__,n=re(t,e);return n<0?(++this.size,t.push([e,A])):t[n][1]=A,this},ee.prototype.clear=function(){this.size=0,this.__data__={hash:new Z,map:new(q||$),string:new Z}},ee.prototype.delete=function(e){var A=ce(this,e).delete(e);return this.size-=A?1:0,A},ee.prototype.get=function(e){return ce(this,e).get(e)},ee.prototype.has=function(e){return ce(this,e).has(e)},ee.prototype.set=function(e,A){var t=ce(this,e),n=t.size;return t.set(e,A),this.size+=t.size==n?0:1,this},Ae.prototype.clear=function(){this.__data__=new $,this.size=0},Ae.prototype.delete=function(e){var A=this.__data__,t=A.delete(e);return this.size=A.size,t},Ae.prototype.get=function(e){return this.__data__.get(e)},Ae.prototype.has=function(e){return this.__data__.has(e)},Ae.prototype.set=function(e,A){var t=this.__data__;if(t instanceof $){var n=t.__data__;if(!q||n.length<199)return n.push([e,A]),this.size=++t.size,this;t=this.__data__=new ee(n)}return t.set(e,A),this.size=t.size,this};function oe(e){return null==e?void 0===e?l:s:J&&J in Object(e)?function(e){var A=_.call(e,J),t=e[J];try{e[J]=void 0;var n=!0}catch(i){}var r=T.call(e);return n&&(A?e[J]=t:delete e[J]),r}(e):(A=e,T.call(A));var A}function ae(e){return Re(e)&&oe(e)==r}function se(e,A,t,n,r){e!==A&&function(e,A,t){for(var n=-1,r=Object(e),i=t(e),o=i.length;o--;){var a=i[++n];if(!1===A(r[a],a,r))break}}(A,(function(i,o){if(r||(r=new Ae),we(i))!function(e,A,t,n,r,i,o){var a=he(e,t),s=he(A,t),c=o.get(s);if(c)te(e,t,c);else{var l,u,I,h,C,d,E=i?i(a,s,t+"",e,A,o):void 0,f=void 0===E;if(f){var B=pe(s),Q=!B&&ye(s),p=!B&&!Q&&ke(s);E=s,B||Q||p?pe(a)?E=a:Re(d=a)&&ve(d)?E=function(e,A){var t=-1,n=e.length;for(A||(A=Array(n));++t -1&&e%1==0&&e0){if(++de>=800)return arguments[0]}else de=0;return Ce.apply(void 0,arguments)});function Be(e,A){return e===A||e!=e&&A!=A}var Qe=ae(function(){return arguments}())?ae:function(e){return Re(e)&&_.call(e,"callee")&&!P.call(e,"callee")},pe=Yoe;function ve(e){return null!=e&&De(e.length)&&!me(e)}var ye=z||function(){return!1};function me(e){if(!we(e))return!1;var A=oe(e);return A==o||A==a||A==i||A==c}function De(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}function we(e){var A=O$(e);return null!=e&&("object"==A||"function"==A)}function Re(e){return null!=e&&"object"==O$(e)}var ke=w?function(e){return function(A){return e(A)}}(w):function(e){return Re(e)&&De(e.length)&&!!h[oe(e)]};function Se(e){return ve(e)?function(e,A){var t=pe(e),n=!t&&Qe(e),r=!t&&!n&&ye(e),i=!t&&!n&&!r&&ke(e),o=t||n||r||i,a=o?function(e,A){for(var t=-1,n=Array(e);++t 1?A[n-1]:void 0,i=n>2?A[2]:void 0;for(r=Me.length>3&&"function"==typeof r?(n--,r):void 0,i&&function(e,A,t){if(!we(t))return!1;var n=O$(A);return!!("number"==n?ve(t)&&ue(A,t.length):"string"==n&&A in t)&&Be(t[A],e)}(A[0],A[1],i)&&(r=n<3?void 0:r,n=1),e=Object(e);++t 0;)e[n]=e[--n];n!==i++&&(e[n]=t)}return e},wae=function(e,A,t,n){for(var r=A.length,i=t.length,o=0,a=0;o 0?arguments[0]:void 0));_ae||(this.size=PK(e).length)},Lse=Nse.prototype;if(Nae(Lse,{append:function(e,A){var t=rse(this);Zae(arguments.length,2),Bse(PK(t),{key:jae(e),value:jae(A)}),_ae||this.length++,t.updateURL()},delete:function(e){for(var A=rse(this),t=Zae(arguments.length,1),n=PK(A),r=jae(e),i=t<2?void 0:arguments[1],o=void 0===i?i:jae(i),a=0;a A.key?1:-1})),e.updateURL()},forEach:function(e){for(var A,t=PK(rse(this)),n=Hae(e,arguments.length>1?arguments[1]:void 0),r=0;r 1?xse(arguments[1]):{})}}),Yae(gse)){var Yse=function(e){return xae(this,lse),new gse(e,arguments.length>1?xse(arguments[1]):{})};lse.constructor=Yse,Yse.prototype=lse,kae({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Yse})}}var Pse,Hse={URLSearchParams:Nse,getState:rse},Jse=KP,Ose=2147483647,zse=/[^\0-\u007E]/,jse=/[.\u3002\uFF0E\uFF61]/g,Xse="Overflow: input needs wider integers to process",qse=RangeError,Vse=Jse(jse.exec),Wse=Math.floor,Zse=String.fromCharCode,$se=Jse("".charCodeAt),ege=Jse([].join),Age=Jse([].push),tge=Jse("".replace),nge=Jse("".split),rge=Jse("".toLowerCase),ige=function(e){return e+22+75*(e<26)},oge=function(e,A,t){var n=0;for(e=t?Wse(e/700):e>>1,e+=Wse(e/A);e>455;)e=Wse(e/35),n+=36;return Wse(n+36*e/(e+38))},age=function(e){var A,t,n=[],r=(e=function(e){for(var A=[],t=0,n=e.length;t =55296&&r<=56319&&t =i&&t Wse((Ose-o)/l))throw qse(Xse);for(o+=(c-i)*l,i=c,A=0;A Ose)throw qse(Xse);if(t==i){for(var u=o,I=36;;){var h=I<=a?1:I>=a+26?26:I-a;if(u ?@[\\\]^|]/,oce=/[\0\t\n\r #/:<>?@[\\\]^|]/,ace=/^[\u0000-\u0020]+/,sce=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,gce=/[\t\n\r]/g,cce=function(e){var A,t,n,r;if("number"==typeof e){for(A=[],t=0;t<4;t++)Xge(A,e%256),e=Fge(e/256);return Kge(A,".")}if("object"==wc(e)){for(A="",n=function(e){for(var A=null,t=1,n=null,r=0,i=0;i<8;i++)0!==e[i]?(r>t&&(A=n,t=r),n=null,r=0):(null===n&&(n=i),++r);return r>t&&(A=n,t=r),A}(e),t=0;t<8;t++)r&&0===e[t]||(r&&(r=!1),n===t?(A+=t?":":"::",r=!0):(A+=xge(e[t],16),t<7&&(A+=":")));return"["+A+"]"}return e},lce={},uce=fge({},lce,{" ":1,'"':1,"<":1,">":1,"`":1}),Ice=fge({},uce,{"#":1,"?":1,"{":1,"}":1}),hce=fge({},Ice,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Cce=function(e,A){var t=pge(e,0);return t>32&&t<127&&!Ege(A,e)?e:encodeURIComponent(e)},dce={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ece=function(e,A){var t;return 2==e.length&&Uge(Zge,Lge(e,0))&&(":"==(t=Lge(e,1))||!A&&"|"==t)},fce=function(e){var A;return e.length>1&&Ece(zge(e,0,2))&&(2==e.length||"/"===(A=Lge(e,2))||"\\"===A||"?"===A||"#"===A)},Bce=function(e){return"."===e||"%2e"===jge(e)},Qce=function(e){return".."===(e=jge(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},pce={},vce={},yce={},mce={},Dce={},wce={},Rce={},kce={},Sce={},Mce={},Gce={},_ce={},bce={},Tce={},Fce={},Nce={},Lce={},Uce={},Kce={},xce={},Yce={},Pce=function e(A,t,n){var r,i,o,a=yge(A);if(t){if(i=this.parse(a))throw bge(i);this.searchParams=null}else{if(void 0!==n&&(r=new e(n,!0)),i=this.parse(a,null,r))throw bge(i);(o=Gge(new Mge)).bindURL(this),this.searchParams=o}};Pce.prototype={type:"URL",parse:function(e,A,t){var n,r,i,o,a=this,s=A||pce,g=0,c="",l=!1,u=!1,I=!1;for(e=yge(e),A||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=Hge(e,ace,""),e=Hge(e,sce,"$1")),e=Hge(e,gce,""),n=Bge(e);g<=n.length;){switch(r=n[g],s){case pce:if(!r||!Uge(Zge,r)){if(A)return qge;s=yce;continue}c+=jge(r),s=vce;break;case vce:if(r&&(Uge($ge,r)||"+"==r||"-"==r||"."==r))c+=jge(r);else{if(":"!=r){if(A)return qge;c="",s=yce,g=0;continue}if(A&&(a.isSpecial()!=Ege(dce,c)||"file"==c&&(a.includesCredentials()||null!==a.port)||"file"==a.scheme&&!a.host))return;if(a.scheme=c,A)return void(a.isSpecial()&&dce[a.scheme]==a.port&&(a.port=null));c="","file"==a.scheme?s=Tce:a.isSpecial()&&t&&t.scheme==a.scheme?s=mce:a.isSpecial()?s=kce:"/"==n[g+1]?(s=Dce,g++):(a.cannotBeABaseURL=!0,Pge(a.path,""),s=Kce)}break;case yce:if(!t||t.cannotBeABaseURL&&"#"!=r)return qge;if(t.cannotBeABaseURL&&"#"==r){a.scheme=t.scheme,a.path=Qge(t.path),a.query=t.query,a.fragment="",a.cannotBeABaseURL=!0,s=Yce;break}s="file"==t.scheme?Tce:wce;continue;case mce:if("/"!=r||"/"!=n[g+1]){s=wce;continue}s=Sce,g++;break;case Dce:if("/"==r){s=Mce;break}s=Uce;continue;case wce:if(a.scheme=t.scheme,r==Pse)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query=t.query;else if("/"==r||"\\"==r&&a.isSpecial())s=Rce;else if("?"==r)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query="",s=xce;else{if("#"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.path.length--,s=Uce;continue}a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query=t.query,a.fragment="",s=Yce}break;case Rce:if(!a.isSpecial()||"/"!=r&&"\\"!=r){if("/"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,s=Uce;continue}s=Mce}else s=Sce;break;case kce:if(s=Sce,"/"!=r||"/"!=Lge(c,g+1))continue;g++;break;case Sce:if("/"!=r&&"\\"!=r){s=Mce;continue}break;case Mce:if("@"==r){l&&(c="%40"+c),l=!0,i=Bge(c);for(var h=0;h 65535)return Wge;a.port=a.isSpecial()&&E===dce[a.scheme]?null:E,c=""}if(A)return;s=Lce;continue}return Wge}c+=r;break;case Tce:if(a.scheme="file","/"==r||"\\"==r)s=Fce;else{if(!t||"file"!=t.scheme){s=Uce;continue}if(r==Pse)a.host=t.host,a.path=Qge(t.path),a.query=t.query;else if("?"==r)a.host=t.host,a.path=Qge(t.path),a.query="",s=xce;else{if("#"!=r){fce(Kge(Qge(n,g),""))||(a.host=t.host,a.path=Qge(t.path),a.shortenPath()),s=Uce;continue}a.host=t.host,a.path=Qge(t.path),a.query=t.query,a.fragment="",s=Yce}}break;case Fce:if("/"==r||"\\"==r){s=Nce;break}t&&"file"==t.scheme&&!fce(Kge(Qge(n,g),""))&&(Ece(t.path[0],!0)?Pge(a.path,t.path[0]):a.host=t.host),s=Uce;continue;case Nce:if(r==Pse||"/"==r||"\\"==r||"?"==r||"#"==r){if(!A&&Ece(c))s=Uce;else if(""==c){if(a.host="",A)return;s=Lce}else{if(o=a.parseHost(c))return o;if("localhost"==a.host&&(a.host=""),A)return;c="",s=Lce}continue}c+=r;break;case Lce:if(a.isSpecial()){if(s=Uce,"/"!=r&&"\\"!=r)continue}else if(A||"?"!=r)if(A||"#"!=r){if(r!=Pse&&(s=Uce,"/"!=r))continue}else a.fragment="",s=Yce;else a.query="",s=xce;break;case Uce:if(r==Pse||"/"==r||"\\"==r&&a.isSpecial()||!A&&("?"==r||"#"==r)){if(Qce(c)?(a.shortenPath(),"/"==r||"\\"==r&&a.isSpecial()||Pge(a.path,"")):Bce(c)?"/"==r||"\\"==r&&a.isSpecial()||Pge(a.path,""):("file"==a.scheme&&!a.path.length&&Ece(c)&&(a.host&&(a.host=""),c=Lge(c,0)+":"),Pge(a.path,c)),c="","file"==a.scheme&&(r==Pse||"?"==r||"#"==r))for(;a.path.length>1&&""===a.path[0];)Jge(a.path);"?"==r?(a.query="",s=xce):"#"==r&&(a.fragment="",s=Yce)}else c+=Cce(r,Ice);break;case Kce:"?"==r?(a.query="",s=xce):"#"==r?(a.fragment="",s=Yce):r!=Pse&&(a.path[0]+=Cce(r,lce));break;case xce:A||"#"!=r?r!=Pse&&("'"==r&&a.isSpecial()?a.query+="%27":a.query+="#"==r?"%23":Cce(r,lce)):(a.fragment="",s=Yce);break;case Yce:r!=Pse&&(a.fragment+=Cce(r,uce))}g++}},parseHost:function(e){var A,t,n;if("["==Lge(e,0)){if("]"!=Lge(e,e.length-1))return Vge;if(!(A=function(e){var A,t,n,r,i,o,a,s=[0,0,0,0,0,0,0,0],g=0,c=null,l=0,u=function(){return Lge(e,l)};if(":"==u()){if(":"!=Lge(e,1))return;l+=2,c=++g}for(;u();){if(8==g)return;if(":"!=u()){for(A=t=0;t<4&&Uge(rce,u());)A=16*A+Tge(u(),16),l++,t++;if("."==u()){if(0==t)return;if(l-=t,g>6)return;for(n=0;u();){if(r=null,n>0){if(!("."==u()&&n<4))return;l++}if(!Uge(ece,u()))return;for(;Uge(ece,u());){if(i=Tge(u(),10),null===r)r=i;else{if(0==r)return;r=10*r+i}if(r>255)return;l++}s[g]=256*s[g]+r,2!=++n&&4!=n||g++}if(4!=n)return;break}if(":"==u()){if(l++,!u())return}else if(u())return;s[g++]=A}else{if(null!==c)return;l++,c=++g}}if(null!==c)for(o=g-c,g=7;0!=g&&o>0;)a=s[g],s[g--]=s[c+o-1],s[c+--o]=a;else if(8!=g)return;return s}(zge(e,1,-1))))return Vge;this.host=A}else if(this.isSpecial()){if(e=vge(e),Uge(ice,e))return Vge;if(null===(A=function(e){var A,t,n,r,i,o,a,s=Oge(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(A=s.length)>4)return e;for(t=[],n=0;n1&&"0"==Lge(r,0)&&(i=Uge(Ace,r)?16:8,r=zge(r,8==i?1:2)),""===r)o=0;else{if(!Uge(10==i?nce:8==i?tce:rce,r))return e;o=Tge(r,i)}Pge(t,o)}for(n=0;n=Nge(256,5-A))return null}else if(o>255)return null;for(a=Yge(t),n=0;n 1?arguments[1]:void 0,n=kge(A,new Pce(e,!1,t));gge||(A.href=n.serialize(),A.origin=n.getOrigin(),A.protocol=n.getProtocol(),A.username=n.getUsername(),A.password=n.getPassword(),A.host=n.getHost(),A.hostname=n.getHostname(),A.port=n.getPort(),A.pathname=n.getPathname(),A.search=n.getSearch(),A.searchParams=n.getSearchParams(),A.hash=n.getHash())},Jce=Hce.prototype,Oce=function(e,A){return{get:function(){return Sge(this)[e]()},set:A&&function(e){return Sge(this)[A](e)},configurable:!0,enumerable:!0}};if(gge&&(Cge(Jce,"href",Oce("serialize","setHref")),Cge(Jce,"origin",Oce("getOrigin")),Cge(Jce,"protocol",Oce("getProtocol","setProtocol")),Cge(Jce,"username",Oce("getUsername","setUsername")),Cge(Jce,"password",Oce("getPassword","setPassword")),Cge(Jce,"host",Oce("getHost","setHost")),Cge(Jce,"hostname",Oce("getHostname","setHostname")),Cge(Jce,"port",Oce("getPort","setPort")),Cge(Jce,"pathname",Oce("getPathname","setPathname")),Cge(Jce,"search",Oce("getSearch","setSearch")),Cge(Jce,"searchParams",Oce("getSearchParams")),Cge(Jce,"hash",Oce("getHash","setHash"))),hge(Jce,"toJSON",(function(){return Sge(this).serialize()}),{enumerable:!0}),hge(Jce,"toString",(function(){return Sge(this).serialize()}),{enumerable:!0}),_ge){var zce=_ge.createObjectURL,jce=_ge.revokeObjectURL;zce&&hge(Hce,"createObjectURL",uge(zce,_ge)),jce&&hge(Hce,"revokeObjectURL",uge(jce,_ge))}mge(Hce,"URL"),sge({global:!0,constructor:!0,forced:!cge,sham:!gge},{URL:Hce});var Xce=WO,qce=kP,Vce=Q5,Wce=Cj,Zce=vae,$ce=SH("URL");Xce({target:"URL",stat:!0,forced:!(Zce&&qce((function(){$ce.canParse()})))},{canParse:function(e){var A=Vce(arguments.length,1),t=Wce(e),n=A<2||void 0===arguments[1]?void 0:Wce(arguments[1]);try{return!!new $ce(t,n)}catch(r){return!1}}});var ele=DP(mH.URL),Ale=pJ,tle=AH,nle=yH,rle=DO,ile=function(e){return void 0!==e&&(Ale(e,"value")||Ale(e,"writable"))},ole=WP,ale=XW;WO({target:"Reflect",stat:!0},{get:function e(A,t){var n,r,i=arguments.length<3?A:arguments[2];return rle(A)===i?A[t]:(n=ole.f(A,t))?ile(n)?n.value:void 0===n.get?void 0:tle(n.get,i):nle(r=ale(A))?e(r,t,i):void 0}});var sle=DP(mH.Reflect.get);function gle(){var e;return gle="undefined"!=typeof Reflect&&sle?B9(e=sle).call(e):function(e,A,t){var n=function(e,A){for(;!Object.prototype.hasOwnProperty.call(e,A)&&null!==(e=L9(e)););return e}(e,A);if(n){var r=d0(n,A);return r.get?r.get.call(arguments.length<3?e:t):r.value}},gle.apply(this,arguments)}function cle(e,A,t){var n;return(cle=U9()?B9(n=N9).call(n):function(e,A,t){var n=[null];b0(n).apply(n,A);var r=new(B9(Function).apply(e,n));return t&&Q9(r,t.prototype),r}).apply(null,arguments)}var lle=RP;WO({global:!0,forced:lle.globalThis!==lle},{globalThis:lle});var ule,Ile,hle,Cle,dle,Ele,fle=DP(RP),Ble=(null===(ule=void 0!==fle?fle:void 0)||void 0===ule?void 0:ule.crypto)||(null===(Ile="undefined"!=typeof global?global:void 0)||void 0===Ile?void 0:Ile.crypto)||(null===(hle="undefined"!=typeof window?window:void 0)||void 0===hle?void 0:hle.crypto)||(null===(Cle="undefined"!=typeof self?self:void 0)||void 0===Cle?void 0:Cle.crypto)||(null===(dle="undefined"!=typeof frames?frames:void 0)||void 0===dle||null===(dle=dle[0])||void 0===dle?void 0:dle.crypto);Ele=Ble?function(e){for(var A=[],t=0;t >16)&n)<<16)+(A=18e3*(65535&A)+(A>>16)&n)&n;return e/=4294967296,(e+=.5)*(Math.random()>.5?1:-1)}},r=0;r 0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4*n.length;v8(this,t),e=A.call(this);var i=n;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),(i instanceof Int8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)&&(i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),i instanceof Uint8Array){for(var o=i.byteLength,a=[],s=0;s >>2]|=i[s]<<24-s%4*8;e.words=a,e.sigBytes=o}else e.words=n,e.sigBytes=r;return e}return m8(t,[{key:"toString",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:vle).stringify(this)}},{key:"concat",value:function(e){var A=this.words,t=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i >>2]>>>24-i%4*8&255;A[n+i>>>2]|=o<<24-(n+i)%4*8}else for(var a=0;a >>2]=t[a>>>2];return this.sigBytes+=r,this}},{key:"clamp",value:function(){var e=this.words,A=this.sigBytes;e[A>>>2]&=4294967295<<32-A%4*8,e.length=Math.ceil(A/4)}},{key:"clone",value:function(){var e,A=gle(L9(t.prototype),"clone",this).call(this);return A.words=Ite(e=this.words).call(e,0),A}}]),t}();v1(ple,"random",Ele);var vle={stringify:function(e){for(var A=e.words,t=e.sigBytes,n=[],r=0;r >>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var A=e.length,t=[],n=0;n>>3]|=LAe(e.substr(n,2),16)<<24-n%8*4;return new ple(t,A/2)}},yle=function(e){for(var A=e.length,t=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new ple(t,A)},mle=function(e){return yle(unescape(encodeURIComponent(e)))},Dle=function(e){p9(t,Qle);var A=x9(t);function t(){var e;return v8(this,t),(e=A.call(this))._minBufferSize=0,e}return m8(t,[{key:"reset",value:function(){this._data=new ple,this._nDataBytes=0}},{key:"_append",value:function(e){var A,t=e;"string"==typeof t&&(t=mle(t)),V8(A=this._data).call(A,t),this._nDataBytes+=t.sigBytes}},{key:"_process",value:function(e){var A,t=this._data,n=this.blockSize,r=t.words,i=t.sigBytes,o=i/(4*n),a=(o=e?Math.ceil(o):Math.max((0|o)-this._minBufferSize,0))*n,s=Math.min(4*a,i);if(a){for(var g=0;gs&&(o=i.finalize(n)),o.clamp();var g=o.clone();r._oKey=g;var c=o.clone();r._iKey=c;for(var l=g.words,u=c.words,I=0;I>>31}var c=(n<<5|n>>>27)+a+kle[s];c+=s<20?1518500249+(r&i|~r&o):s<40?1859775393+(r^i^o):s<60?(r&i|r&o|i&o)-1894007588:(r^i^o)-899497514,a=o,o=i,i=r<<30|r>>>2,r=n,n=c}t[0]=t[0]+n|0,t[1]=t[1]+r|0,t[2]=t[2]+i|0,t[3]=t[3]+o|0,t[4]=t[4]+a|0}},{key:"_doFinalize",value:function(){var e=this._data,A=e.words,t=8*this._nDataBytes,n=8*e.sigBytes;return A[n>>>5]|=128<<24-n%32,A[14+(n+64>>>9<<4)]=Math.floor(t/4294967296),A[15+(n+64>>>9<<4)]=t,e.sigBytes=4*A.length,this._process(),this._hash}},{key:"clone",value:function(){var e=gle(L9(t.prototype),"clone",this).call(this);return e._hash=this._hash.clone(),e}}]),t}();wle._createHelper(Sle);var Mle,Gle=wle._createHmacHelper(Sle);!function(e,A,t){function n(e,A){var t=Uv(Xp(e).call(e,A,A+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=Uv(Xp(e).call(e,A+2,A+4),16)]):(t=(63&t)<<16,[3,t+=Uv(Xp(e).call(e,A+2,A+6),16)])}var r,i=0,o=[],a=[];for(r=0;r<4;++r)i+=(3&Uv(Xp(e).call(e,8+2*r,10+2*r),16))<<2*r;var s=Uv(Xp(e).call(e,16,24),16),g=2*Uv(Xp(e).call(e,32,40),16);for(r=40;r 0;--c)u=u.p;C[++h]=u[l];break;case 29:g=(o[A]<<8)+o[A+1],A+=2,c=a[g],C[h]=C[h][c];break;case 43:for(c=o[A++],l=o[A++],u=E;c>0;--c)u=u.p;u[l]=C[h--];break;case 53:g=o[A++],c=C[h--],(l=function e(){var A=e._v;return(0,e._u)(A[0],arguments,A[1],A[2],this)})._v=[c,g,E],l._u=e,C[++h]=l;break;case 50:for(c=C[h--],l=null;u=f.pop();)if(2===u[0]||3===u[0]){l=u;break}if(l)A=l[2],l[0]=0,f.push(l);else{if(!d)return c;A=d[1],i=d[2],E=d[3],f=d[4],C[++h]=c,d=d[0]}break;case 26:h-=g=o[A++],l=Xp(C).call(C,h+1,h+g+1),c=C[h--],u=C[h--],c._u===e?(c=c._v,d=[d,A,i,E,f],A=c[0],null==u&&(u=function(){return this}()),i=u,(E=xf(s=[l]).call(s,l)).length=Math.min(c[1],g)+1,E.p=c[2],f=[]):(I=c.apply(u,l),C[++h]=I);break;case 49:c=C[h],C[++h]=c;break;default:throw new Error("ioe")}}catch(B){for(;(g=f.pop())&&!g[0];);if(!g){e:for(;d;){for(c=d[4];g=c.pop();)if(g[0])break e;d=d[0]}if(!d)throw B;A=d[1],i=d[2],E=d[3],f=d[4],d=d[0]}1===(c=g[0])?(A=g[2],g[0]=0,f.push(g),C[++h]=B):2===c?(A=g[2],g[0]=0,f.push(g)):(A=g[3],g[0]=2,f.push(g),C[++h]=B)}}(s,[],0,A,t)}("504B0101d6ff48f400000028f44afcd4000000343e4802004800014800024800034800043b0004311d00001b00011a011b00021a02311d00031a0032410000000035042b01012a32000404646167600128203f3964627e6c7b63667d376f6766743f7c7f3f783e3f64793960366037647e6a087a615d7a7c676069",{get 0(){return Gle},get 1(){return Mle},set 1(e){Mle=e}},void 0);var _le,ble=function(){function e(A,t){var n,r,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O7.CN;v8(this,e),v1(this,"appId",void 0),v1(this,"ctx",void 0),v1(this,"host",void 0),v1(this,"needSignature",!0),v1(this,"region",void 0),v1(this,"scene",void 0),v1(this,"ext",void 0),this.scene=(n={},v1(n,J7.LIVE,1),v1(n,J7.VOD,0),n)[t.videoType],this.ext=m1({userId:null!==(r=t.featureCenter.getFeatureList().userId)&&void 0!==r?r:"",playerVerson:null!==(i=t.featureCenter.getFeatureList().playerVersion)&&void 0!==i?i:""},this.getConfigType(t.strategies)),this.appId=A,this.ctx=t,this.region=o,this.host=this.getHostByRegion()}return m8(e,[{key:"getConfigType",value:function(e){var A;if(!e)return{};var t={};return w8(A=R8(e)).call(A,(function(A){var n=e[A];n&&(t["".concat(A,"_id")]="object"===O$(n)&&n.configId?n.configId:"default")})),t}},{key:"getCacheKey",value:function(){return G8([this.appId,this.ctx.cacheKey,this.ctx.featureCenter.getH265FeatureList().isHevcSupported,this.ctx.featureCenter.getBrowserInfo(),this.ctx.featureCenter.getFeatureList().deviceId])}},{key:"fetch",value:function(e){function A(){return e.apply(this,arguments)}return A.toString=function(){return e.toString()},A}(p8(B8().mark((function e(){var A,t,n,r,i,o,a;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(this.generateUrl(),{mode:"cors"});case 3:if((A=e.sent).ok){e.next=6;break}throw new Error("Network response was not OK");case 6:return e.next=8,A.json();case 8:return t=e.sent,n=t.data,r=n.custom_settings.web,i=n.general_settings,o=i.use_local_cache,a=i.local_cache_expire,e.abrupt("return",m1(m1({},r),{},{use_local_cache:o,local_cache_expired_at:a>0?H7()+1e3*a:void 0,cache_key:this.getCacheKey()}));case 17:throw e.prev=17,e.t0=e.catch(0),e.t0;case 20:case"end":return e.stop()}}),e,this,[[0,17]])}))))},{key:"getHostByRegion",value:function(){var e;return(null===(e={cn:{settingsHost:"vod-settings.volcvod.com"}}[this.region])||void 0===e?void 0:e.settingsHost)||"vod-settings.volcvod.com"}},{key:"generateSearchParams",value:function(e){if(e.searchParams.set("module","web"),e.searchParams.set("aid",String(this.appId)),e.searchParams.set("region",this.region),e.searchParams.set("web_support_hardware_decode_bytevc1",String(this.ctx.featureCenter.getH265FeatureList().isHevcSupported)),e.searchParams.set("web_os",this.ctx.featureCenter.getBrowserInfo().osName),e.searchParams.set("web_os_version",this.ctx.featureCenter.getBrowserInfo().osVersion),e.searchParams.set("web_platform",this.ctx.featureCenter.getBrowserInfo().platformType),e.searchParams.set("web_browser",this.ctx.featureCenter.getBrowserInfo().browserName),e.searchParams.set("web_browser_version",this.ctx.featureCenter.getBrowserInfo().browserVersion),e.searchParams.set("web_cpu_core",String(this.ctx.featureCenter.getBrowserInfo().cpuCore)),e.searchParams.set("web_scene",String(this.scene)),e.searchParams.set("web_ext",G8(this.ext)),e.searchParams.set("device_id",this.ctx.featureCenter.getFeatureList().deviceId),this.needSignature){var A=H7();e.searchParams.set("timestamp",String(A));var t=Mle(this.appId,this.ctx.featureCenter.getFeatureList().deviceId,this.ctx.featureCenter.getBrowserInfo().browserName,A);e.searchParams.set("signature",t)}return e}},{key:"generateUrl",value:function(){return this.generateSearchParams(new ele("https://".concat(this.host,"/vod/settings/v1")))}}]),e}(),Tle=new q7("VeStrategy"),Fle=(v1(_le={},J7.VOD,joe),v1(_le,J7.LIVE,Bae),_le),Nle=function(){function e(A){v8(this,e),v1(this,"ctx",void 0),v1(this,"configPreparePromise",void 0),v1(this,"isStrategyStarted",!1);var t=new vne(A),n=new A9(A,new ble(A.appId,{featureCenter:t,cacheKey:A.cacheKey,strategies:A.strategies,videoType:A.type||J7.VOD}));Tle.update(A.log),this.ctx={dataCenter:n,featureCenter:t,playerManager:new Uoe,tracker:new Koe({trackInfo:A.tracker,type:A.type||J7.VOD,lineAppId:A.appId,lineUserId:A.deviceId,appId:A.type===J7.VOD?577780:579013,channel:A.region,cxt:{dataCenter:n,featureCenter:t}})},this.prepare(!0)}var A,t,n,r,i;return m8(e,[{key:"start",value:(i=p8(B8().mark((function e(){var A,t=this;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isStrategyStarted){e.next=2;break}return e.abrupt("return");case 2:if(this.isStrategyStarted=!0,Tle.info("Start"),this.ctx.tracker.track("strategy_start",{}),this.ctx.featureCenter.getFeatureList().deviceId){e.next=13;break}return e.next=8,this.getTeaToken();case 8:if(e.t0=e.sent,e.t0){e.next=11;break}e.t0={};case 11:A=e.t0,this.ctx.featureCenter.updateFeatureList({deviceId:A.user_unique_id||A.web_id||""});case 13:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),this.configPreparePromise.then((function(){return t.prepare(!1)})),e.abrupt("return",this.configPreparePromise);case 16:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateFeatures",value:(r=p8(B8().mark((function e(A){var t,n,r;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A&&null!==(t=this.ctx)&&void 0!==t&&null!==(t=t.featureCenter)&&void 0!==t&&t.updateFeatureList){e.next=2;break}return e.abrupt("return");case 2:if(r=null===(n=this.ctx.featureCenter.getFeatureList())||void 0===n?void 0:n.deviceId,this.ctx.featureCenter.updateFeatureList(m1({},A)),!A.deviceId||A.deviceId===r){e.next=6;break}return e.abrupt("return",this.reloadConfig());case 6:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"reloadConfig",value:(n=p8(B8().mark((function e(){return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),e.abrupt("return",this.configPreparePromise);case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getTeaToken",value:(t=p8(B8().mark((function e(){var A=this;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new D8((function(e){var t,n,r;if("function"==typeof(null===(t=A.ctx.tracker)||void 0===t||null===(t=t.tracker)||void 0===t?void 0:t.getToken))return A.ctx.tracker.tracker.getToken((function(A){return e(A)}));var i=((null===(n=A.ctx.tracker)||void 0===n||null===(n=n.tracker)||void 0===n||null===(r=n.getConfig)||void 0===r?void 0:r.call(n))||{}).user;return e(void 0===i?{}:i)})));case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"prepare",value:function(e){var A,t=this,n=this.ctx.dataCenter.getInitStrategyConfig()||{},r=this.ctx.dataCenter.getServiceStrategyConfig()||{};w8(A=R8(n)).call(A,(function(A){var i,o,a,s,g,c,l;(null===(i=n[A])||void 0===i?void 0:i.disabled)||(null==r||null===(o=r[A])||void 0===o?void 0:o.disabled)||null===(a=n[A])||void 0===a||null===(a=a.Strategy)||void 0===a||null===(s=a[e?"prepareBeforeStarted":"prepareAfterStarted"])||void 0===s||s.call(a,{ctx:t.ctx,Strategy:null===(g=n[A])||void 0===g?void 0:g.Strategy,config:m1(m1({},null===(c=n[A])||void 0===c?void 0:c.config),null==r||null===(l=r[A])||void 0===l?void 0:l.config)})}))}}],[{key:"init",value:function(A){if(Tle.update(null==A?void 0:A.log),null!=A&&A.appId){var t,n={};A.strategies&&w8(t=R8(A.strategies)).call(t,(function(e){var t,r;null!==(t=A.strategies)&&void 0!==t&&t[e]&&"object"===O$(null===(r=A.strategies)||void 0===r?void 0:r[e])&&(n[e]=A.strategies[e])}));var r=m1(m1({},A),{},{strategies:n,type:A.type||J7.VOD});if(Tle.info("Init",r),r.type===J7.VOD||r.type===J7.LIVE)return r.type===J7.VOD?(e._vodInst=e._vodInst||new e(r),e._vodInst.ctx.tracker.track("strategy_init",{}),e._vodInst):(e._liveInst=e._liveInst||new e(r),e._liveInst.ctx.tracker.track("strategy_init",{}),e._liveInst);Tle.error("Init Invalid Strategy Type=".concat(A.type))}else Tle.error("Init without appId",A)}},{key:"bootstrap",value:function(A){var t;return null===(t=e.init(A))||void 0===t?void 0:t.start()}},{key:"inst",value:function(){var A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:J7.VOD;return A===J7.VOD?e._vodInst:A===J7.LIVE?e._liveInst:null}},{key:"recLive",value:function(A,t){return e.rec(A,t,J7.LIVE)}},{key:"recAsync",value:(A=p8(B8().mark((function A(t,n){var r,i,o=arguments;return B8().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(r=o.length>2&&void 0!==o[2]?o[2]:J7.VOD,i=e.inst(r||J7.VOD),Tle.info("recAsync",i,n,r),null!=i&&i.configPreparePromise){A.next=6;break}return Tle.error("VeStrategyNotInitOrStart"),A.abrupt("return",{plugins:[],pluginConfiguration:{},result:{}});case 6:return A.next=8,i.configPreparePromise;case 8:return A.abrupt("return",e.rec(t,n,r));case 9:case"end":return A.stop()}}),A)}))),function(e,t){return A.apply(this,arguments)})},{key:"rec",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:J7.VOD;try{return e._rec(A,t,n)}catch(o){var r;Tle.error("VeStrategyRecError");var i=e.inst(n);return null==i||null===(r=i.ctx)||void 0===r||null===(r=r.tracker)||void 0===r||r.track("strategy_js_error",{type:n,option:G8(null!=A?A:{}),common_config:G8(null!=t?t:{})}),{plugins:[],pluginConfiguration:{},result:{}}}}},{key:"reportABInfo",value:function(A){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J7.VOD;J7.VOD!==r?J7.LIVE!==r||null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.tracker)||void 0===t||t.bindTrackerABVersion(A):null===(n=e._vodInst)||void 0===n||null===(n=n.ctx)||void 0===n||null===(n=n.tracker)||void 0===n||n.bindTrackerABVersion(A)}},{key:"getServiceConfig",value:function(){var A,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:J7.VOD;return J7.VOD===n?(null===(A=e._vodInst)||void 0===A||null===(A=A.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}:J7.LIVE===n&&(null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.dataCenter)||void 0===t?void 0:t.getServiceStrategyConfig())||{}}},{key:"apply",value:function(A,t,n){var r,i;if(!A||!t)return A;var o=(null==n?void 0:n.type)||J7.VOD;if(o===J7.VOD&&null!==(r=e._vodInst)&&void 0!==r&&r.ctx){var a,s=(null==n?void 0:n.Adapter)||(null===(a=e._vodInst.ctx.dataCenter.getAppConfig())||void 0===a||null===(a=a.adapter)||void 0===a?void 0:a.Adapter)||Fle[J7.VOD];return s&&(A=(new s).apply(A,t)),A}if(o===J7.LIVE&&null!==(i=e._liveInst)&&void 0!==i&&i.ctx){var g,c=(null==n?void 0:n.Adapter)||(null===(g=e._liveInst.ctx.dataCenter.getAppConfig())||void 0===g||null===(g=g.adapter)||void 0===g?void 0:g.Adapter)||Fle[J7.LIVE];return c&&(A=(new c).apply(A,t)),A}return A}},{key:"_rec",value:function(A,t){var n,r,i,o,a,s,g,c,l,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:J7.VOD,I=e.inst(u||J7.VOD);if(Tle.info("rec",I,t,u),!I)return Tle.error("VeStrategyNotInit"),{plugins:[],pluginConfiguration:{},result:{}};var h=new Noe(I.ctx),C=I.ctx.dataCenter.getServiceStrategyConfig()||{},d=I.ctx.dataCenter.getInitStrategyConfig()||{},E={plugins:[zoe],pluginConfiguration:v1({},zoe.pluginName,{}),result:{settings:{options:null!==(n=null===(r=C.settings)||void 0===r?void 0:r.config)&&void 0!==n?n:{}}},strategyPluginKeys:zoe.pluginName};w8(i=R8(d)).call(i,(function(e){var t,n=d[e],r=C[e],i=null==A?void 0:A[e];if(null!=n&&n.disabled||null!=r&&r.disabled||null!=i&&i.disabled)Tle.warn("StrategyDisabled",n,r,i);else{var o,a,s=m1(m1(m1({},n),i),{},{config:J8({},null==n?void 0:n.config,null==r?void 0:r.config,null==i?void 0:i.config)});(null===(t=s.Strategy)||void 0===t?void 0:t.strategyName)===e?h.registerStrategy(s):Tle.warn("StrategyNameIllegal",V8(o="".concat(null===(a=s.Strategy)||void 0===a?void 0:a.strategyName,"!==")).call(o,e))}})),w8(o=h.getStrategyList()).call(o,(function(e){var A,n,r;try{var i;r=(null==e||null===(i=e.getRecommendation)||void 0===i?void 0:i.call(e,t))||{plugins:[],pluginConfiguration:{},result:{}}}catch(o){return Tle.error("StrategyRecommendError",o),void I.ctx.tracker.track("strategy_exe_error",{strategy_name:null==e?void 0:e.strategyName})}E.plugins=V8(A=E.plugins).call(A,r.plugins||[]),E.pluginConfiguration=m1(m1({},E.pluginConfiguration),r.pluginConfiguration),E.result=m1(m1({},E.result),{},v1({},e.strategyName,m1({_strategyConfig:null===(n=e.getStrategyConfig)||void 0===n?void 0:n.call(e)},r.result)))}));var f=I.ctx.dataCenter.getAppConfig();w8(a=R8(E.pluginConfiguration)).call(a,(function(e){E.pluginConfiguration[e]=m1(m1({},E.pluginConfiguration[e]),{},{ctx:I.ctx,strategyCenter:h,videoType:null==f?void 0:f.type})})),Tle.info("StrategyRecommendResult",E);var B=null!==(s=E.result)&&void 0!==s?s:{};return E.strategyKeys=W8(g=R8(B)).call(g,(function(e){var A;return"object"===O$(B[e])&&(null===(A=B[e])||void 0===A?void 0:A.enable)})).join("|"),E.strategyPluginKeys=null===(c=E.plugins)||void 0===c||null===(l=i7(c))||void 0===l||null===(l=l.call(c,(function(e){return null==e?void 0:e.pluginName})))||void 0===l?void 0:l.join("|"),I.ctx.tracker.track("strategy_rec_info",{strategy_keys:E.strategyKeys,strategy_plugin_keys:E.strategyPluginKeys,strategy_info:G8(E.result)}),E}}]),e}();v1(Nle,"_vodInst",void 0),v1(Nle,"_liveInst",void 0);var Lle=["Strategy","disabled","config"];function Ule(e){if(!e||"boolean"==typeof e)return{config:{}};e.Strategy,e.disabled;var A=e.config,t=Af(e,Lle);return Ff(Ff({},e),{},{config:Ff(Ff({},t),null!=A?A:{})})}var Kle,xle,Yle=function(){function e(A){var t,n=this;GE(this,e),LE(this,"config",void 0),LE(this,"tea",void 0),LE(this,"Collector",void 0),LE(this,"_loadPlugin",void 0),LE(this,"webId",void 0),LE(this,"status",0),LE(this,"initPromise",void 0),LE(this,"_strategyWrappers",{}),this.tea=A.tea,this.Collector=A.Collector,this._loadPlugin=A.loadPlugin,null===(t=A.strategies)||void 0===t||t.forEach((function(e){n._strategyWrappers[e.strategyKey]=new e(n)}))}var A,t,n,r,i,o;return NE(e,[{key:"preload",get:function(){return this._strategyWrappers.preload}},{key:"h265",get:function(){return this._strategyWrappers.h265}},{key:"rtmAdaptiveBuffer",get:function(){return this._strategyWrappers.rtmAdaptiveBuffer}},{key:"init",value:(o=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.initPromise||(this.initPromise=this.initOnce(A)),e.abrupt("return",this.initPromise);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"apply",value:function(e,A){var t;return null===(t=this.config)||void 0===t||null===(t=t.Module)||void 0===t?void 0:t.apply(e,A,this.config)}},{key:"prepare",value:function(){return this.initPromise||Op.resolve(this.isReady())}},{key:"getDeviceId",value:function(){var e;return null===(e=this.config)||void 0===e?void 0:e.deviceId}},{key:"isReady",value:function(){return 2===this.status}},{key:"getStrategyRecommendations",value:function(){var e,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return this.isReady()?(null===(e=this.config)||void 0===e||null===(e=e.Module)||void 0===e?void 0:e.rec(A,t,J7.LIVE))||{}:{plugins:[],pluginConfiguration:{}}}},{key:"getStrategyRecommendationsAsync",value:(i=aE(iE().mark((function e(){var A,t,n,r,i=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=i.length>0&&void 0!==i[0]?i[0]:void 0,n=i.length>1&&void 0!==i[1]?i[1]:void 0,this.isReady()){e.next=4;break}return e.abrupt("return",{plugins:[],pluginConfiguration:{}});case 4:return e.next=6,null===(A=this.config)||void 0===A||null===(A=A.Module)||void 0===A?void 0:A.recAsync(t,n);case 6:return r=e.sent,e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"fetchWebId",value:(r=aE(iE().mark((function e(){var A,t,n=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(A=this.config)||void 0===A||!A.deviceId){e.next=2;break}return e.abrupt("return",Op.resolve(null===(t=this.config)||void 0===t?void 0:t.deviceId));case 2:return e.abrupt("return",new Op((function(e){var A;return null!==(A=n.tea)&&void 0!==A&&A.getToken?n.tea.getToken((function(A){e(null==A?void 0:A.web_id)})):e("default_web_id")})).then((function(e){return n.config&&(n.config.deviceId=e),n.webId})));case 3:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"fetchVeStrategy",value:(n=aE(iE().mark((function e(){var A,t=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(A=this.config)||void 0===A||!A.Module){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",this._loadPlugin("vestrategy").then((function(e){t.config&&e&&(t.config.Module=e)})));case 3:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"fetchStrategies",value:(t=aE(iE().mark((function e(){var A,t,n,r=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n={},null!==(A=this.config)&&void 0!==A&&A.strategies){e.next=3;break}return e.abrupt("return",n);case 3:return e.next=5,Op.all(Jp(t=jp(this.config.strategies)).call(t,function(){var e=aE(iE().mark((function e(A){var t,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=null===(t=r.config)||void 0===t||null===(t=t.strategies)||void 0===t?void 0:t[A]){e.next=3;break}return e.abrupt("return");case 3:if(!0===i&&(i={}),o=i.Strategy){e.next=9;break}return e.next=8,r._loadPlugin(A);case 8:o=e.sent;case 9:n[A]=Ff(Ff({},i),{},{Strategy:o}),n[A]=Ule(n[A]);case 11:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}()));case 5:return this.config.strategies=n,e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"initOnce",value:(A=aE(iE().mark((function e(A){var t,n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A&&A.appId){e.next=2;break}return e.abrupt("return");case 2:return this.status=1,this.config=A,e.prev=4,e.next=7,Op.all([this.fetchWebId(),this.fetchVeStrategy()]);case 7:return e.next=9,this.fetchStrategies();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(4);case 13:if(t=this.config,n=t.appId,r=t.deviceId,i=t.Module,o=t.syncWaitSettings,!(n&&r&&i)){e.next=24;break}if(!o){e.next=20;break}return e.next=18,i.bootstrap(Ff(Ff({},this.config),{},{tracker:{Collector:this.Collector,enableABVersion:!1}}));case 18:e.next=21;break;case 20:i.bootstrap(Ff(Ff({},this.config),{},{tracker:{Collector:this.Collector,enableABVersion:!1}}));case 21:this.status=2,e.next=25;break;case 24:this.status=3;case 25:return e.abrupt("return",this.isReady());case 26:case"end":return e.stop()}}),e,this,[[4,11]])}))),function(e){return A.apply(this,arguments)})}]),e}(),Ple=(Kle="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href,aE(iE().mark((function e(){var A,t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y,m,D,w,R,k,S,M,G,_,b,T,F,N,L,U,K,x,Y,P,H,J,O,z,j,X,q,V,W,Z,$,ee,Ae,te,ne,re,ie,oe,ae,se,ge,ce,le,ue,Ie,he,Ce,de,Ee,fe,Be,Qe,pe,ve,ye,me,De,we,Re,ke,Se,Me,Ge,_e,be,Te,Fe,Ne,Le,Ue,Ke,xe,Ye,Pe,He,Je,Oe,ze,je,Xe,qe,Ve,We,Ze,$e,eA=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($e=function(){function e(){var e;t.calledRun=!0,R||(L(),U(),n(t),null===(e=t.onRuntimeInitialized)||void 0===e||e.call(t),t.noInitialRun||Ze(),K())}x>0?Y=$e:(N(),x>0?Y=$e:t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){return t.setStatus("")}),1),e()}),1)):e())},Ze=function(){var e=Xe;try{var A=e(0,0);return Ke(A,!0),A}catch(P7){return xe(P7)}},ke=function(e,A,t){if(A=Re(A),!we(e))return 28;var n;if(0===e)n=me();else{if(!De)return 52;n=ye()}var r=Math.round(1e3*n*1e3);return b[t>>3]=BigInt(r),0},te=function(){return(te=aE(iE().mark((function e(){var A,n,i,o,a,s;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=function(e){return n(e.instance)},n=function(e,A){return je=e.exports,w=je.i,F(),H("wasm-instantiate"),je},P("wasm-instantiate"),o=ee(),!t.instantiateWasm){e.next=6;break}return e.abrupt("return",new Op((function(e,A){t.instantiateWasm(o,(function(A,t){n(A,t),e(A.exports)}))})));case 6:return null!==(A=O)&&void 0!==A||(O=z()),e.prev=7,e.next=10,Z(D,O,o);case 10:return a=e.sent,s=i(a),e.abrupt("return",s);case 15:return e.prev=15,e.t0=e.catch(7),r(e.t0),e.abrupt("return",Op.reject(e.t0));case 19:case"end":return e.stop()}}),e,null,[[7,15]])})))).apply(this,arguments)},Ae=function(){return te.apply(this,arguments)},ee=function(){return{a:ze}},$=function(){return($=aE(iE().mark((function e(A,t,n){var r,i;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A||"function"!=typeof WebAssembly.instantiateStreaming||T(t)||s){e.next=13;break}return e.prev=1,r=fetch(t,{credentials:"same-origin"}),e.next=5,WebAssembly.instantiateStreaming(r,n);case 5:return i=e.sent,e.abrupt("return",i);case 9:e.prev=9,e.t0=e.catch(1),m("wasm streaming compile failed: ".concat(e.t0)),m("falling back to ArrayBuffer instantiation");case 13:return e.abrupt("return",V(t,n));case 14:case"end":return e.stop()}}),e,null,[[1,9]])})))).apply(this,arguments)},Z=function(e,A,t){return $.apply(this,arguments)},W=function(){return(W=aE(iE().mark((function e(A,t){var n,r;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,X(A);case 3:return n=e.sent,e.next=6,WebAssembly.instantiate(n,t);case 6:return r=e.sent,e.abrupt("return",r);case 10:e.prev=10,e.t0=e.catch(0),m("failed to asynchronously prepare wasm: ".concat(e.t0)),J(e.t0);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})))).apply(this,arguments)},V=function(e,A){return W.apply(this,arguments)},q=function(){return(q=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(D){e.next=10;break}return e.prev=1,e.next=4,E(A);case 4:return t=e.sent,e.abrupt("return",new Uint8Array(t));case 8:e.prev=8,e.t0=e.catch(1);case 10:return e.abrupt("return",j(A));case 11:case"end":return e.stop()}}),e,null,[[1,8]])})))).apply(this,arguments)},X=function(e){return q.apply(this,arguments)},j=function(e){if(e==O&&D)return new Uint8Array(D);if(f)return f(e);throw"both async and sync fetching of the wasm failed"},z=function(){return t.locateFile?d("ttlicense2.wasm"):new Xb("data:application/wasm;base64,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QRBqJAALOwECf0EBIAAgAEEBTRshAQNAAkAgARAuIgANAEGc2wEoAgAiAkUNACACEQoADAELCyAARQRAEE4LIAALIwEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgggACgCBGtBAnULJQEBfyMAQRBrIgEkACABIAA2AgwgASgCDEEUahAYIAFBEGokAAu7CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxBfQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxBfIAYgCGtBEGohBiAFKQNIIQwgBSkDQCEDCyADQg+GIgtCgID+/w+DIgIgAUIgiCIEfiIQIAtCIIgiEyABQv////8PgyIBfnwiD0IghiIRIAEgAn58IgsgEVStIAIgDUL/////D4MiDX4iFSAEIBN+fCIRIAxCD4YiEiADQjGIhEL/////D4MiAyABfnwiFCAPIBBUrUIghiAPQiCIhHwiDyACIA5CgIAEhCIMfiIWIA0gE358Ig4gEkIgiEKAgICACIQiAiABfnwiECADIAR+fCIS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DGoQ6AEiAEEEaiACEOgBGiADQRBqJAAgAAsiAQF/IwBBEGsiAiAANgIMIAIgATYCCCACKAIMIAIoAghxCwsAIAAoAgAQowXACyQBAX8jAEEQayICIAA2AgwgAiABNgIIIAIoAgwgAigCCDYCAAsKACAAKAIAEJoFCwsAIAAgASACEKkFCzwBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIAIoAgggAigCCCACKAIIEFBqEP4FIAJBEGokAAsGABCvCAALQQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBA5IAIoAggQOSACKAIIEMUCahD+BSACQRBqJAALyQMBBH8jAEEQayIEJAAgBCAANgIMIAQgAToACwJAIAQoAgwiAxDSAkEBEDwEQEEYECohBSAELQALwCEBIAMoAiQQFSgCACEAIwBBEGsiAiQAIAIgBTYCDCACIAM2AgggAiABOgAHIAIgADYCACACKAIMIgAgAigCABBkIABBuMMANgIAIABBCGogAigCCBCBAiAAIAIoAgggAi0AB8AQdjoAFCACQRBqJAAgAygCJBAVIAU2AgAMAQsCQCADENICQQgQPARAQRgQKiEBIAQtAAvAIQUgAygCJBAVKAIAIQAjAEEQayICJAAgAiABNgIMIAIgAzYCCCACIAU6AAcgAiAANgIAIAIoAgwiACACKAIAEGQgAEGUxAA2AgAgAEEIaiACKAIIEIECIAAgAigCCCACLQAHwBCJAToAFCACQRBqJAAMAQtBDBAqIQEgBC0AC8AhBSADKAIkEBUoAgAhACMAQRBrIgIkACACIAE2AgwgAiAFOgALIAIgADYCBCACKAIMIgAgAigCBBBkIABB8MQANgIAIAAgAi0ACzoACCACQRBqJAALIAMoAiQQFSABNgIACyADIAMoAiQQFSgCADYCJCAEQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAYIAFBEGokAAueAQEDfyMAQRBrIgIkACACIAA2AgggAiABNgIEIAIoAgQhASMAQRBrIgAkACAAIAJBCGo2AgwgACABNgIIIAAgACgCCBAMNgIEIAAoAgwhAyAAKAIEIQQjAEEQayIBJAAgASADNgIIIAEgBDYCBCABKAIIIAEoAgQQhQcgAUEQaiQAIABBEGokACACIAIoAgg2AgwgAigCDCACQRBqJAALmgEBAX8jAEGgwABrIgIkACACQachNgKcQCACQQI2AphAIAIgADYClEAgAkEQaiIAQQBBgMAA/AsAIAIgATYCCCAAIAIoApxAEPkCIAIgAigCnEAQUDYCDCAAQe8iEPkCIAIgABBQNgIMIAIoAgwgAGpBgMAAIAIoAgxrIAIoApRAIAIoAggQtwIaIABBiDMQ+QIgAkGgwABqJAALIwEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgQgACgCAGtBDG0LGwEBfyAAEFQEQCAAKAIAIAAQuwEaEN8CCyAAC64CAQJ/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYIAIoAhRGBEAgAkEANgIcDAELIAIoAhQoAghFBEAgAigCGBAXIAJBADYCHAwBCyACIAIoAhQoAgRBAWs2AgwDQAJAIAIoAgxFDQAgAigCFCgCCCACKAIMQQJ0aigCAA0AIAIgAigCDEEBazYCDAwBCwsgAiACKAIMQQFqNgIMIAIoAhggAigCFCgCADYCACACIAIoAhggAigCDBB0IgA2AhAgAEUEQCACKAIYKAIIIQAgAigCGCgCBEECdCIBBEAgAEEAIAH8CwALIAIoAhgoAgghACACKAIUKAIIIQEgAigCDEECdCIDBEAgACABIAP8CgAACwsgAiACKAIQNgIcCyACKAIcIAJBIGokAAtfAQF/IwBBEGsiAiQAIAIgAToADyAAEAkaAkAgABBUBEAgACgCACEBIABBARBTDAELIAAhASAAQQEQXgsgASACQQ9qEGEgAkEAOgAOIAFBAWogAkEOahBhIAJBEGokAAtiAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIQIjAEEQayIAJAAgACACNgIMIAAgAUELajYCCCAAIAFBCmo2AgQgACgCDCIDEIkHIAMQ2wIgAEEQaiQAIAJBABAeIAFBEGokAAskAQF/IAAoAgAhAiAAIAE2AgAgAgRAIAIgABCIAigCABECAAsLBQAQQgALDQAgACgCABCiBRogAAt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAAawsNACAAKAIAEJkFGiAACyUBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQGCgCACABQRBqJAALCQAgACABNgIECwoAIAAtAAtBB3YLIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAgRSABQRBqJAALGwEBfyMAQRBrIgEgADYCDCABKAIMKAIEQTRrCxEAIAAgASAAKAIAKAIcEQMAC3UBAX4gACABIAR+IAIgA358IANCIIgiAiABQiCIIgR+fCADQv////8PgyIDIAFC/////w+DIgF+IgVCIIggAyAEfnwiA0IgiHwgASACfiADQv////8Pg3wiAUIgiHw3AwggACAFQv////8PgyABQiCGhDcDAAvBAQEDfyAALQAAQSBxRQRAAkAgACgCECIDBH8gAwUgABC/BQ0BIAAoAhALIAAoAhQiBGsgAkkEQCAAIAEgAiAAKAIkEQQAGgwBCwJAAkAgAkUgACgCUEEASHINACACIQMDQCABIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgACABIAMgACgCJBEEACADSQ0CIAIgA2shAiAAKAIUIQQMAQsgASEFCyAEIAUgAhDdASAAIAAoAhQgAmo2AhQLCwslAQF/IwBBEGsiASQAIAEgADYCDCABKAIMECwoAgAgAUEQaiQACw4AIABB0ABqEC5B0ABqC0QBAX8jAEEQayIFJAAgBSACNgIMIAUgBDYCCCAFQQRqIAVBDGoQlwEgACABIAMgBSgCCBC3AiEAEJYBIAVBEGokACAAC6EBAQJ/AkAgABAJRSACIAFrQQVIcg0AIAEgAhDoAiACQQRrIQQgABAPIgIgABAJaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwslACAAIAAtAAtBgAFxIAFB/wBxcjoACyAAIAAtAAtB/wBxOgALC1ABAX4CQCADQcAAcQRAIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQcAAIANrrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC2kBAX8j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QQA6AA4gAEEOahDPAgJAAkAgAC0AD0EBcUUNACAAKAIUIAFGDQAgACgCFCAAKAIQEB4MAQsgACgCFEEAEB4LAkAgARBtQQFxDQAgACgCFCABRg0AIAEgARCeARAeCyAAQSBqJAAgBEEQaiQACxEAIAAgASAAKAIAKAIsEQMAC8kJAgR/BH4jAEHwAGsiBiQAIARC////////////AIMhCQJAAkAgAVAiBSACQv///////////wCDIgpCgICAgICAwP//AH1CgICAgICAwICAf1QgClAbRQRAIANCAFIgCUKAgICAgIDA//8AfSILQoCAgICAgMCAgH9WIAtCgICAgICAwICAf1EbDQELIAUgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgCkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgUbIQRCACABIAUbIQMMAgsgAyAJQoCAgICAgMD//wCFhFANASABIAqEUARAIAMgCYRCAFINAiABIAODIQMgAiAEgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgCSAKViAJIApRGyIIGyEKIAQgAiAIGyIMQv///////z+DIQkgAiAEIAgbIgtCMIinQf//AXEhByAMQjCIp0H//wFxIgVFBEAgBkHgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQQ9rEF8gBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rEF9BECAHayEHIAYpA1AhAyAGKQNYC0IDhiADQj2IhEKAgICAgICABIQhASAJQgOGIApCPYiEIAIgBIUhBAJ+IANCA4YiAiAFIAdGDQAaIAUgB2siB0H/AEsEQEIAIQFCAQwBCyAGQUBrIAIgAUGAASAHaxBfIAZBMGogAiABIAcQ8AEgBikDOCEBIAYpAzAgBikDQCAGKQNIhEIAUq2ECyEJQoCAgICAgIAEhCELIApCA4YhCgJAIARCAFMEQEIAIQNCACEEIAkgCoUgASALhYRQDQIgCiAJfSECIAsgAX0gCSAKVq19IgRC/////////wNWDQEgBkEgaiACIAQgAiAEIARQIgcbeSAHQQZ0rXynQQxrIgcQXyAFIAdrIQUgBikDKCEEIAYpAyAhAgwBCyAJIAp8IgIgCVStIAEgC3x8IgRCgICAgICAgAiDUA0AIAlCAYMgBEI/hiACQgGIhIQhAiAFQQFqIQUgBEIBiCEECyAMQoCAgICAgICAgH+DIQMgBUH//wFOBEAgA0KAgICAgIDA//8AhCEEQgAhAwwBC0EAIQcCQCAFQQBKBEAgBSEHDAELIAZBEGogAiAEIAVB/wBqEF8gBiACIARBASAFaxDwASAGKQMAIAYpAxAgBikDGIRCAFKthCECIAYpAwghBAsgBEI9hiACQgOIhCEBIARCA4hC////////P4MgB61CMIaEIAOEIQQCQAJAIAKnQQdxIgVBBEcEQCAEIAEgASAFQQRLrXwiA1atfCEEDAELIAQgASABIAFCAYN8IgNWrXwhBAwBCyAFRQ0BCwsgACADNwMAIAAgBDcDCCAGQfAAaiQACwQAQQALgQEBAn8CQAJAIAJBBE8EQCAAIAFyQQNxDQEDQCAAKAIAIAEoAgBHDQIgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQELA0AgAC0AACIDIAEtAAAiBEYEQCABQQFqIQEgAEEBaiEAIAJBAWsiAg0BDAILCyADIARrDwtBAAv9AQECfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCBEGQzgBLBEAgAkFzNgIMDAELIAIoAggoAgQgAigCBEkEQCACIAIoAgRBAnQQLiIANgIAIABFBEAgAkFzNgIMDAILIAIoAgAhACACKAIEQQJ0IgEEQCAAQQAgAfwLAAsgAigCCCgCCCIBBEAgAigCACEAIAIoAggoAgRBAnQiAwRAIAAgASAD/AoAAAsgAigCCCgCCCACKAIIKAIEQQJ0ELsCIAIoAggoAggQEAsgAigCCCACKAIENgIEIAIoAgggAigCADYCCAsgAkEANgIMCyACKAIMIAJBEGokAAseAQF/IwBBEGsiAyAANgIMIAMgATYCCCADIAI2AgQLbAECfyMAQRBrIgIkACACIAA2AgwgAiABOgALIAIoAgwoAgQhASACLQALwCEDIwBBEGsiACQAIAAgATYCDCAAIAM6AAsgACgCDCIBIAAtAAvAIAEoAgAoAhQRAwDAIABBEGokAMAgAkEQaiQAC0wBAX8gAUEBayICQRBNBH8gAkECdEHsvQFqKAIABUHLGAshAiAAEMAEIgBBpMIBNgIAIABBBGogAhCeByAAIAE2AgggAEG8tQE2AgALYwAgAigCBEGwAXEiAkEgRgRAIAEPCwJAIAJBEEcNAAJAAkAgAC0AACICQStrDgMAAQABCyAAQQFqDwsgAkEwRyABIABrQQJIcg0AIAAtAAFBIHJB+ABHDQAgAEECaiEACyAACwkAIAAQDxDFAwt+AgJ/AX4jAEEQayIDJAAgAAJ+IAFFBEBCAAwBCyADIAEgAUEfdSICcyACayICrUIAIAJnIgJB0QBqEF8gAykDCEKAgICAgIDAAIVBnoABIAJrrUIwhnwgAUGAgICAeHGtQiCGhCEEIAMpAwALNwMAIAAgBDcDCCADQRBqJAAL7QEBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIYKAIANgIMAkAgAygCGCgCACADKAIUKAIAbEEASgRAIAMoAhggAygCFBC6AkEATgRAIAMgAygCHCADKAIYIAMoAhQQmgIiADYCECAADQIgAygCHCADKAIMNgIADAILIAMgAygCHCADKAIUIAMoAhgQmgIiADYCECAADQEgAygCHEEAIAMoAgxrNgIADAELIAMgAygCHCADKAIYIAMoAhQQzAUiADYCECAADQAgAygCHCADKAIMNgIACyADKAIQIANBIGokAAsvAQF/IwBBEGsiASQAIAEgADYCDEEQEFsiACABKAIMEPYFGiAAQbzPAEHmABAAAAstACACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAAoAgQgASgCBBC9AUULLgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBAeIAJBEGokAAsuACAAIAAoAghBgICAgHhxIAFB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIICwkAIAAgATYCAAsjAQF/IAJBAE4EfyAAKAIIIAJBAnRqKAIAIAFxQQBHBSADCwvOAwEBfyMAQSBrIgIkACACIAA2AhggAiABNgIUIAJBADYCBCACIAIoAhRBBXY2AgwgAiACKAIUQR9xNgIIAkACQCACKAIYKAIEIgAgAigCDE8EQCAAIAIoAgxHDQEgAigCCEUNAQsgAiACKAIYQQAQkgE2AhwMAQsgAigCDARAIAJBADYCEANAIAIoAhAgAigCGCgCBCACKAIMa09FBEAgAigCGCgCCCIAIAIoAhBBAnRqIAIoAhAgAigCDGpBAnQgAGooAgA2AgAgAiACKAIQQQFqNgIQDAELCwNAIAIoAhAgAigCGCgCBE9FBEAgAigCGCgCCCACKAIQQQJ0akEANgIAIAIgAigCEEEBajYCEAwBCwsLIAIoAggEQCACIAIoAhgoAgQ2AhADQCACKAIQBEAgAiACKAIYKAIIIAIoAhBBAWtBAnRqKAIAQSAgAigCCGt0NgIAIAIoAhgoAgggAigCEEEBa0ECdGoiACAAKAIAIAIoAgh2NgIAIAIoAhgoAgggAigCEEEBa0ECdGoiACACKAIEIAAoAgByNgIAIAIgAigCADYCBCACIAIoAhBBAWs2AhAMAQsLCyACQQA2AhwLIAIoAhwgAkEgaiQACzoBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBAUEAEKoBIAAgAjQCCDcDACACQRBqJAAL0AIBBn8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAggiATYCDCABIAIoAgRBABCqAQJAAkACQAJAAkACQAJAIAIoAgQOCAYAAAECBAMDBQsgAUIANwMADAULIAFEAAAAAAAAAAA5AwAMBAsgAUHczwA2AgAMAwtBDBAqIQcjAEEQayIFJAAgBSAHNgIMIAUoAgwhBCAFQQtqIgMQqQMjAEEQayIAJAAgACAENgIMIAAgAzYCCCAAKAIMIgRBBGohBiMAQRBrIgMkACADIAY2AgwgAygCDCIGENoFIAYQ2wIgA0EQaiQAIABBADYCBCAEQQhqIABBBGogACgCCBCvAyAEEN4BIQMgBBAMIAM2AgAgAEEQaiQAIAVBEGokACABIAc2AgAMAgsgAUEAOgAADAELQboYQd0OQYYWQagYEAEACyACKAIMIAJBEGokAAvWCAMFfwF+AXwjAEGwAWsiAyQAIAMgADYCrAEgAyABNgKoAQJAAkACQAJAAkACQAJAAkAgAygCqAEiAS0ACA4GAAMEBQECBgsgAEGVMxAiDAYLIAEoAgBFBEAgAEGVMxAiDAYLIAEtAAlBAXEgASgCACADQaQBaiADQaABahDDAiADKAKgASECIAMoAqQBIQQjAEEQayIBJAAgASAANgIMIAEgAjYCCCABIAQ2AgQgASgCDCIAIAFBA2ogAUECahDQAiAAIAEoAgggASgCBBCzAyABQRBqJAAMBQsgAEHzFkG6GCABLQAAQQFxGxAiDAQLIAEpAwAhByMAQUBqIgEkACABIAA2AjwgASAHNwMwIAEgAUEpajYCDAJAIAEpAzBCgICAgICAgICAf1EEQEKAgICAgICAgIB/IAFBDGoQgQMgASABKAIMQQFrIgI2AgwgAkEtOgAADAELAkAgASkDMEIAUwRAQgAgASkDMH0gAUEMahCBAyABIAEoAgxBAWsiAjYCDCACQS06AAAMAQsgASkDMCABQQxqEIEDCwsgASgCDCABQRBqSQRAQYQOQd0OQfIgQfUVEAEACyAAIAEoAgwQIiABQUBrJAAMAwsgASkDACEHIwBBQGoiASQAIAEgADYCPCABIAc3AzAgASABQRBqIgJBGWo2AgwgASkDMCABQQxqEIEDIAIgASgCDEsEQEGEDkHdDkH6IEH1FRABAAsgACABKAIMECIgAUFAayQADAILIAErAwAhCCMAQRBrIgQkACAEIAA2AgwgBCAIOQMAIAQrAwAhCCMAQeAAayIBJAAgASAANgJcIAEgCDkDUCABQQA6AE8gAUERNgJIIAFBfzYCHCABIAEoAkg2AhAgAUEWaiIFQQZBgxYgAUEQahCRARojAEEQayICIAErA1A5AwgCQCACKQMIQv///////////wCDQoCAgICAgID4/wBUBEAgASABKwNQOQMAIAEgAUEgaiICQSQgBSABEJEBNgIcAkAgAkGUMBDjBQ0AIAJB4hsQ4wUNACACQZcjEPkCCwwBCwJAIAErA1AgASsDUGIEQCABIAFBIGpBJEHrIUG1EyABLQBPQQFxG0EAEJEBNgIcDAELAkAgASsDUEQAAAAAAAAAAGMEQCABIAFBIGpBJEGNCEHxIiABLQBPQQFxG0EAEJEBNgIcDAELIAEgAUEgakEkQY4IQfIiIAEtAE9BAXEbQQAQkQE2AhwLCwsgASgCHEEASARAQZojQd0OQaohQfUVEAEACyABQSBqIgUgASgCHGohBiMAQRBrIgIgBTYCDCACIAY2AggDQCACKAIMIAIoAghJBEAgAigCDC0AAEEsRgRAIAIoAgxBLjoAAAsgAiACKAIMQQFqNgIMDAELCyAAIAUQIiABQeAAaiQAIARBEGokAAwBCyADQRRqIgAQbCAAQZUVEGsgA0EIaiIBIAAQaiABEHwACyADQbABaiQACzABAX8jAEEQayICJAAgAiAANgIMIAIgAToACyACKAIMIAItAAvAEN0CIAJBEGokAAvoAgEBfyMAQUBqIgIkACACIAA2AjwgAiABNgI4IAIoAjwiACgCCCAAEBMoAgBGBEACQCAAKAIEIAAoAgBLBEAgAiAAKAIEIAAoAgBrQQJ1NgI0IAIgAigCNEEBakECbTYCNCAAIAAoAgQgACgCCCAAKAIEQQAgAigCNGtBAnRqENUDNgIIIAAgACgCBEEAIAIoAjRrQQJ0ajYCBAwBCyACIAAQEygCACAAKAIAa0ECdUEBdDYCLCACQQE2AiggAiACQSxqIAJBKGoQbigCADYCMCACQRRqIgEgAigCMCACKAIwQQJ2IAAQExCtASACQRBqIAAoAgQQPiACQQxqIAAoAggQPiABIAIoAhAgAigCDBCRAyAAIAEQEiAAQQRqIAFBBGoQEiAAQQhqIAFBCGoQEiAAEBMgARATEBIgARCsAQsLIAAQEyAAKAIIEAwgAigCOBDhASAAIAAoAghBBGo2AgggAkFAayQACzcBAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIgAgAygCCDYCACAAIAMoAgQ2AgQLJAEBfyMAQRBrIgIgADYCDCACIAE6AAsgAi0AC0EYIgB0IAB1CwwAIAAgASgCADYCAAsHACAAEB0aCxEAIAAgASABKAIAKAIUEQEACw8AIAAgACgCACgCEBEAAAt1AQJ/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEBIAIoAgghAyMAQRBrIgAkACAAIAE2AgggACADNgIEAn8gAEEPaiAAKAIEIAAoAggQ7ARBAXEEQCAAKAIEDAELIAAoAggLIABBEGokACACQRBqJAALBwAgABAJRQsTACAAIAEgAiAAKAIAKAIMEQQACyYBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQtwIgBEEQaiQAC5sBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIMQQEQdCIANgIEIABFBEAgAigCDCgCCCEAIAIoAgwoAgRBAnQiAQRAIABBACAB/AsACyACKAIMKAIIAn8gAigCCEEASARAQQAgAigCCGsMAQsgAigCCAs2AgAgAigCDCACKAIIQR91QQFyNgIACyACKAIEIAJBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQEygCACAAKAIAa0ECdSABQRBqJAALdgEDfyMAQRBrIgIkACACIAA2AgwgAigCDCIAIQEgACgCBEEEaiEDIwBBEGsiACQAIAAgATYCDCAAIAM2AgggACgCCCEDIwBBEGsiASAAKAIMNgIIIAEgAzYCBCABKAIIIAEoAgQ2AgQgAEEQaiQAIAJBEGokAAsYAQF/IwBBEGsiASAANgIMIAEoAgwoAhALEgAgACgCACIABEAgABD9BBoLCxEAIAAgASgCABD9BDYCACAAC0UBAX8gACgCACECIAEQMyEAIAJBCGoiARDMASAASwR/IAEgABCFAigCAEEARwVBAAtFBEAQQgALIAJBCGogABCFAigCAAtBAQF/IAAgATcDcCAAIAAoAiwgACgCBCICa6w3A3ggACABUCABIAAoAggiACACa6xZcgR/IAAFIAIgAadqCzYCaAvZAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhBBABBoQQBIBEAgA0F2NgIcDAELIANBACADKAIYIAMoAhQgAygCEBDJBSIANgIMAkAgAA0AA0AgAygCGEEAEGhBAEgEQCADIAMoAhggAygCGCADKAIQEPIBIgA2AgwgAEUNAQwCCwsDQCADKAIYIAMoAhAQYkEATgRAIAMgAygCGCADKAIYIAMoAhAQeyIANgIMIABFDQELCwsgAyADKAIMNgIcCyADKAIcIANBIGokAAtHAQJ/IwBBEGsiASQAIAEgADYCDCABKAIMIQIjAEEQayIAJAAgACACNgIMIAAoAgwQCkEQahAMIABBEGokABBFIAFBEGokAAvcAwEDfyMAQaABayIDJAAgAyAANgKcASADIAE2ApgBIAMoApwBIQEgAygCmAFBAEgEQCADQQxqIgAQbCAAQa4WEGsgAyAAEGogAxB8AAsgAygCmAEhAiMAQZACayIAJAAg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LQAADAELQQALOgAHDAELCyAALQAHQS5GBEAgASAAKAIIIgI2AkQgAAJ/IAIgASgCQEkEQCAAIAAoAggiAkEBajYCCCACLQAADAELQQALOgAHA0AgAC0AB8AiAkEwTgR/IAJBOUwFQQALQQFxBEAgASAAKAIIIgI2AkQgAAJ/IAIgASgCQEkEQCAAIAAoAggiAkEBajYCCCACLQAADAELQQALOgAHDAELCwsCQCAALQAHQeUARwRAIAAtAAdBxQBHDQELIAEgACgCCCICNgJEIAACfyACIAEoAkBJBEAgACAAKAIIIgJBAWo2AgggAi0AAAwBC0EACzoABwJAIAAtAAdBK0cEQCAALQAHQS1HDQELIAEgACgCCCICNgJEIAACfyACIAEoAkBJBEAgACAAKAIIIgJBAWo2AgggAi0AAAwBC0EACzoABwsDQCAALQAHwCICQTBOBH8gAkE5TAVBAAtBAXEEQCABIAAoAggiAjYCRCAAAn8gAiABKAJASQRAIAAgACgCCCICQQFqNgIIIAItAAAMAQtBAAs6AAcMAQsLCwwHCyADKAIIQQc2AgAgAyAFQfQWQQMQhARBAXE6AAYMBgsgAygCCEEINgIAIAMgBUG7GEEEEIQEQQFxOgAGDAULIAMoAghBCTYCACADIAVBthNBAxCEBEEBcToABgwECyADKAIIQQo2AgAMAwsgAygCCEELNgIADAILIAMoAghBADYCAAwBCyADQQA6AAYLIAMtAAZBAXFFBEAgAygCCEENNgIACyADKAIIIAUoAkQ2AgggA0EQaiQAQQELKQEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAYLQALQf8AcSABQRBqJAALIgEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgAgACgCBDYCBAvcAQECfyMAQRBrIgMkACADIAA2AgggAyABOgAHIAMgAjYCACADKAIIKAIEIQEgAygCACECIAMtAAfAIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ6AAcgACgCDCEBAn8gAC0AB8AiAkGAAUkEQCABKAIIIAJBAnRqKAIAIAAoAghxQQBHDAELQQALIQEgAEEQaiQAAkAgAUEBcQRAIANBAToADwwBCyADIAMtAAdB3wBGBH8gAygCAEGACHFBAEcFQQALQQFxOgAPCyADLQAPQQFxIANB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aiQACywBAX8jAEEQayICIAA2AgwgAiABNgIIIAIoAgwiACACKAIIIAAoAlByNgJQCyMBAX8jAEEQayIBIAA2AgwgASgCDCIAKAIEIAAoAgBrQQN1CycBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABAMGiABQRBqJAAgAAufBAEGfyMAQTBrIgckACAHIAA2AiwgByABNgIoIAcgAjYCJCAHIAM2AiAgByAENgIcIAcgBTYCGCAHIAY6ABcgBygCLCEJQQgQKiIAIAkoAiQQFSgCABDlAiAHQRBqIgogABC0AiAJKAIkEBVBADYCAEEkECohCyAJKAIUIQwgBygCIBAVKAIAIQYgChBSIQUgBygCHCEEIAcoAhghAyAHLQAXQQFxIQIgBygCKCEBIAcoAiQhACMAQTBrIggkACAIIAs2AiwgCCAMNgIoIAggBjYCJCAIIAU2AiAgCCAENgIcIAggAzYCGCAIIAI6ABcgCCABNgIQIAggADYCDCAIKAIsIgAgCCgCJCAIKAIgEKsGIABBoMkANgIAIAAgCCgCEDYCDCAAIAgoAgw2AhAgACAIKAIoNgIUIAAgCCgCHDYCGCAAIAgoAhg2AhwgACAILQAXQQFxOgAgIAhBMGokACAHQQxqIgIgCxC0AiAHKAIgEBVBADYCACAKELUBGkEIECohASACEFIhACMAQRBrIgMkACADIAE2AgwgAyAANgIIIAMoAgwiACADKAIIELgEIABBnMoANgIAIANBEGokACAJKAIkEBUgATYCACACEFIhASMAQRBrIgAgATYCDCAJIAAoAgxBCGooAgA2AiQgAhC1ASEAIAcoAiAQFSAANgIAIAkgCSgCFEEBajYCFCACEL8DIAoQvwMgB0EwaiQACygBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABChARogAUEQaiQAIAALOgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMIgAQGCgCADYCCCAAEBhBADYCACABKAIIIAFBEGokAAu1AwEDfyMAQRBrIggkACAIIAI2AgggCCABNgIMIAhBBGoiASADEBsgARBlIQkgARAZIARBADYCAEEAIQECQANAIAYgB0YgAXINAQJAIAhBDGogCEEIahAjDQACQCAJIAYoAgAQigJBJUYEQCAGQQRqIAdGDQJBACECAn8CQCAJIAYo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6gsQ8wYACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABC0ARogABAQIAFBEGokAAsQACAAKAIEIAAoAgBrQQJ1CxYAIAAQVARAIAAgARBTDwsgACABEF4LDAAgAEGChoAgNgAACxkBAX8jAEEQayIBIAA2AgwgASgCDEHwB3ELEQAgABAPIAAQCUECdGoQxQMLLwEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBDqBCACQRBqJAALqgEBAX8CQCADQYAQcUUNACACRSADQcoAcSIEQQhGIARBwABGcnINACAAQSs6AAAgAEEBaiEACyADQYAEcQRAIABBIzoAACAAQQFqIQALA0AgAS0AACIEBEAgACAEOgAAIABBAWohACABQQFqIQEMAQsLIAACf0HvACADQcoAcSIBQcAARg0AGkHYAEH4ACADQYCAAXEbIAFBCEYNABpB5ABB9QAgAhsLOgAACw0AIAAoAgAgASgCAEYLDgAgABAPIAAQCWoQxQMLDwAgACAAKAIAKAIMEQAACxYAIAAgASACIAMgACgCACgCIBEJABoLEQAgACABIAEoAgAoAhwRAQALEQAgACABIAEoAgAoAhgRAQALcgECfyAAQYDhADYCACAAKAIcBEAgACgCKCEBA0AgAQRAQQAgACABQQFrIgFBAnQiAiAAKAIkaigCACAAKAIgIAJqKAIAEQUADAELCyAAQRxqEBkgACgCIBAQIAAoAiQQECAAKAIwEBAgACgCPBAQCyAACyABAX8jAEEQayIBIAA2AgwgASgCDCIAKAIAIAAoAgRGCwQAIAALEAAgAEEgRiAAQQlrQQVJcguFBAECfyACQYAETwRAIAIEQCAAIAEgAvwKAAALDwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLIANBfHEhAAJAIANBwABJDQAgAiAAQUBqIgRLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAETQ0ACwsgACACTQ0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgAEkNAAsMAQsgA0EESQRAIAAhAgwBCyADQQRrIgQgAEkEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCwsnAQF/IwBBEGsiASQAIAEgADYCDCABKAIMQQRqEBgQDCABQRBqJAALVQEBfyMAQRBrIgEgADYCCAJAIAEoAggiACgCRCAAKAJARgRAIAFBADoADwwBCyAAIAAoAkQiAEEBajYCRCABIAAtAAA6AA8LIAEtAA9BGCIAdCAAdQsjAQF/IwBBEGsiASAANgIMIAEoAgwiACgCBCAAKAIAa0ECdQtkAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgghASADKAIEIQIjAEEQayIAIAMoAgw2AgwgACABNgIIIAAgAjYCBCAAKAIIIAAoAgQoAgA2AgAgA0EQaiQAC6EBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMIgAtAFlBAXEEQCACIABBCGogAi0AC0EYIgF0IAF1EHY6AAogAEEUaiACQQpqEJ8CDAELAkAgAC0AWkEBcQRAIAIgAEEIaiACLQALQRgiAXQgAXUQiQE6AAkgAEEUaiACQQlqEJ8CDAELIABBFGogAkELahCfAgsLIAJBEGokAAtZAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgNBHGohAiMAQRBrIgAkACAAIAI2AgwgAEEIaiICIAAoAgwQPiACEO0GIABBEGokACADQRBqEPwGIAFBEGokAAsjAQF/IwBBEGsiASQAIAEgADYCDCABQQxqEMIEIAFBEGokAAsLACAAIAEgAhDDBAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ2QQgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC3UBAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCAAKAIEQQJ0QQQQrwEgAEEQaiQAIANBEGokAAsOACAAIAEoAgA2AgAgAAsZAQF/IAEQjgUhAiAAIAE2AgQgACACNgIACyQAIABBC08EfyAAQQhqQXhxIgAgAEEBayIAIABBC0YbBUEKCwskAQJ/IwBBEGsiAiQAIAAgARDxAiEDIAJBEGokACABIAAgAxsLCwAgAC0AC0H/AHELBwAgACABRgsIACAAQf8BcQsiAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEBkgAUEQaiQAC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQL7QEBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIYKAIANgIMAkAgAygCGCgCACADKAIUKAIAbEEASARAIAMoAhggAygCFBC6AkEATgRAIAMgAygCHCADKAIYIAMoAhQQmgIiADYCECAADQIgAygCHCADKAIMNgIADAILIAMgAygCHCADKAIUIAMoAhgQmgIiADYCECAADQEgAygCHEEAIAMoAgxrNgIADAELIAMgAygCHCADKAIYIAMoAhQQzAUiADYCECAADQAgAygCHCADKAIMNgIACyADKAIQIANBIGokAAvcAwEBfyMAQSBrIgIkACACIAA2AhwgAiABNgIYIAJBADYCBCACIAIo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AgggAiACQQhqIAJBFGoQbigCADYCHAsgAigCHCACQSBqJAALLAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEPgCIABBADoACCABQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBBIIAFBEGokAAskAQF/IwBBEGsiASQAIAEgADYCCCABKAIIELIBGiABQRBqJAALVwEBfyMAQSBrIgUkACAFIAA2AhwgBSABNgIYIAUgAjYCFCAFIAM2AhAgBSAENgIMIAUoAhwgBSgCGEF/IAUoAhQgBSgCECAFKAIMQQEQswEgBUEgaiQAC60BAQN/IwBBEGsiAiQAIAIgAToADwJAAkACfyAAEFQiBEUEQEEKIQEgABDsAQwBCyAAELsBQQFrIQEgACgCBAsiAyABRgRAIAAgAUEBIAEgARDCAyAAEA8aDAELIAAQDxogBA0AIAAhASAAIANBAWoQXgwBCyAAKAIAIQEgACADQQFqEFMLIAEgA2oiACACQQ9qEGEgAkEAOgAOIABBAWogAkEOahBhIAJBEGokAAvwAgECfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhg2AgggAyADKAIYNgIEIAMoAgQQwgYhASADIAMoAhQ2AgAgAygCABDCBiECIAMoAhAhBCMAQSBrIgAkACAAIAE2AhggACACNgIUIAAgBDYCECAAIANBD2o2AgwgACAAKAIYIAAoAhAtAADAIAAoAhQgACgCGGsQ+AQ2AggCQCAAKAIIBEAgACAAKAIINgIcDAELIAAgACgCFDYCHAsgACgCHCEBIABBIGokACADKAIIIQIjAEEQayIAJAAgACACNgIIIAAgATYCBCAAIAAoAgg2AgAgACgCACECIAAoAgQhBCMAQRBrIgEkACABIAI2AgggASAENgIEIAEgAUEIaiICIAEoAgQgAhCdBGsQmgM2AgwgASgCDCECIAFBEGokACAAIAI2AgwgACgCDCEBIABBEGokACADIAE2AhwgAygCHCADQSBqJAALCQAgAEEEEJEFCwsAIAQgAjYCAEEDC4ABAQJ/IwBBEGsiAiQAIAAQVARAIAAoAgAgABC7ARoQ3wILIAEQCRogARBUIQMgACABKAIINgIIIAAgASkCADcCACABQQAQXiACQQA2AgwgASACQQxqEIoBAkAg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QCAAIANBCGoQ8QIhAQsgA0EQaiQAIAELMwEBfyMAQRBrIgMkACAAEAkaIAAgAhDNASADQQA6AA8gASACaiADQQ9qEGEgA0EQaiQACwcAIABBAkkLtgIBA38jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBQQwQKiECIAMoAggQFSgCACEEIAMoAgQQFSgCACEFIwBBEGsiACQAIAAgAjYCDCAAIAQ2AgggACAFNgIEIAAoAgwiBCAAKAIIIAAoAgQQqwYgBEHgygA2AgAgAEEQaiQAIAMoAggQFSACNgIAIAMoAgQQFUEANgIAQQgQKiIAIAEoAiQQFSgCABDlAiADKAIEEBUgADYCACABKAIkEBVBADYCAEEIECohAiADKAIEEBUoAgAhBCMAQRBrIgAkACAAIAI2AgwgACAENgIIIAAoAgwiBCAAKAIIELgEIARBoMsANgIAIABBEGokACABKAIkEBUgAjYCACABIAMoAgQQFSgCADYCJCADQRBqJAALBABBBAsTACAAIAEoAgAiADYCACAAEMYHCx0AIABBBGoQyQRBf0YEQCAAIAAoAgAoAggRAgALC7cCAQF/IwBBMGsiAyQAIAMgATYCKCADIAI2AiQgAyAANgIgIAMgAygCICIAKAIkNgIcIAMgAygCKDYCFCADIAMoAiQ2AhAgAyAAIAMoAhQgAygCEBCoBzYCGCADQRhqIANBKGoQGkEBcQRAELYDAAsgAyADKAIYNgIoA0BBACEBIANBKGoiAiADQSRqEA5BAXEEfyACEAotAABBGCIBdCABdUH8AEYFIAELQQFxBEAgAyAAKAIkNgIMIAMgA0EoaiIBEAsoAgA2AgQgAyADKAIkNgIAIAMgACADKAIEIAMoAgAQqAc2AgggAyADKAIINgIYIANBGGogARAaQQFxBEAQtgMACyAAIAMoAhwgAygCDBC6AyADIAMoAhg2AigMAQsLIAMgAygCKDYCLCADKAIsIANBMGokAAt1AQN/IwBBEGsiAiQAIAIgADYCDCACKAIMIQEjAEEQayIAJAAgACABNgIMIABBADYCCCAAIAAoAgwiARAYKAIANgIEIAAoAgghAyABEBggAzYCACAAKAIEBEAgARAYIAAoAgQQjwcLIABBEGokACACQRBqJAALGgEBf0EBIQEgABBUBH8gABC7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QQRqIQIgAQ0BDAILCyABQQFqIQgLIAgLIQEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCDEEANgIACx8BAX8jAEEQayIDJAAgACABIAIQoQQgA0EQaiQAIAALFwAgACACNgIcIAAgATYCFCAAIAE2AhgLtAMBBX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAygCHCEAIAMoAhghASADKAIUIQIjAEEQayIEJAAgBCAANgIMIAQgATYCCCAEIAI2AgQgBCgCDCEBIAQoAgghAiAEKAIEIQUjAEEwayIAJAAgACABNgIsIAAgAjYCKCAAIAU2AiQgAEEcaiAAKAIsIAAoAigQoAIgACgCHCEBIAAoAiAhBSAAKAIkEEUhBiMAQRBrIgIkACACIABBE2o2AgwgAiABNgIIIAIgBTYCBCACIAY2AgAgAigCCCEFIAIoAgQhBiACKAIAIQcjAEEgayIBJAAgASAFNgIcIAEgBjYCGCABIAc2AhQgASABKAIYIAEoAhxrQQJ1NgIQIAEoAhQgASgCHCABKAIQEJoGIAEgASgCFCABKAIQQQJ0ajYCDCAAQRRqIAFBGGogAUEMahDHASABQSBqJAAgAkEQaiQAIAAgACgCLCAAKAIUEJsGNgIMIAAgACgCJCAAKAIYEI0ENgIIIANBDGogAEEMaiAAQQhqEMcBIABBMGokACAEQRBqJAAgAygCECADQSBqJAALDQAgAEEEahDZARogAAsNACAAQQhqENkBGiAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQdTZADYCACAAQQRqEBkgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8P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dDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgC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KAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQg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NgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ8QQhrNgJ8DAELCwNAIAQoAnwEQCAEIAQoAnBB//8DcTYCHCAEIAQoAnBBEHY2AhggBCAEKAJ4KAIAQf//A3E2AiQgBCAEKAJ4KAIAQRB2NgIgIAQgBCgCeEEEajYCeCAEIAQoAiQgBCgCGGw2AgwgBCAEKAIkIAQoAhxsNgIUIAQgBCgCICAEKAIcbDYCCCAEIAQoAiAgBCgCGGw2AhAgBCAEKAIQIAQoAgxBEHZqNgIQIAQgBCgCECAEKAIIQRB2ajYCECAEIAQoAgxBEHQ2AgwgBCAEKAIIQRB0NgIIIAQgBCgCDCAEKAIUajYCFCAEIAQoAhAgBCgCFCAEKAIMSWo2AhAgBCAEKAIIIAQoAhRqNgIUIAQgBCgCECAEKAIUIAQoAghJajYCECAEIAQoAmwgBCgCFGo2AhQgBCAEKAIQIAQoAhQgBCgCbElqNgIQIAQgBCgCdCgCACAEKAIUajYCFCAEIAQoAhAgBCgCFCAEKAJ0KAIASWo2AhAgBCAEKAIQNgJsIAQoAhQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ8QQFrNgJ8DAELCyAEIAQoAmhBAWo2AmgDQCAEKAJ0IgAgBCgCbCAAKAIAajYCACAEIAQoAnQoAgAgBCgCbEk2AmwgBCAEKAJ0QQRqNgJ0IAQoAmwNAAsLnAIBAX8jAEEgayIDIAA2AhwgAyABNgIYIAMgAjYCFCADQQA2AgwgA0EANgIQA0AgAygCECADKAIcT0UEQCADIAMoAhQoAgAgAygCDEk2AgggAygCFCIAIAAoAgAgAygCDGs2AgAgAyADKAIIIAMoAhQoAgAgAygCGCgCAElqNgIMIAMoAhQiACAAKAIAIAMoAhgoAgBrNgIAIAMgAygCEEEBajYCECADIAMoAhhBBGo2AhggAyADKAIUQQRqNgIUDAELCwNAIAMoAgwEQCADIAMoAhQoAgAgAygCDEk2AgggAygCFCIAIAAoAgAgAygCDGs2AgAgAyADKAIINgIMIAMgAygCEEEBajYCECADIAMoAhRBBGo2AhQMAQsLC+QBAQF/IwBBEGsiASQAIAEgADYCCAJAAkAgASgCCCgCEARAIAEoAggoAhwNAQsgAUGA/H42AgwMAQsCQCABKAIIKAIQKAIAQQFxBEAgASgCCCgCHCgCAEEBcQ0BCyABQYD8fjYCDAwBCwJAIAEoAghBCGoQ9AFBgAFPBEAgASgCCEEIahD0AUGAwABNDQELIAFBgPx+NgIMDAELAkAgASgCCEEUahD0AUECTwRAIAEoAghBFGogASgCCEEIahBiQQBIDQELIAFBgPx+NgIMDAELIAFBADYCDAsgASgCDCABQRBqJAALTQEBfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEIwBBEGsiACABKAIENgIIIAAgACgCCDYCDCABIAAoAgw2AgwgASgCDCABQRBqJAALQAEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCAAIAMoAgggAygCBCIAIAAQUBC/BBBnIANBEGokAAt1AQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEAIAIoAggEQCAAIAIoAggoAgAQ6gMgACACKAIIKAIEEOoDIAIgABDvAzYCBCACKAIEIAIoAghBEGoQ7AMQ1gUgAigCBCACKAIIENUFCyACQRBqJAALJgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBDeASgCACABQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBBFIAFBEGokAAtAAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgwgAygCCCADKAIEEEUQ1wVBAXEgA0EQaiQAC24BAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAggQIDYCAAJAIAIoAgAgAigCBBAgRwRAIAJBADoADwwBCyACIAIoAggQOSACKAIEEDkgAigCABDkA0U6AA8LIAItAA9BAXEgAkEQaiQACyUBAX8jAEEQayIBJAAgASAANgIMIAEoAgxBBGoQGCABQRBqJAALRQEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIgAgAygCCCADKAIEIAAoAgAoAjARBAAgA0EQaiQACzABAX8jAEEQayIBJAAgASAANgIMIAFBgAg2AgggASgCDCABKAIIEJkGIAFBEGokAAsuAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgBBCGoQJRogABC+AhogAUEQaiQAC5MTAQl/IwBBIGsiByQAIAcgATYCGCAHIAA2AhQgByACNgIQIAcoAhQhACAHIAcoAhg2AgggBygCCCEBIAcoAhAh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ADYCDCACIAE6AAsgAigCDCIAQQVBABCqASAAIAItAAtBAXE6AAAgAkEQaiQAIAAL2AEBAn8jAEHAAWsiAiQAIAIgADYCvAEgAiABNgK4ASACKAK4AUH6////B0sEQCACQSxqIgAQbCAAQboUEGsgAkEgaiIBIAAQaiABEHwACyACIAIoArgBQQVqNgIcIAIgAigCHBAuNgIYIAIoAhhFBEAgAkEMaiIAQd0MECIgABCGBAALIAIoAhggAigCuAE2AgAgAigCGCEAIAIoArwBIQEgAigCuAEiAwRAIABBBGogASAD/AoAAAsgAigCGCACKAIcQQFrakEAOgAAIAIoAhggAkHAAWokAAvOAQEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkAkAgAigCKCIAKAIARQRAIAIgACgCBCACKAIkKAIERjoALwwBCyACIAAoAgRBAnY2AiAgAiACKAIkKAIEQQJ2NgIcIAIoAiAgAigCHEcEQCACQQA6AC8MAQsCQCAAKAIABEAgAigCJCgCAA0BCyACQRBqIgBBnB4QIiAAEHwACyACIAAoAgAgAigCJCgCACACKAIgEHM2AgwgAiACKAIMRToALwsgAi0AL0EBcSACQTBqJAALKQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwQECACQRBqJAALMwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAQcTOADYCACAAQQRqEAgaIAFBEGokACAAC1wBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIQEjAEEQayIAIAIoAgwiAzYCDCAAIAE2AgggACgCDCIBIAAoAggoAgA2AgAgAUEAOgAEIAJBEGokACADC2sBBH8jAEEQayICJAAgAiAANgIMIAIoAgwiBCEBIwBBEGsiACQAIAAgATYCDCAAKAIMIQMjAEEQayIBJAAgASADNgIMIAEoAgwQxgEaIAFBEGokACADQQE6AAQgAEEQaiQAIAJBEGokACAEC4IBAQR/IwBBEGsiAiQAIAIgADYCDCACKAIMIgMhASMAQRBrIgAkACAAIAE2AgwgAEG43gA2AgggACgCDCIBIAAoAggiBCgCADYCACABKAIAQQxrKAIAIAFqIAQoAgw2AgAgAUEEahCNAxogAEEQaiQAIANBOGoQ2QEaIAJBEGokACAD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EGsiAiQAIAIgBDYCDCACIAk2AgggAigCDCIEKAIAIAIoAgggBCgCBBDnASACQRBqJAALIAFBEGokACAIQRBqJAAgBRCsAQsLIABB0ABqJAALIAdBARAeIAMoAhQgA0EMaiIBIAcQjgYgARARIAMoAhgQ4QEgBxAsIgAgACgCAEEBajYCACADQSBqJAAgBkEQaiQAC7QCAQN/IwBBEGsiAyQAIAMgADYCDCADKAIMIQEjAEEgayIAJAAgACABNgIcIAAgACgCHCIBEFo2AhggACABKAIQNgIUIAAgARAsNgIQIAAgARBaIAEoAhBqQQFrNgIMIAAoAhAgARARIAAoAgxBCnZBAnRqKAIAIAAoAgxB/wdxQQJ0ahAMEH4gARAsIgIgAigCAEEBazYCACABIAAoAhggACgCFBB1IwBBEGsiAiQAIAIgATYCCCACQQE6AAcCQAJAIAIoAggiARDfBUECSQRAIAItAAdBAXENASABEN8FRQ0BCyABIAEQK0EBa0EAEHUgARAsIAEQ+AEoAgBBgAgQ5wEgARDHAiACQQE6AA8MAQsgAkEAOgAPCyACLQAPGiACQRBqJAAgAEEgaiQAIANBEGokAAs5AQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQgAiACKAIIEDkgAigCBGo2AgwgAigCDCACQRBqJAALYwEBfyMAQRBrIgIkACACIAE2AgwgAiACKAIMIgEQESABKAIQQZIBbkECdGo2AgggACACKAIIIAEQ+QFBAXEEf0EABSACKAIIKAIAIAEoAhBBkgFwQRxsagsQiAEgAkEQaiQAC2QBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQEgAigCCCEDIwBBEGsiACQAIAAgATYCDCAAIAM2AgggACgCDCAAKAIIIAAoAgwQDGtBfHFqIABBEGokACACQRBqJAALbAEDfyMAQRBrIgEkACABIAA2AgggASABKAIIIgA2AgwjAEEQayICJAAgAiAANgIMIAIoAgwiAyADKAIEEJUGIAJBEGokACAAKAIABEAgABATIAAoAgAgABCTARDnAQsgASgCDBogAUEQaiQAC14BA38jAEEQayIBJAAgASAANgIMIAEoAgwhAiMAQRBrIgAkACAAIAI2AgwgACgCDCIDECsEfyADECtBzgBsQQFrBUEACyAAQRBq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IAAgC0GMBGoQH0UEQCAAED1B/wFxIAIgChAWLQAARg0BCyAFIAUoAgBBBHI2AgBBACEADAMLIAAQTxogCkEBaiEKDAALAAtBASEAIA8oAgAgCygCZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQXSALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAIGiANEAgaIA4QCBogDBAIGiAREAgaIA8QOgwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRDkBBoLDAAgAEEBQS0Q5wQaCwoAIAEgAGtBAnULHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qENkECyACIAEgASACKAIAEI8FIAZBDGogAyAAKAIAEIEFIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQogEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEO4CIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwsnAQF/IwBBEGsiASQAIAEgADYCDCABKAIMQZDPARCYASABQRBqJAALQAAgAiADIABBCGogACgCCCgCABEAACIAIABBqAFqIAUgBEEAEO4CIABrIgBBpwFMBEAgASAAQQxtQQdvNgIACwtCACABIAIgAyAEQQQQowEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEPACIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQ8AIgAGsiAEGnAUwEQCABIABBDG1BB282AgALCwQAQQILRAEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwoAgAgAigCCBCqAiEAIAIoAgwgADYCACACKAIMGiACQRBqJAAL2gEBBX8jAEEQayIHJAAjAEEQ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////A0siBRshAkGBgX9BgIF/IAUbIANqIQMMAQsgACAHhFAgCEL//wFSckUEQCAHQhmIp0GAgIACciECQf8BIQMMAQsgA0H+gAFLBEBB/wEhAwwBC0GA/wBBgf8AIAhQIgUbIgYgA2siAkHwAEoEQEEAIQJBACEDDAELIARBEGogACAHIAdCgICAgICAwACEIAUbIgdBgAEgAmsQXyAEIAAgByACEPABIAQpAwgiAEIZiKchAgJAIAQpAwAgAyAGRyAEKQMQIAQpAxiEQgBSca2EIgdQIABC////D4MiAEKAgIAIVCAAQoCAgAhRG0UEQCACQQFqIQIMAQsgByAAQoCAgAiFhEIAUg0AIAJBAXEgAmohAgsgAkGAgIAEcyACIAJB////A0siAxshAgsgBEEgaiQAIAFCIIinQYCAgIB4cSADQRd0ciACcr4LkQIBB38jAEEQayIDJAAgAyAANgIIIAMgAygCCCIANgIMIAAoAgQEQCAAKAIEIQAjAEEQayIFJAAgBSAANgIMIAUoAgwhACMAQRBrIgEkACABIAA2AggjAEEQayICIAEoAggiBkEEajYCDCACKAIMIQQgAkF/NgIIIAQgAigCCCIHIAQoAgAiBGo2AgAgAiAEIAdqNgIEAkAgAigCBEF/RgRAIAYgBigCACgCCBECACABQQE6AA8MAQsgAUEAOgAPCyABLQAPQQFxIAFBEGokAEEBcQRAAkAgAEEIaiIBKAIABEAgARDJBEF/Rw0BCyAAIAAoAgAoAhARAgALCyAFQRBqJAALIAMoAgwaIANBEGokAAuqDwIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQogAkL///////8/gyELIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQgCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAIQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg1CgICAgICAwP//AFQgDUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDUKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASANhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyANQv///////z9YBEAgBUHAAmogASALIAEgCyALUCIGG3kgBkEGdK18pyIGQQ9rEF9BECAGayEGIAUpA8gCIQsgBSkDwAIhAQsgAkL///////8/Vg0AIAVBsAJqIAMgCiADIAogClAiBxt5IAdBBnStfKciB0EPaxBfIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEFggBUGQAmpCACAFKQOoAn1CACAEQgAQWCAFQYACaiAFKQOYAkIBhiAFKQOQAkI/iIQiBEIAIAJCABBYIAVB8AFqIARCAEIAIAUpA4gCfUIAEFggBUHgAWogBSkD+AFCAYYgBSkD8AFCP4iEIgRCACACQgAQWCAFQdABaiAEQgBCACAFKQPoAX1CABBYIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEFggBUGwAWogBEIAQgAgBSkDyAF9QgAQWCAFQaABaiACQgAgBSkDuAFCAYYgBSkDsAFCP4iEQgF9IgJCABBYIAVBkAFqIANCD4ZCACACQgAQWCAFQfAAaiACQgBCACAFKQOoASAFKQOgASINIAUpA5gBfCIEIA1UrXwgBEIBVq18fUIAEFggBUGAAWpCASAEfUIAIAJCABBYIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQWCABQjGGIAUpA1h9IAUpA1AiAUIAUq19IQpCACABfSELIAZB/v8AagwBCyAFQeAAaiAEQj+GIAJCAYiEIgIgBEIBiCIEIAMgEhBYIAFCMIYgBSkDaH0gBSkDYCINQgBSrX0hCkIAIA19IQsgASENIAZB//8AagsiBkH//wFOBEAgDEKAgICAgIDA//8AhCEMQgAhAQwBCwJ+IAZBAEoEQCAKQgGGIAtCP4iEIQEgBEL///////8/gyAGrUIwhoQhCiALQgGGDAELIAZBj39MBEBCACEBDAILIAVBQGsgAiAEQQEgBmsQ8AEgBUEwaiANIBUgBkHwAGoQXyAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEFggBSkDOCAFKQMoQgGGIAUpAyAiAUI/iIR9IAUpAzAiBCABQgGGIg1UrX0hASAEIA19CyEEIAVBEGogAyASQgNCABBYIAUgAyASQgVCABBYIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKD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BEGAA2ogFyAWQgBCgICAgICAgP8/EC0gBCkDkAMgBCkDmANCgICAgICAgLjAABCuBSEDIAQpA4gDIBYgA0EATiICGyEWIAQpA4ADIBcgAhshFyAVIBhCAEIAEPEBIQEgFCACIA5qIg5B7gBqTgRAIAggBiAJRyADQQBIcnEgAUEAR3FFDQELQYzFAUHEADYCAAsgBEHwAmogFyAWIA4QtQUgBCkD+AIhFSAEKQPwAgshFiAMIBU3AyggDCAWNwMgIARBkMYAaiQAIAwpAyghFSAMKQMgIRYMAgtCACEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAMQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABDxAUUNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBAtIAUgBSkDECICIAUpAxgiASACIAEQrQUgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRDxAUEATARAIAEgCiADIAkQ8QEEQCABIQQMAgsgBUHwAGogASACQgBCABAtIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEC0gBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABAtIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABAtIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEC0gBSkDOCECIAUp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QQAQaEEATARAIANBfDYCfAwBCyADQdQAahAkIANByABqECQgA0E8ahAkIANBMGoQJCADQeAAaiIBECQgA0EkahAkIANBGGoQJCADQQxqECQgAxAkIAMgASADKAJ0IAMoAnAQ+gIiADYCbAJAIAANACABQQEQaARAIANBdDYCbAwBCyADIANB1ABqIgEgAygCdCADKAJwEJoBIgA2AmwgAA0AIAMgA0HIAGogARBKIgA2AmwgAA0AIAMgA0EkaiADKAJwEEoiADYCbCAADQAgAyADQRhqIAMoAnAQSiIANgJsIAANACADIANBPGpBARCSASIANgJsIAANACADIANBMGpBABCSASIANgJsIAANACADIANBDGpBABCSASIANgJsIAANACADIANBARCSASIANgJsIAANAANAA0AgAygCUCgCAEEBcUUEQCADIANByABqQQEQggEiADYCbCAADQMCQCADKAJEKAIAQQFxRQRAIAMoAjgoAgBBAXFFDQELIAMgA0E8aiIAIAAgA0EkahDyASIANgJsIAANBCADIANBMGoiACAAIANB1ABqEHsiADYCbCAADQQLIAMgA0E8akEBEIIBIgA2AmwgAA0DIAMgA0EwakEBEIIBIgA2AmwgAEUNAQwDCwsDQCADKAIgKAIAQQFxRQRAIAMgA0EYakEBEIIBIgA2AmwgAA0DAkAgAygCFCgCAEEBcUUEQCADKAIIKAIAQQFxRQ0BCyADIANBDGoiACAAIANBJGoQ8gEiADYCbCAADQQgAyADIAMgA0HUAGoQeyIANgJsIAANBAsgAyADQQxqQQEQggEiADYCbCAADQMgAyADQQEQggEiADYCbCAARQ0BDAMLCwJAIANByABqIgAgA0EYaiIBEGJBAE4EQCADIAAgACABEHsiADYCbCAADQMgAyADQTxqIgAgACADQQxqEHsiADYCbCAADQMgAyADQTBqIgAgACADEHsiADYCbAwBCyADIANBGGoiACAAIANByABqEHsiADYCbCAADQIgAyADQQxqIgAgACADQTxqEHsiADYCbCAADQIgAyADIAMgA0EwahB7IgA2AmwLIAANASADQcgAakEAEGgNAAsDQCADQQxqIgBBABBoQQBIBEAgAyAAIAAgAygCcBDyASIANgJsIABFDQEMAgsLA0AgA0EMaiIAIAMoAnAQYkEATgRA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IwBBEGsiASAAKwMAOQMIIAFBADYCBCABQX82AgAgASsDCCABKAIEt2YEfyABKwMIIAEoAgC4ZQVBAAtBAXFFBEAgAkGsAWoiARBsIAFBvhoQayACQaABaiIAIAEQagwFCyACIAArAwD8AzYC7AQMAwsgAkEANgLsBAwCCyACIAAtAABBAXE2AuwEDAELIAJBFGoiARBsIAFB2iQQayACQQhqIgAgARBqDAELIAIoAuwEIAJB8ARqJAAPCyAAEHwAC+0BAgJ+A38jAEEQayIDJAAgAyAAOQMIAnwgAysDCCIAvSIBQjSIp0H/D3EiBEH/B2shBQJAIARBswhPBEAgAyAAOQMAIAFC/////////weDUEUgBUGACEZxDQEgAUKAgICAgICAgIB/g78MAgsgBEH+B00EQCADIAFCgICAgICAgICAf4M3AwAgAAwCCyABIAWtIgKGQv////////8Hg1AEQCADIAA5AwAgAUKAgICAgICAgIB/g78MAgsgA0KAgICAgICAeCAChyABgyIBNwMAIAAgAb+hIQALIAALRAAAAAAAAAAAYSADQRBqJAALPgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwiAEEEQQAQqgEgACACKAIIEAo2AgAgAkEQaiQAIAALKgEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAIAAoAgAQ+wQgAUEQaiQAC1EBAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCIAQQRBARCqASAAIAMoAgggAygCBCADKAIIaxD4AzYCACADQRBqJAAgAAs8AQF/IwBBEGsiAiQAIAIgADYCDCACIAE5AwAgAigCDCIAQQNBABCqASAAIAIrAwA5AwAgAkEQaiQAIAALPAEBfyMAQRBrIgIkACACIAA2AgwgAiABNwMAIAIoAgwiAEECQQAQqgEgACACKQMANwMAIAJBEGokACAACzwBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBAkEAEKoBIAAgAjUCCDcDACACQRBqJAAgAAsiAQF/IwBBEGsiASAANgIMIAEoAgwiACAAKAIAQQRqNgIAC2kBAX8jAEEQayIEIAA2AgwgBCABNgIIIAQgAjYCBCAEIAM2AgAgBCgCDCIAIAQoAgg2AgAgACAEKAIAQQNx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jAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIQEgAigCDCIAQQA2AhQgACABNgIYIABBADYCDCAAQoKggIDgADcCBCAAIAFFNgIQIABBIGpBAEEo/AsAIABBHGoQyAQgAEEANgJIIwBBEGsiASAAQcwAajYCDCABKAIMQQA6AAQgAkEQaiQAC0oBAn8jAEEQayIBJAAgASAANgIMIwBBEGsiACABKAIMIgI2AgwgACgCDCIAQYDhADYCACAAQQA2AhwgAkG02wA2AgAgAUEQaiQACxgBAX8jAEEQayIBIAA2AgwgASgCDCkDAAuEBgECfyMAQSBrIgIkACACIAA2AhwgAiABNgIYAkAgAigCGBDFAkUEQCAAQZUzECIMAQsgAiACKAIYECA2AhQgAkEANgIQIAJBADYCDCACQQA2AgggAkEAOgAAIAAQTANAIAIgAigCFCIBQQFrNgIUAn9BACABRQ0AGkEAIAIoAhggAigCCBCLBC0AAEE9Rg0AGiACKAIYIAIoAggQiwQtAAAhAyMAQRBrIgEkACABIAM6AA8Cf0EBIAEtAA8iA0Ewa0EKSSADQSByQeEAa0EaSXINABpBASABLQAPQStGDQAaIAEtAA9BL0YLIAFBEGokAEEBcQtBAXEEQCACKAIYIAIoAggQiwQtAAAhASACIAIoAhAiA0EBajYCECACQQRqIANqIAE6AAAgAiACKAIIQQFqNgIIIAIoAhBBBEYEQCACQQA2AhADQCACKAIQQQRIBEAgAigCECACQQRqai0AAMAQmwdB/wFxIQEgAigCECACQQRqaiABOgAAIAIgAigCEEEBajYCEAwBCwsgAiACLQAEQQJ0IAItAAVBMHFBBHZqOgABIAIgAi0ABUEPcUEEdCACLQAGQTxxQQJ2ajoAAiACIAItAAcgAi0ABkEDcUEGdGo6AAMgAkEANgIQA0AgAigCEEEDSARAIAAgAigCECACQQFqai0AAMAQhgEgAiACKAIQQQFqNgIQDAELCyACQQA2AhALDAELCyACKAIQBEAgAkEANgIMA0AgAigCDCACKAIQSARAIAIoAgwgAkEEamotAADAEJsHQf8BcSEBIAIoAgwgAkEEamogAToAACACIAIoAgxBAWo2AgwMAQsLIAIgAi0ABEECdCACLQAFQTBxQQR2ajoAASACIAItAAVB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AUEAOgADIAECfyABLQADQQFxBEAgASgCBEEIawwBCyABKAIEQQF2QQhrCzYCDAsgASgCDCABQRBqJAALSwECfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAEoAgghAiMAQRBrIgAkACAAIAI2AgwgAEEMahCdBCAAQRBqJAAgAUEQaiQACy0BAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABANKAIAIAAoAgBrIAFBEGokAAtWAQJ/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEBIAIoAgghAyMAQRBrIgAkACAAIAE2AgwgACADNgIIIAAoAggQogQgAEEQaiQAIAJBEGokAAt1AQJ/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgwhASADKAIIIQIgAygCBCEEIwBBEGsiACQAIAAgATYCDCAAIAI2AgggACAENgIEIAAoAgggACgCBEEYbEEEEK8BIABBEGokACADQRBqJAALMAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEA0oAgAgACgCAGtBGG0gAUEQaiQAC3UBAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCAAKAIEQQF0QQEQrwEgAEEQaiQAIANBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQDSgCACAAKAIAa0EBdSABQRBqJAALVgECfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwhASACKAIIIQMjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAKAIIEAgaIABBEGokACACQRBqJAALTQEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjoAByADKAIMIgAgA0EGaiADQQVqENACIAAgAygCCCADLQAHwBCaByADQRBqJAALxAIBAn8jAEEQayIEJAAgBCAANgIMIAQgATYCCCAEIAI2AgQgBCADNgIAIAQoAgghAiAEKAIEIQMgBCgCACEFIwBBQGoiASQAIAEgADYCLCABIAI2AiggASADNgIkIAEgBTYCICABQQA6AB8gASgCKCABQRBqIgIgASgCJCABKAIgEJ4C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AUETajYCDCAEIAI2AgggBCADNgIEIAQgBjYCACAEKAIIIQMgBCgCBCEGIAQoAgAhByMAQSBrIgIkACACIAM2AhwgAiAGNgIYIAIgBzYCFCACIAIoAhggAigCHGtBDG02AhAgAigCHCEGIAIoAhAhByMAQRBrIgMgAigCFDYCDCADIAY2AgggAyAHNgIEIAMgAygCBDYCACADKAIABEAgAygCDCEGIAMoAgghByADKAIAQQxsQQNrIggEQCAGIAcgCPwKAAALCyADKAIMGiACIAIoAhQgAigCEEEMbGo2AgwgAUEUaiACQRhqIAJBDGoQxwEgAkEgaiQAIARBEGokACABKAIsIQMgASgCFCEEIwBBEGsiAiQAIAIgAzYCDCACIAQ2AgggAigCDCACKAIIEKYEIQMgAkEQaiQAIAEgAzYCDCABIAEoAiQgASgCGBCmBDYCCCAAIAFBDGogAUEIahDHASABQTBqJAAgBUEQaiQAC0UBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgA0EMaiADKAIcIAMoAhggAygCFBDcBiADKAIQIANBIGokAAsaAQF/IwBBEGsiASAANgIMIAEoAgxBAToABAtYAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIINgIEIwBBEGsiASACKAIENgIMIAEgADYCCCABKAIIIgAgASgCDDYCACAAQQA6AAQgAkEQaiQAC2kBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACIAIoAgwiACgCBDYCBANAIAIoAgggAigCBEZFBEAgABANIAIgAigCBEE0ayIDNgIEIAMQDBChAgwBCwsgACACKAIINgIEIAJBEGokAAsuAQF/IwBBEGsiASQAIAEgADYCDCMAQRBrIAEoAgw2AgxB/////wEgAUEQaiQAC4MBAQJ/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggAygCDCECIAMoAgghBCMAQRBrIgEkACABIAI2AgwgASAENgIIIAEoAgggASgCDBDhBksEQBDJAQALIAEoAghBA3RBBBDIASECIAFBEGokACAAIAI2AgAgACADKAIINgIEIANBEGokAAtFAQF/IwBBEGsiASQAIAEgADYCDCABIAEoAgwQDRDhBjYCCCABQf////8HNgIEIAFBCGogAUEEahCOASgCACABQRBqJAALVgECfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwhASACKAIIIQMjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAKAIIEPgCIABBEGokACACQRBqJAALUAEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAgwiACADKAIINgIAIAAgAygCCCgCBDYCBCAAIAMoAggoAgQgAygCBEEDdGo2AggLlQEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACIAIoAhgiABDjBjYCECACKAIUIAIoAhBLBEAgABDKAQALIAIgABCkAzYCDAJAIAIoAgwgAigCEEEBdk8EQCACIAIoAhA2AhwMAQsgAiACKAIMQQF0NgIIIAIgAkEIaiACQRRqEG4oAgA2AhwLIAIoAhwgAkEgaiQACzABAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABATKAIAIAAoAgBrQQxtIAFBEGokAAtQAQF/IwBBEGsiAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCIAIAMoAggoAgA2AgAgACADKAIIKAIAIAMoAgRBDGxqNgIEIAAgAygCCDYCCAvqAQEHfyMAQRBrIgQkACAEIAA2AgggBCAEKAIIIgA2AgwjAEEQayIFJAAgBSAANgIMIAUoAgwiAiEDIAIoAgQhASMAQRBrIgIkACACIAM2AgwgAiABNgIIIAIoAgwhASACKAIIIQYjAEEQayIDJAAgAyABNgIIIAMgBjYCBCADKAIIIQEDQCADKAIEIAEoAghHBEAgARAyIAEgASgCCEEMayIHNgIIIAcQDBB+DAELCyADQRBqJAAgAkEQaiQAIAVBEGokACAAKAIABEAgABAyIAAoAgAgABDnBhDXAgsgBCgCDBogBEEQaiQAC2gBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACIAIoAgwiACgCBDYCBANAIAIoAgggAigCBEZFBEAgABANIAIgAigCBEEIayIDNgIEIAMQDBB+DAELCyAAIAIoAgg2AgQgAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACAAKAIAEOoGIAFBEGokAAtUAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAoAgAEQCAAKAIAEPUGIAAoAgAQMSAAKAIAEA0gACgCACgCACAAKAIAEKMCENcCCyABQRBqJAALVAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIAKAIABEAgACgCABDrBiAAKAIAEDEgACgCABANIAAoAgAoAgAgACgCABCkAxCqBAsgAUEQaiQAC0QBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIAIoAgwQ7wZLBEAQyQEACyACKAIIQTRsQQQQyAEgAkEQaiQACy0BAX8jAEEQayIBJAAgASAANgIMIwBBEGsgASgCDDYCDEHEnbEnIAFBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQDSgCACAAKAIAa0E0bSABQRBqJAALnwEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBADYCACAAQQA2AgQgAkEANgIEIABBCGogAkEEaiACKAIIEA0QqAMgACACKAIIKAIANgIAIAAgAigCCCgCBDYCBCACKAIIEA0oAgAhASAAEA0gATYCACACKAIIEA1BADYCACACKAIIQQA2AgQgAigCCEEANgIAIAJBEGokAAtEAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIMIgAQsQE2AgQgACACKAIIEOoGIAAgAigCBBAeIAJBEGokAAt3AQR/IwBBEGsiASQAIAEgADYCDEEIEFshAiABKAIMIQEjAEEQayIAJAAgACACNgIMIAAgATYCCCAAKAIIIQEgACgCDCIDEMAEIgRBkMIBNgIAIARBBGogARCeByADQdTCATYCACAAQRBqJAAgAkHgwgFBBxAAAAsuAQF/IwBBEGsiASQAIAEgADYCDCMAQRBrIAEoAgw2AgxB1arVqgEgAUEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACAAKAIAEPgGIAFBEGokAAuDAQECfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIAMoAgwhAiADKAIIIQQjAEEQayIBJAAgASACNgIMIAEgBDYCCCABKAIIIAEoAgwQ9AZLBEAQyQEACyABKAIIQQxsQQQQyAEhAiABQRBqJAAgACACNgIAIAAgAygCCDYCBCADQRBqJAALRQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMEA0Q9AY2AgggAUH/////BzYCBCAB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FCADIBhCgJTr3AOAIhk3AwggAyAYIBlCgJTr3AN+fT4CECAAIAMpAxA3AzAgACADKQMINwMoQQALIANBIGokAARAQYzFASgCABoQQgALIABBGGogAEEoahD0AiEHIAAgACgCMEHoB202AgwgACAANAIMNwMQIwBBIGsiAyQAIwBBEGsiCCQAIwBBEGsiCiQAIwBBEGsiBCQAIAQgBykDAELAhD1+NwMAIARBCGogBBD0AikDACEYIARBEGokACAKQRBqJAAgCCAYNwMIIAMgCCkDCDcDCCAIQRBqJAAgAykDCCEYIAMgACkDEDcDACADIBggAykDAHw3AxAgA0EYaiADQRBqEPQCKQMAIRggA0EgaiQAIAAgGDcDICAAQThqIABBIGoQ9AIpAwAhGCAAQUBrJAAgAiAYNwMIIwBBEGsiACACQQhqNgIEIAAgACgCBCkDADcDCCACIAApAwg3AxAjAEEQayIDJAAgAyACQRBqNgIEIAMoAgQhBCMAQSBrIgAkACAAIANBA2o2AhQgACAENgIQIAAgACgCEBCMBkLAhD1/NwMIIwBBEGsiBCAAQRhqNgIMIAQgAEEIajYCCCAEKAIMIAQoAggpAwA3AwAgACkDGCEYIABBIGokACADIBg3AwggAykDCCEYIANBEGokACACIBg3AxggAkEYahCMBiEYIAJBIGokACABIBg3A7AGAkACQAJAIAUQ2gFBAXENACMAQRBrIgAkACAAIAFBqAZqIgM2AgwgACAFQShqNgIIAkAgACgCCCICLQAIQQZrQQFNBEAgAigCAARAIAAgAigCABCHAzYCBCADIABBBGoQ/AMaDAILCyADEP0DGgsgAEEQaiQAA0AjAEEQayIAJAAgACABQaAGaiICNgIMIAAgBUEoaiIHNgIIAkAgACgCCCIDLQAIQQZrQQFNBEAgAygCAARAIAAgAygCABD3ATYCBCACIABBBGoQ/AMaDAILCyACEP0DGgsgAEEQaiQAIwBBEGsiAyQAIAMgAUGoBmoiBDYCDCADIAI2AgggAygCDCECIAMoAgghCCMAQRBrIgAkACAAIAI2AgggACAINgIEAkAgACgCCCIILQAEQQFxBEAgACAAKAIELQAEQQFxOgAPDAELIAAoAgQhCiMAQRBrIgIkACACIAg2AgwgAiAKNgIIIAIoAgwgAigCCBC/AkEB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AAsgA0EANgIEIANBADYCCCABKAIMGiABQRBqJAAgBBAQCyACQRBqJAALIABBEGokACAFQRBqJAALIAZBpAFqEAgaCyAGQYACahAIGgsjAEEQayIAJAAgACAGQZACajYCDCAAKAIMKAIAGiAAQRBqJAAgBkGUAmoQCBogBkGwAmokACAMEAgaIBMQCBogDhA1IA4QCBogDEEwaiQACyIBAX8jAEEQayIBJAAgASAANgIMQdjEARAIGiABQRBqJAALIwEBfyMAQRBrIgEkACABIAA2AgxB8MMBEJYGGiABQRBqJAALmAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIAEtAABBGCIBdCABdUUNACACKAIIQZ14NgIAIAIoAggiASABKAIIQQFqNgIIIAAQESEAIAIoAgggADYCKAwBCyACKAIIQZ94NgIAIAIoAghBADYCKAsgAkEQaiQAC2EBAX8jAEEQayIDJAAgAyAANgIMIAMgAToACyADIAI2AgQgAygCDCEAIAMoAgRBnng2AgACQCADLQALQQFxBEAgABAvIQAMAQsgABARIQALIAMoAgQgADYCKCADQRBqJAALIgEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCCEGgeDYCAAtAAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCACKAIIQaF4NgIAEBEhACACKAIIIAA2AiggAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABCUBBogABAQIAFBEGokAAt+AQF/IwBBEGsiAyQAIAMgADYCDCADIAE6AAsgAyACNgIEIAMoAgwhACADKAIEQZ54NgIAAkAgAC0AIEEBcSADLQALQQFxRwRAIAAQESEBIAMoAgQgATYCKCAAIAMoAgQQkwQMAQsgABAvIQAgAygCBCAANgIoCyADQRBqJAAL5gMBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQCACKAIIKAIAQaF4RgRAIAIoAghBHGogACgCFBDOAiIDKAIAQQFqIQEgAyABNgIAIAIgASAAKAIQSToAByACIAIoAghBHGogACgCFBDOAigCACAAKAIMTzoABgJAIAItAAdBAXFFDQAgAi0ABkEBcUUN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AigCDGotAABBGCIBdCABdRCJAUEYdCABdSADIAIoAhgoAgggAigCDGotAABBGHQgAXUQiQFBGHQgAXVHDQQgAiACKAIMQQFqNgIMDAELCyACKAIYQZ54NgIAIAIoAhgiASACKAIQIAEoAghqNgIIIAAQESEAIAIoAhggADYCKAwBCyACKAIYQZ94NgIAIAIoAhhBADYCKAsMAQsgAigCGEGfeDYCACACKAIYQQA2AigLIAJBIGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0AYaIAAQECABQRBqJAAL1gIBAn8jAEEgayICJAAgAiAANgIcIAIgATYCGCACIAIoAhhBEGogAigCHCIAKAIUQQFrEDc2AhQCQAJAIAIoAhQtAAhBAXFFDQAgAiACKAIUKAIEIAIoAhQoAgBrNgIQAkAgAigCECACKAIYKAIMIAIoAhgoAghrTARAIAJBADYCDANAIAIoAgwgAigCEEgEQCAAQQhqIgMgAigCFCgCACACKAIMai0AAEEYIgF0IAF1EHZBGHQgAXUgAyACKAIYKAIIIAIoAgxqLQAAQRh0IAF1EHZBGHQgAXVHDQQgAiACKAIMQQFqNgIMDAELCyACKAIYQZ54NgIAIAIoAhgiASACKAIQIAEoAghqNgIIIAAQESEAIAIoAhggADYCKAwBCyACKAIYQZ94NgIAIAIoAhhBADYCKAsMAQsgAigCGEGfeDYCACACKAIYQQA2AigLIAJBIGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0QYaIAAQECABQRBqJAALowEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIAEtAABBGCIBdCABdSAALQAIQRh0IAF1Rw0AIAIoAghBnXg2AgAgAigCCCIBIAEoAghBAWo2AgggABARIQAgAigCCCAANgIoDAELIAIoAghBn3g2AgAgAigCCEEANgIoCyACQRBqJAALsQEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIABBCGogAS0AAEEYIgF0IAF1EIkBQRh0IAF1IAAtABRBGHQgAXVHDQAgAigCCEGdeDYCACACKAIIIgEgASgCCEEBajYCCCAAEBEhACACKAIIIAA2AigMAQsgAigCCEGfeDYCACACKAIIQQA2AigLIAJBEGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0gYaIAAQECABQRBqJAALsAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIABBCGogAS0AAEEYIgF0IAF1EHZBGHQgAXUgAC0AFEEYdCABdUcNACACKAIIQZ14NgIAIAIoAggiASABKAIIQQFqNgIIIAAQESEAIAIoAgggADYCKAwBCyACKAIIQZ94NgIAIAIoAghBADYCKAsgAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABDTBhogABAQIAFBEGokAAv4AgECfyMAQdAAayICJAAgAiAANgJMIAIgATYCSCACKAJMIQAgAkEQaiIBEIIHIAEgAEEIahCVAUEBaiACKAJIKAIIIAIoAkgoAgxBABCBB0EAIQEgAiAAQQhqIAIoAkgoAgggAigCSCgCDCACQRBqIAIoAkgoAixBwAAQqgJBgCAQgAcQPCACKAJILQAwQQFxBH8gAigCSCgCCCACKAJIKAIERgUgAQtBAXEQ/wZBAXE6AA8CQCACLQAPQQFxIAAtADRBAXFHBEAgAigCSEGeeDYCACAAEBEhASACKAJIIAE2AiggAkEBNgIIA0AgAigCCCACQRBqIgEQ2gJPRQRAIAEgAigCCBA3IQEgAigCSEEQaiAAKAIwIAIoAghqQQFrEDciAyABKQIANwIAIANBCCIDaiABIANqLQAAOgAAIAIgAigCCEEBajYCCAwBCwsMAQsgAigCSEGfeDYCACACKAJIQQA2AigLIAJBEGoQswQgAkHQAGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQgwcaIAAQECABQRBqJAALsgQBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQAgAkEAOgAHIAIoAggoAgwiASACKAIIKAIERwRAAkAgAigCCCgCCCABRgRAIAIoAggoAixBCBA8RQRAIAIgAigCCCgCCEEBay0AADoABkEBIQEgAiACLQAGQRgiA3QgA3VB3wBHBH8gAEEIaiACLQAGQRgiAXQgAXVB4AAQoAEFIAELQQFxOgAHCwwBCwJAAkAgAigCCCgCCCACKAIIKAIERw0AIAIoAggoAixBgAEQPA0AIAIoAggoAixBBBA8RQRAIAIgAigCCCgCCC0AADoABUEBIQEgAiACLQAFQRgiA3QgA3VB3wBHBH8gAEEIaiACLQAFQRgiAXQgAXVB4AAQoAEFIAELQQFxOgAHCwwBCyACIAIoAggoAghBAWstAAA6AAQgAiACKAIIKAIILQAAOgADQQEhASACIAItAARBGCIDdCADdUHfAEcEfyAAQQhqIAItAARBGCIBdCABdUHgABCgAQUgAQtBAXE6AAJBASEBIAIgAi0AA0EYdCADdUHfAEcEfyAAQQhqIAItAANBGCIBdCABdUHgABCgAQUgAQtBAXE6AAEgAiACLQACQQFxIAItAAFBAXFHOgAHCwsLAkAgAi0AB0EBcSAALQAUQQFxRwRAIAIoAghBnng2AgAgABARIQAgAigCCCAANgIoDAELIAIoAghBn3g2AgAgAigCCEEANgIoCyACQRBqJAALKgEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEIQHGiAAEBAgAUEQaiQAC8wBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEAAkACQCACKAIIKAIIIAIoAggoAgxHDQAgAigCCCgCLEECEDwNACACKAIIQZ54NgIAIAAQESEAIAIoAgggADYCKAwBCwJAAkAgAC0ACEEBcUUNACACKAIIKAIILQAAQRgiAXQgAXUQhwdBAXFFDQAgAigCCEGeeDYCACAAEBEhACACKAIIIAA2AigMAQsgAigCCEGfeDYCACACKAIIQQA2AigLCyACQRBqJAALlQIBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQECQAJAIAIoAggtADBBAXFFDQAgAigCCCgCCCACKAIIKAIERw0AIAIoAggoAixBARA8DQAgAigCCEGeeDYCACABEBEhACACKAIIIAA2AigMAQsCQAJAIAEtAAhBAXFFDQAgAigCCC0AMEEBcQ0AIAIoAggoAgghAyMAQRBrIgAkACAAIAM2AgwgAEEBNgIIIABBDGpBACAAKAIIaxCGByAAKAIMIABBEGokAC0AAMAQhwdBAXFFDQAgAigCCEGeeDYCACABEBEhACACKAIIIAA2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IQEMAQsLIAELQAADQCABIAJHBEAgASABLAAAIgBBAE4Ef0GQ8gAoAgAgASwAAEECdGooAgAFIAALOgAAIAFBAWohAQwBCwsgAQseACABQQBOBH9BkPIAKAIAIAFBAnRqKAIABSABC8ALQAADQCABIAJHBEAgASABLAAAIgBBAE4Ef0GE5gAoAgAgASwAAEECdGooAgAFIAALOgAAIAFBAWohAQwBCwsgAQseACABQQBOBH9BhOYAKAIAIAFBAnRqKAIABSABC8ALCQAgABDCBxAQCzUAA0AgASACRkUEQCAEIAEoAgAiACADIABBgAFJGzoAACAEQQFqIQQgAUEEaiEBDAELCyABCw4AIAEgAiABQYABSRvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQtBAANAIAEgAkcEQCABIAEoAgAiAEH/AE0Ef0GQ8gAoAgAgASgCAEECdGooAgAFIAALNgIAIAFBBGohAQwBCwsgAQseACABQf8ATQR/QZDyACgCACABQQJ0aigCAAUgAQsLQQADQCABIAJHBEAgASABKAIAIgBB/wBNBH9BhOYAKAIAIAEoAgBBAnRqKAIABSAACzYCACABQQRqIQEMAQsLIAELHgAgAUH/AE0Ef0GE5gAoAgAgAUECdGooAgAFIAELCzoAA0ACQCACIANGDQAgAigCACIAQf8ASw0AIABBAnRB4IABaigCACABcUUNACACQQRqIQIMAQsLIAILOgADQAJAIAIgA0YNACACKAIAIgBB/wBNBEAgAEECdEHggAFqKAIAIAFxDQELIAJBBGohAgwBCwsgAgtJAQF/A0AgASACRkUEQEEAIQAgAyABKAIAIgRB/wBNBH8gBEECdEHggAFqKAIABSAACzYCACADQQRqIQMgAUEEaiEBDAELCyABCyUAQQAhACACQf8ATQR/IAJBAnRB4IABaigCACABcUEARwUgAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQxwcQEAvBAQAjAEEQayIDJAACQCAFEFRFBEAgACAFKAIINgIIIAAgBSkCADcCACAAEOwBGgwBCyAFKAIAIQIgBSgCBCEFIwBBEGsiBCQAAkACQAJAIAUQuQMEQCAAIQEgACAFEF4MAQsgBUH3////A0sNASAEQQhqIAUQpwJBAWoQpgIg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cwByaWdodC1wYXJlbnRoZXNpcwBsZWZ0LXBhcmVudGhlc2lzAEZlYXR1cmVzAE1vZHVsZXMAbGljZW5zZSBtRWRpdGlvbiBsTW9kdWxlTjolcwAlczolZDogJXMAZm91cgBBcHIAdmVjdG9yAG1vbmV5X2dldCBlcnJvcgBleHBlY3RpbmcgYW5vdGhlciBcdSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyAGxvd2VyAHVwcGVyAGluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiBGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlcgBpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlU3RyaW5nVmFsdWUoKTogRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIAY3VycmVudCA+PSBidWZmZXIARXhwaXJlQnVmZmVyAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAGlvc19iYXNlOjpjbGVhcgBNYXIAcQAvVXNlcnMvYnl0ZWRhbmNlL0RvY3VtZW50cy/ngrnmkq0vdHRsaWNlbnNlMi9QYW5kb3JhL3R0bGljZW5zZTIvc3JjL21haW4vam5pL3NvdXJjZS91dGlsL2pzb25jcHAuY3BwAC9lbXNkay9lbXNjcmlwdGVuL3N5c3RlbS9saWIvbGliY3h4YWJpL3NyYy9wcml2YXRlX3R5cGVpbmZvLmNwcABmdWxsLXN0b3AAU2VwACVJOiVNOiVTICVwAHR3bwB6ZXJvAFN1bgBKdW4AY2FycmlhZ2UtcmV0dXJuAHNlbWljb2xvbgByc2FFbmNyeXB0aW9uAHN0ZDo6ZXhjZXB0aW9uAHByZW1pdW1fZWRpdGlvbgBlbnRlcnByaXNlX2VkaXRpb24Abm9uZV9lZGl0aW9uAHN0YW5kYXJkX2VkaXRpb24ARWRpdGlvbgBNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24ATWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbgA6IG5vIGNvbnZlcnNpb24ARmlsZVZlcnNpb24ATW9uAFdpbGRjYXJkRG9tYWluAHBlcmNlbnQtc2lnbgBwbHVzLXNpZ24AZXF1YWxzLXNpZ24AbnVtYmVyLXNpZ24AZG9sbGFyLXNpZ24AbGVzcy10aGFuLXNpZ24AZ3JlYXRlci10aGFuLXNpZ24Ac2V2ZW4AaHlwaGVuAG5hbgBKYW4AYWxudW0ASnVsAGNudHJsAHN0b3VsbABudWxsAEFwcmlsAENoYW5uZWwAYXN0ZXJpc2sAcXVlc3Rpb24tbWFyawBxdW90YXRpb24tbWFyawBleGNsYW1hdGlvbi1tYXJrAGJsYW5rAGoARnJpAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGJhY2tzbGFzaABncmFwaABNYXJjaABBdWcAaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6IGxlbmd0aCB0b28gYmlnIGZvciBwcmVmaXhpbmcAYmFzaWNfc3RyaW5nAFR5cGUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHN0cmluZwBFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAEJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAHZhbHVlVG9TdHJpbmcAJSUuJWRnAGluZgAwMTIzNDU2Nzg5YWJjZGVmACUuMExmACVMZgBzaXplAGluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZQBmaXZlAHRydWUAflZhbHVlAGluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlAGluIEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGtleSwgZW5kKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUAaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZQBUdWUAbGljZW5zZQBmYWxzZQB1bmRlcnNjb3JlAFVua25vd24gZXJyb3IgdHlwZQBUeXBlAEp1bmUAb25lAG5pbmUAbmV3bGluZQBsb3ctbGluZQB2ZXJ0aWNhbC1saW5lAFN0YXJ0VGltZQBFeHBpcmVUaW1lAE1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZQBNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUAUGFja2FnZU5hbWUAYXBvc3Ryb3BoZQBMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlAExhcmdlc3RVSW50IG91dCBvZiBVSW50IHJhbmdlAGRvdWJsZSBvdXQgb2YgVUludCByYW5nZQBMYXJnZXN0SW50IG91dCBvZiBJbnQgcmFuZ2UATGFyZ2VzdFVJbnQgb3V0IG9mIEludCByYW5nZQBkb3VibGUgb3V0IG9mIEludCByYW5nZQA6IG91dCBvZiByYW5nZQB0aHJlZQB0aWxkZQByaWdodC1icmFjZQBsZWZ0LWJyYWNlAGJhY2tzcGFjZQBwZXJpb2QAYW1wZXJzYW5kACUwKmxsZAAlKmxsZABjaGVjayBmaWxlVmVyc2lvbiBmYWlsZWQhIHRtcEZpbGVWZXJzaW9uOiVsbGQsZmlsZVZlcnNpb246JWxsZABtRmVhdHVyZXNbal0uTmFtZTolcywgbUZlYXR1cmVzW2pdLlN0YXJ0VGltZTolbGxkAGZlYXR1cmU6JXMgZXhwaXJlZCwgcGxlYXNlIHVwZGF0ZSEgY3VycmVudFRpbWU6JWxsZCxleHBpcmVUaW1lOiVsbGQAbW9kdWxlOiVzIGV4cGlyZWQsIHBsZWFzZSB1cGRhdGUhIGN1cnJlbnRUaW1lOiVsbGQsZXhwaXJlVGltZTolbGxkACslbGxkACUrLjRsZABsb2NhbGUgbm90IHN1cHBvcnRlZABhc3NlcnQganNvbiBmYWlsZWQAbXV0ZXggbG9jayBmYWlsZWQAY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSkgZmFpbGVkAGZvcm0tZmVlZABXZWQAYWRkZGRkZGRkZABCdW5kbGVJZABMaWNlbnNlSW5mb1slZF0tLS0tLS0+IGlkOiVzLCBmZWF0dXJlX25hbWU6JXMsIGZlYXR1cmVfZXhwaXJlX3Q6JWxsZCwgZmVhdHVyZV9zdGF0dXM6JWQATGljZW5zZUluZm9bJWRdLS0tLS0tPiBpZDolcywgbW9kdWxlX25hbWU6JXMsIG1vZHVsZV9leHBpcmVfdDolbGxkLCBtb2RsZV9zdGF0dXM6JWQAbGljZW5zZSBzaXplOiVkACVZLSVtLSVkAG1MaWNlbnNlU3RhdHVzWyVzXSA9PSAlZABzdGQ6OmJhZF9hbGxvYwBEZWMARmViAHZlcnRpY2FsLXRhYgBjb21tYQBhbHBoYQBjb2xsZWN0Q29tbWVudHNfAFtMSUNFTlNFX0xPR10AWgAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWABXAFYAVQBUACVIOiVNOiVTAFIAUQBQAE8ATmFOAE5BTgBQTQBBTQAlSDolTQBOVUwATENfQUxMAEsASgBBU0NJSQBIAExBTkcASU5GAEUAUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRABDAEIAUlNBAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AG9wZXJhdG9yPT0AOgAtMWUrOTk5OQAwMTIzNDU2Nzg5AEMuVVRGLTgAMTI3LjAuMC4xAC4wAGxlbiA+PSAwAGxhc3RWYWx1ZV8gIT0gMABBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAGluIEpzb246OlZhbHVlOjpzZXRDb21tZW50KCk6IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBtaXNtYXRjaGVkIHsgYW5kIH0uAFZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50LgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50LgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCBjaGFyYWN0ZXIgcmFuZ2UsIHN1Y2ggYXMgW2ItYV0gaW4gbW9zdCBlbmNvZGluZ3MuAGFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4AJyBpcyBub3QgYSBudW1iZXIuAEFuIGVtcHR5IHJlZ2V4IGlzIG5vdCBhbGxvd2VkIGluIHRoZSBQT1NJWCBncmFtbWFyLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCByYW5nZSBpbiBhIHt9IGV4cHJlc3Npb24uAFRoZSBwYXJzZXIgZGlkIG5vdCBjb25zdW1lIHRoZSBlbnRpcmUgcmVndWxhciBleHByZXNzaW9uLgBPbmUgb2YgKj8reyB3YXMgbm90IHByZWNlZGVkIGJ5IGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uLgBUaGUgY29tcGxleGl0eSBvZiBhbiBhdHRlbXB0ZWQgbWF0Y2ggYWdhaW5zdCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBleGNlZWRlZCBhIHByZS1zZXQgbGV2ZWwuAEEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGVzY2FwZWQgY2hhcmFjdGVyLCBvciBhIHRyYWlsaW5nIGVzY2FwZS4AVGhlcmUgd2FzIGluc3VmZmljaWVudCBtZW1vcnkgdG8gY29udmVydCB0aGUgZXhwcmVzc2lvbiBpbnRvIGEgZmluaXRlIHN0YXRlIG1hY2hpbmUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGNvbGxhdGluZyBlbGVtZW50IG5hbWUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lLgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLgBUaGVyZSB3YXMgaW5zdWZmaWNpZW50IG1lbW9yeSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmVndWxhciBleHByZXNzaW9uIGNvdWxkIG1hdGNoIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHNlcXVlbmNlLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCBiYWNrIHJlZmVyZW5jZS4AQW4gaW52YWxpZCByZWdleCBncmFtbWFyIGhhcyBiZWVuIHJlcXVlc3RlZC4AU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLgBCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4AQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBtaXNtYXRjaGVkIFsgYW5kIF0uAC4qLgBFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgbWlzbWF0Y2hlZCAoIGFuZCApLgAtLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQAtLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0ALioAKG51bGwpAF4oACcAJQApJABlcnJvciBjb250ZW50IG9yIHNpZ24gaXMgZW1wdHkhAGVycm9yIGxpY2Vuc2UgaXMgZW1wdHkhAGNvbnRlbnQgYmFzZTY0IGZhaWwhAHNpZ24gYmFzZTY0IGZhaWwhAGVycm9yIHBhY2thZ2VOYW1lOiVzLCBsaWNlbnNlUGFja2FnZU5hbWU6JXMgbm90IG1hdGNoIQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBTaWduIGNvbXBhcmUgcGFzc2VkISEhAFNpZ24gY29tcGFyZSBmYWlsZWQhISEAS2V5IGlzIG5vdCBhbiBSU0Ega2V5CgBmYWlsZWQKICAhIHJzYV9wa2NzMV9kZWNyeXB0IHJldHVybmVkICVkCgBwYXNzZWQhCgAJACqGSIb3DQEBAQBBoDMLwgMtLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTRNeUtKYjVuZTVCWGZHd2N3K09ZCjJoOWx1TEFTRFFKeWx3VklXcUljSVQ5Z3ZpN3pVdWNJcndWWXdqUmdOZmVmV1M0bkhodXZxUTErRlR5ZU9acFMKU1N1UG5IMEN4QVZyN1hRSEN6R3J4NWVBMnRHUXJoeTVCaktUa2o0Q2NXWUV1d2FEZG9BM05aTURoc0Z5NkZkYQpuWDRBU0RjekVrc0I2Ly9zNHNIOFF5NWtDbmw1b2h3TG1RbVRTdEtIT0QxN1hiM2ZzT2dXdVlLK3hVVEVPWkFUClRlRE9pOXF4QVkyMTBJd01vaW1mNFlkM0tWNytZN2lWZ1pTaDVXSkV5MmM2YXlDdjVnbXRaWElaQThvNFA0SjMKSHZCRlluNHZsODRETmljYVgxMEhCdkJ2VjRNUDQwOGhRZTdRWTNXUlN0UXhpa0dBUG9nN085VW5LT3VNNnhEcQptd0lEQVFBQgotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0AQaQ7C90VuB0AAAkAAAAKAAAACwAAAAwAAADAXwAAxB0AAOAdAABOU3QzX18yMTFfX2VuZF9zdGF0ZUljRUUAAAAAmF8AAOgdAABOU3QzX18yNl9fbm9kZUljRUUAAAAAAADgHQAADQAAAA4AAAAPAAAADAAAAAAAAAAwHgAAEAAAABEAAAASAAAAEwAAABQAAADAXwAAPB4AAHxaAABOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTlNfMTNfX2VtcHR5X3N0YXRlSWNFRU5TXzEwc2hhcmVkX3B0cklTMl9FMjdfX3NoYXJlZF9wdHJfZGVmYXVsdF9kZWxldGVJUzJfUzJfRUVOU185YWxsb2NhdG9ySVMyX0VFRUUAAAAAwF8AANAeAAAkHwAATlN0M19fMjEwc2hhcmVkX3B0cklOU18xM19fZW1wdHlfc3RhdGVJY0VFRTI3X19zaGFyZWRfcHRyX2RlZmF1bHRfZGVsZXRlSVMyX1MyX0VFAAAAmF8AACwfAABOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlOU18xM19fZW1wdHlfc3RhdGVJY0VFRUUAAAAAAAAAAHgfAAAVAAAAFgAAABcAAAAMAAAAwF8AAIQfAACgHwAATlN0M19fMjEzX19lbXB0eV9zdGF0ZUljRUUAAMBfAACsHwAAzB8AAE5TdDNfXzIxNl9fb3duc19vbmVfc3RhdGVJY0VFAAAAwF8AANgfAADgHQAATlN0M19fMjE1X19oYXNfb25lX3N0YXRlSWNFRQAAAAAAAAAAoB8AABgAAAAZAAAADwAAAAwAAAAAAAAAzB8AABoAAAAbAAAADwAAAAwAAAAAAAAAQCAAABwAAAAdAAAAHgAAAAwAAADAXwAATCAAAKAfAABOU3QzX18yMjBfX2xfYW5jaG9yX211bHRpbGluZUljRUUAAAAAAAAAiCAAAB8AAAAgAAAAIQAAAAwAAADAXwAAlCAAAKAfAABOU3QzX18yMjBfX3JfYW5jaG9yX211bHRpbGluZUljRUUAAAAAAAAA0CAAACIAAAAjAAAAJAAAAAwAAADAXwAA3CAAAKAfAABOU3QzX18yMTVfX3dvcmRfYm91bmRhcnlJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAACghAAAlAAAAJgAAACcAAAAMAAAAwF8AADQhAACgHwAATlN0M19fMjExX19sb29rYWhlYWRJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAAHwhAAAoAAAAKQAAACoAAAAMAAAAwF8AAIghAACgHwAATlN0M19fMjIzX19tYXRjaF9hbnlfYnV0X25ld2xpbmVJY0VFAAAAAAAAAADIIQAAKwAAACwAAAAtAAAADAAAAMBfAADUIQAAoB8AAE5TdDNfXzIxOF9fbWF0Y2hfY2hhcl9pY2FzZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAAACQiAAAuAAAALwAAADAAAAAMAAAAwF8AADAiAACgHwAATlN0M19fMjIwX19tYXRjaF9jaGFyX2NvbGxhdGVJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAgCIAADEAAAAyAAAAMwAAAAwAAADAXwAAjCIAAKAfAABOU3QzX18yMTJfX21hdGNoX2NoYXJJY0VFAAAAAAAAAMAiAAA0AAAANQAAADYAAAAMAAAAwF8AAMwiAACgHwAATlN0M19fMjE2X19iYWNrX3JlZl9pY2FzZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAYIwAANwAAADgAAAA5AAAADAAAAMBfAAAkIwAAoB8AAE5TdDNfXzIxOF9fYmFja19yZWZfY29sbGF0ZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAAAHQjAAA6AAAAOwAAADwAAAAMAAAAwF8AAIAjAACgHwAATlN0M19fMjEwX19iYWNrX3JlZkljRUUAAAAAALAjAAA9AAAAPgAAAD8AAAAMAAAAwF8AALwjAACgHwAATlN0M19fMjIwX19icmFja2V0X2V4cHJlc3Npb25JY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAD1dOl0uXQAAAAAAAAAUJAAAQAAAAEEAAABCAAAADAAAAMBfAAAgJAAAoB8AAE5TdDNfXzIyOF9fYmVnaW5fbWFya2VkX3N1YmV4cHJlc3Npb25JY0VFAAAAAAAAAGQkAABDAAAARAAAAEUAAAAMAAAAwF8AAHAkAACgHwAATlN0M19fMjI2X19lbmRfbWFya2VkX3N1YmV4cHJlc3Npb25JY0VFAAAAAACwJAAARgAAAEcAAABIAAAASQAAAMBfAAC8JAAA0CQAAE5TdDNfXzI2X19sb29wSWNFRQAAwF8AANwkAACgHwAATlN0M19fMjE3X19vd25zX3R3b19zdGF0ZXNJY0VFAAAAAAAA0CQAAEoAAABLAAAADwAAAAwAAAAAAAAALCUAAEwAAABNAAAATgAAAAwAAADAXwAAOCUAAMwfAABOU3QzX18yMTdfX3JlcGVhdF9vbmVfbG9vcEljRUUAAAAAAABwJQAATwAAAFAAAABRAAAAUgAAAMBfAAB8JQAA0CQAAE5TdDNfXzIxMV9fYWx0ZXJuYXRlSWNFRQAAAAAAAAAAsCUAAFMAAABUAAAAVQAAAAwAAADAXwAAvCUAAMwfAABOU3QzX18yMjFfX2VtcHR5X25vbl9vd25fc3RhdGVJY0VFAAAAAAAA+CUAAFYAAABXAAAAWAAAAAwAAADAXwAABCYAAKAfAABOU3QzX18yMTFfX21hdGNoX2FueUljRUUAAAAAmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxv////////9///////////8AAAAAAAAAgP///38AAAAAnCcAAG8AAAB0AAAAdQAAAAAAAAB4JwAAXwAAAHYAAAB1AAAAAAAAALwnAABmAAAAdwAAAHUAAADAXwAAhCcAAJwnAABONEpzb24xMlJ1bnRpbWVFcnJvckUAAADAXwAAqCcAAKxgAABONEpzb245RXhjZXB0aW9uRQAAAMBfAADIJwAAnCcAAE40SnNvbjEwTG9naWNFcnJvckUAAAAAAH9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f38+f39/PzQ1Njc4OTo7PD1/f39Af39/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBl/f39/f38aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM39/f39/AQAAADwRAAB4AAAAeQAAAHoAAAB7AAAAfAAAAH0AAAB+AEGQ0QALEYwZAAAJAAAARwgAADwRAAABAEHA0QALQRkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEGR0gALIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBBy9IACwEMAEHX0gALFRMAAAAAEwAAAAAJDAAAAAAADAAADABBhdMACwEQAEGR0wALFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBv9MACwESAEHL0wALHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBgtQACw4aAAAAGhoaAAAAAAAACQBBs9QACwEUAEG/1AALFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB7dQACwEWAEH51AALqAwVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUbRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAPQtAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAACPAAAAkAAAAAgAAAAAAAAAMC4AAJEAAACSAAAA+P////j///8wLgAAkwAAAJQAAAAYLQAALC0AAAQAAAAAAAAAeC4AAJUAAACWAAAA/P////z///94LgAAlwAAAJgAAABILQAAXC0AAAAAAADALgAAmQAAAJoAAACFAAAAhgAAAJsAAACcAAAAiQAAAIoAAACLAAAAnQAAAI0AAACeAAAAjwAAAJ8AAAAAAAAAvC0AAKAAAAChAAAAwF8AAMgtAACIMAAATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAACYXwAA/C0AAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAAAAcYAAASC4AAAAAAAABAAAAvC0AAAP0//9OU3QzX18yMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAcYAAAkC4AAAAAAAABAAAAvC0AAAP0//9OU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAADAXwAAzC4AAPQtAABOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAADgAAAAAAAAAcC8AAKIAAACj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",self.location).href},J=function(e){var A;null===(A=t.onAbort)||void 0===A||A.call(t,e),m(e="Aborted("+e+")"),R=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw r(n),n},H=function(e){var A;if(x--,null===(A=t.monitorRunDependencies)||void 0===A||A.call(t,x),0==x&&Y){var n=Y;Y=null,n()}},P=function(e){var A;x++,null===(A=t.monitorRunDependencies)||void 0===A||A.call(t,x)},K=function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)oe(t.postRun.shift());re(ie)},U=function(){},L=function(){je.j()},N=function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)se(t.preRun.shift());re(ae)},F=function(){var e=w.buffer;t.HEAP8=S=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=M=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=G=new Int32Array(e),t.HEAPU32=_=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e),t.HEAP64=b=new BigInt64Array(e),t.HEAPU64=new BigUint64Array(e)},d=function(e){return t.locateFile?t.locateFile(e,C):C+e},t=eA.length>0&&void 0!==eA[0]?eA[0]:{},i=new Op((function(e,A){n=e,r=A})),o="object"==("undefined"==typeof window?"undefined":wc(window)),a="undefined"!=typeof WorkerGlobalScope,!(s="object"==("undefined"==typeof process?"undefined":wc(process))&&"object"==wc(process.versions)&&"string"==typeof process.versions.node&&"renderer"!=process.type)){e.next=35;break}return e.next=32,Promise.resolve().then((function(){return VtA}));case 32:g=e.sent,c=g.createRequire,l=c("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href);case 35:return u=sy({},t),I="./this.program",h=function(e,A){throw A},C="",s?(p=l("fs"),v=l("path"),yT(B="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href).call(B,"data:")||(C=v.dirname(l("url").fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href))+"/"),f=function(e){return e=T(e)?new Xb(e):e,p.readFileSync(e)},E=function(){var e=aE(iE().mark((function e(A){var t,n,r=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!(r.length>1&&void 0!==r[1])||r[1],A=T(A)?new Xb(A):A,n=p.readFileSync(A,t?void 0:"utf8"),e.abrupt("return",n);case 4:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}(),!t.thisProgram&&process.argv.length>1&&(I=process.argv[1].replace(/\\/g,"/")),Xp(Q=process.argv).call(Q,2),h=function(e,A){throw process.exitCode=e,A}):(o||a)&&(a?C=self.location.href:"undefined"!=typeof document&&document.currentScript&&(C=document.currentScript.src),Kle&&(C=Kle),C=yT(C).call(C,"blob:")?"":Xp(C).call(C,0,SL(y=C.replace(/[?#].*/,"")).call(y,"/")+1),a&&(f=function(e){var A=new XMLHttpRequest;return A.open("GET",e,!1),A.responseType="arraybuffer",A.send(null),new Uint8Array(A.response)}),E=function(){var e=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!T(A)){e.next=2;break}return e.abrupt("return",new Op((function(e,t){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?e(n.response):t(n.status)},n.onerror=t,n.send(null)})));case 2:return e.next=4,fetch(A,{credentials:"same-origin"});case 4:if(!(t=e.sent).ok){e.next=7;break}return e.abrupt("return",t.arrayBuffer());case 7:throw new Error(t.status+" : "+t.url);case 8:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}()),t.print||console.log.bind(console),m=t.printErr||console.error.bind(console),sy(t,u),u=null,t.arguments&&t.arguments,t.thisProgram&&(I=t.thisProgram),D=t.wasmBinary,R=!1,T=function(e){return yT(e).call(e,"file://")},x=0,Y=null,ne=NE((function e(A){GE(this,e),LE(this,"name","ExitStatus"),this.message="Program terminated with exit(".concat(A,")"),this.status=A})),re=function(e){for(;e.length>0;)e.shift()(t)},ie=[],oe=function(e){return ie.unshift(e)},ae=[],se=function(e){return ae.unshift(e)},ge=function(e){for(var A=0,t=0;t =55296&&n<=57343?(A+=4,++t):A+=3}return A},ce=t.noExitRuntime||!0,le=function(e){return qe(e)},ue=function(){return We()},Ie=function(e,A,t,n){if(!(n>0))return 0;for(var r=t,i=t+n-1,o=0;o =55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),a<=127){if(t>=i)break;A[t++]=a}else if(a<=2047){if(t+1>=i)break;A[t++]=192|a>>6,A[t++]=128|63&a}else if(a<=65535){if(t+2>=i)break;A[t++]=224|a>>12,A[t++]=128|a>>6&63,A[t++]=128|63&a}else{if(t+3>=i)break;A[t++]=240|a>>18,A[t++]=128|a>>12&63,A[t++]=128|a>>6&63,A[t++]=128|63&a}}return A[t]=0,t-r},he=function(e,A,t){return Ie(e,M,A,t)},Ce="undefined"!=typeof TextDecoder?new TextDecoder:void 0,de=function(e){for(var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=A+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN),n=A;e[n]&&!(n>=t);)++n;if(n-A>16&&e.buffer&&Ce)return Ce.decode(e.subarray(A,n));for(var r="";A >10,56320|1023&s)}}else r+=String.fromCharCode((31&i)<<6|o)}else r+=String.fromCharCode(i)}return r},Ee=function(e,A){return e?de(M,e,A):""},fe=function(e,A,t,n){return J("Assertion failed: ".concat(Ee(e),", at: ")+[A?Ee(A):"unknown filename",t,n?Ee(n):"unknown function"])},Be=function(){function e(A){GE(this,e),this.excPtr=A,this.ptr=A-24}return NE(e,[{key:"set_type",value:function(e){_[this.ptr+4>>2]=e}},{key:"get_type",value:function(){return _[this.ptr+4>>2]}},{key:"set_destructor",value:function(e){_[this.ptr+8>>2]=e}},{key:"get_destructor",value:function(){return _[this.ptr+8>>2]}},{key:"set_caught",value:function(e){e=e?1:0,S[this.ptr+12]=e}},{key:"get_caught",value:function(){return 0!=S[this.ptr+12]}},{key:"set_rethrown",value:function(e){e=e?1:0,S[this.ptr+13]=e}},{key:"get_rethrown",value:function(){return 0!=S[this.ptr+13]}},{key:"init",value:function(e,A){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(A)}},{key:"set_adjusted_ptr",value:function(e){_[this.ptr+16>>2]=e}},{key:"get_adjusted_ptr",value:function(){return _[this.ptr+16>>2]}}]),e}(),Qe=function(e,A,t){throw new Be(e).init(A,t),e},pe=function(){return J("")},ve=function(e,A,t,n){var r=(new Date).getFullYear(),i=new Date(r,0,1),o=new Date(r,6,1),a=i.getTimezoneOffset(),s=o.getTimezoneOffset(),g=Math.max(a,s);_[e>>2]=60*g,G[A>>2]=Number(a!=s);var c=function(e){var A,t,n,r,i=e>=0?"-":"+",o=Math.abs(e),a=Om(A=String(Math.floor(o/60))).call(A,2,"0"),s=Om(t=String(o%60)).call(t,2,"0");return xf(n=xf(r="UTC".concat(i)).call(r,a)).call(n,s)},l=c(a),u=c(s);s=0&&e<=3},Re=function(e){return e<-9007199254740992||e>9007199254740992?NaN:Number(e)},Se=function(e){J("OOM")},Me=function(e){M.length,Se()},Ge={},_e=function(){return I||"./this.program"},be=function e(){if(!e.strings){var A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==("undefined"==typeof navigator?"undefined":wc(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:_e()};for(var t in Ge)void 0===Ge[t]?delete A[t]:A[t]=Ge[t];var n=[];for(var t in A){var r;n.push(xf(r="".concat(t,"=")).call(r,A[t]))}e.strings=n}return e.strings},Te=function(e,A){for(var t=0;t >2]=i,Te(n,i),t+=n.length+1})),0},Ne=function(e,A){var t=be();_[e>>2]=t.length;var n=0;return t.forEach((function(e){return n+=e.length+1})),_[A>>2]=n,0},Le=function(){return ce||!1},Ue=function(e){var A;k=e,Le()||(null===(A=t.onExit)||void 0===A||A.call(t,e),R=!0),h(e,new ne(e))},Ke=function(e,A){k=e,Ue(e)},xe=function(e){if(e instanceof ne||"unwind"==e)return k;h(1,e)},Ye=function(e){return t["_"+e]},Pe=function(e,A){S.set(e,A)},He=function(e){return Ve(e)},Je=function(e){var A=ge(e)+1,t=He(A);return he(e,t,A),t},Oe=function(e,A,t,n,r){var i={string:function(e){var A=0;return null!=e&&0!==e&&(A=Je(e)),A},array:function(e){var A=He(e.length);return Pe(e,A),A}},o=Ye(e),a=[],s=0;if(n)for(var g=0;g 0;)t.preInit.pop()();return $e(),A=i,e.abrupt("return",A);case 120:case"end":return e.stop()}}),e)})))),Hle=Ple,Jle=function(e){return e.EDITION_STANDARD="standard_edition",e.EDITION_PREMIUM="premium_edition",e.EDITION_NONE="none_edition",e}(Jle||{}),Ole=function(e){return e.H265="h265",e.PRELOAD="preload",e.RTM="rtm",e.RTM_ADAPTIVE_BUFFER="rtmAdaptiveBuffer",e.ABR="abr",e.FLV_LOW_LATENCY="flvLowLatency",e}(Ole||{}),zle=function(e){return e[e.LICENSE_STATUS_INVALID=0]="LICENSE_STATUS_INVALID",e[e.LICENSE_STATUS_OK=1]="LICENSE_STATUS_OK",e[e.LICENSE_STATUS_EXPIRED=2]="LICENSE_STATUS_EXPIRED",e[e.LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH=401]="LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH",e[e.LICENSE_STATUS_ERROR_PARAM_MODULE_NAME=403]="LICENSE_STATUS_ERROR_PARAM_MODULE_NAME",e}(zle||{}),jle="__veplayer_license_info__",Xle=function(){function e(){GE(this,e),LE(this,"fetchOriginLicenseFlag",!1),LE(this,"fetchPromise",void 0),LE(this,"initModulePromise",void 0),LE(this,"_Module",void 0),LE(this,"logoPngBase64","data:image/png;base64,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"),LE(this,"_needExemptions",!1),LE(this,"_licenseSupportModuleList",[]),this._init()}var A,t,n,r,i,o,a,s,g,c;return NE(e,[{key:"licenseSupportModuleList",get:function(){return this._licenseSupportModuleList}},{key:"_init",value:(c=aE(iE().mark((function e(){var A,t,n,r,i,o=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=function(){},console.log("license","_init"),this.initModulePromise=new Op((function(e){A=e})),e.prev=3,e.next=6,Hle();case 6:this._Module=e.sent,i=null===(t=(null===(n=window)||void 0===n?void 0:n.top)||window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.hostname,null!==(r=this._Module)&&void 0!==r&&r.calledRun?(this.initModule(i),console.log("license","initModule"),A()):this._Module.onRuntimeInitialized=function(){o.initModule(i),A()},e.next=16;break;case 11:e.prev=11,e.t0=e.catch(3),console.error("license module init failed"),A(),this._needExemptions=!0;case 16:case"end":return e.stop()}}),e,this,[[3,11]])}))),function(){return c.apply(this,arguments)})},{key:"initModule",value:(g=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null===(t=this._Module)||void 0===t||t.ccall("init","null",["string"],[A]),this.checkLocalLicense();case 2:case"end":return e.stop()}}),e,this)}))),function(e){return g.apply(this,arguments)})},{key:"isWasmSupported",value:function(){return"object"===("undefined"==typeof WebAssembly?"undefined":wc(WebAssembly))&&"function"==typeof WebAssembly.instantiate}},{key:"setLicenseConfig",value:(s=aE(iE().mark((function e(A){var t,n,r,i=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n="string"==typeof(null==A?void 0:A.license)?null==A?void 0:A.license:null==A||null===(t=A.license)||void 0===t?void 0:t.mainUrl)&&(this.fetchOriginLicenseFlag=!0,this.fetchOrginUrl(n).then((function(e){i.fetchOriginLicenseFlag=!1})).catch((function(e){i.fetchOriginLicenseFlag=!1,console.error("Error fetching data:",e)}))),null==(r=null==A?void 0:A.license)||!r.content||null==r||!r.sign){e.next=7;break}return e.next=6,this.initModulePromise;case 6:this.nativeAddLicense(null==r?void 0:r.content,null==r?void 0:r.sign);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"checkLicense",value:(a=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.checkLicenseEdition();case 2:return A=e.sent,e.next=5,this.checkLicenseStatus();case 5:return t=e.sent,e.abrupt("return",{licenseCheckResult:A,licenseStatusResult:t});case 7:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"checkLicenseEdition",value:(o=aE(iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve("premium_edition"));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeGetModuleEdition(),e.abrupt("return",Op.resolve(A));case 9:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"checkLicenseStatus",value:(i=aE(iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve(1));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeCheckSDKAuth(),e.abrupt("return",Op.resolve(A));case 9:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"checkModuleList",value:(r=aE(iE().mark((function e(){var A,t,n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve(IU(Ole)));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeGetModuleEdition(),t=this.nativeCheckSDKAuth(),n="premium_edition"===A&&1===t?IU(Ole):[],this._licenseSupportModuleList=n,e.abrupt("return",Op.resolve(n));case 12:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"checkLicenseModuleAuth",value:(n=aE(iE().mark((function e(A,t){var n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.checkModuleList();case 2:return n=e.sent,e.abrupt("return",Op.resolve(null==n?void 0:PT(n).call(n,t)));case 4:case"end":return e.stop()}}),e,this)}))),function(e,A){return n.apply(this,arguments)})},{key:"addLogoIcon",value:function(e){var A=document.createElement("img");A.setAttribute("src",this.logoPngBase64),A.setAttribute("alt","ERROR_LICENSE_HAS_EXPIRED"),A.className="veplayer-logo",A.setAttribute("style","display: block !important; opacity: 1 !important"),e.appendChild(A)}},{key:"initObserver",value:function(e){var A=this,t=new MutationObserver((function(t){t.forEach((function(t){if("childList"===t.type&&t.removedNodes.length)t.removedNodes.forEach((function(t){(null==t?void 0:t.currentSrc)===A.logoPngBase64&&A.addLogoIcon(e)}));else if("attributes"===t.type){var n=t.target;(null==n?void 0:n.currentSrc)===A.logoPngBase64&&("src"===t.attributeName&&n.src!==A.logoPngBase64?n.src=A.logoPngBase64:"style"===t.attributeName&&("1"===n.style.opacity&&"block"==n.style.display||n.setAttribute("style","display: block !important; opacity: 1 !important")))}}))}));null==t||t.observe(e,{childList:!0,attributes:!0,attributeFilter:["src","style"],attributeOldValue:!0,subtree:!0})}},{key:"renderLogo",value:function(e){this.addLogoIcon(e),this.initObserver(e)}},{key:"fetchOrginUrl",value:(t=aE(iE().mark((function e(A){var t=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.fetchPromise){e.next=2;break}return e.abrupt("return",this.fetchPromise);case 2:return this.fetchPromise=fetch(A).then((function(e){if(!e.ok)throw new Error("Network response was not ok");return e.text()})).then((function(e){try{var A=JSON.parse(e),n={sign:null==A?void 0:A.Signature,content:null==A?void 0:A.Content,mainUrl:null==A?void 0:A.MainURL};return t.nativeAddLicense(null==n?void 0:n.content,null==n?void 0:n.sign),localStorage.setItem(jle,$b(n)),Op.resolve(A)}catch(WtA){throw new Error("Failed to parse JSON")}})).catch((function(e){return console.error("fetchLicenseFailed",e),Op.reject(e)})),e.abrupt("return",this.fetchPromise);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"checkLocalLicense",value:function(){var e=localStorage.getItem(jle);if(e){var A=JSON.parse(e);this.nativeAddLicense(null==A?void 0:A.content,null==A?void 0:A.sign)}}},{key:"nativeAddLicense",value:function(e,A){try{var t;return null===(t=this._Module)||void 0===t?void 0:t.ccall("addLicense","string",["string","string"],[e,A])}catch(WtA){console.error("nativeAddLicense failed"),this._needExemptions=!0}}},{key:"nativeCheckSDKAuth",value:function(){var e;return null===(e=this._Module)||void 0===e?void 0:e.ccall("checkSDKAuth","number",["string"],["web_live_pull"])}},{key:"nativeGetModuleEdition",value:function(){var e;return null===(e=this._Module)||void 0===e?void 0:e.ccall("getModuleEdition","string",["string"],["web_live_pull"])}},{key:"checkHttpLicenseStatus",value:(A=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.nativeGetModuleEdition(),t=this.nativeCheckSDKAuth(),"premium_edition"===A&&1===t){e.next=5;break}return e.next=5,this.fetchPromise;case 5:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})}]),e}(),qle=new Xle,Vle=Wk,Wle=function(e){return e[e.INVALID_PARAMETER=210]="INVALID_PARAMETER",e[e.EMPTY_RTM_FALLBACK_PARAMETER=211]="EMPTY_RTM_FALLBACK_PARAMETER",e[e.INVALID_LOGGER=220]="INVALID_LOGGER",e[e.BASE_LICENSE_RTM_NOT_SUPPORT=12101]="BASE_LICENSE_RTM_NOT_SUPPORT",e[e.LICENSE_EXPIRED_RTM=12201]="LICENSE_EXPIRED_RTM",e}(Wle||{}),Zle=Ff(Ff({},Wle),Xk),$le=Ff(Ff({},qk),{},(LE(xle={},210,{messageTextKey:"INVALID_PARAMETER",level:jk.Fatal}),LE(xle,211,{messageTextKey:"EMPTY_RTM_FALLBACK_PARAMETER",level:jk.Warn}),LE(xle,220,{messageTextKey:"INVALID_LOGGER",level:jk.Warn}),LE(xle,12101,{messageTextKey:"BASE_LICENSE_RTM_NOT_SUPPORT",level:jk.Fatal}),LE(xle,12201,{messageTextKey:"LICENSE_EXPIRED_RTM",level:jk.Fatal}),xle));function eue(e,A){return new Vle(Ff({errorCode:e},$le[e]),A)}var Aue=NaN,tue="[object Symbol]",nue=/^\s+|\s+$/g,rue=/^[-+]0x[0-9a-f]+$/i,iue=/^0b[01]+$/i,oue=/^0o[0-7]+$/i,aue=Uv,sue="object"==wc(r)&&r&&r.Object===Object&&r,gue="object"==("undefined"==typeof self?"undefined":wc(self))&&self&&self.Object===Object&&self,cue=sue||gue||Function("return this")(),lue=Object.prototype.toString,uue=Math.max,Iue=Math.min,hue=function(){return cue.Date.now()};function Cue(e){var A=wc(e);return!!e&&("object"==A||"function"==A)}function due(e){return"symbol"==wc(e)||function(e){return!!e&&"object"==wc(e)}(e)&&lue.call(e)==tue}function Eue(e){if("number"==typeof e)return e;if(due(e))return Aue;if(Cue(e)){var A="function"==typeof e.valueOf?e.valueOf():e;e=Cue(A)?A+"":A}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(nue,"");var t=iue.test(e);return t||oue.test(e)?aue(Xp(e).call(e,2),t?2:8):rue.test(e)?Aue:+e}var fue=function(e,A,t){var n,r,i,o,a,s,g=0,c=!1,l=!1,u=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function I(A){var t=n,i=r;return n=r=void 0,g=A,o=e.apply(i,t)}function h(e){var t=e-s;return void 0===s||t>=A||t<0||l&&e-g>=i}function C(){var e=hue();if(h(e))return d(e);a=setTimeout(C,function(e){var t=A-(e-s);return l?Iue(t,i-(e-g)):t}(e))}function d(e){return a=void 0,u&&n?I(e):(n=r=void 0,o)}function E(){var e=hue(),t=h(e);if(n=arguments,r=this,s=e,t){if(void 0===a)return function(e){return g=e,a=setTimeout(C,A),c?I(e):o}(s);if(l)return a=setTimeout(C,A),I(s)}return void 0===a&&(a=setTimeout(C,A)),o}return A=Eue(A)||0,Cue(t)&&(c=!!t.leading,i=(l="maxWait"in t)?uue(Eue(t.maxWait)||0,A):i,u="trailing"in t?!!t.trailing:u),E.cancel=function(){void 0!==a&&clearTimeout(a),g=0,n=s=r=a=void 0},E.flush=function(){return void 0===a?o:d(hue())},E},Bue=i(fue),Que=pu,pue=qt;Gt({target:"Object",stat:!0},{fromEntries:function(e){var A={};return Que(e,(function(e,t){pue(A,e,t)}),{AS_ENTRIES:!0}),A}});var vue=i(re.Object.fromEntries),yue=a.isFinite;Gt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(e){return"number"==typeof e&&yue(e)}});var mue=i(re.Number.isFinite),Due=Gt,wue=wT,Rue=Math.abs;Due({target:"Number",stat:!0},{isSafeInteger:function(e){return wue(e)&&Rue(e)<=9007199254740991}});var kue=i(re.Number.isSafeInteger);Gt({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991});var Sue=i(9007199254740991);Gt({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Mue=i(Math.pow(2,-52));NB("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),$B);var Gue=re.Set,_ue=Me,bue=function(e){if("object"==typeof e&&"size"in e&&"has"in e&&"add"in e&&"delete"in e&&"keys"in e)return e;throw TypeError(_ue(e)+" is not a set")},Tue=IQ,Fue=ge("Set"),Nue=Fue.prototype,Lue={Set:Fue,add:Tue("add",1),has:Tue("has",1),remove:Tue("delete",1),proto:Nue},Uue=mQ,Kue=function(e,A,t){return t?Uue(e.keys(),A):e.forEach(A)},xue=Kue,Yue=Lue.Set,Pue=Lue.add,Hue=function(e){var A=new Yue;return xue(e,(function(e){Pue(A,e)})),A},Jue=function(e){return e.size},Oue=Te,zue=it,jue=F,Xue=Ut,que=TypeError,Vue=Math.max,Wue=function(e,A,t,n){this.set=e,this.size=A,this.has=t,this.keys=n};Wue.prototype={getIterator:function(){return zue(jue(this.keys,this.set))},includes:function(e){return jue(this.has,this.set,e)}};var Zue=function(e){zue(e);var A=+e.size;if(A!=A)throw que("Invalid size");return new Wue(e,Vue(Xue(A),0),Oue(e.has),Oue(e.keys))},$ue=bue,eIe=Hue,AIe=Jue,tIe=Zue,nIe=Kue,rIe=mQ,iIe=Lue.has,oIe=Lue.remove,aIe=function(e){var A=$ue(this),t=tIe(e),n=eIe(A);return AIe(A)<=t.size?nIe(A,(function(e){t.includes(e)&&oIe(n,e)})):rIe(t.getIterator(),(function(e){iIe(A,e)&&oIe(n,e)})),n},sIe=function(){return!1},gIe=aIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{difference:gIe});var cIe=bue,lIe=Jue,uIe=Zue,IIe=Kue,hIe=mQ,CIe=Lue.Set,dIe=Lue.add,EIe=Lue.has,fIe=function(e){var A=cIe(this),t=uIe(e),n=new CIe;return lIe(A)>t.size?hIe(t.getIterator(),(function(e){EIe(A,e)&&dIe(n,e)})):IIe(A,(function(e){t.includes(e)&&dIe(n,e)})),n},BIe=fIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{intersection:BIe});var QIe=bue,pIe=Lue.has,vIe=Jue,yIe=Zue,mIe=Kue,DIe=mQ,wIe=au,RIe=function(e){var A=QIe(this),t=yIe(e);if(vIe(A)<=t.size)return!1!==mIe(A,(function(e){if(t.includes(e))return!1}),!0);var n=t.getIterator();return!1!==DIe(n,(function(e){if(pIe(A,e))return wIe(n,"normal",!1)}))},kIe=RIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{isDisjointFrom:kIe});var SIe=bue,MIe=Jue,GIe=Kue,_Ie=Zue,bIe=function(e){var A=SIe(this),t=_Ie(e);return!(MIe(A)>t.size)&&!1!==GIe(A,(function(e){if(!t.includes(e))return!1}),!0)},TIe=bIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{isSubsetOf:TIe});var FIe=bue,NIe=Lue.has,LIe=Jue,UIe=Zue,KIe=mQ,xIe=au,YIe=function(e){var A=FIe(this),t=UIe(e);if(LIe(A) 1?arguments[1]:void 0);return!1!==uhe(A,(function(e){if(!t(e,e,A))return!1}),!0)}});var Ihe=rn,hhe=AA,Che=X,dhe=hs,Ehe=CA("iterator"),fhe=Object,Bhe=M,Qhe=function(e){if(Che(e))return!1;var A=fhe(e);return void 0!==A[Ehe]||"@@iterator"in A||hhe(dhe,Ihe(A))},phe=ne,vhe=ge("Set"),yhe=function(e){return function(e){return phe(e)&&"number"==typeof e.size&&Bhe(e.has)&&Bhe(e.keys)}(e)?e:Qhe(e)?new vhe(e):e},mhe=F,Dhe=yhe,whe=aIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return mhe(whe,this,Dhe(e))}});var Rhe=$A,khe=bue,She=Kue,Mhe=Lue.Set,Ghe=Lue.add;Gt({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var A=khe(this),t=Rhe(e,arguments.length>1?arguments[1]:void 0),n=new Mhe;return She(A,(function(e){t(e,e,A)&&Ghe(n,e)})),n}});var _he=$A,bhe=bue,The=Kue;Gt({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var A=bhe(this),t=_he(e,arguments.length>1?arguments[1]:void 0),n=The(A,(function(e){if(t(e,e,A))return{value:e}}),!0);return n&&n.value}});var Fhe=F,Nhe=yhe,Lhe=fIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return Fhe(Lhe,this,Nhe(e))}});var Uhe=F,Khe=yhe,xhe=RIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return Uhe(xhe,this,Khe(e))}});var Yhe=F,Phe=yhe,Hhe=bIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return Yhe(Hhe,this,Phe(e))}});var Jhe=F,Ohe=yhe,zhe=YIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return Jhe(zhe,this,Ohe(e))}});var jhe=Gt,Xhe=B,qhe=bue,Vhe=Kue,Whe=Wn,Zhe=Xhe([].join),$he=Xhe([].push);jhe({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var A=qhe(this),t=void 0===e?",":Whe(e),n=[];return Vhe(A,(function(e){$he(n,e)})),Zhe(n,t)}});var eCe=$A,ACe=bue,tCe=Kue,nCe=Lue.Set,rCe=Lue.add;Gt({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var A=ACe(this),t=eCe(e,arguments.length>1?arguments[1]:void 0),n=new nCe;return tCe(A,(function(e){rCe(n,t(e,e,A))})),n}});var iCe=Te,oCe=bue,aCe=Kue,sCe=TypeError;Gt({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var A=oCe(this),t=arguments.length<2,n=t?void 0:arguments[1];if(iCe(e),aCe(A,(function(r){t?(t=!1,n=r):n=e(n,r,r,A)})),t)throw sCe("Reduce of empty set with no initial value");return n}});var gCe=$A,cCe=bue,lCe=Kue;Gt({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var A=cCe(this),t=gCe(e,arguments.length>1?arguments[1]:void 0);return!0===lCe(A,(function(e){if(t(e,e,A))return!0}),!0)}});var uCe=F,ICe=yhe,hCe=VIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return uCe(hCe,this,ICe(e))}});var CCe=F,dCe=yhe,ECe=nhe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return CCe(ECe,this,dCe(e))}});var fCe,BCe=i(ihe),QCe=mue||function(e){return"number"==typeof e&&isFinite(e)},pCe=kue||function(e){return"number"==typeof e&&Math.abs(e)<=vCe},vCe=Sue||9007199254740991,yCe=function(e){return e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e}({}),mCe=function(e){return e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",e.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",e.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.ASSET_LIST_LOAD_ERROR="assetListLoadError",e.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",e.ASSET_LIST_PARSING_ERROR="assetListParsingError",e.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.ATTACH_MEDIA_ERROR="attachMediaError",e.UNKNOWN="unknown",e}({}),DCe=function(e){return e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.MEDIA_ENDED="hlsMediaEnded",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFERED_TO_END="hlsBufferedToEnd",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e.ASSET_LIST_LOADING="hlsAssetListLoading",e.ASSET_LIST_LOADED="hlsAssetListLoaded",e.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",e.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",e.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",e.INTERSTITIAL_STARTED="hlsInterstitialStarted",e.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",e.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",e.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",e.INTERSTITIAL_ENDED="hlsInterstitialEnded",e.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",e.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",e.EVENT_CUE_ENTER="hlsEventCueEnter",e}({}),wCe="audioTrack",RCe="subtitleTrack",kCe="main",SCe="audio",MCe="subtitle",GCe=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;GE(this,e),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=A,this.alpha_=A?Math.exp(Math.log(.5)/A):0,this.estimate_=t,this.totalWeight_=n}return NE(e,[{key:"sample",value:function(e,A){var t=Math.pow(this.alpha_,e);this.estimate_=A*(1-t)+t*this.estimate_,this.totalWeight_+=e}},{key:"getTotalWeight",value:function(){return this.totalWeight_}},{key:"getEstimate",value:function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}}]),e}(),_Ce=function(){function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100;GE(this,e),this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=n,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new GCe(A),this.fast_=new GCe(t),this.defaultTTFB_=r,this.ttfb_=new GCe(A)}return NE(e,[{key:"update",value:function(e,A){var t=this.slow_,n=this.fast_,r=this.ttfb_;t.halfLife!==e&&(this.slow_=new GCe(e,t.getEstimate(),t.getTotalWeight())),n.halfLife!==A&&(this.fast_=new GCe(A,n.getEstimate(),n.getTotalWeight())),r.halfLife!==e&&(this.ttfb_=new GCe(e,r.getEstimate(),r.getTotalWeight()))}},{key:"sample",value:function(e,A){var t=(e=Math.max(e,this.minDelayMs_))/1e3,n=8*A/t;this.fast_.sample(t,n),this.slow_.sample(t,n)}},{key:"sampleTTFB",value:function(e){var A=e/1e3,t=Math.sqrt(2)*Math.exp(-Math.pow(A,2)/2);this.ttfb_.sample(t,Math.max(e,5))}},{key:"canEstimate",value:function(){return this.fast_.getTotalWeight()>=this.minWeight_}},{key:"getEstimate",value:function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}},{key:"getEstimateTTFB",value:function(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}},{key:"defaultEstimate",get:function(){return this.defaultEstimate_}},{key:"destroy",value:function(){}}]),e}();function bCe(e,A,t){return(A=function(e){var A=function(e,A){if("object"!=wc(e)||!e)return e;var t=e[rm];if(void 0!==t){var n=t.call(e,A||"default");if("object"!=wc(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(e)}(e,"string");return"symbol"==wc(A)?A:A+""}(A))in e?Iy(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function TCe(){return TCe=sy?sy.bind():function(e){for(var A=1;A 0&&void 0!==arguments[0])||arguments[0]||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function YCe(e,A){var t=jp(e),n=jp(A),r=t.length,i=n.length;return!r||!i||r===i&&!t.some((function(e){return-1===zp(n).call(n,e)}))}var PCe={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function HCe(e,A){var t,n=xCe(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]);return null!=(t=null==n?void 0:n.isTypeSupported(JCe(e,A)))&&t}function JCe(e,A){var t;return xf(t="".concat(A,"/mp4;codecs=")).call(t,e)}function OCe(e){var A;return wF(A=e.split(",")).call(A,(function(e,A){var t=PCe.video[A];return t?(2*t+e)/(e?3:2):(PCe.audio[A]+e)/(e?2:1)}),0)}var zCe={};var jCe=/flac|opus|mp4a\.40\.34/i;function XCe(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.replace(jCe,(function(e){return function(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(zCe[e])return zCe[e];for(var t={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[e],n=0;n 4||-1!==zp(t=["ac-3","ec-3","alac","fLaC","Opus"]).call(t,e)))return e;if(A){var n=A.split(",");if(n.length>1){if(e)for(var r=n.length;r--;)if(n[r].substring(0,4)===e.substring(0,4))return n[r];return n[0]}}return A||e}function VCe(e){if(yT(e).call(e,"av01.")){for(var A=e.split("."),t=["0","111","01","01","01","0"],n=A.length;n>4&&n<10;n++)A[n]=t[n-4];return A.join(".")}return e}function WCe(e){var A=xCe(e)||{isTypeSupported:function(){return!1}};return{mpeg:A.isTypeSupported("audio/mpeg"),mp3:A.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:A.isTypeSupported('audio/mp4; codecs="ac-3"')}}var ZCe={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},$Ce={};function ede(e,A,t){var n=e.videoCodec,r=e.audioCodec;if(!n&&!r||!t)return Op.resolve(ZCe);var i=[];if(n){var o,a={width:e.width,height:e.height,bitrate:Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)),framerate:e.frameRate||30},s=e.videoRange;"SDR"!==s&&(a.transferFunction=s.toLowerCase()),i.push.apply(i,Jp(o=n.split(",")).call(o,(function(e){return{type:"media-source",video:NCe(NCe({},a),{},{contentType:JCe(VCe(e),"video")})}})))}return r&&e.audioGroups&&e.audioGroups.forEach((function(e){var t;e&&(null==(t=A.groups[e])||t.tracks.forEach((function(A){if(A.groupId===e){var t,n=A.channels||"",o=tD(n);if(QCe(o)&&o>2)i.push.apply(i,Jp(t=r.split(",")).call(t,(function(e){return{type:"media-source",audio:{contentType:JCe(e,"audio"),channels:""+o}}})))}})))})),Op.all(Jp(i).call(i,(function(e){var A=function(e){var A=e.audio,t=e.video,n=t||A;if(n){var r,i,o,a,s,g,c,l=n.contentType.split('"')[1];if(t)return xf(r=xf(i=xf(o=xf(a=xf(s="r".concat(t.height,"x")).call(s,t.width,"f")).call(a,Math.ceil(t.framerate))).call(o,t.transferFunction||"sd","_")).call(i,l,"_")).call(r,Math.ceil(t.bitrate/1e5));if(A)return xf(g=xf(c="c".concat(A.channels)).call(c,A.spatialRendering?"s":"n","_")).call(g,l)}return""}(e);return $Ce[A]||($Ce[A]=t.decodingInfo(e))}))).then((function(e){return{supported:!e.some((function(e){return!e.supported})),configurations:i,decodingInfoResults:e}})).catch((function(e){return{supported:!1,configurations:i,decodingInfoResults:[],error:e}}))}var Ade=["NONE","TYPE-0","TYPE-1",null],tde=["SDR","PQ","HLG"],nde="",rde="YES",ide="v2";function ode(e){var A=e.canSkipUntil,t=e.canSkipDateRanges,n=e.age;return A&&n1&&void 0!==arguments[1]?arguments[1]:"--";if(e.length===A.length)return e===A;return yT(e).call(e,A)||yT(A).call(A,e)}(i,A.lang))&&(void 0===i||A.assocLang===o)&&(void 0===s||A.default===s)&&(void 0===g||A.forced===g)&&(void 0===a||function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e.split(","),n=A.split(",");return t.length===n.length&&!t.some((function(e){return-1===zp(n).call(n,e)}))}(a,A.characteristics))&&(void 0===t||t(e,A))}function Cde(e,A){var t=e.audioCodec,n=e.channels;return!(void 0!==t&&(A.audioCodec||"").substring(0,4)!==t.substring(0,4)||void 0!==n&&n!==(A.channels||"2"))}function dde(e,A,t){for(var n=A;n>-1;n--)if(t(e[n]))return n;for(var r=A+1;r -1,M=n.getBwEstimate(),G=d.levels,_=G[h.level],b=Math.max(Q.loaded,Math.round(p*(h.bitrate||_.averageBitrate)/8)),T=S?v-k:v;T<1&&S&&(T=Math.min(v,8*Q.loaded/M));var F=S?1e3*Q.loaded/T:0,N=D/1e3,L=F?(b-Q.loaded)/F:8*b/M+N;if(!(L<=R)){var U,K=F?8*F:M,x=!0===(null==(u=n.hls.latestLevelDetails)?void 0:u.live),Y=n.hls.config.abrBandWidthUpFactor,P=Number.POSITIVE_INFINITY;for(U=h.level-1;U>y;U--){var H=G[U].maxBitrate,J=!G[U].details||x;if((P=n.getTimeToLoadFrag(N,K,p*H,J)) =L||P>10*p)){S?n.bwEstimator.sample(v-Math.min(D,k),Q.loaded):n.bwEstimator.sampleTTFB(v);var O=G[U].maxBitrate;n.getBwEstimate()*Y>O&&n.resetEstimator(O);var z=n.findBestLevel(O,y,U,0,R,1,1);z>-1&&(U=z),n.warn(xf(e=xf(A=xf(t=xf(r=xf(i=xf(o=xf(a=xf(s=xf(g=xf(c=xf(l="Fragment ".concat(h.sn)).call(l,C?" part "+C.index:""," of level ")).call(c,h.level," is loading too slowly;\n Fragment duration: ")).call(g,h.duration.toFixed(3),"\n Time to underbuffer: ")).call(s,R.toFixed(3)," s\n Estimated load time for current fragment: ")).call(a,L.toFixed(3)," s\n Estimated load time for down switch fragment: ")).call(o,P.toFixed(3)," s\n TTFB estimate: ")).call(i,0|k," ms\n Current BW estimate: ")).call(r,QCe(M)?0|M:"Unknown"," bps\n New BW estimate: ")).call(t,0|n.getBwEstimate()," bps\n Switching to level ")).call(A,U," @ ")).call(e,0|O," bps")),d.nextLoadLevel=d.nextAutoLevel=U,n.clearTimer(),n.timer=self.setInterval((function(){if(n.clearTimer(),n.fragCurrent===h&&n.hls.loadLevel===U&&U>0){var e,A,t=n.getStarvationDelay();if(n.warn(xf(e=xf(A="Aborting inflight request ".concat(U>0?"and switching down":"","\n Fragment duration: ")).call(A,h.duration.toFixed(3)," s\n Time to underbuffer: ")).call(e,t.toFixed(3)," s")),h.abortRequests(),n.fragCurrent=n.partCurrent=null,U>y){var r=n.findBestLevel(n.hls.levels[y].bitrate,y,U,0,t,1,1);-1===r&&(r=y),n.hls.nextLoadLevel=n.hls.nextAutoLevel=r,n.resetEstimator(n.hls.levels[r].bitrate)}}}),1e3*P),d.trigger(DCe.FRAG_LOAD_EMERGENCY_ABORTED,{frag:h,part:C,stats:Q})}}}}}}},n.hls=e,n.bwEstimator=n.initEstimator(),n.registerListeners(),n}return NE(t,[{key:"resetEstimator",value:function(e){e&&(this.log("setting initial bwe to ".concat(e)),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}},{key:"initEstimator",value:function(){var e=this.hls.config;return new _Ce(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}},{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.FRAG_LOADING,this.onFragLoading,this),e.on(DCe.FRAG_LOADED,this.onFragLoaded,this),e.on(DCe.FRAG_BUFFERED,this.onFragBuffered,this),e.on(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.on(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(DCe.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.FRAG_LOADING,this.onFragLoading,this),e.off(DCe.FRAG_LOADED,this.onFragLoaded,this),e.off(DCe.FRAG_BUFFERED,this.onFragBuffered,this),e.off(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.off(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(DCe.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(DCe.ERROR,this.onError,this))}},{key:"destroy",value:function(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}},{key:"onManifestLoading",value:function(e,A){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}},{key:"onLevelsUpdated",value:function(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}},{key:"onMaxAutoLevelUpdated",value:function(){this.firstSelection=-1,this.nextAutoLevelKey=""}},{key:"onFragLoading",value:function(e,A){var t=A.frag;if(!this.ignoreFragment(t)){var n;if(!t.bitrateTest)this.fragCurrent=t,this.partCurrent=null!=(n=A.part)?n:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}},{key:"onLevelSwitching",value:function(e,A){this.clearTimer()}},{key:"onError",value:function(e,A){if(!A.fatal)switch(A.details){case mCe.BUFFER_ADD_CODEC_ERROR:case mCe.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case mCe.FRAG_LOAD_TIMEOUT:var t=A.frag,n=this.fragCurrent,r=this.partCurrent;if(t&&n&&t.sn===n.sn&&t.level===n.level){var i=performance.now(),o=r?r.stats:t.stats,a=i-o.loading.start,s=o.loading.first?o.loading.first-o.loading.start:-1;if(o.loaded&&s>-1){var g=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(a-Math.min(g,s),o.loaded)}else this.bwEstimator.sampleTTFB(a)}}}},{key:"getTimeToLoadFrag",value:function(e,A,t,n){return e+t/A+(n?this.lastLevelLoadSec:0)}},{key:"onLevelLoaded",value:function(e,A){var t=this.hls.config,n=A.stats.loading,r=n.end-n.start;QCe(r)&&(this.lastLevelLoadSec=r/1e3),A.details.live?this.bwEstimator.update(t.abrEwmaSlowLive,t.abrEwmaFastLive):this.bwEstimator.update(t.abrEwmaSlowVoD,t.abrEwmaFastVoD)}},{key:"onFragLoaded",value:function(e,A){var t=A.frag,n=A.part,r=n?n.stats:t.stats;if(t.type===kCe&&this.bwEstimator.sampleTTFB(r.loading.first-r.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),t.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){var i=n?n.duration:t.duration,o=this.hls.levels[t.level],a=(o.loaded?o.loaded.bytes:0)+r.loaded,s=(o.loaded?o.loaded.duration:0)+i;o.loaded={bytes:a,duration:s},o.realBitrate=Math.round(8*a/s)}if(t.bitrateTest){var g={stats:r,frag:t,part:n,id:t.type};this.onFragBuffered(DCe.FRAG_BUFFERED,g),t.bitrateTest=!1}else this.lastLoadedFragLevel=t.level}}},{key:"onFragBuffered",value:function(e,A){var t=A.frag,n=A.part,r=null!=n&&n.stats.loaded?n.stats:t.stats;if(!r.aborted&&!this.ignoreFragment(t)){var i=r.parsing.end-r.loading.start-Math.min(r.loading.first-r.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(i,r.loaded),r.bwEstimate=this.getBwEstimate(),t.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0}}},{key:"ignoreFragment",value:function(e){return e.type!==kCe||"initSegment"===e.sn}},{key:"clearTimer",value:function(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}},{key:"firstAutoLevel",get:function(){var e,A=this.hls,t=A.maxAutoLevel,n=A.minAutoLevel,r=this.getBwEstimate(),i=this.hls.config.maxStarvationDelay,o=this.findBestLevel(r,n,t,0,i,1,1);if(o>-1)return o;var a=this.hls.firstLevel,s=Math.min(Math.max(a,n),t);return this.warn(xf(e="Could not find best starting auto level. Defaulting to first in playlist ".concat(a," clamped to ")).call(e,s)),s}},{key:"forcedAutoLevel",get:function(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}},{key:"nextAutoLevel",get:function(){var e=this.forcedAutoLevel,A=this.bwEstimator.canEstimate(),t=this.lastLoadedFragLevel>-1;if(!(-1===e||A&&t&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;var n=A&&t?this.getNextABRAutoLevel():this.firstAutoLevel;if(-1!==e){var r=this.hls.levels;if(r.length>Math.max(e,n)&&r[e].loadError<=r[n].loadError)return e}return this._nextAutoLevel=n,this.nextAutoLevelKey=this.getAutoLevelKey(),n},set:function(e){var A=this.hls,t=A.maxAutoLevel,n=A.minAutoLevel,r=Math.min(Math.max(e,n),t);this._nextAutoLevel!==r&&(this.nextAutoLevelKey="",this._nextAutoLevel=r)}},{key:"getAutoLevelKey",value:function(){var e;return xf(e="".concat(this.getBwEstimate(),"_")).call(e,this.getStarvationDelay().toFixed(2))}},{key:"getNextABRAutoLevel",value:function(){var e,A=this.fragCurrent,t=this.partCurrent,n=this.hls;if(n.levels.length<=1)return n.loadLevel;var r=n.maxAutoLevel,i=n.config,o=n.minAutoLevel,a=t?t.duration:A?A.duration:0,s=this.getBwEstimate(),g=this.getStarvationDelay(),c=i.abrBandWidthFactor,l=i.abrBandWidthUpFactor;if(g){var u=this.findBestLevel(s,o,r,g,0,c,l);if(u>=0)return u}var I=a?Math.min(a,i.maxStarvationDelay):i.maxStarvationDelay;if(!g){var h,C=this.bitrateTestDelay;if(C)I=(a?Math.min(a,i.maxLoadingDelay):i.maxLoadingDelay)-C,this.info(xf(h="bitrate test took ".concat(Math.round(1e3*C),"ms, set first fragment max fetchDuration to ")).call(h,Math.round(1e3*I)," ms")),c=l=1}var d=this.findBestLevel(s,o,r,g,I,c,l);if(this.info(xf(e="".concat(g?"rebuffering expected":"buffer is empty",", optimal quality level ")).call(e,d)),d>-1)return d;var E=n.levels[o],f=n.levels[n.loadLevel];return(null==E?void 0:E.bitrate)<(null==f?void 0:f.bitrate)?o:n.loadLevel}},{key:"getStarvationDelay",value:function(){var e=this.hls,A=e.media;if(!A)return 1/0;var t=A&&0!==A.playbackRate?Math.abs(A.playbackRate):1,n=e.mainForwardBufferInfo;return(n?n.len:0)/t}},{key:"getBwEstimate",value:function(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}},{key:"findBestLevel",value:function(e,A,t,n,r,i,o){var a,s=this,g=n+r,c=this.lastLoadedFragLevel,l=-1===c?this.hls.firstLevel:c,u=this.fragCurrent,I=this.partCurrent,h=this.hls,C=h.levels,d=h.allAudioTracks,E=h.loadLevel,f=h.config;if(1===C.length)return 0;var B,Q=C[l],p=!(null==(a=this.hls.latestLevelDetails)||!a.live),v=-1===E||-1===c,y="SDR",m=(null==Q?void 0:Q.frameRate)||0,D=f.audioPreference,w=f.videoPreference,R=this.audioTracksByGroup||(this.audioTracksByGroup=function(e){return wF(e).call(e,(function(e,A){var t=e.groups[A.groupId];t||(t=e.groups[A.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),t.tracks.push(A);var n=A.channels||"2";return t.channels[n]=(t.channels[n]||0)+1,t.hasDefault=t.hasDefault||A.default,t.hasAutoSelect=t.hasAutoSelect||A.autoselect,t.hasDefault&&(e.hasDefaultAudio=!0),t.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e}),{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(d)),k=-1;if(v){if(-1!==this.firstSelection)return this.firstSelection;var S=this.codecTiers||(this.codecTiers=function(e,A,t,n){var r;return wF(r=Xp(e).call(e,t,n+1)).call(r,(function(e,t,n){if(!t.codecSet)return e;var r=t.audioGroups,i=e[t.codecSet];i||(e[t.codecSet]=i={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:n,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!r,fragmentError:0}),i.minBitrate=Math.min(i.minBitrate,t.bitrate);var o=Math.min(t.height,t.width);return i.minHeight=Math.min(i.minHeight,o),i.minFramerate=Math.min(i.minFramerate,t.frameRate),i.minIndex=Math.min(i.minIndex,n),i.maxScore=Math.max(i.maxScore,t.score),i.fragmentError+=t.fragmentError,i.videoRanges[t.videoRange]=(i.videoRanges[t.videoRange]||0)+1,r&&r.forEach((function(e){if(e){var t=A.groups[e];t&&(i.hasDefaultAudio=i.hasDefaultAudio||A.hasDefaultAudio?t.hasDefault:t.hasAutoSelect||!A.hasDefaultAudio&&!A.hasAutoSelectAudio,jp(t.channels).forEach((function(e){i.channels[e]=(i.channels[e]||0)+t.channels[e]})))}})),e}),{})}(C,R,A,t)),M=function(e,A,t,n,r){for(var i=jp(e),o=null==n?void 0:n.channels,a=null==n?void 0:n.audioCodec,s=null==r?void 0:r.videoCodec,g=o&&2===Uv(o),c=!1,l=!1,u=1/0,I=1/0,h=1/0,C=1/0,d=0,E=[],f=cde(A,r),B=f.preferHDR,Q=f.allowedVideoRanges,p=function(){var A=e[i[v]];c||(c=A.channels[2]>0),u=Math.min(u,A.minHeight),I=Math.min(I,A.minFramerate),h=Math.min(h,A.minBitrate),jv(Q).call(Q,(function(e){return A.videoRanges[e]>0})).length>0&&(l=!0)},v=i.length;v--;)p();u=QCe(u)?u:0,I=QCe(I)?I:0;var y=Math.max(1080,u),m=Math.max(30,I);h=QCe(h)?h:t,t=Math.max(h,t),l||(A=void 0);var D=i.length>1;return{codecSet:wF(i).call(i,(function(A,n){var r=e[n];if(n===A)return A;if(E=l?jv(Q).call(Q,(function(e){return r.videoRanges[e]>0})):[],D){var i,u,I,h,f;if(r.minBitrate>t)return lde(n,xf(i="min bitrate of ".concat(r.minBitrate," > current estimate of ")).call(i,t)),A;if(!r.hasDefaultAudio)return lde(n,"no renditions with default or auto-select sound found"),A;if(a&&zp(n).call(n,a.substring(0,4))%5!=0)return lde(n,'audio codec preference "'.concat(a,'" not found')),A;if(o&&!g){if(!r.channels[o])return lde(n,xf(u="no renditions with ".concat(o," channel sound found (channels options: ")).call(u,jp(r.channels),")")),A}else if((!a||g)&&c&&0===r.channels[2])return lde(n,"no renditions with stereo sound found"),A;if(r.minHeight>y)return lde(n,xf(I="min resolution of ".concat(r.minHeight," > maximum of ")).call(I,y)),A;if(r.minFramerate>m)return lde(n,xf(h="min framerate of ".concat(r.minFramerate," > maximum of ")).call(h,m)),A;if(!E.some((function(e){return r.videoRanges[e]>0})))return lde(n,"no variants with VIDEO-RANGE of ".concat($b(E)," found")),A;if(s&&zp(n).call(n,s.substring(0,4))%5!=0)return lde(n,'video codec preference "'.concat(s,'" not found')),A;if(r.maxScore =OCe(A)||r.fragmentError>e[A].fragmentError)?A:(C=r.minIndex,d=r.maxScore,n)}),void 0),videoRanges:E,preferHDR:B,minFramerate:I,minBitrate:h,minIndex:C}}(S,y,e,D,w),G=M.codecSet,_=M.videoRanges,b=M.minFramerate,T=M.minBitrate,F=M.minIndex,N=M.preferHDR;k=F,B=G,y=N?_[_.length-1]:_[0],m=b,e=Math.max(e,T),this.log("picked start tier ".concat($b(M)))}else B=null==Q?void 0:Q.codecSet,y=null==Q?void 0:Q.videoRange;for(var L=I?I.duration:u?u.duration:0,U=this.bwEstimator.getEstimateTTFB()/1e3,K=[],x=function(){var A=C[Y],a=Y>l;if(!A)return"continue";if(f.useMediaCapabilities&&!A.supportedResult&&!A.supportedPromise){var u=navigator.mediaCapabilities;"function"!=typeof(null==u?void 0:u.decodingInfo)||!function(e,A,t,n,r,i){var o=e.audioCodec?e.audioGroups:null,a=null==i?void 0:i.audioCodec,s=null==i?void 0:i.channels,g=s?Uv(s):a?1/0:2,c=null;if(null!=o&&o.length)try{c=1===o.length&&o[0]?A.groups[o[0]].channels:wF(o).call(o,(function(e,t){if(t){var n=A.groups[t];if(!n)throw new Error("Audio track group ".concat(t," not found"));jp(n.channels).forEach((function(A){e[A]=(e[A]||0)+n.channels[A]}))}return e}),{2:0})}catch(WtA){return!0}return void 0!==e.videoCodec&&(e.width>1920&&e.height>1088||e.height>1920&&e.width>1088||e.frameRate>Math.max(n,30)||"SDR"!==e.videoRange&&e.videoRange!==t||e.bitrate>Math.max(r,8e6))||!!c&&QCe(g)&&jp(c).some((function(e){return Uv(e)>g}))}(A,R,y,m,e,D)&&"hvc1"!==(null==(H=A.videoCodec)?void 0:H.substring(0,4))?A.supportedResult=ZCe:(A.supportedPromise=ede(A,R,u),A.supportedPromise.then((function(e){if(s.hls){A.supportedResult=e;var t,n,r=s.hls.levels,i=zp(r).call(r,A);if(e.error)s.warn(xf(t=xf(n='MediaCapabilities decodingInfo error: "'.concat(e.error,'" for level ')).call(n,i," ")).call(t,$b(e)));else if(!e.supported){var o;s.warn(xf(o="Unsupported MediaCapabilities decodingInfo result for level ".concat(i," ")).call(o,$b(e))),i>-1&&r.length>1&&(s.log("Removing unsupported level ".concat(i)),s.hls.removeLevel(i),-1===s.hls.loadLevel&&(s.hls.nextLoadLevel=0))}}})))}if((B&&A.codecSet!==B||y&&A.videoRange!==y||a&&m>A.frameRate||!a&&m>0&&m =2*L&&0===r?A.averageBitrate:A.maxBitrate,S=s.getTimeToLoadFrag(U,h,w*Q,void 0===d);if(h>=w&&(Y===c||0===A.loadError&&0===A.fragmentError)&&(S<=U||!QCe(S)||p&&!s.bitrateTestDelay||S ")).call(j,Y," adjustedbw(")).call(z,Math.round(h),")-bitrate=")).call(O,Math.round(h-w)," ttfb:")).call(J,U.toFixed(1)," avgDuration:")).call(x,Q.toFixed(1)," maxFetchDuration:")).call(N,g.toFixed(1)," fetchDuration:")).call(F,S.toFixed(1)," firstSelection:")).call(T,v," codecSet:")).call(b,A.codecSet," videoRange:")).call(_,A.videoRange," hls.loadLevel:")).call(G,E))}return v&&(s.firstSelection=Y),{v:Y}}},Y=t;Y>=A;Y--){var P,H,J=x();if("continue"!==J&&"object"===wc(J))return J.v}return-1}}]),t}(LCe),fde=function(e,A){for(var t=0,n=e.length-1,r=null,i=null;t<=n;){var o=A(i=e[r=(t+n)/2|0]);if(o>0)t=r+1;else{if(!(o<0))return i;n=r-1}}return null};function Bde(e,A){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.005,i=null;if(e){i=A[1+e.sn-A[0].sn]||null;var o=e.endDTS-t;o>0&&o<15e-7&&(t+=15e-7),i&&e.level!==i.level&&i.end<=e.end&&(i=A[2+e.sn-A[0].sn]||null)}else 0===t&&0===A[0].start&&(i=A[0]);if(i&&((!e||e.level===i.level)&&0===Qde(t,n,i)||function(e,A,t){if(A&&0===A.start&&A.level 0){var n,r=wF(n=A.tagList).call(n,(function(e,A){return"INF"===A[0]&&(e+=tD(A[1])),e}),t);return e.start<=r}return!1}(i,e,Math.min(r,n))))return i;var a=fde(A,Qde.bind(null,t,n));return!a||a===e&&i?i:a}function Qde(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2?arguments[2]:void 0;if(t.start<=e&&t.start+t.duration>e)return 0;var n=Math.min(A,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-n<=e?1:t.start-n>e&&t.start?-1:0}function pde(e,A,t){var n=1e3*Math.min(A,t.duration+(t.deltaPTS?t.deltaPTS:0));return(t.endProgramDateTime||0)-n>e}function vde(e,A){return fde(e,(function(e){return e.ccA?-1:0}))}function yde(e){switch(e.details){case mCe.FRAG_LOAD_TIMEOUT:case mCe.KEY_LOAD_TIMEOUT:case mCe.LEVEL_LOAD_TIMEOUT:case mCe.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function mde(e,A){var t=yde(A);return e.default["".concat(t?"timeout":"error","Retry")]}function Dde(e,A){var t="linear"===e.backoff?1:Math.pow(2,A);return Math.min(t*e.retryDelayMs,e.maxRetryDelayMs)}function wde(e){return NCe(NCe({},e),{errorRetry:null,timeoutRetry:null})}function Rde(e,A,t,n){if(!e)return!1;var r=null==n?void 0:n.code,i=A 499)}(r)||!!t);return e.shouldRetry?e.shouldRetry(e,A,t,n,i):i}var kde=0,Sde=2,Mde=3,Gde=5,_de=0,bde=1,Tde=2,Fde=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,"error-controller",e.logger)).hls=void 0,n.playlistError=0,n.penalizedRenditions={},n.hls=e,n.registerListeners(),n}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.ERROR,this.onError,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.LEVEL_UPDATED,this.onLevelUpdated,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.ERROR,this.onError,this),e.off(DCe.ERROR,this.onErrorOut,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.LEVEL_UPDATED,this.onLevelUpdated,this))}},{key:"destroy",value:function(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}},{key:"startLoad",value:function(e){}},{key:"stopLoad",value:function(){this.playlistError=0}},{key:"getVariantLevelIndex",value:function(e){return(null==e?void 0:e.type)===kCe?e.level:this.hls.loadLevel}},{key:"onManifestLoading",value:function(){this.playlistError=0,this.penalizedRenditions={}}},{key:"onLevelUpdated",value:function(){this.playlistError=0}},{key:"onError",value:function(e,A){var t;if(!A.fatal){var n=this.hls,r=A.context;switch(A.details){case mCe.FRAG_LOAD_ERROR:case mCe.FRAG_LOAD_TIMEOUT:case mCe.KEY_LOAD_ERROR:case mCe.KEY_LOAD_TIMEOUT:return void(A.errorAction=this.getFragRetryOrSwitchAction(A));case mCe.FRAG_PARSING_ERROR:if(null!=(t=A.frag)&&t.gap)return void(A.errorAction=Nde());case mCe.FRAG_GAP:case mCe.FRAG_DECRYPT_ERROR:return A.errorAction=this.getFragRetryOrSwitchAction(A),void(A.errorAction.action=Sde);case mCe.LEVEL_EMPTY_ERROR:case mCe.LEVEL_PARSING_ERROR:var i,o,a=A.parent===kCe?A.level:n.loadLevel;return void(A.details===mCe.LEVEL_EMPTY_ERROR&&null!=(i=A.context)&&null!=(o=i.levelDetails)&&o.live?A.errorAction=this.getPlaylistRetryOrSwitchAction(A,a):(A.levelRetry=!1,A.errorAction=this.getLevelSwitchAction(A,a)));case mCe.LEVEL_LOAD_ERROR:case mCe.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==r?void 0:r.level)&&(A.errorAction=this.getPlaylistRetryOrSwitchAction(A,r.level)));case mCe.AUDIO_TRACK_LOAD_ERROR:case mCe.AUDIO_TRACK_LOAD_TIMEOUT:case mCe.SUBTITLE_LOAD_ERROR:case mCe.SUBTITLE_TRACK_LOAD_TIMEOUT:if(r){var s=n.levels[n.loadLevel];if(s&&(r.type===wCe&&s.hasAudioGroup(r.groupId)||r.type===RCe&&s.hasSubtitleGroup(r.groupId)))return A.errorAction=this.getPlaylistRetryOrSwitchAction(A,n.loadLevel),A.errorAction.action=Sde,void(A.errorAction.flags=bde)}return;case mCe.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var g=n.levels[n.loadLevel],c=null==g?void 0:g.attrs["HDCP-LEVEL"];return void(c?A.errorAction={action:Sde,flags:Tde,hdcpLevel:c}:this.keySystemError(A));case mCe.BUFFER_ADD_CODEC_ERROR:case mCe.REMUX_ALLOC_ERROR:case mCe.BUFFER_APPEND_ERROR:var l;if(!A.errorAction)A.errorAction=this.getLevelSwitchAction(A,null!=(l=A.level)?l:n.loadLevel);return;case mCe.INTERNAL_EXCEPTION:case mCe.BUFFER_APPENDING_ERROR:case mCe.BUFFER_FULL_ERROR:case mCe.LEVEL_SWITCH_ERROR:case mCe.BUFFER_STALLED_ERROR:case mCe.BUFFER_SEEK_OVER_HOLE:case mCe.BUFFER_NUDGE_ON_STALL:return void(A.errorAction=Nde())}A.type===yCe.KEY_SYSTEM_ERROR&&this.keySystemError(A)}}},{key:"keySystemError",value:function(e){var A=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,A)}},{key:"getPlaylistRetryOrSwitchAction",value:function(e,A){var t=mde(this.hls.config.playlistLoadPolicy,e),n=this.playlistError++;if(Rde(t,n,yde(e),e.response))return{action:Gde,flags:_de,retryConfig:t,retryCount:n};var r=this.getLevelSwitchAction(e,A);return t&&(r.retryConfig=t,r.retryCount=n),r}},{key:"getFragRetryOrSwitchAction",value:function(e){var A,t,n=this.hls,r=this.getVariantLevelIndex(e.frag),i=n.levels[r],o=n.config,a=o.fragLoadPolicy,s=o.keyLoadPolicy,g=mde(yT(A=e.details).call(A,"key")?s:a,e),c=wF(t=n.levels).call(t,(function(e,A){return e+A.fragmentError}),0);if(i&&(e.details!==mCe.FRAG_GAP&&i.fragmentError++,Rde(g,c,yde(e),e.response)))return{action:Gde,flags:_de,retryConfig:g,retryCount:c};var l=this.getLevelSwitchAction(e,r);return g&&(l.retryConfig=g,l.retryCount=c),l}},{key:"getLevelSwitchAction",value:function(e,A){var t=this.hls;null==A&&(A=t.loadLevel);var n=this.hls.levels[A];if(n){var r,i,o=e.details;n.loadError++,o===mCe.BUFFER_APPEND_ERROR&&n.fragmentError++;var a=-1,s=t.levels,g=t.loadLevel,c=t.minAutoLevel,l=t.maxAutoLevel;t.autoLevelEnabled||(t.loadLevel=-1);for(var u=null==(r=e.frag)?void 0:r.type,I=(u===SCe&&o===mCe.FRAG_PARSING_ERROR||"audio"===e.sourceBufferName&&(o===mCe.BUFFER_ADD_CODEC_ERROR||o===mCe.BUFFER_APPEND_ERROR))&&s.some((function(e){var A=e.audioCodec;return n.audioCodec!==A})),h="video"===e.sourceBufferName&&(o===mCe.BUFFER_ADD_CODEC_ERROR||o===mCe.BUFFER_APPEND_ERROR)&&s.some((function(e){var A=e.codecSet,t=e.audioCodec;return n.codecSet!==A&&n.audioCodec===t})),C=null!=(i=e.context)?i:{},d=C.type,E=C.groupId,f=function(){var A=(B+g)%s.length;if(A!==g&&A>=c&&A<=l&&0===s[A].loadError){var t=s[A];if(o===mCe.FRAG_GAP&&u===kCe&&e.frag){var r=s[A].details;if(r){var i=Bde(e.frag,r.fragments,e.frag.start);if(null!=i&&i.gap)return"continue"}}else{if(d===wCe&&t.hasAudioGroup(E)||d===RCe&&t.hasSubtitleGroup(E))return"continue";if(u===SCe&&null!=(Q=n.audioGroups)&&Q.some((function(e){return t.hasAudioGroup(e)}))||u===MCe&&null!=(p=n.subtitleGroups)&&p.some((function(e){return t.hasSubtitleGroup(e)}))||I&&n.audioCodec===t.audioCodec||!I&&n.audioCodec!==t.audioCodec||h&&n.codecSet===t.codecSet)return"continue"}return a=A,"break"}},B=s.length;B--;){var Q,p,v=f();if("continue"!==v&&"break"===v)break}if(a>-1&&t.loadLevel!==a)return e.levelRetry=!0,this.playlistError=0,{action:Sde,flags:_de,nextAutoLevel:a}}return{action:Sde,flags:bde}}},{key:"onErrorOut",value:function(e,A){var t;switch(null==(t=A.errorAction)?void 0:t.action){case kde:break;case Sde:this.sendAlternateToPenaltyBox(A),A.errorAction.resolved||A.details===mCe.FRAG_GAP?/MediaSource readyState: ended/.test(A.error.message)&&(this.warn('MediaSource ended after "'.concat(A.sourceBufferName,'" sourceBuffer append error. Attempting to recover from media error.')),this.hls.recoverMediaError()):A.fatal=!0}A.fatal&&this.hls.stopLoad()}},{key:"sendAlternateToPenaltyBox",value:function(e){var A=this.hls,t=e.errorAction;if(t){var n=ux(t),r=t.hdcpLevel,i=t.nextAutoLevel;switch(n){case _de:this.switchLevel(e,i);break;case Tde:r&&(A.maxHdcpLevel=Ade[zp(Ade).call(Ade,r)-1],t.resolved=!0),this.warn('Restricting playback to HDCP-LEVEL of "'.concat(A.maxHdcpLevel,'" or lower'))}t.resolved||this.switchLevel(e,i)}}},{key:"switchLevel",value:function(e,A){var t;void 0!==A&&e.errorAction&&(this.warn(xf(t="switching to level ".concat(A," after ")).call(t,e.details)),this.hls.nextAutoLevel=A,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}}]),t}(LCe);function Nde(e){var A={action:kde,flags:_de};return e&&(A.resolved=!0),A}var Lde="NOT_LOADED",Ude="APPENDING",Kde="PARTIAL",xde="OK",Yde=0,Pde=1,Hde=function(){function e(A,t,n){GE(this,e),this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=A,this.aesIV=t,this.aesMode=n}return NE(e,[{key:"decrypt",value:function(e,A){switch(this.aesMode){case Yde:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},A,e);case Pde:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},A,e);default:throw new Error("[AESCrypto] invalid aes mode ".concat(this.aesMode))}}}]),e}();function Jde(e,A,t){return Xp(Uint8Array.prototype)?Xp(e).call(e,A,t):new Uint8Array(Xp(Array.prototype).call(e,A,t))}var Ode=function(){function e(){GE(this,e),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}return NE(e,[{key:"uint8ArrayToUint32Array_",value:function(e){for(var A=new DataView(e),t=new Uint32Array(4),n=0;n<4;n++)t[n]=A.getUint32(4*n);return t}},{key:"initTable",value:function(){var e=this.sBox,A=this.invSBox,t=this.subMix,n=t[0],r=t[1],i=t[2],o=t[3],a=this.invSubMix,s=a[0],g=a[1],c=a[2],l=a[3],u=new Uint32Array(256),I=0,h=0,C=0;for(C=0;C<256;C++)u[C]=C<128?C<<1:C<<1^283;for(C=0;C<256;C++){var d=h^h<<1^h<<2^h<<3^h<<4;d=d>>>8^255&d^99,e[I]=d,A[d]=I;var E=u[I],f=u[E],B=u[f],Q=257*u[d]^16843008*d;n[I]=Q<<24|Q>>>8,r[I]=Q<<16|Q>>>16,i[I]=Q<<8|Q>>>24,o[I]=Q,Q=16843009*B^65537*f^257*E^16843008*I,s[d]=Q<<24|Q>>>8,g[d]=Q<<16|Q>>>16,c[d]=Q<<8|Q>>>24,l[d]=Q,I?(I=E^u[u[u[B^E]]],h^=u[u[h]]):I=h=1}}},{key:"expandKey",value:function(e){for(var A=this.uint8ArrayToUint32Array_(e),t=!0,n=0;n >8|e>>>24}},{key:"decrypt",value:function(e,A,t){for(var n,r,i,o,a,s,g,c,l,u,I,h,C,d,E=this.keySize+6,f=this.invKeySchedule,B=this.invSBox,Q=this.invSubMix,p=Q[0],v=Q[1],y=Q[2],m=Q[3],D=this.uint8ArrayToUint32Array_(t),w=D[0],R=D[1],k=D[2],S=D[3],M=new Int32Array(e),G=new Int32Array(M.length),_=this.networkToHostOrderSwap;A >>24]^v[s>>16&255]^y[g>>8&255]^m[255&c]^f[C],r=p[s>>>24]^v[g>>16&255]^y[c>>8&255]^m[255&a]^f[C+1],i=p[g>>>24]^v[c>>16&255]^y[a>>8&255]^m[255&s]^f[C+2],o=p[c>>>24]^v[a>>16&255]^y[s>>8&255]^m[255&g]^f[C+3],a=n,s=r,g=i,c=o,C+=4;n=B[a>>>24]<<24^B[s>>16&255]<<16^B[g>>8&255]<<8^B[255&c]^f[C],r=B[s>>>24]<<24^B[g>>16&255]<<16^B[c>>8&255]<<8^B[255&a]^f[C+1],i=B[g>>>24]<<24^B[c>>16&255]<<16^B[a>>8&255]<<8^B[255&s]^f[C+2],o=B[c>>>24]<<24^B[a>>16&255]<<16^B[s>>8&255]<<8^B[255&g]^f[C+3],G[A]=_(n^w),G[A+1]=_(o^R),G[A+2]=_(i^k),G[A+3]=_(r^S),w=l,R=u,k=I,S=h,A+=4}return G.buffer}}]),e}(),zde=function(){function e(A,t,n){GE(this,e),this.subtle=void 0,this.key=void 0,this.aesMode=void 0,this.subtle=A,this.key=t,this.aesMode=n}return NE(e,[{key:"expandKey",value:function(){var e=function(e){switch(e){case Yde:return"AES-CBC";case Pde:return"AES-CTR";default:throw new Error("[FastAESKey] invalid aes mode ".concat(e))}}(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},!1,["encrypt","decrypt"])}}]),e}();function jde(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("undefined"!=typeof TextDecoder){var t=new TextDecoder("utf-8").decode(e);if(A){var n=zp(t).call(t,"\0");return-1!==n?t.substring(0,n):t}return t.replace(/\0/g,"")}for(var r,i,o,a=e.length,s="",g=0;g>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:s+=String.fromCharCode(r);break;case 12:case 13:i=e[g++],s+=String.fromCharCode((31&r)<<6|63&i);break;case 14:i=e[g++],o=e[g++],s+=String.fromCharCode((15&r)<<12|(63&i)<<6|(63&o)<<0)}}return s}var Xde={hexDump:function(e){for(var A="",t=0;t >24,e[A+1]=t>>16&255,e[A+2]=t>>8&255,e[A+3]=255&t}function cEe(e,A){var t=[];if(!A.length)return t;for(var n=e.byteLength,r=0;r 1?r+i:n;if(rEe(e.subarray(r+4,r+8))===A[0])if(1===A.length)t.push(e.subarray(r+8,o));else{var a=cEe(e.subarray(r+8,o),Xp(A).call(A,1));a.length&&tEe.apply(t,a)}r=o}return t}function lEe(e){var A=[],t=e[0],n=8,r=oEe(e,n);n+=4;var i=0,o=0;0===t?(i=oEe(e,n),o=oEe(e,n+4),n+=8):(i=aEe(e,n),o=aEe(e,n+8),n+=16),n+=2;var a=e.length+o,s=iEe(e,n);n+=2;for(var g=0;g >>31)return KCe.warn("SIDX has hierarchical references (not supported)"),null;var I=oEe(e,c);c+=4,A.push({referenceSize:u,subsegmentDuration:I,info:{duration:I/r,start:a,end:a+u-1}}),a+=u,n=c+=4}return{earliestPresentationTime:i,timescale:r,version:t,referencesCount:s,references:A}}function uEe(e){for(var A=[],t=cEe(e,["moov","trak"]),n=0;n7){var c=4;if(3!==g[c++])break;c=hEe(g,c),c+=2;var l=g[c++];if(128&l&&(c+=2),64&l&&(c+=g[c++]),4!==g[c++])break;c=hEe(g,c);var u=g[c++];if(64!==u)break;if(r+="."+CEe(u),c+=12,5!==g[c++])break;c=hEe(g,c);var I=g[c++],h=(248&I)>>3;31===h&&(h+=1+((7&I)<<3)+((224&g[c])>>5)),r+="."+h}break;case"hvc1":case"hev1":var C=cEe(t,["hvcC"])[0],d=C[1],E=["","A","B","C"][d>>6],f=31&d,B=oEe(C,2),Q=(32&d)>>5?"H":"L",p=C[12],v=C.subarray(6,12);r+="."+E+f,r+="."+B.toString(16).toUpperCase(),r+="."+Q+p;for(var y="",m=v.length;m--;){var D=v[m];if(D||y)y="."+D.toString(16).toUpperCase()+y}r+=y;break;case"dvh1":case"dvhe":var w=cEe(t,["dvcC"])[0],R=w[2]>>1&127,k=w[2]<<5&32|w[3]>>3&31;r+="."+dEe(R)+"."+dEe(k);break;case"vp09":var S=cEe(t,["vpcC"])[0],M=S[4],G=S[5],_=S[6]>>4&15;r+="."+dEe(M)+"."+dEe(G)+"."+dEe(_);break;case"av01":var b=cEe(t,["av1C"])[0],T=b[1]>>>5,F=31&b[1],N=b[2]>>>7?"H":"M",L=(64&b[2])>>6,U=(32&b[2])>>5,K=2===T&&L?U?12:10:L?10:8,x=(16&b[2])>>4,Y=(8&b[2])>>3,P=(4&b[2])>>2,H=3&b[2];r+="."+T+"."+dEe(F)+N+"."+dEe(K)+"."+x+"."+Y+P+H+"."+dEe(1)+"."+dEe(1)+"."+dEe(1)+".0"}return{codec:r,encrypted:i}}function hEe(e,A){for(var t=A+5;128&e[A++]&&A >1&63;return 39===t||40===t}return 6===(31&A)}function vEe(e,A,t,n){var r=yEe(e),i=0;i+=A;for(var o=0,a=0,s=0;i =r.length)break;o+=s=r[i++]}while(255===s);a=0;do{if(i>=r.length)break;a+=s=r[i++]}while(255===s);var g=r.length-i,c=i;if(a g){var l;KCe.error(xf(l="Malformed SEI payload. ".concat(a," is too small, only ")).call(l,g," bytes left to parse."));break}if(4===o){if(181===r[c++]){var u=iEe(r,c);if(c+=2,49===u){var I=oEe(r,c);if(c+=4,1195456820===I){var h=r[c++];if(3===h){var C=r[c++],d=64&C,E=d?2+3*(31&C):0,f=new Uint8Array(E);if(d){f[0]=C;for(var B=1;B 16){for(var Q=[],p=0;p<16;p++){var v=r[c++].toString(16);Q.push(1==v.length?"0"+v:v),3!==p&&5!==p&&7!==p&&9!==p||Q.push("-")}for(var y=a-16,m=new Uint8Array(y),D=0;D 0&&new DataView(i.buffer).setUint32(0,t.byteLength,!1),function(e){for(var A=arguments.length,t=new Array(A>1?A-1:0),n=1;n>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(e,4),o=0,i=8;o >>24;if(0!==r&&1!==r)return{offset:t,size:A};var i=e.buffer,o=Xde.hexDump(new Uint8Array(i,t+12,16)),a=e.getUint32(28),s=null,g=null;if(0===r){if(A-321&&void 0!==arguments[1]?arguments[1]:{}).removePKCS7Padding,n=void 0===t||t;if(GE(this,e),this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.enableSoftwareAES=void 0,this.enableSoftwareAES=A.enableSoftwareAES,this.removePKCS7Padding=n,n)try{var r=self.crypto;r&&(this.subtle=r.subtle||r.webkitSubtle)}catch(P7){}this.useSoftware=!this.subtle}return NE(e,[{key:"destroy",value:function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}},{key:"isSync",value:function(){return this.useSoftware}},{key:"flush",value:function(){var e=this.currentResult,A=this.remainderData;if(!e||A)return this.reset(),null;var t,n,r,i=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?(n=(t=i).byteLength,(r=n&&new DataView(t.buffer).getUint8(n-1))?Jde(t,0,n-r):t):i}},{key:"reset",value:function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}},{key:"decrypt",value:function(e,A,t,n){var r=this;return this.useSoftware?new Op((function(i,o){var a=ArrayBuffer.isView(e)?e:new Uint8Array(e);r.softwareDecrypt(a,A,t,n);var s=r.flush();s?i(s.buffer):o(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),A,t,n)}},{key:"softwareDecrypt",value:function(e,A,t,n){var r=this.currentIV,i=this.currentResult,o=this.remainderData;if(n!==Yde||16!==A.byteLength)return KCe.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),o&&(e=BEe(o,e),this.remainderData=null);var a=this.getValidChunk(e);if(!a.length)return null;r&&(t=r);var s=this.softwareDecrypter;s||(s=this.softwareDecrypter=new Ode),s.expandKey(A);var g=i;return this.currentResult=s.decrypt(a.buffer,0,t),this.currentIV=Jde(a,-16).buffer,g||null}},{key:"webCryptoDecrypt",value:function(e,A,t,n){var r=this;if(this.key!==A||!this.fastAesKey){if(!this.subtle)return Op.resolve(this.onWebCryptoError(e,A,t,n));this.key=A,this.fastAesKey=new zde(this.subtle,A,n)}return this.fastAesKey.expandKey().then((function(A){return r.subtle?(r.logOnce("WebCrypto AES decrypt"),new Hde(r.subtle,new Uint8Array(t),n).decrypt(e.buffer,A)):Op.reject(new Error("web crypto not initialized"))})).catch((function(i){var o;return KCe.warn(xf(o="[decrypter]: WebCrypto Error, disable WebCrypto API, ".concat(i.name,": ")).call(o,i.message)),r.onWebCryptoError(e,A,t,n)}))}},{key:"onWebCryptoError",value:function(e,A,t,n){var r=this.enableSoftwareAES;if(r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,A,t,n);var i=this.flush();if(i)return i.buffer}throw new Error("WebCrypto"+(r?" and softwareDecrypt":"")+": failed to decrypt data")}},{key:"getValidChunk",value:function(e){var A=e,t=e.length-e.length%16;return t!==e.length&&(A=Jde(e,0,t),this.remainderData=Jde(e,t)),A}},{key:"logOnce",value:function(e){this.logEnabled&&(KCe.log("[decrypter]: ".concat(e)),this.logEnabled=!1)}}]),e}(),REe=Math.pow(2,17),kEe=function(){function e(A){GE(this,e),this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=A}return NE(e,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null)}},{key:"abort",value:function(){this.loader&&this.loader.abort()}},{key:"load",value:function(e,A){var t=this,n=e.url;if(!n)return Op.reject(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error("Fragment does not have a ".concat(n?"part list":"url")),networkDetails:null}));this.abort();var r=this.config,i=r.fLoader,o=r.loader;return new Op((function(a,s){if(t.loader&&t.loader.destroy(),e.gap){if(e.tagList.some((function(e){return"GAP"===e[0]})))return void s(MEe(e));e.gap=!1}var g=t.loader=i?new i(r):new o(r),c=SEe(e);e.loader=g;var l=wde(r.fragLoadPolicy.default),u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===e.sn?1/0:REe};e.stats=g.stats;var I={onSuccess:function(A,n,r,i){t.resetLoader(e,g);var o=A.data;r.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(Xp(o).call(o,0,16)),o=Xp(o).call(o,16)),a({frag:e,part:null,payload:o,networkDetails:i})},onError:function(A,r,i,o){var a;t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:NCe({url:n,data:void 0},A),error:new Error(xf(a="HTTP Error ".concat(A.code," ")).call(a,A.text)),networkDetails:i,stats:o}))},onAbort:function(A,n,r){t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:r,stats:A}))},onTimeout:function(A,n,r){t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error("Timeout after ".concat(u.timeout,"ms")),networkDetails:r,stats:A}))}};A&&(I.onProgress=function(t,n,r,i){return A({frag:e,part:null,payload:r,networkDetails:i})}),g.load(c,u,I)}))}},{key:"loadPart",value:function(e,A,t){var n=this;this.abort();var r=this.config,i=r.fLoader,o=r.loader;return new Op((function(a,s){if(n.loader&&n.loader.destroy(),e.gap||A.gap)s(MEe(e,A));else{var g=n.loader=i?new i(r):new o(r),c=SEe(e,A);e.loader=g;var l=wde(r.fragLoadPolicy.default),u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:REe};A.stats=g.stats,g.load(c,u,{onSuccess:function(r,i,o,s){n.resetLoader(e,g),n.updateStatsFromPart(e,A);var c={frag:e,part:A,payload:r.data,networkDetails:s};t(c),a(c)},onError:function(t,r,i,o){var a;n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:A,response:NCe({url:c.url,data:void 0},t),error:new Error(xf(a="HTTP Error ".concat(t.code," ")).call(a,t.text)),networkDetails:i,stats:o}))},onAbort:function(t,r,i){e.stats.aborted=A.stats.aborted,n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.INTERNAL_ABORTED,fatal:!1,frag:e,part:A,error:new Error("Aborted"),networkDetails:i,stats:t}))},onTimeout:function(t,r,i){n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:A,error:new Error("Timeout after ".concat(u.timeout,"ms")),networkDetails:i,stats:t}))}})}}))}},{key:"updateStatsFromPart",value:function(e,A){var t=e.stats,n=A.stats,r=n.total;if(t.loaded+=n.loaded,r){var i=Math.round(e.duration/A.duration),o=Math.min(Math.round(t.loaded/r),i),a=(i-o)*Math.round(t.loaded/o);t.total=t.loaded+a}else t.total=Math.max(t.loaded,t.total);var s=t.loading,g=n.loading;s.start?s.first+=g.first-g.start:(s.start=g.start,s.first=g.first),s.end=g.end}},{key:"resetLoader",value:function(e,A){e.loader=null,this.loader===A&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),A.destroy()}}]),e}();function SEe(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t||e,r={frag:e,part:t,responseType:"arraybuffer",url:n.url,headers:{},rangeStart:0,rangeEnd:0},i=n.byteRangeStartOffset,o=n.byteRangeEndOffset;if(QCe(i)&&QCe(o)){var a,s=i,g=o;if("initSegment"===e.sn&&("AES-128"===(A=null==(a=e.decryptdata)?void 0:a.method)||"AES-256"===A)){var c=o-i;c%16&&(g=o+(16-c%16)),0!==i&&(r.resetIV=!0,s=i-16)}r.rangeStart=s,r.rangeEnd=g}return r}function MEe(e,A){var t=new Error("GAP ".concat(e.gap?"tag":"attribute"," found")),n={type:yCe.MEDIA_ERROR,details:mCe.FRAG_GAP,fatal:!1,frag:e,error:t,networkDetails:null};return A&&(n.part=A),(A||e).stats.aborted=!0,new GEe(n)}var GEe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,e.error.message)).data=void 0,n.data=e,n}return NE(t)}(zk(Error)),_Ee=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,e,n))._boundTick=void 0,r._tickTimer=null,r._tickInterval=null,r._tickCallCount=0,r._boundTick=r.tick.bind(Gk(r)),r}return NE(t,[{key:"destroy",value:function(){this.onHandlerDestroying(),this.onHandlerDestroyed()}},{key:"onHandlerDestroying",value:function(){this.clearNextTick(),this.clearInterval()}},{key:"onHandlerDestroyed",value:function(){}},{key:"hasInterval",value:function(){return!!this._tickInterval}},{key:"hasNextTick",value:function(){return!!this._tickTimer}},{key:"setInterval",value:function(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}},{key:"clearInterval",value:function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}},{key:"clearNextTick",value:function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}},{key:"tick",value:function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}},{key:"tickImmediate",value:function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}},{key:"doTick",value:function(){}}]),t}(LCe),bEe=NE((function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];GE(this,e),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=A,this.sn=t,this.id=n,this.size=r,this.part=i,this.partial=o}));var TEe={length:0,start:function(){return 0},end:function(){return 0}},FEe=function(){function e(){GE(this,e)}return NE(e,null,[{key:"isBuffered",value:function(A,t){if(A)for(var n=e.getBuffered(A),r=n.length;r--;)if(t>=n.start(r)&&t<=n.end(r))return!0;return!1}},{key:"bufferInfo",value:function(A,t,n){if(A){var r=e.getBuffered(A);if(r.length){for(var i=[],o=0;o o&&(n[i-1].end=e[r].end):n.push(e[r])}else n.push(e[r])}else n=e;for(var a,s=0,g=A,c=A,l=0;l =u&&ASue?1/0:A}},{key:"hexadecimalInteger",value:function(e){if(this[e]){var A,t=Xp(A=this[e]||"0x").call(A,2);t=(1&t.length?"0":"")+t;for(var n=new Uint8Array(t.length/2),r=0;r Sue?1/0:A}},{key:"decimalFloatingPoint",value:function(e){return tD(this[e])}},{key:"optionalFloat",value:function(e,A){var t=this[e];return t?tD(t):A}},{key:"enumeratedString",value:function(e){return this[e]}},{key:"enumeratedStringList",value:function(e,A){var t,n=this[e];return wF(t=n?n.split(/[ ,]+/):[]).call(t,(function(e,A){return e[A.toLowerCase()]=!0,e}),A)}},{key:"bool",value:function(e){return"YES"===this[e]}},{key:"decimalResolution",value:function(e){var A=UEe.exec(this[e]);if(null!==A)return{width:Uv(A[1],10),height:Uv(A[2],10)}}}],[{key:"parseAttrList",value:function(e,A){var t,n,r={};for(KEe.lastIndex=0;null!==(n=KEe.exec(e));){var i,o=lD(i=n[1]).call(i),a=n[2],s=0===zp(a).call(a,'"')&&SL(a).call(a,'"')===a.length-1,g=!1;if(s)a=Xp(a).call(a,1,-1);else switch(o){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":g=!0}if(A&&(s||g))a=LEe(A,a);else if(!g&&!s)switch(o){case"CLOSED-CAPTIONS":if("NONE"===a)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":KCe.warn(xf(t="".concat(e,": attribute ")).call(t,o," is missing quotes"))}r[o]=a}return r}}]),e}(),YEe=function(){function e(A,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(GE(this,e),this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==t?void 0:t.tagAnchor)||null,this.tagOrder=null!=(n=null==t?void 0:t.tagOrder)?n:r,t){var i=t.attr;for(var o in i)if(Object.prototype.hasOwnProperty.call(A,o)&&A[o]!==i[o]){var a;KCe.warn(xf(a='DATERANGE tag attribute: "'.concat(o,'" does not match for tags with ID: "')).call(a,A.ID,'"')),this._badValueForSameId=o;break}A=TCe(new xEe({}),i,A)}if(this.attr=A,t?(this._startDate=t._startDate,this._cue=t._cue,this._endDate=t._endDate,this._dateAtEnd=t._dateAtEnd):this._startDate=new Date(A["START-DATE"]),"END-DATE"in this.attr){var s=(null==t?void 0:t.endDate)||new Date(this.attr["END-DATE"]);QCe(s.getTime())&&(this._endDate=s)}}return NE(e,[{key:"id",get:function(){return this.attr.ID}},{key:"class",get:function(){return this.attr.CLASS}},{key:"cue",get:function(){var e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}},{key:"startTime",get:function(){var e,A=this.tagAnchor;return null===A||null===A.programDateTime?(KCe.warn(xf(e='Expected tagAnchor Fragment with PDT set for DateRange "'.concat(this.id,'": ')).call(e,A)),NaN):A.start+(this.startDate.getTime()-A.programDateTime)/1e3}},{key:"startDate",get:function(){return this._startDate}},{key:"endDate",get:function(){var e=this._endDate||this._dateAtEnd;if(e)return e;var A=this.duration;return null!==A?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*A):null}},{key:"duration",get:function(){if("DURATION"in this.attr){var e=this.attr.decimalFloatingPoint("DURATION");if(QCe(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}},{key:"plannedDuration",get:function(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}},{key:"endOnNext",get:function(){return this.attr.bool("END-ON-NEXT")}},{key:"isInterstitial",get:function(){return"com.apple.hls.interstitial"===this.class}},{key:"isValid",get:function(){return!!this.id&&!this._badValueForSameId&&QCe(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}]),e}();function PEe(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function HEe(e){switch(e){case"AES-128":case"AES-256":return Yde;case"AES-256-CTR":return Pde;default:throw new Error("invalid full segment method ".concat(e))}}function JEe(e){return Uint8Array.from(atob(e),(function(e){return e.charCodeAt(0)}))}function OEe(e){return Uint8Array.from(unescape(encodeURIComponent(e)),(function(e){return e.charCodeAt(0)}))}function zEe(e){var A,t,n=e.split(":"),r=null;if("data"===n[0]&&2===n.length){var i=n[1].split(";"),o=i[i.length-1].split(",");if(2===o.length){var a="base64"===o[0],s=o[1];a?(Cv(i).call(i,-1,1),r=JEe(s)):(A=OEe(s).subarray(0,16),(t=new Uint8Array(16)).set(A,16-A.length),r=t)}}return r}var jEe="undefined"!=typeof self?self:void 0,XEe="org.w3.clearkey",qEe="com.apple.fps",VEe="com.microsoft.playready",WEe="com.widevine.alpha",ZEe="org.w3.clearkey",$Ee="com.apple.streamingkeydelivery",efe="com.microsoft.playready",Afe="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function tfe(e){switch(e){case $Ee:return qEe;case efe:return VEe;case Afe:return WEe;case ZEe:return XEe}}var nfe="1077efecc0b24d02ace33c1e52e2fb4b",rfe="e2719d58a985b3c9781ab030af78d30e",ife="9a04f07998404286ab92e65be0885f95",ofe="edef8ba979d64acea3c827dcd51d21ed";function afe(e){return e===ofe?WEe:e===ife?VEe:e===nfe||e===rfe?XEe:void 0}function sfe(e){switch(e){case qEe:return $Ee;case VEe:return efe;case WEe:return Afe;case XEe:return ZEe}}function gfe(e){var A,t=e.drmSystems,n=e.widevineLicenseUrl,r=t?jv(A=[qEe,WEe,VEe,XEe]).call(A,(function(e){return!!t[e]})):[];return!r[WEe]&&n&&r.push(WEe),r}var cfe,lfe=null!=jEe&&null!=(cfe=jEe.navigator)&&cfe.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function ufe(e,A,t,n){var r;switch(e){case qEe:r=["cenc","sinf"];break;case WEe:case VEe:r=["cenc"];break;case XEe:r=["cenc","keyids"];break;default:throw new Error("Unknown key-system: ".concat(e))}return function(e,A,t,n){var r={initDataTypes:e,persistentState:n.persistentState||"optional",distinctiveIdentifier:n.distinctiveIdentifier||"optional",sessionTypes:n.sessionTypes||[n.sessionType||"temporary"],audioCapabilities:Jp(A).call(A,(function(e){return{contentType:"audio/mp4; codecs=".concat(e),robustness:n.audioRobustness||"",encryptionScheme:n.audioEncryptionScheme||null}})),videoCapabilities:Jp(t).call(t,(function(e){return{contentType:"video/mp4; codecs=".concat(e),robustness:n.videoRobustness||"",encryptionScheme:n.videoEncryptionScheme||null}}))};return[r]}(r,A,t,n)}function Ife(e){var A=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),t=String.fromCharCode.apply(null,nm(A)),n=t.substring(zp(t).call(t,"<"),t.length),r=(new DOMParser).parseFromString(n,"text/xml").getElementsByTagName("KID")[0];if(r){var i=r.childNodes[0]?r.childNodes[0].nodeValue:r.getAttribute("VALUE");if(i){var o=JEe(i).subarray(0,16);return function(e){var A=function(e,A,t){var n=e[A];e[A]=e[t],e[t]=n};A(e,0,3),A(e,1,2),A(e,4,5),A(e,6,7)}(o),o}}return null}var hfe={},Cfe=function(){function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[1],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;GE(this,e),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=A,this.uri=t,this.keyFormat=n,this.keyFormatVersions=r,this.iv=i,this.encrypted=!!A&&"NONE"!==A,this.isCommonEncryption=this.encrypted&&!PEe(A)}return NE(e,[{key:"isSupported",value:function(){var e;if(this.method){if(PEe(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case $Ee:case Afe:case efe:case ZEe:return-1!==zp(e=["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"]).call(e,this.method)}}return!1}},{key:"getDecryptData",value:function(A){if(!this.encrypted||!this.uri)return null;if(PEe(this.method)&&this.uri&&!this.iv){"number"!=typeof A&&(KCe.warn('missing IV for initialization segment with method="'.concat(this.method,'" - compliance issue')),A=0);var t=function(e){for(var A=new Uint8Array(16),t=12;t<16;t++)A[t]=e>>8*(15-t)&255;return A}(A);return new e(this.method,this.uri,"identity",this.keyFormatVersions,t)}var n=zEe(this.uri);if(n)switch(this.keyFormat){case Afe:this.pssh=n,n.length>=22&&(this.keyId=n.subarray(n.length-22,n.length-6));break;case efe:var r=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=mEe(r,0,n),this.keyId=Ife(n);break;default:var i=n.subarray(0,16);if(16!==i.length){var o=new Uint8Array(16);o.set(i,16-i.length),i=o}this.keyId=i}if(!this.keyId||16!==this.keyId.byteLength){var a=hfe[this.uri];if(!a){var s=jp(hfe).length%Sue;a=new Uint8Array(16),new DataView(a.buffer,12,4).setUint32(0,s),hfe[this.uri]=a}this.keyId=a}return this}}],[{key:"clearKeyUriToKeyIdMap",value:function(){hfe={}}}]),e}();function dfe(e,A,t,n,r){var i=t[n];if(i){var o,a=i.programDateTime;if(A>=a||0===n)if(A<=a+1e3*(((null==(o=t[n+1])?void 0:o.start)||r)-i.start)){var s=t[n].sn-e.startSN,g=e.fragments;if(g.length>t.length)for(var c=(t[n+1]||g[g.length-1]).sn-e.startSN;c>s;c--){var l=g[c].programDateTime;if(A>=l&&A e.sn?(r=t-e.start,n=e):(r=e.start-t,n=A),n.duration!==r&&n.setDuration(r)}else if(A.sn>e.sn){e.cc===A.cc&&e.minEndPTS?A.setStart(e.start+(e.minEndPTS-e.start)):A.setStart(e.start+e.duration)}else A.setStart(Math.max(e.start-A.duration,0))}function Bfe(e,A,t,n,r,i){n-t<=0&&(KCe.warn("Fragment should have a positive duration",A),n=t+A.duration,i=r+A.duration);var o=t,a=n,s=A.startPTS,g=A.endPTS;if(QCe(s)){var c=Math.abs(s-t);QCe(A.deltaPTS)?A.deltaPTS=Math.max(c,A.deltaPTS):A.deltaPTS=c,o=Math.max(t,s),t=Math.min(t,s),r=Math.min(r,A.startDTS),a=Math.min(n,g),n=Math.max(n,g),i=Math.max(i,A.endDTS)}var l=t-A.start;0!==A.start&&A.setStart(t),A.setDuration(n-A.start),A.startPTS=t,A.maxStartPTS=o,A.startDTS=r,A.endPTS=n,A.minEndPTS=a,A.endDTS=i;var u,I=A.sn;if(!e||I e.endSN)return 0;var h=I-e.startSN,C=e.fragments;for(C[h]=A,u=h;u>0;u--)ffe(C[u],C[u-1]);for(u=h;u =0;i--){var o=r[i].initSegment;if(o){n=o;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var a,s=0;!function(e,A,t){for(var n,r,i=A.skippedSegments,o=Math.max(e.startSN,A.startSN)-A.startSN,a=(e.fragmentHint?1:0)+(i?A.endSN:Math.min(e.endSN,A.endSN))-A.startSN,s=A.startSN-e.startSN,g=A.fragmentHint?xf(n=A.fragments).call(n,A.fragmentHint):A.fragments,c=e.fragmentHint?xf(r=e.fragments).call(r,e.fragmentHint):e.fragments,l=o;l<=a;l++){var u=c[s+l],I=g[l];i&&!I&&u&&(I=A.fragments[l]=u),u&&I&&t(u,I)}}(e,A,(function(e,t){e.relurl&&(s=e.cc-t.cc),QCe(e.startPTS)&&QCe(e.endPTS)&&(t.setStart(t.startPTS=e.startPTS),t.startDTS=e.startDTS,t.maxStartPTS=e.maxStartPTS,t.endPTS=e.endPTS,t.endDTS=e.endDTS,t.minEndPTS=e.minEndPTS,t.setDuration(e.endPTS-e.startPTS),t.duration&&(a=t),A.PTSKnown=A.alignedSliding=!0),e.hasStreams&&(t.elementaryStreams=e.elementaryStreams),t.loader=e.loader,e.hasStats&&(t.stats=e.stats),e.initSegment&&(t.initSegment=e.initSegment,n=e.initSegment)}));var g=A.fragmentHint?xf(t=A.fragments).call(t,A.fragmentHint):A.fragments;if(n&&g.forEach((function(e){var A;!e||e.initSegment&&e.initSegment.relurl!==(null==(A=n)?void 0:A.relurl)||(e.initSegment=n)})),A.skippedSegments)if(A.deltaUpdateFailed=A.fragments.some((function(e){return!e})),A.deltaUpdateFailed){KCe.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var c=A.skippedSegments;c--;)A.fragments.shift();A.startSN=A.fragments[0].sn,A.startCC||(A.startCC=A.fragments[0].cc)}else{var l;A.canSkipDateRanges&&(A.dateRanges=function(e,A){var t=A.dateRanges,n=A.recentlyRemovedDateranges,r=TCe({},e);n&&n.forEach((function(e){delete r[e]}));var i=jp(r).length;i&&jp(t).forEach((function(e){var A=r[e],n=new YEe(t[e].attr,A);n.isValid?(r[e]=n,A||(n.tagOrder+=i)):KCe.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'.concat($b(t[e].attr),'"'))}));return r}(e.dateRanges,A));var u=jv(l=e.fragments).call(l,(function(e){return e.rawProgramDateTime}));if(e.hasProgramDateTime&&!A.hasProgramDateTime)for(var I=1;I 2&&void 0!==arguments[2])||arguments[2],n=A.startSN+A.skippedSegments-e.startSN,r=e.fragments,i=n>=0,o=0;if(i&&n e.startCC)}(A,e)){var t=Math.min(A.endCC,e.endCC),n=wfe(A.fragments,t),r=wfe(e.fragments,t);if(n&&r)KCe.log("Aligning playlist at start of dicontinuity sequence ".concat(t)),kfe(n.start-r.start,e)}}function Mfe(e,A){if(e.hasProgramDateTime&&A.hasProgramDateTime){var t=e.fragments,n=A.fragments;if(t.length&&n.length){var r,i,o=Math.min(A.endCC,e.endCC);A.startCC g.end){var I=s>u;(s a.lastCurrentTime&&(a.lastCurrentTime=s),!a.loadingParts)){var h,C=Math.max(g.end,s),d=a.shouldLoadParts(a.getLevelDetails(),C);if(d)a.log(xf(h="LL-Part loading ON after seeking to ".concat(s.toFixed(2)," with buffer @")).call(h,C.toFixed(2))),a.loadingParts=d}a.hls.hasEnoughToStart||g.len||(a.log("setting startPosition to ".concat(s," because of seek before start")),a.nextLoadPosition=a.startPosition=s),a.tickImmediate()},a.onMediaEnded=function(){a.log("setting startPosition to 0 because media ended"),a.startPosition=a.lastCurrentTime=0,a.triggerEnded()},a.playlistType=o,a.hls=e,a.fragmentLoader=new kEe(e.config),a.keyLoader=r,a.fragmentTracker=n,a.config=e.config,a.decrypter=new wEe(e.config),a}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(DCe.ERROR,this.onError,this)}},{key:"doTick",value:function(){this.onTickEnd()}},{key:"onTickEnd",value:function(){}},{key:"startLoad",value:function(e){}},{key:"stopLoad",value:function(){if(this.state!==_fe){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);var e=this.fragCurrent;null!=e&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=_fe}}},{key:"startPositionValue",get:function(){var e=this.nextLoadPosition,A=this.startPosition;return-1===A&&e?e:A}},{key:"bufferingEnabled",get:function(){return this.buffering}},{key:"pauseBuffering",value:function(){this.buffering=!1}},{key:"resumeBuffering",value:function(){this.buffering=!0}},{key:"_streamEnded",value:function(e,A){var t=void 0!==this.config.timelineOffset,n=e.nextStart,r=n&&(!t||n 1||0===i.start)return}else{var a;if(e.end<=i.start&&!1===(null==(a=A.details)?void 0:a.live))return;if(e.start>i.end&&i.nextEvent)return}}}this.startFragRequested=!0,this._loadFragForPlayback(e,A,t)}},{key:"_loadFragForPlayback",value:function(e,A,t){var n=this;this._doFragLoad(e,A,t,(function(e){var A,t,r,i=e.frag;if(n.fragContextChanged(i))return n.warn(xf(A=xf(t=xf(r="".concat(i.type," sn: ")).call(r,i.sn)).call(t,e.part?" part: "+e.part.index:""," of ")).call(A,n.fragInfo(i,!1,e.part),") was dropped during download.")),void n.fragmentTracker.removeFragment(i);i.stats.chunkCount++,n._handleFragmentLoadProgress(e)})).then((function(e){if(e){var A=n.state,t=e.frag;if(n.fragContextChanged(t))(A===Ffe||!n.fragCurrent&&A===Ufe)&&(n.fragmentTracker.removeFragment(t),n.state=bfe);else{var r,i,o;if("payload"in e)n.log(xf(r=xf(i=xf(o="Loaded ".concat(t.type," sn: ")).call(o,t.sn," of ")).call(i,n.playlistLabel()," ")).call(r,t.level)),n.hls.trigger(DCe.FRAG_LOADED,e);n._handleFragmentLoadComplete(e)}}})).catch((function(A){n.state!==_fe&&n.state!==Yfe&&(n.warn("Frag error: ".concat((null==A?void 0:A.message)||A)),n.resetFragmentLoading(e))}))}},{key:"clearTrackerIfNeeded",value:function(e){var A,t=this.fragmentTracker;if(t.getState(e)===Ude){var n=e.type,r=this.getFwdBufferInfo(this.mediaBuffer,n),i=Math.max(e.duration,r?r.len:this.config.maxBufferLength),o=this.backtrackFragment;(1===(o?e.sn-o.sn:0)||this.reduceMaxBufferLength(i,e.duration))&&t.removeFragment(e)}else 0===(null==(A=this.mediaBuffer)?void 0:A.buffered.length)?t.removeAllFragments():t.hasParts(e.type)&&(t.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),t.getState(e)===Kde&&t.removeFragment(e))}},{key:"checkLiveUpdate",value:function(e){if(e.updated&&!e.live){var A=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:A,part:null,stats:A.stats,id:A.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)}},{key:"waitForLive",value:function(e){var A=e.details;return(null==A?void 0:A.live)&&"EVENT"!==A.type&&(this.levelLastLoaded!==e||A.expired)}},{key:"flushMainBuffer",value:function(e,A){if(e-A){var t={startOffset:e,endOffset:A,type:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null};this.hls.trigger(DCe.BUFFER_FLUSHING,t)}}},{key:"_loadInitSegment",value:function(e,A){var t=this;this._doFragLoad(e,A).then((function(e){var A=null==e?void 0:e.frag;if(!A||t.fragContextChanged(A)||!t.levels)throw new Error("init load aborted");return e})).then((function(e){var A=t.hls,n=e.frag,r=e.payload,i=n.decryptdata;if(r&&r.byteLength>0&&null!=i&&i.key&&i.iv&&PEe(i.method)){var o=self.performance.now();return t.decrypter.decrypt(new Uint8Array(r),i.key.buffer,i.iv.buffer,HEe(i.method)).catch((function(e){throw A.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:n}),e})).then((function(r){var i=self.performance.now();return A.trigger(DCe.FRAG_DECRYPTED,{frag:n,payload:r,stats:{tstart:o,tdecrypt:i}}),e.payload=r,t.completeInitSegmentLoad(e)}))}return t.completeInitSegmentLoad(e)})).catch((function(A){t.state!==_fe&&t.state!==Yfe&&(t.warn(A),t.resetFragmentLoading(e))}))}},{key:"completeInitSegmentLoad",value:function(e){if(!this.levels)throw new Error("init load aborted, missing levels");var A=e.frag.stats;this.state!==_fe&&(this.state=bfe),e.frag.data=new Uint8Array(e.payload),A.parsing.start=A.buffering.start=self.performance.now(),A.parsing.end=A.buffering.end=self.performance.now(),this.tick()}},{key:"fragContextChanged",value:function(e){var A=this.fragCurrent;return!e||!A||e.sn!==A.sn||e.level!==A.level}},{key:"fragBufferedComplete",value:function(e,A){var t,n,r,i,o=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(xf(t=xf(n=xf(r=xf(i="Buffered ".concat(e.type," sn: ")).call(i,e.sn)).call(r,A?" part: "+A.index:""," of ")).call(n,this.fragInfo(e,!1,A)," > buffer:")).call(t,o?Gfe(FEe.getBuffered(o)):"(detached)",")")),eEe(e)){var a;if(e.type!==MCe){var s=e.elementaryStreams;if(!jp(s).some((function(e){return!!s[e]})))return void(this.state=bfe)}var g=null==(a=this.levels)?void 0:a[e.level];null!=g&&g.fragmentError&&(this.log("Resetting level fragment error count of ".concat(g.fragmentError," on frag buffered")),g.fragmentError=0)}this.state=bfe}},{key:"_handleFragmentLoadComplete",value:function(e){var A=this.transmuxer;if(A){var t=e.frag,n=e.part,r=e.partsLoaded,i=!r||0===r.length||r.some((function(e){return!e})),o=new bEe(t.level,t.sn,t.stats.chunkCount+1,0,n?n.index:-1,!i);A.flush(o)}}},{key:"_handleFragmentLoadProgress",value:function(e){}},{key:"_doFragLoad",value:function(e,A){var t,n,r,i,o,a,s=this,g=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,c=arguments.length>3?arguments[3]:void 0;this.fragCurrent=e;var l=null==A?void 0:A.details;if(!this.levels||!l)throw new Error("frag load aborted, missing level".concat(l?"":" detail","s"));var u,I,h,C,d=null;!e.encrypted||null!=(a=e.decryptdata)&&a.key?!e.encrypted&&l.encryptedFragments.length&&this.keyLoader.loadClear(e,l.encryptedFragments):(this.log(xf(u=xf(I=xf(h=xf(C="Loading key for ".concat(e.sn," of [")).call(C,l.startSN,"-")).call(h,l.endSN,"], ")).call(I,this.playlistLabel()," ")).call(u,e.level)),this.state=Tfe,this.fragCurrent=e,d=this.keyLoader.load(e).then((function(e){if(!s.fragContextChanged(e.frag))return s.hls.trigger(DCe.KEY_LOADED,e),s.state===Tfe&&(s.state=bfe),e})),this.hls.trigger(DCe.KEY_LOADING,{frag:e}),null===this.fragCurrent&&(d=Op.reject(new Error("frag load aborted, context changed in KEY_LOADING"))));var E=this.fragPrevious;if(eEe(e)&&(!E||e.sn!==E.sn)){var f,B,Q=this.shouldLoadParts(A.details,e.end);if(Q!==this.loadingParts)this.log(xf(f=xf(B="LL-Part loading ".concat(Q?"ON":"OFF"," loading sn ")).call(B,null==E?void 0:E.sn,"->")).call(f,e.sn)),this.loadingParts=Q}if(g=Math.max(e.start,g||0),this.loadingParts&&eEe(e)){var p=l.partList;if(p&&c){g>e.end&&l.fragmentHint&&(e=l.fragmentHint);var v=this.getNextPart(p,e,g);if(v>-1){var y,m,D,w,R,k,S,M,G,_,b=p[v];return e=this.fragCurrent=b.fragment,this.log(xf(y=xf(m=xf(D=xf(w=xf(R=xf(k=xf(S=xf(M=xf(G="Loading ".concat(e.type," sn: ")).call(G,e.sn," part: ")).call(M,b.index," (")).call(S,v,"/")).call(k,p.length-1,") of ")).call(R,this.fragInfo(e,!1,b),") cc: ")).call(w,e.cc," [")).call(D,l.startSN,"-")).call(m,l.endSN,"], target: ")).call(y,tD(g.toFixed(3)))),this.nextLoadPosition=b.start+b.duration,this.state=Ffe,_=d?d.then((function(t){return!t||s.fragContextChanged(t.frag)?null:s.doFragPartsLoad(e,b,A,c)})).catch((function(e){return s.handleFragLoadError(e)})):this.doFragPartsLoad(e,b,A,c).catch((function(e){return s.handleFragLoadError(e)})),this.hls.trigger(DCe.FRAG_LOADING,{frag:e,part:b,targetBufferTime:g}),null===this.fragCurrent?Op.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):_}if(!e.url||this.loadedEndOfParts(p,g))return Op.resolve(null)}}if(eEe(e)&&this.loadingParts)this.log("LL-Part loading OFF after next part miss @".concat(g.toFixed(2))),this.loadingParts=!1;else if(!e.url)return Op.resolve(null);this.log(xf(t=xf(n=xf(r=xf(i=xf(o="Loading ".concat(e.type," sn: ")).call(o,e.sn," of ")).call(i,this.fragInfo(e,!1),") cc: ")).call(r,e.cc," ")).call(n,l?"["+l.startSN+"-"+l.endSN+"]":"",", target: ")).call(t,tD(g.toFixed(3)))),QCe(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=Ffe;var T,F=this.config.progressive;return T=F&&d?d.then((function(A){return!A||s.fragContextChanged(null==A?void 0:A.frag)?null:s.fragmentLoader.load(e,c)})).catch((function(e){return s.handleFragLoadError(e)})):Op.all([this.fragmentLoader.load(e,F?c:void 0),d]).then((function(e){var A=rF(e,1)[0];return!F&&A&&c&&c(A),A})).catch((function(e){return s.handleFragLoadError(e)})),this.hls.trigger(DCe.FRAG_LOADING,{frag:e,targetBufferTime:g}),null===this.fragCurrent?Op.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):T}},{key:"doFragPartsLoad",value:function(e,A,t,n){var r=this;return new Op((function(i,o){var a,s=[],g=null==(a=t.details)?void 0:a.partList;!function A(a){r.fragmentLoader.loadPart(e,a,n).then((function(n){s[a.index]=n;var o=n.part;r.hls.trigger(DCe.FRAG_LOADED,n);var c=yfe(t.details,e.sn,a.index+1)||mfe(g,e.sn,a.index+1);if(!c)return i({frag:e,part:o,partsLoaded:s});A(c)})).catch(o)}(A)}))}},{key:"handleFragLoadError",value:function(e){if("data"in e){var A=e.data;e.data&&A.details===mCe.INTERNAL_ABORTED?this.handleFragLoadAborted(A.frag,A.part):this.hls.trigger(DCe.ERROR,A)}else this.hls.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}},{key:"_handleTransmuxerFlush",value:function(e){var A=this.getCurrentContext(e);if(A&&this.state===Ufe){var t=A.frag,n=A.part,r=A.level,i=self.performance.now();t.stats.parsing.end=i,n&&(n.stats.parsing.end=i);var o,a=this.getLevelDetails(),s=a&&t.sn>a.endSN||this.shouldLoadParts(a,t.end);if(s!==this.loadingParts)this.log(xf(o="LL-Part loading ".concat(s?"ON":"OFF"," after parsing segment ending @")).call(o,t.end.toFixed(2))),this.loadingParts=s;this.updateLevelTiming(t,n,r,e.partial)}else this.fragCurrent||this.state===_fe||this.state===Yfe||(this.state=bfe)}},{key:"shouldLoadParts",value:function(e,A){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(null!=e&&e.partList){var t,n,r=e.partList[0];if(A>=r.end+((null==(t=e.fragmentHint)?void 0:t.duration)||0))if((this.hls.hasEnoughToStart?(null==(n=this.media)?void 0:n.currentTime)||this.lastCurrentTime:this.getLoadPosition())>r.start-r.fragment.duration)return!0}}return!1}},{key:"getCurrentContext",value:function(e){var A,t,n=this.levels,r=this.fragCurrent,i=e.level,o=e.sn,a=e.part;if(null==n||!n[i])return this.warn(xf(A=xf(t="Levels object was unset while buffering fragment ".concat(o," of ")).call(t,this.playlistLabel()," ")).call(A,i,". The current chunk will not be buffered.")),null;var s=n[i],g=s.details,c=a>-1?yfe(g,o,a):null,l=c?c.fragment:function(e,A,t){if(!e)return null;var n=e.fragments[A-e.startSN];return n||((n=e.fragmentHint)&&n.sn===A?n:A i&&this.flushMainBuffer(o,e.start)}else this.flushMainBuffer(0,e.start)}},{key:"getFwdBufferInfo",value:function(e,A){var t,n=this.getLoadPosition();if(!QCe(n))return null;var r=this.lastCurrentTime>n||null!=(t=this.media)&&t.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,n,A,r)}},{key:"getFwdBufferInfoAtPos",value:function(e,A,t,n){var r=FEe.bufferInfo(e,A,n);if(0===r.len&&void 0!==r.nextStart){var i=this.fragmentTracker.getBufferedFrag(A,t);if(i&&(r.nextStart<=i.end||i.gap))return FEe.bufferInfo(e,A,Math.max(r.nextStart,n))}return r}},{key:"getMaxBufferLength",value:function(e){var A,t=this.config;return A=e?Math.max(8*t.maxBufferSize/e,t.maxBufferLength):t.maxBufferLength,Math.min(A,t.maxMaxBufferLength)}},{key:"reduceMaxBufferLength",value:function(e,A){var t=this.config,n=Math.max(Math.min(e-A,t.maxBufferLength),A),r=Math.max(e-3*A,t.maxMaxBufferLength/2,n);return r>=n&&(t.maxMaxBufferLength=r,this.warn("Reduce max buffer length to ".concat(r,"s")),!0)}},{key:"getAppendedFrag",value:function(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:kCe,n=null==(A=this.fragmentTracker)?void 0:A.getAppendedFrag(e,t);return n&&"fragment"in n?n.fragment:n}},{key:"getNextFragment",value:function(e,A){var t=A.fragments,n=t.length;if(!n)return null;var r=this.config,i=t[0].start,o=r.lowLatencyMode&&!!A.partList,a=null;if(A.live){var s,g=r.initialLiveManifestSize;if(n A}},{key:"getNextFragmentLoopLoading",value:function(e,A,t,n,r){var i=null;if(e.gap&&(i=this.getNextFragment(this.nextLoadPosition,A))&&!i.gap&&t.nextStart){var o=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,t.nextStart,n,0);if(null!==o&&t.len+o.len>=r){var a,s=i.sn;if(this.loopSn!==s)this.log(xf(a='buffer full after gaps in "'.concat(n,'" playlist starting at sn: ')).call(a,s)),this.loopSn=s;return null}}return this.loopSn=void 0,i}},{key:"mapToInitFragWhenRequired",value:function(e){return null==e||!e.initSegment||null!=e&&e.initSegment.data||this.bitrateTest?e:e.initSegment}},{key:"getNextPart",value:function(e,A,t){for(var n=-1,r=!1,i=!0,o=0,a=e.length;o-1&&t t.start&&t.loaded}},{key:"getInitialLiveFragment",value:function(e,A){var t=this.fragPrevious,n=null;if(t){if(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: ".concat(t.programDateTime)),n=function(e,A,t){if(null===A||!Array.isArray(e)||!e.length||!QCe(A))return null;if(A<(e[0].programDateTime||0))return null;if(A>=(e[e.length-1].endProgramDateTime||0))return null;t=t||0;for(var n=0;n =e.startSN&&r<=e.endSN){var i=A[r-e.startSN];t.cc===i.cc&&(n=i,this.log("Live playlist, switching playlist, load frag with next SN: ".concat(n.sn)))}n||(n=vde(A,t.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: ".concat(n.sn))}}else{var o=this.hls.liveSyncPosition;null!==o&&(n=this.getFragmentAtPosition(o,this.bitrateTest?e.fragmentEnd:e.edge,e))}return n}},{key:"getFragmentAtPosition",value:function(e,A,t){var n,r,i=this.config,o=this.fragPrevious,a=t.fragments,s=t.endSN,g=t.fragmentHint,c=i.maxFragLookUpTolerance,l=t.partList,u=!!(this.loadingParts&&null!=l&&l.length&&g);(u&&g&&!this.bitrateTest&&l[l.length-1].fragment.sn===g.sn&&(a=xf(a).call(a,g),s=g.sn),eA-c||null!=(r=this.media)&&r.paused||!this.startFragRequested?0:c):n=a[a.length-1];if(n){var I=n.sn-t.startSN,h=this.fragmentTracker.getState(n);if((h===xde||h===Kde&&n.gap)&&(o=n),o&&n.sn===o.sn&&(!u||l[0].fragment.sn>n.sn||!t.live&&!u))if(o&&n.level===o.level){var C=a[I+1];n=n.sn ")).call(s,e.startSN," fragments: ")).call(a,n)),c}return r}},{key:"waitForCdnTuneIn",value:function(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)}},{key:"setStartPosition",value:function(e,A){var t=this.startPosition;if(t=0&&(t=this.nextLoadPosition),t}},{key:"handleFragLoadAborted",value:function(e,A){var t,n,r;this.transmuxer&&e.type===this.playlistType&&eEe(e)&&e.stats.aborted&&(this.warn(xf(t=xf(n=xf(r="Fragment ".concat(e.sn)).call(r,A?" part "+A.index:""," of ")).call(n,this.playlistLabel()," ")).call(t,e.level," was aborted")),this.resetFragmentLoading(e))}},{key:"resetFragmentLoading",value:function(e){this.fragCurrent&&(this.fragContextChanged(e)||this.state===Nfe)||(this.state=bfe)}},{key:"onFragmentOrKeyLoadError",value:function(e,A){if(A.chunkMeta&&!A.frag){var t=this.getCurrentContext(A.chunkMeta);t&&(A.frag=t.frag)}var n=A.frag;if(n&&n.type===e&&this.levels)if(this.fragContextChanged(n)){var r,i;this.warn(xf(r="Frag load error must match current frag to retry ".concat(n.url," > ")).call(r,null==(i=this.fragCurrent)?void 0:i.url))}else{var o=A.details===mCe.FRAG_GAP;o&&this.fragmentTracker.fragBuffered(n,!0);var a=A.errorAction,s=a||{},g=s.action,c=ux(s),l=s.retryCount,u=void 0===l?0:l,I=s.retryConfig,h=!!a&&!!I,C=h&&g===Gde,d=h&&!a.resolved&&c===bde;if(!C&&d&&eEe(n)&&!n.endList)this.resetFragmentErrors(e),this.treatAsGap(n),a.resolved=!0;else if((C||d)&&u.5;r&&this.reduceMaxBufferLength(n.len,(null==A?void 0:A.duration)||10);var i=!r;return i&&this.warn("Buffer full error while media.currentTime is not buffered, flush ".concat(t," buffer")),A&&(this.fragmentTracker.removeFragment(A),this.nextLoadPosition=A.start),this.resetLoadingState(),i}return!1}},{key:"resetFragmentErrors",value:function(e){e===SCe&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==_fe&&(this.state=bfe)}},{key:"afterBufferFlushed",value:function(e,A,t){if(e){var n=FEe.getBuffered(e);this.fragmentTracker.detectEvictedFragments(A,n,t),this.state===xfe&&this.resetLoadingState()}}},{key:"resetLoadingState",value:function(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==_fe&&(this.state=bfe)}},{key:"resetStartWhenNotLoaded",value:function(e){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;var A=e?e.details:null;null!=A&&A.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(A,A.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}},{key:"resetWhenMissingContext",value:function(e){var A,t;this.warn(xf(A=xf(t="The loading context changed while buffering fragment ".concat(e.sn," of ")).call(t,this.playlistLabel()," ")).call(A,e.level,". This chunk will not be buffered.")),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}},{key:"removeUnbufferedFrags",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}},{key:"updateLevelTiming",value:function(e,A,t,n){var r,i,o,a,s,g=this,c=t.details;if(c){if(!wF(r=jp(e.elementaryStreams)).call(r,(function(A,r){var i=e.elementaryStreams[r];if(i){var o,a,s=i.endPTS-i.startPTS;if(s<=0)return g.warn(xf(o=xf(a="Could not parse fragment ".concat(e.sn," ")).call(a,r," duration reliably (")).call(o,s,")")),A||!1;var l=n?0:Bfe(c,e,i.startPTS,i.endPTS,i.startDTS,i.endDTS);return g.hls.trigger(DCe.LEVEL_PTS_UPDATED,{details:c,level:t,drift:l,type:r,frag:e,start:i.startPTS,end:i.endPTS}),!0}return A}),!1)&&null===(null==(s=this.transmuxer)?void 0:s.error)){var l,u,I,h,C=new Error(xf(l=xf(u="Found no media in fragment ".concat(e.sn," of ")).call(u,this.playlistLabel()," ")).call(l,e.level," resetting transmuxer to fallback to playlist timing"));if(0===t.fragmentError&&this.treatAsGap(e,t),this.warn(C.message),this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!1,error:C,frag:e,reason:xf(I=xf(h="Found no media in msn ".concat(e.sn," of ")).call(h,this.playlistLabel(),' "')).call(I,t.url,'"')}),!this.hls)return;this.resetTransmuxer()}this.state=Kfe,this.log(xf(i=xf(o=xf(a="Parsed ".concat(e.type," sn: ")).call(a,e.sn)).call(o,A?" part: "+A.index:""," of ")).call(i,this.fragInfo(e,!1,A),")")),this.hls.trigger(DCe.FRAG_PARSED,{frag:e,part:A})}else this.warn("level.details undefined")}},{key:"playlistLabel",value:function(){return this.playlistType===kCe?"level":"track"}},{key:"fragInfo",value:function(e){var A,t,n,r,i,o,a,s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],g=arguments.length>2?arguments[2]:void 0;return xf(A=xf(t=xf(n=xf(r=xf(i="".concat(this.playlistLabel()," ")).call(i,e.level," (")).call(r,g?"part":"frag",":[")).call(n,(null!=(o=s&&!g?e.startPTS:(g||e).start)?o:NaN).toFixed(3),"-")).call(t,(null!=(a=s&&!g?e.endPTS:(g||e).end)?a:NaN).toFixed(3),"]")).call(A,g&&"main"===e.type?"INDEPENDENT="+(g.independent?"YES":"NO"):"")}},{key:"treatAsGap",value:function(e,A){A&&A.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}},{key:"resetTransmuxer",value:function(){var e;null==(e=this.transmuxer)||e.reset()}},{key:"recoverWorkerError",value:function(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}},{key:"state",get:function(){return this._state},set:function(e){var A,t=this._state;t!==e&&(this._state=e,this.log(xf(A="".concat(t,"->")).call(A,e)))}}]),t}(_Ee),Ofe=function(){function e(){GE(this,e),this.chunks=[],this.dataLength=0}return NE(e,[{key:"push",value:function(e){this.chunks.push(e),this.dataLength+=e.length}},{key:"flush",value:function(){var e,A=this.chunks,t=this.dataLength;return A.length?(e=1===A.length?A[0]:function(e,A){for(var t=new Uint8Array(A),n=0,r=0;r 0)return e.subarray(t,t+n)}function eBe(e,A){return 255===e[A]&&240==(246&e[A+1])}function ABe(e,A){return 1&e[A+1]?7:9}function tBe(e,A){return(3&e[A+3])<<11|e[A+4]<<3|(224&e[A+5])>>>5}function nBe(e,A){return A+1 =e.length)return!1;var n=tBe(e,A);if(n<=t)return!1;var r=A+n;return r===e.length||nBe(e,r)}return!1}function iBe(e,A,t,n,r){if(!e.samplerate){var i=function(e,A,t,n){var r,i,o,a,s,g=A[t+2],c=g>>2&15;if(!(c>12)){var l=1+(g>>6&3),u=A[t+3]>>6&3|(1&g)<<2,I="mp4a.40."+l,h=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][c],C=c;5!==l&&29!==l||(C-=3);var d=[l<<3|(14&C)>>1,(1&C)<<7|u<<3];return KCe.log(xf(r=xf(i=xf(o=xf(a=xf(s="manifest codec:".concat(n,", parsed codec:")).call(s,I,", channels:")).call(a,u,", rate:")).call(o,h," (ADTS object type:")).call(i,l," sampling index:")).call(r,c,")")),{config:d,samplerate:h,channelCount:u,codec:I,parsedCodec:I,manifestCodec:n}}var E=new Error("invalid ADTS sampling index:".concat(c));e.emit(DCe.ERROR,DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!0,error:E,reason:E.message})}(A,t,n,r);if(!i)return;TCe(e,i)}}function oBe(e){return 9216e4/e}function aBe(e,A,t,n,r){var i,o=n+r*oBe(e.samplerate),a=function(e,A){var t=ABe(e,A);if(A+t<=e.length){var n=tBe(e,A)-t;if(n>0)return{headerLength:t,frameLength:n}}}(A,t);if(a){var s=a.frameLength,g=a.headerLength,c=g+s,l=Math.max(0,t+c-A.length);l?(i=new Uint8Array(c-g)).set(A.subarray(t+g,A.length),0):i=A.subarray(t+g,t+c);var u={unit:i,pts:o};return l||e.samples.push(u),{sample:u,length:c,missing:l}}var I=A.length-t;return(i=new Uint8Array(I)).set(A.subarray(t,A.length),0),{sample:{unit:i,pts:o},length:I,missing:-1}}function sBe(e,A){return Wfe(e,A)&&Zfe(e,A+6)+10<=e.length-A}function gBe(e){return function(e,A,t,n){var r=(o=e,o instanceof ArrayBuffer?o:o.buffer),i=1;var o;"BYTES_PER_ELEMENT"in n&&(i=n.BYTES_PER_ELEMENT);var a=function(e){return e&&e.buffer instanceof ArrayBuffer&&void 0!==e.byteLength&&void 0!==e.byteOffset}(e)?e.byteOffset:0,s=(a+e.byteLength)/i,g=(a+A)/i,c=Math.floor(Math.max(0,Math.min(g,s))),l=Math.floor(Math.min(c+Math.max(t,0),s));return new n(r,c,l-c)}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,Uint8Array)}function cBe(e,A){if(e<0)return-cBe(-e,A);var t=Math.pow(10,A);if(Math.abs(e*t%1-.5) >6&1&&(A+=hBe);for(var r=(A+=hBe)+n;A+CBe 0&&void 0!==arguments[0]?arguments[0]:"",id:-1,pid:-1,inputTimeScale:arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4,sequenceNumber:-1,samples:[],dropped:0}}var pBe=function(){function e(){GE(this,e),this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}return NE(e,[{key:"resetInitSegment",value:function(e,A,t,n){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}},{key:"resetTimeStamp",value:function(e){this.initPTS=e,this.resetContiguity()}},{key:"resetContiguity",value:function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}},{key:"canParse",value:function(e,A){return!1}},{key:"appendFrame",value:function(e,A,t){}},{key:"demux",value:function(e,A){this.cachedData&&(e=BEe(this.cachedData,e),this.cachedData=null);var t,n=$fe(e,0),r=n?n.length:0,i=this._audioTrack,o=this._id3Track,a=n?fBe(n):void 0,s=e.length;for((null===this.basePTS||0===this.frameIndex&&QCe(a))&&(this.basePTS=vBe(a,A,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),n&&n.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:BBe.audioId3,duration:Number.POSITIVE_INFINITY});r A.length)){var i=SBe(A,t);if(i&&t+i.frameLength<=A.length){var o=n+r*(9e4*i.samplesPerFrame/i.sampleRate),a={unit:A.subarray(t,t+i.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=i.channelCount,e.samplerate=i.sampleRate,e.samples.push(a),{sample:a,length:i.frameLength,missing:0}}}}function SBe(e,A){var t=e[A+1]>>3&3,n=e[A+1]>>1&3,r=e[A+2]>>4&15,i=e[A+2]>>2&3;if(1!==t&&0!==r&&15!==r&&3!==i){var o=e[A+2]>>1&1,a=e[A+3]>>6,s=1e3*mBe[14*(3===t?3-n:3===n?3:4)+r-1],g=DBe[3*(3===t?0:2===t?1:2)+i],c=3===a?1:2,l=wBe[t][n],u=RBe[n],I=8*l*u,h=Math.floor(l*s/g+o)*u;if(null===yBe){var C=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);yBe=C?Uv(C[1]):0}return!!yBe&&yBe<=87&&2===n&&s>=224e3&&0===a&&(e[A+3]=128|e[A+3]),{sampleRate:g,channelCount:c,frameLength:h,samplesPerFrame:I}}}function MBe(e,A){return 255===e[A]&&224==(224&e[A+1])&&0!=(6&e[A+1])}function GBe(e,A){return A+10;){o[0]=e[A];var a=Math.min(n,8),s=8-a;i[0]=4278190080>>>24+s< >s,t=t?t<A.length)return-1;if(11!==A[t]||119!==A[t+1])return-1;var i=A[t+4]>>6;if(i>=3)return-1;var o=[48e3,44100,32e3][i],a=63&A[t+4],s=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*a+i];if(t+s>A.length)return-1;var g=A[t+6]>>5,c=0;2===g?c+=2:(1&g&&1!==g&&(c+=2),4&g&&(c+=2));var l=(A[t+6]<<8|A[t+7])>>12-c&1,u=[2,1,2,3,3,4,4,5][g]+l,I=A[t+5]>>3,h=7&A[t+5],C=new Uint8Array([i<<6|I<<1|h>>2,(3&h)<<6|g<<3|l<<2|a>>4,a<<4&224]),d=n+r*(1536/o*9e4),E=A.subarray(t,t+s);return e.config=C,e.channelCount=u,e.samplerate=o,e.samples.push({unit:E,pts:d}),s}var LBe=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"resetInitSegment",value:function(e,A,n,r){MF(Pk(t.prototype),"resetInitSegment",this).call(this,e,A,n,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:A,duration:r,inputTimeScale:9e4,dropped:0}}},{key:"canParse",value:function(e,A){return function(e,A){return MBe(e,A)&&4<=e.length-A}(e,A)}},{key:"appendFrame",value:function(e,A,t){if(null!==this.basePTS)return kBe(e,A,t,this.basePTS,this.frameIndex)}}],[{key:"probe",value:function(e){if(!e)return!1;var A=$fe(e,0),t=(null==A?void 0:A.length)||0;if(A&&11===e[t]&&119===e[t+1]&&void 0!==fBe(A)&&TBe(e,t)<=16)return!1;for(var n=e.length;t8&&109===e[t+4]&&111===e[t+5]&&111===e[t+6]&&102===e[t+7])return!0;t=n>1?t+n:A}return!1}(e)}}]),e}();function xBe(e,A){return QCe(e.presentationTime)?e.presentationTime/e.timeScale:A+e.presentationTimeDelta/e.timeScale}var YBe=function(){function e(A,t,n){GE(this,e),this.keyData=void 0,this.decrypter=void 0,this.keyData=n,this.decrypter=new wEe(t,{removePKCS7Padding:!1})}return NE(e,[{key:"decryptBuffer",value:function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,Yde)}},{key:"decryptAacSample",value:function(e,A,t){var n,r=this,i=e[A].unit;if(!(i.length<=16)){var o=i.subarray(16,i.length-i.length%16),a=Xp(n=o.buffer).call(n,o.byteOffset,o.byteOffset+o.length);this.decryptBuffer(a).then((function(n){var o=new Uint8Array(n);i.set(o,16),r.decrypter.isSync()||r.decryptAacSamples(e,A+1,t)}))}}},{key:"decryptAacSamples",value:function(e,A,t){for(;;A++){if(A>=e.length)return void t();if(!(e[A].unit.length<32)&&(this.decryptAacSample(e,A,t),!this.decrypter.isSync()))return}}},{key:"getAvcEncryptedData",value:function(e){for(var A=16*Math.floor((e.length-48)/160)+16,t=new Int8Array(A),n=0,r=32;r =e.length)return void n();for(var r=e[A].units;!(t>=r.length);t++){var i=r[t];if(!(i.data.length<=48||1!==i.type&&5!==i.type||(this.decryptAvcSample(e,A,t,n,i),this.decrypter.isSync())))return}}}}]),e}(),PBe=function(){function e(){GE(this,e),this.VideoSample=null}return NE(e,[{key:"createVideoSample",value:function(e,A,t){return{key:e,frame:!1,pts:A,dts:t,units:[],length:0}}},{key:"getLastNalUnit",value:function(e){var A,t,n=this.VideoSample;if(n&&0!==n.units.length||(n=e[e.length-1]),null!=(A=n)&&A.units){var r=n.units;t=r[r.length-1]}return t}},{key:"pushAccessUnit",value:function(e,A){if(e.units.length&&e.frame){if(void 0===e.pts){var t=A.samples,n=t.length;if(!n)return void A.dropped++;var r=t[n-1];e.pts=r.pts,e.dts=r.dts}A.samples.push(e)}}},{key:"parseNALu",value:function(e,A,t){var n,r,i=A.byteLength,o=e.naluState||0,a=o,s=[],g=0,c=-1,l=0;for(-1===o&&(c=0,l=this.getNALuType(A,0),o=0,g=1);g=0){var u={data:A.subarray(c,r),type:l};s.push(u)}else{var I=this.getLastNalUnit(e.samples);I&&(a&&g<=4-a&&I.state&&(I.data=I.data.subarray(0,I.data.byteLength-a)),r>0&&(I.data=BEe(I.data,A.subarray(0,r)),I.state=0))}g=0&&o>=0){var h={data:A.subarray(c,i),type:l,state:o};s.push(h)}if(0===s.length){var C=this.getLastNalUnit(e.samples);C&&(C.data=BEe(C.data,A))}return e.naluState=o,s}}]),e}(),HBe=function(){function e(A){GE(this,e),this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=A,this.bytesAvailable=A.byteLength,this.word=0,this.bitsAvailable=0}return NE(e,[{key:"loadWord",value:function(){var e=this.data,A=this.bytesAvailable,t=e.byteLength-A,n=new Uint8Array(4),r=Math.min(4,A);if(0===r)throw new Error("no bytes available");n.set(e.subarray(t,t+r)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}},{key:"skipBits",value:function(e){var A;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(A=e>>3)<<3,this.bytesAvailable-=A,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}},{key:"readBits",value:function(e){var A=Math.min(this.bitsAvailable,e),t=this.word>>>32-A;if(e>32&&KCe.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=A,this.bitsAvailable>0)this.word<<=A;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return(A=e-A)>0&&this.bitsAvailable?t<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBoolean",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"readUShort",value:function(){return this.readBits(16)}},{key:"readUInt",value:function(){return this.readBits(32)}}]),e}(),JBe=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"parsePES",value:function(e,A,t,n){var r,i=this,o=this.parseNALu(e,t.data,n),a=this.VideoSample,s=!1;t.data=null,a&&o.length&&!e.audFound&&(this.pushAccessUnit(a,e),a=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts)),o.forEach((function(n){var o,g;switch(n.type){case 1:var c=!1;r=!0;var l,u=n.data;if(s&&u.length>4){var I=i.readSliceType(u);2!==I&&4!==I&&7!==I&&9!==I||(c=!0)}if(c)null!=(l=a)&&l.frame&&!a.key&&(i.pushAccessUnit(a,e),a=i.VideoSample=null);a||(a=i.VideoSample=i.createVideoSample(!0,t.pts,t.dts)),a.frame=!0,a.key=c;break;case 5:r=!0,null!=(o=a)&&o.frame&&!a.key&&(i.pushAccessUnit(a,e),a=i.VideoSample=null),a||(a=i.VideoSample=i.createVideoSample(!0,t.pts,t.dts)),a.key=!0,a.frame=!0;break;case 6:r=!0,vEe(n.data,1,t.pts,A.samples);break;case 7:var h,C;r=!0,s=!0;var d=n.data,E=i.readSPS(d);if(!e.sps||e.width!==E.width||e.height!==E.height||(null==(h=e.pixelRatio)?void 0:h[0])!==E.pixelRatio[0]||(null==(C=e.pixelRatio)?void 0:C[1])!==E.pixelRatio[1]){e.width=E.width,e.height=E.height,e.pixelRatio=E.pixelRatio,e.sps=[d];for(var f=d.subarray(1,4),B="avc1.",Q=0;Q<3;Q++){var p=f[Q].toString(16);p.length<2&&(p="0"+p),B+=p}e.codec=B}break;case 8:r=!0,e.pps=[n.data];break;case 9:r=!0,e.audFound=!0,null!=(g=a)&&g.frame&&(i.pushAccessUnit(a,e),a=null),a||(a=i.VideoSample=i.createVideoSample(!1,t.pts,t.dts));break;case 12:r=!0;break;default:r=!1}a&&r&&a.units.push(n)})),n&&a&&(this.pushAccessUnit(a,e),this.VideoSample=null)}},{key:"getNALuType",value:function(e,A){return 31&e[A]}},{key:"readSliceType",value:function(e){var A=new HBe(e);return A.readUByte(),A.readUEG(),A.readUEG()}},{key:"skipScalingList",value:function(e,A){for(var t=8,n=8,r=0;r >>1}},{key:"ebsp2rbsp",value:function(e){for(var A=new Uint8Array(e.byteLength),t=0,n=0;n =2&&3===e[n]&&0===e[n-1]&&0===e[n-2]||(A[t]=e[n],t++);return new Uint8Array(A.buffer,0,t)}},{key:"pushAccessUnit",value:function(e,A){MF(Pk(t.prototype),"pushAccessUnit",this).call(this,e,A),this.initVPS&&(this.initVPS=null)}},{key:"readVPS",value:function(e){var A=new HBe(e);return A.readUByte(),A.readUByte(),A.readBits(4),A.skipBits(2),A.readBits(6),{numTemporalLayers:A.readBits(3)+1,temporalIdNested:A.readBoolean()}}},{key:"readSPS",value:function(e){var A,t,n,r,i=new HBe(this.ebsp2rbsp(e));i.readUByte(),i.readUByte(),i.readBits(4);var o=i.readBits(3);i.readBoolean();for(var a=i.readBits(2),s=i.readBoolean(),g=i.readBits(5),c=i.readUByte(),l=i.readUByte(),u=i.readUByte(),I=i.readUByte(),h=i.readUByte(),C=i.readUByte(),d=i.readUByte(),E=i.readUByte(),f=i.readUByte(),B=i.readUByte(),Q=i.readUByte(),p=[],v=[],y=0;y 0)for(var m=o;m<8;m++)i.readBits(2);for(var D=0;D 1&&i.readEG();for(var Y=0;Y