@mux/mux-player 1.15.0 → 2.0.0
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/dist/index.cjs.js +681 -496
- package/dist/index.mjs +645 -460
- package/dist/mux-player.js +670 -485
- package/dist/mux-player.mjs +670 -485
- package/dist/themes/gerwig/index.cjs.js +9 -7
- package/dist/themes/gerwig/index.js +9 -7
- package/dist/themes/gerwig/index.mjs +9 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types-ts3.4/index.d.ts +1 -1
- package/package.json +2 -2
package/dist/mux-player.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";(()=>{var hb=Object.create;var am=Object.defineProperty;var fb=Object.getOwnPropertyDescriptor;var mb=Object.getOwnPropertyNames;var pb=Object.getPrototypeOf,gb=Object.prototype.hasOwnProperty;var vb=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Eb=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of mb(e))!gb.call(r,s)&&s!==t&&am(r,s,{get:()=>e[s],enumerable:!(i=fb(e,s))||i.enumerable});return r};var bb=(r,e,t)=>(t=r!=null?hb(pb(r)):{},Eb(e||!r||!r.__esModule?am(t,"default",{value:r,enumerable:!0}):t,r));var Ad=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var Ne=(r,e,t)=>(Ad(r,e,"read from private field"),t?t.call(r):e.get(r)),ut=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ii=(r,e,t,i)=>(Ad(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t);var bt=(r,e,t)=>(Ad(r,e,"access private method"),t);var Jp=vb((el,ru)=>{(function(){var r,e;r=this,e=function(){return function(){var t={80:function(n,a,o){n.exports=o(728).default},728:function(n,a,o){"use strict";o.d(a,{default:function(){return lb}});var l=o(48),d=o.n(l),c=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(v){var m=16*Math.random()|0;return(v==="x"?m:3&m|8).toString(16)})},u=function(){return("000000"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6)},h=function(v){return v&&v.nodeName!==void 0?(v.muxId||(v.muxId=v.id||u()),v.muxId):v},f=function(v){var m;v&&v.nodeName!==void 0?v=h(m=v):m=document.querySelector(v);var p=m&&m.nodeName?m.nodeName.toLowerCase():"";return[m,v,p]},g=o(640),E=o.n(g),T=E().methodFactory;E().methodFactory=function(v,m,p){var y=T(v,m,p);return function(){for(var _=["[mux]"],I=0;I<arguments.length;I++)_.push(arguments[I]);y.apply(void 0,_)}},E().setLevel(E().getLevel());var A=E();function k(){return(d().doNotTrack||d().navigator&&d().navigator.doNotTrack)==="1"}var L={now:function(){var v=d().performance,m=v&&v.timing,p=m&&m.navigationStart,y=typeof p=="number"&&typeof v.now=="function"?p+v.now():Date.now();return Math.round(y)}},N=function(v){return D(v)[0]},D=function(v){if(typeof v!="string"||v==="")return["localhost"];var m,p=(v.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/)||[])[4];return p&&(m=(p.match(/[^\.]+\.[^\.]+$/)||[])[0]),[p,m]},$={exists:function(){var v=d().performance;return(v&&v.timing)!==void 0},domContentLoadedEventEnd:function(){var v=d().performance,m=v&&v.timing;return m&&m.domContentLoadedEventEnd},navigationStart:function(){var v=d().performance,m=v&&v.timing;return m&&m.navigationStart}};function O(v,m,p){p=p===void 0?1:p,v[m]=v[m]||0,v[m]+=p}var H=["x-request-id","cf-ray","x-amz-cf-id","x-akamai-request-id"],q=["x-cdn","content-type"].concat(H);function P(v){var m={};return(v=v||"").trim().split(/[\r\n]+/).forEach(function(p){if(p){var y=p.split(": "),_=y.shift();_&&(q.indexOf(_.toLowerCase())>=0||_.toLowerCase().indexOf("x-litix-")===0)&&(m[_]=y.join(": "))}}),m}function X(v){if(v){var m=H.find(function(p){return v[p]!==void 0});return m?v[m]:void 0}}var z=function(v){var m={};for(var p in v){var y=v[p];y["DATA-ID"].search("io.litix.data.")!==-1&&(m[y["DATA-ID"].replace("io.litix.data.","")]=y.VALUE)}return m};function Ae(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function Ee(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Ae(Object(p),!0).forEach(function(y){be(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Ae(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function be(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var we=function(v){if(!v)return{};var m=$.navigationStart(),p=v.loading,y=p?p.start:v.trequest,_=p?p.first:v.tfirst,I=p?p.end:v.tload;return{bytesLoaded:v.total,requestStart:Math.round(m+y),responseStart:Math.round(m+_),responseEnd:Math.round(m+I)}},Se=function(v){if(v&&typeof v.getAllResponseHeaders=="function")return P(v.getAllResponseHeaders())};function Z(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function ne(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Z(Object(p),!0).forEach(function(y){se(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Z(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function se(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var xe=function(v,m){if(!v||typeof v.getRequests!="function")return{};var p=v.getRequests({state:"executed"});if(p.length===0)return{};var y,_=p[p.length-1],I=N(_.url),x=_.url,R=_.bytesLoaded,U=new Date(_.requestStartDate).getTime(),C=new Date(_.firstByteDate).getTime(),K=new Date(_.requestEndDate).getTime(),ve=isNaN(_.duration)?0:_.duration,de=typeof m.getMetricsFor=="function"?m.getMetricsFor(_.mediaType).HttpList:m.getDashMetrics().getHttpRequests(_.mediaType);return de.length>0&&(y=P(de[de.length-1]._responseHeaders||"")),{requestStart:U,requestResponseStart:C,requestResponseEnd:K,requestBytesLoaded:R,requestResponseHeaders:y,requestMediaDuration:ve,requestHostname:I,requestUrl:x,requestId:y?X(y):void 0}},Ie=function(v,m){var p=m.getQualityFor(v),y=m.getCurrentTrackFor(v).bitrateList;return y?{currentLevel:p,renditionWidth:y[p].width||null,renditionHeight:y[p].height||null,renditionBitrate:y[p].bandwidth}:{}},Ve=function(v){var m;return(m=v.match(/.*codecs\*?="(.*)"/))===null||m===void 0?void 0:m[1]};function ht(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var V=0,J=function(){function v(){(function(_,I){if(!(_ instanceof I))throw new TypeError("Cannot call a class as a function")})(this,v)}var m,p,y;return m=v,p=[{key:"on",value:function(_,I,x){return I._eventEmitterGuid=I._eventEmitterGuid||++V,this._listeners=this._listeners||{},this._listeners[_]=this._listeners[_]||[],x&&(I=I.bind(x)),this._listeners[_].push(I),I}},{key:"off",value:function(_,I){var x=this._listeners&&this._listeners[_];x&&x.forEach(function(R,U){R._eventEmitterGuid===I._eventEmitterGuid&&x.splice(U,1)})}},{key:"one",value:function(_,I,x){var R=this;I._eventEmitterGuid=I._eventEmitterGuid||++V;var U=function C(){R.off(_,C),I.apply(x||this,arguments)};U._eventEmitterGuid=I._eventEmitterGuid,this.on(_,U)}},{key:"emit",value:function(_,I){var x=this;if(this._listeners){I=I||{};var R=this._listeners["before*"]||[],U=this._listeners[_]||[],C=this._listeners["after"+_]||[],K=function(ve,de){(ve=ve.slice()).forEach(function(he){he.call(x,{type:_},de)})};K(R,I),K(U,I),K(C,I)}}}],p&&ht(m.prototype,p),y&&ht(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}(),ke=J;function et(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var _t=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._playbackHeartbeatInterval=null,this._playheadShouldBeProgressing=!1,_.on("playing",function(){I._playheadShouldBeProgressing=!0}),_.on("play",this._startPlaybackHeartbeatInterval.bind(this)),_.on("playing",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adbreakstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adplay",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adplaying",this._startPlaybackHeartbeatInterval.bind(this)),_.on("seeking",this._startPlaybackHeartbeatInterval.bind(this)),_.on("devicewake",this._startPlaybackHeartbeatInterval.bind(this)),_.on("viewstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("rebufferstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("pause",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("ended",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("viewend",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("error",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("aderror",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adpause",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adended",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adbreakend",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("seeked",function(){_.data.player_is_paused?I._stopPlaybackHeartbeatInterval():I._startPlaybackHeartbeatInterval()}),_.on("timeupdate",function(){I._playbackHeartbeatInterval!==null&&_.emit("playbackheartbeat")}),_.on("devicesleep",function(x,R){I._playbackHeartbeatInterval!==null&&(d().clearInterval(I._playbackHeartbeatInterval),_.emit("playbackheartbeatend",{viewer_time:R.viewer_time}),I._playbackHeartbeatInterval=null)})}var m,p,y;return m=v,(p=[{key:"_startPlaybackHeartbeatInterval",value:function(){var _=this;this._playbackHeartbeatInterval===null&&(this.pm.emit("playbackheartbeat"),this._playbackHeartbeatInterval=d().setInterval(function(){_.pm.emit("playbackheartbeat")},this.pm.playbackHeartbeatTime))}},{key:"_stopPlaybackHeartbeatInterval",value:function(){this._playheadShouldBeProgressing=!1,this._playbackHeartbeatInterval!==null&&(d().clearInterval(this._playbackHeartbeatInterval),this.pm.emit("playbackheartbeatend"),this._playbackHeartbeatInterval=null)}}])&&et(m.prototype,p),y&&et(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function zt(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function nr(v,m,p){return m&&zt(v.prototype,m),p&&zt(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var Jt=nr(function v(m){var p=this;(function(y,_){if(!(y instanceof _))throw new TypeError("Cannot call a class as a function")})(this,v),m.on("viewinit",function(){p.viewErrored=!1}),m.on("error",function(y,_){try{var I=m.errorTranslator({player_error_code:_.player_error_code,player_error_message:_.player_error_message,player_error_context:_.player_error_context});I?(m.data.player_error_code=I.player_error_code||_.player_error_code,m.data.player_error_message=I.player_error_message||_.player_error_message,m.data.player_error_context=I.player_error_context||_.player_error_context,p.viewErrored=!0):(delete m.data.player_error_code,delete m.data.player_error_message,delete m.data.player_error_context)}catch(x){m.mux.log.warn("Exception in error translator callback.",x),p.viewErrored=!0}})});function _i(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var Ai=function(){function v(_){(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._watchTimeTrackerLastCheckedTime=null,_.on("playbackheartbeat",this._updateWatchTime.bind(this)),_.on("playbackheartbeatend",this._clearWatchTimeState.bind(this))}var m,p,y;return m=v,(p=[{key:"_updateWatchTime",value:function(_,I){var x=I.viewer_time;this._watchTimeTrackerLastCheckedTime===null&&(this._watchTimeTrackerLastCheckedTime=x),O(this.pm.data,"view_watch_time",x-this._watchTimeTrackerLastCheckedTime),this._watchTimeTrackerLastCheckedTime=x}},{key:"_clearWatchTimeState",value:function(_,I){this._updateWatchTime(_,I),this._watchTimeTrackerLastCheckedTime=null}}])&&_i(m.prototype,p),y&&_i(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function ps(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var rn=function(){function v(_){var I=this;(function(U,C){if(!(U instanceof C))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._playbackTimeTrackerLastPlayheadPosition=-1,this._lastTime=L.now(),this._isAdPlaying=!1,this._callbackUpdatePlaybackTime=null;var x=this._startPlaybackTimeTracking.bind(this);_.on("playing",x),_.on("adplaying",x),_.on("seeked",x);var R=this._stopPlaybackTimeTracking.bind(this);_.on("playbackheartbeatend",R),_.on("seeking",R),_.on("adplaying",function(){I._isAdPlaying=!0}),_.on("adended",function(){I._isAdPlaying=!1}),_.on("adpause",function(){I._isAdPlaying=!1}),_.on("adbreakstart",function(){I._isAdPlaying=!1}),_.on("adbreakend",function(){I._isAdPlaying=!1}),_.on("adplay",function(){I._isAdPlaying=!1}),_.on("viewinit",function(){I._playbackTimeTrackerLastPlayheadPosition=-1,I._lastTime=L.now(),I._isAdPlaying=!1,I._callbackUpdatePlaybackTime=null})}var m,p,y;return m=v,(p=[{key:"_startPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime===null&&(this._callbackUpdatePlaybackTime=this._updatePlaybackTime.bind(this),this._playbackTimeTrackerLastPlayheadPosition=this.pm.data.player_playhead_time,this.pm.on("playbackheartbeat",this._callbackUpdatePlaybackTime))}},{key:"_stopPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime&&(this._updatePlaybackTime(),this.pm.off("playbackheartbeat",this._callbackUpdatePlaybackTime),this._callbackUpdatePlaybackTime=null,this._playbackTimeTrackerLastPlayheadPosition=-1)}},{key:"_updatePlaybackTime",value:function(){var _=this.pm.data.player_playhead_time,I=L.now(),x=-1;this._playbackTimeTrackerLastPlayheadPosition>=0&&_>this._playbackTimeTrackerLastPlayheadPosition?x=_-this._playbackTimeTrackerLastPlayheadPosition:this._isAdPlaying&&(x=I-this._lastTime),x>0&&x<=1e3&&O(this.pm.data,"view_content_playback_time",x),this._playbackTimeTrackerLastPlayheadPosition=_,this._lastTime=I}}])&&ps(m.prototype,p),y&&ps(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function ci(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var rt=function(){function v(_){(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_;var I=this._updatePlayheadTime.bind(this);_.on("playbackheartbeat",I),_.on("playbackheartbeatend",I),_.on("timeupdate",I),_.on("destroy",function(){_.off("timeupdate",I)})}var m,p,y;return m=v,(p=[{key:"_updateMaxPlayheadPosition",value:function(){this.pm.data.view_max_playhead_position=this.pm.data.view_max_playhead_position===void 0?this.pm.data.player_playhead_time:Math.max(this.pm.data.view_max_playhead_position,this.pm.data.player_playhead_time)}},{key:"_updatePlayheadTime",value:function(_,I){var x=this,R=function(){x.pm.currentFragmentPDT&&x.pm.currentFragmentStart&&(x.pm.data.player_program_time=x.pm.currentFragmentPDT+x.pm.data.player_playhead_time-x.pm.currentFragmentStart)};if(I&&I.player_playhead_time)this.pm.data.player_playhead_time=I.player_playhead_time,R(),this._updateMaxPlayheadPosition();else if(this.pm.getPlayheadTime){var U=this.pm.getPlayheadTime();U!==void 0&&(this.pm.data.player_playhead_time=U,R(),this._updateMaxPlayheadPosition())}}}])&&ci(m.prototype,p),y&&ci(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Rr(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function sn(v,m,p){return m&&Rr(v.prototype,m),p&&Rr(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var nn=3e5,Ta=sn(function v(m){if(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")}(this,v),!m.disableRebufferTracking){var p,y=function(I,x){_(x),p=void 0},_=function(I){if(p){var x=I.viewer_time-p;O(m.data,"view_rebuffer_duration",x),p=I.viewer_time,m.data.view_rebuffer_duration>nn&&(m.emit("viewend"),m.send("viewend"),m.mux.log.warn("Ending view after rebuffering for longer than ".concat(nn,"ms, future events will be ignored unless a programchange or videochange occurs.")))}m.data.view_watch_time>=0&&m.data.view_rebuffer_count>0&&(m.data.view_rebuffer_frequency=m.data.view_rebuffer_count/m.data.view_watch_time,m.data.view_rebuffer_percentage=m.data.view_rebuffer_duration/m.data.view_watch_time)};m.on("playbackheartbeat",function(I,x){return _(x)}),m.on("rebufferstart",function(I,x){p||(O(m.data,"view_rebuffer_count",1),p=x.viewer_time,m.one("rebufferend",y))}),m.on("viewinit",function(){p=void 0,m.off("rebufferend",y)})}});function an(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var iE=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.disableRebufferTracking||_.disablePlayheadRebufferTracking||(this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null,_.on("playbackheartbeat",this._checkIfRebuffering.bind(this)),_.on("playbackheartbeatend",this._cleanupRebufferTracker.bind(this)),_.on("seeking",function(){I._cleanupRebufferTracker(null,{viewer_time:L.now()})}))}var m,p,y;return m=v,p=[{key:"_checkIfRebuffering",value:function(_,I){if(this.pm.seekingTracker.isSeeking||this.pm.adTracker.isAdBreak||!this.pm.playbackHeartbeat._playheadShouldBeProgressing)this._cleanupRebufferTracker(_,I);else if(this._lastCheckedTime!==null)if(this._lastPlayheadTime===this.pm.data.player_playhead_time){var x=I.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.sustainedRebufferThreshold=="number"&&x>=this.pm.sustainedRebufferThreshold&&(this._rebuffering||(this._rebuffering=!0,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}))),this._lastCheckedTime=I.viewer_time}else this._cleanupRebufferTracker(_,I,!0);else this._prepareRebufferTrackerState(I.viewer_time)}},{key:"_clearRebufferTrackerState",value:function(){this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null}},{key:"_prepareRebufferTrackerState",value:function(_){this._lastCheckedTime=_,this._lastPlayheadTime=this.pm.data.player_playhead_time,this._lastPlayheadTimeUpdatedTime=_}},{key:"_cleanupRebufferTracker",value:function(_,I){var x=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(this._rebuffering)this._rebuffering=!1,this.pm.emit("rebufferend",{viewer_time:I.viewer_time});else{if(this._lastCheckedTime===null)return;var R=this.pm.data.player_playhead_time-this._lastPlayheadTime,U=I.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.minimumRebufferDuration=="number"&&R>0&&U-R>this.pm.minimumRebufferDuration&&(this._lastCheckedTime=null,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}),this.pm.emit("rebufferend",{viewer_time:this._lastPlayheadTimeUpdatedTime+U-R}))}x?this._prepareRebufferTrackerState(I.viewer_time):this._clearRebufferTrackerState()}}],p&&an(m.prototype,p),y&&an(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}(),rE=iE;function wf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var sE=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.on("viewinit",function(){var x=_.data,R=x.view_id;if(!x.view_program_changed){var U=function(C,K){var ve=K.viewer_time;C.type==="playing"&&_.data.view_time_to_first_frame===void 0?I.calculateTimeToFirstFrame(ve||L.now(),R):C.type!=="adplaying"||_.data.view_time_to_first_frame!==void 0&&!I._inPrerollPosition()||I.calculateTimeToFirstFrame(ve||L.now(),R)};_.one("playing",U),_.one("adplaying",U),_.one("viewend",function(){_.off("playing",U),_.off("adplaying",U)})}})}var m,p,y;return m=v,(p=[{key:"_inPrerollPosition",value:function(){return this.pm.data.view_content_playback_time===void 0||this.pm.data.view_content_playback_time<=1e3}},{key:"calculateTimeToFirstFrame",value:function(_,I){I===this.pm.data.view_id&&(this.pm.watchTimeTracker._updateWatchTime(null,{viewer_time:_}),this.pm.data.view_time_to_first_frame=this.pm.data.view_watch_time,(this.pm.data.player_autoplay_on||this.pm.data.video_is_autoplay)&&this.NAVIGATION_START&&(this.pm.data.view_aggregate_startup_time=this.pm.data.view_start+this.pm.data.view_watch_time-this.NAVIGATION_START))}}])&&wf(m.prototype,p),y&&wf(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Df(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function nE(v,m,p){return m&&Df(v.prototype,m),p&&Df(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var aE=nE(function v(m){var p=this;(function(y,_){if(!(y instanceof _))throw new TypeError("Cannot call a class as a function")})(this,v),m.on("viewinit",function(){p._lastPlayheadPosition=-1}),["pause","rebufferstart","seeking","error","adbreakstart","hb"].forEach(function(y){m.on(y,function(){if(p._lastPlayheadPosition>=0&&m.data.player_playhead_time>=0&&p._lastPlayerWidth>=0&&p._lastSourceWidth>0&&p._lastPlayerHeight>=0&&p._lastSourceHeight>0){var _=m.data.player_playhead_time-p._lastPlayheadPosition;if(_<0)return void(p._lastPlayheadPosition=-1);var I=Math.min(p._lastPlayerWidth/p._lastSourceWidth,p._lastPlayerHeight/p._lastSourceHeight),x=Math.max(0,I-1),R=Math.max(0,1-I);m.data.view_max_upscale_percentage=Math.max(m.data.view_max_upscale_percentage||0,x),m.data.view_max_downscale_percentage=Math.max(m.data.view_max_downscale_percentage||0,R),O(m.data,"view_total_content_playback_time",_),O(m.data,"view_total_upscaling",x*_),O(m.data,"view_total_downscaling",R*_)}p._lastPlayheadPosition=-1})}),["playing","hb"].forEach(function(y){m.on(y,function(){p._lastPlayheadPosition=m.data.player_playhead_time,p._lastPlayerWidth=m.data.player_width,p._lastPlayerHeight=m.data.player_height,p._lastSourceWidth=m.data.video_source_width,p._lastSourceHeight=m.data.video_source_height})})});function Cf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function oE(v,m,p){return m&&Cf(v.prototype,m),p&&Cf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var lE=oE(function v(m){var p=this;(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v),this.isSeeking=!1;var y=-1,_=function(){var I=L.now(),x=(m.data.viewer_time||I)-(y||I);O(m.data,"view_seek_duration",x),m.data.view_max_seek_time=Math.max(m.data.view_max_seek_time||0,x),p.isSeeking=!1,y=-1};m.on("seeking",function(I,x){Object.assign(m.data,x),p.isSeeking&&x.viewer_time-y<=2e3?y=x.viewer_time:(p.isSeeking&&_(),p.isSeeking=!0,y=x.viewer_time,O(m.data,"view_seek_count",1),m.send("seeking"))}),m.on("seeked",function(){_()}),m.on("viewend",function(){p.isSeeking&&(_(),m.send("seeked")),p.isSeeking=!1,y=-1})});function Mf(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return Of(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?Of(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Of(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}function Pf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var Nf=function(v,m){v.push(m),v.sort(function(p,y){return p.viewer_time-y.viewer_time})},dE=["adbreakstart","adrequest","adresponse","adplay","adplaying","adpause","adended","adbreakend","aderror","adclicked","adskipped"],cE=function(){function v(_){var I=this;(function(R,U){if(!(R instanceof U))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.on("viewinit",function(){I.isAdBreak=!1,I._currentAdRequestNumber=0,I._currentAdResponseNumber=0,I._adRequests=[],I._adResponses=[],I._adHasPlayed=!1,I._wouldBeNewAdPlay=!0,I._prerollPlayTime=void 0}),dE.forEach(function(R){return _.on(R,I._updateAdData.bind(I))});var x=function(){I.isAdBreak=!1};_.on("adbreakstart",function(){I.isAdBreak=!0}),_.on("play",x),_.on("playing",x),_.on("viewend",x),_.on("adrequest",function(R,U){U=Object.assign({ad_request_id:"generatedAdRequestId"+I._currentAdRequestNumber++},U),Nf(I._adRequests,U),O(_.data,"view_ad_request_count"),I.inPrerollPosition()&&(_.data.view_preroll_requested=!0,I._adHasPlayed||O(_.data,"view_preroll_request_count"))}),_.on("adresponse",function(R,U){U=Object.assign({ad_request_id:"generatedAdRequestId"+I._currentAdResponseNumber++},U),Nf(I._adResponses,U);var C=I.findAdRequest(U.ad_request_id);C&&O(_.data,"view_ad_request_time",Math.max(0,U.viewer_time-C.viewer_time))}),_.on("adplay",function(R,U){I._adHasPlayed=!0,I._wouldBeNewAdPlay&&(I._wouldBeNewAdPlay=!1,O(_.data,"view_ad_played_count")),I.inPrerollPosition()&&!_.data.view_preroll_played&&(_.data.view_preroll_played=!0,I._adRequests.length>0&&(_.data.view_preroll_request_time=Math.max(0,U.viewer_time-I._adRequests[0].viewer_time)),_.data.view_start&&(_.data.view_startup_preroll_request_time=Math.max(0,U.viewer_time-_.data.view_start)),I._prerollPlayTime=U.viewer_time)}),_.on("adplaying",function(R,U){I.inPrerollPosition()&&_.data.view_preroll_load_time===void 0&&I._prerollPlayTime!==void 0&&(_.data.view_preroll_load_time=U.viewer_time-I._prerollPlayTime,_.data.view_startup_preroll_load_time=U.viewer_time-I._prerollPlayTime)}),_.on("adclicked",function(R,U){I._wouldBeNewAdPlay||O(_.data,"view_ad_clicked_count")}),_.on("adskipped",function(R,U){I._wouldBeNewAdPlay||O(_.data,"view_ad_skipped_count")}),_.on("adended",function(){I._wouldBeNewAdPlay=!0}),_.on("aderror",function(){I._wouldBeNewAdPlay=!0})}var m,p,y;return m=v,(p=[{key:"inPrerollPosition",value:function(){return this.pm.data.view_content_playback_time===void 0||this.pm.data.view_content_playback_time<=1e3}},{key:"findAdRequest",value:function(_){for(var I=0;I<this._adRequests.length;I++)if(this._adRequests[I].ad_request_id===_)return this._adRequests[I]}},{key:"_updateAdData",value:function(_,I){if(this.inPrerollPosition()){if(!this.pm.data.view_preroll_ad_tag_hostname&&I.ad_tag_url){var x=Mf(D(I.ad_tag_url),2),R=x[0],U=x[1];this.pm.data.view_preroll_ad_tag_domain=U,this.pm.data.view_preroll_ad_tag_hostname=R}if(!this.pm.data.view_preroll_ad_asset_hostname&&I.ad_asset_url){var C=Mf(D(I.ad_asset_url),2),K=C[0],ve=C[1];this.pm.data.view_preroll_ad_asset_domain=ve,this.pm.data.view_preroll_ad_asset_hostname=K}}this.pm.data.ad_asset_url=I==null?void 0:I.ad_asset_url,this.pm.data.ad_tag_url=I==null?void 0:I.ad_tag_url,this.pm.data.ad_creative_id=I==null?void 0:I.ad_creative_id,this.pm.data.ad_id=I==null?void 0:I.ad_id,this.pm.data.ad_universal_id=I==null?void 0:I.ad_universal_id}}])&&Pf(m.prototype,p),y&&Pf(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Uf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function uE(v,m,p){return m&&Uf(v.prototype,m),p&&Uf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var hE=uE(function v(m){var p,y;(function(R,U){if(!(R instanceof U))throw new TypeError("Cannot call a class as a function")})(this,v);var _=function(){m.disableRebufferTracking||p&&(O(m.data,"view_waiting_rebuffer_duration",L.now()-p),p=!1,d().clearInterval(y))},I=!1,x=function(){I=!1,_()};m.on("waiting",function(){I&&(m.disableRebufferTracking||(O(m.data,"view_waiting_rebuffer_count",1),p=L.now(),y=d().setInterval(function(){if(p){var R=L.now();O(m.data,"view_waiting_rebuffer_duration",R-p),p=R}},250)))}),m.on("playing",function(){_(),I=!0}),m.on("pause",x),m.on("seeking",x)});function Ff(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function fE(v,m,p){return m&&Ff(v.prototype,m),p&&Ff(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var mE=fE(function v(m){var p=this;(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v);var y=function(){p.lastWallClockTime=L.now(),m.on("before*",_)},_=function(I){var x=L.now(),R=p.lastWallClockTime;p.lastWallClockTime=x,x-R>3e4&&(m.emit("devicesleep",{viewer_time:R}),Object.assign(m.data,{viewer_time:R}),m.send("devicesleep"),m.emit("devicewake",{viewer_time:x}),Object.assign(m.data,{viewer_time:x}),m.send("devicewake"))};m.one("playbackheartbeat",y),m.on("playbackheartbeatend",function(){m.off("before*",_),m.one("playbackheartbeat",y)})}),Bf=o(375),pE=o(655),$f=o.n(pE),Gf="muxData",Hf=function(){var v;try{v=Bf.parse($f().get(Gf)||"")}catch{v={}}return v},Vf=function(v){try{$f().set(Gf,Bf.stringify(v),{expires:365})}catch{}},gE=function(){var v=Hf();return v.mux_viewer_id=v.mux_viewer_id||c(),v.msn=v.msn||Math.random(),Vf(v),{mux_viewer_id:v.mux_viewer_id,mux_sample_number:v.msn}};function vE(v,m){var p=m.beaconCollectionDomain,y=m.beaconDomain;if(p)return"https://"+p;var _=y||"litix.io";return(v=v||"inferred").match(/^[a-z0-9]+$/)?"https://"+v+"."+_:"https://img.litix.io/a.gif"}var Kf=function(){var v;switch(Wf()){case"cellular":v="cellular";break;case"ethernet":v="wired";break;case"wifi":v="wifi";break;case void 0:break;default:v="other"}return v},Wf=function(){var v=d().navigator,m=v&&(v.connection||v.mozConnection||v.webkitConnection);return m&&m.type};Kf.getConnectionFromAPI=Wf;var EE=Kf,bE=Yf({a:"env",b:"beacon",c:"custom",d:"ad",e:"event",f:"experiment",i:"internal",m:"mux",n:"response",p:"player",q:"request",r:"retry",s:"session",t:"timestamp",u:"viewer",v:"video",w:"page",x:"view",y:"sub"}),qf=Yf({ad:"ad",ag:"aggregate",ap:"api",al:"application",ar:"architecture",as:"asset",au:"autoplay",av:"average",bi:"bitrate",br:"break",bw:"browser",by:"bytes",ca:"cached",cb:"cancel",cc:"codec",cd:"code",cg:"category",ch:"changed",ck:"clicked",cl:"canceled",cn:"config",co:"count",ce:"counter",cp:"complete",cr:"creative",ct:"content",cu:"current",cx:"connection",cz:"context",dg:"downscaling",dm:"domain",dn:"cdn",do:"downscale",dr:"drm",dp:"dropped",du:"duration",dv:"device",ec:"encoding",ed:"edge",en:"end",eg:"engine",em:"embed",er:"error",es:"errorcode",et:"errortext",ee:"event",ev:"events",ex:"expires",ep:"experiments",fa:"failed",fi:"first",fm:"family",ft:"format",fp:"fps",fq:"frequency",fr:"frame",fs:"fullscreen",ha:"has",hb:"holdback",he:"headers",ho:"host",hn:"hostname",ht:"height",id:"id",ii:"init",in:"instance",ip:"ip",is:"is",ke:"key",la:"language",lb:"labeled",le:"level",li:"live",ld:"loaded",lo:"load",ls:"lists",lt:"latency",ma:"max",md:"media",me:"message",mf:"manifest",mi:"mime",ml:"midroll",mm:"min",mn:"manufacturer",mo:"model",mx:"mux",ne:"newest",nm:"name",no:"number",on:"on",os:"os",pa:"paused",pb:"playback",pd:"producer",pe:"percentage",pf:"played",pg:"program",ph:"playhead",pi:"plugin",pl:"preroll",pn:"playing",po:"poster",pr:"preload",ps:"position",pt:"part",py:"property",ra:"rate",rd:"requested",re:"rebuffer",rf:"rendition",rm:"remote",ro:"ratio",rp:"response",rq:"request",rs:"requests",sa:"sample",sd:"skipped",se:"session",sk:"seek",sm:"stream",so:"source",sq:"sequence",sr:"series",st:"start",su:"startup",sv:"server",sw:"software",ta:"tag",tc:"tech",te:"text",tg:"target",th:"throughput",ti:"time",tl:"total",to:"to",tt:"title",ty:"type",ug:"upscaling",un:"universal",up:"upscale",ur:"url",us:"user",va:"variant",vd:"viewed",vi:"video",ve:"version",vw:"view",vr:"viewer",wd:"width",wa:"watch",wt:"waiting"});function Yf(v){var m={};for(var p in v)v.hasOwnProperty(p)&&(m[v[p]]=p);return m}function vd(v){var m={},p={};return Object.keys(v).forEach(function(y){var _=!1;if(v.hasOwnProperty(y)&&v[y]!==void 0){var I=y.split("_"),x=I[0],R=bE[x];R||(A.info("Data key word `"+I[0]+"` not expected in "+y),R=x+"_"),I.splice(1).forEach(function(U){U==="url"&&(_=!0),qf[U]?R+=qf[U]:Number(U)&&Math.floor(Number(U))===Number(U)?R+=U:(A.info("Data key word `"+U+"` not expected in "+y),R+="_"+U+"_")}),_?p[R]=v[y]:m[R]=v[y]}}),Object.assign(m,p)}var yE={maxBeaconSize:300,maxQueueLength:3600,baseTimeBetweenBeacons:1e4,maxPayloadKBSize:500},TE=["hb","requestcompleted","requestfailed","requestcanceled"],_E="https://img.litix.io",Ki=function(v){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._beaconUrl=v||_E,this._eventQueue=[],this._postInFlight=!1,this._failureCount=0,this._sendTimeout=!1,this._options=Object.assign({},yE,m)};Ki.prototype.queueEvent=function(v,m){var p=Object.assign({},m);return(this._eventQueue.length<=this._options.maxQueueLength||v==="eventrateexceeded")&&(this._eventQueue.push(p),this._sendTimeout||this._startBeaconSending(),this._eventQueue.length<=this._options.maxQueueLength)},Ki.prototype.flushEvents=function(){var v=arguments.length>0&&arguments[0]!==void 0&&arguments[0];v&&this._eventQueue.length===1?this._eventQueue.pop():(this._eventQueue.length&&this._sendBeaconQueue(),this._startBeaconSending())},Ki.prototype.destroy=function(){var v=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.destroyed=!0,v?this._clearBeaconQueue():this.flushEvents(),d().clearTimeout(this._sendTimeout)},Ki.prototype._clearBeaconQueue=function(){var v=this._eventQueue.length>this._options.maxBeaconSize?this._eventQueue.length-this._options.maxBeaconSize:0,m=this._eventQueue.slice(v);v>0&&Object.assign(m[m.length-1],vd({mux_view_message:"event queue truncated"}));var p=this._createPayload(m);jf(this._beaconUrl,p,!0,function(){})},Ki.prototype._sendBeaconQueue=function(){var v=this;if(!this._postInFlight){var m=this._eventQueue.slice(0,this._options.maxBeaconSize);this._eventQueue=this._eventQueue.slice(this._options.maxBeaconSize),this._postInFlight=!0;var p=this._createPayload(m),y=L.now();jf(this._beaconUrl,p,!1,function(_,I){I?(v._eventQueue=m.concat(v._eventQueue),v._failureCount+=1,A.info("Error sending beacon: "+I)):v._failureCount=0,v._roundTripTime=L.now()-y,v._postInFlight=!1})}},Ki.prototype._getNextBeaconTime=function(){if(!this._failureCount)return this._options.baseTimeBetweenBeacons;var v=Math.pow(2,this._failureCount-1);return(1+(v*=Math.random()))*this._options.baseTimeBetweenBeacons},Ki.prototype._startBeaconSending=function(){var v=this;d().clearTimeout(this._sendTimeout),this.destroyed||(this._sendTimeout=d().setTimeout(function(){v._eventQueue.length&&v._sendBeaconQueue(),v._startBeaconSending()},this._getNextBeaconTime()))},Ki.prototype._createPayload=function(v){var m,p,y,_=this,I={transmission_timestamp:Math.round(L.now())};this._roundTripTime&&(I.rtt_ms=Math.round(this._roundTripTime));var x=function(){m=JSON.stringify({metadata:I,events:p||v}),y=m.length/1024},R=function(){return y<=_._options.maxPayloadKBSize};return x(),R()||(A.info("Payload size is too big ("+y+" kb). Removing unnecessary events."),p=v.filter(function(U){return TE.indexOf(U.e)===-1}),x()),R()||(A.info("Payload size still too big ("+y+" kb). Cropping fields.."),p.forEach(function(U){for(var C in U){var K=U[C];typeof K=="string"&&K.length>51200&&(U[C]=K.substring(0,51200))}}),x()),m};var AE=function(v){return v.length<=57344},jf=function(v,m,p,y){if(p&&navigator&&navigator.sendBeacon&&navigator.sendBeacon(v,m))y();else if(d().fetch)d().fetch(v,{method:"POST",body:m,headers:{"Content-Type":"text/plain"},keepalive:AE(m)}).then(function(I){return y(null,I.ok?null:"Error")}).catch(function(I){return y(null,I)});else{if(d().XMLHttpRequest){var _=new(d()).XMLHttpRequest;return _.onreadystatechange=function(){if(_.readyState===4)return y(null,_.status!==200?"error":void 0)},_.open("POST",v),_.setRequestHeader("Content-Type","text/plain"),void _.send(m)}y()}},SE=Ki;function xE(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return zf(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?zf(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function zf(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}function Xf(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function gs(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Xf(Object(p),!0).forEach(function(y){_a(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Xf(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function on(v){return on=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},on(v)}function IE(v,m){if(!(v instanceof m))throw new TypeError("Cannot call a class as a function")}function Qf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function _a(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var LE=["env_key","view_id","view_sequence_number","player_sequence_number","beacon_domain","player_playhead_time","viewer_time","mux_api_version","event","video_id","player_instance_id"],kE=["adplay","adplaying","adpause","adfirstquartile","admidpoint","adthirdquartile","adended","adresponse","adrequest"],RE=["ad_id","ad_creative_id","ad_universal_id"],wE=["viewstart","error","ended","viewend"],DE=function(){function v(_,I){var x,R,U,C,K,ve,de,he,ae,me,Me,At,St,Ft,ti,Ce=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};IE(this,v),_a(this,"previousBeaconData",null),_a(this,"lastEventTime",0),_a(this,"rateLimited",!1),this.mux=_,this.envKey=I,this.options=Ce,this.eventQueue=new SE(vE(this.envKey,this.options)),this.sampleRate=(x=this.options.sampleRate)!==null&&x!==void 0?x:1,this.disableCookies=(R=this.options.disableCookies)!==null&&R!==void 0&&R,this.respectDoNotTrack=(U=this.options.respectDoNotTrack)!==null&&U!==void 0&&U,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.pageLevelData={mux_api_version:this.mux.API_VERSION,mux_embed:this.mux.NAME,mux_embed_version:this.mux.VERSION,viewer_application_name:(C=this.options.platform)===null||C===void 0?void 0:C.name,viewer_application_version:(K=this.options.platform)===null||K===void 0?void 0:K.version,viewer_application_engine:(ve=this.options.platform)===null||ve===void 0?void 0:ve.layout,viewer_device_name:(de=this.options.platform)===null||de===void 0?void 0:de.product,viewer_device_category:"",viewer_device_manufacturer:(he=this.options.platform)===null||he===void 0?void 0:he.manufacturer,viewer_os_family:(ae=this.options.platform)===null||ae===void 0||(me=ae.os)===null||me===void 0?void 0:me.family,viewer_os_architecture:(Me=this.options.platform)===null||Me===void 0||(At=Me.os)===null||At===void 0?void 0:At.architecture,viewer_os_version:(St=this.options.platform)===null||St===void 0||(Ft=St.os)===null||Ft===void 0?void 0:Ft.version,viewer_connection_type:EE(),page_url:d()===null||d()===void 0||(ti=d().location)===null||ti===void 0?void 0:ti.href},this.viewerData=this.disableCookies?{}:gE()}var m,p,y;return m=v,(p=[{key:"send",value:function(_,I){var x;if(_&&I!=null&&I.view_id){if(this.respectDoNotTrack&&k())return A.info("Not sending `"+_+"` because Do Not Track is enabled");if(!I||on(I)!=="object")return A.error("A data object was expected in send() but was not provided");var R,U,C=this.disableCookies?{}:(R=
|
|
1
|
+
"use strict";(()=>{var hb=Object.create;var am=Object.defineProperty;var fb=Object.getOwnPropertyDescriptor;var mb=Object.getOwnPropertyNames;var pb=Object.getPrototypeOf,gb=Object.prototype.hasOwnProperty;var vb=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Eb=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of mb(e))!gb.call(r,s)&&s!==t&&am(r,s,{get:()=>e[s],enumerable:!(i=fb(e,s))||i.enumerable});return r};var bb=(r,e,t)=>(t=r!=null?hb(pb(r)):{},Eb(e||!r||!r.__esModule?am(t,"default",{value:r,enumerable:!0}):t,r));var Ad=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var Ne=(r,e,t)=>(Ad(r,e,"read from private field"),t?t.call(r):e.get(r)),ut=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ii=(r,e,t,i)=>(Ad(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t);var bt=(r,e,t)=>(Ad(r,e,"access private method"),t);var Jp=vb((el,ru)=>{(function(){var r,e;r=this,e=function(){return function(){var t={80:function(n,a,o){n.exports=o(728).default},728:function(n,a,o){"use strict";o.d(a,{default:function(){return lb}});var l=o(48),d=o.n(l),c=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(v){var m=16*Math.random()|0;return(v==="x"?m:3&m|8).toString(16)})},u=function(){return("000000"+(Math.random()*Math.pow(36,6)<<0).toString(36)).slice(-6)},h=function(v){return v&&v.nodeName!==void 0?(v.muxId||(v.muxId=v.id||u()),v.muxId):v},f=function(v){var m;v&&v.nodeName!==void 0?v=h(m=v):m=document.querySelector(v);var p=m&&m.nodeName?m.nodeName.toLowerCase():"";return[m,v,p]},g=o(640),E=o.n(g),T=E().methodFactory;E().methodFactory=function(v,m,p){var y=T(v,m,p);return function(){for(var _=["[mux]"],I=0;I<arguments.length;I++)_.push(arguments[I]);y.apply(void 0,_)}},E().setLevel(E().getLevel());var A=E();function k(){return(d().doNotTrack||d().navigator&&d().navigator.doNotTrack)==="1"}var L={now:function(){var v=d().performance,m=v&&v.timing,p=m&&m.navigationStart,y=typeof p=="number"&&typeof v.now=="function"?p+v.now():Date.now();return Math.round(y)}},N=function(v){return D(v)[0]},D=function(v){if(typeof v!="string"||v==="")return["localhost"];var m,p=(v.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/)||[])[4];return p&&(m=(p.match(/[^\.]+\.[^\.]+$/)||[])[0]),[p,m]},$={exists:function(){var v=d().performance;return(v&&v.timing)!==void 0},domContentLoadedEventEnd:function(){var v=d().performance,m=v&&v.timing;return m&&m.domContentLoadedEventEnd},navigationStart:function(){var v=d().performance,m=v&&v.timing;return m&&m.navigationStart}};function O(v,m,p){p=p===void 0?1:p,v[m]=v[m]||0,v[m]+=p}var G=["x-request-id","cf-ray","x-amz-cf-id","x-akamai-request-id"],q=["x-cdn","content-type"].concat(G);function P(v){var m={};return(v=v||"").trim().split(/[\r\n]+/).forEach(function(p){if(p){var y=p.split(": "),_=y.shift();_&&(q.indexOf(_.toLowerCase())>=0||_.toLowerCase().indexOf("x-litix-")===0)&&(m[_]=y.join(": "))}}),m}function X(v){if(v){var m=G.find(function(p){return v[p]!==void 0});return m?v[m]:void 0}}var z=function(v){var m={};for(var p in v){var y=v[p];y["DATA-ID"].search("io.litix.data.")!==-1&&(m[y["DATA-ID"].replace("io.litix.data.","")]=y.VALUE)}return m};function Ae(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function Ee(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Ae(Object(p),!0).forEach(function(y){be(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Ae(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function be(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var we=function(v){if(!v)return{};var m=$.navigationStart(),p=v.loading,y=p?p.start:v.trequest,_=p?p.first:v.tfirst,I=p?p.end:v.tload;return{bytesLoaded:v.total,requestStart:Math.round(m+y),responseStart:Math.round(m+_),responseEnd:Math.round(m+I)}},Se=function(v){if(v&&typeof v.getAllResponseHeaders=="function")return P(v.getAllResponseHeaders())};function Z(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function ne(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Z(Object(p),!0).forEach(function(y){se(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Z(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function se(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var xe=function(v,m){if(!v||typeof v.getRequests!="function")return{};var p=v.getRequests({state:"executed"});if(p.length===0)return{};var y,_=p[p.length-1],I=N(_.url),x=_.url,R=_.bytesLoaded,U=new Date(_.requestStartDate).getTime(),C=new Date(_.firstByteDate).getTime(),K=new Date(_.requestEndDate).getTime(),ve=isNaN(_.duration)?0:_.duration,de=typeof m.getMetricsFor=="function"?m.getMetricsFor(_.mediaType).HttpList:m.getDashMetrics().getHttpRequests(_.mediaType);return de.length>0&&(y=P(de[de.length-1]._responseHeaders||"")),{requestStart:U,requestResponseStart:C,requestResponseEnd:K,requestBytesLoaded:R,requestResponseHeaders:y,requestMediaDuration:ve,requestHostname:I,requestUrl:x,requestId:y?X(y):void 0}},Ie=function(v,m){var p=m.getQualityFor(v),y=m.getCurrentTrackFor(v).bitrateList;return y?{currentLevel:p,renditionWidth:y[p].width||null,renditionHeight:y[p].height||null,renditionBitrate:y[p].bandwidth}:{}},Ve=function(v){var m;return(m=v.match(/.*codecs\*?="(.*)"/))===null||m===void 0?void 0:m[1]};function ht(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var V=0,J=function(){function v(){(function(_,I){if(!(_ instanceof I))throw new TypeError("Cannot call a class as a function")})(this,v)}var m,p,y;return m=v,p=[{key:"on",value:function(_,I,x){return I._eventEmitterGuid=I._eventEmitterGuid||++V,this._listeners=this._listeners||{},this._listeners[_]=this._listeners[_]||[],x&&(I=I.bind(x)),this._listeners[_].push(I),I}},{key:"off",value:function(_,I){var x=this._listeners&&this._listeners[_];x&&x.forEach(function(R,U){R._eventEmitterGuid===I._eventEmitterGuid&&x.splice(U,1)})}},{key:"one",value:function(_,I,x){var R=this;I._eventEmitterGuid=I._eventEmitterGuid||++V;var U=function C(){R.off(_,C),I.apply(x||this,arguments)};U._eventEmitterGuid=I._eventEmitterGuid,this.on(_,U)}},{key:"emit",value:function(_,I){var x=this;if(this._listeners){I=I||{};var R=this._listeners["before*"]||[],U=this._listeners[_]||[],C=this._listeners["after"+_]||[],K=function(ve,de){(ve=ve.slice()).forEach(function(he){he.call(x,{type:_},de)})};K(R,I),K(U,I),K(C,I)}}}],p&&ht(m.prototype,p),y&&ht(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}(),ke=J;function et(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var _t=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._playbackHeartbeatInterval=null,this._playheadShouldBeProgressing=!1,_.on("playing",function(){I._playheadShouldBeProgressing=!0}),_.on("play",this._startPlaybackHeartbeatInterval.bind(this)),_.on("playing",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adbreakstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adplay",this._startPlaybackHeartbeatInterval.bind(this)),_.on("adplaying",this._startPlaybackHeartbeatInterval.bind(this)),_.on("seeking",this._startPlaybackHeartbeatInterval.bind(this)),_.on("devicewake",this._startPlaybackHeartbeatInterval.bind(this)),_.on("viewstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("rebufferstart",this._startPlaybackHeartbeatInterval.bind(this)),_.on("pause",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("ended",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("viewend",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("error",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("aderror",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adpause",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adended",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("adbreakend",this._stopPlaybackHeartbeatInterval.bind(this)),_.on("seeked",function(){_.data.player_is_paused?I._stopPlaybackHeartbeatInterval():I._startPlaybackHeartbeatInterval()}),_.on("timeupdate",function(){I._playbackHeartbeatInterval!==null&&_.emit("playbackheartbeat")}),_.on("devicesleep",function(x,R){I._playbackHeartbeatInterval!==null&&(d().clearInterval(I._playbackHeartbeatInterval),_.emit("playbackheartbeatend",{viewer_time:R.viewer_time}),I._playbackHeartbeatInterval=null)})}var m,p,y;return m=v,(p=[{key:"_startPlaybackHeartbeatInterval",value:function(){var _=this;this._playbackHeartbeatInterval===null&&(this.pm.emit("playbackheartbeat"),this._playbackHeartbeatInterval=d().setInterval(function(){_.pm.emit("playbackheartbeat")},this.pm.playbackHeartbeatTime))}},{key:"_stopPlaybackHeartbeatInterval",value:function(){this._playheadShouldBeProgressing=!1,this._playbackHeartbeatInterval!==null&&(d().clearInterval(this._playbackHeartbeatInterval),this.pm.emit("playbackheartbeatend"),this._playbackHeartbeatInterval=null)}}])&&et(m.prototype,p),y&&et(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function zt(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function nr(v,m,p){return m&&zt(v.prototype,m),p&&zt(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var Jt=nr(function v(m){var p=this;(function(y,_){if(!(y instanceof _))throw new TypeError("Cannot call a class as a function")})(this,v),m.on("viewinit",function(){p.viewErrored=!1}),m.on("error",function(y,_){try{var I=m.errorTranslator({player_error_code:_.player_error_code,player_error_message:_.player_error_message,player_error_context:_.player_error_context});I?(m.data.player_error_code=I.player_error_code||_.player_error_code,m.data.player_error_message=I.player_error_message||_.player_error_message,m.data.player_error_context=I.player_error_context||_.player_error_context,p.viewErrored=!0):(delete m.data.player_error_code,delete m.data.player_error_message,delete m.data.player_error_context)}catch(x){m.mux.log.warn("Exception in error translator callback.",x),p.viewErrored=!0}})});function _i(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var Ai=function(){function v(_){(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._watchTimeTrackerLastCheckedTime=null,_.on("playbackheartbeat",this._updateWatchTime.bind(this)),_.on("playbackheartbeatend",this._clearWatchTimeState.bind(this))}var m,p,y;return m=v,(p=[{key:"_updateWatchTime",value:function(_,I){var x=I.viewer_time;this._watchTimeTrackerLastCheckedTime===null&&(this._watchTimeTrackerLastCheckedTime=x),O(this.pm.data,"view_watch_time",x-this._watchTimeTrackerLastCheckedTime),this._watchTimeTrackerLastCheckedTime=x}},{key:"_clearWatchTimeState",value:function(_,I){this._updateWatchTime(_,I),this._watchTimeTrackerLastCheckedTime=null}}])&&_i(m.prototype,p),y&&_i(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function ps(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var rn=function(){function v(_){var I=this;(function(U,C){if(!(U instanceof C))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,this._playbackTimeTrackerLastPlayheadPosition=-1,this._lastTime=L.now(),this._isAdPlaying=!1,this._callbackUpdatePlaybackTime=null;var x=this._startPlaybackTimeTracking.bind(this);_.on("playing",x),_.on("adplaying",x),_.on("seeked",x);var R=this._stopPlaybackTimeTracking.bind(this);_.on("playbackheartbeatend",R),_.on("seeking",R),_.on("adplaying",function(){I._isAdPlaying=!0}),_.on("adended",function(){I._isAdPlaying=!1}),_.on("adpause",function(){I._isAdPlaying=!1}),_.on("adbreakstart",function(){I._isAdPlaying=!1}),_.on("adbreakend",function(){I._isAdPlaying=!1}),_.on("adplay",function(){I._isAdPlaying=!1}),_.on("viewinit",function(){I._playbackTimeTrackerLastPlayheadPosition=-1,I._lastTime=L.now(),I._isAdPlaying=!1,I._callbackUpdatePlaybackTime=null})}var m,p,y;return m=v,(p=[{key:"_startPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime===null&&(this._callbackUpdatePlaybackTime=this._updatePlaybackTime.bind(this),this._playbackTimeTrackerLastPlayheadPosition=this.pm.data.player_playhead_time,this.pm.on("playbackheartbeat",this._callbackUpdatePlaybackTime))}},{key:"_stopPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime&&(this._updatePlaybackTime(),this.pm.off("playbackheartbeat",this._callbackUpdatePlaybackTime),this._callbackUpdatePlaybackTime=null,this._playbackTimeTrackerLastPlayheadPosition=-1)}},{key:"_updatePlaybackTime",value:function(){var _=this.pm.data.player_playhead_time,I=L.now(),x=-1;this._playbackTimeTrackerLastPlayheadPosition>=0&&_>this._playbackTimeTrackerLastPlayheadPosition?x=_-this._playbackTimeTrackerLastPlayheadPosition:this._isAdPlaying&&(x=I-this._lastTime),x>0&&x<=1e3&&O(this.pm.data,"view_content_playback_time",x),this._playbackTimeTrackerLastPlayheadPosition=_,this._lastTime=I}}])&&ps(m.prototype,p),y&&ps(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function ci(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var rt=function(){function v(_){(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_;var I=this._updatePlayheadTime.bind(this);_.on("playbackheartbeat",I),_.on("playbackheartbeatend",I),_.on("timeupdate",I),_.on("destroy",function(){_.off("timeupdate",I)})}var m,p,y;return m=v,(p=[{key:"_updateMaxPlayheadPosition",value:function(){this.pm.data.view_max_playhead_position=this.pm.data.view_max_playhead_position===void 0?this.pm.data.player_playhead_time:Math.max(this.pm.data.view_max_playhead_position,this.pm.data.player_playhead_time)}},{key:"_updatePlayheadTime",value:function(_,I){var x=this,R=function(){x.pm.currentFragmentPDT&&x.pm.currentFragmentStart&&(x.pm.data.player_program_time=x.pm.currentFragmentPDT+x.pm.data.player_playhead_time-x.pm.currentFragmentStart)};if(I&&I.player_playhead_time)this.pm.data.player_playhead_time=I.player_playhead_time,R(),this._updateMaxPlayheadPosition();else if(this.pm.getPlayheadTime){var U=this.pm.getPlayheadTime();U!==void 0&&(this.pm.data.player_playhead_time=U,R(),this._updateMaxPlayheadPosition())}}}])&&ci(m.prototype,p),y&&ci(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Rr(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function sn(v,m,p){return m&&Rr(v.prototype,m),p&&Rr(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var nn=3e5,Ta=sn(function v(m){if(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")}(this,v),!m.disableRebufferTracking){var p,y=function(I,x){_(x),p=void 0},_=function(I){if(p){var x=I.viewer_time-p;O(m.data,"view_rebuffer_duration",x),p=I.viewer_time,m.data.view_rebuffer_duration>nn&&(m.emit("viewend"),m.send("viewend"),m.mux.log.warn("Ending view after rebuffering for longer than ".concat(nn,"ms, future events will be ignored unless a programchange or videochange occurs.")))}m.data.view_watch_time>=0&&m.data.view_rebuffer_count>0&&(m.data.view_rebuffer_frequency=m.data.view_rebuffer_count/m.data.view_watch_time,m.data.view_rebuffer_percentage=m.data.view_rebuffer_duration/m.data.view_watch_time)};m.on("playbackheartbeat",function(I,x){return _(x)}),m.on("rebufferstart",function(I,x){p||(O(m.data,"view_rebuffer_count",1),p=x.viewer_time,m.one("rebufferend",y))}),m.on("viewinit",function(){p=void 0,m.off("rebufferend",y)})}});function an(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var iE=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.disableRebufferTracking||_.disablePlayheadRebufferTracking||(this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null,_.on("playbackheartbeat",this._checkIfRebuffering.bind(this)),_.on("playbackheartbeatend",this._cleanupRebufferTracker.bind(this)),_.on("seeking",function(){I._cleanupRebufferTracker(null,{viewer_time:L.now()})}))}var m,p,y;return m=v,p=[{key:"_checkIfRebuffering",value:function(_,I){if(this.pm.seekingTracker.isSeeking||this.pm.adTracker.isAdBreak||!this.pm.playbackHeartbeat._playheadShouldBeProgressing)this._cleanupRebufferTracker(_,I);else if(this._lastCheckedTime!==null)if(this._lastPlayheadTime===this.pm.data.player_playhead_time){var x=I.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.sustainedRebufferThreshold=="number"&&x>=this.pm.sustainedRebufferThreshold&&(this._rebuffering||(this._rebuffering=!0,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}))),this._lastCheckedTime=I.viewer_time}else this._cleanupRebufferTracker(_,I,!0);else this._prepareRebufferTrackerState(I.viewer_time)}},{key:"_clearRebufferTrackerState",value:function(){this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null}},{key:"_prepareRebufferTrackerState",value:function(_){this._lastCheckedTime=_,this._lastPlayheadTime=this.pm.data.player_playhead_time,this._lastPlayheadTimeUpdatedTime=_}},{key:"_cleanupRebufferTracker",value:function(_,I){var x=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(this._rebuffering)this._rebuffering=!1,this.pm.emit("rebufferend",{viewer_time:I.viewer_time});else{if(this._lastCheckedTime===null)return;var R=this.pm.data.player_playhead_time-this._lastPlayheadTime,U=I.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.minimumRebufferDuration=="number"&&R>0&&U-R>this.pm.minimumRebufferDuration&&(this._lastCheckedTime=null,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}),this.pm.emit("rebufferend",{viewer_time:this._lastPlayheadTimeUpdatedTime+U-R}))}x?this._prepareRebufferTrackerState(I.viewer_time):this._clearRebufferTrackerState()}}],p&&an(m.prototype,p),y&&an(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}(),rE=iE;function wf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var sE=function(){function v(_){var I=this;(function(x,R){if(!(x instanceof R))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.on("viewinit",function(){var x=_.data,R=x.view_id;if(!x.view_program_changed){var U=function(C,K){var ve=K.viewer_time;C.type==="playing"&&_.data.view_time_to_first_frame===void 0?I.calculateTimeToFirstFrame(ve||L.now(),R):C.type!=="adplaying"||_.data.view_time_to_first_frame!==void 0&&!I._inPrerollPosition()||I.calculateTimeToFirstFrame(ve||L.now(),R)};_.one("playing",U),_.one("adplaying",U),_.one("viewend",function(){_.off("playing",U),_.off("adplaying",U)})}})}var m,p,y;return m=v,(p=[{key:"_inPrerollPosition",value:function(){return this.pm.data.view_content_playback_time===void 0||this.pm.data.view_content_playback_time<=1e3}},{key:"calculateTimeToFirstFrame",value:function(_,I){I===this.pm.data.view_id&&(this.pm.watchTimeTracker._updateWatchTime(null,{viewer_time:_}),this.pm.data.view_time_to_first_frame=this.pm.data.view_watch_time,(this.pm.data.player_autoplay_on||this.pm.data.video_is_autoplay)&&this.NAVIGATION_START&&(this.pm.data.view_aggregate_startup_time=this.pm.data.view_start+this.pm.data.view_watch_time-this.NAVIGATION_START))}}])&&wf(m.prototype,p),y&&wf(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Df(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function nE(v,m,p){return m&&Df(v.prototype,m),p&&Df(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var aE=nE(function v(m){var p=this;(function(y,_){if(!(y instanceof _))throw new TypeError("Cannot call a class as a function")})(this,v),m.on("viewinit",function(){p._lastPlayheadPosition=-1}),["pause","rebufferstart","seeking","error","adbreakstart","hb"].forEach(function(y){m.on(y,function(){if(p._lastPlayheadPosition>=0&&m.data.player_playhead_time>=0&&p._lastPlayerWidth>=0&&p._lastSourceWidth>0&&p._lastPlayerHeight>=0&&p._lastSourceHeight>0){var _=m.data.player_playhead_time-p._lastPlayheadPosition;if(_<0)return void(p._lastPlayheadPosition=-1);var I=Math.min(p._lastPlayerWidth/p._lastSourceWidth,p._lastPlayerHeight/p._lastSourceHeight),x=Math.max(0,I-1),R=Math.max(0,1-I);m.data.view_max_upscale_percentage=Math.max(m.data.view_max_upscale_percentage||0,x),m.data.view_max_downscale_percentage=Math.max(m.data.view_max_downscale_percentage||0,R),O(m.data,"view_total_content_playback_time",_),O(m.data,"view_total_upscaling",x*_),O(m.data,"view_total_downscaling",R*_)}p._lastPlayheadPosition=-1})}),["playing","hb"].forEach(function(y){m.on(y,function(){p._lastPlayheadPosition=m.data.player_playhead_time,p._lastPlayerWidth=m.data.player_width,p._lastPlayerHeight=m.data.player_height,p._lastSourceWidth=m.data.video_source_width,p._lastSourceHeight=m.data.video_source_height})})});function Cf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function oE(v,m,p){return m&&Cf(v.prototype,m),p&&Cf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var lE=oE(function v(m){var p=this;(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v),this.isSeeking=!1;var y=-1,_=function(){var I=L.now(),x=(m.data.viewer_time||I)-(y||I);O(m.data,"view_seek_duration",x),m.data.view_max_seek_time=Math.max(m.data.view_max_seek_time||0,x),p.isSeeking=!1,y=-1};m.on("seeking",function(I,x){Object.assign(m.data,x),p.isSeeking&&x.viewer_time-y<=2e3?y=x.viewer_time:(p.isSeeking&&_(),p.isSeeking=!0,y=x.viewer_time,O(m.data,"view_seek_count",1),m.send("seeking"))}),m.on("seeked",function(){_()}),m.on("viewend",function(){p.isSeeking&&(_(),m.send("seeked")),p.isSeeking=!1,y=-1})});function Mf(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return Of(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?Of(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Of(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}function Pf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}var Nf=function(v,m){v.push(m),v.sort(function(p,y){return p.viewer_time-y.viewer_time})},dE=["adbreakstart","adrequest","adresponse","adplay","adplaying","adpause","adended","adbreakend","aderror","adclicked","adskipped"],cE=function(){function v(_){var I=this;(function(R,U){if(!(R instanceof U))throw new TypeError("Cannot call a class as a function")})(this,v),this.pm=_,_.on("viewinit",function(){I.isAdBreak=!1,I._currentAdRequestNumber=0,I._currentAdResponseNumber=0,I._adRequests=[],I._adResponses=[],I._adHasPlayed=!1,I._wouldBeNewAdPlay=!0,I._prerollPlayTime=void 0}),dE.forEach(function(R){return _.on(R,I._updateAdData.bind(I))});var x=function(){I.isAdBreak=!1};_.on("adbreakstart",function(){I.isAdBreak=!0}),_.on("play",x),_.on("playing",x),_.on("viewend",x),_.on("adrequest",function(R,U){U=Object.assign({ad_request_id:"generatedAdRequestId"+I._currentAdRequestNumber++},U),Nf(I._adRequests,U),O(_.data,"view_ad_request_count"),I.inPrerollPosition()&&(_.data.view_preroll_requested=!0,I._adHasPlayed||O(_.data,"view_preroll_request_count"))}),_.on("adresponse",function(R,U){U=Object.assign({ad_request_id:"generatedAdRequestId"+I._currentAdResponseNumber++},U),Nf(I._adResponses,U);var C=I.findAdRequest(U.ad_request_id);C&&O(_.data,"view_ad_request_time",Math.max(0,U.viewer_time-C.viewer_time))}),_.on("adplay",function(R,U){I._adHasPlayed=!0,I._wouldBeNewAdPlay&&(I._wouldBeNewAdPlay=!1,O(_.data,"view_ad_played_count")),I.inPrerollPosition()&&!_.data.view_preroll_played&&(_.data.view_preroll_played=!0,I._adRequests.length>0&&(_.data.view_preroll_request_time=Math.max(0,U.viewer_time-I._adRequests[0].viewer_time)),_.data.view_start&&(_.data.view_startup_preroll_request_time=Math.max(0,U.viewer_time-_.data.view_start)),I._prerollPlayTime=U.viewer_time)}),_.on("adplaying",function(R,U){I.inPrerollPosition()&&_.data.view_preroll_load_time===void 0&&I._prerollPlayTime!==void 0&&(_.data.view_preroll_load_time=U.viewer_time-I._prerollPlayTime,_.data.view_startup_preroll_load_time=U.viewer_time-I._prerollPlayTime)}),_.on("adclicked",function(R,U){I._wouldBeNewAdPlay||O(_.data,"view_ad_clicked_count")}),_.on("adskipped",function(R,U){I._wouldBeNewAdPlay||O(_.data,"view_ad_skipped_count")}),_.on("adended",function(){I._wouldBeNewAdPlay=!0}),_.on("aderror",function(){I._wouldBeNewAdPlay=!0})}var m,p,y;return m=v,(p=[{key:"inPrerollPosition",value:function(){return this.pm.data.view_content_playback_time===void 0||this.pm.data.view_content_playback_time<=1e3}},{key:"findAdRequest",value:function(_){for(var I=0;I<this._adRequests.length;I++)if(this._adRequests[I].ad_request_id===_)return this._adRequests[I]}},{key:"_updateAdData",value:function(_,I){if(this.inPrerollPosition()){if(!this.pm.data.view_preroll_ad_tag_hostname&&I.ad_tag_url){var x=Mf(D(I.ad_tag_url),2),R=x[0],U=x[1];this.pm.data.view_preroll_ad_tag_domain=U,this.pm.data.view_preroll_ad_tag_hostname=R}if(!this.pm.data.view_preroll_ad_asset_hostname&&I.ad_asset_url){var C=Mf(D(I.ad_asset_url),2),K=C[0],ve=C[1];this.pm.data.view_preroll_ad_asset_domain=ve,this.pm.data.view_preroll_ad_asset_hostname=K}}this.pm.data.ad_asset_url=I==null?void 0:I.ad_asset_url,this.pm.data.ad_tag_url=I==null?void 0:I.ad_tag_url,this.pm.data.ad_creative_id=I==null?void 0:I.ad_creative_id,this.pm.data.ad_id=I==null?void 0:I.ad_id,this.pm.data.ad_universal_id=I==null?void 0:I.ad_universal_id}}])&&Pf(m.prototype,p),y&&Pf(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Uf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function uE(v,m,p){return m&&Uf(v.prototype,m),p&&Uf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var hE=uE(function v(m){var p,y;(function(R,U){if(!(R instanceof U))throw new TypeError("Cannot call a class as a function")})(this,v);var _=function(){m.disableRebufferTracking||p&&(O(m.data,"view_waiting_rebuffer_duration",L.now()-p),p=!1,d().clearInterval(y))},I=!1,x=function(){I=!1,_()};m.on("waiting",function(){I&&(m.disableRebufferTracking||(O(m.data,"view_waiting_rebuffer_count",1),p=L.now(),y=d().setInterval(function(){if(p){var R=L.now();O(m.data,"view_waiting_rebuffer_duration",R-p),p=R}},250)))}),m.on("playing",function(){_(),I=!0}),m.on("pause",x),m.on("seeking",x)});function Ff(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function fE(v,m,p){return m&&Ff(v.prototype,m),p&&Ff(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var mE=fE(function v(m){var p=this;(function(I,x){if(!(I instanceof x))throw new TypeError("Cannot call a class as a function")})(this,v);var y=function(){p.lastWallClockTime=L.now(),m.on("before*",_)},_=function(I){var x=L.now(),R=p.lastWallClockTime;p.lastWallClockTime=x,x-R>3e4&&(m.emit("devicesleep",{viewer_time:R}),Object.assign(m.data,{viewer_time:R}),m.send("devicesleep"),m.emit("devicewake",{viewer_time:x}),Object.assign(m.data,{viewer_time:x}),m.send("devicewake"))};m.one("playbackheartbeat",y),m.on("playbackheartbeatend",function(){m.off("before*",_),m.one("playbackheartbeat",y)})}),Bf=o(375),pE=o(655),$f=o.n(pE),Hf="muxData",Gf=function(){var v;try{v=Bf.parse($f().get(Hf)||"")}catch{v={}}return v},Vf=function(v){try{$f().set(Hf,Bf.stringify(v),{expires:365})}catch{}},gE=function(){var v=Gf();return v.mux_viewer_id=v.mux_viewer_id||c(),v.msn=v.msn||Math.random(),Vf(v),{mux_viewer_id:v.mux_viewer_id,mux_sample_number:v.msn}};function vE(v,m){var p=m.beaconCollectionDomain,y=m.beaconDomain;if(p)return"https://"+p;var _=y||"litix.io";return(v=v||"inferred").match(/^[a-z0-9]+$/)?"https://"+v+"."+_:"https://img.litix.io/a.gif"}var Kf=function(){var v;switch(Wf()){case"cellular":v="cellular";break;case"ethernet":v="wired";break;case"wifi":v="wifi";break;case void 0:break;default:v="other"}return v},Wf=function(){var v=d().navigator,m=v&&(v.connection||v.mozConnection||v.webkitConnection);return m&&m.type};Kf.getConnectionFromAPI=Wf;var EE=Kf,bE=Yf({a:"env",b:"beacon",c:"custom",d:"ad",e:"event",f:"experiment",i:"internal",m:"mux",n:"response",p:"player",q:"request",r:"retry",s:"session",t:"timestamp",u:"viewer",v:"video",w:"page",x:"view",y:"sub"}),qf=Yf({ad:"ad",ag:"aggregate",ap:"api",al:"application",ar:"architecture",as:"asset",au:"autoplay",av:"average",bi:"bitrate",br:"break",bw:"browser",by:"bytes",ca:"cached",cb:"cancel",cc:"codec",cd:"code",cg:"category",ch:"changed",ck:"clicked",cl:"canceled",cn:"config",co:"count",ce:"counter",cp:"complete",cr:"creative",ct:"content",cu:"current",cx:"connection",cz:"context",dg:"downscaling",dm:"domain",dn:"cdn",do:"downscale",dr:"drm",dp:"dropped",du:"duration",dv:"device",ec:"encoding",ed:"edge",en:"end",eg:"engine",em:"embed",er:"error",es:"errorcode",et:"errortext",ee:"event",ev:"events",ex:"expires",ep:"experiments",fa:"failed",fi:"first",fm:"family",ft:"format",fp:"fps",fq:"frequency",fr:"frame",fs:"fullscreen",ha:"has",hb:"holdback",he:"headers",ho:"host",hn:"hostname",ht:"height",id:"id",ii:"init",in:"instance",ip:"ip",is:"is",ke:"key",la:"language",lb:"labeled",le:"level",li:"live",ld:"loaded",lo:"load",ls:"lists",lt:"latency",ma:"max",md:"media",me:"message",mf:"manifest",mi:"mime",ml:"midroll",mm:"min",mn:"manufacturer",mo:"model",mx:"mux",ne:"newest",nm:"name",no:"number",on:"on",os:"os",pa:"paused",pb:"playback",pd:"producer",pe:"percentage",pf:"played",pg:"program",ph:"playhead",pi:"plugin",pl:"preroll",pn:"playing",po:"poster",pr:"preload",ps:"position",pt:"part",py:"property",ra:"rate",rd:"requested",re:"rebuffer",rf:"rendition",rm:"remote",ro:"ratio",rp:"response",rq:"request",rs:"requests",sa:"sample",sd:"skipped",se:"session",sk:"seek",sm:"stream",so:"source",sq:"sequence",sr:"series",st:"start",su:"startup",sv:"server",sw:"software",ta:"tag",tc:"tech",te:"text",tg:"target",th:"throughput",ti:"time",tl:"total",to:"to",tt:"title",ty:"type",ug:"upscaling",un:"universal",up:"upscale",ur:"url",us:"user",va:"variant",vd:"viewed",vi:"video",ve:"version",vw:"view",vr:"viewer",wd:"width",wa:"watch",wt:"waiting"});function Yf(v){var m={};for(var p in v)v.hasOwnProperty(p)&&(m[v[p]]=p);return m}function vd(v){var m={},p={};return Object.keys(v).forEach(function(y){var _=!1;if(v.hasOwnProperty(y)&&v[y]!==void 0){var I=y.split("_"),x=I[0],R=bE[x];R||(A.info("Data key word `"+I[0]+"` not expected in "+y),R=x+"_"),I.splice(1).forEach(function(U){U==="url"&&(_=!0),qf[U]?R+=qf[U]:Number(U)&&Math.floor(Number(U))===Number(U)?R+=U:(A.info("Data key word `"+U+"` not expected in "+y),R+="_"+U+"_")}),_?p[R]=v[y]:m[R]=v[y]}}),Object.assign(m,p)}var yE={maxBeaconSize:300,maxQueueLength:3600,baseTimeBetweenBeacons:1e4,maxPayloadKBSize:500},TE=["hb","requestcompleted","requestfailed","requestcanceled"],_E="https://img.litix.io",Ki=function(v){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this._beaconUrl=v||_E,this._eventQueue=[],this._postInFlight=!1,this._failureCount=0,this._sendTimeout=!1,this._options=Object.assign({},yE,m)};Ki.prototype.queueEvent=function(v,m){var p=Object.assign({},m);return(this._eventQueue.length<=this._options.maxQueueLength||v==="eventrateexceeded")&&(this._eventQueue.push(p),this._sendTimeout||this._startBeaconSending(),this._eventQueue.length<=this._options.maxQueueLength)},Ki.prototype.flushEvents=function(){var v=arguments.length>0&&arguments[0]!==void 0&&arguments[0];v&&this._eventQueue.length===1?this._eventQueue.pop():(this._eventQueue.length&&this._sendBeaconQueue(),this._startBeaconSending())},Ki.prototype.destroy=function(){var v=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.destroyed=!0,v?this._clearBeaconQueue():this.flushEvents(),d().clearTimeout(this._sendTimeout)},Ki.prototype._clearBeaconQueue=function(){var v=this._eventQueue.length>this._options.maxBeaconSize?this._eventQueue.length-this._options.maxBeaconSize:0,m=this._eventQueue.slice(v);v>0&&Object.assign(m[m.length-1],vd({mux_view_message:"event queue truncated"}));var p=this._createPayload(m);jf(this._beaconUrl,p,!0,function(){})},Ki.prototype._sendBeaconQueue=function(){var v=this;if(!this._postInFlight){var m=this._eventQueue.slice(0,this._options.maxBeaconSize);this._eventQueue=this._eventQueue.slice(this._options.maxBeaconSize),this._postInFlight=!0;var p=this._createPayload(m),y=L.now();jf(this._beaconUrl,p,!1,function(_,I){I?(v._eventQueue=m.concat(v._eventQueue),v._failureCount+=1,A.info("Error sending beacon: "+I)):v._failureCount=0,v._roundTripTime=L.now()-y,v._postInFlight=!1})}},Ki.prototype._getNextBeaconTime=function(){if(!this._failureCount)return this._options.baseTimeBetweenBeacons;var v=Math.pow(2,this._failureCount-1);return(1+(v*=Math.random()))*this._options.baseTimeBetweenBeacons},Ki.prototype._startBeaconSending=function(){var v=this;d().clearTimeout(this._sendTimeout),this.destroyed||(this._sendTimeout=d().setTimeout(function(){v._eventQueue.length&&v._sendBeaconQueue(),v._startBeaconSending()},this._getNextBeaconTime()))},Ki.prototype._createPayload=function(v){var m,p,y,_=this,I={transmission_timestamp:Math.round(L.now())};this._roundTripTime&&(I.rtt_ms=Math.round(this._roundTripTime));var x=function(){m=JSON.stringify({metadata:I,events:p||v}),y=m.length/1024},R=function(){return y<=_._options.maxPayloadKBSize};return x(),R()||(A.info("Payload size is too big ("+y+" kb). Removing unnecessary events."),p=v.filter(function(U){return TE.indexOf(U.e)===-1}),x()),R()||(A.info("Payload size still too big ("+y+" kb). Cropping fields.."),p.forEach(function(U){for(var C in U){var K=U[C];typeof K=="string"&&K.length>51200&&(U[C]=K.substring(0,51200))}}),x()),m};var AE=function(v){return v.length<=57344},jf=function(v,m,p,y){if(p&&navigator&&navigator.sendBeacon&&navigator.sendBeacon(v,m))y();else if(d().fetch)d().fetch(v,{method:"POST",body:m,headers:{"Content-Type":"text/plain"},keepalive:AE(m)}).then(function(I){return y(null,I.ok?null:"Error")}).catch(function(I){return y(null,I)});else{if(d().XMLHttpRequest){var _=new(d()).XMLHttpRequest;return _.onreadystatechange=function(){if(_.readyState===4)return y(null,_.status!==200?"error":void 0)},_.open("POST",v),_.setRequestHeader("Content-Type","text/plain"),void _.send(m)}y()}},SE=Ki;function xE(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return zf(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?zf(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function zf(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}function Xf(v,m){var p=Object.keys(v);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(v);m&&(y=y.filter(function(_){return Object.getOwnPropertyDescriptor(v,_).enumerable})),p.push.apply(p,y)}return p}function gs(v){for(var m=1;m<arguments.length;m++){var p=arguments[m]!=null?arguments[m]:{};m%2?Xf(Object(p),!0).forEach(function(y){_a(v,y,p[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(p)):Xf(Object(p)).forEach(function(y){Object.defineProperty(v,y,Object.getOwnPropertyDescriptor(p,y))})}return v}function on(v){return on=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},on(v)}function IE(v,m){if(!(v instanceof m))throw new TypeError("Cannot call a class as a function")}function Qf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function _a(v,m,p){return m in v?Object.defineProperty(v,m,{value:p,enumerable:!0,configurable:!0,writable:!0}):v[m]=p,v}var LE=["env_key","view_id","view_sequence_number","player_sequence_number","beacon_domain","player_playhead_time","viewer_time","mux_api_version","event","video_id","player_instance_id"],kE=["adplay","adplaying","adpause","adfirstquartile","admidpoint","adthirdquartile","adended","adresponse","adrequest"],RE=["ad_id","ad_creative_id","ad_universal_id"],wE=["viewstart","error","ended","viewend"],DE=function(){function v(_,I){var x,R,U,C,K,ve,de,he,ae,me,Me,At,St,Ft,ti,Ce=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};IE(this,v),_a(this,"previousBeaconData",null),_a(this,"lastEventTime",0),_a(this,"rateLimited",!1),this.mux=_,this.envKey=I,this.options=Ce,this.eventQueue=new SE(vE(this.envKey,this.options)),this.sampleRate=(x=this.options.sampleRate)!==null&&x!==void 0?x:1,this.disableCookies=(R=this.options.disableCookies)!==null&&R!==void 0&&R,this.respectDoNotTrack=(U=this.options.respectDoNotTrack)!==null&&U!==void 0&&U,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.pageLevelData={mux_api_version:this.mux.API_VERSION,mux_embed:this.mux.NAME,mux_embed_version:this.mux.VERSION,viewer_application_name:(C=this.options.platform)===null||C===void 0?void 0:C.name,viewer_application_version:(K=this.options.platform)===null||K===void 0?void 0:K.version,viewer_application_engine:(ve=this.options.platform)===null||ve===void 0?void 0:ve.layout,viewer_device_name:(de=this.options.platform)===null||de===void 0?void 0:de.product,viewer_device_category:"",viewer_device_manufacturer:(he=this.options.platform)===null||he===void 0?void 0:he.manufacturer,viewer_os_family:(ae=this.options.platform)===null||ae===void 0||(me=ae.os)===null||me===void 0?void 0:me.family,viewer_os_architecture:(Me=this.options.platform)===null||Me===void 0||(At=Me.os)===null||At===void 0?void 0:At.architecture,viewer_os_version:(St=this.options.platform)===null||St===void 0||(Ft=St.os)===null||Ft===void 0?void 0:Ft.version,viewer_connection_type:EE(),page_url:d()===null||d()===void 0||(ti=d().location)===null||ti===void 0?void 0:ti.href},this.viewerData=this.disableCookies?{}:gE()}var m,p,y;return m=v,(p=[{key:"send",value:function(_,I){var x;if(_&&I!=null&&I.view_id){if(this.respectDoNotTrack&&k())return A.info("Not sending `"+_+"` because Do Not Track is enabled");if(!I||on(I)!=="object")return A.error("A data object was expected in send() but was not provided");var R,U,C=this.disableCookies?{}:(R=Gf(),U=L.now(),R.session_start&&(R.sst=R.session_start,delete R.session_start),R.session_id&&(R.sid=R.session_id,delete R.session_id),R.session_expires&&(R.sex=R.session_expires,delete R.session_expires),(!R.sex||R.sex<U)&&(R.sid=c(),R.sst=U),R.sex=U+15e5,Vf(R),{session_id:R.sid,session_start:R.sst,session_expires:R.sex}),K=gs(gs(gs(gs(gs({},this.pageLevelData),I),C),this.viewerData),{},{event:_,env_key:this.envKey});K.user_id&&(K.viewer_user_id=K.user_id,delete K.user_id);var ve=((x=K.mux_sample_number)!==null&&x!==void 0?x:0)>=this.sampleRate,de=vd(this._deduplicateBeaconData(_,K));if(this.lastEventTime=this.mux.utils.now(),ve)return A.info("Not sending event due to sample rate restriction",_,K,de);if(this.envKey||A.info("Missing environment key (envKey) - beacons will be dropped if the video source is not a valid mux video URL",_,K,de),!this.rateLimited){if(A.info("Sending event",_,K,de),this.rateLimited=!this.eventQueue.queueEvent(_,de),this.mux.WINDOW_UNLOADING&&_==="viewend")this.eventQueue.destroy(!0);else if(this.mux.WINDOW_HIDDEN&&_==="hb"?this.eventQueue.flushEvents(!0):wE.indexOf(_)>=0&&this.eventQueue.flushEvents(),this.rateLimited)return K.event="eventrateexceeded",de=vd(K),this.eventQueue.queueEvent(K.event,de),A.error("Beaconing disabled due to rate limit.")}}}},{key:"destroy",value:function(){this.eventQueue.destroy(!1)}},{key:"_deduplicateBeaconData",value:function(_,I){var x=this,R={},U=I.view_id;if(U==="-1"||_==="viewstart"||_==="viewend"||!this.previousBeaconData||this.mux.utils.now()-this.lastEventTime>=6e5)R=gs({},I),U&&(this.previousBeaconData=R),U&&_==="viewend"&&(this.previousBeaconData=null);else{var C=_.indexOf("request")===0;Object.entries(I).forEach(function(K){var ve=xE(K,2),de=ve[0],he=ve[1];x.previousBeaconData&&(he!==x.previousBeaconData[de]||LE.indexOf(de)>-1||x.objectHasChanged(C,de,he,x.previousBeaconData[de])||x.eventRequiresKey(_,de))&&(R[de]=he,x.previousBeaconData[de]=he)})}return R}},{key:"objectHasChanged",value:function(_,I,x,R){return!(!_||I.indexOf("request_")!==0||I!=="request_response_headers"&&on(x)==="object"&&on(R)==="object"&&Object.keys(x||{}).length===Object.keys(R||{}).length)}},{key:"eventRequiresKey",value:function(_,I){return _==="renditionchange"&&I.indexOf("video_source_")===0||!(!RE.includes(I)||!kE.includes(_))}}])&&Qf(m.prototype,p),y&&Qf(m,y),Object.defineProperty(m,"prototype",{writable:!1}),v}();function Zf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function CE(v,m,p){return m&&Zf(v.prototype,m),p&&Zf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var ME=CE(function v(m){(function(C,K){if(!(C instanceof K))throw new TypeError("Cannot call a class as a function")})(this,v);var p=0,y=0,_=0,I=0,x=0,R=0,U=0;m.on("requestcompleted",function(C,K){var ve,de,he=K.request_start,ae=K.request_response_start,me=K.request_response_end,Me=K.request_bytes_loaded;if(I++,ae?(ve=ae-(he!=null?he:0),de=(me!=null?me:0)-ae):de=(me!=null?me:0)-(he!=null?he:0),de>0&&Me&&Me>0){var At=Me/de*8e3;x++,y+=Me,_+=de,m.data.view_min_request_throughput=Math.min(m.data.view_min_request_throughput||1/0,At),m.data.view_average_request_throughput=y/_*8e3,m.data.view_request_count=I,ve>0&&(p+=ve,m.data.view_max_request_latency=Math.max(m.data.view_max_request_latency||0,ve),m.data.view_average_request_latency=p/x)}}),m.on("requestfailed",function(C,K){I++,R++,m.data.view_request_count=I,m.data.view_request_failed_count=R}),m.on("requestcanceled",function(C,K){I++,U++,m.data.view_request_count=I,m.data.view_request_canceled_count=U})});function Jf(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function OE(v,m,p){return m&&Jf(v.prototype,m),p&&Jf(v,p),Object.defineProperty(v,"prototype",{writable:!1}),v}var PE=OE(function v(m){var p=this;(function(y,_){if(!(y instanceof _))throw new TypeError("Cannot call a class as a function")})(this,v),m.on("before*",function(y,_){var I=_.viewer_time,x=L.now(),R=p._lastEventTime;if(p._lastEventTime=x,R&&x-R>36e5){var U=Object.keys(m.data).reduce(function(C,K){return K.indexOf("video_")===0?Object.assign(C,function(ve,de,he){return de in ve?Object.defineProperty(ve,de,{value:he,enumerable:!0,configurable:!0,writable:!0}):ve[de]=he,ve}({},K,m.data[K])):C},{});m.mux.log.info("Received event after at least an hour inactivity, creating a new view"),m.emit("viewinit",Object.assign({viewer_time:I},U)),m.playbackHeartbeat._playheadShouldBeProgressing&&y.type!=="play"&&y.type!=="adbreakstart"&&(m.emit("play",{viewer_time:I}),y.type!=="playing"&&m.emit("playing",{viewer_time:I}))}})});function Ed(v){return Ed=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},Ed(v)}function NE(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return em(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?em(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
4
4
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function em(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}function tm(v,m){for(var p=0;p<m.length;p++){var y=m[p];y.enumerable=y.enumerable||!1,y.configurable=!0,"value"in y&&(y.writable=!0),Object.defineProperty(v,y.key,y)}}function bd(v,m){return bd=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,y){return p.__proto__=y,p},bd(v,m)}function UE(v){var m=function(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var p,y=Aa(v);if(m){var _=Aa(this).constructor;p=Reflect.construct(y,arguments,_)}else p=y.apply(this,arguments);return FE(this,p)}}function FE(v,m){if(m&&(Ed(m)==="object"||typeof m=="function"))return m;if(m!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return gt(v)}function gt(v){if(v===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return v}function Aa(v){return Aa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(m){return m.__proto__||Object.getPrototypeOf(m)},Aa(v)}var BE=["viewstart","ended","loadstart","pause","play","playing","ratechange","waiting","adplay","adpause","adended","aderror","adplaying","adrequest","adresponse","adbreakstart","adbreakend","adfirstquartile","admidpoint","adthirdquartile","rebufferstart","rebufferend","seeked","error","hb","requestcompleted","requestfailed","requestcanceled","renditionchange"],$E=function(v){(function(x,R){if(typeof R!="function"&&R!==null)throw new TypeError("Super expression must either be null or a function");x.prototype=Object.create(R&&R.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),Object.defineProperty(x,"prototype",{writable:!1}),R&&bd(x,R)})(I,v);var m,p,y,_=UE(I);function I(x,R,U){var C;(function(ae,me){if(!(ae instanceof me))throw new TypeError("Cannot call a class as a function")})(this,I),(C=_.call(this)).DOM_CONTENT_LOADED_EVENT_END=$.domContentLoadedEventEnd(),C.NAVIGATION_START=$.navigationStart(),C.mux=x,C.id=R,(U=Object.assign({debug:!1,minimumRebufferDuration:250,sustainedRebufferThreshold:1e3,playbackHeartbeatTime:25,beaconDomain:"litix.io",sampleRate:1,disableCookies:!1,respectDoNotTrack:!1,disableRebufferTracking:!1,disablePlayheadRebufferTracking:!1,errorTranslator:function(ae){return ae}},U)).data=U.data||{},U.data.property_key&&(U.data.env_key=U.data.property_key,delete U.data.property_key),A.setLevel(U.debug?"debug":"warn"),C.getPlayheadTime=U.getPlayheadTime,C.getStateData=U.getStateData||function(){return{}},C.getAdData=U.getAdData||function(){},C.minimumRebufferDuration=U.minimumRebufferDuration,C.sustainedRebufferThreshold=U.sustainedRebufferThreshold,C.playbackHeartbeatTime=U.playbackHeartbeatTime,C.disableRebufferTracking=U.disableRebufferTracking,C.disableRebufferTracking&&C.mux.log.warn("Disabling rebuffer tracking. This should only be used in specific circumstances as a last resort when your player is known to unreliably track rebuffering."),C.disablePlayheadRebufferTracking=U.disablePlayheadRebufferTracking,C.errorTranslator=U.errorTranslator,C.playbackEventDispatcher=new DE(x,U.data.env_key,U),C.data={player_instance_id:c(),mux_sample_rate:U.sampleRate,beacon_domain:U.beaconCollectionDomain?U.beaconCollectionDomain:U.beaconDomain},C.data.view_sequence_number=1,C.data.player_sequence_number=1,C.oldEmit=C.emit,C.emit=function(ae,me){me=Object.assign({viewer_time:this.mux.utils.now()},me),this.oldEmit(ae,me)};var K=function(){this.data.view_start===void 0&&(this.data.view_start=this.mux.utils.now(),this.emit("viewstart"))}.bind(gt(C));C.on("viewinit",function(ae,me){this._resetVideoData(),this._resetViewData(),this._resetErrorData(),this._updateStateData(),Object.assign(this.data,me),this._initializeViewData(),this.one("play",K),this.one("adbreakstart",K)});var ve=function(ae){this.emit("viewend"),this.send("viewend"),this.emit("viewinit",ae)}.bind(gt(C));if(C.on("videochange",function(ae,me){ve(me)}),C.on("programchange",function(ae,me){this.data.player_is_paused&&this.mux.log.warn("The `programchange` event is intended to be used when the content changes mid playback without the video source changing, however the video is not currently playing. If the video source is changing please use the videochange event otherwise you will lose startup time information."),ve(Object.assign(me,{view_program_changed:!0})),K(),this.emit("play"),this.emit("playing")}),C.on("fragmentchange",function(ae,me){this.currentFragmentPDT=me.currentFragmentPDT,this.currentFragmentStart=me.currentFragmentStart}),C.on("destroy",C.destroy),typeof window!="undefined"&&typeof window.addEventListener=="function"&&typeof window.removeEventListener=="function"){var de=function(){var ae=C.data.view_start!==void 0;C.mux.WINDOW_HIDDEN=document.visibilityState==="hidden",ae&&C.mux.WINDOW_HIDDEN&&(C.data.player_is_paused||C.emit("hb"))};window.addEventListener("visibilitychange",de,!1);var he=function(ae){ae.persisted||C.destroy()};window.addEventListener("pagehide",he,!1),C.on("destroy",function(){window.removeEventListener("visibilitychange",de),window.removeEventListener("pagehide",he)})}return C.on("playerready",function(ae,me){Object.assign(this.data,me)}),BE.forEach(function(ae){C.on(ae,function(me,Me){ae.indexOf("ad")!==0&&this._updateStateData(),Object.assign(this.data,Me),this._sanitizeData()}),C.on("after"+ae,function(){(ae!=="error"||this.errorTracker.viewErrored)&&this.send(ae)})}),C.on("viewend",function(ae,me){Object.assign(C.data,me)}),C.one("playerready",function(ae){var me=this.mux.utils.now();this.data.player_init_time&&(this.data.player_startup_time=me-this.data.player_init_time),!this.mux.PLAYER_TRACKED&&this.NAVIGATION_START&&(this.mux.PLAYER_TRACKED=!0,(this.data.player_init_time||this.DOM_CONTENT_LOADED_EVENT_END)&&(this.data.page_load_time=Math.min(this.data.player_init_time||1/0,this.DOM_CONTENT_LOADED_EVENT_END||1/0)-this.NAVIGATION_START)),this.send("playerready"),delete this.data.player_startup_time,delete this.data.page_load_time}),C.longResumeTracker=new PE(gt(C)),C.errorTracker=new Jt(gt(C)),new mE(gt(C)),C.seekingTracker=new lE(gt(C)),C.playheadTime=new rt(gt(C)),C.playbackHeartbeat=new _t(gt(C)),new aE(gt(C)),C.watchTimeTracker=new Ai(gt(C)),new rn(gt(C)),C.adTracker=new cE(gt(C)),new rE(gt(C)),new Ta(gt(C)),new sE(gt(C)),new hE(gt(C)),new ME(gt(C)),U.hlsjs&&C.addHLSJS(U),U.dashjs&&C.addDashJS(U),C.emit("viewinit",U.data),C}return m=I,p=[{key:"destroy",value:function(){this._destroyed||(this._destroyed=!0,this.data.view_start!==void 0&&(this.emit("viewend"),this.send("viewend")),this.playbackEventDispatcher.destroy(),this.removeHLSJS(),this.removeDashJS(),window.clearTimeout(this._heartBeatTimeout))}},{key:"send",value:function(x){if(this.data.view_id){var R=Object.assign({},this.data);if(R.video_source_is_live===void 0&&(R.player_source_duration===1/0||R.video_source_duration===1/0?R.video_source_is_live=!0:(R.player_source_duration>0||R.video_source_duration>0)&&(R.video_source_is_live=!1)),R.video_source_is_live||["player_program_time","player_manifest_newest_program_time","player_live_edge_program_time","player_program_time","video_holdback","video_part_holdback","video_target_duration","video_part_target_duration"].forEach(function(ve){R[ve]=void 0}),R.video_source_url=R.video_source_url||R.player_source_url,R.video_source_url){var U=NE(D(R.video_source_url),2),C=U[0],K=U[1];R.video_source_domain=K,R.video_source_hostname=C}delete R.ad_request_id,this.playbackEventDispatcher.send(x,R),this.data.view_sequence_number++,this.data.player_sequence_number++,this._restartHeartBeat(),x==="viewend"&&delete this.data.view_id}}},{key:"_updateStateData",value:function(){Object.assign(this.data,this.getStateData()),this.playheadTime._updatePlayheadTime(),this._sanitizeData()}},{key:"_sanitizeData",value:function(){var x=this;["player_width","player_height","video_source_width","video_source_height","player_playhead_time","video_source_bitrate"].forEach(function(R){var U=parseInt(x.data[R],10);x.data[R]=isNaN(U)?void 0:U}),["player_source_url","video_source_url"].forEach(function(R){if(x.data[R]){var U=x.data[R].toLowerCase();U.indexOf("data:")!==0&&U.indexOf("blob:")!==0||(x.data[R]="MSE style URL")}})}},{key:"_resetVideoData",value:function(x,R){var U=this;Object.keys(this.data).forEach(function(C){C.indexOf("video_")===0&&delete U.data[C]})}},{key:"_resetViewData",value:function(){var x=this;Object.keys(this.data).forEach(function(R){R.indexOf("view_")===0&&delete x.data[R]}),this.data.view_sequence_number=1}},{key:"_resetErrorData",value:function(x,R){delete this.data.player_error_code,delete this.data.player_error_message}},{key:"_initializeViewData",value:function(){var x=this,R=this.data.view_id=c(),U=function(){R===x.data.view_id&&O(x.data,"player_view_count",1)};this.data.player_is_paused?this.one("play",U):U()}},{key:"_restartHeartBeat",value:function(){var x=this;window.clearTimeout(this._heartBeatTimeout),this.errorTracker.viewErrored||(this._heartBeatTimeout=window.setTimeout(function(){x.data.player_is_paused||x.emit("hb")},1e4))}},{key:"addHLSJS",value:function(x){x.hlsjs?this.hlsjs?this.mux.log.warn("An instance of HLS.js is already being monitored for this player."):(this.hlsjs=x.hlsjs,function(R,U,C){var K=arguments.length>4?arguments[4]:void 0,ve=R.log,de=R.utils.secondsToMs,he=function(Oe){var Q,fe=parseInt(K.version);return fe===1&&Oe.programDateTime!==null&&(Q=Oe.programDateTime),fe===0&&Oe.pdt!==null&&(Q=Oe.pdt),Q};if($.exists()){var ae=function(Oe,Q){return R.emit(U,Oe,Q)},me=function(Oe,Q){var fe=Q.levels,ee=Q.audioTracks,_e=Q.url,De=Q.stats,ct=Q.networkDetails,Bt=Q.sessionData,xt={},Pt={};fe.forEach(function(ft,un){xt[un]={width:ft.width,height:ft.height,bitrate:ft.bitrate,attrs:ft.attrs}}),ee.forEach(function(ft,un){Pt[un]={name:ft.name,language:ft.lang,bitrate:ft.bitrate}});var vt=we(De),Et=vt.bytesLoaded,ar=vt.requestStart,cn=vt.responseStart,wr=vt.responseEnd;ae("requestcompleted",Ee(Ee({},z(Bt)),{},{request_event_type:Oe,request_bytes_loaded:Et,request_start:ar,request_response_start:cn,request_response_end:wr,request_type:"manifest",request_hostname:N(_e),request_response_headers:Se(ct),request_rendition_lists:{media:xt,audio:Pt,video:{}}}))};C.on(K.Events.MANIFEST_LOADED,me);var Me=function(Oe,Q){var fe=Q.details,ee=Q.level,_e=Q.networkDetails,De=Q.stats,ct=we(De),Bt=ct.bytesLoaded,xt=ct.requestStart,Pt=ct.responseStart,vt=ct.responseEnd,Et=fe.fragments[fe.fragments.length-1],ar=he(Et)+de(Et.duration);ae("requestcompleted",{request_event_type:Oe,request_bytes_loaded:Bt,request_start:xt,request_response_start:Pt,request_response_end:vt,request_current_level:ee,request_type:"manifest",request_hostname:N(fe.url),request_response_headers:Se(_e),video_holdback:fe.holdBack&&de(fe.holdBack),video_part_holdback:fe.partHoldBack&&de(fe.partHoldBack),video_part_target_duration:fe.partTarget&&de(fe.partTarget),video_target_duration:fe.targetduration&&de(fe.targetduration),video_source_is_live:fe.live,player_manifest_newest_program_time:isNaN(ar)?void 0:ar})};C.on(K.Events.LEVEL_LOADED,Me);var At=function(Oe,Q){var fe=Q.details,ee=Q.networkDetails,_e=Q.stats,De=we(_e),ct=De.bytesLoaded,Bt=De.requestStart,xt=De.responseStart,Pt=De.responseEnd;ae("requestcompleted",{request_event_type:Oe,request_bytes_loaded:ct,request_start:Bt,request_response_start:xt,request_response_end:Pt,request_type:"manifest",request_hostname:N(fe.url),request_response_headers:Se(ee)})};C.on(K.Events.AUDIO_TRACK_LOADED,At);var St=function(Oe,Q){var fe=Q.stats,ee=Q.networkDetails,_e=Q.frag;fe=fe||_e.stats;var De=we(fe),ct=De.bytesLoaded,Bt=De.requestStart,xt=De.responseStart,Pt=De.responseEnd,vt=ee?Se(ee):void 0,Et={request_event_type:Oe,request_bytes_loaded:ct,request_start:Bt,request_response_start:xt,request_response_end:Pt,request_hostname:ee?N(ee.responseURL):void 0,request_id:vt?X(vt):void 0,request_response_headers:vt,request_media_duration:_e.duration,request_url:ee==null?void 0:ee.responseURL};_e.type==="main"?(Et.request_type="media",Et.request_current_level=_e.level,Et.request_video_width=(C.levels[_e.level]||{}).width,Et.request_video_height=(C.levels[_e.level]||{}).height,Et.request_labeled_bitrate=(C.levels[_e.level]||{}).bitrate):Et.request_type=_e.type,ae("requestcompleted",Et)};C.on(K.Events.FRAG_LOADED,St);var Ft=function(Oe,Q){var fe=Q.frag,ee=fe.start,_e={currentFragmentPDT:he(fe),currentFragmentStart:de(ee)};ae("fragmentchange",_e)};C.on(K.Events.FRAG_CHANGED,Ft);var ti=function(Oe,Q){var fe=Q.type,ee=Q.details,_e=Q.response,De=Q.fatal,ct=Q.frag,Bt=Q.networkDetails,xt=(ct==null?void 0:ct.url)||Q.url||"",Pt=Bt?Se(Bt):void 0;if(ee!==K.ErrorDetails.MANIFEST_LOAD_ERROR&&ee!==K.ErrorDetails.MANIFEST_LOAD_TIMEOUT&&ee!==K.ErrorDetails.FRAG_LOAD_ERROR&&ee!==K.ErrorDetails.FRAG_LOAD_TIMEOUT&&ee!==K.ErrorDetails.LEVEL_LOAD_ERROR&&ee!==K.ErrorDetails.LEVEL_LOAD_TIMEOUT&&ee!==K.ErrorDetails.AUDIO_TRACK_LOAD_ERROR&&ee!==K.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT&&ee!==K.ErrorDetails.SUBTITLE_LOAD_ERROR&&ee!==K.ErrorDetails.SUBTITLE_LOAD_TIMEOUT&&ee!==K.ErrorDetails.KEY_LOAD_ERROR&&ee!==K.ErrorDetails.KEY_LOAD_TIMEOUT||ae("requestfailed",{request_error:ee,request_url:xt,request_hostname:N(xt),request_id:Pt?X(Pt):void 0,request_type:ee===K.ErrorDetails.FRAG_LOAD_ERROR||ee===K.ErrorDetails.FRAG_LOAD_TIMEOUT?"media":ee===K.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||ee===K.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT?"audio":ee===K.ErrorDetails.SUBTITLE_LOAD_ERROR||ee===K.ErrorDetails.SUBTITLE_LOAD_TIMEOUT?"subtitle":ee===K.ErrorDetails.KEY_LOAD_ERROR||ee===K.ErrorDetails.KEY_LOAD_TIMEOUT?"encryption":"manifest",request_error_code:_e==null?void 0:_e.code,request_error_text:_e==null?void 0:_e.text}),De){var vt,Et="".concat(xt?"url: ".concat(xt,`
|
|
5
5
|
`):"")+"".concat(_e&&(_e.code||_e.text)?"response: ".concat(_e.code,", ").concat(_e.text,`
|
|
6
6
|
`):"")+"".concat(Q.reason?"failure reason: ".concat(Q.reason,`
|
|
@@ -12,11 +12,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
12
12
|
`):"")+"".concat(Q.err?"error message: ".concat((vt=Q.err)===null||vt===void 0?void 0:vt.message,`
|
|
13
13
|
`):"");ae("error",{player_error_code:fe,player_error_message:ee,player_error_context:Et})}};C.on(K.Events.ERROR,ti);var Ce=function(Oe,Q){var fe=Q.frag,ee=fe&&fe._url||"";ae("requestcanceled",{request_event_type:Oe,request_url:ee,request_type:"media",request_hostname:N(ee)})};C.on(K.Events.FRAG_LOAD_EMERGENCY_ABORTED,Ce);var ot=function(Oe,Q){var fe=Q.level,ee=C.levels[fe];if(ee&&ee.attrs&&ee.attrs.BANDWIDTH){var _e,De=ee.attrs.BANDWIDTH,ct=parseFloat(ee.attrs["FRAME-RATE"]);isNaN(ct)||(_e=ct),De?ae("renditionchange",{video_source_fps:_e,video_source_bitrate:De,video_source_width:ee.width,video_source_height:ee.height,video_source_rendition_name:ee.name,video_source_codec:ee==null?void 0:ee.videoCodec}):ve.warn("missing BANDWIDTH from HLS manifest parsed by HLS.js")}};C.on(K.Events.LEVEL_SWITCHED,ot),C._stopMuxMonitor=function(){C.off(K.Events.MANIFEST_LOADED,me),C.off(K.Events.LEVEL_LOADED,Me),C.off(K.Events.AUDIO_TRACK_LOADED,At),C.off(K.Events.FRAG_LOADED,St),C.off(K.Events.FRAG_CHANGED,Ft),C.off(K.Events.ERROR,ti),C.off(K.Events.FRAG_LOAD_EMERGENCY_ABORTED,Ce),C.off(K.Events.LEVEL_SWITCHED,ot),C.off(K.Events.DESTROYING,C._stopMuxMonitor),delete C._stopMuxMonitor},C.on(K.Events.DESTROYING,C._stopMuxMonitor)}else ve.warn("performance timing not supported. Not tracking HLS.js.")}(this.mux,this.id,x.hlsjs,{},x.Hls||window.Hls)):this.mux.log.warn("You must pass a valid hlsjs instance in order to track it.")}},{key:"removeHLSJS",value:function(){var x;this.hlsjs&&((x=this.hlsjs)&&typeof x._stopMuxMonitor=="function"&&x._stopMuxMonitor(),this.hlsjs=void 0)}},{key:"addDashJS",value:function(x){x.dashjs?this.dashjs?this.mux.log.warn("An instance of Dash.js is already being monitored for this player."):(this.dashjs=x.dashjs,function(R,U,C){var K=R.log;if(C&&C.on){var ve=function(Ce,ot){return R.emit(U,Ce,ot)},de=function(Ce){var ot=Ce.type,Oe=(Ce.data||{}).url;ve("requestcompleted",{request_event_type:ot,request_start:0,request_response_start:0,request_response_end:0,request_bytes_loaded:-1,request_type:"manifest",request_hostname:N(Oe),request_url:Oe})};C.on("manifestLoaded",de);var he={},ae=function(Ce){var ot=Ce.type,Oe=Ce.fragmentModel,Q=(Ce.chunk||{}).mediaInfo||{},fe=Q.type,ee=Q.bitrateList,_e={};(ee=ee||[]).forEach(function(wr,ft){_e[ft]={},_e[ft].width=wr.width,_e[ft].height=wr.height,_e[ft].bitrate=wr.bandwidth,_e[ft].attrs={}}),fe==="video"?he.video=_e:fe==="audio"?he.audio=_e:he.media=_e;var De=xe(Oe,C),ct=De.requestStart,Bt=De.requestResponseStart,xt=De.requestResponseEnd,Pt=De.requestResponseHeaders,vt=De.requestMediaDuration,Et=De.requestHostname,ar=De.requestUrl,cn=De.requestId;ve("requestcompleted",{request_event_type:ot,request_start:ct,request_response_start:Bt,request_response_end:xt,request_bytes_loaded:-1,request_type:fe+"_init",request_response_headers:Pt,request_hostname:Et,request_id:cn,request_url:ar,request_media_duration:vt,request_rendition_lists:he})};C.on("initFragmentLoaded",ae);var me=function(Ce){var ot=Ce.type,Oe=Ce.fragmentModel,Q=Ce.chunk||{},fe=Q.mediaInfo,ee=Q.start,_e=(fe||{}).type,De=xe(Oe,C),ct=De.requestStart,Bt=De.requestResponseStart,xt=De.requestResponseEnd,Pt=De.requestBytesLoaded,vt=De.requestResponseHeaders,Et=De.requestMediaDuration,ar=De.requestHostname,cn=De.requestUrl,wr=De.requestId,ft=Ie(_e,C),un=ft.currentLevel,db=ft.renditionWidth,cb=ft.renditionHeight,ub=ft.renditionBitrate;ve("requestcompleted",{request_event_type:ot,request_start:ct,request_response_start:Bt,request_response_end:xt,request_bytes_loaded:Pt,request_type:_e,request_response_headers:vt,request_hostname:ar,request_id:wr,request_url:cn,request_media_start_time:ee,request_media_duration:Et,request_current_level:un,request_labeled_bitrate:ub,request_video_width:db,request_video_height:cb})};C.on("mediaFragmentLoaded",me);var Me={video:void 0,audio:void 0,totalBitrate:void 0},At=function(){if(Me.video&&typeof Me.video.bitrate=="number"){if(Me.video.width&&Me.video.height){var Ce=Me.video.bitrate;return Me.audio&&typeof Me.audio.bitrate=="number"&&(Ce+=Me.audio.bitrate),Ce!==Me.totalBitrate?(Me.totalBitrate=Ce,{video_source_bitrate:Ce,video_source_height:Me.video.height,video_source_width:Me.video.width,video_source_codec:Ve(Me.video.codec)}):void 0}K.warn("have bitrate info for video but missing width/height")}},St=function(Ce,ot,Oe){if(typeof Ce.newQuality=="number"){var Q=Ce.mediaType;if(Q==="audio"||Q==="video"){var fe=C.getBitrateInfoListFor(Q).find(function(_e){return _e.qualityIndex===Ce.newQuality});if(fe&&typeof fe.bitrate=="number"){Me[Q]=ne(ne({},fe),{},{codec:C.getCurrentTrackFor(Q).codec});var ee=At();ee&&ve("renditionchange",ee)}else K.warn("missing bitrate info for ".concat(Q))}}else K.warn("missing evt.newQuality in qualityChangeRendered event",Ce)};C.on("qualityChangeRendered",St);var Ft=function(Ce){var ot=Ce.request,Oe=Ce.mediaType;ve("requestcanceled",{request_event_type:(ot=ot||{}).type+"_"+ot.action,request_url:ot.url,request_type:Oe,request_hostname:N(ot.url)})};C.on("fragmentLoadingAbandoned",Ft);var ti=function(Ce){var ot,Oe,Q=Ce.error,fe=(Q==null||(ot=Q.data)===null||ot===void 0?void 0:ot.request)||{},ee=(Q==null||(Oe=Q.data)===null||Oe===void 0?void 0:Oe.response)||{};(Q==null?void 0:Q.code)===27&&ve("requestfailed",{request_error:fe.type+"_"+fe.action,request_url:fe.url,request_hostname:N(fe.url),request_type:fe.mediaType,request_error_code:ee.status,request_error_text:ee.statusText});var _e="".concat(fe!=null&&fe.url?"url: ".concat(fe.url,`
|
|
14
14
|
`):"")+"".concat(ee!=null&&ee.status||ee!=null&&ee.statusText?"response: ".concat(ee==null?void 0:ee.status,", ").concat(ee==null?void 0:ee.statusText,`
|
|
15
|
-
`):"");ve("error",{player_error_code:Q==null?void 0:Q.code,player_error_message:Q==null?void 0:Q.message,player_error_context:_e})};C.on("error",ti),C._stopMuxMonitor=function(){C.off("manifestLoaded",de),C.off("initFragmentLoaded",ae),C.off("mediaFragmentLoaded",me),C.off("qualityChangeRendered",St),C.off("error",ti),C.off("fragmentLoadingAbandoned",Ft),delete C._stopMuxMonitor}}else K.warn("Invalid dash.js player reference. Monitoring blocked.")}(this.mux,this.id,x.dashjs)):this.mux.log.warn("You must pass a valid dashjs instance in order to track it.")}},{key:"removeDashJS",value:function(){var x;this.dashjs&&((x=this.dashjs)&&typeof x._stopMuxMonitor=="function"&&x._stopMuxMonitor(),this.dashjs=void 0)}}],p&&tm(m.prototype,p),y&&tm(m,y),Object.defineProperty(m,"prototype",{writable:!1}),I}(ke),
|
|
15
|
+
`):"");ve("error",{player_error_code:Q==null?void 0:Q.code,player_error_message:Q==null?void 0:Q.message,player_error_context:_e})};C.on("error",ti),C._stopMuxMonitor=function(){C.off("manifestLoaded",de),C.off("initFragmentLoaded",ae),C.off("mediaFragmentLoaded",me),C.off("qualityChangeRendered",St),C.off("error",ti),C.off("fragmentLoadingAbandoned",Ft),delete C._stopMuxMonitor}}else K.warn("Invalid dash.js player reference. Monitoring blocked.")}(this.mux,this.id,x.dashjs)):this.mux.log.warn("You must pass a valid dashjs instance in order to track it.")}},{key:"removeDashJS",value:function(){var x;this.dashjs&&((x=this.dashjs)&&typeof x._stopMuxMonitor=="function"&&x._stopMuxMonitor(),this.dashjs=void 0)}}],p&&tm(m.prototype,p),y&&tm(m,y),Object.defineProperty(m,"prototype",{writable:!1}),I}(ke),HE=$E,GE=o(153),ln=o.n(GE);function yd(v){return yd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},yd(v)}function im(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return rm(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?rm(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
16
16
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function rm(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}var vs,VE=["loadstart","pause","play","playing","seeking","seeked","timeupdate","ratechange","stalled","waiting","error","ended"],KE={1:"MEDIA_ERR_ABORTED",2:"MEDIA_ERR_NETWORK",3:"MEDIA_ERR_DECODE",4:"MEDIA_ERR_SRC_NOT_SUPPORTED"};d()&&d().WeakMap&&(vs=new WeakMap);var WE="#EXT-X-TARGETDURATION",qE="#EXT-X-PART-INF",YE="#EXT-X-SERVER-CONTROL",jE="#EXTINF",zE="#EXT-X-PROGRAM-DATE-TIME",XE="#EXT-X-VERSION",QE="#EXT-X-SESSION-DATA",Sa=function(v){return this.buffer="",this.manifest={segments:[],serverControl:{},sessionData:{}},this.currentUri={},this.process(v),this.manifest};Sa.prototype.process=function(v){var m;for(this.buffer+=v,m=this.buffer.indexOf(`
|
|
17
17
|
`);m>-1;m=this.buffer.indexOf(`
|
|
18
18
|
`))this.processLine(this.buffer.substring(0,m)),this.buffer=this.buffer.substring(m+1)},Sa.prototype.processLine=function(v){var m=v.indexOf(":"),p=tb(v,m),y=p[0],_=p.length===2?_d(p[1]):void 0;if(y[0]!=="#")this.currentUri.uri=y,this.manifest.segments.push(this.currentUri),this.manifest.targetDuration&&!("duration"in this.currentUri)&&(this.currentUri.duration=this.manifest.targetDuration),this.currentUri={};else switch(y){case WE:if(!isFinite(_)||_<0)return;this.manifest.targetDuration=_,this.setHoldBack();break;case qE:Td(this.manifest,p),this.manifest.partInf.partTarget&&(this.manifest.partTargetDuration=this.manifest.partInf.partTarget),this.setHoldBack();break;case YE:Td(this.manifest,p),this.setHoldBack();break;case jE:_===0?this.currentUri.duration=.01:_>0&&(this.currentUri.duration=_);break;case zE:var I=_,x=new Date(I);this.manifest.dateTimeString||(this.manifest.dateTimeString=I,this.manifest.dateTimeObject=x),this.currentUri.dateTimeString=I,this.currentUri.dateTimeObject=x;break;case XE:Td(this.manifest,p);break;case QE:var R=ib(p[1]),U=z(R);Object.assign(this.manifest.sessionData,U)}},Sa.prototype.setHoldBack=function(){var v=this.manifest,m=v.serverControl,p=v.targetDuration,y=v.partTargetDuration;if(m){var _="holdBack",I="partHoldBack",x=p&&3*p,R=y&&2*y;p&&!m.hasOwnProperty(_)&&(m[_]=x),x&&m[_]<x&&(m[_]=x),y&&!m.hasOwnProperty(I)&&(m[I]=3*y),y&&m[I]<R&&(m[I]=R)}};var Td=function(v,m){var p,y=sm(m[0].replace("#EXT-X-",""));eb(m[1])?(p={},p=Object.assign(JE(m[1]),p)):p=_d(m[1]),v[y]=p},sm=function(v){return v.toLowerCase().replace(/-(\w)/g,function(m){return m[1].toUpperCase()})},_d=function(v){if(v.toLowerCase()==="yes"||v.toLowerCase()==="no")return v.toLowerCase()==="yes";var m=v.indexOf(":")!==-1?v:parseFloat(v);return isNaN(m)?v:m},ZE=function(v){var m={},p=v.split("=");return p.length>1&&(m[sm(p[0])]=_d(p[1])),m},JE=function(v){for(var m=v.split(","),p={},y=0;m.length>y;y++){var _=m[y],I=ZE(_);p=Object.assign(I,p)}return p},eb=function(v){return v.indexOf("=")>-1},tb=function(v,m){return m===-1?[v]:[v.substring(0,m),v.substring(m+1)]},ib=function(v){var m={};if(v){var p=v.search(",");return[v.slice(0,p),v.slice(p+1)].forEach(function(y,_){for(var I=y.replace(/['"]+/g,"").split("="),x=0;x<I.length;x++)I[x]==="DATA-ID"&&(m["DATA-ID"]=I[1-x]),I[x]==="VALUE"&&(m.VALUE=I[1-x])}),{data:m}}},rb=Sa,sb={safeCall:function(v,m,p,y){var _=y;if(v&&typeof v[m]=="function")try{_=v[m].apply(v,p)}catch(I){A.info("safeCall error",I)}return _},safeIncrement:O,getComputedStyle:function(v,m){var p;if(v&&m&&d()&&typeof d().getComputedStyle=="function")return vs&&vs.has(v)&&(p=vs.get(v)),p||(p=d().getComputedStyle(v,null),vs&&vs.set(v,p)),p.getPropertyValue(m)},secondsToMs:function(v){return Math.floor(1e3*v)},assign:Object.assign,headersStringToObject:P,cdnHeadersToRequestId:X,extractHostnameAndDomain:D,extractHostname:N,manifestParser:rb,generateShortID:u,generateUUID:c,now:L.now},nb={PLAYER_READY:"playerready",VIEW_INIT:"viewinit",VIDEO_CHANGE:"videochange",PLAY:"play",PAUSE:"pause",PLAYING:"playing",TIME_UPDATE:"timeupdate",SEEKING:"seeking",SEEKED:"seeked",REBUFFER_START:"rebufferstart",REBUFFER_END:"rebufferend",ERROR:"error",ENDED:"ended",RENDITION_CHANGE:"renditionchange",ORIENTATION_CHANGE:"orientationchange",AD_REQUEST:"adrequest",AD_RESPONSE:"adresponse",AD_BREAK_START:"adbreakstart",AD_PLAY:"adplay",AD_PLAYING:"adplaying",AD_PAUSE:"adpause",AD_FIRST_QUARTILE:"adfirstquartile",AD_MID_POINT:"admidpoint",AD_THIRD_QUARTILE:"adthirdquartile",AD_ENDED:"adended",AD_BREAK_END:"adbreakend",AD_ERROR:"aderror",REQUEST_COMPLETED:"requestcompleted",REQUEST_FAILED:"requestfailed",REQUEST_CANCELLED:"requestcanceled"};function ab(v,m){return function(p){if(Array.isArray(p))return p}(v)||function(p,y){var _=p==null?null:typeof Symbol!="undefined"&&p[Symbol.iterator]||p["@@iterator"];if(_!=null){var I,x,R=[],U=!0,C=!1;try{for(_=_.call(p);!(U=(I=_.next()).done)&&(R.push(I.value),!y||R.length!==y);U=!0);}catch(K){C=!0,x=K}finally{try{U||_.return==null||_.return()}finally{if(C)throw x}}return R}}(v,m)||function(p,y){if(p){if(typeof p=="string")return nm(p,y);var _=Object.prototype.toString.call(p).slice(8,-1);return _==="Object"&&p.constructor&&(_=p.constructor.name),_==="Map"||_==="Set"?Array.from(p):_==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_)?nm(p,y):void 0}}(v,m)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
19
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nm(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}var ei={},dn=function v(m){var p=arguments;typeof m=="string"?v.hasOwnProperty(m)?d().setTimeout(function(){p=Array.prototype.splice.call(p,1),v[m].apply(null,p)},0):A.warn("`"+m+"` is an unknown task"):typeof m=="function"?d().setTimeout(function(){m(v)},0):A.warn("`"+m+"` is invalid.")},ob={loaded:L.now(),NAME:"mux-embed",VERSION:"4.27.0",API_VERSION:"2.1",PLAYER_TRACKED:!1,monitor:function(v,m){return function(p,y,_){var I=im(f(y),3),x=I[0],R=I[1],U=I[2],C=p.log,K=p.utils.getComputedStyle,ve=p.utils.secondsToMs;if(!x)return C.error("No element was found with the `"+R+"` query selector.");if(U!=="video"&&U!=="audio")return C.error("The element of `"+R+"` was not a media element.");x.mux&&(x.mux.destroy(),delete x.mux,C.warn("Already monitoring this video element, replacing existing event listeners")),(_=Object.assign({automaticErrorTracking:!0},_)).data=Object.assign({player_software:"HTML5 Video Element",player_mux_plugin_name:"VideoElementMonitor",player_mux_plugin_version:p.VERSION},_.data),_.getPlayheadTime=function(){return ve(x.currentTime)},_.getStateData=function(){var he,ae,me=this.hlsjs&&this.hlsjs.url,Me=this.dashjs&&yd(this.dashjs.getSource==="function")&&this.dashjs.getSource(),At={player_is_paused:x.paused,player_playhead_time:ve(x.currentTime),player_width:parseInt(K(x,"width")),player_height:parseInt(K(x,"height")),player_autoplay_on:x.autoplay,player_preload_on:x.preload,player_language_code:x.lang,player_is_fullscreen:ln()&&!!(ln().fullscreenElement||ln().webkitFullscreenElement||ln().mozFullScreenElement||ln().msFullscreenElement),video_poster_url:x.poster,video_source_url:me||Me||x.currentSrc,video_source_duration:ve(x.duration),video_source_height:x.videoHeight,video_source_width:x.videoWidth,view_dropped_frame_count:(he=x)===null||he===void 0||(ae=he.getVideoPlaybackQuality)===null||ae===void 0?void 0:ae.call(he).droppedVideoFrames},St=_.getPlayheadTime();if(x.getStartDate&&St>0){var Ft=x.getStartDate();if(Ft&&typeof Ft.getTime=="function"&&Ft.getTime()){var ti=Ft.getTime();if(At.player_program_time=ti+St,x.seekable.length>0){var Ce=ti+x.seekable.end(x.seekable.length-1);At.player_live_edge_program_time=Ce}}}return At},x.mux=x.mux||{},x.mux.deleted=!1,x.mux.emit=function(he,ae){p.emit(R,he,ae)};var de=function(){C.error("The monitor for this video element has already been destroyed.")};x.mux.destroy=function(){Object.keys(x.mux.listeners).forEach(function(he){x.removeEventListener(he,x.mux.listeners[he],!1)}),delete x.mux.listeners,x.mux.destroy=de,x.mux.swapElement=de,x.mux.emit=de,x.mux.addHLSJS=de,x.mux.addDashJS=de,x.mux.removeHLSJS=de,x.mux.removeDashJS=de,x.mux.deleted=!0,p.emit(R,"destroy")},x.mux.swapElement=function(he){var ae=im(f(he),3),me=ae[0],Me=ae[1],At=ae[2];return me?At!=="video"&&At!=="audio"?p.log.error("The element of `"+Me+"` was not a media element."):(me.muxId=x.muxId,delete x.muxId,me.mux=me.mux||{},me.mux.listeners=Object.assign({},x.mux.listeners),delete x.mux.listeners,Object.keys(me.mux.listeners).forEach(function(St){x.removeEventListener(St,me.mux.listeners[St],!1),me.addEventListener(St,me.mux.listeners[St],!1)}),me.mux.swapElement=x.mux.swapElement,me.mux.destroy=x.mux.destroy,delete x.mux,void(x=me)):p.log.error("No element was found with the `"+Me+"` query selector.")},x.mux.addHLSJS=function(he){p.addHLSJS(R,he)},x.mux.addDashJS=function(he){p.addDashJS(R,he)},x.mux.removeHLSJS=function(){p.removeHLSJS(R)},x.mux.removeDashJS=function(){p.removeDashJS(R)},p.init(R,_),p.emit(R,"playerready"),x.paused||(p.emit(R,"play"),x.readyState>2&&p.emit(R,"playing")),x.mux.listeners={},VE.forEach(function(he){(he!=="error"||_.automaticErrorTracking)&&(x.mux.listeners[he]=function(){var ae={};if(he==="error"){if(!x.error||x.error.code===1)return;ae.player_error_code=x.error.code,ae.player_error_message=KE[x.error.code]||x.error.message}p.emit(R,he,ae)},x.addEventListener(he,x.mux.listeners[he],!1))})}(dn,v,m)},destroyMonitor:function(v){var m=ab(f(v),1)[0];m&&m.mux&&typeof m.mux.destroy=="function"?m.mux.destroy():A.error("A video element monitor for `"+v+"` has not been initialized via `mux.monitor`.")},addHLSJS:function(v,m){var p=h(v);ei[p]?ei[p].addHLSJS(m):A.error("A monitor for `"+p+"` has not been initialized.")},addDashJS:function(v,m){var p=h(v);ei[p]?ei[p].addDashJS(m):A.error("A monitor for `"+p+"` has not been initialized.")},removeHLSJS:function(v){var m=h(v);ei[m]?ei[m].removeHLSJS():A.error("A monitor for `"+m+"` has not been initialized.")},removeDashJS:function(v){var m=h(v);ei[m]?ei[m].removeDashJS():A.error("A monitor for `"+m+"` has not been initialized.")},init:function(v,m){k()&&m&&m.respectDoNotTrack&&A.info("The browser's Do Not Track flag is enabled - Mux beaconing is disabled.");var p=h(v);ei[p]=new GE(dn,p,m)},emit:function(v,m,p){var y=h(v);ei[y]?(ei[y].emit(m,p),m==="destroy"&&delete ei[y]):A.error("A monitor for `"+y+"` has not been initialized.")},checkDoNotTrack:k,log:A,utils:sb,events:nb,WINDOW_HIDDEN:!1,WINDOW_UNLOADING:!1};Object.assign(dn,ob),d()!==void 0&&typeof d().addEventListener=="function"&&d().addEventListener("pagehide",function(v){v.persisted||(dn.WINDOW_UNLOADING=!0)},!1);var lb=dn},655:function(n,a,o){var l,d;function c(u){return c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},c(u);}(function(u){var h=!1;if((d=typeof(l=u)=="function"?l.call(a,o,a,n):l)===void 0||(n.exports=d),h=!0,c(a)==="object"&&(n.exports=u(),h=!0),!h){var f=window.Cookies,g=window.Cookies=u();g.noConflict=function(){return window.Cookies=f,g}}})(function(){var u=function(){for(var h=0,f={};h<arguments.length;h++){var g=arguments[h];for(var E in g)f[E]=g[E]}return f};return function h(f){function g(E,T,A){var k;if(typeof document!="undefined"){if(arguments.length>1){if(typeof(A=u({path:"/"},g.defaults,A)).expires=="number"){var L=new Date;L.setMilliseconds(L.getMilliseconds()+864e5*A.expires),A.expires=L}try{k=JSON.stringify(T),/^[\{\[]/.test(k)&&(T=k)}catch{}return T=f.write?f.write(T,E):encodeURIComponent(String(T)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),E=(E=(E=encodeURIComponent(String(E))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape),document.cookie=[E,"=",T,A.expires?"; expires="+A.expires.toUTCString():"",A.path?"; path="+A.path:"",A.domain?"; domain="+A.domain:"",A.secure?"; secure":""].join("")}E||(k={});for(var N=document.cookie?document.cookie.split("; "):[],D=/(%[0-9A-Z]{2})+/g,$=0;$<N.length;$++){var O=N[$].split("="),H=O.slice(1).join("=");H.charAt(0)==='"'&&(H=H.slice(1,-1));try{var q=O[0].replace(D,decodeURIComponent);if(H=f.read?f.read(H,q):f(H,q)||H.replace(D,decodeURIComponent),this.json)try{H=JSON.parse(H)}catch{}if(E===q){k=H;break}E||(k[q]=H)}catch{}}return k}}return g.set=g,g.get=function(E){return g.call(g,E)},g.getJSON=function(){return g.apply({json:!0},[].slice.call(arguments))},g.defaults={},g.remove=function(E,T){g(E,"",u(T,{expires:-1}))},g.withConverter=h,g}(function(){})})},153:function(n,a,o){var l,d=o.g!==void 0?o.g:typeof window!="undefined"?window:{},c=o(558);typeof document!="undefined"?l=document:(l=d["__GLOBAL_DOCUMENT_CACHE@4"])||(l=d["__GLOBAL_DOCUMENT_CACHE@4"]=c),n.exports=l},48:function(n,a,o){var l;l=typeof window!="undefined"?window:o.g!==void 0?o.g:typeof self!="undefined"?self:{},n.exports=l},640:function(n,a,o){var l,d;(function(c,u){"use strict";l=function(){var h=function(){},f="undefined",g=typeof window!==f&&typeof window.navigator!==f&&/Trident\/|MSIE /.test(window.navigator.userAgent),E=["trace","debug","info","warn","error"];function T(P,X){var z=P[X];if(typeof z.bind=="function")return z.bind(P);try{return Function.prototype.bind.call(z,P)}catch{return function(){return Function.prototype.apply.apply(z,[P,arguments])}}}function A(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function k(P){return P==="debug"&&(P="log"),typeof console!==f&&(P==="trace"&&g?A:console[P]!==void 0?T(console,P):console.log!==void 0?T(console,"log"):h)}function L(P,X){for(var z=0;z<E.length;z++){var Ae=E[z];this[Ae]=z<P?h:this.methodFactory(Ae,P,X)}this.log=this.debug}function N(P,X,z){return function(){typeof console!==f&&(L.call(this,X,z),this[P].apply(this,arguments))}}function D(P,X,z){return k(P)||N.apply(this,arguments)}function $(P,X,z){var Ae,Ee=this;X=X==null?"WARN":X;var be="loglevel";function we(se){var xe=(E[se]||"silent").toUpperCase();if(typeof window!==f&&be){try{return void(window.localStorage[be]=xe)}catch{}try{window.document.cookie=encodeURIComponent(be)+"="+xe+";"}catch{}}}function Se(){var se;if(typeof window!==f&&be){try{se=window.localStorage[be]}catch{}if(typeof se===f)try{var xe=window.document.cookie,Ie=xe.indexOf(encodeURIComponent(be)+"=");Ie!==-1&&(se=/^([^;]+)/.exec(xe.slice(Ie))[1])}catch{}return Ee.levels[se]===void 0&&(se=void 0),se}}function Z(){if(typeof window!==f&&be){try{return void window.localStorage.removeItem(be)}catch{}try{window.document.cookie=encodeURIComponent(be)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}typeof P=="string"?be+=":"+P:typeof P=="symbol"&&(be=void 0),Ee.name=P,Ee.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Ee.methodFactory=z||D,Ee.getLevel=function(){return Ae},Ee.setLevel=function(se,xe){if(typeof se=="string"&&Ee.levels[se.toUpperCase()]!==void 0&&(se=Ee.levels[se.toUpperCase()]),!(typeof se=="number"&&se>=0&&se<=Ee.levels.SILENT))throw"log.setLevel() called with invalid level: "+se;if(Ae=se,xe!==!1&&we(se),L.call(Ee,se,P),typeof console===f&&se<Ee.levels.SILENT)return"No console available for logging"},Ee.setDefaultLevel=function(se){X=se,Se()||Ee.setLevel(se,!1)},Ee.resetLevel=function(){Ee.setLevel(X,!1),Z()},Ee.enableAll=function(se){Ee.setLevel(Ee.levels.TRACE,se)},Ee.disableAll=function(se){Ee.setLevel(Ee.levels.SILENT,se)};var ne=Se();ne==null&&(ne=X),Ee.setLevel(ne,!1)}var O=new $,H={};O.getLogger=function(P){if(typeof P!="symbol"&&typeof P!="string"||P==="")throw new TypeError("You must supply a name when creating a logger.");var X=H[P];return X||(X=H[P]=new $(P,O.getLevel(),O.methodFactory)),X};var q=typeof window!==f?window.log:void 0;return O.noConflict=function(){return typeof window!==f&&window.log===O&&(window.log=q),O},O.getLoggers=function(){return H},O.default=O,O},(d=typeof l=="function"?l.call(a,o,a,n):l)===void 0||(n.exports=d)})()},375:function(n,a){"use strict";var o=Object.prototype.hasOwnProperty;function l(c){try{return decodeURIComponent(c.replace(/\+/g," "))}catch{return null}}function d(c){try{return encodeURIComponent(c)}catch{return null}}a.stringify=function(c,u){u=u||"";var h,f,g=[];for(f in typeof u!="string"&&(u="?"),c)if(o.call(c,f)){if((h=c[f])||h!=null&&!isNaN(h)||(h=""),f=d(f),h=d(h),f===null||h===null)continue;g.push(f+"="+h)}return g.length?u+g.join("&"):""},a.parse=function(c){for(var u,h=/([^=?#&]+)=?([^&]*)/g,f={};u=h.exec(c);){var g=l(u[1]),E=l(u[2]);g===null||E===null||g in f||(f[g]=E)}return f}},558:function(){}},i={};function s(n){var a=i[n];if(a!==void 0)return a.exports;var o=i[n]={exports:{}};return t[n].call(o.exports,o,o.exports,s),o.exports}return s.n=function(n){var a=n&&n.__esModule?function(){return n.default}:function(){return n};return s.d(a,{a}),a},s.d=function(n,a){for(var o in a)s.o(a,o)&&!s.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:a[o]})},s.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),s.o=function(n,a){return Object.prototype.hasOwnProperty.call(n,a)},s(80)}()},typeof el=="object"&&typeof ru=="object"?ru.exports=e():typeof el=="object"?el.mux=e():r.mux=e()})()});var Es=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class r extends Es{}globalThis.DocumentFragment=r}var hn=class extends Es{},Sd=class extends Es{},yb={get(r){},define(r,e,t){},upgrade(r){},whenDefined(r){return Promise.resolve(hn)}},fn,xd=class{constructor(e,t={}){ut(this,fn,void 0);ii(this,fn,t==null?void 0:t.detail)}get detail(){return Ne(this,fn)}initCustomEvent(){}};fn=new WeakMap;function Tb(r,e){return new hn}var om={document:{createElement:Tb},DocumentFragment,customElements:yb,CustomEvent:xd,EventTarget:Es,HTMLElement:hn,HTMLVideoElement:Sd},lm=typeof window=="undefined"||typeof globalThis.customElements=="undefined",nt=lm?om:globalThis,Xt=lm?om.document:globalThis.document;var re={MEDIA_PLAY_REQUEST:"mediaplayrequest",MEDIA_PAUSE_REQUEST:"mediapauserequest",MEDIA_MUTE_REQUEST:"mediamuterequest",MEDIA_UNMUTE_REQUEST:"mediaunmuterequest",MEDIA_VOLUME_REQUEST:"mediavolumerequest",MEDIA_SEEK_REQUEST:"mediaseekrequest",MEDIA_AIRPLAY_REQUEST:"mediaairplayrequest",MEDIA_ENTER_FULLSCREEN_REQUEST:"mediaenterfullscreenrequest",MEDIA_EXIT_FULLSCREEN_REQUEST:"mediaexitfullscreenrequest",MEDIA_PREVIEW_REQUEST:"mediapreviewrequest",MEDIA_ENTER_PIP_REQUEST:"mediaenterpiprequest",MEDIA_EXIT_PIP_REQUEST:"mediaexitpiprequest",MEDIA_ENTER_CAST_REQUEST:"mediaentercastrequest",MEDIA_EXIT_CAST_REQUEST:"mediaexitcastrequest",MEDIA_SHOW_TEXT_TRACKS_REQUEST:"mediashowtexttracksrequest",MEDIA_HIDE_TEXT_TRACKS_REQUEST:"mediahidetexttracksrequest",MEDIA_SHOW_SUBTITLES_REQUEST:"mediashowsubtitlesrequest",MEDIA_DISABLE_SUBTITLES_REQUEST:"mediadisablesubtitlesrequest",MEDIA_PLAYBACK_RATE_REQUEST:"mediaplaybackraterequest",MEDIA_RENDITION_REQUEST:"mediarenditionrequest",MEDIA_AUDIO_TRACK_REQUEST:"mediaaudiotrackrequest",MEDIA_SEEK_TO_LIVE_REQUEST:"mediaseektoliverequest",REGISTER_MEDIA_STATE_RECEIVER:"registermediastatereceiver",UNREGISTER_MEDIA_STATE_RECEIVER:"unregistermediastatereceiver"},ye={MEDIA_CHROME_ATTRIBUTES:"mediachromeattributes",MEDIA_CONTROLLER:"mediacontroller"},Dr={MEDIA_AIRPLAY_UNAVAILABLE:"mediaAirplayUnavailable",MEDIA_FULLSCREEN_UNAVAILABLE:"mediaFullscreenUnavailable",MEDIA_PIP_UNAVAILABLE:"mediaPipUnavailable",MEDIA_CAST_UNAVAILABLE:"mediaCastUnavailable",MEDIA_RENDITION_UNAVAILABLE:"mediaRenditionUnavailable",MEDIA_AUDIO_TRACK_UNAVAILABLE:"mediaAudioTrackUnavailable",MEDIA_PAUSED:"mediaPaused",MEDIA_HAS_PLAYED:"mediaHasPlayed",MEDIA_ENDED:"mediaEnded",MEDIA_MUTED:"mediaMuted",MEDIA_VOLUME_LEVEL:"mediaVolumeLevel",MEDIA_VOLUME:"mediaVolume",MEDIA_VOLUME_UNAVAILABLE:"mediaVolumeUnavailable",MEDIA_IS_PIP:"mediaIsPip",MEDIA_IS_CASTING:"mediaIsCasting",MEDIA_SUBTITLES_LIST:"mediaSubtitlesList",MEDIA_SUBTITLES_SHOWING:"mediaSubtitlesShowing",MEDIA_IS_FULLSCREEN:"mediaIsFullscreen",MEDIA_PLAYBACK_RATE:"mediaPlaybackRate",MEDIA_CURRENT_TIME:"mediaCurrentTime",MEDIA_DURATION:"mediaDuration",MEDIA_SEEKABLE:"mediaSeekable",MEDIA_PREVIEW_TIME:"mediaPreviewTime",MEDIA_PREVIEW_IMAGE:"mediaPreviewImage",MEDIA_PREVIEW_COORDS:"mediaPreviewCoords",MEDIA_LOADING:"mediaLoading",MEDIA_BUFFERED:"mediaBuffered",MEDIA_STREAM_TYPE:"mediaStreamType",MEDIA_TARGET_LIVE_WINDOW:"mediaTargetLiveWindow",MEDIA_TIME_IS_LIVE:"mediaTimeIsLive",MEDIA_RENDITION_LIST:"mediaRenditionList",MEDIA_RENDITION_SELECTED:"mediaRenditionSelected",MEDIA_AUDIO_TRACK_LIST:"mediaAudioTrackList",MEDIA_AUDIO_TRACK_ENABLED:"mediaAudioTrackEnabled"},dm=Object.entries(Dr),S=dm.reduce((r,[e,t])=>(r[e]=`${t.toLowerCase()}`,r),{}),Wi=dm.reduce((r,[e,t])=>(r[e]=`${t.toLowerCase()}`,r),{USER_INACTIVE:"userinactivechange",BREAKPOINTS_CHANGE:"breakpointchange",BREAKPOINTS_COMPUTED:"breakpointscomputed"}),Rx=Object.entries(Wi).reduce((r,[e,t])=>{let i=S[e];return i&&(r[t]=i),r},{userinactivechange:"userinactive"}),cm=Object.entries(S).reduce((r,[e,t])=>{let i=Wi[e];return i&&(r[t]=i),r},{userinactive:"userinactivechange"}),bs={SUBTITLES:"subtitles",CAPTIONS:"captions",DESCRIPTIONS:"descriptions",CHAPTERS:"chapters",METADATA:"metadata"},xa={DISABLED:"disabled",HIDDEN:"hidden",SHOWING:"showing"};var Id={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"},Qt={UNAVAILABLE:"unavailable",UNSUPPORTED:"unsupported"},ui={LIVE:"live",ON_DEMAND:"on-demand",UNKNOWN:"unknown"};var Rt={AUDIO_PLAYER:()=>"audio player",VIDEO_PLAYER:()=>"video player",VOLUME:()=>"volume",SEEK:()=>"seek",CLOSED_CAPTIONS:()=>"closed captions",PLAYBACK_RATE:({playbackRate:r=1}={})=>`current playback rate ${r}`,PLAYBACK_TIME:()=>"playback time",MEDIA_LOADING:()=>"media loading"},Xe={PLAY:()=>"play",PAUSE:()=>"pause",MUTE:()=>"mute",UNMUTE:()=>"unmute",AIRPLAY:()=>"air play",ENTER_CAST:()=>"start casting",EXIT_CAST:()=>"stop casting",ENTER_FULLSCREEN:()=>"enter fullscreen mode",EXIT_FULLSCREEN:()=>"exit fullscreen mode",ENTER_PIP:()=>"enter picture in picture mode",EXIT_PIP:()=>"exit picture in picture mode",SEEK_FORWARD_N_SECS:({seekOffset:r=30}={})=>`seek forward ${r} seconds`,SEEK_BACK_N_SECS:({seekOffset:r=30}={})=>`seek back ${r} seconds`,SEEK_LIVE:()=>"seek to live",PLAYING_LIVE:()=>"playing live"},Ab={...Rt,...Xe};function um(r){return r==null?void 0:r.map(Sb).join(" ")}function hm(r){return r==null?void 0:r.split(/\s+/).map(xb)}function Sb(r){if(r){let{id:e,width:t,height:i}=r;return[e,t,i].filter(s=>s!=null).join(":")}}function xb(r){if(r){let[e,t,i]=r.split(":");return{id:e,width:t,height:i}}}function fm(r){return r==null?void 0:r.map(Ib).join(" ")}function mm(r){return r==null?void 0:r.split(/\s+/).map(Lb)}function Ib(r){if(r){let{id:e,kind:t,language:i,label:s}=r;return[e,t,i,s].filter(n=>n!=null).join(":")}}function Lb(r){if(r){let[e,t,i,s]=r.split(":");return{id:e,kind:t,language:i,label:s}}}function Ia(r,e=!1){return r.split("_").map(function(t,i){return(i||e?t[0].toUpperCase():t[0].toLowerCase())+t.slice(1).toLowerCase()}).join("")}function pm(r){return r.replace(/[-_]([a-z])/g,(e,t)=>t.toUpperCase())}function gm(r){return typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r)}function La(r){return typeof r!="string"?!1:!isNaN(r)&&!isNaN(parseFloat(r))}var ka=r=>new Promise(e=>setTimeout(e,r));var vm=[{singular:"hour",plural:"hours"},{singular:"minute",plural:"minutes"},{singular:"second",plural:"seconds"}],kb=(r,e)=>{let t=r===1?vm[e].singular:vm[e].plural;return`${r} ${t}`},Cr=r=>{if(!gm(r))return"";let e=Math.abs(r),t=e!==r,i=new Date(0,0,0,0,0,e,0);return`${[i.getHours(),i.getMinutes(),i.getSeconds()].map((o,l)=>o&&kb(o,l)).filter(o=>o).join(", ")}${t?" remaining":""}`};function Si(r,e){let t=!1;r<0&&(t=!0,r=0-r),r=r<0?0:r;let i=Math.floor(r%60),s=Math.floor(r/60%60),n=Math.floor(r/3600),a=Math.floor(e/60%60),o=Math.floor(e/3600);return(isNaN(r)||r===1/0)&&(n=s=i="0"),n=n>0||o>0?n+":":"",s=((n||a>=10)&&s<10?"0"+s:s)+":",i=i<10?"0"+i:i,(t?"-":"")+n+s+i}var Mx=Object.freeze({length:0,start(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0}});var Ra=(r,e,t=".value")=>{let i=r.querySelector(t);!i||(i.textContent=e)},wb=(r,e)=>{let t=`slot[name="${e}"]`,i=r.shadowRoot.querySelector(t);return i?i.children:[]},wa=(r,e)=>wb(r,e)[0],Mr=(r,e)=>!r||!e?!1:r.contains(e)?!0:Mr(r,e.getRootNode().host),or=(r,e)=>{if(!r)return null;let t=r.closest(e);return t||or(r.getRootNode().host,e)};function Ld(r=document){var e;let t=r==null?void 0:r.activeElement;return t?(e=Ld(t.shadowRoot))!=null?e:t:null}function Qe(r,e){var t;let i;for(i of r.querySelectorAll("style")){let s;try{s=(t=i.sheet)==null?void 0:t.cssRules}catch{continue}for(let n of s!=null?s:[])if(n.selectorText===e)return n}return i!=null&&i.sheet?(i.sheet.insertRule(`${e}{}`,i.sheet.cssRules.length),i.sheet.cssRules[i.sheet.cssRules.length-1]):{style:{setProperty:()=>{},removeProperty:()=>{}}}}function Fe(r,e,t=Number.NaN){let i=r.getAttribute(e);return i!=null?+i:t}function ze(r,e,t){let i=+t;if(t==null||Number.isNaN(i)){r.hasAttribute(e)&&r.removeAttribute(e);return}Fe(r,e,void 0)!==i&&r.setAttribute(e,`${i}`)}function Ye(r,e){return r.hasAttribute(e)}function Ke(r,e,t){if(t==null){r.hasAttribute(e)&&r.removeAttribute(e);return}Ye(r,e)!=t&&r.toggleAttribute(e,t)}function We(r,e,t=null){var i;return(i=r.getAttribute(e))!=null?i:t}function Be(r,e,t){if(t==null){r.hasAttribute(e)&&r.removeAttribute(e);return}let i=`${t}`;We(r,e,void 0)!==i&&r.setAttribute(e,i)}var Da=class{addEventListener(){}removeEventListener(){}dispatchEvent(){return!0}},kd=class{observe(){}unobserve(){}disconnect(){}},Em={createElement:function(){return new Rd.HTMLElement},addEventListener(){},removeEventListener(){}},Rd={ResizeObserver:kd,document:Em,HTMLElement:class extends Da{},DocumentFragment:class extends Da{},customElements:{get:function(){},define:function(){},whenDefined:function(){}},CustomEvent:function(){},getComputedStyle:function(){}},bm=typeof window=="undefined"||typeof window.customElements=="undefined",ym=Object.keys(Rd).every(r=>r in globalThis),w=bm&&!ym?Rd:globalThis,Y=bm&&!ym?Em:globalThis.document;var Db=Object.defineProperty,Cb=(r,e,t)=>e in r?Db(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mb=(r,e,t)=>(Cb(r,typeof e!="symbol"?e+"":e,t),t),Tm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},ri=(r,e,t)=>(Tm(r,e,"read from private field"),t?t.call(r):e.get(r)),Ca=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Ma=(r,e,t,i)=>(Tm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),xi,Oa,ys,Pa,_m=Y.createElement("template");_m.innerHTML=`
|
|
19
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nm(v,m){(m==null||m>v.length)&&(m=v.length);for(var p=0,y=new Array(m);p<m;p++)y[p]=v[p];return y}var ei={},dn=function v(m){var p=arguments;typeof m=="string"?v.hasOwnProperty(m)?d().setTimeout(function(){p=Array.prototype.splice.call(p,1),v[m].apply(null,p)},0):A.warn("`"+m+"` is an unknown task"):typeof m=="function"?d().setTimeout(function(){m(v)},0):A.warn("`"+m+"` is invalid.")},ob={loaded:L.now(),NAME:"mux-embed",VERSION:"4.27.0",API_VERSION:"2.1",PLAYER_TRACKED:!1,monitor:function(v,m){return function(p,y,_){var I=im(f(y),3),x=I[0],R=I[1],U=I[2],C=p.log,K=p.utils.getComputedStyle,ve=p.utils.secondsToMs;if(!x)return C.error("No element was found with the `"+R+"` query selector.");if(U!=="video"&&U!=="audio")return C.error("The element of `"+R+"` was not a media element.");x.mux&&(x.mux.destroy(),delete x.mux,C.warn("Already monitoring this video element, replacing existing event listeners")),(_=Object.assign({automaticErrorTracking:!0},_)).data=Object.assign({player_software:"HTML5 Video Element",player_mux_plugin_name:"VideoElementMonitor",player_mux_plugin_version:p.VERSION},_.data),_.getPlayheadTime=function(){return ve(x.currentTime)},_.getStateData=function(){var he,ae,me=this.hlsjs&&this.hlsjs.url,Me=this.dashjs&&yd(this.dashjs.getSource==="function")&&this.dashjs.getSource(),At={player_is_paused:x.paused,player_playhead_time:ve(x.currentTime),player_width:parseInt(K(x,"width")),player_height:parseInt(K(x,"height")),player_autoplay_on:x.autoplay,player_preload_on:x.preload,player_language_code:x.lang,player_is_fullscreen:ln()&&!!(ln().fullscreenElement||ln().webkitFullscreenElement||ln().mozFullScreenElement||ln().msFullscreenElement),video_poster_url:x.poster,video_source_url:me||Me||x.currentSrc,video_source_duration:ve(x.duration),video_source_height:x.videoHeight,video_source_width:x.videoWidth,view_dropped_frame_count:(he=x)===null||he===void 0||(ae=he.getVideoPlaybackQuality)===null||ae===void 0?void 0:ae.call(he).droppedVideoFrames},St=_.getPlayheadTime();if(x.getStartDate&&St>0){var Ft=x.getStartDate();if(Ft&&typeof Ft.getTime=="function"&&Ft.getTime()){var ti=Ft.getTime();if(At.player_program_time=ti+St,x.seekable.length>0){var Ce=ti+x.seekable.end(x.seekable.length-1);At.player_live_edge_program_time=Ce}}}return At},x.mux=x.mux||{},x.mux.deleted=!1,x.mux.emit=function(he,ae){p.emit(R,he,ae)};var de=function(){C.error("The monitor for this video element has already been destroyed.")};x.mux.destroy=function(){Object.keys(x.mux.listeners).forEach(function(he){x.removeEventListener(he,x.mux.listeners[he],!1)}),delete x.mux.listeners,x.mux.destroy=de,x.mux.swapElement=de,x.mux.emit=de,x.mux.addHLSJS=de,x.mux.addDashJS=de,x.mux.removeHLSJS=de,x.mux.removeDashJS=de,x.mux.deleted=!0,p.emit(R,"destroy")},x.mux.swapElement=function(he){var ae=im(f(he),3),me=ae[0],Me=ae[1],At=ae[2];return me?At!=="video"&&At!=="audio"?p.log.error("The element of `"+Me+"` was not a media element."):(me.muxId=x.muxId,delete x.muxId,me.mux=me.mux||{},me.mux.listeners=Object.assign({},x.mux.listeners),delete x.mux.listeners,Object.keys(me.mux.listeners).forEach(function(St){x.removeEventListener(St,me.mux.listeners[St],!1),me.addEventListener(St,me.mux.listeners[St],!1)}),me.mux.swapElement=x.mux.swapElement,me.mux.destroy=x.mux.destroy,delete x.mux,void(x=me)):p.log.error("No element was found with the `"+Me+"` query selector.")},x.mux.addHLSJS=function(he){p.addHLSJS(R,he)},x.mux.addDashJS=function(he){p.addDashJS(R,he)},x.mux.removeHLSJS=function(){p.removeHLSJS(R)},x.mux.removeDashJS=function(){p.removeDashJS(R)},p.init(R,_),p.emit(R,"playerready"),x.paused||(p.emit(R,"play"),x.readyState>2&&p.emit(R,"playing")),x.mux.listeners={},VE.forEach(function(he){(he!=="error"||_.automaticErrorTracking)&&(x.mux.listeners[he]=function(){var ae={};if(he==="error"){if(!x.error||x.error.code===1)return;ae.player_error_code=x.error.code,ae.player_error_message=KE[x.error.code]||x.error.message}p.emit(R,he,ae)},x.addEventListener(he,x.mux.listeners[he],!1))})}(dn,v,m)},destroyMonitor:function(v){var m=ab(f(v),1)[0];m&&m.mux&&typeof m.mux.destroy=="function"?m.mux.destroy():A.error("A video element monitor for `"+v+"` has not been initialized via `mux.monitor`.")},addHLSJS:function(v,m){var p=h(v);ei[p]?ei[p].addHLSJS(m):A.error("A monitor for `"+p+"` has not been initialized.")},addDashJS:function(v,m){var p=h(v);ei[p]?ei[p].addDashJS(m):A.error("A monitor for `"+p+"` has not been initialized.")},removeHLSJS:function(v){var m=h(v);ei[m]?ei[m].removeHLSJS():A.error("A monitor for `"+m+"` has not been initialized.")},removeDashJS:function(v){var m=h(v);ei[m]?ei[m].removeDashJS():A.error("A monitor for `"+m+"` has not been initialized.")},init:function(v,m){k()&&m&&m.respectDoNotTrack&&A.info("The browser's Do Not Track flag is enabled - Mux beaconing is disabled.");var p=h(v);ei[p]=new HE(dn,p,m)},emit:function(v,m,p){var y=h(v);ei[y]?(ei[y].emit(m,p),m==="destroy"&&delete ei[y]):A.error("A monitor for `"+y+"` has not been initialized.")},checkDoNotTrack:k,log:A,utils:sb,events:nb,WINDOW_HIDDEN:!1,WINDOW_UNLOADING:!1};Object.assign(dn,ob),d()!==void 0&&typeof d().addEventListener=="function"&&d().addEventListener("pagehide",function(v){v.persisted||(dn.WINDOW_UNLOADING=!0)},!1);var lb=dn},655:function(n,a,o){var l,d;function c(u){return c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(h){return typeof h}:function(h){return h&&typeof Symbol=="function"&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h},c(u);}(function(u){var h=!1;if((d=typeof(l=u)=="function"?l.call(a,o,a,n):l)===void 0||(n.exports=d),h=!0,c(a)==="object"&&(n.exports=u(),h=!0),!h){var f=window.Cookies,g=window.Cookies=u();g.noConflict=function(){return window.Cookies=f,g}}})(function(){var u=function(){for(var h=0,f={};h<arguments.length;h++){var g=arguments[h];for(var E in g)f[E]=g[E]}return f};return function h(f){function g(E,T,A){var k;if(typeof document!="undefined"){if(arguments.length>1){if(typeof(A=u({path:"/"},g.defaults,A)).expires=="number"){var L=new Date;L.setMilliseconds(L.getMilliseconds()+864e5*A.expires),A.expires=L}try{k=JSON.stringify(T),/^[\{\[]/.test(k)&&(T=k)}catch{}return T=f.write?f.write(T,E):encodeURIComponent(String(T)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),E=(E=(E=encodeURIComponent(String(E))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape),document.cookie=[E,"=",T,A.expires?"; expires="+A.expires.toUTCString():"",A.path?"; path="+A.path:"",A.domain?"; domain="+A.domain:"",A.secure?"; secure":""].join("")}E||(k={});for(var N=document.cookie?document.cookie.split("; "):[],D=/(%[0-9A-Z]{2})+/g,$=0;$<N.length;$++){var O=N[$].split("="),G=O.slice(1).join("=");G.charAt(0)==='"'&&(G=G.slice(1,-1));try{var q=O[0].replace(D,decodeURIComponent);if(G=f.read?f.read(G,q):f(G,q)||G.replace(D,decodeURIComponent),this.json)try{G=JSON.parse(G)}catch{}if(E===q){k=G;break}E||(k[q]=G)}catch{}}return k}}return g.set=g,g.get=function(E){return g.call(g,E)},g.getJSON=function(){return g.apply({json:!0},[].slice.call(arguments))},g.defaults={},g.remove=function(E,T){g(E,"",u(T,{expires:-1}))},g.withConverter=h,g}(function(){})})},153:function(n,a,o){var l,d=o.g!==void 0?o.g:typeof window!="undefined"?window:{},c=o(558);typeof document!="undefined"?l=document:(l=d["__GLOBAL_DOCUMENT_CACHE@4"])||(l=d["__GLOBAL_DOCUMENT_CACHE@4"]=c),n.exports=l},48:function(n,a,o){var l;l=typeof window!="undefined"?window:o.g!==void 0?o.g:typeof self!="undefined"?self:{},n.exports=l},640:function(n,a,o){var l,d;(function(c,u){"use strict";l=function(){var h=function(){},f="undefined",g=typeof window!==f&&typeof window.navigator!==f&&/Trident\/|MSIE /.test(window.navigator.userAgent),E=["trace","debug","info","warn","error"];function T(P,X){var z=P[X];if(typeof z.bind=="function")return z.bind(P);try{return Function.prototype.bind.call(z,P)}catch{return function(){return Function.prototype.apply.apply(z,[P,arguments])}}}function A(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function k(P){return P==="debug"&&(P="log"),typeof console!==f&&(P==="trace"&&g?A:console[P]!==void 0?T(console,P):console.log!==void 0?T(console,"log"):h)}function L(P,X){for(var z=0;z<E.length;z++){var Ae=E[z];this[Ae]=z<P?h:this.methodFactory(Ae,P,X)}this.log=this.debug}function N(P,X,z){return function(){typeof console!==f&&(L.call(this,X,z),this[P].apply(this,arguments))}}function D(P,X,z){return k(P)||N.apply(this,arguments)}function $(P,X,z){var Ae,Ee=this;X=X==null?"WARN":X;var be="loglevel";function we(se){var xe=(E[se]||"silent").toUpperCase();if(typeof window!==f&&be){try{return void(window.localStorage[be]=xe)}catch{}try{window.document.cookie=encodeURIComponent(be)+"="+xe+";"}catch{}}}function Se(){var se;if(typeof window!==f&&be){try{se=window.localStorage[be]}catch{}if(typeof se===f)try{var xe=window.document.cookie,Ie=xe.indexOf(encodeURIComponent(be)+"=");Ie!==-1&&(se=/^([^;]+)/.exec(xe.slice(Ie))[1])}catch{}return Ee.levels[se]===void 0&&(se=void 0),se}}function Z(){if(typeof window!==f&&be){try{return void window.localStorage.removeItem(be)}catch{}try{window.document.cookie=encodeURIComponent(be)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}typeof P=="string"?be+=":"+P:typeof P=="symbol"&&(be=void 0),Ee.name=P,Ee.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Ee.methodFactory=z||D,Ee.getLevel=function(){return Ae},Ee.setLevel=function(se,xe){if(typeof se=="string"&&Ee.levels[se.toUpperCase()]!==void 0&&(se=Ee.levels[se.toUpperCase()]),!(typeof se=="number"&&se>=0&&se<=Ee.levels.SILENT))throw"log.setLevel() called with invalid level: "+se;if(Ae=se,xe!==!1&&we(se),L.call(Ee,se,P),typeof console===f&&se<Ee.levels.SILENT)return"No console available for logging"},Ee.setDefaultLevel=function(se){X=se,Se()||Ee.setLevel(se,!1)},Ee.resetLevel=function(){Ee.setLevel(X,!1),Z()},Ee.enableAll=function(se){Ee.setLevel(Ee.levels.TRACE,se)},Ee.disableAll=function(se){Ee.setLevel(Ee.levels.SILENT,se)};var ne=Se();ne==null&&(ne=X),Ee.setLevel(ne,!1)}var O=new $,G={};O.getLogger=function(P){if(typeof P!="symbol"&&typeof P!="string"||P==="")throw new TypeError("You must supply a name when creating a logger.");var X=G[P];return X||(X=G[P]=new $(P,O.getLevel(),O.methodFactory)),X};var q=typeof window!==f?window.log:void 0;return O.noConflict=function(){return typeof window!==f&&window.log===O&&(window.log=q),O},O.getLoggers=function(){return G},O.default=O,O},(d=typeof l=="function"?l.call(a,o,a,n):l)===void 0||(n.exports=d)})()},375:function(n,a){"use strict";var o=Object.prototype.hasOwnProperty;function l(c){try{return decodeURIComponent(c.replace(/\+/g," "))}catch{return null}}function d(c){try{return encodeURIComponent(c)}catch{return null}}a.stringify=function(c,u){u=u||"";var h,f,g=[];for(f in typeof u!="string"&&(u="?"),c)if(o.call(c,f)){if((h=c[f])||h!=null&&!isNaN(h)||(h=""),f=d(f),h=d(h),f===null||h===null)continue;g.push(f+"="+h)}return g.length?u+g.join("&"):""},a.parse=function(c){for(var u,h=/([^=?#&]+)=?([^&]*)/g,f={};u=h.exec(c);){var g=l(u[1]),E=l(u[2]);g===null||E===null||g in f||(f[g]=E)}return f}},558:function(){}},i={};function s(n){var a=i[n];if(a!==void 0)return a.exports;var o=i[n]={exports:{}};return t[n].call(o.exports,o,o.exports,s),o.exports}return s.n=function(n){var a=n&&n.__esModule?function(){return n.default}:function(){return n};return s.d(a,{a}),a},s.d=function(n,a){for(var o in a)s.o(a,o)&&!s.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:a[o]})},s.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}(),s.o=function(n,a){return Object.prototype.hasOwnProperty.call(n,a)},s(80)}()},typeof el=="object"&&typeof ru=="object"?ru.exports=e():typeof el=="object"?el.mux=e():r.mux=e()})()});var Es=class{addEventListener(){}removeEventListener(){}dispatchEvent(e){return!0}};if(typeof DocumentFragment=="undefined"){class r extends Es{}globalThis.DocumentFragment=r}var hn=class extends Es{},Sd=class extends Es{},yb={get(r){},define(r,e,t){},upgrade(r){},whenDefined(r){return Promise.resolve(hn)}},fn,xd=class{constructor(e,t={}){ut(this,fn,void 0);ii(this,fn,t==null?void 0:t.detail)}get detail(){return Ne(this,fn)}initCustomEvent(){}};fn=new WeakMap;function Tb(r,e){return new hn}var om={document:{createElement:Tb},DocumentFragment,customElements:yb,CustomEvent:xd,EventTarget:Es,HTMLElement:hn,HTMLVideoElement:Sd},lm=typeof window=="undefined"||typeof globalThis.customElements=="undefined",nt=lm?om:globalThis,Xt=lm?om.document:globalThis.document;var re={MEDIA_PLAY_REQUEST:"mediaplayrequest",MEDIA_PAUSE_REQUEST:"mediapauserequest",MEDIA_MUTE_REQUEST:"mediamuterequest",MEDIA_UNMUTE_REQUEST:"mediaunmuterequest",MEDIA_VOLUME_REQUEST:"mediavolumerequest",MEDIA_SEEK_REQUEST:"mediaseekrequest",MEDIA_AIRPLAY_REQUEST:"mediaairplayrequest",MEDIA_ENTER_FULLSCREEN_REQUEST:"mediaenterfullscreenrequest",MEDIA_EXIT_FULLSCREEN_REQUEST:"mediaexitfullscreenrequest",MEDIA_PREVIEW_REQUEST:"mediapreviewrequest",MEDIA_ENTER_PIP_REQUEST:"mediaenterpiprequest",MEDIA_EXIT_PIP_REQUEST:"mediaexitpiprequest",MEDIA_ENTER_CAST_REQUEST:"mediaentercastrequest",MEDIA_EXIT_CAST_REQUEST:"mediaexitcastrequest",MEDIA_SHOW_TEXT_TRACKS_REQUEST:"mediashowtexttracksrequest",MEDIA_HIDE_TEXT_TRACKS_REQUEST:"mediahidetexttracksrequest",MEDIA_SHOW_SUBTITLES_REQUEST:"mediashowsubtitlesrequest",MEDIA_DISABLE_SUBTITLES_REQUEST:"mediadisablesubtitlesrequest",MEDIA_PLAYBACK_RATE_REQUEST:"mediaplaybackraterequest",MEDIA_RENDITION_REQUEST:"mediarenditionrequest",MEDIA_AUDIO_TRACK_REQUEST:"mediaaudiotrackrequest",MEDIA_SEEK_TO_LIVE_REQUEST:"mediaseektoliverequest",REGISTER_MEDIA_STATE_RECEIVER:"registermediastatereceiver",UNREGISTER_MEDIA_STATE_RECEIVER:"unregistermediastatereceiver"},ye={MEDIA_CHROME_ATTRIBUTES:"mediachromeattributes",MEDIA_CONTROLLER:"mediacontroller"},Dr={MEDIA_AIRPLAY_UNAVAILABLE:"mediaAirplayUnavailable",MEDIA_FULLSCREEN_UNAVAILABLE:"mediaFullscreenUnavailable",MEDIA_PIP_UNAVAILABLE:"mediaPipUnavailable",MEDIA_CAST_UNAVAILABLE:"mediaCastUnavailable",MEDIA_RENDITION_UNAVAILABLE:"mediaRenditionUnavailable",MEDIA_AUDIO_TRACK_UNAVAILABLE:"mediaAudioTrackUnavailable",MEDIA_PAUSED:"mediaPaused",MEDIA_HAS_PLAYED:"mediaHasPlayed",MEDIA_ENDED:"mediaEnded",MEDIA_MUTED:"mediaMuted",MEDIA_VOLUME_LEVEL:"mediaVolumeLevel",MEDIA_VOLUME:"mediaVolume",MEDIA_VOLUME_UNAVAILABLE:"mediaVolumeUnavailable",MEDIA_IS_PIP:"mediaIsPip",MEDIA_IS_CASTING:"mediaIsCasting",MEDIA_SUBTITLES_LIST:"mediaSubtitlesList",MEDIA_SUBTITLES_SHOWING:"mediaSubtitlesShowing",MEDIA_IS_FULLSCREEN:"mediaIsFullscreen",MEDIA_PLAYBACK_RATE:"mediaPlaybackRate",MEDIA_CURRENT_TIME:"mediaCurrentTime",MEDIA_DURATION:"mediaDuration",MEDIA_SEEKABLE:"mediaSeekable",MEDIA_PREVIEW_TIME:"mediaPreviewTime",MEDIA_PREVIEW_IMAGE:"mediaPreviewImage",MEDIA_PREVIEW_COORDS:"mediaPreviewCoords",MEDIA_LOADING:"mediaLoading",MEDIA_BUFFERED:"mediaBuffered",MEDIA_STREAM_TYPE:"mediaStreamType",MEDIA_TARGET_LIVE_WINDOW:"mediaTargetLiveWindow",MEDIA_TIME_IS_LIVE:"mediaTimeIsLive",MEDIA_RENDITION_LIST:"mediaRenditionList",MEDIA_RENDITION_SELECTED:"mediaRenditionSelected",MEDIA_AUDIO_TRACK_LIST:"mediaAudioTrackList",MEDIA_AUDIO_TRACK_ENABLED:"mediaAudioTrackEnabled"},dm=Object.entries(Dr),S=dm.reduce((r,[e,t])=>(r[e]=`${t.toLowerCase()}`,r),{}),Wi=dm.reduce((r,[e,t])=>(r[e]=`${t.toLowerCase()}`,r),{USER_INACTIVE:"userinactivechange",BREAKPOINTS_CHANGE:"breakpointchange",BREAKPOINTS_COMPUTED:"breakpointscomputed"}),RS=Object.entries(Wi).reduce((r,[e,t])=>{let i=S[e];return i&&(r[t]=i),r},{userinactivechange:"userinactive"}),cm=Object.entries(S).reduce((r,[e,t])=>{let i=Wi[e];return i&&(r[t]=i),r},{userinactive:"userinactivechange"}),bs={SUBTITLES:"subtitles",CAPTIONS:"captions",DESCRIPTIONS:"descriptions",CHAPTERS:"chapters",METADATA:"metadata"},xa={DISABLED:"disabled",HIDDEN:"hidden",SHOWING:"showing"};var Id={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"},Qt={UNAVAILABLE:"unavailable",UNSUPPORTED:"unsupported"},ui={LIVE:"live",ON_DEMAND:"on-demand",UNKNOWN:"unknown"};var Rt={AUDIO_PLAYER:()=>"audio player",VIDEO_PLAYER:()=>"video player",VOLUME:()=>"volume",SEEK:()=>"seek",CLOSED_CAPTIONS:()=>"closed captions",PLAYBACK_RATE:({playbackRate:r=1}={})=>`current playback rate ${r}`,PLAYBACK_TIME:()=>"playback time",MEDIA_LOADING:()=>"media loading"},Xe={PLAY:()=>"play",PAUSE:()=>"pause",MUTE:()=>"mute",UNMUTE:()=>"unmute",AIRPLAY:()=>"air play",ENTER_CAST:()=>"start casting",EXIT_CAST:()=>"stop casting",ENTER_FULLSCREEN:()=>"enter fullscreen mode",EXIT_FULLSCREEN:()=>"exit fullscreen mode",ENTER_PIP:()=>"enter picture in picture mode",EXIT_PIP:()=>"exit picture in picture mode",SEEK_FORWARD_N_SECS:({seekOffset:r=30}={})=>`seek forward ${r} seconds`,SEEK_BACK_N_SECS:({seekOffset:r=30}={})=>`seek back ${r} seconds`,SEEK_LIVE:()=>"seek to live",PLAYING_LIVE:()=>"playing live"},Ab={...Rt,...Xe};function um(r){return r==null?void 0:r.map(Sb).join(" ")}function hm(r){return r==null?void 0:r.split(/\s+/).map(xb)}function Sb(r){if(r){let{id:e,width:t,height:i}=r;return[e,t,i].filter(s=>s!=null).join(":")}}function xb(r){if(r){let[e,t,i]=r.split(":");return{id:e,width:t,height:i}}}function fm(r){return r==null?void 0:r.map(Ib).join(" ")}function mm(r){return r==null?void 0:r.split(/\s+/).map(Lb)}function Ib(r){if(r){let{id:e,kind:t,language:i,label:s}=r;return[e,t,i,s].filter(n=>n!=null).join(":")}}function Lb(r){if(r){let[e,t,i,s]=r.split(":");return{id:e,kind:t,language:i,label:s}}}function Ia(r,e=!1){return r.split("_").map(function(t,i){return(i||e?t[0].toUpperCase():t[0].toLowerCase())+t.slice(1).toLowerCase()}).join("")}function pm(r){return r.replace(/[-_]([a-z])/g,(e,t)=>t.toUpperCase())}function gm(r){return typeof r=="number"&&!Number.isNaN(r)&&Number.isFinite(r)}function La(r){return typeof r!="string"?!1:!isNaN(r)&&!isNaN(parseFloat(r))}var ka=r=>new Promise(e=>setTimeout(e,r));var vm=[{singular:"hour",plural:"hours"},{singular:"minute",plural:"minutes"},{singular:"second",plural:"seconds"}],kb=(r,e)=>{let t=r===1?vm[e].singular:vm[e].plural;return`${r} ${t}`},Cr=r=>{if(!gm(r))return"";let e=Math.abs(r),t=e!==r,i=new Date(0,0,0,0,0,e,0);return`${[i.getHours(),i.getMinutes(),i.getSeconds()].map((o,l)=>o&&kb(o,l)).filter(o=>o).join(", ")}${t?" remaining":""}`};function Si(r,e){let t=!1;r<0&&(t=!0,r=0-r),r=r<0?0:r;let i=Math.floor(r%60),s=Math.floor(r/60%60),n=Math.floor(r/3600),a=Math.floor(e/60%60),o=Math.floor(e/3600);return(isNaN(r)||r===1/0)&&(n=s=i="0"),n=n>0||o>0?n+":":"",s=((n||a>=10)&&s<10?"0"+s:s)+":",i=i<10?"0"+i:i,(t?"-":"")+n+s+i}var MS=Object.freeze({length:0,start(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0}});var Ra=(r,e,t=".value")=>{let i=r.querySelector(t);!i||(i.textContent=e)},wb=(r,e)=>{let t=`slot[name="${e}"]`,i=r.shadowRoot.querySelector(t);return i?i.children:[]},wa=(r,e)=>wb(r,e)[0],Mr=(r,e)=>!r||!e?!1:r.contains(e)?!0:Mr(r,e.getRootNode().host),or=(r,e)=>{if(!r)return null;let t=r.closest(e);return t||or(r.getRootNode().host,e)};function Ld(r=document){var e;let t=r==null?void 0:r.activeElement;return t?(e=Ld(t.shadowRoot))!=null?e:t:null}function Qe(r,e){var t;let i;for(i of r.querySelectorAll("style")){let s;try{s=(t=i.sheet)==null?void 0:t.cssRules}catch{continue}for(let n of s!=null?s:[])if(n.selectorText===e)return n}return i!=null&&i.sheet?(i.sheet.insertRule(`${e}{}`,i.sheet.cssRules.length),i.sheet.cssRules[i.sheet.cssRules.length-1]):{style:{setProperty:()=>{},removeProperty:()=>{}}}}function Fe(r,e,t=Number.NaN){let i=r.getAttribute(e);return i!=null?+i:t}function ze(r,e,t){let i=+t;if(t==null||Number.isNaN(i)){r.hasAttribute(e)&&r.removeAttribute(e);return}Fe(r,e,void 0)!==i&&r.setAttribute(e,`${i}`)}function Ye(r,e){return r.hasAttribute(e)}function Ke(r,e,t){if(t==null){r.hasAttribute(e)&&r.removeAttribute(e);return}Ye(r,e)!=t&&r.toggleAttribute(e,t)}function We(r,e,t=null){var i;return(i=r.getAttribute(e))!=null?i:t}function Be(r,e,t){if(t==null){r.hasAttribute(e)&&r.removeAttribute(e);return}let i=`${t}`;We(r,e,void 0)!==i&&r.setAttribute(e,i)}var Da=class{addEventListener(){}removeEventListener(){}dispatchEvent(){return!0}},kd=class{observe(){}unobserve(){}disconnect(){}},Em={createElement:function(){return new Rd.HTMLElement},addEventListener(){},removeEventListener(){}},Rd={ResizeObserver:kd,document:Em,HTMLElement:class extends Da{},DocumentFragment:class extends Da{},customElements:{get:function(){},define:function(){},whenDefined:function(){}},CustomEvent:function(){},getComputedStyle:function(){}},bm=typeof window=="undefined"||typeof window.customElements=="undefined",ym=Object.keys(Rd).every(r=>r in globalThis),w=bm&&!ym?Rd:globalThis,Y=bm&&!ym?Em:globalThis.document;var Db=Object.defineProperty,Cb=(r,e,t)=>e in r?Db(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Mb=(r,e,t)=>(Cb(r,typeof e!="symbol"?e+"":e,t),t),Tm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},ri=(r,e,t)=>(Tm(r,e,"read from private field"),t?t.call(r):e.get(r)),Ca=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Ma=(r,e,t,i)=>(Tm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),xi,Oa,ys,Pa,_m=Y.createElement("template");_m.innerHTML=`
|
|
20
20
|
<style>
|
|
21
21
|
:host {
|
|
22
22
|
font: var(--media-font,
|
|
@@ -92,7 +92,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
92
92
|
box-sizing: border-box;
|
|
93
93
|
}
|
|
94
94
|
</style>
|
|
95
|
-
`;var Cd=class extends w.HTMLElement{constructor(e={}){if(super(),Ub(this,$t,void 0),!this.shadowRoot){let t=this.attachShadow({mode:"open"}),i=Lm.content.cloneNode(!0);this.nativeEl=i;let s=e.slotTemplate;s||(s=Y.createElement("template"),s.innerHTML=`<slot>${e.defaultContent||""}</slot>`),this.nativeEl.appendChild(s.content.cloneNode(!0)),t.appendChild(i)}}static get observedAttributes(){return[ye.MEDIA_CONTROLLER,S.MEDIA_PAUSED]}attributeChangedCallback(e,t,i){var s,n,a,o,l;e===ye.MEDIA_CONTROLLER&&(t&&((n=(s=lr(this,$t))==null?void 0:s.unassociateElement)==null||n.call(s,this),Na(this,$t,null)),i&&(Na(this,$t,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=lr(this,$t))==null?void 0:o.associateElement)==null||l.call(o,this)))}connectedCallback(){var e,t,i,s;this.tabIndex=-1,this.setAttribute("aria-hidden","true"),Na(this,$t,Fb(this)),this.getAttribute(ye.MEDIA_CONTROLLER)&&((t=(e=lr(this,$t))==null?void 0:e.associateElement)==null||t.call(e,this)),(i=lr(this,$t))==null||i.addEventListener("pointerdown",this),(s=lr(this,$t))==null||s.addEventListener("click",this)}disconnectedCallback(){var e,t,i,s;this.getAttribute(ye.MEDIA_CONTROLLER)&&((t=(e=lr(this,$t))==null?void 0:e.unassociateElement)==null||t.call(e,this)),(i=lr(this,$t))==null||i.removeEventListener("pointerdown",this),(s=lr(this,$t))==null||s.removeEventListener("click",this),Na(this,$t,null)}handleEvent(e){var t;let i=(t=e.composedPath())==null?void 0:t[0];if(!!["video","media-controller"].includes(i==null?void 0:i.localName)){if(e.type==="pointerdown")this._pointerType=e.pointerType;else if(e.type==="click"){let{clientX:n,clientY:a}=e,{left:o,top:l,width:d,height:c}=this.getBoundingClientRect(),u=n-o,h=a-l;if(u<0||h<0||u>d||h>c||d===0&&c===0)return;let{pointerType:f=this._pointerType}=e;if(this._pointerType=void 0,f===Id.TOUCH){this.handleTap(e);return}else if(f===Id.MOUSE){this.handleMouseClick(e);return}}}}get mediaPaused(){return Ye(this,S.MEDIA_PAUSED)}set mediaPaused(e){Ke(this,S.MEDIA_PAUSED,e)}handleTap(e){}handleMouseClick(e){let t=this.mediaPaused?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new w.CustomEvent(t,{composed:!0,bubbles:!0}))}};$t=new WeakMap;function Fb(r){var e;let t=r.getAttribute(ye.MEDIA_CONTROLLER);return t?(e=r.getRootNode())==null?void 0:e.getElementById(t):or(r,"media-controller")}w.customElements.get("media-gesture-receiver")||w.customElements.define("media-gesture-receiver",Cd);var Bb=Object.defineProperty,$b=(r,e,t)=>e in r?Bb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,
|
|
95
|
+
`;var Cd=class extends w.HTMLElement{constructor(e={}){if(super(),Ub(this,$t,void 0),!this.shadowRoot){let t=this.attachShadow({mode:"open"}),i=Lm.content.cloneNode(!0);this.nativeEl=i;let s=e.slotTemplate;s||(s=Y.createElement("template"),s.innerHTML=`<slot>${e.defaultContent||""}</slot>`),this.nativeEl.appendChild(s.content.cloneNode(!0)),t.appendChild(i)}}static get observedAttributes(){return[ye.MEDIA_CONTROLLER,S.MEDIA_PAUSED]}attributeChangedCallback(e,t,i){var s,n,a,o,l;e===ye.MEDIA_CONTROLLER&&(t&&((n=(s=lr(this,$t))==null?void 0:s.unassociateElement)==null||n.call(s,this),Na(this,$t,null)),i&&(Na(this,$t,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=lr(this,$t))==null?void 0:o.associateElement)==null||l.call(o,this)))}connectedCallback(){var e,t,i,s;this.tabIndex=-1,this.setAttribute("aria-hidden","true"),Na(this,$t,Fb(this)),this.getAttribute(ye.MEDIA_CONTROLLER)&&((t=(e=lr(this,$t))==null?void 0:e.associateElement)==null||t.call(e,this)),(i=lr(this,$t))==null||i.addEventListener("pointerdown",this),(s=lr(this,$t))==null||s.addEventListener("click",this)}disconnectedCallback(){var e,t,i,s;this.getAttribute(ye.MEDIA_CONTROLLER)&&((t=(e=lr(this,$t))==null?void 0:e.unassociateElement)==null||t.call(e,this)),(i=lr(this,$t))==null||i.removeEventListener("pointerdown",this),(s=lr(this,$t))==null||s.removeEventListener("click",this),Na(this,$t,null)}handleEvent(e){var t;let i=(t=e.composedPath())==null?void 0:t[0];if(!!["video","media-controller"].includes(i==null?void 0:i.localName)){if(e.type==="pointerdown")this._pointerType=e.pointerType;else if(e.type==="click"){let{clientX:n,clientY:a}=e,{left:o,top:l,width:d,height:c}=this.getBoundingClientRect(),u=n-o,h=a-l;if(u<0||h<0||u>d||h>c||d===0&&c===0)return;let{pointerType:f=this._pointerType}=e;if(this._pointerType=void 0,f===Id.TOUCH){this.handleTap(e);return}else if(f===Id.MOUSE){this.handleMouseClick(e);return}}}}get mediaPaused(){return Ye(this,S.MEDIA_PAUSED)}set mediaPaused(e){Ke(this,S.MEDIA_PAUSED,e)}handleTap(e){}handleMouseClick(e){let t=this.mediaPaused?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new w.CustomEvent(t,{composed:!0,bubbles:!0}))}};$t=new WeakMap;function Fb(r){var e;let t=r.getAttribute(ye.MEDIA_CONTROLLER);return t?(e=r.getRootNode())==null?void 0:e.getElementById(t):or(r,"media-controller")}w.customElements.get("media-gesture-receiver")||w.customElements.define("media-gesture-receiver",Cd);var Bb=Object.defineProperty,$b=(r,e,t)=>e in r?Bb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Hb=(r,e,t)=>($b(r,typeof e!="symbol"?e+"":e,t),t),He={AUDIO:"audio",AUTOHIDE:"autohide",BREAKPOINTS:"breakpoints",GESTURES_DISABLED:"gesturesdisabled",KEYBOARD_CONTROL:"keyboardcontrol",NO_AUTOHIDE:"noautohide",USER_INACTIVE:"userinactive"},km=Y.createElement("template");km.innerHTML=`
|
|
96
96
|
<style>
|
|
97
97
|
|
|
98
98
|
:host([${S.MEDIA_IS_FULLSCREEN}]) ::slotted([slot=media]) {
|
|
@@ -107,7 +107,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
107
107
|
background-color: var(--media-background-color, #000);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
:host(:not([${
|
|
110
|
+
:host(:not([${He.AUDIO}])) [part~=layer]:not([part~=media-layer]) {
|
|
111
111
|
position: absolute;
|
|
112
112
|
top: 0;
|
|
113
113
|
left: 0;
|
|
@@ -125,19 +125,19 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
|
|
128
|
-
:host([${
|
|
128
|
+
:host([${He.AUDIO}]) slot[name=media] {
|
|
129
129
|
display: var(--media-slot-display, none);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
|
|
133
|
-
:host([${
|
|
133
|
+
:host([${He.AUDIO}]) [part~=layer][part~=gesture-layer] {
|
|
134
134
|
height: 0;
|
|
135
135
|
display: block;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
:host(:not([${
|
|
140
|
-
:host(:not([${
|
|
139
|
+
:host(:not([${He.AUDIO}])[${He.GESTURES_DISABLED}]) ::slotted([slot=gestures-chrome]),
|
|
140
|
+
:host(:not([${He.AUDIO}])[${He.GESTURES_DISABLED}]) media-gesture-receiver[slot=gestures-chrome] {
|
|
141
141
|
display: none;
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -146,13 +146,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
146
146
|
pointer-events: auto;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
:host(:not([${
|
|
149
|
+
:host(:not([${He.AUDIO}])) *[part~=layer][part~=centered-layer] {
|
|
150
150
|
align-items: center;
|
|
151
151
|
justify-content: center;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
:host(:not([${
|
|
155
|
-
:host(:not([${
|
|
154
|
+
:host(:not([${He.AUDIO}])) ::slotted(media-gesture-receiver[slot=gestures-chrome]),
|
|
155
|
+
:host(:not([${He.AUDIO}])) media-gesture-receiver[slot=gestures-chrome] {
|
|
156
156
|
align-self: stretch;
|
|
157
157
|
flex-grow: 1;
|
|
158
158
|
}
|
|
@@ -172,7 +172,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
|
|
175
|
-
:host(:not([${
|
|
175
|
+
:host(:not([${He.AUDIO}])) .spacer {
|
|
176
176
|
flex-grow: 1;
|
|
177
177
|
}
|
|
178
178
|
|
|
@@ -184,13 +184,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
|
|
187
|
-
::slotted(:not([slot=media]):not([${
|
|
187
|
+
::slotted(:not([slot=media]):not([${He.NO_AUTOHIDE}])) {
|
|
188
188
|
opacity: 1;
|
|
189
189
|
transition: opacity 0.25s;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
|
|
193
|
-
:host([${
|
|
193
|
+
:host([${He.USER_INACTIVE}]:not([${S.MEDIA_PAUSED}]):not([${S.MEDIA_IS_CASTING}]):not([${He.AUDIO}])) ::slotted(:not([slot=media]):not([${He.NO_AUTOHIDE}])) {
|
|
194
194
|
opacity: 0;
|
|
195
195
|
transition: opacity 1s;
|
|
196
196
|
}
|
|
@@ -200,7 +200,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
|
|
203
|
-
:host(:not([${
|
|
203
|
+
:host(:not([${He.AUDIO}])[${S.MEDIA_HAS_PLAYED}]) slot[name=poster] {
|
|
204
204
|
display: none;
|
|
205
205
|
}
|
|
206
206
|
</style>
|
|
@@ -217,7 +217,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
217
217
|
|
|
218
218
|
<slot part="bottom chrome"></slot>
|
|
219
219
|
</span>
|
|
220
|
-
`;var Hb=Object.values(S),Vb="sm:384 md:576 lg:768 xl:960";function Kb(r){for(let e of r)Wb(e.target,e.contentRect.width)}function Wb(r,e){var t;if(!r.isConnected)return;let i=(t=r.getAttribute(Ge.BREAKPOINTS))!=null?t:Vb,s=qb(i),n=Yb(s,e),a=!1;if(Object.keys(s).forEach(o=>{if(n.includes(o)){r.hasAttribute(`breakpoint${o}`)||(r.setAttribute(`breakpoint${o}`,""),a=!0);return}r.hasAttribute(`breakpoint${o}`)&&(r.removeAttribute(`breakpoint${o}`),a=!0)}),a){let o=new CustomEvent(Wi.BREAKPOINTS_CHANGE,{detail:n});r.dispatchEvent(o)}}function qb(r){let e=r.split(/\s+/);return Object.fromEntries(e.map(t=>t.split(":")))}function Yb(r,e){return Object.keys(r).filter(t=>e>=r[t])}var Ua=class extends w.HTMLElement{constructor(){super(),Gb(this,"breakpointsComputed",!1),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(km.content.cloneNode(!0)));let e=l=>{let d=this.media;for(let c of l)c.type==="childList"&&(c.removedNodes.forEach(u=>{if(u.slot=="media"&&c.target==this){let h=c.previousSibling&&c.previousSibling.previousElementSibling;if(!h||!d)this.mediaUnsetCallback(u);else{let f=h.slot!=="media";for(;(h=h.previousSibling)!==null;)h.slot=="media"&&(f=!1);f&&this.mediaUnsetCallback(u)}}}),d&&c.addedNodes.forEach(u=>{u==d&&this.handleMediaUpdated(d).then(h=>this.mediaSetCallback(h))}))};new MutationObserver(e).observe(this,{childList:!0,subtree:!0});let i=!1,s=l=>{i||(setTimeout(()=>{Kb(l),i=!1,this.breakpointsComputed||(this.breakpointsComputed=!0,this.dispatchEvent(new CustomEvent(Wi.BREAKPOINTS_COMPUTED,{bubbles:!0,composed:!0})))},0),i=!0)},n=new ResizeObserver(s);this.resizeObserver=n,n.observe(this);let a=this.media,o=this.querySelector(":scope > slot[slot=media]");o&&o.addEventListener("slotchange",()=>{if(!o.assignedElements({flatten:!0}).length){this.mediaUnsetCallback(a);return}this.media&&(a=this.media,this.handleMediaUpdated(this.media).then(d=>this.mediaSetCallback(d)))})}static get observedAttributes(){return[Ge.AUTOHIDE,Ge.GESTURES_DISABLED].concat(Hb).filter(e=>![S.MEDIA_RENDITION_LIST,S.MEDIA_AUDIO_TRACK_LIST].includes(e))}attributeChangedCallback(e,t,i){e.toLowerCase()==Ge.AUTOHIDE&&(this.autohide=i)}get media(){let e=this.querySelector(":scope > [slot=media]");return(e==null?void 0:e.nodeName)=="SLOT"&&(e=e.assignedElements({flatten:!0})[0]),e}mediaSetCallback(e){this._mediaClickPlayToggle=()=>{let t=e.paused?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new w.CustomEvent(t,{composed:!0,bubbles:!0}))}}handleMediaUpdated(e){let t=n=>Promise.resolve(n),i=n=>(console.error('<media-chrome>: Media element set with slot="media" does not appear to be compatible.',n),Promise.reject(n));if(!e)return i(e);let s=e.nodeName.toLowerCase();return s.includes("-")?w.customElements.whenDefined(s).then(()=>t(e)):t(e)}mediaUnsetCallback(e){}connectedCallback(){var e;let i=this.getAttribute(Ge.AUDIO)!=null?Rt.AUDIO_PLAYER():Rt.VIDEO_PLAYER();this.setAttribute("role","region"),this.setAttribute("aria-label",i),this.media&&this.handleMediaUpdated(this.media).then(o=>this.mediaSetCallback(o)),this.setAttribute(Ge.USER_INACTIVE,"");let s=()=>{if(this.autohide<0||this.hasAttribute(Ge.USER_INACTIVE))return;this.setAttribute(Ge.USER_INACTIVE,"");let o=new w.CustomEvent(Wi.USER_INACTIVE,{composed:!0,bubbles:!0,detail:!0});this.dispatchEvent(o)},n=()=>{if(!this.hasAttribute(Ge.USER_INACTIVE))return;this.removeAttribute(Ge.USER_INACTIVE);let o=new w.CustomEvent(Wi.USER_INACTIVE,{composed:!0,bubbles:!0,detail:!1});this.dispatchEvent(o)},a=()=>{n(),clearTimeout(this._inactiveTimeout),!(this.autohide<0)&&(this._inactiveTimeout=setTimeout(()=>{s()},this.autohide*1e3))};this.addEventListener("keyup",()=>{a()}),this.addEventListener("pointerup",o=>{o.pointerType==="touch"?[this,this.media].includes(o.target)&&!this.hasAttribute(Ge.USER_INACTIVE)?s():a():o.composedPath().some(l=>{var d;return["media-play-button","media-fullscreen-button"].includes((d=l==null?void 0:l.nodeName)==null?void 0:d.toLowerCase())})&&a()}),this.addEventListener("pointermove",o=>{o.pointerType==="mouse"&&(n(),clearTimeout(this._inactiveTimeout),[this,this.media].includes(o.target)&&a())}),this.addEventListener("mouseleave",()=>{s()}),this.addEventListener("keyup",()=>{this.setAttribute(Ge.KEYBOARD_CONTROL,"")}),(e=w.window)==null||e.addEventListener("mouseup",()=>{this.removeAttribute(Ge.KEYBOARD_CONTROL)})}set autohide(e){e=Number(e),this._autohide=isNaN(e)?0:e}get autohide(){return this._autohide===void 0?2:this._autohide}};var Rm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},yt=(r,e,t)=>(Rm(r,e,"read from private field"),t?t.call(r):e.get(r)),mn=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Fa=(r,e,t,i)=>(Rm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Ts,_s,Ba,Or,qi,dr,cr=class{constructor(e,t,{defaultValue:i}={defaultValue:void 0}){mn(this,qi),mn(this,Ts,void 0),mn(this,_s,void 0),mn(this,Ba,void 0),mn(this,Or,new Set),Fa(this,Ts,e),Fa(this,_s,t),Fa(this,Ba,new Set(i))}[Symbol.iterator](){return yt(this,qi,dr).values()}get length(){return yt(this,qi,dr).size}get value(){var e;return(e=[...yt(this,qi,dr)].join(" "))!=null?e:""}set value(e){var t;e!==this.value&&(Fa(this,Or,new Set),this.add(...(t=e==null?void 0:e.split(" "))!=null?t:[]))}toString(){return this.value}item(e){return[...yt(this,qi,dr)][e]}values(){return yt(this,qi,dr).values()}forEach(e){yt(this,qi,dr).forEach(e)}add(...e){var t,i;e.forEach(s=>yt(this,Or).add(s)),!(this.value===""&&!((t=yt(this,Ts))!=null&&t.hasAttribute(`${yt(this,_s)}`)))&&((i=yt(this,Ts))==null||i.setAttribute(`${yt(this,_s)}`,`${this.value}`))}remove(...e){var t;e.forEach(i=>yt(this,Or).delete(i)),(t=yt(this,Ts))==null||t.setAttribute(`${yt(this,_s)}`,`${this.value}`)}contains(e){return yt(this,qi,dr).has(e)}toggle(e,t){return typeof t!="undefined"?t?(this.add(e),!0):(this.remove(e),!1):this.contains(e)?(this.remove(e),!1):(this.add(e),!0)}replace(e,t){return this.remove(e),this.add(t),e===t}};Ts=new WeakMap;_s=new WeakMap;Ba=new WeakMap;Or=new WeakMap;qi=new WeakSet;dr=function(){return yt(this,Or).size?yt(this,Or):yt(this,Ba)};var wm=(r="")=>r.split(/\s+/),Dm=(r="")=>{let[e,t,i]=r.split(":"),s=i?decodeURIComponent(i):void 0;return e=e==="cc"?"captions":"subtitles",{kind:e,language:t,label:s}},pn=(r="",e={})=>wm(r).map(t=>{let i=Dm(t);return{...e,...i}}),jb=r=>Array.isArray(r)?r.map(e=>typeof e=="string"?Dm(e):e):typeof r=="string"?pn(r):[r],$a=({kind:r,label:e,language:t}={kind:"subtitles"})=>e?`${r==="captions"?"cc":"sb"}:${t}:${encodeURIComponent(e)}`:t,Pr=(r=[])=>Array.prototype.map.call(r,$a).join(" "),zb=(r,e)=>t=>t[r]===e,Cm=r=>{let e=Object.entries(r).map(([t,i])=>zb(t,i));return t=>e.every(i=>i(t))},Md=(r,e=[],t=[])=>{let i=jb(t).map(Cm),s=n=>i.some(a=>a(n));Array.from(e).filter(s).forEach(n=>{n.mode=r})},Ga=(r,e=()=>!0)=>{if(!(r!=null&&r.textTracks))return[];let t=typeof e=="function"?e:Cm(e);return Array.from(r.textTracks).filter(t)},Od=r=>!!r.getAttribute(S.MEDIA_SUBTITLES_SHOWING),Yi=(r,e)=>{var t,i;let s=Od(r);if(s||e===!1){let n=r.getAttribute(S.MEDIA_SUBTITLES_SHOWING);if(n){let a=new w.CustomEvent(re.MEDIA_DISABLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:n});r.dispatchEvent(a)}}else if(!s||e===!0){let[n]=(i=wm((t=r.getAttribute(S.MEDIA_SUBTITLES_LIST))!=null?t:""))!=null?i:[];if(n){let a=new w.CustomEvent(re.MEDIA_SHOW_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:n});r.dispatchEvent(a)}}else console.error("Attempting to enable captions or subtitles but none are available! Please verify your media content if this is unexpected.")};var at={enter:"requestFullscreen",exit:"exitFullscreen",rootEvents:["fullscreenchange"],mediaEvents:[],element:"fullscreenElement",error:"fullscreenerror",enabled:"fullscreenEnabled"};Y.fullscreenElement===void 0&&(at.enter="webkitRequestFullScreen",at.exit=Y.webkitExitFullscreen!=null?"webkitExitFullscreen":"webkitCancelFullScreen",at.rootEvents=["webkitfullscreenchange"],at.mediaEvents=["webkitbeginfullscreen","webkitendfullscreen"],at.element="webkitFullscreenElement",at.error="webkitfullscreenerror",at.enabled="webkitFullscreenEnabled");var Ha,Pd=()=>{var r,e;return Ha||(Ha=(e=(r=Y)==null?void 0:r.createElement)==null?void 0:e.call(r,"video"),Ha)},Mm=async(r=Pd())=>{if(!r)return!1;let e=r.volume;return r.volume=e/2+.1,await ka(0),r.volume!==e},Xb=(r=Pd())=>typeof(r==null?void 0:r.requestPictureInPicture)=="function",Qb=(r=Pd())=>{let e=Y[at.enabled];return!e&&r&&(e="webkitSupportsFullscreen"in r),e},Nd=Qb(),Om=Xb(),Pm=!!w.WebKitPlaybackTargetAvailabilityEvent,Nm=!!w.chrome;var Va,Um=Mm().then(r=>(Va=r,Va)),Zb=Object.values(ui),Ud=r=>Ga(r.media,e=>[bs.SUBTITLES,bs.CAPTIONS].includes(e.kind)).sort((e,t)=>e.kind>=t.kind?1:-1),Jb=r=>Ga(r.media,e=>e.mode===xa.SHOWING&&[bs.SUBTITLES,bs.CAPTIONS].includes(e.kind)),Gt={MEDIA_PAUSED:{get:function(r){let{media:e}=r;return e?e.paused:!0},mediaEvents:["play","playing","pause","emptied"]},MEDIA_HAS_PLAYED:{get:function(r){let{media:e}=r;return e?!e.paused:!1},mediaEvents:["playing","emptied"]},MEDIA_ENDED:{get:function(r){let{media:e}=r;return e?e.ended:!1},mediaEvents:["seeked","ended","emptied"]},MEDIA_PLAYBACK_RATE:{get:function(r){let{media:e}=r;return!e||typeof e.playbackRate=="undefined"?1:e.playbackRate},mediaEvents:["ratechange","loadstart"]},MEDIA_MUTED:{get:function(r){let{media:e}=r;return!e||typeof e.muted=="undefined"?!1:e.muted},mediaEvents:["volumechange"]},MEDIA_VOLUME:{get:function(r){let{media:e}=r;return!e||typeof e.volume=="undefined"?1:Number(e.volume)},mediaEvents:["volumechange"]},MEDIA_VOLUME_LEVEL:{get:function(r){let{media:e}=r,t="high";if(!e||typeof e.volume=="undefined")return t;let{muted:i,volume:s}=e;return s===0||i?t="off":s<.5?t="low":s<.75&&(t="medium"),t},mediaEvents:["volumechange"]},MEDIA_CURRENT_TIME:{get:function(r){let{media:e}=r;return!e||typeof e.currentTime=="undefined"?0:e.currentTime},mediaEvents:["timeupdate","loadedmetadata"]},MEDIA_DURATION:{get:function(r){let{media:e}=r;return!e||!Number.isFinite(e.duration)?NaN:e.duration},mediaEvents:["durationchange","loadedmetadata","emptied"]},MEDIA_SEEKABLE:{get:function(r){var e;let{media:t}=r;if(!((e=t==null?void 0:t.seekable)!=null&&e.length))return;let i=t.seekable.start(0),s=t.seekable.end(t.seekable.length-1);if(!(!i&&!s))return[Number(i.toFixed(3)),Number(s.toFixed(3))]},mediaEvents:["loadedmetadata","emptied","progress"]},MEDIA_LOADING:{get:function(r){var e;return((e=r.media)==null?void 0:e.readyState)<3},mediaEvents:["waiting","playing","emptied"]},MEDIA_BUFFERED:{get:function(r){var e,t,i;let s=(e=r.media)==null?void 0:e.buffered;return Array.from((i=(t=r.media)==null?void 0:t.buffered)!=null?i:[]).map((n,a)=>[Number(s.start(a)).toFixed(3),Number(s.end(a)).toFixed(3)])},mediaEvents:["progress","emptied"]},MEDIA_STREAM_TYPE:{get:function(r){let{media:e}=r;if(!e)return;let{streamType:t}=e;if(Zb.includes(t)){if(t===ui.UNKNOWN){let s=r.getAttribute("defaultstreamtype");return[ui.LIVE,ui.ON_DEMAND].includes(s)?s:void 0}return t}let i=e.duration;if(i===1/0)return ui.LIVE;if(Number.isFinite(i))return ui.ON_DEMAND;{let s=r.getAttribute("defaultstreamtype");if([ui.LIVE,ui.ON_DEMAND].includes(s))return s}},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange"]},MEDIA_TARGET_LIVE_WINDOW:{get:function(r){let{media:e}=r;if(!e)return Number.NaN;let{targetLiveWindow:t}=e,i=Gt.MEDIA_STREAM_TYPE.get(r);return(t==null||Number.isNaN(t))&&i===ui.LIVE?0:t},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange","targetlivewindowchange"]},MEDIA_TIME_IS_LIVE:{get:function(r){let{media:e}=r;if(!e)return!1;if(typeof e.liveEdgeStart=="number")return Number.isNaN(e.liveEdgeStart)?!1:e.currentTime>=e.liveEdgeStart;if(!(Gt.MEDIA_STREAM_TYPE.get(r)==="live"))return!1;let i=e.seekable;if(!i)return!0;if(!i.length)return!1;let s=r.hasAttribute("liveedgeoffset")?Number(r.getAttribute("liveedgeoffset")):10,n=i.end(i.length-1)-s;return e.currentTime>=n},mediaEvents:["playing","timeupdate","progress","waiting","emptied"]},MEDIA_IS_FULLSCREEN:{get:function(r,e){var t;let i=r.media;if(i&&Y[at.element]===void 0&&"webkitDisplayingFullscreen"in i)return i.webkitDisplayingFullscreen&&i.webkitPresentationMode==="fullscreen";let s;return e?s=Y[at.element]?e.target:null:s=(t=r.getRootNode().fullscreenElement)!=null?t:Y[at.element],Mr(r.fullscreenElement,s)},rootEvents:at.rootEvents,mediaEvents:at.mediaEvents},MEDIA_IS_PIP:{get:function(r,e){var t;let i=r.media;if(!i)return!1;if(e)return e.type=="enterpictureinpicture";{let s=(t=r.getRootNode().pictureInPictureElement)!=null?t:Y.pictureInPictureElement;return Mr(i,s)}},mediaEvents:["enterpictureinpicture","leavepictureinpicture"]},MEDIA_IS_CASTING:{get:function(r,e){var t;let{media:i}=r;if(!i)return!1;let s=(t=w.CastableVideoElement)==null?void 0:t.castElement,n=Mr(i,s);return(e==null?void 0:e.type)==="castchange"&&(e==null?void 0:e.detail)==="CONNECTING"&&(n="connecting"),n},mediaEvents:["entercast","leavecast","castchange"]},MEDIA_AIRPLAY_UNAVAILABLE:{get:function(r,e){if(!Pm)return Qt.UNSUPPORTED;if(!!e&&e.availability!=="available"&&e.availability==="not-available")return Qt.UNAVAILABLE},mediaEvents:["webkitplaybacktargetavailabilitychanged"]},MEDIA_CAST_UNAVAILABLE:{get:function(){var r;let e=(r=w.CastableVideoElement)==null?void 0:r.castState;if(!Nm||!e)return Qt.UNSUPPORTED;if(!e.includes("CONNECT"))return Qt.UNAVAILABLE},mediaEvents:["castchange"]},MEDIA_FULLSCREEN_UNAVAILABLE:{get:function(){return Nd?void 0:Qt.UNAVAILABLE}},MEDIA_PIP_UNAVAILABLE:{get:function(){return Om?void 0:Qt.UNSUPPORTED}},MEDIA_RENDITION_UNAVAILABLE:{get:function(r){var e;let{media:t}=r;if(!(t!=null&&t.videoRenditions))return Qt.UNSUPPORTED;if(!((e=t.videoRenditions)!=null&&e.length))return Qt.UNAVAILABLE},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},MEDIA_AUDIO_TRACK_UNAVAILABLE:{get:function(r){var e,t;let{media:i}=r;if(!(i!=null&&i.audioTracks))return Qt.UNSUPPORTED;if(((t=(e=i.audioTracks)==null?void 0:e.length)!=null?t:0)<=1)return Qt.UNAVAILABLE},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},MEDIA_VOLUME_UNAVAILABLE:{get:function(r){if(Va!==void 0&&!Va)return Qt.UNSUPPORTED;let{media:e}=r;if(e&&typeof e.volume=="undefined")return Qt.UNAVAILABLE},mediaEvents:["loadstart"]},MEDIA_SUBTITLES_LIST:{get:function(r){return Ud(r).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack"]},MEDIA_SUBTITLES_SHOWING:{get:function(r){return r.hasAttribute("defaultsubtitles")&&!r.hasAttribute(S.MEDIA_HAS_PLAYED)&&!r.hasAttribute(S.MEDIA_SUBTITLES_SHOWING)&&Yi(r,!0),Jb(r).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack","change"]},MEDIA_RENDITION_LIST:{get:function(r){var e;let{media:t}=r;return[...(e=t==null?void 0:t.videoRenditions)!=null?e:[]]},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},MEDIA_RENDITION_SELECTED:{get:function(r){var e,t,i;let{media:s}=r;return(i=(t=s==null?void 0:s.videoRenditions)==null?void 0:t[(e=s.videoRenditions)==null?void 0:e.selectedIndex])==null?void 0:i.id},mediaEvents:["emptied"],videoRenditionsEvents:["addrendition","removerendition","change"]},MEDIA_AUDIO_TRACK_LIST:{get:function(r){var e;let{media:t}=r;return[...(e=t==null?void 0:t.audioTracks)!=null?e:[]]},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},MEDIA_AUDIO_TRACK_ENABLED:{get:function(r){var e,t;let{media:i}=r;return(t=[...(e=i==null?void 0:i.audioTracks)!=null?e:[]].find(s=>s.enabled))==null?void 0:t.id},mediaEvents:["emptied"],audioTracksEvents:["addtrack","removetrack","change"]}},Ka={MEDIA_PLAY_REQUEST:(r,e,t)=>{var i;let s=Gt.MEDIA_STREAM_TYPE.get(t),n=t.getAttribute("noautoseektolive")===null;s==ui.LIVE&&n&&Ka.MEDIA_SEEK_TO_LIVE_REQUEST(r),(i=r.play())==null||i.catch(()=>{})},MEDIA_PAUSE_REQUEST:r=>r.pause(),MEDIA_MUTE_REQUEST:r=>r.muted=!0,MEDIA_UNMUTE_REQUEST:r=>{r.muted=!1,r.volume===0&&(r.volume=.25)},MEDIA_VOLUME_REQUEST:(r,e,t)=>{let i=e.detail;if(r.volume=i,i>0&&r.muted&&(r.muted=!1),!t.hasAttribute("novolumepref"))try{w.localStorage.setItem("media-chrome-pref-volume",i.toString())}catch{}},MEDIA_ENTER_FULLSCREEN_REQUEST:(r,e,t)=>{if(!Nd){console.warn("Fullscreen support is unavailable; not entering fullscreen");return}Y.pictureInPictureElement&&Y.exitPictureInPicture(),t[at.enter]?t.fullscreenElement[at.enter]():r.webkitEnterFullscreen?r.webkitEnterFullscreen():r.requestFullscreen?r.requestFullscreen():console.warn("MediaChrome: Fullscreen not supported")},MEDIA_EXIT_FULLSCREEN_REQUEST:()=>{Y[at.exit]()},MEDIA_ENTER_PIP_REQUEST:r=>{if(!Y.pictureInPictureEnabled){console.warn("MediaChrome: Picture-in-picture is not enabled");return}if(!r.requestPictureInPicture){console.warn("MediaChrome: The current media does not support picture-in-picture");return}Y[at.element]&&Y[at.exit]();let e=()=>{console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.")};r.requestPictureInPicture().catch(t=>{if(t.code===11)if(r.readyState===0&&r.preload==="none"){let i=()=>{r.removeEventListener("loadedmetadata",s),r.preload="none"},s=()=>{r.requestPictureInPicture().catch(e),i()};r.addEventListener("loadedmetadata",s),r.preload="metadata",setTimeout(()=>{r.readyState===0&&e(),i()},1e3)}else throw t;else throw t})},MEDIA_EXIT_PIP_REQUEST:()=>{Y.pictureInPictureElement&&Y.exitPictureInPicture()},MEDIA_ENTER_CAST_REQUEST:r=>{var e;!((e=w.CastableVideoElement)!=null&&e.castEnabled)||(Y[at.element]&&Y[at.exit](),r.requestCast())},MEDIA_EXIT_CAST_REQUEST:async()=>{var r;(r=w.CastableVideoElement)!=null&&r.castElement&&w.CastableVideoElement.exitCast()},MEDIA_SEEK_REQUEST:(r,e)=>{let t=e.detail;(r.readyState>0||r.readyState===void 0)&&(r.currentTime=t)},MEDIA_PLAYBACK_RATE_REQUEST:(r,e)=>{r.playbackRate=e.detail},MEDIA_PREVIEW_REQUEST:(r,e,t)=>{var i;if(!r)return;let s=e.detail;s===null&&t.propagateMediaState(S.MEDIA_PREVIEW_TIME,void 0),t.propagateMediaState(S.MEDIA_PREVIEW_TIME,s);let[n]=Ga(r,{kind:bs.METADATA,label:"thumbnails"});if(!(n&&n.cues))return;if(s===null){t.propagateMediaState(S.MEDIA_PREVIEW_IMAGE,void 0),t.propagateMediaState(S.MEDIA_PREVIEW_COORDS,void 0);return}let a=Array.prototype.find.call(n.cues,c=>c.startTime>=s);if(!a)return;let o=/'^(?:[a-z]+:)?\/\//i.test(a.text)||(i=r.querySelector('track[label="thumbnails"]'))==null?void 0:i.src,l=new URL(a.text,o),d=new URLSearchParams(l.hash).get("#xywh");t.propagateMediaState(S.MEDIA_PREVIEW_IMAGE,l.href),t.propagateMediaState(S.MEDIA_PREVIEW_COORDS,d.split(","))},MEDIA_SHOW_SUBTITLES_REQUEST:(r,e,t)=>{let i=Ud(t),{detail:s=[]}=e;Md(xa.SHOWING,i,s)},MEDIA_DISABLE_SUBTITLES_REQUEST:(r,e,t)=>{let i=Ud(t),{detail:s=[]}=e;Md(xa.DISABLED,i,s)},MEDIA_AIRPLAY_REQUEST:r=>{if(!!r){if(!(r.webkitShowPlaybackTargetPicker&&w.WebKitPlaybackTargetAvailabilityEvent)){console.warn("received a request to select AirPlay but AirPlay is not supported in this environment");return}r.webkitShowPlaybackTargetPicker()}},MEDIA_SEEK_TO_LIVE_REQUEST:r=>{let e=r.seekable;if(!e){console.warn("MediaController: Media element does not support seeking to live.");return}if(!e.length){console.warn("MediaController: Media is unable to seek to live.");return}r.currentTime=e.end(e.length-1)},MEDIA_RENDITION_REQUEST:(r,e)=>{if(!(r!=null&&r.videoRenditions)){console.warn("MediaController: Rendition selection not supported by this media.");return}let t=e.detail,i=[...r.videoRenditions].findIndex(s=>s.id==t);r.videoRenditions.selectedIndex!=i&&(r.videoRenditions.selectedIndex=i)},MEDIA_AUDIO_TRACK_REQUEST:(r,e)=>{if(!(r!=null&&r.audioTracks)){console.warn("MediaController: Audio track selection not supported by this media.");return}let t=e.detail;for(let i of r.audioTracks)i.enabled=t==i.id}};var $d=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Ur=(r,e,t)=>($d(r,e,"read from private field"),t?t.call(r):e.get(r)),Wa=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Fm=(r,e,t,i)=>($d(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),As=(r,e,t)=>($d(r,e,"access private method"),t),ur,gn,Ss,vn,qa,Fd,Km=["ArrowLeft","ArrowRight","Enter"," ","f","m","k","c"],ey=10,Bm=0,Ht={DEFAULT_SUBTITLES:"defaultsubtitles",DEFAULT_STREAM_TYPE:"defaultstreamtype",FULLSCREEN_ELEMENT:"fullscreenelement",HOTKEYS:"hotkeys",KEYS_USED:"keysused",LIVE_EDGE_OFFSET:"liveedgeoffset",NO_AUTO_SEEK_TO_LIVE:"noautoseektolive",NO_HOTKEYS:"nohotkeys"},Ya=class extends Ua{constructor(){super(),Wa(this,Ss),Wa(this,qa),Wa(this,ur,new cr(this,Ht.HOTKEYS)),Wa(this,gn,void 0),Gt.MEDIA_VOLUME_UNAVAILABLE.get(this)===void 0&&Um.then(()=>{this.propagateMediaState(S.MEDIA_VOLUME_UNAVAILABLE,Gt.MEDIA_VOLUME_UNAVAILABLE.get(this))}),this.mediaStateReceivers=[],this.associatedElementSubscriptions=new Map,this.associateElement(this),Object.keys(Ka).forEach(e=>{let t=`_handle${Ia(e,!0)}`;this[t]=i=>{if(i.stopPropagation(),!this.media){console.warn("MediaController: No media available.");return}Ka[e](this.media,i,this)},this.addEventListener(re[e],this[t])}),this._mediaStatePropagators={},Object.keys(Gt).forEach(e=>{this._mediaStatePropagators[e]=t=>{this.propagateMediaState(Dr[e],Gt[e].get(this,t))}}),this.enableHotkeys()}static get observedAttributes(){return super.observedAttributes.concat(Ht.NO_HOTKEYS,Ht.HOTKEYS,Ht.DEFAULT_STREAM_TYPE,Ht.DEFAULT_SUBTITLES)}get fullscreenElement(){var e;return(e=Ur(this,gn))!=null?e:this}set fullscreenElement(e){this.hasAttribute(Ht.FULLSCREEN_ELEMENT)&&this.removeAttribute(Ht.FULLSCREEN_ELEMENT),Fm(this,gn,e)}attributeChangedCallback(e,t,i){var s;if(e===Ht.NO_HOTKEYS)i!==t&&i===""?(this.hasAttribute(Ht.HOTKEYS)&&console.warn("Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled."),this.disableHotkeys()):i!==t&&i===null&&this.enableHotkeys();else if(e===Ht.HOTKEYS)Ur(this,ur).value=i;else if(e===Ht.DEFAULT_SUBTITLES&&i!==t&&i==="")Yi(this,!0);else if(e===Ht.DEFAULT_STREAM_TYPE)this.propagateMediaState(Dr.MEDIA_STREAM_TYPE);else if(e===Ht.FULLSCREEN_ELEMENT){let n=i?(s=this.getRootNode())==null?void 0:s.getElementById(i):void 0;Fm(this,gn,n)}super.attributeChangedCallback(e,t,i)}mediaSetCallback(e){if(super.mediaSetCallback(e),e.hasAttribute("tabindex")||(e.tabIndex=-1),Object.keys(Gt).forEach(t=>{let{mediaEvents:i,rootEvents:s,textTracksEvents:n,videoRenditionsEvents:a,audioTracksEvents:o}=Gt[t],l=this._mediaStatePropagators[t];i==null||i.forEach(d=>{e.addEventListener(d,l),l()}),s==null||s.forEach(d=>{this.getRootNode().addEventListener(d,l),l()}),n==null||n.forEach(d=>{var c;(c=e.textTracks)==null||c.addEventListener(d,l),l()}),a==null||a.forEach(d=>{var c;(c=e.videoRenditions)==null||c.addEventListener(d,l),l()}),o==null||o.forEach(d=>{var c;(c=e.audioTracks)==null||c.addEventListener(d,l),l()})}),!this.hasAttribute("novolumepref"))try{let t=w.localStorage.getItem("media-chrome-pref-volume");t!==null&&(e.volume=t)}catch(t){console.debug("Error getting volume pref",t)}}mediaUnsetCallback(e){super.mediaUnsetCallback(e),Object.keys(Gt).forEach(t=>{let{mediaEvents:i,rootEvents:s,textTracksEvents:n,videoRenditionsEvents:a,audioTracksEvents:o}=Gt[t],l=this._mediaStatePropagators[t];i==null||i.forEach(d=>{e.removeEventListener(d,l)}),s==null||s.forEach(d=>{this.getRootNode().removeEventListener(d,l)}),n==null||n.forEach(d=>{var c;(c=e.textTracks)==null||c.removeEventListener(d,l)}),a==null||a.forEach(d=>{var c;(c=e.videoRenditions)==null||c.removeEventListener(d,l),l()}),o==null||o.forEach(d=>{var c;(c=e.audioTracks)==null||c.removeEventListener(d,l),l()})}),this.propagateMediaState(Dr.MEDIA_PAUSED,!0)}propagateMediaState(e,t){let i=Vm(this.mediaStateReceivers,e);if(Hm(this.mediaStateReceivers,e,t),i===Vm(this.mediaStateReceivers,e))return;let s=e.toLowerCase(),n=new w.CustomEvent(cm[s],{composed:!0,bubbles:!0,detail:t});this.dispatchEvent(n)}associateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;if(t.has(e))return;let i=this.registerMediaStateReceiver.bind(this),s=this.unregisterMediaStateReceiver.bind(this),n=ay(e,i,s);Object.keys(re).forEach(a=>{e.addEventListener(re[a],this[`_handle${Ia(a,!0)}`])}),t.set(e,n)}unassociateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;if(!t.has(e))return;t.get(e)(),t.delete(e),Object.keys(re).forEach(s=>{e.removeEventListener(re[s],this[`_handle${Ia(s,!0)}`])})}registerMediaStateReceiver(e){if(!e)return;let t=this.mediaStateReceivers;t.indexOf(e)>-1||(t.push(e),Object.keys(Gt).forEach(s=>{let n=Gt[s];Hm([e],Dr[s],n.get(this))}))}unregisterMediaStateReceiver(e){let t=this.mediaStateReceivers,i=t.indexOf(e);i<0||t.splice(i,1)}enableHotkeys(){this.addEventListener("keydown",As(this,qa,Fd))}disableHotkeys(){this.removeEventListener("keydown",As(this,qa,Fd)),this.removeEventListener("keyup",As(this,Ss,vn))}get hotkeys(){return Ur(this,ur)}keyboardShortcutHandler(e){var t,i,s,n;if(((n=(s=(t=e.target.getAttribute(Ht.KEYS_USED))==null?void 0:t.split(" "))!=null?s:(i=e.target)==null?void 0:i.keysUsed)!=null?n:[]).map(f=>f==="Space"?" ":f).filter(Boolean).includes(e.key))return;let o,l,d,c,u,h=ey;if(!Ur(this,ur).contains(`no${e.key.toLowerCase()}`)&&!(e.key===" "&&Ur(this,ur).contains("nospace")))switch(e.key){case" ":case"k":o=this.getAttribute(S.MEDIA_PAUSED)!=null?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"m":o=this.getAttribute(S.MEDIA_VOLUME_LEVEL)==="off"?re.MEDIA_UNMUTE_REQUEST:re.MEDIA_MUTE_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"f":o=this.getAttribute(S.MEDIA_IS_FULLSCREEN)!=null?re.MEDIA_EXIT_FULLSCREEN_REQUEST:re.MEDIA_ENTER_FULLSCREEN_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"c":Yi(this);break;case"ArrowLeft":l=this.getAttribute(S.MEDIA_CURRENT_TIME),d=l&&!Number.isNaN(+l)?+l:Bm,c=Math.max(d-h,0),u=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:c}),this.dispatchEvent(u);break;case"ArrowRight":l=this.getAttribute(S.MEDIA_CURRENT_TIME),d=l&&!Number.isNaN(+l)?+l:Bm,c=Math.max(d+h,0),u=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:c}),this.dispatchEvent(u);break;default:break}}};ur=new WeakMap;gn=new WeakMap;Ss=new WeakSet;vn=function(r){let{key:e}=r;if(!Km.includes(e)){this.removeEventListener("keyup",As(this,Ss,vn));return}this.keyboardShortcutHandler(r)};qa=new WeakSet;Fd=function(r){let{metaKey:e,altKey:t,key:i}=r;if(e||t||!Km.includes(i)){this.removeEventListener("keyup",As(this,Ss,vn));return}[" ","ArrowLeft","ArrowRight"].includes(i)&&!(Ur(this,ur).contains(`no${i.toLowerCase()}`)||i===" "&&Ur(this,ur).contains("nospace"))&&r.preventDefault(),this.addEventListener("keyup",As(this,Ss,vn),{once:!0})};var ty=Object.values(S),iy=Object.values(Dr),Gd=r=>{var e,t,i,s;let{observedAttributes:n}=r.constructor;!n&&((e=r.nodeName)==null?void 0:e.includes("-"))&&(w.customElements.upgrade(r),{observedAttributes:n}=r.constructor);let a=(s=(i=(t=r==null?void 0:r.getAttribute)==null?void 0:t.call(r,ye.MEDIA_CHROME_ATTRIBUTES))==null?void 0:i.split)==null?void 0:s.call(i,/\s+/);return Array.isArray(n||a)?(n||a).filter(o=>ty.includes(o)):[]},ry=r=>{var e,t;return((e=r.nodeName)==null?void 0:e.includes("-"))&&!!w.customElements.get((t=r.nodeName)==null?void 0:t.toLowerCase())&&!(r instanceof w.customElements.get(r.nodeName.toLowerCase()))&&w.customElements.upgrade(r),iy.some(i=>i in r)},Bd=r=>ry(r)||!!Gd(r).length,$m=r=>{var e;return(e=r==null?void 0:r.join)==null?void 0:e.call(r,":")},Gm={[S.MEDIA_SUBTITLES_LIST]:Pr,[S.MEDIA_SUBTITLES_SHOWING]:Pr,[S.MEDIA_SEEKABLE]:$m,[S.MEDIA_BUFFERED]:r=>r==null?void 0:r.map($m).join(" "),[S.MEDIA_PREVIEW_COORDS]:r=>r==null?void 0:r.join(" "),[S.MEDIA_RENDITION_LIST]:um,[S.MEDIA_AUDIO_TRACK_LIST]:fm},sy=async(r,e,t)=>{var i,s;if(r.isConnected||await ka(0),typeof t=="boolean"||t==null)return Ke(r,e,t);if(typeof t=="number")return ze(r,e,t);if(typeof t=="string")return Be(r,e,t);if(Array.isArray(t)&&!t.length)return r.removeAttribute(e);let n=(s=(i=Gm[e])==null?void 0:i.call(Gm,t))!=null?s:t;return r.setAttribute(e,n)},ny=r=>{var e;return!!((e=r.closest)!=null&&e.call(r,'*[slot="media"]'))},Nr=(r,e)=>{if(ny(r))return;let t=(s,n)=>{var a,o;Bd(s)&&n(s);let{children:l=[]}=s!=null?s:{},d=(o=(a=s==null?void 0:s.shadowRoot)==null?void 0:a.children)!=null?o:[];[...l,...d].forEach(u=>Nr(u,n))},i=r==null?void 0:r.nodeName.toLowerCase();if(i.includes("-")&&!Bd(r)){w.customElements.whenDefined(i).then(()=>{t(r,e)});return}t(r,e)},Hm=(r,e,t)=>{r.forEach(i=>{if(e in i){i[e]=t;return}let s=Gd(i),n=e.toLowerCase();!s.includes(n)||sy(i,n,t)})},Vm=(r,e)=>{for(let t of r){if(e in t)return t[e];let i=Gd(t),s=e.toLowerCase();if(!!i.includes(s))return t.getAttribute(s)}},ay=(r,e,t)=>{Nr(r,e);let i=c=>{var u;let h=(u=c==null?void 0:c.composedPath()[0])!=null?u:c.target;e(h)},s=c=>{var u;let h=(u=c==null?void 0:c.composedPath()[0])!=null?u:c.target;t(h)};r.addEventListener(re.REGISTER_MEDIA_STATE_RECEIVER,i),r.addEventListener(re.UNREGISTER_MEDIA_STATE_RECEIVER,s);let n=c=>{c.forEach(u=>{let{addedNodes:h=[],removedNodes:f=[],type:g,target:E,attributeName:T}=u;g==="childList"?(Array.prototype.forEach.call(h,A=>Nr(A,e)),Array.prototype.forEach.call(f,A=>Nr(A,t))):g==="attributes"&&T===ye.MEDIA_CHROME_ATTRIBUTES&&(Bd(E)?e(E):t(E))})},a=[],o=c=>{let u=c.target;u.name!=="media"&&(a.forEach(h=>Nr(h,t)),a=[...u.assignedElements({flatten:!0})],a.forEach(h=>Nr(h,e)))};r.addEventListener("slotchange",o);let l=new MutationObserver(n);return l.observe(r,{childList:!0,attributes:!0,subtree:!0}),()=>{Nr(r,t),r.removeEventListener("slotchange",o),l.disconnect(),r.removeEventListener(re.REGISTER_MEDIA_STATE_RECEIVER,i),r.removeEventListener(re.UNREGISTER_MEDIA_STATE_RECEIVER,s)}};w.customElements.get("media-controller")||w.customElements.define("media-controller",Ya);var Hd=Ya;var oy=Object.defineProperty,ly=(r,e,t)=>e in r?oy(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,dy=(r,e,t)=>(ly(r,typeof e!="symbol"?e+"":e,t),t),qm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},hr=(r,e,t)=>(qm(r,e,"read from private field"),t?t.call(r):e.get(r)),Vd=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ja=(r,e,t,i)=>(qm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Ii,za,Xa,Ym=Y.createElement("template"),Wm=`
|
|
220
|
+
`;var Gb=Object.values(S),Vb="sm:384 md:576 lg:768 xl:960";function Kb(r){for(let e of r)Wb(e.target,e.contentRect.width)}function Wb(r,e){var t;if(!r.isConnected)return;let i=(t=r.getAttribute(He.BREAKPOINTS))!=null?t:Vb,s=qb(i),n=Yb(s,e),a=!1;if(Object.keys(s).forEach(o=>{if(n.includes(o)){r.hasAttribute(`breakpoint${o}`)||(r.setAttribute(`breakpoint${o}`,""),a=!0);return}r.hasAttribute(`breakpoint${o}`)&&(r.removeAttribute(`breakpoint${o}`),a=!0)}),a){let o=new CustomEvent(Wi.BREAKPOINTS_CHANGE,{detail:n});r.dispatchEvent(o)}}function qb(r){let e=r.split(/\s+/);return Object.fromEntries(e.map(t=>t.split(":")))}function Yb(r,e){return Object.keys(r).filter(t=>e>=r[t])}var Ua=class extends w.HTMLElement{constructor(){super(),Hb(this,"breakpointsComputed",!1),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(km.content.cloneNode(!0)));let e=l=>{let d=this.media;for(let c of l)c.type==="childList"&&(c.removedNodes.forEach(u=>{if(u.slot=="media"&&c.target==this){let h=c.previousSibling&&c.previousSibling.previousElementSibling;if(!h||!d)this.mediaUnsetCallback(u);else{let f=h.slot!=="media";for(;(h=h.previousSibling)!==null;)h.slot=="media"&&(f=!1);f&&this.mediaUnsetCallback(u)}}}),d&&c.addedNodes.forEach(u=>{u==d&&this.handleMediaUpdated(d).then(h=>this.mediaSetCallback(h))}))};new MutationObserver(e).observe(this,{childList:!0,subtree:!0});let i=!1,s=l=>{i||(setTimeout(()=>{Kb(l),i=!1,this.breakpointsComputed||(this.breakpointsComputed=!0,this.dispatchEvent(new CustomEvent(Wi.BREAKPOINTS_COMPUTED,{bubbles:!0,composed:!0})))},0),i=!0)},n=new ResizeObserver(s);this.resizeObserver=n,n.observe(this);let a=this.media,o=this.querySelector(":scope > slot[slot=media]");o&&o.addEventListener("slotchange",()=>{if(!o.assignedElements({flatten:!0}).length){this.mediaUnsetCallback(a);return}this.media&&(a=this.media,this.handleMediaUpdated(this.media).then(d=>this.mediaSetCallback(d)))})}static get observedAttributes(){return[He.AUTOHIDE,He.GESTURES_DISABLED].concat(Gb).filter(e=>![S.MEDIA_RENDITION_LIST,S.MEDIA_AUDIO_TRACK_LIST].includes(e))}attributeChangedCallback(e,t,i){e.toLowerCase()==He.AUTOHIDE&&(this.autohide=i)}get media(){let e=this.querySelector(":scope > [slot=media]");return(e==null?void 0:e.nodeName)=="SLOT"&&(e=e.assignedElements({flatten:!0})[0]),e}mediaSetCallback(e){this._mediaClickPlayToggle=()=>{let t=e.paused?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new w.CustomEvent(t,{composed:!0,bubbles:!0}))}}handleMediaUpdated(e){let t=n=>Promise.resolve(n),i=n=>(console.error('<media-chrome>: Media element set with slot="media" does not appear to be compatible.',n),Promise.reject(n));if(!e)return i(e);let s=e.nodeName.toLowerCase();return s.includes("-")?w.customElements.whenDefined(s).then(()=>t(e)):t(e)}mediaUnsetCallback(e){}connectedCallback(){var e;let i=this.getAttribute(He.AUDIO)!=null?Rt.AUDIO_PLAYER():Rt.VIDEO_PLAYER();this.setAttribute("role","region"),this.setAttribute("aria-label",i),this.media&&this.handleMediaUpdated(this.media).then(o=>this.mediaSetCallback(o)),this.setAttribute(He.USER_INACTIVE,"");let s=()=>{if(this.autohide<0||this.hasAttribute(He.USER_INACTIVE))return;this.setAttribute(He.USER_INACTIVE,"");let o=new w.CustomEvent(Wi.USER_INACTIVE,{composed:!0,bubbles:!0,detail:!0});this.dispatchEvent(o)},n=()=>{if(!this.hasAttribute(He.USER_INACTIVE))return;this.removeAttribute(He.USER_INACTIVE);let o=new w.CustomEvent(Wi.USER_INACTIVE,{composed:!0,bubbles:!0,detail:!1});this.dispatchEvent(o)},a=()=>{n(),clearTimeout(this._inactiveTimeout),!(this.autohide<0)&&(this._inactiveTimeout=setTimeout(()=>{s()},this.autohide*1e3))};this.addEventListener("keyup",()=>{a()}),this.addEventListener("pointerup",o=>{o.pointerType==="touch"?[this,this.media].includes(o.target)&&!this.hasAttribute(He.USER_INACTIVE)?s():a():o.composedPath().some(l=>{var d;return["media-play-button","media-fullscreen-button"].includes((d=l==null?void 0:l.nodeName)==null?void 0:d.toLowerCase())})&&a()}),this.addEventListener("pointermove",o=>{o.pointerType==="mouse"&&(n(),clearTimeout(this._inactiveTimeout),[this,this.media].includes(o.target)&&a())}),this.addEventListener("mouseleave",()=>{s()}),this.addEventListener("keyup",()=>{this.setAttribute(He.KEYBOARD_CONTROL,"")}),(e=w.window)==null||e.addEventListener("mouseup",()=>{this.removeAttribute(He.KEYBOARD_CONTROL)})}set autohide(e){e=Number(e),this._autohide=isNaN(e)?0:e}get autohide(){return this._autohide===void 0?2:this._autohide}};var Rm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},yt=(r,e,t)=>(Rm(r,e,"read from private field"),t?t.call(r):e.get(r)),mn=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Fa=(r,e,t,i)=>(Rm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Ts,_s,Ba,Or,qi,dr,cr=class{constructor(e,t,{defaultValue:i}={defaultValue:void 0}){mn(this,qi),mn(this,Ts,void 0),mn(this,_s,void 0),mn(this,Ba,void 0),mn(this,Or,new Set),Fa(this,Ts,e),Fa(this,_s,t),Fa(this,Ba,new Set(i))}[Symbol.iterator](){return yt(this,qi,dr).values()}get length(){return yt(this,qi,dr).size}get value(){var e;return(e=[...yt(this,qi,dr)].join(" "))!=null?e:""}set value(e){var t;e!==this.value&&(Fa(this,Or,new Set),this.add(...(t=e==null?void 0:e.split(" "))!=null?t:[]))}toString(){return this.value}item(e){return[...yt(this,qi,dr)][e]}values(){return yt(this,qi,dr).values()}forEach(e){yt(this,qi,dr).forEach(e)}add(...e){var t,i;e.forEach(s=>yt(this,Or).add(s)),!(this.value===""&&!((t=yt(this,Ts))!=null&&t.hasAttribute(`${yt(this,_s)}`)))&&((i=yt(this,Ts))==null||i.setAttribute(`${yt(this,_s)}`,`${this.value}`))}remove(...e){var t;e.forEach(i=>yt(this,Or).delete(i)),(t=yt(this,Ts))==null||t.setAttribute(`${yt(this,_s)}`,`${this.value}`)}contains(e){return yt(this,qi,dr).has(e)}toggle(e,t){return typeof t!="undefined"?t?(this.add(e),!0):(this.remove(e),!1):this.contains(e)?(this.remove(e),!1):(this.add(e),!0)}replace(e,t){return this.remove(e),this.add(t),e===t}};Ts=new WeakMap;_s=new WeakMap;Ba=new WeakMap;Or=new WeakMap;qi=new WeakSet;dr=function(){return yt(this,Or).size?yt(this,Or):yt(this,Ba)};var wm=(r="")=>r.split(/\s+/),Dm=(r="")=>{let[e,t,i]=r.split(":"),s=i?decodeURIComponent(i):void 0;return e=e==="cc"?"captions":"subtitles",{kind:e,language:t,label:s}},pn=(r="",e={})=>wm(r).map(t=>{let i=Dm(t);return{...e,...i}}),jb=r=>Array.isArray(r)?r.map(e=>typeof e=="string"?Dm(e):e):typeof r=="string"?pn(r):[r],$a=({kind:r,label:e,language:t}={kind:"subtitles"})=>e?`${r==="captions"?"cc":"sb"}:${t}:${encodeURIComponent(e)}`:t,Pr=(r=[])=>Array.prototype.map.call(r,$a).join(" "),zb=(r,e)=>t=>t[r]===e,Cm=r=>{let e=Object.entries(r).map(([t,i])=>zb(t,i));return t=>e.every(i=>i(t))},Md=(r,e=[],t=[])=>{let i=jb(t).map(Cm),s=n=>i.some(a=>a(n));Array.from(e).filter(s).forEach(n=>{n.mode=r})},Ha=(r,e=()=>!0)=>{if(!(r!=null&&r.textTracks))return[];let t=typeof e=="function"?e:Cm(e);return Array.from(r.textTracks).filter(t)},Od=r=>!!r.getAttribute(S.MEDIA_SUBTITLES_SHOWING),Yi=(r,e)=>{var t,i;let s=Od(r);if(s||e===!1){let n=r.getAttribute(S.MEDIA_SUBTITLES_SHOWING);if(n){let a=new w.CustomEvent(re.MEDIA_DISABLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:n});r.dispatchEvent(a)}}else if(!s||e===!0){let[n]=(i=wm((t=r.getAttribute(S.MEDIA_SUBTITLES_LIST))!=null?t:""))!=null?i:[];if(n){let a=new w.CustomEvent(re.MEDIA_SHOW_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:n});r.dispatchEvent(a)}}else console.error("Attempting to enable captions or subtitles but none are available! Please verify your media content if this is unexpected.")};var at={enter:"requestFullscreen",exit:"exitFullscreen",rootEvents:["fullscreenchange"],mediaEvents:[],element:"fullscreenElement",error:"fullscreenerror",enabled:"fullscreenEnabled"};Y.fullscreenElement===void 0&&(at.enter="webkitRequestFullScreen",at.exit=Y.webkitExitFullscreen!=null?"webkitExitFullscreen":"webkitCancelFullScreen",at.rootEvents=["webkitfullscreenchange"],at.mediaEvents=["webkitbeginfullscreen","webkitendfullscreen"],at.element="webkitFullscreenElement",at.error="webkitfullscreenerror",at.enabled="webkitFullscreenEnabled");var Ga,Pd=()=>{var r,e;return Ga||(Ga=(e=(r=Y)==null?void 0:r.createElement)==null?void 0:e.call(r,"video"),Ga)},Mm=async(r=Pd())=>{if(!r)return!1;let e=r.volume;return r.volume=e/2+.1,await ka(0),r.volume!==e},Xb=(r=Pd())=>typeof(r==null?void 0:r.requestPictureInPicture)=="function",Qb=(r=Pd())=>{let e=Y[at.enabled];return!e&&r&&(e="webkitSupportsFullscreen"in r),e},Nd=Qb(),Om=Xb(),Pm=!!w.WebKitPlaybackTargetAvailabilityEvent,Nm=!!w.chrome;var Va,Um=Mm().then(r=>(Va=r,Va)),Zb=Object.values(ui),Ud=r=>Ha(r.media,e=>[bs.SUBTITLES,bs.CAPTIONS].includes(e.kind)).sort((e,t)=>e.kind>=t.kind?1:-1),Jb=r=>Ha(r.media,e=>e.mode===xa.SHOWING&&[bs.SUBTITLES,bs.CAPTIONS].includes(e.kind)),Ht={MEDIA_PAUSED:{get:function(r){let{media:e}=r;return e?e.paused:!0},mediaEvents:["play","playing","pause","emptied"]},MEDIA_HAS_PLAYED:{get:function(r){let{media:e}=r;return e?!e.paused:!1},mediaEvents:["playing","emptied"]},MEDIA_ENDED:{get:function(r){let{media:e}=r;return e?e.ended:!1},mediaEvents:["seeked","ended","emptied"]},MEDIA_PLAYBACK_RATE:{get:function(r){let{media:e}=r;return!e||typeof e.playbackRate=="undefined"?1:e.playbackRate},mediaEvents:["ratechange","loadstart"]},MEDIA_MUTED:{get:function(r){let{media:e}=r;return!e||typeof e.muted=="undefined"?!1:e.muted},mediaEvents:["volumechange"]},MEDIA_VOLUME:{get:function(r){let{media:e}=r;return!e||typeof e.volume=="undefined"?1:Number(e.volume)},mediaEvents:["volumechange"]},MEDIA_VOLUME_LEVEL:{get:function(r){let{media:e}=r,t="high";if(!e||typeof e.volume=="undefined")return t;let{muted:i,volume:s}=e;return s===0||i?t="off":s<.5?t="low":s<.75&&(t="medium"),t},mediaEvents:["volumechange"]},MEDIA_CURRENT_TIME:{get:function(r){let{media:e}=r;return!e||typeof e.currentTime=="undefined"?0:e.currentTime},mediaEvents:["timeupdate","loadedmetadata"]},MEDIA_DURATION:{get:function(r){let{media:e}=r;return!e||!Number.isFinite(e.duration)?NaN:e.duration},mediaEvents:["durationchange","loadedmetadata","emptied"]},MEDIA_SEEKABLE:{get:function(r){var e;let{media:t}=r;if(!((e=t==null?void 0:t.seekable)!=null&&e.length))return;let i=t.seekable.start(0),s=t.seekable.end(t.seekable.length-1);if(!(!i&&!s))return[Number(i.toFixed(3)),Number(s.toFixed(3))]},mediaEvents:["loadedmetadata","emptied","progress"]},MEDIA_LOADING:{get:function(r){var e;return((e=r.media)==null?void 0:e.readyState)<3},mediaEvents:["waiting","playing","emptied"]},MEDIA_BUFFERED:{get:function(r){var e,t,i;let s=(e=r.media)==null?void 0:e.buffered;return Array.from((i=(t=r.media)==null?void 0:t.buffered)!=null?i:[]).map((n,a)=>[Number(s.start(a)).toFixed(3),Number(s.end(a)).toFixed(3)])},mediaEvents:["progress","emptied"]},MEDIA_STREAM_TYPE:{get:function(r){let{media:e}=r;if(!e)return;let{streamType:t}=e;if(Zb.includes(t)){if(t===ui.UNKNOWN){let s=r.getAttribute("defaultstreamtype");return[ui.LIVE,ui.ON_DEMAND].includes(s)?s:void 0}return t}let i=e.duration;if(i===1/0)return ui.LIVE;if(Number.isFinite(i))return ui.ON_DEMAND;{let s=r.getAttribute("defaultstreamtype");if([ui.LIVE,ui.ON_DEMAND].includes(s))return s}},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange"]},MEDIA_TARGET_LIVE_WINDOW:{get:function(r){let{media:e}=r;if(!e)return Number.NaN;let{targetLiveWindow:t}=e,i=Ht.MEDIA_STREAM_TYPE.get(r);return(t==null||Number.isNaN(t))&&i===ui.LIVE?0:t},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange","targetlivewindowchange"]},MEDIA_TIME_IS_LIVE:{get:function(r){let{media:e}=r;if(!e)return!1;if(typeof e.liveEdgeStart=="number")return Number.isNaN(e.liveEdgeStart)?!1:e.currentTime>=e.liveEdgeStart;if(!(Ht.MEDIA_STREAM_TYPE.get(r)==="live"))return!1;let i=e.seekable;if(!i)return!0;if(!i.length)return!1;let s=r.hasAttribute("liveedgeoffset")?Number(r.getAttribute("liveedgeoffset")):10,n=i.end(i.length-1)-s;return e.currentTime>=n},mediaEvents:["playing","timeupdate","progress","waiting","emptied"]},MEDIA_IS_FULLSCREEN:{get:function(r,e){var t;let i=r.media;if(i&&Y[at.element]===void 0&&"webkitDisplayingFullscreen"in i)return i.webkitDisplayingFullscreen&&i.webkitPresentationMode==="fullscreen";let s;return e?s=Y[at.element]?e.target:null:s=(t=r.getRootNode().fullscreenElement)!=null?t:Y[at.element],Mr(r.fullscreenElement,s)},rootEvents:at.rootEvents,mediaEvents:at.mediaEvents},MEDIA_IS_PIP:{get:function(r,e){var t;let i=r.media;if(!i)return!1;if(e)return e.type=="enterpictureinpicture";{let s=(t=r.getRootNode().pictureInPictureElement)!=null?t:Y.pictureInPictureElement;return Mr(i,s)}},mediaEvents:["enterpictureinpicture","leavepictureinpicture"]},MEDIA_IS_CASTING:{get:function(r,e){var t;let{media:i}=r;if(!i)return!1;let s=(t=w.CastableVideoElement)==null?void 0:t.castElement,n=Mr(i,s);return(e==null?void 0:e.type)==="castchange"&&(e==null?void 0:e.detail)==="CONNECTING"&&(n="connecting"),n},mediaEvents:["entercast","leavecast","castchange"]},MEDIA_AIRPLAY_UNAVAILABLE:{get:function(r,e){if(!Pm)return Qt.UNSUPPORTED;if(!!e&&e.availability!=="available"&&e.availability==="not-available")return Qt.UNAVAILABLE},mediaEvents:["webkitplaybacktargetavailabilitychanged"]},MEDIA_CAST_UNAVAILABLE:{get:function(){var r;let e=(r=w.CastableVideoElement)==null?void 0:r.castState;if(!Nm||!e)return Qt.UNSUPPORTED;if(!e.includes("CONNECT"))return Qt.UNAVAILABLE},mediaEvents:["castchange"]},MEDIA_FULLSCREEN_UNAVAILABLE:{get:function(){return Nd?void 0:Qt.UNAVAILABLE}},MEDIA_PIP_UNAVAILABLE:{get:function(){return Om?void 0:Qt.UNSUPPORTED}},MEDIA_RENDITION_UNAVAILABLE:{get:function(r){var e;let{media:t}=r;if(!(t!=null&&t.videoRenditions))return Qt.UNSUPPORTED;if(!((e=t.videoRenditions)!=null&&e.length))return Qt.UNAVAILABLE},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},MEDIA_AUDIO_TRACK_UNAVAILABLE:{get:function(r){var e,t;let{media:i}=r;if(!(i!=null&&i.audioTracks))return Qt.UNSUPPORTED;if(((t=(e=i.audioTracks)==null?void 0:e.length)!=null?t:0)<=1)return Qt.UNAVAILABLE},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},MEDIA_VOLUME_UNAVAILABLE:{get:function(r){if(Va!==void 0&&!Va)return Qt.UNSUPPORTED;let{media:e}=r;if(e&&typeof e.volume=="undefined")return Qt.UNAVAILABLE},mediaEvents:["loadstart"]},MEDIA_SUBTITLES_LIST:{get:function(r){return Ud(r).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack"]},MEDIA_SUBTITLES_SHOWING:{get:function(r){return r.hasAttribute("defaultsubtitles")&&!r.hasAttribute(S.MEDIA_HAS_PLAYED)&&!r.hasAttribute(S.MEDIA_SUBTITLES_SHOWING)&&Yi(r,!0),Jb(r).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack","change"]},MEDIA_RENDITION_LIST:{get:function(r){var e;let{media:t}=r;return[...(e=t==null?void 0:t.videoRenditions)!=null?e:[]]},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},MEDIA_RENDITION_SELECTED:{get:function(r){var e,t,i;let{media:s}=r;return(i=(t=s==null?void 0:s.videoRenditions)==null?void 0:t[(e=s.videoRenditions)==null?void 0:e.selectedIndex])==null?void 0:i.id},mediaEvents:["emptied"],videoRenditionsEvents:["addrendition","removerendition","change"]},MEDIA_AUDIO_TRACK_LIST:{get:function(r){var e;let{media:t}=r;return[...(e=t==null?void 0:t.audioTracks)!=null?e:[]]},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},MEDIA_AUDIO_TRACK_ENABLED:{get:function(r){var e,t;let{media:i}=r;return(t=[...(e=i==null?void 0:i.audioTracks)!=null?e:[]].find(s=>s.enabled))==null?void 0:t.id},mediaEvents:["emptied"],audioTracksEvents:["addtrack","removetrack","change"]}},Ka={MEDIA_PLAY_REQUEST:(r,e,t)=>{var i;let s=Ht.MEDIA_STREAM_TYPE.get(t),n=t.getAttribute("noautoseektolive")===null;s==ui.LIVE&&n&&Ka.MEDIA_SEEK_TO_LIVE_REQUEST(r),(i=r.play())==null||i.catch(()=>{})},MEDIA_PAUSE_REQUEST:r=>r.pause(),MEDIA_MUTE_REQUEST:r=>r.muted=!0,MEDIA_UNMUTE_REQUEST:r=>{r.muted=!1,r.volume===0&&(r.volume=.25)},MEDIA_VOLUME_REQUEST:(r,e,t)=>{let i=e.detail;if(r.volume=i,i>0&&r.muted&&(r.muted=!1),!t.hasAttribute("novolumepref"))try{w.localStorage.setItem("media-chrome-pref-volume",i.toString())}catch{}},MEDIA_ENTER_FULLSCREEN_REQUEST:(r,e,t)=>{if(!Nd){console.warn("Fullscreen support is unavailable; not entering fullscreen");return}Y.pictureInPictureElement&&Y.exitPictureInPicture(),t[at.enter]?t.fullscreenElement[at.enter]():r.webkitEnterFullscreen?r.webkitEnterFullscreen():r.requestFullscreen?r.requestFullscreen():console.warn("MediaChrome: Fullscreen not supported")},MEDIA_EXIT_FULLSCREEN_REQUEST:()=>{Y[at.exit]()},MEDIA_ENTER_PIP_REQUEST:r=>{if(!Y.pictureInPictureEnabled){console.warn("MediaChrome: Picture-in-picture is not enabled");return}if(!r.requestPictureInPicture){console.warn("MediaChrome: The current media does not support picture-in-picture");return}Y[at.element]&&Y[at.exit]();let e=()=>{console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.")};r.requestPictureInPicture().catch(t=>{if(t.code===11)if(r.readyState===0&&r.preload==="none"){let i=()=>{r.removeEventListener("loadedmetadata",s),r.preload="none"},s=()=>{r.requestPictureInPicture().catch(e),i()};r.addEventListener("loadedmetadata",s),r.preload="metadata",setTimeout(()=>{r.readyState===0&&e(),i()},1e3)}else throw t;else throw t})},MEDIA_EXIT_PIP_REQUEST:()=>{Y.pictureInPictureElement&&Y.exitPictureInPicture()},MEDIA_ENTER_CAST_REQUEST:r=>{var e;!((e=w.CastableVideoElement)!=null&&e.castEnabled)||(Y[at.element]&&Y[at.exit](),r.requestCast())},MEDIA_EXIT_CAST_REQUEST:async()=>{var r;(r=w.CastableVideoElement)!=null&&r.castElement&&w.CastableVideoElement.exitCast()},MEDIA_SEEK_REQUEST:(r,e)=>{let t=e.detail;(r.readyState>0||r.readyState===void 0)&&(r.currentTime=t)},MEDIA_PLAYBACK_RATE_REQUEST:(r,e)=>{r.playbackRate=e.detail},MEDIA_PREVIEW_REQUEST:(r,e,t)=>{var i;if(!r)return;let s=e.detail;s===null&&t.propagateMediaState(S.MEDIA_PREVIEW_TIME,void 0),t.propagateMediaState(S.MEDIA_PREVIEW_TIME,s);let[n]=Ha(r,{kind:bs.METADATA,label:"thumbnails"});if(!(n&&n.cues))return;if(s===null){t.propagateMediaState(S.MEDIA_PREVIEW_IMAGE,void 0),t.propagateMediaState(S.MEDIA_PREVIEW_COORDS,void 0);return}let a=Array.prototype.find.call(n.cues,c=>c.startTime>=s);if(!a)return;let o=/'^(?:[a-z]+:)?\/\//i.test(a.text)||(i=r.querySelector('track[label="thumbnails"]'))==null?void 0:i.src,l=new URL(a.text,o),d=new URLSearchParams(l.hash).get("#xywh");t.propagateMediaState(S.MEDIA_PREVIEW_IMAGE,l.href),t.propagateMediaState(S.MEDIA_PREVIEW_COORDS,d.split(","))},MEDIA_SHOW_SUBTITLES_REQUEST:(r,e,t)=>{let i=Ud(t),{detail:s=[]}=e;Md(xa.SHOWING,i,s)},MEDIA_DISABLE_SUBTITLES_REQUEST:(r,e,t)=>{let i=Ud(t),{detail:s=[]}=e;Md(xa.DISABLED,i,s)},MEDIA_AIRPLAY_REQUEST:r=>{if(!!r){if(!(r.webkitShowPlaybackTargetPicker&&w.WebKitPlaybackTargetAvailabilityEvent)){console.warn("received a request to select AirPlay but AirPlay is not supported in this environment");return}r.webkitShowPlaybackTargetPicker()}},MEDIA_SEEK_TO_LIVE_REQUEST:r=>{let e=r.seekable;if(!e){console.warn("MediaController: Media element does not support seeking to live.");return}if(!e.length){console.warn("MediaController: Media is unable to seek to live.");return}r.currentTime=e.end(e.length-1)},MEDIA_RENDITION_REQUEST:(r,e)=>{if(!(r!=null&&r.videoRenditions)){console.warn("MediaController: Rendition selection not supported by this media.");return}let t=e.detail,i=[...r.videoRenditions].findIndex(s=>s.id==t);r.videoRenditions.selectedIndex!=i&&(r.videoRenditions.selectedIndex=i)},MEDIA_AUDIO_TRACK_REQUEST:(r,e)=>{if(!(r!=null&&r.audioTracks)){console.warn("MediaController: Audio track selection not supported by this media.");return}let t=e.detail;for(let i of r.audioTracks)i.enabled=t==i.id}};var $d=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Ur=(r,e,t)=>($d(r,e,"read from private field"),t?t.call(r):e.get(r)),Wa=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Fm=(r,e,t,i)=>($d(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),As=(r,e,t)=>($d(r,e,"access private method"),t),ur,gn,Ss,vn,qa,Fd,Km=["ArrowLeft","ArrowRight","Enter"," ","f","m","k","c"],ey=10,Bm=0,Gt={DEFAULT_SUBTITLES:"defaultsubtitles",DEFAULT_STREAM_TYPE:"defaultstreamtype",FULLSCREEN_ELEMENT:"fullscreenelement",HOTKEYS:"hotkeys",KEYS_USED:"keysused",LIVE_EDGE_OFFSET:"liveedgeoffset",NO_AUTO_SEEK_TO_LIVE:"noautoseektolive",NO_HOTKEYS:"nohotkeys"},Ya=class extends Ua{constructor(){super(),Wa(this,Ss),Wa(this,qa),Wa(this,ur,new cr(this,Gt.HOTKEYS)),Wa(this,gn,void 0),Ht.MEDIA_VOLUME_UNAVAILABLE.get(this)===void 0&&Um.then(()=>{this.propagateMediaState(S.MEDIA_VOLUME_UNAVAILABLE,Ht.MEDIA_VOLUME_UNAVAILABLE.get(this))}),this.mediaStateReceivers=[],this.associatedElementSubscriptions=new Map,this.associateElement(this),Object.keys(Ka).forEach(e=>{let t=`_handle${Ia(e,!0)}`;this[t]=i=>{if(i.stopPropagation(),!this.media){console.warn("MediaController: No media available.");return}Ka[e](this.media,i,this)},this.addEventListener(re[e],this[t])}),this._mediaStatePropagators={},Object.keys(Ht).forEach(e=>{this._mediaStatePropagators[e]=t=>{this.propagateMediaState(Dr[e],Ht[e].get(this,t))}}),this.enableHotkeys()}static get observedAttributes(){return super.observedAttributes.concat(Gt.NO_HOTKEYS,Gt.HOTKEYS,Gt.DEFAULT_STREAM_TYPE,Gt.DEFAULT_SUBTITLES)}get fullscreenElement(){var e;return(e=Ur(this,gn))!=null?e:this}set fullscreenElement(e){this.hasAttribute(Gt.FULLSCREEN_ELEMENT)&&this.removeAttribute(Gt.FULLSCREEN_ELEMENT),Fm(this,gn,e)}attributeChangedCallback(e,t,i){var s;if(e===Gt.NO_HOTKEYS)i!==t&&i===""?(this.hasAttribute(Gt.HOTKEYS)&&console.warn("Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled."),this.disableHotkeys()):i!==t&&i===null&&this.enableHotkeys();else if(e===Gt.HOTKEYS)Ur(this,ur).value=i;else if(e===Gt.DEFAULT_SUBTITLES&&i!==t&&i==="")Yi(this,!0);else if(e===Gt.DEFAULT_STREAM_TYPE)this.propagateMediaState(Dr.MEDIA_STREAM_TYPE);else if(e===Gt.FULLSCREEN_ELEMENT){let n=i?(s=this.getRootNode())==null?void 0:s.getElementById(i):void 0;Fm(this,gn,n)}super.attributeChangedCallback(e,t,i)}mediaSetCallback(e){if(super.mediaSetCallback(e),e.hasAttribute("tabindex")||(e.tabIndex=-1),Object.keys(Ht).forEach(t=>{let{mediaEvents:i,rootEvents:s,textTracksEvents:n,videoRenditionsEvents:a,audioTracksEvents:o}=Ht[t],l=this._mediaStatePropagators[t];i==null||i.forEach(d=>{e.addEventListener(d,l),l()}),s==null||s.forEach(d=>{this.getRootNode().addEventListener(d,l),l()}),n==null||n.forEach(d=>{var c;(c=e.textTracks)==null||c.addEventListener(d,l),l()}),a==null||a.forEach(d=>{var c;(c=e.videoRenditions)==null||c.addEventListener(d,l),l()}),o==null||o.forEach(d=>{var c;(c=e.audioTracks)==null||c.addEventListener(d,l),l()})}),!this.hasAttribute("novolumepref"))try{let t=w.localStorage.getItem("media-chrome-pref-volume");t!==null&&(e.volume=t)}catch(t){console.debug("Error getting volume pref",t)}}mediaUnsetCallback(e){super.mediaUnsetCallback(e),Object.keys(Ht).forEach(t=>{let{mediaEvents:i,rootEvents:s,textTracksEvents:n,videoRenditionsEvents:a,audioTracksEvents:o}=Ht[t],l=this._mediaStatePropagators[t];i==null||i.forEach(d=>{e.removeEventListener(d,l)}),s==null||s.forEach(d=>{this.getRootNode().removeEventListener(d,l)}),n==null||n.forEach(d=>{var c;(c=e.textTracks)==null||c.removeEventListener(d,l)}),a==null||a.forEach(d=>{var c;(c=e.videoRenditions)==null||c.removeEventListener(d,l),l()}),o==null||o.forEach(d=>{var c;(c=e.audioTracks)==null||c.removeEventListener(d,l),l()})}),this.propagateMediaState(Dr.MEDIA_PAUSED,!0)}propagateMediaState(e,t){let i=Vm(this.mediaStateReceivers,e);if(Gm(this.mediaStateReceivers,e,t),i===Vm(this.mediaStateReceivers,e))return;let s=e.toLowerCase(),n=new w.CustomEvent(cm[s],{composed:!0,bubbles:!0,detail:t});this.dispatchEvent(n)}associateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;if(t.has(e))return;let i=this.registerMediaStateReceiver.bind(this),s=this.unregisterMediaStateReceiver.bind(this),n=ay(e,i,s);Object.keys(re).forEach(a=>{e.addEventListener(re[a],this[`_handle${Ia(a,!0)}`])}),t.set(e,n)}unassociateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;if(!t.has(e))return;t.get(e)(),t.delete(e),Object.keys(re).forEach(s=>{e.removeEventListener(re[s],this[`_handle${Ia(s,!0)}`])})}registerMediaStateReceiver(e){if(!e)return;let t=this.mediaStateReceivers;t.indexOf(e)>-1||(t.push(e),Object.keys(Ht).forEach(s=>{let n=Ht[s];Gm([e],Dr[s],n.get(this))}))}unregisterMediaStateReceiver(e){let t=this.mediaStateReceivers,i=t.indexOf(e);i<0||t.splice(i,1)}enableHotkeys(){this.addEventListener("keydown",As(this,qa,Fd))}disableHotkeys(){this.removeEventListener("keydown",As(this,qa,Fd)),this.removeEventListener("keyup",As(this,Ss,vn))}get hotkeys(){return Ur(this,ur)}keyboardShortcutHandler(e){var t,i,s,n;if(((n=(s=(t=e.target.getAttribute(Gt.KEYS_USED))==null?void 0:t.split(" "))!=null?s:(i=e.target)==null?void 0:i.keysUsed)!=null?n:[]).map(f=>f==="Space"?" ":f).filter(Boolean).includes(e.key))return;let o,l,d,c,u,h=ey;if(!Ur(this,ur).contains(`no${e.key.toLowerCase()}`)&&!(e.key===" "&&Ur(this,ur).contains("nospace")))switch(e.key){case" ":case"k":o=this.getAttribute(S.MEDIA_PAUSED)!=null?re.MEDIA_PLAY_REQUEST:re.MEDIA_PAUSE_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"m":o=this.getAttribute(S.MEDIA_VOLUME_LEVEL)==="off"?re.MEDIA_UNMUTE_REQUEST:re.MEDIA_MUTE_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"f":o=this.getAttribute(S.MEDIA_IS_FULLSCREEN)!=null?re.MEDIA_EXIT_FULLSCREEN_REQUEST:re.MEDIA_ENTER_FULLSCREEN_REQUEST,this.dispatchEvent(new w.CustomEvent(o,{composed:!0,bubbles:!0}));break;case"c":Yi(this);break;case"ArrowLeft":l=this.getAttribute(S.MEDIA_CURRENT_TIME),d=l&&!Number.isNaN(+l)?+l:Bm,c=Math.max(d-h,0),u=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:c}),this.dispatchEvent(u);break;case"ArrowRight":l=this.getAttribute(S.MEDIA_CURRENT_TIME),d=l&&!Number.isNaN(+l)?+l:Bm,c=Math.max(d+h,0),u=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:c}),this.dispatchEvent(u);break;default:break}}};ur=new WeakMap;gn=new WeakMap;Ss=new WeakSet;vn=function(r){let{key:e}=r;if(!Km.includes(e)){this.removeEventListener("keyup",As(this,Ss,vn));return}this.keyboardShortcutHandler(r)};qa=new WeakSet;Fd=function(r){let{metaKey:e,altKey:t,key:i}=r;if(e||t||!Km.includes(i)){this.removeEventListener("keyup",As(this,Ss,vn));return}[" ","ArrowLeft","ArrowRight"].includes(i)&&!(Ur(this,ur).contains(`no${i.toLowerCase()}`)||i===" "&&Ur(this,ur).contains("nospace"))&&r.preventDefault(),this.addEventListener("keyup",As(this,Ss,vn),{once:!0})};var ty=Object.values(S),iy=Object.values(Dr),Hd=r=>{var e,t,i,s;let{observedAttributes:n}=r.constructor;!n&&((e=r.nodeName)==null?void 0:e.includes("-"))&&(w.customElements.upgrade(r),{observedAttributes:n}=r.constructor);let a=(s=(i=(t=r==null?void 0:r.getAttribute)==null?void 0:t.call(r,ye.MEDIA_CHROME_ATTRIBUTES))==null?void 0:i.split)==null?void 0:s.call(i,/\s+/);return Array.isArray(n||a)?(n||a).filter(o=>ty.includes(o)):[]},ry=r=>{var e,t;return((e=r.nodeName)==null?void 0:e.includes("-"))&&!!w.customElements.get((t=r.nodeName)==null?void 0:t.toLowerCase())&&!(r instanceof w.customElements.get(r.nodeName.toLowerCase()))&&w.customElements.upgrade(r),iy.some(i=>i in r)},Bd=r=>ry(r)||!!Hd(r).length,$m=r=>{var e;return(e=r==null?void 0:r.join)==null?void 0:e.call(r,":")},Hm={[S.MEDIA_SUBTITLES_LIST]:Pr,[S.MEDIA_SUBTITLES_SHOWING]:Pr,[S.MEDIA_SEEKABLE]:$m,[S.MEDIA_BUFFERED]:r=>r==null?void 0:r.map($m).join(" "),[S.MEDIA_PREVIEW_COORDS]:r=>r==null?void 0:r.join(" "),[S.MEDIA_RENDITION_LIST]:um,[S.MEDIA_AUDIO_TRACK_LIST]:fm},sy=async(r,e,t)=>{var i,s;if(r.isConnected||await ka(0),typeof t=="boolean"||t==null)return Ke(r,e,t);if(typeof t=="number")return ze(r,e,t);if(typeof t=="string")return Be(r,e,t);if(Array.isArray(t)&&!t.length)return r.removeAttribute(e);let n=(s=(i=Hm[e])==null?void 0:i.call(Hm,t))!=null?s:t;return r.setAttribute(e,n)},ny=r=>{var e;return!!((e=r.closest)!=null&&e.call(r,'*[slot="media"]'))},Nr=(r,e)=>{if(ny(r))return;let t=(s,n)=>{var a,o;Bd(s)&&n(s);let{children:l=[]}=s!=null?s:{},d=(o=(a=s==null?void 0:s.shadowRoot)==null?void 0:a.children)!=null?o:[];[...l,...d].forEach(u=>Nr(u,n))},i=r==null?void 0:r.nodeName.toLowerCase();if(i.includes("-")&&!Bd(r)){w.customElements.whenDefined(i).then(()=>{t(r,e)});return}t(r,e)},Gm=(r,e,t)=>{r.forEach(i=>{if(e in i){i[e]=t;return}let s=Hd(i),n=e.toLowerCase();!s.includes(n)||sy(i,n,t)})},Vm=(r,e)=>{for(let t of r){if(e in t)return t[e];let i=Hd(t),s=e.toLowerCase();if(!!i.includes(s))return t.getAttribute(s)}},ay=(r,e,t)=>{Nr(r,e);let i=c=>{var u;let h=(u=c==null?void 0:c.composedPath()[0])!=null?u:c.target;e(h)},s=c=>{var u;let h=(u=c==null?void 0:c.composedPath()[0])!=null?u:c.target;t(h)};r.addEventListener(re.REGISTER_MEDIA_STATE_RECEIVER,i),r.addEventListener(re.UNREGISTER_MEDIA_STATE_RECEIVER,s);let n=c=>{c.forEach(u=>{let{addedNodes:h=[],removedNodes:f=[],type:g,target:E,attributeName:T}=u;g==="childList"?(Array.prototype.forEach.call(h,A=>Nr(A,e)),Array.prototype.forEach.call(f,A=>Nr(A,t))):g==="attributes"&&T===ye.MEDIA_CHROME_ATTRIBUTES&&(Bd(E)?e(E):t(E))})},a=[],o=c=>{let u=c.target;u.name!=="media"&&(a.forEach(h=>Nr(h,t)),a=[...u.assignedElements({flatten:!0})],a.forEach(h=>Nr(h,e)))};r.addEventListener("slotchange",o);let l=new MutationObserver(n);return l.observe(r,{childList:!0,attributes:!0,subtree:!0}),()=>{Nr(r,t),r.removeEventListener("slotchange",o),l.disconnect(),r.removeEventListener(re.REGISTER_MEDIA_STATE_RECEIVER,i),r.removeEventListener(re.UNREGISTER_MEDIA_STATE_RECEIVER,s)}};w.customElements.get("media-controller")||w.customElements.define("media-controller",Ya);var Gd=Ya;var oy=Object.defineProperty,ly=(r,e,t)=>e in r?oy(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,dy=(r,e,t)=>(ly(r,typeof e!="symbol"?e+"":e,t),t),qm=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},hr=(r,e,t)=>(qm(r,e,"read from private field"),t?t.call(r):e.get(r)),Vd=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ja=(r,e,t,i)=>(qm(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Ii,za,Xa,Ym=Y.createElement("template"),Wm=`
|
|
221
221
|
height: var(--thumb-height);
|
|
222
222
|
width: var(--media-range-thumb-width, 10px);
|
|
223
223
|
border: var(--media-range-thumb-border, none);
|
|
@@ -621,7 +621,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
621
621
|
}
|
|
622
622
|
</style>
|
|
623
623
|
<img crossorigin loading="eager" decoding="async">
|
|
624
|
-
`;var lc=class extends w.HTMLElement{constructor(){super(),$y(this,wi,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Lp.content.cloneNode(!0)))}static get observedAttributes(){return[ye.MEDIA_CONTROLLER,S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_COORDS]}connectedCallback(){var e,t,i;let s=this.getAttribute(ye.MEDIA_CONTROLLER);s&&(ao(this,wi,(e=this.getRootNode())==null?void 0:e.getElementById(s)),(i=(t=no(this,wi))==null?void 0:t.associateElement)==null||i.call(t,this))}disconnectedCallback(){var e,t;(t=(e=no(this,wi))==null?void 0:e.unassociateElement)==null||t.call(e,this),ao(this,wi,null)}attributeChangedCallback(e,t,i){var s,n,a,o,l;[S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_COORDS].includes(e)&&this.update(),e===ye.MEDIA_CONTROLLER&&(t&&((n=(s=no(this,wi))==null?void 0:s.unassociateElement)==null||n.call(s,this),ao(this,wi,null)),i&&(ao(this,wi,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=no(this,wi))==null?void 0:o.associateElement)==null||l.call(o,this)))}get mediaPreviewImage(){return We(this,S.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){Be(this,S.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewCoords(){let e=this.getAttribute(S.MEDIA_PREVIEW_COORDS);if(!!e)return e.split(/\s+/).map(t=>+t)}set mediaPreviewCoords(e){if(!e){this.removeAttribute(S.MEDIA_PREVIEW_COORDS);return}this.setAttribute(S.MEDIA_PREVIEW_COORDS,e.join(" "))}update(){let e=this.mediaPreviewCoords,t=this.mediaPreviewImage;if(!(e&&t))return;let[i,s,n,a]=e,o=t.split("#")[0],l=getComputedStyle(this),{maxWidth:d,maxHeight:c,minWidth:u,minHeight:h}=l,f=Math.min(parseInt(d)/n,parseInt(c)/a),g=Math.max(parseInt(u)/n,parseInt(h)/a),E=f<1,T=E?f:g>1?g:1,{style:A}=Qe(this.shadowRoot,":host"),k=Qe(this.shadowRoot,"img").style,L=this.shadowRoot.querySelector("img"),N=E?"min":"max";A.setProperty(`${N}-width`,"initial","important"),A.setProperty(`${N}-height`,"initial","important"),A.width=`${n*T}px`,A.height=`${a*T}px`;let D=()=>{k.width=`${this.imgWidth*T}px`,k.height=`${this.imgHeight*T}px`,k.display="block"};L.src!==o&&(L.onload=()=>{this.imgWidth=L.naturalWidth,this.imgHeight=L.naturalHeight,D()},L.src=o,D()),D(),k.transform=`translate(-${i*T}px, -${s*T}px)`}};wi=new WeakMap;w.customElements.get("media-preview-thumbnail")||w.customElements.define("media-preview-thumbnail",lc);var vc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},lt=(r,e,t)=>(vc(r,e,"read from private field"),t?t.call(r):e.get(r)),wt=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},fr=(r,e,t,i)=>(vc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),_n=(r,e,t)=>(vc(r,e,"access private method"),t),An,oo,Sn,fo,mo,lo,cc,uc,kp,co,hc,uo,ws,xn,fc,po,go,ho,mc,pc,Rp,
|
|
624
|
+
`;var lc=class extends w.HTMLElement{constructor(){super(),$y(this,wi,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Lp.content.cloneNode(!0)))}static get observedAttributes(){return[ye.MEDIA_CONTROLLER,S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_COORDS]}connectedCallback(){var e,t,i;let s=this.getAttribute(ye.MEDIA_CONTROLLER);s&&(ao(this,wi,(e=this.getRootNode())==null?void 0:e.getElementById(s)),(i=(t=no(this,wi))==null?void 0:t.associateElement)==null||i.call(t,this))}disconnectedCallback(){var e,t;(t=(e=no(this,wi))==null?void 0:e.unassociateElement)==null||t.call(e,this),ao(this,wi,null)}attributeChangedCallback(e,t,i){var s,n,a,o,l;[S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_COORDS].includes(e)&&this.update(),e===ye.MEDIA_CONTROLLER&&(t&&((n=(s=no(this,wi))==null?void 0:s.unassociateElement)==null||n.call(s,this),ao(this,wi,null)),i&&(ao(this,wi,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=no(this,wi))==null?void 0:o.associateElement)==null||l.call(o,this)))}get mediaPreviewImage(){return We(this,S.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){Be(this,S.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewCoords(){let e=this.getAttribute(S.MEDIA_PREVIEW_COORDS);if(!!e)return e.split(/\s+/).map(t=>+t)}set mediaPreviewCoords(e){if(!e){this.removeAttribute(S.MEDIA_PREVIEW_COORDS);return}this.setAttribute(S.MEDIA_PREVIEW_COORDS,e.join(" "))}update(){let e=this.mediaPreviewCoords,t=this.mediaPreviewImage;if(!(e&&t))return;let[i,s,n,a]=e,o=t.split("#")[0],l=getComputedStyle(this),{maxWidth:d,maxHeight:c,minWidth:u,minHeight:h}=l,f=Math.min(parseInt(d)/n,parseInt(c)/a),g=Math.max(parseInt(u)/n,parseInt(h)/a),E=f<1,T=E?f:g>1?g:1,{style:A}=Qe(this.shadowRoot,":host"),k=Qe(this.shadowRoot,"img").style,L=this.shadowRoot.querySelector("img"),N=E?"min":"max";A.setProperty(`${N}-width`,"initial","important"),A.setProperty(`${N}-height`,"initial","important"),A.width=`${n*T}px`,A.height=`${a*T}px`;let D=()=>{k.width=`${this.imgWidth*T}px`,k.height=`${this.imgHeight*T}px`,k.display="block"};L.src!==o&&(L.onload=()=>{this.imgWidth=L.naturalWidth,this.imgHeight=L.naturalHeight,D()},L.src=o,D()),D(),k.transform=`translate(-${i*T}px, -${s*T}px)`}};wi=new WeakMap;w.customElements.get("media-preview-thumbnail")||w.customElements.define("media-preview-thumbnail",lc);var vc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},lt=(r,e,t)=>(vc(r,e,"read from private field"),t?t.call(r):e.get(r)),wt=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},fr=(r,e,t,i)=>(vc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),_n=(r,e,t)=>(vc(r,e,"access private method"),t),An,oo,Sn,fo,mo,lo,cc,uc,kp,co,hc,uo,ws,xn,fc,po,go,ho,mc,pc,Rp,Hy="video not loaded, unknown time.",dc=r=>{let e=r.range,t=Cr(+e.value),i=Cr(+e.max),s=t&&i?`${t} of ${i}`:Hy;e.setAttribute("aria-valuetext",s)},wp=Y.createElement("template");wp.innerHTML=`
|
|
625
625
|
<style>
|
|
626
626
|
:host {
|
|
627
627
|
--media-preview-border-radius: 3px;
|
|
@@ -726,7 +726,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
726
726
|
|
|
727
727
|
</slot>
|
|
728
728
|
</div>
|
|
729
|
-
`;var gc=class extends Fr{constructor(){super(),wt(this,lo),wt(this,uc),wt(this,co),wt(this,ho),wt(this,pc),wt(this,An,void 0),wt(this,oo,void 0),wt(this,Sn,void 0),wt(this,fo,void 0),wt(this,mo,void 0),wt(this,uo,t=>{if([...lt(this,An)].some(c=>t.composedPath().includes(c)))return;this.updatePointerBar(t);let i=this.mediaDuration;if(!i)return;let s=this.range.getBoundingClientRect(),n=(t.clientX-s.left-this.thumbWidth/2)/(s.width-this.thumbWidth);n=Math.max(0,Math.min(1,n));let a=_n(this,co,hc).call(this,lt(this,oo),n),{style:o}=Qe(this.shadowRoot,"#preview-rail");o.transform=`translateX(${a})`;let l=n*i,d=new w.CustomEvent(re.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:l});this.dispatchEvent(d)}),wt(this,ws,!1),wt(this,xn,t=>{var i;(!t.composedPath().includes(this)||[...lt(this,An)].some(s=>t.composedPath().includes(s)))&&((i=w.window)==null||i.removeEventListener("pointermove",lt(this,xn)),fr(this,ws,!1),lt(this,po).call(this))}),wt(this,fc,()=>{var t;(t=w.window)==null||t.addEventListener("pointermove",lt(this,uo),!1)}),wt(this,po,()=>{var t;(t=w.window)==null||t.removeEventListener("pointermove",lt(this,uo));let i=new w.CustomEvent(re.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:null});this.dispatchEvent(i)}),wt(this,go,()=>{var t;let i=this.getAttribute(S.MEDIA_DURATION);!lt(this,ws)&&i&&(fr(this,ws,!0),lt(this,fc).call(this),(t=w.window)==null||t.addEventListener("pointermove",lt(this,xn),!1))}),this.container.appendChild(wp.content.cloneNode(!0)),this.range.addEventListener("input",()=>{cancelAnimationFrame(this._refreshId);let i=this.range.value,s=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:i});this.dispatchEvent(s)}),this._refreshBar=()=>{let t=(performance.now()-this._updateTimestamp)/1e3;this.range.value=this.mediaCurrentTime+t*this.mediaPlaybackRate,this.updateBar(),this.updateCurrentBox(),this._refreshId=requestAnimationFrame(this._refreshBar)},fr(this,An,this.shadowRoot.querySelectorAll('[part~="box"]')),fr(this,oo,this.shadowRoot.querySelector('[part~="preview-box"]')),fr(this,Sn,this.shadowRoot.querySelector('[part~="current-box"]'));let e=getComputedStyle(this);fr(this,fo,parseInt(e.getPropertyValue("--media-box-padding-left"))),fr(this,mo,parseInt(e.getPropertyValue("--media-box-padding-right"))),_n(this,ho,mc).call(this)}static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_PAUSED,S.MEDIA_DURATION,S.MEDIA_SEEKABLE,S.MEDIA_CURRENT_TIME,S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_TIME,S.MEDIA_BUFFERED,S.MEDIA_PLAYBACK_RATE,S.MEDIA_LOADING,S.MEDIA_ENDED]}connectedCallback(){this.range.setAttribute("aria-label",Rt.SEEK()),super.connectedCallback()}disconnectedCallback(){cancelAnimationFrame(this._refreshId),super.disconnectedCallback()}attributeChangedCallback(e,t,i){var s,n,a,o,l;(e===S.MEDIA_CURRENT_TIME||e===S.MEDIA_PAUSED||e===S.MEDIA_ENDED||e===S.MEDIA_LOADING)&&(this._updateTimestamp=performance.now(),this.range.value=this.mediaCurrentTime,dc(this),this.updateBar(),this.updateCurrentBox(),cancelAnimationFrame(this._refreshId),!this.mediaPaused&&!this.mediaLoading&&(this._refreshId=requestAnimationFrame(this._refreshBar))),e===S.MEDIA_DURATION&&(this.range.max=(n=(s=lt(this,lo,cc))!=null?s:this.mediaDuration)!=null?n:1e3,dc(this),this.updateBar(),this.updateCurrentBox()),e===S.MEDIA_SEEKABLE&&(this.range.min=(a=lt(this,uc,kp))!=null?a:0,this.range.max=(l=(o=lt(this,lo,cc))!=null?o:this.mediaDuration)!=null?l:1e3,dc(this),this.updateBar()),e===S.MEDIA_BUFFERED&&this.updateBar(),e==="disabled"&&(i==null?_n(this,ho,mc).call(this):_n(this,pc,Rp).call(this)),super.attributeChangedCallback(e,t,i)}get mediaPaused(){return Ye(this,S.MEDIA_PAUSED)}set mediaPaused(e){Ke(this,S.MEDIA_PAUSED,e)}get mediaLoading(){return Ye(this,S.MEDIA_LOADING)}set mediaLoading(e){Ke(this,S.MEDIA_LOADING,e)}get mediaDuration(){return Fe(this,S.MEDIA_DURATION)}set mediaDuration(e){ze(this,S.MEDIA_DURATION,e)}get mediaCurrentTime(){return Fe(this,S.MEDIA_CURRENT_TIME)}set mediaCurrentTime(e){ze(this,S.MEDIA_CURRENT_TIME,e)}get mediaPlaybackRate(){return Fe(this,S.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(e){ze(this,S.MEDIA_PLAYBACK_RATE,e)}get mediaBuffered(){let e=this.getAttribute(S.MEDIA_BUFFERED);return e?e.split(" ").map(t=>t.split(":").map(i=>+i)):[]}set mediaBuffered(e){if(!e){this.removeAttribute(S.MEDIA_BUFFERED);return}let t=e.map(i=>i.join(":")).join(" ");this.setAttribute(S.MEDIA_BUFFERED,t)}get mediaSeekable(){let e=this.getAttribute(S.MEDIA_SEEKABLE);if(!!e)return e.split(":").map(t=>+t)}set mediaSeekable(e){if(e==null){this.removeAttribute(S.MEDIA_SEEKABLE);return}this.setAttribute(S.MEDIA_SEEKABLE,e.join(":"))}get mediaPreviewImage(){return We(this,S.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){Be(this,S.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewTime(){return Fe(this,S.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(e){ze(this,S.MEDIA_PREVIEW_TIME,e)}get mediaEnded(){return Ye(this,S.MEDIA_ENDED)}set mediaEnded(e){Ke(this,S.MEDIA_ENDED,e)}getRelativeValues(){let e=super.getRelativeValues();return this.mediaEnded?{...e,relativeValue:e.relativeMax}:e}getBarColors(){var e;let t=super.getBarColors(),{range:i}=this,s=i.max-i.min,n=this.mediaBuffered;if(!n.length||!Number.isFinite(s)||s<=0)return t;let a;if(this.mediaEnded)a=s;else{let l=this.mediaCurrentTime,[,d=i.min]=(e=n.find(([c,u])=>c<=l&&l<=u))!=null?e:[];a=d-i.min}let o=a/s*100;return t.splice(1,0,["var(--media-time-range-buffered-color, rgb(255 255 255 / .4))",o]),t}updateCurrentBox(){if(!lt(this,Sn).assignedElements().length)return;let e=this.range.value/(this.range.max-this.range.min),t=_n(this,co,hc).call(this,lt(this,Sn),e),{style:i}=Qe(this.shadowRoot,"#current-rail");i.transform=`translateX(${t})`}};An=new WeakMap;oo=new WeakMap;Sn=new WeakMap;fo=new WeakMap;mo=new WeakMap;lo=new WeakSet;cc=function(){var r;let[,e]=(r=this.mediaSeekable)!=null?r:[];return e};uc=new WeakSet;kp=function(){var r;let[e]=(r=this.mediaSeekable)!=null?r:[];return e};co=new WeakSet;hc=function(r,e){var t;let i=`${e*100*100}%`,s=r.offsetWidth;if(!s)return i;let n=(t=this.getAttribute("bounds")?or(this,`#${this.getAttribute("bounds")}`):this.parentElement)!=null?t:this,a=this.range.getBoundingClientRect(),o=n.getBoundingClientRect(),l=(lt(this,fo)-(a.left-o.left-s/2))/a.width*100,d=(o.right-a.left-s/2-lt(this,mo))/a.width*100;return Number.isNaN(l)||(i=`max(${l*100}%, ${i})`),Number.isNaN(d)||(i=`min(${i}, ${d*100}%)`),i};uo=new WeakMap;ws=new WeakMap;xn=new WeakMap;fc=new WeakMap;po=new WeakMap;go=new WeakMap;ho=new WeakSet;mc=function(){this.addEventListener("pointermove",lt(this,go),!1)};pc=new WeakSet;Rp=function(){var r;(r=w.window)==null||r.removeEventListener("pointermove",lt(this,xn)),this.removeEventListener("pointermove",lt(this,go)),fr(this,ws,!1),lt(this,po).call(this)};w.customElements.get("media-time-range")||w.customElements.define("media-time-range",gc);var Cp=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Ds=(r,e,t)=>(Cp(r,e,"read from private field"),t?t.call(r):e.get(r)),Ec=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Cs=(r,e,t,i)=>(Cp(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Di,vo,Eo,Dp={LOADING_DELAY:"loadingdelay"},Mp=500,Op=Y.createElement("template"),
|
|
729
|
+
`;var gc=class extends Fr{constructor(){super(),wt(this,lo),wt(this,uc),wt(this,co),wt(this,ho),wt(this,pc),wt(this,An,void 0),wt(this,oo,void 0),wt(this,Sn,void 0),wt(this,fo,void 0),wt(this,mo,void 0),wt(this,uo,t=>{if([...lt(this,An)].some(c=>t.composedPath().includes(c)))return;this.updatePointerBar(t);let i=this.mediaDuration;if(!i)return;let s=this.range.getBoundingClientRect(),n=(t.clientX-s.left-this.thumbWidth/2)/(s.width-this.thumbWidth);n=Math.max(0,Math.min(1,n));let a=_n(this,co,hc).call(this,lt(this,oo),n),{style:o}=Qe(this.shadowRoot,"#preview-rail");o.transform=`translateX(${a})`;let l=n*i,d=new w.CustomEvent(re.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:l});this.dispatchEvent(d)}),wt(this,ws,!1),wt(this,xn,t=>{var i;(!t.composedPath().includes(this)||[...lt(this,An)].some(s=>t.composedPath().includes(s)))&&((i=w.window)==null||i.removeEventListener("pointermove",lt(this,xn)),fr(this,ws,!1),lt(this,po).call(this))}),wt(this,fc,()=>{var t;(t=w.window)==null||t.addEventListener("pointermove",lt(this,uo),!1)}),wt(this,po,()=>{var t;(t=w.window)==null||t.removeEventListener("pointermove",lt(this,uo));let i=new w.CustomEvent(re.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:null});this.dispatchEvent(i)}),wt(this,go,()=>{var t;let i=this.getAttribute(S.MEDIA_DURATION);!lt(this,ws)&&i&&(fr(this,ws,!0),lt(this,fc).call(this),(t=w.window)==null||t.addEventListener("pointermove",lt(this,xn),!1))}),this.container.appendChild(wp.content.cloneNode(!0)),this.range.addEventListener("input",()=>{cancelAnimationFrame(this._refreshId);let i=this.range.value,s=new w.CustomEvent(re.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:i});this.dispatchEvent(s)}),this._refreshBar=()=>{let t=(performance.now()-this._updateTimestamp)/1e3;this.range.value=this.mediaCurrentTime+t*this.mediaPlaybackRate,this.updateBar(),this.updateCurrentBox(),this._refreshId=requestAnimationFrame(this._refreshBar)},fr(this,An,this.shadowRoot.querySelectorAll('[part~="box"]')),fr(this,oo,this.shadowRoot.querySelector('[part~="preview-box"]')),fr(this,Sn,this.shadowRoot.querySelector('[part~="current-box"]'));let e=getComputedStyle(this);fr(this,fo,parseInt(e.getPropertyValue("--media-box-padding-left"))),fr(this,mo,parseInt(e.getPropertyValue("--media-box-padding-right"))),_n(this,ho,mc).call(this)}static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_PAUSED,S.MEDIA_DURATION,S.MEDIA_SEEKABLE,S.MEDIA_CURRENT_TIME,S.MEDIA_PREVIEW_IMAGE,S.MEDIA_PREVIEW_TIME,S.MEDIA_BUFFERED,S.MEDIA_PLAYBACK_RATE,S.MEDIA_LOADING,S.MEDIA_ENDED]}connectedCallback(){this.range.setAttribute("aria-label",Rt.SEEK()),super.connectedCallback()}disconnectedCallback(){cancelAnimationFrame(this._refreshId),super.disconnectedCallback()}attributeChangedCallback(e,t,i){var s,n,a,o,l;(e===S.MEDIA_CURRENT_TIME||e===S.MEDIA_PAUSED||e===S.MEDIA_ENDED||e===S.MEDIA_LOADING)&&(this._updateTimestamp=performance.now(),this.range.value=this.mediaCurrentTime,dc(this),this.updateBar(),this.updateCurrentBox(),cancelAnimationFrame(this._refreshId),!this.mediaPaused&&!this.mediaLoading&&(this._refreshId=requestAnimationFrame(this._refreshBar))),e===S.MEDIA_DURATION&&(this.range.max=(n=(s=lt(this,lo,cc))!=null?s:this.mediaDuration)!=null?n:1e3,dc(this),this.updateBar(),this.updateCurrentBox()),e===S.MEDIA_SEEKABLE&&(this.range.min=(a=lt(this,uc,kp))!=null?a:0,this.range.max=(l=(o=lt(this,lo,cc))!=null?o:this.mediaDuration)!=null?l:1e3,dc(this),this.updateBar()),e===S.MEDIA_BUFFERED&&this.updateBar(),e==="disabled"&&(i==null?_n(this,ho,mc).call(this):_n(this,pc,Rp).call(this)),super.attributeChangedCallback(e,t,i)}get mediaPaused(){return Ye(this,S.MEDIA_PAUSED)}set mediaPaused(e){Ke(this,S.MEDIA_PAUSED,e)}get mediaLoading(){return Ye(this,S.MEDIA_LOADING)}set mediaLoading(e){Ke(this,S.MEDIA_LOADING,e)}get mediaDuration(){return Fe(this,S.MEDIA_DURATION)}set mediaDuration(e){ze(this,S.MEDIA_DURATION,e)}get mediaCurrentTime(){return Fe(this,S.MEDIA_CURRENT_TIME)}set mediaCurrentTime(e){ze(this,S.MEDIA_CURRENT_TIME,e)}get mediaPlaybackRate(){return Fe(this,S.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(e){ze(this,S.MEDIA_PLAYBACK_RATE,e)}get mediaBuffered(){let e=this.getAttribute(S.MEDIA_BUFFERED);return e?e.split(" ").map(t=>t.split(":").map(i=>+i)):[]}set mediaBuffered(e){if(!e){this.removeAttribute(S.MEDIA_BUFFERED);return}let t=e.map(i=>i.join(":")).join(" ");this.setAttribute(S.MEDIA_BUFFERED,t)}get mediaSeekable(){let e=this.getAttribute(S.MEDIA_SEEKABLE);if(!!e)return e.split(":").map(t=>+t)}set mediaSeekable(e){if(e==null){this.removeAttribute(S.MEDIA_SEEKABLE);return}this.setAttribute(S.MEDIA_SEEKABLE,e.join(":"))}get mediaPreviewImage(){return We(this,S.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){Be(this,S.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewTime(){return Fe(this,S.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(e){ze(this,S.MEDIA_PREVIEW_TIME,e)}get mediaEnded(){return Ye(this,S.MEDIA_ENDED)}set mediaEnded(e){Ke(this,S.MEDIA_ENDED,e)}getRelativeValues(){let e=super.getRelativeValues();return this.mediaEnded?{...e,relativeValue:e.relativeMax}:e}getBarColors(){var e;let t=super.getBarColors(),{range:i}=this,s=i.max-i.min,n=this.mediaBuffered;if(!n.length||!Number.isFinite(s)||s<=0)return t;let a;if(this.mediaEnded)a=s;else{let l=this.mediaCurrentTime,[,d=i.min]=(e=n.find(([c,u])=>c<=l&&l<=u))!=null?e:[];a=d-i.min}let o=a/s*100;return t.splice(1,0,["var(--media-time-range-buffered-color, rgb(255 255 255 / .4))",o]),t}updateCurrentBox(){if(!lt(this,Sn).assignedElements().length)return;let e=this.range.value/(this.range.max-this.range.min),t=_n(this,co,hc).call(this,lt(this,Sn),e),{style:i}=Qe(this.shadowRoot,"#current-rail");i.transform=`translateX(${t})`}};An=new WeakMap;oo=new WeakMap;Sn=new WeakMap;fo=new WeakMap;mo=new WeakMap;lo=new WeakSet;cc=function(){var r;let[,e]=(r=this.mediaSeekable)!=null?r:[];return e};uc=new WeakSet;kp=function(){var r;let[e]=(r=this.mediaSeekable)!=null?r:[];return e};co=new WeakSet;hc=function(r,e){var t;let i=`${e*100*100}%`,s=r.offsetWidth;if(!s)return i;let n=(t=this.getAttribute("bounds")?or(this,`#${this.getAttribute("bounds")}`):this.parentElement)!=null?t:this,a=this.range.getBoundingClientRect(),o=n.getBoundingClientRect(),l=(lt(this,fo)-(a.left-o.left-s/2))/a.width*100,d=(o.right-a.left-s/2-lt(this,mo))/a.width*100;return Number.isNaN(l)||(i=`max(${l*100}%, ${i})`),Number.isNaN(d)||(i=`min(${i}, ${d*100}%)`),i};uo=new WeakMap;ws=new WeakMap;xn=new WeakMap;fc=new WeakMap;po=new WeakMap;go=new WeakMap;ho=new WeakSet;mc=function(){this.addEventListener("pointermove",lt(this,go),!1)};pc=new WeakSet;Rp=function(){var r;(r=w.window)==null||r.removeEventListener("pointermove",lt(this,xn)),this.removeEventListener("pointermove",lt(this,go)),fr(this,ws,!1),lt(this,po).call(this)};w.customElements.get("media-time-range")||w.customElements.define("media-time-range",gc);var Cp=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Ds=(r,e,t)=>(Cp(r,e,"read from private field"),t?t.call(r):e.get(r)),Ec=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Cs=(r,e,t,i)=>(Cp(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Di,vo,Eo,Dp={LOADING_DELAY:"loadingdelay"},Mp=500,Op=Y.createElement("template"),Gy=`
|
|
730
730
|
<svg aria-hidden="true" viewBox="0 0 100 100">
|
|
731
731
|
<path d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50">
|
|
732
732
|
<animateTransform
|
|
@@ -784,7 +784,7 @@ svg, img, ::slotted(svg), ::slotted(img) {
|
|
|
784
784
|
}
|
|
785
785
|
</style>
|
|
786
786
|
|
|
787
|
-
<slot name="icon">${
|
|
787
|
+
<slot name="icon">${Gy}</slot>
|
|
788
788
|
<div id="status" role="status" aria-live="polite">${Rt.MEDIA_LOADING()}</div>
|
|
789
789
|
`;var bc=class extends w.HTMLElement{constructor(){if(super(),Ec(this,Di,void 0),Ec(this,vo,Mp),Ec(this,Eo,void 0),!this.shadowRoot){let t=this.attachShadow({mode:"open"}),i=Op.content.cloneNode(!0);t.appendChild(i)}let{style:e}=Qe(this.shadowRoot,":host");Cs(this,Eo,e)}static get observedAttributes(){return[ye.MEDIA_CONTROLLER,S.MEDIA_PAUSED,S.MEDIA_LOADING,Dp.LOADING_DELAY]}attributeChangedCallback(e,t,i){var s,n,a,o,l;e===Dp.LOADING_DELAY&&t!==i?this.loadingDelay=Number(i):e===ye.MEDIA_CONTROLLER&&(t&&((n=(s=Ds(this,Di))==null?void 0:s.unassociateElement)==null||n.call(s,this),Cs(this,Di,null)),i&&(Cs(this,Di,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=Ds(this,Di))==null?void 0:o.associateElement)==null||l.call(o,this)))}connectedCallback(){var e,t,i;let s=this.getAttribute(ye.MEDIA_CONTROLLER);s&&(Cs(this,Di,(e=this.getRootNode())==null?void 0:e.getElementById(s)),(i=(t=Ds(this,Di))==null?void 0:t.associateElement)==null||i.call(t,this))}disconnectedCallback(){var e,t;(t=(e=Ds(this,Di))==null?void 0:e.unassociateElement)==null||t.call(e,this),Cs(this,Di,null)}get loadingDelay(){return Ds(this,vo)}set loadingDelay(e){Cs(this,vo,e),Ds(this,Eo).setProperty("--_loading-indicator-delay",`var(--media-loading-indicator-transition-delay, ${e}ms)`)}get mediaPaused(){return Ye(this,S.MEDIA_PAUSED)}set mediaPaused(e){Ke(this,S.MEDIA_PAUSED,e)}get mediaLoading(){return Ye(this,S.MEDIA_LOADING)}set mediaLoading(e){Ke(this,S.MEDIA_LOADING,e)}};Di=new WeakMap;vo=new WeakMap;Eo=new WeakMap;w.customElements.get("media-loading-indicator")||w.customElements.define("media-loading-indicator",bc);var Vy=100,Ky=1,Wy=r=>r.mediaMuted?0:Math.round(r.mediaVolume*r.range.max),qy=({value:r,max:e})=>`${Math.round(r/e*100)}%`,yc=class extends Fr{static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_VOLUME,S.MEDIA_MUTED,S.MEDIA_VOLUME_UNAVAILABLE]}constructor(){super(),this.range.max=Vy,this.range.addEventListener("input",()=>{let t=this.range.value/this.range.max,i=new w.CustomEvent(re.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:t});this.dispatchEvent(i)})}connectedCallback(){this.range.setAttribute("aria-label",Rt.VOLUME()),super.connectedCallback()}attributeChangedCallback(e,t,i){if(e===S.MEDIA_VOLUME||e===S.MEDIA_MUTED){let s=Wy(this);this.range.value=s,this.range.setAttribute("aria-valuetext",qy(this.range)),this.updateBar()}super.attributeChangedCallback(e,t,i)}get mediaVolume(){return Fe(this,S.MEDIA_VOLUME,Ky)}set mediaVolume(e){ze(this,S.MEDIA_VOLUME,e)}get mediaMuted(){return Ye(this,S.MEDIA_MUTED)}set mediaMuted(e){Ke(this,S.MEDIA_MUTED,e)}get mediaVolumeUnavailable(){return We(this,S.MEDIA_VOLUME_UNAVAILABLE)}set mediaVolumeUnavailable(e){Be(this,S.MEDIA_VOLUME_UNAVAILABLE,e)}};w.customElements.get("media-volume-range")||w.customElements.define("media-volume-range",yc);var xc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},It=(r,e,t)=>(xc(r,e,"read from private field"),t?t.call(r):e.get(r)),si=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},fi=(r,e,t,i)=>(xc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),zi=(r,e,t)=>(xc(r,e,"access private method"),t),Ci,mr,Os,In,bo,yo,Tc,Ms,_c,Ln,To,_o,Ac,Sc,Pp,Ic,Np,Yy=`
|
|
790
790
|
<svg aria-hidden="true" viewBox="0 1 24 24" part="select-indicator indicator">
|
|
@@ -881,7 +881,7 @@ svg, img, ::slotted(svg), ::slotted(img) {
|
|
|
881
881
|
}
|
|
882
882
|
</style>
|
|
883
883
|
<slot></slot>
|
|
884
|
-
`;var pr={VALUE:"value",SELECTED:"selected",DISABLED:"disabled"},xo=class extends w.HTMLElement{constructor(){super(),Lc(this,So),Lc(this,Ao,!1),Lc(this,Ps,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Bp.content.cloneNode(!0)))}static get observedAttributes(){return[pr.DISABLED,pr.SELECTED,pr.VALUE]}get value(){var e;return(e=this.getAttribute(pr.VALUE))!=null?e:this.text}set value(e){this.setAttribute(pr.VALUE,e)}get text(){var e;return((e=this.textContent)!=null?e:"").trim()}get selected(){return this.getAttribute("aria-selected")==="true"}set selected(e){kc(this,Ao,!0),this.setAttribute("aria-selected",e?"true":"false"),e?this.part.add("option-selected"):this.part.remove("option-selected")}enable(){this.hasAttribute("tabindex")||this.setAttribute("tabindex",-1),this.hasAttribute("aria-selected")||this.setAttribute("aria-selected","false")}disable(){this.removeAttribute("tabindex")}attributeChangedCallback(e,t,i){e===pr.SELECTED&&!Rc(this,Ao)?this.setAttribute("aria-selected",i!=null?"true":"false"):e===pr.DISABLED&&i!==t&&(i==null?this.enable():this.disable())}connectedCallback(){this.hasAttribute(pr.DISABLED)||this.enable(),this.setAttribute("role","option"),kc(this,Ps,Dc(this,this.parentNode)),Fp(this,So,wc).call(this)}disconnectedCallback(){this.disable(),Fp(this,So,wc).call(this),kc(this,Ps,null)}handleClick(){}};Ao=new WeakMap;Ps=new WeakMap;So=new WeakSet;wc=function(){var r;let e=(r=Rc(this,Ps))==null?void 0:r.options;if(!e)return;let t=e.filter(i=>i.getAttribute("aria-selected")==="true").pop();t||(t=e[0]),Rc(this,Ps).getAttribute("aria-multiselectable")!=="true"&&e.forEach(i=>{i.setAttribute("tabindex","-1"),i.setAttribute("aria-selected","false")}),t==null||t.setAttribute("tabindex","0"),t==null||t.setAttribute("aria-selected","true")};function Dc(r,e){if(!r)return null;let{host:t}=r.getRootNode();return!e&&t?Dc(r,t):e!=null&&e.options?e:Dc(e,e==null?void 0:e.parentNode)}w.customElements.get("media-chrome-option")||w.customElements.define("media-chrome-option",xo);var $p=new WeakMap,Mc=r=>{let e=$p.get(r);return e||$p.set(r,e=new Set),e},
|
|
884
|
+
`;var pr={VALUE:"value",SELECTED:"selected",DISABLED:"disabled"},xo=class extends w.HTMLElement{constructor(){super(),Lc(this,So),Lc(this,Ao,!1),Lc(this,Ps,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Bp.content.cloneNode(!0)))}static get observedAttributes(){return[pr.DISABLED,pr.SELECTED,pr.VALUE]}get value(){var e;return(e=this.getAttribute(pr.VALUE))!=null?e:this.text}set value(e){this.setAttribute(pr.VALUE,e)}get text(){var e;return((e=this.textContent)!=null?e:"").trim()}get selected(){return this.getAttribute("aria-selected")==="true"}set selected(e){kc(this,Ao,!0),this.setAttribute("aria-selected",e?"true":"false"),e?this.part.add("option-selected"):this.part.remove("option-selected")}enable(){this.hasAttribute("tabindex")||this.setAttribute("tabindex",-1),this.hasAttribute("aria-selected")||this.setAttribute("aria-selected","false")}disable(){this.removeAttribute("tabindex")}attributeChangedCallback(e,t,i){e===pr.SELECTED&&!Rc(this,Ao)?this.setAttribute("aria-selected",i!=null?"true":"false"):e===pr.DISABLED&&i!==t&&(i==null?this.enable():this.disable())}connectedCallback(){this.hasAttribute(pr.DISABLED)||this.enable(),this.setAttribute("role","option"),kc(this,Ps,Dc(this,this.parentNode)),Fp(this,So,wc).call(this)}disconnectedCallback(){this.disable(),Fp(this,So,wc).call(this),kc(this,Ps,null)}handleClick(){}};Ao=new WeakMap;Ps=new WeakMap;So=new WeakSet;wc=function(){var r;let e=(r=Rc(this,Ps))==null?void 0:r.options;if(!e)return;let t=e.filter(i=>i.getAttribute("aria-selected")==="true").pop();t||(t=e[0]),Rc(this,Ps).getAttribute("aria-multiselectable")!=="true"&&e.forEach(i=>{i.setAttribute("tabindex","-1"),i.setAttribute("aria-selected","false")}),t==null||t.setAttribute("tabindex","0"),t==null||t.setAttribute("aria-selected","true")};function Dc(r,e){if(!r)return null;let{host:t}=r.getRootNode();return!e&&t?Dc(r,t):e!=null&&e.options?e:Dc(e,e==null?void 0:e.parentNode)}w.customElements.get("media-chrome-option")||w.customElements.define("media-chrome-option",xo);var $p=new WeakMap,Mc=r=>{let e=$p.get(r);return e||$p.set(r,e=new Set),e},Hp=new w.ResizeObserver(r=>{for(let e of r)for(let t of Mc(e.target))t(e)});function Oc(r,e){Mc(r).add(e),Hp.observe(r)}function Pc(r,e){let t=Mc(r);t.delete(e),t.size||Hp.unobserve(r)}var Uc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},oe=(r,e,t)=>(Uc(r,e,"read from private field"),t?t.call(r):e.get(r)),Vt=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Oi=(r,e,t,i)=>(Uc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Br=(r,e,t)=>(Uc(r,e,"access private method"),t),Pi,Dt,kn,mt,pi,Ns,Io,Lo,ko,Ro,wo,Nc,Fc,Gp,Us,Rn,$r,Vp=Y.createElement("template");Vp.innerHTML=`
|
|
885
885
|
<style>
|
|
886
886
|
:host {
|
|
887
887
|
font: var(--media-font,
|
|
@@ -933,12 +933,12 @@ svg, img, ::slotted(svg), ::slotted(img) {
|
|
|
933
933
|
<slot></slot>
|
|
934
934
|
</media-chrome-listbox>
|
|
935
935
|
</slot>
|
|
936
|
-
`;var ai=class extends w.HTMLElement{constructor(){var e;super(),Vt(this,wo),Vt(this,Fc),Vt(this,Us),Vt(this,Pi,void 0),Vt(this,Dt,void 0),Vt(this,kn,void 0),Vt(this,mt,void 0),Vt(this,pi,void 0),Vt(this,Ns,i=>{let{key:s}=i;if(!this.keysUsed.includes(s)){this.removeEventListener("keyup",oe(this,Ns));return}i.composedPath().includes(oe(this,Dt))&&(s==="Enter"||s===" ")?Br(this,wo,Nc).call(this):s==="Escape"&&Br(this,Us,Rn).call(this)}),Vt(this,Io,i=>{let{metaKey:s,altKey:n,key:a}=i;if(s||n||!this.keysUsed.includes(a)){this.removeEventListener("keyup",oe(this,Ns));return}i.preventDefault(),this.addEventListener("keyup",oe(this,Ns),{once:!0})}),Vt(this,Lo,i=>{i.composedPath().includes(this)||Br(this,Us,Rn).call(this)}),Vt(this,ko,i=>{i.composedPath().includes(oe(this,Dt))&&Br(this,wo,Nc).call(this)}),Vt(this,Ro,()=>{Br(this,Us,Rn).call(this)}),Vt(this,$r,()=>{if(oe(this,mt).offsetWidth===0)return;let i=oe(this,Dt).getBoundingClientRect();if(this.hasAttribute("mediacontroller")||oe(this,Dt).hasAttribute("mediacontroller")||oe(this,mt).hasAttribute("mediacontroller")){oe(this,mt).style.zIndex="1",oe(this,mt).style.bottom="unset",oe(this,mt).style.top=i.height+"px";return}let s=wn(this),n=oe(this,mt).offsetWidth,a=s.getBoundingClientRect(),o=-Math.max(i.x+n-a.right,0);oe(this,mt).style.left=`${o}px`,oe(this,mt).style.maxHeight=`${a.height-i.height}px`}),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Vp.content.cloneNode(!0)));let{style:t}=Qe(this.shadowRoot,":host");t.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),(e=this.init)==null||e.call(this),Oi(this,Dt,this.shadowRoot.querySelector("[part=button]")),Oi(this,mt,this.shadowRoot.querySelector("[part=listbox]")),Oi(this,kn,this.shadowRoot.querySelector("slot[name=button]")),oe(this,kn).addEventListener("slotchange",()=>{let i=oe(this,kn).assignedElements()[0];if(!i)return;Oi(this,Dt,i),oe(this,Dt).preventClick=!0,this.hasAttribute("disabled")||oe(this,Dt).hasAttribute("disabled")?this.disable():(this.enable(),oe(this,Dt).setAttribute("aria-haspopup","listbox"))}),Oi(this,pi,this.shadowRoot.querySelector("slot[name=listbox]")),oe(this,pi).addEventListener("slotchange",()=>{Oi(this,mt,oe(this,pi).assignedElements()[0]||oe(this,mt))})}static get observedAttributes(){return["disabled",ye.MEDIA_CONTROLLER]}enable(){oe(this,Dt).toggleAttribute("disabled",!1),this.addEventListener("change",oe(this,Ro)),this.addEventListener("keydown",oe(this,Io)),this.addEventListener("click",oe(this,ko)),Y.addEventListener("click",oe(this,Lo))}disable(){oe(this,Dt).toggleAttribute("disabled",!0),this.removeEventListener("change",oe(this,Ro)),this.removeEventListener("keydown",oe(this,Io)),this.removeEventListener("keyup",oe(this,Ns)),this.removeEventListener("click",oe(this,ko)),Y.removeEventListener("click",oe(this,Lo))}attributeChangedCallback(e,t,i){var s,n,a,o,l;e===ye.MEDIA_CONTROLLER?(t&&((n=(s=oe(this,Pi))==null?void 0:s.unassociateElement)==null||n.call(s,this),Oi(this,Pi,null),oe(this,mt).removeAttribute(ye.MEDIA_CONTROLLER)),i&&(Oi(this,Pi,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=oe(this,Pi))==null?void 0:o.associateElement)==null||l.call(o,this),oe(this,mt).setAttribute(ye.MEDIA_CONTROLLER,i))):e==="disabled"&&i!==t&&(i==null?this.enable():this.disable())}connectedCallback(){var e,t,i;let s=this.getAttribute(ye.MEDIA_CONTROLLER);s&&(Oi(this,Pi,(e=this.getRootNode())==null?void 0:e.getElementById(s)),(i=(t=oe(this,Pi))==null?void 0:t.associateElement)==null||i.call(t,this),oe(this,mt).setAttribute(ye.MEDIA_CONTROLLER,s)),this.hasAttribute("disabled")||this.enable(),oe(this,pi).hidden||Oc(wn(this),oe(this,$r))}disconnectedCallback(){var e,t;Pc(wn(this),oe(this,$r)),this.disable(),(t=(e=oe(this,Pi))==null?void 0:e.unassociateElement)==null||t.call(e,this),Oi(this,Pi,null),oe(this,mt).removeAttribute(ye.MEDIA_CONTROLLER)}get keysUsed(){return["Enter","Escape"," ","ArrowUp","ArrowDown","f","c","k","m"]}};Pi=new WeakMap;Dt=new WeakMap;kn=new WeakMap;mt=new WeakMap;pi=new WeakMap;Ns=new WeakMap;Io=new WeakMap;Lo=new WeakMap;ko=new WeakMap;Ro=new WeakMap;wo=new WeakSet;Nc=function(){oe(this,pi).hidden?Br(this,Fc,
|
|
936
|
+
`;var ai=class extends w.HTMLElement{constructor(){var e;super(),Vt(this,wo),Vt(this,Fc),Vt(this,Us),Vt(this,Pi,void 0),Vt(this,Dt,void 0),Vt(this,kn,void 0),Vt(this,mt,void 0),Vt(this,pi,void 0),Vt(this,Ns,i=>{let{key:s}=i;if(!this.keysUsed.includes(s)){this.removeEventListener("keyup",oe(this,Ns));return}i.composedPath().includes(oe(this,Dt))&&(s==="Enter"||s===" ")?Br(this,wo,Nc).call(this):s==="Escape"&&Br(this,Us,Rn).call(this)}),Vt(this,Io,i=>{let{metaKey:s,altKey:n,key:a}=i;if(s||n||!this.keysUsed.includes(a)){this.removeEventListener("keyup",oe(this,Ns));return}i.preventDefault(),this.addEventListener("keyup",oe(this,Ns),{once:!0})}),Vt(this,Lo,i=>{i.composedPath().includes(this)||Br(this,Us,Rn).call(this)}),Vt(this,ko,i=>{i.composedPath().includes(oe(this,Dt))&&Br(this,wo,Nc).call(this)}),Vt(this,Ro,()=>{Br(this,Us,Rn).call(this)}),Vt(this,$r,()=>{if(oe(this,mt).offsetWidth===0)return;let i=oe(this,Dt).getBoundingClientRect();if(this.hasAttribute("mediacontroller")||oe(this,Dt).hasAttribute("mediacontroller")||oe(this,mt).hasAttribute("mediacontroller")){oe(this,mt).style.zIndex="1",oe(this,mt).style.bottom="unset",oe(this,mt).style.top=i.height+"px";return}let s=wn(this),n=oe(this,mt).offsetWidth,a=s.getBoundingClientRect(),o=-Math.max(i.x+n-a.right,0);oe(this,mt).style.left=`${o}px`,oe(this,mt).style.maxHeight=`${a.height-i.height}px`}),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(Vp.content.cloneNode(!0)));let{style:t}=Qe(this.shadowRoot,":host");t.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),(e=this.init)==null||e.call(this),Oi(this,Dt,this.shadowRoot.querySelector("[part=button]")),Oi(this,mt,this.shadowRoot.querySelector("[part=listbox]")),Oi(this,kn,this.shadowRoot.querySelector("slot[name=button]")),oe(this,kn).addEventListener("slotchange",()=>{let i=oe(this,kn).assignedElements()[0];if(!i)return;Oi(this,Dt,i),oe(this,Dt).preventClick=!0,this.hasAttribute("disabled")||oe(this,Dt).hasAttribute("disabled")?this.disable():(this.enable(),oe(this,Dt).setAttribute("aria-haspopup","listbox"))}),Oi(this,pi,this.shadowRoot.querySelector("slot[name=listbox]")),oe(this,pi).addEventListener("slotchange",()=>{Oi(this,mt,oe(this,pi).assignedElements()[0]||oe(this,mt))})}static get observedAttributes(){return["disabled",ye.MEDIA_CONTROLLER]}enable(){oe(this,Dt).toggleAttribute("disabled",!1),this.addEventListener("change",oe(this,Ro)),this.addEventListener("keydown",oe(this,Io)),this.addEventListener("click",oe(this,ko)),Y.addEventListener("click",oe(this,Lo))}disable(){oe(this,Dt).toggleAttribute("disabled",!0),this.removeEventListener("change",oe(this,Ro)),this.removeEventListener("keydown",oe(this,Io)),this.removeEventListener("keyup",oe(this,Ns)),this.removeEventListener("click",oe(this,ko)),Y.removeEventListener("click",oe(this,Lo))}attributeChangedCallback(e,t,i){var s,n,a,o,l;e===ye.MEDIA_CONTROLLER?(t&&((n=(s=oe(this,Pi))==null?void 0:s.unassociateElement)==null||n.call(s,this),Oi(this,Pi,null),oe(this,mt).removeAttribute(ye.MEDIA_CONTROLLER)),i&&(Oi(this,Pi,(a=this.getRootNode())==null?void 0:a.getElementById(i)),(l=(o=oe(this,Pi))==null?void 0:o.associateElement)==null||l.call(o,this),oe(this,mt).setAttribute(ye.MEDIA_CONTROLLER,i))):e==="disabled"&&i!==t&&(i==null?this.enable():this.disable())}connectedCallback(){var e,t,i;let s=this.getAttribute(ye.MEDIA_CONTROLLER);s&&(Oi(this,Pi,(e=this.getRootNode())==null?void 0:e.getElementById(s)),(i=(t=oe(this,Pi))==null?void 0:t.associateElement)==null||i.call(t,this),oe(this,mt).setAttribute(ye.MEDIA_CONTROLLER,s)),this.hasAttribute("disabled")||this.enable(),oe(this,pi).hidden||Oc(wn(this),oe(this,$r))}disconnectedCallback(){var e,t;Pc(wn(this),oe(this,$r)),this.disable(),(t=(e=oe(this,Pi))==null?void 0:e.unassociateElement)==null||t.call(e,this),Oi(this,Pi,null),oe(this,mt).removeAttribute(ye.MEDIA_CONTROLLER)}get keysUsed(){return["Enter","Escape"," ","ArrowUp","ArrowDown","f","c","k","m"]}};Pi=new WeakMap;Dt=new WeakMap;kn=new WeakMap;mt=new WeakMap;pi=new WeakMap;Ns=new WeakMap;Io=new WeakMap;Lo=new WeakMap;ko=new WeakMap;Ro=new WeakMap;wo=new WeakSet;Nc=function(){oe(this,pi).hidden?Br(this,Fc,Gp).call(this):Br(this,Us,Rn).call(this)};Fc=new WeakSet;Gp=function(){!oe(this,pi).hidden||(oe(this,pi).hidden=!1,oe(this,Dt).setAttribute("aria-expanded","true"),oe(this,$r).call(this),oe(this,mt).focus(),Oc(wn(this),oe(this,$r)))};Us=new WeakSet;Rn=function(){if(oe(this,pi).hidden)return;let r=Ld();oe(this,pi).hidden=!0,oe(this,Dt).setAttribute("aria-expanded","false"),Mr(oe(this,mt),r)&&oe(this,Dt).focus(),Pc(wn(this),oe(this,$r))};$r=new WeakMap;function wn(r){var e;return(e=r.getAttribute("bounds")?or(r,`#${r.getAttribute("bounds")}`):jy(r)||r.parentElement)!=null?e:r}function jy(r){var e;let t=r.getAttribute(ye.MEDIA_CONTROLLER);return t?(e=r.getRootNode())==null?void 0:e.getElementById(t):or(r,"media-controller")}w.customElements.get("media-chrome-selectmenu")||w.customElements.define("media-chrome-selectmenu",ai);var Vc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},zy=(r,e,t)=>(Vc(r,e,"read from private field"),t?t.call(r):e.get(r)),Bc=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Xy=(r,e,t,i)=>(Vc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),$c=(r,e,t)=>(Vc(r,e,"access private method"),t),Co,Hc,qp,Do,Gc,Qy=`
|
|
937
937
|
<svg aria-hidden="true" viewBox="0 0 26 24" part="captions-indicator indicator">
|
|
938
938
|
<path d="M22.83 5.68a2.58 2.58 0 0 0-2.3-2.5c-3.62-.24-11.44-.24-15.06 0a2.58 2.58 0 0 0-2.3 2.5c-.23 4.21-.23 8.43 0 12.64a2.58 2.58 0 0 0 2.3 2.5c3.62.24 11.44.24 15.06 0a2.58 2.58 0 0 0 2.3-2.5c.23-4.21.23-8.43 0-12.64Zm-11.39 9.45a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.92 3.92 0 0 1 .92-2.77 3.18 3.18 0 0 1 2.43-1 2.94 2.94 0 0 1 2.13.78c.364.359.62.813.74 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.17 1.61 1.61 0 0 0-1.29.58 2.79 2.79 0 0 0-.5 1.89 3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.48 1.48 0 0 0 1-.37 2.1 2.1 0 0 0 .59-1.14l1.4.44a3.23 3.23 0 0 1-1.07 1.69Zm7.22 0a3.07 3.07 0 0 1-1.91.57 3.06 3.06 0 0 1-2.34-1 3.75 3.75 0 0 1-.92-2.67 3.88 3.88 0 0 1 .93-2.77 3.14 3.14 0 0 1 2.42-1 3 3 0 0 1 2.16.82 2.8 2.8 0 0 1 .73 1.31l-1.43.35a1.49 1.49 0 0 0-1.51-1.21 1.61 1.61 0 0 0-1.29.58A2.79 2.79 0 0 0 15 12a3 3 0 0 0 .49 1.93 1.61 1.61 0 0 0 1.27.58 1.44 1.44 0 0 0 1-.37 2.1 2.1 0 0 0 .6-1.15l1.4.44a3.17 3.17 0 0 1-1.1 1.7Z"/>
|
|
939
939
|
</svg>`,Yp=Y.createElement("template");Yp.innerHTML=`
|
|
940
940
|
<slot name="captions-indicator" hidden>${Qy}</slot>
|
|
941
|
-
`;var Mo=class extends ni{constructor(){super({slotTemplate:Yp}),Bc(this,
|
|
941
|
+
`;var Mo=class extends ni{constructor(){super({slotTemplate:Yp}),Bc(this,Hc),Bc(this,Do),Bc(this,Co,void 0)}static get observedAttributes(){return[...super.observedAttributes,"aria-multiselectable",S.MEDIA_SUBTITLES_LIST,S.MEDIA_SUBTITLES_SHOWING]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===S.MEDIA_SUBTITLES_LIST&&t!==i?$c(this,Hc,qp).call(this):e===S.MEDIA_SUBTITLES_SHOWING&&t!==i?this.value=i:e==="aria-multiselectable"&&(this.removeAttribute("aria-multiselectable"),console.warn("Captions List doesn't currently support multiple selections. You can enable multiple items via the media.textTrack API."))}connectedCallback(){super.connectedCallback(),this.addEventListener("change",$c(this,Do,Gc))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",$c(this,Do,Gc))}get mediaSubtitlesList(){return Kp(this,S.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(e){Wp(this,S.MEDIA_SUBTITLES_LIST,e)}get mediaSubtitlesShowing(){return Kp(this,S.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(e){Wp(this,S.MEDIA_SUBTITLES_SHOWING,e)}};Co=new WeakMap;Hc=new WeakSet;qp=function(){var r;if(zy(this,Co)===JSON.stringify(this.mediaSubtitlesList))return;Xy(this,Co,JSON.stringify(this.mediaSubtitlesList));let e=this.shadowRoot.querySelector("#container");e.textContent="";let t=!this.value,i=Mi(this.formatOptionText("Off"),"off",t);i.prepend(mi(this,"select-indicator")),e.append(i);let s=this.mediaSubtitlesList;for(let n of s){let a=Mi(this.formatOptionText(n.label,n),$a(n),this.value==$a(n));a.prepend(mi(this,"select-indicator")),((r=n.kind)!=null?r:"subs")==="captions"&&a.append(mi(this,"captions-indicator")),e.append(a)}};Do=new WeakSet;Gc=function(){if(Yi(this,!1),!this.value)return;let r=new w.CustomEvent(re.MEDIA_SHOW_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(r)};var Kp=(r,e)=>{let t=r.getAttribute(e);return t?pn(t):[]},Wp=(r,e,t)=>{if(!(t!=null&&t.length)){r.removeAttribute(e);return}let i=Pr(t);r.getAttribute(e)!==i&&r.setAttribute(e,i)};w.customElements.get("media-captions-listbox")||w.customElements.define("media-captions-listbox",Mo);var Oo=class extends ai{init(){let e=Y.createElement("media-captions-button");e.part.add("button"),e.preventClick=!0;let t=Y.createElement("media-captions-listbox");t.part.add("listbox"),t.setAttribute("exportparts","option, option-selected, indicator");let i=this.shadowRoot.querySelector("slot[name=button]"),s=this.shadowRoot.querySelector("slot[name=listbox]");i.textContent="",s.textContent="",i.append(e),s.append(t)}};w.customElements.get("media-captions-selectmenu")||w.customElements.define("media-captions-selectmenu",Oo);var jp=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Po=(r,e,t)=>(jp(r,e,"read from private field"),t?t.call(r):e.get(r)),Kc=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Dn=(r,e,t)=>(jp(r,e,"access private method"),t),Fs,Cn,No,Uo,qc,Wc={RATES:"rates"},Fo=class extends ni{constructor(){super(),Kc(this,Cn),Kc(this,Uo),Kc(this,Fs,new cr(this,Wc.RATES,{defaultValue:sc})),Dn(this,Cn,No).call(this)}static get observedAttributes(){return[...super.observedAttributes,"aria-multiselectable",S.MEDIA_PLAYBACK_RATE,Wc.RATES]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===S.MEDIA_PLAYBACK_RATE&&t!=i?this.value=i:e===Wc.RATES&&t!=i&&(Po(this,Fs).value=i,Dn(this,Cn,No).call(this))}get rates(){return Po(this,Fs)}set rates(e){e?Array.isArray(e)&&(Po(this,Fs).value=e.join(" ")):Po(this,Fs).value="",Dn(this,Cn,No).call(this)}get mediaPlaybackRate(){return Fe(this,S.MEDIA_PLAYBACK_RATE,ks)}set mediaPlaybackRate(e){ze(this,S.MEDIA_PLAYBACK_RATE,e)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",Dn(this,Uo,qc))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",Dn(this,Uo,qc))}};Fs=new WeakMap;Cn=new WeakSet;No=function(){let r=this.shadowRoot.querySelector("#container");r.textContent="";for(let e of this.rates){let t=Mi(this.formatOptionText(`${e}x`,e),e,this.mediaPlaybackRate==e);t.prepend(mi(this,"select-indicator")),r.append(t)}};Uo=new WeakSet;qc=function(){if(!this.value)return;let r=new w.CustomEvent(re.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(r)};w.customElements.get("media-playback-rate-listbox")||w.customElements.define("media-playback-rate-listbox",Fo);var Bo=class extends ai{init(){let e=Y.createElement("media-playback-rate-button");e.part.add("button"),e.preventClick=!0;let t=Y.createElement("media-playback-rate-listbox");t.part.add("listbox"),t.setAttribute("exportparts","option, option-selected, indicator");let i=this.shadowRoot.querySelector("slot[name=button]"),s=this.shadowRoot.querySelector("slot[name=listbox]");i.textContent="",s.textContent="",i.append(e),s.append(t)}};w.customElements.get("media-playback-rate-selectmenu")||w.customElements.define("media-playback-rate-selectmenu",Bo);var Xc=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},zp=(r,e,t)=>(Xc(r,e,"read from private field"),t?t.call(r):e.get(r)),$o=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Yc=(r,e,t,i)=>(Xc(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),Ho=(r,e,t)=>(Xc(r,e,"access private method"),t),Mn,Ko,Go,jc,Vo,zc,Wo=class extends ni{constructor(){super(...arguments),$o(this,Go),$o(this,Vo),$o(this,Mn,[]),$o(this,Ko,void 0)}static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_RENDITION_LIST,S.MEDIA_RENDITION_SELECTED]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===S.MEDIA_RENDITION_SELECTED&&t!==i?this.value=i!=null?i:"auto":e===S.MEDIA_RENDITION_LIST&&t!==i&&(Yc(this,Mn,hm(i)),Ho(this,Go,jc).call(this))}connectedCallback(){super.connectedCallback(),this.addEventListener("change",Ho(this,Vo,zc))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",Ho(this,Vo,zc))}get mediaRenditionList(){return zp(this,Mn)}set mediaRenditionList(e){Yc(this,Mn,e),Ho(this,Go,jc).call(this)}get mediaRenditionSelected(){return We(this,S.MEDIA_RENDITION_SELECTED)}set mediaRenditionSelected(e){Be(this,S.MEDIA_RENDITION_SELECTED,e)}};Mn=new WeakMap;Ko=new WeakMap;Go=new WeakSet;jc=function(){if(zp(this,Ko)===JSON.stringify(this.mediaRenditionList))return;Yc(this,Ko,JSON.stringify(this.mediaRenditionList));let r=this.mediaRenditionList.sort((s,n)=>n.height-s.height),e=this.shadowRoot.querySelector("#container");e.textContent="";let t=!this.mediaRenditionSelected;for(let s of r){let n=this.formatOptionText(`${Math.min(s.width,s.height)}p`,s),a=Mi(n,`${s.id}`,s.selected&&!t);a.prepend(mi(this,"select-indicator")),e.append(a)}let i=Mi(this.formatOptionText("Auto"),"auto",t);i.prepend(mi(this,"select-indicator")),e.append(i)};Vo=new WeakSet;zc=function(){if(this.value==null)return;let r=new w.CustomEvent(re.MEDIA_RENDITION_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(r)};w.customElements.get("media-rendition-listbox")||w.customElements.define("media-rendition-listbox",Wo);var Zy=`<svg aria-hidden="true" viewBox="0 0 24 24">
|
|
942
942
|
<path d="M13.5 2.5h2v6h-2v-2h-11v-2h11v-2Zm4 2h4v2h-4v-2Zm-12 4h2v6h-2v-2h-3v-2h3v-2Zm4 2h12v2h-12v-2Zm1 4h2v6h-2v-2h-8v-2h8v-2Zm4 2h7v2h-7v-2Z" />
|
|
943
943
|
</svg>`,Xp=Y.createElement("template");Xp.innerHTML=`
|
|
944
944
|
<slot name="icon">${Zy}</slot>
|
|
@@ -947,34 +947,34 @@ svg, img, ::slotted(svg), ::slotted(img) {
|
|
|
947
947
|
<path d="M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Zm-2 0a8 8 0 1 0-16 0 8 8 0 0 0 16 0Z"/>
|
|
948
948
|
</svg>`,Zp=Y.createElement("template");Zp.innerHTML=`
|
|
949
949
|
<slot name="icon">${Jy}</slot>
|
|
950
|
-
`;var iu=class extends $e{static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_AUDIO_TRACK_ENABLED,S.MEDIA_AUDIO_TRACK_UNAVAILABLE]}constructor(){super({slotTemplate:Zp})}get mediaAudioTrackEnabled(){return We(this,S.MEDIA_AUDIO_TRACK_ENABLED)}set mediaAudioTrackEnabled(e){Be(this,S.MEDIA_AUDIO_TRACK_ENABLED,e)}};w.customElements.get("media-audio-track-button")||w.customElements.define("media-audio-track-button",iu);var Jo=class extends ai{static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_AUDIO_TRACK_ENABLED,S.MEDIA_AUDIO_TRACK_UNAVAILABLE]}init(){let e=Y.createElement("media-audio-track-button");e.part.add("button"),e.preventClick=!0;let t=Y.createElement("media-audio-track-listbox");t.part.add("listbox"),t.setAttribute("exportparts","option, option-selected, indicator");let i=this.shadowRoot.querySelector("slot[name=button]"),s=this.shadowRoot.querySelector("slot[name=listbox]");i.textContent="",s.textContent="",i.append(e),s.append(t)}};w.customElements.get("media-audio-track-selectmenu")||w.customElements.define("media-audio-track-selectmenu",Jo);var Ol=bb(Jp(),1);function eT(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var $g={exports:{}};(function(r,e){(function(t){var i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,s=/^(?=([^\/?#]*))\1([^]*)$/,n=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(l,d,c){if(c=c||{},l=l.trim(),d=d.trim(),!d){if(!c.alwaysNormalize)return l;var u=o.parseURL(l);if(!u)throw new Error("Error trying to parse base URL.");return u.path=o.normalizePath(u.path),o.buildURLFromParts(u)}var h=o.parseURL(d);if(!h)throw new Error("Error trying to parse relative URL.");if(h.scheme)return c.alwaysNormalize?(h.path=o.normalizePath(h.path),o.buildURLFromParts(h)):d;var f=o.parseURL(l);if(!f)throw new Error("Error trying to parse base URL.");if(!f.netLoc&&f.path&&f.path[0]!=="/"){var g=s.exec(f.path);f.netLoc=g[1],f.path=g[2]}f.netLoc&&!f.path&&(f.path="/");var E={scheme:f.scheme,netLoc:h.netLoc,path:null,params:h.params,query:h.query,fragment:h.fragment};if(!h.netLoc&&(E.netLoc=f.netLoc,h.path[0]!=="/"))if(!h.path)E.path=f.path,h.params||(E.params=f.params,h.query||(E.query=f.query));else{var T=f.path,A=T.substring(0,T.lastIndexOf("/")+1)+h.path;E.path=o.normalizePath(A)}return E.path===null&&(E.path=c.alwaysNormalize?o.normalizePath(h.path):h.path),o.buildURLFromParts(E)},parseURL:function(l){var d=i.exec(l);return d?{scheme:d[1]||"",netLoc:d[2]||"",path:d[3]||"",params:d[4]||"",query:d[5]||"",fragment:d[6]||""}:null},normalizePath:function(l){for(l=l.split("").reverse().join("").replace(n,"");l.length!==(l=l.replace(a,"")).length;);return l.split("").reverse().join("")},buildURLFromParts:function(l){return l.scheme+l.netLoc+l.path+l.params+l.query+l.fragment}};r.exports=o})()})($g);var Ah=$g.exports;function eg(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(r,s).enumerable})),t.push.apply(t,i)}return t}function jt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?eg(Object(t),!0).forEach(function(i){tT(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):eg(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function tT(r,e,t){return e=rT(e),e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function pt(){return pt=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},pt.apply(this,arguments)}function iT(r,e){if(typeof r!="object"||r===null)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var i=t.call(r,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function rT(r){var e=iT(r,"string");return typeof e=="symbol"?e:String(e)}var ce=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},b=function(r){return r.MEDIA_ATTACHING="hlsMediaAttaching",r.MEDIA_ATTACHED="hlsMediaAttached",r.MEDIA_DETACHING="hlsMediaDetaching",r.MEDIA_DETACHED="hlsMediaDetached",r.BUFFER_RESET="hlsBufferReset",r.BUFFER_CODECS="hlsBufferCodecs",r.BUFFER_CREATED="hlsBufferCreated",r.BUFFER_APPENDING="hlsBufferAppending",r.BUFFER_APPENDED="hlsBufferAppended",r.BUFFER_EOS="hlsBufferEos",r.BUFFER_FLUSHING="hlsBufferFlushing",r.BUFFER_FLUSHED="hlsBufferFlushed",r.MANIFEST_LOADING="hlsManifestLoading",r.MANIFEST_LOADED="hlsManifestLoaded",r.MANIFEST_PARSED="hlsManifestParsed",r.LEVEL_SWITCHING="hlsLevelSwitching",r.LEVEL_SWITCHED="hlsLevelSwitched",r.LEVEL_LOADING="hlsLevelLoading",r.LEVEL_LOADED="hlsLevelLoaded",r.LEVEL_UPDATED="hlsLevelUpdated",r.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",r.LEVELS_UPDATED="hlsLevelsUpdated",r.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",r.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",r.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",r.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",r.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",r.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",r.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",r.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",r.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",r.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",r.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",r.CUES_PARSED="hlsCuesParsed",r.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",r.INIT_PTS_FOUND="hlsInitPtsFound",r.FRAG_LOADING="hlsFragLoading",r.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",r.FRAG_LOADED="hlsFragLoaded",r.FRAG_DECRYPTED="hlsFragDecrypted",r.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",r.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",r.FRAG_PARSING_METADATA="hlsFragParsingMetadata",r.FRAG_PARSED="hlsFragParsed",r.FRAG_BUFFERED="hlsFragBuffered",r.FRAG_CHANGED="hlsFragChanged",r.FPS_DROP="hlsFpsDrop",r.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",r.ERROR="hlsError",r.DESTROYING="hlsDestroying",r.KEY_LOADING="hlsKeyLoading",r.KEY_LOADED="hlsKeyLoaded",r.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",r.BACK_BUFFER_REACHED="hlsBackBufferReached",r}({}),pe=function(r){return r.NETWORK_ERROR="networkError",r.MEDIA_ERROR="mediaError",r.KEY_SYSTEM_ERROR="keySystemError",r.MUX_ERROR="muxError",r.OTHER_ERROR="otherError",r}({}),B=function(r){return r.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",r.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",r.KEY_SYSTEM_NO_SESSION="keySystemNoSession",r.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",r.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",r.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",r.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",r.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",r.MANIFEST_LOAD_ERROR="manifestLoadError",r.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",r.MANIFEST_PARSING_ERROR="manifestParsingError",r.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",r.LEVEL_EMPTY_ERROR="levelEmptyError",r.LEVEL_LOAD_ERROR="levelLoadError",r.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",r.LEVEL_PARSING_ERROR="levelParsingError",r.LEVEL_SWITCH_ERROR="levelSwitchError",r.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",r.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",r.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",r.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",r.FRAG_LOAD_ERROR="fragLoadError",r.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",r.FRAG_DECRYPT_ERROR="fragDecryptError",r.FRAG_PARSING_ERROR="fragParsingError",r.FRAG_GAP="fragGap",r.REMUX_ALLOC_ERROR="remuxAllocError",r.KEY_LOAD_ERROR="keyLoadError",r.KEY_LOAD_TIMEOUT="keyLoadTimeOut",r.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",r.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",r.BUFFER_APPEND_ERROR="bufferAppendError",r.BUFFER_APPENDING_ERROR="bufferAppendingError",r.BUFFER_STALLED_ERROR="bufferStalledError",r.BUFFER_FULL_ERROR="bufferFullError",r.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",r.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",r.INTERNAL_EXCEPTION="internalException",r.INTERNAL_ABORTED="aborted",r.UNKNOWN="unknown",r}({}),Hr=function(){},Su={trace:Hr,debug:Hr,log:Hr,warn:Hr,info:Hr,error:Hr},Un=Su;function sT(r){let e=self.console[r];return e?e.bind(self.console,`[${r}] >`):Hr}function nT(r,...e){e.forEach(function(t){Un[t]=r[t]?r[t].bind(r):sT(t)})}function aT(r,e){if(self.console&&r===!0||typeof r=="object"){nT(r,"debug","log","info","warn","error");try{Un.log(`Debug logs enabled for "${e}" in hls.js version 1.4.10`)}catch{Un=Su}}else Un=Su}var M=Un,oT=/^(\d+)x(\d+)$/,tg=/(.+?)=(".*?"|.*?)(?:,|$)/g,Ze=class{constructor(e){typeof e=="string"&&(e=Ze.parseAttrList(e));for(let t in e)e.hasOwnProperty(t)&&(t.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(t)),this[t]=e[t])}decimalInteger(e){let t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t}hexadecimalInteger(e){if(this[e]){let t=(this[e]||"0x").slice(2);t=(t.length&1?"0":"")+t;let i=new Uint8Array(t.length/2);for(let s=0;s<t.length/2;s++)i[s]=parseInt(t.slice(s*2,s*2+2),16);return i}else return null}hexadecimalIntegerAsNumber(e){let t=parseInt(this[e],16);return t>Number.MAX_SAFE_INTEGER?1/0:t}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,t){let i=this[e];return i?parseFloat(i):t}enumeratedString(e){return this[e]}bool(e){return this[e]==="YES"}decimalResolution(e){let t=oT.exec(this[e]);if(t!==null)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}}static parseAttrList(e){let t,i={},s='"';for(tg.lastIndex=0;(t=tg.exec(e))!==null;){let n=t[2];n.indexOf(s)===0&&n.lastIndexOf(s)===n.length-1&&(n=n.slice(1,-1));let a=t[1].trim();i[a]=n}return i}};function lT(r){return r!=="ID"&&r!=="CLASS"&&r!=="START-DATE"&&r!=="DURATION"&&r!=="END-DATE"&&r!=="END-ON-NEXT"}function dT(r){return r==="SCTE35-OUT"||r==="SCTE35-IN"}var ul=class{constructor(e,t){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,t){let i=t.attr;for(let s in i)if(Object.prototype.hasOwnProperty.call(e,s)&&e[s]!==i[s]){M.warn(`DATERANGE tag attribute: "${s}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=s;break}e=pt(new Ze({}),i,e)}if(this.attr=e,this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);ce(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let e=this.duration;return e!==null?new Date(this._startDate.getTime()+e*1e3):null}get duration(){if("DURATION"in this.attr){let e=this.attr.decimalFloatingPoint("DURATION");if(ce(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&ce(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}},Ks=class{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}},qe={AUDIO:"audio",VIDEO:"video",AUDIOVIDEO:"audiovideo"},hl=class{constructor(e){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[qe.AUDIO]:null,[qe.VIDEO]:null,[qe.AUDIOVIDEO]:null},this.baseurl=e}setByteRange(e,t){let i=e.split("@",2),s=[];i.length===1?s[0]=t?t.byteRangeEndOffset:0:s[0]=parseInt(i[1]),s[1]=parseInt(i[0])+s[0],this._byteRange=s}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=Ah.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(e){this._url=e}},Fn=class extends hl{constructor(e,t){super(t),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new Ks,this.urlId=0,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.type=e}get decryptdata(){let{levelkeys:e}=this;if(!e&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let t=this.levelkeys.identity;if(t)this._decryptdata=t.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null||!ce(this.programDateTime))return null;let e=ce(this.duration)?this.duration:0;return this.programDateTime+e*1e3}get encrypted(){var e;if((e=this._decryptdata)!=null&&e.encrypted)return!0;if(this.levelkeys){let t=Object.keys(this.levelkeys),i=t.length;if(i>1||i===1&&this.levelkeys[t[0]].encrypted)return!0}return!1}setKeyFormat(e){if(this.levelkeys){let t=this.levelkeys[e];t&&!this._decryptdata&&(this._decryptdata=t.getDecryptData(this.sn))}}abortRequests(){var e,t;(e=this.loader)==null||e.abort(),(t=this.keyLoader)==null||t.abort()}setElementaryStreamInfo(e,t,i,s,n,a=!1){let{elementaryStreams:o}=this,l=o[e];if(!l){o[e]={startPTS:t,endPTS:i,startDTS:s,endDTS:n,partial:a};return}l.startPTS=Math.min(l.startPTS,t),l.endPTS=Math.max(l.endPTS,i),l.startDTS=Math.min(l.startDTS,s),l.endDTS=Math.max(l.endDTS,n)}clearElementaryStreamInfo(){let{elementaryStreams:e}=this;e[qe.AUDIO]=null,e[qe.VIDEO]=null,e[qe.AUDIOVIDEO]=null}},xu=class extends hl{constructor(e,t,i,s,n){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new Ks,this.duration=e.decimalFloatingPoint("DURATION"),this.gap=e.bool("GAP"),this.independent=e.bool("INDEPENDENT"),this.relurl=e.enumeratedString("URI"),this.fragment=t,this.index=s;let a=e.enumeratedString("BYTERANGE");a&&this.setByteRange(a,n),n&&(this.fragOffset=n.fragOffset+n.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:e}=this;return!!(e.audio||e.video||e.audiovideo)}},cT=10,Iu=class{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){if(!e){this.advanced=!0,this.updated=!0;return}let t=this.lastPartSn-e.lastPartSn,i=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!i||!!t,this.advanced=this.endSN>e.endSN||t>0||t===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(e.misses*.6):this.misses=e.misses+1,this.availabilityDelay=e.availabilityDelay}get hasProgramDateTime(){return this.fragments.length?ce(this.fragments[this.fragments.length-1].programDateTime):!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||cT}get drift(){let e=this.driftEndTime-this.driftStartTime;return e>0?(this.driftEnd-this.driftStart)*1e3/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var e;return(e=this.fragments)!=null&&e.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}};function Sh(r){return Uint8Array.from(atob(r),e=>e.charCodeAt(0))}function uT(r){let e=Gg(r).subarray(0,16),t=new Uint8Array(16);return t.set(e,16-e.length),t}function hT(r){let e=function(i,s,n){let a=i[s];i[s]=i[n],i[n]=a};e(r,0,3),e(r,1,2),e(r,4,5),e(r,6,7)}function fT(r){let e=r.split(":"),t=null;if(e[0]==="data"&&e.length===2){let i=e[1].split(";"),s=i[i.length-1].split(",");if(s.length===2){let n=s[0]==="base64",a=s[1];n?(i.splice(-1,1),t=Sh(a)):t=uT(a)}}return t}function Gg(r){return Uint8Array.from(unescape(encodeURIComponent(r)),e=>e.charCodeAt(0))}var st={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Yt={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function ig(r){switch(r){case Yt.FAIRPLAY:return st.FAIRPLAY;case Yt.PLAYREADY:return st.PLAYREADY;case Yt.WIDEVINE:return st.WIDEVINE;case Yt.CLEARKEY:return st.CLEARKEY}}var Hg={WIDEVINE:"edef8ba979d64acea3c827dcd51d21ed"};function mT(r){if(r===Hg.WIDEVINE)return st.WIDEVINE}function rg(r){switch(r){case st.FAIRPLAY:return Yt.FAIRPLAY;case st.PLAYREADY:return Yt.PLAYREADY;case st.WIDEVINE:return Yt.WIDEVINE;case st.CLEARKEY:return Yt.CLEARKEY}}function su(r){let{drmSystems:e,widevineLicenseUrl:t}=r,i=e?[st.FAIRPLAY,st.WIDEVINE,st.PLAYREADY,st.CLEARKEY].filter(s=>!!e[s]):[];return!i[st.WIDEVINE]&&t&&i.push(st.WIDEVINE),i}var Vg=function(){return typeof self!="undefined"&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null}();function pT(r,e,t,i){let s;switch(r){case st.FAIRPLAY:s=["cenc","sinf"];break;case st.WIDEVINE:case st.PLAYREADY:s=["cenc"];break;case st.CLEARKEY:s=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${r}`)}return gT(s,e,t,i)}function gT(r,e,t,i){return[{initDataTypes:r,persistentState:i.persistentState||"not-allowed",distinctiveIdentifier:i.distinctiveIdentifier||"not-allowed",sessionTypes:i.sessionTypes||[i.sessionType||"temporary"],audioCapabilities:e.map(n=>({contentType:`audio/mp4; codecs="${n}"`,robustness:i.audioRobustness||"",encryptionScheme:i.audioEncryptionScheme||null})),videoCapabilities:t.map(n=>({contentType:`video/mp4; codecs="${n}"`,robustness:i.videoRobustness||"",encryptionScheme:i.videoEncryptionScheme||null}))}]}function Vr(r,e,t){return Uint8Array.prototype.slice?r.slice(e,t):new Uint8Array(Array.prototype.slice.call(r,e,t))}var xh=(r,e)=>e+10<=r.length&&r[e]===73&&r[e+1]===68&&r[e+2]===51&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128,Kg=(r,e)=>e+10<=r.length&&r[e]===51&&r[e+1]===68&&r[e+2]===73&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128,fl=(r,e)=>{let t=e,i=0;for(;xh(r,e);){i+=10;let s=Cl(r,e+6);i+=s,Kg(r,e+10)&&(i+=10),e+=i}if(i>0)return r.subarray(t,t+i)},Cl=(r,e)=>{let t=0;return t=(r[e]&127)<<21,t|=(r[e+1]&127)<<14,t|=(r[e+2]&127)<<7,t|=r[e+3]&127,t},vT=(r,e)=>xh(r,e)&&Cl(r,e+6)+10<=r.length-e,ET=r=>{let e=qg(r);for(let t=0;t<e.length;t++){let i=e[t];if(Wg(i))return ST(i)}},Wg=r=>r&&r.key==="PRIV"&&r.info==="com.apple.streaming.transportStreamTimestamp",bT=r=>{let e=String.fromCharCode(r[0],r[1],r[2],r[3]),t=Cl(r,4),i=10;return{type:e,size:t,data:r.subarray(i,i+t)}},qg=r=>{let e=0,t=[];for(;xh(r,e);){let i=Cl(r,e+6);e+=10;let s=e+i;for(;e+8<s;){let n=bT(r.subarray(e)),a=yT(n);a&&t.push(a),e+=n.size+10}Kg(r,e)&&(e+=10)}return t},yT=r=>r.type==="PRIV"?TT(r):r.type[0]==="W"?AT(r):_T(r),TT=r=>{if(r.size<2)return;let e=Gi(r.data,!0),t=new Uint8Array(r.data.subarray(e.length+1));return{key:r.type,info:e,data:t.buffer}},_T=r=>{if(r.size<2)return;if(r.type==="TXXX"){let t=1,i=Gi(r.data.subarray(t),!0);t+=i.length+1;let s=Gi(r.data.subarray(t));return{key:r.type,info:i,data:s}}let e=Gi(r.data.subarray(1));return{key:r.type,data:e}},AT=r=>{if(r.type==="WXXX"){if(r.size<2)return;let t=1,i=Gi(r.data.subarray(t),!0);t+=i.length+1;let s=Gi(r.data.subarray(t));return{key:r.type,info:i,data:s}}let e=Gi(r.data);return{key:r.type,data:e}},ST=r=>{if(r.data.byteLength===8){let e=new Uint8Array(r.data),t=e[3]&1,i=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return i/=45,t&&(i+=4772185884e-2),Math.round(i)}},Gi=(r,e=!1)=>{let t=xT();if(t){let d=t.decode(r);if(e){let c=d.indexOf("\0");return c!==-1?d.substring(0,c):d}return d.replace(/\0/g,"")}let i=r.length,s,n,a,o="",l=0;for(;l<i;){if(s=r[l++],s===0&&e)return o;if(s===0||s===3)continue;switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(s);break;case 12:case 13:n=r[l++],o+=String.fromCharCode((s&31)<<6|n&63);break;case 14:n=r[l++],a=r[l++],o+=String.fromCharCode((s&15)<<12|(n&63)<<6|(a&63)<<0);break}}return o},nu;function xT(){return!nu&&typeof self.TextDecoder!="undefined"&&(nu=new self.TextDecoder("utf-8")),nu}var Ni={hexDump:function(r){let e="";for(let t=0;t<r.length;t++){let i=r[t].toString(16);i.length<2&&(i="0"+i),e+=i}return e}},ml=Math.pow(2,32)-1,IT=[].push,Yg={video:1,audio:2,id3:3,text:4};function Lt(r){return String.fromCharCode.apply(null,r)}function jg(r,e){let t=r[e]<<8|r[e+1];return t<0?65536+t:t}function Te(r,e){let t=zg(r,e);return t<0?4294967296+t:t}function zg(r,e){return r[e]<<24|r[e+1]<<16|r[e+2]<<8|r[e+3]}function au(r,e,t){r[e]=t>>24,r[e+1]=t>>16&255,r[e+2]=t>>8&255,r[e+3]=t&255}function Pe(r,e){let t=[];if(!e.length)return t;let i=r.byteLength;for(let s=0;s<i;){let n=Te(r,s),a=Lt(r.subarray(s+4,s+8)),o=n>1?s+n:i;if(a===e[0])if(e.length===1)t.push(r.subarray(s+8,o));else{let l=Pe(r.subarray(s+8,o),e.slice(1));l.length&&IT.apply(t,l)}s=o}return t}function LT(r){let e=[],t=r[0],i=8,s=Te(r,i);i+=4;let n=0,a=0;t===0?i+=8:i+=16,i+=2;let o=r.length+a,l=jg(r,i);i+=2;for(let d=0;d<l;d++){let c=i,u=Te(r,c);c+=4;let h=u&2147483647;if((u&2147483648)>>>31===1)return M.warn("SIDX has hierarchical references (not supported)"),null;let g=Te(r,c);c+=4,e.push({referenceSize:h,subsegmentDuration:g,info:{duration:g/s,start:o,end:o+h-1}}),o+=h,c+=4,i=c}return{earliestPresentationTime:n,timescale:s,version:t,referencesCount:l,references:e}}function Xg(r){let e=[],t=Pe(r,["moov","trak"]);for(let s=0;s<t.length;s++){let n=t[s],a=Pe(n,["tkhd"])[0];if(a){let o=a[0],l=o===0?12:20,d=Te(a,l),c=Pe(n,["mdia","mdhd"])[0];if(c){o=c[0],l=o===0?12:20;let u=Te(c,l),h=Pe(n,["mdia","hdlr"])[0];if(h){let f=Lt(h.subarray(8,12)),g={soun:qe.AUDIO,vide:qe.VIDEO}[f];if(g){let E=Pe(n,["mdia","minf","stbl","stsd"])[0],T;E&&(T=Lt(E.subarray(12,16))),e[d]={timescale:u,type:g},e[g]={timescale:u,id:d,codec:T}}}}}}return Pe(r,["moov","mvex","trex"]).forEach(s=>{let n=Te(s,4),a=e[n];a&&(a.default={duration:Te(s,12),flags:Te(s,20)})}),e}function kT(r,e){if(!r||!e)return r;let t=e.keyId;return t&&e.isCommonEncryption&&Pe(r,["moov","trak"]).forEach(s=>{let a=Pe(s,["mdia","minf","stbl","stsd"])[0].subarray(8),o=Pe(a,["enca"]),l=o.length>0;l||(o=Pe(a,["encv"])),o.forEach(d=>{let c=l?d.subarray(28):d.subarray(78);Pe(c,["sinf"]).forEach(h=>{let f=Qg(h);if(f){let g=f.subarray(8,24);g.some(E=>E!==0)||(M.log(`[eme] Patching keyId in 'enc${l?"a":"v"}>sinf>>tenc' box: ${Ni.hexDump(g)} -> ${Ni.hexDump(t)}`),f.set(t,8))}})})}),r}function Qg(r){let e=Pe(r,["schm"])[0];if(e){let t=Lt(e.subarray(4,8));if(t==="cbcs"||t==="cenc")return Pe(r,["schi","tenc"])[0]}return M.error("[eme] missing 'schm' box"),null}function RT(r,e){return Pe(e,["moof","traf"]).reduce((t,i)=>{let s=Pe(i,["tfdt"])[0],n=s[0],a=Pe(i,["tfhd"]).reduce((o,l)=>{let d=Te(l,4),c=r[d];if(c){let u=Te(s,4);if(n===1){if(u===ml)return M.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),o;u*=ml+1,u+=Te(s,8)}let h=c.timescale||9e4,f=u/h;if(isFinite(f)&&(o===null||f<o))return f}return o},null);return a!==null&&isFinite(a)&&(t===null||a<t)?a:t},null)}function wT(r,e){let t=0,i=0,s=0,n=Pe(r,["moof","traf"]);for(let a=0;a<n.length;a++){let o=n[a],l=Pe(o,["tfhd"])[0],d=Te(l,4),c=e[d];if(!c)continue;let u=c.default,h=Te(l,0)|(u==null?void 0:u.flags),f=u==null?void 0:u.duration;h&8&&(h&2?f=Te(l,12):f=Te(l,8));let g=c.timescale||9e4,E=Pe(o,["trun"]);for(let T=0;T<E.length;T++){if(t=DT(E[T]),!t&&f){let A=Te(E[T],4);t=f*A}c.type===qe.VIDEO?i+=t/g:c.type===qe.AUDIO&&(s+=t/g)}}if(i===0&&s===0){let a=0,o=Pe(r,["sidx"]);for(let l=0;l<o.length;l++){let d=LT(o[l]);d!=null&&d.references&&(a+=d.references.reduce((c,u)=>c+u.info.duration||0,0))}return a}return i||s}function DT(r){let e=Te(r,0),t=8;e&1&&(t+=4),e&4&&(t+=4);let i=0,s=Te(r,4);for(let n=0;n<s;n++){if(e&256){let a=Te(r,t);i+=a,t+=4}e&512&&(t+=4),e&1024&&(t+=4),e&2048&&(t+=4)}return i}function CT(r,e,t){Pe(e,["moof","traf"]).forEach(i=>{Pe(i,["tfhd"]).forEach(s=>{let n=Te(s,4),a=r[n];if(!a)return;let o=a.timescale||9e4;Pe(i,["tfdt"]).forEach(l=>{let d=l[0],c=Te(l,4);if(d===0)c-=t*o,c=Math.max(c,0),au(l,4,c);else{c*=Math.pow(2,32),c+=Te(l,8),c-=t*o,c=Math.max(c,0);let u=Math.floor(c/(ml+1)),h=Math.floor(c%(ml+1));au(l,4,u),au(l,8,h)}})})})}function MT(r){let e={valid:null,remainder:null},t=Pe(r,["moof"]);if(t){if(t.length<2)return e.remainder=r,e}else return e;let i=t[t.length-1];return e.valid=Vr(r,0,i.byteOffset-8),e.remainder=Vr(r,i.byteOffset-8),e}function Kr(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r),t.set(e,r.length),t}function sg(r,e){let t=[],i=e.samples,s=e.timescale,n=e.id,a=!1;return Pe(i,["moof"]).map(l=>{let d=l.byteOffset-8;Pe(l,["traf"]).map(u=>{let h=Pe(u,["tfdt"]).map(f=>{let g=f[0],E=Te(f,4);return g===1&&(E*=Math.pow(2,32),E+=Te(f,8)),E/s})[0];return h!==void 0&&(r=h),Pe(u,["tfhd"]).map(f=>{let g=Te(f,4),E=Te(f,0)&16777215,T=(E&1)!==0,A=(E&2)!==0,k=(E&8)!==0,L=0,N=(E&16)!==0,D=0,$=(E&32)!==0,O=8;g===n&&(T&&(O+=8),A&&(O+=4),k&&(L=Te(f,O),O+=4),N&&(D=Te(f,O),O+=4),$&&(O+=4),e.type==="video"&&(a=OT(e.codec)),Pe(u,["trun"]).map(H=>{let q=H[0],P=Te(H,0)&16777215,X=(P&1)!==0,z=0,Ae=(P&4)!==0,Ee=(P&256)!==0,be=0,we=(P&512)!==0,Se=0,Z=(P&1024)!==0,ne=(P&2048)!==0,se=0,xe=Te(H,4),Ie=8;X&&(z=Te(H,Ie),Ie+=4),Ae&&(Ie+=4);let Ve=z+d;for(let ht=0;ht<xe;ht++){if(Ee?(be=Te(H,Ie),Ie+=4):be=L,we?(Se=Te(H,Ie),Ie+=4):Se=D,Z&&(Ie+=4),ne&&(q===0?se=Te(H,Ie):se=zg(H,Ie),Ie+=4),e.type===qe.VIDEO){let V=0;for(;V<Se;){let J=Te(i,Ve);if(Ve+=4,PT(a,i[Ve])){let ke=i.subarray(Ve,Ve+J);Zg(ke,a?2:1,r+se/s,t)}Ve+=J,V+=J+4}}r+=be/s}}))})})}),t}function OT(r){if(!r)return!1;let e=r.indexOf("."),t=e<0?r:r.substring(0,e);return t==="hvc1"||t==="hev1"||t==="dvh1"||t==="dvhe"}function PT(r,e){if(r){let t=e>>1&63;return t===39||t===40}else return(e&31)===6}function Zg(r,e,t,i){let s=Jg(r),n=0;n+=e;let a=0,o=0,l=!1,d=0;for(;n<s.length;){a=0;do{if(n>=s.length)break;d=s[n++],a+=d}while(d===255);o=0;do{if(n>=s.length)break;d=s[n++],o+=d}while(d===255);let c=s.length-n;if(!l&&a===4&&n<s.length){if(l=!0,s[n++]===181){let h=jg(s,n);if(n+=2,h===49){let f=Te(s,n);if(n+=4,f===1195456820){let g=s[n++];if(g===3){let E=s[n++],T=31&E,A=64&E,k=A?2+T*3:0,L=new Uint8Array(k);if(A){L[0]=E;for(let N=1;N<k;N++)L[N]=s[n++]}i.push({type:g,payloadType:a,pts:t,bytes:L})}}}}}else if(a===5&&o<c){if(l=!0,o>16){let u=[];for(let g=0;g<16;g++){let E=s[n++].toString(16);u.push(E.length==1?"0"+E:E),(g===3||g===5||g===7||g===9)&&u.push("-")}let h=o-16,f=new Uint8Array(h);for(let g=0;g<h;g++)f[g]=s[n++];i.push({payloadType:a,pts:t,uuid:u.join(""),userData:Gi(f),userDataBytes:f})}}else if(o<c)n+=o;else if(o>c)break}}function Jg(r){let e=r.byteLength,t=[],i=1;for(;i<e-2;)r[i]===0&&r[i+1]===0&&r[i+2]===3?(t.push(i+2),i+=2):i++;if(t.length===0)return r;let s=e-t.length,n=new Uint8Array(s),a=0;for(i=0;i<s;a++,i++)a===t[0]&&(a++,t.shift()),n[i]=r[a];return n}function NT(r){let e=r[0],t="",i="",s=0,n=0,a=0,o=0,l=0,d=0;if(e===0){for(;Lt(r.subarray(d,d+1))!=="\0";)t+=Lt(r.subarray(d,d+1)),d+=1;for(t+=Lt(r.subarray(d,d+1)),d+=1;Lt(r.subarray(d,d+1))!=="\0";)i+=Lt(r.subarray(d,d+1)),d+=1;i+=Lt(r.subarray(d,d+1)),d+=1,s=Te(r,12),n=Te(r,16),o=Te(r,20),l=Te(r,24),d=28}else if(e===1){d+=4,s=Te(r,d),d+=4;let u=Te(r,d);d+=4;let h=Te(r,d);for(d+=4,a=2**32*u+h,Number.isSafeInteger(a)||(a=Number.MAX_SAFE_INTEGER,M.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=Te(r,d),d+=4,l=Te(r,d),d+=4;Lt(r.subarray(d,d+1))!=="\0";)t+=Lt(r.subarray(d,d+1)),d+=1;for(t+=Lt(r.subarray(d,d+1)),d+=1;Lt(r.subarray(d,d+1))!=="\0";)i+=Lt(r.subarray(d,d+1)),d+=1;i+=Lt(r.subarray(d,d+1)),d+=1}let c=r.subarray(d,r.byteLength);return{schemeIdUri:t,value:i,timeScale:s,presentationTime:a,presentationTimeDelta:n,eventDuration:o,id:l,payload:c}}function UT(r,...e){let t=e.length,i=8,s=t;for(;s--;)i+=e[s].byteLength;let n=new Uint8Array(i);for(n[0]=i>>24&255,n[1]=i>>16&255,n[2]=i>>8&255,n[3]=i&255,n.set(r,4),s=0,i=8;s<t;s++)n.set(e[s],i),i+=e[s].byteLength;return n}function FT(r,e,t){if(r.byteLength!==16)throw new RangeError("Invalid system id");let i,s;if(e){i=1,s=new Uint8Array(e.length*16);for(let o=0;o<e.length;o++){let l=e[o];if(l.byteLength!==16)throw new RangeError("Invalid key");s.set(l,o*16)}}else i=0,s=new Uint8Array;let n;i>0?(n=new Uint8Array(4),e.length>0&&new DataView(n.buffer).setUint32(0,e.length,!1)):n=new Uint8Array;let a=new Uint8Array(4);return t&&t.byteLength>0&&new DataView(a.buffer).setUint32(0,t.byteLength,!1),UT([112,115,115,104],new Uint8Array([i,0,0,0]),r,n,s,a,t||new Uint8Array)}function BT(r){if(!(r instanceof ArrayBuffer)||r.byteLength<32)return null;let e={version:0,systemId:"",kids:null,data:null},t=new DataView(r),i=t.getUint32(0);if(r.byteLength!==i&&i>44||t.getUint32(4)!==1886614376||(e.version=t.getUint32(8)>>>24,e.version>1))return null;e.systemId=Ni.hexDump(new Uint8Array(r,12,16));let n=t.getUint32(28);if(e.version===0){if(i-32<n)return null;e.data=new Uint8Array(r,32,n)}else if(e.version===1){e.kids=[];for(let a=0;a<n;a++)e.kids.push(new Uint8Array(r,32+a*16,16))}return e}var tl={},Wr=class{static clearKeyUriToKeyIdMap(){tl={}}constructor(e,t,i,s=[1],n=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=s,this.iv=n,this.encrypted=e?e!=="NONE":!1,this.isCommonEncryption=this.encrypted&&e!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case Yt.FAIRPLAY:case Yt.WIDEVINE:case Yt.PLAYREADY:case Yt.CLEARKEY:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(e){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof e!="number"&&(this.method==="AES-128"&&!this.iv&&M.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0);let i=$T(e);return new Wr(this.method,this.uri,"identity",this.keyFormatVersions,i)}let t=fT(this.uri);if(t)switch(this.keyFormat){case Yt.WIDEVINE:this.pssh=t,t.length>=22&&(this.keyId=t.subarray(t.length-22,t.length-6));break;case Yt.PLAYREADY:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=FT(i,null,t);let s=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),n=String.fromCharCode.apply(null,Array.from(s)),a=n.substring(n.indexOf("<"),n.length),d=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(d){let c=d.childNodes[0]?d.childNodes[0].nodeValue:d.getAttribute("VALUE");if(c){let u=Sh(c).subarray(0,16);hT(u),this.keyId=u}}break}default:{let i=t.subarray(0,16);if(i.length!==16){let s=new Uint8Array(16);s.set(i,16-i.length),i=s}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=tl[this.uri];if(!i){let s=Object.keys(tl).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,s),tl[this.uri]=i}this.keyId=i}return this}};function $T(r){let e=new Uint8Array(16);for(let t=12;t<16;t++)e[t]=r>>8*(15-t)&255;return e}var e0=/\{\$([a-zA-Z0-9-_]+)\}/g;function ng(r){return e0.test(r)}function Wt(r,e,t){if(r.variableList!==null||r.hasVariableRefs)for(let i=t.length;i--;){let s=t[i],n=e[s];n&&(e[s]=Lu(r,n))}}function Lu(r,e){if(r.variableList!==null||r.hasVariableRefs){let t=r.variableList;return e.replace(e0,i=>{let s=i.substring(2,i.length-1),n=t==null?void 0:t[s];return n===void 0?(r.playlistParsingError||(r.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),i):n})}return e}function ag(r,e,t){let i=r.variableList;i||(r.variableList=i={});let s,n;if("QUERYPARAM"in e){s=e.QUERYPARAM;try{let a=new self.URL(t).searchParams;if(a.has(s))n=a.get(s);else throw new Error(`"${s}" does not match any query parameter in URI: "${t}"`)}catch(a){r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${a.message}`))}}else s=e.NAME,n=e.VALUE;s in i?r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${s}"`)):i[s]=n||""}function GT(r,e,t){let i=e.IMPORT;if(t&&i in t){let s=r.variableList;s||(r.variableList=s={}),s[i]=t[i]}else r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${i}"`))}function Ml(){if(typeof self!="undefined")return self.MediaSource||self.WebKitMediaSource}var HT={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}},og=Ml();function VT(r,e){let t=HT[e];return!!t&&t[r.slice(0,4)]===!0}function ou(r,e){var t;return(t=og==null?void 0:og.isTypeSupported(`${e||"video"}/mp4;codecs="${r}"`))!=null?t:!1}var lg=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,dg=/#EXT-X-MEDIA:(.*)/g,KT=/^#EXT(?:INF|-X-TARGETDURATION):/m,cg=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),WT=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|")),Zt=class{static findGroup(e,t){for(let i=0;i<e.length;i++){let s=e[i];if(s.id===t)return s}}static convertAVC1ToAVCOTI(e){let t=e.split(".");if(t.length>2){let i=t.shift()+".";return i+=parseInt(t.shift()).toString(16),i+=("000"+parseInt(t.shift()).toString(16)).slice(-4),i}return e}static resolve(e,t){return Ah.buildAbsoluteURL(t,e,{alwaysNormalize:!0})}static isMediaPlaylist(e){return KT.test(e)}static parseMasterPlaylist(e,t){let i=ng(e),s={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:i},n=[];lg.lastIndex=0;let a;for(;(a=lg.exec(e))!=null;)if(a[1]){var o;let d=new Ze(a[1]);Wt(s,d,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let c=Lu(s,a[2]),u={attrs:d,bitrate:d.decimalInteger("AVERAGE-BANDWIDTH")||d.decimalInteger("BANDWIDTH"),name:d.NAME,url:Zt.resolve(c,t)},h=d.decimalResolution("RESOLUTION");h&&(u.width=h.width,u.height=h.height),qT((d.CODECS||"").split(/[ ,]+/).filter(f=>f),u),u.videoCodec&&u.videoCodec.indexOf("avc1")!==-1&&(u.videoCodec=Zt.convertAVC1ToAVCOTI(u.videoCodec)),(o=u.unknownCodecs)!=null&&o.length||n.push(u),s.levels.push(u)}else if(a[3]){let d=a[3],c=a[4];switch(d){case"SESSION-DATA":{let u=new Ze(c);Wt(s,u,["DATA-ID","LANGUAGE","VALUE","URI"]);let h=u["DATA-ID"];h&&(s.sessionData===null&&(s.sessionData={}),s.sessionData[h]=u);break}case"SESSION-KEY":{let u=ug(c,t,s);u.encrypted&&u.isSupported()?(s.sessionKeys===null&&(s.sessionKeys=[]),s.sessionKeys.push(u)):M.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${c}"`);break}case"DEFINE":{{let u=new Ze(c);Wt(s,u,["NAME","VALUE","QUERYPARAM"]),ag(s,u,t)}break}case"CONTENT-STEERING":{let u=new Ze(c);Wt(s,u,["SERVER-URI","PATHWAY-ID"]),s.contentSteering={uri:Zt.resolve(u["SERVER-URI"],t),pathwayId:u["PATHWAY-ID"]||"."};break}case"START":{s.startTimeOffset=hg(c);break}}}let l=n.length>0&&n.length<s.levels.length;return s.levels=l?n:s.levels,s.levels.length===0&&(s.playlistParsingError=new Error("no levels found in manifest")),s}static parseMasterPlaylistMedia(e,t,i){let s,n={},a=i.levels,o={AUDIO:a.map(d=>({id:d.attrs.AUDIO,audioCodec:d.audioCodec})),SUBTITLES:a.map(d=>({id:d.attrs.SUBTITLES,textCodec:d.textCodec})),"CLOSED-CAPTIONS":[]},l=0;for(dg.lastIndex=0;(s=dg.exec(e))!==null;){let d=new Ze(s[1]),c=d.TYPE;if(c){let u=o[c],h=n[c]||[];n[c]=h,Wt(i,d,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let f={attrs:d,bitrate:0,id:l++,groupId:d["GROUP-ID"]||"",instreamId:d["INSTREAM-ID"],name:d.NAME||d.LANGUAGE||"",type:c,default:d.bool("DEFAULT"),autoselect:d.bool("AUTOSELECT"),forced:d.bool("FORCED"),lang:d.LANGUAGE,url:d.URI?Zt.resolve(d.URI,t):""};if(u!=null&&u.length){let g=Zt.findGroup(u,f.groupId)||u[0];fg(f,g,"audioCodec"),fg(f,g,"textCodec")}h.push(f)}}return n}static parseLevelPlaylist(e,t,i,s,n,a){let o=new Iu(t),l=o.fragments,d=null,c=0,u=0,h=0,f=0,g=null,E=new Fn(s,t),T,A,k,L=-1,N=!1;for(cg.lastIndex=0,o.m3u8=e,o.hasVariableRefs=ng(e);(T=cg.exec(e))!==null;){N&&(N=!1,E=new Fn(s,t),E.start=h,E.sn=c,E.cc=f,E.level=i,d&&(E.initSegment=d,E.rawProgramDateTime=d.rawProgramDateTime,d.rawProgramDateTime=null));let H=T[1];if(H){E.duration=parseFloat(H);let q=(" "+T[2]).slice(1);E.title=q||null,E.tagList.push(q?["INF",H,q]:["INF",H])}else if(T[3]){if(ce(E.duration)){E.start=h,k&&gg(E,k,o),E.sn=c,E.level=i,E.cc=f,E.urlId=n,l.push(E);let q=(" "+T[3]).slice(1);E.relurl=Lu(o,q),mg(E,g),g=E,h+=E.duration,c++,u=0,N=!0}}else if(T[4]){let q=(" "+T[4]).slice(1);g?E.setByteRange(q,g):E.setByteRange(q)}else if(T[5])E.rawProgramDateTime=(" "+T[5]).slice(1),E.tagList.push(["PROGRAM-DATE-TIME",E.rawProgramDateTime]),L===-1&&(L=l.length);else{if(T=T[0].match(WT),!T){M.warn("No matches on slow regex match for level playlist!");continue}for(A=1;A<T.length&&typeof T[A]=="undefined";A++);let q=(" "+T[A]).slice(1),P=(" "+T[A+1]).slice(1),X=T[A+2]?(" "+T[A+2]).slice(1):"";switch(q){case"PLAYLIST-TYPE":o.type=P.toUpperCase();break;case"MEDIA-SEQUENCE":c=o.startSN=parseInt(P);break;case"SKIP":{let z=new Ze(P);Wt(o,z,["RECENTLY-REMOVED-DATERANGES"]);let Ae=z.decimalInteger("SKIPPED-SEGMENTS");if(ce(Ae)){o.skippedSegments=Ae;for(let be=Ae;be--;)l.unshift(null);c+=Ae}let Ee=z.enumeratedString("RECENTLY-REMOVED-DATERANGES");Ee&&(o.recentlyRemovedDateranges=Ee.split(" "));break}case"TARGETDURATION":o.targetduration=Math.max(parseInt(P),1);break;case"VERSION":o.version=parseInt(P);break;case"EXTM3U":break;case"ENDLIST":o.live=!1;break;case"#":(P||X)&&E.tagList.push(X?[P,X]:[P]);break;case"DISCONTINUITY":f++,E.tagList.push(["DIS"]);break;case"GAP":E.gap=!0,E.tagList.push([q]);break;case"BITRATE":E.tagList.push([q,P]);break;case"DATERANGE":{let z=new Ze(P);Wt(o,z,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Wt(o,z,z.clientAttrs);let Ae=new ul(z,o.dateRanges[z.ID]);Ae.isValid||o.skippedSegments?o.dateRanges[Ae.id]=Ae:M.warn(`Ignoring invalid DATERANGE tag: "${P}"`),E.tagList.push(["EXT-X-DATERANGE",P]);break}case"DEFINE":{{let z=new Ze(P);Wt(o,z,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in z?GT(o,z,a):ag(o,z,t)}break}case"DISCONTINUITY-SEQUENCE":f=parseInt(P);break;case"KEY":{let z=ug(P,t,o);if(z.isSupported()){if(z.method==="NONE"){k=void 0;break}k||(k={}),k[z.keyFormat]&&(k=pt({},k)),k[z.keyFormat]=z}else M.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${P}"`);break}case"START":o.startTimeOffset=hg(P);break;case"MAP":{let z=new Ze(P);if(Wt(o,z,["BYTERANGE","URI"]),E.duration){let Ae=new Fn(s,t);pg(Ae,z,i,k),d=Ae,E.initSegment=d,d.rawProgramDateTime&&!E.rawProgramDateTime&&(E.rawProgramDateTime=d.rawProgramDateTime)}else pg(E,z,i,k),d=E,N=!0;break}case"SERVER-CONTROL":{let z=new Ze(P);o.canBlockReload=z.bool("CAN-BLOCK-RELOAD"),o.canSkipUntil=z.optionalFloat("CAN-SKIP-UNTIL",0),o.canSkipDateRanges=o.canSkipUntil>0&&z.bool("CAN-SKIP-DATERANGES"),o.partHoldBack=z.optionalFloat("PART-HOLD-BACK",0),o.holdBack=z.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let z=new Ze(P);o.partTarget=z.decimalFloatingPoint("PART-TARGET");break}case"PART":{let z=o.partList;z||(z=o.partList=[]);let Ae=u>0?z[z.length-1]:void 0,Ee=u++,be=new Ze(P);Wt(o,be,["BYTERANGE","URI"]);let we=new xu(be,E,t,Ee,Ae);z.push(we),E.duration+=we.duration;break}case"PRELOAD-HINT":{let z=new Ze(P);Wt(o,z,["URI"]),o.preloadHint=z;break}case"RENDITION-REPORT":{let z=new Ze(P);Wt(o,z,["URI"]),o.renditionReports=o.renditionReports||[],o.renditionReports.push(z);break}default:M.warn(`line parsed but not handled: ${T}`);break}}}g&&!g.relurl?(l.pop(),h-=g.duration,o.partList&&(o.fragmentHint=g)):o.partList&&(mg(E,g),E.cc=f,o.fragmentHint=E,k&&gg(E,k,o));let D=l.length,$=l[0],O=l[D-1];if(h+=o.skippedSegments*o.targetduration,h>0&&D&&O){o.averagetargetduration=h/D;let H=O.sn;o.endSN=H!=="initSegment"?H:0,o.live||(O.endList=!0),$&&(o.startCC=$.cc)}else o.endSN=0,o.startCC=0;return o.fragmentHint&&(h+=o.fragmentHint.duration),o.totalduration=h,o.endCC=f,L>0&&YT(l,L),o}};function ug(r,e,t){var i,s;let n=new Ze(r);Wt(t,n,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let a=(i=n.METHOD)!=null?i:"",o=n.URI,l=n.hexadecimalInteger("IV"),d=n.KEYFORMATVERSIONS,c=(s=n.KEYFORMAT)!=null?s:"identity";o&&n.IV&&!l&&M.error(`Invalid IV: ${n.IV}`);let u=o?Zt.resolve(o,e):"",h=(d||"1").split("/").map(Number).filter(Number.isFinite);return new Wr(a,u,c,h,l)}function hg(r){let t=new Ze(r).decimalFloatingPoint("TIME-OFFSET");return ce(t)?t:null}function qT(r,e){["video","audio","text"].forEach(t=>{let i=r.filter(s=>VT(s,t));if(i.length){let s=i.filter(n=>n.lastIndexOf("avc1",0)===0||n.lastIndexOf("mp4a",0)===0);e[`${t}Codec`]=s.length>0?s[0]:i[0],r=r.filter(n=>i.indexOf(n)===-1)}}),e.unknownCodecs=r}function fg(r,e,t){let i=e[t];i&&(r[t]=i)}function YT(r,e){let t=r[e];for(let i=e;i--;){let s=r[i];if(!s)return;s.programDateTime=t.programDateTime-s.duration*1e3,t=s}}function mg(r,e){r.rawProgramDateTime?r.programDateTime=Date.parse(r.rawProgramDateTime):e!=null&&e.programDateTime&&(r.programDateTime=e.endProgramDateTime),ce(r.programDateTime)||(r.programDateTime=null,r.rawProgramDateTime=null)}function pg(r,e,t,i){r.relurl=e.URI,e.BYTERANGE&&r.setByteRange(e.BYTERANGE),r.level=t,r.sn="initSegment",i&&(r.levelkeys=i),r.initSegment=null}function gg(r,e,t){r.levelkeys=e;let{encryptedFragments:i}=t;(!i.length||i[i.length-1].levelkeys!==e)&&Object.keys(e).some(s=>e[s].isCommonEncryption)&&i.push(r)}var Ue={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},ge={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"};function vg(r){let{type:e}=r;switch(e){case Ue.AUDIO_TRACK:return ge.AUDIO;case Ue.SUBTITLE_TRACK:return ge.SUBTITLE;default:return ge.MAIN}}function lu(r,e){let t=r.url;return(t===void 0||t.indexOf("data:")===0)&&(t=e.url),t}var ku=class{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(e){let t=this.hls.config,i=t.pLoader,s=t.loader,n=i||s,a=new n(t);return this.loaders[e.type]=a,a}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(let e in this.loaders){let t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,t){let{url:i}=t;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Ue.MANIFEST,url:i,deliveryDirectives:null})}onLevelLoading(e,t){let{id:i,level:s,url:n,deliveryDirectives:a}=t;this.load({id:i,level:s,responseType:"text",type:Ue.LEVEL,url:n,deliveryDirectives:a})}onAudioTrackLoading(e,t){let{id:i,groupId:s,url:n,deliveryDirectives:a}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:Ue.AUDIO_TRACK,url:n,deliveryDirectives:a})}onSubtitleTrackLoading(e,t){let{id:i,groupId:s,url:n,deliveryDirectives:a}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:Ue.SUBTITLE_TRACK,url:n,deliveryDirectives:a})}load(e){var t;let i=this.hls.config,s=this.getInternalLoader(e);if(s){let d=s.context;if(d&&d.url===e.url){M.trace("[playlist-loader]: playlist request ongoing");return}M.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),s.abort()}let n;if(e.type===Ue.MANIFEST?n=i.manifestLoadPolicy.default:n=pt({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(e),(t=e.deliveryDirectives)!=null&&t.part){let d;if(e.type===Ue.LEVEL&&e.level!==null?d=this.hls.levels[e.level].details:e.type===Ue.AUDIO_TRACK&&e.id!==null?d=this.hls.audioTracks[e.id].details:e.type===Ue.SUBTITLE_TRACK&&e.id!==null&&(d=this.hls.subtitleTracks[e.id].details),d){let c=d.partTarget,u=d.targetduration;if(c&&u){let h=Math.max(c*3,u*.8)*1e3;n=pt({},n,{maxTimeToFirstByteMs:Math.min(h,n.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(h,n.maxTimeToFirstByteMs)})}}}let a=n.errorRetry||n.timeoutRetry||{},o={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},l={onSuccess:(d,c,u,h)=>{let f=this.getInternalLoader(u);this.resetInternalLoader(u.type);let g=d.data;if(g.indexOf("#EXTM3U")!==0){this.handleManifestParsingError(d,u,new Error("no EXTM3U delimiter"),h||null,c);return}c.parsing.start=performance.now(),Zt.isMediaPlaylist(g)?this.handleTrackOrLevelPlaylist(d,c,u,h||null,f):this.handleMasterPlaylist(d,c,u,h)},onError:(d,c,u,h)=>{this.handleNetworkError(c,u,!1,d,h)},onTimeout:(d,c,u)=>{this.handleNetworkError(c,u,!0,void 0,d)}};s.load(e,o,l)}handleMasterPlaylist(e,t,i,s){let n=this.hls,a=e.data,o=lu(e,i),l=Zt.parseMasterPlaylist(a,o);if(l.playlistParsingError){this.handleManifestParsingError(e,i,l.playlistParsingError,s,t);return}let{contentSteering:d,levels:c,sessionData:u,sessionKeys:h,startTimeOffset:f,variableList:g}=l;this.variableList=g;let{AUDIO:E=[],SUBTITLES:T,"CLOSED-CAPTIONS":A}=Zt.parseMasterPlaylistMedia(a,o,l);E.length&&!E.some(L=>!L.url)&&c[0].audioCodec&&!c[0].attrs.AUDIO&&(M.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),E.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Ze({}),bitrate:0,url:""})),n.trigger(b.MANIFEST_LOADED,{levels:c,audioTracks:E,subtitles:T,captions:A,contentSteering:d,url:o,stats:t,networkDetails:s,sessionData:u,sessionKeys:h,startTimeOffset:f,variableList:g})}handleTrackOrLevelPlaylist(e,t,i,s,n){let a=this.hls,{id:o,level:l,type:d}=i,c=lu(e,i),u=ce(o)?o:0,h=ce(l)?l:u,f=vg(i),g=Zt.parseLevelPlaylist(e.data,c,h,f,u,this.variableList);if(d===Ue.MANIFEST){let E={attrs:new Ze({}),bitrate:0,details:g,name:"",url:c};a.trigger(b.MANIFEST_LOADED,{levels:[E],audioTracks:[],url:c,stats:t,networkDetails:s,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}t.parsing.end=performance.now(),i.levelDetails=g,this.handlePlaylistLoaded(g,e,t,i,s,n)}handleManifestParsingError(e,t,i,s,n){this.hls.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.MANIFEST_PARSING_ERROR,fatal:t.type===Ue.MANIFEST,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:s,stats:n})}handleNetworkError(e,t,i=!1,s,n){let a=`A network ${i?"timeout":"error"+(s?" (status "+s.code+")":"")} occurred while loading ${e.type}`;e.type===Ue.LEVEL?a+=`: ${e.level} id: ${e.id}`:(e.type===Ue.AUDIO_TRACK||e.type===Ue.SUBTITLE_TRACK)&&(a+=` id: ${e.id} group-id: "${e.groupId}"`);let o=new Error(a);M.warn(`[playlist-loader]: ${a}`);let l=B.UNKNOWN,d=!1,c=this.getInternalLoader(e);switch(e.type){case Ue.MANIFEST:l=i?B.MANIFEST_LOAD_TIMEOUT:B.MANIFEST_LOAD_ERROR,d=!0;break;case Ue.LEVEL:l=i?B.LEVEL_LOAD_TIMEOUT:B.LEVEL_LOAD_ERROR,d=!1;break;case Ue.AUDIO_TRACK:l=i?B.AUDIO_TRACK_LOAD_TIMEOUT:B.AUDIO_TRACK_LOAD_ERROR,d=!1;break;case Ue.SUBTITLE_TRACK:l=i?B.SUBTITLE_TRACK_LOAD_TIMEOUT:B.SUBTITLE_LOAD_ERROR,d=!1;break}c&&this.resetInternalLoader(e.type);let u={type:pe.NETWORK_ERROR,details:l,fatal:d,url:e.url,loader:c,context:e,error:o,networkDetails:t,stats:n};if(s){let h=(t==null?void 0:t.url)||e.url;u.response=jt({url:h,data:void 0},s)}this.hls.trigger(b.ERROR,u)}handlePlaylistLoaded(e,t,i,s,n,a){let o=this.hls,{type:l,level:d,id:c,groupId:u,deliveryDirectives:h}=s,f=lu(t,s),g=vg(s),E=typeof s.level=="number"&&g===ge.MAIN?d:void 0;if(!e.fragments.length){let A=new Error("No Segments found in Playlist");o.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.LEVEL_EMPTY_ERROR,fatal:!1,url:f,error:A,reason:A.message,response:t,context:s,level:E,parent:g,networkDetails:n,stats:i});return}e.targetduration||(e.playlistParsingError=new Error("Missing Target Duration"));let T=e.playlistParsingError;if(T){o.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.LEVEL_PARSING_ERROR,fatal:!1,url:f,error:T,reason:T.message,response:t,context:s,level:E,parent:g,networkDetails:n,stats:i});return}switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),(!a.getCacheAge||isNaN(e.ageHeader))&&(e.ageHeader=0)),l){case Ue.MANIFEST:case Ue.LEVEL:o.trigger(b.LEVEL_LOADED,{details:e,level:E||0,id:c||0,stats:i,networkDetails:n,deliveryDirectives:h});break;case Ue.AUDIO_TRACK:o.trigger(b.AUDIO_TRACK_LOADED,{details:e,id:c||0,groupId:u||"",stats:i,networkDetails:n,deliveryDirectives:h});break;case Ue.SUBTITLE_TRACK:o.trigger(b.SUBTITLE_TRACK_LOADED,{details:e,id:c||0,groupId:u||"",stats:i,networkDetails:n,deliveryDirectives:h});break}}};function t0(r,e){let t;try{t=new Event("addtrack")}catch{t=document.createEvent("Event"),t.initEvent("addtrack",!1,!1)}t.track=r,e.dispatchEvent(t)}function i0(r,e){let t=r.mode;if(t==="disabled"&&(r.mode="hidden"),r.cues&&!r.cues.getCueById(e.id))try{if(r.addCue(e),!r.cues.getCueById(e.id))throw new Error(`addCue is failed for: ${e}`)}catch(i){M.debug(`[texttrack-utils]: ${i}`);try{let s=new self.TextTrackCue(e.startTime,e.endTime,e.text);s.id=e.id,r.addCue(s)}catch(s){M.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${s}`)}}t==="disabled"&&(r.mode=t)}function Hs(r){let e=r.mode;if(e==="disabled"&&(r.mode="hidden"),r.cues)for(let t=r.cues.length;t--;)r.removeCue(r.cues[t]);e==="disabled"&&(r.mode=e)}function Ru(r,e,t,i){let s=r.mode;if(s==="disabled"&&(r.mode="hidden"),r.cues&&r.cues.length>0){let n=zT(r.cues,e,t);for(let a=0;a<n.length;a++)(!i||i(n[a]))&&r.removeCue(n[a])}s==="disabled"&&(r.mode=s)}function jT(r,e){if(e<r[0].startTime)return 0;let t=r.length-1;if(e>r[t].endTime)return-1;let i=0,s=t;for(;i<=s;){let n=Math.floor((s+i)/2);if(e<r[n].startTime)s=n-1;else if(e>r[n].startTime&&i<t)i=n+1;else return n}return r[i].startTime-e<e-r[s].startTime?i:s}function zT(r,e,t){let i=[],s=jT(r,e);if(s>-1)for(let n=s,a=r.length;n<a;n++){let o=r[n];if(o.startTime>=e&&o.endTime<=t)i.push(o);else if(o.startTime>t)return i}return i}var Ei={audioId3:"org.id3",dateRange:"com.apple.quicktime.HLS",emsg:"https://aomedia.org/emsg/ID3"},XT=.25;function wu(){if(typeof self!="undefined")return self.WebKitDataCue||self.VTTCue||self.TextTrackCue}var il=(()=>{let r=wu();try{new r(0,Number.POSITIVE_INFINITY,"")}catch{return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function du(r,e){return r.getTime()/1e3-e}function QT(r){return Uint8Array.from(r.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}var Du=class{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(e,t){this.media=t.media}onMediaDetaching(){!this.id3Track||(Hs(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(e){let t=this.getID3Track(e.textTracks);return t.mode="hidden",t}getID3Track(e){if(!!this.media){for(let t=0;t<e.length;t++){let i=e[t];if(i.kind==="metadata"&&i.label==="id3")return t0(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(e,t){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:s}}}=this;if(!i&&!s)return;let{samples:n}=t;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=wu();for(let o=0;o<n.length;o++){let l=n[o].type;if(l===Ei.emsg&&!i||!s)continue;let d=qg(n[o].data);if(d){let c=n[o].pts,u=c+n[o].duration;u>il&&(u=il),u-c<=0&&(u=c+XT);for(let f=0;f<d.length;f++){let g=d[f];if(!Wg(g)){this.updateId3CueEnds(c,l);let E=new a(c,u,"");E.value=g,l&&(E.type=l),this.id3Track.addCue(E)}}}}}updateId3CueEnds(e,t){var i;let s=(i=this.id3Track)==null?void 0:i.cues;if(s)for(let n=s.length;n--;){let a=s[n];a.type===t&&a.startTime<e&&a.endTime===il&&(a.endTime=e)}}onBufferFlushing(e,{startOffset:t,endOffset:i,type:s}){let{id3Track:n,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:o,enableID3MetadataCues:l}}=a;if(n&&(o||l)){let d;s==="audio"?d=c=>c.type===Ei.audioId3&&l:s==="video"?d=c=>c.type===Ei.emsg&&o:d=c=>c.type===Ei.audioId3&&l||c.type===Ei.emsg&&o,Ru(n,t,i,d)}}onLevelUpdated(e,{details:t}){if(!this.media||!t.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:s}=this,{dateRanges:n}=t,a=Object.keys(n);if(s){let c=Object.keys(i).filter(u=>!a.includes(u));for(let u=c.length;u--;){let h=c[u];Object.keys(i[h].cues).forEach(f=>{s.removeCue(i[h].cues[f])}),delete i[h]}}let o=t.fragments[t.fragments.length-1];if(a.length===0||!ce(o==null?void 0:o.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let l=o.programDateTime/1e3-o.start,d=wu();for(let c=0;c<a.length;c++){let u=a[c],h=n[u],f=i[u],g=(f==null?void 0:f.cues)||{},E=(f==null?void 0:f.durationKnown)||!1,T=du(h.startDate,l),A=il,k=h.endDate;if(k)A=du(k,l),E=!0;else if(h.endOnNext&&!E){let N=a.reduce((D,$)=>{let O=n[$];return O.class===h.class&&O.id!==$&&O.startDate>h.startDate&&D.push(O),D},[]).sort((D,$)=>D.startDate.getTime()-$.startDate.getTime())[0];N&&(A=du(N.startDate,l),E=!0)}let L=Object.keys(h.attr);for(let N=0;N<L.length;N++){let D=L[N];if(!lT(D))continue;let $=g[D];if($)E&&!f.durationKnown&&($.endTime=A);else{let O=h.attr[D];$=new d(T,A,""),dT(D)&&(O=QT(O)),$.value={key:D,data:O},$.type=Ei.dateRange,$.id=u,this.id3Track.addCue($),g[D]=$}}i[u]={cues:g,dateRange:h,durationKnown:E}}}},Cu=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=e,this.config=e.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:e,levelDetails:t}=this;return e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:t?e.liveMaxLatencyDurationCount*t.targetduration:0}get targetLatency(){let{levelDetails:e}=this;if(e===null)return null;let{holdBack:t,partHoldBack:i,targetduration:s}=e,{liveSyncDuration:n,liveSyncDurationCount:a,lowLatencyMode:o}=this.config,l=this.hls.userConfig,d=o&&i||t;(l.liveSyncDuration||l.liveSyncDurationCount||d===0)&&(d=n!==void 0?n:a*s);let c=s,u=1;return d+Math.min(this.stallCount*u,c)}get liveSyncPosition(){let e=this.estimateLiveEdge(),t=this.targetLatency,i=this.levelDetails;if(e===null||t===null||i===null)return null;let s=i.edge,n=e-t-this.edgeStalled,a=s-i.totalduration,o=s-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,n),o)}get drift(){let{levelDetails:e}=this;return e===null?1:e.drift}get edgeStalled(){let{levelDetails:e}=this;if(e===null)return 0;let t=(this.config.lowLatencyMode&&e.partTarget||e.targetduration)*3;return Math.max(e.age-t,0)}get forwardBufferLength(){let{media:e,levelDetails:t}=this;if(!e||!t)return 0;let i=e.buffered.length;return(i?e.buffered.end(i-1):t.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(b.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(b.ERROR,this.onError,this)}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(e,{details:t}){this.levelDetails=t,t.advanced&&this.timeupdate(),!t.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(e,t){var i;t.details===B.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&M.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:e,levelDetails:t}=this;if(!e||!t)return;this.currentTime=e.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:s,maxLiveSyncPlaybackRate:n}=this.config;if(!s||n===1)return;let a=this.targetLatency;if(a===null)return;let o=i-a,l=Math.min(this.maxLatency,a+t.targetduration),d=o<l;if(t.live&&d&&o>.05&&this.forwardBufferLength>1){let c=Math.min(2,Math.max(1,n)),u=Math.round(2/(1+Math.exp(-.75*o-this.edgeStalled))*20)/20;e.playbackRate=Math.min(c,Math.max(1,u))}else e.playbackRate!==1&&e.playbackRate!==0&&(e.playbackRate=1)}estimateLiveEdge(){let{levelDetails:e}=this;return e===null?null:e.edge+e.age}computeLatency(){let e=this.estimateLiveEdge();return e===null?null:e-this.currentTime}},Mu=["NONE","TYPE-0","TYPE-1",null],Bn={No:"",Yes:"YES",v2:"v2"};function ZT(r,e){let{canSkipUntil:t,canSkipDateRanges:i,endSN:s}=r,n=e!==void 0?e-s:0;return t&&n<t?i?Bn.v2:Bn.Yes:Bn.No}var pl=class{constructor(e,t,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=t,this.skip=i}addDirectives(e){let t=new self.URL(e);return this.msn!==void 0&&t.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&t.searchParams.set("_HLS_part",this.part.toString()),this.skip&&t.searchParams.set("_HLS_skip",this.skip),t.href}},qr=class{constructor(e){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.unknownCodecs=void 0,this.audioGroupIds=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.textGroupIds=void 0,this.url=void 0,this._urlId=0,this.url=[e.url],this._attrs=[e.attrs],this.bitrate=e.bitrate,e.details&&(this.details=e.details),this.id=e.id||0,this.name=e.name,this.width=e.width||0,this.height=e.height||0,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.unknownCodecs=e.unknownCodecs,this.codecSet=[e.videoCodec,e.audioCodec].filter(t=>t).join(",").replace(/\.[^.,]+/g,"")}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get attrs(){return this._attrs[this._urlId]}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get uri(){return this.url[this._urlId]||""}get urlId(){return this._urlId}set urlId(e){let t=e%this.url.length;this._urlId!==t&&(this.fragmentError=0,this.loadError=0,this.details=void 0,this._urlId=t)}get audioGroupId(){var e;return(e=this.audioGroupIds)==null?void 0:e[this.urlId]}get textGroupId(){var e;return(e=this.textGroupIds)==null?void 0:e[this.urlId]}addFallback(e){this.url.push(e.url),this._attrs.push(e.attrs)}};function cu(r,e){let t=e.startPTS;if(ce(t)){let i=0,s;e.sn>r.sn?(i=t-r.start,s=r):(i=r.start-t,s=e),s.duration!==i&&(s.duration=i)}else e.sn>r.sn?r.cc===e.cc&&r.minEndPTS?e.start=r.start+(r.minEndPTS-r.start):e.start=r.start+r.duration:e.start=Math.max(r.start-e.duration,0)}function r0(r,e,t,i,s,n){i-t<=0&&(M.warn("Fragment should have a positive duration",e),i=t+e.duration,n=s+e.duration);let o=t,l=i,d=e.startPTS,c=e.endPTS;if(ce(d)){let T=Math.abs(d-t);ce(e.deltaPTS)?e.deltaPTS=Math.max(T,e.deltaPTS):e.deltaPTS=T,o=Math.max(t,d),t=Math.min(t,d),s=Math.min(s,e.startDTS),l=Math.min(i,c),i=Math.max(i,c),n=Math.max(n,e.endDTS)}let u=t-e.start;e.start!==0&&(e.start=t),e.duration=i-e.start,e.startPTS=t,e.maxStartPTS=o,e.startDTS=s,e.endPTS=i,e.minEndPTS=l,e.endDTS=n;let h=e.sn;if(!r||h<r.startSN||h>r.endSN)return 0;let f,g=h-r.startSN,E=r.fragments;for(E[g]=e,f=g;f>0;f--)cu(E[f],E[f-1]);for(f=g;f<E.length-1;f++)cu(E[f],E[f+1]);return r.fragmentHint&&cu(E[E.length-1],r.fragmentHint),r.PTSKnown=r.alignedSliding=!0,u}function JT(r,e){let t=null,i=r.fragments;for(let l=i.length-1;l>=0;l--){let d=i[l].initSegment;if(d){t=d;break}}r.fragmentHint&&delete r.fragmentHint.endPTS;let s=0,n;if(i_(r,e,(l,d)=>{l.relurl&&(s=l.cc-d.cc),ce(l.startPTS)&&ce(l.endPTS)&&(d.start=d.startPTS=l.startPTS,d.startDTS=l.startDTS,d.maxStartPTS=l.maxStartPTS,d.endPTS=l.endPTS,d.endDTS=l.endDTS,d.minEndPTS=l.minEndPTS,d.duration=l.endPTS-l.startPTS,d.duration&&(n=d),e.PTSKnown=e.alignedSliding=!0),d.elementaryStreams=l.elementaryStreams,d.loader=l.loader,d.stats=l.stats,d.urlId=l.urlId,l.initSegment&&(d.initSegment=l.initSegment,t=l.initSegment)}),t&&(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach(d=>{var c;(!d.initSegment||d.initSegment.relurl===((c=t)==null?void 0:c.relurl))&&(d.initSegment=t)}),e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some(l=>!l),e.deltaUpdateFailed){M.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let l=e.skippedSegments;l--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=e_(r.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let a=e.fragments;if(s){M.warn("discontinuity sliding from playlist, take drift into account");for(let l=0;l<a.length;l++)a[l].cc+=s}e.skippedSegments&&(e.startCC=e.fragments[0].cc),t_(r.partList,e.partList,(l,d)=>{d.elementaryStreams=l.elementaryStreams,d.stats=l.stats}),n?r0(e,n,n.startPTS,n.endPTS,n.startDTS,n.endDTS):s0(r,e),a.length&&(e.totalduration=e.edge-a[0].start),e.driftStartTime=r.driftStartTime,e.driftStart=r.driftStart;let o=e.advancedDateTime;if(e.advanced&&o){let l=e.edge;e.driftStart||(e.driftStartTime=o,e.driftStart=l),e.driftEndTime=o,e.driftEnd=l}else e.driftEndTime=r.driftEndTime,e.driftEnd=r.driftEnd,e.advancedDateTime=r.advancedDateTime}function e_(r,e,t){let i=pt({},r);return t&&t.forEach(s=>{delete i[s]}),Object.keys(e).forEach(s=>{let n=new ul(e[s].attr,i[s]);n.isValid?i[s]=n:M.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(e[s].attr)}"`)}),i}function t_(r,e,t){if(r&&e){let i=0;for(let s=0,n=r.length;s<=n;s++){let a=r[s],o=e[s+i];a&&o&&a.index===o.index&&a.fragment.sn===o.fragment.sn?t(a,o):i--}}}function i_(r,e,t){let i=e.skippedSegments,s=Math.max(r.startSN,e.startSN)-e.startSN,n=(r.fragmentHint?1:0)+(i?e.endSN:Math.min(r.endSN,e.endSN))-e.startSN,a=e.startSN-r.startSN,o=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,l=r.fragmentHint?r.fragments.concat(r.fragmentHint):r.fragments;for(let d=s;d<=n;d++){let c=l[a+d],u=o[d];i&&!u&&d<i&&(u=e.fragments[d]=c),c&&u&&t(c,u)}}function s0(r,e){let t=e.startSN+e.skippedSegments-r.startSN,i=r.fragments;t<0||t>=i.length||Ou(e,i[t].start)}function Ou(r,e){if(e){let t=r.fragments;for(let i=r.skippedSegments;i<t.length;i++)t[i].start+=e;r.fragmentHint&&(r.fragmentHint.start+=e)}}function r_(r,e=1/0){let t=1e3*r.targetduration;if(r.updated){let i=r.fragments,s=4;if(i.length&&t*s>e){let n=i[i.length-1].duration*1e3;n<t&&(t=n)}}else t/=2;return Math.round(t)}function s_(r,e,t){if(!(r!=null&&r.details))return null;let i=r.details,s=i.fragments[e-i.startSN];return s||(s=i.fragmentHint,s&&s.sn===e)?s:e<i.startSN&&t&&t.sn===e?t:null}function Eg(r,e,t){var i;return r!=null&&r.details?n0((i=r.details)==null?void 0:i.partList,e,t):null}function n0(r,e,t){if(r)for(let i=r.length;i--;){let s=r[i];if(s.index===t&&s.fragment.sn===e)return s}return null}function gl(r){switch(r.details){case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_TIMEOUT:case B.LEVEL_LOAD_TIMEOUT:case B.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function bg(r,e){let t=gl(e);return r.default[`${t?"timeout":"error"}Retry`]}function Ih(r,e){let t=r.backoff==="linear"?1:Math.pow(2,e);return Math.min(t*r.retryDelayMs,r.maxRetryDelayMs)}function yg(r){return jt(jt({},r),{errorRetry:null,timeoutRetry:null})}function vl(r,e,t,i){return!!r&&e<r.maxNumRetry&&(n_(i)||!!t)}function n_(r){return r===0&&navigator.onLine===!1||!!r&&(r<400||r>499)}var a0={search:function(r,e){let t=0,i=r.length-1,s=null,n=null;for(;t<=i;){s=(t+i)/2|0,n=r[s];let a=e(n);if(a>0)t=s+1;else if(a<0)i=s-1;else return n}return null}};function a_(r,e,t){if(e===null||!Array.isArray(r)||!r.length||!ce(e))return null;let i=r[0].programDateTime;if(e<(i||0))return null;let s=r[r.length-1].endProgramDateTime;if(e>=(s||0))return null;t=t||0;for(let n=0;n<r.length;++n){let a=r[n];if(o_(e,t,a))return a}return null}function Hn(r,e,t=0,i=0){let s=null;if(r?s=e[r.sn-e[0].sn+1]||null:t===0&&e[0].start===0&&(s=e[0]),s&&Pu(t,i,s)===0)return s;let n=a0.search(e,Pu.bind(null,t,i));return n&&(n!==r||!s)?n:s}function Pu(r=0,e=0,t){if(t.start<=r&&t.start+t.duration>r)return 0;let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-i<=r?1:t.start-i>r&&t.start?-1:0}function o_(r,e,t){let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0))*1e3;return(t.endProgramDateTime||0)-i>r}function l_(r,e){return a0.search(r,t=>t.cc<e?1:t.cc>e?-1:0)}var d_=3e5,Mt={DoNothing:0,SendEndCallback:1,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,InsertDiscontinuity:4,RetryRequest:5},oi={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,SwitchToSDR:4},Nu=class{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=M.log.bind(M,"[info]:"),this.warn=M.warn.bind(M,"[warning]:"),this.error=M.error.bind(M,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.ERROR,this.onError,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;!e||(e.off(b.ERROR,this.onError,this),e.off(b.ERROR,this.onErrorOut,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){this.playlistError=0}stopLoad(){}getVariantLevelIndex(e){return(e==null?void 0:e.type)===ge.MAIN?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,t){var i,s;if(t.fatal)return;let n=this.hls,a=t.context;switch(t.details){case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:t.errorAction=this.getFragRetryOrSwitchAction(t);return;case B.FRAG_PARSING_ERROR:if((i=t.frag)!=null&&i.gap){t.errorAction={action:Mt.DoNothing,flags:oi.None};return}case B.FRAG_GAP:case B.FRAG_DECRYPT_ERROR:{t.errorAction=this.getFragRetryOrSwitchAction(t),t.errorAction.action=Mt.SendAlternateToPenaltyBox;return}case B.LEVEL_EMPTY_ERROR:case B.LEVEL_PARSING_ERROR:{var o,l;let d=t.parent===ge.MAIN?t.level:n.loadLevel;t.details===B.LEVEL_EMPTY_ERROR&&!!((o=t.context)!=null&&(l=o.levelDetails)!=null&&l.live)?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,d):(t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,d))}return;case B.LEVEL_LOAD_ERROR:case B.LEVEL_LOAD_TIMEOUT:typeof(a==null?void 0:a.level)=="number"&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,a.level));return;case B.AUDIO_TRACK_LOAD_ERROR:case B.AUDIO_TRACK_LOAD_TIMEOUT:case B.SUBTITLE_LOAD_ERROR:case B.SUBTITLE_TRACK_LOAD_TIMEOUT:if(a){let d=n.levels[n.loadLevel];if(d&&(a.type===Ue.AUDIO_TRACK&&a.groupId===d.audioGroupId||a.type===Ue.SUBTITLE_TRACK&&a.groupId===d.textGroupId)){t.errorAction=this.getPlaylistRetryOrSwitchAction(t,n.loadLevel),t.errorAction.action=Mt.SendAlternateToPenaltyBox,t.errorAction.flags=oi.MoveAllAlternatesMatchingHost;return}}return;case B.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let d=n.levels[n.loadLevel],c=d==null?void 0:d.attrs["HDCP-LEVEL"];c&&(t.errorAction={action:Mt.SendAlternateToPenaltyBox,flags:oi.MoveAllAlternatesMatchingHDCP,hdcpLevel:c})}return;case B.BUFFER_ADD_CODEC_ERROR:case B.REMUX_ALLOC_ERROR:t.errorAction=this.getLevelSwitchAction(t,(s=t.level)!=null?s:n.loadLevel);return;case B.INTERNAL_EXCEPTION:case B.BUFFER_APPENDING_ERROR:case B.BUFFER_APPEND_ERROR:case B.BUFFER_FULL_ERROR:case B.LEVEL_SWITCH_ERROR:case B.BUFFER_STALLED_ERROR:case B.BUFFER_SEEK_OVER_HOLE:case B.BUFFER_NUDGE_ON_STALL:t.errorAction={action:Mt.DoNothing,flags:oi.None};return}if(t.type===pe.KEY_SYSTEM_ERROR){let d=this.getVariantLevelIndex(t.frag);t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,d);return}}getPlaylistRetryOrSwitchAction(e,t){var i;let s=this.hls,n=bg(s.config.playlistLoadPolicy,e),a=this.playlistError++,o=(i=e.response)==null?void 0:i.code;if(vl(n,a,gl(e),o))return{action:Mt.RetryRequest,flags:oi.None,retryConfig:n,retryCount:a};let d=this.getLevelSwitchAction(e,t);return n&&(d.retryConfig=n,d.retryCount=a),d}getFragRetryOrSwitchAction(e){let t=this.hls,i=this.getVariantLevelIndex(e.frag),s=t.levels[i],{fragLoadPolicy:n,keyLoadPolicy:a}=t.config,o=bg(e.details.startsWith("key")?a:n,e),l=t.levels.reduce((u,h)=>u+h.fragmentError,0);if(s){var d;e.details!==B.FRAG_GAP&&s.fragmentError++;let u=(d=e.response)==null?void 0:d.code;if(vl(o,l,gl(e),u))return{action:Mt.RetryRequest,flags:oi.None,retryConfig:o,retryCount:l}}let c=this.getLevelSwitchAction(e,i);return o&&(c.retryConfig=o,c.retryCount=l),c}getLevelSwitchAction(e,t){let i=this.hls;t==null&&(t=i.loadLevel);let s=this.hls.levels[t];if(s&&(s.loadError++,i.autoLevelEnabled)){var n,a;let o=-1,{levels:l,loadLevel:d,minAutoLevel:c,maxAutoLevel:u}=i,h=(n=e.frag)==null?void 0:n.type,{type:f,groupId:g}=(a=e.context)!=null?a:{};for(let E=l.length;E--;){let T=(E+d)%l.length;if(T!==d&&T>=c&&T<=u&&l[T].loadError===0){let A=l[T];if(e.details===B.FRAG_GAP&&e.frag){let k=l[T].details;if(k){let L=Hn(e.frag,k.fragments,e.frag.start);if(L!=null&&L.gap)continue}}else{if(f===Ue.AUDIO_TRACK&&g===A.audioGroupId||f===Ue.SUBTITLE_TRACK&&g===A.textGroupId)continue;if(h===ge.AUDIO&&s.audioGroupId===A.audioGroupId||h===ge.SUBTITLE&&s.textGroupId===A.textGroupId)continue}o=T;break}}if(o>-1&&i.loadLevel!==o)return e.levelRetry=!0,this.playlistError=0,{action:Mt.SendAlternateToPenaltyBox,flags:oi.None,nextAutoLevel:o}}return{action:Mt.SendAlternateToPenaltyBox,flags:oi.MoveAllAlternatesMatchingHost}}onErrorOut(e,t){var i;switch((i=t.errorAction)==null?void 0:i.action){case Mt.DoNothing:break;case Mt.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(t),!t.errorAction.resolved&&t.details!==B.FRAG_GAP&&(t.fatal=!0);break}if(t.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(e){let t=this.hls,i=e.errorAction;if(!i)return;let{flags:s,hdcpLevel:n,nextAutoLevel:a}=i;switch(s){case oi.None:this.switchLevel(e,a);break;case oi.MoveAllAlternatesMatchingHost:i.resolved||(i.resolved=this.redundantFailover(e));break;case oi.MoveAllAlternatesMatchingHDCP:n&&(t.maxHdcpLevel=Mu[Mu.indexOf(n)-1],i.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${t.maxHdcpLevel}" or lower`);break}i.resolved||this.switchLevel(e,a)}switchLevel(e,t){t!==void 0&&e.errorAction&&(this.warn(`switching to level ${t} after ${e.details}`),this.hls.nextAutoLevel=t,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}redundantFailover(e){let{hls:t,penalizedRenditions:i}=this,s=e.parent===ge.MAIN?e.level:t.loadLevel,n=t.levels[s],a=n.url.length,o=e.frag?e.frag.urlId:n.urlId;n.urlId===o&&(!e.frag||n.details)&&this.penalizeRendition(n,e);for(let l=1;l<a;l++){let d=(o+l)%a,c=i[d];if(!c||c_(c,e,i[o]))return this.warn(`Switching to Redundant Stream ${d+1}/${a}: "${n.url[d]}" after ${e.details}`),this.playlistError=0,t.levels.forEach(u=>{u.urlId=d}),t.nextLoadLevel=s,!0}return!1}penalizeRendition(e,t){let{penalizedRenditions:i}=this,s=i[e.urlId]||{lastErrorPerfMs:0,errors:[],details:void 0};s.lastErrorPerfMs=performance.now(),s.errors.push(t),s.details=e.details,i[e.urlId]=s}};function c_(r,e,t){if(performance.now()-r.lastErrorPerfMs>d_)return!0;let i=r.details;if(e.details===B.FRAG_GAP&&i&&e.frag){let s=e.frag.start,n=Hn(null,i.fragments,s);if(n&&!n.gap)return!0}if(t&&r.errors.length<t.errors.length){let s=r.errors[r.errors.length-1];if(i&&s.frag&&e.frag&&Math.abs(s.frag.start-e.frag.start)>i.targetduration*3)return!0}return!1}var Vn=class{constructor(e,t){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=M.log.bind(M,`${t}:`),this.warn=M.warn.bind(M,`${t}:`),this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){clearTimeout(this.timer),this.timer=-1}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(e,t){let i=t==null?void 0:t.renditionReports;if(i){let s=-1;for(let n=0;n<i.length;n++){let a=i[n],o;try{o=new self.URL(a.URI,t.url).href}catch(l){M.warn(`Could not construct new URL for Rendition Report: ${l}`),o=a.URI||""}if(o===e){s=n;break}else o===e.substring(0,o.length)&&(s=n)}if(s!==-1){let n=i[s],a=parseInt(n["LAST-MSN"])||(t==null?void 0:t.lastPartSn),o=parseInt(n["LAST-PART"])||(t==null?void 0:t.lastPartIndex);if(this.hls.config.lowLatencyMode){let l=Math.min(t.age-t.partTarget,t.targetduration);o>=0&&l>t.partTarget&&(o+=1)}return new pl(a,o>=0?o:void 0,Bn.No)}}}loadPlaylist(e){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}shouldReloadPlaylist(e){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(e)}playlistLoaded(e,t,i){let{details:s,stats:n}=t,a=self.performance.now(),o=n.loading.first?Math.max(0,a-n.loading.first):0;if(s.advancedDateTime=Date.now()-o,s.live||i!=null&&i.live){if(s.reloaded(i),i&&this.log(`live playlist ${e} ${s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:"MISSED"}`),i&&s.fragments.length>0&&JT(i,s),!this.canLoad||!s.live)return;let l,d,c;if(s.canBlockReload&&s.endSN&&s.advanced){let T=this.hls.config.lowLatencyMode,A=s.lastPartSn,k=s.endSN,L=s.lastPartIndex,N=L!==-1,D=A===k,$=T?0:L;N?(d=D?k+1:A,c=D?$:L+1):d=k+1;let O=s.age,H=O+s.ageHeader,q=Math.min(H-s.partTarget,s.targetduration*1.5);if(q>0){if(i&&q>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${q} with playlist age: ${s.age}`),q=0;else{let P=Math.floor(q/s.targetduration);if(d+=P,c!==void 0){let X=Math.round(q%s.targetduration/s.partTarget);c+=X}this.log(`CDN Tune-in age: ${s.ageHeader}s last advanced ${O.toFixed(2)}s goal: ${q} skip sn ${P} to part ${c}`)}s.tuneInGoal=q}if(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,c),T||!D){this.loadPlaylist(l);return}}else s.canBlockReload&&(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,c));let u=this.hls.mainForwardBufferInfo,h=u?u.end-u.len:0,f=(s.edge-h)*1e3,g=r_(s,f);s.updated&&a>this.requestScheduled+g&&(this.requestScheduled=n.loading.start),d!==void 0&&s.canBlockReload?this.requestScheduled=n.loading.first+g-(s.partTarget*1e3||1e3):this.requestScheduled===-1||this.requestScheduled+g<a?this.requestScheduled=a:this.requestScheduled-a<=0&&(this.requestScheduled+=g);let E=this.requestScheduled-a;E=Math.max(0,E),this.log(`reload live playlist ${e} in ${Math.round(E)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(l),E)}else this.clearTimer()}getDeliveryDirectives(e,t,i,s){let n=ZT(e,i);return t!=null&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,s=t.part,n=Bn.No),new pl(i,s,n)}checkRetry(e){let t=e.details,i=gl(e),s=e.errorAction,{action:n,retryCount:a=0,retryConfig:o}=s||{},l=!!s&&!!o&&(n===Mt.RetryRequest||!s.resolved&&n===Mt.SendAlternateToPenaltyBox);if(l){var d;if(this.requestScheduled=-1,a>=o.maxNumRetry)return!1;if(i&&(d=e.context)!=null&&d.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" without delivery-directives`),this.loadPlaylist();else{let c=Ih(o,a);this.timer=self.setTimeout(()=>this.loadPlaylist(),c),this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" in ${c}ms`)}e.levelRetry=!0,s.resolved=!0}return l}},uu,Uu=class extends Vn{constructor(e,t){super(e,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=t,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.ERROR,this.onError,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}startLoad(){this._levels.forEach(t=>{t.loadError=0,t.fragmentError=0}),super.startLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[]}onManifestLoading(e,t){this.resetLevels()}onManifestLoaded(e,t){let i=[],s={},n;t.levels.forEach(a=>{var o;let l=a.attrs;((o=a.audioCodec)==null?void 0:o.indexOf("mp4a.40.34"))!==-1&&(uu||(uu=/chrome|firefox/i.test(navigator.userAgent)),uu&&(a.audioCodec=void 0));let{AUDIO:d,CODECS:c,"FRAME-RATE":u,"PATHWAY-ID":h,RESOLUTION:f,SUBTITLES:g}=l,T=`${`${h||"."}-`}${a.bitrate}-${f}-${u}-${c}`;n=s[T],n?n.addFallback(a):(n=new qr(a),s[T]=n,i.push(n)),El(n,"audio",d),El(n,"text",g)}),this.filterAndSortMediaOptions(i,t)}filterAndSortMediaOptions(e,t){let i=[],s=[],n=!1,a=!1,o=!1,l=e.filter(({audioCodec:f,videoCodec:g,width:E,height:T,unknownCodecs:A})=>(n||(n=!!(E&&T)),a||(a=!!g),o||(o=!!f),!(A!=null&&A.length)&&(!f||ou(f,"audio"))&&(!g||ou(g,"video"))));if((n||a)&&o&&(l=l.filter(({videoCodec:f,width:g,height:E})=>!!f||!!(g&&E))),l.length===0){Promise.resolve().then(()=>{if(this.hls){let f=new Error("no level with compatible codecs found in manifest");this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,error:f,reason:f.message})}});return}t.audioTracks&&(i=t.audioTracks.filter(f=>!f.audioCodec||ou(f.audioCodec,"audio")),Tg(i)),t.subtitles&&(s=t.subtitles,Tg(s));let d=l.slice(0);l.sort((f,g)=>f.attrs["HDCP-LEVEL"]!==g.attrs["HDCP-LEVEL"]?(f.attrs["HDCP-LEVEL"]||"")>(g.attrs["HDCP-LEVEL"]||"")?1:-1:f.bitrate!==g.bitrate?f.bitrate-g.bitrate:f.attrs["FRAME-RATE"]!==g.attrs["FRAME-RATE"]?f.attrs.decimalFloatingPoint("FRAME-RATE")-g.attrs.decimalFloatingPoint("FRAME-RATE"):f.attrs.SCORE!==g.attrs.SCORE?f.attrs.decimalFloatingPoint("SCORE")-g.attrs.decimalFloatingPoint("SCORE"):n&&f.height!==g.height?f.height-g.height:0);let c=d[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==d.length)){for(let f=0;f<d.length;f++)if(d[f].pathwayId===l[0].pathwayId){c=d[f];break}}this._levels=l;for(let f=0;f<l.length;f++)if(l[f]===c){this._firstLevel=f,this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${c.bitrate}`);break}let u=o&&!a,h={levels:l,audioTracks:i,subtitleTracks:s,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:o,video:a,altAudio:!u&&i.some(f=>!!f.url)};this.hls.trigger(b.MANIFEST_PARSED,h),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(e){let t=this._levels;if(t.length===0)return;if(e<0||e>=t.length){let c=new Error("invalid level idx"),u=e<0;if(this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.LEVEL_SWITCH_ERROR,level:e,fatal:u,error:c,reason:c.message}),u)return;e=Math.min(e,t.length-1)}let i=this.currentLevelIndex,s=this.currentLevel,n=s?s.attrs["PATHWAY-ID"]:void 0,a=t[e],o=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=a,i===e&&a.details&&s&&n===o)return;this.log(`Switching to level ${e}${o?" with Pathway "+o:""} from level ${i}${n?" with Pathway "+n:""}`);let l=pt({},a,{level:e,maxBitrate:a.maxBitrate,attrs:a.attrs,uri:a.uri,urlId:a.urlId});delete l._attrs,delete l._urlId,this.hls.trigger(b.LEVEL_SWITCHING,l);let d=a.details;if(!d||d.live){let c=this.switchParams(a.uri,s==null?void 0:s.details);this.loadPlaylist(c)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,this._startLevel===void 0&&(this._startLevel=e),e!==-1&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(this._startLevel===void 0){let e=this.hls.config.startLevel;return e!==void 0?e:this._firstLevel}else return this._startLevel}set startLevel(e){this._startLevel=e}onError(e,t){t.fatal||!t.context||t.context.type===Ue.LEVEL&&t.context.level===this.level&&this.checkRetry(t)}onFragLoaded(e,{frag:t}){if(t!==void 0&&t.type===ge.MAIN){let i=this._levels[t.level];i!==void 0&&(i.loadError=0)}}onLevelLoaded(e,t){var i;let{level:s,details:n}=t,a=this._levels[s];if(!a){var o;this.warn(`Invalid level index ${s}`),(o=t.deliveryDirectives)!=null&&o.skip&&(n.deltaUpdateFailed=!0);return}s===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(s,t,a.details)):(i=t.deliveryDirectives)!=null&&i.skip&&(n.deltaUpdateFailed=!0)}onAudioTrackSwitched(e,t){let i=this.currentLevel;if(!i)return;let s=this.hls.audioTracks[t.id].groupId;if(i.audioGroupIds&&i.audioGroupId!==s){let n=-1;for(let a=0;a<i.audioGroupIds.length;a++)if(i.audioGroupIds[a]===s){n=a;break}n!==-1&&n!==i.urlId&&(i.urlId=n,this.canLoad&&this.startLoad())}}loadPlaylist(e){super.loadPlaylist();let t=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let s=i.urlId,n=i.uri;if(e)try{n=e.addDirectives(n)}catch(o){this.warn(`Could not construct new URL with HLS Delivery Directives: ${o}`)}let a=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${t}${(e==null?void 0:e.msn)!==void 0?" at sn "+e.msn+" part "+e.part:""} with${a?" Pathway "+a:""} URI ${s+1}/${i.url.length} ${n}`),this.clearTimer(),this.hls.trigger(b.LEVEL_LOADING,{url:n,level:t,id:s,deliveryDirectives:e||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=e)}removeLevel(e,t){let i=(n,a)=>a!==t,s=this._levels.filter((n,a)=>a!==e?!0:n.url.length>1&&t!==void 0?(n.url=n.url.filter(i),n.audioGroupIds&&(n.audioGroupIds=n.audioGroupIds.filter(i)),n.textGroupIds&&(n.textGroupIds=n.textGroupIds.filter(i)),n.urlId=0,!0):(this.steering&&this.steering.removeLevel(n),!1));this.hls.trigger(b.LEVELS_UPDATED,{levels:s})}onLevelsUpdated(e,{levels:t}){t.forEach((i,s)=>{let{details:n}=i;n!=null&&n.fragments&&n.fragments.forEach(a=>{a.level=s})}),this._levels=t}};function El(r,e,t){!t||(e==="audio"?(r.audioGroupIds||(r.audioGroupIds=[]),r.audioGroupIds[r.url.length-1]=t):e==="text"&&(r.textGroupIds||(r.textGroupIds=[]),r.textGroupIds[r.url.length-1]=t))}function Tg(r){let e={};r.forEach(t=>{let i=t.groupId||"";t.id=e[i]=e[i]||0,e[i]++})}var Tt={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Fu=class{constructor(e){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=e,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.BUFFER_APPENDED,this.onBufferAppended,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.BUFFER_APPENDED,this.onBufferAppended,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(e,t){let i=this.activePartLists[t];if(i)for(let s=i.length;s--;){let n=i[s];if(!n)break;let a=n.end;if(n.start<=e&&a!==null&&e<=a)return n}return this.getBufferedFrag(e,t)}getBufferedFrag(e,t){let{fragments:i}=this,s=Object.keys(i);for(let n=s.length;n--;){let a=i[s[n]];if((a==null?void 0:a.body.type)===t&&a.buffered){let o=a.body;if(o.start<=e&&e<=o.end)return o}}return null}detectEvictedFragments(e,t,i,s){this.timeRanges&&(this.timeRanges[e]=t);let n=(s==null?void 0:s.fragment.sn)||-1;Object.keys(this.fragments).forEach(a=>{let o=this.fragments[a];if(!o||n>=o.body.sn)return;if(!o.buffered&&!o.loaded){o.body.type===i&&this.removeFragment(o.body);return}let l=o.range[e];!l||l.time.some(d=>{let c=!this.isTimeBuffered(d.startPTS,d.endPTS,t);return c&&this.removeFragment(o.body),c})})}detectPartialFragments(e){let t=this.timeRanges,{frag:i,part:s}=e;if(!t||i.sn==="initSegment")return;let n=Bs(i),a=this.fragments[n];if(!a||a.buffered&&i.gap)return;let o=!i.relurl;Object.keys(t).forEach(l=>{let d=i.elementaryStreams[l];if(!d)return;let c=t[l],u=o||d.partial===!0;a.range[l]=this.getBufferedTimes(i,s,u,c)}),a.loaded=null,Object.keys(a.range).length?(a.buffered=!0,a.body.endList&&(this.endListFragments[a.body.type]=a),rl(a)||this.removeParts(i.sn-1,i.type)):this.removeFragment(a.body)}removeParts(e,t){let i=this.activePartLists[t];!i||(this.activePartLists[t]=i.filter(s=>s.fragment.sn>=e))}fragBuffered(e,t){let i=Bs(e),s=this.fragments[i];!s&&t&&(s=this.fragments[i]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap&&(this.hasGaps=!0)),s&&(s.loaded=null,s.buffered=!0)}getBufferedTimes(e,t,i,s){let n={time:[],partial:i},a=e.start,o=e.end,l=e.minEndPTS||o,d=e.maxStartPTS||a;for(let c=0;c<s.length;c++){let u=s.start(c)-this.bufferPadding,h=s.end(c)+this.bufferPadding;if(d>=u&&l<=h){n.time.push({startPTS:Math.max(a,s.start(c)),endPTS:Math.min(o,s.end(c))});break}else if(a<h&&o>u)n.partial=!0,n.time.push({startPTS:Math.max(a,s.start(c)),endPTS:Math.min(o,s.end(c))});else if(o<=u)break}return n}getPartialFragment(e){let t=null,i,s,n,a=0,{bufferPadding:o,fragments:l}=this;return Object.keys(l).forEach(d=>{let c=l[d];!c||rl(c)&&(s=c.body.start-o,n=c.body.end+o,e>=s&&e<=n&&(i=Math.min(e-s,n-e),a<=i&&(t=c.body,a=i)))}),t}isEndListAppended(e){let t=this.endListFragments[e];return t!==void 0&&(t.buffered||rl(t))}getState(e){let t=Bs(e),i=this.fragments[t];return i?i.buffered?rl(i)?Tt.PARTIAL:Tt.OK:Tt.APPENDING:Tt.NOT_LOADED}isTimeBuffered(e,t,i){let s,n;for(let a=0;a<i.length;a++){if(s=i.start(a)-this.bufferPadding,n=i.end(a)+this.bufferPadding,e>=s&&t<=n)return!0;if(t<=s)return!1}return!1}onFragLoaded(e,t){let{frag:i,part:s}=t;if(i.sn==="initSegment"||i.bitrateTest)return;let n=s?null:t,a=Bs(i);this.fragments[a]={body:i,appendedPTS:null,loaded:n,buffered:!1,range:Object.create(null)}}onBufferAppended(e,t){let{frag:i,part:s,timeRanges:n}=t;if(i.sn==="initSegment")return;let a=i.type;if(s){let o=this.activePartLists[a];o||(this.activePartLists[a]=o=[]),o.push(s)}this.timeRanges=n,Object.keys(n).forEach(o=>{let l=n[o];this.detectEvictedFragments(o,l,a,s)})}onFragBuffered(e,t){this.detectPartialFragments(t)}hasFragment(e){let t=Bs(e);return!!this.fragments[t]}hasParts(e){var t;return!!((t=this.activePartLists[e])!=null&&t.length)}removeFragmentsInRange(e,t,i,s,n){s&&!this.hasGaps||Object.keys(this.fragments).forEach(a=>{let o=this.fragments[a];if(!o)return;let l=o.body;l.type!==i||s&&!l.gap||l.start<t&&l.end>e&&(o.buffered||n)&&this.removeFragment(l)})}removeFragment(e){let t=Bs(e);e.stats.loaded=0,e.clearElementaryStreamInfo();let i=this.activePartLists[e.type];if(i){let s=e.sn;this.activePartLists[e.type]=i.filter(n=>n.fragment.sn!==s)}delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}};function rl(r){var e,t,i;return r.buffered&&(r.body.gap||((e=r.range.video)==null?void 0:e.partial)||((t=r.range.audio)==null?void 0:t.partial)||((i=r.range.audiovideo)==null?void 0:i.partial))}function Bs(r){return`${r.type}_${r.level}_${r.urlId}_${r.sn}`}var _g=Math.pow(2,17),Bu=class{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(e,t){let i=e.url;if(!i)return Promise.reject(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error(`Fragment does not have a ${i?"part list":"url"}`),networkDetails:null}));this.abort();let s=this.config,n=s.fLoader,a=s.loader;return new Promise((o,l)=>{if(this.loader&&this.loader.destroy(),e.gap)if(e.tagList.some(f=>f[0]==="GAP")){l(Sg(e));return}else e.gap=!1;let d=this.loader=e.loader=n?new n(s):new a(s),c=Ag(e),u=yg(s.fragLoadPolicy.default),h={loadPolicy:u,timeout:u.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:e.sn==="initSegment"?1/0:_g};e.stats=d.stats,d.load(c,h,{onSuccess:(f,g,E,T)=>{this.resetLoader(e,d);let A=f.data;E.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(A.slice(0,16)),A=A.slice(16)),o({frag:e,part:null,payload:A,networkDetails:T})},onError:(f,g,E,T)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:jt({url:i,data:void 0},f),error:new Error(`HTTP Error ${f.code} ${f.text}`),networkDetails:E,stats:T}))},onAbort:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:E,stats:f}))},onTimeout:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:E,stats:f}))},onProgress:(f,g,E,T)=>{t&&t({frag:e,part:null,payload:E,networkDetails:T})}})})}loadPart(e,t,i){this.abort();let s=this.config,n=s.fLoader,a=s.loader;return new Promise((o,l)=>{if(this.loader&&this.loader.destroy(),e.gap||t.gap){l(Sg(e,t));return}let d=this.loader=e.loader=n?new n(s):new a(s),c=Ag(e,t),u=yg(s.fragLoadPolicy.default),h={loadPolicy:u,timeout:u.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:_g};t.stats=d.stats,d.load(c,h,{onSuccess:(f,g,E,T)=>{this.resetLoader(e,d),this.updateStatsFromPart(e,t);let A={frag:e,part:t,payload:f.data,networkDetails:T};i(A),o(A)},onError:(f,g,E,T)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:t,response:jt({url:c.url,data:void 0},f),error:new Error(`HTTP Error ${f.code} ${f.text}`),networkDetails:E,stats:T}))},onAbort:(f,g,E)=>{e.stats.aborted=t.stats.aborted,this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.INTERNAL_ABORTED,fatal:!1,frag:e,part:t,error:new Error("Aborted"),networkDetails:E,stats:f}))},onTimeout:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:t,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:E,stats:f}))}})})}updateStatsFromPart(e,t){let i=e.stats,s=t.stats,n=s.total;if(i.loaded+=s.loaded,n){let l=Math.round(e.duration/t.duration),d=Math.min(Math.round(i.loaded/n),l),u=(l-d)*Math.round(i.loaded/d);i.total=i.loaded+u}else i.total=Math.max(i.loaded,i.total);let a=i.loading,o=s.loading;a.start?a.first+=o.first-o.start:(a.start=o.start,a.first=o.first),a.end=o.end}resetLoader(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()}};function Ag(r,e=null){let t=e||r,i={frag:r,part:e,responseType:"arraybuffer",url:t.url,headers:{},rangeStart:0,rangeEnd:0},s=t.byteRangeStartOffset,n=t.byteRangeEndOffset;if(ce(s)&&ce(n)){var a;let o=s,l=n;if(r.sn==="initSegment"&&((a=r.decryptdata)==null?void 0:a.method)==="AES-128"){let d=n-s;d%16&&(l=n+(16-d%16)),s!==0&&(i.resetIV=!0,o=s-16)}i.rangeStart=o,i.rangeEnd=l}return i}function Sg(r,e){let t=new Error(`GAP ${r.gap?"tag":"attribute"} found`),i={type:pe.MEDIA_ERROR,details:B.FRAG_GAP,fatal:!1,frag:r,error:t,networkDetails:null};return e&&(i.part=e),(e||r).stats.aborted=!0,new vi(i)}var vi=class extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}},$u=class{constructor(e){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(let t in this.keyUriToKeyInfo){let i=this.keyUriToKeyInfo[t].loader;if(i){if(e&&e!==i.context.frag.type)return;i.abort()}}}detach(){for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}}destroy(){this.detach();for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e].loader;t&&t.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(e,t=B.KEY_LOAD_ERROR,i,s,n){return new vi({type:pe.NETWORK_ERROR,details:t,fatal:!1,frag:e,response:n,error:i,networkDetails:s})}loadClear(e,t){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:s}=e;for(let n=0;n<t.length;n++){let a=t[n];if(s<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then(o=>{a.setKeyFormat(o)});break}}}}load(e){return!e.decryptdata&&e.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(e).then(t=>this.loadInternal(e,t)):this.loadInternal(e)}loadInternal(e,t){var i,s;t&&e.setKeyFormat(t);let n=e.decryptdata;if(!n){let d=new Error(t?`Expected frag.decryptdata to be defined after setting format ${t}`:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,d))}let a=n.uri;if(!a)return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${a}"`)));let o=this.keyUriToKeyInfo[a];if((i=o)!=null&&i.decryptdata.key)return n.key=o.decryptdata.key,Promise.resolve({frag:e,keyInfo:o});if((s=o)!=null&&s.keyLoadPromise){var l;switch((l=o.mediaKeySessionContext)==null?void 0:l.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return o.keyLoadPromise.then(d=>(n.key=d.keyInfo.decryptdata.key,{frag:e,keyInfo:o}))}}switch(o=this.keyUriToKeyInfo[a]={decryptdata:n,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},n.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return n.keyFormat==="identity"?this.loadKeyHTTP(o,e):this.loadKeyEME(o,e);case"AES-128":return this.loadKeyHTTP(o,e);default:return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${n.method}"`)))}}loadKeyEME(e,t){let i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){let s=this.emeController.loadKey(i);if(s)return(e.keyLoadPromise=s.then(n=>(e.mediaKeySessionContext=n,i))).catch(n=>{throw e.keyLoadPromise=null,n})}return Promise.resolve(i)}loadKeyHTTP(e,t){let i=this.config,s=i.loader,n=new s(i);return t.keyLoader=e.loader=n,e.keyLoadPromise=new Promise((a,o)=>{let l={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},d=i.keyLoadPolicy.default,c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(h,f,g,E)=>{let{frag:T,keyInfo:A,url:k}=g;if(!T.decryptdata||A!==this.keyUriToKeyInfo[k])return o(this.createKeyLoadError(T,B.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),E));A.decryptdata.key=T.decryptdata.key=new Uint8Array(h.data),T.keyLoader=null,A.loader=null,a({frag:T,keyInfo:A})},onError:(h,f,g,E)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.KEY_LOAD_ERROR,new Error(`HTTP Error ${h.code} loading key ${h.text}`),g,jt({url:l.url,data:void 0},h)))},onTimeout:(h,f,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),g))},onAbort:(h,f,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.INTERNAL_ABORTED,new Error("key loading aborted"),g))}};n.load(l,c,u)})}resetLoader(e){let{frag:t,keyInfo:i,url:s}=e,n=i.loader;t.keyLoader===n&&(t.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[s],n&&n.destroy()}},Gu=class{constructor(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return this._tickInterval?!1:(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,!0):!1}clearNextTick(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0):!1}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}},u_={length:0,start:()=>0,end:()=>0},je=class{static isBuffered(e,t){try{if(e){let i=je.getBuffered(e);for(let s=0;s<i.length;s++)if(t>=i.start(s)&&t<=i.end(s))return!0}}catch{}return!1}static bufferInfo(e,t,i){try{if(e){let s=je.getBuffered(e),n=[],a;for(a=0;a<s.length;a++)n.push({start:s.start(a),end:s.end(a)});return this.bufferedInfo(n,t,i)}}catch{}return{len:0,start:t,end:t,nextStart:void 0}}static bufferedInfo(e,t,i){t=Math.max(0,t),e.sort(function(d,c){let u=d.start-c.start;return u||c.end-d.end});let s=[];if(i)for(let d=0;d<e.length;d++){let c=s.length;if(c){let u=s[c-1].end;e[d].start-u<i?e[d].end>u&&(s[c-1].end=e[d].end):s.push(e[d])}else s.push(e[d])}else s=e;let n=0,a,o=t,l=t;for(let d=0;d<s.length;d++){let c=s[d].start,u=s[d].end;if(t+i>=c&&t<u)o=c,l=u,n=l-t;else if(t+i<c){a=c;break}}return{len:n,start:o||0,end:l||0,nextStart:a}}static getBuffered(e){try{return e.buffered}catch(t){return M.log("failed to get media.buffered",t),u_}}},Kn=class{constructor(e,t,i,s=0,n=-1,a=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing=sl(),this.buffering={audio:sl(),video:sl(),audiovideo:sl()},this.level=e,this.sn=t,this.id=i,this.size=s,this.part=n,this.partial=a}};function sl(){return{start:0,executeStart:0,executeEnd:0,end:0}}function o0(r,e){let t=null;for(let i=0,s=r.length;i<s;i++){let n=r[i];if(n&&n.cc===e){t=n;break}}return t}function h_(r,e,t){return!!(e.details&&(t.endCC>t.startCC||r&&r.cc<t.startCC))}function f_(r,e,t=0){let i=r.fragments,s=e.fragments;if(!s.length||!i.length){M.log("No fragments to align");return}let n=o0(i,s[0].cc);if(!n||n&&!n.startPTS){M.log("No frag in previous level to align on");return}return n}function xg(r,e){if(r){let t=r.start+e;r.start=r.startPTS=t,r.endPTS=t+r.duration}}function Lh(r,e){let t=e.fragments;for(let i=0,s=t.length;i<s;i++)xg(t[i],r);e.fragmentHint&&xg(e.fragmentHint,r),e.alignedSliding=!0}function m_(r,e,t){!e||(p_(r,t,e),!t.alignedSliding&&e.details&&g_(t,e.details),!t.alignedSliding&&e.details&&!t.skippedSegments&&s0(e.details,t))}function p_(r,e,t){if(h_(r,t,e)){let i=f_(t.details,e);i&&ce(i.start)&&(M.log(`Adjusting PTS using last level due to CC increase within current level ${e.url}`),Lh(i.start,e))}}function g_(r,e){if(!e.fragments.length||!r.hasProgramDateTime||!e.hasProgramDateTime)return;let t=e.fragments[0].programDateTime,i=r.fragments[0].programDateTime,s=(i-t)/1e3+e.fragments[0].start;s&&ce(s)&&(M.log(`Adjusting PTS using programDateTime delta ${i-t}ms, sliding:${s.toFixed(3)} ${r.url} `),Lh(s,r))}function l0(r,e){if(!r.hasProgramDateTime||!e.hasProgramDateTime)return;let t=r.fragments,i=e.fragments;if(!t.length||!i.length)return;let s=Math.round(i.length/2)-1,n=i[s],a=o0(t,n.cc)||t[Math.round(t.length/2)-1],o=n.programDateTime,l=a.programDateTime;if(o===null||l===null)return;let d=(l-o)/1e3-(a.start-n.start);Lh(d,r)}var Hu=class{constructor(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}decrypt(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)}},Vu=class{constructor(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}};function v_(r){let e=r.byteLength,t=e&&new DataView(r.buffer).getUint8(e-1);return t?Vr(r,0,e-t):r}var Ku=class{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(e){let t=new DataView(e),i=new Uint32Array(4);for(let s=0;s<4;s++)i[s]=t.getUint32(s*4);return i}initTable(){let e=this.sBox,t=this.invSBox,i=this.subMix,s=i[0],n=i[1],a=i[2],o=i[3],l=this.invSubMix,d=l[0],c=l[1],u=l[2],h=l[3],f=new Uint32Array(256),g=0,E=0,T=0;for(T=0;T<256;T++)T<128?f[T]=T<<1:f[T]=T<<1^283;for(T=0;T<256;T++){let A=E^E<<1^E<<2^E<<3^E<<4;A=A>>>8^A&255^99,e[g]=A,t[A]=g;let k=f[g],L=f[k],N=f[L],D=f[A]*257^A*16843008;s[g]=D<<24|D>>>8,n[g]=D<<16|D>>>16,a[g]=D<<8|D>>>24,o[g]=D,D=N*16843009^L*65537^k*257^g*16843008,d[A]=D<<24|D>>>8,c[A]=D<<16|D>>>16,u[A]=D<<8|D>>>24,h[A]=D,g?(g=k^f[f[f[N^k]]],E^=f[f[E]]):g=E=1}}expandKey(e){let t=this.uint8ArrayToUint32Array_(e),i=!0,s=0;for(;s<t.length&&i;)i=t[s]===this.key[s],s++;if(i)return;this.key=t;let n=this.keySize=t.length;if(n!==4&&n!==6&&n!==8)throw new Error("Invalid aes key size="+n);let a=this.ksRows=(n+6+1)*4,o,l,d=this.keySchedule=new Uint32Array(a),c=this.invKeySchedule=new Uint32Array(a),u=this.sBox,h=this.rcon,f=this.invSubMix,g=f[0],E=f[1],T=f[2],A=f[3],k,L;for(o=0;o<a;o++){if(o<n){k=d[o]=t[o];continue}L=k,o%n===0?(L=L<<8|L>>>24,L=u[L>>>24]<<24|u[L>>>16&255]<<16|u[L>>>8&255]<<8|u[L&255],L^=h[o/n|0]<<24):n>6&&o%n===4&&(L=u[L>>>24]<<24|u[L>>>16&255]<<16|u[L>>>8&255]<<8|u[L&255]),d[o]=k=(d[o-n]^L)>>>0}for(l=0;l<a;l++)o=a-l,l&3?L=d[o]:L=d[o-4],l<4||o<=4?c[l]=L:c[l]=g[u[L>>>24]]^E[u[L>>>16&255]]^T[u[L>>>8&255]]^A[u[L&255]],c[l]=c[l]>>>0}networkToHostOrderSwap(e){return e<<24|(e&65280)<<8|(e&16711680)>>8|e>>>24}decrypt(e,t,i){let s=this.keySize+6,n=this.invKeySchedule,a=this.invSBox,o=this.invSubMix,l=o[0],d=o[1],c=o[2],u=o[3],h=this.uint8ArrayToUint32Array_(i),f=h[0],g=h[1],E=h[2],T=h[3],A=new Int32Array(e),k=new Int32Array(A.length),L,N,D,$,O,H,q,P,X,z,Ae,Ee,be,we,Se=this.networkToHostOrderSwap;for(;t<A.length;){for(X=Se(A[t]),z=Se(A[t+1]),Ae=Se(A[t+2]),Ee=Se(A[t+3]),O=X^n[0],H=Ee^n[1],q=Ae^n[2],P=z^n[3],be=4,we=1;we<s;we++)L=l[O>>>24]^d[H>>16&255]^c[q>>8&255]^u[P&255]^n[be],N=l[H>>>24]^d[q>>16&255]^c[P>>8&255]^u[O&255]^n[be+1],D=l[q>>>24]^d[P>>16&255]^c[O>>8&255]^u[H&255]^n[be+2],$=l[P>>>24]^d[O>>16&255]^c[H>>8&255]^u[q&255]^n[be+3],O=L,H=N,q=D,P=$,be=be+4;L=a[O>>>24]<<24^a[H>>16&255]<<16^a[q>>8&255]<<8^a[P&255]^n[be],N=a[H>>>24]<<24^a[q>>16&255]<<16^a[P>>8&255]<<8^a[O&255]^n[be+1],D=a[q>>>24]<<24^a[P>>16&255]<<16^a[O>>8&255]<<8^a[H&255]^n[be+2],$=a[P>>>24]<<24^a[O>>16&255]<<16^a[H>>8&255]<<8^a[q&255]^n[be+3],k[t]=Se(L^f),k[t+1]=Se($^g),k[t+2]=Se(D^E),k[t+3]=Se(N^T),f=X,g=z,E=Ae,T=Ee,t=t+4}return k.buffer}},E_=16,Wn=class{constructor(e,{removePKCS7Padding:t=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=e.enableSoftwareAES,this.removePKCS7Padding=t,t)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch{}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:e,remainderData:t}=this;if(!e||t)return this.reset(),null;let i=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?v_(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(e,t,i){return this.useSoftware?new Promise((s,n)=>{this.softwareDecrypt(new Uint8Array(e),t,i);let a=this.flush();a?s(a.buffer):n(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(e),t,i)}softwareDecrypt(e,t,i){let{currentIV:s,currentResult:n,remainderData:a}=this;this.logOnce("JS AES decrypt"),a&&(e=Kr(a,e),this.remainderData=null);let o=this.getValidChunk(e);if(!o.length)return null;s&&(i=s);let l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new Ku),l.expandKey(t);let d=n;return this.currentResult=l.decrypt(o.buffer,0,i),this.currentIV=Vr(o,-16).buffer,d||null}webCryptoDecrypt(e,t,i){let s=this.subtle;return(this.key!==t||!this.fastAesKey)&&(this.key=t,this.fastAesKey=new Vu(s,t)),this.fastAesKey.expandKey().then(n=>s?(this.logOnce("WebCrypto AES decrypt"),new Hu(s,new Uint8Array(i)).decrypt(e.buffer,n)):Promise.reject(new Error("web crypto not initialized"))).catch(n=>(M.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${n.name}: ${n.message}`),this.onWebCryptoError(e,t,i)))}onWebCryptoError(e,t,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i);let s=this.flush();if(s)return s.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(e){let t=e,i=e.length-e.length%E_;return i!==e.length&&(t=Vr(e,0,i),this.remainderData=Vr(e,i)),t}logOnce(e){!this.logEnabled||(M.log(`[decrypter]: ${e}`),this.logEnabled=!1)}},b_={toString:function(r){let e="",t=r.length;for(let i=0;i<t;i++)e+=`[${r.start(i).toFixed(3)}-${r.end(i).toFixed(3)}]`;return e}},W={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},qn=class extends Gu{constructor(e,t,i,s,n){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=W.STOPPED,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=n,this.logPrefix=s,this.log=M.log.bind(M,`${s}:`),this.warn=M.warn.bind(M,`${s}:`),this.hls=e,this.fragmentLoader=new Bu(e.config),this.keyLoader=i,this.fragmentTracker=t,this.config=e.config,this.decrypter=new Wn(e.config),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let e=this.fragCurrent;e!=null&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=W.STOPPED}_streamEnded(e,t){if(t.live||e.nextStart||!e.end||!this.media)return!1;let i=t.partList;if(i!=null&&i.length){let n=i[i.length-1];return je.isBuffered(this.media,n.start+n.duration/2)}let s=t.fragments[t.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(s)}getLevelDetails(){if(this.levels&&this.levelLastLoaded!==null){var e;return(e=this.levels[this.levelLastLoaded])==null?void 0:e.details}}onMediaAttached(e,t){let i=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let s=this.config;this.levels&&s.autoStartLoad&&this.state===W.STOPPED&&this.startLoad(s.startPosition)}onMediaDetaching(){let e=this.media;e!=null&&e.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&this.onvseeking&&this.onvended&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:e,fragCurrent:t,media:i,mediaBuffer:s,state:n}=this,a=i?i.currentTime:0,o=je.bufferInfo(s||i,a,e.maxBufferHole);if(this.log(`media seeking to ${ce(a)?a.toFixed(3):a}, state: ${n}`),this.state===W.ENDED)this.resetLoadingState();else if(t){let l=e.maxFragLookUpTolerance,d=t.start-l,c=t.start+t.duration+l;if(!o.len||c<o.start||d>o.end){let u=a>c;(a<d||u)&&(u&&t.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),t.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),!this.loadedmetadata&&!o.len&&(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(e,t){this.startTimeOffset=t.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.stopLoad(),super.onHandlerDestroying()}onHandlerDestroyed(){this.state=W.STOPPED,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(e,t,i){this._loadFragForPlayback(e,t,i)}_loadFragForPlayback(e,t,i){let s=n=>{if(this.fragContextChanged(e)){this.warn(`Fragment ${e.sn}${n.part?" p: "+n.part.index:""} of level ${e.level} was dropped during download.`),this.fragmentTracker.removeFragment(e);return}e.stats.chunkCount++,this._handleFragmentLoadProgress(n)};this._doFragLoad(e,t,i,s).then(n=>{if(!n)return;let a=this.state;if(this.fragContextChanged(e)){(a===W.FRAG_LOADING||!this.fragCurrent&&a===W.PARSING)&&(this.fragmentTracker.removeFragment(e),this.state=W.IDLE);return}"payload"in n&&(this.log(`Loaded fragment ${e.sn} of level ${e.level}`),this.hls.trigger(b.FRAG_LOADED,n)),this._handleFragmentLoadComplete(n)}).catch(n=>{this.state===W.STOPPED||this.state===W.ERROR||(this.warn(n),this.resetFragmentLoading(e))})}clearTrackerIfNeeded(e){var t;let{fragmentTracker:i}=this;if(i.getState(e)===Tt.APPENDING){let n=e.type,a=this.getFwdBufferInfo(this.mediaBuffer,n),o=Math.max(e.duration,a?a.len:this.config.maxBufferLength);this.reduceMaxBufferLength(o)&&i.removeFragment(e)}else((t=this.mediaBuffer)==null?void 0:t.buffered.length)===0?i.removeAllFragments():i.hasParts(e.type)&&(i.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),i.getState(e)===Tt.PARTIAL&&i.removeFragment(e))}flushMainBuffer(e,t,i=null){if(!(e-t))return;let s={startOffset:e,endOffset:t,type:i};this.hls.trigger(b.BUFFER_FLUSHING,s)}_loadInitSegment(e,t){this._doFragLoad(e,t).then(i=>{if(!i||this.fragContextChanged(e)||!this.levels)throw new Error("init load aborted");return i}).then(i=>{let{hls:s}=this,{payload:n}=i,a=e.decryptdata;if(n&&n.byteLength>0&&a&&a.key&&a.iv&&a.method==="AES-128"){let o=self.performance.now();return this.decrypter.decrypt(new Uint8Array(n),a.key.buffer,a.iv.buffer).catch(l=>{throw s.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:e}),l}).then(l=>{let d=self.performance.now();return s.trigger(b.FRAG_DECRYPTED,{frag:e,payload:l,stats:{tstart:o,tdecrypt:d}}),i.payload=l,i})}return i}).then(i=>{let{fragCurrent:s,hls:n,levels:a}=this;if(!a)throw new Error("init load aborted, missing levels");let o=e.stats;this.state=W.IDLE,t.fragmentError=0,e.data=new Uint8Array(i.payload),o.parsing.start=o.buffering.start=self.performance.now(),o.parsing.end=o.buffering.end=self.performance.now(),i.frag===s&&n.trigger(b.FRAG_BUFFERED,{stats:o,frag:s,part:null,id:e.type}),this.tick()}).catch(i=>{this.state===W.STOPPED||this.state===W.ERROR||(this.warn(i),this.resetFragmentLoading(e))})}fragContextChanged(e){let{fragCurrent:t}=this;return!e||!t||e.level!==t.level||e.sn!==t.sn||e.urlId!==t.urlId}fragBufferedComplete(e,t){var i,s,n,a;let o=this.mediaBuffer?this.mediaBuffer:this.media;this.log(`Buffered ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.playlistType===ge.MAIN?"level":"track"} ${e.level} (frag:[${((i=e.startPTS)!=null?i:NaN).toFixed(3)}-${((s=e.endPTS)!=null?s:NaN).toFixed(3)}] > buffer:${o?b_.toString(je.getBuffered(o)):"(detached)"})`),this.state=W.IDLE,o&&(!this.loadedmetadata&&e.type==ge.MAIN&&o.buffered.length&&((n=this.fragCurrent)==null?void 0:n.sn)===((a=this.fragPrevious)==null?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(e){let{transmuxer:t}=this;if(!t)return;let{frag:i,part:s,partsLoaded:n}=e,a=!n||n.length===0||n.some(l=>!l),o=new Kn(i.level,i.sn,i.stats.chunkCount+1,0,s?s.index:-1,!a);t.flush(o)}_handleFragmentLoadProgress(e){}_doFragLoad(e,t,i=null,s){var n;let a=t==null?void 0:t.details;if(!this.levels||!a)throw new Error(`frag load aborted, missing level${a?"":" detail"}s`);let o=null;if(e.encrypted&&!((n=e.decryptdata)!=null&&n.key)?(this.log(`Loading key for ${e.sn} of [${a.startSN}-${a.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${e.level}`),this.state=W.KEY_LOADING,this.fragCurrent=e,o=this.keyLoader.load(e).then(c=>{if(!this.fragContextChanged(c.frag))return this.hls.trigger(b.KEY_LOADED,c),this.state===W.KEY_LOADING&&(this.state=W.IDLE),c}),this.hls.trigger(b.KEY_LOADING,{frag:e}),this.fragCurrent===null&&(o=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))):!e.encrypted&&a.encryptedFragments.length&&this.keyLoader.loadClear(e,a.encryptedFragments),i=Math.max(e.start,i||0),this.config.lowLatencyMode&&e.sn!=="initSegment"){let c=a.partList;if(c&&s){i>e.end&&a.fragmentHint&&(e=a.fragmentHint);let u=this.getNextPart(c,e,i);if(u>-1){let h=c[u];this.log(`Loading part sn: ${e.sn} p: ${h.index} cc: ${e.cc} of playlist [${a.startSN}-${a.endSN}] parts [0-${u}-${c.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${e.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=h.start+h.duration,this.state=W.FRAG_LOADING;let f;return o?f=o.then(g=>!g||this.fragContextChanged(g.frag)?null:this.doFragPartsLoad(e,h,t,s)).catch(g=>this.handleFragLoadError(g)):f=this.doFragPartsLoad(e,h,t,s).catch(g=>this.handleFragLoadError(g)),this.hls.trigger(b.FRAG_LOADING,{frag:e,part:h,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):f}else if(!e.url||this.loadedEndOfParts(c,i))return Promise.resolve(null)}}this.log(`Loading fragment ${e.sn} cc: ${e.cc} ${a?"of ["+a.startSN+"-"+a.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${e.level}, target: ${parseFloat(i.toFixed(3))}`),ce(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=W.FRAG_LOADING;let l=this.config.progressive,d;return l&&o?d=o.then(c=>!c||this.fragContextChanged(c==null?void 0:c.frag)?null:this.fragmentLoader.load(e,s)).catch(c=>this.handleFragLoadError(c)):d=Promise.all([this.fragmentLoader.load(e,l?s:void 0),o]).then(([c])=>(!l&&c&&s&&s(c),c)).catch(c=>this.handleFragLoadError(c)),this.hls.trigger(b.FRAG_LOADING,{frag:e,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):d}doFragPartsLoad(e,t,i,s){return new Promise((n,a)=>{var o;let l=[],d=(o=i.details)==null?void 0:o.partList,c=u=>{this.fragmentLoader.loadPart(e,u,s).then(h=>{l[u.index]=h;let f=h.part;this.hls.trigger(b.FRAG_LOADED,h);let g=Eg(i,e.sn,u.index+1)||n0(d,e.sn,u.index+1);if(g)c(g);else return n({frag:e,part:f,partsLoaded:l})}).catch(a)};c(t)})}handleFragLoadError(e){if("data"in e){let t=e.data;e.data&&t.details===B.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):this.hls.trigger(b.ERROR,t)}else this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}_handleTransmuxerFlush(e){let t=this.getCurrentContext(e);if(!t||this.state!==W.PARSING){!this.fragCurrent&&this.state!==W.STOPPED&&this.state!==W.ERROR&&(this.state=W.IDLE);return}let{frag:i,part:s,level:n}=t,a=self.performance.now();i.stats.parsing.end=a,s&&(s.stats.parsing.end=a),this.updateLevelTiming(i,s,n,e.partial)}getCurrentContext(e){let{levels:t,fragCurrent:i}=this,{level:s,sn:n,part:a}=e;if(!(t!=null&&t[s]))return this.warn(`Levels object was unset while buffering fragment ${n} of level ${s}. The current chunk will not be buffered.`),null;let o=t[s],l=a>-1?Eg(o,n,a):null,d=l?l.fragment:s_(o,n,i);return d?(i&&i!==d&&(d.stats=i.stats),{frag:d,part:l,level:o}):null}bufferFragmentData(e,t,i,s,n){var a;if(!e||this.state!==W.PARSING)return;let{data1:o,data2:l}=e,d=o;if(o&&l&&(d=Kr(o,l)),!((a=d)!=null&&a.length))return;let c={type:e.type,frag:t,part:i,chunkMeta:s,parent:t.type,data:d};if(this.hls.trigger(b.BUFFER_APPENDING,c),e.dropped&&e.independent&&!i){if(n)return;this.flushBufferGap(t)}}flushBufferGap(e){let t=this.media;if(!t)return;if(!je.isBuffered(t,t.currentTime)){this.flushMainBuffer(0,e.start);return}let i=t.currentTime,s=je.bufferInfo(t,i,0),n=e.duration,a=Math.min(this.config.maxFragLookUpTolerance*2,n*.25),o=Math.max(Math.min(e.start-a,s.end-a),i+a);e.start-o>a&&this.flushMainBuffer(o,e.start)}getFwdBufferInfo(e,t){let i=this.getLoadPosition();return ce(i)?this.getFwdBufferInfoAtPos(e,i,t):null}getFwdBufferInfoAtPos(e,t,i){let{config:{maxBufferHole:s}}=this,n=je.bufferInfo(e,t,s);if(n.len===0&&n.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(t,i);if(a&&n.nextStart<a.end)return je.bufferInfo(e,t,Math.max(n.nextStart,s))}return n}getMaxBufferLength(e){let{config:t}=this,i;return e?i=Math.max(8*t.maxBufferSize/e,t.maxBufferLength):i=t.maxBufferLength,Math.min(i,t.maxMaxBufferLength)}reduceMaxBufferLength(e){let t=this.config,i=e||t.maxBufferLength;return t.maxMaxBufferLength>=i?(t.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${t.maxMaxBufferLength}s`),!0):!1}getAppendedFrag(e,t=ge.MAIN){let i=this.fragmentTracker.getAppendedFrag(e,ge.MAIN);return i&&"fragment"in i?i.fragment:i}getNextFragment(e,t){let i=t.fragments,s=i.length;if(!s)return null;let{config:n}=this,a=i[0].start,o;if(t.live){let l=n.initialLiveManifestSize;if(s<l)return this.warn(`Not enough fragments to start playback (have: ${s}, need: ${l})`),null;!t.PTSKnown&&!this.startFragRequested&&this.startPosition===-1&&(o=this.getInitialLiveFragment(t,i),this.startPosition=o?this.hls.liveSyncPosition||o.start:e)}else e<=a&&(o=i[0]);if(!o){let l=n.lowLatencyMode?t.partEnd:t.fragmentEnd;o=this.getFragmentAtPosition(e,l,t)}return this.mapToInitFragWhenRequired(o)}isLoopLoading(e,t){let i=this.fragmentTracker.getState(e);return(i===Tt.OK||i===Tt.PARTIAL&&!!e.gap)&&this.nextLoadPosition>t}getNextFragmentLoopLoading(e,t,i,s,n){let a=e.gap,o=this.getNextFragment(this.nextLoadPosition,t);if(o===null)return o;if(e=o,a&&e&&!e.gap&&i.nextStart){let l=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,s);if(l!==null&&i.len+l.len>=n)return this.log(`buffer full after gaps in "${s}" playlist starting at sn: ${e.sn}`),null}return e}mapToInitFragWhenRequired(e){return e!=null&&e.initSegment&&!(e!=null&&e.initSegment.data)&&!this.bitrateTest?e.initSegment:e}getNextPart(e,t,i){let s=-1,n=!1,a=!0;for(let o=0,l=e.length;o<l;o++){let d=e[o];if(a=a&&!d.independent,s>-1&&i<d.start)break;let c=d.loaded;c?s=-1:(n||d.independent||a)&&d.fragment===t&&(s=o),n=c}return s}loadedEndOfParts(e,t){let i=e[e.length-1];return i&&t>i.start&&i.loaded}getInitialLiveFragment(e,t){let i=this.fragPrevious,s=null;if(i){if(e.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${i.programDateTime}`),s=a_(t,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!s){let n=i.sn+1;if(n>=e.startSN&&n<=e.endSN){let a=t[n-e.startSN];i.cc===a.cc&&(s=a,this.log(`Live playlist, switching playlist, load frag with next SN: ${s.sn}`))}s||(s=l_(t,i.cc),s&&this.log(`Live playlist, switching playlist, load frag with same CC: ${s.sn}`))}}else{let n=this.hls.liveSyncPosition;n!==null&&(s=this.getFragmentAtPosition(n,this.bitrateTest?e.fragmentEnd:e.edge,e))}return s}getFragmentAtPosition(e,t,i){let{config:s}=this,{fragPrevious:n}=this,{fragments:a,endSN:o}=i,{fragmentHint:l}=i,d=s.maxFragLookUpTolerance,c=i.partList,u=!!(s.lowLatencyMode&&c!=null&&c.length&&l);u&&l&&!this.bitrateTest&&(a=a.concat(l),o=l.sn);let h;if(e<t){let f=e>t-d?0:d;h=Hn(n,a,e,f)}else h=a[a.length-1];if(h){let f=h.sn-i.startSN,g=this.fragmentTracker.getState(h);if((g===Tt.OK||g===Tt.PARTIAL&&h.gap)&&(n=h),n&&h.sn===n.sn&&(!u||c[0].fragment.sn>h.sn)&&n&&h.level===n.level){let T=a[f+1];h.sn<o&&this.fragmentTracker.getState(T)!==Tt.OK?h=T:h=null}}return h}synchronizeToLiveEdge(e){let{config:t,media:i}=this;if(!i)return;let s=this.hls.liveSyncPosition,n=i.currentTime,a=e.fragments[0].start,o=e.edge,l=n>=a-t.maxFragLookUpTolerance&&n<=o;if(s!==null&&i.duration>s&&(n<s||!l)){let d=t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:t.liveMaxLatencyDurationCount*e.targetduration;(!l&&i.readyState<4||n<o-d)&&(this.loadedmetadata||(this.nextLoadPosition=s),i.readyState&&(this.warn(`Playback: ${n.toFixed(3)} is located too far from the end of live sliding playlist: ${o}, reset currentTime to : ${s.toFixed(3)}`),i.currentTime=s))}}alignPlaylists(e,t){let{levels:i,levelLastLoaded:s,fragPrevious:n}=this,a=s!==null?i[s]:null,o=e.fragments.length;if(!o)return this.warn("No fragments in live playlist"),0;let l=e.fragments[0].start,d=!t,c=e.alignedSliding&&ce(l);if(d||!c&&!l){m_(n,a,e);let u=e.fragments[0].start;return this.log(`Live playlist sliding: ${u.toFixed(2)} start-sn: ${t?t.startSN:"na"}->${e.startSN} prev-sn: ${n?n.sn:"na"} fragments: ${o}`),u}return l}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,e.partTarget*3)}setStartPosition(e,t){let i=this.startPosition;if(i<t&&(i=-1),i===-1||this.lastCurrentTime===-1){let s=this.startTimeOffset!==null,n=s?this.startTimeOffset:e.startTimeOffset;n!==null&&ce(n)?(i=t+n,n<0&&(i+=e.totalduration),i=Math.min(Math.max(t,i),t+e.totalduration),this.log(`Start time offset ${n} found in ${s?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):e.live?i=this.hls.liveSyncPosition||t:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:e}=this,t=0;return this.loadedmetadata&&e?t=e.currentTime:this.nextLoadPosition&&(t=this.nextLoadPosition),t}handleFragLoadAborted(e,t){this.transmuxer&&e.sn!=="initSegment"&&e.stats.aborted&&(this.warn(`Fragment ${e.sn}${t?" part "+t.index:""} of level ${e.level} was aborted`),this.resetFragmentLoading(e))}resetFragmentLoading(e){(!this.fragCurrent||!this.fragContextChanged(e)&&this.state!==W.FRAG_LOADING_WAITING_RETRY)&&(this.state=W.IDLE)}onFragmentOrKeyLoadError(e,t){if(t.chunkMeta&&!t.frag){let u=this.getCurrentContext(t.chunkMeta);u&&(t.frag=u.frag)}let i=t.frag;if(!i||i.type!==e||!this.levels)return;if(this.fragContextChanged(i)){var s;this.warn(`Frag load error must match current frag to retry ${i.url} > ${(s=this.fragCurrent)==null?void 0:s.url}`);return}let n=t.details===B.FRAG_GAP;n&&this.fragmentTracker.fragBuffered(i,!0);let a=t.errorAction,{action:o,retryCount:l=0,retryConfig:d}=a||{};if(a&&o===Mt.RetryRequest&&d){var c;this.resetStartWhenNotLoaded((c=this.levelLastLoaded)!=null?c:i.level);let u=Ih(d,l);this.warn(`Fragment ${i.sn} of ${e} ${i.level} errored with ${t.details}, retrying loading ${l+1}/${d.maxNumRetry} in ${u}ms`),a.resolved=!0,this.retryDate=self.performance.now()+u,this.state=W.FRAG_LOADING_WAITING_RETRY}else d&&a?(this.resetFragmentErrors(e),l<d.maxNumRetry?n||(a.resolved=!0):M.warn(`${t.details} reached or exceeded max retry (${l})`)):(a==null?void 0:a.action)===Mt.SendAlternateToPenaltyBox?this.state=W.WAITING_LEVEL:this.state=W.ERROR;this.tickImmediate()}reduceLengthAndFlushBuffer(e){if(this.state===W.PARSING||this.state===W.PARSED){let t=e.parent,i=this.getFwdBufferInfo(this.mediaBuffer,t),s=i&&i.len>.5;s&&this.reduceMaxBufferLength(i.len);let n=!s;return n&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${t} buffer`),e.frag&&(this.fragmentTracker.removeFragment(e.frag),this.nextLoadPosition=e.frag.start),this.resetLoadingState(),n}return!1}resetFragmentErrors(e){e===ge.AUDIO&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==W.STOPPED&&(this.state=W.IDLE)}afterBufferFlushed(e,t,i){if(!e)return;let s=je.getBuffered(e);this.fragmentTracker.detectEvictedFragments(t,s,i),this.state===W.ENDED&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=W.IDLE}resetStartWhenNotLoaded(e){if(!this.loadedmetadata){this.startFragRequested=!1;let t=this.levels?this.levels[e].details:null;t!=null&&t.live?(this.startPosition=-1,this.setStartPosition(t,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(e){var t;this.warn(`The loading context changed while buffering fragment ${e.sn} of level ${e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded((t=this.levelLastLoaded)!=null?t:e.level),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(e,t,i,s){var n;let a=i.details;if(!a){this.warn("level.details undefined");return}if(Object.keys(e.elementaryStreams).reduce((l,d)=>{let c=e.elementaryStreams[d];if(c){let u=c.endPTS-c.startPTS;if(u<=0)return this.warn(`Could not parse fragment ${e.sn} ${d} duration reliably (${u})`),l||!1;let h=s?0:r0(a,e,c.startPTS,c.endPTS,c.startDTS,c.endDTS);return this.hls.trigger(b.LEVEL_PTS_UPDATED,{details:a,level:i,drift:h,type:d,frag:e,start:c.startPTS,end:c.endPTS}),!0}return l},!1))i.fragmentError=0;else if(((n=this.transmuxer)==null?void 0:n.error)===null){let l=new Error(`Found no media in fragment ${e.sn} of level ${e.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)),this.warn(l.message),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:l,frag:e,reason:`Found no media in msn ${e.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=W.PARSED,this.hls.trigger(b.FRAG_PARSED,{frag:e,part:t})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(e){if(e.event==="demuxerWorker"){var t,i,s;this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded((t=(i=this.levelLastLoaded)!=null?i:(s=this.fragCurrent)==null?void 0:s.level)!=null?t:0),this.resetLoadingState()}}set state(e){let t=this._state;t!==e&&(this._state=e,this.log(`${t}->${e}`))}get state(){return this._state}};function d0(){return self.SourceBuffer||self.WebKitSourceBuffer}function y_(){let r=Ml();if(!r)return!1;let e=d0(),t=r&&typeof r.isTypeSupported=="function"&&r.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=!e||e.prototype&&typeof e.prototype.appendBuffer=="function"&&typeof e.prototype.remove=="function";return!!t&&!!i}function T_(){var r;let e=d0();return typeof(e==null||(r=e.prototype)==null?void 0:r.changeType)=="function"}function __(){return typeof __HLS_WORKER_BUNDLE__=="function"}function A_(){let r=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),e=self.URL.createObjectURL(r);return{worker:new self.Worker(e),objectURL:e}}function S_(r){let e=new self.URL(r,self.location.href).href;return{worker:new self.Worker(e),scriptURL:e}}function Ui(r="",e=9e4){return{type:r,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}var bl=class{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(e,t,i,s){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(e){this.initPTS=e,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(e,t){return!1}appendFrame(e,t,i){}demux(e,t){this.cachedData&&(e=Kr(this.cachedData,e),this.cachedData=null);let i=fl(e,0),s=i?i.length:0,n,a=this._audioTrack,o=this._id3Track,l=i?ET(i):void 0,d=e.length;for((this.basePTS===null||this.frameIndex===0&&ce(l))&&(this.basePTS=x_(l,t,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),i&&i.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Ei.audioId3,duration:Number.POSITIVE_INFINITY});s<d;){if(this.canParse(e,s)){let c=this.appendFrame(a,e,s);c?(this.frameIndex++,this.lastPTS=c.sample.pts,s+=c.length,n=s):s=d}else vT(e,s)?(i=fl(e,s),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Ei.audioId3,duration:Number.POSITIVE_INFINITY}),s+=i.length,n=s):s++;if(s===d&&n!==d){let c=Vr(e,n);this.cachedData?this.cachedData=Kr(this.cachedData,c):this.cachedData=c}}return{audioTrack:a,videoTrack:Ui(),id3Track:o,textTrack:Ui()}}demuxSampleAes(e,t,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(e){let t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),{audioTrack:this._audioTrack,videoTrack:Ui(),id3Track:this._id3Track,textTrack:Ui()}}destroy(){}},x_=(r,e,t)=>{if(ce(r))return r*90;let i=t?t.baseTime*9e4/t.timescale:0;return e*9e4+i};function I_(r,e,t,i){let s,n,a,o,l=navigator.userAgent.toLowerCase(),d=i,c=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];s=((e[t+2]&192)>>>6)+1;let u=(e[t+2]&60)>>>2;if(u>c.length-1){r.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!0,reason:`invalid ADTS sampling index:${u}`});return}return a=(e[t+2]&1)<<2,a|=(e[t+3]&192)>>>6,M.log(`manifest codec:${i}, ADTS type:${s}, samplingIndex:${u}`),/firefox/i.test(l)?u>=6?(s=5,o=new Array(4),n=u-3):(s=2,o=new Array(2),n=u):l.indexOf("android")!==-1?(s=2,o=new Array(2),n=u):(s=5,o=new Array(4),i&&(i.indexOf("mp4a.40.29")!==-1||i.indexOf("mp4a.40.5")!==-1)||!i&&u>=6?n=u-3:((i&&i.indexOf("mp4a.40.2")!==-1&&(u>=6&&a===1||/vivaldi/i.test(l))||!i&&a===1)&&(s=2,o=new Array(2)),n=u)),o[0]=s<<3,o[0]|=(u&14)>>1,o[1]|=(u&1)<<7,o[1]|=a<<3,s===5&&(o[1]|=(n&14)>>1,o[2]=(n&1)<<7,o[2]|=2<<2,o[3]=0),{config:o,samplerate:c[u],channelCount:a,codec:"mp4a.40."+s,manifestCodec:d}}function c0(r,e){return r[e]===255&&(r[e+1]&246)===240}function u0(r,e){return r[e+1]&1?7:9}function kh(r,e){return(r[e+3]&3)<<11|r[e+4]<<3|(r[e+5]&224)>>>5}function L_(r,e){return e+5<r.length}function yl(r,e){return e+1<r.length&&c0(r,e)}function k_(r,e){return L_(r,e)&&c0(r,e)&&kh(r,e)<=r.length-e}function R_(r,e){if(yl(r,e)){let t=u0(r,e);if(e+t>=r.length)return!1;let i=kh(r,e);if(i<=t)return!1;let s=e+i;return s===r.length||yl(r,s)}return!1}function h0(r,e,t,i,s){if(!r.samplerate){let n=I_(e,t,i,s);if(!n)return;r.config=n.config,r.samplerate=n.samplerate,r.channelCount=n.channelCount,r.codec=n.codec,r.manifestCodec=n.manifestCodec,M.log(`parsed codec:${r.codec}, rate:${n.samplerate}, channels:${n.channelCount}`)}}function f0(r){return 1024*9e4/r}function w_(r,e){let t=u0(r,e);if(e+t<=r.length){let i=kh(r,e)-t;if(i>0)return{headerLength:t,frameLength:i}}}function m0(r,e,t,i,s){let n=f0(r.samplerate),a=i+s*n,o=w_(e,t),l;if(o){let{frameLength:u,headerLength:h}=o,f=h+u,g=Math.max(0,t+f-e.length);g?(l=new Uint8Array(f-h),l.set(e.subarray(t+h,e.length),0)):l=e.subarray(t+h,t+f);let E={unit:l,pts:a};return g||r.samples.push(E),{sample:E,length:f,missing:g}}let d=e.length-t;return l=new Uint8Array(d),l.set(e.subarray(t,e.length),0),{sample:{unit:l,pts:a},length:d,missing:-1}}var Wu=class extends bl{constructor(e,t){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=t}resetInitSegment(e,t,i,s){super.resetInitSegment(e,t,i,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;let i=(fl(e,0)||[]).length;for(let s=e.length;i<s;i++)if(R_(e,i))return M.log("ADTS sync word found !"),!0;return!1}canParse(e,t){return k_(e,t)}appendFrame(e,t,i){h0(e,this.observer,t,i,e.manifestCodec);let s=m0(e,t,i,this.basePTS,this.frameIndex);if(s&&s.missing===0)return s}},D_=/\/emsg[-/]ID3/i,qu=class{constructor(e,t){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=t}resetTimeStamp(){}resetInitSegment(e,t,i,s){let n=this.videoTrack=Ui("video",1),a=this.audioTrack=Ui("audio",1),o=this.txtTrack=Ui("text",1);if(this.id3Track=Ui("id3",1),this.timeOffset=0,!(e!=null&&e.byteLength))return;let l=Xg(e);if(l.video){let{id:d,timescale:c,codec:u}=l.video;n.id=d,n.timescale=o.timescale=c,n.codec=u}if(l.audio){let{id:d,timescale:c,codec:u}=l.audio;a.id=d,a.timescale=c,a.codec=u}o.id=Yg.text,n.sampleDuration=0,n.duration=a.duration=s}resetContiguity(){this.remainderData=null}static probe(e){return e=e.length>16384?e.subarray(0,16384):e,Pe(e,["moof"]).length>0}demux(e,t){this.timeOffset=t;let i=e,s=this.videoTrack,n=this.txtTrack;if(this.config.progressive){this.remainderData&&(i=Kr(this.remainderData,e));let o=MT(i);this.remainderData=o.remainder,s.samples=o.valid||new Uint8Array}else s.samples=i;let a=this.extractID3Track(s,t);return n.samples=sg(t,s),{videoTrack:s,audioTrack:this.audioTrack,id3Track:a,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,t=this.videoTrack,i=this.txtTrack;t.samples=this.remainderData||new Uint8Array,this.remainderData=null;let s=this.extractID3Track(t,this.timeOffset);return i.samples=sg(e,t),{videoTrack:t,audioTrack:Ui(),id3Track:s,textTrack:Ui()}}extractID3Track(e,t){let i=this.id3Track;if(e.samples.length){let s=Pe(e.samples,["emsg"]);s&&s.forEach(n=>{let a=NT(n);if(D_.test(a.schemeIdUri)){let o=ce(a.presentationTime)?a.presentationTime/a.timeScale:t+a.presentationTimeDelta/a.timeScale,l=a.eventDuration===4294967295?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;l<=.001&&(l=Number.POSITIVE_INFINITY);let d=a.payload;i.samples.push({data:d,len:d.byteLength,dts:o,pts:o,type:Ei.emsg,duration:l})}})}return i}demuxSampleAes(e,t,i){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},nl=null,C_=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],M_=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],O_=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],P_=[0,1,1,4];function p0(r,e,t,i,s){if(t+24>e.length)return;let n=g0(e,t);if(n&&t+n.frameLength<=e.length){let a=n.samplesPerFrame*9e4/n.sampleRate,o=i+s*a,l={unit:e.subarray(t,t+n.frameLength),pts:o,dts:o};return r.config=[],r.channelCount=n.channelCount,r.samplerate=n.sampleRate,r.samples.push(l),{sample:l,length:n.frameLength,missing:0}}}function g0(r,e){let t=r[e+1]>>3&3,i=r[e+1]>>1&3,s=r[e+2]>>4&15,n=r[e+2]>>2&3;if(t!==1&&s!==0&&s!==15&&n!==3){let a=r[e+2]>>1&1,o=r[e+3]>>6,l=t===3?3-i:i===3?3:4,d=C_[l*14+s-1]*1e3,u=M_[(t===3?0:t===2?1:2)*3+n],h=o===3?1:2,f=O_[t][i],g=P_[i],E=f*8*g,T=Math.floor(f*d/u+a)*g;if(nl===null){let L=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);nl=L?parseInt(L[1]):0}return!!nl&&nl<=87&&i===2&&d>=224e3&&o===0&&(r[e+3]=r[e+3]|128),{sampleRate:u,channelCount:h,frameLength:T,samplesPerFrame:E}}}function Rh(r,e){return r[e]===255&&(r[e+1]&224)===224&&(r[e+1]&6)!==0}function v0(r,e){return e+1<r.length&&Rh(r,e)}function N_(r,e){return Rh(r,e)&&4<=r.length-e}function U_(r,e){if(e+1<r.length&&Rh(r,e)){let i=g0(r,e),s=4;i!=null&&i.frameLength&&(s=i.frameLength);let n=e+s;return n===r.length||v0(r,n)}return!1}var Tl=class{constructor(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let e=this.data,t=this.bytesAvailable,i=e.byteLength-t,s=new Uint8Array(4),n=Math.min(4,t);if(n===0)throw new Error("no bytes available");s.set(e.subarray(i,i+n)),this.word=new DataView(s.buffer).getUint32(0),this.bitsAvailable=n*8,this.bytesAvailable-=n}skipBits(e){let t;e=Math.min(e,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t<<3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}readBits(e){let t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(e>32&&M.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0)this.word<<=t;else if(this.bytesAvailable>0)this.loadWord();else throw new Error("no bits available");return t=e-t,t>0&&this.bitsAvailable?i<<t|this.readBits(t):i}skipLZ(){let e;for(e=0;e<this.bitsAvailable;++e)if((this.word&2147483648>>>e)!==0)return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let e=this.skipLZ();return this.readBits(e+1)-1}readEG(){let e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(e){let t=8,i=8,s;for(let n=0;n<e;n++)i!==0&&(s=this.readEG(),i=(t+s+256)%256),t=i===0?t:i}readSPS(){let e=0,t=0,i=0,s=0,n,a,o,l=this.readUByte.bind(this),d=this.readBits.bind(this),c=this.readUEG.bind(this),u=this.readBoolean.bind(this),h=this.skipBits.bind(this),f=this.skipEG.bind(this),g=this.skipUEG.bind(this),E=this.skipScalingList.bind(this);l();let T=l();if(d(5),h(3),l(),g(),T===100||T===110||T===122||T===244||T===44||T===83||T===86||T===118||T===128){let $=c();if($===3&&h(1),g(),g(),h(1),u())for(a=$!==3?8:12,o=0;o<a;o++)u()&&(o<6?E(16):E(64))}g();let A=c();if(A===0)c();else if(A===1)for(h(1),f(),f(),n=c(),o=0;o<n;o++)f();g(),h(1);let k=c(),L=c(),N=d(1);N===0&&h(1),h(1),u()&&(e=c(),t=c(),i=c(),s=c());let D=[1,1];if(u()&&u())switch(l()){case 1:D=[1,1];break;case 2:D=[12,11];break;case 3:D=[10,11];break;case 4:D=[16,11];break;case 5:D=[40,33];break;case 6:D=[24,11];break;case 7:D=[20,11];break;case 8:D=[32,11];break;case 9:D=[80,33];break;case 10:D=[18,11];break;case 11:D=[15,11];break;case 12:D=[64,33];break;case 13:D=[160,99];break;case 14:D=[4,3];break;case 15:D=[3,2];break;case 16:D=[2,1];break;case 255:{D=[l()<<8|l(),l()<<8|l()];break}}return{width:Math.ceil((k+1)*16-e*2-t*2),height:(2-N)*(L+1)*16-(N?2:4)*(i+s),pixelRatio:D}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}},Yu=class{constructor(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new Wn(t,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(e,t,i){let s=e[t].unit;if(s.length<=16)return;let n=s.subarray(16,s.length-s.length%16),a=n.buffer.slice(n.byteOffset,n.byteOffset+n.length);this.decryptBuffer(a).then(o=>{let l=new Uint8Array(o);s.set(l,16),this.decrypter.isSync()||this.decryptAacSamples(e,t+1,i)})}decryptAacSamples(e,t,i){for(;;t++){if(t>=e.length){i();return}if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){let t=Math.floor((e.length-48)/160)*16+16,i=new Int8Array(t),s=0;for(let n=32;n<e.length-16;n+=160,s+=16)i.set(e.subarray(n,n+16),s);return i}getAvcDecryptedUnit(e,t){let i=new Uint8Array(t),s=0;for(let n=32;n<e.length-16;n+=160,s+=16)e.set(i.subarray(s,s+16),n);return e}decryptAvcSample(e,t,i,s,n){let a=Jg(n.data),o=this.getAvcEncryptedData(a);this.decryptBuffer(o.buffer).then(l=>{n.data=this.getAvcDecryptedUnit(a,l),this.decrypter.isSync()||this.decryptAvcSamples(e,t,i+1,s)})}decryptAvcSamples(e,t,i,s){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length){s();return}let n=e[t].units;for(;!(i>=n.length);i++){let a=n[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5)&&(this.decryptAvcSample(e,t,i,s,a),!this.decrypter.isSync()))return}}}},Ct=188,Fi=class{constructor(e,t,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._avcTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.observer=e,this.config=t,this.typeSupported=i}static probe(e){let t=Fi.syncOffset(e);return t>0&&M.warn(`MPEG2-TS detected but first sync word found @ offset ${t}`),t!==-1}static syncOffset(e){let t=e.length,i=Math.min(Ct*5,e.length-Ct)+1,s=0;for(;s<i;){let n=!1,a=-1,o=0;for(let l=s;l<t;l+=Ct)if(e[l]===71){if(o++,a===-1&&(a=l,a!==0&&(i=Math.min(a+Ct*99,e.length-Ct)+1)),n||(n=ju(e,l)===0),n&&o>1&&(a===0&&o>2||l+Ct>i))return a}else{if(o)return-1;break}s++}return-1}static createTrack(e,t){return{container:e==="video"||e==="audio"?"video/mp2t":void 0,type:e,id:Yg[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:e==="audio"?t:void 0}}resetInitSegment(e,t,i,s){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=Fi.createTrack("video"),this._audioTrack=Fi.createTrack("audio",s),this._id3Track=Fi.createTrack("id3"),this._txtTrack=Fi.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.audioCodec=t,this.videoCodec=i,this._duration=s}resetTimeStamp(){}resetContiguity(){let{_audioTrack:e,_avcTrack:t,_id3Track:i}=this;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.avcSample=null,this.remainderData=null}demux(e,t,i=!1,s=!1){i||(this.sampleAes=null);let n,a=this._avcTrack,o=this._audioTrack,l=this._id3Track,d=this._txtTrack,c=a.pid,u=a.pesData,h=o.pid,f=l.pid,g=o.pesData,E=l.pesData,T=null,A=this.pmtParsed,k=this._pmtId,L=e.length;if(this.remainderData&&(e=Kr(this.remainderData,e),L=e.length,this.remainderData=null),L<Ct&&!s)return this.remainderData=e,{audioTrack:o,videoTrack:a,id3Track:l,textTrack:d};let N=Math.max(0,Fi.syncOffset(e));L-=(L-N)%Ct,L<e.byteLength&&!s&&(this.remainderData=new Uint8Array(e.buffer,L,e.buffer.byteLength-L));let D=0;for(let O=N;O<L;O+=Ct)if(e[O]===71){let H=!!(e[O+1]&64),q=ju(e,O),P=(e[O+3]&48)>>4,X;if(P>1){if(X=O+5+e[O+4],X===O+Ct)continue}else X=O+4;switch(q){case c:H&&(u&&(n=$s(u))&&this.parseAVCPES(a,d,n,!1),u={data:[],size:0}),u&&(u.data.push(e.subarray(X,O+Ct)),u.size+=O+Ct-X);break;case h:if(H){if(g&&(n=$s(g)))switch(o.segmentCodec){case"aac":this.parseAACPES(o,n);break;case"mp3":this.parseMPEGPES(o,n);break}g={data:[],size:0}}g&&(g.data.push(e.subarray(X,O+Ct)),g.size+=O+Ct-X);break;case f:H&&(E&&(n=$s(E))&&this.parseID3PES(l,n),E={data:[],size:0}),E&&(E.data.push(e.subarray(X,O+Ct)),E.size+=O+Ct-X);break;case 0:H&&(X+=e[X]+1),k=this._pmtId=F_(e,X);break;case k:{H&&(X+=e[X]+1);let z=B_(e,X,this.typeSupported,i);c=z.avc,c>0&&(a.pid=c),h=z.audio,h>0&&(o.pid=h,o.segmentCodec=z.segmentCodec),f=z.id3,f>0&&(l.pid=f),T!==null&&!A&&(M.warn(`MPEG-TS PMT found at ${O} after unknown PID '${T}'. Backtracking to sync byte @${N} to parse all TS packets.`),T=null,O=N-188),A=this.pmtParsed=!0;break}case 17:case 8191:break;default:T=q;break}}else D++;if(D>0){let O=new Error(`Found ${D} TS packet/s that do not start with 0x47`);this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:O,reason:O.message})}a.pesData=u,o.pesData=g,l.pesData=E;let $={audioTrack:o,videoTrack:a,id3Track:l,textTrack:d};return s&&this.extractRemainingSamples($),$}flush(){let{remainderData:e}=this;this.remainderData=null;let t;return e?t=this.demux(e,-1,!1,!0):t={videoTrack:this._avcTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(t),this.sampleAes?this.decrypt(t,this.sampleAes):t}extractRemainingSamples(e){let{audioTrack:t,videoTrack:i,id3Track:s,textTrack:n}=e,a=i.pesData,o=t.pesData,l=s.pesData,d;if(a&&(d=$s(a))?(this.parseAVCPES(i,n,d,!0),i.pesData=null):i.pesData=a,o&&(d=$s(o))){switch(t.segmentCodec){case"aac":this.parseAACPES(t,d);break;case"mp3":this.parseMPEGPES(t,d);break}t.pesData=null}else o!=null&&o.size&&M.log("last AAC PES packet truncated,might overlap between fragments"),t.pesData=o;l&&(d=$s(l))?(this.parseID3PES(s,d),s.pesData=null):s.pesData=l}demuxSampleAes(e,t,i){let s=this.demux(e,i,!0,!this.config.progressive),n=this.sampleAes=new Yu(this.observer,this.config,t);return this.decrypt(s,n)}decrypt(e,t){return new Promise(i=>{let{audioTrack:s,videoTrack:n}=e;s.samples&&s.segmentCodec==="aac"?t.decryptAacSamples(s.samples,0,()=>{n.samples?t.decryptAvcSamples(n.samples,0,0,()=>{i(e)}):i(e)}):n.samples&&t.decryptAvcSamples(n.samples,0,0,()=>{i(e)})})}destroy(){this._duration=0}parseAVCPES(e,t,i,s){let n=this.parseAVCNALu(e,i.data),a=this.avcSample,o,l=!1;i.data=null,a&&n.length&&!e.audFound&&(Pn(a,e),a=this.avcSample=al(!1,i.pts,i.dts,"")),n.forEach(d=>{var c;switch(d.type){case 1:{let h=!1;o=!0;let f=d.data;if(l&&f.length>4){let g=new Tl(f).readSliceType();(g===2||g===4||g===7||g===9)&&(h=!0)}if(h){var u;(u=a)!=null&&u.frame&&!a.key&&(Pn(a,e),a=this.avcSample=null)}a||(a=this.avcSample=al(!0,i.pts,i.dts,"")),a.frame=!0,a.key=h;break}case 5:o=!0,(c=a)!=null&&c.frame&&!a.key&&(Pn(a,e),a=this.avcSample=null),a||(a=this.avcSample=al(!0,i.pts,i.dts,"")),a.key=!0,a.frame=!0;break;case 6:{o=!0,Zg(d.data,1,i.pts,t.samples);break}case 7:if(o=!0,l=!0,!e.sps){let h=d.data,g=new Tl(h).readSPS();e.width=g.width,e.height=g.height,e.pixelRatio=g.pixelRatio,e.sps=[h],e.duration=this._duration;let E=h.subarray(1,4),T="avc1.";for(let A=0;A<3;A++){let k=E[A].toString(16);k.length<2&&(k="0"+k),T+=k}e.codec=T}break;case 8:o=!0,e.pps||(e.pps=[d.data]);break;case 9:o=!1,e.audFound=!0,a&&Pn(a,e),a=this.avcSample=al(!1,i.pts,i.dts,"");break;case 12:o=!0;break;default:o=!1,a&&(a.debug+="unknown NAL "+d.type+" ");break}a&&o&&a.units.push(d)}),s&&a&&(Pn(a,e),this.avcSample=null)}getLastNalUnit(e){var t;let i=this.avcSample,s;if((!i||i.units.length===0)&&(i=e[e.length-1]),(t=i)!=null&&t.units){let n=i.units;s=n[n.length-1]}return s}parseAVCNALu(e,t){let i=t.byteLength,s=e.naluState||0,n=s,a=[],o=0,l,d,c,u=-1,h=0;for(s===-1&&(u=0,h=t[0]&31,s=0,o=1);o<i;){if(l=t[o++],!s){s=l?0:1;continue}if(s===1){s=l?0:2;continue}if(!l)s=3;else if(l===1){if(u>=0){let f={data:t.subarray(u,o-s-1),type:h};a.push(f)}else{let f=this.getLastNalUnit(e.samples);if(f&&(n&&o<=4-n&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-n)),d=o-s-1,d>0)){let g=new Uint8Array(f.data.byteLength+d);g.set(f.data,0),g.set(t.subarray(0,d),f.data.byteLength),f.data=g,f.state=0}}o<i?(c=t[o]&31,u=o,h=c,s=0):s=-1}else s=0}if(u>=0&&s>=0){let f={data:t.subarray(u,i),type:h,state:s};a.push(f)}if(a.length===0){let f=this.getLastNalUnit(e.samples);if(f){let g=new Uint8Array(f.data.byteLength+t.byteLength);g.set(f.data,0),g.set(t,f.data.byteLength),f.data=g}}return e.naluState=s,a}parseAACPES(e,t){let i=0,s=this.aacOverFlow,n=t.data;if(s){this.aacOverFlow=null;let u=s.missing,h=s.sample.unit.byteLength;if(u===-1){let f=new Uint8Array(h+n.byteLength);f.set(s.sample.unit,0),f.set(n,h),n=f}else{let f=h-u;s.sample.unit.set(n.subarray(0,u),f),e.samples.push(s.sample),i=s.missing}}let a,o;for(a=i,o=n.length;a<o-1&&!yl(n,a);a++);if(a!==i){let u,h=a<o-1;h?u=`AAC PES did not start with ADTS header,offset:${a}`:u="No ADTS header found in AAC PES";let f=new Error(u);if(M.warn(`parsing error: ${u}`),this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,levelRetry:h,error:f,reason:u}),!h)return}h0(e,this.observer,n,a,this.audioCodec);let l;if(t.pts!==void 0)l=t.pts;else if(s){let u=f0(e.samplerate);l=s.sample.pts+u}else{M.warn("[tsdemuxer]: AAC PES unknown PTS");return}let d=0,c;for(;a<o;)if(c=m0(e,n,a,l,d),a+=c.length,c.missing){this.aacOverFlow=c;break}else for(d++;a<o-1&&!yl(n,a);a++);}parseMPEGPES(e,t){let i=t.data,s=i.length,n=0,a=0,o=t.pts;if(o===void 0){M.warn("[tsdemuxer]: MPEG PES unknown PTS");return}for(;a<s;)if(v0(i,a)){let l=p0(e,i,a,o,n);if(l)a+=l.length,n++;else break}else a++}parseID3PES(e,t){if(t.pts===void 0){M.warn("[tsdemuxer]: ID3 PES unknown PTS");return}let i=pt({},t,{type:this._avcTrack?Ei.emsg:Ei.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(i)}};function al(r,e,t,i){return{key:r,frame:!1,pts:e,dts:t,units:[],debug:i,length:0}}function ju(r,e){return((r[e+1]&31)<<8)+r[e+2]}function F_(r,e){return(r[e+10]&31)<<8|r[e+11]}function B_(r,e,t,i){let s={audio:-1,avc:-1,id3:-1,segmentCodec:"aac"},n=(r[e+1]&15)<<8|r[e+2],a=e+3+n-4,o=(r[e+10]&15)<<8|r[e+11];for(e+=12+o;e<a;){let l=ju(r,e);switch(r[e]){case 207:if(!i){M.log("ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");break}case 15:s.audio===-1&&(s.audio=l);break;case 21:s.id3===-1&&(s.id3=l);break;case 219:if(!i){M.log("H.264 with AES-128-CBC slice encryption found in unencrypted stream");break}case 27:s.avc===-1&&(s.avc=l);break;case 3:case 4:t.mpeg!==!0&&t.mp3!==!0?M.log("MPEG audio found, not supported in this browser"):s.audio===-1&&(s.audio=l,s.segmentCodec="mp3");break;case 36:M.warn("Unsupported HEVC stream type found");break}e+=((r[e+3]&15)<<8|r[e+4])+5}return s}function $s(r){let e=0,t,i,s,n,a,o=r.data;if(!r||r.size===0)return null;for(;o[0].length<19&&o.length>1;){let d=new Uint8Array(o[0].length+o[1].length);d.set(o[0]),d.set(o[1],o[0].length),o[0]=d,o.splice(1,1)}if(t=o[0],(t[0]<<16)+(t[1]<<8)+t[2]===1){if(i=(t[4]<<8)+t[5],i&&i>r.size-6)return null;let d=t[7];d&192&&(n=(t[9]&14)*536870912+(t[10]&255)*4194304+(t[11]&254)*16384+(t[12]&255)*128+(t[13]&254)/2,d&64?(a=(t[14]&14)*536870912+(t[15]&255)*4194304+(t[16]&254)*16384+(t[17]&255)*128+(t[18]&254)/2,n-a>60*9e4&&(M.warn(`${Math.round((n-a)/9e4)}s delta between PTS and DTS, align them`),n=a)):a=n),s=t[8];let c=s+9;if(r.size<=c)return null;r.size-=c;let u=new Uint8Array(r.size);for(let h=0,f=o.length;h<f;h++){t=o[h];let g=t.byteLength;if(c)if(c>g){c-=g;continue}else t=t.subarray(c),g-=c,c=0;u.set(t,e),e+=g}return i&&(i-=s+3),{data:u,pts:n,dts:a,len:i}}return null}function Pn(r,e){if(r.units.length&&r.frame){if(r.pts===void 0){let t=e.samples,i=t.length;if(i){let s=t[i-1];r.pts=s.pts,r.dts=s.dts}else{e.dropped++;return}}e.samples.push(r)}r.debug.length&&M.log(r.pts+"/"+r.dts+":"+r.debug)}var zu=class extends bl{resetInitSegment(e,t,i,s){super.resetInitSegment(e,t,i,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;let i=(fl(e,0)||[]).length;for(let s=e.length;i<s;i++)if(U_(e,i))return M.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,t){return N_(e,t)}appendFrame(e,t,i){if(this.basePTS!==null)return p0(e,t,i,this.basePTS,this.frameIndex)}},_l=class{static getSilentFrame(e,t){switch(e){case"mp4a.40.2":if(t===1)return new Uint8Array([0,200,0,128,35,128]);if(t===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(t===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(t===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(t===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(t===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(t===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}}},gr=Math.pow(2,32)-1,F=class{static init(){F.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let e;for(e in F.types)F.types.hasOwnProperty(e)&&(F.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);F.HDLR_TYPES={video:t,audio:i};let s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),n=new Uint8Array([0,0,0,0,0,0,0,0]);F.STTS=F.STSC=F.STCO=n,F.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),F.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),F.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),F.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);F.FTYP=F.box(F.types.ftyp,a,l,a,o),F.DINF=F.box(F.types.dinf,F.box(F.types.dref,s))}static box(e,...t){let i=8,s=t.length,n=s;for(;s--;)i+=t[s].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=i&255,a.set(e,4),s=0,i=8;s<n;s++)a.set(t[s],i),i+=t[s].byteLength;return a}static hdlr(e){return F.box(F.types.hdlr,F.HDLR_TYPES[e])}static mdat(e){return F.box(F.types.mdat,e)}static mdhd(e,t){t*=e;let i=Math.floor(t/(gr+1)),s=Math.floor(t%(gr+1));return F.box(F.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,s>>24,s>>16&255,s>>8&255,s&255,85,196,0,0]))}static mdia(e){return F.box(F.types.mdia,F.mdhd(e.timescale,e.duration),F.hdlr(e.type),F.minf(e))}static mfhd(e){return F.box(F.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,e&255]))}static minf(e){return e.type==="audio"?F.box(F.types.minf,F.box(F.types.smhd,F.SMHD),F.DINF,F.stbl(e)):F.box(F.types.minf,F.box(F.types.vmhd,F.VMHD),F.DINF,F.stbl(e))}static moof(e,t,i){return F.box(F.types.moof,F.mfhd(e),F.traf(i,t))}static moov(e){let t=e.length,i=[];for(;t--;)i[t]=F.trak(e[t]);return F.box.apply(null,[F.types.moov,F.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(F.mvex(e)))}static mvex(e){let t=e.length,i=[];for(;t--;)i[t]=F.trex(e[t]);return F.box.apply(null,[F.types.mvex,...i])}static mvhd(e,t){t*=e;let i=Math.floor(t/(gr+1)),s=Math.floor(t%(gr+1)),n=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,s>>24,s>>16&255,s>>8&255,s&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return F.box(F.types.mvhd,n)}static sdtp(e){let t=e.samples||[],i=new Uint8Array(4+t.length),s,n;for(s=0;s<t.length;s++)n=t[s].flags,i[s+4]=n.dependsOn<<4|n.isDependedOn<<2|n.hasRedundancy;return F.box(F.types.sdtp,i)}static stbl(e){return F.box(F.types.stbl,F.stsd(e),F.box(F.types.stts,F.STTS),F.box(F.types.stsc,F.STSC),F.box(F.types.stsz,F.STSZ),F.box(F.types.stco,F.STCO))}static avc1(e){let t=[],i=[],s,n,a;for(s=0;s<e.sps.length;s++)n=e.sps[s],a=n.byteLength,t.push(a>>>8&255),t.push(a&255),t=t.concat(Array.prototype.slice.call(n));for(s=0;s<e.pps.length;s++)n=e.pps[s],a=n.byteLength,i.push(a>>>8&255),i.push(a&255),i=i.concat(Array.prototype.slice.call(n));let o=F.box(F.types.avcC,new Uint8Array([1,t[3],t[4],t[5],255,224|e.sps.length].concat(t).concat([e.pps.length]).concat(i))),l=e.width,d=e.height,c=e.pixelRatio[0],u=e.pixelRatio[1];return F.box(F.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,l&255,d>>8&255,d&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,F.box(F.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),F.box(F.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,c&255,u>>24,u>>16&255,u>>8&255,u&255])))}static esds(e){let t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))}static mp4a(e){let t=e.samplerate;return F.box(F.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,t&255,0,0]),F.box(F.types.esds,F.esds(e)))}static mp3(e){let t=e.samplerate;return F.box(F.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,t&255,0,0]))}static stsd(e){return e.type==="audio"?e.segmentCodec==="mp3"&&e.codec==="mp3"?F.box(F.types.stsd,F.STSD,F.mp3(e)):F.box(F.types.stsd,F.STSD,F.mp4a(e)):F.box(F.types.stsd,F.STSD,F.avc1(e))}static tkhd(e){let t=e.id,i=e.duration*e.timescale,s=e.width,n=e.height,a=Math.floor(i/(gr+1)),o=Math.floor(i%(gr+1));return F.box(F.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,t&255,0,0,0,0,a>>24,a>>16&255,a>>8&255,a&255,o>>24,o>>16&255,o>>8&255,o&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,s>>8&255,s&255,0,0,n>>8&255,n&255,0,0]))}static traf(e,t){let i=F.sdtp(e),s=e.id,n=Math.floor(t/(gr+1)),a=Math.floor(t%(gr+1));return F.box(F.types.traf,F.box(F.types.tfhd,new Uint8Array([0,0,0,0,s>>24,s>>16&255,s>>8&255,s&255])),F.box(F.types.tfdt,new Uint8Array([1,0,0,0,n>>24,n>>16&255,n>>8&255,n&255,a>>24,a>>16&255,a>>8&255,a&255])),F.trun(e,i.length+16+20+8+16+8+8),i)}static trak(e){return e.duration=e.duration||4294967295,F.box(F.types.trak,F.tkhd(e),F.mdia(e))}static trex(e){let t=e.id;return F.box(F.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,t&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,t){let i=e.samples||[],s=i.length,n=12+16*s,a=new Uint8Array(n),o,l,d,c,u,h;for(t+=8+n,a.set([e.type==="video"?1:0,0,15,1,s>>>24&255,s>>>16&255,s>>>8&255,s&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255],0),o=0;o<s;o++)l=i[o],d=l.duration,c=l.size,u=l.flags,h=l.cts,a.set([d>>>24&255,d>>>16&255,d>>>8&255,d&255,c>>>24&255,c>>>16&255,c>>>8&255,c&255,u.isLeading<<2|u.dependsOn,u.isDependedOn<<6|u.hasRedundancy<<4|u.paddingValue<<1|u.isNonSync,u.degradPrio&240<<8,u.degradPrio&15,h>>>24&255,h>>>16&255,h>>>8&255,h&255],12+16*o);return F.box(F.types.trun,a)}static initSegment(e){F.types||F.init();let t=F.moov(e),i=new Uint8Array(F.FTYP.byteLength+t.byteLength);return i.set(F.FTYP),i.set(t,F.FTYP.byteLength),i}};F.types=void 0;F.HDLR_TYPES=void 0;F.STTS=void 0;F.STSC=void 0;F.STCO=void 0;F.STSZ=void 0;F.VMHD=void 0;F.SMHD=void 0;F.STSD=void 0;F.FTYP=void 0;F.DINF=void 0;var E0=9e4;function wh(r,e,t=1,i=!1){let s=r*e*t;return i?Math.round(s):s}function $_(r,e,t=1,i=!1){return wh(r,e,1/t,i)}function Nn(r,e=!1){return wh(r,1e3,1/E0,e)}function G_(r,e=1){return wh(r,E0,1/e)}var H_=10*1e3,Ig=1024,V_=1152,ol=null,hu=null,$n=class{constructor(e,t,i,s=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=!1,ol===null){let a=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);ol=a?parseInt(a[1]):0}if(hu===null){let n=navigator.userAgent.match(/Safari\/(\d+)/i);hu=n?parseInt(n[1]):0}}destroy(){}resetTimeStamp(e){M.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=e}resetNextTimestamp(){M.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){M.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1}getVideoStartPts(e){let t=!1,i=e.reduce((s,n)=>{let a=n.pts-s;return a<-4294967296?(t=!0,li(s,n.pts)):a>0?s:n.pts},e[0].pts);return t&&M.debug("PTS rollover detected"),i}remux(e,t,i,s,n,a,o,l){let d,c,u,h,f,g,E=n,T=n,A=e.pid>-1,k=t.pid>-1,L=t.samples.length,N=e.samples.length>0,D=o&&L>0||L>1;if((!A||N)&&(!k||D)||this.ISGenerated||o){this.ISGenerated||(u=this.generateIS(e,t,n,a));let O=this.isVideoContiguous,H=-1,q;if(D&&(H=K_(t.samples),!O&&this.config.forceKeyFrameOnDiscontinuity))if(g=!0,H>0){M.warn(`[mp4-remuxer]: Dropped ${H} out of ${L} video samples due to a missing keyframe`);let P=this.getVideoStartPts(t.samples);t.samples=t.samples.slice(H),t.dropped+=H,T+=(t.samples[0].pts-P)/t.inputTimeScale,q=T}else H===-1&&(M.warn(`[mp4-remuxer]: No keyframe found out of ${L} video samples`),g=!1);if(this.ISGenerated){if(N&&D){let P=this.getVideoStartPts(t.samples),z=(li(e.samples[0].pts,P)-P)/t.inputTimeScale;E+=Math.max(0,z),T+=Math.max(0,-z)}if(N){if(e.samplerate||(M.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),u=this.generateIS(e,t,n,a)),c=this.remuxAudio(e,E,this.isAudioContiguous,a,k||D||l===ge.AUDIO?T:void 0),D){let P=c?c.endPTS-c.startPTS:0;t.inputTimeScale||(M.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),u=this.generateIS(e,t,n,a)),d=this.remuxVideo(t,T,O,P)}}else D&&(d=this.remuxVideo(t,T,O,0));d&&(d.firstKeyFrame=H,d.independent=H!==-1,d.firstKeyFramePTS=q)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(f=b0(i,n,this._initPTS,this._initDTS)),s.samples.length&&(h=y0(s,n,this._initPTS))),{audio:c,video:d,initSegment:u,independent:g,text:h,id3:f}}generateIS(e,t,i,s){let n=e.samples,a=t.samples,o=this.typeSupported,l={},d=this._initPTS,c=!d||s,u="audio/mp4",h,f,g;if(c&&(h=f=1/0),e.config&&n.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":o.mpeg?(u="audio/mpeg",e.codec=""):o.mp3&&(e.codec="mp3");break}l.audio={id:"audio",container:u,codec:e.codec,initSegment:e.segmentCodec==="mp3"&&o.mpeg?new Uint8Array(0):F.initSegment([e]),metadata:{channelCount:e.channelCount}},c&&(g=e.inputTimeScale,!d||g!==d.timescale?h=f=n[0].pts-Math.round(g*i):c=!1)}if(t.sps&&t.pps&&a.length&&(t.timescale=t.inputTimeScale,l.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:F.initSegment([t]),metadata:{width:t.width,height:t.height}},c))if(g=t.inputTimeScale,!d||g!==d.timescale){let E=this.getVideoStartPts(a),T=Math.round(g*i);f=Math.min(f,li(a[0].dts,E)-T),h=Math.min(h,E-T)}else c=!1;if(Object.keys(l).length)return this.ISGenerated=!0,c?(this._initPTS={baseTime:h,timescale:g},this._initDTS={baseTime:f,timescale:g}):h=g=void 0,{tracks:l,initPTS:h,timescale:g}}remuxVideo(e,t,i,s){let n=e.inputTimeScale,a=e.samples,o=[],l=a.length,d=this._initPTS,c=this.nextAvcDts,u=8,h=this.videoSampleDuration,f,g,E=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,A=!1;if(!i||c===null){let Z=t*n,ne=a[0].pts-li(a[0].dts,a[0].pts);c=Z-ne}let k=d.baseTime*n/d.timescale;for(let Z=0;Z<l;Z++){let ne=a[Z];ne.pts=li(ne.pts-k,c),ne.dts=li(ne.dts-k,c),ne.dts<a[Z>0?Z-1:Z].dts&&(A=!0)}A&&a.sort(function(Z,ne){let se=Z.dts-ne.dts,xe=Z.pts-ne.pts;return se||xe}),f=a[0].dts,g=a[a.length-1].dts;let L=g-f,N=L?Math.round(L/(l-1)):h||e.inputTimeScale/30;if(i){let Z=f-c,ne=Z>N,se=Z<-1;if((ne||se)&&(ne?M.warn(`AVC: ${Nn(Z,!0)} ms (${Z}dts) hole between fragments detected, filling it`):M.warn(`AVC: ${Nn(-Z,!0)} ms (${Z}dts) overlapping between fragments detected`),!se||c>=a[0].pts)){f=c;let xe=a[0].pts-Z;a[0].dts=f,a[0].pts=xe,M.log(`Video: First PTS/DTS adjusted: ${Nn(xe,!0)}/${Nn(f,!0)}, delta: ${Nn(Z,!0)} ms`)}}f=Math.max(0,f);let D=0,$=0;for(let Z=0;Z<l;Z++){let ne=a[Z],se=ne.units,xe=se.length,Ie=0;for(let Ve=0;Ve<xe;Ve++)Ie+=se[Ve].data.length;$+=Ie,D+=xe,ne.length=Ie,ne.dts=Math.max(ne.dts,f),E=Math.min(ne.pts,E),T=Math.max(ne.pts,T)}g=a[l-1].dts;let O=$+4*D+8,H;try{H=new Uint8Array(O)}catch(Z){this.observer.emit(b.ERROR,b.ERROR,{type:pe.MUX_ERROR,details:B.REMUX_ALLOC_ERROR,fatal:!1,error:Z,bytes:O,reason:`fail allocating video mdat ${O}`});return}let q=new DataView(H.buffer);q.setUint32(0,O),H.set(F.types.mdat,4);let P=!1,X=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,Ae=Number.NEGATIVE_INFINITY,Ee=Number.NEGATIVE_INFINITY;for(let Z=0;Z<l;Z++){let ne=a[Z],se=ne.units,xe=0;for(let ht=0,V=se.length;ht<V;ht++){let J=se[ht],ke=J.data,et=J.data.byteLength;q.setUint32(u,et),u+=4,H.set(ke,u),u+=et,xe+=4+et}let Ie;if(Z<l-1)h=a[Z+1].dts-ne.dts,Ie=a[Z+1].pts-ne.pts;else{let ht=this.config,V=Z>0?ne.dts-a[Z-1].dts:N;if(Ie=Z>0?ne.pts-a[Z-1].pts:N,ht.stretchShortVideoTrack&&this.nextAudioPts!==null){let J=Math.floor(ht.maxBufferHole*n),ke=(s?E+s*n:this.nextAudioPts)-ne.pts;ke>J?(h=ke-V,h<0?h=V:P=!0,M.log(`[mp4-remuxer]: It is approximately ${ke/90} ms to the next segment; using duration ${h/90} ms for the last video frame.`)):h=V}else h=V}let Ve=Math.round(ne.pts-ne.dts);X=Math.min(X,h),Ae=Math.max(Ae,h),z=Math.min(z,Ie),Ee=Math.max(Ee,Ie),o.push(new Al(ne.key,h,xe,Ve))}if(o.length){if(ol){if(ol<70){let Z=o[0].flags;Z.dependsOn=2,Z.isNonSync=0}}else if(hu&&Ee-z<Ae-X&&N/Ae<.025&&o[0].cts===0){M.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let Z=f;for(let ne=0,se=o.length;ne<se;ne++){let xe=Z+o[ne].duration,Ie=Z+o[ne].cts;if(ne<se-1){let Ve=xe+o[ne+1].cts;o[ne].duration=Ve-Ie}else o[ne].duration=ne?o[ne-1].duration:N;o[ne].cts=0,Z=xe}}}h=P||!h?N:h,this.nextAvcDts=c=g+h,this.videoSampleDuration=h,this.isVideoContiguous=!0;let be=F.moof(e.sequenceNumber++,f,pt({},e,{samples:o})),we="video",Se={data1:be,data2:H,startPTS:E/n,endPTS:(T+h)/n,startDTS:f/n,endDTS:c/n,type:we,hasAudio:!1,hasVideo:!0,nb:o.length,dropped:e.dropped};return e.samples=[],e.dropped=0,Se}remuxAudio(e,t,i,s,n){let a=e.inputTimeScale,o=e.samplerate?e.samplerate:a,l=a/o,d=e.segmentCodec==="aac"?Ig:V_,c=d*l,u=this._initPTS,h=e.segmentCodec==="mp3"&&this.typeSupported.mpeg,f=[],g=n!==void 0,E=e.samples,T=h?0:8,A=this.nextAudioPts||-1,k=t*a,L=u.baseTime*a/u.timescale;if(this.isAudioContiguous=i=i||E.length&&A>0&&(s&&Math.abs(k-A)<9e3||Math.abs(li(E[0].pts-L,k)-A)<20*c),E.forEach(function(we){we.pts=li(we.pts-L,k)}),!i||A<0){if(E=E.filter(we=>we.pts>=0),!E.length)return;n===0?A=0:s&&!g?A=Math.max(0,k):A=E[0].pts}if(e.segmentCodec==="aac"){let we=this.config.maxAudioFramesDrift;for(let Se=0,Z=A;Se<E.length;Se++){let ne=E[Se],se=ne.pts,xe=se-Z,Ie=Math.abs(1e3*xe/a);if(xe<=-we*c&&g)Se===0&&(M.warn(`Audio frame @ ${(se/a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1e3*xe/a)} ms.`),this.nextAudioPts=A=Z=se);else if(xe>=we*c&&Ie<H_&&g){let Ve=Math.round(xe/c);Z=se-Ve*c,Z<0&&(Ve--,Z+=c),Se===0&&(this.nextAudioPts=A=Z),M.warn(`[mp4-remuxer]: Injecting ${Ve} audio frame @ ${(Z/a).toFixed(3)}s due to ${Math.round(1e3*xe/a)} ms gap.`);for(let ht=0;ht<Ve;ht++){let V=Math.max(Z,0),J=_l.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);J||(M.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),J=ne.unit.subarray()),E.splice(Se,0,{unit:J,pts:V}),Z+=c,Se++}}ne.pts=Z,Z+=c}}let N=null,D=null,$,O=0,H=E.length;for(;H--;)O+=E[H].unit.byteLength;for(let we=0,Se=E.length;we<Se;we++){let Z=E[we],ne=Z.unit,se=Z.pts;if(D!==null){let Ie=f[we-1];Ie.duration=Math.round((se-D)/l)}else if(i&&e.segmentCodec==="aac"&&(se=A),N=se,O>0){O+=T;try{$=new Uint8Array(O)}catch(Ie){this.observer.emit(b.ERROR,b.ERROR,{type:pe.MUX_ERROR,details:B.REMUX_ALLOC_ERROR,fatal:!1,error:Ie,bytes:O,reason:`fail allocating audio mdat ${O}`});return}h||(new DataView($.buffer).setUint32(0,O),$.set(F.types.mdat,4))}else return;$.set(ne,T);let xe=ne.byteLength;T+=xe,f.push(new Al(!0,d,xe,0)),D=se}let q=f.length;if(!q)return;let P=f[f.length-1];this.nextAudioPts=A=D+l*P.duration;let X=h?new Uint8Array(0):F.moof(e.sequenceNumber++,N/l,pt({},e,{samples:f}));e.samples=[];let z=N/a,Ae=A/a,be={data1:X,data2:$,startPTS:z,endPTS:Ae,startDTS:z,endDTS:Ae,type:"audio",hasAudio:!0,hasVideo:!1,nb:q};return this.isAudioContiguous=!0,be}remuxEmptyAudio(e,t,i,s){let n=e.inputTimeScale,a=e.samplerate?e.samplerate:n,o=n/a,l=this.nextAudioPts,d=this._initDTS,c=d.baseTime*9e4/d.timescale,u=(l!==null?l:s.startDTS*n)+c,h=s.endDTS*n+c,f=o*Ig,g=Math.ceil((h-u)/f),E=_l.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(M.warn("[mp4-remuxer]: remux empty Audio"),!E){M.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");return}let T=[];for(let A=0;A<g;A++){let k=u+A*f;T.push({unit:E,pts:k,dts:k})}return e.samples=T,this.remuxAudio(e,t,i,!1)}};function li(r,e){let t;if(e===null)return r;for(e<r?t=-8589934592:t=8589934592;Math.abs(r-e)>4294967296;)r+=t;return r}function K_(r){for(let e=0;e<r.length;e++)if(r[e].key)return e;return-1}function b0(r,e,t,i){let s=r.samples.length;if(!s)return;let n=r.inputTimeScale;for(let o=0;o<s;o++){let l=r.samples[o];l.pts=li(l.pts-t.baseTime*n/t.timescale,e*n)/n,l.dts=li(l.dts-i.baseTime*n/i.timescale,e*n)/n}let a=r.samples;return r.samples=[],{samples:a}}function y0(r,e,t){let i=r.samples.length;if(!i)return;let s=r.inputTimeScale;for(let a=0;a<i;a++){let o=r.samples[a];o.pts=li(o.pts-t.baseTime*s/t.timescale,e*s)/s}r.samples.sort((a,o)=>a.pts-o.pts);let n=r.samples;return r.samples=[],{samples:n}}var Al=class{constructor(e,t,i,s){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=t,this.size=i,this.cts=s,this.flags=new Xu(e)}},Xu=class{constructor(e){this.isLeading=0,this.isDependedOn=0,this.hasRedundancy=0,this.degradPrio=0,this.dependsOn=1,this.isNonSync=1,this.dependsOn=e?2:1,this.isNonSync=e?0:1}},Qu=class{constructor(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,t,i,s){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(kT(e,s)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:t,videoCodec:i}=this;if(!(e!=null&&e.byteLength)){this.initTracks=void 0,this.initData=void 0;return}let s=this.initData=Xg(e);t||(t=Lg(s.audio,qe.AUDIO)),i||(i=Lg(s.video,qe.VIDEO));let n={};s.audio&&s.video?n.audiovideo={container:"video/mp4",codec:t+","+i,initSegment:e,id:"main"}:s.audio?n.audio={container:"audio/mp4",codec:t,initSegment:e,id:"audio"}:s.video?n.video={container:"video/mp4",codec:i,initSegment:e,id:"main"}:M.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=n}remux(e,t,i,s,n,a){var o,l;let{initPTS:d,lastEndTime:c}=this,u={audio:void 0,video:void 0,text:s,id3:i,initSegment:void 0};ce(c)||(c=this.lastEndTime=n||0);let h=t.samples;if(!(h!=null&&h.length))return u;let f={initPTS:void 0,timescale:1},g=this.initData;if((o=g)!=null&&o.length||(this.generateInitSegment(h),g=this.initData),!((l=g)!=null&&l.length))return M.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),u;this.emitInitSegment&&(f.tracks=this.initTracks,this.emitInitSegment=!1);let E=wT(h,g),T=RT(g,h),A=T===null?n:T;(W_(d,A,n,E)||f.timescale!==d.timescale&&a)&&(f.initPTS=A-n,d&&d.timescale===1&&M.warn(`Adjusting initPTS by ${f.initPTS-d.baseTime}`),this.initPTS=d={baseTime:f.initPTS,timescale:1});let k=e?A-d.baseTime/d.timescale:c,L=k+E;CT(g,h,d.baseTime/d.timescale),E>0?this.lastEndTime=L:(M.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let N=!!g.audio,D=!!g.video,$="";N&&($+="audio"),D&&($+="video");let O={data1:h,startPTS:k,startDTS:k,endPTS:L,endDTS:L,type:$,hasAudio:N,hasVideo:D,nb:1,dropped:0};return u.audio=O.type==="audio"?O:void 0,u.video=O.type!=="audio"?O:void 0,u.initSegment=f,u.id3=b0(i,n,d,d),s.samples.length&&(u.text=y0(s,n,d)),u}};function W_(r,e,t,i){if(r===null)return!0;let s=Math.max(i,1),n=e-r.baseTime/r.timescale;return Math.abs(n-t)>s}function Lg(r,e){let t=r==null?void 0:r.codec;return t&&t.length>4?t:t==="hvc1"||t==="hev1"?"hvc1.1.6.L120.90":t==="av01"?"av01.0.04M.08":t==="avc1"||e===qe.VIDEO?"avc1.42e01e":"mp4a.40.5"}var Qi;try{Qi=self.performance.now.bind(self.performance)}catch{M.debug("Unable to use Performance API on this environment"),Qi=typeof self!="undefined"&&self.Date.now}var fu=[{demux:qu,remux:Qu},{demux:Fi,remux:$n},{demux:Wu,remux:$n},{demux:zu,remux:$n}],Sl=class{constructor(e,t,i,s,n){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=e,this.typeSupported=t,this.config=i,this.vendor=s,this.id=n}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}push(e,t,i,s){let n=i.transmuxing;n.executeStart=Qi();let a=new Uint8Array(e),{currentTransmuxState:o,transmuxConfig:l}=this;s&&(this.currentTransmuxState=s);let{contiguous:d,discontinuity:c,trackSwitch:u,accurateTimeOffset:h,timeOffset:f,initSegmentChange:g}=s||o,{audioCodec:E,videoCodec:T,defaultInitPts:A,duration:k,initSegmentData:L}=l,N=q_(a,t);if(N&&N.method==="AES-128"){let H=this.getDecrypter();if(H.isSync()){let q=H.softwareDecrypt(a,N.key.buffer,N.iv.buffer);if(i.part>-1&&(q=H.flush()),!q)return n.executeEnd=Qi(),mu(i);a=new Uint8Array(q)}else return this.decryptionPromise=H.webCryptoDecrypt(a,N.key.buffer,N.iv.buffer).then(q=>{let P=this.push(q,null,i);return this.decryptionPromise=null,P}),this.decryptionPromise}let D=this.needsProbing(c,u);if(D){let H=this.configureTransmuxer(a);if(H)return M.warn(`[transmuxer] ${H.message}`),this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:H,reason:H.message}),n.executeEnd=Qi(),mu(i)}(c||u||g||D)&&this.resetInitSegment(L,E,T,k,t),(c||g||D)&&this.resetInitialTimestamp(A),d||this.resetContiguity();let $=this.transmux(a,N,f,h,i),O=this.currentTransmuxState;return O.contiguous=!0,O.discontinuity=!1,O.trackSwitch=!1,n.executeEnd=Qi(),$}flush(e){let t=e.transmuxing;t.executeStart=Qi();let{decrypter:i,currentTransmuxState:s,decryptionPromise:n}=this;if(n)return n.then(()=>this.flush(e));let a=[],{timeOffset:o}=s;if(i){let u=i.flush();u&&a.push(this.push(u,null,e))}let{demuxer:l,remuxer:d}=this;if(!l||!d)return t.executeEnd=Qi(),[mu(e)];let c=l.flush(o);return cl(c)?c.then(u=>(this.flushRemux(a,u,e),a)):(this.flushRemux(a,c,e),a)}flushRemux(e,t,i){let{audioTrack:s,videoTrack:n,id3Track:a,textTrack:o}=t,{accurateTimeOffset:l,timeOffset:d}=this.currentTransmuxState;M.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let c=this.remuxer.remux(s,n,a,o,d,l,!0,this.id);e.push({remuxResult:c,chunkMeta:i}),i.transmuxing.executeEnd=Qi()}resetInitialTimestamp(e){let{demuxer:t,remuxer:i}=this;!t||!i||(t.resetTimeStamp(e),i.resetTimeStamp(e))}resetContiguity(){let{demuxer:e,remuxer:t}=this;!e||!t||(e.resetContiguity(),t.resetNextTimestamp())}resetInitSegment(e,t,i,s,n){let{demuxer:a,remuxer:o}=this;!a||!o||(a.resetInitSegment(e,t,i,s),o.resetInitSegment(e,t,i,n))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(e,t,i,s,n){let a;return t&&t.method==="SAMPLE-AES"?a=this.transmuxSampleAes(e,t,i,s,n):a=this.transmuxUnencrypted(e,i,s,n),a}transmuxUnencrypted(e,t,i,s){let{audioTrack:n,videoTrack:a,id3Track:o,textTrack:l}=this.demuxer.demux(e,t,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(n,a,o,l,t,i,!1,this.id),chunkMeta:s}}transmuxSampleAes(e,t,i,s,n){return this.demuxer.demuxSampleAes(e,t,i).then(a=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,s,!1,this.id),chunkMeta:n}))}configureTransmuxer(e){let{config:t,observer:i,typeSupported:s,vendor:n}=this,a;for(let u=0,h=fu.length;u<h;u++)if(fu[u].demux.probe(e)){a=fu[u];break}if(!a)return new Error("Failed to find demuxer by probing fragment data");let o=this.demuxer,l=this.remuxer,d=a.remux,c=a.demux;(!l||!(l instanceof d))&&(this.remuxer=new d(i,t,s,n)),(!o||!(o instanceof c))&&(this.demuxer=new c(i,t,s),this.probe=c.probe)}needsProbing(e,t){return!this.demuxer||!this.remuxer||e||t}getDecrypter(){let e=this.decrypter;return e||(e=this.decrypter=new Wn(this.config)),e}};function q_(r,e){let t=null;return r.byteLength>0&&e!=null&&e.key!=null&&e.iv!==null&&e.method!=null&&(t=e),t}var mu=r=>({remuxResult:{},chunkMeta:r});function cl(r){return"then"in r&&r.then instanceof Function}var Zu=class{constructor(e,t,i,s,n){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=t,this.initSegmentData=i,this.duration=s,this.defaultInitPts=n||null}},Ju=class{constructor(e,t,i,s,n,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=t,this.accurateTimeOffset=i,this.trackSwitch=s,this.timeOffset=n,this.initSegmentChange=a}},T0={exports:{}};(function(r){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function s(l,d,c){this.fn=l,this.context=d,this.once=c||!1}function n(l,d,c,u,h){if(typeof c!="function")throw new TypeError("The listener must be a function");var f=new s(c,u||l,h),g=t?t+d:d;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],f]:l._events[g].push(f):(l._events[g]=f,l._eventsCount++),l}function a(l,d){--l._eventsCount===0?l._events=new i:delete l._events[d]}function o(){this._events=new i,this._eventsCount=0}o.prototype.eventNames=function(){var d=[],c,u;if(this._eventsCount===0)return d;for(u in c=this._events)e.call(c,u)&&d.push(t?u.slice(1):u);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(c)):d},o.prototype.listeners=function(d){var c=t?t+d:d,u=this._events[c];if(!u)return[];if(u.fn)return[u.fn];for(var h=0,f=u.length,g=new Array(f);h<f;h++)g[h]=u[h].fn;return g},o.prototype.listenerCount=function(d){var c=t?t+d:d,u=this._events[c];return u?u.fn?1:u.length:0},o.prototype.emit=function(d,c,u,h,f,g){var E=t?t+d:d;if(!this._events[E])return!1;var T=this._events[E],A=arguments.length,k,L;if(T.fn){switch(T.once&&this.removeListener(d,T.fn,void 0,!0),A){case 1:return T.fn.call(T.context),!0;case 2:return T.fn.call(T.context,c),!0;case 3:return T.fn.call(T.context,c,u),!0;case 4:return T.fn.call(T.context,c,u,h),!0;case 5:return T.fn.call(T.context,c,u,h,f),!0;case 6:return T.fn.call(T.context,c,u,h,f,g),!0}for(L=1,k=new Array(A-1);L<A;L++)k[L-1]=arguments[L];T.fn.apply(T.context,k)}else{var N=T.length,D;for(L=0;L<N;L++)switch(T[L].once&&this.removeListener(d,T[L].fn,void 0,!0),A){case 1:T[L].fn.call(T[L].context);break;case 2:T[L].fn.call(T[L].context,c);break;case 3:T[L].fn.call(T[L].context,c,u);break;case 4:T[L].fn.call(T[L].context,c,u,h);break;default:if(!k)for(D=1,k=new Array(A-1);D<A;D++)k[D-1]=arguments[D];T[L].fn.apply(T[L].context,k)}}return!0},o.prototype.on=function(d,c,u){return n(this,d,c,u,!1)},o.prototype.once=function(d,c,u){return n(this,d,c,u,!0)},o.prototype.removeListener=function(d,c,u,h){var f=t?t+d:d;if(!this._events[f])return this;if(!c)return a(this,f),this;var g=this._events[f];if(g.fn)g.fn===c&&(!h||g.once)&&(!u||g.context===u)&&a(this,f);else{for(var E=0,T=[],A=g.length;E<A;E++)(g[E].fn!==c||h&&!g[E].once||u&&g[E].context!==u)&&T.push(g[E]);T.length?this._events[f]=T.length===1?T[0]:T:a(this,f)}return this},o.prototype.removeAllListeners=function(d){var c;return d?(c=t?t+d:d,this._events[c]&&a(this,c)):(this._events=new i,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=t,o.EventEmitter=o,r.exports=o})(T0);var Y_=T0.exports,Dh=eT(Y_),pu=Ml()||{isTypeSupported:()=>!1},xl=class{constructor(e,t,i,s){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let n=e.config;this.hls=e,this.id=t,this.useWorker=!!n.enableWorker,this.onTransmuxComplete=i,this.onFlush=s;let a=(d,c)=>{c=c||{},c.frag=this.frag,c.id=this.id,d===b.ERROR&&(this.error=c.error),this.hls.trigger(d,c)};this.observer=new Dh,this.observer.on(b.FRAG_DECRYPTED,a),this.observer.on(b.ERROR,a);let o={mp4:pu.isTypeSupported("video/mp4"),mpeg:pu.isTypeSupported("audio/mpeg"),mp3:pu.isTypeSupported('audio/mp4; codecs="mp3"')},l=navigator.vendor;if(this.useWorker&&typeof Worker!="undefined"&&(n.workerPath||__())){try{n.workerPath?(M.log(`loading Web Worker ${n.workerPath} for "${t}"`),this.workerContext=S_(n.workerPath)):(M.log(`injecting Web Worker for "${t}"`),this.workerContext=A_()),this.onwmsg=u=>this.onWorkerMessage(u);let{worker:c}=this.workerContext;c.addEventListener("message",this.onwmsg),c.onerror=u=>{let h=new Error(`${u.message} (${u.filename}:${u.lineno})`);n.enableWorker=!1,M.warn(`Error in "${t}" Web Worker, fallback to inline`),this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:h})},c.postMessage({cmd:"init",typeSupported:o,vendor:l,id:t,config:JSON.stringify(n)})}catch(c){M.warn(`Error setting up "${t}" Web Worker, fallback to inline`,c),this.resetWorker(),this.error=null,this.transmuxer=new Sl(this.observer,o,n,l,t)}return}this.transmuxer=new Sl(this.observer,o,n,l,t)}resetWorker(){if(this.workerContext){let{worker:e,objectURL:t}=this.workerContext;t&&self.URL.revokeObjectURL(t),e.removeEventListener("message",this.onwmsg),e.onerror=null,e.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let t=this.transmuxer;t&&(t.destroy(),this.transmuxer=null)}let e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(e,t,i,s,n,a,o,l,d,c){var u,h;d.transmuxing.start=self.performance.now();let{transmuxer:f}=this,g=a?a.start:n.start,E=n.decryptdata,T=this.frag,A=!(T&&n.cc===T.cc),k=!(T&&d.level===T.level),L=T?d.sn-T.sn:-1,N=this.part?d.part-this.part.index:-1,D=L===0&&d.id>1&&d.id===(T==null?void 0:T.stats.chunkCount),$=!k&&(L===1||L===0&&(N===1||D&&N<=0)),O=self.performance.now();(k||L||n.stats.parsing.start===0)&&(n.stats.parsing.start=O),a&&(N||!$)&&(a.stats.parsing.start=O);let H=!(T&&((u=n.initSegment)==null?void 0:u.url)===((h=T.initSegment)==null?void 0:h.url)),q=new Ju(A,$,l,k,g,H);if(!$||A||H){M.log(`[transmuxer-interface, ${n.type}]: Starting new transmux session for sn: ${d.sn} p: ${d.part} level: ${d.level} id: ${d.id}
|
|
950
|
+
`;var iu=class extends $e{static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_AUDIO_TRACK_ENABLED,S.MEDIA_AUDIO_TRACK_UNAVAILABLE]}constructor(){super({slotTemplate:Zp})}get mediaAudioTrackEnabled(){return We(this,S.MEDIA_AUDIO_TRACK_ENABLED)}set mediaAudioTrackEnabled(e){Be(this,S.MEDIA_AUDIO_TRACK_ENABLED,e)}};w.customElements.get("media-audio-track-button")||w.customElements.define("media-audio-track-button",iu);var Jo=class extends ai{static get observedAttributes(){return[...super.observedAttributes,S.MEDIA_AUDIO_TRACK_ENABLED,S.MEDIA_AUDIO_TRACK_UNAVAILABLE]}init(){let e=Y.createElement("media-audio-track-button");e.part.add("button"),e.preventClick=!0;let t=Y.createElement("media-audio-track-listbox");t.part.add("listbox"),t.setAttribute("exportparts","option, option-selected, indicator");let i=this.shadowRoot.querySelector("slot[name=button]"),s=this.shadowRoot.querySelector("slot[name=listbox]");i.textContent="",s.textContent="",i.append(e),s.append(t)}};w.customElements.get("media-audio-track-selectmenu")||w.customElements.define("media-audio-track-selectmenu",Jo);var Ol=bb(Jp(),1);function eT(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var $g={exports:{}};(function(r,e){(function(t){var i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,s=/^(?=([^\/?#]*))\1([^]*)$/,n=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(l,d,c){if(c=c||{},l=l.trim(),d=d.trim(),!d){if(!c.alwaysNormalize)return l;var u=o.parseURL(l);if(!u)throw new Error("Error trying to parse base URL.");return u.path=o.normalizePath(u.path),o.buildURLFromParts(u)}var h=o.parseURL(d);if(!h)throw new Error("Error trying to parse relative URL.");if(h.scheme)return c.alwaysNormalize?(h.path=o.normalizePath(h.path),o.buildURLFromParts(h)):d;var f=o.parseURL(l);if(!f)throw new Error("Error trying to parse base URL.");if(!f.netLoc&&f.path&&f.path[0]!=="/"){var g=s.exec(f.path);f.netLoc=g[1],f.path=g[2]}f.netLoc&&!f.path&&(f.path="/");var E={scheme:f.scheme,netLoc:h.netLoc,path:null,params:h.params,query:h.query,fragment:h.fragment};if(!h.netLoc&&(E.netLoc=f.netLoc,h.path[0]!=="/"))if(!h.path)E.path=f.path,h.params||(E.params=f.params,h.query||(E.query=f.query));else{var T=f.path,A=T.substring(0,T.lastIndexOf("/")+1)+h.path;E.path=o.normalizePath(A)}return E.path===null&&(E.path=c.alwaysNormalize?o.normalizePath(h.path):h.path),o.buildURLFromParts(E)},parseURL:function(l){var d=i.exec(l);return d?{scheme:d[1]||"",netLoc:d[2]||"",path:d[3]||"",params:d[4]||"",query:d[5]||"",fragment:d[6]||""}:null},normalizePath:function(l){for(l=l.split("").reverse().join("").replace(n,"");l.length!==(l=l.replace(a,"")).length;);return l.split("").reverse().join("")},buildURLFromParts:function(l){return l.scheme+l.netLoc+l.path+l.params+l.query+l.fragment}};r.exports=o})()})($g);var Ah=$g.exports;function eg(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(r,s).enumerable})),t.push.apply(t,i)}return t}function jt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?eg(Object(t),!0).forEach(function(i){tT(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):eg(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function tT(r,e,t){return e=rT(e),e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function pt(){return pt=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},pt.apply(this,arguments)}function iT(r,e){if(typeof r!="object"||r===null)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var i=t.call(r,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function rT(r){var e=iT(r,"string");return typeof e=="symbol"?e:String(e)}var ce=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},b=function(r){return r.MEDIA_ATTACHING="hlsMediaAttaching",r.MEDIA_ATTACHED="hlsMediaAttached",r.MEDIA_DETACHING="hlsMediaDetaching",r.MEDIA_DETACHED="hlsMediaDetached",r.BUFFER_RESET="hlsBufferReset",r.BUFFER_CODECS="hlsBufferCodecs",r.BUFFER_CREATED="hlsBufferCreated",r.BUFFER_APPENDING="hlsBufferAppending",r.BUFFER_APPENDED="hlsBufferAppended",r.BUFFER_EOS="hlsBufferEos",r.BUFFER_FLUSHING="hlsBufferFlushing",r.BUFFER_FLUSHED="hlsBufferFlushed",r.MANIFEST_LOADING="hlsManifestLoading",r.MANIFEST_LOADED="hlsManifestLoaded",r.MANIFEST_PARSED="hlsManifestParsed",r.LEVEL_SWITCHING="hlsLevelSwitching",r.LEVEL_SWITCHED="hlsLevelSwitched",r.LEVEL_LOADING="hlsLevelLoading",r.LEVEL_LOADED="hlsLevelLoaded",r.LEVEL_UPDATED="hlsLevelUpdated",r.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",r.LEVELS_UPDATED="hlsLevelsUpdated",r.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",r.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",r.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",r.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",r.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",r.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",r.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",r.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",r.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",r.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",r.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",r.CUES_PARSED="hlsCuesParsed",r.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",r.INIT_PTS_FOUND="hlsInitPtsFound",r.FRAG_LOADING="hlsFragLoading",r.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",r.FRAG_LOADED="hlsFragLoaded",r.FRAG_DECRYPTED="hlsFragDecrypted",r.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",r.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",r.FRAG_PARSING_METADATA="hlsFragParsingMetadata",r.FRAG_PARSED="hlsFragParsed",r.FRAG_BUFFERED="hlsFragBuffered",r.FRAG_CHANGED="hlsFragChanged",r.FPS_DROP="hlsFpsDrop",r.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",r.ERROR="hlsError",r.DESTROYING="hlsDestroying",r.KEY_LOADING="hlsKeyLoading",r.KEY_LOADED="hlsKeyLoaded",r.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",r.BACK_BUFFER_REACHED="hlsBackBufferReached",r}({}),pe=function(r){return r.NETWORK_ERROR="networkError",r.MEDIA_ERROR="mediaError",r.KEY_SYSTEM_ERROR="keySystemError",r.MUX_ERROR="muxError",r.OTHER_ERROR="otherError",r}({}),B=function(r){return r.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",r.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",r.KEY_SYSTEM_NO_SESSION="keySystemNoSession",r.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",r.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",r.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",r.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",r.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",r.MANIFEST_LOAD_ERROR="manifestLoadError",r.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",r.MANIFEST_PARSING_ERROR="manifestParsingError",r.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",r.LEVEL_EMPTY_ERROR="levelEmptyError",r.LEVEL_LOAD_ERROR="levelLoadError",r.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",r.LEVEL_PARSING_ERROR="levelParsingError",r.LEVEL_SWITCH_ERROR="levelSwitchError",r.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",r.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",r.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",r.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",r.FRAG_LOAD_ERROR="fragLoadError",r.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",r.FRAG_DECRYPT_ERROR="fragDecryptError",r.FRAG_PARSING_ERROR="fragParsingError",r.FRAG_GAP="fragGap",r.REMUX_ALLOC_ERROR="remuxAllocError",r.KEY_LOAD_ERROR="keyLoadError",r.KEY_LOAD_TIMEOUT="keyLoadTimeOut",r.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",r.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",r.BUFFER_APPEND_ERROR="bufferAppendError",r.BUFFER_APPENDING_ERROR="bufferAppendingError",r.BUFFER_STALLED_ERROR="bufferStalledError",r.BUFFER_FULL_ERROR="bufferFullError",r.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",r.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",r.INTERNAL_EXCEPTION="internalException",r.INTERNAL_ABORTED="aborted",r.UNKNOWN="unknown",r}({}),Gr=function(){},Su={trace:Gr,debug:Gr,log:Gr,warn:Gr,info:Gr,error:Gr},Un=Su;function sT(r){let e=self.console[r];return e?e.bind(self.console,`[${r}] >`):Gr}function nT(r,...e){e.forEach(function(t){Un[t]=r[t]?r[t].bind(r):sT(t)})}function aT(r,e){if(self.console&&r===!0||typeof r=="object"){nT(r,"debug","log","info","warn","error");try{Un.log(`Debug logs enabled for "${e}" in hls.js version 1.4.10`)}catch{Un=Su}}else Un=Su}var M=Un,oT=/^(\d+)x(\d+)$/,tg=/(.+?)=(".*?"|.*?)(?:,|$)/g,Ze=class{constructor(e){typeof e=="string"&&(e=Ze.parseAttrList(e));for(let t in e)e.hasOwnProperty(t)&&(t.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(t)),this[t]=e[t])}decimalInteger(e){let t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t}hexadecimalInteger(e){if(this[e]){let t=(this[e]||"0x").slice(2);t=(t.length&1?"0":"")+t;let i=new Uint8Array(t.length/2);for(let s=0;s<t.length/2;s++)i[s]=parseInt(t.slice(s*2,s*2+2),16);return i}else return null}hexadecimalIntegerAsNumber(e){let t=parseInt(this[e],16);return t>Number.MAX_SAFE_INTEGER?1/0:t}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,t){let i=this[e];return i?parseFloat(i):t}enumeratedString(e){return this[e]}bool(e){return this[e]==="YES"}decimalResolution(e){let t=oT.exec(this[e]);if(t!==null)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}}static parseAttrList(e){let t,i={},s='"';for(tg.lastIndex=0;(t=tg.exec(e))!==null;){let n=t[2];n.indexOf(s)===0&&n.lastIndexOf(s)===n.length-1&&(n=n.slice(1,-1));let a=t[1].trim();i[a]=n}return i}};function lT(r){return r!=="ID"&&r!=="CLASS"&&r!=="START-DATE"&&r!=="DURATION"&&r!=="END-DATE"&&r!=="END-ON-NEXT"}function dT(r){return r==="SCTE35-OUT"||r==="SCTE35-IN"}var ul=class{constructor(e,t){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,t){let i=t.attr;for(let s in i)if(Object.prototype.hasOwnProperty.call(e,s)&&e[s]!==i[s]){M.warn(`DATERANGE tag attribute: "${s}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=s;break}e=pt(new Ze({}),i,e)}if(this.attr=e,this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);ce(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let e=this.duration;return e!==null?new Date(this._startDate.getTime()+e*1e3):null}get duration(){if("DURATION"in this.attr){let e=this.attr.decimalFloatingPoint("DURATION");if(ce(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&ce(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}},Ks=class{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}},qe={AUDIO:"audio",VIDEO:"video",AUDIOVIDEO:"audiovideo"},hl=class{constructor(e){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[qe.AUDIO]:null,[qe.VIDEO]:null,[qe.AUDIOVIDEO]:null},this.baseurl=e}setByteRange(e,t){let i=e.split("@",2),s=[];i.length===1?s[0]=t?t.byteRangeEndOffset:0:s[0]=parseInt(i[1]),s[1]=parseInt(i[0])+s[0],this._byteRange=s}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=Ah.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(e){this._url=e}},Fn=class extends hl{constructor(e,t){super(t),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new Ks,this.urlId=0,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.type=e}get decryptdata(){let{levelkeys:e}=this;if(!e&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let t=this.levelkeys.identity;if(t)this._decryptdata=t.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null||!ce(this.programDateTime))return null;let e=ce(this.duration)?this.duration:0;return this.programDateTime+e*1e3}get encrypted(){var e;if((e=this._decryptdata)!=null&&e.encrypted)return!0;if(this.levelkeys){let t=Object.keys(this.levelkeys),i=t.length;if(i>1||i===1&&this.levelkeys[t[0]].encrypted)return!0}return!1}setKeyFormat(e){if(this.levelkeys){let t=this.levelkeys[e];t&&!this._decryptdata&&(this._decryptdata=t.getDecryptData(this.sn))}}abortRequests(){var e,t;(e=this.loader)==null||e.abort(),(t=this.keyLoader)==null||t.abort()}setElementaryStreamInfo(e,t,i,s,n,a=!1){let{elementaryStreams:o}=this,l=o[e];if(!l){o[e]={startPTS:t,endPTS:i,startDTS:s,endDTS:n,partial:a};return}l.startPTS=Math.min(l.startPTS,t),l.endPTS=Math.max(l.endPTS,i),l.startDTS=Math.min(l.startDTS,s),l.endDTS=Math.max(l.endDTS,n)}clearElementaryStreamInfo(){let{elementaryStreams:e}=this;e[qe.AUDIO]=null,e[qe.VIDEO]=null,e[qe.AUDIOVIDEO]=null}},xu=class extends hl{constructor(e,t,i,s,n){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new Ks,this.duration=e.decimalFloatingPoint("DURATION"),this.gap=e.bool("GAP"),this.independent=e.bool("INDEPENDENT"),this.relurl=e.enumeratedString("URI"),this.fragment=t,this.index=s;let a=e.enumeratedString("BYTERANGE");a&&this.setByteRange(a,n),n&&(this.fragOffset=n.fragOffset+n.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:e}=this;return!!(e.audio||e.video||e.audiovideo)}},cT=10,Iu=class{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){if(!e){this.advanced=!0,this.updated=!0;return}let t=this.lastPartSn-e.lastPartSn,i=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!i||!!t,this.advanced=this.endSN>e.endSN||t>0||t===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(e.misses*.6):this.misses=e.misses+1,this.availabilityDelay=e.availabilityDelay}get hasProgramDateTime(){return this.fragments.length?ce(this.fragments[this.fragments.length-1].programDateTime):!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||cT}get drift(){let e=this.driftEndTime-this.driftStartTime;return e>0?(this.driftEnd-this.driftStart)*1e3/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var e;return(e=this.fragments)!=null&&e.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}};function Sh(r){return Uint8Array.from(atob(r),e=>e.charCodeAt(0))}function uT(r){let e=Hg(r).subarray(0,16),t=new Uint8Array(16);return t.set(e,16-e.length),t}function hT(r){let e=function(i,s,n){let a=i[s];i[s]=i[n],i[n]=a};e(r,0,3),e(r,1,2),e(r,4,5),e(r,6,7)}function fT(r){let e=r.split(":"),t=null;if(e[0]==="data"&&e.length===2){let i=e[1].split(";"),s=i[i.length-1].split(",");if(s.length===2){let n=s[0]==="base64",a=s[1];n?(i.splice(-1,1),t=Sh(a)):t=uT(a)}}return t}function Hg(r){return Uint8Array.from(unescape(encodeURIComponent(r)),e=>e.charCodeAt(0))}var st={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Yt={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function ig(r){switch(r){case Yt.FAIRPLAY:return st.FAIRPLAY;case Yt.PLAYREADY:return st.PLAYREADY;case Yt.WIDEVINE:return st.WIDEVINE;case Yt.CLEARKEY:return st.CLEARKEY}}var Gg={WIDEVINE:"edef8ba979d64acea3c827dcd51d21ed"};function mT(r){if(r===Gg.WIDEVINE)return st.WIDEVINE}function rg(r){switch(r){case st.FAIRPLAY:return Yt.FAIRPLAY;case st.PLAYREADY:return Yt.PLAYREADY;case st.WIDEVINE:return Yt.WIDEVINE;case st.CLEARKEY:return Yt.CLEARKEY}}function su(r){let{drmSystems:e,widevineLicenseUrl:t}=r,i=e?[st.FAIRPLAY,st.WIDEVINE,st.PLAYREADY,st.CLEARKEY].filter(s=>!!e[s]):[];return!i[st.WIDEVINE]&&t&&i.push(st.WIDEVINE),i}var Vg=function(){return typeof self!="undefined"&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null}();function pT(r,e,t,i){let s;switch(r){case st.FAIRPLAY:s=["cenc","sinf"];break;case st.WIDEVINE:case st.PLAYREADY:s=["cenc"];break;case st.CLEARKEY:s=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${r}`)}return gT(s,e,t,i)}function gT(r,e,t,i){return[{initDataTypes:r,persistentState:i.persistentState||"not-allowed",distinctiveIdentifier:i.distinctiveIdentifier||"not-allowed",sessionTypes:i.sessionTypes||[i.sessionType||"temporary"],audioCapabilities:e.map(n=>({contentType:`audio/mp4; codecs="${n}"`,robustness:i.audioRobustness||"",encryptionScheme:i.audioEncryptionScheme||null})),videoCapabilities:t.map(n=>({contentType:`video/mp4; codecs="${n}"`,robustness:i.videoRobustness||"",encryptionScheme:i.videoEncryptionScheme||null}))}]}function Vr(r,e,t){return Uint8Array.prototype.slice?r.slice(e,t):new Uint8Array(Array.prototype.slice.call(r,e,t))}var xh=(r,e)=>e+10<=r.length&&r[e]===73&&r[e+1]===68&&r[e+2]===51&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128,Kg=(r,e)=>e+10<=r.length&&r[e]===51&&r[e+1]===68&&r[e+2]===73&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128,fl=(r,e)=>{let t=e,i=0;for(;xh(r,e);){i+=10;let s=Cl(r,e+6);i+=s,Kg(r,e+10)&&(i+=10),e+=i}if(i>0)return r.subarray(t,t+i)},Cl=(r,e)=>{let t=0;return t=(r[e]&127)<<21,t|=(r[e+1]&127)<<14,t|=(r[e+2]&127)<<7,t|=r[e+3]&127,t},vT=(r,e)=>xh(r,e)&&Cl(r,e+6)+10<=r.length-e,ET=r=>{let e=qg(r);for(let t=0;t<e.length;t++){let i=e[t];if(Wg(i))return ST(i)}},Wg=r=>r&&r.key==="PRIV"&&r.info==="com.apple.streaming.transportStreamTimestamp",bT=r=>{let e=String.fromCharCode(r[0],r[1],r[2],r[3]),t=Cl(r,4),i=10;return{type:e,size:t,data:r.subarray(i,i+t)}},qg=r=>{let e=0,t=[];for(;xh(r,e);){let i=Cl(r,e+6);e+=10;let s=e+i;for(;e+8<s;){let n=bT(r.subarray(e)),a=yT(n);a&&t.push(a),e+=n.size+10}Kg(r,e)&&(e+=10)}return t},yT=r=>r.type==="PRIV"?TT(r):r.type[0]==="W"?AT(r):_T(r),TT=r=>{if(r.size<2)return;let e=Hi(r.data,!0),t=new Uint8Array(r.data.subarray(e.length+1));return{key:r.type,info:e,data:t.buffer}},_T=r=>{if(r.size<2)return;if(r.type==="TXXX"){let t=1,i=Hi(r.data.subarray(t),!0);t+=i.length+1;let s=Hi(r.data.subarray(t));return{key:r.type,info:i,data:s}}let e=Hi(r.data.subarray(1));return{key:r.type,data:e}},AT=r=>{if(r.type==="WXXX"){if(r.size<2)return;let t=1,i=Hi(r.data.subarray(t),!0);t+=i.length+1;let s=Hi(r.data.subarray(t));return{key:r.type,info:i,data:s}}let e=Hi(r.data);return{key:r.type,data:e}},ST=r=>{if(r.data.byteLength===8){let e=new Uint8Array(r.data),t=e[3]&1,i=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return i/=45,t&&(i+=4772185884e-2),Math.round(i)}},Hi=(r,e=!1)=>{let t=xT();if(t){let d=t.decode(r);if(e){let c=d.indexOf("\0");return c!==-1?d.substring(0,c):d}return d.replace(/\0/g,"")}let i=r.length,s,n,a,o="",l=0;for(;l<i;){if(s=r[l++],s===0&&e)return o;if(s===0||s===3)continue;switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(s);break;case 12:case 13:n=r[l++],o+=String.fromCharCode((s&31)<<6|n&63);break;case 14:n=r[l++],a=r[l++],o+=String.fromCharCode((s&15)<<12|(n&63)<<6|(a&63)<<0);break}}return o},nu;function xT(){return!nu&&typeof self.TextDecoder!="undefined"&&(nu=new self.TextDecoder("utf-8")),nu}var Ni={hexDump:function(r){let e="";for(let t=0;t<r.length;t++){let i=r[t].toString(16);i.length<2&&(i="0"+i),e+=i}return e}},ml=Math.pow(2,32)-1,IT=[].push,Yg={video:1,audio:2,id3:3,text:4};function Lt(r){return String.fromCharCode.apply(null,r)}function jg(r,e){let t=r[e]<<8|r[e+1];return t<0?65536+t:t}function Te(r,e){let t=zg(r,e);return t<0?4294967296+t:t}function zg(r,e){return r[e]<<24|r[e+1]<<16|r[e+2]<<8|r[e+3]}function au(r,e,t){r[e]=t>>24,r[e+1]=t>>16&255,r[e+2]=t>>8&255,r[e+3]=t&255}function Pe(r,e){let t=[];if(!e.length)return t;let i=r.byteLength;for(let s=0;s<i;){let n=Te(r,s),a=Lt(r.subarray(s+4,s+8)),o=n>1?s+n:i;if(a===e[0])if(e.length===1)t.push(r.subarray(s+8,o));else{let l=Pe(r.subarray(s+8,o),e.slice(1));l.length&&IT.apply(t,l)}s=o}return t}function LT(r){let e=[],t=r[0],i=8,s=Te(r,i);i+=4;let n=0,a=0;t===0?i+=8:i+=16,i+=2;let o=r.length+a,l=jg(r,i);i+=2;for(let d=0;d<l;d++){let c=i,u=Te(r,c);c+=4;let h=u&2147483647;if((u&2147483648)>>>31===1)return M.warn("SIDX has hierarchical references (not supported)"),null;let g=Te(r,c);c+=4,e.push({referenceSize:h,subsegmentDuration:g,info:{duration:g/s,start:o,end:o+h-1}}),o+=h,c+=4,i=c}return{earliestPresentationTime:n,timescale:s,version:t,referencesCount:l,references:e}}function Xg(r){let e=[],t=Pe(r,["moov","trak"]);for(let s=0;s<t.length;s++){let n=t[s],a=Pe(n,["tkhd"])[0];if(a){let o=a[0],l=o===0?12:20,d=Te(a,l),c=Pe(n,["mdia","mdhd"])[0];if(c){o=c[0],l=o===0?12:20;let u=Te(c,l),h=Pe(n,["mdia","hdlr"])[0];if(h){let f=Lt(h.subarray(8,12)),g={soun:qe.AUDIO,vide:qe.VIDEO}[f];if(g){let E=Pe(n,["mdia","minf","stbl","stsd"])[0],T;E&&(T=Lt(E.subarray(12,16))),e[d]={timescale:u,type:g},e[g]={timescale:u,id:d,codec:T}}}}}}return Pe(r,["moov","mvex","trex"]).forEach(s=>{let n=Te(s,4),a=e[n];a&&(a.default={duration:Te(s,12),flags:Te(s,20)})}),e}function kT(r,e){if(!r||!e)return r;let t=e.keyId;return t&&e.isCommonEncryption&&Pe(r,["moov","trak"]).forEach(s=>{let a=Pe(s,["mdia","minf","stbl","stsd"])[0].subarray(8),o=Pe(a,["enca"]),l=o.length>0;l||(o=Pe(a,["encv"])),o.forEach(d=>{let c=l?d.subarray(28):d.subarray(78);Pe(c,["sinf"]).forEach(h=>{let f=Qg(h);if(f){let g=f.subarray(8,24);g.some(E=>E!==0)||(M.log(`[eme] Patching keyId in 'enc${l?"a":"v"}>sinf>>tenc' box: ${Ni.hexDump(g)} -> ${Ni.hexDump(t)}`),f.set(t,8))}})})}),r}function Qg(r){let e=Pe(r,["schm"])[0];if(e){let t=Lt(e.subarray(4,8));if(t==="cbcs"||t==="cenc")return Pe(r,["schi","tenc"])[0]}return M.error("[eme] missing 'schm' box"),null}function RT(r,e){return Pe(e,["moof","traf"]).reduce((t,i)=>{let s=Pe(i,["tfdt"])[0],n=s[0],a=Pe(i,["tfhd"]).reduce((o,l)=>{let d=Te(l,4),c=r[d];if(c){let u=Te(s,4);if(n===1){if(u===ml)return M.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),o;u*=ml+1,u+=Te(s,8)}let h=c.timescale||9e4,f=u/h;if(isFinite(f)&&(o===null||f<o))return f}return o},null);return a!==null&&isFinite(a)&&(t===null||a<t)?a:t},null)}function wT(r,e){let t=0,i=0,s=0,n=Pe(r,["moof","traf"]);for(let a=0;a<n.length;a++){let o=n[a],l=Pe(o,["tfhd"])[0],d=Te(l,4),c=e[d];if(!c)continue;let u=c.default,h=Te(l,0)|(u==null?void 0:u.flags),f=u==null?void 0:u.duration;h&8&&(h&2?f=Te(l,12):f=Te(l,8));let g=c.timescale||9e4,E=Pe(o,["trun"]);for(let T=0;T<E.length;T++){if(t=DT(E[T]),!t&&f){let A=Te(E[T],4);t=f*A}c.type===qe.VIDEO?i+=t/g:c.type===qe.AUDIO&&(s+=t/g)}}if(i===0&&s===0){let a=0,o=Pe(r,["sidx"]);for(let l=0;l<o.length;l++){let d=LT(o[l]);d!=null&&d.references&&(a+=d.references.reduce((c,u)=>c+u.info.duration||0,0))}return a}return i||s}function DT(r){let e=Te(r,0),t=8;e&1&&(t+=4),e&4&&(t+=4);let i=0,s=Te(r,4);for(let n=0;n<s;n++){if(e&256){let a=Te(r,t);i+=a,t+=4}e&512&&(t+=4),e&1024&&(t+=4),e&2048&&(t+=4)}return i}function CT(r,e,t){Pe(e,["moof","traf"]).forEach(i=>{Pe(i,["tfhd"]).forEach(s=>{let n=Te(s,4),a=r[n];if(!a)return;let o=a.timescale||9e4;Pe(i,["tfdt"]).forEach(l=>{let d=l[0],c=Te(l,4);if(d===0)c-=t*o,c=Math.max(c,0),au(l,4,c);else{c*=Math.pow(2,32),c+=Te(l,8),c-=t*o,c=Math.max(c,0);let u=Math.floor(c/(ml+1)),h=Math.floor(c%(ml+1));au(l,4,u),au(l,8,h)}})})})}function MT(r){let e={valid:null,remainder:null},t=Pe(r,["moof"]);if(t){if(t.length<2)return e.remainder=r,e}else return e;let i=t[t.length-1];return e.valid=Vr(r,0,i.byteOffset-8),e.remainder=Vr(r,i.byteOffset-8),e}function Kr(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r),t.set(e,r.length),t}function sg(r,e){let t=[],i=e.samples,s=e.timescale,n=e.id,a=!1;return Pe(i,["moof"]).map(l=>{let d=l.byteOffset-8;Pe(l,["traf"]).map(u=>{let h=Pe(u,["tfdt"]).map(f=>{let g=f[0],E=Te(f,4);return g===1&&(E*=Math.pow(2,32),E+=Te(f,8)),E/s})[0];return h!==void 0&&(r=h),Pe(u,["tfhd"]).map(f=>{let g=Te(f,4),E=Te(f,0)&16777215,T=(E&1)!==0,A=(E&2)!==0,k=(E&8)!==0,L=0,N=(E&16)!==0,D=0,$=(E&32)!==0,O=8;g===n&&(T&&(O+=8),A&&(O+=4),k&&(L=Te(f,O),O+=4),N&&(D=Te(f,O),O+=4),$&&(O+=4),e.type==="video"&&(a=OT(e.codec)),Pe(u,["trun"]).map(G=>{let q=G[0],P=Te(G,0)&16777215,X=(P&1)!==0,z=0,Ae=(P&4)!==0,Ee=(P&256)!==0,be=0,we=(P&512)!==0,Se=0,Z=(P&1024)!==0,ne=(P&2048)!==0,se=0,xe=Te(G,4),Ie=8;X&&(z=Te(G,Ie),Ie+=4),Ae&&(Ie+=4);let Ve=z+d;for(let ht=0;ht<xe;ht++){if(Ee?(be=Te(G,Ie),Ie+=4):be=L,we?(Se=Te(G,Ie),Ie+=4):Se=D,Z&&(Ie+=4),ne&&(q===0?se=Te(G,Ie):se=zg(G,Ie),Ie+=4),e.type===qe.VIDEO){let V=0;for(;V<Se;){let J=Te(i,Ve);if(Ve+=4,PT(a,i[Ve])){let ke=i.subarray(Ve,Ve+J);Zg(ke,a?2:1,r+se/s,t)}Ve+=J,V+=J+4}}r+=be/s}}))})})}),t}function OT(r){if(!r)return!1;let e=r.indexOf("."),t=e<0?r:r.substring(0,e);return t==="hvc1"||t==="hev1"||t==="dvh1"||t==="dvhe"}function PT(r,e){if(r){let t=e>>1&63;return t===39||t===40}else return(e&31)===6}function Zg(r,e,t,i){let s=Jg(r),n=0;n+=e;let a=0,o=0,l=!1,d=0;for(;n<s.length;){a=0;do{if(n>=s.length)break;d=s[n++],a+=d}while(d===255);o=0;do{if(n>=s.length)break;d=s[n++],o+=d}while(d===255);let c=s.length-n;if(!l&&a===4&&n<s.length){if(l=!0,s[n++]===181){let h=jg(s,n);if(n+=2,h===49){let f=Te(s,n);if(n+=4,f===1195456820){let g=s[n++];if(g===3){let E=s[n++],T=31&E,A=64&E,k=A?2+T*3:0,L=new Uint8Array(k);if(A){L[0]=E;for(let N=1;N<k;N++)L[N]=s[n++]}i.push({type:g,payloadType:a,pts:t,bytes:L})}}}}}else if(a===5&&o<c){if(l=!0,o>16){let u=[];for(let g=0;g<16;g++){let E=s[n++].toString(16);u.push(E.length==1?"0"+E:E),(g===3||g===5||g===7||g===9)&&u.push("-")}let h=o-16,f=new Uint8Array(h);for(let g=0;g<h;g++)f[g]=s[n++];i.push({payloadType:a,pts:t,uuid:u.join(""),userData:Hi(f),userDataBytes:f})}}else if(o<c)n+=o;else if(o>c)break}}function Jg(r){let e=r.byteLength,t=[],i=1;for(;i<e-2;)r[i]===0&&r[i+1]===0&&r[i+2]===3?(t.push(i+2),i+=2):i++;if(t.length===0)return r;let s=e-t.length,n=new Uint8Array(s),a=0;for(i=0;i<s;a++,i++)a===t[0]&&(a++,t.shift()),n[i]=r[a];return n}function NT(r){let e=r[0],t="",i="",s=0,n=0,a=0,o=0,l=0,d=0;if(e===0){for(;Lt(r.subarray(d,d+1))!=="\0";)t+=Lt(r.subarray(d,d+1)),d+=1;for(t+=Lt(r.subarray(d,d+1)),d+=1;Lt(r.subarray(d,d+1))!=="\0";)i+=Lt(r.subarray(d,d+1)),d+=1;i+=Lt(r.subarray(d,d+1)),d+=1,s=Te(r,12),n=Te(r,16),o=Te(r,20),l=Te(r,24),d=28}else if(e===1){d+=4,s=Te(r,d),d+=4;let u=Te(r,d);d+=4;let h=Te(r,d);for(d+=4,a=2**32*u+h,Number.isSafeInteger(a)||(a=Number.MAX_SAFE_INTEGER,M.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=Te(r,d),d+=4,l=Te(r,d),d+=4;Lt(r.subarray(d,d+1))!=="\0";)t+=Lt(r.subarray(d,d+1)),d+=1;for(t+=Lt(r.subarray(d,d+1)),d+=1;Lt(r.subarray(d,d+1))!=="\0";)i+=Lt(r.subarray(d,d+1)),d+=1;i+=Lt(r.subarray(d,d+1)),d+=1}let c=r.subarray(d,r.byteLength);return{schemeIdUri:t,value:i,timeScale:s,presentationTime:a,presentationTimeDelta:n,eventDuration:o,id:l,payload:c}}function UT(r,...e){let t=e.length,i=8,s=t;for(;s--;)i+=e[s].byteLength;let n=new Uint8Array(i);for(n[0]=i>>24&255,n[1]=i>>16&255,n[2]=i>>8&255,n[3]=i&255,n.set(r,4),s=0,i=8;s<t;s++)n.set(e[s],i),i+=e[s].byteLength;return n}function FT(r,e,t){if(r.byteLength!==16)throw new RangeError("Invalid system id");let i,s;if(e){i=1,s=new Uint8Array(e.length*16);for(let o=0;o<e.length;o++){let l=e[o];if(l.byteLength!==16)throw new RangeError("Invalid key");s.set(l,o*16)}}else i=0,s=new Uint8Array;let n;i>0?(n=new Uint8Array(4),e.length>0&&new DataView(n.buffer).setUint32(0,e.length,!1)):n=new Uint8Array;let a=new Uint8Array(4);return t&&t.byteLength>0&&new DataView(a.buffer).setUint32(0,t.byteLength,!1),UT([112,115,115,104],new Uint8Array([i,0,0,0]),r,n,s,a,t||new Uint8Array)}function BT(r){if(!(r instanceof ArrayBuffer)||r.byteLength<32)return null;let e={version:0,systemId:"",kids:null,data:null},t=new DataView(r),i=t.getUint32(0);if(r.byteLength!==i&&i>44||t.getUint32(4)!==1886614376||(e.version=t.getUint32(8)>>>24,e.version>1))return null;e.systemId=Ni.hexDump(new Uint8Array(r,12,16));let n=t.getUint32(28);if(e.version===0){if(i-32<n)return null;e.data=new Uint8Array(r,32,n)}else if(e.version===1){e.kids=[];for(let a=0;a<n;a++)e.kids.push(new Uint8Array(r,32+a*16,16))}return e}var tl={},Wr=class{static clearKeyUriToKeyIdMap(){tl={}}constructor(e,t,i,s=[1],n=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=s,this.iv=n,this.encrypted=e?e!=="NONE":!1,this.isCommonEncryption=this.encrypted&&e!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case Yt.FAIRPLAY:case Yt.WIDEVINE:case Yt.PLAYREADY:case Yt.CLEARKEY:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(e){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof e!="number"&&(this.method==="AES-128"&&!this.iv&&M.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0);let i=$T(e);return new Wr(this.method,this.uri,"identity",this.keyFormatVersions,i)}let t=fT(this.uri);if(t)switch(this.keyFormat){case Yt.WIDEVINE:this.pssh=t,t.length>=22&&(this.keyId=t.subarray(t.length-22,t.length-6));break;case Yt.PLAYREADY:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=FT(i,null,t);let s=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),n=String.fromCharCode.apply(null,Array.from(s)),a=n.substring(n.indexOf("<"),n.length),d=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(d){let c=d.childNodes[0]?d.childNodes[0].nodeValue:d.getAttribute("VALUE");if(c){let u=Sh(c).subarray(0,16);hT(u),this.keyId=u}}break}default:{let i=t.subarray(0,16);if(i.length!==16){let s=new Uint8Array(16);s.set(i,16-i.length),i=s}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=tl[this.uri];if(!i){let s=Object.keys(tl).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,s),tl[this.uri]=i}this.keyId=i}return this}};function $T(r){let e=new Uint8Array(16);for(let t=12;t<16;t++)e[t]=r>>8*(15-t)&255;return e}var e0=/\{\$([a-zA-Z0-9-_]+)\}/g;function ng(r){return e0.test(r)}function Wt(r,e,t){if(r.variableList!==null||r.hasVariableRefs)for(let i=t.length;i--;){let s=t[i],n=e[s];n&&(e[s]=Lu(r,n))}}function Lu(r,e){if(r.variableList!==null||r.hasVariableRefs){let t=r.variableList;return e.replace(e0,i=>{let s=i.substring(2,i.length-1),n=t==null?void 0:t[s];return n===void 0?(r.playlistParsingError||(r.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),i):n})}return e}function ag(r,e,t){let i=r.variableList;i||(r.variableList=i={});let s,n;if("QUERYPARAM"in e){s=e.QUERYPARAM;try{let a=new self.URL(t).searchParams;if(a.has(s))n=a.get(s);else throw new Error(`"${s}" does not match any query parameter in URI: "${t}"`)}catch(a){r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${a.message}`))}}else s=e.NAME,n=e.VALUE;s in i?r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${s}"`)):i[s]=n||""}function HT(r,e,t){let i=e.IMPORT;if(t&&i in t){let s=r.variableList;s||(r.variableList=s={}),s[i]=t[i]}else r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${i}"`))}function Ml(){if(typeof self!="undefined")return self.MediaSource||self.WebKitMediaSource}var GT={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}},og=Ml();function VT(r,e){let t=GT[e];return!!t&&t[r.slice(0,4)]===!0}function ou(r,e){var t;return(t=og==null?void 0:og.isTypeSupported(`${e||"video"}/mp4;codecs="${r}"`))!=null?t:!1}var lg=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,dg=/#EXT-X-MEDIA:(.*)/g,KT=/^#EXT(?:INF|-X-TARGETDURATION):/m,cg=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),WT=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|")),Zt=class{static findGroup(e,t){for(let i=0;i<e.length;i++){let s=e[i];if(s.id===t)return s}}static convertAVC1ToAVCOTI(e){let t=e.split(".");if(t.length>2){let i=t.shift()+".";return i+=parseInt(t.shift()).toString(16),i+=("000"+parseInt(t.shift()).toString(16)).slice(-4),i}return e}static resolve(e,t){return Ah.buildAbsoluteURL(t,e,{alwaysNormalize:!0})}static isMediaPlaylist(e){return KT.test(e)}static parseMasterPlaylist(e,t){let i=ng(e),s={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:i},n=[];lg.lastIndex=0;let a;for(;(a=lg.exec(e))!=null;)if(a[1]){var o;let d=new Ze(a[1]);Wt(s,d,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let c=Lu(s,a[2]),u={attrs:d,bitrate:d.decimalInteger("AVERAGE-BANDWIDTH")||d.decimalInteger("BANDWIDTH"),name:d.NAME,url:Zt.resolve(c,t)},h=d.decimalResolution("RESOLUTION");h&&(u.width=h.width,u.height=h.height),qT((d.CODECS||"").split(/[ ,]+/).filter(f=>f),u),u.videoCodec&&u.videoCodec.indexOf("avc1")!==-1&&(u.videoCodec=Zt.convertAVC1ToAVCOTI(u.videoCodec)),(o=u.unknownCodecs)!=null&&o.length||n.push(u),s.levels.push(u)}else if(a[3]){let d=a[3],c=a[4];switch(d){case"SESSION-DATA":{let u=new Ze(c);Wt(s,u,["DATA-ID","LANGUAGE","VALUE","URI"]);let h=u["DATA-ID"];h&&(s.sessionData===null&&(s.sessionData={}),s.sessionData[h]=u);break}case"SESSION-KEY":{let u=ug(c,t,s);u.encrypted&&u.isSupported()?(s.sessionKeys===null&&(s.sessionKeys=[]),s.sessionKeys.push(u)):M.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${c}"`);break}case"DEFINE":{{let u=new Ze(c);Wt(s,u,["NAME","VALUE","QUERYPARAM"]),ag(s,u,t)}break}case"CONTENT-STEERING":{let u=new Ze(c);Wt(s,u,["SERVER-URI","PATHWAY-ID"]),s.contentSteering={uri:Zt.resolve(u["SERVER-URI"],t),pathwayId:u["PATHWAY-ID"]||"."};break}case"START":{s.startTimeOffset=hg(c);break}}}let l=n.length>0&&n.length<s.levels.length;return s.levels=l?n:s.levels,s.levels.length===0&&(s.playlistParsingError=new Error("no levels found in manifest")),s}static parseMasterPlaylistMedia(e,t,i){let s,n={},a=i.levels,o={AUDIO:a.map(d=>({id:d.attrs.AUDIO,audioCodec:d.audioCodec})),SUBTITLES:a.map(d=>({id:d.attrs.SUBTITLES,textCodec:d.textCodec})),"CLOSED-CAPTIONS":[]},l=0;for(dg.lastIndex=0;(s=dg.exec(e))!==null;){let d=new Ze(s[1]),c=d.TYPE;if(c){let u=o[c],h=n[c]||[];n[c]=h,Wt(i,d,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let f={attrs:d,bitrate:0,id:l++,groupId:d["GROUP-ID"]||"",instreamId:d["INSTREAM-ID"],name:d.NAME||d.LANGUAGE||"",type:c,default:d.bool("DEFAULT"),autoselect:d.bool("AUTOSELECT"),forced:d.bool("FORCED"),lang:d.LANGUAGE,url:d.URI?Zt.resolve(d.URI,t):""};if(u!=null&&u.length){let g=Zt.findGroup(u,f.groupId)||u[0];fg(f,g,"audioCodec"),fg(f,g,"textCodec")}h.push(f)}}return n}static parseLevelPlaylist(e,t,i,s,n,a){let o=new Iu(t),l=o.fragments,d=null,c=0,u=0,h=0,f=0,g=null,E=new Fn(s,t),T,A,k,L=-1,N=!1;for(cg.lastIndex=0,o.m3u8=e,o.hasVariableRefs=ng(e);(T=cg.exec(e))!==null;){N&&(N=!1,E=new Fn(s,t),E.start=h,E.sn=c,E.cc=f,E.level=i,d&&(E.initSegment=d,E.rawProgramDateTime=d.rawProgramDateTime,d.rawProgramDateTime=null));let G=T[1];if(G){E.duration=parseFloat(G);let q=(" "+T[2]).slice(1);E.title=q||null,E.tagList.push(q?["INF",G,q]:["INF",G])}else if(T[3]){if(ce(E.duration)){E.start=h,k&&gg(E,k,o),E.sn=c,E.level=i,E.cc=f,E.urlId=n,l.push(E);let q=(" "+T[3]).slice(1);E.relurl=Lu(o,q),mg(E,g),g=E,h+=E.duration,c++,u=0,N=!0}}else if(T[4]){let q=(" "+T[4]).slice(1);g?E.setByteRange(q,g):E.setByteRange(q)}else if(T[5])E.rawProgramDateTime=(" "+T[5]).slice(1),E.tagList.push(["PROGRAM-DATE-TIME",E.rawProgramDateTime]),L===-1&&(L=l.length);else{if(T=T[0].match(WT),!T){M.warn("No matches on slow regex match for level playlist!");continue}for(A=1;A<T.length&&typeof T[A]=="undefined";A++);let q=(" "+T[A]).slice(1),P=(" "+T[A+1]).slice(1),X=T[A+2]?(" "+T[A+2]).slice(1):"";switch(q){case"PLAYLIST-TYPE":o.type=P.toUpperCase();break;case"MEDIA-SEQUENCE":c=o.startSN=parseInt(P);break;case"SKIP":{let z=new Ze(P);Wt(o,z,["RECENTLY-REMOVED-DATERANGES"]);let Ae=z.decimalInteger("SKIPPED-SEGMENTS");if(ce(Ae)){o.skippedSegments=Ae;for(let be=Ae;be--;)l.unshift(null);c+=Ae}let Ee=z.enumeratedString("RECENTLY-REMOVED-DATERANGES");Ee&&(o.recentlyRemovedDateranges=Ee.split(" "));break}case"TARGETDURATION":o.targetduration=Math.max(parseInt(P),1);break;case"VERSION":o.version=parseInt(P);break;case"EXTM3U":break;case"ENDLIST":o.live=!1;break;case"#":(P||X)&&E.tagList.push(X?[P,X]:[P]);break;case"DISCONTINUITY":f++,E.tagList.push(["DIS"]);break;case"GAP":E.gap=!0,E.tagList.push([q]);break;case"BITRATE":E.tagList.push([q,P]);break;case"DATERANGE":{let z=new Ze(P);Wt(o,z,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Wt(o,z,z.clientAttrs);let Ae=new ul(z,o.dateRanges[z.ID]);Ae.isValid||o.skippedSegments?o.dateRanges[Ae.id]=Ae:M.warn(`Ignoring invalid DATERANGE tag: "${P}"`),E.tagList.push(["EXT-X-DATERANGE",P]);break}case"DEFINE":{{let z=new Ze(P);Wt(o,z,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in z?HT(o,z,a):ag(o,z,t)}break}case"DISCONTINUITY-SEQUENCE":f=parseInt(P);break;case"KEY":{let z=ug(P,t,o);if(z.isSupported()){if(z.method==="NONE"){k=void 0;break}k||(k={}),k[z.keyFormat]&&(k=pt({},k)),k[z.keyFormat]=z}else M.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${P}"`);break}case"START":o.startTimeOffset=hg(P);break;case"MAP":{let z=new Ze(P);if(Wt(o,z,["BYTERANGE","URI"]),E.duration){let Ae=new Fn(s,t);pg(Ae,z,i,k),d=Ae,E.initSegment=d,d.rawProgramDateTime&&!E.rawProgramDateTime&&(E.rawProgramDateTime=d.rawProgramDateTime)}else pg(E,z,i,k),d=E,N=!0;break}case"SERVER-CONTROL":{let z=new Ze(P);o.canBlockReload=z.bool("CAN-BLOCK-RELOAD"),o.canSkipUntil=z.optionalFloat("CAN-SKIP-UNTIL",0),o.canSkipDateRanges=o.canSkipUntil>0&&z.bool("CAN-SKIP-DATERANGES"),o.partHoldBack=z.optionalFloat("PART-HOLD-BACK",0),o.holdBack=z.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let z=new Ze(P);o.partTarget=z.decimalFloatingPoint("PART-TARGET");break}case"PART":{let z=o.partList;z||(z=o.partList=[]);let Ae=u>0?z[z.length-1]:void 0,Ee=u++,be=new Ze(P);Wt(o,be,["BYTERANGE","URI"]);let we=new xu(be,E,t,Ee,Ae);z.push(we),E.duration+=we.duration;break}case"PRELOAD-HINT":{let z=new Ze(P);Wt(o,z,["URI"]),o.preloadHint=z;break}case"RENDITION-REPORT":{let z=new Ze(P);Wt(o,z,["URI"]),o.renditionReports=o.renditionReports||[],o.renditionReports.push(z);break}default:M.warn(`line parsed but not handled: ${T}`);break}}}g&&!g.relurl?(l.pop(),h-=g.duration,o.partList&&(o.fragmentHint=g)):o.partList&&(mg(E,g),E.cc=f,o.fragmentHint=E,k&&gg(E,k,o));let D=l.length,$=l[0],O=l[D-1];if(h+=o.skippedSegments*o.targetduration,h>0&&D&&O){o.averagetargetduration=h/D;let G=O.sn;o.endSN=G!=="initSegment"?G:0,o.live||(O.endList=!0),$&&(o.startCC=$.cc)}else o.endSN=0,o.startCC=0;return o.fragmentHint&&(h+=o.fragmentHint.duration),o.totalduration=h,o.endCC=f,L>0&&YT(l,L),o}};function ug(r,e,t){var i,s;let n=new Ze(r);Wt(t,n,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let a=(i=n.METHOD)!=null?i:"",o=n.URI,l=n.hexadecimalInteger("IV"),d=n.KEYFORMATVERSIONS,c=(s=n.KEYFORMAT)!=null?s:"identity";o&&n.IV&&!l&&M.error(`Invalid IV: ${n.IV}`);let u=o?Zt.resolve(o,e):"",h=(d||"1").split("/").map(Number).filter(Number.isFinite);return new Wr(a,u,c,h,l)}function hg(r){let t=new Ze(r).decimalFloatingPoint("TIME-OFFSET");return ce(t)?t:null}function qT(r,e){["video","audio","text"].forEach(t=>{let i=r.filter(s=>VT(s,t));if(i.length){let s=i.filter(n=>n.lastIndexOf("avc1",0)===0||n.lastIndexOf("mp4a",0)===0);e[`${t}Codec`]=s.length>0?s[0]:i[0],r=r.filter(n=>i.indexOf(n)===-1)}}),e.unknownCodecs=r}function fg(r,e,t){let i=e[t];i&&(r[t]=i)}function YT(r,e){let t=r[e];for(let i=e;i--;){let s=r[i];if(!s)return;s.programDateTime=t.programDateTime-s.duration*1e3,t=s}}function mg(r,e){r.rawProgramDateTime?r.programDateTime=Date.parse(r.rawProgramDateTime):e!=null&&e.programDateTime&&(r.programDateTime=e.endProgramDateTime),ce(r.programDateTime)||(r.programDateTime=null,r.rawProgramDateTime=null)}function pg(r,e,t,i){r.relurl=e.URI,e.BYTERANGE&&r.setByteRange(e.BYTERANGE),r.level=t,r.sn="initSegment",i&&(r.levelkeys=i),r.initSegment=null}function gg(r,e,t){r.levelkeys=e;let{encryptedFragments:i}=t;(!i.length||i[i.length-1].levelkeys!==e)&&Object.keys(e).some(s=>e[s].isCommonEncryption)&&i.push(r)}var Ue={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},ge={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"};function vg(r){let{type:e}=r;switch(e){case Ue.AUDIO_TRACK:return ge.AUDIO;case Ue.SUBTITLE_TRACK:return ge.SUBTITLE;default:return ge.MAIN}}function lu(r,e){let t=r.url;return(t===void 0||t.indexOf("data:")===0)&&(t=e.url),t}var ku=class{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(e){let t=this.hls.config,i=t.pLoader,s=t.loader,n=i||s,a=new n(t);return this.loaders[e.type]=a,a}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(let e in this.loaders){let t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,t){let{url:i}=t;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Ue.MANIFEST,url:i,deliveryDirectives:null})}onLevelLoading(e,t){let{id:i,level:s,url:n,deliveryDirectives:a}=t;this.load({id:i,level:s,responseType:"text",type:Ue.LEVEL,url:n,deliveryDirectives:a})}onAudioTrackLoading(e,t){let{id:i,groupId:s,url:n,deliveryDirectives:a}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:Ue.AUDIO_TRACK,url:n,deliveryDirectives:a})}onSubtitleTrackLoading(e,t){let{id:i,groupId:s,url:n,deliveryDirectives:a}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:Ue.SUBTITLE_TRACK,url:n,deliveryDirectives:a})}load(e){var t;let i=this.hls.config,s=this.getInternalLoader(e);if(s){let d=s.context;if(d&&d.url===e.url){M.trace("[playlist-loader]: playlist request ongoing");return}M.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),s.abort()}let n;if(e.type===Ue.MANIFEST?n=i.manifestLoadPolicy.default:n=pt({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(e),(t=e.deliveryDirectives)!=null&&t.part){let d;if(e.type===Ue.LEVEL&&e.level!==null?d=this.hls.levels[e.level].details:e.type===Ue.AUDIO_TRACK&&e.id!==null?d=this.hls.audioTracks[e.id].details:e.type===Ue.SUBTITLE_TRACK&&e.id!==null&&(d=this.hls.subtitleTracks[e.id].details),d){let c=d.partTarget,u=d.targetduration;if(c&&u){let h=Math.max(c*3,u*.8)*1e3;n=pt({},n,{maxTimeToFirstByteMs:Math.min(h,n.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(h,n.maxTimeToFirstByteMs)})}}}let a=n.errorRetry||n.timeoutRetry||{},o={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},l={onSuccess:(d,c,u,h)=>{let f=this.getInternalLoader(u);this.resetInternalLoader(u.type);let g=d.data;if(g.indexOf("#EXTM3U")!==0){this.handleManifestParsingError(d,u,new Error("no EXTM3U delimiter"),h||null,c);return}c.parsing.start=performance.now(),Zt.isMediaPlaylist(g)?this.handleTrackOrLevelPlaylist(d,c,u,h||null,f):this.handleMasterPlaylist(d,c,u,h)},onError:(d,c,u,h)=>{this.handleNetworkError(c,u,!1,d,h)},onTimeout:(d,c,u)=>{this.handleNetworkError(c,u,!0,void 0,d)}};s.load(e,o,l)}handleMasterPlaylist(e,t,i,s){let n=this.hls,a=e.data,o=lu(e,i),l=Zt.parseMasterPlaylist(a,o);if(l.playlistParsingError){this.handleManifestParsingError(e,i,l.playlistParsingError,s,t);return}let{contentSteering:d,levels:c,sessionData:u,sessionKeys:h,startTimeOffset:f,variableList:g}=l;this.variableList=g;let{AUDIO:E=[],SUBTITLES:T,"CLOSED-CAPTIONS":A}=Zt.parseMasterPlaylistMedia(a,o,l);E.length&&!E.some(L=>!L.url)&&c[0].audioCodec&&!c[0].attrs.AUDIO&&(M.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),E.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Ze({}),bitrate:0,url:""})),n.trigger(b.MANIFEST_LOADED,{levels:c,audioTracks:E,subtitles:T,captions:A,contentSteering:d,url:o,stats:t,networkDetails:s,sessionData:u,sessionKeys:h,startTimeOffset:f,variableList:g})}handleTrackOrLevelPlaylist(e,t,i,s,n){let a=this.hls,{id:o,level:l,type:d}=i,c=lu(e,i),u=ce(o)?o:0,h=ce(l)?l:u,f=vg(i),g=Zt.parseLevelPlaylist(e.data,c,h,f,u,this.variableList);if(d===Ue.MANIFEST){let E={attrs:new Ze({}),bitrate:0,details:g,name:"",url:c};a.trigger(b.MANIFEST_LOADED,{levels:[E],audioTracks:[],url:c,stats:t,networkDetails:s,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}t.parsing.end=performance.now(),i.levelDetails=g,this.handlePlaylistLoaded(g,e,t,i,s,n)}handleManifestParsingError(e,t,i,s,n){this.hls.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.MANIFEST_PARSING_ERROR,fatal:t.type===Ue.MANIFEST,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:s,stats:n})}handleNetworkError(e,t,i=!1,s,n){let a=`A network ${i?"timeout":"error"+(s?" (status "+s.code+")":"")} occurred while loading ${e.type}`;e.type===Ue.LEVEL?a+=`: ${e.level} id: ${e.id}`:(e.type===Ue.AUDIO_TRACK||e.type===Ue.SUBTITLE_TRACK)&&(a+=` id: ${e.id} group-id: "${e.groupId}"`);let o=new Error(a);M.warn(`[playlist-loader]: ${a}`);let l=B.UNKNOWN,d=!1,c=this.getInternalLoader(e);switch(e.type){case Ue.MANIFEST:l=i?B.MANIFEST_LOAD_TIMEOUT:B.MANIFEST_LOAD_ERROR,d=!0;break;case Ue.LEVEL:l=i?B.LEVEL_LOAD_TIMEOUT:B.LEVEL_LOAD_ERROR,d=!1;break;case Ue.AUDIO_TRACK:l=i?B.AUDIO_TRACK_LOAD_TIMEOUT:B.AUDIO_TRACK_LOAD_ERROR,d=!1;break;case Ue.SUBTITLE_TRACK:l=i?B.SUBTITLE_TRACK_LOAD_TIMEOUT:B.SUBTITLE_LOAD_ERROR,d=!1;break}c&&this.resetInternalLoader(e.type);let u={type:pe.NETWORK_ERROR,details:l,fatal:d,url:e.url,loader:c,context:e,error:o,networkDetails:t,stats:n};if(s){let h=(t==null?void 0:t.url)||e.url;u.response=jt({url:h,data:void 0},s)}this.hls.trigger(b.ERROR,u)}handlePlaylistLoaded(e,t,i,s,n,a){let o=this.hls,{type:l,level:d,id:c,groupId:u,deliveryDirectives:h}=s,f=lu(t,s),g=vg(s),E=typeof s.level=="number"&&g===ge.MAIN?d:void 0;if(!e.fragments.length){let A=new Error("No Segments found in Playlist");o.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.LEVEL_EMPTY_ERROR,fatal:!1,url:f,error:A,reason:A.message,response:t,context:s,level:E,parent:g,networkDetails:n,stats:i});return}e.targetduration||(e.playlistParsingError=new Error("Missing Target Duration"));let T=e.playlistParsingError;if(T){o.trigger(b.ERROR,{type:pe.NETWORK_ERROR,details:B.LEVEL_PARSING_ERROR,fatal:!1,url:f,error:T,reason:T.message,response:t,context:s,level:E,parent:g,networkDetails:n,stats:i});return}switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),(!a.getCacheAge||isNaN(e.ageHeader))&&(e.ageHeader=0)),l){case Ue.MANIFEST:case Ue.LEVEL:o.trigger(b.LEVEL_LOADED,{details:e,level:E||0,id:c||0,stats:i,networkDetails:n,deliveryDirectives:h});break;case Ue.AUDIO_TRACK:o.trigger(b.AUDIO_TRACK_LOADED,{details:e,id:c||0,groupId:u||"",stats:i,networkDetails:n,deliveryDirectives:h});break;case Ue.SUBTITLE_TRACK:o.trigger(b.SUBTITLE_TRACK_LOADED,{details:e,id:c||0,groupId:u||"",stats:i,networkDetails:n,deliveryDirectives:h});break}}};function t0(r,e){let t;try{t=new Event("addtrack")}catch{t=document.createEvent("Event"),t.initEvent("addtrack",!1,!1)}t.track=r,e.dispatchEvent(t)}function i0(r,e){let t=r.mode;if(t==="disabled"&&(r.mode="hidden"),r.cues&&!r.cues.getCueById(e.id))try{if(r.addCue(e),!r.cues.getCueById(e.id))throw new Error(`addCue is failed for: ${e}`)}catch(i){M.debug(`[texttrack-utils]: ${i}`);try{let s=new self.TextTrackCue(e.startTime,e.endTime,e.text);s.id=e.id,r.addCue(s)}catch(s){M.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${s}`)}}t==="disabled"&&(r.mode=t)}function Gs(r){let e=r.mode;if(e==="disabled"&&(r.mode="hidden"),r.cues)for(let t=r.cues.length;t--;)r.removeCue(r.cues[t]);e==="disabled"&&(r.mode=e)}function Ru(r,e,t,i){let s=r.mode;if(s==="disabled"&&(r.mode="hidden"),r.cues&&r.cues.length>0){let n=zT(r.cues,e,t);for(let a=0;a<n.length;a++)(!i||i(n[a]))&&r.removeCue(n[a])}s==="disabled"&&(r.mode=s)}function jT(r,e){if(e<r[0].startTime)return 0;let t=r.length-1;if(e>r[t].endTime)return-1;let i=0,s=t;for(;i<=s;){let n=Math.floor((s+i)/2);if(e<r[n].startTime)s=n-1;else if(e>r[n].startTime&&i<t)i=n+1;else return n}return r[i].startTime-e<e-r[s].startTime?i:s}function zT(r,e,t){let i=[],s=jT(r,e);if(s>-1)for(let n=s,a=r.length;n<a;n++){let o=r[n];if(o.startTime>=e&&o.endTime<=t)i.push(o);else if(o.startTime>t)return i}return i}var Ei={audioId3:"org.id3",dateRange:"com.apple.quicktime.HLS",emsg:"https://aomedia.org/emsg/ID3"},XT=.25;function wu(){if(typeof self!="undefined")return self.WebKitDataCue||self.VTTCue||self.TextTrackCue}var il=(()=>{let r=wu();try{new r(0,Number.POSITIVE_INFINITY,"")}catch{return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function du(r,e){return r.getTime()/1e3-e}function QT(r){return Uint8Array.from(r.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}var Du=class{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(e,t){this.media=t.media}onMediaDetaching(){!this.id3Track||(Gs(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(e){let t=this.getID3Track(e.textTracks);return t.mode="hidden",t}getID3Track(e){if(!!this.media){for(let t=0;t<e.length;t++){let i=e[t];if(i.kind==="metadata"&&i.label==="id3")return t0(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(e,t){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:s}}}=this;if(!i&&!s)return;let{samples:n}=t;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=wu();for(let o=0;o<n.length;o++){let l=n[o].type;if(l===Ei.emsg&&!i||!s)continue;let d=qg(n[o].data);if(d){let c=n[o].pts,u=c+n[o].duration;u>il&&(u=il),u-c<=0&&(u=c+XT);for(let f=0;f<d.length;f++){let g=d[f];if(!Wg(g)){this.updateId3CueEnds(c,l);let E=new a(c,u,"");E.value=g,l&&(E.type=l),this.id3Track.addCue(E)}}}}}updateId3CueEnds(e,t){var i;let s=(i=this.id3Track)==null?void 0:i.cues;if(s)for(let n=s.length;n--;){let a=s[n];a.type===t&&a.startTime<e&&a.endTime===il&&(a.endTime=e)}}onBufferFlushing(e,{startOffset:t,endOffset:i,type:s}){let{id3Track:n,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:o,enableID3MetadataCues:l}}=a;if(n&&(o||l)){let d;s==="audio"?d=c=>c.type===Ei.audioId3&&l:s==="video"?d=c=>c.type===Ei.emsg&&o:d=c=>c.type===Ei.audioId3&&l||c.type===Ei.emsg&&o,Ru(n,t,i,d)}}onLevelUpdated(e,{details:t}){if(!this.media||!t.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:s}=this,{dateRanges:n}=t,a=Object.keys(n);if(s){let c=Object.keys(i).filter(u=>!a.includes(u));for(let u=c.length;u--;){let h=c[u];Object.keys(i[h].cues).forEach(f=>{s.removeCue(i[h].cues[f])}),delete i[h]}}let o=t.fragments[t.fragments.length-1];if(a.length===0||!ce(o==null?void 0:o.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let l=o.programDateTime/1e3-o.start,d=wu();for(let c=0;c<a.length;c++){let u=a[c],h=n[u],f=i[u],g=(f==null?void 0:f.cues)||{},E=(f==null?void 0:f.durationKnown)||!1,T=du(h.startDate,l),A=il,k=h.endDate;if(k)A=du(k,l),E=!0;else if(h.endOnNext&&!E){let N=a.reduce((D,$)=>{let O=n[$];return O.class===h.class&&O.id!==$&&O.startDate>h.startDate&&D.push(O),D},[]).sort((D,$)=>D.startDate.getTime()-$.startDate.getTime())[0];N&&(A=du(N.startDate,l),E=!0)}let L=Object.keys(h.attr);for(let N=0;N<L.length;N++){let D=L[N];if(!lT(D))continue;let $=g[D];if($)E&&!f.durationKnown&&($.endTime=A);else{let O=h.attr[D];$=new d(T,A,""),dT(D)&&(O=QT(O)),$.value={key:D,data:O},$.type=Ei.dateRange,$.id=u,this.id3Track.addCue($),g[D]=$}}i[u]={cues:g,dateRange:h,durationKnown:E}}}},Cu=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=e,this.config=e.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:e,levelDetails:t}=this;return e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:t?e.liveMaxLatencyDurationCount*t.targetduration:0}get targetLatency(){let{levelDetails:e}=this;if(e===null)return null;let{holdBack:t,partHoldBack:i,targetduration:s}=e,{liveSyncDuration:n,liveSyncDurationCount:a,lowLatencyMode:o}=this.config,l=this.hls.userConfig,d=o&&i||t;(l.liveSyncDuration||l.liveSyncDurationCount||d===0)&&(d=n!==void 0?n:a*s);let c=s,u=1;return d+Math.min(this.stallCount*u,c)}get liveSyncPosition(){let e=this.estimateLiveEdge(),t=this.targetLatency,i=this.levelDetails;if(e===null||t===null||i===null)return null;let s=i.edge,n=e-t-this.edgeStalled,a=s-i.totalduration,o=s-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,n),o)}get drift(){let{levelDetails:e}=this;return e===null?1:e.drift}get edgeStalled(){let{levelDetails:e}=this;if(e===null)return 0;let t=(this.config.lowLatencyMode&&e.partTarget||e.targetduration)*3;return Math.max(e.age-t,0)}get forwardBufferLength(){let{media:e,levelDetails:t}=this;if(!e||!t)return 0;let i=e.buffered.length;return(i?e.buffered.end(i-1):t.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(b.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(b.ERROR,this.onError,this)}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(e,{details:t}){this.levelDetails=t,t.advanced&&this.timeupdate(),!t.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(e,t){var i;t.details===B.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&M.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:e,levelDetails:t}=this;if(!e||!t)return;this.currentTime=e.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:s,maxLiveSyncPlaybackRate:n}=this.config;if(!s||n===1)return;let a=this.targetLatency;if(a===null)return;let o=i-a,l=Math.min(this.maxLatency,a+t.targetduration),d=o<l;if(t.live&&d&&o>.05&&this.forwardBufferLength>1){let c=Math.min(2,Math.max(1,n)),u=Math.round(2/(1+Math.exp(-.75*o-this.edgeStalled))*20)/20;e.playbackRate=Math.min(c,Math.max(1,u))}else e.playbackRate!==1&&e.playbackRate!==0&&(e.playbackRate=1)}estimateLiveEdge(){let{levelDetails:e}=this;return e===null?null:e.edge+e.age}computeLatency(){let e=this.estimateLiveEdge();return e===null?null:e-this.currentTime}},Mu=["NONE","TYPE-0","TYPE-1",null],Bn={No:"",Yes:"YES",v2:"v2"};function ZT(r,e){let{canSkipUntil:t,canSkipDateRanges:i,endSN:s}=r,n=e!==void 0?e-s:0;return t&&n<t?i?Bn.v2:Bn.Yes:Bn.No}var pl=class{constructor(e,t,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=t,this.skip=i}addDirectives(e){let t=new self.URL(e);return this.msn!==void 0&&t.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&t.searchParams.set("_HLS_part",this.part.toString()),this.skip&&t.searchParams.set("_HLS_skip",this.skip),t.href}},qr=class{constructor(e){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.unknownCodecs=void 0,this.audioGroupIds=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.textGroupIds=void 0,this.url=void 0,this._urlId=0,this.url=[e.url],this._attrs=[e.attrs],this.bitrate=e.bitrate,e.details&&(this.details=e.details),this.id=e.id||0,this.name=e.name,this.width=e.width||0,this.height=e.height||0,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.unknownCodecs=e.unknownCodecs,this.codecSet=[e.videoCodec,e.audioCodec].filter(t=>t).join(",").replace(/\.[^.,]+/g,"")}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get attrs(){return this._attrs[this._urlId]}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get uri(){return this.url[this._urlId]||""}get urlId(){return this._urlId}set urlId(e){let t=e%this.url.length;this._urlId!==t&&(this.fragmentError=0,this.loadError=0,this.details=void 0,this._urlId=t)}get audioGroupId(){var e;return(e=this.audioGroupIds)==null?void 0:e[this.urlId]}get textGroupId(){var e;return(e=this.textGroupIds)==null?void 0:e[this.urlId]}addFallback(e){this.url.push(e.url),this._attrs.push(e.attrs)}};function cu(r,e){let t=e.startPTS;if(ce(t)){let i=0,s;e.sn>r.sn?(i=t-r.start,s=r):(i=r.start-t,s=e),s.duration!==i&&(s.duration=i)}else e.sn>r.sn?r.cc===e.cc&&r.minEndPTS?e.start=r.start+(r.minEndPTS-r.start):e.start=r.start+r.duration:e.start=Math.max(r.start-e.duration,0)}function r0(r,e,t,i,s,n){i-t<=0&&(M.warn("Fragment should have a positive duration",e),i=t+e.duration,n=s+e.duration);let o=t,l=i,d=e.startPTS,c=e.endPTS;if(ce(d)){let T=Math.abs(d-t);ce(e.deltaPTS)?e.deltaPTS=Math.max(T,e.deltaPTS):e.deltaPTS=T,o=Math.max(t,d),t=Math.min(t,d),s=Math.min(s,e.startDTS),l=Math.min(i,c),i=Math.max(i,c),n=Math.max(n,e.endDTS)}let u=t-e.start;e.start!==0&&(e.start=t),e.duration=i-e.start,e.startPTS=t,e.maxStartPTS=o,e.startDTS=s,e.endPTS=i,e.minEndPTS=l,e.endDTS=n;let h=e.sn;if(!r||h<r.startSN||h>r.endSN)return 0;let f,g=h-r.startSN,E=r.fragments;for(E[g]=e,f=g;f>0;f--)cu(E[f],E[f-1]);for(f=g;f<E.length-1;f++)cu(E[f],E[f+1]);return r.fragmentHint&&cu(E[E.length-1],r.fragmentHint),r.PTSKnown=r.alignedSliding=!0,u}function JT(r,e){let t=null,i=r.fragments;for(let l=i.length-1;l>=0;l--){let d=i[l].initSegment;if(d){t=d;break}}r.fragmentHint&&delete r.fragmentHint.endPTS;let s=0,n;if(i_(r,e,(l,d)=>{l.relurl&&(s=l.cc-d.cc),ce(l.startPTS)&&ce(l.endPTS)&&(d.start=d.startPTS=l.startPTS,d.startDTS=l.startDTS,d.maxStartPTS=l.maxStartPTS,d.endPTS=l.endPTS,d.endDTS=l.endDTS,d.minEndPTS=l.minEndPTS,d.duration=l.endPTS-l.startPTS,d.duration&&(n=d),e.PTSKnown=e.alignedSliding=!0),d.elementaryStreams=l.elementaryStreams,d.loader=l.loader,d.stats=l.stats,d.urlId=l.urlId,l.initSegment&&(d.initSegment=l.initSegment,t=l.initSegment)}),t&&(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach(d=>{var c;(!d.initSegment||d.initSegment.relurl===((c=t)==null?void 0:c.relurl))&&(d.initSegment=t)}),e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some(l=>!l),e.deltaUpdateFailed){M.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let l=e.skippedSegments;l--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=e_(r.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let a=e.fragments;if(s){M.warn("discontinuity sliding from playlist, take drift into account");for(let l=0;l<a.length;l++)a[l].cc+=s}e.skippedSegments&&(e.startCC=e.fragments[0].cc),t_(r.partList,e.partList,(l,d)=>{d.elementaryStreams=l.elementaryStreams,d.stats=l.stats}),n?r0(e,n,n.startPTS,n.endPTS,n.startDTS,n.endDTS):s0(r,e),a.length&&(e.totalduration=e.edge-a[0].start),e.driftStartTime=r.driftStartTime,e.driftStart=r.driftStart;let o=e.advancedDateTime;if(e.advanced&&o){let l=e.edge;e.driftStart||(e.driftStartTime=o,e.driftStart=l),e.driftEndTime=o,e.driftEnd=l}else e.driftEndTime=r.driftEndTime,e.driftEnd=r.driftEnd,e.advancedDateTime=r.advancedDateTime}function e_(r,e,t){let i=pt({},r);return t&&t.forEach(s=>{delete i[s]}),Object.keys(e).forEach(s=>{let n=new ul(e[s].attr,i[s]);n.isValid?i[s]=n:M.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(e[s].attr)}"`)}),i}function t_(r,e,t){if(r&&e){let i=0;for(let s=0,n=r.length;s<=n;s++){let a=r[s],o=e[s+i];a&&o&&a.index===o.index&&a.fragment.sn===o.fragment.sn?t(a,o):i--}}}function i_(r,e,t){let i=e.skippedSegments,s=Math.max(r.startSN,e.startSN)-e.startSN,n=(r.fragmentHint?1:0)+(i?e.endSN:Math.min(r.endSN,e.endSN))-e.startSN,a=e.startSN-r.startSN,o=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,l=r.fragmentHint?r.fragments.concat(r.fragmentHint):r.fragments;for(let d=s;d<=n;d++){let c=l[a+d],u=o[d];i&&!u&&d<i&&(u=e.fragments[d]=c),c&&u&&t(c,u)}}function s0(r,e){let t=e.startSN+e.skippedSegments-r.startSN,i=r.fragments;t<0||t>=i.length||Ou(e,i[t].start)}function Ou(r,e){if(e){let t=r.fragments;for(let i=r.skippedSegments;i<t.length;i++)t[i].start+=e;r.fragmentHint&&(r.fragmentHint.start+=e)}}function r_(r,e=1/0){let t=1e3*r.targetduration;if(r.updated){let i=r.fragments,s=4;if(i.length&&t*s>e){let n=i[i.length-1].duration*1e3;n<t&&(t=n)}}else t/=2;return Math.round(t)}function s_(r,e,t){if(!(r!=null&&r.details))return null;let i=r.details,s=i.fragments[e-i.startSN];return s||(s=i.fragmentHint,s&&s.sn===e)?s:e<i.startSN&&t&&t.sn===e?t:null}function Eg(r,e,t){var i;return r!=null&&r.details?n0((i=r.details)==null?void 0:i.partList,e,t):null}function n0(r,e,t){if(r)for(let i=r.length;i--;){let s=r[i];if(s.index===t&&s.fragment.sn===e)return s}return null}function gl(r){switch(r.details){case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_TIMEOUT:case B.LEVEL_LOAD_TIMEOUT:case B.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function bg(r,e){let t=gl(e);return r.default[`${t?"timeout":"error"}Retry`]}function Ih(r,e){let t=r.backoff==="linear"?1:Math.pow(2,e);return Math.min(t*r.retryDelayMs,r.maxRetryDelayMs)}function yg(r){return jt(jt({},r),{errorRetry:null,timeoutRetry:null})}function vl(r,e,t,i){return!!r&&e<r.maxNumRetry&&(n_(i)||!!t)}function n_(r){return r===0&&navigator.onLine===!1||!!r&&(r<400||r>499)}var a0={search:function(r,e){let t=0,i=r.length-1,s=null,n=null;for(;t<=i;){s=(t+i)/2|0,n=r[s];let a=e(n);if(a>0)t=s+1;else if(a<0)i=s-1;else return n}return null}};function a_(r,e,t){if(e===null||!Array.isArray(r)||!r.length||!ce(e))return null;let i=r[0].programDateTime;if(e<(i||0))return null;let s=r[r.length-1].endProgramDateTime;if(e>=(s||0))return null;t=t||0;for(let n=0;n<r.length;++n){let a=r[n];if(o_(e,t,a))return a}return null}function Gn(r,e,t=0,i=0){let s=null;if(r?s=e[r.sn-e[0].sn+1]||null:t===0&&e[0].start===0&&(s=e[0]),s&&Pu(t,i,s)===0)return s;let n=a0.search(e,Pu.bind(null,t,i));return n&&(n!==r||!s)?n:s}function Pu(r=0,e=0,t){if(t.start<=r&&t.start+t.duration>r)return 0;let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-i<=r?1:t.start-i>r&&t.start?-1:0}function o_(r,e,t){let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0))*1e3;return(t.endProgramDateTime||0)-i>r}function l_(r,e){return a0.search(r,t=>t.cc<e?1:t.cc>e?-1:0)}var d_=3e5,Mt={DoNothing:0,SendEndCallback:1,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,InsertDiscontinuity:4,RetryRequest:5},oi={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,SwitchToSDR:4},Nu=class{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=M.log.bind(M,"[info]:"),this.warn=M.warn.bind(M,"[warning]:"),this.error=M.error.bind(M,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.ERROR,this.onError,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;!e||(e.off(b.ERROR,this.onError,this),e.off(b.ERROR,this.onErrorOut,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){this.playlistError=0}stopLoad(){}getVariantLevelIndex(e){return(e==null?void 0:e.type)===ge.MAIN?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,t){var i,s;if(t.fatal)return;let n=this.hls,a=t.context;switch(t.details){case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:t.errorAction=this.getFragRetryOrSwitchAction(t);return;case B.FRAG_PARSING_ERROR:if((i=t.frag)!=null&&i.gap){t.errorAction={action:Mt.DoNothing,flags:oi.None};return}case B.FRAG_GAP:case B.FRAG_DECRYPT_ERROR:{t.errorAction=this.getFragRetryOrSwitchAction(t),t.errorAction.action=Mt.SendAlternateToPenaltyBox;return}case B.LEVEL_EMPTY_ERROR:case B.LEVEL_PARSING_ERROR:{var o,l;let d=t.parent===ge.MAIN?t.level:n.loadLevel;t.details===B.LEVEL_EMPTY_ERROR&&!!((o=t.context)!=null&&(l=o.levelDetails)!=null&&l.live)?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,d):(t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,d))}return;case B.LEVEL_LOAD_ERROR:case B.LEVEL_LOAD_TIMEOUT:typeof(a==null?void 0:a.level)=="number"&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,a.level));return;case B.AUDIO_TRACK_LOAD_ERROR:case B.AUDIO_TRACK_LOAD_TIMEOUT:case B.SUBTITLE_LOAD_ERROR:case B.SUBTITLE_TRACK_LOAD_TIMEOUT:if(a){let d=n.levels[n.loadLevel];if(d&&(a.type===Ue.AUDIO_TRACK&&a.groupId===d.audioGroupId||a.type===Ue.SUBTITLE_TRACK&&a.groupId===d.textGroupId)){t.errorAction=this.getPlaylistRetryOrSwitchAction(t,n.loadLevel),t.errorAction.action=Mt.SendAlternateToPenaltyBox,t.errorAction.flags=oi.MoveAllAlternatesMatchingHost;return}}return;case B.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let d=n.levels[n.loadLevel],c=d==null?void 0:d.attrs["HDCP-LEVEL"];c&&(t.errorAction={action:Mt.SendAlternateToPenaltyBox,flags:oi.MoveAllAlternatesMatchingHDCP,hdcpLevel:c})}return;case B.BUFFER_ADD_CODEC_ERROR:case B.REMUX_ALLOC_ERROR:t.errorAction=this.getLevelSwitchAction(t,(s=t.level)!=null?s:n.loadLevel);return;case B.INTERNAL_EXCEPTION:case B.BUFFER_APPENDING_ERROR:case B.BUFFER_APPEND_ERROR:case B.BUFFER_FULL_ERROR:case B.LEVEL_SWITCH_ERROR:case B.BUFFER_STALLED_ERROR:case B.BUFFER_SEEK_OVER_HOLE:case B.BUFFER_NUDGE_ON_STALL:t.errorAction={action:Mt.DoNothing,flags:oi.None};return}if(t.type===pe.KEY_SYSTEM_ERROR){let d=this.getVariantLevelIndex(t.frag);t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,d);return}}getPlaylistRetryOrSwitchAction(e,t){var i;let s=this.hls,n=bg(s.config.playlistLoadPolicy,e),a=this.playlistError++,o=(i=e.response)==null?void 0:i.code;if(vl(n,a,gl(e),o))return{action:Mt.RetryRequest,flags:oi.None,retryConfig:n,retryCount:a};let d=this.getLevelSwitchAction(e,t);return n&&(d.retryConfig=n,d.retryCount=a),d}getFragRetryOrSwitchAction(e){let t=this.hls,i=this.getVariantLevelIndex(e.frag),s=t.levels[i],{fragLoadPolicy:n,keyLoadPolicy:a}=t.config,o=bg(e.details.startsWith("key")?a:n,e),l=t.levels.reduce((u,h)=>u+h.fragmentError,0);if(s){var d;e.details!==B.FRAG_GAP&&s.fragmentError++;let u=(d=e.response)==null?void 0:d.code;if(vl(o,l,gl(e),u))return{action:Mt.RetryRequest,flags:oi.None,retryConfig:o,retryCount:l}}let c=this.getLevelSwitchAction(e,i);return o&&(c.retryConfig=o,c.retryCount=l),c}getLevelSwitchAction(e,t){let i=this.hls;t==null&&(t=i.loadLevel);let s=this.hls.levels[t];if(s&&(s.loadError++,i.autoLevelEnabled)){var n,a;let o=-1,{levels:l,loadLevel:d,minAutoLevel:c,maxAutoLevel:u}=i,h=(n=e.frag)==null?void 0:n.type,{type:f,groupId:g}=(a=e.context)!=null?a:{};for(let E=l.length;E--;){let T=(E+d)%l.length;if(T!==d&&T>=c&&T<=u&&l[T].loadError===0){let A=l[T];if(e.details===B.FRAG_GAP&&e.frag){let k=l[T].details;if(k){let L=Gn(e.frag,k.fragments,e.frag.start);if(L!=null&&L.gap)continue}}else{if(f===Ue.AUDIO_TRACK&&g===A.audioGroupId||f===Ue.SUBTITLE_TRACK&&g===A.textGroupId)continue;if(h===ge.AUDIO&&s.audioGroupId===A.audioGroupId||h===ge.SUBTITLE&&s.textGroupId===A.textGroupId)continue}o=T;break}}if(o>-1&&i.loadLevel!==o)return e.levelRetry=!0,this.playlistError=0,{action:Mt.SendAlternateToPenaltyBox,flags:oi.None,nextAutoLevel:o}}return{action:Mt.SendAlternateToPenaltyBox,flags:oi.MoveAllAlternatesMatchingHost}}onErrorOut(e,t){var i;switch((i=t.errorAction)==null?void 0:i.action){case Mt.DoNothing:break;case Mt.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(t),!t.errorAction.resolved&&t.details!==B.FRAG_GAP&&(t.fatal=!0);break}if(t.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(e){let t=this.hls,i=e.errorAction;if(!i)return;let{flags:s,hdcpLevel:n,nextAutoLevel:a}=i;switch(s){case oi.None:this.switchLevel(e,a);break;case oi.MoveAllAlternatesMatchingHost:i.resolved||(i.resolved=this.redundantFailover(e));break;case oi.MoveAllAlternatesMatchingHDCP:n&&(t.maxHdcpLevel=Mu[Mu.indexOf(n)-1],i.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${t.maxHdcpLevel}" or lower`);break}i.resolved||this.switchLevel(e,a)}switchLevel(e,t){t!==void 0&&e.errorAction&&(this.warn(`switching to level ${t} after ${e.details}`),this.hls.nextAutoLevel=t,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}redundantFailover(e){let{hls:t,penalizedRenditions:i}=this,s=e.parent===ge.MAIN?e.level:t.loadLevel,n=t.levels[s],a=n.url.length,o=e.frag?e.frag.urlId:n.urlId;n.urlId===o&&(!e.frag||n.details)&&this.penalizeRendition(n,e);for(let l=1;l<a;l++){let d=(o+l)%a,c=i[d];if(!c||c_(c,e,i[o]))return this.warn(`Switching to Redundant Stream ${d+1}/${a}: "${n.url[d]}" after ${e.details}`),this.playlistError=0,t.levels.forEach(u=>{u.urlId=d}),t.nextLoadLevel=s,!0}return!1}penalizeRendition(e,t){let{penalizedRenditions:i}=this,s=i[e.urlId]||{lastErrorPerfMs:0,errors:[],details:void 0};s.lastErrorPerfMs=performance.now(),s.errors.push(t),s.details=e.details,i[e.urlId]=s}};function c_(r,e,t){if(performance.now()-r.lastErrorPerfMs>d_)return!0;let i=r.details;if(e.details===B.FRAG_GAP&&i&&e.frag){let s=e.frag.start,n=Gn(null,i.fragments,s);if(n&&!n.gap)return!0}if(t&&r.errors.length<t.errors.length){let s=r.errors[r.errors.length-1];if(i&&s.frag&&e.frag&&Math.abs(s.frag.start-e.frag.start)>i.targetduration*3)return!0}return!1}var Vn=class{constructor(e,t){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=M.log.bind(M,`${t}:`),this.warn=M.warn.bind(M,`${t}:`),this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){clearTimeout(this.timer),this.timer=-1}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(e,t){let i=t==null?void 0:t.renditionReports;if(i){let s=-1;for(let n=0;n<i.length;n++){let a=i[n],o;try{o=new self.URL(a.URI,t.url).href}catch(l){M.warn(`Could not construct new URL for Rendition Report: ${l}`),o=a.URI||""}if(o===e){s=n;break}else o===e.substring(0,o.length)&&(s=n)}if(s!==-1){let n=i[s],a=parseInt(n["LAST-MSN"])||(t==null?void 0:t.lastPartSn),o=parseInt(n["LAST-PART"])||(t==null?void 0:t.lastPartIndex);if(this.hls.config.lowLatencyMode){let l=Math.min(t.age-t.partTarget,t.targetduration);o>=0&&l>t.partTarget&&(o+=1)}return new pl(a,o>=0?o:void 0,Bn.No)}}}loadPlaylist(e){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}shouldReloadPlaylist(e){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(e)}playlistLoaded(e,t,i){let{details:s,stats:n}=t,a=self.performance.now(),o=n.loading.first?Math.max(0,a-n.loading.first):0;if(s.advancedDateTime=Date.now()-o,s.live||i!=null&&i.live){if(s.reloaded(i),i&&this.log(`live playlist ${e} ${s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:"MISSED"}`),i&&s.fragments.length>0&&JT(i,s),!this.canLoad||!s.live)return;let l,d,c;if(s.canBlockReload&&s.endSN&&s.advanced){let T=this.hls.config.lowLatencyMode,A=s.lastPartSn,k=s.endSN,L=s.lastPartIndex,N=L!==-1,D=A===k,$=T?0:L;N?(d=D?k+1:A,c=D?$:L+1):d=k+1;let O=s.age,G=O+s.ageHeader,q=Math.min(G-s.partTarget,s.targetduration*1.5);if(q>0){if(i&&q>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${q} with playlist age: ${s.age}`),q=0;else{let P=Math.floor(q/s.targetduration);if(d+=P,c!==void 0){let X=Math.round(q%s.targetduration/s.partTarget);c+=X}this.log(`CDN Tune-in age: ${s.ageHeader}s last advanced ${O.toFixed(2)}s goal: ${q} skip sn ${P} to part ${c}`)}s.tuneInGoal=q}if(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,c),T||!D){this.loadPlaylist(l);return}}else s.canBlockReload&&(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,c));let u=this.hls.mainForwardBufferInfo,h=u?u.end-u.len:0,f=(s.edge-h)*1e3,g=r_(s,f);s.updated&&a>this.requestScheduled+g&&(this.requestScheduled=n.loading.start),d!==void 0&&s.canBlockReload?this.requestScheduled=n.loading.first+g-(s.partTarget*1e3||1e3):this.requestScheduled===-1||this.requestScheduled+g<a?this.requestScheduled=a:this.requestScheduled-a<=0&&(this.requestScheduled+=g);let E=this.requestScheduled-a;E=Math.max(0,E),this.log(`reload live playlist ${e} in ${Math.round(E)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(l),E)}else this.clearTimer()}getDeliveryDirectives(e,t,i,s){let n=ZT(e,i);return t!=null&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,s=t.part,n=Bn.No),new pl(i,s,n)}checkRetry(e){let t=e.details,i=gl(e),s=e.errorAction,{action:n,retryCount:a=0,retryConfig:o}=s||{},l=!!s&&!!o&&(n===Mt.RetryRequest||!s.resolved&&n===Mt.SendAlternateToPenaltyBox);if(l){var d;if(this.requestScheduled=-1,a>=o.maxNumRetry)return!1;if(i&&(d=e.context)!=null&&d.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" without delivery-directives`),this.loadPlaylist();else{let c=Ih(o,a);this.timer=self.setTimeout(()=>this.loadPlaylist(),c),this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" in ${c}ms`)}e.levelRetry=!0,s.resolved=!0}return l}},uu,Uu=class extends Vn{constructor(e,t){super(e,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=t,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.ERROR,this.onError,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}startLoad(){this._levels.forEach(t=>{t.loadError=0,t.fragmentError=0}),super.startLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[]}onManifestLoading(e,t){this.resetLevels()}onManifestLoaded(e,t){let i=[],s={},n;t.levels.forEach(a=>{var o;let l=a.attrs;((o=a.audioCodec)==null?void 0:o.indexOf("mp4a.40.34"))!==-1&&(uu||(uu=/chrome|firefox/i.test(navigator.userAgent)),uu&&(a.audioCodec=void 0));let{AUDIO:d,CODECS:c,"FRAME-RATE":u,"PATHWAY-ID":h,RESOLUTION:f,SUBTITLES:g}=l,T=`${`${h||"."}-`}${a.bitrate}-${f}-${u}-${c}`;n=s[T],n?n.addFallback(a):(n=new qr(a),s[T]=n,i.push(n)),El(n,"audio",d),El(n,"text",g)}),this.filterAndSortMediaOptions(i,t)}filterAndSortMediaOptions(e,t){let i=[],s=[],n=!1,a=!1,o=!1,l=e.filter(({audioCodec:f,videoCodec:g,width:E,height:T,unknownCodecs:A})=>(n||(n=!!(E&&T)),a||(a=!!g),o||(o=!!f),!(A!=null&&A.length)&&(!f||ou(f,"audio"))&&(!g||ou(g,"video"))));if((n||a)&&o&&(l=l.filter(({videoCodec:f,width:g,height:E})=>!!f||!!(g&&E))),l.length===0){Promise.resolve().then(()=>{if(this.hls){let f=new Error("no level with compatible codecs found in manifest");this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,error:f,reason:f.message})}});return}t.audioTracks&&(i=t.audioTracks.filter(f=>!f.audioCodec||ou(f.audioCodec,"audio")),Tg(i)),t.subtitles&&(s=t.subtitles,Tg(s));let d=l.slice(0);l.sort((f,g)=>f.attrs["HDCP-LEVEL"]!==g.attrs["HDCP-LEVEL"]?(f.attrs["HDCP-LEVEL"]||"")>(g.attrs["HDCP-LEVEL"]||"")?1:-1:f.bitrate!==g.bitrate?f.bitrate-g.bitrate:f.attrs["FRAME-RATE"]!==g.attrs["FRAME-RATE"]?f.attrs.decimalFloatingPoint("FRAME-RATE")-g.attrs.decimalFloatingPoint("FRAME-RATE"):f.attrs.SCORE!==g.attrs.SCORE?f.attrs.decimalFloatingPoint("SCORE")-g.attrs.decimalFloatingPoint("SCORE"):n&&f.height!==g.height?f.height-g.height:0);let c=d[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==d.length)){for(let f=0;f<d.length;f++)if(d[f].pathwayId===l[0].pathwayId){c=d[f];break}}this._levels=l;for(let f=0;f<l.length;f++)if(l[f]===c){this._firstLevel=f,this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${c.bitrate}`);break}let u=o&&!a,h={levels:l,audioTracks:i,subtitleTracks:s,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:o,video:a,altAudio:!u&&i.some(f=>!!f.url)};this.hls.trigger(b.MANIFEST_PARSED,h),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(e){let t=this._levels;if(t.length===0)return;if(e<0||e>=t.length){let c=new Error("invalid level idx"),u=e<0;if(this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.LEVEL_SWITCH_ERROR,level:e,fatal:u,error:c,reason:c.message}),u)return;e=Math.min(e,t.length-1)}let i=this.currentLevelIndex,s=this.currentLevel,n=s?s.attrs["PATHWAY-ID"]:void 0,a=t[e],o=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=a,i===e&&a.details&&s&&n===o)return;this.log(`Switching to level ${e}${o?" with Pathway "+o:""} from level ${i}${n?" with Pathway "+n:""}`);let l=pt({},a,{level:e,maxBitrate:a.maxBitrate,attrs:a.attrs,uri:a.uri,urlId:a.urlId});delete l._attrs,delete l._urlId,this.hls.trigger(b.LEVEL_SWITCHING,l);let d=a.details;if(!d||d.live){let c=this.switchParams(a.uri,s==null?void 0:s.details);this.loadPlaylist(c)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,this._startLevel===void 0&&(this._startLevel=e),e!==-1&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(this._startLevel===void 0){let e=this.hls.config.startLevel;return e!==void 0?e:this._firstLevel}else return this._startLevel}set startLevel(e){this._startLevel=e}onError(e,t){t.fatal||!t.context||t.context.type===Ue.LEVEL&&t.context.level===this.level&&this.checkRetry(t)}onFragLoaded(e,{frag:t}){if(t!==void 0&&t.type===ge.MAIN){let i=this._levels[t.level];i!==void 0&&(i.loadError=0)}}onLevelLoaded(e,t){var i;let{level:s,details:n}=t,a=this._levels[s];if(!a){var o;this.warn(`Invalid level index ${s}`),(o=t.deliveryDirectives)!=null&&o.skip&&(n.deltaUpdateFailed=!0);return}s===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(s,t,a.details)):(i=t.deliveryDirectives)!=null&&i.skip&&(n.deltaUpdateFailed=!0)}onAudioTrackSwitched(e,t){let i=this.currentLevel;if(!i)return;let s=this.hls.audioTracks[t.id].groupId;if(i.audioGroupIds&&i.audioGroupId!==s){let n=-1;for(let a=0;a<i.audioGroupIds.length;a++)if(i.audioGroupIds[a]===s){n=a;break}n!==-1&&n!==i.urlId&&(i.urlId=n,this.canLoad&&this.startLoad())}}loadPlaylist(e){super.loadPlaylist();let t=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let s=i.urlId,n=i.uri;if(e)try{n=e.addDirectives(n)}catch(o){this.warn(`Could not construct new URL with HLS Delivery Directives: ${o}`)}let a=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${t}${(e==null?void 0:e.msn)!==void 0?" at sn "+e.msn+" part "+e.part:""} with${a?" Pathway "+a:""} URI ${s+1}/${i.url.length} ${n}`),this.clearTimer(),this.hls.trigger(b.LEVEL_LOADING,{url:n,level:t,id:s,deliveryDirectives:e||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=e)}removeLevel(e,t){let i=(n,a)=>a!==t,s=this._levels.filter((n,a)=>a!==e?!0:n.url.length>1&&t!==void 0?(n.url=n.url.filter(i),n.audioGroupIds&&(n.audioGroupIds=n.audioGroupIds.filter(i)),n.textGroupIds&&(n.textGroupIds=n.textGroupIds.filter(i)),n.urlId=0,!0):(this.steering&&this.steering.removeLevel(n),!1));this.hls.trigger(b.LEVELS_UPDATED,{levels:s})}onLevelsUpdated(e,{levels:t}){t.forEach((i,s)=>{let{details:n}=i;n!=null&&n.fragments&&n.fragments.forEach(a=>{a.level=s})}),this._levels=t}};function El(r,e,t){!t||(e==="audio"?(r.audioGroupIds||(r.audioGroupIds=[]),r.audioGroupIds[r.url.length-1]=t):e==="text"&&(r.textGroupIds||(r.textGroupIds=[]),r.textGroupIds[r.url.length-1]=t))}function Tg(r){let e={};r.forEach(t=>{let i=t.groupId||"";t.id=e[i]=e[i]||0,e[i]++})}var Tt={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Fu=class{constructor(e){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=e,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.BUFFER_APPENDED,this.onBufferAppended,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.BUFFER_APPENDED,this.onBufferAppended,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(e,t){let i=this.activePartLists[t];if(i)for(let s=i.length;s--;){let n=i[s];if(!n)break;let a=n.end;if(n.start<=e&&a!==null&&e<=a)return n}return this.getBufferedFrag(e,t)}getBufferedFrag(e,t){let{fragments:i}=this,s=Object.keys(i);for(let n=s.length;n--;){let a=i[s[n]];if((a==null?void 0:a.body.type)===t&&a.buffered){let o=a.body;if(o.start<=e&&e<=o.end)return o}}return null}detectEvictedFragments(e,t,i,s){this.timeRanges&&(this.timeRanges[e]=t);let n=(s==null?void 0:s.fragment.sn)||-1;Object.keys(this.fragments).forEach(a=>{let o=this.fragments[a];if(!o||n>=o.body.sn)return;if(!o.buffered&&!o.loaded){o.body.type===i&&this.removeFragment(o.body);return}let l=o.range[e];!l||l.time.some(d=>{let c=!this.isTimeBuffered(d.startPTS,d.endPTS,t);return c&&this.removeFragment(o.body),c})})}detectPartialFragments(e){let t=this.timeRanges,{frag:i,part:s}=e;if(!t||i.sn==="initSegment")return;let n=Bs(i),a=this.fragments[n];if(!a||a.buffered&&i.gap)return;let o=!i.relurl;Object.keys(t).forEach(l=>{let d=i.elementaryStreams[l];if(!d)return;let c=t[l],u=o||d.partial===!0;a.range[l]=this.getBufferedTimes(i,s,u,c)}),a.loaded=null,Object.keys(a.range).length?(a.buffered=!0,a.body.endList&&(this.endListFragments[a.body.type]=a),rl(a)||this.removeParts(i.sn-1,i.type)):this.removeFragment(a.body)}removeParts(e,t){let i=this.activePartLists[t];!i||(this.activePartLists[t]=i.filter(s=>s.fragment.sn>=e))}fragBuffered(e,t){let i=Bs(e),s=this.fragments[i];!s&&t&&(s=this.fragments[i]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap&&(this.hasGaps=!0)),s&&(s.loaded=null,s.buffered=!0)}getBufferedTimes(e,t,i,s){let n={time:[],partial:i},a=e.start,o=e.end,l=e.minEndPTS||o,d=e.maxStartPTS||a;for(let c=0;c<s.length;c++){let u=s.start(c)-this.bufferPadding,h=s.end(c)+this.bufferPadding;if(d>=u&&l<=h){n.time.push({startPTS:Math.max(a,s.start(c)),endPTS:Math.min(o,s.end(c))});break}else if(a<h&&o>u)n.partial=!0,n.time.push({startPTS:Math.max(a,s.start(c)),endPTS:Math.min(o,s.end(c))});else if(o<=u)break}return n}getPartialFragment(e){let t=null,i,s,n,a=0,{bufferPadding:o,fragments:l}=this;return Object.keys(l).forEach(d=>{let c=l[d];!c||rl(c)&&(s=c.body.start-o,n=c.body.end+o,e>=s&&e<=n&&(i=Math.min(e-s,n-e),a<=i&&(t=c.body,a=i)))}),t}isEndListAppended(e){let t=this.endListFragments[e];return t!==void 0&&(t.buffered||rl(t))}getState(e){let t=Bs(e),i=this.fragments[t];return i?i.buffered?rl(i)?Tt.PARTIAL:Tt.OK:Tt.APPENDING:Tt.NOT_LOADED}isTimeBuffered(e,t,i){let s,n;for(let a=0;a<i.length;a++){if(s=i.start(a)-this.bufferPadding,n=i.end(a)+this.bufferPadding,e>=s&&t<=n)return!0;if(t<=s)return!1}return!1}onFragLoaded(e,t){let{frag:i,part:s}=t;if(i.sn==="initSegment"||i.bitrateTest)return;let n=s?null:t,a=Bs(i);this.fragments[a]={body:i,appendedPTS:null,loaded:n,buffered:!1,range:Object.create(null)}}onBufferAppended(e,t){let{frag:i,part:s,timeRanges:n}=t;if(i.sn==="initSegment")return;let a=i.type;if(s){let o=this.activePartLists[a];o||(this.activePartLists[a]=o=[]),o.push(s)}this.timeRanges=n,Object.keys(n).forEach(o=>{let l=n[o];this.detectEvictedFragments(o,l,a,s)})}onFragBuffered(e,t){this.detectPartialFragments(t)}hasFragment(e){let t=Bs(e);return!!this.fragments[t]}hasParts(e){var t;return!!((t=this.activePartLists[e])!=null&&t.length)}removeFragmentsInRange(e,t,i,s,n){s&&!this.hasGaps||Object.keys(this.fragments).forEach(a=>{let o=this.fragments[a];if(!o)return;let l=o.body;l.type!==i||s&&!l.gap||l.start<t&&l.end>e&&(o.buffered||n)&&this.removeFragment(l)})}removeFragment(e){let t=Bs(e);e.stats.loaded=0,e.clearElementaryStreamInfo();let i=this.activePartLists[e.type];if(i){let s=e.sn;this.activePartLists[e.type]=i.filter(n=>n.fragment.sn!==s)}delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}};function rl(r){var e,t,i;return r.buffered&&(r.body.gap||((e=r.range.video)==null?void 0:e.partial)||((t=r.range.audio)==null?void 0:t.partial)||((i=r.range.audiovideo)==null?void 0:i.partial))}function Bs(r){return`${r.type}_${r.level}_${r.urlId}_${r.sn}`}var _g=Math.pow(2,17),Bu=class{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(e,t){let i=e.url;if(!i)return Promise.reject(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error(`Fragment does not have a ${i?"part list":"url"}`),networkDetails:null}));this.abort();let s=this.config,n=s.fLoader,a=s.loader;return new Promise((o,l)=>{if(this.loader&&this.loader.destroy(),e.gap)if(e.tagList.some(f=>f[0]==="GAP")){l(Sg(e));return}else e.gap=!1;let d=this.loader=e.loader=n?new n(s):new a(s),c=Ag(e),u=yg(s.fragLoadPolicy.default),h={loadPolicy:u,timeout:u.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:e.sn==="initSegment"?1/0:_g};e.stats=d.stats,d.load(c,h,{onSuccess:(f,g,E,T)=>{this.resetLoader(e,d);let A=f.data;E.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(A.slice(0,16)),A=A.slice(16)),o({frag:e,part:null,payload:A,networkDetails:T})},onError:(f,g,E,T)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:jt({url:i,data:void 0},f),error:new Error(`HTTP Error ${f.code} ${f.text}`),networkDetails:E,stats:T}))},onAbort:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:E,stats:f}))},onTimeout:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:E,stats:f}))},onProgress:(f,g,E,T)=>{t&&t({frag:e,part:null,payload:E,networkDetails:T})}})})}loadPart(e,t,i){this.abort();let s=this.config,n=s.fLoader,a=s.loader;return new Promise((o,l)=>{if(this.loader&&this.loader.destroy(),e.gap||t.gap){l(Sg(e,t));return}let d=this.loader=e.loader=n?new n(s):new a(s),c=Ag(e,t),u=yg(s.fragLoadPolicy.default),h={loadPolicy:u,timeout:u.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:_g};t.stats=d.stats,d.load(c,h,{onSuccess:(f,g,E,T)=>{this.resetLoader(e,d),this.updateStatsFromPart(e,t);let A={frag:e,part:t,payload:f.data,networkDetails:T};i(A),o(A)},onError:(f,g,E,T)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:t,response:jt({url:c.url,data:void 0},f),error:new Error(`HTTP Error ${f.code} ${f.text}`),networkDetails:E,stats:T}))},onAbort:(f,g,E)=>{e.stats.aborted=t.stats.aborted,this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.INTERNAL_ABORTED,fatal:!1,frag:e,part:t,error:new Error("Aborted"),networkDetails:E,stats:f}))},onTimeout:(f,g,E)=>{this.resetLoader(e,d),l(new vi({type:pe.NETWORK_ERROR,details:B.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:t,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:E,stats:f}))}})})}updateStatsFromPart(e,t){let i=e.stats,s=t.stats,n=s.total;if(i.loaded+=s.loaded,n){let l=Math.round(e.duration/t.duration),d=Math.min(Math.round(i.loaded/n),l),u=(l-d)*Math.round(i.loaded/d);i.total=i.loaded+u}else i.total=Math.max(i.loaded,i.total);let a=i.loading,o=s.loading;a.start?a.first+=o.first-o.start:(a.start=o.start,a.first=o.first),a.end=o.end}resetLoader(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()}};function Ag(r,e=null){let t=e||r,i={frag:r,part:e,responseType:"arraybuffer",url:t.url,headers:{},rangeStart:0,rangeEnd:0},s=t.byteRangeStartOffset,n=t.byteRangeEndOffset;if(ce(s)&&ce(n)){var a;let o=s,l=n;if(r.sn==="initSegment"&&((a=r.decryptdata)==null?void 0:a.method)==="AES-128"){let d=n-s;d%16&&(l=n+(16-d%16)),s!==0&&(i.resetIV=!0,o=s-16)}i.rangeStart=o,i.rangeEnd=l}return i}function Sg(r,e){let t=new Error(`GAP ${r.gap?"tag":"attribute"} found`),i={type:pe.MEDIA_ERROR,details:B.FRAG_GAP,fatal:!1,frag:r,error:t,networkDetails:null};return e&&(i.part=e),(e||r).stats.aborted=!0,new vi(i)}var vi=class extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}},$u=class{constructor(e){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(let t in this.keyUriToKeyInfo){let i=this.keyUriToKeyInfo[t].loader;if(i){if(e&&e!==i.context.frag.type)return;i.abort()}}}detach(){for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}}destroy(){this.detach();for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e].loader;t&&t.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(e,t=B.KEY_LOAD_ERROR,i,s,n){return new vi({type:pe.NETWORK_ERROR,details:t,fatal:!1,frag:e,response:n,error:i,networkDetails:s})}loadClear(e,t){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:s}=e;for(let n=0;n<t.length;n++){let a=t[n];if(s<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then(o=>{a.setKeyFormat(o)});break}}}}load(e){return!e.decryptdata&&e.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(e).then(t=>this.loadInternal(e,t)):this.loadInternal(e)}loadInternal(e,t){var i,s;t&&e.setKeyFormat(t);let n=e.decryptdata;if(!n){let d=new Error(t?`Expected frag.decryptdata to be defined after setting format ${t}`:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,d))}let a=n.uri;if(!a)return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${a}"`)));let o=this.keyUriToKeyInfo[a];if((i=o)!=null&&i.decryptdata.key)return n.key=o.decryptdata.key,Promise.resolve({frag:e,keyInfo:o});if((s=o)!=null&&s.keyLoadPromise){var l;switch((l=o.mediaKeySessionContext)==null?void 0:l.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return o.keyLoadPromise.then(d=>(n.key=d.keyInfo.decryptdata.key,{frag:e,keyInfo:o}))}}switch(o=this.keyUriToKeyInfo[a]={decryptdata:n,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},n.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return n.keyFormat==="identity"?this.loadKeyHTTP(o,e):this.loadKeyEME(o,e);case"AES-128":return this.loadKeyHTTP(o,e);default:return Promise.reject(this.createKeyLoadError(e,B.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${n.method}"`)))}}loadKeyEME(e,t){let i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){let s=this.emeController.loadKey(i);if(s)return(e.keyLoadPromise=s.then(n=>(e.mediaKeySessionContext=n,i))).catch(n=>{throw e.keyLoadPromise=null,n})}return Promise.resolve(i)}loadKeyHTTP(e,t){let i=this.config,s=i.loader,n=new s(i);return t.keyLoader=e.loader=n,e.keyLoadPromise=new Promise((a,o)=>{let l={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},d=i.keyLoadPolicy.default,c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(h,f,g,E)=>{let{frag:T,keyInfo:A,url:k}=g;if(!T.decryptdata||A!==this.keyUriToKeyInfo[k])return o(this.createKeyLoadError(T,B.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),E));A.decryptdata.key=T.decryptdata.key=new Uint8Array(h.data),T.keyLoader=null,A.loader=null,a({frag:T,keyInfo:A})},onError:(h,f,g,E)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.KEY_LOAD_ERROR,new Error(`HTTP Error ${h.code} loading key ${h.text}`),g,jt({url:l.url,data:void 0},h)))},onTimeout:(h,f,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),g))},onAbort:(h,f,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,B.INTERNAL_ABORTED,new Error("key loading aborted"),g))}};n.load(l,c,u)})}resetLoader(e){let{frag:t,keyInfo:i,url:s}=e,n=i.loader;t.keyLoader===n&&(t.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[s],n&&n.destroy()}},Hu=class{constructor(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return this._tickInterval?!1:(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,!0):!1}clearNextTick(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0):!1}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}},u_={length:0,start:()=>0,end:()=>0},je=class{static isBuffered(e,t){try{if(e){let i=je.getBuffered(e);for(let s=0;s<i.length;s++)if(t>=i.start(s)&&t<=i.end(s))return!0}}catch{}return!1}static bufferInfo(e,t,i){try{if(e){let s=je.getBuffered(e),n=[],a;for(a=0;a<s.length;a++)n.push({start:s.start(a),end:s.end(a)});return this.bufferedInfo(n,t,i)}}catch{}return{len:0,start:t,end:t,nextStart:void 0}}static bufferedInfo(e,t,i){t=Math.max(0,t),e.sort(function(d,c){let u=d.start-c.start;return u||c.end-d.end});let s=[];if(i)for(let d=0;d<e.length;d++){let c=s.length;if(c){let u=s[c-1].end;e[d].start-u<i?e[d].end>u&&(s[c-1].end=e[d].end):s.push(e[d])}else s.push(e[d])}else s=e;let n=0,a,o=t,l=t;for(let d=0;d<s.length;d++){let c=s[d].start,u=s[d].end;if(t+i>=c&&t<u)o=c,l=u,n=l-t;else if(t+i<c){a=c;break}}return{len:n,start:o||0,end:l||0,nextStart:a}}static getBuffered(e){try{return e.buffered}catch(t){return M.log("failed to get media.buffered",t),u_}}},Kn=class{constructor(e,t,i,s=0,n=-1,a=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing=sl(),this.buffering={audio:sl(),video:sl(),audiovideo:sl()},this.level=e,this.sn=t,this.id=i,this.size=s,this.part=n,this.partial=a}};function sl(){return{start:0,executeStart:0,executeEnd:0,end:0}}function o0(r,e){let t=null;for(let i=0,s=r.length;i<s;i++){let n=r[i];if(n&&n.cc===e){t=n;break}}return t}function h_(r,e,t){return!!(e.details&&(t.endCC>t.startCC||r&&r.cc<t.startCC))}function f_(r,e,t=0){let i=r.fragments,s=e.fragments;if(!s.length||!i.length){M.log("No fragments to align");return}let n=o0(i,s[0].cc);if(!n||n&&!n.startPTS){M.log("No frag in previous level to align on");return}return n}function xg(r,e){if(r){let t=r.start+e;r.start=r.startPTS=t,r.endPTS=t+r.duration}}function Lh(r,e){let t=e.fragments;for(let i=0,s=t.length;i<s;i++)xg(t[i],r);e.fragmentHint&&xg(e.fragmentHint,r),e.alignedSliding=!0}function m_(r,e,t){!e||(p_(r,t,e),!t.alignedSliding&&e.details&&g_(t,e.details),!t.alignedSliding&&e.details&&!t.skippedSegments&&s0(e.details,t))}function p_(r,e,t){if(h_(r,t,e)){let i=f_(t.details,e);i&&ce(i.start)&&(M.log(`Adjusting PTS using last level due to CC increase within current level ${e.url}`),Lh(i.start,e))}}function g_(r,e){if(!e.fragments.length||!r.hasProgramDateTime||!e.hasProgramDateTime)return;let t=e.fragments[0].programDateTime,i=r.fragments[0].programDateTime,s=(i-t)/1e3+e.fragments[0].start;s&&ce(s)&&(M.log(`Adjusting PTS using programDateTime delta ${i-t}ms, sliding:${s.toFixed(3)} ${r.url} `),Lh(s,r))}function l0(r,e){if(!r.hasProgramDateTime||!e.hasProgramDateTime)return;let t=r.fragments,i=e.fragments;if(!t.length||!i.length)return;let s=Math.round(i.length/2)-1,n=i[s],a=o0(t,n.cc)||t[Math.round(t.length/2)-1],o=n.programDateTime,l=a.programDateTime;if(o===null||l===null)return;let d=(l-o)/1e3-(a.start-n.start);Lh(d,r)}var Gu=class{constructor(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}decrypt(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)}},Vu=class{constructor(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}};function v_(r){let e=r.byteLength,t=e&&new DataView(r.buffer).getUint8(e-1);return t?Vr(r,0,e-t):r}var Ku=class{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(e){let t=new DataView(e),i=new Uint32Array(4);for(let s=0;s<4;s++)i[s]=t.getUint32(s*4);return i}initTable(){let e=this.sBox,t=this.invSBox,i=this.subMix,s=i[0],n=i[1],a=i[2],o=i[3],l=this.invSubMix,d=l[0],c=l[1],u=l[2],h=l[3],f=new Uint32Array(256),g=0,E=0,T=0;for(T=0;T<256;T++)T<128?f[T]=T<<1:f[T]=T<<1^283;for(T=0;T<256;T++){let A=E^E<<1^E<<2^E<<3^E<<4;A=A>>>8^A&255^99,e[g]=A,t[A]=g;let k=f[g],L=f[k],N=f[L],D=f[A]*257^A*16843008;s[g]=D<<24|D>>>8,n[g]=D<<16|D>>>16,a[g]=D<<8|D>>>24,o[g]=D,D=N*16843009^L*65537^k*257^g*16843008,d[A]=D<<24|D>>>8,c[A]=D<<16|D>>>16,u[A]=D<<8|D>>>24,h[A]=D,g?(g=k^f[f[f[N^k]]],E^=f[f[E]]):g=E=1}}expandKey(e){let t=this.uint8ArrayToUint32Array_(e),i=!0,s=0;for(;s<t.length&&i;)i=t[s]===this.key[s],s++;if(i)return;this.key=t;let n=this.keySize=t.length;if(n!==4&&n!==6&&n!==8)throw new Error("Invalid aes key size="+n);let a=this.ksRows=(n+6+1)*4,o,l,d=this.keySchedule=new Uint32Array(a),c=this.invKeySchedule=new Uint32Array(a),u=this.sBox,h=this.rcon,f=this.invSubMix,g=f[0],E=f[1],T=f[2],A=f[3],k,L;for(o=0;o<a;o++){if(o<n){k=d[o]=t[o];continue}L=k,o%n===0?(L=L<<8|L>>>24,L=u[L>>>24]<<24|u[L>>>16&255]<<16|u[L>>>8&255]<<8|u[L&255],L^=h[o/n|0]<<24):n>6&&o%n===4&&(L=u[L>>>24]<<24|u[L>>>16&255]<<16|u[L>>>8&255]<<8|u[L&255]),d[o]=k=(d[o-n]^L)>>>0}for(l=0;l<a;l++)o=a-l,l&3?L=d[o]:L=d[o-4],l<4||o<=4?c[l]=L:c[l]=g[u[L>>>24]]^E[u[L>>>16&255]]^T[u[L>>>8&255]]^A[u[L&255]],c[l]=c[l]>>>0}networkToHostOrderSwap(e){return e<<24|(e&65280)<<8|(e&16711680)>>8|e>>>24}decrypt(e,t,i){let s=this.keySize+6,n=this.invKeySchedule,a=this.invSBox,o=this.invSubMix,l=o[0],d=o[1],c=o[2],u=o[3],h=this.uint8ArrayToUint32Array_(i),f=h[0],g=h[1],E=h[2],T=h[3],A=new Int32Array(e),k=new Int32Array(A.length),L,N,D,$,O,G,q,P,X,z,Ae,Ee,be,we,Se=this.networkToHostOrderSwap;for(;t<A.length;){for(X=Se(A[t]),z=Se(A[t+1]),Ae=Se(A[t+2]),Ee=Se(A[t+3]),O=X^n[0],G=Ee^n[1],q=Ae^n[2],P=z^n[3],be=4,we=1;we<s;we++)L=l[O>>>24]^d[G>>16&255]^c[q>>8&255]^u[P&255]^n[be],N=l[G>>>24]^d[q>>16&255]^c[P>>8&255]^u[O&255]^n[be+1],D=l[q>>>24]^d[P>>16&255]^c[O>>8&255]^u[G&255]^n[be+2],$=l[P>>>24]^d[O>>16&255]^c[G>>8&255]^u[q&255]^n[be+3],O=L,G=N,q=D,P=$,be=be+4;L=a[O>>>24]<<24^a[G>>16&255]<<16^a[q>>8&255]<<8^a[P&255]^n[be],N=a[G>>>24]<<24^a[q>>16&255]<<16^a[P>>8&255]<<8^a[O&255]^n[be+1],D=a[q>>>24]<<24^a[P>>16&255]<<16^a[O>>8&255]<<8^a[G&255]^n[be+2],$=a[P>>>24]<<24^a[O>>16&255]<<16^a[G>>8&255]<<8^a[q&255]^n[be+3],k[t]=Se(L^f),k[t+1]=Se($^g),k[t+2]=Se(D^E),k[t+3]=Se(N^T),f=X,g=z,E=Ae,T=Ee,t=t+4}return k.buffer}},E_=16,Wn=class{constructor(e,{removePKCS7Padding:t=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=e.enableSoftwareAES,this.removePKCS7Padding=t,t)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch{}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:e,remainderData:t}=this;if(!e||t)return this.reset(),null;let i=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?v_(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(e,t,i){return this.useSoftware?new Promise((s,n)=>{this.softwareDecrypt(new Uint8Array(e),t,i);let a=this.flush();a?s(a.buffer):n(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(e),t,i)}softwareDecrypt(e,t,i){let{currentIV:s,currentResult:n,remainderData:a}=this;this.logOnce("JS AES decrypt"),a&&(e=Kr(a,e),this.remainderData=null);let o=this.getValidChunk(e);if(!o.length)return null;s&&(i=s);let l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new Ku),l.expandKey(t);let d=n;return this.currentResult=l.decrypt(o.buffer,0,i),this.currentIV=Vr(o,-16).buffer,d||null}webCryptoDecrypt(e,t,i){let s=this.subtle;return(this.key!==t||!this.fastAesKey)&&(this.key=t,this.fastAesKey=new Vu(s,t)),this.fastAesKey.expandKey().then(n=>s?(this.logOnce("WebCrypto AES decrypt"),new Gu(s,new Uint8Array(i)).decrypt(e.buffer,n)):Promise.reject(new Error("web crypto not initialized"))).catch(n=>(M.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${n.name}: ${n.message}`),this.onWebCryptoError(e,t,i)))}onWebCryptoError(e,t,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i);let s=this.flush();if(s)return s.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(e){let t=e,i=e.length-e.length%E_;return i!==e.length&&(t=Vr(e,0,i),this.remainderData=Vr(e,i)),t}logOnce(e){!this.logEnabled||(M.log(`[decrypter]: ${e}`),this.logEnabled=!1)}},b_={toString:function(r){let e="",t=r.length;for(let i=0;i<t;i++)e+=`[${r.start(i).toFixed(3)}-${r.end(i).toFixed(3)}]`;return e}},W={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},qn=class extends Hu{constructor(e,t,i,s,n){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=W.STOPPED,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=n,this.logPrefix=s,this.log=M.log.bind(M,`${s}:`),this.warn=M.warn.bind(M,`${s}:`),this.hls=e,this.fragmentLoader=new Bu(e.config),this.keyLoader=i,this.fragmentTracker=t,this.config=e.config,this.decrypter=new Wn(e.config),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let e=this.fragCurrent;e!=null&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=W.STOPPED}_streamEnded(e,t){if(t.live||e.nextStart||!e.end||!this.media)return!1;let i=t.partList;if(i!=null&&i.length){let n=i[i.length-1];return je.isBuffered(this.media,n.start+n.duration/2)}let s=t.fragments[t.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(s)}getLevelDetails(){if(this.levels&&this.levelLastLoaded!==null){var e;return(e=this.levels[this.levelLastLoaded])==null?void 0:e.details}}onMediaAttached(e,t){let i=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let s=this.config;this.levels&&s.autoStartLoad&&this.state===W.STOPPED&&this.startLoad(s.startPosition)}onMediaDetaching(){let e=this.media;e!=null&&e.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&this.onvseeking&&this.onvended&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:e,fragCurrent:t,media:i,mediaBuffer:s,state:n}=this,a=i?i.currentTime:0,o=je.bufferInfo(s||i,a,e.maxBufferHole);if(this.log(`media seeking to ${ce(a)?a.toFixed(3):a}, state: ${n}`),this.state===W.ENDED)this.resetLoadingState();else if(t){let l=e.maxFragLookUpTolerance,d=t.start-l,c=t.start+t.duration+l;if(!o.len||c<o.start||d>o.end){let u=a>c;(a<d||u)&&(u&&t.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),t.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),!this.loadedmetadata&&!o.len&&(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(e,t){this.startTimeOffset=t.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.stopLoad(),super.onHandlerDestroying()}onHandlerDestroyed(){this.state=W.STOPPED,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(e,t,i){this._loadFragForPlayback(e,t,i)}_loadFragForPlayback(e,t,i){let s=n=>{if(this.fragContextChanged(e)){this.warn(`Fragment ${e.sn}${n.part?" p: "+n.part.index:""} of level ${e.level} was dropped during download.`),this.fragmentTracker.removeFragment(e);return}e.stats.chunkCount++,this._handleFragmentLoadProgress(n)};this._doFragLoad(e,t,i,s).then(n=>{if(!n)return;let a=this.state;if(this.fragContextChanged(e)){(a===W.FRAG_LOADING||!this.fragCurrent&&a===W.PARSING)&&(this.fragmentTracker.removeFragment(e),this.state=W.IDLE);return}"payload"in n&&(this.log(`Loaded fragment ${e.sn} of level ${e.level}`),this.hls.trigger(b.FRAG_LOADED,n)),this._handleFragmentLoadComplete(n)}).catch(n=>{this.state===W.STOPPED||this.state===W.ERROR||(this.warn(n),this.resetFragmentLoading(e))})}clearTrackerIfNeeded(e){var t;let{fragmentTracker:i}=this;if(i.getState(e)===Tt.APPENDING){let n=e.type,a=this.getFwdBufferInfo(this.mediaBuffer,n),o=Math.max(e.duration,a?a.len:this.config.maxBufferLength);this.reduceMaxBufferLength(o)&&i.removeFragment(e)}else((t=this.mediaBuffer)==null?void 0:t.buffered.length)===0?i.removeAllFragments():i.hasParts(e.type)&&(i.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),i.getState(e)===Tt.PARTIAL&&i.removeFragment(e))}flushMainBuffer(e,t,i=null){if(!(e-t))return;let s={startOffset:e,endOffset:t,type:i};this.hls.trigger(b.BUFFER_FLUSHING,s)}_loadInitSegment(e,t){this._doFragLoad(e,t).then(i=>{if(!i||this.fragContextChanged(e)||!this.levels)throw new Error("init load aborted");return i}).then(i=>{let{hls:s}=this,{payload:n}=i,a=e.decryptdata;if(n&&n.byteLength>0&&a&&a.key&&a.iv&&a.method==="AES-128"){let o=self.performance.now();return this.decrypter.decrypt(new Uint8Array(n),a.key.buffer,a.iv.buffer).catch(l=>{throw s.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:e}),l}).then(l=>{let d=self.performance.now();return s.trigger(b.FRAG_DECRYPTED,{frag:e,payload:l,stats:{tstart:o,tdecrypt:d}}),i.payload=l,i})}return i}).then(i=>{let{fragCurrent:s,hls:n,levels:a}=this;if(!a)throw new Error("init load aborted, missing levels");let o=e.stats;this.state=W.IDLE,t.fragmentError=0,e.data=new Uint8Array(i.payload),o.parsing.start=o.buffering.start=self.performance.now(),o.parsing.end=o.buffering.end=self.performance.now(),i.frag===s&&n.trigger(b.FRAG_BUFFERED,{stats:o,frag:s,part:null,id:e.type}),this.tick()}).catch(i=>{this.state===W.STOPPED||this.state===W.ERROR||(this.warn(i),this.resetFragmentLoading(e))})}fragContextChanged(e){let{fragCurrent:t}=this;return!e||!t||e.level!==t.level||e.sn!==t.sn||e.urlId!==t.urlId}fragBufferedComplete(e,t){var i,s,n,a;let o=this.mediaBuffer?this.mediaBuffer:this.media;this.log(`Buffered ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.playlistType===ge.MAIN?"level":"track"} ${e.level} (frag:[${((i=e.startPTS)!=null?i:NaN).toFixed(3)}-${((s=e.endPTS)!=null?s:NaN).toFixed(3)}] > buffer:${o?b_.toString(je.getBuffered(o)):"(detached)"})`),this.state=W.IDLE,o&&(!this.loadedmetadata&&e.type==ge.MAIN&&o.buffered.length&&((n=this.fragCurrent)==null?void 0:n.sn)===((a=this.fragPrevious)==null?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(e){let{transmuxer:t}=this;if(!t)return;let{frag:i,part:s,partsLoaded:n}=e,a=!n||n.length===0||n.some(l=>!l),o=new Kn(i.level,i.sn,i.stats.chunkCount+1,0,s?s.index:-1,!a);t.flush(o)}_handleFragmentLoadProgress(e){}_doFragLoad(e,t,i=null,s){var n;let a=t==null?void 0:t.details;if(!this.levels||!a)throw new Error(`frag load aborted, missing level${a?"":" detail"}s`);let o=null;if(e.encrypted&&!((n=e.decryptdata)!=null&&n.key)?(this.log(`Loading key for ${e.sn} of [${a.startSN}-${a.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${e.level}`),this.state=W.KEY_LOADING,this.fragCurrent=e,o=this.keyLoader.load(e).then(c=>{if(!this.fragContextChanged(c.frag))return this.hls.trigger(b.KEY_LOADED,c),this.state===W.KEY_LOADING&&(this.state=W.IDLE),c}),this.hls.trigger(b.KEY_LOADING,{frag:e}),this.fragCurrent===null&&(o=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))):!e.encrypted&&a.encryptedFragments.length&&this.keyLoader.loadClear(e,a.encryptedFragments),i=Math.max(e.start,i||0),this.config.lowLatencyMode&&e.sn!=="initSegment"){let c=a.partList;if(c&&s){i>e.end&&a.fragmentHint&&(e=a.fragmentHint);let u=this.getNextPart(c,e,i);if(u>-1){let h=c[u];this.log(`Loading part sn: ${e.sn} p: ${h.index} cc: ${e.cc} of playlist [${a.startSN}-${a.endSN}] parts [0-${u}-${c.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${e.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=h.start+h.duration,this.state=W.FRAG_LOADING;let f;return o?f=o.then(g=>!g||this.fragContextChanged(g.frag)?null:this.doFragPartsLoad(e,h,t,s)).catch(g=>this.handleFragLoadError(g)):f=this.doFragPartsLoad(e,h,t,s).catch(g=>this.handleFragLoadError(g)),this.hls.trigger(b.FRAG_LOADING,{frag:e,part:h,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):f}else if(!e.url||this.loadedEndOfParts(c,i))return Promise.resolve(null)}}this.log(`Loading fragment ${e.sn} cc: ${e.cc} ${a?"of ["+a.startSN+"-"+a.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${e.level}, target: ${parseFloat(i.toFixed(3))}`),ce(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=W.FRAG_LOADING;let l=this.config.progressive,d;return l&&o?d=o.then(c=>!c||this.fragContextChanged(c==null?void 0:c.frag)?null:this.fragmentLoader.load(e,s)).catch(c=>this.handleFragLoadError(c)):d=Promise.all([this.fragmentLoader.load(e,l?s:void 0),o]).then(([c])=>(!l&&c&&s&&s(c),c)).catch(c=>this.handleFragLoadError(c)),this.hls.trigger(b.FRAG_LOADING,{frag:e,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):d}doFragPartsLoad(e,t,i,s){return new Promise((n,a)=>{var o;let l=[],d=(o=i.details)==null?void 0:o.partList,c=u=>{this.fragmentLoader.loadPart(e,u,s).then(h=>{l[u.index]=h;let f=h.part;this.hls.trigger(b.FRAG_LOADED,h);let g=Eg(i,e.sn,u.index+1)||n0(d,e.sn,u.index+1);if(g)c(g);else return n({frag:e,part:f,partsLoaded:l})}).catch(a)};c(t)})}handleFragLoadError(e){if("data"in e){let t=e.data;e.data&&t.details===B.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):this.hls.trigger(b.ERROR,t)}else this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}_handleTransmuxerFlush(e){let t=this.getCurrentContext(e);if(!t||this.state!==W.PARSING){!this.fragCurrent&&this.state!==W.STOPPED&&this.state!==W.ERROR&&(this.state=W.IDLE);return}let{frag:i,part:s,level:n}=t,a=self.performance.now();i.stats.parsing.end=a,s&&(s.stats.parsing.end=a),this.updateLevelTiming(i,s,n,e.partial)}getCurrentContext(e){let{levels:t,fragCurrent:i}=this,{level:s,sn:n,part:a}=e;if(!(t!=null&&t[s]))return this.warn(`Levels object was unset while buffering fragment ${n} of level ${s}. The current chunk will not be buffered.`),null;let o=t[s],l=a>-1?Eg(o,n,a):null,d=l?l.fragment:s_(o,n,i);return d?(i&&i!==d&&(d.stats=i.stats),{frag:d,part:l,level:o}):null}bufferFragmentData(e,t,i,s,n){var a;if(!e||this.state!==W.PARSING)return;let{data1:o,data2:l}=e,d=o;if(o&&l&&(d=Kr(o,l)),!((a=d)!=null&&a.length))return;let c={type:e.type,frag:t,part:i,chunkMeta:s,parent:t.type,data:d};if(this.hls.trigger(b.BUFFER_APPENDING,c),e.dropped&&e.independent&&!i){if(n)return;this.flushBufferGap(t)}}flushBufferGap(e){let t=this.media;if(!t)return;if(!je.isBuffered(t,t.currentTime)){this.flushMainBuffer(0,e.start);return}let i=t.currentTime,s=je.bufferInfo(t,i,0),n=e.duration,a=Math.min(this.config.maxFragLookUpTolerance*2,n*.25),o=Math.max(Math.min(e.start-a,s.end-a),i+a);e.start-o>a&&this.flushMainBuffer(o,e.start)}getFwdBufferInfo(e,t){let i=this.getLoadPosition();return ce(i)?this.getFwdBufferInfoAtPos(e,i,t):null}getFwdBufferInfoAtPos(e,t,i){let{config:{maxBufferHole:s}}=this,n=je.bufferInfo(e,t,s);if(n.len===0&&n.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(t,i);if(a&&n.nextStart<a.end)return je.bufferInfo(e,t,Math.max(n.nextStart,s))}return n}getMaxBufferLength(e){let{config:t}=this,i;return e?i=Math.max(8*t.maxBufferSize/e,t.maxBufferLength):i=t.maxBufferLength,Math.min(i,t.maxMaxBufferLength)}reduceMaxBufferLength(e){let t=this.config,i=e||t.maxBufferLength;return t.maxMaxBufferLength>=i?(t.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${t.maxMaxBufferLength}s`),!0):!1}getAppendedFrag(e,t=ge.MAIN){let i=this.fragmentTracker.getAppendedFrag(e,ge.MAIN);return i&&"fragment"in i?i.fragment:i}getNextFragment(e,t){let i=t.fragments,s=i.length;if(!s)return null;let{config:n}=this,a=i[0].start,o;if(t.live){let l=n.initialLiveManifestSize;if(s<l)return this.warn(`Not enough fragments to start playback (have: ${s}, need: ${l})`),null;!t.PTSKnown&&!this.startFragRequested&&this.startPosition===-1&&(o=this.getInitialLiveFragment(t,i),this.startPosition=o?this.hls.liveSyncPosition||o.start:e)}else e<=a&&(o=i[0]);if(!o){let l=n.lowLatencyMode?t.partEnd:t.fragmentEnd;o=this.getFragmentAtPosition(e,l,t)}return this.mapToInitFragWhenRequired(o)}isLoopLoading(e,t){let i=this.fragmentTracker.getState(e);return(i===Tt.OK||i===Tt.PARTIAL&&!!e.gap)&&this.nextLoadPosition>t}getNextFragmentLoopLoading(e,t,i,s,n){let a=e.gap,o=this.getNextFragment(this.nextLoadPosition,t);if(o===null)return o;if(e=o,a&&e&&!e.gap&&i.nextStart){let l=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,s);if(l!==null&&i.len+l.len>=n)return this.log(`buffer full after gaps in "${s}" playlist starting at sn: ${e.sn}`),null}return e}mapToInitFragWhenRequired(e){return e!=null&&e.initSegment&&!(e!=null&&e.initSegment.data)&&!this.bitrateTest?e.initSegment:e}getNextPart(e,t,i){let s=-1,n=!1,a=!0;for(let o=0,l=e.length;o<l;o++){let d=e[o];if(a=a&&!d.independent,s>-1&&i<d.start)break;let c=d.loaded;c?s=-1:(n||d.independent||a)&&d.fragment===t&&(s=o),n=c}return s}loadedEndOfParts(e,t){let i=e[e.length-1];return i&&t>i.start&&i.loaded}getInitialLiveFragment(e,t){let i=this.fragPrevious,s=null;if(i){if(e.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${i.programDateTime}`),s=a_(t,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!s){let n=i.sn+1;if(n>=e.startSN&&n<=e.endSN){let a=t[n-e.startSN];i.cc===a.cc&&(s=a,this.log(`Live playlist, switching playlist, load frag with next SN: ${s.sn}`))}s||(s=l_(t,i.cc),s&&this.log(`Live playlist, switching playlist, load frag with same CC: ${s.sn}`))}}else{let n=this.hls.liveSyncPosition;n!==null&&(s=this.getFragmentAtPosition(n,this.bitrateTest?e.fragmentEnd:e.edge,e))}return s}getFragmentAtPosition(e,t,i){let{config:s}=this,{fragPrevious:n}=this,{fragments:a,endSN:o}=i,{fragmentHint:l}=i,d=s.maxFragLookUpTolerance,c=i.partList,u=!!(s.lowLatencyMode&&c!=null&&c.length&&l);u&&l&&!this.bitrateTest&&(a=a.concat(l),o=l.sn);let h;if(e<t){let f=e>t-d?0:d;h=Gn(n,a,e,f)}else h=a[a.length-1];if(h){let f=h.sn-i.startSN,g=this.fragmentTracker.getState(h);if((g===Tt.OK||g===Tt.PARTIAL&&h.gap)&&(n=h),n&&h.sn===n.sn&&(!u||c[0].fragment.sn>h.sn)&&n&&h.level===n.level){let T=a[f+1];h.sn<o&&this.fragmentTracker.getState(T)!==Tt.OK?h=T:h=null}}return h}synchronizeToLiveEdge(e){let{config:t,media:i}=this;if(!i)return;let s=this.hls.liveSyncPosition,n=i.currentTime,a=e.fragments[0].start,o=e.edge,l=n>=a-t.maxFragLookUpTolerance&&n<=o;if(s!==null&&i.duration>s&&(n<s||!l)){let d=t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:t.liveMaxLatencyDurationCount*e.targetduration;(!l&&i.readyState<4||n<o-d)&&(this.loadedmetadata||(this.nextLoadPosition=s),i.readyState&&(this.warn(`Playback: ${n.toFixed(3)} is located too far from the end of live sliding playlist: ${o}, reset currentTime to : ${s.toFixed(3)}`),i.currentTime=s))}}alignPlaylists(e,t){let{levels:i,levelLastLoaded:s,fragPrevious:n}=this,a=s!==null?i[s]:null,o=e.fragments.length;if(!o)return this.warn("No fragments in live playlist"),0;let l=e.fragments[0].start,d=!t,c=e.alignedSliding&&ce(l);if(d||!c&&!l){m_(n,a,e);let u=e.fragments[0].start;return this.log(`Live playlist sliding: ${u.toFixed(2)} start-sn: ${t?t.startSN:"na"}->${e.startSN} prev-sn: ${n?n.sn:"na"} fragments: ${o}`),u}return l}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,e.partTarget*3)}setStartPosition(e,t){let i=this.startPosition;if(i<t&&(i=-1),i===-1||this.lastCurrentTime===-1){let s=this.startTimeOffset!==null,n=s?this.startTimeOffset:e.startTimeOffset;n!==null&&ce(n)?(i=t+n,n<0&&(i+=e.totalduration),i=Math.min(Math.max(t,i),t+e.totalduration),this.log(`Start time offset ${n} found in ${s?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):e.live?i=this.hls.liveSyncPosition||t:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:e}=this,t=0;return this.loadedmetadata&&e?t=e.currentTime:this.nextLoadPosition&&(t=this.nextLoadPosition),t}handleFragLoadAborted(e,t){this.transmuxer&&e.sn!=="initSegment"&&e.stats.aborted&&(this.warn(`Fragment ${e.sn}${t?" part "+t.index:""} of level ${e.level} was aborted`),this.resetFragmentLoading(e))}resetFragmentLoading(e){(!this.fragCurrent||!this.fragContextChanged(e)&&this.state!==W.FRAG_LOADING_WAITING_RETRY)&&(this.state=W.IDLE)}onFragmentOrKeyLoadError(e,t){if(t.chunkMeta&&!t.frag){let u=this.getCurrentContext(t.chunkMeta);u&&(t.frag=u.frag)}let i=t.frag;if(!i||i.type!==e||!this.levels)return;if(this.fragContextChanged(i)){var s;this.warn(`Frag load error must match current frag to retry ${i.url} > ${(s=this.fragCurrent)==null?void 0:s.url}`);return}let n=t.details===B.FRAG_GAP;n&&this.fragmentTracker.fragBuffered(i,!0);let a=t.errorAction,{action:o,retryCount:l=0,retryConfig:d}=a||{};if(a&&o===Mt.RetryRequest&&d){var c;this.resetStartWhenNotLoaded((c=this.levelLastLoaded)!=null?c:i.level);let u=Ih(d,l);this.warn(`Fragment ${i.sn} of ${e} ${i.level} errored with ${t.details}, retrying loading ${l+1}/${d.maxNumRetry} in ${u}ms`),a.resolved=!0,this.retryDate=self.performance.now()+u,this.state=W.FRAG_LOADING_WAITING_RETRY}else d&&a?(this.resetFragmentErrors(e),l<d.maxNumRetry?n||(a.resolved=!0):M.warn(`${t.details} reached or exceeded max retry (${l})`)):(a==null?void 0:a.action)===Mt.SendAlternateToPenaltyBox?this.state=W.WAITING_LEVEL:this.state=W.ERROR;this.tickImmediate()}reduceLengthAndFlushBuffer(e){if(this.state===W.PARSING||this.state===W.PARSED){let t=e.parent,i=this.getFwdBufferInfo(this.mediaBuffer,t),s=i&&i.len>.5;s&&this.reduceMaxBufferLength(i.len);let n=!s;return n&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${t} buffer`),e.frag&&(this.fragmentTracker.removeFragment(e.frag),this.nextLoadPosition=e.frag.start),this.resetLoadingState(),n}return!1}resetFragmentErrors(e){e===ge.AUDIO&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==W.STOPPED&&(this.state=W.IDLE)}afterBufferFlushed(e,t,i){if(!e)return;let s=je.getBuffered(e);this.fragmentTracker.detectEvictedFragments(t,s,i),this.state===W.ENDED&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=W.IDLE}resetStartWhenNotLoaded(e){if(!this.loadedmetadata){this.startFragRequested=!1;let t=this.levels?this.levels[e].details:null;t!=null&&t.live?(this.startPosition=-1,this.setStartPosition(t,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(e){var t;this.warn(`The loading context changed while buffering fragment ${e.sn} of level ${e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded((t=this.levelLastLoaded)!=null?t:e.level),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(e,t,i,s){var n;let a=i.details;if(!a){this.warn("level.details undefined");return}if(Object.keys(e.elementaryStreams).reduce((l,d)=>{let c=e.elementaryStreams[d];if(c){let u=c.endPTS-c.startPTS;if(u<=0)return this.warn(`Could not parse fragment ${e.sn} ${d} duration reliably (${u})`),l||!1;let h=s?0:r0(a,e,c.startPTS,c.endPTS,c.startDTS,c.endDTS);return this.hls.trigger(b.LEVEL_PTS_UPDATED,{details:a,level:i,drift:h,type:d,frag:e,start:c.startPTS,end:c.endPTS}),!0}return l},!1))i.fragmentError=0;else if(((n=this.transmuxer)==null?void 0:n.error)===null){let l=new Error(`Found no media in fragment ${e.sn} of level ${e.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)),this.warn(l.message),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:l,frag:e,reason:`Found no media in msn ${e.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=W.PARSED,this.hls.trigger(b.FRAG_PARSED,{frag:e,part:t})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(e){if(e.event==="demuxerWorker"){var t,i,s;this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded((t=(i=this.levelLastLoaded)!=null?i:(s=this.fragCurrent)==null?void 0:s.level)!=null?t:0),this.resetLoadingState()}}set state(e){let t=this._state;t!==e&&(this._state=e,this.log(`${t}->${e}`))}get state(){return this._state}};function d0(){return self.SourceBuffer||self.WebKitSourceBuffer}function y_(){let r=Ml();if(!r)return!1;let e=d0(),t=r&&typeof r.isTypeSupported=="function"&&r.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=!e||e.prototype&&typeof e.prototype.appendBuffer=="function"&&typeof e.prototype.remove=="function";return!!t&&!!i}function T_(){var r;let e=d0();return typeof(e==null||(r=e.prototype)==null?void 0:r.changeType)=="function"}function __(){return typeof __HLS_WORKER_BUNDLE__=="function"}function A_(){let r=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),e=self.URL.createObjectURL(r);return{worker:new self.Worker(e),objectURL:e}}function S_(r){let e=new self.URL(r,self.location.href).href;return{worker:new self.Worker(e),scriptURL:e}}function Ui(r="",e=9e4){return{type:r,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}var bl=class{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(e,t,i,s){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(e){this.initPTS=e,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(e,t){return!1}appendFrame(e,t,i){}demux(e,t){this.cachedData&&(e=Kr(this.cachedData,e),this.cachedData=null);let i=fl(e,0),s=i?i.length:0,n,a=this._audioTrack,o=this._id3Track,l=i?ET(i):void 0,d=e.length;for((this.basePTS===null||this.frameIndex===0&&ce(l))&&(this.basePTS=x_(l,t,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),i&&i.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Ei.audioId3,duration:Number.POSITIVE_INFINITY});s<d;){if(this.canParse(e,s)){let c=this.appendFrame(a,e,s);c?(this.frameIndex++,this.lastPTS=c.sample.pts,s+=c.length,n=s):s=d}else vT(e,s)?(i=fl(e,s),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:Ei.audioId3,duration:Number.POSITIVE_INFINITY}),s+=i.length,n=s):s++;if(s===d&&n!==d){let c=Vr(e,n);this.cachedData?this.cachedData=Kr(this.cachedData,c):this.cachedData=c}}return{audioTrack:a,videoTrack:Ui(),id3Track:o,textTrack:Ui()}}demuxSampleAes(e,t,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(e){let t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),{audioTrack:this._audioTrack,videoTrack:Ui(),id3Track:this._id3Track,textTrack:Ui()}}destroy(){}},x_=(r,e,t)=>{if(ce(r))return r*90;let i=t?t.baseTime*9e4/t.timescale:0;return e*9e4+i};function I_(r,e,t,i){let s,n,a,o,l=navigator.userAgent.toLowerCase(),d=i,c=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];s=((e[t+2]&192)>>>6)+1;let u=(e[t+2]&60)>>>2;if(u>c.length-1){r.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!0,reason:`invalid ADTS sampling index:${u}`});return}return a=(e[t+2]&1)<<2,a|=(e[t+3]&192)>>>6,M.log(`manifest codec:${i}, ADTS type:${s}, samplingIndex:${u}`),/firefox/i.test(l)?u>=6?(s=5,o=new Array(4),n=u-3):(s=2,o=new Array(2),n=u):l.indexOf("android")!==-1?(s=2,o=new Array(2),n=u):(s=5,o=new Array(4),i&&(i.indexOf("mp4a.40.29")!==-1||i.indexOf("mp4a.40.5")!==-1)||!i&&u>=6?n=u-3:((i&&i.indexOf("mp4a.40.2")!==-1&&(u>=6&&a===1||/vivaldi/i.test(l))||!i&&a===1)&&(s=2,o=new Array(2)),n=u)),o[0]=s<<3,o[0]|=(u&14)>>1,o[1]|=(u&1)<<7,o[1]|=a<<3,s===5&&(o[1]|=(n&14)>>1,o[2]=(n&1)<<7,o[2]|=2<<2,o[3]=0),{config:o,samplerate:c[u],channelCount:a,codec:"mp4a.40."+s,manifestCodec:d}}function c0(r,e){return r[e]===255&&(r[e+1]&246)===240}function u0(r,e){return r[e+1]&1?7:9}function kh(r,e){return(r[e+3]&3)<<11|r[e+4]<<3|(r[e+5]&224)>>>5}function L_(r,e){return e+5<r.length}function yl(r,e){return e+1<r.length&&c0(r,e)}function k_(r,e){return L_(r,e)&&c0(r,e)&&kh(r,e)<=r.length-e}function R_(r,e){if(yl(r,e)){let t=u0(r,e);if(e+t>=r.length)return!1;let i=kh(r,e);if(i<=t)return!1;let s=e+i;return s===r.length||yl(r,s)}return!1}function h0(r,e,t,i,s){if(!r.samplerate){let n=I_(e,t,i,s);if(!n)return;r.config=n.config,r.samplerate=n.samplerate,r.channelCount=n.channelCount,r.codec=n.codec,r.manifestCodec=n.manifestCodec,M.log(`parsed codec:${r.codec}, rate:${n.samplerate}, channels:${n.channelCount}`)}}function f0(r){return 1024*9e4/r}function w_(r,e){let t=u0(r,e);if(e+t<=r.length){let i=kh(r,e)-t;if(i>0)return{headerLength:t,frameLength:i}}}function m0(r,e,t,i,s){let n=f0(r.samplerate),a=i+s*n,o=w_(e,t),l;if(o){let{frameLength:u,headerLength:h}=o,f=h+u,g=Math.max(0,t+f-e.length);g?(l=new Uint8Array(f-h),l.set(e.subarray(t+h,e.length),0)):l=e.subarray(t+h,t+f);let E={unit:l,pts:a};return g||r.samples.push(E),{sample:E,length:f,missing:g}}let d=e.length-t;return l=new Uint8Array(d),l.set(e.subarray(t,e.length),0),{sample:{unit:l,pts:a},length:d,missing:-1}}var Wu=class extends bl{constructor(e,t){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=t}resetInitSegment(e,t,i,s){super.resetInitSegment(e,t,i,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;let i=(fl(e,0)||[]).length;for(let s=e.length;i<s;i++)if(R_(e,i))return M.log("ADTS sync word found !"),!0;return!1}canParse(e,t){return k_(e,t)}appendFrame(e,t,i){h0(e,this.observer,t,i,e.manifestCodec);let s=m0(e,t,i,this.basePTS,this.frameIndex);if(s&&s.missing===0)return s}},D_=/\/emsg[-/]ID3/i,qu=class{constructor(e,t){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=t}resetTimeStamp(){}resetInitSegment(e,t,i,s){let n=this.videoTrack=Ui("video",1),a=this.audioTrack=Ui("audio",1),o=this.txtTrack=Ui("text",1);if(this.id3Track=Ui("id3",1),this.timeOffset=0,!(e!=null&&e.byteLength))return;let l=Xg(e);if(l.video){let{id:d,timescale:c,codec:u}=l.video;n.id=d,n.timescale=o.timescale=c,n.codec=u}if(l.audio){let{id:d,timescale:c,codec:u}=l.audio;a.id=d,a.timescale=c,a.codec=u}o.id=Yg.text,n.sampleDuration=0,n.duration=a.duration=s}resetContiguity(){this.remainderData=null}static probe(e){return e=e.length>16384?e.subarray(0,16384):e,Pe(e,["moof"]).length>0}demux(e,t){this.timeOffset=t;let i=e,s=this.videoTrack,n=this.txtTrack;if(this.config.progressive){this.remainderData&&(i=Kr(this.remainderData,e));let o=MT(i);this.remainderData=o.remainder,s.samples=o.valid||new Uint8Array}else s.samples=i;let a=this.extractID3Track(s,t);return n.samples=sg(t,s),{videoTrack:s,audioTrack:this.audioTrack,id3Track:a,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,t=this.videoTrack,i=this.txtTrack;t.samples=this.remainderData||new Uint8Array,this.remainderData=null;let s=this.extractID3Track(t,this.timeOffset);return i.samples=sg(e,t),{videoTrack:t,audioTrack:Ui(),id3Track:s,textTrack:Ui()}}extractID3Track(e,t){let i=this.id3Track;if(e.samples.length){let s=Pe(e.samples,["emsg"]);s&&s.forEach(n=>{let a=NT(n);if(D_.test(a.schemeIdUri)){let o=ce(a.presentationTime)?a.presentationTime/a.timeScale:t+a.presentationTimeDelta/a.timeScale,l=a.eventDuration===4294967295?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;l<=.001&&(l=Number.POSITIVE_INFINITY);let d=a.payload;i.samples.push({data:d,len:d.byteLength,dts:o,pts:o,type:Ei.emsg,duration:l})}})}return i}demuxSampleAes(e,t,i){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},nl=null,C_=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],M_=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],O_=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],P_=[0,1,1,4];function p0(r,e,t,i,s){if(t+24>e.length)return;let n=g0(e,t);if(n&&t+n.frameLength<=e.length){let a=n.samplesPerFrame*9e4/n.sampleRate,o=i+s*a,l={unit:e.subarray(t,t+n.frameLength),pts:o,dts:o};return r.config=[],r.channelCount=n.channelCount,r.samplerate=n.sampleRate,r.samples.push(l),{sample:l,length:n.frameLength,missing:0}}}function g0(r,e){let t=r[e+1]>>3&3,i=r[e+1]>>1&3,s=r[e+2]>>4&15,n=r[e+2]>>2&3;if(t!==1&&s!==0&&s!==15&&n!==3){let a=r[e+2]>>1&1,o=r[e+3]>>6,l=t===3?3-i:i===3?3:4,d=C_[l*14+s-1]*1e3,u=M_[(t===3?0:t===2?1:2)*3+n],h=o===3?1:2,f=O_[t][i],g=P_[i],E=f*8*g,T=Math.floor(f*d/u+a)*g;if(nl===null){let L=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);nl=L?parseInt(L[1]):0}return!!nl&&nl<=87&&i===2&&d>=224e3&&o===0&&(r[e+3]=r[e+3]|128),{sampleRate:u,channelCount:h,frameLength:T,samplesPerFrame:E}}}function Rh(r,e){return r[e]===255&&(r[e+1]&224)===224&&(r[e+1]&6)!==0}function v0(r,e){return e+1<r.length&&Rh(r,e)}function N_(r,e){return Rh(r,e)&&4<=r.length-e}function U_(r,e){if(e+1<r.length&&Rh(r,e)){let i=g0(r,e),s=4;i!=null&&i.frameLength&&(s=i.frameLength);let n=e+s;return n===r.length||v0(r,n)}return!1}var Tl=class{constructor(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let e=this.data,t=this.bytesAvailable,i=e.byteLength-t,s=new Uint8Array(4),n=Math.min(4,t);if(n===0)throw new Error("no bytes available");s.set(e.subarray(i,i+n)),this.word=new DataView(s.buffer).getUint32(0),this.bitsAvailable=n*8,this.bytesAvailable-=n}skipBits(e){let t;e=Math.min(e,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t<<3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}readBits(e){let t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(e>32&&M.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0)this.word<<=t;else if(this.bytesAvailable>0)this.loadWord();else throw new Error("no bits available");return t=e-t,t>0&&this.bitsAvailable?i<<t|this.readBits(t):i}skipLZ(){let e;for(e=0;e<this.bitsAvailable;++e)if((this.word&2147483648>>>e)!==0)return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let e=this.skipLZ();return this.readBits(e+1)-1}readEG(){let e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(e){let t=8,i=8,s;for(let n=0;n<e;n++)i!==0&&(s=this.readEG(),i=(t+s+256)%256),t=i===0?t:i}readSPS(){let e=0,t=0,i=0,s=0,n,a,o,l=this.readUByte.bind(this),d=this.readBits.bind(this),c=this.readUEG.bind(this),u=this.readBoolean.bind(this),h=this.skipBits.bind(this),f=this.skipEG.bind(this),g=this.skipUEG.bind(this),E=this.skipScalingList.bind(this);l();let T=l();if(d(5),h(3),l(),g(),T===100||T===110||T===122||T===244||T===44||T===83||T===86||T===118||T===128){let $=c();if($===3&&h(1),g(),g(),h(1),u())for(a=$!==3?8:12,o=0;o<a;o++)u()&&(o<6?E(16):E(64))}g();let A=c();if(A===0)c();else if(A===1)for(h(1),f(),f(),n=c(),o=0;o<n;o++)f();g(),h(1);let k=c(),L=c(),N=d(1);N===0&&h(1),h(1),u()&&(e=c(),t=c(),i=c(),s=c());let D=[1,1];if(u()&&u())switch(l()){case 1:D=[1,1];break;case 2:D=[12,11];break;case 3:D=[10,11];break;case 4:D=[16,11];break;case 5:D=[40,33];break;case 6:D=[24,11];break;case 7:D=[20,11];break;case 8:D=[32,11];break;case 9:D=[80,33];break;case 10:D=[18,11];break;case 11:D=[15,11];break;case 12:D=[64,33];break;case 13:D=[160,99];break;case 14:D=[4,3];break;case 15:D=[3,2];break;case 16:D=[2,1];break;case 255:{D=[l()<<8|l(),l()<<8|l()];break}}return{width:Math.ceil((k+1)*16-e*2-t*2),height:(2-N)*(L+1)*16-(N?2:4)*(i+s),pixelRatio:D}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}},Yu=class{constructor(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new Wn(t,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(e,t,i){let s=e[t].unit;if(s.length<=16)return;let n=s.subarray(16,s.length-s.length%16),a=n.buffer.slice(n.byteOffset,n.byteOffset+n.length);this.decryptBuffer(a).then(o=>{let l=new Uint8Array(o);s.set(l,16),this.decrypter.isSync()||this.decryptAacSamples(e,t+1,i)})}decryptAacSamples(e,t,i){for(;;t++){if(t>=e.length){i();return}if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){let t=Math.floor((e.length-48)/160)*16+16,i=new Int8Array(t),s=0;for(let n=32;n<e.length-16;n+=160,s+=16)i.set(e.subarray(n,n+16),s);return i}getAvcDecryptedUnit(e,t){let i=new Uint8Array(t),s=0;for(let n=32;n<e.length-16;n+=160,s+=16)e.set(i.subarray(s,s+16),n);return e}decryptAvcSample(e,t,i,s,n){let a=Jg(n.data),o=this.getAvcEncryptedData(a);this.decryptBuffer(o.buffer).then(l=>{n.data=this.getAvcDecryptedUnit(a,l),this.decrypter.isSync()||this.decryptAvcSamples(e,t,i+1,s)})}decryptAvcSamples(e,t,i,s){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length){s();return}let n=e[t].units;for(;!(i>=n.length);i++){let a=n[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5)&&(this.decryptAvcSample(e,t,i,s,a),!this.decrypter.isSync()))return}}}},Ct=188,Fi=class{constructor(e,t,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._avcTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.observer=e,this.config=t,this.typeSupported=i}static probe(e){let t=Fi.syncOffset(e);return t>0&&M.warn(`MPEG2-TS detected but first sync word found @ offset ${t}`),t!==-1}static syncOffset(e){let t=e.length,i=Math.min(Ct*5,e.length-Ct)+1,s=0;for(;s<i;){let n=!1,a=-1,o=0;for(let l=s;l<t;l+=Ct)if(e[l]===71){if(o++,a===-1&&(a=l,a!==0&&(i=Math.min(a+Ct*99,e.length-Ct)+1)),n||(n=ju(e,l)===0),n&&o>1&&(a===0&&o>2||l+Ct>i))return a}else{if(o)return-1;break}s++}return-1}static createTrack(e,t){return{container:e==="video"||e==="audio"?"video/mp2t":void 0,type:e,id:Yg[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:e==="audio"?t:void 0}}resetInitSegment(e,t,i,s){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=Fi.createTrack("video"),this._audioTrack=Fi.createTrack("audio",s),this._id3Track=Fi.createTrack("id3"),this._txtTrack=Fi.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.avcSample=null,this.remainderData=null,this.audioCodec=t,this.videoCodec=i,this._duration=s}resetTimeStamp(){}resetContiguity(){let{_audioTrack:e,_avcTrack:t,_id3Track:i}=this;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.avcSample=null,this.remainderData=null}demux(e,t,i=!1,s=!1){i||(this.sampleAes=null);let n,a=this._avcTrack,o=this._audioTrack,l=this._id3Track,d=this._txtTrack,c=a.pid,u=a.pesData,h=o.pid,f=l.pid,g=o.pesData,E=l.pesData,T=null,A=this.pmtParsed,k=this._pmtId,L=e.length;if(this.remainderData&&(e=Kr(this.remainderData,e),L=e.length,this.remainderData=null),L<Ct&&!s)return this.remainderData=e,{audioTrack:o,videoTrack:a,id3Track:l,textTrack:d};let N=Math.max(0,Fi.syncOffset(e));L-=(L-N)%Ct,L<e.byteLength&&!s&&(this.remainderData=new Uint8Array(e.buffer,L,e.buffer.byteLength-L));let D=0;for(let O=N;O<L;O+=Ct)if(e[O]===71){let G=!!(e[O+1]&64),q=ju(e,O),P=(e[O+3]&48)>>4,X;if(P>1){if(X=O+5+e[O+4],X===O+Ct)continue}else X=O+4;switch(q){case c:G&&(u&&(n=$s(u))&&this.parseAVCPES(a,d,n,!1),u={data:[],size:0}),u&&(u.data.push(e.subarray(X,O+Ct)),u.size+=O+Ct-X);break;case h:if(G){if(g&&(n=$s(g)))switch(o.segmentCodec){case"aac":this.parseAACPES(o,n);break;case"mp3":this.parseMPEGPES(o,n);break}g={data:[],size:0}}g&&(g.data.push(e.subarray(X,O+Ct)),g.size+=O+Ct-X);break;case f:G&&(E&&(n=$s(E))&&this.parseID3PES(l,n),E={data:[],size:0}),E&&(E.data.push(e.subarray(X,O+Ct)),E.size+=O+Ct-X);break;case 0:G&&(X+=e[X]+1),k=this._pmtId=F_(e,X);break;case k:{G&&(X+=e[X]+1);let z=B_(e,X,this.typeSupported,i);c=z.avc,c>0&&(a.pid=c),h=z.audio,h>0&&(o.pid=h,o.segmentCodec=z.segmentCodec),f=z.id3,f>0&&(l.pid=f),T!==null&&!A&&(M.warn(`MPEG-TS PMT found at ${O} after unknown PID '${T}'. Backtracking to sync byte @${N} to parse all TS packets.`),T=null,O=N-188),A=this.pmtParsed=!0;break}case 17:case 8191:break;default:T=q;break}}else D++;if(D>0){let O=new Error(`Found ${D} TS packet/s that do not start with 0x47`);this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:O,reason:O.message})}a.pesData=u,o.pesData=g,l.pesData=E;let $={audioTrack:o,videoTrack:a,id3Track:l,textTrack:d};return s&&this.extractRemainingSamples($),$}flush(){let{remainderData:e}=this;this.remainderData=null;let t;return e?t=this.demux(e,-1,!1,!0):t={videoTrack:this._avcTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(t),this.sampleAes?this.decrypt(t,this.sampleAes):t}extractRemainingSamples(e){let{audioTrack:t,videoTrack:i,id3Track:s,textTrack:n}=e,a=i.pesData,o=t.pesData,l=s.pesData,d;if(a&&(d=$s(a))?(this.parseAVCPES(i,n,d,!0),i.pesData=null):i.pesData=a,o&&(d=$s(o))){switch(t.segmentCodec){case"aac":this.parseAACPES(t,d);break;case"mp3":this.parseMPEGPES(t,d);break}t.pesData=null}else o!=null&&o.size&&M.log("last AAC PES packet truncated,might overlap between fragments"),t.pesData=o;l&&(d=$s(l))?(this.parseID3PES(s,d),s.pesData=null):s.pesData=l}demuxSampleAes(e,t,i){let s=this.demux(e,i,!0,!this.config.progressive),n=this.sampleAes=new Yu(this.observer,this.config,t);return this.decrypt(s,n)}decrypt(e,t){return new Promise(i=>{let{audioTrack:s,videoTrack:n}=e;s.samples&&s.segmentCodec==="aac"?t.decryptAacSamples(s.samples,0,()=>{n.samples?t.decryptAvcSamples(n.samples,0,0,()=>{i(e)}):i(e)}):n.samples&&t.decryptAvcSamples(n.samples,0,0,()=>{i(e)})})}destroy(){this._duration=0}parseAVCPES(e,t,i,s){let n=this.parseAVCNALu(e,i.data),a=this.avcSample,o,l=!1;i.data=null,a&&n.length&&!e.audFound&&(Pn(a,e),a=this.avcSample=al(!1,i.pts,i.dts,"")),n.forEach(d=>{var c;switch(d.type){case 1:{let h=!1;o=!0;let f=d.data;if(l&&f.length>4){let g=new Tl(f).readSliceType();(g===2||g===4||g===7||g===9)&&(h=!0)}if(h){var u;(u=a)!=null&&u.frame&&!a.key&&(Pn(a,e),a=this.avcSample=null)}a||(a=this.avcSample=al(!0,i.pts,i.dts,"")),a.frame=!0,a.key=h;break}case 5:o=!0,(c=a)!=null&&c.frame&&!a.key&&(Pn(a,e),a=this.avcSample=null),a||(a=this.avcSample=al(!0,i.pts,i.dts,"")),a.key=!0,a.frame=!0;break;case 6:{o=!0,Zg(d.data,1,i.pts,t.samples);break}case 7:if(o=!0,l=!0,!e.sps){let h=d.data,g=new Tl(h).readSPS();e.width=g.width,e.height=g.height,e.pixelRatio=g.pixelRatio,e.sps=[h],e.duration=this._duration;let E=h.subarray(1,4),T="avc1.";for(let A=0;A<3;A++){let k=E[A].toString(16);k.length<2&&(k="0"+k),T+=k}e.codec=T}break;case 8:o=!0,e.pps||(e.pps=[d.data]);break;case 9:o=!1,e.audFound=!0,a&&Pn(a,e),a=this.avcSample=al(!1,i.pts,i.dts,"");break;case 12:o=!0;break;default:o=!1,a&&(a.debug+="unknown NAL "+d.type+" ");break}a&&o&&a.units.push(d)}),s&&a&&(Pn(a,e),this.avcSample=null)}getLastNalUnit(e){var t;let i=this.avcSample,s;if((!i||i.units.length===0)&&(i=e[e.length-1]),(t=i)!=null&&t.units){let n=i.units;s=n[n.length-1]}return s}parseAVCNALu(e,t){let i=t.byteLength,s=e.naluState||0,n=s,a=[],o=0,l,d,c,u=-1,h=0;for(s===-1&&(u=0,h=t[0]&31,s=0,o=1);o<i;){if(l=t[o++],!s){s=l?0:1;continue}if(s===1){s=l?0:2;continue}if(!l)s=3;else if(l===1){if(u>=0){let f={data:t.subarray(u,o-s-1),type:h};a.push(f)}else{let f=this.getLastNalUnit(e.samples);if(f&&(n&&o<=4-n&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-n)),d=o-s-1,d>0)){let g=new Uint8Array(f.data.byteLength+d);g.set(f.data,0),g.set(t.subarray(0,d),f.data.byteLength),f.data=g,f.state=0}}o<i?(c=t[o]&31,u=o,h=c,s=0):s=-1}else s=0}if(u>=0&&s>=0){let f={data:t.subarray(u,i),type:h,state:s};a.push(f)}if(a.length===0){let f=this.getLastNalUnit(e.samples);if(f){let g=new Uint8Array(f.data.byteLength+t.byteLength);g.set(f.data,0),g.set(t,f.data.byteLength),f.data=g}}return e.naluState=s,a}parseAACPES(e,t){let i=0,s=this.aacOverFlow,n=t.data;if(s){this.aacOverFlow=null;let u=s.missing,h=s.sample.unit.byteLength;if(u===-1){let f=new Uint8Array(h+n.byteLength);f.set(s.sample.unit,0),f.set(n,h),n=f}else{let f=h-u;s.sample.unit.set(n.subarray(0,u),f),e.samples.push(s.sample),i=s.missing}}let a,o;for(a=i,o=n.length;a<o-1&&!yl(n,a);a++);if(a!==i){let u,h=a<o-1;h?u=`AAC PES did not start with ADTS header,offset:${a}`:u="No ADTS header found in AAC PES";let f=new Error(u);if(M.warn(`parsing error: ${u}`),this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,levelRetry:h,error:f,reason:u}),!h)return}h0(e,this.observer,n,a,this.audioCodec);let l;if(t.pts!==void 0)l=t.pts;else if(s){let u=f0(e.samplerate);l=s.sample.pts+u}else{M.warn("[tsdemuxer]: AAC PES unknown PTS");return}let d=0,c;for(;a<o;)if(c=m0(e,n,a,l,d),a+=c.length,c.missing){this.aacOverFlow=c;break}else for(d++;a<o-1&&!yl(n,a);a++);}parseMPEGPES(e,t){let i=t.data,s=i.length,n=0,a=0,o=t.pts;if(o===void 0){M.warn("[tsdemuxer]: MPEG PES unknown PTS");return}for(;a<s;)if(v0(i,a)){let l=p0(e,i,a,o,n);if(l)a+=l.length,n++;else break}else a++}parseID3PES(e,t){if(t.pts===void 0){M.warn("[tsdemuxer]: ID3 PES unknown PTS");return}let i=pt({},t,{type:this._avcTrack?Ei.emsg:Ei.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(i)}};function al(r,e,t,i){return{key:r,frame:!1,pts:e,dts:t,units:[],debug:i,length:0}}function ju(r,e){return((r[e+1]&31)<<8)+r[e+2]}function F_(r,e){return(r[e+10]&31)<<8|r[e+11]}function B_(r,e,t,i){let s={audio:-1,avc:-1,id3:-1,segmentCodec:"aac"},n=(r[e+1]&15)<<8|r[e+2],a=e+3+n-4,o=(r[e+10]&15)<<8|r[e+11];for(e+=12+o;e<a;){let l=ju(r,e);switch(r[e]){case 207:if(!i){M.log("ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream");break}case 15:s.audio===-1&&(s.audio=l);break;case 21:s.id3===-1&&(s.id3=l);break;case 219:if(!i){M.log("H.264 with AES-128-CBC slice encryption found in unencrypted stream");break}case 27:s.avc===-1&&(s.avc=l);break;case 3:case 4:t.mpeg!==!0&&t.mp3!==!0?M.log("MPEG audio found, not supported in this browser"):s.audio===-1&&(s.audio=l,s.segmentCodec="mp3");break;case 36:M.warn("Unsupported HEVC stream type found");break}e+=((r[e+3]&15)<<8|r[e+4])+5}return s}function $s(r){let e=0,t,i,s,n,a,o=r.data;if(!r||r.size===0)return null;for(;o[0].length<19&&o.length>1;){let d=new Uint8Array(o[0].length+o[1].length);d.set(o[0]),d.set(o[1],o[0].length),o[0]=d,o.splice(1,1)}if(t=o[0],(t[0]<<16)+(t[1]<<8)+t[2]===1){if(i=(t[4]<<8)+t[5],i&&i>r.size-6)return null;let d=t[7];d&192&&(n=(t[9]&14)*536870912+(t[10]&255)*4194304+(t[11]&254)*16384+(t[12]&255)*128+(t[13]&254)/2,d&64?(a=(t[14]&14)*536870912+(t[15]&255)*4194304+(t[16]&254)*16384+(t[17]&255)*128+(t[18]&254)/2,n-a>60*9e4&&(M.warn(`${Math.round((n-a)/9e4)}s delta between PTS and DTS, align them`),n=a)):a=n),s=t[8];let c=s+9;if(r.size<=c)return null;r.size-=c;let u=new Uint8Array(r.size);for(let h=0,f=o.length;h<f;h++){t=o[h];let g=t.byteLength;if(c)if(c>g){c-=g;continue}else t=t.subarray(c),g-=c,c=0;u.set(t,e),e+=g}return i&&(i-=s+3),{data:u,pts:n,dts:a,len:i}}return null}function Pn(r,e){if(r.units.length&&r.frame){if(r.pts===void 0){let t=e.samples,i=t.length;if(i){let s=t[i-1];r.pts=s.pts,r.dts=s.dts}else{e.dropped++;return}}e.samples.push(r)}r.debug.length&&M.log(r.pts+"/"+r.dts+":"+r.debug)}var zu=class extends bl{resetInitSegment(e,t,i,s){super.resetInitSegment(e,t,i,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}}static probe(e){if(!e)return!1;let i=(fl(e,0)||[]).length;for(let s=e.length;i<s;i++)if(U_(e,i))return M.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,t){return N_(e,t)}appendFrame(e,t,i){if(this.basePTS!==null)return p0(e,t,i,this.basePTS,this.frameIndex)}},_l=class{static getSilentFrame(e,t){switch(e){case"mp4a.40.2":if(t===1)return new Uint8Array([0,200,0,128,35,128]);if(t===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(t===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(t===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(t===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(t===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(t===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}}},gr=Math.pow(2,32)-1,F=class{static init(){F.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let e;for(e in F.types)F.types.hasOwnProperty(e)&&(F.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);F.HDLR_TYPES={video:t,audio:i};let s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),n=new Uint8Array([0,0,0,0,0,0,0,0]);F.STTS=F.STSC=F.STCO=n,F.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),F.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),F.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),F.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);F.FTYP=F.box(F.types.ftyp,a,l,a,o),F.DINF=F.box(F.types.dinf,F.box(F.types.dref,s))}static box(e,...t){let i=8,s=t.length,n=s;for(;s--;)i+=t[s].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=i&255,a.set(e,4),s=0,i=8;s<n;s++)a.set(t[s],i),i+=t[s].byteLength;return a}static hdlr(e){return F.box(F.types.hdlr,F.HDLR_TYPES[e])}static mdat(e){return F.box(F.types.mdat,e)}static mdhd(e,t){t*=e;let i=Math.floor(t/(gr+1)),s=Math.floor(t%(gr+1));return F.box(F.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,s>>24,s>>16&255,s>>8&255,s&255,85,196,0,0]))}static mdia(e){return F.box(F.types.mdia,F.mdhd(e.timescale,e.duration),F.hdlr(e.type),F.minf(e))}static mfhd(e){return F.box(F.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,e&255]))}static minf(e){return e.type==="audio"?F.box(F.types.minf,F.box(F.types.smhd,F.SMHD),F.DINF,F.stbl(e)):F.box(F.types.minf,F.box(F.types.vmhd,F.VMHD),F.DINF,F.stbl(e))}static moof(e,t,i){return F.box(F.types.moof,F.mfhd(e),F.traf(i,t))}static moov(e){let t=e.length,i=[];for(;t--;)i[t]=F.trak(e[t]);return F.box.apply(null,[F.types.moov,F.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(F.mvex(e)))}static mvex(e){let t=e.length,i=[];for(;t--;)i[t]=F.trex(e[t]);return F.box.apply(null,[F.types.mvex,...i])}static mvhd(e,t){t*=e;let i=Math.floor(t/(gr+1)),s=Math.floor(t%(gr+1)),n=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,s>>24,s>>16&255,s>>8&255,s&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return F.box(F.types.mvhd,n)}static sdtp(e){let t=e.samples||[],i=new Uint8Array(4+t.length),s,n;for(s=0;s<t.length;s++)n=t[s].flags,i[s+4]=n.dependsOn<<4|n.isDependedOn<<2|n.hasRedundancy;return F.box(F.types.sdtp,i)}static stbl(e){return F.box(F.types.stbl,F.stsd(e),F.box(F.types.stts,F.STTS),F.box(F.types.stsc,F.STSC),F.box(F.types.stsz,F.STSZ),F.box(F.types.stco,F.STCO))}static avc1(e){let t=[],i=[],s,n,a;for(s=0;s<e.sps.length;s++)n=e.sps[s],a=n.byteLength,t.push(a>>>8&255),t.push(a&255),t=t.concat(Array.prototype.slice.call(n));for(s=0;s<e.pps.length;s++)n=e.pps[s],a=n.byteLength,i.push(a>>>8&255),i.push(a&255),i=i.concat(Array.prototype.slice.call(n));let o=F.box(F.types.avcC,new Uint8Array([1,t[3],t[4],t[5],255,224|e.sps.length].concat(t).concat([e.pps.length]).concat(i))),l=e.width,d=e.height,c=e.pixelRatio[0],u=e.pixelRatio[1];return F.box(F.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,l&255,d>>8&255,d&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,F.box(F.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),F.box(F.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,c&255,u>>24,u>>16&255,u>>8&255,u&255])))}static esds(e){let t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))}static mp4a(e){let t=e.samplerate;return F.box(F.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,t&255,0,0]),F.box(F.types.esds,F.esds(e)))}static mp3(e){let t=e.samplerate;return F.box(F.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,t&255,0,0]))}static stsd(e){return e.type==="audio"?e.segmentCodec==="mp3"&&e.codec==="mp3"?F.box(F.types.stsd,F.STSD,F.mp3(e)):F.box(F.types.stsd,F.STSD,F.mp4a(e)):F.box(F.types.stsd,F.STSD,F.avc1(e))}static tkhd(e){let t=e.id,i=e.duration*e.timescale,s=e.width,n=e.height,a=Math.floor(i/(gr+1)),o=Math.floor(i%(gr+1));return F.box(F.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,t&255,0,0,0,0,a>>24,a>>16&255,a>>8&255,a&255,o>>24,o>>16&255,o>>8&255,o&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,s>>8&255,s&255,0,0,n>>8&255,n&255,0,0]))}static traf(e,t){let i=F.sdtp(e),s=e.id,n=Math.floor(t/(gr+1)),a=Math.floor(t%(gr+1));return F.box(F.types.traf,F.box(F.types.tfhd,new Uint8Array([0,0,0,0,s>>24,s>>16&255,s>>8&255,s&255])),F.box(F.types.tfdt,new Uint8Array([1,0,0,0,n>>24,n>>16&255,n>>8&255,n&255,a>>24,a>>16&255,a>>8&255,a&255])),F.trun(e,i.length+16+20+8+16+8+8),i)}static trak(e){return e.duration=e.duration||4294967295,F.box(F.types.trak,F.tkhd(e),F.mdia(e))}static trex(e){let t=e.id;return F.box(F.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,t&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,t){let i=e.samples||[],s=i.length,n=12+16*s,a=new Uint8Array(n),o,l,d,c,u,h;for(t+=8+n,a.set([e.type==="video"?1:0,0,15,1,s>>>24&255,s>>>16&255,s>>>8&255,s&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255],0),o=0;o<s;o++)l=i[o],d=l.duration,c=l.size,u=l.flags,h=l.cts,a.set([d>>>24&255,d>>>16&255,d>>>8&255,d&255,c>>>24&255,c>>>16&255,c>>>8&255,c&255,u.isLeading<<2|u.dependsOn,u.isDependedOn<<6|u.hasRedundancy<<4|u.paddingValue<<1|u.isNonSync,u.degradPrio&240<<8,u.degradPrio&15,h>>>24&255,h>>>16&255,h>>>8&255,h&255],12+16*o);return F.box(F.types.trun,a)}static initSegment(e){F.types||F.init();let t=F.moov(e),i=new Uint8Array(F.FTYP.byteLength+t.byteLength);return i.set(F.FTYP),i.set(t,F.FTYP.byteLength),i}};F.types=void 0;F.HDLR_TYPES=void 0;F.STTS=void 0;F.STSC=void 0;F.STCO=void 0;F.STSZ=void 0;F.VMHD=void 0;F.SMHD=void 0;F.STSD=void 0;F.FTYP=void 0;F.DINF=void 0;var E0=9e4;function wh(r,e,t=1,i=!1){let s=r*e*t;return i?Math.round(s):s}function $_(r,e,t=1,i=!1){return wh(r,e,1/t,i)}function Nn(r,e=!1){return wh(r,1e3,1/E0,e)}function H_(r,e=1){return wh(r,E0,1/e)}var G_=10*1e3,Ig=1024,V_=1152,ol=null,hu=null,$n=class{constructor(e,t,i,s=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=!1,ol===null){let a=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);ol=a?parseInt(a[1]):0}if(hu===null){let n=navigator.userAgent.match(/Safari\/(\d+)/i);hu=n?parseInt(n[1]):0}}destroy(){}resetTimeStamp(e){M.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=e}resetNextTimestamp(){M.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){M.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1}getVideoStartPts(e){let t=!1,i=e.reduce((s,n)=>{let a=n.pts-s;return a<-4294967296?(t=!0,li(s,n.pts)):a>0?s:n.pts},e[0].pts);return t&&M.debug("PTS rollover detected"),i}remux(e,t,i,s,n,a,o,l){let d,c,u,h,f,g,E=n,T=n,A=e.pid>-1,k=t.pid>-1,L=t.samples.length,N=e.samples.length>0,D=o&&L>0||L>1;if((!A||N)&&(!k||D)||this.ISGenerated||o){this.ISGenerated||(u=this.generateIS(e,t,n,a));let O=this.isVideoContiguous,G=-1,q;if(D&&(G=K_(t.samples),!O&&this.config.forceKeyFrameOnDiscontinuity))if(g=!0,G>0){M.warn(`[mp4-remuxer]: Dropped ${G} out of ${L} video samples due to a missing keyframe`);let P=this.getVideoStartPts(t.samples);t.samples=t.samples.slice(G),t.dropped+=G,T+=(t.samples[0].pts-P)/t.inputTimeScale,q=T}else G===-1&&(M.warn(`[mp4-remuxer]: No keyframe found out of ${L} video samples`),g=!1);if(this.ISGenerated){if(N&&D){let P=this.getVideoStartPts(t.samples),z=(li(e.samples[0].pts,P)-P)/t.inputTimeScale;E+=Math.max(0,z),T+=Math.max(0,-z)}if(N){if(e.samplerate||(M.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),u=this.generateIS(e,t,n,a)),c=this.remuxAudio(e,E,this.isAudioContiguous,a,k||D||l===ge.AUDIO?T:void 0),D){let P=c?c.endPTS-c.startPTS:0;t.inputTimeScale||(M.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),u=this.generateIS(e,t,n,a)),d=this.remuxVideo(t,T,O,P)}}else D&&(d=this.remuxVideo(t,T,O,0));d&&(d.firstKeyFrame=G,d.independent=G!==-1,d.firstKeyFramePTS=q)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(f=b0(i,n,this._initPTS,this._initDTS)),s.samples.length&&(h=y0(s,n,this._initPTS))),{audio:c,video:d,initSegment:u,independent:g,text:h,id3:f}}generateIS(e,t,i,s){let n=e.samples,a=t.samples,o=this.typeSupported,l={},d=this._initPTS,c=!d||s,u="audio/mp4",h,f,g;if(c&&(h=f=1/0),e.config&&n.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":o.mpeg?(u="audio/mpeg",e.codec=""):o.mp3&&(e.codec="mp3");break}l.audio={id:"audio",container:u,codec:e.codec,initSegment:e.segmentCodec==="mp3"&&o.mpeg?new Uint8Array(0):F.initSegment([e]),metadata:{channelCount:e.channelCount}},c&&(g=e.inputTimeScale,!d||g!==d.timescale?h=f=n[0].pts-Math.round(g*i):c=!1)}if(t.sps&&t.pps&&a.length&&(t.timescale=t.inputTimeScale,l.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:F.initSegment([t]),metadata:{width:t.width,height:t.height}},c))if(g=t.inputTimeScale,!d||g!==d.timescale){let E=this.getVideoStartPts(a),T=Math.round(g*i);f=Math.min(f,li(a[0].dts,E)-T),h=Math.min(h,E-T)}else c=!1;if(Object.keys(l).length)return this.ISGenerated=!0,c?(this._initPTS={baseTime:h,timescale:g},this._initDTS={baseTime:f,timescale:g}):h=g=void 0,{tracks:l,initPTS:h,timescale:g}}remuxVideo(e,t,i,s){let n=e.inputTimeScale,a=e.samples,o=[],l=a.length,d=this._initPTS,c=this.nextAvcDts,u=8,h=this.videoSampleDuration,f,g,E=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,A=!1;if(!i||c===null){let Z=t*n,ne=a[0].pts-li(a[0].dts,a[0].pts);c=Z-ne}let k=d.baseTime*n/d.timescale;for(let Z=0;Z<l;Z++){let ne=a[Z];ne.pts=li(ne.pts-k,c),ne.dts=li(ne.dts-k,c),ne.dts<a[Z>0?Z-1:Z].dts&&(A=!0)}A&&a.sort(function(Z,ne){let se=Z.dts-ne.dts,xe=Z.pts-ne.pts;return se||xe}),f=a[0].dts,g=a[a.length-1].dts;let L=g-f,N=L?Math.round(L/(l-1)):h||e.inputTimeScale/30;if(i){let Z=f-c,ne=Z>N,se=Z<-1;if((ne||se)&&(ne?M.warn(`AVC: ${Nn(Z,!0)} ms (${Z}dts) hole between fragments detected, filling it`):M.warn(`AVC: ${Nn(-Z,!0)} ms (${Z}dts) overlapping between fragments detected`),!se||c>=a[0].pts)){f=c;let xe=a[0].pts-Z;a[0].dts=f,a[0].pts=xe,M.log(`Video: First PTS/DTS adjusted: ${Nn(xe,!0)}/${Nn(f,!0)}, delta: ${Nn(Z,!0)} ms`)}}f=Math.max(0,f);let D=0,$=0;for(let Z=0;Z<l;Z++){let ne=a[Z],se=ne.units,xe=se.length,Ie=0;for(let Ve=0;Ve<xe;Ve++)Ie+=se[Ve].data.length;$+=Ie,D+=xe,ne.length=Ie,ne.dts=Math.max(ne.dts,f),E=Math.min(ne.pts,E),T=Math.max(ne.pts,T)}g=a[l-1].dts;let O=$+4*D+8,G;try{G=new Uint8Array(O)}catch(Z){this.observer.emit(b.ERROR,b.ERROR,{type:pe.MUX_ERROR,details:B.REMUX_ALLOC_ERROR,fatal:!1,error:Z,bytes:O,reason:`fail allocating video mdat ${O}`});return}let q=new DataView(G.buffer);q.setUint32(0,O),G.set(F.types.mdat,4);let P=!1,X=Number.POSITIVE_INFINITY,z=Number.POSITIVE_INFINITY,Ae=Number.NEGATIVE_INFINITY,Ee=Number.NEGATIVE_INFINITY;for(let Z=0;Z<l;Z++){let ne=a[Z],se=ne.units,xe=0;for(let ht=0,V=se.length;ht<V;ht++){let J=se[ht],ke=J.data,et=J.data.byteLength;q.setUint32(u,et),u+=4,G.set(ke,u),u+=et,xe+=4+et}let Ie;if(Z<l-1)h=a[Z+1].dts-ne.dts,Ie=a[Z+1].pts-ne.pts;else{let ht=this.config,V=Z>0?ne.dts-a[Z-1].dts:N;if(Ie=Z>0?ne.pts-a[Z-1].pts:N,ht.stretchShortVideoTrack&&this.nextAudioPts!==null){let J=Math.floor(ht.maxBufferHole*n),ke=(s?E+s*n:this.nextAudioPts)-ne.pts;ke>J?(h=ke-V,h<0?h=V:P=!0,M.log(`[mp4-remuxer]: It is approximately ${ke/90} ms to the next segment; using duration ${h/90} ms for the last video frame.`)):h=V}else h=V}let Ve=Math.round(ne.pts-ne.dts);X=Math.min(X,h),Ae=Math.max(Ae,h),z=Math.min(z,Ie),Ee=Math.max(Ee,Ie),o.push(new Al(ne.key,h,xe,Ve))}if(o.length){if(ol){if(ol<70){let Z=o[0].flags;Z.dependsOn=2,Z.isNonSync=0}}else if(hu&&Ee-z<Ae-X&&N/Ae<.025&&o[0].cts===0){M.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let Z=f;for(let ne=0,se=o.length;ne<se;ne++){let xe=Z+o[ne].duration,Ie=Z+o[ne].cts;if(ne<se-1){let Ve=xe+o[ne+1].cts;o[ne].duration=Ve-Ie}else o[ne].duration=ne?o[ne-1].duration:N;o[ne].cts=0,Z=xe}}}h=P||!h?N:h,this.nextAvcDts=c=g+h,this.videoSampleDuration=h,this.isVideoContiguous=!0;let be=F.moof(e.sequenceNumber++,f,pt({},e,{samples:o})),we="video",Se={data1:be,data2:G,startPTS:E/n,endPTS:(T+h)/n,startDTS:f/n,endDTS:c/n,type:we,hasAudio:!1,hasVideo:!0,nb:o.length,dropped:e.dropped};return e.samples=[],e.dropped=0,Se}remuxAudio(e,t,i,s,n){let a=e.inputTimeScale,o=e.samplerate?e.samplerate:a,l=a/o,d=e.segmentCodec==="aac"?Ig:V_,c=d*l,u=this._initPTS,h=e.segmentCodec==="mp3"&&this.typeSupported.mpeg,f=[],g=n!==void 0,E=e.samples,T=h?0:8,A=this.nextAudioPts||-1,k=t*a,L=u.baseTime*a/u.timescale;if(this.isAudioContiguous=i=i||E.length&&A>0&&(s&&Math.abs(k-A)<9e3||Math.abs(li(E[0].pts-L,k)-A)<20*c),E.forEach(function(we){we.pts=li(we.pts-L,k)}),!i||A<0){if(E=E.filter(we=>we.pts>=0),!E.length)return;n===0?A=0:s&&!g?A=Math.max(0,k):A=E[0].pts}if(e.segmentCodec==="aac"){let we=this.config.maxAudioFramesDrift;for(let Se=0,Z=A;Se<E.length;Se++){let ne=E[Se],se=ne.pts,xe=se-Z,Ie=Math.abs(1e3*xe/a);if(xe<=-we*c&&g)Se===0&&(M.warn(`Audio frame @ ${(se/a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1e3*xe/a)} ms.`),this.nextAudioPts=A=Z=se);else if(xe>=we*c&&Ie<G_&&g){let Ve=Math.round(xe/c);Z=se-Ve*c,Z<0&&(Ve--,Z+=c),Se===0&&(this.nextAudioPts=A=Z),M.warn(`[mp4-remuxer]: Injecting ${Ve} audio frame @ ${(Z/a).toFixed(3)}s due to ${Math.round(1e3*xe/a)} ms gap.`);for(let ht=0;ht<Ve;ht++){let V=Math.max(Z,0),J=_l.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);J||(M.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),J=ne.unit.subarray()),E.splice(Se,0,{unit:J,pts:V}),Z+=c,Se++}}ne.pts=Z,Z+=c}}let N=null,D=null,$,O=0,G=E.length;for(;G--;)O+=E[G].unit.byteLength;for(let we=0,Se=E.length;we<Se;we++){let Z=E[we],ne=Z.unit,se=Z.pts;if(D!==null){let Ie=f[we-1];Ie.duration=Math.round((se-D)/l)}else if(i&&e.segmentCodec==="aac"&&(se=A),N=se,O>0){O+=T;try{$=new Uint8Array(O)}catch(Ie){this.observer.emit(b.ERROR,b.ERROR,{type:pe.MUX_ERROR,details:B.REMUX_ALLOC_ERROR,fatal:!1,error:Ie,bytes:O,reason:`fail allocating audio mdat ${O}`});return}h||(new DataView($.buffer).setUint32(0,O),$.set(F.types.mdat,4))}else return;$.set(ne,T);let xe=ne.byteLength;T+=xe,f.push(new Al(!0,d,xe,0)),D=se}let q=f.length;if(!q)return;let P=f[f.length-1];this.nextAudioPts=A=D+l*P.duration;let X=h?new Uint8Array(0):F.moof(e.sequenceNumber++,N/l,pt({},e,{samples:f}));e.samples=[];let z=N/a,Ae=A/a,be={data1:X,data2:$,startPTS:z,endPTS:Ae,startDTS:z,endDTS:Ae,type:"audio",hasAudio:!0,hasVideo:!1,nb:q};return this.isAudioContiguous=!0,be}remuxEmptyAudio(e,t,i,s){let n=e.inputTimeScale,a=e.samplerate?e.samplerate:n,o=n/a,l=this.nextAudioPts,d=this._initDTS,c=d.baseTime*9e4/d.timescale,u=(l!==null?l:s.startDTS*n)+c,h=s.endDTS*n+c,f=o*Ig,g=Math.ceil((h-u)/f),E=_l.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(M.warn("[mp4-remuxer]: remux empty Audio"),!E){M.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");return}let T=[];for(let A=0;A<g;A++){let k=u+A*f;T.push({unit:E,pts:k,dts:k})}return e.samples=T,this.remuxAudio(e,t,i,!1)}};function li(r,e){let t;if(e===null)return r;for(e<r?t=-8589934592:t=8589934592;Math.abs(r-e)>4294967296;)r+=t;return r}function K_(r){for(let e=0;e<r.length;e++)if(r[e].key)return e;return-1}function b0(r,e,t,i){let s=r.samples.length;if(!s)return;let n=r.inputTimeScale;for(let o=0;o<s;o++){let l=r.samples[o];l.pts=li(l.pts-t.baseTime*n/t.timescale,e*n)/n,l.dts=li(l.dts-i.baseTime*n/i.timescale,e*n)/n}let a=r.samples;return r.samples=[],{samples:a}}function y0(r,e,t){let i=r.samples.length;if(!i)return;let s=r.inputTimeScale;for(let a=0;a<i;a++){let o=r.samples[a];o.pts=li(o.pts-t.baseTime*s/t.timescale,e*s)/s}r.samples.sort((a,o)=>a.pts-o.pts);let n=r.samples;return r.samples=[],{samples:n}}var Al=class{constructor(e,t,i,s){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=t,this.size=i,this.cts=s,this.flags=new Xu(e)}},Xu=class{constructor(e){this.isLeading=0,this.isDependedOn=0,this.hasRedundancy=0,this.degradPrio=0,this.dependsOn=1,this.isNonSync=1,this.dependsOn=e?2:1,this.isNonSync=e?0:1}},Qu=class{constructor(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,t,i,s){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(kT(e,s)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:t,videoCodec:i}=this;if(!(e!=null&&e.byteLength)){this.initTracks=void 0,this.initData=void 0;return}let s=this.initData=Xg(e);t||(t=Lg(s.audio,qe.AUDIO)),i||(i=Lg(s.video,qe.VIDEO));let n={};s.audio&&s.video?n.audiovideo={container:"video/mp4",codec:t+","+i,initSegment:e,id:"main"}:s.audio?n.audio={container:"audio/mp4",codec:t,initSegment:e,id:"audio"}:s.video?n.video={container:"video/mp4",codec:i,initSegment:e,id:"main"}:M.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=n}remux(e,t,i,s,n,a){var o,l;let{initPTS:d,lastEndTime:c}=this,u={audio:void 0,video:void 0,text:s,id3:i,initSegment:void 0};ce(c)||(c=this.lastEndTime=n||0);let h=t.samples;if(!(h!=null&&h.length))return u;let f={initPTS:void 0,timescale:1},g=this.initData;if((o=g)!=null&&o.length||(this.generateInitSegment(h),g=this.initData),!((l=g)!=null&&l.length))return M.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),u;this.emitInitSegment&&(f.tracks=this.initTracks,this.emitInitSegment=!1);let E=wT(h,g),T=RT(g,h),A=T===null?n:T;(W_(d,A,n,E)||f.timescale!==d.timescale&&a)&&(f.initPTS=A-n,d&&d.timescale===1&&M.warn(`Adjusting initPTS by ${f.initPTS-d.baseTime}`),this.initPTS=d={baseTime:f.initPTS,timescale:1});let k=e?A-d.baseTime/d.timescale:c,L=k+E;CT(g,h,d.baseTime/d.timescale),E>0?this.lastEndTime=L:(M.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let N=!!g.audio,D=!!g.video,$="";N&&($+="audio"),D&&($+="video");let O={data1:h,startPTS:k,startDTS:k,endPTS:L,endDTS:L,type:$,hasAudio:N,hasVideo:D,nb:1,dropped:0};return u.audio=O.type==="audio"?O:void 0,u.video=O.type!=="audio"?O:void 0,u.initSegment=f,u.id3=b0(i,n,d,d),s.samples.length&&(u.text=y0(s,n,d)),u}};function W_(r,e,t,i){if(r===null)return!0;let s=Math.max(i,1),n=e-r.baseTime/r.timescale;return Math.abs(n-t)>s}function Lg(r,e){let t=r==null?void 0:r.codec;return t&&t.length>4?t:t==="hvc1"||t==="hev1"?"hvc1.1.6.L120.90":t==="av01"?"av01.0.04M.08":t==="avc1"||e===qe.VIDEO?"avc1.42e01e":"mp4a.40.5"}var Qi;try{Qi=self.performance.now.bind(self.performance)}catch{M.debug("Unable to use Performance API on this environment"),Qi=typeof self!="undefined"&&self.Date.now}var fu=[{demux:qu,remux:Qu},{demux:Fi,remux:$n},{demux:Wu,remux:$n},{demux:zu,remux:$n}],Sl=class{constructor(e,t,i,s,n){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=e,this.typeSupported=t,this.config=i,this.vendor=s,this.id=n}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}push(e,t,i,s){let n=i.transmuxing;n.executeStart=Qi();let a=new Uint8Array(e),{currentTransmuxState:o,transmuxConfig:l}=this;s&&(this.currentTransmuxState=s);let{contiguous:d,discontinuity:c,trackSwitch:u,accurateTimeOffset:h,timeOffset:f,initSegmentChange:g}=s||o,{audioCodec:E,videoCodec:T,defaultInitPts:A,duration:k,initSegmentData:L}=l,N=q_(a,t);if(N&&N.method==="AES-128"){let G=this.getDecrypter();if(G.isSync()){let q=G.softwareDecrypt(a,N.key.buffer,N.iv.buffer);if(i.part>-1&&(q=G.flush()),!q)return n.executeEnd=Qi(),mu(i);a=new Uint8Array(q)}else return this.decryptionPromise=G.webCryptoDecrypt(a,N.key.buffer,N.iv.buffer).then(q=>{let P=this.push(q,null,i);return this.decryptionPromise=null,P}),this.decryptionPromise}let D=this.needsProbing(c,u);if(D){let G=this.configureTransmuxer(a);if(G)return M.warn(`[transmuxer] ${G.message}`),this.observer.emit(b.ERROR,b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,fatal:!1,error:G,reason:G.message}),n.executeEnd=Qi(),mu(i)}(c||u||g||D)&&this.resetInitSegment(L,E,T,k,t),(c||g||D)&&this.resetInitialTimestamp(A),d||this.resetContiguity();let $=this.transmux(a,N,f,h,i),O=this.currentTransmuxState;return O.contiguous=!0,O.discontinuity=!1,O.trackSwitch=!1,n.executeEnd=Qi(),$}flush(e){let t=e.transmuxing;t.executeStart=Qi();let{decrypter:i,currentTransmuxState:s,decryptionPromise:n}=this;if(n)return n.then(()=>this.flush(e));let a=[],{timeOffset:o}=s;if(i){let u=i.flush();u&&a.push(this.push(u,null,e))}let{demuxer:l,remuxer:d}=this;if(!l||!d)return t.executeEnd=Qi(),[mu(e)];let c=l.flush(o);return cl(c)?c.then(u=>(this.flushRemux(a,u,e),a)):(this.flushRemux(a,c,e),a)}flushRemux(e,t,i){let{audioTrack:s,videoTrack:n,id3Track:a,textTrack:o}=t,{accurateTimeOffset:l,timeOffset:d}=this.currentTransmuxState;M.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let c=this.remuxer.remux(s,n,a,o,d,l,!0,this.id);e.push({remuxResult:c,chunkMeta:i}),i.transmuxing.executeEnd=Qi()}resetInitialTimestamp(e){let{demuxer:t,remuxer:i}=this;!t||!i||(t.resetTimeStamp(e),i.resetTimeStamp(e))}resetContiguity(){let{demuxer:e,remuxer:t}=this;!e||!t||(e.resetContiguity(),t.resetNextTimestamp())}resetInitSegment(e,t,i,s,n){let{demuxer:a,remuxer:o}=this;!a||!o||(a.resetInitSegment(e,t,i,s),o.resetInitSegment(e,t,i,n))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(e,t,i,s,n){let a;return t&&t.method==="SAMPLE-AES"?a=this.transmuxSampleAes(e,t,i,s,n):a=this.transmuxUnencrypted(e,i,s,n),a}transmuxUnencrypted(e,t,i,s){let{audioTrack:n,videoTrack:a,id3Track:o,textTrack:l}=this.demuxer.demux(e,t,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(n,a,o,l,t,i,!1,this.id),chunkMeta:s}}transmuxSampleAes(e,t,i,s,n){return this.demuxer.demuxSampleAes(e,t,i).then(a=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,s,!1,this.id),chunkMeta:n}))}configureTransmuxer(e){let{config:t,observer:i,typeSupported:s,vendor:n}=this,a;for(let u=0,h=fu.length;u<h;u++)if(fu[u].demux.probe(e)){a=fu[u];break}if(!a)return new Error("Failed to find demuxer by probing fragment data");let o=this.demuxer,l=this.remuxer,d=a.remux,c=a.demux;(!l||!(l instanceof d))&&(this.remuxer=new d(i,t,s,n)),(!o||!(o instanceof c))&&(this.demuxer=new c(i,t,s),this.probe=c.probe)}needsProbing(e,t){return!this.demuxer||!this.remuxer||e||t}getDecrypter(){let e=this.decrypter;return e||(e=this.decrypter=new Wn(this.config)),e}};function q_(r,e){let t=null;return r.byteLength>0&&e!=null&&e.key!=null&&e.iv!==null&&e.method!=null&&(t=e),t}var mu=r=>({remuxResult:{},chunkMeta:r});function cl(r){return"then"in r&&r.then instanceof Function}var Zu=class{constructor(e,t,i,s,n){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=e,this.videoCodec=t,this.initSegmentData=i,this.duration=s,this.defaultInitPts=n||null}},Ju=class{constructor(e,t,i,s,n,a){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=e,this.contiguous=t,this.accurateTimeOffset=i,this.trackSwitch=s,this.timeOffset=n,this.initSegmentChange=a}},T0={exports:{}};(function(r){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function s(l,d,c){this.fn=l,this.context=d,this.once=c||!1}function n(l,d,c,u,h){if(typeof c!="function")throw new TypeError("The listener must be a function");var f=new s(c,u||l,h),g=t?t+d:d;return l._events[g]?l._events[g].fn?l._events[g]=[l._events[g],f]:l._events[g].push(f):(l._events[g]=f,l._eventsCount++),l}function a(l,d){--l._eventsCount===0?l._events=new i:delete l._events[d]}function o(){this._events=new i,this._eventsCount=0}o.prototype.eventNames=function(){var d=[],c,u;if(this._eventsCount===0)return d;for(u in c=this._events)e.call(c,u)&&d.push(t?u.slice(1):u);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(c)):d},o.prototype.listeners=function(d){var c=t?t+d:d,u=this._events[c];if(!u)return[];if(u.fn)return[u.fn];for(var h=0,f=u.length,g=new Array(f);h<f;h++)g[h]=u[h].fn;return g},o.prototype.listenerCount=function(d){var c=t?t+d:d,u=this._events[c];return u?u.fn?1:u.length:0},o.prototype.emit=function(d,c,u,h,f,g){var E=t?t+d:d;if(!this._events[E])return!1;var T=this._events[E],A=arguments.length,k,L;if(T.fn){switch(T.once&&this.removeListener(d,T.fn,void 0,!0),A){case 1:return T.fn.call(T.context),!0;case 2:return T.fn.call(T.context,c),!0;case 3:return T.fn.call(T.context,c,u),!0;case 4:return T.fn.call(T.context,c,u,h),!0;case 5:return T.fn.call(T.context,c,u,h,f),!0;case 6:return T.fn.call(T.context,c,u,h,f,g),!0}for(L=1,k=new Array(A-1);L<A;L++)k[L-1]=arguments[L];T.fn.apply(T.context,k)}else{var N=T.length,D;for(L=0;L<N;L++)switch(T[L].once&&this.removeListener(d,T[L].fn,void 0,!0),A){case 1:T[L].fn.call(T[L].context);break;case 2:T[L].fn.call(T[L].context,c);break;case 3:T[L].fn.call(T[L].context,c,u);break;case 4:T[L].fn.call(T[L].context,c,u,h);break;default:if(!k)for(D=1,k=new Array(A-1);D<A;D++)k[D-1]=arguments[D];T[L].fn.apply(T[L].context,k)}}return!0},o.prototype.on=function(d,c,u){return n(this,d,c,u,!1)},o.prototype.once=function(d,c,u){return n(this,d,c,u,!0)},o.prototype.removeListener=function(d,c,u,h){var f=t?t+d:d;if(!this._events[f])return this;if(!c)return a(this,f),this;var g=this._events[f];if(g.fn)g.fn===c&&(!h||g.once)&&(!u||g.context===u)&&a(this,f);else{for(var E=0,T=[],A=g.length;E<A;E++)(g[E].fn!==c||h&&!g[E].once||u&&g[E].context!==u)&&T.push(g[E]);T.length?this._events[f]=T.length===1?T[0]:T:a(this,f)}return this},o.prototype.removeAllListeners=function(d){var c;return d?(c=t?t+d:d,this._events[c]&&a(this,c)):(this._events=new i,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=t,o.EventEmitter=o,r.exports=o})(T0);var Y_=T0.exports,Dh=eT(Y_),pu=Ml()||{isTypeSupported:()=>!1},xl=class{constructor(e,t,i,s){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let n=e.config;this.hls=e,this.id=t,this.useWorker=!!n.enableWorker,this.onTransmuxComplete=i,this.onFlush=s;let a=(d,c)=>{c=c||{},c.frag=this.frag,c.id=this.id,d===b.ERROR&&(this.error=c.error),this.hls.trigger(d,c)};this.observer=new Dh,this.observer.on(b.FRAG_DECRYPTED,a),this.observer.on(b.ERROR,a);let o={mp4:pu.isTypeSupported("video/mp4"),mpeg:pu.isTypeSupported("audio/mpeg"),mp3:pu.isTypeSupported('audio/mp4; codecs="mp3"')},l=navigator.vendor;if(this.useWorker&&typeof Worker!="undefined"&&(n.workerPath||__())){try{n.workerPath?(M.log(`loading Web Worker ${n.workerPath} for "${t}"`),this.workerContext=S_(n.workerPath)):(M.log(`injecting Web Worker for "${t}"`),this.workerContext=A_()),this.onwmsg=u=>this.onWorkerMessage(u);let{worker:c}=this.workerContext;c.addEventListener("message",this.onwmsg),c.onerror=u=>{let h=new Error(`${u.message} (${u.filename}:${u.lineno})`);n.enableWorker=!1,M.warn(`Error in "${t}" Web Worker, fallback to inline`),this.hls.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:h})},c.postMessage({cmd:"init",typeSupported:o,vendor:l,id:t,config:JSON.stringify(n)})}catch(c){M.warn(`Error setting up "${t}" Web Worker, fallback to inline`,c),this.resetWorker(),this.error=null,this.transmuxer=new Sl(this.observer,o,n,l,t)}return}this.transmuxer=new Sl(this.observer,o,n,l,t)}resetWorker(){if(this.workerContext){let{worker:e,objectURL:t}=this.workerContext;t&&self.URL.revokeObjectURL(t),e.removeEventListener("message",this.onwmsg),e.onerror=null,e.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let t=this.transmuxer;t&&(t.destroy(),this.transmuxer=null)}let e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(e,t,i,s,n,a,o,l,d,c){var u,h;d.transmuxing.start=self.performance.now();let{transmuxer:f}=this,g=a?a.start:n.start,E=n.decryptdata,T=this.frag,A=!(T&&n.cc===T.cc),k=!(T&&d.level===T.level),L=T?d.sn-T.sn:-1,N=this.part?d.part-this.part.index:-1,D=L===0&&d.id>1&&d.id===(T==null?void 0:T.stats.chunkCount),$=!k&&(L===1||L===0&&(N===1||D&&N<=0)),O=self.performance.now();(k||L||n.stats.parsing.start===0)&&(n.stats.parsing.start=O),a&&(N||!$)&&(a.stats.parsing.start=O);let G=!(T&&((u=n.initSegment)==null?void 0:u.url)===((h=T.initSegment)==null?void 0:h.url)),q=new Ju(A,$,l,k,g,G);if(!$||A||G){M.log(`[transmuxer-interface, ${n.type}]: Starting new transmux session for sn: ${d.sn} p: ${d.part} level: ${d.level} id: ${d.id}
|
|
951
951
|
discontinuity: ${A}
|
|
952
952
|
trackSwitch: ${k}
|
|
953
953
|
contiguous: ${$}
|
|
954
954
|
accurateTimeOffset: ${l}
|
|
955
955
|
timeOffset: ${g}
|
|
956
|
-
initSegmentChange: ${H}`);let P=new Zu(i,s,t,o,c);this.configureTransmuxer(P)}if(this.frag=n,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:e,decryptdata:E,chunkMeta:d,state:q},e instanceof ArrayBuffer?[e]:[]);else if(f){let P=f.push(e,E,d,q);cl(P)?(f.async=!0,P.then(X=>{this.handleTransmuxComplete(X)}).catch(X=>{this.transmuxerError(X,d,"transmuxer-interface push error")})):(f.async=!1,this.handleTransmuxComplete(P))}}flush(e){e.transmuxing.start=self.performance.now();let{transmuxer:t}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:e});else if(t){let i=t.flush(e);cl(i)||t.async?(cl(i)||(i=Promise.resolve(i)),i.then(n=>{this.handleFlushResult(n,e)}).catch(n=>{this.transmuxerError(n,e,"transmuxer-interface flush error")})):this.handleFlushResult(i,e)}}transmuxerError(e,t,i){!this.hls||(this.error=e,this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,chunkMeta:t,fatal:!1,error:e,err:e,reason:i}))}handleFlushResult(e,t){e.forEach(i=>{this.handleTransmuxComplete(i)}),this.onFlush(t)}onWorkerMessage(e){let t=e.data,i=this.hls;switch(t.event){case"init":{var s;let n=(s=this.workerContext)==null?void 0:s.objectURL;n&&self.URL.revokeObjectURL(n);break}case"transmuxComplete":{this.handleTransmuxComplete(t.data);break}case"flush":{this.onFlush(t.data);break}case"workerLog":M[t.data.logType]&&M[t.data.logType](t.data.message);break;default:{t.data=t.data||{},t.data.frag=this.frag,t.data.id=this.id,i.trigger(t.event,t.data);break}}}configureTransmuxer(e){let{transmuxer:t}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:e}):t&&t.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}},j_=250,gu=2,z_=.1,X_=.05,eh=class{constructor(e,t,i,s){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=e,this.media=t,this.fragmentTracker=i,this.hls=s}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(e,t){let{config:i,media:s,stalled:n}=this;if(s===null)return;let{currentTime:a,seeking:o}=s,l=this.seeking&&!o,d=!this.seeking&&o;if(this.seeking=o,a!==e){if(this.moved=!0,n!==null){if(this.stallReported){let A=self.performance.now()-n;M.warn(`playback not stuck anymore @${a}, after ${Math.round(A)}ms`),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}return}if(d||l){this.stalled=null;return}if(s.paused&&!o||s.ended||s.playbackRate===0||!je.getBuffered(s).length)return;let c=je.bufferInfo(s,a,0),u=c.len>0,h=c.nextStart||0;if(!u&&!h)return;if(o){let A=c.len>gu,k=!h||t&&t.start<=a||h-a>gu&&!this.fragmentTracker.getPartialFragment(a);if(A||k)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var f;let A=Math.max(h,c.start||0)-a,k=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,N=(k==null||(f=k.details)==null?void 0:f.live)?k.details.targetduration*2:gu,D=this.fragmentTracker.getPartialFragment(a);if(A>0&&(A<=N||D)){this._trySkipBufferHole(D);return}}let g=self.performance.now();if(n===null){this.stalled=g;return}let E=g-n;if(!o&&E>=j_&&(this._reportStall(c),!this.media))return;let T=je.bufferInfo(s,a,i.maxBufferHole);this._tryFixBufferStall(T,E)}_tryFixBufferStall(e,t){let{config:i,fragmentTracker:s,media:n}=this;if(n===null)return;let a=n.currentTime,o=s.getPartialFragment(a);o&&(this._trySkipBufferHole(o)||!this.media)||(e.len>i.maxBufferHole||e.nextStart&&e.nextStart-a<i.maxBufferHole)&&t>i.highBufferWatchdogPeriod*1e3&&(M.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(e){let{hls:t,media:i,stallReported:s}=this;if(!s&&i){this.stallReported=!0;let n=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(e)})`);M.warn(n.message),t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_STALLED_ERROR,fatal:!1,error:n,buffer:e.len})}}_trySkipBufferHole(e){let{config:t,hls:i,media:s}=this;if(s===null)return 0;let n=s.currentTime,a=je.bufferInfo(s,n,0),o=n<a.start?a.start:a.nextStart;if(o){let l=a.len<=t.maxBufferHole,d=a.len>0&&a.len<1&&s.readyState<3,c=o-n;if(c>0&&(l||d)){if(c>t.maxBufferHole){let{fragmentTracker:h}=this,f=!1;if(n===0){let g=h.getAppendedFrag(0,ge.MAIN);g&&o<g.end&&(f=!0)}if(!f){let g=e||h.getAppendedFrag(n,ge.MAIN);if(g){let E=!1,T=g.end;for(;T<o;){let A=h.getPartialFragment(T);if(A)T+=A.duration;else{E=!0;break}}if(E)return 0}}}let u=Math.max(o+X_,n+z_);if(M.warn(`skipping hole, adjusting currentTime from ${n} to ${u}`),this.moved=!0,this.stalled=null,s.currentTime=u,e&&!e.gap){let h=new Error(`fragment loaded with buffer holes, seeking from ${n} to ${u}`);i.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:h,reason:h.message,frag:e})}return u}}return 0}_tryNudgeBuffer(){let{config:e,hls:t,media:i,nudgeRetry:s}=this;if(i===null)return;let n=i.currentTime;if(this.nudgeRetry++,s<e.nudgeMaxRetry){let a=n+(s+1)*e.nudgeOffset,o=new Error(`Nudging 'currentTime' from ${n} to ${a}`);M.warn(o.message),i.currentTime=a,t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_NUDGE_ON_STALL,error:o,fatal:!1})}else{let a=new Error(`Playhead still not moving while enough data buffered @${n} after ${e.nudgeMaxRetry} nudges`);M.error(a.message),t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}},Q_=100,th=class extends qn{constructor(e,t,i){super(e,t,i,"[stream-controller]",ge.MAIN),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(b.ERROR,this.onError,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(b.ERROR,this.onError,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),this.onMediaDetaching()}startLoad(e){if(this.levels){let{lastCurrentTime:t,hls:i}=this;if(this.stopLoad(),this.setInterval(Q_),this.level=-1,!this.startFragRequested){let s=i.startLevel;s===-1&&(i.config.testBandwidth&&this.levels.length>1?(s=0,this.bitrateTest=!0):s=i.nextAutoLevel),this.level=i.nextLoadLevel=s,this.loadedmetadata=!1}t>0&&e===-1&&(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t),this.state=W.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this._forceStartLoad=!0,this.state=W.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case W.WAITING_LEVEL:{var e;let{levels:i,level:s}=this,n=i==null||(e=i[s])==null?void 0:e.details;if(n&&(!n.live||this.levelLastLoaded===this.level)){if(this.waitForCdnTuneIn(n))break;this.state=W.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=W.IDLE;break}break}case W.FRAG_LOADING_WAITING_RETRY:{var t;let i=self.performance.now(),s=this.retryDate;(!s||i>=s||(t=this.media)!=null&&t.seeking)&&(this.resetStartWhenNotLoaded(this.level),this.state=W.IDLE)}break}this.state===W.IDLE&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:e,levelLastLoaded:t,levels:i,media:s}=this,{config:n,nextLoadLevel:a}=e;if(t===null||!s&&(this.startFragRequested||!n.startFragPrefetch)||this.altAudio&&this.audioOnly||!(i!=null&&i[a]))return;let o=i[a],l=this.getMainFwdBufferInfo();if(l===null)return;let d=this.getLevelDetails();if(d&&this._streamEnded(l,d)){let T={};this.altAudio&&(T.type="video"),this.hls.trigger(b.BUFFER_EOS,T),this.state=W.ENDED;return}e.loadLevel!==a&&e.manualLevel===-1&&this.log(`Adapting to level ${a} from level ${this.level}`),this.level=e.nextLoadLevel=a;let c=o.details;if(!c||this.state===W.WAITING_LEVEL||c.live&&this.levelLastLoaded!==a){this.level=a,this.state=W.WAITING_LEVEL;return}let u=l.len,h=this.getMaxBufferLength(o.maxBitrate);if(u>=h)return;this.backtrackFragment&&this.backtrackFragment.start>l.end&&(this.backtrackFragment=null);let f=this.backtrackFragment?this.backtrackFragment.start:l.end,g=this.getNextFragment(f,c);if(this.couldBacktrack&&!this.fragPrevious&&g&&g.sn!=="initSegment"&&this.fragmentTracker.getState(g)!==Tt.OK){var E;let A=((E=this.backtrackFragment)!=null?E:g).sn-c.startSN,k=c.fragments[A-1];k&&g.cc===k.cc&&(g=k,this.fragmentTracker.removeFragment(k))}else this.backtrackFragment&&l.len&&(this.backtrackFragment=null);if(g&&this.isLoopLoading(g,f)){if(!g.gap){let A=this.audioOnly&&!this.altAudio?qe.AUDIO:qe.VIDEO,k=(A===qe.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;k&&this.afterBufferFlushed(k,A,ge.MAIN)}g=this.getNextFragmentLoopLoading(g,c,l,ge.MAIN,h)}!g||(g.initSegment&&!g.initSegment.data&&!this.bitrateTest&&(g=g.initSegment),this.loadFragment(g,o,f))}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);this.fragCurrent=e,s===Tt.NOT_LOADED||s===Tt.PARTIAL?e.sn==="initSegment"?this._loadInitSegment(e,t):this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,t)):(this.startFragRequested=!0,super.loadFragment(e,t,i)):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,ge.MAIN)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:e,media:t}=this;if(t!=null&&t.readyState){let i,s=this.getAppendedFrag(t.currentTime);s&&s.start>1&&this.flushMainBuffer(0,s.start-1);let n=this.getLevelDetails();if(n!=null&&n.live){let o=this.getMainFwdBufferInfo();if(!o||o.len<n.targetduration*2)return}if(!t.paused&&e){let o=this.hls.nextLoadLevel,l=e[o],d=this.fragLastKbps;d&&this.fragCurrent?i=this.fragCurrent.duration*l.maxBitrate/(1e3*d)+1:i=0}else i=0;let a=this.getBufferedFrag(t.currentTime+i);if(a){let o=this.followingBufferedFrag(a);if(o){this.abortCurrentFrag();let l=o.maxStartPTS?o.maxStartPTS:o.start,d=o.duration,c=Math.max(a.end,l+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,d*.5),d*.75));this.flushMainBuffer(c,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case W.KEY_LOADING:case W.FRAG_LOADING:case W.FRAG_LOADING_WAITING_RETRY:case W.PARSING:case W.PARSED:this.state=W.IDLE;break}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(e,t){super.flushMainBuffer(e,t,this.altAudio?"video":null)}onMediaAttached(e,t){super.onMediaAttached(e,t);let i=t.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new eh(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:e}=this;e&&this.onvplaying&&this.onvseeked&&(e.removeEventListener("playing",this.onvplaying),e.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let e=this.media,t=e?e.currentTime:null;ce(t)&&this.log(`Media seeked to ${t.toFixed(3)}`);let i=this.getMainFwdBufferInfo();if(i===null||i.len===0){this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`);return}this.tick()}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(b.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=0,this.levels=this.fragPlaying=this.backtrackFragment=null,this.altAudio=this.audioOnly=!1}onManifestParsed(e,t){let i=!1,s=!1,n;t.levels.forEach(a=>{n=a.audioCodec,n&&(n.indexOf("mp4a.40.2")!==-1&&(i=!0),n.indexOf("mp4a.40.5")!==-1&&(s=!0))}),this.audioCodecSwitch=i&&s&&!T_(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1}onLevelLoading(e,t){let{levels:i}=this;if(!i||this.state!==W.IDLE)return;let s=i[t.level];(!s.details||s.details.live&&this.levelLastLoaded!==t.level||this.waitForCdnTuneIn(s.details))&&(this.state=W.WAITING_LEVEL)}onLevelLoaded(e,t){var i;let{levels:s}=this,n=t.level,a=t.details,o=a.totalduration;if(!s){this.warn(`Levels were reset while loading level ${n}`);return}this.log(`Level ${n} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${o}`);let l=s[n],d=this.fragCurrent;d&&(this.state===W.FRAG_LOADING||this.state===W.FRAG_LOADING_WAITING_RETRY)&&(d.level!==t.level||d.urlId!==l.urlId)&&d.loader&&this.abortCurrentFrag();let c=0;if(a.live||(i=l.details)!=null&&i.live){if(a.fragments[0]||(a.deltaUpdateFailed=!0),a.deltaUpdateFailed)return;c=this.alignPlaylists(a,l.details)}if(l.details=a,this.levelLastLoaded=n,this.hls.trigger(b.LEVEL_UPDATED,{details:a,level:n}),this.state===W.WAITING_LEVEL){if(this.waitForCdnTuneIn(a))return;this.state=W.IDLE}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,c),this.tick()}_handleFragmentLoadProgress(e){var t;let{frag:i,part:s,payload:n}=e,{levels:a}=this;if(!a){this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let o=a[i.level],l=o.details;if(!l){this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),this.fragmentTracker.removeFragment(i);return}let d=o.videoCodec,c=l.PTSKnown||!l.live,u=(t=i.initSegment)==null?void 0:t.data,h=this._getAudioCodec(o),f=this.transmuxer=this.transmuxer||new xl(this.hls,ge.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),g=s?s.index:-1,E=g!==-1,T=new Kn(i.level,i.sn,i.stats.chunkCount,n.byteLength,g,E),A=this.initPTS[i.cc];f.push(n,u,h,d,i,s,l.totalduration,c,T,A)}onAudioTrackSwitching(e,t){let i=this.altAudio;if(!!!t.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let a=this.fragCurrent;a&&(this.log("Switching to main audio track, cancel main fragment load"),a.abortRequests(),this.fragmentTracker.removeFragment(a)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(b.AUDIO_TRACK_SWITCHED,t)}}onAudioTrackSwitched(e,t){let i=t.id,s=!!this.hls.audioTracks[i].url;if(s){let n=this.videoBuffer;n&&this.mediaBuffer!==n&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=s,this.tick()}onBufferCreated(e,t){let i=t.tracks,s,n,a=!1;for(let o in i){let l=i[o];if(l.id==="main"){if(n=o,s=l,o==="video"){let d=i[o];d&&(this.videoBuffer=d.buffer)}}else a=!0}a&&s?(this.log(`Alternate track found, use ${n}.buffered to schedule main fragment loading`),this.mediaBuffer=s.buffer):this.mediaBuffer=this.media}onFragBuffered(e,t){let{frag:i,part:s}=t;if(i&&i.type!==ge.MAIN)return;if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${s?" p: "+s.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),this.state===W.PARSED&&(this.state=W.IDLE);return}let n=s?s.stats:i.stats;this.fragLastKbps=Math.round(8*n.total/(n.buffering.end-n.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,s)}onError(e,t){var i;if(t.fatal){this.state=W.ERROR;return}switch(t.details){case B.FRAG_GAP:case B.FRAG_PARSING_ERROR:case B.FRAG_DECRYPT_ERROR:case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ge.MAIN,t);break;case B.LEVEL_LOAD_ERROR:case B.LEVEL_LOAD_TIMEOUT:case B.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===W.WAITING_LEVEL&&((i=t.context)==null?void 0:i.type)===Ue.LEVEL&&(this.state=W.IDLE);break;case B.BUFFER_FULL_ERROR:if(!t.parent||t.parent!=="main")return;this.reduceLengthAndFlushBuffer(t)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case B.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}checkBuffer(){let{media:e,gapController:t}=this;if(!(!e||!t||!e.readyState)){if(this.loadedmetadata||!je.getBuffered(e).length){let i=this.state!==W.IDLE?this.fragCurrent:null;t.poll(this.lastCurrentTime,i)}this.lastCurrentTime=e.currentTime}}onFragLoadEmergencyAborted(){this.state=W.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(e,{type:t}){if(t!==qe.AUDIO||this.audioOnly&&!this.altAudio){let i=(t===qe.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,t,ge.MAIN)}}onLevelsUpdated(e,t){this.levels=t.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:e}=this;if(!e)return;let t=e.currentTime,i=this.startPosition;if(i>=0&&t<i){if(e.seeking){this.log(`could not seek to ${i}, already seeking at ${t}`);return}let s=je.getBuffered(e),a=(s.length?s.start(0):0)-i;a>0&&(a<this.config.maxBufferHole||a<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${a} to match buffer start`),i+=a,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${t}`),e.currentTime=i}}_getAudioCodec(e){let t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t.indexOf("mp4a.40.5")!==-1?t="mp4a.40.2":t="mp4a.40.5"),t}_loadBitrateTestFrag(e,t){e.bitrateTest=!0,this._doFragLoad(e,t).then(i=>{let{hls:s}=this;if(!i||this.fragContextChanged(e))return;t.fragmentError=0,this.state=W.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;let n=e.stats;n.parsing.start=n.parsing.end=n.buffering.start=n.buffering.end=self.performance.now(),s.trigger(b.FRAG_LOADED,i),e.bitrateTest=!1})}_handleTransmuxComplete(e){var t;let i="main",{hls:s}=this,{remuxResult:n,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:l,part:d,level:c}=o,{video:u,text:h,id3:f,initSegment:g}=n,{details:E}=c,T=this.altAudio?void 0:n.audio;if(this.fragContextChanged(l)){this.fragmentTracker.removeFragment(l);return}if(this.state=W.PARSING,g){if(g!=null&&g.tracks){let L=l.initSegment||l;this._bufferInitSegment(c,g.tracks,L,a),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:L,id:i,tracks:g.tracks})}let A=g.initPTS,k=g.timescale;ce(A)&&(this.initPTS[l.cc]={baseTime:A,timescale:k},s.trigger(b.INIT_PTS_FOUND,{frag:l,id:i,initPTS:A,timescale:k}))}if(u&&E&&l.sn!=="initSegment"){let A=E.fragments[l.sn-1-E.startSN],k=l.sn===E.startSN,L=!A||l.cc>A.cc;if(n.independent!==!1){let{startPTS:N,endPTS:D,startDTS:$,endDTS:O}=u;if(d)d.elementaryStreams[u.type]={startPTS:N,endPTS:D,startDTS:$,endDTS:O};else if(u.firstKeyFrame&&u.independent&&a.id===1&&!L&&(this.couldBacktrack=!0),u.dropped&&u.independent){let H=this.getMainFwdBufferInfo(),q=(H?H.end:this.getLoadPosition())+this.config.maxBufferHole,P=u.firstKeyFramePTS?u.firstKeyFramePTS:N;if(!k&&q<P-this.config.maxBufferHole&&!L){this.backtrack(l);return}else L&&(l.gap=!0);l.setElementaryStreamInfo(u.type,l.start,D,l.start,O,!0)}l.setElementaryStreamInfo(u.type,N,D,$,O),this.backtrackFragment&&(this.backtrackFragment=l),this.bufferFragmentData(u,l,d,a,k||L)}else if(k||L)l.gap=!0;else{this.backtrack(l);return}}if(T){let{startPTS:A,endPTS:k,startDTS:L,endDTS:N}=T;d&&(d.elementaryStreams[qe.AUDIO]={startPTS:A,endPTS:k,startDTS:L,endDTS:N}),l.setElementaryStreamInfo(qe.AUDIO,A,k,L,N),this.bufferFragmentData(T,l,d,a)}if(E&&f!=null&&(t=f.samples)!=null&&t.length){let A={id:i,frag:l,details:E,samples:f.samples};s.trigger(b.FRAG_PARSING_METADATA,A)}if(E&&h){let A={id:i,frag:l,details:E,samples:h.samples};s.trigger(b.FRAG_PARSING_USERDATA,A)}}_bufferInitSegment(e,t,i,s){if(this.state!==W.PARSING)return;this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&delete t.audio;let{audio:n,video:a,audiovideo:o}=t;if(n){let l=e.audioCodec,d=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(l&&(l.indexOf("mp4a.40.5")!==-1?l="mp4a.40.2":l="mp4a.40.5"),n.metadata.channelCount!==1&&d.indexOf("firefox")===-1&&(l="mp4a.40.5")),d.indexOf("android")!==-1&&n.container!=="audio/mpeg"&&(l="mp4a.40.2",this.log(`Android: force audio codec to ${l}`)),e.audioCodec&&e.audioCodec!==l&&this.log(`Swapping manifest audio codec "${e.audioCodec}" for "${l}"`),n.levelCodec=l,n.id="main",this.log(`Init audio buffer, container:${n.container}, codecs[selected/level/parsed]=[${l||""}/${e.audioCodec||""}/${n.codec}]`)}a&&(a.levelCodec=e.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${e.videoCodec||""}/${a.codec}]`)),o&&this.log(`Init audiovideo buffer, container:${o.container}, codecs[level/parsed]=[${e.attrs.CODECS||""}/${o.codec}]`),this.hls.trigger(b.BUFFER_CODECS,t),Object.keys(t).forEach(l=>{let c=t[l].initSegment;c!=null&&c.byteLength&&this.hls.trigger(b.BUFFER_APPENDING,{type:l,data:c,frag:i,part:null,chunkMeta:s,parent:i.type})}),this.tick()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,ge.MAIN)}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=W.IDLE}checkFragmentChanged(){let e=this.media,t=null;if(e&&e.readyState>1&&e.seeking===!1){let i=e.currentTime;if(je.isBuffered(e,i)?t=this.getAppendedFrag(i):je.isBuffered(e,i+.1)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;let s=this.fragPlaying,n=t.level;(!s||t.sn!==s.sn||s.level!==n||t.urlId!==s.urlId)&&(this.fragPlaying=t,this.hls.trigger(b.FRAG_CHANGED,{frag:t}),(!s||s.level!==n)&&this.hls.trigger(b.LEVEL_SWITCHED,{level:n}))}}}get nextLevel(){let e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){let e=this.media;return e?this.fragPlaying||this.getAppendedFrag(e.currentTime):null}get currentProgramDateTime(){let e=this.media;if(e){let t=e.currentTime,i=this.currentFrag;if(i&&ce(t)&&ce(i.programDateTime)){let s=i.programDateTime+(t-i.start)*1e3;return new Date(s)}}return null}get currentLevel(){let e=this.currentFrag;return e?e.level:-1}get nextBufferedFrag(){let e=this.currentFrag;return e?this.followingBufferedFrag(e):null}get forceStartLoad(){return this._forceStartLoad}},vr=class{constructor(e,t=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}sample(e,t){let i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}},ih=class{constructor(e,t,i,s=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new vr(e),this.fast_=new vr(t),this.defaultTTFB_=s,this.ttfb_=new vr(e)}update(e,t){let{slow_:i,fast_:s,ttfb_:n}=this;i.halfLife!==e&&(this.slow_=new vr(e,i.getEstimate(),i.getTotalWeight())),s.halfLife!==t&&(this.fast_=new vr(t,s.getEstimate(),s.getTotalWeight())),n.halfLife!==e&&(this.ttfb_=new vr(e,n.getEstimate(),n.getTotalWeight()))}sample(e,t){e=Math.max(e,this.minDelayMs_);let i=8*t,s=e/1e3,n=i/s;this.fast_.sample(s,n),this.slow_.sample(s,n)}sampleTTFB(e){let t=e/1e3,i=Math.sqrt(2)*Math.exp(-Math.pow(t,2)/2);this.ttfb_.sample(i,Math.max(e,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}},rh=class{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=0,this._nextAutoLevel=-1,this.timer=-1,this.onCheck=this._abandonRulesCheck.bind(this),this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this.hls=e;let t=e.config;this.bwEstimator=new ih(t.abrEwmaSlowVoD,t.abrEwmaFastVoD,t.abrEwmaDefaultEstimate),this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this)}unregisterListeners(){let{hls:e}=this;e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this)}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this.onCheck=null,this.fragCurrent=this.partCurrent=null}onFragLoading(e,t){var i;let s=t.frag;this.ignoreFragment(s)||(this.fragCurrent=s,this.partCurrent=(i=t.part)!=null?i:null,this.clearTimer(),this.timer=self.setInterval(this.onCheck,100))}onLevelSwitching(e,t){this.clearTimer()}getTimeToLoadFrag(e,t,i,s){let n=e+i/t,a=s?this.lastLevelLoadSec:0;return n+a}onLevelLoaded(e,t){let i=this.hls.config,{total:s,bwEstimate:n}=t.stats;ce(s)&&ce(n)&&(this.lastLevelLoadSec=8*s/n),t.details.live?this.bwEstimator.update(i.abrEwmaSlowLive,i.abrEwmaFastLive):this.bwEstimator.update(i.abrEwmaSlowVoD,i.abrEwmaFastVoD)}_abandonRulesCheck(){let{fragCurrent:e,partCurrent:t,hls:i}=this,{autoLevelEnabled:s,media:n}=i;if(!e||!n)return;let a=performance.now(),o=t?t.stats:e.stats,l=t?t.duration:e.duration,d=a-o.loading.start;if(o.aborted||o.loaded&&o.loaded===o.total||e.level===0){this.clearTimer(),this._nextAutoLevel=-1;return}if(!s||n.paused||!n.playbackRate||!n.readyState)return;let c=i.mainForwardBufferInfo;if(c===null)return;let u=this.bwEstimator.getEstimateTTFB(),h=Math.abs(n.playbackRate);if(d<=Math.max(u,1e3*(l/(h*2))))return;let f=c.len/h;if(f>=2*l/h)return;let g=o.loading.first?o.loading.first-o.loading.start:-1,E=o.loaded&&g>-1,T=this.bwEstimator.getEstimate(),{levels:A,minAutoLevel:k}=i,L=A[e.level],N=o.total||Math.max(o.loaded,Math.round(l*L.maxBitrate/8)),D=d-g;D<1&&E&&(D=Math.min(d,o.loaded*8/T));let $=E?o.loaded*1e3/D:0,O=$?(N-o.loaded)/$:N*8/T+u/1e3;if(O<=f)return;let H=$?$*8:T,q=Number.POSITIVE_INFINITY,P;for(P=e.level-1;P>k;P--){let X=A[P].maxBitrate;if(q=this.getTimeToLoadFrag(u/1e3,H,l*X,!A[P].details),q<f)break}q>=O||q>l*10||(i.nextLoadLevel=P,E?this.bwEstimator.sample(d-Math.min(u,g),o.loaded):this.bwEstimator.sampleTTFB(d),this.clearTimer(),M.warn(`[abr] Fragment ${e.sn}${t?" part "+t.index:""} of level ${e.level} is loading too slowly;
|
|
956
|
+
initSegmentChange: ${G}`);let P=new Zu(i,s,t,o,c);this.configureTransmuxer(P)}if(this.frag=n,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:e,decryptdata:E,chunkMeta:d,state:q},e instanceof ArrayBuffer?[e]:[]);else if(f){let P=f.push(e,E,d,q);cl(P)?(f.async=!0,P.then(X=>{this.handleTransmuxComplete(X)}).catch(X=>{this.transmuxerError(X,d,"transmuxer-interface push error")})):(f.async=!1,this.handleTransmuxComplete(P))}}flush(e){e.transmuxing.start=self.performance.now();let{transmuxer:t}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:e});else if(t){let i=t.flush(e);cl(i)||t.async?(cl(i)||(i=Promise.resolve(i)),i.then(n=>{this.handleFlushResult(n,e)}).catch(n=>{this.transmuxerError(n,e,"transmuxer-interface flush error")})):this.handleFlushResult(i,e)}}transmuxerError(e,t,i){!this.hls||(this.error=e,this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_PARSING_ERROR,chunkMeta:t,fatal:!1,error:e,err:e,reason:i}))}handleFlushResult(e,t){e.forEach(i=>{this.handleTransmuxComplete(i)}),this.onFlush(t)}onWorkerMessage(e){let t=e.data,i=this.hls;switch(t.event){case"init":{var s;let n=(s=this.workerContext)==null?void 0:s.objectURL;n&&self.URL.revokeObjectURL(n);break}case"transmuxComplete":{this.handleTransmuxComplete(t.data);break}case"flush":{this.onFlush(t.data);break}case"workerLog":M[t.data.logType]&&M[t.data.logType](t.data.message);break;default:{t.data=t.data||{},t.data.frag=this.frag,t.data.id=this.id,i.trigger(t.event,t.data);break}}}configureTransmuxer(e){let{transmuxer:t}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:e}):t&&t.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}},j_=250,gu=2,z_=.1,X_=.05,eh=class{constructor(e,t,i,s){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=e,this.media=t,this.fragmentTracker=i,this.hls=s}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(e,t){let{config:i,media:s,stalled:n}=this;if(s===null)return;let{currentTime:a,seeking:o}=s,l=this.seeking&&!o,d=!this.seeking&&o;if(this.seeking=o,a!==e){if(this.moved=!0,n!==null){if(this.stallReported){let A=self.performance.now()-n;M.warn(`playback not stuck anymore @${a}, after ${Math.round(A)}ms`),this.stallReported=!1}this.stalled=null,this.nudgeRetry=0}return}if(d||l){this.stalled=null;return}if(s.paused&&!o||s.ended||s.playbackRate===0||!je.getBuffered(s).length)return;let c=je.bufferInfo(s,a,0),u=c.len>0,h=c.nextStart||0;if(!u&&!h)return;if(o){let A=c.len>gu,k=!h||t&&t.start<=a||h-a>gu&&!this.fragmentTracker.getPartialFragment(a);if(A||k)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var f;let A=Math.max(h,c.start||0)-a,k=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,N=(k==null||(f=k.details)==null?void 0:f.live)?k.details.targetduration*2:gu,D=this.fragmentTracker.getPartialFragment(a);if(A>0&&(A<=N||D)){this._trySkipBufferHole(D);return}}let g=self.performance.now();if(n===null){this.stalled=g;return}let E=g-n;if(!o&&E>=j_&&(this._reportStall(c),!this.media))return;let T=je.bufferInfo(s,a,i.maxBufferHole);this._tryFixBufferStall(T,E)}_tryFixBufferStall(e,t){let{config:i,fragmentTracker:s,media:n}=this;if(n===null)return;let a=n.currentTime,o=s.getPartialFragment(a);o&&(this._trySkipBufferHole(o)||!this.media)||(e.len>i.maxBufferHole||e.nextStart&&e.nextStart-a<i.maxBufferHole)&&t>i.highBufferWatchdogPeriod*1e3&&(M.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(e){let{hls:t,media:i,stallReported:s}=this;if(!s&&i){this.stallReported=!0;let n=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(e)})`);M.warn(n.message),t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_STALLED_ERROR,fatal:!1,error:n,buffer:e.len})}}_trySkipBufferHole(e){let{config:t,hls:i,media:s}=this;if(s===null)return 0;let n=s.currentTime,a=je.bufferInfo(s,n,0),o=n<a.start?a.start:a.nextStart;if(o){let l=a.len<=t.maxBufferHole,d=a.len>0&&a.len<1&&s.readyState<3,c=o-n;if(c>0&&(l||d)){if(c>t.maxBufferHole){let{fragmentTracker:h}=this,f=!1;if(n===0){let g=h.getAppendedFrag(0,ge.MAIN);g&&o<g.end&&(f=!0)}if(!f){let g=e||h.getAppendedFrag(n,ge.MAIN);if(g){let E=!1,T=g.end;for(;T<o;){let A=h.getPartialFragment(T);if(A)T+=A.duration;else{E=!0;break}}if(E)return 0}}}let u=Math.max(o+X_,n+z_);if(M.warn(`skipping hole, adjusting currentTime from ${n} to ${u}`),this.moved=!0,this.stalled=null,s.currentTime=u,e&&!e.gap){let h=new Error(`fragment loaded with buffer holes, seeking from ${n} to ${u}`);i.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:h,reason:h.message,frag:e})}return u}}return 0}_tryNudgeBuffer(){let{config:e,hls:t,media:i,nudgeRetry:s}=this;if(i===null)return;let n=i.currentTime;if(this.nudgeRetry++,s<e.nudgeMaxRetry){let a=n+(s+1)*e.nudgeOffset,o=new Error(`Nudging 'currentTime' from ${n} to ${a}`);M.warn(o.message),i.currentTime=a,t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_NUDGE_ON_STALL,error:o,fatal:!1})}else{let a=new Error(`Playhead still not moving while enough data buffered @${n} after ${e.nudgeMaxRetry} nudges`);M.error(a.message),t.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}},Q_=100,th=class extends qn{constructor(e,t,i){super(e,t,i,"[stream-controller]",ge.MAIN),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(b.ERROR,this.onError,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(b.ERROR,this.onError,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),this.onMediaDetaching()}startLoad(e){if(this.levels){let{lastCurrentTime:t,hls:i}=this;if(this.stopLoad(),this.setInterval(Q_),this.level=-1,!this.startFragRequested){let s=i.startLevel;s===-1&&(i.config.testBandwidth&&this.levels.length>1?(s=0,this.bitrateTest=!0):s=i.nextAutoLevel),this.level=i.nextLoadLevel=s,this.loadedmetadata=!1}t>0&&e===-1&&(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t),this.state=W.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this._forceStartLoad=!0,this.state=W.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case W.WAITING_LEVEL:{var e;let{levels:i,level:s}=this,n=i==null||(e=i[s])==null?void 0:e.details;if(n&&(!n.live||this.levelLastLoaded===this.level)){if(this.waitForCdnTuneIn(n))break;this.state=W.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=W.IDLE;break}break}case W.FRAG_LOADING_WAITING_RETRY:{var t;let i=self.performance.now(),s=this.retryDate;(!s||i>=s||(t=this.media)!=null&&t.seeking)&&(this.resetStartWhenNotLoaded(this.level),this.state=W.IDLE)}break}this.state===W.IDLE&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:e,levelLastLoaded:t,levels:i,media:s}=this,{config:n,nextLoadLevel:a}=e;if(t===null||!s&&(this.startFragRequested||!n.startFragPrefetch)||this.altAudio&&this.audioOnly||!(i!=null&&i[a]))return;let o=i[a],l=this.getMainFwdBufferInfo();if(l===null)return;let d=this.getLevelDetails();if(d&&this._streamEnded(l,d)){let T={};this.altAudio&&(T.type="video"),this.hls.trigger(b.BUFFER_EOS,T),this.state=W.ENDED;return}e.loadLevel!==a&&e.manualLevel===-1&&this.log(`Adapting to level ${a} from level ${this.level}`),this.level=e.nextLoadLevel=a;let c=o.details;if(!c||this.state===W.WAITING_LEVEL||c.live&&this.levelLastLoaded!==a){this.level=a,this.state=W.WAITING_LEVEL;return}let u=l.len,h=this.getMaxBufferLength(o.maxBitrate);if(u>=h)return;this.backtrackFragment&&this.backtrackFragment.start>l.end&&(this.backtrackFragment=null);let f=this.backtrackFragment?this.backtrackFragment.start:l.end,g=this.getNextFragment(f,c);if(this.couldBacktrack&&!this.fragPrevious&&g&&g.sn!=="initSegment"&&this.fragmentTracker.getState(g)!==Tt.OK){var E;let A=((E=this.backtrackFragment)!=null?E:g).sn-c.startSN,k=c.fragments[A-1];k&&g.cc===k.cc&&(g=k,this.fragmentTracker.removeFragment(k))}else this.backtrackFragment&&l.len&&(this.backtrackFragment=null);if(g&&this.isLoopLoading(g,f)){if(!g.gap){let A=this.audioOnly&&!this.altAudio?qe.AUDIO:qe.VIDEO,k=(A===qe.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;k&&this.afterBufferFlushed(k,A,ge.MAIN)}g=this.getNextFragmentLoopLoading(g,c,l,ge.MAIN,h)}!g||(g.initSegment&&!g.initSegment.data&&!this.bitrateTest&&(g=g.initSegment),this.loadFragment(g,o,f))}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);this.fragCurrent=e,s===Tt.NOT_LOADED||s===Tt.PARTIAL?e.sn==="initSegment"?this._loadInitSegment(e,t):this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,t)):(this.startFragRequested=!0,super.loadFragment(e,t,i)):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,ge.MAIN)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:e,media:t}=this;if(t!=null&&t.readyState){let i,s=this.getAppendedFrag(t.currentTime);s&&s.start>1&&this.flushMainBuffer(0,s.start-1);let n=this.getLevelDetails();if(n!=null&&n.live){let o=this.getMainFwdBufferInfo();if(!o||o.len<n.targetduration*2)return}if(!t.paused&&e){let o=this.hls.nextLoadLevel,l=e[o],d=this.fragLastKbps;d&&this.fragCurrent?i=this.fragCurrent.duration*l.maxBitrate/(1e3*d)+1:i=0}else i=0;let a=this.getBufferedFrag(t.currentTime+i);if(a){let o=this.followingBufferedFrag(a);if(o){this.abortCurrentFrag();let l=o.maxStartPTS?o.maxStartPTS:o.start,d=o.duration,c=Math.max(a.end,l+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,d*.5),d*.75));this.flushMainBuffer(c,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case W.KEY_LOADING:case W.FRAG_LOADING:case W.FRAG_LOADING_WAITING_RETRY:case W.PARSING:case W.PARSED:this.state=W.IDLE;break}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(e,t){super.flushMainBuffer(e,t,this.altAudio?"video":null)}onMediaAttached(e,t){super.onMediaAttached(e,t);let i=t.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new eh(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:e}=this;e&&this.onvplaying&&this.onvseeked&&(e.removeEventListener("playing",this.onvplaying),e.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let e=this.media,t=e?e.currentTime:null;ce(t)&&this.log(`Media seeked to ${t.toFixed(3)}`);let i=this.getMainFwdBufferInfo();if(i===null||i.len===0){this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`);return}this.tick()}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(b.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=0,this.levels=this.fragPlaying=this.backtrackFragment=null,this.altAudio=this.audioOnly=!1}onManifestParsed(e,t){let i=!1,s=!1,n;t.levels.forEach(a=>{n=a.audioCodec,n&&(n.indexOf("mp4a.40.2")!==-1&&(i=!0),n.indexOf("mp4a.40.5")!==-1&&(s=!0))}),this.audioCodecSwitch=i&&s&&!T_(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1}onLevelLoading(e,t){let{levels:i}=this;if(!i||this.state!==W.IDLE)return;let s=i[t.level];(!s.details||s.details.live&&this.levelLastLoaded!==t.level||this.waitForCdnTuneIn(s.details))&&(this.state=W.WAITING_LEVEL)}onLevelLoaded(e,t){var i;let{levels:s}=this,n=t.level,a=t.details,o=a.totalduration;if(!s){this.warn(`Levels were reset while loading level ${n}`);return}this.log(`Level ${n} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${o}`);let l=s[n],d=this.fragCurrent;d&&(this.state===W.FRAG_LOADING||this.state===W.FRAG_LOADING_WAITING_RETRY)&&(d.level!==t.level||d.urlId!==l.urlId)&&d.loader&&this.abortCurrentFrag();let c=0;if(a.live||(i=l.details)!=null&&i.live){if(a.fragments[0]||(a.deltaUpdateFailed=!0),a.deltaUpdateFailed)return;c=this.alignPlaylists(a,l.details)}if(l.details=a,this.levelLastLoaded=n,this.hls.trigger(b.LEVEL_UPDATED,{details:a,level:n}),this.state===W.WAITING_LEVEL){if(this.waitForCdnTuneIn(a))return;this.state=W.IDLE}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,c),this.tick()}_handleFragmentLoadProgress(e){var t;let{frag:i,part:s,payload:n}=e,{levels:a}=this;if(!a){this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let o=a[i.level],l=o.details;if(!l){this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),this.fragmentTracker.removeFragment(i);return}let d=o.videoCodec,c=l.PTSKnown||!l.live,u=(t=i.initSegment)==null?void 0:t.data,h=this._getAudioCodec(o),f=this.transmuxer=this.transmuxer||new xl(this.hls,ge.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),g=s?s.index:-1,E=g!==-1,T=new Kn(i.level,i.sn,i.stats.chunkCount,n.byteLength,g,E),A=this.initPTS[i.cc];f.push(n,u,h,d,i,s,l.totalduration,c,T,A)}onAudioTrackSwitching(e,t){let i=this.altAudio;if(!!!t.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let a=this.fragCurrent;a&&(this.log("Switching to main audio track, cancel main fragment load"),a.abortRequests(),this.fragmentTracker.removeFragment(a)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(b.AUDIO_TRACK_SWITCHED,t)}}onAudioTrackSwitched(e,t){let i=t.id,s=!!this.hls.audioTracks[i].url;if(s){let n=this.videoBuffer;n&&this.mediaBuffer!==n&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=s,this.tick()}onBufferCreated(e,t){let i=t.tracks,s,n,a=!1;for(let o in i){let l=i[o];if(l.id==="main"){if(n=o,s=l,o==="video"){let d=i[o];d&&(this.videoBuffer=d.buffer)}}else a=!0}a&&s?(this.log(`Alternate track found, use ${n}.buffered to schedule main fragment loading`),this.mediaBuffer=s.buffer):this.mediaBuffer=this.media}onFragBuffered(e,t){let{frag:i,part:s}=t;if(i&&i.type!==ge.MAIN)return;if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${s?" p: "+s.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),this.state===W.PARSED&&(this.state=W.IDLE);return}let n=s?s.stats:i.stats;this.fragLastKbps=Math.round(8*n.total/(n.buffering.end-n.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,s)}onError(e,t){var i;if(t.fatal){this.state=W.ERROR;return}switch(t.details){case B.FRAG_GAP:case B.FRAG_PARSING_ERROR:case B.FRAG_DECRYPT_ERROR:case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ge.MAIN,t);break;case B.LEVEL_LOAD_ERROR:case B.LEVEL_LOAD_TIMEOUT:case B.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===W.WAITING_LEVEL&&((i=t.context)==null?void 0:i.type)===Ue.LEVEL&&(this.state=W.IDLE);break;case B.BUFFER_FULL_ERROR:if(!t.parent||t.parent!=="main")return;this.reduceLengthAndFlushBuffer(t)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case B.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}checkBuffer(){let{media:e,gapController:t}=this;if(!(!e||!t||!e.readyState)){if(this.loadedmetadata||!je.getBuffered(e).length){let i=this.state!==W.IDLE?this.fragCurrent:null;t.poll(this.lastCurrentTime,i)}this.lastCurrentTime=e.currentTime}}onFragLoadEmergencyAborted(){this.state=W.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(e,{type:t}){if(t!==qe.AUDIO||this.audioOnly&&!this.altAudio){let i=(t===qe.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,t,ge.MAIN)}}onLevelsUpdated(e,t){this.levels=t.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:e}=this;if(!e)return;let t=e.currentTime,i=this.startPosition;if(i>=0&&t<i){if(e.seeking){this.log(`could not seek to ${i}, already seeking at ${t}`);return}let s=je.getBuffered(e),a=(s.length?s.start(0):0)-i;a>0&&(a<this.config.maxBufferHole||a<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${a} to match buffer start`),i+=a,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${t}`),e.currentTime=i}}_getAudioCodec(e){let t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t.indexOf("mp4a.40.5")!==-1?t="mp4a.40.2":t="mp4a.40.5"),t}_loadBitrateTestFrag(e,t){e.bitrateTest=!0,this._doFragLoad(e,t).then(i=>{let{hls:s}=this;if(!i||this.fragContextChanged(e))return;t.fragmentError=0,this.state=W.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;let n=e.stats;n.parsing.start=n.parsing.end=n.buffering.start=n.buffering.end=self.performance.now(),s.trigger(b.FRAG_LOADED,i),e.bitrateTest=!1})}_handleTransmuxComplete(e){var t;let i="main",{hls:s}=this,{remuxResult:n,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:l,part:d,level:c}=o,{video:u,text:h,id3:f,initSegment:g}=n,{details:E}=c,T=this.altAudio?void 0:n.audio;if(this.fragContextChanged(l)){this.fragmentTracker.removeFragment(l);return}if(this.state=W.PARSING,g){if(g!=null&&g.tracks){let L=l.initSegment||l;this._bufferInitSegment(c,g.tracks,L,a),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:L,id:i,tracks:g.tracks})}let A=g.initPTS,k=g.timescale;ce(A)&&(this.initPTS[l.cc]={baseTime:A,timescale:k},s.trigger(b.INIT_PTS_FOUND,{frag:l,id:i,initPTS:A,timescale:k}))}if(u&&E&&l.sn!=="initSegment"){let A=E.fragments[l.sn-1-E.startSN],k=l.sn===E.startSN,L=!A||l.cc>A.cc;if(n.independent!==!1){let{startPTS:N,endPTS:D,startDTS:$,endDTS:O}=u;if(d)d.elementaryStreams[u.type]={startPTS:N,endPTS:D,startDTS:$,endDTS:O};else if(u.firstKeyFrame&&u.independent&&a.id===1&&!L&&(this.couldBacktrack=!0),u.dropped&&u.independent){let G=this.getMainFwdBufferInfo(),q=(G?G.end:this.getLoadPosition())+this.config.maxBufferHole,P=u.firstKeyFramePTS?u.firstKeyFramePTS:N;if(!k&&q<P-this.config.maxBufferHole&&!L){this.backtrack(l);return}else L&&(l.gap=!0);l.setElementaryStreamInfo(u.type,l.start,D,l.start,O,!0)}l.setElementaryStreamInfo(u.type,N,D,$,O),this.backtrackFragment&&(this.backtrackFragment=l),this.bufferFragmentData(u,l,d,a,k||L)}else if(k||L)l.gap=!0;else{this.backtrack(l);return}}if(T){let{startPTS:A,endPTS:k,startDTS:L,endDTS:N}=T;d&&(d.elementaryStreams[qe.AUDIO]={startPTS:A,endPTS:k,startDTS:L,endDTS:N}),l.setElementaryStreamInfo(qe.AUDIO,A,k,L,N),this.bufferFragmentData(T,l,d,a)}if(E&&f!=null&&(t=f.samples)!=null&&t.length){let A={id:i,frag:l,details:E,samples:f.samples};s.trigger(b.FRAG_PARSING_METADATA,A)}if(E&&h){let A={id:i,frag:l,details:E,samples:h.samples};s.trigger(b.FRAG_PARSING_USERDATA,A)}}_bufferInitSegment(e,t,i,s){if(this.state!==W.PARSING)return;this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&delete t.audio;let{audio:n,video:a,audiovideo:o}=t;if(n){let l=e.audioCodec,d=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(l&&(l.indexOf("mp4a.40.5")!==-1?l="mp4a.40.2":l="mp4a.40.5"),n.metadata.channelCount!==1&&d.indexOf("firefox")===-1&&(l="mp4a.40.5")),d.indexOf("android")!==-1&&n.container!=="audio/mpeg"&&(l="mp4a.40.2",this.log(`Android: force audio codec to ${l}`)),e.audioCodec&&e.audioCodec!==l&&this.log(`Swapping manifest audio codec "${e.audioCodec}" for "${l}"`),n.levelCodec=l,n.id="main",this.log(`Init audio buffer, container:${n.container}, codecs[selected/level/parsed]=[${l||""}/${e.audioCodec||""}/${n.codec}]`)}a&&(a.levelCodec=e.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${e.videoCodec||""}/${a.codec}]`)),o&&this.log(`Init audiovideo buffer, container:${o.container}, codecs[level/parsed]=[${e.attrs.CODECS||""}/${o.codec}]`),this.hls.trigger(b.BUFFER_CODECS,t),Object.keys(t).forEach(l=>{let c=t[l].initSegment;c!=null&&c.byteLength&&this.hls.trigger(b.BUFFER_APPENDING,{type:l,data:c,frag:i,part:null,chunkMeta:s,parent:i.type})}),this.tick()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,ge.MAIN)}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=W.IDLE}checkFragmentChanged(){let e=this.media,t=null;if(e&&e.readyState>1&&e.seeking===!1){let i=e.currentTime;if(je.isBuffered(e,i)?t=this.getAppendedFrag(i):je.isBuffered(e,i+.1)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;let s=this.fragPlaying,n=t.level;(!s||t.sn!==s.sn||s.level!==n||t.urlId!==s.urlId)&&(this.fragPlaying=t,this.hls.trigger(b.FRAG_CHANGED,{frag:t}),(!s||s.level!==n)&&this.hls.trigger(b.LEVEL_SWITCHED,{level:n}))}}}get nextLevel(){let e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){let e=this.media;return e?this.fragPlaying||this.getAppendedFrag(e.currentTime):null}get currentProgramDateTime(){let e=this.media;if(e){let t=e.currentTime,i=this.currentFrag;if(i&&ce(t)&&ce(i.programDateTime)){let s=i.programDateTime+(t-i.start)*1e3;return new Date(s)}}return null}get currentLevel(){let e=this.currentFrag;return e?e.level:-1}get nextBufferedFrag(){let e=this.currentFrag;return e?this.followingBufferedFrag(e):null}get forceStartLoad(){return this._forceStartLoad}},vr=class{constructor(e,t=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}sample(e,t){let i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}},ih=class{constructor(e,t,i,s=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new vr(e),this.fast_=new vr(t),this.defaultTTFB_=s,this.ttfb_=new vr(e)}update(e,t){let{slow_:i,fast_:s,ttfb_:n}=this;i.halfLife!==e&&(this.slow_=new vr(e,i.getEstimate(),i.getTotalWeight())),s.halfLife!==t&&(this.fast_=new vr(t,s.getEstimate(),s.getTotalWeight())),n.halfLife!==e&&(this.ttfb_=new vr(e,n.getEstimate(),n.getTotalWeight()))}sample(e,t){e=Math.max(e,this.minDelayMs_);let i=8*t,s=e/1e3,n=i/s;this.fast_.sample(s,n),this.slow_.sample(s,n)}sampleTTFB(e){let t=e/1e3,i=Math.sqrt(2)*Math.exp(-Math.pow(t,2)/2);this.ttfb_.sample(i,Math.max(e,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}},rh=class{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=0,this._nextAutoLevel=-1,this.timer=-1,this.onCheck=this._abandonRulesCheck.bind(this),this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this.hls=e;let t=e.config;this.bwEstimator=new ih(t.abrEwmaSlowVoD,t.abrEwmaFastVoD,t.abrEwmaDefaultEstimate),this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this)}unregisterListeners(){let{hls:e}=this;e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this)}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this.onCheck=null,this.fragCurrent=this.partCurrent=null}onFragLoading(e,t){var i;let s=t.frag;this.ignoreFragment(s)||(this.fragCurrent=s,this.partCurrent=(i=t.part)!=null?i:null,this.clearTimer(),this.timer=self.setInterval(this.onCheck,100))}onLevelSwitching(e,t){this.clearTimer()}getTimeToLoadFrag(e,t,i,s){let n=e+i/t,a=s?this.lastLevelLoadSec:0;return n+a}onLevelLoaded(e,t){let i=this.hls.config,{total:s,bwEstimate:n}=t.stats;ce(s)&&ce(n)&&(this.lastLevelLoadSec=8*s/n),t.details.live?this.bwEstimator.update(i.abrEwmaSlowLive,i.abrEwmaFastLive):this.bwEstimator.update(i.abrEwmaSlowVoD,i.abrEwmaFastVoD)}_abandonRulesCheck(){let{fragCurrent:e,partCurrent:t,hls:i}=this,{autoLevelEnabled:s,media:n}=i;if(!e||!n)return;let a=performance.now(),o=t?t.stats:e.stats,l=t?t.duration:e.duration,d=a-o.loading.start;if(o.aborted||o.loaded&&o.loaded===o.total||e.level===0){this.clearTimer(),this._nextAutoLevel=-1;return}if(!s||n.paused||!n.playbackRate||!n.readyState)return;let c=i.mainForwardBufferInfo;if(c===null)return;let u=this.bwEstimator.getEstimateTTFB(),h=Math.abs(n.playbackRate);if(d<=Math.max(u,1e3*(l/(h*2))))return;let f=c.len/h;if(f>=2*l/h)return;let g=o.loading.first?o.loading.first-o.loading.start:-1,E=o.loaded&&g>-1,T=this.bwEstimator.getEstimate(),{levels:A,minAutoLevel:k}=i,L=A[e.level],N=o.total||Math.max(o.loaded,Math.round(l*L.maxBitrate/8)),D=d-g;D<1&&E&&(D=Math.min(d,o.loaded*8/T));let $=E?o.loaded*1e3/D:0,O=$?(N-o.loaded)/$:N*8/T+u/1e3;if(O<=f)return;let G=$?$*8:T,q=Number.POSITIVE_INFINITY,P;for(P=e.level-1;P>k;P--){let X=A[P].maxBitrate;if(q=this.getTimeToLoadFrag(u/1e3,G,l*X,!A[P].details),q<f)break}q>=O||q>l*10||(i.nextLoadLevel=P,E?this.bwEstimator.sample(d-Math.min(u,g),o.loaded):this.bwEstimator.sampleTTFB(d),this.clearTimer(),M.warn(`[abr] Fragment ${e.sn}${t?" part "+t.index:""} of level ${e.level} is loading too slowly;
|
|
957
957
|
Time to underbuffer: ${f.toFixed(3)} s
|
|
958
958
|
Estimated load time for current fragment: ${O.toFixed(3)} s
|
|
959
959
|
Estimated load time for down switch fragment: ${q.toFixed(3)} s
|
|
960
960
|
TTFB estimate: ${g}
|
|
961
961
|
Current BW estimate: ${ce(T)?(T/1024).toFixed(3):"Unknown"} Kb/s
|
|
962
962
|
New BW estimate: ${(this.bwEstimator.getEstimate()/1024).toFixed(3)} Kb/s
|
|
963
|
-
Aborting and switching to level ${P}`),e.loader&&(this.fragCurrent=this.partCurrent=null,e.abortRequests()),i.trigger(b.FRAG_LOAD_EMERGENCY_ABORTED,{frag:e,part:t,stats:o}))}onFragLoaded(e,{frag:t,part:i}){let s=i?i.stats:t.stats;if(t.type===ge.MAIN&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),this.lastLoadedFragLevel=t.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){let n=i?i.duration:t.duration,a=this.hls.levels[t.level],o=(a.loaded?a.loaded.bytes:0)+s.loaded,l=(a.loaded?a.loaded.duration:0)+n;a.loaded={bytes:o,duration:l},a.realBitrate=Math.round(8*o/l)}if(t.bitrateTest){let n={stats:s,frag:t,part:i,id:t.type};this.onFragBuffered(b.FRAG_BUFFERED,n),t.bitrateTest=!1}}}onFragBuffered(e,t){let{frag:i,part:s}=t,n=s!=null&&s.stats.loaded?s.stats:i.stats;if(n.aborted||this.ignoreFragment(i))return;let a=n.parsing.end-n.loading.start-Math.min(n.loading.first-n.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,n.loaded),n.bwEstimate=this.bwEstimator.getEstimate(),i.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ge.MAIN||e.sn==="initSegment"}clearTimer(){self.clearInterval(this.timer)}get nextAutoLevel(){let e=this._nextAutoLevel,t=this.bwEstimator;if(e!==-1&&!t.canEstimate())return e;let i=this.getNextABRAutoLevel();if(e!==-1){let s=this.hls.levels;if(s.length>Math.max(e,i)&&s[e].loadError<=s[i].loadError)return e}return e!==-1&&(i=Math.min(e,i)),i}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:t,hls:i}=this,{maxAutoLevel:s,config:n,minAutoLevel:a,media:o}=i,l=t?t.duration:e?e.duration:0,d=o&&o.playbackRate!==0?Math.abs(o.playbackRate):1,c=this.bwEstimator?this.bwEstimator.getEstimate():n.abrEwmaDefaultEstimate,u=i.mainForwardBufferInfo,h=(u?u.len:0)/d,f=this.findBestLevel(c,a,s,h,n.abrBandWidthFactor,n.abrBandWidthUpFactor);if(f>=0)return f;M.trace(`[abr] ${h?"rebuffering expected":"buffer is empty"}, finding optimal quality level`);let g=l?Math.min(l,n.maxStarvationDelay):n.maxStarvationDelay,E=n.abrBandWidthFactor,T=n.abrBandWidthUpFactor;if(!h){let A=this.bitrateTestDelay;A&&(g=(l?Math.min(l,n.maxLoadingDelay):n.maxLoadingDelay)-A,M.trace(`[abr] bitrate test took ${Math.round(1e3*A)}ms, set first fragment max fetchDuration to ${Math.round(1e3*g)} ms`),E=T=1)}return f=this.findBestLevel(c,a,s,h+g,E,T),Math.max(f,0)}findBestLevel(e,t,i,s,n,a){var o;let{fragCurrent:l,partCurrent:d,lastLoadedFragLevel:c}=this,{levels:u}=this.hls,h=u[c],f=!!(h!=null&&(o=h.details)!=null&&o.live),g=h==null?void 0:h.codecSet,E=d?d.duration:l?l.duration:0,T=this.bwEstimator.getEstimateTTFB()/1e3,A=t,k=-1;for(let L=i;L>=t;L--){let N=u[L];if(!N||g&&N.codecSet!==g){N&&(A=Math.min(L,A),k=Math.max(L,k));continue}k!==-1&&M.trace(`[abr] Skipped level(s) ${A}-${k} with CODECS:"${u[k].attrs.CODECS}"; not compatible with "${h.attrs.CODECS}"`);let D=N.details,$=(d?D==null?void 0:D.partTarget:D==null?void 0:D.averagetargetduration)||E,O;L<=c?O=n*e:O=a*e;let H=u[L].maxBitrate,q=this.getTimeToLoadFrag(T,O,H*$,D===void 0);if(M.trace(`[abr] level:${L} adjustedbw-bitrate:${Math.round(O-H)} avgDuration:${$.toFixed(1)} maxFetchDuration:${s.toFixed(1)} fetchDuration:${q.toFixed(1)}`),O>H&&(q===0||!ce(q)||f&&!this.bitrateTestDelay||q<s))return L}return-1}set nextAutoLevel(e){this._nextAutoLevel=e}},Il=class{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){let{chunks:e,dataLength:t}=this,i;if(e.length)e.length===1?i=e[0]:i=Z_(e,t);else return new Uint8Array(0);return this.reset(),i}reset(){this.chunks.length=0,this.dataLength=0}};function Z_(r,e){let t=new Uint8Array(e),i=0;for(let s=0;s<r.length;s++){let n=r[s];t.set(n,i),i+=n.length}return t}var kg=100,sh=class extends qn{constructor(e,t,i){super(e,t,i,"[audio-stream-controller]",ge.AUDIO),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:n}){if(i==="main"){let a=t.cc;this.initPTS[t.cc]={baseTime:s,timescale:n},this.log(`InitPTS for cc: ${a} found from main: ${s}`),this.videoTrackCC=a,this.state===W.WAITING_INIT_PTS&&this.tick()}}startLoad(e){if(!this.levels){this.startPosition=e,this.state=W.STOPPED;return}let t=this.lastCurrentTime;this.stopLoad(),this.setInterval(kg),t>0&&e===-1?(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t,this.state=W.IDLE):(this.loadedmetadata=!1,this.state=W.WAITING_TRACK),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case W.IDLE:this.doTickIdle();break;case W.WAITING_TRACK:{var e;let{levels:i,trackId:s}=this,n=i==null||(e=i[s])==null?void 0:e.details;if(n){if(this.waitForCdnTuneIn(n))break;this.state=W.WAITING_INIT_PTS}break}case W.FRAG_LOADING_WAITING_RETRY:{var t;let i=performance.now(),s=this.retryDate;(!s||i>=s||(t=this.media)!=null&&t.seeking)&&(this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded(this.trackId),this.state=W.IDLE);break}case W.WAITING_INIT_PTS:{let i=this.waitingData;if(i){let{frag:s,part:n,cache:a,complete:o}=i;if(this.initPTS[s.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=W.FRAG_LOADING;let l=a.flush(),d={frag:s,part:n,payload:l,networkDetails:null};this._handleFragmentLoadProgress(d),o&&super._handleFragmentLoadComplete(d)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${s.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let l=this.getLoadPosition(),d=je.bufferInfo(this.mediaBuffer,l,this.config.maxBufferHole);Pu(d.end,this.config.maxFragLookUpTolerance,s)<0&&(this.log(`Waiting fragment cc (${s.cc}) @ ${s.start} cancelled because another fragment at ${d.end} is needed`),this.clearWaitingFragment())}}else this.state=W.IDLE}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=W.IDLE)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;!(e!=null&&e.readyState)||(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:t,media:i,trackId:s}=this,n=e.config;if(!(t!=null&&t[s])||!i&&(this.startFragRequested||!n.startFragPrefetch))return;let a=t[s],o=a.details;if(!o||o.live&&this.levelLastLoaded!==s||this.waitForCdnTuneIn(o)){this.state=W.WAITING_TRACK;return}let l=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&l&&(this.bufferFlushed=!1,this.afterBufferFlushed(l,qe.AUDIO,ge.AUDIO));let d=this.getFwdBufferInfo(l,ge.AUDIO);if(d===null)return;let{bufferedTrack:c,switchingTrack:u}=this;if(!u&&this._streamEnded(d,o)){e.trigger(b.BUFFER_EOS,{type:"audio"}),this.state=W.ENDED;return}let h=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,ge.MAIN),f=d.len,g=this.getMaxBufferLength(h==null?void 0:h.len);if(f>=g&&!u)return;let T=o.fragments[0].start,A=d.end;if(u&&i){let D=this.getLoadPosition();c&&u.attrs!==c.attrs&&(A=D),o.PTSKnown&&D<T&&(d.end>T||d.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=T+.05)}let k=this.getNextFragment(A,o),L=!1;if(k&&this.isLoopLoading(k,A)&&(L=!!k.gap,k=this.getNextFragmentLoopLoading(k,o,d,ge.MAIN,g)),!k){this.bufferFlushed=!0;return}let N=h&&k.start>h.end+o.targetduration;if(N||!(h!=null&&h.len)&&d.len){let D=this.getAppendedFrag(k.start,ge.MAIN);if(D===null||(L||(L=!!D.gap||!!N&&h.len===0),N&&!L||L&&d.nextStart&&d.nextStart<D.end))return}this.loadFragment(k,a,A)}getMaxBufferLength(e){let t=super.getMaxBufferLength();return e?Math.min(Math.max(t,e),this.config.maxMaxBufferLength):t}onMediaDetaching(){this.videoBuffer=null,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:t}){this.resetTransmuxer(),this.levels=t.map(i=>new qr(i))}onAudioTrackSwitching(e,t){let i=!!t.url;this.trackId=t.id;let{fragCurrent:s}=this;s&&(s.abortRequests(),this.removeUnbufferedFrags(s.start)),this.resetLoadingState(),i?this.setInterval(kg):this.resetTransmuxer(),i?(this.switchingTrack=t,this.state=W.IDLE):(this.switchingTrack=null,this.bufferedTrack=t,this.state=W.STOPPED),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,t){this.mainDetails=t.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(b.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,t){var i;if(this.mainDetails==null){this.cachedTrackLoadedData=t;return}let{levels:s}=this,{details:n,id:a}=t;if(!s){this.warn(`Audio tracks were reset while loading level ${a}`);return}this.log(`Track ${a} loaded [${n.startSN},${n.endSN}]${n.lastPartSn?`[part-${n.lastPartSn}-${n.lastPartIndex}]`:""},duration:${n.totalduration}`);let o=s[a],l=0;if(n.live||(i=o.details)!=null&&i.live){let d=this.mainDetails;if(n.fragments[0]||(n.deltaUpdateFailed=!0),n.deltaUpdateFailed||!d)return;!o.details&&n.hasProgramDateTime&&d.hasProgramDateTime?(l0(n,d),l=n.fragments[0].start):l=this.alignPlaylists(n,o.details)}o.details=n,this.levelLastLoaded=a,!this.startFragRequested&&(this.mainDetails||!n.live)&&this.setStartPosition(o.details,l),this.state===W.WAITING_TRACK&&!this.waitForCdnTuneIn(n)&&(this.state=W.IDLE),this.tick()}_handleFragmentLoadProgress(e){var t;let{frag:i,part:s,payload:n}=e,{config:a,trackId:o,levels:l}=this;if(!l){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let d=l[o];if(!d){this.warn("Audio track is undefined on fragment load progress");return}let c=d.details;if(!c){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(i.start);return}let u=a.defaultAudioCodec||d.audioCodec||"mp4a.40.2",h=this.transmuxer;h||(h=this.transmuxer=new xl(this.hls,ge.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let f=this.initPTS[i.cc],g=(t=i.initSegment)==null?void 0:t.data;if(f!==void 0){let T=s?s.index:-1,A=T!==-1,k=new Kn(i.level,i.sn,i.stats.chunkCount,n.byteLength,T,A);h.push(n,g,u,"",i,s,c.totalduration,!1,k,f)}else{this.log(`Unknown video PTS for cc ${i.cc}, waiting for video PTS before demuxing audio frag ${i.sn} of [${c.startSN} ,${c.endSN}],track ${o}`);let{cache:E}=this.waitingData=this.waitingData||{frag:i,part:s,cache:new Il,complete:!1};E.push(new Uint8Array(n)),this.waitingVideoCC=this.videoTrackCC,this.state=W.WAITING_INIT_PTS}}_handleFragmentLoadComplete(e){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,t){let i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer||null)}onFragBuffered(e,t){let{frag:i,part:s}=t;if(i.type!==ge.AUDIO){if(!this.loadedmetadata&&i.type===ge.MAIN){let n=this.videoBuffer||this.media;n&&je.getBuffered(n).length&&(this.loadedmetadata=!0)}return}if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${s?" p: "+s.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(i.sn!=="initSegment"){this.fragPrevious=i;let n=this.switchingTrack;n&&(this.bufferedTrack=n,this.switchingTrack=null,this.hls.trigger(b.AUDIO_TRACK_SWITCHED,jt({},n)))}this.fragBufferedComplete(i,s)}onError(e,t){var i;if(t.fatal){this.state=W.ERROR;return}switch(t.details){case B.FRAG_GAP:case B.FRAG_PARSING_ERROR:case B.FRAG_DECRYPT_ERROR:case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ge.AUDIO,t);break;case B.AUDIO_TRACK_LOAD_ERROR:case B.AUDIO_TRACK_LOAD_TIMEOUT:case B.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===W.WAITING_TRACK&&((i=t.context)==null?void 0:i.type)===Ue.AUDIO_TRACK&&(this.state=W.IDLE);break;case B.BUFFER_FULL_ERROR:if(!t.parent||t.parent!=="audio")return;this.reduceLengthAndFlushBuffer(t)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case B.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}onBufferFlushed(e,{type:t}){t===qe.AUDIO&&(this.bufferFlushed=!0,this.state===W.ENDED&&(this.state=W.IDLE))}_handleTransmuxComplete(e){var t;let i="audio",{hls:s}=this,{remuxResult:n,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:l,part:d,level:c}=o,{details:u}=c,{audio:h,text:f,id3:g,initSegment:E}=n;if(this.fragContextChanged(l)||!u){this.fragmentTracker.removeFragment(l);return}if(this.state=W.PARSING,this.switchingTrack&&h&&this.completeAudioSwitch(this.switchingTrack),E!=null&&E.tracks){let T=l.initSegment||l;this._bufferInitSegment(E.tracks,T,a),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:T,id:i,tracks:E.tracks})}if(h){let{startPTS:T,endPTS:A,startDTS:k,endDTS:L}=h;d&&(d.elementaryStreams[qe.AUDIO]={startPTS:T,endPTS:A,startDTS:k,endDTS:L}),l.setElementaryStreamInfo(qe.AUDIO,T,A,k,L),this.bufferFragmentData(h,l,d,a)}if(g!=null&&(t=g.samples)!=null&&t.length){let T=pt({id:i,frag:l,details:u},g);s.trigger(b.FRAG_PARSING_METADATA,T)}if(f){let T=pt({id:i,frag:l,details:u},f);s.trigger(b.FRAG_PARSING_USERDATA,T)}}_bufferInitSegment(e,t,i){if(this.state!==W.PARSING)return;e.video&&delete e.video;let s=e.audio;if(!s)return;s.levelCodec=s.codec,s.id="audio",this.log(`Init audio buffer, container:${s.container}, codecs[parsed]=[${s.codec}]`),this.hls.trigger(b.BUFFER_CODECS,e);let n=s.initSegment;if(n!=null&&n.byteLength){let a={type:"audio",frag:t,part:null,chunkMeta:i,parent:t.type,data:n};this.hls.trigger(b.BUFFER_APPENDING,a)}this.tick()}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);if(this.fragCurrent=e,this.switchingTrack||s===Tt.NOT_LOADED||s===Tt.PARTIAL){var n;e.sn==="initSegment"?this._loadInitSegment(e,t):(n=t.details)!=null&&n.live&&!this.initPTS[e.cc]?(this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=W.WAITING_INIT_PTS):(this.startFragRequested=!0,super.loadFragment(e,t,i))}else this.clearTrackerIfNeeded(e)}completeAudioSwitch(e){let{hls:t,media:i,bufferedTrack:s}=this,n=s==null?void 0:s.attrs,a=e.attrs;i&&n&&(n.CHANNELS!==a.CHANNELS||n.NAME!==a.NAME||n.LANGUAGE!==a.LANGUAGE)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio")),this.bufferedTrack=e,this.switchingTrack=null,t.trigger(b.AUDIO_TRACK_SWITCHED,jt({},e))}},nh=class extends Vn{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.audioTracks||[]}onAudioTrackLoaded(e,t){let{id:i,groupId:s,details:n}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==s){this.warn(`Track with id:${i} and group:${s} not found in active group ${a.groupId}`);return}let o=a.details;a.details=t.details,this.log(`audio-track ${i} "${a.name}" lang:${a.lang} group:${s} loaded [${n.startSN}-${n.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!(t!=null&&t.audioGroupIds))return;let i=t.audioGroupIds[t.urlId];if(this.groupId!==i){this.groupId=i||null;let s=this.tracks.filter(a=>!i||a.groupId===i);this.selectDefaultTrack&&!s.some(a=>a.default)&&(this.selectDefaultTrack=!1),this.tracksInGroup=s;let n={audioTracks:s};this.log(`Updating audio tracks, ${s.length} track(s) found in group:${i}`),this.hls.trigger(b.AUDIO_TRACKS_UPDATED,n),this.selectInitialTrack()}else this.shouldReloadPlaylist(this.currentTrack)&&this.setAudioTrack(this.trackId)}onError(e,t){t.fatal||!t.context||t.context.type===Ue.AUDIO_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&(this.requestScheduled=-1,this.checkRetry(t))}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioTrack(e){let t=this.tracksInGroup;if(e<0||e>=t.length){this.warn("Invalid id passed to audio-track controller");return}this.clearTimer();let i=this.currentTrack;t[this.trackId];let s=t[e],{groupId:n,name:a}=s;if(this.log(`Switching to audio-track ${e} "${a}" lang:${s.lang} group:${n}`),this.trackId=e,this.currentTrack=s,this.selectDefaultTrack=!1,this.hls.trigger(b.AUDIO_TRACK_SWITCHING,jt({},s)),s.details&&!s.details.live)return;let o=this.switchParams(s.url,i==null?void 0:i.details);this.loadPlaylist(o)}selectInitialTrack(){let e=this.tracksInGroup,t=this.findTrackId(this.currentTrack)|this.findTrackId(null);if(t!==-1)this.setAudioTrack(t);else{let i=new Error(`No track found for running audio group-ID: ${this.groupId} track count: ${e.length}`);this.warn(i.message),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:i})}}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let s=t[i];if((!this.selectDefaultTrack||s.default)&&(!e||e.attrs["STABLE-RENDITION-ID"]!==void 0&&e.attrs["STABLE-RENDITION-ID"]===s.attrs["STABLE-RENDITION-ID"]||e.name===s.name&&e.lang===s.lang))return s.id}return-1}loadPlaylist(e){super.loadPlaylist();let t=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(t)){let i=t.id,s=t.groupId,n=t.url;if(e)try{n=e.addDirectives(n)}catch(a){this.warn(`Could not construct new URL with HLS Delivery Directives: ${a}`)}this.log(`loading audio-track playlist ${i} "${t.name}" lang:${t.lang} group:${s}`),this.clearTimer(),this.hls.trigger(b.AUDIO_TRACK_LOADING,{url:n,id:i,groupId:s,deliveryDirectives:e||null})}}};function _0(r,e){if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(!J_(r[t].attrs,e[t].attrs))return!1;return!0}function J_(r,e){let t=r["STABLE-RENDITION-ID"];return t?t===e["STABLE-RENDITION-ID"]:!["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED"].some(i=>r[i]!==e[i])}var Rg=500,ah=class extends qn{constructor(e,t,i){super(e,t,i,"[subtitle-stream-controller]",ge.SUBTITLE),this.levels=[],this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=W.IDLE,this.setInterval(Rg),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,t){this.mainDetails=t.details}onSubtitleFragProcessed(e,t){let{frag:i,success:s}=t;if(this.fragPrevious=i,this.state=W.IDLE,!s)return;let n=this.tracksBuffered[this.currentTrackId];if(!n)return;let a,o=i.start;for(let d=0;d<n.length;d++)if(o>=n[d].start&&o<=n[d].end){a=n[d];break}let l=i.start+i.duration;a?a.end=l:(a={start:o,end:l},n.push(a)),this.fragmentTracker.fragBuffered(i)}onBufferFlushing(e,t){let{startOffset:i,endOffset:s}=t;if(i===0&&s!==Number.POSITIVE_INFINITY){let n=s-1;if(n<=0)return;t.endOffsetSubtitles=Math.max(0,n),this.tracksBuffered.forEach(a=>{for(let o=0;o<a.length;){if(a[o].end<=n){a.shift();continue}else if(a[o].start<n)a[o].start=n;else break;o++}}),this.fragmentTracker.removeFragmentsInRange(i,n,ge.SUBTITLE)}}onFragBuffered(e,t){if(!this.loadedmetadata&&t.frag.type===ge.MAIN){var i;(i=this.media)!=null&&i.buffered.length&&(this.loadedmetadata=!0)}}onError(e,t){let i=t.frag;(i==null?void 0:i.type)===ge.SUBTITLE&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==W.STOPPED&&(this.state=W.IDLE))}onSubtitleTracksUpdated(e,{subtitleTracks:t}){if(_0(this.levels,t)){this.levels=t.map(i=>new qr(i));return}this.tracksBuffered=[],this.levels=t.map(i=>{let s=new qr(i);return this.tracksBuffered[s.id]=[],s}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,ge.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(e,t){if(this.currentTrackId=t.id,!this.levels.length||this.currentTrackId===-1){this.clearInterval();return}let i=this.levels[this.currentTrackId];i!=null&&i.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,i&&this.setInterval(Rg)}onSubtitleTrackLoaded(e,t){var i;let{details:s,id:n}=t,{currentTrackId:a,levels:o}=this;if(!o.length)return;let l=o[a];if(n>=o.length||n!==a||!l)return;this.mediaBuffer=this.mediaBufferTimeRanges;let d=0;if(s.live||(i=l.details)!=null&&i.live){let c=this.mainDetails;if(s.deltaUpdateFailed||!c)return;let u=c.fragments[0];l.details?(d=this.alignPlaylists(s,l.details),d===0&&u&&(d=u.start,Ou(s,d))):s.hasProgramDateTime&&c.hasProgramDateTime?(l0(s,c),d=s.fragments[0].start):u&&(d=u.start,Ou(s,d))}l.details=s,this.levelLastLoaded=n,!this.startFragRequested&&(this.mainDetails||!s.live)&&this.setStartPosition(l.details,d),this.tick(),s.live&&!this.fragCurrent&&this.media&&this.state===W.IDLE&&(Hn(null,s.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),l.details=void 0))}_handleFragmentLoadComplete(e){let{frag:t,payload:i}=e,s=t.decryptdata,n=this.hls;if(!this.fragContextChanged(t)&&i&&i.byteLength>0&&s&&s.key&&s.iv&&s.method==="AES-128"){let a=performance.now();this.decrypter.decrypt(new Uint8Array(i),s.key.buffer,s.iv.buffer).catch(o=>{throw n.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_DECRYPT_ERROR,fatal:!1,error:o,reason:o.message,frag:t}),o}).then(o=>{let l=performance.now();n.trigger(b.FRAG_DECRYPTED,{frag:t,payload:o,stats:{tstart:a,tdecrypt:l}})}).catch(o=>{this.warn(`${o.name}: ${o.message}`),this.state=W.IDLE})}}doTick(){if(!this.media){this.state=W.IDLE;return}if(this.state===W.IDLE){let{currentTrackId:e,levels:t}=this,i=t[e];if(!t.length||!i||!i.details)return;let{config:s}=this,n=this.getLoadPosition(),a=je.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],n,s.maxBufferHole),{end:o,len:l}=a,d=this.getFwdBufferInfo(this.media,ge.MAIN),c=i.details,u=this.getMaxBufferLength(d==null?void 0:d.len)+c.levelTargetDuration;if(l>u)return;let h=c.fragments,f=h.length,g=c.edge,E=null,T=this.fragPrevious;if(o<g){let A=s.maxFragLookUpTolerance,k=o>g-A?0:A;E=Hn(T,h,Math.max(h[0].start,o),k),!E&&T&&T.start<h[0].start&&(E=h[0])}else E=h[f-1];if(!E)return;if(E=this.mapToInitFragWhenRequired(E),E.sn!=="initSegment"){let A=E.sn-c.startSN,k=h[A-1];k&&k.cc===E.cc&&this.fragmentTracker.getState(k)===Tt.NOT_LOADED&&(E=k)}this.fragmentTracker.getState(E)===Tt.NOT_LOADED&&this.loadFragment(E,i,o)}}getMaxBufferLength(e){let t=super.getMaxBufferLength();return e?Math.max(t,e):t}loadFragment(e,t,i){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,t):(this.startFragRequested=!0,super.loadFragment(e,t,i))}get mediaBufferTimeRanges(){return new oh(this.tracksBuffered[this.currentTrackId]||[])}},oh=class{constructor(e){this.buffered=void 0;let t=(i,s,n)=>{if(s=s>>>0,s>n-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${s}) is greater than the maximum bound (${n})`);return e[s][i]};this.buffered={get length(){return e.length},end(i){return t("end",i,e.length)},start(i){return t("start",i,e.length)}}}},lh=class extends Vn{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.trackChangeListener=()=>this.onTextTracksChanged(),this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.trackChangeListener=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes(this.trackId)}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.ERROR,this.onError,this)}onMediaAttached(e,t){this.media=t.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.trackChangeListener,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),vu(this.media.textTracks).forEach(t=>{Hs(t)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.subtitleTracks}onSubtitleTrackLoaded(e,t){let{id:i,details:s}=t,{trackId:n}=this,a=this.tracksInGroup[n];if(!a){this.warn(`Invalid subtitle track id ${i}`);return}let o=a.details;a.details=t.details,this.log(`subtitle track ${i} loaded [${s.startSN}-${s.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!(t!=null&&t.textGroupIds))return;let i=t.textGroupIds[t.urlId],s=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;if(this.groupId!==i){let n=this.tracks.filter(l=>!i||l.groupId===i);this.tracksInGroup=n;let a=this.findTrackId(s==null?void 0:s.name)||this.findTrackId();this.groupId=i||null;let o={subtitleTracks:n};this.log(`Updating subtitle tracks, ${n.length} track(s) found in "${i}" group-id`),this.hls.trigger(b.SUBTITLE_TRACKS_UPDATED,o),a!==-1&&this.setSubtitleTrack(a,s)}else this.shouldReloadPlaylist(s)&&this.setSubtitleTrack(this.trackId,s)}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let s=t[i];if((!this.selectDefaultTrack||s.default)&&(!e||e===s.name))return s.id}return-1}onError(e,t){t.fatal||!t.context||t.context.type===Ue.SUBTITLE_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&this.checkRetry(t)}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1;let t=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;this.setSubtitleTrack(e,t)}loadPlaylist(e){super.loadPlaylist();let t=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(t)){let i=t.id,s=t.groupId,n=t.url;if(e)try{n=e.addDirectives(n)}catch(a){this.warn(`Could not construct new URL with HLS Delivery Directives: ${a}`)}this.log(`Loading subtitle playlist for id ${i}`),this.hls.trigger(b.SUBTITLE_TRACK_LOADING,{url:n,id:i,groupId:s,deliveryDirectives:e||null})}}toggleTrackModes(e){let{media:t,trackId:i}=this;if(!t)return;let s=vu(t.textTracks),n=s.filter(o=>o.groupId===this.groupId);if(e===-1)[].slice.call(s).forEach(o=>{o.mode="disabled"});else{let o=n[i];o&&(o.mode="disabled")}let a=n[e];a&&(a.mode=this.subtitleDisplay?"showing":"hidden")}setSubtitleTrack(e,t){var i;let s=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=e;return}if(this.trackId!==e&&this.toggleTrackModes(e),this.trackId===e&&(e===-1||(i=s[e])!=null&&i.details)||e<-1||e>=s.length)return;this.clearTimer();let n=s[e];if(this.log(`Switching to subtitle-track ${e}`+(n?` "${n.name}" lang:${n.lang} group:${n.groupId}`:"")),this.trackId=e,n){let{id:a,groupId:o="",name:l,type:d,url:c}=n;this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:a,groupId:o,name:l,type:d,url:c});let u=this.switchParams(n.url,t==null?void 0:t.details);this.loadPlaylist(u)}else this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:e})}onTextTracksChanged(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let e=-1,t=vu(this.media.textTracks);for(let i=0;i<t.length;i++)if(t[i].mode==="hidden")e=i;else if(t[i].mode==="showing"){e=i;break}this.subtitleTrack!==e&&(this.subtitleTrack=e)}};function vu(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];(i.kind==="subtitles"||i.kind==="captions")&&i.label&&e.push(r[t])}return e}var dh=class{constructor(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}append(e,t){let i=this.queues[t];i.push(e),i.length===1&&this.buffers[t]&&this.executeNext(t)}insertAbort(e,t){this.queues[t].unshift(e),this.executeNext(t)}appendBlocker(e){let t,i=new Promise(n=>{t=n}),s={execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(s,e),i}executeNext(e){let{buffers:t,queues:i}=this,s=t[e],n=i[e];if(n.length){let a=n[0];try{a.execute()}catch(o){M.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),a.onError(o),s!=null&&s.updating||(n.shift(),this.executeNext(e))}}}shiftAndExecuteNext(e){this.queues[e].shift(),this.executeNext(e)}current(e){return this.queues[e][0]}},wg=Ml(),Dg=/([ha]vc.)(?:\.[^.,]+)+/,ch=class{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendError=0,this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this._onMediaSourceOpen=()=>{let{media:t,mediaSource:i}=this;M.log("[buffer-controller]: Media source opened"),t&&(t.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(b.MEDIA_ATTACHED,{media:t})),i&&i.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{M.log("[buffer-controller]: Media source closed")},this._onMediaSourceEnded=()=>{M.log("[buffer-controller]: Media source ended")},this._onMediaEmptied=()=>{let{media:t,_objectUrl:i}=this;t&&t.src!==i&&M.error(`Media element src was set while attaching MediaSource (${i} > ${t.src})`)},this.hls=e,this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_APPENDING,this.onBufferAppending,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.BUFFER_EOS,this.onBufferEos,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(b.FRAG_PARSED,this.onFragParsed,this),e.on(b.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_APPENDING,this.onBufferAppending,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.BUFFER_EOS,this.onBufferEos,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(b.FRAG_PARSED,this.onFragParsed,this),e.off(b.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new dh(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,t){let i=2;(t.audio&&!t.video||!t.altAudio)&&(i=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=i,M.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`)}onMediaAttaching(e,t){let i=this.media=t.media;if(i&&wg){let s=this.mediaSource=new wg;s.addEventListener("sourceopen",this._onMediaSourceOpen),s.addEventListener("sourceended",this._onMediaSourceEnded),s.addEventListener("sourceclose",this._onMediaSourceClose),i.src=self.URL.createObjectURL(s),this._objectUrl=i.src,i.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:t,_objectUrl:i}=this;if(t){if(M.log("[buffer-controller]: media source detaching"),t.readyState==="open")try{t.endOfStream()}catch(s){M.warn(`[buffer-controller]: onMediaDetaching: ${s.message} while calling endOfStream`)}this.onBufferReset(),t.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("sourceended",this._onMediaSourceEnded),t.removeEventListener("sourceclose",this._onMediaSourceClose),e&&(e.removeEventListener("emptied",this._onMediaEmptied),i&&self.URL.revokeObjectURL(i),e.src===i?(e.removeAttribute("src"),e.load()):M.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(b.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach(e=>{let t=this.sourceBuffer[e];try{t&&(this.removeBufferListeners(e),this.mediaSource&&this.mediaSource.removeSourceBuffer(t),this.sourceBuffer[e]=void 0)}catch(i){M.warn(`[buffer-controller]: Failed to reset the ${e} buffer`,i)}}),this._initSourceBuffer()}onBufferCodecs(e,t){let i=this.getSourceBufferTypes().length;Object.keys(t).forEach(s=>{if(i){let n=this.tracks[s];if(n&&typeof n.buffer.changeType=="function"){let{id:a,codec:o,levelCodec:l,container:d,metadata:c}=t[s],u=(n.levelCodec||n.codec).replace(Dg,"$1"),h=(l||o).replace(Dg,"$1");if(u!==h){let f=`${d};codecs=${l||o}`;this.appendChangeType(s,f),M.log(`[buffer-controller]: switching codec ${u} to ${h}`),this.tracks[s]={buffer:n.buffer,codec:o,container:d,levelCodec:l,metadata:c,id:a}}}}else this.pendingTracks[s]=t[s]}),!i&&(this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks())}appendChangeType(e,t){let{operationQueue:i}=this,s={execute:()=>{let n=this.sourceBuffer[e];n&&(M.log(`[buffer-controller]: changing ${e} sourceBuffer type to ${t}`),n.changeType(t)),i.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:n=>{M.warn(`[buffer-controller]: Failed to change ${e} SourceBuffer type`,n)}};i.append(s,e)}onBufferAppending(e,t){let{hls:i,operationQueue:s,tracks:n}=this,{data:a,type:o,frag:l,part:d,chunkMeta:c}=t,u=c.buffering[o],h=self.performance.now();u.start=h;let f=l.stats.buffering,g=d?d.stats.buffering:null;f.start===0&&(f.start=h),g&&g.start===0&&(g.start=h);let E=n.audio,T=!1;o==="audio"&&(E==null?void 0:E.container)==="audio/mpeg"&&(T=!this.lastMpegAudioChunk||c.id===1||this.lastMpegAudioChunk.sn!==c.sn,this.lastMpegAudioChunk=c);let A=l.start,k={execute:()=>{if(u.executeStart=self.performance.now(),T){let L=this.sourceBuffer[o];if(L){let N=A-L.timestampOffset;Math.abs(N)>=.1&&(M.log(`[buffer-controller]: Updating audio SourceBuffer timestampOffset to ${A} (delta: ${N}) sn: ${l.sn})`),L.timestampOffset=A)}}this.appendExecutor(a,o)},onStart:()=>{},onComplete:()=>{let L=self.performance.now();u.executeEnd=u.end=L,f.first===0&&(f.first=L),g&&g.first===0&&(g.first=L);let{sourceBuffer:N}=this,D={};for(let $ in N)D[$]=je.getBuffered(N[$]);this.appendError=0,this.hls.trigger(b.BUFFER_APPENDED,{type:o,frag:l,part:d,chunkMeta:c,parent:l.type,timeRanges:D})},onError:L=>{M.error(`[buffer-controller]: Error encountered while trying to append to the ${o} SourceBuffer`,L);let N={type:pe.MEDIA_ERROR,parent:l.type,details:B.BUFFER_APPEND_ERROR,frag:l,part:d,chunkMeta:c,error:L,err:L,fatal:!1};L.code===DOMException.QUOTA_EXCEEDED_ERR?N.details=B.BUFFER_FULL_ERROR:(this.appendError++,N.details=B.BUFFER_APPEND_ERROR,this.appendError>i.config.appendErrorMaxRetry&&(M.error(`[buffer-controller]: Failed ${i.config.appendErrorMaxRetry} times to append segment in sourceBuffer`),N.fatal=!0)),i.trigger(b.ERROR,N)}};s.append(k,o)}onBufferFlushing(e,t){let{operationQueue:i}=this,s=n=>({execute:this.removeExecutor.bind(this,n,t.startOffset,t.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(b.BUFFER_FLUSHED,{type:n})},onError:a=>{M.warn(`[buffer-controller]: Failed to remove from ${n} SourceBuffer`,a)}});t.type?i.append(s(t.type),t.type):this.getSourceBufferTypes().forEach(n=>{i.append(s(n),n)})}onFragParsed(e,t){let{frag:i,part:s}=t,n=[],a=s?s.elementaryStreams:i.elementaryStreams;a[qe.AUDIOVIDEO]?n.push("audiovideo"):(a[qe.AUDIO]&&n.push("audio"),a[qe.VIDEO]&&n.push("video"));let o=()=>{let l=self.performance.now();i.stats.buffering.end=l,s&&(s.stats.buffering.end=l);let d=s?s.stats:i.stats;this.hls.trigger(b.FRAG_BUFFERED,{frag:i,part:s,stats:d,id:i.type})};n.length===0&&M.warn(`Fragments must have at least one ElementaryStreamType set. type: ${i.type} level: ${i.level} sn: ${i.sn}`),this.blockBuffers(o,n)}onFragChanged(e,t){this.flushBackBuffer()}onBufferEos(e,t){this.getSourceBufferTypes().reduce((s,n)=>{let a=this.sourceBuffer[n];return a&&(!t.type||t.type===n)&&(a.ending=!0,a.ended||(a.ended=!0,M.log(`[buffer-controller]: ${n} sourceBuffer now EOS`))),s&&!!(!a||a.ended)},!0)&&(M.log("[buffer-controller]: Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach(n=>{let a=this.sourceBuffer[n];a&&(a.ending=!1)});let{mediaSource:s}=this;if(!s||s.readyState!=="open"){s&&M.info(`[buffer-controller]: Could not call mediaSource.endOfStream(). mediaSource.readyState: ${s.readyState}`);return}M.log("[buffer-controller]: Calling mediaSource.endOfStream()"),s.endOfStream()}))}onLevelUpdated(e,{details:t}){!t.fragments.length||(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}flushBackBuffer(){let{hls:e,details:t,media:i,sourceBuffer:s}=this;if(!i||t===null)return;let n=this.getSourceBufferTypes();if(!n.length)return;let a=t.live&&e.config.liveBackBufferLength!==null?e.config.liveBackBufferLength:e.config.backBufferLength;if(!ce(a)||a<0)return;let o=i.currentTime,l=t.levelTargetDuration,d=Math.max(a,l),c=Math.floor(o/l)*l-d;n.forEach(u=>{let h=s[u];if(h){let f=je.getBuffered(h);if(f.length>0&&c>f.start(0)){if(e.trigger(b.BACK_BUFFER_REACHED,{bufferEnd:c}),t.live)e.trigger(b.LIVE_BACK_BUFFER_REACHED,{bufferEnd:c});else if(h.ended&&f.end(f.length-1)-o<l*2){M.info(`[buffer-controller]: Cannot flush ${u} back buffer while SourceBuffer is in ended state`);return}e.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:c,type:u})}}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:t,media:i,mediaSource:s}=this,n=e.fragments[0].start+e.totalduration,a=i.duration,o=ce(s.duration)?s.duration:0;e.live&&t.config.liveDurationInfinity?(M.log("[buffer-controller]: Media Source duration is set to Infinity"),s.duration=1/0,this.updateSeekableRange(e)):(n>o&&n>a||!ce(a))&&(M.log(`[buffer-controller]: Updating Media Source duration to ${n.toFixed(3)}`),s.duration=n)}updateSeekableRange(e){let t=this.mediaSource,i=e.fragments;if(i.length&&e.live&&t!=null&&t.setLiveSeekableRange){let n=Math.max(0,i[0].start),a=Math.max(n,n+e.totalduration);t.setLiveSeekableRange(n,a)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:t,pendingTracks:i}=this,s=Object.keys(i).length;if(s&&!e||s===2){this.createSourceBuffers(i),this.pendingTracks={};let n=this.getSourceBufferTypes();if(n.length)this.hls.trigger(b.BUFFER_CREATED,{tracks:this.tracks}),n.forEach(a=>{t.executeNext(a)});else{let a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}}createSourceBuffers(e){let{sourceBuffer:t,mediaSource:i}=this;if(!i)throw Error("createSourceBuffers called when mediaSource was null");for(let s in e)if(!t[s]){let n=e[s];if(!n)throw Error(`source buffer exists for track ${s}, however track does not`);let a=n.levelCodec||n.codec,o=`${n.container};codecs=${a}`;M.log(`[buffer-controller]: creating sourceBuffer(${o})`);try{let l=t[s]=i.addSourceBuffer(o),d=s;this.addBufferListener(d,"updatestart",this._onSBUpdateStart),this.addBufferListener(d,"updateend",this._onSBUpdateEnd),this.addBufferListener(d,"error",this._onSBUpdateError),this.tracks[s]={buffer:l,codec:a,container:n.container,levelCodec:n.levelCodec,metadata:n.metadata,id:n.id}}catch(l){M.error(`[buffer-controller]: error while trying to add sourceBuffer: ${l.message}`),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:l,mimeType:o})}}}_onSBUpdateStart(e){let{operationQueue:t}=this;t.current(e).onStart()}_onSBUpdateEnd(e){let{operationQueue:t}=this;t.current(e).onComplete(),t.shiftAndExecuteNext(e)}_onSBUpdateError(e,t){let i=new Error(`${e} SourceBuffer error`);M.error(`[buffer-controller]: ${i}`,t),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_APPENDING_ERROR,error:i,fatal:!1});let s=this.operationQueue.current(e);s&&s.onError(t)}removeExecutor(e,t,i){let{media:s,mediaSource:n,operationQueue:a,sourceBuffer:o}=this,l=o[e];if(!s||!n||!l){M.warn(`[buffer-controller]: Attempting to remove from the ${e} SourceBuffer, but it does not exist`),a.shiftAndExecuteNext(e);return}let d=ce(s.duration)?s.duration:1/0,c=ce(n.duration)?n.duration:1/0,u=Math.max(0,t),h=Math.min(i,d,c);h>u&&!l.ending?(l.ended=!1,M.log(`[buffer-controller]: Removing [${u},${h}] from the ${e} SourceBuffer`),l.remove(u,h)):a.shiftAndExecuteNext(e)}appendExecutor(e,t){let{operationQueue:i,sourceBuffer:s}=this,n=s[t];if(!n){M.warn(`[buffer-controller]: Attempting to append to the ${t} SourceBuffer, but it does not exist`),i.shiftAndExecuteNext(t);return}n.ended=!1,n.appendBuffer(e)}blockBuffers(e,t=this.getSourceBufferTypes()){if(!t.length){M.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(e);return}let{operationQueue:i}=this,s=t.map(n=>i.appendBlocker(n));Promise.all(s).then(()=>{e(),t.forEach(n=>{let a=this.sourceBuffer[n];a!=null&&a.updating||i.shiftAndExecuteNext(n)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,t,i){let s=this.sourceBuffer[e];if(!s)return;let n=i.bind(this,e);this.listeners[e].push({event:t,listener:n}),s.addEventListener(t,n)}removeBufferListeners(e){let t=this.sourceBuffer[e];!t||this.listeners[e].forEach(i=>{t.removeEventListener(i.event,i.listener)})}},Cg={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},A0=function(e){let t=e;return Cg.hasOwnProperty(e)&&(t=Cg[e]),String.fromCharCode(t)},gi=15,Xi=100,eA={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},tA={17:2,18:4,21:6,22:8,23:10,19:13,20:15},iA={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},rA={25:2,26:4,29:6,30:8,31:10,27:13,28:15},sA=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],uh=class{constructor(){this.time=null,this.verboseLevel=0}log(e,t){if(this.verboseLevel>=e){let i=typeof t=="function"?t():t;M.log(`${this.time} [${e}] ${i}`)}}},Gr=function(e){let t=[];for(let i=0;i<e.length;i++)t.push(e[i].toString(16));return t},Ll=class{constructor(e,t,i,s,n){this.foreground=void 0,this.underline=void 0,this.italics=void 0,this.background=void 0,this.flash=void 0,this.foreground=e||"white",this.underline=t||!1,this.italics=i||!1,this.background=s||"black",this.flash=n||!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(e){let t=["foreground","underline","italics","background","flash"];for(let i=0;i<t.length;i++){let s=t[i];e.hasOwnProperty(s)&&(this[s]=e[s])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash}copy(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}},hh=class{constructor(e,t,i,s,n,a){this.uchar=void 0,this.penState=void 0,this.uchar=e||" ",this.penState=new Ll(t,i,s,n,a)}reset(){this.uchar=" ",this.penState.reset()}setChar(e,t){this.uchar=e,this.penState.copy(t)}setPenState(e){this.penState.copy(e)}equals(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)}copy(e){this.uchar=e.uchar,this.penState.copy(e.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}},fh=class{constructor(e){this.chars=void 0,this.pos=void 0,this.currPenState=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chars=[];for(let t=0;t<Xi;t++)this.chars.push(new hh);this.logger=e,this.pos=0,this.currPenState=new Ll}equals(e){let t=!0;for(let i=0;i<Xi;i++)if(!this.chars[i].equals(e.chars[i])){t=!1;break}return t}copy(e){for(let t=0;t<Xi;t++)this.chars[t].copy(e.chars[t])}isEmpty(){let e=!0;for(let t=0;t<Xi;t++)if(!this.chars[t].isEmpty()){e=!1;break}return e}setCursor(e){this.pos!==e&&(this.pos=e),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>Xi&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Xi)}moveCursor(e){let t=this.pos+e;if(e>1)for(let i=this.pos+1;i<t+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(t)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(e){e>=144&&this.backSpace();let t=A0(e);if(this.pos>=Xi){this.logger.log(0,()=>"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1)}clearFromPos(e){let t;for(t=e;t<Xi;t++)this.chars[t].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let e=[],t=!0;for(let i=0;i<Xi;i++){let s=this.chars[i].uchar;s!==" "&&(t=!1),e.push(s)}return t?"":e.join("")}setPenStyles(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)}},Gn=class{constructor(e){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.logger=void 0,this.rows=[];for(let t=0;t<gi;t++)this.rows.push(new fh(e));this.logger=e,this.currRow=gi-1,this.nrRollUpRows=null,this.lastOutputScreen=null,this.reset()}reset(){for(let e=0;e<gi;e++)this.rows[e].clear();this.currRow=gi-1}equals(e){let t=!0;for(let i=0;i<gi;i++)if(!this.rows[i].equals(e.rows[i])){t=!1;break}return t}copy(e){for(let t=0;t<gi;t++)this.rows[t].copy(e.rows[t])}isEmpty(){let e=!0;for(let t=0;t<gi;t++)if(!this.rows[t].isEmpty()){e=!1;break}return e}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(e){this.rows[this.currRow].insertChar(e)}setPen(e){this.rows[this.currRow].setPenStyles(e)}moveCursor(e){this.rows[this.currRow].moveCursor(e)}setCursor(e){this.logger.log(2,"setCursor: "+e),this.rows[this.currRow].setCursor(e)}setPAC(e){this.logger.log(2,()=>"pacData = "+JSON.stringify(e));let t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(let o=0;o<gi;o++)this.rows[o].clear();let n=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let o=a.rows[n].cueStartTime,l=this.logger.time;if(o&&l!==null&&o<l)for(let d=0;d<this.nrRollUpRows;d++)this.rows[t-this.nrRollUpRows+d+1].copy(a.rows[n+d])}}this.currRow=t;let i=this.rows[this.currRow];if(e.indent!==null){let n=e.indent,a=Math.max(n-1,0);i.setCursor(e.indent),e.color=i.chars[a].penState.foreground}let s={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(s)}setBkgData(e){this.logger.log(2,()=>"bkgData = "+JSON.stringify(e)),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());let e=this.currRow+1-this.nrRollUpRows,t=this.rows.splice(e,1)[0];t.clear(),this.rows.splice(this.currRow,0,t),this.logger.log(2,"Rolling up")}getDisplayText(e){e=e||!1;let t=[],i="",s=-1;for(let n=0;n<gi;n++){let a=this.rows[n].getTextString();a&&(s=n+1,e?t.push("Row "+s+": '"+a+"'"):t.push(a.trim()))}return t.length>0&&(e?i="["+t.join(" | ")+"]":i=t.join(`
|
|
964
|
-
`)),i}getTextAndFormat(){return this.rows}},kl=class{constructor(e,t,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new Gn(i),this.nonDisplayedMemory=new Gn(i),this.lastOutputScreen=new Gn(i),this.currRollUpRow=this.displayedMemory.rows[gi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[gi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(e){this.outputFilter=e}setPAC(e){this.writeScreen.setPAC(e)}setBkgData(e){this.writeScreen.setBkgData(e)}setMode(e){e!==this.mode&&(this.mode=e,this.logger.log(2,()=>"MODE="+e),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(e){for(let i=0;i<e.length;i++)this.writeScreen.insertChar(e[i]);let t=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>t+": "+this.writeScreen.getDisplayText(!0)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)}ccMIDROW(e){let t={flash:!1};if(t.underline=e%2===1,t.italics=e>=46,t.italics)t.foreground="white";else{let i=Math.floor(e/2)-16,s=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=s[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)}outputDataUpdate(e=!1){let t=this.logger.time;t!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=t:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t),this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}},Rl=class{constructor(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory=void 0,this.logger=void 0;let s=new uh;this.channels=[null,new kl(e,t,s),new kl(e+1,i,s)],this.cmdHistory=Og(),this.logger=s}getHandler(e){return this.channels[e].getHandler()}setHandler(e,t){this.channels[e].setHandler(t)}addData(e,t){let i,s,n,a=!1;this.logger.time=e;for(let o=0;o<t.length;o+=2)if(s=t[o]&127,n=t[o+1]&127,!(s===0&&n===0)){if(this.logger.log(3,"["+Gr([t[o],t[o+1]])+"] -> ("+Gr([s,n])+")"),i=this.parseCmd(s,n),i||(i=this.parseMidrow(s,n)),i||(i=this.parsePAC(s,n)),i||(i=this.parseBackgroundAttributes(s,n)),!i&&(a=this.parseChars(s,n),a)){let l=this.currentChannel;l&&l>0?this.channels[l].insertChars(a):this.logger.log(2,"No channel found yet. TEXT-MODE?")}!i&&!a&&this.logger.log(2,"Couldn't parse cleaned data "+Gr([s,n])+" orig: "+Gr([t[o],t[o+1]]))}}parseCmd(e,t){let{cmdHistory:i}=this,s=(e===20||e===28||e===21||e===29)&&t>=32&&t<=47,n=(e===23||e===31)&&t>=33&&t<=35;if(!(s||n))return!1;if(Mg(e,t,i))return Gs(null,null,i),this.logger.log(3,"Repeated command ("+Gr([e,t])+") is dropped"),!0;let a=e===20||e===21||e===23?1:2,o=this.channels[a];return e===20||e===21||e===28||e===29?t===32?o.ccRCL():t===33?o.ccBS():t===34?o.ccAOF():t===35?o.ccAON():t===36?o.ccDER():t===37?o.ccRU(2):t===38?o.ccRU(3):t===39?o.ccRU(4):t===40?o.ccFON():t===41?o.ccRDC():t===42?o.ccTR():t===43?o.ccRTD():t===44?o.ccEDM():t===45?o.ccCR():t===46?o.ccENM():t===47&&o.ccEOC():o.ccTO(t-32),Gs(e,t,i),this.currentChannel=a,!0}parseMidrow(e,t){let i=0;if((e===17||e===25)&&t>=32&&t<=47){if(e===17?i=1:i=2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let s=this.channels[i];return s?(s.ccMIDROW(t),this.logger.log(3,"MIDROW ("+Gr([e,t])+")"),!0):!1}return!1}parsePAC(e,t){let i,s=this.cmdHistory,n=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,a=(e===16||e===24)&&t>=64&&t<=95;if(!(n||a))return!1;if(Mg(e,t,s))return Gs(null,null,s),!0;let o=e<=23?1:2;t>=64&&t<=95?i=o===1?eA[e]:iA[e]:i=o===1?tA[e]:rA[e];let l=this.channels[o];return l?(l.setPAC(this.interpretPAC(i,t)),Gs(e,t,s),this.currentChannel=o,!0):!1}interpretPAC(e,t){let i,s={color:null,italics:!1,indent:null,underline:!1,row:e};return t>95?i=t-96:i=t-64,s.underline=(i&1)===1,i<=13?s.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(s.italics=!0,s.color="white"):s.indent=Math.floor((i-16)/2)*4,s}parseChars(e,t){let i,s=null,n=null;if(e>=25?(i=2,n=e-8):(i=1,n=e),n>=17&&n<=19){let a;n===17?a=t+80:n===18?a=t+112:a=t+144,this.logger.log(2,"Special char '"+A0(a)+"' in channel "+i),s=[a]}else e>=32&&e<=127&&(s=t===0?[e]:[e,t]);if(s){let a=Gr(s);this.logger.log(3,"Char codes = "+a.join(",")),Gs(e,t,this.cmdHistory)}return s}parseBackgroundAttributes(e,t){let i=(e===16||e===24)&&t>=32&&t<=47,s=(e===23||e===31)&&t>=45&&t<=47;if(!(i||s))return!1;let n,a={};e===16||e===24?(n=Math.floor((t-32)/2),a.background=sA[n],t%2===1&&(a.background=a.background+"_semi")):t===45?a.background="transparent":(a.foreground="black",t===47&&(a.underline=!0));let o=e<=23?1:2;return this.channels[o].setBkgData(a),Gs(e,t,this.cmdHistory),!0}reset(){for(let e=0;e<Object.keys(this.channels).length;e++){let t=this.channels[e];t&&t.reset()}this.cmdHistory=Og()}cueSplitAtTime(e){for(let t=0;t<this.channels.length;t++){let i=this.channels[t];i&&i.cueSplitAtTime(e)}}};function Gs(r,e,t){t.a=r,t.b=e}function Mg(r,e,t){return t.a===r&&t.b===e}function Og(){return{a:null,b:null}}var Vs=class{constructor(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,t,i){(this.startTime===null||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}},Ch=function(){if(typeof self!="undefined"&&self.VTTCue)return self.VTTCue;let r=["","lr","rl"],e=["start","middle","end","left","right"];function t(o,l){if(typeof l!="string"||!Array.isArray(o))return!1;let d=l.toLowerCase();return~o.indexOf(d)?d:!1}function i(o){return t(r,o)}function s(o){return t(e,o)}function n(o,...l){let d=1;for(;d<arguments.length;d++){let c=arguments[d];for(let u in c)o[u]=c[u]}return o}function a(o,l,d){let c=this,u={enumerable:!0};c.hasBeenReset=!1;let h="",f=!1,g=o,E=l,T=d,A=null,k="",L=!0,N="auto",D="start",$=50,O="middle",H=50,q="middle";Object.defineProperty(c,"id",n({},u,{get:function(){return h},set:function(P){h=""+P}})),Object.defineProperty(c,"pauseOnExit",n({},u,{get:function(){return f},set:function(P){f=!!P}})),Object.defineProperty(c,"startTime",n({},u,{get:function(){return g},set:function(P){if(typeof P!="number")throw new TypeError("Start time must be set to a number.");g=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"endTime",n({},u,{get:function(){return E},set:function(P){if(typeof P!="number")throw new TypeError("End time must be set to a number.");E=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"text",n({},u,{get:function(){return T},set:function(P){T=""+P,this.hasBeenReset=!0}})),Object.defineProperty(c,"region",n({},u,{get:function(){return A},set:function(P){A=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"vertical",n({},u,{get:function(){return k},set:function(P){let X=i(P);if(X===!1)throw new SyntaxError("An invalid or illegal string was specified.");k=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"snapToLines",n({},u,{get:function(){return L},set:function(P){L=!!P,this.hasBeenReset=!0}})),Object.defineProperty(c,"line",n({},u,{get:function(){return N},set:function(P){if(typeof P!="number"&&P!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");N=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"lineAlign",n({},u,{get:function(){return D},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");D=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"position",n({},u,{get:function(){return $},set:function(P){if(P<0||P>100)throw new Error("Position must be between 0 and 100.");$=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"positionAlign",n({},u,{get:function(){return O},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");O=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"size",n({},u,{get:function(){return H},set:function(P){if(P<0||P>100)throw new Error("Size must be between 0 and 100.");H=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"align",n({},u,{get:function(){return q},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");q=X,this.hasBeenReset=!0}})),c.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}(),mh=class{decode(e,t){if(!e)return"";if(typeof e!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}};function S0(r){function e(i,s,n,a){return(i|0)*3600+(s|0)*60+(n|0)+parseFloat(a||0)}let t=r.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return t?parseFloat(t[2])>59?e(t[2],t[3],0,t[4]):e(t[1],t[2],t[3],t[4]):null}var ph=class{constructor(){this.values=Object.create(null)}set(e,t){!this.get(e)&&t!==""&&(this.values[e]=t)}get(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t}has(e){return e in this.values}alt(e,t,i){for(let s=0;s<i.length;++s)if(t===i[s]){this.set(e,t);break}}integer(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))}percent(e,t){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(t)){let i=parseFloat(t);if(i>=0&&i<=100)return this.set(e,i),!0}return!1}};function x0(r,e,t,i){let s=i?r.split(i):[r];for(let n in s){if(typeof s[n]!="string")continue;let a=s[n].split(t);if(a.length!==2)continue;let o=a[0],l=a[1];e(o,l)}}var gh=new Ch(0,0,""),ll=gh.align==="middle"?"middle":"center";function nA(r,e,t){let i=r;function s(){let o=S0(r);if(o===null)throw new Error("Malformed timestamp: "+i);return r=r.replace(/^[^\sa-zA-Z-]+/,""),o}function n(o,l){let d=new ph;x0(o,function(h,f){let g;switch(h){case"region":for(let E=t.length-1;E>=0;E--)if(t[E].id===f){d.set(h,t[E].region);break}break;case"vertical":d.alt(h,f,["rl","lr"]);break;case"line":g=f.split(","),d.integer(h,g[0]),d.percent(h,g[0])&&d.set("snapToLines",!1),d.alt(h,g[0],["auto"]),g.length===2&&d.alt("lineAlign",g[1],["start",ll,"end"]);break;case"position":g=f.split(","),d.percent(h,g[0]),g.length===2&&d.alt("positionAlign",g[1],["start",ll,"end","line-left","line-right","auto"]);break;case"size":d.percent(h,f);break;case"align":d.alt(h,f,["start",ll,"end","left","right"]);break}},/:/,/\s/),l.region=d.get("region",null),l.vertical=d.get("vertical","");let c=d.get("line","auto");c==="auto"&&gh.line===-1&&(c=-1),l.line=c,l.lineAlign=d.get("lineAlign","start"),l.snapToLines=d.get("snapToLines",!0),l.size=d.get("size",100),l.align=d.get("align",ll);let u=d.get("position","auto");u==="auto"&&gh.position===50&&(u=l.align==="start"||l.align==="left"?0:l.align==="end"||l.align==="right"?100:50),l.position=u}function a(){r=r.replace(/^\s+/,"")}if(a(),e.startTime=s(),a(),r.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+i);r=r.slice(3),a(),e.endTime=s(),a(),n(r,e)}function I0(r){return r.replace(/<br(?: \/)?>/gi,`
|
|
963
|
+
Aborting and switching to level ${P}`),e.loader&&(this.fragCurrent=this.partCurrent=null,e.abortRequests()),i.trigger(b.FRAG_LOAD_EMERGENCY_ABORTED,{frag:e,part:t,stats:o}))}onFragLoaded(e,{frag:t,part:i}){let s=i?i.stats:t.stats;if(t.type===ge.MAIN&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),this.lastLoadedFragLevel=t.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){let n=i?i.duration:t.duration,a=this.hls.levels[t.level],o=(a.loaded?a.loaded.bytes:0)+s.loaded,l=(a.loaded?a.loaded.duration:0)+n;a.loaded={bytes:o,duration:l},a.realBitrate=Math.round(8*o/l)}if(t.bitrateTest){let n={stats:s,frag:t,part:i,id:t.type};this.onFragBuffered(b.FRAG_BUFFERED,n),t.bitrateTest=!1}}}onFragBuffered(e,t){let{frag:i,part:s}=t,n=s!=null&&s.stats.loaded?s.stats:i.stats;if(n.aborted||this.ignoreFragment(i))return;let a=n.parsing.end-n.loading.start-Math.min(n.loading.first-n.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,n.loaded),n.bwEstimate=this.bwEstimator.getEstimate(),i.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ge.MAIN||e.sn==="initSegment"}clearTimer(){self.clearInterval(this.timer)}get nextAutoLevel(){let e=this._nextAutoLevel,t=this.bwEstimator;if(e!==-1&&!t.canEstimate())return e;let i=this.getNextABRAutoLevel();if(e!==-1){let s=this.hls.levels;if(s.length>Math.max(e,i)&&s[e].loadError<=s[i].loadError)return e}return e!==-1&&(i=Math.min(e,i)),i}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:t,hls:i}=this,{maxAutoLevel:s,config:n,minAutoLevel:a,media:o}=i,l=t?t.duration:e?e.duration:0,d=o&&o.playbackRate!==0?Math.abs(o.playbackRate):1,c=this.bwEstimator?this.bwEstimator.getEstimate():n.abrEwmaDefaultEstimate,u=i.mainForwardBufferInfo,h=(u?u.len:0)/d,f=this.findBestLevel(c,a,s,h,n.abrBandWidthFactor,n.abrBandWidthUpFactor);if(f>=0)return f;M.trace(`[abr] ${h?"rebuffering expected":"buffer is empty"}, finding optimal quality level`);let g=l?Math.min(l,n.maxStarvationDelay):n.maxStarvationDelay,E=n.abrBandWidthFactor,T=n.abrBandWidthUpFactor;if(!h){let A=this.bitrateTestDelay;A&&(g=(l?Math.min(l,n.maxLoadingDelay):n.maxLoadingDelay)-A,M.trace(`[abr] bitrate test took ${Math.round(1e3*A)}ms, set first fragment max fetchDuration to ${Math.round(1e3*g)} ms`),E=T=1)}return f=this.findBestLevel(c,a,s,h+g,E,T),Math.max(f,0)}findBestLevel(e,t,i,s,n,a){var o;let{fragCurrent:l,partCurrent:d,lastLoadedFragLevel:c}=this,{levels:u}=this.hls,h=u[c],f=!!(h!=null&&(o=h.details)!=null&&o.live),g=h==null?void 0:h.codecSet,E=d?d.duration:l?l.duration:0,T=this.bwEstimator.getEstimateTTFB()/1e3,A=t,k=-1;for(let L=i;L>=t;L--){let N=u[L];if(!N||g&&N.codecSet!==g){N&&(A=Math.min(L,A),k=Math.max(L,k));continue}k!==-1&&M.trace(`[abr] Skipped level(s) ${A}-${k} with CODECS:"${u[k].attrs.CODECS}"; not compatible with "${h.attrs.CODECS}"`);let D=N.details,$=(d?D==null?void 0:D.partTarget:D==null?void 0:D.averagetargetduration)||E,O;L<=c?O=n*e:O=a*e;let G=u[L].maxBitrate,q=this.getTimeToLoadFrag(T,O,G*$,D===void 0);if(M.trace(`[abr] level:${L} adjustedbw-bitrate:${Math.round(O-G)} avgDuration:${$.toFixed(1)} maxFetchDuration:${s.toFixed(1)} fetchDuration:${q.toFixed(1)}`),O>G&&(q===0||!ce(q)||f&&!this.bitrateTestDelay||q<s))return L}return-1}set nextAutoLevel(e){this._nextAutoLevel=e}},Il=class{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){let{chunks:e,dataLength:t}=this,i;if(e.length)e.length===1?i=e[0]:i=Z_(e,t);else return new Uint8Array(0);return this.reset(),i}reset(){this.chunks.length=0,this.dataLength=0}};function Z_(r,e){let t=new Uint8Array(e),i=0;for(let s=0;s<r.length;s++){let n=r[s];t.set(n,i),i+=n.length}return t}var kg=100,sh=class extends qn{constructor(e,t,i){super(e,t,i,"[audio-stream-controller]",ge.AUDIO),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:n}){if(i==="main"){let a=t.cc;this.initPTS[t.cc]={baseTime:s,timescale:n},this.log(`InitPTS for cc: ${a} found from main: ${s}`),this.videoTrackCC=a,this.state===W.WAITING_INIT_PTS&&this.tick()}}startLoad(e){if(!this.levels){this.startPosition=e,this.state=W.STOPPED;return}let t=this.lastCurrentTime;this.stopLoad(),this.setInterval(kg),t>0&&e===-1?(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t,this.state=W.IDLE):(this.loadedmetadata=!1,this.state=W.WAITING_TRACK),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case W.IDLE:this.doTickIdle();break;case W.WAITING_TRACK:{var e;let{levels:i,trackId:s}=this,n=i==null||(e=i[s])==null?void 0:e.details;if(n){if(this.waitForCdnTuneIn(n))break;this.state=W.WAITING_INIT_PTS}break}case W.FRAG_LOADING_WAITING_RETRY:{var t;let i=performance.now(),s=this.retryDate;(!s||i>=s||(t=this.media)!=null&&t.seeking)&&(this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded(this.trackId),this.state=W.IDLE);break}case W.WAITING_INIT_PTS:{let i=this.waitingData;if(i){let{frag:s,part:n,cache:a,complete:o}=i;if(this.initPTS[s.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=W.FRAG_LOADING;let l=a.flush(),d={frag:s,part:n,payload:l,networkDetails:null};this._handleFragmentLoadProgress(d),o&&super._handleFragmentLoadComplete(d)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${s.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let l=this.getLoadPosition(),d=je.bufferInfo(this.mediaBuffer,l,this.config.maxBufferHole);Pu(d.end,this.config.maxFragLookUpTolerance,s)<0&&(this.log(`Waiting fragment cc (${s.cc}) @ ${s.start} cancelled because another fragment at ${d.end} is needed`),this.clearWaitingFragment())}}else this.state=W.IDLE}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=W.IDLE)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;!(e!=null&&e.readyState)||(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:t,media:i,trackId:s}=this,n=e.config;if(!(t!=null&&t[s])||!i&&(this.startFragRequested||!n.startFragPrefetch))return;let a=t[s],o=a.details;if(!o||o.live&&this.levelLastLoaded!==s||this.waitForCdnTuneIn(o)){this.state=W.WAITING_TRACK;return}let l=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&l&&(this.bufferFlushed=!1,this.afterBufferFlushed(l,qe.AUDIO,ge.AUDIO));let d=this.getFwdBufferInfo(l,ge.AUDIO);if(d===null)return;let{bufferedTrack:c,switchingTrack:u}=this;if(!u&&this._streamEnded(d,o)){e.trigger(b.BUFFER_EOS,{type:"audio"}),this.state=W.ENDED;return}let h=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,ge.MAIN),f=d.len,g=this.getMaxBufferLength(h==null?void 0:h.len);if(f>=g&&!u)return;let T=o.fragments[0].start,A=d.end;if(u&&i){let D=this.getLoadPosition();c&&u.attrs!==c.attrs&&(A=D),o.PTSKnown&&D<T&&(d.end>T||d.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=T+.05)}let k=this.getNextFragment(A,o),L=!1;if(k&&this.isLoopLoading(k,A)&&(L=!!k.gap,k=this.getNextFragmentLoopLoading(k,o,d,ge.MAIN,g)),!k){this.bufferFlushed=!0;return}let N=h&&k.start>h.end+o.targetduration;if(N||!(h!=null&&h.len)&&d.len){let D=this.getAppendedFrag(k.start,ge.MAIN);if(D===null||(L||(L=!!D.gap||!!N&&h.len===0),N&&!L||L&&d.nextStart&&d.nextStart<D.end))return}this.loadFragment(k,a,A)}getMaxBufferLength(e){let t=super.getMaxBufferLength();return e?Math.min(Math.max(t,e),this.config.maxMaxBufferLength):t}onMediaDetaching(){this.videoBuffer=null,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:t}){this.resetTransmuxer(),this.levels=t.map(i=>new qr(i))}onAudioTrackSwitching(e,t){let i=!!t.url;this.trackId=t.id;let{fragCurrent:s}=this;s&&(s.abortRequests(),this.removeUnbufferedFrags(s.start)),this.resetLoadingState(),i?this.setInterval(kg):this.resetTransmuxer(),i?(this.switchingTrack=t,this.state=W.IDLE):(this.switchingTrack=null,this.bufferedTrack=t,this.state=W.STOPPED),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,t){this.mainDetails=t.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(b.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,t){var i;if(this.mainDetails==null){this.cachedTrackLoadedData=t;return}let{levels:s}=this,{details:n,id:a}=t;if(!s){this.warn(`Audio tracks were reset while loading level ${a}`);return}this.log(`Track ${a} loaded [${n.startSN},${n.endSN}]${n.lastPartSn?`[part-${n.lastPartSn}-${n.lastPartIndex}]`:""},duration:${n.totalduration}`);let o=s[a],l=0;if(n.live||(i=o.details)!=null&&i.live){let d=this.mainDetails;if(n.fragments[0]||(n.deltaUpdateFailed=!0),n.deltaUpdateFailed||!d)return;!o.details&&n.hasProgramDateTime&&d.hasProgramDateTime?(l0(n,d),l=n.fragments[0].start):l=this.alignPlaylists(n,o.details)}o.details=n,this.levelLastLoaded=a,!this.startFragRequested&&(this.mainDetails||!n.live)&&this.setStartPosition(o.details,l),this.state===W.WAITING_TRACK&&!this.waitForCdnTuneIn(n)&&(this.state=W.IDLE),this.tick()}_handleFragmentLoadProgress(e){var t;let{frag:i,part:s,payload:n}=e,{config:a,trackId:o,levels:l}=this;if(!l){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let d=l[o];if(!d){this.warn("Audio track is undefined on fragment load progress");return}let c=d.details;if(!c){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(i.start);return}let u=a.defaultAudioCodec||d.audioCodec||"mp4a.40.2",h=this.transmuxer;h||(h=this.transmuxer=new xl(this.hls,ge.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let f=this.initPTS[i.cc],g=(t=i.initSegment)==null?void 0:t.data;if(f!==void 0){let T=s?s.index:-1,A=T!==-1,k=new Kn(i.level,i.sn,i.stats.chunkCount,n.byteLength,T,A);h.push(n,g,u,"",i,s,c.totalduration,!1,k,f)}else{this.log(`Unknown video PTS for cc ${i.cc}, waiting for video PTS before demuxing audio frag ${i.sn} of [${c.startSN} ,${c.endSN}],track ${o}`);let{cache:E}=this.waitingData=this.waitingData||{frag:i,part:s,cache:new Il,complete:!1};E.push(new Uint8Array(n)),this.waitingVideoCC=this.videoTrackCC,this.state=W.WAITING_INIT_PTS}}_handleFragmentLoadComplete(e){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,t){let i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer||null)}onFragBuffered(e,t){let{frag:i,part:s}=t;if(i.type!==ge.AUDIO){if(!this.loadedmetadata&&i.type===ge.MAIN){let n=this.videoBuffer||this.media;n&&je.getBuffered(n).length&&(this.loadedmetadata=!0)}return}if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${s?" p: "+s.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(i.sn!=="initSegment"){this.fragPrevious=i;let n=this.switchingTrack;n&&(this.bufferedTrack=n,this.switchingTrack=null,this.hls.trigger(b.AUDIO_TRACK_SWITCHED,jt({},n)))}this.fragBufferedComplete(i,s)}onError(e,t){var i;if(t.fatal){this.state=W.ERROR;return}switch(t.details){case B.FRAG_GAP:case B.FRAG_PARSING_ERROR:case B.FRAG_DECRYPT_ERROR:case B.FRAG_LOAD_ERROR:case B.FRAG_LOAD_TIMEOUT:case B.KEY_LOAD_ERROR:case B.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ge.AUDIO,t);break;case B.AUDIO_TRACK_LOAD_ERROR:case B.AUDIO_TRACK_LOAD_TIMEOUT:case B.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===W.WAITING_TRACK&&((i=t.context)==null?void 0:i.type)===Ue.AUDIO_TRACK&&(this.state=W.IDLE);break;case B.BUFFER_FULL_ERROR:if(!t.parent||t.parent!=="audio")return;this.reduceLengthAndFlushBuffer(t)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case B.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}onBufferFlushed(e,{type:t}){t===qe.AUDIO&&(this.bufferFlushed=!0,this.state===W.ENDED&&(this.state=W.IDLE))}_handleTransmuxComplete(e){var t;let i="audio",{hls:s}=this,{remuxResult:n,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:l,part:d,level:c}=o,{details:u}=c,{audio:h,text:f,id3:g,initSegment:E}=n;if(this.fragContextChanged(l)||!u){this.fragmentTracker.removeFragment(l);return}if(this.state=W.PARSING,this.switchingTrack&&h&&this.completeAudioSwitch(this.switchingTrack),E!=null&&E.tracks){let T=l.initSegment||l;this._bufferInitSegment(E.tracks,T,a),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:T,id:i,tracks:E.tracks})}if(h){let{startPTS:T,endPTS:A,startDTS:k,endDTS:L}=h;d&&(d.elementaryStreams[qe.AUDIO]={startPTS:T,endPTS:A,startDTS:k,endDTS:L}),l.setElementaryStreamInfo(qe.AUDIO,T,A,k,L),this.bufferFragmentData(h,l,d,a)}if(g!=null&&(t=g.samples)!=null&&t.length){let T=pt({id:i,frag:l,details:u},g);s.trigger(b.FRAG_PARSING_METADATA,T)}if(f){let T=pt({id:i,frag:l,details:u},f);s.trigger(b.FRAG_PARSING_USERDATA,T)}}_bufferInitSegment(e,t,i){if(this.state!==W.PARSING)return;e.video&&delete e.video;let s=e.audio;if(!s)return;s.levelCodec=s.codec,s.id="audio",this.log(`Init audio buffer, container:${s.container}, codecs[parsed]=[${s.codec}]`),this.hls.trigger(b.BUFFER_CODECS,e);let n=s.initSegment;if(n!=null&&n.byteLength){let a={type:"audio",frag:t,part:null,chunkMeta:i,parent:t.type,data:n};this.hls.trigger(b.BUFFER_APPENDING,a)}this.tick()}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);if(this.fragCurrent=e,this.switchingTrack||s===Tt.NOT_LOADED||s===Tt.PARTIAL){var n;e.sn==="initSegment"?this._loadInitSegment(e,t):(n=t.details)!=null&&n.live&&!this.initPTS[e.cc]?(this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=W.WAITING_INIT_PTS):(this.startFragRequested=!0,super.loadFragment(e,t,i))}else this.clearTrackerIfNeeded(e)}completeAudioSwitch(e){let{hls:t,media:i,bufferedTrack:s}=this,n=s==null?void 0:s.attrs,a=e.attrs;i&&n&&(n.CHANNELS!==a.CHANNELS||n.NAME!==a.NAME||n.LANGUAGE!==a.LANGUAGE)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio")),this.bufferedTrack=e,this.switchingTrack=null,t.trigger(b.AUDIO_TRACK_SWITCHED,jt({},e))}},nh=class extends Vn{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.audioTracks||[]}onAudioTrackLoaded(e,t){let{id:i,groupId:s,details:n}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==s){this.warn(`Track with id:${i} and group:${s} not found in active group ${a.groupId}`);return}let o=a.details;a.details=t.details,this.log(`audio-track ${i} "${a.name}" lang:${a.lang} group:${s} loaded [${n.startSN}-${n.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!(t!=null&&t.audioGroupIds))return;let i=t.audioGroupIds[t.urlId];if(this.groupId!==i){this.groupId=i||null;let s=this.tracks.filter(a=>!i||a.groupId===i);this.selectDefaultTrack&&!s.some(a=>a.default)&&(this.selectDefaultTrack=!1),this.tracksInGroup=s;let n={audioTracks:s};this.log(`Updating audio tracks, ${s.length} track(s) found in group:${i}`),this.hls.trigger(b.AUDIO_TRACKS_UPDATED,n),this.selectInitialTrack()}else this.shouldReloadPlaylist(this.currentTrack)&&this.setAudioTrack(this.trackId)}onError(e,t){t.fatal||!t.context||t.context.type===Ue.AUDIO_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&(this.requestScheduled=-1,this.checkRetry(t))}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioTrack(e){let t=this.tracksInGroup;if(e<0||e>=t.length){this.warn("Invalid id passed to audio-track controller");return}this.clearTimer();let i=this.currentTrack;t[this.trackId];let s=t[e],{groupId:n,name:a}=s;if(this.log(`Switching to audio-track ${e} "${a}" lang:${s.lang} group:${n}`),this.trackId=e,this.currentTrack=s,this.selectDefaultTrack=!1,this.hls.trigger(b.AUDIO_TRACK_SWITCHING,jt({},s)),s.details&&!s.details.live)return;let o=this.switchParams(s.url,i==null?void 0:i.details);this.loadPlaylist(o)}selectInitialTrack(){let e=this.tracksInGroup,t=this.findTrackId(this.currentTrack)|this.findTrackId(null);if(t!==-1)this.setAudioTrack(t);else{let i=new Error(`No track found for running audio group-ID: ${this.groupId} track count: ${e.length}`);this.warn(i.message),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:i})}}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let s=t[i];if((!this.selectDefaultTrack||s.default)&&(!e||e.attrs["STABLE-RENDITION-ID"]!==void 0&&e.attrs["STABLE-RENDITION-ID"]===s.attrs["STABLE-RENDITION-ID"]||e.name===s.name&&e.lang===s.lang))return s.id}return-1}loadPlaylist(e){super.loadPlaylist();let t=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(t)){let i=t.id,s=t.groupId,n=t.url;if(e)try{n=e.addDirectives(n)}catch(a){this.warn(`Could not construct new URL with HLS Delivery Directives: ${a}`)}this.log(`loading audio-track playlist ${i} "${t.name}" lang:${t.lang} group:${s}`),this.clearTimer(),this.hls.trigger(b.AUDIO_TRACK_LOADING,{url:n,id:i,groupId:s,deliveryDirectives:e||null})}}};function _0(r,e){if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(!J_(r[t].attrs,e[t].attrs))return!1;return!0}function J_(r,e){let t=r["STABLE-RENDITION-ID"];return t?t===e["STABLE-RENDITION-ID"]:!["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED"].some(i=>r[i]!==e[i])}var Rg=500,ah=class extends qn{constructor(e,t,i){super(e,t,i,"[subtitle-stream-controller]",ge.SUBTITLE),this.levels=[],this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=W.IDLE,this.setInterval(Rg),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,t){this.mainDetails=t.details}onSubtitleFragProcessed(e,t){let{frag:i,success:s}=t;if(this.fragPrevious=i,this.state=W.IDLE,!s)return;let n=this.tracksBuffered[this.currentTrackId];if(!n)return;let a,o=i.start;for(let d=0;d<n.length;d++)if(o>=n[d].start&&o<=n[d].end){a=n[d];break}let l=i.start+i.duration;a?a.end=l:(a={start:o,end:l},n.push(a)),this.fragmentTracker.fragBuffered(i)}onBufferFlushing(e,t){let{startOffset:i,endOffset:s}=t;if(i===0&&s!==Number.POSITIVE_INFINITY){let n=s-1;if(n<=0)return;t.endOffsetSubtitles=Math.max(0,n),this.tracksBuffered.forEach(a=>{for(let o=0;o<a.length;){if(a[o].end<=n){a.shift();continue}else if(a[o].start<n)a[o].start=n;else break;o++}}),this.fragmentTracker.removeFragmentsInRange(i,n,ge.SUBTITLE)}}onFragBuffered(e,t){if(!this.loadedmetadata&&t.frag.type===ge.MAIN){var i;(i=this.media)!=null&&i.buffered.length&&(this.loadedmetadata=!0)}}onError(e,t){let i=t.frag;(i==null?void 0:i.type)===ge.SUBTITLE&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==W.STOPPED&&(this.state=W.IDLE))}onSubtitleTracksUpdated(e,{subtitleTracks:t}){if(_0(this.levels,t)){this.levels=t.map(i=>new qr(i));return}this.tracksBuffered=[],this.levels=t.map(i=>{let s=new qr(i);return this.tracksBuffered[s.id]=[],s}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,ge.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(e,t){if(this.currentTrackId=t.id,!this.levels.length||this.currentTrackId===-1){this.clearInterval();return}let i=this.levels[this.currentTrackId];i!=null&&i.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,i&&this.setInterval(Rg)}onSubtitleTrackLoaded(e,t){var i;let{details:s,id:n}=t,{currentTrackId:a,levels:o}=this;if(!o.length)return;let l=o[a];if(n>=o.length||n!==a||!l)return;this.mediaBuffer=this.mediaBufferTimeRanges;let d=0;if(s.live||(i=l.details)!=null&&i.live){let c=this.mainDetails;if(s.deltaUpdateFailed||!c)return;let u=c.fragments[0];l.details?(d=this.alignPlaylists(s,l.details),d===0&&u&&(d=u.start,Ou(s,d))):s.hasProgramDateTime&&c.hasProgramDateTime?(l0(s,c),d=s.fragments[0].start):u&&(d=u.start,Ou(s,d))}l.details=s,this.levelLastLoaded=n,!this.startFragRequested&&(this.mainDetails||!s.live)&&this.setStartPosition(l.details,d),this.tick(),s.live&&!this.fragCurrent&&this.media&&this.state===W.IDLE&&(Gn(null,s.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),l.details=void 0))}_handleFragmentLoadComplete(e){let{frag:t,payload:i}=e,s=t.decryptdata,n=this.hls;if(!this.fragContextChanged(t)&&i&&i.byteLength>0&&s&&s.key&&s.iv&&s.method==="AES-128"){let a=performance.now();this.decrypter.decrypt(new Uint8Array(i),s.key.buffer,s.iv.buffer).catch(o=>{throw n.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.FRAG_DECRYPT_ERROR,fatal:!1,error:o,reason:o.message,frag:t}),o}).then(o=>{let l=performance.now();n.trigger(b.FRAG_DECRYPTED,{frag:t,payload:o,stats:{tstart:a,tdecrypt:l}})}).catch(o=>{this.warn(`${o.name}: ${o.message}`),this.state=W.IDLE})}}doTick(){if(!this.media){this.state=W.IDLE;return}if(this.state===W.IDLE){let{currentTrackId:e,levels:t}=this,i=t[e];if(!t.length||!i||!i.details)return;let{config:s}=this,n=this.getLoadPosition(),a=je.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],n,s.maxBufferHole),{end:o,len:l}=a,d=this.getFwdBufferInfo(this.media,ge.MAIN),c=i.details,u=this.getMaxBufferLength(d==null?void 0:d.len)+c.levelTargetDuration;if(l>u)return;let h=c.fragments,f=h.length,g=c.edge,E=null,T=this.fragPrevious;if(o<g){let A=s.maxFragLookUpTolerance,k=o>g-A?0:A;E=Gn(T,h,Math.max(h[0].start,o),k),!E&&T&&T.start<h[0].start&&(E=h[0])}else E=h[f-1];if(!E)return;if(E=this.mapToInitFragWhenRequired(E),E.sn!=="initSegment"){let A=E.sn-c.startSN,k=h[A-1];k&&k.cc===E.cc&&this.fragmentTracker.getState(k)===Tt.NOT_LOADED&&(E=k)}this.fragmentTracker.getState(E)===Tt.NOT_LOADED&&this.loadFragment(E,i,o)}}getMaxBufferLength(e){let t=super.getMaxBufferLength();return e?Math.max(t,e):t}loadFragment(e,t,i){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,t):(this.startFragRequested=!0,super.loadFragment(e,t,i))}get mediaBufferTimeRanges(){return new oh(this.tracksBuffered[this.currentTrackId]||[])}},oh=class{constructor(e){this.buffered=void 0;let t=(i,s,n)=>{if(s=s>>>0,s>n-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${s}) is greater than the maximum bound (${n})`);return e[s][i]};this.buffered={get length(){return e.length},end(i){return t("end",i,e.length)},start(i){return t("start",i,e.length)}}}},lh=class extends Vn{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.trackChangeListener=()=>this.onTextTracksChanged(),this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.trackChangeListener=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes(this.trackId)}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.ERROR,this.onError,this)}onMediaAttached(e,t){this.media=t.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.trackChangeListener,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),vu(this.media.textTracks).forEach(t=>{Gs(t)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupId=null,this.tracksInGroup=[],this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.subtitleTracks}onSubtitleTrackLoaded(e,t){let{id:i,details:s}=t,{trackId:n}=this,a=this.tracksInGroup[n];if(!a){this.warn(`Invalid subtitle track id ${i}`);return}let o=a.details;a.details=t.details,this.log(`subtitle track ${i} loaded [${s.startSN}-${s.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!(t!=null&&t.textGroupIds))return;let i=t.textGroupIds[t.urlId],s=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;if(this.groupId!==i){let n=this.tracks.filter(l=>!i||l.groupId===i);this.tracksInGroup=n;let a=this.findTrackId(s==null?void 0:s.name)||this.findTrackId();this.groupId=i||null;let o={subtitleTracks:n};this.log(`Updating subtitle tracks, ${n.length} track(s) found in "${i}" group-id`),this.hls.trigger(b.SUBTITLE_TRACKS_UPDATED,o),a!==-1&&this.setSubtitleTrack(a,s)}else this.shouldReloadPlaylist(s)&&this.setSubtitleTrack(this.trackId,s)}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let s=t[i];if((!this.selectDefaultTrack||s.default)&&(!e||e===s.name))return s.id}return-1}onError(e,t){t.fatal||!t.context||t.context.type===Ue.SUBTITLE_TRACK&&t.context.id===this.trackId&&t.context.groupId===this.groupId&&this.checkRetry(t)}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1;let t=this.tracksInGroup?this.tracksInGroup[this.trackId]:void 0;this.setSubtitleTrack(e,t)}loadPlaylist(e){super.loadPlaylist();let t=this.tracksInGroup[this.trackId];if(this.shouldLoadPlaylist(t)){let i=t.id,s=t.groupId,n=t.url;if(e)try{n=e.addDirectives(n)}catch(a){this.warn(`Could not construct new URL with HLS Delivery Directives: ${a}`)}this.log(`Loading subtitle playlist for id ${i}`),this.hls.trigger(b.SUBTITLE_TRACK_LOADING,{url:n,id:i,groupId:s,deliveryDirectives:e||null})}}toggleTrackModes(e){let{media:t,trackId:i}=this;if(!t)return;let s=vu(t.textTracks),n=s.filter(o=>o.groupId===this.groupId);if(e===-1)[].slice.call(s).forEach(o=>{o.mode="disabled"});else{let o=n[i];o&&(o.mode="disabled")}let a=n[e];a&&(a.mode=this.subtitleDisplay?"showing":"hidden")}setSubtitleTrack(e,t){var i;let s=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=e;return}if(this.trackId!==e&&this.toggleTrackModes(e),this.trackId===e&&(e===-1||(i=s[e])!=null&&i.details)||e<-1||e>=s.length)return;this.clearTimer();let n=s[e];if(this.log(`Switching to subtitle-track ${e}`+(n?` "${n.name}" lang:${n.lang} group:${n.groupId}`:"")),this.trackId=e,n){let{id:a,groupId:o="",name:l,type:d,url:c}=n;this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:a,groupId:o,name:l,type:d,url:c});let u=this.switchParams(n.url,t==null?void 0:t.details);this.loadPlaylist(u)}else this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:e})}onTextTracksChanged(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let e=-1,t=vu(this.media.textTracks);for(let i=0;i<t.length;i++)if(t[i].mode==="hidden")e=i;else if(t[i].mode==="showing"){e=i;break}this.subtitleTrack!==e&&(this.subtitleTrack=e)}};function vu(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];(i.kind==="subtitles"||i.kind==="captions")&&i.label&&e.push(r[t])}return e}var dh=class{constructor(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}append(e,t){let i=this.queues[t];i.push(e),i.length===1&&this.buffers[t]&&this.executeNext(t)}insertAbort(e,t){this.queues[t].unshift(e),this.executeNext(t)}appendBlocker(e){let t,i=new Promise(n=>{t=n}),s={execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(s,e),i}executeNext(e){let{buffers:t,queues:i}=this,s=t[e],n=i[e];if(n.length){let a=n[0];try{a.execute()}catch(o){M.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),a.onError(o),s!=null&&s.updating||(n.shift(),this.executeNext(e))}}}shiftAndExecuteNext(e){this.queues[e].shift(),this.executeNext(e)}current(e){return this.queues[e][0]}},wg=Ml(),Dg=/([ha]vc.)(?:\.[^.,]+)+/,ch=class{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendError=0,this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this._onMediaSourceOpen=()=>{let{media:t,mediaSource:i}=this;M.log("[buffer-controller]: Media source opened"),t&&(t.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(b.MEDIA_ATTACHED,{media:t})),i&&i.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{M.log("[buffer-controller]: Media source closed")},this._onMediaSourceEnded=()=>{M.log("[buffer-controller]: Media source ended")},this._onMediaEmptied=()=>{let{media:t,_objectUrl:i}=this;t&&t.src!==i&&M.error(`Media element src was set while attaching MediaSource (${i} > ${t.src})`)},this.hls=e,this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_APPENDING,this.onBufferAppending,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.BUFFER_EOS,this.onBufferEos,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(b.FRAG_PARSED,this.onFragParsed,this),e.on(b.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_APPENDING,this.onBufferAppending,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.BUFFER_EOS,this.onBufferEos,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(b.FRAG_PARSED,this.onFragParsed,this),e.off(b.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new dh(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,t){let i=2;(t.audio&&!t.video||!t.altAudio)&&(i=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=i,M.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`)}onMediaAttaching(e,t){let i=this.media=t.media;if(i&&wg){let s=this.mediaSource=new wg;s.addEventListener("sourceopen",this._onMediaSourceOpen),s.addEventListener("sourceended",this._onMediaSourceEnded),s.addEventListener("sourceclose",this._onMediaSourceClose),i.src=self.URL.createObjectURL(s),this._objectUrl=i.src,i.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:t,_objectUrl:i}=this;if(t){if(M.log("[buffer-controller]: media source detaching"),t.readyState==="open")try{t.endOfStream()}catch(s){M.warn(`[buffer-controller]: onMediaDetaching: ${s.message} while calling endOfStream`)}this.onBufferReset(),t.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("sourceended",this._onMediaSourceEnded),t.removeEventListener("sourceclose",this._onMediaSourceClose),e&&(e.removeEventListener("emptied",this._onMediaEmptied),i&&self.URL.revokeObjectURL(i),e.src===i?(e.removeAttribute("src"),e.load()):M.warn("[buffer-controller]: media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(b.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach(e=>{let t=this.sourceBuffer[e];try{t&&(this.removeBufferListeners(e),this.mediaSource&&this.mediaSource.removeSourceBuffer(t),this.sourceBuffer[e]=void 0)}catch(i){M.warn(`[buffer-controller]: Failed to reset the ${e} buffer`,i)}}),this._initSourceBuffer()}onBufferCodecs(e,t){let i=this.getSourceBufferTypes().length;Object.keys(t).forEach(s=>{if(i){let n=this.tracks[s];if(n&&typeof n.buffer.changeType=="function"){let{id:a,codec:o,levelCodec:l,container:d,metadata:c}=t[s],u=(n.levelCodec||n.codec).replace(Dg,"$1"),h=(l||o).replace(Dg,"$1");if(u!==h){let f=`${d};codecs=${l||o}`;this.appendChangeType(s,f),M.log(`[buffer-controller]: switching codec ${u} to ${h}`),this.tracks[s]={buffer:n.buffer,codec:o,container:d,levelCodec:l,metadata:c,id:a}}}}else this.pendingTracks[s]=t[s]}),!i&&(this.bufferCodecEventsExpected=Math.max(this.bufferCodecEventsExpected-1,0),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks())}appendChangeType(e,t){let{operationQueue:i}=this,s={execute:()=>{let n=this.sourceBuffer[e];n&&(M.log(`[buffer-controller]: changing ${e} sourceBuffer type to ${t}`),n.changeType(t)),i.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:n=>{M.warn(`[buffer-controller]: Failed to change ${e} SourceBuffer type`,n)}};i.append(s,e)}onBufferAppending(e,t){let{hls:i,operationQueue:s,tracks:n}=this,{data:a,type:o,frag:l,part:d,chunkMeta:c}=t,u=c.buffering[o],h=self.performance.now();u.start=h;let f=l.stats.buffering,g=d?d.stats.buffering:null;f.start===0&&(f.start=h),g&&g.start===0&&(g.start=h);let E=n.audio,T=!1;o==="audio"&&(E==null?void 0:E.container)==="audio/mpeg"&&(T=!this.lastMpegAudioChunk||c.id===1||this.lastMpegAudioChunk.sn!==c.sn,this.lastMpegAudioChunk=c);let A=l.start,k={execute:()=>{if(u.executeStart=self.performance.now(),T){let L=this.sourceBuffer[o];if(L){let N=A-L.timestampOffset;Math.abs(N)>=.1&&(M.log(`[buffer-controller]: Updating audio SourceBuffer timestampOffset to ${A} (delta: ${N}) sn: ${l.sn})`),L.timestampOffset=A)}}this.appendExecutor(a,o)},onStart:()=>{},onComplete:()=>{let L=self.performance.now();u.executeEnd=u.end=L,f.first===0&&(f.first=L),g&&g.first===0&&(g.first=L);let{sourceBuffer:N}=this,D={};for(let $ in N)D[$]=je.getBuffered(N[$]);this.appendError=0,this.hls.trigger(b.BUFFER_APPENDED,{type:o,frag:l,part:d,chunkMeta:c,parent:l.type,timeRanges:D})},onError:L=>{M.error(`[buffer-controller]: Error encountered while trying to append to the ${o} SourceBuffer`,L);let N={type:pe.MEDIA_ERROR,parent:l.type,details:B.BUFFER_APPEND_ERROR,frag:l,part:d,chunkMeta:c,error:L,err:L,fatal:!1};L.code===DOMException.QUOTA_EXCEEDED_ERR?N.details=B.BUFFER_FULL_ERROR:(this.appendError++,N.details=B.BUFFER_APPEND_ERROR,this.appendError>i.config.appendErrorMaxRetry&&(M.error(`[buffer-controller]: Failed ${i.config.appendErrorMaxRetry} times to append segment in sourceBuffer`),N.fatal=!0)),i.trigger(b.ERROR,N)}};s.append(k,o)}onBufferFlushing(e,t){let{operationQueue:i}=this,s=n=>({execute:this.removeExecutor.bind(this,n,t.startOffset,t.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(b.BUFFER_FLUSHED,{type:n})},onError:a=>{M.warn(`[buffer-controller]: Failed to remove from ${n} SourceBuffer`,a)}});t.type?i.append(s(t.type),t.type):this.getSourceBufferTypes().forEach(n=>{i.append(s(n),n)})}onFragParsed(e,t){let{frag:i,part:s}=t,n=[],a=s?s.elementaryStreams:i.elementaryStreams;a[qe.AUDIOVIDEO]?n.push("audiovideo"):(a[qe.AUDIO]&&n.push("audio"),a[qe.VIDEO]&&n.push("video"));let o=()=>{let l=self.performance.now();i.stats.buffering.end=l,s&&(s.stats.buffering.end=l);let d=s?s.stats:i.stats;this.hls.trigger(b.FRAG_BUFFERED,{frag:i,part:s,stats:d,id:i.type})};n.length===0&&M.warn(`Fragments must have at least one ElementaryStreamType set. type: ${i.type} level: ${i.level} sn: ${i.sn}`),this.blockBuffers(o,n)}onFragChanged(e,t){this.flushBackBuffer()}onBufferEos(e,t){this.getSourceBufferTypes().reduce((s,n)=>{let a=this.sourceBuffer[n];return a&&(!t.type||t.type===n)&&(a.ending=!0,a.ended||(a.ended=!0,M.log(`[buffer-controller]: ${n} sourceBuffer now EOS`))),s&&!!(!a||a.ended)},!0)&&(M.log("[buffer-controller]: Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach(n=>{let a=this.sourceBuffer[n];a&&(a.ending=!1)});let{mediaSource:s}=this;if(!s||s.readyState!=="open"){s&&M.info(`[buffer-controller]: Could not call mediaSource.endOfStream(). mediaSource.readyState: ${s.readyState}`);return}M.log("[buffer-controller]: Calling mediaSource.endOfStream()"),s.endOfStream()}))}onLevelUpdated(e,{details:t}){!t.fragments.length||(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}flushBackBuffer(){let{hls:e,details:t,media:i,sourceBuffer:s}=this;if(!i||t===null)return;let n=this.getSourceBufferTypes();if(!n.length)return;let a=t.live&&e.config.liveBackBufferLength!==null?e.config.liveBackBufferLength:e.config.backBufferLength;if(!ce(a)||a<0)return;let o=i.currentTime,l=t.levelTargetDuration,d=Math.max(a,l),c=Math.floor(o/l)*l-d;n.forEach(u=>{let h=s[u];if(h){let f=je.getBuffered(h);if(f.length>0&&c>f.start(0)){if(e.trigger(b.BACK_BUFFER_REACHED,{bufferEnd:c}),t.live)e.trigger(b.LIVE_BACK_BUFFER_REACHED,{bufferEnd:c});else if(h.ended&&f.end(f.length-1)-o<l*2){M.info(`[buffer-controller]: Cannot flush ${u} back buffer while SourceBuffer is in ended state`);return}e.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:c,type:u})}}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:t,media:i,mediaSource:s}=this,n=e.fragments[0].start+e.totalduration,a=i.duration,o=ce(s.duration)?s.duration:0;e.live&&t.config.liveDurationInfinity?(M.log("[buffer-controller]: Media Source duration is set to Infinity"),s.duration=1/0,this.updateSeekableRange(e)):(n>o&&n>a||!ce(a))&&(M.log(`[buffer-controller]: Updating Media Source duration to ${n.toFixed(3)}`),s.duration=n)}updateSeekableRange(e){let t=this.mediaSource,i=e.fragments;if(i.length&&e.live&&t!=null&&t.setLiveSeekableRange){let n=Math.max(0,i[0].start),a=Math.max(n,n+e.totalduration);t.setLiveSeekableRange(n,a)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:t,pendingTracks:i}=this,s=Object.keys(i).length;if(s&&!e||s===2){this.createSourceBuffers(i),this.pendingTracks={};let n=this.getSourceBufferTypes();if(n.length)this.hls.trigger(b.BUFFER_CREATED,{tracks:this.tracks}),n.forEach(a=>{t.executeNext(a)});else{let a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}}createSourceBuffers(e){let{sourceBuffer:t,mediaSource:i}=this;if(!i)throw Error("createSourceBuffers called when mediaSource was null");for(let s in e)if(!t[s]){let n=e[s];if(!n)throw Error(`source buffer exists for track ${s}, however track does not`);let a=n.levelCodec||n.codec,o=`${n.container};codecs=${a}`;M.log(`[buffer-controller]: creating sourceBuffer(${o})`);try{let l=t[s]=i.addSourceBuffer(o),d=s;this.addBufferListener(d,"updatestart",this._onSBUpdateStart),this.addBufferListener(d,"updateend",this._onSBUpdateEnd),this.addBufferListener(d,"error",this._onSBUpdateError),this.tracks[s]={buffer:l,codec:a,container:n.container,levelCodec:n.levelCodec,metadata:n.metadata,id:n.id}}catch(l){M.error(`[buffer-controller]: error while trying to add sourceBuffer: ${l.message}`),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:l,mimeType:o})}}}_onSBUpdateStart(e){let{operationQueue:t}=this;t.current(e).onStart()}_onSBUpdateEnd(e){let{operationQueue:t}=this;t.current(e).onComplete(),t.shiftAndExecuteNext(e)}_onSBUpdateError(e,t){let i=new Error(`${e} SourceBuffer error`);M.error(`[buffer-controller]: ${i}`,t),this.hls.trigger(b.ERROR,{type:pe.MEDIA_ERROR,details:B.BUFFER_APPENDING_ERROR,error:i,fatal:!1});let s=this.operationQueue.current(e);s&&s.onError(t)}removeExecutor(e,t,i){let{media:s,mediaSource:n,operationQueue:a,sourceBuffer:o}=this,l=o[e];if(!s||!n||!l){M.warn(`[buffer-controller]: Attempting to remove from the ${e} SourceBuffer, but it does not exist`),a.shiftAndExecuteNext(e);return}let d=ce(s.duration)?s.duration:1/0,c=ce(n.duration)?n.duration:1/0,u=Math.max(0,t),h=Math.min(i,d,c);h>u&&!l.ending?(l.ended=!1,M.log(`[buffer-controller]: Removing [${u},${h}] from the ${e} SourceBuffer`),l.remove(u,h)):a.shiftAndExecuteNext(e)}appendExecutor(e,t){let{operationQueue:i,sourceBuffer:s}=this,n=s[t];if(!n){M.warn(`[buffer-controller]: Attempting to append to the ${t} SourceBuffer, but it does not exist`),i.shiftAndExecuteNext(t);return}n.ended=!1,n.appendBuffer(e)}blockBuffers(e,t=this.getSourceBufferTypes()){if(!t.length){M.log("[buffer-controller]: Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(e);return}let{operationQueue:i}=this,s=t.map(n=>i.appendBlocker(n));Promise.all(s).then(()=>{e(),t.forEach(n=>{let a=this.sourceBuffer[n];a!=null&&a.updating||i.shiftAndExecuteNext(n)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,t,i){let s=this.sourceBuffer[e];if(!s)return;let n=i.bind(this,e);this.listeners[e].push({event:t,listener:n}),s.addEventListener(t,n)}removeBufferListeners(e){let t=this.sourceBuffer[e];!t||this.listeners[e].forEach(i=>{t.removeEventListener(i.event,i.listener)})}},Cg={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},A0=function(e){let t=e;return Cg.hasOwnProperty(e)&&(t=Cg[e]),String.fromCharCode(t)},gi=15,Xi=100,eA={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},tA={17:2,18:4,21:6,22:8,23:10,19:13,20:15},iA={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},rA={25:2,26:4,29:6,30:8,31:10,27:13,28:15},sA=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],uh=class{constructor(){this.time=null,this.verboseLevel=0}log(e,t){if(this.verboseLevel>=e){let i=typeof t=="function"?t():t;M.log(`${this.time} [${e}] ${i}`)}}},Hr=function(e){let t=[];for(let i=0;i<e.length;i++)t.push(e[i].toString(16));return t},Ll=class{constructor(e,t,i,s,n){this.foreground=void 0,this.underline=void 0,this.italics=void 0,this.background=void 0,this.flash=void 0,this.foreground=e||"white",this.underline=t||!1,this.italics=i||!1,this.background=s||"black",this.flash=n||!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(e){let t=["foreground","underline","italics","background","flash"];for(let i=0;i<t.length;i++){let s=t[i];e.hasOwnProperty(s)&&(this[s]=e[s])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash}copy(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}},hh=class{constructor(e,t,i,s,n,a){this.uchar=void 0,this.penState=void 0,this.uchar=e||" ",this.penState=new Ll(t,i,s,n,a)}reset(){this.uchar=" ",this.penState.reset()}setChar(e,t){this.uchar=e,this.penState.copy(t)}setPenState(e){this.penState.copy(e)}equals(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)}copy(e){this.uchar=e.uchar,this.penState.copy(e.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}},fh=class{constructor(e){this.chars=void 0,this.pos=void 0,this.currPenState=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chars=[];for(let t=0;t<Xi;t++)this.chars.push(new hh);this.logger=e,this.pos=0,this.currPenState=new Ll}equals(e){let t=!0;for(let i=0;i<Xi;i++)if(!this.chars[i].equals(e.chars[i])){t=!1;break}return t}copy(e){for(let t=0;t<Xi;t++)this.chars[t].copy(e.chars[t])}isEmpty(){let e=!0;for(let t=0;t<Xi;t++)if(!this.chars[t].isEmpty()){e=!1;break}return e}setCursor(e){this.pos!==e&&(this.pos=e),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>Xi&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Xi)}moveCursor(e){let t=this.pos+e;if(e>1)for(let i=this.pos+1;i<t+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(t)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(e){e>=144&&this.backSpace();let t=A0(e);if(this.pos>=Xi){this.logger.log(0,()=>"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1)}clearFromPos(e){let t;for(t=e;t<Xi;t++)this.chars[t].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let e=[],t=!0;for(let i=0;i<Xi;i++){let s=this.chars[i].uchar;s!==" "&&(t=!1),e.push(s)}return t?"":e.join("")}setPenStyles(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)}},Hn=class{constructor(e){this.rows=void 0,this.currRow=void 0,this.nrRollUpRows=void 0,this.lastOutputScreen=void 0,this.logger=void 0,this.rows=[];for(let t=0;t<gi;t++)this.rows.push(new fh(e));this.logger=e,this.currRow=gi-1,this.nrRollUpRows=null,this.lastOutputScreen=null,this.reset()}reset(){for(let e=0;e<gi;e++)this.rows[e].clear();this.currRow=gi-1}equals(e){let t=!0;for(let i=0;i<gi;i++)if(!this.rows[i].equals(e.rows[i])){t=!1;break}return t}copy(e){for(let t=0;t<gi;t++)this.rows[t].copy(e.rows[t])}isEmpty(){let e=!0;for(let t=0;t<gi;t++)if(!this.rows[t].isEmpty()){e=!1;break}return e}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(e){this.rows[this.currRow].insertChar(e)}setPen(e){this.rows[this.currRow].setPenStyles(e)}moveCursor(e){this.rows[this.currRow].moveCursor(e)}setCursor(e){this.logger.log(2,"setCursor: "+e),this.rows[this.currRow].setCursor(e)}setPAC(e){this.logger.log(2,()=>"pacData = "+JSON.stringify(e));let t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(let o=0;o<gi;o++)this.rows[o].clear();let n=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let o=a.rows[n].cueStartTime,l=this.logger.time;if(o&&l!==null&&o<l)for(let d=0;d<this.nrRollUpRows;d++)this.rows[t-this.nrRollUpRows+d+1].copy(a.rows[n+d])}}this.currRow=t;let i=this.rows[this.currRow];if(e.indent!==null){let n=e.indent,a=Math.max(n-1,0);i.setCursor(e.indent),e.color=i.chars[a].penState.foreground}let s={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(s)}setBkgData(e){this.logger.log(2,()=>"bkgData = "+JSON.stringify(e)),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());let e=this.currRow+1-this.nrRollUpRows,t=this.rows.splice(e,1)[0];t.clear(),this.rows.splice(this.currRow,0,t),this.logger.log(2,"Rolling up")}getDisplayText(e){e=e||!1;let t=[],i="",s=-1;for(let n=0;n<gi;n++){let a=this.rows[n].getTextString();a&&(s=n+1,e?t.push("Row "+s+": '"+a+"'"):t.push(a.trim()))}return t.length>0&&(e?i="["+t.join(" | ")+"]":i=t.join(`
|
|
964
|
+
`)),i}getTextAndFormat(){return this.rows}},kl=class{constructor(e,t,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new Hn(i),this.nonDisplayedMemory=new Hn(i),this.lastOutputScreen=new Hn(i),this.currRollUpRow=this.displayedMemory.rows[gi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[gi-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(e){this.outputFilter=e}setPAC(e){this.writeScreen.setPAC(e)}setBkgData(e){this.writeScreen.setBkgData(e)}setMode(e){e!==this.mode&&(this.mode=e,this.logger.log(2,()=>"MODE="+e),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(e){for(let i=0;i<e.length;i++)this.writeScreen.insertChar(e[i]);let t=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>t+": "+this.writeScreen.getDisplayText(!0)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)}ccMIDROW(e){let t={flash:!1};if(t.underline=e%2===1,t.italics=e>=46,t.italics)t.foreground="white";else{let i=Math.floor(e/2)-16,s=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=s[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)}outputDataUpdate(e=!1){let t=this.logger.time;t!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=t:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t),this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}},Rl=class{constructor(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory=void 0,this.logger=void 0;let s=new uh;this.channels=[null,new kl(e,t,s),new kl(e+1,i,s)],this.cmdHistory=Og(),this.logger=s}getHandler(e){return this.channels[e].getHandler()}setHandler(e,t){this.channels[e].setHandler(t)}addData(e,t){let i,s,n,a=!1;this.logger.time=e;for(let o=0;o<t.length;o+=2)if(s=t[o]&127,n=t[o+1]&127,!(s===0&&n===0)){if(this.logger.log(3,"["+Hr([t[o],t[o+1]])+"] -> ("+Hr([s,n])+")"),i=this.parseCmd(s,n),i||(i=this.parseMidrow(s,n)),i||(i=this.parsePAC(s,n)),i||(i=this.parseBackgroundAttributes(s,n)),!i&&(a=this.parseChars(s,n),a)){let l=this.currentChannel;l&&l>0?this.channels[l].insertChars(a):this.logger.log(2,"No channel found yet. TEXT-MODE?")}!i&&!a&&this.logger.log(2,"Couldn't parse cleaned data "+Hr([s,n])+" orig: "+Hr([t[o],t[o+1]]))}}parseCmd(e,t){let{cmdHistory:i}=this,s=(e===20||e===28||e===21||e===29)&&t>=32&&t<=47,n=(e===23||e===31)&&t>=33&&t<=35;if(!(s||n))return!1;if(Mg(e,t,i))return Hs(null,null,i),this.logger.log(3,"Repeated command ("+Hr([e,t])+") is dropped"),!0;let a=e===20||e===21||e===23?1:2,o=this.channels[a];return e===20||e===21||e===28||e===29?t===32?o.ccRCL():t===33?o.ccBS():t===34?o.ccAOF():t===35?o.ccAON():t===36?o.ccDER():t===37?o.ccRU(2):t===38?o.ccRU(3):t===39?o.ccRU(4):t===40?o.ccFON():t===41?o.ccRDC():t===42?o.ccTR():t===43?o.ccRTD():t===44?o.ccEDM():t===45?o.ccCR():t===46?o.ccENM():t===47&&o.ccEOC():o.ccTO(t-32),Hs(e,t,i),this.currentChannel=a,!0}parseMidrow(e,t){let i=0;if((e===17||e===25)&&t>=32&&t<=47){if(e===17?i=1:i=2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let s=this.channels[i];return s?(s.ccMIDROW(t),this.logger.log(3,"MIDROW ("+Hr([e,t])+")"),!0):!1}return!1}parsePAC(e,t){let i,s=this.cmdHistory,n=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,a=(e===16||e===24)&&t>=64&&t<=95;if(!(n||a))return!1;if(Mg(e,t,s))return Hs(null,null,s),!0;let o=e<=23?1:2;t>=64&&t<=95?i=o===1?eA[e]:iA[e]:i=o===1?tA[e]:rA[e];let l=this.channels[o];return l?(l.setPAC(this.interpretPAC(i,t)),Hs(e,t,s),this.currentChannel=o,!0):!1}interpretPAC(e,t){let i,s={color:null,italics:!1,indent:null,underline:!1,row:e};return t>95?i=t-96:i=t-64,s.underline=(i&1)===1,i<=13?s.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(s.italics=!0,s.color="white"):s.indent=Math.floor((i-16)/2)*4,s}parseChars(e,t){let i,s=null,n=null;if(e>=25?(i=2,n=e-8):(i=1,n=e),n>=17&&n<=19){let a;n===17?a=t+80:n===18?a=t+112:a=t+144,this.logger.log(2,"Special char '"+A0(a)+"' in channel "+i),s=[a]}else e>=32&&e<=127&&(s=t===0?[e]:[e,t]);if(s){let a=Hr(s);this.logger.log(3,"Char codes = "+a.join(",")),Hs(e,t,this.cmdHistory)}return s}parseBackgroundAttributes(e,t){let i=(e===16||e===24)&&t>=32&&t<=47,s=(e===23||e===31)&&t>=45&&t<=47;if(!(i||s))return!1;let n,a={};e===16||e===24?(n=Math.floor((t-32)/2),a.background=sA[n],t%2===1&&(a.background=a.background+"_semi")):t===45?a.background="transparent":(a.foreground="black",t===47&&(a.underline=!0));let o=e<=23?1:2;return this.channels[o].setBkgData(a),Hs(e,t,this.cmdHistory),!0}reset(){for(let e=0;e<Object.keys(this.channels).length;e++){let t=this.channels[e];t&&t.reset()}this.cmdHistory=Og()}cueSplitAtTime(e){for(let t=0;t<this.channels.length;t++){let i=this.channels[t];i&&i.cueSplitAtTime(e)}}};function Hs(r,e,t){t.a=r,t.b=e}function Mg(r,e,t){return t.a===r&&t.b===e}function Og(){return{a:null,b:null}}var Vs=class{constructor(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,t,i){(this.startTime===null||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}},Ch=function(){if(typeof self!="undefined"&&self.VTTCue)return self.VTTCue;let r=["","lr","rl"],e=["start","middle","end","left","right"];function t(o,l){if(typeof l!="string"||!Array.isArray(o))return!1;let d=l.toLowerCase();return~o.indexOf(d)?d:!1}function i(o){return t(r,o)}function s(o){return t(e,o)}function n(o,...l){let d=1;for(;d<arguments.length;d++){let c=arguments[d];for(let u in c)o[u]=c[u]}return o}function a(o,l,d){let c=this,u={enumerable:!0};c.hasBeenReset=!1;let h="",f=!1,g=o,E=l,T=d,A=null,k="",L=!0,N="auto",D="start",$=50,O="middle",G=50,q="middle";Object.defineProperty(c,"id",n({},u,{get:function(){return h},set:function(P){h=""+P}})),Object.defineProperty(c,"pauseOnExit",n({},u,{get:function(){return f},set:function(P){f=!!P}})),Object.defineProperty(c,"startTime",n({},u,{get:function(){return g},set:function(P){if(typeof P!="number")throw new TypeError("Start time must be set to a number.");g=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"endTime",n({},u,{get:function(){return E},set:function(P){if(typeof P!="number")throw new TypeError("End time must be set to a number.");E=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"text",n({},u,{get:function(){return T},set:function(P){T=""+P,this.hasBeenReset=!0}})),Object.defineProperty(c,"region",n({},u,{get:function(){return A},set:function(P){A=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"vertical",n({},u,{get:function(){return k},set:function(P){let X=i(P);if(X===!1)throw new SyntaxError("An invalid or illegal string was specified.");k=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"snapToLines",n({},u,{get:function(){return L},set:function(P){L=!!P,this.hasBeenReset=!0}})),Object.defineProperty(c,"line",n({},u,{get:function(){return N},set:function(P){if(typeof P!="number"&&P!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");N=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"lineAlign",n({},u,{get:function(){return D},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");D=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"position",n({},u,{get:function(){return $},set:function(P){if(P<0||P>100)throw new Error("Position must be between 0 and 100.");$=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"positionAlign",n({},u,{get:function(){return O},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");O=X,this.hasBeenReset=!0}})),Object.defineProperty(c,"size",n({},u,{get:function(){return G},set:function(P){if(P<0||P>100)throw new Error("Size must be between 0 and 100.");G=P,this.hasBeenReset=!0}})),Object.defineProperty(c,"align",n({},u,{get:function(){return q},set:function(P){let X=s(P);if(!X)throw new SyntaxError("An invalid or illegal string was specified.");q=X,this.hasBeenReset=!0}})),c.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}(),mh=class{decode(e,t){if(!e)return"";if(typeof e!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}};function S0(r){function e(i,s,n,a){return(i|0)*3600+(s|0)*60+(n|0)+parseFloat(a||0)}let t=r.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return t?parseFloat(t[2])>59?e(t[2],t[3],0,t[4]):e(t[1],t[2],t[3],t[4]):null}var ph=class{constructor(){this.values=Object.create(null)}set(e,t){!this.get(e)&&t!==""&&(this.values[e]=t)}get(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t}has(e){return e in this.values}alt(e,t,i){for(let s=0;s<i.length;++s)if(t===i[s]){this.set(e,t);break}}integer(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))}percent(e,t){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(t)){let i=parseFloat(t);if(i>=0&&i<=100)return this.set(e,i),!0}return!1}};function x0(r,e,t,i){let s=i?r.split(i):[r];for(let n in s){if(typeof s[n]!="string")continue;let a=s[n].split(t);if(a.length!==2)continue;let o=a[0],l=a[1];e(o,l)}}var gh=new Ch(0,0,""),ll=gh.align==="middle"?"middle":"center";function nA(r,e,t){let i=r;function s(){let o=S0(r);if(o===null)throw new Error("Malformed timestamp: "+i);return r=r.replace(/^[^\sa-zA-Z-]+/,""),o}function n(o,l){let d=new ph;x0(o,function(h,f){let g;switch(h){case"region":for(let E=t.length-1;E>=0;E--)if(t[E].id===f){d.set(h,t[E].region);break}break;case"vertical":d.alt(h,f,["rl","lr"]);break;case"line":g=f.split(","),d.integer(h,g[0]),d.percent(h,g[0])&&d.set("snapToLines",!1),d.alt(h,g[0],["auto"]),g.length===2&&d.alt("lineAlign",g[1],["start",ll,"end"]);break;case"position":g=f.split(","),d.percent(h,g[0]),g.length===2&&d.alt("positionAlign",g[1],["start",ll,"end","line-left","line-right","auto"]);break;case"size":d.percent(h,f);break;case"align":d.alt(h,f,["start",ll,"end","left","right"]);break}},/:/,/\s/),l.region=d.get("region",null),l.vertical=d.get("vertical","");let c=d.get("line","auto");c==="auto"&&gh.line===-1&&(c=-1),l.line=c,l.lineAlign=d.get("lineAlign","start"),l.snapToLines=d.get("snapToLines",!0),l.size=d.get("size",100),l.align=d.get("align",ll);let u=d.get("position","auto");u==="auto"&&gh.position===50&&(u=l.align==="start"||l.align==="left"?0:l.align==="end"||l.align==="right"?100:50),l.position=u}function a(){r=r.replace(/^\s+/,"")}if(a(),e.startTime=s(),a(),r.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+i);r=r.slice(3),a(),e.endTime=s(),a(),n(r,e)}function I0(r){return r.replace(/<br(?: \/)?>/gi,`
|
|
965
965
|
`)}var vh=class{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new mh,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(e){let t=this;e&&(t.buffer+=t.decoder.decode(e,{stream:!0}));function i(){let n=t.buffer,a=0;for(n=I0(n);a<n.length&&n[a]!=="\r"&&n[a]!==`
|
|
966
966
|
`;)++a;let o=n.slice(0,a);return n[a]==="\r"&&++a,n[a]===`
|
|
967
967
|
`&&++a,t.buffer=n.slice(a),o}function s(n){x0(n,function(a,o){},/:/)}try{let n="";if(t.state==="INITIAL"){if(!/\r\n|\n/.test(t.buffer))return this;n=i();let o=n.match(/^()?WEBVTT([ \t].*)?$/);if(!(o!=null&&o[0]))throw new Error("Malformed WebVTT signature.");t.state="HEADER"}let a=!1;for(;t.buffer;){if(!/\r\n|\n/.test(t.buffer))return this;switch(a?a=!1:n=i(),t.state){case"HEADER":/:/.test(n)?s(n):n||(t.state="ID");continue;case"NOTE":n||(t.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(n)){t.state="NOTE";break}if(!n)continue;if(t.cue=new Ch(0,0,""),t.state="CUE",n.indexOf("-->")===-1){t.cue.id=n;continue}case"CUE":if(!t.cue){t.state="BADCUE";continue}try{nA(n,t.cue,t.regionList)}catch{t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case"CUETEXT":{let o=n.indexOf("-->")!==-1;if(!n||o&&(a=!0)){t.oncue&&t.cue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}if(t.cue===null)continue;t.cue.text&&(t.cue.text+=`
|
|
968
968
|
`),t.cue.text+=n}continue;case"BADCUE":n||(t.state="ID")}}}catch{t.state==="CUETEXT"&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state=t.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let e=this;try{if((e.cue||e.state==="HEADER")&&(e.buffer+=`
|
|
969
969
|
|
|
970
|
-
`,e.parse()),e.state==="INITIAL"||e.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(t){e.onparsingerror&&e.onparsingerror(t)}return e.onflush&&e.onflush(),this}},aA=/\r\n|\n\r|\n|\r/g,Eu=function(e,t,i=0){return e.slice(i,i+t.length)===t},oA=function(e){let t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),s=parseInt(e.slice(-9,-7)),n=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!ce(t)||!ce(i)||!ce(s)||!ce(n))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return t+=1e3*i,t+=60*1e3*s,t+=60*60*1e3*n,t},bu=function(e){let t=5381,i=e.length;for(;i;)t=t*33^e.charCodeAt(--i);return(t>>>0).toString()};function Mh(r,e,t){return bu(r.toString())+bu(e.toString())+bu(t)}var lA=function(e,t,i){let s=e[t],n=e[s.prevCC];if(!n||!n.new&&s.new){e.ccOffset=e.presentationOffset=s.start,s.new=!1;return}for(;(a=n)!=null&&a.new;){var a;e.ccOffset+=s.start-n.start,s.new=!1,s=n,n=e[s.prevCC]}e.presentationOffset=i};function dA(r,e,t,i,s,n,a){let o=new vh,l=
|
|
970
|
+
`,e.parse()),e.state==="INITIAL"||e.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(t){e.onparsingerror&&e.onparsingerror(t)}return e.onflush&&e.onflush(),this}},aA=/\r\n|\n\r|\n|\r/g,Eu=function(e,t,i=0){return e.slice(i,i+t.length)===t},oA=function(e){let t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),s=parseInt(e.slice(-9,-7)),n=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!ce(t)||!ce(i)||!ce(s)||!ce(n))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return t+=1e3*i,t+=60*1e3*s,t+=60*60*1e3*n,t},bu=function(e){let t=5381,i=e.length;for(;i;)t=t*33^e.charCodeAt(--i);return(t>>>0).toString()};function Mh(r,e,t){return bu(r.toString())+bu(e.toString())+bu(t)}var lA=function(e,t,i){let s=e[t],n=e[s.prevCC];if(!n||!n.new&&s.new){e.ccOffset=e.presentationOffset=s.start,s.new=!1;return}for(;(a=n)!=null&&a.new;){var a;e.ccOffset+=s.start-n.start,s.new=!1,s=n,n=e[s.prevCC]}e.presentationOffset=i};function dA(r,e,t,i,s,n,a){let o=new vh,l=Hi(new Uint8Array(r)).trim().replace(aA,`
|
|
971
971
|
`).split(`
|
|
972
|
-
`),d=[],c=e?
|
|
973
|
-
`)}),o.flush()}var yu="stpp.ttml.im1t",L0=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,k0=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,cA={left:"start",center:"center",right:"end",start:"start",end:"end"};function Pg(r,e,t,i){let s=Pe(new Uint8Array(r),["mdat"]);if(s.length===0){i(new Error("Could not parse IMSC1 mdat"));return}let n=s.map(o=>
|
|
974
|
-
`:(n=i.childNodes)!=null&&n.length?R0(i,e):e?t+i.textContent.trim().replace(/\s+/g," "):t+i.textContent},"")}function hA(r,e,t){let i="http://www.w3.org/ns/ttml#styling",s=null,n=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],a=r!=null&&r.hasAttribute("style")?r.getAttribute("style"):null;return a&&t.hasOwnProperty(a)&&(s=t[a]),n.reduce((o,l)=>{let d=_u(e,i,l)||_u(r,i,l)||_u(s,i,l);return d&&(o[l]=d),o},{})}function _u(r,e,t){return r&&r.hasAttributeNS(e,t)?r.getAttributeNS(e,t):null}function Ug(r){return new Error(`Could not parse ttml timestamp ${r}`)}function Au(r,e){if(!r)return null;let t=S0(r);return t===null&&(L0.test(r)?t=fA(r,e):k0.test(r)&&(t=mA(r,e))),t}function fA(r,e){let t=L0.exec(r),i=(t[4]|0)+(t[5]|0)/e.subFrameRate;return(t[1]|0)*3600+(t[2]|0)*60+(t[3]|0)+i/e.frameRate}function mA(r,e){let t=k0.exec(r),i=Number(t[1]);switch(t[2]){case"h":return i*3600;case"m":return i*60;case"ms":return i*1e3;case"f":return i/e.frameRate;case"t":return i/e.tickRate}return i}var Eh=class{constructor(e){if(this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Fg(),this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},this.config.enableCEA708Captions){let t=new Vs(this,"textTrack1"),i=new Vs(this,"textTrack2"),s=new Vs(this,"textTrack3"),n=new Vs(this,"textTrack4");this.cea608Parser1=new Rl(1,t,i),this.cea608Parser2=new Rl(3,s,n)}e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null}addCues(e,t,i,s,n){let a=!1;for(let o=n.length;o--;){let l=n[o],d=gA(l[0],l[1],t,i);if(d>=0&&(l[0]=Math.min(l[0],t),l[1]=Math.max(l[1],i),a=!0,d/(i-t)>.5))return}if(a||n.push([t,i]),this.config.renderTextTracksNatively){let o=this.captionsTracks[e];this.Cues.newCue(o,t,i,s)}else{let o=this.Cues.newCue(null,t,i,s);this.hls.trigger(b.CUES_PARSED,{type:"captions",cues:o,track:e})}}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:n}){let{unparsedVttFrags:a}=this;i==="main"&&(this.initPTS[t.cc]={baseTime:s,timescale:n}),a.length&&(this.unparsedVttFrags=[],a.forEach(o=>{this.onFragLoaded(b.FRAG_LOADED,o)}))}getExistingTrack(e){let{media:t}=this;if(t)for(let i=0;i<t.textTracks.length;i++){let s=t.textTracks[i];if(s[e])return s}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:t,captionsTracks:i,media:s}=this,{label:n,languageCode:a}=t[e],o=this.getExistingTrack(e);if(o)i[e]=o,Hs(i[e]),t0(i[e],s);else{let l=this.createTextTrack("captions",n,a);l&&(l[e]=!0,i[e]=l)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let t=this.captionsProperties[e];if(!t)return;let i=t.label,s={_id:e,label:i,kind:"captions",default:t.media?!!t.media.default:!1,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=s,this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[s]})}createTextTrack(e,t,i){let s=this.media;if(!!s)return s.addTextTrack(e,t,i)}onMediaAttaching(e,t){this.media=t.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach(t=>{Hs(e[t]),delete e[t]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Fg(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let t=e.textTracks;if(t)for(let i=0;i<t.length;i++)Hs(t[i])}onSubtitleTracksUpdated(e,t){let i=t.subtitleTracks||[],s=i.some(n=>n.textCodec===yu);if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(_0(this.tracks,i)){this.tracks=i;return}if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){let a=this.media?this.media.textTracks:null;this.tracks.forEach((o,l)=>{let d;if(a&&l<a.length){let c=null;for(let u=0;u<a.length;u++)if(pA(a[u],o)){c=a[u];break}c&&(d=c)}if(d)Hs(d);else{let c=this._captionsOrSubtitlesFromCharacteristics(o);d=this.createTextTrack(c,o.name,o.lang),d&&(d.mode="disabled")}d&&(d.groupId=o.groupId,this.textTracks.push(d))})}else if(this.tracks.length){let a=this.tracks.map(o=>({label:o.name,kind:o.type.toLowerCase(),default:o.default,subtitleTrack:o}));this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}_captionsOrSubtitlesFromCharacteristics(e){if(e.attrs.CHARACTERISTICS){let t=/transcribes-spoken-dialog/gi.test(e.attrs.CHARACTERISTICS),i=/describes-music-and-sound/gi.test(e.attrs.CHARACTERISTICS);if(t&&i)return"captions"}return"subtitles"}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(i=>{let s=/(?:CC|SERVICE)([1-4])/.exec(i.instreamId);if(!s)return;let n=`textTrack${s[1]}`,a=this.captionsProperties[n];!a||(a.label=i.name,i.lang&&(a.languageCode=i.lang),a.media=i)})}closedCaptionsForLevel(e){let t=this.hls.levels[e.level];return t==null?void 0:t.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){let{cea608Parser1:i,cea608Parser2:s,lastSn:n,lastPartIndex:a}=this;if(!(!this.enabled||!(i&&s))&&t.frag.type===ge.MAIN){var o,l;let d=t.frag.sn,c=(o=t==null||(l=t.part)==null?void 0:l.index)!=null?o:-1;d===n+1||d===n&&c===a+1||(i.reset(),s.reset()),this.lastSn=d,this.lastPartIndex=c}}onFragLoaded(e,t){let{frag:i,payload:s}=t;if(i.type===ge.SUBTITLE)if(s.byteLength){let n=i.decryptdata,a="stats"in t;if(n==null||!n.encrypted||a){let o=this.tracks[i.level],l=this.vttCCs;l[i.cc]||(l[i.cc]={start:i.start,prevCC:this.prevCC,new:!0},this.prevCC=i.cc),o&&o.textCodec===yu?this._parseIMSC1(i,s):this._parseVTTs(t)}}else this.hls.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,t){let i=this.hls;Pg(t,this.initPTS[e.cc],s=>{this._appendCues(s,e.level),i.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},s=>{M.log(`Failed to parse IMSC1: ${s}`),i.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:s})})}_parseVTTs(e){var t;let{frag:i,payload:s}=e,{initPTS:n,unparsedVttFrags:a}=this,o=n.length-1;if(!n[i.cc]&&o===-1){a.push(e);return}let l=this.hls,d=(t=i.initSegment)!=null&&t.data?Kr(i.initSegment.data,new Uint8Array(s)):s;dA(d,this.initPTS[i.cc],this.vttCCs,i.cc,i.start,c=>{this._appendCues(c,i.level),l.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:i})},c=>{let u=c.message==="Missing initPTS for VTT MPEGTS";u?a.push(e):this._fallbackToIMSC1(i,s),M.log(`Failed to parse VTT cue: ${c}`),!(u&&o>i.cc)&&l.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:c})})}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||Pg(t,this.initPTS[e.cc],()=>{i.textCodec=yu,this._parseIMSC1(e,t)},()=>{i.textCodec="wvtt"})}_appendCues(e,t){let i=this.hls;if(this.config.renderTextTracksNatively){let s=this.textTracks[t];if(!s||s.mode==="disabled")return;e.forEach(n=>i0(s,n))}else{let s=this.tracks[t];if(!s)return;let n=s.default?"default":"subtitles"+t;i.trigger(b.CUES_PARSED,{type:"subtitles",cues:e,track:n})}}onFragDecrypted(e,t){let{frag:i}=t;i.type===ge.SUBTITLE&&this.onFragLoaded(b.FRAG_LOADED,t)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,t){let{cea608Parser1:i,cea608Parser2:s}=this;if(!this.enabled||!(i&&s))return;let{frag:n,samples:a}=t;if(!(n.type===ge.MAIN&&this.closedCaptionsForLevel(n)==="NONE"))for(let o=0;o<a.length;o++){let l=a[o].bytes;if(l){let d=this.extractCea608Data(l);i.addData(a[o].pts,d[0]),s.addData(a[o].pts,d[1])}}}onBufferFlushing(e,{startOffset:t,endOffset:i,endOffsetSubtitles:s,type:n}){let{media:a}=this;if(!(!a||a.currentTime<i)){if(!n||n==="video"){let{captionsTracks:o}=this;Object.keys(o).forEach(l=>Ru(o[l],t,i))}if(this.config.renderTextTracksNatively&&t===0&&s!==void 0){let{textTracks:o}=this;Object.keys(o).forEach(l=>Ru(o[l],t,s))}}}extractCea608Data(e){let t=[[],[]],i=e[0]&31,s=2;for(let n=0;n<i;n++){let a=e[s++],o=127&e[s++],l=127&e[s++];if(o===0&&l===0)continue;if((4&a)!==0){let c=3&a;(c===0||c===1)&&(t[c].push(o),t[c].push(l))}}return t}};function pA(r,e){return!!r&&r.label===e.name&&!(r.textTrack1||r.textTrack2)}function gA(r,e,t,i){return Math.min(e,i)-Math.max(r,t)}function Fg(){return{ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}}}var Yn=class{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.unregisterListener(),this.hls.config.capLevelToPlayerSize&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:e}=this;e.on(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:e}=this;e.off(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,t){let i=this.hls.levels[t.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null,this.clientRect=null}onManifestParsed(e,t){let i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onBufferCodecs(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media&&this.mediaHeight>0&&this.mediaWidth>0){let e=this.hls.levels;if(e.length){let t=this.hls;t.autoLevelCapping=this.getMaxLevel(e.length-1),t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}}getMaxLevel(e){let t=this.hls.levels;if(!t.length)return-1;let i=t.filter((s,n)=>this.isLevelAllowed(s)&&n<=e);return this.clientRect=null,Yn.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let e=this.media,t={width:0,height:0};if(e){let i=e.getBoundingClientRect();t.width=i.width,t.height=i.height,!t.width&&!t.height&&(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)}return this.clientRect=t,t}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch{}return e}isLevelAllowed(e){return!this.restrictedLevels.some(i=>e.bitrate===i.bitrate&&e.width===i.width&&e.height===i.height)}static getMaxLevelByMediaSize(e,t,i){if(!(e!=null&&e.length))return-1;let s=(a,o)=>o?a.width!==o.width||a.height!==o.height:!0,n=e.length-1;for(let a=0;a<e.length;a+=1){let o=e[a];if((o.width>=t||o.height>=i)&&s(o,e[a+1])){n=a;break}}return n}},bh=class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,t){let i=this.hls.config;if(i.capLevelOnFPSDrop){let s=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=s,s&&typeof s.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod)}}checkFPS(e,t,i){let s=performance.now();if(t){if(this.lastTime){let n=s-this.lastTime,a=i-this.lastDroppedFrames,o=t-this.lastDecodedFrames,l=1e3*a/n,d=this.hls;if(d.trigger(b.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),l>0&&a>d.config.fpsDroppedMonitoringThreshold*o){let c=d.currentLevel;M.warn("drop FPS ratio greater than max allowed value for currentLevel: "+c),c>0&&(d.autoLevelCapping===-1||d.autoLevelCapping>=c)&&(c=c-1,d.trigger(b.FPS_DROP_LEVEL_CAPPING,{level:c,droppedLevel:d.currentLevel}),d.autoLevelCapping=c,this.streamController.nextLevelSwitch())}}this.lastTime=s,this.lastDroppedFrames=i,this.lastDecodedFrames=t}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},dl="[eme]",Er=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=Er.CDMCleanupPromise?[Er.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=M.debug.bind(M,dl),this.log=M.log.bind(M,dl),this.warn=M.warn.bind(M,dl),this.error=M.error.bind(M,dl),this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(e){let{drmSystems:t,widevineLicenseUrl:i}=this.config,s=t[e];if(s)return s.licenseUrl;if(e===st.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${e}"`)}getServerCertificateUrl(e){let{drmSystems:t}=this.config,i=t[e];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){let t=this.hls.levels,i=(a,o,l)=>!!a&&l.indexOf(a)===o,s=t.map(a=>a.audioCodec).filter(i),n=t.map(a=>a.videoCodec).filter(i);return s.length+n.length===0&&n.push("avc1.42e01e"),new Promise((a,o)=>{let l=d=>{let c=d.shift();this.getMediaKeysPromise(c,s,n).then(u=>a({keySystem:c,mediaKeys:u})).catch(u=>{d.length?l(d):u instanceof qt?o(u):o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_ACCESS,error:u,fatal:!0},u.message))})};l(e)})}requestMediaKeySystemAccess(e,t){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let s=`Configured requestMediaKeySystemAccess is not a function ${i}`;return Vg===null&&self.location.protocol==="http:"&&(s=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(s))}return i(e,t)}getMediaKeysPromise(e,t,i){let s=pT(e,t,i,this.config.drmSystemOptions),n=this.keySystemAccessPromises[e],a=n==null?void 0:n.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${e}" key-system access with config: ${JSON.stringify(s)}`),a=this.requestMediaKeySystemAccess(e,s);let o=this.keySystemAccessPromises[e]={keySystemAccess:a};return a.catch(l=>{this.log(`Failed to obtain access to key-system "${e}": ${l}`)}),a.then(l=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let d=this.fetchServerCertificate(e);return this.log(`Create media-keys for "${e}"`),o.mediaKeys=l.createMediaKeys().then(c=>(this.log(`Media-keys created for "${e}"`),d.then(u=>u?this.setMediaKeysServerCertificate(c,e,u):c))),o.mediaKeys.catch(c=>{this.error(`Failed to create media-keys for "${e}"}: ${c}`)}),o.mediaKeys})}return a.then(()=>n.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${Ni.hexDump(e.keyId||[])}`);let s=i.createSession(),n={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:s,keyStatus:"status-pending"};return this.mediaKeySessions.push(n),n}renewKeySession(e){let t=e.decryptdata;if(t.pssh){let i=this.createMediaKeySessionContext(e),s=this.getKeyIdString(t),n="cenc";this.keyIdToKeySessionPromise[s]=this.generateRequestWithPreferredKeySession(i,n,t.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}getKeyIdString(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(e.keyId===null)throw new Error("keyId is null");return Ni.hexDump(e.keyId)}updateKeySession(e,t){var i;let s=e.mediaKeysSession;return this.log(`Updating key-session "${s.sessionId}" for keyID ${Ni.hexDump(((i=e.decryptdata)==null?void 0:i.keyId)||[])}
|
|
975
|
-
} (data length: ${t&&t.byteLength})`),s.update(t)}selectKeySystemFormat(e){let t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats ${t.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise}getKeyFormatPromise(e){return new Promise((t,i)=>{let s=su(this.config),n=e.map(ig).filter(a=>!!a&&s.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(n).then(({keySystem:a})=>{let o=rg(a);o?t(o):i(new Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(e){let t=e.keyInfo.decryptdata,i=this.getKeyIdString(t),s=`(keyId: ${i} format: "${t.keyFormat}" method: ${t.method} uri: ${t.uri})`;this.log(`Starting session for key ${s}`);let n=this.keyIdToKeySessionPromise[i];return n||(n=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(t).then(({keySystem:a,mediaKeys:o})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${s}`),this.attemptSetMediaKeys(a,o).then(()=>{this.throwIfDestroyed();let l=this.createMediaKeySessionContext({keySystem:a,mediaKeys:o,decryptdata:t}),d="cenc";return this.generateRequestWithPreferredKeySession(l,d,t.pssh,"playlist-key")}))),n.catch(a=>this.handleError(a))),n}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e){!this.hls||(this.error(e.message),e instanceof qt?this.hls.trigger(b.ERROR,e.data):this.hls.trigger(b.ERROR,{type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))}getKeySystemForKeyPromise(e){let t=this.getKeyIdString(e),i=this.keyIdToKeySessionPromise[t];if(!i){let s=ig(e.keyFormat),n=s?[s]:su(this.config);return this.attemptKeySystemAccess(n)}return i}getKeySystemSelectionPromise(e){if(e.length||(e=su(this.config)),e.length===0)throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${JSON.stringify({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}_onMediaEncrypted(e){let{initDataType:t,initData:i}=e;if(this.debug(`"${e.type}" event: init data type: "${t}"`),i===null)return;let s,n;if(t==="sinf"&&this.config.drmSystems[st.FAIRPLAY]){let c=Lt(new Uint8Array(i));try{let u=Sh(JSON.parse(c).sinf),h=Qg(new Uint8Array(u));if(!h)return;s=h.subarray(8,24),n=st.FAIRPLAY}catch{this.warn('Failed to parse sinf "encrypted" event message initData');return}}else{let c=BT(i);if(c===null)return;c.version===0&&c.systemId===Hg.WIDEVINE&&c.data&&(s=c.data.subarray(8,24)),n=mT(c.systemId)}if(!n||!s)return;let a=Ni.hexDump(s),{keyIdToKeySessionPromise:o,mediaKeySessions:l}=this,d=o[a];for(let c=0;c<l.length;c++){let u=l[c],h=u.decryptdata;if(h.pssh||!h.keyId)continue;let f=Ni.hexDump(h.keyId);if(a===f||h.uri.replace(/-/g,"").indexOf(a)!==-1){d=o[f],delete o[f],h.pssh=new Uint8Array(i),h.keyId=s,d=o[a]=d.then(()=>this.generateRequestWithPreferredKeySession(u,t,i,"encrypted-event-key-match"));break}}d||(d=o[a]=this.getKeySystemSelectionPromise([n]).then(({keySystem:c,mediaKeys:u})=>{var h;this.throwIfDestroyed();let f=new Wr("ISO-23001-7",a,(h=rg(c))!=null?h:"");return f.pssh=new Uint8Array(i),f.keyId=s,this.attemptSetMediaKeys(c,u).then(()=>{this.throwIfDestroyed();let g=this.createMediaKeySessionContext({decryptdata:f,keySystem:c,mediaKeys:u});return this.generateRequestWithPreferredKeySession(g,t,i,"encrypted-event-no-match")})})),d.catch(c=>this.handleError(c))}_onWaitingForKey(e){this.log(`"${e.type}" event`)}attemptSetMediaKeys(e,t){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);let s=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(t)});return this.setMediaKeysQueue.push(s),s.then(()=>{this.log(`Media-keys set for "${e}"`),i.push(s),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(n=>i.indexOf(n)===-1)})}generateRequestWithPreferredKeySession(e,t,i,s){var n,a;let o=(n=this.config.drmSystems)==null||(a=n[e.keySystem])==null?void 0:a.generateRequest;if(o)try{let h=o.call(this.hls,t,i,e);if(!h)throw new Error("Invalid response from configured generateRequest filter");t=h.initDataType,i=e.decryptdata.pssh=h.initData?new Uint8Array(h.initData):null}catch(h){var l;if(this.warn(h.message),(l=this.hls)!=null&&l.config.debug)throw h}if(i===null)return this.log(`Skipping key-session request for "${s}" (no initData)`),Promise.resolve(e);let d=this.getKeyIdString(e.decryptdata);this.log(`Generating key-session request for "${s}": ${d} (init data type: ${t} length: ${i?i.byteLength:null})`);let c=new Dh;e.mediaKeysSession.onmessage=h=>{let f=e.mediaKeysSession;if(!f){c.emit("error",new Error("invalid state"));return}let{messageType:g,message:E}=h;this.log(`"${g}" message event for session "${f.sessionId}" message size: ${E.byteLength}`),g==="license-request"||g==="license-renewal"?this.renewLicense(e,E).catch(T=>{this.handleError(T),c.emit("error",T)}):g==="license-release"?e.keySystem===st.FAIRPLAY&&(this.updateKeySession(e,Gg("acknowledged")),this.removeSession(e)):this.warn(`unhandled media key message type "${g}"`)},e.mediaKeysSession.onkeystatuseschange=h=>{if(!e.mediaKeysSession){c.emit("error",new Error("invalid state"));return}this.onKeyStatusChange(e);let g=e.keyStatus;c.emit("keyStatus",g),g==="expired"&&(this.warn(`${e.keySystem} expired for key ${d}`),this.renewKeySession(e))};let u=new Promise((h,f)=>{c.on("error",f),c.on("keyStatus",g=>{g.startsWith("usable")?h():g==="output-restricted"?f(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):g==="internal-error"?f(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${g}"`)):g==="expired"?f(new Error("key expired while generating request")):this.warn(`unhandled key status change "${g}"`)})});return e.mediaKeysSession.generateRequest(t,i).then(()=>{var h;this.log(`Request generated for key-session "${(h=e.mediaKeysSession)==null?void 0:h.sessionId}" keyId: ${d}`)}).catch(h=>{throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_SESSION,error:h,fatal:!1},`Error generating key-session request: ${h}`)}).then(()=>u).catch(h=>{throw c.removeAllListeners(),this.removeSession(e),h}).then(()=>(c.removeAllListeners(),e))}onKeyStatusChange(e){e.mediaKeysSession.keyStatuses.forEach((t,i)=>{this.log(`key status change "${t}" for keyStatuses keyId: ${Ni.hexDump("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${Ni.hexDump(new Uint8Array(e.decryptdata.keyId||[]))} uri: ${e.decryptdata.uri}`),e.keyStatus=t})}fetchServerCertificate(e){let t=this.config,i=t.loader,s=new i(t),n=this.getServerCertificateUrl(e);return n?(this.log(`Fetching serverCertificate for "${e}"`),new Promise((a,o)=>{let l={responseType:"arraybuffer",url:n},d=t.certLoadPolicy.default,c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(h,f,g,E)=>{a(h.data)},onError:(h,f,g,E)=>{o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:g,response:jt({url:l.url,data:void 0},h)},`"${e}" certificate request failed (${n}). Status: ${h.code} (${h.text})`))},onTimeout:(h,f,g)=>{o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:g,response:{url:l.url,data:void 0}},`"${e}" certificate request timed out (${n})`))},onAbort:(h,f,g)=>{o(new Error("aborted"))}};s.load(l,c,u)})):Promise.resolve()}setMediaKeysServerCertificate(e,t,i){return new Promise((s,n)=>{e.setServerCertificate(i).then(a=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${t}"`),s(e)}).catch(a=>{n(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(e,t){return this.requestLicense(e,new Uint8Array(t)).then(i=>this.updateKeySession(e,new Uint8Array(i)).catch(s=>{throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:s,fatal:!0},s.message)}))}setupLicenseXHR(e,t,i,s){let n=this.config.licenseXhrSetup;return n?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return n.call(this.hls,e,t,i,s)}).catch(a=>{if(!i.decryptdata)throw a;return e.open("POST",t,!0),n.call(this.hls,e,t,i,s)}).then(a=>(e.readyState||e.open("POST",t,!0),{xhr:e,licenseChallenge:a||s})):(e.open("POST",t,!0),Promise.resolve({xhr:e,licenseChallenge:s}))}requestLicense(e,t){let i=this.config.keyLoadPolicy.default;return new Promise((s,n)=>{let a=this.getLicenseServerUrl(e.keySystem);this.log(`Sending license request to URL: ${a}`);let o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return n(new Error("invalid state"));if(o.readyState===4)if(o.status===200){this._requestLicenseFailureCount=0;let l=o.response;this.log(`License received ${l instanceof ArrayBuffer?l.byteLength:l}`);let d=this.config.licenseResponseCallback;if(d)try{l=d.call(this.hls,o,a,e)}catch(c){this.error(c)}s(l)}else{let l=i.errorRetry,d=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>d||o.status>=400&&o.status<500)n(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:o,response:{url:a,data:void 0,code:o.status,text:o.statusText}},`License Request XHR failed (${a}). Status: ${o.status} (${o.statusText})`));else{let c=d-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${c} attempts left`),this.requestLicense(e,t).then(s,n)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=o,this.setupLicenseXHR(o,a,e,t).then(({xhr:l,licenseChallenge:d})=>{l.send(d)})})}onMediaAttached(e,t){if(!this.config.emeEnabled)return;let i=t.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let e=this.media,t=this.mediaKeySessions;e&&(e.removeEventListener("encrypted",this.onMediaEncrypted),e.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},Wr.clearKeyUriToKeyIdMap();let i=t.length;Er.CDMCleanupPromise=Promise.all(t.map(s=>this.removeSession(s)).concat(e==null?void 0:e.setMediaKeys(null).catch(s=>{this.log(`Could not clear media keys: ${s}. media.src: ${e==null?void 0:e.src}`)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),t.length=0)}).catch(s=>{this.log(`Could not close sessions and clear media keys: ${s}. media.src: ${e==null?void 0:e.src}`)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(e,{sessionKeys:t}){if(!(!t||!this.config.emeEnabled)&&!this.keyFormatPromise){let i=t.reduce((s,n)=>(s.indexOf(n.keyFormat)===-1&&s.push(n.keyFormat),s),[]);this.log(`Selecting key-system from session-keys ${i.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(e){let{mediaKeysSession:t,licenseXhr:i}=e;if(t){this.log(`Remove licenses and keys and close session ${t.sessionId}`),t.onmessage=null,t.onkeystatuseschange=null,i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;let s=this.mediaKeySessions.indexOf(e);return s>-1&&this.mediaKeySessions.splice(s,1),t.remove().catch(n=>{this.log(`Could not remove session: ${n}`)}).then(()=>t.close()).catch(n=>{this.log(`Could not close session: ${n}`)})}}};Er.CDMCleanupPromise=void 0;var qt=class extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=new Error(t)),this.data=e,e.err=e.error}},vA=1,Kt={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},EA="h",Bi=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=s=>{try{this.apply(s,{ot:Kt.MANIFEST,su:!this.initialized})}catch(n){M.warn("Could not generate manifest CMCD data.",n)}},this.applyFragmentData=s=>{try{let n=s.frag,a=this.hls.levels[n.level],o=this.getObjectType(n),l={d:n.duration*1e3,ot:o};(o===Kt.VIDEO||o===Kt.AUDIO||o==Kt.MUXED)&&(l.br=a.bitrate/1e3,l.tb=this.getTopBandwidth(o)/1e3,l.bl=this.getBufferLength(o)),this.apply(s,l)}catch(n){M.warn("Could not generate segment CMCD data.",n)}},this.hls=e;let t=this.config=e.config,{cmcd:i}=t;i!=null&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||Bi.uuid(),this.cid=i.contentId,this.useHeaders=i.useHeaders===!0,this.registerListeners())}registerListeners(){let e=this.hls;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHED,this.onMediaDetached,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHED,this.onMediaDetached,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){!this.media||(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,t){var i,s;this.audioBuffer=(i=t.tracks.audio)==null?void 0:i.buffer,this.videoBuffer=(s=t.tracks.video)==null?void 0:s.buffer}createData(){var e;return{v:vA,sf:EA,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,t={}){pt(t,this.createData());let i=t.ot===Kt.INIT||t.ot===Kt.VIDEO||t.ot===Kt.MUXED;if(this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),t.su==null&&(t.su=this.buffering),this.useHeaders){let s=Bi.toHeaders(t);if(!Object.keys(s).length)return;e.headers||(e.headers={}),pt(e.headers,s)}else{let s=Bi.toQuery(t);if(!s)return;e.url=Bi.appendQueryToUri(e.url,s)}}getObjectType(e){let{type:t}=e;if(t==="subtitle")return Kt.TIMED_TEXT;if(e.sn==="initSegment")return Kt.INIT;if(t==="audio")return Kt.AUDIO;if(t==="main")return this.hls.audioTracks.length?Kt.VIDEO:Kt.MUXED}getTopBandwidth(e){let t=0,i,s=this.hls;if(e===Kt.AUDIO)i=s.audioTracks;else{let n=s.maxAutoLevel,a=n>-1?n+1:s.levels.length;i=s.levels.slice(0,a)}for(let n of i)n.bitrate>t&&(t=n.bitrate);return t>0?t:NaN}getBufferLength(e){let t=this.hls.media,i=e===Kt.AUDIO?this.audioBuffer:this.videoBuffer;return!i||!t?NaN:je.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){let{pLoader:e}=this.config,t=this.applyPlaylistData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}createFragmentLoader(){let{fLoader:e}=this.config,t=this.applyFragmentData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}static uuid(){let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}static serialize(e){let t=[],i=d=>!Number.isNaN(d)&&d!=null&&d!==""&&d!==!1,s=d=>Math.round(d),n=d=>s(d/100)*100,o={br:s,d:s,bl:n,dl:n,mtp:n,nor:d=>encodeURIComponent(d),rtp:n,tb:s},l=Object.keys(e||{}).sort();for(let d of l){let c=e[d];if(!i(c)||d==="v"&&c===1||d=="pr"&&c===1)continue;let u=o[d];u&&(c=u(c));let h=typeof c,f;d==="ot"||d==="sf"||d==="st"?f=`${d}=${c}`:h==="boolean"?f=d:h==="number"?f=`${d}=${c}`:f=`${d}=${JSON.stringify(c)}`,t.push(f)}return t.join(",")}static toHeaders(e){let t=Object.keys(e),i={},s=["Object","Request","Session","Status"],n=[{},{},{},{}],a={br:0,d:0,ot:0,tb:0,bl:1,dl:1,mtp:1,nor:1,nrr:1,su:1,cid:2,pr:2,sf:2,sid:2,st:2,v:2,bs:3,rtp:3};for(let o of t){let l=a[o]!=null?a[o]:1;n[l][o]=e[o]}for(let o=0;o<n.length;o++){let l=Bi.serialize(n[o]);l&&(i[`CMCD-${s[o]}`]=l)}return i}static toQuery(e){return`CMCD=${encodeURIComponent(Bi.serialize(e))}`}static appendQueryToUri(e,t){if(!t)return e;let i=e.includes("?")?"&":"?";return`${e}${i}${t}`}},bA=3e5,yh=class{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=M.log.bind(M,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;!e||(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.ERROR,this.onError,this))}startLoad(){if(this.started=!0,self.clearTimeout(this.reloadTimer),this.enabled&&this.uri)if(this.updated){let e=Math.max(this.timeToLoad*1e3-(performance.now()-this.updated),0);this.scheduleRefresh(this.uri,e)}else this.loadSteeringManifest(this.uri)}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),self.clearTimeout(this.reloadTimer)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let t=this.levels;t&&(this.levels=t.filter(i=>i!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,t){let{contentSteering:i}=t;i!==null&&(this.pathwayId=i.pathwayId,this.uri=i.uri,this.started&&this.startLoad())}onManifestParsed(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks}onError(e,t){let{errorAction:i}=t;if((i==null?void 0:i.action)===Mt.SendAlternateToPenaltyBox&&i.flags===oi.MoveAllAlternatesMatchingHost){let s=this.pathwayPriority,n=this.pathwayId;this.penalizedPathways[n]||(this.penalizedPathways[n]=performance.now()),!s&&this.levels&&(s=this.levels.reduce((a,o)=>(a.indexOf(o.pathwayId)===-1&&a.push(o.pathwayId),a),[])),s&&s.length>1&&(this.updatePathwayPriority(s),i.resolved=this.pathwayId!==n)}}filterParsedLevels(e){this.levels=e;let t=this.getLevelsForPathway(this.pathwayId);if(t.length===0){let i=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${i}"`),t=this.getLevelsForPathway(i),this.pathwayId=i}return t.length!==e.length?(this.log(`Found ${t.length}/${e.length} levels in Pathway "${this.pathwayId}"`),t):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter(t=>e===t.pathwayId)}updatePathwayPriority(e){this.pathwayPriority=e;let t,i=this.penalizedPathways,s=performance.now();Object.keys(i).forEach(n=>{s-i[n]>bA&&delete i[n]});for(let n=0;n<e.length;n++){let a=e[n];if(i[a])continue;if(a===this.pathwayId)return;let o=this.hls.nextLoadLevel,l=this.hls.levels[o];if(t=this.getLevelsForPathway(a),t.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,this.hls.trigger(b.LEVELS_UPDATED,{levels:t});let d=this.hls.levels[o];l&&d&&this.levels&&(d.attrs["STABLE-VARIANT-ID"]!==l.attrs["STABLE-VARIANT-ID"]&&d.bitrate!==l.bitrate&&this.log(`Unstable Pathways change from bitrate ${l.bitrate} to ${d.bitrate}`),this.hls.nextLoadLevel=o);break}}}clonePathways(e){let t=this.levels;if(!t)return;let i={},s={};e.forEach(n=>{let{ID:a,"BASE-ID":o,"URI-REPLACEMENT":l}=n;if(t.some(c=>c.pathwayId===a))return;let d=this.getLevelsForPathway(o).map(c=>{let u=pt({},c);u.details=void 0,u.url=w0(c.uri,c.attrs["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",l);let h=new Ze(c.attrs);h["PATHWAY-ID"]=a;let f=h.AUDIO&&`${h.AUDIO}_clone_${a}`,g=h.SUBTITLES&&`${h.SUBTITLES}_clone_${a}`;f&&(i[h.AUDIO]=f,h.AUDIO=f),g&&(s[h.SUBTITLES]=g,h.SUBTITLES=g),u.attrs=h;let E=new qr(u);return El(E,"audio",f),El(E,"text",g),E});t.push(...d),Bg(this.audioTracks,i,l,a),Bg(this.subtitleTracks,s,l,a)})}loadSteeringManifest(e){let t=this.hls.config,i=t.loader;this.loader&&this.loader.destroy(),this.loader=new i(t);let s;try{s=new self.URL(e)}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest URI: ${e}`);return}if(s.protocol!=="data:"){let c=(this.hls.bandwidthEstimate||t.abrEwmaDefaultEstimate)|0;s.searchParams.set("_HLS_pathway",this.pathwayId),s.searchParams.set("_HLS_throughput",""+c)}let n={responseType:"json",url:s.href},a=t.steeringManifestLoadPolicy.default,o=a.errorRetry||a.timeoutRetry||{},l={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:o.maxNumRetry||0,retryDelay:o.retryDelayMs||0,maxRetryDelay:o.maxRetryDelayMs||0},d={onSuccess:(c,u,h,f)=>{this.log(`Loaded steering manifest: "${s}"`);let g=c.data;if(g.VERSION!==1){this.log(`Steering VERSION ${g.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=g.TTL;let{"RELOAD-URI":E,"PATHWAY-CLONES":T,"PATHWAY-PRIORITY":A}=g;if(E)try{this.uri=new self.URL(E,s).href}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${E}`);return}this.scheduleRefresh(this.uri||h.url),T&&this.clonePathways(T),A&&this.updatePathwayPriority(A)},onError:(c,u,h,f)=>{if(this.log(`Error loading steering manifest: ${c.code} ${c.text} (${u.url})`),this.stopLoad(),c.code===410){this.enabled=!1,this.log(`Steering manifest ${u.url} no longer available`);return}let g=this.timeToLoad*1e3;if(c.code===429){let E=this.loader;if(typeof(E==null?void 0:E.getResponseHeader)=="function"){let T=E.getResponseHeader("Retry-After");T&&(g=parseFloat(T)*1e3)}this.log(`Steering manifest ${u.url} rate limited`);return}this.scheduleRefresh(this.uri||u.url,g)},onTimeout:(c,u,h)=>{this.log(`Timeout loading steering manifest (${u.url})`),this.scheduleRefresh(this.uri||u.url)}};this.log(`Requesting steering manifest: ${s}`),this.loader.load(n,l,d)}scheduleRefresh(e,t=this.timeToLoad*1e3){self.clearTimeout(this.reloadTimer),this.reloadTimer=self.setTimeout(()=>{this.loadSteeringManifest(e)},t)}};function Bg(r,e,t,i){!r||Object.keys(e).forEach(s=>{let n=r.filter(a=>a.groupId===s).map(a=>{let o=pt({},a);return o.details=void 0,o.attrs=new Ze(o.attrs),o.url=o.attrs.URI=w0(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),o.groupId=o.attrs["GROUP-ID"]=e[s],o.attrs["PATHWAY-ID"]=i,o});r.push(...n)})}function w0(r,e,t,i){let{HOST:s,PARAMS:n,[t]:a}=i,o;e&&(o=a==null?void 0:a[e],o&&(r=o));let l=new self.URL(r);return s&&!o&&(l.host=s),n&&Object.keys(n).sort().forEach(d=>{d&&l.searchParams.set(d,n[d])}),l.href}var yA=/^age:\s*[\d.]+\s*$/im,wl=class{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new Ks,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null}abortInternal(){let e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,e.readyState!==4&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:e,context:t}=this;if(!e)return;let i=this.loader=new self.XMLHttpRequest,s=this.stats;s.loading.first=0,s.loaded=0,s.aborted=!1;let n=this.xhrSetup;n?Promise.resolve().then(()=>{if(!this.stats.aborted)return n(i,t.url)}).catch(a=>(i.open("GET",t.url,!0),n(i,t.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,t,e)}).catch(a=>{this.callbacks.onError({code:i.status,text:a.message},t,i,s)}):this.openAndSendXhr(i,t,e)}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,!0);let s=this.context.headers,{maxTimeToFirstByteMs:n,maxLoadTimeMs:a}=i.loadPolicy;if(s)for(let o in s)e.setRequestHeader(o,s[o]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=n&&ce(n)?n:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),e.send()}readystatechange(){let{context:e,loader:t,stats:i}=this;if(!e||!t)return;let s=t.readyState,n=this.config;if(!i.aborted&&s>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),n.timeout!==n.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),n.timeout=n.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),s===4)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;let a=t.status,o=t.responseType!=="text";if(a>=200&&a<300&&(o&&t.response||t.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let l=o?t.response:t.responseText,d=t.responseType==="arraybuffer"?l.byteLength:l.length;if(i.loaded=i.total=d,i.bwEstimate=i.total*8e3/(i.loading.end-i.loading.first),!this.callbacks)return;let c=this.callbacks.onProgress;if(c&&c(i,e,l,t),!this.callbacks)return;let u={url:t.responseURL,data:l,code:a};this.callbacks.onSuccess(u,i,e,t)}else{let l=n.loadPolicy.errorRetry,d=i.retry;vl(l,d,!1,a)?this.retry(l):(M.error(`${a} while loading ${e.url}`),this.callbacks.onError({code:a,text:t.statusText},e,t,i))}}}loadtimeout(){var e;let t=(e=this.config)==null?void 0:e.loadPolicy.timeoutRetry,i=this.stats.retry;if(vl(t,i,!0))this.retry(t);else{M.warn(`timeout while loading ${this.context.url}`);let s=this.callbacks;s&&(this.abortInternal(),s.onTimeout(this.stats,this.context,this.loader))}}retry(e){let{context:t,stats:i}=this;this.retryDelay=Ih(e,i.retry),i.retry++,M.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${t.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){let t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)}getCacheAge(){let e=null;if(this.loader&&yA.test(this.loader.getAllResponseHeaders())){let t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}};function TA(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return!1}var _A=/(\d+)-(\d+)\/(\d+)/,Dl=class{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||IA,this.controller=new self.AbortController,this.stats=new Ks}destroy(){this.loader=this.callbacks=null,this.abortInternal()}abortInternal(){let e=this.response;e!=null&&e.ok||(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,t,i){let s=this.stats;if(s.loading.start)throw new Error("Loader can only be used once.");s.loading.start=self.performance.now();let n=AA(e,this.controller.signal),a=i.onProgress,o=e.responseType==="arraybuffer",l=o?"byteLength":"length",{maxTimeToFirstByteMs:d,maxLoadTimeMs:c}=t.loadPolicy;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,n),self.clearTimeout(this.requestTimeout),t.timeout=d&&ce(d)?d:c,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(s,e,this.response)},t.timeout),self.fetch(this.request).then(u=>{this.response=this.loader=u;let h=Math.max(self.performance.now(),s.loading.start);if(self.clearTimeout(this.requestTimeout),t.timeout=c,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(s,e,this.response)},c-(h-s.loading.start)),!u.ok){let{status:f,statusText:g}=u;throw new Th(g||"fetch, bad network response",f,u)}return s.loading.first=h,s.total=xA(u.headers)||s.total,a&&ce(t.highWaterMark)?this.loadProgressively(u,s,e,t.highWaterMark,a):o?u.arrayBuffer():e.responseType==="json"?u.json():u.text()}).then(u=>{let{response:h}=this;self.clearTimeout(this.requestTimeout),s.loading.end=Math.max(self.performance.now(),s.loading.first);let f=u[l];f&&(s.loaded=s.total=f);let g={url:h.url,data:u,code:h.status};a&&!ce(t.highWaterMark)&&a(s,e,u,h),i.onSuccess(g,s,e,h)}).catch(u=>{if(self.clearTimeout(this.requestTimeout),s.aborted)return;let h=u&&u.code||0,f=u?u.message:null;i.onError({code:h,text:f},e,u?u.details:null,s)})}getCacheAge(){let e=null;if(this.response){let t=this.response.headers.get("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(e,t,i,s=0,n){let a=new Il,o=e.body.getReader(),l=()=>o.read().then(d=>{if(d.done)return a.dataLength&&n(t,i,a.flush(),e),Promise.resolve(new ArrayBuffer(0));let c=d.value,u=c.length;return t.loaded+=u,u<s||a.dataLength?(a.push(c),a.dataLength>=s&&n(t,i,a.flush(),e)):n(t,i,c,e),l()}).catch(()=>Promise.reject());return l()}};function AA(r,e){let t={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(pt({},r.headers))};return r.rangeEnd&&t.headers.set("Range","bytes="+r.rangeStart+"-"+String(r.rangeEnd-1)),t}function SA(r){let e=_A.exec(r);if(e)return parseInt(e[2])-parseInt(e[1])+1}function xA(r){let e=r.get("Content-Range");if(e){let i=SA(e);if(ce(i))return i}let t=r.get("Content-Length");if(t)return parseInt(t)}function IA(r,e){return new self.Request(r.url,e)}var Th=class extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i}},LA=/\s/,kA={newCue(r,e,t,i){let s=[],n,a,o,l,d,c=self.VTTCue||self.TextTrackCue;for(let h=0;h<i.rows.length;h++)if(n=i.rows[h],o=!0,l=0,d="",!n.isEmpty()){var u;for(let E=0;E<n.chars.length;E++)LA.test(n.chars[E].uchar)&&o?l++:(d+=n.chars[E].uchar,o=!1);n.cueStartTime=e,e===t&&(t+=1e-4),l>=16?l--:l++;let f=I0(d.trim()),g=Mh(e,t,f);r!=null&&(u=r.cues)!=null&&u.getCueById(g)||(a=new c(e,t,f),a.id=g,a.line=h+1,a.align="left",a.position=10+Math.min(80,Math.floor(l*8/32)*10),s.push(a))}return r&&s.length&&(s.sort((h,f)=>h.line==="auto"||f.line==="auto"?0:h.line>8&&f.line>8?f.line-h.line:h.line-f.line),s.forEach(h=>i0(r,h))),s}},RA={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},wA=jt(jt({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,maxBufferSize:60*1e3*1e3,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:wl,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:rh,bufferController:ch,capLevelController:Yn,errorController:Nu,fpsController:bh,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Vg,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,certLoadPolicy:{default:RA},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},DA()),{},{subtitleStreamController:ah,subtitleTrackController:lh,timelineController:Eh,audioStreamController:sh,audioTrackController:nh,emeController:Er,cmcdController:Bi,contentSteeringController:yh});function DA(){return{cueHandler:kA,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function CA(r,e){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(e.liveMaxLatencyDurationCount!==void 0&&(e.liveSyncDurationCount===void 0||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(e.liveMaxLatencyDuration!==void 0&&(e.liveSyncDuration===void 0||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let t=_h(r),i=["manifest","level","frag"],s=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return i.forEach(n=>{let a=`${n==="level"?"playlist":n}LoadPolicy`,o=e[a]===void 0,l=[];s.forEach(d=>{let c=`${n}Loading${d}`,u=e[c];if(u!==void 0&&o){l.push(c);let h=t[a].default;switch(e[a]={default:h},d){case"TimeOut":h.maxLoadTimeMs=u,h.maxTimeToFirstByteMs=u;break;case"MaxRetry":h.errorRetry.maxNumRetry=u,h.timeoutRetry.maxNumRetry=u;break;case"RetryDelay":h.errorRetry.retryDelayMs=u,h.timeoutRetry.retryDelayMs=u;break;case"MaxRetryTimeout":h.errorRetry.maxRetryDelayMs=u,h.timeoutRetry.maxRetryDelayMs=u;break}}}),l.length&&M.warn(`hls.js config: "${l.join('", "')}" setting(s) are deprecated, use "${a}": ${JSON.stringify(e[a])}`)}),jt(jt({},t),e)}function _h(r){return r&&typeof r=="object"?Array.isArray(r)?r.map(_h):Object.keys(r).reduce((e,t)=>(e[t]=_h(r[t]),e),{}):r}function MA(r){let e=r.loader;e!==Dl&&e!==wl?(M.log("[config]: Custom loader detected, cannot enable progressive streaming"),r.progressive=!1):TA()&&(r.loader=Dl,r.progressive=!0,r.enableSoftwareAES=!0,M.log("[config]: Progressive streaming enabled, using FetchLoader"))}var $i=class{static get version(){return"1.4.10"}static isSupported(){return y_()}static get Events(){return b}static get ErrorTypes(){return pe}static get ErrorDetails(){return B}static get DefaultConfig(){return $i.defaultConfig?$i.defaultConfig:wA}static set DefaultConfig(e){$i.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new Dh,this._autoLevelCapping=void 0,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,aT(e.debug||!1,"Hls instance");let t=this.config=CA($i.DefaultConfig,e);this.userConfig=e,this._autoLevelCapping=-1,t.progressive&&MA(t);let{abrController:i,bufferController:s,capLevelController:n,errorController:a,fpsController:o}=t,l=new a(this),d=this.abrController=new i(this),c=this.bufferController=new s(this),u=this.capLevelController=new n(this),h=new o(this),f=new ku(this),g=new Du(this),E=t.contentSteeringController,T=E?new E(this):null,A=this.levelController=new Uu(this,T),k=new Fu(this),L=new $u(this.config),N=this.streamController=new th(this,k,L);u.setStreamController(N),h.setStreamController(N);let D=[f,A,N];T&&D.splice(1,0,T),this.networkControllers=D;let $=[d,c,u,h,g,k];this.audioTrackController=this.createController(t.audioTrackController,D);let O=t.audioStreamController;O&&D.push(new O(this,k,L)),this.subtitleTrackController=this.createController(t.subtitleTrackController,D);let H=t.subtitleStreamController;H&&D.push(new H(this,k,L)),this.createController(t.timelineController,$),L.emeController=this.emeController=this.createController(t.emeController,$),this.cmcdController=this.createController(t.cmcdController,$),this.latencyController=this.createController(Cu,$),this.coreComponents=$,D.push(l);let q=l.onErrorOut;typeof q=="function"&&this.on(b.ERROR,q,l)}createController(e,t){if(e){let i=new e(this);return t&&t.push(i),i}return null}on(e,t,i=this){this._emitter.on(e,t,i)}once(e,t,i=this){this._emitter.once(e,t,i)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,t,i=this,s){this._emitter.off(e,t,i,s)}listeners(e){return this._emitter.listeners(e)}emit(e,t,i){return this._emitter.emit(e,t,i)}trigger(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(i){M.error("An internal error happened while handling event "+e+'. Error message: "'+i.message+'". Here is a stacktrace:',i),this.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,fatal:!1,event:e,error:i})}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){M.log("destroy"),this.trigger(b.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach(t=>t.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(t=>t.destroy()),this.coreComponents.length=0;let e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){M.log("attachMedia"),this._media=e,this.trigger(b.MEDIA_ATTACHING,{media:e})}detachMedia(){M.log("detachMedia"),this.trigger(b.MEDIA_DETACHING,void 0),this._media=null}loadSource(e){this.stopLoad();let t=this.media,i=this.url,s=this.url=Ah.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});M.log(`loadSource:${s}`),t&&i&&(i!==s||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(b.MANIFEST_LOADING,{url:e})}startLoad(e=-1){M.log(`startLoad(${e})`),this.networkControllers.forEach(t=>{t.startLoad(e)})}stopLoad(){M.log("stopLoad"),this.networkControllers.forEach(e=>{e.stopLoad()})}swapAudioCodec(){M.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){M.log("recoverMediaError");let e=this._media;this.detachMedia(),e&&this.attachMedia(e)}removeLevel(e,t=0){this.levelController.removeLevel(e,t)}get levels(){let e=this.levelController.levels;return e||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){M.log(`set currentLevel:${e}`),this.loadLevel=e,this.abrController.clearTimer(),this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){M.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){M.log(`set loadLevel:${e}`),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){M.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){return this.levelController.startLevel}set startLevel(e){M.log(`set startLevel:${e}`),e!==-1&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){let t=!!e;t!==this.config.capLevelToPlayerSize&&(t?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=t)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}get ttfbEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(M.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e)}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){Mu.indexOf(e)>-1&&(this._maxHdcpLevel=e)}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:e,config:{minAutoBitrate:t}}=this;if(!e)return 0;let i=e.length;for(let s=0;s<i;s++)if(e[s].maxBitrate>=t)return s;return 0}get maxAutoLevel(){let{levels:e,autoLevelCapping:t,maxHdcpLevel:i}=this,s;if(t===-1&&e&&e.length?s=e.length-1:s=t,i)for(let n=s;n--;){let a=e[n].attrs["HDCP-LEVEL"];if(a&&a<=i)return n}return s}get nextAutoLevel(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)}set nextAutoLevel(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get audioTracks(){let e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){let e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){let t=this.audioTrackController;t&&(t.audioTrack=e)}get subtitleTracks(){let e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){let e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){let t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}get subtitleDisplay(){let e=this.subtitleTrackController;return e?e.subtitleDisplay:!1}set subtitleDisplay(e){let t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}};$i.defaultConfig=void 0;var dt=$i,jn=class extends Error{constructor(r,e=jn.MEDIA_ERR_CUSTOM,t,i){var s;super(r),this.name="MediaError",this.code=e,this.context=i,this.fatal=t!=null?t:e>=jn.MEDIA_ERR_NETWORK&&e<=jn.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=jn.defaultMessages[this.code])!=null?s:"")}},tt=jn;tt.MEDIA_ERR_ABORTED=1,tt.MEDIA_ERR_NETWORK=2,tt.MEDIA_ERR_DECODE=3,tt.MEDIA_ERR_SRC_NOT_SUPPORTED=4,tt.MEDIA_ERR_ENCRYPTED=5,tt.MEDIA_ERR_CUSTOM=100,tt.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail.",3:"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.",4:"An unsupported error occurred. The server or network failed, or your browser does not support this format.",5:"The media is encrypted and there are no keys to decrypt it."};var OA=r=>r==null,U0=(r,e)=>OA(e)?!1:r in e,Ph={ANY:"any",MUTED:"muted"},Je={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},di={MSE:"mse",NATIVE:"native"},Nh={HEADER:"header",QUERY:"query",NONE:"none"},Ws=Object.values(Nh),br={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},Uh={HLS:br.M3U8},v1=Object.keys(Uh),E1=[...Object.values(br),"hls","HLS"],bi=(r,e,t,i,s=r)=>{s.addEventListener(e,t,i),r.addEventListener("teardown",()=>{s.removeEventListener(e,t)},{once:!0})};function PA(r,e,t){e&&t>e&&(t=e);for(let i=0;i<r.length;i++)if(r.start(i)<=t&&r.end(i)>=t)return!0;return!1}var NA=r=>{let e=r.indexOf("?");if(e<0)return[r];let t=r.slice(0,e),i=r.slice(e);return[t,i]},Pl=r=>{let e=r.type;if(e){let i=e.toUpperCase();return U0(i,Uh)?Uh[i]:e}let{src:t}=r;return t?UA(t):""},F0=r=>r==="VOD"?Je.ON_DEMAND:Je.LIVE,B0=r=>r==="EVENT"?Number.POSITIVE_INFINITY:r==="VOD"?Number.NaN:0,UA=r=>{let e="";try{e=new URL(r).pathname}catch{console.error("invalid url")}let t=e.lastIndexOf(".");if(t<0)return"";let i=e.slice(t+1).toUpperCase();return U0(i,br)?br[i]:""},FA=Object.values(Ph),D0=r=>typeof r=="boolean"||typeof r=="string"&&FA.includes(r),BA=({autoplay:r},e,t)=>{let i=!1,s=!1,n=D0(r)?r:!!r,a=()=>{i||bi(e,"playing",()=>{i=!0},{once:!0})};if(a(),bi(e,"loadstart",()=>{i=!1,a(),Oh(e,n)},{once:!0}),bi(e,"loadstart",()=>{t||(s=!Number.isFinite(e.duration)),Oh(e,n)},{once:!0}),t&&t.once(dt.Events.LEVEL_LOADED,(o,l)=>{var d;s=(d=l.details.live)!=null?d:!1}),!n){let o=()=>{!s||(t!=null&&t.liveSyncPosition?e.currentTime=t.liveSyncPosition:Number.isFinite(e.seekable.end(0))&&(e.currentTime=e.seekable.end(0)))};t&&bi(e,"play",()=>{e.preload==="metadata"?t.once(dt.Events.LEVEL_UPDATED,o):o()},{once:!0})}return o=>{i||(n=D0(o)?o:!!o,Oh(e,n))}},Oh=(r,e)=>{if(!e)return;let t=r.muted,i=()=>r.muted=t;switch(e){case Ph.ANY:r.play().catch(()=>{r.muted=!0,r.play().catch(i)});break;case Ph.MUTED:r.muted=!0,r.play().catch(i);break;default:r.play().catch(()=>{});break}},$A=({preload:r,src:e},t,i)=>{let s=u=>{u!=null&&["","none","metadata","auto"].includes(u)?t.setAttribute("preload",u):t.removeAttribute("preload")};if(!i)return s(r),s;let n=!1,a=!1,o=i.config.maxBufferLength,l=i.config.maxBufferSize,d=u=>{s(u);let h=u!=null?u:t.preload;a||h==="none"||(h==="metadata"?(i.config.maxBufferLength=1,i.config.maxBufferSize=1):(i.config.maxBufferLength=o,i.config.maxBufferSize=l),c())},c=()=>{!n&&e&&(n=!0,i.loadSource(e))};return bi(t,"play",()=>{a=!0,i.config.maxBufferLength=o,i.config.maxBufferSize=l,c()},{once:!0}),d(r),d};function GA(r,e){var t;if(!("videoTracks"in r))return;let i=new WeakMap;e.on(dt.Events.MANIFEST_PARSED,function(d,c){l();let u=r.addVideoTrack("main");u.selected=!0;for(let[h,f]of c.levels.entries()){let g=u.addRendition(f.url[0],f.width,f.height,f.videoCodec,f.bitrate);i.set(f,`${h}`),g.id=`${h}`}}),e.on(dt.Events.AUDIO_TRACKS_UPDATED,function(d,c){o();for(let u of c.audioTracks){let h=u.default?"main":"alternative",f=r.addAudioTrack(h,u.name,u.lang);f.id=`${u.id}`,u.default&&(f.enabled=!0)}}),r.audioTracks.addEventListener("change",()=>{var d;let c=+((d=[...r.audioTracks].find(h=>h.enabled))==null?void 0:d.id),u=e.audioTracks.map(h=>h.id);c!=e.audioTrack&&u.includes(c)&&(e.audioTrack=c)}),e.on(dt.Events.LEVELS_UPDATED,function(d,c){var u;let h=r.videoTracks[(u=r.videoTracks.selectedIndex)!=null?u:0];if(!h)return;let f=c.levels.map(g=>i.get(g));for(let g of r.videoRenditions)g.id&&!f.includes(g.id)&&h.removeRendition(g)});let s=d=>{let c=d.target.selectedIndex;c!=e.nextLevel&&n(c)},n=d=>{let c=r.currentTime,u=!1,h=(f,g)=>{u||(u=!Number.isFinite(g.endOffset))};e.on(dt.Events.BUFFER_FLUSHING,h),e.nextLevel=d,e.off(dt.Events.BUFFER_FLUSHING,h),u||e.trigger(dt.Events.BUFFER_FLUSHING,{startOffset:c+10,endOffset:1/0,type:"video"})};(t=r.videoRenditions)==null||t.addEventListener("change",s);let a=()=>{for(let d of r.videoTracks)r.removeVideoTrack(d)},o=()=>{for(let d of r.audioTracks)r.removeAudioTrack(d)},l=()=>{a(),o()};e.once(dt.Events.DESTROYING,l)}function HA(r,e){e.on(dt.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(s,{tracks:n})=>{n.forEach(a=>{var o;let l=(o=a.subtitleTrack)!=null?o:a.closedCaptions,d=e.subtitleTracks.findIndex(({lang:c,name:u,type:h})=>c==(l==null?void 0:l.lang)&&u===a.label&&h.toLowerCase()===a.kind);Nl(r,a.kind,a.label,l==null?void 0:l.lang,`${a.kind}${d}`)})});let t=()=>{var s;if(!e.subtitleTracks.length)return;let n=Array.from(r.textTracks).find(o=>o.id&&o.mode==="showing"&&["subtitles","captions"].includes(o.kind)),a=`${(s=e.subtitleTracks[e.subtitleTrack])==null?void 0:s.type.toLowerCase()}${e.subtitleTrack}`;if(n&&(e.subtitleTrack<0||(n==null?void 0:n.id)!==a)){let o=e.subtitleTracks.findIndex(({lang:l,name:d,type:c})=>l==n.language&&d===n.label&&c.toLowerCase()===n.kind);e.subtitleTrack=o}n&&(n==null?void 0:n.id)===a&&n.cues&&Array.from(n.cues).forEach(o=>{n.addCue(o)})};r.textTracks.addEventListener("change",t),e.on(dt.Events.CUES_PARSED,(s,{track:n,cues:a})=>{let o=r.textTracks.getTrackById(n);if(!o)return;let l=o.mode==="disabled";l&&(o.mode="hidden"),a.forEach(d=>{var c;(c=o.cues)!=null&&c.getCueById(d.id)||o.addCue(d)}),l&&(o.mode="disabled")}),e.once(dt.Events.DESTROYING,()=>{r.textTracks.removeEventListener("change",t),r.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let i=()=>{Array.from(r.textTracks).forEach(s=>{var n,a;if(!["subtitles","caption"].includes(s.kind)&&s.label==="thumbnails"){if(!((n=s.cues)!=null&&n.length)){let o=r.querySelector('track[label="thumbnails"]'),l=(a=o==null?void 0:o.getAttribute("src"))!=null?a:"";o==null||o.removeAttribute("src"),setTimeout(()=>{o==null||o.setAttribute("src",l)},0)}s.mode!=="hidden"&&(s.mode="hidden")}})};e.once(dt.Events.MANIFEST_LOADED,i),e.once(dt.Events.MEDIA_ATTACHED,i)}function Nl(r,e,t,i,s){let n=document.createElement("track");return n.kind=e,n.label=t,i&&(n.srclang=i),s&&(n.id=s),n.track.mode=["subtitles","captions"].includes(e)?"disabled":"hidden",n.setAttribute("data-removeondestroy",""),r.append(n),n.track}function $0(r,e){let t=Array.prototype.find.call(r.querySelectorAll("track"),i=>i.track===e);t==null||t.remove()}var zn="cuepoints",Bh=Object.freeze({label:zn}),$h=(r,{label:e=zn}=Bh)=>{var t;return(t=Array.from(r.querySelectorAll("track")).find(i=>i.track.label===e&&i.track.kind==="metadata"))==null?void 0:t.track};async function Gh(r,e,t=Bh){let i=$h(r,t);if(!i){let{label:s=zn}=t;i=Nl(r,"metadata",s),i.mode="hidden",await new Promise(n=>setTimeout(()=>n(void 0),0))}return i.mode!=="hidden"&&(i.mode="hidden"),[...e].sort(({time:s},{time:n})=>n-s).forEach(({time:s,value:n})=>{var a,o;let l=Array.prototype.findIndex.call(i==null?void 0:i.cues,f=>f.startTime>=s),d=(a=i==null?void 0:i.cues)==null?void 0:a[l],c=d?d.startTime:Number.isFinite(r.duration)?r.duration:Number.MAX_SAFE_INTEGER,u=(o=i==null?void 0:i.cues)==null?void 0:o[l-1];u&&(u.endTime=s);let h=new VTTCue(s,c,JSON.stringify(n!=null?n:null));i.addCue(h)}),i}var G0=r=>({time:r.startTime,value:JSON.parse(r.text)});function H0(r,e={label:zn}){let t=$h(r,e);return t!=null&&t.cues?Array.from(t.cues,i=>G0(i)):[]}function Hh(r,e={label:zn}){var t,i;let s=$h(r,e);if(!((t=s==null?void 0:s.activeCues)!=null&&t.length))return;let{currentTime:n}=r,a=Array.prototype.find.call((i=s.activeCues)!=null?i:[],({startTime:o,endTime:l})=>o<=n&&l>n);return G0(a)}async function VA(r,e=Bh){return new Promise(t=>{bi(r,"loadstart",async()=>{let i=await Gh(r,[],e);bi(r,"cuechange",()=>{let s=Hh(r);if(s){let n=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:s});r.dispatchEvent(n)}},{},i),t(i)})})}function V0(r,e){if(e){let t=e.playingDate;if(t!=null)return new Date(t.getTime()-r.currentTime*1e3)}return typeof r.getStartDate=="function"?r.getStartDate():new Date(NaN)}function K0(r,e){if(e&&e.playingDate)return e.playingDate;if(typeof r.getStartDate=="function"){let t=r.getStartDate();return new Date(t.getTime()+r.currentTime*1e3)}return new Date(NaN)}var KA=async r=>fetch(r).then(e=>e.text()).then(e=>{let t=e.split(`
|
|
972
|
+
`),d=[],c=e?H_(e.baseTime,e.timescale):0,u="00:00.000",h=0,f=0,g,E=!0;o.oncue=function(T){let A=t[i],k=t.ccOffset,L=(h-c)/9e4;if(A!=null&&A.new&&(f!==void 0?k=t.ccOffset=A.start:lA(t,i,L)),L){if(!e){g=new Error("Missing initPTS for VTT MPEGTS");return}k=L-t.presentationOffset}let N=T.endTime-T.startTime,D=li((T.startTime+k-f)*9e4,s*9e4)/9e4;T.startTime=Math.max(D,0),T.endTime=Math.max(D+N,0);let $=T.text.trim();T.text=decodeURIComponent(encodeURIComponent($)),T.id||(T.id=Mh(T.startTime,T.endTime,$)),T.endTime>0&&d.push(T)},o.onparsingerror=function(T){g=T},o.onflush=function(){if(g){a(g);return}n(d)},l.forEach(T=>{if(E)if(Eu(T,"X-TIMESTAMP-MAP=")){E=!1,T.slice(16).split(",").forEach(A=>{Eu(A,"LOCAL:")?u=A.slice(6):Eu(A,"MPEGTS:")&&(h=parseInt(A.slice(7)))});try{f=oA(u)/1e3}catch(A){g=A}return}else T===""&&(E=!1);o.parse(T+`
|
|
973
|
+
`)}),o.flush()}var yu="stpp.ttml.im1t",L0=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,k0=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,cA={left:"start",center:"center",right:"end",start:"start",end:"end"};function Pg(r,e,t,i){let s=Pe(new Uint8Array(r),["mdat"]);if(s.length===0){i(new Error("Could not parse IMSC1 mdat"));return}let n=s.map(o=>Hi(o)),a=$_(e.baseTime,1,e.timescale);try{n.forEach(o=>t(uA(o,a)))}catch(o){i(o)}}function uA(r,e){let s=new DOMParser().parseFromString(r,"text/xml").getElementsByTagName("tt")[0];if(!s)throw new Error("Invalid ttml");let n={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},a=Object.keys(n).reduce((u,h)=>(u[h]=s.getAttribute(`ttp:${h}`)||n[h],u),{}),o=s.getAttribute("xml:space")!=="preserve",l=Ng(Tu(s,"styling","style")),d=Ng(Tu(s,"layout","region")),c=Tu(s,"body","[begin]");return[].map.call(c,u=>{let h=R0(u,o);if(!h||!u.hasAttribute("begin"))return null;let f=Au(u.getAttribute("begin"),a),g=Au(u.getAttribute("dur"),a),E=Au(u.getAttribute("end"),a);if(f===null)throw Ug(u);if(E===null){if(g===null)throw Ug(u);E=f+g}let T=new Ch(f-e,E-e,h);T.id=Mh(T.startTime,T.endTime,T.text);let A=d[u.getAttribute("region")],k=l[u.getAttribute("style")],L=hA(A,k,l),{textAlign:N}=L;if(N){let D=cA[N];D&&(T.lineAlign=D),T.align=N}return pt(T,L),T}).filter(u=>u!==null)}function Tu(r,e,t){let i=r.getElementsByTagName(e)[0];return i?[].slice.call(i.querySelectorAll(t)):[]}function Ng(r){return r.reduce((e,t)=>{let i=t.getAttribute("xml:id");return i&&(e[i]=t),e},{})}function R0(r,e){return[].slice.call(r.childNodes).reduce((t,i,s)=>{var n;return i.nodeName==="br"&&s?t+`
|
|
974
|
+
`:(n=i.childNodes)!=null&&n.length?R0(i,e):e?t+i.textContent.trim().replace(/\s+/g," "):t+i.textContent},"")}function hA(r,e,t){let i="http://www.w3.org/ns/ttml#styling",s=null,n=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],a=r!=null&&r.hasAttribute("style")?r.getAttribute("style"):null;return a&&t.hasOwnProperty(a)&&(s=t[a]),n.reduce((o,l)=>{let d=_u(e,i,l)||_u(r,i,l)||_u(s,i,l);return d&&(o[l]=d),o},{})}function _u(r,e,t){return r&&r.hasAttributeNS(e,t)?r.getAttributeNS(e,t):null}function Ug(r){return new Error(`Could not parse ttml timestamp ${r}`)}function Au(r,e){if(!r)return null;let t=S0(r);return t===null&&(L0.test(r)?t=fA(r,e):k0.test(r)&&(t=mA(r,e))),t}function fA(r,e){let t=L0.exec(r),i=(t[4]|0)+(t[5]|0)/e.subFrameRate;return(t[1]|0)*3600+(t[2]|0)*60+(t[3]|0)+i/e.frameRate}function mA(r,e){let t=k0.exec(r),i=Number(t[1]);switch(t[2]){case"h":return i*3600;case"m":return i*60;case"ms":return i*1e3;case"f":return i/e.frameRate;case"t":return i/e.tickRate}return i}var Eh=class{constructor(e){if(this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Fg(),this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},this.config.enableCEA708Captions){let t=new Vs(this,"textTrack1"),i=new Vs(this,"textTrack2"),s=new Vs(this,"textTrack3"),n=new Vs(this,"textTrack4");this.cea608Parser1=new Rl(1,t,i),this.cea608Parser2=new Rl(3,s,n)}e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null}addCues(e,t,i,s,n){let a=!1;for(let o=n.length;o--;){let l=n[o],d=gA(l[0],l[1],t,i);if(d>=0&&(l[0]=Math.min(l[0],t),l[1]=Math.max(l[1],i),a=!0,d/(i-t)>.5))return}if(a||n.push([t,i]),this.config.renderTextTracksNatively){let o=this.captionsTracks[e];this.Cues.newCue(o,t,i,s)}else{let o=this.Cues.newCue(null,t,i,s);this.hls.trigger(b.CUES_PARSED,{type:"captions",cues:o,track:e})}}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:n}){let{unparsedVttFrags:a}=this;i==="main"&&(this.initPTS[t.cc]={baseTime:s,timescale:n}),a.length&&(this.unparsedVttFrags=[],a.forEach(o=>{this.onFragLoaded(b.FRAG_LOADED,o)}))}getExistingTrack(e){let{media:t}=this;if(t)for(let i=0;i<t.textTracks.length;i++){let s=t.textTracks[i];if(s[e])return s}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:t,captionsTracks:i,media:s}=this,{label:n,languageCode:a}=t[e],o=this.getExistingTrack(e);if(o)i[e]=o,Gs(i[e]),t0(i[e],s);else{let l=this.createTextTrack("captions",n,a);l&&(l[e]=!0,i[e]=l)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let t=this.captionsProperties[e];if(!t)return;let i=t.label,s={_id:e,label:i,kind:"captions",default:t.media?!!t.media.default:!1,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=s,this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[s]})}createTextTrack(e,t,i){let s=this.media;if(!!s)return s.addTextTrack(e,t,i)}onMediaAttaching(e,t){this.media=t.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach(t=>{Gs(e[t]),delete e[t]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Fg(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let t=e.textTracks;if(t)for(let i=0;i<t.length;i++)Gs(t[i])}onSubtitleTracksUpdated(e,t){let i=t.subtitleTracks||[],s=i.some(n=>n.textCodec===yu);if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(_0(this.tracks,i)){this.tracks=i;return}if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){let a=this.media?this.media.textTracks:null;this.tracks.forEach((o,l)=>{let d;if(a&&l<a.length){let c=null;for(let u=0;u<a.length;u++)if(pA(a[u],o)){c=a[u];break}c&&(d=c)}if(d)Gs(d);else{let c=this._captionsOrSubtitlesFromCharacteristics(o);d=this.createTextTrack(c,o.name,o.lang),d&&(d.mode="disabled")}d&&(d.groupId=o.groupId,this.textTracks.push(d))})}else if(this.tracks.length){let a=this.tracks.map(o=>({label:o.name,kind:o.type.toLowerCase(),default:o.default,subtitleTrack:o}));this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}_captionsOrSubtitlesFromCharacteristics(e){if(e.attrs.CHARACTERISTICS){let t=/transcribes-spoken-dialog/gi.test(e.attrs.CHARACTERISTICS),i=/describes-music-and-sound/gi.test(e.attrs.CHARACTERISTICS);if(t&&i)return"captions"}return"subtitles"}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(i=>{let s=/(?:CC|SERVICE)([1-4])/.exec(i.instreamId);if(!s)return;let n=`textTrack${s[1]}`,a=this.captionsProperties[n];!a||(a.label=i.name,i.lang&&(a.languageCode=i.lang),a.media=i)})}closedCaptionsForLevel(e){let t=this.hls.levels[e.level];return t==null?void 0:t.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){let{cea608Parser1:i,cea608Parser2:s,lastSn:n,lastPartIndex:a}=this;if(!(!this.enabled||!(i&&s))&&t.frag.type===ge.MAIN){var o,l;let d=t.frag.sn,c=(o=t==null||(l=t.part)==null?void 0:l.index)!=null?o:-1;d===n+1||d===n&&c===a+1||(i.reset(),s.reset()),this.lastSn=d,this.lastPartIndex=c}}onFragLoaded(e,t){let{frag:i,payload:s}=t;if(i.type===ge.SUBTITLE)if(s.byteLength){let n=i.decryptdata,a="stats"in t;if(n==null||!n.encrypted||a){let o=this.tracks[i.level],l=this.vttCCs;l[i.cc]||(l[i.cc]={start:i.start,prevCC:this.prevCC,new:!0},this.prevCC=i.cc),o&&o.textCodec===yu?this._parseIMSC1(i,s):this._parseVTTs(t)}}else this.hls.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,t){let i=this.hls;Pg(t,this.initPTS[e.cc],s=>{this._appendCues(s,e.level),i.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},s=>{M.log(`Failed to parse IMSC1: ${s}`),i.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:s})})}_parseVTTs(e){var t;let{frag:i,payload:s}=e,{initPTS:n,unparsedVttFrags:a}=this,o=n.length-1;if(!n[i.cc]&&o===-1){a.push(e);return}let l=this.hls,d=(t=i.initSegment)!=null&&t.data?Kr(i.initSegment.data,new Uint8Array(s)):s;dA(d,this.initPTS[i.cc],this.vttCCs,i.cc,i.start,c=>{this._appendCues(c,i.level),l.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:i})},c=>{let u=c.message==="Missing initPTS for VTT MPEGTS";u?a.push(e):this._fallbackToIMSC1(i,s),M.log(`Failed to parse VTT cue: ${c}`),!(u&&o>i.cc)&&l.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:c})})}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||Pg(t,this.initPTS[e.cc],()=>{i.textCodec=yu,this._parseIMSC1(e,t)},()=>{i.textCodec="wvtt"})}_appendCues(e,t){let i=this.hls;if(this.config.renderTextTracksNatively){let s=this.textTracks[t];if(!s||s.mode==="disabled")return;e.forEach(n=>i0(s,n))}else{let s=this.tracks[t];if(!s)return;let n=s.default?"default":"subtitles"+t;i.trigger(b.CUES_PARSED,{type:"subtitles",cues:e,track:n})}}onFragDecrypted(e,t){let{frag:i}=t;i.type===ge.SUBTITLE&&this.onFragLoaded(b.FRAG_LOADED,t)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,t){let{cea608Parser1:i,cea608Parser2:s}=this;if(!this.enabled||!(i&&s))return;let{frag:n,samples:a}=t;if(!(n.type===ge.MAIN&&this.closedCaptionsForLevel(n)==="NONE"))for(let o=0;o<a.length;o++){let l=a[o].bytes;if(l){let d=this.extractCea608Data(l);i.addData(a[o].pts,d[0]),s.addData(a[o].pts,d[1])}}}onBufferFlushing(e,{startOffset:t,endOffset:i,endOffsetSubtitles:s,type:n}){let{media:a}=this;if(!(!a||a.currentTime<i)){if(!n||n==="video"){let{captionsTracks:o}=this;Object.keys(o).forEach(l=>Ru(o[l],t,i))}if(this.config.renderTextTracksNatively&&t===0&&s!==void 0){let{textTracks:o}=this;Object.keys(o).forEach(l=>Ru(o[l],t,s))}}}extractCea608Data(e){let t=[[],[]],i=e[0]&31,s=2;for(let n=0;n<i;n++){let a=e[s++],o=127&e[s++],l=127&e[s++];if(o===0&&l===0)continue;if((4&a)!==0){let c=3&a;(c===0||c===1)&&(t[c].push(o),t[c].push(l))}}return t}};function pA(r,e){return!!r&&r.label===e.name&&!(r.textTrack1||r.textTrack2)}function gA(r,e,t,i){return Math.min(e,i)-Math.max(r,t)}function Fg(){return{ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}}}var Yn=class{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.unregisterListener(),this.hls.config.capLevelToPlayerSize&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:e}=this;e.on(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:e}=this;e.off(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,t){let i=this.hls.levels[t.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null,this.clientRect=null}onManifestParsed(e,t){let i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onBufferCodecs(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media&&this.mediaHeight>0&&this.mediaWidth>0){let e=this.hls.levels;if(e.length){let t=this.hls;t.autoLevelCapping=this.getMaxLevel(e.length-1),t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}}getMaxLevel(e){let t=this.hls.levels;if(!t.length)return-1;let i=t.filter((s,n)=>this.isLevelAllowed(s)&&n<=e);return this.clientRect=null,Yn.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let e=this.media,t={width:0,height:0};if(e){let i=e.getBoundingClientRect();t.width=i.width,t.height=i.height,!t.width&&!t.height&&(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)}return this.clientRect=t,t}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch{}return e}isLevelAllowed(e){return!this.restrictedLevels.some(i=>e.bitrate===i.bitrate&&e.width===i.width&&e.height===i.height)}static getMaxLevelByMediaSize(e,t,i){if(!(e!=null&&e.length))return-1;let s=(a,o)=>o?a.width!==o.width||a.height!==o.height:!0,n=e.length-1;for(let a=0;a<e.length;a+=1){let o=e[a];if((o.width>=t||o.height>=i)&&s(o,e[a+1])){n=a;break}}return n}},bh=class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,t){let i=this.hls.config;if(i.capLevelOnFPSDrop){let s=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=s,s&&typeof s.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod)}}checkFPS(e,t,i){let s=performance.now();if(t){if(this.lastTime){let n=s-this.lastTime,a=i-this.lastDroppedFrames,o=t-this.lastDecodedFrames,l=1e3*a/n,d=this.hls;if(d.trigger(b.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),l>0&&a>d.config.fpsDroppedMonitoringThreshold*o){let c=d.currentLevel;M.warn("drop FPS ratio greater than max allowed value for currentLevel: "+c),c>0&&(d.autoLevelCapping===-1||d.autoLevelCapping>=c)&&(c=c-1,d.trigger(b.FPS_DROP_LEVEL_CAPPING,{level:c,droppedLevel:d.currentLevel}),d.autoLevelCapping=c,this.streamController.nextLevelSwitch())}}this.lastTime=s,this.lastDroppedFrames=i,this.lastDecodedFrames=t}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},dl="[eme]",Er=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=Er.CDMCleanupPromise?[Er.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=M.debug.bind(M,dl),this.log=M.log.bind(M,dl),this.warn=M.warn.bind(M,dl),this.error=M.error.bind(M,dl),this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(e){let{drmSystems:t,widevineLicenseUrl:i}=this.config,s=t[e];if(s)return s.licenseUrl;if(e===st.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${e}"`)}getServerCertificateUrl(e){let{drmSystems:t}=this.config,i=t[e];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){let t=this.hls.levels,i=(a,o,l)=>!!a&&l.indexOf(a)===o,s=t.map(a=>a.audioCodec).filter(i),n=t.map(a=>a.videoCodec).filter(i);return s.length+n.length===0&&n.push("avc1.42e01e"),new Promise((a,o)=>{let l=d=>{let c=d.shift();this.getMediaKeysPromise(c,s,n).then(u=>a({keySystem:c,mediaKeys:u})).catch(u=>{d.length?l(d):u instanceof qt?o(u):o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_ACCESS,error:u,fatal:!0},u.message))})};l(e)})}requestMediaKeySystemAccess(e,t){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let s=`Configured requestMediaKeySystemAccess is not a function ${i}`;return Vg===null&&self.location.protocol==="http:"&&(s=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(s))}return i(e,t)}getMediaKeysPromise(e,t,i){let s=pT(e,t,i,this.config.drmSystemOptions),n=this.keySystemAccessPromises[e],a=n==null?void 0:n.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${e}" key-system access with config: ${JSON.stringify(s)}`),a=this.requestMediaKeySystemAccess(e,s);let o=this.keySystemAccessPromises[e]={keySystemAccess:a};return a.catch(l=>{this.log(`Failed to obtain access to key-system "${e}": ${l}`)}),a.then(l=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let d=this.fetchServerCertificate(e);return this.log(`Create media-keys for "${e}"`),o.mediaKeys=l.createMediaKeys().then(c=>(this.log(`Media-keys created for "${e}"`),d.then(u=>u?this.setMediaKeysServerCertificate(c,e,u):c))),o.mediaKeys.catch(c=>{this.error(`Failed to create media-keys for "${e}"}: ${c}`)}),o.mediaKeys})}return a.then(()=>n.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${Ni.hexDump(e.keyId||[])}`);let s=i.createSession(),n={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:s,keyStatus:"status-pending"};return this.mediaKeySessions.push(n),n}renewKeySession(e){let t=e.decryptdata;if(t.pssh){let i=this.createMediaKeySessionContext(e),s=this.getKeyIdString(t),n="cenc";this.keyIdToKeySessionPromise[s]=this.generateRequestWithPreferredKeySession(i,n,t.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}getKeyIdString(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(e.keyId===null)throw new Error("keyId is null");return Ni.hexDump(e.keyId)}updateKeySession(e,t){var i;let s=e.mediaKeysSession;return this.log(`Updating key-session "${s.sessionId}" for keyID ${Ni.hexDump(((i=e.decryptdata)==null?void 0:i.keyId)||[])}
|
|
975
|
+
} (data length: ${t&&t.byteLength})`),s.update(t)}selectKeySystemFormat(e){let t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats ${t.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise}getKeyFormatPromise(e){return new Promise((t,i)=>{let s=su(this.config),n=e.map(ig).filter(a=>!!a&&s.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(n).then(({keySystem:a})=>{let o=rg(a);o?t(o):i(new Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(e){let t=e.keyInfo.decryptdata,i=this.getKeyIdString(t),s=`(keyId: ${i} format: "${t.keyFormat}" method: ${t.method} uri: ${t.uri})`;this.log(`Starting session for key ${s}`);let n=this.keyIdToKeySessionPromise[i];return n||(n=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(t).then(({keySystem:a,mediaKeys:o})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${s}`),this.attemptSetMediaKeys(a,o).then(()=>{this.throwIfDestroyed();let l=this.createMediaKeySessionContext({keySystem:a,mediaKeys:o,decryptdata:t}),d="cenc";return this.generateRequestWithPreferredKeySession(l,d,t.pssh,"playlist-key")}))),n.catch(a=>this.handleError(a))),n}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e){!this.hls||(this.error(e.message),e instanceof qt?this.hls.trigger(b.ERROR,e.data):this.hls.trigger(b.ERROR,{type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))}getKeySystemForKeyPromise(e){let t=this.getKeyIdString(e),i=this.keyIdToKeySessionPromise[t];if(!i){let s=ig(e.keyFormat),n=s?[s]:su(this.config);return this.attemptKeySystemAccess(n)}return i}getKeySystemSelectionPromise(e){if(e.length||(e=su(this.config)),e.length===0)throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${JSON.stringify({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}_onMediaEncrypted(e){let{initDataType:t,initData:i}=e;if(this.debug(`"${e.type}" event: init data type: "${t}"`),i===null)return;let s,n;if(t==="sinf"&&this.config.drmSystems[st.FAIRPLAY]){let c=Lt(new Uint8Array(i));try{let u=Sh(JSON.parse(c).sinf),h=Qg(new Uint8Array(u));if(!h)return;s=h.subarray(8,24),n=st.FAIRPLAY}catch{this.warn('Failed to parse sinf "encrypted" event message initData');return}}else{let c=BT(i);if(c===null)return;c.version===0&&c.systemId===Gg.WIDEVINE&&c.data&&(s=c.data.subarray(8,24)),n=mT(c.systemId)}if(!n||!s)return;let a=Ni.hexDump(s),{keyIdToKeySessionPromise:o,mediaKeySessions:l}=this,d=o[a];for(let c=0;c<l.length;c++){let u=l[c],h=u.decryptdata;if(h.pssh||!h.keyId)continue;let f=Ni.hexDump(h.keyId);if(a===f||h.uri.replace(/-/g,"").indexOf(a)!==-1){d=o[f],delete o[f],h.pssh=new Uint8Array(i),h.keyId=s,d=o[a]=d.then(()=>this.generateRequestWithPreferredKeySession(u,t,i,"encrypted-event-key-match"));break}}d||(d=o[a]=this.getKeySystemSelectionPromise([n]).then(({keySystem:c,mediaKeys:u})=>{var h;this.throwIfDestroyed();let f=new Wr("ISO-23001-7",a,(h=rg(c))!=null?h:"");return f.pssh=new Uint8Array(i),f.keyId=s,this.attemptSetMediaKeys(c,u).then(()=>{this.throwIfDestroyed();let g=this.createMediaKeySessionContext({decryptdata:f,keySystem:c,mediaKeys:u});return this.generateRequestWithPreferredKeySession(g,t,i,"encrypted-event-no-match")})})),d.catch(c=>this.handleError(c))}_onWaitingForKey(e){this.log(`"${e.type}" event`)}attemptSetMediaKeys(e,t){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);let s=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(t)});return this.setMediaKeysQueue.push(s),s.then(()=>{this.log(`Media-keys set for "${e}"`),i.push(s),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(n=>i.indexOf(n)===-1)})}generateRequestWithPreferredKeySession(e,t,i,s){var n,a;let o=(n=this.config.drmSystems)==null||(a=n[e.keySystem])==null?void 0:a.generateRequest;if(o)try{let h=o.call(this.hls,t,i,e);if(!h)throw new Error("Invalid response from configured generateRequest filter");t=h.initDataType,i=e.decryptdata.pssh=h.initData?new Uint8Array(h.initData):null}catch(h){var l;if(this.warn(h.message),(l=this.hls)!=null&&l.config.debug)throw h}if(i===null)return this.log(`Skipping key-session request for "${s}" (no initData)`),Promise.resolve(e);let d=this.getKeyIdString(e.decryptdata);this.log(`Generating key-session request for "${s}": ${d} (init data type: ${t} length: ${i?i.byteLength:null})`);let c=new Dh;e.mediaKeysSession.onmessage=h=>{let f=e.mediaKeysSession;if(!f){c.emit("error",new Error("invalid state"));return}let{messageType:g,message:E}=h;this.log(`"${g}" message event for session "${f.sessionId}" message size: ${E.byteLength}`),g==="license-request"||g==="license-renewal"?this.renewLicense(e,E).catch(T=>{this.handleError(T),c.emit("error",T)}):g==="license-release"?e.keySystem===st.FAIRPLAY&&(this.updateKeySession(e,Hg("acknowledged")),this.removeSession(e)):this.warn(`unhandled media key message type "${g}"`)},e.mediaKeysSession.onkeystatuseschange=h=>{if(!e.mediaKeysSession){c.emit("error",new Error("invalid state"));return}this.onKeyStatusChange(e);let g=e.keyStatus;c.emit("keyStatus",g),g==="expired"&&(this.warn(`${e.keySystem} expired for key ${d}`),this.renewKeySession(e))};let u=new Promise((h,f)=>{c.on("error",f),c.on("keyStatus",g=>{g.startsWith("usable")?h():g==="output-restricted"?f(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):g==="internal-error"?f(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${g}"`)):g==="expired"?f(new Error("key expired while generating request")):this.warn(`unhandled key status change "${g}"`)})});return e.mediaKeysSession.generateRequest(t,i).then(()=>{var h;this.log(`Request generated for key-session "${(h=e.mediaKeysSession)==null?void 0:h.sessionId}" keyId: ${d}`)}).catch(h=>{throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_NO_SESSION,error:h,fatal:!1},`Error generating key-session request: ${h}`)}).then(()=>u).catch(h=>{throw c.removeAllListeners(),this.removeSession(e),h}).then(()=>(c.removeAllListeners(),e))}onKeyStatusChange(e){e.mediaKeysSession.keyStatuses.forEach((t,i)=>{this.log(`key status change "${t}" for keyStatuses keyId: ${Ni.hexDump("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${Ni.hexDump(new Uint8Array(e.decryptdata.keyId||[]))} uri: ${e.decryptdata.uri}`),e.keyStatus=t})}fetchServerCertificate(e){let t=this.config,i=t.loader,s=new i(t),n=this.getServerCertificateUrl(e);return n?(this.log(`Fetching serverCertificate for "${e}"`),new Promise((a,o)=>{let l={responseType:"arraybuffer",url:n},d=t.certLoadPolicy.default,c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(h,f,g,E)=>{a(h.data)},onError:(h,f,g,E)=>{o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:g,response:jt({url:l.url,data:void 0},h)},`"${e}" certificate request failed (${n}). Status: ${h.code} (${h.text})`))},onTimeout:(h,f,g)=>{o(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:g,response:{url:l.url,data:void 0}},`"${e}" certificate request timed out (${n})`))},onAbort:(h,f,g)=>{o(new Error("aborted"))}};s.load(l,c,u)})):Promise.resolve()}setMediaKeysServerCertificate(e,t,i){return new Promise((s,n)=>{e.setServerCertificate(i).then(a=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${t}"`),s(e)}).catch(a=>{n(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(e,t){return this.requestLicense(e,new Uint8Array(t)).then(i=>this.updateKeySession(e,new Uint8Array(i)).catch(s=>{throw new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:s,fatal:!0},s.message)}))}setupLicenseXHR(e,t,i,s){let n=this.config.licenseXhrSetup;return n?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return n.call(this.hls,e,t,i,s)}).catch(a=>{if(!i.decryptdata)throw a;return e.open("POST",t,!0),n.call(this.hls,e,t,i,s)}).then(a=>(e.readyState||e.open("POST",t,!0),{xhr:e,licenseChallenge:a||s})):(e.open("POST",t,!0),Promise.resolve({xhr:e,licenseChallenge:s}))}requestLicense(e,t){let i=this.config.keyLoadPolicy.default;return new Promise((s,n)=>{let a=this.getLicenseServerUrl(e.keySystem);this.log(`Sending license request to URL: ${a}`);let o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return n(new Error("invalid state"));if(o.readyState===4)if(o.status===200){this._requestLicenseFailureCount=0;let l=o.response;this.log(`License received ${l instanceof ArrayBuffer?l.byteLength:l}`);let d=this.config.licenseResponseCallback;if(d)try{l=d.call(this.hls,o,a,e)}catch(c){this.error(c)}s(l)}else{let l=i.errorRetry,d=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>d||o.status>=400&&o.status<500)n(new qt({type:pe.KEY_SYSTEM_ERROR,details:B.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:o,response:{url:a,data:void 0,code:o.status,text:o.statusText}},`License Request XHR failed (${a}). Status: ${o.status} (${o.statusText})`));else{let c=d-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${c} attempts left`),this.requestLicense(e,t).then(s,n)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=o,this.setupLicenseXHR(o,a,e,t).then(({xhr:l,licenseChallenge:d})=>{l.send(d)})})}onMediaAttached(e,t){if(!this.config.emeEnabled)return;let i=t.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let e=this.media,t=this.mediaKeySessions;e&&(e.removeEventListener("encrypted",this.onMediaEncrypted),e.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},Wr.clearKeyUriToKeyIdMap();let i=t.length;Er.CDMCleanupPromise=Promise.all(t.map(s=>this.removeSession(s)).concat(e==null?void 0:e.setMediaKeys(null).catch(s=>{this.log(`Could not clear media keys: ${s}. media.src: ${e==null?void 0:e.src}`)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),t.length=0)}).catch(s=>{this.log(`Could not close sessions and clear media keys: ${s}. media.src: ${e==null?void 0:e.src}`)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(e,{sessionKeys:t}){if(!(!t||!this.config.emeEnabled)&&!this.keyFormatPromise){let i=t.reduce((s,n)=>(s.indexOf(n.keyFormat)===-1&&s.push(n.keyFormat),s),[]);this.log(`Selecting key-system from session-keys ${i.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(e){let{mediaKeysSession:t,licenseXhr:i}=e;if(t){this.log(`Remove licenses and keys and close session ${t.sessionId}`),t.onmessage=null,t.onkeystatuseschange=null,i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;let s=this.mediaKeySessions.indexOf(e);return s>-1&&this.mediaKeySessions.splice(s,1),t.remove().catch(n=>{this.log(`Could not remove session: ${n}`)}).then(()=>t.close()).catch(n=>{this.log(`Could not close session: ${n}`)})}}};Er.CDMCleanupPromise=void 0;var qt=class extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=new Error(t)),this.data=e,e.err=e.error}},vA=1,Kt={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},EA="h",Bi=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=s=>{try{this.apply(s,{ot:Kt.MANIFEST,su:!this.initialized})}catch(n){M.warn("Could not generate manifest CMCD data.",n)}},this.applyFragmentData=s=>{try{let n=s.frag,a=this.hls.levels[n.level],o=this.getObjectType(n),l={d:n.duration*1e3,ot:o};(o===Kt.VIDEO||o===Kt.AUDIO||o==Kt.MUXED)&&(l.br=a.bitrate/1e3,l.tb=this.getTopBandwidth(o)/1e3,l.bl=this.getBufferLength(o)),this.apply(s,l)}catch(n){M.warn("Could not generate segment CMCD data.",n)}},this.hls=e;let t=this.config=e.config,{cmcd:i}=t;i!=null&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||Bi.uuid(),this.cid=i.contentId,this.useHeaders=i.useHeaders===!0,this.registerListeners())}registerListeners(){let e=this.hls;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHED,this.onMediaDetached,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHED,this.onMediaDetached,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){!this.media||(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,t){var i,s;this.audioBuffer=(i=t.tracks.audio)==null?void 0:i.buffer,this.videoBuffer=(s=t.tracks.video)==null?void 0:s.buffer}createData(){var e;return{v:vA,sf:EA,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,t={}){pt(t,this.createData());let i=t.ot===Kt.INIT||t.ot===Kt.VIDEO||t.ot===Kt.MUXED;if(this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),t.su==null&&(t.su=this.buffering),this.useHeaders){let s=Bi.toHeaders(t);if(!Object.keys(s).length)return;e.headers||(e.headers={}),pt(e.headers,s)}else{let s=Bi.toQuery(t);if(!s)return;e.url=Bi.appendQueryToUri(e.url,s)}}getObjectType(e){let{type:t}=e;if(t==="subtitle")return Kt.TIMED_TEXT;if(e.sn==="initSegment")return Kt.INIT;if(t==="audio")return Kt.AUDIO;if(t==="main")return this.hls.audioTracks.length?Kt.VIDEO:Kt.MUXED}getTopBandwidth(e){let t=0,i,s=this.hls;if(e===Kt.AUDIO)i=s.audioTracks;else{let n=s.maxAutoLevel,a=n>-1?n+1:s.levels.length;i=s.levels.slice(0,a)}for(let n of i)n.bitrate>t&&(t=n.bitrate);return t>0?t:NaN}getBufferLength(e){let t=this.hls.media,i=e===Kt.AUDIO?this.audioBuffer:this.videoBuffer;return!i||!t?NaN:je.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){let{pLoader:e}=this.config,t=this.applyPlaylistData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}createFragmentLoader(){let{fLoader:e}=this.config,t=this.applyFragmentData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}static uuid(){let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}static serialize(e){let t=[],i=d=>!Number.isNaN(d)&&d!=null&&d!==""&&d!==!1,s=d=>Math.round(d),n=d=>s(d/100)*100,o={br:s,d:s,bl:n,dl:n,mtp:n,nor:d=>encodeURIComponent(d),rtp:n,tb:s},l=Object.keys(e||{}).sort();for(let d of l){let c=e[d];if(!i(c)||d==="v"&&c===1||d=="pr"&&c===1)continue;let u=o[d];u&&(c=u(c));let h=typeof c,f;d==="ot"||d==="sf"||d==="st"?f=`${d}=${c}`:h==="boolean"?f=d:h==="number"?f=`${d}=${c}`:f=`${d}=${JSON.stringify(c)}`,t.push(f)}return t.join(",")}static toHeaders(e){let t=Object.keys(e),i={},s=["Object","Request","Session","Status"],n=[{},{},{},{}],a={br:0,d:0,ot:0,tb:0,bl:1,dl:1,mtp:1,nor:1,nrr:1,su:1,cid:2,pr:2,sf:2,sid:2,st:2,v:2,bs:3,rtp:3};for(let o of t){let l=a[o]!=null?a[o]:1;n[l][o]=e[o]}for(let o=0;o<n.length;o++){let l=Bi.serialize(n[o]);l&&(i[`CMCD-${s[o]}`]=l)}return i}static toQuery(e){return`CMCD=${encodeURIComponent(Bi.serialize(e))}`}static appendQueryToUri(e,t){if(!t)return e;let i=e.includes("?")?"&":"?";return`${e}${i}${t}`}},bA=3e5,yh=class{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=M.log.bind(M,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;!e||(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.ERROR,this.onError,this))}startLoad(){if(this.started=!0,self.clearTimeout(this.reloadTimer),this.enabled&&this.uri)if(this.updated){let e=Math.max(this.timeToLoad*1e3-(performance.now()-this.updated),0);this.scheduleRefresh(this.uri,e)}else this.loadSteeringManifest(this.uri)}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),self.clearTimeout(this.reloadTimer)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let t=this.levels;t&&(this.levels=t.filter(i=>i!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,t){let{contentSteering:i}=t;i!==null&&(this.pathwayId=i.pathwayId,this.uri=i.uri,this.started&&this.startLoad())}onManifestParsed(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks}onError(e,t){let{errorAction:i}=t;if((i==null?void 0:i.action)===Mt.SendAlternateToPenaltyBox&&i.flags===oi.MoveAllAlternatesMatchingHost){let s=this.pathwayPriority,n=this.pathwayId;this.penalizedPathways[n]||(this.penalizedPathways[n]=performance.now()),!s&&this.levels&&(s=this.levels.reduce((a,o)=>(a.indexOf(o.pathwayId)===-1&&a.push(o.pathwayId),a),[])),s&&s.length>1&&(this.updatePathwayPriority(s),i.resolved=this.pathwayId!==n)}}filterParsedLevels(e){this.levels=e;let t=this.getLevelsForPathway(this.pathwayId);if(t.length===0){let i=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${i}"`),t=this.getLevelsForPathway(i),this.pathwayId=i}return t.length!==e.length?(this.log(`Found ${t.length}/${e.length} levels in Pathway "${this.pathwayId}"`),t):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter(t=>e===t.pathwayId)}updatePathwayPriority(e){this.pathwayPriority=e;let t,i=this.penalizedPathways,s=performance.now();Object.keys(i).forEach(n=>{s-i[n]>bA&&delete i[n]});for(let n=0;n<e.length;n++){let a=e[n];if(i[a])continue;if(a===this.pathwayId)return;let o=this.hls.nextLoadLevel,l=this.hls.levels[o];if(t=this.getLevelsForPathway(a),t.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,this.hls.trigger(b.LEVELS_UPDATED,{levels:t});let d=this.hls.levels[o];l&&d&&this.levels&&(d.attrs["STABLE-VARIANT-ID"]!==l.attrs["STABLE-VARIANT-ID"]&&d.bitrate!==l.bitrate&&this.log(`Unstable Pathways change from bitrate ${l.bitrate} to ${d.bitrate}`),this.hls.nextLoadLevel=o);break}}}clonePathways(e){let t=this.levels;if(!t)return;let i={},s={};e.forEach(n=>{let{ID:a,"BASE-ID":o,"URI-REPLACEMENT":l}=n;if(t.some(c=>c.pathwayId===a))return;let d=this.getLevelsForPathway(o).map(c=>{let u=pt({},c);u.details=void 0,u.url=w0(c.uri,c.attrs["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",l);let h=new Ze(c.attrs);h["PATHWAY-ID"]=a;let f=h.AUDIO&&`${h.AUDIO}_clone_${a}`,g=h.SUBTITLES&&`${h.SUBTITLES}_clone_${a}`;f&&(i[h.AUDIO]=f,h.AUDIO=f),g&&(s[h.SUBTITLES]=g,h.SUBTITLES=g),u.attrs=h;let E=new qr(u);return El(E,"audio",f),El(E,"text",g),E});t.push(...d),Bg(this.audioTracks,i,l,a),Bg(this.subtitleTracks,s,l,a)})}loadSteeringManifest(e){let t=this.hls.config,i=t.loader;this.loader&&this.loader.destroy(),this.loader=new i(t);let s;try{s=new self.URL(e)}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest URI: ${e}`);return}if(s.protocol!=="data:"){let c=(this.hls.bandwidthEstimate||t.abrEwmaDefaultEstimate)|0;s.searchParams.set("_HLS_pathway",this.pathwayId),s.searchParams.set("_HLS_throughput",""+c)}let n={responseType:"json",url:s.href},a=t.steeringManifestLoadPolicy.default,o=a.errorRetry||a.timeoutRetry||{},l={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:o.maxNumRetry||0,retryDelay:o.retryDelayMs||0,maxRetryDelay:o.maxRetryDelayMs||0},d={onSuccess:(c,u,h,f)=>{this.log(`Loaded steering manifest: "${s}"`);let g=c.data;if(g.VERSION!==1){this.log(`Steering VERSION ${g.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=g.TTL;let{"RELOAD-URI":E,"PATHWAY-CLONES":T,"PATHWAY-PRIORITY":A}=g;if(E)try{this.uri=new self.URL(E,s).href}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${E}`);return}this.scheduleRefresh(this.uri||h.url),T&&this.clonePathways(T),A&&this.updatePathwayPriority(A)},onError:(c,u,h,f)=>{if(this.log(`Error loading steering manifest: ${c.code} ${c.text} (${u.url})`),this.stopLoad(),c.code===410){this.enabled=!1,this.log(`Steering manifest ${u.url} no longer available`);return}let g=this.timeToLoad*1e3;if(c.code===429){let E=this.loader;if(typeof(E==null?void 0:E.getResponseHeader)=="function"){let T=E.getResponseHeader("Retry-After");T&&(g=parseFloat(T)*1e3)}this.log(`Steering manifest ${u.url} rate limited`);return}this.scheduleRefresh(this.uri||u.url,g)},onTimeout:(c,u,h)=>{this.log(`Timeout loading steering manifest (${u.url})`),this.scheduleRefresh(this.uri||u.url)}};this.log(`Requesting steering manifest: ${s}`),this.loader.load(n,l,d)}scheduleRefresh(e,t=this.timeToLoad*1e3){self.clearTimeout(this.reloadTimer),this.reloadTimer=self.setTimeout(()=>{this.loadSteeringManifest(e)},t)}};function Bg(r,e,t,i){!r||Object.keys(e).forEach(s=>{let n=r.filter(a=>a.groupId===s).map(a=>{let o=pt({},a);return o.details=void 0,o.attrs=new Ze(o.attrs),o.url=o.attrs.URI=w0(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),o.groupId=o.attrs["GROUP-ID"]=e[s],o.attrs["PATHWAY-ID"]=i,o});r.push(...n)})}function w0(r,e,t,i){let{HOST:s,PARAMS:n,[t]:a}=i,o;e&&(o=a==null?void 0:a[e],o&&(r=o));let l=new self.URL(r);return s&&!o&&(l.host=s),n&&Object.keys(n).sort().forEach(d=>{d&&l.searchParams.set(d,n[d])}),l.href}var yA=/^age:\s*[\d.]+\s*$/im,wl=class{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new Ks,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null}abortInternal(){let e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,e.readyState!==4&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:e,context:t}=this;if(!e)return;let i=this.loader=new self.XMLHttpRequest,s=this.stats;s.loading.first=0,s.loaded=0,s.aborted=!1;let n=this.xhrSetup;n?Promise.resolve().then(()=>{if(!this.stats.aborted)return n(i,t.url)}).catch(a=>(i.open("GET",t.url,!0),n(i,t.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,t,e)}).catch(a=>{this.callbacks.onError({code:i.status,text:a.message},t,i,s)}):this.openAndSendXhr(i,t,e)}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,!0);let s=this.context.headers,{maxTimeToFirstByteMs:n,maxLoadTimeMs:a}=i.loadPolicy;if(s)for(let o in s)e.setRequestHeader(o,s[o]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=n&&ce(n)?n:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),e.send()}readystatechange(){let{context:e,loader:t,stats:i}=this;if(!e||!t)return;let s=t.readyState,n=this.config;if(!i.aborted&&s>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),n.timeout!==n.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),n.timeout=n.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),s===4)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;let a=t.status,o=t.responseType!=="text";if(a>=200&&a<300&&(o&&t.response||t.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let l=o?t.response:t.responseText,d=t.responseType==="arraybuffer"?l.byteLength:l.length;if(i.loaded=i.total=d,i.bwEstimate=i.total*8e3/(i.loading.end-i.loading.first),!this.callbacks)return;let c=this.callbacks.onProgress;if(c&&c(i,e,l,t),!this.callbacks)return;let u={url:t.responseURL,data:l,code:a};this.callbacks.onSuccess(u,i,e,t)}else{let l=n.loadPolicy.errorRetry,d=i.retry;vl(l,d,!1,a)?this.retry(l):(M.error(`${a} while loading ${e.url}`),this.callbacks.onError({code:a,text:t.statusText},e,t,i))}}}loadtimeout(){var e;let t=(e=this.config)==null?void 0:e.loadPolicy.timeoutRetry,i=this.stats.retry;if(vl(t,i,!0))this.retry(t);else{M.warn(`timeout while loading ${this.context.url}`);let s=this.callbacks;s&&(this.abortInternal(),s.onTimeout(this.stats,this.context,this.loader))}}retry(e){let{context:t,stats:i}=this;this.retryDelay=Ih(e,i.retry),i.retry++,M.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${t.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){let t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)}getCacheAge(){let e=null;if(this.loader&&yA.test(this.loader.getAllResponseHeaders())){let t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}};function TA(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return!1}var _A=/(\d+)-(\d+)\/(\d+)/,Dl=class{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||IA,this.controller=new self.AbortController,this.stats=new Ks}destroy(){this.loader=this.callbacks=null,this.abortInternal()}abortInternal(){let e=this.response;e!=null&&e.ok||(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,t,i){let s=this.stats;if(s.loading.start)throw new Error("Loader can only be used once.");s.loading.start=self.performance.now();let n=AA(e,this.controller.signal),a=i.onProgress,o=e.responseType==="arraybuffer",l=o?"byteLength":"length",{maxTimeToFirstByteMs:d,maxLoadTimeMs:c}=t.loadPolicy;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,n),self.clearTimeout(this.requestTimeout),t.timeout=d&&ce(d)?d:c,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(s,e,this.response)},t.timeout),self.fetch(this.request).then(u=>{this.response=this.loader=u;let h=Math.max(self.performance.now(),s.loading.start);if(self.clearTimeout(this.requestTimeout),t.timeout=c,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(s,e,this.response)},c-(h-s.loading.start)),!u.ok){let{status:f,statusText:g}=u;throw new Th(g||"fetch, bad network response",f,u)}return s.loading.first=h,s.total=xA(u.headers)||s.total,a&&ce(t.highWaterMark)?this.loadProgressively(u,s,e,t.highWaterMark,a):o?u.arrayBuffer():e.responseType==="json"?u.json():u.text()}).then(u=>{let{response:h}=this;self.clearTimeout(this.requestTimeout),s.loading.end=Math.max(self.performance.now(),s.loading.first);let f=u[l];f&&(s.loaded=s.total=f);let g={url:h.url,data:u,code:h.status};a&&!ce(t.highWaterMark)&&a(s,e,u,h),i.onSuccess(g,s,e,h)}).catch(u=>{if(self.clearTimeout(this.requestTimeout),s.aborted)return;let h=u&&u.code||0,f=u?u.message:null;i.onError({code:h,text:f},e,u?u.details:null,s)})}getCacheAge(){let e=null;if(this.response){let t=this.response.headers.get("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(e,t,i,s=0,n){let a=new Il,o=e.body.getReader(),l=()=>o.read().then(d=>{if(d.done)return a.dataLength&&n(t,i,a.flush(),e),Promise.resolve(new ArrayBuffer(0));let c=d.value,u=c.length;return t.loaded+=u,u<s||a.dataLength?(a.push(c),a.dataLength>=s&&n(t,i,a.flush(),e)):n(t,i,c,e),l()}).catch(()=>Promise.reject());return l()}};function AA(r,e){let t={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(pt({},r.headers))};return r.rangeEnd&&t.headers.set("Range","bytes="+r.rangeStart+"-"+String(r.rangeEnd-1)),t}function SA(r){let e=_A.exec(r);if(e)return parseInt(e[2])-parseInt(e[1])+1}function xA(r){let e=r.get("Content-Range");if(e){let i=SA(e);if(ce(i))return i}let t=r.get("Content-Length");if(t)return parseInt(t)}function IA(r,e){return new self.Request(r.url,e)}var Th=class extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i}},LA=/\s/,kA={newCue(r,e,t,i){let s=[],n,a,o,l,d,c=self.VTTCue||self.TextTrackCue;for(let h=0;h<i.rows.length;h++)if(n=i.rows[h],o=!0,l=0,d="",!n.isEmpty()){var u;for(let E=0;E<n.chars.length;E++)LA.test(n.chars[E].uchar)&&o?l++:(d+=n.chars[E].uchar,o=!1);n.cueStartTime=e,e===t&&(t+=1e-4),l>=16?l--:l++;let f=I0(d.trim()),g=Mh(e,t,f);r!=null&&(u=r.cues)!=null&&u.getCueById(g)||(a=new c(e,t,f),a.id=g,a.line=h+1,a.align="left",a.position=10+Math.min(80,Math.floor(l*8/32)*10),s.push(a))}return r&&s.length&&(s.sort((h,f)=>h.line==="auto"||f.line==="auto"?0:h.line>8&&f.line>8?f.line-h.line:h.line-f.line),s.forEach(h=>i0(r,h))),s}},RA={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},wA=jt(jt({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,maxBufferSize:60*1e3*1e3,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:wl,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:rh,bufferController:ch,capLevelController:Yn,errorController:Nu,fpsController:bh,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Vg,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,certLoadPolicy:{default:RA},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},DA()),{},{subtitleStreamController:ah,subtitleTrackController:lh,timelineController:Eh,audioStreamController:sh,audioTrackController:nh,emeController:Er,cmcdController:Bi,contentSteeringController:yh});function DA(){return{cueHandler:kA,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function CA(r,e){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(e.liveMaxLatencyDurationCount!==void 0&&(e.liveSyncDurationCount===void 0||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(e.liveMaxLatencyDuration!==void 0&&(e.liveSyncDuration===void 0||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let t=_h(r),i=["manifest","level","frag"],s=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return i.forEach(n=>{let a=`${n==="level"?"playlist":n}LoadPolicy`,o=e[a]===void 0,l=[];s.forEach(d=>{let c=`${n}Loading${d}`,u=e[c];if(u!==void 0&&o){l.push(c);let h=t[a].default;switch(e[a]={default:h},d){case"TimeOut":h.maxLoadTimeMs=u,h.maxTimeToFirstByteMs=u;break;case"MaxRetry":h.errorRetry.maxNumRetry=u,h.timeoutRetry.maxNumRetry=u;break;case"RetryDelay":h.errorRetry.retryDelayMs=u,h.timeoutRetry.retryDelayMs=u;break;case"MaxRetryTimeout":h.errorRetry.maxRetryDelayMs=u,h.timeoutRetry.maxRetryDelayMs=u;break}}}),l.length&&M.warn(`hls.js config: "${l.join('", "')}" setting(s) are deprecated, use "${a}": ${JSON.stringify(e[a])}`)}),jt(jt({},t),e)}function _h(r){return r&&typeof r=="object"?Array.isArray(r)?r.map(_h):Object.keys(r).reduce((e,t)=>(e[t]=_h(r[t]),e),{}):r}function MA(r){let e=r.loader;e!==Dl&&e!==wl?(M.log("[config]: Custom loader detected, cannot enable progressive streaming"),r.progressive=!1):TA()&&(r.loader=Dl,r.progressive=!0,r.enableSoftwareAES=!0,M.log("[config]: Progressive streaming enabled, using FetchLoader"))}var $i=class{static get version(){return"1.4.10"}static isSupported(){return y_()}static get Events(){return b}static get ErrorTypes(){return pe}static get ErrorDetails(){return B}static get DefaultConfig(){return $i.defaultConfig?$i.defaultConfig:wA}static set DefaultConfig(e){$i.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new Dh,this._autoLevelCapping=void 0,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,aT(e.debug||!1,"Hls instance");let t=this.config=CA($i.DefaultConfig,e);this.userConfig=e,this._autoLevelCapping=-1,t.progressive&&MA(t);let{abrController:i,bufferController:s,capLevelController:n,errorController:a,fpsController:o}=t,l=new a(this),d=this.abrController=new i(this),c=this.bufferController=new s(this),u=this.capLevelController=new n(this),h=new o(this),f=new ku(this),g=new Du(this),E=t.contentSteeringController,T=E?new E(this):null,A=this.levelController=new Uu(this,T),k=new Fu(this),L=new $u(this.config),N=this.streamController=new th(this,k,L);u.setStreamController(N),h.setStreamController(N);let D=[f,A,N];T&&D.splice(1,0,T),this.networkControllers=D;let $=[d,c,u,h,g,k];this.audioTrackController=this.createController(t.audioTrackController,D);let O=t.audioStreamController;O&&D.push(new O(this,k,L)),this.subtitleTrackController=this.createController(t.subtitleTrackController,D);let G=t.subtitleStreamController;G&&D.push(new G(this,k,L)),this.createController(t.timelineController,$),L.emeController=this.emeController=this.createController(t.emeController,$),this.cmcdController=this.createController(t.cmcdController,$),this.latencyController=this.createController(Cu,$),this.coreComponents=$,D.push(l);let q=l.onErrorOut;typeof q=="function"&&this.on(b.ERROR,q,l)}createController(e,t){if(e){let i=new e(this);return t&&t.push(i),i}return null}on(e,t,i=this){this._emitter.on(e,t,i)}once(e,t,i=this){this._emitter.once(e,t,i)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,t,i=this,s){this._emitter.off(e,t,i,s)}listeners(e){return this._emitter.listeners(e)}emit(e,t,i){return this._emitter.emit(e,t,i)}trigger(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(i){M.error("An internal error happened while handling event "+e+'. Error message: "'+i.message+'". Here is a stacktrace:',i),this.trigger(b.ERROR,{type:pe.OTHER_ERROR,details:B.INTERNAL_EXCEPTION,fatal:!1,event:e,error:i})}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){M.log("destroy"),this.trigger(b.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach(t=>t.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(t=>t.destroy()),this.coreComponents.length=0;let e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){M.log("attachMedia"),this._media=e,this.trigger(b.MEDIA_ATTACHING,{media:e})}detachMedia(){M.log("detachMedia"),this.trigger(b.MEDIA_DETACHING,void 0),this._media=null}loadSource(e){this.stopLoad();let t=this.media,i=this.url,s=this.url=Ah.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});M.log(`loadSource:${s}`),t&&i&&(i!==s||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(b.MANIFEST_LOADING,{url:e})}startLoad(e=-1){M.log(`startLoad(${e})`),this.networkControllers.forEach(t=>{t.startLoad(e)})}stopLoad(){M.log("stopLoad"),this.networkControllers.forEach(e=>{e.stopLoad()})}swapAudioCodec(){M.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){M.log("recoverMediaError");let e=this._media;this.detachMedia(),e&&this.attachMedia(e)}removeLevel(e,t=0){this.levelController.removeLevel(e,t)}get levels(){let e=this.levelController.levels;return e||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){M.log(`set currentLevel:${e}`),this.loadLevel=e,this.abrController.clearTimer(),this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){M.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){M.log(`set loadLevel:${e}`),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){M.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){return this.levelController.startLevel}set startLevel(e){M.log(`set startLevel:${e}`),e!==-1&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){let t=!!e;t!==this.config.capLevelToPlayerSize&&(t?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=t)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}get ttfbEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(M.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e)}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){Mu.indexOf(e)>-1&&(this._maxHdcpLevel=e)}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:e,config:{minAutoBitrate:t}}=this;if(!e)return 0;let i=e.length;for(let s=0;s<i;s++)if(e[s].maxBitrate>=t)return s;return 0}get maxAutoLevel(){let{levels:e,autoLevelCapping:t,maxHdcpLevel:i}=this,s;if(t===-1&&e&&e.length?s=e.length-1:s=t,i)for(let n=s;n--;){let a=e[n].attrs["HDCP-LEVEL"];if(a&&a<=i)return n}return s}get nextAutoLevel(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)}set nextAutoLevel(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get audioTracks(){let e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){let e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){let t=this.audioTrackController;t&&(t.audioTrack=e)}get subtitleTracks(){let e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){let e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){let t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}get subtitleDisplay(){let e=this.subtitleTrackController;return e?e.subtitleDisplay:!1}set subtitleDisplay(e){let t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}};$i.defaultConfig=void 0;var dt=$i,jn=class extends Error{constructor(r,e=jn.MEDIA_ERR_CUSTOM,t,i){var s;super(r),this.name="MediaError",this.code=e,this.context=i,this.fatal=t!=null?t:e>=jn.MEDIA_ERR_NETWORK&&e<=jn.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=jn.defaultMessages[this.code])!=null?s:"")}},tt=jn;tt.MEDIA_ERR_ABORTED=1,tt.MEDIA_ERR_NETWORK=2,tt.MEDIA_ERR_DECODE=3,tt.MEDIA_ERR_SRC_NOT_SUPPORTED=4,tt.MEDIA_ERR_ENCRYPTED=5,tt.MEDIA_ERR_CUSTOM=100,tt.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail.",3:"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.",4:"An unsupported error occurred. The server or network failed, or your browser does not support this format.",5:"The media is encrypted and there are no keys to decrypt it."};var OA=r=>r==null,U0=(r,e)=>OA(e)?!1:r in e,Ph={ANY:"any",MUTED:"muted"},Je={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},di={MSE:"mse",NATIVE:"native"},Nh={HEADER:"header",QUERY:"query",NONE:"none"},Ws=Object.values(Nh),br={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},Uh={HLS:br.M3U8},vw=Object.keys(Uh),Ew=[...Object.values(br),"hls","HLS"],bi=(r,e,t,i,s=r)=>{s.addEventListener(e,t,i),r.addEventListener("teardown",()=>{s.removeEventListener(e,t)},{once:!0})};function PA(r,e,t){e&&t>e&&(t=e);for(let i=0;i<r.length;i++)if(r.start(i)<=t&&r.end(i)>=t)return!0;return!1}var NA=r=>{let e=r.indexOf("?");if(e<0)return[r];let t=r.slice(0,e),i=r.slice(e);return[t,i]},Pl=r=>{let e=r.type;if(e){let i=e.toUpperCase();return U0(i,Uh)?Uh[i]:e}let{src:t}=r;return t?UA(t):""},F0=r=>r==="VOD"?Je.ON_DEMAND:Je.LIVE,B0=r=>r==="EVENT"?Number.POSITIVE_INFINITY:r==="VOD"?Number.NaN:0,UA=r=>{let e="";try{e=new URL(r).pathname}catch{console.error("invalid url")}let t=e.lastIndexOf(".");if(t<0)return"";let i=e.slice(t+1).toUpperCase();return U0(i,br)?br[i]:""},FA=Object.values(Ph),D0=r=>typeof r=="boolean"||typeof r=="string"&&FA.includes(r),BA=({autoplay:r},e,t)=>{let i=!1,s=!1,n=D0(r)?r:!!r,a=()=>{i||bi(e,"playing",()=>{i=!0},{once:!0})};if(a(),bi(e,"loadstart",()=>{i=!1,a(),Oh(e,n)},{once:!0}),bi(e,"loadstart",()=>{t||(s=!Number.isFinite(e.duration)),Oh(e,n)},{once:!0}),t&&t.once(dt.Events.LEVEL_LOADED,(o,l)=>{var d;s=(d=l.details.live)!=null?d:!1}),!n){let o=()=>{!s||(t!=null&&t.liveSyncPosition?e.currentTime=t.liveSyncPosition:Number.isFinite(e.seekable.end(0))&&(e.currentTime=e.seekable.end(0)))};t&&bi(e,"play",()=>{e.preload==="metadata"?t.once(dt.Events.LEVEL_UPDATED,o):o()},{once:!0})}return o=>{i||(n=D0(o)?o:!!o,Oh(e,n))}},Oh=(r,e)=>{if(!e)return;let t=r.muted,i=()=>r.muted=t;switch(e){case Ph.ANY:r.play().catch(()=>{r.muted=!0,r.play().catch(i)});break;case Ph.MUTED:r.muted=!0,r.play().catch(i);break;default:r.play().catch(()=>{});break}},$A=({preload:r,src:e},t,i)=>{let s=u=>{u!=null&&["","none","metadata","auto"].includes(u)?t.setAttribute("preload",u):t.removeAttribute("preload")};if(!i)return s(r),s;let n=!1,a=!1,o=i.config.maxBufferLength,l=i.config.maxBufferSize,d=u=>{s(u);let h=u!=null?u:t.preload;a||h==="none"||(h==="metadata"?(i.config.maxBufferLength=1,i.config.maxBufferSize=1):(i.config.maxBufferLength=o,i.config.maxBufferSize=l),c())},c=()=>{!n&&e&&(n=!0,i.loadSource(e))};return bi(t,"play",()=>{a=!0,i.config.maxBufferLength=o,i.config.maxBufferSize=l,c()},{once:!0}),d(r),d};function HA(r,e){var t;if(!("videoTracks"in r))return;let i=new WeakMap;e.on(dt.Events.MANIFEST_PARSED,function(d,c){l();let u=r.addVideoTrack("main");u.selected=!0;for(let[h,f]of c.levels.entries()){let g=u.addRendition(f.url[0],f.width,f.height,f.videoCodec,f.bitrate);i.set(f,`${h}`),g.id=`${h}`}}),e.on(dt.Events.AUDIO_TRACKS_UPDATED,function(d,c){o();for(let u of c.audioTracks){let h=u.default?"main":"alternative",f=r.addAudioTrack(h,u.name,u.lang);f.id=`${u.id}`,u.default&&(f.enabled=!0)}}),r.audioTracks.addEventListener("change",()=>{var d;let c=+((d=[...r.audioTracks].find(h=>h.enabled))==null?void 0:d.id),u=e.audioTracks.map(h=>h.id);c!=e.audioTrack&&u.includes(c)&&(e.audioTrack=c)}),e.on(dt.Events.LEVELS_UPDATED,function(d,c){var u;let h=r.videoTracks[(u=r.videoTracks.selectedIndex)!=null?u:0];if(!h)return;let f=c.levels.map(g=>i.get(g));for(let g of r.videoRenditions)g.id&&!f.includes(g.id)&&h.removeRendition(g)});let s=d=>{let c=d.target.selectedIndex;c!=e.nextLevel&&n(c)},n=d=>{let c=r.currentTime,u=!1,h=(f,g)=>{u||(u=!Number.isFinite(g.endOffset))};e.on(dt.Events.BUFFER_FLUSHING,h),e.nextLevel=d,e.off(dt.Events.BUFFER_FLUSHING,h),u||e.trigger(dt.Events.BUFFER_FLUSHING,{startOffset:c+10,endOffset:1/0,type:"video"})};(t=r.videoRenditions)==null||t.addEventListener("change",s);let a=()=>{for(let d of r.videoTracks)r.removeVideoTrack(d)},o=()=>{for(let d of r.audioTracks)r.removeAudioTrack(d)},l=()=>{a(),o()};e.once(dt.Events.DESTROYING,l)}function GA(r,e){e.on(dt.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(s,{tracks:n})=>{n.forEach(a=>{var o;let l=(o=a.subtitleTrack)!=null?o:a.closedCaptions,d=e.subtitleTracks.findIndex(({lang:c,name:u,type:h})=>c==(l==null?void 0:l.lang)&&u===a.label&&h.toLowerCase()===a.kind);Nl(r,a.kind,a.label,l==null?void 0:l.lang,`${a.kind}${d}`)})});let t=()=>{var s;if(!e.subtitleTracks.length)return;let n=Array.from(r.textTracks).find(o=>o.id&&o.mode==="showing"&&["subtitles","captions"].includes(o.kind)),a=`${(s=e.subtitleTracks[e.subtitleTrack])==null?void 0:s.type.toLowerCase()}${e.subtitleTrack}`;if(n&&(e.subtitleTrack<0||(n==null?void 0:n.id)!==a)){let o=e.subtitleTracks.findIndex(({lang:l,name:d,type:c})=>l==n.language&&d===n.label&&c.toLowerCase()===n.kind);e.subtitleTrack=o}n&&(n==null?void 0:n.id)===a&&n.cues&&Array.from(n.cues).forEach(o=>{n.addCue(o)})};r.textTracks.addEventListener("change",t),e.on(dt.Events.CUES_PARSED,(s,{track:n,cues:a})=>{let o=r.textTracks.getTrackById(n);if(!o)return;let l=o.mode==="disabled";l&&(o.mode="hidden"),a.forEach(d=>{var c;(c=o.cues)!=null&&c.getCueById(d.id)||o.addCue(d)}),l&&(o.mode="disabled")}),e.once(dt.Events.DESTROYING,()=>{r.textTracks.removeEventListener("change",t),r.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let i=()=>{Array.from(r.textTracks).forEach(s=>{var n,a;if(!["subtitles","caption"].includes(s.kind)&&s.label==="thumbnails"){if(!((n=s.cues)!=null&&n.length)){let o=r.querySelector('track[label="thumbnails"]'),l=(a=o==null?void 0:o.getAttribute("src"))!=null?a:"";o==null||o.removeAttribute("src"),setTimeout(()=>{o==null||o.setAttribute("src",l)},0)}s.mode!=="hidden"&&(s.mode="hidden")}})};e.once(dt.Events.MANIFEST_LOADED,i),e.once(dt.Events.MEDIA_ATTACHED,i)}function Nl(r,e,t,i,s){let n=document.createElement("track");return n.kind=e,n.label=t,i&&(n.srclang=i),s&&(n.id=s),n.track.mode=["subtitles","captions"].includes(e)?"disabled":"hidden",n.setAttribute("data-removeondestroy",""),r.append(n),n.track}function $0(r,e){let t=Array.prototype.find.call(r.querySelectorAll("track"),i=>i.track===e);t==null||t.remove()}var zn="cuepoints",Bh=Object.freeze({label:zn}),$h=(r,{label:e=zn}=Bh)=>{var t;return(t=Array.from(r.querySelectorAll("track")).find(i=>i.track.label===e&&i.track.kind==="metadata"))==null?void 0:t.track};async function Hh(r,e,t=Bh){let i=$h(r,t);if(!i){let{label:s=zn}=t;i=Nl(r,"metadata",s),i.mode="hidden",await new Promise(n=>setTimeout(()=>n(void 0),0))}return i.mode!=="hidden"&&(i.mode="hidden"),[...e].sort(({time:s},{time:n})=>n-s).forEach(({time:s,value:n})=>{var a,o;let l=Array.prototype.findIndex.call(i==null?void 0:i.cues,f=>f.startTime>=s),d=(a=i==null?void 0:i.cues)==null?void 0:a[l],c=d?d.startTime:Number.isFinite(r.duration)?r.duration:Number.MAX_SAFE_INTEGER,u=(o=i==null?void 0:i.cues)==null?void 0:o[l-1];u&&(u.endTime=s);let h=new VTTCue(s,c,JSON.stringify(n!=null?n:null));i.addCue(h)}),i}var H0=r=>({time:r.startTime,value:JSON.parse(r.text)});function G0(r,e={label:zn}){let t=$h(r,e);return t!=null&&t.cues?Array.from(t.cues,i=>H0(i)):[]}function Gh(r,e={label:zn}){var t,i;let s=$h(r,e);if(!((t=s==null?void 0:s.activeCues)!=null&&t.length))return;let{currentTime:n}=r,a=Array.prototype.find.call((i=s.activeCues)!=null?i:[],({startTime:o,endTime:l})=>o<=n&&l>n);return H0(a)}async function VA(r,e=Bh){return new Promise(t=>{bi(r,"loadstart",async()=>{let i=await Hh(r,[],e);bi(r,"cuechange",()=>{let s=Gh(r);if(s){let n=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:s});r.dispatchEvent(n)}},{},i),t(i)})})}function V0(r,e){if(e){let t=e.playingDate;if(t!=null)return new Date(t.getTime()-r.currentTime*1e3)}return typeof r.getStartDate=="function"?r.getStartDate():new Date(NaN)}function K0(r,e){if(e&&e.playingDate)return e.playingDate;if(typeof r.getStartDate=="function"){let t=r.getStartDate();return new Date(t.getTime()+r.currentTime*1e3)}return new Date(NaN)}var KA=async r=>fetch(r).then(e=>e.text()).then(e=>{let t=e.split(`
|
|
976
976
|
`).find((i,s,n)=>s&&n[s-1].startsWith("#EXT-X-STREAM-INF"));return fetch(t).then(i=>i.text()).then(i=>i.split(`
|
|
977
|
-
`))}),WA=r=>{var e,t,i;let s=(t=((e=r.find(l=>l.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?e:"").split(":")[1])==null?void 0:t.trim(),n=F0(s),a=B0(s),o;if(n===Je.LIVE){let l=r.find(d=>d.startsWith("#EXT-X-PART-INF"));if(l)o=+l.split(":")[1].split("=")[1]*2;else{let d=r.find(u=>u.startsWith("#EXT-X-TARGETDURATION")),c=(i=d==null?void 0:d.split(":"))==null?void 0:i[1];o=+(c!=null?c:6)*3}}return{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:o}},qA=async(r,e)=>{if(e===br.MP4)return{streamType:Je.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(e===br.M3U8){let t=await KA(r);return WA(t)}return console.error(`Media type ${e} is an unrecognized or unsupported type for src ${r}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},C0=async(r,e,t=Pl({src:r}))=>{var i,s,n;let{streamType:a,targetLiveWindow:o,liveEdgeStartOffset:l}=await qA(r,t);((i=kt.get(e))!=null?i:{}).liveEdgeStartOffset=l,((s=kt.get(e))!=null?s:{}).targetLiveWindow=o,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((n=kt.get(e))!=null?n:{}).streamType=a,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},YA=r=>{var e;let t=r.type,i=F0(t),s=B0(t),n,a=!!((e=r.partList)!=null&&e.length);return i===Je.LIVE&&(n=a?r.partTarget*2:r.targetduration*3),{streamType:i,targetLiveWindow:s,liveEdgeStartOffset:n,lowLatency:a}},jA=(r,e,t)=>{var i,s,n,a,o,l,d,c;let{streamType:u,targetLiveWindow:h,liveEdgeStartOffset:f,lowLatency:g}=YA(r);if(u===Je.LIVE){g?(t.config.backBufferLength=(i=t.userConfig.backBufferLength)!=null?i:4,t.config.maxFragLookUpTolerance=(s=t.userConfig.maxFragLookUpTolerance)!=null?s:.001,t.config.abrBandWidthUpFactor=(n=t.userConfig.abrBandWidthUpFactor)!=null?n:t.config.abrBandWidthFactor):t.config.backBufferLength=(a=t.userConfig.backBufferLength)!=null?a:8;let E=Object.freeze({get length(){return e.seekable.length},start(T){return e.seekable.start(T)},end(T){var A;return T>this.length?e.seekable.end(T):(A=t.liveSyncPosition)!=null?A:e.seekable.end(T)}});((o=kt.get(e))!=null?o:{}).seekable=E}((l=kt.get(e))!=null?l:{}).liveEdgeStartOffset=f,((d=kt.get(e))!=null?d:{}).targetLiveWindow=h,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=kt.get(e))!=null?c:{}).streamType=u,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},M0,O0,zA=(O0=(M0=globalThis==null?void 0:globalThis.navigator)==null?void 0:M0.userAgent)!=null?O0:"",XA=zA.toLowerCase().indexOf("android")!==-1,kt=new WeakMap,W0="mux.com",P0,N0,q0=(N0=(P0=dt).isSupported)==null?void 0:N0.call(P0),QA=XA,Y0=()=>Ol.default.utils.now(),ZA=Ol.default.utils.generateUUID,j0=(r,{domain:e=W0,maxResolution:t=""}={})=>{if(!r)return;let[i,s=""]=NA(r),n=new URL(`https://stream.${e}/${i}.m3u8${s}`);return t&&n.searchParams.set("max_resolution",t),n.toString()},JA=r=>{if(!r)return;let[e]=r.split("?");return e||void 0},eS=r=>{if(!r||!r.startsWith("https://stream."))return;let[e]=new URL(r).pathname.slice(1).split(".m3u8");return e||void 0},tS=r=>{var e,t,i;return(e=r==null?void 0:r.metadata)!=null&&e.video_id?r.metadata.video_id:iv(r)&&(i=(t=JA(r.playbackId))!=null?t:eS(r.src))!=null?i:r.src},z0=r=>{var e;return(e=kt.get(r))==null?void 0:e.error},X0=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.streamType)!=null?t:Je.UNKNOWN},Q0=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.targetLiveWindow)!=null?t:Number.NaN},Vh=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.seekable)!=null?t:r.seekable},Z0=r=>{var e;let t=(e=kt.get(r))==null?void 0:e.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let i=Vh(r);return i.length?i.end(i.length-1)-t:Number.NaN},iS=(r,e,t=.001)=>Math.abs(r-e)<=t,J0=(r,e,t=.001)=>r>e||iS(r,e,t),rS=r=>r.paused&&J0(r.currentTime,r.duration),Kh=(r,e)=>r.loop||!!e?r.ended:r.ended||rS(r),ev=(r,e,t)=>{Wh(e,t);let{metadata:i={}}=r,{view_session_id:s=ZA()}=i,n=tS(r);i.view_session_id=s,i.video_id=n,r.metadata=i,kt.set(e,{});let a=sS(r,e);aS(r,e,a),oS(r,e,a),VA(e);let o=BA(r,e,a),l=$A(r,e,a);return{engine:a,setAutoplay:o,setPreload:l}},Wh=(r,e)=>{let t=e==null?void 0:e.engine;t&&(t.detachMedia(),t.destroy()),(r==null?void 0:r.mux)&&!r.mux.deleted&&(r.mux.destroy(),delete r.mux),r&&(r.removeAttribute("src"),r.load(),r.removeEventListener("error",sv),r.removeEventListener("error",Fh),r.removeEventListener("durationchange",rv),kt.delete(r),r.dispatchEvent(new Event("teardown")))};function tv(r,e){var t;let i=Pl(r);if(i!==br.M3U8)return!0;let s=!i||((t=e.canPlayType(i))!=null?t:!0),{preferPlayback:n}=r,a=n===di.MSE,o=n===di.NATIVE;return s&&(o||!(q0&&(a||QA)))}var sS=(r,e)=>{let{debug:t,streamType:i,startTime:s=-1,metadata:n,preferCmcd:a}=r,o=Pl(r)===br.M3U8,l=tv(r,e);if(o&&!l&&q0){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},c=nS(i),u=a!==Nh.NONE?{useHeaders:a===Nh.HEADER,sessionId:n==null?void 0:n.view_session_id,contentId:n==null?void 0:n.video_id}:void 0;return new dt({debug:t,startPosition:s,cmcd:u,...d,...c})}},nS=r=>r===Je.LIVE?{backBufferLength:8}:{},iv=({playbackId:r,src:e,customDomain:t})=>{if(r)return!0;if(typeof e!="string")return!1;let i=window==null?void 0:window.location.href,s=new URL(e,i).hostname.toLocaleLowerCase();return s.includes(W0)||!!t&&s.includes(t.toLocaleLowerCase())},aS=(r,e,t)=>{var i;let{envKey:s}=r,n=iv(r);if(s||n){let{playerInitTime:a,playerSoftwareName:o,playerSoftwareVersion:l,beaconCollectionDomain:d,debug:c,disableCookies:u}=r,h={...r.metadata,video_title:((i=r==null?void 0:r.metadata)==null?void 0:i.video_title)||void 0},f=g=>typeof g.player_error_code=="string"?!1:typeof r.errorTranslator=="function"?r.errorTranslator(g):g;Ol.default.monitor(e,{debug:c,beaconCollectionDomain:d,hlsjs:t,Hls:t?dt:void 0,automaticErrorTracking:!1,errorTranslator:f,disableCookies:u,data:{...s?{env_key:s}:{},player_software_name:o,player_software:o,player_software_version:l,player_init_time:a,...h}})}},oS=(r,e,t)=>{var i;let s=tv(r,e),{src:n}=r;if(e&&s){let a=Pl(r);typeof n=="string"?(e.preload==="none"?bi(e,"loadstart",()=>C0(n,e,a)):C0(n,e,a),e.setAttribute("src",n),r.startTime&&(((i=kt.get(e))!=null?i:{}).startTime=r.startTime,e.addEventListener("durationchange",rv,{once:!0}))):e.removeAttribute("src"),e.addEventListener("error",sv),e.addEventListener("error",Fh),e.addEventListener("emptied",()=>{e.querySelectorAll("track[data-removeondestroy]").forEach(l=>{l.remove()})},{once:!0});let o=()=>{e.ended||!Kh(e)||e.dispatchEvent(new Event("ended"))};bi(e,"pause",o),bi(e,"seeked",o),bi(e,"play",()=>{e.ended||!J0(e.currentTime,e.duration)||(e.currentTime=e.seekable.start(0))})}else t&&n?(t.once(dt.Events.LEVEL_LOADED,(a,o)=>{jA(o.details,e,t)}),t.on(dt.Events.ERROR,(a,o)=>{let l={[dt.ErrorTypes.NETWORK_ERROR]:tt.MEDIA_ERR_NETWORK,[dt.ErrorTypes.MEDIA_ERROR]:tt.MEDIA_ERR_DECODE},d=new tt("",l[o.type]);d.fatal=o.fatal,d.data=o,e.dispatchEvent(new CustomEvent("error",{detail:d}))}),e.addEventListener("error",Fh),GA(r,t),HA(e,t),t.attachMedia(e)):console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function rv(r){var e;let t=r.target,i=(e=kt.get(t))==null?void 0:e.startTime;if(!!i&&PA(t.seekable,t.duration,i)){let s=t.preload==="auto";s&&(t.preload="none"),t.currentTime=i,s&&(t.preload="auto")}}async function sv(r){if(!r.isTrusted)return;r.stopImmediatePropagation();let e=r.target;if(!(e!=null&&e.error))return;let{message:t,code:i}=e.error,s=new tt(t,i);if(e.src&&(i!==tt.MEDIA_ERR_DECODE||i!==void 0))try{let{status:n}=await fetch(e.src);s.data={response:{code:n}}}catch{}e.dispatchEvent(new CustomEvent("error",{detail:s}))}function Fh(r){var e,t;if(!(r instanceof CustomEvent)||!(r.detail instanceof tt))return;let i=r.target,s=r.detail;!s||!s.fatal||(((e=kt.get(i))!=null?e:{}).error=s,(t=i.mux)==null||t.emit("error",{player_error_code:s.code,player_error_message:s.message,player_error_context:s.context}))}var lS=Object.defineProperty,dS=(r,e,t)=>e in r?lS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,He=(r,e,t)=>(dS(r,typeof e!="symbol"?e+"":e,t),t),of=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},G=(r,e,t)=>(of(r,e,"read from private field"),t?t.call(r):e.get(r)),le=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ue=(r,e,t,i)=>(of(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),it=(r,e,t)=>(of(r,e,"access private method"),t),ql=class{addEventListener(){}removeEventListener(){}dispatchEvent(r){return!0}};if(typeof DocumentFragment=="undefined"){class r extends ql{}globalThis.DocumentFragment=r}var lf=class extends ql{},cS=class extends ql{},uS={get(r){},define(r,e,t){},upgrade(r){},whenDefined(r){return Promise.resolve(lf)}},Ul,hS=class{constructor(r,e={}){le(this,Ul,void 0),ue(this,Ul,e==null?void 0:e.detail)}get detail(){return G(this,Ul)}initCustomEvent(){}};Ul=new WeakMap;function fS(r,e){return new lf}var cv={document:{createElement:fS},DocumentFragment,customElements:uS,CustomEvent:hS,EventTarget:ql,HTMLElement:lf,HTMLVideoElement:cS},uv=typeof window=="undefined"||typeof globalThis.customElements=="undefined",Fl=uv?cv:globalThis,T1=uv?cv.document:globalThis.document,mS=()=>{try{return"0.16.5"}catch{}return"UNKNOWN"},pS=mS(),gS=()=>pS,nv=r=>{var e,t,i,s,n,a,o,l,d,c,u,h,f,g,E,T,A,k,L,N,D,$,O,H,q,P,X,z,Ae,Ee,be,we,Se,Z,ne,se,xe,Ie,Ve,ht;return e=class extends r{constructor(){super(),le(this,X),le(this,Ae),le(this,be),le(this,Se),le(this,ne),le(this,xe),le(this,Ve),He(this,"castEnabled",!1),le(this,D,{paused:!1}),le(this,$,void 0),le(this,O,{}),le(this,H,void 0),le(this,q,void 0),le(this,P,void 0),e.instances.add(this),it(this,ne,se).call(this)}static get castElement(){return G(e,t)}static get castEnabled(){return G(e,i)}static get castState(){var V;return(V=G(e,d,c))==null?void 0:V.getCastState()}static async exitCast(){try{await G(e,d,c).endCurrentSession(!0)}catch(V){console.error(V);return}}get castPlayer(){if(e.castElement===this)return G(this,$)}attributeChangedCallback(V){if(this.castPlayer)switch(V){case"cast-stream-type":case"cast-src":this.load();break}}async requestCast(V={}){var J;it(J=e,L,N).call(J,V),ue(e,t,this),Object.entries(G(this,O)).forEach(([ke,et])=>{G(this,$).controller.addEventListener(ke,et)});try{await G(e,d,c).requestSession()}catch{ue(e,t,void 0);return}G(this,D).paused=super.paused,super.pause(),this.muted=super.muted;try{await this.load()}catch(ke){console.error(ke)}}async load(){var V,J;if(!this.castPlayer)return super.load();let ke=new chrome.cast.media.MediaInfo(this.castSrc,this.castContentType),et=[...this.querySelectorAll("track")].filter(({kind:Jt,src:_i})=>_i&&(Jt==="subtitles"||Jt==="captions")),_t=[],zt=0;et.length&&(ke.tracks=et.map(Jt=>{let _i=++zt;_t.length===0&&Jt.track.mode==="showing"&&_t.push(_i);let Ai=new chrome.cast.media.Track(_i,chrome.cast.media.TrackType.TEXT);return Ai.trackContentId=Jt.src,Ai.trackContentType="text/vtt",Ai.subtype=Jt.kind==="captions"?chrome.cast.media.TextTrackType.CAPTIONS:chrome.cast.media.TextTrackType.SUBTITLES,Ai.name=Jt.label,Ai.language=Jt.srclang,Ai})),this.castStreamType==="live"?ke.streamType=chrome.cast.media.StreamType.LIVE:ke.streamType=chrome.cast.media.StreamType.BUFFERED,ke.metadata=new chrome.cast.media.GenericMediaMetadata,ke.metadata.title=this.title,ke.metadata.images=[{url:this.poster}];let nr=new chrome.cast.media.LoadRequest(ke);nr.currentTime=(V=super.currentTime)!=null?V:0,nr.autoplay=!G(this,D).paused,nr.activeTrackIds=_t,await((J=G(e,u,h))==null?void 0:J.loadMedia(nr)),this.dispatchEvent(new Event("volumechange"))}play(){var V;if(this.castPlayer){this.castPlayer.isPaused&&((V=this.castPlayer.controller)==null||V.playOrPause());return}return super.play()}pause(){var V;if(this.castPlayer){this.castPlayer.isPaused||(V=this.castPlayer.controller)==null||V.playOrPause();return}super.pause()}get castSrc(){var V,J,ke;return(ke=(J=this.getAttribute("cast-src"))!=null?J:(V=this.querySelector("source"))==null?void 0:V.src)!=null?ke:this.currentSrc}set castSrc(V){this.castSrc!=V&&this.setAttribute("cast-src",`${V}`)}get castContentType(){var V;return(V=this.getAttribute("cast-content-type"))!=null?V:void 0}set castContentType(V){this.setAttribute("cast-content-type",`${V}`)}get castStreamType(){var V,J;return(J=(V=this.getAttribute("cast-stream-type"))!=null?V:this.streamType)!=null?J:void 0}set castStreamType(V){this.setAttribute("cast-stream-type",`${V}`)}get readyState(){if(this.castPlayer)switch(this.castPlayer.playerState){case chrome.cast.media.PlayerState.IDLE:return 0;case chrome.cast.media.PlayerState.BUFFERING:return 2;default:return 3}return super.readyState}get paused(){return this.castPlayer?this.castPlayer.isPaused:super.paused}get muted(){var V;return this.castPlayer?(V=this.castPlayer)==null?void 0:V.isMuted:super.muted}set muted(V){var J;if(this.castPlayer){(V&&!this.castPlayer.isMuted||!V&&this.castPlayer.isMuted)&&((J=this.castPlayer.controller)==null||J.muteOrUnmute());return}super.muted=V}get volume(){var V,J;return this.castPlayer?(J=(V=this.castPlayer)==null?void 0:V.volumeLevel)!=null?J:1:super.volume}set volume(V){var J;if(this.castPlayer){this.castPlayer.volumeLevel=V,(J=this.castPlayer.controller)==null||J.setVolumeLevel();return}super.volume=V}get duration(){var V,J;return this.castPlayer&&G(this,X,z)?(J=(V=this.castPlayer)==null?void 0:V.duration)!=null?J:NaN:super.duration}get currentTime(){var V,J;return this.castPlayer&&G(this,X,z)?(J=(V=this.castPlayer)==null?void 0:V.currentTime)!=null?J:0:super.currentTime}set currentTime(V){var J;if(this.castPlayer){this.castPlayer.currentTime=V,(J=this.castPlayer.controller)==null||J.seek();return}super.currentTime=V}get onentercast(){return G(this,H)}set onentercast(V){G(this,H)&&(this.removeEventListener("entercast",G(this,H)),ue(this,H,null)),typeof V=="function"&&(ue(this,H,V),this.addEventListener("entercast",V))}get onleavecast(){return G(this,q)}set onleavecast(V){G(this,q)&&(this.removeEventListener("leavecast",G(this,q)),ue(this,q,null)),typeof V=="function"&&(ue(this,q,V),this.addEventListener("leavecast",V))}get oncastchange(){return G(this,P)}set oncastchange(V){G(this,P)&&(this.removeEventListener("castchange",G(this,P)),ue(this,P,null)),typeof V=="function"&&(ue(this,P,V),this.addEventListener("castchange",V))}},t=new WeakMap,i=new WeakMap,s=new WeakMap,n=new WeakSet,a=function(){return typeof chrome!="undefined"&&chrome.cast&&chrome.cast.isAvailable},o=new WeakSet,l=function(){return typeof cast!="undefined"&&cast.framework},d=new WeakSet,c=function(){if(G(e,o,l))return cast.framework.CastContext.getInstance()},u=new WeakSet,h=function(){var V;return(V=G(e,d,c))==null?void 0:V.getCurrentSession()},f=new WeakSet,g=function(){var V;return(V=G(e,u,h))==null?void 0:V.getSessionObj().media[0]},E=new WeakSet,T=function(V){return new Promise((J,ke)=>{G(e,f,g).editTracksInfo(V,J,ke)})},A=new WeakSet,k=function(V){return new Promise((J,ke)=>{G(e,f,g).getStatus(V,J,ke)})},L=new WeakSet,N=function(V){return G(e,d,c).setOptions({receiverApplicationId:chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,androidReceiverCompatible:!1,language:"en-US",resumeSavedSession:!0,...V})},D=new WeakMap,$=new WeakMap,O=new WeakMap,H=new WeakMap,q=new WeakMap,P=new WeakMap,X=new WeakSet,z=function(){var V;return(V=this.castPlayer)==null?void 0:V.isMediaLoaded},Ae=new WeakSet,Ee=function(){G(e,t)===this&&(Object.entries(G(this,O)).forEach(([V,J])=>{G(this,$).controller.removeEventListener(V,J)}),ue(e,t,void 0),this.muted=G(this,$).isMuted,this.currentTime=G(this,$).savedPlayerState.currentTime,G(this,$).savedPlayerState.isPaused===!1&&this.play())},be=new WeakSet,we=function(){this.dispatchEvent(new CustomEvent("castchange",{detail:G(e,d,c).getCastState()}))},Se=new WeakSet,Z=async function(){var V,J;let{SESSION_RESUMED:ke}=cast.framework.SessionState;if(G(e,d,c).getSessionState()===ke&&this.castSrc===((V=G(e,f,g))==null?void 0:V.media.contentId)){ue(e,t,this),Object.entries(G(this,O)).forEach(([et,_t])=>{G(this,$).controller.addEventListener(et,_t)});try{await it(J=e,A,k).call(J,new chrome.cast.media.GetStatusRequest)}catch(et){console.error(et)}G(this,O)[cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED](),G(this,O)[cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED]()}},ne=new WeakSet,se=function(){var V;!G(e,o,l)||this.castEnabled||(this.castEnabled=!0,it(V=e,L,N).call(V),this.textTracks.addEventListener("change",it(this,Ve,ht).bind(this)),it(this,be,we).call(this),ue(this,$,new cast.framework.RemotePlayer),new cast.framework.RemotePlayerController(G(this,$)),ue(this,O,{[cast.framework.RemotePlayerEventType.IS_CONNECTED_CHANGED]:({value:J})=>{J===!1&&it(this,Ae,Ee).call(this),this.dispatchEvent(new Event(J?"entercast":"leavecast"))},[cast.framework.RemotePlayerEventType.DURATION_CHANGED]:()=>{this.dispatchEvent(new Event("durationchange"))},[cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED]:()=>{this.dispatchEvent(new Event("volumechange"))},[cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED]:()=>{this.dispatchEvent(new Event("volumechange"))},[cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED]:()=>{!G(this,X,z)||this.dispatchEvent(new Event("timeupdate"))},[cast.framework.RemotePlayerEventType.VIDEO_INFO_CHANGED]:()=>{this.dispatchEvent(new Event("resize"))},[cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED]:()=>{this.dispatchEvent(new Event(this.paused?"pause":"play"))},[cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED]:()=>{var J,ke;((J=this.castPlayer)==null?void 0:J.playerState)!==chrome.cast.media.PlayerState.PAUSED&&this.dispatchEvent(new Event({[chrome.cast.media.PlayerState.PLAYING]:"playing",[chrome.cast.media.PlayerState.BUFFERING]:"waiting",[chrome.cast.media.PlayerState.IDLE]:"emptied"}[(ke=this.castPlayer)==null?void 0:ke.playerState]))},[cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED]:async()=>{!G(this,X,z)||(await Promise.resolve(),it(this,xe,Ie).call(this))}}))},xe=new WeakSet,Ie=function(){it(this,Ve,ht).call(this)},Ve=new WeakSet,ht=async function(){var V,J,ke,et,_t,zt;if(!this.castPlayer)return;let nr=((J=(V=G(this,$).mediaInfo)==null?void 0:V.tracks)!=null?J:[]).filter(({type:rt})=>rt===chrome.cast.media.TrackType.TEXT),Jt=[...this.textTracks].filter(({kind:rt})=>rt==="subtitles"||rt==="captions"),_i=nr.map(({language:rt,name:Rr,trackId:sn})=>{var nn;let{mode:Ta}=(nn=Jt.find(an=>an.language===rt&&an.label===Rr))!=null?nn:{};return Ta?{mode:Ta,trackId:sn}:!1}).filter(Boolean),Ai=_i.filter(({mode:rt})=>rt!=="showing").map(({trackId:rt})=>rt),ps=_i.find(({mode:rt})=>rt==="showing"),rn=(_t=(et=(ke=G(e,u,h))==null?void 0:ke.getSessionObj().media[0])==null?void 0:et.activeTrackIds)!=null?_t:[],ci=rn;if(rn.length&&(ci=ci.filter(rt=>!Ai.includes(rt))),ps!=null&&ps.trackId&&(ci=[...ci,ps.trackId]),ci=[...new Set(ci)],!((rt,Rr)=>rt.length===Rr.length&&rt.every(sn=>Rr.includes(sn)))(rn,ci))try{let rt=new chrome.cast.media.EditTracksInfoRequest(ci);await it(zt=e,E,T).call(zt,rt)}catch(rt){console.error(rt)}},le(e,n),le(e,o),le(e,d),le(e,u),le(e,f),le(e,E),le(e,A),le(e,L),He(e,"observedAttributes",["cast-src","cast-content-type","cast-stream-type"]),He(e,"instances",new Set),le(e,t,void 0),le(e,i,!1),He(e,"initCast",()=>{var V;G(e,n,a)?G(e,o,l)?G(V=e,s).call(V,chrome.cast.isAvailable):customElements.whenDefined("google-cast-button").then(()=>{var J;return G(J=e,s).call(J,chrome.cast.isAvailable)}):globalThis.__onGCastApiAvailable=()=>{customElements.whenDefined("google-cast-button").then(()=>{var J;return G(J=e,s).call(J,chrome.cast.isAvailable)})}}),le(e,s,V=>{if(V){ue(e,i,!0);let{CAST_STATE_CHANGED:J}=cast.framework.CastContextEventType;G(e,d,c).addEventListener(J,et=>{e.instances.forEach(_t=>{var zt;return it(zt=_t,be,we).call(zt,et)})});let{SESSION_STATE_CHANGED:ke}=cast.framework.CastContextEventType;G(e,d,c).addEventListener(ke,et=>{e.instances.forEach(_t=>{var zt;return it(zt=_t,Se,Z).call(zt,et)})}),e.instances.forEach(et=>{var _t;return it(_t=et,ne,se).call(_t)})}}),e},Yh=globalThis.HTMLVideoElement?nv(HTMLVideoElement):nv(Object);globalThis.customElements&&!globalThis.customElements.get("castable-video")&&(customElements.define("castable-video",Yh,{extends:"video"}),globalThis.CastableVideoElement=Yh);Yh.initCast();var Yl=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],av,jh=(av=globalThis.document)==null?void 0:av.createElement("template");jh&&(jh.innerHTML=`
|
|
977
|
+
`))}),WA=r=>{var e,t,i;let s=(t=((e=r.find(l=>l.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?e:"").split(":")[1])==null?void 0:t.trim(),n=F0(s),a=B0(s),o;if(n===Je.LIVE){let l=r.find(d=>d.startsWith("#EXT-X-PART-INF"));if(l)o=+l.split(":")[1].split("=")[1]*2;else{let d=r.find(u=>u.startsWith("#EXT-X-TARGETDURATION")),c=(i=d==null?void 0:d.split(":"))==null?void 0:i[1];o=+(c!=null?c:6)*3}}return{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:o}},qA=async(r,e)=>{if(e===br.MP4)return{streamType:Je.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(e===br.M3U8){let t=await KA(r);return WA(t)}return console.error(`Media type ${e} is an unrecognized or unsupported type for src ${r}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},C0=async(r,e,t=Pl({src:r}))=>{var i,s,n;let{streamType:a,targetLiveWindow:o,liveEdgeStartOffset:l}=await qA(r,t);((i=kt.get(e))!=null?i:{}).liveEdgeStartOffset=l,((s=kt.get(e))!=null?s:{}).targetLiveWindow=o,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((n=kt.get(e))!=null?n:{}).streamType=a,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},YA=r=>{var e;let t=r.type,i=F0(t),s=B0(t),n,a=!!((e=r.partList)!=null&&e.length);return i===Je.LIVE&&(n=a?r.partTarget*2:r.targetduration*3),{streamType:i,targetLiveWindow:s,liveEdgeStartOffset:n,lowLatency:a}},jA=(r,e,t)=>{var i,s,n,a,o,l,d,c;let{streamType:u,targetLiveWindow:h,liveEdgeStartOffset:f,lowLatency:g}=YA(r);if(u===Je.LIVE){g?(t.config.backBufferLength=(i=t.userConfig.backBufferLength)!=null?i:4,t.config.maxFragLookUpTolerance=(s=t.userConfig.maxFragLookUpTolerance)!=null?s:.001,t.config.abrBandWidthUpFactor=(n=t.userConfig.abrBandWidthUpFactor)!=null?n:t.config.abrBandWidthFactor):t.config.backBufferLength=(a=t.userConfig.backBufferLength)!=null?a:8;let E=Object.freeze({get length(){return e.seekable.length},start(T){return e.seekable.start(T)},end(T){var A;return T>this.length?e.seekable.end(T):(A=t.liveSyncPosition)!=null?A:e.seekable.end(T)}});((o=kt.get(e))!=null?o:{}).seekable=E}((l=kt.get(e))!=null?l:{}).liveEdgeStartOffset=f,((d=kt.get(e))!=null?d:{}).targetLiveWindow=h,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=kt.get(e))!=null?c:{}).streamType=u,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},M0,O0,zA=(O0=(M0=globalThis==null?void 0:globalThis.navigator)==null?void 0:M0.userAgent)!=null?O0:"",XA=zA.toLowerCase().indexOf("android")!==-1,kt=new WeakMap,W0="mux.com",P0,N0,q0=(N0=(P0=dt).isSupported)==null?void 0:N0.call(P0),QA=XA,Y0=()=>Ol.default.utils.now(),ZA=Ol.default.utils.generateUUID,j0=(r,{domain:e=W0,maxResolution:t=""}={})=>{if(!r)return;let[i,s=""]=NA(r),n=new URL(`https://stream.${e}/${i}.m3u8${s}`);return t&&n.searchParams.set("max_resolution",t),n.toString()},JA=r=>{if(!r)return;let[e]=r.split("?");return e||void 0},e1=r=>{if(!r||!r.startsWith("https://stream."))return;let[e]=new URL(r).pathname.slice(1).split(".m3u8");return e||void 0},t1=r=>{var e,t,i;return(e=r==null?void 0:r.metadata)!=null&&e.video_id?r.metadata.video_id:iv(r)&&(i=(t=JA(r.playbackId))!=null?t:e1(r.src))!=null?i:r.src},z0=r=>{var e;return(e=kt.get(r))==null?void 0:e.error},X0=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.streamType)!=null?t:Je.UNKNOWN},Q0=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.targetLiveWindow)!=null?t:Number.NaN},Vh=r=>{var e,t;return(t=(e=kt.get(r))==null?void 0:e.seekable)!=null?t:r.seekable},Z0=r=>{var e;let t=(e=kt.get(r))==null?void 0:e.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let i=Vh(r);return i.length?i.end(i.length-1)-t:Number.NaN},i1=(r,e,t=.001)=>Math.abs(r-e)<=t,J0=(r,e,t=.001)=>r>e||i1(r,e,t),r1=r=>r.paused&&J0(r.currentTime,r.duration),Kh=(r,e)=>r.loop||!!e?r.ended:r.ended||r1(r),ev=(r,e,t)=>{Wh(e,t);let{metadata:i={}}=r,{view_session_id:s=ZA()}=i,n=t1(r);i.view_session_id=s,i.video_id=n,r.metadata=i,kt.set(e,{});let a=s1(r,e);a1(r,e,a),o1(r,e,a),VA(e);let o=BA(r,e,a),l=$A(r,e,a);return{engine:a,setAutoplay:o,setPreload:l}},Wh=(r,e)=>{let t=e==null?void 0:e.engine;t&&(t.detachMedia(),t.destroy()),(r==null?void 0:r.mux)&&!r.mux.deleted&&(r.mux.destroy(),delete r.mux),r&&(r.removeAttribute("src"),r.load(),r.removeEventListener("error",sv),r.removeEventListener("error",Fh),r.removeEventListener("durationchange",rv),kt.delete(r),r.dispatchEvent(new Event("teardown")))};function tv(r,e){var t;let i=Pl(r);if(i!==br.M3U8)return!0;let s=!i||((t=e.canPlayType(i))!=null?t:!0),{preferPlayback:n}=r,a=n===di.MSE,o=n===di.NATIVE;return s&&(o||!(q0&&(a||QA)))}var s1=(r,e)=>{let{debug:t,streamType:i,startTime:s=-1,metadata:n,preferCmcd:a}=r,o=Pl(r)===br.M3U8,l=tv(r,e);if(o&&!l&&q0){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},c=n1(i),u=a!==Nh.NONE?{useHeaders:a===Nh.HEADER,sessionId:n==null?void 0:n.view_session_id,contentId:n==null?void 0:n.video_id}:void 0;return new dt({debug:t,startPosition:s,cmcd:u,...d,...c})}},n1=r=>r===Je.LIVE?{backBufferLength:8}:{},iv=({playbackId:r,src:e,customDomain:t})=>{if(r)return!0;if(typeof e!="string")return!1;let i=window==null?void 0:window.location.href,s=new URL(e,i).hostname.toLocaleLowerCase();return s.includes(W0)||!!t&&s.includes(t.toLocaleLowerCase())},a1=(r,e,t)=>{var i;let{envKey:s}=r,n=iv(r);if(s||n){let{playerInitTime:a,playerSoftwareName:o,playerSoftwareVersion:l,beaconCollectionDomain:d,debug:c,disableCookies:u}=r,h={...r.metadata,video_title:((i=r==null?void 0:r.metadata)==null?void 0:i.video_title)||void 0},f=g=>typeof g.player_error_code=="string"?!1:typeof r.errorTranslator=="function"?r.errorTranslator(g):g;Ol.default.monitor(e,{debug:c,beaconCollectionDomain:d,hlsjs:t,Hls:t?dt:void 0,automaticErrorTracking:!1,errorTranslator:f,disableCookies:u,data:{...s?{env_key:s}:{},player_software_name:o,player_software:o,player_software_version:l,player_init_time:a,...h}})}},o1=(r,e,t)=>{var i;let s=tv(r,e),{src:n}=r;if(e&&s){let a=Pl(r);typeof n=="string"?(e.preload==="none"?bi(e,"loadstart",()=>C0(n,e,a)):C0(n,e,a),e.setAttribute("src",n),r.startTime&&(((i=kt.get(e))!=null?i:{}).startTime=r.startTime,e.addEventListener("durationchange",rv,{once:!0}))):e.removeAttribute("src"),e.addEventListener("error",sv),e.addEventListener("error",Fh),e.addEventListener("emptied",()=>{e.querySelectorAll("track[data-removeondestroy]").forEach(l=>{l.remove()})},{once:!0});let o=()=>{e.ended||!Kh(e)||e.dispatchEvent(new Event("ended"))};bi(e,"pause",o),bi(e,"seeked",o),bi(e,"play",()=>{e.ended||!J0(e.currentTime,e.duration)||(e.currentTime=e.seekable.start(0))})}else t&&n?(t.once(dt.Events.LEVEL_LOADED,(a,o)=>{jA(o.details,e,t)}),t.on(dt.Events.ERROR,(a,o)=>{let l={[dt.ErrorTypes.NETWORK_ERROR]:tt.MEDIA_ERR_NETWORK,[dt.ErrorTypes.MEDIA_ERROR]:tt.MEDIA_ERR_DECODE},d=new tt("",l[o.type]);d.fatal=o.fatal,d.data=o,e.dispatchEvent(new CustomEvent("error",{detail:d}))}),e.addEventListener("error",Fh),HA(r,t),GA(e,t),t.attachMedia(e)):console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function rv(r){var e;let t=r.target,i=(e=kt.get(t))==null?void 0:e.startTime;if(!!i&&PA(t.seekable,t.duration,i)){let s=t.preload==="auto";s&&(t.preload="none"),t.currentTime=i,s&&(t.preload="auto")}}async function sv(r){if(!r.isTrusted)return;r.stopImmediatePropagation();let e=r.target;if(!(e!=null&&e.error))return;let{message:t,code:i}=e.error,s=new tt(t,i);if(e.src&&(i!==tt.MEDIA_ERR_DECODE||i!==void 0))try{let{status:n}=await fetch(e.src);s.data={response:{code:n}}}catch{}e.dispatchEvent(new CustomEvent("error",{detail:s}))}function Fh(r){var e,t;if(!(r instanceof CustomEvent)||!(r.detail instanceof tt))return;let i=r.target,s=r.detail;!s||!s.fatal||(((e=kt.get(i))!=null?e:{}).error=s,(t=i.mux)==null||t.emit("error",{player_error_code:s.code,player_error_message:s.message,player_error_context:s.context}))}var l1=Object.defineProperty,d1=(r,e,t)=>e in r?l1(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ge=(r,e,t)=>(d1(r,typeof e!="symbol"?e+"":e,t),t),of=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},H=(r,e,t)=>(of(r,e,"read from private field"),t?t.call(r):e.get(r)),le=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},ue=(r,e,t,i)=>(of(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),it=(r,e,t)=>(of(r,e,"access private method"),t),ql=class{addEventListener(){}removeEventListener(){}dispatchEvent(r){return!0}};if(typeof DocumentFragment=="undefined"){class r extends ql{}globalThis.DocumentFragment=r}var lf=class extends ql{},c1=class extends ql{},u1={get(r){},define(r,e,t){},upgrade(r){},whenDefined(r){return Promise.resolve(lf)}},Ul,h1=class{constructor(r,e={}){le(this,Ul,void 0),ue(this,Ul,e==null?void 0:e.detail)}get detail(){return H(this,Ul)}initCustomEvent(){}};Ul=new WeakMap;function f1(r,e){return new lf}var cv={document:{createElement:f1},DocumentFragment,customElements:u1,CustomEvent:h1,EventTarget:ql,HTMLElement:lf,HTMLVideoElement:c1},uv=typeof window=="undefined"||typeof globalThis.customElements=="undefined",Fl=uv?cv:globalThis,Tw=uv?cv.document:globalThis.document,m1=()=>{try{return"0.16.5"}catch{}return"UNKNOWN"},p1=m1(),g1=()=>p1,nv=r=>{var e,t,i,s,n,a,o,l,d,c,u,h,f,g,E,T,A,k,L,N,D,$,O,G,q,P,X,z,Ae,Ee,be,we,Se,Z,ne,se,xe,Ie,Ve,ht;return e=class extends r{constructor(){super(),le(this,X),le(this,Ae),le(this,be),le(this,Se),le(this,ne),le(this,xe),le(this,Ve),Ge(this,"castEnabled",!1),le(this,D,{paused:!1}),le(this,$,void 0),le(this,O,{}),le(this,G,void 0),le(this,q,void 0),le(this,P,void 0),e.instances.add(this),it(this,ne,se).call(this)}static get castElement(){return H(e,t)}static get castEnabled(){return H(e,i)}static get castState(){var V;return(V=H(e,d,c))==null?void 0:V.getCastState()}static async exitCast(){try{await H(e,d,c).endCurrentSession(!0)}catch(V){console.error(V);return}}get castPlayer(){if(e.castElement===this)return H(this,$)}attributeChangedCallback(V){if(this.castPlayer)switch(V){case"cast-stream-type":case"cast-src":this.load();break}}async requestCast(V={}){var J;it(J=e,L,N).call(J,V),ue(e,t,this),Object.entries(H(this,O)).forEach(([ke,et])=>{H(this,$).controller.addEventListener(ke,et)});try{await H(e,d,c).requestSession()}catch{ue(e,t,void 0);return}H(this,D).paused=super.paused,super.pause(),this.muted=super.muted;try{await this.load()}catch(ke){console.error(ke)}}async load(){var V,J;if(!this.castPlayer)return super.load();let ke=new chrome.cast.media.MediaInfo(this.castSrc,this.castContentType),et=[...this.querySelectorAll("track")].filter(({kind:Jt,src:_i})=>_i&&(Jt==="subtitles"||Jt==="captions")),_t=[],zt=0;et.length&&(ke.tracks=et.map(Jt=>{let _i=++zt;_t.length===0&&Jt.track.mode==="showing"&&_t.push(_i);let Ai=new chrome.cast.media.Track(_i,chrome.cast.media.TrackType.TEXT);return Ai.trackContentId=Jt.src,Ai.trackContentType="text/vtt",Ai.subtype=Jt.kind==="captions"?chrome.cast.media.TextTrackType.CAPTIONS:chrome.cast.media.TextTrackType.SUBTITLES,Ai.name=Jt.label,Ai.language=Jt.srclang,Ai})),this.castStreamType==="live"?ke.streamType=chrome.cast.media.StreamType.LIVE:ke.streamType=chrome.cast.media.StreamType.BUFFERED,ke.metadata=new chrome.cast.media.GenericMediaMetadata,ke.metadata.title=this.title,ke.metadata.images=[{url:this.poster}];let nr=new chrome.cast.media.LoadRequest(ke);nr.currentTime=(V=super.currentTime)!=null?V:0,nr.autoplay=!H(this,D).paused,nr.activeTrackIds=_t,await((J=H(e,u,h))==null?void 0:J.loadMedia(nr)),this.dispatchEvent(new Event("volumechange"))}play(){var V;if(this.castPlayer){this.castPlayer.isPaused&&((V=this.castPlayer.controller)==null||V.playOrPause());return}return super.play()}pause(){var V;if(this.castPlayer){this.castPlayer.isPaused||(V=this.castPlayer.controller)==null||V.playOrPause();return}super.pause()}get castSrc(){var V,J,ke;return(ke=(J=this.getAttribute("cast-src"))!=null?J:(V=this.querySelector("source"))==null?void 0:V.src)!=null?ke:this.currentSrc}set castSrc(V){this.castSrc!=V&&this.setAttribute("cast-src",`${V}`)}get castContentType(){var V;return(V=this.getAttribute("cast-content-type"))!=null?V:void 0}set castContentType(V){this.setAttribute("cast-content-type",`${V}`)}get castStreamType(){var V,J;return(J=(V=this.getAttribute("cast-stream-type"))!=null?V:this.streamType)!=null?J:void 0}set castStreamType(V){this.setAttribute("cast-stream-type",`${V}`)}get readyState(){if(this.castPlayer)switch(this.castPlayer.playerState){case chrome.cast.media.PlayerState.IDLE:return 0;case chrome.cast.media.PlayerState.BUFFERING:return 2;default:return 3}return super.readyState}get paused(){return this.castPlayer?this.castPlayer.isPaused:super.paused}get muted(){var V;return this.castPlayer?(V=this.castPlayer)==null?void 0:V.isMuted:super.muted}set muted(V){var J;if(this.castPlayer){(V&&!this.castPlayer.isMuted||!V&&this.castPlayer.isMuted)&&((J=this.castPlayer.controller)==null||J.muteOrUnmute());return}super.muted=V}get volume(){var V,J;return this.castPlayer?(J=(V=this.castPlayer)==null?void 0:V.volumeLevel)!=null?J:1:super.volume}set volume(V){var J;if(this.castPlayer){this.castPlayer.volumeLevel=V,(J=this.castPlayer.controller)==null||J.setVolumeLevel();return}super.volume=V}get duration(){var V,J;return this.castPlayer&&H(this,X,z)?(J=(V=this.castPlayer)==null?void 0:V.duration)!=null?J:NaN:super.duration}get currentTime(){var V,J;return this.castPlayer&&H(this,X,z)?(J=(V=this.castPlayer)==null?void 0:V.currentTime)!=null?J:0:super.currentTime}set currentTime(V){var J;if(this.castPlayer){this.castPlayer.currentTime=V,(J=this.castPlayer.controller)==null||J.seek();return}super.currentTime=V}get onentercast(){return H(this,G)}set onentercast(V){H(this,G)&&(this.removeEventListener("entercast",H(this,G)),ue(this,G,null)),typeof V=="function"&&(ue(this,G,V),this.addEventListener("entercast",V))}get onleavecast(){return H(this,q)}set onleavecast(V){H(this,q)&&(this.removeEventListener("leavecast",H(this,q)),ue(this,q,null)),typeof V=="function"&&(ue(this,q,V),this.addEventListener("leavecast",V))}get oncastchange(){return H(this,P)}set oncastchange(V){H(this,P)&&(this.removeEventListener("castchange",H(this,P)),ue(this,P,null)),typeof V=="function"&&(ue(this,P,V),this.addEventListener("castchange",V))}},t=new WeakMap,i=new WeakMap,s=new WeakMap,n=new WeakSet,a=function(){return typeof chrome!="undefined"&&chrome.cast&&chrome.cast.isAvailable},o=new WeakSet,l=function(){return typeof cast!="undefined"&&cast.framework},d=new WeakSet,c=function(){if(H(e,o,l))return cast.framework.CastContext.getInstance()},u=new WeakSet,h=function(){var V;return(V=H(e,d,c))==null?void 0:V.getCurrentSession()},f=new WeakSet,g=function(){var V;return(V=H(e,u,h))==null?void 0:V.getSessionObj().media[0]},E=new WeakSet,T=function(V){return new Promise((J,ke)=>{H(e,f,g).editTracksInfo(V,J,ke)})},A=new WeakSet,k=function(V){return new Promise((J,ke)=>{H(e,f,g).getStatus(V,J,ke)})},L=new WeakSet,N=function(V){return H(e,d,c).setOptions({receiverApplicationId:chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,androidReceiverCompatible:!1,language:"en-US",resumeSavedSession:!0,...V})},D=new WeakMap,$=new WeakMap,O=new WeakMap,G=new WeakMap,q=new WeakMap,P=new WeakMap,X=new WeakSet,z=function(){var V;return(V=this.castPlayer)==null?void 0:V.isMediaLoaded},Ae=new WeakSet,Ee=function(){H(e,t)===this&&(Object.entries(H(this,O)).forEach(([V,J])=>{H(this,$).controller.removeEventListener(V,J)}),ue(e,t,void 0),this.muted=H(this,$).isMuted,this.currentTime=H(this,$).savedPlayerState.currentTime,H(this,$).savedPlayerState.isPaused===!1&&this.play())},be=new WeakSet,we=function(){this.dispatchEvent(new CustomEvent("castchange",{detail:H(e,d,c).getCastState()}))},Se=new WeakSet,Z=async function(){var V,J;let{SESSION_RESUMED:ke}=cast.framework.SessionState;if(H(e,d,c).getSessionState()===ke&&this.castSrc===((V=H(e,f,g))==null?void 0:V.media.contentId)){ue(e,t,this),Object.entries(H(this,O)).forEach(([et,_t])=>{H(this,$).controller.addEventListener(et,_t)});try{await it(J=e,A,k).call(J,new chrome.cast.media.GetStatusRequest)}catch(et){console.error(et)}H(this,O)[cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED](),H(this,O)[cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED]()}},ne=new WeakSet,se=function(){var V;!H(e,o,l)||this.castEnabled||(this.castEnabled=!0,it(V=e,L,N).call(V),this.textTracks.addEventListener("change",it(this,Ve,ht).bind(this)),it(this,be,we).call(this),ue(this,$,new cast.framework.RemotePlayer),new cast.framework.RemotePlayerController(H(this,$)),ue(this,O,{[cast.framework.RemotePlayerEventType.IS_CONNECTED_CHANGED]:({value:J})=>{J===!1&&it(this,Ae,Ee).call(this),this.dispatchEvent(new Event(J?"entercast":"leavecast"))},[cast.framework.RemotePlayerEventType.DURATION_CHANGED]:()=>{this.dispatchEvent(new Event("durationchange"))},[cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED]:()=>{this.dispatchEvent(new Event("volumechange"))},[cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED]:()=>{this.dispatchEvent(new Event("volumechange"))},[cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED]:()=>{!H(this,X,z)||this.dispatchEvent(new Event("timeupdate"))},[cast.framework.RemotePlayerEventType.VIDEO_INFO_CHANGED]:()=>{this.dispatchEvent(new Event("resize"))},[cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED]:()=>{this.dispatchEvent(new Event(this.paused?"pause":"play"))},[cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED]:()=>{var J,ke;((J=this.castPlayer)==null?void 0:J.playerState)!==chrome.cast.media.PlayerState.PAUSED&&this.dispatchEvent(new Event({[chrome.cast.media.PlayerState.PLAYING]:"playing",[chrome.cast.media.PlayerState.BUFFERING]:"waiting",[chrome.cast.media.PlayerState.IDLE]:"emptied"}[(ke=this.castPlayer)==null?void 0:ke.playerState]))},[cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED]:async()=>{!H(this,X,z)||(await Promise.resolve(),it(this,xe,Ie).call(this))}}))},xe=new WeakSet,Ie=function(){it(this,Ve,ht).call(this)},Ve=new WeakSet,ht=async function(){var V,J,ke,et,_t,zt;if(!this.castPlayer)return;let nr=((J=(V=H(this,$).mediaInfo)==null?void 0:V.tracks)!=null?J:[]).filter(({type:rt})=>rt===chrome.cast.media.TrackType.TEXT),Jt=[...this.textTracks].filter(({kind:rt})=>rt==="subtitles"||rt==="captions"),_i=nr.map(({language:rt,name:Rr,trackId:sn})=>{var nn;let{mode:Ta}=(nn=Jt.find(an=>an.language===rt&&an.label===Rr))!=null?nn:{};return Ta?{mode:Ta,trackId:sn}:!1}).filter(Boolean),Ai=_i.filter(({mode:rt})=>rt!=="showing").map(({trackId:rt})=>rt),ps=_i.find(({mode:rt})=>rt==="showing"),rn=(_t=(et=(ke=H(e,u,h))==null?void 0:ke.getSessionObj().media[0])==null?void 0:et.activeTrackIds)!=null?_t:[],ci=rn;if(rn.length&&(ci=ci.filter(rt=>!Ai.includes(rt))),ps!=null&&ps.trackId&&(ci=[...ci,ps.trackId]),ci=[...new Set(ci)],!((rt,Rr)=>rt.length===Rr.length&&rt.every(sn=>Rr.includes(sn)))(rn,ci))try{let rt=new chrome.cast.media.EditTracksInfoRequest(ci);await it(zt=e,E,T).call(zt,rt)}catch(rt){console.error(rt)}},le(e,n),le(e,o),le(e,d),le(e,u),le(e,f),le(e,E),le(e,A),le(e,L),Ge(e,"observedAttributes",["cast-src","cast-content-type","cast-stream-type"]),Ge(e,"instances",new Set),le(e,t,void 0),le(e,i,!1),Ge(e,"initCast",()=>{var V;H(e,n,a)?H(e,o,l)?H(V=e,s).call(V,chrome.cast.isAvailable):customElements.whenDefined("google-cast-button").then(()=>{var J;return H(J=e,s).call(J,chrome.cast.isAvailable)}):globalThis.__onGCastApiAvailable=()=>{customElements.whenDefined("google-cast-button").then(()=>{var J;return H(J=e,s).call(J,chrome.cast.isAvailable)})}}),le(e,s,V=>{if(V){ue(e,i,!0);let{CAST_STATE_CHANGED:J}=cast.framework.CastContextEventType;H(e,d,c).addEventListener(J,et=>{e.instances.forEach(_t=>{var zt;return it(zt=_t,be,we).call(zt,et)})});let{SESSION_STATE_CHANGED:ke}=cast.framework.CastContextEventType;H(e,d,c).addEventListener(ke,et=>{e.instances.forEach(_t=>{var zt;return it(zt=_t,Se,Z).call(zt,et)})}),e.instances.forEach(et=>{var _t;return it(_t=et,ne,se).call(_t)})}}),e},Yh=globalThis.HTMLVideoElement?nv(HTMLVideoElement):nv(Object);globalThis.customElements&&!globalThis.customElements.get("castable-video")&&(customElements.define("castable-video",Yh,{extends:"video"}),globalThis.CastableVideoElement=Yh);Yh.initCast();var Yl=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],av,jh=(av=globalThis.document)==null?void 0:av.createElement("template");jh&&(jh.innerHTML=`
|
|
978
978
|
<style>
|
|
979
979
|
:host {
|
|
980
980
|
display: inline-block;
|
|
@@ -1011,8 +1011,8 @@ svg, img, ::slotted(svg), ::slotted(img) {
|
|
|
1011
1011
|
}
|
|
1012
1012
|
</style>
|
|
1013
1013
|
<slot></slot>
|
|
1014
|
-
`);var df=(r,{tag:e,is:t})=>{var i,s,n,a,o,l,d,c,u,h,f,g,E;let T=(i=globalThis.document)==null?void 0:i.createElement(e,{is:t}),A=T?vS(T):[];return s=class extends r{constructor(){super(),le(this,c),le(this,h),le(this,g),le(this,l,void 0),le(this,d,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var k,L,N;return it(k=s,a,o).call(k),[...(N=(L=T==null?void 0:T.constructor)==null?void 0:L.observedAttributes)!=null?N:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var k,L;return(L=(k=G(this,d))!=null?k:this.shadowRoot.querySelector(e))!=null?L:this.querySelector(e)}set nativeEl(k){ue(this,d,k)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(k){this.toggleAttribute("muted",Boolean(k))}get src(){return this.getAttribute("src")}set src(k){this.setAttribute("src",`${k}`)}get preload(){var k,L;return(L=this.getAttribute("preload"))!=null?L:(k=this.nativeEl)==null?void 0:k.preload}set preload(k){this.setAttribute("preload",`${k}`)}attributeChangedCallback(k,L,N){it(this,c,u).call(this),it(this,g,E).call(this,k,L,N)}connectedCallback(){it(this,c,u).call(this)}},n=new WeakMap,a=new WeakSet,o=function(){if(G(this,n))return;ue(this,n,!0);let k=new Set(this.observedAttributes);k.delete("muted");for(let L of A)if(!(L in this.prototype))if(typeof T[L]=="function")this.prototype[L]=function(...N){return it(this,c,u).call(this),(()=>this.call?this.call(L,...N):this.nativeEl[L].apply(this.nativeEl,N))()};else{let N={get(){var D,$,O;it(this,c,u).call(this);let H=L.toLowerCase();if(k.has(H)){let q=this.getAttribute(H);return q===null?!1:q===""?!0:q}return(O=(D=this.get)==null?void 0:D.call(this,L))!=null?O:($=this.nativeEl)==null?void 0:$[L]}};L!==L.toUpperCase()&&(N.set=function(D){it(this,c,u).call(this);let $=L.toLowerCase();if(k.has($)){D===!0||D===!1||D==null?this.toggleAttribute($,Boolean(D)):this.setAttribute($,D);return}if(this.set){this.set(L,D);return}this.nativeEl[L]=D}),Object.defineProperty(this.prototype,L,N)}},l=new WeakMap,d=new WeakMap,c=new WeakSet,u=function(){var k,L;if(G(this,l))return;if(ue(this,l,!0),!this.nativeEl){let $=document.createElement(e,{is:t});$.part=e,this.shadowRoot.append($)}this.nativeEl.muted=this.hasAttribute("muted");for(let $ of A)it(this,h,f).call(this,$);let N=new Map,D=this.shadowRoot.querySelector("slot:not([name])");D==null||D.addEventListener("slotchange",()=>{let $=new Map(N);D.assignedElements().filter(O=>["track","source"].includes(O.localName)).forEach(O=>{var H,q;$.delete(O);let P=N.get(O);P||(P=O.cloneNode(),N.set(O,P)),(q=(H=this.nativeEl).append)==null||q.call(H,P)}),$.forEach(O=>O.remove())});for(let $ of this.constructor.Events)(L=(k=this.shadowRoot).addEventListener)==null||L.call(k,$,O=>{O.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(O.type,{detail:O.detail}))},!0)},h=new WeakSet,f=function(k){if(Object.prototype.hasOwnProperty.call(this,k)){let L=this[k];delete this[k],this[k]=L}},g=new WeakSet,E=function(k,L,N){var D,$,O,H;["id","class"].includes(k)||(N===null?($=(D=this.nativeEl).removeAttribute)==null||$.call(D,k):(H=(O=this.nativeEl).setAttribute)==null||H.call(O,k,N))},le(s,a),He(s,"Events",Yl),He(s,"template",e.endsWith("audio")?jh:zh),le(s,n,void 0),s};function vS(r){let e=[];for(let t=Object.getPrototypeOf(r);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var A1=globalThis.document?df(HTMLElement,{tag:"video"}):class{},S1=globalThis.document?df(HTMLElement,{tag:"audio"}):class{},jl=class extends Event{constructor(r,e){super(r),He(this,"track"),this.track=e.track}},Xh=new WeakMap;function ie(r){var e;return(e=Xh.get(r))!=null?e:ES(r,{})}function ES(r,e){let t=Xh.get(r);return t||Xh.set(r,t={}),Object.assign(t,e)}function Qh(r,e){let t=r.videoTracks;ie(e).media=r,ie(e).renditionSet||(ie(e).renditionSet=new Set);let i=ie(t).trackSet;i.add(e);let s=i.size-1;s in Jh.prototype||Object.defineProperty(Jh.prototype,s,{get(){return[...ie(this).trackSet][s]}}),queueMicrotask(()=>{t.dispatchEvent(new jl("addtrack",{track:e}))})}function Zh(r){var e;let t=(e=ie(r).media)==null?void 0:e.videoTracks;!t||(ie(t).trackSet.delete(r),queueMicrotask(()=>{t.dispatchEvent(new jl("removetrack",{track:r}))}))}function bS(r){var e;let t=(e=ie(r).media.videoTracks)!=null?e:[],i=!1;for(let s of t)s!==r&&(s.selected=!1,i=!0);if(i){if(ie(t).changeRequested)return;ie(t).changeRequested=!0,queueMicrotask(()=>{delete ie(t).changeRequested,t.dispatchEvent(new Event("change"))})}}var Yr,jr,zr,qs,Xn,Jh=class extends EventTarget{constructor(){super(),le(this,qs),le(this,Yr,void 0),le(this,jr,void 0),le(this,zr,void 0),ie(this).trackSet=new Set}[Symbol.iterator](){return G(this,qs,Xn).values()}get length(){return G(this,qs,Xn).size}getTrackById(r){var e;return(e=[...G(this,qs,Xn)].find(t=>t.id===r))!=null?e:null}get selectedIndex(){return[...G(this,qs,Xn)].findIndex(r=>r.selected)}get onaddtrack(){return G(this,Yr)}set onaddtrack(r){G(this,Yr)&&(this.removeEventListener("addtrack",G(this,Yr)),ue(this,Yr,void 0)),typeof r=="function"&&(ue(this,Yr,r),this.addEventListener("addtrack",r))}get onremovetrack(){return G(this,jr)}set onremovetrack(r){G(this,jr)&&(this.removeEventListener("removetrack",G(this,jr)),ue(this,jr,void 0)),typeof r=="function"&&(ue(this,jr,r),this.addEventListener("removetrack",r))}get onchange(){return G(this,zr)}set onchange(r){G(this,zr)&&(this.removeEventListener("change",G(this,zr)),ue(this,zr,void 0)),typeof r=="function"&&(ue(this,zr,r),this.addEventListener("change",r))}};Yr=new WeakMap,jr=new WeakMap,zr=new WeakMap,qs=new WeakSet,Xn=function(){return ie(this).trackSet};var zl=class extends Event{constructor(r,e){super(r),He(this,"rendition"),this.rendition=e.rendition}};function yS(r,e){let t=ie(r).media.videoRenditions;ie(e).media=ie(r).media,ie(e).track=r;let i=ie(r).renditionSet;i.add(e);let s=i.size-1;s in ef.prototype||Object.defineProperty(ef.prototype,s,{get(){return Ys(this)[s]}}),queueMicrotask(()=>{!r.selected||t.dispatchEvent(new zl("addrendition",{rendition:e}))})}function TS(r){let e=ie(r).media.videoRenditions,t=ie(r).track;ie(t).renditionSet.delete(r),queueMicrotask(()=>{!ie(r).track.selected||e.dispatchEvent(new zl("removerendition",{rendition:r}))})}function _S(r){let e=ie(r).media.videoRenditions;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,ie(r).track.selected&&e.dispatchEvent(new Event("change"))}))}function Ys(r){return[...ie(r).media.videoTracks].filter(e=>e.selected).flatMap(e=>[...ie(e).renditionSet])}var Xr,Qr,Zr,ef=class extends EventTarget{constructor(){super(...arguments),le(this,Xr,void 0),le(this,Qr,void 0),le(this,Zr,void 0)}[Symbol.iterator](){return Ys(this).values()}get length(){return Ys(this).length}getRenditionById(r){var e;return(e=Ys(this).find(t=>`${t.id}`==`${r}`))!=null?e:null}get selectedIndex(){return Ys(this).findIndex(r=>r.selected)}set selectedIndex(r){for(let[e,t]of Ys(this).entries())t.selected=e===r}get onaddrendition(){return G(this,Xr)}set onaddrendition(r){G(this,Xr)&&(this.removeEventListener("addrendition",G(this,Xr)),ue(this,Xr,void 0)),typeof r=="function"&&(ue(this,Xr,r),this.addEventListener("addrendition",r))}get onremoverendition(){return G(this,Qr)}set onremoverendition(r){G(this,Qr)&&(this.removeEventListener("removerendition",G(this,Qr)),ue(this,Qr,void 0)),typeof r=="function"&&(ue(this,Qr,r),this.addEventListener("removerendition",r))}get onchange(){return G(this,Zr)}set onchange(r){G(this,Zr)&&(this.removeEventListener("change",G(this,Zr)),ue(this,Zr,void 0)),typeof r=="function"&&(ue(this,Zr,r),this.addEventListener("change",r))}};Xr=new WeakMap,Qr=new WeakMap,Zr=new WeakMap;var Qn,AS=class{constructor(){He(this,"src"),He(this,"id"),He(this,"width"),He(this,"height"),He(this,"bitrate"),He(this,"frameRate"),He(this,"codec"),le(this,Qn,!1)}get selected(){return G(this,Qn)}set selected(r){G(this,Qn)!==r&&(ue(this,Qn,r),_S(this))}};Qn=new WeakMap;var Zn,hv=class{constructor(){He(this,"id"),He(this,"kind"),He(this,"label",""),He(this,"language",""),He(this,"sourceBuffer"),le(this,Zn,!1)}addRendition(r,e,t,i,s,n){let a=new AS;return a.src=r,a.width=e,a.height=t,a.frameRate=n,a.bitrate=s,a.codec=i,yS(this,a),a}removeRendition(r){TS(r)}get selected(){return G(this,Zn)}set selected(r){G(this,Zn)!==r&&(ue(this,Zn,r),r===!0&&bS(this))}};Zn=new WeakMap;function SS(r,e){let t=ie(r).media.audioRenditions;ie(e).media=ie(r).media,ie(e).track=r;let i=ie(r).renditionSet;i.add(e);let s=i.size-1;s in tf.prototype||Object.defineProperty(tf.prototype,s,{get(){return js(this)[s]}}),queueMicrotask(()=>{!r.enabled||t.dispatchEvent(new zl("addrendition",{rendition:e}))})}function xS(r){let e=ie(r).media.audioRenditions,t=ie(r).track;ie(t).renditionSet.delete(r),queueMicrotask(()=>{!ie(r).track.enabled||e.dispatchEvent(new zl("removerendition",{rendition:r}))})}function IS(r){let e=ie(r).media.audioRenditions;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,ie(r).track.enabled&&e.dispatchEvent(new Event("change"))}))}function js(r){return[...ie(r).media.audioTracks].filter(e=>e.enabled).flatMap(e=>[...ie(e).renditionSet])}var Jr,es,ts,tf=class extends EventTarget{constructor(){super(...arguments),le(this,Jr,void 0),le(this,es,void 0),le(this,ts,void 0)}[Symbol.iterator](){return js(this).values()}get length(){return js(this).length}getRenditionById(r){var e;return(e=js(this).find(t=>`${t.id}`==`${r}`))!=null?e:null}get selectedIndex(){return js(this).findIndex(r=>r.selected)}set selectedIndex(r){for(let[e,t]of js(this).entries())t.selected=e===r}get onaddrendition(){return G(this,Jr)}set onaddrendition(r){G(this,Jr)&&(this.removeEventListener("addrendition",G(this,Jr)),ue(this,Jr,void 0)),typeof r=="function"&&(ue(this,Jr,r),this.addEventListener("addrendition",r))}get onremoverendition(){return G(this,es)}set onremoverendition(r){G(this,es)&&(this.removeEventListener("removerendition",G(this,es)),ue(this,es,void 0)),typeof r=="function"&&(ue(this,es,r),this.addEventListener("removerendition",r))}get onchange(){return G(this,ts)}set onchange(r){G(this,ts)&&(this.removeEventListener("change",G(this,ts)),ue(this,ts,void 0)),typeof r=="function"&&(ue(this,ts,r),this.addEventListener("change",r))}};Jr=new WeakMap,es=new WeakMap,ts=new WeakMap;var Jn,LS=class{constructor(){He(this,"src"),He(this,"id"),He(this,"bitrate"),He(this,"codec"),le(this,Jn,!1)}get selected(){return G(this,Jn)}set selected(r){G(this,Jn)!==r&&(ue(this,Jn,r),IS(this))}};Jn=new WeakMap;function rf(r,e){let t=r.audioTracks;ie(e).media=r,ie(e).renditionSet||(ie(e).renditionSet=new Set);let i=ie(t).trackSet;i.add(e);let s=i.size-1;s in nf.prototype||Object.defineProperty(nf.prototype,s,{get(){return[...ie(this).trackSet][s]}}),queueMicrotask(()=>{t.dispatchEvent(new jl("addtrack",{track:e}))})}function sf(r){var e;let t=(e=ie(r).media)==null?void 0:e.audioTracks;!t||(ie(t).trackSet.delete(r),queueMicrotask(()=>{t.dispatchEvent(new jl("removetrack",{track:r}))}))}function kS(r){let e=ie(r).media.audioTracks;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,e.dispatchEvent(new Event("change"))}))}var is,rs,ss,ea,Bl,nf=class extends EventTarget{constructor(){super(),le(this,ea),le(this,is,void 0),le(this,rs,void 0),le(this,ss,void 0),ie(this).trackSet=new Set}[Symbol.iterator](){return G(this,ea,Bl).values()}get length(){return G(this,ea,Bl).size}getTrackById(r){var e;return(e=[...G(this,ea,Bl)].find(t=>t.id===r))!=null?e:null}get onaddtrack(){return G(this,is)}set onaddtrack(r){G(this,is)&&(this.removeEventListener("addtrack",G(this,is)),ue(this,is,void 0)),typeof r=="function"&&(ue(this,is,r),this.addEventListener("addtrack",r))}get onremovetrack(){return G(this,rs)}set onremovetrack(r){G(this,rs)&&(this.removeEventListener("removetrack",G(this,rs)),ue(this,rs,void 0)),typeof r=="function"&&(ue(this,rs,r),this.addEventListener("removetrack",r))}get onchange(){return G(this,ss)}set onchange(r){G(this,ss)&&(this.removeEventListener("change",G(this,ss)),ue(this,ss,void 0)),typeof r=="function"&&(ue(this,ss,r),this.addEventListener("change",r))}};is=new WeakMap,rs=new WeakMap,ss=new WeakMap,ea=new WeakSet,Bl=function(){return ie(this).trackSet};var ta,fv=class{constructor(){He(this,"id"),He(this,"kind"),He(this,"label",""),He(this,"language",""),He(this,"sourceBuffer"),le(this,ta,!1)}addRendition(r,e,t){let i=new LS;return i.src=r,i.codec=e,i.bitrate=t,SS(this,i),i}removeRendition(r){xS(r)}get enabled(){return G(this,ta)}set enabled(r){G(this,ta)!==r&&(ue(this,ta,r),kS(this))}};ta=new WeakMap;var lv=Wl(globalThis.HTMLMediaElement,"video"),dv=Wl(globalThis.HTMLMediaElement,"audio");function RS(r){if(!(r!=null&&r.prototype))return r;let e=Wl(r,"video");(!e||`${e}`.includes("[native code]"))&&Object.defineProperty(r.prototype,"videoTracks",{get(){return wS(this)}});let t=Wl(r,"audio");(!t||`${t}`.includes("[native code]"))&&Object.defineProperty(r.prototype,"audioTracks",{get(){return DS(this)}}),"addVideoTrack"in r.prototype||(r.prototype.addVideoTrack=function(n,a="",o=""){let l=new hv;return l.kind=n,l.label=a,l.language=o,Qh(this,l),l}),"removeVideoTrack"in r.prototype||(r.prototype.removeVideoTrack=Zh),"addAudioTrack"in r.prototype||(r.prototype.addAudioTrack=function(n,a="",o=""){let l=new fv;return l.kind=n,l.label=a,l.language=o,rf(this,l),l}),"removeAudioTrack"in r.prototype||(r.prototype.removeAudioTrack=sf),"videoRenditions"in r.prototype||Object.defineProperty(r.prototype,"videoRenditions",{get(){return i(this)}});let i=n=>{let a=ie(n).videoRenditions;return a||(a=new ef,ie(a).media=n,ie(n).videoRenditions=a),a};"audioRenditions"in r.prototype||Object.defineProperty(r.prototype,"audioRenditions",{get(){return s(this)}});let s=n=>{let a=ie(n).audioRenditions;return a||(a=new tf,ie(a).media=n,ie(n).audioRenditions=a),a};return r}function Wl(r,e){var t;if(r!=null&&r.prototype)return(t=Object.getOwnPropertyDescriptor(r.prototype,`${e}Tracks`))==null?void 0:t.get}function wS(r){var e;let t=ie(r).videoTracks;if(!t&&(t=new Jh,ie(r).videoTracks=t,lv)){let i=lv.call((e=r.nativeEl)!=null?e:r);for(let s of i)Qh(r,s);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(n=>n instanceof hv)){for(let n of i)Zh(n);return}Qh(r,s.track)}),i.addEventListener("removetrack",s=>{Zh(s.track)})}return t}function DS(r){var e;let t=ie(r).audioTracks;if(!t&&(t=new nf,ie(r).audioTracks=t,dv)){let i=dv.call((e=r.nativeEl)!=null?e:r);for(let s of i)rf(r,s);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(n=>n instanceof fv)){for(let n of i)sf(n);return}rf(r,s.track)}),i.addEventListener("removetrack",s=>{sf(s.track)})}return t}Yl.push("castchange","entercast","leavecast");var qh=RS(df(Fl.HTMLElement,{tag:"video",is:"castable-video"})),j={BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",CUSTOM_DOMAIN:"custom-domain",DEBUG:"debug",DISABLE_COOKIES:"disable-cookies",ENV_KEY:"env-key",MAX_RESOLUTION:"max-resolution",METADATA_URL:"metadata-url",PLAYBACK_ID:"playback-id",PLAYER_SOFTWARE_NAME:"player-software-name",PLAYER_SOFTWARE_VERSION:"player-software-version",PREFER_CMCD:"prefer-cmcd",PREFER_PLAYBACK:"prefer-playback",START_TIME:"start-time",STREAM_TYPE:"stream-type",TARGET_LIVE_WINDOW:"target-live-window",LIVE_EDGE_OFFSET:"live-edge-offset",TYPE:"type"},CS=Object.values(j),MS=gS(),OS="mux-video",Hi,ia,$l,ra,Gl,Hl,Vl,sa,Kl,af=class extends qh{constructor(){super(),le(this,sa),le(this,Hi,void 0),le(this,ia,void 0),le(this,$l,void 0),le(this,ra,{}),le(this,Gl,void 0),le(this,Hl,void 0),le(this,Vl,void 0),ue(this,$l,Y0())}static get observedAttributes(){var r;return[...CS,...(r=qh.observedAttributes)!=null?r:[]]}get preferCmcd(){var r;return(r=this.getAttribute(j.PREFER_CMCD))!=null?r:void 0}set preferCmcd(r){r!==this.preferCmcd&&(r?Ws.includes(r)?this.setAttribute(j.PREFER_CMCD,r):console.warn(`Invalid value for preferCmcd. Must be one of ${Ws.join()}`):this.removeAttribute(j.PREFER_CMCD))}get playerInitTime(){return G(this,$l)}get playerSoftwareName(){var r;return(r=G(this,Hl))!=null?r:OS}set playerSoftwareName(r){ue(this,Hl,r)}get playerSoftwareVersion(){var r;return(r=G(this,Gl))!=null?r:MS}set playerSoftwareVersion(r){ue(this,Gl,r)}get _hls(){var r;return(r=G(this,Hi))==null?void 0:r.engine}get mux(){var r;return(r=this.nativeEl)==null?void 0:r.mux}get error(){var r;return(r=z0(this.nativeEl))!=null?r:null}get errorTranslator(){return G(this,Vl)}set errorTranslator(r){ue(this,Vl,r)}get src(){return this.getAttribute("src")}set src(r){r!==this.src&&(r==null?this.removeAttribute("src"):this.setAttribute("src",r))}get type(){var r;return(r=this.getAttribute(j.TYPE))!=null?r:void 0}set type(r){r!==this.type&&(r?this.setAttribute(j.TYPE,r):this.removeAttribute(j.TYPE))}get autoplay(){let r=this.getAttribute("autoplay");return r===null?!1:r===""?!0:r}set autoplay(r){let e=this.autoplay;r!==e&&(r?this.setAttribute("autoplay",typeof r=="string"?r:""):this.removeAttribute("autoplay"))}get preload(){let r=this.getAttribute("preload");return r===""?"auto":["none","metadata","auto"].includes(r)?r:super.preload}set preload(r){r!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(r)?this.setAttribute("preload",r):this.removeAttribute("preload"))}get debug(){return this.getAttribute(j.DEBUG)!=null}set debug(r){r!==this.debug&&(r?this.setAttribute(j.DEBUG,""):this.removeAttribute(j.DEBUG))}get disableCookies(){return this.hasAttribute(j.DISABLE_COOKIES)}set disableCookies(r){r!==this.disableCookies&&(r?this.setAttribute(j.DISABLE_COOKIES,""):this.removeAttribute(j.DISABLE_COOKIES))}get startTime(){let r=this.getAttribute(j.START_TIME);if(r==null)return;let e=+r;return Number.isNaN(e)?void 0:e}set startTime(r){r!==this.startTime&&(r==null?this.removeAttribute(j.START_TIME):this.setAttribute(j.START_TIME,`${r}`))}get playbackId(){var r;return(r=this.getAttribute(j.PLAYBACK_ID))!=null?r:void 0}set playbackId(r){r!==this.playbackId&&(r?this.setAttribute(j.PLAYBACK_ID,r):this.removeAttribute(j.PLAYBACK_ID))}get maxResolution(){var r;return(r=this.getAttribute(j.MAX_RESOLUTION))!=null?r:void 0}set maxResolution(r){r!==this.maxResolution&&(r?this.setAttribute(j.MAX_RESOLUTION,r):this.removeAttribute(j.MAX_RESOLUTION))}get customDomain(){var r;return(r=this.getAttribute(j.CUSTOM_DOMAIN))!=null?r:void 0}set customDomain(r){r!==this.customDomain&&(r?this.setAttribute(j.CUSTOM_DOMAIN,r):this.removeAttribute(j.CUSTOM_DOMAIN))}get ended(){return Kh(this.nativeEl,this._hls)}get envKey(){var r;return(r=this.getAttribute(j.ENV_KEY))!=null?r:void 0}set envKey(r){r!==this.envKey&&(r?this.setAttribute(j.ENV_KEY,r):this.removeAttribute(j.ENV_KEY))}get beaconCollectionDomain(){var r;return(r=this.getAttribute(j.BEACON_COLLECTION_DOMAIN))!=null?r:void 0}set beaconCollectionDomain(r){r!==this.beaconCollectionDomain&&(r?this.setAttribute(j.BEACON_COLLECTION_DOMAIN,r):this.removeAttribute(j.BEACON_COLLECTION_DOMAIN))}get streamType(){var r;return(r=this.getAttribute(j.STREAM_TYPE))!=null?r:X0(this.nativeEl)}set streamType(r){r!==this.streamType&&(r?this.setAttribute(j.STREAM_TYPE,r):this.removeAttribute(j.STREAM_TYPE))}get targetLiveWindow(){return this.hasAttribute(j.TARGET_LIVE_WINDOW)?+this.getAttribute(j.TARGET_LIVE_WINDOW):Q0(this.nativeEl)}set targetLiveWindow(r){r!=this.targetLiveWindow&&(r==null?this.removeAttribute(j.TARGET_LIVE_WINDOW):this.setAttribute(j.TARGET_LIVE_WINDOW,`${+r}`))}get liveEdgeStart(){var r,e;if(this.hasAttribute(j.LIVE_EDGE_OFFSET)){let{liveEdgeOffset:t}=this,i=(r=this.nativeEl.seekable.end(0))!=null?r:0,s=(e=this.nativeEl.seekable.start(0))!=null?e:0;return Math.max(s,i-t)}return Z0(this.nativeEl)}get liveEdgeOffset(){if(this.hasAttribute(j.LIVE_EDGE_OFFSET))return+this.getAttribute(j.LIVE_EDGE_OFFSET)}set liveEdgeOffset(r){r!=this.targetLiveWindow&&(r==null?this.removeAttribute(j.LIVE_EDGE_OFFSET):this.setAttribute(j.LIVE_EDGE_OFFSET,`${+r}`))}get seekable(){return Vh(this.nativeEl)}async addCuePoints(r){return Gh(this.nativeEl,r)}get activeCuePoint(){return Hh(this.nativeEl)}get cuePoints(){return H0(this.nativeEl)}getStartDate(){return V0(this.nativeEl,this._hls)}get currentPdt(){return K0(this.nativeEl,this._hls)}get preferPlayback(){let r=this.getAttribute(j.PREFER_PLAYBACK);if(r===di.MSE||r===di.NATIVE)return r}set preferPlayback(r){r!==this.preferPlayback&&(r===di.MSE||r===di.NATIVE?this.setAttribute(j.PREFER_PLAYBACK,r):this.removeAttribute(j.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(r=>r.startsWith("metadata-")&&![j.METADATA_URL].includes(r)).reduce((r,e)=>{let t=this.getAttribute(e);return t!=null&&(r[e.replace(/^metadata-/,"").replace(/-/g,"_")]=t),r},{}),...G(this,ra)}}set metadata(r){ue(this,ra,r!=null?r:{}),this.mux&&this.mux.emit("hb",G(this,ra))}load(){ue(this,Hi,ev(this,this.nativeEl,G(this,Hi)))}unload(){Wh(this.nativeEl,G(this,Hi)),ue(this,Hi,void 0)}attributeChangedCallback(r,e,t){var i,s;switch(qh.observedAttributes.includes(r)&&!["src","autoplay","preload"].includes(r)&&super.attributeChangedCallback(r,e,t),r){case j.PLAYER_SOFTWARE_NAME:this.playerSoftwareName=t!=null?t:void 0;break;case j.PLAYER_SOFTWARE_VERSION:this.playerSoftwareVersion=t!=null?t:void 0;break;case"src":{let n=!!e,a=!!t;!n&&a?it(this,sa,Kl).call(this):n&&!a?this.unload():n&&a&&(this.unload(),it(this,sa,Kl).call(this));break}case"autoplay":if(t===e)break;(i=G(this,Hi))==null||i.setAutoplay(this.autoplay);break;case"preload":if(t===e)break;(s=G(this,Hi))==null||s.setPreload(t);break;case j.PLAYBACK_ID:this.src=j0(t!=null?t:void 0,{maxResolution:this.maxResolution,domain:this.customDomain});break;case j.DEBUG:{let n=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=n);break}case j.METADATA_URL:t&&fetch(t).then(n=>n.json()).then(n=>this.metadata=n).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${t}!`));break;case j.STREAM_TYPE:(t==null||t!==e)&&this.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}));break;case j.TARGET_LIVE_WINDOW:(t==null||t!==e)&&this.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0,detail:this.targetLiveWindow}));break;default:break}}connectedCallback(){var r;(r=super.connectedCallback)==null||r.call(this),this.nativeEl&&this.src&&!G(this,Hi)&&it(this,sa,Kl).call(this)}disconnectedCallback(){this.unload()}};Hi=new WeakMap,ia=new WeakMap,$l=new WeakMap,ra=new WeakMap,Gl=new WeakMap,Hl=new WeakMap,Vl=new WeakMap,sa=new WeakSet,Kl=async function(){G(this,ia)||(await ue(this,ia,Promise.resolve()),ue(this,ia,null),this.load())};Fl.customElements.get("mux-video")||(Fl.customElements.define("mux-video",af),Fl.MuxVideoElement=af);var mv=af;var PS="en",ns={code:PS};var pv="en";function Re(r,e=!0){var s,n;let t=e&&(n=(s=ns)==null?void 0:s[r])!=null?n:r,i=e?ns.code:pv;return new cf(t,i)}var cf=class{constructor(e,t=(i=>(i=ns.code)!=null?i:pv)()){this.message=e,this.locale=t}format(e){return this.message.replace(/\{(\w+)\}/g,(t,i)=>{var s;return(s=e[i])!=null?s:""})}toString(){return this.message}};function gv(r){let e="";return Object.entries(r).forEach(([t,i])=>{i!=null&&(e+=`${Xl(t)}: ${i}; `)}),e?e.trim():void 0}function Xl(r){return r.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Ql(r){return r.replace(/[-_]([a-z])/g,(e,t)=>t.toUpperCase())}function Zi(r){if(r==null)return;let e=+r;return Number.isNaN(e)?void 0:e}function Zl(r){let e=NS(r).toString();return e?"?"+e:""}function NS(r){let e={};for(let t in r)r[t]!=null&&(e[t]=r[t]);return new URLSearchParams(e)}function yr(r){let e=(r!=null?r:"").split(".")[1];if(!e)return{};let t=e.replace(/-/g,"+").replace(/_/g,"/"),i=decodeURIComponent(atob(t).split("").map(function(s){return"%"+("00"+s.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(i)}var uf=(r,e)=>!r||!e?!1:r.contains(e)?!0:uf(r,e.getRootNode().host);var hf="mux.com",US=()=>{try{return"1.15.0"}catch{}return"UNKNOWN"},FS=US(),ed=()=>FS,ff=(r,{maxResolution:e,token:t,domain:i=hf}={})=>{let a=!!t?{token:t}:{redundant_streams:!0,...e?{max_resolution:e}:{}};return`https://stream.${i}/${r}.m3u8${Zl(a)}`},vv=(r,{token:e,thumbnailTime:t,domain:i=hf}={})=>{let s=e==null?t:void 0,{aud:n}=yr(e);if(!(e&&n!=="t"))return`https://image.${i}/${r}/thumbnail.webp${Zl({token:e,time:s})}`},Ev=(r,{token:e,domain:t=hf}={})=>{let{aud:i}=yr(e);if(!(e&&i!=="s"))return`https://image.${t}/${r}/storyboard.vtt${Zl({token:e,format:"webp"})}`},na=r=>{if(!!r){if([Je.LIVE,Je.ON_DEMAND].includes(r))return r;if(r!=null&&r.includes("live"))return Je.LIVE}};var BS={crossorigin:"crossOrigin",playsinline:"playsInline"};function bv(r){var e;return(e=BS[r])!=null?e:Ql(r)}var as,os,Nt,Jl=class{constructor(e,t){ut(this,as,void 0);ut(this,os,void 0);ut(this,Nt,[]);ii(this,as,e),ii(this,os,t)}[Symbol.iterator](){return Ne(this,Nt).values()}get length(){return Ne(this,Nt).length}get value(){var e;return(e=Ne(this,Nt).join(" "))!=null?e:""}set value(e){var t;e!==this.value&&(ii(this,Nt,[]),this.add(...(t=e==null?void 0:e.split(" "))!=null?t:[]))}toString(){return this.value}item(e){return Ne(this,Nt)[e]}values(){return Ne(this,Nt).values()}keys(){return Ne(this,Nt).keys()}forEach(e){Ne(this,Nt).forEach(e)}add(...e){var t,i;e.forEach(s=>{this.contains(s)||Ne(this,Nt).push(s)}),!(this.value===""&&!((t=Ne(this,as))!=null&&t.hasAttribute(`${Ne(this,os)}`)))&&((i=Ne(this,as))==null||i.setAttribute(`${Ne(this,os)}`,`${this.value}`))}remove(...e){var t;e.forEach(i=>{Ne(this,Nt).splice(Ne(this,Nt).indexOf(i),1)}),(t=Ne(this,as))==null||t.setAttribute(`${Ne(this,os)}`,`${this.value}`)}contains(e){return Ne(this,Nt).includes(e)}toggle(e,t){return typeof t!="undefined"?t?(this.add(e),!0):(this.remove(e),!1):this.contains(e)?(this.remove(e),!1):(this.add(e),!0)}replace(e,t){this.remove(e),this.add(t)}};as=new WeakMap,os=new WeakMap,Nt=new WeakMap;var yv=`[mux-player ${ed()}]`;function Tr(...r){console.warn(yv,...r)}function yi(...r){console.error(yv,...r)}function mf(r){var t;let e=(t=r.message)!=null?t:"";if(r.context&&(e+=` ${r.context}`),r.file){let i="https://github.com/muxinc/elements/blob/main/errors/";e+=` ${Re("Read more: ")}
|
|
1015
|
-
${i}${r.file}`}Tr(e)}var Ot={AUTOPLAY:"autoplay",CROSSORIGIN:"crossorigin",LOOP:"loop",MUTED:"muted",PLAYSINLINE:"playsinline",PRELOAD:"preload"},ls={VOLUME:"volume",PLAYBACKRATE:"playbackrate",MUTED:"muted"},_v=Object.freeze({length:0,start(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0}}),$S=Yl.filter(r=>r!=="error"),GS=Object.values(Ot).filter(r=>![Ot.PLAYSINLINE].includes(r)),HS=Object.values(ls);function Av(r){r.querySelectorAll(":scope > track").forEach(e=>{var t;(t=r.media)==null||t.append(e.cloneNode())}),$S.forEach(e=>{var t;(t=r.media)==null||t.addEventListener(e,i=>{r.dispatchEvent(new Event(i.type))})})}var pf=class extends nt.HTMLElement{static get observedAttributes(){return[...GS,...HS]}constructor(){super(),this.querySelectorAll(":scope > track").forEach(i=>{var s;(s=this.media)==null||s.append(i.cloneNode())});let e=i=>{for(let s of i)s.type==="childList"&&(s.removedNodes.forEach(n=>{var o,l;let a=(o=this.media)==null?void 0:o.querySelector(`track[src="${n.src}"]`);a&&((l=this.media)==null||l.removeChild(a))}),s.addedNodes.forEach(n=>{var a;(a=this.media)==null||a.append(n.cloneNode())}))};new MutationObserver(e).observe(this,{childList:!0,subtree:!0})}attributeChangedCallback(e,t,i){var s,n;switch(e){case ls.MUTED:{this.media&&(this.media.muted=i!=null,this.media.defaultMuted=i!=null);return}case ls.VOLUME:{let a=(s=Zi(i))!=null?s:1;this.media&&(this.media.volume=a);return}case ls.PLAYBACKRATE:{let a=(n=Zi(i))!=null?n:1;this.media&&(this.media.playbackRate=a,this.media.defaultPlaybackRate=a);return}}}play(){var e,t;return(t=(e=this.media)==null?void 0:e.play())!=null?t:Promise.reject()}pause(){var e;(e=this.media)==null||e.pause()}requestCast(e){var t;return(t=this.media)==null?void 0:t.requestCast(e)}get media(){var e;return(e=this.shadowRoot)==null?void 0:e.querySelector("mux-video")}get audioTracks(){return this.media.audioTracks}get videoTracks(){return this.media.videoTracks}get audioRenditions(){return this.media.audioRenditions}get videoRenditions(){return this.media.videoRenditions}get paused(){var e,t;return(t=(e=this.media)==null?void 0:e.paused)!=null?t:!0}get duration(){var e,t;return(t=(e=this.media)==null?void 0:e.duration)!=null?t:NaN}get ended(){var e,t;return(t=(e=this.media)==null?void 0:e.ended)!=null?t:!1}get buffered(){var e,t;return(t=(e=this.media)==null?void 0:e.buffered)!=null?t:_v}get seekable(){var e,t;return(t=(e=this.media)==null?void 0:e.seekable)!=null?t:_v}get readyState(){var e,t;return(t=(e=this.media)==null?void 0:e.readyState)!=null?t:0}get videoWidth(){var e,t;return(t=(e=this.media)==null?void 0:e.videoWidth)!=null?t:0}get videoHeight(){var e,t;return(t=(e=this.media)==null?void 0:e.videoHeight)!=null?t:0}get currentTime(){var e,t;return(t=(e=this.media)==null?void 0:e.currentTime)!=null?t:0}set currentTime(e){this.media&&(this.media.currentTime=Number(e))}get volume(){var e,t;return(t=(e=this.media)==null?void 0:e.volume)!=null?t:1}set volume(e){this.media&&(this.media.volume=Number(e))}get playbackRate(){var e,t;return(t=(e=this.media)==null?void 0:e.playbackRate)!=null?t:1}set playbackRate(e){this.media&&(this.media.playbackRate=Number(e))}get defaultPlaybackRate(){var e;return(e=Zi(this.getAttribute(ls.PLAYBACKRATE)))!=null?e:1}set defaultPlaybackRate(e){e!=null?this.setAttribute(ls.PLAYBACKRATE,`${e}`):this.removeAttribute(ls.PLAYBACKRATE)}get crossOrigin(){return aa(this,Ot.CROSSORIGIN)}set crossOrigin(e){this.setAttribute(Ot.CROSSORIGIN,`${e}`)}get autoplay(){return aa(this,Ot.AUTOPLAY)!=null}set autoplay(e){e?this.setAttribute(Ot.AUTOPLAY,typeof e=="string"?e:""):this.removeAttribute(Ot.AUTOPLAY)}get loop(){return aa(this,Ot.LOOP)!=null}set loop(e){e?this.setAttribute(Ot.LOOP,""):this.removeAttribute(Ot.LOOP)}get muted(){var e,t;return(t=(e=this.media)==null?void 0:e.muted)!=null?t:!1}set muted(e){this.media&&(this.media.muted=Boolean(e))}get defaultMuted(){return aa(this,Ot.MUTED)!=null}set defaultMuted(e){e?this.setAttribute(Ot.MUTED,""):this.removeAttribute(Ot.MUTED)}get playsInline(){return aa(this,Ot.PLAYSINLINE)!=null}set playsInline(e){yi("playsInline is set to true by default and is not currently supported as a setter.")}get preload(){return this.media?this.media.preload:this.getAttribute("preload")}set preload(e){["","none","metadata","auto"].includes(e)?this.setAttribute(Ot.PRELOAD,e):this.removeAttribute(Ot.PRELOAD)}};function aa(r,e){return r.media?r.media.getAttribute(e):r.getAttribute(e)}var gf=pf;var VS=Object.defineProperty,KS=(r,e,t)=>e in r?VS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,WS=(r,e,t)=>(KS(r,typeof e!="symbol"?e+"":e,t),t),kv=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Le=(r,e,t)=>(kv(r,e,"read from private field"),t?t.call(r):e.get(r)),Vi=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Ji=(r,e,t,i)=>(kv(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),zs,td,ds,oa,_r,Ar,Sr,cs,Xs,id,Ti,Sv=1,xv=0,qS=1,YS={processCallback(r,e,t){if(!!t){for(let[i,s]of e)if(i in t){let n=t[i];typeof n=="boolean"&&s instanceof Ut&&typeof s.element[s.attributeName]=="boolean"?s.booleanValue=n:typeof n=="function"&&s instanceof Ut?s.element[s.attributeName]=n:s.value=n}}}},er=class extends w.DocumentFragment{constructor(e,t,i=YS){var s;super(),Vi(this,zs,void 0),Vi(this,td,void 0),this.append(e.content.cloneNode(!0)),Ji(this,zs,Rv(this)),Ji(this,td,i),(s=i.createCallback)==null||s.call(i,this,Le(this,zs),t),i.processCallback(this,Le(this,zs),t)}update(e){Le(this,td).processCallback(this,Le(this,zs),e)}};zs=new WeakMap;td=new WeakMap;var Rv=(r,e=[])=>{let t,i;for(let s of r.attributes||[])if(s.value.includes("{{")){let n=new vf;for([t,i]of Lv(s.value))if(!t)n.append(i);else{let a=new Ut(r,s.name,s.namespaceURI);n.append(a),e.push([i,a])}s.value=n.toString()}for(let s of r.childNodes)if(s.nodeType===Sv&&!(s instanceof HTMLTemplateElement))Rv(s,e);else if(s.nodeType===Sv||s.data.includes("{{")){let n=[];if(s.data)for([t,i]of Lv(s.data))if(!t)n.push(new Text(i));else{let a=new tr(r);n.push(a),e.push([i,a])}else if(s instanceof HTMLTemplateElement){let a=new la(r,s);n.push(a),e.push([a.expression,a])}s.replaceWith(...n.flatMap(a=>a.replacementNodes||[a]))}return e},Iv={},Lv=r=>{let e="",t=0,i=Iv[r],s=0,n;if(i)return i;for(i=[];n=r[s];s++)n==="{"&&r[s+1]==="{"&&r[s-1]!=="\\"&&r[s+2]&&++t==1?(e&&i.push([xv,e]),e="",s++):n==="}"&&r[s+1]==="}"&&r[s-1]!=="\\"&&!--t?(i.push([qS,e.trim()]),e="",s++):e+=n||"";return e&&i.push([xv,(t>0?"{{":"")+e]),Iv[r]=i},jS=11,rd=class{get value(){return""}set value(e){}toString(){return this.value}},wv=new WeakMap,vf=class{constructor(){Vi(this,ds,[])}[Symbol.iterator](){return Le(this,ds).values()}get length(){return Le(this,ds).length}item(e){return Le(this,ds)[e]}append(...e){for(let t of e)t instanceof Ut&&wv.set(t,this),Le(this,ds).push(t)}toString(){return Le(this,ds).join("")}};ds=new WeakMap;var Ut=class extends rd{constructor(e,t,i){super(),Vi(this,cs),Vi(this,oa,""),Vi(this,_r,void 0),Vi(this,Ar,void 0),Vi(this,Sr,void 0),Ji(this,_r,e),Ji(this,Ar,t),Ji(this,Sr,i)}get attributeName(){return Le(this,Ar)}get attributeNamespace(){return Le(this,Sr)}get element(){return Le(this,_r)}get value(){return Le(this,oa)}set value(e){Le(this,oa)!==e&&(Ji(this,oa,e),!Le(this,cs,Xs)||Le(this,cs,Xs).length===1?e==null?Le(this,_r).removeAttributeNS(Le(this,Sr),Le(this,Ar)):Le(this,_r).setAttributeNS(Le(this,Sr),Le(this,Ar),e):Le(this,_r).setAttributeNS(Le(this,Sr),Le(this,Ar),Le(this,cs,Xs)))}get booleanValue(){return Le(this,_r).hasAttributeNS(Le(this,Sr),Le(this,Ar))}set booleanValue(e){if(!Le(this,cs,Xs)||Le(this,cs,Xs).length===1)this.value=e?"":null;else throw new DOMException("Value is not fully templatized")}};oa=new WeakMap;_r=new WeakMap;Ar=new WeakMap;Sr=new WeakMap;cs=new WeakSet;Xs=function(){return wv.get(this)};var tr=class extends rd{constructor(e,t){super(),Vi(this,id,void 0),Vi(this,Ti,void 0),Ji(this,id,e),Ji(this,Ti,t?[...t]:[new Text])}get replacementNodes(){return Le(this,Ti)}get parentNode(){return Le(this,id)}get nextSibling(){return Le(this,Ti)[Le(this,Ti).length-1].nextSibling}get previousSibling(){return Le(this,Ti)[0].previousSibling}get value(){return Le(this,Ti).map(e=>e.textContent).join("")}set value(e){this.replace(e)}replace(...e){let t=e.flat().flatMap(i=>i==null?[new Text]:i.forEach?[...i]:i.nodeType===jS?[...i.childNodes]:i.nodeType?[i]:[new Text(i)]);t.length||t.push(new Text),Ji(this,Ti,zS(Le(this,Ti)[0].parentNode,Le(this,Ti),t,this.nextSibling))}};id=new WeakMap;Ti=new WeakMap;var la=class extends tr{constructor(e,t){let i=t.getAttribute("directive")||t.getAttribute("type"),s=t.getAttribute("expression")||t.getAttribute(i)||"";s.startsWith("{{")&&(s=s.trim().slice(2,-2).trim()),super(e),WS(this,"directive"),this.expression=s,this.template=t,this.directive=i}};function zS(r,e,t,i=null){let s=0,n,a,o,l=t.length,d=e.length;for(;s<l&&s<d&&e[s]==t[s];)s++;for(;s<l&&s<d&&t[l-1]==e[d-1];)i=t[--d,--l];if(s==d)for(;s<l;)r.insertBefore(t[s++],i);if(s==l)for(;s<d;)r.removeChild(e[s++]);else{for(n=e[s];s<l;)o=t[s++],a=n?n.nextSibling:i,n==o?n=a:s<l&&t[s]==a?(r.replaceChild(o,n),n=a):r.insertBefore(o,n);for(;n!=i;)a=n.nextSibling,r.removeChild(n),n=a}return t}var Dv={string:r=>String(r)},nd=class{constructor(e){this.template=e,this.state=void 0}},us=new WeakMap,hs=new WeakMap,Ef={partial:(r,e)=>{e[r.expression]=new nd(r.template)},if:(r,e)=>{var t;if(Mv(r.expression,e))if(us.get(r)!==r.template){us.set(r,r.template);let i=new er(r.template,e,ad);r.replace(i),hs.set(r,i)}else(t=hs.get(r))==null||t.update(e);else r.replace(""),us.delete(r),hs.delete(r)}},XS=Object.keys(Ef),ad={processCallback(r,e,t){var i,s;if(!!t)for(let[n,a]of e){if(a instanceof la){if(!a.directive){let l=XS.find(d=>a.template.hasAttribute(d));l&&(a.directive=l,a.expression=a.template.getAttribute(l))}(i=Ef[a.directive])==null||i.call(Ef,a,t);continue}let o=Mv(n,t);if(o instanceof nd){us.get(a)!==o.template?(us.set(a,o.template),o=new er(o.template,o.state,ad),a.value=o,hs.set(a,o)):(s=hs.get(a))==null||s.update(o.state);continue}o?(a instanceof Ut&&a.attributeName.startsWith("aria-")&&(o=String(o)),a instanceof Ut?typeof o=="boolean"?a.booleanValue=o:typeof o=="function"?a.element[a.attributeName]=o:a.value=o:(a.value=o,us.delete(a),hs.delete(a))):a instanceof Ut?a.value=void 0:(a.value=void 0,us.delete(a),hs.delete(a))}}},Cv={"!":r=>!r,"!!":r=>!!r,"==":(r,e)=>r==e,"!=":(r,e)=>r!=e,">":(r,e)=>r>e,">=":(r,e)=>r>=e,"<":(r,e)=>r<e,"<=":(r,e)=>r<=e,"??":(r,e)=>r!=null?r:e,"|":(r,e)=>{var t;return(t=Dv[e])==null?void 0:t.call(Dv,r)}};function QS(r){return ZS(r,{boolean:/true|false/,number:/-?\d+\.?\d*/,string:/(["'])((?:\\.|[^\\])*?)\1/,operator:/[!=><][=!]?|\?\?|\|/,ws:/\s+/,param:/[$a-z_][$\w]*/i}).filter(({type:e})=>e!=="ws")}function Mv(r,e={}){var t,i,s,n,a,o,l;let d=QS(r);if(d.length===0||d.some(({type:c})=>!c))return da(r);if(((t=d[0])==null?void 0:t.token)===">"){let c=e[(i=d[1])==null?void 0:i.token];if(!c)return da(r);let u={...e};c.state=u;let h=d.slice(2);for(let f=0;f<h.length;f+=3){let g=(s=h[f])==null?void 0:s.token,E=(n=h[f+1])==null?void 0:n.token,T=(a=h[f+2])==null?void 0:a.token;g&&E==="="&&(u[g]=ca(T,e))}return c}if(d.length===1)return sd(d[0])?ca(d[0].token,e):da(r);if(d.length===2){let c=(o=d[0])==null?void 0:o.token,u=Cv[c];if(!u||!sd(d[1]))return da(r);let h=ca(d[1].token,e);return u(h)}if(d.length===3){let c=(l=d[1])==null?void 0:l.token,u=Cv[c];if(!u||!sd(d[0])||!sd(d[2]))return da(r);let h=ca(d[0].token,e);if(c==="|")return u(h,d[2].token);let f=ca(d[2].token,e);return u(h,f)}}function da(r){return console.warn(`Warning: invalid expression \`${r}\``),!1}function sd({type:r}){return["number","boolean","string","param"].includes(r)}function ca(r,e){let t=r[0],i=r.slice(-1);return r==="true"||r==="false"?r==="true":t===i&&["'",'"'].includes(t)?r.slice(1,-1):La(r)?parseFloat(r):e[r]}function ZS(r,e){let t,i,s,n=[];for(;r;){s=null,t=r.length;for(let a in e)i=e[a].exec(r),i&&i.index<t&&(s={token:i[0],type:a,matches:i.slice(1)},t=i.index);t&&n.push({token:r.substr(0,t),type:void 0}),s&&n.push(s),r=r.substr(t+(s?s.token.length:0))}return n}var JS=Object.defineProperty,ex=(r,e,t)=>e in r?JS(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ha=(r,e,t)=>(ex(r,typeof e!="symbol"?e+"":e,t),t),Sf=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Tf=(r,e,t)=>(Sf(r,e,"read from private field"),t?t.call(r):e.get(r)),ua=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},fs=(r,e,t,i)=>(Sf(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),bf=(r,e,t)=>(Sf(r,e,"access private method"),t),Qs,od,Zs,_f,Ov,ld,Af,yf={mediatargetlivewindow:"targetlivewindow",mediastreamtype:"streamtype"},Pv=Y.createElement("template");Pv.innerHTML=`
|
|
1014
|
+
`);var df=(r,{tag:e,is:t})=>{var i,s,n,a,o,l,d,c,u,h,f,g,E;let T=(i=globalThis.document)==null?void 0:i.createElement(e,{is:t}),A=T?v1(T):[];return s=class extends r{constructor(){super(),le(this,c),le(this,h),le(this,g),le(this,l,void 0),le(this,d,void 0),this.shadowRoot||(this.attachShadow({mode:"open"}),this.shadowRoot.append(this.constructor.template.content.cloneNode(!0)))}static get observedAttributes(){var k,L,N;return it(k=s,a,o).call(k),[...(N=(L=T==null?void 0:T.constructor)==null?void 0:L.observedAttributes)!=null?N:[],"autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"]}get nativeEl(){var k,L;return(L=(k=H(this,d))!=null?k:this.shadowRoot.querySelector(e))!=null?L:this.querySelector(e)}set nativeEl(k){ue(this,d,k)}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(k){this.toggleAttribute("muted",Boolean(k))}get src(){return this.getAttribute("src")}set src(k){this.setAttribute("src",`${k}`)}get preload(){var k,L;return(L=this.getAttribute("preload"))!=null?L:(k=this.nativeEl)==null?void 0:k.preload}set preload(k){this.setAttribute("preload",`${k}`)}attributeChangedCallback(k,L,N){it(this,c,u).call(this),it(this,g,E).call(this,k,L,N)}connectedCallback(){it(this,c,u).call(this)}},n=new WeakMap,a=new WeakSet,o=function(){if(H(this,n))return;ue(this,n,!0);let k=new Set(this.observedAttributes);k.delete("muted");for(let L of A)if(!(L in this.prototype))if(typeof T[L]=="function")this.prototype[L]=function(...N){return it(this,c,u).call(this),(()=>this.call?this.call(L,...N):this.nativeEl[L].apply(this.nativeEl,N))()};else{let N={get(){var D,$,O;it(this,c,u).call(this);let G=L.toLowerCase();if(k.has(G)){let q=this.getAttribute(G);return q===null?!1:q===""?!0:q}return(O=(D=this.get)==null?void 0:D.call(this,L))!=null?O:($=this.nativeEl)==null?void 0:$[L]}};L!==L.toUpperCase()&&(N.set=function(D){it(this,c,u).call(this);let $=L.toLowerCase();if(k.has($)){D===!0||D===!1||D==null?this.toggleAttribute($,Boolean(D)):this.setAttribute($,D);return}if(this.set){this.set(L,D);return}this.nativeEl[L]=D}),Object.defineProperty(this.prototype,L,N)}},l=new WeakMap,d=new WeakMap,c=new WeakSet,u=function(){var k,L;if(H(this,l))return;if(ue(this,l,!0),!this.nativeEl){let $=document.createElement(e,{is:t});$.part=e,this.shadowRoot.append($)}this.nativeEl.muted=this.hasAttribute("muted");for(let $ of A)it(this,h,f).call(this,$);let N=new Map,D=this.shadowRoot.querySelector("slot:not([name])");D==null||D.addEventListener("slotchange",()=>{let $=new Map(N);D.assignedElements().filter(O=>["track","source"].includes(O.localName)).forEach(O=>{var G,q;$.delete(O);let P=N.get(O);P||(P=O.cloneNode(),N.set(O,P)),(q=(G=this.nativeEl).append)==null||q.call(G,P)}),$.forEach(O=>O.remove())});for(let $ of this.constructor.Events)(L=(k=this.shadowRoot).addEventListener)==null||L.call(k,$,O=>{O.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(O.type,{detail:O.detail}))},!0)},h=new WeakSet,f=function(k){if(Object.prototype.hasOwnProperty.call(this,k)){let L=this[k];delete this[k],this[k]=L}},g=new WeakSet,E=function(k,L,N){var D,$,O,G;["id","class"].includes(k)||(N===null?($=(D=this.nativeEl).removeAttribute)==null||$.call(D,k):(G=(O=this.nativeEl).setAttribute)==null||G.call(O,k,N))},le(s,a),Ge(s,"Events",Yl),Ge(s,"template",e.endsWith("audio")?jh:zh),le(s,n,void 0),s};function v1(r){let e=[];for(let t=Object.getPrototypeOf(r);t&&t!==HTMLElement.prototype;t=Object.getPrototypeOf(t))e.push(...Object.getOwnPropertyNames(t));return e}var Aw=globalThis.document?df(HTMLElement,{tag:"video"}):class{},Sw=globalThis.document?df(HTMLElement,{tag:"audio"}):class{},jl=class extends Event{constructor(r,e){super(r),Ge(this,"track"),this.track=e.track}},Xh=new WeakMap;function ie(r){var e;return(e=Xh.get(r))!=null?e:E1(r,{})}function E1(r,e){let t=Xh.get(r);return t||Xh.set(r,t={}),Object.assign(t,e)}function Qh(r,e){let t=r.videoTracks;ie(e).media=r,ie(e).renditionSet||(ie(e).renditionSet=new Set);let i=ie(t).trackSet;i.add(e);let s=i.size-1;s in Jh.prototype||Object.defineProperty(Jh.prototype,s,{get(){return[...ie(this).trackSet][s]}}),queueMicrotask(()=>{t.dispatchEvent(new jl("addtrack",{track:e}))})}function Zh(r){var e;let t=(e=ie(r).media)==null?void 0:e.videoTracks;!t||(ie(t).trackSet.delete(r),queueMicrotask(()=>{t.dispatchEvent(new jl("removetrack",{track:r}))}))}function b1(r){var e;let t=(e=ie(r).media.videoTracks)!=null?e:[],i=!1;for(let s of t)s!==r&&(s.selected=!1,i=!0);if(i){if(ie(t).changeRequested)return;ie(t).changeRequested=!0,queueMicrotask(()=>{delete ie(t).changeRequested,t.dispatchEvent(new Event("change"))})}}var Yr,jr,zr,qs,Xn,Jh=class extends EventTarget{constructor(){super(),le(this,qs),le(this,Yr,void 0),le(this,jr,void 0),le(this,zr,void 0),ie(this).trackSet=new Set}[Symbol.iterator](){return H(this,qs,Xn).values()}get length(){return H(this,qs,Xn).size}getTrackById(r){var e;return(e=[...H(this,qs,Xn)].find(t=>t.id===r))!=null?e:null}get selectedIndex(){return[...H(this,qs,Xn)].findIndex(r=>r.selected)}get onaddtrack(){return H(this,Yr)}set onaddtrack(r){H(this,Yr)&&(this.removeEventListener("addtrack",H(this,Yr)),ue(this,Yr,void 0)),typeof r=="function"&&(ue(this,Yr,r),this.addEventListener("addtrack",r))}get onremovetrack(){return H(this,jr)}set onremovetrack(r){H(this,jr)&&(this.removeEventListener("removetrack",H(this,jr)),ue(this,jr,void 0)),typeof r=="function"&&(ue(this,jr,r),this.addEventListener("removetrack",r))}get onchange(){return H(this,zr)}set onchange(r){H(this,zr)&&(this.removeEventListener("change",H(this,zr)),ue(this,zr,void 0)),typeof r=="function"&&(ue(this,zr,r),this.addEventListener("change",r))}};Yr=new WeakMap,jr=new WeakMap,zr=new WeakMap,qs=new WeakSet,Xn=function(){return ie(this).trackSet};var zl=class extends Event{constructor(r,e){super(r),Ge(this,"rendition"),this.rendition=e.rendition}};function y1(r,e){let t=ie(r).media.videoRenditions;ie(e).media=ie(r).media,ie(e).track=r;let i=ie(r).renditionSet;i.add(e);let s=i.size-1;s in ef.prototype||Object.defineProperty(ef.prototype,s,{get(){return Ys(this)[s]}}),queueMicrotask(()=>{!r.selected||t.dispatchEvent(new zl("addrendition",{rendition:e}))})}function T1(r){let e=ie(r).media.videoRenditions,t=ie(r).track;ie(t).renditionSet.delete(r),queueMicrotask(()=>{!ie(r).track.selected||e.dispatchEvent(new zl("removerendition",{rendition:r}))})}function _1(r){let e=ie(r).media.videoRenditions;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,ie(r).track.selected&&e.dispatchEvent(new Event("change"))}))}function Ys(r){return[...ie(r).media.videoTracks].filter(e=>e.selected).flatMap(e=>[...ie(e).renditionSet])}var Xr,Qr,Zr,ef=class extends EventTarget{constructor(){super(...arguments),le(this,Xr,void 0),le(this,Qr,void 0),le(this,Zr,void 0)}[Symbol.iterator](){return Ys(this).values()}get length(){return Ys(this).length}getRenditionById(r){var e;return(e=Ys(this).find(t=>`${t.id}`==`${r}`))!=null?e:null}get selectedIndex(){return Ys(this).findIndex(r=>r.selected)}set selectedIndex(r){for(let[e,t]of Ys(this).entries())t.selected=e===r}get onaddrendition(){return H(this,Xr)}set onaddrendition(r){H(this,Xr)&&(this.removeEventListener("addrendition",H(this,Xr)),ue(this,Xr,void 0)),typeof r=="function"&&(ue(this,Xr,r),this.addEventListener("addrendition",r))}get onremoverendition(){return H(this,Qr)}set onremoverendition(r){H(this,Qr)&&(this.removeEventListener("removerendition",H(this,Qr)),ue(this,Qr,void 0)),typeof r=="function"&&(ue(this,Qr,r),this.addEventListener("removerendition",r))}get onchange(){return H(this,Zr)}set onchange(r){H(this,Zr)&&(this.removeEventListener("change",H(this,Zr)),ue(this,Zr,void 0)),typeof r=="function"&&(ue(this,Zr,r),this.addEventListener("change",r))}};Xr=new WeakMap,Qr=new WeakMap,Zr=new WeakMap;var Qn,A1=class{constructor(){Ge(this,"src"),Ge(this,"id"),Ge(this,"width"),Ge(this,"height"),Ge(this,"bitrate"),Ge(this,"frameRate"),Ge(this,"codec"),le(this,Qn,!1)}get selected(){return H(this,Qn)}set selected(r){H(this,Qn)!==r&&(ue(this,Qn,r),_1(this))}};Qn=new WeakMap;var Zn,hv=class{constructor(){Ge(this,"id"),Ge(this,"kind"),Ge(this,"label",""),Ge(this,"language",""),Ge(this,"sourceBuffer"),le(this,Zn,!1)}addRendition(r,e,t,i,s,n){let a=new A1;return a.src=r,a.width=e,a.height=t,a.frameRate=n,a.bitrate=s,a.codec=i,y1(this,a),a}removeRendition(r){T1(r)}get selected(){return H(this,Zn)}set selected(r){H(this,Zn)!==r&&(ue(this,Zn,r),r===!0&&b1(this))}};Zn=new WeakMap;function S1(r,e){let t=ie(r).media.audioRenditions;ie(e).media=ie(r).media,ie(e).track=r;let i=ie(r).renditionSet;i.add(e);let s=i.size-1;s in tf.prototype||Object.defineProperty(tf.prototype,s,{get(){return js(this)[s]}}),queueMicrotask(()=>{!r.enabled||t.dispatchEvent(new zl("addrendition",{rendition:e}))})}function x1(r){let e=ie(r).media.audioRenditions,t=ie(r).track;ie(t).renditionSet.delete(r),queueMicrotask(()=>{!ie(r).track.enabled||e.dispatchEvent(new zl("removerendition",{rendition:r}))})}function I1(r){let e=ie(r).media.audioRenditions;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,ie(r).track.enabled&&e.dispatchEvent(new Event("change"))}))}function js(r){return[...ie(r).media.audioTracks].filter(e=>e.enabled).flatMap(e=>[...ie(e).renditionSet])}var Jr,es,ts,tf=class extends EventTarget{constructor(){super(...arguments),le(this,Jr,void 0),le(this,es,void 0),le(this,ts,void 0)}[Symbol.iterator](){return js(this).values()}get length(){return js(this).length}getRenditionById(r){var e;return(e=js(this).find(t=>`${t.id}`==`${r}`))!=null?e:null}get selectedIndex(){return js(this).findIndex(r=>r.selected)}set selectedIndex(r){for(let[e,t]of js(this).entries())t.selected=e===r}get onaddrendition(){return H(this,Jr)}set onaddrendition(r){H(this,Jr)&&(this.removeEventListener("addrendition",H(this,Jr)),ue(this,Jr,void 0)),typeof r=="function"&&(ue(this,Jr,r),this.addEventListener("addrendition",r))}get onremoverendition(){return H(this,es)}set onremoverendition(r){H(this,es)&&(this.removeEventListener("removerendition",H(this,es)),ue(this,es,void 0)),typeof r=="function"&&(ue(this,es,r),this.addEventListener("removerendition",r))}get onchange(){return H(this,ts)}set onchange(r){H(this,ts)&&(this.removeEventListener("change",H(this,ts)),ue(this,ts,void 0)),typeof r=="function"&&(ue(this,ts,r),this.addEventListener("change",r))}};Jr=new WeakMap,es=new WeakMap,ts=new WeakMap;var Jn,L1=class{constructor(){Ge(this,"src"),Ge(this,"id"),Ge(this,"bitrate"),Ge(this,"codec"),le(this,Jn,!1)}get selected(){return H(this,Jn)}set selected(r){H(this,Jn)!==r&&(ue(this,Jn,r),I1(this))}};Jn=new WeakMap;function rf(r,e){let t=r.audioTracks;ie(e).media=r,ie(e).renditionSet||(ie(e).renditionSet=new Set);let i=ie(t).trackSet;i.add(e);let s=i.size-1;s in nf.prototype||Object.defineProperty(nf.prototype,s,{get(){return[...ie(this).trackSet][s]}}),queueMicrotask(()=>{t.dispatchEvent(new jl("addtrack",{track:e}))})}function sf(r){var e;let t=(e=ie(r).media)==null?void 0:e.audioTracks;!t||(ie(t).trackSet.delete(r),queueMicrotask(()=>{t.dispatchEvent(new jl("removetrack",{track:r}))}))}function k1(r){let e=ie(r).media.audioTracks;!e||ie(e).changeRequested||(ie(e).changeRequested=!0,queueMicrotask(()=>{delete ie(e).changeRequested,e.dispatchEvent(new Event("change"))}))}var is,rs,ss,ea,Bl,nf=class extends EventTarget{constructor(){super(),le(this,ea),le(this,is,void 0),le(this,rs,void 0),le(this,ss,void 0),ie(this).trackSet=new Set}[Symbol.iterator](){return H(this,ea,Bl).values()}get length(){return H(this,ea,Bl).size}getTrackById(r){var e;return(e=[...H(this,ea,Bl)].find(t=>t.id===r))!=null?e:null}get onaddtrack(){return H(this,is)}set onaddtrack(r){H(this,is)&&(this.removeEventListener("addtrack",H(this,is)),ue(this,is,void 0)),typeof r=="function"&&(ue(this,is,r),this.addEventListener("addtrack",r))}get onremovetrack(){return H(this,rs)}set onremovetrack(r){H(this,rs)&&(this.removeEventListener("removetrack",H(this,rs)),ue(this,rs,void 0)),typeof r=="function"&&(ue(this,rs,r),this.addEventListener("removetrack",r))}get onchange(){return H(this,ss)}set onchange(r){H(this,ss)&&(this.removeEventListener("change",H(this,ss)),ue(this,ss,void 0)),typeof r=="function"&&(ue(this,ss,r),this.addEventListener("change",r))}};is=new WeakMap,rs=new WeakMap,ss=new WeakMap,ea=new WeakSet,Bl=function(){return ie(this).trackSet};var ta,fv=class{constructor(){Ge(this,"id"),Ge(this,"kind"),Ge(this,"label",""),Ge(this,"language",""),Ge(this,"sourceBuffer"),le(this,ta,!1)}addRendition(r,e,t){let i=new L1;return i.src=r,i.codec=e,i.bitrate=t,S1(this,i),i}removeRendition(r){x1(r)}get enabled(){return H(this,ta)}set enabled(r){H(this,ta)!==r&&(ue(this,ta,r),k1(this))}};ta=new WeakMap;var lv=Wl(globalThis.HTMLMediaElement,"video"),dv=Wl(globalThis.HTMLMediaElement,"audio");function R1(r){if(!(r!=null&&r.prototype))return r;let e=Wl(r,"video");(!e||`${e}`.includes("[native code]"))&&Object.defineProperty(r.prototype,"videoTracks",{get(){return w1(this)}});let t=Wl(r,"audio");(!t||`${t}`.includes("[native code]"))&&Object.defineProperty(r.prototype,"audioTracks",{get(){return D1(this)}}),"addVideoTrack"in r.prototype||(r.prototype.addVideoTrack=function(n,a="",o=""){let l=new hv;return l.kind=n,l.label=a,l.language=o,Qh(this,l),l}),"removeVideoTrack"in r.prototype||(r.prototype.removeVideoTrack=Zh),"addAudioTrack"in r.prototype||(r.prototype.addAudioTrack=function(n,a="",o=""){let l=new fv;return l.kind=n,l.label=a,l.language=o,rf(this,l),l}),"removeAudioTrack"in r.prototype||(r.prototype.removeAudioTrack=sf),"videoRenditions"in r.prototype||Object.defineProperty(r.prototype,"videoRenditions",{get(){return i(this)}});let i=n=>{let a=ie(n).videoRenditions;return a||(a=new ef,ie(a).media=n,ie(n).videoRenditions=a),a};"audioRenditions"in r.prototype||Object.defineProperty(r.prototype,"audioRenditions",{get(){return s(this)}});let s=n=>{let a=ie(n).audioRenditions;return a||(a=new tf,ie(a).media=n,ie(n).audioRenditions=a),a};return r}function Wl(r,e){var t;if(r!=null&&r.prototype)return(t=Object.getOwnPropertyDescriptor(r.prototype,`${e}Tracks`))==null?void 0:t.get}function w1(r){var e;let t=ie(r).videoTracks;if(!t&&(t=new Jh,ie(r).videoTracks=t,lv)){let i=lv.call((e=r.nativeEl)!=null?e:r);for(let s of i)Qh(r,s);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(n=>n instanceof hv)){for(let n of i)Zh(n);return}Qh(r,s.track)}),i.addEventListener("removetrack",s=>{Zh(s.track)})}return t}function D1(r){var e;let t=ie(r).audioTracks;if(!t&&(t=new nf,ie(r).audioTracks=t,dv)){let i=dv.call((e=r.nativeEl)!=null?e:r);for(let s of i)rf(r,s);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(n=>n instanceof fv)){for(let n of i)sf(n);return}rf(r,s.track)}),i.addEventListener("removetrack",s=>{sf(s.track)})}return t}Yl.push("castchange","entercast","leavecast");var qh=R1(df(Fl.HTMLElement,{tag:"video",is:"castable-video"})),j={BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",CUSTOM_DOMAIN:"custom-domain",DEBUG:"debug",DISABLE_COOKIES:"disable-cookies",ENV_KEY:"env-key",MAX_RESOLUTION:"max-resolution",METADATA_URL:"metadata-url",PLAYBACK_ID:"playback-id",PLAYER_SOFTWARE_NAME:"player-software-name",PLAYER_SOFTWARE_VERSION:"player-software-version",PREFER_CMCD:"prefer-cmcd",PREFER_PLAYBACK:"prefer-playback",START_TIME:"start-time",STREAM_TYPE:"stream-type",TARGET_LIVE_WINDOW:"target-live-window",LIVE_EDGE_OFFSET:"live-edge-offset",TYPE:"type"},C1=Object.values(j),M1=g1(),O1="mux-video",Gi,ia,$l,ra,Hl,Gl,Vl,sa,Kl,af=class extends qh{constructor(){super(),le(this,sa),le(this,Gi,void 0),le(this,ia,void 0),le(this,$l,void 0),le(this,ra,{}),le(this,Hl,void 0),le(this,Gl,void 0),le(this,Vl,void 0),ue(this,$l,Y0())}static get observedAttributes(){var r;return[...C1,...(r=qh.observedAttributes)!=null?r:[]]}get preferCmcd(){var r;return(r=this.getAttribute(j.PREFER_CMCD))!=null?r:void 0}set preferCmcd(r){r!==this.preferCmcd&&(r?Ws.includes(r)?this.setAttribute(j.PREFER_CMCD,r):console.warn(`Invalid value for preferCmcd. Must be one of ${Ws.join()}`):this.removeAttribute(j.PREFER_CMCD))}get playerInitTime(){return H(this,$l)}get playerSoftwareName(){var r;return(r=H(this,Gl))!=null?r:O1}set playerSoftwareName(r){ue(this,Gl,r)}get playerSoftwareVersion(){var r;return(r=H(this,Hl))!=null?r:M1}set playerSoftwareVersion(r){ue(this,Hl,r)}get _hls(){var r;return(r=H(this,Gi))==null?void 0:r.engine}get mux(){var r;return(r=this.nativeEl)==null?void 0:r.mux}get error(){var r;return(r=z0(this.nativeEl))!=null?r:null}get errorTranslator(){return H(this,Vl)}set errorTranslator(r){ue(this,Vl,r)}get src(){return this.getAttribute("src")}set src(r){r!==this.src&&(r==null?this.removeAttribute("src"):this.setAttribute("src",r))}get type(){var r;return(r=this.getAttribute(j.TYPE))!=null?r:void 0}set type(r){r!==this.type&&(r?this.setAttribute(j.TYPE,r):this.removeAttribute(j.TYPE))}get autoplay(){let r=this.getAttribute("autoplay");return r===null?!1:r===""?!0:r}set autoplay(r){let e=this.autoplay;r!==e&&(r?this.setAttribute("autoplay",typeof r=="string"?r:""):this.removeAttribute("autoplay"))}get preload(){let r=this.getAttribute("preload");return r===""?"auto":["none","metadata","auto"].includes(r)?r:super.preload}set preload(r){r!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(r)?this.setAttribute("preload",r):this.removeAttribute("preload"))}get debug(){return this.getAttribute(j.DEBUG)!=null}set debug(r){r!==this.debug&&(r?this.setAttribute(j.DEBUG,""):this.removeAttribute(j.DEBUG))}get disableCookies(){return this.hasAttribute(j.DISABLE_COOKIES)}set disableCookies(r){r!==this.disableCookies&&(r?this.setAttribute(j.DISABLE_COOKIES,""):this.removeAttribute(j.DISABLE_COOKIES))}get startTime(){let r=this.getAttribute(j.START_TIME);if(r==null)return;let e=+r;return Number.isNaN(e)?void 0:e}set startTime(r){r!==this.startTime&&(r==null?this.removeAttribute(j.START_TIME):this.setAttribute(j.START_TIME,`${r}`))}get playbackId(){var r;return(r=this.getAttribute(j.PLAYBACK_ID))!=null?r:void 0}set playbackId(r){r!==this.playbackId&&(r?this.setAttribute(j.PLAYBACK_ID,r):this.removeAttribute(j.PLAYBACK_ID))}get maxResolution(){var r;return(r=this.getAttribute(j.MAX_RESOLUTION))!=null?r:void 0}set maxResolution(r){r!==this.maxResolution&&(r?this.setAttribute(j.MAX_RESOLUTION,r):this.removeAttribute(j.MAX_RESOLUTION))}get customDomain(){var r;return(r=this.getAttribute(j.CUSTOM_DOMAIN))!=null?r:void 0}set customDomain(r){r!==this.customDomain&&(r?this.setAttribute(j.CUSTOM_DOMAIN,r):this.removeAttribute(j.CUSTOM_DOMAIN))}get ended(){return Kh(this.nativeEl,this._hls)}get envKey(){var r;return(r=this.getAttribute(j.ENV_KEY))!=null?r:void 0}set envKey(r){r!==this.envKey&&(r?this.setAttribute(j.ENV_KEY,r):this.removeAttribute(j.ENV_KEY))}get beaconCollectionDomain(){var r;return(r=this.getAttribute(j.BEACON_COLLECTION_DOMAIN))!=null?r:void 0}set beaconCollectionDomain(r){r!==this.beaconCollectionDomain&&(r?this.setAttribute(j.BEACON_COLLECTION_DOMAIN,r):this.removeAttribute(j.BEACON_COLLECTION_DOMAIN))}get streamType(){var r;return(r=this.getAttribute(j.STREAM_TYPE))!=null?r:X0(this.nativeEl)}set streamType(r){r!==this.streamType&&(r?this.setAttribute(j.STREAM_TYPE,r):this.removeAttribute(j.STREAM_TYPE))}get targetLiveWindow(){return this.hasAttribute(j.TARGET_LIVE_WINDOW)?+this.getAttribute(j.TARGET_LIVE_WINDOW):Q0(this.nativeEl)}set targetLiveWindow(r){r!=this.targetLiveWindow&&(r==null?this.removeAttribute(j.TARGET_LIVE_WINDOW):this.setAttribute(j.TARGET_LIVE_WINDOW,`${+r}`))}get liveEdgeStart(){var r,e;if(this.hasAttribute(j.LIVE_EDGE_OFFSET)){let{liveEdgeOffset:t}=this,i=(r=this.nativeEl.seekable.end(0))!=null?r:0,s=(e=this.nativeEl.seekable.start(0))!=null?e:0;return Math.max(s,i-t)}return Z0(this.nativeEl)}get liveEdgeOffset(){if(this.hasAttribute(j.LIVE_EDGE_OFFSET))return+this.getAttribute(j.LIVE_EDGE_OFFSET)}set liveEdgeOffset(r){r!=this.targetLiveWindow&&(r==null?this.removeAttribute(j.LIVE_EDGE_OFFSET):this.setAttribute(j.LIVE_EDGE_OFFSET,`${+r}`))}get seekable(){return Vh(this.nativeEl)}async addCuePoints(r){return Hh(this.nativeEl,r)}get activeCuePoint(){return Gh(this.nativeEl)}get cuePoints(){return G0(this.nativeEl)}getStartDate(){return V0(this.nativeEl,this._hls)}get currentPdt(){return K0(this.nativeEl,this._hls)}get preferPlayback(){let r=this.getAttribute(j.PREFER_PLAYBACK);if(r===di.MSE||r===di.NATIVE)return r}set preferPlayback(r){r!==this.preferPlayback&&(r===di.MSE||r===di.NATIVE?this.setAttribute(j.PREFER_PLAYBACK,r):this.removeAttribute(j.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter(r=>r.startsWith("metadata-")&&![j.METADATA_URL].includes(r)).reduce((r,e)=>{let t=this.getAttribute(e);return t!=null&&(r[e.replace(/^metadata-/,"").replace(/-/g,"_")]=t),r},{}),...H(this,ra)}}set metadata(r){ue(this,ra,r!=null?r:{}),this.mux&&this.mux.emit("hb",H(this,ra))}load(){ue(this,Gi,ev(this,this.nativeEl,H(this,Gi)))}unload(){Wh(this.nativeEl,H(this,Gi)),ue(this,Gi,void 0)}attributeChangedCallback(r,e,t){var i,s;switch(qh.observedAttributes.includes(r)&&!["src","autoplay","preload"].includes(r)&&super.attributeChangedCallback(r,e,t),r){case j.PLAYER_SOFTWARE_NAME:this.playerSoftwareName=t!=null?t:void 0;break;case j.PLAYER_SOFTWARE_VERSION:this.playerSoftwareVersion=t!=null?t:void 0;break;case"src":{let n=!!e,a=!!t;!n&&a?it(this,sa,Kl).call(this):n&&!a?this.unload():n&&a&&(this.unload(),it(this,sa,Kl).call(this));break}case"autoplay":if(t===e)break;(i=H(this,Gi))==null||i.setAutoplay(this.autoplay);break;case"preload":if(t===e)break;(s=H(this,Gi))==null||s.setPreload(t);break;case j.PLAYBACK_ID:this.src=j0(t!=null?t:void 0,{maxResolution:this.maxResolution,domain:this.customDomain});break;case j.DEBUG:{let n=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=n);break}case j.METADATA_URL:t&&fetch(t).then(n=>n.json()).then(n=>this.metadata=n).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${t}!`));break;case j.STREAM_TYPE:(t==null||t!==e)&&this.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}));break;case j.TARGET_LIVE_WINDOW:(t==null||t!==e)&&this.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0,detail:this.targetLiveWindow}));break;default:break}}connectedCallback(){var r;(r=super.connectedCallback)==null||r.call(this),this.nativeEl&&this.src&&!H(this,Gi)&&it(this,sa,Kl).call(this)}disconnectedCallback(){this.unload()}};Gi=new WeakMap,ia=new WeakMap,$l=new WeakMap,ra=new WeakMap,Hl=new WeakMap,Gl=new WeakMap,Vl=new WeakMap,sa=new WeakSet,Kl=async function(){H(this,ia)||(await ue(this,ia,Promise.resolve()),ue(this,ia,null),this.load())};Fl.customElements.get("mux-video")||(Fl.customElements.define("mux-video",af),Fl.MuxVideoElement=af);var mv=af;var P1="en",ns={code:P1};var pv="en";function Re(r,e=!0){var s,n;let t=e&&(n=(s=ns)==null?void 0:s[r])!=null?n:r,i=e?ns.code:pv;return new cf(t,i)}var cf=class{constructor(e,t=(i=>(i=ns.code)!=null?i:pv)()){this.message=e,this.locale=t}format(e){return this.message.replace(/\{(\w+)\}/g,(t,i)=>{var s;return(s=e[i])!=null?s:""})}toString(){return this.message}};function gv(r){let e="";return Object.entries(r).forEach(([t,i])=>{i!=null&&(e+=`${Xl(t)}: ${i}; `)}),e?e.trim():void 0}function Xl(r){return r.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function Ql(r){return r.replace(/[-_]([a-z])/g,(e,t)=>t.toUpperCase())}function Zi(r){if(r==null)return;let e=+r;return Number.isNaN(e)?void 0:e}function Zl(r){let e=N1(r).toString();return e?"?"+e:""}function N1(r){let e={};for(let t in r)r[t]!=null&&(e[t]=r[t]);return new URLSearchParams(e)}function yr(r){let e=(r!=null?r:"").split(".")[1];if(!e)return{};let t=e.replace(/-/g,"+").replace(/_/g,"/"),i=decodeURIComponent(atob(t).split("").map(function(s){return"%"+("00"+s.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(i)}var uf=(r,e)=>!r||!e?!1:r.contains(e)?!0:uf(r,e.getRootNode().host);var hf="mux.com",U1=()=>{try{return"2.0.0"}catch{}return"UNKNOWN"},F1=U1(),ed=()=>F1,ff=(r,{maxResolution:e,token:t,domain:i=hf}={})=>{let a=!!t?{token:t}:{redundant_streams:!0,...e?{max_resolution:e}:{}};return`https://stream.${i}/${r}.m3u8${Zl(a)}`},vv=(r,{token:e,thumbnailTime:t,domain:i=hf}={})=>{let s=e==null?t:void 0,{aud:n}=yr(e);if(!(e&&n!=="t"))return`https://image.${i}/${r}/thumbnail.webp${Zl({token:e,time:s})}`},Ev=(r,{token:e,domain:t=hf}={})=>{let{aud:i}=yr(e);if(!(e&&i!=="s"))return`https://image.${t}/${r}/storyboard.vtt${Zl({token:e,format:"webp"})}`},na=r=>{if(!!r){if([Je.LIVE,Je.ON_DEMAND].includes(r))return r;if(r!=null&&r.includes("live"))return Je.LIVE}};var B1={crossorigin:"crossOrigin",playsinline:"playsInline"};function bv(r){var e;return(e=B1[r])!=null?e:Ql(r)}var as,os,Nt,Jl=class{constructor(e,t){ut(this,as,void 0);ut(this,os,void 0);ut(this,Nt,[]);ii(this,as,e),ii(this,os,t)}[Symbol.iterator](){return Ne(this,Nt).values()}get length(){return Ne(this,Nt).length}get value(){var e;return(e=Ne(this,Nt).join(" "))!=null?e:""}set value(e){var t;e!==this.value&&(ii(this,Nt,[]),this.add(...(t=e==null?void 0:e.split(" "))!=null?t:[]))}toString(){return this.value}item(e){return Ne(this,Nt)[e]}values(){return Ne(this,Nt).values()}keys(){return Ne(this,Nt).keys()}forEach(e){Ne(this,Nt).forEach(e)}add(...e){var t,i;e.forEach(s=>{this.contains(s)||Ne(this,Nt).push(s)}),!(this.value===""&&!((t=Ne(this,as))!=null&&t.hasAttribute(`${Ne(this,os)}`)))&&((i=Ne(this,as))==null||i.setAttribute(`${Ne(this,os)}`,`${this.value}`))}remove(...e){var t;e.forEach(i=>{Ne(this,Nt).splice(Ne(this,Nt).indexOf(i),1)}),(t=Ne(this,as))==null||t.setAttribute(`${Ne(this,os)}`,`${this.value}`)}contains(e){return Ne(this,Nt).includes(e)}toggle(e,t){return typeof t!="undefined"?t?(this.add(e),!0):(this.remove(e),!1):this.contains(e)?(this.remove(e),!1):(this.add(e),!0)}replace(e,t){this.remove(e),this.add(t)}};as=new WeakMap,os=new WeakMap,Nt=new WeakMap;var yv=`[mux-player ${ed()}]`;function Tr(...r){console.warn(yv,...r)}function yi(...r){console.error(yv,...r)}function mf(r){var t;let e=(t=r.message)!=null?t:"";if(r.context&&(e+=` ${r.context}`),r.file){let i="https://github.com/muxinc/elements/blob/main/errors/";e+=` ${Re("Read more: ")}
|
|
1015
|
+
${i}${r.file}`}Tr(e)}var Ot={AUTOPLAY:"autoplay",CROSSORIGIN:"crossorigin",LOOP:"loop",MUTED:"muted",PLAYSINLINE:"playsinline",PRELOAD:"preload"},ls={VOLUME:"volume",PLAYBACKRATE:"playbackrate",MUTED:"muted"},_v=Object.freeze({length:0,start(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(r){let e=r>>>0;if(e>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${e}) is greater than or equal to the maximum bound (${this.length}).`);return 0}}),$1=Yl.filter(r=>r!=="error"),H1=Object.values(Ot).filter(r=>![Ot.PLAYSINLINE].includes(r)),G1=Object.values(ls);function Av(r){r.querySelectorAll(":scope > track").forEach(e=>{var t;(t=r.media)==null||t.append(e.cloneNode())}),$1.forEach(e=>{var t;(t=r.media)==null||t.addEventListener(e,i=>{r.dispatchEvent(new Event(i.type))})})}var pf=class extends nt.HTMLElement{static get observedAttributes(){return[...H1,...G1]}constructor(){super(),this.querySelectorAll(":scope > track").forEach(i=>{var s;(s=this.media)==null||s.append(i.cloneNode())});let e=i=>{for(let s of i)s.type==="childList"&&(s.removedNodes.forEach(n=>{var o,l;let a=(o=this.media)==null?void 0:o.querySelector(`track[src="${n.src}"]`);a&&((l=this.media)==null||l.removeChild(a))}),s.addedNodes.forEach(n=>{var a;(a=this.media)==null||a.append(n.cloneNode())}))};new MutationObserver(e).observe(this,{childList:!0,subtree:!0})}attributeChangedCallback(e,t,i){var s,n;switch(e){case ls.MUTED:{this.media&&(this.media.muted=i!=null,this.media.defaultMuted=i!=null);return}case ls.VOLUME:{let a=(s=Zi(i))!=null?s:1;this.media&&(this.media.volume=a);return}case ls.PLAYBACKRATE:{let a=(n=Zi(i))!=null?n:1;this.media&&(this.media.playbackRate=a,this.media.defaultPlaybackRate=a);return}}}play(){var e,t;return(t=(e=this.media)==null?void 0:e.play())!=null?t:Promise.reject()}pause(){var e;(e=this.media)==null||e.pause()}requestCast(e){var t;return(t=this.media)==null?void 0:t.requestCast(e)}get media(){var e;return(e=this.shadowRoot)==null?void 0:e.querySelector("mux-video")}get audioTracks(){return this.media.audioTracks}get videoTracks(){return this.media.videoTracks}get audioRenditions(){return this.media.audioRenditions}get videoRenditions(){return this.media.videoRenditions}get paused(){var e,t;return(t=(e=this.media)==null?void 0:e.paused)!=null?t:!0}get duration(){var e,t;return(t=(e=this.media)==null?void 0:e.duration)!=null?t:NaN}get ended(){var e,t;return(t=(e=this.media)==null?void 0:e.ended)!=null?t:!1}get buffered(){var e,t;return(t=(e=this.media)==null?void 0:e.buffered)!=null?t:_v}get seekable(){var e,t;return(t=(e=this.media)==null?void 0:e.seekable)!=null?t:_v}get readyState(){var e,t;return(t=(e=this.media)==null?void 0:e.readyState)!=null?t:0}get videoWidth(){var e,t;return(t=(e=this.media)==null?void 0:e.videoWidth)!=null?t:0}get videoHeight(){var e,t;return(t=(e=this.media)==null?void 0:e.videoHeight)!=null?t:0}get currentTime(){var e,t;return(t=(e=this.media)==null?void 0:e.currentTime)!=null?t:0}set currentTime(e){this.media&&(this.media.currentTime=Number(e))}get volume(){var e,t;return(t=(e=this.media)==null?void 0:e.volume)!=null?t:1}set volume(e){this.media&&(this.media.volume=Number(e))}get playbackRate(){var e,t;return(t=(e=this.media)==null?void 0:e.playbackRate)!=null?t:1}set playbackRate(e){this.media&&(this.media.playbackRate=Number(e))}get defaultPlaybackRate(){var e;return(e=Zi(this.getAttribute(ls.PLAYBACKRATE)))!=null?e:1}set defaultPlaybackRate(e){e!=null?this.setAttribute(ls.PLAYBACKRATE,`${e}`):this.removeAttribute(ls.PLAYBACKRATE)}get crossOrigin(){return aa(this,Ot.CROSSORIGIN)}set crossOrigin(e){this.setAttribute(Ot.CROSSORIGIN,`${e}`)}get autoplay(){return aa(this,Ot.AUTOPLAY)!=null}set autoplay(e){e?this.setAttribute(Ot.AUTOPLAY,typeof e=="string"?e:""):this.removeAttribute(Ot.AUTOPLAY)}get loop(){return aa(this,Ot.LOOP)!=null}set loop(e){e?this.setAttribute(Ot.LOOP,""):this.removeAttribute(Ot.LOOP)}get muted(){var e,t;return(t=(e=this.media)==null?void 0:e.muted)!=null?t:!1}set muted(e){this.media&&(this.media.muted=Boolean(e))}get defaultMuted(){return aa(this,Ot.MUTED)!=null}set defaultMuted(e){e?this.setAttribute(Ot.MUTED,""):this.removeAttribute(Ot.MUTED)}get playsInline(){return aa(this,Ot.PLAYSINLINE)!=null}set playsInline(e){yi("playsInline is set to true by default and is not currently supported as a setter.")}get preload(){return this.media?this.media.preload:this.getAttribute("preload")}set preload(e){["","none","metadata","auto"].includes(e)?this.setAttribute(Ot.PRELOAD,e):this.removeAttribute(Ot.PRELOAD)}};function aa(r,e){return r.media?r.media.getAttribute(e):r.getAttribute(e)}var gf=pf;var V1=Object.defineProperty,K1=(r,e,t)=>e in r?V1(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,W1=(r,e,t)=>(K1(r,typeof e!="symbol"?e+"":e,t),t),kv=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Le=(r,e,t)=>(kv(r,e,"read from private field"),t?t.call(r):e.get(r)),Vi=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Ji=(r,e,t,i)=>(kv(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),zs,td,ds,oa,_r,Ar,Sr,cs,Xs,id,Ti,Sv=1,xv=0,q1=1,Y1={processCallback(r,e,t){if(!!t){for(let[i,s]of e)if(i in t){let n=t[i];typeof n=="boolean"&&s instanceof Ut&&typeof s.element[s.attributeName]=="boolean"?s.booleanValue=n:typeof n=="function"&&s instanceof Ut?s.element[s.attributeName]=n:s.value=n}}}},er=class extends w.DocumentFragment{constructor(e,t,i=Y1){var s;super(),Vi(this,zs,void 0),Vi(this,td,void 0),this.append(e.content.cloneNode(!0)),Ji(this,zs,Rv(this)),Ji(this,td,i),(s=i.createCallback)==null||s.call(i,this,Le(this,zs),t),i.processCallback(this,Le(this,zs),t)}update(e){Le(this,td).processCallback(this,Le(this,zs),e)}};zs=new WeakMap;td=new WeakMap;var Rv=(r,e=[])=>{let t,i;for(let s of r.attributes||[])if(s.value.includes("{{")){let n=new vf;for([t,i]of Lv(s.value))if(!t)n.append(i);else{let a=new Ut(r,s.name,s.namespaceURI);n.append(a),e.push([i,a])}s.value=n.toString()}for(let s of r.childNodes)if(s.nodeType===Sv&&!(s instanceof HTMLTemplateElement))Rv(s,e);else if(s.nodeType===Sv||s.data.includes("{{")){let n=[];if(s.data)for([t,i]of Lv(s.data))if(!t)n.push(new Text(i));else{let a=new tr(r);n.push(a),e.push([i,a])}else if(s instanceof HTMLTemplateElement){let a=new la(r,s);n.push(a),e.push([a.expression,a])}s.replaceWith(...n.flatMap(a=>a.replacementNodes||[a]))}return e},Iv={},Lv=r=>{let e="",t=0,i=Iv[r],s=0,n;if(i)return i;for(i=[];n=r[s];s++)n==="{"&&r[s+1]==="{"&&r[s-1]!=="\\"&&r[s+2]&&++t==1?(e&&i.push([xv,e]),e="",s++):n==="}"&&r[s+1]==="}"&&r[s-1]!=="\\"&&!--t?(i.push([q1,e.trim()]),e="",s++):e+=n||"";return e&&i.push([xv,(t>0?"{{":"")+e]),Iv[r]=i},j1=11,rd=class{get value(){return""}set value(e){}toString(){return this.value}},wv=new WeakMap,vf=class{constructor(){Vi(this,ds,[])}[Symbol.iterator](){return Le(this,ds).values()}get length(){return Le(this,ds).length}item(e){return Le(this,ds)[e]}append(...e){for(let t of e)t instanceof Ut&&wv.set(t,this),Le(this,ds).push(t)}toString(){return Le(this,ds).join("")}};ds=new WeakMap;var Ut=class extends rd{constructor(e,t,i){super(),Vi(this,cs),Vi(this,oa,""),Vi(this,_r,void 0),Vi(this,Ar,void 0),Vi(this,Sr,void 0),Ji(this,_r,e),Ji(this,Ar,t),Ji(this,Sr,i)}get attributeName(){return Le(this,Ar)}get attributeNamespace(){return Le(this,Sr)}get element(){return Le(this,_r)}get value(){return Le(this,oa)}set value(e){Le(this,oa)!==e&&(Ji(this,oa,e),!Le(this,cs,Xs)||Le(this,cs,Xs).length===1?e==null?Le(this,_r).removeAttributeNS(Le(this,Sr),Le(this,Ar)):Le(this,_r).setAttributeNS(Le(this,Sr),Le(this,Ar),e):Le(this,_r).setAttributeNS(Le(this,Sr),Le(this,Ar),Le(this,cs,Xs)))}get booleanValue(){return Le(this,_r).hasAttributeNS(Le(this,Sr),Le(this,Ar))}set booleanValue(e){if(!Le(this,cs,Xs)||Le(this,cs,Xs).length===1)this.value=e?"":null;else throw new DOMException("Value is not fully templatized")}};oa=new WeakMap;_r=new WeakMap;Ar=new WeakMap;Sr=new WeakMap;cs=new WeakSet;Xs=function(){return wv.get(this)};var tr=class extends rd{constructor(e,t){super(),Vi(this,id,void 0),Vi(this,Ti,void 0),Ji(this,id,e),Ji(this,Ti,t?[...t]:[new Text])}get replacementNodes(){return Le(this,Ti)}get parentNode(){return Le(this,id)}get nextSibling(){return Le(this,Ti)[Le(this,Ti).length-1].nextSibling}get previousSibling(){return Le(this,Ti)[0].previousSibling}get value(){return Le(this,Ti).map(e=>e.textContent).join("")}set value(e){this.replace(e)}replace(...e){let t=e.flat().flatMap(i=>i==null?[new Text]:i.forEach?[...i]:i.nodeType===j1?[...i.childNodes]:i.nodeType?[i]:[new Text(i)]);t.length||t.push(new Text),Ji(this,Ti,z1(Le(this,Ti)[0].parentNode,Le(this,Ti),t,this.nextSibling))}};id=new WeakMap;Ti=new WeakMap;var la=class extends tr{constructor(e,t){let i=t.getAttribute("directive")||t.getAttribute("type"),s=t.getAttribute("expression")||t.getAttribute(i)||"";s.startsWith("{{")&&(s=s.trim().slice(2,-2).trim()),super(e),W1(this,"directive"),this.expression=s,this.template=t,this.directive=i}};function z1(r,e,t,i=null){let s=0,n,a,o,l=t.length,d=e.length;for(;s<l&&s<d&&e[s]==t[s];)s++;for(;s<l&&s<d&&t[l-1]==e[d-1];)i=t[--d,--l];if(s==d)for(;s<l;)r.insertBefore(t[s++],i);if(s==l)for(;s<d;)r.removeChild(e[s++]);else{for(n=e[s];s<l;)o=t[s++],a=n?n.nextSibling:i,n==o?n=a:s<l&&t[s]==a?(r.replaceChild(o,n),n=a):r.insertBefore(o,n);for(;n!=i;)a=n.nextSibling,r.removeChild(n),n=a}return t}var Dv={string:r=>String(r)},nd=class{constructor(e){this.template=e,this.state=void 0}},us=new WeakMap,hs=new WeakMap,Ef={partial:(r,e)=>{e[r.expression]=new nd(r.template)},if:(r,e)=>{var t;if(Mv(r.expression,e))if(us.get(r)!==r.template){us.set(r,r.template);let i=new er(r.template,e,ad);r.replace(i),hs.set(r,i)}else(t=hs.get(r))==null||t.update(e);else r.replace(""),us.delete(r),hs.delete(r)}},X1=Object.keys(Ef),ad={processCallback(r,e,t){var i,s;if(!!t)for(let[n,a]of e){if(a instanceof la){if(!a.directive){let l=X1.find(d=>a.template.hasAttribute(d));l&&(a.directive=l,a.expression=a.template.getAttribute(l))}(i=Ef[a.directive])==null||i.call(Ef,a,t);continue}let o=Mv(n,t);if(o instanceof nd){us.get(a)!==o.template?(us.set(a,o.template),o=new er(o.template,o.state,ad),a.value=o,hs.set(a,o)):(s=hs.get(a))==null||s.update(o.state);continue}o?(a instanceof Ut&&a.attributeName.startsWith("aria-")&&(o=String(o)),a instanceof Ut?typeof o=="boolean"?a.booleanValue=o:typeof o=="function"?a.element[a.attributeName]=o:a.value=o:(a.value=o,us.delete(a),hs.delete(a))):a instanceof Ut?a.value=void 0:(a.value=void 0,us.delete(a),hs.delete(a))}}},Cv={"!":r=>!r,"!!":r=>!!r,"==":(r,e)=>r==e,"!=":(r,e)=>r!=e,">":(r,e)=>r>e,">=":(r,e)=>r>=e,"<":(r,e)=>r<e,"<=":(r,e)=>r<=e,"??":(r,e)=>r!=null?r:e,"|":(r,e)=>{var t;return(t=Dv[e])==null?void 0:t.call(Dv,r)}};function Q1(r){return Z1(r,{boolean:/true|false/,number:/-?\d+\.?\d*/,string:/(["'])((?:\\.|[^\\])*?)\1/,operator:/[!=><][=!]?|\?\?|\|/,ws:/\s+/,param:/[$a-z_][$\w]*/i}).filter(({type:e})=>e!=="ws")}function Mv(r,e={}){var t,i,s,n,a,o,l;let d=Q1(r);if(d.length===0||d.some(({type:c})=>!c))return da(r);if(((t=d[0])==null?void 0:t.token)===">"){let c=e[(i=d[1])==null?void 0:i.token];if(!c)return da(r);let u={...e};c.state=u;let h=d.slice(2);for(let f=0;f<h.length;f+=3){let g=(s=h[f])==null?void 0:s.token,E=(n=h[f+1])==null?void 0:n.token,T=(a=h[f+2])==null?void 0:a.token;g&&E==="="&&(u[g]=ca(T,e))}return c}if(d.length===1)return sd(d[0])?ca(d[0].token,e):da(r);if(d.length===2){let c=(o=d[0])==null?void 0:o.token,u=Cv[c];if(!u||!sd(d[1]))return da(r);let h=ca(d[1].token,e);return u(h)}if(d.length===3){let c=(l=d[1])==null?void 0:l.token,u=Cv[c];if(!u||!sd(d[0])||!sd(d[2]))return da(r);let h=ca(d[0].token,e);if(c==="|")return u(h,d[2].token);let f=ca(d[2].token,e);return u(h,f)}}function da(r){return console.warn(`Warning: invalid expression \`${r}\``),!1}function sd({type:r}){return["number","boolean","string","param"].includes(r)}function ca(r,e){let t=r[0],i=r.slice(-1);return r==="true"||r==="false"?r==="true":t===i&&["'",'"'].includes(t)?r.slice(1,-1):La(r)?parseFloat(r):e[r]}function Z1(r,e){let t,i,s,n=[];for(;r;){s=null,t=r.length;for(let a in e)i=e[a].exec(r),i&&i.index<t&&(s={token:i[0],type:a,matches:i.slice(1)},t=i.index);t&&n.push({token:r.substr(0,t),type:void 0}),s&&n.push(s),r=r.substr(t+(s?s.token.length:0))}return n}var J1=Object.defineProperty,eS=(r,e,t)=>e in r?J1(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,ha=(r,e,t)=>(eS(r,typeof e!="symbol"?e+"":e,t),t),Sf=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)},Tf=(r,e,t)=>(Sf(r,e,"read from private field"),t?t.call(r):e.get(r)),ua=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},fs=(r,e,t,i)=>(Sf(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),bf=(r,e,t)=>(Sf(r,e,"access private method"),t),Qs,od,Zs,_f,Ov,ld,Af,yf={mediatargetlivewindow:"targetlivewindow",mediastreamtype:"streamtype"},Pv=Y.createElement("template");Pv.innerHTML=`
|
|
1016
1016
|
<style>
|
|
1017
1017
|
:host {
|
|
1018
1018
|
display: inline-block;
|
|
@@ -1036,7 +1036,7 @@ ${i}${r.file}`}Tr(e)}var Ot={AUTOPLAY:"autoplay",CROSSORIGIN:"crossorigin",LOOP:
|
|
|
1036
1036
|
display: none;
|
|
1037
1037
|
}
|
|
1038
1038
|
</style>
|
|
1039
|
-
`;var xr=class extends w.HTMLElement{constructor(){super(),ua(this,_f),ua(this,ld),ha(this,"renderRoot"),ha(this,"renderer"),ua(this,Qs,void 0),ua(this,od,void 0),ua(this,Zs,void 0),this.shadowRoot?this.renderRoot=this.shadowRoot:(this.renderRoot=this.attachShadow({mode:"open"}),this.createRenderer());let e=new MutationObserver(t=>{var i;this.mediaController&&!((i=this.mediaController)!=null&&i.breakpointsComputed)||t.some(s=>{let n=s.target;return n===this?!0:n.localName!=="media-controller"?!1:!!(yf[s.attributeName]||s.attributeName.startsWith("breakpoint"))})&&this.render()});e.observe(this,{attributes:!0}),e.observe(this.renderRoot,{attributes:!0,subtree:!0}),this.addEventListener(Wi.BREAKPOINTS_COMPUTED,this.render),bf(this,_f,Ov).call(this,"template")}get mediaController(){return this.renderRoot.querySelector("media-controller")}get template(){var e;return(e=Tf(this,Qs))!=null?e:this.constructor.template}set template(e){fs(this,Zs,null),fs(this,Qs,e),this.createRenderer()}get props(){var e,t,i;let s=[...Array.from((t=(e=this.mediaController)==null?void 0:e.attributes)!=null?t:[]).filter(({name:a})=>yf[a]||a.startsWith("breakpoint")),...Array.from(this.attributes)],n={};for(let a of s){let o=(i=yf[a.name])!=null?i:pm(a.name),{value:l}=a;l!=null?(La(l)&&(l=parseFloat(l)),n[o]=l===""?!0:l):n[o]=!1}return n}attributeChangedCallback(e,t,i){e==="template"&&t!=i&&bf(this,ld,Af).call(this)}connectedCallback(){bf(this,ld,Af).call(this)}createRenderer(){this.template&&this.template!==Tf(this,od)&&(fs(this,od,this.template),this.renderer=new er(this.template,this.props,this.constructor.processor),this.renderRoot.textContent="",this.renderRoot.append(Pv.content.cloneNode(!0),this.renderer))}render(){var e;(e=this.renderer)==null||e.update(this.props)}};Qs=new WeakMap;od=new WeakMap;Zs=new WeakMap;_f=new WeakSet;Ov=function(r){if(Object.prototype.hasOwnProperty.call(this,r)){let e=this[r];delete this[r],this[r]=e}};ld=new WeakSet;Af=function(){var r;let e=this.getAttribute("template");if(!e||e===Tf(this,Zs))return;let t=this.getRootNode(),i=(r=t==null?void 0:t.getElementById)==null?void 0:r.call(t,e);if(i){fs(this,Zs,e),fs(this,Qs,i),this.createRenderer();return}
|
|
1039
|
+
`;var xr=class extends w.HTMLElement{constructor(){super(),ua(this,_f),ua(this,ld),ha(this,"renderRoot"),ha(this,"renderer"),ua(this,Qs,void 0),ua(this,od,void 0),ua(this,Zs,void 0),this.shadowRoot?this.renderRoot=this.shadowRoot:(this.renderRoot=this.attachShadow({mode:"open"}),this.createRenderer());let e=new MutationObserver(t=>{var i;this.mediaController&&!((i=this.mediaController)!=null&&i.breakpointsComputed)||t.some(s=>{let n=s.target;return n===this?!0:n.localName!=="media-controller"?!1:!!(yf[s.attributeName]||s.attributeName.startsWith("breakpoint"))})&&this.render()});e.observe(this,{attributes:!0}),e.observe(this.renderRoot,{attributes:!0,subtree:!0}),this.addEventListener(Wi.BREAKPOINTS_COMPUTED,this.render),bf(this,_f,Ov).call(this,"template")}get mediaController(){return this.renderRoot.querySelector("media-controller")}get template(){var e;return(e=Tf(this,Qs))!=null?e:this.constructor.template}set template(e){fs(this,Zs,null),fs(this,Qs,e),this.createRenderer()}get props(){var e,t,i;let s=[...Array.from((t=(e=this.mediaController)==null?void 0:e.attributes)!=null?t:[]).filter(({name:a})=>yf[a]||a.startsWith("breakpoint")),...Array.from(this.attributes)],n={};for(let a of s){let o=(i=yf[a.name])!=null?i:pm(a.name),{value:l}=a;l!=null?(La(l)&&(l=parseFloat(l)),n[o]=l===""?!0:l):n[o]=!1}return n}attributeChangedCallback(e,t,i){e==="template"&&t!=i&&bf(this,ld,Af).call(this)}connectedCallback(){bf(this,ld,Af).call(this)}createRenderer(){this.template&&this.template!==Tf(this,od)&&(fs(this,od,this.template),this.renderer=new er(this.template,this.props,this.constructor.processor),this.renderRoot.textContent="",this.renderRoot.append(Pv.content.cloneNode(!0),this.renderer))}render(){var e;(e=this.renderer)==null||e.update(this.props)}};Qs=new WeakMap;od=new WeakMap;Zs=new WeakMap;_f=new WeakSet;Ov=function(r){if(Object.prototype.hasOwnProperty.call(this,r)){let e=this[r];delete this[r],this[r]=e}};ld=new WeakSet;Af=function(){var r;let e=this.getAttribute("template");if(!e||e===Tf(this,Zs))return;let t=this.getRootNode(),i=(r=t==null?void 0:t.getElementById)==null?void 0:r.call(t,e);if(i){fs(this,Zs,e),fs(this,Qs,i),this.createRenderer();return}tS(e)&&(fs(this,Zs,e),iS(e).then(s=>{let n=Y.createElement("template");n.innerHTML=s,fs(this,Qs,n),this.createRenderer()}).catch(console.error))};ha(xr,"template");ha(xr,"observedAttributes",["template"]);ha(xr,"processor",ad);function tS(r){if(!/^(\/|\.\/|https?:\/\/)/.test(r))return!1;let e=/^https?:\/\//.test(r)?void 0:location.origin;try{new URL(r,e)}catch{return!1}return!0}async function iS(r){let e=await fetch(r);if(e.status!==200)throw new Error(`Failed to load resource: the server responded with a status of ${e.status}`);return e.text()}w.customElements.get("media-theme")||w.customElements.define("media-theme",xr);var Nv=`:host {
|
|
1040
1040
|
--media-control-display: var(--controls);
|
|
1041
1041
|
--media-loading-indicator-display: var(--loading-indicator);
|
|
1042
1042
|
--media-dialog-display: var(--dialog);
|
|
@@ -1230,7 +1230,7 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1230
1230
|
<div class="dialog">
|
|
1231
1231
|
<slot></slot>
|
|
1232
1232
|
</div>
|
|
1233
|
-
`;var Ir=class extends nt.HTMLElement{constructor(){var t;super();this.attachShadow({mode:"open"}),(t=this.shadowRoot)==null||t.appendChild(this.constructor.template.content.cloneNode(!0))}show(){this.setAttribute("open",""),this.dispatchEvent(new CustomEvent("open",{composed:!0,bubbles:!0})),Uv(this)}close(){!this.hasAttribute("open")||(this.removeAttribute("open"),this.dispatchEvent(new CustomEvent("close",{composed:!0,bubbles:!0})),
|
|
1233
|
+
`;var Ir=class extends nt.HTMLElement{constructor(){var t;super();this.attachShadow({mode:"open"}),(t=this.shadowRoot)==null||t.appendChild(this.constructor.template.content.cloneNode(!0))}show(){this.setAttribute("open",""),this.dispatchEvent(new CustomEvent("open",{composed:!0,bubbles:!0})),Uv(this)}close(){!this.hasAttribute("open")||(this.removeAttribute("open"),this.dispatchEvent(new CustomEvent("close",{composed:!0,bubbles:!0})),sS(this))}attributeChangedCallback(t,i,s){t==="open"&&i!==s&&(s!=null?this.show():this.close())}connectedCallback(){this.hasAttribute("role")||this.setAttribute("role","dialog"),this.hasAttribute("open")&&Uv(this)}};Ir.styles=Fv,Ir.template=Bv,Ir.observedAttributes=["open"];function Uv(r){let e=new CustomEvent("initfocus",{composed:!0,bubbles:!0,cancelable:!0});if(r.dispatchEvent(e),e.defaultPrevented)return;let t=r.querySelector("[autofocus]:not([disabled])");!t&&r.tabIndex>=0&&(t=r),t||(t=$v(r.shadowRoot)),r._previouslyFocusedElement=Xt.activeElement,Xt.activeElement instanceof HTMLElement&&Xt.activeElement.blur(),r.addEventListener("transitionend",()=>{t instanceof HTMLElement&&t.focus({preventScroll:!0})},{once:!0})}function $v(r){let t=["button","input","keygen","select","textarea"].map(function(s){return s+":not([disabled])"});t.push('[tabindex]:not([disabled]):not([tabindex=""])');let i=r==null?void 0:r.querySelector(t.join(", "));if(!i&&"attachShadow"in Element.prototype){let s=(r==null?void 0:r.querySelectorAll("*"))||[];for(let n=0;n<s.length&&!(s[n].tagName&&s[n].shadowRoot&&(i=$v(s[n].shadowRoot),i));n++);}return i}function sS(r){r._previouslyFocusedElement instanceof HTMLElement&&r._previouslyFocusedElement.focus()}nt.customElements.get("media-dialog")||(nt.customElements.define("media-dialog",Ir),nt.MediaDialog=Ir);var xf=Ir;var Hv=Xt.createElement("template");Hv.innerHTML=`
|
|
1234
1234
|
<style>
|
|
1235
1235
|
${xf.styles}
|
|
1236
1236
|
|
|
@@ -1261,16 +1261,16 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1261
1261
|
</svg>
|
|
1262
1262
|
</button>
|
|
1263
1263
|
</slot>
|
|
1264
|
-
`;var fa=class extends xf{constructor(){var e,t;super(),(t=(e=this.shadowRoot)==null?void 0:e.querySelector(".close"))==null||t.addEventListener("click",()=>{this.close()})}};fa.template=
|
|
1264
|
+
`;var fa=class extends xf{constructor(){var e,t;super(),(t=(e=this.shadowRoot)==null?void 0:e.querySelector(".close"))==null||t.addEventListener("click",()=>{this.close()})}};fa.template=Hv;nt.customElements.get("mxp-dialog")||(nt.customElements.define("mxp-dialog",fa),nt.MxpDialog=fa);var ma=new WeakMap,pa=class{constructor(e,t){this.element=e;this.type=t;this.element.addEventListener(this.type,this);let i=ma.get(this.element);i&&i.set(this.type,this)}set(e){if(typeof e=="function")this.handleEvent=e.bind(this.element);else if(typeof e=="object"&&typeof e.handleEvent=="function")this.handleEvent=e.handleEvent.bind(e);else{this.element.removeEventListener(this.type,this);let t=ma.get(this.element);t&&t.delete(this.type)}}static for(e){ma.has(e.element)||ma.set(e.element,new Map);let t=e.attributeName.slice(2),i=ma.get(e.element);return i&&i.has(t)?i.get(t):new pa(e.element,t)}};function nS(r,e){return r instanceof Ut&&r.attributeName.startsWith("on")?(pa.for(r).set(e),r.element.removeAttributeNS(r.attributeNamespace,r.attributeName),!0):!1}function aS(r,e){return e instanceof dd&&r instanceof tr?(e.renderInto(r),!0):!1}function oS(r,e){return e instanceof DocumentFragment&&r instanceof tr?(e.childNodes.length&&r.replace(...e.childNodes),!0):!1}function lS(r,e){if(r instanceof Ut){let t=r.attributeNamespace,i=r.element.getAttributeNS(t,r.attributeName);return String(e)!==i&&(r.value=String(e)),!0}return r.value=String(e),!0}function dS(r,e){if(r instanceof Ut&&e instanceof Element){let t=r.element;return t[r.attributeName]!==e&&(r.element.removeAttributeNS(r.attributeNamespace,r.attributeName),t[r.attributeName]=e),!0}return!1}function cS(r,e){if(typeof e=="boolean"&&r instanceof Ut){let t=r.attributeNamespace,i=r.element.hasAttributeNS(t,r.attributeName);return e!==i&&(r.booleanValue=e),!0}return!1}function uS(r,e){return e===!1&&r instanceof tr?(r.replace(""),!0):!1}function hS(r,e){dS(r,e)||cS(r,e)||nS(r,e)||uS(r,e)||aS(r,e)||oS(r,e)||lS(r,e)}var If=new Map,Gv=new WeakMap,Vv=new WeakMap,dd=class{constructor(e,t,i){this.strings=e;this.values=t;this.processor=i;this.stringsKey=this.strings.join("")}get template(){if(If.has(this.stringsKey))return If.get(this.stringsKey);{let e=Xt.createElement("template"),t=this.strings.length-1;return e.innerHTML=this.strings.reduce((i,s,n)=>i+s+(n<t?`{{ ${n} }}`:""),""),If.set(this.stringsKey,e),e}}renderInto(e){var s;let t=this.template;if(Gv.get(e)!==t){Gv.set(e,t);let n=new er(t,this.values,this.processor);Vv.set(e,n),e instanceof tr?e.replace(...n.children):e.appendChild(n);return}let i=Vv.get(e);(s=i==null?void 0:i.update)==null||s.call(i,this.values)}},fS={processCallback(r,e,t){var i;if(!!t){for(let[s,n]of e)if(s in t){let a=(i=t[s])!=null?i:"";hS(n,a)}}}};function ir(r,...e){return new dd(r,e,fS)}function Kv(r,e){r.renderInto(e)}var Wv=r=>ir`
|
|
1265
1265
|
<style>
|
|
1266
1266
|
${Nv}
|
|
1267
1267
|
</style>
|
|
1268
|
-
${
|
|
1269
|
-
`,
|
|
1268
|
+
${pS(r)}
|
|
1269
|
+
`,mS=r=>{let e=r.hotKeys?`${r.hotKeys}`:"";return na(r.streamType)==="live"&&(e+=" noarrowleft noarrowright"),e},pS=r=>{var e,t,i,s,n,a,o,l,d,c,u,h,f,g,E,T,A,k,L,N,D,$,O,G,q,P,X,z,Ae,Ee,be,we,Se,Z;return ir`
|
|
1270
1270
|
<media-theme
|
|
1271
1271
|
template="${r.themeTemplate||!1}"
|
|
1272
1272
|
defaultstreamtype="${(e=r.defaultStreamType)!=null?e:!1}"
|
|
1273
|
-
hotkeys="${
|
|
1273
|
+
hotkeys="${mS(r)||!1}"
|
|
1274
1274
|
nohotkeys="${r.noHotKeys||!r.hasSrc||r.isDialogOpen||!1}"
|
|
1275
1275
|
noautoseektolive="${!!((t=r.streamType)!=null&&t.includes(Je.LIVE))&&r.targetLiveWindow!==0}"
|
|
1276
1276
|
novolumepref="${r.novolumepref||!1}"
|
|
@@ -1303,7 +1303,7 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1303
1303
|
start-time="${r.startTime!=null?r.startTime:!1}"
|
|
1304
1304
|
beacon-collection-domain="${($=r.beaconCollectionDomain)!=null?$:!1}"
|
|
1305
1305
|
player-software-name="${(O=r.playerSoftwareName)!=null?O:!1}"
|
|
1306
|
-
player-software-version="${(
|
|
1306
|
+
player-software-version="${(G=r.playerSoftwareVersion)!=null?G:!1}"
|
|
1307
1307
|
env-key="${(q=r.envKey)!=null?q:!1}"
|
|
1308
1308
|
custom-domain="${(P=r.customDomain)!=null?P:!1}"
|
|
1309
1309
|
src="${r.src?r.src:r.playbackId?ff(r.playbackId,{maxResolution:r.maxResolution,domain:r.customDomain,token:r.tokens.playback}):!1}"
|
|
@@ -1339,31 +1339,41 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1339
1339
|
</p>
|
|
1340
1340
|
</mxp-dialog>
|
|
1341
1341
|
</media-theme>
|
|
1342
|
-
`};function cd(r,e,t,i,s){var o,l,d;let n={},a={};switch(r.code){case tt.MEDIA_ERR_NETWORK:{switch(n.title=Re("Network Error",s),n.message=r.message,(o=r.data)==null?void 0:o.response.code){case 412:{n.title=Re("Video is not currently available",s),n.message=Re("The live stream or video file are not yet ready.",s),a.message=Re("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",s),a.file="412-not-playable.md";break}case 404:{n.title=Re("Video does not exist",s),n.message="",a.message=Re("This playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",s),a.file="404-not-found.md";break}case 403:{if(n.title=Re("Invalid playback URL",s),n.message=Re("The video URL or playback-token are formatted with incorrect or incomplete information.",s),a.message=Re("403 error trying to access this playback URL. If this is a signed URL, you might need to provide a playback-token.",s),a.file="missing-signed-tokens.md",!i)break;let{exp:c,aud:u,sub:h}=yr(i),f=Date.now()>c*1e3,g=h!==t,E=u!=="v",T={timeStyle:"medium",dateStyle:"medium"};if(f){n.title=Re("Video URL has expired",s),n.message=Re("The video\u2019s secured playback-token has expired.",s),a.message=Re("The video\u2019s secured playback-token has expired.",s),a.context=Re("Expired at: {expiredDate}. Current time: {currentDate}.",s).format({expiredDate:new Intl.DateTimeFormat(ns.code,T).format(c*1e3),currentDate:new Intl.DateTimeFormat(ns.code,T).format(Date.now())}),a.file="403-expired-token.md";break}if(g){n.title=Re("Video URL is formatted incorrectly",s),n.message=Re("The video\u2019s playback ID does not match the one encoded in the playback-token.",s),a.message=Re("The video\u2019s playback ID does not match the one encoded in the playback-token.",s),a.context=Re("Specified playback ID: {playbackId} and the playback ID encoded in the playback-token: {tokenPlaybackId}",s).format({playbackId:t,tokenPlaybackId:h}),a.file="403-playback-id-mismatch.md";break}if(E){n.title=Re("Video URL is formatted incorrectly",s),n.message=Re("The playback-token is formatted with incorrect information.",s),a.message=Re("The playback-token is formatted with incorrect information.",s),a.context=Re("The playback-token has an incorrect aud value: {tokenType}. aud value should be v.",s).format({tokenType:u}),a.file="403-incorrect-aud-value.md";break}a.message=Re("403 error trying to access this playback URL. If this is a signed playback ID, the token might not have been generated correctly.",s),a.file="403-malformatted-token.md";break}}break}case tt.MEDIA_ERR_DECODE:{let{message:c}=r;n={title:Re("Media Error",s),message:c},a.file="media-decode-error.md";break}case tt.MEDIA_ERR_SRC_NOT_SUPPORTED:{let c=(d=(l=r.data)==null?void 0:l.response)==null?void 0:d.code;if(c>=400&&c<500){r.code=tt.MEDIA_ERR_NETWORK,r.data={response:{code:c}},{dialog:n,devlog:a}=cd(r,e,t,i);break}n={title:Re("Source Not Supported",s),message:r.message},a.file="media-src-not-supported.md";break}default:n={title:Re("Error",s),message:r.message};break}return e&&(n={title:Re("Your device appears to be offline",s),message:Re("Check your internet connection and try reloading this video.",s)}),{dialog:n,devlog:a}}var qv
|
|
1343
|
-
<template id="media-theme-classic">
|
|
1342
|
+
`};function cd(r,e,t,i,s){var o,l,d;let n={},a={};switch(r.code){case tt.MEDIA_ERR_NETWORK:{switch(n.title=Re("Network Error",s),n.message=r.message,(o=r.data)==null?void 0:o.response.code){case 412:{n.title=Re("Video is not currently available",s),n.message=Re("The live stream or video file are not yet ready.",s),a.message=Re("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",s),a.file="412-not-playable.md";break}case 404:{n.title=Re("Video does not exist",s),n.message="",a.message=Re("This playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",s),a.file="404-not-found.md";break}case 403:{if(n.title=Re("Invalid playback URL",s),n.message=Re("The video URL or playback-token are formatted with incorrect or incomplete information.",s),a.message=Re("403 error trying to access this playback URL. If this is a signed URL, you might need to provide a playback-token.",s),a.file="missing-signed-tokens.md",!i)break;let{exp:c,aud:u,sub:h}=yr(i),f=Date.now()>c*1e3,g=h!==t,E=u!=="v",T={timeStyle:"medium",dateStyle:"medium"};if(f){n.title=Re("Video URL has expired",s),n.message=Re("The video\u2019s secured playback-token has expired.",s),a.message=Re("The video\u2019s secured playback-token has expired.",s),a.context=Re("Expired at: {expiredDate}. Current time: {currentDate}.",s).format({expiredDate:new Intl.DateTimeFormat(ns.code,T).format(c*1e3),currentDate:new Intl.DateTimeFormat(ns.code,T).format(Date.now())}),a.file="403-expired-token.md";break}if(g){n.title=Re("Video URL is formatted incorrectly",s),n.message=Re("The video\u2019s playback ID does not match the one encoded in the playback-token.",s),a.message=Re("The video\u2019s playback ID does not match the one encoded in the playback-token.",s),a.context=Re("Specified playback ID: {playbackId} and the playback ID encoded in the playback-token: {tokenPlaybackId}",s).format({playbackId:t,tokenPlaybackId:h}),a.file="403-playback-id-mismatch.md";break}if(E){n.title=Re("Video URL is formatted incorrectly",s),n.message=Re("The playback-token is formatted with incorrect information.",s),a.message=Re("The playback-token is formatted with incorrect information.",s),a.context=Re("The playback-token has an incorrect aud value: {tokenType}. aud value should be v.",s).format({tokenType:u}),a.file="403-incorrect-aud-value.md";break}a.message=Re("403 error trying to access this playback URL. If this is a signed playback ID, the token might not have been generated correctly.",s),a.file="403-malformatted-token.md";break}}break}case tt.MEDIA_ERR_DECODE:{let{message:c}=r;n={title:Re("Media Error",s),message:c},a.file="media-decode-error.md";break}case tt.MEDIA_ERR_SRC_NOT_SUPPORTED:{let c=(d=(l=r.data)==null?void 0:l.response)==null?void 0:d.code;if(c>=400&&c<500){r.code=tt.MEDIA_ERR_NETWORK,r.data={response:{code:c}},{dialog:n,devlog:a}=cd(r,e,t,i);break}n={title:Re("Source Not Supported",s),message:r.message},a.file="media-src-not-supported.md";break}default:n={title:Re("Error",s),message:r.message};break}return e&&(n={title:Re("Your device appears to be offline",s),message:Re("Check your internet connection and try reloading this video.",s)}),{dialog:n,devlog:a}}var qv=`<template id="media-theme-gerwig">
|
|
1344
1343
|
<style>
|
|
1344
|
+
@keyframes pre-play-hide {
|
|
1345
|
+
0% {
|
|
1346
|
+
transform: scale(1);
|
|
1347
|
+
opacity: 1;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
30% {
|
|
1351
|
+
transform: scale(0.7);
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
100% {
|
|
1355
|
+
transform: scale(1.5);
|
|
1356
|
+
opacity: 0;
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1345
1360
|
:host {
|
|
1346
|
-
--_primary-color: var(--media-primary-color,
|
|
1347
|
-
--_secondary-color: var(--media-secondary-color,
|
|
1361
|
+
--_primary-color: var(--media-primary-color, #fff);
|
|
1362
|
+
--_secondary-color: var(--media-secondary-color, transparent);
|
|
1363
|
+
--_accent-color: var(--media-accent-color, #fa50b5);
|
|
1364
|
+
--_text-color: var(--media-text-color, #000);
|
|
1348
1365
|
|
|
1349
1366
|
--media-icon-color: var(--_primary-color);
|
|
1350
|
-
--media-range-thumb-background: var(--_primary-color);
|
|
1351
|
-
--media-range-bar-color: var(--_primary-color);
|
|
1352
1367
|
--media-control-background: var(--_secondary-color);
|
|
1353
|
-
--media-control-hover-background: var(--
|
|
1354
|
-
--media-time-
|
|
1355
|
-
--media-range-track-background:
|
|
1356
|
-
linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
|
|
1357
|
-
linear-gradient(rgba(20, 20, 30, 0.7), rgba(20, 20, 30, 0.7));
|
|
1368
|
+
--media-control-hover-background: var(--_accent-color);
|
|
1369
|
+
--media-time-buffered-color: rgba(255, 255, 255, 0.4);
|
|
1358
1370
|
--media-preview-thumbnail-border: 0;
|
|
1359
1371
|
--media-preview-thumbnail-border-radius: 2px 2px 0 0;
|
|
1360
1372
|
--media-preview-time-border-radius: 0 0 2px 2px;
|
|
1361
1373
|
--media-preview-time-margin: 0 0 8px;
|
|
1362
1374
|
--media-preview-time-text-shadow: none;
|
|
1363
|
-
--media-
|
|
1364
|
-
--media-
|
|
1365
|
-
--media-listbox-transform-out: translateY(-6px) scale(.99);
|
|
1366
|
-
--media-option-hover-background: rgba(255, 255, 255, 0.28);
|
|
1375
|
+
--media-control-height: 14px;
|
|
1376
|
+
--media-control-padding: 6px;
|
|
1367
1377
|
|
|
1368
1378
|
color: var(--_primary-color);
|
|
1369
1379
|
display: inline-block;
|
|
@@ -1397,27 +1407,109 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1397
1407
|
width: 100%;
|
|
1398
1408
|
}
|
|
1399
1409
|
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
}
|
|
1405
|
-
|
|
1406
|
-
/* 0.433s is the transition duration for VTT Regions.
|
|
1407
|
-
* Borrowed here, so the captions don't move too fast. */
|
|
1410
|
+
/*
|
|
1411
|
+
* 0.433s is the transition duration for VTT Regions.
|
|
1412
|
+
* Borrowed here, so the captions don't move too fast.
|
|
1413
|
+
*/
|
|
1408
1414
|
media-controller ::slotted([slot='media']) {
|
|
1409
1415
|
--media-webkit-text-track-transition: transform 0.433s ease-out 0.3s;
|
|
1410
1416
|
}
|
|
1411
|
-
media-controller:is([mediapaused]
|
|
1412
|
-
|
|
1413
|
-
* with an additional 5px as a buffer, to get 47px */
|
|
1414
|
-
--media-webkit-text-track-transform: translateY(-47px);
|
|
1417
|
+
media-controller:is([mediapaused], :not([userinactive])) ::slotted([slot='media']) {
|
|
1418
|
+
--media-webkit-text-track-transform: translateY(-50px);
|
|
1415
1419
|
--media-webkit-text-track-transition: transform 0.15s ease;
|
|
1416
1420
|
}
|
|
1417
1421
|
|
|
1418
|
-
|
|
1419
|
-
color: var(--
|
|
1420
|
-
--media-range-
|
|
1422
|
+
media-time-range {
|
|
1423
|
+
--media-range-bar-color: var(--_accent-color);
|
|
1424
|
+
--media-time-range-buffered-color: var(--_primary-color);
|
|
1425
|
+
--media-range-track-color: transparent;
|
|
1426
|
+
--media-range-track-background: rgba(255, 255, 255, 0.4);
|
|
1427
|
+
--media-range-thumb-background: radial-gradient(
|
|
1428
|
+
circle,
|
|
1429
|
+
#000 0%,
|
|
1430
|
+
#000 25%,
|
|
1431
|
+
var(--_accent-color) 25%,
|
|
1432
|
+
var(--_accent-color)
|
|
1433
|
+
);
|
|
1434
|
+
--media-range-thumb-width: 0;
|
|
1435
|
+
--media-range-thumb-height: 0;
|
|
1436
|
+
--media-range-thumb-transition: all 0.3s;
|
|
1437
|
+
--media-range-thumb-opacity: 1;
|
|
1438
|
+
--media-preview-thumbnail-background: var(--_primary-color);
|
|
1439
|
+
--media-preview-thumbnail-border: 5px solid var(--_primary-color);
|
|
1440
|
+
--media-preview-thumbnail-border-radius: 5px 5px 0 0;
|
|
1441
|
+
--media-preview-time-background: var(--_primary-color);
|
|
1442
|
+
--media-preview-time-border-radius: 0 0 5px 5px;
|
|
1443
|
+
--media-preview-time-margin: 0 0 10px;
|
|
1444
|
+
--media-preview-time-padding: 2px 0 6px;
|
|
1445
|
+
--media-text-color: var(--_text-color);
|
|
1446
|
+
--media-preview-thumbnail-max-width: 150px;
|
|
1447
|
+
--media-range-track-pointer-border-right: 2px solid #000;
|
|
1448
|
+
--media-control-hover-background: transparent;
|
|
1449
|
+
color: var(--_accent-color);
|
|
1450
|
+
padding: 0 6px;
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
:host([audio]) media-time-range {
|
|
1454
|
+
--media-preview-time-border-radius: 5px;
|
|
1455
|
+
--media-preview-time-padding: 5px;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
media-time-range:hover {
|
|
1459
|
+
--media-range-thumb-width: 12px;
|
|
1460
|
+
--media-range-thumb-height: 12px;
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
media-time-range::part(preview-box)::after {
|
|
1464
|
+
position: absolute;
|
|
1465
|
+
content: '';
|
|
1466
|
+
width: 0;
|
|
1467
|
+
height: 0;
|
|
1468
|
+
border-style: solid;
|
|
1469
|
+
border-width: 10px 8.5px 0 8.5px;
|
|
1470
|
+
border-color: var(--_primary-color) transparent transparent transparent;
|
|
1471
|
+
top: 100%;
|
|
1472
|
+
left: 50%;
|
|
1473
|
+
transform: translate(-50%, -10px);
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
:is(media-captions-listbox, media-rendition-listbox, media-audio-track-listbox)::part(indicator) {
|
|
1477
|
+
fill: var(--_accent-color);
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
:is(media-captions-listbox, media-rendition-listbox, media-audio-track-listbox)::part(option) {
|
|
1481
|
+
display: flex;
|
|
1482
|
+
align-items: center;
|
|
1483
|
+
padding: 8px 10px;
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
:is(media-captions-listbox, media-rendition-listbox, media-audio-track-listbox)::part(option-selected) {
|
|
1487
|
+
font-weight: 700;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
media-captions-listbox,
|
|
1491
|
+
media-rendition-listbox,
|
|
1492
|
+
media-audio-track-listbox {
|
|
1493
|
+
border-radius: 2px;
|
|
1494
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
1495
|
+
bottom: calc(100% + 16px);
|
|
1496
|
+
padding: 10px;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
media-captions-selectmenu,
|
|
1500
|
+
media-rendition-selectmenu,
|
|
1501
|
+
media-audio-track-selectmenu {
|
|
1502
|
+
--media-listbox-background: var(--_primary-color);
|
|
1503
|
+
--media-option-selected-background: transparent;
|
|
1504
|
+
--media-option-hover-background: transparent;
|
|
1505
|
+
--media-option-hover-outline: var(--_accent-color) solid 1px;
|
|
1506
|
+
--media-text-color: var(--_text-color);
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
/* The icon is a circle so make it 16px high instead of 14px for more balance. */
|
|
1510
|
+
media-audio-track-selectmenu {
|
|
1511
|
+
--media-control-padding: 5px;
|
|
1512
|
+
--media-control-height: 16px;
|
|
1421
1513
|
}
|
|
1422
1514
|
|
|
1423
1515
|
:host(:not([audio])) media-time-range {
|
|
@@ -1429,24 +1521,12 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1429
1521
|
width: 100%;
|
|
1430
1522
|
}
|
|
1431
1523
|
|
|
1432
|
-
media-control-bar {
|
|
1433
|
-
--media-control-padding: 4px 3px;
|
|
1434
|
-
}
|
|
1435
|
-
|
|
1436
|
-
[breakpointsm] media-control-bar {
|
|
1437
|
-
--media-control-padding: 9px 5px;
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
|
-
[breakpointmd] media-control-bar {
|
|
1441
|
-
--media-control-padding: 9px 7px;
|
|
1442
|
-
}
|
|
1443
|
-
|
|
1444
1524
|
media-control-bar :is([role='button'], [role='switch'], button) {
|
|
1445
1525
|
line-height: 0;
|
|
1446
1526
|
}
|
|
1447
1527
|
|
|
1448
|
-
media-control-bar :is(
|
|
1449
|
-
|
|
1528
|
+
media-control-bar :is([part*='button'], [part*='range'], [part*='display']) {
|
|
1529
|
+
border-radius: 3px;
|
|
1450
1530
|
}
|
|
1451
1531
|
|
|
1452
1532
|
.spacer {
|
|
@@ -1454,29 +1534,41 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1454
1534
|
background-color: var(--media-control-background, rgba(20, 20, 30, 0.7));
|
|
1455
1535
|
}
|
|
1456
1536
|
|
|
1457
|
-
|
|
1458
|
-
* fullscreen button aligned in relation to the progress bar. */
|
|
1459
|
-
media-control-bar:not([slot])::after {
|
|
1460
|
-
content: '';
|
|
1461
|
-
width: 2px;
|
|
1462
|
-
height: 100%;
|
|
1463
|
-
background-color: var(--media-control-background, rgba(20, 20, 30, 0.7));
|
|
1464
|
-
}
|
|
1465
|
-
|
|
1466
|
-
media-control-bar[slot='top-chrome'] {
|
|
1537
|
+
media-control-bar[slot~='top-chrome'] {
|
|
1467
1538
|
min-height: 42px;
|
|
1468
1539
|
pointer-events: none;
|
|
1469
1540
|
}
|
|
1470
1541
|
|
|
1471
|
-
:host([title]) media-control-bar[slot='top-chrome']::before {
|
|
1542
|
+
:host([title]:not([audio])) media-control-bar[slot='top-chrome']::before {
|
|
1472
1543
|
content: '';
|
|
1473
1544
|
position: absolute;
|
|
1474
1545
|
width: 100%;
|
|
1475
|
-
padding-bottom: min(
|
|
1476
|
-
background: linear-gradient(
|
|
1546
|
+
padding-bottom: min(100px, 25%);
|
|
1547
|
+
background: linear-gradient(#000, transparent);
|
|
1548
|
+
opacity: 0.8;
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
:host(:not([audio])) media-control-bar[part~='bottom']::before {
|
|
1552
|
+
content: '';
|
|
1553
|
+
position: absolute;
|
|
1554
|
+
width: 100%;
|
|
1555
|
+
bottom: 0;
|
|
1556
|
+
left: 0;
|
|
1557
|
+
padding-bottom: min(100px, 25%);
|
|
1558
|
+
background: linear-gradient(transparent, #000);
|
|
1559
|
+
opacity: 0.8;
|
|
1560
|
+
z-index: 1;
|
|
1477
1561
|
}
|
|
1478
1562
|
|
|
1479
|
-
media-control-bar[
|
|
1563
|
+
media-control-bar[part~='bottom'] > * {
|
|
1564
|
+
z-index: 2;
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
media-control-bar[part~='bottom'] {
|
|
1568
|
+
padding: 6px 6px;
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
media-control-bar[slot~='top-chrome'] > * {
|
|
1480
1572
|
--media-control-background: transparent;
|
|
1481
1573
|
--media-control-hover-background: transparent;
|
|
1482
1574
|
position: relative;
|
|
@@ -1510,8 +1602,18 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1510
1602
|
.center-controls media-play-button {
|
|
1511
1603
|
--media-control-background: transparent;
|
|
1512
1604
|
--media-control-hover-background: transparent;
|
|
1513
|
-
padding: 0;
|
|
1514
|
-
width:
|
|
1605
|
+
--media-control-padding: 0;
|
|
1606
|
+
width: 40px;
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
[breakpointsm] .center-controls media-play-button {
|
|
1610
|
+
width: 90px;
|
|
1611
|
+
height: 90px;
|
|
1612
|
+
border-radius: 50%;
|
|
1613
|
+
transition: background 0.4s;
|
|
1614
|
+
padding: 24px;
|
|
1615
|
+
--media-control-background: #000;
|
|
1616
|
+
--media-control-hover-background: var(--_accent-color);
|
|
1515
1617
|
}
|
|
1516
1618
|
|
|
1517
1619
|
.center-controls media-seek-backward-button,
|
|
@@ -1519,16 +1621,74 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1519
1621
|
--media-control-background: transparent;
|
|
1520
1622
|
--media-control-hover-background: transparent;
|
|
1521
1623
|
padding: 0;
|
|
1522
|
-
margin: 0
|
|
1624
|
+
margin: 0 20px;
|
|
1523
1625
|
width: max(33px, min(8%, 40px));
|
|
1524
1626
|
}
|
|
1525
1627
|
|
|
1526
|
-
|
|
1527
|
-
|
|
1628
|
+
[breakpointsm]:not([audio]) .center-controls.pre-playback {
|
|
1629
|
+
display: grid;
|
|
1630
|
+
align-items: initial;
|
|
1631
|
+
justify-content: initial;
|
|
1632
|
+
height: 100%;
|
|
1633
|
+
overflow: hidden;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
[breakpointsm]:not([audio]) .center-controls.pre-playback media-play-button {
|
|
1637
|
+
place-self: var(--_pre-playback-place, center);
|
|
1638
|
+
grid-area: 1 / 1;
|
|
1639
|
+
margin: 16px;
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
/* Show and hide controls or pre-playback state */
|
|
1643
|
+
|
|
1644
|
+
[breakpointsm]:is([mediahasplayed], :not([mediapaused])):not([audio])
|
|
1645
|
+
.center-controls.pre-playback
|
|
1646
|
+
media-play-button {
|
|
1647
|
+
animation: 0.3s linear forwards pre-play-hide;
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
.autoplay-unmute {
|
|
1651
|
+
--media-control-hover-background: transparent;
|
|
1652
|
+
width: 100%;
|
|
1653
|
+
display: flex;
|
|
1654
|
+
align-items: center;
|
|
1655
|
+
justify-content: center;
|
|
1656
|
+
filter: drop-shadow(0 0 2px rgb(0 0 0 / 0.25)) drop-shadow(0 0 6px rgb(0 0 0 / 0.25));
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.autoplay-unmute-btn {
|
|
1660
|
+
--media-control-height: 16px;
|
|
1661
|
+
border-radius: 8px;
|
|
1662
|
+
background: #000;
|
|
1663
|
+
color: var(--_primary-color);
|
|
1664
|
+
display: flex;
|
|
1665
|
+
align-items: center;
|
|
1666
|
+
padding: 8px 16px;
|
|
1667
|
+
font-size: 18px;
|
|
1668
|
+
font-weight: 500;
|
|
1669
|
+
cursor: pointer;
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
.autoplay-unmute-btn:hover {
|
|
1673
|
+
background: var(--_accent-color);
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
[breakpointsm] .autoplay-unmute-btn {
|
|
1677
|
+
--media-control-height: 30px;
|
|
1678
|
+
padding: 14px 24px;
|
|
1679
|
+
font-size: 26px;
|
|
1528
1680
|
}
|
|
1529
1681
|
|
|
1530
|
-
|
|
1531
|
-
|
|
1682
|
+
.autoplay-unmute-btn svg {
|
|
1683
|
+
margin: 0 6px 0 0;
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
[breakpointsm] .autoplay-unmute-btn svg {
|
|
1687
|
+
margin: 0 10px 0 0;
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
media-controller:not([audio]):not([mediahasplayed]) *:is(media-control-bar, media-time-range) {
|
|
1691
|
+
display: none;
|
|
1532
1692
|
}
|
|
1533
1693
|
|
|
1534
1694
|
media-loading-indicator {
|
|
@@ -1544,47 +1704,103 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1544
1704
|
}
|
|
1545
1705
|
|
|
1546
1706
|
/* Intentionally don't target the div for transition but the children
|
|
1547
|
-
|
|
1707
|
+
of the div. Prevents messing with media-chrome's autohide feature. */
|
|
1548
1708
|
media-loading-indicator + div * {
|
|
1549
1709
|
transition: opacity 0.15s;
|
|
1550
1710
|
opacity: 1;
|
|
1551
1711
|
}
|
|
1552
1712
|
|
|
1553
|
-
media-loading-indicator[
|
|
1713
|
+
media-loading-indicator[media-loading]:not([media-paused]) ~ div > * {
|
|
1554
1714
|
opacity: 0;
|
|
1555
1715
|
transition-delay: 400ms;
|
|
1556
1716
|
}
|
|
1557
1717
|
|
|
1558
1718
|
media-volume-range {
|
|
1559
1719
|
width: min(100%, 100px);
|
|
1720
|
+
--media-range-thumb-width: 12px;
|
|
1721
|
+
--media-range-thumb-height: 12px;
|
|
1722
|
+
--media-range-thumb-background: radial-gradient(
|
|
1723
|
+
circle,
|
|
1724
|
+
#000 0%,
|
|
1725
|
+
#000 25%,
|
|
1726
|
+
var(--_primary-color) 25%,
|
|
1727
|
+
var(--_primary-color)
|
|
1728
|
+
);
|
|
1729
|
+
--media-control-hover-background: none;
|
|
1560
1730
|
}
|
|
1561
1731
|
|
|
1562
1732
|
media-time-display {
|
|
1563
1733
|
white-space: nowrap;
|
|
1564
1734
|
}
|
|
1565
1735
|
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1736
|
+
/* Generic style for explicitly disabled controls */
|
|
1737
|
+
media-control-bar[part~='bottom'] [disabled],
|
|
1738
|
+
media-control-bar[part~='bottom'] [aria-disabled='true'] {
|
|
1739
|
+
opacity: 60%;
|
|
1740
|
+
cursor: not-allowed;
|
|
1569
1741
|
}
|
|
1570
1742
|
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1743
|
+
media-text-display {
|
|
1744
|
+
--media-font-size: 16px;
|
|
1745
|
+
--media-control-padding: 14px;
|
|
1746
|
+
font-weight: 500;
|
|
1575
1747
|
}
|
|
1576
1748
|
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1749
|
+
media-play-button.animated *:is(g, path) {
|
|
1750
|
+
transition: all 0.3s;
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
media-play-button.animated[mediapaused] .pause-icon-pt1 {
|
|
1754
|
+
opacity: 0;
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
media-play-button.animated[mediapaused] .pause-icon-pt2 {
|
|
1758
|
+
transform-origin: center center;
|
|
1759
|
+
transform: scaleY(0);
|
|
1760
|
+
}
|
|
1761
|
+
|
|
1762
|
+
media-play-button.animated[mediapaused] .play-icon {
|
|
1763
|
+
clip-path: inset(0 0 0 0);
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
media-play-button.animated:not([mediapaused]) .play-icon {
|
|
1767
|
+
clip-path: inset(0 0 0 100%);
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
media-seek-forward-button,
|
|
1771
|
+
media-seek-backward-button {
|
|
1772
|
+
--media-font-weight: 400;
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
.mute-icon {
|
|
1776
|
+
display: inline-block;
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
.mute-icon :is(path, g) {
|
|
1780
|
+
transition: opacity 0.5s;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
.muted {
|
|
1784
|
+
opacity: 0;
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
media-mute-button[mediavolumelevel='low'] :is(.volume-medium, .volume-high),
|
|
1788
|
+
media-mute-button[mediavolumelevel='medium'] :is(.volume-high) {
|
|
1789
|
+
opacity: 0;
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
media-mute-button[mediavolumelevel='off'] .unmuted {
|
|
1793
|
+
opacity: 0;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
media-mute-button[mediavolumelevel='off'] .muted {
|
|
1797
|
+
opacity: 1;
|
|
1580
1798
|
}
|
|
1581
1799
|
</style>
|
|
1582
1800
|
|
|
1583
1801
|
<template partial="TitleDisplay">
|
|
1584
1802
|
<template if="title">
|
|
1585
|
-
<media-text-display part="top title display" class="title-display">
|
|
1586
|
-
{{title}}
|
|
1587
|
-
</media-text-display>
|
|
1803
|
+
<media-text-display part="top title display" class="title-display">{{title}}</media-text-display>
|
|
1588
1804
|
</template>
|
|
1589
1805
|
</template>
|
|
1590
1806
|
|
|
@@ -1593,13 +1809,37 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1593
1809
|
part="{{section ?? 'bottom'}} play button"
|
|
1594
1810
|
disabled="{{disabled}}"
|
|
1595
1811
|
aria-disabled="{{disabled}}"
|
|
1812
|
+
class="animated"
|
|
1596
1813
|
>
|
|
1597
|
-
<svg aria-hidden="true" viewBox="0 0
|
|
1598
|
-
<
|
|
1814
|
+
<svg aria-hidden="true" viewBox="0 0 18 14" slot="icon">
|
|
1815
|
+
<g class="play-icon">
|
|
1816
|
+
<path
|
|
1817
|
+
d="M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z"
|
|
1818
|
+
/>
|
|
1819
|
+
</g>
|
|
1820
|
+
<g class="pause-icon">
|
|
1821
|
+
<path
|
|
1822
|
+
class="pause-icon-pt1"
|
|
1823
|
+
d="M5.90709 0H2.96889C2.46857 0 2.06299 0.405585 2.06299 0.9059V13.0941C2.06299 13.5944 2.46857 14 2.96889 14H5.90709C6.4074 14 6.81299 13.5944 6.81299 13.0941V0.9059C6.81299 0.405585 6.4074 0 5.90709 0Z"
|
|
1824
|
+
/>
|
|
1825
|
+
<path
|
|
1826
|
+
class="pause-icon-pt2"
|
|
1827
|
+
d="M15.1571 0H12.2189C11.7186 0 11.313 0.405585 11.313 0.9059V13.0941C11.313 13.5944 11.7186 14 12.2189 14H15.1571C15.6574 14 16.063 13.5944 16.063 13.0941V0.9059C16.063 0.405585 15.6574 0 15.1571 0Z"
|
|
1828
|
+
/>
|
|
1829
|
+
</g>
|
|
1599
1830
|
</svg>
|
|
1600
|
-
|
|
1831
|
+
</media-play-button>
|
|
1832
|
+
</template>
|
|
1833
|
+
|
|
1834
|
+
<template partial="PrePlayButton">
|
|
1835
|
+
<media-play-button
|
|
1836
|
+
part="{{section ?? 'center'}} play button pre-play"
|
|
1837
|
+
disabled="{{disabled}}"
|
|
1838
|
+
aria-disabled="{{disabled}}"
|
|
1839
|
+
>
|
|
1840
|
+
<svg aria-hidden="true" viewBox="0 0 18 14" slot="icon" style="transform: translate(3px, 0)">
|
|
1601
1841
|
<path
|
|
1602
|
-
d="
|
|
1842
|
+
d="M15.5987 6.2911L3.45577 0.110898C2.83667 -0.204202 2.06287 0.189698 2.06287 0.819798V13.1802C2.06287 13.8103 2.83667 14.2042 3.45577 13.8891L15.5987 7.7089C16.2178 7.3938 16.2178 6.6061 15.5987 6.2911Z"
|
|
1603
1843
|
/>
|
|
1604
1844
|
</svg>
|
|
1605
1845
|
</media-play-button>
|
|
@@ -1612,9 +1852,11 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1612
1852
|
disabled="{{disabled}}"
|
|
1613
1853
|
aria-disabled="{{disabled}}"
|
|
1614
1854
|
>
|
|
1615
|
-
<svg
|
|
1616
|
-
<path
|
|
1617
|
-
|
|
1855
|
+
<svg viewBox="0 0 22 14" aria-hidden="true" slot="icon">
|
|
1856
|
+
<path
|
|
1857
|
+
d="M3.65 2.07888L0.0864 6.7279C-0.0288 6.87812 -0.0288 7.12188 0.0864 7.2721L3.65 11.9211C3.7792 12.0896 4 11.9703 4 11.7321V2.26787C4 2.02968 3.7792 1.9104 3.65 2.07888Z"
|
|
1858
|
+
/>
|
|
1859
|
+
<text transform="translate(6 12)" style="font-size: 14px; font-family: 'ArialMT', 'Arial'">
|
|
1618
1860
|
{{backwardseekoffset}}
|
|
1619
1861
|
</text>
|
|
1620
1862
|
</svg>
|
|
@@ -1628,150 +1870,185 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1628
1870
|
disabled="{{disabled}}"
|
|
1629
1871
|
aria-disabled="{{disabled}}"
|
|
1630
1872
|
>
|
|
1631
|
-
<svg
|
|
1632
|
-
<
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1873
|
+
<svg viewBox="0 0 22 14" aria-hidden="true" slot="icon">
|
|
1874
|
+
<g>
|
|
1875
|
+
<text transform="translate(-1 12)" style="font-size: 14px; font-family: 'ArialMT', 'Arial'">
|
|
1876
|
+
{{forwardseekoffset}}
|
|
1877
|
+
</text>
|
|
1878
|
+
<path
|
|
1879
|
+
d="M18.35 11.9211L21.9136 7.2721C22.0288 7.12188 22.0288 6.87812 21.9136 6.7279L18.35 2.07888C18.2208 1.91041 18 2.02968 18 2.26787V11.7321C18 11.9703 18.2208 12.0896 18.35 11.9211Z"
|
|
1880
|
+
/>
|
|
1881
|
+
</g>
|
|
1636
1882
|
</svg>
|
|
1637
1883
|
</media-seek-forward-button>
|
|
1638
1884
|
</template>
|
|
1639
1885
|
|
|
1640
1886
|
<template partial="MuteButton">
|
|
1641
1887
|
<media-mute-button part="bottom mute button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1642
|
-
<svg
|
|
1643
|
-
<
|
|
1644
|
-
|
|
1645
|
-
|
|
1888
|
+
<svg viewBox="0 0 18 14" slot="icon" class="mute-icon" aria-hidden="true">
|
|
1889
|
+
<g class="unmuted">
|
|
1890
|
+
<path
|
|
1891
|
+
d="M6.76786 1.21233L3.98606 3.98924H1.19937C0.593146 3.98924 0.101743 4.51375 0.101743 5.1607V6.96412L0 6.99998L0.101743 7.03583V8.83926C0.101743 9.48633 0.593146 10.0108 1.19937 10.0108H3.98606L6.76773 12.7877C7.23561 13.2547 8 12.9007 8 12.2171V1.78301C8 1.09925 7.23574 0.745258 6.76786 1.21233Z"
|
|
1892
|
+
/>
|
|
1893
|
+
<path
|
|
1894
|
+
class="volume-low"
|
|
1895
|
+
d="M10 3.54781C10.7452 4.55141 11.1393 5.74511 11.1393 6.99991C11.1393 8.25471 10.7453 9.44791 10 10.4515L10.7988 11.0496C11.6734 9.87201 12.1356 8.47161 12.1356 6.99991C12.1356 5.52821 11.6735 4.12731 10.7988 2.94971L10 3.54781Z"
|
|
1896
|
+
/>
|
|
1897
|
+
<path
|
|
1898
|
+
class="volume-medium"
|
|
1899
|
+
d="M12.3778 2.40086C13.2709 3.76756 13.7428 5.35806 13.7428 7.00026C13.7428 8.64246 13.2709 10.233 12.3778 11.5992L13.2106 12.1484C14.2107 10.6185 14.739 8.83796 14.739 7.00016C14.739 5.16236 14.2107 3.38236 13.2106 1.85156L12.3778 2.40086Z"
|
|
1900
|
+
/>
|
|
1901
|
+
<path
|
|
1902
|
+
class="volume-high"
|
|
1903
|
+
d="M15.5981 0.75L14.7478 1.2719C15.7937 2.9919 16.3468 4.9723 16.3468 7C16.3468 9.0277 15.7937 11.0082 14.7478 12.7281L15.5981 13.25C16.7398 11.3722 17.343 9.211 17.343 7C17.343 4.789 16.7398 2.6268 15.5981 0.75Z"
|
|
1904
|
+
/>
|
|
1905
|
+
</g>
|
|
1906
|
+
<g class="muted">
|
|
1907
|
+
<path
|
|
1908
|
+
fill-rule="evenodd"
|
|
1909
|
+
clip-rule="evenodd"
|
|
1910
|
+
d="M4.39976 4.98924H1.19937C1.19429 4.98924 1.17777 4.98961 1.15296 5.01609C1.1271 5.04369 1.10174 5.09245 1.10174 5.1607V8.83926C1.10174 8.90761 1.12714 8.95641 1.15299 8.984C1.17779 9.01047 1.1943 9.01084 1.19937 9.01084H4.39977L7 11.6066V2.39357L4.39976 4.98924ZM7.47434 1.92006C7.4743 1.9201 7.47439 1.92002 7.47434 1.92006V1.92006ZM6.76773 12.7877L3.98606 10.0108H1.19937C0.593146 10.0108 0.101743 9.48633 0.101743 8.83926V7.03583L0 6.99998L0.101743 6.96412V5.1607C0.101743 4.51375 0.593146 3.98924 1.19937 3.98924H3.98606L6.76786 1.21233C7.23574 0.745258 8 1.09925 8 1.78301V12.2171C8 12.9007 7.23561 13.2547 6.76773 12.7877Z"
|
|
1911
|
+
/>
|
|
1912
|
+
<path
|
|
1913
|
+
fill-rule="evenodd"
|
|
1914
|
+
clip-rule="evenodd"
|
|
1915
|
+
d="M15.2677 9.30323C15.463 9.49849 15.7796 9.49849 15.9749 9.30323C16.1701 9.10796 16.1701 8.79138 15.9749 8.59612L14.2071 6.82841L15.9749 5.06066C16.1702 4.8654 16.1702 4.54882 15.9749 4.35355C15.7796 4.15829 15.4631 4.15829 15.2678 4.35355L13.5 6.1213L11.7322 4.35348C11.537 4.15822 11.2204 4.15822 11.0251 4.35348C10.8298 4.54874 10.8298 4.86532 11.0251 5.06058L12.7929 6.82841L11.0251 8.59619C10.8299 8.79146 10.8299 9.10804 11.0251 9.3033C11.2204 9.49856 11.537 9.49856 11.7323 9.3033L13.5 7.53552L15.2677 9.30323Z"
|
|
1916
|
+
/>
|
|
1917
|
+
</g>
|
|
1646
1918
|
</svg>
|
|
1647
|
-
|
|
1919
|
+
</media-mute-button>
|
|
1920
|
+
</template>
|
|
1921
|
+
|
|
1922
|
+
<template partial="PipButton">
|
|
1923
|
+
<media-pip-button part="bottom pip button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1924
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="icon">
|
|
1648
1925
|
<path
|
|
1649
|
-
d="
|
|
1926
|
+
d="M15.9891 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.989C0 13.0996 0.9004 14 2.011 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0ZM17 11.9891C17 12.5465 16.5465 13 15.9891 13H2.011C1.4536 13 1.0001 12.5465 1.0001 11.9891V2.0109C1.0001 1.4535 1.4536 0.9999 2.011 0.9999H15.9891C16.5465 0.9999 17 1.4535 17 2.0109V11.9891Z"
|
|
1650
1927
|
/>
|
|
1651
|
-
</svg>
|
|
1652
|
-
<svg aria-hidden="true" viewBox="0 0 24 24" slot="medium">
|
|
1653
1928
|
<path
|
|
1654
|
-
d="
|
|
1929
|
+
d="M15.356 5.67822H8.19523C8.03253 5.67822 7.90063 5.81012 7.90063 5.97282V11.3836C7.90063 11.5463 8.03253 11.6782 8.19523 11.6782H15.356C15.5187 11.6782 15.6506 11.5463 15.6506 11.3836V5.97282C15.6506 5.81012 15.5187 5.67822 15.356 5.67822Z"
|
|
1655
1930
|
/>
|
|
1656
1931
|
</svg>
|
|
1657
|
-
|
|
1658
|
-
<path
|
|
1659
|
-
d="m3 4.05 4.48 4.47-.33.33a.49.49 0 0 1-.36.15H3.25a.25.25 0 0 0-.25.25v5.5a.25.25 0 0 0 .25.25h3.54a.49.49 0 0 1 .36.15l4 4a.48.48 0 0 0 .36.15.5.5 0 0 0 .5-.5v-5.75l4.67 4.66a7.71 7.71 0 0 1-2.79 1.47v1.52a9.32 9.32 0 0 0 3.87-1.91L20 21l1-1L4.06 3 3 4.05Zm5.36 5.36 2.39 2.39V17L8 14.26a1.74 1.74 0 0 0-1.24-.51H4.25v-3.5h2.54A1.74 1.74 0 0 0 8 9.74l.36-.33ZM19.47 12a7.19 7.19 0 0 1-.89 3.47l1.11 1.1A8.64 8.64 0 0 0 21 12a9 9 0 0 0-7.12-8.7v1.52A7.52 7.52 0 0 1 19.47 12ZM12 8.88V5.21a.5.5 0 0 0-.5-.5.48.48 0 0 0-.36.15L9.56 6.44 12 8.88ZM15.91 12a4.284 4.284 0 0 1-.07.72l1.22 1.22a5.2 5.2 0 0 0 .38-1.94 5.49 5.49 0 0 0-3.56-5.1v1.66A4 4 0 0 1 15.91 12Z"
|
|
1660
|
-
/>
|
|
1661
|
-
</svg>
|
|
1662
|
-
</media-mute-button>
|
|
1663
|
-
</template>
|
|
1664
|
-
|
|
1665
|
-
<template partial="RenditionSelect">
|
|
1666
|
-
<media-rendition-selectmenu part="bottom rendition selectmenu" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1667
|
-
<media-rendition-button slot="button" part="bottom rendition button">
|
|
1668
|
-
<svg aria-hidden="true" slot="icon" viewBox="0 0 18 24">
|
|
1669
|
-
<path d="M2.25 14.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm6.75 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm6.75 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"/>
|
|
1670
|
-
</svg>
|
|
1671
|
-
</media-rendition-button>
|
|
1672
|
-
<media-rendition-listbox slot="listbox" part="bottom rendition listbox">
|
|
1673
|
-
<div slot="header">Quality</div>
|
|
1674
|
-
</media-rendition-listbox>
|
|
1675
|
-
</media-rendition-selectmenu>
|
|
1676
|
-
</template>
|
|
1677
|
-
|
|
1678
|
-
<template partial="AudioTrackSelect">
|
|
1679
|
-
<media-audio-track-selectmenu part="bottom audio-track selectmenu" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1680
|
-
<media-audio-track-button slot="button" part="bottom audio-track button">
|
|
1681
|
-
<svg aria-hidden="true" slot="icon" viewBox="0 0 24 24">
|
|
1682
|
-
<path d="M12 20.5a8.5 8.5 0 1 0 0-17 8.5 8.5 0 0 0 0 17Zm0 1.5C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10Z"/>
|
|
1683
|
-
<path d="M7.25 9.75a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 .75-.75Zm3-3a.75.75 0 0 1 .75.75v9a.75.75 0 0 1-1.5 0v-9a.75.75 0 0 1 .75-.75Zm3 2a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-1.5 0v-5a.75.75 0 0 1 .75-.75Zm3-1a.75.75 0 0 1 .75.75v7a.75.75 0 0 1-1.5 0v-7a.75.75 0 0 1 .75-.75Z"/>
|
|
1684
|
-
</svg>
|
|
1685
|
-
</media-audio-track-button>
|
|
1686
|
-
<media-audio-track-listbox slot="listbox" part="bottom audio-track listbox">
|
|
1687
|
-
<div slot="header">Audio</div>
|
|
1688
|
-
</media-audio-track-listbox>
|
|
1689
|
-
</media-audio-track-selectmenu>
|
|
1932
|
+
</media-pip-button>
|
|
1690
1933
|
</template>
|
|
1691
1934
|
|
|
1692
|
-
<template partial="
|
|
1935
|
+
<template partial="CaptionsMenuButton">
|
|
1693
1936
|
<media-captions-selectmenu part="bottom captions selectmenu" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1694
|
-
<media-captions-button
|
|
1695
|
-
|
|
1696
|
-
|
|
1937
|
+
<media-captions-button
|
|
1938
|
+
slot="button"
|
|
1939
|
+
part="bottom captions button"
|
|
1940
|
+
disabled="{{disabled}}"
|
|
1941
|
+
aria-disabled="{{disabled}}"
|
|
1942
|
+
>
|
|
1943
|
+
<svg aria-hidden="true" viewBox="0 0 18 14" slot="on">
|
|
1944
|
+
<path
|
|
1945
|
+
d="M15.989 0H2.011C0.9004 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9004 14 2.011 14H15.989C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.989 0ZM4.2292 8.7639C4.5954 9.1902 5.0935 9.4031 5.7233 9.4031C6.1852 9.4031 6.5544 9.301 6.8302 9.0969C7.1061 8.8933 7.2863 8.614 7.3702 8.26H8.4322C8.3062 8.884 8.0093 9.3733 7.5411 9.7273C7.0733 10.0813 6.4703 10.2581 5.732 10.2581C5.108 10.2581 4.5699 10.1219 4.1168 9.8489C3.6637 9.5759 3.3141 9.1946 3.0685 8.7058C2.8224 8.2165 2.6994 7.6511 2.6994 7.009C2.6994 6.3611 2.8224 5.7927 3.0685 5.3034C3.3141 4.8146 3.6637 4.4323 4.1168 4.1559C4.5699 3.88 5.108 3.7418 5.732 3.7418C6.4703 3.7418 7.0733 3.922 7.5411 4.2818C8.0094 4.6422 8.3062 5.1461 8.4322 5.794H7.3702C7.2862 5.4283 7.106 5.1368 6.8302 4.921C6.5544 4.7052 6.1852 4.5968 5.7233 4.5968C5.0934 4.5968 4.5954 4.8116 4.2292 5.2404C3.8635 5.6696 3.6804 6.259 3.6804 7.009C3.6804 7.7531 3.8635 8.3381 4.2292 8.7639ZM11.0974 8.7639C11.4636 9.1902 11.9617 9.4031 12.5915 9.4031C13.0534 9.4031 13.4226 9.301 13.6984 9.0969C13.9743 8.8933 14.1545 8.614 14.2384 8.26H15.3004C15.1744 8.884 14.8775 9.3733 14.4093 9.7273C13.9415 10.0813 13.3385 10.2581 12.6002 10.2581C11.9762 10.2581 11.4381 10.1219 10.985 9.8489C10.5319 9.5759 10.1823 9.1946 9.9367 8.7058C9.6906 8.2165 9.5676 7.6511 9.5676 7.009C9.5676 6.3611 9.6906 5.7927 9.9367 5.3034C10.1823 4.8146 10.5319 4.4323 10.985 4.1559C11.4381 3.88 11.9762 3.7418 12.6002 3.7418C13.3385 3.7418 13.9415 3.922 14.4093 4.2818C14.8776 4.6422 15.1744 5.1461 15.3004 5.794H14.2384C14.1544 5.4283 13.9742 5.1368 13.6984 4.921C13.4226 4.7052 13.0534 4.5968 12.5915 4.5968C11.9616 4.5968 11.4636 4.8116 11.0974 5.2404C10.7317 5.6696 10.5486 6.259 10.5486 7.009C10.5486 7.7531 10.7317 8.3381 11.0974 8.7639Z"
|
|
1946
|
+
/>
|
|
1697
1947
|
</svg>
|
|
1698
|
-
<svg aria-hidden="true" viewBox="0 0
|
|
1699
|
-
<path
|
|
1948
|
+
<svg aria-hidden="true" viewBox="0 0 18 14" slot="off">
|
|
1949
|
+
<path
|
|
1950
|
+
d="M5.73219 10.258C5.10819 10.258 4.57009 10.1218 4.11699 9.8488C3.66389 9.5758 3.31429 9.1945 3.06869 8.7057C2.82259 8.2164 2.69958 7.651 2.69958 7.0089C2.69958 6.361 2.82259 5.7926 3.06869 5.3033C3.31429 4.8145 3.66389 4.4322 4.11699 4.1558C4.57009 3.8799 5.10819 3.7417 5.73219 3.7417C6.47049 3.7417 7.07348 3.9219 7.54128 4.2817C8.00958 4.6421 8.30638 5.146 8.43238 5.7939H7.37039C7.28639 5.4282 7.10618 5.1367 6.83039 4.9209C6.55459 4.7051 6.18538 4.5967 5.72348 4.5967C5.09358 4.5967 4.59559 4.8115 4.22939 5.2403C3.86369 5.6695 3.68058 6.2589 3.68058 7.0089C3.68058 7.753 3.86369 8.338 4.22939 8.7638C4.59559 9.1901 5.09368 9.403 5.72348 9.403C6.18538 9.403 6.55459 9.3009 6.83039 9.0968C7.10629 8.8932 7.28649 8.6139 7.37039 8.2599H8.43238C8.30638 8.8839 8.00948 9.3732 7.54128 9.7272C7.07348 10.0812 6.47049 10.258 5.73219 10.258Z"
|
|
1951
|
+
/>
|
|
1952
|
+
<path
|
|
1953
|
+
d="M12.6003 10.258C11.9763 10.258 11.4382 10.1218 10.9851 9.8488C10.532 9.5758 10.1824 9.1945 9.93685 8.7057C9.69075 8.2164 9.56775 7.651 9.56775 7.0089C9.56775 6.361 9.69075 5.7926 9.93685 5.3033C10.1824 4.8145 10.532 4.4322 10.9851 4.1558C11.4382 3.8799 11.9763 3.7417 12.6003 3.7417C13.3386 3.7417 13.9416 3.9219 14.4094 4.2817C14.8777 4.6421 15.1745 5.146 15.3005 5.7939H14.2385C14.1545 5.4282 13.9743 5.1367 13.6985 4.9209C13.4227 4.7051 13.0535 4.5967 12.5916 4.5967C11.9617 4.5967 11.4637 4.8115 11.0975 5.2403C10.7318 5.6695 10.5487 6.2589 10.5487 7.0089C10.5487 7.753 10.7318 8.338 11.0975 8.7638C11.4637 9.1901 11.9618 9.403 12.5916 9.403C13.0535 9.403 13.4227 9.3009 13.6985 9.0968C13.9744 8.8932 14.1546 8.6139 14.2385 8.2599H15.3005C15.1745 8.8839 14.8776 9.3732 14.4094 9.7272C13.9416 10.0812 13.3386 10.258 12.6003 10.258Z"
|
|
1954
|
+
/>
|
|
1955
|
+
<path
|
|
1956
|
+
d="M15.9891 1C16.5465 1 17 1.4535 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H2.0109C1.4535 13 1 12.5465 1 11.9891V2.0109C1 1.4535 1.4535 0.9999 2.0109 0.9999L15.9891 1ZM15.9891 0H2.0109C0.9003 0 0 0.9003 0 2.0109V11.9891C0 13.0997 0.9003 14 2.0109 14H15.9891C17.0997 14 18 13.0997 18 11.9891V2.0109C18 0.9003 17.0997 0 15.9891 0Z"
|
|
1957
|
+
/>
|
|
1700
1958
|
</svg>
|
|
1701
1959
|
</media-captions-button>
|
|
1702
|
-
<media-captions-listbox slot="listbox" part="bottom captions listbox"
|
|
1960
|
+
<media-captions-listbox slot="listbox" part="bottom captions listbox">
|
|
1961
|
+
<div slot="select-indicator">
|
|
1962
|
+
<style>
|
|
1963
|
+
.listbox-indicator {
|
|
1964
|
+
position: relative;
|
|
1965
|
+
top: 1px;
|
|
1966
|
+
width: 0.9em;
|
|
1967
|
+
height: auto;
|
|
1968
|
+
fill: var(--_accent-color);
|
|
1969
|
+
}
|
|
1970
|
+
|
|
1971
|
+
[aria-selected='false'] .listbox-indicator {
|
|
1972
|
+
display: none;
|
|
1973
|
+
}
|
|
1974
|
+
</style>
|
|
1975
|
+
<svg viewBox="0 0 14 18" class="listbox-indicator">
|
|
1976
|
+
<path
|
|
1977
|
+
d="M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027"
|
|
1978
|
+
fill-rule="evenodd"
|
|
1979
|
+
/>
|
|
1980
|
+
</svg>
|
|
1981
|
+
</div>
|
|
1982
|
+
</media-captions-listbox>
|
|
1703
1983
|
</media-captions-selectmenu>
|
|
1704
1984
|
</template>
|
|
1705
1985
|
|
|
1706
1986
|
<template partial="AirplayButton">
|
|
1707
1987
|
<media-airplay-button part="bottom airplay button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1708
|
-
<svg
|
|
1988
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="icon">
|
|
1709
1989
|
<path
|
|
1710
|
-
d="
|
|
1990
|
+
d="M16.1383 0H1.8618C0.8335 0 0 0.8335 0 1.8617V10.1382C0 11.1664 0.8335 12 1.8618 12H3.076C3.1204 11.9433 3.1503 11.8785 3.2012 11.826L4.004 11H1.8618C1.3866 11 1 10.6134 1 10.1382V1.8617C1 1.3865 1.3866 0.9999 1.8618 0.9999H16.1383C16.6135 0.9999 17.0001 1.3865 17.0001 1.8617V10.1382C17.0001 10.6134 16.6135 11 16.1383 11H13.9961L14.7989 11.826C14.8499 11.8785 14.8798 11.9432 14.9241 12H16.1383C17.1665 12 18.0001 11.1664 18.0001 10.1382V1.8617C18 0.8335 17.1665 0 16.1383 0Z"
|
|
1711
1991
|
/>
|
|
1712
1992
|
<path
|
|
1713
|
-
d="
|
|
1993
|
+
d="M9.55061 8.21903C9.39981 8.06383 9.20001 7.98633 9.00011 7.98633C8.80021 7.98633 8.60031 8.06383 8.44951 8.21903L4.09771 12.697C3.62471 13.1838 3.96961 13.9998 4.64831 13.9998H13.3518C14.0304 13.9998 14.3754 13.1838 13.9023 12.697L9.55061 8.21903Z"
|
|
1714
1994
|
/>
|
|
1715
1995
|
</svg>
|
|
1716
1996
|
</media-airplay-button>
|
|
1717
1997
|
</template>
|
|
1718
1998
|
|
|
1719
|
-
<template partial="
|
|
1720
|
-
<media-
|
|
1721
|
-
<svg
|
|
1722
|
-
<path d="M3 15.5V17c2.206 0 4 1.794 4 4h1.5A5.5 5.5 0 0 0 3 15.5Zm0 3V21h2.5A2.5 2.5 0 0 0 3 18.5Z" />
|
|
1723
|
-
<path d="M3 12.5V14c3.86 0 7 3.14 7 7h1.5A8.5 8.5 0 0 0 3 12.5Z" />
|
|
1999
|
+
<template partial="FullscreenButton">
|
|
2000
|
+
<media-fullscreen-button part="bottom fullscreen button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
2001
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="enter">
|
|
1724
2002
|
<path
|
|
1725
|
-
d="
|
|
2003
|
+
d="M1.00745 4.39539L1.01445 1.98789C1.01605 1.43049 1.47085 0.978289 2.02835 0.979989L6.39375 0.992589L6.39665 -0.007411L2.03125 -0.020011C0.920646 -0.023211 0.0176463 0.874489 0.0144463 1.98509L0.00744629 4.39539H1.00745Z"
|
|
1726
2004
|
/>
|
|
1727
|
-
</svg>
|
|
1728
|
-
<svg aria-hidden="true" viewBox="0 0 26 24" slot="exit">
|
|
1729
|
-
<path d="M3 15.5V17c2.206 0 4 1.794 4 4h1.5A5.5 5.5 0 0 0 3 15.5Zm0 3V21h2.5A2.5 2.5 0 0 0 3 18.5Z" />
|
|
1730
|
-
<path d="M3 12.5V14c3.86 0 7 3.14 7 7h1.5A8.5 8.5 0 0 0 3 12.5Z" />
|
|
1731
2005
|
<path
|
|
1732
|
-
d="
|
|
2006
|
+
d="M17.0144 2.03431L17.0076 4.39541H18.0076L18.0144 2.03721C18.0176 0.926712 17.1199 0.0237125 16.0093 0.0205125L11.6439 0.0078125L11.641 1.00781L16.0064 1.02041C16.5638 1.02201 17.016 1.47681 17.0144 2.03431Z"
|
|
1733
2007
|
/>
|
|
1734
|
-
<path d="M20.5 5.5h-15v5.811c3.52.906 6.283 3.67 7.189 7.19H20.5V5.5Z" />
|
|
1735
|
-
</svg>
|
|
1736
|
-
</media-cast-button>
|
|
1737
|
-
</template>
|
|
1738
|
-
|
|
1739
|
-
<template partial="PipButton">
|
|
1740
|
-
<media-pip-button part="bottom pip button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
1741
|
-
<svg aria-hidden="true" viewBox="0 0 26 24" slot="enter">
|
|
1742
2008
|
<path
|
|
1743
|
-
d="
|
|
2009
|
+
d="M16.9925 9.60498L16.9855 12.0124C16.9839 12.5698 16.5291 13.022 15.9717 13.0204L11.6063 13.0078L11.6034 14.0078L15.9688 14.0204C17.0794 14.0236 17.9823 13.1259 17.9855 12.0153L17.9925 9.60498H16.9925Z"
|
|
2010
|
+
/>
|
|
2011
|
+
<path
|
|
2012
|
+
d="M0.985626 11.9661L0.992426 9.60498H-0.0074737L-0.0142737 11.9632C-0.0174737 13.0738 0.880226 13.9767 1.99083 13.98L6.35623 13.9926L6.35913 12.9926L1.99373 12.98C1.43633 12.9784 0.983926 12.5236 0.985626 11.9661Z"
|
|
1744
2013
|
/>
|
|
1745
2014
|
</svg>
|
|
1746
|
-
<svg
|
|
2015
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="exit">
|
|
2016
|
+
<path
|
|
2017
|
+
d="M5.39655 -0.0200195L5.38955 2.38748C5.38795 2.94488 4.93315 3.39708 4.37565 3.39538L0.0103463 3.38278L0.00744629 4.38278L4.37285 4.39538C5.48345 4.39858 6.38635 3.50088 6.38965 2.39028L6.39665 -0.0200195H5.39655Z"
|
|
2018
|
+
/>
|
|
1747
2019
|
<path
|
|
1748
|
-
d="
|
|
2020
|
+
d="M12.6411 2.36891L12.6479 0.0078125H11.6479L11.6411 2.36601C11.6379 3.47651 12.5356 4.37951 13.6462 4.38271L18.0116 4.39531L18.0145 3.39531L13.6491 3.38271C13.0917 3.38111 12.6395 2.92641 12.6411 2.36891Z"
|
|
2021
|
+
/>
|
|
2022
|
+
<path
|
|
2023
|
+
d="M12.6034 14.0204L12.6104 11.613C12.612 11.0556 13.0668 10.6034 13.6242 10.605L17.9896 10.6176L17.9925 9.61759L13.6271 9.60499C12.5165 9.60179 11.6136 10.4995 11.6104 11.6101L11.6034 14.0204H12.6034Z"
|
|
2024
|
+
/>
|
|
2025
|
+
<path
|
|
2026
|
+
d="M5.359 11.6315L5.3522 13.9926H6.3522L6.359 11.6344C6.3622 10.5238 5.4645 9.62088 4.3539 9.61758L-0.0115043 9.60498L-0.0144043 10.605L4.351 10.6176C4.9084 10.6192 5.3607 11.074 5.359 11.6315Z"
|
|
1749
2027
|
/>
|
|
1750
2028
|
</svg>
|
|
1751
|
-
</media-
|
|
2029
|
+
</media-fullscreen-button>
|
|
1752
2030
|
</template>
|
|
1753
2031
|
|
|
1754
|
-
<template partial="
|
|
1755
|
-
<media-
|
|
1756
|
-
<svg
|
|
2032
|
+
<template partial="CastButton">
|
|
2033
|
+
<media-cast-button part="bottom cast button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
2034
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="enter">
|
|
1757
2035
|
<path
|
|
1758
|
-
d="
|
|
2036
|
+
d="M16.0072 0H2.0291C0.9185 0 0.0181 0.9003 0.0181 2.011V5.5009C0.357 5.5016 0.6895 5.5275 1.0181 5.5669V2.011C1.0181 1.4536 1.4716 1 2.029 1H16.0072C16.5646 1 17.0181 1.4536 17.0181 2.011V11.9891C17.0181 12.5465 16.5646 13 16.0072 13H8.4358C8.4746 13.3286 8.4999 13.6611 8.4999 13.9999H16.0071C17.1177 13.9999 18.018 13.0996 18.018 11.989V2.011C18.0181 0.9003 17.1178 0 16.0072 0ZM0 6.4999V7.4999C3.584 7.4999 6.5 10.4159 6.5 13.9999H7.5C7.5 9.8642 4.1357 6.4999 0 6.4999ZM0 8.7499V9.7499C2.3433 9.7499 4.25 11.6566 4.25 13.9999H5.25C5.25 11.1049 2.895 8.7499 0 8.7499ZM0.0181 11V14H3.0181C3.0181 12.3431 1.675 11 0.0181 11Z"
|
|
1759
2037
|
/>
|
|
1760
2038
|
</svg>
|
|
1761
|
-
<svg
|
|
2039
|
+
<svg viewBox="0 0 18 14" aria-hidden="true" slot="exist">
|
|
1762
2040
|
<path
|
|
1763
|
-
d="
|
|
2041
|
+
d="M15.9891 0H2.01103C0.900434 0 3.35947e-05 0.9003 3.35947e-05 2.011V5.5009C0.338934 5.5016 0.671434 5.5275 1.00003 5.5669V2.011C1.00003 1.4536 1.45353 1 2.01093 1H15.9891C16.5465 1 17 1.4536 17 2.011V11.9891C17 12.5465 16.5465 13 15.9891 13H8.41773C8.45653 13.3286 8.48183 13.6611 8.48183 13.9999H15.989C17.0996 13.9999 17.9999 13.0996 17.9999 11.989V2.011C18 0.9003 17.0997 0 15.9891 0ZM-0.0180664 6.4999V7.4999C3.56593 7.4999 6.48193 10.4159 6.48193 13.9999H7.48193C7.48193 9.8642 4.11763 6.4999 -0.0180664 6.4999ZM-0.0180664 8.7499V9.7499C2.32523 9.7499 4.23193 11.6566 4.23193 13.9999H5.23193C5.23193 11.1049 2.87693 8.7499 -0.0180664 8.7499ZM3.35947e-05 11V14H3.00003C3.00003 12.3431 1.65693 11 3.35947e-05 11Z"
|
|
1764
2042
|
/>
|
|
2043
|
+
<path d="M2.15002 5.634C5.18352 6.4207 7.57252 8.8151 8.35282 11.8499H15.8501V2.1499H2.15002V5.634Z" />
|
|
1765
2044
|
</svg>
|
|
1766
|
-
</media-
|
|
2045
|
+
</media-cast-button>
|
|
1767
2046
|
</template>
|
|
1768
2047
|
|
|
1769
2048
|
<template partial="LiveButton">
|
|
1770
|
-
<media-live-button
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
aria-disabled="{{disabled}}"
|
|
1774
|
-
></media-live-button>
|
|
2049
|
+
<media-live-button part="{{section ?? 'top'}} live button" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
2050
|
+
<span slot="text">Live</span>
|
|
2051
|
+
</media-live-button>
|
|
1775
2052
|
</template>
|
|
1776
2053
|
|
|
1777
2054
|
<template partial="PlaybackRateButton">
|
|
@@ -1780,7 +2057,8 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1780
2057
|
part="bottom playback-rate button"
|
|
1781
2058
|
disabled="{{disabled}}"
|
|
1782
2059
|
aria-disabled="{{disabled}}"
|
|
1783
|
-
|
|
2060
|
+
>
|
|
2061
|
+
</media-playback-rate-button>
|
|
1784
2062
|
</template>
|
|
1785
2063
|
|
|
1786
2064
|
<template partial="VolumeRange">
|
|
@@ -1802,17 +2080,87 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1802
2080
|
</template>
|
|
1803
2081
|
|
|
1804
2082
|
<template partial="TimeRange">
|
|
1805
|
-
<media-time-range
|
|
1806
|
-
|
|
2083
|
+
<media-time-range part="bottom time range" disabled="{{disabled}}" aria-disabled="{{disabled}}"></media-time-range>
|
|
2084
|
+
</template>
|
|
2085
|
+
|
|
2086
|
+
<template partial="AudioTrackSelect">
|
|
2087
|
+
<media-audio-track-selectmenu
|
|
2088
|
+
part="bottom audio-track selectmenu"
|
|
1807
2089
|
disabled="{{disabled}}"
|
|
1808
2090
|
aria-disabled="{{disabled}}"
|
|
1809
|
-
|
|
2091
|
+
>
|
|
2092
|
+
<media-audio-track-button slot="button" part="bottom audio-track button">
|
|
2093
|
+
<svg aria-hidden="true" slot="icon" viewBox="0 0 18 16">
|
|
2094
|
+
<path d="M9 15A7 7 0 1 1 9 1a7 7 0 0 1 0 14Zm0 1A8 8 0 1 0 9 0a8 8 0 0 0 0 16Z" />
|
|
2095
|
+
<path
|
|
2096
|
+
d="M5.2 6.3a.5.5 0 0 1 .5.5v2.4a.5.5 0 1 1-1 0V6.8a.5.5 0 0 1 .5-.5Zm2.4-2.4a.5.5 0 0 1 .5.5v7.2a.5.5 0 0 1-1 0V4.4a.5.5 0 0 1 .5-.5ZM10 5.5a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.4-.8a.5.5 0 0 1 .5.5v5.6a.5.5 0 0 1-1 0V5.2a.5.5 0 0 1 .5-.5Z"
|
|
2097
|
+
/>
|
|
2098
|
+
</svg>
|
|
2099
|
+
</media-audio-track-button>
|
|
2100
|
+
<media-audio-track-listbox slot="listbox" part="bottom audio-track listbox">
|
|
2101
|
+
<div slot="select-indicator">
|
|
2102
|
+
<style>
|
|
2103
|
+
.listbox-indicator {
|
|
2104
|
+
position: relative;
|
|
2105
|
+
top: 1px;
|
|
2106
|
+
width: 0.9em;
|
|
2107
|
+
height: auto;
|
|
2108
|
+
fill: var(--_accent-color);
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2111
|
+
[aria-selected='false'] .listbox-indicator {
|
|
2112
|
+
display: none;
|
|
2113
|
+
}
|
|
2114
|
+
</style>
|
|
2115
|
+
<svg viewBox="0 0 14 18" class="listbox-indicator">
|
|
2116
|
+
<path
|
|
2117
|
+
d="M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027"
|
|
2118
|
+
fill-rule="evenodd"
|
|
2119
|
+
/>
|
|
2120
|
+
</svg>
|
|
2121
|
+
</div>
|
|
2122
|
+
</media-audio-track-listbox>
|
|
2123
|
+
</media-audio-track-selectmenu>
|
|
2124
|
+
</template>
|
|
2125
|
+
|
|
2126
|
+
<template partial="RenditionSelect">
|
|
2127
|
+
<media-rendition-selectmenu part="bottom rendition selectmenu" disabled="{{disabled}}" aria-disabled="{{disabled}}">
|
|
2128
|
+
<media-rendition-button slot="button" part="bottom rendition button">
|
|
2129
|
+
<svg aria-hidden="true" slot="icon" viewBox="0 0 18 14">
|
|
2130
|
+
<path
|
|
2131
|
+
d="M2.25 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM9 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm6.75 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"
|
|
2132
|
+
/>
|
|
2133
|
+
</svg>
|
|
2134
|
+
</media-rendition-button>
|
|
2135
|
+
<media-rendition-listbox slot="listbox" part="bottom rendition listbox">
|
|
2136
|
+
<div slot="select-indicator">
|
|
2137
|
+
<style>
|
|
2138
|
+
.listbox-indicator {
|
|
2139
|
+
position: relative;
|
|
2140
|
+
top: 1px;
|
|
2141
|
+
width: 0.9em;
|
|
2142
|
+
height: auto;
|
|
2143
|
+
fill: var(--_accent-color);
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
[aria-selected='false'] .listbox-indicator {
|
|
2147
|
+
display: none;
|
|
2148
|
+
}
|
|
2149
|
+
</style>
|
|
2150
|
+
<svg viewBox="0 0 14 18" class="listbox-indicator">
|
|
2151
|
+
<path
|
|
2152
|
+
d="M12.252 3.48c-.115.033-.301.161-.425.291-.059.063-1.407 1.815-2.995 3.894s-2.897 3.79-2.908 3.802c-.013.014-.661-.616-1.672-1.624-.908-.905-1.702-1.681-1.765-1.723-.401-.27-.783-.211-1.176.183a1.285 1.285 0 0 0-.261.342.582.582 0 0 0-.082.35c0 .165.01.205.08.35.075.153.213.296 2.182 2.271 1.156 1.159 2.17 2.159 2.253 2.222.189.143.338.196.539.194.203-.003.412-.104.618-.299.205-.193 6.7-8.693 6.804-8.903a.716.716 0 0 0 .085-.345c.01-.179.005-.203-.062-.339-.124-.252-.45-.531-.746-.639a.784.784 0 0 0-.469-.027"
|
|
2153
|
+
fill-rule="evenodd"
|
|
2154
|
+
/>
|
|
2155
|
+
</svg>
|
|
2156
|
+
</div>
|
|
2157
|
+
</media-rendition-listbox>
|
|
2158
|
+
</media-rendition-selectmenu>
|
|
1810
2159
|
</template>
|
|
1811
2160
|
|
|
1812
2161
|
<media-controller
|
|
1813
|
-
part="controller"
|
|
1814
2162
|
defaultstreamtype="{{defaultstreamtype ?? 'on-demand'}}"
|
|
1815
|
-
breakpoints="sm:
|
|
2163
|
+
breakpoints="sm:470"
|
|
1816
2164
|
gesturesdisabled="{{disabled}}"
|
|
1817
2165
|
hotkeys="{{hotkeys}}"
|
|
1818
2166
|
nohotkeys="{{nohotkeys}}"
|
|
@@ -1821,293 +2169,130 @@ media-poster-image:not([src]):not([placeholdersrc]) {
|
|
|
1821
2169
|
noautoseektolive="{{noautoseektolive}}"
|
|
1822
2170
|
defaultsubtitles="{{defaultsubtitles}}"
|
|
1823
2171
|
exportparts="layer, media-layer, poster-layer, vertical-layer, centered-layer, gesture-layer"
|
|
2172
|
+
style="--_pre-playback-place:{{preplaybackplace ?? 'center'}}"
|
|
1824
2173
|
>
|
|
1825
2174
|
<slot name="media" slot="media"></slot>
|
|
1826
2175
|
<slot name="poster" slot="poster"></slot>
|
|
1827
|
-
<media-loading-indicator slot="centered-chrome" noautohide></media-loading-indicator>
|
|
1828
2176
|
|
|
1829
|
-
<
|
|
2177
|
+
<media-loading-indicator slot="centered-chrome" no-auto-hide></media-loading-indicator>
|
|
2178
|
+
|
|
2179
|
+
<template if="!audio">
|
|
2180
|
+
<!-- Pre-playback UI -->
|
|
2181
|
+
<div slot="centered-chrome" class="center-controls pre-playback">
|
|
2182
|
+
<template if="streamtype == 'on-demand'">
|
|
2183
|
+
<template if="!breakpointsm"> {{>SeekBackwardButton section="center"}} </template>
|
|
2184
|
+
<template if="!breakpointsm"> {{>PlayButton section="center"}} </template>
|
|
2185
|
+
<template if="breakpointsm"> {{>PrePlayButton section="center"}} </template>
|
|
2186
|
+
<template if="!breakpointsm"> {{>SeekForwardButton section="center"}} </template>
|
|
2187
|
+
</template>
|
|
2188
|
+
|
|
2189
|
+
<template if="streamtype == 'live'">
|
|
2190
|
+
<template if="!breakpointsm">
|
|
2191
|
+
<template if="targetlivewindow > 0"> {{>SeekBackwardButton section="center"}} </template>
|
|
2192
|
+
</template>
|
|
2193
|
+
<template if="!breakpointsm"> {{>PlayButton section="center"}} </template>
|
|
2194
|
+
<template if="breakpointsm"> {{>PrePlayButton section="center"}} </template>
|
|
2195
|
+
<template if="!breakpointsm">
|
|
2196
|
+
<template if="targetlivewindow > 0"> {{>SeekForwardButton section="center"}} </template>
|
|
2197
|
+
</template>
|
|
2198
|
+
</template>
|
|
2199
|
+
</div>
|
|
2200
|
+
|
|
2201
|
+
<!-- Auotplay centered unmute button -->
|
|
2202
|
+
<!--
|
|
2203
|
+
todo: figure out how show this with available state variables
|
|
2204
|
+
needs to show when:
|
|
2205
|
+
- autoplay is enabled
|
|
2206
|
+
- playback has been successful
|
|
2207
|
+
- audio is muted
|
|
2208
|
+
- in place / instead of the pre-plaback play button
|
|
2209
|
+
- not to show again after user has interacted with this button
|
|
2210
|
+
- OR user has interacted with the mute button in the control bar
|
|
2211
|
+
-->
|
|
2212
|
+
<!--
|
|
2213
|
+
There should be a >MuteButton to the left of the "Unmute" text, but a templating bug
|
|
2214
|
+
makes it appear even if commented out in the markup, add it back when code is un-commented
|
|
2215
|
+
-->
|
|
2216
|
+
<!-- <div slot="centered-chrome" class="autoplay-unmute">
|
|
2217
|
+
<div role="button" class="autoplay-unmute-btn">Unmute</div>
|
|
2218
|
+
</div> -->
|
|
1830
2219
|
|
|
1831
2220
|
<template if="streamtype == 'on-demand'">
|
|
1832
|
-
<template if="
|
|
1833
|
-
<media-control-bar part="control-bar top">{{>TitleDisplay}}</media-control-bar>
|
|
2221
|
+
<template if="breakpointsm">
|
|
2222
|
+
<media-control-bar part="control-bar top" slot="top-chrome">{{>TitleDisplay}} </media-control-bar>
|
|
1834
2223
|
</template>
|
|
2224
|
+
{{>TimeRange}}
|
|
1835
2225
|
<media-control-bar part="control-bar bottom">
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
{{>
|
|
1840
|
-
|
|
1841
|
-
{{>
|
|
1842
|
-
{{>
|
|
1843
|
-
{{>
|
|
1844
|
-
{{>
|
|
1845
|
-
{{>
|
|
1846
|
-
{{>CastButton}}
|
|
2226
|
+
<template if="breakpointsm">
|
|
2227
|
+
{{>PlayButton}} {{>SeekBackwardButton}} {{>SeekForwardButton}} {{>TimeDisplay}}
|
|
2228
|
+
</template>
|
|
2229
|
+
{{>MuteButton}} {{>VolumeRange}}
|
|
2230
|
+
<div class="spacer"></div>
|
|
2231
|
+
{{>RenditionSelect}}
|
|
2232
|
+
<template if="breakpointsm"> {{>PlaybackRateButton}} </template>
|
|
2233
|
+
{{>AudioTrackSelect}} {{>CaptionsMenuButton}} {{>AirplayButton}} {{>CastButton}}
|
|
2234
|
+
<template if="breakpointsm"> {{>PipButton}} </template>
|
|
2235
|
+
{{>FullscreenButton}}
|
|
1847
2236
|
</media-control-bar>
|
|
1848
2237
|
</template>
|
|
1849
2238
|
|
|
1850
2239
|
<template if="streamtype == 'live'">
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
<template if="
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
2240
|
+
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
2241
|
+
{{>LiveButton}}
|
|
2242
|
+
<template if="breakpointsm"> {{>TitleDisplay}} </template>
|
|
2243
|
+
</media-control-bar>
|
|
2244
|
+
<template if="targetlivewindow > 0">{{>TimeRange}}</template>
|
|
2245
|
+
<media-control-bar part="control-bar bottom">
|
|
2246
|
+
<template if="breakpointsm">
|
|
1857
2247
|
{{>PlayButton}}
|
|
1858
|
-
|
|
1859
|
-
{{>SeekBackwardButton}}
|
|
1860
|
-
{{>SeekForwardButton}}
|
|
1861
|
-
{{>TimeDisplay}}
|
|
1862
|
-
{{>TimeRange}}
|
|
1863
|
-
{{>MuteButton}}
|
|
1864
|
-
{{>VolumeRange}}
|
|
1865
|
-
{{>PlaybackRateButton}}
|
|
1866
|
-
{{>AudioTrackSelect}}
|
|
1867
|
-
{{>AirplayButton}}
|
|
1868
|
-
{{>CastButton}}
|
|
1869
|
-
</media-control-bar>
|
|
1870
|
-
</template>
|
|
1871
|
-
|
|
1872
|
-
<template if="!targetlivewindow">
|
|
1873
|
-
<template if="title">
|
|
1874
|
-
<media-control-bar part="control-bar top">{{>TitleDisplay}}</media-control-bar>
|
|
2248
|
+
<template if="targetlivewindow > 0"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>
|
|
1875
2249
|
</template>
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
{{>AudioTrackSelect}}
|
|
1883
|
-
{{>AirplayButton}}
|
|
1884
|
-
{{>CastButton}}
|
|
1885
|
-
</media-control-bar>
|
|
1886
|
-
</template>
|
|
1887
|
-
|
|
2250
|
+
{{>MuteButton}}
|
|
2251
|
+
<div class="spacer"></div>
|
|
2252
|
+
{{>RenditionSelect}} {{>AudioTrackSelect}} {{>CaptionsMenuButton}} {{>AirplayButton}} {{>CastButton}}
|
|
2253
|
+
<template if="breakpointsm">{{>PipButton}}</template>
|
|
2254
|
+
{{>FullscreenButton}}
|
|
2255
|
+
</media-control-bar>
|
|
1888
2256
|
</template>
|
|
1889
2257
|
</template>
|
|
1890
2258
|
|
|
1891
|
-
<template if="
|
|
1892
|
-
|
|
2259
|
+
<template if="audio">
|
|
1893
2260
|
<template if="streamtype == 'on-demand'">
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
{{>TimeRange}}
|
|
1897
|
-
<media-control-bar part="control-bar bottom">
|
|
1898
|
-
{{>PlayButton}}
|
|
1899
|
-
{{>MuteButton}}
|
|
1900
|
-
<div class="spacer"></div>
|
|
1901
|
-
{{>CaptionsSelect}}
|
|
1902
|
-
{{>FullscreenButton}}
|
|
1903
|
-
</media-control-bar>
|
|
1904
|
-
</template>
|
|
1905
|
-
|
|
1906
|
-
<template if="breakpointsm">
|
|
1907
|
-
<template if="!breakpointmd">
|
|
1908
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
1909
|
-
{{>TitleDisplay}}
|
|
1910
|
-
</media-control-bar>
|
|
1911
|
-
<div slot="centered-chrome" class="center-controls">
|
|
1912
|
-
{{>SeekBackwardButton section="center"}}
|
|
1913
|
-
{{>PlayButton section="center"}}
|
|
1914
|
-
{{>SeekForwardButton section="center"}}
|
|
1915
|
-
</div>
|
|
1916
|
-
{{>TimeRange}}
|
|
1917
|
-
<media-control-bar part="control-bar bottom">
|
|
1918
|
-
{{>PlayButton}}
|
|
1919
|
-
{{>TimeDisplay}}
|
|
1920
|
-
{{>MuteButton}}
|
|
1921
|
-
{{>VolumeRange}}
|
|
1922
|
-
<div class="spacer"></div>
|
|
1923
|
-
{{>RenditionSelect}}
|
|
1924
|
-
{{>PlaybackRateButton}}
|
|
1925
|
-
{{>AudioTrackSelect}}
|
|
1926
|
-
{{>CaptionsSelect}}
|
|
1927
|
-
{{>AirplayButton}}
|
|
1928
|
-
{{>CastButton}}
|
|
1929
|
-
{{>PipButton}}
|
|
1930
|
-
{{>FullscreenButton}}
|
|
1931
|
-
</media-control-bar>
|
|
1932
|
-
</template>
|
|
1933
|
-
</template>
|
|
1934
|
-
|
|
1935
|
-
<template if="breakpointmd">
|
|
1936
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
1937
|
-
{{>TitleDisplay}}
|
|
1938
|
-
</media-control-bar>
|
|
1939
|
-
<div slot="centered-chrome" class="center-controls">
|
|
1940
|
-
{{>PlayButton section="center"}}
|
|
1941
|
-
</div>
|
|
1942
|
-
{{>TimeRange}}
|
|
1943
|
-
<media-control-bar part="control-bar bottom">
|
|
1944
|
-
{{>PlayButton}}
|
|
1945
|
-
{{>SeekBackwardButton}}
|
|
1946
|
-
{{>SeekForwardButton}}
|
|
1947
|
-
{{>TimeDisplay}}
|
|
1948
|
-
{{>MuteButton}}
|
|
1949
|
-
{{>VolumeRange}}
|
|
1950
|
-
<div class="spacer"></div>
|
|
1951
|
-
{{>RenditionSelect}}
|
|
1952
|
-
{{>PlaybackRateButton}}
|
|
1953
|
-
{{>AudioTrackSelect}}
|
|
1954
|
-
{{>CaptionsSelect}}
|
|
1955
|
-
{{>AirplayButton}}
|
|
1956
|
-
{{>CastButton}}
|
|
1957
|
-
{{>PipButton}}
|
|
1958
|
-
{{>FullscreenButton}}
|
|
1959
|
-
</media-control-bar>
|
|
2261
|
+
<template if="title">
|
|
2262
|
+
<media-control-bar part="control-bar top">{{>TitleDisplay}}</media-control-bar>
|
|
1960
2263
|
</template>
|
|
1961
|
-
|
|
2264
|
+
<media-control-bar part="control-bar bottom">
|
|
2265
|
+
{{>PlayButton}}
|
|
2266
|
+
<template if="breakpointsm"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>
|
|
2267
|
+
{{>MuteButton}}
|
|
2268
|
+
<template if="breakpointsm">{{>VolumeRange}}</template>
|
|
2269
|
+
{{>TimeDisplay}} {{>TimeRange}}
|
|
2270
|
+
<div class="spacer"></div>
|
|
2271
|
+
<template if="breakpointsm">{{>PlaybackRateButton}}</template>
|
|
2272
|
+
{{>AirplayButton}} {{>CastButton}}
|
|
2273
|
+
</media-control-bar>
|
|
1962
2274
|
</template>
|
|
1963
2275
|
|
|
1964
2276
|
<template if="streamtype == 'live'">
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
<template if="!breakpointsm">
|
|
1969
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
1970
|
-
{{>LiveButton}}
|
|
1971
|
-
</media-control-bar>
|
|
1972
|
-
<media-control-bar part="control-bar bottom">
|
|
1973
|
-
{{>PlayButton}}
|
|
1974
|
-
{{>MuteButton}}
|
|
1975
|
-
<div class="spacer"></div>
|
|
1976
|
-
{{>CaptionsSelect}}
|
|
1977
|
-
{{>FullscreenButton}}
|
|
1978
|
-
</media-control-bar>
|
|
1979
|
-
</template>
|
|
1980
|
-
|
|
1981
|
-
<template if="breakpointsm">
|
|
1982
|
-
<template if="!breakpointmd">
|
|
1983
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
1984
|
-
{{>LiveButton}}
|
|
1985
|
-
{{>TitleDisplay}}
|
|
1986
|
-
</media-control-bar>
|
|
1987
|
-
<div slot="centered-chrome" class="center-controls">
|
|
1988
|
-
{{>PlayButton section="center"}}
|
|
1989
|
-
</div>
|
|
1990
|
-
<media-control-bar part="control-bar bottom">
|
|
1991
|
-
{{>PlayButton}}
|
|
1992
|
-
{{>MuteButton}}
|
|
1993
|
-
{{>VolumeRange}}
|
|
1994
|
-
<div class="spacer"></div>
|
|
1995
|
-
{{>RenditionSelect}}
|
|
1996
|
-
{{>AudioTrackSelect}}
|
|
1997
|
-
{{>CaptionsSelect}}
|
|
1998
|
-
{{>AirplayButton}}
|
|
1999
|
-
{{>CastButton}}
|
|
2000
|
-
{{>PipButton}}
|
|
2001
|
-
{{>FullscreenButton}}
|
|
2002
|
-
</media-control-bar>
|
|
2003
|
-
</template>
|
|
2004
|
-
</template>
|
|
2005
|
-
|
|
2006
|
-
<template if="breakpointmd">
|
|
2007
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
2008
|
-
{{>LiveButton}}
|
|
2009
|
-
{{>TitleDisplay}}
|
|
2010
|
-
</media-control-bar>
|
|
2011
|
-
<div slot="centered-chrome" class="center-controls">
|
|
2012
|
-
{{>PlayButton section="center"}}
|
|
2013
|
-
</div>
|
|
2014
|
-
<media-control-bar part="control-bar bottom">
|
|
2015
|
-
{{>PlayButton}}
|
|
2016
|
-
{{>MuteButton}}
|
|
2017
|
-
{{>VolumeRange}}
|
|
2018
|
-
<div class="spacer"></div>
|
|
2019
|
-
{{>RenditionSelect}}
|
|
2020
|
-
{{>AudioTrackSelect}}
|
|
2021
|
-
{{>CaptionsSelect}}
|
|
2022
|
-
{{>AirplayButton}}
|
|
2023
|
-
{{>CastButton}}
|
|
2024
|
-
{{>PipButton}}
|
|
2025
|
-
{{>FullscreenButton}}
|
|
2026
|
-
</media-control-bar>
|
|
2027
|
-
</template>
|
|
2277
|
+
<template if="title">
|
|
2278
|
+
<media-control-bar part="control-bar top">{{>TitleDisplay}}</media-control-bar>
|
|
2028
2279
|
</template>
|
|
2029
|
-
|
|
2030
|
-
<template if="targetlivewindow > 0">
|
|
2031
|
-
|
|
2032
|
-
<template if="!breakpointsm">
|
|
2033
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
2034
|
-
{{>LiveButton}}
|
|
2035
|
-
</media-control-bar>
|
|
2036
|
-
{{>TimeRange}}
|
|
2037
|
-
<media-control-bar part="control-bar bottom">
|
|
2038
|
-
{{>PlayButton}}
|
|
2039
|
-
{{>MuteButton}}
|
|
2040
|
-
<div class="spacer"></div>
|
|
2041
|
-
{{>CaptionsSelect}}
|
|
2042
|
-
{{>FullscreenButton}}
|
|
2043
|
-
</media-control-bar>
|
|
2044
|
-
</template>
|
|
2045
|
-
|
|
2280
|
+
<media-control-bar part="control-bar bottom">
|
|
2046
2281
|
<template if="breakpointsm">
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
{{>LiveButton}}
|
|
2050
|
-
{{>TitleDisplay}}
|
|
2051
|
-
</media-control-bar>
|
|
2052
|
-
<div slot="centered-chrome" class="center-controls">
|
|
2053
|
-
{{>SeekBackwardButton section="center"}}
|
|
2054
|
-
{{>PlayButton section="center"}}
|
|
2055
|
-
{{>SeekForwardButton section="center"}}
|
|
2056
|
-
</div>
|
|
2057
|
-
{{>TimeRange}}
|
|
2058
|
-
<media-control-bar part="control-bar bottom">
|
|
2059
|
-
{{>PlayButton}}
|
|
2060
|
-
{{>MuteButton}}
|
|
2061
|
-
{{>VolumeRange}}
|
|
2062
|
-
<div class="spacer"></div>
|
|
2063
|
-
{{>RenditionSelect}}
|
|
2064
|
-
{{>AudioTrackSelect}}
|
|
2065
|
-
{{>CaptionsSelect}}
|
|
2066
|
-
{{>AirplayButton}}
|
|
2067
|
-
{{>CastButton}}
|
|
2068
|
-
{{>PipButton}}
|
|
2069
|
-
{{>FullscreenButton}}
|
|
2070
|
-
</media-control-bar>
|
|
2071
|
-
</template>
|
|
2072
|
-
</template>
|
|
2073
|
-
|
|
2074
|
-
<template if="breakpointmd">
|
|
2075
|
-
<media-control-bar part="control-bar top" slot="top-chrome">
|
|
2076
|
-
{{>LiveButton}}
|
|
2077
|
-
{{>TitleDisplay}}
|
|
2078
|
-
</media-control-bar>
|
|
2079
|
-
<div slot="centered-chrome" class="center-controls">
|
|
2080
|
-
{{>PlayButton section="center"}}
|
|
2081
|
-
</div>
|
|
2082
|
-
{{>TimeRange}}
|
|
2083
|
-
<media-control-bar part="control-bar bottom">
|
|
2084
|
-
{{>PlayButton}}
|
|
2085
|
-
{{>SeekBackwardButton}}
|
|
2086
|
-
{{>SeekForwardButton}}
|
|
2087
|
-
{{>MuteButton}}
|
|
2088
|
-
{{>VolumeRange}}
|
|
2089
|
-
<div class="spacer"></div>
|
|
2090
|
-
{{>RenditionSelect}}
|
|
2091
|
-
{{>AudioTrackSelect}}
|
|
2092
|
-
{{>CaptionsSelect}}
|
|
2093
|
-
{{>AirplayButton}}
|
|
2094
|
-
{{>CastButton}}
|
|
2095
|
-
{{>PipButton}}
|
|
2096
|
-
{{>FullscreenButton}}
|
|
2097
|
-
</media-control-bar>
|
|
2282
|
+
{{>PlayButton}} {{>LiveButton section="bottom"}} {{>MuteButton}} {{>VolumeRange}}
|
|
2283
|
+
<template if="targetlivewindow > 0"> {{>SeekBackwardButton}} {{>SeekForwardButton}} </template>
|
|
2098
2284
|
</template>
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2285
|
+
<template if="targetlivewindow > 0"> {{>TimeDisplay}} {{>TimeRange}} </template>
|
|
2286
|
+
<div class="spacer"></div>
|
|
2287
|
+
{{>AirplayButton}} {{>CastButton}}
|
|
2288
|
+
</media-control-bar>
|
|
2102
2289
|
</template>
|
|
2103
|
-
|
|
2104
2290
|
</template>
|
|
2105
2291
|
|
|
2106
2292
|
<slot></slot>
|
|
2107
|
-
|
|
2108
2293
|
</media-controller>
|
|
2109
2294
|
</template>
|
|
2110
|
-
`;var Lf=Xt.createElement("template");"innerHTML"in Lf&&(Lf.innerHTML=qv);var Yv,jv,ud=class extends xr{};ud.template=(jv=(Yv=Lf.content)==null?void 0:Yv.children)==null?void 0:jv[0];nt.customElements.get("media-theme-classic")||nt.customElements.define("media-theme-classic",ud);var vx="classic";var rr={SRC:"src",POSTER:"poster"},te={STYLE:"style",DEFAULT_HIDDEN_CAPTIONS:"default-hidden-captions",PRIMARY_COLOR:"primary-color",SECONDARY_COLOR:"secondary-color",FORWARD_SEEK_OFFSET:"forward-seek-offset",BACKWARD_SEEK_OFFSET:"backward-seek-offset",PLAYBACK_TOKEN:"playback-token",THUMBNAIL_TOKEN:"thumbnail-token",STORYBOARD_TOKEN:"storyboard-token",STORYBOARD_SRC:"storyboard-src",THUMBNAIL_TIME:"thumbnail-time",AUDIO:"audio",NOHOTKEYS:"nohotkeys",HOTKEYS:"hotkeys",PLAYBACK_RATES:"playbackrates",DEFAULT_SHOW_REMAINING_TIME:"default-show-remaining-time",TITLE:"title",PLACEHOLDER:"placeholder",THEME:"theme",DEFAULT_STREAM_TYPE:"default-stream-type",TARGET_LIVE_WINDOW:"target-live-window",NO_VOLUME_PREF:"no-volume-pref"},kf=["audio","backwardseekoffset","defaultshowremainingtime","defaultsubtitles","noautoseektolive","disabled","exportparts","forwardseekoffset","hideduration","hotkeys","nohotkeys","playbackrates","defaultstreamtype","streamtype","style","targetlivewindow","template","title","novolumepref"];function Ex(r,e){var i;return{src:!r.playbackId&&r.src,playbackId:r.playbackId,hasSrc:!!r.playbackId||!!r.src,poster:r.poster,storyboard:r.storyboard,storyboardSrc:r.getAttribute(te.STORYBOARD_SRC),placeholder:r.getAttribute("placeholder"),themeTemplate:bx(r),thumbnailTime:!r.tokens.thumbnail&&r.thumbnailTime,autoplay:r.autoplay,crossOrigin:r.crossOrigin,loop:r.loop,noHotKeys:r.hasAttribute(te.NOHOTKEYS),hotKeys:r.getAttribute(te.HOTKEYS),muted:r.muted,paused:r.paused,preload:r.preload,envKey:r.envKey,preferCmcd:r.preferCmcd,debug:r.debug,disableCookies:r.disableCookies,tokens:r.tokens,beaconCollectionDomain:r.beaconCollectionDomain,maxResolution:r.maxResolution,metadata:r.metadata,playerSoftwareName:r.playerSoftwareName,playerSoftwareVersion:r.playerSoftwareVersion,startTime:r.startTime,preferPlayback:r.preferPlayback,audio:r.audio,defaultStreamType:r.defaultStreamType,targetLiveWindow:r.getAttribute(j.TARGET_LIVE_WINDOW),streamType:na(r.getAttribute(j.STREAM_TYPE)),primaryColor:r.primaryColor,secondaryColor:r.secondaryColor,forwardSeekOffset:r.forwardSeekOffset,backwardSeekOffset:r.backwardSeekOffset,defaultHiddenCaptions:r.defaultHiddenCaptions,defaultShowRemainingTime:r.defaultShowRemainingTime,hideDuration:yx(r),playbackRates:r.getAttribute(te.PLAYBACK_RATES),customDomain:(i=r.getAttribute(j.CUSTOM_DOMAIN))!=null?i:void 0,title:r.getAttribute(te.TITLE),novolumepref:r.hasAttribute(te.NO_VOLUME_PREF),...e}}function bx(r){var t,i;let e=r.theme;if(e){let s=(i=(t=r.getRootNode())==null?void 0:t.getElementById)==null?void 0:i.call(t,e);if(s&&s instanceof HTMLTemplateElement)return s;e.startsWith("media-theme-")||(e=`media-theme-${e}`);let n=nt.customElements.get(e);if(n!=null&&n.template)return n.template}}function yx(r){var t;let e=(t=r.mediaController)==null?void 0:t.querySelector("media-time-display");return e&&getComputedStyle(e).getPropertyValue("--media-duration-display-display").trim()==="none"}function zv(r){let e=r.hasAttribute(te.TITLE)?{video_title:r.getAttribute(te.TITLE)}:{};return r.getAttributeNames().filter(t=>t.startsWith("metadata-")).reduce((t,i)=>{let s=r.getAttribute(i);return s!==null&&(t[i.replace(/^metadata-/,"").replace(/-/g,"_")]=s),t},e)}var Tx=Object.values(j),_x=Object.values(rr),Ax=Object.values(te),Sx=ed(),xx="mux-player",Xv={dialog:void 0,isDialogOpen:!1},va,Ea,sr,ba,ms,Lr,en,hd,Qv,ya,Rf,kr,tn,fd,Zv,md,Jv,pd,eE,gd,tE,ga=class extends gf{constructor(){super();ut(this,Lr);ut(this,hd);ut(this,ya);ut(this,kr);ut(this,fd);ut(this,md);ut(this,pd);ut(this,gd);ut(this,va,!1);ut(this,Ea,{});ut(this,sr,!0);ut(this,ba,new Jl(this,"hotkeys"));ut(this,ms,{...Xv,onCloseErrorDialog:()=>bt(this,ya,Rf).call(this,{dialog:void 0,isDialogOpen:!1}),onInitFocusDialog:t=>{uf(this,Xt.activeElement)||t.preventDefault()}});this.attachShadow({mode:"open"}),bt(this,hd,Qv).call(this),this.isConnected&&bt(this,Lr,en).call(this)}static get observedAttributes(){var t;return[...(t=gf.observedAttributes)!=null?t:[],..._x,...Tx,...Ax]}get mediaTheme(){var t;return(t=this.shadowRoot)==null?void 0:t.querySelector("media-theme")}get mediaController(){var t,i;return(i=(t=this.mediaTheme)==null?void 0:t.shadowRoot)==null?void 0:i.querySelector("media-controller")}connectedCallback(){var i;let t=(i=this.shadowRoot)==null?void 0:i.querySelector("mux-video");t&&(t.metadata=zv(this))}attributeChangedCallback(t,i,s){switch(bt(this,Lr,en).call(this),super.attributeChangedCallback(t,i,s),t){case te.HOTKEYS:Ne(this,ba).value=s;break;case te.THUMBNAIL_TIME:{s!=null&&this.tokens.thumbnail&&Tr(Re("Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.").format({}));break}case te.THUMBNAIL_TOKEN:{let{aud:a}=yr(s);s&&a!=="t"&&Tr(Re("The provided thumbnail-token should have audience value 't' instead of '{aud}'.").format({aud:a}));break}case te.STORYBOARD_TOKEN:{let{aud:a}=yr(s);s&&a!=="s"&&Tr(Re("The provided storyboard-token should have audience value 's' instead of '{aud}'.").format({aud:a}));break}case j.PLAYBACK_ID:{s!=null&&s.includes("?token")&&yi(Re("The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.").format({playbackId:s}));break}case j.STREAM_TYPE:s&&![Je.LIVE,Je.ON_DEMAND,Je.UNKNOWN].includes(s)?["ll-live","live:dvr","ll-live:dvr"].includes(this.streamType)?this.targetLiveWindow=s.includes("dvr")?Number.POSITIVE_INFINITY:0:mf({file:"invalid-stream-type.md",message:Re("Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`").format({streamType:this.streamType})}):this.targetLiveWindow=s===Je.LIVE?0:Number.NaN}[j.PLAYBACK_ID,rr.SRC,te.PLAYBACK_TOKEN].includes(t)&&i!==s&&ii(this,ms,{...Ne(this,ms),...Xv}),bt(this,kr,tn).call(this,{[bv(t)]:s})}get preferCmcd(){var t;return(t=this.getAttribute(j.PREFER_CMCD))!=null?t:void 0}set preferCmcd(t){t!==this.preferCmcd&&(t?Ws.includes(t)?this.setAttribute(j.PREFER_CMCD,t):Tr(`Invalid value for preferCmcd. Must be one of ${Ws.join()}`):this.removeAttribute(j.PREFER_CMCD))}get hasPlayed(){var t,i;return(i=(t=this.mediaController)==null?void 0:t.hasAttribute("media-has-played"))!=null?i:!1}get inLiveWindow(){var t;return(t=this.mediaController)==null?void 0:t.hasAttribute("media-time-is-live")}get _hls(){var t;return(t=this.media)==null?void 0:t._hls}get mux(){var t;return(t=this.media)==null?void 0:t.mux}get theme(){var t;return(t=this.getAttribute(te.THEME))!=null?t:vx}set theme(t){this.setAttribute(te.THEME,`${t}`)}get themeProps(){let t=this.mediaTheme;if(!t)return;let i={};for(let s of t.getAttributeNames()){if(kf.includes(s))continue;let n=t.getAttribute(s);i[Ql(s)]=n===""?!0:n}return i}set themeProps(t){var s,n;bt(this,Lr,en).call(this);let i={...this.themeProps,...t};for(let a in i){if(kf.includes(a))continue;let o=t==null?void 0:t[a];typeof o=="boolean"||o==null?(s=this.mediaTheme)==null||s.toggleAttribute(Xl(a),Boolean(o)):(n=this.mediaTheme)==null||n.setAttribute(Xl(a),o)}}get playbackId(){var t;return(t=this.getAttribute(j.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t?this.setAttribute(j.PLAYBACK_ID,t):this.removeAttribute(j.PLAYBACK_ID)}get src(){var t,i;return this.playbackId?(t=Js(this,rr.SRC))!=null?t:void 0:(i=this.getAttribute(rr.SRC))!=null?i:void 0}set src(t){t?this.setAttribute(rr.SRC,t):this.removeAttribute(rr.SRC)}get poster(){var i;let t=this.getAttribute(rr.POSTER);if(t!=null)return t;if(this.playbackId&&!this.audio)return vv(this.playbackId,{domain:this.customDomain,thumbnailTime:(i=this.thumbnailTime)!=null?i:this.startTime,token:this.tokens.thumbnail})}set poster(t){t||t===""?this.setAttribute(rr.POSTER,t):this.removeAttribute(rr.POSTER)}get storyboardSrc(){var t;return(t=this.getAttribute(te.STORYBOARD_SRC))!=null?t:void 0}set storyboardSrc(t){t?this.setAttribute(te.STORYBOARD_SRC,t):this.removeAttribute(te.STORYBOARD_SRC)}get storyboard(){if(this.storyboardSrc&&!this.tokens.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[Je.LIVE,Je.UNKNOWN].includes(this.streamType)))return Ev(this.playbackId,{domain:this.customDomain,token:this.tokens.storyboard})}get audio(){return this.hasAttribute(te.AUDIO)}set audio(t){if(!t){this.removeAttribute(te.AUDIO);return}this.setAttribute(te.AUDIO,"")}get hotkeys(){return Ne(this,ba)}get nohotkeys(){return this.hasAttribute(te.NOHOTKEYS)}set nohotkeys(t){if(!t){this.removeAttribute(te.NOHOTKEYS);return}this.setAttribute(te.NOHOTKEYS,"")}get thumbnailTime(){return Zi(this.getAttribute(te.THUMBNAIL_TIME))}set thumbnailTime(t){this.setAttribute(te.THUMBNAIL_TIME,`${t}`)}get title(){var t;return(t=this.getAttribute(te.TITLE))!=null?t:""}set title(t){t!==this.title&&(t?this.setAttribute(te.TITLE,t):this.removeAttribute("title"),super.title=t)}get placeholder(){var t;return(t=Js(this,te.PLACEHOLDER))!=null?t:""}set placeholder(t){this.setAttribute(te.PLACEHOLDER,`${t}`)}get primaryColor(){var i,s;let t=this.getAttribute(te.PRIMARY_COLOR);if(t!=null||this.mediaTheme&&(t=(s=(i=nt.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue("--_primary-color"))==null?void 0:s.trim(),t))return t}set primaryColor(t){this.setAttribute(te.PRIMARY_COLOR,`${t}`)}get secondaryColor(){var i,s;let t=this.getAttribute(te.SECONDARY_COLOR);if(t!=null||this.mediaTheme&&(t=(s=(i=nt.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue("--_secondary-color"))==null?void 0:s.trim(),t))return t}set secondaryColor(t){this.setAttribute(te.SECONDARY_COLOR,`${t}`)}get defaultShowRemainingTime(){return this.hasAttribute(te.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(t){t?this.setAttribute(te.DEFAULT_SHOW_REMAINING_TIME,""):this.removeAttribute(te.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(!!this.hasAttribute(te.PLAYBACK_RATES))return this.getAttribute(te.PLAYBACK_RATES).trim().split(/\s*,?\s+/).map(t=>Number(t)).filter(t=>!Number.isNaN(t)).sort((t,i)=>t-i)}set playbackRates(t){if(!t){this.removeAttribute(te.PLAYBACK_RATES);return}this.setAttribute(te.PLAYBACK_RATES,t.join(" "))}get forwardSeekOffset(){var t;return(t=Zi(this.getAttribute(te.FORWARD_SEEK_OFFSET)))!=null?t:10}set forwardSeekOffset(t){this.setAttribute(te.FORWARD_SEEK_OFFSET,`${t}`)}get backwardSeekOffset(){var t;return(t=Zi(this.getAttribute(te.BACKWARD_SEEK_OFFSET)))!=null?t:10}set backwardSeekOffset(t){this.setAttribute(te.BACKWARD_SEEK_OFFSET,`${t}`)}get defaultHiddenCaptions(){return this.hasAttribute(te.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(t){t?this.setAttribute(te.DEFAULT_HIDDEN_CAPTIONS,""):this.removeAttribute(te.DEFAULT_HIDDEN_CAPTIONS)}get playerSoftwareName(){var t;return(t=this.getAttribute(j.PLAYER_SOFTWARE_NAME))!=null?t:xx}get playerSoftwareVersion(){var t;return(t=this.getAttribute(j.PLAYER_SOFTWARE_VERSION))!=null?t:Sx}get beaconCollectionDomain(){var t;return(t=this.getAttribute(j.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(j.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(j.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var t;return(t=this.getAttribute(j.MAX_RESOLUTION))!=null?t:void 0}set maxResolution(t){t!==this.maxResolution&&(t?this.setAttribute(j.MAX_RESOLUTION,t):this.removeAttribute(j.MAX_RESOLUTION))}get customDomain(){var t;return(t=this.getAttribute(j.CUSTOM_DOMAIN))!=null?t:void 0}set customDomain(t){t!==this.customDomain&&(t?this.setAttribute(j.CUSTOM_DOMAIN,t):this.removeAttribute(j.CUSTOM_DOMAIN))}get envKey(){var t;return(t=Js(this,j.ENV_KEY))!=null?t:void 0}set envKey(t){this.setAttribute(j.ENV_KEY,`${t}`)}get noVolumePref(){return this.hasAttribute(te.NO_VOLUME_PREF)}set noVolumePref(t){t?this.setAttribute(te.NO_VOLUME_PREF,""):this.removeAttribute(te.NO_VOLUME_PREF)}get debug(){return Js(this,j.DEBUG)!=null}set debug(t){t?this.setAttribute(j.DEBUG,""):this.removeAttribute(j.DEBUG)}get disableCookies(){return Js(this,j.DISABLE_COOKIES)!=null}set disableCookies(t){t?this.setAttribute(j.DISABLE_COOKIES,""):this.removeAttribute(j.DISABLE_COOKIES)}get streamType(){var t,i,s;return(s=(i=this.getAttribute(j.STREAM_TYPE))!=null?i:(t=this.media)==null?void 0:t.streamType)!=null?s:Je.UNKNOWN}set streamType(t){this.setAttribute(j.STREAM_TYPE,`${t}`)}get defaultStreamType(){var t,i,s;return(s=(i=this.getAttribute(te.DEFAULT_STREAM_TYPE))!=null?i:(t=this.mediaController)==null?void 0:t.getAttribute(te.DEFAULT_STREAM_TYPE))!=null?s:Je.ON_DEMAND}set defaultStreamType(t){t?this.setAttribute(te.DEFAULT_STREAM_TYPE,t):this.removeAttribute(te.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var t,i;return this.hasAttribute(te.TARGET_LIVE_WINDOW)?+this.getAttribute(te.TARGET_LIVE_WINDOW):(i=(t=this.media)==null?void 0:t.targetLiveWindow)!=null?i:Number.NaN}set targetLiveWindow(t){t!=this.targetLiveWindow&&(t==null?this.removeAttribute(te.TARGET_LIVE_WINDOW):this.setAttribute(te.TARGET_LIVE_WINDOW,`${+t}`))}get liveEdgeStart(){var t;return(t=this.media)==null?void 0:t.liveEdgeStart}get startTime(){return Zi(Js(this,j.START_TIME))}set startTime(t){this.setAttribute(j.START_TIME,`${t}`)}get preferPlayback(){let t=this.getAttribute(j.PREFER_PLAYBACK);if(t===di.MSE||t===di.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===di.MSE||t===di.NATIVE?this.setAttribute(j.PREFER_PLAYBACK,t):this.removeAttribute(j.PREFER_PLAYBACK))}get metadata(){var t;return(t=this.media)==null?void 0:t.metadata}set metadata(t){if(bt(this,Lr,en).call(this),!this.media){yi("underlying media element missing when trying to set metadata. metadata will not be set.");return}this.media.metadata={...zv(this),...t}}async addCuePoints(t){var i;if(bt(this,Lr,en).call(this),!this.media){yi("underlying media element missing when trying to addCuePoints. cuePoints will not be added.");return}return(i=this.media)==null?void 0:i.addCuePoints(t)}get activeCuePoint(){var t;return(t=this.media)==null?void 0:t.activeCuePoint}get cuePoints(){var t,i;return(i=(t=this.media)==null?void 0:t.cuePoints)!=null?i:[]}getStartDate(){var t;return(t=this.media)==null?void 0:t.getStartDate()}get currentPdt(){var t;return(t=this.media)==null?void 0:t.currentPdt}get tokens(){let t=this.getAttribute(te.PLAYBACK_TOKEN),i=this.getAttribute(te.THUMBNAIL_TOKEN),s=this.getAttribute(te.STORYBOARD_TOKEN);return{...Ne(this,Ea),...t!=null?{playback:t}:{},...i!=null?{thumbnail:i}:{},...s!=null?{storyboard:s}:{}}}set tokens(t){ii(this,Ea,t!=null?t:{})}get playbackToken(){var t;return(t=this.getAttribute(te.PLAYBACK_TOKEN))!=null?t:void 0}set playbackToken(t){this.setAttribute(te.PLAYBACK_TOKEN,`${t}`)}get thumbnailToken(){var t;return(t=this.getAttribute(te.THUMBNAIL_TOKEN))!=null?t:void 0}set thumbnailToken(t){this.setAttribute(te.THUMBNAIL_TOKEN,`${t}`)}get storyboardToken(){var t;return(t=this.getAttribute(te.STORYBOARD_TOKEN))!=null?t:void 0}set storyboardToken(t){this.setAttribute(te.STORYBOARD_TOKEN,`${t}`)}addTextTrack(t,i,s,n){var o;let a=(o=this.media)==null?void 0:o.nativeEl;if(!!a)return Nl(a,t,i,s,n)}removeTextTrack(t){var s;let i=(s=this.media)==null?void 0:s.nativeEl;if(!!i)return $0(i,t)}get textTracks(){var t;return(t=this.media)==null?void 0:t.textTracks}};va=new WeakMap,Ea=new WeakMap,sr=new WeakMap,ba=new WeakMap,ms=new WeakMap,Lr=new WeakSet,en=function(){var t,i,s;if(!Ne(this,va)){ii(this,va,!0),bt(this,kr,tn).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof nt.HTMLElement))throw""}catch{yi("<media-theme> failed to upgrade!")}try{if(customElements.upgrade(this.media),!(this.media instanceof mv))throw""}catch{yi("<mux-video> failed to upgrade!")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof Hd))throw""}catch{yi("<media-controller> failed to upgrade!")}Av(this),bt(this,fd,Zv).call(this),bt(this,md,Jv).call(this),bt(this,pd,eE).call(this),ii(this,sr,(i=(t=this.mediaController)==null?void 0:t.hasAttribute("userinactive"))!=null?i:!0),bt(this,gd,tE).call(this),(s=this.media)==null||s.addEventListener("streamtypechange",()=>{bt(this,kr,tn).call(this)})}},hd=new WeakSet,Qv=function(){var t,i;try{(t=window==null?void 0:window.CSS)==null||t.registerProperty({name:"--media-primary-color",syntax:"<color>",inherits:!0}),(i=window==null?void 0:window.CSS)==null||i.registerProperty({name:"--media-secondary-color",syntax:"<color>",inherits:!0})}catch{}},ya=new WeakSet,Rf=function(t){Object.assign(Ne(this,ms),t),bt(this,kr,tn).call(this)},kr=new WeakSet,tn=function(t={}){Kv(Wv(Ex(this,{...Ne(this,ms),...t})),this.shadowRoot)},fd=new WeakSet,Zv=function(){let t=s=>{var o,l;if(!(s!=null&&s.startsWith("theme-")))return;let n=s.replace(/^theme-/,"");if(kf.includes(n))return;let a=this.getAttribute(s);a!=null?(o=this.mediaTheme)==null||o.setAttribute(n,a):(l=this.mediaTheme)==null||l.removeAttribute(n)};new MutationObserver(s=>{for(let{attributeName:n}of s)t(n)}).observe(this,{attributes:!0}),this.getAttributeNames().forEach(t)},md=new WeakSet,Jv=function(){var i;let t=s=>{let{detail:n}=s;if(n instanceof tt||(n=new tt(n.message,n.code,n.fatal)),!(n!=null&&n.fatal)){Tr(n),n.data&&Tr(`${n.name} data:`,n.data);return}let{dialog:a,devlog:o}=cd(n,!window.navigator.onLine,this.playbackId,this.playbackToken);o.message&&mf(o),yi(n),n.data&&yi(`${n.name} data:`,n.data),bt(this,ya,Rf).call(this,{isDialogOpen:!0,dialog:a})};this.addEventListener("error",t),this.media&&(this.media.errorTranslator=(s={})=>{var a,o,l;if(!(((a=this.media)==null?void 0:a.error)instanceof tt))return s;let{devlog:n}=cd((o=this.media)==null?void 0:o.error,!window.navigator.onLine,this.playbackId,this.playbackToken,!1);return{player_error_code:(l=this.media)==null?void 0:l.error.code,player_error_message:n.message?String(n.message):s.player_error_message,player_error_context:n.context?String(n.context):s.player_error_context}}),(i=this.media)==null||i.addEventListener("error",s=>{var a,o;let{detail:n}=s;if(!n){let{message:l,code:d}=(o=(a=this.media)==null?void 0:a.error)!=null?o:{};n=new tt(l,d)}!(n!=null&&n.fatal)||this.dispatchEvent(new CustomEvent("error",{detail:n}))})},pd=new WeakSet,eE=function(){var i,s,n,a;let t=()=>bt(this,kr,tn).call(this);(s=(i=this.media)==null?void 0:i.textTracks)==null||s.addEventListener("addtrack",t),(a=(n=this.media)==null?void 0:n.textTracks)==null||a.addEventListener("removetrack",t)},gd=new WeakSet,tE=function(){var c,u;let t=/.*Version\/.*Safari\/.*/.test(navigator.userAgent);if(!/Firefox/i.test(navigator.userAgent))return;let s,n=new WeakMap,a=()=>this.streamType===Je.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,o=(h,f,g=!1)=>{if(a())return;Array.from(h&&h.activeCues||[]).forEach(T=>{if(!(!T.snapToLines||T.line<-5||T.line>=0&&T.line<10))if(!f||this.paused){let A=T.text.split(`
|
|
2295
|
+
`;var Lf=Xt.createElement("template");"innerHTML"in Lf&&(Lf.innerHTML=qv);var Yv,jv,ud=class extends xr{};ud.template=(jv=(Yv=Lf.content)==null?void 0:Yv.children)==null?void 0:jv[0];nt.customElements.get("media-theme-gerwig")||nt.customElements.define("media-theme-gerwig",ud);var vS="gerwig";var rr={SRC:"src",POSTER:"poster"},te={STYLE:"style",DEFAULT_HIDDEN_CAPTIONS:"default-hidden-captions",PRIMARY_COLOR:"primary-color",SECONDARY_COLOR:"secondary-color",FORWARD_SEEK_OFFSET:"forward-seek-offset",BACKWARD_SEEK_OFFSET:"backward-seek-offset",PLAYBACK_TOKEN:"playback-token",THUMBNAIL_TOKEN:"thumbnail-token",STORYBOARD_TOKEN:"storyboard-token",STORYBOARD_SRC:"storyboard-src",THUMBNAIL_TIME:"thumbnail-time",AUDIO:"audio",NOHOTKEYS:"nohotkeys",HOTKEYS:"hotkeys",PLAYBACK_RATES:"playbackrates",DEFAULT_SHOW_REMAINING_TIME:"default-show-remaining-time",TITLE:"title",PLACEHOLDER:"placeholder",THEME:"theme",DEFAULT_STREAM_TYPE:"default-stream-type",TARGET_LIVE_WINDOW:"target-live-window",NO_VOLUME_PREF:"no-volume-pref"},kf=["audio","backwardseekoffset","defaultshowremainingtime","defaultsubtitles","noautoseektolive","disabled","exportparts","forwardseekoffset","hideduration","hotkeys","nohotkeys","playbackrates","defaultstreamtype","streamtype","style","targetlivewindow","template","title","novolumepref"];function ES(r,e){var i;return{src:!r.playbackId&&r.src,playbackId:r.playbackId,hasSrc:!!r.playbackId||!!r.src,poster:r.poster,storyboard:r.storyboard,storyboardSrc:r.getAttribute(te.STORYBOARD_SRC),placeholder:r.getAttribute("placeholder"),themeTemplate:bS(r),thumbnailTime:!r.tokens.thumbnail&&r.thumbnailTime,autoplay:r.autoplay,crossOrigin:r.crossOrigin,loop:r.loop,noHotKeys:r.hasAttribute(te.NOHOTKEYS),hotKeys:r.getAttribute(te.HOTKEYS),muted:r.muted,paused:r.paused,preload:r.preload,envKey:r.envKey,preferCmcd:r.preferCmcd,debug:r.debug,disableCookies:r.disableCookies,tokens:r.tokens,beaconCollectionDomain:r.beaconCollectionDomain,maxResolution:r.maxResolution,metadata:r.metadata,playerSoftwareName:r.playerSoftwareName,playerSoftwareVersion:r.playerSoftwareVersion,startTime:r.startTime,preferPlayback:r.preferPlayback,audio:r.audio,defaultStreamType:r.defaultStreamType,targetLiveWindow:r.getAttribute(j.TARGET_LIVE_WINDOW),streamType:na(r.getAttribute(j.STREAM_TYPE)),primaryColor:r.primaryColor,secondaryColor:r.secondaryColor,forwardSeekOffset:r.forwardSeekOffset,backwardSeekOffset:r.backwardSeekOffset,defaultHiddenCaptions:r.defaultHiddenCaptions,defaultShowRemainingTime:r.defaultShowRemainingTime,hideDuration:yS(r),playbackRates:r.getAttribute(te.PLAYBACK_RATES),customDomain:(i=r.getAttribute(j.CUSTOM_DOMAIN))!=null?i:void 0,title:r.getAttribute(te.TITLE),novolumepref:r.hasAttribute(te.NO_VOLUME_PREF),...e}}function bS(r){var t,i;let e=r.theme;if(e){let s=(i=(t=r.getRootNode())==null?void 0:t.getElementById)==null?void 0:i.call(t,e);if(s&&s instanceof HTMLTemplateElement)return s;e.startsWith("media-theme-")||(e=`media-theme-${e}`);let n=nt.customElements.get(e);if(n!=null&&n.template)return n.template}}function yS(r){var t;let e=(t=r.mediaController)==null?void 0:t.querySelector("media-time-display");return e&&getComputedStyle(e).getPropertyValue("--media-duration-display-display").trim()==="none"}function zv(r){let e=r.hasAttribute(te.TITLE)?{video_title:r.getAttribute(te.TITLE)}:{};return r.getAttributeNames().filter(t=>t.startsWith("metadata-")).reduce((t,i)=>{let s=r.getAttribute(i);return s!==null&&(t[i.replace(/^metadata-/,"").replace(/-/g,"_")]=s),t},e)}var TS=Object.values(j),_S=Object.values(rr),AS=Object.values(te),SS=ed(),xS="mux-player",Xv={dialog:void 0,isDialogOpen:!1},va,Ea,sr,ba,ms,Lr,en,hd,Qv,ya,Rf,kr,tn,fd,Zv,md,Jv,pd,eE,gd,tE,ga=class extends gf{constructor(){super();ut(this,Lr);ut(this,hd);ut(this,ya);ut(this,kr);ut(this,fd);ut(this,md);ut(this,pd);ut(this,gd);ut(this,va,!1);ut(this,Ea,{});ut(this,sr,!0);ut(this,ba,new Jl(this,"hotkeys"));ut(this,ms,{...Xv,onCloseErrorDialog:()=>bt(this,ya,Rf).call(this,{dialog:void 0,isDialogOpen:!1}),onInitFocusDialog:t=>{uf(this,Xt.activeElement)||t.preventDefault()}});this.attachShadow({mode:"open"}),bt(this,hd,Qv).call(this),this.isConnected&&bt(this,Lr,en).call(this)}static get observedAttributes(){var t;return[...(t=gf.observedAttributes)!=null?t:[],..._S,...TS,...AS]}get mediaTheme(){var t;return(t=this.shadowRoot)==null?void 0:t.querySelector("media-theme")}get mediaController(){var t,i;return(i=(t=this.mediaTheme)==null?void 0:t.shadowRoot)==null?void 0:i.querySelector("media-controller")}connectedCallback(){var i;let t=(i=this.shadowRoot)==null?void 0:i.querySelector("mux-video");t&&(t.metadata=zv(this))}attributeChangedCallback(t,i,s){switch(bt(this,Lr,en).call(this),super.attributeChangedCallback(t,i,s),t){case te.HOTKEYS:Ne(this,ba).value=s;break;case te.THUMBNAIL_TIME:{s!=null&&this.tokens.thumbnail&&Tr(Re("Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.").format({}));break}case te.THUMBNAIL_TOKEN:{let{aud:a}=yr(s);s&&a!=="t"&&Tr(Re("The provided thumbnail-token should have audience value 't' instead of '{aud}'.").format({aud:a}));break}case te.STORYBOARD_TOKEN:{let{aud:a}=yr(s);s&&a!=="s"&&Tr(Re("The provided storyboard-token should have audience value 's' instead of '{aud}'.").format({aud:a}));break}case j.PLAYBACK_ID:{s!=null&&s.includes("?token")&&yi(Re("The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.").format({playbackId:s}));break}case j.STREAM_TYPE:s&&![Je.LIVE,Je.ON_DEMAND,Je.UNKNOWN].includes(s)?["ll-live","live:dvr","ll-live:dvr"].includes(this.streamType)?this.targetLiveWindow=s.includes("dvr")?Number.POSITIVE_INFINITY:0:mf({file:"invalid-stream-type.md",message:Re("Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`").format({streamType:this.streamType})}):this.targetLiveWindow=s===Je.LIVE?0:Number.NaN}[j.PLAYBACK_ID,rr.SRC,te.PLAYBACK_TOKEN].includes(t)&&i!==s&&ii(this,ms,{...Ne(this,ms),...Xv}),bt(this,kr,tn).call(this,{[bv(t)]:s})}get preferCmcd(){var t;return(t=this.getAttribute(j.PREFER_CMCD))!=null?t:void 0}set preferCmcd(t){t!==this.preferCmcd&&(t?Ws.includes(t)?this.setAttribute(j.PREFER_CMCD,t):Tr(`Invalid value for preferCmcd. Must be one of ${Ws.join()}`):this.removeAttribute(j.PREFER_CMCD))}get hasPlayed(){var t,i;return(i=(t=this.mediaController)==null?void 0:t.hasAttribute("media-has-played"))!=null?i:!1}get inLiveWindow(){var t;return(t=this.mediaController)==null?void 0:t.hasAttribute("media-time-is-live")}get _hls(){var t;return(t=this.media)==null?void 0:t._hls}get mux(){var t;return(t=this.media)==null?void 0:t.mux}get theme(){var t;return(t=this.getAttribute(te.THEME))!=null?t:vS}set theme(t){this.setAttribute(te.THEME,`${t}`)}get themeProps(){let t=this.mediaTheme;if(!t)return;let i={};for(let s of t.getAttributeNames()){if(kf.includes(s))continue;let n=t.getAttribute(s);i[Ql(s)]=n===""?!0:n}return i}set themeProps(t){var s,n;bt(this,Lr,en).call(this);let i={...this.themeProps,...t};for(let a in i){if(kf.includes(a))continue;let o=t==null?void 0:t[a];typeof o=="boolean"||o==null?(s=this.mediaTheme)==null||s.toggleAttribute(Xl(a),Boolean(o)):(n=this.mediaTheme)==null||n.setAttribute(Xl(a),o)}}get playbackId(){var t;return(t=this.getAttribute(j.PLAYBACK_ID))!=null?t:void 0}set playbackId(t){t?this.setAttribute(j.PLAYBACK_ID,t):this.removeAttribute(j.PLAYBACK_ID)}get src(){var t,i;return this.playbackId?(t=Js(this,rr.SRC))!=null?t:void 0:(i=this.getAttribute(rr.SRC))!=null?i:void 0}set src(t){t?this.setAttribute(rr.SRC,t):this.removeAttribute(rr.SRC)}get poster(){var i;let t=this.getAttribute(rr.POSTER);if(t!=null)return t;if(this.playbackId&&!this.audio)return vv(this.playbackId,{domain:this.customDomain,thumbnailTime:(i=this.thumbnailTime)!=null?i:this.startTime,token:this.tokens.thumbnail})}set poster(t){t||t===""?this.setAttribute(rr.POSTER,t):this.removeAttribute(rr.POSTER)}get storyboardSrc(){var t;return(t=this.getAttribute(te.STORYBOARD_SRC))!=null?t:void 0}set storyboardSrc(t){t?this.setAttribute(te.STORYBOARD_SRC,t):this.removeAttribute(te.STORYBOARD_SRC)}get storyboard(){if(this.storyboardSrc&&!this.tokens.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[Je.LIVE,Je.UNKNOWN].includes(this.streamType)))return Ev(this.playbackId,{domain:this.customDomain,token:this.tokens.storyboard})}get audio(){return this.hasAttribute(te.AUDIO)}set audio(t){if(!t){this.removeAttribute(te.AUDIO);return}this.setAttribute(te.AUDIO,"")}get hotkeys(){return Ne(this,ba)}get nohotkeys(){return this.hasAttribute(te.NOHOTKEYS)}set nohotkeys(t){if(!t){this.removeAttribute(te.NOHOTKEYS);return}this.setAttribute(te.NOHOTKEYS,"")}get thumbnailTime(){return Zi(this.getAttribute(te.THUMBNAIL_TIME))}set thumbnailTime(t){this.setAttribute(te.THUMBNAIL_TIME,`${t}`)}get title(){var t;return(t=this.getAttribute(te.TITLE))!=null?t:""}set title(t){t!==this.title&&(t?this.setAttribute(te.TITLE,t):this.removeAttribute("title"),super.title=t)}get placeholder(){var t;return(t=Js(this,te.PLACEHOLDER))!=null?t:""}set placeholder(t){this.setAttribute(te.PLACEHOLDER,`${t}`)}get primaryColor(){var i,s;let t=this.getAttribute(te.PRIMARY_COLOR);if(t!=null||this.mediaTheme&&(t=(s=(i=nt.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue("--_primary-color"))==null?void 0:s.trim(),t))return t}set primaryColor(t){this.setAttribute(te.PRIMARY_COLOR,`${t}`)}get secondaryColor(){var i,s;let t=this.getAttribute(te.SECONDARY_COLOR);if(t!=null||this.mediaTheme&&(t=(s=(i=nt.getComputedStyle(this.mediaTheme))==null?void 0:i.getPropertyValue("--_secondary-color"))==null?void 0:s.trim(),t))return t}set secondaryColor(t){this.setAttribute(te.SECONDARY_COLOR,`${t}`)}get defaultShowRemainingTime(){return this.hasAttribute(te.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(t){t?this.setAttribute(te.DEFAULT_SHOW_REMAINING_TIME,""):this.removeAttribute(te.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(!!this.hasAttribute(te.PLAYBACK_RATES))return this.getAttribute(te.PLAYBACK_RATES).trim().split(/\s*,?\s+/).map(t=>Number(t)).filter(t=>!Number.isNaN(t)).sort((t,i)=>t-i)}set playbackRates(t){if(!t){this.removeAttribute(te.PLAYBACK_RATES);return}this.setAttribute(te.PLAYBACK_RATES,t.join(" "))}get forwardSeekOffset(){var t;return(t=Zi(this.getAttribute(te.FORWARD_SEEK_OFFSET)))!=null?t:10}set forwardSeekOffset(t){this.setAttribute(te.FORWARD_SEEK_OFFSET,`${t}`)}get backwardSeekOffset(){var t;return(t=Zi(this.getAttribute(te.BACKWARD_SEEK_OFFSET)))!=null?t:10}set backwardSeekOffset(t){this.setAttribute(te.BACKWARD_SEEK_OFFSET,`${t}`)}get defaultHiddenCaptions(){return this.hasAttribute(te.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(t){t?this.setAttribute(te.DEFAULT_HIDDEN_CAPTIONS,""):this.removeAttribute(te.DEFAULT_HIDDEN_CAPTIONS)}get playerSoftwareName(){var t;return(t=this.getAttribute(j.PLAYER_SOFTWARE_NAME))!=null?t:xS}get playerSoftwareVersion(){var t;return(t=this.getAttribute(j.PLAYER_SOFTWARE_VERSION))!=null?t:SS}get beaconCollectionDomain(){var t;return(t=this.getAttribute(j.BEACON_COLLECTION_DOMAIN))!=null?t:void 0}set beaconCollectionDomain(t){t!==this.beaconCollectionDomain&&(t?this.setAttribute(j.BEACON_COLLECTION_DOMAIN,t):this.removeAttribute(j.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var t;return(t=this.getAttribute(j.MAX_RESOLUTION))!=null?t:void 0}set maxResolution(t){t!==this.maxResolution&&(t?this.setAttribute(j.MAX_RESOLUTION,t):this.removeAttribute(j.MAX_RESOLUTION))}get customDomain(){var t;return(t=this.getAttribute(j.CUSTOM_DOMAIN))!=null?t:void 0}set customDomain(t){t!==this.customDomain&&(t?this.setAttribute(j.CUSTOM_DOMAIN,t):this.removeAttribute(j.CUSTOM_DOMAIN))}get envKey(){var t;return(t=Js(this,j.ENV_KEY))!=null?t:void 0}set envKey(t){this.setAttribute(j.ENV_KEY,`${t}`)}get noVolumePref(){return this.hasAttribute(te.NO_VOLUME_PREF)}set noVolumePref(t){t?this.setAttribute(te.NO_VOLUME_PREF,""):this.removeAttribute(te.NO_VOLUME_PREF)}get debug(){return Js(this,j.DEBUG)!=null}set debug(t){t?this.setAttribute(j.DEBUG,""):this.removeAttribute(j.DEBUG)}get disableCookies(){return Js(this,j.DISABLE_COOKIES)!=null}set disableCookies(t){t?this.setAttribute(j.DISABLE_COOKIES,""):this.removeAttribute(j.DISABLE_COOKIES)}get streamType(){var t,i,s;return(s=(i=this.getAttribute(j.STREAM_TYPE))!=null?i:(t=this.media)==null?void 0:t.streamType)!=null?s:Je.UNKNOWN}set streamType(t){this.setAttribute(j.STREAM_TYPE,`${t}`)}get defaultStreamType(){var t,i,s;return(s=(i=this.getAttribute(te.DEFAULT_STREAM_TYPE))!=null?i:(t=this.mediaController)==null?void 0:t.getAttribute(te.DEFAULT_STREAM_TYPE))!=null?s:Je.ON_DEMAND}set defaultStreamType(t){t?this.setAttribute(te.DEFAULT_STREAM_TYPE,t):this.removeAttribute(te.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var t,i;return this.hasAttribute(te.TARGET_LIVE_WINDOW)?+this.getAttribute(te.TARGET_LIVE_WINDOW):(i=(t=this.media)==null?void 0:t.targetLiveWindow)!=null?i:Number.NaN}set targetLiveWindow(t){t!=this.targetLiveWindow&&(t==null?this.removeAttribute(te.TARGET_LIVE_WINDOW):this.setAttribute(te.TARGET_LIVE_WINDOW,`${+t}`))}get liveEdgeStart(){var t;return(t=this.media)==null?void 0:t.liveEdgeStart}get startTime(){return Zi(Js(this,j.START_TIME))}set startTime(t){this.setAttribute(j.START_TIME,`${t}`)}get preferPlayback(){let t=this.getAttribute(j.PREFER_PLAYBACK);if(t===di.MSE||t===di.NATIVE)return t}set preferPlayback(t){t!==this.preferPlayback&&(t===di.MSE||t===di.NATIVE?this.setAttribute(j.PREFER_PLAYBACK,t):this.removeAttribute(j.PREFER_PLAYBACK))}get metadata(){var t;return(t=this.media)==null?void 0:t.metadata}set metadata(t){if(bt(this,Lr,en).call(this),!this.media){yi("underlying media element missing when trying to set metadata. metadata will not be set.");return}this.media.metadata={...zv(this),...t}}async addCuePoints(t){var i;if(bt(this,Lr,en).call(this),!this.media){yi("underlying media element missing when trying to addCuePoints. cuePoints will not be added.");return}return(i=this.media)==null?void 0:i.addCuePoints(t)}get activeCuePoint(){var t;return(t=this.media)==null?void 0:t.activeCuePoint}get cuePoints(){var t,i;return(i=(t=this.media)==null?void 0:t.cuePoints)!=null?i:[]}getStartDate(){var t;return(t=this.media)==null?void 0:t.getStartDate()}get currentPdt(){var t;return(t=this.media)==null?void 0:t.currentPdt}get tokens(){let t=this.getAttribute(te.PLAYBACK_TOKEN),i=this.getAttribute(te.THUMBNAIL_TOKEN),s=this.getAttribute(te.STORYBOARD_TOKEN);return{...Ne(this,Ea),...t!=null?{playback:t}:{},...i!=null?{thumbnail:i}:{},...s!=null?{storyboard:s}:{}}}set tokens(t){ii(this,Ea,t!=null?t:{})}get playbackToken(){var t;return(t=this.getAttribute(te.PLAYBACK_TOKEN))!=null?t:void 0}set playbackToken(t){this.setAttribute(te.PLAYBACK_TOKEN,`${t}`)}get thumbnailToken(){var t;return(t=this.getAttribute(te.THUMBNAIL_TOKEN))!=null?t:void 0}set thumbnailToken(t){this.setAttribute(te.THUMBNAIL_TOKEN,`${t}`)}get storyboardToken(){var t;return(t=this.getAttribute(te.STORYBOARD_TOKEN))!=null?t:void 0}set storyboardToken(t){this.setAttribute(te.STORYBOARD_TOKEN,`${t}`)}addTextTrack(t,i,s,n){var o;let a=(o=this.media)==null?void 0:o.nativeEl;if(!!a)return Nl(a,t,i,s,n)}removeTextTrack(t){var s;let i=(s=this.media)==null?void 0:s.nativeEl;if(!!i)return $0(i,t)}get textTracks(){var t;return(t=this.media)==null?void 0:t.textTracks}};va=new WeakMap,Ea=new WeakMap,sr=new WeakMap,ba=new WeakMap,ms=new WeakMap,Lr=new WeakSet,en=function(){var t,i,s;if(!Ne(this,va)){ii(this,va,!0),bt(this,kr,tn).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof nt.HTMLElement))throw""}catch{yi("<media-theme> failed to upgrade!")}try{if(customElements.upgrade(this.media),!(this.media instanceof mv))throw""}catch{yi("<mux-video> failed to upgrade!")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof Gd))throw""}catch{yi("<media-controller> failed to upgrade!")}Av(this),bt(this,fd,Zv).call(this),bt(this,md,Jv).call(this),bt(this,pd,eE).call(this),ii(this,sr,(i=(t=this.mediaController)==null?void 0:t.hasAttribute("userinactive"))!=null?i:!0),bt(this,gd,tE).call(this),(s=this.media)==null||s.addEventListener("streamtypechange",()=>{bt(this,kr,tn).call(this)})}},hd=new WeakSet,Qv=function(){var t,i;try{(t=window==null?void 0:window.CSS)==null||t.registerProperty({name:"--media-primary-color",syntax:"<color>",inherits:!0}),(i=window==null?void 0:window.CSS)==null||i.registerProperty({name:"--media-secondary-color",syntax:"<color>",inherits:!0})}catch{}},ya=new WeakSet,Rf=function(t){Object.assign(Ne(this,ms),t),bt(this,kr,tn).call(this)},kr=new WeakSet,tn=function(t={}){Kv(Wv(ES(this,{...Ne(this,ms),...t})),this.shadowRoot)},fd=new WeakSet,Zv=function(){let t=s=>{var o,l;if(!(s!=null&&s.startsWith("theme-")))return;let n=s.replace(/^theme-/,"");if(kf.includes(n))return;let a=this.getAttribute(s);a!=null?(o=this.mediaTheme)==null||o.setAttribute(n,a):(l=this.mediaTheme)==null||l.removeAttribute(n)};new MutationObserver(s=>{for(let{attributeName:n}of s)t(n)}).observe(this,{attributes:!0}),this.getAttributeNames().forEach(t)},md=new WeakSet,Jv=function(){var i;let t=s=>{let{detail:n}=s;if(n instanceof tt||(n=new tt(n.message,n.code,n.fatal)),!(n!=null&&n.fatal)){Tr(n),n.data&&Tr(`${n.name} data:`,n.data);return}let{dialog:a,devlog:o}=cd(n,!window.navigator.onLine,this.playbackId,this.playbackToken);o.message&&mf(o),yi(n),n.data&&yi(`${n.name} data:`,n.data),bt(this,ya,Rf).call(this,{isDialogOpen:!0,dialog:a})};this.addEventListener("error",t),this.media&&(this.media.errorTranslator=(s={})=>{var a,o,l;if(!(((a=this.media)==null?void 0:a.error)instanceof tt))return s;let{devlog:n}=cd((o=this.media)==null?void 0:o.error,!window.navigator.onLine,this.playbackId,this.playbackToken,!1);return{player_error_code:(l=this.media)==null?void 0:l.error.code,player_error_message:n.message?String(n.message):s.player_error_message,player_error_context:n.context?String(n.context):s.player_error_context}}),(i=this.media)==null||i.addEventListener("error",s=>{var a,o;let{detail:n}=s;if(!n){let{message:l,code:d}=(o=(a=this.media)==null?void 0:a.error)!=null?o:{};n=new tt(l,d)}!(n!=null&&n.fatal)||this.dispatchEvent(new CustomEvent("error",{detail:n}))})},pd=new WeakSet,eE=function(){var i,s,n,a;let t=()=>bt(this,kr,tn).call(this);(s=(i=this.media)==null?void 0:i.textTracks)==null||s.addEventListener("addtrack",t),(a=(n=this.media)==null?void 0:n.textTracks)==null||a.addEventListener("removetrack",t)},gd=new WeakSet,tE=function(){var c,u;let t=/.*Version\/.*Safari\/.*/.test(navigator.userAgent);if(!/Firefox/i.test(navigator.userAgent))return;let s,n=new WeakMap,a=()=>this.streamType===Je.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,o=(h,f,g=!1)=>{if(a())return;Array.from(h&&h.activeCues||[]).forEach(T=>{if(!(!T.snapToLines||T.line<-5||T.line>=0&&T.line<10))if(!f||this.paused){let A=T.text.split(`
|
|
2111
2296
|
`).length,k=t?-2:-3;this.streamType===Je.LIVE&&(k=t?-1:-2);let L=k-A;if(T.line===L&&!g)return;n.has(T)||n.set(T,T.line),T.line=L-1,T.line=L}else setTimeout(()=>{T.line=n.get(T)||"auto"},500)})},l=()=>{var h,f;o(s,(f=(h=this.mediaController)==null?void 0:h.hasAttribute("userinactive"))!=null?f:!1)},d=()=>{var g,E;let f=Array.from(((E=(g=this.mediaController)==null?void 0:g.media)==null?void 0:E.textTracks)||[]).filter(T=>["subtitles","captions"].includes(T.kind)&&T.mode==="showing")[0];f!==s&&(s==null||s.removeEventListener("cuechange",l)),s=f,s==null||s.addEventListener("cuechange",l),o(s,Ne(this,sr))};if(d(),(c=this.textTracks)==null||c.addEventListener("change",d),(u=this.textTracks)==null||u.addEventListener("addtrack",d),navigator.userAgent.includes("Chrome/")){let h=()=>{o(s,Ne(this,sr),!0),this.paused||window.requestAnimationFrame(h)};this.addEventListener("playing",()=>{h()})}this.addEventListener("userinactivechange",()=>{var f,g;let h=(g=(f=this.mediaController)==null?void 0:f.hasAttribute("userinactive"))!=null?g:!0;Ne(this,sr)!==h&&(ii(this,sr,h),o(s,Ne(this,sr)))})};function Js(r,e){return r.media?r.media.getAttribute(e):r.getAttribute(e)}nt.customElements.get("mux-player")||(nt.customElements.define("mux-player",ga),nt.MuxPlayerElement=ga);var nC=ga;})();
|
|
2112
2297
|
/*!
|
|
2113
2298
|
* JavaScript Cookie v2.1.3
|