rx-player 4.2.0-dev.2024090500 → 4.2.0-dev.2024091000
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -2
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/compat/browser_detection.d.ts +3 -1
- package/dist/commonjs/compat/browser_detection.d.ts.map +1 -1
- package/dist/commonjs/compat/browser_detection.js +7 -1
- package/dist/commonjs/compat/can_reuse_media_keys.d.ts +4 -0
- package/dist/commonjs/compat/can_reuse_media_keys.d.ts.map +1 -1
- package/dist/commonjs/compat/can_reuse_media_keys.js +5 -1
- package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts +12 -0
- package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
- package/dist/commonjs/core/cmcd/cmcd_data_builder.js +27 -1
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +24 -0
- package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/segment/segment_queue.d.ts.map +1 -1
- package/dist/commonjs/core/fetchers/segment/segment_queue.js +8 -7
- package/dist/commonjs/core/main/worker/worker_main.js +4 -0
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +2 -2
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +2 -2
- package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.js +2 -2
- package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +2 -2
- package/dist/commonjs/parsers/manifest/smooth/create_parser.js +2 -2
- package/dist/commonjs/transports/dash/construct_segment_url.js +2 -2
- package/dist/commonjs/transports/smooth/utils.js +2 -2
- package/dist/commonjs/utils/logger.d.ts.map +1 -1
- package/dist/commonjs/utils/logger.js +6 -7
- package/dist/commonjs/utils/{resolve_url.d.ts → url-utils.d.ts} +15 -4
- package/dist/commonjs/utils/url-utils.d.ts.map +1 -0
- package/dist/commonjs/utils/{resolve_url.js → url-utils.js} +71 -2
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/compat/browser_detection.d.ts +3 -1
- package/dist/es2017/compat/browser_detection.d.ts.map +1 -1
- package/dist/es2017/compat/browser_detection.js +10 -1
- package/dist/es2017/compat/can_reuse_media_keys.d.ts +4 -0
- package/dist/es2017/compat/can_reuse_media_keys.d.ts.map +1 -1
- package/dist/es2017/compat/can_reuse_media_keys.js +6 -2
- package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts +12 -0
- package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
- package/dist/es2017/core/cmcd/cmcd_data_builder.js +27 -1
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +24 -0
- package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/segment/segment_queue.d.ts.map +1 -1
- package/dist/es2017/core/fetchers/segment/segment_queue.js +8 -7
- package/dist/es2017/core/main/worker/worker_main.js +4 -0
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +2 -2
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +1 -1
- package/dist/es2017/parsers/manifest/dash/common/resolve_base_urls.js +1 -1
- package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.js +1 -1
- package/dist/es2017/transports/dash/construct_segment_url.js +1 -1
- package/dist/es2017/transports/smooth/utils.js +1 -1
- package/dist/es2017/utils/logger.d.ts.map +1 -1
- package/dist/es2017/utils/logger.js +6 -7
- package/dist/es2017/utils/{resolve_url.d.ts → url-utils.d.ts} +15 -4
- package/dist/es2017/utils/url-utils.d.ts.map +1 -0
- package/dist/es2017/utils/{resolve_url.js → url-utils.js} +71 -3
- package/dist/rx-player.js +253 -181
- package/dist/rx-player.min.js +18 -18
- package/dist/worker.js +8 -8
- package/package.json +5 -12
- package/src/README.md +7 -7
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +24 -1
- package/src/compat/browser_detection.ts +13 -4
- package/src/compat/can_reuse_media_keys.ts +6 -2
- package/src/core/cmcd/cmcd_data_builder.ts +68 -2
- package/src/core/fetchers/segment/segment_fetcher.ts +24 -0
- package/src/core/fetchers/segment/segment_queue.ts +11 -9
- package/src/core/main/worker/worker_main.ts +4 -0
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +8 -2
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/parsers/manifest/dash/common/parse_mpd.ts +1 -1
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +1 -1
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +1 -1
- package/src/parsers/manifest/smooth/create_parser.ts +1 -1
- package/src/transports/dash/construct_segment_url.ts +1 -1
- package/src/transports/smooth/utils.ts +1 -1
- package/src/utils/__tests__/{resolve_url.test.ts → url-utils.test.ts} +148 -1
- package/src/utils/logger.ts +6 -7
- package/src/utils/{resolve_url.ts → url-utils.ts} +83 -5
- package/dist/commonjs/utils/resolve_url.d.ts.map +0 -1
- package/dist/es2017/utils/resolve_url.d.ts.map +0 -1
package/dist/rx-player.min.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
"use strict";(()=>{var tp=Object.defineProperty,np=Object.defineProperties;var rp=Object.getOwnPropertyDescriptors;var Al=Object.getOwnPropertySymbols;var ip=Object.prototype.hasOwnProperty,op=Object.prototype.propertyIsEnumerable;var xl=(n,e,t)=>e in n?tp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ie=(n,e)=>{for(var t in e||(e={}))ip.call(e,t)&&xl(n,t,e[t]);if(Al)for(var t of Al(e))op.call(e,t)&&xl(n,t,e[t]);return n},de=(n,e)=>np(n,rp(e));var h={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var S={CURRENT_LEVEL:"NONE"};function xn(){return typeof __RX_PLAYER_DEBUG_MODE__=="boolean"&&__RX_PLAYER_DEBUG_MODE__}function _(n){return n==null}var oe=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(_(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(_(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(h.CURRENT_ENV===h.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Ft=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var dp=typeof window=="undefined"&&!Ft,Kt=dp;var uo;Ft?uo=self:Kt?uo=global:uo=window;var te=uo;var _t=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function wa(){if(!Kt&&!_(te.WebKitSourceBuffer)&&te.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=te.WebKitSourceBuffer.prototype;for(let t in oe.prototype)oe.prototype.hasOwnProperty(t)&&(e[t]=oe.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){_t(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend",new Event("updateend"))})},e.appendBuffer=function(t){var r,i;if(this.updating)throw new Error("updating");this.trigger("updatestart",new Event("updatestart")),this.updating=!0;try{this.append(t)}catch(o){(r=this._emitUpdate)==null||r.call(this,"error",o);return}(i=this._emitUpdate)==null||i.call(this,"update",new Event("update"))}}}function he(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}function X(){}var lo=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){h.CURRENT_ENV===h.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if((t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),(t==null?void 0:t.emitCurrentValue)===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}(t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return X;let r=()=>{let a=he(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function on(n,e,t){let r=new lo(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var G=lo;var wl=new G(0);var up=typeof performance!="undefined"?()=>performance.now()+wl.getValue():()=>Date.now()+wl.getValue(),K=up;var lp="NONE",or=class extends oe{constructor(){super(),this.error=X,this.warn=X,this.info=X,this.debug=X,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentFormat="standard",this._currentLevel=lp}setLevel(e,t,r){let i,o=this._levels[e];typeof o=="number"?(i=o,this._currentLevel=e):(i=0,this._currentLevel="NONE");let a;if(t==="standard"||t==="full"?a=t:a="standard",a==="full"&&a!==this._currentFormat){let d=K();console.log(String(d.toFixed(2)),"[Init]",`Local-Date: ${Date.now()}`)}this._currentFormat=a;let s=this._currentFormat==="full"?(d,u)=>(...l)=>{let c=K();return u(String(c.toFixed(2)),`[${d}]`,...l)}:(d,u)=>u;if(r===void 0)this.error=i>=this._levels.ERROR?s("error",console.error.bind(console)):X,this.warn=i>=this._levels.WARNING?s("warn",console.warn.bind(console)):X,this.info=i>=this._levels.INFO?s("info",console.info.bind(console)):X,this.debug=i>=this._levels.DEBUG?s("log",console.log.bind(console)):X;else{let d=(u,l)=>i>=this._levels[u]?(...c)=>{let f=K();return r(u,[f,l,...c])}:X;this.error=d("ERROR","error"),this.warn=d("WARNING","warn"),this.info=d("INFO","info"),this.debug=d("DEBUG","log")}this.trigger("onLogLevelChange",{level:this._currentLevel,format:this._currentFormat})}getLevel(){return this._currentLevel}getFormat(){return this._currentFormat}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};var cp=new or,m=cp;var Vt=te,an=Vt===void 0?void 0:_(Vt.MediaSource)?_(Vt.MozMediaSource)?_(Vt.WebKitMediaSource)?Vt.MSMediaSource:Vt.WebKitMediaSource:Vt.MozMediaSource:Vt.MediaSource;var fp=200,co=new Map;function Oa(n){if(_(an))return Ft&&m.error("Compat: Cannot request codec support in a worker without MSE."),!1;if(typeof an.isTypeSupported=="function"){let e=co.get(n);if(e!==void 0)return e;{let t=an.isTypeSupported(n);return co.size>=fp&&co.clear(),co.set(n,t),t}}return!0}var ar=!1,sn=!1,zt=!1,dn=!1,Da=!1,un=!1,La=!1,sr=!1,dr=!1,mp=!1,pp=!1,Na=!1,Ua=!1,Ba=!1,ln=!1,gp=!1;(function(){var e,t,r;Kt||(typeof te.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?(sn=!0,zt=!0):navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?zt=!0:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?ar=!0:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?dn=!0:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?un=!0:(Object.prototype.toString.call(te.HTMLElement).indexOf("Constructor")>=0||((t=(e=te.safari)==null?void 0:e.pushNotification)==null?void 0:t.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((r=navigator.vendor)==null?void 0:r.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Da=!0),/SamsungBrowser/.test(navigator.userAgent)&&(La=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?Ba=!0:navigator.userAgent.indexOf("PlayStation 5")!==-1?ln=!0:/Tizen/.test(navigator.userAgent)?sr=!0:/[Ww]eb[O0]S/.test(navigator.userAgent)?(dr=!0,/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?pp=!0:(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent))&&(mp=!0)):navigator.userAgent.indexOf("NETTV")!==-1&&navigator.userAgent.indexOf("Philips")!==-1?Ua=!0:/[Pp]anasonic/.test(navigator.userAgent)?Na=!0:navigator.userAgent.indexOf("Xbox")!==-1&&(gp=!0))})();var hp=ln,Ol=hp;function Fa(n){return n===void 0||n.indexOf("widevine")<0}var yp={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/mp4;codecs="hvc1.1.6.L93.B0"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"',"audio/webm;codecs=opus"],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless"},Dl=yp;function Ip(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r of e)for(let i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i]);return t}var j=typeof Object.assign=="function"?Object.assign:Ip;function Ka(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function ur(n,...e){if(e.length===0)return n;let t=e.shift();if(Ka(n)&&Ka(t))for(let r in t)if(Ka(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),ur(i,t[r])}else j(n,{[r]:t[r]});return ur(n,...e)}var Va=class{constructor(){this._config=Dl}update(e){let t=ur(this._config,e);this._config=t}getCurrent(){return this._config}},bp=new Va,U=bp;var Sp=.016666666666666666;function Ll(n,e){return Math.abs(n-e)<Sp}function Ul(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function Tp(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function _p(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(Fl(t,r)){let i=Ul(t,r);n.splice(--e,2,i)}}return n}function za(n,e){return n.end<=e.start}function Nl({start:n,end:e},t){return n<=t&&t<e}function Bl(n,e){return Nl(n,e.start)||n.start<e.end&&e.end<n.end||Nl(e,n.start)}function Fl(n,e){return Ll(e.start,n.end)||Ll(e.end,n.start)}function Pe(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function Ha(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function Ep(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function Kl(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function Vl(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function zl(n,e){let t=Ha(n,e);return t!==null?t.end-e:1/0}function fo(n,e){let t=Ep(n,e);return t!==null?t.end-e:1/0}function Ht(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=Bl(t,i),a=Fl(t,i);if(o||a)t=Ul(t,i),n.splice(r--,1);else if(r===0){if(za(t,n[0]))break}else if(za(n[r-1],t)&&za(t,i))break}return n.splice(r,0,t),_p(Tp(n))}function Hl(n,e){let t=[];for(let r=0;r<e.length;r++)Bl(n,e[r])&&t.push(e[r]);return t}function Wl(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=Hl(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function mo(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=Hl(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}var po=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function J(n,e){if(h.DEV===h.CURRENT_ENV&&!n)throw new po(e===void 0?"invalid assertion":e)}function Gl(n,e,t="object"){J(!_(n),`${t} should be an object`);for(let r in e)e.hasOwnProperty(r)&&J(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function Qe(n){throw new po("Unreachable path taken")}var B=class{constructor(){let[e,t]=vp();this._isUsed=!1,this._trigger=e,this.signal=new lr(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new Me;this._trigger(t)}static isCancellationError(e){return e instanceof Me}},lr=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("Error while calling clean up listener",r instanceof Error?r.toString():"Unknown error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(J(this.cancellationError!==null),e(this.cancellationError),X):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},Me=class n extends Error{constructor(){super("This task was cancelled."),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function vp(){let n=X;return[function(t){n(t)},function(t){n=t}]}function Wa(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var tt=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var cr=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new tt(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR: New last stable representation",e.bitrate),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var ql=6e3,Rp=15e3,kp=3e3,Cp=1e3,Pp=9e3,fr=class{constructor(e){this._levelsMap=Wa(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=ql,m.debug("ABR: Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(_(o)){this._currentEstimate=r[0];return}let d=-1;for(let p=0;p<r.length;p++){let I=r[p];if(I===o)d=p;else if(I>o)break}if(d<0||r.length!==t.length){m.info("ABR: Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let l=isFinite(i)?i:0,c=K();if(l<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:c-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+Pp){let y=this._blockRaiseDelay+kp;this._blockRaiseDelay=Math.min(y,Rp),m.debug("ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality",this._blockRaiseDelay)}else{let y=this._blockRaiseDelay-Cp;this._blockRaiseDelay=Math.max(ql,y),m.debug("ABR: Lowering quality in BufferBasedChooser",this._blockRaiseDelay)}this._lastUnsuitableQualityTimestamp=c;let I=he(r,y=>y===o);for(let y=I-1;y>=0;y--)if(l>=t[y]){this._currentEstimate=r[y];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&c-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],g=(()=>{for(let p=d+1;p<t.length;p++)if(t[p]>f)return p})();if(g!==void 0){let p=t[g];if(i>=p){m.debug("ABR: Raising quality in BufferBasedChooser",r[g]),this._currentEstimate=r[g];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function Z(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function Mp(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function go(n){if(n.progress.length<5)return;let e=new tt(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function jl(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function Ap(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,l=Mp(n,u);if(l.length!==1)return;let c=l[0],f=K(),g=c.content.segment.duration*1.5;if(g=Math.min(g,3e3),g=Math.max(g,12e3),f-c.requestTimestamp<g)return;let p=c.progress.length>0?c.progress[c.progress.length-1]:void 0,I=go(c);if(p!==void 0&&I!==void 0){let R=jl(p,I);if((f-p.timestamp)/1e3<=R&&R-d/a>2500)return I}if(!c.content.segment.complete)return;let y=c.content.segment.duration,b=(f-c.requestTimestamp)/1e3,T=b<=(y*1.5+2)/a;if(_(t)||T)return;let v=y/b,E=t.bitrate*Math.min(.7,v);if(i===void 0||E<i)return E}function xp(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=Z(e,({content:c})=>c.segment.duration>0&&c.segment.time+c.segment.duration>i);if(o===void 0)return!0;let a=K(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=go(o);if(s===void 0||d===void 0)return!0;let u=jl(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var mr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=U.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:l,duration:c}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:g}=U.getCurrent();return isNaN(c)||f+l.getWanted()<c-g?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR: enter starvation mode."),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1),this._inStarvationMode&&(s=Ap(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR: starvation mode emergency estimate:",s),t.reset(),a=_(r)?s:Math.min(s,r.bitrate))),_(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:xp(i,r,this._lowLatencyMode)}};var pr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var gr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let c=Yl(e,r);if(c!==null)return c}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR: Guessed Representation validated",d.bitrate),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=K()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),wp(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let c=Yl(e,r);if(c!==null)return c}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&K()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=K();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=go(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function Yl(n,e){let t=n.length,r=he(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR: Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function wp(n,e){let t=he(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR: Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var hr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=U.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=U.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}};function Ga(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=he(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function qa(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,l;return((u=s.width)!=null?u:0)-((l=d.width)!=null?l:0)}),o=Z(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function yr(n){return Object.keys(n).map(e=>n[e])}var wn=typeof Object.values=="function"?Object.values:yr;var Ir=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(_(t)){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR: progress for a request not added");return}t.progress.push(e)}remove(e){if(_(this._currentRequests[e])){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR: can't remove unknown request")}delete this._currentRequests[e]}getRequests(){return wn(this._currentRequests).filter(e=>!_(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function ho(n,e){let t=he(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var $l=new G(void 0);$l.finish();var Ql=new G(1/0);Ql.finish();function ja(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,l,c){var y,b,T;let{type:f}=s.adaptation,g=o(f),p=(y=t[f])!=null?y:0,I={limitResolution:(b=r.limitResolution[f])!=null?b:$l,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Ql};return Op({bandwidthEstimator:g,context:s,currentRepresentation:d,filters:I,initialBitrate:p,playbackObserver:l,representations:u,lowLatencyMode:i},c)};function o(a){let s=e[a];if(_(s)){m.debug("ABR: Creating new BandwidthEstimator for ",a);let d=new hr;return e[a]=d,d}return s}}function Op({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new cr,l=new mr(i!=null?i:0,o),c=new Ir,f=X,g={metrics:T,requestBegin:v,requestProgress:E,requestEnd:R,addedSegment(k){f(k)}},p=new B;p.linkToSignal(d);let I=y(s.getValue(),p.signal);return s.onUpdate(b,{clearSignal:d}),{estimates:I,callbacks:g};function y(k,x){if(k.length<=1)return new G({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let M=!1,A=k.sort((z,$)=>z.bitrate-$.bitrate),L=new fr(A.map(z=>z.bitrate)),O=new pr,F=new gr(u,O),C=a.getReference().getValue(),P=new G(N());return a.listen(z=>{C=z,D()},{includeLastObservation:!1,clearSignal:x}),f=function(z){if(C===null)return;let{position:$,speed:q}=C,W=z.buffered,H=fo(W,$.getWanted()),{representation:V}=z.content,ae=u.getEstimate(V),se=V.bitrate,le={bufferGap:H,currentBitrate:se,currentScore:ae,speed:q};L.onAddedSegment(le),D()},x.register(()=>{f=X}),r.throttleBitrate.onUpdate(D,{clearSignal:x}),r.limitResolution.onUpdate(D,{clearSignal:x}),P;function D(){P.setValue(N())}function N(){let{bufferGap:z,position:$,maximumPosition:q}=C,W=r.limitResolution.getValue(),H=r.throttleBitrate.getValue(),V=t.getValue(),ae=Dp(A,W,H),se=c.getRequests(),{bandwidthEstimate:le,bitrateChosen:Se}=l.getBandwidthEstimate(C,n,V,se,O.bandwidth),Y=u.getLastStableRepresentation(),ce=Y===null?void 0:Y.bitrate/(C.speed>0?C.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:ye,ABR_EXIT_BUFFER_BASED_ALGO:Bt}=U.getCurrent();M&&z<=Bt?M=!1:!M&&isFinite(z)&&z>=ye&&(M=!0);let $e=ho(ae,Se),Ue=L.getLastEstimate(),Tt=$e.bitrate,ht=null;M&&Ue!==void 0&&Ue>Tt&&(ht=ho(ae,Ue),Tt=ht.bitrate);let Oe=null;return o&&V!==null&&e.manifest.isDynamic&&q-$.getWanted()<40&&(Oe=F.getGuess(A,C,V,Tt,se)),Oe!==null&&Oe.bitrate>Tt?(m.debug("ABR: Choosing representation with guess-based estimation.",Oe.bitrate,Oe.id),O.update(Oe,le,2),{bitrate:le,representation:Oe,urgent:V===null||Oe.bitrate<V.bitrate,knownStableBitrate:ce}):ht!==null?(m.debug("ABR: Choosing representation with buffer-based estimation.",ht.bitrate,ht.id),O.update(ht,le,0),{bitrate:le,representation:ht,urgent:l.isUrgent(ht.bitrate,V,se,C),knownStableBitrate:ce}):(m.debug("ABR: Choosing representation with bandwidth estimation.",$e.bitrate,$e.id),O.update($e,le,1),{bitrate:le,representation:$e,urgent:l.isUrgent($e.bitrate,V,se,C),knownStableBitrate:ce})}}function b(){let k=s.getValue();p.cancel(),p=new B,p.linkToSignal(d),y(k,p.signal).onUpdate(function(A){I.setValue(A)},{clearSignal:p.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:x,segmentDuration:M,size:A,content:L}=k;if(n.addSample(x,A),!L.segment.isInit){let{segment:O,representation:F}=L;if(M===void 0&&!O.complete)return;let C=M!=null?M:O.duration;u.addSample(F,x/1e3,C)}}function v(k){c.add(k)}function E(k){c.addProgress(k)}function R(k){c.remove(k.id)}}function Dp(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=Ga(r,t)),e!==void 0&&(r=qa(r,e)),r}var Xl=ja;function yo(){var t;if(typeof((t=te.crypto)==null?void 0:t.randomUUID)=="function")return te.crypto.randomUUID();let n=new Date().getTime(),e=K();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let i=Math.random()*16;return n>0?(i=(n+i)%16|0,n=Math.floor(n/16)):(i=(e+i)%16|0,e=Math.floor(e/16)),(r==="x"?i:i&3|8).toString(16)})}var Lp=4,br=class{constructor(e){var t,r;this._sessionId=(t=e.sessionId)!=null?t:yo(),this._contentId=(r=e.contentId)!=null?r:yo(),this._typePreference=e.communicationType==="headers"?0:1,this._bufferStarvationToggle=!1,this._playbackObserver=null,this._lastThroughput={},this._canceller=null}startMonitoringPlayback(e){var t;(t=this._canceller)==null||t.cancel(),this._canceller=new B,this._playbackObserver=e,e.listen(r=>{r.rebuffering!==null&&(this._bufferStarvationToggle=!0)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}stopMonitoringPlayback(){var e;(e=this._canceller)==null||e.cancel(),this._canceller=null,this._playbackObserver=null}updateThroughput(e,t){this._lastThroughput[e]=t}_getCommonCmcdData(e){var i;let t={};t.bs=this._bufferStarvationToggle,this._bufferStarvationToggle=!1,t.cid=this._contentId,t.mtp=e!==void 0?Math.floor(Math.round(e/1e3/100)*100):void 0,t.sid=this._sessionId;let r=(i=this._playbackObserver)==null?void 0:i.getReference().getValue();return t.pr=r===void 0||r.speed===1?void 0:r.speed,r!==void 0&&(t.su=r.rebuffering!==null),t}getCmcdDataForManifest(e){var r;let t=this._getCommonCmcdData((r=this._lastThroughput.video)!=null?r:this._lastThroughput.audio);switch(t.ot="m",e){case"dash":t.sf="d";break;case"smooth":t.sf="s";break;default:t.sf="o";break}return this._producePayload(t)}getCmcdDataForSegmentRequest(e){var a,s,d,u;let t=(a=this._playbackObserver)==null?void 0:a.getReference().getValue(),r=this._getCommonCmcdData(this._lastThroughput[e.adaptation.type]);switch(r.br=Math.round(e.representation.bitrate/1e3),r.d=Math.round(e.segment.duration*1e3),e.adaptation.type){case"video":r.ot="v";break;case"audio":r.ot="a";break;case"text":r.ot="c";break}e.segment.isInit&&(r.ot="i");let i;if(t!==void 0&&(r.ot==="v"||r.ot==="a"||r.ot==="av")){let l=t.buffered[e.adaptation.type];if(!_(l)){let c=(u=(d=(s=this._playbackObserver)==null?void 0:s.getCurrentTime())!=null?d:t.position.getWanted())!=null?u:t.position.getPolled();for(let f of l)if(c>=f.start&&c<f.end){i=(f.end-c)*1e3,r.bl=Math.floor(Math.round(i/100)*100);break}}}let o=i===void 0||t===void 0?void 0:i/t.speed;if(r.dl=o===void 0?void 0:Math.floor(Math.round(o/100)*100),o!==void 0){let c=e.representation.bitrate*e.segment.duration/1e3/(o/1e3);r.rtp=Math.floor(Math.round(c*Lp/100)*100)}switch(e.manifest.transport){case"dash":r.sf="d";break;case"smooth":r.sf="s";break;default:r.sf="o";break}return r.st=e.manifest.isDynamic?"l":"v",r.tb=e.adaptation.representations.reduce((l,c)=>c.isSupported!==!0||c.decipherable===!1?l:l===void 0?Math.round(c.bitrate/1e3):Math.max(l,Math.round(c.bitrate/1e3)),void 0),this._producePayload(r)}_producePayload(e){let t={object:"",request:"",session:"",status:""},r="",i=(u,l)=>{this._typePreference===0?t[l]+=u:r+=u},o=(u,l)=>{let c=e[u];if(c!==void 0){let f=`${u}=${String(c)},`;i(f,l)}},a=(u,l)=>{if(e[u]===!0){let c=`${u},`;i(c,l)}},s=(u,l)=>{let c=e[u];if(c!==void 0){let g=`prop=${`"${c.replace("\\","\\\\").replace('"','\\"')}"`},`;i(g,l)}},d=(u,l)=>{let c=e[u];if(c!==void 0){let f=`prop=${c},`;i(f,l)}};return o("bl","request"),o("br","object"),a("bs","status"),s("cid","session"),o("d","object"),o("dl","request"),o("mtp","request"),d("ot","object"),o("pr","session"),o("rtp","status"),d("sf","session"),s("sid","session"),d("st","session"),a("su","request"),o("tb","object"),this._typePreference===0?(t.object[t.object.length-1]===","&&(t.object=t.object.substring(0,t.object.length-1)),t.request[t.request.length-1]===","&&(t.request=t.request.substring(0,t.request.length-1)),t.session[t.session.length-1]===","&&(t.session=t.session.substring(0,t.session.length-1)),t.status[t.status.length-1]===","&&(t.status=t.status.substring(0,t.status.length-1)),m.debug("CMCD: proposing headers payload"),{type:"headers",value:{"CMCD-Object":t.object,"CMCD-Request":t.request,"CMCD-Session":t.session,"CMCD-Status":t.status}}):(r[r.length-1]===","&&(r=r.substring(0,r.length-1)),r=encodeURIComponent(r),m.debug("CMCD: proposing query string payload",r),{type:"query",value:[["CMCD",r]]})}};var Zl=br;var nt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Ee=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},Be={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var Ya=typeof Headers=="function"?Headers:null,$a=typeof AbortController=="function"?AbortController:null;function Io(n){var f,g;let e;if(!_(n.headers))if(_(Ya))e=n.headers;else{e=new Ya;let p=Object.keys(n.headers);for(let I=0;I<p.length;I++){let y=p[I];e.append(y,n.headers[y])}}m.debug("Fetch: Called with URL",n.url);let t=null,r=!1,i=!1,o=K(),a=_($a)?null:new $a;function s(){if(_(a)){m.warn("Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let l=n.cancelSignal.register(function(I){t=I,s()}),c={method:"GET"};if(e!==void 0&&(c.headers=e),c.signal=_(a)?null:a.signal,m.hasLevel("DEBUG")){let p="FETCH: Sending GET "+n.url;n.timeout!==void 0&&(p+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(p+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(p+=" Range="+((g=n.headers)==null?void 0:g.Range)),m.debug(p)}return fetch(n.url,c).then(p=>{if(u!==void 0&&clearTimeout(u),p.status>=300)throw m.warn("Fetch: Request HTTP Error",p.status,p.url),new Ee(p.url,p.status,Be.ERROR_HTTP_CODE);if(_(p.body))throw new Ee(p.url,p.status,Be.PARSE_ERROR);let I=p.headers.get("Content-Length"),y=!_(I)&&!isNaN(+I)?+I:void 0,b=p.body.getReader(),T=0;return v();async function v(){let E=await b.read();if(!E.done&&!_(E.value)){T+=E.value.byteLength;let R=K(),k={url:p.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:E.value.byteLength,chunk:E.value.buffer,size:T,totalSize:y};return n.onData(k),v()}else if(E.done){d!==void 0&&clearTimeout(d),l();let R=K();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:p.status,url:p.url}}return v()}}).catch(p=>{throw t!==null?t:(l(),r?(m.warn("Fetch: Request timed out."),new Ee(n.url,0,Be.TIMEOUT)):i?(m.warn("Fetch: Request connection timed out."),new Ee(n.url,0,Be.TIMEOUT)):p instanceof Ee?p:(m.warn("Fetch: Request Error",p instanceof Error?p.toString():""),new Ee(n.url,0,Be.ERROR_EVENT)))})}function Sr(){return typeof te.fetch=="function"&&!_($a)&&!_(Ya)}function w(n){return typeof n=="string"&&n.length>0}var Np="json";function Qa(n){let e={url:n.url,headers:n.headers,responseType:_(n.responseType)?Np:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:l}=e,c=new XMLHttpRequest;c.open("GET",a,!0);let f;u!==void 0&&(c.timeout=u,f=setTimeout(()=>{y(),r(new Ee(a,c.status,Be.TIMEOUT))},u+3e3));let g;if(l!==void 0&&(g=setTimeout(()=>{y(),c.readyState!==XMLHttpRequest.DONE&&c.abort(),r(new Ee(a,c.status,Be.TIMEOUT))},l)),c.responseType=d,c.responseType==="document"&&c.overrideMimeType("text/xml"),!_(s)){let b=s;for(let T in b)b.hasOwnProperty(T)&&c.setRequestHeader(T,b[T])}let p=K(),I=null;if(o!==void 0&&(I=o.register(function(T){y(),c.readyState!==XMLHttpRequest.DONE&&c.abort(),r(T)}),o.isCancelled()))return;if(c.onerror=function(){y(),r(new Ee(a,c.status,Be.ERROR_EVENT))},c.ontimeout=function(){y(),r(new Ee(a,c.status,Be.TIMEOUT))},l!==void 0&&(c.onreadystatechange=function(){c.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(g)}),i!==void 0&&(c.onprogress=function(T){let v=K();i({url:a,duration:v-p,sendingTime:p,currentTime:v,size:T.loaded,totalSize:T.total})}),c.onload=function(T){if(c.readyState===XMLHttpRequest.DONE)if(y(),c.status>=200&&c.status<300){let v=K(),E=c.response instanceof ArrayBuffer?c.response.byteLength:T.total,R=c.status,k=c.responseType,x=w(c.responseURL)?c.responseURL:a,M;if(k==="json"?M=typeof c.response=="object"?c.response:Up(c.responseText):M=c.response,_(M)){r(new Ee(a,c.status,Be.PARSE_ERROR));return}t({status:R,url:x,responseType:k,sendingTime:p,receivedTime:v,requestDuration:v-p,size:E,responseData:M})}else r(new Ee(a,c.status,Be.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let b="XHR: Sending GET "+a;n.responseType!==void 0&&(b+=" type="+n.responseType),u!==void 0&&(b+=" to="+String(u/1e3)),l!==void 0&&(b+=" cto="+String(l/1e3)),(s==null?void 0:s.Range)!==void 0&&(b+=" Range="+(s==null?void 0:s.Range)),m.debug(b)}c.send();function y(){f!==void 0&&clearTimeout(f),g!==void 0&&clearTimeout(g),I!==null&&I()}})}function Up(n){try{return JSON.parse(n)}catch(e){return null}}var Te=Qa;var cn=Be,Xe={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},Xa={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE"};function lt(n,e){return`${n}: ${e}`}var pe=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=Xe.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,typeof(r==null?void 0:r.keyStatuses)=="string"&&(this.keyStatuses=r.keyStatuses)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses}}};var ee=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=Xe.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var rt=class n extends Error{constructor(e,t){super(lt(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=Xe.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===cn.ERROR_HTTP_CODE&&this.status===e}serialize(){return{name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var De=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=Xe.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage}}};function Wt(n){return(n instanceof pe||n instanceof ee||n instanceof De||n instanceof rt)&&Object.keys(Xe).indexOf(n.type)>=0}function we(n,{defaultCode:e,defaultReason:t}){if(Wt(n))return n;let r=n instanceof Error?n.toString():t;return new De(e,r)}var it=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var Bp={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},Jl=Bp;var Fp={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},ec=Fp;function Kp(n){if(_(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Vp(t);return w(r)?r:n}function Vp(n){let e;switch(n.length){case 2:e=Jl[n];break;case 3:e=ec[n];break}return e}var tc=Kp;var Tr=tc;function ge(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}function Ze(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var zp=Ze(),Za=class{constructor(e,t,r){var o,a,s,d,u;this.id=e.id,this.uniqueId=zp(),this.bitrate=e.bitrate,this.codecs=[],this.trackType=t,e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index;let i=this.contentProtections!==void 0;if(t==="audio"||t==="video"){if(e.supplementalCodecs!==void 0){let l=r.isSupported((o=this.mimeType)!=null?o:"",(a=e.supplementalCodecs)!=null?a:"",i);l!==!1&&(this.codecs=[e.supplementalCodecs],this.isSupported=l)}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((s=e.codecs)!=null?s:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=r.isSupported((d=this.mimeType)!=null?d:"",(u=e.codecs)!=null?u:"",i)))}else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var s,d;if(this.isSupported!==void 0)return;let t=this.contentProtections!==void 0,r=!1,i=(s=this.mimeType)!=null?s:"",o=(d=this.codecs)!=null?d:[];o.length===0&&(o=[""]);let a=!1;for(let u of o){if(r=e.isSupported(i,u,t),r===!0){this.codecs=[u];break}r===void 0&&(a=!0)}r===!0?this.isSupported=!0:a?this.isSupported=void 0:this.isSupported=!1}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i;let t=this.getAllEncryptionData(),r=[];for(let o=0;o<t.length;o++){let a=!1,s=t[o];for(let d=0;d<s.values.length;d++)if(s.values[d].systemId.toLowerCase()===e.toLowerCase())if(a)r[r.length-1].values.push(s.values[d]);else{let u=(i=this.contentProtections)==null?void 0:i.keyIds;r.push({type:s.type,keyIds:u,values:[s.values[d]]}),a=!0}}return r}getAllEncryptionData(){var t;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(t=this.contentProtections)==null?void 0:t.keyIds;return this.contentProtections.initData.map(r=>({type:r.type,keyIds:e,values:r.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[t]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[t];else{let s=!1;for(let d of a)ge(d,t)&&(s=!0);s||(m.warn("Manifest: found unanounced key id."),a.push(t))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],l;for(l=0;l<s.length;l++)if(u.systemId===s[l].systemId){if(ge(u.data,s[l].data))break;m.warn("Manifest: different init data for the same system ID")}l===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable}}},nc=Za;var _r=class n{constructor(e,t,r={}){let{trickModeTracks:i}=e,{representationFilter:o,isManuallyAdded:a}=r;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Tr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),i!==void 0&&i.length>0&&(this.trickModeTracks=i.map(u=>new n(u,t)));let s=e.representations,d=[];this.supportStatus={hasSupportedCodec:!1,hasCodecWithUndefinedSupport:!1,isDecipherable:!1};for(let u=0;u<s.length;u++){let l=new nc(s[u],this.type,t),c=!0;if(!_(o)){let f={id:l.id,bitrate:l.bitrate,codecs:l.codecs,height:l.height,width:l.width,frameRate:l.frameRate,hdrInfo:l.hdrInfo};if(l.contentProtections!==void 0&&(f.contentProtections={},l.contentProtections.keyIds!==void 0)){let g=l.contentProtections.keyIds;f.contentProtections.keyIds=g}c=o(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}c?(d.push(l),l.isSupported===void 0?(this.supportStatus.hasCodecWithUndefinedSupport=!0,this.supportStatus.hasSupportedCodec===!1&&(this.supportStatus.hasSupportedCodec=void 0)):l.isSupported&&(this.supportStatus.hasSupportedCodec=!0),l.decipherable===void 0?this.supportStatus.isDecipherable===!1&&(this.supportStatus.isDecipherable=void 0):l.decipherable&&(this.supportStatus.isDecipherable=!0)):m.debug("Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${l.id}`,`(${l.bitrate})`)}d.sort((u,l)=>u.bitrate-l.bitrate),this.representations=d,this.manuallyAdded=a===!0}refreshCodecSupport(e){let t=!1,r=!1;for(let i of this.representations)i.refreshCodecSupport(e),i.isSupported===void 0?t=!0:i.isSupported&&(r=!0);r?this.supportStatus.hasSupportedCodec=!0:t?this.supportStatus.hasSupportedCodec=void 0:this.supportStatus.hasSupportedCodec=!1,this.supportStatus.hasCodecWithUndefinedSupport=t}getRepresentation(e){return Z(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,supportStatus:this.supportStatus,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function Ja(){return sn}function fn(n){return new Promise(e=>{setTimeout(e,n)})}function es(){return dr}function Er(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return es()?r:Promise.race([r,fn(1e3)])}var ts=new WeakMap,Fe={setState(n,e){ts.set(n,e)},getState(n){let e=ts.get(n);return e===void 0?null:e},clearState(n){ts.set(n,null)}};async function On(n){let e=Fe.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Fe.clearState(n),await t.closeAllSessions(),Er(e.emeImplementation,n,null)}function bo(n){if(m.info("DRM: Clearing-up DRM session."),Ja())return m.info("DRM: disposing current MediaKeys."),On(n);let e=Fe.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function ot(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function Gt(n,e){return ot(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function So(n){let e=new B;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Me)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var Hp=["","webkit","moz","ms"];function Wp(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function Gp(n,e){return e.filter(t=>Wp(n,t))[0]}function qp(n,e){return n.reduce((t,r)=>t.concat((e===void 0?Hp:e).map(i=>i+r)),[])}function _e(n,e){let t,r=qp(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=Gp(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{h.CURRENT_ENV===h.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function jp(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new G(!o,n);return mn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function rc(n,e){if(n.webkitSupportsPresentationMode===!0&&typeof n.webkitSetPresentationMode=="function"){let i=n.webkitPresentationMode==="picture-in-picture",o=new G({isEnabled:i,pipWindow:null},e);return mn(n,"webkitpresentationmodechanged",()=>{let a=n.webkitPresentationMode==="picture-in-picture";o.setValue({isEnabled:a,pipWindow:null})},e),o}let t=document.pictureInPictureElement===n,r=new G({isEnabled:t,pipWindow:null},e);return mn(n,"enterpictureinpicture",i=>{var o;r.setValue({isEnabled:!0,pipWindow:(o=i.pictureInPictureWindow)!=null?o:null})},e),mn(n,"leavepictureinpicture",()=>{r.setValue({isEnabled:!1,pipWindow:null})},e),r}function ic(n,e){let t=jp(e),r,i=new G(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=U.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function oc(n){var o,a;let e=_(te.devicePixelRatio)||te.devicePixelRatio===0?1:te.devicePixelRatio,t=new G({width:(o=te.screen)==null?void 0:o.width,height:(a=te.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function ac(n,e,t){let r=_(te.devicePixelRatio)||te.devicePixelRatio===0?1:te.devicePixelRatio,i=new G({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=X;e.onUpdate(s,{clearSignal:t}),mn(te,"resize",s,t),mn(n,"enterpictureinpicture",s,t),mn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let c=i.getValue();(c.width!==void 0||c.height!==void 0||c.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let c=()=>{l()};u.addEventListener("resize",c),o=()=>{u.removeEventListener("resize",c),o=X},l()}else{let c=i.getValue();(c.width!==n.clientWidth||c.height!==n.clientHeight||c.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function l(){let c=i.getValue();(c.width!==(u==null?void 0:u.width)||c.height!==(u==null?void 0:u.height)||c.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var wk=_e(["loadedmetadata"]),Ok=_e(["timeupdate"]),Dk=_e(["addtrack"]),Lk=_e(["removetrack"]),Dn=_e(["sourceopen","webkitsourceopen"]),To=_e(["sourceclose","webkitsourceclose"]),_o=_e(["sourceended","webkitsourceended"]),sc=_e(["update"]),dc=_e(["removesourcebuffer"]),Eo=_e(["keymessage","message"]),uc=_e(["keyadded","ready"]),vo=_e(["keyerror","error"]),lc=_e(["keystatuseschange"]),cc=_e(["seeking"]),fc=_e(["seeked"]),mc=_e(["ended"]);function mn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:Ro}=te;Ro!==void 0&&typeof Ro.isTypeSupported=="function"&&typeof Ro.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=Ro);function ns(){return(Da||un)&&ct!==void 0}var vr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Et(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var vt,{MSMediaKeys:Rr}=te;Rr!==void 0&&Rr.prototype!==void 0&&typeof Rr.isTypeSupported=="function"&&typeof Rr.prototype.createSession=="function"&&(vt=Rr);var rs=class extends oe{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new B,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Eo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),uc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),vo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},ko=class{constructor(e){if(vt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new vt(e)}_setVideo(e){return Et(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new rs(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function is(){return{isTypeSupported:(r,i)=>{if(vt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?vt.isTypeSupported(r,i):vt.isTypeSupported(r)},createCustomMediaKeys:r=>new ko(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof ko))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var qt,{MozMediaKeys:kr}=te;kr!==void 0&&kr.prototype!==void 0&&typeof kr.isTypeSupported=="function"&&typeof kr.prototype.createSession=="function"&&(qt=kr);function os(){return{isTypeSupported:(r,i)=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?qt.isTypeSupported(r,i):qt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return new qt(r)},setMediaKeys:(r,i)=>Et(()=>{if(r.mozSetMediaKeys===void 0||typeof r.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return r.mozSetMediaKeys(i)})}}var Rt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],pc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Co(n){if(n>=pc.length)throw new Error("Unable to parse base64 string.");let e=pc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Po(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2|n[t]>>6],e+=Rt[n[t]&63];return t===r+1&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Co(t.charCodeAt(d))<<18|Co(t.charCodeAt(d+1))<<12|Co(t.charCodeAt(d+2))<<6|Co(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var hc=typeof te=="object"&&typeof te.TextDecoder=="function",$p=typeof te=="object"&&typeof te.TextEncoder=="function";function Mo(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Ao(n){if(hc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function ve(n){if($p)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function Qp(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function gc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function Le(n){if(hc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=Qp(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+gc(a,4):"%"+gc(a,2)}}return decodeURIComponent(r)}function qe(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Ne(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function xo(n){J(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function as(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:Le(r)}}function ds(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var ss=class extends oe{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=X,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(Le(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},wo=class{constructor(e){this._keySystem=e}_setVideo(e){return Et(()=>{if(!ds(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new ss(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function us(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new wo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof wo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function Je(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}function re(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Oo(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function ls(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ne(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ke(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function fe(n){return new Uint8Array([n>>>8&255,n&255])}function Ie(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function jt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function yc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Ic(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function bc(n){return new Uint8Array([n&255,n>>>8&255])}function Cr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function cs(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(Ic(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Ao(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=Mo(s),u=0,l=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return l.set(t),u+=t.length,l.set(Cr(d.byteLength),u),u+=4,l.set(d,u),u+=d.byteLength,l.set(Cr(r.byteLength),u),u+=4,l.set(r,u),l}function Xp(n){return Je(n,"com.apple.fps")}function Sc(n,e){return Et(()=>{if(n.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");n.webkitSetMediaKeys(e)})}var fs=class extends oe{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=X,this._closeSession=X,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Xp(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=cs(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},Do=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Sc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new fs(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function Lo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new Do(r),setMediaKeys:(r,i)=>{if(i===null)return Sc(r,i);if(!(i instanceof Do))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var Zp=Jp("auto"),_c=Zp;function Jp(n){var o;let e,t,r=eg,i;if((n==="standard"||n==="auto"&&!ns())&&(Kt||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=_e(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){let d=Lo();t=Tc(),a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(ds((o=te.HTMLVideoElement)==null?void 0:o.prototype)){t=_e(["needkey"]);let d=us();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=Tc();let d=Lo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(sn&&vt!==void 0){t=_e(["encrypted","needkey"]);let d=is();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(qt!==void 0){t=_e(["encrypted","needkey"]);let d=os();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=_e(["encrypted","needkey"]);let d=te.MediaKeys,u=()=>{if(d===void 0)throw new ee("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let l="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(l)}};a=l=>(u(),J(typeof d.isTypeSupported=="function"),d.isTypeSupported(l)),s=l=>(u(),new d(l)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let l=0;l<u.length;l++){let c=u[l],{videoCapabilities:f,audioCapabilities:g,initDataTypes:p,distinctiveIdentifier:I}=c,y=!0;if(y=y&&(_(p)||p.some(b=>b==="cenc")),y=y&&I!=="required",y){let b={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(b.videoCapabilities=f),g!==void 0&&(b.audioCapabilities=g);let T=s(d);return Promise.resolve(new vr(d,T,b))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function Tc(){let n=_e(["needkey"],void 0);return(t,r,i)=>{n(t,o=>{let a=j(o,{forceSessionRecreation:!0});r(a)},i)}}function eg(n,e){try{let t;return typeof n.setMediaKeys=="function"?t=n.setMediaKeys(e):typeof n.webkitSetMediaKeys=="function"?t=n.webkitSetMediaKeys(e):typeof n.mozSetMediaKeys=="function"?t=n.mozSetMediaKeys(e):typeof n.msSetMediaKeys=="function"&&e!==null&&(t=n.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ne(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ke(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ne(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function No(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ne(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ne(n,s+e),u=e+s+d;if(u>n.length)break;let l=Math.max(a,u),c=n.subarray(e,l);t.push(c),e=l}return t.length===0?[null,r]:[t,r]}function tg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function ng(n,e,t){return n.slice(e,t)}var ms=typeof Uint8Array.prototype.slice=="function"?ng:tg;function ps(n,e){let t=n;for(let r of e){let i=Re(t,r);if(i===null)return null;t=i}return t}function Re(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Ec(n,e){let t=[],r=n;for(;;){let i=Ve(r,e);if(i===null)return t;J(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function gs(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ve(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ne(n,a),a+=4,i=ne(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ke(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function pn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ne(n,d),d+=4;let u=ne(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ke(n,d),d+=8}if(u===1970628964&&d+16<=o&&ne(n,d)===e&&ne(n,d+4)===t&&ne(n,d+8)===r&&ne(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function hs(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ne(n,t);t+=4;let i=ne(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ke(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Uo(n){let e=0,t=Re(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ve(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=ms(t,i[0],i[2]),a=Bo(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Bo(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=ms(n,t,t+16);return Ne(r)}var Pr=Math.pow(2,32)-1;var ys={};function vc(n){if(ys[n]!==void 0)return ys[n];let e=ve(n);return ys[n]=e,e}function ue(n,e){let t=e.length+8;return t<=Pr?re(Ie(t),vc(n),e):re(Ie(1),vc(n),jt(t+8),e)}function Ae(n,e){return ue(n,re(...e))}function Mr(n){let e=Re(n,1836019558);return e===null?null:Re(e,1953653094)}function Rc(n){return Ec(n,1836019558).reduce((t,r)=>{let i=Re(r,1953653094);return i!==null&&t.push(i),t},[])}function Ar(n){return Re(n,1835295092)}function Is(n){let e=Re(n,1836019574);if(e===null)return null;let t=Re(e,1953653099);return t===null?null:Re(t,1835297121)}function kc(n,e=0){return Re(n.subarray(e),1701671783)}function xr(n){let e=yc(n,8),t=Ao(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=xo(ft(o));return Ne(a).toLowerCase()}function wr(n,e){let t=Ve(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ne(n,o);o+=4;let d;if(a===0)d=ne(n,o),o+=4,r+=ne(n,o)+i,o+=4;else if(a===1)d=Ke(n,o),o+=8,r+=Ke(n,o)+i,o+=8;else return null;let u=[];o+=2;let l=Oo(n,o);for(o+=2;--l>=0;){let c=ne(n,o);o+=4;let f=(c&2147483648)>>>31,g=c&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let p=ne(n,o);o+=4,o+=4,u.push({time:d,duration:p,timescale:s,range:[r,r+g-1]}),d+=p,r+=g}return u}function bs(n){let e=Mr(n);if(e===null)return;let t=Re(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ke(t,4);if(r===0)return ne(t,4)}function rg(n){let e=Re(n,1952868452);if(e===null)return;let t=1,r=ls(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ne(e,t)):void 0}function Or(n){let e=Rc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Re(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=ls(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=rg(r),u===void 0))return;let l=(s&1)>0,c=(s&4)>0,f=(s&512)>0,g=(s&1024)>0,p=(s&2048)>0,I=ne(i,o);o+=4,l&&(o+=4),c&&(o+=4);let y=I,b=0;for(;y-- >0;)d?(b+=ne(i,o),o+=4):b+=u,f&&(o+=4),g&&(o+=4),p&&(o+=4);t+=b}return t}function Dr(n){let e=Is(n);if(e===null)return;let t=Re(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ne(t,r+16);if(i===0)return ne(t,r+8)}function Ss(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ne(n,0);if(t===0)if(e>Pr){let r=new Uint8Array(e+8);return r.set(Ie(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(Ie(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(jt(e),8),n}else{if(e<=Pr)return n.set(Ie(e),0),n;{let r=new Uint8Array(e+8);return r.set(Ie(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}}}function Cc(n){let e=[],t=0;for(;t<n.length;){let r=kc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=as(r,a);a=s;let{end:u,string:l}=as(r,a);a=u;let c=ne(r,a);a+=4;let f=ne(r,a);a+=4;let g=ne(r,a);a+=4;let p=ne(r,a);a+=4;let I=r.subarray(a,i),y={schemeIdUri:d,value:l,timescale:c,presentationTimeDelta:f,eventDuration:g,id:p,messageData:I};e.push(y)}}if(e.length!==0)return e}function Pc(n){let e=ps(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Re(t,1701733238),i=0;if(r===null?(i=28,r=Re(t,1701733217)):i=78,r===null)return null;let o=ps(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var Fo=ne(ve("pssh"),0);function ig(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ne(n,i+4)!==Fo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ne(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=hs(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=re(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=re(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return re(r,t)}function Lr(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=ig(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function og(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ne(n,t+4)!==Fo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ne(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Bo(i,8),data:i};ag(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function ag(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&ge(e.data,r.data))return!0}return!1}function Ko(n){let{initData:e,initDataType:t,forceSessionRecreation:r}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let i=new Uint8Array(e),o=og(i);return{type:t,values:o,forceSessionRecreation:r}}var sg=100;async function Nr(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,sg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var It=_c;function Q(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}function Mc(n){var t;let e=Fe.getState(n);return Fe.setState(n,null),Er((t=e==null?void 0:e.emeImplementation)!=null?t:It,n,null)}async function Ts(n,{emeImplementation:e,keySystemOptions:t,askedConfiguration:r,loadedSessionsStore:i,mediaKeySystemAccess:o,mediaKeys:a},s){let d=Fe.getState(n);if(await(d!==null&&d.loadedSessionsStore!==i?d.loadedSessionsStore.closeAllSessions():Promise.resolve()),s.isCancelled())throw s.cancellationError;if(Fe.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:o,mediaKeys:a,loadedSessionsStore:i,askedConfiguration:r}),n.mediaKeys!==a)return m.info("DRM: Attaching MediaKeys to the media element"),Er(e,n,a).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(l=>{let c=l instanceof Error?l.toString():"Unknown Error";throw new pe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function Ur(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):Q(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):Q(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function _s(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?Ac(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),Ac(i,e)):dg(i,o,e,r)}function Ac(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function dg(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&Ur(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function Es(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function vs(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,Ur(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await Es(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await _s(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Rs(){return!dr&&!Ua&&!Na}function xc(n){return!(ar&&n.indexOf("playready")!==-1)}var wc='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function Oc(n){let e=Mo(n),t=bc(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=Cr(e.length+6),a=re(o,i,r,t,e),s=qe("9a04f07998404286ab92e65be0885f95");return ug(a,s)}function ug(n,e){let t=ve("pssh"),r=new Uint8Array([0,0,0,0]),i=Ie(n.length),o=Ie(32+n.length);return re(o,t,r,e,i,n)}function ks(){return sn}function lg(n,e){let{mimeType:t,codecs:r}=Vo(n),{mimeType:i,codecs:o}=Vo(e);if(t!==i||r===""||o==="")return!1;let a=r.split(".")[0];a=a==="hev1"?"hvc1":a;let s=o.split(".")[0];return s=s==="hev1"?"hvc1":s,a===s}var cg=7;function Vo(n){var i;let[e,...t]=n.split(";"),r=(i=Z(t,o=>Je(o,"codecs=")))!=null?i:"";return r=r.substring(cg),r[0]==='"'&&(r=r.substring(1,r.length-2)),{mimeType:e,codecs:r}}var zo=lg;function Ln(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function fg(n,e,t,r){let i=t.getConfiguration();if(ks()||_(i))return null;let o=n.filter(a=>!(a.type!==r.type||(!_(a.persistentLicenseConfig)||a.persistentState==="required")&&i.persistentState!=="required"||a.distinctiveIdentifier==="required"&&i.distinctiveIdentifier!=="required"))[0];return o!==void 0?{keySystemOptions:o,keySystemAccess:t,askedConfiguration:e}:null}function mg(n){let{EME_KEY_SYSTEMS:e}=U.getCurrent();for(let t of Object.keys(e))if(Q(e[t],n))return t}function pg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:l}=U.getCurrent(),c,f,{audioCapabilitiesConfig:g,videoCapabilitiesConfig:p}=r;if((g==null?void 0:g.type)==="full")c=g.value;else{let y;(g==null?void 0:g.type)==="robustness"?y=g.value:e==="widevine"?y=u:t==="com.microsoft.playready.recommendation"?y=l:y=[],y.length===0&&y.push(void 0);let b=(g==null?void 0:g.type)==="contentType"?g.value:s;c=Ln(y,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((p==null?void 0:p.type)==="full")f=p.value;else{let y;(p==null?void 0:p.type)==="robustness"?y=p.value:e==="widevine"?y=u:t==="com.microsoft.playready.recommendation"?y=l:y=[],y.length===0&&y.push(void 0);let b=(p==null?void 0:p.type)==="contentType"?p.value:d;f=Ln(y,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let I={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:c,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return g!==void 0?p!==void 0?[I]:[I,de(ie({},I),{videoCapabilities:void 0})]:p!==void 0?[I,de(ie({},I),{audioCapabilities:void 0})]:[I,de(ie({},I),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Dc(n,e){var u,l,c,f,g,p;let t=(l=(u=n.audioCapabilities)==null?void 0:u.map(I=>I.contentType))!=null?l:[],r=(f=(c=n.videoCapabilities)==null?void 0:c.map(I=>I.contentType))!=null?f:[],i=t.concat(r).filter(I=>I!==void 0),o=(g=e.videoCapabilities)==null?void 0:g.map(I=>I.contentType),a=(p=e.audioCapabilities)==null?void 0:p.map(I=>I.contentType),s=[...o!=null?o:[],...a!=null?a:[]].filter(I=>I!==void 0);return s.length===0?[]:i.map(I=>{let{codecs:y,mimeType:b}=Vo(I),T=Q(s,I);return{codec:y,mimeType:b,result:T}})}function Cs(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Fe.getState(n);if(r!==null&&It.implementation===r.emeImplementation.implementation){let a=fg(e,r.askedConfiguration,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,askedConfiguration:a.askedConfiguration,options:a.keySystemOptions,codecSupport:Dc(a.askedConfiguration,a.keySystemAccess.getConfiguration())}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=U.getCurrent(),u=d[s.type],l;if(!_(u))l=u.map(c=>({keyName:s.type,keyType:c,keySystemOptions:s}));else{let c=mg(s.type),f=s.type;l=[{keyName:c,keyType:f,keySystemOptions:s}]}return a.concat(l)},[]);return o(0);async function o(a){if(a>=i.length)throw new pe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(It.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,l=pg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);let c;for(let f=0;f<l.length;f++){let g=l[f];try{return c=await gg(d,[g]),m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:c,askedConfiguration:g,codecSupport:Dc(g,c.getConfiguration())}}}catch(p){if(m.debug("DRM: Rejected access to keysystem",d,a+1,f),t.cancellationError!==null)throw t.cancellationError}}return o(a+1)}}async function gg(n,e){let t=await It.requestMediaKeySystemAccess(n,e);if(!xc(n))try{let i=(await t.createMediaKeys()).createSession(),o=Oc(wc);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Nn(n,e){for(let t of n)if(!e.some(i=>ge(i,t)))return!1;return!0}function Lc(n,e){for(let t of n)if(e.some(i=>ge(i,t)))return!0;return!1}var Br=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(ge(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Nn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Nn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Nn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var Fr=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new Br(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ie({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ie({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ie({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),Lr(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await Lr(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),Nr(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await Nr(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){J(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),hg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function hg(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await So(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function Yt(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Po(this.initData)}static decode(e){return ft(e)}};function Un(n,e){var t,r;return(r=(t=Nc(n,e))!=null?t:Nc(e,n))!=null?r:!1}function Nc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!ge(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let l;d.data instanceof Uint8Array?l=d.data:typeof d.data=="string"?l=at.decode(d.data):l=d.data.initData;let c;if(u.data instanceof Uint8Array?c=u.data:typeof u.data=="string"?c=at.decode(u.data):c=u.data.initData,!ge(l,c))return!1;break}if(r===e.length)return null}return!0}return null}function yg(n){Gl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var Kr=class{constructor(e){yg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=Ig(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:Yt(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(s=>{let d=Po(s);for(let u of o.keyIds)if(typeof u=="string"){if(d===u)return!0}else if(ge(u.initData,s))return!0;return!1}))return i}else{let a=e.values.getFormattedValues();if(Un(a,o.values))return i}break;case 3:{let a=e.values.getFormattedValues();if(Un(a,o.values))return i;break}case 2:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s)try{let d=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(ge(d,a))return i}catch(d){m.warn("DRM-PSS: Could not decode initialization data.",d instanceof Error?d:"")}break}case 1:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s){if(typeof o.initData.length=="undefined")return i;if(ge(o.initData,a))return i}break}default:{let{initDataHash:a}=r();if(o.initData===a)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function Ig(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Ho=new WeakMap,gn={prepare(n){Ho.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=Yt(t);Ho.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Ho.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Ho.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if(Yt(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function bg(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new Kr(e))}async function Ps(n,e,t){let r=await Cs(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o,askedConfiguration:a,codecSupport:s}=r.value,d=Fe.getState(n),u=bg(i);if(Rs()&&d!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:f,loadedSessionsStore:g}=d;if(gn.hasOne(f)===!1||!_(i.serverCertificate)&&gn.has(f,i.serverCertificate))return{mediaKeys:f,mediaKeySystemAccess:o,askedConfiguration:a,stores:{loadedSessionsStore:g,persistentSessionsStore:u},options:i,codecSupport:s}}let l=await Sg(o);m.info("DRM: MediaKeys created with success");let c=new Fr(l);return{mediaKeys:l,mediaKeySystemAccess:o,askedConfiguration:a,stores:{loadedSessionsStore:c,persistentSessionsStore:u},options:i,codecSupport:s}}async function Sg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new pe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Ms(n,e,t){let r=await Ps(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await Mc(n)),r}function Vr(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function As(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(l){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(l)||d++>=o)throw l;typeof s=="function"&&s(l,d);let c=Tg(r,d,i);return await fn(c),u()}}}function Tg(n,e,t){let r=n*Math.pow(2,e-1),i=Vr(r);return Math.min(i,t)}function xs(n,e){return n.indexOf("playready")!==-1&&(zt||ar)?xo(e):e}var Bn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},ws={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function Os(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((l,c)=>{let[f,g]=typeof l=="string"?[l,c]:[c,l],p=xs(t,new Uint8Array(g)),I={keyId:p.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Ne(p)}): ${f}`),f){case ws.EXPIRED:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Ne(p)})`,{keyStatuses:[I,...d]});if(o==="error"||o===void 0)throw y;switch(o){case"close-session":throw new Bn(y);case"fallback":a.push(p);break;default:o==="continue"||o===void 0?s.push(p):Qe(o);break}d.push(I);break}case ws.INTERNAL_ERROR:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(r){case void 0:case"error":throw y;case"close-session":throw new Bn(y);case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(r!==void 0)Qe(r);else throw y}d.push(I);break}case ws.OUTPUT_RESTRICTED:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(i){case void 0:case"error":throw y;case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(i!==void 0)Qe(i);else throw y}d.push(I);break}default:s.push(p);break}});let u;return d.length>0&&(u=new pe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Ds(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new B;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(l=>{i.isCancelled()||(a.cancel(),r.onError(l))}),vo(n,l=>{a.cancel(),r.onError(new pe("KEY_ERROR",l.type))},a.signal),lc(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(l){if(i.isCancelled()||a.isUsed()&&l instanceof lr)return;a.cancel(),r.onError(l)}},a.signal),Eo(n,l=>{let c=l,f=new Uint8Array(c.message),g=w(c.messageType)?c.messageType:"license-request";m.info(`DRM: Received message event, type ${g}`,n.sessionId);let p=u(o.retry);As(()=>d(f,g),p,a.signal).then(I=>{if(a.isUsed())return Promise.resolve();if(_(I))m.info("DRM: No license given, skipping session.update");else try{return _g(n,I)}catch(y){a.cancel(),r.onError(y)}}).catch(I=>{if(a.isUsed())return;a.cancel();let y=Uc(I);if(!_(I)){let{fallbackOnLastTry:b}=I;if(b===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new Fn(y));return}}r.onError(y)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:l,blacklistedKeyIds:c,whitelistedKeyIds:f}=Os(n,e,t);l!==void 0&&(r.onWarning(l),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:c})}function d(l,c){let f;return new Promise((g,p)=>{try{m.debug("DRM: Calling `getLicense`",c);let b=e.getLicense(l,c),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{p(new zr(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(b).then(I,y)}catch(b){y(b)}function I(b){f!==void 0&&clearTimeout(f),g(b)}function y(b){f!==void 0&&clearTimeout(f),p(b)}})}function u(l){return{totalRetry:l!=null?l:2,baseDelay:200,maxDelay:3e3,shouldRetry:c=>c instanceof zr||_(c)||c.noRetry!==!0,onRetry:c=>r.onWarning(Uc(c))}}}function Uc(n){if(n instanceof zr)return new pe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new pe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function _g(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new pe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var Fn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},zr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Fn.prototype),this.message=e}};async function Eg(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new pe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Ls(n,e){if(gn.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),gn.prepare(n);try{let t=await Eg(n,e);return gn.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:Wt(t)?t:new pe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Ns(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Us(n){if(Je(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(Je(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(Je(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var Hr=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return re(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Un(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=vg(this._innerValues)),this._lazyFormattedValues}};function vg(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:Yt(t)}))}function Bs(n,e,t){let r=`${n};codecs="${e}"`,i=t.filter(o=>o.mimeType===n);if(i.length!==0)for(let{codec:o,mimeType:a,result:s}of i){let d=`${a};codecs="${o}"`;if(zo(r,d))return s}}var Wr=class extends oe{static hasEmeApis(){return!_(It.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new B;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this._supportedCodecWhenEncrypted=[],this.error=null,It.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=Ko(i);o!==null&&this.onInitializationData(o)},r.signal),Ms(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i;this._supportedCodecWhenEncrypted=i.codecSupport;let s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Us(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a,askedConfiguration:s}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let u={emeImplementation:It,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,askedConfiguration:s,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Ts(e,u,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:l}=r;if(!_(l)){let f=await Ls(i,l);f.type==="error"&&this.trigger("warning",f.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(l=>{this._onFatalError(l)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}isCodecSupported(e,t){if(this._stateData.state===0){m.error("DRM: Asking for codec support while the ContentDecryptor is still initializing");return}return(this._stateData.state===3||this._stateData.state===4)&&m.error("DRM: Asking for codec support while the ContentDecryptor is disposed"),Bs(e,t,this._supportedCodecWhenEncrypted)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=de(ie({},e),{values:new Hr(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var I,y,b;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(I=e.content)==null?void 0:I.adaptation.type,(y=e.content)==null?void 0:y.representation.bitrate,((b=e.keyIds)!=null?b:[]).map(T=>Ne(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=Z(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Ne(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;Ks(E,T);for(let R of v){let k=Array.from(E);for(let x of k)if(R.record.isAssociatedWithKeyId(x)){R.record.associateKeyIds(E.values());for(let M of k)!R.keyStatuses.whitelisted.some(A=>ge(A,M))&&!R.keyStatuses.blacklisted.some(A=>ge(A,M))&&R.keyStatuses.blacklisted.push(M);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Ne(x),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":Rg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=U.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,l=await vs(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let c={record:l.value.keySessionRecord,source:l.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(c);let{mediaKeySession:f,sessionType:g}=l.value,p=!1;if(Ds(f,o,r.keySystem,{onKeyUpdate:T=>{let v=Pg(e,c.record,o.singleLicensePer,c.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(c.record.associateKeyIds(v.whitelisted),c.record.associateKeyIds(v.blacklisted),c.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},c.record.getAssociatedKeyIds().length!==0&&g==="persistent-license"&&i.persistentSessionsStore!==null&&!p){let{persistentSessionsStore:E}=i;Ns(E,d-1),E.add(e,c.record.getAssociatedKeyIds(),f),p=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Bn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(c);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:c.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof Fn)){this._onFatalError(T);return}c.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),l.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(c);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new pe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=Z(this._currentSessions,l=>l.record.isCompatibleWith(e));if(o===void 0)return!1;if(e.forceSessionRecreation===!0)return this.removeSessionForInitData(e,t),!1;let s=o.blacklistedSessionError;if(!_(s))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let l;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:c}=o.keyStatuses;l=Lc(e.keyIds,c)}else{let{whitelisted:c}=o.keyStatuses;l=!Nn(e.keyIds,c)}if(l)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let u=this._currentSessions.indexOf(o);return u===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(u,1)),!1}removeSessionForInitData(e,t){let{stores:r}=t,i=r.loadedSessionsStore.reuse(e);i!==null&&r.loadedSessionsStore.closeSession(i.mediaKeySession).catch(()=>m.error("DRM: Cannot close the session from the loaded session store"));let o=Z(this._currentSessions,s=>s.record.isCompatibleWith(e));if(o===void 0)return;let a=this._currentSessions.indexOf(o);a!==-1&&(m.debug("DRM: A session from a processed init is removed due to forceSessionRecreation policy."),this._currentSessions.splice(a,1))}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new De("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function Rg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&Q(e,"persistent-license")}function Bc(n,e){return n.filter(t=>!e.some(r=>ge(r,t)))}function kg(n,e){let t=n.getAssociatedKeyIds(),r=Bc(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Ne(i)).join(", ")),r}function Cg(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=Bc(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Ne(i)).join(", ")),t}function Pg(n,e,t,r,i,o){var u;let a=[...i,...o],s=kg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let l=Cg(n,d);d.push(...l);let{content:c}=n;if(r&&c!==void 0){if(t==="content"){let f=new Set,{manifest:g}=c;for(let p of g.periods)Ks(f,p);Fs(f,d)}else if(t==="periods"){let{manifest:f}=c;for(let g of f.periods){let p=new Set;if(Ks(p,g),((u=n.content)==null?void 0:u.period.id)===g.id)Fs(p,d);else{let I=Array.from(p);for(let y of I)if(d.some(T=>ge(T,y))){Fs(p,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function Fs(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>ge(o,r))||e.push(r)}function Ks(n,e){let t=e.adaptations,r=yr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a)}function Kn(n){let e=Fe.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var Fc=Wr;function Kc(n){var t,r,i,o,a;let e=[];for(let s of n.periods){let d=[...(t=s.adaptations.video)!=null?t:[],...(r=s.adaptations.audio)!=null?r:[]];for(let u of d)if(u.supportStatus.hasCodecWithUndefinedSupport)for(let l of u.representations)l.isSupported===void 0&&e.push({mimeType:(i=l.mimeType)!=null?i:"",codec:(a=(o=l.codecs)==null?void 0:o[0])!=null?a:""})}return e}var Vc=[];function kt(n){Q(Vc,n)||(console.warn(n),Vc.push(n))}var $t=["audio","video","text"];function hn(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=K()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function yn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=K()-e.time;return e.livePosition+t/1e3}function bt(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=K()-e.time;return e.maximumSafePosition+t/1e3}function mt(n,e){if(e===void 0)return zs(n).filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1)}function Hc(n,e){let t=null;for(let r of n.periods){if(Vs(r,e,t))return r;t=r}}function Wo(n,e){let t=e.end;if(t===void 0)return null;let r=Z(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function Vs(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function zs(n){let e=n.adaptations;return yr(e).reduce((t,r)=>_(r)?t:t.concat(r),[])}function Go(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>o.isSupported===!0&&o.decipherable!==!1):n.representations).map(Mg),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function qo(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function jo(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>s.isSupported===!0&&s.decipherable!==!1):i.representations).map(zc),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>i.isSupported===!0&&i.decipherable!==!1):n.representations).map(zc),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Mg(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function zc(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u,contentProtections:l}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u,contentProtections:l!==void 0?{keyIds:l.keyIds}:void 0}}function Qt(n){switch(n.type){case"audio":return{type:"audio",track:Go(n,!1)};case"video":return{type:"video",track:jo(n,!1)};case"text":return{type:"text",track:qo(n)}}}function Wc(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}var Gr=class{constructor(e){this.supportMap=new Map,this.addCodecs(e)}addCodecs(e){for(let t of e){let r=this.supportMap.get(t.mimeType);r===void 0&&(r=new Map,this.supportMap.set(t.mimeType,r)),r.set(t.codec,{supported:t.supported,supportedIfEncrypted:t.supportedIfEncrypted})}}isSupported(e,t,r){let i=this.supportMap.get(e);if(i===void 0)return;let o=i.get(t);if(o!==void 0)return r?o.supportedIfEncrypted:o.supported}};var qr=class{constructor(e,t,r,i){if(this.id=e.id,this.adaptations=Object.keys(e.adaptations).reduce((o,a)=>{let s=e.adaptations[a];if(_(s))return o;let d=s.map(u=>{let l=new _r(u,r,{representationFilter:i});return l.representations.length>0&&l.supportStatus.hasSupportedCodec===!1&&t.push(l),l}).filter(u=>u.representations.length>0);if(d.every(u=>u.supportStatus.hasSupportedCodec===!1)&&s.length>0&&(a==="video"||a==="audio"))throw new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+a+" adaptations",{tracks:void 0});return d.length>0&&(o[a]=d),o},{}),!Array.isArray(this.adaptations.video)&&!Array.isArray(this.adaptations.audio))throw new ee("MANIFEST_PARSE_ERROR","No supported audio and video tracks.");this.duration=e.duration,this.start=e.start,!_(this.duration)&&!_(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i===void 0)return;let o=!1;for(let a of i){if(!a.supportStatus.hasCodecWithUndefinedSupport){a.supportStatus.hasSupportedCodec===!0&&(o=!0);continue}let s=a.supportStatus.hasSupportedCodec;a.refreshCodecSupport(t),s!==!1&&a.supportStatus.hasSupportedCodec===!1&&e.push(a),o===!1?o=a.supportStatus.hasSupportedCodec:o===void 0&&a.supportStatus.hasSupportedCodec===!0&&(o=!0)}if((r==="video"||r==="audio")&&o===!1)throw new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+r+" adaptations",{tracks:void 0})},{})}getAdaptations(){return zs(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return Z(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return mt(this,e)}containsTime(e,t){return Vs(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e}}};function jr(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.getAdaptations(),o=e.getAdaptations();for(let a=0;a<i.length;a++){let s=i[a],d=he(o,u=>u.id===s.id);if(d===-1){m.warn('Manifest: Adaptation "'+i[a].id+'" not found when merging.');let[u]=i.splice(a,1);a--,r.removedAdaptations.push({id:u.id,trackType:u.type})}else{let[u]=o.splice(d,1),l=[],c=[],f=[];r.updatedAdaptations.push({adaptation:s.id,trackType:s.type,updatedRepresentations:l,addedRepresentations:c,removedRepresentations:f});let g=s.representations,p=u.representations.slice();for(let I=0;I<g.length;I++){let y=g[I],b=he(p,T=>T.id===y.id);if(b===-1){m.warn(`Manifest: Representation "${g[I].id}" not found when merging.`);let[T]=g.splice(I,1);I--,f.push(T.id)}else{let[T]=p.splice(b,1);l.push(y.getMetadataSnapshot()),y.cdnMetadata=T.cdnMetadata,t===0?y.index._replace(T.index):y.index._update(T.index)}}p.length>0&&(m.warn(`Manifest: ${p.length} new Representations found when merging.`),s.representations.push(...p),c.push(...p.map(I=>I.getMetadataSnapshot())))}}if(o.length>0){m.warn(`Manifest: ${o.length} new Adaptations found when merging.`);for(let a of o){let s=n.adaptations[a.type];s===void 0?n.adaptations[a.type]=[a]:s.push(a),r.addedAdaptations.push(a.getMetadataSnapshot())}}return r}function Gc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=jr(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let l=e.slice(r,o),c=s-r,f=n.splice(r,c,...l);t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end}))),t.addedPeriods.push(...l.map(g=>g.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("Manifest: error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function qc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=he(n,({id:s})=>s===e[0].id);if(i<0)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=jr(n[i],e[0],1);t.updatedPeriods.push({period:j(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let l=a;l<n.length;l++)if(d.id===n[l].id){u=l;break}if(u<0){let l=-1;for(let g=a;g<n.length;g++)if(d.start<n[g].start){l=g;break}let c=l-a,f=n.splice(a,c,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end})))}else{if(u>a){m.warn("Manifest: old Periods not found in new when updating, removing");let c=n.splice(a,u-a);t.removedPeriods.push(...c.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let l=jr(n[u],d,0);t.updatedPeriods.push({period:j(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:l})}a++}if(a<n.length){m.warn("Manifest: Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var Ag=Ze(),Yr=class extends oe{constructor(e,t,r){var s;super();let{representationFilter:i,manifestUpdateUrl:o}=t;this.manifestFormat=0,this.id=Ag(),this.expired=(s=e.expired)!=null?s:null,this.transport=e.transportType,this.clockOffset=e.clockOffset,this._cachedCodecSupport=new Gr([]);let a=[];if(this.periods=e.periods.map(d=>new qr(d,a,this._cachedCodecSupport,i)).sort((d,u)=>d.start-u.start),a.length>0){let d=new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:a.map(Qt)});r.push(d)}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=o,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}updateCodecSupport(e=[]){if(e.length===0)return null;this._cachedCodecSupport.addCodecs(e);let t=[];for(let r of this.periods)r.refreshCodecSupport(t,this._cachedCodecSupport);return this.trigger("supportUpdate",null),t.length>0?new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Qt)}):null}getPeriod(e){return Z(this.periods,t=>e===t.id)}getPeriodForTime(e){return Hc(this,e)}getNextPeriod(e){return Z(this.periods,t=>t.start>e)}getPeriodAfter(e){return Wo(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return hn(this)}getLivePosition(){return yn(this)}getMaximumSafePosition(){return bt(this)}updateCodecSupportList(e){this._cachedCodecSupport=e}updateRepresentationsDeciperability(e){let t=xg(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}getAdaptations(){kt("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){kt("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return kt("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),Z(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}getCodecsWithUnknownSupport(){return Kc(this)}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=Gc(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=qc(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.updateCodecSupport(),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function xg(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations()){let o=!0;for(let a of i.representations){let s={manifest:n,period:r,adaptation:i,representation:a},d=e(s);d!==!1&&(o=!1),d!==a.decipherable&&(t.push(s),a.decipherable=d,d===!0?i.supportStatus.isDecipherable=!0:d===void 0&&i.supportStatus.isDecipherable===!1&&(i.supportStatus.isDecipherable=void 0),m.debug(`Decipherability changed for "${a.id}"`,`(${a.bitrate})`,String(a.decipherable)))}o&&(i.supportStatus.isDecipherable=!1)}return t}function Ct(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function In(n){if(_(n))return"";let{period:e,adaptation:t,representation:r,segment:i}=n,o;return i.isInit?o="init":i.complete?o=`${i.time}-${i.duration}`:o=`${i.time}`,`${t.type} P: ${e.id} A: ${t.id} R: ${r.id} S: ${o}`}var Vn=Yr;function Pt(n){return n instanceof Ee?new rt("PIPELINE_LOAD_ERROR",n):we(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function wg(n){return n instanceof Ee?n.type===cn.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===cn.TIMEOUT||n.type===cn.ERROR_EVENT:n instanceof nt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:Wt(n)&&n.code==="INTEGRITY_ERROR"}async function Hs(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("Fetchers: no CDN given to `scheduleRequestWithCdns`.");let u=new Map,l=c();if(l===void 0)throw new Error("No CDN to request");return f(l);function c(){if(n===null){let y=u.get(null);return y!==void 0&&y.isBlacklisted?void 0:null}else{if(e===null)return I(n);{let y=e.getCdnPreferenceForResource(n);return I(y)}}}async function f(y){try{return await t(y,i)}catch(b){if(B.isCancellationError(b))throw b;y!==null&&e!==null&&e.downgradeCdn(y);let T=u.get(y);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(y,T)):T.errorCounter++,!wg(b))return T.blockedUntil=void 0,T.isBlacklisted=!0,g(b);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,E=Math.min(o*Math.pow(2,v-1),a),R=Vr(E);T.blockedUntil=K()+R}return g(b)}}async function g(y){let b=c();if(i.isCancelled())throw i.cancellationError;if(b===void 0)throw y;if(d(y),i.isCancelled())throw i.cancellationError;return p(b,y)}function p(y,b){let T=u.get(y);if(T===void 0||T.blockedUntil===void 0)return f(y);let v=K(),E=T.blockedUntil-v;if(E<=0)return f(y);let R=new B,k=R.linkToSignal(i);return new Promise((x,M)=>{e==null||e.addEventListener("priorityChange",()=>{let O=c();if(i.isCancelled())throw i.cancellationError;if(O===void 0)return L(b);O!==y&&(R.cancel(),p(O,b).then(A,L))},R.signal),Gt(E,R.signal).then(()=>f(y).then(A,L),X);function A(O){k(),x(O)}function L(O){k(),M(O)}})}function I(y){var T;if(u.size===0)return y[0];let b=K();return(T=y.filter(v=>{var E;return((E=u.get(v))==null?void 0:E.isBlacklisted)!==!0}).reduce((v,E)=>{var k;let R=(k=u.get(E))==null?void 0:k.blockedUntil;return R!==void 0&&R<=b&&(R=void 0),v===void 0?[E,R]:v[1]===void 0?v:R===void 0?[E,void 0]:R<v[1]?[E,R]:v},void 0))==null?void 0:T[0]}}function Ws(n,e,t){return Hs(null,null,n,e,t)}var $r=class extends oe{constructor(e,t,r){super(),this.scheduleManualRefresh=X,this._manifestUrls=e,this._pipelines=t.manifest,this._transportName=t.transportName,this._settings=r,this._canceller=new B,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof Vn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var u;let t=this._canceller.signal,r=this._settings,i=this._transportName,o=this._pipelines,a=e!=null?e:(u=this._manifestUrls)==null?void 0:u[0],s=this._getBackoffSetting(l=>{this.trigger("warning",Pt(l))});try{let l=await d(a);return{parse:c=>this._parseLoadedManifest(l,c,a)}}catch(l){throw Pt(l)}function d(l){var y;let{loadManifest:c}=o,f=r.requestTimeout===void 0?U.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,g=r.connectionTimeout===void 0?U.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;f<0&&(f=void 0),g<0&&(g=void 0);let p={timeout:f,connectionTimeout:g,cmcdPayload:(y=r.cmcdDataBuilder)==null?void 0:y.getCmcdDataForManifest(i)};return Ws(()=>c(l,p,t),s,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var I;let i=K(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(y=>{this.trigger("warning",Pt(y))}),l=r!=null?r:(I=this._manifestUrls)==null?void 0:I[0],c={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:l};try{let y=this._pipelines.parseManifest(e,c,g,o,f);if(Og(y)){let{manifest:b,warnings:T}=await y;return p(b,T)}else return p(y.manifest,y.warnings)}catch(y){throw we(y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(y){try{return await Ws(y,u,o)}catch(b){throw Pt(b)}}function g(y){for(let b of y){if(o.isCancelled())return;let T=we(b,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function p(y,b){g(b);let T=K()-i;return m.info(`MF: Manifest parsed in ${T}ms`),{manifest:y,sendingTime:s,receivedTime:d,parsingTime:T}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=U.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=U.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:K()-t,l=Math.max(this._settings.minimumManifestUpdateInterval-u,0),c=new B;if(c.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:g,delay:p,canUseUnsafeMode:I}=f,y=I&&d,b=t===void 0?0:K()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=setTimeout(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:g,unsafeMode:y})},Math.max((p!=null?p:0)-b,T));c.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var g;(g=e.expired)==null||g.then(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},X)},l);c.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,g;s===void 0?g=f:e.lifetime<3&&s>=100?(g=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MUS: Manifest update rythm is too frequent. Postponing next request.",f,g)):s>=e.lifetime*1e3/10?(g=Math.min(Math.max(f,0)+s,f*6),m.info("MUS: Manifest took too long to parse. Postponing next request",g,g)):g=f;let p=setTimeout(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(g,l));c.signal.register(()=>{clearTimeout(p)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info('Init: Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info('Init: Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:l,parsingTime:c}=d,f=K();if(o)e.replace(u);else try{e.update(u)}catch(p){let I=p instanceof Error?p.message:"unknown error";m.warn(`MUS: Attempt to update Manifest failed: ${I}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:y}=U.getCurrent(),b=l===void 0?0:K()-l,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=X,E=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(y-b,T));v=this._canceller.signal.register(()=>{clearTimeout(E)});return}let g=K()-f;this._recursivelyRefreshManifest(e,{sendingTime:l,parsingTime:c,updatingTime:g})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function Og(n){return n instanceof Promise}var Gs=$r;var Qr=class extends oe{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=jc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=U.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=jc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function jc(n,e){return n.length===0?-1:e.id!==void 0?he(n,t=>t.id===e.id):he(n,t=>t.baseUrl===e.baseUrl)}function qs(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("Fetchers: Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var js=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},Yc=js;var Dg=Ze();function Ys({bufferType:n,pipeline:e,cdnPrioritizer:t,cmcdDataBuilder:r,eventListeners:i,requestOptions:o}){let a;o.connectionTimeout===void 0||o.connectionTimeout<0?a=void 0:a=o.connectionTimeout;let s={timeout:o.requestTimeout<0?void 0:o.requestTimeout,connectionTimeout:a,cmcdPayload:void 0},d=Q(["audio","video"],n)?new Yc:void 0,{loadSegment:u,parseSegment:l}=e;return async function(f,g,p){var $,q,W;let{segment:I,adaptation:y,representation:b,manifest:T,period:v}=f,E=In(f),R=Dg(),k,x=[],M=0,A=!1,L={segment:I,type:y.type,language:y.language,isLive:T.isLive,periodStart:v.start,periodEnd:v.end,mimeType:b.mimeType,codecs:b.codecs[0],manifestPublishTime:T.publishTime},O={onProgress(H){var V;k===void 0&&H.totalSize!==void 0&&H.size<H.totalSize&&((V=i.onProgress)==null||V.call(i,{duration:H.duration,size:H.size,totalSize:H.totalSize,timestamp:K(),id:R}))},onNewChunk(H){g.onChunk(D(H,!0))}},F=d!==void 0?d.get(f):null;if(F!==null)return m.debug("SF: Found wanted segment in cache",E),g.onChunk(D(F,!1)),Promise.resolve();m.debug("SF: Beginning request",E),($=i.onRequestBegin)==null||$.call(i,{requestTimestamp:K(),id:R,content:f}),p.register(C);try{let H=await Hs(f.representation.cdnMetadata,t,P,j({onRetry:N},o),p);if(H.resultType==="segment-loaded"){let V=H.resultData.responseData;d!==void 0&&d.add(f,H.resultData.responseData),g.onChunk(D(V,!1))}else H.resultType==="segment-created"&&g.onChunk(D(H.resultData,!1));m.debug("SF: Segment request ended with success",E),g.onAllChunksReceived(),H.resultType!=="segment-created"?(k=H.resultData,z()):k=null,p.isCancelled()||(q=i.onRequestEnd)==null||q.call(i,{id:R}),p.deregister(C)}catch(H){throw p.deregister(C),k=null,H instanceof Me?(m.debug("SF: Segment request aborted",E),H):(m.debug("SF: Segment request failed",E),(W=i.onRequestEnd)==null||W.call(i,{id:R}),Pt(H))}function C(){var H;k===void 0&&(m.debug("SF: Segment request cancelled",E),k=null,(H=i.onRequestEnd)==null||H.call(i,{id:R}))}function P(H){return s.cmcdPayload=r==null?void 0:r.getCmcdDataForSegmentRequest(f),u(H,L,s,p,O)}function D(H,V){x.push(!1);let ae=x.length-1;return function(le){let Se={data:H,isChunked:V};try{let Y=l(Se,L,le);return x[ae]||(M=M!==void 0&&Y.segmentType==="media"&&Y.chunkInfos!==null&&Y.chunkInfos.duration!==void 0?M+Y.chunkInfos.duration:void 0,x[ae]=!0,z()),Y}catch(Y){throw we(Y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function N(H){g.onRetry(Pt(H))}function z(){var H;A||!_(k)&&k.size!==void 0&&k.requestDuration!==void 0&&x.length>0&&x.every(V=>V)&&(A=!0,(H=i.onMetrics)==null||H.call(i,{size:k.size,requestDuration:k.requestDuration,content:f,segmentDuration:M}))}}}function $c({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=U.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var Xr=class extends oe{constructor(e){super(),this._segmentFetcher=e,this._currentContentInfo=null}getRequestedInitSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.initSegmentRequest)==null?void 0:t.segment)!=null?r:null}getRequestedMediaSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.mediaSegmentRequest)==null?void 0:t.segment)!=null?r:null}resetForContent(e,t){var a;(a=this._currentContentInfo)==null||a.currentCanceller.cancel();let r=new G({initSegment:null,segmentQueue:[]}),i=new B;i.signal.register(()=>{r.finish()});let o={content:e,downloadQueue:r,initSegmentInfoRef:t?new G(void 0):new G(null),currentCanceller:i,initSegmentRequest:null,mediaSegmentRequest:null,mediaSegmentAwaitingInitMetadata:null};return this._currentContentInfo=o,r.onUpdate(s=>{let{segmentQueue:d}=s;if(d.length>0&&d[0].segment.id===o.mediaSegmentAwaitingInitMetadata)return;let u=o.mediaSegmentRequest;if(d.length===0){if(u===null)return;m.debug("SQ: no more media segment to request. Cancelling queue.",e.adaptation.type),this._restartMediaSegmentDownloadingQueue(o);return}else if(u===null){m.debug("SQ: Media segments now need to be requested. Starting queue.",e.adaptation.type,d.length),this._restartMediaSegmentDownloadingQueue(o);return}else{let l=d[0];if(u.segment.id!==l.segment.id){m.debug("SQ: Next media segment changed, cancelling previous",e.adaptation.type),this._restartMediaSegmentDownloadingQueue(o);return}u.priority!==l.priority&&(m.debug("SQ: Priority of next media segment changed, updating",e.adaptation.type,u.priority,l.priority),this._segmentFetcher.updatePriority(u.request,l.priority));return}},{emitCurrentValue:!0,clearSignal:i.signal}),r.onUpdate(s=>{var u;let d=o.initSegmentRequest;if(s.initSegment!==null&&d!==null){s.initSegment.priority!==d.priority&&this._segmentFetcher.updatePriority(d.request,s.initSegment.priority);return}else if(((u=s.initSegment)==null?void 0:u.segment.id)===(d==null?void 0:d.segment.id))return;s.initSegment===null&&m.debug("SQ: no more init segment to request. Cancelling queue.",e.adaptation.type),this._restartInitSegmentDownloadingQueue(o,s.initSegment)},{emitCurrentValue:!0,clearSignal:i.signal}),r}stop(){var e;(e=this._currentContentInfo)==null||e.currentCanceller.cancel(),this._currentContentInfo=null}_restartMediaSegmentDownloadingQueue(e){e.mediaSegmentRequest!==null&&e.mediaSegmentRequest.canceller.cancel();let{downloadQueue:t,content:r,initSegmentInfoRef:i,currentCanceller:o}=e,{segmentQueue:a}=t.getValue(),s=a[0],d=u=>{if(o!==null&&o.isUsed()){e.mediaSegmentRequest=null;return}if(u===void 0){e.mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let l=new B,c=o===null?X:l.linkToSignal(o.signal),{segment:f,priority:g}=u,p=j({segment:f},r),I=!1,y=!1;l.signal.register(()=>{e.mediaSegmentRequest=null,!I&&(e.mediaSegmentAwaitingInitMetadata===f.id&&(e.mediaSegmentAwaitingInitMetadata=null),I=!0,y=!1)});let b=E=>{J(E.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",j({},E,{segment:f}))},T=()=>{let E=t.getValue().segmentQueue;if(E.length===0){I=!0,this.trigger("emptyQueue",null);return}else E[0].segment.id===f.id&&E.shift();I=!0,d(E[0])},v=this._segmentFetcher.createRequest(p,g,{onRetry:E=>{this.trigger("requestRetry",{segment:f,error:E})},beforeInterrupted(){m.info("SQ: segment request interrupted temporarly.",f.id,f.time)},onChunk:E=>{let R=i.getValue();R!==void 0?b(E(R!=null?R:void 0)):(y=!0,i.waitUntilDefined(k=>{b(E(k!=null?k:void 0))},{clearSignal:l.signal}))},onAllChunksReceived:()=>{y?(e.mediaSegmentAwaitingInitMetadata=f.id,i.waitUntilDefined(()=>{e.mediaSegmentAwaitingInitMetadata=null,y=!1,this.trigger("fullyLoadedSegment",f)},{clearSignal:l.signal})):this.trigger("fullyLoadedSegment",f)},beforeEnded:()=>{c(),e.mediaSegmentRequest=null,y?i.waitUntilDefined(T,{clearSignal:l.signal}):T()}},l.signal);v.catch(E=>{c(),I||(I=!0,this.stop(),this.trigger("error",E))}),e.mediaSegmentRequest={segment:f,priority:g,request:v,canceller:l}};d(s)}_restartInitSegmentDownloadingQueue(e,t){let{content:r,initSegmentInfoRef:i}=e;if(e.initSegmentRequest!==null&&e.initSegmentRequest.canceller.cancel(),t===null)return;let o=new B,a=e.currentCanceller===null?X:o.linkToSignal(e.currentCanceller.signal),{segment:s,priority:d}=t,u=j({segment:s},r),l=!1,c=this._segmentFetcher.createRequest(u,d,{onRetry:f=>{this.trigger("requestRetry",{segment:s,error:f})},beforeInterrupted:()=>{m.info("SQ: init segment request interrupted temporarly.",s.id)},beforeEnded:()=>{a(),e.initSegmentRequest=null,l=!0},onChunk:f=>{var p;let g=f(void 0);J(g.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",j({},g,{segment:s})),g.segmentType==="init"&&i.setValue((p=g.initTimescale)!=null?p:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",s)}},o.signal);c.catch(f=>{a(),l||(l=!0,this.stop(),this.trigger("error",f))}),o.signal.register(()=>{e.initSegmentRequest=null,!l&&(l=!0)}),e.initSegmentRequest={segment:s,priority:d,request:c,canceller:o}}};var Jr=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("TP: the max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ot(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{g(),this._endTask(o)},l=p=>{r.beforeEnded(),u(),a(p)},c=p=>{u(),s(p)},f=new B,g=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(l).catch(p=>{!i.isCancelled()&&f.isUsed()&&p instanceof Me||c(p)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=Zr(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=Zr(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=Zr(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=Zr(e,this._pendingTasks);if(i<0){m.warn("TP: request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e of this._pendingTasks)if(e.priority>=this._prioritySteps.low)return this._interruptPendingTask(e),this._interruptCancellableTasks()}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("TP : Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=Zr(e.taskFn,this._pendingTasks);if(t<0){m.warn("TP: Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function Zr(n,e){return he(e,t=>t.taskFn===n)}var ei=class{constructor(e,t,r,i){let o=new Qr(i),{MIN_CANCELABLE_PRIORITY:a,MAX_HIGH_PRIORITY_LEVEL:s}=U.getCurrent();this._transport=e,this._prioritizer=new Jr({prioritySteps:{high:s,low:a}}),this._cdnPrioritizer=o,this._backoffOptions=r,this._cmcdDataBuilder=t}createSegmentQueue(e,t){let r=$c(this._backoffOptions),i=this._transport[e],o=Ys({bufferType:e,pipeline:i,cdnPrioritizer:this._cdnPrioritizer,cmcdDataBuilder:this._cmcdDataBuilder,eventListeners:t,requestOptions:r}),a=qs(this._prioritizer,o);return new Xr(a)}};var $s=ei;var bn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return Z(this._array,e)}has(e){return Q(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var ti=class extends oe{constructor(e,t,r){super(),this._canceller=new B,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new Qs(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new ee("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new ee("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!0,clearSignal:o}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new bn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},Qs=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=Yo(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=Yo(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=Yo(this._lastAudioAdaptation),t=Yo(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=$o(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=$o(this._lastAudioAdaptation))!=null?t:void 0;{let r=$o(this._lastAudioAdaptation),i=$o(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function Yo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function $o(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getEnd();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function Xs(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new ti(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("Init: end-of-stream order received."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var ni=class{constructor(e){this._segmentSinksStore=e,this._currentFreezeTimestamp=null}needToReload(e){let{readyState:t,rebuffering:r,freezing:i}=e;if((e.bufferGap!==void 0&&isFinite(e.bufferGap)?e.bufferGap:0)<6||r===null&&i===null||t>1)return this._currentFreezeTimestamp=null,!1;let a=K();this._currentFreezeTimestamp===null&&(this._currentFreezeTimestamp=a);let s=r!==null&&a-r.timestamp>4e3,d=i!==null&&a-i.timestamp>4e3;if((s||d)&&K()-this._currentFreezeTimestamp>4e3){let u=this._segmentSinksStore.getStatus("audio"),l=this._segmentSinksStore.getStatus("video"),c=!0,f=!0;for(let g of[u,l])if(g.type==="initialized")for(let p of g.value.getLastKnownInventory()){let{representation:I}=p.infos;if(I.decipherable===!1)return m.warn("Init: we have undecipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0;I.contentProtections!==void 0&&(f=!1,I.decipherable!==!0&&(c=!1))}if(!f&&c)return m.warn("Init: we are frozen despite only having decipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0}return!1}};function Qo({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Lg(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{let u=d instanceof Error?d.message:"Unknown error";m.error("Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Lg(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=Vl(t,e),u=()=>{if(isFinite(r)){for(let c of d)e-r>=c.end?a.push(c):e>=c.end&&e-r>c.start&&e-r<c.end&&a.push({start:c.start,end:e-r});_(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},l=()=>{if(isFinite(i)){for(let c of d)e+i<=c.start?a.push(c):e<=c.start&&e+i<c.end&&e+i>c.start&&a.push({start:e+i,end:c.end});_(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),l();for(let c of a)if(c.start<c.end){if(m.debug("GC: cleaning range from SegmentSink",c.start,c.end),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(c.start,c.end)}}var ri=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=K();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Ct(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var ii=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=U.getCurrent();this._inventory=[],this._bufferedHistory=new ri(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,l,c,f,g,p;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=U.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let I=e.map(y=>`${y.start}-${y.end}`).join(",");m.debug(`SI: synchronizing ${a!=null?a:"unknown"} buffered ranges:`,I)}let s=e.length;for(let I=0;I<s;I++){if(i===void 0)return;let y=e[I].start,b=e[I].end;if(b-y<o){m.warn("SI: skipped range when synchronizing because it was too small",a,y,b);continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-y<o;)i=t[++r];let v=null,E=r-T;if(E>0){let k=t[T+E-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug(`SI: ${E} segments GCed.`,a);let x=t.splice(T,E);for(let M of x)M.bufferedStart===void 0&&M.bufferedEnd===void 0&&M.status!==2&&this._bufferedHistory.addBufferedSegment(M.infos,null);r=T}if(i===void 0)return;if(b-((l=i.bufferedStart)!=null?l:i.start)>=o){if(Ng(i,y,v,a),r===t.length-1){Xc(i,b,a);return}i=t[++r];let k=(c=i.bufferedStart)!=null?c:i.start,x=(f=i.bufferedEnd)!=null?f:i.end,M=I<s-1?e[I+1].start:void 0;for(;i!==void 0&&!(b<k||b-k<o&&x-b>=o||M!==void 0&&b-k<x-M);){let A=t[r-1];A.bufferedEnd===void 0&&(i.precizeStart?A.bufferedEnd=i.start:A.infos.segment.complete?A.bufferedEnd=A.end:A.bufferedEnd=i.start,m.debug("SI: calculating buffered end of contiguous segment",a,A.bufferedEnd,A.end)),i.bufferedStart=A.bufferedEnd,i=t[++r],i!==void 0&&(k=(g=i.bufferedStart)!=null?g:i.start,x=(p=i.bufferedEnd)!=null?p:i.end)}}let R=t[r-1];R!==void 0&&Xc(R,b,a)}if(!_(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:I}=U.getCurrent(),y=K();for(let b=r;b<t.length;b++){let T=t[b];y-T.insertionTs>=I&&(m.debug("SI: A segment at the end has been completely GCed",a,`${T.start}-${T.end}`),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(b,1),b--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug(`SI: current ${a} inventory timeline:
|
|
2
|
-
`+
|
|
3
|
-
[${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function zn(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Hn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var Zc=ii;var Wn=class{constructor(){this._segmentInventory=new Zc}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var oi=class extends Wn{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){Jc(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){Jc(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,In(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,In(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,K()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Jc(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var Zo=oi;var ai=class extends Wn{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Fg(t.chunk);let r=this._sender.pushTextData(de(ie({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Fg(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}h.CURRENT_ENV===h.DEV&&(Kg=function(e){function t(r){}});var Kg;var ef=ai;var Vg=["audio","video","text"],si=class n{static isNative(e){return tf(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r=X,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&(this._onNativeBufferAddedOrDisabled.slice().forEach(r=>r()),J(this._onNativeBufferAddedOrDisabled.length===0))}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(tf(e)){if(!_(r))return r instanceof Zo&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new Zo(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.slice().forEach(s=>s()),J(this._onNativeBufferAddedOrDisabled.length===0),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new ef(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new ee("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){Vg.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>de(ie({},i),{infos:zg(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function tf(n){return n==="audio"||n==="video"}function zg(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var Xt=si;var di=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};function Js(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=Hg(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let c=s.index.checkDiscontinuity(e.start);if(c!==null)return{start:void 0,end:c}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let c=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,c)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:c})}let l=Wg(i,e,d+1);if(l!==null){let c=i[l-1],f=i[l];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(c.infos.segment.end,f.infos.segment.time)!==!1)return null;let g=c.bufferedEnd,p=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,g,p),{start:g,end:p}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let c=Gg(i,o.end);if(c!==null){let f=i[c];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let c=i.length-1;c>=0;c--){let f=i[c];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let g=s.index.checkDiscontinuity(e.end);if(g!==null)return{start:f.bufferedEnd,end:g}}return null}}}return null}function Hg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Wg(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function Gg(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function ed({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,l=qg(n,a,s),c=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!nf(R.infos,e,t,r)),g=Jg(f,o,i),{MINIMUM_SEGMENT_SIZE:p,MIN_BUFFER_AHEAD:I}=U.getCurrent(),y=!1,b=Math.min(1/60,p),T=!1,v=[];return{segmentsToLoad:c.filter(R=>{let k=j({segment:R},e);if(a.length>0&&a.some(C=>Ct(k,C)))return!1;let{duration:x,time:M,end:A}=R;if(R.isInit)return!0;if(y)return v.push(R),!1;if(R.complete&&x<p||a.length>0&&a.some(C=>{if(C.period.id!==e.period.id||C.adaptation.id!==e.adaptation.id)return!1;let{segment:P}=C;if(P.time-b>M)return!1;if(P.complete){if(P.end+b<A)return!1}else if(Math.abs(M-P.time)>M)return!1;return!nf(C,k,t,r)}))return!1;for(let F of g){let C=F.infos.period.id===e.period.id;if(F.status===1&&C){let P=F.infos.segment;if(M-P.time>-b){if(P.complete){if(P.end-A>-b)return!1}else if(Math.abs(M-P.time)<b)return!1}}}let L=x*e.representation.bitrate;if(l-L<0&&(T=!0,M>o.start+I))return y=!0,v.push(R),!1;let O=i(k);if(O.length>1){let F=O[O.length-1],C=O[O.length-2];if(F.buffered===null&&C.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let F=0;F<g.length;F++){let C=g[F];if(C.end+b>M){let P=C.start>M+b||jg(g,F).end<A-b;return P&&(l-=L),P}}return l-=L,!0}),segmentsOnHold:v,isBufferFull:T}}function qg(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function jg(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=U.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function nf(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=U.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:Yg(n.representation,e.representation,r)}function Yg(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=U.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function $g(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function Qg(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function Xg(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Zg(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Jg(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if($g(r,a,e.start)){if(d=t(r.infos),Xg(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if(Qg(r,s,e.end)){if(d=d!=null?d:t(r.infos),Zg(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function ui(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=U.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function td(n,e,t,r,i,o,a){var M,A,L;let{representation:s}=n,d=(A=(M=t.getIsPaused())!=null?M:t.getReference().getValue().paused.pending)!=null?A:t.getReference().getValue().paused.last,u=(L=t.getPlaybackRate())!=null?L:t.getReference().getValue().speed,l=e;(d===void 0||u===void 0||d||u<=0)&&(l-=.1);let c=eh(n,l,i),f=s.index.shouldRefresh(c.start,c.end),g=a.getPendingOperations().filter(O=>O.type===2).map(O=>O.value),p=a.getLastKnownInventory(),I=t.getCurrentTime();I===void 0&&(I=t.getReference().getValue().position.getWanted());let y=a.getSegmentHistory.bind(a),{segmentsToLoad:b,segmentsOnHold:T,isBufferFull:v}=ed({content:n,bufferedSegments:p,currentPlaybackTime:I,fastSwitchThreshold:r,getBufferedHistory:y,neededRange:c,segmentsBeingPushed:g,maxBufferSize:o}),E=b.map(O=>({priority:ui(O.time,l),segment:O})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&c.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return g.length>0&&(k=Math.min(...g.map(O=>O.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:Js(n,c,k,R,p),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function eh(n,e,t){var c;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&Xt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&th(i,o,e)?r=s-1:r=e-.1;let u=r+t,l;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?l=!1:s===void 0?l=u>=o.end:s===null?l=!0:l=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(c=o.end)!=null?c:1/0),hasReachedPeriodEnd:l}}function th(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}async function li(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Me)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new ee("BUFFER_APPEND_ERROR",d,{tracks:[Qt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await fn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Me)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new ee("BUFFER_FULL_ERROR",u,{tracks:[Qt(t.inventoryInfos.adaptation)]})}}}async function nd({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=j({segment:r,chunkSize:void 0,start:0,end:0},e),l=await li(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:l}}async function rd({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,x;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:l,chunkSize:c,appendWindow:f}=i,g=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:p}=U.getCurrent(),I=[f[0]!==void 0?Math.max(0,f[0]-p.START):void 0,f[1]!==void 0?f[1]+p.END:void 0],y={initSegmentUniqueId:r,chunk:d,timestampOffset:l,appendWindow:I,codec:g},b=(k=u==null?void 0:u.time)!=null?k:o.time,T=(x=u==null?void 0:u.duration)!=null?x:o.duration,v=b+T;I[0]!==void 0&&(b=Math.max(b,I[0])),I[1]!==void 0&&(v=Math.min(v,I[1]));let E=j({segment:o,chunkSize:c,start:b,end:v},t),R=await li(n,a,{data:y,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function id({content:n,options:e,playbackObserver:t,segmentSink:r,segmentQueue:i,terminate:o},a,s){let{period:d,adaptation:u,representation:l}=n,{bufferGoal:c,maxBufferSize:f,drmSystemId:g,fastSwitchThreshold:p}=e,I=u.type,y=new B;y.linkToSignal(s);let b=new B;b.linkToSignal(y.signal);let T={segment:l.index.getInitSegment(),uniqueId:null,isLoaded:!1};y.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=T.segment!==null;v||(T.isLoaded=!0);let E=!1;if(g!==void 0){let A=l.getEncryptionData(g);if(A.length>0&&A.every(L=>L.keyIds!==void 0)&&(E=!0,a.encryptionDataEncountered(A.map(L=>j({content:n},L))),y.isUsed()))return}i.addEventListener("error",A=>{b.signal.isCancelled()||(y.cancel(),a.error(A))}),i.addEventListener("parsedInitSegment",x,b.signal),i.addEventListener("parsedMediaSegment",x,b.signal),i.addEventListener("emptyQueue",k,b.signal),i.addEventListener("requestRetry",A=>{if(a.warning(A.error),b.signal.isCancelled())return;let L=A.segment,{index:O}=l;O.isSegmentStillAvailable(L)===!1?k():O.canBeOutOfSyncError(A.error,L)&&a.manifestMightBeOufOfSync()},b.signal),i.addEventListener("fullyLoadedSegment",A=>{r.signalSegmentComplete(j({segment:A},n)).catch(M)},b.signal);let R=i.resetForContent(n,v);b.signal.register(()=>{i.stop()}),t.listen(k,{includeLastObservation:!1,clearSignal:b.signal}),n.manifest.addEventListener("manifestUpdate",k,b.signal),c.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),f.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),o.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),k();return;function k(){if(b.isUsed())return;let A=t.getReference().getValue(),L=A.position.getWanted(),O=td(n,L,t,p.getValue(),c.getValue(),f.getValue(),r),{neededSegments:F}=O,C=null;if(l.index.isInitialized()){if(F.length>0&&!T.isLoaded&&T.segment!==null){let N=F[0].priority;C={segment:T.segment,priority:N}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let N=A.position.getWanted();C={segment:T.segment,priority:ui(d.start,N)}}let P=o.getValue();if(P===null)R.setValue({initSegment:C,segmentQueue:F});else if(P.urgent){m.debug("Stream: Urgent switch, terminate now.",I),R.setValue({initSegment:null,segmentQueue:[]}),R.finish(),b.cancel(),a.terminating();return}else{let N=F[0],z=i.getRequestedInitSegment(),$=i.getRequestedMediaSegment(),q=$===null||N===void 0||$.id!==N.segment.id?[]:[N],W=z===null?null:C;if(R.setValue({initSegment:W,segmentQueue:q}),q.length===0&&W===null){m.debug("Stream: No request left, terminate",I),R.finish(),b.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:A.position.getWanted(),bufferType:I,imminentDiscontinuity:O.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:O.hasFinishedLoading,neededSegments:O.neededSegments}),b.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:D}=U.getCurrent();if(O.isBufferFull){let N=Math.max(0,L-D);N>0&&r.removeBuffer(0,N).catch(M)}O.shouldRefreshManifest&&a.needsManifestRefresh()}function x(A){if(!y.isUsed()){for(let L of A.protectionData)l.addProtectionData(L.initDataType,L.keyId,L.initData);if(!E){let L=l.getAllEncryptionData();if(L.length>0&&(a.encryptionDataEncountered(L.map(O=>j({content:n},O))),E=!0,y.isUsed()))return}if(A.segmentType==="init"){if(!l.index.isInitialized()&&A.segmentList!==void 0&&l.index.initialize(A.segmentList),T.isLoaded=!0,A.initializationData!==null){let L=l.uniqueId;T.uniqueId=L,r.declareInitSegment(L,A.initializationData),nd({playbackObserver:t,bufferGoal:c,content:n,initSegmentUniqueId:L,segment:A.segment,segmentData:A.initializationData,segmentSink:r},y.signal).then(O=>{O!==null&&a.addedSegment(O)}).catch(M)}k();return}else{let{inbandEvents:L,predictedSegments:O,needsManifestRefresh:F}=A;if(O!==void 0&&l.index.addPredictedSegments(O,A.segment),F===!0&&(a.needsManifestRefresh(),y.isUsed())||L!==void 0&&L.length>0&&(a.inbandEvent(L),y.isUsed()))return;let C=T.uniqueId;rd({playbackObserver:t,bufferGoal:c,content:n,initSegmentUniqueId:C,parsedSegment:A,segment:A.segment,segmentSink:r},y.signal).then(P=>{P!==null&&a.addedSegment(P)}).catch(M)}}}function M(A){y.isUsed()&&A instanceof Me||(y.cancel(),a.error(A))}}var rf=id;function od(n,e,t,r,i){var f,g,p,I;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let y of o)y.infos.period.id===n.id&&(y.infos.adaptation.id!==e.id||!Q(t.representationIds,y.infos.representation.id))&&Ht(a,{start:(f=y.bufferedStart)!=null?f:y.start,end:(g=y.bufferedEnd)!=null?g:y.end});let s=r.getPendingOperations();for(let y of s)if(y.type===0){let b=y.value.inventoryInfos;if(b.period.id===n.id&&(b.adaptation.id!==e.id||!Q(t.representationIds,b.representation.id))){let T=b.segment.time,v=T+b.segment.duration;Ht(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let y=i.getReadyState();if(y===void 0||y>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],l=zn(o,n);if(l!==null&&(l.bufferedEnd===void 0||n.start-l.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:y}=U.getCurrent(),b=e.type,T=(p=y[b].before)!=null?p:0,v=(I=y[b].after)!=null?I:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let y=Hn(o,n);y!==null&&(y.bufferedStart===void 0||y.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let c=mo(a,u);return c.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:c}:{type:"clean-buffer",value:c}}function ad({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentQueueCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:l,period:c,adaptation:f}=e,g=new B;g.linkToSignal(u);let p=new Map,I=new G(null,g.signal),y,b=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(C=>Q(b,C.id)&&C.decipherable!==!1&&C.isSupported!==!1),v=new G(T,g.signal),{estimates:E,callbacks:R}=r({manifest:l,period:c,adaptation:f},I,v,n,g.signal),k=o.createSegmentQueue(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),x=new G(0);E.onUpdate(({bitrate:C,knownStableBitrate:P})=>{t.enableFastSwitching&&x.setValueIfChanged(P),!(C===void 0||C===y)&&(y=C,m.debug(`Stream: new ${f.type} bitrate estimate`,C),d.bitrateEstimateChange({type:f.type,bitrate:C}))},{emitCurrentValue:!0,clearSignal:g.signal});let M;e.representations.onUpdate(C=>{M!==void 0&&M.cancel();let P=e.representations.getValue().representationIds,D=e.adaptation.representations.filter(N=>Q(P,N.id));v.setValueIfChanged(D),M=new B,M.linkToSignal(g.signal),A(C,M.signal).catch(N=>{(M==null?void 0:M.isUsed())===!0&&B.isCancellationError(N)||(g.cancel(),d.error(N))})},{clearSignal:g.signal,emitCurrentValue:!0});return;async function A(C,P){let D=od(c,f,C,i,n);switch(D.type){case"continue":break;case"needs-reload":return _t(()=>{n.listen(()=>{if(P.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:N}=U.getCurrent(),z=N.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:c,timeOffset:z,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:P})});case"flush-buffer":case"clean-buffer":for(let N of D.value)if(await i.removeBuffer(N.start,N.end),P.isCancelled())return;if(D.type==="flush-buffer"&&(d.needsBufferFlush(),P.isCancelled()))return;break;default:Qe(D)}L(P)}function L(C){let P=new B;P.linkToSignal(C);let{representation:D}=E.getValue();if(D===null)return;let N=new G(null,P.signal);E.onUpdate(q=>{if(!(q.representation===null||q.representation.id===D.id))return q.urgent?(m.info("Stream: urgent Representation switch",f.type),N.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),N.setValue({urgent:!1}))},{clearSignal:P.signal,emitCurrentValue:!0});let z={type:f.type,adaptation:f,period:c,representation:D};if(I.setValue(D),g.isUsed()||(d.representationChange(z),g.isUsed()))return;let $={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(q){g.cancel(),d.error(q)},addedSegment(q){R.addedSegment(q)},terminating(){if(!P.isUsed())return P.cancel(),L(C)}};O(D,N,$,C)}function O(C,P,D,N){let z=new B;z.linkToSignal(N);let $=on(a,H=>H*F(C),z.signal),q=f.type==="video"?s:new G(1/0);m.info("Stream: changing representation",f.type,C.id,C.bitrate);let W=j({},D,{error(H){var ae;let V=we(H,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(V.code!=="BUFFER_FULL_ERROR")D.error(H);else{let se=a.getValue(),Se=((ae=p.get(C.id))!=null?ae:1)*.7;if(Se<=.05||se*Se<=2)throw V;p.set(C.id,Se),Gt(4e3,g.signal).then(()=>O(C,P,D,N)).catch(X)}},terminating(){z.cancel(),D.terminating()}});rf({playbackObserver:n,content:{representation:C,adaptation:f,period:c,manifest:l},segmentSink:i,segmentQueue:k,terminate:P,options:{bufferGoal:$,maxBufferSize:q,drmSystemId:t.drmSystemId,fastSwitchThreshold:x}},W,N),l.addEventListener("manifestUpdate",H=>{for(let V of H.updatedPeriods)if(V.period.id===c.id){for(let ae of V.result.updatedAdaptations)if(ae.adaptation===f.id){for(let se of ae.removedRepresentations)if(se===C.id)return N.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:c,timeOffset:0,stayInPeriod:!0})}}else if(V.period.start>c.start)break},N)}function F(C){let P=p.get(C.id),D=P!==void 0?P:1;return P===void 0&&p.set(C.id,D),D}}var of=ad;function sd(n,e,t,r,i,o){var g,p,I,y;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!nh(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let b of a)b.infos.period.id===e.id&&b.infos.adaptation.id!==t.id&&Ht(s,{start:(g=b.bufferedStart)!=null?g:b.start,end:(p=b.bufferedEnd)!=null?p:b.end});let d=n.getPendingOperations();for(let b of d)if(b.type===0){let T=b.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Ht(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let b=i.getReadyState();if(b===void 0||b>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",l=[],c=zn(a,e);if(c!==null&&(c.bufferedEnd===void 0||e.start-c.bufferedEnd<1)&&l.push({start:0,end:e.start+1}),!u){let b=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=U.getCurrent(),v=(I=T[b].before)!=null?I:0,E=(y=T[b].after)!=null?y:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),l.push({start:R-v,end:R+E})}if(e.end!==void 0){let b=Hn(a,e);b!==null&&(b.bufferedStart===void 0||b.bufferedStart-e.end<1)&&l.push({start:e.end-1,end:Number.MAX_VALUE})}let f=mo(s,l);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function nh(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&zo(t.getMimeTypeString(),e))}function dd({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentQueueCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},l,c){let{manifest:f,period:g}=e,p=new G(void 0,c);if(l.periodStreamReady({type:n,manifest:f,period:g,adaptationRef:p}),c.isCancelled())return;let I,y=!0;p.onUpdate(v=>{(async()=>{var C;if(v===void 0)return;let E=new B;if(E.linkToSignal(c),I==null||I.cancel(),I=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,g.start);let P=a.getStatus(n);if(P.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),Xt.isNative(n))return T(0,!0,E.signal);{let D=(C=g.end)!=null?C:1/0;if(g.start>D)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await P.value.removeBuffer(g.start,D),E.isUsed())return}}else if(P.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return l.adaptationChange({type:n,adaptation:null,period:g}),E.isUsed()?void 0:af(r,d,n,{period:g},l,E.signal)}let R=g.adaptations[n],k=Z(R!=null?R:[],P=>P.id===v.adaptationId);if(k===void 0){I.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:x}=U.getCurrent(),M=!1,A;if(y)A=0;else if(v.relativeResumingPosition!==void 0)A=v.relativeResumingPosition;else switch(M=!0,n){case"audio":A=x.trackSwitch.audio;break;case"video":A=x.trackSwitch.video;break;default:A=x.trackSwitch.other;break}if(y=!1,Xt.isNative(n)&&a.getStatus(n).type==="disabled")return T(A,!0,E.signal);f.addEventListener("manifestUpdate",P=>{for(let D of P.updatedPeriods)if(D.period.id===g.id){for(let N of D.result.removedAdaptations)if(N.id===k.id)return T(A,!0,E.signal)}else if(D.period.start>g.start)break},I.signal);let{representations:L}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${g.start}`),l.adaptationChange({type:n,adaptation:k,period:g}),E.isUsed())return;let O=rh(a,n,k),F=sd(O,g,k,v.switchingMode,r,s);if(F.type==="needs-reload")return T(A,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(F.type==="flush-buffer"||F.type==="clean-buffer"){for(let{start:P,end:D}of F.value)if(await O.removeBuffer(P,D),E.isUsed())return;if(F.type==="flush-buffer"&&(l.needsBufferFlush({relativeResumingPosition:A,relativePosHasBeenDefaulted:M}),E.isUsed()))return}t.get(O)(E.signal),b(k,L,O,E.signal)}})().catch(E=>{E instanceof Me||(I==null||I.cancel(),l.error(E))})},{clearSignal:c,emitCurrentValue:!0});function b(v,E,R,k){let x=oh(r,v.type);of({content:{manifest:f,period:g,adaptation:v,representations:E},options:s,playbackObserver:x,representationEstimator:i,segmentSink:R,segmentQueueCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},de(ie({},l),{error:M}),k);function M(A){if(!Xt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,A instanceof Error?A:""),a.disposeSegmentSink(n);let L=we(A,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return l.warning(L),k.isCancelled()?void 0:af(r,d,n,{period:g},l,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,A instanceof Error?A:""),l.error(A)}}function T(v,E,R){_t(()=>{r.listen(()=>{R.isCancelled()||l.waitingMediaSourceReload({bufferType:n,period:g,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function rh(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=ih(t);return n.createSegmentSink(e,i)}function ih(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new ee("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Qt(n)]});return e[0].getMimeTypeString()}function oh(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new G(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],l=u!==null?fo(u,d.position.getWanted()):0;return j({},d,{bufferGap:l,buffered:u})}function s(){o.setValue(a())}})}function af(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),l=e.getValue(),c=u.position.getWanted();a.end!==void 0&&c+l>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:c,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var sf=dd;function Jo(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i of r)if(e.some(a=>i.infos.period.id===a.period.id&&i.infos.adaptation.id===a.adaptation.id&&i.infos.representation.id===a.representation.id)){let{bufferedStart:a,bufferedEnd:s}=i;if(a===void 0||s===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let d=t[t.length-1];d!==void 0&&d.end===a?d.end=s:t.push({start:a,end:s})}return t}function ud(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:l,maxBufferBehind:c,wantedBufferAhead:f,maxVideoBufferSize:g}=o,{MINIMUM_MAX_BUFFER_AHEAD:p,MAXIMUM_MAX_BUFFER_AHEAD:I,MAXIMUM_MAX_BUFFER_BEHIND:y}=U.getCurrent(),b=new di(E=>{var M,A;let{bufferType:R}=E,k=(M=y[R])!=null?M:1/0,x=(A=I[R])!=null?A:1/0;return L=>{Qo({segmentSink:E,playbackObserver:e,maxBufferBehind:on(c,O=>Math.min(O,k),L),maxBufferAhead:on(l,O=>{var C;let F=Math.max(O,(C=p[R])!=null?C:0);return Math.min(F,x)},L)},L)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new bn((F,C)=>F.start-C.start),x=!1,M=new B;return M.linkToSignal(s),e.listen(({position:F})=>{var D;let C=F.getWanted();if(!x||!L(C))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,C),x=!1;k.length()>0;){let N=k.get(k.length()-1);k.removeElement(N),a.periodStreamCleared({type:E,manifest:d,period:N})}M.cancel(),M=new B,M.linkToSignal(s);let P=(D=d.getPeriodForTime(C))!=null?D:d.getNextPeriod(C);if(P===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),x=!0;return}A(P)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",F=>{s.isCancelled()||O(F).catch(C=>{s.isCancelled()||(M.cancel(),a.error(C))})},s),A(R);function A(F){let C=de(ie({},a),{waitingMediaSourceReload(P){let D=k.head();D===void 0||D.id!==P.period.id?a.lockedStream({bufferType:P.bufferType,period:P.period}):a.needsMediaSourceReload({timeOffset:P.timeOffset,minimumPosition:P.stayInPeriod?P.period.start:void 0,maximumPosition:P.stayInPeriod?P.period.end:void 0})},periodStreamReady(P){x=!0,k.add(P.period),a.periodStreamReady(P)},periodStreamCleared(P){k.removeElement(P.period),a.periodStreamCleared(P)},error(P){M.cancel(),a.error(P)}});v(E,F,C,M.signal)}function L(F){let C=k.head(),P=k.last();return C===void 0||P===void 0?!0:C.start>F||(_(P.end)?1/0:P.end)<F}async function O(F){let C=r.getStatus(E),P=F.filter(W=>W.adaptation.type===E);if(P.length===0||C.type!=="initialized"||P.every(W=>W.representation.decipherable===!0))return;let D=C.value,N=P.filter(W=>W.representation.decipherable===void 0),z=P.filter(W=>W.representation.decipherable===!1),$=Jo(D,z),q=Jo(D,N);for(x=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let W=k.get(k.length()-1);k.removeElement(W),a.periodStreamCleared({type:E,manifest:d,period:W})}M.cancel(),M=new B,M.linkToSignal(s);for(let{start:W,end:H}of[...$,...q]){if(s.isCancelled())return;if(W<H){if(s.isCancelled())return;await D.removeBuffer(W,H)}}_t(()=>{if(s.isCancelled())return;let W=e.getReference().getValue();if(df(W,$)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(df(W,q)&&(a.needsBufferFlush(),s.isCancelled()))return;let H=W.position.getWanted(),V=d.getPeriodForTime(H);if(V===void 0){a.error(new ee("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}A(V)})}}function v(E,R,k,x){m.info("Stream: Creating new Stream for",E,R.start);let M=null,A=new B;A.linkToSignal(x),e.listen(({position:P},D)=>{if(R.end!==void 0&&P.getWanted()>=R.end){let N=d.getPeriodAfter(R);if(R.containsTime(P.getWanted(),N))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,P.getWanted(),R.end),D(),k.periodStreamCleared({type:E,manifest:d,period:R}),A.cancel()}},{clearSignal:x,includeLastObservation:!0});let L={bufferType:E,content:{manifest:d,period:R},garbageCollectors:b,maxVideoBufferSize:g,segmentQueueCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},O=de(ie({},k),{streamStatusUpdate(P){if(P.hasFinishedLoading){let D=d.getPeriodAfter(R);D!==null&&F(D)}else M!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null);k.streamStatusUpdate(P)},error(P){M!==null&&(M.canceller.cancel(),M=null),A.cancel(),k.error(P)}});sf(L,O,A.signal),C(A.signal);function F(P){if(M!==null){if(M.period.id===P.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,P.id,M.period.id),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel()}let D=new B;D.linkToSignal(x),M={canceller:D,period:P},v(E,P,k,M.canceller.signal)}function C(P){d.addEventListener("manifestUpdate",D=>{for(let N of D.removedPeriods)if(N.id===R.id){if(d.periods.length>0&&d.periods[0].start<=N.start)return _t(()=>{if(!P.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(N.start>R.start)break;if(D.addedPeriods.length>0&&M!==null){let N=d.getPeriodAfter(R);(N===null||M.period.id!==N.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null)}},P)}}}function df(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var uf=ud;var lf=uf;var ah={dashParsers:{wasm:null,native:null,fastJs:null},createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},ci=ah;function ea(n){for(let e of n)if(typeof e=="function")e(ci);else if(!_(e)&&typeof e._addFeature=="function")e._addFeature(ci);else throw new Error("Unrecognized feature")}var me=ci;var sh={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},X),{syncValue:e,getValueAsAsync(){return n}}}},cf=sh;var Gn=class extends oe{};function ld(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=Z(n.sourceBuffers,s=>s.type==="audio"),i=Z(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function cd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,l){let c=new B;c.linkToSignal(l),c.linkToSignal(s);let f=new G(g(),c.signal);return o.onUpdate(p,{clearSignal:c.signal,emitCurrentValue:!1}),u.onUpdate(p,{clearSignal:c.signal,emitCurrentValue:!1}),f;function g(){let I=u.getValue(),y=o.getValue();return dh(I,r),{maximumPosition:bt(r),bufferGap:I.bufferGap,position:I.position,buffered:ld(i,a),duration:I.duration,rebuffering:I.rebuffering,freezing:I.freezing,paused:{last:I.paused,pending:uh(t,e)},readyState:I.readyState,speed:y}}function p(){f.setValue(g())}})}function dh(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function uh(n,e){return n.getValue()?void 0:!e}function qn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}function fd(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function lh(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function fi(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=lh(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new B;i.linkToSignal(e);for(let o of r)sc(o,()=>{i.cancel(),fi(n,e)},i.signal);dc(t,()=>{i.cancel(),fi(n,e)},i.signal)}function ff(n,e){let t=new B;t.linkToSignal(e),Dn(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new B,t.linkToSignal(e),fi(n,t.signal)},e),fi(n,t.signal)}function md(){return ln}var ch=365*24*3600,mi=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new B;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=ph(r,i),a=new B;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new B,a.linkToSignal(i);let d=mh(r.sourceBuffers,a.signal),u=new B;return u.linkToSignal(a.signal),d.onUpdate(l=>{u.cancel(),u=new B,u.linkToSignal(a.signal),!l&&pf(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function fh(n,e,t){let r=e;t||(r=md()?1/0:mf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=mf(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function mh(n,e){if(n.length===0){let i=new G(!1);return i.finish(),i}let t=new G(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function ph(n,e){let t=new G(n.readyState==="open",e);return Dn(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),_o(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),To(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function pf(n,e,t,r){if(fh(n,e,t)==="success")return;let o=setTimeout(()=>{a(),pf(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function mf(n){return Math.max(Math.pow(2,32),n+ch)}var pi=class extends oe{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new B,_(an))throw new ee("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new an,r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this.readyState=t.readyState,this._durationUpdater=new mi(t),this._endOfStreamCanceller=null,Dn(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),_o(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),To(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new pd(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new B,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),ff(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),gh(this._mediaSource)}},pd=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new B,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let l of d)l.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("updateend",o),r.addEventListener("error",i),this._canceller.signal.register(()=>{r.removeEventListener("updateend",o),r.removeEventListener("error",i)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Me;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=j({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let l;s instanceof ArrayBuffer?l=new Uint8Array(s):s instanceof Uint8Array?l=s:l=new Uint8Array(s.buffer);let c=[l];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],g=(r=d.appendWindow)!=null?r:[void 0,void 0],p=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],I=(o=d.timestampOffset)!=null?o:0,y=(a=f.params[1].timestampOffset)!=null?a:0;if(g[0]===p[0]&&g[1]===p[1]&&d.codec===f.params[1].codec&&I===y){let b=f.params[0],T;b instanceof ArrayBuffer?T=new Uint8Array(b):b instanceof Uint8Array?T=b:T=new Uint8Array(b.buffer),c.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}c.length>1&&(m.info(`MMSI: Merging ${c.length} segments together for perf`,this.type),u=re(...c))}try{this._appendBufferNow(u,d)}catch(l){let c=l instanceof Error?new it(l.name,l.message,l.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(c)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let l=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(l),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),fd(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function gh(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var hh=Ze();function gd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),qn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function yh(n,e){let t=w(n.src)?n.src:null;gd(n,t);let r=new pi(hh());return e.register(()=>{r.dispose()}),r}function ta(n,e){return ot(e,t=>{let r=yh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{gd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{gd(n,i)})}})}function hd(n,e,t){var i;if(!_(t)){let o=hn(n),a=bt(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=yn(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=hn(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=bt(n),d,{DEFAULT_LIVE_GAP:u}=U.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let c=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(K()+a)/1e3-c;d=Math.min(s,f)}let l=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${l}`),Math.max(d-l,r)}return m.info("Init: starting at the minimum available position:",r),r}function gi(){return La}function yd(n){return!(n&&un)}function Id(){return ln}function hi(n,e,t,r){let i=new B;i.linkToSignal(r);let o=new G(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!yd(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=Id()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!gi()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var Ih=!un,gf=Ih;var jn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function yi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new G(!1,a);return{autoPlayResult:new Promise((u,l)=>{let c=a.register(b=>{l(b)});if(a.isCancelled())return;let f=!1,g=b=>{e.setCurrentTime(b),f=!0};if(!i||typeof t=="number"){let b=typeof t=="number"?t:t();b!==0&&g(b),p()}else e.listen((b,T)=>{if(b.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(gf?g(v):setTimeout(()=>{g(v)},0)),p()}},{includeLastObservation:!0,clearSignal:a});function p(){let b=!1;e.listen((T,v)=>{if(!b&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(b=!0),!(f&&!b||T.readyState===0)){if(v(),gi()&&n.duration===0){let E=new ee("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||I()}},{includeLastObservation:!0,clearSignal:a})}function I(){e.listen((b,T)=>{b.seeking===0&&b.rebuffering===null&&b.readyState>=1&&(T(),y())},{includeLastObservation:!0,clearSignal:a})}function y(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),c(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),c(),u({type:"skipped"});let b;try{b=(T=n.play())!=null?T:Promise.resolve()}catch(v){return c(),l(v)}b.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),c(),u({type:"autoplay"})}).catch(v=>{if(c(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new ee("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else l(v)})}}),initialPlayPerformed:s}}function Ii(n,e,t,r){if(e.length===0)return u("No `keySystems` option given.");if(me.decrypt===null)return u("EME feature not activated.");let i=new B;i.linkToSignal(r);let o=new G({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},r),a=me.decrypt;if(!a.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let s=new a(n,e),d=l=>{var c;l>0&&((c=t.onCodecSupportUpdate)==null||c.call(t),s.removeEventListener("stateChange",d))};return s.addEventListener("stateChange",d),s.addEventListener("stateChange",l=>{if(l===1){let c=new G(!1);c.onUpdate((f,g)=>{f&&(g(),l===1&&s.attach())},{clearSignal:i.signal}),o.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:c}},drmSystemId:s.systemId})}else l===2&&(o.setValue({initializationState:{type:"initialized",value:null},drmSystemId:s.systemId}),s.removeEventListener("stateChange"))}),s.addEventListener("error",l=>{i.cancel(),t.onError(l)}),s.addEventListener("warning",l=>{t.onWarning(l)}),s.addEventListener("blackListProtectionData",l=>{t.onBlackListProtectionData(l)}),s.addEventListener("keyIdsCompatibilityUpdate",l=>{t.onKeyIdsCompatibilityUpdate(l)}),i.signal.register(()=>{s.dispose()}),{statusRef:o,contentDecryptor:{enabled:!0,value:s}};function u(l){let c=new pe("MEDIA_IS_ENCRYPTED_ERROR",l),f=new G({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return f.finish(),{statusRef:f,contentDecryptor:{enabled:!1,value:c}}}}var bi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Si=1/60,Sn=class extends oe{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new B}start(){if(this._isStarted)return;this._isStarted=!0;let e=new Td(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:l,FREEZING_STALLED_DELAY:c,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:g}=U.getCurrent();if(u!==null){let T=K(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+g),t={attemptTimestamp:T}),T-u.timestamp>c){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let p=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",p);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",p);return}let{position:I}=d;if(I!=null&&this._speed.getValue()>0){let T=bh(i,this._manifest,I);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",Sd(I,v));return}}}let y=I!=null?I:a.getPolled(),b=Kl(o,y);if(this._speed.getValue()>0&&b<l){let T=y+b+Si;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",y,T,l),this._playbackObserver.setCurrentTime(T),this.trigger("warning",Sd(y,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=y){if(this._manifest.periods[T+1].start>y&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",Sd(y,E.start));return}break}}this.trigger("stalled",p)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();Sh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
|
|
4
|
-
Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function bh(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:l}=s,c=u!=null?u:d;if(t>=c-Si)if(l===null){let f=Wo(e,o);f!==null?a=f.start+Si:m.warn("Init: discontinuity at Period's end but no next Period")}else t<l+Si&&(a=l+Si);a!==void 0&&(m.info("Init: discontinuity found",t,a),r=r!==null&&r>a?r:a)}}return r}function bd(n){return n.discontinuity!==null}function Sh(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){bd(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){bd(e)&&n.splice(a,0,e);return}bd(e)&&n.push(e)}}function Sd(n,e){return new ee("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeked at position "+String(e))}var Td=class{constructor(e,t){this._speedUpdateCanceller=new B,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init: Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new B,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init: Resume playback speed",e),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function Th(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var hf=Th;function _h(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(hf(f,{id:d,start:a,end:s})){t.push(f);return}let l;if(u.value.element!==void 0)l=u.value.element;else if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((p,I)=>p+"xmlns:"+I.key+'="'+I.value+'" ',"<toremove ");f+=">";let g=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;l=g.children.length>0?g.children[0]:g.childNodes[0]}else return;let c={type:u.type,value:de(ie({},u.value),{element:l})};if(s===void 0){let f={start:a,id:d,data:c,publicEvent:{start:a,data:c}};t.push(f)}else{let f={start:a,end:s,id:d,data:c,publicEvent:{start:a,end:s,data:c}};t.push(f)}})}return t}var _d=_h;var Ti=class extends oe{constructor(e,t,r){super(),this._manifest=e,this._mediaElement=t,this._playbackObserver=r,this._canceller=null,this._scheduledEventsRef=new G([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new B;let e=this._canceller.signal,t=this._playbackObserver,r=this._mediaElement,i=!1,o=new B;o.linkToSignal(e),this._scheduledEventsRef.setValue(_d([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:a})=>{if(a===0){i&&(o.cancel(),o=new B,o.linkToSignal(e),i=!1);return}else if(i)return;i=!0;let s=c(),d=()=>{let f=c();this._emitStreamEvents(this._scheduledEventsRef.getValue(),s,f,o.signal),s=f},{STREAM_EVENT_EMITTER_POLL_INTERVAL:u}=U.getCurrent(),l=setInterval(d,u);t.listen(d,{includeLastObservation:!1,clearSignal:o.signal}),o.signal.register(()=>{clearInterval(l)});function c(){let f=t.getReference().getValue(),g=r.currentTime,p=f.seeking!==0;return{currentTime:g,isSeeking:p}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(_d(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let l=0;l<e.length;l++){let c=e[l],f=c.start,g=Ed(c)?c.end:void 0;this._eventsBeingPlayed.has(c)?(f>s||g!==void 0&&s>=g)&&(Ed(c)&&u.push(c.publicEvent),this._eventsBeingPlayed.delete(c)):f<=s&&g!==void 0&&s<g?(d.push({type:"stream-event",value:c.publicEvent}),this._eventsBeingPlayed.set(c,!0)):o<f&&s>=(g!=null?g:f)&&(a?d.push({type:"stream-event-skip",value:c.publicEvent}):(d.push({type:"stream-event",value:c.publicEvent}),Ed(c)&&u.push(c.publicEvent)))}if(d.length>0){for(let l of d)if(l.type==="stream-event"?this.trigger("event",l.value):this.trigger("eventSkip",l.value),i.isCancelled())return}if(u.length>0){for(let l of u)if(typeof l.onExit=="function"&&l.onExit(),i.isCancelled())return}}};function Ed(n){return n.end!==void 0}var yf=Ti;function _i(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(_(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new ee("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new ee("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new ee("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new ee("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new ee("MEDIA_ERR_UNKNOWN",a))}}}var Tn=class extends Gn{constructor(e){super(),this._settings=e,this._initCanceller=new B,this._manifest=null,this._decryptionCapabilities={status:"uninitialized",value:null};let t=e.url===void 0?void 0:[e.url];this._cmcdDataBuilder=e.cmcd===void 0?null:new Zl(e.cmcd),this._manifestFetcher=new Gs(t,e.transport,de(ie({},e.manifestRequestSettings),{lowLatencyMode:e.lowLatencyMode,cmcdDataBuilder:this._cmcdDataBuilder}))}prepare(){this._manifest===null&&(this._manifest=cf.createAsync(ot(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),_i(e,r=>this._onFatalError(r),this._initCanceller.signal),this._initializeMediaSourceAndDecryption(e).then(r=>this._onInitialMediaSourceReady(e,r.mediaSource,t,r.drmSystemId,r.unlinkMediaSource)).catch(r=>{this._onFatalError(r)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_initializeMediaSourceAndDecryption(e){let t=this._initCanceller;return ot(t.signal,r=>{let{keySystems:i}=this._settings,{statusRef:o,contentDecryptor:a}=Ii(e,i,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();vh(d,s)})().catch(X)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();Eh(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(X)},onCodecSupportUpdate:()=>{var d,u;let s=(d=this._manifest)==null?void 0:d.syncValue;_(s)?(u=this._manifest)==null||u.getValueAsAsync().then(l=>{this._initCanceller.isUsed()||this._refreshManifestCodecSupport(l)},X):this._refreshManifestCodecSupport(s)}},t.signal);a.enabled?this._decryptionCapabilities={status:"enabled",value:a.value}:this._decryptionCapabilities={status:"disabled",value:a.value},o.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new B;u.linkToSignal(t.signal),ta(e,u.signal).then(l=>{let c=o.getValue();if(c.initializationState.type==="awaiting-media-link")c.initializationState.value.isMediaLinked.setValue(!0),o.onUpdate((f,g)=>{if(f.initializationState.type==="initialized"){g(),r({mediaSource:l,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:t.signal});else if(s.initializationState.type==="initialized"){r({mediaSource:l,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(l=>{u.isUsed()||this._onFatalError(l)})},{emitCurrentValue:!0,clearSignal:t.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o){var A;let{adaptiveOptions:a,autoPlay:s,bufferOptions:d,lowLatencyMode:u,segmentRequestOptions:l,speed:c,startAt:f,textTrackOptions:g,transport:p}=this._settings,I=this._initCanceller;J(this._manifest!==null);let y;try{y=(A=this._manifest.syncValue)!=null?A:await this._manifest.getValueAsAsync()}catch(L){return}y.addEventListener("manifestUpdate",L=>{this.trigger("manifestUpdate",L),this._refreshManifestCodecSupport(y)},I.signal),y.addEventListener("decipherabilityUpdate",L=>{this.trigger("decipherabilityUpdate",L)},I.signal),y.addEventListener("supportUpdate",()=>{this.trigger("codecSupportUpdate",null)},I.signal),m.debug("Init: Calculating initial time");let b=hd(y,u,f);m.debug("Init: Initial time calculated:",b);let T=Xl(a),v=j({textTrackOptions:g,drmSystemId:i},d),E=new $s(p,this._cmcdDataBuilder,l,I.signal);if(this._refreshManifestCodecSupport(y),this.trigger("manifestReady",y),I.isUsed())return;let R=this._startBufferingOnMediaSource.bind(this),k=this.trigger.bind(this),x=this._onFatalError.bind(this);M(t,b,s,o);function M(L,O,F,C){R({mediaElement:e,playbackObserver:r,mediaSource:L,initialTime:O,autoPlay:F,manifest:y,representationEstimator:T,segmentQueueCreator:E,speed:c,bufferOptions:v},D,C.signal);function D(N){if(C.cancel(),I.isUsed()||(k("reloadingMediaSource",N),I.isUsed()))return;let z=new B;z.linkToSignal(I.signal),ta(e,z.signal).then($=>{M($,N.position,N.autoPlay,z)}).catch($=>{z.isUsed()||x($)})}}}_startBufferingOnMediaSource(e,t,r){var O,F;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:l,representationEstimator:c,segmentQueueCreator:f,speed:g}=e,p=(O=s.getPeriodForTime(a))!=null?O:s.getNextPeriod(a);if(p===void 0){let C=new ee("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(C)}let I=null,y=null;if(this._settings.textTrackOptions.textTrackMode==="html"&&me.htmlTextDisplayer!==null?y=new me.htmlTextDisplayer(d,this._settings.textTrackOptions.textTrackElement):me.nativeTextDisplayer!==null&&(y=new me.nativeTextDisplayer(d)),y!==null){let C=new bi(y);I=C,r.register(()=>{C.stop(),y==null||y.stop()})}let b=new Xt(u,d.nodeName==="VIDEO",I);r.register(()=>{b.disposeAll()});let{autoPlayResult:T,initialPlayPerformed:v}=yi({mediaElement:d,playbackObserver:l,startTime:a,mustAutoPlay:i,onWarning:C=>{this.trigger("warning",C)},isDirectfile:!1},r);if(r.isCancelled())return;v.onUpdate((C,P)=>{if(C){P();let D=new yf(s,d,l);s.addEventListener("manifestUpdate",()=>{D.onManifestUpdate(s)},r),D.addEventListener("event",N=>{this.trigger("streamEvent",N)},r),D.addEventListener("eventSkip",N=>{this.trigger("streamEventSkip",N)},r),D.start(),r.register(()=>{D.stop()})}},{clearSignal:r,emitCurrentValue:!0});let E=cd(l,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:y,initialPlayPerformed:v,speed:g},r);(F=this._cmcdDataBuilder)==null||F.startMonitoringPlayback(E),r.register(()=>{var C;(C=this._cmcdDataBuilder)==null||C.stopMonitoringPlayback()});let R=this._createRebufferingController(l,s,g,r),k=new ni(b);Ol&&s.addEventListener("decipherabilityUpdate",C=>{C.some(P=>P.representation.decipherable!==!0)&&L(0,void 0,void 0)},r),l.listen(C=>{if(k.needToReload(C)){let P,D=l.getReference().getValue();D.position.isAwaitingFuturePosition()?P=D.position.getWanted():P=l.getCurrentTime();let N=v.getValue()?!l.getIsPaused():i;t({position:P,autoPlay:N})}},{clearSignal:r}),E.listen(C=>{["video","audio","text"].forEach(P=>{var N;let D=b.getStatus(P);D.type==="initialized"&&D.value.synchronizeInventory((N=C.buffered[P])!=null?N:[])})},{clearSignal:r});let x=Xs(s,u,E,b,{onWarning:C=>this.trigger("warning",C),onPeriodChanged:C=>this.trigger("activePeriodChanged",{period:C})},r);T.then(()=>{hi(l,d,!1,r).onUpdate((C,P)=>{C&&(P(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(D=>D(b.getSegmentSinksMetrics()))}))},{emitCurrentValue:!0,clearSignal:r})}).catch(C=>{r.isCancelled()||this._onFatalError(C)});let M=this;lf({manifest:s,initialPeriod:p},E,c,b,f,o,A(),r);function A(){return{needsBufferFlush:C=>{var $;let P,D=l.getCurrentTime(),N=($=C==null?void 0:C.relativeResumingPosition)!=null?$:0,z=!!(C!=null&&C.relativePosHasBeenDefaulted);N===0&&z?P=D+.001:P=D+N,l.setCurrentTime(P),l.listen((q,W)=>{(q.currentRange!==null||q.position.getPolled()>P+.1)&&(W(),l.setCurrentTime(q.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(C){let{period:P,bufferType:D,imminentDiscontinuity:N,position:z}=C;R.updateDiscontinuityInfo({period:P,bufferType:D,discontinuity:N,position:z}),!r.isCancelled()&&s.isLastPeriodKnown&&C.period.id===s.periods[s.periods.length-1].id&&(C.hasFinishedLoading||C.isEmptyStream?x.onLastSegmentFinishedLoading(C.bufferType):x.onLastSegmentLoadingResume(C.bufferType))},needsManifestRefresh:()=>M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:C}=U.getCurrent();M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:C})},lockedStream:C=>R.onLockedStream(C.bufferType,C.period),adaptationChange:C=>{M.trigger("adaptationChange",C),!r.isCancelled()&&x.onAdaptationChange(C.type,C.period,C.adaptation)},representationChange:C=>{M.trigger("representationChange",C),!r.isCancelled()&&x.onRepresentationChange(C.type,C.period)},inbandEvent:C=>M.trigger("inbandEvents",C),warning:C=>M.trigger("warning",C),periodStreamReady:C=>M.trigger("periodStreamReady",C),periodStreamCleared:C=>{x.onPeriodCleared(C.type,C.period),!r.isCancelled()&&M.trigger("periodStreamCleared",C)},bitrateEstimateChange:C=>{var P;(P=M._cmcdDataBuilder)==null||P.updateThroughput(C.type,C.bitrate),M.trigger("bitrateEstimateChange",C)},needsMediaSourceReload:C=>{L(C.timeOffset,C.minimumPosition,C.maximumPosition)},needsDecipherabilityFlush(){var P,D,N,z;let C=Kn(d);if(Fa(C==null?void 0:C[0])){let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(P=E.getCurrentTime())!=null?P:$.position.getPolled(),W=(N=(D=$.paused.pending)!=null?D:E.getIsPaused())!=null?N:$.paused.last;t({position:q,autoPlay:!W})}else{let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(z=E.getCurrentTime())!=null?z:$.position.getPolled();q+.001<$.duration?l.setCurrentTime(d.currentTime+.001):l.setCurrentTime(q)}},encryptionDataEncountered:C=>{if(M._decryptionCapabilities.status==="disabled"){M._onFatalError(M._decryptionCapabilities.value);return}else if(M._decryptionCapabilities.status==="uninitialized"){m.error("Init: received encryption data without known decryption capabilities");return}for(let P of C)if(M._decryptionCapabilities.value.onInitializationData(P),r.isCancelled())return},error:C=>M._onFatalError(C)}}function L(C,P,D){var W,H,V;let N=E.getReference().getValue(),z=N.position.isAwaitingFuturePosition()?N.position.getWanted():(W=E.getCurrentTime())!=null?W:N.position.getPolled(),$=(V=(H=N.paused.pending)!=null?H:E.getIsPaused())!=null?V:N.paused.last,q=z+C;P!==void 0&&(q=Math.max(P,q)),D!==void 0&&(q=Math.min(D,q)),t({position:q,autoPlay:!$})}}_createRebufferingController(e,t,r,i){let o=new Sn(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}getCodecsSupportInfo(e){return e.map(r=>{var s;let i=`${r.mimeType};codecs="${r.codec}"`,o=Oa(i);if(!o)return{mimeType:r.mimeType,codec:r.codec,supported:!1,supportedIfEncrypted:!1};let a;if(this._decryptionCapabilities.status==="uninitialized")a=void 0;else if(this._decryptionCapabilities.status==="disabled")a=!0;else{let d=this._decryptionCapabilities.value;d.getState()!==0&&(a=(s=d.isCodecSupported(r.mimeType,r.codec))!=null?s:!0)}return{mimeType:r.mimeType,codec:r.codec,supported:o,supportedIfEncrypted:a}})}_refreshManifestCodecSupport(e){let t=e.getCodecsWithUnknownSupport(),r=this.getCodecsSupportInfo(t);if(r.length>0)try{e.updateCodecSupport(r)}catch(i){this._onFatalError(i)}}};function Eh(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(ge(d,s))return!1;for(let d of e)if(ge(d,s))return!0;for(let d of r)if(ge(d,s))return}return o.decipherable})}function vh(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(l=>(u.systemId===void 0||l.systemId===u.systemId)&&ge(l.data,u.data))))return!1;return r.decipherable})}function vd(n,e,t){let{repeatCount:r}=n;if(r>=0)return r;let i;return _(e)?t!==void 0?i=t:i=Number.MAX_VALUE:i=e.start,Math.ceil((i-n.start)/n.duration)-1}function ke(n,e,t){let{start:r,duration:i}=n;if(i<=0)return r;let o=vd(n,e,t);return r+(o+1)*i}function He(n,e){var t;return n*e.timescale+((t=e.indexTimeOffset)!=null?t:0)}function St(n,e){var t;return(n-((t=e.indexTimeOffset)!=null?t:0))/e.timescale}function If(n,e,t){return[n*t,(n+e)*t]}function Rh(n,e){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i].start<=e?t=i+1:r=i}return t-1}function na(n,e,t){let{timeline:r}=n,i=He(e,n);if(i<0)return null;let o=Rh(r,i);if(o<0||o>=r.length-1)return null;let a=r[o];if(a.duration<=0)return null;let s=r[o+1];if(s===void 0)return null;let d=s.start,u=ke(a,s,t);return i>=u&&i<d?St(d,n):null}function Mt(n,e){var i;let{initialization:t}=n,r={};return e!==void 0&&(r.isEMSGWhitelisted=e),{id:"init",isInit:!0,time:0,end:0,duration:0,timescale:1,range:_(t)?void 0:t.range,indexRange:n.indexRange,url:(i=t==null?void 0:t.url)!=null?i:null,complete:!0,privateInfos:r,timestampOffset:-(n.indexTimeOffset/n.timescale)}}function kh(n,e){let t=n.toString();return t.length>=e?t:(new Array(e+1).join("0")+t).slice(-e)}function Rd(n){return(e,t,r)=>{let i=w(r)?parseInt(r,10):1;return kh(String(n),i)}}function st(n,e,t){return Ch(n,e,t)}function Ch(n,e,t){return n.indexOf("$")===-1?n:n.replace(/\$\$/g,"$").replace(/\$RepresentationID\$/g,String(e)).replace(/\$Bandwidth(\%0(\d+)d)?\$/g,Rd(t===void 0?0:t))}function ra(n,e){return function(r){return r.indexOf("$")===-1?r:r.replace(/\$\$/g,"$").replace(/\$Number(\%0(\d+)d)?\$/g,(i,o,a)=>{if(e===void 0)throw new Error("Segment number not defined in a $Number$ scheme");return Rd(e)(i,o,a)}).replace(/\$Time(\%0(\d+)d)?\$/g,(i,o,a)=>{if(n===void 0)throw new Error("Segment time not defined in a $Time$ scheme");return Rd(n)(i,o,a)})}}function Ph(n,e,t){let r=t-n;return r>0?Math.floor(r/e):0}function Ei(n,e,t,r,i,o){var T;let a=r.getEstimatedMaximumPosition((T=n.availabilityTimeOffset)!=null?T:0),s=Math.min(e+t,a!=null?a:1/0),d=He(e,n),u=He(s,n),{timeline:l,timescale:c,segmentUrlTemplate:f,startNumber:g,endNumber:p}=n,I=g!=null?g:1,y=[],b=l.length;for(let v=0;v<b;v++){let E=l[v],{duration:R,start:k,range:x}=E,M;a===void 0?M=i:M=Math.min(a*c,i!=null?i:1/0);let A=vd(E,l[v+1],M),L=n.availabilityTimeComplete!==!1||v!==b-1&&A!==0,O=Ph(k,R,d),F=k+O*R;for(;F<u&&O<=A;){let C=I+O;if(p!==void 0&&C>p)break;let P=f===null?null:ra(F,C)(f),D=F-n.indexTimeOffset,N=R;D<0&&(N=R+D,D=0);let z={id:String(F),time:D/c,end:(D+N)/c,duration:N/c,isInit:!1,range:x,timescale:1,url:P,number:C,timestampOffset:-(n.indexTimeOffset/c),complete:L,privateInfos:{isEMSGWhitelisted:o}};y.push(z),O++,F=k+O*R}if(F>=u||(I+=A+1,p!==void 0&&I>p))return y}return y}function Mh(n,e){if(e.timescale!==n.timescale){let{timescale:t}=n;n.timeline.push({start:e.time/e.timescale*t,duration:e.duration/e.timescale*t,repeatCount:e.count===void 0?0:e.count,range:e.range})}else n.timeline.push({start:e.time,duration:e.duration,repeatCount:e.count===void 0?0:e.count,range:e.range});return!0}var _n=class{constructor(e,t){var p,I,y,b;let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t,d=(p=e.timescale)!=null?p:1,l=((I=e.presentationTimeOffset)!=null?I:0)-r*d,c=((y=e.initialization)==null?void 0:y.media)===void 0?null:st(e.initialization.media,o,a),f=e.media===void 0?null:st(e.media,o,a),g;e.initialization!==void 0?g=e.initialization.range:e.indexRange!==void 0&&(g=[0,e.indexRange[0]-1]),this._index={indexRange:e.indexRange,indexTimeOffset:l,initialization:{url:c,range:g},segmentUrlTemplate:f,startNumber:e.startNumber,endNumber:e.endNumber,timeline:(b=e.timeline)!=null?b:[],timescale:d},this._manifestBoundsCalculator=t.manifestBoundsCalculator,this._scaledPeriodStart=He(r,this._index),this._scaledPeriodEnd=_(i)?void 0:He(i,this._index),this._isInitialized=this._index.timeline.length>0,this._isEMSGWhitelisted=s}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return Ei(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){let e=this._index;return e.timeline.length===0?null:St(Math.max(this._scaledPeriodStart,e.timeline[0].start),e)}getLastAvailablePosition(){var i;let{timeline:e}=this._index;if(e.length===0)return null;let t=e[e.length-1],r=Math.min(ke(t,null,this._scaledPeriodEnd),(i=this._scaledPeriodEnd)!=null?i:1/0);return St(r,this._index)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return this._isInitialized}initialize(e){if(!this._isInitialized){for(let t=0;t<e.length;t++)Mh(this._index,e[t]);this._isInitialized=!0}}addPredictedSegments(){m.warn("Cannot add predicted segments to a `BaseRepresentationIndex`")}_replace(e){this._index=e._index,this._isInitialized=e._isInitialized,this._scaledPeriodEnd=e._scaledPeriodEnd,this._isEMSGWhitelisted=e._isEMSGWhitelisted}_update(){m.error("Base RepresentationIndex: Cannot update a SegmentList")}};var En=class{constructor(e,t){var g,p,I;if(e.duration===void 0)throw new Error("Invalid SegmentList: no duration");let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t;this._isEMSGWhitelisted=s,this._periodStart=r,this._periodEnd=i;let d=(g=e.presentationTimeOffset)!=null?g:0,u=(p=e.timescale)!=null?p:1,l=d-r*u,c=((I=e.initialization)==null?void 0:I.media)===void 0?null:st(e.initialization.media,o,a),f=e.list.map(y=>({url:y.media===void 0?null:st(y.media,o,a),mediaRange:y.mediaRange}));this._index={list:f,timescale:u,duration:e.duration,indexTimeOffset:l,indexRange:e.indexRange,initialization:_(e.initialization)?void 0:{url:c,range:e.initialization.range}}}getInitSegment(){let e=Mt(this._index);return e.privateInfos===void 0&&(e.privateInfos={}),e.privateInfos.isEMSGWhitelisted=this._isEMSGWhitelisted,e}getSegments(e,t){let r=this._index,{duration:i,list:o,timescale:a}=r,s=i/a,d=e-this._periodStart,[u,l]=If(d,t,a),c=Math.min(o.length-1,Math.floor(l/i)),f=[],g=Math.floor(u/i);for(;g<=c;){let p=o[g].mediaRange,I=o[g].url,y=g*s+this._periodStart,b={id:String(g),time:y,isInit:!1,range:p,duration:s,timescale:1,end:y+s,url:I,timestampOffset:-(r.indexTimeOffset/a),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};f.push(b),g++}return f}shouldRefresh(e,t){return!1}getFirstAvailablePosition(){return this._periodStart}getLastAvailablePosition(){var i;let e=this._index,{duration:t,list:r}=e;return Math.min(r.length*t/e.timescale+this._periodStart,(i=this._periodEnd)!=null?i:1/0)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return!0}initialize(){m.error("A `ListRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `ListRepresentationIndex`")}_replace(e){this._index=e._index}_update(){m.error("A `ListRepresentationIndex` cannot be updated")}};function Yn(n){return U.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR*n}var vn=class{constructor(e,t){var b,T,v;let{availabilityTimeOffset:r,manifestBoundsCalculator:i,isDynamic:o,periodEnd:a,periodStart:s,representationId:d,representationBitrate:u,isEMSGWhitelisted:l}=t,c=(b=e.timescale)!=null?b:1;this._availabilityTimeOffset=r,this._manifestBoundsCalculator=i;let f=(T=e.presentationTimeOffset)!=null?T:0,g=s*c,p=f-g;if(e.duration===void 0)throw new Error("Invalid SegmentTemplate: no duration");let I=((v=e.initialization)==null?void 0:v.media)===void 0?null:st(e.initialization.media,d,u),y=e.media===void 0?null:st(e.media,d,u);this._index={duration:e.duration,timescale:c,indexRange:e.indexRange,indexTimeOffset:p,initialization:_(e.initialization)?void 0:{url:I,range:e.initialization.range},url:y,presentationTimeOffset:f,startNumber:e.startNumber,endNumber:e.endNumber},this._isDynamic=o,this._periodStart=s,this._scaledRelativePeriodEnd=a===void 0?void 0:(a-s)*c,this._isEMSGWhitelisted=l}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){let r=this._index,{duration:i,startNumber:o,endNumber:a,timescale:s,url:d}=r,u=this._periodStart*s,l=this._scaledRelativePeriodEnd,c=e*s-u,f=(e+t)*s-u,g=this._getFirstSegmentStart(),p=this._getLastSegmentStart();if(_(g)||_(p))return[];let I=Math.max(g,c),y=Math.min(p,f);if(y+i<=I)return[];let b=[],T=o!=null?o:1,v=Math.floor(I/i);for(let E=v*i;E<=y;E+=i){let R=v+T;if(a!==void 0&&R>a)return b;let k=!_(l)&&E+i>l?l-E:i,x=E+u,M=E+this._index.presentationTimeOffset,A=d===null?null:ra(M,R)(d),L={id:String(R),number:R,time:x/s,end:(x+k)/s,duration:k/s,timescale:1,isInit:!1,scaledDuration:k/s,url:A,timestampOffset:-(r.indexTimeOffset/s),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};b.push(L),v++}return b}getFirstAvailablePosition(){let e=this._getFirstSegmentStart();return _(e)?e:e/this._index.timescale+this._periodStart}getLastAvailablePosition(){let e=this._getLastSegmentStart();if(_(e))return e;let t=this._estimateRelativeScaledEnd();return Math.min(e+this._index.duration,t!=null?t:1/0)/this._index.timescale+this._periodStart}getEnd(){if(!this._isDynamic)return this.getLastAvailablePosition();let e=this._estimateRelativeScaledEnd();if(e===void 0)return;let{timescale:t}=this._index;return(e+this._periodStart*t)/t}awaitSegmentBetween(e,t){if(J(e<=t),!this._isDynamic)return!1;let{timescale:r}=this._index,i=Yn(r),o=this._periodStart*r,a=e*r-o,s=t*r-o,d=this._getLastSegmentStart();if(_(d)){let c=this._estimateRelativeScaledEnd();return c===void 0?s+i>=0:s+i>=0&&a<c-i}let u=d+this._index.duration,l=this._estimateRelativeScaledEnd();return l===void 0?s>u-i:s>u-i&&a<l-i}shouldRefresh(){return!1}checkDiscontinuity(){return null}isSegmentStillAvailable(e){if(e.isInit)return!0;let t=this.getSegments(e.time,.1);return t.length===0?!1:t[0].time===e.time&&t[0].end===e.end&&t[0].number===e.number}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){if(!this._isDynamic)return!1;let e=this._estimateRelativeScaledEnd();if(e===void 0)return!0;let{timescale:t}=this._index,r=this._getLastSegmentStart();if(_(r))return!0;let i=r+this._index.duration,o=Yn(t);return i+o<e}isInitialized(){return!0}initialize(){m.error("A `TemplateRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TemplateRepresentationIndex`")}_replace(e){this._index=e._index,this._isDynamic=e._isDynamic,this._periodStart=e._periodStart,this._scaledRelativePeriodEnd=e._scaledRelativePeriodEnd,this._manifestBoundsCalculator=e._manifestBoundsCalculator}_update(e){this._replace(e)}_getFirstSegmentStart(){var a;if(!this._isDynamic)return 0;if(this._scaledRelativePeriodEnd===0||this._scaledRelativePeriodEnd===void 0){let s=this._manifestBoundsCalculator.getEstimatedMaximumPosition((a=this._availabilityTimeOffset)!=null?a:0);if(s!==void 0&&s<this._periodStart)return null}let{duration:e,timescale:t}=this._index,r=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(e/t);if(r===void 0)return;let i=r>this._periodStart?(r-this._periodStart)*t:0;return Math.floor(i/e)*e}_getLastSegmentStart(){var o,a;let{duration:e,timescale:t,endNumber:r,startNumber:i=1}=this._index;if(this._isDynamic){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&this._scaledRelativePeriodEnd!==void 0&&this._scaledRelativePeriodEnd<s-this._periodStart*this._index.timescale){let c=Math.ceil(this._scaledRelativePeriodEnd/e);return r!==void 0&&r-i+1<c&&(c=r-i+1),(c-1)*e}let d=this._manifestBoundsCalculator.getEstimatedMaximumPosition((o=this._availabilityTimeOffset)!=null?o:0);if(d===void 0)return;let u=(d-this._periodStart)*t;if(u<0)return null;let l=Math.floor(u/e);return r!==void 0&&r-i+1<l&&(l=r-i+1),l<=0?null:(l-1)*e}else{let s=(a=this._scaledRelativePeriodEnd)!=null?a:0,d=Math.ceil(s/e);r!==void 0&&r-i+1<d&&(d=r-i+1);let u=(d-1)*e,l=U.getCurrent().MINIMUM_SEGMENT_SIZE*t;return r!==void 0||s-u>l||d<2?u:(d-2)*e}}_estimateRelativeScaledEnd(){var e,t;if(this._index.endNumber!==void 0){let r=this._index.endNumber-((e=this._index.startNumber)!=null?e:1)+1;return Math.max(Math.min(r*this._index.duration,(t=this._scaledRelativePeriodEnd)!=null?t:1/0),0)}if(this._scaledRelativePeriodEnd!==void 0)return Math.max(this._scaledRelativePeriodEnd,0)}};function vi(n,e){let t=0;for(;n.length>0;){let r=n[0];if(r.start>=e||r.repeatCount===-1)return t;if(r.repeatCount===0)n.shift(),t+=1;else{let i=n[1];if(i!==void 0&&i.start<=e)n.shift(),t+=1;else{if(r.duration<=0)return t;let o=r.start+r.duration,a=1;for(;o<e&&a<=r.repeatCount;)o+=r.duration,a++;if(a>r.repeatCount)n.shift(),t=r.repeatCount+1;else{let s=r.repeatCount-a;return r.start=o,r.repeatCount=s,t+=a,t}}}}return t}function Ri(n,e){if(n.length===0)return n.push(...e),!0;if(e.length===0)return!1;let t=n.length,r=e[0].start,i=n[t-1];if(ke(i,e[0])<r)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");for(let l=t-1;l>=0;l--){let c=n[l].start;if(c===r){let f=t-l;return n.splice(l,f,...e),!1}else if(c<r){let f=n[l];if(f.start+f.duration>r)return m.warn("RepresentationIndex: Manifest update removed all previous segments"),n.splice(0,t,...e),!0;if(f.repeatCount===void 0||f.repeatCount<=0)return f.repeatCount<0&&(f.repeatCount=Math.floor((r-f.start)/f.duration)-1),n.splice(l+1,t-(l+1),...e),!1;if(f.start+f.duration*(f.repeatCount+1)<=r)return n.splice(l+1,t-(l+1),...e),!1;let p=(r-f.start)/f.duration-1;if(p%1===0&&f.duration===e[0].duration){let I=e[0].repeatCount<0?-1:e[0].repeatCount+p+1;return n.splice(l,t-l,...e),n[l].start=f.start,n[l].repeatCount=I,!1}return m.warn("RepresentationIndex: Manifest update removed previous segments"),n[l].repeatCount=Math.floor(p),n.splice(l+1,t-(l+1),...e),!1}}let a=n[n.length-1],s=e[e.length-1];if(a.repeatCount!==void 0&&a.repeatCount<0)return a.start>s.start?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0);let d=a.start+a.duration*(a.repeatCount+1),u=s.start+s.duration*(s.repeatCount+1);return d>=u?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0)}function ki(n,e,t){let r=n.start,i=n.duration,o=n.repeatCount;return r===void 0&&(e===null?r=0:_(e.duration)||(r=e.start+e.duration*(e.repeatCount+1))),(i===void 0||isNaN(i))&&t!==null&&t.start!==void 0&&!isNaN(t.start)&&r!==void 0&&!isNaN(r)&&(i=t.start-r),r!==void 0&&!isNaN(r)&&i!==void 0&&!isNaN(i)&&(o===void 0||!isNaN(o))?{start:r,duration:i,repeatCount:o===void 0?0:o}:(m.warn('DASH: A "S" Element could not have been parsed.'),null)}function Ci(n){let e={};for(let t of Object.keys(n.attributes)){let r=n.attributes[t];if(!_(r))switch(t){case"t":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid t ("${r}")`):e.start=i;break}case"d":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid d ("${r}")`):e.duration=i;break}case"r":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid r ("${r}")`):e.repeatCount=i;break}}}return e}function Pi(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"t":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid t ("${r.value}")`):e.start=i;break}case"d":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid d ("${r.value}")`):e.duration=i;break}case"r":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid r ("${r.value}")`):e.repeatCount=i;break}}}return e}function Zt(n){let e=[];if(Array.isArray(n))for(let r=0;r<n.length;r++)e.push(Ci(n[r]));else for(let r=0;r<n.length;r++)e.push(Pi(n[r]));let t=[];for(let r=0;r<e.length;r++){let i=e[r],o=t[t.length-1]===void 0?null:t[t.length-1],a=e[r+1]===void 0?null:e[r+1],s=ki(i,o,a);s!==null&&t.push(s)}return t}function kd(n,e){if(n.length===0||e.length===0)return null;let t=n[0].start,r=Array.isArray(e)?e[0].attributes.t:e[0].getAttribute("t"),i=_(r)?null:parseInt(r,10);if(i===null||Number.isNaN(i))return null;if(t===i)return{prevSegmentsIdx:0,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(t<i){let o=n[0],a=0;for(;;){if(o.repeatCount>0){let s=i-o.start;if(s%o.duration===0&&s/o.duration<=o.repeatCount)return{repeatNumberInPrevSegments:s/o.duration,prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInNewElements:0}}if(a++,a>=n.length)return null;if(o=n[a],o.start===i)return{prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(o.start>i)return null}}else{let o=0,a=Array.isArray(e)?e[0]:null,s=Array.isArray(e)?null:e[0],d=i;for(;;){let u=a!==null?a.attributes.d:s==null?void 0:s.getAttribute("d"),l=_(u)?null:parseInt(u,10);if(l===null||Number.isNaN(l))return null;let c=a!==null?a.attributes.r:s==null?void 0:s.getAttribute("r"),f=_(c)?null:parseInt(c,10);if(f!==null){if(Number.isNaN(f)||f<0)return null;if(f>0){let I=t-d;if(I%l===0&&I/l<=f)return{repeatNumberInPrevSegments:0,repeatNumberInNewElements:I/l,prevSegmentsIdx:0,newElementsIdx:o}}d+=l*(f+1)}else d+=l;if(o++,o>=e.length)return null;Array.isArray(e)?a=e[o]:s=e[o];let g=a!==null?a.attributes.t:s==null?void 0:s.getAttribute("t"),p=_(g)?null:parseInt(g,10);if(p!==null){if(Number.isNaN(p))return null;d=p}if(d===t)return{newElementsIdx:o,prevSegmentsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(d>i)return null}}}function Cd(n,e){var I;let t=kd(e,n);if(t===null)return m.warn('DASH: Cannot perform "based" update. Common segment not found.'),Zt(n);let{prevSegmentsIdx:r,newElementsIdx:i,repeatNumberInPrevSegments:o,repeatNumberInNewElements:a}=t,d=e.length-r+i-1;if(d>=n.length)return m.info('DASH: Cannot perform "based" update. New timeline too short'),Zt(n);let u=e.slice(r);if(o>0){let y=u[0];y.start+=y.duration*o,u[0].repeatCount-=o}if(a>0&&i!==0)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form.'),Zt(n);let l=u[u.length-1],c=Array.isArray(n)?Ci(n[d]):Pi(n[d]),f=((I=c.repeatCount)!=null?I:0)-a;if(c.duration!==l.duration||l.repeatCount>f)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form at the beginning.'),Zt(n);c.repeatCount!==void 0&&c.repeatCount>l.repeatCount&&(l.repeatCount=c.repeatCount);let g=[],p=[];if(Array.isArray(n))for(let y=d+1;y<n.length;y++)p.push(Ci(n[y]));else for(let y=d+1;y<n.length;y++)p.push(Pi(n[y]));for(let y=0;y<p.length;y++){let b=p[y],T=g[g.length-1]===void 0?l:g[g.length-1],v=p[y+1]===void 0?null:p[y+1],E=ki(b,T,v);E!==null&&g.push(E)}return u.concat(g)}var Mi=class n{constructor(e,t){var E,R,k,x,M;if(!n.isTimelineIndexArgument(e))throw new Error("The given index is not compatible with a TimelineRepresentationIndex.");let{availabilityTimeComplete:r,availabilityTimeOffset:i,manifestBoundsCalculator:o,isDynamic:a,isLastPeriod:s,representationId:d,representationBitrate:u,periodStart:l,periodEnd:c,isEMSGWhitelisted:f}=t,g=(E=e.timescale)!=null?E:1,p=(R=e.presentationTimeOffset)!=null?R:0,I=l*g,y=p-I;this._manifestBoundsCalculator=o,this._isEMSGWhitelisted=f,this._isLastPeriod=s,this._lastUpdate=(k=t.receivedTime)!=null?k:K(),this._unsafelyBaseOnPreviousIndex=null,t.unsafelyBaseOnPreviousRepresentation!==null&&t.unsafelyBaseOnPreviousRepresentation.index instanceof n&&(t.unsafelyBaseOnPreviousRepresentation.index._unsafelyBaseOnPreviousIndex=null,this._unsafelyBaseOnPreviousIndex=t.unsafelyBaseOnPreviousRepresentation.index),this._isDynamic=a,this._parseTimeline=(x=e.timelineParser)!=null?x:null;let b=((M=e.initialization)==null?void 0:M.media)===void 0?null:st(e.initialization.media,d,u),T=e.media===void 0?null:st(e.media,d,u),v;i===void 0&&r===void 0?v=1/0:v=i!=null?i:0,this._index={availabilityTimeComplete:r!=null?r:!0,availabilityTimeOffset:v,indexRange:e.indexRange,indexTimeOffset:y,initialization:_(e.initialization)?void 0:{url:b,range:e.initialization.range},segmentUrlTemplate:T,startNumber:e.startNumber,endNumber:e.endNumber,timeline:e.timeline===void 0?null:Pd(e.timeline,e.startNumber,e.endNumber),timescale:g},this._scaledPeriodStart=He(l,this._index),this._scaledPeriodEnd=c===void 0?void 0:He(c,this._index)}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),Ei(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=this._index.timeline;return e.length===0?null:St(Math.max(this._scaledPeriodStart,e[0].start),this._index)}getLastAvailablePosition(){var r;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(e===null)return null;let t=Math.min(e.end,(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}getEnd(){var r;if(this._isDynamic&&!this._isLastPeriod)return;if(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),this._index.timeline.length<=0)return null;let e=this._index.timeline[this._index.timeline.length-1],t=Math.min(ke(e,null,this._scaledPeriodEnd),(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}awaitSegmentBetween(e,t){var u,l;if(J(e<=t),!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timescale:r,timeline:i}=this._index,o=Yn(r),a=He(t,this._index),s=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(s!==null&&Math.min(s.end,(u=this._scaledPeriodEnd)!=null?u:1/0)+o>=Math.min(a,(l=this._scaledPeriodEnd)!=null?l:1/0))return!1;let d=He(e,this._index);if(i.length>0&&s!==null&&!s.isLastOfTimeline){let c=i[i.length-1],g=ke(c,null,this._scaledPeriodEnd)+o;if(d<g+o)return!0}return this._isLastPeriod?this._scaledPeriodEnd===void 0?a+o>this._scaledPeriodStart?void 0:!1:d-o<this._scaledPeriodEnd&&a+o>this._scaledPeriodStart:!1}isSegmentStillAvailable(e){return e.isInit?!0:(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),Ah(e,this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd))}checkDiscontinuity(e){this._refreshTimeline();let t=this._index.timeline;return t===null&&(t=this._getTimeline(),this._index.timeline=t),na({timeline:t,timescale:this._index.timescale,indexTimeOffset:this._index.indexTimeOffset},e,this._scaledPeriodEnd)}canBeOutOfSyncError(e){return this._isDynamic?e instanceof rt&&e.isHttpError(404):!1}_replace(e){this._parseTimeline=e._parseTimeline,this._index=e._index,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._manifestBoundsCalculator=e._manifestBoundsCalculator,this._isLastPeriod=e._isLastPeriod}_update(e){this._index.timeline===null&&(this._index.timeline=this._getTimeline()),e._index.timeline===null&&(e._index.timeline=e._getTimeline()),Ri(this._index.timeline,e._index.timeline)&&(this._index.startNumber=e._index.startNumber),this._index.availabilityTimeOffset=e._index.availabilityTimeOffset,this._index.availabilityTimeComplete=e._index.availabilityTimeComplete,this._index.endNumber=e._index.endNumber,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._isLastPeriod=e._isLastPeriod}isStillAwaitingFutureSegments(){var a;if(!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timeline:e}=this._index;if(e.length===0){if(this._scaledPeriodEnd!==void 0){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&He(s,this._index)>this._scaledPeriodEnd)return!1}return this._isLastPeriod}let t=Yn(this._index.timescale),r=ia(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(r!==null&&!r.isLastOfTimeline){let s=Math.min(r.end,(a=this._scaledPeriodEnd)!=null?a:1/0);return!(this._scaledPeriodEnd!==void 0&&s+t>=this._scaledPeriodEnd)}if(!this._isLastPeriod)return!1;if(this._scaledPeriodEnd===void 0)return!0;let i=e[e.length-1];return ke(i,null,this._scaledPeriodEnd)+t<this._scaledPeriodEnd}isInitialized(){return!0}initialize(){m.error("A `TimelineRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`")}static isTimelineIndexArgument(e){return typeof e.timelineParser=="function"||Array.isArray(e.timeline)}_refreshTimeline(){var i,o;if(this._index.timeline===null&&(this._index.timeline=this._getTimeline()),!this._isDynamic)return;let e=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(((o=(i=this._index.timeline[0])==null?void 0:i.duration)!=null?o:0)/this._index.timescale);if(_(e))return;let t=He(e,this._index),r=vi(this._index.timeline,t);this._index.startNumber!==void 0?this._index.startNumber+=r:this._index.endNumber!==void 0&&(this._index.startNumber=r+1)}_getTimeline(){if(this._parseTimeline===null)return this._index.timeline!==null?this._index.timeline:(m.error("DASH: Timeline already lazily parsed."),[]);let e=this._parseTimeline();this._parseTimeline=null;let{MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:t}=U.getCurrent();if(this._unsafelyBaseOnPreviousIndex===null||e.length<t)return Pd(Zt(e),this._index.startNumber,this._index.endNumber);let r;return this._unsafelyBaseOnPreviousIndex._index.timeline===null?(r=this._unsafelyBaseOnPreviousIndex._getTimeline(),this._unsafelyBaseOnPreviousIndex._index.timeline=r):r=this._unsafelyBaseOnPreviousIndex._index.timeline,this._unsafelyBaseOnPreviousIndex=null,Pd(Cd(e,r),this._index.startNumber,this._index.endNumber)}};function Pd(n,e,t){if(t===void 0)return n;let r=e!=null?e:1;for(let i=0;i<n.length;i++){let o=n[i];if(r+=o.repeatCount+1,r>t){if(r===t+1)return n.slice(0,i+1);{let a=n.slice(0,i),s=ie({},o),d=r-o.repeatCount-1;return s.repeatCount=Math.max(0,t-d),a.push(s),a}}}return n}function Ah(n,e,t,r){let i=ia(e,t,r);if(i===null)return!1;for(let o=0;o<e.timeline.length;o++){if(i.timelineIdx<o)return!1;let a=e.timeline[o],s=(a.start-e.indexTimeOffset)/e.timescale;if(s>n.time)return!1;if(s===n.time)return a.range===void 0?n.range===void 0:!_(n.range)&&a.range[0]===n.range[0]&&a.range[1]===n.range[1];if(a.repeatCount>=0&&a.duration!==void 0){let u=(s-a.start)/a.duration-1;return u%1===0&&u<=i.newRepeatCount}}return!1}function ia(n,e,t){if(n.timeline.length<=0)return null;if(n.availabilityTimeOffset===1/0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}let r=e.getEstimatedMaximumPosition(n.availabilityTimeOffset);if(r===void 0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}for(let i=n.timeline.length-1;i>=n.timeline.length;i--){let o=n.timeline[i],a=o.start+o.duration;if(St(a,n)<=r){let s=ke(o,n.timeline[i+1],t);if(St(s,n)<=r)return{isLastOfTimeline:i===n.timeline.length-1,timelineIdx:i,newRepeatCount:o.repeatCount,end:a};{let u=He(r,n)-o.start,l=Math.floor(u/o.duration);return J(l>=1),{isLastOfTimeline:!1,timelineIdx:i,newRepeatCount:l-1,end:o.start+l*o.duration}}}}return null}var oa=Mi;var xh=/^(?:[a-z]+:)?\/\//i,wh=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function xi(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(xh.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?xi(n.substring(0,t)):e+1}function Oh(n,e){let t=bf(n),r=bf(e);if(r.scheme)return Md(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return r.authority?(i.authority=r.authority,i.path=Ad(r.path),Md(i)):(r.path===""?(i.path=t.path,r.query||(i.query=t.query)):Je(r.path,"/")?i.path=Ad(r.path):i.path=Ad(Lh(t,r.path)),Md(i))}var Ai=new Map,Dh=200;function bf(n){var r,i,o,a,s;if(Ai.has(n))return Ai.get(n);let e=n.match(wh),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Ai.size>=Dh&&Ai.clear(),Ai.set(n,t),t}function Md(n){let e="";return n.scheme&&(e+=n.scheme+":"),n.authority&&(e+="//"+n.authority),e+=n.path,n.query&&(e+="?"+n.query),n.fragment&&(e+="#"+n.fragment),e}function Ad(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Lh(n,e){if(n.authority&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function Sf(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=Oh(a,s),u=e.slice(2);return Sf(d,...u)}}var $n=Sf;var wi=class{constructor(){this._refs=new Map,this._stored=[]}addReferences(e){for(let t of e)t.attributes.refId!==void 0&&this._refs.set(t.attributes.refId,t)}add(e,t){this._tryParsing(e,t,!1)||this._stored.push([e,t]),t.attributes.refId!==void 0&&(this._refs.set(t.attributes.refId,t),this._resolveStoredRefs(!1))}finalize(){this._resolveStoredRefs(!0)}_resolveStoredRefs(e){for(let t=this._stored.length-1;t>=0;t--){let[r,i]=this._stored[t];(this._tryParsing(r,i,e)||e)&&this._stored.splice(t,1)}return this._stored.length===0}_tryParsing(e,t,r){if(t.attributes.ref===void 0)return xd(e,t),!0;let i=this._getReferenced(t.attributes.ref);return i===void 0?(r&&(m.warn("DASH: forcing the parsing of a referencing ContentProtection"),xd(e,t)),!1):(t.children.cencPssh.push(...i.children.cencPssh),t.attributes.keyId===void 0&&i.attributes.keyId!==void 0&&(t.attributes.keyId=i.attributes.keyId),t.attributes.schemeIdUri===void 0&&i.attributes.schemeIdUri!==void 0&&(t.attributes.schemeIdUri=i.attributes.schemeIdUri),t.attributes.value===void 0&&i.attributes.value!==void 0&&(t.attributes.value=i.attributes.value),xd(e,t),!0)}_getReferenced(e){return this._refs.get(e)}};function xd(n,e){let t;if(e.attributes.schemeIdUri!==void 0&&e.attributes.schemeIdUri.substring(0,9)==="urn:uuid:"&&(t=e.attributes.schemeIdUri.substring(9).replace(/-/g,"").toLowerCase()),e.attributes.keyId!==void 0&&e.attributes.keyId.length>0){let a=e.attributes.keyId;n.contentProtections===void 0?n.contentProtections={keyIds:[a],initData:[]}:n.contentProtections.keyIds===void 0?n.contentProtections.keyIds=[a]:n.contentProtections.keyIds.push(a)}if(t===void 0)return;let{cencPssh:r}=e.children,i=[];for(let a of r)i.push({systemId:t,data:a});if(i.length===0)return;if(n.contentProtections===void 0){n.contentProtections={keyIds:[],initData:[{type:"cenc",values:i}]};return}let o=Z(n.contentProtections.initData,a=>a.type==="cenc");o===void 0?n.contentProtections.initData.push({type:"cenc",values:i}):o.values.push(...i)}function aa(n){let e=Date.parse(n)-K();if(isNaN(e)){m.warn("DASH Parser: Invalid clock received: ",n);return}return e}function wd(n){let e=n.children.utcTimings.filter(t=>(t.schemeIdUri==="urn:mpeg:dash:utc:http-iso:2014"||t.schemeIdUri==="urn:mpeg:dash:utc:http-xsdate:2014")&&t.value!==void 0);return e.length>0?e[0].value:void 0}function sa(n){let{representations:e}=n,t=null;for(let r of e){let i=r.index.getLastAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.min(t,i))}return t===null?null:t}function Od(n){for(let e=n.length-1;e>=0;e--){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=sa(r);if(s===void 0)return{safe:void 0,unsafe:void 0};o=s}if(i!==void 0){let s=sa(i);if(s===void 0)return{safe:void 0,unsafe:void 0};a=s}if(r!==void 0&&o===null||i!==void 0&&a===null)return m.info("Parser utils: found Period with no segment. ","Going to previous one to calculate last position"),{safe:void 0,unsafe:void 0};if(a!==null)return o!==null?{safe:Math.min(o,a),unsafe:Math.max(o,a)}:{safe:a,unsafe:a};if(o!==null)return{safe:o,unsafe:o}}}return{safe:void 0,unsafe:void 0}}function da(n){let{representations:e}=n,t=null;for(let r of e){let i=r.index.getFirstAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.max(t,i))}return t===null?null:t}function Dd(n){for(let e=0;e<=n.length-1;e++){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=da(r);if(s===void 0)return;o=s}if(i!==void 0){let s=da(i);if(s===void 0)return;a=s}if(r!==void 0&&o===null||i!==void 0&&a===null){m.info("Parser utils: found Period with no segment. ","Going to next one to calculate first position");return}if(a!==null)return o!==null?Math.max(o,a):a;if(o!==null)return o}}}function Ld(n){if(n.length===0)throw new Error("DASH Parser: no period available for a dynamic content");let e=Dd(n),t=Od(n);return{minimumSafePosition:e,maximumSafePosition:t.safe,maximumUnsafePosition:t.unsafe}}var Oi=class{constructor(e){this._isDynamic=e.isDynamic,this._timeShiftBufferDepth=!e.isDynamic||e.timeShiftBufferDepth===void 0?null:e.timeShiftBufferDepth,this._serverTimestampOffset=e.serverTimestampOffset,this._availabilityStartTime=e.availabilityStartTime}setLastPosition(e,t){this._lastPosition=e,this._positionTime=t}lastPositionIsKnown(){return this._isDynamic?this._positionTime!==void 0&&this._lastPosition!==void 0:this._lastPosition!==void 0}getEstimatedMinimumSegmentTime(e){var i;if(!this._isDynamic||this._timeShiftBufferDepth===null)return 0;let t=(i=this.getEstimatedLiveEdge())!=null?i:this.getEstimatedMaximumPosition(0);return t===void 0?void 0:t-(this._timeShiftBufferDepth+e)}getEstimatedLiveEdge(){if(!(!this._isDynamic||this._serverTimestampOffset===void 0))return(K()+this._serverTimestampOffset)/1e3-this._availabilityStartTime}getEstimatedMaximumPosition(e){if(!this._isDynamic)return this._lastPosition;let t=this.getEstimatedLiveEdge();return t!==void 0&&e!==1/0?t+e:this._positionTime!==void 0&&this._lastPosition!==void 0?Math.max(this._lastPosition-this._positionTime+K()/1e3,0):this._lastPosition}};function Nd(n,e){return n.type!=="dynamic"?0:_(n.availabilityStartTime)?e!=null?e:0:n.availabilityStartTime}function Ud(n){if(n.length===0)return[];let e=[n[0]];for(let t=1;t<n.length;t++){let r=n[t],i=e[e.length-1];for(;(i.duration===void 0||i.start+i.duration>r.start)&&(m.warn("DASH: Updating overlapping Periods.",i==null?void 0:i.start,r.start),i.duration=r.start-i.start,i.end=r.start,!(i.duration>0));){if(e.pop(),e.length===0)break;i=e[e.length-1]}e.push(r)}return e}function Bd(n,e){let t=[];return n.forEach((r,i)=>{let o;if(!_(r.attributes.start))o=r.attributes.start;else if(i===0)o=!e.isDynamic||_(e.availabilityStartTime)?0:e.availabilityStartTime;else{let u=t[t.length-1];if(!_(u)&&!_(u.periodEnd))o=u.periodEnd;else throw new Error("Missing start time when parsing periods.")}let a,s=n[i+1];_(r.attributes.duration)?i===n.length-1?a=e.duration:_(s.attributes.start)||(a=s.attributes.start-o):a=r.attributes.duration;let d=_(a)?void 0:o+a;t.push({periodStart:o,periodDuration:a,periodEnd:d})}),t}function Nh(n,e){for(let t of e){let{adaptation:r,trickModeAttachedAdaptationIds:i}=t;for(let o of i)for(let a of $t){let s=n[a];if(s!==void 0)for(let d of s)d.id===o&&(d.trickModeTracks===void 0&&(d.trickModeTracks=[]),d.trickModeTracks.push(r))}}}var Tf=Nh;var Uh=["subtitle","caption"];function Fd(n,e,t,r){function i(a,s){let d=a.split("/")[0];if(Q($t,d))return d;if(a==="application/ttml+xml")return"text";if(a==="application/mp4")return s!==null&&Z(s,u=>u.schemeIdUri==="urn:mpeg:dash:role:2011"&&Q(Uh,u.value))!==void 0?"text":void 0}function o(a){switch(a.substring(0,3)){case"avc":case"hev":case"hvc":case"vp8":case"vp9":case"av1":return"video";case"vtt":return"text"}switch(a.substring(0,4)){case"mp4a":return"audio";case"wvtt":case"stpp":return"text"}}if(e!==null){let a=i(e,r);if(a!==void 0)return a}if(t!==null){let a=o(t);if(a!==void 0)return a}for(let a=0;a<n.length;a++){let s=n[a],{mimeType:d,codecs:u}=s.attributes;if(d!==void 0){let l=i(d,r);if(l!==void 0)return l}if(u!==void 0){let l=o(u);if(l!==void 0)return l}}}var Bh=/[, ]+/g;function _f(n){return w(n)?n.trim().replace(Bh,", "):""}function Ef(n){let[e,t,r,i,o,a,s,d]=n.split(".");if(e!=="vp08"&&e!=="vp09"&&e!=="vp10")return;let u,l,c;if((i!==void 0&&i==="10"||i==="12")&&(u=parseInt(i,10)),s!==void 0&&(s==="16"?l="pq":s==="18"&&(l="hlg")),a!==void 0&&d!==void 0&&a==="09"&&d==="09"&&(c="rec2020"),!(u===void 0||l===void 0))return{colorDepth:u,eotf:l,colorSpace:c}}function Kd(n,e){var p,I,y;let{availabilityTimeOffset:t,manifestBoundsCalculator:r,isDynamic:i,end:o,start:a,receivedTime:s,unsafelyBaseOnPreviousRepresentation:d,inbandEventStreams:u,isLastPeriod:l}=e,f={availabilityTimeComplete:void 0,availabilityTimeOffset:t,unsafelyBaseOnPreviousRepresentation:d,isEMSGWhitelisted:b=>u===void 0?!1:u.some(({schemeIdUri:T})=>T===b.schemeIdUri),isLastPeriod:l,manifestBoundsCalculator:r,isDynamic:i,periodEnd:o,periodStart:a,receivedTime:s,representationBitrate:n.attributes.bitrate,representationId:n.attributes.id},g;if(n.children.segmentBase!==void 0){let{segmentBase:b}=n.children;g=new _n(b,f)}else if(n.children.segmentList!==void 0){let{segmentList:b}=n.children;g=new En(b,f)}else if(n.children.segmentTemplate!==void 0||e.parentSegmentTemplates.length>0){let b=e.parentSegmentTemplates.slice(),T=n.children.segmentTemplate;T!==void 0&&b.push(T);let v=j({},...b);(v.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(f.availabilityTimeOffset=((p=v.availabilityTimeOffset)!=null?p:0)+((I=e.availabilityTimeOffset)!=null?I:0)),(v.availabilityTimeComplete!==void 0||e.availabilityTimeComplete!==void 0)&&(f.availabilityTimeComplete=(y=v.availabilityTimeComplete)!=null?y:e.availabilityTimeComplete),g=oa.isTimelineIndexArgument(v)?new oa(v,f):new vn(v,f)}else{let b=e.adaptation.children;if(b.segmentBase!==void 0){let{segmentBase:T}=b;g=new _n(T,f)}else if(b.segmentList!==void 0){let{segmentList:T}=b;g=new En(T,f)}else g=new vn({duration:Number.MAX_VALUE,timescale:1,startNumber:0,media:""},f)}return g}function At(n,e){var i;if(e.length===0)return n;let t=e.map(o=>({url:o.value}));if(n.length===0)return t;let r=[];for(let o=0;o<n.length;o++){let a=n[o];for(let s=0;s<t.length;s++){let d=t[s],u=$n(a.url,d.url);r.push({url:u,serviceLocation:(i=d.serviceLocation)!=null?i:a.serviceLocation})}}return r}function Fh(n,e){let t=[];if(n.children.inbandEventStreams!==void 0&&t.push(...n.children.inbandEventStreams),e.children.inbandEventStreams!==void 0&&t.push(...e.children.inbandEventStreams),t.length!==0)return t}function Kh({adaptationProfiles:n,essentialProperties:e,supplementalProperties:t,manifestProfiles:r,codecs:i}){if(((n!=null?n:"")+(r!=null?r:"")).indexOf("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")!==-1&&(i==="hvc1.2.4.L153.B0"||i==="hev1.2.4.L153.B0"))return{colorDepth:10,eotf:"pq",colorSpace:"rec2020"};let a=Z([...e!=null?e:[],...t!=null?t:[]],s=>s.schemeIdUri==="urn:mpeg:mpegB:cicp:TransferCharacteristics");if(a!==void 0)switch(a.value){case"15":return;case"16":return{eotf:"pq"};case"18":return{eotf:"hlg"}}if(i!==void 0&&/^vp(08|09|10)/.exec(i))return Ef(i)}function Vd(n,e,t){var i,o,a,s,d,u,l;let r=[];for(let c of n){let f=c.attributes.id!==void 0?c.attributes.id:String(c.attributes.bitrate)+(c.attributes.height!==void 0?`-${c.attributes.height}`:"")+(c.attributes.width!==void 0?`-${c.attributes.width}`:"")+(c.attributes.mimeType!==void 0?`-${c.attributes.mimeType}`:"")+(c.attributes.codecs!==void 0?`-${c.attributes.codecs}`:"");for(;r.some(A=>A.id===f);)f+="-dup";let g=(o=(i=t.unsafelyBaseOnPreviousAdaptation)==null?void 0:i.getRepresentation(f))!=null?o:null,p=Fh(c,e),I=(a=c.attributes.availabilityTimeComplete)!=null?a:t.availabilityTimeComplete,y;(c.attributes.availabilityTimeOffset!==void 0||t.availabilityTimeOffset!==void 0)&&(y=((s=c.attributes.availabilityTimeOffset)!=null?s:0)+((d=t.availabilityTimeOffset)!=null?d:0));let b=j({},t,{availabilityTimeOffset:y,availabilityTimeComplete:I,unsafelyBaseOnPreviousRepresentation:g,adaptation:e,inbandEventStreams:p}),T=Kd(c,b),v;c.attributes.bitrate===void 0?(m.warn("DASH: No usable bitrate found in the Representation."),v=0):v=c.attributes.bitrate;let E=At(t.baseURLs,c.children.baseURLs),R=E.length===0?[{baseUrl:"",id:void 0}]:E.map(A=>({baseUrl:A.url,id:A.serviceLocation})),k={bitrate:v,cdnMetadata:R,index:T,id:f};c.children.supplementalProperties!==void 0&&Z(c.children.supplementalProperties,A=>A.schemeIdUri==="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"&&A.value==="JOC")&&(k.isSpatialAudio=!0);let x;c.attributes.codecs!==void 0?x=c.attributes.codecs:e.attributes.codecs!==void 0&&(x=e.attributes.codecs),x!==void 0&&(x=x==="mp4a.40.02"?"mp4a.40.2":x,k.codecs=x);let M;c.attributes.supplementalCodecs!==void 0?M=c.attributes.supplementalCodecs:e.attributes.supplementalCodecs!==void 0&&(M=e.attributes.supplementalCodecs),M!==void 0&&(k.supplementalCodecs=_f(M)),c.attributes.frameRate!==void 0?k.frameRate=c.attributes.frameRate:e.attributes.frameRate!==void 0&&(k.frameRate=e.attributes.frameRate),c.attributes.height!==void 0?k.height=c.attributes.height:e.attributes.height!==void 0&&(k.height=e.attributes.height),c.attributes.mimeType!==void 0?k.mimeType=c.attributes.mimeType:e.attributes.mimeType!==void 0&&(k.mimeType=e.attributes.mimeType),c.attributes.width!==void 0?k.width=c.attributes.width:e.attributes.width!==void 0&&(k.width=e.attributes.width);{let A=[...(u=e.children.contentProtections)!=null?u:[],...(l=c.children.contentProtections)!=null?l:[]];for(let L of A)t.contentProtectionParser.add(k,L)}k.hdrInfo=Kh({adaptationProfiles:e.attributes.profiles,supplementalProperties:e.children.supplementalProperties,essentialProperties:e.children.essentialProperties,manifestProfiles:t.manifestProfiles,codecs:x}),r.push(k)}return r}function Vh(n){if(n===void 0)return!1;let e=n.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&n.value==="1",t=n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="description";return e||t}function zh(n,e){return!!(n!==void 0&&n.some(r=>r.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&r.value==="2")||e!==void 0&&e.some(r=>r.schemeIdUri==="urn:mpeg:dash:role:2011"&&r.value==="caption"))}function Hh(n){return n===void 0?!1:n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="sign"}function Wh(n,e){if(w(n.attributes.id))return n.attributes.id;let{isClosedCaption:t,isForcedSubtitle:r,isAudioDescription:i,isSignInterpreted:o,isTrickModeTrack:a,type:s}=e,d=s;return w(n.attributes.language)&&(d+=`-${n.attributes.language}`),t===!0&&(d+="-cc"),r===!0&&(d+="-cc"),i===!0&&(d+="-ad"),o===!0&&(d+="-si"),a&&(d+="-trickMode"),w(n.attributes.contentType)&&(d+=`-${n.attributes.contentType}`),w(n.attributes.codecs)&&(d+=`-${n.attributes.codecs}`),w(n.attributes.mimeType)&&(d+=`-${n.attributes.mimeType}`),n.attributes.frameRate!==void 0&&(d+=`-${String(n.attributes.frameRate)}`),d}function Gh(n){if(!_(n.children.supplementalProperties)){let{supplementalProperties:e}=n.children;for(let t of e)if(t.schemeIdUri==="urn:mpeg:dash:adaptation-set-switching:2016"&&!_(t.value))return t.value.split(",").map(r=>r.trim()).filter(r=>r)}return[]}function zd(n,e){var s,d,u,l,c,f,g;let t={video:[],audio:[],text:[]},r=[],i={},o=[];for(let p=0;p<n.length;p++){let I=n[p],y=I.children,{essentialProperties:b,roles:T,label:v}=y,E=Array.isArray(T)&&T.some(ye=>ye.value==="main")&&T.some(ye=>ye.schemeIdUri==="urn:mpeg:dash:role:2011"),R=I.children.representations,k=(s=I.attributes.availabilityTimeComplete)!=null?s:e.availabilityTimeComplete,x;(I.attributes.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(x=((d=I.attributes.availabilityTimeOffset)!=null?d:0)+((u=e.availabilityTimeOffset)!=null?u:0));let M=I.attributes.mimeType,A=I.attributes.codecs,L=Fd(R,w(M)?M:null,w(A)?A:null,_(y.roles)?null:y.roles);if(L===void 0)continue;let O=(l=I.attributes.selectionPriority)!=null?l:1,F=I.attributes.id,C=Gh(I),P=[];e.segmentTemplate!==void 0&&P.push(e.segmentTemplate),I.children.segmentTemplate!==void 0&&P.push(I.children.segmentTemplate);let D={availabilityTimeComplete:k,availabilityTimeOffset:x,baseURLs:At(e.baseURLs,y.baseURLs),contentProtectionParser:e.contentProtectionParser,manifestBoundsCalculator:e.manifestBoundsCalculator,end:e.end,isDynamic:e.isDynamic,isLastPeriod:e.isLastPeriod,manifestProfiles:e.manifestProfiles,parentSegmentTemplates:P,receivedTime:e.receivedTime,start:e.start,unsafelyBaseOnPreviousAdaptation:null},N=Array.isArray(b)?Z(b,ye=>ye.schemeIdUri==="http://dashif.org/guidelines/trickmode"):void 0,z=(c=N==null?void 0:N.value)==null?void 0:c.split(" "),$=z!==void 0,{accessibilities:q}=y,W;T!==void 0&&T.some(ye=>ye.value==="dub")&&(W=!0);let H;L!=="text"?H=!1:H=zh(q,T);let V;L==="text"&&T!==void 0&&T.some(ye=>ye.value==="forced-subtitle"||ye.value==="forced_subtitle")&&(V=!0);let ae;L!=="audio"?ae=!1:q!==void 0&&(ae=q.some(Vh));let se;L!=="video"?se=!1:q!==void 0&&(se=q.some(Hh));let le=Wh(I,{isAudioDescription:ae,isForcedSubtitle:V,isClosedCaption:H,isSignInterpreted:se,isTrickModeTrack:$,type:L});for(;Q(o,le);)le+="-dup";let Se=le;o.push(le),D.unsafelyBaseOnPreviousAdaptation=(g=(f=e.unsafelyBaseOnPreviousPeriod)==null?void 0:f.getAdaptation(le))!=null?g:null;let Y=Vd(R,I,D),ce={id:le,representations:Y,type:L,isTrickModeTrack:$};if(_(I.attributes.language)||(ce.language=I.attributes.language),_(H)||(ce.closedCaption=H),_(ae)||(ce.audioDescription=ae),W===!0&&(ce.isDub=!0),V!==void 0&&(ce.forcedSubtitles=V),se===!0&&(ce.isSignInterpreted=!0),v!==void 0&&(ce.label=v),z!==void 0)r.push({adaptation:ce,trickModeAttachedAdaptationIds:z});else{let ye=-1;for(let Bt of C){let $e=i[Bt];if($e!==void 0&&$e.newID!==Se&&Q($e.adaptationSetSwitchingIDs,F)){ye=he(t[L],Tt=>Tt[0].id===Bt);let Ue=t[L][ye];if(Ue!==void 0&&Ue[0].audioDescription===ce.audioDescription&&Ue[0].closedCaption===ce.closedCaption&&Ue[0].language===ce.language){m.info('DASH Parser: merging "switchable" AdaptationSets',F,Bt),Ue[0].representations.push(...ce.representations),Ue[1]={priority:Math.max(O,Ue[1].priority),isMainAdaptation:E||Ue[1].isMainAdaptation,indexInMpd:Math.min(p,Ue[1].indexInMpd)};break}}}ye<0&&t[L].push([ce,{priority:O,isMainAdaptation:E,indexInMpd:p}])}!_(F)&&_(i[F])&&(i[F]={newID:Se,adaptationSetSwitchingIDs:C})}let a=$t.reduce((p,I)=>{let y=t[I];return y.length>0&&(y.sort(vf),p[I]=y.map(([b])=>b)),p},{});return t.video.sort(vf),Tf(a,r),a}function vf(n,e){let t=e[1].priority-n[1].priority;return t!==0?t:n[1].isMainAdaptation!==e[1].isMainAdaptation?n[1].isMainAdaptation?-1:1:n[1].indexInMpd-e[1].indexInMpd}var qh=Ze();function Hd(n,e){var a,s,d,u,l;let t=[],r=Bd(n,e);if(r.length!==n.length)throw new Error("MPD parsing error: the time information are incoherent.");let{isDynamic:i,manifestBoundsCalculator:o}=e;!i&&!_(e.duration)&&o.setLastPosition(e.duration);for(let c=n.length-1;c>=0;c--){let f=c===n.length-1,g=n[c],p=e.xlinkInfos.get(g),I=At(e.baseURLs,g.children.baseURLs),{periodStart:y,periodDuration:b,periodEnd:T}=r[c],v;for(_(g.attributes.id)?(m.warn("DASH: No usable id found in the Period. Generating one."),v="gen-dash-period-"+qh()):v=g.attributes.id;t.some(N=>N.id===v);)v+="-dup";let E=p!==void 0?p.receivedTime:e.receivedTime,R=(s=(a=e.unsafelyBaseOnPreviousManifest)==null?void 0:a.getPeriod(v))!=null?s:null,k=g.attributes.availabilityTimeComplete,x=g.attributes.availabilityTimeOffset,{manifestProfiles:M,contentProtectionParser:A}=e,{segmentTemplate:L}=g.children;A.addReferences((d=g.children.contentProtections)!=null?d:[]);let O={availabilityTimeComplete:k,availabilityTimeOffset:x,baseURLs:I,contentProtectionParser:A,manifestBoundsCalculator:o,end:T,isDynamic:i,isLastPeriod:f,manifestProfiles:M,receivedTime:E,segmentTemplate:L,start:y,unsafelyBaseOnPreviousPeriod:R},F=zd(g.children.adaptations,O),C=((u=e.xmlNamespaces)!=null?u:[]).concat((l=g.attributes.namespaces)!=null?l:[]),P=Yh(g.children.eventStreams,y,C),D={id:v,start:y,end:T,duration:b,adaptations:F,streamEvents:P};if(t.unshift(D),!o.lastPositionIsKnown()){let N=jh(F);if(!i)typeof N=="number"&&o.setLastPosition(N);else if(typeof N=="number"){let z=K()/1e3;o.setLastPosition(N,z)}else{let z=Rf(e,y);if(z!==void 0){let[$,q]=z;o.setLastPosition($,q)}}}}if(e.isDynamic&&!o.lastPositionIsKnown()){let c=Rf(e,0);if(c!==void 0){let[f,g]=c;o.setLastPosition(f,g)}}return Ud(t)}function Rf(n,e){if(_(n.clockOffset)){let t=Date.now()/1e3;if(t>=e){m.warn("DASH Parser: no clock synchronization mechanism found. Using the system clock instead.");let r=t-n.availabilityStartTime,i=K()/1e3;return[r,i]}}else{let t=n.clockOffset/1e3-n.availabilityStartTime,r=K()/1e3,i=r+t;if(i>=e)return[i,r]}}function jh(n){let e=null,t=!0,r=wn(n).filter(o=>!_(o)),i=Ln(r,o=>o);for(let o of i){let a=o.representations;for(let s of a){let d=s.index.getLastAvailablePosition();d!==null&&(t=!1,typeof d=="number"&&(e=_(e)?d:Math.max(e,d)))}}if(_(e)){if(t)return null}else return e}function Yh(n,e,t){var i,o;let r=[];for(let a of n){let{schemeIdUri:s="",timescale:d=1}=a.attributes,u=t.concat((i=a.attributes.namespaces)!=null?i:[]);for(let l of a.children.events)if(l.eventStreamData!==void 0){let c=((o=l.presentationTime)!=null?o:0)/d+e,f=l.duration===void 0?void 0:c+l.duration/d,g,p;if(!Ft&&l.eventStreamData instanceof Element)g=l.eventStreamData;else try{p={namespaces:u,data:typeof l.eventStreamData=="string"?l.eventStreamData:Le(new Uint8Array(l.eventStreamData))}}catch(I){m.error("DASH: Error while parsing event-stream:",I instanceof Error?I.message:"Unknown error")}r.push({start:c,end:f,id:l.id,data:{type:"dash-event-stream",value:{schemeIdUri:s,timescale:d,element:g,xmlData:p}}})}}return r}function Qn(n,e,t,r,i=new WeakMap){let{children:o,attributes:a}=n;if(_(e.externalClockOffset)){let d=a.type==="dynamic",u=Z(o.utcTimings,f=>f.schemeIdUri==="urn:mpeg:dash:utc:direct:2014"&&!_(f.value)),l=!_(u)&&!_(u.value)?aa(u.value):void 0,c=!_(l)&&!isNaN(l)?l:void 0;if(!_(c)&&r!==!0)e.externalClockOffset=c;else if(d&&r!==!0){let f=wd(n);if(!_(f)&&f.length>0)return{type:"needs-clock",value:{url:f,continue:function(p){return p.success?(e.externalClockOffset=aa(p.data),Qn(n,e,t,!0)):(t.push(p.error),m.warn("DASH Parser: Error on fetching the clock ressource",p.error),Qn(n,e,t,!0))}}}}}let s=[];for(let d=0;d<o.periods.length;d++){let{xlinkHref:u,xlinkActuate:l}=o.periods[d].attributes;!_(u)&&l==="onLoad"&&s.push({index:d,ressource:u})}return s.length===0?$h(n,e,t,i):{type:"needs-xlinks",value:{xlinksUrls:s.map(({ressource:d})=>d),continue:function(u){if(u.length!==s.length)throw new Error("DASH parser: wrong number of loaded ressources.");for(let l=u.length-1;l>=0;l--){let c=s[l].index,{parsed:f,warnings:g,receivedTime:p,sendingTime:I,url:y}=u[l];g.length>0&&t.push(...g);for(let b of f)i.set(b,{receivedTime:p,sendingTime:I,url:y});o.periods.splice(c,1,...f)}return Qn(n,e,t,r,i)}}}}function $h(n,e,t,r){var P,D,N,z,$;let{children:i,attributes:o}=n,a=o.type==="dynamic",s=e.url!==void 0?[{url:e.url.substring(0,xi(e.url))}]:[],d=At(s,i.baseURLs),u=Nd(o,e.referenceDateTime),l=o.timeShiftBufferDepth,c=o.maxSegmentDuration,{externalClockOffset:f,unsafelyBaseOnPreviousManifest:g}=e,{externalClockOffset:p}=e,I=new Oi({availabilityStartTime:u,isDynamic:a,timeShiftBufferDepth:l,serverTimestampOffset:p}),y=new wi;y.addReferences((P=i.contentProtections)!=null?P:[]);let b={availabilityStartTime:u,baseURLs:d,clockOffset:f,contentProtectionParser:y,duration:o.duration,isDynamic:a,manifestBoundsCalculator:I,manifestProfiles:n.attributes.profiles,receivedTime:e.manifestReceivedTime,unsafelyBaseOnPreviousManifest:g,xlinkInfos:r,xmlNamespaces:n.attributes.namespaces},T=Hd(i.periods,b);y.finalize();let v=o.duration,E,R,k=null,x;o.minimumUpdatePeriod!==void 0&&o.minimumUpdatePeriod>=0&&(E=o.minimumUpdatePeriod===0?U.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:o.minimumUpdatePeriod);let{minimumSafePosition:M,maximumSafePosition:A,maximumUnsafePosition:L}=Ld(T),O=K();if(a){let q;A!==void 0?q=A:p===void 0?(m.warn("DASH Parser: use system clock to define maximum position"),q=Date.now()/1e3-u):q=(K()+p)/1e3-u;let W=I.getEstimatedLiveEdge();W===void 0&&(L!==void 0?W=L:W=q),x={isLinear:!0,maximumSafePosition:q,livePosition:W,time:O},R=M,k=l!=null?l:null,k!==null&&(k+=c!=null?c:0),k!==null&&R!==void 0&&W-R>k&&(k=W-R)}else{R=M,R===void 0&&(R=(N=(D=T[0])==null?void 0:D.start)!=null?N:0);let q=v!=null?v:1/0;if(T[T.length-1]!==void 0){let W=T[T.length-1],H=(z=W.end)!=null?z:W.duration!==void 0?W.start+W.duration:void 0;H!==void 0&&H<q&&(q=H)}A!==void 0&&A<q&&(q=A),x={isLinear:!1,maximumSafePosition:q,livePosition:void 0,time:O}}let F=!a||n.attributes.minimumUpdatePeriod===void 0&&((($=T[T.length-1])==null?void 0:$.end)!==void 0||n.attributes.duration!==void 0);return{type:"done",value:{parsed:{availabilityStartTime:u,clockOffset:e.externalClockOffset,isDynamic:a,isLive:a,isLastPeriodKnown:F,periods:T,publishTime:o.publishTime,suggestedPresentationDelay:o.suggestedPresentationDelay,transportType:"dash",timeBounds:{minimumSafePosition:R,timeshiftDepth:k,maximumTimeData:x},lifetime:E,uris:_(e.url)?i.locations:[e.url,...i.locations]},warnings:t}}}var kf=Qn;function xt(n){let e=n.textContent,t=[];return e===null||e.length===0?[void 0,t]:[{value:e},t]}var Qh=/^P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,Xh=/([0-9]+)-([0-9]+)/;function We(n,e){return n==="true"?[!0,null]:n==="false"?[!1,null]:[!1,new et(`\`${e}\` property is not a boolean value but "${n}"`)]}function be(n,e){let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not an integer value but "${n}"`)]:[t,null]}function je(n,e){if(n==="INF")return[1/0,null];let t=parseFloat(n);return isNaN(t)?[null,new et(`\`${e}\` property is invalid: "${n}"`)]:[t,null]}function Wd(n,e){if(n==="true")return[!0,null];if(n==="false")return[!1,null];let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not a boolean nor an integer but "${n}"`)]:[t,null]}function ua(n,e){let t=Date.parse(n);return isNaN(t)?[null,new et(`\`${e}\` is in an invalid date format: "${n}"`)]:[new Date(Date.parse(n)).getTime()/1e3,null]}function pt(n,e){if(!w(n))return[0,new et(`\`${e}\` property is empty`)];let t=Qh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[parseFloat(w(t[2])?t[2]:"0")*365*24*60*60+parseFloat(w(t[4])?t[4]:"0")*30*24*60*60+parseFloat(w(t[6])?t[6]:"0")*24*60*60+parseFloat(w(t[8])?t[8]:"0")*60*60+parseFloat(w(t[10])?t[10]:"0")*60+parseFloat(w(t[12])?t[12]:"0"),null]}function Rn(n,e){let t=Xh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[[+t[1],+t[2]],null]}function Cf(n,e){try{return[ft(n),null]}catch(t){return[null,new et(`\`${e}\` is not a valid base64 string: "${n}"`)]}}function Xn(n,e){let t=/^(\d+)\/(\d+)$/.exec(n);return t!==null?[+t[1]/+t[2],null]:je(n,e)}function ze(n){let e,t;for(let r=0;r<n.attributes.length;r++){let i=n.attributes[r];switch(i.name){case"schemeIdUri":e=i.value;break;case"value":t=i.value;break}}return{schemeIdUri:e,value:t}}function xe(n,e){return function(t,{asKey:r,parser:i,dashName:o}){let[a,s]=i(t,o);s!==null&&(m.warn(s.message),e.push(s)),a!==null&&(n[r]=a)}}var et=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="MPDError"}};function Zh(n){let e=[],t=[];for(let r=0;r<n.length;r++)if(n[r].nodeType===Node.ELEMENT_NODE){let i=n[r];if(i.nodeName==="cenc:pssh"){let o=i.textContent;if(o!==null&&o.length>0){let[a,s]=Cf(o,"cenc:pssh");s!==null&&(m.warn(s.message),e.push(s)),a!==null&&t.push(a)}}}return[{cencPssh:t},e]}function Jh(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"schemeIdUri":e.schemeIdUri=r.value;break;case"value":e.value=r.value;break;case"cenc:default_KID":e.keyId=qe(r.value.replace(/-/g,""));break;case"ref":e.ref=r.value;break;case"refId":e.refId=r.value;break}}return e}function wt(n){let[e,t]=Zh(n.childNodes),r=Jh(n);return[{children:e,attributes:r},t]}function Gd(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"id":e.id=r.value;break;case"lang":e.language=r.value;break;case"contentType":e.contentType=r.value;break;case"par":e.par=r.value;break}}return e}function qd(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"range":r(o.value,{asKey:"range",parser:Rn,dashName:"range"});break;case"sourceURL":e.media=o.value;break}}return[e,t]}function Ot(n){let e={},t=[],r=xe(e,t),i=n.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){let a=i[o];if(a.nodeName==="Initialization"){let[s,d]=qd(a);e.initialization=s,t=t.concat(d)}}for(let o=0;o<n.attributes.length;o++){let a=n.attributes[o];switch(a.name){case"timescale":r(a.value,{asKey:"timescale",parser:be,dashName:"timescale"});break;case"presentationTimeOffset":r(a.value,{asKey:"presentationTimeOffset",parser:je,dashName:"presentationTimeOffset"});break;case"indexRange":r(a.value,{asKey:"indexRange",parser:Rn,dashName:"indexRange"});break;case"indexRangeExact":r(a.value,{asKey:"indexRangeExact",parser:We,dashName:"indexRangeExact"});break;case"availabilityTimeOffset":r(a.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(a.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"duration":r(a.value,{asKey:"duration",parser:be,dashName:"duration"});break;case"startNumber":r(a.value,{asKey:"startNumber",parser:be,dashName:"startNumber"});break;case"endNumber":r(a.value,{asKey:"endNumber",parser:be,dashName:"endNumber"});break}}return[e,t]}function jd(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"media":e.media=o.value;break;case"indexRange":r(o.value,{asKey:"indexRange",parser:Rn,dashName:"indexRange"});break;case"index":e.index=o.value;break;case"mediaRange":r(o.value,{asKey:"mediaRange",parser:Rn,dashName:"mediaRange"});break}}return[e,t]}function Di(n){let[e,t]=Ot(n),r=t,i=[],o=n.childNodes;for(let s=0;s<o.length;s++)if(o[s].nodeType===Node.ELEMENT_NODE){let d=o[s];if(d.nodeName==="SegmentURL"){let[u,l]=jd(d);i.push(u),r=r.concat(l)}}return[j(e,{list:i}),r]}function Yd(n){let e=null;return function(){if(e===null){let t=n.getElementsByTagName("S");return e=t,t}return e}}function kn(n){let[e,t]=Ot(n),r=t,i;for(let s=0;s<n.childNodes.length;s++)if(n.childNodes[s].nodeType===Node.ELEMENT_NODE){let d=n.childNodes[s];d.nodeName==="SegmentTimeline"&&(i=Yd(d))}let o=j({},e,{duration:e.duration,timelineParser:i}),a=xe(o,r);for(let s=0;s<n.attributes.length;s++){let d=n.attributes[s];switch(d.nodeName){case"initialization":_(o.initialization)&&(o.initialization={media:d.value});break;case"index":o.index=d.value;break;case"availabilityTimeOffset":a(d.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":a(d.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"media":o.media=d.value;break;case"bitstreamSwitching":a(d.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break}}return[o,r]}function ey(n){let e={baseURLs:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"BaseURL":{let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),r=r.concat(s);break}case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"SegmentBase":{let[a,s]=Ot(o);e.segmentBase=a,s.length>0&&(r=r.concat(s));break}case"SegmentList":{let[a,s]=Di(o);r=r.concat(s),e.segmentList=a;break}case"SegmentTemplate":{let[a,s]=kn(o);r=r.concat(s),e.segmentTemplate=a;break}case"ContentProtection":{let[a,s]=wt(o);s.length>0&&(r=r.concat(s)),a!==void 0&&t.push(a);break}case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break}}return t.length>0&&(e.contentProtections=t),[e,r]}function ty(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"bandwidth":r(o.value,{asKey:"bitrate",parser:be,dashName:"bandwidth"});break;case"codecs":e.codecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:be,dashName:"height"});break;case"id":e.id=o.value;break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"qualityRanking":r(o.value,{asKey:"qualityRanking",parser:be,dashName:"qualityRanking"});break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:be,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return e.bitrate===void 0&&t.push(new et("No bitrate found on a Representation")),[e,t]}function Pf(n){let[e,t]=ey(n.childNodes),[r,i]=ty(n),o=t.concat(i);return[{children:e,attributes:r},o]}function ny(n){let e={baseURLs:[],representations:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"Accessibility":e.accessibilities===void 0?e.accessibilities=[ze(o)]:e.accessibilities.push(ze(o));break;case"BaseURL":{let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),s.length>0&&(r=r.concat(s));break}case"ContentComponent":e.contentComponent=Gd(o);break;case"EssentialProperty":_(e.essentialProperties)?e.essentialProperties=[ze(o)]:e.essentialProperties.push(ze(o));break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"Label":{let a=o.textContent;a!=null&&(e.label=a);break}case"Representation":{let[a,s]=Pf(o);e.representations.push(a),s.length>0&&(r=r.concat(s));break}case"Role":_(e.roles)?e.roles=[ze(o)]:e.roles.push(ze(o));break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break;case"SegmentBase":{let[a,s]=Ot(o);e.segmentBase=a,s.length>0&&(r=r.concat(s));break}case"SegmentList":{let[a,s]=Di(o);e.segmentList=a,s.length>0&&(r=r.concat(s));break}case"SegmentTemplate":{let[a,s]=kn(o);e.segmentTemplate=a,s.length>0&&(r=r.concat(s));break}case"ContentProtection":{let[a,s]=wt(o);s.length>0&&(r=r.concat(s)),a!==void 0&&t.push(a);break}}}return t.length>0&&(e.contentProtections=t),[e,r]}function ry(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"group":r(o.value,{asKey:"group",parser:be,dashName:"group"});break;case"lang":e.language=o.value;break;case"contentType":e.contentType=o.value;break;case"par":e.par=o.value;break;case"minBandwidth":r(o.value,{asKey:"minBitrate",parser:be,dashName:"minBandwidth"});break;case"maxBandwidth":r(o.value,{asKey:"maxBitrate",parser:be,dashName:"maxBandwidth"});break;case"minWidth":r(o.value,{asKey:"minWidth",parser:be,dashName:"minWidth"});break;case"maxWidth":r(o.value,{asKey:"maxWidth",parser:be,dashName:"maxWidth"});break;case"minHeight":r(o.value,{asKey:"minHeight",parser:be,dashName:"minHeight"});break;case"maxHeight":r(o.value,{asKey:"maxHeight",parser:be,dashName:"maxHeight"});break;case"minFrameRate":r(o.value,{asKey:"minFrameRate",parser:Xn,dashName:"minFrameRate"});break;case"maxFrameRate":r(o.value,{asKey:"maxFrameRate",parser:Xn,dashName:"maxFrameRate"});break;case"selectionPriority":r(o.value,{asKey:"selectionPriority",parser:be,dashName:"selectionPriority"});break;case"segmentAlignment":r(o.value,{asKey:"segmentAlignment",parser:Wd,dashName:"segmentAlignment"});break;case"subsegmentAlignment":r(o.value,{asKey:"subsegmentAlignment",parser:Wd,dashName:"subsegmentAlignment"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"codecs":e.codecs=o.value;break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:be,dashName:"height"});break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:be,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return[e,t]}function Mf(n){let e=n.childNodes,[t,r]=ny(e),[i,o]=ry(n),a=r.concat(o);return[{children:t,attributes:i},a]}function $d(n){let e={children:{events:[]},attributes:{}},t=[],r=xe(e.attributes,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"schemeIdUri":e.attributes.schemeIdUri=o.value;break;case"timescale":r(o.value,{asKey:"timescale",parser:be,dashName:"timescale"});break;case"value":e.attributes.value=o.value;break}}for(let i=0;i<n.childNodes.length;i++)if(n.childNodes[i].nodeType===Node.ELEMENT_NODE){let o=n.childNodes[i];switch(o.nodeName){case"Event":{let[a,s]=iy(o);e.children.events.push(a),s.length>0&&(t=t.concat(s));break}}}return[e,t]}function iy(n){let e={eventStreamData:n},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"presentationTime":r(o.value,{asKey:"presentationTime",parser:be,dashName:"presentationTime"});break;case"duration":r(o.value,{asKey:"duration",parser:be,dashName:"duration"});break;case"id":e.id=o.value;break}}return[e,t]}function oy(n){let e=[],t=[],r,i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":{let[u,l]=xt(d);u!==void 0&&e.push(u),o=o.concat(l);break}case"AdaptationSet":{let[u,l]=Mf(d);t.push(u),o=o.concat(l);break}case"EventStream":{let[u,l]=$d(d);a.push(u),o=o.concat(l);break}case"SegmentTemplate":{let[u,l]=kn(d);r=u,l.length>0&&(o=o.concat(l));break}case"ContentProtection":{let[u,l]=wt(d);l.length>0&&(o=o.concat(l)),u!==void 0&&i.push(u);break}}}return[{baseURLs:e,adaptations:t,eventStreams:a,segmentTemplate:r,contentProtections:i},o]}function ay(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"start":r(o.value,{asKey:"start",parser:pt,dashName:"start"});break;case"duration":r(o.value,{asKey:"duration",parser:pt,dashName:"duration"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"xlink:href":e.xlinkHref=o.value;break;case"xlink:actuate":e.xlinkActuate=o.value;break}}return[e,t]}function la(n){let[e,t]=oy(n.childNodes),[r,i]=ay(n),o=t.concat(i);return[{children:e,attributes:r},o]}function sy(n){let e=[],t=[],r=[],i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":{let[u,l]=xt(d);u!==void 0&&e.push(u),a=a.concat(l);break}case"Location":t.push(d.textContent===null?"":d.textContent);break;case"Period":{let[u,l]=la(d);r.push(u),a=a.concat(l);break}case"UTCTiming":{let u=ze(d);i.push(u);break}case"ContentProtection":{let[u,l]=wt(d);l.length>0&&(a=a.concat(l)),u!==void 0&&o.push(u);break}}}return[{baseURLs:e,locations:t,periods:r,utcTimings:i,contentProtections:o},a]}function dy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"profiles":e.profiles=o.value;break;case"type":e.type=o.value;break;case"availabilityStartTime":r(o.value,{asKey:"availabilityStartTime",parser:ua,dashName:"availabilityStartTime"});break;case"availabilityEndTime":r(o.value,{asKey:"availabilityEndTime",parser:ua,dashName:"availabilityEndTime"});break;case"publishTime":r(o.value,{asKey:"publishTime",parser:ua,dashName:"publishTime"});break;case"mediaPresentationDuration":r(o.value,{asKey:"duration",parser:pt,dashName:"mediaPresentationDuration"});break;case"minimumUpdatePeriod":r(o.value,{asKey:"minimumUpdatePeriod",parser:pt,dashName:"minimumUpdatePeriod"});break;case"minBufferTime":r(o.value,{asKey:"minBufferTime",parser:pt,dashName:"minBufferTime"});break;case"timeShiftBufferDepth":r(o.value,{asKey:"timeShiftBufferDepth",parser:pt,dashName:"timeShiftBufferDepth"});break;case"suggestedPresentationDelay":r(o.value,{asKey:"suggestedPresentationDelay",parser:pt,dashName:"suggestedPresentationDelay"});break;case"maxSegmentDuration":r(o.value,{asKey:"maxSegmentDuration",parser:pt,dashName:"maxSegmentDuration"});break;case"maxSubsegmentDuration":r(o.value,{asKey:"maxSubsegmentDuration",parser:pt,dashName:"maxSubsegmentDuration"});break}}return[e,t]}function Af(n){let[e,t]=sy(n.childNodes),[r,i]=dy(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Qd(n,e){let t=n.documentElement;if(_(t)||t.nodeName!=="MPD")throw new Error("DASH Parser: document root should be MPD");let[r,i]=Af(t),o=kf(r,e,i);return a(o);function a(s){if(s.type==="done")return s;if(s.type==="needs-clock")return{type:"needs-resources",value:{urls:[s.value.url],format:"string",continue(d){if(d.length!==1)throw new Error("DASH parser: wrong number of loaded ressources.");let u=s.value.continue(d[0].responseData);return a(u)}}};if(s.type==="needs-xlinks")return{type:"needs-resources",value:{urls:s.value.xlinksUrls,format:"string",continue(d){let u=[];for(let c=0;c<d.length;c++){let{responseData:f,receivedTime:g,sendingTime:p,url:I}=d[c];if(!f.success)throw f.error;let y="<root>"+f.data+"</root>",b=new DOMParser().parseFromString(y,"text/xml");if(_(b)||b.children.length===0)throw new Error("DASH parser: Invalid external ressources");let T=b.children[0].children,v=[],E=[];for(let R=0;R<T.length;R++)if(T[R].nodeType===Node.ELEMENT_NODE){let[k,x]=la(T[R]);E.push(...x),v.push(k)}u.push({url:I,receivedTime:g,sendingTime:p,parsed:v,warnings:E})}let l=s.value.continue(u);return a(l)}}};Qe(s)}}var xf=Qd;function Ye(n,e){if(e.length===0)return n;let t,r="",i=n.indexOf("#"),o=n;i>=0&&(r=n.substring(i),o=n.substring(0,i));let a=o.indexOf("?");a===-1?t="?":a+1===o.length?t="":t="&";let s=o+t;for(let d=0;d<e.length;d++){let u=e[d];u[1]===null?s+=u[0]:s+=`${u[0]}=${u[1]}`,d<e.length-1&&(s+="&")}return r.length>0&&(s+=r),s}function Xd(n,e){return(t,r,i)=>new Promise((o,a)=>{let s=Date.now()-K(),d=!1,f={reject:I=>{var v,E;if(d||i.isCancelled())return;d=!0,i.deregister(p);let y=I,b=(v=y==null?void 0:y.message)!=null?v:"Unknown error when fetching the Manifest through a custom manifestLoader.",T=new nt(b,(E=y==null?void 0:y.canRetry)!=null?E:!1,y==null?void 0:y.xhr);a(T)},resolve:I=>{if(d||i.isCancelled())return;d=!0,i.deregister(p);let y=I.receivingTime!==void 0?I.receivingTime-s:void 0,b=I.sendingTime!==void 0?I.sendingTime-s:void 0;o({responseData:I.data,size:I.size,requestDuration:I.duration,url:I.url,receivedTime:y,sendingTime:b})},fallback:()=>{d||i.isCancelled()||(d=!0,i.deregister(p),e(t,r,i).then(o,a))}},g=n({url:t,timeout:r.timeout,cmcdPayload:r.cmcdPayload},f);i.register(p);function p(I){d||(d=!0,typeof g=="function"&&g(),a(I))}})}function uy(n){return function(t,r,i){var s,d;if(t===void 0)throw new Error("Cannot perform HTTP(s) request. URL not known");let o=((s=r.cmcdPayload)==null?void 0:s.type)==="query"?Ye(t,r.cmcdPayload.value):t,a=((d=r.cmcdPayload)==null?void 0:d.type)==="headers"?r.cmcdPayload.value:void 0;switch(n){case"arraybuffer":return Te({url:o,headers:a,responseType:"arraybuffer",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"text":return Te({url:o,headers:a,responseType:"text",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"document":return Te({url:o,headers:a,responseType:"document",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});default:Qe(n)}}}function Li({customManifestLoader:n},e,t){let r=uy(e),i=typeof n!="function"?r:Xd(n,r);return t!==null?t(i):i}function Jt(n,e){if(e){if(yt(n,1718909296)<0)throw new De("INTEGRITY_ERROR","Incomplete `ftyp` box");if(yt(n,1836019574)<0)throw new De("INTEGRITY_ERROR","Incomplete `moov` box")}else{if(yt(n,1836019558)<0)throw new De("INTEGRITY_ERROR","Incomplete `moof` box");if(yt(n,1835295092)<0)throw new De("INTEGRITY_ERROR","Incomplete `mdat` box")}}function gt(n,e){if(n==="audio"||n==="video")return e==="video/mp4"||e==="audio/mp4"?"mp4":e==="video/webm"||e==="audio/webm"?"webm":void 0;if(n==="text")return e==="application/mp4"?"mp4":void 0}function ca(n){return(e,t,r,i,o)=>{return new Promise((s,d)=>{let u=new B,l=u.linkToSignal(i);u.signal.register(d),n(e,t,r,u.signal,de(ie({},o),{onNewChunk(f){try{a(f),o.onNewChunk(f)}catch(g){c(),u.cancel(),d(g)}}})).then(f=>{if(c(),!u.isUsed()){if(f.resultType==="segment-loaded")try{a(f.resultData.responseData)}catch(g){d(g);return}s(f)}},f=>{c(),d(f)});function c(){u.signal.deregister(d),l()}});function a(s){!(s instanceof ArrayBuffer)&&!(s instanceof Uint8Array)||gt(t.type,t.mimeType)!=="mp4"||Jt(new Uint8Array(s),t.segment.isInit)}}}function wf(n){return async(e,t,r)=>{let i=await n(e,t,r);return o(i.responseData),i;function o(a){if(typeof a=="string"){let s=a.length-1,d=["</","MPD",">"];for(let u=d.length-1;u>=0;u--){let l=d[u];for(;ly(a[s]);)s--;for(let c=l.length-1;c>=0;c--){if(a[s]!==l[c])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(a instanceof ArrayBuffer){let s=a.byteLength-1,d=new DataView(a),u=[[60,47],[77,80,68],[62]];for(let l=u.length-1;l>=0;l--){let c=u[l];for(;cy(d.getUint8(s));)s--;for(let f=c.length-1;f>=0;f--){if(d.getUint8(s)!==c[f])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(!_(te.Document)&&a instanceof te.Document&&a.documentElement.nodeName!=="MPD")throw new De("INTEGRITY_ERROR","MPD does not end with </MPD>")}}}function ly(n){return n===" "||n===" "||n==="\r"||n===`
|
|
5
|
-
`}function cy(n){return n===32||n===9||n===13||n===10}function Zd(n){let{referenceDateTime:e}=n,t=n.serverSyncInfos!==void 0?n.serverSyncInfos.serverTimestamp-n.serverSyncInfos.clientTime:void 0;return function(i,o,a,s,d){var T;let{responseData:u}=i,l=o.externalClockOffset,c=(T=i.url)!=null?T:o.originalUrl,f=t!=null?t:l,p={unsafelyBaseOnPreviousManifest:o.unsafeMode?o.previousManifest:null,url:c,referenceDateTime:e,externalClockOffset:f},I=me.dashParsers;if(I.wasm===null||I.wasm.status==="uninitialized"||I.wasm.status==="failure")return m.debug("DASH: WASM MPD Parser not initialized. Running JS one."),y();{let v=hy(u);if(!yy(v))return m.info("DASH: MPD doesn't seem to be UTF-8-encoded. Running JS parser instead of the WASM one."),y();if(I.wasm.status==="initialized"){m.debug("DASH: Running WASM MPD Parser.");let E=I.wasm.runWasmParser(v,p);return b(E)}else return m.debug("DASH: Awaiting WASM initialization before parsing the MPD."),I.wasm.waitForInitialization().catch(()=>{}).then(()=>{if(I.wasm===null||I.wasm.status!=="initialized")return m.warn("DASH: WASM MPD parser initialization failed. Running JS parser instead"),y();m.debug("DASH: Running WASM MPD Parser.");let R=I.wasm.runWasmParser(v,p);return b(R)})}function y(){if(I.fastJs!==null){let v=py(u),E=I.fastJs(v,p);return b(E)}else if(I.native!==null){let v=gy(u),E=I.native(v,p);return b(E)}else throw new Error("No MPD parser is imported")}function b(v){if(v.type==="done"){if(v.value.warnings.length>0&&a(v.value.warnings),s.isCancelled())return Promise.reject(s.cancellationError);let k=[];return{manifest:new Vn(v.value.parsed,n,k),url:c,warnings:k}}let{value:E}=v,R=E.urls.map(k=>d(()=>{let x=U.getCurrent().DEFAULT_REQUEST_TIMEOUT,M=U.getCurrent().DEFAULT_CONNECTION_TIMEOUT;return E.format==="string"?Te({url:k,responseType:"text",timeout:x,connectionTimeout:M,cancelSignal:s}):Te({url:k,responseType:"arraybuffer",timeout:x,connectionTimeout:M,cancelSignal:s})}).then(x=>{if(E.format==="string"){if(typeof x.responseData!="string")throw new Error("External DASH resources should have been a string");return j(x,{responseData:{success:!0,data:x.responseData}})}else{if(!(x.responseData instanceof ArrayBuffer))throw new Error("External DASH resources should have been ArrayBuffers");return j(x,{responseData:{success:!0,data:x.responseData}})}},x=>{let M=we(x,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"An unknown error occured when parsing ressources."});return j({},{size:void 0,requestDuration:void 0,responseData:{success:!1,error:M}})}));return Promise.all(R).then(k=>E.format==="string"?(fy(k),b(E.continue(k))):(my(k),b(E.continue(k))))}}}function fy(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&typeof t.data=="string")&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function my(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&t.data instanceof ArrayBuffer)&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function py(n){if(n instanceof ArrayBuffer)return Le(new Uint8Array(n));if(typeof n=="string")return n;if(n instanceof Document)return n.documentElement.outerHTML;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function gy(n){if(n instanceof ArrayBuffer)return new DOMParser().parseFromString(Le(new Uint8Array(n)),"text/xml");if(typeof n=="string")return new DOMParser().parseFromString(n,"text/xml");if(n instanceof Document)return n;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function hy(n){if(n instanceof ArrayBuffer)return n;if(typeof n=="string")return ve(n).buffer;if(n instanceof Document)return ve(n.documentElement.innerHTML).buffer;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function yy(n){let e=new DataView(n);return e.getUint16(0)===61371&&e.getUint8(2)===191?!0:!(e.getUint16(0)===65279||e.getUint16(0)===65534)}function dt([n,e]){return e===1/0?`bytes=${n}-`:`bytes=${n}-${e}`}function Ni(n,e){return n===null?null:e.url===null?n.baseUrl:$n(n.baseUrl,e.url)}function Ui(n,e,t,r,i){var u,l;let o=n;((u=t.cmcdPayload)==null?void 0:u.type)==="query"&&(o=Ye(o,t.cmcdPayload.value));let a=((l=t.cmcdPayload)==null?void 0:l.type)==="headers"?t.cmcdPayload.value:void 0;if(e.range===void 0)return Te({url:o,responseType:"arraybuffer",headers:a,timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));if(e.indexRange===void 0)return Te({url:o,headers:de(ie({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));if(e.range[1]+1===e.indexRange[0])return Te({url:o,headers:de(ie({},a),{Range:dt([e.range[0],e.indexRange[1]])}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));let s=Te({url:o,headers:de(ie({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}),d=Te({url:o,headers:de(ie({},a),{Range:dt(e.indexRange)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress});return Promise.all([s,d]).then(([c,f])=>{let g=re(new Uint8Array(c.responseData),new Uint8Array(f.responseData)),p=Math.min(c.sendingTime,f.sendingTime),I=Math.max(c.receivedTime,f.receivedTime);return{resultType:"segment-loaded",resultData:{url:o,responseData:g,size:c.size+f.size,requestDuration:I-p,sendingTime:p,receivedTime:I}}})}async function Bi(n,e,t,r){let i=null;function o(s){let d=new Uint8Array(s.chunk),u=i!==null?re(i,d):d,l=No(u),c=l[0];i=l[1],!(c!==null&&(c.forEach(f=>{t.onNewChunk(f)}),r.isCancelled()))&&(t.onProgress({duration:s.duration,size:s.size,totalSize:s.totalSize}),r.isCancelled())}return{resultType:"chunk-complete",resultData:await Io({url:n,headers:e.headers,onData:o,timeout:e.timeout,connectionTimeout:e.connectionTimeout,cancelSignal:r})}}async function Of(n,e,t,r,i,o){var f,g;if(e.segment.isInit)return Ui(n,e.segment,r,o,i);let a=((f=r.cmcdPayload)==null?void 0:f.type)==="query"?Ye(n,r.cmcdPayload.value):n,s=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,{segment:d}=e,u;d.range!==void 0?u=de(ie({},s),{Range:dt(d.range)}):s!==void 0&&(u=s);let l=gt(e.type,e.mimeType);if(t&&(l==="mp4"||l===void 0)){if(Sr())return Bi(a,{headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout},i,o);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}return{resultType:"segment-loaded",resultData:await Te({url:a,responseType:"arraybuffer",headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:o,onProgress:i.onProgress})}}function Jd({lowLatencyMode:n,segmentLoader:e,checkMediaSegmentIntegrity:t}){return t!==!0?r:ca(r);function r(i,o,a,s,d){let u=Ni(i,o.segment);return u===null?Promise.resolve({resultType:"segment-created",resultData:null}):n||e===void 0?Of(u,o,n,a,d,s):new Promise((l,c)=>{let f=!1,b={reject:k=>{var L,O;if(f||s.isCancelled())return;f=!0,s.deregister(R);let x=k,M=(L=x==null?void 0:x.message)!=null?L:"Unknown error when fetching a DASH segment through a custom segmentLoader.",A=new nt(M,(O=x==null?void 0:x.canRetry)!=null?O:!1,x==null?void 0:x.xhr);c(A)},resolve:k=>{f||s.isCancelled()||(f=!0,s.deregister(R),l({resultType:"segment-loaded",resultData:{responseData:k.data,size:k.size,requestDuration:k.duration}}))},progress:k=>{f||s.isCancelled()||d.onProgress({duration:k.duration,size:k.size,totalSize:k.totalSize})},fallback:()=>{f||s.isCancelled()||(f=!0,s.deregister(R),Of(u,o,n,a,d,s).then(l,c))}},T;o.segment.range!==void 0&&(T=[o.segment.range],o.segment.indexRange!==void 0&&T.push(o.segment.indexRange));let v={isInit:o.segment.isInit,timeout:a.timeout,byteRanges:T,trackType:o.type,url:u,cmcdPayload:a.cmcdPayload},E=e(v,b);s.register(R);function R(k){f||(f=!0,typeof E=="function"&&E(),c(k))}})}}var tu=408125543,Df=357149030,Iy=2807729,by=17545,Sy=475249515,Ty=187,_y=179,Ey=183,vy=241;function en(n,e,t,[r,i]){let o=r;for(;o<i;){let a=ky(t,o);if(a===null)return null;let{value:s,length:d}=a,u=o+d,l=Cy(t,u);if(l===null)return null;let{length:c,value:f}=l,g=u+c,p=g+f;if(s===n)return[g,p];if(e.length>0){for(let I=0;I<e.length;I++)if(s===e[I]){let y=e.slice(I+1,e.length);return en(n,y,t,[g,p])}}o=p}return null}function fa(n,e){let t=en(Iy,[tu,Df],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return 1e9/eu(n,t[0],r)}function Ry(n,e){let t=en(by,[tu,Df],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return r===4?Py(n,t[0]):r===8?My(n,t[0]):null}function nu(n,e){let t=en(tu,[],n,[e,n.length]);if(t===null)return null;let[r,i]=t,o=fa(n,r);if(o===null)return null;let a=Ry(n,r);if(a===null)return null;let s=en(Sy,[],n,[r,i]);if(s===null)return null;let d=[],u=s[0];for(;u<s[1];){let c=en(Ty,[],n,[u,s[1]]);if(c===null)break;let f=en(_y,[],n,[c[0],c[1]]);if(f===null)return null;let g=eu(n,f[0],f[1]-f[0]),p=en(vy,[Ey],n,[c[0],c[1]]);if(p===null)return null;let I=eu(n,p[0],p[1]-p[0])+r;d.push({time:g,rangeStart:I}),u=c[1]}let l=[];for(let c=0;c<d.length;c++){let f=d[c];c===d.length-1?l.push({time:f.time,timescale:o,duration:c===0?a:a-f.time,range:[f.rangeStart,1/0]}):l.push({time:f.time,timescale:o,duration:d[c+1].time-f.time,range:[f.rangeStart,d[c+1].rangeStart-1]})}return l}function Lf(n,e){for(let t=1;t<=8;t++)if(n[e]>=Math.pow(2,8-t))return t}function ky(n,e){let t=Lf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function Cy(n,e){let t=Lf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=(n[e]&(1<<8-t)-1)*Math.pow(2,(t-1)*8);for(let i=1;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function Py(n,e){return new DataView(n.buffer).getFloat32(e)}function My(n,e){return new DataView(n.buffer).getFloat64(e)}function eu(n,e,t){let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return r}function Fi(n,e,t,r){let i=bs(n);if(i===void 0||r===void 0)return null;let o=t.timestampOffset!==void 0?i+t.timestampOffset*r:i,a=Or(n);if(o<0&&(a!==void 0&&(a+=o),o=0),e||!t.complete)return a===void 0&&m.warn("DASH: Chunked segments should indicate a duration through their trun boxes"),{time:o/r,duration:a!==void 0?a/r:void 0};let s,d=t.duration*r,u=Math.min(r*.9,d/4);return a!==void 0&&Math.abs(a-d)<=u&&(s=a),{time:o/r,duration:s!==void 0?s/r:s}}function Ay(n,e){if(n.length<=0)return!1;let t=n.length;for(let r=0;r<t;r++){let i=n[r],o=e,{messageData:a}=i,s=Le(a),d=Date.parse(s);if(o===void 0||d===void 0||isNaN(d)||d>=o)return!0}return!1}function ru(n,e){if(n.length===0)return;let{manifestRefreshEventsFromEMSGs:t,EMSGs:r}=n.reduce((a,s)=>(s.schemeIdUri==="urn:mpeg:dash:event:2012"&&s.value==="1"?(a.manifestRefreshEventsFromEMSGs===void 0&&(a.manifestRefreshEventsFromEMSGs=[]),a.manifestRefreshEventsFromEMSGs.push(s)):(a.EMSGs===void 0&&(a.EMSGs=[]),a.EMSGs.push(s)),a),{manifestRefreshEventsFromEMSGs:void 0,EMSGs:void 0}),i=r==null?void 0:r.map(a=>({type:"emsg",value:a})),o=e===void 0||t===void 0?!1:Ay(t,e);return{inbandEvents:i,needsManifestRefresh:o}}function iu({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var v,E;let{segment:o,periodStart:a,periodEnd:s}=r,{data:d,isChunked:u}=t,l=[a,s];if(d===null)return o.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:0,protectionData:[],appendWindow:l};let c=d instanceof Uint8Array?d:new Uint8Array(d),f=gt(r.type,r.mimeType),g=f==="mp4"||f===void 0,p=[];if(g){let R=Uo(c),k;o.isInit&&(k=(v=Pc(c))!=null?v:void 0),(R.length>0||k!==void 0)&&p.push({initDataType:"cenc",keyId:k,initData:R})}if(!o.isInit){let R=g?Fi(c,u,o,i):null,k=(E=o.timestampOffset)!=null?E:0;if(g){let x=Cc(c);if(x!==void 0){let M=x.filter(L=>o.privateInfos===void 0||o.privateInfos.isEMSGWhitelisted===void 0?!1:o.privateInfos.isEMSGWhitelisted(L)),A=ru(M,r.manifestPublishTime);if(A!==void 0){let{needsManifestRefresh:L,inbandEvents:O}=A;return{segmentType:"media",chunkData:c,chunkSize:c.length,chunkInfos:R,chunkOffset:k,appendWindow:l,inbandEvents:O,protectionData:p,needsManifestRefresh:L}}}}return{segmentType:"media",chunkData:c,chunkSize:c.length,chunkInfos:R,chunkOffset:k,protectionData:p,appendWindow:l}}let{indexRange:I}=o,y;if(f==="webm")y=nu(c,0);else if(g&&(y=wr(c,Array.isArray(I)?I[0]:0),n===!0&&y!==null&&y.length>0)){let R=y[y.length-1];Array.isArray(R.range)&&(R.range[1]=1/0)}let b;g?b=Dr(c):f==="webm"&&(b=fa(c,0));let T=_(b)?void 0:b;return{segmentType:"init",initializationData:c,initializationDataSize:c.length,protectionData:p,initTimescale:T,segmentList:y!=null?y:void 0}}}function ou({lowLatencyMode:n,checkMediaSegmentIntegrity:e}){return e!==!0?t:ca(t);async function t(r,i,o,a,s){var y,b;let{segment:d}=i,u=Ni(r,d);if(u===null)return Promise.resolve({resultType:"segment-created",resultData:null});if(d.isInit)return Ui(u,d,o,a,s);let l=((y=o.cmcdPayload)==null?void 0:y.type)==="query"?Ye(u,o.cmcdPayload.value):u,c=((b=o.cmcdPayload)==null?void 0:b.type)==="headers"?o.cmcdPayload.value:void 0,f;d.range!==void 0?f=de(ie({},c),{Range:dt(d.range)}):c!==void 0&&(f=c);let g=gt(i.type,i.mimeType),p=g==="mp4"||g===void 0;if(n&&p){if(Sr())return Bi(l,{headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout},s,a);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}let I;return p?I=await Te({url:l,responseType:"arraybuffer",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}):I=await Te({url:l,responseType:"text",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}),{resultType:"segment-loaded",resultData:I}}}function xy(n){let e=Ar(n);return e===null?"":Le(e)}function wy(n){if(n===void 0)throw new Error("Cannot parse subtitles: unknown format");switch(n.toLowerCase()){case"stpp":case"stpp.ttml.im1t":return"ttml";case"wvtt":return"vtt"}throw new Error(`The codec used for the subtitles "${n}" is not managed yet.`)}function Oy(n,e){switch(e){case"application/ttml+xml":return"ttml";case"application/x-sami":case"application/smil":return"sami";case"text/vtt":return"vtt"}if(n!==void 0&&n.toLowerCase()==="srt")return"srt";throw new Error(`could not find a text-track parser for the type ${e!=null?e:""}`)}function Nf({segment:n,language:e,codecs:t},r,i,o){if(n.isInit)return null;let a,s;i===null?o?(a=n.time,s=n.end):m.warn("Transport: Unavailable time data for current text track."):(a=i.time,i.duration!==void 0?s=a+i.duration:!o&&n.complete&&(s=a+n.duration));let d=wy(t);return{data:xy(r),type:d,language:e,start:a,end:s}}function Uf(n,e,t){let{segment:r}=n;if(r.isInit)return null;let i,o;t?m.warn("Transport: Unavailable time data for current text track."):(i=r.time,r.complete&&(o=r.time+r.duration));let a=Oy(n.codecs,n.mimeType);return{data:e,type:a,language:n.language,start:i,end:o}}function Dy(n,e,t,r,i){var f;let{segment:o}=t,{isInit:a,indexRange:s}=o,d;if(typeof n=="string"?d=ve(n):n instanceof Uint8Array?d=n:d=new Uint8Array(n),a){let g=wr(d,Array.isArray(s)?s[0]:0);if(i===!0&&g!==null&&g.length>0){let I=g[g.length-1];Array.isArray(I.range)&&(I.range[1]=1/0)}let p=Dr(d);return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:p,segmentList:g!=null?g:void 0}}let u=Fi(d,e,o,r),l=Nf(t,d,u,e),c=(f=o.timestampOffset)!=null?f:0;return{segmentType:"media",chunkData:l,chunkSize:d.length,chunkInfos:u,chunkOffset:c,protectionData:[],appendWindow:[t.periodStart,t.periodEnd]}}function Ly(n,e,t){let{periodStart:r,periodEnd:i,segment:o}=t,{timestampOffset:a=0}=o;if(o.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};let s,d;if(typeof n!="string"){let l=n instanceof Uint8Array?n:new Uint8Array(n);s=Le(l),d=l.length}else s=n;return{segmentType:"media",chunkData:Uf(t,s,e),chunkSize:d,chunkInfos:null,chunkOffset:a,protectionData:[],appendWindow:[r,i]}}function au({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var c;let{periodStart:o,periodEnd:a,segment:s}=r,{data:d,isChunked:u}=t;if(d===null)return s.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:(c=s.timestampOffset)!=null?c:0,protectionData:[],appendWindow:[o,a]};let l=gt(r.type,r.mimeType);if(l==="webm")throw new Error("Text tracks with a WEBM container are not yet handled.");return l==="mp4"?Dy(d,u,r,i,n):Ly(d,u,r)}}function Bf(n){let e=Li({customManifestLoader:n.manifestLoader},Ny()?"text":"arraybuffer",n.checkManifestIntegrity===!0?wf:null),t=Zd(n),r=Jd(n),i=iu(n),o=ou(n),a=au(n);return{transportName:"dash",manifest:{loadManifest:e,parseManifest:t},audio:{loadSegment:r,parseSegment:i},video:{loadSegment:r,parseSegment:i},text:{loadSegment:o,parseSegment:a}}}function Ny(){return me.dashParsers.wasm!==null&&(me.dashParsers.wasm.status==="initialized"||me.dashParsers.wasm.status==="initializing")}var Ff=Bf;function su(n){n.transports.dash===void 0&&(n.transports.dash=Ff),n.dashParsers.native=xf,n.mainThreadMediaSourceInit=Tn}var Uy=typeof MediaSource=="function"&&MediaSource.canConstructInDedicatedWorker===!0,Kf=Uy;var Ki=class extends Gn{constructor(e){super(),this._settings=e,this._initCanceller=new B}prepare(){}start(e,t){let r=this._initCanceller.signal,{keySystems:i,speed:o,url:a}=this._settings;qn(e);let{statusRef:s}=Ii(e,i,{onError:u=>this._onFatalError(u),onWarning:u=>this.trigger("warning",u),onBlackListProtectionData:X,onKeyIdsCompatibilityUpdate:X},r);_i(e,u=>this._onFatalError(u),r);let d=new Sn(t,null,o);d.addEventListener("stalled",u=>this.trigger("stalled",u)),d.addEventListener("unstalled",()=>this.trigger("unstalled",null)),d.addEventListener("warning",u=>this.trigger("warning",u)),r.register(()=>{d.destroy()}),d.start(),s.onUpdate((u,l)=>{u.initializationState.type!=="uninitialized"&&(l(),m.info("Setting URL to HTMLMediaElement",a),e.src=a,r.register(()=>{m.info("Init: Removing directfile src from media element",e.src),qn(e)}),u.initializationState.type==="awaiting-media-link"?(u.initializationState.value.isMediaLinked.setValue(!0),s.onUpdate((c,f)=>{c.initializationState.type==="initialized"&&(f(),this._seekAndPlay(e,t))},{emitCurrentValue:!0,clearSignal:r})):(J(u.initializationState.type==="initialized"),this._seekAndPlay(e,t)))},{emitCurrentValue:!0,clearSignal:r})}updateContentUrls(e,t){throw new Error("Cannot update content URL of directfile contents")}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.cancel(),this.trigger("error",e)}_seekAndPlay(e,t){let r=this._initCanceller.signal,{autoPlay:i,startAt:o}=this._settings;yi({mediaElement:e,playbackObserver:t,startTime:()=>{m.debug("Init: Calculating initial time");let s=By(e,o);return m.debug("Init: Initial time calculated:",s),s},mustAutoPlay:i,onWarning:s=>this.trigger("warning",s),isDirectfile:!0},r).autoPlayResult.then(()=>hi(t,e,!0,r).onUpdate((s,d)=>{s&&(d(),this.trigger("loaded",{getSegmentSinkMetrics:null}))},{emitCurrentValue:!0,clearSignal:r})).catch(s=>{r.isCancelled()||this._onFatalError(s)})}};function By(n,e){if(_(e))return 0;if(_(e.position))if(_(e.wallClockTime)){if(!_(e.fromFirstPosition))return e.fromFirstPosition}else return e.wallClockTime;else return e.position;let t=n.duration;if(typeof e.fromLastPosition=="number")return _(t)||!isFinite(t)?(m.warn("startAt.fromLastPosition set but no known duration, beginning at 0."),0):Math.max(0,t+e.fromLastPosition);if(typeof e.fromLivePosition=="number"){let r=n.seekable.length>0?n.seekable.end(0):t;return _(r)?(m.warn("startAt.fromLivePosition set but no known live position, beginning at 0."),0):Math.max(0,r+e.fromLivePosition)}else if(!_(e.percentage)){if(_(t)||!isFinite(t))return m.warn("startAt.percentage set but no known duration, beginning at 0."),0;let{percentage:r}=e;if(r>=100)return t;if(r<=0)return 0;let i=+r/100;return t*i}return 0}function du(n,e){for(let t=0;t<n.length;t++)(!sr||t!==e)&&(n[t].enabled=!1);return e<0||e>=n.length?!1:(n[e].enabled=!0,!0)}function Zn(n,e){var t;if(e.length!==n.length)return!0;for(let r=0;r<e.length;r++)if(e[r].nativeTrack!==((t=n[r])==null?void 0:t.nativeTrack))return!0;return!1}function uu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_audio_"+a+"_"+s.toString();t[a]=s+1;let u={language:o.language,id:d,normalized:Tr(o.language),audioDescription:o.kind==="descriptions"||o.kind==="description",representations:[]};e.push({track:u,nativeTrack:o})}return e}function lu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_text_"+a+"_"+s.toString();t[a]=s+1;let u=o.kind==="forced"?!0:void 0,l={language:o.language,forced:u,label:o.label,id:d,normalized:Tr(o.language),closedCaption:o.kind==="captions"};e.push({track:l,nativeTrack:o})}return e}function cu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_video_"+a+"_"+s.toString();t[a]=s+1,e.push({track:{id:d,representations:[]},nativeTrack:o})}return e}var Vi=class extends oe{constructor(e){var t,r,i;super(),this._nativeAudioTracks=e.audioTracks,this._nativeVideoTracks=e.videoTracks,this._nativeTextTracks=e.textTracks,this._audioTracks=this._nativeAudioTracks!==void 0?uu(this._nativeAudioTracks):[],this._videoTracks=this._nativeVideoTracks!==void 0?cu(this._nativeVideoTracks):[],this._textTracks=this._nativeTextTracks!==void 0?lu(this._nativeTextTracks):[],this._lastEmittedNativeAudioTrack=(t=this._getCurrentAudioTrack())==null?void 0:t.nativeTrack,this._lastEmittedNativeVideoTrack=(r=this._getCurrentVideoTrack())==null?void 0:r.nativeTrack,this._lastEmittedNativeTextTrack=(i=this._getCurrentTextTrack())==null?void 0:i.nativeTrack,this._handleNativeTracksCallbacks()}setAudioTrackById(e){for(let t=0;t<this._audioTracks.length;t++){let{track:r,nativeTrack:i}=this._audioTracks[t];if(r.id===e){this._enableAudioTrackFromIndex(t),this._audioTrackLockedOn=i;return}}throw new Error("Audio track not found.")}disableTextTrack(){Vf(this._textTracks),this._textTrackLockedOn=null}setTextTrackById(e){let t=!1;for(let r=0;r<this._textTracks.length;r++){let{track:i,nativeTrack:o}=this._textTracks[r];i.id===e?(o.mode="showing",t=!0,this._textTrackLockedOn=o):(o.mode==="showing"||o.mode==="hidden")&&(o.mode="disabled")}if(!t)throw new Error("Text track not found.")}disableVideoTrack(){zf(this._videoTracks),this._videoTrackLockedOn=null}setVideoTrackById(e){for(let t=0;t<this._videoTracks.length;t++){let{track:r,nativeTrack:i}=this._videoTracks[t];if(r.id===e){i.selected=!0,this._videoTrackLockedOn=i;return}}throw new Error("Video track not found.")}getChosenAudioTrack(){let e=this._getCurrentAudioTrack();return _(e)?e:e.track}getChosenTextTrack(){let e=this._getCurrentTextTrack();return _(e)?e:e.track}getChosenVideoTrack(){let e=this._getCurrentVideoTrack();return _(e)?e:e.track}getAvailableAudioTracks(){return this._audioTracks.map(({track:e,nativeTrack:t})=>({id:e.id,language:e.language,normalized:e.normalized,audioDescription:e.audioDescription,active:t.enabled,representations:e.representations}))}getAvailableTextTracks(){return this._textTracks.map(({track:e,nativeTrack:t})=>({id:e.id,label:e.label,forced:e.forced,language:e.language,normalized:e.normalized,closedCaption:e.closedCaption,active:t.mode==="showing"}))}getAvailableVideoTracks(){return this._videoTracks.map(({track:e,nativeTrack:t})=>({id:e.id,representations:e.representations,active:t.selected}))}dispose(){this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onchange=null,this._nativeVideoTracks.onaddtrack=null,this._nativeVideoTracks.onremovetrack=null),this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onchange=null,this._nativeAudioTracks.onaddtrack=null,this._nativeAudioTracks.onremovetrack=null),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onchange=null,this._nativeTextTracks.onaddtrack=null,this._nativeTextTracks.onremovetrack=null),this.removeEventListener()}_getCurrentAudioTrack(){if(this._nativeAudioTracks!==void 0){for(let e=0;e<this._audioTracks.length;e++){let t=this._audioTracks[e];if(t.nativeTrack.enabled)return t}return null}}_getCurrentVideoTrack(){if(this._nativeVideoTracks!==void 0){for(let e=0;e<this._videoTracks.length;e++){let t=this._videoTracks[e];if(t.nativeTrack.selected)return t}return null}}_getCurrentTextTrack(){if(this._nativeTextTracks!==void 0){for(let e=0;e<this._textTracks.length;e++){let t=this._textTracks[e];if(t.nativeTrack.mode==="showing")return t}return null}}_setPreviouslyLockedAudioTrack(){if(this._audioTrackLockedOn!==void 0)if(this._audioTrackLockedOn===null)for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];t.enabled=!1}else for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];if(t===this._audioTrackLockedOn){this._enableAudioTrackFromIndex(e);return}}}_setPreviouslyLockedTextTrack(){if(this._textTrackLockedOn!==void 0)if(this._textTrackLockedOn===null){Vf(this._textTracks);return}else for(let e=0;e<this._textTracks.length;e++){let{nativeTrack:t}=this._textTracks[e];if(t===this._textTrackLockedOn){Fy(this._textTracks,t),t.mode!=="showing"&&(t.mode="showing");return}}}_setPreviouslyLockedVideoTrack(){if(this._videoTrackLockedOn!==void 0)if(this._videoTrackLockedOn===null){zf(this._videoTracks);return}else for(let e=0;e<this._videoTracks.length;e++){let{nativeTrack:t}=this._videoTracks[e];if(t===this._videoTrackLockedOn){t.selected=!0;return}}}_handleNativeTracksCallbacks(){this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onaddtrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=uu(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this._setPreviouslyLockedAudioTrack(),this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onremovetrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=uu(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onchange=()=>{if(this._audioTracks!==void 0)for(let e=0;e<this._audioTracks.length;e++){let{track:t,nativeTrack:r}=this._audioTracks[e];if(r.enabled){r!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",t),this._lastEmittedNativeAudioTrack=r);return}}this._lastEmittedNativeAudioTrack!==null&&(this.trigger("audioTrackChange",null),this._lastEmittedNativeAudioTrack=null)}),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onaddtrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=lu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onremovetrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=lu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onchange=()=>{if(this._textTracks!==void 0)for(let e=0;e<this._textTracks.length;e++){let{track:t,nativeTrack:r}=this._textTracks[e];if(r.mode==="showing"){r!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",t),this._lastEmittedNativeTextTrack=r);return}}this._lastEmittedNativeTextTrack!==null&&(this.trigger("textTrackChange",null),this._lastEmittedNativeTextTrack=null)}),this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onaddtrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=cu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onremovetrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=cu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onchange=()=>{if(this._videoTracks!==void 0)for(let e=0;e<this._videoTracks.length;e++){let{track:t,nativeTrack:r}=this._videoTracks[e];if(r.selected){r!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",t),this._lastEmittedNativeVideoTrack=r);return}}this._lastEmittedNativeVideoTrack!==null&&(this.trigger("videoTrackChange",null),this._lastEmittedNativeVideoTrack=null)})}_enableAudioTrackFromIndex(e){du(this._audioTracks.map(({nativeTrack:t})=>t),e)}};function Vf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.mode="disabled"}}function Fy(n,e){for(let t=0;t<n.length;t++){let{nativeTrack:r}=n[t];r!==e&&(r.mode==="showing"||r.mode==="hidden")&&(r.mode="disabled")}}function zf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.selected=!1}}function fu(n){n.directfile={initDirectFile:Ki,mediaElementTracksStore:Vi}}function mu(n){n.decrypt=Fc}var Hf=te.ResizeObserver;function pu(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o=new G({height:r,width:i},t),a=r,s=i;if(Hf!==void 0){let d=new Hf(u=>{if(u.length===0){m.error("Compat: Resized but no observed element.");return}let l=u[0],{height:c,width:f}=l.contentRect;(c!==a||f!==s)&&(a=c,s=f,o.setValue({height:c,width:f}))});d.observe(n),t.register(()=>{d.disconnect()})}else{let d=setInterval(()=>{let{height:u,width:l}=n.getBoundingClientRect();(u!==a||l!==s)&&(a=u,s=l,o.setValue({height:u,width:l}))},e);t.register(()=>{clearInterval(d)})}return o}var Cn=class{constructor(){this._ranges=[],this.length=0}insert(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time")),Ht(this._ranges,{start:e,end:t}),this.length=this._ranges.length}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time"));let r=[];e>0&&r.push({start:0,end:e}),t<1/0&&r.push({start:t,end:1/0}),this._ranges=Wl(this._ranges,r),this.length=this._ranges.length}start(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].start}end(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].end}};function gu(n,e,t,r){m.debug("HTSB: Finding parser for html text tracks:",n);let i=me.htmlTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("HTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("HTTB: Parsed successfully!",o.length),o}function Dt(n,e,t=.2){return Math.abs(n-e)<=Math.min(t,.2)}var Ky=.05;function Wf(n,e){let t=n.end-n.start,r=e.end-e.start,i=Math.abs(n.start-e.start),o=Math.min(t,r,.2);return i/o<=Ky}function zi(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].start<e)return n.slice(0,t+1);return[]}function Jn(n,e){for(let t=0;t<n.length;t++)if(n[t].end>e)return n.slice(t,n.length);return[]}function hu(n,e,t){let r=Math.max(n.start,e),i=zi(n.cues,e),o={start:n.start,end:r,cues:i},a=Math.min(t,n.end),s=Jn(n.cues,t),d={start:a,end:n.end,cues:s};return[o,d]}var Gf=.001,Vy=5,Hi=class{constructor(){this._cuesBuffer=[]}isEmpty(){return this._cuesBuffer.length===0}get(e){let t=this._cuesBuffer,r=[];for(let i=t.length-1;i>=0;i--){let o=t[i];if(e<o.end&&e>=o.start){let a=o.cues;for(let s of a)e>=s.start&&e<s.end&&r.push(s.element);if(r.length===0&&a.length>0)for(let s of a)(Dt(e,s.start,Gf)||Dt(e,s.end,Gf))&&r.push(s.element);return r}}return[]}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0),J(t>=0),J(t>e));let r=Math.max(e,t),i=this._cuesBuffer;for(let o=0;o<i.length;o++)if(i[o].end>e){let a=i[o];if(a.start>=r)return;if(a.end>=r){if(e<=a.start)a.cues=Jn(a.cues,r),a.start=r;else{let[s,d]=hu(a,e,r);this._cuesBuffer[o]=s,i.splice(o+1,0,d)}return}a.start>=e?(i.splice(o,1),o--):(a.cues=zi(a.cues,e),a.end=Math.max(e,a.start))}}insert(e,t,r){let i=this._cuesBuffer,o={start:t,end:r,cues:e},a=Math.abs(t-r)/Vy;function s(d){let u=i[d];u===void 0||Dt(o.end,u.end,a)?i[d]=o:(u.start>=o.end||(u.cues=Jn(u.cues,o.end),u.start=o.end),i.splice(d,0,o))}for(let d=0;d<i.length;d++){let u=i[d];if(t<u.end){if(Wf(o,u)){if(Dt(r,u.end,a)){i[d]=o;return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}else if(t<u.start){if(r<u.start){i.splice(d,0,o);return}else if(Dt(r,u.start,a)){u.start=r,i.splice(d,0,o);return}else if(Dt(r,u.end,a)){i.splice(d,1,o);return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}if(Dt(u.end,r,a)){u.cues=zi(u.cues,t),u.end=t,i.splice(d+1,0,o);return}else if(u.end>r){let[l,c]=hu(u,t,r);this._cuesBuffer[d]=l,i.splice(d+1,0,o),i.splice(d+2,0,c);return}else{u.cues=zi(u.cues,t),u.end=t;let l=d+1;for(u=i[l];u!==void 0&&r>u.end;)i.splice(l,1),u=i[l];s(l);return}}}if(i.length){let d=i[i.length-1];Dt(d.end,t,a)&&(d.end=t)}i.push(o)}};function yu(n,e,t,r){let i=[e/t.columns,n/t.rows],o=r.getElementsByClassName("proportional-style");for(let a=0;a<o.length;a++){let s=o[a];if(s instanceof HTMLElement){let d=s.getAttribute("data-proportional-font-size");d!==null&&!isNaN(+d)&&(s.style.fontSize=String(+d*i[1])+"px");let u=s.getAttribute("data-proportional-width");u!==null&&!isNaN(+u)&&(s.style.width=String(+u*i[0])+"px");let l=s.getAttribute("data-proportional-height");l!==null&&!isNaN(+l)&&(s.style.height=String(+l*i[1])+"px");let c=s.getAttribute("data-proportional-line-height");c!==null&&!isNaN(+c)&&(s.style.lineHeight=String(+c*i[1])+"px");let f=s.getAttribute("data-proportional-left");f!==null&&!isNaN(+f)&&(s.style.left=String(+f*i[0])+"px");let g=s.getAttribute("data-proportional-top");g!==null&&!isNaN(+g)&&(s.style.top=String(+g*i[1])+"px");let p=s.getAttribute("data-proportional-padding-top");p!==null&&!isNaN(+p)&&(s.style.paddingTop=String(+p*i[1])+"px");let I=s.getAttribute("data-proportional-padding-bottom");I!==null&&!isNaN(+I)&&(s.style.paddingBottom=String(+I*i[1])+"px");let y=s.getAttribute("data-proportional-padding-left");y!==null&&!isNaN(+y)&&(s.style.paddingLeft=String(+y*i[0])+"px");let b=s.getAttribute("data-proportional-padding-right");b!==null&&!isNaN(+b)&&(s.style.paddingRight=String(+b*i[0])+"px")}}return o.length>0}function qf(n,e){try{n.removeChild(e)}catch(t){m.warn("HTD: Can't remove text track: not in the element.")}}function zy(n){let e=n.getAttribute("data-resolution-rows"),t=n.getAttribute("data-resolution-columns");if(e===null||t===null)return null;let r=parseInt(e,10),i=parseInt(t,10);return r===null||i===null?null:{rows:r,columns:i}}var Wi=class{constructor(e,t){m.debug("HTD: Creating HTMLTextDisplayer"),this._buffered=new Cn,this._videoElement=e,this._textTrackElement=t,this._sizeUpdateCanceller=new B,this._subtitlesIntervalCanceller=new B,this._buffer=new Hi,this._currentCues=[],this._isAutoRefreshing=!1}pushTextData(e){var I,y;m.debug("HTD: Appending new html text tracks");let{timestampOffset:t,appendWindow:r,chunk:i}=e;if(i===null)return Pe(this._buffered);let{start:o,end:a,data:s,type:d,language:u}=i,l=(I=r[0])!=null?I:0,c=(y=r[1])!=null?y:1/0,f=gu(d,s,t,u);if(l!==0&&c!==1/0){let b=0;for(;b<f.length&&f[b].end<=l;)b++;for(f.splice(0,b),b=0;b<f.length&&f[b].start<l;)f[b].start=l,b++;for(b=f.length-1;b>=0&&f[b].start>=c;)b--;for(f.splice(b,f.length),b=f.length-1;b>=0&&f[b].end>c;)f[b].end=c,b--}let g;if(o!==void 0)g=Math.max(l,o);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("HTD: No start time given. Guessing from cues."),g=f[0].start}let p;if(a!==void 0)p=Math.min(c,a);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("HTD: No end time given. Guessing from cues."),p=f[f.length-1].end}return p<=g?(m.warn("HTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered)):(this._buffer.insert(f,g,p),this._buffered.insert(g,p),!this._isAutoRefreshing&&!this._buffer.isEmpty()&&this.autoRefreshSubtitles(this._subtitlesIntervalCanceller.signal),Pe(this._buffered))}removeBuffer(e,t){return m.debug("HTD: Removing html text track data",e,t),this._buffer.remove(e,t),this._buffered.remove(e,t),this._isAutoRefreshing&&this._buffer.isEmpty()&&(this.refreshSubtitles(),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel(),this._subtitlesIntervalCanceller=new B),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("HTD: Resetting HTMLTextDisplayer"),this.stop(),this._subtitlesIntervalCanceller=new B}stop(){this._subtitlesIntervalCanceller.isUsed()||(m.debug("HTD: Stopping HTMLTextDisplayer"),this._disableCurrentCues(),this._buffer.remove(0,1/0),this._buffered.remove(0,1/0),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel())}_disableCurrentCues(){if(this._sizeUpdateCanceller.cancel(),this._currentCues.length>0){for(let e of this._currentCues)qf(this._textTrackElement,e.element);this._currentCues=[]}}_displayCues(e){if(this._currentCues.length===e.length&&this._currentCues.every((i,o)=>i.element===e[o]))return;this._sizeUpdateCanceller.cancel();for(let i of this._currentCues)qf(this._textTrackElement,i.element);this._currentCues=[];for(let i of e){let o=zy(i);this._currentCues.push({element:i,resolution:o}),this._textTrackElement.appendChild(i)}let r=this._currentCues.filter(i=>i.resolution!==null);if(r.length>0){this._sizeUpdateCanceller=new B,this._sizeUpdateCanceller.linkToSignal(this._subtitlesIntervalCanceller.signal);let{TEXT_TRACK_SIZE_CHECKS_INTERVAL:i}=U.getCurrent();pu(this._textTrackElement,i,this._sizeUpdateCanceller.signal).onUpdate(({height:a,width:s})=>{for(let d of r){let{resolution:u,element:l}=d;yu(a,s,u,l)}},{clearSignal:this._sizeUpdateCanceller.signal,emitCurrentValue:!0})}}autoRefreshSubtitles(e){if(this._isAutoRefreshing||e.isCancelled())return;let t=null,{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:r}=U.getCurrent(),i=()=>{this._isAutoRefreshing=!1,t!==null&&(t.cancel(),t=null)},o=()=>{i(),this._isAutoRefreshing=!0,t=new B,t.linkToSignal(e);let a=setInterval(()=>this.refreshSubtitles(),r);t.signal.register(()=>{clearInterval(a)}),this.refreshSubtitles()};cc(this._videoElement,()=>{i(),this._disableCurrentCues()},e),fc(this._videoElement,o,e),mc(this._videoElement,o,e),o()}refreshSubtitles(){let{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:e}=U.getCurrent(),t;this._videoElement.paused||this._videoElement.playbackRate<=0?t=this._videoElement.currentTime:t=Math.max(this._videoElement.currentTime+e/1e3/2,0);let r=this._buffer.get(t);r.length===0?this._disableCurrentCues():this._displayCues(r)}};h.CURRENT_ENV===h.DEV&&(Hy=function(e){function t(r){}});var Hy;var tn=Wi;var Wy=/&#([0-9]+);/g,Gy=/<br>/gi,qy=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,jy=/\s*<p (?:class=([^>]+))?>(.*)/i,Yy=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function $y(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;r!==null;){let i=r[1],o=Xy(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function Qy(n){let t=/p\s*{([^}]*)}/gi.exec(n);return t===null?"":t[1]}function Xy(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function Zy(n){return n.replace(Wy,(e,t)=>String.fromCharCode(Number(t)))}function Jy(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=qy.exec(n),s=Array.isArray(a)?a[1]:"",d,u;i.exec(n);let l=$y(s),c=Qy(s),f;if(w(t)&&(f=l[t],f===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let p=n.slice(d.index,u.index),I=Yy.exec(p);if(!Array.isArray(I))throw new Error("parse error (sync time attribute)");let y=+I[1];if(isNaN(y))throw new Error("parse error (sync time attribute NaN)");g(p.split(`
|
|
6
|
-
`),y/1e3)}return o;function g(p,I){let y=p.length;for(;--y>=0;){let b=
|
|
7
|
-
`);for(let u=0;u<d.length;u++)if(u!==0&&o.appendChild(document.createElement("br")),d[u].length>0){let l=document.createTextNode(d[u]);o.appendChild(l)}}else if(s.nodeName==="B"){let d=t(s);d.style.fontWeight="bold",o.appendChild(d)}else if(s.nodeName==="I"){let d=t(s);d.style.fontStyle="italic",o.appendChild(d)}else if(s.nodeName==="U"){let d=t(s);d.style.textDecoration="underline",o.appendChild(d)}else if(nI(s)&&typeof s.color=="string"){let d=t(s);d.style.color=s.color,o.appendChild(d)}else{let d=t(s);o.appendChild(d)}}return o};return t(e)}function nI(n){return n.nodeName==="FONT"&&"color"in n}function Tu(n){n.htmlTextTracksParsers.srt=Su,n.htmlTextDisplayer=tn}var rI=/(\d+) (\d+)/;function _u(n){let e=n.getAttribute("ttp:frameRate"),t=n.getAttribute("ttp:subFramRate"),r=n.getAttribute("ttp:tickRate"),i=n.getAttribute("ttp:frameRateMultiplier"),o=n.getAttribute("xml:space"),a=n.getAttribute("ttp:cellResolution"),s={columns:32,rows:15};if(a!==null){let I=rI.exec(a);if(I===null||I.length<3)m.warn("TTML Parser: Invalid cellResolution");else{let y=parseInt(I[1],10),b=parseInt(I[2],10);isNaN(y)||isNaN(b)?m.warn("TTML Parser: Invalid cellResolution"):s={columns:y,rows:b}}}if(w(o)&&o!=="default"&&o!=="preserve")throw new Error("Invalid spacing style");let d=Number(e);(isNaN(d)||d<=0)&&(d=30);let u=Number(t);(isNaN(u)||u<=0)&&(u=1);let l=Number(r);(isNaN(l)||l<=0)&&(l=void 0);let c=d,f=u!=null?u:1,g=o!=null?o:"default",p=l!=null?l:d*u;if(i!==null){let I=/^(\d+) (\d+)$/g.exec(i);if(I!==null){let y=Number(I[1]),b=Number(I[2]),T=y/b;c=d*T}}return{cellResolution:s,tickRate:p,frameRate:c,subFrameRate:f,spaceStyle:g}}function Pn(n,e,t,r){let i={},o=n.slice();for(let a=0;a<=e.length-1;a++){let s=e[a];if(s!==void 0){let d,u;if(s.nodeType===Node.ELEMENT_NODE){let l=s;for(let c=0;c<=l.attributes.length-1;c++){let f=l.attributes[c],g=f.name;if(g==="style")d=f.value;else if(g==="region")u=f.value;else{let p=g.substring(4);if(Q(o,p)&&(i[p]=f.value,o.splice(c,1),o.length===0))return i}}}if(w(d)){let l=Z(t,c=>c.id===d);if(l!==void 0)for(let c=0;c<=o.length-1;c++){let f=o[c];if(!w(i[f])&&w(l.style[f])){if(i[f]=l.style[f],o.splice(c,1),o.length===0)return i;c--}}}if(w(u)){let l=Z(r,c=>c.id===u);if(l!==void 0)for(let c=0;c<=o.length-1;c++){let f=o[c];if(!w(i[f])&&w(l.style[f])){if(i[f]=l.style[f],o.splice(c,1),o.length===0)return i;c--}}}}}return i}function Eu(n){if(n.nodeType!==Node.ELEMENT_NODE)return{};let e=n,t={};for(let r=0;r<=e.attributes.length-1;r++){let i=e.attributes[r];if(Je(i.name,"tts")){let o=i.name.substring(4);t[o]=i.value}}return t}function vu(n){let e=[];function t(r,i){e.push(i);for(let o of r.extendsStyles){let a=he(n,s=>s.id===o);if(a<0)m.warn("TTML Parser: unknown style inheritance: "+o);else{let s=n[a];Q(e,a)?m.warn("TTML Parser: infinite style inheritance loop avoided"):t(s,a),r.style=j({},s.style,r.style)}}r.extendsStyles.length=0}for(let r=0;r<n.length;r++)t(n[r],r),e.length=0}function Yf(n,e){if(!(n.parentNode instanceof Element))return[];function t(r){let i=[];r.tagName.toLowerCase()===e.toLowerCase()&&i.push(r);let o=r.parentNode;return o instanceof Element&&i.push(...t(o)),i}return t(n.parentNode)}function pa(n){let e=Yf(n,"div");if(e.length===0){let t=Yf(n,"tt:div");t.length>0&&(e=t)}return e}function $f(n){let e=n.getElementsByTagName("body");if(e.length>0)return e[0];let t=n.getElementsByTagName("tt:body");return t.length>0?t[0]:null}function Qf(n){let e=n.getElementsByTagName("style");if(e.length>0)return e;let t=n.getElementsByTagName("tt:style");return t.length>0?t:e}function Xf(n){let e=n.getElementsByTagName("region");if(e.length>0)return e;let t=n.getElementsByTagName("tt:region");return t.length>0?t:e}function Zf(n){let e=n.getElementsByTagName("p");if(e.length>0)return e;let t=n.getElementsByTagName("tt:p");return t.length>0?t:e}function ga(n){return n.nodeName==="br"||n.nodeName==="tt:br"}function ha(n){return n.nodeName==="span"||n.nodeName==="tt:span"}var Jf=["align","backgroundColor","color","direction","display","displayAlign","extent","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","opacity","origin","overflow","padding","textAlign","textDecoration","textOutline","unicodeBidi","visibility","wrapOption","writingMode"];function ji(n,e){let t=[],r=new DOMParser().parseFromString(n,"text/xml");if(r!=null){let o=r.getElementsByTagName("tt")[0];if(o===void 0&&(o=r.getElementsByTagNameNS("*","tt")[0],o===void 0))throw new Error("invalid XML");let a=$f(o),s=Qf(o),d=Xf(o),u=Zf(o),l=_u(o),c=[];for(let y=0;y<=s.length-1;y++){let b=s[y];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=b.getAttribute("style"),E=v===null?[]:v.split(" ");c.push({id:T,style:Eu(b),extendsStyles:E})}}}vu(c);let f=[];for(let y=0;y<=d.length-1;y++){let b=d[y];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=Eu(b),E=b.getAttribute("style");if(w(E)){let R=Z(c,k=>k.id===E);R!==void 0&&(v=j({},R.style,v))}f.push({id:T,style:v,extendsStyles:[]})}}}let g=Pn(Jf,a!==null?[a]:[],c,f),I=(a!==null?a.getAttribute("xml:space"):void 0)==="default"||l.spaceStyle==="default";for(let y=0;y<u.length;y++){let b=u[y];if(b instanceof Element){let T=pa(b),v=j({},g,Pn(Jf,[b,...T],c,f)),E=b.getAttribute("xml:space"),R=w(E)?E==="default":I,k={paragraph:b,timeOffset:e,idStyles:c,regionStyles:f,body:a,paragraphStyle:v,ttParams:l,shouldTrimWhiteSpace:R};k!==null&&t.push(k)}}}return t}function em(n){return n.extent===void 0&&n.origin===void 0&&n.displayAlign===void 0&&n.display===void 0&&n.textAlign===void 0&&n.fontSize===void 0}function tm(n){n.extent="70% 20%",n.fontSize="1c",n.origin="15% 80%",n.displayAlign="before",n.textAlign="center"}var Ru=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,ku=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,Cu=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,Pu=/^(\d*\.?\d*)f$/,Mu=/^(\d*\.?\d*)t$/,Au=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/,xu=/^(\d{1,2}|100)% (\d{1,2}|100)%$/,Ge=/^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/,nm=/^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/,rm=/^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/,im=/^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/,om=/^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;function iI(n,e){if(Ru.test(n))return sI(e,n);if(ku.test(n))return wu(ku,n);if(Cu.test(n))return wu(Cu,n);if(Pu.test(n))return oI(e,n);if(Mu.test(n))return aI(e,n);if(Au.test(n))return wu(Au,n)}function oI(n,e){let t=Pu.exec(e);return Number(t[1])/n.frameRate}function aI(n,e){let t=Mu.exec(e);return Number(t[1])/n.tickRate}function sI(n,e){let t=Ru.exec(e),r=Number(t[1]),i=Number(t[2]),o=Number(t[3]),a=Number(t[4]),s=Number(t[5]);return isNaN(s)&&(s=0),a+=s/n.subFrameRate,o+=a/n.frameRate,o+i*60+r*3600}function wu(n,e){let t=n.exec(e);if(t===null||t[0]==="")return null;let r=Number(t[1]);isNaN(r)&&(r=0);let i=Number(t[2]);isNaN(i)&&(i=0);let o=Number(t[3]);isNaN(o)&&(o=0);let a=Number(t[4]);return isNaN(a)&&(a=0),a/1e3+o+i*60+r*3600}var ya=iI;function Yi(n,e){let t=n.getAttribute("begin"),r=n.getAttribute("dur"),i=n.getAttribute("end"),o=w(t)?ya(t,e):null,a=w(r)?ya(r,e):null,s=w(i)?ya(i,e):null;if(_(o)||_(s)&&_(a))throw new Error("Invalid text cue");let d=_(s)?o+a:s;return{start:o,end:d}}var Ou;function Ce(n,e){Ou===void 0&&(Ou=n.classList!==void 0&&typeof n.classList.add=="function"),Ou?n.classList.add(e):(" "+n.className+" ").indexOf(" "+e+" ")<0&&(n.className+=" "+e)}function Du(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.width=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-width",i[1])):m.warn("TTML Parser: unhandled extent unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.height=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-height",o[1])):m.warn("TTML Parser: unhandled extent unit:",o[2]))}function Lu(n,e){let r=e.trim().split(" ");if(r.length===0)return;let i=Ge.exec(r[0]);if(i!==null)if(i[2]==="px"||i[2]==="em")n.style.fontSize=i[1]+i[2];else if(i[2]==="c")n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",i[1]);else if(i[2]==="%"){let o=Number(i[1]);isNaN(o)?m.warn('TTML Parser: could not parse fontSize value "'+i[1]+'" into a number'):(n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",String(o/100)))}else m.warn("TTML Parser: unhandled fontSize unit:",i[2])}function Nu(n,e){let t=e.trim(),r=t.split(" ");if(t==="auto")return;let i=Ge.exec(r[0]);i!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.lineHeight=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-line-height",i[1])):m.warn("TTML Parser: unhandled lineHeight unit:",i[2]))}function Uu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.left=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-left",i[1])):m.warn("TTML Parser: unhandled origin unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.top=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-top",o[1])):m.warn("TTML Parser: unhandled origin unit:",o[2]))}function Bu(n,e){let r=e.trim().split(" ");if(r.length<1)return;let i=Ge.exec(r[0]);if(i===null)return;if(i[2]==="px"||i[2]==="%"||i[2]==="em"){let d=i[1]+i[2];r.length===1?n.style.padding=d:r.length===2?(n.style.paddingTop=d,n.style.paddingBottom=d):n.style.paddingTop=d}else i[2]==="c"?(Ce(n,"proportional-style"),r.length===1?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1]),n.setAttribute("data-proportional-padding-left",i[1]),n.setAttribute("data-proportional-padding-right",i[1])):r.length===2?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1])):n.setAttribute("data-proportional-padding-top",i[1])):m.warn("TTML Parser: unhandled padding unit:",i[2]);if(r.length===1)return;let o=Ge.exec(r[1]);if(o===null)return;if(o[2]==="px"||o[2]==="%"||o[2]==="em"){let d=o[1]+o[2];r.length<4&&(n.style.paddingLeft=d),n.style.paddingRight=d}else o[2]==="c"?(Ce(n,"proportional-style"),r.length<4&&n.setAttribute("data-proportional-padding-left",o[1]),n.setAttribute("data-proportional-padding-right",o[1])):m.warn("TTML Parser: unhandled padding unit:",o[2]);if(r.length===2)return;let a=Ge.exec(r[2]);if(a===null)return;if(a[2]==="px"||a[2]==="%"||a[2]==="em"){let d=a[1]+a[2];n.style.paddingBottom=d}else a[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-bottom",a[1])):m.warn("TTML Parser: unhandled padding unit:",a[2]);if(r.length===3)return;let s=Ge.exec(r[3]);if(s!==null)if(s[2]==="px"||s[2]==="%"||s[2]==="em"){let d=s[1]+s[2];n.style.paddingLeft=d}else s[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-left",s[1])):m.warn("TTML Parser: unhandled padding unit:",s[2])}function er(n,e){let t=e;return w(e)&&e.trim().endsWith("%")&&(t=e.trim().slice(0,-1),t=(parseInt(t,10)/100).toString()+"em"),`-1px -1px ${t} ${n},1px -1px ${t} ${n},-1px 1px ${t} ${n},1px 1px ${t} ${n}`}function nn(n){let e;return e=nm.exec(n),_(e)?(e=rm.exec(n),_(e)?(e=im.exec(n),_(e)?(e=om.exec(n),_(e)?n:"rgba("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+","+String(+e[4]/255)+")"):"rgb("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+")"):"rgba("+String(parseInt(e[1]+e[1],16))+","+String(parseInt(e[2]+e[2],16))+","+String(parseInt(e[3]+e[3],16))+","+String(parseInt(e[4]+e[4],16)/255)+")"):"rgba("+String(parseInt(e[1],16))+","+String(parseInt(e[2],16))+","+String(parseInt(e[3],16))+","+String(parseInt(e[4],16)/255)+")"}var dI=["color","direction","display","fontFamily","fontSize","fontStyle","fontWeight","textDecoration","textOutline","unicodeBidi","visibility","wrapOption"];function uI(n,e,t){let r=e.color;w(r)&&(n.style.color=nn(r));let i=e.backgroundColor;w(i)&&(n.style.backgroundColor=nn(i));let o=e.textOutline;if(w(o)){let y=o.trim().replace(/\s+/g," ").split(" "),b=y.length;if(b===3){let T=nn(y[0]),v=y[1];n.style.textShadow=er(T,v)}else if(w(r)&&b===1){let T=y[0];n.style.textShadow=er(r,T)}else if(b===2){let T=/^[#A-Z]/i.test(y[0]),v=/^[0-9]/.test(y[0]);if(T!==v){if(T){let E=nn(y[0]),R=y[1];n.style.textShadow=er(E,R)}else if(w(r)){let E=y[0];n.style.textShadow=er(r,E)}}}}let a=e.textDecoration;if(w(a))switch(a){case"noUnderline":case"noLineThrough":case"noOverline":n.style.textDecoration="none";break;case"lineThrough":n.style.textDecoration="line-through";break;default:n.style.textDecoration=a;break}let s=e.fontFamily;if(w(s))switch(s){case"proportionalSansSerif":n.style.fontFamily="Arial, Helvetica, Liberation Sans, sans-serif";break;case"monospaceSansSerif":case"sansSerif":n.style.fontFamily="sans-serif";break;case"monospaceSerif":case"default":n.style.fontFamily="Courier New, Liberation Mono, monospace";break;case"proportionalSerif":n.style.fontFamily="serif";break;default:n.style.fontFamily=s}let d=e.fontStyle;w(d)&&(n.style.fontStyle=d);let u=e.fontWeight;w(u)&&(n.style.fontWeight=u);let l=e.fontSize;w(l)?Lu(n,l):(Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1"));let c=e.direction;w(c)&&(n.style.direction=c);let f=e.unicodeBidi;if(w(f))switch(f){case"bidiOverride":n.style.unicodeBidi="bidi-override";break;case"embed":n.style.unicodeBidi="embed";break;default:n.style.unicodeBidi="normal"}let g=e.visibility;w(g)&&(n.style.visibility=g),e.display==="none"&&(n.style.display="none"),e.wrapOption==="noWrap"?t?n.style.whiteSpace="nowrap":n.style.whiteSpace="pre":t?n.style.whiteSpace="normal":n.style.whiteSpace="pre-wrap"}function lI(n,e){n.style.color="white",n.style.position="absolute";let t=e.extent;w(t)&&Du(n,t);let r=e.writingMode;w(r);let i=e.overflow;n.style.overflow=w(i)?i:"hidden";let o=e.padding;w(o)&&Bu(n,o);let a=e.origin;w(a)&&Uu(n,a);let s=e.displayAlign;if(w(s))switch(n.style.display="flex",n.style.flexDirection="column",s){case"before":n.style.justifyContent="flex-start";break;case"center":n.style.justifyContent="center";break;case"after":n.style.justifyContent="flex-end";break}let d=e.opacity;w(d)&&(n.style.opacity=d);let u=e.visibility;w(u)&&(n.style.visibility=u),e.display==="none"&&(n.style.display="none")}function cI(n,e){n.style.margin="0px",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1");let t=e.backgroundColor;w(t)&&(n.style.backgroundColor=nn(t));let r=e.lineHeight;w(r)&&Nu(n,r);let i=e.textAlign;if(w(i))switch(i){case"center":n.style.textAlign="center";break;case"left":case"start":n.style.textAlign="left";break;case"right":case"end":n.style.textAlign="right";break}}function fI(n,e,t){let r=document.createElement("span"),i=n.textContent===null?"":n.textContent;if(t){let a=i.trim();a=a.replace(/\s+/g," "),i=a}let o=document.createTextNode(i);return r.appendChild(o),r.className="rxp-texttrack-span",uI(r,e,t),r}function mI(n,e,t,r,i){function o(a,s,d,u){let l=a.childNodes,c=[];for(let f=0;f<l.length;f++){let g=l[f];if(g.nodeName==="#text"){let{backgroundColor:p}=Pn(["backgroundColor"],d,t,e);w(p)?s.backgroundColor=p:s.backgroundColor="";let I=fI(g,s,u);c.push(I)}else if(ga(g)){let p=document.createElement("BR");c.push(p)}else if(ha(g)&&g.nodeType===Node.ELEMENT_NODE&&g.childNodes.length>0){let p=g.getAttribute("xml:space"),I=w(p)?p==="default":u,y=j({},s,Pn(dI,[g],t,e));c.push(...o(g,y,[g,...d],I))}}return c}return o(n,j({},r),[],i)}function Fu(n,e,t,r,i,{cellResolution:o,shouldTrimWhiteSpace:a}){let s=pa(n),d=document.createElement("DIV");if(d.className="rxp-texttrack-region",d.setAttribute("data-resolution-columns",String(o.columns)),d.setAttribute("data-resolution-rows",String(o.rows)),lI(d,i),e!==null){let{bodyBackgroundColor:c}=Pn(["backgroundColor"],[...s,e],r,t);w(c)&&(d.style.backgroundColor=nn(c))}let u=document.createElement("p");u.className="rxp-texttrack-p",cI(u,i);let l=mI(n,t,r,i,a);for(let c=0;c<l.length;c++)u.appendChild(l[c]);return d.appendChild(u),d}function Ku(n){let{paragraph:e,ttParams:t,body:r,regionStyles:i,idStyles:o,paragraphStyle:a,timeOffset:s,shouldTrimWhiteSpace:d}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{cellResolution:u}=t,{start:l,end:c}=Yi(e,t),f=Fu(e,r,i,o,a,{cellResolution:u,shouldTrimWhiteSpace:d});return{start:l+s,end:c+s,element:f}}function Vu(n,e){let t=ji(n,e),r=[];for(let i of t){let{paragraphStyle:o}=i;em(o)&&tm(o);let a=Ku(i);a!==null&&r.push(a)}return r}var am=Vu;function zu(n){n.htmlTextTracksParsers.ttml=am,n.htmlTextDisplayer=tn}function Ia(n){let e=0;for(;e<n.length;){if(n[e]==="")return e+1;e++}return e}function Hu(n,e){return typeof n[e]=="string"&&/^STYLE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function pI(n,e){return typeof n[e]=="string"&&/^NOTE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function gI(n,e){return typeof n[e]=="string"&&/^REGION( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function sm(n,e){let t=n[e];if(t===void 0||t===""||Hu(n,e)||gI(n,e)||pI(n,e))return!1;if(t.indexOf("-->")>=0)return!0;let r=n[e+1];return r!==void 0&&r.indexOf("-->")>=0}function dm(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function $i(n,e){let t=[];for(let r=e;r<n.length;r++)if(sm(n,r)){let i=dm(n,r);t.push(n.slice(r,i)),r=i}else if(w(n[r]))for(;w(n[r]);)r++;return t}function Wu(n,e){let t=[];for(let r=e;r<n.length;r++)if(Hu(n,r)){let i=r;for(r++;w(n[r]);)r++;let o=n.slice(i,r);t.push(o)}else if(w(n[r]))for(;w(n[r]);)r++;return t}function ba(n){let e=n.split(":").reverse();if(w(e[2])||w(e[1])){let t=w(e[2])?parseInt(e[2],10):0,r=parseInt(e[1],10),i=parseFloat(e[0].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function hI(n){return n.split(/ |\t/).reduce((t,r)=>{let i=r.split(":");return i.length===2&&(t[i[0]]=i[1]),t},{})}function yI(n){let t=/^([\d:.]+)[ |\t]+-->[ |\t]+([\d:.]+)[ |\t]*(.*)$/.exec(n);if(t===null)return null;let r=ba(t[1]),i=ba(t[2]);if(r===void 0||i===void 0)return null;let o=hI(t[3]);return{start:r,end:i,settings:o}}function Qi(n,e){let t=/-->/,r,i,o;if(t.test(n[0]))r=n[0],i=n.slice(1,n.length);else{if(!t.test(n[1]))return null;o=n[0],r=n[1],i=n.slice(2,n.length)}let a=yI(r);if(a===null)return null;let{start:s,end:d,settings:u}=a;return{start:s+e,end:d+e,settings:u,payload:i,header:o}}var Gu={white:"#ffffff",lime:"#00ff00",cyan:"#00ffff",red:"#ff0000",yellow:"#ffff00",magenta:"#ff00ff",blue:"#0000ff",black:"#000000"};function qu(){return Object.keys(Gu).reduce((n,e)=>(n[e]=`color: ${Gu[e]};`,n[`bg_${e}`]=`background-color: ${Gu[e]};`,n),{})}function ju(n){let e=qu(),t="";return n.forEach(r=>{if(r.length>=2)for(let i=1;i<r.length;i++){let o=r[i];if(Array.isArray(/::cue {/.exec(o)))for(o=r[++i];w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)t+=o,o=r[++i];else{let a=[],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);for(;w(o)&&Array.isArray(s);)a.push(s[1]),o=r[++i],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);let d="";for(;w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)d+=o,o=r[++i];a.forEach(u=>{e[u]===void 0?e[u]=d:e[u]+=d})}}}),{classes:e,global:t}}function Xi(n,e){let t=["u","i","b"],r=["u","i","b","c","#text"],i=n.nodeName.toLowerCase().split(".")[0],o;if(Q(r,i))if(i==="#text"){let a=n.wholeText.split(`
|
|
8
|
-
`);o=document.createElement("span");for(let s=0;s<a.length;s++)if(s>0&&o.appendChild(document.createElement("br")),a[s].length>0){let d=document.createTextNode(a[s]);o.appendChild(d)}}else{let a=n.nodeName.toLowerCase().split("."),s=[];if(a.forEach(d=>{w(e[d])&&s.push(e[d])}),s.length!==0){let d=document.createAttribute("style");s.forEach(l=>{d.value+=l});let u=Q(t,i)?i:"span";o=document.createElement(u),o.setAttributeNode(d)}else{let d=Q(t,i)?i:"span";o=document.createElement(d)}for(let d=0;d<n.childNodes.length;d++){let u=
|
|
9
|
-
`),p).forEach(b=>{c.appendChild(b)}),s.appendChild(u),u.appendChild(c),{start:t,end:r,element:s}}function
|
|
10
|
-
`).replace(
|
|
11
|
-
`),I/1e3)}return
|
|
12
|
-
`);return Lt(e,t,i)}function
|
|
13
|
-
`;else if(
|
|
14
|
-
`);return Lt(e,t,i)}function fl(n,e){let t=n.split(/\r\n|\n|\r/);if(!/^WEBVTT($| |\t)/.test(t[0]))throw new Error("Can't parse WebVTT: Invalid file.");let r=Ia(t),i=$i(t,r),o=[];for(let a of i){let s=Qi(a,e);if(s!==null){let d=cl(s);d!==null&&(Ji(d)&&ll(s.settings,d),o.push(d))}}return o}var fm=fl;function ml(n){n.nativeTextTracksParsers.vtt=fm,n.nativeTextDisplayer=rn}function tr(n){let e=[];n.periods.forEach(t=>{let r=t.id;if(Q(e,r)){m.warn("Two periods with the same ID found. Updating.");let a=r+"-dup";t.id=a,tr(n),e.push(a)}else e.push(r);let{adaptations:i}=t,o=[];Object.keys(i).forEach(a=>{let s=i[a];s!==void 0&&s.forEach(d=>{let u=d.id;if(Q(o,u)){m.warn("Two adaptations with the same ID found. Updating.",u);let c=u+"-dup";d.id=c,tr(n),o.push(c)}else o.push(u);let l=[];d.representations.forEach(c=>{let f=c.id;if(Q(l,f)){m.warn("Two representations with the same ID found. Updating.",f);let g=`${f}-dup`;c.id=g,tr(n),l.push(g)}else l.push(f)})})})})}function mm(n,e){let t;return e==="AACH"?t=5:t=w(n)?(parseInt(n.substring(0,2),16)&248)>>3:2,t===0?"mp4a.40.2":`mp4a.40.${t}`}function pm(n){let e=/00000001\d7([0-9a-fA-F]{6})/.exec(n);return e===null||!w(e[1])?"avc1.4D401E":"avc1."+e[1]}function pl(n){return n.reduce((e,t,r)=>{let i=t.getAttribute("d"),o=t.getAttribute("t"),a=t.getAttribute("r"),s=a!==null?+a-1:0,d=o!==null?+o:void 0,u=i!==null?+i:void 0;if(r===0)d=d===void 0||isNaN(d)?0:d;else{let l=e[r-1];if(d===void 0||isNaN(d)){if(l.duration===void 0||isNaN(l.duration))throw new Error("Smooth: Invalid CNodes. Missing timestamp.");d=l.start+l.duration*(l.repeatCount+1)}}if(u===void 0||isNaN(u)){let l=n[r+1];if(l!==void 0){let c=l.getAttribute("t"),f=w(c)?+c:null;if(f===null)throw new Error("Can't build index timeline from Smooth Manifest.");u=f-d}else return e}return e.push({duration:u,start:d,repeatCount:s}),e},[])}function WI(n){return[{systemId:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",privateData:re([8,1,18,16],n)}]}function gl(n,e=WI){if(n.firstElementChild===null||n.firstElementChild.nodeName!=="ProtectionHeader")throw new Error("Protection should have ProtectionHeader child");let t=n.firstElementChild,r=ft(t.textContent===null?"":t.textContent),i=xr(r),o=qe(i),a=t.getAttribute("SystemID"),s=(a!==null?a:"").toLowerCase().replace(/\{|\}/g,"");return{keyId:o,keySystems:[{systemId:s,privateData:r}].concat(e(o))}}function gm(n,e,t){return n.replace(/\{bitrate\}/g,String(e)).replace(/{CustomAttributes}/g,t.length>0?t[0]:"")}function hm(n,e){return n.replace(/\{start time\}/g,String(e))}function GI(n,e,t){let r=e-n;return r>0?Math.floor(r/t):0}function qI(n,e,t){let r=n===void 0||n===0?1:n;return{up:e*r,to:(e+t)*r}}function jI(n,e){let t=n.repeatCount;if(n.duration!==void 0&&t<0){let r=e!==void 0?e.start:1/0;t=Math.ceil((r-n.start)/n.duration)-1}return t}var eo=class{constructor(e){let{isLive:t,segmentPrivateInfos:r,media:i,sharedSmoothTimeline:o}=e;if(this._sharedSmoothTimeline=o,this._initSegmentInfos={bitsPerSample:r.bitsPerSample,channels:r.channels,codecPrivateData:r.codecPrivateData,packetSize:r.packetSize,samplingRate:r.samplingRate,timescale:o.timescale,height:r.height,width:r.width,protection:r.protection},this._isLive=t,this._media=i,o.timeline.length!==0&&t){let{timeline:a,validityTime:s}=o,d=a[a.length-1],u=ke(d,null),l=s/1e3*o.timescale;this._scaledLiveGap=l-u}}getInitSegment(){return{id:"init",isInit:!0,privateInfos:{smoothInitSegment:this._initSegmentInfos},url:null,time:0,end:0,duration:0,timescale:1,complete:!0}}getSegments(e,t){this._refreshTimeline();let{timescale:r,timeline:i}=this._sharedSmoothTimeline,{up:o,to:a}=qI(r,e,t),s=this._media,d,u=[],l=i.length,c=this._scaledLiveGap===void 0?void 0:K()/1e3*r-this._scaledLiveGap;for(let f=0;f<l;f++){let g=i[f],{duration:p,start:I}=g,y=jI(g,i[f+1]),b=GI(I,o,p),T=I+b*p,v=p;for(;T<a&&b<=y&&(c===void 0||T+v<=c);){let E=T,R=d!==void 0?d+b:void 0,k={id:String(T),isInit:!1,time:E/r,end:(E+p)/r,duration:p/r,timescale:1,number:R,url:hm(s,E),complete:!0,privateInfos:{smoothMediaSegment:{time:E,duration:p}}};u.push(k),b++,T=I+b*p}if(T>=a)return u;d!==void 0&&(d+=y+1)}return u}shouldRefresh(e,t){if(this._refreshTimeline(),!this._isLive)return!1;let{timeline:r,timescale:i}=this._sharedSmoothTimeline,o=r[r.length-1];if(o===void 0)return!1;let a=o.repeatCount,s=o.start+(a+1)*o.duration;if(t*i<s)return!1;if(e*i>=s)return!0;let d=o.start+a*o.duration;return e*i>d}getFirstAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;return e.length===0?null:e[0].start/t}getLastAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;if(this._scaledLiveGap===void 0){let r=e[e.length-1];return ke(r,null)/t}for(let r=e.length-1;r>=0;r--){let i=e[r],o=K()/1e3*t,{start:a,duration:s,repeatCount:d}=i;for(let u=d;u>=0;u--){let l=a+s*(u+1);if(l<=o-this._scaledLiveGap)return l/t}}}getEnd(){if(!this._isLive)return this.getLastAvailablePosition()}awaitSegmentBetween(e,t){var i;if(J(e<=t),this.isStillAwaitingFutureSegments())return!1;let r=this.getLastAvailablePosition();return r!==void 0&&t<r?!1:t>((i=this.getFirstAvailablePosition())!=null?i:0)?void 0:!1}checkDiscontinuity(e){return this._refreshTimeline(),na(this._sharedSmoothTimeline,e,void 0)}isSegmentStillAvailable(e){if(e.isInit)return!0;this._refreshTimeline();let{timeline:t,timescale:r}=this._sharedSmoothTimeline;for(let i=0;i<t.length;i++){let o=t[i],a=o.start/r;if(a>e.time)return!1;if(a===e.time)return!0;if(o.repeatCount>=0&&o.duration!==void 0){let d=(a-o.start)/o.duration-1;return d%1===0&&d<=o.repeatCount}}return!1}canBeOutOfSyncError(e){return this._isLive?e instanceof rt&&(e.isHttpError(404)||e.isHttpError(412)):!1}_replace(e){this._initialScaledLastPosition=e._initialScaledLastPosition,this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.replace(e._sharedSmoothTimeline)}_update(e){this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.update(e._sharedSmoothTimeline)}isStillAwaitingFutureSegments(){return this._isLive}isInitialized(){return!0}initialize(){m.error("A `SmoothRepresentationIndex` does not need to be initialized")}addPredictedSegments(e,t){this._sharedSmoothTimeline.addPredictedSegments(e,t)}_refreshTimeline(){this._sharedSmoothTimeline.refresh()}};function hl(n,e,t,r){let i=n.length,o=n[i-1],a=t.timescale===e?{time:t.time,duration:t.duration}:{time:t.time/t.timescale*e,duration:t.duration/t.timescale*e};return r.time===a.time?!1:a.time>=ke(o,null)?(o.duration===a.duration?o.repeatCount++:n.push({duration:a.duration,start:a.time,repeatCount:0}),!0):!1}var to=class{constructor(e){let{timeline:t,timescale:r,timeShiftBufferDepth:i,manifestReceivedTime:o}=e;this.timeline=t,this.timescale=r;let a=o!=null?o:K();if(this.validityTime=a,this._timeShiftBufferDepth=i,t.length!==0){let s=t[t.length-1],d=ke(s,null);this._initialScaledLastPosition=d}}refresh(){if(this._initialScaledLastPosition===void 0)return;let e=this._timeShiftBufferDepth,r=(K()-this.validityTime)/1e3+this._initialScaledLastPosition/this.timescale;if(e!==void 0){let i=(r-e)*this.timescale;vi(this.timeline,i)}}replace(e){let t=this.timeline,r=e.timeline,i=this.timescale,o=e.timescale;if(this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime,t.length===0||r.length===0||i!==o)return;let a=t[t.length-1],s=r[r.length-1],d=ke(s,null);if(!(ke(a,null)<=d))for(let u=0;u<t.length;u++){let l=t[u],c=ke(l,null);if(c===d){this.timeline=this.timeline.concat(t.slice(u+1));return}if(c>d){if(l.duration!==s.duration)return;let f=d-l.start;if(f===0){m.warn("Smooth Parser: a discontinuity detected in the previous manifest has been resolved."),this.timeline=this.timeline.concat(t.slice(u));return}if(f<0||f%l.duration!==0)return;let g=f/l.duration-1,p=l.repeatCount-g;if(p<0)return;s.repeatCount+=p;let I=t.slice(u+1);this.timeline=this.timeline.concat(I);return}}}update(e){Ri(this.timeline,e.timeline),this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime}addPredictedSegments(e,t){var r;if(((r=t.privateInfos)==null?void 0:r.smoothMediaSegment)===void 0){m.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");return}this.refresh();for(let i of e)hl(this.timeline,this.timescale,i,t.privateInfos.smoothMediaSegment)}};function yl(n){return typeof n=="boolean"?n:typeof n=="string"?n.toUpperCase()==="TRUE":!1}function nr(n,e,t){let r=n.firstElementChild,i=t;for(;r!==null;)i=e(i,r.nodeName,r),r=r.nextElementSibling;return i}var YI={audio:"audio/mp4",video:"video/mp4",text:"application/ttml+xml"},no={AACL:"audio/mp4",AVC1:"video/mp4",H264:"video/mp4",TTML:"application/ttml+xml+mp4",DFXP:"application/ttml+xml+mp4"};function $I(n={}){let e=n.referenceDateTime===void 0?Date.UTC(1970,0,1,0,0,0,0)/1e3:n.referenceDateTime,t=n.minRepresentationBitrate===void 0?0:n.minRepresentationBitrate,{serverSyncInfos:r}=n,i=r!==void 0?r.serverTimestamp-r.clientTime:void 0;function o(d,u){let l=nr(d,(f,g,p)=>(g==="CustomAttributes"&&f.push(...nr(p,(I,y,b)=>{if(y==="Attribute"){let T=b.getAttribute("Name"),v=b.getAttribute("Value");T!==null&&v!==null&&I.push(T+"="+v)}return I},[])),f),[]);function c(f){let g=d.getAttribute(f);return g===null?void 0:g}switch(u){case"audio":{let f=c("AudioTag"),g=c("BitsPerSample"),p=c("Channels"),I=c("CodecPrivateData"),y=c("FourCC"),b=c("PacketSize"),T=c("SamplingRate"),v=c("Bitrate"),E=v===void 0?0:parseInt(v,10);if(E=isNaN(E)?0:E,y!==void 0&&no[y]===void 0||I===void 0)return m.warn("Smooth parser: Unsupported audio codec. Ignoring quality level."),null;let R=mm(I,y);return{audiotag:f!==void 0?parseInt(f,10):f,bitrate:E,bitsPerSample:g!==void 0?parseInt(g,10):g,channels:p!==void 0?parseInt(p,10):p,codecPrivateData:I,codecs:R,customAttributes:l,mimeType:y!==void 0?no[y]:y,packetSize:b!==void 0?parseInt(b,10):b,samplingRate:T!==void 0?parseInt(T,10):T}}case"video":{let f=c("CodecPrivateData"),g=c("FourCC"),p=c("MaxWidth"),I=c("MaxHeight"),y=c("Bitrate"),b=y===void 0?0:parseInt(y,10);if(b=isNaN(b)?0:b,g!==void 0&&no[g]===void 0||f===void 0)return m.warn("Smooth parser: Unsupported video codec. Ignoring quality level."),null;let T=pm(f);return{bitrate:b,customAttributes:l,mimeType:g!==void 0?no[g]:g,codecPrivateData:f,codecs:T,width:p!==void 0?parseInt(p,10):void 0,height:I!==void 0?parseInt(I,10):void 0}}case"text":{let f=c("CodecPrivateData"),g=c("FourCC"),p=c("Bitrate"),I=p===void 0?0:parseInt(p,10);return I=isNaN(I)?0:I,{bitrate:I,customAttributes:l,mimeType:g!==void 0?no[g]:g,codecPrivateData:f!=null?f:""}}default:return m.error("Smooth Parser: Unrecognized StreamIndex type: "+u),null}}function a(d){let{root:u,timescale:l,baseUrl:c,protections:f,timeShiftBufferDepth:g,manifestReceivedTime:p,isLive:I}=d,y=u.getAttribute("Timescale"),b=y===null?l:+y;isNaN(b)&&(b=l);let T=u.getAttribute("Type");if(T===null)throw new Error("StreamIndex without type.");Q($t,T)||m.warn("Smooth Parser: Unrecognized adaptation type:",T);let v=T,E=u.getAttribute("Subtype"),R=u.getAttribute("Language"),k=u.getAttribute("Url"),x=k===null?"":k;h.CURRENT_ENV===h.DEV&&J(x!=="");let{qualityLevels:M,cNodes:A}=nr(u,(P,D,N)=>{switch(D){case"QualityLevel":{let z=o(N,v);if(z===null)return P;(v!=="video"||z.bitrate>t)&&P.qualityLevels.push(z);break}case"c":P.cNodes.push(N);break}return P},{qualityLevels:[],cNodes:[]}),L=new to({timeline:pl(A),timescale:b,timeShiftBufferDepth:g,manifestReceivedTime:p});J(M.length!==0,"Adaptation should have at least one playable representation.");let O=v+(w(R)?"_"+R:""),F=M.map(P=>{let D=gm(x,P.bitrate,P.customAttributes),N=w(P.mimeType)?P.mimeType:YI[v],z=P.codecs,$=O+"_"+(_(v)?"":v+"-")+(_(N)?"":N+"-")+(_(z)?"":z+"-")+String(P.bitrate),q=[],W;f.length>0&&(W=f[0],f.forEach(se=>{q.push(se.keyId)}));let H={bitsPerSample:P.bitsPerSample,channels:P.channels,codecPrivateData:P.codecPrivateData,packetSize:P.packetSize,samplingRate:P.samplingRate,height:P.height,width:P.width,protection:_(W)?void 0:{keyId:W.keyId}},V=new eo({isLive:I,sharedSmoothTimeline:L,media:D,segmentPrivateInfos:H}),ae=j({},P,{index:V,cdnMetadata:[{baseUrl:c}],mimeType:N,codecs:z,id:$});if(q.length>0||W!==void 0){let se=W===void 0?[]:W.keySystems.map(le=>{let{systemId:Se,privateData:Y}=le,ce=Se.replace(/-/g,""),ye=QI(ce,Y);return{systemId:ce,data:ye}});if(se.length>0){let le=[{type:"cenc",values:se}];ae.contentProtections={keyIds:q,initData:le}}else ae.contentProtections={keyIds:q,initData:[]}}return ae});if(E==="ADVT")return null;let C={id:O,type:v,representations:F,language:R===null?void 0:R};return v==="text"&&E==="DESC"&&(C.closedCaption=!0),C}function s(d,u,l){let c="";if(u!==void 0){let V=xi(u);c=u.substring(0,V)}let f=d.documentElement;if(_(f)||f.nodeName!=="SmoothStreamingMedia")throw new Error("document root should be SmoothStreamingMedia");let g=f.getAttribute("MajorVersion"),p=f.getAttribute("MinorVersion");if(g===null||p===null||!/^[2]-[0-2]$/.test(g+"-"+p))throw new Error("Version should be 2.0, 2.1 or 2.2");let I=f.getAttribute("Timescale"),y=w(I)?+I:1e7;isNaN(y)&&(y=1e7);let{protections:b,adaptationNodes:T}=nr(f,(V,ae,se)=>{switch(ae){case"Protection":{V.protections.push(gl(se,n.keySystems));break}case"StreamIndex":V.adaptationNodes.push(se);break}return V},{adaptationNodes:[],protections:[]}),v={},E=yl(f.getAttribute("IsLive")),R;if(E){let V=f.getAttribute("DVRWindowLength");V!==null&&!isNaN(+V)&&+V!=0&&(R=+V/y)}let k=T.reduce((V,ae)=>{let se=a({root:ae,baseUrl:c,timescale:y,protections:b,isLive:E,timeShiftBufferDepth:R,manifestReceivedTime:l});if(se===null)return V;let le=se.type,Se=V[le];return Se===void 0?V[le]=[se]:Se.push(se),V},v),x,M,A,L=null,O,F=k.video!==void 0?k.video[0]:void 0,C=k.audio!==void 0?k.audio[0]:void 0,P,D,N;if(F!==void 0||C!==void 0){let V=[],ae=[];if(F!==void 0){let se=F.representations[0];if(se!==void 0){let le=se.index.getFirstAvailablePosition(),Se=se.index.getLastAvailablePosition();_(le)||V.push(le),_(Se)||ae.push(Se)}}if(C!==void 0){let se=C.representations[0];if(se!==void 0){let le=se.index.getFirstAvailablePosition(),Se=se.index.getLastAvailablePosition();_(le)||V.push(le),_(Se)||ae.push(Se)}}V.length>0&&(P=Math.max(...V)),ae.length>0&&(D=Math.min(...ae),N=Math.max(...ae))}let z=f.getAttribute("Duration"),$=z!==null&&+z!=0?+z/y:void 0;if(E){x=n.suggestedPresentationDelay,M=e,A=P!=null?P:M;let V=N;V===void 0&&(V=Date.now()/1e3-M);let ae=D;ae===void 0&&(ae=V),O={isLinear:!0,maximumSafePosition:ae,livePosition:V,time:K()},L=R!=null?R:null}else{A=P!=null?P:0;let V=D;V===void 0&&(V=$!==void 0?A+$:1/0),O={isLinear:!1,maximumSafePosition:V,livePosition:void 0,time:K()}}let q=E?0:A,W=E?void 0:O.maximumSafePosition,H={availabilityStartTime:M===void 0?0:M,clockOffset:i,isLive:E,isDynamic:E,isLastPeriodKnown:!0,timeBounds:{minimumSafePosition:A,timeshiftDepth:L,maximumTimeData:O},periods:[{adaptations:k,duration:W!==void 0?W-q:$,end:W,id:"gen-smooth-period-0",start:q}],suggestedPresentationDelay:x,transportType:"smooth",uris:_(u)?[]:[u]};return tr(H),H}return s}function QI(n,e){if(n.length!==32)throw new Error("HSS: wrong system id length");return ue("pssh",re([0,0,0,0],qe(n),Ie(e.length),e))}var ym=$I;var Im=ym;function bm(n,e,t,r,i,o,a){return ue("avc1",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a))}function Sm(n,e,t,r,i,o,a,s){return ue("encv",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a,s))}function Tm(n,e,t,r,i,o){return ue("mp4a",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o))}function _m(n,e,t,r,i,o,a){return ue("enca",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o,a))}function Em(n){return ue("dref",re(7,[1],n))}function vm(n,e){let t=re(...[ve(n),[0,0,0,1]].concat(e.map(ve)));return ue("ftyp",t)}function Sa(n,e){return ue("schm",re(4,ve(n),Ie(e)))}function Rm(n){return ue("tfdt",re([1,0,0,0],jt(n)))}function km(){let n=new Uint8Array(12);return n[3]=1,ue("vmhd",n)}function Cm(n){return ue("trex",re(4,Ie(n),[0,0,0,1],12))}function Pm(n){return ue("free",new Uint8Array(n-8))}function Mm(n,e){return ue("esds",re(4,[3,25],fe(n),[0,4,17,64,21],11,[5,2],qe(e),[6,1,2]))}function Ta(n){return ue("frma",ve(n))}function Am(n,e,t){let r;t===2?r=1:t===4?r=3:r=0;let i=n[1],o=n[2],a=n[3];return ue("avcC",re([1,i,o,a,252|r,225],fe(n.length),n,[1],fe(e.length),e))}function xm(n){let e,t;switch(n){case"video":e="vide",t="VideoHandler";break;case"audio":e="soun",t="SoundHandler";break;default:e="hint",t="";break}return ue("hdlr",re(8,ve(e),12,ve(t),1))}function wm(n){return ue("mdhd",re(12,Ie(n),8))}function Om(n,e){return ue("mvhd",re(12,Ie(n),4,[0,1],2,[1,0],10,[0,1],14,[0,1],14,[64,0,0,0],26,fe(e+1)))}function Dm(n,e,t,r){return ue("saio",re(4,[0,0,0,1],Ie(n.length+e.length+t.length+r.length+8+8+8+8)))}function Lm(n){if(n.length===0)return ue("saiz",new Uint8Array(0));let e=ne(n,0),t=ne(n,4),r=new Uint8Array(t+9);r.set(Ie(t),5);let i=9,o=8,a,s;for(;o<n.length;)o+=8,(e&2)===2?(s=2,a=Oo(n,o),o+=a*6+2):(a=0,s=0),r[i]=a*6+8+s,i++;return ue("saiz",r)}function Nm(){return ue("smhd",new Uint8Array(8))}function rr(n){let e=[7,[n.length]];return ue("stsd",re(...e.concat(n)))}function Um(n,e,t){return ue("tkhd",re(Ie(7),8,Ie(t),20,[1,0,0,0],[0,1,0,0],12,[0,1,0,0],12,[64,0,0,0],fe(n),2,fe(e),2))}function _a(n,e,t){return ue("tenc",re(6,[n,e],t))}function XI(n,e,t){return Ae("moov",[n,e,t])}function ro(n,e,t,r,i,o){let a=Ae("stbl",[t,ue("stts",new Uint8Array(8)),ue("stsc",new Uint8Array(8)),ue("stsz",new Uint8Array(12)),ue("stco",new Uint8Array(8))]),s=ue("url ",new Uint8Array([0,0,0,1])),d=Em(s),u=Ae("dinf",[d]),l=Ae("minf",[r,u,a]),c=xm(e),f=wm(n),g=Ae("mdia",[f,c,l]),p=Um(i,o,1),I=Ae("trak",[p,g]),y=Cm(1),b=Ae("mvex",[y]),T=Om(n,1),v=XI(T,b,I),E=vm("isom",["isom","iso2","iso6","avc1","dash"]);return re(E,v)}var ZI=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];function Il(n,e,t){let r=ZI.indexOf(e),i;return i=(n&63)<<4,i=(i|r&31)<<4,i=(i|t&31)<<3,Ne(fe(i))}function Ea(n,e,t,r,i,o,a){let s=o.length===0?Il(2,i,e):o,d=Mm(1,s),u=(()=>{if(a===void 0){let y=Tm(1,e,t,r,i,d);return rr([y])}let l=_a(1,8,a),c=Ae("schi",[l]),f=Sa("cenc",65536),g=Ta("mp4a"),p=Ae("sinf",[g,f,c]),I=_m(1,e,t,r,i,d,p);return rr([I])})();return ro(n,"audio",u,Nm(),0,0)}function va(n,e,t,r,i,o,a,s){let[,d,u]=a.split("00000001");if(d===void 0||u===void 0)throw new Error("Smooth: unsupported codec private data.");let l=qe(d),c=qe(u),f=Am(l,c,o),g;if(s===void 0){let p=bm(e,t,r,i,"AVC Coding",24,f);g=rr([p])}else{let p=_a(1,8,s),I=Ae("schi",[p]),y=Sa("cenc",65536),b=Ta("avc1"),T=Ae("sinf",[b,y,I]),v=Sm(e,t,r,i,"AVC Coding",24,f,T);g=rr([v])}return ro(n,"video",g,km(),e,t)}function Ra(n){let e=pn(n,3565190898,3392751253,2387879627,2655430559);if(e===void 0)return[];let t=[],r=e[0],i=e[4];for(let o=0;o<i;o++){let a,s;r===1?(s=Ke(e,o*16+5),a=Ke(e,o*16+5+8)):(s=ne(e,o*8+5),a=ne(e,o*8+5+4)),t.push({time:s,duration:a})}return t}function ka(n){let e=pn(n,1830656773,1121273062,2162299933,2952222642);if(e!==void 0)return{duration:Ke(e,12),time:Ke(e,4)}}function bl(){return!zt}function Sl(n,e,t,r,i){let o=[n,e,t];return i!==void 0&&o.push(ue("senc",i),Lm(i),Dm(r,n,e,t)),Ae("traf",o)}function Ca(n,e){let t=Ve(n,1836019558);if(t===null)throw new Error("Smooth: Invalid ISOBMFF given");let r=n.subarray(t[1],t[2]),i=gs(r,1835427940),o=Re(r,1953653094);if(o===null||i===null)throw new Error("Smooth: Invalid ISOBMFF given");let a=Ve(o,1952868452),s=Ve(o,1953658222);if(a===null||s===null)throw new Error("Smooth: Invalid ISOBMFF given");let d=o.subarray(a[0],a[2]),u=o.subarray(s[0],s[2]);d.set([0,0,0,1],a[1]-a[0]+4);let l=Rm(e),c=JI(u,s[1]-s[0]),f=pn(o,2721664850,1520127764,2722393154,2086964724),g=Sl(d,l,c,i,f),p=Ae("moof",[i,g]),I=Ve(p,1836019558),y=Ve(g,1953653094),b=Ve(c,1953658222);if(I===null||y===null||b===null)throw new Error("Smooth: Invalid moof, trun or traf generation");let T=I[1]-I[0]+i.length+(y[1]-y[0])+d.length+l.length+(b[1]-b[0])+8,v=t[2]-t[0],E=p.length-v,R=Ve(n,1835295092);if(R===null)throw new Error("Smooth: Invalid ISOBMFF given");if(bl()&&(E===0||E<=-8)){let k=R[1];return p.set(Ie(k),T),n.set(p,t[0]),E<=-8&&n.set(Pm(-E),p.length),n}else{let k=R[1]+E;p.set(Ie(k),T);let x=new Uint8Array(n.length+E),M=n.subarray(0,t[0]),A=n.subarray(t[2],n.length);return x.set(M,0),x.set(p,M.length),x.set(A,M.length+p.length),x}}function JI(n,e){if((n[e+3]&1)>0)return n;let r=new Uint8Array(n.length+4);return r.set(n.subarray(0,e+8),0),r[e+3]=r[e+3]|1,r.set([0,0,0,0],e+8),r.set(n.subarray(e+8,n.length),e+12),Ss(r)}function Pa(n,e,t,r,i){var g;let o=[],a,s,d;if(i){let p=Mr(n);p!==null?(d=Ra(p),s=ka(p)):m.warn("smooth: could not find traf atom")}if(d!==void 0)for(let p of d)o.push({time:p.time,duration:p.duration,timescale:t});if(s!==void 0)return a={time:s.time/t,duration:s.duration/t},{nextSegments:o,chunkInfos:a,scaledSegmentTime:s.time};if(e||!r.complete)return{nextSegments:o,chunkInfos:null,scaledSegmentTime:void 0};let u=r.duration*t,l=Math.min(t*.9,u/4),c=Or(n),f=((g=r.privateInfos)==null?void 0:g.smoothMediaSegment)!==void 0?r.privateInfos.smoothMediaSegment.time:Math.round(r.time*t);return c!==void 0&&Math.abs(c-u)<=l?a={time:r.time,duration:c/t}:a={time:r.time,duration:r.duration},{nextSegments:o,chunkInfos:a,scaledSegmentTime:f}}function Mn(n){return typeof n=="string"&&n.indexOf("mp4")>=0}async function Bm(n,e,t,r,i,o){var g,p;let a=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,s=e.segment.range,d;Array.isArray(s)?d=de(ie({},a),{Range:dt(s)}):a!==void 0&&(d=a);let u=((p=r.cmcdPayload)==null?void 0:p.type)==="query"?Ye(n,r.cmcdPayload.value):n,l=await Te({url:u,responseType:"arraybuffer",headers:d,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i,onProgress:t.onProgress});if(!Mn(e.mimeType)||o!==!0)return{resultType:"segment-loaded",resultData:l};let f=new Uint8Array(l.responseData);return Jt(f,e.segment.isInit),{resultType:"segment-loaded",resultData:de(ie({},l),{responseData:f})}}var eb=({checkMediaSegmentIntegrity:n,segmentLoader:e})=>(t,r,i,o,a)=>{let{segment:s}=r;if(s.isInit){if(s.privateInfos===void 0||s.privateInfos.smoothInitSegment===void 0)throw new Error("Smooth: Invalid segment format");let d=s.privateInfos.smoothInitSegment,u,{codecPrivateData:l,timescale:c,height:f,width:g,protection:p={keyId:void 0,keySystems:void 0}}=d;if(l===void 0)throw new Error("Smooth: no codec private data.");switch(r.type){case"video":{u=va(c,g!=null?g:0,f!=null?f:0,72,72,4,l,p.keyId);break}case"audio":{let{channels:I=0,bitsPerSample:y=0,packetSize:b=0,samplingRate:T=0}=d;u=Ea(c,I,y,b,T,l,p.keyId);break}default:h.CURRENT_ENV===h.DEV&&J(!1,"responseData should have been set"),u=new Uint8Array(0)}return Promise.resolve({resultType:"segment-created",resultData:u})}else return t===null?Promise.resolve({resultType:"segment-created",resultData:null}):typeof e!="function"?Bm(t,r,a,i,o,n):new Promise((d,u)=>{let l=!1,I={reject:E=>{var M,A;if(l||o.isCancelled())return;l=!0,o.deregister(v);let R=E,k=(M=R==null?void 0:R.message)!=null?M:"Unknown error when fetching a Smooth segment through a custom segmentLoader.",x=new nt(k,(A=R==null?void 0:R.canRetry)!=null?A:!1,R==null?void 0:R.xhr);u(x)},resolve:E=>{if(l||o.isCancelled())return;l=!0,o.deregister(v),(!Mn(r.mimeType)||n!==!0)&&d({resultType:"segment-loaded",resultData:{responseData:E.data,size:E.size,requestDuration:E.duration}});let k=E.data instanceof Uint8Array?E.data:new Uint8Array(E.data);Jt(k,r.segment.isInit),d({resultType:"segment-loaded",resultData:{responseData:k,size:E.size,requestDuration:E.duration}})},fallback:()=>{l||o.isCancelled()||(l=!0,o.deregister(v),Bm(t,r,a,i,o,n).then(d,u))},progress:E=>{l||o.isCancelled()||a.onProgress({duration:E.duration,size:E.size,totalSize:E.totalSize})}},y;r.segment.range!==void 0&&(y=[r.segment.range],r.segment.indexRange!==void 0&&y.push(r.segment.indexRange));let b={isInit:r.segment.isInit,timeout:i.timeout,byteRanges:y,trackType:r.type,url:t,cmcdPayload:i.cmcdPayload},T=e(b,I);o.register(v);function v(E){l||(l=!0,!l&&typeof T=="function"&&T(),u(E))}})},Fm=eb;function Tl(n,e){return n===null?null:e.url===null?n.baseUrl:$n(n.baseUrl,e.url)}function Km(n){let e=Im(n),t=Fm(n),r={customManifestLoader:n.manifestLoader},o={loadManifest:Li(r,"text",null),parseManifest(d,u){var b;let l=(b=d.url)!=null?b:u.originalUrl,{receivedTime:c,responseData:f}=d,g=typeof f=="string"?new DOMParser().parseFromString(f,"text/xml"):f,p=e(g,l,c),I=[];return{manifest:new Vn(p,{representationFilter:n.representationFilter},I),url:l,warnings:I}}},a={loadSegment(d,u,l,c,f){let g=Tl(d,u.segment);return t(g,u,l,c,f)},parseSegment(d,u,l){var R,k;let{segment:c}=u,{data:f,isChunked:g}=d;if(f===null)return c.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let p=f instanceof Uint8Array?f:new Uint8Array(f);if(c.isInit){let x=(k=(R=c.privateInfos)==null?void 0:R.smoothInitSegment)==null?void 0:k.timescale;return{segmentType:"init",initializationData:f,initializationDataSize:f.byteLength,initTimescale:x,protectionData:[]}}let I=l!==void 0?Pa(p,g,l,c,u.isLive):null;if(I===null||I.chunkInfos===null||I.scaledSegmentTime===void 0)throw new Error("Smooth Segment without time information");let{nextSegments:y,chunkInfos:b,scaledSegmentTime:T}=I,v=Ca(p,T),E=y.length>0?y:void 0;return{segmentType:"media",chunkData:v,chunkInfos:b,chunkOffset:0,chunkSize:v.length,protectionData:[],predictedSegments:E,appendWindow:[void 0,void 0]}}};return{transportName:"smooth",manifest:o,audio:a,video:a,text:{loadSegment(d,u,l,c,f){var y,b,T,v;let{segment:g}=u,p=Tl(d,g);return g.isInit||p===null?Promise.resolve({resultType:"segment-created",resultData:null}):Mn(u.mimeType)?Te({url:((T=l.cmcdPayload)==null?void 0:T.type)==="query"?Ye(p,l.cmcdPayload.value):p,headers:((v=l.cmcdPayload)==null?void 0:v.type)==="headers"?l.cmcdPayload.value:void 0,responseType:"arraybuffer",timeout:l.timeout,connectionTimeout:l.connectionTimeout,cancelSignal:c,onProgress:f.onProgress}).then(E=>{if(n.checkMediaSegmentIntegrity!==!0)return{resultType:"segment-loaded",resultData:E};let R=new Uint8Array(E.responseData);return Jt(R,u.segment.isInit),{resultType:"segment-loaded",resultData:de(ie({},E),{responseData:R})}}):Te({url:((y=l.cmcdPayload)==null?void 0:y.type)==="query"?Ye(p,l.cmcdPayload.value):p,headers:((b=l.cmcdPayload)==null?void 0:b.type)==="headers"?l.cmcdPayload.value:void 0,responseType:"text",timeout:l.timeout,connectionTimeout:l.connectionTimeout,cancelSignal:c,onProgress:f.onProgress}).then(E=>({resultType:"segment-loaded",resultData:E}))},parseSegment(d,u,l){var O;let{segment:c,language:f,mimeType:g="",codecs:p=""}=u,I=Mn(u.mimeType),{data:y,isChunked:b}=d,T;if(c.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};if(y===null)return{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let v,E=null,R,k,x,M;if(I){let F;typeof y=="string"?F=ve(y):F=y instanceof Uint8Array?y:new Uint8Array(y),T=F.length;let C=l!==void 0?Pa(F,b,l,c,u.isLive):null;v=C==null?void 0:C.nextSegments,E=(O=C==null?void 0:C.chunkInfos)!=null?O:null,E===null?b?m.warn("Smooth: Unavailable time data for current text track."):(R=c.time,k=c.end):(R=E.time,k=E.duration!==void 0?E.time+E.duration:c.end);let P=p.toLowerCase();if(g==="application/ttml+xml+mp4"||P==="stpp"||P==="stpp.ttml.im1t")M="ttml";else if(P==="wvtt")M="vtt";else throw new Error(`could not find a text-track parser for the type ${g}`);let D=Ar(F);x=D===null?"":Le(D)}else{R=c.time,k=c.end;let F;if(typeof y!="string"){let C=y instanceof Uint8Array?y:new Uint8Array(y);T=C.length,F=Le(C)}else F=y;switch(g){case"application/x-sami":case"application/smil":M="sami";break;case"application/ttml+xml":M="ttml";break;case"text/vtt":M="vtt";break}if(M===void 0)if(p.toLowerCase()==="srt")M="srt";else throw new Error(`could not find a text-track parser for the type ${g}`);x=F}let A=Array.isArray(v)&&v.length>0?v:void 0,L=R!=null?R:0;return{segmentType:"media",chunkData:{type:M,data:x,start:R,end:k,language:f},chunkSize:T,chunkInfos:E,chunkOffset:L,protectionData:[],predictedSegments:A,appendWindow:[void 0,void 0]}}}}}var Vm=Km;function _l(n){n.transports.smooth===void 0&&(n.transports.smooth=Vm),n.mainThreadMediaSourceInit=Tn}function zm(){if(!dn)return m.warn("Compat: Can't access Firefox version on no firefox browser."),null;let n=navigator.userAgent,e=/Firefox\/([0-9]+)\./.exec(n);if(e===null)return-1;let t=parseInt(e[1],10);return isNaN(t)?-1:t}function El(){if(!dn)return!0;let n=zm();if(n===null||n<67)return!0;let e=HTMLVideoElement==null?void 0:HTMLVideoElement.prototype;return(e==null?void 0:e.requirePictureInPicture)!==void 0}function io(n){let e=n;if(typeof e.getStartDate=="function"){let t=e.getStartDate();if(typeof t=="object"&&t!==null){let r=+t;if(!isNaN(r))return r/1e3}else if(typeof t=="number"&&!isNaN(t))return t}}function vl(){return Ba&&typeof Worker=="object"||typeof Worker=="function"}var An=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="WorkerInitializationError",this.type="WORKER_INITIALIZATION_ERROR",this.code=e}};var tb=sr,Rl=tb;function Ma(n,e,t){let r=e(n.getReference(),t);return{getCurrentTime(){return n.getCurrentTime()},getReadyState(){return n.getReadyState()},getPlaybackRate(){return n.getPlaybackRate()},getIsPaused(){return n.getIsPaused()},getReference(){return r},listen(i,o){var a;t.isCancelled()||((a=o==null?void 0:o.clearSignal)==null?void 0:a.isCancelled())===!0||r.onUpdate(i,{clearSignal:o==null?void 0:o.clearSignal,emitCurrentValue:o==null?void 0:o.includeLastObservation})},deriveReadOnlyObserver(i){return Ma(this,i,t)}}}var nb=["canplay","ended","play","pause","seeking","seeked","loadedmetadata","ratechange"],oo=class{constructor(e,t){this._internalSeeksIncoming=[],this._mediaElement=e,this._withMediaSource=t.withMediaSource,this._lowLatencyMode=t.lowLatencyMode,this._canceller=new B,this._observationRef=this._createSharedReference(),this._expectedSeekingPosition=null,this._pendingSeek=null;let r=()=>{if(this._pendingSeek!==null){let i=this._pendingSeek;this._pendingSeek=null,this._actuallySetCurrentTime(i)}};e.addEventListener("loadedmetadata",r),this._canceller.signal.register(()=>{e.removeEventListener("loadedmetadata",r)})}stop(){this._canceller.cancel()}getCurrentTime(){return this._mediaElement.currentTime}getPlaybackRate(){return this._mediaElement.playbackRate}getIsPaused(){return this._mediaElement.paused}setCurrentTime(e){this._mediaElement.readyState>=1?this._actuallySetCurrentTime(e):(this._internalSeeksIncoming=[],this._pendingSeek=e,this._generateObservationForEvent("manual"))}setPlaybackRate(e){this._mediaElement.playbackRate=e}getReadyState(){return this._mediaElement.readyState}getReference(){return this._observationRef}listen(e,t){var r;if(this._canceller.isUsed()||((r=t==null?void 0:t.clearSignal)==null?void 0:r.isCancelled())===!0)return X;this._observationRef.onUpdate(e,{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:t==null?void 0:t.includeLastObservation})}deriveReadOnlyObserver(e){return Ma(this,e,this._canceller.signal)}_actuallySetCurrentTime(e){m.info("API: Seeking internally",e),this._internalSeeksIncoming.push(e),this._mediaElement.currentTime=e}_createSharedReference(){if(this._observationRef!==void 0)return this._observationRef;let{SAMPLING_INTERVAL_MEDIASOURCE:e,SAMPLING_INTERVAL_LOW_LATENCY:t,SAMPLING_INTERVAL_NO_MEDIASOURCE:r}=U.getCurrent(),i=new G(this._getCurrentObservation("init"),this._canceller.signal),o;this._lowLatencyMode?o=t:this._withMediaSource?o=e:o=r;let a=()=>{this._generateObservationForEvent("timeupdate")},s=setInterval(a,o);return nb.map(u=>{let l=()=>{d(),this._generateObservationForEvent(u)};this._mediaElement.addEventListener(u,l),this._canceller.signal.register(()=>{this._mediaElement.removeEventListener(u,l)})}),this._canceller.signal.register(()=>{clearInterval(s),i.finish()}),i;function d(){clearInterval(s),s=setInterval(a,o)}}_getCurrentObservation(e){var T,v;let t=e,r=this._observationRef===void 0?sb(this._mediaElement):this._observationRef.getValue(),i=!1,o=this._pendingSeek,a=Wm(this._mediaElement),{buffered:s,readyState:d,position:u,seeking:l}=a;if(t==="seeking")if(this._internalSeeksIncoming.length>0){i=!0,t="internal-seeking";let E=this._internalSeeksIncoming.shift();this._expectedSeekingPosition=Rl?Math.max(u,E!=null?E:0):u}else this._expectedSeekingPosition=u;else l?this._expectedSeekingPosition=Math.max(u,(T=this._expectedSeekingPosition)!=null?T:0):Rl&&this._expectedSeekingPosition!==null&&u<this._expectedSeekingPosition?o=this._expectedSeekingPosition:this._expectedSeekingPosition=null;l&&r.seeking===1&&e!=="seeking"&&(i=!0);let c=(v=this._expectedSeekingPosition)!=null?v:u,f,g;!this._withMediaSource&&s.length===0&&d>=3?(f=void 0,g=void 0):(f=Ha(s,c),g=f!==null?f.end-c:1/0);let p=ib({previousObservation:r,currentObservation:a,basePosition:c,observationEvent:t,lowLatencyMode:this._lowLatencyMode,withMediaSource:this._withMediaSource,bufferGap:g,currentRange:f}),I=ob(r,a,t,g),y;i?y=1:l?y=2:y=0;let b=j({},a,{position:new jn(a.position,o),event:t,seeking:y,rebuffering:p,freezing:I,bufferGap:g,currentRange:f});return m.hasLevel("DEBUG")&&m.debug("API: current media element state tick","event",b.event,"position",b.position.getPolled(),"seeking",b.seeking,"internalSeek",i,"rebuffering",b.rebuffering!==null,"freezing",b.freezing!==null,"ended",b.ended,"paused",b.paused,"playbackRate",b.playbackRate,"readyState",b.readyState,"pendingPosition",o),b}_generateObservationForEvent(e){let t=this._getCurrentObservation(e);m.hasLevel("DEBUG")&&m.debug(`API: current playback timeline:
|
|
15
|
-
`+
|
|
16
|
-
${e}`),this._observationRef.setValue(t)}};function
|
|
17
|
-
`+r}function sb(n){let e=Wm(n);return j(e,{rebuffering:null,event:"init",seeking:0,position:new jn(e.position,null),freezing:null,bufferGap:0,currentRange:null})}var ao=class extends oe{constructor(e){super(),this._canceller=new B,this._adaptationRef=e,this._updateToken=!1,this._lastEmitted=void 0,this.refresh=X}hasSetTrack(){return this._adaptationRef.getValue()!==void 0}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new B,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new B;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new G({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(c=>c.isSupported===!0&&c.decipherable!==!1),s="lazy";else{let{representationIds:c}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(g=>Q(c,g.id)).filter(g=>g.isSupported===!0&&g.decipherable!==!1),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),l=d.map(c=>c.id).slice().sort();if(l.length!==u.representationIds.length){t.setValue({representationIds:l,switchingMode:s});return}for(let c=0;c<l.length;c++)if(u.representationIds[c]!==l[c]){t.setValue({representationIds:l,switchingMode:s});return}}function o(){r.refresh=X}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var so=class extends oe{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:U.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(Nt(t.period)),e),[])}onManifestCodecSupportUpdate(){this._selectInitialTrackIfNeeded()}onManifestUpdate(e){var a,s,d,u,l,c;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:t}=U.getCurrent(),{periods:r}=e;if(h.CURRENT_ENV===h.DEV)for(let f=1;f<r.length;f++)J(r[f-1].start<=r[f].start);let i=[],o=0;for(let f=0;f<this._storedPeriodInfo.length;f++){let g=this._storedPeriodInfo[f].period,p=r[o];if(p===void 0)for(let I=this._storedPeriodInfo.length-1;I>=f;I--)this._storedPeriodInfo[I].inManifest=!1,kl(this._storedPeriodInfo[I])&&this._removePeriodObject(I);else if(g===p){o++;let I=this._storedPeriodInfo[f].text.storedSettings;if(!_(I)&&!mt(p,"text").some(E=>E.id===I.adaptation.id)){m.warn("TS: Chosen text Adaptation not available anymore");let E=this._storedPeriodInfo[f];if(E.text.storedSettings=null,this.trigger("trackUpdate",{period:Nt(p),trackType:"text",reason:"missing"}),this._isDisposed)return;let R=ut(this._storedPeriodInfo,E.period.id);R!==void 0&&R.isPeriodAdvertised&&R.text.storedSettings===null&&((a=R.text.dispatcher)==null||a.updateTrack(null))}let y=this._storedPeriodInfo[f].video.storedSettings;if(!_(y)){let T=mt(p,"video");if(!T.some(E=>E.id===y.adaptation.id)){m.warn("TS: Chosen video Adaptation not available anymore");let E=this._storedPeriodInfo[f],R;if(T.length===0)R=null;else{let x=T[0],M=Aa(x,this._isTrickModeTrackEnabled),A=new G(null);R={adaptationBase:x,adaptation:M,switchingMode:t,lockedRepresentations:A}}if(E.video.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"video",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.video.storedSettings===R&&((s=k.video.dispatcher)==null||s.updateTrack(R))}}let b=this._storedPeriodInfo[f].audio.storedSettings;if(!_(b)){let T=mt(p,"audio");if(!T.some(E=>E.id===b.adaptation.id)){m.warn("TS: Chosen audio Adaptation not available anymore");let E=this._storedPeriodInfo[f],R=T.length===0?null:{adaptation:T[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};if(E.audio.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"audio",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.audio.storedSettings===R&&((d=k.audio.dispatcher)==null||d.updateTrack(R))}}}else if(g.start<=p.start)this._storedPeriodInfo[f].inManifest=!1,kl(this._storedPeriodInfo[f])&&(this._removePeriodObject(f),f--);else{let I=Cl(p,!0);this._storedPeriodInfo.splice(f,0,I),i.push(I),o++}}if(o<r.length){let f=r.slice(o).map(g=>Cl(g,!0));this._storedPeriodInfo.push(...f),i.push(...f)}for(let f of this._storedPeriodInfo)(u=f.audio.dispatcher)==null||u.refresh(),(l=f.video.dispatcher)==null||l.refresh(),(c=f.text.dispatcher)==null||c.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}addTrackReference(e,t,r){let i=ut(this._storedPeriodInfo,t.id);if(i===void 0){i=Cl(t,!1);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}if(i[e].dispatcher!==null){m.error(`TS: Subject already added for ${e} and Period ${t.start}`);return}let o=new ao(r);if(i[e].dispatcher=o,o.addEventListener("noPlayableRepresentation",()=>{var c,f,g,p;let s=Z((c=t.adaptations[e])!=null?c:[],I=>I.supportStatus.hasSupportedCodec===!1||I.supportStatus.isDecipherable===!1?!1:I.representations.filter(b=>b.isSupported===!0&&b.decipherable!==!1).length>0);if(s===void 0){let I=new ee("NO_PLAYABLE_REPRESENTATION",`No ${e} Representation can be played`,{tracks:void 0});this.trigger("error",I),this.dispose();return}let d=(f=ut(this._storedPeriodInfo,t.id))==null?void 0:f[e];if(_(d))return;let u=e==="audio"?this._defaultAudioTrackSwitchingMode:"reload",l={adaptation:s,switchingMode:u,lockedRepresentations:new G(null)};d.storedSettings=l,this.trigger("trackUpdate",{period:Nt(t),trackType:e,reason:"no-playable-representation"}),!this._isDisposed&&(d=(g=ut(this._storedPeriodInfo,t.id))==null?void 0:g[e],!(_(d)||d.storedSettings!==l)&&((p=d.dispatcher)==null||p.updateTrack(l)))}),o.addEventListener("noPlayableLockedRepresentation",()=>{i!==void 0&&(this.unlockVideoRepresentations(i),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e}))}),this._selectInitialTrackIfNeeded(),this._shouldAdvertisePeriod(i)&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;let a=["audio","video","text"];for(let s of a){let d=i[s];if(i.isPeriodAdvertised&&d.dispatcher!==null&&!d.dispatcher.hasSetTrack()&&d.storedSettings!==void 0&&d.dispatcher.updateTrack(d.storedSettings),this._isDisposed)return}}removeTrackReference(e,t){let r=db(this._storedPeriodInfo,t);if(r===void 0){m.warn(`TS: ${e} not found for period`,t.start);return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn(`TS: TrackDispatcher already removed for ${e} and Period ${t.start}`);return}o.dispatcher.dispose(),o.dispatcher=null,kl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=ut(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return ut(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var g,p;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Z((g=s.adaptations[e])!=null?g:[],({id:I,supportStatus:y})=>y.hasSupportedCodec!==!1&&y.isDecipherable!==!1&&I===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],l;if(o===null)l=new G(null);else{let I=this._getRepresentationsToLock(d,o),y=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";l=new G({representationIds:I,switchingMode:y})}let c={adaptation:d,switchingMode:i,lockedRepresentations:l,relativeResumingPosition:a};if(u.storedSettings=c,this.trigger("trackUpdate",{period:Nt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=ut(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===c&&((p=f[e].dispatcher)==null||p.updateTrack(c))}setVideoTrack(e){var I,y;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Z((I=s.adaptations.video)!=null?I:[],({id:b,supportStatus:T})=>T.isDecipherable!==!1&&T.hasSupportedCodec!==!1&&b===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=U.getCurrent(),l=t.video,c=Aa(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new G(null);else{let b=this._getRepresentationsToLock(d,o),T=u;f=new G({representationIds:b,switchingMode:T})}let g={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:c,relativeResumingPosition:a,lockedRepresentations:f};if(l.storedSettings=g,this.trigger("trackUpdate",{period:Nt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let p=ut(this._storedPeriodInfo,s.id);p!==void 0&&p.video.storedSettings===g&&((y=p.video.dispatcher)==null||y.updateTrack(g))}disableTrack(e,t){var o,a;if(!e.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:Nt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=ut(this._storedPeriodInfo,e.period.id);i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null))}getChosenAudioTrack(e,t){return _(e.audio.storedSettings)?null:Go(e.audio.storedSettings.adaptation,t)}getChosenTextTrack(e){return _(e.text.storedSettings)?null:qo(e.text.storedSettings.adaptation)}getChosenVideoTrack(e,t){return _(e.video.storedSettings)?null:jo(e.video.storedSettings.adaptation,t)}getAvailableAudioTracks(e,t){let r=e.audio.storedSettings,i=_(r)?null:r.adaptation.id;return mt(e.period,"audio").map(a=>{let s=i===null?!1:i===a.id;return j(Go(a,t),{active:s})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=_(t)?null:t.adaptation.id;return mt(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return j(qo(o),{active:a})})}getAvailableVideoTracks(e,t){let r=e.video.storedSettings,i=_(r)?void 0:r.adaptation.id;return mt(e.period,"video").map(a=>{let s=i===null?!1:i===a.id,d=jo(a,t),u=d.trickModeTracks!==void 0?d.trickModeTracks.map(c=>{let f=i===null?!1:i===c.id;return j(c,{active:f})}):[],l=j(d,{active:s});return u!==void 0&&(l.trickModeTracks=u),l})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(_(r))return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(_(r))return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(!_(o.video.storedSettings)){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=Aa(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(s!==void 0){if(this.trigger("trackUpdate",{period:Nt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=ut(this._storedPeriodInfo,o.id);d!==void 0&&d.isPeriodAdvertised&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}}_removePeriodObject(e){h.CURRENT_ENV===h.DEV&&J(e<this._storedPeriodInfo.length,"Invalid index for Period removal");let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=Z(e.representations,s=>s.id===o);return a===void 0?m.warn("API: Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}_selectInitialTrackIfNeeded(){var i,o,a,s;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:e}=U.getCurrent(),t=[],r=[];for(let d of this._storedPeriodInfo){let{period:u}=d;if(d.audio.storedSettings!==void 0&&d.video.storedSettings!==void 0&&d.text.storedSettings!==void 0)continue;let l=[...(i=u.adaptations.audio)!=null?i:[],...(o=u.adaptations.video)!=null?o:[]],c=l.every(b=>b.supportStatus.hasCodecWithUndefinedSupport);if(l.length>0&&c)continue;let f=mt(u,"audio")[0];d.audio.storedSettings=f===void 0?null:{adaptation:f,switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};let g=mt(u,"video")[0],p=Aa(g,this._isTrickModeTrackEnabled);d.video.storedSettings=p===void 0?null:{adaptation:p,adaptationBase:g,switchingMode:e,lockedRepresentations:new G(null)};let I=null,y=((a=u.adaptations.text)!=null?a:[]).filter(b=>b.isForcedSubtitles===!0);if(y.length>0){if(f!=null){let b=Z(y,T=>T.normalizedLanguage===f.normalizedLanguage);b!==void 0&&(I=b)}I===null&&(I=(s=Z(y,b=>b.normalizedLanguage===void 0))!=null?s:null)}d.text.storedSettings=I===null?null:{adaptation:I,switchingMode:"direct",lockedRepresentations:new G(null)},r.push(d),this._shouldAdvertisePeriod(d)&&(d.isPeriodAdvertised=!0,t.push({id:u.id,start:u.start,end:u.end}))}if(!(t.length>0&&(this.trigger("newAvailablePeriods",t),this._isDisposed)))for(let d of r){if(!d.isPeriodAdvertised)continue;let u=["audio","video","text"];for(let l of u){let c=d[l];if(c.dispatcher!==null&&c.storedSettings!==void 0&&!c.dispatcher.hasSetTrack()&&(c.dispatcher.updateTrack(c.storedSettings),this._isDisposed))return}}}_shouldAdvertisePeriod(e){return!e.isPeriodAdvertised&&e.text.dispatcher!==null&&e.video.dispatcher!==null&&e.audio.dispatcher!==null}};function db(n,e){for(let t=0;t<n.length;t++)if(n[t].period.id===e.id)return t}function ut(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function kl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function Aa(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function Cl(n,e){return{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:void 0,dispatcher:null},video:{storedSettings:void 0,dispatcher:null},text:{storedSettings:void 0,dispatcher:null}}}function Nt(n){return{start:n.start,end:n.end,id:n.id}}var Gm=so;function qm(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:l,DEFAULT_MAX_VIDEO_BUFFER_SIZE:c,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:g}=U.getCurrent();if(_(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(_(n.maxBufferBehind))t=l;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(_(n.wantedBufferAhead))r=g;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(_(n.maxVideoBufferSize))i=c;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let p=_(n.videoResolutionLimit)?d:n.videoResolutionLimit,I=_(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(_(n.videoElement))o=document.createElement("video");else if(n.videoElement.nodeName.toLowerCase()==="video"||n.videoElement.nodeName.toLowerCase()==="audio")o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(_(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:p,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:I,baseBandwidth:a}}function jm(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function Ym(n){var E,R,k;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:l,DEFAULT_TEXT_TRACK_MODE:c}=U.getCurrent();if(_(n))throw new Error("No option set on loadVideo");if(!_(n.url))e=String(n.url);else if(_(n.initialManifest)&&_(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(_(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let f=_(n.autoPlay)?d:!!n.autoPlay;if(_(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let x of r)if(typeof x.type!="string"||typeof x.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let g=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,p=n.initialManifest,I=(E=n.minimumManifestUpdateInterval)!=null?E:0,y=(R=n.defaultAudioTrackSwitchingMode)!=null?R:void 0;y!==void 0&&!Q(["seamless","direct","reload"],y)&&(m.warn("The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),y=void 0);let b=_(n.onCodecSwitch)?u:n.onCodecSwitch;if(Q(["continue","reload"],b)||(m.warn("The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),b=u),_(n.textTrackMode))i=c;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(_(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else _(n.textTrackElement)||m.warn('API: You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(_(n.mode))o="auto";else{if(!Q(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let T=_(n.enableFastSwitching)?l:n.enableFastSwitching;if(!_(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let x=n.startAt.wallClockTime.getTime()/1e3;s=j({},n.startAt,{wallClockTime:x})}else s=n.startAt;let v=(k=n.requestConfig)!=null?k:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,checkManifestIntegrity:n.checkManifestIntegrity,autoPlay:f,defaultAudioTrackSwitchingMode:y,enableFastSwitching:T,initialManifest:p,keySystems:r,lowLatencyMode:g,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:I,requestConfig:v,onCodecSwitch:b,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e,cmcd:n.cmcd}}function $m(n,e,t,r,i){if(i.isCancelled()||n===null)return;let o=e.getReference().getValue().seeking===2;o&&(t(),i.isCancelled())||e.listen(a=>{a.event==="seeking"?(o=!0,t()):o&&a.event==="seeked"&&(o=!1,r())},{includeLastObservation:!0,clearSignal:i})}function Qm(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Xm(n,e,t,r){let i=new G("LOADING",r);n.addEventListener("loaded",()=>{if(i.getValue()==="LOADING"){if(i.setValue("LOADED"),!r.isCancelled()){let s=Pl(e,null);s!=="PAUSED"&&i.setValue(s)}}else i.getValue()==="RELOADING"?i.setValue(Pl(e,null)):a(null)},r),n.addEventListener("reloadingMediaSource",()=>{ir(i.getValue())&&i.setValueIfChanged("RELOADING")},r);let o=null;return n.addEventListener("stalled",s=>{s!==o&&(a(s),o=s)},r),n.addEventListener("unstalled",()=>{o!==null&&(a(null),o=null)},r),t.listen(s=>{Q(["seeking","ended","play","pause"],s.event)&&a(o)},{clearSignal:r}),i;function a(s){if(!ir(i.getValue()))return;let d=Pl(e,s);i.getValue()==="LOADED"&&d==="PAUSED"||i.setValueIfChanged(d)}}function Pl(n,e){let{FORCED_ENDED_THRESHOLD:t}=U.getCurrent();if(n.ended)return"ENDED";if(e!==null){let r=Math.abs(n.duration-n.currentTime);return!_(t)&&r<t?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function ir(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var ub=Ze(),lb=["manifestLoader","segmentLoader"],Ut=class Ut extends oe{static get ErrorTypes(){return Xe}static get ErrorCodes(){return Xa}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e,m.getFormat())}static get LogFormat(){return m.getFormat()}static set LogFormat(e){m.setLevel(m.getLevel(),e)}static addFeatures(e){ea(e)}static _priv_registerVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
|
|
18
|
-
Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Ut._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&Ut._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=qm(e);s.preload="auto",this.version="4.2.0-dev.2024090500",this.log=m,this.state="STOPPED",this.videoElement=s,Ut._priv_registerVideoElement(this.videoElement);let l=new B;this._destroyCanceller=l,this._priv_pictureInPictureRef=rc(s,l.signal),this._priv_speed=new G(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new G(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new G(d,this._destroyCanceller.signal),maxBufferAhead:new G(i,this._destroyCanceller.signal),maxBufferBehind:new G(o,this._destroyCanceller.signal),maxVideoBufferSize:new G(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let c=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",c),l.signal.register(()=>{s.removeEventListener("volumechange",c)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!vl())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new An("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new An("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new An("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),logFormat:m.getFormat(),sendBackLogs:xn(),date:Date.now(),timestamp:K(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Kf}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a.level,logFormat:a.format,sendBackLogs:xn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Ut._priv_deregisterVideoElement(this.videoElement),On(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Ym(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var l,c,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");jm(e);let a;if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.position)!==void 0)a={position:e.reloadAt.position};else if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=de(ie({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(me.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new B;return me.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var H,V,ae,se,le,Se;let{autoPlay:t,cmcd:r,defaultAudioTrackSwitchingMode:i,enableFastSwitching:o,initialManifest:a,keySystems:s,lowLatencyMode:d,minimumManifestUpdateInterval:u,requestConfig:l,onCodecSwitch:c,startAt:f,transport:g,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:y,referenceDateTime:b,segmentLoader:T,serverSyncInfos:v,mode:E,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k,url:x}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let M=g==="directfile",A=new B,L=this.videoElement,O,F=!1,C=null;if(M){if(me.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(x))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),C=this._priv_initializeMediaElementTracksStore(A.signal),A.isUsed())return;O=new me.directfile.initDirectFile({autoPlay:t,keySystems:s,speed:this._priv_speed,startAt:f,url:x})}else{let Y={lowLatencyMode:d,maxRetry:(H=l.manifest)==null?void 0:H.maxRetry,requestTimeout:(V=l.manifest)==null?void 0:V.timeout,connectionTimeout:(ae=l.manifest)==null?void 0:ae.connectionTimeout,minimumManifestUpdateInterval:u,initialManifest:a},ce=El(),ye={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ce?ye.throttleBitrate={video:on(ic(this._priv_pictureInPictureRef,A.signal),Oe=>Oe?1/0:0,A.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ce?ye.limitResolution={video:ac(L,this._priv_pictureInPictureRef,A.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&(ye.limitResolution={video:oc(A.signal)});let Bt={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:d,throttlers:ye},$e=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ue=j({enableFastSwitching:o,onCodecSwitch:c},this._priv_bufferOptions),Tt={lowLatencyMode:d,maxRetry:(se=l.segment)==null?void 0:se.maxRetry,requestTimeout:(le=l.segment)==null?void 0:le.timeout,connectionTimeout:(Se=l.segment)==null?void 0:Se.connectionTimeout},ht=me.multithread!==null&&this._priv_worker!==null&&g==="dash"&&lb.every(Oe=>_(e[Oe]))&&typeof e.representationFilter!="function";if(E==="main"||E==="auto"&&!ht){if(me.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Oe=me.transports[g];if(typeof Oe!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${g}" not supported`);let Jm=typeof e.representationFilter=="string"?Wc(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let ep=Oe({lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:y,referenceDateTime:b,representationFilter:Jm,segmentLoader:T,serverSyncInfos:v,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k});O=new me.mainThreadMediaSourceInit({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transport:ep,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,url:x})}else{if(me.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");J(typeof e.representationFilter!="function"),F=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Oe={lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,referenceDateTime:b,serverSyncInfos:v,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k};O=new me.multithread.init({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transportOptions:Oe,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,worker:this._priv_worker,url:x})}}let P={contentId:ub(),originalUrl:x,currentContentCanceller:A,defaultAudioTrackSwitchingMode:i,initializer:O,isDirectFile:M,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:C,useWorker:F};O.addEventListener("error",Y=>{this._priv_onFatalError(Y,P)}),O.addEventListener("warning",Y=>{let ce=we(Y,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ce),this.trigger("warning",ce)}),O.addEventListener("reloadingMediaSource",Y=>{P.tracksStore!==null&&P.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=Y.autoPlay}),O.addEventListener("inbandEvents",Y=>this.trigger("inbandEvents",Y)),O.addEventListener("streamEvent",Y=>this.trigger("streamEvent",Y)),O.addEventListener("streamEventSkip",Y=>this.trigger("streamEventSkip",Y)),O.addEventListener("activePeriodChanged",Y=>this._priv_onActivePeriodChanged(P,Y)),O.addEventListener("periodStreamReady",Y=>this._priv_onPeriodStreamReady(P,Y)),O.addEventListener("periodStreamCleared",Y=>this._priv_onPeriodStreamCleared(P,Y)),O.addEventListener("representationChange",Y=>this._priv_onRepresentationChange(P,Y)),O.addEventListener("adaptationChange",Y=>this._priv_onAdaptationChange(P,Y)),O.addEventListener("bitrateEstimateChange",Y=>this._priv_onBitrateEstimateChange(Y)),O.addEventListener("manifestReady",Y=>this._priv_onManifestReady(P,Y)),O.addEventListener("manifestUpdate",Y=>this._priv_onManifestUpdate(P,Y)),O.addEventListener("codecSupportUpdate",()=>this._priv_onCodecSupportUpdate(P)),O.addEventListener("decipherabilityUpdate",Y=>this._priv_onDecipherabilityUpdate(P,Y)),O.addEventListener("loaded",Y=>{this._priv_segmentSinkMetricsCallback=Y.getSegmentSinkMetrics}),O.prepare(),this.stop();let D=new oo(L,{withMediaSource:!M,lowLatencyMode:d});A.signal.register(()=>{D.stop()});let N=Xm(O,L,D,A.signal);A.signal.register(()=>{O.dispose()});let z=Y=>{switch(Y){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=D.getReference().getValue().position.getPolled();break;default:{let ce=D.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ce.paused,this._priv_reloadingMetadata.reloadPosition=ce.position.getWanted();break}}},$=null,q=Y=>{$!==null&&($.cancel(),$=null),N.onUpdate((ce,ye)=>{ir(ce)&&(ye(),$!==null&&$.cancel(),$=new B,$.linkToSignal(A.signal),Y!==!L.paused&&(L.paused?this.trigger("pause",null):this.trigger("play",null)),Qm(L,()=>this.trigger("play",null),()=>this.trigger("pause",null),A.signal))},{emitCurrentValue:!1,clearSignal:A.signal})};q(t),O.addEventListener("reloadingMediaSource",Y=>{q(Y.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=P;let W=null;N.onUpdate(Y=>{z(Y),this._priv_setPlayerState(Y),!A.isUsed()&&(W!==null?ir(this.state)||(W.cancel(),W=null):ir(this.state)&&(W=new B,W.linkToSignal(A.signal),$m(L,D,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),W.signal)))},{emitCurrentValue:!0,clearSignal:A.signal}),D.listen(Y=>{z(this.state),this._priv_triggerPositionUpdate(P,Y)},{clearSignal:A.signal}),A.signal.register(()=>{O.removeEventListener()}),this._priv_contentLock.onUpdate((Y,ce)=>{Y||(ce(),O.start(L,D))},{emitCurrentValue:!0,clearSignal:A.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!Q(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return Q(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?Q(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=zl(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){var r;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let i=io(this.videoElement);return(i!=null?i:0)+this.videoElement.currentTime}if(t!==null){let i=this.videoElement.currentTime,o=(r=t.availabilityStartTime)!=null?r:0;return i+o}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new ee("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=io(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Kn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableAudioTracks())!=null?a:[];let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var l;return(l=d.getAvailableAudioTracks(u,o))!=null?l:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableVideoTracks())!=null?a:[];let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var l;return(l=d.getAvailableVideoTracks(u,o))!=null?l:[]})}getAudioTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenAudioTrack();let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenAudioTrack(d,o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenVideoTrack();let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenVideoTrack(d,o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let l=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(l);return}catch(l){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(l,c)=>l.setAudioTrack({periodRef:c,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let l=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(l);return}catch(l){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(l,c)=>l.setVideoTrack({periodRef:c,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?hn(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:yn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:bt(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():bo(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Gm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onCodecSupportUpdate(e){let t=e==null?void 0:e.tracksStore;_(t)||t.onManifestCodecSupportUpdate()}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(Z(i,l=>l[0].id===o.period.id&&l[1]===o.adaptation.type)!==void 0)){let l=e.tracksStore;if(l===null)return i;let c=!1,f=l.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":c=((s=l.getChosenAudioTrack(f,!1))==null?void 0:s.id)===o.adaptation.id;break;case"video":c=((d=l.getChosenVideoTrack(f,!1))==null?void 0:d.id)===o.adaptation.id;break;case"text":c=((u=l.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}c&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,l,c,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let g=i.getPeriodObjectFromPeriod(t);if(g){let p=i.getChosenAudioTrack(g,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",p,r);let I=i.getChosenTextTrack(g);this._priv_triggerEventIfNotStopped("textTrackChange",I,r);let y=i.getChosenVideoTrack(g,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",y,r)}}let o=(l=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?l:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(c=this.__priv_getCurrentRepresentations())==null?void 0:c.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Qe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var l;if(e.contentId!==((l=this._priv_contentInfos)==null?void 0:l.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let c=d.getPeriodObjectFromPeriod(i);if(c===void 0)return;switch(t){case"audio":{let f=d.getChosenAudioTrack(c,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break}case"text":{let f=d.getChosenTextTrack(c);this._priv_triggerEventIfNotStopped("textTrackChange",f,u);break}case"video":{let f=d.getChosenVideoTrack(c,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",f,u);break}}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?bt(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let l=yn(i);l!==void 0&&(a.liveGap=l-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=io(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;J(me.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),J(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new me.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":{let u=o.getAvailableVideoTracks(d,!0);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break}case"audio":{let u=o.getAvailableAudioTracks(d,!0);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",u!=null?u:[],s);break}case"text":{let u=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",u!=null?u:[],s);break}default:Qe(e)}}_priv_onFatalError(e,t){let r=we(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Ut._priv_currentlyUsedVideoElements=new WeakSet;var xa=Ut;xa.version="4.2.0-dev.2024090500";var Zm=xa;var Ml=Zm;wa();Ml.addFeatures([_l,su,fu,mu,ul,il,ml,al,zu,Iu,el,Tu]);xn()?m.setLevel("DEBUG","standard"):h.CURRENT_ENV===h.DEV&&m.setLevel(S.CURRENT_LEVEL,"standard");var Ooe=Ml;})();
|
|
1
|
+
"use strict";(()=>{var np=Object.defineProperty,rp=Object.defineProperties;var ip=Object.getOwnPropertyDescriptors;var wl=Object.getOwnPropertySymbols;var op=Object.prototype.hasOwnProperty,ap=Object.prototype.propertyIsEnumerable;var Ol=(n,e,t)=>e in n?np(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ie=(n,e)=>{for(var t in e||(e={}))op.call(e,t)&&Ol(n,t,e[t]);if(wl)for(var t of wl(e))ap.call(e,t)&&Ol(n,t,e[t]);return n},de=(n,e)=>rp(n,ip(e));var h={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var S={CURRENT_LEVEL:"NONE"};function wn(){return typeof __RX_PLAYER_DEBUG_MODE__=="boolean"&&__RX_PLAYER_DEBUG_MODE__}function _(n){return n==null}var oe=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(_(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(_(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(h.CURRENT_ENV===h.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Ft=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var up=typeof window=="undefined"&&!Ft,Kt=up;var lo;Ft?lo=self:Kt?lo=global:lo=window;var te=lo;var _t=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function Da(){if(!Kt&&!_(te.WebKitSourceBuffer)&&te.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=te.WebKitSourceBuffer.prototype;for(let t in oe.prototype)oe.prototype.hasOwnProperty(t)&&(e[t]=oe.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){_t(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend",new Event("updateend"))})},e.appendBuffer=function(t){var r,i;if(this.updating)throw new Error("updating");this.trigger("updatestart",new Event("updatestart")),this.updating=!0;try{this.append(t)}catch(o){(r=this._emitUpdate)==null||r.call(this,"error",o);return}(i=this._emitUpdate)==null||i.call(this,"update",new Event("update"))}}}function he(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}function X(){}var co=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){h.CURRENT_ENV===h.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if((t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),(t==null?void 0:t.emitCurrentValue)===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}(t==null?void 0:t.clearSignal)!==void 0&&t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return X;let r=()=>{let a=he(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function on(n,e,t){let r=new co(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var G=co;var Dl=new G(0);var lp=typeof performance!="undefined"?()=>performance.now()+Dl.getValue():()=>Date.now()+Dl.getValue(),K=lp;var cp="NONE",or=class extends oe{constructor(){super(),this.error=X,this.warn=X,this.info=X,this.debug=X,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentFormat="standard",this._currentLevel=cp}setLevel(e,t,r){let i,o=this._levels[e];typeof o=="number"?(i=o,this._currentLevel=e):(i=0,this._currentLevel="NONE");let a;if(t==="standard"||t==="full"?a=t:a="standard",a==="full"&&a!==this._currentFormat){let d=K();console.log(String(d.toFixed(2)),"[Init]",`Local-Date: ${Date.now()}`)}this._currentFormat=a;let s=this._currentFormat==="full"?(d,u)=>(...l)=>{let c=K();return u(String(c.toFixed(2)),`[${d}]`,...l)}:(d,u)=>u;if(r===void 0)this.error=i>=this._levels.ERROR?s("error",console.error.bind(console)):X,this.warn=i>=this._levels.WARNING?s("warn",console.warn.bind(console)):X,this.info=i>=this._levels.INFO?s("info",console.info.bind(console)):X,this.debug=i>=this._levels.DEBUG?s("log",console.log.bind(console)):X;else{let d=u=>i>=this._levels[u]?(...l)=>r(u,l):X;this.error=d("ERROR"),this.warn=d("WARNING"),this.info=d("INFO"),this.debug=d("DEBUG")}this.trigger("onLogLevelChange",{level:this._currentLevel,format:this._currentFormat})}getLevel(){return this._currentLevel}getFormat(){return this._currentFormat}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};var fp=new or,m=fp;var Vt=te,an=Vt===void 0?void 0:_(Vt.MediaSource)?_(Vt.MozMediaSource)?_(Vt.WebKitMediaSource)?Vt.MSMediaSource:Vt.WebKitMediaSource:Vt.MozMediaSource:Vt.MediaSource;var mp=200,fo=new Map;function La(n){if(_(an))return Ft&&m.error("Compat: Cannot request codec support in a worker without MSE."),!1;if(typeof an.isTypeSupported=="function"){let e=fo.get(n);if(e!==void 0)return e;{let t=an.isTypeSupported(n);return fo.size>=mp&&fo.clear(),fo.set(n,t),t}}return!0}var ar=!1,sn=!1,zt=!1,dn=!1,Na=!1,un=!1,Ua=!1,sr=!1,dr=!1,pp=!1,gp=!1,Ba=!1,Fa=!1,Ka=!1,ln=!1,hp=!1,Va=!1;(function(){var e,t,r;Kt||(typeof te.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?(sn=!0,zt=!0):navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?zt=!0:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?ar=!0:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?dn=!0:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?un=!0:(Object.prototype.toString.call(te.HTMLElement).indexOf("Constructor")>=0||((t=(e=te.safari)==null?void 0:e.pushNotification)==null?void 0:t.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((r=navigator.vendor)==null?void 0:r.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Na=!0),/SamsungBrowser/.test(navigator.userAgent)&&(Ua=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?Ka=!0:navigator.userAgent.indexOf("PlayStation 5")!==-1?ln=!0:/Tizen/.test(navigator.userAgent)?sr=!0:/[Ww]eb[O0]S/.test(navigator.userAgent)?(dr=!0,/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?gp=!0:(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent))&&(pp=!0)):navigator.userAgent.indexOf("NETTV")!==-1&&navigator.userAgent.indexOf("Philips")!==-1?Fa=!0:/[Pp]anasonic/.test(navigator.userAgent)?Ba=!0:navigator.userAgent.indexOf("Xbox")!==-1?hp=!0:navigator.userAgent.indexOf("Model/a1-kstb40xx")&&(Va=!0))})();var yp=ln,Ll=yp;function za(n){return n===void 0||n.indexOf("widevine")<0}var Ip={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/mp4;codecs="hvc1.1.6.L93.B0"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"',"audio/webm;codecs=opus"],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless"},Nl=Ip;function bp(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r of e)for(let i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i]);return t}var j=typeof Object.assign=="function"?Object.assign:bp;function Ha(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function ur(n,...e){if(e.length===0)return n;let t=e.shift();if(Ha(n)&&Ha(t))for(let r in t)if(Ha(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),ur(i,t[r])}else j(n,{[r]:t[r]});return ur(n,...e)}var Wa=class{constructor(){this._config=Nl}update(e){let t=ur(this._config,e);this._config=t}getCurrent(){return this._config}},Sp=new Wa,U=Sp;var Tp=.016666666666666666;function Ul(n,e){return Math.abs(n-e)<Tp}function Fl(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function _p(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function Ep(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(Vl(t,r)){let i=Fl(t,r);n.splice(--e,2,i)}}return n}function Ga(n,e){return n.end<=e.start}function Bl({start:n,end:e},t){return n<=t&&t<e}function Kl(n,e){return Bl(n,e.start)||n.start<e.end&&e.end<n.end||Bl(e,n.start)}function Vl(n,e){return Ul(e.start,n.end)||Ul(e.end,n.start)}function Pe(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function qa(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function vp(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function zl(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function Hl(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function Wl(n,e){let t=qa(n,e);return t!==null?t.end-e:1/0}function mo(n,e){let t=vp(n,e);return t!==null?t.end-e:1/0}function Ht(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=Kl(t,i),a=Vl(t,i);if(o||a)t=Fl(t,i),n.splice(r--,1);else if(r===0){if(Ga(t,n[0]))break}else if(Ga(n[r-1],t)&&Ga(t,i))break}return n.splice(r,0,t),Ep(_p(n))}function Gl(n,e){let t=[];for(let r=0;r<e.length;r++)Kl(n,e[r])&&t.push(e[r]);return t}function ql(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=Gl(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function po(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=Gl(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}var go=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function J(n,e){if(h.DEV===h.CURRENT_ENV&&!n)throw new go(e===void 0?"invalid assertion":e)}function jl(n,e,t="object"){J(!_(n),`${t} should be an object`);for(let r in e)e.hasOwnProperty(r)&&J(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function Qe(n){throw new go("Unreachable path taken")}var B=class{constructor(){let[e,t]=Rp();this._isUsed=!1,this._trigger=e,this.signal=new lr(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new Me;this._trigger(t)}static isCancellationError(e){return e instanceof Me}},lr=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("Error while calling clean up listener",r instanceof Error?r.toString():"Unknown error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(J(this.cancellationError!==null),e(this.cancellationError),X):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},Me=class n extends Error{constructor(){super("This task was cancelled."),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function Rp(){let n=X;return[function(t){n(t)},function(t){n=t}]}function ja(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var tt=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var cr=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new tt(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR: New last stable representation",e.bitrate),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Yl=6e3,kp=15e3,Cp=3e3,Pp=1e3,Mp=9e3,fr=class{constructor(e){this._levelsMap=ja(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Yl,m.debug("ABR: Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(_(o)){this._currentEstimate=r[0];return}let d=-1;for(let p=0;p<r.length;p++){let I=r[p];if(I===o)d=p;else if(I>o)break}if(d<0||r.length!==t.length){m.info("ABR: Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let l=isFinite(i)?i:0,c=K();if(l<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:c-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+Mp){let y=this._blockRaiseDelay+Cp;this._blockRaiseDelay=Math.min(y,kp),m.debug("ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality",this._blockRaiseDelay)}else{let y=this._blockRaiseDelay-Pp;this._blockRaiseDelay=Math.max(Yl,y),m.debug("ABR: Lowering quality in BufferBasedChooser",this._blockRaiseDelay)}this._lastUnsuitableQualityTimestamp=c;let I=he(r,y=>y===o);for(let y=I-1;y>=0;y--)if(l>=t[y]){this._currentEstimate=r[y];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&c-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],g=(()=>{for(let p=d+1;p<t.length;p++)if(t[p]>f)return p})();if(g!==void 0){let p=t[g];if(i>=p){m.debug("ABR: Raising quality in BufferBasedChooser",r[g]),this._currentEstimate=r[g];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function Z(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function Ap(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function ho(n){if(n.progress.length<5)return;let e=new tt(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function $l(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function xp(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,l=Ap(n,u);if(l.length!==1)return;let c=l[0],f=K(),g=c.content.segment.duration*1.5;if(g=Math.min(g,3e3),g=Math.max(g,12e3),f-c.requestTimestamp<g)return;let p=c.progress.length>0?c.progress[c.progress.length-1]:void 0,I=ho(c);if(p!==void 0&&I!==void 0){let R=$l(p,I);if((f-p.timestamp)/1e3<=R&&R-d/a>2500)return I}if(!c.content.segment.complete)return;let y=c.content.segment.duration,b=(f-c.requestTimestamp)/1e3,T=b<=(y*1.5+2)/a;if(_(t)||T)return;let v=y/b,E=t.bitrate*Math.min(.7,v);if(i===void 0||E<i)return E}function wp(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=Z(e,({content:c})=>c.segment.duration>0&&c.segment.time+c.segment.duration>i);if(o===void 0)return!0;let a=K(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=ho(o);if(s===void 0||d===void 0)return!0;let u=$l(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var mr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=U.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:l,duration:c}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:g}=U.getCurrent();return isNaN(c)||f+l.getWanted()<c-g?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR: enter starvation mode."),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR: exit starvation mode."),this._inStarvationMode=!1),this._inStarvationMode&&(s=xp(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR: starvation mode emergency estimate:",s),t.reset(),a=_(r)?s:Math.min(s,r.bitrate))),_(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:wp(i,r,this._lowLatencyMode)}};var pr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var gr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let c=Ql(e,r);if(c!==null)return c}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR: Guessed Representation validated",d.bitrate),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=K()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),Op(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let c=Ql(e,r);if(c!==null)return c}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&K()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=K();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=ho(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function Ql(n,e){let t=n.length,r=he(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR: Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function Op(n,e){let t=he(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR: Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var hr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=U.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=U.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=U.getCurrent();this._fastEWMA=new tt(e),this._slowEWMA=new tt(t),this._bytesSampled=0}};function Ya(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=he(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function $a(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,l;return((u=s.width)!=null?u:0)-((l=d.width)!=null?l:0)}),o=Z(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function yr(n){return Object.keys(n).map(e=>n[e])}var On=typeof Object.values=="function"?Object.values:yr;var Ir=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(_(t)){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR: progress for a request not added");return}t.progress.push(e)}remove(e){if(_(this._currentRequests[e])){if(h.CURRENT_ENV===h.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR: can't remove unknown request")}delete this._currentRequests[e]}getRequests(){return On(this._currentRequests).filter(e=>!_(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function yo(n,e){let t=he(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Xl=new G(void 0);Xl.finish();var Zl=new G(1/0);Zl.finish();function Qa(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,l,c){var y,b,T;let{type:f}=s.adaptation,g=o(f),p=(y=t[f])!=null?y:0,I={limitResolution:(b=r.limitResolution[f])!=null?b:Xl,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Zl};return Dp({bandwidthEstimator:g,context:s,currentRepresentation:d,filters:I,initialBitrate:p,playbackObserver:l,representations:u,lowLatencyMode:i},c)};function o(a){let s=e[a];if(_(s)){m.debug("ABR: Creating new BandwidthEstimator for ",a);let d=new hr;return e[a]=d,d}return s}}function Dp({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new cr,l=new mr(i!=null?i:0,o),c=new Ir,f=X,g={metrics:T,requestBegin:v,requestProgress:E,requestEnd:R,addedSegment(k){f(k)}},p=new B;p.linkToSignal(d);let I=y(s.getValue(),p.signal);return s.onUpdate(b,{clearSignal:d}),{estimates:I,callbacks:g};function y(k,x){if(k.length<=1)return new G({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let M=!1,A=k.sort((z,$)=>z.bitrate-$.bitrate),L=new fr(A.map(z=>z.bitrate)),O=new pr,F=new gr(u,O),C=a.getReference().getValue(),P=new G(N());return a.listen(z=>{C=z,D()},{includeLastObservation:!1,clearSignal:x}),f=function(z){if(C===null)return;let{position:$,speed:q}=C,W=z.buffered,H=mo(W,$.getWanted()),{representation:V}=z.content,ae=u.getEstimate(V),se=V.bitrate,le={bufferGap:H,currentBitrate:se,currentScore:ae,speed:q};L.onAddedSegment(le),D()},x.register(()=>{f=X}),r.throttleBitrate.onUpdate(D,{clearSignal:x}),r.limitResolution.onUpdate(D,{clearSignal:x}),P;function D(){P.setValue(N())}function N(){let{bufferGap:z,position:$,maximumPosition:q}=C,W=r.limitResolution.getValue(),H=r.throttleBitrate.getValue(),V=t.getValue(),ae=Lp(A,W,H),se=c.getRequests(),{bandwidthEstimate:le,bitrateChosen:Se}=l.getBandwidthEstimate(C,n,V,se,O.bandwidth),Y=u.getLastStableRepresentation(),ce=Y===null?void 0:Y.bitrate/(C.speed>0?C.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:ye,ABR_EXIT_BUFFER_BASED_ALGO:Bt}=U.getCurrent();M&&z<=Bt?M=!1:!M&&isFinite(z)&&z>=ye&&(M=!0);let $e=yo(ae,Se),Ue=L.getLastEstimate(),Tt=$e.bitrate,ht=null;M&&Ue!==void 0&&Ue>Tt&&(ht=yo(ae,Ue),Tt=ht.bitrate);let Oe=null;return o&&V!==null&&e.manifest.isDynamic&&q-$.getWanted()<40&&(Oe=F.getGuess(A,C,V,Tt,se)),Oe!==null&&Oe.bitrate>Tt?(m.debug("ABR: Choosing representation with guess-based estimation.",Oe.bitrate,Oe.id),O.update(Oe,le,2),{bitrate:le,representation:Oe,urgent:V===null||Oe.bitrate<V.bitrate,knownStableBitrate:ce}):ht!==null?(m.debug("ABR: Choosing representation with buffer-based estimation.",ht.bitrate,ht.id),O.update(ht,le,0),{bitrate:le,representation:ht,urgent:l.isUrgent(ht.bitrate,V,se,C),knownStableBitrate:ce}):(m.debug("ABR: Choosing representation with bandwidth estimation.",$e.bitrate,$e.id),O.update($e,le,1),{bitrate:le,representation:$e,urgent:l.isUrgent($e.bitrate,V,se,C),knownStableBitrate:ce})}}function b(){let k=s.getValue();p.cancel(),p=new B,p.linkToSignal(d),y(k,p.signal).onUpdate(function(A){I.setValue(A)},{clearSignal:p.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:x,segmentDuration:M,size:A,content:L}=k;if(n.addSample(x,A),!L.segment.isInit){let{segment:O,representation:F}=L;if(M===void 0&&!O.complete)return;let C=M!=null?M:O.duration;u.addSample(F,x/1e3,C)}}function v(k){c.add(k)}function E(k){c.addProgress(k)}function R(k){c.remove(k.id)}}function Lp(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=Ya(r,t)),e!==void 0&&(r=$a(r,e)),r}var Jl=Qa;function Io(){var t;if(typeof((t=te.crypto)==null?void 0:t.randomUUID)=="function")return te.crypto.randomUUID();let n=new Date().getTime(),e=K();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let i=Math.random()*16;return n>0?(i=(n+i)%16|0,n=Math.floor(n/16)):(i=(e+i)%16|0,e=Math.floor(e/16)),(r==="x"?i:i&3|8).toString(16)})}function Xe(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}var Np=/^(?:[a-z]+:)?\/\//i,Up=/^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function Tr(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(Np.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?Tr(n.substring(0,t)):e+1}function ec(n,e){let t=bo(n),r=bo(e);if(t.scheme!==r.scheme||t.authority!==r.authority||t.path[0]!==void 0&&t.path[0]!=="/"&&r.path[0]==="/"||r.path[0]!==void 0&&r.path[0]!=="/"&&t.path[0]==="/")return null;let i=Sr(t.path),o=Sr(r.path),a;if(i===o)a="";else{let d=i.split("/");d.pop();let u=o.split("/");for(;d.length>0&&u.length>0&&d[0]===u[0];)d.shift(),u.shift();for(;d.length>0;)d.shift(),u.unshift("..");let l=u.join("/");(l.endsWith("../")||l.endsWith("./"))&&(l=l.slice(0,l.length-1)),a=l===""?".":l}let s=a;return a===""&&r.query===t.query||r.query&&(s+="?",s+=r.query),r.fragment&&(s+="#",s+=r.fragment),s}function Bp(n,e){let t=bo(n),r=bo(e);if(r.scheme)return Xa(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return r.authority?(i.authority=r.authority,i.path=Sr(r.path),Xa(i)):(r.path===""?(i.path=t.path,r.query||(i.query=t.query)):Xe(r.path,"/")?i.path=Sr(r.path):i.path=Sr(Kp(t,r.path)),Xa(i))}var br=new Map,Fp=200;function bo(n){var r,i,o,a,s;if(br.has(n))return br.get(n);let e=n.match(Up),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},br.size>=Fp&&br.clear(),br.set(n,t),t}function Xa(n){let e="";return n.scheme&&(e+=n.scheme+":"),n.authority&&(e+="//"+n.authority),e+=n.path,n.query&&(e+="?"+n.query),n.fragment&&(e+="#"+n.fragment),e}function Sr(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Kp(n,e){if(n.authority&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function cn(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=Bp(a,s),u=e.slice(2);return cn(d,...u)}}var Vp=4,_r=class{constructor(e){var t,r;this._sessionId=(t=e.sessionId)!=null?t:Io(),this._contentId=(r=e.contentId)!=null?r:Io(),this._typePreference=e.communicationType==="headers"?0:1,this._bufferStarvationToggle=!1,this._playbackObserver=null,this._lastThroughput={},this._canceller=null}startMonitoringPlayback(e){var t;(t=this._canceller)==null||t.cancel(),this._canceller=new B,this._playbackObserver=e,e.listen(r=>{r.rebuffering!==null&&(this._bufferStarvationToggle=!0)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}stopMonitoringPlayback(){var e;(e=this._canceller)==null||e.cancel(),this._canceller=null,this._playbackObserver=null}updateThroughput(e,t){this._lastThroughput[e]=t}_getCommonCmcdData(e){var i;let t={};t.bs=this._bufferStarvationToggle,this._bufferStarvationToggle=!1,t.cid=this._contentId,t.mtp=e!==void 0?Math.floor(Math.round(e/1e3/100)*100):void 0,t.sid=this._sessionId;let r=(i=this._playbackObserver)==null?void 0:i.getReference().getValue();return t.pr=r===void 0||r.speed===1?void 0:r.speed,r!==void 0&&(t.su=r.rebuffering!==null),t}getCmcdDataForManifest(e){var r;let t=this._getCommonCmcdData((r=this._lastThroughput.video)!=null?r:this._lastThroughput.audio);switch(t.ot="m",e){case"dash":t.sf="d";break;case"smooth":t.sf="s";break;default:t.sf="o";break}return this._producePayload(t)}getCmcdDataForSegmentRequest(e){var a,s,d,u;let t=(a=this._playbackObserver)==null?void 0:a.getReference().getValue(),r=this._getCommonCmcdData(this._lastThroughput[e.adaptation.type]);switch(r.br=Math.round(e.representation.bitrate/1e3),r.d=Math.round(e.segment.duration*1e3),e.adaptation.type){case"video":r.ot="v";break;case"audio":r.ot="a";break;case"text":r.ot="c";break}if(e.segment.isInit&&(r.ot="i"),!_(e.nextSegment)&&e.segment.url!==null&&e.nextSegment.url!==null&&(!e.nextSegment.isInit||e.nextSegment.indexRange===void 0)){let l=e.segment.url,c=e.nextSegment.url,f=ec(l,c);f!==null&&(f!=="."&&(r.nor=encodeURIComponent(f)),e.nextSegment.range!==void 0&&(r.nrr=String(e.nextSegment.range[0])+"-",isFinite(e.nextSegment.range[1])&&(r.nrr+=String(e.nextSegment.range[1]))))}let i;if(t!==void 0&&(r.ot==="v"||r.ot==="a"||r.ot==="av")){let l=t.buffered[e.adaptation.type];if(!_(l)){let c=(u=(d=(s=this._playbackObserver)==null?void 0:s.getCurrentTime())!=null?d:t.position.getWanted())!=null?u:t.position.getPolled();for(let f of l)if(c>=f.start&&c<f.end){i=(f.end-c)*1e3,r.bl=Math.floor(Math.round(i/100)*100);break}}}let o=i===void 0||t===void 0?void 0:i/t.speed;if(r.dl=o===void 0?void 0:Math.floor(Math.round(o/100)*100),o!==void 0){let c=e.representation.bitrate*e.segment.duration/1e3/(o/1e3);r.rtp=Math.floor(Math.round(c*Vp/100)*100)}switch(e.manifest.transport){case"dash":r.sf="d";break;case"smooth":r.sf="s";break;default:r.sf="o";break}return r.st=e.manifest.isDynamic?"l":"v",r.tb=e.adaptation.representations.reduce((l,c)=>c.isSupported!==!0||c.decipherable===!1?l:l===void 0?Math.round(c.bitrate/1e3):Math.max(l,Math.round(c.bitrate/1e3)),void 0),this._producePayload(r)}_producePayload(e){let t={object:"",request:"",session:"",status:""},r="",i=(u,l)=>{this._typePreference===0?t[l]+=u:r+=u},o=(u,l)=>{let c=e[u];if(c!==void 0){let f=`${u}=${String(c)},`;i(f,l)}},a=(u,l)=>{if(e[u]===!0){let c=`${u},`;i(c,l)}},s=(u,l)=>{let c=e[u];if(c!==void 0){let g=`prop=${`"${c.replace("\\","\\\\").replace('"','\\"')}"`},`;i(g,l)}},d=(u,l)=>{let c=e[u];if(c!==void 0){let f=`prop=${c},`;i(f,l)}};return o("bl","request"),o("br","object"),a("bs","status"),s("cid","session"),o("d","object"),o("dl","request"),o("mtp","request"),s("nor","request"),s("nrr","request"),d("ot","object"),o("pr","session"),o("rtp","status"),d("sf","session"),s("sid","session"),d("st","session"),a("su","request"),o("tb","object"),this._typePreference===0?(t.object[t.object.length-1]===","&&(t.object=t.object.substring(0,t.object.length-1)),t.request[t.request.length-1]===","&&(t.request=t.request.substring(0,t.request.length-1)),t.session[t.session.length-1]===","&&(t.session=t.session.substring(0,t.session.length-1)),t.status[t.status.length-1]===","&&(t.status=t.status.substring(0,t.status.length-1)),m.debug("CMCD: proposing headers payload"),{type:"headers",value:{"CMCD-Object":t.object,"CMCD-Request":t.request,"CMCD-Session":t.session,"CMCD-Status":t.status}}):(r[r.length-1]===","&&(r=r.substring(0,r.length-1)),r=encodeURIComponent(r),m.debug("CMCD: proposing query string payload",r),{type:"query",value:[["CMCD",r]]})}};var tc=_r;var nt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Ee=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},Be={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var Za=typeof Headers=="function"?Headers:null,Ja=typeof AbortController=="function"?AbortController:null;function So(n){var f,g;let e;if(!_(n.headers))if(_(Za))e=n.headers;else{e=new Za;let p=Object.keys(n.headers);for(let I=0;I<p.length;I++){let y=p[I];e.append(y,n.headers[y])}}m.debug("Fetch: Called with URL",n.url);let t=null,r=!1,i=!1,o=K(),a=_(Ja)?null:new Ja;function s(){if(_(a)){m.warn("Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let l=n.cancelSignal.register(function(I){t=I,s()}),c={method:"GET"};if(e!==void 0&&(c.headers=e),c.signal=_(a)?null:a.signal,m.hasLevel("DEBUG")){let p="FETCH: Sending GET "+n.url;n.timeout!==void 0&&(p+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(p+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(p+=" Range="+((g=n.headers)==null?void 0:g.Range)),m.debug(p)}return fetch(n.url,c).then(p=>{if(u!==void 0&&clearTimeout(u),p.status>=300)throw m.warn("Fetch: Request HTTP Error",p.status,p.url),new Ee(p.url,p.status,Be.ERROR_HTTP_CODE);if(_(p.body))throw new Ee(p.url,p.status,Be.PARSE_ERROR);let I=p.headers.get("Content-Length"),y=!_(I)&&!isNaN(+I)?+I:void 0,b=p.body.getReader(),T=0;return v();async function v(){let E=await b.read();if(!E.done&&!_(E.value)){T+=E.value.byteLength;let R=K(),k={url:p.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:E.value.byteLength,chunk:E.value.buffer,size:T,totalSize:y};return n.onData(k),v()}else if(E.done){d!==void 0&&clearTimeout(d),l();let R=K();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:p.status,url:p.url}}return v()}}).catch(p=>{throw t!==null?t:(l(),r?(m.warn("Fetch: Request timed out."),new Ee(n.url,0,Be.TIMEOUT)):i?(m.warn("Fetch: Request connection timed out."),new Ee(n.url,0,Be.TIMEOUT)):p instanceof Ee?p:(m.warn("Fetch: Request Error",p instanceof Error?p.toString():""),new Ee(n.url,0,Be.ERROR_EVENT)))})}function Er(){return typeof te.fetch=="function"&&!_(Ja)&&!_(Za)}function w(n){return typeof n=="string"&&n.length>0}var zp="json";function es(n){let e={url:n.url,headers:n.headers,responseType:_(n.responseType)?zp:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:l}=e,c=new XMLHttpRequest;c.open("GET",a,!0);let f;u!==void 0&&(c.timeout=u,f=setTimeout(()=>{y(),r(new Ee(a,c.status,Be.TIMEOUT))},u+3e3));let g;if(l!==void 0&&(g=setTimeout(()=>{y(),c.readyState!==XMLHttpRequest.DONE&&c.abort(),r(new Ee(a,c.status,Be.TIMEOUT))},l)),c.responseType=d,c.responseType==="document"&&c.overrideMimeType("text/xml"),!_(s)){let b=s;for(let T in b)b.hasOwnProperty(T)&&c.setRequestHeader(T,b[T])}let p=K(),I=null;if(o!==void 0&&(I=o.register(function(T){y(),c.readyState!==XMLHttpRequest.DONE&&c.abort(),r(T)}),o.isCancelled()))return;if(c.onerror=function(){y(),r(new Ee(a,c.status,Be.ERROR_EVENT))},c.ontimeout=function(){y(),r(new Ee(a,c.status,Be.TIMEOUT))},l!==void 0&&(c.onreadystatechange=function(){c.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(g)}),i!==void 0&&(c.onprogress=function(T){let v=K();i({url:a,duration:v-p,sendingTime:p,currentTime:v,size:T.loaded,totalSize:T.total})}),c.onload=function(T){if(c.readyState===XMLHttpRequest.DONE)if(y(),c.status>=200&&c.status<300){let v=K(),E=c.response instanceof ArrayBuffer?c.response.byteLength:T.total,R=c.status,k=c.responseType,x=w(c.responseURL)?c.responseURL:a,M;if(k==="json"?M=typeof c.response=="object"?c.response:Hp(c.responseText):M=c.response,_(M)){r(new Ee(a,c.status,Be.PARSE_ERROR));return}t({status:R,url:x,responseType:k,sendingTime:p,receivedTime:v,requestDuration:v-p,size:E,responseData:M})}else r(new Ee(a,c.status,Be.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let b="XHR: Sending GET "+a;n.responseType!==void 0&&(b+=" type="+n.responseType),u!==void 0&&(b+=" to="+String(u/1e3)),l!==void 0&&(b+=" cto="+String(l/1e3)),(s==null?void 0:s.Range)!==void 0&&(b+=" Range="+(s==null?void 0:s.Range)),m.debug(b)}c.send();function y(){f!==void 0&&clearTimeout(f),g!==void 0&&clearTimeout(g),I!==null&&I()}})}function Hp(n){try{return JSON.parse(n)}catch(e){return null}}var Te=es;var fn=Be,Ze={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},ts={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE"};function lt(n,e){return`${n}: ${e}`}var pe=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=Ze.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,typeof(r==null?void 0:r.keyStatuses)=="string"&&(this.keyStatuses=r.keyStatuses)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses}}};var ee=class n extends Error{constructor(e,t,r){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=Ze.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var rt=class n extends Error{constructor(e,t){super(lt(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=Ze.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===fn.ERROR_HTTP_CODE&&this.status===e}serialize(){return{name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var De=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=Ze.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{name:this.name,code:this.code,reason:this._originalMessage}}};function Wt(n){return(n instanceof pe||n instanceof ee||n instanceof De||n instanceof rt)&&Object.keys(Ze).indexOf(n.type)>=0}function we(n,{defaultCode:e,defaultReason:t}){if(Wt(n))return n;let r=n instanceof Error?n.toString():t;return new De(e,r)}var it=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var Wp={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},nc=Wp;var Gp={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},rc=Gp;function qp(n){if(_(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=jp(t);return w(r)?r:n}function jp(n){let e;switch(n.length){case 2:e=nc[n];break;case 3:e=rc[n];break}return e}var ic=qp;var vr=ic;function ge(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}function Je(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var Yp=Je(),ns=class{constructor(e,t,r){var o,a,s,d,u;this.id=e.id,this.uniqueId=Yp(),this.bitrate=e.bitrate,this.codecs=[],this.trackType=t,e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index;let i=this.contentProtections!==void 0;if(t==="audio"||t==="video"){if(e.supplementalCodecs!==void 0){let l=r.isSupported((o=this.mimeType)!=null?o:"",(a=e.supplementalCodecs)!=null?a:"",i);l!==!1&&(this.codecs=[e.supplementalCodecs],this.isSupported=l)}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((s=e.codecs)!=null?s:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=r.isSupported((d=this.mimeType)!=null?d:"",(u=e.codecs)!=null?u:"",i)))}else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var s,d;if(this.isSupported!==void 0)return;let t=this.contentProtections!==void 0,r=!1,i=(s=this.mimeType)!=null?s:"",o=(d=this.codecs)!=null?d:[];o.length===0&&(o=[""]);let a=!1;for(let u of o){if(r=e.isSupported(i,u,t),r===!0){this.codecs=[u];break}r===void 0&&(a=!0)}r===!0?this.isSupported=!0:a?this.isSupported=void 0:this.isSupported=!1}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i;let t=this.getAllEncryptionData(),r=[];for(let o=0;o<t.length;o++){let a=!1,s=t[o];for(let d=0;d<s.values.length;d++)if(s.values[d].systemId.toLowerCase()===e.toLowerCase())if(a)r[r.length-1].values.push(s.values[d]);else{let u=(i=this.contentProtections)==null?void 0:i.keyIds;r.push({type:s.type,keyIds:u,values:[s.values[d]]}),a=!0}}return r}getAllEncryptionData(){var t;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(t=this.contentProtections)==null?void 0:t.keyIds;return this.contentProtections.initData.map(r=>({type:r.type,keyIds:e,values:r.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[t]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[t];else{let s=!1;for(let d of a)ge(d,t)&&(s=!0);s||(m.warn("Manifest: found unanounced key id."),a.push(t))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],l;for(l=0;l<s.length;l++)if(u.systemId===s[l].systemId){if(ge(u.data,s[l].data))break;m.warn("Manifest: different init data for the same system ID")}l===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable}}},oc=ns;var Rr=class n{constructor(e,t,r={}){let{trickModeTracks:i}=e,{representationFilter:o,isManuallyAdded:a}=r;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=vr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),i!==void 0&&i.length>0&&(this.trickModeTracks=i.map(u=>new n(u,t)));let s=e.representations,d=[];this.supportStatus={hasSupportedCodec:!1,hasCodecWithUndefinedSupport:!1,isDecipherable:!1};for(let u=0;u<s.length;u++){let l=new oc(s[u],this.type,t),c=!0;if(!_(o)){let f={id:l.id,bitrate:l.bitrate,codecs:l.codecs,height:l.height,width:l.width,frameRate:l.frameRate,hdrInfo:l.hdrInfo};if(l.contentProtections!==void 0&&(f.contentProtections={},l.contentProtections.keyIds!==void 0)){let g=l.contentProtections.keyIds;f.contentProtections.keyIds=g}c=o(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}c?(d.push(l),l.isSupported===void 0?(this.supportStatus.hasCodecWithUndefinedSupport=!0,this.supportStatus.hasSupportedCodec===!1&&(this.supportStatus.hasSupportedCodec=void 0)):l.isSupported&&(this.supportStatus.hasSupportedCodec=!0),l.decipherable===void 0?this.supportStatus.isDecipherable===!1&&(this.supportStatus.isDecipherable=void 0):l.decipherable&&(this.supportStatus.isDecipherable=!0)):m.debug("Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${l.id}`,`(${l.bitrate})`)}d.sort((u,l)=>u.bitrate-l.bitrate),this.representations=d,this.manuallyAdded=a===!0}refreshCodecSupport(e){let t=!1,r=!1;for(let i of this.representations)i.refreshCodecSupport(e),i.isSupported===void 0?t=!0:i.isSupported&&(r=!0);r?this.supportStatus.hasSupportedCodec=!0:t?this.supportStatus.hasSupportedCodec=void 0:this.supportStatus.hasSupportedCodec=!1,this.supportStatus.hasCodecWithUndefinedSupport=t}getRepresentation(e){return Z(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,supportStatus:this.supportStatus,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function rs(){return sn}function mn(n){return new Promise(e=>{setTimeout(e,n)})}function is(){return dr}function kr(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("Compat: MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("Compat: Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("Compat: Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return is()?r:Promise.race([r,mn(1e3)])}var os=new WeakMap,Fe={setState(n,e){os.set(n,e)},getState(n){let e=os.get(n);return e===void 0?null:e},clearState(n){os.set(n,null)}};async function Dn(n){let e=Fe.getState(n);if(e===null)return;m.info("DRM: Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e;return Fe.clearState(n),await t.closeAllSessions(),kr(e.emeImplementation,n,null)}function To(n){if(m.info("DRM: Clearing-up DRM session."),rs())return m.info("DRM: disposing current MediaKeys."),Dn(n);let e=Fe.getState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM: closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM: Nothing to clear. Returning right away. No state =",e===null),Promise.resolve())}function ot(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function Gt(n,e){return ot(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function _o(n){let e=new B;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await Gt(1e3,e.signal),await r()}catch(i){if(i instanceof Me)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error(`DRM: ${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await Gt(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var $p=["","webkit","moz","ms"];function Qp(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function Xp(n,e){return e.filter(t=>Qp(n,t))[0]}function Zp(n,e){return n.reduce((t,r)=>t.concat((e===void 0?$p:e).map(i=>i+r)),[])}function _e(n,e){let t,r=Zp(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=Xp(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{h.CURRENT_ENV===h.DEV&&m.warn(`compat: element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function Jp(n){let e,t=document;_(t.hidden)?_(t.mozHidden)?_(t.msHidden)?_(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new G(!o,n);return pn(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function ac(n,e){if(n.webkitSupportsPresentationMode===!0&&typeof n.webkitSetPresentationMode=="function"){let i=n.webkitPresentationMode==="picture-in-picture",o=new G({isEnabled:i,pipWindow:null},e);return pn(n,"webkitpresentationmodechanged",()=>{let a=n.webkitPresentationMode==="picture-in-picture";o.setValue({isEnabled:a,pipWindow:null})},e),o}let t=document.pictureInPictureElement===n,r=new G({isEnabled:t,pipWindow:null},e);return pn(n,"enterpictureinpicture",i=>{var o;r.setValue({isEnabled:!0,pipWindow:(o=i.pictureInPictureWindow)!=null?o:null})},e),pn(n,"leavepictureinpicture",()=>{r.setValue({isEnabled:!1,pipWindow:null})},e),r}function sc(n,e){let t=Jp(e),r,i=new G(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=U.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function dc(n){var o,a;let e=_(te.devicePixelRatio)||te.devicePixelRatio===0?1:te.devicePixelRatio,t=new G({width:(o=te.screen)==null?void 0:o.width,height:(a=te.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function uc(n,e,t){let r=_(te.devicePixelRatio)||te.devicePixelRatio===0?1:te.devicePixelRatio,i=new G({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=X;e.onUpdate(s,{clearSignal:t}),pn(te,"resize",s,t),pn(n,"enterpictureinpicture",s,t),pn(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(_(u)){let c=i.getValue();(c.width!==void 0||c.height!==void 0||c.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let c=()=>{l()};u.addEventListener("resize",c),o=()=>{u.removeEventListener("resize",c),o=X},l()}else{let c=i.getValue();(c.width!==n.clientWidth||c.height!==n.clientHeight||c.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function l(){let c=i.getValue();(c.width!==(u==null?void 0:u.width)||c.height!==(u==null?void 0:u.height)||c.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var Vk=_e(["loadedmetadata"]),zk=_e(["timeupdate"]),Hk=_e(["addtrack"]),Wk=_e(["removetrack"]),Ln=_e(["sourceopen","webkitsourceopen"]),Eo=_e(["sourceclose","webkitsourceclose"]),vo=_e(["sourceended","webkitsourceended"]),lc=_e(["update"]),cc=_e(["removesourcebuffer"]),Ro=_e(["keymessage","message"]),fc=_e(["keyadded","ready"]),ko=_e(["keyerror","error"]),mc=_e(["keystatuseschange"]),pc=_e(["seeking"]),gc=_e(["seeked"]),hc=_e(["ended"]);function pn(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}var ct,{WebKitMediaKeys:Co}=te;Co!==void 0&&typeof Co.isTypeSupported=="function"&&typeof Co.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function"&&(ct=Co);function as(){return(Na||un)&&ct!==void 0}var Cr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function Et(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var vt,{MSMediaKeys:Pr}=te;Pr!==void 0&&Pr.prototype!==void 0&&typeof Pr.isTypeSupported=="function"&&typeof Pr.prototype.createSession=="function"&&(vt=Pr);var ss=class extends oe{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new B,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t())}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Ro(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),fc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),ko(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{_(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Po=class{constructor(e){if(vt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new vt(e)}_setVideo(e){return Et(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new ss(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function ds(){return{isTypeSupported:(r,i)=>{if(vt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?vt.isTypeSupported(r,i):vt.isTypeSupported(r)},createCustomMediaKeys:r=>new Po(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Po))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var qt,{MozMediaKeys:Mr}=te;Mr!==void 0&&Mr.prototype!==void 0&&typeof Mr.isTypeSupported=="function"&&typeof Mr.prototype.createSession=="function"&&(qt=Mr);function us(){return{isTypeSupported:(r,i)=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?qt.isTypeSupported(r,i):qt.isTypeSupported(r)},createCustomMediaKeys:r=>{if(qt===void 0)throw new Error("No MozMediaKeys API.");return new qt(r)},setMediaKeys:(r,i)=>Et(()=>{if(r.mozSetMediaKeys===void 0||typeof r.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return r.mozSetMediaKeys(i)})}}var Rt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],yc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Mo(n){if(n>=yc.length)throw new Error("Unable to parse base64 string.");let e=yc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function Ao(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2|n[t]>>6],e+=Rt[n[t]&63];return t===r+1&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Rt[n[t-2]>>2],e+=Rt[(n[t-2]&3)<<4|n[t-1]>>4],e+=Rt[(n[t-1]&15)<<2],e+="="),e}function ft(n){let e=n.length%4,t=n;e!==0&&(m.warn("base64ToBytes: base64 given miss padding"),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Mo(t.charCodeAt(d))<<18|Mo(t.charCodeAt(d+1))<<12|Mo(t.charCodeAt(d+2))<<6|Mo(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}var bc=typeof te=="object"&&typeof te.TextDecoder=="function",tg=typeof te=="object"&&typeof te.TextEncoder=="function";function xo(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function wo(n){if(bc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"";m.warn("Utils: could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function ve(n){if(tg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function ng(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function Ic(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function Le(n){if(bc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"";m.warn("Utils: could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=ng(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_\+-\.\/]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+Ic(a,4):"%"+Ic(a,2)}}return decodeURIComponent(r)}function qe(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Ne(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Oo(n){J(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function ls(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:Le(r)}}function fs(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var cs=class extends oe{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=X,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i()}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=e instanceof ArrayBuffer?new Uint8Array(e):e,o=JSON.parse(Le(i)),a=ft(o.keys[0].k),s=ft(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Do=class{constructor(e){this._keySystem=e}_setVideo(e){return Et(()=>{if(!fs(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(_(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new cs(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function ms(){return{isTypeSupported:function(r){let i=document.querySelector("video");return _(i)&&(i=document.createElement("video")),!_(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Do(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Do))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function re(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Lo(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function ps(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function ne(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function Ke(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function fe(n){return new Uint8Array([n>>>8&255,n&255])}function Ie(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function jt(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Sc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Tc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function _c(n){return new Uint8Array([n&255,n>>>8&255])}function Ar(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function gs(n,e){let t=n instanceof Uint8Array?n:new Uint8Array(n),r=e instanceof Uint8Array?e:new Uint8Array(e);if(Tc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=wo(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=xo(s),u=0,l=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return l.set(t),u+=t.length,l.set(Ar(d.byteLength),u),u+=4,l.set(d,u),u+=d.byteLength,l.set(Ar(r.byteLength),u),u+=4,l.set(r,u),l}function rg(n){return Xe(n,"com.apple.fps")}function Ec(n,e){return Et(()=>{if(n.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");n.webkitSetMediaKeys(e)})}var hs=class extends oe{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=X,this._closeSession=X,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i;e instanceof ArrayBuffer?i=new Uint8Array(e):e instanceof Uint8Array?i=e:i=new Uint8Array(e.buffer),t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(rg(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=gs(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession(),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},No=class{constructor(e){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new ct(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Ec(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new hs(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve()}};function Uo(){if(ct===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:ct.isTypeSupported,createCustomMediaKeys:r=>new No(r),setMediaKeys:(r,i)=>{if(i===null)return Ec(r,i);if(!(i instanceof No))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return i._setVideo(r)}}}var ig=og("auto"),Rc=ig;function og(n){var o;let e,t,r=ag,i;if((n==="standard"||n==="auto"&&!as())&&(Kt||!_(navigator.requestMediaKeySystemAccess)))e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=_e(["encrypted"]),i="standard";else{let a,s;if(n==="webkit"&&ct!==void 0){let d=Uo();t=vc(),a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(fs((o=te.HTMLVideoElement)==null?void 0:o.prototype)){t=_e(["needkey"]);let d=ms();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(ct!==void 0){t=vc();let d=Uo();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(sn&&vt!==void 0){t=_e(["encrypted","needkey"]);let d=ds();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(qt!==void 0){t=_e(["encrypted","needkey"]);let d=us();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=_e(["encrypted","needkey"]);let d=te.MediaKeys,u=()=>{if(d===void 0)throw new ee("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let l="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(l)}};a=l=>(u(),J(typeof d.isTypeSupported=="function"),d.isTypeSupported(l)),s=l=>(u(),new d(l)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let l=0;l<u.length;l++){let c=u[l],{videoCapabilities:f,audioCapabilities:g,initDataTypes:p,distinctiveIdentifier:I}=c,y=!0;if(y=y&&(_(p)||p.some(b=>b==="cenc")),y=y&&I!=="required",y){let b={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(b.videoCapabilities=f),g!==void 0&&(b.audioCapabilities=g);let T=s(d);return Promise.resolve(new Cr(d,T,b))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function vc(){let n=_e(["needkey"],void 0);return(t,r,i)=>{n(t,o=>{let a=j(o,{forceSessionRecreation:!0});r(a)},i)}}function ag(n,e){try{let t;return typeof n.setMediaKeys=="function"?t=n.setMediaKeys(e):typeof n.webkitSetMediaKeys=="function"?t=n.webkitSetMediaKeys(e):typeof n.mozSetMediaKeys=="function"?t=n.mozSetMediaKeys(e):typeof n.msSetMediaKeys=="function"&&e!==null&&(t=n.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function yt(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=ne(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=Ke(n,r+8)}if(isNaN(i)||i<=0)return-1;if(ne(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function Bo(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=yt(r,1836019558);if(i<0)break;let o=ne(n,i+e),a=e+i+o;if(a>n.length)break;let s=yt(r,1835295092);if(s<0)break;let d=ne(n,s+e),u=e+s+d;if(u>n.length)break;let l=Math.max(a,u),c=n.subarray(e,l);t.push(c),e=l}return t.length===0?[null,r]:[t,r]}function sg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function dg(n,e,t){return n.slice(e,t)}var ys=typeof Uint8Array.prototype.slice=="function"?dg:sg;function Is(n,e){let t=n;for(let r of e){let i=Re(t,r);if(i===null)return null;t=i}return t}function Re(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[1],t[2]):null}function kc(n,e){let t=[],r=n;for(;;){let i=Ve(r,e);if(i===null)return t;J(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function bs(n,e){let t=Ve(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ve(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=ne(n,a),a+=4,i=ne(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=Ke(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function gn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=ne(n,d),d+=4;let u=ne(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=Ke(n,d),d+=8}if(u===1970628964&&d+16<=o&&ne(n,d)===e&&ne(n,d+4)===t&&ne(n,d+8)===r&&ne(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function Ss(n){let e=n.length;if(e<8)return m.warn("ISOBMFF: box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=ne(n,t);t+=4;let i=ne(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("ISOBMFF: box too short, cannot find offsets"),null;r=Ke(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function Fo(n){let e=0,t=Re(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ve(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=ys(t,i[0],i[2]),a=Ko(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function Ko(n,e){if(n[e]>1){m.warn("ISOBMFF: un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=ys(n,t,t+16);return Ne(r)}var xr=Math.pow(2,32)-1;var Ts={};function Cc(n){if(Ts[n]!==void 0)return Ts[n];let e=ve(n);return Ts[n]=e,e}function ue(n,e){let t=e.length+8;return t<=xr?re(Ie(t),Cc(n),e):re(Ie(1),Cc(n),jt(t+8),e)}function Ae(n,e){return ue(n,re(...e))}function wr(n){let e=Re(n,1836019558);return e===null?null:Re(e,1953653094)}function Pc(n){return kc(n,1836019558).reduce((t,r)=>{let i=Re(r,1953653094);return i!==null&&t.push(i),t},[])}function Or(n){return Re(n,1835295092)}function _s(n){let e=Re(n,1836019574);if(e===null)return null;let t=Re(e,1953653099);return t===null?null:Re(t,1835297121)}function Mc(n,e=0){return Re(n.subarray(e),1701671783)}function Dr(n){let e=Sc(n,8),t=wo(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Oo(ft(o));return Ne(a).toLowerCase()}function Lr(n,e){let t=Ve(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=ne(n,o);o+=4;let d;if(a===0)d=ne(n,o),o+=4,r+=ne(n,o)+i,o+=4;else if(a===1)d=Ke(n,o),o+=8,r+=Ke(n,o)+i,o+=8;else return null;let u=[];o+=2;let l=Lo(n,o);for(o+=2;--l>=0;){let c=ne(n,o);o+=4;let f=(c&2147483648)>>>31,g=c&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let p=ne(n,o);o+=4,o+=4,u.push({time:d,duration:p,timescale:s,range:[r,r+g-1]}),d+=p,r+=g}return u}function Es(n){let e=wr(n);if(e===null)return;let t=Re(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return Ke(t,4);if(r===0)return ne(t,4)}function ug(n){let e=Re(n,1952868452);if(e===null)return;let t=1,r=ps(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),ne(e,t)):void 0}function Nr(n){let e=Pc(n);if(e.length===0)return;let t=0;for(let r of e){let i=Re(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=ps(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=ug(r),u===void 0))return;let l=(s&1)>0,c=(s&4)>0,f=(s&512)>0,g=(s&1024)>0,p=(s&2048)>0,I=ne(i,o);o+=4,l&&(o+=4),c&&(o+=4);let y=I,b=0;for(;y-- >0;)d?(b+=ne(i,o),o+=4):b+=u,f&&(o+=4),g&&(o+=4),p&&(o+=4);t+=b}return t}function Ur(n){let e=_s(n);if(e===null)return;let t=Re(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return ne(t,r+16);if(i===0)return ne(t,r+8)}function vs(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=ne(n,0);if(t===0)if(e>xr){let r=new Uint8Array(e+8);return r.set(Ie(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(Ie(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(jt(e),8),n}else{if(e<=xr)return n.set(Ie(e),0),n;{let r=new Uint8Array(e+8);return r.set(Ie(1),0),r.set(n.subarray(4,8),4),r.set(jt(e+8),8),r.set(n.subarray(8,e),16),r}}}function Ac(n){let e=[],t=0;for(;t<n.length;){let r=Mc(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("ISOBMFF: EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=ls(r,a);a=s;let{end:u,string:l}=ls(r,a);a=u;let c=ne(r,a);a+=4;let f=ne(r,a);a+=4;let g=ne(r,a);a+=4;let p=ne(r,a);a+=4;let I=r.subarray(a,i),y={schemeIdUri:d,value:l,timescale:c,presentationTimeDelta:f,eventDuration:g,id:p,messageData:I};e.push(y)}}if(e.length!==0)return e}function xc(n){let e=Is(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Re(t,1701733238),i=0;if(r===null?(i=28,r=Re(t,1701733217)):i=78,r===null)return null;let o=Is(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var Vo=ne(ve("pssh"),0);function lg(n){m.info("Compat: Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||ne(n,i+4)!==Vo)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=ne(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=Ss(a),d=s===null?void 0:a[s[1]];m.info("Compat: CENC PSSH found with version",d),d===void 0?m.warn("Compat: could not read version of CENC PSSH"):e===(d===1)?t=re(t,a):d===1?(m.warn("Compat: cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("Compat: filtering out cenc pssh box with wrong version",d)}else r=re(r,a);i+=o}if(i!==n.length)throw m.warn("Compat: unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return re(r,t)}function Br(n,e,t){m.debug("Compat: Calling generateRequest on the MediaKeySession");let r;try{r=lg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn('Compat: error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function cg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||ne(n,t+4)!==Vo)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=ne(new Uint8Array(n),t);if(t+r>n.length)return m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:Ko(i,8),data:i};fg(e,a)?m.warn("Compat: Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("Compat: Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function fg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&ge(e.data,r.data))return!0}return!1}function zo(n){let{initData:e,initDataType:t,forceSessionRecreation:r}=n;if(_(e))return m.warn("Compat: No init data found on media encrypted event."),null;let i=new Uint8Array(e),o=cg(i);return{type:t,values:o,forceSessionRecreation:r}}var mg=100;async function Fr(n,e){m.info("DRM: Load persisted session",e);let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,mg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var It=Rc;function Q(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}function wc(n){var t;let e=Fe.getState(n);return Fe.setState(n,null),kr((t=e==null?void 0:e.emeImplementation)!=null?t:It,n,null)}async function Rs(n,{emeImplementation:e,keySystemOptions:t,askedConfiguration:r,loadedSessionsStore:i,mediaKeySystemAccess:o,mediaKeys:a},s){let d=Fe.getState(n);if(await(d!==null&&d.loadedSessionsStore!==i?d.loadedSessionsStore.closeAllSessions():Promise.resolve()),s.isCancelled())throw s.cancellationError;if(Fe.setState(n,{emeImplementation:e,keySystemOptions:t,mediaKeySystemAccess:o,mediaKeys:a,loadedSessionsStore:i,askedConfiguration:r}),n.mediaKeys!==a)return m.info("DRM: Attaching MediaKeys to the media element"),kr(e,n,a).then(()=>{m.info("DRM: MediaKeys attached with success")}).catch(l=>{let c=l instanceof Error?l.toString():"Unknown Error";throw new pe("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+c)})}function Kr(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM: isSessionUsable: MediaKeySession given has an empty keyStatuses",n.sessionId),!1):Q(t,"expired")?(m.debug("DRM: isSessionUsable: MediaKeySession given has an expired key",n.sessionId),!1):Q(t,"internal-error")?(m.debug("DRM: isSessionUsable: MediaKeySession given has a key with an internal-error",n.sessionId),!1):(m.debug("DRM: isSessionUsable: MediaKeySession is usable",n.sessionId),!0)}function ks(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?Oc(i,e):o===null?(m.warn("DRM: Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),Oc(i,e)):pg(i,o,e,r)}function Oc(n,e){m.info("DRM: Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function pg(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM: No data stored for the loaded session"),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&Kr(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM: Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM: Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM: Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM: Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function Cs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM: LSS cache limit exceeded",e,n.getLength());let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ps(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,Kr(o))return m.info("DRM: Reuse loaded session",o.sessionId),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await Cs(a,r),i.cancellationError!==null))throw i.cancellationError;let u=await ks(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Ms(){return!dr&&!Fa&&!Ba&&!Va}function Dc(n){return!(ar&&n.indexOf("playready")!==-1)}var Lc='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function Nc(n){let e=xo(n),t=_c(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=Ar(e.length+6),a=re(o,i,r,t,e),s=qe("9a04f07998404286ab92e65be0885f95");return gg(a,s)}function gg(n,e){let t=ve("pssh"),r=new Uint8Array([0,0,0,0]),i=Ie(n.length),o=Ie(32+n.length);return re(o,t,r,e,i,n)}function As(){return sn}function hg(n,e){let{mimeType:t,codecs:r}=Ho(n),{mimeType:i,codecs:o}=Ho(e);if(t!==i||r===""||o==="")return!1;let a=r.split(".")[0];a=a==="hev1"?"hvc1":a;let s=o.split(".")[0];return s=s==="hev1"?"hvc1":s,a===s}var yg=7;function Ho(n){var i;let[e,...t]=n.split(";"),r=(i=Z(t,o=>Xe(o,"codecs=")))!=null?i:"";return r=r.substring(yg),r[0]==='"'&&(r=r.substring(1,r.length-2)),{mimeType:e,codecs:r}}var Wo=hg;function Nn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Ig(n,e,t,r){let i=t.getConfiguration();if(As()||_(i))return null;let o=n.filter(a=>!(a.type!==r.type||(!_(a.persistentLicenseConfig)||a.persistentState==="required")&&i.persistentState!=="required"||a.distinctiveIdentifier==="required"&&i.distinctiveIdentifier!=="required"))[0];return o!==void 0?{keySystemOptions:o,keySystemAccess:t,askedConfiguration:e}:null}function bg(n){let{EME_KEY_SYSTEMS:e}=U.getCurrent();for(let t of Object.keys(e))if(Q(e[t],n))return t}function Sg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i=["temporary"],o="optional",a="optional";_(r.persistentLicenseConfig)||(o="required",i.push("persistent-license")),_(r.persistentState)||(o=r.persistentState),_(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:l}=U.getCurrent(),c,f,{audioCapabilitiesConfig:g,videoCapabilitiesConfig:p}=r;if((g==null?void 0:g.type)==="full")c=g.value;else{let y;(g==null?void 0:g.type)==="robustness"?y=g.value:e==="widevine"?y=u:t==="com.microsoft.playready.recommendation"?y=l:y=[],y.length===0&&y.push(void 0);let b=(g==null?void 0:g.type)==="contentType"?g.value:s;c=Nn(y,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((p==null?void 0:p.type)==="full")f=p.value;else{let y;(p==null?void 0:p.type)==="robustness"?y=p.value:e==="widevine"?y=u:t==="com.microsoft.playready.recommendation"?y=l:y=[],y.length===0&&y.push(void 0);let b=(p==null?void 0:p.type)==="contentType"?p.value:d;f=Nn(y,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let I={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:c,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return g!==void 0?p!==void 0?[I]:[I,de(ie({},I),{videoCapabilities:void 0})]:p!==void 0?[I,de(ie({},I),{audioCapabilities:void 0})]:[I,de(ie({},I),{audioCapabilities:void 0,videoCapabilities:void 0})]}function Uc(n,e){var u,l,c,f,g,p;let t=(l=(u=n.audioCapabilities)==null?void 0:u.map(I=>I.contentType))!=null?l:[],r=(f=(c=n.videoCapabilities)==null?void 0:c.map(I=>I.contentType))!=null?f:[],i=t.concat(r).filter(I=>I!==void 0),o=(g=e.videoCapabilities)==null?void 0:g.map(I=>I.contentType),a=(p=e.audioCapabilities)==null?void 0:p.map(I=>I.contentType),s=[...o!=null?o:[],...a!=null?a:[]].filter(I=>I!==void 0);return s.length===0?[]:i.map(I=>{let{codecs:y,mimeType:b}=Ho(I),T=Q(s,I);return{codec:y,mimeType:b,result:T}})}function xs(n,e,t){m.info("DRM: Searching for compatible MediaKeySystemAccess");let r=Fe.getState(n);if(r!==null&&It.implementation===r.emeImplementation.implementation){let a=Ig(e,r.askedConfiguration,r.mediaKeySystemAccess,r.keySystemOptions);if(a!==null)return m.info("DRM: Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:a.keySystemAccess,askedConfiguration:a.askedConfiguration,options:a.keySystemOptions,codecSupport:Uc(a.askedConfiguration,a.keySystemAccess.getConfiguration())}})}let i=e.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=U.getCurrent(),u=d[s.type],l;if(!_(u))l=u.map(c=>({keyName:s.type,keyType:c,keySystemOptions:s}));else{let c=bg(s.type),f=s.type;l=[{keyName:c,keyType:f,keySystemOptions:s}]}return a.concat(l)},[]);return o(0);async function o(a){if(a>=i.length)throw new pe("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.");if(_(It.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,l=Sg(s);m.debug(`DRM: Request keysystem access ${d},${a+1} of ${i.length}`);let c;for(let f=0;f<l.length;f++){let g=l[f];try{return c=await Tg(d,[g]),m.info("DRM: Found compatible keysystem",d,a+1),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:c,askedConfiguration:g,codecSupport:Uc(g,c.getConfiguration())}}}catch(p){if(m.debug("DRM: Rejected access to keysystem",d,a+1,f),t.cancellationError!==null)throw t.cancellationError}}return o(a+1)}}async function Tg(n,e){let t=await It.requestMediaKeySystemAccess(n,e);if(!Dc(n))try{let i=(await t.createMediaKeys()).createSession(),o=Nc(Lc);await i.generateRequest("cenc",o)}catch(r){throw m.debug("DRM: KeySystemAccess was granted but it is not usable"),r}return t}function Un(n,e){for(let t of n)if(!e.some(i=>ge(i,t)))return!1;return!0}function Bc(n,e){for(let t of n)if(e.some(i=>ge(i,t)))return!0;return!1}var Vr=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(ge(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Un(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Un(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Un(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var zr=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new Vr(e);m.debug("DRM-LSS: calling `createSession`",t);let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return _(i.closed)||i.closed.then(()=>{m.info("DRM-LSS: session was closed, removing it.",i.sessionId);let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn(`DRM-LSS: MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ie({},o)),m.debug("DRM-LSS: MediaKeySession added",o.sessionType,this._storage.length),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM-LSS: Reusing session:",r.mediaKeySession.sessionId,r.sessionType),ie({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ie({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM-LSS: generateRequest error. No MediaKeySession found with the given initData and initDataType"),Br(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await Br(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),Fr(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await Fr(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM-LSS: No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM-LSS: Closing all current MediaKeySessions",e.length),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){J(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM-LSS: Removing session without closing it",e.sessionId),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),_g(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function _g(n){m.debug("DRM: Trying to close a MediaKeySession",n.sessionId);try{await _o(n),m.debug("DRM: Succeeded to close MediaKeySession");return}catch(e){m.error("DRM: Could not close MediaKeySession: "+(e instanceof Error?e.toString():"Unknown error"));return}}function Yt(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var at=class{constructor(e){this.initData=e}toJSON(){return Ao(this.initData)}static decode(e){return ft(e)}};function Bn(n,e){var t,r;return(r=(t=Fc(n,e))!=null?t:Fc(e,n))!=null?r:!1}function Fc(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=at.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=at.decode(o.data):s=o.data.initData,!ge(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let l;d.data instanceof Uint8Array?l=d.data:typeof d.data=="string"?l=at.decode(d.data):l=d.data.initData;let c;if(u.data instanceof Uint8Array?c=u.data:typeof u.data=="string"?c=at.decode(u.data):c=u.data.initData,!ge(l,c))return!1;break}if(r===e.length)return null}return!0}return null}function Eg(n){jl(n,{save:"function",load:"function"},"persistentLicenseConfig")}var Hr=class{constructor(e){Eg(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM-PSS: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(_(r)||!w(r.sessionId)){m.warn("DRM-PSS: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM-PSS: Updating session info.",i),this._entries.splice(o,1)}else m.info("DRM-PSS: Add new session",i);let a=vg(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new at(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM-PSS: initData to delete not found.");return}let r=this._entries[t];m.warn("DRM-PSS: Delete session from store",r.sessionId),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info(`DRM-PSS: Deleting last ${e} sessions.`),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM-PSS: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:Yt(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(e.keyIds!==void 0){if(e.keyIds.every(s=>{let d=Ao(s);for(let u of o.keyIds)if(typeof u=="string"){if(d===u)return!0}else if(ge(u.initData,s))return!0;return!1}))return i}else{let a=e.values.getFormattedValues();if(Bn(a,o.values))return i}break;case 3:{let a=e.values.getFormattedValues();if(Bn(a,o.values))return i;break}case 2:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s)try{let d=typeof o.initData=="string"?at.decode(o.initData):o.initData.initData;if(ge(d,a))return i}catch(d){m.warn("DRM-PSS: Could not decode initialization data.",d instanceof Error?d:"")}break}case 1:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s){if(typeof o.initData.length=="undefined")return i;if(ge(o.initData,a))return i}break}default:{let{initDataHash:a}=r();if(o.initData===a)return i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM-PSS: Could not save MediaKeySession information",t)}}};function vg(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new at(t)}))}var Go=new WeakMap,hn={prepare(n){Go.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=Yt(t);Go.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=Go.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=Go.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if(Yt(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function Rg(n){let{persistentLicenseConfig:e}=n;return _(e)?null:(m.debug("DRM: Set the given license storage"),new Hr(e))}async function ws(n,e,t){let r=await xs(n,e,t);if(t.cancellationError!==null)throw t.cancellationError;let{options:i,mediaKeySystemAccess:o,askedConfiguration:a,codecSupport:s}=r.value,d=Fe.getState(n),u=Rg(i);if(Ms()&&d!==null&&r.type==="reuse-media-key-system-access"){let{mediaKeys:f,loadedSessionsStore:g}=d;if(hn.hasOne(f)===!1||!_(i.serverCertificate)&&hn.has(f,i.serverCertificate))return{mediaKeys:f,mediaKeySystemAccess:o,askedConfiguration:a,stores:{loadedSessionsStore:g,persistentSessionsStore:u},options:i,codecSupport:s}}let l=await kg(o);m.info("DRM: MediaKeys created with success");let c=new zr(l);return{mediaKeys:l,mediaKeySystemAccess:o,askedConfiguration:a,stores:{loadedSessionsStore:c,persistentSessionsStore:u},options:i,codecSupport:s}}async function kg(n){m.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new pe("CREATE_MEDIA_KEYS_ERROR",t)}}async function Os(n,e,t){let r=await ws(n,e,t),{mediaKeys:i}=r;return n.mediaKeys!==null&&n.mediaKeys!==void 0&&i!==n.mediaKeys&&(m.debug("DRM: Disabling old MediaKeys"),await wc(n)),r}function Wr(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Ds(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(l){if(t.cancellationError!==null)throw t.cancellationError;if(!_(a)&&!a(l)||d++>=o)throw l;typeof s=="function"&&s(l,d);let c=Cg(r,d,i);return await mn(c),u()}}}function Cg(n,e,t){let r=n*Math.pow(2,e-1),i=Wr(r);return Math.min(i,t)}function Ls(n,e){return n.indexOf("playready")!==-1&&(zt||ar)?Oo(e):e}var Fn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Ns={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function Us(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((l,c)=>{let[f,g]=typeof l=="string"?[l,c]:[c,l],p=Ls(t,new Uint8Array(g)),I={keyId:p.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug(`DRM: key status update (${Ne(p)}): ${f}`),f){case Ns.EXPIRED:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Ne(p)})`,{keyStatuses:[I,...d]});if(o==="error"||o===void 0)throw y;switch(o){case"close-session":throw new Fn(y);case"fallback":a.push(p);break;default:o==="continue"||o===void 0?s.push(p):Qe(o);break}d.push(I);break}case Ns.INTERNAL_ERROR:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(r){case void 0:case"error":throw y;case"close-session":throw new Fn(y);case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(r!==void 0)Qe(r);else throw y}d.push(I);break}case Ns.OUTPUT_RESTRICTED:{let y=new pe("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(p)})`,{keyStatuses:[I,...d]});switch(i){case void 0:case"error":throw y;case"fallback":a.push(p);break;case"continue":s.push(p);break;default:if(i!==void 0)Qe(i);else throw y}d.push(I);break}default:s.push(p);break}});let u;return d.length>0&&(u=new pe("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Bs(n,e,t,r,i){m.info("DRM: Binding session events",n.sessionId);let{getLicenseConfig:o={}}=e,a=new B;a.linkToSignal(i),_(n.closed)||n.closed.then(()=>a.cancel()).catch(l=>{i.isCancelled()||(a.cancel(),r.onError(l))}),ko(n,l=>{a.cancel(),r.onError(new pe("KEY_ERROR",l.type))},a.signal),mc(n,()=>{m.info("DRM: keystatuseschange event received",n.sessionId);try{s()}catch(l){if(i.isCancelled()||a.isUsed()&&l instanceof lr)return;a.cancel(),r.onError(l)}},a.signal),Ro(n,l=>{let c=l,f=new Uint8Array(c.message),g=w(c.messageType)?c.messageType:"license-request";m.info(`DRM: Received message event, type ${g}`,n.sessionId);let p=u(o.retry);Ds(()=>d(f,g),p,a.signal).then(I=>{if(a.isUsed())return Promise.resolve();if(_(I))m.info("DRM: No license given, skipping session.update");else try{return Pg(n,I)}catch(y){a.cancel(),r.onError(y)}}).catch(I=>{if(a.isUsed())return;a.cancel();let y=Kc(I);if(!_(I)){let{fallbackOnLastTry:b}=I;if(b===!0){m.warn("DRM: Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new Kn(y));return}}r.onError(y)})},a.signal),m.info("DRM: transmitting current keystatuses",n.sessionId),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:l,blacklistedKeyIds:c,whitelistedKeyIds:f}=Us(n,e,t);l!==void 0&&(r.onWarning(l),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:c})}function d(l,c){let f;return new Promise((g,p)=>{try{m.debug("DRM: Calling `getLicense`",c);let b=e.getLicense(l,c),T=_(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{p(new Gr(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(b).then(I,y)}catch(b){y(b)}function I(b){f!==void 0&&clearTimeout(f),g(b)}function y(b){f!==void 0&&clearTimeout(f),p(b)}})}function u(l){return{totalRetry:l!=null?l:2,baseDelay:200,maxDelay:3e3,shouldRetry:c=>c instanceof Gr||_(c)||c.noRetry!==!0,onRetry:c=>r.onWarning(Kc(c))}}}function Kc(n){if(n instanceof Gr)return new pe("KEY_LOAD_TIMEOUT","The license server took too much time to respond.");let e=new pe("KEY_LOAD_ERROR","An error occured when calling `getLicense`.");return!_(n)&&w(n.message)&&(e.message=n.message),e}async function Pg(n,e){m.info("DRM: Updating MediaKeySession with message");try{await n.update(e)}catch(t){let r=t instanceof Error?t.toString():"`session.update` failed";throw new pe("KEY_UPDATE_ERROR",r)}m.info("DRM: MediaKeySession update succeeded.")}var Kn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},Gr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Kn.prototype),this.message=e}};async function Mg(n,e){try{return await n.setServerCertificate(e)}catch(t){m.warn("DRM: mediaKeys.setServerCertificate returned an error",t instanceof Error?t:"");let r=t instanceof Error?t.toString():"`setServerCertificate` error";throw new pe("LICENSE_SERVER_CERTIFICATE_ERROR",r)}}async function Fs(n,e){if(hn.hasOne(n)===!0)return m.info("DRM: The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM: Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM: Setting server certificate on the MediaKeys"),hn.prepare(n);try{let t=await Mg(n,e);return hn.set(n,e),{type:"success",value:t}}catch(t){return{type:"error",value:Wt(t)?t:new pe("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.")}}}function Ks(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM: Too many stored persistent sessions, removing some.",t,r),n.deleteOldSessions(r)}function Vs(n){if(Xe(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(Xe(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(Xe(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var qr=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return re(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Bn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=Ag(this._innerValues)),this._lazyFormattedValues}};function Ag(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:Yt(t)}))}function zs(n,e,t){let r=`${n};codecs="${e}"`,i=t.filter(o=>o.mimeType===n);if(i.length!==0)for(let{codec:o,mimeType:a,result:s}of i){let d=`${a};codecs="${o}"`;if(Wo(r,d))return s}}var jr=class extends oe{static hasEmeApis(){return!_(It.requestMediaKeySystemAccess)}constructor(e,t){super(),m.debug("DRM: Starting ContentDecryptor logic.");let r=new B;this._currentSessions=[],this._canceller=r,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this._supportedCodecWhenEncrypted=[],this.error=null,It.onEncrypted(e,i=>{m.debug("DRM: Encrypted event received from media element.");let o=zo(i);o!==null&&this.onInitializationData(o)},r.signal),Os(e,t,r.signal).then(i=>{let{options:o,mediaKeySystemAccess:a}=i;this._supportedCodecWhenEncrypted=i.codecSupport;let s;(_(o.persistentLicenseConfig)||o.persistentLicenseConfig.disableRetroCompatibility===!0)&&(s=Vs(a.keySystem)),this.systemId=s,this._stateData.state===0&&(this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:i,mediaElement:e}},this.trigger("stateChange",this._stateData.state))}).catch(i=>{this._onFatalError(i)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM: ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a,askedConfiguration:s}=t;if(r.disableMediaKeysAttachmentLock===!0&&(this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let u={emeImplementation:It,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,askedConfiguration:s,keySystemOptions:r};m.debug("DRM: Attaching current MediaKeys"),Rs(e,u,this._canceller.signal).then(async()=>{this._stateData.isMediaKeysAttached=2;let{serverCertificate:l}=r;if(!_(l)){let f=await Fs(i,l);f.type==="error"&&this.trigger("warning",f.value)}if(this._isStopped())return;let c=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},c!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(l=>{this._onFatalError(l)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}isCodecSupported(e,t){if(this._stateData.state===0){m.error("DRM: Asking for codec support while the ContentDecryptor is still initializing");return}return(this._stateData.state===3||this._stateData.state===4)&&m.error("DRM: Asking for codec support while the ContentDecryptor is disposed"),zs(e,t,this._supportedCodecWhenEncrypted)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=de(ie({},e),{values:new qr(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var I,y,b;m.hasLevel("DEBUG")&&m.debug("DRM: processing init data",(I=e.content)==null?void 0:I.adaptation.type,(y=e.content)==null?void 0:y.representation.bitrate,((b=e.keyIds)!=null?b:[]).map(T=>Ne(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=Z(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM: Unable to fallback from a non-decipherable quality."):(m.debug("DRM: Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM: Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let E=v.reduce((R,k)=>`${R}, ${Ne(k)}`,"");m.debug("DRM: Blacklisting new key ids",E)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),E=new Set;Ws(E,T);for(let R of v){let k=Array.from(E);for(let x of k)if(R.record.isAssociatedWithKeyId(x)){R.record.associateKeyIds(E.values());for(let M of k)!R.keyStatuses.whitelisted.some(A=>ge(A,M))&&!R.keyStatuses.blacklisted.some(A=>ge(A,M))&&R.keyStatuses.blacklisted.push(M);m.hasLevel("DEBUG")&&m.debug("DRM: Session already created for",Ne(x),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;_(o.persistentLicenseConfig)?a="temporary":xg(r)?a="persistent-license":(m.warn('DRM: Cannot create "persistent-license" session: not supported'),a="temporary");let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=U.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,l=await Ps(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let c={record:l.value.keySessionRecord,source:l.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(c);let{mediaKeySession:f,sessionType:g}=l.value,p=!1;if(Bs(f,o,r.keySystem,{onKeyUpdate:T=>{let v=Dg(e,c.record,o.singleLicensePer,c.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(c.record.associateKeyIds(v.whitelisted),c.record.associateKeyIds(v.blacklisted),c.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},c.record.getAssociatedKeyIds().length!==0&&g==="persistent-license"&&i.persistentSessionsStore!==null&&!p){let{persistentSessionsStore:E}=i;Ks(E,d-1),E.add(e,c.record.getAssociatedKeyIds(),f),p=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof Fn){m.warn("DRM: A session's closing condition has been triggered"),this._lockInitDataQueue();let E=this._currentSessions.indexOf(c);E>=0&&this._currentSessions.splice(E),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:c.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM: failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof Kn)){this._onFatalError(T);return}c.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM: blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),l.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let E=i.loadedSessionsStore.getEntryForSession(f);if(E===null||E.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(c);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new pe("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error")}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=Z(this._currentSessions,l=>l.record.isCompatibleWith(e));if(o===void 0)return!1;if(e.forceSessionRecreation===!0)return this.removeSessionForInitData(e,t),!1;let s=o.blacklistedSessionError;if(!_(s))return e.type===void 0||e.content===void 0?(m.error("DRM: This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM: This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let l;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:c}=o.keyStatuses;l=Bc(e.keyIds,c)}else{let{whitelisted:c}=o.keyStatuses;l=!Un(e.keyIds,c)}if(l)return e.content===void 0?(m.error("DRM: Cannot forbid key id, the content is unknown."),!0):(m.info("DRM: Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM: Init data already processed. Skipping it."),!0;let u=this._currentSessions.indexOf(o);return u===-1?m.error("DRM: Unable to remove processed init data: not found."):(m.debug("DRM: A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(u,1)),!1}removeSessionForInitData(e,t){let{stores:r}=t,i=r.loadedSessionsStore.reuse(e);i!==null&&r.loadedSessionsStore.closeSession(i.mediaKeySession).catch(()=>m.error("DRM: Cannot close the session from the loaded session store"));let o=Z(this._currentSessions,s=>s.record.isCompatibleWith(e));if(o===void 0)return;let a=this._currentSessions.indexOf(o);a!==-1&&(m.debug("DRM: A session from a processed init is removed due to forceSessionRecreation policy."),this._currentSessions.splice(a,1))}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new De("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM: Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function xg(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&Q(e,"persistent-license")}function Vc(n,e){return n.filter(t=>!e.some(r=>ge(r,t)))}function wg(n,e){let t=n.getAssociatedKeyIds(),r=Vc(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Ne(i)).join(", ")),r}function Og(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=Vc(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM: init data keys missing in the license, blacklisting them",t.map(i=>Ne(i)).join(", ")),t}function Dg(n,e,t,r,i,o){var u;let a=[...i,...o],s=wg(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let l=Og(n,d);d.push(...l);let{content:c}=n;if(r&&c!==void 0){if(t==="content"){let f=new Set,{manifest:g}=c;for(let p of g.periods)Ws(f,p);Hs(f,d)}else if(t==="periods"){let{manifest:f}=c;for(let g of f.periods){let p=new Set;if(Ws(p,g),((u=n.content)==null?void 0:u.period.id)===g.id)Hs(p,d);else{let I=Array.from(p);for(let y of I)if(d.some(T=>ge(T,y))){Hs(p,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function Hs(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>ge(o,r))||e.push(r)}function Ws(n,e){let t=e.adaptations,r=yr(t).reduce((i,o)=>_(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a)}function Vn(n){let e=Fe.getState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var zc=jr;function Hc(n){var t,r,i,o,a;let e=[];for(let s of n.periods){let d=[...(t=s.adaptations.video)!=null?t:[],...(r=s.adaptations.audio)!=null?r:[]];for(let u of d)if(u.supportStatus.hasCodecWithUndefinedSupport)for(let l of u.representations)l.isSupported===void 0&&e.push({mimeType:(i=l.mimeType)!=null?i:"",codec:(a=(o=l.codecs)==null?void 0:o[0])!=null?a:""})}return e}var Wc=[];function kt(n){Q(Wc,n)||(console.warn(n),Wc.push(n))}var $t=["audio","video","text"];function yn(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=K()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function In(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=K()-e.time;return e.livePosition+t/1e3}function bt(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=K()-e.time;return e.maximumSafePosition+t/1e3}function mt(n,e){if(e===void 0)return qs(n).filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1)}function qc(n,e){let t=null;for(let r of n.periods){if(Gs(r,e,t))return r;t=r}}function qo(n,e){let t=e.end;if(t===void 0)return null;let r=Z(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function Gs(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function qs(n){let e=n.adaptations;return yr(e).reduce((t,r)=>_(r)?t:t.concat(r),[])}function jo(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>o.isSupported===!0&&o.decipherable!==!1):n.representations).map(Lg),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function Yo(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function $o(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>s.isSupported===!0&&s.decipherable!==!1):i.representations).map(Gc),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>i.isSupported===!0&&i.decipherable!==!1):n.representations).map(Gc),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Lg(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function Gc(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u,contentProtections:l}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u,contentProtections:l!==void 0?{keyIds:l.keyIds}:void 0}}function Qt(n){switch(n.type){case"audio":return{type:"audio",track:jo(n,!1)};case"video":return{type:"video",track:$o(n,!1)};case"text":return{type:"text",track:Yo(n)}}}function jc(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}var Yr=class{constructor(e){this.supportMap=new Map,this.addCodecs(e)}addCodecs(e){for(let t of e){let r=this.supportMap.get(t.mimeType);r===void 0&&(r=new Map,this.supportMap.set(t.mimeType,r)),r.set(t.codec,{supported:t.supported,supportedIfEncrypted:t.supportedIfEncrypted})}}isSupported(e,t,r){let i=this.supportMap.get(e);if(i===void 0)return;let o=i.get(t);if(o!==void 0)return r?o.supportedIfEncrypted:o.supported}};var $r=class{constructor(e,t,r,i){if(this.id=e.id,this.adaptations=Object.keys(e.adaptations).reduce((o,a)=>{let s=e.adaptations[a];if(_(s))return o;let d=s.map(u=>{let l=new Rr(u,r,{representationFilter:i});return l.representations.length>0&&l.supportStatus.hasSupportedCodec===!1&&t.push(l),l}).filter(u=>u.representations.length>0);if(d.every(u=>u.supportStatus.hasSupportedCodec===!1)&&s.length>0&&(a==="video"||a==="audio"))throw new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+a+" adaptations",{tracks:void 0});return d.length>0&&(o[a]=d),o},{}),!Array.isArray(this.adaptations.video)&&!Array.isArray(this.adaptations.audio))throw new ee("MANIFEST_PARSE_ERROR","No supported audio and video tracks.");this.duration=e.duration,this.start=e.start,!_(this.duration)&&!_(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i===void 0)return;let o=!1;for(let a of i){if(!a.supportStatus.hasCodecWithUndefinedSupport){a.supportStatus.hasSupportedCodec===!0&&(o=!0);continue}let s=a.supportStatus.hasSupportedCodec;a.refreshCodecSupport(t),s!==!1&&a.supportStatus.hasSupportedCodec===!1&&e.push(a),o===!1?o=a.supportStatus.hasSupportedCodec:o===void 0&&a.supportStatus.hasSupportedCodec===!0&&(o=!0)}if((r==="video"||r==="audio")&&o===!1)throw new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+r+" adaptations",{tracks:void 0})},{})}getAdaptations(){return qs(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return Z(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return mt(this,e)}containsTime(e,t){return Gs(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e}}};function Qr(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.getAdaptations(),o=e.getAdaptations();for(let a=0;a<i.length;a++){let s=i[a],d=he(o,u=>u.id===s.id);if(d===-1){m.warn('Manifest: Adaptation "'+i[a].id+'" not found when merging.');let[u]=i.splice(a,1);a--,r.removedAdaptations.push({id:u.id,trackType:u.type})}else{let[u]=o.splice(d,1),l=[],c=[],f=[];r.updatedAdaptations.push({adaptation:s.id,trackType:s.type,updatedRepresentations:l,addedRepresentations:c,removedRepresentations:f});let g=s.representations,p=u.representations.slice();for(let I=0;I<g.length;I++){let y=g[I],b=he(p,T=>T.id===y.id);if(b===-1){m.warn(`Manifest: Representation "${g[I].id}" not found when merging.`);let[T]=g.splice(I,1);I--,f.push(T.id)}else{let[T]=p.splice(b,1);l.push(y.getMetadataSnapshot()),y.cdnMetadata=T.cdnMetadata,t===0?y.index._replace(T.index):y.index._update(T.index)}}p.length>0&&(m.warn(`Manifest: ${p.length} new Representations found when merging.`),s.representations.push(...p),c.push(...p.map(I=>I.getMetadataSnapshot())))}}if(o.length>0){m.warn(`Manifest: ${o.length} new Adaptations found when merging.`);for(let a of o){let s=n.adaptations[a.type];s===void 0?n.adaptations[a.type]=[a]:s.push(a),r.addedAdaptations.push(a.getMetadataSnapshot())}}return r}function Yc(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=Qr(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let l=e.slice(r,o),c=s-r,f=n.splice(r,c,...l);t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end}))),t.addedPeriods.push(...l.map(g=>g.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("Manifest: error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function $c(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=he(n,({id:s})=>s===e[0].id);if(i<0)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=Qr(n[i],e[0],1);t.updatedPeriods.push({period:j(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let l=a;l<n.length;l++)if(d.id===n[l].id){u=l;break}if(u<0){let l=-1;for(let g=a;g<n.length;g++)if(d.start<n[g].start){l=g;break}let c=l-a,f=n.splice(a,c,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(g=>({id:g.id,start:g.start,end:g.end})))}else{if(u>a){m.warn("Manifest: old Periods not found in new when updating, removing");let c=n.splice(a,u-a);t.removedPeriods.push(...c.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let l=Qr(n[u],d,0);t.updatedPeriods.push({period:j(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:l})}a++}if(a<n.length){m.warn("Manifest: Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var Ng=Je(),Xr=class extends oe{constructor(e,t,r){var s;super();let{representationFilter:i,manifestUpdateUrl:o}=t;this.manifestFormat=0,this.id=Ng(),this.expired=(s=e.expired)!=null?s:null,this.transport=e.transportType,this.clockOffset=e.clockOffset,this._cachedCodecSupport=new Yr([]);let a=[];if(this.periods=e.periods.map(d=>new $r(d,a,this._cachedCodecSupport,i)).sort((d,u)=>d.start-u.start),a.length>0){let d=new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:a.map(Qt)});r.push(d)}this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=o,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}updateCodecSupport(e=[]){if(e.length===0)return null;this._cachedCodecSupport.addCodecs(e);let t=[];for(let r of this.periods)r.refreshCodecSupport(t,this._cachedCodecSupport);return this.trigger("supportUpdate",null),t.length>0?new ee("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Qt)}):null}getPeriod(e){return Z(this.periods,t=>e===t.id)}getPeriodForTime(e){return qc(this,e)}getNextPeriod(e){return Z(this.periods,t=>t.start>e)}getPeriodAfter(e){return qo(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return yn(this)}getLivePosition(){return In(this)}getMaximumSafePosition(){return bt(this)}updateCodecSupportList(e){this._cachedCodecSupport=e}updateRepresentationsDeciperability(e){let t=Ug(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}getAdaptations(){kt("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){kt("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return kt("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),Z(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}getCodecsWithUnknownSupport(){return Hc(this)}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=Yc(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=$c(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.updateCodecSupport(),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function Ug(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations()){let o=!0;for(let a of i.representations){let s={manifest:n,period:r,adaptation:i,representation:a},d=e(s);d!==!1&&(o=!1),d!==a.decipherable&&(t.push(s),a.decipherable=d,d===!0?i.supportStatus.isDecipherable=!0:d===void 0&&i.supportStatus.isDecipherable===!1&&(i.supportStatus.isDecipherable=void 0),m.debug(`Decipherability changed for "${a.id}"`,`(${a.bitrate})`,String(a.decipherable)))}o&&(i.supportStatus.isDecipherable=!1)}return t}function Ct(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function bn(n){if(_(n))return"";let{period:e,adaptation:t,representation:r,segment:i}=n,o;return i.isInit?o="init":i.complete?o=`${i.time}-${i.duration}`:o=`${i.time}`,`${t.type} P: ${e.id} A: ${t.id} R: ${r.id} S: ${o}`}var zn=Xr;function Pt(n){return n instanceof Ee?new rt("PIPELINE_LOAD_ERROR",n):we(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function Bg(n){return n instanceof Ee?n.type===fn.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===fn.TIMEOUT||n.type===fn.ERROR_EVENT:n instanceof nt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:Wt(n)&&n.code==="INTEGRITY_ERROR"}async function js(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("Fetchers: no CDN given to `scheduleRequestWithCdns`.");let u=new Map,l=c();if(l===void 0)throw new Error("No CDN to request");return f(l);function c(){if(n===null){let y=u.get(null);return y!==void 0&&y.isBlacklisted?void 0:null}else{if(e===null)return I(n);{let y=e.getCdnPreferenceForResource(n);return I(y)}}}async function f(y){try{return await t(y,i)}catch(b){if(B.isCancellationError(b))throw b;y!==null&&e!==null&&e.downgradeCdn(y);let T=u.get(y);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(y,T)):T.errorCounter++,!Bg(b))return T.blockedUntil=void 0,T.isBlacklisted=!0,g(b);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,E=Math.min(o*Math.pow(2,v-1),a),R=Wr(E);T.blockedUntil=K()+R}return g(b)}}async function g(y){let b=c();if(i.isCancelled())throw i.cancellationError;if(b===void 0)throw y;if(d(y),i.isCancelled())throw i.cancellationError;return p(b,y)}function p(y,b){let T=u.get(y);if(T===void 0||T.blockedUntil===void 0)return f(y);let v=K(),E=T.blockedUntil-v;if(E<=0)return f(y);let R=new B,k=R.linkToSignal(i);return new Promise((x,M)=>{e==null||e.addEventListener("priorityChange",()=>{let O=c();if(i.isCancelled())throw i.cancellationError;if(O===void 0)return L(b);O!==y&&(R.cancel(),p(O,b).then(A,L))},R.signal),Gt(E,R.signal).then(()=>f(y).then(A,L),X);function A(O){k(),x(O)}function L(O){k(),M(O)}})}function I(y){var T;if(u.size===0)return y[0];let b=K();return(T=y.filter(v=>{var E;return((E=u.get(v))==null?void 0:E.isBlacklisted)!==!0}).reduce((v,E)=>{var k;let R=(k=u.get(E))==null?void 0:k.blockedUntil;return R!==void 0&&R<=b&&(R=void 0),v===void 0?[E,R]:v[1]===void 0?v:R===void 0?[E,void 0]:R<v[1]?[E,R]:v},void 0))==null?void 0:T[0]}}function Ys(n,e,t){return js(null,null,n,e,t)}var Zr=class extends oe{constructor(e,t,r){super(),this.scheduleManualRefresh=X,this._manifestUrls=e,this._pipelines=t.manifest,this._transportName=t.transportName,this._settings=r,this._canceller=new B,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof zn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var u;let t=this._canceller.signal,r=this._settings,i=this._transportName,o=this._pipelines,a=e!=null?e:(u=this._manifestUrls)==null?void 0:u[0],s=this._getBackoffSetting(l=>{this.trigger("warning",Pt(l))});try{let l=await d(a);return{parse:c=>this._parseLoadedManifest(l,c,a)}}catch(l){throw Pt(l)}function d(l){var y;let{loadManifest:c}=o,f=r.requestTimeout===void 0?U.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,g=r.connectionTimeout===void 0?U.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;f<0&&(f=void 0),g<0&&(g=void 0);let p={timeout:f,connectionTimeout:g,cmcdPayload:(y=r.cmcdDataBuilder)==null?void 0:y.getCmcdDataForManifest(i)};return Ys(()=>c(l,p,t),s,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var I;let i=K(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(y=>{this.trigger("warning",Pt(y))}),l=r!=null?r:(I=this._manifestUrls)==null?void 0:I[0],c={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:l};try{let y=this._pipelines.parseManifest(e,c,g,o,f);if(Fg(y)){let{manifest:b,warnings:T}=await y;return p(b,T)}else return p(y.manifest,y.warnings)}catch(y){throw we(y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(y){try{return await Ys(y,u,o)}catch(b){throw Pt(b)}}function g(y){for(let b of y){if(o.isCancelled())return;let T=we(b,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function p(y,b){g(b);let T=K()-i;return m.info(`MF: Manifest parsed in ${T}ms`),{manifest:y,sendingTime:s,receivedTime:d,parsingTime:T}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=U.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=U.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:K()-t,l=Math.max(this._settings.minimumManifestUpdateInterval-u,0),c=new B;if(c.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:g,delay:p,canUseUnsafeMode:I}=f,y=I&&d,b=t===void 0?0:K()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=setTimeout(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:g,unsafeMode:y})},Math.max((p!=null?p:0)-b,T));c.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var g;(g=e.expired)==null||g.then(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},X)},l);c.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,g;s===void 0?g=f:e.lifetime<3&&s>=100?(g=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MUS: Manifest update rythm is too frequent. Postponing next request.",f,g)):s>=e.lifetime*1e3/10?(g=Math.min(Math.max(f,0)+s,f*6),m.info("MUS: Manifest took too long to parse. Postponing next request",g,g)):g=f;let p=setTimeout(()=>{c.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(g,l));c.signal.register(()=>{clearTimeout(p)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info('Init: Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info('Init: Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:l,parsingTime:c}=d,f=K();if(o)e.replace(u);else try{e.update(u)}catch(p){let I=p instanceof Error?p.message:"unknown error";m.warn(`MUS: Attempt to update Manifest failed: ${I}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:y}=U.getCurrent(),b=l===void 0?0:K()-l,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=X,E=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(y-b,T));v=this._canceller.signal.register(()=>{clearTimeout(E)});return}let g=K()-f;this._recursivelyRefreshManifest(e,{sendingTime:l,parsingTime:c,updatingTime:g})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function Fg(n){return n instanceof Promise}var $s=Zr;var Jr=class extends oe{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=Qc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=U.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=Qc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function Qc(n,e){return n.length===0?-1:e.id!==void 0?he(n,t=>t.id===e.id):he(n,t=>t.baseUrl===e.baseUrl)}function Qs(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("Fetchers: Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var Xs=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},Xc=Xs;var Kg=Je();function Zs({bufferType:n,pipeline:e,cdnPrioritizer:t,cmcdDataBuilder:r,eventListeners:i,requestOptions:o}){let a;o.connectionTimeout===void 0||o.connectionTimeout<0?a=void 0:a=o.connectionTimeout;let s={timeout:o.requestTimeout<0?void 0:o.requestTimeout,connectionTimeout:a,cmcdPayload:void 0},d=Q(["audio","video"],n)?new Xc:void 0,{loadSegment:u,parseSegment:l}=e;return async function(f,g,p){var $,q,W;let{segment:I,adaptation:y,representation:b,manifest:T,period:v}=f,E=bn(f),R=Kg(),k,x=[],M=0,A=!1,L={segment:I,type:y.type,language:y.language,isLive:T.isLive,periodStart:v.start,periodEnd:v.end,mimeType:b.mimeType,codecs:b.codecs[0],manifestPublishTime:T.publishTime},O={onProgress(H){var V;k===void 0&&H.totalSize!==void 0&&H.size<H.totalSize&&((V=i.onProgress)==null||V.call(i,{duration:H.duration,size:H.size,totalSize:H.totalSize,timestamp:K(),id:R}))},onNewChunk(H){g.onChunk(D(H,!0))}},F=d!==void 0?d.get(f):null;if(F!==null)return m.debug("SF: Found wanted segment in cache",E),g.onChunk(D(F,!1)),Promise.resolve();m.debug("SF: Beginning request",E),($=i.onRequestBegin)==null||$.call(i,{requestTimestamp:K(),id:R,content:f}),p.register(C);try{let H=await js(f.representation.cdnMetadata,t,P,j({onRetry:N},o),p);if(H.resultType==="segment-loaded"){let V=H.resultData.responseData;d!==void 0&&d.add(f,H.resultData.responseData),g.onChunk(D(V,!1))}else H.resultType==="segment-created"&&g.onChunk(D(H.resultData,!1));m.debug("SF: Segment request ended with success",E),g.onAllChunksReceived(),H.resultType!=="segment-created"?(k=H.resultData,z()):k=null,p.isCancelled()||(q=i.onRequestEnd)==null||q.call(i,{id:R}),p.deregister(C)}catch(H){throw p.deregister(C),k=null,H instanceof Me?(m.debug("SF: Segment request aborted",E),H):(m.debug("SF: Segment request failed",E),(W=i.onRequestEnd)==null||W.call(i,{id:R}),Pt(H))}function C(){var H;k===void 0&&(m.debug("SF: Segment request cancelled",E),k=null,(H=i.onRequestEnd)==null||H.call(i,{id:R}))}function P(H){return s.cmcdPayload=r==null?void 0:r.getCmcdDataForSegmentRequest(f),u(H,L,s,p,O)}function D(H,V){x.push(!1);let ae=x.length-1;return function(le){let Se={data:H,isChunked:V};try{let Y=l(Se,L,le);return x[ae]||(M=M!==void 0&&Y.segmentType==="media"&&Y.chunkInfos!==null&&Y.chunkInfos.duration!==void 0?M+Y.chunkInfos.duration:void 0,x[ae]=!0,z()),Y}catch(Y){throw we(Y,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function N(H){g.onRetry(Pt(H))}function z(){var H;A||!_(k)&&k.size!==void 0&&k.requestDuration!==void 0&&x.length>0&&x.every(V=>V)&&(A=!0,(H=i.onMetrics)==null||H.call(i,{size:k.size,requestDuration:k.requestDuration,content:f,segmentDuration:M}))}}}function Zc({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=U.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var ei=class extends oe{constructor(e){super(),this._segmentFetcher=e,this._currentContentInfo=null}getRequestedInitSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.initSegmentRequest)==null?void 0:t.segment)!=null?r:null}getRequestedMediaSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.mediaSegmentRequest)==null?void 0:t.segment)!=null?r:null}resetForContent(e,t){var a;(a=this._currentContentInfo)==null||a.currentCanceller.cancel();let r=new G({initSegment:null,segmentQueue:[]}),i=new B;i.signal.register(()=>{r.finish()});let o={content:e,downloadQueue:r,initSegmentInfoRef:t?new G(void 0):new G(null),currentCanceller:i,initSegmentRequest:null,mediaSegmentRequest:null,mediaSegmentAwaitingInitMetadata:null};return this._currentContentInfo=o,r.onUpdate(s=>{let{segmentQueue:d}=s;if(d.length>0&&d[0].segment.id===o.mediaSegmentAwaitingInitMetadata)return;let u=o.mediaSegmentRequest;if(d.length===0){if(u===null)return;m.debug("SQ: no more media segment to request. Cancelling queue.",e.adaptation.type),this._restartMediaSegmentDownloadingQueue(o);return}else if(u===null){m.debug("SQ: Media segments now need to be requested. Starting queue.",e.adaptation.type,d.length),this._restartMediaSegmentDownloadingQueue(o);return}else{let l=d[0];if(u.segment.id!==l.segment.id){m.debug("SQ: Next media segment changed, cancelling previous",e.adaptation.type),this._restartMediaSegmentDownloadingQueue(o);return}u.priority!==l.priority&&(m.debug("SQ: Priority of next media segment changed, updating",e.adaptation.type,u.priority,l.priority),this._segmentFetcher.updatePriority(u.request,l.priority));return}},{emitCurrentValue:!0,clearSignal:i.signal}),r.onUpdate(s=>{var u;let d=o.initSegmentRequest;if(s.initSegment!==null&&d!==null){s.initSegment.priority!==d.priority&&this._segmentFetcher.updatePriority(d.request,s.initSegment.priority);return}else if(((u=s.initSegment)==null?void 0:u.segment.id)===(d==null?void 0:d.segment.id))return;s.initSegment===null&&m.debug("SQ: no more init segment to request. Cancelling queue.",e.adaptation.type),this._restartInitSegmentDownloadingQueue(o,s.initSegment)},{emitCurrentValue:!0,clearSignal:i.signal}),r}stop(){var e;(e=this._currentContentInfo)==null||e.currentCanceller.cancel(),this._currentContentInfo=null}_restartMediaSegmentDownloadingQueue(e){e.mediaSegmentRequest!==null&&e.mediaSegmentRequest.canceller.cancel();let{downloadQueue:t,content:r,initSegmentInfoRef:i,currentCanceller:o}=e,a=()=>{var v;let{segmentQueue:s}=t.getValue(),d=s[0];if(o!==null&&o.isUsed()){e.mediaSegmentRequest=null;return}if(d===void 0){e.mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let u=new B,l=o===null?X:u.linkToSignal(o.signal),{segment:c,priority:f}=d,g=j({segment:c,nextSegment:(v=s[1])==null?void 0:v.segment},r),p=!1,I=!1;u.signal.register(()=>{e.mediaSegmentRequest=null,!p&&(e.mediaSegmentAwaitingInitMetadata===c.id&&(e.mediaSegmentAwaitingInitMetadata=null),p=!0,I=!1)});let y=E=>{J(E.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",j({},E,{segment:c}))},b=()=>{let E=t.getValue().segmentQueue;if(E.length===0){p=!0,this.trigger("emptyQueue",null);return}else E[0].segment.id===c.id&&E.shift();p=!0,a()},T=this._segmentFetcher.createRequest(g,f,{onRetry:E=>{this.trigger("requestRetry",{segment:c,error:E})},beforeInterrupted(){m.info("SQ: segment request interrupted temporarly.",c.id,c.time)},onChunk:E=>{let R=i.getValue();R!==void 0?y(E(R!=null?R:void 0)):(I=!0,i.waitUntilDefined(k=>{y(E(k!=null?k:void 0))},{clearSignal:u.signal}))},onAllChunksReceived:()=>{I?(e.mediaSegmentAwaitingInitMetadata=c.id,i.waitUntilDefined(()=>{e.mediaSegmentAwaitingInitMetadata=null,I=!1,this.trigger("fullyLoadedSegment",c)},{clearSignal:u.signal})):this.trigger("fullyLoadedSegment",c)},beforeEnded:()=>{l(),e.mediaSegmentRequest=null,I?i.waitUntilDefined(b,{clearSignal:u.signal}):b()}},u.signal);T.catch(E=>{l(),p||(p=!0,this.stop(),this.trigger("error",E))}),e.mediaSegmentRequest={segment:c,priority:f,request:T,canceller:u}};a()}_restartInitSegmentDownloadingQueue(e,t){let{content:r,initSegmentInfoRef:i}=e;if(e.initSegmentRequest!==null&&e.initSegmentRequest.canceller.cancel(),t===null)return;let o=new B,a=e.currentCanceller===null?X:o.linkToSignal(e.currentCanceller.signal),{segment:s,priority:d}=t,u=j({segment:s,nextSegment:void 0},r),l=!1,c=this._segmentFetcher.createRequest(u,d,{onRetry:f=>{this.trigger("requestRetry",{segment:s,error:f})},beforeInterrupted:()=>{m.info("SQ: init segment request interrupted temporarly.",s.id)},beforeEnded:()=>{a(),e.initSegmentRequest=null,l=!0},onChunk:f=>{var p;let g=f(void 0);J(g.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",j({},g,{segment:s})),g.segmentType==="init"&&i.setValue((p=g.initTimescale)!=null?p:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",s)}},o.signal);c.catch(f=>{a(),l||(l=!0,this.stop(),this.trigger("error",f))}),o.signal.register(()=>{e.initSegmentRequest=null,!l&&(l=!0)}),e.initSegmentRequest={segment:s,priority:d,request:c,canceller:o}}};var ni=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("TP: the max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ot(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{g(),this._endTask(o)},l=p=>{r.beforeEnded(),u(),a(p)},c=p=>{u(),s(p)},f=new B,g=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(l).catch(p=>{!i.isCancelled()&&f.isUsed()&&p instanceof Me||c(p)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=ti(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=ti(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=ti(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=ti(e,this._pendingTasks);if(i<0){m.warn("TP: request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e of this._pendingTasks)if(e.priority>=this._prioritySteps.low)return this._interruptPendingTask(e),this._interruptCancellableTasks()}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("TP : Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=ti(e.taskFn,this._pendingTasks);if(t<0){m.warn("TP: Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function ti(n,e){return he(e,t=>t.taskFn===n)}var ri=class{constructor(e,t,r,i){let o=new Jr(i),{MIN_CANCELABLE_PRIORITY:a,MAX_HIGH_PRIORITY_LEVEL:s}=U.getCurrent();this._transport=e,this._prioritizer=new ni({prioritySteps:{high:s,low:a}}),this._cdnPrioritizer=o,this._backoffOptions=r,this._cmcdDataBuilder=t}createSegmentQueue(e,t){let r=Zc(this._backoffOptions),i=this._transport[e],o=Zs({bufferType:e,pipeline:i,cdnPrioritizer:this._cdnPrioritizer,cmcdDataBuilder:this._cmcdDataBuilder,eventListeners:t,requestOptions:r}),a=Qs(this._prioritizer,o);return new ei(a)}};var Js=ri;var Sn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return Z(this._array,e)}has(e){return Q(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var ii=class extends oe{constructor(e,t,r){super(),this._canceller=new B,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new ed(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new ee("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new ee("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!0,clearSignal:o}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new Sn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},ed=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=Qo(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=Qo(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=Qo(this._lastAudioAdaptation),t=Qo(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=Xo(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=Xo(this._lastAudioAdaptation))!=null?t:void 0;{let r=Xo(this._lastAudioAdaptation),i=Xo(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function Qo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function Xo(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getEnd();if(o===void 0)return;o!==null&&(t=_(t)?o:Math.min(t,o))}return t}function td(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new ii(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("Init: end-of-stream order received."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var oi=class{constructor(e){this._segmentSinksStore=e,this._currentFreezeTimestamp=null}needToReload(e){let{readyState:t,rebuffering:r,freezing:i}=e;if((e.bufferGap!==void 0&&isFinite(e.bufferGap)?e.bufferGap:0)<6||r===null&&i===null||t>1)return this._currentFreezeTimestamp=null,!1;let a=K();this._currentFreezeTimestamp===null&&(this._currentFreezeTimestamp=a);let s=r!==null&&a-r.timestamp>4e3,d=i!==null&&a-i.timestamp>4e3;if((s||d)&&K()-this._currentFreezeTimestamp>4e3){let u=this._segmentSinksStore.getStatus("audio"),l=this._segmentSinksStore.getStatus("video"),c=!0,f=!0;for(let g of[u,l])if(g.type==="initialized")for(let p of g.value.getLastKnownInventory()){let{representation:I}=p.infos;if(I.decipherable===!1)return m.warn("Init: we have undecipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0;I.contentProtections!==void 0&&(f=!1,I.decipherable!==!0&&(c=!1))}if(!f&&c)return m.warn("Init: we are frozen despite only having decipherable segments left in the buffer, reloading"),this._currentFreezeTimestamp=null,!0}return!1}};function Zo({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Vg(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{let u=d instanceof Error?d.message:"Unknown error";m.error("Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Vg(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=Hl(t,e),u=()=>{if(isFinite(r)){for(let c of d)e-r>=c.end?a.push(c):e>=c.end&&e-r>c.start&&e-r<c.end&&a.push({start:c.start,end:e-r});_(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},l=()=>{if(isFinite(i)){for(let c of d)e+i<=c.start?a.push(c):e<=c.start&&e+i<c.end&&e+i>c.start&&a.push({start:e+i,end:c.end});_(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),l();for(let c of a)if(c.start<c.end){if(m.debug("GC: cleaning range from SegmentSink",c.start,c.end),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(c.start,c.end)}}var ai=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=K();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Ct(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var si=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=U.getCurrent();this._inventory=[],this._bufferedHistory=new ai(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,l,c,f,g,p;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=U.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let I=e.map(y=>`${y.start}-${y.end}`).join(",");m.debug(`SI: synchronizing ${a!=null?a:"unknown"} buffered ranges:`,I)}let s=e.length;for(let I=0;I<s;I++){if(i===void 0)return;let y=e[I].start,b=e[I].end;if(b-y<o){m.warn("SI: skipped range when synchronizing because it was too small",a,y,b);continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-y<o;)i=t[++r];let v=null,E=r-T;if(E>0){let k=t[T+E-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug(`SI: ${E} segments GCed.`,a);let x=t.splice(T,E);for(let M of x)M.bufferedStart===void 0&&M.bufferedEnd===void 0&&M.status!==2&&this._bufferedHistory.addBufferedSegment(M.infos,null);r=T}if(i===void 0)return;if(b-((l=i.bufferedStart)!=null?l:i.start)>=o){if(zg(i,y,v,a),r===t.length-1){ef(i,b,a);return}i=t[++r];let k=(c=i.bufferedStart)!=null?c:i.start,x=(f=i.bufferedEnd)!=null?f:i.end,M=I<s-1?e[I+1].start:void 0;for(;i!==void 0&&!(b<k||b-k<o&&x-b>=o||M!==void 0&&b-k<x-M);){let A=t[r-1];A.bufferedEnd===void 0&&(i.precizeStart?A.bufferedEnd=i.start:A.infos.segment.complete?A.bufferedEnd=A.end:A.bufferedEnd=i.start,m.debug("SI: calculating buffered end of contiguous segment",a,A.bufferedEnd,A.end)),i.bufferedStart=A.bufferedEnd,i=t[++r],i!==void 0&&(k=(g=i.bufferedStart)!=null?g:i.start,x=(p=i.bufferedEnd)!=null?p:i.end)}}let R=t[r-1];R!==void 0&&ef(R,b,a)}if(!_(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:I}=U.getCurrent(),y=K();for(let b=r;b<t.length;b++){let T=t[b];y-T.insertionTs>=I&&(m.debug("SI: A segment at the end has been completely GCed",a,`${T.start}-${T.end}`),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(b,1),b--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug(`SI: current ${a} inventory timeline:
|
|
2
|
+
`+Hg(this._inventory))}insertChunk({period:e,adaptation:t,representation:r,segment:i,chunkSize:o,start:a,end:s},d,u){if(i.isInit)return;let l=t.type;if(a>=s){m.warn("SI: Invalid chunked inserted: starts before it ends",l,a,s);return}let c=this._inventory,f={status:d?0:2,insertionTs:u,chunkSize:o,splitted:!1,start:a,end:s,precizeStart:!1,precizeEnd:!1,bufferedStart:void 0,bufferedEnd:void 0,infos:{segment:i,period:e,adaptation:t,representation:r}};for(let p=c.length-1;p>=0;p--){let I=c[p];if(I.start<=a)if(I.end<=a){for(m.debug("SI: Pushing segment strictly after previous one.",l,a,I.end),this._inventory.splice(p+1,0,f),p+=2;p<c.length&&c[p].start<f.end;){if(c[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",l,f.end,c[p].start),c[p].start=f.end,c[p].bufferedStart=void 0,c[p].precizeStart=c[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",l,a,s,c[p].start,c[p].end),c.splice(p,1)}return}else if(I.start===a)if(I.end<=s){for(m.debug("SI: Segment pushed replace another one",l,a,s,I.end),this._inventory.splice(p,1,f),p+=1;p<c.length&&c[p].start<f.end;){if(c[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",l,f.end,c[p].start),c[p].start=f.end,c[p].bufferedStart=void 0,c[p].precizeStart=c[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",l,a,s,c[p].start,c[p].end),c.splice(p,1)}return}else{m.debug("SI: Segment pushed ends before another with the same start",l,a,s,I.end),c.splice(p,0,f),I.start=f.end,I.bufferedStart=void 0,I.precizeStart=I.precizeStart&&f.precizeEnd;return}else if(I.end<=f.end){for(m.debug("SI: Segment pushed updates end of previous one",l,a,s,I.start,I.end),this._inventory.splice(p+1,0,f),I.end=f.start,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,p+=2;p<c.length&&c[p].start<f.end;){if(c[p].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",l,f.end,c[p].start),c[p].start=f.end,c[p].bufferedStart=void 0,c[p].precizeStart=c[p].precizeStart&&f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",l,a,s,c[p].start,c[p].end),c.splice(p,1)}return}else{m.warn("SI: Segment pushed is contained in a previous one",l,a,s,I.start,I.end);let y={status:I.status,insertionTs:I.insertionTs,chunkSize:I.chunkSize,splitted:!0,start:f.end,end:I.end,precizeStart:I.precizeStart&&I.precizeEnd&&f.precizeEnd,precizeEnd:I.precizeEnd,bufferedStart:void 0,bufferedEnd:I.end,infos:I.infos};I.end=f.start,I.splitted=!0,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,c.splice(p+1,0,f),c.splice(p+2,0,y);return}}let g=this._inventory[0];if(g===void 0){m.debug("SI: first segment pushed",l,a,s),this._inventory.push(f);return}if(g.start>=s)m.debug("SI: Segment pushed comes before all previous ones",l,a,s,g.start),this._inventory.splice(0,0,f);else if(g.end<=s){for(m.debug("SI: Segment pushed starts before and completely recovers the previous first one",l,a,s,g.start,g.end),this._inventory.splice(0,1,f);c.length>1&&c[1].start<f.end;){if(c[1].end>f.end){m.debug("SI: Segment pushed updates the start of the next one",l,f.end,c[1].start),c[1].start=f.end,c[1].bufferedStart=void 0,c[1].precizeStart=f.precizeEnd;return}m.debug("SI: Segment pushed removes the next one",l,a,s,c[1].start,c[1].end),c.splice(1,1)}return}else{m.debug("SI: Segment pushed start of the next one",l,a,s,g.start,g.end),g.start=s,g.bufferedStart=void 0,g.precizeStart=f.precizeEnd,this._inventory.splice(0,0,f);return}}completeSegment(e){if(e.segment.isInit)return;let t=this._inventory,r=[];for(let i=0;i<t.length;i++)if(Ct(t[i].infos,e)){let o=!1;r.length>0&&(o=!0,r.length===1&&(m.warn("SI: Completed Segment is splitted.",e.segment.id,e.segment.time,e.segment.end),r[0].splitted=!0));let a=i,s=t[i].chunkSize;for(i+=1;i<t.length&&Ct(t[i].infos,e);){let f=t[i].chunkSize;s!==void 0&&f!==void 0&&(s+=f),i++}let d=i-1,u=d-a,l=t[d].end,c=t[d].bufferedEnd;u>0&&(this._inventory.splice(a+1,u),i-=u),this._inventory[a].status===0&&(this._inventory[a].status=1),this._inventory[a].chunkSize=s,this._inventory[a].end=l,this._inventory[a].bufferedEnd=c,this._inventory[a].splitted=o,r.push(this._inventory[a])}if(r.length===0)m.warn("SI: Completed Segment not found",e.segment.id,e.segment.time);else for(let i of r)i.bufferedStart!==void 0&&i.bufferedEnd!==void 0?i.status!==2&&this._bufferedHistory.addBufferedSegment(i.infos,{start:i.bufferedStart,end:i.bufferedEnd}):m.debug("SI: buffered range not known after sync. Skipping history.",i.start,i.end)}getInventory(){return this._inventory}getHistoryFor(e){return this._bufferedHistory.getHistoryFor(e)}};function nd(n){if(n.bufferedStart===void 0||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=U.getCurrent();return Math.abs(e-n.bufferedStart)<=i&&(n.bufferedEnd===void 0||n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3))}function Jc(n){if(n.bufferedEnd===void 0||!n.infos.segment.complete||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=U.getCurrent();return Math.abs(t-n.bufferedEnd)<=i&&n.bufferedStart!==void 0&&n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3)}function zg(n,e,t,r){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MISSING_DATA_TRIGGER_SYNC_DELAY:o,SEGMENT_SYNCHRONIZATION_DELAY:a}=U.getCurrent();if(n.bufferedStart!==void 0)n.bufferedStart<e&&(m.debug("SI: Segment partially GCed at the start",r,n.bufferedStart,e),n.bufferedStart=e),!n.precizeStart&&nd(n)&&(n.start=n.bufferedStart,n.precizeStart=!0);else if(n.precizeStart)m.debug("SI: buffered start is precize start",r,n.start),n.bufferedStart=n.start;else if(t!==null&&t.end>e&&(t.precizeEnd||n.start-t.end<=i))m.debug("SI: buffered start is end of previous segment",r,e,n.start,t.end),n.bufferedStart=t.end,nd(n)&&(n.start=t.end,n.precizeStart=!0);else if(n.start-e<=i){let s=K();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: found true buffered start",r,e,n.start),n.bufferedStart=e,nd(n)&&(n.start=e,n.precizeStart=!0)}else if(e<n.start)m.debug("SI: range start too far from expected start",r,e,n.start),n.bufferedStart=n.start;else{let s=K();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI: Ignored bufferedStart synchronization",r,e,n.start,s-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the start",r,e,n.start),n.bufferedStart=e}}function ef(n,e,t){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:r,MISSING_DATA_TRIGGER_SYNC_DELAY:i,SEGMENT_SYNCHRONIZATION_DELAY:o}=U.getCurrent();if(n.bufferedEnd!==void 0)n.bufferedEnd>e&&(m.debug("SI: Segment partially GCed at the end",t,n.bufferedEnd,e),n.bufferedEnd=e),!n.precizeEnd&&e-n.end<=r&&Jc(n)&&(n.precizeEnd=!0,n.end=e);else if(n.precizeEnd)m.debug("SI: buffered end is precize end",t,n.end),n.bufferedEnd=n.end;else if(e-n.end<=r||!n.infos.segment.complete){let a=K();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: found true buffered end",t,e,n.end),n.bufferedEnd=e,Jc(n)&&(n.end=e,n.precizeEnd=!0)}else if(e>n.end)m.debug("SI: range end too far from expected end",t,e,n.end),n.bufferedEnd=n.end;else{let a=K();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI: Ignored bufferedEnd synchronization",t,e,n.end,a-n.insertionTs);return}m.debug("SI: Segment appears immediately garbage collected at the end",t,n.bufferedEnd,e),n.bufferedEnd=e}}function Hg(n){let e=.016666666666666666,t={},r=[],i=null,o=null;function a(d){let u=String.fromCharCode(r.length+65);return r.push({letter:u,periodId:d.period.id,representationId:d.representation.id,bitrate:d.representation.bitrate}),u}let s="";for(let d of n)if(d.bufferedStart!==void 0&&d.bufferedEnd!==void 0){let u=d.infos.period.id,l=d.infos.representation.id,c=t[u],f;if(c===void 0)f=a(d.infos),t[u]={[l]:f};else{let g=c[l];g===void 0?(f=a(d.infos),c[l]=f):f=g}i===null?s+=`${d.bufferedStart.toFixed(2)}|${f}|`:o===f?i.bufferedEnd+e<d.bufferedStart&&(s+=`${i.bufferedEnd.toFixed(2)} ~ ${d.bufferedStart.toFixed(2)}|${f}|`):s+=`${i.bufferedEnd.toFixed(2)} ~ ${d.bufferedStart.toFixed(2)}|${f}|`,i=d,o=f}return i!==null&&(s+=String(i.end.toFixed(2))),r.forEach(d=>{var u;s+=`
|
|
3
|
+
[${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function Hn(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function Wn(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var tf=si;var Gn=class{constructor(){this._segmentInventory=new tf}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var di=class extends Gn{constructor(e,t,r){super(),m.info("AVSB: calling `mediaSource.addSourceBuffer`",t);let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){nf(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){nf(e.data.chunk),m.debug("AVSB: receiving order to push data to the SourceBuffer",this.bufferType,bn(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("AVSB: pushing segment",this.bufferType,bn(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,K()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("AVSB: receiving order to remove data from the SourceBuffer",this.bufferType,e,t);let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("AVSB: Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug(`AVSB: Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function nf(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var ea=di;var ui=class extends Gn{constructor(e){m.debug("HTSB: Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("HTSB: Declaring initialization segment for Text SegmentSink",e)}freeInitSegment(e){m.warn("HTSB: Freeing initialization segment for Text SegmentSink",e)}async pushChunk(e){let{data:t}=e;Gg(t.chunk);let r=this._sender.pushTextData(de(ie({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,K()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("HTSB: Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function Gg(n){if(h.CURRENT_ENV!==h.PRODUCTION&&(typeof n!="object"||n===null||typeof n.data!="string"||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number"))throw new Error("Invalid format given to a TextSegmentSink")}h.CURRENT_ENV===h.DEV&&(qg=function(e){function t(r){}});var qg;var rf=ui;var jg=["audio","video","text"],li=class n{static isNative(e){return of(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ot(e,t=>{let r=X,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn(`SBS: The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&(this._onNativeBufferAddedOrDisabled.slice().forEach(r=>r()),J(this._onNativeBufferAddedOrDisabled.length===0))}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(of(e)){if(!_(r))return r instanceof ea&&r.codec!==t?m.warn("SB: Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("SB: Reusing native SegmentSink with codec",t),r;m.info("SB: Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new ea(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.slice().forEach(s=>s()),J(this._onNativeBufferAddedOrDisabled.length===0),a}if(!_(r))return m.info("SB: Reusing a previous custom SegmentSink for the type",e),r;let i;if(e==="text"){if(m.info("SB: Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new rf(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("SB: Unknown buffer type:",e),new ee("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(_(t)){m.warn("SB: Trying to dispose a SegmentSink that does not exist");return}m.info("SB: Aborting SegmentSink",e),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){jg.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var t,r;return{bufferType:e,codec:(t=this._initializedSegmentSinks[e])==null?void 0:t.codec,segmentInventory:(r=this._initializedSegmentSinks[e])==null?void 0:r.getLastKnownInventory().map(i=>de(ie({},i),{infos:Yg(i.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function of(n){return n==="audio"||n==="video"}function Yg(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var Xt=li;var ci=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};function rd(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=$g(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let c=s.index.checkDiscontinuity(e.start);if(c!==null)return{start:void 0,end:c}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let c=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,c)!==!1?null:(m.debug("RS: current discontinuity encountered",a.type,u.bufferedStart),{start:void 0,end:c})}let l=Qg(i,e,d+1);if(l!==null){let c=i[l-1],f=i[l];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(c.infos.segment.end,f.infos.segment.time)!==!1)return null;let g=c.bufferedEnd,p=f.bufferedStart;return m.debug("RS: future discontinuity encountered",a.type,g,p),{start:g,end:p}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let c=Xg(i,o.end);if(c!==null){let f=i[c];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("RS: discontinuity encountered at the end of the current period",a.type,f.bufferedEnd,o.end),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let c=i.length-1;c>=0;c--){let f=i[c];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let g=s.index.checkDiscontinuity(e.end);if(g!==null)return{start:f.bufferedEnd,end:g}}return null}}}return null}function $g(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function Qg(n,e,t){if(t<=0)return m.error("RS: Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function Xg(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function id({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,l=Zg(n,a,s),c=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!af(R.infos,e,t,r)),g=oh(f,o,i),{MINIMUM_SEGMENT_SIZE:p,MIN_BUFFER_AHEAD:I}=U.getCurrent(),y=!1,b=Math.min(1/60,p),T=!1,v=[];return{segmentsToLoad:c.filter(R=>{let k=j({segment:R},e);if(a.length>0&&a.some(C=>Ct(k,C)))return!1;let{duration:x,time:M,end:A}=R;if(R.isInit)return!0;if(y)return v.push(R),!1;if(R.complete&&x<p||a.length>0&&a.some(C=>{if(C.period.id!==e.period.id||C.adaptation.id!==e.adaptation.id)return!1;let{segment:P}=C;if(P.time-b>M)return!1;if(P.complete){if(P.end+b<A)return!1}else if(Math.abs(M-P.time)>M)return!1;return!af(C,k,t,r)}))return!1;for(let F of g){let C=F.infos.period.id===e.period.id;if(F.status===1&&C){let P=F.infos.segment;if(M-P.time>-b){if(P.complete){if(P.end-A>-b)return!1}else if(Math.abs(M-P.time)<b)return!1}}}let L=x*e.representation.bitrate;if(l-L<0&&(T=!0,M>o.start+I))return y=!0,v.push(R),!1;let O=i(k);if(O.length>1){let F=O[O.length-1],C=O[O.length-2];if(F.buffered===null&&C.buffered===null)return m.warn("Stream: Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering."+d.type,u.id,R.time),!1}for(let F=0;F<g.length;F++){let C=g[F];if(C.end+b>M){let P=C.start>M+b||Jg(g,F).end<A-b;return P&&(l-=L),P}}return l-=L,!0}),segmentsOnHold:v,isBufferFull:T}}function Zg(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function Jg(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=U.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function af(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=U.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:eh(n.representation,e.representation,r)}function eh(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=U.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function th(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream: The start of the wanted segment has been garbage collected",n.start,n.bufferedStart),!0):!1}function nh(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=U.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream: The end of the wanted segment has been garbage collected",n.end,n.bufferedEnd),!0):!1}function rh(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function ih(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function oh(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(th(r,a,e.start)){if(d=t(r.infos),rh(d,r.bufferedStart))return!1;m.debug("Stream: skipping segment gc-ed at the start",r.start,r.bufferedStart)}if(nh(r,s,e.end)){if(d=d!=null?d:t(r.infos),ih(d,r.bufferedEnd))return!1;m.debug("Stream: skipping segment gc-ed at the end",r.end,r.bufferedEnd)}return!0})}function fi(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=U.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function od(n,e,t,r,i,o,a){var M,A,L;let{representation:s}=n,d=(A=(M=t.getIsPaused())!=null?M:t.getReference().getValue().paused.pending)!=null?A:t.getReference().getValue().paused.last,u=(L=t.getPlaybackRate())!=null?L:t.getReference().getValue().speed,l=e;(d===void 0||u===void 0||d||u<=0)&&(l-=.1);let c=ah(n,l,i),f=s.index.shouldRefresh(c.start,c.end),g=a.getPendingOperations().filter(O=>O.type===2).map(O=>O.value),p=a.getLastKnownInventory(),I=t.getCurrentTime();I===void 0&&(I=t.getReference().getValue().position.getWanted());let y=a.getSegmentHistory.bind(a),{segmentsToLoad:b,segmentsOnHold:T,isBufferFull:v}=id({content:n,bufferedSegments:p,currentPlaybackTime:I,fastSwitchThreshold:r,getBufferedHistory:y,neededRange:c,segmentsBeingPushed:g,maxBufferSize:o}),E=b.map(O=>({priority:fi(O.time,l),segment:O})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&c.hasReachedPeriodEnd&&E.length===0&&T.length===0,k=null;return g.length>0&&(k=Math.min(...g.map(O=>O.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),E.length>0&&(k=k!==null?Math.min(k,E[0].segment.time):E[0].segment.time),{imminentDiscontinuity:rd(n,c,k,R,p),hasFinishedLoading:R,neededSegments:E,isBufferFull:v,shouldRefreshManifest:f}}function ah(n,e,t){var c;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!_(s)&&Xt.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&sh(i,o,e)?r=s-1:r=e-.1;let u=r+t,l;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?l=!1:s===void 0?l=u>=o.end:s===null?l=!0:l=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(c=o.end)!=null?c:1/0),hasReachedPeriodEnd:l}}function sh(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}async function mi(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof Me)throw o;if(!(o instanceof it)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new ee("BUFFER_APPEND_ERROR",d,{tracks:[Qt(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream: Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(await e.removeBuffer(0,d),await e.removeBuffer(u,Number.MAX_VALUE),await mn(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof Me)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new ee("BUFFER_FULL_ERROR",u,{tracks:[Qt(t.inventoryInfos.adaptation)]})}}}async function ad({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){if(a.cancellationError!==null)throw a.cancellationError;let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=j({segment:r,chunkSize:void 0,start:0,end:0},e),l=await mi(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:l}}async function sd({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,x;if(i.chunkData===null)return null;if(s.cancellationError!==null)throw s.cancellationError;let{chunkData:d,chunkInfos:u,chunkOffset:l,chunkSize:c,appendWindow:f}=i,g=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:p}=U.getCurrent(),I=[f[0]!==void 0?Math.max(0,f[0]-p.START):void 0,f[1]!==void 0?f[1]+p.END:void 0],y={initSegmentUniqueId:r,chunk:d,timestampOffset:l,appendWindow:I,codec:g},b=(k=u==null?void 0:u.time)!=null?k:o.time,T=(x=u==null?void 0:u.duration)!=null?x:o.duration,v=b+T;I[0]!==void 0&&(b=Math.max(b,I[0])),I[1]!==void 0&&(v=Math.min(v,I[1]));let E=j({segment:o,chunkSize:c,start:b,end:v},t),R=await mi(n,a,{data:y,inventoryInfos:E},e,s);return{content:t,segment:o,buffered:R}}function dd({content:n,options:e,playbackObserver:t,segmentSink:r,segmentQueue:i,terminate:o},a,s){let{period:d,adaptation:u,representation:l}=n,{bufferGoal:c,maxBufferSize:f,drmSystemId:g,fastSwitchThreshold:p}=e,I=u.type,y=new B;y.linkToSignal(s);let b=new B;b.linkToSignal(y.signal);let T={segment:l.index.getInitSegment(),uniqueId:null,isLoaded:!1};y.signal.register(()=>{T.uniqueId!==null&&r.freeInitSegment(T.uniqueId)});let v=T.segment!==null;v||(T.isLoaded=!0);let E=!1;if(g!==void 0){let A=l.getEncryptionData(g);if(A.length>0&&A.every(L=>L.keyIds!==void 0)&&(E=!0,a.encryptionDataEncountered(A.map(L=>j({content:n},L))),y.isUsed()))return}i.addEventListener("error",A=>{b.signal.isCancelled()||(y.cancel(),a.error(A))}),i.addEventListener("parsedInitSegment",x,b.signal),i.addEventListener("parsedMediaSegment",x,b.signal),i.addEventListener("emptyQueue",k,b.signal),i.addEventListener("requestRetry",A=>{if(a.warning(A.error),b.signal.isCancelled())return;let L=A.segment,{index:O}=l;O.isSegmentStillAvailable(L)===!1?k():O.canBeOutOfSyncError(A.error,L)&&a.manifestMightBeOufOfSync()},b.signal),i.addEventListener("fullyLoadedSegment",A=>{r.signalSegmentComplete(j({segment:A},n)).catch(M)},b.signal);let R=i.resetForContent(n,v);b.signal.register(()=>{i.stop()}),t.listen(k,{includeLastObservation:!1,clearSignal:b.signal}),n.manifest.addEventListener("manifestUpdate",k,b.signal),c.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),f.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),o.onUpdate(k,{emitCurrentValue:!1,clearSignal:b.signal}),k();return;function k(){if(b.isUsed())return;let A=t.getReference().getValue(),L=A.position.getWanted(),O=od(n,L,t,p.getValue(),c.getValue(),f.getValue(),r),{neededSegments:F}=O,C=null;if(l.index.isInitialized()){if(F.length>0&&!T.isLoaded&&T.segment!==null){let N=F[0].priority;C={segment:T.segment,priority:N}}}else if(T.segment===null)m.warn("Stream: Uninitialized index without an initialization segment");else if(T.isLoaded)m.warn("Stream: Uninitialized index with an already loaded initialization segment");else{let N=A.position.getWanted();C={segment:T.segment,priority:fi(d.start,N)}}let P=o.getValue();if(P===null)R.setValue({initSegment:C,segmentQueue:F});else if(P.urgent){m.debug("Stream: Urgent switch, terminate now.",I),R.setValue({initSegment:null,segmentQueue:[]}),R.finish(),b.cancel(),a.terminating();return}else{let N=F[0],z=i.getRequestedInitSegment(),$=i.getRequestedMediaSegment(),q=$===null||N===void 0||$.id!==N.segment.id?[]:[N],W=z===null?null:C;if(R.setValue({initSegment:W,segmentQueue:q}),q.length===0&&W===null){m.debug("Stream: No request left, terminate",I),R.finish(),b.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:A.position.getWanted(),bufferType:I,imminentDiscontinuity:O.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:O.hasFinishedLoading,neededSegments:O.neededSegments}),b.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:D}=U.getCurrent();if(O.isBufferFull){let N=Math.max(0,L-D);N>0&&r.removeBuffer(0,N).catch(M)}O.shouldRefreshManifest&&a.needsManifestRefresh()}function x(A){if(!y.isUsed()){for(let L of A.protectionData)l.addProtectionData(L.initDataType,L.keyId,L.initData);if(!E){let L=l.getAllEncryptionData();if(L.length>0&&(a.encryptionDataEncountered(L.map(O=>j({content:n},O))),E=!0,y.isUsed()))return}if(A.segmentType==="init"){if(!l.index.isInitialized()&&A.segmentList!==void 0&&l.index.initialize(A.segmentList),T.isLoaded=!0,A.initializationData!==null){let L=l.uniqueId;T.uniqueId=L,r.declareInitSegment(L,A.initializationData),ad({playbackObserver:t,bufferGoal:c,content:n,initSegmentUniqueId:L,segment:A.segment,segmentData:A.initializationData,segmentSink:r},y.signal).then(O=>{O!==null&&a.addedSegment(O)}).catch(M)}k();return}else{let{inbandEvents:L,predictedSegments:O,needsManifestRefresh:F}=A;if(O!==void 0&&l.index.addPredictedSegments(O,A.segment),F===!0&&(a.needsManifestRefresh(),y.isUsed())||L!==void 0&&L.length>0&&(a.inbandEvent(L),y.isUsed()))return;let C=T.uniqueId;sd({playbackObserver:t,bufferGoal:c,content:n,initSegmentUniqueId:C,parsedSegment:A,segment:A.segment,segmentSink:r},y.signal).then(P=>{P!==null&&a.addedSegment(P)}).catch(M)}}}function M(A){y.isUsed()&&A instanceof Me||(y.cancel(),a.error(A))}}var sf=dd;function ud(n,e,t,r,i){var f,g,p,I;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let y of o)y.infos.period.id===n.id&&(y.infos.adaptation.id!==e.id||!Q(t.representationIds,y.infos.representation.id))&&Ht(a,{start:(f=y.bufferedStart)!=null?f:y.start,end:(g=y.bufferedEnd)!=null?g:y.end});let s=r.getPendingOperations();for(let y of s)if(y.type===0){let b=y.value.inventoryInfos;if(b.period.id===n.id&&(b.adaptation.id!==e.id||!Q(t.representationIds,b.representation.id))){let T=b.segment.time,v=T+b.segment.duration;Ht(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let y=i.getReadyState();if(y===void 0||y>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],l=Hn(o,n);if(l!==null&&(l.bufferedEnd===void 0||n.start-l.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:y}=U.getCurrent(),b=e.type,T=(p=y[b].before)!=null?p:0,v=(I=y[b].after)!=null?I:0,E=i.getCurrentTime();E===void 0&&(E=i.getReference().getValue().position.getPolled()),u.push({start:E-T,end:E+v})}if(n.end!==void 0){let y=Wn(o,n);y!==null&&(y.bufferedStart===void 0||y.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let c=po(a,u);return c.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:c}:{type:"clean-buffer",value:c}}function ld({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentQueueCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:l,period:c,adaptation:f}=e,g=new B;g.linkToSignal(u);let p=new Map,I=new G(null,g.signal),y,b=e.representations.getValue().representationIds,T=e.adaptation.representations.filter(C=>Q(b,C.id)&&C.decipherable!==!1&&C.isSupported!==!1),v=new G(T,g.signal),{estimates:E,callbacks:R}=r({manifest:l,period:c,adaptation:f},I,v,n,g.signal),k=o.createSegmentQueue(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics}),x=new G(0);E.onUpdate(({bitrate:C,knownStableBitrate:P})=>{t.enableFastSwitching&&x.setValueIfChanged(P),!(C===void 0||C===y)&&(y=C,m.debug(`Stream: new ${f.type} bitrate estimate`,C),d.bitrateEstimateChange({type:f.type,bitrate:C}))},{emitCurrentValue:!0,clearSignal:g.signal});let M;e.representations.onUpdate(C=>{M!==void 0&&M.cancel();let P=e.representations.getValue().representationIds,D=e.adaptation.representations.filter(N=>Q(P,N.id));v.setValueIfChanged(D),M=new B,M.linkToSignal(g.signal),A(C,M.signal).catch(N=>{(M==null?void 0:M.isUsed())===!0&&B.isCancellationError(N)||(g.cancel(),d.error(N))})},{clearSignal:g.signal,emitCurrentValue:!0});return;async function A(C,P){let D=ud(c,f,C,i,n);switch(D.type){case"continue":break;case"needs-reload":return _t(()=>{n.listen(()=>{if(P.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:N}=U.getCurrent(),z=N.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:c,timeOffset:z,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:P})});case"flush-buffer":case"clean-buffer":for(let N of D.value)if(await i.removeBuffer(N.start,N.end),P.isCancelled())return;if(D.type==="flush-buffer"&&(d.needsBufferFlush(),P.isCancelled()))return;break;default:Qe(D)}L(P)}function L(C){let P=new B;P.linkToSignal(C);let{representation:D}=E.getValue();if(D===null)return;let N=new G(null,P.signal);E.onUpdate(q=>{if(!(q.representation===null||q.representation.id===D.id))return q.urgent?(m.info("Stream: urgent Representation switch",f.type),N.setValue({urgent:!0})):(m.info("Stream: slow Representation switch",f.type),N.setValue({urgent:!1}))},{clearSignal:P.signal,emitCurrentValue:!0});let z={type:f.type,adaptation:f,period:c,representation:D};if(I.setValue(D),g.isUsed()||(d.representationChange(z),g.isUsed()))return;let $={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(q){g.cancel(),d.error(q)},addedSegment(q){R.addedSegment(q)},terminating(){if(!P.isUsed())return P.cancel(),L(C)}};O(D,N,$,C)}function O(C,P,D,N){let z=new B;z.linkToSignal(N);let $=on(a,H=>H*F(C),z.signal),q=f.type==="video"?s:new G(1/0);m.info("Stream: changing representation",f.type,C.id,C.bitrate);let W=j({},D,{error(H){var ae;let V=we(H,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(V.code!=="BUFFER_FULL_ERROR")D.error(H);else{let se=a.getValue(),Se=((ae=p.get(C.id))!=null?ae:1)*.7;if(Se<=.05||se*Se<=2)throw V;p.set(C.id,Se),Gt(4e3,g.signal).then(()=>O(C,P,D,N)).catch(X)}},terminating(){z.cancel(),D.terminating()}});sf({playbackObserver:n,content:{representation:C,adaptation:f,period:c,manifest:l},segmentSink:i,segmentQueue:k,terminate:P,options:{bufferGoal:$,maxBufferSize:q,drmSystemId:t.drmSystemId,fastSwitchThreshold:x}},W,N),l.addEventListener("manifestUpdate",H=>{for(let V of H.updatedPeriods)if(V.period.id===c.id){for(let ae of V.result.updatedAdaptations)if(ae.adaptation===f.id){for(let se of ae.removedRepresentations)if(se===C.id)return N.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:c,timeOffset:0,stayInPeriod:!0})}}else if(V.period.start>c.start)break},N)}function F(C){let P=p.get(C.id),D=P!==void 0?P:1;return P===void 0&&p.set(C.id,D),D}}var df=ld;function cd(n,e,t,r,i,o){var g,p,I,y;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!dh(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let b of a)b.infos.period.id===e.id&&b.infos.adaptation.id!==t.id&&Ht(s,{start:(g=b.bufferedStart)!=null?g:b.start,end:(p=b.bufferedEnd)!=null?p:b.end});let d=n.getPendingOperations();for(let b of d)if(b.type===0){let T=b.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,E=v+T.segment.duration;Ht(s,{start:v,end:E})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let b=i.getReadyState();if(b===void 0||b>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",l=[],c=Hn(a,e);if(c!==null&&(c.bufferedEnd===void 0||e.start-c.bufferedEnd<1)&&l.push({start:0,end:e.start+1}),!u){let b=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=U.getCurrent(),v=(I=T[b].before)!=null?I:0,E=(y=T[b].after)!=null?y:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),l.push({start:R-v,end:R+E})}if(e.end!==void 0){let b=Wn(a,e);b!==null&&(b.bufferedStart===void 0||b.bufferedStart-e.end<1)&&l.push({start:e.end-1,end:Number.MAX_VALUE})}let f=po(s,l);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function dh(n,e){return n.representations.some(t=>t.isSupported===!0&&t.decipherable!==!1&&Wo(t.getMimeTypeString(),e))}function fd({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentQueueCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},l,c){let{manifest:f,period:g}=e,p=new G(void 0,c);if(l.periodStreamReady({type:n,manifest:f,period:g,adaptationRef:p}),c.isCancelled())return;let I,y=!0;p.onUpdate(v=>{(async()=>{var C;if(v===void 0)return;let E=new B;if(E.linkToSignal(c),I==null||I.cancel(),I=E,v===null){m.info(`Stream: Set no ${n} Adaptation. P:`,g.start);let P=a.getStatus(n);if(P.type==="initialized"){if(m.info(`Stream: Clearing previous ${n} SegmentSink`),Xt.isNative(n))return T(0,!0,E.signal);{let D=(C=g.end)!=null?C:1/0;if(g.start>D)m.warn("Stream: Can't free buffer: period's start is after its end");else if(await P.value.removeBuffer(g.start,D),E.isUsed())return}}else if(P.type==="uninitialized"&&(a.disableSegmentSink(n),E.isUsed()))return;return l.adaptationChange({type:n,adaptation:null,period:g}),E.isUsed()?void 0:uf(r,d,n,{period:g},l,E.signal)}let R=g.adaptations[n],k=Z(R!=null?R:[],P=>P.id===v.adaptationId);if(k===void 0){I.cancel(),m.warn("Stream: Unfound chosen Adaptation choice",v.adaptationId);return}let{DELTA_POSITION_AFTER_RELOAD:x}=U.getCurrent(),M=!1,A;if(y)A=0;else if(v.relativeResumingPosition!==void 0)A=v.relativeResumingPosition;else switch(M=!0,n){case"audio":A=x.trackSwitch.audio;break;case"video":A=x.trackSwitch.video;break;default:A=x.trackSwitch.other;break}if(y=!1,Xt.isNative(n)&&a.getStatus(n).type==="disabled")return T(A,!0,E.signal);f.addEventListener("manifestUpdate",P=>{for(let D of P.updatedPeriods)if(D.period.id===g.id){for(let N of D.result.removedAdaptations)if(N.id===k.id)return T(A,!0,E.signal)}else if(D.period.start>g.start)break},I.signal);let{representations:L}=v;if(m.info(`Stream: Updating ${n} adaptation`,`A: ${k.id}`,`P: ${g.start}`),l.adaptationChange({type:n,adaptation:k,period:g}),E.isUsed())return;let O=uh(a,n,k),F=cd(O,g,k,v.switchingMode,r,s);if(F.type==="needs-reload")return T(A,!0,E.signal);if(await a.waitForUsableBuffers(E.signal),!E.isUsed()){if(F.type==="flush-buffer"||F.type==="clean-buffer"){for(let{start:P,end:D}of F.value)if(await O.removeBuffer(P,D),E.isUsed())return;if(F.type==="flush-buffer"&&(l.needsBufferFlush({relativeResumingPosition:A,relativePosHasBeenDefaulted:M}),E.isUsed()))return}t.get(O)(E.signal),b(k,L,O,E.signal)}})().catch(E=>{E instanceof Me||(I==null||I.cancel(),l.error(E))})},{clearSignal:c,emitCurrentValue:!0});function b(v,E,R,k){let x=ch(r,v.type);df({content:{manifest:f,period:g,adaptation:v,representations:E},options:s,playbackObserver:x,representationEstimator:i,segmentSink:R,segmentQueueCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},de(ie({},l),{error:M}),k);function M(A){if(!Xt.isNative(n)){m.error(`Stream: ${n} Stream crashed. Aborting it.`,A instanceof Error?A:""),a.disposeSegmentSink(n);let L=we(A,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return l.warning(L),k.isCancelled()?void 0:uf(r,d,n,{period:g},l,k)}m.error(`Stream: ${n} Stream crashed. Stopping playback.`,A instanceof Error?A:""),l.error(A)}}function T(v,E,R){_t(()=>{r.listen(()=>{R.isCancelled()||l.waitingMediaSourceReload({bufferType:n,period:g,timeOffset:v,stayInPeriod:E})},{includeLastObservation:!0,clearSignal:R})})}}function uh(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream: Reusing a previous SegmentSink for the type",e),r.value;let i=lh(t);return n.createSegmentSink(e,i)}function lh(n){let e=n.representations.filter(t=>t.isSupported===!0&&t.decipherable!==!1);if(e.length===0)throw new ee("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Qt(n)]});return e[0].getMimeTypeString()}function ch(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new G(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],l=u!==null?mo(u,d.position.getWanted()):0;return j({},d,{bufferGap:l,buffered:u})}function s(){o.setValue(a())}})}function uf(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),l=e.getValue(),c=u.position.getWanted();a.end!==void 0&&c+l>=a.end&&(m.debug('Stream: full "empty" AdaptationStream',t),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:c,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var lf=fd;function ta(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory();for(let i of r)if(e.some(a=>i.infos.period.id===a.period.id&&i.infos.adaptation.id===a.adaptation.id&&i.infos.representation.id===a.representation.id)){let{bufferedStart:a,bufferedEnd:s}=i;if(a===void 0||s===void 0)return m.warn("SO: No buffered start or end found from a segment."),[{start:0,end:Number.MAX_VALUE}];let d=t[t.length-1];d!==void 0&&d.end===a?d.end=s:t.push({start:a,end:s})}return t}function md(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:l,maxBufferBehind:c,wantedBufferAhead:f,maxVideoBufferSize:g}=o,{MINIMUM_MAX_BUFFER_AHEAD:p,MAXIMUM_MAX_BUFFER_AHEAD:I,MAXIMUM_MAX_BUFFER_BEHIND:y}=U.getCurrent(),b=new ci(E=>{var M,A;let{bufferType:R}=E,k=(M=y[R])!=null?M:1/0,x=(A=I[R])!=null?A:1/0;return L=>{Zo({segmentSink:E,playbackObserver:e,maxBufferBehind:on(c,O=>Math.min(O,k),L),maxBufferAhead:on(l,O=>{var C;let F=Math.max(O,(C=p[R])!=null?C:0);return Math.min(F,x)},L)},L)}});for(let E of r.getBufferTypes())T(E,u);function T(E,R){let k=new Sn((F,C)=>F.start-C.start),x=!1,M=new B;return M.linkToSignal(s),e.listen(({position:F})=>{var D;let C=F.getWanted();if(!x||!L(C))return;for(m.info("Stream: Destroying all PeriodStreams due to out of bounds situation",E,C),x=!1;k.length()>0;){let N=k.get(k.length()-1);k.removeElement(N),a.periodStreamCleared({type:E,manifest:d,period:N})}M.cancel(),M=new B,M.linkToSignal(s);let P=(D=d.getPeriodForTime(C))!=null?D:d.getNextPeriod(C);if(P===void 0){m.warn("Stream: The wanted position is not found in the Manifest."),x=!0;return}A(P)},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",F=>{s.isCancelled()||O(F).catch(C=>{s.isCancelled()||(M.cancel(),a.error(C))})},s),A(R);function A(F){let C=de(ie({},a),{waitingMediaSourceReload(P){let D=k.head();D===void 0||D.id!==P.period.id?a.lockedStream({bufferType:P.bufferType,period:P.period}):a.needsMediaSourceReload({timeOffset:P.timeOffset,minimumPosition:P.stayInPeriod?P.period.start:void 0,maximumPosition:P.stayInPeriod?P.period.end:void 0})},periodStreamReady(P){x=!0,k.add(P.period),a.periodStreamReady(P)},periodStreamCleared(P){k.removeElement(P.period),a.periodStreamCleared(P)},error(P){M.cancel(),a.error(P)}});v(E,F,C,M.signal)}function L(F){let C=k.head(),P=k.last();return C===void 0||P===void 0?!0:C.start>F||(_(P.end)?1/0:P.end)<F}async function O(F){let C=r.getStatus(E),P=F.filter(W=>W.adaptation.type===E);if(P.length===0||C.type!=="initialized"||P.every(W=>W.representation.decipherable===!0))return;let D=C.value,N=P.filter(W=>W.representation.decipherable===void 0),z=P.filter(W=>W.representation.decipherable===!1),$=ta(D,z),q=ta(D,N);for(x=!1,m.info("Stream: Destroying all PeriodStreams for decipherability matters",E);k.length()>0;){let W=k.get(k.length()-1);k.removeElement(W),a.periodStreamCleared({type:E,manifest:d,period:W})}M.cancel(),M=new B,M.linkToSignal(s);for(let{start:W,end:H}of[...$,...q]){if(s.isCancelled())return;if(W<H){if(s.isCancelled())return;await D.removeBuffer(W,H)}}_t(()=>{if(s.isCancelled())return;let W=e.getReference().getValue();if(cf(W,$)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(cf(W,q)&&(a.needsBufferFlush(),s.isCancelled()))return;let H=W.position.getWanted(),V=d.getPeriodForTime(H);if(V===void 0){a.error(new ee("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}A(V)})}}function v(E,R,k,x){m.info("Stream: Creating new Stream for",E,R.start);let M=null,A=new B;A.linkToSignal(x),e.listen(({position:P},D)=>{if(R.end!==void 0&&P.getWanted()>=R.end){let N=d.getPeriodAfter(R);if(R.containsTime(P.getWanted(),N))return;m.info("Stream: Destroying PeriodStream as the current playhead moved above it",E,R.start,P.getWanted(),R.end),D(),k.periodStreamCleared({type:E,manifest:d,period:R}),A.cancel()}},{clearSignal:x,includeLastObservation:!0});let L={bufferType:E,content:{manifest:d,period:R},garbageCollectors:b,maxVideoBufferSize:g,segmentQueueCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},O=de(ie({},k),{streamStatusUpdate(P){if(P.hasFinishedLoading){let D=d.getPeriodAfter(R);D!==null&&F(D)}else M!==null&&(m.info("Stream: Destroying next PeriodStream due to current one being active",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null);k.streamStatusUpdate(P)},error(P){M!==null&&(M.canceller.cancel(),M=null),A.cancel(),k.error(P)}});lf(L,O,A.signal),C(A.signal);function F(P){if(M!==null){if(M.period.id===P.id)return;m.warn("Stream: Creating next `PeriodStream` while one was already created.",E,P.id,M.period.id),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel()}let D=new B;D.linkToSignal(x),M={canceller:D,period:P},v(E,P,k,M.canceller.signal)}function C(P){d.addEventListener("manifestUpdate",D=>{for(let N of D.removedPeriods)if(N.id===R.id){if(d.periods.length>0&&d.periods[0].start<=N.start)return _t(()=>{if(!P.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(N.start>R.start)break;if(D.addedPeriods.length>0&&M!==null){let N=d.getPeriodAfter(R);(N===null||M.period.id!==N.id)&&(m.warn("Stream: Destroying next PeriodStream due to new one being added",E,M.period.start),k.periodStreamCleared({type:E,manifest:d,period:M.period}),M.canceller.cancel(),M=null)}},P)}}}function cf(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var ff=md;var mf=ff;var fh={dashParsers:{wasm:null,native:null,fastJs:null},createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},pi=fh;function na(n){for(let e of n)if(typeof e=="function")e(pi);else if(!_(e)&&typeof e._addFeature=="function")e._addFeature(pi);else throw new Error("Unrecognized feature")}var me=pi;var mh={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},X),{syncValue:e,getValueAsAsync(){return n}}}},pf=mh;var qn=class extends oe{};function pd(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=Z(n.sourceBuffers,s=>s.type==="audio"),i=Z(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function gd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,l){let c=new B;c.linkToSignal(l),c.linkToSignal(s);let f=new G(g(),c.signal);return o.onUpdate(p,{clearSignal:c.signal,emitCurrentValue:!1}),u.onUpdate(p,{clearSignal:c.signal,emitCurrentValue:!1}),f;function g(){let I=u.getValue(),y=o.getValue();return ph(I,r),{maximumPosition:bt(r),bufferGap:I.bufferGap,position:I.position,buffered:pd(i,a),duration:I.duration,rebuffering:I.rebuffering,freezing:I.freezing,paused:{last:I.paused,pending:gh(t,e)},readyState:I.readyState,speed:y}}function p(){f.setValue(g())}})}function ph(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function gh(n,e){return n.getValue()?void 0:!e}function jn(n){let{textTracks:e}=n;if(!_(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("Compat: Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}function hd(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function hh(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function gi(n,e){if(m.debug("Init: Trying to call endOfStream"),n.readyState!=="open"){m.debug("Init: MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=hh(t);if(r.length===0){m.info("Init: Triggering end of stream");try{n.endOfStream()}catch(o){m.error("Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");let i=new B;i.linkToSignal(e);for(let o of r)lc(o,()=>{i.cancel(),gi(n,e)},i.signal);cc(t,()=>{i.cancel(),gi(n,e)},i.signal)}function gf(n,e){let t=new B;t.linkToSignal(e),Ln(n,()=>{m.debug("Init: MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new B,t.linkToSignal(e),gi(n,t.signal)},e),gi(n,t.signal)}function yd(){return ln}var yh=365*24*3600,hi=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new B;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=Sh(r,i),a=new B;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new B,a.linkToSignal(i);let d=bh(r.sourceBuffers,a.signal),u=new B;return u.linkToSignal(a.signal),d.onUpdate(l=>{u.cancel(),u=new B,u.linkToSignal(a.signal),!l&&yf(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function Ih(n,e,t){let r=e;t||(r=yd()?1/0:hf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("Init: Updating duration to what is currently buffered",i),n.duration=i}catch(o){return m.warn("Duration Updater: Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("Init: Updating duration",r),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=hf(e);m.info("Init: calling `mediaSource.setLiveSeekableRange`",s),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("Duration Updater: Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function bh(n,e){if(n.length===0){let i=new G(!1);return i.finish(),i}let t=new G(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function Sh(n,e){let t=new G(n.readyState==="open",e);return Ln(n,()=>{m.debug("Init: Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),vo(n,()=>{m.debug("Init: Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),Eo(n,()=>{m.debug("Init: Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function yf(n,e,t,r){if(Ih(n,e,t)==="success")return;let o=setTimeout(()=>{a(),yf(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function hf(n){return Math.max(Math.pow(2,32),n+yh)}var yi=class extends oe{constructor(e){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new B,_(an))throw new ee("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("Init: Creating MediaSource");let t=new an,r=t.handle;this.handle=_(r)?{type:"media-source",value:t}:{type:"handle",value:r},this._mediaSource=t,this.readyState=t.readyState,this._durationUpdater=new hi(t),this._endOfStreamCanceller=null,Ln(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),vo(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),Eo(t,()=>{this.readyState=t.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal)}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new Id(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new B,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("Init: end-of-stream order received."),gf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("Init: resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),Th(this._mediaSource)}},Id=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new B,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=a=>{let s;a instanceof Error?s=a:a.error instanceof Error?s=a.error:s=new Error("Unknown SourceBuffer Error");let d=this._currentOperations;if(this._currentOperations=[],d.length===0)m.error("SBI: error for an unknown operation",s);else{let u=new it(s.name,s.message,s.name==="QuotaExceededError");for(let l of d)l.reject(u)}},o=()=>{let a=this._currentOperations;this._currentOperations=[];try{for(let s of a)s.resolve(Pe(this._sourceBuffer.buffered))}catch(s){for(let d of a)s instanceof Error&&s.name==="InvalidStateError"?d.resolve([]):d.reject(s)}this._performNextOperation()};r.addEventListener("updateend",o),r.addEventListener("error",i),this._canceller.signal.register(()=>{r.removeEventListener("updateend",o),r.removeEventListener("error",i)})}appendBuffer(...e){return m.debug("SBI: receiving order to push data to the SourceBuffer",this.type),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("SBI: receiving order to remove data from the SourceBuffer",this.type,e,t),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Pe(this._sourceBuffer.buffered)}catch(e){return m.error("Failed to get buffered time range of SourceBuffer",this.type,e instanceof Error?e:null),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("Init: Failed to abort SourceBuffer:",e instanceof Error?e:null)}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_emptyCurrentQueue(){let e=new Me;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=j({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let l;s instanceof ArrayBuffer?l=new Uint8Array(s):s instanceof Uint8Array?l=s:l=new Uint8Array(s.buffer);let c=[l];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],g=(r=d.appendWindow)!=null?r:[void 0,void 0],p=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],I=(o=d.timestampOffset)!=null?o:0,y=(a=f.params[1].timestampOffset)!=null?a:0;if(g[0]===p[0]&&g[1]===p[1]&&d.codec===f.params[1].codec&&I===y){let b=f.params[0],T;b instanceof ArrayBuffer?T=new Uint8Array(b):b instanceof Uint8Array?T=b:T=new Uint8Array(b.buffer),c.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}c.length>1&&(m.info(`MMSI: Merging ${c.length} segments together for perf`,this.type),u=re(...c))}try{this._appendBufferNow(u,d)}catch(l){let c=l instanceof Error?new it(l.name,l.message,l.name==="QuotaExceededError"):new it("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(c)}),this._currentOperations=[]}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("SBI: removing data from SourceBuffer",this.type,s,d);try{this._sourceBuffer.remove(s,d)}catch(u){let l=u instanceof Error?new it(u.name,u.message,!1):new it("Error","Unknown SourceBuffer Error during remove",!1);e.reject(l),this._currentOperations=[]}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("SBI: updating codec",i),hd(r,i)?this.codec=i:m.debug("SBI: could not update codec",i,this.codec)),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("SBI: updating timestampOffset",i,r.timestampOffset,s),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("SBI: re-setting `appendWindowStart` to `0`"),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("SBI: pre-updating `appendWindowEnd`",s),r.appendWindowEnd=s}m.debug("SBI: setting `appendWindowStart`",a[0]),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("SBI: re-setting `appendWindowEnd` to `Infinity`"),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("SBI: setting `appendWindowEnd`",a[1]),r.appendWindowEnd=a[1]),m.debug("SBI: pushing segment",this.type),r.appendBuffer(e)}};function Th(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("Init: Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("Init: Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("Init: Not all SourceBuffers could have been removed.")}}var _h=Je();function bd(n,e){if(e!==null&&n.src===e&&(m.info("Init: Clearing HTMLMediaElement's src"),jn(n)),e!==null)try{m.debug("Init: Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("Init: Error while revoking the media source URL",t instanceof Error?t:"")}}function Eh(n,e){let t=w(n.src)?n.src:null;bd(n,t);let r=new yi(_h());return e.register(()=>{r.dispose()}),r}function ra(n,e){return ot(e,t=>{let r=Eh(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("Init: MediaSource opened"),t(r)},e),m.info("MTCI: Attaching MediaSource URL to the media element"),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{bd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{bd(n,i)})}})}function Sd(n,e,t){var i;if(!_(t)){let o=yn(n),a=bt(n);if(_(t.position))if(_(t.wallClockTime))if(_(t.fromFirstPosition))if(_(t.fromLastPosition))if(_(t.fromLivePosition)){if(!_(t.percentage)){m.debug("Init: using startAt.percentage");let{percentage:s}=t;if(s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{m.debug("Init: using startAt.fromLivePosition");let s=(i=In(n))!=null?i:a,{fromLivePosition:d}=t;return d>=0?s:Math.max(o,s+d)}else{m.debug("Init: using startAt.fromLastPosition");let{fromLastPosition:s}=t;return s>=0?a:Math.max(o,a+s)}else{m.debug("Init: using startAt.fromFirstPosition");let{fromFirstPosition:s}=t;return s<=0?o:Math.min(a,o+s)}else{m.debug("Init: using startAt.wallClockTime");let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return Math.max(Math.min(d,a),o)}else return m.debug("Init: using startAt.minimumPosition"),Math.max(Math.min(t.position,a),o)}let r=yn(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=bt(n),d,{DEFAULT_LIVE_GAP:u}=U.getCurrent();if(a===void 0)m.info("Init: no clock offset found for a live content, starting close to maximum available position"),d=s;else{m.info("Init: clock offset found for a live content, checking if we can start close to it");let c=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(K()+a)/1e3-c;d=Math.min(s,f)}let l=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug(`Init: ${d} defined as the live time, applying a live gap of ${l}`),Math.max(d-l,r)}return m.info("Init: starting at the minimum available position:",r),r}function Ii(){return Ua}function Td(n){return!(n&&un)}function _d(){return ln}function bi(n,e,t,r){let i=new B;i.linkToSignal(r);let o=new G(!1,i.signal);return n.listen(a=>{if(a.rebuffering!==null||a.freezing!==null||a.readyState===0)return;if(!Td(t)){if(isNaN(e.duration))return;if(e.duration>0){o.setValue(!0),i.cancel();return}}let s=_d()?4:3;if(a.readyState>=s&&(a.currentRange!==null||a.ended)&&(!Ii()||e.duration>0)){o.setValue(!0),i.cancel();return}},{includeLastObservation:!0,clearSignal:i.signal}),o}var vh=!un,If=vh;var Yn=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function Si({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new G(!1,a);return{autoPlayResult:new Promise((u,l)=>{let c=a.register(b=>{l(b)});if(a.isCancelled())return;let f=!1,g=b=>{e.setCurrentTime(b),f=!0};if(!i||typeof t=="number"){let b=typeof t=="number"?t:t();b!==0&&g(b),p()}else e.listen((b,T)=>{if(b.readyState>=1){T();let v=typeof t=="number"?t:t();v!==0&&(If?g(v):setTimeout(()=>{g(v)},0)),p()}},{includeLastObservation:!0,clearSignal:a});function p(){let b=!1;e.listen((T,v)=>{if(!b&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(b=!0),!(f&&!b||T.readyState===0)){if(v(),Ii()&&n.duration===0){let E=new ee("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(E)}a.isCancelled()||I()}},{includeLastObservation:!0,clearSignal:a})}function I(){e.listen((b,T)=>{b.seeking===0&&b.rebuffering===null&&b.readyState>=1&&(T(),y())},{includeLastObservation:!0,clearSignal:a})}function y(){var T;if(m.info("Init: Can begin to play content"),r){if(n.ended)return m.warn("Init: autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),c(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init: autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),c(),u({type:"skipped"});let b;try{b=(T=n.play())!=null?T:Promise.resolve()}catch(v){return c(),l(v)}b.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),c(),u({type:"autoplay"})}).catch(v=>{if(c(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init: Media element can't play. It may be due to browser auto-play policies.");let E=new ee("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(E),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else l(v)})}}),initialPlayPerformed:s}}function Ti(n,e,t,r){if(e.length===0)return u("No `keySystems` option given.");if(me.decrypt===null)return u("EME feature not activated.");let i=new B;i.linkToSignal(r);let o=new G({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},r),a=me.decrypt;if(!a.hasEmeApis())return u("EME API not available on the current page.");m.debug("Init: Creating ContentDecryptor");let s=new a(n,e),d=l=>{var c;l>0&&((c=t.onCodecSupportUpdate)==null||c.call(t),s.removeEventListener("stateChange",d))};return s.addEventListener("stateChange",d),s.addEventListener("stateChange",l=>{if(l===1){let c=new G(!1);c.onUpdate((f,g)=>{f&&(g(),l===1&&s.attach())},{clearSignal:i.signal}),o.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:c}},drmSystemId:s.systemId})}else l===2&&(o.setValue({initializationState:{type:"initialized",value:null},drmSystemId:s.systemId}),s.removeEventListener("stateChange"))}),s.addEventListener("error",l=>{i.cancel(),t.onError(l)}),s.addEventListener("warning",l=>{t.onWarning(l)}),s.addEventListener("blackListProtectionData",l=>{t.onBlackListProtectionData(l)}),s.addEventListener("keyIdsCompatibilityUpdate",l=>{t.onKeyIdsCompatibilityUpdate(l)}),i.signal.register(()=>{s.dispose()}),{statusRef:o,contentDecryptor:{enabled:!0,value:s}};function u(l){let c=new pe("MEDIA_IS_ENCRYPTED_ERROR",l),f=new G({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return f.finish(),{statusRef:f,contentDecryptor:{enabled:!1,value:c}}}}var _i=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};var Ei=1/60,Tn=class extends oe{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new B}start(){if(this._isStarted)return;this._isStarted=!0;let e=new Rd(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()});let t=null;this._playbackObserver.listen(r=>{let i=this._discontinuitiesStore,{buffered:o,position:a,readyState:s,rebuffering:d,freezing:u}=r,{BUFFER_DISCONTINUITY_THRESHOLD:l,FREEZING_STALLED_DELAY:c,UNFREEZING_SEEK_DELAY:f,UNFREEZING_DELTA_POSITION:g}=U.getCurrent();if(u!==null){let T=K(),v=t===null?u.timestamp:t.attemptTimestamp;if(!a.isAwaitingFuturePosition()&&T-v>f&&(m.warn("Init: trying to seek to un-freeze player"),this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime()+g),t={attemptTimestamp:T}),T-u.timestamp>c){d===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}}else t=null;if(d===null){if(e.stopRebuffering(),s===1){let T;r.seeking!==0?T=r.seeking===1?"internal-seek":"seeking":T="not-ready",this.trigger("stalled",T);return}this.trigger("unstalled",null);return}let p=d.reason==="seeking"&&r.seeking===1?"internal-seek":d.reason;if(a.isAwaitingFuturePosition()){e.stopRebuffering(),m.debug("Init: let rebuffering happen as we're awaiting a future position"),this.trigger("stalled",p);return}if(e.startRebuffering(),this._manifest===null){this.trigger("stalled",p);return}let{position:I}=d;if(I!=null&&this._speed.getValue()>0){let T=Rh(i,this._manifest,I);if(T!==null){let v=T+.001;if(v<=this._playbackObserver.getCurrentTime())m.info("Init: position to seek already reached, no seeking",this._playbackObserver.getCurrentTime(),v);else{m.warn("SA: skippable discontinuity found in the stream",a.getPolled(),v),this._playbackObserver.setCurrentTime(v),this.trigger("warning",vd(I,v));return}}}let y=I!=null?I:a.getPolled(),b=zl(o,y);if(this._speed.getValue()>0&&b<l){let T=y+b+Ei;if(this._playbackObserver.getCurrentTime()<T){m.warn("Init: discontinuity encountered inferior to the threshold",y,T,l),this._playbackObserver.setCurrentTime(T),this.trigger("warning",vd(y,T));return}}for(let T=this._manifest.periods.length-2;T>=0;T--){let v=this._manifest.periods[T];if(v.end!==void 0&&v.end<=y){if(this._manifest.periods[T+1].start>y&&this._manifest.periods[T+1].start>this._playbackObserver.getCurrentTime()){let E=this._manifest.periods[T+1];this._playbackObserver.setCurrentTime(E.start),this.trigger("warning",vd(y,E.start));return}break}}this.trigger("stalled",p)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();kh(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(!r.rebuffering||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn(`Init: rebuffering because of a future locked stream.
|
|
4
|
+
Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function Rh(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:l}=s,c=u!=null?u:d;if(t>=c-Ei)if(l===null){let f=qo(e,o);f!==null?a=f.start+Ei:m.warn("Init: discontinuity at Period's end but no next Period")}else t<l+Ei&&(a=l+Ei);a!==void 0&&(m.info("Init: discontinuity found",t,a),r=r!==null&&r>a?r:a)}}return r}function Ed(n){return n.discontinuity!==null}function kh(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){Ed(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){Ed(e)&&n.splice(a,0,e);return}Ed(e)&&n.push(e)}}function vd(n,e){return new ee("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeked at position "+String(e))}var Rd=class{constructor(e,t){this._speedUpdateCanceller=new B,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init: Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new B,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init: Resume playback speed",e),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function Ch(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var bf=Ch;function Ph(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(bf(f,{id:d,start:a,end:s})){t.push(f);return}let l;if(u.value.element!==void 0)l=u.value.element;else if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((p,I)=>p+"xmlns:"+I.key+'="'+I.value+'" ',"<toremove ");f+=">";let g=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;l=g.children.length>0?g.children[0]:g.childNodes[0]}else return;let c={type:u.type,value:de(ie({},u.value),{element:l})};if(s===void 0){let f={start:a,id:d,data:c,publicEvent:{start:a,data:c}};t.push(f)}else{let f={start:a,end:s,id:d,data:c,publicEvent:{start:a,end:s,data:c}};t.push(f)}})}return t}var kd=Ph;var vi=class extends oe{constructor(e,t,r){super(),this._manifest=e,this._mediaElement=t,this._playbackObserver=r,this._canceller=null,this._scheduledEventsRef=new G([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new B;let e=this._canceller.signal,t=this._playbackObserver,r=this._mediaElement,i=!1,o=new B;o.linkToSignal(e),this._scheduledEventsRef.setValue(kd([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:a})=>{if(a===0){i&&(o.cancel(),o=new B,o.linkToSignal(e),i=!1);return}else if(i)return;i=!0;let s=c(),d=()=>{let f=c();this._emitStreamEvents(this._scheduledEventsRef.getValue(),s,f,o.signal),s=f},{STREAM_EVENT_EMITTER_POLL_INTERVAL:u}=U.getCurrent(),l=setInterval(d,u);t.listen(d,{includeLastObservation:!1,clearSignal:o.signal}),o.signal.register(()=>{clearInterval(l)});function c(){let f=t.getReference().getValue(),g=r.currentTime,p=f.seeking!==0;return{currentTime:g,isSeeking:p}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(kd(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let l=0;l<e.length;l++){let c=e[l],f=c.start,g=Cd(c)?c.end:void 0;this._eventsBeingPlayed.has(c)?(f>s||g!==void 0&&s>=g)&&(Cd(c)&&u.push(c.publicEvent),this._eventsBeingPlayed.delete(c)):f<=s&&g!==void 0&&s<g?(d.push({type:"stream-event",value:c.publicEvent}),this._eventsBeingPlayed.set(c,!0)):o<f&&s>=(g!=null?g:f)&&(a?d.push({type:"stream-event-skip",value:c.publicEvent}):(d.push({type:"stream-event",value:c.publicEvent}),Cd(c)&&u.push(c.publicEvent)))}if(d.length>0){for(let l of d)if(l.type==="stream-event"?this.trigger("event",l.value):this.trigger("eventSkip",l.value),i.isCancelled())return}if(u.length>0){for(let l of u)if(typeof l.onExit=="function"&&l.onExit(),i.isCancelled())return}}};function Cd(n){return n.end!==void 0}var Sf=vi;function Ri(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(_(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new ee("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new ee("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new ee("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new ee("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new ee("MEDIA_ERR_UNKNOWN",a))}}}var _n=class extends qn{constructor(e){super(),this._settings=e,this._initCanceller=new B,this._manifest=null,this._decryptionCapabilities={status:"uninitialized",value:null};let t=e.url===void 0?void 0:[e.url];this._cmcdDataBuilder=e.cmcd===void 0?null:new tc(e.cmcd),this._manifestFetcher=new $s(t,e.transport,de(ie({},e.manifestRequestSettings),{lowLatencyMode:e.lowLatencyMode,cmcdDataBuilder:this._cmcdDataBuilder}))}prepare(){this._manifest===null&&(this._manifest=pf.createAsync(ot(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),Ri(e,r=>this._onFatalError(r),this._initCanceller.signal),this._initializeMediaSourceAndDecryption(e).then(r=>this._onInitialMediaSourceReady(e,r.mediaSource,t,r.drmSystemId,r.unlinkMediaSource)).catch(r=>{this._onFatalError(r)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_initializeMediaSourceAndDecryption(e){let t=this._initCanceller;return ot(t.signal,r=>{let{keySystems:i}=this._settings,{statusRef:o,contentDecryptor:a}=Ti(e,i,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();Ah(d,s)})().catch(X)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();Mh(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(X)},onCodecSupportUpdate:()=>{var d,u;let s=(d=this._manifest)==null?void 0:d.syncValue;_(s)?(u=this._manifest)==null||u.getValueAsAsync().then(l=>{this._initCanceller.isUsed()||this._refreshManifestCodecSupport(l)},X):this._refreshManifestCodecSupport(s)}},t.signal);a.enabled?this._decryptionCapabilities={status:"enabled",value:a.value}:this._decryptionCapabilities={status:"disabled",value:a.value},o.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new B;u.linkToSignal(t.signal),ra(e,u.signal).then(l=>{let c=o.getValue();if(c.initializationState.type==="awaiting-media-link")c.initializationState.value.isMediaLinked.setValue(!0),o.onUpdate((f,g)=>{if(f.initializationState.type==="initialized"){g(),r({mediaSource:l,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:t.signal});else if(s.initializationState.type==="initialized"){r({mediaSource:l,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(l=>{u.isUsed()||this._onFatalError(l)})},{emitCurrentValue:!0,clearSignal:t.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o){var A;let{adaptiveOptions:a,autoPlay:s,bufferOptions:d,lowLatencyMode:u,segmentRequestOptions:l,speed:c,startAt:f,textTrackOptions:g,transport:p}=this._settings,I=this._initCanceller;J(this._manifest!==null);let y;try{y=(A=this._manifest.syncValue)!=null?A:await this._manifest.getValueAsAsync()}catch(L){return}y.addEventListener("manifestUpdate",L=>{this.trigger("manifestUpdate",L),this._refreshManifestCodecSupport(y)},I.signal),y.addEventListener("decipherabilityUpdate",L=>{this.trigger("decipherabilityUpdate",L)},I.signal),y.addEventListener("supportUpdate",()=>{this.trigger("codecSupportUpdate",null)},I.signal),m.debug("Init: Calculating initial time");let b=Sd(y,u,f);m.debug("Init: Initial time calculated:",b);let T=Jl(a),v=j({textTrackOptions:g,drmSystemId:i},d),E=new Js(p,this._cmcdDataBuilder,l,I.signal);if(this._refreshManifestCodecSupport(y),this.trigger("manifestReady",y),I.isUsed())return;let R=this._startBufferingOnMediaSource.bind(this),k=this.trigger.bind(this),x=this._onFatalError.bind(this);M(t,b,s,o);function M(L,O,F,C){R({mediaElement:e,playbackObserver:r,mediaSource:L,initialTime:O,autoPlay:F,manifest:y,representationEstimator:T,segmentQueueCreator:E,speed:c,bufferOptions:v},D,C.signal);function D(N){if(C.cancel(),I.isUsed()||(k("reloadingMediaSource",N),I.isUsed()))return;let z=new B;z.linkToSignal(I.signal),ra(e,z.signal).then($=>{M($,N.position,N.autoPlay,z)}).catch($=>{z.isUsed()||x($)})}}}_startBufferingOnMediaSource(e,t,r){var O,F;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:l,representationEstimator:c,segmentQueueCreator:f,speed:g}=e,p=(O=s.getPeriodForTime(a))!=null?O:s.getNextPeriod(a);if(p===void 0){let C=new ee("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(C)}let I=null,y=null;if(this._settings.textTrackOptions.textTrackMode==="html"&&me.htmlTextDisplayer!==null?y=new me.htmlTextDisplayer(d,this._settings.textTrackOptions.textTrackElement):me.nativeTextDisplayer!==null&&(y=new me.nativeTextDisplayer(d)),y!==null){let C=new _i(y);I=C,r.register(()=>{C.stop(),y==null||y.stop()})}let b=new Xt(u,d.nodeName==="VIDEO",I);r.register(()=>{b.disposeAll()});let{autoPlayResult:T,initialPlayPerformed:v}=Si({mediaElement:d,playbackObserver:l,startTime:a,mustAutoPlay:i,onWarning:C=>{this.trigger("warning",C)},isDirectfile:!1},r);if(r.isCancelled())return;v.onUpdate((C,P)=>{if(C){P();let D=new Sf(s,d,l);s.addEventListener("manifestUpdate",()=>{D.onManifestUpdate(s)},r),D.addEventListener("event",N=>{this.trigger("streamEvent",N)},r),D.addEventListener("eventSkip",N=>{this.trigger("streamEventSkip",N)},r),D.start(),r.register(()=>{D.stop()})}},{clearSignal:r,emitCurrentValue:!0});let E=gd(l,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:y,initialPlayPerformed:v,speed:g},r);(F=this._cmcdDataBuilder)==null||F.startMonitoringPlayback(E),r.register(()=>{var C;(C=this._cmcdDataBuilder)==null||C.stopMonitoringPlayback()});let R=this._createRebufferingController(l,s,g,r),k=new oi(b);Ll&&s.addEventListener("decipherabilityUpdate",C=>{C.some(P=>P.representation.decipherable!==!0)&&L(0,void 0,void 0)},r),l.listen(C=>{if(k.needToReload(C)){let P,D=l.getReference().getValue();D.position.isAwaitingFuturePosition()?P=D.position.getWanted():P=l.getCurrentTime();let N=v.getValue()?!l.getIsPaused():i;t({position:P,autoPlay:N})}},{clearSignal:r}),E.listen(C=>{["video","audio","text"].forEach(P=>{var N;let D=b.getStatus(P);D.type==="initialized"&&D.value.synchronizeInventory((N=C.buffered[P])!=null?N:[])})},{clearSignal:r});let x=td(s,u,E,b,{onWarning:C=>this.trigger("warning",C),onPeriodChanged:C=>this.trigger("activePeriodChanged",{period:C})},r);T.then(()=>{bi(l,d,!1,r).onUpdate((C,P)=>{C&&(P(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(D=>D(b.getSegmentSinksMetrics()))}))},{emitCurrentValue:!0,clearSignal:r})}).catch(C=>{r.isCancelled()||this._onFatalError(C)});let M=this;mf({manifest:s,initialPeriod:p},E,c,b,f,o,A(),r);function A(){return{needsBufferFlush:C=>{var $;let P,D=l.getCurrentTime(),N=($=C==null?void 0:C.relativeResumingPosition)!=null?$:0,z=!!(C!=null&&C.relativePosHasBeenDefaulted);N===0&&z?P=D+.001:P=D+N,l.setCurrentTime(P),l.listen((q,W)=>{(q.currentRange!==null||q.position.getPolled()>P+.1)&&(W(),l.setCurrentTime(q.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(C){let{period:P,bufferType:D,imminentDiscontinuity:N,position:z}=C;R.updateDiscontinuityInfo({period:P,bufferType:D,discontinuity:N,position:z}),!r.isCancelled()&&s.isLastPeriodKnown&&C.period.id===s.periods[s.periods.length-1].id&&(C.hasFinishedLoading||C.isEmptyStream?x.onLastSegmentFinishedLoading(C.bufferType):x.onLastSegmentLoadingResume(C.bufferType))},needsManifestRefresh:()=>M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:C}=U.getCurrent();M._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:C})},lockedStream:C=>R.onLockedStream(C.bufferType,C.period),adaptationChange:C=>{M.trigger("adaptationChange",C),!r.isCancelled()&&x.onAdaptationChange(C.type,C.period,C.adaptation)},representationChange:C=>{M.trigger("representationChange",C),!r.isCancelled()&&x.onRepresentationChange(C.type,C.period)},inbandEvent:C=>M.trigger("inbandEvents",C),warning:C=>M.trigger("warning",C),periodStreamReady:C=>M.trigger("periodStreamReady",C),periodStreamCleared:C=>{x.onPeriodCleared(C.type,C.period),!r.isCancelled()&&M.trigger("periodStreamCleared",C)},bitrateEstimateChange:C=>{var P;(P=M._cmcdDataBuilder)==null||P.updateThroughput(C.type,C.bitrate),M.trigger("bitrateEstimateChange",C)},needsMediaSourceReload:C=>{L(C.timeOffset,C.minimumPosition,C.maximumPosition)},needsDecipherabilityFlush(){var P,D,N,z;let C=Vn(d);if(za(C==null?void 0:C[0])){let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(P=E.getCurrentTime())!=null?P:$.position.getPolled(),W=(N=(D=$.paused.pending)!=null?D:E.getIsPaused())!=null?N:$.paused.last;t({position:q,autoPlay:!W})}else{let $=E.getReference().getValue(),q=$.position.isAwaitingFuturePosition()?$.position.getWanted():(z=E.getCurrentTime())!=null?z:$.position.getPolled();q+.001<$.duration?l.setCurrentTime(d.currentTime+.001):l.setCurrentTime(q)}},encryptionDataEncountered:C=>{if(M._decryptionCapabilities.status==="disabled"){M._onFatalError(M._decryptionCapabilities.value);return}else if(M._decryptionCapabilities.status==="uninitialized"){m.error("Init: received encryption data without known decryption capabilities");return}for(let P of C)if(M._decryptionCapabilities.value.onInitializationData(P),r.isCancelled())return},error:C=>M._onFatalError(C)}}function L(C,P,D){var W,H,V;let N=E.getReference().getValue(),z=N.position.isAwaitingFuturePosition()?N.position.getWanted():(W=E.getCurrentTime())!=null?W:N.position.getPolled(),$=(V=(H=N.paused.pending)!=null?H:E.getIsPaused())!=null?V:N.paused.last,q=z+C;P!==void 0&&(q=Math.max(P,q)),D!==void 0&&(q=Math.min(D,q)),t({position:q,autoPlay:!$})}}_createRebufferingController(e,t,r,i){let o=new Tn(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}getCodecsSupportInfo(e){return e.map(r=>{var s;let i=`${r.mimeType};codecs="${r.codec}"`,o=La(i);if(!o)return{mimeType:r.mimeType,codec:r.codec,supported:!1,supportedIfEncrypted:!1};let a;if(this._decryptionCapabilities.status==="uninitialized")a=void 0;else if(this._decryptionCapabilities.status==="disabled")a=!0;else{let d=this._decryptionCapabilities.value;d.getState()!==0&&(a=(s=d.isCodecSupported(r.mimeType,r.codec))!=null?s:!0)}return{mimeType:r.mimeType,codec:r.codec,supported:o,supportedIfEncrypted:a}})}_refreshManifestCodecSupport(e){let t=e.getCodecsWithUnknownSupport(),r=this.getCodecsSupportInfo(t);if(r.length>0)try{e.updateCodecSupport(r)}catch(i){this._onFatalError(i)}}};function Mh(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(ge(d,s))return!1;for(let d of e)if(ge(d,s))return!0;for(let d of r)if(ge(d,s))return}return o.decipherable})}function Ah(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(l=>(u.systemId===void 0||l.systemId===u.systemId)&&ge(l.data,u.data))))return!1;return r.decipherable})}function Pd(n,e,t){let{repeatCount:r}=n;if(r>=0)return r;let i;return _(e)?t!==void 0?i=t:i=Number.MAX_VALUE:i=e.start,Math.ceil((i-n.start)/n.duration)-1}function ke(n,e,t){let{start:r,duration:i}=n;if(i<=0)return r;let o=Pd(n,e,t);return r+(o+1)*i}function He(n,e){var t;return n*e.timescale+((t=e.indexTimeOffset)!=null?t:0)}function St(n,e){var t;return(n-((t=e.indexTimeOffset)!=null?t:0))/e.timescale}function Tf(n,e,t){return[n*t,(n+e)*t]}function xh(n,e){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i].start<=e?t=i+1:r=i}return t-1}function ia(n,e,t){let{timeline:r}=n,i=He(e,n);if(i<0)return null;let o=xh(r,i);if(o<0||o>=r.length-1)return null;let a=r[o];if(a.duration<=0)return null;let s=r[o+1];if(s===void 0)return null;let d=s.start,u=ke(a,s,t);return i>=u&&i<d?St(d,n):null}function Mt(n,e){var i;let{initialization:t}=n,r={};return e!==void 0&&(r.isEMSGWhitelisted=e),{id:"init",isInit:!0,time:0,end:0,duration:0,timescale:1,range:_(t)?void 0:t.range,indexRange:n.indexRange,url:(i=t==null?void 0:t.url)!=null?i:null,complete:!0,privateInfos:r,timestampOffset:-(n.indexTimeOffset/n.timescale)}}function wh(n,e){let t=n.toString();return t.length>=e?t:(new Array(e+1).join("0")+t).slice(-e)}function Md(n){return(e,t,r)=>{let i=w(r)?parseInt(r,10):1;return wh(String(n),i)}}function st(n,e,t){return Oh(n,e,t)}function Oh(n,e,t){return n.indexOf("$")===-1?n:n.replace(/\$\$/g,"$").replace(/\$RepresentationID\$/g,String(e)).replace(/\$Bandwidth(\%0(\d+)d)?\$/g,Md(t===void 0?0:t))}function oa(n,e){return function(r){return r.indexOf("$")===-1?r:r.replace(/\$\$/g,"$").replace(/\$Number(\%0(\d+)d)?\$/g,(i,o,a)=>{if(e===void 0)throw new Error("Segment number not defined in a $Number$ scheme");return Md(e)(i,o,a)}).replace(/\$Time(\%0(\d+)d)?\$/g,(i,o,a)=>{if(n===void 0)throw new Error("Segment time not defined in a $Time$ scheme");return Md(n)(i,o,a)})}}function Dh(n,e,t){let r=t-n;return r>0?Math.floor(r/e):0}function ki(n,e,t,r,i,o){var T;let a=r.getEstimatedMaximumPosition((T=n.availabilityTimeOffset)!=null?T:0),s=Math.min(e+t,a!=null?a:1/0),d=He(e,n),u=He(s,n),{timeline:l,timescale:c,segmentUrlTemplate:f,startNumber:g,endNumber:p}=n,I=g!=null?g:1,y=[],b=l.length;for(let v=0;v<b;v++){let E=l[v],{duration:R,start:k,range:x}=E,M;a===void 0?M=i:M=Math.min(a*c,i!=null?i:1/0);let A=Pd(E,l[v+1],M),L=n.availabilityTimeComplete!==!1||v!==b-1&&A!==0,O=Dh(k,R,d),F=k+O*R;for(;F<u&&O<=A;){let C=I+O;if(p!==void 0&&C>p)break;let P=f===null?null:oa(F,C)(f),D=F-n.indexTimeOffset,N=R;D<0&&(N=R+D,D=0);let z={id:String(F),time:D/c,end:(D+N)/c,duration:N/c,isInit:!1,range:x,timescale:1,url:P,number:C,timestampOffset:-(n.indexTimeOffset/c),complete:L,privateInfos:{isEMSGWhitelisted:o}};y.push(z),O++,F=k+O*R}if(F>=u||(I+=A+1,p!==void 0&&I>p))return y}return y}function Lh(n,e){if(e.timescale!==n.timescale){let{timescale:t}=n;n.timeline.push({start:e.time/e.timescale*t,duration:e.duration/e.timescale*t,repeatCount:e.count===void 0?0:e.count,range:e.range})}else n.timeline.push({start:e.time,duration:e.duration,repeatCount:e.count===void 0?0:e.count,range:e.range});return!0}var En=class{constructor(e,t){var p,I,y,b;let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t,d=(p=e.timescale)!=null?p:1,l=((I=e.presentationTimeOffset)!=null?I:0)-r*d,c=((y=e.initialization)==null?void 0:y.media)===void 0?null:st(e.initialization.media,o,a),f=e.media===void 0?null:st(e.media,o,a),g;e.initialization!==void 0?g=e.initialization.range:e.indexRange!==void 0&&(g=[0,e.indexRange[0]-1]),this._index={indexRange:e.indexRange,indexTimeOffset:l,initialization:{url:c,range:g},segmentUrlTemplate:f,startNumber:e.startNumber,endNumber:e.endNumber,timeline:(b=e.timeline)!=null?b:[],timescale:d},this._manifestBoundsCalculator=t.manifestBoundsCalculator,this._scaledPeriodStart=He(r,this._index),this._scaledPeriodEnd=_(i)?void 0:He(i,this._index),this._isInitialized=this._index.timeline.length>0,this._isEMSGWhitelisted=s}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return ki(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){let e=this._index;return e.timeline.length===0?null:St(Math.max(this._scaledPeriodStart,e.timeline[0].start),e)}getLastAvailablePosition(){var i;let{timeline:e}=this._index;if(e.length===0)return null;let t=e[e.length-1],r=Math.min(ke(t,null,this._scaledPeriodEnd),(i=this._scaledPeriodEnd)!=null?i:1/0);return St(r,this._index)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return this._isInitialized}initialize(e){if(!this._isInitialized){for(let t=0;t<e.length;t++)Lh(this._index,e[t]);this._isInitialized=!0}}addPredictedSegments(){m.warn("Cannot add predicted segments to a `BaseRepresentationIndex`")}_replace(e){this._index=e._index,this._isInitialized=e._isInitialized,this._scaledPeriodEnd=e._scaledPeriodEnd,this._isEMSGWhitelisted=e._isEMSGWhitelisted}_update(){m.error("Base RepresentationIndex: Cannot update a SegmentList")}};var vn=class{constructor(e,t){var g,p,I;if(e.duration===void 0)throw new Error("Invalid SegmentList: no duration");let{periodStart:r,periodEnd:i,representationId:o,representationBitrate:a,isEMSGWhitelisted:s}=t;this._isEMSGWhitelisted=s,this._periodStart=r,this._periodEnd=i;let d=(g=e.presentationTimeOffset)!=null?g:0,u=(p=e.timescale)!=null?p:1,l=d-r*u,c=((I=e.initialization)==null?void 0:I.media)===void 0?null:st(e.initialization.media,o,a),f=e.list.map(y=>({url:y.media===void 0?null:st(y.media,o,a),mediaRange:y.mediaRange}));this._index={list:f,timescale:u,duration:e.duration,indexTimeOffset:l,indexRange:e.indexRange,initialization:_(e.initialization)?void 0:{url:c,range:e.initialization.range}}}getInitSegment(){let e=Mt(this._index);return e.privateInfos===void 0&&(e.privateInfos={}),e.privateInfos.isEMSGWhitelisted=this._isEMSGWhitelisted,e}getSegments(e,t){let r=this._index,{duration:i,list:o,timescale:a}=r,s=i/a,d=e-this._periodStart,[u,l]=Tf(d,t,a),c=Math.min(o.length-1,Math.floor(l/i)),f=[],g=Math.floor(u/i);for(;g<=c;){let p=o[g].mediaRange,I=o[g].url,y=g*s+this._periodStart,b={id:String(g),time:y,isInit:!1,range:p,duration:s,timescale:1,end:y+s,url:I,timestampOffset:-(r.indexTimeOffset/a),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};f.push(b),g++}return f}shouldRefresh(e,t){return!1}getFirstAvailablePosition(){return this._periodStart}getLastAvailablePosition(){var i;let e=this._index,{duration:t,list:r}=e;return Math.min(r.length*t/e.timescale+this._periodStart,(i=this._periodEnd)!=null?i:1/0)}getEnd(){return this.getLastAvailablePosition()}awaitSegmentBetween(){return!1}isSegmentStillAvailable(){return!0}checkDiscontinuity(){return null}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){return!1}isInitialized(){return!0}initialize(){m.error("A `ListRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `ListRepresentationIndex`")}_replace(e){this._index=e._index}_update(){m.error("A `ListRepresentationIndex` cannot be updated")}};function $n(n){return U.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR*n}var Rn=class{constructor(e,t){var b,T,v;let{availabilityTimeOffset:r,manifestBoundsCalculator:i,isDynamic:o,periodEnd:a,periodStart:s,representationId:d,representationBitrate:u,isEMSGWhitelisted:l}=t,c=(b=e.timescale)!=null?b:1;this._availabilityTimeOffset=r,this._manifestBoundsCalculator=i;let f=(T=e.presentationTimeOffset)!=null?T:0,g=s*c,p=f-g;if(e.duration===void 0)throw new Error("Invalid SegmentTemplate: no duration");let I=((v=e.initialization)==null?void 0:v.media)===void 0?null:st(e.initialization.media,d,u),y=e.media===void 0?null:st(e.media,d,u);this._index={duration:e.duration,timescale:c,indexRange:e.indexRange,indexTimeOffset:p,initialization:_(e.initialization)?void 0:{url:I,range:e.initialization.range},url:y,presentationTimeOffset:f,startNumber:e.startNumber,endNumber:e.endNumber},this._isDynamic=o,this._periodStart=s,this._scaledRelativePeriodEnd=a===void 0?void 0:(a-s)*c,this._isEMSGWhitelisted=l}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){let r=this._index,{duration:i,startNumber:o,endNumber:a,timescale:s,url:d}=r,u=this._periodStart*s,l=this._scaledRelativePeriodEnd,c=e*s-u,f=(e+t)*s-u,g=this._getFirstSegmentStart(),p=this._getLastSegmentStart();if(_(g)||_(p))return[];let I=Math.max(g,c),y=Math.min(p,f);if(y+i<=I)return[];let b=[],T=o!=null?o:1,v=Math.floor(I/i);for(let E=v*i;E<=y;E+=i){let R=v+T;if(a!==void 0&&R>a)return b;let k=!_(l)&&E+i>l?l-E:i,x=E+u,M=E+this._index.presentationTimeOffset,A=d===null?null:oa(M,R)(d),L={id:String(R),number:R,time:x/s,end:(x+k)/s,duration:k/s,timescale:1,isInit:!1,scaledDuration:k/s,url:A,timestampOffset:-(r.indexTimeOffset/s),complete:!0,privateInfos:{isEMSGWhitelisted:this._isEMSGWhitelisted}};b.push(L),v++}return b}getFirstAvailablePosition(){let e=this._getFirstSegmentStart();return _(e)?e:e/this._index.timescale+this._periodStart}getLastAvailablePosition(){let e=this._getLastSegmentStart();if(_(e))return e;let t=this._estimateRelativeScaledEnd();return Math.min(e+this._index.duration,t!=null?t:1/0)/this._index.timescale+this._periodStart}getEnd(){if(!this._isDynamic)return this.getLastAvailablePosition();let e=this._estimateRelativeScaledEnd();if(e===void 0)return;let{timescale:t}=this._index;return(e+this._periodStart*t)/t}awaitSegmentBetween(e,t){if(J(e<=t),!this._isDynamic)return!1;let{timescale:r}=this._index,i=$n(r),o=this._periodStart*r,a=e*r-o,s=t*r-o,d=this._getLastSegmentStart();if(_(d)){let c=this._estimateRelativeScaledEnd();return c===void 0?s+i>=0:s+i>=0&&a<c-i}let u=d+this._index.duration,l=this._estimateRelativeScaledEnd();return l===void 0?s>u-i:s>u-i&&a<l-i}shouldRefresh(){return!1}checkDiscontinuity(){return null}isSegmentStillAvailable(e){if(e.isInit)return!0;let t=this.getSegments(e.time,.1);return t.length===0?!1:t[0].time===e.time&&t[0].end===e.end&&t[0].number===e.number}canBeOutOfSyncError(){return!1}isStillAwaitingFutureSegments(){if(!this._isDynamic)return!1;let e=this._estimateRelativeScaledEnd();if(e===void 0)return!0;let{timescale:t}=this._index,r=this._getLastSegmentStart();if(_(r))return!0;let i=r+this._index.duration,o=$n(t);return i+o<e}isInitialized(){return!0}initialize(){m.error("A `TemplateRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TemplateRepresentationIndex`")}_replace(e){this._index=e._index,this._isDynamic=e._isDynamic,this._periodStart=e._periodStart,this._scaledRelativePeriodEnd=e._scaledRelativePeriodEnd,this._manifestBoundsCalculator=e._manifestBoundsCalculator}_update(e){this._replace(e)}_getFirstSegmentStart(){var a;if(!this._isDynamic)return 0;if(this._scaledRelativePeriodEnd===0||this._scaledRelativePeriodEnd===void 0){let s=this._manifestBoundsCalculator.getEstimatedMaximumPosition((a=this._availabilityTimeOffset)!=null?a:0);if(s!==void 0&&s<this._periodStart)return null}let{duration:e,timescale:t}=this._index,r=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(e/t);if(r===void 0)return;let i=r>this._periodStart?(r-this._periodStart)*t:0;return Math.floor(i/e)*e}_getLastSegmentStart(){var o,a;let{duration:e,timescale:t,endNumber:r,startNumber:i=1}=this._index;if(this._isDynamic){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&this._scaledRelativePeriodEnd!==void 0&&this._scaledRelativePeriodEnd<s-this._periodStart*this._index.timescale){let c=Math.ceil(this._scaledRelativePeriodEnd/e);return r!==void 0&&r-i+1<c&&(c=r-i+1),(c-1)*e}let d=this._manifestBoundsCalculator.getEstimatedMaximumPosition((o=this._availabilityTimeOffset)!=null?o:0);if(d===void 0)return;let u=(d-this._periodStart)*t;if(u<0)return null;let l=Math.floor(u/e);return r!==void 0&&r-i+1<l&&(l=r-i+1),l<=0?null:(l-1)*e}else{let s=(a=this._scaledRelativePeriodEnd)!=null?a:0,d=Math.ceil(s/e);r!==void 0&&r-i+1<d&&(d=r-i+1);let u=(d-1)*e,l=U.getCurrent().MINIMUM_SEGMENT_SIZE*t;return r!==void 0||s-u>l||d<2?u:(d-2)*e}}_estimateRelativeScaledEnd(){var e,t;if(this._index.endNumber!==void 0){let r=this._index.endNumber-((e=this._index.startNumber)!=null?e:1)+1;return Math.max(Math.min(r*this._index.duration,(t=this._scaledRelativePeriodEnd)!=null?t:1/0),0)}if(this._scaledRelativePeriodEnd!==void 0)return Math.max(this._scaledRelativePeriodEnd,0)}};function Ci(n,e){let t=0;for(;n.length>0;){let r=n[0];if(r.start>=e||r.repeatCount===-1)return t;if(r.repeatCount===0)n.shift(),t+=1;else{let i=n[1];if(i!==void 0&&i.start<=e)n.shift(),t+=1;else{if(r.duration<=0)return t;let o=r.start+r.duration,a=1;for(;o<e&&a<=r.repeatCount;)o+=r.duration,a++;if(a>r.repeatCount)n.shift(),t=r.repeatCount+1;else{let s=r.repeatCount-a;return r.start=o,r.repeatCount=s,t+=a,t}}}}return t}function Pi(n,e){if(n.length===0)return n.push(...e),!0;if(e.length===0)return!1;let t=n.length,r=e[0].start,i=n[t-1];if(ke(i,e[0])<r)throw new ee("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");for(let l=t-1;l>=0;l--){let c=n[l].start;if(c===r){let f=t-l;return n.splice(l,f,...e),!1}else if(c<r){let f=n[l];if(f.start+f.duration>r)return m.warn("RepresentationIndex: Manifest update removed all previous segments"),n.splice(0,t,...e),!0;if(f.repeatCount===void 0||f.repeatCount<=0)return f.repeatCount<0&&(f.repeatCount=Math.floor((r-f.start)/f.duration)-1),n.splice(l+1,t-(l+1),...e),!1;if(f.start+f.duration*(f.repeatCount+1)<=r)return n.splice(l+1,t-(l+1),...e),!1;let p=(r-f.start)/f.duration-1;if(p%1===0&&f.duration===e[0].duration){let I=e[0].repeatCount<0?-1:e[0].repeatCount+p+1;return n.splice(l,t-l,...e),n[l].start=f.start,n[l].repeatCount=I,!1}return m.warn("RepresentationIndex: Manifest update removed previous segments"),n[l].repeatCount=Math.floor(p),n.splice(l+1,t-(l+1),...e),!1}}let a=n[n.length-1],s=e[e.length-1];if(a.repeatCount!==void 0&&a.repeatCount<0)return a.start>s.start?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0);let d=a.start+a.duration*(a.repeatCount+1),u=s.start+s.duration*(s.repeatCount+1);return d>=u?(m.warn("RepresentationIndex: The new index is older than the previous one"),!1):(m.warn('RepresentationIndex: The new index is "bigger" than the previous one'),n.splice(0,t,...e),!0)}function Mi(n,e,t){let r=n.start,i=n.duration,o=n.repeatCount;return r===void 0&&(e===null?r=0:_(e.duration)||(r=e.start+e.duration*(e.repeatCount+1))),(i===void 0||isNaN(i))&&t!==null&&t.start!==void 0&&!isNaN(t.start)&&r!==void 0&&!isNaN(r)&&(i=t.start-r),r!==void 0&&!isNaN(r)&&i!==void 0&&!isNaN(i)&&(o===void 0||!isNaN(o))?{start:r,duration:i,repeatCount:o===void 0?0:o}:(m.warn('DASH: A "S" Element could not have been parsed.'),null)}function Ai(n){let e={};for(let t of Object.keys(n.attributes)){let r=n.attributes[t];if(!_(r))switch(t){case"t":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid t ("${r}")`):e.start=i;break}case"d":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid d ("${r}")`):e.duration=i;break}case"r":{let i=parseInt(r,10);isNaN(i)?m.warn(`DASH: invalid r ("${r}")`):e.repeatCount=i;break}}}return e}function xi(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"t":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid t ("${r.value}")`):e.start=i;break}case"d":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid d ("${r.value}")`):e.duration=i;break}case"r":{let i=parseInt(r.value,10);isNaN(i)?m.warn(`DASH: invalid r ("${r.value}")`):e.repeatCount=i;break}}}return e}function Zt(n){let e=[];if(Array.isArray(n))for(let r=0;r<n.length;r++)e.push(Ai(n[r]));else for(let r=0;r<n.length;r++)e.push(xi(n[r]));let t=[];for(let r=0;r<e.length;r++){let i=e[r],o=t[t.length-1]===void 0?null:t[t.length-1],a=e[r+1]===void 0?null:e[r+1],s=Mi(i,o,a);s!==null&&t.push(s)}return t}function Ad(n,e){if(n.length===0||e.length===0)return null;let t=n[0].start,r=Array.isArray(e)?e[0].attributes.t:e[0].getAttribute("t"),i=_(r)?null:parseInt(r,10);if(i===null||Number.isNaN(i))return null;if(t===i)return{prevSegmentsIdx:0,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(t<i){let o=n[0],a=0;for(;;){if(o.repeatCount>0){let s=i-o.start;if(s%o.duration===0&&s/o.duration<=o.repeatCount)return{repeatNumberInPrevSegments:s/o.duration,prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInNewElements:0}}if(a++,a>=n.length)return null;if(o=n[a],o.start===i)return{prevSegmentsIdx:a,newElementsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(o.start>i)return null}}else{let o=0,a=Array.isArray(e)?e[0]:null,s=Array.isArray(e)?null:e[0],d=i;for(;;){let u=a!==null?a.attributes.d:s==null?void 0:s.getAttribute("d"),l=_(u)?null:parseInt(u,10);if(l===null||Number.isNaN(l))return null;let c=a!==null?a.attributes.r:s==null?void 0:s.getAttribute("r"),f=_(c)?null:parseInt(c,10);if(f!==null){if(Number.isNaN(f)||f<0)return null;if(f>0){let I=t-d;if(I%l===0&&I/l<=f)return{repeatNumberInPrevSegments:0,repeatNumberInNewElements:I/l,prevSegmentsIdx:0,newElementsIdx:o}}d+=l*(f+1)}else d+=l;if(o++,o>=e.length)return null;Array.isArray(e)?a=e[o]:s=e[o];let g=a!==null?a.attributes.t:s==null?void 0:s.getAttribute("t"),p=_(g)?null:parseInt(g,10);if(p!==null){if(Number.isNaN(p))return null;d=p}if(d===t)return{newElementsIdx:o,prevSegmentsIdx:0,repeatNumberInPrevSegments:0,repeatNumberInNewElements:0};if(d>i)return null}}}function xd(n,e){var I;let t=Ad(e,n);if(t===null)return m.warn('DASH: Cannot perform "based" update. Common segment not found.'),Zt(n);let{prevSegmentsIdx:r,newElementsIdx:i,repeatNumberInPrevSegments:o,repeatNumberInNewElements:a}=t,d=e.length-r+i-1;if(d>=n.length)return m.info('DASH: Cannot perform "based" update. New timeline too short'),Zt(n);let u=e.slice(r);if(o>0){let y=u[0];y.start+=y.duration*o,u[0].repeatCount-=o}if(a>0&&i!==0)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form.'),Zt(n);let l=u[u.length-1],c=Array.isArray(n)?Ai(n[d]):xi(n[d]),f=((I=c.repeatCount)!=null?I:0)-a;if(c.duration!==l.duration||l.repeatCount>f)return m.info('DASH: Cannot perform "based" update. The new timeline has a different form at the beginning.'),Zt(n);c.repeatCount!==void 0&&c.repeatCount>l.repeatCount&&(l.repeatCount=c.repeatCount);let g=[],p=[];if(Array.isArray(n))for(let y=d+1;y<n.length;y++)p.push(Ai(n[y]));else for(let y=d+1;y<n.length;y++)p.push(xi(n[y]));for(let y=0;y<p.length;y++){let b=p[y],T=g[g.length-1]===void 0?l:g[g.length-1],v=p[y+1]===void 0?null:p[y+1],E=Mi(b,T,v);E!==null&&g.push(E)}return u.concat(g)}var wi=class n{constructor(e,t){var E,R,k,x,M;if(!n.isTimelineIndexArgument(e))throw new Error("The given index is not compatible with a TimelineRepresentationIndex.");let{availabilityTimeComplete:r,availabilityTimeOffset:i,manifestBoundsCalculator:o,isDynamic:a,isLastPeriod:s,representationId:d,representationBitrate:u,periodStart:l,periodEnd:c,isEMSGWhitelisted:f}=t,g=(E=e.timescale)!=null?E:1,p=(R=e.presentationTimeOffset)!=null?R:0,I=l*g,y=p-I;this._manifestBoundsCalculator=o,this._isEMSGWhitelisted=f,this._isLastPeriod=s,this._lastUpdate=(k=t.receivedTime)!=null?k:K(),this._unsafelyBaseOnPreviousIndex=null,t.unsafelyBaseOnPreviousRepresentation!==null&&t.unsafelyBaseOnPreviousRepresentation.index instanceof n&&(t.unsafelyBaseOnPreviousRepresentation.index._unsafelyBaseOnPreviousIndex=null,this._unsafelyBaseOnPreviousIndex=t.unsafelyBaseOnPreviousRepresentation.index),this._isDynamic=a,this._parseTimeline=(x=e.timelineParser)!=null?x:null;let b=((M=e.initialization)==null?void 0:M.media)===void 0?null:st(e.initialization.media,d,u),T=e.media===void 0?null:st(e.media,d,u),v;i===void 0&&r===void 0?v=1/0:v=i!=null?i:0,this._index={availabilityTimeComplete:r!=null?r:!0,availabilityTimeOffset:v,indexRange:e.indexRange,indexTimeOffset:y,initialization:_(e.initialization)?void 0:{url:b,range:e.initialization.range},segmentUrlTemplate:T,startNumber:e.startNumber,endNumber:e.endNumber,timeline:e.timeline===void 0?null:wd(e.timeline,e.startNumber,e.endNumber),timescale:g},this._scaledPeriodStart=He(l,this._index),this._scaledPeriodEnd=c===void 0?void 0:He(c,this._index)}getInitSegment(){return Mt(this._index,this._isEMSGWhitelisted)}getSegments(e,t){return this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),ki(this._index,e,t,this._manifestBoundsCalculator,this._scaledPeriodEnd,this._isEMSGWhitelisted)}shouldRefresh(){return!1}getFirstAvailablePosition(){this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=this._index.timeline;return e.length===0?null:St(Math.max(this._scaledPeriodStart,e[0].start),this._index)}getLastAvailablePosition(){var r;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let e=aa(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(e===null)return null;let t=Math.min(e.end,(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}getEnd(){var r;if(this._isDynamic&&!this._isLastPeriod)return;if(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),this._index.timeline.length<=0)return null;let e=this._index.timeline[this._index.timeline.length-1],t=Math.min(ke(e,null,this._scaledPeriodEnd),(r=this._scaledPeriodEnd)!=null?r:1/0);return St(t,this._index)}awaitSegmentBetween(e,t){var u,l;if(J(e<=t),!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timescale:r,timeline:i}=this._index,o=$n(r),a=He(t,this._index),s=aa(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(s!==null&&Math.min(s.end,(u=this._scaledPeriodEnd)!=null?u:1/0)+o>=Math.min(a,(l=this._scaledPeriodEnd)!=null?l:1/0))return!1;let d=He(e,this._index);if(i.length>0&&s!==null&&!s.isLastOfTimeline){let c=i[i.length-1],g=ke(c,null,this._scaledPeriodEnd)+o;if(d<g+o)return!0}return this._isLastPeriod?this._scaledPeriodEnd===void 0?a+o>this._scaledPeriodStart?void 0:!1:d-o<this._scaledPeriodEnd&&a+o>this._scaledPeriodStart:!1}isSegmentStillAvailable(e){return e.isInit?!0:(this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline()),Nh(e,this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd))}checkDiscontinuity(e){this._refreshTimeline();let t=this._index.timeline;return t===null&&(t=this._getTimeline(),this._index.timeline=t),ia({timeline:t,timescale:this._index.timescale,indexTimeOffset:this._index.indexTimeOffset},e,this._scaledPeriodEnd)}canBeOutOfSyncError(e){return this._isDynamic?e instanceof rt&&e.isHttpError(404):!1}_replace(e){this._parseTimeline=e._parseTimeline,this._index=e._index,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._manifestBoundsCalculator=e._manifestBoundsCalculator,this._isLastPeriod=e._isLastPeriod}_update(e){this._index.timeline===null&&(this._index.timeline=this._getTimeline()),e._index.timeline===null&&(e._index.timeline=e._getTimeline()),Pi(this._index.timeline,e._index.timeline)&&(this._index.startNumber=e._index.startNumber),this._index.availabilityTimeOffset=e._index.availabilityTimeOffset,this._index.availabilityTimeComplete=e._index.availabilityTimeComplete,this._index.endNumber=e._index.endNumber,this._isDynamic=e._isDynamic,this._scaledPeriodStart=e._scaledPeriodStart,this._scaledPeriodEnd=e._scaledPeriodEnd,this._lastUpdate=e._lastUpdate,this._isLastPeriod=e._isLastPeriod}isStillAwaitingFutureSegments(){var a;if(!this._isDynamic)return!1;this._refreshTimeline(),this._index.timeline===null&&(this._index.timeline=this._getTimeline());let{timeline:e}=this._index;if(e.length===0){if(this._scaledPeriodEnd!==void 0){let s=this._manifestBoundsCalculator.getEstimatedLiveEdge();if(s!==void 0&&He(s,this._index)>this._scaledPeriodEnd)return!1}return this._isLastPeriod}let t=$n(this._index.timescale),r=aa(this._index,this._manifestBoundsCalculator,this._scaledPeriodEnd);if(r!==null&&!r.isLastOfTimeline){let s=Math.min(r.end,(a=this._scaledPeriodEnd)!=null?a:1/0);return!(this._scaledPeriodEnd!==void 0&&s+t>=this._scaledPeriodEnd)}if(!this._isLastPeriod)return!1;if(this._scaledPeriodEnd===void 0)return!0;let i=e[e.length-1];return ke(i,null,this._scaledPeriodEnd)+t<this._scaledPeriodEnd}isInitialized(){return!0}initialize(){m.error("A `TimelineRepresentationIndex` does not need to be initialized")}addPredictedSegments(){m.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`")}static isTimelineIndexArgument(e){return typeof e.timelineParser=="function"||Array.isArray(e.timeline)}_refreshTimeline(){var i,o;if(this._index.timeline===null&&(this._index.timeline=this._getTimeline()),!this._isDynamic)return;let e=this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime(((o=(i=this._index.timeline[0])==null?void 0:i.duration)!=null?o:0)/this._index.timescale);if(_(e))return;let t=He(e,this._index),r=Ci(this._index.timeline,t);this._index.startNumber!==void 0?this._index.startNumber+=r:this._index.endNumber!==void 0&&(this._index.startNumber=r+1)}_getTimeline(){if(this._parseTimeline===null)return this._index.timeline!==null?this._index.timeline:(m.error("DASH: Timeline already lazily parsed."),[]);let e=this._parseTimeline();this._parseTimeline=null;let{MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:t}=U.getCurrent();if(this._unsafelyBaseOnPreviousIndex===null||e.length<t)return wd(Zt(e),this._index.startNumber,this._index.endNumber);let r;return this._unsafelyBaseOnPreviousIndex._index.timeline===null?(r=this._unsafelyBaseOnPreviousIndex._getTimeline(),this._unsafelyBaseOnPreviousIndex._index.timeline=r):r=this._unsafelyBaseOnPreviousIndex._index.timeline,this._unsafelyBaseOnPreviousIndex=null,wd(xd(e,r),this._index.startNumber,this._index.endNumber)}};function wd(n,e,t){if(t===void 0)return n;let r=e!=null?e:1;for(let i=0;i<n.length;i++){let o=n[i];if(r+=o.repeatCount+1,r>t){if(r===t+1)return n.slice(0,i+1);{let a=n.slice(0,i),s=ie({},o),d=r-o.repeatCount-1;return s.repeatCount=Math.max(0,t-d),a.push(s),a}}}return n}function Nh(n,e,t,r){let i=aa(e,t,r);if(i===null)return!1;for(let o=0;o<e.timeline.length;o++){if(i.timelineIdx<o)return!1;let a=e.timeline[o],s=(a.start-e.indexTimeOffset)/e.timescale;if(s>n.time)return!1;if(s===n.time)return a.range===void 0?n.range===void 0:!_(n.range)&&a.range[0]===n.range[0]&&a.range[1]===n.range[1];if(a.repeatCount>=0&&a.duration!==void 0){let u=(s-a.start)/a.duration-1;return u%1===0&&u<=i.newRepeatCount}}return!1}function aa(n,e,t){if(n.timeline.length<=0)return null;if(n.availabilityTimeOffset===1/0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}let r=e.getEstimatedMaximumPosition(n.availabilityTimeOffset);if(r===void 0){let i=n.timeline.length-1,o=n.timeline[i];return{isLastOfTimeline:!0,timelineIdx:i,newRepeatCount:o.repeatCount,end:ke(o,null,t)}}for(let i=n.timeline.length-1;i>=n.timeline.length;i--){let o=n.timeline[i],a=o.start+o.duration;if(St(a,n)<=r){let s=ke(o,n.timeline[i+1],t);if(St(s,n)<=r)return{isLastOfTimeline:i===n.timeline.length-1,timelineIdx:i,newRepeatCount:o.repeatCount,end:a};{let u=He(r,n)-o.start,l=Math.floor(u/o.duration);return J(l>=1),{isLastOfTimeline:!1,timelineIdx:i,newRepeatCount:l-1,end:o.start+l*o.duration}}}}return null}var sa=wi;var Oi=class{constructor(){this._refs=new Map,this._stored=[]}addReferences(e){for(let t of e)t.attributes.refId!==void 0&&this._refs.set(t.attributes.refId,t)}add(e,t){this._tryParsing(e,t,!1)||this._stored.push([e,t]),t.attributes.refId!==void 0&&(this._refs.set(t.attributes.refId,t),this._resolveStoredRefs(!1))}finalize(){this._resolveStoredRefs(!0)}_resolveStoredRefs(e){for(let t=this._stored.length-1;t>=0;t--){let[r,i]=this._stored[t];(this._tryParsing(r,i,e)||e)&&this._stored.splice(t,1)}return this._stored.length===0}_tryParsing(e,t,r){if(t.attributes.ref===void 0)return Od(e,t),!0;let i=this._getReferenced(t.attributes.ref);return i===void 0?(r&&(m.warn("DASH: forcing the parsing of a referencing ContentProtection"),Od(e,t)),!1):(t.children.cencPssh.push(...i.children.cencPssh),t.attributes.keyId===void 0&&i.attributes.keyId!==void 0&&(t.attributes.keyId=i.attributes.keyId),t.attributes.schemeIdUri===void 0&&i.attributes.schemeIdUri!==void 0&&(t.attributes.schemeIdUri=i.attributes.schemeIdUri),t.attributes.value===void 0&&i.attributes.value!==void 0&&(t.attributes.value=i.attributes.value),Od(e,t),!0)}_getReferenced(e){return this._refs.get(e)}};function Od(n,e){let t;if(e.attributes.schemeIdUri!==void 0&&e.attributes.schemeIdUri.substring(0,9)==="urn:uuid:"&&(t=e.attributes.schemeIdUri.substring(9).replace(/-/g,"").toLowerCase()),e.attributes.keyId!==void 0&&e.attributes.keyId.length>0){let a=e.attributes.keyId;n.contentProtections===void 0?n.contentProtections={keyIds:[a],initData:[]}:n.contentProtections.keyIds===void 0?n.contentProtections.keyIds=[a]:n.contentProtections.keyIds.push(a)}if(t===void 0)return;let{cencPssh:r}=e.children,i=[];for(let a of r)i.push({systemId:t,data:a});if(i.length===0)return;if(n.contentProtections===void 0){n.contentProtections={keyIds:[],initData:[{type:"cenc",values:i}]};return}let o=Z(n.contentProtections.initData,a=>a.type==="cenc");o===void 0?n.contentProtections.initData.push({type:"cenc",values:i}):o.values.push(...i)}function da(n){let e=Date.parse(n)-K();if(isNaN(e)){m.warn("DASH Parser: Invalid clock received: ",n);return}return e}function Dd(n){let e=n.children.utcTimings.filter(t=>(t.schemeIdUri==="urn:mpeg:dash:utc:http-iso:2014"||t.schemeIdUri==="urn:mpeg:dash:utc:http-xsdate:2014")&&t.value!==void 0);return e.length>0?e[0].value:void 0}function ua(n){let{representations:e}=n,t=null;for(let r of e){let i=r.index.getLastAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.min(t,i))}return t===null?null:t}function Ld(n){for(let e=n.length-1;e>=0;e--){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=ua(r);if(s===void 0)return{safe:void 0,unsafe:void 0};o=s}if(i!==void 0){let s=ua(i);if(s===void 0)return{safe:void 0,unsafe:void 0};a=s}if(r!==void 0&&o===null||i!==void 0&&a===null)return m.info("Parser utils: found Period with no segment. ","Going to previous one to calculate last position"),{safe:void 0,unsafe:void 0};if(a!==null)return o!==null?{safe:Math.min(o,a),unsafe:Math.max(o,a)}:{safe:a,unsafe:a};if(o!==null)return{safe:o,unsafe:o}}}return{safe:void 0,unsafe:void 0}}function la(n){let{representations:e}=n,t=null;for(let r of e){let i=r.index.getFirstAvailablePosition();if(i===void 0)return;i!==null&&(t=t===null?i:Math.max(t,i))}return t===null?null:t}function Nd(n){for(let e=0;e<=n.length-1;e++){let t=n[e].adaptations,r=t.audio===void 0?void 0:t.audio[0],i=t.video===void 0?void 0:t.video[0];if(r!==void 0||i!==void 0){let o=null,a=null;if(r!==void 0){let s=la(r);if(s===void 0)return;o=s}if(i!==void 0){let s=la(i);if(s===void 0)return;a=s}if(r!==void 0&&o===null||i!==void 0&&a===null){m.info("Parser utils: found Period with no segment. ","Going to next one to calculate first position");return}if(a!==null)return o!==null?Math.max(o,a):a;if(o!==null)return o}}}function Ud(n){if(n.length===0)throw new Error("DASH Parser: no period available for a dynamic content");let e=Nd(n),t=Ld(n);return{minimumSafePosition:e,maximumSafePosition:t.safe,maximumUnsafePosition:t.unsafe}}var Di=class{constructor(e){this._isDynamic=e.isDynamic,this._timeShiftBufferDepth=!e.isDynamic||e.timeShiftBufferDepth===void 0?null:e.timeShiftBufferDepth,this._serverTimestampOffset=e.serverTimestampOffset,this._availabilityStartTime=e.availabilityStartTime}setLastPosition(e,t){this._lastPosition=e,this._positionTime=t}lastPositionIsKnown(){return this._isDynamic?this._positionTime!==void 0&&this._lastPosition!==void 0:this._lastPosition!==void 0}getEstimatedMinimumSegmentTime(e){var i;if(!this._isDynamic||this._timeShiftBufferDepth===null)return 0;let t=(i=this.getEstimatedLiveEdge())!=null?i:this.getEstimatedMaximumPosition(0);return t===void 0?void 0:t-(this._timeShiftBufferDepth+e)}getEstimatedLiveEdge(){if(!(!this._isDynamic||this._serverTimestampOffset===void 0))return(K()+this._serverTimestampOffset)/1e3-this._availabilityStartTime}getEstimatedMaximumPosition(e){if(!this._isDynamic)return this._lastPosition;let t=this.getEstimatedLiveEdge();return t!==void 0&&e!==1/0?t+e:this._positionTime!==void 0&&this._lastPosition!==void 0?Math.max(this._lastPosition-this._positionTime+K()/1e3,0):this._lastPosition}};function Bd(n,e){return n.type!=="dynamic"?0:_(n.availabilityStartTime)?e!=null?e:0:n.availabilityStartTime}function Fd(n){if(n.length===0)return[];let e=[n[0]];for(let t=1;t<n.length;t++){let r=n[t],i=e[e.length-1];for(;(i.duration===void 0||i.start+i.duration>r.start)&&(m.warn("DASH: Updating overlapping Periods.",i==null?void 0:i.start,r.start),i.duration=r.start-i.start,i.end=r.start,!(i.duration>0));){if(e.pop(),e.length===0)break;i=e[e.length-1]}e.push(r)}return e}function Kd(n,e){let t=[];return n.forEach((r,i)=>{let o;if(!_(r.attributes.start))o=r.attributes.start;else if(i===0)o=!e.isDynamic||_(e.availabilityStartTime)?0:e.availabilityStartTime;else{let u=t[t.length-1];if(!_(u)&&!_(u.periodEnd))o=u.periodEnd;else throw new Error("Missing start time when parsing periods.")}let a,s=n[i+1];_(r.attributes.duration)?i===n.length-1?a=e.duration:_(s.attributes.start)||(a=s.attributes.start-o):a=r.attributes.duration;let d=_(a)?void 0:o+a;t.push({periodStart:o,periodDuration:a,periodEnd:d})}),t}function Uh(n,e){for(let t of e){let{adaptation:r,trickModeAttachedAdaptationIds:i}=t;for(let o of i)for(let a of $t){let s=n[a];if(s!==void 0)for(let d of s)d.id===o&&(d.trickModeTracks===void 0&&(d.trickModeTracks=[]),d.trickModeTracks.push(r))}}}var _f=Uh;var Bh=["subtitle","caption"];function Vd(n,e,t,r){function i(a,s){let d=a.split("/")[0];if(Q($t,d))return d;if(a==="application/ttml+xml")return"text";if(a==="application/mp4")return s!==null&&Z(s,u=>u.schemeIdUri==="urn:mpeg:dash:role:2011"&&Q(Bh,u.value))!==void 0?"text":void 0}function o(a){switch(a.substring(0,3)){case"avc":case"hev":case"hvc":case"vp8":case"vp9":case"av1":return"video";case"vtt":return"text"}switch(a.substring(0,4)){case"mp4a":return"audio";case"wvtt":case"stpp":return"text"}}if(e!==null){let a=i(e,r);if(a!==void 0)return a}if(t!==null){let a=o(t);if(a!==void 0)return a}for(let a=0;a<n.length;a++){let s=n[a],{mimeType:d,codecs:u}=s.attributes;if(d!==void 0){let l=i(d,r);if(l!==void 0)return l}if(u!==void 0){let l=o(u);if(l!==void 0)return l}}}var Fh=/[, ]+/g;function Ef(n){return w(n)?n.trim().replace(Fh,", "):""}function vf(n){let[e,t,r,i,o,a,s,d]=n.split(".");if(e!=="vp08"&&e!=="vp09"&&e!=="vp10")return;let u,l,c;if((i!==void 0&&i==="10"||i==="12")&&(u=parseInt(i,10)),s!==void 0&&(s==="16"?l="pq":s==="18"&&(l="hlg")),a!==void 0&&d!==void 0&&a==="09"&&d==="09"&&(c="rec2020"),!(u===void 0||l===void 0))return{colorDepth:u,eotf:l,colorSpace:c}}function zd(n,e){var p,I,y;let{availabilityTimeOffset:t,manifestBoundsCalculator:r,isDynamic:i,end:o,start:a,receivedTime:s,unsafelyBaseOnPreviousRepresentation:d,inbandEventStreams:u,isLastPeriod:l}=e,f={availabilityTimeComplete:void 0,availabilityTimeOffset:t,unsafelyBaseOnPreviousRepresentation:d,isEMSGWhitelisted:b=>u===void 0?!1:u.some(({schemeIdUri:T})=>T===b.schemeIdUri),isLastPeriod:l,manifestBoundsCalculator:r,isDynamic:i,periodEnd:o,periodStart:a,receivedTime:s,representationBitrate:n.attributes.bitrate,representationId:n.attributes.id},g;if(n.children.segmentBase!==void 0){let{segmentBase:b}=n.children;g=new En(b,f)}else if(n.children.segmentList!==void 0){let{segmentList:b}=n.children;g=new vn(b,f)}else if(n.children.segmentTemplate!==void 0||e.parentSegmentTemplates.length>0){let b=e.parentSegmentTemplates.slice(),T=n.children.segmentTemplate;T!==void 0&&b.push(T);let v=j({},...b);(v.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(f.availabilityTimeOffset=((p=v.availabilityTimeOffset)!=null?p:0)+((I=e.availabilityTimeOffset)!=null?I:0)),(v.availabilityTimeComplete!==void 0||e.availabilityTimeComplete!==void 0)&&(f.availabilityTimeComplete=(y=v.availabilityTimeComplete)!=null?y:e.availabilityTimeComplete),g=sa.isTimelineIndexArgument(v)?new sa(v,f):new Rn(v,f)}else{let b=e.adaptation.children;if(b.segmentBase!==void 0){let{segmentBase:T}=b;g=new En(T,f)}else if(b.segmentList!==void 0){let{segmentList:T}=b;g=new vn(T,f)}else g=new Rn({duration:Number.MAX_VALUE,timescale:1,startNumber:0,media:""},f)}return g}function At(n,e){var i;if(e.length===0)return n;let t=e.map(o=>({url:o.value}));if(n.length===0)return t;let r=[];for(let o=0;o<n.length;o++){let a=n[o];for(let s=0;s<t.length;s++){let d=t[s],u=cn(a.url,d.url);r.push({url:u,serviceLocation:(i=d.serviceLocation)!=null?i:a.serviceLocation})}}return r}function Kh(n,e){let t=[];if(n.children.inbandEventStreams!==void 0&&t.push(...n.children.inbandEventStreams),e.children.inbandEventStreams!==void 0&&t.push(...e.children.inbandEventStreams),t.length!==0)return t}function Vh({adaptationProfiles:n,essentialProperties:e,supplementalProperties:t,manifestProfiles:r,codecs:i}){if(((n!=null?n:"")+(r!=null?r:"")).indexOf("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")!==-1&&(i==="hvc1.2.4.L153.B0"||i==="hev1.2.4.L153.B0"))return{colorDepth:10,eotf:"pq",colorSpace:"rec2020"};let a=Z([...e!=null?e:[],...t!=null?t:[]],s=>s.schemeIdUri==="urn:mpeg:mpegB:cicp:TransferCharacteristics");if(a!==void 0)switch(a.value){case"15":return;case"16":return{eotf:"pq"};case"18":return{eotf:"hlg"}}if(i!==void 0&&/^vp(08|09|10)/.exec(i))return vf(i)}function Hd(n,e,t){var i,o,a,s,d,u,l;let r=[];for(let c of n){let f=c.attributes.id!==void 0?c.attributes.id:String(c.attributes.bitrate)+(c.attributes.height!==void 0?`-${c.attributes.height}`:"")+(c.attributes.width!==void 0?`-${c.attributes.width}`:"")+(c.attributes.mimeType!==void 0?`-${c.attributes.mimeType}`:"")+(c.attributes.codecs!==void 0?`-${c.attributes.codecs}`:"");for(;r.some(A=>A.id===f);)f+="-dup";let g=(o=(i=t.unsafelyBaseOnPreviousAdaptation)==null?void 0:i.getRepresentation(f))!=null?o:null,p=Kh(c,e),I=(a=c.attributes.availabilityTimeComplete)!=null?a:t.availabilityTimeComplete,y;(c.attributes.availabilityTimeOffset!==void 0||t.availabilityTimeOffset!==void 0)&&(y=((s=c.attributes.availabilityTimeOffset)!=null?s:0)+((d=t.availabilityTimeOffset)!=null?d:0));let b=j({},t,{availabilityTimeOffset:y,availabilityTimeComplete:I,unsafelyBaseOnPreviousRepresentation:g,adaptation:e,inbandEventStreams:p}),T=zd(c,b),v;c.attributes.bitrate===void 0?(m.warn("DASH: No usable bitrate found in the Representation."),v=0):v=c.attributes.bitrate;let E=At(t.baseURLs,c.children.baseURLs),R=E.length===0?[{baseUrl:"",id:void 0}]:E.map(A=>({baseUrl:A.url,id:A.serviceLocation})),k={bitrate:v,cdnMetadata:R,index:T,id:f};c.children.supplementalProperties!==void 0&&Z(c.children.supplementalProperties,A=>A.schemeIdUri==="tag:dolby.com,2018:dash:EC3_ExtensionType:2018"&&A.value==="JOC")&&(k.isSpatialAudio=!0);let x;c.attributes.codecs!==void 0?x=c.attributes.codecs:e.attributes.codecs!==void 0&&(x=e.attributes.codecs),x!==void 0&&(x=x==="mp4a.40.02"?"mp4a.40.2":x,k.codecs=x);let M;c.attributes.supplementalCodecs!==void 0?M=c.attributes.supplementalCodecs:e.attributes.supplementalCodecs!==void 0&&(M=e.attributes.supplementalCodecs),M!==void 0&&(k.supplementalCodecs=Ef(M)),c.attributes.frameRate!==void 0?k.frameRate=c.attributes.frameRate:e.attributes.frameRate!==void 0&&(k.frameRate=e.attributes.frameRate),c.attributes.height!==void 0?k.height=c.attributes.height:e.attributes.height!==void 0&&(k.height=e.attributes.height),c.attributes.mimeType!==void 0?k.mimeType=c.attributes.mimeType:e.attributes.mimeType!==void 0&&(k.mimeType=e.attributes.mimeType),c.attributes.width!==void 0?k.width=c.attributes.width:e.attributes.width!==void 0&&(k.width=e.attributes.width);{let A=[...(u=e.children.contentProtections)!=null?u:[],...(l=c.children.contentProtections)!=null?l:[]];for(let L of A)t.contentProtectionParser.add(k,L)}k.hdrInfo=Vh({adaptationProfiles:e.attributes.profiles,supplementalProperties:e.children.supplementalProperties,essentialProperties:e.children.essentialProperties,manifestProfiles:t.manifestProfiles,codecs:x}),r.push(k)}return r}function zh(n){if(n===void 0)return!1;let e=n.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&n.value==="1",t=n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="description";return e||t}function Hh(n,e){return!!(n!==void 0&&n.some(r=>r.schemeIdUri==="urn:tva:metadata:cs:AudioPurposeCS:2007"&&r.value==="2")||e!==void 0&&e.some(r=>r.schemeIdUri==="urn:mpeg:dash:role:2011"&&r.value==="caption"))}function Wh(n){return n===void 0?!1:n.schemeIdUri==="urn:mpeg:dash:role:2011"&&n.value==="sign"}function Gh(n,e){if(w(n.attributes.id))return n.attributes.id;let{isClosedCaption:t,isForcedSubtitle:r,isAudioDescription:i,isSignInterpreted:o,isTrickModeTrack:a,type:s}=e,d=s;return w(n.attributes.language)&&(d+=`-${n.attributes.language}`),t===!0&&(d+="-cc"),r===!0&&(d+="-cc"),i===!0&&(d+="-ad"),o===!0&&(d+="-si"),a&&(d+="-trickMode"),w(n.attributes.contentType)&&(d+=`-${n.attributes.contentType}`),w(n.attributes.codecs)&&(d+=`-${n.attributes.codecs}`),w(n.attributes.mimeType)&&(d+=`-${n.attributes.mimeType}`),n.attributes.frameRate!==void 0&&(d+=`-${String(n.attributes.frameRate)}`),d}function qh(n){if(!_(n.children.supplementalProperties)){let{supplementalProperties:e}=n.children;for(let t of e)if(t.schemeIdUri==="urn:mpeg:dash:adaptation-set-switching:2016"&&!_(t.value))return t.value.split(",").map(r=>r.trim()).filter(r=>r)}return[]}function Wd(n,e){var s,d,u,l,c,f,g;let t={video:[],audio:[],text:[]},r=[],i={},o=[];for(let p=0;p<n.length;p++){let I=n[p],y=I.children,{essentialProperties:b,roles:T,label:v}=y,E=Array.isArray(T)&&T.some(ye=>ye.value==="main")&&T.some(ye=>ye.schemeIdUri==="urn:mpeg:dash:role:2011"),R=I.children.representations,k=(s=I.attributes.availabilityTimeComplete)!=null?s:e.availabilityTimeComplete,x;(I.attributes.availabilityTimeOffset!==void 0||e.availabilityTimeOffset!==void 0)&&(x=((d=I.attributes.availabilityTimeOffset)!=null?d:0)+((u=e.availabilityTimeOffset)!=null?u:0));let M=I.attributes.mimeType,A=I.attributes.codecs,L=Vd(R,w(M)?M:null,w(A)?A:null,_(y.roles)?null:y.roles);if(L===void 0)continue;let O=(l=I.attributes.selectionPriority)!=null?l:1,F=I.attributes.id,C=qh(I),P=[];e.segmentTemplate!==void 0&&P.push(e.segmentTemplate),I.children.segmentTemplate!==void 0&&P.push(I.children.segmentTemplate);let D={availabilityTimeComplete:k,availabilityTimeOffset:x,baseURLs:At(e.baseURLs,y.baseURLs),contentProtectionParser:e.contentProtectionParser,manifestBoundsCalculator:e.manifestBoundsCalculator,end:e.end,isDynamic:e.isDynamic,isLastPeriod:e.isLastPeriod,manifestProfiles:e.manifestProfiles,parentSegmentTemplates:P,receivedTime:e.receivedTime,start:e.start,unsafelyBaseOnPreviousAdaptation:null},N=Array.isArray(b)?Z(b,ye=>ye.schemeIdUri==="http://dashif.org/guidelines/trickmode"):void 0,z=(c=N==null?void 0:N.value)==null?void 0:c.split(" "),$=z!==void 0,{accessibilities:q}=y,W;T!==void 0&&T.some(ye=>ye.value==="dub")&&(W=!0);let H;L!=="text"?H=!1:H=Hh(q,T);let V;L==="text"&&T!==void 0&&T.some(ye=>ye.value==="forced-subtitle"||ye.value==="forced_subtitle")&&(V=!0);let ae;L!=="audio"?ae=!1:q!==void 0&&(ae=q.some(zh));let se;L!=="video"?se=!1:q!==void 0&&(se=q.some(Wh));let le=Gh(I,{isAudioDescription:ae,isForcedSubtitle:V,isClosedCaption:H,isSignInterpreted:se,isTrickModeTrack:$,type:L});for(;Q(o,le);)le+="-dup";let Se=le;o.push(le),D.unsafelyBaseOnPreviousAdaptation=(g=(f=e.unsafelyBaseOnPreviousPeriod)==null?void 0:f.getAdaptation(le))!=null?g:null;let Y=Hd(R,I,D),ce={id:le,representations:Y,type:L,isTrickModeTrack:$};if(_(I.attributes.language)||(ce.language=I.attributes.language),_(H)||(ce.closedCaption=H),_(ae)||(ce.audioDescription=ae),W===!0&&(ce.isDub=!0),V!==void 0&&(ce.forcedSubtitles=V),se===!0&&(ce.isSignInterpreted=!0),v!==void 0&&(ce.label=v),z!==void 0)r.push({adaptation:ce,trickModeAttachedAdaptationIds:z});else{let ye=-1;for(let Bt of C){let $e=i[Bt];if($e!==void 0&&$e.newID!==Se&&Q($e.adaptationSetSwitchingIDs,F)){ye=he(t[L],Tt=>Tt[0].id===Bt);let Ue=t[L][ye];if(Ue!==void 0&&Ue[0].audioDescription===ce.audioDescription&&Ue[0].closedCaption===ce.closedCaption&&Ue[0].language===ce.language){m.info('DASH Parser: merging "switchable" AdaptationSets',F,Bt),Ue[0].representations.push(...ce.representations),Ue[1]={priority:Math.max(O,Ue[1].priority),isMainAdaptation:E||Ue[1].isMainAdaptation,indexInMpd:Math.min(p,Ue[1].indexInMpd)};break}}}ye<0&&t[L].push([ce,{priority:O,isMainAdaptation:E,indexInMpd:p}])}!_(F)&&_(i[F])&&(i[F]={newID:Se,adaptationSetSwitchingIDs:C})}let a=$t.reduce((p,I)=>{let y=t[I];return y.length>0&&(y.sort(Rf),p[I]=y.map(([b])=>b)),p},{});return t.video.sort(Rf),_f(a,r),a}function Rf(n,e){let t=e[1].priority-n[1].priority;return t!==0?t:n[1].isMainAdaptation!==e[1].isMainAdaptation?n[1].isMainAdaptation?-1:1:n[1].indexInMpd-e[1].indexInMpd}var jh=Je();function Gd(n,e){var a,s,d,u,l;let t=[],r=Kd(n,e);if(r.length!==n.length)throw new Error("MPD parsing error: the time information are incoherent.");let{isDynamic:i,manifestBoundsCalculator:o}=e;!i&&!_(e.duration)&&o.setLastPosition(e.duration);for(let c=n.length-1;c>=0;c--){let f=c===n.length-1,g=n[c],p=e.xlinkInfos.get(g),I=At(e.baseURLs,g.children.baseURLs),{periodStart:y,periodDuration:b,periodEnd:T}=r[c],v;for(_(g.attributes.id)?(m.warn("DASH: No usable id found in the Period. Generating one."),v="gen-dash-period-"+jh()):v=g.attributes.id;t.some(N=>N.id===v);)v+="-dup";let E=p!==void 0?p.receivedTime:e.receivedTime,R=(s=(a=e.unsafelyBaseOnPreviousManifest)==null?void 0:a.getPeriod(v))!=null?s:null,k=g.attributes.availabilityTimeComplete,x=g.attributes.availabilityTimeOffset,{manifestProfiles:M,contentProtectionParser:A}=e,{segmentTemplate:L}=g.children;A.addReferences((d=g.children.contentProtections)!=null?d:[]);let O={availabilityTimeComplete:k,availabilityTimeOffset:x,baseURLs:I,contentProtectionParser:A,manifestBoundsCalculator:o,end:T,isDynamic:i,isLastPeriod:f,manifestProfiles:M,receivedTime:E,segmentTemplate:L,start:y,unsafelyBaseOnPreviousPeriod:R},F=Wd(g.children.adaptations,O),C=((u=e.xmlNamespaces)!=null?u:[]).concat((l=g.attributes.namespaces)!=null?l:[]),P=$h(g.children.eventStreams,y,C),D={id:v,start:y,end:T,duration:b,adaptations:F,streamEvents:P};if(t.unshift(D),!o.lastPositionIsKnown()){let N=Yh(F);if(!i)typeof N=="number"&&o.setLastPosition(N);else if(typeof N=="number"){let z=K()/1e3;o.setLastPosition(N,z)}else{let z=kf(e,y);if(z!==void 0){let[$,q]=z;o.setLastPosition($,q)}}}}if(e.isDynamic&&!o.lastPositionIsKnown()){let c=kf(e,0);if(c!==void 0){let[f,g]=c;o.setLastPosition(f,g)}}return Fd(t)}function kf(n,e){if(_(n.clockOffset)){let t=Date.now()/1e3;if(t>=e){m.warn("DASH Parser: no clock synchronization mechanism found. Using the system clock instead.");let r=t-n.availabilityStartTime,i=K()/1e3;return[r,i]}}else{let t=n.clockOffset/1e3-n.availabilityStartTime,r=K()/1e3,i=r+t;if(i>=e)return[i,r]}}function Yh(n){let e=null,t=!0,r=On(n).filter(o=>!_(o)),i=Nn(r,o=>o);for(let o of i){let a=o.representations;for(let s of a){let d=s.index.getLastAvailablePosition();d!==null&&(t=!1,typeof d=="number"&&(e=_(e)?d:Math.max(e,d)))}}if(_(e)){if(t)return null}else return e}function $h(n,e,t){var i,o;let r=[];for(let a of n){let{schemeIdUri:s="",timescale:d=1}=a.attributes,u=t.concat((i=a.attributes.namespaces)!=null?i:[]);for(let l of a.children.events)if(l.eventStreamData!==void 0){let c=((o=l.presentationTime)!=null?o:0)/d+e,f=l.duration===void 0?void 0:c+l.duration/d,g,p;if(!Ft&&l.eventStreamData instanceof Element)g=l.eventStreamData;else try{p={namespaces:u,data:typeof l.eventStreamData=="string"?l.eventStreamData:Le(new Uint8Array(l.eventStreamData))}}catch(I){m.error("DASH: Error while parsing event-stream:",I instanceof Error?I.message:"Unknown error")}r.push({start:c,end:f,id:l.id,data:{type:"dash-event-stream",value:{schemeIdUri:s,timescale:d,element:g,xmlData:p}}})}}return r}function Qn(n,e,t,r,i=new WeakMap){let{children:o,attributes:a}=n;if(_(e.externalClockOffset)){let d=a.type==="dynamic",u=Z(o.utcTimings,f=>f.schemeIdUri==="urn:mpeg:dash:utc:direct:2014"&&!_(f.value)),l=!_(u)&&!_(u.value)?da(u.value):void 0,c=!_(l)&&!isNaN(l)?l:void 0;if(!_(c)&&r!==!0)e.externalClockOffset=c;else if(d&&r!==!0){let f=Dd(n);if(!_(f)&&f.length>0)return{type:"needs-clock",value:{url:f,continue:function(p){return p.success?(e.externalClockOffset=da(p.data),Qn(n,e,t,!0)):(t.push(p.error),m.warn("DASH Parser: Error on fetching the clock ressource",p.error),Qn(n,e,t,!0))}}}}}let s=[];for(let d=0;d<o.periods.length;d++){let{xlinkHref:u,xlinkActuate:l}=o.periods[d].attributes;!_(u)&&l==="onLoad"&&s.push({index:d,ressource:u})}return s.length===0?Qh(n,e,t,i):{type:"needs-xlinks",value:{xlinksUrls:s.map(({ressource:d})=>d),continue:function(u){if(u.length!==s.length)throw new Error("DASH parser: wrong number of loaded ressources.");for(let l=u.length-1;l>=0;l--){let c=s[l].index,{parsed:f,warnings:g,receivedTime:p,sendingTime:I,url:y}=u[l];g.length>0&&t.push(...g);for(let b of f)i.set(b,{receivedTime:p,sendingTime:I,url:y});o.periods.splice(c,1,...f)}return Qn(n,e,t,r,i)}}}}function Qh(n,e,t,r){var P,D,N,z,$;let{children:i,attributes:o}=n,a=o.type==="dynamic",s=e.url!==void 0?[{url:e.url.substring(0,Tr(e.url))}]:[],d=At(s,i.baseURLs),u=Bd(o,e.referenceDateTime),l=o.timeShiftBufferDepth,c=o.maxSegmentDuration,{externalClockOffset:f,unsafelyBaseOnPreviousManifest:g}=e,{externalClockOffset:p}=e,I=new Di({availabilityStartTime:u,isDynamic:a,timeShiftBufferDepth:l,serverTimestampOffset:p}),y=new Oi;y.addReferences((P=i.contentProtections)!=null?P:[]);let b={availabilityStartTime:u,baseURLs:d,clockOffset:f,contentProtectionParser:y,duration:o.duration,isDynamic:a,manifestBoundsCalculator:I,manifestProfiles:n.attributes.profiles,receivedTime:e.manifestReceivedTime,unsafelyBaseOnPreviousManifest:g,xlinkInfos:r,xmlNamespaces:n.attributes.namespaces},T=Gd(i.periods,b);y.finalize();let v=o.duration,E,R,k=null,x;o.minimumUpdatePeriod!==void 0&&o.minimumUpdatePeriod>=0&&(E=o.minimumUpdatePeriod===0?U.getCurrent().DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:o.minimumUpdatePeriod);let{minimumSafePosition:M,maximumSafePosition:A,maximumUnsafePosition:L}=Ud(T),O=K();if(a){let q;A!==void 0?q=A:p===void 0?(m.warn("DASH Parser: use system clock to define maximum position"),q=Date.now()/1e3-u):q=(K()+p)/1e3-u;let W=I.getEstimatedLiveEdge();W===void 0&&(L!==void 0?W=L:W=q),x={isLinear:!0,maximumSafePosition:q,livePosition:W,time:O},R=M,k=l!=null?l:null,k!==null&&(k+=c!=null?c:0),k!==null&&R!==void 0&&W-R>k&&(k=W-R)}else{R=M,R===void 0&&(R=(N=(D=T[0])==null?void 0:D.start)!=null?N:0);let q=v!=null?v:1/0;if(T[T.length-1]!==void 0){let W=T[T.length-1],H=(z=W.end)!=null?z:W.duration!==void 0?W.start+W.duration:void 0;H!==void 0&&H<q&&(q=H)}A!==void 0&&A<q&&(q=A),x={isLinear:!1,maximumSafePosition:q,livePosition:void 0,time:O}}let F=!a||n.attributes.minimumUpdatePeriod===void 0&&((($=T[T.length-1])==null?void 0:$.end)!==void 0||n.attributes.duration!==void 0);return{type:"done",value:{parsed:{availabilityStartTime:u,clockOffset:e.externalClockOffset,isDynamic:a,isLive:a,isLastPeriodKnown:F,periods:T,publishTime:o.publishTime,suggestedPresentationDelay:o.suggestedPresentationDelay,transportType:"dash",timeBounds:{minimumSafePosition:R,timeshiftDepth:k,maximumTimeData:x},lifetime:E,uris:_(e.url)?i.locations:[e.url,...i.locations]},warnings:t}}}var Cf=Qn;function xt(n){let e=n.textContent,t=[];return e===null||e.length===0?[void 0,t]:[{value:e},t]}var Xh=/^P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/,Zh=/([0-9]+)-([0-9]+)/;function We(n,e){return n==="true"?[!0,null]:n==="false"?[!1,null]:[!1,new et(`\`${e}\` property is not a boolean value but "${n}"`)]}function be(n,e){let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not an integer value but "${n}"`)]:[t,null]}function je(n,e){if(n==="INF")return[1/0,null];let t=parseFloat(n);return isNaN(t)?[null,new et(`\`${e}\` property is invalid: "${n}"`)]:[t,null]}function qd(n,e){if(n==="true")return[!0,null];if(n==="false")return[!1,null];let t=parseInt(n,10);return isNaN(t)?[null,new et(`\`${e}\` property is not a boolean nor an integer but "${n}"`)]:[t,null]}function ca(n,e){let t=Date.parse(n);return isNaN(t)?[null,new et(`\`${e}\` is in an invalid date format: "${n}"`)]:[new Date(Date.parse(n)).getTime()/1e3,null]}function pt(n,e){if(!w(n))return[0,new et(`\`${e}\` property is empty`)];let t=Xh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[parseFloat(w(t[2])?t[2]:"0")*365*24*60*60+parseFloat(w(t[4])?t[4]:"0")*30*24*60*60+parseFloat(w(t[6])?t[6]:"0")*24*60*60+parseFloat(w(t[8])?t[8]:"0")*60*60+parseFloat(w(t[10])?t[10]:"0")*60+parseFloat(w(t[12])?t[12]:"0"),null]}function kn(n,e){let t=Zh.exec(n);return t===null?[null,new et(`\`${e}\` property has an unrecognized format "${n}"`)]:[[+t[1],+t[2]],null]}function Pf(n,e){try{return[ft(n),null]}catch(t){return[null,new et(`\`${e}\` is not a valid base64 string: "${n}"`)]}}function Xn(n,e){let t=/^(\d+)\/(\d+)$/.exec(n);return t!==null?[+t[1]/+t[2],null]:je(n,e)}function ze(n){let e,t;for(let r=0;r<n.attributes.length;r++){let i=n.attributes[r];switch(i.name){case"schemeIdUri":e=i.value;break;case"value":t=i.value;break}}return{schemeIdUri:e,value:t}}function xe(n,e){return function(t,{asKey:r,parser:i,dashName:o}){let[a,s]=i(t,o);s!==null&&(m.warn(s.message),e.push(s)),a!==null&&(n[r]=a)}}var et=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="MPDError"}};function Jh(n){let e=[],t=[];for(let r=0;r<n.length;r++)if(n[r].nodeType===Node.ELEMENT_NODE){let i=n[r];if(i.nodeName==="cenc:pssh"){let o=i.textContent;if(o!==null&&o.length>0){let[a,s]=Pf(o,"cenc:pssh");s!==null&&(m.warn(s.message),e.push(s)),a!==null&&t.push(a)}}}return[{cencPssh:t},e]}function ey(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"schemeIdUri":e.schemeIdUri=r.value;break;case"value":e.value=r.value;break;case"cenc:default_KID":e.keyId=qe(r.value.replace(/-/g,""));break;case"ref":e.ref=r.value;break;case"refId":e.refId=r.value;break}}return e}function wt(n){let[e,t]=Jh(n.childNodes),r=ey(n);return[{children:e,attributes:r},t]}function jd(n){let e={};for(let t=0;t<n.attributes.length;t++){let r=n.attributes[t];switch(r.name){case"id":e.id=r.value;break;case"lang":e.language=r.value;break;case"contentType":e.contentType=r.value;break;case"par":e.par=r.value;break}}return e}function Yd(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"range":r(o.value,{asKey:"range",parser:kn,dashName:"range"});break;case"sourceURL":e.media=o.value;break}}return[e,t]}function Ot(n){let e={},t=[],r=xe(e,t),i=n.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){let a=i[o];if(a.nodeName==="Initialization"){let[s,d]=Yd(a);e.initialization=s,t=t.concat(d)}}for(let o=0;o<n.attributes.length;o++){let a=n.attributes[o];switch(a.name){case"timescale":r(a.value,{asKey:"timescale",parser:be,dashName:"timescale"});break;case"presentationTimeOffset":r(a.value,{asKey:"presentationTimeOffset",parser:je,dashName:"presentationTimeOffset"});break;case"indexRange":r(a.value,{asKey:"indexRange",parser:kn,dashName:"indexRange"});break;case"indexRangeExact":r(a.value,{asKey:"indexRangeExact",parser:We,dashName:"indexRangeExact"});break;case"availabilityTimeOffset":r(a.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(a.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"duration":r(a.value,{asKey:"duration",parser:be,dashName:"duration"});break;case"startNumber":r(a.value,{asKey:"startNumber",parser:be,dashName:"startNumber"});break;case"endNumber":r(a.value,{asKey:"endNumber",parser:be,dashName:"endNumber"});break}}return[e,t]}function $d(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"media":e.media=o.value;break;case"indexRange":r(o.value,{asKey:"indexRange",parser:kn,dashName:"indexRange"});break;case"index":e.index=o.value;break;case"mediaRange":r(o.value,{asKey:"mediaRange",parser:kn,dashName:"mediaRange"});break}}return[e,t]}function Li(n){let[e,t]=Ot(n),r=t,i=[],o=n.childNodes;for(let s=0;s<o.length;s++)if(o[s].nodeType===Node.ELEMENT_NODE){let d=o[s];if(d.nodeName==="SegmentURL"){let[u,l]=$d(d);i.push(u),r=r.concat(l)}}return[j(e,{list:i}),r]}function Qd(n){let e=null;return function(){if(e===null){let t=n.getElementsByTagName("S");return e=t,t}return e}}function Cn(n){let[e,t]=Ot(n),r=t,i;for(let s=0;s<n.childNodes.length;s++)if(n.childNodes[s].nodeType===Node.ELEMENT_NODE){let d=n.childNodes[s];d.nodeName==="SegmentTimeline"&&(i=Qd(d))}let o=j({},e,{duration:e.duration,timelineParser:i}),a=xe(o,r);for(let s=0;s<n.attributes.length;s++){let d=n.attributes[s];switch(d.nodeName){case"initialization":_(o.initialization)&&(o.initialization={media:d.value});break;case"index":o.index=d.value;break;case"availabilityTimeOffset":a(d.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":a(d.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break;case"media":o.media=d.value;break;case"bitstreamSwitching":a(d.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break}}return[o,r]}function ty(n){let e={baseURLs:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"BaseURL":{let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),r=r.concat(s);break}case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"SegmentBase":{let[a,s]=Ot(o);e.segmentBase=a,s.length>0&&(r=r.concat(s));break}case"SegmentList":{let[a,s]=Li(o);r=r.concat(s),e.segmentList=a;break}case"SegmentTemplate":{let[a,s]=Cn(o);r=r.concat(s),e.segmentTemplate=a;break}case"ContentProtection":{let[a,s]=wt(o);s.length>0&&(r=r.concat(s)),a!==void 0&&t.push(a);break}case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break}}return t.length>0&&(e.contentProtections=t),[e,r]}function ny(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"bandwidth":r(o.value,{asKey:"bitrate",parser:be,dashName:"bandwidth"});break;case"codecs":e.codecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:be,dashName:"height"});break;case"id":e.id=o.value;break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"qualityRanking":r(o.value,{asKey:"qualityRanking",parser:be,dashName:"qualityRanking"});break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:be,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return e.bitrate===void 0&&t.push(new et("No bitrate found on a Representation")),[e,t]}function Mf(n){let[e,t]=ty(n.childNodes),[r,i]=ny(n),o=t.concat(i);return[{children:e,attributes:r},o]}function ry(n){let e={baseURLs:[],representations:[]},t=[],r=[];for(let i=0;i<n.length;i++)if(n[i].nodeType===Node.ELEMENT_NODE){let o=n[i];switch(o.nodeName){case"Accessibility":e.accessibilities===void 0?e.accessibilities=[ze(o)]:e.accessibilities.push(ze(o));break;case"BaseURL":{let[a,s]=xt(o);a!==void 0&&e.baseURLs.push(a),s.length>0&&(r=r.concat(s));break}case"ContentComponent":e.contentComponent=jd(o);break;case"EssentialProperty":_(e.essentialProperties)?e.essentialProperties=[ze(o)]:e.essentialProperties.push(ze(o));break;case"InbandEventStream":e.inbandEventStreams===void 0&&(e.inbandEventStreams=[]),e.inbandEventStreams.push(ze(o));break;case"Label":{let a=o.textContent;a!=null&&(e.label=a);break}case"Representation":{let[a,s]=Mf(o);e.representations.push(a),s.length>0&&(r=r.concat(s));break}case"Role":_(e.roles)?e.roles=[ze(o)]:e.roles.push(ze(o));break;case"SupplementalProperty":_(e.supplementalProperties)?e.supplementalProperties=[ze(o)]:e.supplementalProperties.push(ze(o));break;case"SegmentBase":{let[a,s]=Ot(o);e.segmentBase=a,s.length>0&&(r=r.concat(s));break}case"SegmentList":{let[a,s]=Li(o);e.segmentList=a,s.length>0&&(r=r.concat(s));break}case"SegmentTemplate":{let[a,s]=Cn(o);e.segmentTemplate=a,s.length>0&&(r=r.concat(s));break}case"ContentProtection":{let[a,s]=wt(o);s.length>0&&(r=r.concat(s)),a!==void 0&&t.push(a);break}}}return t.length>0&&(e.contentProtections=t),[e,r]}function iy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"group":r(o.value,{asKey:"group",parser:be,dashName:"group"});break;case"lang":e.language=o.value;break;case"contentType":e.contentType=o.value;break;case"par":e.par=o.value;break;case"minBandwidth":r(o.value,{asKey:"minBitrate",parser:be,dashName:"minBandwidth"});break;case"maxBandwidth":r(o.value,{asKey:"maxBitrate",parser:be,dashName:"maxBandwidth"});break;case"minWidth":r(o.value,{asKey:"minWidth",parser:be,dashName:"minWidth"});break;case"maxWidth":r(o.value,{asKey:"maxWidth",parser:be,dashName:"maxWidth"});break;case"minHeight":r(o.value,{asKey:"minHeight",parser:be,dashName:"minHeight"});break;case"maxHeight":r(o.value,{asKey:"maxHeight",parser:be,dashName:"maxHeight"});break;case"minFrameRate":r(o.value,{asKey:"minFrameRate",parser:Xn,dashName:"minFrameRate"});break;case"maxFrameRate":r(o.value,{asKey:"maxFrameRate",parser:Xn,dashName:"maxFrameRate"});break;case"selectionPriority":r(o.value,{asKey:"selectionPriority",parser:be,dashName:"selectionPriority"});break;case"segmentAlignment":r(o.value,{asKey:"segmentAlignment",parser:qd,dashName:"segmentAlignment"});break;case"subsegmentAlignment":r(o.value,{asKey:"subsegmentAlignment",parser:qd,dashName:"subsegmentAlignment"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"audioSamplingRate":e.audioSamplingRate=o.value;break;case"codecs":e.codecs=o.value;break;case"scte214:supplementalCodecs":e.supplementalCodecs=o.value;break;case"codingDependency":r(o.value,{asKey:"codingDependency",parser:We,dashName:"codingDependency"});break;case"frameRate":r(o.value,{asKey:"frameRate",parser:Xn,dashName:"frameRate"});break;case"height":r(o.value,{asKey:"height",parser:be,dashName:"height"});break;case"maxPlayoutRate":r(o.value,{asKey:"maxPlayoutRate",parser:je,dashName:"maxPlayoutRate"});break;case"maximumSAPPeriod":r(o.value,{asKey:"maximumSAPPeriod",parser:je,dashName:"maximumSAPPeriod"});break;case"mimeType":e.mimeType=o.value;break;case"profiles":e.profiles=o.value;break;case"segmentProfiles":e.segmentProfiles=o.value;break;case"width":r(o.value,{asKey:"width",parser:be,dashName:"width"});break;case"availabilityTimeOffset":r(o.value,{asKey:"availabilityTimeOffset",parser:je,dashName:"availabilityTimeOffset"});break;case"availabilityTimeComplete":r(o.value,{asKey:"availabilityTimeComplete",parser:We,dashName:"availabilityTimeComplete"});break}}return[e,t]}function Af(n){let e=n.childNodes,[t,r]=ry(e),[i,o]=iy(n),a=r.concat(o);return[{children:t,attributes:i},a]}function Xd(n){let e={children:{events:[]},attributes:{}},t=[],r=xe(e.attributes,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"schemeIdUri":e.attributes.schemeIdUri=o.value;break;case"timescale":r(o.value,{asKey:"timescale",parser:be,dashName:"timescale"});break;case"value":e.attributes.value=o.value;break}}for(let i=0;i<n.childNodes.length;i++)if(n.childNodes[i].nodeType===Node.ELEMENT_NODE){let o=n.childNodes[i];switch(o.nodeName){case"Event":{let[a,s]=oy(o);e.children.events.push(a),s.length>0&&(t=t.concat(s));break}}}return[e,t]}function oy(n){let e={eventStreamData:n},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"presentationTime":r(o.value,{asKey:"presentationTime",parser:be,dashName:"presentationTime"});break;case"duration":r(o.value,{asKey:"duration",parser:be,dashName:"duration"});break;case"id":e.id=o.value;break}}return[e,t]}function ay(n){let e=[],t=[],r,i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":{let[u,l]=xt(d);u!==void 0&&e.push(u),o=o.concat(l);break}case"AdaptationSet":{let[u,l]=Af(d);t.push(u),o=o.concat(l);break}case"EventStream":{let[u,l]=Xd(d);a.push(u),o=o.concat(l);break}case"SegmentTemplate":{let[u,l]=Cn(d);r=u,l.length>0&&(o=o.concat(l));break}case"ContentProtection":{let[u,l]=wt(d);l.length>0&&(o=o.concat(l)),u!==void 0&&i.push(u);break}}}return[{baseURLs:e,adaptations:t,eventStreams:a,segmentTemplate:r,contentProtections:i},o]}function sy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"start":r(o.value,{asKey:"start",parser:pt,dashName:"start"});break;case"duration":r(o.value,{asKey:"duration",parser:pt,dashName:"duration"});break;case"bitstreamSwitching":r(o.value,{asKey:"bitstreamSwitching",parser:We,dashName:"bitstreamSwitching"});break;case"xlink:href":e.xlinkHref=o.value;break;case"xlink:actuate":e.xlinkActuate=o.value;break}}return[e,t]}function fa(n){let[e,t]=ay(n.childNodes),[r,i]=sy(n),o=t.concat(i);return[{children:e,attributes:r},o]}function dy(n){let e=[],t=[],r=[],i=[],o=[],a=[];for(let s=0;s<n.length;s++)if(n[s].nodeType===Node.ELEMENT_NODE){let d=n[s];switch(d.nodeName){case"BaseURL":{let[u,l]=xt(d);u!==void 0&&e.push(u),a=a.concat(l);break}case"Location":t.push(d.textContent===null?"":d.textContent);break;case"Period":{let[u,l]=fa(d);r.push(u),a=a.concat(l);break}case"UTCTiming":{let u=ze(d);i.push(u);break}case"ContentProtection":{let[u,l]=wt(d);l.length>0&&(a=a.concat(l)),u!==void 0&&o.push(u);break}}}return[{baseURLs:e,locations:t,periods:r,utcTimings:i,contentProtections:o},a]}function uy(n){let e={},t=[],r=xe(e,t);for(let i=0;i<n.attributes.length;i++){let o=n.attributes[i];switch(o.name){case"id":e.id=o.value;break;case"profiles":e.profiles=o.value;break;case"type":e.type=o.value;break;case"availabilityStartTime":r(o.value,{asKey:"availabilityStartTime",parser:ca,dashName:"availabilityStartTime"});break;case"availabilityEndTime":r(o.value,{asKey:"availabilityEndTime",parser:ca,dashName:"availabilityEndTime"});break;case"publishTime":r(o.value,{asKey:"publishTime",parser:ca,dashName:"publishTime"});break;case"mediaPresentationDuration":r(o.value,{asKey:"duration",parser:pt,dashName:"mediaPresentationDuration"});break;case"minimumUpdatePeriod":r(o.value,{asKey:"minimumUpdatePeriod",parser:pt,dashName:"minimumUpdatePeriod"});break;case"minBufferTime":r(o.value,{asKey:"minBufferTime",parser:pt,dashName:"minBufferTime"});break;case"timeShiftBufferDepth":r(o.value,{asKey:"timeShiftBufferDepth",parser:pt,dashName:"timeShiftBufferDepth"});break;case"suggestedPresentationDelay":r(o.value,{asKey:"suggestedPresentationDelay",parser:pt,dashName:"suggestedPresentationDelay"});break;case"maxSegmentDuration":r(o.value,{asKey:"maxSegmentDuration",parser:pt,dashName:"maxSegmentDuration"});break;case"maxSubsegmentDuration":r(o.value,{asKey:"maxSubsegmentDuration",parser:pt,dashName:"maxSubsegmentDuration"});break}}return[e,t]}function xf(n){let[e,t]=dy(n.childNodes),[r,i]=uy(n),o=t.concat(i);return[{children:e,attributes:r},o]}function Zd(n,e){let t=n.documentElement;if(_(t)||t.nodeName!=="MPD")throw new Error("DASH Parser: document root should be MPD");let[r,i]=xf(t),o=Cf(r,e,i);return a(o);function a(s){if(s.type==="done")return s;if(s.type==="needs-clock")return{type:"needs-resources",value:{urls:[s.value.url],format:"string",continue(d){if(d.length!==1)throw new Error("DASH parser: wrong number of loaded ressources.");let u=s.value.continue(d[0].responseData);return a(u)}}};if(s.type==="needs-xlinks")return{type:"needs-resources",value:{urls:s.value.xlinksUrls,format:"string",continue(d){let u=[];for(let c=0;c<d.length;c++){let{responseData:f,receivedTime:g,sendingTime:p,url:I}=d[c];if(!f.success)throw f.error;let y="<root>"+f.data+"</root>",b=new DOMParser().parseFromString(y,"text/xml");if(_(b)||b.children.length===0)throw new Error("DASH parser: Invalid external ressources");let T=b.children[0].children,v=[],E=[];for(let R=0;R<T.length;R++)if(T[R].nodeType===Node.ELEMENT_NODE){let[k,x]=fa(T[R]);E.push(...x),v.push(k)}u.push({url:I,receivedTime:g,sendingTime:p,parsed:v,warnings:E})}let l=s.value.continue(u);return a(l)}}};Qe(s)}}var wf=Zd;function Ye(n,e){if(e.length===0)return n;let t,r="",i=n.indexOf("#"),o=n;i>=0&&(r=n.substring(i),o=n.substring(0,i));let a=o.indexOf("?");a===-1?t="?":a+1===o.length?t="":t="&";let s=o+t;for(let d=0;d<e.length;d++){let u=e[d];u[1]===null?s+=u[0]:s+=`${u[0]}=${u[1]}`,d<e.length-1&&(s+="&")}return r.length>0&&(s+=r),s}function Jd(n,e){return(t,r,i)=>new Promise((o,a)=>{let s=Date.now()-K(),d=!1,f={reject:I=>{var v,E;if(d||i.isCancelled())return;d=!0,i.deregister(p);let y=I,b=(v=y==null?void 0:y.message)!=null?v:"Unknown error when fetching the Manifest through a custom manifestLoader.",T=new nt(b,(E=y==null?void 0:y.canRetry)!=null?E:!1,y==null?void 0:y.xhr);a(T)},resolve:I=>{if(d||i.isCancelled())return;d=!0,i.deregister(p);let y=I.receivingTime!==void 0?I.receivingTime-s:void 0,b=I.sendingTime!==void 0?I.sendingTime-s:void 0;o({responseData:I.data,size:I.size,requestDuration:I.duration,url:I.url,receivedTime:y,sendingTime:b})},fallback:()=>{d||i.isCancelled()||(d=!0,i.deregister(p),e(t,r,i).then(o,a))}},g=n({url:t,timeout:r.timeout,cmcdPayload:r.cmcdPayload},f);i.register(p);function p(I){d||(d=!0,typeof g=="function"&&g(),a(I))}})}function ly(n){return function(t,r,i){var s,d;if(t===void 0)throw new Error("Cannot perform HTTP(s) request. URL not known");let o=((s=r.cmcdPayload)==null?void 0:s.type)==="query"?Ye(t,r.cmcdPayload.value):t,a=((d=r.cmcdPayload)==null?void 0:d.type)==="headers"?r.cmcdPayload.value:void 0;switch(n){case"arraybuffer":return Te({url:o,headers:a,responseType:"arraybuffer",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"text":return Te({url:o,headers:a,responseType:"text",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});case"document":return Te({url:o,headers:a,responseType:"document",timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i});default:Qe(n)}}}function Ni({customManifestLoader:n},e,t){let r=ly(e),i=typeof n!="function"?r:Jd(n,r);return t!==null?t(i):i}function Jt(n,e){if(e){if(yt(n,1718909296)<0)throw new De("INTEGRITY_ERROR","Incomplete `ftyp` box");if(yt(n,1836019574)<0)throw new De("INTEGRITY_ERROR","Incomplete `moov` box")}else{if(yt(n,1836019558)<0)throw new De("INTEGRITY_ERROR","Incomplete `moof` box");if(yt(n,1835295092)<0)throw new De("INTEGRITY_ERROR","Incomplete `mdat` box")}}function gt(n,e){if(n==="audio"||n==="video")return e==="video/mp4"||e==="audio/mp4"?"mp4":e==="video/webm"||e==="audio/webm"?"webm":void 0;if(n==="text")return e==="application/mp4"?"mp4":void 0}function ma(n){return(e,t,r,i,o)=>{return new Promise((s,d)=>{let u=new B,l=u.linkToSignal(i);u.signal.register(d),n(e,t,r,u.signal,de(ie({},o),{onNewChunk(f){try{a(f),o.onNewChunk(f)}catch(g){c(),u.cancel(),d(g)}}})).then(f=>{if(c(),!u.isUsed()){if(f.resultType==="segment-loaded")try{a(f.resultData.responseData)}catch(g){d(g);return}s(f)}},f=>{c(),d(f)});function c(){u.signal.deregister(d),l()}});function a(s){!(s instanceof ArrayBuffer)&&!(s instanceof Uint8Array)||gt(t.type,t.mimeType)!=="mp4"||Jt(new Uint8Array(s),t.segment.isInit)}}}function Of(n){return async(e,t,r)=>{let i=await n(e,t,r);return o(i.responseData),i;function o(a){if(typeof a=="string"){let s=a.length-1,d=["</","MPD",">"];for(let u=d.length-1;u>=0;u--){let l=d[u];for(;cy(a[s]);)s--;for(let c=l.length-1;c>=0;c--){if(a[s]!==l[c])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(a instanceof ArrayBuffer){let s=a.byteLength-1,d=new DataView(a),u=[[60,47],[77,80,68],[62]];for(let l=u.length-1;l>=0;l--){let c=u[l];for(;fy(d.getUint8(s));)s--;for(let f=c.length-1;f>=0;f--){if(d.getUint8(s)!==c[f])throw new Error("INTEGRITY_ERROR MPD does not end with </MPD>");s--}}}else if(!_(te.Document)&&a instanceof te.Document&&a.documentElement.nodeName!=="MPD")throw new De("INTEGRITY_ERROR","MPD does not end with </MPD>")}}}function cy(n){return n===" "||n===" "||n==="\r"||n===`
|
|
5
|
+
`}function fy(n){return n===32||n===9||n===13||n===10}function eu(n){let{referenceDateTime:e}=n,t=n.serverSyncInfos!==void 0?n.serverSyncInfos.serverTimestamp-n.serverSyncInfos.clientTime:void 0;return function(i,o,a,s,d){var T;let{responseData:u}=i,l=o.externalClockOffset,c=(T=i.url)!=null?T:o.originalUrl,f=t!=null?t:l,p={unsafelyBaseOnPreviousManifest:o.unsafeMode?o.previousManifest:null,url:c,referenceDateTime:e,externalClockOffset:f},I=me.dashParsers;if(I.wasm===null||I.wasm.status==="uninitialized"||I.wasm.status==="failure")return m.debug("DASH: WASM MPD Parser not initialized. Running JS one."),y();{let v=yy(u);if(!Iy(v))return m.info("DASH: MPD doesn't seem to be UTF-8-encoded. Running JS parser instead of the WASM one."),y();if(I.wasm.status==="initialized"){m.debug("DASH: Running WASM MPD Parser.");let E=I.wasm.runWasmParser(v,p);return b(E)}else return m.debug("DASH: Awaiting WASM initialization before parsing the MPD."),I.wasm.waitForInitialization().catch(()=>{}).then(()=>{if(I.wasm===null||I.wasm.status!=="initialized")return m.warn("DASH: WASM MPD parser initialization failed. Running JS parser instead"),y();m.debug("DASH: Running WASM MPD Parser.");let R=I.wasm.runWasmParser(v,p);return b(R)})}function y(){if(I.fastJs!==null){let v=gy(u),E=I.fastJs(v,p);return b(E)}else if(I.native!==null){let v=hy(u),E=I.native(v,p);return b(E)}else throw new Error("No MPD parser is imported")}function b(v){if(v.type==="done"){if(v.value.warnings.length>0&&a(v.value.warnings),s.isCancelled())return Promise.reject(s.cancellationError);let k=[];return{manifest:new zn(v.value.parsed,n,k),url:c,warnings:k}}let{value:E}=v,R=E.urls.map(k=>d(()=>{let x=U.getCurrent().DEFAULT_REQUEST_TIMEOUT,M=U.getCurrent().DEFAULT_CONNECTION_TIMEOUT;return E.format==="string"?Te({url:k,responseType:"text",timeout:x,connectionTimeout:M,cancelSignal:s}):Te({url:k,responseType:"arraybuffer",timeout:x,connectionTimeout:M,cancelSignal:s})}).then(x=>{if(E.format==="string"){if(typeof x.responseData!="string")throw new Error("External DASH resources should have been a string");return j(x,{responseData:{success:!0,data:x.responseData}})}else{if(!(x.responseData instanceof ArrayBuffer))throw new Error("External DASH resources should have been ArrayBuffers");return j(x,{responseData:{success:!0,data:x.responseData}})}},x=>{let M=we(x,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"An unknown error occured when parsing ressources."});return j({},{size:void 0,requestDuration:void 0,responseData:{success:!1,error:M}})}));return Promise.all(R).then(k=>E.format==="string"?(my(k),b(E.continue(k))):(py(k),b(E.continue(k))))}}}function my(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&typeof t.data=="string")&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function py(n){h.CURRENT_ENV!==h.PRODUCTION&&n.forEach(e=>{let{responseData:t}=e;if(!(t.success&&t.data instanceof ArrayBuffer)&&t.success)throw new Error("Invalid data given to the LoadedRessource")})}function gy(n){if(n instanceof ArrayBuffer)return Le(new Uint8Array(n));if(typeof n=="string")return n;if(n instanceof Document)return n.documentElement.outerHTML;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function hy(n){if(n instanceof ArrayBuffer)return new DOMParser().parseFromString(Le(new Uint8Array(n)),"text/xml");if(typeof n=="string")return new DOMParser().parseFromString(n,"text/xml");if(n instanceof Document)return n;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function yy(n){if(n instanceof ArrayBuffer)return n;if(typeof n=="string")return ve(n).buffer;if(n instanceof Document)return ve(n.documentElement.innerHTML).buffer;throw new Error("DASH Manifest Parser: Unrecognized Manifest format")}function Iy(n){let e=new DataView(n);return e.getUint16(0)===61371&&e.getUint8(2)===191?!0:!(e.getUint16(0)===65279||e.getUint16(0)===65534)}function dt([n,e]){return e===1/0?`bytes=${n}-`:`bytes=${n}-${e}`}function Ui(n,e){return n===null?null:e.url===null?n.baseUrl:cn(n.baseUrl,e.url)}function Bi(n,e,t,r,i){var u,l;let o=n;((u=t.cmcdPayload)==null?void 0:u.type)==="query"&&(o=Ye(o,t.cmcdPayload.value));let a=((l=t.cmcdPayload)==null?void 0:l.type)==="headers"?t.cmcdPayload.value:void 0;if(e.range===void 0)return Te({url:o,responseType:"arraybuffer",headers:a,timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));if(e.indexRange===void 0)return Te({url:o,headers:de(ie({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));if(e.range[1]+1===e.indexRange[0])return Te({url:o,headers:de(ie({},a),{Range:dt([e.range[0],e.indexRange[1]])}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}).then(c=>({resultType:"segment-loaded",resultData:c}));let s=Te({url:o,headers:de(ie({},a),{Range:dt(e.range)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress}),d=Te({url:o,headers:de(ie({},a),{Range:dt(e.indexRange)}),responseType:"arraybuffer",timeout:t.timeout,connectionTimeout:t.connectionTimeout,cancelSignal:r,onProgress:i.onProgress});return Promise.all([s,d]).then(([c,f])=>{let g=re(new Uint8Array(c.responseData),new Uint8Array(f.responseData)),p=Math.min(c.sendingTime,f.sendingTime),I=Math.max(c.receivedTime,f.receivedTime);return{resultType:"segment-loaded",resultData:{url:o,responseData:g,size:c.size+f.size,requestDuration:I-p,sendingTime:p,receivedTime:I}}})}async function Fi(n,e,t,r){let i=null;function o(s){let d=new Uint8Array(s.chunk),u=i!==null?re(i,d):d,l=Bo(u),c=l[0];i=l[1],!(c!==null&&(c.forEach(f=>{t.onNewChunk(f)}),r.isCancelled()))&&(t.onProgress({duration:s.duration,size:s.size,totalSize:s.totalSize}),r.isCancelled())}return{resultType:"chunk-complete",resultData:await So({url:n,headers:e.headers,onData:o,timeout:e.timeout,connectionTimeout:e.connectionTimeout,cancelSignal:r})}}async function Df(n,e,t,r,i,o){var f,g;if(e.segment.isInit)return Bi(n,e.segment,r,o,i);let a=((f=r.cmcdPayload)==null?void 0:f.type)==="query"?Ye(n,r.cmcdPayload.value):n,s=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,{segment:d}=e,u;d.range!==void 0?u=de(ie({},s),{Range:dt(d.range)}):s!==void 0&&(u=s);let l=gt(e.type,e.mimeType);if(t&&(l==="mp4"||l===void 0)){if(Er())return Fi(a,{headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout},i,o);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}return{resultType:"segment-loaded",resultData:await Te({url:a,responseType:"arraybuffer",headers:u,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:o,onProgress:i.onProgress})}}function tu({lowLatencyMode:n,segmentLoader:e,checkMediaSegmentIntegrity:t}){return t!==!0?r:ma(r);function r(i,o,a,s,d){let u=Ui(i,o.segment);return u===null?Promise.resolve({resultType:"segment-created",resultData:null}):n||e===void 0?Df(u,o,n,a,d,s):new Promise((l,c)=>{let f=!1,b={reject:k=>{var L,O;if(f||s.isCancelled())return;f=!0,s.deregister(R);let x=k,M=(L=x==null?void 0:x.message)!=null?L:"Unknown error when fetching a DASH segment through a custom segmentLoader.",A=new nt(M,(O=x==null?void 0:x.canRetry)!=null?O:!1,x==null?void 0:x.xhr);c(A)},resolve:k=>{f||s.isCancelled()||(f=!0,s.deregister(R),l({resultType:"segment-loaded",resultData:{responseData:k.data,size:k.size,requestDuration:k.duration}}))},progress:k=>{f||s.isCancelled()||d.onProgress({duration:k.duration,size:k.size,totalSize:k.totalSize})},fallback:()=>{f||s.isCancelled()||(f=!0,s.deregister(R),Df(u,o,n,a,d,s).then(l,c))}},T;o.segment.range!==void 0&&(T=[o.segment.range],o.segment.indexRange!==void 0&&T.push(o.segment.indexRange));let v={isInit:o.segment.isInit,timeout:a.timeout,byteRanges:T,trackType:o.type,url:u,cmcdPayload:a.cmcdPayload},E=e(v,b);s.register(R);function R(k){f||(f=!0,typeof E=="function"&&E(),c(k))}})}}var ru=408125543,Lf=357149030,by=2807729,Sy=17545,Ty=475249515,_y=187,Ey=179,vy=183,Ry=241;function en(n,e,t,[r,i]){let o=r;for(;o<i;){let a=Cy(t,o);if(a===null)return null;let{value:s,length:d}=a,u=o+d,l=Py(t,u);if(l===null)return null;let{length:c,value:f}=l,g=u+c,p=g+f;if(s===n)return[g,p];if(e.length>0){for(let I=0;I<e.length;I++)if(s===e[I]){let y=e.slice(I+1,e.length);return en(n,y,t,[g,p])}}o=p}return null}function pa(n,e){let t=en(by,[ru,Lf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return 1e9/nu(n,t[0],r)}function ky(n,e){let t=en(Sy,[ru,Lf],n,[e,n.length]);if(t===null)return null;let r=t[1]-t[0];return r===4?My(n,t[0]):r===8?Ay(n,t[0]):null}function iu(n,e){let t=en(ru,[],n,[e,n.length]);if(t===null)return null;let[r,i]=t,o=pa(n,r);if(o===null)return null;let a=ky(n,r);if(a===null)return null;let s=en(Ty,[],n,[r,i]);if(s===null)return null;let d=[],u=s[0];for(;u<s[1];){let c=en(_y,[],n,[u,s[1]]);if(c===null)break;let f=en(Ey,[],n,[c[0],c[1]]);if(f===null)return null;let g=nu(n,f[0],f[1]-f[0]),p=en(Ry,[vy],n,[c[0],c[1]]);if(p===null)return null;let I=nu(n,p[0],p[1]-p[0])+r;d.push({time:g,rangeStart:I}),u=c[1]}let l=[];for(let c=0;c<d.length;c++){let f=d[c];c===d.length-1?l.push({time:f.time,timescale:o,duration:c===0?a:a-f.time,range:[f.rangeStart,1/0]}):l.push({time:f.time,timescale:o,duration:d[c+1].time-f.time,range:[f.rangeStart,d[c+1].rangeStart-1]})}return l}function Nf(n,e){for(let t=1;t<=8;t++)if(n[e]>=Math.pow(2,8-t))return t}function Cy(n,e){let t=Nf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function Py(n,e){let t=Nf(n,e);if(t===void 0)return m.warn("webm: unrepresentable length"),null;if(e+t>n.length)return m.warn("webm: impossible length"),null;let r=(n[e]&(1<<8-t)-1)*Math.pow(2,(t-1)*8);for(let i=1;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return{length:t,value:r}}function My(n,e){return new DataView(n.buffer).getFloat32(e)}function Ay(n,e){return new DataView(n.buffer).getFloat64(e)}function nu(n,e,t){let r=0;for(let i=0;i<t;i++)r=n[e+i]*Math.pow(2,(t-i-1)*8)+r;return r}function Ki(n,e,t,r){let i=Es(n);if(i===void 0||r===void 0)return null;let o=t.timestampOffset!==void 0?i+t.timestampOffset*r:i,a=Nr(n);if(o<0&&(a!==void 0&&(a+=o),o=0),e||!t.complete)return a===void 0&&m.warn("DASH: Chunked segments should indicate a duration through their trun boxes"),{time:o/r,duration:a!==void 0?a/r:void 0};let s,d=t.duration*r,u=Math.min(r*.9,d/4);return a!==void 0&&Math.abs(a-d)<=u&&(s=a),{time:o/r,duration:s!==void 0?s/r:s}}function xy(n,e){if(n.length<=0)return!1;let t=n.length;for(let r=0;r<t;r++){let i=n[r],o=e,{messageData:a}=i,s=Le(a),d=Date.parse(s);if(o===void 0||d===void 0||isNaN(d)||d>=o)return!0}return!1}function ou(n,e){if(n.length===0)return;let{manifestRefreshEventsFromEMSGs:t,EMSGs:r}=n.reduce((a,s)=>(s.schemeIdUri==="urn:mpeg:dash:event:2012"&&s.value==="1"?(a.manifestRefreshEventsFromEMSGs===void 0&&(a.manifestRefreshEventsFromEMSGs=[]),a.manifestRefreshEventsFromEMSGs.push(s)):(a.EMSGs===void 0&&(a.EMSGs=[]),a.EMSGs.push(s)),a),{manifestRefreshEventsFromEMSGs:void 0,EMSGs:void 0}),i=r==null?void 0:r.map(a=>({type:"emsg",value:a})),o=e===void 0||t===void 0?!1:xy(t,e);return{inbandEvents:i,needsManifestRefresh:o}}function au({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var v,E;let{segment:o,periodStart:a,periodEnd:s}=r,{data:d,isChunked:u}=t,l=[a,s];if(d===null)return o.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:0,protectionData:[],appendWindow:l};let c=d instanceof Uint8Array?d:new Uint8Array(d),f=gt(r.type,r.mimeType),g=f==="mp4"||f===void 0,p=[];if(g){let R=Fo(c),k;o.isInit&&(k=(v=xc(c))!=null?v:void 0),(R.length>0||k!==void 0)&&p.push({initDataType:"cenc",keyId:k,initData:R})}if(!o.isInit){let R=g?Ki(c,u,o,i):null,k=(E=o.timestampOffset)!=null?E:0;if(g){let x=Ac(c);if(x!==void 0){let M=x.filter(L=>o.privateInfos===void 0||o.privateInfos.isEMSGWhitelisted===void 0?!1:o.privateInfos.isEMSGWhitelisted(L)),A=ou(M,r.manifestPublishTime);if(A!==void 0){let{needsManifestRefresh:L,inbandEvents:O}=A;return{segmentType:"media",chunkData:c,chunkSize:c.length,chunkInfos:R,chunkOffset:k,appendWindow:l,inbandEvents:O,protectionData:p,needsManifestRefresh:L}}}}return{segmentType:"media",chunkData:c,chunkSize:c.length,chunkInfos:R,chunkOffset:k,protectionData:p,appendWindow:l}}let{indexRange:I}=o,y;if(f==="webm")y=iu(c,0);else if(g&&(y=Lr(c,Array.isArray(I)?I[0]:0),n===!0&&y!==null&&y.length>0)){let R=y[y.length-1];Array.isArray(R.range)&&(R.range[1]=1/0)}let b;g?b=Ur(c):f==="webm"&&(b=pa(c,0));let T=_(b)?void 0:b;return{segmentType:"init",initializationData:c,initializationDataSize:c.length,protectionData:p,initTimescale:T,segmentList:y!=null?y:void 0}}}function su({lowLatencyMode:n,checkMediaSegmentIntegrity:e}){return e!==!0?t:ma(t);async function t(r,i,o,a,s){var y,b;let{segment:d}=i,u=Ui(r,d);if(u===null)return Promise.resolve({resultType:"segment-created",resultData:null});if(d.isInit)return Bi(u,d,o,a,s);let l=((y=o.cmcdPayload)==null?void 0:y.type)==="query"?Ye(u,o.cmcdPayload.value):u,c=((b=o.cmcdPayload)==null?void 0:b.type)==="headers"?o.cmcdPayload.value:void 0,f;d.range!==void 0?f=de(ie({},c),{Range:dt(d.range)}):c!==void 0&&(f=c);let g=gt(i.type,i.mimeType),p=g==="mp4"||g===void 0;if(n&&p){if(Er())return Fi(l,{headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout},s,a);kt("DASH: Your browser does not have the fetch API. You will have a higher chance of rebuffering when playing close to the live edge")}let I;return p?I=await Te({url:l,responseType:"arraybuffer",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}):I=await Te({url:l,responseType:"text",headers:f,timeout:o.timeout,connectionTimeout:o.connectionTimeout,onProgress:s.onProgress,cancelSignal:a}),{resultType:"segment-loaded",resultData:I}}}function wy(n){let e=Or(n);return e===null?"":Le(e)}function Oy(n){if(n===void 0)throw new Error("Cannot parse subtitles: unknown format");switch(n.toLowerCase()){case"stpp":case"stpp.ttml.im1t":return"ttml";case"wvtt":return"vtt"}throw new Error(`The codec used for the subtitles "${n}" is not managed yet.`)}function Dy(n,e){switch(e){case"application/ttml+xml":return"ttml";case"application/x-sami":case"application/smil":return"sami";case"text/vtt":return"vtt"}if(n!==void 0&&n.toLowerCase()==="srt")return"srt";throw new Error(`could not find a text-track parser for the type ${e!=null?e:""}`)}function Uf({segment:n,language:e,codecs:t},r,i,o){if(n.isInit)return null;let a,s;i===null?o?(a=n.time,s=n.end):m.warn("Transport: Unavailable time data for current text track."):(a=i.time,i.duration!==void 0?s=a+i.duration:!o&&n.complete&&(s=a+n.duration));let d=Oy(t);return{data:wy(r),type:d,language:e,start:a,end:s}}function Bf(n,e,t){let{segment:r}=n;if(r.isInit)return null;let i,o;t?m.warn("Transport: Unavailable time data for current text track."):(i=r.time,r.complete&&(o=r.time+r.duration));let a=Dy(n.codecs,n.mimeType);return{data:e,type:a,language:n.language,start:i,end:o}}function Ly(n,e,t,r,i){var f;let{segment:o}=t,{isInit:a,indexRange:s}=o,d;if(typeof n=="string"?d=ve(n):n instanceof Uint8Array?d=n:d=new Uint8Array(n),a){let g=Lr(d,Array.isArray(s)?s[0]:0);if(i===!0&&g!==null&&g.length>0){let I=g[g.length-1];Array.isArray(I.range)&&(I.range[1]=1/0)}let p=Ur(d);return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:p,segmentList:g!=null?g:void 0}}let u=Ki(d,e,o,r),l=Uf(t,d,u,e),c=(f=o.timestampOffset)!=null?f:0;return{segmentType:"media",chunkData:l,chunkSize:d.length,chunkInfos:u,chunkOffset:c,protectionData:[],appendWindow:[t.periodStart,t.periodEnd]}}function Ny(n,e,t){let{periodStart:r,periodEnd:i,segment:o}=t,{timestampOffset:a=0}=o;if(o.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};let s,d;if(typeof n!="string"){let l=n instanceof Uint8Array?n:new Uint8Array(n);s=Le(l),d=l.length}else s=n;return{segmentType:"media",chunkData:Bf(t,s,e),chunkSize:d,chunkInfos:null,chunkOffset:a,protectionData:[],appendWindow:[r,i]}}function du({__priv_patchLastSegmentInSidx:n}){return function(t,r,i){var c;let{periodStart:o,periodEnd:a,segment:s}=r,{data:d,isChunked:u}=t;if(d===null)return s.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkSize:0,chunkInfos:null,chunkOffset:(c=s.timestampOffset)!=null?c:0,protectionData:[],appendWindow:[o,a]};let l=gt(r.type,r.mimeType);if(l==="webm")throw new Error("Text tracks with a WEBM container are not yet handled.");return l==="mp4"?Ly(d,u,r,i,n):Ny(d,u,r)}}function Ff(n){let e=Ni({customManifestLoader:n.manifestLoader},Uy()?"text":"arraybuffer",n.checkManifestIntegrity===!0?Of:null),t=eu(n),r=tu(n),i=au(n),o=su(n),a=du(n);return{transportName:"dash",manifest:{loadManifest:e,parseManifest:t},audio:{loadSegment:r,parseSegment:i},video:{loadSegment:r,parseSegment:i},text:{loadSegment:o,parseSegment:a}}}function Uy(){return me.dashParsers.wasm!==null&&(me.dashParsers.wasm.status==="initialized"||me.dashParsers.wasm.status==="initializing")}var Kf=Ff;function uu(n){n.transports.dash===void 0&&(n.transports.dash=Kf),n.dashParsers.native=wf,n.mainThreadMediaSourceInit=_n}var By=typeof MediaSource=="function"&&MediaSource.canConstructInDedicatedWorker===!0,Vf=By;var Vi=class extends qn{constructor(e){super(),this._settings=e,this._initCanceller=new B}prepare(){}start(e,t){let r=this._initCanceller.signal,{keySystems:i,speed:o,url:a}=this._settings;jn(e);let{statusRef:s}=Ti(e,i,{onError:u=>this._onFatalError(u),onWarning:u=>this.trigger("warning",u),onBlackListProtectionData:X,onKeyIdsCompatibilityUpdate:X},r);Ri(e,u=>this._onFatalError(u),r);let d=new Tn(t,null,o);d.addEventListener("stalled",u=>this.trigger("stalled",u)),d.addEventListener("unstalled",()=>this.trigger("unstalled",null)),d.addEventListener("warning",u=>this.trigger("warning",u)),r.register(()=>{d.destroy()}),d.start(),s.onUpdate((u,l)=>{u.initializationState.type!=="uninitialized"&&(l(),m.info("Setting URL to HTMLMediaElement",a),e.src=a,r.register(()=>{m.info("Init: Removing directfile src from media element",e.src),jn(e)}),u.initializationState.type==="awaiting-media-link"?(u.initializationState.value.isMediaLinked.setValue(!0),s.onUpdate((c,f)=>{c.initializationState.type==="initialized"&&(f(),this._seekAndPlay(e,t))},{emitCurrentValue:!0,clearSignal:r})):(J(u.initializationState.type==="initialized"),this._seekAndPlay(e,t)))},{emitCurrentValue:!0,clearSignal:r})}updateContentUrls(e,t){throw new Error("Cannot update content URL of directfile contents")}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.cancel(),this.trigger("error",e)}_seekAndPlay(e,t){let r=this._initCanceller.signal,{autoPlay:i,startAt:o}=this._settings;Si({mediaElement:e,playbackObserver:t,startTime:()=>{m.debug("Init: Calculating initial time");let s=Fy(e,o);return m.debug("Init: Initial time calculated:",s),s},mustAutoPlay:i,onWarning:s=>this.trigger("warning",s),isDirectfile:!0},r).autoPlayResult.then(()=>bi(t,e,!0,r).onUpdate((s,d)=>{s&&(d(),this.trigger("loaded",{getSegmentSinkMetrics:null}))},{emitCurrentValue:!0,clearSignal:r})).catch(s=>{r.isCancelled()||this._onFatalError(s)})}};function Fy(n,e){if(_(e))return 0;if(_(e.position))if(_(e.wallClockTime)){if(!_(e.fromFirstPosition))return e.fromFirstPosition}else return e.wallClockTime;else return e.position;let t=n.duration;if(typeof e.fromLastPosition=="number")return _(t)||!isFinite(t)?(m.warn("startAt.fromLastPosition set but no known duration, beginning at 0."),0):Math.max(0,t+e.fromLastPosition);if(typeof e.fromLivePosition=="number"){let r=n.seekable.length>0?n.seekable.end(0):t;return _(r)?(m.warn("startAt.fromLivePosition set but no known live position, beginning at 0."),0):Math.max(0,r+e.fromLivePosition)}else if(!_(e.percentage)){if(_(t)||!isFinite(t))return m.warn("startAt.percentage set but no known duration, beginning at 0."),0;let{percentage:r}=e;if(r>=100)return t;if(r<=0)return 0;let i=+r/100;return t*i}return 0}function lu(n,e){for(let t=0;t<n.length;t++)(!sr||t!==e)&&(n[t].enabled=!1);return e<0||e>=n.length?!1:(n[e].enabled=!0,!0)}function Zn(n,e){var t;if(e.length!==n.length)return!0;for(let r=0;r<e.length;r++)if(e[r].nativeTrack!==((t=n[r])==null?void 0:t.nativeTrack))return!0;return!1}function cu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_audio_"+a+"_"+s.toString();t[a]=s+1;let u={language:o.language,id:d,normalized:vr(o.language),audioDescription:o.kind==="descriptions"||o.kind==="description",representations:[]};e.push({track:u,nativeTrack:o})}return e}function fu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_text_"+a+"_"+s.toString();t[a]=s+1;let u=o.kind==="forced"?!0:void 0,l={language:o.language,forced:u,label:o.label,id:d,normalized:vr(o.language),closedCaption:o.kind==="captions"};e.push({track:l,nativeTrack:o})}return e}function mu(n){var r;let e=[],t={};for(let i=0;i<n.length;i++){let o=n[i],a=o.language===""?"nolang":o.language,s=(r=t[a])!=null?r:1,d="gen_video_"+a+"_"+s.toString();t[a]=s+1,e.push({track:{id:d,representations:[]},nativeTrack:o})}return e}var zi=class extends oe{constructor(e){var t,r,i;super(),this._nativeAudioTracks=e.audioTracks,this._nativeVideoTracks=e.videoTracks,this._nativeTextTracks=e.textTracks,this._audioTracks=this._nativeAudioTracks!==void 0?cu(this._nativeAudioTracks):[],this._videoTracks=this._nativeVideoTracks!==void 0?mu(this._nativeVideoTracks):[],this._textTracks=this._nativeTextTracks!==void 0?fu(this._nativeTextTracks):[],this._lastEmittedNativeAudioTrack=(t=this._getCurrentAudioTrack())==null?void 0:t.nativeTrack,this._lastEmittedNativeVideoTrack=(r=this._getCurrentVideoTrack())==null?void 0:r.nativeTrack,this._lastEmittedNativeTextTrack=(i=this._getCurrentTextTrack())==null?void 0:i.nativeTrack,this._handleNativeTracksCallbacks()}setAudioTrackById(e){for(let t=0;t<this._audioTracks.length;t++){let{track:r,nativeTrack:i}=this._audioTracks[t];if(r.id===e){this._enableAudioTrackFromIndex(t),this._audioTrackLockedOn=i;return}}throw new Error("Audio track not found.")}disableTextTrack(){zf(this._textTracks),this._textTrackLockedOn=null}setTextTrackById(e){let t=!1;for(let r=0;r<this._textTracks.length;r++){let{track:i,nativeTrack:o}=this._textTracks[r];i.id===e?(o.mode="showing",t=!0,this._textTrackLockedOn=o):(o.mode==="showing"||o.mode==="hidden")&&(o.mode="disabled")}if(!t)throw new Error("Text track not found.")}disableVideoTrack(){Hf(this._videoTracks),this._videoTrackLockedOn=null}setVideoTrackById(e){for(let t=0;t<this._videoTracks.length;t++){let{track:r,nativeTrack:i}=this._videoTracks[t];if(r.id===e){i.selected=!0,this._videoTrackLockedOn=i;return}}throw new Error("Video track not found.")}getChosenAudioTrack(){let e=this._getCurrentAudioTrack();return _(e)?e:e.track}getChosenTextTrack(){let e=this._getCurrentTextTrack();return _(e)?e:e.track}getChosenVideoTrack(){let e=this._getCurrentVideoTrack();return _(e)?e:e.track}getAvailableAudioTracks(){return this._audioTracks.map(({track:e,nativeTrack:t})=>({id:e.id,language:e.language,normalized:e.normalized,audioDescription:e.audioDescription,active:t.enabled,representations:e.representations}))}getAvailableTextTracks(){return this._textTracks.map(({track:e,nativeTrack:t})=>({id:e.id,label:e.label,forced:e.forced,language:e.language,normalized:e.normalized,closedCaption:e.closedCaption,active:t.mode==="showing"}))}getAvailableVideoTracks(){return this._videoTracks.map(({track:e,nativeTrack:t})=>({id:e.id,representations:e.representations,active:t.selected}))}dispose(){this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onchange=null,this._nativeVideoTracks.onaddtrack=null,this._nativeVideoTracks.onremovetrack=null),this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onchange=null,this._nativeAudioTracks.onaddtrack=null,this._nativeAudioTracks.onremovetrack=null),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onchange=null,this._nativeTextTracks.onaddtrack=null,this._nativeTextTracks.onremovetrack=null),this.removeEventListener()}_getCurrentAudioTrack(){if(this._nativeAudioTracks!==void 0){for(let e=0;e<this._audioTracks.length;e++){let t=this._audioTracks[e];if(t.nativeTrack.enabled)return t}return null}}_getCurrentVideoTrack(){if(this._nativeVideoTracks!==void 0){for(let e=0;e<this._videoTracks.length;e++){let t=this._videoTracks[e];if(t.nativeTrack.selected)return t}return null}}_getCurrentTextTrack(){if(this._nativeTextTracks!==void 0){for(let e=0;e<this._textTracks.length;e++){let t=this._textTracks[e];if(t.nativeTrack.mode==="showing")return t}return null}}_setPreviouslyLockedAudioTrack(){if(this._audioTrackLockedOn!==void 0)if(this._audioTrackLockedOn===null)for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];t.enabled=!1}else for(let e=0;e<this._audioTracks.length;e++){let{nativeTrack:t}=this._audioTracks[e];if(t===this._audioTrackLockedOn){this._enableAudioTrackFromIndex(e);return}}}_setPreviouslyLockedTextTrack(){if(this._textTrackLockedOn!==void 0)if(this._textTrackLockedOn===null){zf(this._textTracks);return}else for(let e=0;e<this._textTracks.length;e++){let{nativeTrack:t}=this._textTracks[e];if(t===this._textTrackLockedOn){Ky(this._textTracks,t),t.mode!=="showing"&&(t.mode="showing");return}}}_setPreviouslyLockedVideoTrack(){if(this._videoTrackLockedOn!==void 0)if(this._videoTrackLockedOn===null){Hf(this._videoTracks);return}else for(let e=0;e<this._videoTracks.length;e++){let{nativeTrack:t}=this._videoTracks[e];if(t===this._videoTrackLockedOn){t.selected=!0;return}}}_handleNativeTracksCallbacks(){this._nativeAudioTracks!==void 0&&(this._nativeAudioTracks.onaddtrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=cu(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this._setPreviouslyLockedAudioTrack(),this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onremovetrack=()=>{var e,t;if(this._nativeAudioTracks!==void 0){let r=cu(this._nativeAudioTracks);if(Zn(this._audioTracks,r)){this._audioTracks=r,this.trigger("availableAudioTracksChange",this.getAvailableAudioTracks());let i=this._getCurrentAudioTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeAudioTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeAudioTracks.onchange=()=>{if(this._audioTracks!==void 0)for(let e=0;e<this._audioTracks.length;e++){let{track:t,nativeTrack:r}=this._audioTracks[e];if(r.enabled){r!==this._lastEmittedNativeAudioTrack&&(this.trigger("audioTrackChange",t),this._lastEmittedNativeAudioTrack=r);return}}this._lastEmittedNativeAudioTrack!==null&&(this.trigger("audioTrackChange",null),this._lastEmittedNativeAudioTrack=null)}),this._nativeTextTracks!==void 0&&(this._nativeTextTracks.onaddtrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=fu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onremovetrack=()=>{var e,t;if(this._nativeTextTracks!==void 0){let r=fu(this._nativeTextTracks);if(Zn(this._textTracks,r)){this._textTracks=r,this._setPreviouslyLockedTextTrack(),this.trigger("availableTextTracksChange",this.getAvailableTextTracks());let i=this._getCurrentTextTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeTextTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeTextTracks.onchange=()=>{if(this._textTracks!==void 0)for(let e=0;e<this._textTracks.length;e++){let{track:t,nativeTrack:r}=this._textTracks[e];if(r.mode==="showing"){r!==this._lastEmittedNativeTextTrack&&(this.trigger("textTrackChange",t),this._lastEmittedNativeTextTrack=r);return}}this._lastEmittedNativeTextTrack!==null&&(this.trigger("textTrackChange",null),this._lastEmittedNativeTextTrack=null)}),this._nativeVideoTracks!==void 0&&(this._nativeVideoTracks.onaddtrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=mu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onremovetrack=()=>{var e,t;if(this._nativeVideoTracks!==void 0){let r=mu(this._nativeVideoTracks);if(Zn(this._videoTracks,r)){this._videoTracks=r,this._setPreviouslyLockedVideoTrack(),this.trigger("availableVideoTracksChange",this.getAvailableVideoTracks());let i=this._getCurrentVideoTrack();(i==null?void 0:i.nativeTrack)!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",(e=i==null?void 0:i.track)!=null?e:null),this._lastEmittedNativeVideoTrack=(t=i==null?void 0:i.nativeTrack)!=null?t:null)}}},this._nativeVideoTracks.onchange=()=>{if(this._videoTracks!==void 0)for(let e=0;e<this._videoTracks.length;e++){let{track:t,nativeTrack:r}=this._videoTracks[e];if(r.selected){r!==this._lastEmittedNativeVideoTrack&&(this.trigger("videoTrackChange",t),this._lastEmittedNativeVideoTrack=r);return}}this._lastEmittedNativeVideoTrack!==null&&(this.trigger("videoTrackChange",null),this._lastEmittedNativeVideoTrack=null)})}_enableAudioTrackFromIndex(e){lu(this._audioTracks.map(({nativeTrack:t})=>t),e)}};function zf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.mode="disabled"}}function Ky(n,e){for(let t=0;t<n.length;t++){let{nativeTrack:r}=n[t];r!==e&&(r.mode==="showing"||r.mode==="hidden")&&(r.mode="disabled")}}function Hf(n){for(let e=0;e<n.length;e++){let{nativeTrack:t}=n[e];t.selected=!1}}function pu(n){n.directfile={initDirectFile:Vi,mediaElementTracksStore:zi}}function gu(n){n.decrypt=zc}var Wf=te.ResizeObserver;function hu(n,e,t){let{height:r,width:i}=n.getBoundingClientRect(),o=new G({height:r,width:i},t),a=r,s=i;if(Wf!==void 0){let d=new Wf(u=>{if(u.length===0){m.error("Compat: Resized but no observed element.");return}let l=u[0],{height:c,width:f}=l.contentRect;(c!==a||f!==s)&&(a=c,s=f,o.setValue({height:c,width:f}))});d.observe(n),t.register(()=>{d.disconnect()})}else{let d=setInterval(()=>{let{height:u,width:l}=n.getBoundingClientRect();(u!==a||l!==s)&&(a=u,s=l,o.setValue({height:u,width:l}))},e);t.register(()=>{clearInterval(d)})}return o}var Pn=class{constructor(){this._ranges=[],this.length=0}insert(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time")),Ht(this._ranges,{start:e,end:t}),this.length=this._ranges.length}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0,"invalid start time"),J(t-e>0,"invalid end time"));let r=[];e>0&&r.push({start:0,end:e}),t<1/0&&r.push({start:t,end:1/0}),this._ranges=ql(this._ranges,r),this.length=this._ranges.length}start(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].start}end(e){if(e>=this._ranges.length)throw new Error("INDEX_SIZE_ERROR");return this._ranges[e].end}};function yu(n,e,t,r){m.debug("HTSB: Finding parser for html text tracks:",n);let i=me.htmlTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("HTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("HTTB: Parsed successfully!",o.length),o}function Dt(n,e,t=.2){return Math.abs(n-e)<=Math.min(t,.2)}var Vy=.05;function Gf(n,e){let t=n.end-n.start,r=e.end-e.start,i=Math.abs(n.start-e.start),o=Math.min(t,r,.2);return i/o<=Vy}function Hi(n,e){for(let t=n.length-1;t>=0;t--)if(n[t].start<e)return n.slice(0,t+1);return[]}function Jn(n,e){for(let t=0;t<n.length;t++)if(n[t].end>e)return n.slice(t,n.length);return[]}function Iu(n,e,t){let r=Math.max(n.start,e),i=Hi(n.cues,e),o={start:n.start,end:r,cues:i},a=Math.min(t,n.end),s=Jn(n.cues,t),d={start:a,end:n.end,cues:s};return[o,d]}var qf=.001,zy=5,Wi=class{constructor(){this._cuesBuffer=[]}isEmpty(){return this._cuesBuffer.length===0}get(e){let t=this._cuesBuffer,r=[];for(let i=t.length-1;i>=0;i--){let o=t[i];if(e<o.end&&e>=o.start){let a=o.cues;for(let s of a)e>=s.start&&e<s.end&&r.push(s.element);if(r.length===0&&a.length>0)for(let s of a)(Dt(e,s.start,qf)||Dt(e,s.end,qf))&&r.push(s.element);return r}}return[]}remove(e,t){h.CURRENT_ENV===h.DEV&&(J(e>=0),J(t>=0),J(t>e));let r=Math.max(e,t),i=this._cuesBuffer;for(let o=0;o<i.length;o++)if(i[o].end>e){let a=i[o];if(a.start>=r)return;if(a.end>=r){if(e<=a.start)a.cues=Jn(a.cues,r),a.start=r;else{let[s,d]=Iu(a,e,r);this._cuesBuffer[o]=s,i.splice(o+1,0,d)}return}a.start>=e?(i.splice(o,1),o--):(a.cues=Hi(a.cues,e),a.end=Math.max(e,a.start))}}insert(e,t,r){let i=this._cuesBuffer,o={start:t,end:r,cues:e},a=Math.abs(t-r)/zy;function s(d){let u=i[d];u===void 0||Dt(o.end,u.end,a)?i[d]=o:(u.start>=o.end||(u.cues=Jn(u.cues,o.end),u.start=o.end),i.splice(d,0,o))}for(let d=0;d<i.length;d++){let u=i[d];if(t<u.end){if(Gf(o,u)){if(Dt(r,u.end,a)){i[d]=o;return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}else if(t<u.start){if(r<u.start){i.splice(d,0,o);return}else if(Dt(r,u.start,a)){u.start=r,i.splice(d,0,o);return}else if(Dt(r,u.end,a)){i.splice(d,1,o);return}else if(r<u.end){u.cues=Jn(u.cues,r),u.start=r,i.splice(d,0,o);return}do i.splice(d,1),u=i[d];while(u!==void 0&&r>u.end);s(d);return}if(Dt(u.end,r,a)){u.cues=Hi(u.cues,t),u.end=t,i.splice(d+1,0,o);return}else if(u.end>r){let[l,c]=Iu(u,t,r);this._cuesBuffer[d]=l,i.splice(d+1,0,o),i.splice(d+2,0,c);return}else{u.cues=Hi(u.cues,t),u.end=t;let l=d+1;for(u=i[l];u!==void 0&&r>u.end;)i.splice(l,1),u=i[l];s(l);return}}}if(i.length){let d=i[i.length-1];Dt(d.end,t,a)&&(d.end=t)}i.push(o)}};function bu(n,e,t,r){let i=[e/t.columns,n/t.rows],o=r.getElementsByClassName("proportional-style");for(let a=0;a<o.length;a++){let s=o[a];if(s instanceof HTMLElement){let d=s.getAttribute("data-proportional-font-size");d!==null&&!isNaN(+d)&&(s.style.fontSize=String(+d*i[1])+"px");let u=s.getAttribute("data-proportional-width");u!==null&&!isNaN(+u)&&(s.style.width=String(+u*i[0])+"px");let l=s.getAttribute("data-proportional-height");l!==null&&!isNaN(+l)&&(s.style.height=String(+l*i[1])+"px");let c=s.getAttribute("data-proportional-line-height");c!==null&&!isNaN(+c)&&(s.style.lineHeight=String(+c*i[1])+"px");let f=s.getAttribute("data-proportional-left");f!==null&&!isNaN(+f)&&(s.style.left=String(+f*i[0])+"px");let g=s.getAttribute("data-proportional-top");g!==null&&!isNaN(+g)&&(s.style.top=String(+g*i[1])+"px");let p=s.getAttribute("data-proportional-padding-top");p!==null&&!isNaN(+p)&&(s.style.paddingTop=String(+p*i[1])+"px");let I=s.getAttribute("data-proportional-padding-bottom");I!==null&&!isNaN(+I)&&(s.style.paddingBottom=String(+I*i[1])+"px");let y=s.getAttribute("data-proportional-padding-left");y!==null&&!isNaN(+y)&&(s.style.paddingLeft=String(+y*i[0])+"px");let b=s.getAttribute("data-proportional-padding-right");b!==null&&!isNaN(+b)&&(s.style.paddingRight=String(+b*i[0])+"px")}}return o.length>0}function jf(n,e){try{n.removeChild(e)}catch(t){m.warn("HTD: Can't remove text track: not in the element.")}}function Hy(n){let e=n.getAttribute("data-resolution-rows"),t=n.getAttribute("data-resolution-columns");if(e===null||t===null)return null;let r=parseInt(e,10),i=parseInt(t,10);return r===null||i===null?null:{rows:r,columns:i}}var Gi=class{constructor(e,t){m.debug("HTD: Creating HTMLTextDisplayer"),this._buffered=new Pn,this._videoElement=e,this._textTrackElement=t,this._sizeUpdateCanceller=new B,this._subtitlesIntervalCanceller=new B,this._buffer=new Wi,this._currentCues=[],this._isAutoRefreshing=!1}pushTextData(e){var I,y;m.debug("HTD: Appending new html text tracks");let{timestampOffset:t,appendWindow:r,chunk:i}=e;if(i===null)return Pe(this._buffered);let{start:o,end:a,data:s,type:d,language:u}=i,l=(I=r[0])!=null?I:0,c=(y=r[1])!=null?y:1/0,f=yu(d,s,t,u);if(l!==0&&c!==1/0){let b=0;for(;b<f.length&&f[b].end<=l;)b++;for(f.splice(0,b),b=0;b<f.length&&f[b].start<l;)f[b].start=l,b++;for(b=f.length-1;b>=0&&f[b].start>=c;)b--;for(f.splice(b,f.length),b=f.length-1;b>=0&&f[b].end>c;)f[b].end=c,b--}let g;if(o!==void 0)g=Math.max(l,o);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("HTD: No start time given. Guessing from cues."),g=f[0].start}let p;if(a!==void 0)p=Math.min(c,a);else{if(f.length<=0)return m.warn("HTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("HTD: No end time given. Guessing from cues."),p=f[f.length-1].end}return p<=g?(m.warn("HTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered)):(this._buffer.insert(f,g,p),this._buffered.insert(g,p),!this._isAutoRefreshing&&!this._buffer.isEmpty()&&this.autoRefreshSubtitles(this._subtitlesIntervalCanceller.signal),Pe(this._buffered))}removeBuffer(e,t){return m.debug("HTD: Removing html text track data",e,t),this._buffer.remove(e,t),this._buffered.remove(e,t),this._isAutoRefreshing&&this._buffer.isEmpty()&&(this.refreshSubtitles(),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel(),this._subtitlesIntervalCanceller=new B),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("HTD: Resetting HTMLTextDisplayer"),this.stop(),this._subtitlesIntervalCanceller=new B}stop(){this._subtitlesIntervalCanceller.isUsed()||(m.debug("HTD: Stopping HTMLTextDisplayer"),this._disableCurrentCues(),this._buffer.remove(0,1/0),this._buffered.remove(0,1/0),this._isAutoRefreshing=!1,this._subtitlesIntervalCanceller.cancel())}_disableCurrentCues(){if(this._sizeUpdateCanceller.cancel(),this._currentCues.length>0){for(let e of this._currentCues)jf(this._textTrackElement,e.element);this._currentCues=[]}}_displayCues(e){if(this._currentCues.length===e.length&&this._currentCues.every((i,o)=>i.element===e[o]))return;this._sizeUpdateCanceller.cancel();for(let i of this._currentCues)jf(this._textTrackElement,i.element);this._currentCues=[];for(let i of e){let o=Hy(i);this._currentCues.push({element:i,resolution:o}),this._textTrackElement.appendChild(i)}let r=this._currentCues.filter(i=>i.resolution!==null);if(r.length>0){this._sizeUpdateCanceller=new B,this._sizeUpdateCanceller.linkToSignal(this._subtitlesIntervalCanceller.signal);let{TEXT_TRACK_SIZE_CHECKS_INTERVAL:i}=U.getCurrent();hu(this._textTrackElement,i,this._sizeUpdateCanceller.signal).onUpdate(({height:a,width:s})=>{for(let d of r){let{resolution:u,element:l}=d;bu(a,s,u,l)}},{clearSignal:this._sizeUpdateCanceller.signal,emitCurrentValue:!0})}}autoRefreshSubtitles(e){if(this._isAutoRefreshing||e.isCancelled())return;let t=null,{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:r}=U.getCurrent(),i=()=>{this._isAutoRefreshing=!1,t!==null&&(t.cancel(),t=null)},o=()=>{i(),this._isAutoRefreshing=!0,t=new B,t.linkToSignal(e);let a=setInterval(()=>this.refreshSubtitles(),r);t.signal.register(()=>{clearInterval(a)}),this.refreshSubtitles()};pc(this._videoElement,()=>{i(),this._disableCurrentCues()},e),gc(this._videoElement,o,e),hc(this._videoElement,o,e),o()}refreshSubtitles(){let{MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:e}=U.getCurrent(),t;this._videoElement.paused||this._videoElement.playbackRate<=0?t=this._videoElement.currentTime:t=Math.max(this._videoElement.currentTime+e/1e3/2,0);let r=this._buffer.get(t);r.length===0?this._disableCurrentCues():this._displayCues(r)}};h.CURRENT_ENV===h.DEV&&(Wy=function(e){function t(r){}});var Wy;var tn=Gi;var Gy=/&#([0-9]+);/g,qy=/<br>/gi,jy=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,Yy=/\s*<p (?:class=([^>]+))?>(.*)/i,$y=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function Qy(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;r!==null;){let i=r[1],o=Zy(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function Xy(n){let t=/p\s*{([^}]*)}/gi.exec(n);return t===null?"":t[1]}function Zy(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function Jy(n){return n.replace(Gy,(e,t)=>String.fromCharCode(Number(t)))}function eI(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=jy.exec(n),s=Array.isArray(a)?a[1]:"",d,u;i.exec(n);let l=Qy(s),c=Xy(s),f;if(w(t)&&(f=l[t],f===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let p=n.slice(d.index,u.index),I=$y.exec(p);if(!Array.isArray(I))throw new Error("parse error (sync time attribute)");let y=+I[1];if(isNaN(y))throw new Error("parse error (sync time attribute NaN)");g(p.split(`
|
|
6
|
+
`),y/1e3)}return o;function g(p,I){let y=p.length;for(;--y>=0;){let b=Yy.exec(p[y]);if(!Array.isArray(b))continue;let[,T,v]=b;if(f===T)if(v===" ")o[o.length-1].end=I;else{let E=document.createElement("DIV");E.className="rxp-texttrack-region";let R=document.createElement("DIV");R.className="rxp-texttrack-div",R.style.position="absolute",R.style.bottom="0",R.style.width="100%",R.style.color="#fff",R.style.textShadow="-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000";let k=document.createElement("div");k.className="rxp-texttrack-p",w(c)&&(k.style.cssText=c);let x=v.split(qy);for(let M=0;M<x.length;M++){M!==0&&k.appendChild(document.createElement("BR"));let A=document.createElement("SPAN");A.className="rxp-texttrack-span",A.textContent=Jy(x[M]),k.appendChild(A)}R.appendChild(k),E.appendChild(R),o.push({element:E,start:I+e,end:-1})}}}}var Yf=eI;function Su(n){n.htmlTextTracksParsers.sami=Yf,n.htmlTextDisplayer=tn}function Tu(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function qi(n){let e=[];for(let t=0;t<n.length;t++)if(w(n[t])){let r=Tu(n,t),i=n.slice(t,r);i.length>0&&(i.length===1?i[0].indexOf("-->")>=0&&e.push(i):(i[1].indexOf("-->")>=0||i[0].indexOf("-->")>=0)&&e.push(i)),t=r}return e}function ga(n){let e=n.split(":");if(w(e[2])){let t=parseInt(e[0],10),r=parseInt(e[1],10),i=parseFloat(e[2].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function ji(n,e){if(n.length===0)return null;let t,r,i=[];if(w(n[1])&&n[1].indexOf("-->")!==-1&&([t,r]=n[1].split("-->").map(s=>s.trim()),i=n.slice(2,n.length)),(!w(t)||!w(r))&&([t,r]=n[0].split("-->").map(s=>s.trim()),i=n.slice(1,n.length)),!w(t)||!w(r))return null;let o=ga(t),a=ga(r);return o===void 0||a===void 0?null:{start:o+e,end:a+e,payload:i}}function _u(n,e){let t=n.split(/\r\n|\n|\r/),r=qi(t),i=[];for(let o of r){let a=ji(o,e);if(a!==null){let s=tI(a);s!==null&&i.push(s)}}return i}function tI(n){let{start:e,end:t,payload:r}=n,i=document.createElement("div");i.className="rxp-texttrack-p",i.style.fontSize="28px",i.style.position="absolute",i.style.bottom="5%",i.style.width="100%",i.style.textAlign="center",i.style.color="#fff",i.style.textShadow="-1px -1px 2px #000,1px -1px 2px #000,-1px 1px 2px #000,1px 1px 2px #000";for(let o=0;o<r.length;o++){o!==0&&i.appendChild(document.createElement("br"));let a=nI(r[o]);i.appendChild(a)}return{start:e,end:t,element:i}}function nI(n){let e=document.createElement("div");e.innerHTML=n;let t=function(r){let i=r.childNodes,o=document.createElement("span");o.className="rxp-texttrack-span";for(let a=0;a<i.length;a++){let s=i[a];if(s.nodeName==="#text"){let d=s.wholeText.split(`
|
|
7
|
+
`);for(let u=0;u<d.length;u++)if(u!==0&&o.appendChild(document.createElement("br")),d[u].length>0){let l=document.createTextNode(d[u]);o.appendChild(l)}}else if(s.nodeName==="B"){let d=t(s);d.style.fontWeight="bold",o.appendChild(d)}else if(s.nodeName==="I"){let d=t(s);d.style.fontStyle="italic",o.appendChild(d)}else if(s.nodeName==="U"){let d=t(s);d.style.textDecoration="underline",o.appendChild(d)}else if(rI(s)&&typeof s.color=="string"){let d=t(s);d.style.color=s.color,o.appendChild(d)}else{let d=t(s);o.appendChild(d)}}return o};return t(e)}function rI(n){return n.nodeName==="FONT"&&"color"in n}function Eu(n){n.htmlTextTracksParsers.srt=_u,n.htmlTextDisplayer=tn}var iI=/(\d+) (\d+)/;function vu(n){let e=n.getAttribute("ttp:frameRate"),t=n.getAttribute("ttp:subFramRate"),r=n.getAttribute("ttp:tickRate"),i=n.getAttribute("ttp:frameRateMultiplier"),o=n.getAttribute("xml:space"),a=n.getAttribute("ttp:cellResolution"),s={columns:32,rows:15};if(a!==null){let I=iI.exec(a);if(I===null||I.length<3)m.warn("TTML Parser: Invalid cellResolution");else{let y=parseInt(I[1],10),b=parseInt(I[2],10);isNaN(y)||isNaN(b)?m.warn("TTML Parser: Invalid cellResolution"):s={columns:y,rows:b}}}if(w(o)&&o!=="default"&&o!=="preserve")throw new Error("Invalid spacing style");let d=Number(e);(isNaN(d)||d<=0)&&(d=30);let u=Number(t);(isNaN(u)||u<=0)&&(u=1);let l=Number(r);(isNaN(l)||l<=0)&&(l=void 0);let c=d,f=u!=null?u:1,g=o!=null?o:"default",p=l!=null?l:d*u;if(i!==null){let I=/^(\d+) (\d+)$/g.exec(i);if(I!==null){let y=Number(I[1]),b=Number(I[2]),T=y/b;c=d*T}}return{cellResolution:s,tickRate:p,frameRate:c,subFrameRate:f,spaceStyle:g}}function Mn(n,e,t,r){let i={},o=n.slice();for(let a=0;a<=e.length-1;a++){let s=e[a];if(s!==void 0){let d,u;if(s.nodeType===Node.ELEMENT_NODE){let l=s;for(let c=0;c<=l.attributes.length-1;c++){let f=l.attributes[c],g=f.name;if(g==="style")d=f.value;else if(g==="region")u=f.value;else{let p=g.substring(4);if(Q(o,p)&&(i[p]=f.value,o.splice(c,1),o.length===0))return i}}}if(w(d)){let l=Z(t,c=>c.id===d);if(l!==void 0)for(let c=0;c<=o.length-1;c++){let f=o[c];if(!w(i[f])&&w(l.style[f])){if(i[f]=l.style[f],o.splice(c,1),o.length===0)return i;c--}}}if(w(u)){let l=Z(r,c=>c.id===u);if(l!==void 0)for(let c=0;c<=o.length-1;c++){let f=o[c];if(!w(i[f])&&w(l.style[f])){if(i[f]=l.style[f],o.splice(c,1),o.length===0)return i;c--}}}}}return i}function Ru(n){if(n.nodeType!==Node.ELEMENT_NODE)return{};let e=n,t={};for(let r=0;r<=e.attributes.length-1;r++){let i=e.attributes[r];if(Xe(i.name,"tts")){let o=i.name.substring(4);t[o]=i.value}}return t}function ku(n){let e=[];function t(r,i){e.push(i);for(let o of r.extendsStyles){let a=he(n,s=>s.id===o);if(a<0)m.warn("TTML Parser: unknown style inheritance: "+o);else{let s=n[a];Q(e,a)?m.warn("TTML Parser: infinite style inheritance loop avoided"):t(s,a),r.style=j({},s.style,r.style)}}r.extendsStyles.length=0}for(let r=0;r<n.length;r++)t(n[r],r),e.length=0}function $f(n,e){if(!(n.parentNode instanceof Element))return[];function t(r){let i=[];r.tagName.toLowerCase()===e.toLowerCase()&&i.push(r);let o=r.parentNode;return o instanceof Element&&i.push(...t(o)),i}return t(n.parentNode)}function ha(n){let e=$f(n,"div");if(e.length===0){let t=$f(n,"tt:div");t.length>0&&(e=t)}return e}function Qf(n){let e=n.getElementsByTagName("body");if(e.length>0)return e[0];let t=n.getElementsByTagName("tt:body");return t.length>0?t[0]:null}function Xf(n){let e=n.getElementsByTagName("style");if(e.length>0)return e;let t=n.getElementsByTagName("tt:style");return t.length>0?t:e}function Zf(n){let e=n.getElementsByTagName("region");if(e.length>0)return e;let t=n.getElementsByTagName("tt:region");return t.length>0?t:e}function Jf(n){let e=n.getElementsByTagName("p");if(e.length>0)return e;let t=n.getElementsByTagName("tt:p");return t.length>0?t:e}function ya(n){return n.nodeName==="br"||n.nodeName==="tt:br"}function Ia(n){return n.nodeName==="span"||n.nodeName==="tt:span"}var em=["align","backgroundColor","color","direction","display","displayAlign","extent","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","opacity","origin","overflow","padding","textAlign","textDecoration","textOutline","unicodeBidi","visibility","wrapOption","writingMode"];function Yi(n,e){let t=[],r=new DOMParser().parseFromString(n,"text/xml");if(r!=null){let o=r.getElementsByTagName("tt")[0];if(o===void 0&&(o=r.getElementsByTagNameNS("*","tt")[0],o===void 0))throw new Error("invalid XML");let a=Qf(o),s=Xf(o),d=Zf(o),u=Jf(o),l=vu(o),c=[];for(let y=0;y<=s.length-1;y++){let b=s[y];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=b.getAttribute("style"),E=v===null?[]:v.split(" ");c.push({id:T,style:Ru(b),extendsStyles:E})}}}ku(c);let f=[];for(let y=0;y<=d.length-1;y++){let b=d[y];if(b instanceof Element){let T=b.getAttribute("xml:id");if(T!==null){let v=Ru(b),E=b.getAttribute("style");if(w(E)){let R=Z(c,k=>k.id===E);R!==void 0&&(v=j({},R.style,v))}f.push({id:T,style:v,extendsStyles:[]})}}}let g=Mn(em,a!==null?[a]:[],c,f),I=(a!==null?a.getAttribute("xml:space"):void 0)==="default"||l.spaceStyle==="default";for(let y=0;y<u.length;y++){let b=u[y];if(b instanceof Element){let T=ha(b),v=j({},g,Mn(em,[b,...T],c,f)),E=b.getAttribute("xml:space"),R=w(E)?E==="default":I,k={paragraph:b,timeOffset:e,idStyles:c,regionStyles:f,body:a,paragraphStyle:v,ttParams:l,shouldTrimWhiteSpace:R};k!==null&&t.push(k)}}}return t}function tm(n){return n.extent===void 0&&n.origin===void 0&&n.displayAlign===void 0&&n.display===void 0&&n.textAlign===void 0&&n.fontSize===void 0}function nm(n){n.extent="70% 20%",n.fontSize="1c",n.origin="15% 80%",n.displayAlign="before",n.textAlign="center"}var Cu=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Pu=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/,Mu=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d{2,})$/,Au=/^(\d*\.?\d*)f$/,xu=/^(\d*\.?\d*)t$/,wu=/^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/,Ou=/^(\d{1,2}|100)% (\d{1,2}|100)%$/,Ge=/^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/,rm=/^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/,im=/^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/,om=/^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/,am=/^rgba\( *(\d+) *, *(\d+) *, *(\d+) *, *(\d+) *\)/;function oI(n,e){if(Cu.test(n))return dI(e,n);if(Pu.test(n))return Du(Pu,n);if(Mu.test(n))return Du(Mu,n);if(Au.test(n))return aI(e,n);if(xu.test(n))return sI(e,n);if(wu.test(n))return Du(wu,n)}function aI(n,e){let t=Au.exec(e);return Number(t[1])/n.frameRate}function sI(n,e){let t=xu.exec(e);return Number(t[1])/n.tickRate}function dI(n,e){let t=Cu.exec(e),r=Number(t[1]),i=Number(t[2]),o=Number(t[3]),a=Number(t[4]),s=Number(t[5]);return isNaN(s)&&(s=0),a+=s/n.subFrameRate,o+=a/n.frameRate,o+i*60+r*3600}function Du(n,e){let t=n.exec(e);if(t===null||t[0]==="")return null;let r=Number(t[1]);isNaN(r)&&(r=0);let i=Number(t[2]);isNaN(i)&&(i=0);let o=Number(t[3]);isNaN(o)&&(o=0);let a=Number(t[4]);return isNaN(a)&&(a=0),a/1e3+o+i*60+r*3600}var ba=oI;function $i(n,e){let t=n.getAttribute("begin"),r=n.getAttribute("dur"),i=n.getAttribute("end"),o=w(t)?ba(t,e):null,a=w(r)?ba(r,e):null,s=w(i)?ba(i,e):null;if(_(o)||_(s)&&_(a))throw new Error("Invalid text cue");let d=_(s)?o+a:s;return{start:o,end:d}}var Lu;function Ce(n,e){Lu===void 0&&(Lu=n.classList!==void 0&&typeof n.classList.add=="function"),Lu?n.classList.add(e):(" "+n.className+" ").indexOf(" "+e+" ")<0&&(n.className+=" "+e)}function Nu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.width=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-width",i[1])):m.warn("TTML Parser: unhandled extent unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.height=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-height",o[1])):m.warn("TTML Parser: unhandled extent unit:",o[2]))}function Uu(n,e){let r=e.trim().split(" ");if(r.length===0)return;let i=Ge.exec(r[0]);if(i!==null)if(i[2]==="px"||i[2]==="em")n.style.fontSize=i[1]+i[2];else if(i[2]==="c")n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",i[1]);else if(i[2]==="%"){let o=Number(i[1]);isNaN(o)?m.warn('TTML Parser: could not parse fontSize value "'+i[1]+'" into a number'):(n.style.position="relative",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size",String(o/100)))}else m.warn("TTML Parser: unhandled fontSize unit:",i[2])}function Bu(n,e){let t=e.trim(),r=t.split(" ");if(t==="auto")return;let i=Ge.exec(r[0]);i!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.lineHeight=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-line-height",i[1])):m.warn("TTML Parser: unhandled lineHeight unit:",i[2]))}function Fu(n,e){let t=e.trim();if(t==="auto")return;let r=t.split(" ");if(r.length!==2)return;let i=Ge.exec(r[0]),o=Ge.exec(r[1]);i!==null&&o!==null&&(i[2]==="px"||i[2]==="%"||i[2]==="em"?n.style.left=i[1]+i[2]:i[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-left",i[1])):m.warn("TTML Parser: unhandled origin unit:",i[2]),o[2]==="px"||o[2]==="%"||o[2]==="em"?n.style.top=o[1]+o[2]:o[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-top",o[1])):m.warn("TTML Parser: unhandled origin unit:",o[2]))}function Ku(n,e){let r=e.trim().split(" ");if(r.length<1)return;let i=Ge.exec(r[0]);if(i===null)return;if(i[2]==="px"||i[2]==="%"||i[2]==="em"){let d=i[1]+i[2];r.length===1?n.style.padding=d:r.length===2?(n.style.paddingTop=d,n.style.paddingBottom=d):n.style.paddingTop=d}else i[2]==="c"?(Ce(n,"proportional-style"),r.length===1?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1]),n.setAttribute("data-proportional-padding-left",i[1]),n.setAttribute("data-proportional-padding-right",i[1])):r.length===2?(n.setAttribute("data-proportional-padding-top",i[1]),n.setAttribute("data-proportional-padding-bottom",i[1])):n.setAttribute("data-proportional-padding-top",i[1])):m.warn("TTML Parser: unhandled padding unit:",i[2]);if(r.length===1)return;let o=Ge.exec(r[1]);if(o===null)return;if(o[2]==="px"||o[2]==="%"||o[2]==="em"){let d=o[1]+o[2];r.length<4&&(n.style.paddingLeft=d),n.style.paddingRight=d}else o[2]==="c"?(Ce(n,"proportional-style"),r.length<4&&n.setAttribute("data-proportional-padding-left",o[1]),n.setAttribute("data-proportional-padding-right",o[1])):m.warn("TTML Parser: unhandled padding unit:",o[2]);if(r.length===2)return;let a=Ge.exec(r[2]);if(a===null)return;if(a[2]==="px"||a[2]==="%"||a[2]==="em"){let d=a[1]+a[2];n.style.paddingBottom=d}else a[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-bottom",a[1])):m.warn("TTML Parser: unhandled padding unit:",a[2]);if(r.length===3)return;let s=Ge.exec(r[3]);if(s!==null)if(s[2]==="px"||s[2]==="%"||s[2]==="em"){let d=s[1]+s[2];n.style.paddingLeft=d}else s[2]==="c"?(Ce(n,"proportional-style"),n.setAttribute("data-proportional-padding-left",s[1])):m.warn("TTML Parser: unhandled padding unit:",s[2])}function er(n,e){let t=e;return w(e)&&e.trim().endsWith("%")&&(t=e.trim().slice(0,-1),t=(parseInt(t,10)/100).toString()+"em"),`-1px -1px ${t} ${n},1px -1px ${t} ${n},-1px 1px ${t} ${n},1px 1px ${t} ${n}`}function nn(n){let e;return e=rm.exec(n),_(e)?(e=im.exec(n),_(e)?(e=om.exec(n),_(e)?(e=am.exec(n),_(e)?n:"rgba("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+","+String(+e[4]/255)+")"):"rgb("+String(+e[1])+","+String(+e[2])+","+String(+e[3])+")"):"rgba("+String(parseInt(e[1]+e[1],16))+","+String(parseInt(e[2]+e[2],16))+","+String(parseInt(e[3]+e[3],16))+","+String(parseInt(e[4]+e[4],16)/255)+")"):"rgba("+String(parseInt(e[1],16))+","+String(parseInt(e[2],16))+","+String(parseInt(e[3],16))+","+String(parseInt(e[4],16)/255)+")"}var uI=["color","direction","display","fontFamily","fontSize","fontStyle","fontWeight","textDecoration","textOutline","unicodeBidi","visibility","wrapOption"];function lI(n,e,t){let r=e.color;w(r)&&(n.style.color=nn(r));let i=e.backgroundColor;w(i)&&(n.style.backgroundColor=nn(i));let o=e.textOutline;if(w(o)){let y=o.trim().replace(/\s+/g," ").split(" "),b=y.length;if(b===3){let T=nn(y[0]),v=y[1];n.style.textShadow=er(T,v)}else if(w(r)&&b===1){let T=y[0];n.style.textShadow=er(r,T)}else if(b===2){let T=/^[#A-Z]/i.test(y[0]),v=/^[0-9]/.test(y[0]);if(T!==v){if(T){let E=nn(y[0]),R=y[1];n.style.textShadow=er(E,R)}else if(w(r)){let E=y[0];n.style.textShadow=er(r,E)}}}}let a=e.textDecoration;if(w(a))switch(a){case"noUnderline":case"noLineThrough":case"noOverline":n.style.textDecoration="none";break;case"lineThrough":n.style.textDecoration="line-through";break;default:n.style.textDecoration=a;break}let s=e.fontFamily;if(w(s))switch(s){case"proportionalSansSerif":n.style.fontFamily="Arial, Helvetica, Liberation Sans, sans-serif";break;case"monospaceSansSerif":case"sansSerif":n.style.fontFamily="sans-serif";break;case"monospaceSerif":case"default":n.style.fontFamily="Courier New, Liberation Mono, monospace";break;case"proportionalSerif":n.style.fontFamily="serif";break;default:n.style.fontFamily=s}let d=e.fontStyle;w(d)&&(n.style.fontStyle=d);let u=e.fontWeight;w(u)&&(n.style.fontWeight=u);let l=e.fontSize;w(l)?Uu(n,l):(Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1"));let c=e.direction;w(c)&&(n.style.direction=c);let f=e.unicodeBidi;if(w(f))switch(f){case"bidiOverride":n.style.unicodeBidi="bidi-override";break;case"embed":n.style.unicodeBidi="embed";break;default:n.style.unicodeBidi="normal"}let g=e.visibility;w(g)&&(n.style.visibility=g),e.display==="none"&&(n.style.display="none"),e.wrapOption==="noWrap"?t?n.style.whiteSpace="nowrap":n.style.whiteSpace="pre":t?n.style.whiteSpace="normal":n.style.whiteSpace="pre-wrap"}function cI(n,e){n.style.color="white",n.style.position="absolute";let t=e.extent;w(t)&&Nu(n,t);let r=e.writingMode;w(r);let i=e.overflow;n.style.overflow=w(i)?i:"hidden";let o=e.padding;w(o)&&Ku(n,o);let a=e.origin;w(a)&&Fu(n,a);let s=e.displayAlign;if(w(s))switch(n.style.display="flex",n.style.flexDirection="column",s){case"before":n.style.justifyContent="flex-start";break;case"center":n.style.justifyContent="center";break;case"after":n.style.justifyContent="flex-end";break}let d=e.opacity;w(d)&&(n.style.opacity=d);let u=e.visibility;w(u)&&(n.style.visibility=u),e.display==="none"&&(n.style.display="none")}function fI(n,e){n.style.margin="0px",Ce(n,"proportional-style"),n.setAttribute("data-proportional-font-size","1");let t=e.backgroundColor;w(t)&&(n.style.backgroundColor=nn(t));let r=e.lineHeight;w(r)&&Bu(n,r);let i=e.textAlign;if(w(i))switch(i){case"center":n.style.textAlign="center";break;case"left":case"start":n.style.textAlign="left";break;case"right":case"end":n.style.textAlign="right";break}}function mI(n,e,t){let r=document.createElement("span"),i=n.textContent===null?"":n.textContent;if(t){let a=i.trim();a=a.replace(/\s+/g," "),i=a}let o=document.createTextNode(i);return r.appendChild(o),r.className="rxp-texttrack-span",lI(r,e,t),r}function pI(n,e,t,r,i){function o(a,s,d,u){let l=a.childNodes,c=[];for(let f=0;f<l.length;f++){let g=l[f];if(g.nodeName==="#text"){let{backgroundColor:p}=Mn(["backgroundColor"],d,t,e);w(p)?s.backgroundColor=p:s.backgroundColor="";let I=mI(g,s,u);c.push(I)}else if(ya(g)){let p=document.createElement("BR");c.push(p)}else if(Ia(g)&&g.nodeType===Node.ELEMENT_NODE&&g.childNodes.length>0){let p=g.getAttribute("xml:space"),I=w(p)?p==="default":u,y=j({},s,Mn(uI,[g],t,e));c.push(...o(g,y,[g,...d],I))}}return c}return o(n,j({},r),[],i)}function Vu(n,e,t,r,i,{cellResolution:o,shouldTrimWhiteSpace:a}){let s=ha(n),d=document.createElement("DIV");if(d.className="rxp-texttrack-region",d.setAttribute("data-resolution-columns",String(o.columns)),d.setAttribute("data-resolution-rows",String(o.rows)),cI(d,i),e!==null){let{bodyBackgroundColor:c}=Mn(["backgroundColor"],[...s,e],r,t);w(c)&&(d.style.backgroundColor=nn(c))}let u=document.createElement("p");u.className="rxp-texttrack-p",fI(u,i);let l=pI(n,t,r,i,a);for(let c=0;c<l.length;c++)u.appendChild(l[c]);return d.appendChild(u),d}function zu(n){let{paragraph:e,ttParams:t,body:r,regionStyles:i,idStyles:o,paragraphStyle:a,timeOffset:s,shouldTrimWhiteSpace:d}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{cellResolution:u}=t,{start:l,end:c}=$i(e,t),f=Vu(e,r,i,o,a,{cellResolution:u,shouldTrimWhiteSpace:d});return{start:l+s,end:c+s,element:f}}function Hu(n,e){let t=Yi(n,e),r=[];for(let i of t){let{paragraphStyle:o}=i;tm(o)&&nm(o);let a=zu(i);a!==null&&r.push(a)}return r}var sm=Hu;function Wu(n){n.htmlTextTracksParsers.ttml=sm,n.htmlTextDisplayer=tn}function Sa(n){let e=0;for(;e<n.length;){if(n[e]==="")return e+1;e++}return e}function Gu(n,e){return typeof n[e]=="string"&&/^STYLE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function gI(n,e){return typeof n[e]=="string"&&/^NOTE( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function hI(n,e){return typeof n[e]=="string"&&/^REGION( .*)?$/g.test(n[e])&&(n[e+1]===void 0||n[e+1].indexOf("-->")<0)}function dm(n,e){let t=n[e];if(t===void 0||t===""||Gu(n,e)||hI(n,e)||gI(n,e))return!1;if(t.indexOf("-->")>=0)return!0;let r=n[e+1];return r!==void 0&&r.indexOf("-->")>=0}function um(n,e){let t=e+1;for(;w(n[t]);)t++;return t}function Qi(n,e){let t=[];for(let r=e;r<n.length;r++)if(dm(n,r)){let i=um(n,r);t.push(n.slice(r,i)),r=i}else if(w(n[r]))for(;w(n[r]);)r++;return t}function qu(n,e){let t=[];for(let r=e;r<n.length;r++)if(Gu(n,r)){let i=r;for(r++;w(n[r]);)r++;let o=n.slice(i,r);t.push(o)}else if(w(n[r]))for(;w(n[r]);)r++;return t}function Ta(n){let e=n.split(":").reverse();if(w(e[2])||w(e[1])){let t=w(e[2])?parseInt(e[2],10):0,r=parseInt(e[1],10),i=parseFloat(e[0].replace(",","."));return isNaN(t)||isNaN(r)||isNaN(i)?void 0:t*60*60+r*60+i}}function yI(n){return n.split(/ |\t/).reduce((t,r)=>{let i=r.split(":");return i.length===2&&(t[i[0]]=i[1]),t},{})}function II(n){let t=/^([\d:.]+)[ |\t]+-->[ |\t]+([\d:.]+)[ |\t]*(.*)$/.exec(n);if(t===null)return null;let r=Ta(t[1]),i=Ta(t[2]);if(r===void 0||i===void 0)return null;let o=yI(t[3]);return{start:r,end:i,settings:o}}function Xi(n,e){let t=/-->/,r,i,o;if(t.test(n[0]))r=n[0],i=n.slice(1,n.length);else{if(!t.test(n[1]))return null;o=n[0],r=n[1],i=n.slice(2,n.length)}let a=II(r);if(a===null)return null;let{start:s,end:d,settings:u}=a;return{start:s+e,end:d+e,settings:u,payload:i,header:o}}var ju={white:"#ffffff",lime:"#00ff00",cyan:"#00ffff",red:"#ff0000",yellow:"#ffff00",magenta:"#ff00ff",blue:"#0000ff",black:"#000000"};function Yu(){return Object.keys(ju).reduce((n,e)=>(n[e]=`color: ${ju[e]};`,n[`bg_${e}`]=`background-color: ${ju[e]};`,n),{})}function $u(n){let e=Yu(),t="";return n.forEach(r=>{if(r.length>=2)for(let i=1;i<r.length;i++){let o=r[i];if(Array.isArray(/::cue {/.exec(o)))for(o=r[++i];w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)t+=o,o=r[++i];else{let a=[],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);for(;w(o)&&Array.isArray(s);)a.push(s[1]),o=r[++i],s=/::cue\(\.?(.*?)\)(?:,| {)/.exec(o);let d="";for(;w(o)&&!(Array.isArray(/}/.exec(o))||o.length===0);)d+=o,o=r[++i];a.forEach(u=>{e[u]===void 0?e[u]=d:e[u]+=d})}}}),{classes:e,global:t}}function Zi(n,e){let t=["u","i","b"],r=["u","i","b","c","#text"],i=n.nodeName.toLowerCase().split(".")[0],o;if(Q(r,i))if(i==="#text"){let a=n.wholeText.split(`
|
|
8
|
+
`);o=document.createElement("span");for(let s=0;s<a.length;s++)if(s>0&&o.appendChild(document.createElement("br")),a[s].length>0){let d=document.createTextNode(a[s]);o.appendChild(d)}}else{let a=n.nodeName.toLowerCase().split("."),s=[];if(a.forEach(d=>{w(e[d])&&s.push(e[d])}),s.length!==0){let d=document.createAttribute("style");s.forEach(l=>{d.value+=l});let u=Q(t,i)?i:"span";o=document.createElement(u),o.setAttributeNode(d)}else{let d=Q(t,i)?i:"span";o=document.createElement(d)}for(let d=0;d<n.childNodes.length;d++){let u=Zi(n.childNodes[d],e);o.appendChild(u)}}else{o=document.createElement("span");for(let a=0;a<n.childNodes.length;a++){let s=Zi(n.childNodes[a],e);o.appendChild(s)}}return o}function Qu(n,e){let t=n.replace(/<[0-9]{2}:[0-9]{2}.[0-9]{3}>/,"").replace(/<([u,i,b,c])(\..*?)?(?: .*?)?>(.*?)<\/\1>/g,"<$1$2>$3</$1$2>"),i=new DOMParser().parseFromString(t,"text/html").body.childNodes,o=[];for(let a=0;a<i.length;a++)o.push(Zi(i[a],e));return o}function Xu(n){let e=document.createAttribute("style");return e.value=bI(n),e}var bI=n=>{if(!(n!==void 0&&On(n).length!==0))return"text-align:center";let t=SI(n),r=EI(n);return`position: absolute;margin: 0;transform: translate(${t.offset}%,${r.offset}%);width: ${kI(n.size)}%;left: ${t.position}%;top: ${r.position!==null?`${r.position}%`:"auto"};text-align: ${Zu(n.align)};`};var SI=n=>({position:TI(n),offset:_I(n)}),TI=n=>{let e=Ju(n.position);if(e!==null)return e;let t=Zu(n.align);return{left:0,center:50,right:100}[t]},_I=n=>{let e=a=>{let d=/,(line-left|line-right|center)/.exec(a);return!Array.isArray(d)||d.length<2?null:d[1]},t={"line-left":0,center:-50,"line-right":-100},r=n.position!==void 0?e(n.position):null;if(r!==null)return t[r];let i={left:0,center:-50,right:-100},o=n.align!==void 0?Zu(n.align):"center";return i[o]},EI=n=>({position:vI(n.line),offset:RI(n.line)}),vI=n=>Ju(n),RI=n=>{let e=i=>{let a=/,(start|center|end)/.exec(i);return!Array.isArray(a)||a.length<2?null:a[1]},t={start:0,center:-50,end:-100};if(n===void 0)return t.start;let r=e(n);return r!==null?t[r]:t.start},Zu=n=>{switch(n){case"left":case"start":return"left";case"right":case"end":return"right";default:return"center"}},kI=n=>CI(n,100),CI=(n,e)=>{let t=Ju(n);return t!==null?t:e},Ju=n=>{if(n===void 0)return null;let t=/^([\d.]+)%/.exec(n);return!Array.isArray(t)||t.length<2?null:parseInt(t[1],10)};function el(n,e){let{start:t,end:r,settings:i,header:o,payload:a}=n,s=document.createElement("div"),d=document.createAttribute("style");d.value="width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;",s.setAttributeNode(d);let u=document.createElement("p"),l=Xu(i);u.setAttributeNode(l);let c=document.createElement("span"),f=document.createAttribute("style");f.value="background-color:rgba(0,0,0,0.8);color:white;",c.setAttributeNode(f);let{global:g,classes:p}=e,I=w(o)?p[o]:void 0,y=[g,I].filter(b=>b!==void 0).join("");return f.value+=y,c.setAttributeNode(f),Qu(a.join(`
|
|
9
|
+
`),p).forEach(b=>{c.appendChild(b)}),s.appendChild(u),u.appendChild(c),{start:t,end:r,element:s}}function tl(n,e){let t=/\r\n|\n|\r/g,r=n.split(t),i=[];if(/^WEBVTT( |\t|\n|\r|$)/.exec(r[0])===null)throw new Error("Can't parse WebVTT: Invalid File.");let o=Sa(r),a=qu(r,o),s=Qi(r,o),d=$u(a);for(let u=0;u<s.length;u++){let l=Xi(s[u],e);if(l!==null){let c=el(l,d);i.push(c)}}return i}var lm=tl;function nl(n){n.htmlTextTracksParsers.vtt=lm,n.htmlTextDisplayer=tn}function rl(n){var i;let e,t,r="subtitles";if(zt){let o=n.textTracks.length;e=o>0?n.textTracks[o-1]:n.addTextTrack(r),e.mode=(i=e.SHOWING)!=null?i:"showing"}else t=document.createElement("track"),n.appendChild(t),e=t.track,t.kind=r,e.mode="showing";return{track:e,trackElement:t}}function PI(n,e){let{activeCues:t}=n;if(t===null)return!1;for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function il(n,e){if(dn&&PI(n,e)){let t=n.mode;n.mode="hidden";try{n.removeCue(e)}catch(r){m.warn("Compat: Could not remove cue from text track.")}n.mode=t;return}try{n.removeCue(e)}catch(t){m.warn("Compat: Could not remove cue from text track.")}}function ol(n,e,t,r){m.debug("NTSB: Finding parser for native text tracks:",n);let i=me.nativeTextTracksParsers[n];if(typeof i!="function")throw new Error("no parser found for the given text track");m.debug("NTSB: Parser found, parsing...");let o=i(e,t,r);return m.debug("NTSB: Parsed successfully!",o.length),o}var Ji=class{constructor(e){m.debug("NTD: Creating NativeTextDisplayer");let{track:t,trackElement:r}=rl(e);this._buffered=new Pn,this._videoElement=e,this._track=t,this._trackElement=r}pushTextData(e){var I,y;if(m.debug("NTD: Appending new native text tracks"),e.chunk===null)return Pe(this._buffered);let{timestampOffset:t,appendWindow:r,chunk:i}=e,{start:o,end:a,data:s,type:d,language:u}=i,l=(I=r[0])!=null?I:0,c=(y=r[1])!=null?y:1/0,f=ol(d,s,t,u);if(l!==0&&c!==1/0){let b=0;for(;b<f.length&&f[b].endTime<=l;)b++;for(f.splice(0,b),b=0;b<f.length&&f[b].startTime<l;)f[b].startTime=l,b++;for(b=f.length-1;b>=0&&f[b].startTime>=c;)b--;for(f.splice(b,f.length),b=f.length-1;b>=0&&f[b].endTime>c;)f[b].endTime=c,b--}let g;if(o!==void 0)g=Math.max(l,o);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor start time. Aborting"),Pe(this._buffered);m.warn("NTD: No start time given. Guessing from cues."),g=f[0].startTime}let p;if(a!==void 0)p=Math.min(c,a);else{if(f.length<=0)return m.warn("NTD: Current text tracks have no cues nor end time. Aborting"),Pe(this._buffered);m.warn("NTD: No end time given. Guessing from cues."),p=f[f.length-1].endTime}if(p<=g)return m.warn("NTD: Invalid text track appended: ","the start time is inferior or equal to the end time."),Pe(this._buffered);if(f.length>0){let b=f[0],T=this._track.cues;T!==null&&T.length>0&&b.startTime<T[T.length-1].startTime&&this._removeData(b.startTime,1/0);for(let v of f)this._track.addCue(v)}return this._buffered.insert(g,p),Pe(this._buffered)}removeBuffer(e,t){return this._removeData(e,t),Pe(this._buffered)}getBufferedRanges(){return Pe(this._buffered)}reset(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(i){m.warn("NTD: Can't remove track element from the video")}let r=this._track.mode;this._track.mode="disabled",this._track.mode=r,this._trackElement!==void 0&&(this._trackElement.innerHTML="")}stop(){m.debug("NTD: Aborting NativeTextDisplayer"),this._removeData(0,1/0);let{_trackElement:e,_videoElement:t}=this;if(e!==void 0&&t.hasChildNodes())try{t.removeChild(e)}catch(r){m.warn("NTD: Can't remove track element from the video")}this._track.mode="disabled",this._trackElement!==void 0&&(this._trackElement.innerHTML="")}_removeData(e,t){m.debug("NTD: Removing native text track data",e,t);let r=this._track,i=r.cues;if(i!==null)for(let o=i.length-1;o>=0;o--){let a=i[o],{startTime:s,endTime:d}=a;s>=e&&s<=t&&d<=t&&il(r,a)}this._buffered.remove(e,t)}};h.CURRENT_ENV===h.DEV&&(MI=function(e){function t(r){}});var MI;var rn=Ji;function Lt(n,e,t){if(n>=e)return m.warn(`Compat: Invalid cue times: ${n} - ${e}`),null;if(_(te.VTTCue)){if(_(te.TextTrackCue))throw new Error("VTT cues not supported in your target");return new TextTrackCue(n,e,t)}else return new VTTCue(n,e,t)}var AI=/&#([0-9]+);/g,xI=/<br>/gi,wI=/<style[^>]*>([\s\S]*?)<\/style[^>]*>/i,OI=/\s*<p (?:class=([^>]+))?>(.*)/i,DI=/<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;function LI(n){let e=[];for(let t=0;t<n.length;t++){let{start:r,end:i,text:o}=n[t];if(w(o)&&!_(i)){let a=Lt(r,i,o);a!==null&&e.push(a)}}return e}function NI(n){let e=/\.(\S+)\s*{([^}]*)}/gi,t={},r=e.exec(n);for(;Array.isArray(r);){let i=r[1],o=UI(r[2],"lang");!_(i)&&!_(o)&&(t[o]=i),r=e.exec(n)}return t}function UI(n,e){let t=new RegExp("\\s*"+e+":\\s*(\\S+);","i").exec(n);return Array.isArray(t)?t[1]:null}function BI(n){return n.replace(xI,`
|
|
10
|
+
`).replace(AI,(e,t)=>String.fromCharCode(Number(t)))}function FI(n,e,t){let r=/<sync[ >]/gi,i=/<sync[ >]|<\/body>/gi,o=[],a=wI.exec(n),s=a!==null?a[1]:"",d,u;i.exec(n);let l=NI(s),c;if(w(t)&&(c=l[t],c===void 0))throw new Error(`sami: could not find lang ${t} in CSS`);for(;d=r.exec(n),u=i.exec(n),!(d===null&&u===null);){if(d===null||u===null||d.index>=u.index)throw new Error("parse error");let g=n.slice(d.index,u.index),p=DI.exec(g);if(p===null)throw new Error("parse error (sync time attribute)");let I=+p[1];if(isNaN(I))throw new Error("parse error (sync time attribute NaN)");f(g.split(`
|
|
11
|
+
`),I/1e3)}return LI(o);function f(g,p){let I=g.length,y;for(;--I>=0;){if(y=OI.exec(g[I]),y===null)continue;let[,b,T]=y;c===b&&(T===" "?o[o.length-1].end=p:o.push({text:BI(T),start:p+e}))}}}var cm=FI;function al(n){n.nativeTextTracksParsers.sami=cm,n.nativeTextDisplayer=rn}function sl(n,e){let t=n.split(/\r\n|\n|\r/),r=qi(t),i=[];for(let o=0;o<r.length;o++){let a=ji(r[o],e);if(a!==null){let s=KI(a);s!==null&&i.push(s)}}return i}function KI(n){let{start:e,end:t,payload:r}=n,i=r.join(`
|
|
12
|
+
`);return Lt(e,t,i)}function dl(n){n.nativeTextTracksParsers.srt=sl,n.nativeTextDisplayer=rn}function eo(n){return typeof te.VTTCue=="function"&&n instanceof te.VTTCue}var VI={left:"start",center:"center",right:"end",start:"start",end:"end"},zI={left:"line-left",center:"center",right:"line-right"};function ul(n){let{paragraph:e,timeOffset:t,paragraphStyle:r,ttParams:i,shouldTrimWhiteSpace:o}=n;if(!e.hasAttribute("begin")&&!e.hasAttribute("end")&&/^\s*$/.test(e.textContent===null?"":e.textContent))return null;let{start:a,end:s}=$i(e,i),d=HI(e,o),u=Lt(a+t,s+t,d);return u===null?null:(eo(u)&&WI(u,r),u)}function HI(n,e){function t(r,i){let o=r.childNodes,a="";for(let s=0;s<o.length;s++){let d=o[s];if(d.nodeName==="#text"){let u=d.textContent;if(u===null&&(u=""),i){let c=u.trim();c=c.replace(/\s+/g," "),u=c}let l=u.replace(/&|\u0026/g,"&").replace(/<|\u003C/g,"<").replace(/>|\u2265/g,">").replace(/\u200E/g,"‎").replace(/\u200F/g,"‏").replace(/\u00A0/g," ");a+=l}else if(ya(d))a+=`
|
|
13
|
+
`;else if(Ia(d)&&d.nodeType===Node.ELEMENT_NODE&&d.childNodes.length>0){let u=d.getAttribute("xml:space"),l=w(u)?u==="default":i;a+=t(d,l)}}return a}return t(n,e)}function WI(n,e){let t=e.extent;if(w(t)){let a=Ou.exec(t);_(a)||(n.size=Number(a[1]))}switch(e.writingMode){case"tb":case"tblr":n.vertical="lr";break;case"tbrl":n.vertical="rl";break;default:break}let i=e.origin;if(w(i)){let a=Ou.exec(i);_(a)}let o=e.align;if(w(o)){n.align=o,o==="center"&&(n.align!=="center"&&(n.align="middle"),n.position="auto");let a=zI[o];n.positionAlign=a===void 0?"":a;let s=VI[o];n.lineAlign=s===void 0?"":s}}function ll(n,e){let t=Yi(n,e),r=[];for(let i of t){let o=ul(i);o!==null&&r.push(o)}return r}var fm=ll;function cl(n){n.nativeTextTracksParsers.ttml=fm,n.nativeTextDisplayer=rn}function fl(n,e){if(w(n.vertical)&&(n.vertical==="rl"||n.vertical==="lr")&&(e.vertical=n.vertical),w(n.line)){let r=/^(\d+(\.\d+)?)%(,([a-z]+))?/.exec(n.line);if(Array.isArray(r))e.line=Number(r[1]),e.snapToLines=!1,Q(["start","center","end"],r[4])&&(e.lineAlign=r[4]);else{let o=/^(-?\d+)(,([a-z]+))?/.exec(n.line);Array.isArray(o)&&(e.line=Number(o[1]),e.snapToLines=!0,Q(["start","center","end"],o[3])&&(e.lineAlign=o[3]))}}if(w(n.position)){let r=/^([\d\.]+)%(?:,(line-left|line-right|center))?$/.exec(n.position);if(Array.isArray(r)&&r.length>=2){let i=parseInt(r[1],10);isNaN(i)||(e.position=i,r[2]!==void 0&&(e.positionAlign=r[2]))}}w(n.size)&&(e.size=n.size),typeof n.align=="string"&&Q(["start","center","end","left"],n.align)&&(e.align=n.align)}function ml(n){let{start:e,end:t,payload:r}=n,i=r.join(`
|
|
14
|
+
`);return Lt(e,t,i)}function pl(n,e){let t=n.split(/\r\n|\n|\r/);if(!/^WEBVTT($| |\t)/.test(t[0]))throw new Error("Can't parse WebVTT: Invalid file.");let r=Sa(t),i=Qi(t,r),o=[];for(let a of i){let s=Xi(a,e);if(s!==null){let d=ml(s);d!==null&&(eo(d)&&fl(s.settings,d),o.push(d))}}return o}var mm=pl;function gl(n){n.nativeTextTracksParsers.vtt=mm,n.nativeTextDisplayer=rn}function tr(n){let e=[];n.periods.forEach(t=>{let r=t.id;if(Q(e,r)){m.warn("Two periods with the same ID found. Updating.");let a=r+"-dup";t.id=a,tr(n),e.push(a)}else e.push(r);let{adaptations:i}=t,o=[];Object.keys(i).forEach(a=>{let s=i[a];s!==void 0&&s.forEach(d=>{let u=d.id;if(Q(o,u)){m.warn("Two adaptations with the same ID found. Updating.",u);let c=u+"-dup";d.id=c,tr(n),o.push(c)}else o.push(u);let l=[];d.representations.forEach(c=>{let f=c.id;if(Q(l,f)){m.warn("Two representations with the same ID found. Updating.",f);let g=`${f}-dup`;c.id=g,tr(n),l.push(g)}else l.push(f)})})})})}function pm(n,e){let t;return e==="AACH"?t=5:t=w(n)?(parseInt(n.substring(0,2),16)&248)>>3:2,t===0?"mp4a.40.2":`mp4a.40.${t}`}function gm(n){let e=/00000001\d7([0-9a-fA-F]{6})/.exec(n);return e===null||!w(e[1])?"avc1.4D401E":"avc1."+e[1]}function hl(n){return n.reduce((e,t,r)=>{let i=t.getAttribute("d"),o=t.getAttribute("t"),a=t.getAttribute("r"),s=a!==null?+a-1:0,d=o!==null?+o:void 0,u=i!==null?+i:void 0;if(r===0)d=d===void 0||isNaN(d)?0:d;else{let l=e[r-1];if(d===void 0||isNaN(d)){if(l.duration===void 0||isNaN(l.duration))throw new Error("Smooth: Invalid CNodes. Missing timestamp.");d=l.start+l.duration*(l.repeatCount+1)}}if(u===void 0||isNaN(u)){let l=n[r+1];if(l!==void 0){let c=l.getAttribute("t"),f=w(c)?+c:null;if(f===null)throw new Error("Can't build index timeline from Smooth Manifest.");u=f-d}else return e}return e.push({duration:u,start:d,repeatCount:s}),e},[])}function GI(n){return[{systemId:"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",privateData:re([8,1,18,16],n)}]}function yl(n,e=GI){if(n.firstElementChild===null||n.firstElementChild.nodeName!=="ProtectionHeader")throw new Error("Protection should have ProtectionHeader child");let t=n.firstElementChild,r=ft(t.textContent===null?"":t.textContent),i=Dr(r),o=qe(i),a=t.getAttribute("SystemID"),s=(a!==null?a:"").toLowerCase().replace(/\{|\}/g,"");return{keyId:o,keySystems:[{systemId:s,privateData:r}].concat(e(o))}}function hm(n,e,t){return n.replace(/\{bitrate\}/g,String(e)).replace(/{CustomAttributes}/g,t.length>0?t[0]:"")}function ym(n,e){return n.replace(/\{start time\}/g,String(e))}function qI(n,e,t){let r=e-n;return r>0?Math.floor(r/t):0}function jI(n,e,t){let r=n===void 0||n===0?1:n;return{up:e*r,to:(e+t)*r}}function YI(n,e){let t=n.repeatCount;if(n.duration!==void 0&&t<0){let r=e!==void 0?e.start:1/0;t=Math.ceil((r-n.start)/n.duration)-1}return t}var to=class{constructor(e){let{isLive:t,segmentPrivateInfos:r,media:i,sharedSmoothTimeline:o}=e;if(this._sharedSmoothTimeline=o,this._initSegmentInfos={bitsPerSample:r.bitsPerSample,channels:r.channels,codecPrivateData:r.codecPrivateData,packetSize:r.packetSize,samplingRate:r.samplingRate,timescale:o.timescale,height:r.height,width:r.width,protection:r.protection},this._isLive=t,this._media=i,o.timeline.length!==0&&t){let{timeline:a,validityTime:s}=o,d=a[a.length-1],u=ke(d,null),l=s/1e3*o.timescale;this._scaledLiveGap=l-u}}getInitSegment(){return{id:"init",isInit:!0,privateInfos:{smoothInitSegment:this._initSegmentInfos},url:null,time:0,end:0,duration:0,timescale:1,complete:!0}}getSegments(e,t){this._refreshTimeline();let{timescale:r,timeline:i}=this._sharedSmoothTimeline,{up:o,to:a}=jI(r,e,t),s=this._media,d,u=[],l=i.length,c=this._scaledLiveGap===void 0?void 0:K()/1e3*r-this._scaledLiveGap;for(let f=0;f<l;f++){let g=i[f],{duration:p,start:I}=g,y=YI(g,i[f+1]),b=qI(I,o,p),T=I+b*p,v=p;for(;T<a&&b<=y&&(c===void 0||T+v<=c);){let E=T,R=d!==void 0?d+b:void 0,k={id:String(T),isInit:!1,time:E/r,end:(E+p)/r,duration:p/r,timescale:1,number:R,url:ym(s,E),complete:!0,privateInfos:{smoothMediaSegment:{time:E,duration:p}}};u.push(k),b++,T=I+b*p}if(T>=a)return u;d!==void 0&&(d+=y+1)}return u}shouldRefresh(e,t){if(this._refreshTimeline(),!this._isLive)return!1;let{timeline:r,timescale:i}=this._sharedSmoothTimeline,o=r[r.length-1];if(o===void 0)return!1;let a=o.repeatCount,s=o.start+(a+1)*o.duration;if(t*i<s)return!1;if(e*i>=s)return!0;let d=o.start+a*o.duration;return e*i>d}getFirstAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;return e.length===0?null:e[0].start/t}getLastAvailablePosition(){this._refreshTimeline();let{timeline:e,timescale:t}=this._sharedSmoothTimeline;if(this._scaledLiveGap===void 0){let r=e[e.length-1];return ke(r,null)/t}for(let r=e.length-1;r>=0;r--){let i=e[r],o=K()/1e3*t,{start:a,duration:s,repeatCount:d}=i;for(let u=d;u>=0;u--){let l=a+s*(u+1);if(l<=o-this._scaledLiveGap)return l/t}}}getEnd(){if(!this._isLive)return this.getLastAvailablePosition()}awaitSegmentBetween(e,t){var i;if(J(e<=t),this.isStillAwaitingFutureSegments())return!1;let r=this.getLastAvailablePosition();return r!==void 0&&t<r?!1:t>((i=this.getFirstAvailablePosition())!=null?i:0)?void 0:!1}checkDiscontinuity(e){return this._refreshTimeline(),ia(this._sharedSmoothTimeline,e,void 0)}isSegmentStillAvailable(e){if(e.isInit)return!0;this._refreshTimeline();let{timeline:t,timescale:r}=this._sharedSmoothTimeline;for(let i=0;i<t.length;i++){let o=t[i],a=o.start/r;if(a>e.time)return!1;if(a===e.time)return!0;if(o.repeatCount>=0&&o.duration!==void 0){let d=(a-o.start)/o.duration-1;return d%1===0&&d<=o.repeatCount}}return!1}canBeOutOfSyncError(e){return this._isLive?e instanceof rt&&(e.isHttpError(404)||e.isHttpError(412)):!1}_replace(e){this._initialScaledLastPosition=e._initialScaledLastPosition,this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.replace(e._sharedSmoothTimeline)}_update(e){this._scaledLiveGap=e._scaledLiveGap,this._sharedSmoothTimeline.update(e._sharedSmoothTimeline)}isStillAwaitingFutureSegments(){return this._isLive}isInitialized(){return!0}initialize(){m.error("A `SmoothRepresentationIndex` does not need to be initialized")}addPredictedSegments(e,t){this._sharedSmoothTimeline.addPredictedSegments(e,t)}_refreshTimeline(){this._sharedSmoothTimeline.refresh()}};function Il(n,e,t,r){let i=n.length,o=n[i-1],a=t.timescale===e?{time:t.time,duration:t.duration}:{time:t.time/t.timescale*e,duration:t.duration/t.timescale*e};return r.time===a.time?!1:a.time>=ke(o,null)?(o.duration===a.duration?o.repeatCount++:n.push({duration:a.duration,start:a.time,repeatCount:0}),!0):!1}var no=class{constructor(e){let{timeline:t,timescale:r,timeShiftBufferDepth:i,manifestReceivedTime:o}=e;this.timeline=t,this.timescale=r;let a=o!=null?o:K();if(this.validityTime=a,this._timeShiftBufferDepth=i,t.length!==0){let s=t[t.length-1],d=ke(s,null);this._initialScaledLastPosition=d}}refresh(){if(this._initialScaledLastPosition===void 0)return;let e=this._timeShiftBufferDepth,r=(K()-this.validityTime)/1e3+this._initialScaledLastPosition/this.timescale;if(e!==void 0){let i=(r-e)*this.timescale;Ci(this.timeline,i)}}replace(e){let t=this.timeline,r=e.timeline,i=this.timescale,o=e.timescale;if(this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime,t.length===0||r.length===0||i!==o)return;let a=t[t.length-1],s=r[r.length-1],d=ke(s,null);if(!(ke(a,null)<=d))for(let u=0;u<t.length;u++){let l=t[u],c=ke(l,null);if(c===d){this.timeline=this.timeline.concat(t.slice(u+1));return}if(c>d){if(l.duration!==s.duration)return;let f=d-l.start;if(f===0){m.warn("Smooth Parser: a discontinuity detected in the previous manifest has been resolved."),this.timeline=this.timeline.concat(t.slice(u));return}if(f<0||f%l.duration!==0)return;let g=f/l.duration-1,p=l.repeatCount-g;if(p<0)return;s.repeatCount+=p;let I=t.slice(u+1);this.timeline=this.timeline.concat(I);return}}}update(e){Pi(this.timeline,e.timeline),this._initialScaledLastPosition=e._initialScaledLastPosition,this.validityTime=e.validityTime}addPredictedSegments(e,t){var r;if(((r=t.privateInfos)==null?void 0:r.smoothMediaSegment)===void 0){m.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");return}this.refresh();for(let i of e)Il(this.timeline,this.timescale,i,t.privateInfos.smoothMediaSegment)}};function bl(n){return typeof n=="boolean"?n:typeof n=="string"?n.toUpperCase()==="TRUE":!1}function nr(n,e,t){let r=n.firstElementChild,i=t;for(;r!==null;)i=e(i,r.nodeName,r),r=r.nextElementSibling;return i}var $I={audio:"audio/mp4",video:"video/mp4",text:"application/ttml+xml"},ro={AACL:"audio/mp4",AVC1:"video/mp4",H264:"video/mp4",TTML:"application/ttml+xml+mp4",DFXP:"application/ttml+xml+mp4"};function QI(n={}){let e=n.referenceDateTime===void 0?Date.UTC(1970,0,1,0,0,0,0)/1e3:n.referenceDateTime,t=n.minRepresentationBitrate===void 0?0:n.minRepresentationBitrate,{serverSyncInfos:r}=n,i=r!==void 0?r.serverTimestamp-r.clientTime:void 0;function o(d,u){let l=nr(d,(f,g,p)=>(g==="CustomAttributes"&&f.push(...nr(p,(I,y,b)=>{if(y==="Attribute"){let T=b.getAttribute("Name"),v=b.getAttribute("Value");T!==null&&v!==null&&I.push(T+"="+v)}return I},[])),f),[]);function c(f){let g=d.getAttribute(f);return g===null?void 0:g}switch(u){case"audio":{let f=c("AudioTag"),g=c("BitsPerSample"),p=c("Channels"),I=c("CodecPrivateData"),y=c("FourCC"),b=c("PacketSize"),T=c("SamplingRate"),v=c("Bitrate"),E=v===void 0?0:parseInt(v,10);if(E=isNaN(E)?0:E,y!==void 0&&ro[y]===void 0||I===void 0)return m.warn("Smooth parser: Unsupported audio codec. Ignoring quality level."),null;let R=pm(I,y);return{audiotag:f!==void 0?parseInt(f,10):f,bitrate:E,bitsPerSample:g!==void 0?parseInt(g,10):g,channels:p!==void 0?parseInt(p,10):p,codecPrivateData:I,codecs:R,customAttributes:l,mimeType:y!==void 0?ro[y]:y,packetSize:b!==void 0?parseInt(b,10):b,samplingRate:T!==void 0?parseInt(T,10):T}}case"video":{let f=c("CodecPrivateData"),g=c("FourCC"),p=c("MaxWidth"),I=c("MaxHeight"),y=c("Bitrate"),b=y===void 0?0:parseInt(y,10);if(b=isNaN(b)?0:b,g!==void 0&&ro[g]===void 0||f===void 0)return m.warn("Smooth parser: Unsupported video codec. Ignoring quality level."),null;let T=gm(f);return{bitrate:b,customAttributes:l,mimeType:g!==void 0?ro[g]:g,codecPrivateData:f,codecs:T,width:p!==void 0?parseInt(p,10):void 0,height:I!==void 0?parseInt(I,10):void 0}}case"text":{let f=c("CodecPrivateData"),g=c("FourCC"),p=c("Bitrate"),I=p===void 0?0:parseInt(p,10);return I=isNaN(I)?0:I,{bitrate:I,customAttributes:l,mimeType:g!==void 0?ro[g]:g,codecPrivateData:f!=null?f:""}}default:return m.error("Smooth Parser: Unrecognized StreamIndex type: "+u),null}}function a(d){let{root:u,timescale:l,baseUrl:c,protections:f,timeShiftBufferDepth:g,manifestReceivedTime:p,isLive:I}=d,y=u.getAttribute("Timescale"),b=y===null?l:+y;isNaN(b)&&(b=l);let T=u.getAttribute("Type");if(T===null)throw new Error("StreamIndex without type.");Q($t,T)||m.warn("Smooth Parser: Unrecognized adaptation type:",T);let v=T,E=u.getAttribute("Subtype"),R=u.getAttribute("Language"),k=u.getAttribute("Url"),x=k===null?"":k;h.CURRENT_ENV===h.DEV&&J(x!=="");let{qualityLevels:M,cNodes:A}=nr(u,(P,D,N)=>{switch(D){case"QualityLevel":{let z=o(N,v);if(z===null)return P;(v!=="video"||z.bitrate>t)&&P.qualityLevels.push(z);break}case"c":P.cNodes.push(N);break}return P},{qualityLevels:[],cNodes:[]}),L=new no({timeline:hl(A),timescale:b,timeShiftBufferDepth:g,manifestReceivedTime:p});J(M.length!==0,"Adaptation should have at least one playable representation.");let O=v+(w(R)?"_"+R:""),F=M.map(P=>{let D=hm(x,P.bitrate,P.customAttributes),N=w(P.mimeType)?P.mimeType:$I[v],z=P.codecs,$=O+"_"+(_(v)?"":v+"-")+(_(N)?"":N+"-")+(_(z)?"":z+"-")+String(P.bitrate),q=[],W;f.length>0&&(W=f[0],f.forEach(se=>{q.push(se.keyId)}));let H={bitsPerSample:P.bitsPerSample,channels:P.channels,codecPrivateData:P.codecPrivateData,packetSize:P.packetSize,samplingRate:P.samplingRate,height:P.height,width:P.width,protection:_(W)?void 0:{keyId:W.keyId}},V=new to({isLive:I,sharedSmoothTimeline:L,media:D,segmentPrivateInfos:H}),ae=j({},P,{index:V,cdnMetadata:[{baseUrl:c}],mimeType:N,codecs:z,id:$});if(q.length>0||W!==void 0){let se=W===void 0?[]:W.keySystems.map(le=>{let{systemId:Se,privateData:Y}=le,ce=Se.replace(/-/g,""),ye=XI(ce,Y);return{systemId:ce,data:ye}});if(se.length>0){let le=[{type:"cenc",values:se}];ae.contentProtections={keyIds:q,initData:le}}else ae.contentProtections={keyIds:q,initData:[]}}return ae});if(E==="ADVT")return null;let C={id:O,type:v,representations:F,language:R===null?void 0:R};return v==="text"&&E==="DESC"&&(C.closedCaption=!0),C}function s(d,u,l){let c="";if(u!==void 0){let V=Tr(u);c=u.substring(0,V)}let f=d.documentElement;if(_(f)||f.nodeName!=="SmoothStreamingMedia")throw new Error("document root should be SmoothStreamingMedia");let g=f.getAttribute("MajorVersion"),p=f.getAttribute("MinorVersion");if(g===null||p===null||!/^[2]-[0-2]$/.test(g+"-"+p))throw new Error("Version should be 2.0, 2.1 or 2.2");let I=f.getAttribute("Timescale"),y=w(I)?+I:1e7;isNaN(y)&&(y=1e7);let{protections:b,adaptationNodes:T}=nr(f,(V,ae,se)=>{switch(ae){case"Protection":{V.protections.push(yl(se,n.keySystems));break}case"StreamIndex":V.adaptationNodes.push(se);break}return V},{adaptationNodes:[],protections:[]}),v={},E=bl(f.getAttribute("IsLive")),R;if(E){let V=f.getAttribute("DVRWindowLength");V!==null&&!isNaN(+V)&&+V!=0&&(R=+V/y)}let k=T.reduce((V,ae)=>{let se=a({root:ae,baseUrl:c,timescale:y,protections:b,isLive:E,timeShiftBufferDepth:R,manifestReceivedTime:l});if(se===null)return V;let le=se.type,Se=V[le];return Se===void 0?V[le]=[se]:Se.push(se),V},v),x,M,A,L=null,O,F=k.video!==void 0?k.video[0]:void 0,C=k.audio!==void 0?k.audio[0]:void 0,P,D,N;if(F!==void 0||C!==void 0){let V=[],ae=[];if(F!==void 0){let se=F.representations[0];if(se!==void 0){let le=se.index.getFirstAvailablePosition(),Se=se.index.getLastAvailablePosition();_(le)||V.push(le),_(Se)||ae.push(Se)}}if(C!==void 0){let se=C.representations[0];if(se!==void 0){let le=se.index.getFirstAvailablePosition(),Se=se.index.getLastAvailablePosition();_(le)||V.push(le),_(Se)||ae.push(Se)}}V.length>0&&(P=Math.max(...V)),ae.length>0&&(D=Math.min(...ae),N=Math.max(...ae))}let z=f.getAttribute("Duration"),$=z!==null&&+z!=0?+z/y:void 0;if(E){x=n.suggestedPresentationDelay,M=e,A=P!=null?P:M;let V=N;V===void 0&&(V=Date.now()/1e3-M);let ae=D;ae===void 0&&(ae=V),O={isLinear:!0,maximumSafePosition:ae,livePosition:V,time:K()},L=R!=null?R:null}else{A=P!=null?P:0;let V=D;V===void 0&&(V=$!==void 0?A+$:1/0),O={isLinear:!1,maximumSafePosition:V,livePosition:void 0,time:K()}}let q=E?0:A,W=E?void 0:O.maximumSafePosition,H={availabilityStartTime:M===void 0?0:M,clockOffset:i,isLive:E,isDynamic:E,isLastPeriodKnown:!0,timeBounds:{minimumSafePosition:A,timeshiftDepth:L,maximumTimeData:O},periods:[{adaptations:k,duration:W!==void 0?W-q:$,end:W,id:"gen-smooth-period-0",start:q}],suggestedPresentationDelay:x,transportType:"smooth",uris:_(u)?[]:[u]};return tr(H),H}return s}function XI(n,e){if(n.length!==32)throw new Error("HSS: wrong system id length");return ue("pssh",re([0,0,0,0],qe(n),Ie(e.length),e))}var Im=QI;var bm=Im;function Sm(n,e,t,r,i,o,a){return ue("avc1",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a))}function Tm(n,e,t,r,i,o,a,s){return ue("encv",re(6,fe(1),16,fe(n),fe(e),fe(t),2,fe(r),6,[0,1,i.length],ve(i),31-i.length,fe(o),[255,255],a,s))}function _m(n,e,t,r,i,o){return ue("mp4a",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o))}function Em(n,e,t,r,i,o,a){return ue("enca",re(6,fe(n),8,fe(e),fe(t),2,fe(r),fe(i),2,o,a))}function vm(n){return ue("dref",re(7,[1],n))}function Rm(n,e){let t=re(...[ve(n),[0,0,0,1]].concat(e.map(ve)));return ue("ftyp",t)}function _a(n,e){return ue("schm",re(4,ve(n),Ie(e)))}function km(n){return ue("tfdt",re([1,0,0,0],jt(n)))}function Cm(){let n=new Uint8Array(12);return n[3]=1,ue("vmhd",n)}function Pm(n){return ue("trex",re(4,Ie(n),[0,0,0,1],12))}function Mm(n){return ue("free",new Uint8Array(n-8))}function Am(n,e){return ue("esds",re(4,[3,25],fe(n),[0,4,17,64,21],11,[5,2],qe(e),[6,1,2]))}function Ea(n){return ue("frma",ve(n))}function xm(n,e,t){let r;t===2?r=1:t===4?r=3:r=0;let i=n[1],o=n[2],a=n[3];return ue("avcC",re([1,i,o,a,252|r,225],fe(n.length),n,[1],fe(e.length),e))}function wm(n){let e,t;switch(n){case"video":e="vide",t="VideoHandler";break;case"audio":e="soun",t="SoundHandler";break;default:e="hint",t="";break}return ue("hdlr",re(8,ve(e),12,ve(t),1))}function Om(n){return ue("mdhd",re(12,Ie(n),8))}function Dm(n,e){return ue("mvhd",re(12,Ie(n),4,[0,1],2,[1,0],10,[0,1],14,[0,1],14,[64,0,0,0],26,fe(e+1)))}function Lm(n,e,t,r){return ue("saio",re(4,[0,0,0,1],Ie(n.length+e.length+t.length+r.length+8+8+8+8)))}function Nm(n){if(n.length===0)return ue("saiz",new Uint8Array(0));let e=ne(n,0),t=ne(n,4),r=new Uint8Array(t+9);r.set(Ie(t),5);let i=9,o=8,a,s;for(;o<n.length;)o+=8,(e&2)===2?(s=2,a=Lo(n,o),o+=a*6+2):(a=0,s=0),r[i]=a*6+8+s,i++;return ue("saiz",r)}function Um(){return ue("smhd",new Uint8Array(8))}function rr(n){let e=[7,[n.length]];return ue("stsd",re(...e.concat(n)))}function Bm(n,e,t){return ue("tkhd",re(Ie(7),8,Ie(t),20,[1,0,0,0],[0,1,0,0],12,[0,1,0,0],12,[64,0,0,0],fe(n),2,fe(e),2))}function va(n,e,t){return ue("tenc",re(6,[n,e],t))}function ZI(n,e,t){return Ae("moov",[n,e,t])}function io(n,e,t,r,i,o){let a=Ae("stbl",[t,ue("stts",new Uint8Array(8)),ue("stsc",new Uint8Array(8)),ue("stsz",new Uint8Array(12)),ue("stco",new Uint8Array(8))]),s=ue("url ",new Uint8Array([0,0,0,1])),d=vm(s),u=Ae("dinf",[d]),l=Ae("minf",[r,u,a]),c=wm(e),f=Om(n),g=Ae("mdia",[f,c,l]),p=Bm(i,o,1),I=Ae("trak",[p,g]),y=Pm(1),b=Ae("mvex",[y]),T=Dm(n,1),v=ZI(T,b,I),E=Rm("isom",["isom","iso2","iso6","avc1","dash"]);return re(E,v)}var JI=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];function Sl(n,e,t){let r=JI.indexOf(e),i;return i=(n&63)<<4,i=(i|r&31)<<4,i=(i|t&31)<<3,Ne(fe(i))}function Ra(n,e,t,r,i,o,a){let s=o.length===0?Sl(2,i,e):o,d=Am(1,s),u=(()=>{if(a===void 0){let y=_m(1,e,t,r,i,d);return rr([y])}let l=va(1,8,a),c=Ae("schi",[l]),f=_a("cenc",65536),g=Ea("mp4a"),p=Ae("sinf",[g,f,c]),I=Em(1,e,t,r,i,d,p);return rr([I])})();return io(n,"audio",u,Um(),0,0)}function ka(n,e,t,r,i,o,a,s){let[,d,u]=a.split("00000001");if(d===void 0||u===void 0)throw new Error("Smooth: unsupported codec private data.");let l=qe(d),c=qe(u),f=xm(l,c,o),g;if(s===void 0){let p=Sm(e,t,r,i,"AVC Coding",24,f);g=rr([p])}else{let p=va(1,8,s),I=Ae("schi",[p]),y=_a("cenc",65536),b=Ea("avc1"),T=Ae("sinf",[b,y,I]),v=Tm(e,t,r,i,"AVC Coding",24,f,T);g=rr([v])}return io(n,"video",g,Cm(),e,t)}function Ca(n){let e=gn(n,3565190898,3392751253,2387879627,2655430559);if(e===void 0)return[];let t=[],r=e[0],i=e[4];for(let o=0;o<i;o++){let a,s;r===1?(s=Ke(e,o*16+5),a=Ke(e,o*16+5+8)):(s=ne(e,o*8+5),a=ne(e,o*8+5+4)),t.push({time:s,duration:a})}return t}function Pa(n){let e=gn(n,1830656773,1121273062,2162299933,2952222642);if(e!==void 0)return{duration:Ke(e,12),time:Ke(e,4)}}function Tl(){return!zt}function _l(n,e,t,r,i){let o=[n,e,t];return i!==void 0&&o.push(ue("senc",i),Nm(i),Lm(r,n,e,t)),Ae("traf",o)}function Ma(n,e){let t=Ve(n,1836019558);if(t===null)throw new Error("Smooth: Invalid ISOBMFF given");let r=n.subarray(t[1],t[2]),i=bs(r,1835427940),o=Re(r,1953653094);if(o===null||i===null)throw new Error("Smooth: Invalid ISOBMFF given");let a=Ve(o,1952868452),s=Ve(o,1953658222);if(a===null||s===null)throw new Error("Smooth: Invalid ISOBMFF given");let d=o.subarray(a[0],a[2]),u=o.subarray(s[0],s[2]);d.set([0,0,0,1],a[1]-a[0]+4);let l=km(e),c=eb(u,s[1]-s[0]),f=gn(o,2721664850,1520127764,2722393154,2086964724),g=_l(d,l,c,i,f),p=Ae("moof",[i,g]),I=Ve(p,1836019558),y=Ve(g,1953653094),b=Ve(c,1953658222);if(I===null||y===null||b===null)throw new Error("Smooth: Invalid moof, trun or traf generation");let T=I[1]-I[0]+i.length+(y[1]-y[0])+d.length+l.length+(b[1]-b[0])+8,v=t[2]-t[0],E=p.length-v,R=Ve(n,1835295092);if(R===null)throw new Error("Smooth: Invalid ISOBMFF given");if(Tl()&&(E===0||E<=-8)){let k=R[1];return p.set(Ie(k),T),n.set(p,t[0]),E<=-8&&n.set(Mm(-E),p.length),n}else{let k=R[1]+E;p.set(Ie(k),T);let x=new Uint8Array(n.length+E),M=n.subarray(0,t[0]),A=n.subarray(t[2],n.length);return x.set(M,0),x.set(p,M.length),x.set(A,M.length+p.length),x}}function eb(n,e){if((n[e+3]&1)>0)return n;let r=new Uint8Array(n.length+4);return r.set(n.subarray(0,e+8),0),r[e+3]=r[e+3]|1,r.set([0,0,0,0],e+8),r.set(n.subarray(e+8,n.length),e+12),vs(r)}function Aa(n,e,t,r,i){var g;let o=[],a,s,d;if(i){let p=wr(n);p!==null?(d=Ca(p),s=Pa(p)):m.warn("smooth: could not find traf atom")}if(d!==void 0)for(let p of d)o.push({time:p.time,duration:p.duration,timescale:t});if(s!==void 0)return a={time:s.time/t,duration:s.duration/t},{nextSegments:o,chunkInfos:a,scaledSegmentTime:s.time};if(e||!r.complete)return{nextSegments:o,chunkInfos:null,scaledSegmentTime:void 0};let u=r.duration*t,l=Math.min(t*.9,u/4),c=Nr(n),f=((g=r.privateInfos)==null?void 0:g.smoothMediaSegment)!==void 0?r.privateInfos.smoothMediaSegment.time:Math.round(r.time*t);return c!==void 0&&Math.abs(c-u)<=l?a={time:r.time,duration:c/t}:a={time:r.time,duration:r.duration},{nextSegments:o,chunkInfos:a,scaledSegmentTime:f}}function An(n){return typeof n=="string"&&n.indexOf("mp4")>=0}async function Fm(n,e,t,r,i,o){var g,p;let a=((g=r.cmcdPayload)==null?void 0:g.type)==="headers"?r.cmcdPayload.value:void 0,s=e.segment.range,d;Array.isArray(s)?d=de(ie({},a),{Range:dt(s)}):a!==void 0&&(d=a);let u=((p=r.cmcdPayload)==null?void 0:p.type)==="query"?Ye(n,r.cmcdPayload.value):n,l=await Te({url:u,responseType:"arraybuffer",headers:d,timeout:r.timeout,connectionTimeout:r.connectionTimeout,cancelSignal:i,onProgress:t.onProgress});if(!An(e.mimeType)||o!==!0)return{resultType:"segment-loaded",resultData:l};let f=new Uint8Array(l.responseData);return Jt(f,e.segment.isInit),{resultType:"segment-loaded",resultData:de(ie({},l),{responseData:f})}}var tb=({checkMediaSegmentIntegrity:n,segmentLoader:e})=>(t,r,i,o,a)=>{let{segment:s}=r;if(s.isInit){if(s.privateInfos===void 0||s.privateInfos.smoothInitSegment===void 0)throw new Error("Smooth: Invalid segment format");let d=s.privateInfos.smoothInitSegment,u,{codecPrivateData:l,timescale:c,height:f,width:g,protection:p={keyId:void 0,keySystems:void 0}}=d;if(l===void 0)throw new Error("Smooth: no codec private data.");switch(r.type){case"video":{u=ka(c,g!=null?g:0,f!=null?f:0,72,72,4,l,p.keyId);break}case"audio":{let{channels:I=0,bitsPerSample:y=0,packetSize:b=0,samplingRate:T=0}=d;u=Ra(c,I,y,b,T,l,p.keyId);break}default:h.CURRENT_ENV===h.DEV&&J(!1,"responseData should have been set"),u=new Uint8Array(0)}return Promise.resolve({resultType:"segment-created",resultData:u})}else return t===null?Promise.resolve({resultType:"segment-created",resultData:null}):typeof e!="function"?Fm(t,r,a,i,o,n):new Promise((d,u)=>{let l=!1,I={reject:E=>{var M,A;if(l||o.isCancelled())return;l=!0,o.deregister(v);let R=E,k=(M=R==null?void 0:R.message)!=null?M:"Unknown error when fetching a Smooth segment through a custom segmentLoader.",x=new nt(k,(A=R==null?void 0:R.canRetry)!=null?A:!1,R==null?void 0:R.xhr);u(x)},resolve:E=>{if(l||o.isCancelled())return;l=!0,o.deregister(v),(!An(r.mimeType)||n!==!0)&&d({resultType:"segment-loaded",resultData:{responseData:E.data,size:E.size,requestDuration:E.duration}});let k=E.data instanceof Uint8Array?E.data:new Uint8Array(E.data);Jt(k,r.segment.isInit),d({resultType:"segment-loaded",resultData:{responseData:k,size:E.size,requestDuration:E.duration}})},fallback:()=>{l||o.isCancelled()||(l=!0,o.deregister(v),Fm(t,r,a,i,o,n).then(d,u))},progress:E=>{l||o.isCancelled()||a.onProgress({duration:E.duration,size:E.size,totalSize:E.totalSize})}},y;r.segment.range!==void 0&&(y=[r.segment.range],r.segment.indexRange!==void 0&&y.push(r.segment.indexRange));let b={isInit:r.segment.isInit,timeout:i.timeout,byteRanges:y,trackType:r.type,url:t,cmcdPayload:i.cmcdPayload},T=e(b,I);o.register(v);function v(E){l||(l=!0,!l&&typeof T=="function"&&T(),u(E))}})},Km=tb;function El(n,e){return n===null?null:e.url===null?n.baseUrl:cn(n.baseUrl,e.url)}function Vm(n){let e=bm(n),t=Km(n),r={customManifestLoader:n.manifestLoader},o={loadManifest:Ni(r,"text",null),parseManifest(d,u){var b;let l=(b=d.url)!=null?b:u.originalUrl,{receivedTime:c,responseData:f}=d,g=typeof f=="string"?new DOMParser().parseFromString(f,"text/xml"):f,p=e(g,l,c),I=[];return{manifest:new zn(p,{representationFilter:n.representationFilter},I),url:l,warnings:I}}},a={loadSegment(d,u,l,c,f){let g=El(d,u.segment);return t(g,u,l,c,f)},parseSegment(d,u,l){var R,k;let{segment:c}=u,{data:f,isChunked:g}=d;if(f===null)return c.isInit?{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0}:{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let p=f instanceof Uint8Array?f:new Uint8Array(f);if(c.isInit){let x=(k=(R=c.privateInfos)==null?void 0:R.smoothInitSegment)==null?void 0:k.timescale;return{segmentType:"init",initializationData:f,initializationDataSize:f.byteLength,initTimescale:x,protectionData:[]}}let I=l!==void 0?Aa(p,g,l,c,u.isLive):null;if(I===null||I.chunkInfos===null||I.scaledSegmentTime===void 0)throw new Error("Smooth Segment without time information");let{nextSegments:y,chunkInfos:b,scaledSegmentTime:T}=I,v=Ma(p,T),E=y.length>0?y:void 0;return{segmentType:"media",chunkData:v,chunkInfos:b,chunkOffset:0,chunkSize:v.length,protectionData:[],predictedSegments:E,appendWindow:[void 0,void 0]}}};return{transportName:"smooth",manifest:o,audio:a,video:a,text:{loadSegment(d,u,l,c,f){var y,b,T,v;let{segment:g}=u,p=El(d,g);return g.isInit||p===null?Promise.resolve({resultType:"segment-created",resultData:null}):An(u.mimeType)?Te({url:((T=l.cmcdPayload)==null?void 0:T.type)==="query"?Ye(p,l.cmcdPayload.value):p,headers:((v=l.cmcdPayload)==null?void 0:v.type)==="headers"?l.cmcdPayload.value:void 0,responseType:"arraybuffer",timeout:l.timeout,connectionTimeout:l.connectionTimeout,cancelSignal:c,onProgress:f.onProgress}).then(E=>{if(n.checkMediaSegmentIntegrity!==!0)return{resultType:"segment-loaded",resultData:E};let R=new Uint8Array(E.responseData);return Jt(R,u.segment.isInit),{resultType:"segment-loaded",resultData:de(ie({},E),{responseData:R})}}):Te({url:((y=l.cmcdPayload)==null?void 0:y.type)==="query"?Ye(p,l.cmcdPayload.value):p,headers:((b=l.cmcdPayload)==null?void 0:b.type)==="headers"?l.cmcdPayload.value:void 0,responseType:"text",timeout:l.timeout,connectionTimeout:l.connectionTimeout,cancelSignal:c,onProgress:f.onProgress}).then(E=>({resultType:"segment-loaded",resultData:E}))},parseSegment(d,u,l){var O;let{segment:c,language:f,mimeType:g="",codecs:p=""}=u,I=An(u.mimeType),{data:y,isChunked:b}=d,T;if(c.isInit)return{segmentType:"init",initializationData:null,initializationDataSize:0,protectionData:[],initTimescale:void 0};if(y===null)return{segmentType:"media",chunkData:null,chunkInfos:null,chunkOffset:0,chunkSize:0,protectionData:[],appendWindow:[void 0,void 0]};let v,E=null,R,k,x,M;if(I){let F;typeof y=="string"?F=ve(y):F=y instanceof Uint8Array?y:new Uint8Array(y),T=F.length;let C=l!==void 0?Aa(F,b,l,c,u.isLive):null;v=C==null?void 0:C.nextSegments,E=(O=C==null?void 0:C.chunkInfos)!=null?O:null,E===null?b?m.warn("Smooth: Unavailable time data for current text track."):(R=c.time,k=c.end):(R=E.time,k=E.duration!==void 0?E.time+E.duration:c.end);let P=p.toLowerCase();if(g==="application/ttml+xml+mp4"||P==="stpp"||P==="stpp.ttml.im1t")M="ttml";else if(P==="wvtt")M="vtt";else throw new Error(`could not find a text-track parser for the type ${g}`);let D=Or(F);x=D===null?"":Le(D)}else{R=c.time,k=c.end;let F;if(typeof y!="string"){let C=y instanceof Uint8Array?y:new Uint8Array(y);T=C.length,F=Le(C)}else F=y;switch(g){case"application/x-sami":case"application/smil":M="sami";break;case"application/ttml+xml":M="ttml";break;case"text/vtt":M="vtt";break}if(M===void 0)if(p.toLowerCase()==="srt")M="srt";else throw new Error(`could not find a text-track parser for the type ${g}`);x=F}let A=Array.isArray(v)&&v.length>0?v:void 0,L=R!=null?R:0;return{segmentType:"media",chunkData:{type:M,data:x,start:R,end:k,language:f},chunkSize:T,chunkInfos:E,chunkOffset:L,protectionData:[],predictedSegments:A,appendWindow:[void 0,void 0]}}}}}var zm=Vm;function vl(n){n.transports.smooth===void 0&&(n.transports.smooth=zm),n.mainThreadMediaSourceInit=_n}function Hm(){if(!dn)return m.warn("Compat: Can't access Firefox version on no firefox browser."),null;let n=navigator.userAgent,e=/Firefox\/([0-9]+)\./.exec(n);if(e===null)return-1;let t=parseInt(e[1],10);return isNaN(t)?-1:t}function Rl(){if(!dn)return!0;let n=Hm();if(n===null||n<67)return!0;let e=HTMLVideoElement==null?void 0:HTMLVideoElement.prototype;return(e==null?void 0:e.requirePictureInPicture)!==void 0}function oo(n){let e=n;if(typeof e.getStartDate=="function"){let t=e.getStartDate();if(typeof t=="object"&&t!==null){let r=+t;if(!isNaN(r))return r/1e3}else if(typeof t=="number"&&!isNaN(t))return t}}function kl(){return Ka&&typeof Worker=="object"||typeof Worker=="function"}var xn=class n extends Error{constructor(e,t){super(lt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="WorkerInitializationError",this.type="WORKER_INITIALIZATION_ERROR",this.code=e}};var nb=sr,Cl=nb;function xa(n,e,t){let r=e(n.getReference(),t);return{getCurrentTime(){return n.getCurrentTime()},getReadyState(){return n.getReadyState()},getPlaybackRate(){return n.getPlaybackRate()},getIsPaused(){return n.getIsPaused()},getReference(){return r},listen(i,o){var a;t.isCancelled()||((a=o==null?void 0:o.clearSignal)==null?void 0:a.isCancelled())===!0||r.onUpdate(i,{clearSignal:o==null?void 0:o.clearSignal,emitCurrentValue:o==null?void 0:o.includeLastObservation})},deriveReadOnlyObserver(i){return xa(this,i,t)}}}var rb=["canplay","ended","play","pause","seeking","seeked","loadedmetadata","ratechange"],ao=class{constructor(e,t){this._internalSeeksIncoming=[],this._mediaElement=e,this._withMediaSource=t.withMediaSource,this._lowLatencyMode=t.lowLatencyMode,this._canceller=new B,this._observationRef=this._createSharedReference(),this._expectedSeekingPosition=null,this._pendingSeek=null;let r=()=>{if(this._pendingSeek!==null){let i=this._pendingSeek;this._pendingSeek=null,this._actuallySetCurrentTime(i)}};e.addEventListener("loadedmetadata",r),this._canceller.signal.register(()=>{e.removeEventListener("loadedmetadata",r)})}stop(){this._canceller.cancel()}getCurrentTime(){return this._mediaElement.currentTime}getPlaybackRate(){return this._mediaElement.playbackRate}getIsPaused(){return this._mediaElement.paused}setCurrentTime(e){this._mediaElement.readyState>=1?this._actuallySetCurrentTime(e):(this._internalSeeksIncoming=[],this._pendingSeek=e,this._generateObservationForEvent("manual"))}setPlaybackRate(e){this._mediaElement.playbackRate=e}getReadyState(){return this._mediaElement.readyState}getReference(){return this._observationRef}listen(e,t){var r;if(this._canceller.isUsed()||((r=t==null?void 0:t.clearSignal)==null?void 0:r.isCancelled())===!0)return X;this._observationRef.onUpdate(e,{clearSignal:t==null?void 0:t.clearSignal,emitCurrentValue:t==null?void 0:t.includeLastObservation})}deriveReadOnlyObserver(e){return xa(this,e,this._canceller.signal)}_actuallySetCurrentTime(e){m.info("API: Seeking internally",e),this._internalSeeksIncoming.push(e),this._mediaElement.currentTime=e}_createSharedReference(){if(this._observationRef!==void 0)return this._observationRef;let{SAMPLING_INTERVAL_MEDIASOURCE:e,SAMPLING_INTERVAL_LOW_LATENCY:t,SAMPLING_INTERVAL_NO_MEDIASOURCE:r}=U.getCurrent(),i=new G(this._getCurrentObservation("init"),this._canceller.signal),o;this._lowLatencyMode?o=t:this._withMediaSource?o=e:o=r;let a=()=>{this._generateObservationForEvent("timeupdate")},s=setInterval(a,o);return rb.map(u=>{let l=()=>{d(),this._generateObservationForEvent(u)};this._mediaElement.addEventListener(u,l),this._canceller.signal.register(()=>{this._mediaElement.removeEventListener(u,l)})}),this._canceller.signal.register(()=>{clearInterval(s),i.finish()}),i;function d(){clearInterval(s),s=setInterval(a,o)}}_getCurrentObservation(e){var T,v;let t=e,r=this._observationRef===void 0?db(this._mediaElement):this._observationRef.getValue(),i=!1,o=this._pendingSeek,a=Gm(this._mediaElement),{buffered:s,readyState:d,position:u,seeking:l}=a;if(t==="seeking")if(this._internalSeeksIncoming.length>0){i=!0,t="internal-seeking";let E=this._internalSeeksIncoming.shift();this._expectedSeekingPosition=Cl?Math.max(u,E!=null?E:0):u}else this._expectedSeekingPosition=u;else l?this._expectedSeekingPosition=Math.max(u,(T=this._expectedSeekingPosition)!=null?T:0):Cl&&this._expectedSeekingPosition!==null&&u<this._expectedSeekingPosition?o=this._expectedSeekingPosition:this._expectedSeekingPosition=null;l&&r.seeking===1&&e!=="seeking"&&(i=!0);let c=(v=this._expectedSeekingPosition)!=null?v:u,f,g;!this._withMediaSource&&s.length===0&&d>=3?(f=void 0,g=void 0):(f=qa(s,c),g=f!==null?f.end-c:1/0);let p=ob({previousObservation:r,currentObservation:a,basePosition:c,observationEvent:t,lowLatencyMode:this._lowLatencyMode,withMediaSource:this._withMediaSource,bufferGap:g,currentRange:f}),I=ab(r,a,t,g),y;i?y=1:l?y=2:y=0;let b=j({},a,{position:new Yn(a.position,o),event:t,seeking:y,rebuffering:p,freezing:I,bufferGap:g,currentRange:f});return m.hasLevel("DEBUG")&&m.debug("API: current media element state tick","event",b.event,"position",b.position.getPolled(),"seeking",b.seeking,"internalSeek",i,"rebuffering",b.rebuffering!==null,"freezing",b.freezing!==null,"ended",b.ended,"paused",b.paused,"playbackRate",b.playbackRate,"readyState",b.readyState,"pendingPosition",o),b}_generateObservationForEvent(e){let t=this._getCurrentObservation(e);m.hasLevel("DEBUG")&&m.debug(`API: current playback timeline:
|
|
15
|
+
`+sb(t.buffered,t.position.getPolled()),`
|
|
16
|
+
${e}`),this._observationRef.setValue(t)}};function Wm(n,e){if(n===null)return 0;let t=e?"LOW_LATENCY":"DEFAULT",{RESUME_GAP_AFTER_SEEKING:r,RESUME_GAP_AFTER_NOT_ENOUGH_DATA:i,RESUME_GAP_AFTER_BUFFERING:o}=U.getCurrent();switch(n.reason){case"seeking":return r[t];case"not-ready":return i[t];case"buffering":return o[t]}}function ib(n,e,t,r,i){let{REBUFFERING_GAP:o}=U.getCurrent(),a=i?"LOW_LATENCY":"DEFAULT";return e===void 0?t&&Math.abs(r-n)<=o[a]:e!==null&&r-e.end<=o[a]}function Gm(n){let{buffered:e,currentTime:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}=n;return{buffered:e,position:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}}function ob({previousObservation:n,currentObservation:e,basePosition:t,observationEvent:r,withMediaSource:i,lowLatencyMode:o,bufferGap:a,currentRange:s}){let{REBUFFERING_GAP:d}=U.getCurrent(),{position:u,duration:l,paused:c,readyState:f,ended:g}=e,{rebuffering:p,event:I,position:y}=n,b=ib(t,s,g,l,o),T=f>=1&&r!=="loadedmetadata"&&p===null&&!(b||g),v=null,E,R,k=o?d.LOW_LATENCY:d.DEFAULT;if(i){if(T)a===1/0?(E=!0,v=t):a===void 0?f<3&&(E=!0,v=void 0):a<=k&&(E=!0,v=t+a);else if(p!==null){let x=Wm(p,o);E!==!0&&p!==null&&f>1&&(b||g||a!==void 0&&isFinite(a)&&a>x)||a===void 0&&f>=3?R=!0:a===void 0?v=void 0:a===1/0?v=t:a<=x&&(v=t+a)}}else T&&(!c&&r==="timeupdate"&&I==="timeupdate"&&u===y.getPolled()||r==="seeking"&&(a===1/0||a===void 0&&f<3))?E=!0:p!==null&&(r!=="seeking"&&u!==y.getPolled()||r==="canplay"||a===void 0&&f>=3||a!==void 0&&a<1/0&&(a>Wm(p,o)||b||g))&&(R=!0);if(R===!0)return null;if(E===!0||p!==null){let x;return r==="seeking"||p!==null&&p.reason==="seeking"||e.seeking?x="seeking":f===1?x="not-ready":x="buffering",p!==null&&p.reason===x?{reason:p.reason,timestamp:p.timestamp,position:v}:{reason:x,timestamp:K(),position:v}}return null}function ab(n,e,t,r){let{MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:i}=U.getCurrent();return n.freezing?e.ended||e.paused||e.readyState===0||e.playbackRate===0||n.position.getPolled()!==e.position?null:n.freezing:t==="timeupdate"&&r!==void 0&&r>i&&!e.ended&&!e.paused&&e.readyState>=1&&e.playbackRate!==0&&e.position===n.position.getPolled()?{timestamp:K()}:null}function sb(n,e){let t="",r="";for(let i=0;i<n.length;i++){let o=n.start(i),a=n.end(i),s=o.toFixed(2),d=a.toFixed(2),u=(a-o).toFixed(2),l=`${s}|==${u}==|${d}`;if(t+=l,r.length===0&&a>e){let c=t.length-Math.floor(l.length/2);r=" ".repeat(c)+`^${e}`}if(i<n.length-1){let c=n.start(i+1),g=` ~${(c-a).toFixed(2)}~ `;if(t+=g,r.length===0&&e<c){let p=t.length-Math.floor(g.length/2);r=" ".repeat(p)+`^${e}`}}}return r.length===0&&(r=" ".repeat(t.length)+`^${e}`),t+`
|
|
17
|
+
`+r}function db(n){let e=Gm(n);return j(e,{rebuffering:null,event:"init",seeking:0,position:new Yn(e.position,null),freezing:null,bufferGap:0,currentRange:null})}var so=class extends oe{constructor(e){super(),this._canceller=new B,this._adaptationRef=e,this._updateToken=!1,this._lastEmitted=void 0,this.refresh=X}hasSetTrack(){return this._adaptationRef.getValue()!==void 0}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new B,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new B;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new G({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(c=>c.isSupported===!0&&c.decipherable!==!1),s="lazy";else{let{representationIds:c}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(g=>Q(c,g.id)).filter(g=>g.isSupported===!0&&g.decipherable!==!1),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),l=d.map(c=>c.id).slice().sort();if(l.length!==u.representationIds.length){t.setValue({representationIds:l,switchingMode:s});return}for(let c=0;c<l.length;c++)if(u.representationIds[c]!==l[c]){t.setValue({representationIds:l,switchingMode:s});return}}function o(){r.refresh=X}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var uo=class extends oe{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:U.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(Nt(t.period)),e),[])}onManifestCodecSupportUpdate(){this._selectInitialTrackIfNeeded()}onManifestUpdate(e){var a,s,d,u,l,c;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:t}=U.getCurrent(),{periods:r}=e;if(h.CURRENT_ENV===h.DEV)for(let f=1;f<r.length;f++)J(r[f-1].start<=r[f].start);let i=[],o=0;for(let f=0;f<this._storedPeriodInfo.length;f++){let g=this._storedPeriodInfo[f].period,p=r[o];if(p===void 0)for(let I=this._storedPeriodInfo.length-1;I>=f;I--)this._storedPeriodInfo[I].inManifest=!1,Pl(this._storedPeriodInfo[I])&&this._removePeriodObject(I);else if(g===p){o++;let I=this._storedPeriodInfo[f].text.storedSettings;if(!_(I)&&!mt(p,"text").some(E=>E.id===I.adaptation.id)){m.warn("TS: Chosen text Adaptation not available anymore");let E=this._storedPeriodInfo[f];if(E.text.storedSettings=null,this.trigger("trackUpdate",{period:Nt(p),trackType:"text",reason:"missing"}),this._isDisposed)return;let R=ut(this._storedPeriodInfo,E.period.id);R!==void 0&&R.isPeriodAdvertised&&R.text.storedSettings===null&&((a=R.text.dispatcher)==null||a.updateTrack(null))}let y=this._storedPeriodInfo[f].video.storedSettings;if(!_(y)){let T=mt(p,"video");if(!T.some(E=>E.id===y.adaptation.id)){m.warn("TS: Chosen video Adaptation not available anymore");let E=this._storedPeriodInfo[f],R;if(T.length===0)R=null;else{let x=T[0],M=wa(x,this._isTrickModeTrackEnabled),A=new G(null);R={adaptationBase:x,adaptation:M,switchingMode:t,lockedRepresentations:A}}if(E.video.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"video",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.video.storedSettings===R&&((s=k.video.dispatcher)==null||s.updateTrack(R))}}let b=this._storedPeriodInfo[f].audio.storedSettings;if(!_(b)){let T=mt(p,"audio");if(!T.some(E=>E.id===b.adaptation.id)){m.warn("TS: Chosen audio Adaptation not available anymore");let E=this._storedPeriodInfo[f],R=T.length===0?null:{adaptation:T[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};if(E.audio.storedSettings=R,this.trigger("trackUpdate",{period:Nt(p),trackType:"audio",reason:"missing"}),this._isDisposed)return;let k=ut(this._storedPeriodInfo,E.period.id);k!==void 0&&k.isPeriodAdvertised&&k.audio.storedSettings===R&&((d=k.audio.dispatcher)==null||d.updateTrack(R))}}}else if(g.start<=p.start)this._storedPeriodInfo[f].inManifest=!1,Pl(this._storedPeriodInfo[f])&&(this._removePeriodObject(f),f--);else{let I=Ml(p,!0);this._storedPeriodInfo.splice(f,0,I),i.push(I),o++}}if(o<r.length){let f=r.slice(o).map(g=>Ml(g,!0));this._storedPeriodInfo.push(...f),i.push(...f)}for(let f of this._storedPeriodInfo)(u=f.audio.dispatcher)==null||u.refresh(),(l=f.video.dispatcher)==null||l.refresh(),(c=f.text.dispatcher)==null||c.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}addTrackReference(e,t,r){let i=ut(this._storedPeriodInfo,t.id);if(i===void 0){i=Ml(t,!1);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}if(i[e].dispatcher!==null){m.error(`TS: Subject already added for ${e} and Period ${t.start}`);return}let o=new so(r);if(i[e].dispatcher=o,o.addEventListener("noPlayableRepresentation",()=>{var c,f,g,p;let s=Z((c=t.adaptations[e])!=null?c:[],I=>I.supportStatus.hasSupportedCodec===!1||I.supportStatus.isDecipherable===!1?!1:I.representations.filter(b=>b.isSupported===!0&&b.decipherable!==!1).length>0);if(s===void 0){let I=new ee("NO_PLAYABLE_REPRESENTATION",`No ${e} Representation can be played`,{tracks:void 0});this.trigger("error",I),this.dispose();return}let d=(f=ut(this._storedPeriodInfo,t.id))==null?void 0:f[e];if(_(d))return;let u=e==="audio"?this._defaultAudioTrackSwitchingMode:"reload",l={adaptation:s,switchingMode:u,lockedRepresentations:new G(null)};d.storedSettings=l,this.trigger("trackUpdate",{period:Nt(t),trackType:e,reason:"no-playable-representation"}),!this._isDisposed&&(d=(g=ut(this._storedPeriodInfo,t.id))==null?void 0:g[e],!(_(d)||d.storedSettings!==l)&&((p=d.dispatcher)==null||p.updateTrack(l)))}),o.addEventListener("noPlayableLockedRepresentation",()=>{i!==void 0&&(this.unlockVideoRepresentations(i),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e}))}),this._selectInitialTrackIfNeeded(),this._shouldAdvertisePeriod(i)&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;let a=["audio","video","text"];for(let s of a){let d=i[s];if(i.isPeriodAdvertised&&d.dispatcher!==null&&!d.dispatcher.hasSetTrack()&&d.storedSettings!==void 0&&d.dispatcher.updateTrack(d.storedSettings),this._isDisposed)return}}removeTrackReference(e,t){let r=ub(this._storedPeriodInfo,t);if(r===void 0){m.warn(`TS: ${e} not found for period`,t.start);return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn(`TS: TrackDispatcher already removed for ${e} and Period ${t.start}`);return}o.dispatcher.dispose(),o.dispatcher=null,Pl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=ut(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return ut(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var g,p;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Z((g=s.adaptations[e])!=null?g:[],({id:I,supportStatus:y})=>y.hasSupportedCodec!==!1&&y.isDecipherable!==!1&&I===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],l;if(o===null)l=new G(null);else{let I=this._getRepresentationsToLock(d,o),y=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";l=new G({representationIds:I,switchingMode:y})}let c={adaptation:d,switchingMode:i,lockedRepresentations:l,relativeResumingPosition:a};if(u.storedSettings=c,this.trigger("trackUpdate",{period:Nt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=ut(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===c&&((p=f[e].dispatcher)==null||p.updateTrack(c))}setVideoTrack(e){var I,y;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Z((I=s.adaptations.video)!=null?I:[],({id:b,supportStatus:T})=>T.isDecipherable!==!1&&T.hasSupportedCodec!==!1&&b===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=U.getCurrent(),l=t.video,c=wa(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new G(null);else{let b=this._getRepresentationsToLock(d,o),T=u;f=new G({representationIds:b,switchingMode:T})}let g={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:c,relativeResumingPosition:a,lockedRepresentations:f};if(l.storedSettings=g,this.trigger("trackUpdate",{period:Nt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let p=ut(this._storedPeriodInfo,s.id);p!==void 0&&p.video.storedSettings===g&&((y=p.video.dispatcher)==null||y.updateTrack(g))}disableTrack(e,t){var o,a;if(!e.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:Nt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=ut(this._storedPeriodInfo,e.period.id);i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null))}getChosenAudioTrack(e,t){return _(e.audio.storedSettings)?null:jo(e.audio.storedSettings.adaptation,t)}getChosenTextTrack(e){return _(e.text.storedSettings)?null:Yo(e.text.storedSettings.adaptation)}getChosenVideoTrack(e,t){return _(e.video.storedSettings)?null:$o(e.video.storedSettings.adaptation,t)}getAvailableAudioTracks(e,t){let r=e.audio.storedSettings,i=_(r)?null:r.adaptation.id;return mt(e.period,"audio").map(a=>{let s=i===null?!1:i===a.id;return j(jo(a,t),{active:s})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=_(t)?null:t.adaptation.id;return mt(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return j(Yo(o),{active:a})})}getAvailableVideoTracks(e,t){let r=e.video.storedSettings,i=_(r)?void 0:r.adaptation.id;return mt(e.period,"video").map(a=>{let s=i===null?!1:i===a.id,d=$o(a,t),u=d.trickModeTracks!==void 0?d.trickModeTracks.map(c=>{let f=i===null?!1:i===c.id;return j(c,{active:f})}):[],l=j(d,{active:s});return u!==void 0&&(l.trickModeTracks=u),l})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(_(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(_(r))return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(_(r))return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=U.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;_(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(!_(o.video.storedSettings)){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=wa(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(s!==void 0){if(this.trigger("trackUpdate",{period:Nt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=ut(this._storedPeriodInfo,o.id);d!==void 0&&d.isPeriodAdvertised&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}}_removePeriodObject(e){h.CURRENT_ENV===h.DEV&&J(e<this._storedPeriodInfo.length,"Invalid index for Period removal");let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=Z(e.representations,s=>s.id===o);return a===void 0?m.warn("API: Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}_selectInitialTrackIfNeeded(){var i,o,a,s;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:e}=U.getCurrent(),t=[],r=[];for(let d of this._storedPeriodInfo){let{period:u}=d;if(d.audio.storedSettings!==void 0&&d.video.storedSettings!==void 0&&d.text.storedSettings!==void 0)continue;let l=[...(i=u.adaptations.audio)!=null?i:[],...(o=u.adaptations.video)!=null?o:[]],c=l.every(b=>b.supportStatus.hasCodecWithUndefinedSupport);if(l.length>0&&c)continue;let f=mt(u,"audio")[0];d.audio.storedSettings=f===void 0?null:{adaptation:f,switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new G(null)};let g=mt(u,"video")[0],p=wa(g,this._isTrickModeTrackEnabled);d.video.storedSettings=p===void 0?null:{adaptation:p,adaptationBase:g,switchingMode:e,lockedRepresentations:new G(null)};let I=null,y=((a=u.adaptations.text)!=null?a:[]).filter(b=>b.isForcedSubtitles===!0);if(y.length>0){if(f!=null){let b=Z(y,T=>T.normalizedLanguage===f.normalizedLanguage);b!==void 0&&(I=b)}I===null&&(I=(s=Z(y,b=>b.normalizedLanguage===void 0))!=null?s:null)}d.text.storedSettings=I===null?null:{adaptation:I,switchingMode:"direct",lockedRepresentations:new G(null)},r.push(d),this._shouldAdvertisePeriod(d)&&(d.isPeriodAdvertised=!0,t.push({id:u.id,start:u.start,end:u.end}))}if(!(t.length>0&&(this.trigger("newAvailablePeriods",t),this._isDisposed)))for(let d of r){if(!d.isPeriodAdvertised)continue;let u=["audio","video","text"];for(let l of u){let c=d[l];if(c.dispatcher!==null&&c.storedSettings!==void 0&&!c.dispatcher.hasSetTrack()&&(c.dispatcher.updateTrack(c.storedSettings),this._isDisposed))return}}}_shouldAdvertisePeriod(e){return!e.isPeriodAdvertised&&e.text.dispatcher!==null&&e.video.dispatcher!==null&&e.audio.dispatcher!==null}};function ub(n,e){for(let t=0;t<n.length;t++)if(n[t].period.id===e.id)return t}function ut(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function Pl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function wa(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function Ml(n,e){return{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:void 0,dispatcher:null},video:{storedSettings:void 0,dispatcher:null},text:{storedSettings:void 0,dispatcher:null}}}function Nt(n){return{start:n.start,end:n.end,id:n.id}}var qm=uo;function jm(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:l,DEFAULT_MAX_VIDEO_BUFFER_SIZE:c,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:g}=U.getCurrent();if(_(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(_(n.maxBufferBehind))t=l;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(_(n.wantedBufferAhead))r=g;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(_(n.maxVideoBufferSize))i=c;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let p=_(n.videoResolutionLimit)?d:n.videoResolutionLimit,I=_(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(_(n.videoElement))o=document.createElement("video");else if(n.videoElement.nodeName.toLowerCase()==="video"||n.videoElement.nodeName.toLowerCase()==="audio")o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(_(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:p,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:I,baseBandwidth:a}}function Ym(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function $m(n){var E,R,k;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:l,DEFAULT_TEXT_TRACK_MODE:c}=U.getCurrent();if(_(n))throw new Error("No option set on loadVideo");if(!_(n.url))e=String(n.url);else if(_(n.initialManifest)&&_(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(_(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let f=_(n.autoPlay)?d:!!n.autoPlay;if(_(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let x of r)if(typeof x.type!="string"||typeof x.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let g=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,p=n.initialManifest,I=(E=n.minimumManifestUpdateInterval)!=null?E:0,y=(R=n.defaultAudioTrackSwitchingMode)!=null?R:void 0;y!==void 0&&!Q(["seamless","direct","reload"],y)&&(m.warn("The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),y=void 0);let b=_(n.onCodecSwitch)?u:n.onCodecSwitch;if(Q(["continue","reload"],b)||(m.warn("The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),b=u),_(n.textTrackMode))i=c;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(_(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else _(n.textTrackElement)||m.warn('API: You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(_(n.mode))o="auto";else{if(!Q(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let T=_(n.enableFastSwitching)?l:n.enableFastSwitching;if(!_(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let x=n.startAt.wallClockTime.getTime()/1e3;s=j({},n.startAt,{wallClockTime:x})}else s=n.startAt;let v=(k=n.requestConfig)!=null?k:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,checkManifestIntegrity:n.checkManifestIntegrity,autoPlay:f,defaultAudioTrackSwitchingMode:y,enableFastSwitching:T,initialManifest:p,keySystems:r,lowLatencyMode:g,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:I,requestConfig:v,onCodecSwitch:b,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e,cmcd:n.cmcd}}function Qm(n,e,t,r,i){if(i.isCancelled()||n===null)return;let o=e.getReference().getValue().seeking===2;o&&(t(),i.isCancelled())||e.listen(a=>{a.event==="seeking"?(o=!0,t()):o&&a.event==="seeked"&&(o=!1,r())},{includeLastObservation:!0,clearSignal:i})}function Xm(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Zm(n,e,t,r){let i=new G("LOADING",r);n.addEventListener("loaded",()=>{if(i.getValue()==="LOADING"){if(i.setValue("LOADED"),!r.isCancelled()){let s=Al(e,null);s!=="PAUSED"&&i.setValue(s)}}else i.getValue()==="RELOADING"?i.setValue(Al(e,null)):a(null)},r),n.addEventListener("reloadingMediaSource",()=>{ir(i.getValue())&&i.setValueIfChanged("RELOADING")},r);let o=null;return n.addEventListener("stalled",s=>{s!==o&&(a(s),o=s)},r),n.addEventListener("unstalled",()=>{o!==null&&(a(null),o=null)},r),t.listen(s=>{Q(["seeking","ended","play","pause"],s.event)&&a(o)},{clearSignal:r}),i;function a(s){if(!ir(i.getValue()))return;let d=Al(e,s);i.getValue()==="LOADED"&&d==="PAUSED"||i.setValueIfChanged(d)}}function Al(n,e){let{FORCED_ENDED_THRESHOLD:t}=U.getCurrent();if(n.ended)return"ENDED";if(e!==null){let r=Math.abs(n.duration-n.currentTime);return!_(t)&&r<t?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function ir(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var lb=Je(),cb=["manifestLoader","segmentLoader"],Ut=class Ut extends oe{static get ErrorTypes(){return Ze}static get ErrorCodes(){return ts}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e,m.getFormat())}static get LogFormat(){return m.getFormat()}static set LogFormat(e){m.setLevel(m.getLevel(),e)}static addFeatures(e){na(e)}static _priv_registerVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
|
|
18
|
+
Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Ut._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Ut._priv_currentlyUsedVideoElements.has(e)&&Ut._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=jm(e);s.preload="auto",this.version="4.2.0-dev.2024091000",this.log=m,this.state="STOPPED",this.videoElement=s,Ut._priv_registerVideoElement(this.videoElement);let l=new B;this._destroyCanceller=l,this._priv_pictureInPictureRef=ac(s,l.signal),this._priv_speed=new G(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new G(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new G(d,this._destroyCanceller.signal),maxBufferAhead:new G(i,this._destroyCanceller.signal),maxBufferBehind:new G(o,this._destroyCanceller.signal),maxVideoBufferSize:new G(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null,this._priv_segmentSinkMetricsCallback=null;let c=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",c),l.signal.register(()=>{s.removeEventListener("volumechange",c)})}attachWorker(e){return new Promise((t,r)=>{var o;if(!kl())return m.warn("API: Cannot rely on a WebWorker: Worker API unavailable"),r(new xn("INCOMPATIBLE_ERROR","Worker unavailable"));if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let a=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(a),URL.revokeObjectURL(a)}this._priv_worker.onerror=a=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API: Unexpected worker error",a.error instanceof Error?a.error:void 0),r(new xn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=a=>{let s=a.data;s.type==="init-error"?(m.warn("API: Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new xn("SETUP_ERROR","Worker parser initialization failed: "+s.value.errorMessage))):s.type==="init-success"&&(m.info("API: InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("---> Sending To Worker:","init"),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),logFormat:m.getFormat(),sendBackLogs:wn(),date:Date.now(),timestamp:K(),hasVideo:((o=this.videoElement)==null?void 0:o.nodeName.toLowerCase())==="video",hasMseInWorker:Vf}}),m.addEventListener("onLogLevelChange",a=>{this._priv_worker!==null&&(m.debug("---> Sending To Worker:","log-level-update"),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:a.level,logFormat:a.format,sendBackLogs:wn()}}))},this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Ut._priv_deregisterVideoElement(this.videoElement),Dn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API: Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=$m(e);m.info("API: Calling loadvideo",t.url,t.transport),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var l,c,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Ym(e);let a;if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.position)!==void 0)a={position:e.reloadAt.position};else if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=de(ie({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(me.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new B;return me.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}_priv_initializeContentPlayback(e){var H,V,ae,se,le,Se;let{autoPlay:t,cmcd:r,defaultAudioTrackSwitchingMode:i,enableFastSwitching:o,initialManifest:a,keySystems:s,lowLatencyMode:d,minimumManifestUpdateInterval:u,requestConfig:l,onCodecSwitch:c,startAt:f,transport:g,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:y,referenceDateTime:b,segmentLoader:T,serverSyncInfos:v,mode:E,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k,url:x}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let M=g==="directfile",A=new B,L=this.videoElement,O,F=!1,C=null;if(M){if(me.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(_(x))throw new Error("No URL for a DirectFile content");if(m.info("API: Initializing DirectFile mode in the main thread"),C=this._priv_initializeMediaElementTracksStore(A.signal),A.isUsed())return;O=new me.directfile.initDirectFile({autoPlay:t,keySystems:s,speed:this._priv_speed,startAt:f,url:x})}else{let Y={lowLatencyMode:d,maxRetry:(H=l.manifest)==null?void 0:H.maxRetry,requestTimeout:(V=l.manifest)==null?void 0:V.timeout,connectionTimeout:(ae=l.manifest)==null?void 0:ae.connectionTimeout,minimumManifestUpdateInterval:u,initialManifest:a},ce=Rl(),ye={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ce?ye.throttleBitrate={video:on(sc(this._priv_pictureInPictureRef,A.signal),Oe=>Oe?1/0:0,A.signal)}:m.warn("API: Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ce?ye.limitResolution={video:uc(L,this._priv_pictureInPictureRef,A.signal)}:m.warn("API: Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&(ye.limitResolution={video:dc(A.signal)});let Bt={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:d,throttlers:ye},$e=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},Ue=j({enableFastSwitching:o,onCodecSwitch:c},this._priv_bufferOptions),Tt={lowLatencyMode:d,maxRetry:(se=l.segment)==null?void 0:se.maxRetry,requestTimeout:(le=l.segment)==null?void 0:le.timeout,connectionTimeout:(Se=l.segment)==null?void 0:Se.connectionTimeout},ht=me.multithread!==null&&this._priv_worker!==null&&g==="dash"&&cb.every(Oe=>_(e[Oe]))&&typeof e.representationFilter!="function";if(E==="main"||E==="auto"&&!ht){if(me.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Oe=me.transports[g];if(typeof Oe!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${g}" not supported`);let ep=typeof e.representationFilter=="string"?jc(e.representationFilter):e.representationFilter;m.info("API: Initializing MediaSource mode in the main thread");let tp=Oe({lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,manifestLoader:y,referenceDateTime:b,representationFilter:ep,segmentLoader:T,serverSyncInfos:v,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k});O=new me.mainThreadMediaSourceInit({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transport:tp,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,url:x})}else{if(me.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");J(typeof e.representationFilter!="function"),F=!0,m.info("API: Initializing MediaSource mode in a WebWorker");let Oe={lowLatencyMode:d,checkMediaSegmentIntegrity:p,checkManifestIntegrity:I,referenceDateTime:b,serverSyncInfos:v,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:R,__priv_patchLastSegmentInSidx:k};O=new me.multithread.init({adaptiveOptions:Bt,autoPlay:t,bufferOptions:Ue,cmcd:r,keySystems:s,lowLatencyMode:d,transportOptions:Oe,manifestRequestSettings:Y,segmentRequestOptions:Tt,speed:this._priv_speed,startAt:f,textTrackOptions:$e,worker:this._priv_worker,url:x})}}let P={contentId:lb(),originalUrl:x,currentContentCanceller:A,defaultAudioTrackSwitchingMode:i,initializer:O,isDirectFile:M,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:C,useWorker:F};O.addEventListener("error",Y=>{this._priv_onFatalError(Y,P)}),O.addEventListener("warning",Y=>{let ce=we(Y,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API: Sending warning:",ce),this.trigger("warning",ce)}),O.addEventListener("reloadingMediaSource",Y=>{P.tracksStore!==null&&P.tracksStore.resetPeriodObjects(),this._priv_segmentSinkMetricsCallback=null,this._priv_lastAutoPlay=Y.autoPlay}),O.addEventListener("inbandEvents",Y=>this.trigger("inbandEvents",Y)),O.addEventListener("streamEvent",Y=>this.trigger("streamEvent",Y)),O.addEventListener("streamEventSkip",Y=>this.trigger("streamEventSkip",Y)),O.addEventListener("activePeriodChanged",Y=>this._priv_onActivePeriodChanged(P,Y)),O.addEventListener("periodStreamReady",Y=>this._priv_onPeriodStreamReady(P,Y)),O.addEventListener("periodStreamCleared",Y=>this._priv_onPeriodStreamCleared(P,Y)),O.addEventListener("representationChange",Y=>this._priv_onRepresentationChange(P,Y)),O.addEventListener("adaptationChange",Y=>this._priv_onAdaptationChange(P,Y)),O.addEventListener("bitrateEstimateChange",Y=>this._priv_onBitrateEstimateChange(Y)),O.addEventListener("manifestReady",Y=>this._priv_onManifestReady(P,Y)),O.addEventListener("manifestUpdate",Y=>this._priv_onManifestUpdate(P,Y)),O.addEventListener("codecSupportUpdate",()=>this._priv_onCodecSupportUpdate(P)),O.addEventListener("decipherabilityUpdate",Y=>this._priv_onDecipherabilityUpdate(P,Y)),O.addEventListener("loaded",Y=>{this._priv_segmentSinkMetricsCallback=Y.getSegmentSinkMetrics}),O.prepare(),this.stop();let D=new ao(L,{withMediaSource:!M,lowLatencyMode:d});A.signal.register(()=>{D.stop()});let N=Zm(O,L,D,A.signal);A.signal.register(()=>{O.dispose()});let z=Y=>{switch(Y){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=D.getReference().getValue().position.getPolled();break;default:{let ce=D.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ce.paused,this._priv_reloadingMetadata.reloadPosition=ce.position.getWanted();break}}},$=null,q=Y=>{$!==null&&($.cancel(),$=null),N.onUpdate((ce,ye)=>{ir(ce)&&(ye(),$!==null&&$.cancel(),$=new B,$.linkToSignal(A.signal),Y!==!L.paused&&(L.paused?this.trigger("pause",null):this.trigger("play",null)),Xm(L,()=>this.trigger("play",null),()=>this.trigger("pause",null),A.signal))},{emitCurrentValue:!1,clearSignal:A.signal})};q(t),O.addEventListener("reloadingMediaSource",Y=>{q(Y.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=P;let W=null;N.onUpdate(Y=>{z(Y),this._priv_setPlayerState(Y),!A.isUsed()&&(W!==null?ir(this.state)||(W.cancel(),W=null):ir(this.state)&&(W=new B,W.linkToSignal(A.signal),Qm(L,D,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),W.signal)))},{emitCurrentValue:!0,clearSignal:A.signal}),D.listen(Y=>{z(this.state),this._priv_triggerPositionUpdate(P,Y)},{clearSignal:A.signal}),A.signal.register(()=>{O.removeEventListener()}),this._priv_contentLock.onUpdate((Y,ce)=>{Y||(ce(),O.start(L,D))},{emitCurrentValue:!0,clearSignal:A.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!Q(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return Q(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement?Q(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=Wl(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){var r;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let i=oo(this.videoElement);return(i!=null?i:0)+this.videoElement.currentTime}if(t!==null){let i=this.videoElement.currentTime,o=(r=t.availabilityStartTime)!=null?r:0;return i+o}return 0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;_(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.video}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return e.audio}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return _(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new ee("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos;if(!t&&r===null)throw new Error("player: the content did not load yet");let i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!_(a.relative))i=s+a.relative;else if(!_(a.position))i=a.position;else{if(_(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t&&this.videoElement!==null){let d=oo(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API: API Seek to",i),this.videoElement.currentTime=i,i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return _(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Vn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableAudioTracks())!=null?a:[];let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var l;return(l=d.getAvailableAudioTracks(u,o))!=null?l:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableVideoTracks())!=null?a:[];let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var l;return(l=d.getAvailableVideoTracks(u,o))!=null?l:[]})}getAudioTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenAudioTrack();let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenAudioTrack(d,o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenVideoTrack();let i,o;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenVideoTrack(d,o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let l=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(l);return}catch(l){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(l,c)=>l.setAudioTrack({periodRef:c,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let l=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(l);return}catch(l){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(l,c)=>l.setVideoTrack({periodRef:c,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?yn(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:In(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:bt(t):null}async __priv_getSegmentSinkMetrics(){if(this._priv_segmentSinkMetricsCallback!==null)return this._priv_segmentSinkMetricsCallback()}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||_(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_segmentSinkMetricsCallback=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};_(this.videoElement)?e():To(this.videoElement).then(()=>{m.debug("API: DRM session cleaned-up with success!"),e()},a=>{m.error("API: An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new qm({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),e.tracksStore.addEventListener("warning",o=>{this.trigger("warning",o)}),e.tracksStore.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),e.tracksStore.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||_(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onCodecSupportUpdate(e){let t=e==null?void 0:e.tracksStore;_(t)||t.onManifestCodecSupportUpdate()}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;_(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(Z(i,l=>l[0].id===o.period.id&&l[1]===o.adaptation.type)!==void 0)){let l=e.tracksStore;if(l===null)return i;let c=!1,f=l.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":c=((s=l.getChosenAudioTrack(f,!1))==null?void 0:s.id)===o.adaptation.id;break;case"video":c=((d=l.getChosenVideoTrack(f,!1))==null?void 0:d.id)===o.adaptation.id;break;case"text":c=((u=l.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}c&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,l,c,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(_(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let g=i.getPeriodObjectFromPeriod(t);if(g){let p=i.getChosenAudioTrack(g,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",p,r);let I=i.getChosenTextTrack(g);this._priv_triggerEventIfNotStopped("textTrackChange",I,r);let y=i.getChosenVideoTrack(g,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",y,r)}}let o=(l=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?l:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",o,r);let a=(f=(c=this.__priv_getCurrentRepresentations())==null?void 0:c.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",a,r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":_(a)?(m.error(`API: TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:Qe(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,period:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":_(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!_(a)&&!_(a[i.id])){let u=a[i.id];delete u[r],Object.keys(u).length===0&&delete a[i.id]}if(!_(s)&&!_(s[i.id])){let u=s[i.id];delete u[r],Object.keys(u).length===0&&delete s[i.id]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var l;if(e.contentId!==((l=this._priv_contentInfos)==null?void 0:l.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];_(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!_(i)&&i.id===a.id){let c=d.getPeriodObjectFromPeriod(i);if(c===void 0)return;switch(t){case"audio":{let f=d.getChosenAudioTrack(c,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break}case"text":{let f=d.getChosenTextTrack(c);this._priv_triggerEventIfNotStopped("textTrackChange",f,u);break}case"video":{let f=d.getChosenVideoTrack(c,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",f,u);break}}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(_(s)?o[r.id]={[t]:i}:s[t]=i,!_(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",i,u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",i,u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API: playerStateChange event",e),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||_(t))return;let o=i!==null?bt(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let l=In(i);l!==void 0&&(a.liveGap=l-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=oo(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;J(me.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),J(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new me.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API: Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(_(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":{let u=o.getAvailableVideoTracks(d,!0);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break}case"audio":{let u=o.getAvailableAudioTracks(d,!0);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",u!=null?u:[],s);break}case"text":{let u=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",u!=null?u:[],s);break}default:Qe(e)}}_priv_onFatalError(e,t){let r=we(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API: The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Ut._priv_currentlyUsedVideoElements=new WeakSet;var Oa=Ut;Oa.version="4.2.0-dev.2024091000";var Jm=Oa;var xl=Jm;Da();xl.addFeatures([vl,uu,pu,gu,cl,al,gl,dl,Wu,Su,nl,Eu]);wn()?m.setLevel("DEBUG","standard"):h.CURRENT_ENV===h.DEV&&m.setLevel(S.CURRENT_LEVEL,"standard");var Loe=xl;})();
|