PageSourceSearch

https://vercel.intercom.com/_next/static/immutable/chunks/0jtuy6wj8jjxe.js

js intercom.com collected 2026-09-24 07:57:47 UTC 811,019 bytes, 1,927 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="dab90179-d71b-72e3-c906-b4479c64251c")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,711808,e=>{"use strict";let t=new Set(["style","children","ref","key","suppressContentEditableWarning","suppressHydrationWarning","dangerouslySetInnerHTML"]),i={className:"class",htmlFor:"for"};function s(e){return e.toLowerCase()}function r(e){return"boolean"==typeof e?e?"":void 0:"function"==typeof e?void 0:"object"!=typeof e||null===e?e:void 0}function a(e,t,i){e[t]=i,null==i&&t in(globalThis.HTMLElement?.prototype??{})&&e.removeAttribute(t)}e.s(["createComponent",0,function({react:e,tagName:n,elementClass:l,events:o,displayName:d,defaultProps:h,toAttributeName:u=s,toAttributeValue:c=r}){let f=Number.parseInt(e.version)>=19,m=e.forwardRef((s,d)=>{let m=e.useRef(null),g=e.useRef(new Map),p={},v={},E={},b={};for(let[e,a]of Object.entries(s)){if(t.has(e)){E[e]=a;continue}let s=u(i[e]??e);if(l.prototype&&e in l.prototype&&!(e in(globalThis.HTMLElement?.prototype??{}))&&!l.observedAttributes?.some(e=>e===s)){b[e]=a;continue}if(e.startsWith("on")){p[e]=a;continue}let n=c(a);s&&null!=n&&(v[s]=String(n),f||(E[s]=n)),s&&f&&(n!==r(a)?E[s]=n:E[s]=a)}if("u">typeof window){for(let t in p){let i=p[t],s=t.endsWith("Capture"),r=(o?.[t]??t.slice(2).toLowerCase()).slice(0,s?-7:void 0);e.useLayoutEffect(()=>{let e=m?.current;if(e&&"function"==typeof i)return e.addEventListener(r,i,s),()=>{e.removeEventListener(r,i,s)}},[m?.current,i])}e.useLayoutEffect(()=>{if(null===m.current)return;let e=new Map;for(let t in b)a(m.current,t,b[t]),g.current.delete(t),e.set(t,b[t]);for(let[e,t]of g.current)a(m.current,e,void 0);g.current=e})}if("u"<typeof window&&l?.getTemplateHTML&&l?.shadowRootOptions){let{mode:t,delegatesFocus:i}=l.shadowRootOptions;E.children=[e.createElement("template",{shadowrootmode:t,shadowrootdelegatesfocus:i,dangerouslySetInnerHTML:{__html:l.getTemplateHTML(v,s)},key:"ce-la-react-ssr-template-shadow-root"}),E.children]}return e.createElement(n,{...h,...E,ref:e.useCallback(e=>{m.current=e,"function"==typeof d?d(e):null!==d&&(d.current=e)},[d])},E.children)});return m.displayName=d??l.name,m}])},556836,e=>{"use strict";let t,i;var s,r,a,n,l,o,d,h,u,c,f,m,g,p,v=e.i(699294);let E=["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"],b=["autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"];function y(e){return`
3    <style>
4      :host {
5        display: inline-flex;
6        line-height: 0;
7        flex-direction: column;
8        justify-content: end;
9      }
10
11      audio {
12        width: 100%;
13      }
14    </style>
15    <slot name="media">
16      <audio${S(e)}></audio>
17    </slot>
18    <slot></slot>
19  `}function T(e){return`
20    <style>
21      :host {
22        display: inline-block;
23        line-height: 0;
24      }
25
26      video {
27        max-width: 100%;
28        max-height: 100%;
29        min-width: 100%;
30        min-height: 100%;
31        object-fit: var(--media-object-fit, contain);
32        object-position: var(--media-object-position, 50% 50%);
33      }
34
35      video::-webkit-media-text-track-container {
36        transform: var(--media-webkit-text-track-transform);
37        transition: var(--media-webkit-text-track-transition);
38      }
39    </style>
40    <slot name="media">
41      <video${S(e)}></video>
42    </slot>
43    <slot></slot>
44  `}function A(e,{tag:t,is:i}){let s=globalThis.document?.createElement?.(t,{is:i}),r=s?function(e){let t=[];for(let i=Object.getPrototypeOf(e);i&&i!==HTMLElement.prototype;i=Object.getPrototypeOf(i)){let e=Object.getOwnPropertyNames(i);t.push(...e)}return t}(s):[];return class a extends e{static getTemplateHTML=t.endsWith("audio")?y:T;static shadowRootOptions={mode:"open"};static Events=E;static #e=!1;static get observedAttributes(){return a.#t(),[...s?.constructor?.observedAttributes??[],...b]}static #t(){if(this.#e)return;this.#e=!0;let e=new Set(this.observedAttributes);for(let t of(e.delete("muted"),r))if(!(t in this.prototype))if("function"==typeof s[t])this.prototype[t]=function(...e){return this.#i(),(()=>{if(this.call)return this.call(t,...e);let i=this.nativeEl?.[t];return i?.apply(this.nativeEl,e)})()};else{let i={get(){this.#i();let i=t.toLowerCase();if(e.has(i)){let e=this.getAttribute(i);return null!==e&&(""===e||e)}return this.get?.(t)??this.nativeEl?.[t]}};t!==t.toUpperCase()&&(i.set=function(i){this.#i();let s=t.toLowerCase();e.has(s)?!0===i||!1===i||null==i?this.toggleAttribute(s,!!i):this.setAttribute(s,i):this.set?this.set(t,i):this.nativeEl&&(this.nativeEl[t]=i)}),Object.defineProperty(this.prototype,t,i)}}#s=!1;#r=null;#a=new Map;#n;get;set;call;get nativeEl(){return this.#i(),this.#r??this.querySelector(":scope > [slot=media]")??this.querySelector(t)??this.shadowRoot?.querySelector(t)??null}set nativeEl(e){this.#r=e}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(e){this.toggleAttribute("muted",e)}get src(){return this.getAttribute("src")}set src(e){this.setAttribute("src",`${e}`)}get preload(){return this.getAttribute("preload")??this.nativeEl?.preload}set preload(e){this.setAttribute("preload",`${e}`)}#i(){this.#s||(this.#s=!0,this.init())}init(){if(!this.shadowRoot){this.attachShadow({mode:"open"});let e=function(e){let t={};for(let i of e)t[i.name]=i.value;return t}(this.attributes);i&&(e.is=i),t&&(e.part=t),this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}for(let e of(this.nativeEl.muted=this.hasAttribute("muted"),r))this.#l(e);for(let e of(this.#n=new MutationObserver(this.#o.bind(this)),this.shadowRoot.addEventListener("slotchange",()=>this.#d()),this.#d(),this.constructor.Events))this.shadowRoot.addEventListener(e,this,!0)}handleEvent(e){e.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(e.type,{detail:e.detail}))}#d(){let e=new Map(this.#a),t=this.shadowRoot?.querySelector("slot:not([name])");(t?.assignedElements({flatten:!0}).filter(e=>
44["track","source"].includes(e.localName))).forEach(t=>{e.delete(t);let i=this.#a.get(t);i||(i=t.cloneNode(),this.#a.set(t,i),this.#n?.observe(t,{attributes:!0})),this.nativeEl?.append(i),this.#h(i)}),e.forEach((e,t)=>{e.remove(),this.#a.delete(t)})}#o(e){for(let t of e)if("attributes"===t.type){let{target:e,attributeName:i}=t,s=this.#a.get(e);s&&i&&(s.setAttribute(i,e.getAttribute(i)??""),this.#h(s))}}#h(e){e&&"track"===e.localName&&e.default&&("chapters"===e.kind||"metadata"===e.kind)&&"disabled"===e.track.mode&&(e.track.mode="hidden")}#l(e){if(Object.prototype.hasOwnProperty.call(this,e)){let t=this[e];delete this[e],this[e]=t}}attributeChangedCallback(e,t,i){this.#i(),this.#u(e,t,i)}#u(e,t,i){["id","class"].includes(e)||!a.observedAttributes.includes(e)&&this.constructor.observedAttributes.includes(e)||(null===i?this.nativeEl?.removeAttribute(e):this.nativeEl?.getAttribute(e)!==i&&this.nativeEl?.setAttribute(e,i))}connectedCallback(){this.#i()}}}function S(e){let t="";for(let i in e){if(!b.includes(i))continue;let s=e[i];""===s?t+=` ${i}`:t+=` ${i}="${s}"`}return t}let I=A(globalThis.HTMLElement??class{},{tag:"video"});A(globalThis.HTMLElement??class{},{tag:"audio"});class L extends Event{track;constructor(e,t){super(e),this.track=t.track}}let k=new WeakMap;function R(e){var t,i;let s;return k.get(e)??(t=e,i={},(s=k.get(t))||k.set(t,s={}),Object.assign(s,i))}function M(e,t){let i=e.videoTracks;R(t).media=e,R(t).renditionSet||(R(t).renditionSet=new Set);let s=R(i).trackSet;s.add(t);let r=s.size-1;r in _.prototype||Object.defineProperty(_.prototype,r,{get(){return[...R(this).trackSet][r]}}),queueMicrotask(()=>{i.dispatchEvent(new L("addtrack",{track:t}))})}function C(e){let t=R(e).media?.videoTracks;t&&(R(t).trackSet.delete(e),queueMicrotask(()=>{t.dispatchEvent(new L("removetrack",{track:e}))}))}class _ extends EventTarget{#c;#f;#m;constructor(){super(),R(this).trackSet=new Set}get #g(){return R(this).trackSet}[Symbol.iterator](){return this.#g.values()}get length(){return this.#g.size}getTrackById(e){return[...this.#g].find(t=>t.id===e)??null}get selectedIndex(){return[...this.#g].findIndex(e=>e.selected)}get onaddtrack(){return this.#c}set onaddtrack(e){this.#c&&(this.removeEventListener("addtrack",this.#c),this.#c=void 0),"function"==typeof e&&(this.#c=e,this.addEventListener("addtrack",e))}get onremovetrack(){return this.#f}set onremovetrack(e){this.#f&&(this.removeEventListener("removetrack",this.#f),this.#f=void 0),"function"==typeof e&&(this.#f=e,this.addEventListener("removetrack",e))}get onchange(){return this.#m}set onchange(e){this.#m&&(this.removeEventListener("change",this.#m),this.#m=void 0),"function"==typeof e&&(this.#m=e,this.addEventListener("change",e))}}class w extends Event{rendition;constructor(e,t){super(e),this.rendition=t.rendition}}function D(e){return[...R(e).media.videoTracks].filter(e=>e.selected).flatMap(e=>[...R(e).renditionSet])}class x extends EventTarget{#p;#v;#m;[Symbol.iterator](){return D(this).values()}get length(){return D(this).length}getRenditionById(e){return D(this).find(t=>`${t.id}`==`${e}`)??null}get selectedIndex(){return D(this).findIndex(e=>e.selected)}set selectedIndex(e){for(let[t,i]of D(this).entries())i.selected=t===e}get onaddrendition(){return this.#p}set onaddrendition(e){this.#p&&(this.removeEventListener("addrendition",this.#p),this.#p=void 0),"function"==typeof e&&(this.#p=e,this.addEventListener("addrendition",e))}get onremoverendition(){return this.#v}set onremoverendition(e){this.#v&&(this.removeEventListener("removerendition",this.#v),this.#v=void 0),"function"==typeof e&&(this.#v=e,this.addEventListener("removerendition",e))}get onchange(){return this.#m}set onchange(e){this.#m&&(this.removeEventListener("change",this.#m),this.#m=void 0),"function"==typeof e&&(this.#m=e,this.addEventListener("change",e))}}class P{src;id;width;height;bitrate;frameRate;codec;#E=!1;get selected(){return this.#E}set selected(e){if(this.#E!==e){var t;let i;this.#E=e,t=this,(i=R(t).media.videoRenditions)&&!R(i).changeRequested&&(R(i).changeRequested=!0,queueMicrotask(()=>{delete R(i).changeRequested,R(t).track.selected&&i.dispatchEvent(new Event("change"))}))}}}class O{id;kind;label="";language="";sourceBuffer;#E=!1;addRendition(e,t,i,s,r,a){var n;let l,o,d,h=new P;return h.src=e,h.width=t,h.height=i,h.frameRate=a,h.bitrate=r,h.codec=s,n=this,l=R(n).media.videoRenditions,R(h).media=R(n).media,R(h).track=n,(o=R(n).renditionSet).add(h),(d=o.size-1)in x.prototype||Ob
44ject.defineProperty(x.prototype,d,{get(){return D(this)[d]}}),queueMicrotask(()=>{n.selected&&l.dispatchEvent(new w("addrendition",{rendition:h}))}),h}removeRendition(e){let t,i;t=R(e).media.videoRenditions,i=R(e).track,R(i).renditionSet.delete(e),queueMicrotask(()=>{R(e).track.selected&&t.dispatchEvent(new w("removerendition",{rendition:e}))})}get selected(){return this.#E}set selected(e){this.#E===e||(this.#E=e,!0===e&&function(e){let t=R(e).media.videoTracks??[],i=!1;for(let s of t)s!==e&&(s.selected=!1,i=!0);if(i){if(R(t).changeRequested)return;R(t).changeRequested=!0,queueMicrotask(()=>{delete R(t).changeRequested,t.dispatchEvent(new Event("change"))})}}(this))}}function U(e){return[...R(e).media.audioTracks].filter(e=>e.enabled).flatMap(e=>[...R(e).renditionSet])}class N extends EventTarget{#p;#v;#m;[Symbol.iterator](){return U(this).values()}get length(){return U(this).length}getRenditionById(e){return U(this).find(t=>`${t.id}`==`${e}`)??null}get selectedIndex(){return U(this).findIndex(e=>e.selected)}set selectedIndex(e){for(let[t,i]of U(this).entries())i.selected=t===e}get onaddrendition(){return this.#p}set onaddrendition(e){this.#p&&(this.removeEventListener("addrendition",this.#p),this.#p=void 0),"function"==typeof e&&(this.#p=e,this.addEventListener("addrendition",e))}get onremoverendition(){return this.#v}set onremoverendition(e){this.#v&&(this.removeEventListener("removerendition",this.#v),this.#v=void 0),"function"==typeof e&&(this.#v=e,this.addEventListener("removerendition",e))}get onchange(){return this.#m}set onchange(e){this.#m&&(this.removeEventListener("change",this.#m),this.#m=void 0),"function"==typeof e&&(this.#m=e,this.addEventListener("change",e))}}class F{src;id;bitrate;codec;#E=!1;get selected(){return this.#E}set selected(e){if(this.#E!==e){var t;let i;this.#E=e,t=this,(i=R(t).media.audioRenditions)&&!R(i).changeRequested&&(R(i).changeRequested=!0,queueMicrotask(()=>{delete R(i).changeRequested,R(t).track.enabled&&i.dispatchEvent(new Event("change"))}))}}}function B(e,t){let i=e.audioTracks;R(t).media=e,R(t).renditionSet||(R(t).renditionSet=new Set);let s=R(i).trackSet;s.add(t);let r=s.size-1;r in H.prototype||Object.defineProperty(H.prototype,r,{get(){return[...R(this).trackSet][r]}}),queueMicrotask(()=>{i.dispatchEvent(new L("addtrack",{track:t}))})}function $(e){let t=R(e).media?.audioTracks;t&&(R(t).trackSet.delete(e),queueMicrotask(()=>{t.dispatchEvent(new L("removetrack",{track:e}))}))}
44class H extends EventTarget{#c;#f;#m;constructor(){super(),R(this).trackSet=new Set}get #g(){return R(this).trackSet}[Symbol.iterator](){return this.#g.values()}get length(){return this.#g.size}getTrackById(e){return[...this.#g].find(t=>t.id===e)??null}get onaddtrack(){return this.#c}set onaddtrack(e){this.#c&&(this.removeEventListener("addtrack",this.#c),this.#c=void 0),"function"==typeof e&&(this.#c=e,this.addEventListener("addtrack",e))}get onremovetrack(){return this.#f}set onremovetrack(e){this.#f&&(this.removeEventListener("removetrack",this.#f),this.#f=void 0),"function"==typeof e&&(this.#f=e,this.addEventListener("removetrack",e))}get onchange(){return this.#m}set onchange(e){this.#m&&(this.removeEventListener("change",this.#m),this.#m=void 0),"function"==typeof e&&(this.#m=e,this.addEventListener("change",e))}}class G{id;kind;label="";language="";sourceBuffer;#b=!1;addRendition(e,t,i){var s;let r,a,n,l=new F;return l.src=e,l.codec=t,l.bitrate=i,s=this,r=R(s).media.audioRenditions,R(l).media=R(s).media,R(l).track=s,(a=R(s).renditionSet).add(l),(n=a.size-1)in N.prototype||Object.defineProperty(N.prototype,n,{get(){return U(this)[n]}}),queueMicrotask(()=>{s.enabled&&r.dispatchEvent(new w("addrendition",{rendition:l}))}),l}removeRendition(e){let t,i;t=R(e).media.audioRenditions,i=R(e).track,R(i).renditionSet.delete(e),queueMicrotask(()=>{R(e).track.enabled&&t.dispatchEvent(new w("removerendition",{rendition:e}))})}get enabled(){return this.#b}set enabled(e){if(this.#b!==e){let t;this.#b=e,(t=R(this).media.audioTracks)&&!R(t).changeRequested&&(R(t).changeRequested=!0,queueMicrotask(()=>{delete R(t).changeRequested,t.dispatchEvent(new Event("change"))}))}}}let V=K(globalThis.HTMLMediaElement,"video"),W=K(globalThis.HTMLMediaElement,"audio");function K(e,t){if(e?.prototype)return Object.getOwnPropertyDescriptor(e.prototype,`${t}Tracks`)?.get}let j=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},q=Number.isSafeInteger||function(e){return"number"==typeof e&&Math.abs(e)<=Y},Y=Number.MAX_SAFE_INTEGER||0x1fffffffffffff,Q=((o={}).NETWORK_ERROR="networkError",o.MEDIA_ERROR="mediaError",o.KEY_SYSTEM_ERROR="keySystemError",o.MUX_ERROR="muxError",o.OTHER_ERROR="otherError",o),z=((d={}).KEY_SYSTEM_NO_KEYS="keySystemNoKeys",d.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",d.KEY_SYSTEM_NO_SESSION="keySystemNoSession",d.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",d.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",d.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",d.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",d.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",d.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",d.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",d.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",d.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",d.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",d.MANIFEST_LOAD_ERROR="manifestLoadError",d.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",d.MANIFEST_PARSING_ERROR="manifestParsingError",d.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",d.LEVEL_EMPTY_ERROR="levelEmptyError",d.LEVEL_LOAD_ERROR="levelLoadError",d.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",d.LEVEL_PARSING_ERROR="levelParsingError",d.LEVEL_SWITCH_ERROR="levelSwitchError",d.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",d.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",d.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",d.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",d.FRAG_LOAD_ERROR="fragLoadError",d.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",d.FRAG_DECRYPT_ERROR="fragDecryptError",d.FRAG_PARSING_ERROR="fragParsingError",d.FRAG_GAP="fragGap",d.REMUX_ALLOC_ERROR="remuxAllocError",d.KEY_LOAD_ERROR="keyLoadError",d.KEY_LOAD_TIMEOUT="keyLoadTimeOut",d.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",d.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",d.BUFFER_APPEND_ERROR="bufferAppendError",d.BUFFER_APPENDING_ERROR="bufferAppendingError",d.BUFFER_STALLED_ERROR="bufferStalledError",d.BUFFER_FULL_ERROR="bufferFullError",d.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",d.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",d.ASSET_LIST_LOAD_ERROR="assetListLoadError",d.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",d.ASSET_LIST_PARSING_ERROR="assetListParsingError",d.INTERSTITIAL_ASSET_ITEM_ER
44ROR="interstitialAssetItemError",d.INTERNAL_EXCEPTION="internalException",d.INTERNAL_ABORTED="aborted",d.ATTACH_MEDIA_ERROR="attachMediaError",d.UNKNOWN="unknown",d),X=((h={}).MEDIA_ATTACHING="hlsMediaAttaching",h.MEDIA_ATTACHED="hlsMediaAttached",h.MEDIA_DETACHING="hlsMediaDetaching",h.MEDIA_DETACHED="hlsMediaDetached",h.MEDIA_ENDED="hlsMediaEnded",h.STALL_RESOLVED="hlsStallResolved",h.BUFFER_RESET="hlsBufferReset",h.BUFFER_CODECS="hlsBufferCodecs",h.BUFFER_CREATED="hlsBufferCreated",h.BUFFER_APPENDING="hlsBufferAppending",h.BUFFER_APPENDED="hlsBufferAppended",h.BUFFER_EOS="hlsBufferEos",h.BUFFERED_TO_END="hlsBufferedToEnd",h.BUFFER_FLUSHING="hlsBufferFlushing",h.BUFFER_FLUSHED="hlsBufferFlushed",h.MANIFEST_LOADING="hlsManifestLoading",h.MANIFEST_LOADED="hlsManifestLoaded",h.MANIFEST_PARSED="hlsManifestParsed",h.LEVEL_SWITCHING="hlsLevelSwitching",h.LEVEL_SWITCHED="hlsLevelSwitched",h.LEVEL_LOADING="hlsLevelLoading",h.LEVEL_LOADED="hlsLevelLoaded",h.LEVEL_UPDATED="hlsLevelUpdated",h.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",h.LEVELS_UPDATED="hlsLevelsUpdated",h.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",h.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",h.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",h.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",h.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",h.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",h.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",h.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",h.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",h.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",h.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",h.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",h.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",h.CUES_PARSED="hlsCuesParsed",h.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",h.INIT_PTS_FOUND="hlsInitPtsFound",h.FRAG_LOADING="hlsFragLoading",h.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",h.FRAG_LOADED="hlsFragLoaded",h.FRAG_DECRYPTED="hlsFragDecrypted",h.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",h.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",h.FRAG_PARSING_METADATA="hlsFragParsingMetadata",h.FRAG_PARSED="hlsFragParsed",h.FRAG_BUFFERED="hlsFragBuffered",h.FRAG_CHANGED="hlsFragChanged",h.FPS_DROP="hlsFpsDrop",h.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",h.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",h.ERROR="hlsError",h.DESTROYING="hlsDestroying",h.KEY_LOADING="hlsKeyLoading",h.KEY_LOADED="hlsKeyLoaded",h.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",h.BACK_BUFFER_REACHED="hlsBackBufferReached",h.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",h.ASSET_LIST_LOADING="hlsAssetListLoading",h.ASSET_LIST_LOADED="hlsAssetListLoaded",h.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",h.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",h.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",h.INTERSTITIAL_STARTED="hlsInterstitialStarted",h.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",h.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",h.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",h.INTERSTITIAL_ENDED="hlsInterstitialEnded",h.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",h.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",h.EVENT_CUE_ENTER="hlsEventCueEnter",h);var Z="manifest",J="level",ee="audioTrack",et="subtitleTrack",ei="main",es="audio",er="subtitle";class ea{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_}}class en{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_
44=new ea(e),this.fast_=new ea(t),this.defaultTTFB_=s,this.ttfb_=new ea(e)}update(e,t){let{slow_:i,fast_:s,ttfb_:r}=this;i.halfLife!==e&&(this.slow_=new ea(e,i.getEstimate(),i.getTotalWeight())),s.halfLife!==t&&(this.fast_=new ea(t,s.getEstimate(),s.getTotalWeight())),r.halfLife!==e&&(this.ttfb_=new ea(e,r.getEstimate(),r.getTotalWeight()))}sample(e,t){let i=(e=Math.max(e,this.minDelayMs_))/1e3,s=8*t/i;this.fast_.sample(i,s),this.slow_.sample(i,s)}sampleTTFB(e){let t=Math.sqrt(2)*Math.exp(-Math.pow(e/1e3,2)/2);this.ttfb_.sample(t,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_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function el(){return(el=Object.assign.bind()).apply(null,arguments)}function eo(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function ed(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?eo(Object(i),!0).forEach(function(t){var s,r;s=t,r=i[t],(s=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if("object"!=typeof s)return s;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(s))in e?Object.defineProperty(e,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[s]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):eo(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}class eh{constructor(e,t){this.trace=void 0,this.debug=void 0,this.log=void 0,this.warn=void 0,this.info=void 0,this.error=void 0;const i=`[${e}]:`;this.trace=eu,this.debug=t.debug.bind(null,i),this.log=t.log.bind(null,i),this.warn=t.warn.bind(null,i),this.info=t.info.bind(null,i),this.error=t.error.bind(null,i)}}let eu=function(){},ec={trace:eu,debug:eu,log:eu,warn:eu,info:eu,error:eu};function ef(){return el({},ec)}function em(e,t,i){let s;return t[e]?t[e].bind(t):(s=self.console[e])?s.bind(self.console,`${i?"["+i+"] ":""}[${e}] >`):eu}let eg=ef();function ep(e=!0){if(!("u"<typeof self))return(e||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function ev(e,t){let i=Object.keys(e),s=Object.keys(t),r=i.length,a=s.length;return!r||!a||r===a&&!i.some(e=>-1===s.indexOf(e))}function eE(e,t=!1){let i,s;if("u">typeof TextDecoder){let i=new TextDecoder("utf-8").decode(e);if(t){let e=i.indexOf("\0");return -1!==e?i.substring(0,e):i}return i.replace(/\0/g,"")}let r=e.length,a="",n=0;for(;n<r&&(0!==(i=e[n++])||!t);)if(0!==i&&3!==i)switch(i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:a+=String.fromCharCode(i);break;case 12:case 13:a+=String.fromCharCode((31&i)<<6|63&(s=e[n++]));break;case 14:a+=String.fromCharCode((15&i)<<12|(63&(s=e[n++]))<<6|63&e[n++])}return a}function eb(e){let t="";for(let i=0;i<e.length;i++){let s=e[i].toString(16);s.length<2&&(s="0"+s),t+=s}return t}function ey(e){return Uint8Array.from(e.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}var eT={exports:{}},eA=g?eT.exports:(g=1,s=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,r=/^(?=([^\/?#]*))\1([^]*)$/,a=/(?:\/|^)\.(?=\/)/g,n=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,eT.exports=l={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var s=l.parseURL(e);if(!s)throw Error("Error trying to parse base URL.");return s.path=l.normalizePath(s.path),l.buildURLFromParts(s)}var a=l.parseURL(t);if(!a)throw Error("Error trying to parse relative URL.");
44if(a.scheme)return i.alwaysNormalize?(a.path=l.normalizePath(a.path),l.buildURLFromParts(a)):t;var n=l.parseURL(e);if(!n)throw Error("Error trying to parse base URL.");if(!n.netLoc&&n.path&&"/"!==n.path[0]){var o=r.exec(n.path);n.netLoc=o[1],n.path=o[2]}n.netLoc&&!n.path&&(n.path="/");var d={scheme:n.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(d.netLoc=n.netLoc,"/"!==a.path[0]))if(a.path){var h=n.path,u=h.substring(0,h.lastIndexOf("/")+1)+a.path;d.path=l.normalizePath(u)}else d.path=n.path,!a.params&&(d.params=n.params,a.query||(d.query=n.query));return null===d.path&&(d.path=i.alwaysNormalize?l.normalizePath(a.path):a.path),l.buildURLFromParts(d)},parseURL:function(e){var t=s.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(a,"");e.length!==(e=e.replace(n,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},eT.exports);class eS{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}}}var eI="audio",eL="video",ek="audiovideo";class eR{constructor(e){this._byteRange=null,this._url=null,this._stats=null,this._streams=null,this.base=void 0,this.relurl=void 0,"string"==typeof e&&(e={url:e}),this.base=e,function(e,t){let i=function e(t,i){let s=Object.getPrototypeOf(t);if(s){let t=Object.getOwnPropertyDescriptor(s,i);return t||e(s,i)}}(e,t);i&&(i.enumerable=!0,Object.defineProperty(e,t,i))}(this,"stats")}setByteRange(e,t){let i,s=e.split("@",2);i=1===s.length?(null==t?void 0:t.byteRangeEndOffset)||0:parseInt(s[1]),this._byteRange=[i,parseInt(s[0])+i]}get baseurl(){return this.base.url}get byteRange(){return null===this._byteRange?[]:this._byteRange}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get elementaryStreams(){return null===this._streams&&(this._streams={[eI]:null,[eL]:null,[ek]:null}),this._streams}set elementaryStreams(e){this._streams=e}get hasStats(){return null!==this._stats}get hasStreams(){return null!==this._streams}get stats(){return null===this._stats&&(this._stats=new eS),this._stats}set stats(e){this._stats=e}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=eA.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(e){this._url=e}clearElementaryStreamInfo(){let{elementaryStreams:e}=this;e[eI]=null,e[eL]=null,e[ek]=null}}function eM(e){return"initSegment"!==e.sn}class eC extends eR{constructor(e,t){super(t),this._decryptdata=null,this._programDateTime=null,this._ref=null,this._bitrate=void 0,this.rawProgramDateTime=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.playlistOffset=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=e}get byteLength(){if(this.hasStats){let e=this.stats.total;if(e)return e}if(this.byteRange.length){let e=this.byteRange[0],t=this.byteRange[1];if(j(e)&&j(t))return t-e}return null}get bitrate(){return this.byteLength?8*this.byteLength/this.duration:this._bitrate?this._bitrate:null}set bitrate(e){this._bitrate=e}get decryptdata(){var e;let{levelkeys:t}=this;if(!t||t.NONE)return null;if(t.identity)this._decryptdata||(this._decryptdata=t.identity.getDecryptData(this.sn));else if(!(null!=(e=this._decryptdata)&&e.keyId)){let e=Object.keys(t);if(1===e.length){let i=this._decryptdata=t[e[0]]||null;i&&(this._decryptdata=i.getDecryptData(this.sn,t))}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(null===this.programDateTime)return null;let e=j(this.duration)?this.duration:0;return this.programDateTime+1e3*e}get encrypted(){var e,t;if(null!=(e=this._decryptdata)&&e.encrypted)return!0;
44if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||1===i&&null!=(t=this.levelkeys[e[0]])&&t.encrypted)return!0}return!1}get programDateTime(){return null===this._programDateTime&&this.rawProgramDateTime&&(this.programDateTime=Date.parse(this.rawProgramDateTime)),this._programDateTime}set programDateTime(e){if(!j(e)){this._programDateTime=this.rawProgramDateTime=null;return}this._programDateTime=e}get ref(){return eM(this)?(this._ref||(this._ref={base:this.base,start:this.start,duration:this.duration,sn:this.sn,programDateTime:this.programDateTime}),this._ref):null}addStart(e){this.setStart(this.start+e)}setStart(e){this.start=e,this._ref&&(this._ref.start=e)}setDuration(e){this.duration=e,this._ref&&(this._ref.duration=e)}setKeyFormat(e){let t=this.levelkeys;if(t){var i;let s=t[e];s&&!(null!=(i=this._decryptdata)&&i.keyId)&&(this._decryptdata=s.getDecryptData(this.sn,t))}}abortRequests(){var e,t;null==(e=this.loader)||e.abort(),null==(t=this.keyLoader)||t.abort()}setElementaryStreamInfo(e,t,i,s,r,a=!1){let{elementaryStreams:n}=this,l=n[e];if(!l){n[e]={startPTS:t,endPTS:i,startDTS:s,endDTS:r,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,r)}}class e_ extends eR{constructor(e,t,i,s,r){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.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;const a=e.enumeratedString("BYTERANGE");a&&this.setByteRange(a,r),r&&(this.fragOffset=r.fragOffset+r.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)}}let ew=[].push,eD={video:1,audio:2,id3:3,text:4};function ex(e){return String.fromCharCode.apply(null,e)}function eP(e,t){let i=e[t]<<8|e[t+1];return i<0?65536+i:i}function eO(e,t){let i=eN(e,t);return i<0?0x100000000+i:i}function eU(e,t){let i=eO(e,t);return i*=0x100000000,i+=eO(e,t+4)}function eN(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function eF(e,t){let i=[];if(!t.length)return i;let s=e.byteLength;for(let r=0;r<s;){let a=eO(e,r),n=ex(e.subarray(r+4,r+8)),l=a>1?r+a:s;if(n===t[0])if(1===t.length)i.push(e.subarray(r+8,l));else{let s=eF(e.subarray(r+8,l),t.slice(1));s.length&&ew.apply(i,s)}r=l}return i}function eB(e){let t=[],i=eF(e,["moov","trak"]);for(let e=0;e<i.length;e++){let s=i[e],r=eF(s,["tkhd"])[0];if(r){let e=r[0],i=eO(r,0===e?12:20),a=eF(s,["mdia","mdhd"])[0];if(a){e=a[0];let r=eO(a,0===e?12:20),n=eF(s,["mdia","hdlr"])[0];if(n){let e=ex(n.subarray(8,12)),a={soun:eI,vide:eL}[e],l=function(e){let t,i=e.subarray(8),s=i.subarray(86),r=ex(i.subarray(4,8)),a=r,n="enca"===r||"encv"===r;if(n){let e=eF(i,[r])[0].subarray("enca"===r?28:78);eF(e,["sinf"]).forEach(e=>{let t=eF(e,["schm"])[0];if(t){let i=ex(t.subarray(4,8));if("cbcs"===i||"cenc"===i){let t=eF(e,["frma"])[0];t&&(a=ex(t))}}})}let l=a;switch(a){case"avc1":case"avc2":case"avc3":case"avc4":{let e=eF(s,["avcC"])[0];e&&e.length>3&&(a+="."+eG(e[1])+eG(e[2])+eG(e[3]),t=e$("avc1"===l?"dva1":"dvav",s));break}case"mp4a":{let e=eF(i,[r])[0],t=eF(e.subarray(28),["esds"])[0];if(t&&t.length>7){let e=4;if(3!==t[e++])break;e=eH(t,e)+2;let i=t[e++];if(128&i&&(e+=2),64&i&&(e+=t[e++]),4!==t[e++])break;e=eH(t,e);let s=t[e++];if(64===s)a+="."+eG(s);else break;if(e+=12,5!==t[e++])break;e=eH(t,e);let r=t[e++],n=(248&r)>>3;31===n&&(n+=1+((7&r)<<3)+((224&t[e])>>5)),a+="."+n}break}case"hvc1":case"hev1":{let e=eF(s,["hvcC"])[0];if(e&&e.length>12){let t=e[1],i=["","A","B","C"][t>>6],s=eO(e,2),r=e[12],n=e.subarray(6,12);a+="."+i+(31&t),a+="."+(function(e){let t=0;for(let i=0;i<32;i++)t|=(e>>i&1)<<31-i;return t>>>0})(s).toString(16).toUpperCase(),a+="."+((32&t)>>5?"H":"L")+r;let l="";for(let e=n.length;e--;){let t=n[e];(t||l)&&(l="."+t.toString(16).toUpperCase()+l)}a+=l}t=e$("hev1"==l?"dvhe":"dvh1",s);break}case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":a=e$(a,s)||a;break;case"vp09":{let e=eF(s,["vpcC"])[0];if(e&&e.length>6){let t=e[4],i=e[5],s=e[6]>>4&15;a+="."+eV(t)+"."+eV(i)+"."+eV(s)}break}case"av01":{let e=eF(s,["av1C"])[0];if(e&&e.length>2){let i=e[1]>>>5,r=31&e[1],n=e[2]>>>7?"H":"M",l=(64&e[2])>>6,o=(32&e[2])>>5,d=(16&e[2])>>4,h=(8&e[2])>>3,u=(4&e[2])>>2,c=3&e[2];a+="."+i+"."+eV(r)+n+"."+eV(2===i&&l?o?12:10:l?10:8)+"."+d+"."+h+u+c+"."+eV(1)+"."+eV(1)+"."+eV(1)+".0",t=e$("dav1",s)}}}return{codec:a,encrypted:n,supplemental:t}}(eF(s,["mdia","minf","stbl","stsd"])[0]);a?(t[i]={timescale:r,type:a,stsd:l},t[a]=ed({timescale:r,id:i},l)):t[i]={timescale:r,type:e,stsd:l}}}}}
44return eF(e,["moov","mvex","trex"]).forEach(e=>{let i=t[eO(e,4)];i&&(i.default={duration:eO(e,12),flags:eO(e,20)})}),t}function e$(e,t){let i=eF(t,["dvvC"]),s=i.length?i[0]:eF(t,["dvcC"])[0];if(s){let t=s[2]>>1&127,i=s[2]<<5&32|s[3]>>3&31;return e+"."+eV(t)+"."+eV(i)}}function eH(e,t){let i=t+5;for(;128&e[t++]&&t<i;);return t}function eG(e){return("0"+e.toString(16).toUpperCase()).slice(-2)}function eV(e){return(e<10?"0":"")+e}function eW(e,t){eF(e,["moov","trak"]).forEach(e=>{let i=eF(e,["mdia","minf","stbl","stsd"])[0];if(!i)return;let s=i.subarray(8),r=eF(s,["enca"]),a=r.length>0;a||(r=eF(s,["encv"])),r.forEach(e=>{eF(a?e.subarray(28):e.subarray(78),["sinf"]).forEach(e=>{let i=eK(e);i&&t(i,a)})})})}function eK(e){let t=eF(e,["schm"])[0];if(t){let i=ex(t.subarray(4,8));if("cbcs"===i||"cenc"===i){let t=eF(e,["schi","tenc"])[0];if(t)return t}}}function ej(e,t){let i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i}function eq(e,t){let i=[],s=t.samples,r=t.timescale,a=t.id,n=!1;return eF(s,["moof"]).map(l
44=>{let o=l.byteOffset-8;eF(l,["traf"]).map(l=>{let d=eF(l,["tfdt"]).map(e=>{let t=e[0],i=eO(e,4);return 1===t&&(i*=0x100000000,i+=eO(e,8)),i/r})[0];return void 0!==d&&(e=d),eF(l,["tfhd"]).map(d=>{let h=eO(d,4),u=0xffffff&eO(d,0),c=0,f=0,m=8;h===a&&((1&u)!=0&&(m+=8),(2&u)!=0&&(m+=4),(8&u)!=0&&(c=eO(d,m),m+=4),(16&u)!=0&&(f=eO(d,m),m+=4),(32&u)!=0&&(m+=4),"video"===t.type&&(n=eY(t.codec)),eF(l,["trun"]).map(a=>{let l=a[0],d=0xffffff&eO(a,0),h=0,u=(256&d)!=0,m=0,g=(512&d)!=0,p=0,v=(1024&d)!=0,E=(2048&d)!=0,b=0,y=eO(a,4),T=8;(1&d)!=0&&(h=eO(a,T),T+=4),(4&d)!=0&&(T+=4);let A=h+o;for(let o=0;o<y;o++){if(u?(m=eO(a,T),T+=4):m=c,g?(p=eO(a,T),T+=4):p=f,v&&(T+=4),E&&(b=0===l?eO(a,T):eN(a,T),T+=4),t.type===eL){let t=0;for(;t<p;){let a=eO(s,A);A+=4,function(e,t){if(!e)return 6==(31&t);{let e=t>>1&63;return 39===e||40===e}}(n,s[A])&&eQ(s.subarray(A,A+a),n?2:1,e+b/r,i),A+=a,t+=a+4}}e+=m/r}}))})})}),i}function eY(e){if(!e)return!1;let t=e.substring(0,4);return"hvc1"===t||"hev1"===t||"dvh1"===t||"dvhe"===t}function eQ(e,t,i,s){let r,a=ez(e);r=0+t;let n=0,l=0,o=0;for(;r<a.length;){n=0;do{if(r>=a.length)break;n+=o=a[r++]}while(255===o)l=0;do{if(r>=a.length)break;l+=o=a[r++]}while(255===o)let e=a.length-r,t=r;if(l<e)r+=l;else if(l>e){eg.error(`Malformed SEI payload. ${l} is too small, only ${e} bytes left to parse.`);break}if(4===n){if(181===a[t++]){let e=eP(a,t);if(t+=2,49===e){let e=eO(a,t);if(t+=4,0x47413934===e){let e=a[t++];if(3===e){let r=a[t++],l=31&r,o=64&r,d=o?2+3*l:0,h=new Uint8Array(d);if(o){h[0]=r;for(let e=1;e<d;e++)h[e]=a[t++]}s.push({type:e,payloadType:n,pts:i,bytes:h})}}}}}else if(5===n&&l>16){let e=[];for(let i=0;i<16;i++){let s=a[t++].toString(16);e.push(1==s.length?"0"+s:s),(3===i||5===i||7===i||9===i)&&e.push("-")}let r=l-16,o=new Uint8Array(r);for(let e=0;e<r;e++)o[e]=a[t++];s.push({payloadType:n,pts:i,uuid:e.join(""),userData:eE(o),userDataBytes:o})}}}function ez(e){let t=e.byteLength,i=[],s=1;for(;s<t-2;)0===e[s]&&0===e[s+1]&&3===e[s+2]?(i.push(s+2),s+=2):s++;if(0===i.length)return e;let r=t-i.length,a=new Uint8Array(r),n=0;for(s=0;s<r;n++,s++)n===i[0]&&(n++,i.shift()),a[s]=e[n];return a}let eX={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,dav1:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function eZ(e,t){let i=eX[t];return!!i&&!!i[e.slice(0,4)]}function eJ(e,t,i=!0){return!e.split(",").some(e=>!e0(e,t,i))}function e0(e,t,i=!0){var s;let r=ep(i);return null!=(s=null==r?void 0:r.isTypeSupported(e1(e,t)))&&s}function e1(e,t){return`${t}/mp4;codecs=${e}`}function e2(e){if(e){let t=e.substring(0,4);return eX.video[t]}return 2}function e3(e){let t=/\(Windows.+Firefox\//i.test(navigator.userAgent);return e.split(",").reduce((e,i)=>{let s=t&&eY(i)?9:eX.video[i];return s?(2*s+e)/(e?3:2):(eX.audio[i]+e)/(e?2:1)},0)}let e4={},e5=/flac|opus|mp4a\.40\.34/i;function e8(e,t=!0){return e.replace(e5,e=>(function(e,t=!0){if(e4[e])return e4[e];let i={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[e];for(let r=0;r<i.length;r++){var s;if(e0(i[r],"audio",t))return e4[e]=i[r],i[r];if("mp3"===i[r]&&null!=(s=ep(t))&&s.isTypeSupported("audio/mpeg"))return""}return e})(e.toLowerCase(),t))}function e6(e,t){if(e&&(e.length>4||-1!==["ac-3","ec-3","alac","fLaC","Opus"].indexOf(e))&&(e9(e,"audio")||e9(e,"video")))return e;if(t){let i=t.split(",");if(i.length>1){if(e){for(let t=i.length;t--;)if(i[t].substring(0,4)===e.substring(0,4))return i[t]}return i[0]}}return t||e}function e9(e,t){return eZ(e,t)&&e0(e,t)}function e7(e){let t=ep(e)||{isTypeSupported:()=>!1};return{mpeg:t.isTypeSupported("audio/mpeg"),mp3:t.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:t.isTypeSupported('audio/mp4; codecs="ac-3"')}}function te(e){return e.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}let tt={supported:!1,smooth:!1,powerEfficient:!1},ti={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]};function ts(e,t){return{supported:!1,configurations:t,decodingInfoResults:[tt],error:e}}function tr(e,t,i,s={}){var r,a,n,l,o,d;let h,u,c,f,m,g,p,v,E=e.videoCodec;if(!E&&!e.audioCodec||!i)return Promise.resolve(ti);let b=[],y=(h=null==(a=(r=e).videoCodec)?void 0:a.split(","),u=ta(r),c=r.width||640,f=r.height||480,m=r.frameRate||30,g=r.videoRange.toLowerCase(),h?h.map(e=>{let t={contentType:e1(function(e){if(e.startsWith("av01.")){let t=e.split("."),i=["0","111","01","01","01","0"];for(let e=t.length;e>4&&e<10;e++)t[e]=i[e-4];return t.join(".")}return e}(e),"video"),width:c,height:f,bitrate:u,framerate:m};return"sdr"!==g&&(t.transferFunction=g),t}):[]),T=y.length,A=(n=e,l=t,o=T>0,p=null==(d=n.audioCodec)?void 0:d.split(","),v=ta(n),p&&n.audioGroups?n.audioGroups.reduce((e,t)=>
44{var i;let s=t?null==(i=l.groups[t])?void 0:i.tracks:null;return s?s.reduce((e,i)=>{if(i.groupId===t){let t=parseFloat(i.channels||"");p.forEach(i=>{let s={contentType:e1(i,"audio"),bitrate:o?function(e,t){if(t<=1)return 1;let i=128e3;return"ec-3"===e?i=768e3:"ac-3"===e&&(i=64e4),Math.min(t/2,i)}(i,v):v};t&&(s.channels=""+t),e.push(s)})}return e},e):e},[]):[]),S=A.length;for(let e=T||+S||1;e--;){let t={type:"media-source"};if(T&&(t.video=y[e%T]),S){t.audio=A[e%S];let i=t.audio.bitrate;t.video&&i&&(t.video.bitrate-=i)}b.push(t)}if(E){let e=navigator.userAgent;if(E.split(",").some(e=>eY(e))&&/\(Windows.+Firefox\//i.test(navigator.userAgent))return Promise.resolve(ts(Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${e})`),b))}return Promise.all(b.map(e=>{let t=function(e){let t="",{audio:i,video:s}=e;if(s){let e=te(s.contentType);t+=`${e}_r${s.height}x${s.width}f${Math.ceil(s.framerate)}${s.transferFunction||"sd"}_${Math.ceil(s.bitrate/1e5)}`}if(i){let e=te(i.contentType);t+=`${s?"_":""}${e}_c${i.channels}`}return t}(e);return s[t]||(s[t]=i.decodingInfo(e))})).then(e=>({supported:!e.some(e=>!e.supported),configurations:b,decodingInfoResults:e})).catch(e=>({supported:!1,configurations:b,decodingInfoResults:[],error:e}))}function ta(e){return 1e3*Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)/1e3)||1}let tn=["NONE","TYPE-0","TYPE-1",null],tl=["SDR","PQ","HLG"];function to(e){let{canSkipUntil:t,canSkipDateRanges:i,age:s}=e;return t&&s<t/2?i?"v2":"YES":""}class td{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 void 0!==this.msn&&t.searchParams.set("_HLS_msn",this.msn.toString()),void 0!==this.part&&t.searchParams.set("_HLS_part",this.part.toString()),this.skip&&t.searchParams.set("_HLS_skip",this.skip),t.href}}class th{constructor(e){if(this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.supplemental=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[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.frameRate=e.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=e.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.codecSet=[e.videoCodec,e.audioCodec].filter(e=>!!e).map(e=>e.substring(0,4)).join(","),"supplemental"in e){var t;this.supplemental=e.supplemental;const i=null==(t=e.supplemental)?void 0:t.videoCodec;i&&i!==e.videoCodec&&(this.codecSet+=`,${i.substring(0,4)}`)}this.addGroupId("audio",e.attrs.AUDIO),this.addGroupId("text",e.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(e){return tu(this._audioGroups,e)}hasSubtitleGroup(e){return tu(this._subtitleGroups,e)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(e,t){if(t){if("audio"===e){let e=this._audioGroups;e||(e=this._audioGroups=[]),-1===e.indexOf(t)&&e.push(t)}else if("text"===e){let e=this._subtitleGroups;e||(e=this._subtitleGroups=[]),-1===e.indexOf(t)&&e.push(t)}}}get urlId(){return 0}set urlId(e){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var e;return null==(e=this.audioGroups)?void 0:e[0]}get textGroupId(){var e;return null==(e=this.subtitleGroups)?void 0:e[0]}addFallback(){}}function tu(e,t){return!!t&&!!e&&-1!==e.indexOf(t)}let tc=(e,t)=>{let i;return JSON.stringify(e,(i=new WeakSet,(e,s)=>{if(t&&(s=t(e,s)),"object"==typeof s&&null!==s){if(i.has(s))return;i.add(s)}return s}))};function tf(e,t){eg.log(`[abr] start candidates with "${e}" ignored because ${t}`)}function tm(e){return e.reduce((e,t)=>
44{let i=e.groups[t.groupId];i||(i=e.groups[t.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),i.tracks.push(t);let s=t.channels||"2";return i.channels[s]=(i.channels[s]||0)+1,i.hasDefault=i.hasDefault||t.default,i.hasAutoSelect=i.hasAutoSelect||t.autoselect,i.hasDefault&&(e.hasDefaultAudio=!0),i.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function tg(e){if(!e)return e;let{lang:t,assocLang:i,characteristics:s,channels:r,audioCodec:a}=e;return{lang:t,assocLang:i,characteristics:s,channels:r,audioCodec:a}}function tp(e,t,i){if("attrs"in e){let i=t.indexOf(e);if(-1!==i)return i}for(let s=0;s<t.length;s++)if(tv(e,t[s],i))return s;return -1}function tv(e,t,i){let{groupId:s,name:r,lang:a,assocLang:n,default:l}=e,o=e.forced;return(void 0===s||t.groupId===s)&&(void 0===r||t.name===r)&&(void 0===a||function(e,t="--"){return e.length===t.length?e===t:e.startsWith(t)||t.startsWith(e)}(a,t.lang))&&(void 0===a||t.assocLang===n)&&(void 0===l||t.default===l)&&(void 0===o||t.forced===o)&&(!("characteristics"in e)||function(e,t=""){let i=e.split(","),s=t.split(",");return i.length===s.length&&!i.some(e=>-1===s.indexOf(e))}(e.characteristics||"",t.characteristics))&&(void 0===i||i(e,t))}function tE(e,t){let{audioCodec:i,channels:s}=e;return(void 0===i||(t.audioCodec||"").substring(0,4)===i.substring(0,4))&&(void 0===s||s===(t.channels||"2"))}function tb(e,t,i){for(let s=t;s>-1;s--)if(i(e[s]))return s;for(let s=t+1;
44s<e.length;s++)if(i(e[s]))return s;return -1}function ty(e,t){var i;return!!e&&e!==(null==(i=t.loadLevelObj)?void 0:i.uri)}let tT=function(e,t){let i=0,s=e.length-1,r=null,a=null;for(;i<=s;){let n=t(a=e[r=(i+s)/2|0]);if(n>0)i=r+1;else{if(!(n<0))return a;s=r-1}}return null};function tA(e,t,i=0,s=0,r=.005){let a=null;if(e){a=t[1+e.sn-t[0].sn]||null;let s=e.endDTS-i;s>0&&s<15e-7&&(i+=15e-7),a&&e.level!==a.level&&a.end<=e.end&&(a=t[2+e.sn-t[0].sn]||null)}else 0===i&&0===t[0].start&&(a=t[0]);if(a&&((!e||e.level===a.level)&&0===tS(i,s,a)||function(e,t,i){if(t&&0===t.start&&t.level<e.level&&(t.endPTS||0)>0){let s=t.tagList.reduce((e,t)=>("INF"===t[0]&&(e+=parseFloat(t[1])),e),i);return e.start<=s}return!1}(a,e,Math.min(r,s))))return a;let n=tT(t,tS.bind(null,i,s));return n&&(n!==e||!a)?n:a}function tS(e=0,t=0,i){if(i.start<=e&&i.start+i.duration>e)return 0;let s=Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-s<=e?1:i.start-s>e&&i.start?-1:0}function tI(e,t,i){if(e&&e.startCC<=t&&e.endCC>=t){let s,r=e.fragments,{fragmentHint:a}=e;return a&&(r=r.concat(a)),tT(r,e=>e.cc<t?1:e.cc>t?-1:(s=e,e.end<=i)?1:e.start>i?-1:0),s||null}return null}function tL(e){switch(e.details){case z.FRAG_LOAD_TIMEOUT:case z.KEY_LOAD_TIMEOUT:case z.LEVEL_LOAD_TIMEOUT:case z.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function tk(e){return e.details.startsWith("key")}function tR(e){return tk(e)&&!!e.frag&&!e.frag.decryptdata}function tM(e,t){let i=tL(t);return e.default[`${i?"timeout":"error"}Retry`]}function tC(e,t){return Math.min(("linear"===e.backoff?1:Math.pow(2,t))*e.retryDelayMs,e.maxRetryDelayMs)}function t_(e){return ed(ed({},e),{errorRetry:null,timeoutRetry:null})}function tw(e,t,i,s){var r;if(!e)return!1;let a=null==s?void 0:s.code,n=t<e.maxNumRetry&&(tD(r=a)||!!r&&(r<400||r>499)||!!i);return e.shouldRetry?e.shouldRetry(e,t,i,s,n):n}function tD(e){return 0===e&&!1===navigator.onLine}function tx(e){let t={action:0,flags:0};return e&&(t.resolved=!0),t}var tP="NOT_LOADED",tO="APPENDING",tU="PARTIAL";class tN{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&&(e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.BUFFER_APPENDED,this.onBufferAppended,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this),e.on(X.FRAG_LOADED,this.onFragLoaded,this))}_unregisterListeners(){let{hls:e}=this;e&&(e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.BUFFER_APPENDED,this.onBufferAppended,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this),e.off(X.FRAG_LOADED,this.onFragLoaded,this))}destroy(){this._unregisterListeners(),this.hls=this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(e,t){let i=this.activePartLists[t];if(i)for(let t=i.length;t--;){let s=i[t];if(!s)break;if(s.start<=e&&e<=s.end&&s.loaded)return s}return this.getBufferedFrag(e,t)}getBufferedFrag(e,t){return this.getFragAtPos(e,t,!0)}getFragAtPos(e,t,i){let{fragments:s}=this,r=Object.keys(s);for(let a=r.length;a--;){let n=s[r[a]];if((null==n?void 0:n.body.type)===t&&(!i||n.buffered)){let t=n.body;if(t.start<=e&&e<=t.end)return t}}return null}detectEvictedFragments(e,t,i,s,r){this.timeRanges&&(this.timeRanges[e]=t);let a=(null==s?void 0:s.fragment.sn)||-1;Object.keys(this.fragments).forEach(s=>{let n=this.fragments[s];if(!n||a>=n.body.sn)return;if(!n.buffered&&(!n.loaded||r)){n.body.type===i&&this.removeFragment(n.body);return}let l=n.range[e];if(l){if(0===l.time.length)return void this.removeFragment(n.body);l.time.some(e=>{let i=!this.isTimeBuffered(e.startPTS,e.endPTS,t);return i&&this.removeFragment(n.body),i})}})}detectPartialFragments(e){let t=this.timeRanges;if(!t||"initSegment"===e.frag.sn)return;let i=e.frag,s=tB(i),r=this.fragments[s];if(!r||r.buffered&&i.gap)return;let a=!i.relurl;Object.keys(t).forEach(s=>{let n=i.elementaryStreams[s];if(!n)return;
44let l=t[s],o=a||!0===n.partial;r.range[s]=this.getBufferedTimes(i,e.part,o,l)}),r.loaded=null,Object.keys(r.range).length?(this.bufferedEnd(r,i),tF(r)||this.removeParts(i.sn-1,i.type)):this.removeFragment(r.body)}bufferedEnd(e,t){e.buffered=!0,(e.body.endList=t.endList||e.body.endList)&&(this.endListFragments[e.body.type]=e)}removeParts(e,t){let i=this.activePartLists[t];i&&(this.activePartLists[t]=t$(i,t=>t.fragment.sn>=e))}fragBuffered(e,t){let i=tB(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,this.bufferedEnd(s,e))}getBufferedTimes(e,t,i,s){let r={time:[],partial:i},a=e.start,n=e.end,l=e.minEndPTS||n,o=e.maxStartPTS||a;for(let e=0;e<s.length;e++){let t=s.start(e)-this.bufferPadding,i=s.end(e)+this.bufferPadding;if(o>=t&&l<=i){r.time.push({startPTS:Math.max(a,s.start(e)),endPTS:Math.min(n,s.end(e))});break}if(a<i&&n>t){let t=Math.max(a,s.start(e)),i=Math.min(n,s.end(e));i>t&&(r.partial=!0,r.time.push({startPTS:t,endPTS:i}))}else if(n<=t)break}return r}getPartialFragment(e){let t,i,s,r=null,a=0,{bufferPadding:n,fragments:l}=this;return Object.keys(l).forEach(o=>{let d=l[o];d&&tF(d)&&(i=d.body.start-n,s=d.body.end+n,e>=i&&e<=s&&a<=(t=Math.min(e-i,s-e))&&(r=d.body,a=t))}),r}isEndListAppended(e){let t=this.endListFragments[e];return void 0!==t&&(t.buffered||tF(t))}getState(e){let t=tB(e),i=this.fragments[t];if(i)if(!i.buffered)return tO;else if(tF(i))return tU;else return"OK";return tP}isTimeBuffered(e,t,i){let s,r;for(let a=0;a<i.length;a++){if(s=i.start(a)-this.bufferPadding,r=i.end(a)+this.bufferPadding,e>=s&&t<=r)return!0;if(t<=s)break}return!1}onManifestLoading(){this.removeAllFragments()}onFragLoaded(e,t){if("initSegment"===t.frag.sn||t.frag.bitrateTest)return;let i=t.frag,s=t.part?null:t,r=tB(i);this.fragments[r]={body:i,appendedPTS:null,loaded:s,buffered:!1,range:Object.create(null)}}onBufferAppended(e,t){let{frag:i,part:s,timeRanges:r,type:a}=t;if("initSegment"===i.sn)return;let n=i.type;if(s){let e=this.activePartLists[n];e||(this.activePartLists[n]=e=[]),e.push(s)}this.timeRanges=r;let l=r[a];this.detectEvictedFragments(a,l,n,s)}onFragBuffered(e,t){this.detectPartialFragments(t)}hasFragment(e){let t=tB(e);return!!this.fragments[t]}hasFragments(e){let{fragments:t}=this,i=Object.keys(t);if(!e)return i.length>0;for(let s=i.length;s--;){let r=t[i[s]];if((null==r?void 0:r.body.type)===e)return!0}return!1}hasParts(e){var t;return!!(null!=(t=this.activePartLists[e])&&t.length)}removeFragmentsInRange(e,t,i,s,r){(!s||this.hasGaps)&&Object.keys(this.fragments).forEach(a=>{let n=this.fragments[a];if(!n)return;let l=n.body;l.type===i&&(!s||l.gap)&&l.start<t&&l.end>e&&(n.buffered||r)&&this.removeFragment(l)})}removeFragment(e){let t=tB(e);e.clearElementaryStreamInfo();let i=this.activePartLists[e.type];if(i){let t=e.sn;this.activePartLists[e.type]=t$(i,e=>e.fragment.sn!==t)}delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]}removeAllFragments(){var e;this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;let t=null==(e=this.hls)||null==(e=e.latestLevelDetails)?void 0:e.partList;t&&t.forEach(e=>e.clearElementaryStreamInfo())}}function tF(e){var t,i,s;return e.buffered&&!!(e.body.gap||null!=(t=e.range.video)&&t.partial||null!=(i=e.range.audio)&&i.partial||null!=(s=e.range.audiovideo)&&s.partial)}function tB(e){return`${e.type}_${e.level}_${e.sn}`}function t$(e,t){return e.filter(e=>{let i=t(e);return i||e.clearElementaryStreamInfo(),i})}class tH{constructor(e,t,i){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=e,this.aesIV=t,this.aesMode=i}decrypt(e,t){switch(this.aesMode){case 0:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e);case 1:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},t,e);default:throw Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}}class tG{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 e=0;e<4;e++)i[e]=t.getUint32(4*e);return i}initTable(){let e=this.sBox,t=this.invSBox,i=this.subMix,s=i[0],r=i[1],a=i[2],n=i[3],l=this.invSubMix,o=l[0],d=l[1],h=l[2],u=l[3],c=new Uint32Array(256),f=0,m=0,g=0;for(g=0;g<256;g++)g<128?c[g]=g<<1:c[g]=g<<1^283;for(g=0;g<256;g++){let i=m^m<<1^m<<2^m<<3^m<<4;i=i>>>8^255&i^99,e[f]=i,t[i]=f;let l=c[f],g=c[l],p=c[g],v=257*c[i]^0x1010100*i;s[f]=v<<24|v>>>8,r[f]=v<<16|v>>>16,a[f]=v<<8|v>>>24,n[f]=v,v=0x1010101*p^65537*g^257*l^0x1010100*f,o[i]=v<<24|v>>>8,d[i]=v<<16|v>>>16,h[i]=v<<8|v>>>24,u[i]=v,f?(f=l^c[c[c[p^l]]],m^=c[c[m]]):f=m=1}}expandKey(e){let t,i,s,r,a=this.uint8ArrayToUint32Array_(e),n=!0,l=0;for(;l<a.length&&n;)n=a[l]===this.key[l],l++;if(n)return;this.key=a;let o=this.keySize=a.length;if(4!==o&&6!==o&&8!==o)throw Error("Invalid aes key size="+o);let d=this.ksRows=(o+6+1)*4,h=this.keySchedule=new Uint32Array(d),u=this.invKeySchedule=new Uint32Array(d),c=this.sBox,f=this.rcon,m=this.invSubMix,g=m[0],p=m[1],v=m[2],E=m[3];for(t=0;t<d;
44t++){if(t<o){s=h[t]=a[t];continue}r=s,t%o==0?r=(c[(r=r<<8|r>>>24)>>>24]<<24|c[r>>>16&255]<<16|c[r>>>8&255]<<8|c[255&r])^f[t/o|0]<<24:o>6&&t%o==4&&(r=c[r>>>24]<<24|c[r>>>16&255]<<16|c[r>>>8&255]<<8|c[255&r]),h[t]=s=(h[t-o]^r)>>>0}for(i=0;i<d;i++)t=d-i,r=3&i?h[t]:h[t-4],i<4||t<=4?u[i]=r:u[i]=g[c[r>>>24]]^p[c[r>>>16&255]]^v[c[r>>>8&255]]^E[c[255&r]],u[i]=u[i]>>>0}networkToHostOrderSwap(e){return e<<24|(65280&e)<<8|(0xff0000&e)>>8|e>>>24}decrypt(e,t,i){let s,r,a,n,l,o,d,h,u,c,f,m,g,p,v=this.keySize+6,E=this.invKeySchedule,b=this.invSBox,y=this.invSubMix,T=y[0],A=y[1],S=y[2],I=y[3],L=this.uint8ArrayToUint32Array_(i),k=L[0],R=L[1],M=L[2],C=L[3],_=new Int32Array(e),w=new Int32Array(_.length),D=this.networkToHostOrderSwap;for(;t<_.length;){for(u=D(_[t]),c=D(_[t+1]),f=D(_[t+2]),m=D(_[t+3]),l=u^E[0],o=m^E[1],d=f^E[2],h=c^E[3],g=4,p=1;p<v;p++)s=T[l>>>24]^A[o>>16&255]^S[d>>8&255]^I[255&h]^E[g],r=T[o>>>24]^A[d>>16&255]^S[h>>8&255]^I[255&l]^E[g+1],a=T[d>>>24]^A[h>>16&255]^S[l>>8&255]^I[255&o]^E[g+2],n=T[h>>>24]^A[l>>16&255]^S[o>>8&255]^I[255&d]^E[g+3],l=s,o=r,d=a,h=n,g+=4;s=b[l>>>24]<<24^b[o>>16&255]<<16^b[d>>8&255]<<8^b[255&h]^E[g],r=b[o>>>24]<<24^b[d>>16&255]<<16^b[h>>8&255]<<8^b[255&l]^E[g+1],a=b[d>>>24]<<24^b[h>>16&255]<<16^b[l>>8&255]<<8^b[255&o]^E[g+2],n=b[h>>>24]<<24^b[l>>16&255]<<16^b[o>>8&255]<<8^b[255&d]^E[g+3],w[t]=D(s^k),w[t+1]=D(n^R),w[t+2]=D(a^M),w[t+3]=D(r^C),k=u,R=c,M=f,C=m,t+=4}return w.buffer}}class tV{constructor(e,t,i){this.subtle=void 0,this.key=void 0,this.aesMode=void 0,this.subtle=e,this.key=t,this.aesMode=i}expandKey(){let e=function(e){switch(e){case 0:return"AES-CBC";case 1:return"AES-CTR";default:throw Error(`[FastAESKey] invalid aes mode ${e}`)}}(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},!1,["encrypt","decrypt"])}}class tW{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.enableSoftwareAES=void 0,this.enableSoftwareAES=e.enableSoftwareAES,this.removePKCS7Padding=t,t)try{const e=self.crypto;e&&(this.subtle=e.subtle||e.webkitSubtle)}catch(e){}this.useSoftware=!this.subtle}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);if(this.reset(),this.removePKCS7Padding){let e,t;return(t=(e=i.byteLength)&&new DataView(i.buffer).getUint8(e-1))?i.slice(0,e-t):i}return i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(e,t,i,s){return this.useSoftware?new Promise((r,a)=>{let n=ArrayBuffer.isView(e)?e:new Uint8Array(e);this.softwareDecrypt(n,t,i,s);let l=this.flush();l?r(l.buffer):a(Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(e),t,i,s)}softwareDecrypt(e,t,i,s){let{currentIV:r,currentResult:a,remainderData:n}=this;if(0!==s||16!==t.byteLength)return eg.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),n&&(e=ej(n,e),this.remainderData=null);let l=this.getValidChunk(e);if(!l.length)return null;r&&(i=r);let o=this.softwareDecrypter;return(o||(o=this.softwareDecrypter=new tG),o.expandKey(t),this.currentResult=o.decrypt(l.buffer,0,i),this.currentIV=l.slice(-16).buffer,a)?a:null}webCryptoDecrypt(e,t,i,s){if(this.key!==t||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(e,t,i,s));this.key=t,this.fastAesKey=new tV(this.subtle,t,s)}return this.fastAesKey.expandKey().then(t=>this.subtle?(this.logOnce("WebCrypto AES decrypt"),new tH(this.subtle,new Uint8Array(i),s).decrypt(e.buffer,t)):Promise.reject(Error("web crypto not initialized"))).catch(r=>(eg.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${r.name}: ${r.message}`),this.onWebCryptoError(e,t,i,s)))}
44onWebCryptoError(e,t,i,s){let r=this.enableSoftwareAES;if(r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i,s);let r=this.flush();if(r)return r.buffer}throw Error("WebCrypto"+(r?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(e){let t=e,i=e.length-e.length%16;return i!==e.length&&(t=e.slice(0,i),this.remainderData=e.slice(i)),t}logOnce(e){this.logEnabled&&(eg.log(`[decrypter]: ${e}`),this.logEnabled=!1)}}class tK{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 tY({type:Q.NETWORK_ERROR,details:z.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:Error(`Fragment does not have a ${i?"part list":"url"}`),networkDetails:null}));this.abort();let s=this.config,r=s.fLoader,a=s.loader;return new Promise((n,l)=>{if(this.loader&&this.loader.destroy(),e.gap)if(e.tagList.some(e=>"GAP"===e[0]))return void l(tq(e));else e.gap=!1;let o=this.loader=r?new r(s):new a(s),d=tj(e);e.loader=o;let h=t_(s.fragLoadPolicy.default),u={loadPolicy:h,timeout:h.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===e.sn?1/0:131072};e.stats=o.stats;let c={onSuccess:(t,i,s,r)=>{this.resetLoader(e,o);let a=t.data;s.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(a.slice(0,16)),a=a.slice(16)),n({frag:e,part:null,payload:a,networkDetails:r})},onError:(t,s,r,a)=>{this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:ed({url:i,data:void 0},t),error:Error(`HTTP Error ${t.code} ${t.text}`),networkDetails:r,stats:a}))},onAbort:(t,i,s)=>{this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.INTERNAL_ABORTED,fatal:!1,frag:e,error:Error("Aborted"),networkDetails:s,stats:t}))},onTimeout:(t,i,s)=>{this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:Error(`Timeout after ${u.timeout}ms`),networkDetails:s,stats:t}))}};t&&(c.onProgress=(i,s,r,a)=>t({frag:e,part:null,payload:r,networkDetails:a})),o.load(d,u,c)})}loadPart(e,t,i){this.abort();let s=this.config,r=s.fLoader,a=s.loader;return new Promise((n,l)=>{if(this.loader&&this.loader.destroy(),e.gap||t.gap)return void l(tq(e,t));let o=this.loader=r?new r(s):new a(s),d=tj(e,t);e.loader=o;let h=t_(s.fragLoadPolicy.default),u={loadPolicy:h,timeout:h.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:131072};t.stats=o.stats,o.load(d,u,{onSuccess:(s,r,a,l)=>{this.resetLoader(e,o),this.updateStatsFromPart(e,t);let d={frag:e,part:t,payload:s.data,networkDetails:l};i(d),n(d)},onError:(i,s,r,a)=>{this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:t,response:ed({url:d.url,data:void 0},i),error:Error(`HTTP Error ${i.code} ${i.text}`),networkDetails:r,stats:a}))},onAbort:(i,s,r)=>{e.stats.aborted=t.stats.aborted,this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.INTERNAL_ABORTED,fatal:!1,frag:e,part:t,error:Error("Aborted"),networkDetails:r,stats:i}))},onTimeout:(i,s,r)=>{this.resetLoader(e,o),l(new tY({type:Q.NETWORK_ERROR,details:z.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:t,error:Error(`Timeout after ${u.timeout}ms`),networkDetails:r,stats:i}))}})})}updateStatsFromPart(e,t){let i=e.stats,s=t.stats,r=s.total;if(i.loaded+=s.loaded,r){let s=Math.round(e.duration/t.duration),a=Math.min(Math.round(i.loaded/r),s),n=(s-a)*Math.round(i.loaded/a);i.total=i.loaded+n}else i.total=Math.max(i.loaded,i.total);let a=i.loading,n=s.loading;a.start?a.first+=n.first-n.start:(a.start=n.start,a.first=n.first),a.end=n.end}resetLoader(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()}}function tj(e,t=null){let i=t||e,s={frag:e,part:t,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},r=i.byteRangeStartOffset,a=i.byteRangeEndOffset;if(j(r)&&j(a)){var n,l;let t=r,i=a;if("initSegment"===e.sn&&("AES-128"===(l=null==(n=e.decryptdata)?void 0:n.method)||"AES-256"===l)){let e=a-r;e%16&&(i=a+(16-e%16)),0!==r&&(s.resetIV=!0,t=r-16)}s.rangeStart=t,s.rangeEnd=i}return s}function tq(e,t){let i=Error(`GAP ${e.gap?"tag":"attribute"} found`),s={type:Q.MEDIA_ERROR,details:z.FRAG_GAP,fatal:!1,frag:e,error:i,networkDetails:null};return t&&(s.part=t),(t||e).stats.aborted=!0,new tY(s)}
44class tY extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e}}class tQ extends eh{constructor(e,t){super(e,t),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&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}class tz{constructor(e,t,i,s=0,r=-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=tX(),this.buffering={audio:tX(),video:tX(),audiovideo:tX()},this.level=e,this.sn=t,this.id=i,this.size=s,this.part=r,this.partial=a}}function tX(){return{start:0,executeStart:0,executeEnd:0,end:0}}let tZ={length:0,start:()=>0,end:()=>0};class tJ{static isBuffered(e,t){if(e){let i=tJ.getBuffered(e);for(let e=i.length;e--;)if(t>=i.start(e)&&t<=i.end(e))return!0}return!1}static bufferedRanges(e){if(e){let t=tJ.getBuffered(e);return tJ.timeRangesToArray(t)}return[]}static timeRangesToArray(e){let t=[];for(let i=0;i<e.length;i++)t.push({start:e.start(i),end:e.end(i)});return t}static bufferInfo(e,t,i){if(e){let s=tJ.bufferedRanges(e);if(s.length)return tJ.bufferedInfo(s,t,i)}return{len:0,start:t,end:t,bufferedIndex:-1}}static bufferedInfo(e,t,i){let s;t=Math.max(0,t),e.length>1&&e.sort((e,t)=>e.start-t.start||t.end-e.end);let r=-1,a=[];if(i)for(let s=0;s<e.length;s++){t>=e[s].start&&t<=e[s].end&&(r=s);let n=a.length;if(n){let t=a[n-1].end;e[s].start-t<i?e[s].end>t&&(a[n-1].end=e[s].end):a.push(e[s])}else a.push(e[s])}else a=e;let n=0,l=t,o=t;for(let e=0;e<a.length;e++){let d=a[e].start,h=a[e].end;if(-1===r&&t>=d&&t<=h&&(r=e),t+i>=d&&t<h)l=d,n=(o=h)-t;else if(t+i<d){s=d;break}}return{len:n,start:l||0,end:o||0,nextStart:s,buffered:e,bufferedIndex:r}}static getBuffered(e){try{return e.buffered||tZ}catch(e){return eg.log("failed to get media.buffered",e),tZ}}}let t0=/\{\$([a-zA-Z0-9-_]+)\}/g;function t1(e,t){if(null!==e.variableList||e.hasVariableRefs){let i=e.variableList;return t.replace(t0,t=>{let s=t.substring(2,t.length-1),r=null==i?void 0:i[s];return void 0===r?(e.playlistParsingError||(e.playlistParsingError=Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),t):r})}return t}function t2(e,t,i){let s,r,a=e.variableList;if(a||(e.variableList=a={}),"QUERYPARAM"in t){s=t.QUERYPARAM;try{let e=new self.URL(i).searchParams;if(e.has(s))r=e.get(s);else throw Error(`"${s}" does not match any query parameter in URI: "${i}"`)}catch(t){e.playlistParsingError||(e.playlistParsingError=Error(`EXT-X-DEFINE QUERYPARAM: ${t.message}`))}}else s=t.NAME,r=t.VALUE;s in a?e.playlistParsingError||(e.playlistParsingError=Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${s}"`)):a[s]=r||""}let t3=/^(\d+)x(\d+)$/,t4=/(.+?)=(".*?"|.*?)(?:,|$)/g;class t5{constructor(e,t){"string"==typeof e&&(e=t5.parseAttrList(e,t)),el(this,e)}get clientAttrs(){return Object.keys(this).filter(e=>"X-"===e.substring(0,2))}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),i=new Uint8Array((t=(1&t.length?"0":"")+t).length/2);for(let e=0;e<t.length/2;e++)i[e]=parseInt(t.slice(2*e,2*e+2),16);return i}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]}enumeratedStringList(e,t){let i=this[e];return(i?i.split(/[ ,]+/):[]).reduce((e,t)=>
44(e[t.toLowerCase()]=!0,e),t)}bool(e){return"YES"===this[e]}decimalResolution(e){let t=t3.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}}static parseAttrList(e,t){let i,s={};for(t4.lastIndex=0;null!==(i=t4.exec(e));){let r=i[1].trim(),a=i[2],n=0===a.indexOf('"')&&a.lastIndexOf('"')===a.length-1,l=!1;if(n)a=a.slice(1,-1);else switch(r){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":l=!0}if(t&&(n||l))a=t1(t,a);else if(!l&&!n)switch(r){case"CLOSED-CAPTIONS":if("NONE"===a)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":eg.warn(`${e}: attribute ${r} is missing quotes`)}s[r]=a}return s}}class t8{constructor(e,t,i=0){var s;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==t?void 0:t.tagAnchor)||null,this.tagOrder=null!=(s=null==t?void 0:t.tagOrder)?s:i,t){const i=t.attr;for(const t in i)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==i[t]){eg.warn(`DATERANGE tag attribute: "${t}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=t;break}e=el(new t5({}),i,e)}if(this.attr=e,t?(this._startDate=t._startDate,this._cue=t._cue,this._endDate=t._endDate,this._dateAtEnd=t._dateAtEnd):this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){const e=(null==t?void 0:t.endDate)||new Date(this.attr["END-DATE"]);j(e.getTime())&&(this._endDate=e)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){let e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}get startTime(){let{tagAnchor:e}=this;return null===e||null===e.programDateTime?(eg.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": ${e}`),NaN):e.start+(this.startDate.getTime()-e.programDateTime)/1e3}get startDate(){return this._startDate}get endDate(){let e=this._endDate||this._dateAtEnd;if(e)return e;let t=this.duration;return null!==t?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*t):null}get duration(){if("DURATION"in this.attr){let e=this.attr.decimalFloatingPoint("DURATION");if(j(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 isInterstitial(){return"com.apple.hls.interstitial"===this.class}get isValid(){return!!this.id&&!this._badValueForSameId&&j(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}class t6{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.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!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.drift
44StartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,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.live,this.advanced=this.endSN>e.endSN||t>0||0===t&&i>0,this.updated||this.advanced?this.misses=Math.floor(.6*e.misses):this.misses=e.misses+1}hasKey(e){return this.encryptedFragments.some(t=>{let i=t.decryptdata;return i||(t.setKeyFormat(e.keyFormat),i=t.decryptdata),!!i&&e.matches(i)})}get hasProgramDateTime(){return!!this.fragments.length&&j(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let e=this.driftEndTime-this.driftStartTime;return e>0?1e3*(this.driftEnd-this.driftStart)/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){return this.fragments.length?this.fragments[this.fragments.length-1].end:0}get fragmentStart(){return this.fragments.length?this.fragments[0].start:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].index:-1}get maxPartIndex(){let e=this.partList;if(e){let t=this.lastPartIndex;if(-1!==t){for(let i=e.length;i--;)if(e[i].index>t)return e[i].index;return t}}return 0}get lastPartSn(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}get expired(){if(this.live&&this.age&&this.misses<3){let e=this.partEnd-this.fragmentStart;return this.age>Math.max(e,this.totalduration)+this.levelTargetDuration}return!1}}function t9(e,t){return e.length===t.length&&!e.some((e,i)=>e!==t[i])}function t7(e,t){return!e&&!t||!!e&&!!t&&t9(e,t)}function ie(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function it(e){switch(e){case"AES-128":case"AES-256":return 0;case"AES-256-CTR":return 1;default:throw Error(`invalid full segment method ${e}`)}}function ii(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function is(e){return Uint8Array.from(unescape(encodeURIComponent(e)),e=>e.charCodeAt(0))}function ir(e){let t=function(e,t,i){let s=e[t];e[t]=e[i],e[i]=s};t(e,0,3),t(e,1,2),t(e,4,5),t(e,6,7)}function ia(e){let t=e.split(":"),i=null;if("data"===t[0]&&2===t.length){let e=t[1].split(";"),s=e[e.length-1].split(",");if(2===s.length){let t="base64"===s[0],r=s[1];if(t)e.splice(-1,1),i=ii(r);else{let e,t;e=is(r).subarray(0,16),(t=new Uint8Array(16)).set(e,16-e.length),i=t}}}return i}let il="u">typeof self?self:void 0;var io="org.w3.clearkey",id="com.apple.fps",ih="com.microsoft.playready",iu="com.widevine.alpha",ic="org.w3.clearkey",im="com.apple.streamingkeydelivery",ig="com.microsoft.playready",ip="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function iv(e){switch(e){case im:return id;case ig:return ih;case ip:return iu;case ic:return io}}function iE(e){switch(e){case id:return im;case ih:return ig;case iu:return ip;case io:return ic}}function ib(e){let{drmSystems:t,widevineLicenseUrl:i}=e,s=t?[id,iu,ih,io].filter(e=>!!t[e]):[];return!s[iu]&&i&&s.push(iu),s}let iy=null!=il&&null!=(u=il.navigator)&&u.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function iT(e){let t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),i=String.fromCharCode.apply(null,Array.from(t)),s=i.substring(i.indexOf("<"),i.length),r=new DOMParser().parseFromString(s,"text/xml").getElementsByTagName("KID")[0];if(r){let e=r.childNodes[0]?r.childNodes[0].nodeValue:r.getAttribute("VALUE");if(e){let t=ii(e).subarray(0,16);return ir(t),t}}return null}let iA={};class iS{static clearKeyUriToKeyIdMap(){iA={}}static setKeyIdForUri(e,t){iA[e]=t}static addKeyIdForUri(e){let t=Object.keys(iA).length%Number.MAX_SAFE_INTEGER,i=new Uint8Array(16);return new DataView(i.buffer,12,4).setUint32(0,t),iA[e]=i,i}constructor(e,t,i,s=[1],r=null,a){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.pss
44h=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=s,this.iv=r,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&!ie(e),null!=a&&a.startsWith("0x")&&(this.keyId=new Uint8Array(ey(a)))}matches(e){return e.uri===this.uri&&e.method===this.method&&e.encrypted===this.encrypted&&e.keyFormat===this.keyFormat&&t9(e.keyFormatVersions,this.keyFormatVersions)&&t7(e.iv,this.iv)&&t7(e.keyId,this.keyId)}isSupported(){if(this.method){if(ie(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case im:case ip:case ig:case ic:return -1!==["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1}getDecryptData(e,t){var i,s;if(!this.encrypted||!this.uri)return null;if(ie(this.method)){let t=this.iv;return t||("number"!=typeof e&&(eg.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0),t=function(e){let t=new Uint8Array(16);for(let i=12;i<16;i++)t[i]=e>>8*(15-i)&255;return t}(e)),new iS(this.method,this.uri,"identity",this.keyFormatVersions,t)}if(this.keyId){let e=iA[this.uri];if(e&&!t9(this.keyId,e)&&iS.setKeyIdForUri(this.uri,this.keyId),this.pssh)return this}let r=ia(this.uri);if(r)switch(this.keyFormat){case ip:if(this.pssh=r,!this.keyId){let e=function(e){let t=[];if(e instanceof ArrayBuffer){let i=e.byteLength,s=0;for(;s+32<i;){let i=function(e){let t=e.getUint32(0),i=e.byteOffset,s=e.byteLength;if(s<t)return{offset:i,size:s};if(0x70737368!==e.getUint32(4))return{offset:i,size:t};let r=e.getUint32(8)>>>24;if(0!==r&&1!==r)return{offset:i,size:t};let a=e.buffer,n=eb(new Uint8Array(a,i+12,16)),l=null,o=0;if(0===r)o=28;else{let r=e.getUint32(28);if(!r||s<32+16*r)return{offset:i,size:t};l=[];for(let e=0;e<r;e++)l.push(new Uint8Array(a,i+32+16*e,16));o=32+16*r}if(!o)return{offset:i,size:t};let d=e.getUint32(o);return t-32<d?{offset:i,size:t}:{version:r,systemId:n,kids:l,data:new Uint8Array(a,i+o+4,d),offset:i,size:t}}(new DataView(e,s));t.push(i),s+=i.size}}return t}(r.buffer);if(e.length){let t=e[0];this.keyId=null!=(i=t.kids)&&i.length?t.kids[0]:null}}this.keyId||(this.keyId=iI(t));break;case ig:{let e=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=function(e,t){let i,s;if(16!==e.byteLength)throw RangeError("Invalid system id");i=new Uint8Array,s=new Uint8Array;let r=new Uint8Array(4);return t.byteLength>0&&new DataView(r.buffer).setUint32(0,t.byteLength,!1),function(e,...t){let i=t.length,s=8,r=i;for(;r--;)s+=t[r].byteLength;let a=new Uint8Array(s);for(a[0]=s>>24&255,a[1]=s>>16&255,a[2]=s>>8&255,a[3]=255&s,a.set(e,4),r=0,s=8;r<i;r++)a.set(t[r],s),s+=t[r].byteLength;return a}([112,115,115,104],new Uint8Array([0,0,0,0]),e,s,i,r,t)}(e,r),this.keyId=iT(r);break}default:{let e=r.subarray(0,16);if(16!==e.length){let t=new Uint8Array(16);t.set(e,16-e.length),e=t}this.keyId=e}}if(!this.keyId||16!==this.keyId.byteLength){let e,i;!(e=(i=null==(s=t)?void 0:s[ip])?i.keyId:null)&&((e=iI(t))||(e=iA[this.uri])),e&&(this.keyId=e,iS.setKeyIdForUri(this.uri,e))}return this}}function iI(e){let t=null==e?void 0:e[ig];if(t){let e=ia(t.uri);if(e)return iT(e)}return null}let iL=/#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,ik=/#EXT-X-MEDIA:(.*)/g,iR=/^#EXT(?:INF|-X-TARGETDURATION):/m,iM=RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),iC=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class i_{static findGroup(e,t){for(let i=0;i<e.length;i++){let s=e[i];if(s.id===t)return s}}static resolve(e,t){return eA.buildAbsoluteURL(t,e,{alwaysNormalize:!0})}static isMediaPlaylist(e){return iR.test(e)}static parseMasterPlaylist(e,t){var i;let s,r={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:t0.test(e)},a=[];if(iL.lastIndex=0,!e.startsWith("#EXTM3U"))return r.playlistParsingError=Error("no EXTM3U delimiter"),r;for(;null!=(s=iL.exec(e));)if(s[1]){let e=new t5(s[1],r),n=t1(r,s[2]),l={attrs:e,bitrate:e.decimalInteger("BANDWIDTH")||e.decimalInteger("AVERAGE-BANDWIDTH"),name:e.NAME,url:i_.resolve(n,t)},o=e.decimalResolution("RESOLUTION");o&&(l.width=o.width,l.height=o.height),iP(e.CODECS,l);let d=e["SUPPLEMENTAL-CODECS"];d&&(l.supplemental={},iP(d,l.supplemental)),null!=(i=l.unknownCodecs)&&i.length||a.push(l),r.levels.push(l)}else if(s[3]){let e=s[3],i=s[4];switch(e){case"SESSION-DATA":{let e=new t5(i,r),t=e["DATA-ID"];t&&(null===r.sessionData&&(r.sessionData={}),r.sessionData[t]=e);break}case"SESSION-KEY":{let e=iD(i,t,r);e.encrypted&&e.isSupported()?(null===r.sessionKeys&&(r.sessionKeys=[]),r.sessionKeys.push(e)):eg.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${i}"`);break}case"DEFINE":{let e=new t5(i,r);t2(r,e,t)}break;case"CONTENT-STEERING":{let e=new t5(i,r);r.contentSteering={uri:i_.resolve(e["SERVER-URI"],t),pathwayId:e["PATHWAY-ID"]||"."};break}case"START":r.startTimeOffset=ix(i)}}let n=a.length>0&&a.length<r.levels.length;return r.levels=n?a:r.levels,0===r.levels.length&&(r.playlistParsingError=Error("no levels found in manifest")),r}static parseMasterPlaylistMedia(e,t,i){let s,r={},a=i.levels,n={AUDIO:a.map(e=>({id:e.attrs.AUDIO,audioCodec:e.audioCodec})),SUBTITLES:a.map(e=>({id:e.attrs.SUBTITLES,textCodec:e.textCodec})),"CLOSED-CAPTIONS":[]},l=0;for(ik.lastIndex=0;null!==(s=ik.exec(e));){let e=new t5(s[1],i),a=e.TYPE;if(a){let i=n[a],s=r[a]||[];r[a]=s;let o=e.LANGUAGE,d=e["ASSOC-LANGUAGE"],h=e.CHANNELS,u=e.CHARACTERISTICS,c=e["INSTREAM-ID"],f={attrs:e,bitrate:0,id:l++,groupId:e["GROUP-ID"]||"",name:e.NAME||o||"",type:a,default:e.bool("DEFAULT"),autoselect:e.bool("AUTOSELECT"),forced:e.bool("FORCED"),lang:o,url:e.URI?i_.resolve(e.URI,t):""};if(d&&(f.assocLang=d),h&&(f.channels=h),u&&(f.characteristics=u),c&&(f.instreamId=c),null!=i&&i.length){let e=i_.findGroup(i,f.groupId)||i[0];iO(f,e,"audioCodec"),iO(f,e,"textCodec")}s.push(f)}}return r}static parseLevelPlaylist(e,t,i,s,r,a){var n;let l,o,d,h,u={url:t},c=new t6(t),f=c.fragments,m=[],g=null,p=0,v=0,E=0,b=0,y=0,T=null,A=new eC(s,u),S=-1,I=!1,L=null;if(iM.lastIndex=0,c.m3u8=e,c.hasVariableRefs=t0.test(e),(null==(n=iM.exec(e))?void 0:n[0])!=="#EXTM3U")return c.playlistParsingError=Error("Missing format identifier #EXTM3U"),c;for(;null!==(l=iM.exec(e));){I&&(I=!1,(A=new eC(s,u)).playlistOffset=E,A.setStart(E),A.sn=p,A.cc=b,y&&(A.bitrate=y),A.level=i,g&&(A.initSegment=g,g.rawProgramDateTime&&(A.rawProgramDateTime=g.rawProgramDateTime,g.rawProgramDateTime=null),L&&(A.setByteRange(L),L=null)));let e=l[1];if(e){A.duration=parseFloat(e);let t=(" "+l[2]).slice(1);A.title=t||null,A.tagList.push(t?["INF",e,t]:["INF",e])}else if(l[3]){if(j(A.duration)){A.playlistOffset=E,A.setStart(E),d&&iF(A,d,c),A.sn=p,A.level=i,A.cc=b,f.push(A);let e=(" "+l[3]).slice(1);A.relurl=t1(c,e),iU(A,T,m),T=A,E+=A.duration,p++,v=0,I=!0}}
44else{if(!(l=l[0].match(iC))){eg.warn("No matches on slow regex match for level playlist!");continue}for(o=1;o<l.length&&void 0===l[o];o++);let e=(" "+l[o]).slice(1),r=(" "+l[o+1]).slice(1),n=l[o+2]?(" "+l[o+2]).slice(1):null;switch(e){case"BYTERANGE":T?A.setByteRange(r,T):A.setByteRange(r);break;case"PROGRAM-DATE-TIME":A.rawProgramDateTime=r,A.tagList.push(["PROGRAM-DATE-TIME",r]),-1===S&&(S=f.length);break;case"PLAYLIST-TYPE":c.type&&iB(c,e,l),c.type=r.toUpperCase();break;case"MEDIA-SEQUENCE":0!==c.startSN?iB(c,e,l):f.length>0&&i$(c,e,l),p=c.startSN=parseInt(r);break;case"SKIP":{c.skippedSegments&&iB(c,e,l);let t=new t5(r,c),i=t.decimalInteger("SKIPPED-SEGMENTS");if(j(i)){c.skippedSegments+=i;for(let e=i;e--;)f.push(null);p+=i}let s=t.enumeratedString("RECENTLY-REMOVED-DATERANGES");s&&(c.recentlyRemovedDateranges=(c.recentlyRemovedDateranges||[]).concat(s.split("	")));break}case"TARGETDURATION":0!==c.targetduration&&iB(c,e,l),c.targetduration=Math.max(parseInt(r),1);break;case"VERSION":null!==c.version&&iB(c,e,l),c.version=parseInt(r);break;case"INDEPENDENT-SEGMENTS":break;case"ENDLIST":c.live||iB(c,e,l),c.live=!1;break;case"#":(r||n)&&A.tagList.push(n?[r,n]:[r]);break;case"DISCONTINUITY":b++,A.tagList.push(["DIS"]);break;case"GAP":A.gap=!0,A.tagList.push([e]);break;case"BITRATE":A.tagList.push([e,r]),j(y=1e3*parseInt(r))?A.bitrate=y:y=0;break;case"DATERANGE":{let e=new t5(r,c),t=new t8(e,c.dateRanges[e.ID],c.dateRangeTagCount);c.dateRangeTagCount++,t.isValid||c.skippedSegments?c.dateRanges[t.id]=t:eg.warn(`Ignoring invalid DATERANGE tag: "${r}"`),A.tagList.push(["EXT-X-DATERANGE",r]);break}case"DEFINE":{let e=new t5(r,c);"IMPORT"in e?function(e,t,i){let s=t.IMPORT;if(i&&s in i){let t=e.variableList;t||(e.variableList=t={}),t[s]=i[s]}else e.playlistParsingError||(e.playlistParsingError=Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${s}"`))}(c,e,a):t2(c,e,t)}break;case"DISCONTINUITY-SEQUENCE":0!==c.startCC?iB(c,e,l):f.length>0&&i$(c,e,l),c.startCC=b=parseInt(r);break;case"KEY":{let e=iD(r,t,c);if(e.isSupported()){if("NONE"===e.method){d=void 0;break}d||(d={});let t=d[e.keyFormat];null!=t&&t.matches(e)||(t&&(d=el({},d)),d[e.keyFormat]=e)}else eg.warn(`[Keys] Ignoring unsupported EXT-X-KEY tag: "${r}"`);break}case"START":c.startTimeOffset=ix(r);break;case"MAP":{let e=new t5(r,c);if(A.duration){let t=new eC(s,u);iN(t,e,i,d),g=t,A.initSegment=g,g.rawProgramDateTime&&!A.rawProgramDateTime&&(A.rawProgramDateTime=g.rawProgramDateTime)}else{let t=A.byteRangeEndOffset;if(t){let e=A.byteRangeStartOffset;L=`${t-e}@${e}`}else L=null;iN(A,e,i,d),g=A,I=!0}g.cc=b;break}case"SERVER-CONTROL":h&&iB(c,e,l),c.canBlockReload=(h=new t5(r)).bool("CAN-BLOCK-RELOAD"),c.canSkipUntil=h.optionalFloat("CAN-SKIP-UNTIL",0),c.canSkipDateRanges=c.canSkipUntil>0&&h.bool("CAN-SKIP-DATERANGES"),c.partHoldBack=h.optionalFloat("PART-HOLD-BACK",0),c.holdBack=h.optionalFloat("HOLD-BACK",0);break;case"PART-INF":c.partTarget&&iB(c,e,l),c.partTarget=new t5(r).decimalFloatingPoint("PART-TARGET");break;case"PART":{let e=c.partList;e||(e=c.partList=[]);let t=v>0?e[e.length-1]:void 0,i=v++,s=new e_(new t5(r,c),A,u,i,t);e.push(s),A.duration+=s.duration;break}case"PRELOAD-HINT":{let e=new t5(r,c);c.preloadHint=e;break}case"RENDITION-REPORT":{let e=new t5(r,c);c.renditionReports=c.renditionReports||[],c.renditionReports.push(e);break}default:eg.warn(`line parsed but not handled: ${l}`)}}}T&&!T.relurl?(f.pop(),E-=T.duration,c.partList&&(c.fragmentHint=T)):c.partList&&(iU(A,T,m),A.cc=b,c.fragmentHint=A,d&&iF(A,d,c)),c.targetduration||(c.playlistParsingError=Error("Missing Target Duration"));let k=f.length,R=f[0],M=f[k-1];if((E+=c.skippedSegments*c.targetduration)>0&&k&&M){c.averagetargetduration=E/k;let e=M.sn;c.endSN="initSegment"!==e?e:0,c.live||(M.endList=!0),S>0&&(function(e,t){let i=e[t];for(let s=t;s--;){let t=e[s];if(!t)return;t.programDateTime=i.programDateTime-1e3*t.duration,i=t}}(f,S),R&&m.unshift(R))}return c.fragmentHint&&(E+=c.fragmentHint.duration),c.totalduration=E,m.length&&c.dateRangeTagCount&&R&&iw(m,c),c.endCC=b,c}}function iw(e,t){let i=e.length;if(!i)if(!t.hasProgramDateTime)return;else{let s=t.fragments[t.fragments.length-1];e.push(s),i++}
44let s=e[i-1],r=t.live?1/0:t.totalduration,a=Object.keys(t.dateRanges);for(let l=a.length;l--;){let o=t.dateRanges[a[l]],d=o.startDate.getTime();o.tagAnchor=s.ref;for(let s=i;s--;){var n;if((null==(n=e[s])?void 0:n.sn)<t.startSN)break;let i=function(e,t,i,s,r){let a=i[s];if(a){let l=a.programDateTime;if(t>=l||0===s){var n;if(t<=l+1e3*(((null==(n=i[s+1])?void 0:n.start)||r)-a.start)){let r=i[s].sn-e.startSN;if(r<0)return -1;let a=e.fragments;if(a.length>i.length){let n=(i[s+1]||a[a.length-1]).sn-e.startSN;for(let e=n;e>r;e--){let i=a[e].programDateTime;if(t>=i&&t<i+1e3*a[e].duration)return e}}return r}}}return -1}(t,d,e,s,r);if(-1!==i){o.tagAnchor=t.fragments[i].ref;break}}}}function iD(e,t,i){var s,r;let a=new t5(e,i),n=null!=(s=a.METHOD)?s:"",l=a.URI,o=a.hexadecimalInteger("IV"),d=a.KEYFORMATVERSIONS,h=null!=(r=a.KEYFORMAT)?r:"identity";return l&&a.IV&&!o&&eg.error(`Invalid IV: ${a.IV}`),new iS(n,l?i_.resolve(l,t):"",h,(d||"1").split("/").map(Number).filter(Number.isFinite),o,a.KEYID)}function ix(e){let t=new t5(e).decimalFloatingPoint("TIME-OFFSET");return j(t)?t:null}function iP(e,t){let i=(e||"").split(/[ ,]+/).filter(e=>e);["video","audio","text"].forEach(e=>{let s=i.filter(t=>eZ(t,e));s.length&&(t[`${e}Codec`]=s.map(e=>e.split("/")[0]).join(","),i=i.filter(e=>-1===s.indexOf(e)))}),t.unknownCodecs=i}function iO(e,t,i){let s=t[i];s&&(e[i]=s)}function iU(e,t,i){e.rawProgramDateTime?i.push(e):null!=t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime)}function iN(e,t,i,s){e.relurl=t.URI,t.BYTERANGE&&e.setByteRange(t.BYTERANGE),e.level=i,e.sn="initSegment",s&&(e.levelkeys=s),e.initSegment=null}function iF(e,t,i){e.levelkeys=t;let{encryptedFragments:s}=i;(!s.length||s[s.length-1].levelkeys!==t)&&Object.keys(t).some(e=>t[e].isCommonEncryption)&&s.push(e)}function iB(e,t,i){e.playlistParsingError=Error(`#EXT-X-${t} must not appear more than once (${i[0]})`)}function i$(e,t,i){e.playlistParsingError=Error(`#EXT-X-${t} must appear before the first Media Segment (${i[0]})`)}function iH(e,t){let i=t.startPTS;if(j(i)){let s,r=0;t.sn>e.sn?(r=i-e.start,s=e):(r=e.start-i,s=t),s.duration!==r&&s.setDuration(r)}else t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.setStart(e.start+(e.minEndPTS-e.start)):t.setStart(e.start+e.duration):t.setStart(Math.max(e.start-t.duration,0))}function iG(e,t,i,s,r,a,n){let l;s-i<=0&&(n.warn("Fragment should have a positive duration",t),s=i+t.duration,a=r+t.duration);let o=i,d=s,h=t.startPTS,u=t.endPTS;if(j(h)){let l=Math.abs(h-i);e&&l>e.totalduration?n.warn(`media timestamps and playlist times differ by ${l}s for level ${t.level} ${e.url}`):j(t.deltaPTS)?t.deltaPTS=Math.max(l,t.deltaPTS):t.deltaPTS=l,o=Math.max(i,h),i=Math.min(i,h),r=void 0!==t.startDTS?Math.min(r,t.startDTS):r,d=Math.min(s,u),s=Math.max(s,u),a=void 0!==t.endDTS?Math.max(a,t.endDTS):a}let c=i-t.start;0!==t.start&&t.setStart(i),t.setDuration(s-t.start),t.startPTS=i,t.maxStartPTS=o,t.startDTS=r,t.endPTS=s,t.minEndPTS=d,t.endDTS=a;let f=t.sn;if(!e||f<e.startSN||f>e.endSN)return 0;let m=f-e.startSN,g=e.fragments;for(g[m]=t,l=m;l>0;l--)iH(g[l],g[l-1]);for(l=m;l<g.length-1;l++)iH(g[l],g[l+1]);return e.fragmentHint&&iH(g[g.length-1],e.fragmentHint),e.PTSKnown=e.alignedSliding=!0,c}function iV(e,t,i,s,r){return Error(`${e} ${r.url}
45Playlist starting @${t.startSN}
46${t.m3u8}
47
48Playlist starting @${i.startSN}
49${i.m3u8}`)}function iW(e,t,i=!0){let s=t.startSN+t.skippedSegments-e.startSN,r=e.fragments,a=s>=0,n=0;if(a&&s<r.length)n=r[s].start;else if(a&&t.startSN===e.endSN+1)n=e.fragmentEnd;else if(a&&i)n=e.fragmentStart+s*t.levelTargetDuration;else{if(t.skippedSegments||0!==t.fragmentStart)return;n=e.fragmentStart}iK(t,n)}function iK(e,t){if(t){let i=e.fragments;for(let s=e.skippedSegments;s<i.length;s++)i[s].addStart(t);e.fragmentHint&&e.fragmentHint.addStart(t)}}function ij(e,t=1/0){let i=1e3*e.targetduration;if(e.updated){let s=e.fragments;if(s.length&&4*i>t){let e=1e3*s[s.length-1].duration;e<i&&(i=e)}}else i/=2;return Math.round(i)}function iq(e,t,i){if(!e)return null;let s=e.fragments[t-e.startSN];return s||(s=e.fragmentHint)&&s.sn===t?s:t<e.startSN&&i&&i.sn===t?i:null}function iY(e,t,i){return e?iQ(e.partList,t,i):null}function iQ(e,t,i){if(e)for(let s=e.length;s--;
49){let r=e[s];if(r.index===i&&r.fragment.sn===t)return r}return null}function iz(e){e.forEach((e,t)=>{var i;null==(i=e.details)||i.fragments.forEach(e=>{e.level=t,e.initSegment&&(e.initSegment.level=t)})})}function iX(e){return e.replace(/\?[^?]*$/,"")}function iZ(e,t){for(let s=0,r=e.length;s<r;s++){var i;if((null==(i=e[s])?void 0:i.cc)===t)return e[s]}return null}function iJ(e,t){let i=e.start+t;e.startPTS=i,e.setStart(i),e.endPTS=i+e.duration}function i0(e,t){let i=t.fragments;for(let t=0,s=i.length;t<s;t++)iJ(i[t],e);t.fragmentHint&&iJ(t.fragmentHint,e),t.alignedSliding=!0}function i1(e,t){if((!t||!(e.startCC<t.endCC)||!(e.endCC>t.startCC))&&1)return;let i=Math.min(t.endCC,e.endCC),s=iZ(t.fragments,i),r=iZ(e.fragments,i);s&&r&&(eg.log(`Aligning playlist at start of dicontinuity sequence ${i}`),i0(s.start-r.start,e))}function i2(e,t){let i,s;if(!e.hasProgramDateTime||!t.hasProgramDateTime)return;let r=e.fragments,a=t.fragments;if(!r.length||!a.length)return;let n=Math.min(t.endCC,e.endCC);t.startCC<n&&e.startCC<n&&(i=iZ(a,n),s=iZ(r,n)),i&&s||(s=iZ(r,(i=a[Math.floor(a.length/2)]).cc)||r[Math.floor(r.length/2)]);let l=i.programDateTime,o=s.programDateTime;l&&o&&i0((o-l)/1e3-(s.start-i.start),e)}function i3(e,t,i){i4(e,t,i),e.addEventListener(t,i)}function i4(e,t,i){e.removeEventListener(t,i)}let i5=function(e){let t="",i=e.length;for(let s=0;s<i;s++)t+=`[${e.start(s).toFixed(3)}-${e.end(s).toFixed(3)}]`;return t},i8="STOPPED",i6="IDLE",i9="KEY_LOADING",i7="FRAG_LOADING",se="FRAG_LOADING_WAITING_RETRY",st="WAITING_TRACK",si="PARSING",ss="PARSED",sr="ENDED",sa="ERROR",sn="WAITING_INIT_PTS",sl="WAITING_LEVEL";class so extends tQ{constructor(e,t,i,s,r){super(s,e.logger),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=i8,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.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.buffering=!0,this.loadingParts=!1,this.loopSn=void 0,this.onMediaSeeking=()=>{let{config:e,fragCurrent:t,media:i,mediaBuffer:s,state:r}=this,a=i?i.currentTime:0,n=tJ.bufferInfo(s||i,a,e.maxBufferHole),l=!n.len;if(this.log(`Media seeking to ${j(a)?a.toFixed(3):a}, state: ${r}, ${l?"out of":"in"} buffer`),this.state===sr)this.resetLoadingState();else if(t){let i=e.maxFragLookUpTolerance,s=t.start-i,r=t.start+t.duration+i;if(l||r<n.start||s>n.end){let e=a>r;(a<s||e)&&(e&&t.loader&&(this.log(`Cancelling fragment load for seek (sn: ${t.sn})`),t.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}if(i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),a>this.lastCurrentTime&&(this.lastCurrentTime=a),!this.loadingParts)){let e=Math.max(n.end,a),t=this.shouldLoadParts(this.getLevelDetails(),e);t&&(this.log(`LL-Part loading ON after seeking to ${a.toFixed(2)} with buffer @${e.toFixed(2)}`),this.loadingParts=t)}!this.hls.hasEnoughToStart&&(this.log(`Setting ${l?"startPosition":"nextLoadPosition"} to ${a} for seek without enough to start`),this.nextLoadPosition=a,l&&(this.startPosition=a)),l&&this.state===i6&&this.tickImmediate()},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=r,this.hls=e,this.fragmentLoader=new tK(e.config),this.keyLoader=i,this.fragmentTracker=t,this.config=e.config,this.decrypter=new tW(e.config)}registerListeners(){let{hls:e}=this;e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(e){}stopLoad(){if(this.state===i8)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let e=this.fragCurrent;null!=e&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=i8}get startPositionValue(){let{nextLoadPosition:e,startPosition:t}=this;return -1===t&&e?e:t}get bufferingEnabled(){return this.buffering}
49pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(e,t){if(t.live||!this.media)return!1;let i=e.end||0,s=this.config.timelineOffset||0;if(i<=s)return!1;let r=e.buffered;this.config.maxBufferHole&&r&&r.length>1&&(e=tJ.bufferedInfo(r,e.start,0));let a=e.nextStart;if(a&&a>s&&a<t.edge||this.media.currentTime<e.start)return!1;let n=t.partList;if(null!=n&&n.length){let e=n[n.length-1];return tJ.isBuffered(this.media,e.start+e.duration/2)}let l=t.fragments[t.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(l)}getLevelDetails(){if(this.levels&&null!==this.levelLastLoaded)return this.levelLastLoaded.details}get timelineOffset(){let e=this.config.timelineOffset;if(e){var t;return(null==(t=this.getLevelDetails())?void 0:t.appliedTimelineOffset)||e}return 0}onMediaAttached(e,t){let i=this.media=this.mediaBuffer=t.media;i3(i,"seeking",this.onMediaSeeking),i3(i,"ended",this.onMediaEnded);let s=this.config;this.levels&&s.autoStartLoad&&this.state===i8&&this.startLoad(s.startPosition)}onMediaDetaching(e,t){let i=!!t.transferMedia,s=this.media;if(null!==s){if(s.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),i4(s,"seeking",this.onMediaSeeking),i4(s,"ended",this.onMediaEnded),this.keyLoader&&!i&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loopSn=void 0,i){this.resetLoadingState(),this.resetTransmuxer();return}this.loadingParts=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}}onManifestLoading(){this.initPTS=[],this.levels=this.levelLastLoaded=this.fragCurrent=null,this.lastCurrentTime=this.startPosition=0,this.startFragRequested=!1}onError(e,t){}onManifestLoaded(e,t){this.startTimeOffset=t.startTimeOffset}onHandlerDestroying(){this.stopLoad(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),super.onHandlerDestroying(),this.hls=this.onMediaSeeking=this.onMediaEnded=null}onHandlerDestroyed(){this.state=i8,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.startFragRequested=!0,this._loadFragForPlayback(e,t,i)}_loadFragForPlayback(e,t,i){let s=e=>{let t=e.frag;if(this.fragContextChanged(t)){this.warn(`${t.type} sn: ${t.sn}${e.part?" part: "+e.part.index:""} of ${this.fragInfo(t,!1,e.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(t);return}t.stats.chunkCount++,this._handleFragmentLoadProgress(e)};this._doFragLoad(e,t,i,s).then(e=>{if(!e)return;let t=this.state,i=e.frag;if(this.fragContextChanged(i)){t!==i7&&(this.fragCurrent||t!==si)||(this.fragmentTracker.removeFragment(i),this.state=i6);return}"payload"in e&&(this.log(`Loaded ${i.type} sn: ${i.sn} of ${this.playlistLabel()} ${i.level}`),this.hls.trigger(X.FRAG_LOADED,e)),this._handleFragmentLoadComplete(e)}).catch(t=>{this.state!==i8&&this.state!==sa&&(this.warn(`Frag error: ${(null==t?void 0:t.message)||t}`),this.resetFragmentLoading(e))})}clearTrackerIfNeeded(e){var t;let{fragmentTracker:i}=this;if(i.getState(e)===tO){let t=e.type,s=this.getFwdBufferInfo(this.mediaBuffer,t),r=Math.max(e.duration,s?s.len:this.config.maxBufferLength),a=this.backtrackFragment;(1==(a?e.sn-a.sn:0)||this.reduceMaxBufferLength(r,e.duration))&&i.removeFragment(e)}else(null==(t=this.mediaBuffer)?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)===tU&&i.removeFragment(e))}checkLiveUpdate(e){if(e.updated&&!e.live){let t=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)}waitForLive(e){let t=e.details;return(null==t?void 0:t.live)&&"EVENT"!==t.type&&(this.levelLastLoaded!==e||t.expired)}flushMainBuffer(e,t,i=null){e-t&&this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:e,endOffset:t,type:i})}_loadInitSegment(e,t){this._doFragLoad(e,t).then(e=>{let t=null==e?void 0:e.frag;if(!t||this.fragContextChanged(t)||!this.levels)throw Error("init load aborted");return e}).then(e=>{let{hls:t}=this,{frag:i,payload:s}=e,r=i.decryptdata;if(s&&s.byteLength>
490&&null!=r&&r.key&&r.iv&&ie(r.method)){let a=self.performance.now();return this.decrypter.decrypt(new Uint8Array(s),r.key.buffer,r.iv.buffer,it(r.method)).catch(e=>{throw t.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:i}),e}).then(s=>{let r=self.performance.now();return t.trigger(X.FRAG_DECRYPTED,{frag:i,payload:s,stats:{tstart:a,tdecrypt:r}}),e.payload=s,this.completeInitSegmentLoad(e)})}return this.completeInitSegmentLoad(e)}).catch(t=>{this.state!==i8&&this.state!==sa&&(this.warn(t),this.resetFragmentLoading(e))})}completeInitSegmentLoad(e){let{levels:t}=this;if(!t)throw Error("init load aborted, missing levels");let i=e.frag.stats;this.state!==i8&&(this.state=i6),e.frag.data=new Uint8Array(e.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}unhandledEncryptionError(e,t){var i,s;let r=e.tracks;if(r&&!t.encrypted&&(null!=(i=r.audio)&&i.encrypted||null!=(s=r.video)&&s.encrypted)&&(!this.config.emeEnabled||!this.keyLoader.emeController)){let e=this.media,i=Error(`Encrypted track with no key in ${this.fragInfo(t)} (media ${e?"attached mediaKeys: "+e.mediaKeys:"detached"})`);return this.warn(i.message),!!e&&!e.mediaKeys&&(this.hls.trigger(X.ERROR,{type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_NO_KEYS,fatal:!1,error:i,frag:t}),this.resetTransmuxer(),!0)}return!1}fragContextChanged(e){let{fragCurrent:t}=this;return!e||!t||e.sn!==t.sn||e.level!==t.level}fragBufferedComplete(e,t){let i=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.fragInfo(e,!1,t)} > buffer:${i?i5(tJ.getBuffered(i)):"(detached)"})`),eM(e)){var s;if(e.type!==er){let t=e.elementaryStreams;if(!Object.keys(t).some(e=>!!t[e])){this.state=i6;return}}let t=null==(s=this.levels)?void 0:s[e.level];null!=t&&t.fragmentError&&(this.log(`Resetting level fragment error count of ${t.fragmentError} on frag buffered`),t.fragmentError=0)}this.state=i6}_handleFragmentLoadComplete(e){let{transmuxer:t}=this;if(!t)return;let{frag:i,part:s,partsLoaded:r}=e,a=!r||0===r.length||r.some(e=>!e),n=new tz(i.level,i.sn,i.stats.chunkCount+1,0,s?s.index:-1,!a);t.flush(n)}_handleFragmentLoadProgress(e){}_doFragLoad(e,t,i=null,s){var r,a;let n;this.fragCurrent=e;let l=t.details;if(!this.levels||!l)throw Error(`frag load aborted, missing level${l?"":" detail"}s`);let o=null;if(e.encrypted&&!(null!=(r=e.decryptdata)&&r.key)){if(this.log(`Loading key for ${e.sn} of [${l.startSN}-${l.endSN}], ${this.playlistLabel()} ${e.level}`),this.state=i9,this.fragCurrent=e,o=this.keyLoader.load(e).then(e=>{if(!this.fragContextChanged(e.frag))return this.hls.trigger(X.KEY_LOADED,e),this.state===i9&&(this.state=i6),e}),this.hls.trigger(X.KEY_LOADING,{frag:e}),null===this.fragCurrent)return this.log("context changed in KEY_LOADING"),Promise.resolve(null)}else!e.encrypted&&(o=this.keyLoader.loadClear(e,l.encryptedFragments,this.startFragRequested))&&this.log("[eme] blocking frag load until media-keys acquired");let d=this.fragPrevious;if(eM(e)&&(!d||e.sn!==d.sn)){let i=this.shouldLoadParts(t.details,e.end);i!==this.loadingParts&&(this.log(`LL-Part loading ${i?"ON":"OFF"} loading sn ${null==d?void 0:d.sn}->${e.sn}`),this.loadingParts=i)}if(i=Math.max(e.start,i||0),this.loadingParts&&eM(e)){let r=l.partList;if(r&&s){i>l.fragmentEnd&&l.fragmentHint&&(e=l.fragmentHint);let a=this.getNextPart(r,e,i);if(a>-1){let n,d=r[a];return(e=this.fragCurrent=d.fragment,this.log(`Loading ${e.type} sn: ${e.sn} part: ${d.index} (${a}/${r.length-1}) of ${this.fragInfo(e,!1,d)}) cc: ${e.cc} [${l.startSN}-${l.endSN}], target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=d.start+d.duration,this.state=i7,n=o?o.then(i=>!i||this.fragContextChanged(i.frag)?null:this.doFragPartsLoad(e,d,t,s)).catch(e=>this.handleFragLoadError(e)):this.doFragPartsLoad(e,d,t,s).catch(e=>this.handleFragLoadError(e)),this.hls.trigger(X.FRAG_LOADING,{frag:e,part:d,targetBufferTime:i}),null===this.fragCurrent)?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING parts")):n}if(!e.url||this.loadedEndOfParts(r,i))return Promise.resolve(null)}}if(eM(e)&&this.loadingParts)this.log(`LL-Part loading OFF after next part miss @${i.toFixed(2)} Check buffer at sn: ${e.sn} loaded parts: ${null==(a=l.partList)?void 0:a.filter(e=>e.loaded).map(e=>`[${e.start}-${e.end}]`)}`),this.loadingParts=!1;else if(!e.url)return Promise.resolve(null);this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e,!1)}) cc: ${e.cc} ${"["+l.startSN+"-"+l.endSN+"]"}, target: ${parseFloat(i.toFixed(3))}`),j(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=i7;let h=this.config.progressive&&e.type!==er;return(n=h&&o?o.then(t=>!t||this.fragContextChanged(t.frag)?null:this.fragmentLoader.load(e,s)).catch(e=>this.handleFragLoadError(e)):Promise.all([this.fragmentLoader.load(e,h?s:void 0),o]).then(([e])=>(!h&&s&&s(e),e)).catch(e=>this.handleFragLoadError(e)),this.hls.trigger(X.FRAG_LOADING,{frag:e,targetBufferTime:i}),null===this.fragCurrent)?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING")):n}doFragPartsLoad(e,t,i,s){return new Promise((r,a)=>{var n;let l=[],o=null==(n=i.details)?void 0:n.partList,d=t=>{this.fragmentLoader.loadPart(e,t,s).then(s=>{l[t.index]=s;let a=s.part;this.hls.trigger(X.FRAG_LOADED,s);let n=iY(i.details,e.sn,t.index+1)||iQ(o,e.sn,t.index+1);if(!n)return r({frag:e,part:a,partsLoaded:l});d(n)}).catch(a)};d(t)})}handleFragLoadError(e){if("data"in e){let t=e.data;t.frag&&t.details===z.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):t.frag&&t.type===Q.KEY_SYSTEM_ERROR?(t.frag.abortRequests(),this.resetStartWhenNotLoaded(),this.resetFragmentLoading(t.frag)):this.hls.trigger(X.ERROR,t)}else this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}_handleTransmuxerFlush(e){let t=this.getCurrentContext(e);if(!t||this.state!==si){this.fragCurrent||this.state===i8||this.state===sa||(this.state=i6);return}let{frag:i,part:s,level:r}=t,a=self.performance.now();i.stats.parsing.end=a,s&&(s.stats.parsing.end=a);let n=this.getLevelDetails(),l=n&&i.sn>n.endSN||this.shouldLoadParts(n,i.end);l!==this.loadingParts&&(this.log(`LL-Part loading ${l?"ON":"OFF"} after parsing segment ending @${i.end.toFixed(2)}`),this.loadingParts=l),this.updateLevelTiming(i,s,r,e.partial)}shouldLoadParts(e,t){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(e.partList){var i,s;let r=e.partList[0];if(r.fragment.type===er)return!1;if(t>=r.end+((null==(i=e.fragmentHint)?void 0:i.duration)||0)&&(this.hls.hasEnoughToStart?(null==(s=this.media)?void 0:s.currentTime)||this.lastCurrentTime:this.getLoadPosition())>r.start-r.fragment.duration)return!0}}return!1}getCurrentContext(e){let{levels:t,fragCurrent:i}=this,{level:s,sn:r,part:a}=e;if(!(null!=t&&t[s]))return this.warn(`Levels object was unset while buffering fragment ${r} of ${this.playlistLabel()} ${s}. The current chunk will not be buffered.`),null;let n=t[s],l=n.details,o=a>-1?iY(l,r,a):null,d=o?o.fragment:iq(l,r,i);return d?(i&&i!==d&&(d.stats=i.stats),{frag:d,part:o,level:n}):null}bufferFragmentData(e,t,i,s,r){if(this.state!==si)return;let{data1:a,data2:n}=e,l=a;if(n&&(l=ej(a,n)),!l.length)return;let o=this.initPTS[t.cc],d=o?-o.baseTime/o.timescale:void 0,h={type:e.type,frag:t,part:i,chunkMeta:s,offset:d,parent:t.type,data:l};if(this.hls.trigger(X.BUFFER_APPENDING,h),e.dropped&&e.independent&&!i){if(r)return;this.flushBufferGap(t)}}flushBufferGap(e){let t=this.media;if(!t)return;if(!tJ.isBuffered(t,t.currentTime))return void this.flushMainBuffer(0,e.start);let i=t.currentTime,s=tJ.bufferInfo(t,i,0),r=e.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,.25*r),n=Math.max(Math.min(e.start-a,s.end-a),i+a);e.start-n>a&&this.flushMainBuffer(n,e.start)}getFwdBufferInfo(e,t){var i;let s=this.getLoadPosition();if(!j(s))return null;let r=this.lastCurrentTime>s||null!=(i=this.media)&&i.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,s,t,r)}getFwdBufferInfoAtPos(e,t,i,s){let r=tJ.bufferInfo(e,t,s);if(0===r.len&&void 0!==r.nextStart){let a=this.fragmentTracker.getBufferedFrag(t,i);if(a&&(r.nextStart<=a.end||a.gap)){let i=Math.max(Math.min(r.nextStart,a.end)-t,s);return tJ.bufferInfo(e,t,i)}}return r}
49getMaxBufferLength(e){let{config:t}=this;return Math.min(e?Math.max(8*t.maxBufferSize/e,t.maxBufferLength):t.maxBufferLength,t.maxMaxBufferLength)}reduceMaxBufferLength(e,t){let i=this.config,s=Math.max(Math.min(e-t,i.maxBufferLength),t),r=Math.max(e-3*t,i.maxMaxBufferLength/2,s);return r>=s&&(i.maxMaxBufferLength=r,this.warn(`Reduce max buffer length to ${r}s`),!0)}getAppendedFrag(e,t=ei){let i=this.fragmentTracker?this.fragmentTracker.getAppendedFrag(e,t):null;return i&&"fragment"in i?i.fragment:i}getNextFragment(e,t){let i=t.fragments,s=i.length;if(!s)return null;let{config:r}=this,a=i[0].start,n=r.lowLatencyMode&&!!t.partList,l=null;if(t.live){let i=r.initialLiveManifestSize;if(s<i)return this.warn(`Not enough fragments to start playback (have: ${s}, need: ${i})`),null;if(!t.PTSKnown&&!this.startFragRequested&&-1===this.startPosition||e<a){var o;n&&!this.loadingParts&&(this.log("LL-Part loading ON for initial live fragment"),this.loadingParts=!0),l=this.getInitialLiveFragment(t);let i=this.hls.startPosition,s=this.hls.liveSyncPosition,r=l?(-1!==i&&i>=a?i:s)||l.start:e;this.log(`Setting startPosition to ${r} to match start frag at live edge. mainStart: ${i} liveSyncPosition: ${s} frag.start: ${null==(o=l)?void 0:o.start}`),this.startPosition=this.nextLoadPosition=r}}else e<=a&&(l=i[0]);if(!l){let i=this.loadingParts?t.partEnd:t.fragmentEnd;l=this.getFragmentAtPosition(e,i,t)}let d=this.filterReplacedPrimary(l,t);if(!d&&l){let e=l.sn-t.startSN;d=this.filterReplacedPrimary(i[e+1]||null,t)}return this.mapToInitFragWhenRequired(d)}isLoopLoading(e,t){let i=this.fragmentTracker.getState(e);return("OK"===i||i===tU&&!!e.gap)&&this.nextLoadPosition>t}getNextFragmentLoopLoading(e,t,i,s,r){let a=null;if(e.gap&&(a=this.getNextFragment(this.nextLoadPosition,t))&&!a.gap&&i.nextStart){let e=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,s,0);if(null!==e&&i.len+e.len>=r){let e=a.sn;return this.loopSn!==e&&(this.log(`buffer full after gaps in "${s}" playlist starting at sn: ${e}`),this.loopSn=e),null}}return this.loopSn=void 0,a}get primaryPrefetch(){if(sd(this.config)){var e;if(null==(e=this.hls.interstitialsManager)||null==(e=e.playingItem)?void 0:e.event)return!0}return!1}filterReplacedPrimary(e,t){if(!e)return e;if(sd(this.config)&&e.type!==er){let i=this.hls.interstitialsManager,s=null==i?void 0:i.bufferingItem;if(s){let i=s.event;if(i){if(i.appendInPlace||Math.abs(e.start-s.start)>1||0===s.start)return null}else if(e.end<=s.start&&(null==t?void 0:t.live)===!1||e.start>s.end&&s.nextEvent&&(s.nextEvent.appendInPlace||e.start-s.end>1))return null}let r=null==i?void 0:i.playerQueue;if(r)for(let t=r.length;t--;){let i=r[t].interstitial;if(i.appendInPlace&&e.start>=i.startTime&&e.end<=i.resumeTime)return null}}return e}mapToInitFragWhenRequired(e){return null==e||!e.initSegment||e.initSegment.data||this.bitrateTest?e:e.initSegment}getNextPart(e,t,i){let s=-1,r=!1,a=!0;for(let n=0,l=e.length;n<l;n++){let l=e[n];if(a=a&&!l.independent,s>-1&&i<l.start)break;let o=l.loaded;o?s=-1:(r||(l.independent||a)&&l.fragment===t)&&(l.fragment!==t&&this.warn(`Need buffer at ${i} but next unloaded part starts at ${l.start}`),s=n),r=o}return s}loadedEndOfParts(e,t){let i;for(let s=e.length;s--&&(i=e[s]).loaded;)if(t>i.start)return!0;return!1}getInitialLiveFragment(e){let t=e.fragments,i=this.fragPrevious,s=null;if(i){if(e.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${i.programDateTime}`),s=function(e,t,i){if(null===t||!Array.isArray(e)||!e.length||!j(t)||t<(e[0].programDateTime||0)||t>=(e[e.length-1].endProgramDateTime||0))return null;for(let s=0;s<e.length;++s){let r=e[s];if(function(e,t,i){let s=1e3*Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-s>e}(t,i,r))return r}return null}(t,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!s){let r=i.sn+1;if(r>=e.startSN&&r<=e.endSN){let a=t[r-e.startSN];i.cc===a.cc&&(s=a,this.log(`Live playlist, switching playlist, load frag with next SN: ${s.sn}`))}!s&&(s=tI(e,i.cc,i.end))&&this.log(`Live playlist, switching playlist, load frag with same CC: ${s.sn}`)}}else{let t=this.hls.liveSyncPosition;null!==t&&(s=this.getFragmentAtPosition(t,this.bitrateTest?e.fragmentEnd:e.edge,e))}return s}getFragmentAtPosition(e,t,i){let s,{config:r}=this,{fragPrevious:a}=this,{fragments:n,endSN:l}=i,{fragmentHint:o}=i,{maxFragLookUpTolerance:d}=r,h=i.partList,u=!!(this.loadingParts&&null!=h&&h.length&&o);if(u&&!this.bitrateTest&&h[h.length-1].fragment.sn===o.sn&&(n=n.concat(o),l=o.sn),e<t){var c;let i=e<this.lastCurrentTime||e>t-d||null!=(c=this.media)&&c.paused||!this.startFragRequested?0:d;s=tA(a,n,e,i)}else s=n[n.length-1];if(s){let e=s.sn-i.startSN,t=this.fragmentTracker.getState(s);if(("OK"===t||t===tU&&s.gap)&&(a=s),a&&s.sn===a.sn&&(!u||h[0].fragment.sn>s.sn||!i.live)&&s.level===a.level){let t=n[e+1];s=s.sn<l&&"OK"!==this.fragmentTracker.getState(t)?t:null}}return s}alignPlaylists(e,t,i){let s=e.fragments.length;if(!s)return this.warn("No fragments in live playlist"),0;let r=e.fragmentStart,a=!t,n=e.alignedSliding&&j(r);if(a||!n&&!r){i&&(i1(e,i),e.alignedSliding||i2(e,i),e.alignedSliding||e.skippedSegments||iW(i,e,!1));let r=e.fragmentStart;return this.log(`Live playlist sliding: ${r.toFixed(2)} start-sn: ${t?t.startSN:"na"}->${e.startSN} fragments: ${s}`),r}return r}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)}setStartPosition(e,t){let i=this.startPosition;i<t&&(i=-1);let s=this.timelineOffset;if(-1===i){let r=null!==this.startTimeOffset,a=r?this.startTimeOffset:e.startTimeOffset;null!==a&&j(a)?(i=t+a,a<0&&(i+=e.edge),i=Math.min(Math.max(t,i),t+e.totalduration),this.log(`Setting startPosition to ${i} for start time offset ${a} found in ${r?"multivariant":"media"} playlist`),this.startPosition=i):e.live?(i=this.hls.liveSyncPosition||t,this.log(`Setting startPosition to -1 to start at live edge ${i}`),this.startPosition=-1):(this.log("setting startPosition to 0 by default"),this.startPosition=i=0),this.lastCurrentTime=i+s}this.nextLoadPosition=i+s}getLoadPosition(){var e;let{media:t}=this,i=0;return null!=(e=this.hls)&&e.hasEnoughToStart&&t?i=t.currentTime:this.nextLoadPosition>=0&&(i=this.nextLoadPosition),i}handleFragLoadAborted(e,t){this.transmuxer&&e.type===this.playlistType&&eM(e)&&e.stats.aborted&&(this.log(`Fragment ${e.sn}${t?" part "+t.index:""} of ${this.playlistLabel()} ${e.level} was aborted`),this.resetFragmentLoading(e))}resetFragmentLoading(e){this.fragCurrent&&(this.fragContextChanged(e)||this.state===se)||(this.state=i6)}onFragmentOrKeyLoadError(e,t){var i,s,r;if(t.chunkMeta&&!t.frag){let e=this.getCurrentContext(t.chunkMeta);e&&(t.frag=e.frag)}let a=t.frag;if(!a||a.type!==e||!this.levels)return;if(this.fragContextChanged(a))return void this.warn(`Frag load error must match current frag to retry ${a.url} > ${null==(s=this.fragCurrent)?void 0:s.url}`);let n=t.details===z.FRAG_GAP;n&&this.fragmentTracker.fragBuffered(a,!0);let l=t.errorAction;if(!l){this.state=sa;return}let{action:o,flags:d,retryCount:h=0,retryConfig:u}=l,c=!!u,f=c&&5===o,m=c&&!l.resolved&&1===d,g=null==(i=this.hls.latestLevelDetails)?void 0:i.live;if(!f&&m&&eM(a)&&!a.endList&&g&&!tR(t))this.resetFragmentErrors(e),this.treatAsGap(a),l.resolved=!0;else if((f||m)&&h<u.maxNumRetry){let i=tD(null==(r=t.response)?void 0:r.code),s=tC(u,h);if(this.resetStartWhenNotLoaded(),this.retryDate=self.performance.now()+s,this.state=se,l.resolved=!0,i){this.log("Waiting for connection (offline)"),this.retryDate=1/0,t.reason="offline";return}this.warn(`Fragment ${a.sn} of ${e} ${a.level} errored with ${t.details}, retrying loading ${h+1}/${u.maxNumRetry} in ${s}ms`)}else if(u){if(this.resetFragmentErrors(e),!(h<u.maxNumRetry))return void this.warn(`${t.details} reached or exceeded max retry (${h})`);n||3===o||(l.resolved=!0)}else 2===o?this.state=sl:this.state=sa;this.tickImmediate()}checkRetryDate(){let e=self.performance.now(),t=this.retryDate,i=t===1/0;(!t||e>=t||i&&!tD(0))&&(i&&this.log("Connection restored (online)"),this.resetStartWhenNotLoaded(),this.state=i6)}reduceLengthAndFlushBuffer(e){if(this.state===si||this.state===ss){let t=e.frag,i=e.parent,s=this.getFwdBufferInfo(this.mediaBuffer,i),r=s&&s.len>.5;r&&this.reduceMaxBufferLength(s.len,(null==t?void 0:t.duration)||10);let a=!r;return a&&this.warn(`Buffer full error while media.currentTime (${this.getLoadPosition()}) is not buffered, flush ${i} buffer`),t&&(this.fragmentTracker.removeFragment(t),this.nextLoadPosition=t.start),this.resetLoadingState(),a}return!1}resetFragmentErrors(e){e===es&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==i8&&(this.state=i6)}afterBufferFlushed(e,t,i){if(!e)return;let s=tJ.getBuffered(e);this.fragmentTracker.detectEvictedFragments(t,s,i),this.state===sr&&this.resetLoadingState()}
49resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==i8&&(this.state=i6)}resetStartWhenNotLoaded(){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;let e=this.levelLastLoaded,t=e?e.details:null;null!=t&&t.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(t,t.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(e){this.log(`Loading context changed while buffering sn ${e.sn} of ${this.playlistLabel()} ${-1===e.level?"<removed>":e.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(),this.resetLoadingState()}removeUnbufferedFrags(e=0){this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}updateLevelTiming(e,t,i,s){let r=i.details;if(!r)return void this.warn("level.details undefined");if(!Object.keys(e.elementaryStreams).reduce((t,a)=>{let n=e.elementaryStreams[a];if(n){let l=n.endPTS-n.startPTS;if(l<=0)return this.warn(`Could not parse fragment ${e.sn} ${a} duration reliably (${l})`),t||!1;let o=s?0:iG(r,e,n.startPTS,n.endPTS,n.startDTS,n.endDTS,this);return this.hls.trigger(X.LEVEL_PTS_UPDATED,{details:r,level:i,drift:
49o,type:a,frag:e,start:n.startPTS,end:n.endPTS}),!0}return t},!1)){var a;let t=(null==(a=this.transmuxer)?void 0:a.error)===null;if((0===i.fragmentError||t&&(i.fragmentError<2||e.endList))&&this.treatAsGap(e,i),t){let t=Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(t.message),this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_PARSING_ERROR,fatal:!1,error:t,frag:e,reason:`Found no media in msn ${e.sn} of ${this.playlistLabel()} "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}}this.state=ss,this.log(`Parsed ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.fragInfo(e,!1,t)})`),this.hls.trigger(X.FRAG_PARSED,{frag:e,part:t})}playlistLabel(){return this.playlistType===ei?"level":"track"}fragInfo(e,t=!0,i){var s,r;return`${this.playlistLabel()} ${e.level} (${i?"part":"frag"}:[${(null!=(s=t&&!i?e.startPTS:(i||e).start)?s:NaN).toFixed(3)}-${(null!=(r=t&&!i?e.endPTS:(i||e).end)?r:NaN).toFixed(3)}]${i&&"main"===e.type?"INDEPENDENT="+(i.independent?"YES":"NO"):""}`}treatAsGap(e,t){t&&t.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}resetTransmuxer(){var e;null==(e=this.transmuxer)||e.reset()}recoverWorkerError(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(),this.resetLoadingState())}set state(e){let t=this._state;t!==e&&(this._state=e,this.log(`${t}->${e}`))}get state(){return this._state}}function sd(e){return!!e.interstitialsController&&!1!==e.enableInterstitialPlayback}class sh{constructor(){this.chunks=[],this.dataLength=0}push(e){this.chunks.push(e),this.dataLength+=e.length}flush(){let e,{chunks:t,dataLength:i}=this;return t.length?(e=1===t.length?t[0]:function(e,t){let i=new Uint8Array(t),s=0;for(let t=0;t<e.length;t++){let r=e[t];i.set(r,s),s+=r.length}return i}(t,i),this.reset(),e):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}var su={exports:{}},sc=(p||(p=1,!function(e){var t=Object.prototype.hasOwnProperty,i="~";function s(){}function r(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function a(e,t,s,a,n){if("function"!=typeof s)throw TypeError("The listener must be a function");var l=new r(s,a||e,n),o=i?i+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],l]:e._events[o].push(l):(e._events[o]=l,e._eventsCount++),e}function n(e,t){0==--e._eventsCount?e._events=new s:delete e._events[t]}function l(){this._events=new s,this._eventsCount=0}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(i=!1)),l.prototype.eventNames=function(){var e,s,r=[];if(0===this._eventsCount)return r;for(s in e=this._events)t.call(e,s)&&r.push(i?s.slice(1):s);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},l.prototype.listeners=function(e){var t=i?i+e:e,s=this._events[t];if(!s)return[];if(s.fn)return[s.fn];for(var r=0,a=s.length,n=Array(a);r<a;r++)n[r]=s[r].fn;return n},l.prototype.listenerCount=function(e){var t=i?i+e:e,s=this._events[t];return s?s.fn?1:s.length:0},l.prototype.emit=function(e,t,s,r,a,n){var l=i?i+e:e;if(!this._events[l])return!1;var o,d,h=this._events[l],u=arguments.length;if(h.fn){switch(h.once&&this.removeListener(e,h.fn,void 0,!0),u){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,t),!0;case 3:return h.fn.call(h.context,t,s),!0;case 4:return h.fn.call(h.context,t,s,r),!0;case 5:return h.fn.call(h.context,t,s,r,a),!0;case 6:return h.fn.call(h.context,t,s,r,a,n),!0}for(d=1,o=Array(u-1);d<u;d++)o[d-1]=arguments[d];h.fn.apply(h.context,o)}else{var c,f=h.length;for(d=0;d<f;d++)switch(h[d].once&&this.removeListener(e,h[d].fn,void 0,!0),u){case 1:h[d].fn.call(h[d].context);break;case 2:h[d].fn.call(h[d].context,t);break;case 3:h[d].fn.call(h[d].context,t,s);break;case 4:h[d].fn.call(h[d].context,t,s,r);break;default:if(!o)for(c=1,o=Array(u-1);c<u;c++)o[c-1]=arguments[c];h[d].fn.apply(h[d].context,o)}}return!0},l.prototype.on=function(e,t,i){return a(this,e,t,i,!1)},l.prototype.once=function(e,t,i){return a(this,e,t,i,!0)},l.prototype.removeListener=function(e,t,s,r){var a=i?i+e:e;if(!this._events[a])return this;if(!t)return n(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||r&&!l.once||s&&l.context!==s||n(this,a);else{for(var o=0,d=[],h=l.length;o<h;o++)(l[o].fn!==t||r&&!l[o].once||s&&l[o].context!==s)&&d.push(l[o]);d.length?this._events[a]=1===d.length?d[0]:d:n(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&n(this,t)):(this._events=new s,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=i,l.EventEmitter=l,e.exports=l}(su)),(c=su.exports)&&c.__esModule&&Object.prototype.hasOwnProperty.call(c,"default"))?c.default:c;let sf="1.6.15",sm={};function sg(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128||!1}function sp(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128||!1}function sv(e,t){return(127&e[t])<<21|(127&e[t+1])<<14|(127&e[t+2])<<7|127&e[t+3]}function sE(e,t){let i=t,s=0;for(;sp(e,t);)s+=10,s+=sv(e,t+6),sg(e,t+10)&&(s+=10),t+=s;
49if(s>0)return e.subarray(i,i+s)}function sb(e,t){return 255===e[t]&&(246&e[t+1])==240}function sy(e,t){return 1&e[t+1]?7:9}function sT(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function sA(e,t){return t+1<e.length&&sb(e,t)}function sS(e,t,i,s,r){if(!e.samplerate){let a=function(e,t,i,s){let r=t[i+2],a=r>>2&15;if(a>12){let t=Error(`invalid ADTS sampling index:${a}`);e.emit(X.ERROR,X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_PARSING_ERROR,fatal:!0,error:t,reason:t.message});return}let n=(r>>6&3)+1,l=t[i+3]>>6&3|(1&r)<<2,o="mp4a.40."+n,d=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][a],h=a;(5===n||29===n)&&(h-=3);let u=[n<<3|(14&h)>>1,(1&h)<<7|l<<3];return eg.log(`manifest codec:${s}, parsed codec:${o}, channels:${l}, rate:${d} (ADTS object type:${n} sampling index:${a})`),{config:u,samplerate:d,channelCount:l,codec:o,parsedCodec:o,manifestCodec:s}}(t,i,s,r);a&&el(e,a)}}function sI(e,t,i,s,r){let a,n=s+r*(9216e4/e.samplerate),l=function(e,t){let i=sy(e,t);if(t+i<=e.length){let s=sT(e,t)-i;if(s>0)return{headerLength:i,frameLength:s}}}(t,i);if(l){let{frameLength:s,headerLength:r}=l,o=r+s,d=Math.max(0,i+o-t.length);d?(a=new Uint8Array(o-r)).set(t.subarray(i+r,t.length),0):a=t.subarray(i+r,i+o);let h={unit:a,pts:n};return d||e.samples.push(h),{sample:h,length:o,missing:d}}let o=t.length-i;return(a=new Uint8Array(o)).set(t.subarray(i,t.length),0),{sample:{unit:a,pts:n},length:o,missing:-1}}function sL(e,t=0,i=1/0){var s,r,a,n,l,o;let d,h,u,c,f,m;return s=e,r=t,a=i,n=Uint8Array,d=(l=s)instanceof ArrayBuffer?l:l.buffer,h=1,"BYTES_PER_ELEMENT"in n&&(h=n.BYTES_PER_ELEMENT),c=((u=(o=s)&&o.buffer instanceof ArrayBuffer&&void 0!==o.byteLength&&void 0!==o.byteOffset?s.byteOffset:0)+s.byteLength)/h,m=Math.floor(Math.min((f=Math.floor(Math.max(0,Math.min((u+r)/h,c))))+Math.max(a,0),c)),new n(d,f,m-f)}function sk(e){let t=0,i=[];for(;sp(e,t);){let s=sv(e,t+6);e[t+5]>>6&1&&(t+=10);let r=(t+=10)+s;for(;t+10<r;){let s=function(e){let t=String.fromCharCode(e[0],e[1],e[2],e[3]),i=sv(e,4);return{type:t,size:i,data:e.subarray(10,10+i)}}(e.subarray(t)),r=function(e){if("PRIV"===e.type){if(e.size<2)return;let t=eE(e.data,!0),i=new Uint8Array(e.data.subarray(t.length+1));return{key:e.type,info:t,data:i.buffer}}if("W"===e.type[0]){if("WXXX"===e.type){if(e.size<2)return;let t=1,i=eE(e.data.subarray(t),!0);t+=i.length+1;let s=eE(e.data.subarray(t));return{key:e.type,info:i,data:s}}let t=eE(e.data);return{key:e.type,info:"",data:t}}if("APIC"===e.type)return function(e){let t,i={key:e.type,description:"",data:"",mimeType:null,pictureType:null};if(e.size<2)return;if(3!==e.data[0])return void console.log("Ignore frame with unrecognized character encoding");let s=e.data.subarray(1).indexOf(0);if(-1===s)return;let r=eE(sL(e.data,1,s)),a=e.data[2+s],n=e.data.subarray(3+s).indexOf(0);if(-1===n)return;let l=eE(sL(e.data,3+s,n));if("-->"===r)t=eE(sL(e.data,4+s+n));else{var o;t=(o=e.data.subarray(4+s+n))instanceof ArrayBuffer?o:0==o.byteOffset&&o.byteLength==o.buffer.byteLength?o.buffer:new Uint8Array(o).buffer}return i.mimeType=r,i.pictureType=a,i.description=l,i.data=t,i}(e);if(e.size<2)return;if("TXXX"===e.type){let t=1,i=eE(e.data.subarray(t),!0);t+=i.length+1;let s=eE(e.data.subarray(t));return{key:e.type,info:i,data:s}}let t=eE(e.data.subarray(1));return{key:e.type,info:"",data:t}}(s);r&&i.push(r),t+=s.size+10}sg(e,t)&&(t+=10)}return i}function sR(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info}function sM(e){let t=sk(e);for(let e=0;e<t.length;e++){let i=t[e];if(sR(i))return function(e){if(8===e.data.byteLength){let t=new Uint8Array(e.data),i=1&t[3],s=(t[4]<<23)+(t[5]<<15)+(t[6]<<7)+t[7];return s/=45,i&&(s+=47721858.84),Math.round(s)}}(i)}}let sC=((f={}).audioId3="org.id3",f.dateRange="com.apple.quicktime.HLS",f.emsg="https://aomedia.org/emsg/ID3",f.misbklv="urn:misb:KLV:bin:1910.1",f);function s_(e="",t=9e4){return{type:e,id:-1,pid:-1,inputTimeScale:t,sequenceNumber:-1,samples:[],dropped:0}}class sw{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){let i;this.cachedData&&(e=ej(this.cachedData,e),this.cachedData=null);
49let s=sE(e,0),r=s?s.length:0,a=this._audioTrack,n=this._id3Track,l=s?sM(s):void 0,o=e.length;for((null===this.basePTS||0===this.frameIndex&&j(l))&&(this.basePTS=sD(l,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),s&&s.length>0&&n.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:s,type:sC.audioId3,duration:1/0});r<o;){if(this.canParse(e,r)){let t=this.appendFrame(a,e,r);t?(this.frameIndex++,this.lastPTS=t.sample.pts,r+=t.length,i=r):r=o}else{var d,h;sp(d=e,h=r)&&sv(d,h+6)+10<=d.length-h?(s=sE(e,r),n.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:s,type:sC.audioId3,duration:1/0}),r+=s.length,i=r):r++}if(r===o&&i!==o){let t=e.slice(i);this.cachedData?this.cachedData=ej(this.cachedData,t):this.cachedData=t}}return{audioTrack:a,videoTrack:s_(),id3Track:n,textTrack:s_()}}demuxSampleAes(e,t,i){return Promise.reject(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:s_(),id3Track:this._id3Track,textTrack:s_()}}destroy(){this.cachedData=null,this._audioTrack=this._id3Track=void 0}}let sD=(e,t,i)=>j(e)?90*e:9e4*t+(i?9e4*i.baseTime/i.timescale:0),sx=null,sP=[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],sO=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],sU=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],sN=[0,1,1,4];function sF(e,t,i,s,r){if(i+24>t.length)return;let a=sB(t,i);if(a&&i+a.frameLength<=t.length){let n=s+r*(9e4*a.samplesPerFrame/a.sampleRate),l={unit:t.subarray(i,i+a.frameLength),pts:n,dts:n};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(l),{sample:l,length:a.frameLength,missing:0}}}function sB(e,t){let i=e[t+1]>>3&3,s=e[t+1]>>1&3,r=e[t+2]>>4&15,a=e[t+2]>>2&3;if(1!==i&&0!==r&&15!==r&&3!==a){let n=e[t+2]>>1&1,l=e[t+3]>>6,o=1e3*sP[14*(3===i?3-s:3===s?3:4)+r-1],d=sO[3*(3===i?0:2===i?1:2)+a],h=sU[i][s],u=sN[s],c=Math.floor(h*o/d+n)*u;if(null===sx){let e=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);sx=e?parseInt(e[1]):0}return sx&&sx<=87&&2===s&&o>=224e3&&0===l&&(e[t+3]=128|e[t+3]),{sampleRate:d,channelCount:3===l?1:2,frameLength:c,samplesPerFrame:8*h*u}}}function s$(e,t){return 255===e[t]&&(224&e[t+1])==224&&(6&e[t+1])!=0}function sH(e,t){return t+1<e.length&&s$(e,t)}function sG(e,t){if(t+1<e.length&&s$(e,t)){let i=sB(e,t),s=4;null!=i&&i.frameLength&&(s=i.frameLength);let r=t+s;return r===e.length||sH(e,r)}return!1}let sV=(e,t)=>{let i=0,s=5;t+=5;let r=new Uint32Array(1),a=new Uint32Array(1),n=new Uint8Array(1);for(;s>0;){n[0]=e[t];let l=Math.min(s,8),o=8-l;a[0]=0xff000000>>>24+o<<o,r[0]=(n[0]&a[0])>>o,i=i?i<<l|r[0]:r[0],t+=1,s-=l}return i};function sW(e,t,i,s,r){if(i+8>t.length||11!==t[i]||119!==t[i+1])return -1;let a=t[i+4]>>6;if(a>=3)return -1;let n=[48e3,44100,32e3][a],l=63&t[i+4],o=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*l+a];if(i+o>t.length)return -1;let d=t[i+6]>>5,h=0;2===d?h+=2:(1&d&&1!==d&&(h+=2),4&d&&(h+=2));let u=(t[i+6]<<8|t[i+7])>>12-h&1,c=[2,1,2,3,3,4,4,5][d]+u,f=t[i+5]>>3,m=7&t[i+5],g=new Uint8Array([a<<6|f<<1|m>>2,(3&m)<<6|d<<3|u<<2|l>>4,l<<4&224]),p=t.subarray(i,i+o);return e.config=g,e.channelCount=c,e.samplerate=n,e.samples.push({unit:p,pts:s+1536/n*9e4*r}),o}let sK=/\/emsg[-/]ID3/i;function sj(e,t){return j(e.presentationTime)?e.presentationTime/e.timeScale:t+e.presentationTimeDelta/e.timeScale}class sq{constructor(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new tW(t,{removePKCS7Padding:!1})}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,0)}decryptAacSample(e,t,i){let s=e[t].unit;if(s.length<=16)return;let r=s.subarray(16,s.length-s.length%16),a=r.buffer.slice(r.byteOffset,r.byteOffset+r.length);this.decryptBuffer(a).then(r=>{let a=new Uint8Array(r);s.set(a,16),this.decrypter.isSync()||this.decryptAacSamples(e,t+1,i)}).catch(i)}decryptAacSamples(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){let t=new Int8Array(16*Math.floor((e.length-48)/160)+16),i=0;for(let s=32;s<e.length-16;s+=160,i+=16)t.set(e.subarray(s,s+16),i);return t}getAvcDecryptedUnit(e,t){let i=new Uint8Array(t),s=0;for(let t=32;t<e.length-16;t+=160,s+=16)e.set(i.subarray(s,s+16),t);return e}decryptAvcSample(e,t,i,s,r){let a=ez(r.data),n=this.getAvcEncryptedData(a);this.decryptBuffer(n.buffer).then(n=>{r.data=this.getAvcDecryptedUnit(a,n),this.decrypter.isSync()||this.decryptAvcSamples(e,t,i+1,s)}).catch(s)}decryptAvcSamples(e,t,i,s){if(e instanceof Uint8Array)throw Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length)return void s();let r=e[t].units;for(;!(i>=r.length);i++){let a=r[i];if(!(a.data.length<=48)&&(1===a.type||5===a.type)&&(this.decryptAvcSample(e,t,i,s,a),!this.decrypter.isSync()))return}}}}class sY{constructor(){this.VideoSample=null}createVideoSample(e,t,i){return{key:e,frame:!1,pts:t,dts:i,units:[],length:0}}getLastNalUnit(e){var t;let i,s=this.VideoSample;if(s&&0!==s.units.length||(s=e[e.length-1]),null!=(t=s)&&t.units){let e=s.units;i=e[e.length-1]}return i}pushAccessUnit(e,t){if(e.units.length&&e.frame){if(void 0===e.pts){let i=t.samples,s=i.length;if(!s)return void t.dropped++;{let t=i[s-1];e.pts=t.pts,e.dts=t.dts}}t.samples.push(e)}}parseNALu(e,t,i){let s,r,a,n=t.byteLength,l=e.naluState||0,o=l,d=[],h=0,u=-1,c=0;for(-1===l&&(u=0,c=this.getNALuType(t,0),l=0,h=1);h<n;){if(s=t[h++],!l){l=+!s;continue}if(1===l){l=2*!s;continue}
49if(s)if(1===s){if(r=h-l-1,u>=0){let e={data:t.subarray(u,r),type:c};d.push(e)}else{let i=this.getLastNalUnit(e.samples);i&&(o&&h<=4-o&&i.state&&(i.data=i.data.subarray(0,i.data.byteLength-o)),r>0&&(i.data=ej(i.data,t.subarray(0,r)),i.state=0))}h<n?(a=this.getNALuType(t,h),u=h,c=a,l=0):l=-1}else l=0;else l=3}if(u>=0&&l>=0){let e={data:t.subarray(u,n),type:c,state:l};d.push(e)}if(0===d.length){let i=this.getLastNalUnit(e.samples);i&&(i.data=ej(i.data,t))}return e.naluState=l,d}}class sQ{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),r=Math.min(4,t);if(0===r)throw Error("no bytes available");s.set(e.subarray(i,i+r)),this.word=new DataView(s.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}skipBits(e){let t;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),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&&eg.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 Error("no bits available");return(t=e-t)>0&&this.bitsAvailable?i<<t|this.readBits(t):i}skipLZ(){let e;for(e=0;e<this.bitsAvailable;++e)if((this.word&0x80000000>>>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 1===this.readBits(1)}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}}class sz extends sY{parsePES(e,t,i,s){let r,a=this.parseNALu(e,i.data,s),n=this.VideoSample,l=!1;i.data=null,n&&a.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts)),a.forEach(s=>{var a,o,d,h,u;switch(s.type){case 1:{let t=!1;r=!0;let a=s.data;if(l&&a.length>4){let e=this.readSliceType(a);(2===e||4===e||7===e||9===e)&&(t=!0)}t&&null!=(d=n)&&d.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts)),n.frame=!0,n.key=t;break}case 5:r=!0,null!=(a=n)&&a.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 6:r=!0,eQ(s.data,1,i.pts,t.samples);break;case 7:{r=!0,l=!0;let t=s.data,i=this.readSPS(t);if(!e.sps||e.width!==i.width||e.height!==i.height||(null==(h=e.pixelRatio)?void 0:h[0])!==i.pixelRatio[0]||(null==(u=e.pixelRatio)?void 0:u[1])!==i.pixelRatio[1]){e.width=i.width,e.height=i.height,e.pixelRatio=i.pixelRatio,e.sps=[t];let s=t.subarray(1,4),r="avc1.";for(let e=0;e<3;e++){let t=s[e].toString(16);t.length<2&&(t="0"+t),r+=t}e.codec=r}break}case 8:r=!0,e.pps=[s.data];break;case 9:r=!0,e.audFound=!0,null!=(o=n)&&o.frame&&(this.pushAccessUnit(n,e),n=null),n||(n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts));break;case 12:r=!0;break;default:r=!1}n&&r&&n.units.push(s)}),s&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)}getNALuType(e,t){return 31&e[t]}readSliceType(e){let t=new sQ(e);return t.readUByte(),t.readUEG(),t.readUEG()}skipScalingList(e,t){let i=8,s=8;for(let r=0;r<e;r++)0!==s&&(s=(i+t.readEG()+256)%256),i=0===s?i:s}readSPS(e){let t,i,s,r=new sQ(e),a=0,n=0,l=0,o=0,d=r.readUByte.bind(r),h=r.readBits.bind(r),u=r.readUEG.bind(r),c=r.readBoolean.bind(r),f=r.skipBits.bind(r),m=r.skipEG.bind(r),g=r.skipUEG.bind(r),p=this.skipScalingList.bind(this);d();let v=d();if(h(5),f(3),d(),g(),100===v||110===v||122===v||244===v||44===v||83===v||86===v||118===v||128===v){let e=u();if(3===e&&f(1),g(),g(),f(1),c())for(i=3!==e?8:12,s=0;s<i;s++)c()&&p(s<6?16:64,r)}g();let E=u();if(0===E)u();else if(1===E)for(f(1),m(),m(),t=u(),s=0;s<t;s++)m();g(),f(1);let b=u(),y=u(),T=h(1);0===T&&f(1),f(1),c()&&(a=u(),n=u(),l=u(),o=u());let A=[1,1];if(c()&&c())switch(d()){case 1:A=[1,1];break;case 2:A=[12,11];break;case 3:A=[10,11];break;case 4:A=[16,11];break;case 5:A=[40,33];break;case 6:A=[24,11];break;case 7:A=[20,11];break;case 8:A=[32,11];break;case 9:A=[80,33];break;case 10:A=[18,11];break;case 11:A=[15,11];break;case 12:A=[64,33];break;case 13:A=[160,99];break;case 14:A=[4,3];break;case 15:A=[3,2];break;case 16:A=[2,1];break;case 255:A=[d()<<8|d(),d()<<8|d()]}return{width:Math.ceil((b+1)*16-2*a-2*n),height:(2-T)*(y+1)*16-(T?2:4)*(l+o),pixelRatio:A}}}class sX extends sY{constructor(...e){super(...e),this.initVPS=null}parsePES(e,t,i,s){let r,a=this.parseNALu(e,i.data,s),n=this.VideoSample,l=!1;i.data=null,n&&a.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts)),a.forEach(s=>{var a,o,d;
49switch(s.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:n||(n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts)),n.frame=!0,r=!0;break;case 16:case 17:case 18:case 21:r=!0,l&&null!=(d=n)&&d.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 19:case 20:r=!0,null!=(a=n)&&a.frame&&!n.key&&(this.pushAccessUnit(n,e),n=this.VideoSample=null),n||(n=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 39:r=!0,eQ(s.data,2,i.pts,t.samples);break;case 32:r=!0,e.vps||("object"!=typeof e.params&&(e.params={}),e.params=el(e.params,this.readVPS(s.data)),this.initVPS=s.data),e.vps=[s.data];break;case 33:if(r=!0,l=!0,void 0===e.vps||e.vps[0]===this.initVPS||void 0===e.sps||this.matchSPS(e.sps[0],s.data)||(this.initVPS=e.vps[0],e.sps=e.pps=void 0),!e.sps){let t=this.readSPS(s.data);for(let i in e.width=t.width,e.height=t.height,e.pixelRatio=t.pixelRatio,e.codec=t.codecString,e.sps=[],"object"!=typeof e.params&&(e.params={}),t.params)e.params[i]=t.params[i]}this.pushParameterSet(e.sps,s.data,e.vps),n||(n=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts)),n.key=!0;break;case 34:if(r=!0,"object"==typeof e.params){if(!e.pps){e.pps=[];let t=this.readPPS(s.data);for(let i in t)e.params[i]=t[i]}this.pushParameterSet(e.pps,s.data,e.vps)}break;case 35:r=!0,e.audFound=!0,null!=(o=n)&&o.frame&&(this.pushAccessUnit(n,e),n=null),n||(n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts));break;default:r=!1}n&&r&&n.units.push(s)}),s&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)}pushParameterSet(e,t,i){(!i||i[0]!==this.initVPS)&&(i||e.length)||e.push(t)}getNALuType(e,t){return(126&e[t])>>>1}ebsp2rbsp(e){let t=new Uint8Array(e.byteLength),i=0;for(let s=0;s<e.byteLength;s++)(!(s>=2)||3!==e[s]||0!==e[s-1]||0!==e[s-2])&&(t[i]=e[s],i++);return new Uint8Array(t.buffer,0,i)}pushAccessUnit(e,t){super.pushAccessUnit(e,t),this.initVPS&&(this.initVPS=null)}readVPS(e){let t=new sQ(e);return t.readUByte(),t.readUByte(),t.readBits(4),t.skipBits(2),t.readBits(6),{numTemporalLayers:t.readBits(3)+1,temporalIdNested:t.readBoolean()}}readSPS(e){let t=new sQ(this.ebsp2rbsp(e));t.readUByte(),t.readUByte(),t.readBits(4);let i=t.readBits(3);t.readBoolean();let s=t.readBits(2),r=t.readBoolean(),a=t.readBits(5),n=t.readUByte(),l=t.readUByte(),o=t.readUByte(),d=t.readUByte(),h=t.readUByte(),u=t.readUByte(),c=t.readUByte(),f=t.readUByte(),m=t.readUByte(),g=t.readUByte(),p=t.readUByte(),v=[],E=[];for(let e=0;e<i;e++)v.push(t.readBoolean()),E.push(t.readBoolean());if(i>0)for(let e=i;e<8;e++)t.readBits(2);for(let e=0;e<i;e++)v[e]&&(t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte()),E[e]&&t.readUByte();t.readUEG();let b=t.readUEG();3==b&&t.skipBits(1);let y=t.readUEG(),T=t.readUEG(),A=t.readBoolean(),S=0,I=0,L=0,k=0;A&&(S+=t.readUEG(),I+=t.readUEG(),L+=t.readUEG(),k+=t.readUEG());let R=t.readUEG(),M=t.readUEG(),C=t.readUEG(),_=t.readBoolean();for(let e=_?0:i;e<=i;e++)t.skipUEG(),t.skipUEG(),t.skipUEG();if(t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.readBoolean()&&t.readBoolean())for(let e=0;e<4;e++)for(let i=0;i<(3===e?2:6);i++)if(t.readBoolean()){let i=Math.min(64,1<<4+(e<<1));e>1&&t.readEG();for(let e=0;e<i;e++)t.readEG()}else t.readUEG();t.readBoolean(),t.readBoolean(),t.readBoolean()&&(t.readUByte(),t.skipUEG(),t.skipUEG(),t.readBoolean());let w=t.readUEG(),D=0;for(let e=0;e<w;e++){let i=!1;if(0!==e&&(i=t.readBoolean()),i){e===w&&t.readUEG(),t.readBoolean(),t.readUEG();let i=0;for(let e=0;e<=D;e++){let e=t.readBoolean(),s=!1;e||(s=t.readBoolean()),(e||s)&&i++}D=i}else{let e=t.readUEG(),i=t.readUEG();D=e+i;for(let i=0;i<e;i++)t.readUEG(),t.readBoolean();for(let e=0;e<i;e++)t.readUEG(),t.readBoolean()}}if(t.readBoolean()){let e=t.readUEG();for(let i=0;i<e;i++){for(let e=0;e<C+4;e++)t.readBits(1);t.readBits(1)}}let x=0,P=1,O=1,U=!0,N=1,F=0;t.readBoolean(),t.readBoolean();if(t.readBoolean()){if(t.readBoolean()){let e=t.readUByte();e>0&&e<16?(P=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],O=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(P=t.readBits(16),O=t.readBits(16))}if(t.readBoolean()&&t.readBoolean(),t.readBoolean()&&(t.readBits(3),t.readBoolean(),t.readBoolean()&&(t.readUByte(),t.readUByte(),t.readUByte())),t.readBoolean()&&(t.readUEG(),t.readUEG()),t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readBoolean()&&(t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG()),t.readBoolean()&&(N=t.readBits(32),F=t.readBits(32),t.readBoolean()&&t.readUEG(),t.readBoolean())){let e=t.readBoolean(),s=t.readBoolean(),r=!1;(e||s)&&((r=t.readBoolean())&&(t.readUByte(),t.readBits(5),t.readBoolean(),t.readBits(5)),t.readBits(4),t.readBits(4),r&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5));for(let a=0;a<=i;a++){let i=(U=t.readBoolean())||t.readBoolean(),a=!1;i?t.readEG():a=t.readBoolean();let n=a?1:t.readUEG()+1;if(e)for(let e=0;e<n;e++)t.readUEG(),t.readUEG(),r&&(t.readUEG(),t.readUEG()),t.skipBits(1);if(s)for(let e=0;e<n;e++)t.readUEG(),t.readUEG(),r&&(t.readUEG(),t.readUEG()),t.skipBits(1)}}t.readBoolean()&&(t.readBoolean(),t.readBoolean(),t.readBoolean(),x=t.readUEG())}let B=y,$=T;if(A){let e=1,t=1;1===b?e=t=2:2==b&&(e=2),B=y-e*I-e*S,$=T-t*k-t*L}let H=s?["A","B","C"][s]:"",G=n<<24|l<<16|o<<8|d,V=0;for(let e=0;e<32;e++)V=(V|(G>>e&1)<<31-e)>>>0;let W=V.toString(16);return 1===a&&"2"===W&&(W="6"),{codecString:`hvc1.${H}${a}.${W}.${r?"H":"L"}${p}.B0`,params:{general_tier_flag:r,general_profile_idc:a,general_profile_space:s,general_profile_compatibility_flags:[n,l,o,d],general_constraint_indicator_flags:[h,u,c,f,m,g],general_level_idc:
49p,bit_depth:R+8,bit_depth_luma_minus8:R,bit_depth_chroma_minus8:M,min_spatial_segmentation_idc:x,chroma_format_idc:b,frame_rate:{fixed:U,fps:F/N}},width:B,height:$,pixelRatio:[P,O]}}readPPS(e){let t=new sQ(this.ebsp2rbsp(e));t.readUByte(),t.readUByte(),t.skipUEG(),t.skipUEG(),t.skipBits(2),t.skipBits(3),t.skipBits(2),t.skipUEG(),t.skipUEG(),t.skipEG(),t.skipBits(2),t.readBoolean()&&t.skipUEG(),t.skipEG(),t.skipEG(),t.skipBits(4);let i=t.readBoolean(),s=t.readBoolean(),r=1;return s&&i?r=0:s?r=3:i&&(r=2),{parallelismType:r}}matchSPS(e,t){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,t).substr(3)}}function sZ(e,t){return((31&e[t+1])<<8)+e[t+2]}function sJ(e,t,i,s){s.warn(`parsing error: ${t.message}`),e.emit(X.ERROR,X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_PARSING_ERROR,fatal:!1,levelRetry:i,error:t,reason:t.message})}function s0(e,t){t.log(`${e} with AES-128-CBC encryption found in unencrypted stream`)}function s1(e,t){let i,s,r,a,n,l=0,o=e.data;if(!e||0===e.size)return null;for(;o[0].length<19&&o.length>1;)o[0]=ej(o[0],o[1]),o.splice(1,1);if(1===((i=o[0])[0]<<16)+(i[1]<<8)+i[2]){if((s=(i[4]<<8)+i[5])&&s>e.size-6)return null;let d=i[7];192&d&&(a=(14&i[9])*0x20000000+(255&i[10])*4194304+(254&i[11])*16384+(255&i[12])*128+(254&i[13])/2,64&d?a-(n=(14&i[14])*0x20000000+(255&i[15])*4194304+(254&i[16])*16384+(255&i[17])*128+(254&i[18])/2)>54e5&&(t.warn(`${Math.round((a-n)/9e4)}s delta between PTS and DTS, align them`),a=n):n=a);let h=(r=i[8])+9;if(e.size<=h)return null;e.size-=h;let u=new Uint8Array(e.size);for(let e=0,t=o.length;e<t;e++){let t=(i=o[e]).byteLength;if(h)if(h>t){h-=t;continue}else i=i.subarray(h),t-=h,h=0;u.set(i,l),l+=t}return s&&(s-=r+3),{data:u,pts:a,dts:n,len:s}}return null}class s2{static getSilentFrame(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);else if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);else if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);else if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}class s3{static init(){let e;for(e in s3.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},s3.types)s3.types.hasOwnProperty(e)&&(s3.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);s3.HDLR_TYPES={video:new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),audio:new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0])};let t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]);s3.STTS=s3.STSC=s3.STCO=new Uint8Array([0,0,0,0,0,0,0,0]),s3.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),s3.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),s3.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),s3.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let i=new Uint8Array([105,115,111,109]),s=new Uint8Array([97,118,99,49]),r=new 
49Uint8Array([0,0,0,1]);s3.FTYP=s3.box(s3.types.ftyp,i,r,i,s),s3.DINF=s3.box(s3.types.dinf,s3.box(s3.types.dref,t))}static box(e,...t){let i=8,s=t.length,r=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]=255&i,a.set(e,4),s=0,i=8;s<r;s++)a.set(t[s],i),i+=t[s].byteLength;return a}static hdlr(e){return s3.box(s3.types.hdlr,s3.HDLR_TYPES[e])}static mdat(e){return s3.box(s3.types.mdat,e)}static mdhd(e,t){let i=Math.floor((t*=e)/0x100000000),s=Math.floor(t%0x100000000);return s3.box(s3.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,s>>24,s>>16&255,s>>8&255,255&s,85,196,0,0]))}static mdia(e){return s3.box(s3.types.mdia,s3.mdhd(e.timescale||0,e.duration||0),s3.hdlr(e.type),s3.minf(e))}static mfhd(e){return s3.box(s3.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))}static minf(e){return"audio"===e.type?s3.box(s3.types.minf,s3.box(s3.types.smhd,s3.SMHD),s3.DINF,s3.stbl(e)):s3.box(s3.types.minf,s3.box(s3.types.vmhd,s3.VMHD),s3.DINF,s3.stbl(e))}static moof(e,t,i){return s3.box(s3.types.moof,s3.mfhd(e),s3.traf(i,t))}static moov(e){let t=e.length,i=[];for(;t--;)i[t]=s3.trak(e[t]);return s3.box.apply(null,[s3.types.moov,s3.mvhd(e[0].timescale||0,e[0].duration||0)].concat(i).concat(s3.mvex(e)))}static mvex(e){let t=e.length,i=[];for(;t--;)i[t]=s3.trex(e[t]);return s3.box.apply(null,[s3.types.mvex,...i])}static mvhd(e,t){let i=Math.floor((t*=e)/0x100000000),s=Math.floor(t%0x100000000),r=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,s>>24,s>>16&255,s>>8&255,255&s,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 s3.box(s3.types.mvhd,r)}static sdtp(e){let t,i,s=e.samples||[],r=new Uint8Array(4+s.length);for(t=0;t<s.length;t++)i=s[t].flags,r[t+4]=i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy;return s3.box(s3.types.sdtp,r)}static stbl(e){return s3.box(s3.types.stbl,s3.stsd(e),s3.box(s3.types.stts,s3.STTS),s3.box(s3.types.stsc,s3.STSC),s3.box(s3.types.stsz,s3.STSZ),s3.box(s3.types.stco,s3.STCO))}static avc1(e){let t,i,s,r=[],a=[];for(t=0;t<e.sps.length;t++)s=(i=e.sps[t]).byteLength,r.push(s>>>8&255),r.push(255&s),r=r.concat(Array.prototype.slice.call(i));for(t=0;t<e.pps.length;t++)s=(i=e.pps[t]).byteLength,a.push(s>>>8&255),a.push(255&s),a=a.concat(Array.prototype.slice.call(i));let n=s3.box(s3.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(a))),l=e.width,o=e.height,d=e.pixelRatio[0],h=e.pixelRatio[1];return s3.box(s3.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,o>>8&255,255&o,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]),n,s3.box(s3.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),s3.box(s3.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,h>>24,h>>16&255,h>>8&255,255&h])))}static esds(e){return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...e.config,6,1,2])}static audioStsd(e){let t=e.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount||0,0,16,0,0,0,0,t>>8&255,255&t,0,0])}static mp4a(e){return s3.box(s3.types.mp4a,s3.audioStsd(e),s3.box(s3.types.esds,s3.esds(e)))}static mp3(e){return s3.box(s3.types[".mp3"],s3.audioStsd(e))}static ac3(e){return s3.box(s3.types["ac-3"],s3.audioStsd(e),s3.box(s3.types.dac3,e.config))}static stsd(e){let{segmentCodec:t}=e;if("audio"===e.type){if("aac"===t)return s3.box(s3.types.stsd,s3.STSD,s3.mp4a(e));if("ac3"===t&&e.config)return s3.box(s3.types.stsd,s3.STSD,s3.ac3(e));if("mp3"===t&&"mp3"===e.codec)return s3.box(s3.types.stsd,s3.STSD,s3.mp3(e))}else if(e.pps&&e.sps){if("avc"===t)return s3.box(s3.types.stsd,s3.STSD,s3.avc1(e));if("hevc"===t&&e.vps)return s3.box(s3.types.stsd,s3.STSD,s3.hvc1(e))}
49else throw Error("video track missing pps or sps");throw Error(`unsupported ${e.type} segment codec (${t}/${e.codec})`)}static tkhd(e){let t=e.id,i=(e.duration||0)*(e.timescale||0),s=e.width||0,r=e.height||0,a=Math.floor(i/0x100000000),n=Math.floor(i%0x100000000);return s3.box(s3.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,255&t,0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,n>>24,n>>16&255,n>>8&255,255&n,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,s>>8&255,255&s,0,0,r>>8&255,255&r,0,0]))}static traf(e,t){let i=s3.sdtp(e),s=e.id,r=Math.floor(t/0x100000000),a=Math.floor(t%0x100000000);return s3.box(s3.types.traf,s3.box(s3.types.tfhd,new Uint8Array([0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s])),s3.box(s3.types.tfdt,new Uint8Array([1,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,a>>24,a>>16&255,a>>8&255,255&a])),s3.trun(e,i.length+16+20+8+16+8+8),i)}static trak(e){return e.duration=e.duration||0xffffffff,s3.box(s3.types.trak,s3.tkhd(e),s3.mdia(e))}static trex(e){let t=e.id;return s3.box(s3.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,t){let i,s,r,a,n,l,o=e.samples||[],d=o.length,h=12+16*d,u=new Uint8Array(h);for(t+=8+h,u.set([+("video"===e.type),0,15,1,d>>>24&255,d>>>16&255,d>>>8&255,255&d,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0),i=0;i<d;i++)r=(s=o[i]).duration,a=s.size,n=s.flags,l=s.cts,u.set([r>>>24&255,r>>>16&255,r>>>8&255,255&r,a>>>24&255,a>>>16&255,a>>>8&255,255&a,n.isLeading<<2|n.dependsOn,n.isDependedOn<<6|n.hasRedundancy<<4|n.paddingValue<<1|n.isNonSync,61440&n.degradPrio,15&n.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*i);return s3.box(s3.types.trun,u)}static initSegment(e){s3.types||s3.init();let t=s3.moov(e);return ej(s3.FTYP,t)}static hvc1(e){let t=e.params,i=[e.vps,e.sps,e.pps],s=new Uint8Array([1,t.general_profile_space<<6|32*!!t.general_tier_flag|t.general_profile_idc,t.general_profile_compatibility_flags[0],t.general_profile_compatibility_flags[1],t.general_profile_compatibility_flags[2],t.general_profile_compatibility_flags[3],t.general_constraint_indicator_flags[0],t.general_constraint_indicator_flags[1],t.general_constraint_indicator_flags[2],t.general_constraint_indicator_flags[3],t.general_constraint_indicator_flags[4],t.general_constraint_indicator_flags[5],t.general_level_idc,240|t.min_spatial_segmentation_idc>>8,255&t.min_spatial_segmentation_idc,252|t.parallelismType,252|t.chroma_format_idc,248|t.bit_depth_luma_minus8,248|t.bit_depth_chroma_minus8,0,parseInt(t.frame_rate.fps),3|t.temporal_id_nested<<2|t.num_temporal_layers<<3|64*!!t.frame_rate.fixed,i.length]),r=s.length;for(let e=0;e<i.length;e+=1){r+=3;for(let t=0;t<i[e].length;t+=1)r+=2+i[e][t].length}let a=new Uint8Array(r);a.set(s,0),r=s.length;let n=i.length-1;for(let e=0;e<i.length;e+=1){a.set(new Uint8Array([32+e|128*(e===n),0,i[e].length]),r),r+=3;for(let t=0;t<i[e].length;t+=1)a.set(new Uint8Array([i[e][t].length>>8,255&i[e][t].length]),r),r+=2,a.set(i[e][t],r),r+=i[e][t].length}let l=s3.box(s3.types.hvcC,a),o=e.width,d=e.height,h=e.pixelRatio[0],u=e.pixelRatio[1];return s3.box(s3.types.hvc1,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,o>>8&255,255&o,d>>8&255,255&d,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]),l,s3.box(s3.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),s3.box(s3.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,u>>24,u>>16&255,u>>8&255,255&u])))}}function s4(e,t,i=1,s=!1){let r=e*t*i;return s?Math.round(r):r}function s5(e,t=!1){return s4(e,1e3,11111111111111112e-21,t)}function s8(e){let{baseTime:t,timescale:i,trackId:s}=e;return`${t/i} (${t}/${i}) trackId: ${s}`}s3.types=void 0,s3.HDLR_TYPES=void 0,s3.STTS=void 0,s3.STSC=void 0,s3.STCO=void 0,s3.STSZ=void 0,s3.VMHD=void 0,s3.SMHD=void 0,s3.STSD=void 0,s3.FTYP=void 0,s3.DINF=void 0;let s6=null,s9=null;function s7(e,t,i,s){return{duration:t,size:i,cts:s,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:e?2:1,isNonSync:+!e}}}class re extends eh{constructor(e,t,i,s){if(super("mp4-remuxer",s),this.observer=void 0,this.config=void 0,this.typeSupp
49orted=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=!1,null===s6){const e=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);s6=e?parseInt(e[1]):0}if(null===s9){const e=navigator.userAgent.match(/Safari\/(\d+)/i);s9=e?parseInt(e[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(e){let t=this._initPTS;t&&e&&e.trackId===t.trackId&&e.baseTime===t.baseTime&&e.timescale===t.timescale||this.log(`Reset initPTS: ${t?s8(t):t} > ${e?s8(e):e}`),this._initPTS=this._initDTS=e}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(e){let t=!1,i=e[0].pts,s=e.reduce((e,s)=>{let r=s.pts,a=r-e;return(a<-0x100000000&&(t=!0,a=(r=rt(r,i))-e),a>0)?e:r},i);return t&&this.debug("PTS rollover detected"),s}remux(e,t,i,s,r,a,n,l){let o,d,h,u,c,f,m=r,g=r,p=e.pid>-1,v=t.pid>-1,E=t.samples.length,b=e.samples.length>0,y=n&&E>0||E>1;if((!p||b)&&(!v||y)||this.ISGenerated||n){let i;if(this.ISGenerated){var T,A,S,I;let e=this.videoTrackConfig;(e&&(t.width!==e.width||t.height!==e.height||(null==(T=t.pixelRatio)?void 0:T[0])!==(null==(A=e.pixelRatio)?void 0:A[0])||(null==(S=t.pixelRatio)?void 0:S[1])!==(null==(I=e.pixelRatio)?void 0:I[1]))||!e&&y||null===this.nextAudioTs&&b)&&this.resetInitSegment()}this.ISGenerated||(h=this.generateIS(e,t,r,a));let s=this.isVideoContiguous,n=-1;if(y&&(n=function(e){for(let t=0;t<e.length;t++)if(e[t].key)return t;return -1}(t.samples),!s&&this.config.forceKeyFrameOnDiscontinuity))if(f=!0,n>0){this.warn(`Dropped ${n} out of ${E} video samples due to a missing keyframe`);let e=this.getVideoStartPts(t.samples);t.samples=t.samples.slice(n),t.dropped+=n,g+=(t.samples[0].pts-e)/t.inputTimeScale,i=g}else -1===n&&(this.warn(`No keyframe found out of ${E} video samples`),f=!1);if(this.ISGenerated){if(b&&y){let i=this.getVideoStartPts(t.samples),s=(rt(e.samples[0].pts,i)-i)/t.inputTimeScale;m+=Math.max(0,s),g+=Math.max(0,-s)}if(b){if(e.samplerate||(this.warn("regenerate InitSegment as audio detected"),h=this.generateIS(e,t,r,a)),d=this.remuxAudio(e,m,this.isAudioContiguous,a,v||y||l===es?g:void 0),y){let i=d?d.endPTS-d.startPTS:0;t.inputTimeScale||(this.warn("regenerate InitSegment as video detected"),h=this.generateIS(e,t,r,a)),o=this.remuxVideo(t,g,s,i)}}else y&&(o=this.remuxVideo(t,g,s,0));o&&(o.firstKeyFrame=n,o.independent=-1!==n,o.firstKeyFramePTS=i)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(c=ri(i,r,this._initPTS,this._initDTS)),s.samples.length&&(u=rs(s,r,this._initPTS))),{audio:d,video:o,initSegment:h,independent:f,text:u,id3:c}}computeInitPts(e,t,i,s){let r=Math.round(i*t),a=rt(e,r);if(a<r+t)for(this.log(`Adjusting PTS for rollover in timeline near ${(r-a)/t} ${s}`);a<r+t;)a+=0x200000000;return a-r}generateIS(e,t,i,s){let r,a,n,l=e.samples,o=t.samples,d=this.typeSupported,h={},u=this._initPTS,c=!u||s,f="audio/mp4",m=-1;if(c&&(r=a=1/0),e.config&&l.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":d.mpeg?(f="audio/mpeg",e.codec=""):d.mp3&&(e.codec="mp3");break;case"ac3":e.codec="ac-3"}h.audio={id:"audio",container:f,codec:e.codec,initSegment:"mp3"===e.segmentCodec&&d.mpeg?new Uint8Array(0):s3.initSegment([e]),metadata:{channelCount:e.channelCount}},c&&(m=e.id,n=e.inputTimeScale,u&&n===u.timescale?c=!1:r=a=this.computeInitPts(l[0].pts,n,i,"audio"))}if(t.sps&&t.pps&&o.length){if(t.timescale=t.inputTimeScale,h.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:s3.initSegment([t]),metadata:{width:t.width,height:t.height}},c)if(m=t.id,n=t.inputTimeScale,u&&n===u.timescale)c=!1;else{let e=this.getVideoStartPts(o),t=rt(o[0].dts,e),s=this.computeInitPts(t,n,i,"video"),l=this.computeInitPts(e,n,i,"video");a=Math.min(a,s),r=Math.min(r,l)}this.videoTrackConfig={width:t.width,height:t.height,pixelRatio:t.pixelRatio}}if(Object.keys(h).length)return this.ISGenerated=!0,c?(u&&this.warn(`Timestamps at playlist time: ${s?"":"~"}${i} ${r/n} != initPTS: ${u.baseTime/u.timescale} (${u.baseTime}/${u.timescale}) trackId: ${u.trackId}`),this.log(`Found initPTS at playlist time: ${i} offset: ${r/n} (${r}/${n}) trackId: ${m}`),this._initPTS={baseTime:r,timescale:n,trackId:m},this._initDTS={baseTime:a,timescale:n,trackId:m}):r=n=void 0,{tracks:h,initPTS:r,timescale:n,trackId:m}}remuxVideo(e,t,i,s){let r,a,n,l=e.inputTimeScale,o=e.samples,d=[],h=o.length,u=this._initPTS,c=u.baseTime*l/u.timescale,f=this.nextVideoTs,m=8,g=this.videoSampleDuration,p=1/0,v=-1/0,E=!1;if(!i||null===f){let e=c+t*l,s=o[0].pts-rt(o[0].dts,o[0].pts);s6&&null!==f&&15e3>Math.abs(e-s-(f+c))?i=!0:f=e-s-c}let b=f+c;for(let e=0;e<h;
49e++){let t=o[e];t.pts=rt(t.pts,b),t.dts=rt(t.dts,b),t.dts<o[e>0?e-1:e].dts&&(E=!0)}E&&o.sort(function(e,t){let i=e.dts-t.dts,s=e.pts-t.pts;return i||s}),r=o[0].dts;let y=(a=o[o.length-1].dts)-r,T=y?Math.round(y/(h-1)):g||e.inputTimeScale/30;if(i){let i=r-b,s=i>T,a=i<-1;if((s||a)&&(s?this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${s5(i,!0)} ms (${i}dts) hole between fragments detected at ${t.toFixed(3)}`):this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${s5(-i,!0)} ms (${i}dts) overlapping between fragments detected at ${t.toFixed(3)}`),!a||b>=o[0].pts||s6)){r=b;let e=o[0].pts-i;if(s)o[0].dts=r,o[0].pts=e;else{let t=!0;for(let s=0;s<o.length&&(!(o[s].dts>e)||!t);s++){let e=o[s].pts;if(o[s].dts-=i,o[s].pts-=i,s<o.length-1){let i=o[s+1].pts;t=i<=o[s].pts==i<=e}}}this.log(`Video: Initial PTS/DTS adjusted: ${s5(e,!0)}/${s5(r,!0)}, delta: ${s5(i,!0)} ms`)}}let A=0,S=0,I=r=Math.max(0,r);for(let e=0;e<h;e++){let t=o[e],i=t.units,s=i.length,r=0;for(let e=0;e<s;e++)r+=i[e].data.length;S+=r,A+=s,t.length=r,t.dts<I?(t.dts=I,I+=T/4|0||1):I=t.dts,p=Math.min(t.pts,p),v=Math.max(t.pts,v)}a=o[h-1].dts;let L=S+4*A+8;try{n=new Uint8Array(L)}catch(e){this.observer.emit(X.ERROR,X.ERROR,{type:Q.MUX_ERROR,details:z.REMUX_ALLOC_ERROR,fatal:!1,error:e,bytes:L,reason:`fail allocating video mdat ${L}`});return}let k=new DataView(n.buffer);k.setUint32(0,L),n.set(s3.types.mdat,4);let R=!1,M=1/0,C=1/0,_=-1/0,w=-1/0;for(let e=0;e<h;e++){let t,i=o[e],r=i.units,a=0;for(let e=0,t=r.length;e<t;e++){let t=r[e],i=t.data,s=t.data.byteLength;k.setUint32(m,s),m+=4,n.set(i,m),m+=s,a+=4+s}if(e<h-1)g=o[e+1].dts-i.dts,t=o[e+1].pts-i.pts;else{let r=this.config,a=e>0?i.dts-o[e-1].dts:T;if(t=e>0?i.pts-o[e-1].pts:T,r.stretchShortVideoTrack&&null!==this.nextAudioTs){let e=Math.floor(r.maxBufferHole*l),t=(s?p+s*l:this.nextAudioTs+c)-i.pts;t>e?((g=t-a)<0?g=a:R=!0,this.log(`It is approximately ${t/90} ms to the next segment; using duration ${g/90} ms for the last video frame.`)):g=a}else g=a}let u=Math.round(i.pts-i.dts);M=Math.min(M,g),_=Math.max(_,g),C=Math.min(C,t),w=Math.max(w,t),d.push(s7(i.key,g,a,u))}if(d.length){if(s6){if(s6<70){let e=d[0].flags;e.dependsOn=2,e.isNonSync=0}}else if(s9&&w-C<_-M&&T/_<.025&&0===d[0].cts){this.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let e=r;for(let t=0,i=d.length;t<i;t++){let s=e+d[t].duration,r=e+d[t].cts;if(t<i-1){let e=s+d[t+1].cts;d[t].duration=e-r}else d[t].duration=t?d[t-1].duration:T;d[t].cts=0,e=s}}}let D=a+(g=R||!g?T:g);this.nextVideoTs=f=D-c,this.videoSampleDuration=g,this.isVideoContiguous=!0;let x={data1:s3.moof(e.sequenceNumber++,r,el(e,{samples:d})),data2:n,startPTS:(p-c)/l,endPTS:(v+g-c)/l,startDTS:(r-c)/l,endDTS:f/l,type:"video",hasAudio:!1,hasVideo:!0,nb:d.length,dropped:e.dropped};return e.samples=[],e.dropped=0,x}getSamplesPerFrame(e){switch(e.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(e,t,i,s,r){let a,n=e.inputTimeScale,l=e.samplerate?e.samplerate:n,o=n/l,d=this.getSamplesPerFrame(e),h=d*o,u=this._initPTS,c="mp3"===e.segmentCodec&&this.typeSupported.mpeg,f=[],m=void 0!==r,g=e.samples,p=8*!c,v=this.nextAudioTs||-1,E=u.baseTime*n/u.timescale,b=E+t*n;if(this.isAudioContiguous=i=i||g.length&&v>0&&(s&&9e3>Math.abs(b-(v+E))||Math.abs(rt(g[0].pts,b)-(v+E))<20*h),g.forEach(function(e){e.pts=rt(e.pts,b)}),!i||v<0){let e=g.length;if(e!==(g=g.filter(e=>e.pts>=0)).length&&this.warn(`Removed ${g.length-e} of ${e} samples (initPTS ${E} / ${n})`),!g.length)return;v=0===r?0:s&&!m?Math.max(0,b-E):g[0].pts-E}if("aac"===e.segmentCodec){let t=this.config.maxAudioFramesDrift;for(let i=0,s=v+E;i<g.length;i++){let r=g[i],a=r.pts,l=a-s,o=Math.abs(1e3*l/n);
49if(l<=-t*h&&m)0===i&&(this.warn(`Audio frame @ ${(a/n).toFixed(3)}s overlaps marker by ${Math.round(1e3*l/n)} ms.`),this.nextAudioTs=v=a-E,s=a);else if(l>=t*h&&o<1e4&&m){let t=Math.round(l/h);for(s=a-t*h;s<0&&t&&h;)t--,s+=h;0===i&&(this.nextAudioTs=v=s-E),this.warn(`Injecting ${t} audio frames @ ${((s-E)/n).toFixed(3)}s due to ${Math.round(1e3*l/n)} ms gap.`);for(let a=0;a<t;a++){let t=s2.getSilentFrame(e.parsedCodec||e.manifestCodec||e.codec,e.channelCount);t||(this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."),t=r.unit.subarray()),g.splice(i,0,{unit:t,pts:s}),s+=h,i++}}r.pts=s,s+=h}}let y=null,T=null,A=0,S=g.length;for(;S--;)A+=g[S].unit.byteLength;for(let t=0,s=g.length;t<s;t++){let s=g[t],r=s.unit,n=s.pts;if(null!==T)f[t-1].duration=Math.round((n-T)/o);else{if(i&&"aac"===e.segmentCodec&&(n=v+E),y=n,!(A>0))return;A+=p;try{a=new Uint8Array(A)}catch(e){this.observer.emit(X.ERROR,X.ERROR,{type:Q.MUX_ERROR,details:z.REMUX_ALLOC_ERROR,fatal:!1,error:e,bytes:A,reason:`fail allocating audio mdat ${A}`});return}c||(new DataView(a.buffer).setUint32(0,A),a.set(s3.types.mdat,4))}a.set(r,p);let l=r.byteLength;p+=l,f.push(s7(!0,d,l,0)),T=n}let I=f.length;if(!I)return;let L=f[f.length-1];v=T-E,this.nextAudioTs=v+o*L.duration;let k=c?new Uint8Array(0):s3.moof(e.sequenceNumber++,y/o,el({},e,{samples:f}));e.samples=[];let R=(y-E)/n,M=this.nextAudioTs/n,C={data1:k,data2:a,startPTS:R,endPTS:M,startDTS:R,endDTS:M,type:"audio",hasAudio:!0,hasVideo:!1,nb:I};return this.isAudioContiguous=!0,C}}function rt(e,t){let i;if(null===t)return e;for(i=t<e?-0x200000000:0x200000000;Math.abs(e-t)>0x100000000;)e+=i;return e}function ri(e,t,i,s){let r=e.samples.length;if(!r)return;let a=e.inputTimeScale;for(let n=0;n<r;n++){let r=e.samples[n];r.pts=rt(r.pts-i.baseTime*a/i.timescale,t*a)/a,r.dts=rt(r.dts-s.baseTime*a/s.timescale,t*a)/a}let n=e.samples;return e.samples=[],{samples:n}}function rs(e,t,i){let s=e.samples.length;if(!s)return;let r=e.inputTimeScale;for(let a=0;a<s;a++){let s=e.samples[a];s.pts=rt(s.pts-i.baseTime*r/i.timescale,t*r)/r}e.samples.sort((e,t)=>e.pts-t.pts);let a=e.samples;return e.samples=[],{samples:a}}function rr(e,t,i=!1){return(null==e?void 0:e.start)!==void 0?(e.start+(i?e.duration:0))/e.timescale:t}function ra(e,t,i){let s=e.codec;return s&&s.length>4?s:t===eI?"ec-3"===s||"ac-3"===s||"alac"===s?s:"fLaC"===s||"Opus"===s?e8(s,!1):(i.warn(`Unhandled audio codec "${s}" in mp4 MAP`),s||"mp4a"):(i.warn(`Unhandled video codec "${s}" in mp4 MAP`),s||"avc1")}try{t=self.performance.now.bind(self.performance)}catch(e){t=Date.now}let rn=[{demux: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 r=this.videoTrack=s_("video",1),a=this.audioTrack=s_("audio",1),n=this.txtTrack=s_("text",1);if(this.id3Track=s_("id3",1),this.timeOffset=0,!(null!=e&&e.byteLength))return;let l=eB(e);if(l.video){let{id:e,timescale:t,codec:i,supplemental:s}=l.video;r.id=e,r.timescale=n.timescale=t,r.codec=i,r.supplemental=s}if(l.audio){let{id:e,timescale:t,codec:i}=l.audio;a.id=e,a.timescale=t,a.codec=i}n.id=eD.text,r.sampleDuration=0,r.duration=a.duration=s}resetContiguity(){this.remainderData=null}static probe(e){let t=e.byteLength;for(let i=0;i<t;){let s=eO(e,i);if(s>8&&109===e[i+4]&&111===e[i+5]&&111===e[i+6]&&102===e[i+7])return!0;i=s>1?i+s:t}return!1}demux(e,t){this.timeOffset=t;let i=e,s=this.videoTrack,r=this.txtTrack;if(this.config.progressive){this.remainderData&&(i=ej(this.remainderData,e));let t=function(e){let t={valid:null,remainder:null},i=eF(e,["moof"]);if(i.length<2)return t.remainder=e,t;let s=i[i.length-1];return t.valid=e.slice(0,s.byteOffset-8),t.remainder=e.slice(s.byteOffset-8),t}(i);this.remainderData=t.remainder,s.samples=t.valid||new Uint8Array}else s.samples=i;let a=this.extractID3Track(s,t);
49return r.samples=eq(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=eq(e,t),{videoTrack:t,audioTrack:s_(),id3Track:s,textTrack:s_()}}extractID3Track(e,t){let i=this.id3Track;return e.samples.length&&eF(e.samples,["emsg"]).forEach(e=>{let s=function(e){let t=e[0],i="",s="",r=0,a=0,n=0,l=0,o=0,d=0;if(0===t){for(;"\0"!==ex(e.subarray(d,d+1));)i+=ex(e.subarray(d,d+1)),d+=1;for(i+=ex(e.subarray(d,d+1)),d+=1;"\0"!==ex(e.subarray(d,d+1));)s+=ex(e.subarray(d,d+1)),d+=1;s+=ex(e.subarray(d,d+1)),d+=1,r=eO(e,12),a=eO(e,16),l=eO(e,20),o=eO(e,24),d=28}else if(1===t){d+=4,r=eO(e,d);let t=eO(e,d+=4),a=eO(e,d+=4);for(d+=4,q(n=0x100000000*t+a)||(n=Number.MAX_SAFE_INTEGER,eg.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),l=eO(e,d),d+=4,o=eO(e,d),d+=4;"\0"!==ex(e.subarray(d,d+1));)i+=ex(e.subarray(d,d+1)),d+=1;for(i+=ex(e.subarray(d,d+1)),d+=1;"\0"!==ex(e.subarray(d,d+1));)s+=ex(e.subarray(d,d+1)),d+=1;s+=ex(e.subarray(d,d+1)),d+=1}return{schemeIdUri:i,value:s,timeScale:r,presentationTime:n,presentationTimeDelta:a,eventDuration:l,id:o,payload:e.subarray(d,e.byteLength)}}(e);if(sK.test(s.schemeIdUri)){let e=sj(s,t),r=0xffffffff===s.eventDuration?1/0:s.eventDuration/s.timeScale;r<=.001&&(r=1/0);let a=s.payload;i.samples.push({data:a,len:a.byteLength,dts:e,pts:e,type:sC.emsg,duration:r})}else if(this.config.enableEmsgKLVMetadata&&s.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){let e=sj(s,t);i.samples.push({data:s.payload,len:s.payload.byteLength,dts:e,pts:e,type:sC.misbklv,duration:1/0})}}),i}demuxSampleAes(e,t,i){return Promise.reject(Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}},remux:class extends eh{constructor(e,t,i,s){super("passthrough-remuxer",s),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,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(e){this.lastEndTime=null;let t=this.initPTS;t&&e&&t.baseTime===e.baseTime&&t.timescale===e.timescale||(this.initPTS=e)}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(e,t,i,s){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(e,s),this.emitInitSegment=!0}generateInitSegment(e,t){let{audioCodec:i,videoCodec:s}=this;if(!(null!=e&&e.byteLength)){this.initTracks=void 0,this.initData=void 0;return}let{audio:r,video:a}=this.initData=eB(e);if(t)!function(e,t){if(!e||!t)return;let i=t.keyId;i&&t.isCommonEncryption&&eW(e,(e,t)=>{let s=e.subarray(8,24);s.some(e=>0!==e)||(eg.log(`[eme] Patching keyId in 'enc${t?"a":"v"}>sinf>>tenc' box: ${eb(s)} -> ${eb(i)}`),e.set(i,8))})}(e,t);else{let e=r||a;null!=e&&e.encrypted&&this.warn(`Init segment with encrypted track with has no key ("${e.codec}")!`)}r&&(i=ra(r,eI,this)),a&&(s=ra(a,eL,this));let n={};r&&a?n.audiovideo={container:"video/mp4",codec:i+","+s,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:r?n.audio={container:"audio/mp4",codec:i,encrypted:r.encrypted,initSegment:e,id:"audio"}:a?n.video={container:"video/mp4",codec:s,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=n}remux(e,t,i,s,r,a){var n,l;let{initPTS:o,lastEndTime:d}=this,h={audio:void 0,video:void 0,text:s,id3:i,initSegment:void 0};j(d)||(d=this.lastEndTime=r||0);let u=t.samples;if(!u.length)return h;let c={initPTS:void 0,timescale:void 0,trackId:void 0},f=this.initData;if(null!=(n=f)&&n.length||(this.generateInitSegment(u),f=this.initData),!(null!=(l=f)&&l.length))return this.warn("Failed to generate initSegment."),h;this.emitInitSegment&&(c.tracks=this.initTracks,this.emitInitSegment=!1);let m=function(e,t,i){let s={},r=eF(e,["moof","traf"]);for(let e=0;e<r.length;e++){let a=r[e],n=eF(a,["tfhd"])[0],l=eO(n,4),o=t[l];if(!o)continue;s[l]||(s[l]={start:NaN,duration:0,sampleCount:0,timescale:o.timescale,type:o.type});let d=s[l],h=eF(a,["tfdt"])[0];if(h){let e=h[0],t=eO(h,4);1===e&&(0xffffffff===t?i.warn("[mp4-demuxer]: Ignoring assumed invali
49d signed 64-bit track fragment decode time"):(t*=0x100000000,t+=eO(h,8))),j(t)&&(!j(d.start)||t<d.start)&&(d.start=t)}let u=o.default,c=eO(n,0)|(null==u?void 0:u.flags),f=(null==u?void 0:u.duration)||0;8&c&&(f=2&c?eO(n,12):eO(n,8));let m=eF(a,["trun"]),g=d.start||0,p=0,v=f;for(let e=0;e<m.length;e++){let t=m[e],i=eO(t,4),s=d.sampleCount;d.sampleCount+=i;let r=1&t[3],a=4&t[3],n=1&t[2],l=2&t[2],o=4&t[2],h=8&t[2],u=8,c=i;for(r&&(u+=4),a&&i&&(1&t[u+1]||void 0!==d.keyFrameIndex||(d.keyFrameIndex=s),u+=4,n?(v=eO(t,u),u+=4):v=f,l&&(u+=4),h&&(u+=4),g+=v,p+=v,c--);c--;)n?(v=eO(t,u),u+=4):v=f,l&&(u+=4),o&&(1&t[u+1]||void 0!==d.keyFrameIndex||(d.keyFrameIndex=d.sampleCount-(c+1),d.keyFrameStart=g),u+=4),h&&(u+=4),g+=v,p+=v;!p&&f&&(p+=f*i)}d.duration+=p}if(!Object.keys(s).some(e=>s[e].duration)){let t=1/0,i=0,r=eF(e,["sidx"]);for(let e=0;e<r.length;e++){let s=function(e){let t=[],i=e[0],s=8,r=eO(e,8);s+=4;let a=0,n=0;0===i?(a=eO(e,s),n=eO(e,s+4),s+=8):(a=eU(e,s),n=eU(e,s+8),s+=16),s+=2;let l=e.length+n,o=eP(e,s);s+=2;for(let i=0;i<o;i++){let i=s,a=eO(e,i);i+=4;let n=0x7fffffff&a;if(1==(0x80000000&a)>>>31)return eg.warn("SIDX has hierarchical references (not supported)"),null;let o=eO(e,i);i+=4,t.push({referenceSize:n,subsegmentDuration:o,info:{duration:o/r,start:l,end:l+n-1}}),l+=n,i+=4,s=i}return{earliestPresentationTime:a,timescale:r,version:i,referencesCount:o,references:t}}(r[e]);if(null!=s&&s.references){t=Math.min(t,s.earliestPresentationTime/s.timescale);let e=s.references.reduce((e,t)=>e+t.info.duration||0,0);i=Math.max(i,e+s.earliestPresentationTime/s.timescale)}}i&&j(i)&&Object.keys(s).forEach(e=>{s[e].duration||(s[e].duration=i*s[e].timescale-s[e].start)})}return s}(u,f,this),g=f.audio?m[f.audio.id]:null,p=f.video?m[f.video.id]:null,v=rr(p,1/0),E=rr(g,1/0),b=rr(p,0,!0),y=rr(g,0,!0),T=r,A=0,S=g&&(!p||!o&&E<v||o&&o.trackId===f.audio.id),I=S?g:p;if(I){let e=I.timescale,t=I.start-r*e,i=S?f.audio.id:f.video.id;T=I.start/e,A=S?y-E:b-v,(a||!o)&&(function(e,t,i,s){if(null===e)return!0;let r=Math.max(s,1);return Math.abs(t-e.baseTime/e.timescale-i)>r}(o,T,r,A)||e!==o.timescale)&&(o&&this.warn(`Timestamps at playlist time: ${a?"":"~"}${r} ${t/e} != initPTS: ${o.baseTime/o.timescale} (${o.baseTime}/${o.timescale}) trackId: ${o.trackId}`),this.log(`Found initPTS at playlist time: ${r} offset: ${T-r} (${t}/${e}) trackId: ${i}`),o=null,c.initPTS=t,c.timescale=e,c.trackId=i)}else this.warn(`No audio or video samples found for initPTS at playlist time: ${r}`);o?(c.initPTS=o.baseTime,c.timescale=o.timescale,c.trackId=o.trackId):(c.timescale&&void 0!==c.trackId&&void 0!==c.initPTS||(this.warn("Could not set initPTS"),c.initPTS=T,c.timescale=1,c.trackId=-1),this.initPTS=o={baseTime:c.initPTS,timescale:c.timescale,trackId:c.trackId});let L=T-o.baseTime/o.timescale,k=L+A;A>0?this.lastEndTime=k:(this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let R=!!f.audio,M=!!f.video,C="";R&&(C+="audio"),M&&(C+="video");let _={data1:u,startPTS:L,startDTS:L,endPTS:k,endDTS:k,type:C,hasAudio:R,hasVideo:M,nb:1,dropped:0,encrypted:!!f.audio&&f.audio.encrypted||!!f.video&&f.video.encrypted};h.audio=R&&!M?_:void 0,h.video=M?_:void 0;let w=null==p?void 0:p.sampleCount;if(w){let e=p.keyFrameIndex,t=-1!==e;_.nb=w,_.dropped=0===e||this.isVideoContiguous?0:t?e:w,_.independent=t,_.firstKeyFrame=e,t&&p.keyFrameStart&&(_.firstKeyFramePTS=(p.keyFrameStart-o.baseTime)/o.timescale),this.isVideoContiguous||(h.independent=t),this.isVideoContiguous||(this.isVideoContiguous=t),_.dropped&&this.warn(`fmp4 does not start with IDR: firstIDR ${e}/${w} dropped: ${_.dropped} start: ${_.firstKeyFramePTS||"NA"}`)}return h.initSegment=c,h.id3=ri(i,r,o,o),s.samples.length&&(h.text=rs(s,r,o)),h}}},{demux:class e{constructor(e,t,i,s){this.logger=void 0,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._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=e,this.config=t,this.typeSupp
49orted=i,this.logger=s,this.videoParser=null}static probe(t,i){let s=e.syncOffset(t);return s>0&&i.warn(`MPEG2-TS detected but first sync word found @ offset ${s}`),-1!==s}static syncOffset(e){let t=e.length,i=Math.min(940,t-188)+1,s=0;for(;s<i;){let r=!1,a=-1,n=0;for(let l=s;l<t;l+=188)if(71===e[l]&&(t-l==188||71===e[l+188])){if(n++,-1===a&&0!==(a=l)&&(i=Math.min(a+18612,e.length-188)+1),r||(r=0===sZ(e,l)),r&&n>1&&(0===a&&n>2||l+188>i))return a}else if(n)return -1;else break;s++}return -1}static createTrack(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:eD[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?t:void 0}}resetInitSegment(t,i,s,r){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=e.createTrack("video"),this._videoTrack.duration=r,this._audioTrack=e.createTrack("audio",r),this._id3Track=e.createTrack("id3"),this._txtTrack=e.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=i,this.videoCodec=s}resetTimeStamp(){}resetContiguity(){let{_audioTrack:e,_videoTrack:t,_id3Track:i}=this;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,i,s=!1,r=!1){let a;s||(this.sampleAes=null);let n=this._videoTrack,l=this._audioTrack,o=this._id3Track,d=this._txtTrack,h=n.pid,u=n.pesData,c=l.pid,f=o.pid,m=l.pesData,g=o.pesData,p=null,v=this.pmtParsed,E=this._pmtId,b=t.length;if(this.remainderData&&(b=(t=ej(this.remainderData,t)).length,this.remainderData=null),b<188&&!r)return this.remainderData=t,{audioTrack:l,videoTrack:n,id3Track:o,textTrack:d};let y=Math.max(0,e.syncOffset(t));(b-=(b-y)%188)<t.byteLength&&!r&&(this.remainderData=new Uint8Array(t.buffer,b,t.buffer.byteLength-b));let T=0;for(let e=y;e<b;e+=188)if(71===t[e]){let i,r=!!(64&t[e+1]),b=sZ(t,e);if((48&t[e+3])>>4>1){if((i=e+5+t[e+4])===e+188)continue}else i=e+4;switch(b){case h:r&&(u&&(a=s1(u,this.logger))&&(this.readyVideoParser(n.segmentCodec),null!==this.videoParser&&this.videoParser.parsePES(n,d,a,!1)),u={data:[],size:0}),u&&(u.data.push(t.subarray(i,e+188)),u.size+=e+188-i);break;case c:if(r){if(m&&(a=s1(m,this.logger)))switch(l.segmentCodec){case"aac":this.parseAACPES(l,a);break;case"mp3":this.parseMPEGPES(l,a);break;case"ac3":this.parseAC3PES(l,a)}m={data:[],size:0}}m&&(m.data.push(t.subarray(i,e+188)),m.size+=e+188-i);break;case f:r&&(g&&(a=s1(g,this.logger))&&this.parseID3PES(o,a),g={data:[],size:0}),g&&(g.data.push(t.subarray(i,e+188)),g.size+=e+188-i);break;case 0:var A,S;r&&(i+=t[i]+1),E=this._pmtId=(31&(A=t)[(S=i)+10])<<8|A[S+11];break;case E:{r&&(i+=t[i]+1);let a=function(e,t,i,s,r,a){let n={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},l=(15&e[t+1])<<8|e[t+2],o=t+3+l-4,d=(15&e[t+10])<<8|e[t+11];for(t+=12+d;t<o;){let l=sZ(e,t),o=(15&e[t+3])<<8|e[t+4];switch(e[t]){case 207:if(!s){s0("ADTS AAC",a);break}case 15:-1===n.audioPid&&(n.audioPid=l);break;case 21:-1===n.id3Pid&&(n.id3Pid=l);break;case 219:if(!s){s0("H.264",a);break}case 27:-1===n.videoPid&&(n.videoPid=l);break;case 3:case 4:i.mpeg||i.mp3?-1===n.audioPid&&(n.audioPid=l,n.segmentAudioCodec="mp3"):a.log("MPEG audio found, not supported in this browser");break;case 193:if(!s){s0("AC-3",a);break}case 129:i.ac3?-1===n.audioPid&&(n.audioPid=l,n.segmentAudioCodec="ac3"):a.log("AC-3 audio found, not supported in this browser");break;case 6:if(-1===n.audioPid&&o>0){let s=t+5,r=o;for(;r>2;){106===e[s]&&(!0!==i.ac3?a.log("AC-3 audio found, not supported in this browser for now"):(n.audioPid=l,n.segmentAudioCodec="ac3"));let t=e[s+1]+2;s+=t,r-=t}}break;case 194:case 135:return sJ(r,Error("Unsupported EC-3 in M2TS found"),void 0,a),n;case 36:-1===n.videoPid&&(n.videoPid=l,n.segmentVideoCodec="hevc",a.log("HEVC in M2TS found"))}t+=o+5}return n}(t,i,this.typeSupported,s,this.observer,this.logger);(h=a.videoPid)>0&&(n.pid=h,n.segmentCodec=a.segmentVideoCodec),(c=a.audioPid)>0&&(l.pid=c,l.segmentCodec=a.segmentAudioCodec),(f=a.id3Pid)>0&&(o.pid=f),null===p||v||(this.logger.warn(`MPEG-TS PMT found at ${e} after unknown PID '${p}'. Backtracking to sync byte @${y} to parse all TS packets.`),p=null,e=y-188),v=this.pmtParsed=!0;break}case 17:case 8191:break;default:p=b}}else T++;T>0&&sJ(this.observer,Error(`Found ${T} TS packet/s that do not start with 0x47`),void 0,this.logger),n.pesData=u,l.pesData=m,o.pesData=g;let I={audioTrack:l,videoTrack:n,id3Track:o,textTrack:d};return r&&this.extractRemainingSamples(I),I}flush(){let e,{remainderData:t}=this;
49return(this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes)?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(e){let t,{audioTrack:i,videoTrack:s,id3Track:r,textTrack:a}=e,n=s.pesData,l=i.pesData,o=r.pesData;if(n&&(t=s1(n,this.logger))?(this.readyVideoParser(s.segmentCodec),null!==this.videoParser&&(this.videoParser.parsePES(s,a,t,!0),s.pesData=null)):s.pesData=n,l&&(t=s1(l,this.logger))){switch(i.segmentCodec){case"aac":this.parseAACPES(i,t);break;case"mp3":this.parseMPEGPES(i,t);break;case"ac3":this.parseAC3PES(i,t)}i.pesData=null}else null!=l&&l.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),i.pesData=l;o&&(t=s1(o,this.logger))?(this.parseID3PES(r,t),r.pesData=null):r.pesData=o}demuxSampleAes(e,t,i){let s=this.demux(e,i,!0,!this.config.progressive),r=this.sampleAes=new sq(this.observer,this.config,t);return this.decrypt(s,r)}readyVideoParser(e){null===this.videoParser&&("avc"===e?this.videoParser=new sz:"hevc"===e&&(this.videoParser=new sX))}decrypt(e,t){return new Promise(i=>{let{audioTrack:s,videoTrack:r}=e;s.samples&&"aac"===s.segmentCodec?t.decryptAacSamples(s.samples,0,()=>{r.samples?t.decryptAvcSamples(r.samples,0,0,()=>{i(e)}):i(e)}):r.samples&&t.decryptAvcSamples(r.samples,0,0,()=>{i(e)})})}destroy(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(e,t){let i,s,r,a,n=0,l=this.aacOverFlow,o=t.data;if(l){this.aacOverFlow=null;let t=l.missing,i=l.sample.unit.byteLength;-1===t?o=ej(l.sample.unit,o):(l.sample.unit.set(o.subarray(0,t),i-t),e.samples.push(l.sample),n=l.missing)}for(i=n,s=o.length;i<s-1&&!sA(o,i);i++);if(i!==n){let e,t=i<s-1;if(e=t?`AAC PES did not start with ADTS header,offset:${i}`:"No ADTS header found in AAC PES",sJ(this.observer,Error(e),t,this.logger),!t)return}if(sS(e,this.observer,o,i,this.audioCodec),void 0!==t.pts)r=t.pts;else{if(!l)return void this.logger.warn("[tsdemuxer]: AAC PES unknown PTS");let t=9216e4/e.samplerate;r=l.sample.pts+t}let d=0;for(;i<s;){if(a=sI(e,o,i,r,d),i+=a.length,a.missing){this.aacOverFlow=a;break}for(d++;i<s-1&&!sA(o,i);i++);}}parseMPEGPES(e,t){let i=t.data,s=i.length,r=0,a=0,n=t.pts;if(void 0===n)return void this.logger.warn("[tsdemuxer]: MPEG PES unknown PTS");for(;a<s;)if(sH(i,a)){let t=sF(e,i,a,n,r);if(t)a+=t.length,r++;else break}else a++}parseAC3PES(e,t){{let i,s=t.data,r=t.pts;if(void 0===r)return void this.logger.warn("[tsdemuxer]: AC3 PES unknown PTS");let a=s.length,n=0,l=0;for(;l<a&&(i=sW(e,s,l,r,n++))>0;)l+=i}}parseID3PES(e,t){if(void 0===t.pts)return void this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=el({},t,{type:this._videoTrack?sC.emsg:sC.audioId3,duration:1/0});e.samples.push(i)}},remux:re},{demux:class extends sw{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,t){if(!e)return!1;let i=sE(e,0),s=(null==i?void 0:i.length)||0;if(sG(e,s))return!1;for(let i=e.length;s<i;s++)if(function(e,t){if(sA(e,t)){let i=sy(e,t);if(t+i>=e.length)return!1;let s=sT(e,t);if(s<=i)return!1;let r=t+s;return r===e.length||sA(e,r)}return!1}(e,s))return t.log("ADTS sync word found !"),!0;return!1}canParse(e,t){return t+5<e.length&&sb(e,t)&&sT(e,t)<=e.length-t}appendFrame(e,t,i){sS(e,this.observer,t,i,e.manifestCodec);let s=sI(e,t,i,this.basePTS,this.frameIndex);if(s&&0===s.missing)return s}},remux:re},{demux:class extends sw{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 t=sE(e,0),i=(null==t?void 0:t.length)||0;
49if(t&&11===e[i]&&119===e[i+1]&&void 0!==sM(t)&&16>=sV(e,i))return!1;for(let t=e.length;i<t;i++)if(sG(e,i))return eg.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,t){return s$(e,t)&&4<=e.length-t}appendFrame(e,t,i){if(null!==this.basePTS)return sF(e,t,i,this.basePTS,this.frameIndex)}},remux:re}];rn.splice(2,0,{demux:class extends sw{constructor(e){super(),this.observer=void 0,this.observer=e}resetInitSegment(e,t,i,s){super.resetInitSegment(e,t,i,s),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}}canParse(e,t){return t+64<e.length}appendFrame(e,t,i){let s=sW(e,t,i,this.basePTS,this.frameIndex);if(-1!==s)return{sample:e.samples[e.samples.length-1],length:s,missing:0}}static probe(e){if(!e)return!1;let t=sE(e,0);if(!t)return!1;let i=t.length;return!!(11===e[i]&&119===e[i+1]&&void 0!==sM(t)&&16>sV(e,i))}},remux:re});class rl{constructor(e,t,i,s,r,a){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=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.id=r,this.logger=a}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}push(e,i,s,r){var a,n;let l,o=s.transmuxing;o.executeStart=t();let d=new Uint8Array(e),{currentTransmuxState:h,transmuxConfig:u}=this;r&&(this.currentTransmuxState=r);let{contiguous:c,discontinuity:f,trackSwitch:m,accurateTimeOffset:g,timeOffset:p,initSegmentChange:v}=r||h,{audioCodec:E,videoCodec:b,defaultInitPts:y,duration:T,initSegmentData:A}=u,S=(a=d,n=i,l=null,a.byteLength>0&&(null==n?void 0:n.key)!=null&&null!==n.iv&&null!=n.method&&(l=n),l);if(S&&ie(S.method)){let e=this.getDecrypter(),i=it(S.method);if(!e.isSync())return this.asyncResult=!0,this.decryptionPromise=e.webCryptoDecrypt(d,S.key.buffer,S.iv.buffer,i).then(e=>{let t=this.push(e,null,s);return this.decryptionPromise=null,t}),this.decryptionPromise;{let r=e.softwareDecrypt(d,S.key.buffer,S.iv.buffer,i);if(s.part>-1){let t=e.flush();r=t?t.buffer:t}if(!r)return o.executeEnd=t(),ro(s);d=new Uint8Array(r)}}let I=this.needsProbing(f,m);if(I){let e=this.configureTransmuxer(d);if(e)return this.logger.warn(`[transmuxer] ${e.message}`),this.observer.emit(X.ERROR,X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_PARSING_ERROR,fatal:!1,error:e,reason:e.message}),o.executeEnd=t(),ro(s)}(f||m||v||I)&&this.resetInitSegment(A,E,b,T,i),(f||v||I)&&this.resetInitialTimestamp(y),c||this.resetContiguity();let L=this.transmux(d,S,p,g,s);this.asyncResult=rd(L);let k=this.currentTransmuxState;return k.contiguous=!0,k.discontinuity=!1,k.trackSwitch=!1,o.executeEnd=t(),L}flush(e){let i=e.transmuxing;i.executeStart=t();let{decrypter:s,currentTransmuxState:r,decryptionPromise:a}=this;if(a)return this.asyncResult=!0,a.then(()=>this.flush(e));let n=[],{timeOffset:l}=r;if(s){let t=s.flush();t&&n.push(this.push(t.buffer,null,e))}let{demuxer:o,remuxer:d}=this;if(!o||!d){i.executeEnd=t();let s=[ro(e)];return this.asyncResult?Promise.resolve(s):s}let h=o.flush(l);return rd(h)?(this.asyncResult=!0,h.then(t=>(this.flushRemux(n,t,e),n))):(this.flushRemux(n,h,e),this.asyncResult)?Promise.resolve(n):n}flushRemux(e,i,s){let{audioTrack:r,videoTrack:a,id3Track:n,textTrack:l}=i,{accurateTimeOffset:o,timeOffset:d}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${s.sn}${s.part>-1?" part: "+s.part:""} of ${this.id===ei?"level":"track"} ${s.level}`);let h=this.remuxer.remux(r,a,n,l,d,o,!0,this.id);e.push({remuxResult:h,chunkMeta:s}),s.transmuxing.executeEnd=t()}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,r){let{demuxer:a,remuxer:n}=this;a&&n&&(a.resetInitSegment(e,t,i,s),n.resetInitSegment(e,t,i,r))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(e,t,i,s,r){return t&&"SAMPLE-AES"===t.method?this.transmuxSampleAes(e,t,i,s,r):this.transmuxUnencrypted(e,i,s,r)}transmuxUnencrypted(e,t,i,s){let{audioTrack:r,videoTrack:a,id3Track:n,textTrack:l}=this.demuxer.demux(e,t,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(r,a,n,l,t,i,!1,this.id),chunkMeta:s}}transmuxSampleAes(e,t,i,s,r){return this.demuxer.demuxSampleAes(e,t,i).then(e=>({remuxResult:this.remuxer.remux(e.audioTrack,e.videoTrack,e.id3Track,e.textTrack,i,s,!1,this.id),chunkMeta:r}))}
49configureTransmuxer(e){let t,{config:i,observer:s,typeSupported:r}=this;for(let i=0,s=rn.length;i<s;i++){var a;if(null!=(a=rn[i].demux)&&a.probe(e,this.logger)){t=rn[i];break}}if(!t)return Error("Failed to find demuxer by probing fragment data");let n=this.demuxer,l=this.remuxer,o=t.remux,d=t.demux;l&&l instanceof o||(this.remuxer=new o(s,i,r,this.logger)),n&&n instanceof d||(this.demuxer=new d(s,i,r,this.logger),this.probe=d.probe)}needsProbing(e,t){return!this.demuxer||!this.remuxer||e||t}getDecrypter(){let e=this.decrypter;return e||(e=this.decrypter=new tW(this.config)),e}}let ro=e=>({remuxResult:{},chunkMeta:e});function rd(e){return"then"in e&&e.then instanceof Function}class rh{constructor(e,t,i,s,r){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=r||null}}class ru{constructor(e,t,i,s,r,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=r,this.initSegmentChange=a}}let rc=0;class rf{constructor(e,t,i,s){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=rc++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=e=>{let t=e.data,i=this.hls;if(i&&null!=t&&t.event&&t.instanceNo===this.instanceNo)switch(t.event){case"init":{var s;let e=null==(s=this.workerContext)?void 0:s.objectURL;e&&self.URL.revokeObjectURL(e);break}case"transmuxComplete":this.handleTransmuxComplete(t.data);break;case"flush":this.onFlush(t.data);break;case"workerLog":i.logger[t.data.logType]&&i.logger[t.data.logType](t.data.message);break;default:t.data=t.data||{},t.data.frag=this.frag,t.data.part=this.part,t.data.id=this.id,i.trigger(t.event,t.data)}},this.onWorkerError=e=>{if(!this.hls)return;let t=Error(`${e.message}  (${e.filename}:${e.lineno})`);this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:t})};const r=e.config;this.hls=e,this.id=t,this.useWorker=!!r.enableWorker,this.onTransmuxComplete=i,this.onFlush=s;const a=(e,t)=>{(t=t||{}).frag=this.frag||void 0,e===X.ERROR&&(t.parent=this.id,t.part=this.part,this.error=t.error),this.hls.trigger(e,t)};this.observer=new sc,this.observer.on(X.FRAG_DECRYPTED,a),this.observer.on(X.ERROR,a);const n=e7(r.preferManagedMediaSource);if(this.useWorker&&"u">typeof Worker){const i=this.hls.logger;if(r.workerPath||"function"==typeof __HLS_WORKER_BUNDLE__){try{r.workerPath?(i.log(`loading Web Worker ${r.workerPath} for "${t}"`),this.workerContext=function(e){let t=sm[e];if(t)return t.clientCount++,t;let i=new self.URL(e,self.location.href).href,s={worker:new self.Worker(i),scriptURL:i,clientCount:1};return sm[e]=s,s}(r.workerPath)):(i.log(`injecting Web Worker for "${t}"`),this.workerContext=function(){let e=sm[sf];if(e)return e.clientCount++,e;let t=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),i=self.URL.createObjectURL(t),s={worker:new self.Worker(i),objectURL:i,clientCount:1};return sm[sf]=s,s}());const{worker:e}=this.workerContext;e.addEventListener("message",this.onWorkerMessage),e.addEventListener("error",this.onWorkerError),e.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:n,id:t,config:tc(r)})}catch(s){i.warn(`Error setting up "${t}" Web Worker, fallback to inline`,s),this.terminateWorker(),this.error=null,this.transmuxer=new rl(this.observer,n,r,"",t,e.logger)}return}}this.transmuxer=new rl(this.observer,n,r,"",t,e.logger)}reset(){if(this.frag=null,this.part=null,this.workerContext){let e=this.instanceNo;this.instanceNo=rc++;let t=this.hls.config,i=e7(t.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupp
49orted:i,id:this.id,config:tc(t)})}}terminateWorker(){if(this.workerContext){let{worker:e}=this.workerContext;this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),function(e){let t=sm[e||sf];if(t&&1==t.clientCount--){let{worker:i,objectURL:s}=t;delete sm[e||sf],s&&self.URL.revokeObjectURL(s),i.terminate()}}(this.hls.config.workerPath)}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null}push(e,t,i,s,r,a,n,l,o,d){var h,u;o.transmuxing.start=self.performance.now();let{instanceNo:c,transmuxer:f}=this,m=a?a.start:r.start,g=r.decryptdata,p=this.frag,v=!(p&&r.cc===p.cc),E=!(p&&o.level===p.level),b=p?o.sn-p.sn:-1,y=this.part?o.part-this.part.index:-1,T=0===b&&o.id>1&&o.id===(null==p?void 0:p.stats.chunkCount),A=!E&&(1===b||0===b&&(1===y||T&&y<=0)),S=self.performance.now();(E||b||0===r.stats.parsing.start)&&(r.stats.parsing.start=S),a&&(y||!A)&&(a.stats.parsing.start=S);let I=!(p&&(null==(h=r.initSegment)?void 0:h.url)===(null==(u=p.initSegment)?void 0:u.url)),L=new ru(v,A,l,E,m,I);if(!A||v||I){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${r.type} sn: ${o.sn}${o.part>-1?" part: "+o.part:""} ${this.id===ei?"level":"track"}: ${o.level} id: ${o.id}
50        discontinuity: ${v}
51        trackSwitch: ${E}
52        contiguous: ${A}
53        accurateTimeOffset: ${l}
54        timeOffset: ${m}
55        initSegmentChange: ${I}`);let e=new rh(i,s,t,n,d);this.configureTransmuxer(e)}if(this.frag=r,this.part=a,this.workerContext)this.workerContext.worker.postMessage({instanceNo:c,cmd:"demux",data:e,decryptdata:g,chunkMeta:o,state:L},e instanceof ArrayBuffer?[e]:[]);else if(f){let t=f.push(e,g,o,L);rd(t)?t.then(e=>{this.handleTransmuxComplete(e)}).catch(e=>{this.transmuxerError(e,o,"transmuxer-interface push error")}):this.handleTransmuxComplete(t)}}flush(e){e.transmuxing.start=self.performance.now();let{instanceNo:t,transmuxer:i}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:t,cmd:"flush",chunkMeta:e});else if(i){let t=i.flush(e);rd(t)?t.then(t=>{this.handleFlushResult(t,e)}).catch(t=>{this.transmuxerError(t,e,"transmuxer-interface flush error")}):this.handleFlushResult(t,e)}}transmuxerError(e,t,i){this.hls&&(this.error=e,this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_PARSING_ERROR,chunkMeta:t,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:i}))}handleFlushResult(e,t){e.forEach(e=>{this.handleTransmuxComplete(e)}),this.onFlush(t)}configureTransmuxer(e){let{instanceNo:t,transmuxer:i}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:t,cmd:"configure",config:e}):i&&i.configure(e)}handleTransmuxComplete(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}}class rm extends eh{constructor(e,t){super(t,e.logger),this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=e}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(e,t,i){let s=null==t?void 0:t.renditionReports;if(s){let r=-1;for(let i=0;i<s.length;i++){let a,n=s[i];try{a=new self.URL(n.URI,t.url).href}catch(e){this.warn(`Could not construct new URL for Rendition Report: ${e}`),a=n.URI||""}if(a===e){r=i;break}a===e.substring(0,a.length)&&(r=i)}if(-1!==r){let e=s[r],a=parseInt(e["LAST-MSN"])||t.lastPartSn,n=parseInt(e["LAST-PART"])||t.lastPartIndex;if(this.hls.config.lowLatencyMode){let e=Math.min(t.age-t.partTarget,t.targetduration);n>=0&&e>t.partTarget&&(n+=1)}return new td(a,n>=0?n:void 0,i&&to(i))}}}loadPlaylist(e){this.clearTimer()}loadingPlaylist(e,t){this.clearTimer()}shouldLoadPlaylist(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}getUrlWithDirectives(e,t){if(t)try{return t.addDirectives(e)}catch(e){this.warn(`Could not construct new URL with HLS Delivery Directives: ${e}`)}return e}playlistLoaded(e,t,i){let{details:s,stats:r}=t,a=self.performance.now(),n=r.loading.first?Math.max(0,a-r.loading.first):0;s.advancedDateTime=Date.now()-n;let l=this.hls.config.timelineOffset;
55if(l!==s.appliedTimelineOffset){let e=Math.max(l||0,0);s.appliedTimelineOffset=e,s.fragments.forEach(t=>{t.setStart(t.playlistOffset+e)})}if(s.live||null!=i&&i.live){let l,d,h,u="levelInfo"in t?t.levelInfo:t.track;if(s.reloaded(i),i&&s.fragments.length>0){!function(e,t,i){let s;if(e===t)return;let r=null,a=e.fragments;for(let e=a.length-1;e>=0;e--){let t=a[e].initSegment;if(t){r=t;break}}e.fragmentHint&&delete e.fragmentHint.endPTS,function(e,t,i){let s=t.skippedSegments,r=Math.max(e.startSN,t.startSN)-t.startSN,a=+!!e.fragmentHint+(s?t.endSN:Math.min(e.endSN,t.endSN))-t.startSN,n=t.startSN-e.startSN,l=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments,o=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments;for(let u=r;u<=a;u++){let r=o[n+u],a=l[u];if(s&&!a&&r&&(a=t.fragments[u]=r),r&&a){var d,h;i(r,a,u,l);let s=r.relurl,n=a.relurl;if(s&&(d=s)!==(h=n)&&h&&iX(d)!==iX(h)){t.playlistParsingError=iV(`media sequence mismatch ${a.sn}:`,e,t,r,a);return}if(r.cc!==a.cc){t.playlistParsingError=iV(`discontinuity sequence mismatch (${r.cc}!=${a.cc})`,e,t,r,a);return}}}}(e,t,(e,i,a,n)=>{if((!t.startCC||t.skippedSegments)&&i.cc!==e.cc){let s=e.cc-i.cc;for(let e=a;e<n.length;e++)n[e].cc+=s;t.endCC=n[n.length-1].cc}j(e.startPTS)&&j(e.endPTS)&&(i.setStart(i.startPTS=e.startPTS),i.startDTS=e.startDTS,i.maxStartPTS=e.maxStartPTS,i.endPTS=e.endPTS,i.endDTS=e.endDTS,i.minEndPTS=e.minEndPTS,i.setDuration(e.endPTS-e.startPTS),i.duration&&(s=i),t.PTSKnown=t.alignedSliding=!0),e.hasStream
55s&&(i.elementaryStreams=e.elementaryStreams),i.loader=e.loader,e.hasStats&&(i.stats=e.stats),e.initSegment&&(i.initSegment=e.initSegment,r=e.initSegment)});let n=t.fragments,l=t.fragmentHint?n.concat(t.fragmentHint):n;if(r&&l.forEach(e=>{var t;e&&(!e.initSegment||e.initSegment.relurl===(null==(t=r)?void 0:t.relurl))&&(e.initSegment=r)}),t.skippedSegments){if(t.deltaUpdateFailed=n.some(e=>!e),t.deltaUpdateFailed){i.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let e=t.skippedSegments;e--;)n.shift();t.startSN=n[0].sn}else{t.canSkipDateRanges&&(t.dateRanges=function(e,t,i){let{dateRanges:s,recentlyRemovedDateranges:r}=t,a=el({},e);r&&r.forEach(e=>{delete a[e]});let n=Object.keys(a).length;return n?(Object.keys(s).forEach(e=>{let t=a[e],r=new t8(s[e].attr,t);r.isValid?(a[e]=r,t||(r.tagOrder+=n)):i.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${tc(s[e].attr)}"`)}),a):s}(e.dateRanges,t,i));let s=e.fragments.filter(e=>e.rawProgramDateTime);if(e.hasProgramDateTime&&!t.hasProgramDateTime)for(let e=1;e<l.length;e++)null===l[e].programDateTime&&iU(l[e],l[e-1],s);iw(s,t)}t.endCC=n[n.length-1].cc}if(!t.startCC){var o;let i=iq(e,t.startSN-1);t.startCC=null!=(o=null==i?void 0:i.cc)?o:n[0].cc}(function(e,t,i){if(e&&t){let s=0;for(let r=0,a=e.length;r<=a;r++){let a=e[r],n=t[r+s];a&&n&&a.index===n.index&&a.fragment.sn===n.fragment.sn?i(a,n):s--}}})(e.partList,t.partList,(e,t)=>{t.elementaryStreams=e.elementaryStreams,t.stats=e.stats}),s?iG(t,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS,i):iW(e,t),n.length&&(t.totalduration=t.edge-n[0].start),t.driftStartTime=e.driftStartTime,t.driftStart=e.driftStart;let d=t.advancedDateTime;if(t.advanced&&d){let e=t.edge;t.driftStart||(t.driftStartTime=d,t.driftStart=e),t.driftEndTime=d,t.driftEnd=e}else t.driftEndTime=e.driftEndTime,t.driftEnd=e.driftEnd,t.advancedDateTime=e.advancedDateTime;-1===t.requestScheduled&&(t.requestScheduled=e.requestScheduled)}(i,s,this);let e=s.playlistParsingError;if(e){this.warn(e);let i=this.hls;if(!i.config.ignorePlaylistParsingErrors){var o;let{networkDetails:a}=t;i.trigger(X.ERROR,{type:Q.NETWORK_ERROR,details:z.LEVEL_PARSING_ERROR,fatal:!1,url:s.url,error:e,reason:e.message,level:t.level||void 0,parent:null==(o=s.fragments[0])?void 0:o.type,networkDetails:a,stats:r});return}s.playlistParsingError=null}}-1===s.requestScheduled&&(s.requestScheduled=r.loading.start);let c=this.hls.mainForwardBufferInfo,f=c?c.end-c.len:0,m=(s.edge-f)*1e3,g=ij(s,m);if(s.requestScheduled+g<a?s.requestScheduled=a:s.requestScheduled+=g,this.log(`live playlist ${e} ${s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:s.updated?"UPDATED":"MISSED"}`),!this.canLoad||!s.live)return;if(s.canBlockReload&&s.endSN&&s.advanced){let e=this.hls.config.lowLatencyMode,r=s.lastPartSn,n=s.endSN,o=s.lastPartIndex,c=r===n;-1!==o?c?(d=n+1,h=e?0:o):(d=r,h=e?o+1:s.maxPartIndex):d=n+1;let f=s.age,m=f+s.ageHeader,g=Math.min(m-s.partTarget,1.5*s.targetduration);if(g>0){if(m>3*s.targetduration)this.log(`Playlist last advanced ${f.toFixed(2)}s ago. Omitting segment and part directives.`),d=void 0,h=void 0;else if(null!=i&&i.tuneInGoal&&m-s.partTarget>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${g} with playlist age: ${s.age}`),g=0;else{let e=Math.floor(g/s.targetduration);d+=e,void 0!==h&&(h+=Math.round(g%s.targetduration/s.partTarget)),this.log(`CDN Tune-in age: ${s.ageHeader}s last advanced ${f.toFixed(2)}s goal: ${g} skip sn ${e} to part ${h}`)}s.tuneInGoal=g}if(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,h),e||!c){s.requestScheduled=a,this.loadingPlaylist(u,l);return}}else(s.canBlockReload||s.canSkipUntil)&&(l=this.getDeliveryDirectives(s,t.deliveryDirectives,d,h));l&&void 0!==d&&s.canBlockReload&&(s.requestScheduled=r.loading.first+Math.max(g-2*n,g/2)),this.scheduleLoading(u,l,s)}else this.clearTimer()}scheduleLoading(e,t,i){let s=i||e.details;if(!s)return void this.loadingPlaylist(e,t);let r=self.performance.now(),a=s.requestScheduled;if(r>=a)return void this.loadingPlaylist(e,t);let n=a-r;this.log(`reload live playlist ${e.name||e.bitrate+"bps"} in ${Math.round(n)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(e,t),n)}getDeliveryDirectives(e,t,i,s){let r=to(e);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,s=t.part,r=""),new td(i,s,r)}checkRetry(e){let t=e.details,i=tL(e),s=e.errorAction,{action:r,retryCount:a=0,retryConfig:n}=s||{},l=!!s&&!!n&&(5===r||!s.resolved&&2===r);if(l){var o;if(a>=n.maxNumRetry)return!1;if(i&&null!=(o=e.context)&&o.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${n.maxNumRetry} after "${t}" without delivery-directives`),this.loadPlaylist();else{let e=tC(n,a);this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),e),this.warn(`Retrying playlist loading ${a+1}/${n.maxNumRetry} after "${t}" in ${e}ms`)}e.levelRetry=!0,s.resolved=!0}return l}}function rg(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!rp(e[i].attrs,t[i].attrs))return!1;return!0}function rp(e,t,i){let s=e["STABLE-RENDITION-ID"];return s&&!i?s===t["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some(i=>e[i]!==t[i])}function rv(e,t){return t.label.toLowerCase()===e.name.toLowerCase()&&(!t.language||t.language.toLowerCase()===(e.lang||"").toLowerCase())}class rE{constructor(e){this.tracks=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.tracks=e}destroy(){this.tracks=this.queues=null}append(e,t,i){if(null===this.queues||null===this.tracks)return;let s=this.queues[t];s.push(e),1!==s.length||i||this.executeNext(t)}appendBlocker(e){return new Promise(t=>{this.append({label:"async-blocker",execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}},e)})}prependBlocker(e){return new Promise(t=>{this.queues&&this.queues[e].unshift({label:"async-blocker-prepend",execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}})})}removeBlockers(){null!==this.queues&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEac
55h(e=>{var t;let i=null==(t=e[0])?void 0:t.label;("async-blocker"===i||"async-blocker-prepend"===i)&&(e[0].execute(),e.splice(0,1))})}unblockAudio(e){null===this.queues||this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio")}executeNext(e){if(null===this.queues||null===this.tracks)return;let t=this.queues[e];if(t.length){let s=t[0];try{s.execute()}catch(r){var i;if(s.onError(r),null===this.queues||null===this.tracks)return;let t=null==(i=this.tracks[e])?void 0:i.buffer;null!=t&&t.updating||this.shiftAndExecuteNext(e)}}}shiftAndExecuteNext(e){null!==this.queues&&(this.queues[e].shift(),this.executeNext(e))}current(e){var t;return(null==(t=this.queues)?void 0:t[e][0])||null}toString(){let{queues:e,tracks:t}=this;return null===e||null===t?"<destroyed>":`
56${this.list("video")}
57${this.list("audio")}
58${this.list("audiovideo")}}`}list(e){var t,i;return null!=(t=this.queues)&&t[e]||null!=(i=this.tracks)&&i[e]?`${e}: (${this.listSbInfo(e)}) ${this.listOps(e)}`:""}listSbInfo(e){var t;let i=null==(t=this.tracks)?void 0:t[e],s=null==i?void 0:i.buffer;return s?`SourceBuffer${s.updating?" updating":""}${i.ended?" ended":""}${i.ending?" ending":""}`:"none"}listOps(e){var t;return(null==(t=this.queues)?void 0:t[e].map(e=>e.label).join(", "))||""}}let rb=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,ry="HlsJsTrackRemovedError";class rT extends Error{constructor(e){super(e),this.name=ry}}function rA(e){let t=e.querySelectorAll("source");[].slice.call(t).forEach(t=>{e.removeChild(t)})}function rS(e){return+("audio"===e)}class rI{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=1/0,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:e}=this;e.on(X.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.BUFFER_CODECS,this.onBufferCodecs,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:e}=this;e.off(X.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.BUFFER_CODECS,this.onBufferCodecs,this),e.off(X.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,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(e,t){let i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onLevelsUpdated(e,t){this.timer&&j(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0){this.clientRect=null;return}let e=this.hls.levels;if(e.length){let t=this.hls,i=this.getMaxLevel(e.length-1);i!==this.autoLevelCapping&&t.logger.log(`Setting autoLevelCapping to ${i}: ${e[i].height}p@${e[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),t.autoLevelCapping=i,t.autoLevelEnabled&&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((t,i)=>this.isLevelAllowed(t)&&i<=e);return this.clientRect=null,rI.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=1/0,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=1/0,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.
58width||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(e){}return Math.min(e,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(e){return!this.restrictedLevels.some(t=>e.bitrate===t.bitrate&&e.width===t.width&&e.height===t.height)}static getMaxLevelByMediaSize(e,t,i){if(!(null!=e&&e.length))return -1;let s=(e,t)=>!t||e.width!==t.width||e.height!==t.height,r=e.length-1,a=Math.max(t,i);for(let t=0;t<e.length;t+=1){let i=e[t];if((i.width>=a||i.height>=a)&&s(i,e[t+1])){r=t;break}}return r}}class rL{constructor(e,t){Array.isArray(e)&&(e=e.map(e=>e instanceof rL?e:new rL(e))),this.value=e,this.params=t}}function rk(e,t,i){return Error(`failed to serialize "${Array.isArray(e)?JSON.stringify(e):e instanceof Map?"Map{}":e instanceof Set?"Set{}":"object"==typeof e?JSON.stringify(e):String(e)}" as ${t}`,{cause:i})}class rR{constructor(e){this.description=e}}let rM="Bare Item";function rC(e){if(e<-0x38d7ea4c67fff||0x38d7ea4c67fff<e)throw rk(e,"Integer");return e.toString()}let r_=/[\x00-\x1f\x7f]+/;function rw(e){let t=e.description||e.toString().slice(7,-1);if(!1===/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(t))throw rk(t,"Token");return t}function rD(e){switch(typeof e){case"number":if(!j(e))throw rk(e,rM);if(Number.isInteger(e))return rC(e);let t=function e(t,i){if(t<0)return-e(-t,i);let s=Math.pow(10,i);if(!(Math.abs(t*s%1-.5)<Number.EPSILON))return Math.round(t*s)/s;{let e=Math.floor(t*s);return(e%2==0?e:e+1)/s}}(e,3);if(Math.floor(Math.abs(t)).toString().length>12)throw rk(e,"Decimal");let i=t.toString();return i.includes(".")?i:`${i}.0`;case"string":if(r_.test(e))throw rk(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;case"symbol":return rw(e);case"boolean":if("boolean"!=typeof e)throw rk(e,"Boolean");return e?"?1":"?0";case"object":if(e instanceof Date)return`@${rC(e.getTime()/1e3)}`;if(e instanceof Uint8Array){if(!1===ArrayBuffer.isView(e))throw rk(e,"Byte Sequence");return`:${btoa(String.fromCharCode(...e))}:`}if(e instanceof rR)return rw(e);default:throw rk(e,rM)}}function rx(e){if(!1===/^[a-z*][a-z0-9\-_.*]*$/.test(e))throw rk(e,"Key");return e}function rP(e){return null==e?"":Object.entries(e).map(([e,t])=>!0===t?`;${rx(e)}`:`;${rx(e)}=${rD(t)}`).join("")}function rO(e){return e instanceof rL?`${rD(e.value)}${rP(e.params)}`:rD(e)}function rU(e,t){return function(e,t={whitespace:!0}){if("object"!=typeof e||null==e)throw rk(e,"Dict");let i=e instanceof Map?e.entries():Object.entries(e),s=(null==t?void 0:t.whitespace)?" ":"";return Array.from(i).map(([e,t])=>{t instanceof rL==!1&&(t=new rL(t));let i=rx(e);if(!0===t.value)i+=rP(t.params);else if(i+="=",Array.isArray(t.value)){var s;i+=(s=t,`(${s.value.map(rO).join(" ")})${rP(s.params)}`)}else i+=rO(t);return i}).join(`,${s}`)}(e,t)}let rN="CMCD-Object",rF="CMCD-Request",rB="CMCD-Session",r$="CMCD-Status",rH={br:rN,ab:rN,d:rN,ot:rN,tb:rN,tpb:rN,lb:rN,tab:rN,lab:rN,url:rN,pb:rF,bl:rF,tbl:rF,dl:rF,ltc:rF,mtp:rF,nor:rF,nrr:rF,rc:rF,sn:rF,sta:rF,su:rF,ttfb:rF,ttfbb:rF,ttlb:rF,cmsdd:rF,cmsds:rF,smrt:rF,df:rF,cs:rF,ts:rF,cid:rB,pr:rB,sf:rB,sid:rB,st:rB,v:rB,msd:rB,bs:r$,bsd:r$,cdn:r$,rtp:r$,bg:r$,pt:r$,ec:r$,e:r$},rG="event",rV=e=>Math.round(e),rW=(e,t)=>Array.isArray(e)?e.map(e=>rW(e,t)):e instanceof rL&&"string"==typeof e.value?new rL(rW(e.value,t),e.params):(t.baseUrl&&(e=function(e,t){let i=new URL(e),s=new URL(t);if(i.origin!==s.origin)return e;let r=i.pathname.split("/").slice(1),a=s.pathname.split("/").slice(1,-1);for(;r[0]===a[0];)r.shift(),a.shift();for(;a.length;)a.shift(),r.unshift("..");return r.join("/")+i.search+i.hash}(e,t.baseUrl)),1===t.version?encodeURIComponent(e):e),rK=e=>100*rV(e/100),rj={br:rV,d:rV,bl:rK,dl:rK,mtp:rK,nor:(e,t)=>{let i=e;return t.version>=2&&(e instanceof rL&&"string"==typeof e.value?i=new rL([e]):"string"==typeof e&&(i=[e])),rW(i,t)},rtp:rK,tb:rV}
58,rq="request",rY="response",rQ=["ab","bg","bl","br","bs","bsd","cdn","cid","cs","df","ec","lab","lb","ltc","msd","mtp","pb","pr","pt","sf","sid","sn","st","sta","tab","tb","tbl","tpb","ts","v"],rz=["e"],rX=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function rZ(e){return rX.test(e)}let rJ=["d","dl","nor","ot","rtp","su"],r0=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"],r1=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function r2(e){return r1.includes(e)||rZ(e)}let r3={[rY]:function(e){return rQ.includes(e)||rJ.includes(e)||r0.includes(e)||rZ(e)},[rG]:function(e){return rQ.includes(e)||rz.includes(e)||rZ(e)},[rq]:function(e){return rQ.includes(e)||rJ.includes(e)||rZ(e)}};function r4(e,t={}){let i={};if(null==e||"object"!=typeof e)return i;let s=t.version||e.v||1,r=t.reportingMode||rq,a=1===s?r2:r3[r],n=Object.keys(e).filter(a),l=t.filter;"function"==typeof l&&(n=n.filter(l));let o=r===rY||r===rG;o&&!n.includes("ts")&&n.push("ts"),s>1&&!n.includes("v")&&n.push("v");let d=el({},rj,t.formatters),h={version:s,reportingMode:r,baseUrl:t.baseUrl};return n.sort().forEach(t=>{var r;let a=e[t],n=d[t];if("function"==typeof n&&(a=n(a,h)),"v"===t)if(1===s)return;else a=s;("pr"!=t||1!==a)&&(o&&"ts"===t&&!j(a)&&(a=Date.now()),("number"==typeof(r=a)?j(r):null!=r&&""!==r&&!1!==r)&&(["ot","sf","st","e","sta"].includes(t)&&"string"==typeof a&&(a=new rR(a)),i[t]=a))}),i}let r5=/CMCD=[^&#]+/;function r8(e,t,i,s){e&&Object.keys(t).forEach(r=>{let a=e.filter(e=>e.groupId===r).map(e=>{let a=el({},e);return a.details=void 0,a.attrs=new t5(a.attrs),a.url=a.attrs.URI=r6(e.url,e.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),a.groupId=a.attrs["GROUP-ID"]=t[r],a.attrs["PATHWAY-ID"]=s,a});e.push(...a)})}function r6(e,t,i,s){let r,{HOST:a,PARAMS:n,[i]:l}=s;t&&(r=null==l?void 0:l[t])&&(e=r);let o=new self.URL(e);return a&&!r&&(o.host=a),n&&Object.keys(n).sort().forEach(e=>{e&&o.searchParams.set(e,n[e])}),o.href}class r9 extends eh{constructor(e){super("eme",e.logger),this.hls=void 0,this.config=void 0,this.media=null,this.mediaResolved=void 0,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=r9.CDMCleanupPromise?[r9.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=e=>{let{initDataType:t,initData:i}=e,s=`"${e.type}" event: init data type: "${t}"`;if(this.debug(s),null!==i){if(!this.keyFormatPromise){let e=Object.keys(this.keySystemAccessPromises);e.length||(e=ib(this.config));let t=e.map(iE).filter(e=>!!e);this.keyFormatPromise=this.getKeyFormatPromise(t)}this.keyFormatPromise.then(r=>{let a,n=iv(r);if("sinf"!==t||n!==id)return void this.log(`Ignoring "${e.type}" event with init data type: "${t}" for selected key-system ${n}`);try{let e=ex(new Uint8Array(i)),t=ii(JSON.parse(e).sinf),s=eK(t);if(!s)throw Error("'schm' box missing or not cbcs/cenc with schi > tenc");a=new Uint8Array(s.subarray(8,24))}catch(e){this.warn(`${s} Failed to parse sinf: ${e}`);return}let l=eb(a),{keyIdToKeySessionPromise:o,mediaKeySessions:d}=this,h=o[l];for(let e=0;e<d.length;e++){let s=d[e],r=s.decryptdata;if(!r.keyId)continue;let n=eb(r.keyId);if(t9(a,r.keyId)||-1!==r.uri.replace(/-/g,"").indexOf(l)){if(!(h=o[n]))continue;if(r.pssh)break;delete o[n],r.pssh=new Uint8Array(i),r.keyId=a,(h=o[l]=h.then(()=>this.generateRequestWithPreferredKeySession(s,t,i,"encrypted-event-key-match"))).catch(e=>this.handleError(e));break}}h||this.handleError(Error(`Key ID ${l} not encountered in playlist. Key-system sessions ${d.length}.`))}).catch(e=>this.handleError(e))}},this.onWaitingForKey=e=>{this.log(`"${e.type}" event`)},this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();let e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null}
58registerListeners(){this.hls.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(X.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(X.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(X.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(X.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(X.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(X.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(e){let{drmSystems:t,widevineLicenseUrl:i}=this.config,s=null==t?void 0:t[e];return s?s.licenseUrl:e===iu&&i?i:void 0}getLicenseServerUrlOrThrow(e){let t=this.getLicenseServerUrl(e);if(void 0===t)throw Error(`no license server URL configured for key-system "${e}"`);return t}getServerCertificateUrl(e){let{drmSystems:t}=this.config,i=null==t?void 0:t[e];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){let t=this.hls.levels,i=(e,t,i)=>!!e&&i.indexOf(e)===t,s=t.map(e=>e.audioCodec).filter(i),r=t.map(e=>e.videoCodec).filter(i);return s.length+r.length===0&&r.push("avc1.42e01e"),new Promise((t,i)=>{let a=e=>{let n=e.shift();this.getMediaKeysPromise(n,s,r).then(e=>t({keySystem:n,mediaKeys:e})).catch(t=>{e.length?a(e):t instanceof ae?i(t):i(new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_NO_ACCESS,error:t,fatal:!0},t.message))})};a(e)})}requestMediaKeySystemAccess(e,t){let{requestMediaKeySystemAccessFunc:i}=this.config;if("function"!=typeof i){let e=`Configured requestMediaKeySystemAccess is not a function ${i}`;return null===iy&&"http:"===self.location.protocol&&(e=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(Error(e))}return i(e,t)}getMediaKeysPromise(e,t,i){var s;let r=function(e,t,i,s){var r,a,n,l;let o;switch(e){case id:o=["cenc","sinf"];break;case iu:case ih:o=["cenc"];break;case io:o=["cenc","keyids"];break;default:throw Error(`Unknown key-system: ${e}`)}return r=o,a=t,n=i,[{initDataTypes:r,persistentState:(l=s).persistentState||"optional",distinctiveIdentifier:l.distinctiveIdentifier||"optional",sessionTypes:l.sessionTypes||[l.sessionType||"temporary"],audioCapabilities:a.map(e=>({contentType:`audio/mp4; codecs=${e}`,robustness:l.audioRobustness||"",encryptionScheme:l.audioEncryptionScheme||null})),videoCapabilities:n.map(e=>({contentType:`video/mp4; codecs=${e}`,robustness:l.videoRobustness||"",encryptionScheme:l.videoEncryptionScheme||null}))}]}(e,t,i,this.config.drmSystemOptions||{}),a=this.keySystemAccessPromises[e],n=null==(s=a)?void 0:s.keySystemAccess;if(!n){this.log(`Requesting encrypted media "${e}" key-system access with config: ${tc(r)}`),n=this.requestMediaKeySystemAccess(e,r);let t=a=this.keySystemAccessPromises[e]={keySystemAccess:n};return n.catch(t=>{this.log(`Failed to obtain access to key-system "${e}": ${t}`)}),n.then(i=>{this.log(`Access for key-system "${i.keySystem}" obtained`);let s=this.fetchServerCertificate(e);this.log(`Create media-keys for "${e}"`);let r=t.mediaKeys=i.createMediaKeys().then(i=>(this.log(`Media-keys created for "${e}"`),t.hasMediaKeys=!0,s.then(t=>t?this.setMediaKeysServerCertificate(i,e,t):i)));return r.catch(t=>{this.error(`Failed to create media-keys for "${e}"}: ${t}`)}),r})}return n.then(()=>a.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${eb(e.keyId||[])} keyUri: ${e.uri}`);let s=i.createSession(),r={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:s,keyStatus:"status-pending"};return this.mediaKeySessions.push(r),r}renewKeySession(e){let t=e.decryptdata;if(t.pssh){let i=this.createMediaKeySessionContext(e),s=r7(t);this.keyIdToKeySessionPromise[s]=this.generateRequestWithPreferredKeySession(i,"cenc",t.pssh.buffer,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}updateKeySession(e,t){let i=e.mediaKeysSession;return this.log(`Updating key-session "${i.sessionId}" for keyId ${eb(e.decryptdata.keyId||[])}
59      } (data length: ${t.byteLength})`),i.update(t)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map(e=>({keySystem:e,hasMediaKeys:this.keySystemAccessPromises[e].hasMediaKeys})).filter(({hasMediaKeys:e})=>!!e).map(({keySystem:e})=>iE(e)).filter(e=>!!e)}getKeySystemAccess(e){return this.getKeySystemSelectionPromise(e).then(({keySystem:e,mediaKeys:t})=>this.attemptSetMediaKeys(e,t))}selectKeySystem(e){return new Promise((t,i)=>{this.getKeySystemSelectionPromise(e).then(({keySystem:e})=>{let s=iE(e);s?t(s):i(Error(`Unable to find format for key-system "${e}"`))}).catch(i)})}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){let t=ib(this.config),i=e.map(iv).filter(e=>!!e&&-1!==t.indexOf(e));return this.selectKeySystem(i)}getKeyStatus(e){let{mediaKeySessions:t}=this;for(let r=0;r<t.length;r++){var i,s;let a=(i=e,s=t[r],i.keyId&&s.mediaKeysSession.keyStatuses.has(i.keyId)?s.mediaKeysSession.keyStatuses.get(i.keyId):i.matches(s.decryptdata)?s.keyStatus:void 0);if(a)return a}}loadKey(e){let t=e.keyInfo.decryptdata,i=r7(t),s=this.bannedKeyIds[i];if(s||"internal-error"===this.getKeyStatus(t)){let i=at(s||"internal-error",t);return this.handleError(i,e.frag),Promise.reject(i)}let r=`(keyId: ${i} format: "${t.keyFormat}" method: ${t.method} uri: ${t.uri})`;this.log(`Starting session for key ${r}`);let a=this.keyIdToKeySessionPromise[i];if(!a){let s=this.getKeySystemForKeyPromise(t).then(({keySystem:i,mediaKeys:s})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${r}`),this.attemptSetMediaKeys(i,s).then(()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:i,mediaKeys:s,decryptdata:t}))))).then(e=>{let i=t.pssh?t.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(e,"cenc",i,"playlist-key")});return s.catch(t=>this.handleError(t,e.frag)),this.keyIdToKeySessionPromise[i]=s,s}return a.catch(i=>{if(i instanceof ae){let s=ed({},i.data);"internal-error"===this.getKeyStatus(t)&&(s.decryptdata=t);let r=new ae(s,i.message);this.handleError(r,e.frag)}}),a}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw Error("invalid state")}handleError(e,t){if(this.hls)if(e instanceof ae){t&&(e.data.frag=t);let i=e.data.decryptdata;this.error(`${e.message}${i?` (${eb(i.keyId||[])})`:""}`),this.hls.trigger(X.ERROR,e.data)}else this.error(e.message),this.hls.trigger(X.ERROR,{type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0})}
59getKeySystemForKeyPromise(e){let t=r7(e),i=this.keyIdToKeySessionPromise[t];if(!i){let t=iv(e.keyFormat),i=t?[t]:ib(this.config);return this.attemptKeySystemAccess(i)}return i}getKeySystemSelectionPromise(e){if(e.length||(e=ib(this.config)),0===e.length)throw new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${tc({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}attemptSetMediaKeys(e,t){if(this.mediaResolved=void 0,this.mediaKeys===t)return Promise.resolve();let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);let s=Promise.all(i).then(()=>this.media?this.media.setMediaKeys(t):new Promise((e,i)=>{this.mediaResolved=()=>{if(this.mediaResolved=void 0,!this.media)return i(Error("Attempted to set mediaKeys without media element attached"));this.mediaKeys=t,this.media.setMediaKeys(t).then(e).catch(i)}}));return this.mediaKeys=t,this.setMediaKeysQueue.push(s),s.then(()=>{this.log(`Media-keys set for "${e}"`),i.push(s),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(e=>-1===i.indexOf(e))})}generateRequestWithPreferredKeySession(e,t,i,s){var r;let a=null==(r=this.config.drmSystems)||null==(r=r[e.keySystem])?void 0:r.generateRequest;if(a)try{let s=a.call(this.hls,t,i,e);if(!s)throw Error("Invalid response from configured generateRequest filter");t=s.initDataType,i=s.initData?s.initData:null,e.decryptdata.pssh=i?new Uint8Array(i):null}catch(e){if(this.warn(e.message),this.hls&&this.hls.config.debug)throw e}if(null===i)return this.log(`Skipping key-session request for "${s}" (no initData)`),Promise.resolve(e);let n=r7(e.decryptdata),l=e.decryptdata.uri;this.log(`Generating key-session request for "${s}" keyId: ${n} URI: ${l} (init data type: ${t} length: ${i.byteLength})`);let o=new sc,d=e._onmessage=t=>{let i=e.mediaKeysSession;if(!i)return void o.emit("error",Error("invalid state"));let{messageType:s,message:r}=t;this.log(`"${s}" message event for session "${i.sessionId}" message size: ${r.byteLength}`),"license-request"===s||"license-renewal"===s?this.renewLicense(e,r).catch(e=>
59{o.eventNames().length?o.emit("error",e):this.handleError(e)}):"license-release"===s?e.keySystem===id&&this.updateKeySession(e,is("acknowledged")).then(()=>this.removeSession(e)).catch(e=>this.handleError(e)):this.warn(`unhandled media key message type "${s}"`)},h=(e,t)=>{let i;t.keyStatus=e,e.startsWith("usable")?o.emit("resolved"):"internal-error"===e||"output-restricted"===e||"output-downscaled"===e?i=at(e,t.decryptdata):"expired"===e?i=Error(`key expired (keyId: ${n})`):"released"===e?i=Error("key released"):"status-pending"===e||this.warn(`unhandled key status change "${e}" (keyId: ${n})`),i&&(o.eventNames().length?o.emit("error",i):this.handleError(i))},u=e._onkeystatuseschange=t=>{if(!e.mediaKeysSession)return void o.emit("error",Error("invalid state"));let i=this.getKeyStatuses(e);if(!Object.keys(i).some(e=>"status-pending"!==i[e]))return;if("expired"===i[n]){this.log(`Expired key ${tc(i)} in key-session "${e.mediaKeysSession.sessionId}"`),this.renewKeySession(e);return}let s=i[n];if(s)h(s,e);else{var r;e.keyStatusTimeouts||(e.keyStatusTimeouts={}),(r=e.keyStatusTimeouts)[n]||(r[n]=self.setTimeout(()=>{if(!e.mediaKeysSession||!this.mediaKeys)return;let t=this.getKeyStatus(e.decryptdata);if(t&&"status-pending"!==t)return this.log(`No status for keyId ${n} in key-session "${e.mediaKeysSession.sessionId}". Using session key-status ${t} from other session.`),h(t,e);this.log(`key status for ${n} in key-session "${e.mediaKeysSession.sessionId}" timed out after 1000ms`),h(s="internal-error",e)},1e3)),this.log(`No status for keyId ${n} (${tc(i)}).`)}};i3(e.mediaKeysSession,"message",d),i3(e.mediaKeysSession,"keystatuseschange",u);let c=new Promise((e,t)=>{o.on("error",t),o.on("resolved",e)});return e.mediaKeysSession.generateRequest(t,i).then(()=>{this.log(`Request generated for key-session "${e.mediaKeysSession.sessionId}" keyId: ${n} URI: ${l}`)}).catch(t=>{throw new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_NO_SESSION,error:t,decryptdata:e.decryptdata,fatal:!1},`Error generating key-session request: ${t}`)}).then(()=>c).catch(t=>(o.removeAllListeners(),this.removeSession(e).then(()=>{throw t}))).then(()=>(o.removeAllListeners(),e))}getKeyStatuses(e){let t={};return e.mediaKeysSession.keyStatuses.forEach((i,s)=>{if("string"==typeof s&&"object"==typeof i){let e=s;s=i,i=e}let r="buffer"in s?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s);e.keySystem===ih&&16===r.length&&(t[eb(r)]=i,ir(r));let a=eb(r);"internal-error"===i&&(this.bannedKeyIds[a]=i),this.log(`key status change "${i}" for keyStatuses keyId: ${a} key-session "${e.mediaKeysSession.sessionId}"`),t[a]=i}),t}fetchServerCertificate(e){let t=this.config,i=new t.loader(t),s=this.getServerCertificateUrl(e);return s?(this.log(`Fetching server certificate for "${e}"`),new Promise((r,a)=>{let n={responseType:"arraybuffer",url:s},l=t.certLoadPolicy.default,o={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0};i.load(n,o,{onSuccess:(e,t,i,s)=>{r(e.data)},onError:(t,i,r,l)=>{a(new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:r,response:ed({url:n.url,data:void 0},t)},`"${e}" certificate request failed (${s}). Status: ${t.code} (${t.text})`))},onTimeout:(t,i,r)=>{a(new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:r,response:{url:n.url,data:void 0}},`"${e}" certificate request timed out (${s})`))},onAbort:(e,t,i)=>{a(Error("aborted"))}})})):Promise.resolve()}setMediaKeysServerCertificate(e,t,i){return new Promise((s,r)=>{e.setServerCertificate(i).then(r=>{this.log(`setServerCertificate ${r?"success":"not supported by CDM"} (${i.byteLength}) on "${t}"`),s(e)}).catch(e=>{r(new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:e,fatal:!0},e.message))})})}renewLicense(e,t){return this.requestLicense(e,new Uint8Array(t)).then(t=>this.updateKeySession(e,new Uint8Array(t)).catch(t=>{throw new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:e.decryptdata,error:t,fatal:!1},t.message)}))}unpackPlayReadyKeyMessage(e,t){let i=String.fromCharCode.apply(null,new Uint16Array(t.buffer));if(!i.includes("PlayReadyKeyMessage"))return e.setRequestHeader("Content-Type","text/xml; charset=utf-8"),t;let s=new DOMParser().parseFromString(i,"application/xml"),r=s.querySelectorAll("HttpHeader");if(r.length>0){let t;for(let i=0,s=r.length;i<s;i++){var a,n;let s=null==(a=(t=r[i]).querySelector("name"))?void 0:a.textContent,l=null==(n=t.querySelector("value"))?void 0:n.textContent;s&&l&&e.setRequestHeader(s,l)}}let l=s.querySelector("Challenge"),o=null==l?void 0:l.textContent;
59if(!o)throw Error("Cannot find <Challenge> in key message");return is(atob(o))}setupLicenseXHR(e,t,i,s){let r=this.config.licenseXhrSetup;return r?Promise.resolve().then(()=>{if(!i.decryptdata)throw Error("Key removed");return r.call(this.hls,e,t,i,s)}).catch(a=>{if(!i.decryptdata)throw a;return e.open("POST",t,!0),r.call(this.hls,e,t,i,s)}).then(i=>(e.readyState||e.open("POST",t,!0),{xhr:e,licenseChallenge:i||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,r)=>{let a=this.getLicenseServerUrlOrThrow(e.keySystem);this.log(`Sending license request to URL: ${a}`);let n=new XMLHttpRequest;n.responseType="arraybuffer",n.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return r(Error("invalid state"));if(4===n.readyState)if(200===n.status){this._requestLicenseFailureCount=0;let t=n.response;this.log(`License received ${t instanceof ArrayBuffer?t.byteLength:t}`);let i=this.config.licenseResponseCallback;if(i)try{t=i.call(this.hls,n,a,e)}catch(e){this.error(e)}s(t)}else{let l=i.errorRetry,o=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>o||n.status>=400&&n.status<500)r(new ae({type:Q.KEY_SYSTEM_ERROR,details:z.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:e.decryptdata,fatal:!0,networkDetails:n,response:{url:a,data:void 0,code:n.status,text:n.statusText}},`License Request XHR failed (${a}). Status: ${n.status} (${n.statusText})`));else{let i=o-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${i} attempts left`),this.requestLicense(e,t).then(s,r)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=n,this.setupLicenseXHR(n,a,e,t).then(({xhr:t,licenseChallenge:i})=>{e.keySystem==ih&&(i=this.unpackPlayReadyKeyMessage(t,i)),t.send(i)}).catch(r)})}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(e,t){if(!this.config.emeEnabled)return;let i=t.media;this.media=i,i3(i,"encrypted",this.onMediaEncrypted),i3(i,"waitingforkey",this.onWaitingForKey);let s=this.mediaResolved;s?s():this.mediaKeys=i.mediaKeys}onMediaDetached(){let e=this.media;e&&(i4(e,"encrypted",this.onMediaEncrypted),i4(e,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null)}_clear(){var e;this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},this.bannedKeyIds={};let t=this.mediaResolved;if(t&&t(),!this.mediaKeys&&!this.mediaKeySessions.length)return;let i=this.media,s=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,iS.clearKeyUriToKeyIdMap();let r=s.length;r9.CDMCleanupPromise=Promise.all(s.map(e=>this.removeSession(e)).concat((null==i||null==(e=i.setMediaKeys(null))?void 0:e.catch(e=>{this.log(`Could not clear media keys: ${e}`),this.hls&&this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:Error(`Could not clear media keys: ${e}`)})}))||Promise.resolve())).catch(e=>{this.log(`Could not close sessions and clear media keys: ${e}`),this.hls&&this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:Error(`Could not close sessions and clear media keys: ${e}`)})}).then(()=>{r&&this.log("finished closing key sessions and clearing media keys")})}onManifestLoading(){this._clear()}onManifestLoaded(e,{sessionKeys:t}){if(t&&this.config.emeEnabled&&!this.keyFormatPromise){let e=t.reduce((e,t)=>(-1===e.indexOf(t.keyFormat)&&e.push(t.keyFormat),e),[]);this.log(`Selecting key-system from session-keys ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)}}removeSession(e){let{mediaKeysSession:t,licenseXhr:i,decryptdata:s}=e;if(t){var r;this.log(`Remove licenses and keys and close session "${t.sessionId}" keyId: ${eb((null==s?void 0:s.keyId)||[])}`),e._onmessage&&(t.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(t.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;let a=this.mediaKeySessions.indexOf(e);a>-1&&this.mediaKeySessions.splice(a,1);let{keyStatusTimeouts:n}=e;
59n&&Object.keys(n).forEach(e=>self.clearTimeout(n[e]));let{drmSystemOptions:l}=this.config;return(l&&("persistent-license"===l.sessionType||null!=(r=l.sessionTypes)&&r.some(e=>"persistent-license"===e))?new Promise((e,i)=>{self.setTimeout(()=>i(Error("MediaKeySession.remove() timeout")),8e3),t.remove().then(e).catch(i)}):Promise.resolve()).catch(e=>{this.log(`Could not remove session: ${e}`),this.hls&&this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:Error(`Could not remove session: ${e}`)})}).then(()=>t.close()).catch(e=>{this.log(`Could not close session: ${e}`),this.hls&&this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:Error(`Could not close session: ${e}`)})})}return Promise.resolve()}}function r7(e){if(!e)throw Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw Error("keyId is null");return eb(e.keyId)}r9.CDMCleanupPromise=void 0;class ae extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=Error(t)),this.data=e,e.err=e.error}}function at(e,t){let i="output-restricted"===e,s=i?z.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:z.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new ae({type:Q.KEY_SYSTEM_ERROR,details:s,fatal:!1,decryptdata:t},i?"HDCP level output restricted":`key status changed to "${e}"`)}function ai(e,t){let i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function as(e,t){let i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw Error(`addCue is failed for: ${t}`)}catch(i){eg.debug(`[texttrack-utils]: ${i}`);try{let i=new self.TextTrackCue(t.startTime,t.endTime,t.text);i.id=t.id,e.addCue(i)}catch(e){eg.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${e}`)}}"disabled"===i&&(e.mode=i)}function ar(e,t){let i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues)for(let i=e.cues.length;i--;)t&&e.cues[i].removeEventListener("enter",t),e.removeCue(e.cues[i]);"disabled"===i&&(e.mode=i)}function aa(e,t,i,s){let r=e.mode;if("disabled"===r&&(e.mode="hidden"),e.cues&&e.cues.length>0){let r=function(e,t,i){let s=[],r=function(e,t){let i;if(t<=e[0].startTime)return 0;let s=e.length-1;if(t>e[s].endTime)return -1;let r=0,a=s;for(;r<=a;)if(t<e[i=Math.floor((a+r)/2)].startTime)a=i-1;else{if(!(t>e[i].startTime)||!(r<s))return i;r=i+1}return e[r].startTime-t<t-e[a].startTime?r:a}(e,t);if(r>-1)for(let a=r,n=e.length;a<n;a++){let r=e[a];if(r.startTime>=t&&r.endTime<=i)s.push(r);else if(r.startTime>i)break}return s}(e.cues,t,i);for(let t=0;t<r.length;t++)(!s||s(r[t]))&&e.removeCue(r[t])}"disabled"===r&&(e.mode=r)}function an(e){let t=[];for(let i=0;i<e.length;i++){let s=e[i];("subtitles"===s.kind||"captions"===s.kind)&&s.label&&t.push(e[i])}return t}function al(e){let t=5381,i=e.length;for(;i;)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()}let ao=((m={})[m.Point=0]="Point",m[m.Range=1]="Range",m);class ad{constructor(e,t){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=t,this.dateRange=e,this.setDateRange(e)}setDateRange(e){this.dateRange=e,this.resumeOffset=e.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=e.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=e.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=e.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var e;this.appendInPlaceStarted=!1,null==(e=this.assetListLoader)||e.destroy(),this.assetListLoader=void 0,this.supplementsPrimary||(this.assetListResponse=null,this.assetList=[],this._duration=null)}isAssetPastPlayoutLimit(e){var t;if(e>0&&e>=this.assetList.length)return!0;let i=this.playoutLimit;return!(e<=0||isNaN(i))&&(0===i||((null==(t=this.assetList[e])?void 0:t.startOffset)||0)>i)}findAssetIndex(e){return this.assetList.indexOf(e)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){let e=this.dateRange.startTime;if(this.snapOptions.out){let t=this.dateRange.tagAnchor;if(t)return ah(e,t)}return e}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(0===this.startTime||this.snapOptions.out)return!0;let e=this.dateRange.tagAnchor;if(e){let t=this.dateRange.startTime,i=ah(t,e);return t-i<.1}return!1}get resumptionOffset(){let e=this.resumeOffset,t=j(e)?e:this.duration;return this.cumulativeDuration+t}get resumeTime(){let e=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){let t=this.resumeAnchor;if(t)return ah(e,t)}return e}get appendInPlace(){return!!this.appendInPlaceStarted||!this.appendInPlaceDisabled&&!!(!this.cue.once&&!this.cue.pre&&this.startIsAligned&&(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&.025>Math.abs(this.resumeOffset-this.duration)))}set appendInPlace(e){if(this.appendInPlaceStarted){this.resetOnResume=!e;return}this.appendInPlaceDisabled=!e}get timelineStart(){return null!==this._timelineStart?this._timelineStart:this.startTime}set timelineStart(e){this._timelineStart=e}get duration(){let e,t=this.playoutLimit;return e=null!==this._duration?this._duration:this.dateRange.duration?this.dateRange.duration:this.dateRange.plannedDuration||0,!isNaN(t)&&t<e&&(e=t),e}set duration(e){this._duration=e}get cue(){return this.dateRange.cue}get timelineOccupancy(){return"RANGE"===this.dateRange.attr["X-TIMELINE-OCCUPIES"]?ao.Range:ao.Point}get supplementsPrimary(){return"PRIMARY"===this.dateRange.attr["X-TIMELINE-STYLE"]}get contentMayVary(){return"NO"!==this.dateRange.attr["X-CONTENT-MAY-VARY"]}get assetUrl(){return this.dateRange.attr["X-ASSET-URI"]}get assetListUrl(){return this.dateRange.attr["X-ASSET-LIST"]}get baseUrl(){return this.base.url}get assetListLoaded(){return this.assetList.length>0||null!==this.assetListResponse}toString(){var e;return e=this,`["${e.identifier}" ${e.cue.pre?"<pre>":e.cue.post?"<post>":""}${e.timelineStart.toFixed(2)}-${e.resumeTime.toFixed(2)}]`}}function ah(e,t){return e-t.start<t.duration/2&&!(.025>Math.abs(e-(t.start+t.duration)))?t.start:t.start+t.duration}function au(e,t,i){let s=new self.URL(e,i);return"data:"!==s.protocol&&s.searchParams.set("_HLS_primary_id",t),s}function ac(e,t){for(;null!=(i=e.assetList[++t])&&i.error;)var i;return t}function af(e){let t=e.timelineStart,i=e.duration||0;return`["${e.identifier}" ${t.toFixed(2)}-${(t+i).toFixed(2)}]`}class am{constructor(e,t,i,s){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetail
59s=!1,this.mediaAttached=null,this._currentTime=void 0,this._bufferedEosTime=void 0,this.checkPlayout=()=>{this.reachedPlayout(this.currentTime)&&this.hls&&this.hls.trigger(X.PLAYOUT_LIMIT_REACHED,{})};const r=this.hls=new e(t);this.interstitial=i,this.assetItem=s;const a=()=>{this.hasDetails=!0};r.once(X.LEVEL_LOADED,a),r.once(X.AUDIO_TRACK_LOADED,a),r.once(X.SUBTITLE_TRACK_LOADED,a),r.on(X.MEDIA_ATTACHING,(e,{media:t})=>{this.removeMediaListeners(),this.mediaAttached=t,this.interstitial.playoutLimit&&(t.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace&&r.on(X.BUFFER_APPENDED,()=>{let e=this.bufferedEnd;this.reachedPlayout(e)&&(this._bufferedEosTime=e,r.trigger(X.BUFFERED_TO_END,void 0))}))})}get appendInPlace(){return this.interstitial.appendInPlace}loadSource(){let e=this.hls;if(e)if(e.url)e.levels.length&&!e.started&&e.startLoad(-1,!0);else{let t=this.assetItem.uri;try{t=au(t,e.config.primarySessionId||"").href}catch(e){}e.loadSource(t)}}bufferedInPlaceToEnd(e){var t;if(!this.appendInPlace)return!1;if(null!=(t=this.hls)&&t.bufferedToEnd)return!0;if(!e)return!1;let i=Math.min(this._bufferedEosTime||1/0,this.duration),s=this.timelineOffset,r=tJ.bufferInfo(e,s,0);return this.getAssetTime(r.end)>=i-.02}reachedPlayout(e){let t=this.interstitial.playoutLimit;return this.startOffset+e>=t}get destroyed(){var e;return!(null!=(e=this.hls)&&e.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var e;return(null==(e=this.hls)?void 0:e.media)||null}get bufferedEnd(){let e=this.media||this.mediaAttached;if(!e)return this._bufferedEosTime?this._bufferedEosTime:this.currentTime;let t=tJ.bufferInfo(e,e.currentTime,.001);return this.getAssetTime(t.end)}get currentTime(){let e=this.media||this.mediaAttached;return e?this.getAssetTime(e.currentTime):this._currentTime||0}get duration(){let e=this.assetItem.duration;if(!e)return 0;let t=this.interstitial.playoutLimit;if(t){let i=t-this.startOffset;if(i>0&&i<e)return i}return e}get remaining(){let e=this.duration;return e?Math.max(0,e-this.currentTime):0}get startOffset(){return this.assetItem.startOffset}get timelineOffset(){var e;return(null==(e=this.hls)?void 0:e.config.timelineOffset)||0}set timelineOffset(e){let t=this.timelineOffset;if(e!==t&&Math.abs(e-t)>1/9e4&&this.hls){if(this.hasDetails)throw Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e}}getAssetTime(e){return Math.min(Math.max(0,e-this.timelineOffset),this.duration)}removeMediaListeners(){let e=this.mediaAttached;e&&(this._currentTime=e.currentTime,this.bufferSnapShot(),e.removeEventListener("timeupdate",this.checkPlayout))}bufferSnapShot(){if(this.mediaAttached){var e;null!=(e=this.hls)&&e.bufferedToEnd&&(this._bufferedEosTime=this.bufferedEnd)}}destroy(){this.removeMediaListeners(),this.hls&&this.hls.destroy(),this.hls=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(e){var t;this.loadSource(),null==(t=this.hls)||t.attachMedia(e)}detachMedia(){var e;this.removeMediaListeners(),this.mediaAttached=null,null==(e=this.hls)||e.detachMedia()}resumeBuffering(){var e;null==(e=this.hls)||e.resumeBuffering()}pauseBuffering(){var e;null==(e=this.hls)||e.pauseBuffering()}transferMedia(){var e;return this.bufferSnapShot(),(null==(e=this.hls)?void 0:e.transferMedia())||null}resetDetails(){let e=this.hls;if(e&&this.hasDetails){e.stopLoad();let t=e=>delete e.details;e.levels.forEach(t),e.allAudioTracks.forEach(t),e.allSubtitleTracks.forEach(t),this.hasDetails=!1}}on(e,t,i){var s;null==(s=this.hls)||s.on(e,t)}once(e,t,i){var s;null==(s=this.hls)||s.once(e,t)}off(e,t,i){var s;null==(s=this.hls)||s.off(e,t)}toString(){var e;return`HlsAssetPlayer: ${af(this.assetItem)} ${null==(e=this.hls)?void 0:e.sessionId} ${this.appendInPlace?"append-in-place":""}`}}class ag extends eh{constructor(e,t){super("interstitials-sched",t),this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=e}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){this.eventMap={}
59,this.setDurations(0,0,0),this.events&&this.events.forEach(e=>e.reset()),this.events=this.items=null}resetErrorsInRange(e,t){return this.events?this.events.reduce((i,s)=>e<=s.startOffset&&t>s.startOffset?(delete s.error,i+1):i,0):0}get duration(){let e=this.items;return e?e[e.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(e){return e&&this.eventMap[e]||null}hasEvent(e){return e in this.eventMap}findItemIndex(e,t){if(e.event)return this.findEventIndex(e.event.identifier);let i=-1;e.nextEvent?i=this.findEventIndex(e.nextEvent.identifier)-1:e.previousEvent&&(i=this.findEventIndex(e.previousEvent.identifier)+1);let s=this.items;if(s)for(s[i]||(void 0===t&&(t=e.start),i=this.findItemIndexAtTime(t));i>=0&&null!=(r=s[i])&&r.event;){var r;i--}return i}findItemIndexAtTime(e,t){let i=this.items;if(i)for(let s=0;s<i.length;s++){let r=i[s];if(t&&"primary"!==t&&(r=r[t]),e===r.start||e>r.start&&e<r.end)return s}return -1}findJumpRestrictedIndex(e,t){let i=this.items;if(i)for(let s=e;s<=t&&i[s];s++){let e=i[s].event;if(null!=e&&e.restrictions.jump&&!e.appendInPlace)return s}return -1}findEventIndex(e){let t=this.items;if(t)for(let s=t.length;s--;){var i;if((null==(i=t[s].event)?void 0:i.identifier)===e)return s}return -1}findAssetIndex(e,t){let i=e.assetList,s=i.length;if(s>1)for(let e=0;e<s;e++){let r=i[e];if(!r.error){let i=r.timelineStart;if(t===i||t>i&&(t<i+(r.duration||0)||e===s-1))return e}}return 0}get assetIdAtEnd(){var e;let t=null==(e=this.items)||null==(e=e[this.length-1])?void 0:e.event;if(t){let e=t.assetList,i=e[e.length-1];if(i)return i.identifier}return null}parseInterstitialDateRanges(e,t){let i=e.main.details,{dateRanges:s}=i,r=this.events,a=this.parseDateRanges(s,{url:i.url},t),n=Object.keys(s),l=r?r.filter(e=>!n.includes(e.identifier)):[];a.length&&a.sort((e,t)=>{let i=e.cue.pre,s=e.cue.post,r=t.cue.pre,a=t.cue.post;if(i&&!r)return -1;if(r&&!i||s&&!a)return 1;if(a&&!s)return -1;if(!i&&!r&&!s&&!a){let i=e.startTime,s=t.startTime;if(i!==s)return i-s}return e.dateRange.tagOrder-t.dateRange.tagOrder}),this.events=a,l.forEach(e=>{this.removeEvent(e)}),this.updateSchedule(e,l)}updateSchedule(e,t=[],i=!1){let s=this.events||[];
59if(s.length||t.length||this.length<2){let r=this.items,a=this.parseSchedule(s,e);(i||t.length||(null==r?void 0:r.length)!==a.length||a.some((e,t)=>Math.abs(e.playout.start-r[t].playout.start)>.005||Math.abs(e.playout.end-r[t].playout.end)>.005))&&(this.items=a,this.onScheduleUpdate(t,r))}}parseDateRanges(e,t,i){let s=[],r=Object.keys(e);for(let a=0;a<r.length;a++){let n=r[a],l=e[n];if(l.isInterstitial){let e=this.eventMap[n];e?e.setDateRange(l):(e=new ad(l,t),this.eventMap[n]=e,!1===i&&(e.appendInPlace=i)),s.push(e)}}return s}parseSchedule(e,t){let i=[],s=t.main.details,r=s.live?1/0:s.edge,a=0;if((e=e.filter(e=>!e.error&&!(e.cue.once&&e.hasPlayed))).length){this.resolveOffsets(e,t);let s=0,l=0;if(e.forEach((t,n)=>{let o=t.cue.pre,d=t.cue.post,h=e[n-1]||null,u=t.appendInPlace,c=d?r:t.startOffset,f=t.duration,m=t.timelineOccupancy===ao.Range?f:0,g=t.resumptionOffset,p=(null==h?void 0:h.startTime)===c,v=c+t.cumulativeDuration,E=u?v+f:c+g;if(o||!d&&c<=0){let e=l;l+=m,t.timelineStart=v;let s=a;a+=f,i.push({event:t,start:v,end:E,playout:{start:s,end:a},integrated:{start:e,end:l}})}else{if(!(c<=r))return;if(!p){let r=c-s;if(r>.033){let o=s,d=l;l+=r;let h=a;a+=r;let u={previousEvent:e[n-1]||null,nextEvent:t,start:o,end:o+r,playout:{start:h,end:a},integrated:{start:d,end:l}};i.push(u)}else r>0&&h&&(h.cumulativeDuration+=r,i[i.length-1].end=c)}d&&(E=v),t.timelineStart=v;let o=l;l+=m;let u=a;a+=f,i.push({event:t,start:v,end:E,playout:{start:u,end:a},integrated:{start:o,end:l}})}let b=t.resumeTime;s=d||b>r?r:b}),s<r){var n;let e=s,t=l,o=r-s;l+=o;let d=a;a+=o,i.push({previousEvent:(null==(n=i[i.length-1])?void 0:n.event)||null,nextEvent:null,start:s,end:e+o,playout:{start:d,end:a},integrated:{start:t,end:l}})}this.setDurations(r,a,l)}else i.push({previousEvent:null,nextEvent:null,start:0,end:r,playout:{start:0,end:r},integrated:{start:0,end:r}}),this.setDurations(r,r,r);return i}setDurations(e,t,i){this.durations={primary:e,playout:t,integrated:i}}resolveOffsets(e,t){let i=t.main.details,s=i.live?1/0:i.edge,r=0,a=-1;e.forEach((n,l)=>{let o=n.cue.pre,d=n.cue.post,h=o?0:d?s:n.startTime;this.updateAssetDurations(n),a===h?n.cumulativeDuration=r:(r=0,a=h),!d&&n.snapOptions.in&&(n.resumeAnchor=tA(null,i.fragments,n.startOffset+n.resumptionOffset,0,0)||void 0),n.appendInPlace&&!n.appendInPlaceStarted&&(this.primaryCanResumeInPlaceAt(n,t)||(n.appendInPlace=!1)),!n.appendInPlace&&l+1<e.length&&e[l+1].startTime-e[l].resumeTime<.033&&(e[l+1].appendInPlace=!1,e[l+1].appendInPlace&&this.warn(`Could not change append strategy for abutting event ${n}`));let u=j(n.resumeOffset)?n.resumeOffset:n.duration;r+=u})}primaryCanResumeInPlaceAt(e,t){let i=e.resumeTime,s=e.startTime+e.resumptionOffset;return Math.abs(i-s)>.025?(this.log(`"${e.identifier}" resumption ${i} not aligned with estimated timeline end ${s}`),!1):!Object.keys(t).some(s=>{let r=t[s].details,a=r.edge;if(i>=a)return this.log(`"${e.identifier}" resumption ${i} past ${s} playlist end ${a}`),!1;let n=tA(null,r.fragments,i);if(!n)return this.log(`"${e.identifier}" resumption ${i} does not align with any fragments in ${s} playlist (${r.fragStart}-${r.fragmentEnd})`),!0;let l=.175*("audio"===s);return!(Math.abs(n.start-i)<.025+l||Math.abs(n.end-i)<.025+l)&&(this.log(`"${e.identifier}" resumption ${i} not aligned with ${s} fragment bounds (${n.start}-${n.end} sn: ${n.sn} cc: ${n.cc})`),!0)})}updateAssetDurations(e){if(!e.assetListLoaded)return;let t=e.timelineStart,i=0,s=!1,r=!1;for(let a=0;a<e.assetList.length;a++){let n=e.assetList[a],l=t+i;n.startOffset=i,n.timelineStart=l,s||(s=null===n.duration),r||(r=!!n.error),i+=n.error?0:n.duration||0}s&&!r?e.duration=Math.max(i,e.duration):e.duration=i}removeEvent(e){e.reset(),delete this.eventMap[e.identifier]}}function ap(e){return`[${e.event?'"'+e.event.identifier+'"':"primary"}: ${e.start.toFixed(2)}-${e.end.toFixed(2)}]`}class av{constructor(e){this.hls=void 0,this.hls=e}destroy(){this.hls=null}loadAssetList(e,t){let i,s=e.assetListUrl;try{i=au(s,this.hls.sessionId,e.baseUrl)}catch(i){let t=this.assignAssetListError(e,z.ASSET_LIST_LOAD_ERROR,i,s);this.hls.trigger(X.ERROR,t);return}t&&"data:"!==i.protocol&&i.searchParams.set("_HLS_start_offset",""+t);let r=this.hls.config,a=new r.loader(r),n={responseType:"json",url:i.href},l=r.interstitialAssetListLoadPolicy.default,o={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0};return a.load(n,o,{onSuccess:(t,i,s,r)=>{let a=t.data;if(!Array.isArray(null==a?void 0:a.ASSETS)){let t=this.assignAssetListError(e,z.ASSET_LIST_PARSING_ERROR,Error("Invalid interstitial asset list"),s.url,i,r);this.hls.trigger(X.ERROR,t);return}e.assetListResponse=a,this.hls.trigger(X.ASSET_LIST_LOADED,{event:e,assetListResponse:a,networkDetails:r})},onError:(t,i,s,r)=>{let a=this.assignAssetListError(e,z.ASSET_LIST_LOAD_ERROR,Error(`Error loading X-ASSET-LIST: HTTP status ${t.code} ${t.text} (${i.url})`),i.url,r,s);this.hls.trigger(X.ERROR,a)},onTimeout:(t,i,s)=>{let r=this.assignAssetListError(e,z.ASSET_LIST_LOAD_TIMEOUT,Error(`Timeout loading X-ASSET-LIST (${i.url})`),i.url,t,s);this.hls.trigger(X.ERROR,r)}}),this.hls.trigger(X.ASSET_LIST_LOADING,{event:e}),a}assignAssetListError(e,t,i,s,r,a){return e.error=i,{type:Q.NETWORK_E
59RROR,details:t,fatal:!1,interstitial:e,url:s,error:i,networkDetails:a,stats:r}}}function aE(e){var t;null==e||null==(t=e.play())||t.catch(()=>{})}function ab(e,t){return`[${e}] Advancing timeline position to ${t}`}class ay{constructor(e){this.buffered=void 0;const t=(t,i,s)=>{if((i>>>=0)>s-1)throw new DOMException(`Failed to execute '${t}' on 'TimeRanges': The index provided (${i}) is greater than the maximum bound (${s})`);return e[i][t]};this.buffered={get length(){return e.length},end:i=>t("end",i,e.length),start:i=>t("start",i,e.length)}}}let aT={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},aA=e=>String.fromCharCode(aT[e]||e),aS={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},aI={17:2,18:4,21:6,22:8,23:10,19:13,20:15},aL={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},ak={25:2,26:4,29:6,30:8,31:10,27:13,28:15},aR=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class aM{constructor(){this.time=null,this.verboseLevel=0}log(e,t){if(this.verboseLevel>=e){let i="function"==typeof t?t():t;eg.log(`${this.time} [${e}] ${i}`)}}}let aC=function(e){let t=[];for(let i=0;i<e.length;i++)t.push(e[i].toString(16));return t};class a_{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!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"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!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}}class aw{constructor(){this.uchar=" ",this.penState=new 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()}}class aD{constructor(e){this.chars=[],this.pos=0,this.currPenState=new a_,this.cueStartTime=null,this.logger=void 0;for(let e=0;e<100;e++)this.chars.push(new aw);this.logger=e}equals(e){for(let t=0;t<100;t++)if(!this.chars[t].equals(e.chars[t]))return!1;return!0}copy(e){for(let t=0;t<100;t++)this.chars[t].copy(e.chars[t])}isEmpty(){let e=!0;for(let t=0;t<100;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>100&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=100)}moveCursor(e){let t=this.pos+e;if(e>1)for(let e=this.pos+1;e<t+1;e++)this.chars[e].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=aA(e);this.pos>=100?this.logger.log(0,()=>"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))}clearFromPos(e){let t;for(t=e;t<100;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<100;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)}}class ax{constructor(e){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let t=0;t<15;t++)this.rows.push(new aD(e));this.logger=e}reset(){for(let e=0;e<15;e++)this.rows[e].clear();this.currRow=14}equals(e){let t=!0;for(let i=0;i<15;i++)if(!this.rows[i].equals(e.rows[i])){t=!1;break}return t}copy(e){for(let t=0;t<15;t++)this.rows[t].copy(e.rows[t])}isEmpty(){let e=!0;for(let t=0;t<15;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 = "+tc(e));let t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(let e=0;e<15;e++)this.rows[e].clear();let e=this.currRow+1-this.nrRollUpRows,i=this.lastOutputScreen;if(i){let s=i.rows[e].cueStartTime,r=this.logger.time;if(null!==s&&null!==r&&s<r)for(let s=0;s<this.nrRollUpRows;s++)this.rows[t-this.nrRollUpRows+s+1].copy(i.rows[e+s])}}this.currRow=t;let i=this.rows[this.currRow];if(null!==e.indent){let t=Math.max(e.indent-1,0);i.setCursor(e.indent),e.color=i.chars[t].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 = "+tc(e)),this.backSpace(),this.setPen(e),this.insertChar(32)}setRollUpRows(e){this.nrRollUpRows=e}rollUp(){if(null===this.nrRollUpRows)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");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 i=0;i<15;i++){let r=this.rows[i].getTextString();r&&(s=i+1,e?t.push("Row "+s+": '"+r+"'"):t.push(r.trim()))}return t.length>0&&(i=e?"["+t.join(" | ")+"]":t.join("\n")),i}getTextAndFormat(){return this.rows}}class aP{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 ax(i),this.nonDisplayedMemory=new ax(i),this.lastOutputScreen=new ax(i),this.currRollUpRow=this.displayedMemory.rows[14],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[14],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),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}insertChars(e){for(let t=0;t<e.length;t++)this.writeScreen.insertChar(e[t]);let t=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>t+": "+this.writeScreen.getDisplayText(!0)),("MODE_PAINT-ON"===this.mode||"MODE_ROLL-UP"===this.mode)&&(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"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(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})}
59ccRDC(){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"),"MODE_POP-ON"===this.mode){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};(t.underline=e%2==1,t.italics=e>=46,t.italics)?t.foreground="white":t.foreground=["white","green","blue","cyan","red","yellow","magenta"][Math.floor(e/2)-16],this.logger.log(2,"MIDROW: "+tc(t)),this.writeScreen.setPen(t)}outputDataUpdate(e=!1){let t=this.logger.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?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.cueStartTime=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)}}class aO{constructor(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;const s=this.logger=new aM;this.channels=[null,new aP(e,t,s),new aP(e+1,i,s)]}getHandler(e){return this.channels[e].getHandler()}setHandler(e,t){this.channels[e].setHandler(t)}addData(e,t){this.logger.time=e;for(let e=0;e<t.length;e+=2){var i,s,r,a,n,l,o,d;let h=127&t[e],u=127&t[e+1],c=!1,f=null;if(0===h&&0===u)continue;this.logger.log(3,()=>"["+aC([t[e],t[e+1]])+"] -> ("+aC([h,u])+")");let m=this.cmdHistory;if(h>=16&&h<=31){if(i=h,s=u,(r=m).a===i&&r.b===s){(a=m).a=null,a.b=null,this.logger.log(3,()=>"Repeated command ("+aC([h,u])+") is dropped");continue}n=h,l=u,(o=this.cmdHistory).a=n,o.b=l,(c=this.parseCmd(h,u))||(c=this.parseMidrow(h,u)),c||(c=this.parsePAC(h,u)),c||(c=this.parseBackgroundAttributes(h,u))}else{(d=m).a=null,d.b=null}if(!c&&(f=this.parseChars(h,u))){let e=this.currentChannel;e&&e>0?this.channels[e].insertChars(f):this.logger.log(2,"No channel found yet. TEXT-MODE?")}c||f||this.logger.log(2,()=>"Couldn't parse cleaned data "+aC([h,u])+" orig: "+aC([t[e],t[e+1]]))}}parseCmd(e,t){if(!((20===e||28===e||21===e||29===e)&&t>=32&&t<=47||(23===e||31===e)&&t>=33&&t<=35))return!1;let i=20===e||21===e||23===e?1:2,s=this.channels[i];return 20===e||21===e||28===e||29===e?32===t?s.ccRCL():33===t?s.ccBS():34===t?s.ccAOF():35===t?s.ccAON():36===t?s.ccDER():37===t?s.ccRU(2):38===t?s.ccRU(3):39===t?s.ccRU(4):40===t?s.ccFON():41===t?s.ccRDC():42===t?s.ccTR():43===t?s.ccRTD():44===t?s.ccEDM():45===t?s.ccCR():46===t?s.ccENM():47===t&&s.ccEOC():s.ccTO(t-32),this.currentChannel=i,!0}parseMidrow(e,t){let i=0;if((17===e||25===e)&&t>=32&&t<=47){if((i=17===e?1:2)!==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 ("+aC([e,t])+")"),!0)}return!1}parsePAC(e,t){let i,s=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,r=(16===e||24===e)&&t>=64&&t<=95;if(!(s||r))return!1;let a=e<=23?1:2;i=t>=64&&t<=95?1===a?aS[e]:aL[e]:1===a?aI[e]:ak[e];let n=this.channels[a];return!!n&&(n.setPAC(this.interpretPAC(i,t)),this.currentChannel=a,!0)}interpretPAC(e,t){let i,s={color:null,italics:!1,indent:null,underline:!1,row:e};return s.underline=(1&(i=t>95?t-96:t-64))==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=4*Math.floor((i-16)/2),s}parseChars(e,t){let i,s=null,r=null;if(e>=25?(i=2,r=e-8):(i=1,r=e),r>=17&&r<=19){let e;e=17===r?t+80:18===r?t+112:t+144,this.logger.log(2,()=>"Special char '"+aA(e)+"' in channel "+i),s=[e]}else e>=32&&e<=127&&(s=0===t?[e]:[e,t]);return s&&this.logger.log(3,()=>"Char codes =  "+aC(s).join(",")),s}
59parseBackgroundAttributes(e,t){if(!((16===e||24===e)&&t>=32&&t<=47||(23===e||31===e)&&t>=45&&t<=47))return!1;let i={};return 16===e||24===e?(i.background=aR[Math.floor((t-32)/2)],t%2==1&&(i.background=i.background+"_semi")):45===t?i.background="transparent":(i.foreground="black",47===t&&(i.underline=!0)),this.channels[e<=23?1:2].setBkgData(i),!0}reset(){var e;for(let e=0;e<Object.keys(this.channels).length;e++){let t=this.channels[e];t&&t.reset()}(e=this.cmdHistory).a=null,e.b=null}cueSplitAtTime(e){for(let t=0;t<this.channels.length;t++){let i=this.channels[t];i&&i.cueSplitAtTime(e)}}}var aU=function(){if(null!=il&&il.VTTCue)return self.VTTCue;let e=["","lr","rl"],t=["start","middle","end","left","right"];function i(e,t){if("string"!=typeof t||!Array.isArray(e))return!1;let i=t.toLowerCase();return!!~e.indexOf(i)&&i}function s(e){let t=1;for(;t<arguments.length;t++){let i=arguments[t];for(let t in i)e[t]=i[t]}return e}function r(r,a,n){let l={enumerable:!0};this.hasBeenReset=!1;let o="",d=!1,h=r,u=a,c=n,f=null,m="",g=!0,p="auto",v="start",E=50,b="middle",y=50,T="middle";Object.defineProperty(this,"id",s({},l,{get:function(){return o},set:function(e){o=""+e}})),Object.defineProperty(this,"pauseOnExit",s({},l,{get:function(){return d},set:function(e){d=!!e}})),Object.defineProperty(this,"startTime",s({},l,{get:function(){return h},set:function(e){if("number"!=typeof e)throw TypeError("Start time must be set to a number.");h=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"endTime",s({},l,{get:function(){return u},set:function(e){if("number"!=typeof e)throw TypeError("End time must be set to a number.");u=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"text",s({},l,{get:function(){return c},set:function(e){c=""+e,this.hasBeenReset=!0}})),Object.defineProperty(this,"region",s({},l,{get:function(){return f},set:function(e){f=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"vertical",s({},l,{get:function(){return m},set:function(t){let s=i(e,t);if(!1===s)throw SyntaxError("An invalid or illegal string was specified.");m=s,this.hasBeenReset=!0}})),Object.defineProperty(this,"snapToLines",s({},l,{get:function(){return g},set:function(e){g=!!e,this.hasBeenReset=!0}})),Object.defineProperty(this,"line",s({},l,{get:function(){return p},set:function(e){if("number"!=typeof e&&"auto"!==e)throw SyntaxError("An invalid number or illegal string was specified.");p=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"lineAlign",s({},l,{get:function(){return v},set:function(e){let s=i(t,e);if(!s)throw SyntaxError("An invalid or illegal string was specified.");v=s,this.hasBeenReset=!0}})),Object.defineProperty(this,"position",s({},l,{get:function(){return E},set:function(e){if(e<0||e>100)throw Error("Position must be between 0 and 100.");E=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"positionAlign",s({},l,{get:function(){return b},set:function(e){let s=i(t,e);if(!s)throw SyntaxError("An invalid or illegal string was specified.");b=s,this.hasBeenReset=!0}})),Object.defineProperty(this,"size",s({},l,{get:function(){return y},set:function(e){if(e<0||e>100)throw Error("Size must be between 0 and 100.");y=e,this.hasBeenReset=!0}})),Object.defineProperty(this,"align",s({},l,{get:function(){return T},set:function(e){let s=i(t,e);if(!s)throw SyntaxError("An invalid or illegal string was specified.");T=s,this.hasBeenReset=!0}})),this.displayState=void 0}return r.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},r}();class aN{decode(e,t){if(!e)return"";if("string"!=typeof e)throw Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}function aF(e){function t(e,t,i,s){return(0|e)*3600+(0|t)*60+(0|i)+parseFloat(s||0)}let i=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?t(i[2],i[3],0,i[4]):t(i[1],i[2],i[3],i[4]):null}class aB{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 a$(e,t,i,s){let r=s?e.split(s):[e];for(let e in r){if("string"!=typeof r[e])continue;let s=r[e].split(i);if(2===s.length)t(s[0],s[1])}}let aH=new aU(0,0,""),aG="middle"===aH.align?"middle":"center";function aV(e){return e.replace(/<br(?: \/)?>/gi,"\n")}class aW{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new aN,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(e){let t=this;function i(){let e=t.buffer,i=0;for(e=aV(e);i<e.length&&"\r"!==e[i]&&"\n"!==e[i];)++i;let s=e.slice(0,i);return"\r"===e[i]&&++i,"\n"===e[i]&&++i,t.buffer=e.slice(i),s}e&&(t.buffer+=t.decoder.decode(e,{stream:!0}));try{let e="";if("INITIAL"===t.state){if(!/\r\n|\n/.test(t.buffer))return this;let s=(e=i()).match(/^()?WEBVTT([ \t].*)?$/);if(!(null!=s&&s[0]))throw Error("Malformed WebVTT signature.");t.state="HEADER"}let r=!1;for(;t.buffer&&/\r\n|\n/.test(t.buffer);)switch(r?r=!1:e=i(),t.state){case"HEADER":if(/:/.test(e)){var s;s=e,a$(s,function(e,t){},/:/)}else e||(t.state="ID");continue;case"NOTE":e||(t.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(e)){t.state="NOTE";break}if(!e)continue;if(t.cue=new aU(0,0,""),t.state="CUE",-1===e.indexOf("-->")){t.cue.id=e;continue}case"CUE":if(!t.cue){t.state="BADCUE";continue}try{!function(e,t,i){var s;let r,a,n,l=e;function o(){let t=aF(e);if(null===t)throw Error("Malformed timestamp: "+l);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function d(){e=e.replace(/^\s+/,"")}if(d(),t.startTime=o(),d(),"-->"!==e.slice(0,3))throw Error("Malformed time stamp (time stamps must be separated by '-->'): "+l);e=e.slice(3),d(),t.endTime=o(),d(),s=e,r=new aB,a$(s,function(e,t){let s;switch(e){case"region":for(let s=i.length-1;s>=0;s--)if(i[s].id===t){r.set(e,i[s].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":s=t.split(","),r.integer(e,s[0]),r.percent(e,s[0])&&r.set("snapToLines",!1),r.alt(e,s[0],["auto"]),2===s.length&&r.alt("lineAlign",s[1],["start",aG,"end"]);break;case"position":s=t.split(","),r.percent(e,s[0]),2===s.length&&r.alt("positionAlign",s[1],["start",aG,"end","line-left","line-right","auto"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start",aG,"end","left","right"])}},/:/,/\s/),t.region=r.get("region",null),t.vertical=r.get("vertical",""),"auto"===(a=r.get("line","auto"))&&-1===aH.line&&(a=-1),t.line=a,t.lineAlign=r.get("lineAlign","start"),t.snapToLines=r.get("snapToLines",!0),t.size=r.get("size",100),t.align=r.get("align",aG),"auto"===(n=r.get("position","auto"))&&50===aH.position&&(n="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=n}(e,t.cue,t.regionList)}catch(e){t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case"CUETEXT":{let i=-1!==e.indexOf("-->");if(!e||i&&(r=!0)){t.oncue&&t.cue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}if(null===t.cue)continue;t.cue.text&&(t.cue.text+="\n"),t.cue.text+=e}continue;case"BADCUE":e||(t.state="ID")}}catch(e){"CUETEXT"===t.state&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state="INITIAL"===t.state?"BADWEBVTT":"BADCUE"}return this}flush(){try{if((this.cue||"HEADER"===this.state)&&(this.buffer+="\n\n",this.parse()),"INITIAL"===this.state||"BADWEBVTT"===this.state)throw Error("Malformed WebVTT signature.")}catch(e){this.onparsingerror&&this.onparsingerror(e)}return this.onflush&&this.onflush(),this}}let aK=/\r\n|\n\r|\n|\r/g,aj=function(e,t,i=0){return e.slice(i,i+t.length)===t},aq=function(e){let t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),s=parseInt(e.slice(-9,-7)),r=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;
59if(!j(t)||!j(i)||!j(s)||!j(r))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return t+=1e3*i,t+=6e4*s,t+=36e5*r};function aY(e,t,i){return al(e.toString())+al(t.toString())+al(i)}let aQ=function(e,t,i){let s=e[t],r=e[s.prevCC];if(!r||!r.new&&s.new){e.ccOffset=e.presentationOffset=s.start,s.new=!1;return}for(;null!=(a=r)&&a.new;){var a;e.ccOffset+=s.start-r.start,s.new=!1,r=e[(s=r).prevCC]}e.presentationOffset=i},az="stpp.ttml.im1t",aX=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,aZ=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,aJ={left:"start",center:"center",right:"end",start:"start",end:"end"};function a0(e,t,i,s){let r=eF(new Uint8Array(e),["mdat"]);if(0===r.length)return void s(Error("Could not parse IMSC1 mdat"));let a=r.map(e=>eE(e)),n=function(e,t=1,i=!1){return s4(e,1,1/t,i)}(t.baseTime,t.timescale);try{a.forEach(e=>i(function(e,t){let i=new DOMParser().parseFromString(e,"text/xml").getElementsByTagName("tt")[0];if(!i)throw Error("Invalid ttml");let s={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},r=Object.keys(s).reduce((e,t)=>(e[t]=i.getAttribute(`ttp:${t}`)||s[t],e),{}),a="preserve"!==i.getAttribute("xml:space"),n=a2(a1(i,"styling","style")),l=a2(a1(i,"layout","region")),o=a1(i,"body","[begin]");return[].map.call(o,e=>{var i,s,o;let d,h,u,c=function e(t,i){return[].slice.call(t.childNodes).reduce((t,s,r)=>{var a;return"br"===s.nodeName&&r?t+"\n":null!=(a=s.childNodes)&&a.length?e(s,i):i?t+s.textContent.trim().replace(/\s+/g," "):t+s.textContent},"")}(e,a);if(!c||!e.hasAttribute("begin"))return null;let f=a5(e.getAttribute("begin"),r),m=a5(e.getAttribute("dur"),r),g=a5(e.getAttribute("end"),r);if(null===f)throw a4(e);if(null===g){if(null===m)throw a4(e);g=f+m}let p=new aU(f-t,g-t,c);p.id=aY(p.startTime,p.endTime,p.text);let v=(i=l[e.getAttribute("region")],s=n[e.getAttribute("style")],o=n,d="http://www.w3.org/ns/ttml#styling",h=null,(u=null!=i&&i.hasAttribute("style")?i.getAttribute("style"):null)&&o.hasOwnProperty(u)&&(h=o[u]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((e,t)=>{let r=a3(s,d,t)||a3(i,d,t)||a3(h,d,t);return r&&(e[t]=r),e},{})),{textAlign:E}=v;if(E){let e=aJ[E];e&&(p.lineAlign=e),p.align=E}return el(p,v),p}).filter(e=>null!==e)}(e,n)))}catch(e){s(e)}}function a1(e,t,i){let s=e.getElementsByTagName(t)[0];return s?[].slice.call(s.querySelectorAll(i)):[]}function a2(e){return e.reduce((e,t)=>{let i=t.getAttribute("xml:id");return i&&(e[i]=t),e},{})}function a3(e,t,i){return e&&e.hasAttributeNS(t,i)?e.getAttributeNS(t,i):null}function a4(e){return Error(`Could not parse ttml timestamp ${e}`)}function a5(e,t){var i,s;let r,a;if(!e)return null;let n=aF(e);return null===n&&(aX.test(e)?(i=e,s=t,a=(0|(r=aX.exec(i))[4])+(0|r[5])/s.subFrameRate,n=(0|r[1])*3600+(0|r[2])*60+(0|r[3])+a/s.frameRate):aZ.test(e)&&(n=function(e,t){let i=aZ.exec(e),s=Number(i[1]);switch(i[2]){case"h":return 3600*s;case"m":return 60*s;case"ms":return 1e3*s;case"f":return s/t.frameRate;case"t":return s/t.tickRate}return s}(e,t))),n}class a8{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(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}function a6(e){return e.characteristics&&/transcribes-spoken-dialog/gi.test(e.characteristics)&&/describes-music-and-sound/gi.test(e.characteristics)?"captions":"subtitles"}function a9(e,t){return!!e&&e.kind===a6(t)&&rv(t,e)}function a7(){return{ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}}}let ne=/\s/,nt={newCue(e,t,i,s){let r,a,n,l,o,d=[],h=self.VTTCue||self.TextTrackCue;for(let c=0;c<s.rows.length;c++)if(r=s.rows[c],n=!0,l=0,o="",!r.isEmpty()){var u;for(let e=0;e<r.chars.length;e++)ne.test(r.chars[e].uchar)&&n?l++:(o+=r.chars[e].uchar,n=!1);r.cueStartTime=t,t===i&&(i+=1e-4),l>=16?l--:l++;let s=aV(o.trim()),f=aY(t,i,s);null!=e&&null!=(u=e.cues)&&u.getCueById(f)||((a=new h(t,i,s)).id=f,a.line=c+1,a.align="left",a.position=10+Math.min(80,10*Math.floor(8*l/32)),d.push(a))}return e&&d.length&&(d.sort((e,t)=>
59"auto"===e.line||"auto"===t.line?0:e.line>8&&t.line>8?t.line-e.line:e.line-t.line),d.forEach(t=>as(e,t))),d}},ni=/(\d+)-(\d+)\/(\d+)/;class ns{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||nr,this.controller=new self.AbortController,this.stats=new eS}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,t,i){var s;let r,a=this.stats;if(a.loading.start)throw Error("Loader can only be used once.");a.loading.start=self.performance.now();let n=(s=e,r={method:"GET",mode:"cors",credentials:"same-origin",signal:this.controller.signal,headers:new self.Headers(el({},s.headers))},s.rangeEnd&&r.headers.set("Range","bytes="+s.rangeStart+"-"+String(s.rangeEnd-1)),r),l="arraybuffer"===e.responseType,o=l?"byteLength":"length",{maxTimeToFirstByteMs:d,maxLoadTimeMs:h}=t.loadPolicy;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,n),self.clearTimeout(this.requestTimeout),t.timeout=d&&j(d)?d:h,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(a,e,this.response))},t.timeout),(rd(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then(i=>{var s;this.response=this.loader=i;let r=Math.max(self.performance.now(),a.loading.start);if(self.clearTimeout(this.requestTimeout),t.timeout=h,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(a,e,this.response))},h-(r-a.loading.start)),!i.ok){let{status:e,statusText:t}=i;throw new na(t||"fetch, bad network response",e,i)}a.loading.first=r,a.total=function(e){let t=e.get("Content-Range");if(t){let e=function(e){let t=ni.exec(e);if(t)return parseInt(t[2])-parseInt(t[1])+1}(t);if(j(e))return e}let i=e.get("Content-Length");if(i)return parseInt(i)}(i.headers)||a.total;let n=null==(s=this.callbacks)?void 0:s.onProgress;return n&&j(t.highWaterMark)?this.loadProgressively(i,a,e,t.highWaterMark,n):l?i.arrayBuffer():"json"===e.responseType?i.json():i.text()}).then(i=>{var s,r;let n=this.response;if(!n)throw Error("loader destroyed");self.clearTimeout(this.requestTimeout),a.loading.end=Math.max(self.performance.now(),a.loading.first);let l=i[o];l&&(a.loaded=a.total=l);let d={url:n.url,data:i,code:n.status},h=null==(s=this.callbacks)?void 0:s.onProgress;h&&!j(t.highWaterMark)&&h(a,e,i,n),null==(r=this.callbacks)||r.onSuccess(d,a,e,n)}).catch(t=>{var i;if(self.clearTimeout(this.requestTimeout),a.aborted)return;let s=t&&t.code||0,r=t?t.message:null;null==(i=this.callbacks)||i.onError({code:s,text:r},e,t?t.details:null,a)})}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,r){let a=new sh,n=e.body.getReader(),l=()=>n.read().then(n=>{if(n.done)return a.dataLength&&r(t,i,a.flush().buffer,e),Promise.resolve(new ArrayBuffer(0));let o=n.value,d=o.length;return t.loaded+=d,d<s||a.dataLength?(a.push(o),a.dataLength>=s&&r(t,i,a.flush().buffer,e)):r(t,i,o.buffer,e),l()}).catch(()=>Promise.reject());return l()}}function nr(e,t){return new self.Request(e.url,t)}class na extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i}}let nn=/^age:\s*[\d.]+\s*$/im;class nl{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=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new eS,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){let e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,t,i){if(this.stats.loading.start)throw 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||!t)return;let i=this.loader=new self.XMLHttpRequest,s=this.stats;s.loading.first=0,s.loaded=0,s.aborted=!1;let r=this.xhrSetup;r?Promise.resolve().then(()=>
59{if(this.loader===i&&!this.stats.aborted)return r(i,t.url)}).catch(e=>{if(this.loader===i&&!this.stats.aborted)return i.open("GET",t.url,!0),r(i,t.url)}).then(()=>{this.loader!==i||this.stats.aborted||this.openAndSendXhr(i,t,e)}).catch(e=>{var r;null==(r=this.callbacks)||r.onError({code:i.status,text:e.message},t,i,s)}):this.openAndSendXhr(i,t,e)}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,!0);let s=t.headers,{maxTimeToFirstByteMs:r,maxLoadTimeMs:a}=i.loadPolicy;if(s)for(let t in s)e.setRequestHeader(t,s[t]);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=r&&j(r)?r: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,r=this.config;if(!i.aborted&&s>=2&&(0===i.loading.first&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),r.timeout!==r.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),r.timeout=r.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),4===s)){var a,n,l;self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;let s=t.status,o="text"===t.responseType?t.responseText:null;if(s>=200&&s<300){let r=null!=o?o:t.response;if(null!=r){i.loading.end=Math.max(self.performance.now(),i.loading.first),i.loaded=i.total="arraybuffer"===t.responseType?r.byteLength:r.length,i.bwEstimate=8e3*i.total/(i.loading.end-i.loading.first);let l=null==(a=this.callbacks)?void 0:a.onProgress;l&&l(i,e,r,t);let o={url:t.responseURL,data:r,code:s};null==(n=this.callbacks)||n.onSuccess(o,i,e,t);return}}let d=r.loadPolicy.errorRetry;tw(d,i.retry,!1,{url:e.url,data:void 0,code:s})?this.retry(d):(eg.error(`${s} while loading ${e.url}`),null==(l=this.callbacks)||l.onError({code:s,text:t.statusText},e,t,i))}}loadtimeout(){if(!this.config)return;let e=this.config.loadPolicy.timeoutRetry;if(tw(e,this.stats.retry,!0))this.retry(e);else{var t;eg.warn(`timeout while loading ${null==(t=this.context)?void 0:t.url}`);let e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))}}retry(e){let{context:t,stats:i}=this;this.retryDelay=tC(e,i.retry),i.retry++,eg.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${null==t?void 0: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&&nn.test(this.loader.getAllResponseHeaders())){let t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.loader&&RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}}let no=ed(ed({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:1/0,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:6e7,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,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,ignorePlaylistParsingErrors:!1,loader:nl,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class extends eh{constructor(e){super("abr",e.logger),this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.co
59decTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.rebufferNotice=-1,this.supportedCache={},this.bwEstimator=void 0,this._abandonRulesCheck=e=>{var t;let i,{fragCurrent:s,partCurrent:r,hls:a}=this,{autoLevelEnabled:n,media:l}=a;if(!s||!l)return;let o=performance.now(),d=r?r.stats:s.stats,h=r?r.duration:s.duration,u=o-d.loading.start,c=a.minAutoLevel,f=s.level,m=this._nextAutoLevel;if(d.aborted||d.loaded&&d.loaded===d.total||f<=c){this.clearTimer(),this._nextAutoLevel=-1;return}if(!n)return;let g=m>-1&&m!==f,p=!!e||g;if(!p&&(l.paused||!l.playbackRate||!l.readyState))return;let v=a.mainForwardBufferInfo;if(!p&&null===v)return;let E=this.bwEstimator.getEstimateTTFB(),b=Math.abs(l.playbackRate);if(u<=Math.max(E,h/(2*b)*1e3))return;let y=v?v.len/b:0,T=d.loading.first?d.loading.first-d.loading.start:-1,A=d.loaded&&T>-1,S=this.getBwEstimate(),I=a.levels,L=I[f],k=Math.max(d.loaded,Math.round(h*(s.bitrate||L.averageBitrate)/8)),R=A?u-T:u;R<1&&A&&(R=Math.min(u,8*d.loaded/S));let M=A?1e3*d.loaded/R:0,C=E/1e3,_=M?(k-d.loaded)/M:8*k/S+C;if(_<=y)return;let w=M?8*M:S,D=(null==(t=(null==e?void 0:e.details)||this.hls.latestLevelDetails)?void 0:t.live)===!0,x=this.hls.config.abrBandWidthUpFactor,P=1/0;for(i=f-1;i>c;i--){let e=I[i].maxBitrate,t=!I[i].details||D;if((P=this.getTimeToLoadFrag(C,w,h*e,t))<Math.min(y,h+C))break}if(P>=_||P>10*h)return;A?this.bwEstimator.sample(u-Math.min(E,T),d.loaded):this.bwEstimator.sampleTTFB(u);let O=I[i].maxBitrate;this.getBwEstimate()*x>O&&this.resetEstimator(O);let U=this.findBestLevel(O,c,i,0,y,1,1);U>-1&&(i=U),this.warn(`Fragment ${s.sn}${r?" part "+r.index:""} of level ${f} is loading too slowly;
60      Fragment duration: ${s.duration.toFixed(3)}
61      Time to underbuffer: ${y.toFixed(3)} s
62      Estimated load time for current fragment: ${_.toFixed(3)} s
63      Estimated load time for down switch fragment: ${P.toFixed(3)} s
64      TTFB estimate: ${0|T} ms
65      Current BW estimate: ${j(S)?0|S:"Unknown"} bps
66      New BW estimate: ${0|this.getBwEstimate()} bps
67      Switching to level ${i} @ ${0|O} bps`),a.nextLoadLevel=a.nextAutoLevel=i,this.clearTimer();let N=()=>{if(this.clearTimer(),this.fragCurrent===s&&this.hls.loadLevel===i&&i>0){let e=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${i>0?"and switching down":""}
68      Fragment duration: ${s.duration.toFixed(3)} s
69      Time to underbuffer: ${e.toFixed(3)} s`),s.abortRequests(),this.fragCurrent=this.partCurrent=null,i>c){let t=this.findBestLevel(this.hls.levels[c].bitrate,c,i,0,e,1,1);-1===t&&(t=c),this.hls.nextLoadLevel=this.hls.nextAutoLevel=t,this.resetEstimator(this.hls.levels[t].bitrate)}}};g||_>2*P?N():this.timer=self.setInterval(N,1e3*P),a.trigger(X.FRAG_LOAD_EMERGENCY_ABORTED,{frag:s,part:r,stats:d})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(this.log(`setting initial bwe to ${e}`),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new en(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_LOADED,this.onFragLoaded,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this),e.on(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_LOADED,this.onFragLoaded,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this),e.off(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(X.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,t){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,t){let i=t.frag;
69if(!this.ignoreFragment(i)){if(!i.bitrateTest){var s;this.fragCurrent=i,this.partCurrent=null!=(s=t.part)?s:null}this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,t){this.clearTimer()}onError(e,t){if(!t.fatal)switch(t.details){case z.BUFFER_ADD_CODEC_ERROR:case z.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case z.FRAG_LOAD_TIMEOUT:{let e=t.frag,{fragCurrent:i,partCurrent:s}=this;if(e&&i&&e.sn===i.sn&&e.level===i.level){let t=performance.now(),i=s?s.stats:e.stats,r=t-i.loading.start,a=i.loading.first?i.loading.first-i.loading.start:-1;if(i.loaded&&a>-1){let e=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(r-Math.min(e,a),i.loaded)}else this.bwEstimator.sampleTTFB(r)}}}}getTimeToLoadFrag(e,t,i,s){let r=s?e+this.lastLevelLoadSec:0;return e+i/t+r}onLevelLoaded(e,t){let i=this.hls.config,{loading:s}=t.stats,r=s.end-s.first;j(r)&&(this.lastLevelLoadSec=r/1e3),t.details.live?this.bwEstimator.update(i.abrEwmaSlowLive,i.abrEwmaFastLive):this.bwEstimator.update(i.abrEwmaSlowVoD,i.abrEwmaFastVoD),this.timer>-1&&this._abandonRulesCheck(t.levelInfo)}onFragLoaded(e,{frag:t,part:i}){let s=i?i.stats:t.stats;if(t.type===ei&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),t.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let e=i?i.duration:t.duration,r=this.hls.levels[t.level],a=(r.loaded?r.loaded.bytes:0)+s.loaded,n=(r.loaded?r.loaded.duration:0)+e;r.loaded={bytes:a,duration:n},r.realBitrate=Math.round(8*a/n)}if(t.bitrateTest){let e={stats:s,frag:t,part:i,id:t.type};this.onFragBuffered(X.FRAG_BUFFERED,e),t.bitrateTest=!1}else this.lastLoadedFragLevel=t.level}}onFragBuffered(e,t){let{frag:i,part:s}=t,r=null!=s&&s.stats.loaded?s.stats:i.stats;if(r.aborted||this.ignoreFragment(i))return;let a=r.parsing.end-r.loading.start-Math.min(r.loading.first-r.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,r.loaded),r.bwEstimate=this.getBwEstimate(),i.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ei||"initSegment"===e.sn}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:t}=this.hls,i=this.getBwEstimate(),s=this.hls.config.maxStarvationDelay,r=this.findBestLevel(i,t,e,0,s,1,1);if(r>-1)return r;let a=this.hls.firstLevel,n=Math.min(Math.max(a,t),e);return this.warn(`Could not find best starting auto level. Defaulting to first in playlist ${a} clamped to ${n}`),n}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,t=this.bwEstimator.canEstimate(),i=this.lastLoadedFragLevel>-1;if(-1!==e&&(!t||!i||this.nextAutoLevelKey===this.getAutoLevelKey()))return e;let s=t&&i?this.getNextABRAutoLevel():this.firstAutoLevel;if(-1!==e){let t=this.hls.levels;if(t.length>Math.max(e,s)&&t[e].loadError<=t[s].loadError)return e}return this._nextAutoLevel=s,this.nextAutoLevelKey=this.getAutoLevelKey(),s}getAutoLevelKey(){return`${this.getBwEstimate()}
69_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:t,hls:i}=this;if(i.levels.length<=1)return i.loadLevel;let{maxAutoLevel:s,config:r,minAutoLevel:a}=i,n=t?t.duration:e?e.duration:0,l=this.getBwEstimate(),o=this.getStarvationDelay(),d=r.abrBandWidthFactor,h=r.abrBandWidthUpFactor;if(o){let e=this.findBestLevel(l,a,s,o,0,d,h);if(e>=0)return this.rebufferNotice=-1,e}let u=n?Math.min(n,r.maxStarvationDelay):r.maxStarvationDelay;if(!o){let e=this.bitrateTestDelay;e&&(u=(n?Math.min(n,r.maxLoadingDelay):r.maxLoadingDelay)-e,this.info(`bitrate test took ${Math.round(1e3*e)}ms, set first fragment max fetchDuration to ${Math.round(1e3*u)} ms`),d=h=1)}let c=this.findBestLevel(l,a,s,o,u,d,h);if(this.rebufferNotice!==c&&(this.rebufferNotice=c,this.info(`${o?"rebuffering expected":"buffer is empty"}, optimal quality level ${c}`)),c>-1)return c;let f=i.levels[a],m=i.loadLevelObj;return m&&(null==f?void 0:f.bitrate)<m.bitrate?a:i.loadLevel}getStarvationDelay(){let e=this.hls,t=e.media;if(!t)return 1/0;let i=t&&0!==t.playbackRate?Math.abs(t.playbackRate):1,s=e.mainForwardBufferInfo;return(s?s.len:0)/i}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,t,i,s,r,a,n){var l,o;let d,h=s+r,u=this.lastLoadedFragLevel,c=-1===u?this.hls.firstLevel:u,{fragCurrent:f,partCurrent:m}=this,{levels:g,allAudioTracks:p,loadLevel:v,config:E}=this.hls;if(1===g.length)return 0;let b=g[c],y=!!(null!=(l=this.hls.latestLevelDetails)&&l.live),T=-1===v||-1===u,A="SDR",S=(null==b?void 0:b.frameRate)||0,{audioPreference:I,videoPreference:L}=E,k=this.audioTracksByGroup||(this.audioTracksByGroup=tm(p)),R=-1;if(T){if(-1!==this.firstSelection)return this.firstSelection;let s=function(e,t,i,s,r){let a=Object.keys(e),n=null==s?void 0:s.channels,l=null==s?void 0:s.audioCodec,o=null==r?void 0:r.videoCodec,d=n&&2===parseInt(n),h=!1,u=!1,
69c=1/0,f=1/0,m=1/0,g=1/0,p=0,v=[],{preferHDR:E,allowedVideoRanges:b}=function(e,t){let i=!1,s=[];if(e&&(i="SDR"!==e,s=[e]),t){let e="SDR"!==(s=t.allowedVideoRanges||tl.slice(0)).join("")&&!t.videoCodec;(i=void 0!==t.preferHDR?t.preferHDR:e&&function(){if("function"==typeof matchMedia){let e=matchMedia("(dynamic-range: high)"),t=matchMedia("bad query");if(e.media!==t.media)return!0===e.matches}return!1}())||(s=["SDR"])}return{preferHDR:i,allowedVideoRanges:s}}(t,r);for(let t=a.length;t--;){let i=e[a[t]];h||(h=i.channels[2]>0),c=Math.min(c,i.minHeight),f=Math.min(f,i.minFramerate),m=Math.min(m,i.minBitrate),b.filter(e=>i.videoRanges[e]>0).length>0&&(u=!0)}c=j(c)?c:0,f=j(f)?f:0;let y=Math.max(1080,c),T=Math.max(30,f);i=Math.max(m=j(m)?m:i,i),u||(t=void 0);let A=a.length>1;return{codecSet:a.reduce((t,s)=>{let r=e[s];if(s===t)return t;if(v=u?b.filter(e=>r.videoRanges[e]>0):[],A){if(r.minBitrate>i)return tf(s,`min bitrate of ${r.minBitrate} > current estimate of ${i}`),t;if(!r.hasDefaultAudio)return tf(s,"no renditions with default or auto-select sound found"),t;if(l&&s.indexOf(l.substring(0,4))%5!=0)return tf(s,`audio codec preference "${l}" not found`),t;if(n&&!d){if(!r.channels[n])return tf(s,`no renditions with ${n} channel sound found (channels options: ${Object.keys(r.channels)})`),t}else if((!l||d)&&h&&0===r.channels["2"])return tf(s,"no renditions with stereo sound found"),t;if(r.minHeight>y)return tf(s,`min resolution of ${r.minHeight} > maximum of ${y}`),t;if(r.minFramerate>T)return tf(s,`min framerate of ${r.minFramerate} > maximum of ${T}`),t;if(!v.some(e=>r.videoRanges[e]>0))return tf(s,`no variants with VIDEO-RANGE of ${tc(v)} found`),t;if(o&&s.indexOf(o.substring(0,4))%5!=0)return tf(s,`video codec preference "${o}" not found`),t;if(r.maxScore<p)return tf(s,`max score of ${r.maxScore} < selected max of ${p}`),t}return t&&(e3(s)>=e3(t)||r.fragmentError>e[t].fragmentError)?t:(g=r.minIndex,p=r.maxScore,s)},void 0),videoRanges:v,preferHDR:E,minFramerate:f,minBitrate:m,minIndex:g}}(this.codecTiers||(this.codecTiers=g.slice(t,i+1).reduce((e,t,i)=>{if(!t.codecSet)return e;let s=t.audioGroups,r=e[t.codecSet];r||(e[t.codecSet]=r={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:i,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!s,fragmentError:0}),r.minBitrate=Math.min(r.minBitrate,t.bitrate);let a=Math.min(t.height,t.width);return r.minHeight=Math.min(r.minHeight,a),r.minFramerate=Math.min(r.minFramerate,t.frameRate),r.minIndex=Math.min(r.minIndex,i),r.maxScore=Math.max(r.maxScore,t.score),r.fragmentError+=t.fragmentError,r.videoRanges[t.videoRange]=(r.videoRanges[t.videoRange]||0)+1,s&&s.forEach(e=>{if(!e)return;let t=k.groups[e];t&&(r.hasDefaultAudio=r.hasDefaultAudio||k.hasDefaultAudio?t.hasDefault:t.hasAutoSelect||!k.hasDefaultAudio&&!k.hasAutoSelectAudio,Object.keys(t.channels).forEach(e=>{r.channels[e]=(r.channels[e]||0)+t.channels[e]}))}),e},{})),A,e,I,L),{codecSet:r,videoRanges:a,minFramerate:n,minBitrate:l,minIndex:o,preferHDR:h}=s;R=o,d=r,A=h?a[a.length-1]:a[0],S=n,e=Math.max(e,l),this.log(`picked start tier ${tc(s)}`)}else d=null==b?void 0:b.codecSet,A=null==b?void 0:b.videoRange;let M=m?m.duration:f?f.duration:0,C=this.bwEstimator.getEstimateTTFB()/1e3,_=[];for(let l=i;l>=t;l--){let t,f=g[l],p=l>c;if(!f)continue;if(E.useMediaCapabilities&&!f.supportedResult&&!f.supportedPromise){let t=navigator.mediaCapabilities;"function"==typeof(null==t?void 0:t.decodingInfo)&&function(e,t,i,s,r,a){let n=e.videoCodec,l=e.audioCodec?e.audioGroups:null,o=null==a?void 0:a.audioCodec,d=null==a?void 0:a.channels,h=d?parseInt(d):o?1/0:2,u=null;if(null!=l&&l.length)try{u=1===l.length&&l[0]?t.groups[l[0]].channels:l.reduce((e,i)=>{if(i){let s=t.groups[i];if(!s)throw Error(`Audio track group ${i} not found`);Object.keys(s.channels).forEach(t=>{e[t]=(e[t]||0)+s.channels[t]})}return e},{2:0})}catch(e){return!0}return void 0!==n&&(n.split(",").some(e=>eY(e))||e.width>1920&&e.height>1088||e.height>1920&&e.width>1088||e.frameRate>Math.max(s,30)||"SDR"!==e.videoRange&&e.videoRange!==i||e.bitrate>Math.max(r,8e6))||!!u&&j(h)&&Object.keys(u).some(e=>parseInt(e)>h)}
69(f,k,A,S,e,I)?(f.supportedPromise=tr(f,k,t,this.supportedCache),f.supportedPromise.then(e=>{if(!this.hls)return;f.supportedResult=e;let t=this.hls.levels,i=t.indexOf(f);e.error?this.warn(`MediaCapabilities decodingInfo error: "${e.error}" for level ${i} ${tc(e)}`):e.supported?e.decodingInfoResults.some(e=>!1===e.smooth||!1===e.powerEfficient)&&this.log(`MediaCapabilities decodingInfo for level ${i} not smooth or powerEfficient: ${tc(e)}`):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${i} ${tc(e)}`),i>-1&&t.length>1&&(this.log(`Removing unsupported level ${i}`),this.hls.removeLevel(i),-1===this.hls.loadLevel&&(this.hls.nextLoadLevel=0)))}).catch(e=>{this.warn(`Error handling MediaCapabilities decodingInfo: ${e}`)})):f.supportedResult=ti}if((d&&f.codecSet!==d||A&&f.videoRange!==A||p&&S>f.frameRate||!p&&S>0&&S<f.frameRate||null!=(o=f.supportedResult)&&null!=(o=o.decodingInfoResults)&&o.some(e=>!1===e.smooth))&&(!T||l!==R)){_.push(l);continue}let b=f.details,L=(m?null==b?void 0:b.partTarget:null==b?void 0:b.averagetargetduration)||M;t=p?n*e:a*e;let w=M&&s>=2*M&&0===r?f.averageBitrate:f.maxBitrate,D=this.getTimeToLoadFrag(C,t,w*L,void 0===b);if(t>=w&&(l===u||0===f.loadError&&0===f.fragmentError)&&(D<=C||!j(D)||y&&!this.bitrateTestDelay||D<h)){let e=this.forcedAutoLevel;return l!==v&&(-1===e||e!==v)&&(_.length&&this.trace(`Skipped level(s) ${_.join(",")} of ${i} max with CODECS and VIDEO-RANGE:"${g[_[0]].codecs}" ${g[_[0]].videoRange}; not compatible with "${d}" ${A}`),this.info(`switch candidate:${c}->${l} adjustedbw(${Math.round(t)})-bitrate=${Math.round(t-w)} ttfb:${C.toFixed(1)} avgDuration:${L.toFixed(1)} maxFetchDuration:${h.toFixed(1)} fetchDuration:${D.toFixed(1)} firstSelection:${T} codecSet:${f.codecSet} videoRange:${f.videoRange} hls.loadLevel:${v}`)),T&&(this.firstSelection=l),l}}return -1}set nextAutoLevel(e){let t=this.deriveNextAutoLevel(e);this._nextAutoLevel!==t&&(this.nextAutoLevelKey="",this._nextAutoLevel=t)}deriveNextAutoLevel(e){let{maxAutoLevel:t,minAutoLevel:i}=this.hls;return Math.min(Math.max(e,i),t)}},bufferController:class extends eh{constructor(e,t){super("buffer-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=e=>{var t;this.hls&&(null==(t=this.mediaSource)?void 0:t.readyState)==="open"&&this.hls.pauseBuffering()},this._onStartStreaming=e=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=e=>{let{media:t,mediaSource:i}=this;e&&this.log("Media source opened"),t&&i&&(i.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(X.MEDIA_ATTACHED,{media:t,mediaSource:i}),null!==this.mediaSource&&this.checkPendingTracks())},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:e,_objectUrl:t}=this;e!==t&&this.error(`Media element src was set while attaching MediaSource (${t} > ${e})`)},this.hls=e,this.fragmentTracker=t,this.appendSource=function(e){return"u">typeof self&&e===self.ManagedMediaSource}(ep(e.config.preferManagedMediaSource)),this.initTracks(),this.registerListeners()}hasSourceTypes(){return Object.keys(this.tracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue&&(this.operationQueue.destroy(),this.operationQueue=null),this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}registerListeners(){let{hls:e}=this;
69e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.BUFFER_RESET,this.onBufferReset,this),e.on(X.BUFFER_APPENDING,this.onBufferAppending,this),e.on(X.BUFFER_CODECS,this.onBufferCodecs,this),e.on(X.BUFFER_EOS,this.onBufferEos,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.FRAG_PARSED,this.onFragParsed,this),e.on(X.FRAG_CHANGED,this.onFragChanged,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.BUFFER_RESET,this.onBufferReset,this),e.off(X.BUFFER_APPENDING,this.onBufferAppending,this),e.off(X.BUFFER_CODECS,this.onBufferCodecs,this),e.off(X.BUFFER_EOS,this.onBufferEos,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.FRAG_PARSED,this.onFragParsed,this),e.off(X.FRAG_CHANGED,this.onFragChanged,this),e.off(X.ERROR,this.onError,this)}transferMedia(){let{media:e,mediaSource:t}=this;if(!e)return null;let i={};if(this.operationQueue){let e=this.isUpdating();e||this.operationQueue.removeBlockers();let t=this.isQueued();(e||t)&&this.warn(`Transfering MediaSource with${t?" operations in queue":""}${e?" updating SourceBuffer(s)":""} ${this.operationQueue}`),this.operationQueue.destroy()}let s=this.transferData;return!this.sourceBufferCount&&s&&s.mediaSource===t?el(i,s.tracks):this.sourceBuffers.forEach(e=>{let[t]=e;t&&(i[t]=el({},this.tracks[t]),this.removeBuffer(t)),e[0]=e[1]=null}),{media:e,mediaSource:t,tracks:i}}initTracks(){this.sourceBuffers=[[null,null],[null,null]],this.tracks={},this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,t){var i;let s=2;(!t.audio||t.video)&&t.altAudio||(s=1),this.bufferCodecEventsTotal=s,this.log(`${s} bufferCodec event(s) expected.`),null!=(i=this.transferData)&&i.mediaSource&&this.sourceBufferCount&&s&&this.bufferCreated()}onMediaAttaching(e,t){let i=this.media=t.media;this.transferData=this.overrides=void 0;let s=ep(this.appendSource);if(s){let e=!!t.mediaSource;(e||t.overrides)&&(this.transferData=t,this.overrides=t.overrides);let n=this.mediaSource=t.mediaSource||new s;if(this.assignMediaSource(n),e)this._objectUrl=i.src,this.attachTransferred();else{let e=this._objectUrl=self.URL.createObjectURL(n);if(this.appendSource)try{var r,a;let t;i.removeAttribute("src");let s=self.ManagedMediaSource;i.disableRemotePlayback=i.disableRemotePlayback||s&&n instanceof s,rA(i),r=i,a=e,(t=self.document.createElement("source")).type="video/mp4",t.src=a,r.appendChild(t),i.load()}catch(t){i.src=e}else i.src=e}i.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(e){var t,i;this.log(`${(null==(t=this.transferData)?void 0:t.mediaSource)===e?"transferred":"created"} media source: ${null==(i=e.constructor)?void 0:i.name}`),e.addEventListener("sourceopen",this._onMediaSourceOpen),e.addEventListener("sourceended",this._onMediaSourceEnded),e.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(e.addEventListener("startstreaming",this._onStartStreaming),e.addEventListener("endstreaming",this._onEndStreaming))}attachTransferred(){let e=this.media,t=this.transferData;if(!t||!e)return;let i=this.tracks,s=t.tracks,r=s?Object.keys(s):null,a=r?r.length:0,n=()=>{Promise.resolve().then(()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen()})};if(s&&r&&a){if(!this.tracksReady){this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");return}if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal})
70required tracks: ${tc(i,(e,t)=>"initSegment"===e?void 0:t)};
71transfer tracks: ${tc(s,(e,t)=>"initSegment"===e?void 0:t)}}`),!ev(s,i)){t.mediaSource=null,t.tracks=void 0;let r=e.currentTime,a=this.details,n=Math.max(r,(null==a?void 0:a.fragments[0].start)||0);return n-r>1?void this.log(`attachTransferred: waiting for playback to reach new tracks start time ${r} -> ${n}`):(this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(s)}"->"${Object.keys(i)}") start time: ${n} currentTime: ${r}`),this.onMediaDetaching(X.MEDIA_DETACHING,{}
71),this.onMediaAttaching(X.MEDIA_ATTACHING,t),void(e.currentTime=n))}this.transferData=void 0,r.forEach(e=>{let t=s[e];if(t){let i=t.buffer;if(i){let s=this.fragmentTracker,r=t.id;if(s.hasFragments(r)||s.hasParts(r)){let t=tJ.getBuffered(i);s.detectEvictedFragments(e,t,r,null,!0)}let a=rS(e),n=[e,i];this.sourceBuffers[a]=n,i.updating&&this.operationQueue&&this.operationQueue.prependBlocker(e),this.trackSourceBuffer(e,t)}}}),n(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),n()}get mediaSourceOpenOrEnded(){var e;let t=null==(e=this.mediaSource)?void 0:e.readyState;return"open"===t||"ended"===t}onMediaDetaching(e,t){let i=!!t.transferMedia;this.transferData=this.overrides=void 0;let{media:s,mediaSource:r,_objectUrl:a}=this;if(r){if(this.log(`media source ${i?"transferring":"detaching"}`),i)this.sourceBuffers.forEach(([e])=>{e&&this.removeBuffer(e)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){let e="open"===r.readyState;try{let t=r.sourceBuffers;for(let i=t.length;i--;)e&&t[i].abort(),r.removeSourceBuffer(t[i]);e&&r.endOfStream()}catch(e){this.warn(`onMediaDetaching: ${e.message} while calling endOfStream`)}}this.sourceBufferCount&&this.onBufferReset()}r.removeEventListener("sourceopen",this._onMediaSourceOpen),r.removeEventListener("sourceended",this._onMediaSourceEnded),r.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(r.removeEventListener("startstreaming",this._onStartStreaming),r.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}s&&(s.removeEventListener("emptied",this._onMediaEmptied),i||(a&&self.URL.revokeObjectURL(a),this.mediaSrc===a?(s.removeAttribute("src"),this.appendSource&&rA(s),s.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(X.MEDIA_DETACHED,t)}onBufferReset(){this.sourceBuffers.forEach(([e])=>{e&&this.resetBuffer(e)}),this.initTracks()}resetBuffer(e){var t,i;let s=null==(t=this.tracks[e])?void 0:t.buffer;if(this.removeBuffer(e),s)try{null!=(i=this.mediaSource)&&i.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(s)}catch(t){this.warn(`onBufferReset ${e}`,t)}delete this.tracks[e]}removeBuffer(e){this.removeBufferListeners(e),this.sourceBuffers[rS(e)]=[null,null];let t=this.tracks[e];t&&(t.buffer=void 0)}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new rE(this.tracks)}onBufferCodecs(e,t){var i;let s=this.tracks,r=Object.keys(t);this.log(`BUFFER_CODECS: "${r}" (current SB count ${this.sourceBufferCount})`);let a="audiovideo"in t&&(s.audio||s.video)||s.audiovideo&&("audio"in t||"video"in t),n=!a&&this.sourceBufferCount&&this.media&&r.some(e=>!s[e]);a||n?this.warn(`Unsupported transition between "${Object.keys(s)}" and "${r}" SourceBuffers`):(r.forEach(e=>{var i,r;let{id:a,codec:n,levelCodec:l,container:o,metadata:d,supplemental:h}=t[e],u=s[e],c=null==(i=this.transferData)||null==(i=i.tracks)?void 0:i[e],f=null!=c&&c.buffer?c:u,m=(null==f?void 0:f.pendingCodec)||(null==f?void 0:f.codec),g=null==f?void 0:f.levelCodec;u||(u=s[e]={buffer:void 0,listeners:[],codec:n,supplemental:h,container:o,levelCodec:l,metadata:d,id:a});let p=e6(m,g),v=null==p?void 0:p.replace(rb,"$1"),E=e6(n,l),b=null==(r=E)?void 0:r.replace(rb,"$1");E&&p&&v!==b&&("audio"===e.slice(0,5)&&(E=e8(E,this.appendSource)),this.log(`switching codec ${m} to ${E}`),E!==(u.pendingCodec||u.codec)&&(u.pendingCodec=E),u.container=o,this.appendChangeType(e,o,E))}),(this.tracksReady||this.sourceBufferCount)&&(t.tracks=this.sourceBufferTracks),!this.sourceBufferCount&&(!(this.bufferCodecEventsTotal>1)||this.tracks.video||t.video||(null==(i=t.audio)?void 0:i.id)!=="main"||(this.log("Main audio-only"),this.bufferCodecEventsTotal=1),this.mediaSourceOpenOrEnded&&this.checkPendingTracks()))}get sourceBufferTracks(){return Object.keys(this.tracks).reduce((e,t)=>{let i=this.tracks[t];return e[t]={id:i.id,container:i.container,codec:i.codec,levelCodec:i.levelCodec},e},{})}appendChangeType(e,t,i){let s=`${t};codecs=${i}`,r={label:`change-type=${s}`,execute:()=>{let r=this.tracks[e];if(r){let a=r.buffer;null!=a&&a.changeType&&(this.log(`changing ${e} sourceBuffer type to ${s}`),a.changeType(s),r.codec=i,r.container=t)}this.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:t=>{this.warn(`Failed to change ${e} SourceBuffer type`,t)}};this.append(r,e,this.isPending(this.tracks[e]))}blockAudio(e){var t;let i=e.start,s=i+.05*e.duration;if((null==(t=this.fragmentTracker.getAppendedFrag(i,ei))?void 0:t.gap)===!0)return;let r={label:"block-audio",execute:()=>{var e;let t=this.tracks.video;(this.lastVideoAppendEnd>s||null!=t&&t.buffer&&tJ.isBuffered(t.buffer,s)||(null==(e=this.fragmentTracker.getAppendedFrag(s,ei))?void 0:e.gap)===!0)&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"))},onStart:()=>{},onComplete:()=>{},onError:e=>{this.warn("Error executing block-audio operation",e)}};this.blockedAudioAppend={op:r,frag:e},this.append(r,"audio",!0)}unblockAudio(){let{blockedAudioAppend:e,operationQueue:t}=this;e&&t&&(this.blockedAudioAppend=null,t.unblockAudio(e.op))}onBufferAppending(e,t){let{tracks:i}=this,{data:s,type:r,parent:a,frag:n,part:l,chunkMeta:o,offset:d}=t,h=o.buffering[r],{sn:u,cc:c}=n,f=self.performance.now();h.start=f;let m=n.stats.buffering,g=l?l.stats.buffering:null;0===m.start&&(m.start=f),g&&0===g.start&&(g.start=f);let p=i.audio,v=!1;"audio"===r&&(null==p?void 0:p.container)==="audio/mpeg"&&(v=!this.lastMpegAudioChunk||1===o.id||this.lastMpegAudioChunk.sn!==o.sn,this.lastMpegAudioChunk=o);let E=i.video,b=null==E?void 0:E.buffer;if(b&&"initSegment"!==u){let e=l||n,t=this.blockedAudioAppend;if("audio"!==r||"main"===a||this.blockedAudioAppend||E.ending||E.ended){if("video"===r){let i=e.end;if(t){let e=t.frag.start;(i>e||i<this.lastVideoAppendEnd||tJ.isBuffered(b,e))&&this.unblockAudio()}this.lastVideoAppendEnd=i}}else{let t=e.start+.05*e.duration,i=b.buffered,s=this.currentOp("video");(i.length||s)&&(s||tJ.isBuffered(b,t)||!(this.lastVideoAppendEnd<t))||this.blockAudio(e)}}let y=(l||n).start,T={label:`append-${r}`,execute:()=>{var e;h.executeStart=self.performance.now();let t=null==(e=this.tracks[r])?void 0:e.buffer;t&&(v?this.updateTimestampOffset(t,y,.1,r,u,c):void 0!==d&&j(d)&&this.updateTimestampOffset(t,d,1e-6,r,u,c)),this.appendExecutor(s,r)},onStart:()=>{},onComplete:()=>{let e=self.performance.now();h.executeEnd=h.end=e,0===m.first&&(m.first=e),g&&0===g.first&&(g.first=e);let t={};
71this.sourceBuffers.forEach(([e,i])=>{e&&(t[e]=tJ.getBuffered(i))}),this.appendErrors[r]=0,"audio"===r||"video"===r?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(X.BUFFER_APPENDED,{type:r,frag:n,part:l,chunkMeta:o,parent:n.type,timeRanges:t})},onError:e=>{var t;let i={type:Q.MEDIA_ERROR,parent:n.type,details:z.BUFFER_APPEND_ERROR,sourceBufferName:r,frag:n,part:l,chunkMeta:o,error:e,err:e,fatal:!1},s=null==(t=this.media)?void 0:t.error;if(e.code===DOMException.QUOTA_EXCEEDED_ERR||"QuotaExceededError"==e.name||"quota"in e)i.details=z.BUFFER_FULL_ERROR;else if(e.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!s)i.errorAction=tx(!0);else if(e.name===ry&&0===this.sourceBufferCount)i.errorAction=tx(!0);else{let e=++this.appendErrors[r];this.warn(`Failed ${e}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${r}" sourceBuffer (${s||"no media error"})`),(e>=this.hls.config.appendErrorMaxRetry||s)&&(i.fatal=!0)}this.hls.trigger(X.ERROR,i)}};this.log(`queuing "${r}" append sn: ${u}${l?" p: "+l.index:""} of ${n.type===ei?"level":"track"} ${n.level} cc: ${c}`),this.append(T,r,this.isPending(this.tracks[r]))}getFlushOp(e,t,i){return this.log(`queuing "${e}" remove ${t}-${i}`),{label:"remove",execute:()=>{this.removeExecutor(e,t,i)},onStart:()=>{},onComplete:()=>{this.hls.trigger(X.BUFFER_FLUSHED,{type:e})},onError:s=>{this.warn(`Failed to remove ${t}-${i} from "${e}" SourceBuffer`,s)}}}onBufferFlushing(e,t){let{type:i,startOffset:s,endOffset:r}=t;i?this.append(this.getFlushOp(i,s,r),i):this.sourceBuffers.forEach(([e])=>{e&&this.append(this.getFlushOp(e,s,r),e)})}onFragParsed(e,t){let{frag:i,part:s}=t,r=[],a=s?s.elementaryStreams:i.elementaryStreams;a[ek]?r.push("audiovideo"):(a[eI]&&r.push("audio"),a[eL]&&r.push("video"));let n=()=>{let e=self.performance.now();i.stats.buffering.end=e,s&&(s.stats.buffering.end=e);let t=s?s.stats:i.stats;this.hls.trigger(X.FRAG_BUFFERED,{frag:i,part:s,stats:t,id:i.type})};0===r.length&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${i.type} level: ${i.level} sn: ${i.sn}`),this.blockBuffers(n,r).catch(e=>{this.warn(`Fragment buffered callback ${e}`),this.stepOperationQueue(this.sourceBufferTypes)})}onFragChanged(e,t){this.trimBuffers()}get bufferedToEnd(){return this.sourceBufferCount>0&&!this.sourceBuffers.some(([e])=>{if(e){let t=this.tracks[e];if(t)return!t.ended||t.ending}return!1})}onBufferEos(e,t){var i;this.sourceBuffers.forEach(([e])=>{if(e){let i=this.tracks[e];(!t.type||t.type===e)&&(i.ending=!0,i.ended||(i.ended=!0,this.log(`${e} buffer reached EOS`)))}});let s=(null==(i=this.overrides)?void 0:i.endOfStream)!==!1;this.sourceBufferCount>0&&!this.sourceBuffers.some(([e])=>{var t;return e&&!(null!=(t=this.tracks[e])&&t.ended)})?s?(this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();let{mediaSource:e}=this;if(!e||"open"!==e.readyState){e&&this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${e.readyState}`);return}this.log("Calling mediaSource.endOfStream()"),e.endOfStream(),this.hls.trigger(X.BUFFERED_TO_END,void 0)})):(this.tracksEnded(),this.hls.trigger(X.BUFFERED_TO_END,void 0)):"video"===t.type&&this.unblockAudio()}tracksEnded(){this.sourceBuffers.forEach(([e])=>{if(null!==e){let t=this.tracks[e];t&&(t.ending=!1)}})}onLevelUpdated(e,{details:t}){t.fragments.length&&(this.details=t,this.updateDuration())}updateDuration(){this.blockUntilOpen(()=>{let e=this.getDurationAndRange();e&&this.updateMediaSource(e)})}onError(e,t){if(t.details===z.BUFFER_APPEND_ERROR&&t.frag){var i;let e=null==(i=t.errorAction)?void 0:i.nextAutoLevel;j(e)&&e!==t.frag.level&&this.resetAppendErrors()}}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){let{hls:e,details:t,media:i}=this;if(!i||null===t||!this.sourceBufferCount)return;let s=e.config,r=i.currentTime,a=t.levelTargetDuration,n=t.live&&null!==s.liveBackBufferLength?s.liveBackBufferLength:s.backBufferLength;if(j(n)&&n>=0){let e=Math.max(n,a),t=Math.floor(r/a)*a-e;this.flushBackBuffer(r,a,t)}let l=s.frontBufferFlushThreshold;if(j(l)&&l>0){let e=Math.max(Math.max(s.maxBufferLength,l),a),t=Math.floor(r/a)*a+e;this.flushFrontBuffer(r,a,t)}}
71flushBackBuffer(e,t,i){this.sourceBuffers.forEach(([e,t])=>{if(t){let r=tJ.getBuffered(t);if(r.length>0&&i>r.start(0)){var s;this.hls.trigger(X.BACK_BUFFER_REACHED,{bufferEnd:i});let t=this.tracks[e];if(null!=(s=this.details)&&s.live)this.hls.trigger(X.LIVE_BACK_BUFFER_REACHED,{bufferEnd:i});else if(null!=t&&t.ended)return void this.log(`Cannot flush ${e} back buffer while SourceBuffer is in ended state`);this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:0,endOffset:i,type:e})}}})}flushFrontBuffer(e,t,i){this.sourceBuffers.forEach(([t,s])=>{if(s){let r=tJ.getBuffered(s),a=r.length;if(a<2)return;let n=r.start(a-1),l=r.end(a-1);i>n||e>=n&&e<=l||this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:n,endOffset:1/0,type:t})}})}getDurationAndRange(){var e;let{details:t,mediaSource:i}=this;if(!t||!this.media||(null==i?void 0:i.readyState)!=="open")return null;let s=t.edge;if(t.live&&this.hls.config.liveDurationInfinity){if(t.fragments.length&&i.setLiveSeekableRange){let e=Math.max(0,t.fragmentStart),i=Math.max(e,s);return{duration:1/0,start:e,end:i}}return{duration:1/0}}let r=null==(e=this.overrides)?void 0:e.duration;if(r)return j(r)?{duration:r}:null;let a=this.media.duration;return s>(j(i.duration)?i.duration:0)&&s>a||!j(a)?{duration:s}:null}updateMediaSource({duration:e,start:t,end:i}){let s=this.mediaSource;this.media&&s&&"open"===s.readyState&&(s.duration!==e&&(j(e)&&this.log(`Updating MediaSource duration to ${e.toFixed(3)}`),s.duration=e),void 0!==t&&void 0!==i&&(this.log(`MediaSource duration is set to ${s.duration}. Setting seekable range to ${t}-${i}.`),s.setLiveSeekableRange(t,i)))}get tracksReady(){let e=this.pendingTrackCount;return e>0&&(e>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){let{bufferCodecEventsTotal:e,pendingTrackCount:t,tracks:i}=this;if(this.log(`checkPendingTracks (pending: ${t} codec events expected: ${e}) ${tc(i)}`),this.tracksReady){var s;let e=null==(s=this.transferData)?void 0:s.tracks;e&&Object.keys(e).length?this.attachTransferred():this.createSourceBuffers()}}bufferCreated(){if(this.sourceBufferCount){let e={};this.sourceBuffers.forEach(([t,i])=>{if(t){let s=this.tracks[t];e[t]={buffer:i,container:s.container,codec:s.codec,supplemental:s.supplemental,levelCodec:s.levelCodec,id:s.id,metadata:s.metadata}}}),this.hls.trigger(X.BUFFER_CREATED,{tracks:e}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach(([e])=>{this.executeNext(e)})}else{let e=Error("could not create source buffer for media codec(s)");this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:e,reason:e.message})}}createSourceBuffers(){let{tracks:e,sourceBuffers:t,mediaSource:i}=this;if(!i)throw Error("createSourceBuffers called when mediaSource was null");for(let r in e){let a=e[r];if(this.isPending(a)){let e=this.getTrackCodec(a,r),n=`${a.container};codecs=${e}`;a.codec=e,this.log(`creating sourceBuffer(${n})${this.currentOp(r)?" Queued":""} ${tc(a)}`);try{let e=i.addSourceBuffer(n),s=rS(r),l=[r,e];t[s]=l,a.buffer=e}catch(e){var s;this.error(`error while trying to add sourceBuffer: ${e.message}`),this.shiftAndExecuteNext(r),null==(s=this.operationQueue)||s.removeBlockers(),delete this.tracks[r],this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:e,sourceBufferName:r,mimeType:n,parent:a.id});return}this.trackSourceBuffer(r,a)}}this.bufferCreated()}getTrackCodec(e,t){let i=e.supplemental,s=e.codec;i&&("video"===t||"audiovideo"===t)&&eJ(i,"video")&&(s=function(e,t){let i=[];if(e){let t=e.split(",");for(let e=0;e<t.length;e++)eZ(t[e],"video")||i.push(t[e])}return t&&i.push(t),i.join(",")}(s,i));let r=e6(s,e.levelCodec);return r?"audio"===t.slice(0,5)?e8(r,this.appendSource):r:""}trackSourceBuffer(e,t){let i=t.buffer;if(!i)return;let s=this.getTrackCodec(t,e);this.tracks[e]={buffer:i,codec:s,container:t.container,levelCodec:t.levelCodec,supplemental:t.supplemental,metadata:t.metadata,id:t.id,listeners:[]},this.removeBufferListeners(e),this.addBufferListener(e,"updatestart",this.onSBUpdateStart),this.addBufferListener(e,"updateend",this.onSBUpdateEnd),this.addBufferListener(e,"error",this.onSBUpdateError),this.appendSource&&this.addBufferListener(e,"bufferedchange",(e,t)=>{let i=t.removedRanges;null!=i&&i.length&&this.hls.trigger(X.BUFFER_FLUSHED,{type:e})})}get mediaSrc(){var e,t;let i=(null==(e=this.media)||null==(t=e.querySelector)?void 0:t.call(e,"source"))||this.media;return null==i?void 0:i.src}onSBUpdateStart(e){let t=this.currentOp(e);t&&t.onStart()}onSBUpdateEnd(e){var t;if((null==(t=this.mediaSource)?void 0:t.readyState)==="closed")return void this.resetBuffer(e);let i=this.currentOp(e);i&&(i.onComplete(),this.shiftAndExecuteNext(e))}onSBUpdateError(e,t){var i;let s=Error(`${e} SourceBuffer error. MediaSource readyState: ${null==(i=this.mediaSource)?void 0:i.readyState}`);this.error(`${s}`,t),this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:s,fatal:!1});let r=this.currentOp(e);r&&r.onError(s)}updateTimestampOffset(e,t,i,s,r,a){Math.abs(t-e.timestampOffset)>=i&&(this.log(`Updating ${s} SourceBuffer timestampOffset to ${t} (sn: ${r} cc: ${a})`),e.timestampOffset=t)}removeExecutor(e,t,i){let{media:s,mediaSource:r}=this,a=this.tracks[e],n=null==a?void 0:a.buffer;if(!s||!r||!n){this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(e);return}let l=j(s.duration)?s.duration:1/0,o=j(r.duration)?r.duration:1/0,d=Math.max(0,t),h=Math.min(i,l,o);h>d&&(!a.ending||a.ended)?(a.ended=!1,this.log(`Removing [${d},${h}] from the ${e} SourceBuffer`),n.remove(d,h)):this.shiftAndExecuteNext(e)}appendExecutor(e,t){let i=this.tracks[t],s=null==i?void 0:i.buffer;if(!s)throw new rT(`Attempting to append to the ${t} SourceBuffer, but it does not exist`);i.ending=!1,i.ended=!1,s.appendBuffer(e)}blockUntilOpen(e){if(this.isUpdating()||this.isQueued())this.blockBuffers(e).catch(e=>{this.warn(`SourceBuffer blocked callback ${e}
71`),this.stepOperationQueue(this.sourceBufferTypes)});else try{e()}catch(e){this.warn(`Callback run without blocking ${this.operationQueue} ${e}`)}}isUpdating(){return this.sourceBuffers.some(([e,t])=>e&&t.updating)}isQueued(){return this.sourceBuffers.some(([e])=>e&&!!this.currentOp(e))}isPending(e){return!!e&&!e.buffer}blockBuffers(e,t=this.sourceBufferTypes){if(!t.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(e);let{operationQueue:i}=this,s=t.map(e=>this.appendBlocker(e));return t.length>1&&this.blockedAudioAppend&&this.unblockAudio(),Promise.all(s).then(t=>{i===this.operationQueue&&(e(),this.stepOperationQueue(this.sourceBufferTypes))})}stepOperationQueue(e){e.forEach(e=>{var t;let i=null==(t=this.tracks[e])?void 0:t.buffer;i&&!i.updating&&this.shiftAndExecuteNext(e)})}append(e,t,i){this.operationQueue&&this.operationQueue.append(e,t,i)}appendBlocker(e){if(this.operationQueue)return this.operationQueue.appendBlocker(e)}currentOp(e){return this.operationQueue?this.operationQueue.current(e):null}executeNext(e){e&&this.operationQueue&&this.operationQueue.executeNext(e)}shiftAndExecuteNext(e){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(e)}get pendingTrackCount(){return Object.keys(this.tracks).reduce((e,t)=>e+ +!!this.isPending(this.tracks[t]),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((e,[t])=>e+ +!!t,0)}get sourceBufferTypes(){return this.sourceBuffers.map(([e])=>e).filter(e=>!!e)}addBufferListener(e,t,i){let s=this.tracks[e];if(!s)return;let r=s.buffer;if(!r)return;let a=i.bind(this,e);s.listeners.push({event:t,listener:a}),r.addEventListener(t,a)}removeBufferListeners(e){let t=this.tracks[e];if(!t)return;let i=t.buffer;i&&(t.listeners.forEach(e=>{i.removeEventListener(e.event,e.listener)}),t.listeners.length=0)}},capLevelController:rI,errorController:class extends eh{constructor(e){super("error-controller",e.logger),this.hls=void 0,this.playlistError=0,this.hls=e,this.registerListeners()}registerListeners(){let e=this.hls;e.on(X.ERROR,this.onError,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(X.ERROR,this.onError,this),e.off(X.ERROR,this.onErrorOut,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(null==e?void 0:e.type)===ei?e.level:this.getVariantIndex()}getVariantIndex(){var e;let t=this.hls,i=t.currentLevel;return null!=(e=t.loadLevelObj)&&e.details||-1===i?t.loadLevel:i}variantHasKey(e,t){if(e){var i;if(null!=(i=e.details)&&i.hasKey(t))return!0;let s=e.audioGroups;if(s)return this.hls.allAudioTracks.filter(e=>s.indexOf(e.groupId)>=0).some(e=>{var i;return null==(i=e.details)?void 0:i.hasKey(t)})}return!1}onManifestLoading(){this.playlistError=0}onLevelUpdated(){this.playlistError=0}onError(e,t){var i,s,r;if(t.fatal)return;let a=this.hls,n=t.context;switch(t.details){case z.FRAG_LOAD_ERROR:case z.FRAG_LOAD_TIMEOUT:case z.KEY_LOAD_ERROR:case z.KEY_LOAD_TIMEOUT:t.errorAction=this.getFragRetryOrSwitchAction(t);return;case z.FRAG_PARSING_ERROR:if(null!=(i=t.frag)&&i.gap){t.errorAction=tx();return}case z.FRAG_GAP:case z.FRAG_DECRYPT_ERROR:t.errorAction=this.getFragRetryOrSwitchAction(t),t.errorAction.action=2;return;case z.LEVEL_EMPTY_ERROR:case z.LEVEL_PARSING_ERROR:{let e=t.parent===ei?t.level:a.loadLevel;t.details===z.LEVEL_EMPTY_ERROR&&null!=(s=t.context)&&null!=(s=s.levelDetails)&&s.live?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,e):(t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,e))}return;case z.LEVEL_LOAD_ERROR:case z.LEVEL_LOAD_TIMEOUT:"number"==typeof(null==n?void 0:n.level)&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,n.level));return;case z.AUDIO_TRACK_LOAD_ERROR:case z.AUDIO_TRACK_LOAD_TIMEOUT:case z.SUBTITLE_LOAD_ERROR:case z.SUBTITLE_TRACK_LOAD_TIMEOUT:if(n){let e=a.loadLevelObj;e&&(n.type===ee&&e.hasAudioGroup(n.groupId)||n.type===et&&e.hasSubtitleGroup(n.groupId))&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,a.loadLevel),t.errorAction.action=2,t.errorAction.flags=1)}return;case z.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:t.errorAction={action:2,flags:2};return;case z.KEY_SYSTEM_SESSION_UPDATE_FAILED:case z.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case z.KEY_SYSTEM_NO_SESSION:t.errorAction={action:2,flags:4};return;
71case z.BUFFER_ADD_CODEC_ERROR:case z.REMUX_ALLOC_ERROR:case z.BUFFER_APPEND_ERROR:t.errorAction||(t.errorAction=this.getLevelSwitchAction(t,null!=(r=t.level)?r:a.loadLevel));return;case z.INTERNAL_EXCEPTION:case z.BUFFER_APPENDING_ERROR:case z.BUFFER_FULL_ERROR:case z.LEVEL_SWITCH_ERROR:case z.BUFFER_STALLED_ERROR:case z.BUFFER_SEEK_OVER_HOLE:case z.BUFFER_NUDGE_ON_STALL:t.errorAction=tx();return}t.type===Q.KEY_SYSTEM_ERROR&&(t.levelRetry=!1,t.errorAction=tx())}getPlaylistRetryOrSwitchAction(e,t){let i=tM(this.hls.config.playlistLoadPolicy,e),s=this.playlistError++;if(tw(i,s,tL(e),e.response))return{action:5,flags:0,retryConfig:i,retryCount:s};let r=this.getLevelSwitchAction(e,t);return i&&(r.retryConfig=i,r.retryCount=s),r}getFragRetryOrSwitchAction(e){let t=this.hls,i=this.getVariantLevelIndex(e.frag),s=t.levels[i],{fragLoadPolicy:r,keyLoadPolicy:a}=t.config,n=tM(tk(e)?a:r,e),l=t.levels.reduce((e,t)=>e+t.fragmentError,0);if(s&&(e.details!==z.FRAG_GAP&&s.fragmentError++,!tR(e))&&tw(n,l,tL(e),e.response))return{action:5,flags:0,retryConfig:n,retryCount:l};let o=this.getLevelSwitchAction(e,i);return n&&(o.retryConfig=n,o.retryCount=l),o}getLevelSwitchAction(e,t){let i=this.hls;null==t&&(t=i.loadLevel);let s=this.hls.levels[t];if(s){var r,a,n,l;let t=e.details;s.loadError++,t===z.BUFFER_APPEND_ERROR&&s.fragmentError++;let o=-1,{levels:d,loadLevel:h,minAutoLevel:u,maxAutoLevel:c}=i;i.autoLevelEnabled||i.config.preserveManualLevelOnError||(i.loadLevel=-1);let f=null==(r=e.frag)?void 0:r.type,m=(f===es&&t===z.FRAG_PARSING_ERROR||"audio"===e.sourceBufferName&&(t===z.BUFFER_ADD_CODEC_ERROR||t===z.BUFFER_APPEND_ERROR))&&d.some(({audioCodec:e})=>s.audioCodec!==e),g="video"===e.sourceBufferName&&(t===z.BUFFER_ADD_CODEC_ERROR||t===z.BUFFER_APPEND_ERROR)&&d.some(({codecSet:e,audioCodec:t})=>s.codecSet!==e&&s.audioCodec===t),{type:p,groupId:v}=null!=(a=e.context)?a:{};for(let i=d.length;i--;){let r=(i+h)%d.length;if(r!==h&&r>=u&&r<=c&&0===d[r].loadError){let i=d[r];if(t===z.FRAG_GAP&&f===ei&&e.frag){let t=d[r].details;if(t){let i=tA(e.frag,t.fragments,e.frag.start);if(null!=i&&i.gap)continue}}else if(p===ee&&i.hasAudioGroup(v)||p===et&&i.hasSubtitleGroup(v))continue;else if(f===es&&null!=(n=s.audioGroups)&&n.some(e=>i.hasAudioGroup(e))||f===er&&null!=(l=s.subtitleGroups)&&l.some(e=>i.hasSubtitleGroup(e))||m&&s.audioCodec===i.audioCodec||g&&s.codecSet===i.codecSet||!m&&s.codecSet!==i.codecSet)continue;o=r;break}}if(o>-1&&i.loadLevel!==o)return e.levelRetry=!0,this.playlistError=0,{action:2,flags:0,nextAutoLevel:o}}return{action:2,flags:1}}onErrorOut(e,t){var i;switch(null==(i=t.errorAction)?void 0:i.action){case 0:break;case 2:this.sendAlternateToPenaltyBox(t),t.errorAction.resolved||t.details===z.FRAG_GAP?/MediaSource readyState: ended/.test(t.error.message)&&(this.warn(`MediaSource ended after "${t.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):t.fatal=!0}if(t.fatal)return void this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let t=this.hls,i=e.errorAction;if(!i)return;let{flags:s}=i,r=i.nextAutoLevel;switch(s){case 0:this.switchLevel(e,r);break;case 2:{let s=this.getVariantLevelIndex(e.frag),r=t.levels[s],a=null==r?void 0:r.attrs["HDCP-LEVEL"];if(i.hdcpLevel=a,"NONE"===a)this.warn("HDCP policy resticted output with HDCP-LEVEL=NONE");else if(a){t.maxHdcpLevel=tn[tn.indexOf(a)-1],i.resolved=!0,this.warn(`Restricting playback to HDCP-LEVEL of "${t.maxHdcpLevel}" or lower`);break}}case 4:{let t=e.decryptdata;if(t){let s=this.hls.levels,r=s.length;for(let i=r;i--;)if(this.variantHasKey(s[i],t)){var a,n;this.log(`Banned key found in level ${i} (${s[i].bitrate}bps) or audio group "${null==(a=s[i].audioGroups)?void 0:a.join(",")}" (${null==(n=e.frag)?void 0:n.type} fragment) ${eb(t.keyId||[])}`),s[i].fragmentError++,s[i].loadError++,this.log(`Removing level ${i} with key error (${e.error})`),this.hls.removeLevel(i)}let l=e.frag;if(this.hls.levels.length<r)i.resolved=!0;else if(l&&l.type!==ei){let e=l.decryptdata;e&&!t.matches(e)&&(i.resolved=!0)}}}}i.resolved||this.switchLevel(e,r)}switchLevel(e,t){if(void 0!==t&&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,e.details===z.BUFFER_ADD_CODEC_ERROR&&e.mimeType&&"audiovideo"!==e.sourceBufferName)){let t=te(e.mimeType),i=this.hls.levels;for(let s=i.length;s--;)i[s][`${e.sourceBufferName}Codec`]===t&&(this.log(`Removing level ${s} for ${e.details} ("${t}" not supported)`),this.hls.removeLevel(s))}}},fpsController: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}
71registerListeners(){this.hls.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(X.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(X.MEDIA_DETACHING,this.onMediaDetaching,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 e=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=e,e&&"function"==typeof e.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod)}}onMediaDetaching(){this.media=null}checkFPS(e,t,i){let s=performance.now();if(t){if(this.lastTime){let e=s-this.lastTime,r=i-this.lastDroppedFrames,a=t-this.lastDecodedFrames,n=1e3*r/e,l=this.hls;if(l.trigger(X.FPS_DROP,{currentDropped:r,currentDecoded:a,totalDroppedFrames:i}),n>0&&r>l.config.fpsDroppedMonitoringThreshold*a){let e=l.currentLevel;l.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+e),e>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=e)&&(e-=1,l.trigger(X.FPS_DROP_LEVEL_CAPPING,{level:e,droppedLevel:l.currentLevel}),l.autoLevelCapping=e,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)}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:iy,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},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}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,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},{cueHandler:nt,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class extends so{constructor(e,t,i){super(e,t,i,"subt
71itle-stream-controller",er),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();let{hls:e}=this;e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(X.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();let{hls:e}=this;e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(X.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(e,t){this.stopLoad(),this.state=i6,this.setInterval(500),this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(e,t){this.tracksBuffered=[],super.onMediaDetaching(e,t)}onLevelLoaded(e,t){this.mainDetails=t.details}onSubtitleFragProcessed(e,t){let i,{frag:s,success:r}=t;if(this.fragContextChanged(s)||(eM(s)&&(this.fragPrevious=s),this.state=i6),!r)return;let a=this.tracksBuffered[this.currentTrackId];if(!a)return;let n=s.start;for(let e=0;e<a.length;e++)if(n>=a[e].start&&n<=a[e].end){i=a[e];break}let l=s.start+s.duration;i?i.end=l:(i={start:n,end:l},a.push(i)),this.fragmentTracker.fragBuffered(s),this.fragBufferedComplete(s,null),this.media&&this.tick()}onBufferFlushing(e,t){let{startOffset:i,endOffset:s}=t;if(0===i&&s!==1/0){let e=s-1;if(e<=0)return;t.endOffsetSubtitles=Math.max(0,e),this.tracksBuffered.forEach(t=>{for(let i=0;i<t.length;){if(t[i].end<=e){t.shift();continue}if(t[i].start<e)t[i].start=e;else break;i++}}),this.fragmentTracker.removeFragmentsInRange(i,e,er)}}onError(e,t){let i=t.frag;(null==i?void 0:i.type)===er&&(t.details===z.FRAG_GAP&&this.fragmentTracker.fragBuffered(i,!0),this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==i8&&(this.state=i6))}onSubtitleTracksUpdated(e,{subtitleTracks:t}){if(this.levels&&rg(this.levels,t)){this.levels=t.map(e=>new th(e));return}this.tracksBuffered=[],this.levels=t.map(e=>{let t=new th(e);return this.tracksBuffered[t.id]=[],t}),this.fragmentTracker.removeFragmentsInRange(0,1/0,er),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(e,t){var i;if(this.currentTrackId=t.id,!(null!=(i=this.levels)&&i.length)||-1===this.currentTrackId)return void this.clearInterval();let s=this.levels[this.currentTrackId];null!=s&&s.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,s&&this.state!==i8&&this.setInterval(500)}onSubtitleTrackLoaded(e,t){var i,s;let{currentTrackId:r,levels:a}=this,{details:n,id:l}=t;if(!a)return void this.warn(`Subtitle tracks were reset while loading level ${l}`);let o=a[l];if(l>=a.length||!o)return;this.log(`Subtitle track ${l} loaded [${n.startSN},${n.endSN}]${n.lastPartSn?`[part-${n.lastPartSn}-${n.lastPartIndex}]`:""},duration:${n.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let d=0;if(n.live||null!=(i=o.details)&&i.live){if(n.deltaUpdateFailed)return;let e=this.mainDetails;if(!e){this.startFragRequested=!1;return}let t=e.fragments[0];o.details?0===(d=this.alignPlaylists(n,o.details,null==(s=this.levelLastLoaded)?void 0:s.details))&&t&&iK(n,d=t.start):n.hasProgramDateTime&&e.hasProgramDateTime?(i2(n,e),d=n.fragmentStart):t&&iK(n,d=t.start),e&&!this.startFragRequested&&this.setStartPosition(e,d)}o.details=n,this.levelLastLoaded=o,l===r&&(this.hls.trigger(X.SUBTITLE_TRACK_UPDATED,{details:n,id:l,groupId:t.groupId}),this.tick(),n.live&&!this.fragCurrent&&this.media&&this.state===i6&&(tA(null,n.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),o.details=void 0)))}_handleFragmentLoadComplete(e){let{frag:t,payload:i}=e,s=t.decryptdata,r=this.hls;if(!this.fragContextChanged(t)&&i&&i.byteLength>0&&null!=s&&s.key&&s.iv&&ie(s.method)){let e=performance.now();
71this.decrypter.decrypt(new Uint8Array(i),s.key.buffer,s.iv.buffer,it(s.method)).catch(e=>{throw r.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:t}),e}).then(i=>{let s=performance.now();r.trigger(X.FRAG_DECRYPTED,{frag:t,payload:i,stats:{tstart:e,tdecrypt:s}})}).catch(e=>{this.warn(`${e.name}: ${e.message}`),this.state=i6})}}doTick(){if(!this.media){this.state=i6;return}if(this.state===i6){let{currentTrackId:e,levels:t}=this,i=null==t?void 0:t[e];if(!i||!t.length||!i.details||this.waitForLive(i))return;let{config:s}=this,r=this.getLoadPosition(),{end:a,len:n}=tJ.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],r,s.maxBufferHole),l=i.details;if(n>this.hls.maxBufferLength+l.levelTargetDuration)return;let o=l.fragments,d=o.length,h=l.edge,u=null,c=this.fragPrevious;if(a<h){let e=s.maxFragLookUpTolerance;(u=tA(c,o,Math.max(o[0].start,a),a>h-e?0:e))||!c||!(c.start<o[0].start)||(u=o[0])}else u=o[d-1];if(!(u=this.filterReplacedPrimary(u,i.details)))return;let f=o[u.sn-l.startSN-1];if(f&&f.cc===u.cc&&this.fragmentTracker.getState(f)===tP&&(u=f),this.fragmentTracker.getState(u)===tP){let e=this.mapToInitFragWhenRequired(u);e&&this.loadFragment(e,i,a)}}}loadFragment(e,t,i){eM(e)?super.loadFragment(e,t,i):this._loadInitSegment(e,t)}get mediaBufferTimeRanges(){return new ay(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class extends rm{constructor(e){super(e,"subtitle-track-controller"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let e=null,t=an(this.media.textTracks);for(let i=0;i<t.length;i++)if("hidden"===t[i].mode)e=t[i];else if("showing"===t[i].mode){e=t[i];break}let i=this.findTrackForTextTrack(e);this.subtitleTrack!==i&&this.setSubtitleTrack(i)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVEL_LOADING,this.onLevelLoading,this),e.off(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(X.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(X.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.onTextTracksChanged,e)}onMediaDetaching(e,t){let i=this.media;if(!i)return;let s=!!t.transferMedia;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||i.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),this.subtitleTrack=-1,this.media=null,s||an(i.textTracks).forEac
71h(e=>{ar(e)})}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.subtitleTracks}onSubtitleTrackLoaded(e,t){let{id:i,groupId:s,details:r}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==s)return void this.warn(`Subtitle track with id:${i} and group:${s} not found in active group ${null==a?void 0:a.groupId}`);let n=a.details;a.details=t.details,this.log(`Subtitle track ${i} "${a.name}" lang:${a.lang} group:${s} loaded [${r.startSN}-${r.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,n)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!t)return;let i=t.subtitleGroups||null,s=this.groupIds,r=this.currentTrack;if(!i||(null==s?void 0:s.length)!==(null==i?void 0:i.length)||null!=i&&i.some(e=>(null==s?void 0:s.indexOf(e))===-1)){this.groupIds=i,this.trackId=-1,this.currentTrack=null;let e=this.tracks.filter(e=>!i||-1!==i.indexOf(e.groupId));if(e.length)this.selectDefaultTrack&&!e.some(e=>e.default)&&(this.selectDefaultTrack=!1),e.forEach((e,t)=>{e.id=t});else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=e;let t=this.hls.config.subtitlePreference;if(!r&&t){this.selectDefaultTrack=!1;let i=tp(t,e);if(i>-1)r=e[i];else{let e=tp(t,this.tracks);r=this.tracks[e]}}let s=this.findTrackId(r);-1===s&&r&&(s=this.findTrackId(null)),this.log(`Updating subtitle tracks, ${e.length} track(s) found in "${null==i?void 0:i.join(",")}" group-id`),this.hls.trigger(X.SUBTITLE_TRACKS_UPDATED,{subtitleTracks:e}),-1!==s&&-1===this.trackId&&this.setSubtitleTrack(s)}}findTrackId(e){let t=this.tracksInGroup,i=this.selectDefaultTrack;for(let s=0;s<t.length;s++){let r=t[s];if((!i||r.default)&&(i||e)&&(!e||tv(r,e)))return s}if(e){for(let i=0;i<t.length;i++){let s=t[i];if(rp(e.attrs,s.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return i}for(let i=0;i<t.length;i++){let s=t[i];if(rp(e.attrs,s.attrs,["LANGUAGE"]))return i}}return -1}findTrackForTextTrack(e){if(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++)if(rv(t[i],e))return i}return -1}onError(e,t){!t.fatal&&t.context&&(t.context.type!==et||t.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(t.context.groupId)||this.checkRetry(t))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){if(-1===e.id)return this.setSubtitleTrack(-1),null;let t=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,t.length){let i=this.currentTrack;if(i&&tv(e,i))return i;let s=tp(e,this.tracksInGroup);if(s>-1){let e=this.tracksInGroup[s];return this.setSubtitleTrack(s),e}{if(i)return null;let s=tp(e,t);if(s>-1)return t[s]}}}return null}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentTrack)&&this.scheduleLoading(this.currentTrack,e)}loadingPlaylist(e,t){super.loadingPlaylist(e,t);let i=e.id,s=e.groupId,r=this.getUrlWithDirectives(e.url,t),a=e.details,n=null==a?void 0:a.age;this.log(`Loading subtitle ${i} "${e.name}" lang:${e.lang} group:${s}${(null==t?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""}${n&&a.live?" age "+n.toFixed(1)+(a.type?" "+a.type:""):""} ${r}`),this.hls.trigger(X.SUBTITLE_TRACK_LOADING,{url:r,id:i,groupId:s,deliveryDirectives:t||null,track:e})}toggleTrackModes(){let e,{media:t}=this;if(!t)return;let i=an(t.textTracks),s=this.currentTrack;if(s&&((e=i.filter(e=>rv(s,e))[0])||this.warn(`Unable to find subtitle TextTrack with name "${s.name}" and language "${s.lang}"`)),[].slice.call(i).forEach(t=>{"disabled"!==t.mode&&t!==e&&(t.mode="disabled")}),e){let t=this.subtitleDisplay?"showing":"hidden";e.mode!==t&&(e.mode=t)}}setSubtitleTrack(e){let t=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=e;return}if(e<-1||e>=t.length||!j(e))return void this.warn(`Invalid subtitle track id: ${e}`);this.selectDefaultTrack=!1;let i=this.currentTrack,s=t[e]||null;if(this.trackId=e,this.currentTrack=s,this.toggleTrackModes(),!s)return void this.hls.trigger(X.SUBTITLE_TRACK_SWITCH,{id:e});let r=!!s.details&&!s.details.live;if(e===this.trackId&&s===i&&r)return;this.log(`Switching to subtitle-track ${e}`+(s?` "${s.name}" lang:${s.lang} group:${s.groupId}`:""));let{id:a,groupId:n="",name:l,type:o,url:d}=s;this.hls.trigger(X.SUBTITLE_TRACK_SWITCH,{id:a,groupId:n,name:l,type:o,url:d});let h=this.switchParams(s.url,null==i?void 0:i.details,s.details);this.loadPlaylist(h)}},timelineController:class{constructor(e){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.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=a7(),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}}
71,e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_LOADED,this.onFragLoaded,this),e.on(X.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(X.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(X.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_LOADED,this.onFragLoaded,this),e.off(X.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(X.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(X.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){let e=new a8(this,"textTrack1"),t=new a8(this,"textTrack2"),i=new a8(this,"textTrack3"),s=new a8(this,"textTrack4");this.cea608Parser1=new aO(1,e,t),this.cea608Parser2=new aO(3,i,s)}addCues(e,t,i,s,r){let a=!1;for(let e=r.length;e--;){var n,l;let s=r[e],o=(n=s[0],l=s[1],Math.min(l,i)-Math.max(n,t));if(o>=0&&(s[0]=Math.min(s[0],t),s[1]=Math.max(s[1],i),a=!0,o/(i-t)>.5))return}if(a||r.push([t,i]),this.config.renderTextTracksNatively){let r=this.captionsTracks[e];this.Cues.newCue(r,t,i,s)}else{let r=this.Cues.newCue(null,t,i,s);this.hls.trigger(X.CUES_PARSED,{type:"captions",cues:r,track:e})}}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:r,trackId:a}){let{unparsedVttFrags:n}=this;i===ei&&(this.initPTS[t.cc]={baseTime:s,timescale:r,trackId:a}),n.length&&(this.unparsedVttFrags=[],n.forEach(e=>{this.initPTS[e.frag.cc]?this.onFragLoaded(X.FRAG_LOADED,e):this.hls.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e.frag,error:Error("Subtitle discontinuity domain does not match main")})}))}getExistingTrack(e,t){let{media:i}=this;if(i)for(let s=0;s<i.textTracks.length;s++){let r=i.textTracks[s];if(a9(r,{name:e,lang:t,characteristics:"transcribes-spoken-dialog,describes-music-and-sound"}))return r}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:r,languageCode:a}=t[e],n=this.getExistingTrack(r,a);if(n)i[e]=n,ar(i[e]),ai(i[e],s);else{let t=this.createTextTrack("captions",r,a);t&&(t[e]=!0,i[e]=t)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let t=this.captionsProperties[e];if(!t)return;let i={_id:e,label:t.label,kind:"captions",default:!!t.media&&!!t.media.default,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=i,this.hls.trigger(X.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[i]})}createTextTrack(e,t,i){let s=this.media;if(s)return s.addTextTrack(e,t,i)}onMediaAttaching(e,t){this.media=t.media,t.mediaSource||this._cleanTracks()}onMediaDetaching(e,t){let i=!!t.transferMedia;if(this.media=null,i)return;let{captionsTracks:s}=this;Object.keys(s).forEach(e=>{ar(s[e]),delete s[e]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=a7(),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 e=0;e<t.length;e++)ar(t[e])}
71onSubtitleTracksUpdated(e,t){let i=t.subtitleTracks||[],s=i.some(e=>e.textCodec===az);if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(rg(this.tracks,i)){this.tracks=i;return}if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){let e=this.media,t=e?an(e.textTracks):null;if(this.tracks.forEach((e,i)=>{let s;if(t){let i=null;for(let s=0;s<t.length;s++)if(t[s]&&a9(t[s],e)){i=t[s],t[s]=null;break}i&&(s=i)}if(s)ar(s);else{let t=a6(e);(s=this.createTextTrack(t,e.name,e.lang))&&(s.mode="disabled")}s&&this.textTracks.push(s)}),null!=t&&t.length){let e=t.filter(e=>null!==e).map(e=>e.label);e.length&&this.hls.logger.warn(`Media element contains unused subtitle tracks: ${e.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let e=this.tracks.map(e=>({label:e.name,kind:e.type.toLowerCase(),default:e.default,subtitleTrack:e}));this.hls.trigger(X.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:e})}}}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(e=>{let t=/(?:CC|SERVICE)([1-4])/.exec(e.instreamId);if(!t)return;let i=`textTrack${t[1]}`,s=this.captionsProperties[i];s&&(s.label=e.name,e.lang&&(s.languageCode=e.lang),s.media=e)})}closedCaptionsForLevel(e){let t=this.hls.levels[e.level];return null==t?void 0:t.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){if(this.enabled&&t.frag.type===ei){var i,s;let{cea608Parser1:e,cea608Parser2:r,lastSn:a}=this,{cc:n,sn:l}=t.frag,o=null!=(i=null==(s=t.part)?void 0:s.index)?i:-1;e&&r&&(l!==a+1||l===a&&o!==this.lastPartIndex+1||n!==this.lastCc)&&(e.reset(),r.reset()),this.lastCc=n,this.lastSn=l,this.lastPartIndex=o}}onFragLoaded(e,t){let{frag:i,payload:s}=t;if(i.type===er)if(s.byteLength){let e=i.decryptdata,r="stats"in t;if(null==e||!e.encrypted||r){let e=this.tracks[i.level],r=this.vttCCs;r[i.cc]||(r[i.cc]={start:i.start,prevCC:this.prevCC,new:!0},this.prevCC=i.cc),e&&e.textCodec===az?this._parseIMSC1(i,s):this._parseVTTs(t)}}else this.hls.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:Error("Empty subtitle payload")})}_parseIMSC1(e,t){let i=this.hls;a0(t,this.initPTS[e.cc],t=>{this._appendCues(t,e.level),i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},t=>{i.logger.log(`Failed to parse IMSC1: ${t}`),i.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:t})})}_parseVTTs(e){var t,i,s,r,a,n,l,o;let d,h,u,c,f,m,g,p,v,{frag:E,payload:b}=e,{initPTS:y,unparsedVttFrags:T}=this,A=y.length-1;if(!y[E.cc]&&-1===A)return void T.push(e);let S=this.hls;i=null!=(t=E.initSegment)&&t.data?ej(E.initSegment.data,new Uint8Array(b)).buffer:b,s=this.initPTS[E.cc],r=this.vttCCs,a=E.cc,n=E.start,l=e=>{this._appendCues(e,E.level),S.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:E})},o=t=>{let i="Missing initPTS for VTT MPEGTS"===t.message;i?T.push(e):this._fallbackToIMSC1(E,b),S.logger.log(`Failed to parse VTT cue: ${t}`),i&&A>E.cc||S.trigger(X.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:E,error:t})},h=new aW,u=eE(new Uint8Array(i)).trim().replace(aK,"\n").split("\n"),c=[],f=s?function(e,t=1){return s4(e,9e4,1/t)}(s.baseTime,s.timescale):0,m="00:00.000",g=0,p=0,v=!0,h.oncue=function(e){let t=r[a],i=r.ccOffset,l=(g-f)/9e4;if(null!=t&&t.new&&(void 0!==p?i=r.ccOffset=t.start:aQ(r,a,l)),l){if(!s){d=Error("Missing initPTS for VTT MPEGTS");return}i=l-r.presentationOffset}let o=e.endTime-e.startTime,h=rt((e.startTime+i-p)*9e4,9e4*n)/9e4;e.startTime=Math.max(h,0),e.endTime=Math.max(h+o,0);let u=e.text.trim();e.text=decodeURIComponent(encodeURIComponent(u)),e.id||(e.id=aY(e.startTime,e.endTime,u)),e.endTime>0&&c.push(e)},h.onparsingerror=function(e){d=e},h.onflush=function(){d?o(d):l(c)},u.forEach(e=>{if(v)if(aj(e,"X-TIMESTAMP-MAP=")){v=!1,e.slice(16).split(",").forEach(e=>{aj(e,"LOCAL:")?m=e.slice(6):aj(e,"MPEGTS:")&&(g=parseInt(e.slice(7)))});try{p=aq(m)/1e3}catch(e){d=e}return}else""===e&&(v=!1);h.parse(e+"\n")}),h.flush()}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||a0(t,this.initPTS[e.cc],()=>{i.textCodec=az,this._parseIMSC1(e,t)},()=>{i.textCodec="wvtt"})}_appendCues(e,t){let i=this.hls;if(this.config.renderTextTracksNatively){let i=this.textTracks[t];if(!i||"disabled"===i.mode)return;
71e.forEach(e=>as(i,e))}else{let s=this.tracks[t];if(!s)return;let r=s.default?"default":"subtitles"+t;i.trigger(X.CUES_PARSED,{type:"subtitles",cues:e,track:r})}}onFragDecrypted(e,t){let{frag:i}=t;i.type===er&&this.onFragLoaded(X.FRAG_LOADED,t)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,t){if(!this.enabled||!this.config.enableCEA708Captions)return;let{frag:i,samples:s}=t;if(i.type!==ei||"NONE"!==this.closedCaptionsForLevel(i))for(let e=0;e<s.length;e++){let t=s[e].bytes;if(t){this.cea608Parser1||this.initCea608Parsers();let i=this.extractCea608Data(t);this.cea608Parser1.addData(s[e].pts,i[0]),this.cea608Parser2.addData(s[e].pts,i[1])}}}onBufferFlushing(e,{startOffset:t,endOffset:i,endOffsetSubtitles:s,type:r}){let{media:a}=this;if(a&&!(a.currentTime<i)){if(!r||"video"===r){let{captionsTracks:e}=this;Object.keys(e).forEach(s=>aa(e[s],t,i))}if(this.config.renderTextTracksNatively&&0===t&&void 0!==s){let{textTracks:e}=this;Object.keys(e).forEach(i=>aa(e[i],t,s))}}}extractCea608Data(e){let t=[[],[]],i=31&e[0],s=2;for(let r=0;r<i;r++){let i=e[s++],r=127&e[s++],a=127&e[s++];if((0!==r||0!==a)&&(4&i)!=0){let e=3&i;(0===e||1===e)&&(t[e].push(r),t[e].push(a))}}return t}},audioStreamController:class extends so{constructor(e,t,i){super(e,t,i,"audio-stream-controller",es),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();let{hls:e}=this;e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(X.BUFFER_RESET,this.onBufferReset,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(X.FRAG_LOADING,this.onFragLoading,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){let{hls:e}=this;e&&(super.unregisterListeners(),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(X.BUFFER_RESET,this.onBufferReset,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(X.FRAG_LOADING,this.onFragLoading,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this))}onInitPtsFound(e,{frag:t,id:i,initPTS:s,timescale:r,trackId:a}){if(i===ei){let e=t.cc,i=this.fragCurrent;if(this.initPTS[e]={baseTime:s,timescale:r,trackId:a},this.log(`InitPTS for cc: ${e} found from main: ${s/r} (${s}/${r}) trackId: ${a}`),this.mainAnchor=t,this.state===sn){let i=this.waitingData;(i||this.loadingParts)&&(!i||i.frag.cc===e)||this.syncWithAnchor(t,null==i?void 0:i.frag)}else!this.hls.hasEnoughToStart&&i&&i.cc!==e?(i.abortRequests(),this.syncWithAnchor(t,i)):this.state===i6&&this.tick()}}getLoadPosition(){return!this.startFragRequested&&this.nextLoadPosition>=0?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(e,t){var i;let s=(null==(i=this.mainFragLoading)?void 0:i.frag)||null;if(t&&(null==s?void 0:s.cc)===t.cc)return;let r=(s||e).cc,a=tI(this.getLevelDetails(),r,this.getLoadPosition());a&&(this.log(`Syncing with main frag at ${a.start} cc ${a.cc}`),this.startFragRequested=!1,this.nextLoadPosition=a.start,this.resetLoadingState(),this.state===i6&&this.doTickIdle())}
71startLoad(e,t){if(!this.levels){this.startPosition=e,this.state=i8;return}let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&-1===e?(this.log(`Override startPosition with lastCurrentTime @${i.toFixed(3)}`),e=i,this.state=i6):this.state=st,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick()}doTick(){switch(this.state){case i6:this.doTickIdle();break;case st:{let{levels:e,trackId:t}=this,i=null==e?void 0:e[t],s=null==i?void 0:i.details;if(s&&!this.waitForLive(i)){if(this.waitForCdnTuneIn(s))break;this.state=sn}break}case se:this.checkRetryDate();break;case sn:{let e=this.waitingData;if(e){let{frag:t,part:i,cache:s,complete:r}=e,a=this.mainAnchor;if(void 0!==this.initPTS[t.cc]){this.waitingData=null,this.state=i7;let e={frag:t,part:i,payload:s.flush().buffer,networkDetails:null};this._handleFragmentLoadProgress(e),r&&super._handleFragmentLoadComplete(e)}else a&&a.cc!==e.frag.cc&&this.syncWithAnchor(a,e.frag)}else this.state=i6}}this.onTickEnd()}resetLoadingState(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null),super.resetLoadingState()}onTickEnd(){let{media:e}=this;null!=e&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){var e;let{hls:t,levels:i,media:s,trackId:r}=this,a=t.config;if(!this.buffering||!s&&!this.primaryPrefetch&&(this.startFragRequested||!a.startFragPrefetch)||!(null!=i&&i[r]))return;let n=i[r],l=n.details;if(!l||this.waitForLive(n)||this.waitForCdnTuneIn(l)){this.state=st,this.startFragRequested=!1;return}let o=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&o&&(this.bufferFlushed=!1,this.afterBufferFlushed(o,eI,es));let d=this.getFwdBufferInfo(o,es);if(null===d)return;if(!this.switchingTrack&&this._streamEnded(d,l)){t.trigger(X.BUFFER_EOS,{type:"audio"}),this.state=sr;return}let h=d.len,u=t.maxBufferLength,c=l.fragments,f=c[0].start,m=this.getLoadPosition(),g=this.flushing?m:d.end;if(this.switchingTrack&&s&&l.PTSKnown&&m<f&&(d.end>f||d.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),s.currentTime=f+.05),h>=u&&!this.switchingTrack&&g<c[c.length-1].start)return;let p=this.getNextFragment(g,l);if(p&&this.isLoopLoading(p,g)&&(p=this.getNextFragmentLoopLoading(p,l,d,ei,u)),!p){this.bufferFlushed=!0;return}let v=(null==(e=this.mainFragLoading)?void 0:e.frag)||null;if(!this.audioOnly&&this.startFragRequested&&v&&eM(p)&&!p.endList&&(!l.live||!this.loadingParts&&g<this.hls.liveSyncPosition)&&("OK"===this.fragmentTracker.getState(v)&&(this.mainFragLoading=v=null),v&&eM(v))){if(p.start>v.end){let e=this.fragmentTracker.getFragAtPos(g,ei);e&&e.end>v.end&&(v=e,this.mainFragLoading={frag:e,targetBufferTime:null})}if(p.start>v.end)return}this.loadFragment(p,n,g)}onMediaDetaching(e,t){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(e,t)}onAudioTracksUpdated(e,{audioTracks:t}){this.resetTransmuxer(),this.levels=t.map(e=>new th(e))}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.switchingTrack=t,this.flushAudioIfNeeded(t),this.state!==i8&&(this.setInterval(100),this.state=i6,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=t,this.clearInterval())}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(e,t){this.mainDetails=t.details;let i=this.cachedTrackLoadedData;i&&(this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(X.AUDIO_TRACK_LOADED,i))}onAudioTrackLoaded(e,t){var i,s;let{levels:r}=this,{details:a,id:n,groupId:l,track:o}=t;if(!r)return void this.warn(`Audio tracks reset while loading track ${n} "${o.name}" of "${l}"`);let d=this.mainDetails;if(!d||a.endCC>d.endCC||d.expired){this.cachedTrackLoadedData=t,this.state!==i8&&(this.state=st);return}this.cachedTrackLoadedData=null,this.log(`Audio track ${n} "${o.name}" of "${l}" loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`);let h=r[n],u=0;if(a.live||null!=(i=h.details)&&i.live){if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;h.details&&(u=this.alignPlaylists(a,h.details,null==(s=this.levelLastLoaded)?void 0:s.details)),a.alignedSliding||(i1(a,d),a.alignedSliding||i2(a,d),u=a.fragmentStart)}h.details=a,this.levelLastLoaded=h,this.startFragRequested||this.setStartPosition(d,u),this.hls.trigger(X.AUDIO_TRACK_UPDATED,{details:a,id:n,groupId:t.groupId}),this.state!==st||this.waitForCdnTuneIn(a)||(this.state=i6),this.tick()}_handleFragmentLoadProgress(e){var t;let i=e.frag,{part:s,payload:r}
71=e,{config:a,trackId:n,levels:l}=this;if(!l)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let o=l[n];if(!o)return void this.warn("Audio track is undefined on fragment load progress");let d=o.details;if(!d){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(i.start);return}let h=a.defaultAudioCodec||o.audioCodec||"mp4a.40.2",u=this.transmuxer;u||(u=this.transmuxer=new rf(this.hls,es,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let c=this.initPTS[i.cc],f=null==(t=i.initSegment)?void 0:t.data;if(void 0!==c){let e=s?s.index:-1,t=new tz(i.level,i.sn,i.stats.chunkCount,r.byteLength,e,-1!==e);u.push(r,f,h,"",i,s,d.totalduration,!1,t,c)}else{this.log(`Unknown video PTS for cc ${i.cc}, waiting for video PTS before demuxing audio frag ${i.sn} of [${d.startSN} ,${d.endSN}],track ${n}`);let{cache:e}=this.waitingData=this.waitingData||{frag:i,part:s,cache:new sh,complete:!1};e.push(new Uint8Array(r)),this.state!==i8&&(this.state=sn)}}_handleFragmentLoadComplete(e){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(e,t){this.bufferFlushed=this.flushing=!1;let i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null)}onFragLoading(e,t){!this.audioOnly&&t.frag.type===ei&&eM(t.frag)&&(this.mainFragLoading=t,this.state===i6&&this.tick())}onFragBuffered(e,t){let{frag:i,part:s}=t;if(i.type!==es){this.audioOnly||i.type!==ei||i.elementaryStreams.video||i.elementaryStreams.audiovideo||(this.audioOnly=!0,this.mainFragLoading=null);return}if(this.fragContextChanged(i))return void 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"}`);if(eM(i)){this.fragPrevious=i;let e=this.switchingTrack;e&&(this.bufferedTrack=e,this.switchingTrack=null,this.hls.trigger(X.AUDIO_TRACK_SWITCHED,ed({},e)))}this.fragBufferedComplete(i,s),this.media&&this.tick()}onError(e,t){var i;if(t.fatal){this.state=sa;return}switch(t.details){case z.FRAG_GAP:case z.FRAG_PARSING_ERROR:case z.FRAG_DECRYPT_ERROR:case z.FRAG_LOAD_ERROR:case z.FRAG_LOAD_TIMEOUT:case z.KEY_LOAD_ERROR:case z.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(es,t);break;case z.AUDIO_TRACK_LOAD_ERROR:case z.AUDIO_TRACK_LOAD_TIMEOUT:case z.LEVEL_PARSING_ERROR:t.levelRetry||this.state!==st||(null==(i=t.context)?void 0:i.type)!==ee||(this.state=i6);break;case z.BUFFER_ADD_CODEC_ERROR:case z.BUFFER_APPEND_ERROR:if("audio"!==t.parent)return;this.reduceLengthAndFlushBuffer(t)||this.resetLoadingState();break;case z.BUFFER_FULL_ERROR:if("audio"!==t.parent)return;this.reduceLengthAndFlushBuffer(t)&&(this.bufferedTrack=null,super.flushMainBuffer(0,1/0,"audio"));break;case z.INTERNAL_EXCEPTION:this.recoverWorkerError(t)}}onBufferFlushing(e,{type:t}){t!==eL&&(this.flushing=!0)}onBufferFlushed(e,{type:t}){if(t!==eL){this.flushing=!1,this.bufferFlushed=!0,this.state===sr&&(this.state=i6);let e=this.mediaBuffer||this.media;e&&(this.afterBufferFlushed(e,t,es),this.tick())}}_handleTransmuxComplete(e){var t;let i="audio",{hls:s}=this,{remuxResult:r,chunkMeta:a}=e,n=this.getCurrentContext(a);if(!n)return void this.resetWhenMissingContext(a);let{frag:l,part:o,level:d}=n,{details:h}=d,{audio:u,text:c,id3:f,initSegment:m}=r;if(this.fragContextChanged(l)||!h)return void this.fragmentTracker.removeFragment(l);if(this.state=si,this.switchingTrack&&u&&this.completeAudioSwitch(this.switchingTrack),null!=m&&m.tracks){let e=l.initSegment||l;if(this.unhandledEncryptionError(m,l))return;this._bufferInitSegment(d,m.tracks,e,a),s.trigger(X.FRAG_PARSING_INIT_SEGMENT,{frag:e,id:i,tracks:m.tracks})}if(u){let{startPTS:e,endPTS:t,startDTS:i,endDTS:s}=u;o&&(o.elementaryStreams[eI]={startPTS:e,endPTS:t,startDTS:i,endDTS:s}),l.setElementaryStreamInfo(eI,e,t,i,s),this.bufferFragmentData(u,l,o,a)}if(null!=f&&null!=(t=f.samples)&&t.length){let e=el({id:i,frag:l,details:h},f);s.trigger(X.FRAG_PARSING_METADATA,e)}if(c){let e=el({id:i,frag:l,details:h},c);s.trigger(X.FRAG_PARSING_USERDATA,e)}}_bufferInitSegment(e,t,i,s){if(this.state!==si||(t.video&&delete t.video,t.audiovideo&&delete t.audiovideo,!t.audio))return;let r=t.audio;r.id=es;let a=e.audioCodec;this.log(`Init audio buffer, container:${r.container}, codecs[level/parsed]=[${a}/${r.codec}]`),a&&1===a.split(",").length&&(r.levelCodec=a),this.hls.trigger(X.BUFFER_CODECS,t);let n=r.initSegment;if(null!=n&&n.byteLength){let e={type:"audio",frag:i,part:null,chunkMeta:s,parent:i.type,data:n};this.hls.trigger(X.BUFFER_APPENDING,e)}this.tickImmediate()}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);if(this.switchingTrack||s===tP||s===tU){var r;if(eM(e))if(null!=(r=t.details)&&r.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=sn;let i=this.mainDetails;i&&i.fragmentStart!==t.details.fragmentStart&&i2(t.details,i)}else super.loadFragment(e,t,i);else this._loadInitSegment(e,t)}else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){if(this.media&&this.bufferedTrack){let{name:t,lang:i,assocLang:s,characteristics:r,audioCodec:a,channels:n}=this.bufferedTrack;tv({name:t,lang:i,assocLang:s,characteristics:r,audioCodec:a,channels:n},e,tE)||(ty(e.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,1/0,"audio"),this.bufferedTrack=null):this.bufferedTrack=e)}}completeAudioSwitch(e){let{hls:t}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,t.trigger(X.AUDIO_TRACK_SWITCHED,ed({},e))}},audioTrackController:class extends rm{constructor(e){super(e,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVEL_LOADING,this.onLevelLoading,this),e.off(X.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(X.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(X.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,t){this.tracks=t.audioTracks||[]}onAudioTrackLoaded(e,t){let{id:i,groupId:s,details:r}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==s)return void this.warn(`Audio track with id:${i} and group:${s} not found in active group ${null==a?void 0:a.groupId}`);let n=a.details;a.details=t.details,this.log(`Audio track ${i} "${a.name}" lang:${a.lang} group:${s} loaded [${r.startSN}-${r.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,n)}onLevelLoading(e,t){this.switchLevel(t.level)}onLevelSwitching(e,t){this.switchLevel(t.level)}switchLevel(e){let t=this.hls.levels[e];if(!t)return;let i=t.audioGroups||null,s=this.groupIds,r=this.currentTrack;if(!i||(null==s?void 0:s.length)!==(null==i?void 0:i.length)||null!=i&&i.some(e=>(null==s?void 0:s.indexOf(e))===-1)){this.groupIds=i,this.trackId=-1,this.currentTrack=null;let e=this.tracks.filter(e=>!i||-1!==i.indexOf(e.groupId));if(e.length)this.selectDefaultTrack&&!e.some(e=>e.default)&&(this.selectDefaultTrack=!1),e.forEach((e,t)=>
71{e.id=t});else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=e;let t=this.hls.config.audioPreference;if(!r&&t){let i=tp(t,e,tE);if(i>-1)r=e[i];else{let e=tp(t,this.tracks);r=this.tracks[e]}}let s=this.findTrackId(r);-1===s&&r&&(s=this.findTrackId(null)),this.log(`Updating audio tracks, ${e.length} track(s) found in group(s): ${null==i?void 0:i.join(",")}`),this.hls.trigger(X.AUDIO_TRACKS_UPDATED,{audioTracks:e});let n=this.trackId;if(-1!==s&&-1===n)this.setAudioTrack(s);else if(e.length&&-1===n){var a;let t=Error(`No audio track selected for current audio group-ID(s): ${null==(a=this.groupIds)?void 0:a.join(",")} track count: ${e.length}`);this.warn(t.message),this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:t})}}}onError(e,t){!t.fatal&&t.context&&(t.context.type!==ee||t.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(t.context.groupId)||this.checkRetry(t))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let t=this.hls;if(t.config.audioPreference=e,e){let r=this.allAudioTracks;
71if(this.selectDefaultTrack=!1,r.length){let a=this.currentTrack;if(a&&tv(e,a,tE))return a;let n=tp(e,this.tracksInGroup,tE);if(n>-1){let e=this.tracksInGroup[n];return this.setAudioTrack(n),e}if(a){var i,s;let a,n,l,o,d,h,u=t.loadLevel;-1===u&&(u=t.firstAutoLevel);let c=(i=t.levels,a=i[s=u],(n=i.reduce((e,t,i)=>{let s=t.uri;return(e[s]||(e[s]=[])).push(i),e},{})[a.uri]).length>1&&(s=Math.max.apply(Math,n)),l=a.videoRange,o=a.frameRate,d=a.codecSet.substring(0,4),(h=tb(i,s,t=>{if(t.videoRange!==l||t.frameRate!==o||t.codecSet.substring(0,4)!==d)return!1;let i=t.audioGroups;return tp(e,r.filter(e=>!i||-1!==i.indexOf(e.groupId)),tE)>-1}))>-1?h:tb(i,s,t=>{let i=t.audioGroups;return tp(e,r.filter(e=>!i||-1!==i.indexOf(e.groupId)),tE)>-1}));if(-1===c)return null;t.nextLoadLevel=c}if(e.channels||e.audioCodec){let t=tp(e,r);if(t>-1)return r[t]}}}return null}setAudioTrack(e){let t=this.tracksInGroup;if(e<0||e>=t.length)return void this.warn(`Invalid audio track id: ${e}`);this.selectDefaultTrack=!1;let i=this.currentTrack,s=t[e],r=s.details&&!s.details.live;if(e===this.trackId&&s===i&&r||(this.log(`Switching to audio-track ${e} "${s.name}" lang:${s.lang} group:${s.groupId} channels:${s.channels}`),this.trackId=e,this.currentTrack=s,this.hls.trigger(X.AUDIO_TRACK_SWITCHING,ed({},s)),r))return;let a=this.switchParams(s.url,null==i?void 0:i.details,s.details);this.loadPlaylist(a)}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let s=t[i];if((!this.selectDefaultTrack||s.default)&&(!e||tv(e,s,tE)))return i}if(e){let{name:i,lang:s,assocLang:r,characteristics:a,audioCodec:n,channels:l}=e;for(let e=0;e<t.length;e++)if(tv({name:i,lang:s,assocLang:r,characteristics:a,audioCodec:n,channels:l},t[e],tE))return e;for(let i=0;i<t.length;i++){let s=t[i];if(rp(e.attrs,s.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return i}for(let i=0;i<t.length;i++){let s=t[i];if(rp(e.attrs,s.attrs,["LANGUAGE"]))return i}}return -1}loadPlaylist(e){super.loadPlaylist();let t=this.currentTrack;this.shouldLoadPlaylist(t)&&ty(t.url,this.hls)&&this.scheduleLoading(t,e)}loadingPlaylist(e,t){super.loadingPlaylist(e,t);let i=e.id,s=e.groupId,r=this.getUrlWithDirectives(e.url,t),a=e.details,n=null==a?void 0:a.age;this.log(`Loading audio-track ${i} "${e.name}" lang:${e.lang} group:${s}${(null==t?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""}${n&&a.live?" age "+n.toFixed(1)+(a.type?" "+a.type:""):""} ${r}`),this.hls.trigger(X.AUDIO_TRACK_LOADING,{url:r,id:i,groupId:s,deliveryDirectives:t||null,track:e})}},emeController:r9,cmcdController: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.includeKeys=void 0,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=e=>{try{this.apply(e,{ot:"m",su:!this.initialized})}catch(e){this.hls.logger.warn("Could not generate manifest CMCD data.",e)}},this.applyFragmentData=e=>{try{let{frag:t,part:i}=e,s=this.hls.levels[t.level],r=this.getObjectType(t),a={d:1e3*(i||t).duration,ot:r};("v"===r||"a"===r||"av"==r)&&(a.br=s.bitrate/1e3,a.tb=this.getTopBandwidth(r)/1e3,a.bl=this.getBufferLength(r));let n=i?this.getNextPart(i):this.getNextFrag(t);null!=n&&n.url&&n.url!==t.url&&(a.nor=n.url),this.apply(e,a)}catch(e){this.hls.logger.warn("Could not generate segment CMCD data.",e)}},this.hls=e;const t=this.config=e.config,{cmcd:i}=t;null!=i&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||e.sessionId,this.cid=i.contentId,this.useHeaders=!0===i.useHeaders,this.includeKeys=i.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHED,this.onMediaDetached,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHED,this.onMediaDetached,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=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=null==(i=t.tracks.audio)?void 0:i.buffer,this.videoBuffer=null==(s=t.tracks.video)?void 0:s.buffer}createData(){var e;return{v:1,sf:"h",sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,t={}){el(t,this.createData());let i="i"===t.ot||"v"===t.ot||"av"===t.ot;this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),null==t.su&&(t.su=this.buffering);let{includeKeys:s}=this;s&&(t=Object.keys(t).reduce((e,i)=>(s.includes(i)&&(e[i]=t[i]),e),{}));let r={baseUrl:e.url};if(this.useHeaders){var a;e.headers||(e.headers={}),a=e.headers,el(a,function(e,t={}){let i={};return e?Object.entries(function(e,t){let i={};if(!e)return i;let s=Object.keys(e),r=t?Object.keys(t).reduce((e,i)=>{var s;
71return null==(s=t[i])||s.forEach(t=>e[t]=i),e},{}):{};return s.reduce((t,i)=>{var s;let a=rH[i]||r[i]||rF;return(null!=(s=t[a])?s:t[a]={})[i]=e[i],t},i)}(r4(e,t),null==t?void 0:t.customHeaderMap)).reduce((e,[t,i])=>{let s=rU(i,{whitespace:!1});return s&&(e[t]=s),e},i):i}(t,r))}else e.url=function(e,t,i){let s=function(e,t={}){if(!e)return"";let i=function(e,t={}){return e?encodeURIComponent(function(e,t={}){return e?rU(r4(e,t),{whitespace:!1}):""}(e,t)):""}(e,t);return`CMCD=${i}`}(t,i);if(!s)return e;if(r5.test(e))return e.replace(r5,s);let r=e.includes("?")?"&":"?";return`${e}${r}${s}`}(e.url,t,r)}getNextFrag(e){var t;let i=null==(t=this.hls.levels[e.level])?void 0:t.details;if(i){let t=e.sn-i.startSN;return i.fragments[t+1]}}getNextPart(e){var t;let{index:i,fragment:s}=e,r=null==(t=this.hls.levels[s.level])||null==(t=t.details)?void 0:t.partList;if(r){let{sn:e}=s;for(let t=r.length-1;t>=0;t--){let s=r[t];if(s.index===i&&s.fragment.sn===e)return r[t+1]}}}getObjectType(e){let{type:t}=e;return"subtitle"===t?"tt":"initSegment"===e.sn?"i":"audio"===t?"a":"main"===t?this.hls.audioTracks.length?"v":"av":void 0}getTopBandwidth(e){let t,i=0,s=this.hls;if("a"===e)t=s.audioTracks;else{let e=s.maxAutoLevel,i=e>-1?e+1:s.levels.length;t=s.levels.slice(0,i)}return t.forEach(e=>{e.bitrate>i&&(i=e.bitrate)}),i>0?i:NaN}getBufferLength(e){let t=this.media,i="a"===e?this.audioBuffer:this.videoBuffer;return i&&t?1e3*tJ.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len:NaN}createPlaylistLoader(){let{pLoader:e}=this.config,t=this.applyPlaylistData,i=e||this.config.loader;return class{constructor(e){this.loader=void 0,this.loader=new i(e)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(e,i,s){t(e),this.loader.load(e,i,s)}}}createFragmentLoader(){let{fLoader:e}=this.config,t=this.applyFragmentData,i=e||this.config.loader;return class{constructor(e){this.loader=void 0,this.loader=new i(e)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(e,i,s){t(e),this.loader.load(e,i,s)}}}},contentSteeringController:class extends eh{constructor(e){super("content-steering",e.logger),this.hls=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.registerListeners()}registerListeners(){let e=this.hls;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.ERROR,this.onError,this))}pathways(){return(this.levels||[]).reduce((e,t)=>(-1===e.indexOf(t.pathwayId)&&e.push(t.pathwayId),e),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(e){this.updatePathwayPriority(e)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1e3*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){-1!==this.reloadTimer&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}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(t=>t!==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;null!==i&&(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((null==i?void 0:i.action)===2&&1===i.flags){let e=this.levels,s=this._pathwayPriority,r=this.pathwayId;if(t.context){let{groupId:i,pathwayId:s,type:a}=t.context;i&&e?r=this.getPathwayForGroupId(i,a,r):s&&(r=s)}r in this.penalizedPathways||(this.penalizedPathways[r]=performance.now()),!s&&e&&(s=this.pathways()),s&&s.length>1&&(this.updatePathwayPriority(s),i.resolved=this.pathwayId!==r),t.details!==z.BUFFER_APPEND_ERROR||t.fatal?i.resolved||this.warn(`Could not resolve ${t.details} ("${t.error.message}") with content-steering for Pathway: ${r} levels: ${e?e.length:e} priorities: ${tc(s)} penalized: ${tc(this.penalizedPathways)}`):i.resolved=!0}}filterParsedLevels(e){this.levels=e;let t=this.getLevelsForPathway(this.pathwayId);if(0===t.length){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}getLevelsForPathway(e){return null===this.levels?[]:this.levels.filter(t=>e===t.pathwayId)}updatePathwayPriority(e){let t;this._pathwayPriority=e;let i=this.penalizedPathways,s=performance.now();
71Object.keys(i).forEach(e=>{s-i[e]>3e5&&delete i[e]});for(let s=0;s<e.length;s++){let r=e[s];if(r in i)continue;if(r===this.pathwayId)return;let a=this.hls.nextLoadLevel,n=this.hls.levels[a];if((t=this.getLevelsForPathway(r)).length>0){this.log(`Setting Pathway to "${r}"`),this.pathwayId=r,iz(t),this.hls.trigger(X.LEVELS_UPDATED,{levels:t});let e=this.hls.levels[a];n&&e&&this.levels&&(e.attrs["STABLE-VARIANT-ID"]!==n.attrs["STABLE-VARIANT-ID"]&&e.bitrate!==n.bitrate&&this.log(`Unstable Pathways change from bitrate ${n.bitrate} to ${e.bitrate}`),this.hls.nextLoadLevel=a);break}}}getPathwayForGroupId(e,t,i){let s=this.getLevelsForPathway(i).concat(this.levels||[]);for(let i=0;i<s.length;i++)if(t===ee&&s[i].hasAudioGroup(e)||t===et&&s[i].hasSubtitleGroup(e))return s[i].pathwayId;return i}clonePathways(e){let t=this.levels;if(!t)return;let i={},s={};e.forEach(e=>{let{ID:r,"BASE-ID":a,"URI-REPLACEMENT":n}=e;if(t.some(e=>e.pathwayId===r))return;let l=this.getLevelsForPathway(a).map(e=>{let t=new t5(e.attrs);t["PATHWAY-ID"]=r;let a=t.AUDIO&&`${t.AUDIO}_clone_${r}`,l=t.SUBTITLES&&`${t.SUBTITLES}_clone_${r}`;a&&(i[t.AUDIO]=a,t.AUDIO=a),l&&(s[t.SUBTITLES]=l,t.SUBTITLES=l);let o=r6(e.uri,t["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",n),d=new th({attrs:t,audioCodec:e.audioCodec,bitrate:e.bitrate,height:e.height,name:e.name,url:o,videoCodec:e.videoCodec,width:e.width});if(e.audioGroups)for(let t=1;t<e.audioGroups.length;t++)d.addGroupId("audio",`${e.audioGroups[t]}_clone_${r}`);if(e.subtitleGroups)for(let t=1;t<e.subtitleGroups.length;t++)d.addGroupId("text",`${e.subtitleGroups[t]}_clone_${r}`);return d});t.push(...l),r8(this.audioTracks,i,n,r),r8(this.subtitleTracks,s,n,r)})}loadSteeringManifest(e){let t,i=this.hls.config,s=i.loader;this.loader&&this.loader.destroy(),this.loader=new s(i);try{t=new self.URL(e)}catch(t){this.enabled=!1,this.log(`Failed to parse Steering Manifest URI: ${e}`);return}if("data:"!==t.protocol){let e=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);t.searchParams.set("_HLS_pathway",this.pathwayId),t.searchParams.set("_HLS_throughput",""+e)}let r={responseType:"json",url:t.href},a=i.steeringManifestLoadPolicy.default,n=a.errorRetry||a.timeoutRetry||{},l={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:n.maxNumRetry||0,retryDelay:n.retryDelayMs||0,maxRetryDelay:n.maxRetryDelayMs||0};this.log(`Requesting steering manifest: ${t}`),this.loader.load(r,l,{onSuccess:(e,i,s,r)=>{this.log(`Loaded steering manifest: "${t}"`);let a=e.data;if((null==a?void 0:a.VERSION)!==1)return void this.log(`Steering VERSION ${a.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=a.TTL;let{"RELOAD-URI":n,"PATHWAY-CLONES":l,"PATHWAY-PRIORITY":o}=a;if(n)try{this.uri=new self.URL(n,t).href}catch(e){this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${n}`);return}this.scheduleRefresh(this.uri||s.url),l&&this.clonePathways(l);let d={steeringManifest:a,url:t.toString()};this.hls.trigger(X.STEERING_MANIFEST_LOADED,d),o&&this.updatePathwayPriority(o)},onError:(e,t,i,s)=>{if(this.log(`Error loading steering manifest: ${e.code} ${e.text} (${t.url})`),this.stopLoad(),410===e.code){this.enabled=!1,this.log(`Steering manifest ${t.url} no longer available`);return}let r=1e3*this.timeToLoad;if(429===e.code){let e=this.loader;if("function"==typeof(null==e?void 0:e.getResponseHeader)){let t=e.getResponseHeader("Retry-After");t&&(r=1e3*parseFloat(t))}this.log(`Steering manifest ${t.url} rate limited`);return}this.scheduleRefresh(this.uri||t.url,r)},onTimeout:(e,t,i)=>{this.log(`Timeout loading steering manifest (${t.url})`),this.scheduleRefresh(this.uri||t.url)}})}scheduleRefresh(e,t=1e3*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var t;let i=null==(t=this.hls)?void 0:t.media;i&&!i.ended?this.loadSteeringManifest(e):this.scheduleRefresh(e,1e3*this.timeToLoad)},t)}},interstitialsController:class extends eh{constructor(e,t){super("interstitials",e.logger),this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1}
71,this.onSeeking=()=>{var e,t;let i=this.currentTime;if(void 0===i||this.playbackDisabled||!this.schedule)return;let s=i-this.timelinePos;if(Math.abs(s)<1/7056e5)return;let r=s<=-.01;this.timelinePos=i,this.bufferedPos=i;let a=this.playingItem;if(!a)return void this.checkBuffer();if(r&&this.schedule.resetErrorsInRange(i,i-s)&&this.updateSchedule(!0),this.checkBuffer(),r&&i<a.start||i>=a.end){let t=this.findItemIndex(a),s=this.schedule.findItemIndexAtTime(i);if(-1===s&&(s=t+(r?-1:1),this.log(`seeked ${r?"back ":""}to position not covered by schedule ${i} (resolving from ${t} to ${s})`)),!this.isInterstitial(a)&&null!=(e=this.media)&&e.paused&&(this.shouldPlay=!1),!r&&s>t){let e=this.schedule.findJumpRestrictedIndex(t+1,s);if(e>t)return void this.setSchedulePosition(e)}this.setSchedulePosition(s);return}let n=this.playingAsset;if(!n){if(this.playingLastItem&&this.isInterstitial(a)){let e=a.event.assetList[0];e&&(this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(i,e))}return}let l=n.timelineStart,o=n.duration||0;(r&&i<l||i>=l+o)&&(null!=(t=a.event)&&t.appendInPlace&&(this.clearAssetPlayers(a.event,a),this.flushFrontBuffer(i)),this.setScheduleToAssetAtTime(i,n))},this.onTimeupdate=()=>{let e=this.currentTime;if(void 0===e||this.playbackDisabled||!(e>this.timelinePos))return;this.timelinePos=e,e>this.bufferedPos&&this.checkBuffer();let t=this.playingItem;if(!t||this.playingLastItem)return;if(e>=t.end){this.timelinePos=t.end;let e=this.findItemIndex(t);this.setSchedulePosition(e+1)}let i=this.playingAsset;!i||e>=i.timelineStart+(i.duration||0)&&this.setScheduleToAssetAtTime(e,i)},this.onScheduleUpdate=(e,t)=>{let i=this.schedule;if(!i)return;let s=this.playingItem,r=i.events||[],a=i.items||[],n=i.durations,l=e.map(e=>e.identifier),o=!!(r.length||l.length);(o||t)&&this.log(`INTERSTITIALS_UPDATED (${r.length}): ${r}
72Schedule: ${a.map(e=>ap(e))} pos: ${this.timelinePos}`),l.length&&this.log(`Removed events ${l}`);let d=null,h=null;s&&(d=this.updateItem(s,this.timelinePos),this.itemsMatch(s,d)?this.playingItem=d:this.waitingItem=this.endedItem=null),this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);let u=this.bufferingItem;if(u&&(h=this.updateItem(u,this.bufferedPos),this.itemsMatch(u,h)?this.bufferingItem=h:u.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(u.event,null))),e.forEach(e=>{e.assetList.forEach(e=>{this.clearAssetPlayer(e.identifier,null)})}),this.playerQueue.forEach(e=>{if(e.interstitial.appendInPlace){let t=e.assetItem.timelineStart,i=e.timelineOffset-t;if(i)try{e.timelineOffset=t}catch(s){Math.abs(i)>.025&&this.warn(`${s} ("${e.assetId}" ${e.timelineOffset}->${t})`)}}}),o||t){if(this.hls.trigger(X.INTERSTITIALS_UPDATED,{events:r.slice(0),schedule:a.slice(0),durations:n,removedIds:l}),this.isInterstitial(s)&&l.includes(s.event.identifier)){this.warn(`Interstitial "${s.event.identifier}" removed while playing`),this.primaryFallback(s.event);return}s&&this.trimInPlace(d,s),u&&h!==d&&this.trimInPlace(h,u),this.checkBuffer()}},this.hls=e,this.HlsPlayerClass=t,this.assetListLoader=new av(e),this.schedule=new ag(this.onScheduleUpdate,e.logger),this.registerListeners()}registerListeners(){let e=this.hls;e&&(e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.on(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(X.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.on(X.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.on(X.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.on(X.BUFFER_APPENDED,this.onBufferAppended,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.BUFFERED_TO_END,this.onBufferedToEnd,this),e.on(X.MEDIA_ENDED,this.onMediaEnded,this),e.on(X.ERROR,this.onError,this),e.on(X.DESTROYING,this.onDestroying,this))}unregisterListeners(){let e=this.hls;
72e&&(e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.off(X.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(X.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.off(X.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.off(X.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.off(X.BUFFER_CODECS,this.onBufferCodecs,this),e.off(X.BUFFER_APPENDED,this.onBufferAppended,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.BUFFERED_TO_END,this.onBufferedToEnd,this),e.off(X.MEDIA_ENDED,this.onMediaEnded,this),e.off(X.ERROR,this.onError,this),e.off(X.DESTROYING,this.onDestroying,this))}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var e;null==(e=this.getBufferingPlayer())||e.resumeBuffering()}pauseBuffering(){var e;null==(e=this.getBufferingPlayer())||e.pauseBuffering()}destroy(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.schedule=this.manager=null,this.hls=this.HlsPlayerClass=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){let e=this.primaryMedia||this.media;e&&this.removeMediaListeners(e)}removeMediaListeners(e){i4(e,"play",this.onPlay),i4(e,"pause",this.onPause),i4(e,"seeking",this.onSeeking),i4(e,"timeupdate",this.onTimeupdate)}onMediaAttaching(e,t){let i=this.media=t.media;i3(i,"seeking",this.onSeeking),i3(i,"timeupdate",this.onTimeupdate),i3(i,"play",this.onPlay),i3(i,"pause",this.onPause)}onMediaAttached(e,t){let i=this.effectivePlayingItem,s=this.detachedData;if(this.detachedData=null,null===i)this.checkStart();else if(!s){this.clearScheduleState();let e=this.findItemIndex(i);this.setSchedulePosition(e)}}clearScheduleState(){this.log("clear schedule state"),this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(e,t){let i=!!t.transferMedia,s=this.media;if(this.media=null,!i&&(s&&this.removeMediaListeners(s),this.detachedData)){let e=this.getBufferingPlayer();e&&(this.log(`Removing schedule state for detachedData and ${e}`),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,e.detachMedia()),this.shouldPlay=!1}}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;let e=this,t=t=>t?e.getAssetPlayer(t.identifier):t,i=(i,r,a,n,l)=>{if(i){let o=i[r].start,d=i.event;if(d){if("playout"===r||d.timelineOccupancy!==ao.Point){let e=t(a);(null==e?void 0:e.interstitial)===d&&(o+=e.assetItem.startOffset+e[l])}}else o+=("bufferedPos"===n?s():e[n])-i.start;return o}return 0},s=()=>{let t=e.bufferedPos;return t===Number.MAX_VALUE?r("primary"):Math.max(t,0)},r=t=>{var i,s;return null!=(i=e.primaryDetails)&&i.live?e.primaryDetails.edge:(null==(s=e.schedule)?void 0:s.durations[t])||0},a=(s,r)=>{var a,n;let l=e.effectivePlayingItem;if(null!=l&&null!=(a=l.event)&&a.restrictions.skip||!e.schedule)return;e.log(`seek to ${s} "${r}"`);let o=e.effectivePlayingItem,d=e.schedule.findItemIndexAtTime(s,r),h=null==(n=e.schedule.items)?void 0:n[d],u=e.getBufferingPlayer(),c=null==u?void 0:u.interstitial,f=null==c?void 0:c.appendInPlace,m=o&&e.itemsMatch(o,h);if(o&&(f||m)){let a=t(e.playingAsset),n=(null==a?void 0:a.media)||e.primaryMedia;if(n){let t="primary"===r?n.currentTime:i(o,r,e.playingAsset,"timelinePos","currentTime"),l=s-t,d=(f?t:n.currentTime)+l;if(d>=0&&(!a||f||d<=a.duration)){n.currentTime=d;return}}}if(h){let t=s;if("primary"!==r){let e=s-h[r].start;t=h.start+e}let i=!e.isInterstitial(h);if((!e.isInterstitial(o)||o.event.appendInPlace)&&(i||h.event.appendInPlace)){let i=e.media||(f?null==u?void 0:u.media:null);i&&(i.currentTime=t)}else if(o){let a=e.findItemIndex(o);if(d>a){let t=e.schedule.findJumpRestrictedIndex(a+1,d);if(t>a)return void e.setSchedulePosition(t)}let n=0;if(i)e.timelinePos=t,e.checkBuffer();else{let e=h.event.assetList,t=s-(h[r]||h).start;for(let i=e.length;i--;){let s=e[i];if(s.duration&&t>=s.startOffset&&t<s.startOffset+s.duration){n=i;break}}}e.setSchedulePosition(d,n)}}},n=()=>{let t=e.effectivePlayingItem;if(e.isInterstitial(t))return t;let i=e.bufferingItem||e.waitingItem;return e.isInterstitial(i)?i:null},l={get bufferedEnd(){let t=e.bufferingItem||e.waitingItem,s=e.bufferingItem;if(s&&s===t){var o;return i(s,"playout",e.bufferingAsset,"bufferedPos","bufferedEnd")-s.playout.start||(null==(o=e.bufferingAsset)?void 0:o.startOffset)||0}return 0},get currentTime(){let t=n(),s=e.effectivePlayingItem;if(s&&s===t)return i(s,"playout",e.effectivePlayingAsset,"timelinePos","currentTime")-s.playout.start;return 0},set currentTime(time){let t=n(),i=e.effectivePlayingItem;i&&i===t&&a(time+i.playout.start,"playout")},get duration(){let e=n();if(e)return e.playout.end-e.playout.start;return 0},get assetPlayers(){var d;let t=null==(d=n())?void 0:d.event.assetList;if(t)return t.map(t=>e.getAssetPlayer(t.identifier));return[]},get playingIndex(){var h;let t=null==(h=n())?void 0:h.event;if(t&&e.effectivePlayingAsset)return t.findAssetIndex(e.effectivePlayingAsset);return -1},get scheduleItem(){return n()}};return this.manager={get events(){var u;return(null==(u=e.schedule)||null==(u=u.events)?void 0:u.slice(0))||[]},get schedule(){var c;return(null==(c=e.schedule)||null==(c=c.items)?void 0:c.slice(0))||[]},get interstitialPlayer(){if(n())return l;return null},get playerQueue(){return e.playerQueue.slice(0)},get bufferingAsset(){return e.bufferingAsset},get bufferingItem(){return e.bufferingItem||e.waitingItem},get bufferingIndex(){let t=e.bufferingItem||e.waitingItem;return e.findItemIndex(t)},get playingAsset(){return e.effectivePlayingAsset},get playingItem(){return e.effectivePlayingItem},get playingIndex(){let t=e.effectivePlayingItem;return e.findItemIndex(t)},primary:{get bufferedEnd(){return s()},get currentTime(){let t=e.timelinePos;return t>0?t:0},set currentTime(time){a(time,"primary")},get duration(){return r("primary")},get seekableStart(){var f;return(null==(f=e.primaryDetails)?void 0:f.fragmentStart)||0}},integrated:{get bufferedEnd(){return i(e.bufferingItem||e.waitingItem,"integrated",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return i(e.effectivePlayingItem,"integrated",e.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(time){a(time,"integrated")},get duration(){return r("integrated")},get seekableStart(){var m;return((t,i)=>{var s,r;if(0!==t&&"primary"!==i&&null!=(s=e.schedule)&&s.length){let s=e.sc
72hedule.findItemIndexAtTime(t),a=null==(r=e.schedule.items)?void 0:r[s];if(a)return t+(a[i].start-a.start)}return t})((null==(m=e.primaryDetails)?void 0:m.fragmentStart)||0,"integrated")}},skip:()=>{let t=e.effectivePlayingItem,i=null==t?void 0:t.event;if(i&&!i.restrictions.skip){let s=e.findItemIndex(t);i.appendInPlace?a(t.playout.start+t.event.duration+.001,"playout"):e.advanceAfterAssetEnded(i,s,1/0)}}}}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var e;let t=this.playingItem,i=null==(e=this.schedule)?void 0:e.items;return!!this.playbackStarted&&!!t&&!!i&&this.findItemIndex(t)===i.length-1}get playbackStarted(){return null!==this.effectivePlayingItem}get currentTime(){var e,t;if(null===this.mediaSelection)return;let i=this.waitingItem||this.playingItem;if(this.isInterstitial(i)&&!i.event.appendInPlace)return;let s=this.media;!s&&null!=(e=this.bufferingItem)&&null!=(e=e.event)&&e.appendInPlace&&(s=this.primaryMedia);let r=null==(t=s)?void 0:t.currentTime;if(void 0!==r&&j(r))return r}get primaryMedia(){var e;return this.media||(null==(e=this.detachedData)?void 0:e.media)||null}isInterstitial(e){return!!(null!=e&&e.event)}retreiveMediaSource(e,t){let i=this.getAssetPlayer(e);i&&this.transferMediaFromPlayer(i,t)}transferMediaFromPlayer(e,t){let i=e.interstitial.appendInPlace,s=e.media;if(i&&s===this.primaryMedia){if(this.bufferingAsset=null,(!t||this.isInterstitial(t)&&!t.event.appendInPlace)&&t&&s){this.detachedData={media:s};return}let i=e.transferMedia();this.log(`transfer MediaSource from ${e} ${tc(i)}`),this.detachedData=i}else t&&s&&(this.shouldPlay||(this.shouldPlay=!s.paused))}transferMediaTo(e,t){var i,s;let r;if(e.media===t)return;let a=null,n=this.hls,l=e!==n,o=l&&e.interstitial.appendInPlace,d=null==(i=this.detachedData)?void 0:i.mediaSource;if(n.media)o&&(a=n.transferMedia(),this.detachedData=a),r="Primary";else if(d){let e=this.getBufferingPlayer();e?(a=e.transferMedia(),r=`${e}`):r="detached MediaSource"}else r="detached media";if(!a){if(d)a=this.detachedData,this.log(`using detachedData: MediaSource ${tc(a)}`);else if(!this.detachedData||n.media===t){let e=this.playerQueue;e.length>1&&e.forEach(e=>{if(l&&e.interstitial.appendInPlace!==o){let t=e.interstitial;this.clearInterstitial(e.interstitial,null),t.appendInPlace=!1,t.appendInPlace&&this.warn(`Could not change append strategy for queued assets ${t}`)}}),this.hls.detachMedia(),this.detachedData={media:t}}}let h=a&&"mediaSource"in a&&(null==(s=a.mediaSource)?void 0:s.readyState)!=="closed",u=h&&a?a:t;this.log(`${h?"transfering MediaSource":"attaching media"} to ${l?e:"Primary"} from ${r} (media.currentTime: ${t.currentTime})`);let c=this.schedule;if(u===a&&c){let t=l&&e.assetId===c.assetIdAtEnd;u.overrides={duration:c.duration,endOfStream:!l||t,cueRemoval:!l}}e.attachMedia(u)}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){let e=this.schedule,t=null==e?void 0:e.events;if(!t||this.playbackDisabled||!this.media)return;-1===this.bufferedPos&&(this.bufferedPos=0);let i=this.timelinePos,s=this.effectivePlayingItem;if(-1===i){let i=this.hls.startPosition;if(this.log(ab("checkStart",i)),this.timelinePos=i,t.length&&t[0].cue.pre){let i=e.findEventIndex(t[0].identifier);this.setSchedulePosition(i)}else if(i>=0||!this.primaryLive){let t=this.timelinePos=i>0?i:0,s=e.findItemIndexAtTime(t);this.setSchedulePosition(s)}}else if(s&&!this.playingItem){let t=e.findItemIndex(s);this.setSchedulePosition(t)}}advanceAssetBuffering(e,t){let i=e.event,s=i.findAssetIndex(t),r=ac(i,s);if(i.isAssetPastPlayoutLimit(r)){if(this.schedule){var a;let t=null==(a=this.schedule.items)?void 0:a[this.findItemIndex(e)+1];t&&this.bufferedToItem(t)}}else this.bufferedToEvent(e,r)}advanceAfterAssetEnded(e,t,i){let s=ac(e,i);if(e.isAssetPastPlayoutLimit(s)){if(this.schedule){let i=this.schedule.items;if(i){let s=t+1;if(s>=i.length)return void this.setSchedulePosition(-1);let r=e.resumeTime;this.timelinePos<r&&(this.log(ab("advanceAfterAssetEnded",r)),this.timelinePos=r,e.appendInPlace&&this.advanceInPlace(r),this.checkBuffer(this.bufferedPos<r)),this.setSchedulePosition(s)}}}else{if(e.appendInPlace){let t=e.assetList[s];t&&this.advanceInPlace(t.timelineStart)}this.setSchedulePosition(t,s)}}setScheduleToAssetAtTime(e,t){let i=this.schedule;if(!i)return;let s=t.parentIdentifier,r=i.getEvent(s);if(r){let t=i.findEventIndex(s),a=i.findAssetIndex(r,e);this.advanceAfterAssetEnded(r,t,a-1)}}setSchedulePosition(e,t){var i,s,r;let a=null==(i=this.schedule)?void 0:i.items;if(!a||this.playbackDisabled)return;let n=e>=0?a[e]:null;this.log(`setSchedulePosition ${e}, ${t} (${n?ap(n):n}) pos: ${this.timelinePos}`);let l=this.waitingItem||this.playingItem,o=this.playingLastItem;if(this.isInterstitial(l)){let i=l.event,d=this.playingAsset,h=null==d?void 0:d.identifier,u=h?this.getAssetPlayer(h):null;
72if(u&&h&&(!this.eventItemsMatch(l,n)||void 0!==t&&h!==i.assetList[t].identifier)){let t=i.findAssetIndex(d);if(this.log(`INTERSTITIAL_ASSET_ENDED ${t+1}/${i.assetList.length} ${af(d)}`),this.endedAsset=d,this.playingAsset=null,this.hls.trigger(X.INTERSTITIAL_ASSET_ENDED,{asset:d,assetListIndex:t,event:i,schedule:a.slice(0),scheduleIndex:e,player:u}),l!==this.playingItem){this.itemsMatch(l,this.playingItem)&&!this.playingAsset&&this.advanceAfterAssetEnded(i,this.findItemIndex(this.playingItem),t);return}this.retreiveMediaSource(h,n),u.media&&!(null!=(s=this.detachedData)&&s.mediaSource)&&u.detachMedia()}if(!this.eventItemsMatch(l,n)&&(this.endedItem=l,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${i} ${ap(l)}`),i.hasPlayed=!0,this.hls.trigger(X.INTERSTITIAL_ENDED,{event:i,schedule:a.slice(0),scheduleIndex:e}),i.cue.once)){this.updateSchedule();let e=null==(r=this.schedule)?void 0:r.items;if(n&&e){let i=this.findItemIndex(n);this.advanceSchedule(i,e,t,l,o)}return}}this.advanceSchedule(e,a,t,l,o)}advanceSchedule(e,t,i,s,r){let a=this.schedule;if(!a)return;let n=t[e]||null,l=this.primaryMedia,o=this.playerQueue;if(o.length&&o.forEach(t=>{let i=t.interstitial,s=a.findEventIndex(i.identifier);(s<e||s>e+1)&&this.clearInterstitial(i,n)}),this.isInterstitial(n)){this.timelinePos=Math.min(Math.max(this.timelinePos,n.start),n.end);let r=n.event;if(void 0===i){i=a.findAssetIndex(r,this.timelinePos);let t=ac(r,i-1);if(r.isAssetPastPlayoutLimit(t)||r.appendInPlace&&this.timelinePos===n.end)return void this.advanceAfterAssetEnded(r,e,i);i=t}let o=this.waitingItem;this.assetsBuffered(n,l)||this.setBufferingItem(n);let d=this.preloadAssets(r,i);if(this.eventItemsMatch(n,o||s)||(this.waitingItem=n,this.log(`INTERSTITIAL_STARTED ${ap(n)} ${r.appendInPlace?"append in place":""}`),this.hls.trigger(X.INTERSTITIAL_STARTED,{event:r,schedule:t.slice(0),scheduleIndex:e})),!r.assetListLoaded)return void this.log(`Waiting for ASSET-LIST to complete loading ${r}`);if(r.assetListLoader&&(r.assetListLoader.destroy(),r.assetListLoader=void 0),!l)return void this.log(`Waiting for attachMedia to start Interstitial ${r}`);this.waitingItem=this.endedItem=null,this.playingItem=n;let h=r.assetList[i];if(!h)return void this.advanceAfterAssetEnded(r,e,i||0);if(d||(d=this.getAssetPlayer(h.identifier)),null===d||d.destroyed){let e=r.assetList.length;this.warn(`asset ${i+1}/${e} player destroyed ${r}`),(d=this.createAssetPlayer(r,h,i)).loadSource()}if(!this.eventItemsMatch(n,this.bufferingItem)&&r.appendInPlace&&this.isAssetBuffered(h))return;this.startAssetPlayer(d,i,t,e,l),this.shouldPlay&&aE(d.media)}else n?(this.resumePrimary(n,e,s),this.shouldPlay&&aE(this.hls.media)):r&&this.isInterstitial(s)&&(this.endedItem=null,this.playingItem=s,s.event.appendInPlace||this.attachPrimary(a.durations.primary,null))}get playbackDisabled(){return!1===this.hls.config.enableInterstitialPlayback}get primaryDetails(){var e;return null==(e=this.mediaSelection)?void 0:e.main.details}get primaryLive(){var e;return!!(null!=(e=this.primaryDetails)&&e.live)}resumePrimary(e,t,i){var s,r;if(this.playingItem=e,this.playingAsset=this.endedAsset=null,this.waitingItem=this.endedItem=null,this.bufferedToItem(e),this.log(`resuming ${ap(e)}`),!(null!=(s=this.detachedData)&&s.mediaSource)){let i=this.timelinePos;(i<e.start||i>=e.end)&&(i=this.getPrimaryResumption(e,t),this.log(ab("resumePrimary",i)),this.timelinePos=i),this.attachPrimary(i,e)}if(!i)return;let a=null==(r=this.schedule)?void 0:r.items;a&&(this.log(`INTERSTITIALS_PRIMARY_RESUMED ${ap(e)}`),this.hls.trigger(X.INTERSTITIALS_PRIMARY_RESUMED,{schedule:a.slice(0),scheduleIndex:t}),this.checkBuffer())}getPrimaryResumption(e,t){let i=e.start;if(this.primaryLive){let e=this.primaryDetails;if(0===t)return this.hls.startPosition;if(e&&(i<e.fragmentStart||i>e.edge))return this.hls.liveSyncPosition||-1}return i}isAssetBuffered(e){let t=this.getAssetPlayer(e.identifier);return null!=t&&t.hls?t.hls.bufferedToEnd:tJ.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=e.timelineStart+(e.duration||0)}attachPrimary(e,t,i){t?this.setBufferingItem(t):this.bufferingItem=this.playingItem,this.bufferingAsset=null;let s=this.primaryMedia;if(!s)return;let r=this.hls;r.media?this.checkBuffer():(this.transferMediaTo(r,s),i&&this.startLoadingPrimaryAt(e,i)),i||(this.log(ab("attachPrimary",e)),this.timelinePos=e,this.startLoadingPrimaryAt(e,i))}
72startLoadingPrimaryAt(e,t){var i;let s=this.hls;!s.loadingEnabled||!s.media||Math.abs(((null==(i=s.mainForwardBufferInfo)?void 0:i.start)||s.media.currentTime)-e)>.5?s.startLoad(e,t):s.bufferingEnabled||s.resumeBuffering()}onManifestLoading(){var e;this.stopLoad(),null==(e=this.schedule)||e.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(X.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(X.BUFFER_CODECS,this.onBufferCodecs,this)}onLevelUpdated(e,t){if(-1===t.level||!this.schedule)return;let i=this.hls.levels[t.level];if(!i.details)return;let s=ed(ed({},this.mediaSelection||this.altSelection),{},{main:i});this.mediaSelection=s,this.schedule.parseInterstitialDateRanges(s,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items&&this.checkStart()}onAudioTrackUpdated(e,t){let i=this.hls.audioTracks[t.id],s=this.mediaSelection;if(!s){this.altSelection=ed(ed({},this.altSelection),{},{audio:i});return}let r=ed(ed({},s),{},{audio:i});this.mediaSelection=r}onSubtitleTrackUpdated(e,t){let i=this.hls.subtitleTracks[t.id],s=this.mediaSelection;if(!s){this.altSelection=ed(ed({},this.altSelection),{},{subtitles:i});return}let r=ed(ed({},s),{},{subtitles:i});this.mediaSelection=r}onAudioTrackSwitching(e,t){let i=tg(t);this.playerQueue.forEach(({hls:e})=>e&&(e.setAudioOption(t)||e.setAudioOption(i)))}onSubtitleTrackSwitch(e,t){let i=tg(t);this.playerQueue.forEach(({hls:e})=>e&&(e.setSubtitleOption(t)||-1!==t.id&&e.setSubtitleOption(i)))}onBufferCodecs(e,t){let i=t.tracks;i&&(this.requiredTracks=i)}onBufferAppended(e,t){this.checkBuffer()}onBufferFlushed(e,t){let i=this.playingItem;if(i&&!this.itemsMatch(i,this.bufferingItem)&&!this.isInterstitial(i)){let e=this.timelinePos;this.bufferedPos=e,this.checkBuffer()}}onBufferedToEnd(e){if(!this.schedule)return;let t=this.schedule.events;if(this.bufferedPos<Number.MAX_VALUE&&t){for(let e=0;e<t.length;e++){let s=t[e];if(s.cue.post){var i;let e=this.schedule.findEventIndex(s.identifier),t=null==(i=this.schedule.items)?void 0:i[e];this.isInterstitial(t)&&this.eventItemsMatch(t,this.bufferingItem)&&this.bufferedToItem(t,0);break}}this.bufferedPos=Number.MAX_VALUE}}onMediaEnded(e){let t=this.playingItem;if(!this.playingLastItem&&t){let e=this.findItemIndex(t);this.setSchedulePosition(e+1)}else this.shouldPlay=!1}updateItem(e,t){var i;let s=null==(i=this.schedule)?void 0:i.items;return e&&s&&s[this.findItemIndex(e,t)]||null}trimInPlace(e,t){if(this.isInterstitial(e)&&e.event.appendInPlace&&t.end-e.end>.25){e.event.assetList.forEach((t,i)=>{e.event.isAssetPastPlayoutLimit(i)&&this.clearAssetPlayer(t.identifier,null)});let i=e.end+.25,s=tJ.bufferInfo(this.primaryMedia,i,0);(s.end>i||(s.nextStart||0)>i)&&(this.log(`trim buffered interstitial ${ap(e)} (was ${ap(t)})`),this.attachPrimary(i,null,!0),this.flushFrontBuffer(i))}}itemsMatch(e,t){return!!t&&(e===t||e.event&&t.event&&this.eventItemsMatch(e,t)||!e.event&&!t.event&&this.findItemIndex(e)===this.findItemIndex(t))}eventItemsMatch(e,t){var i;return!!t&&(e===t||e.event.identifier===(null==(i=t.event)?void 0:i.identifier))}findItemIndex(e,t){return e&&this.schedule?this.schedule.findItemIndex(e,t):-1}updateSchedule(e=!1){var t;let i=this.mediaSelection;i&&(null==(t=this.schedule)||t.updateSchedule(i,[],e))}checkBuffer(e){var t;let i=null==(t=this.schedule)?void 0:t.items;if(!i)return;let s=tJ.bufferInfo(this.primaryMedia,this.timelinePos,0);e&&(this.bufferedPos=this.timelinePos),e||(e=s.len<1),this.updateBufferedPos(s.end,i,e)}updateBufferedPos(e,t,i){let s=this.schedule,r=this.bufferingItem;if(this.bufferedPos>e||!s)return;if(1===t.length&&this.itemsMatch(t[0],r)){this.bufferedPos=e;return}let a=this.playingItem,n=this.findItemIndex(a),l=s.findItemIndexAtTime(e);if(this.bufferedPos<e){var o;let i=this.findItemIndex(r),s=Math.min(i+1,t.length-1),a=t[s];if((-1===l&&r&&e>=r.end||null!=(o=a.event)&&o.appendInPlace&&e+.01>=a.start)&&(l=s),this.isInterstitial(r)){let e=r.event;if(s-n>1&&!1===e.appendInPlace||0===e.assetList.length&&e.assetListLoader)return}if(this.bufferedPos=e,l>i&&l>n)this.bufferedToItem(a);else{let t=this.primaryDetails;this.primaryLive&&t&&e>t.edge-t.targetduration&&a.start<t.edge+this.hls.config.interstitialLiveLookAhead&&this.isInterstitial(a)&&this.preloadAssets(a.event,0)}}else i&&a&&!this.itemsMatch(a,r)&&(l===n?this.bufferedToItem(a):l===n+1&&this.bufferedToItem(t[l]))}assetsBuffered(e,t){return 0!==e.event.assetList.length&&!e.event.assetList.some(e=>{let i=this.getAssetPlayer(e.identifier);return!(null!=i&&i.bufferedInPlaceToEnd(t))})}setBufferingItem(e){let t=this.bufferingItem,i=this.schedule;if(!this.itemsMatch(e,t)&&i){let{items:s,events:r}=i;if(!s||!r)return t;
72let a=this.isInterstitial(e),n=this.getBufferingPlayer();this.bufferingItem=e,this.bufferedPos=Math.max(e.start,Math.min(e.end,this.timelinePos));let l=n?n.remaining:t?t.end-this.timelinePos:0;if(this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${ap(e)}`+(t?` (${l.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(a){let t=i.findAssetIndex(e.event,this.bufferedPos);e.event.assetList.forEach((e,i)=>{let s=this.getAssetPlayer(e.identifier);s&&(i===t&&s.loadSource(),s.resumeBuffering())})}else this.hls.resumeBuffering(),this.playerQueue.forEach(e=>e.pauseBuffering());this.hls.trigger(X.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:r.slice(0),schedule:s.slice(0),bufferingIndex:this.findItemIndex(e),playingIndex:this.findItemIndex(this.playingItem)})}else this.bufferingItem!==e&&(this.bufferingItem=e);return t}bufferedToItem(e,t=0){let i=this.setBufferingItem(e);if(!this.playbackDisabled){if(this.isInterstitial(e))this.bufferedToEvent(e,t);else if(null!==i){this.bufferingAsset=null;let t=this.detachedData;t&&t.mediaSource?this.attachPrimary(e.start,e,!0):this.preloadPrimary(e)}}}preloadPrimary(e){let t=this.findItemIndex(e),i=this.getPrimaryResumption(e,t);this.startLoadingPrimaryAt(i)}bufferedToEvent(e,t){let i=e.event,s=0===i.assetList.length&&!i.assetListLoader,r=i.cue.once;if(s||!r){let e=this.preloadAssets(i,t);if(null!=e&&e.interstitial.appendInPlace){let t=this.primaryMedia;t&&this.bufferAssetPlayer(e,t)}}}preloadAssets(e,t){let i=e.assetUrl,s=e.assetList.length,r=0===s&&!e.assetListLoader,a=e.cue.once;if(r){let r,a=e.timelineStart;if(e.appendInPlace){var n;let t=this.playingItem;this.isInterstitial(t)||(null==t||null==(n=t.nextEvent)?void 0:n.identifier)!==e.identifier||this.flushFrontBuffer(a+.25)}let l=0;if(!this.playingItem&&this.primaryLive&&-1===(l=this.hls.startPosition)&&(l=this.hls.liveSyncPosition||0),l&&!(e.cue.pre||e.cue.post)){let e=l-a;e>0&&(r=Math.round(1e3*e)/1e3)}if(this.log(`Load interstitial asset ${t+1}/${i?1:s} ${e}${r?` live-start: ${l} start-offset: ${r}`:""}`),i)return this.createAsset(e,0,0,a,e.duration,i);let o=this.assetListLoader.loadAssetList(e,r);o&&(e.assetListLoader=o)}else if(!a&&s){for(let i=t;i<s;i++){let t=e.assetList[i],s=this.getAssetPlayerQueueIndex(t.identifier);(-1===s||this.playerQueue[s].destroyed)&&!t.error&&this.createAssetPlayer(e,t,i)}let i=e.assetList[t];if(i){let e=this.getAssetPlayer(i.identifier);return e&&e.loadSource(),e}}return null}flushFrontBuffer(e){let t=this.requiredTracks;t&&(this.log(`Removing front buffer starting at ${e}`),Object.keys(t).forEach(t=>{this.hls.trigger(X.BUFFER_FLUSHING,{startOffset:e,endOffset:1/0,type:t})}))}getAssetPlayerQueueIndex(e){let t=this.playerQueue;for(let i=0;i<t.length;i++)if(e===t[i].assetId)return i;return -1}getAssetPlayer(e){let t=this.getAssetPlayerQueueIndex(e);return this.playerQueue[t]||null}getBufferingPlayer(){let{playerQueue:e,primaryMedia:t}=this;if(t){for(let i=0;i<e.length;i++)if(e[i].media===t)return e[i]}return null}createAsset(e,t,i,s,r,a){let n={parentIdentifier:e.identifier,identifier:`${e.identifier}-${t+1}-${al(a)}`,duration:r,startOffset:i,timelineStart:s,uri:a};return this.createAssetPlayer(e,n,t)}createAssetPlayer(e,t,i){let s=this.hls,r=s.userConfig,a=r.videoPreference,n=s.loadLevelObj||s.levels[s.currentLevel];(a||n)&&(a=el({},a),n.videoCodec&&(a.videoCodec=n.videoCodec),n.videoRange&&(a.allowedVideoRanges=[n.videoRange]));let l=s.audioTracks[s.audioTrack],o=s.subtitleTracks[s.subtitleTrack],d=0;if(this.primaryLive||e.appendInPlace){let e=this.timelinePos-t.timelineStart;if(e>1){let i=t.duration;i&&e<i&&(d=e)}}let h=t.identifier,u=ed(ed({},r),{},{maxMaxBufferLength:Math.min(180,s.config.maxMaxBufferLength),autoStartLoad:!0,startFragPrefetch:!0,primarySessionId:s.sessionId,assetPlayerId:h,abrEwmaDefaultEstimate:s.bandwidthEstimate,interstitialsController:void 0,startPosition:d,liveDurationInfinity:!1,testBandwidth:!1,videoPreference:a,audioPreference:l||r.audioPreference,subtitlePreference:o||r.subtitlePreference});e.appendInPlace&&(e.appendInPlaceStarted=!0,t.timelineStart&&(u.timelineOffset=t.timelineStart));let c=u.cmcd;null!=c&&c.sessionId&&c.contentId&&(u.cmcd=el({},c,{contentId:al(t.uri)})),this.getAssetPlayer(h)&&this.warn(`Duplicate date range identifier ${e} and asset ${h}`);let f=new am(this.HlsPlayerClass,u,e,t);this.playerQueue.push(f),e.assetList[i]=t;let m=!0,g=s=>{if(s.live){var r;let t=Error(`Interstitials MUST be VOD assets ${e}`),s={fatal:!0,type:Q.OTHER_ERROR,details:z.INTERSTITIAL_ASSET_ITEM_ER
72ROR,error:t},a=(null==(r=this.schedule)?void 0:r.findEventIndex(e.identifier))||-1;this.handleAssetItemError(s,e,a,i,t.message);return}let a=s.edge-s.fragmentStart,n=t.duration;(m||null===n||a>n)&&(m=!1,this.log(`Interstitial asset "${h}" duration change ${n} > ${a}`),t.duration=a,this.updateSchedule())};f.on(X.LEVEL_UPDATED,(e,{details:t})=>g(t)),f.on(X.LEVEL_PTS_UPDATED,(e,{details:t})=>g(t)),f.on(X.EVENT_CUE_ENTER,()=>this.onInterstitialCueEnter());let p=(e,t)=>{let i=this.getAssetPlayer(h);if(i&&t.tracks){i.off(X.BUFFER_CODECS,p),i.tracks=t.tracks;let e=this.primaryMedia;this.bufferingAsset===i.assetItem&&e&&!i.media&&this.bufferAssetPlayer(i,e)}};f.on(X.BUFFER_CODECS,p);let v=()=>{var i;let s=this.getAssetPlayer(h);if(this.log(`buffered to end of asset ${s}`),!s||!this.schedule)return;let r=this.schedule.findEventIndex(e.identifier),a=null==(i=this.schedule.items)?void 0:i[r];this.isInterstitial(a)&&this.advanceAssetBuffering(a,t)};f.on(X.BUFFERED_TO_END,v);let E=t=>()=>{if(!this.getAssetPlayer(h)||!this.schedule)return;this.shouldPlay=!0;let i=this.schedule.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,i,t)};return f.once(X.MEDIA_ENDED,E(i)),f.once(X.PLAYOUT_LIMIT_REACHED,E(1/0)),f.on(X.ERROR,(t,s)=>{if(!this.schedule)return;let r=this.getAssetPlayer(h);s.details===z.BUFFER_STALLED_ERROR?null!=r&&r.appendInPlace?this.handleInPlaceStall(e):(this.onTimeupdate(),this.checkBuffer(!0)):this.handleAssetItemError(s,e,this.schedule.findEventIndex(e.identifier),i,`Asset player error ${s.error} ${e}`)}),f.on(X.DESTROYING,()=>{if(!this.getAssetPlayer(h)||!this.schedule)return;let t=Error(`Asset player destroyed unexpectedly ${h}`),s={fatal:!0,type:Q.OTHER_ERROR,details:z.INTERSTITIAL_ASSET_ITEM_ERROR,error:t};this.handleAssetItemError(s,e,this.schedule.findEventIndex(e.identifier),i,t.message)}),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${af(t)}`),this.hls.trigger(X.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:t,assetListIndex:i,event:e,player:f}),f}clearInterstitial(e,t){this.clearAssetPlayers(e,t),e.reset()}clearAssetPlayers(e,t){e.assetList.forEach(e=>{this.clearAssetPlayer(e.identifier,t)})}resetAssetPlayer(e){let t=this.getAssetPlayerQueueIndex(e);if(-1!==t){this.log(`reset asset player "${e}" after error`);let i=this.playerQueue[t];this.transferMediaFromPlayer(i,null),i.resetDetails()}}clearAssetPlayer(e,t){let i=this.getAssetPlayerQueueIndex(e);if(-1!==i){let e=this.playerQueue[i];this.log(`clear ${e} toSegment: ${t?ap(t):t}`),this.transferMediaFromPlayer(e,t),this.playerQueue.splice(i,1),e.destroy()}}emptyPlayerQueue(){let e;for(;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[]}startAssetPlayer(e,t,i,s,r){let{interstitial:a,assetItem:n,assetId:l}=e,o=a.assetList.length,d=this.playingAsset;this.endedAsset=null,this.playingAsset=n,d&&d.identifier===l||(d&&(this.clearAssetPlayer(d.identifier,i[s]),delete d.error),this.log(`INTERSTITIAL_ASSET_STARTED ${t+1}/${o} ${af(n)}`),this.hls.trigger(X.INTERSTITIAL_ASSET_STARTED,{asset:n,assetListIndex:t,event:a,schedule:i.slice(0),scheduleIndex:s,player:e})),this.bufferAssetPlayer(e,r)}bufferAssetPlayer(e,t){var i,s;if(!this.schedule)return;let{interstitial:r,assetItem:a}=e,n=this.schedule.findEventIndex(r.identifier),l=null==(i=this.schedule.items)?void 0:i[n];if(!l)return;e.loadSource(),this.setBufferingItem(l),this.bufferingAsset=a;let o=this.getBufferingPlayer();if(o===e)return;let d=r.appendInPlace;if(d&&(null==o?void 0:o.interstitial.appendInPlace)===!1)return;let h=(null==o?void 0:o.tracks)||(null==(s=this.detachedData)?void 0:s.tracks)||this.requiredTracks;if(d&&a!==this.playingAsset){if(!e.tracks)return void this.log(`Waiting for track info before buffering ${e}`);if(h&&!ev(h,e.tracks)){let t=Error(`Asset ${af(a)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(h)}')`),i={fatal:!0,type:Q.OTHER_ERROR,details:z.INTERSTITIAL_ASSET_ITEM_ERROR,error:t},s=r.findAssetIndex(a);this.handleAssetItemError(i,r,n,s,t.message);return}}this.transferMediaTo(e,t)}handleInPlaceStall(e){let t=this.schedule,i=this.primaryMedia;if(!t||!i)return;let s=i.currentTime,r=t.findAssetIndex(e,s),a=e.assetList[r];if(a){let n=this.getAssetPlayer(a.identifier);if(n){let l=n.currentTime||s-a.timelineStart,o=n.duration-l;if(this.warn(`Stalled at ${l} of ${l+o} in ${n} ${e} (media.currentTime: ${s})`),l&&(o/i.playbackRate<.5||n.bufferedInPlaceToEnd(i))&&n.hls){let i=t.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,i,r)}}}}advanceInPlace(e){let t=this.primaryMedia;t&&t.currentTime<e&&(t.currentTime=e)}handleAssetItemError(e,t,i,s,r){if(e.details===z.BUFFER_STALLED_ERROR)return;let a=t.assetList[s]||null;if(this.warn(`INTERSTITIAL_ASSET_ERROR ${a?af(a):a} ${e.error}`),!this.schedule)return;let n=(null==a?void 0:a.identifier)||"",l=this.getAssetPlayerQueueIndex(n),o=this.playerQueue[l]||null,d=this.schedule.items,h=el({},e,{fatal:!1,errorAction:tx(!0),asset:a,assetListIndex:s,event:t,schedule:d,scheduleIndex:i,player:o});if(this.hls.trigger(X.INTERSTITIAL_ASSET_ERROR,h),!e.fatal)return;let u=this.playingAsset,c=this.bufferingAsset,f=Error(r);
72if(a&&(this.clearAssetPlayer(n,null),a.error=f),t.assetList.some(e=>!e.error))for(let e=s;e<t.assetList.length;e++)this.resetAssetPlayer(t.assetList[e].identifier);else t.error=f;this.updateSchedule(!0),t.error?this.primaryFallback(t):u&&u.identifier===n?this.advanceAfterAssetEnded(t,i,s):c&&c.identifier===n&&this.isInterstitial(this.bufferingItem)&&this.advanceAssetBuffering(this.bufferingItem,c)}primaryFallback(e){let t=e.timelineStart,i=this.effectivePlayingItem,s=this.timelinePos;if(i){this.log(`Fallback to primary from event "${e.identifier}" start: ${t} pos: ${s} playing: ${ap(i)} error: ${e.error}`),-1===s&&(s=this.hls.startPosition);let r=this.updateItem(i,s);this.itemsMatch(i,r)&&this.clearInterstitial(e,null),e.appendInPlace&&(this.attachPrimary(t,null),this.flushFrontBuffer(t))}else if(-1===s)return void this.checkStart();if(!this.schedule)return;let r=this.schedule.findItemIndexAtTime(s);this.setSchedulePosition(r)}onAssetListLoaded(e,t){var i,s,r;let a=t.event,n=a.identifier,l=t.assetListResponse.ASSETS;if(!(null!=(i=this.schedule)&&i.hasEvent(n)))return;let o=a.timelineStart,d=a.duration,h=0;l.forEach((e,t)=>{let i=parseFloat(e.DURATION);this.createAsset(a,t,h,o+h,i,e.URI),h+=i}),a.duration=h,this.log(`Loaded asset-list with duration: ${h} (was: ${d}) ${a}`);let u=this.waitingItem,c=(null==u?void 0:u.event.identifier)===n;this.updateSchedule();let f=null==(s=this.bufferingItem)?void 0:s.event;if(c){let e=this.schedule.findEventIndex(n),t=null==(r=this.schedule.items)?void 0:r[e];if(t){if(!this.playingItem&&this.timelinePos>t.end&&this.schedule.findItemIndexAtTime(this.timelinePos)!==e){a.error=Error(`Interstitial ${l.length?"no longer within playback range":"asset-list is empty"} ${this.timelinePos} ${a}`),this.log(a.error.message),this.updateSchedule(!0),this.primaryFallback(a);return}this.setBufferingItem(t)}this.setSchedulePosition(e)}else if((null==f?void 0:f.identifier)===n){let e=a.assetList[0];if(e){let t=this.getAssetPlayer(e.identifier);if(f.appendInPlace){let e=this.primaryMedia;t&&e&&this.bufferAssetPlayer(t,e)}else t&&t.loadSource()}}}onError(e,t){if(this.schedule)switch(t.details){case z.ASSET_LIST_PARSING_ERROR:case z.ASSET_LIST_LOAD_ERROR:case z.ASSET_LIST_LOAD_TIMEOUT:{let e=t.interstitial;e&&(this.updateSchedule(!0),this.primaryFallback(e));break}case z.BUFFER_STALLED_ERROR:{let e=this.endedItem||this.waitingItem||this.playingItem;if(this.isInterstitial(e)&&e.event.appendInPlace)return void this.handleInPlaceStall(e.event);this.log(`Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`),this.onTimeupdate(),this.checkBuffer(!0)}}}}});class nd extends tQ{constructor(e,t){super("gap-controller",e.logger),this.hls=void 0,this.fragmentTracker=void 0,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var e;null!=(e=this.media)&&e.seeking||(this.waiting=self.performance.now(),this.tick())},this.onMediaEnded=()=>{if(this.hls){var e;this.ended=(null==(e=this.media)?void 0:e.currentTime)||1,this.hls.trigger(X.MEDIA_ENDED,{stalled:!1})}},this.hls=e,this.fragmentTracker=t,this.registerListeners()}registerListeners(){let{hls:e}=this;e&&(e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.BUFFER_APPENDED,this.onBufferAppended,this))}unregisterListeners(){let{hls:e}=this;e&&(e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.BUFFER_APPENDED,this.onBufferAppended,this))}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(e,t){this.setInterval(100),this.mediaSource=t.mediaSource;let i=this.media=t.media;i3(i,"playing",this.onMediaPlaying),i3(i,"waiting",this.onMediaWaiting),i3(i,"ended",this.onMediaEnded)}onMediaDetaching(e,t){this.clearInterval();let{media:i}=this;i&&(i4(i,"playing",this.onMediaPlaying),i4(i,"waiting",this.onMediaWaiting),i4(i,"ended",this.onMediaEnded),this.media=null),this.mediaSource=void 0}onBufferAppended(e,t){this.buffered=t.timeRanges}get hasBuffered(){return Object.keys(this.buffered).length>0}tick(){var e;if(!(null!=(e=this.media)&&e.readyState)||!this.hasBuffered)return;let t=this.media.currentTime;this.poll(t,this.lastCurrentTime),this.lastCurrentTime=t}poll(e,t){var i,s,r;let a=null==(i=this.hls)?void 0:i.config;if(!a)return;let n=this.media;if(!n)return;let{seeking:l}=n,o=this.seeking&&!l,d=!this.seeking&&l,h=n.paused&&!l||n.ended||0===n.playbackRate;if(this.seeking=l,e!==t){t&&(this.ended=0),this.moved=!0,!l&&(this.nudgeRetry=0,a.nudgeOnVideoHole&&!h&&e>t&&this.nudgeOnVideoHole(e,t)),0===this.waiting&&this.stallResolved(e);return}if(d||o){o&&this.stallResolved(e);return}if(h){this.nudgeRetry=0,this.stallResolved(e),!this.ended&&n.ended&&this.hls&&(this.ended=e||1,this.hls.trigger(X.MEDIA_ENDED,{stalled:!1}));return}if(!tJ.getBuffered(n).length){this.nudgeRetry=0;return}let u=tJ.bufferInfo(n,e,0),c=u.nextStart||0,f=this.fragmentTracker;if(l&&f&&this.hls){let t=nh(this.hls.inFlightFragments,e),i=u.len>2,s=!c||t||c-e>2&&!f.getPartialFragment(e);
72if(i||s)return;this.moved=!1}let m=null==(s=this.hls)?void 0:s.latestLevelDetails;if(!this.moved&&null!==this.stalled&&f){if(!(u.len>0)&&!c)return;let t=Math.max(c,u.start||0)-e,i=null!=m&&m.live?2*m.targetduration:2,s=nc(e,f);if(t>0&&(t<=i||s)){n.paused||this._trySkipBufferHole(s);return}}let g=a.detectStallWithCurrentTimeMs,p=self.performance.now(),v=this.waiting,E=this.stalled;if(null===E)if(v>0&&p-v<g)E=this.stalled=v;else{this.stalled=p;return}let b=p-E;if(!l&&(b>=g||v)&&this.hls){if((null==(r=this.mediaSource)?void 0:r.readyState)==="ended"&&!(null!=m&&m.live)&&1>Math.abs(e-((null==m?void 0:m.edge)||0))){if(this.ended)return;this.ended=e||1,this.hls.trigger(X.MEDIA_ENDED,{stalled:!0});return}if(this._reportStall(u),!this.media||!this.hls)return}let y=tJ.bufferInfo(n,e,a.maxBufferHole);this._tryFixBufferStall(y,b,e)}stallResolved(e){let t=this.stalled;if(t&&this.hls&&(this.stalled=null,this.stallReported)){let i=self.performance.now()-t;this.log(`playback not stuck anymore @${e}, after ${Math.round(i)}ms`),this.stallReported=!1,this.waiting=0,this.hls.trigger(X.STALL_RESOLVED,{})}}nudgeOnVideoHole(e,t){var i;let s=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&null!=(i=this.buffered.audio)&&i.length&&s&&s.length>1&&e>s.end(0)){let i=tJ.bufferedInfo(tJ.timeRangesToArray(this.buffered.audio),e,0);if(i.len>1&&t>=i.start){let i=tJ.timeRangesToArray(s),r=tJ.bufferedInfo(i,t,0).bufferedIndex;if(r>-1&&r<i.length-1){let t=tJ.bufferedInfo(i,e,0).bufferedIndex,s=i[r].end,a=i[r+1].start;if((-1===t||t>r)&&a-s<1&&e-s<2){let i=Error(`nudging playhead to flush pipeline after video hole. currentTime: ${e} hole: ${s} -> ${a} buffered index: ${t}`);this.warn(i.message),this.media.currentTime+=1e-6;let r=nc(e,this.fragmentTracker);r&&"fragment"in r?r=r.fragment:r||(r=void 0);let n=tJ.bufferInfo(this.media,e,0);this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:i,reason:i.message,frag:r,buffer:n.len,bufferInfo:n})}}}}}_tryFixBufferStall(e,t,i){var s,r;let{fragmentTracker:a,media:n}=this,l=null==(s=this.hls)?void 0:s.config;if(!n||!a||!l)return;let o=null==(r=this.hls)?void 0:r.latestLevelDetails,d=nc(i,a);if((d||null!=o&&o.live&&i<o.fragmentStart)&&(this._trySkipBufferHole(d)||!this.media))return;let h=e.buffered,u=this.adjacentTraversal(e,i);(h&&h.length>1&&e.len>l.maxBufferHole||e.nextStart&&(e.nextStart-i<l.maxBufferHole||u))&&(t>1e3*l.highBufferWatchdogPeriod||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(e))}adjacentTraversal(e,t){let i=this.fragmentTracker,s=e.nextStart;if(i&&s){let e=i.getFragAtPos(t,ei),r=i.getFragAtPos(s,ei);if(e&&r)return r.sn-e.sn<2}return!1}_reportStall(e){let{hls:t,media:i,stallReported:s,stalled:r}=this;if(!s&&null!==r&&i&&t){this.stallReported=!0;let s=Error(`Playback stalling at @${i.currentTime} due to low buffer (${tc(e)})`);this.warn(s.message),t.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_STALLED_ERROR,fatal:!1,error:s,buffer:e.len,bufferInfo:e,stalled:{start:r}})}}_trySkipBufferHole(e){var t,i;let{fragmentTracker:s,media:r}=this,a=null==(t=this.hls)?void 0:t.config;if(!r||!s||!a)return 0;let n=r.currentTime,l=tJ.bufferInfo(r,n,0),o=n<l.start?l.start:l.nextStart;if(o&&this.hls){let t=l.len<=a.maxBufferHole,d=l.len>0&&l.len<1&&r.readyState<3,h=o-n;if(h>0&&(t||d)){if(h>a.maxBufferHole){let t=!1;if(0===n){let e=s.getAppendedFrag(0,ei);e&&o<e.end&&(t=!0)}if(!t&&e){if(!(null!=(i=this.hls.loadLevelObj)&&i.details)||nh(this.hls.inFlightFragments,o))return 0;let t=!1,r=e.end;for(;r<o;){let e=nc(r,s);if(e)r+=e.duration;else{t=!0;break}}if(t)return 0}}let t=Math.max(o+.05,n+.1);if(this.warn(`skipping hole, adjusting currentTime from ${n} to ${t}`),this.moved=!0,r.currentTime=t,!(null!=e&&e.gap)){let i=Error(`fragment loaded with buffer holes, seeking from ${n} to ${t}`),s={type:Q.MEDIA_ERROR,details:z.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:i,reason:i.message,buffer:l.len,bufferInfo:l};e&&("fragment"in e?s.part=e:s.frag=e),this.hls.trigger(X.ERROR,s)}return t}}return 0}_tryNudgeBuffer(e){let{hls:t,media:i,nudgeRetry:s}=this,r=null==t?void 0:t.config;if(!i||!r)return 0;let a=i.currentTime;if(this.nudgeRetry++,s<r.nudgeMaxRetry){let n=a+(s+1)*r.nudgeOffset,l=Error(`Nudging 'currentTime' from ${a} to ${n}`);this.warn(l.message),i.currentTime=n,t.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_NUDGE_ON_STALL,error:l,fatal:!1,buffer:e.len,bufferInfo:e})}else{let i=Error(`Playhead still not moving while enough data buffered @${a} after ${r.nudgeMaxRetry} nudges`);this.error(i.message),t.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.BUFFER_STALLED_ERROR,error:i,fatal:!0,buffer:e.len,bufferInfo:e})}}}function nh(e,t){let i=nu(e.main);if(i&&i.start<=t)return i;let s=nu(e.audio);return s&&s.start<=t?s:null}function nu(e){if(!e)return null;switch(e.state){case i6:case i8:case sr:case sa:return null}return e.frag}function nc(e,t){return t.getAppendedFrag(e,ei)||t.getPartialFragment(e)}function nf(){if("u">typeof self)return self.VTTCue||self.TextTrackCue}function nm(e,t,i,s,r){let a=new e(t,i,"");try{a.value=s,r&&(a.type=r)}catch(n){a=new e(t,i,tc(r?ed({type:r},s):s))}return a}let ng=(()=>{let e=nf();try{e&&new e(0,1/0,"")}catch(e){return Number.MAX_VALUE}return 1/0})();
72class np{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.assetCue=void 0,this.onEventCueEnter=()=>{this.hls&&this.hls.trigger(X.EVENT_CUE_ENTER,{})},this.hls=e,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){let{hls:e}=this;e&&(e.on(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}_unregisterListeners(){let{hls:e}=this;e&&(e.off(X.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(X.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this))}onMediaAttaching(e,t){var i;this.media=t.media,(null==(i=t.overrides)?void 0:i.cueRemoval)===!1&&(this.removeCues=!1)}onMediaAttached(){var e;let t=null==(e=this.hls)?void 0:e.latestLevelDetails;t&&this.updateDateRangeCues(t)}onMediaDetaching(e,t){this.media=null,t.transferMedia||(this.id3Track&&(this.removeCues&&ar(this.id3Track,this.onEventCueEnter),this.id3Track=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("metadata"===i.kind&&"id3"===i.label)return ai(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(e,t){if(!this.media||!this.hls)return;let{enableEmsgMetadataCues:i,enableID3MetadataCues:s}=this.hls.config;if(!i&&!s)return;let{samples:r}=t;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=nf();if(a)for(let e=0;e<r.length;e++){let t=r[e].type;if(t===sC.emsg&&!i||!s)continue;let n=sk(r[e].data),l=r[e].pts,o=l+r[e].duration;o>ng&&(o=ng),o-l<=0&&(o=l+.25);for(let e=0;e<n.length;e++){let i=n[e];if(!sR(i)){this.updateId3CueEnds(l,t);let e=nm(a,l,o,i,t);e&&this.id3Track.addCue(e)}}}}updateId3CueEnds(e,t){var i;let s=null==(i=this.id3Track)?void 0:i.cues;if(s)for(let i=s.length;i--;){let r=s[i];r.type===t&&r.startTime<e&&r.endTime===ng&&(r.endTime=e)}}onBufferFlushing(e,{startOffset:t,endOffset:i,type:s}){let{id3Track:r,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:n,enableID3MetadataCues:l}}=a;r&&(n||l)&&aa(r,t,i,"audio"===s?e=>e.type===sC.audioId3&&l:"video"===s?e=>e.type===sC.emsg&&n:e=>e.type===sC.audioId3&&l||e.type===sC.emsg&&n)}onLevelUpdated(e,{details:t}){this.updateDateRangeCues(t,!0)}onLevelPtsUpdated(e,t){Math.abs(t.drift)>.01&&this.updateDateRangeCues(t.details)}updateDateRangeCues(e,t){var i,s;if(!this.hls||!this.media)return;let{assetPlayerId:r,timelineOffset:a,enableDateRangeMetadataCues:n,interstitialsController:l}=this.hls.config;if(!n)return;let o=nf();if(r&&a&&!l){let{fragmentStart:t,fragmentEnd:i}=e,s=this.assetCue;s?(s.startTime=t,s.endTime=i):o&&(s=this.assetCue=nm(o,t,i,{assetPlayerId:this.hls.config.assetPlayerId},"hlsjs.interstitial.asset"))&&(s.id=r,this.id3Track||(this.id3Track=this.createTrack(this.media)),this.id3Track.addCue(s),s.addEventListener("enter",this.onEventCueEnter))}if(!e.hasProgramDateTime)return;let{id3Track:d}=this,{dateRanges:h}=e,u=Object.keys(h),c=this.dateRangeCuesAppended;if(d&&t)if(null!=(i=d.cues)&&i.length){let e=Object.keys(c).filter(e=>!u.includes(e));for(let t=e.length;t--;){let i=e[t],r=null==(s=c[i])?void 0:s.cues;delete c[i],r&&Object.keys(r).forEach(e=>{let t=r[e];if(t){t.removeEventListener("enter",this.onEventCueEnter);try{d.removeCue(t)}catch(e){}}})}}else c=this.dateRangeCuesAppended={};let f=e.fragments[e.fragments.length-1];if(0!==u.length&&j(null==f?void 0:f.programDateTime)){this.id3Track||(this.id3Track=this.createTrack(this.media));for(let e=0;e<u.length;e++){let t=u[e],i=h[t],s=i.startTime,r=c[t],a=(null==r?void 0:r.cues)||{}
72,n=(null==r?void 0:r.durationKnown)||!1,d=ng,{duration:f,endDate:m}=i;if(m&&null!==f)d=s+f,n=!0;else if(i.endOnNext&&!n){let e=u.reduce((e,t)=>{if(t!==i.id){let s=h[t];if(s.class===i.class&&s.startDate>i.startDate&&(!e||i.startDate<e.startDate))return s}return e},null);e&&(d=e.startTime,n=!0)}let g=Object.keys(i.attr);for(let e=0;e<g.length;e++){let h=g[e];if("ID"===h||"CLASS"===h||"CUE"===h||"START-DATE"===h||"DURATION"===h||"END-DATE"===h||"END-ON-NEXT"===h)continue;let u=a[h];if(u)n&&!(null!=r&&r.durationKnown)?u.endTime=d:Math.abs(u.startTime-s)>.01&&(u.startTime=s,u.endTime=d);else if(o){let e=i.attr[h];("SCTE35-OUT"===h||"SCTE35-IN"===h||"SCTE35-CMD"===h)&&(e=ey(e));let r=nm(o,s,d,{key:h,data:e},sC.dateRange);r&&(r.id=t,this.id3Track.addCue(r),a[h]=r,l&&("X-ASSET-LIST"===h||"X-ASSET-URL"===h)&&r.addEventListener("enter",this.onEventCueEnter))}}c[t]={cues:a,dateRange:i,durationKnown:n}}}}}class nv{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=()=>{let{media:e}=this,t=this.levelDetails;if(!e||!t)return;this.currentTime=e.currentTime;let i=this.computeLatency();if(null===i)return;this._latency=i;let{lowLatencyMode:s,maxLiveSyncPlaybackRate:r}=this.config;if(!s||1===r||!t.live)return;let a=this.targetLatency;if(null===a)return;let n=i-a;if(n<Math.min(this.maxLatency,a+t.targetduration)&&n>.05&&this.forwardBufferLength>1){let t=Math.min(Math.min(2,Math.max(1,r)),Math.max(1,Math.round(2/(1+Math.exp(-.75*n-this.edgeStalled))*20)/20));this.changeMediaPlaybackRate(e,t)}else 1!==e.playbackRate&&0!==e.playbackRate&&this.changeMediaPlaybackRate(e,1)},this.hls=e,this.config=e.config,this.registerListeners()}get levelDetails(){var e;return(null==(e=this.hls)?void 0:e.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){let{config:e}=this;if(void 0!==e.liveMaxLatencyDuration)return e.liveMaxLatencyDuration;let t=this.levelDetails;return t?e.liveMaxLatencyDurationCount*t.targetduration:0}get targetLatency(){let e=this.levelDetails;if(null===e||null===this.hls)return null;let{holdBack:t,partHoldBack:i,targetduration:s}=e,{liveSyncDuration:r,liveSyncDurationCount:a,lowLatencyMode:n}=this.config,l=this.hls.userConfig,o=n&&i||t;return(this._targetLatencyUpdated||l.liveSyncDuration||l.liveSyncDurationCount||0===o)&&(o=void 0!==r?r:a*s),o+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,s)}set targetLatency(e){this.stallCount=0,this.config.liveSyncDuration=e,this._targetLatencyUpdated=!0}get liveSyncPosition(){let e=this.estimateLiveEdge(),t=this.targetLatency;if(null===e||null===t)return null;let i=this.levelDetails;if(null===i)return null;let s=i.edge,r=e-t-this.edgeStalled;return Math.min(Math.max(s-i.totalduration,r),s-(this.config.lowLatencyMode&&i.partTarget||i.targetduration))}get drift(){let e=this.levelDetails;return null===e?1:e.drift}get edgeStalled(){let e=this.levelDetails;if(null===e)return 0;let t=3*(this.config.lowLatencyMode&&e.partTarget||e.targetduration);return Math.max(e.age-t,0)}get forwardBufferLength(){let{media:e}=this,t=this.levelDetails;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.hls=null}registerListeners(){let{hls:e}=this;e&&(e.on(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(X.ERROR,this.onError,this))}unregisterListeners(){let{hls:e}=this;e&&(e.off(X.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(X.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(X.ERROR,this.onError,this))}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("timeupdate",this.onTimeupdate)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null)}onManifestLoading(){this._latency=null,this.stallCount=0}onLevelUpdated(e,{details:t}){t.advanced&&this.onTimeupdate(),!t.live&&this.media&&this.media.removeEventListener("timeupdate",this.onTimeupdate)}onError(e,t){var i;t.details===z.BUFFER_STALLED_ERROR&&(this.stallCount++,this.hls&&null!=(i=this.levelDetails)&&i.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"))}changeMediaPlaybackRate(e,t){var i,s;e.playbackRate!==t&&(null==(i=this.hls)||i.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${null==(s=this.targetLatency)?void 0:s.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${e.playbackRate} to ${t}`),e.playbackRate=t)}estimateLiveEdge(){let e=this.levelDetails;return null===e?null:e.edge+e.age}computeLatency(){let e=this.estimateLiveEdge();return null===e?null:e-this.currentTime}}class nE extends rm{constructor(e,t){super(e,"level-controller"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-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(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this),e.on(X.ERROR,this.onError,this)}_unregisterListeners(){let{hls:e}=this;e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this),e.off(X.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}
72stopLoad(){this._levels.forEach(e=>{e.loadError=0,e.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(e,t){this.resetLevels()}onManifestLoaded(e,t){let i=this.hls.config.preferManagedMediaSource,s=[],r={},a={},n=!1,l=!1,o=!1;t.levels.forEach(e=>{let t=e.attrs,{audioCodec:d,videoCodec:h}=e;d&&(e.audioCodec=d=e8(d,i)||void 0),h&&(h=e.videoCodec=function(e){let t=e.split(",");for(let e=0;e<t.length;e++){let i=t[e].split(".");i.length>2&&"avc1"===i[0]&&(t[e]=`avc1.${parseInt(i[1]).toString(16)}${("000"+parseInt(i[2]).toString(16)).slice(-4)}`)}return t.join(",")}(h));let{width:u,height:c,unknownCodecs:f}=e,m=(null==f?void 0:f.length)||0;if(n||(n=!!(u&&c)),l||(l=!!h),o||(o=!!d),m||d&&!this.isAudioSupported(d)||h&&!this.isVideoSupported(h))return void this.log(`Some or all CODECS not supported "${t.CODECS}"`);let{CODECS:g,"FRAME-RATE":p,"HDCP-LEVEL":v,"PATHWAY-ID":E,RESOLUTION:b,"VIDEO-RANGE":y}=t,T=`${E||"."}-`,A=`${T}${e.bitrate}-${b}-${p}-${g}-${y}-${v}`;if(r[A])if(r[A].uri===e.url||e.attrs["PATHWAY-ID"])r[A].addGroupId("audio",t.AUDIO),r[A].addGroupId("text",t.SUBTITLES);else{let t=a[A]+=1;e.attrs["PATHWAY-ID"]=Array(t+1).join(".");let i=this.createLevel(e);r[A]=i,s.push(i)}else{let t=this.createLevel(e);r[A]=t,a[A]=1,s.push(t)}}),this.filterAndSortMediaOptions(s,t,n,l,o)}createLevel(e){let t=new th(e),i=e.supplemental;if(null!=i&&i.videoCodec&&!this.isVideoSupported(i.videoCodec)){let e=Error(`SUPPLEMENTAL-CODECS not supported "${i.videoCodec}"`);this.log(e.message),t.supportedResult=ts(e,[])}return t}isAudioSupported(e){return eJ(e,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(e){return eJ(e,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(e,t,i,s,r){var a,n;let l=[],o=[],d=e,h=(null==(a=t.stats)?void 0:a.parsing)||{};if((i||s)&&r&&(d=d.filter(({videoCodec:e,videoRange:t,width:i,height:s})=>{var r;return(!!e||!!(i&&s))&&!!(r=t)&&tl.indexOf(r)>-1})),0===d.length){Promise.resolve().then(()=>{if(this.hls){let e="no level with compatible codecs found in manifest",i=e;t.levels.length&&(i=`one or more CODECS in variant not supported: ${tc(t.levels.map(e=>e.attrs.CODECS).filter((e,t,i)=>i.indexOf(e)===t))}`,this.warn(i),e+=` (${i})`);let s=Error(e);this.hls.trigger(X.ERROR,{type:Q.MEDIA_ERROR,details:z.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,error:s,reason:i})}}),h.end=performance.now();return}t.audioTracks&&nb(l=t.audioTracks.filter(e=>!e.audioCodec||this.isAudioSupported(e.audioCodec))),t.subtitles&&nb(o=t.subtitles);let u=d.slice(0);d.sort((e,t)=>{if(e.attrs["HDCP-LEVEL"]!==t.attrs["HDCP-LEVEL"])return(e.attrs["HDCP-LEVEL"]||"")>(t.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&e.height!==t.height)return e.height-t.height;if(e.frameRate!==t.frameRate)return e.frameRate-t.frameRate;if(e.videoRange!==t.videoRange)return tl.indexOf(e.videoRange)-tl.indexOf(t.videoRange);if(e.videoCodec!==t.videoCodec){let i=e2(e.videoCodec),s=e2(t.videoCodec);if(i!==s)return s-i}if(e.uri===t.uri&&e.codecSet!==t.codecSet){let i=e3(e.codecSet),s=e3(t.codecSet);if(i!==s)return s-i}return e.averageBitrate!==t.averageBitrate?e.averageBitrate-t.averageBitrate:0});let c=u[0];if(this.steering&&(d=this.steering.filterParsedLevels(d)).length!==u.length){for(let e=0;e<u.length;e++)if(u[e].pathwayId===d[0].pathwayId){c=u[e];break}}this._levels=d;for(let e=0;e<d.length;e++)if(d[e]===c){this._firstLevel=e;let t=c.bitrate,i=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${d.length} level(s) found, first bitrate: ${t}`),(null==(n=this.hls.userConfig)?void 0:n.abrEwmaDefaultEstimate)===void 0){let e=Math.min(t,this.hls.config.abrEwmaDefaultEstimateMax);e>i&&i===this.hls.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=e)}break}let f=r&&!s,m=this.hls.config,g=!!(m.audioStreamController&&m.audioTrackController),p={levels:d,audioTracks:l,subtitleTracks:o,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:r,video:s,altAudio:g&&!f&&l.some(e=>!!e.url)};h.end=performance.now(),this.hls.trigger(X.MANIFEST_PARSED,p)}get levels(){return 0===this._levels.length?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(e){let t=this._levels;if(0===t.length)return;if(e<0||e>=t.length){let i=Error("invalid level idx"),s=e<0;if(this.hls.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.LEVEL_SWITCH_ERROR,level:e,fatal:s,error:i,reason:i.message}),s)return;e=Math.min(e,t.length-1)}let i=this.currentLevelIndex,s=this.currentLevel,r=s?s.attrs["PATHWAY-ID"]:void 0,a=t[e],n=a.attrs["PATHWAY-ID"];
72if(this.currentLevelIndex=e,this.currentLevel=a,i===e&&s&&r===n)return;this.log(`Switching to level ${e} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${n?" with Pathway "+n:""} from level ${i}${r?" with Pathway "+r:""}`);let l={level:e,attrs:a.attrs,details:a.details,bitrate:a.bitrate,averageBitrate:a.averageBitrate,maxBitrate:a.maxBitrate,realBitrate:a.realBitrate,width:a.width,height:a.height,codecSet:a.codecSet,audioCodec:a.audioCodec,videoCodec:a.videoCodec,audioGroups:a.audioGroups,subtitleGroups:a.subtitleGroups,loaded:a.loaded,loadError:a.loadError,fragmentError:a.fragmentError,name:a.name,id:a.id,uri:a.uri,url:a.url,urlId:0,audioGroupIds:a.audioGroupIds,textGroupIds:a.textGroupIds};this.hls.trigger(X.LEVEL_SWITCHING,l);let o=a.details;if(!o||o.live){let e=this.switchParams(a.uri,null==s?void 0:s.details,o);this.loadPlaylist(e)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(void 0===this._startLevel){let e=this.hls.config.startLevel;return void 0!==e?e:this.hls.firstAutoLevel}return this._startLevel}set startLevel(e){this._startLevel=e}get pathways(){return this.steering?this.steering.pathways():[]}get pathwayPriority(){return this.steering?this.steering.pathwayPriority:null}set pathwayPriority(e){if(this.steering){let t=this.steering.pathways(),i=e.filter(e=>-1!==t.indexOf(e));if(e.length<1)return void this.warn(`pathwayPriority ${e} should contain at least one pathway from list: ${t}`);this.steering.pathwayPriority=i}}onError(e,t){!t.fatal&&t.context&&t.context.type===J&&t.context.level===this.level&&this.checkRetry(t)}onFragBuffered(e,{frag:t}){if(void 0!==t&&t.type===ei){let e=t.elementaryStreams;if(!Object.keys(e).some(t=>!!e[t]))return;let i=this._levels[t.level];null!=i&&i.loadError&&(this.log(`Resetting level error count of ${i.loadError} on frag buffered`),i.loadError=0)}}onLevelLoaded(e,t){var i,s;let{level:r,details:a}=t,n=t.levelInfo;if(!n){this.warn(`Invalid level index ${r}`),null!=(s=t.deliveryDirectives)&&s.skip&&(a.deltaUpdateFailed=!0);return}if(n===this.currentLevel||t.withoutMultiVariant){0===n.fragmentError&&(n.loadError=0);let e=n.details;e===t.details&&e.advanced&&(e=void 0),this.playlistLoaded(r,t,e)}else null!=(i=t.deliveryDirectives)&&i.skip&&(a.deltaUpdateFailed=!0)}loadPlaylist(e){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel)&&this.scheduleLoading(this.currentLevel,e)}loadingPlaylist(e,t){super.loadingPlaylist(e,t);let i=this.getUrlWithDirectives(e.uri,t),s=this.currentLevelIndex,r=e.attrs["PATHWAY-ID"],a=e.details,n=null==a?void 0:a.age;this.log(`Loading level index ${s}${(null==t?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""}${r?" Pathway "+r:""}${n&&a.live?" age "+n.toFixed(1)+(a.type?" "+a.type:""):""} ${i}`),this.hls.trigger(X.LEVEL_LOADING,{url:i,level:s,levelInfo:e,pathwayId:e.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}get nextLoadLevel(){return -1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}removeLevel(e){var t;if(1===this._levels.length)return;let i=this._levels.filter((t,i)=>i!==e||(this.steering&&this.steering.removeLevel(t),t===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,t.details&&t.details.fragments.forEach(e=>e.level=-1)),!1));iz(i),this._levels=i,this.currentLevelIndex>-1&&null!=(t=this.currentLevel)&&t.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.manualLevelIndex>-1&&(this.manualLevelIndex=this.currentLevelIndex);let s=i.length-1;this._firstLevel=Math.min(this._firstLevel,s),this._startLevel&&(this._startLevel=Math.min(this._startLevel,s)),this.hls.trigger(X.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(e,{levels:t}){this._levels=t}checkMaxAutoUpdated(){let{autoLevelCapping:e,maxAutoLevel:t,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==t&&(this._maxAutoLevel=t,this.hls.trigger(X.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:e,levels:this.levels,maxAutoLevel:t,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function nb(e){let t={};
72e.forEach(e=>{let i=e.groupId||"";e.id=t[i]=t[i]||0,t[i]++})}function ny(){return self.SourceBuffer||self.WebKitSourceBuffer}function nT(){if(!ep())return!1;let e=ny();return!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove}class nA extends so{constructor(e,t,i){super(e,t,i,"stream-controller",ei),this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{let e=this.media,t=e?e.currentTime:null;if(null===t||!j(t)||(this.log(`Media seeked to ${t.toFixed(3)}`),!this.getBufferedFrag(t)))return;let i=this.getFwdBufferInfoAtPos(e,t,ei,0);null===i||0===i.len?this.warn(`Main forward buffer length at ${t} on "seeked" event ${i?i.len:"empty"})`):this.tick()},this.registerListeners()}registerListeners(){super.registerListeners();let{hls:e}=this;e.on(X.MANIFEST_PARSED,this.onManifestParsed,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.LEVEL_LOADED,this.onLevelLoaded,this),e.on(X.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(X.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(X.BUFFER_CREATED,this.onBufferCreated,this),e.on(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(X.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();let{hls:e}=this;e.off(X.MANIFEST_PARSED,this.onManifestParsed,this),e.off(X.LEVEL_LOADED,this.onLevelLoaded,this),e.off(X.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(X.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(X.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(X.BUFFER_CREATED,this.onBufferCreated,this),e.off(X.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(X.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(e,t){if(this.levels){let{lastCurrentTime:i,hls:s}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let e=s.startLevel;-1===e&&(s.config.testBandwidth&&this.levels.length>1?(e=0,this.bitrateTest=!0):e=s.firstAutoLevel),s.nextLoadLevel=e,this.level=s.loadLevel,this._hasEnoughToStart=!!t}i>0&&-1===e&&!t&&(this.log(`Override startPosition with lastCurrentTime @${i.toFixed(3)}`),e=i),this.state=i6,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick()}else this._forceStartLoad=!0,this.state=i8}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case sl:{let{levels:e,level:t}=this,i=null==e?void 0:e[t],s=null==i?void 0:i.details;if(!s||s.live&&(this.levelLastLoaded!==i||this.waitForLive(i)))this.hls.nextLoadLevel!==this.level&&(this.state=i6);else{if(this.waitForCdnTuneIn(s))break;this.state=i6}break}case se:this.checkRetryDate()}this.state===i6&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){var e;super.onTickEnd(),null!=(e=this.media)&&e.readyState&&!1===this.media.seeking&&(this.lastCurrentTime=this.media.currentTime),this.checkFragmentChanged()}doTickIdle(){let{hls:e,levelLastLoaded:t,levels:i,media:s}=this;if(null===t||!s&&!this.primaryPrefetch&&(this.startFragRequested||!e.config.startFragPrefetch)||this.altAudio&&this.audioOnly)return;let r=this.buffering?e.nextLoadLevel:e.loadLevel;if(!(null!=i&&i[r]))return;let a=i[r],n=this.getMainFwdBufferInfo();if(null===n)return;let l=this.getLevelDetails();if(l&&this._streamEnded(n,l)){let e={};2===this.altAudio&&(e.type="video"),this.hls.trigger(X.BUFFER_EOS,e),this.state=sr;return}if(!this.buffering)return;e.loadLevel!==r&&-1===e.manualLevel&&this.log(`Adapting to level ${r} from level ${this.level}`),this.level=e.nextLoadLevel=r;let o=a.details;if(!o||this.state===sl||this.waitForLive(a)){this.level=r,this.state=sl,this.startFragRequested=!1;return}let d=n.len,h=this.getMaxBufferLength(a.maxBitrate);
72if(d>=h)return;this.backtrackFragment&&this.backtrackFragment.start>n.end&&(this.backtrackFragment=null);let u=this.backtrackFragment?this.backtrackFragment.start:n.end,c=this.getNextFragment(u,o);if(this.couldBacktrack&&!this.fragPrevious&&c&&eM(c)&&"OK"!==this.fragmentTracker.getState(c)){var f;let e=(null!=(f=this.backtrackFragment)?f:c).sn-o.startSN,t=o.fragments[e-1];t&&c.cc===t.cc&&(c=t,this.fragmentTracker.removeFragment(t))}else this.backtrackFragment&&n.len&&(this.backtrackFragment=null);if(c&&this.isLoopLoading(c,u)){if(!c.gap){let e=this.audioOnly&&!this.altAudio?eI:eL,t=(e===eL?this.videoBuffer:this.mediaBuffer)||this.media;t&&this.afterBufferFlushed(t,e,ei)}c=this.getNextFragmentLoopLoading(c,o,n,ei,h)}c&&(!c.initSegment||c.initSegment.data||this.bitrateTest||(c=c.initSegment),this.loadFragment(c,a,u))}loadFragment(e,t,i){let s=this.fragmentTracker.getState(e);s===tP||s===tU?eM(e)?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)):super.loadFragment(e,t,i):this._loadInitSegment(e,t):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,ei)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,1/0)}nextLevelSwitch(){let{levels:e,media:t}=this;if(null!=t&&t.readyState){let i,s=this.getAppendedFrag(t.currentTime);s&&s.start>1&&this.flushMainBuffer(0,s.start-1);let r=this.getLevelDetails();if(null!=r&&r.live){let e=this.getMainFwdBufferInfo();if(!e||e.len<2*r.targetduration)return}if(!t.paused&&e){let t=e[this.hls.nextLoadLevel],s=this.fragLastKbps;i=s&&this.fragCurrent?this.fragCurrent.duration*t.maxBitrate/(1e3*s)+1:0}else i=0;let a=this.getBufferedFrag(t.currentTime+i);if(a){let e=this.followingBufferedFrag(a);if(e){this.abortCurrentFrag();let t=e.maxStartPTS?e.maxStartPTS:e.start,i=e.duration,s=Math.max(a.end,t+Math.min(Math.max(i-this.config.maxFragLookUpTolerance,i*(this.couldBacktrack?.5:.125)),i*(this.couldBacktrack?.75:.25)));this.flushMainBuffer(s,1/0)}}}}abortCurrentFrag(){let e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case i9:case i7:case se:case si:case ss:this.state=i6}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(e,t){super.flushMainBuffer(e,t,2===this.altAudio?"video":null)}onMediaAttached(e,t){super.onMediaAttached(e,t);let i=t.media;i3(i,"playing",this.onMediaPlaying),i3(i,"seeked",this.onMediaSeeked)}onMediaDetaching(e,t){let{media:i}=this;i&&(i4(i,"playing",this.onMediaPlaying),i4(i,"seeked",this.onMediaSeeked)),this.videoBuffer=null,this.fragPlaying=null,super.onMediaDetaching(e,t),t.transferMedia||(this._hasEnoughToStart=!1)}onManifestLoading(){super.onManifestLoading(),this.log("Trigger BUFFER_RESET"),this.hls.trigger(X.BUFFER_RESET,void 0),this.couldBacktrack=!1,this.fragLastKbps=0,this.fragPlaying=this.backtrackFragment=null,this.altAudio=0,this.audioOnly=!1}onManifestParsed(e,t){var i;let s,r=!1,a=!1;for(let e=0;e<t.levels.length;e++){let i=t.levels[e].audioCodec;i&&(r=r||-1!==i.indexOf("mp4a.40.2"),a=a||-1!==i.indexOf("mp4a.40.5"))}this.audioCodecSwitch=r&&a&&"function"!=typeof(null==(s=ny())||null==(i=s.prototype)?void 0:i.changeType),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!==i6)return;let s=t.levelInfo;(!s.details||s.details.live&&(this.levelLastLoaded!==s||s.details.expired)||this.waitForCdnTuneIn(s.details))&&(this.state=sl)}onLevelLoaded(e,t){var i,s;let{levels:r,startFragRequested:a}=this,n=t.level,l=t.details,o=l.totalduration;if(!r)return void this.warn(`Levels were reset while loading level ${n}`);this.log(`Level ${n} loaded [${l.startSN},${l.endSN}]${l.lastPartSn?`[part-${l.lastPartSn}-${l.lastPartIndex}]`:""}, cc [${l.startCC}, ${l.endCC}] duration:${o}`);let d=t.levelInfo,h=this.fragCurrent;h&&(this.state===i7||this.state===se)&&h.level!==t.level&&h.loader&&this.abortCurrentFrag();let u=0;if(l.live||null!=(i=d.details)&&i.live){if(this.checkLiveUpdate(l),l.deltaUpdateFailed)return;u=this.alignPlaylists(l,d.details,null==(s=this.levelLastLoaded)?void 0:s.details)}if(d.details=l,this.levelLastLoaded=d,a||this.setStartPosition(l,u),this.hls.trigger(X.LEVEL_UPDATED,{details:l,level:n}),this.state===sl){if(this.waitForCdnTuneIn(l))return;this.state=i6}a&&l.live&&this.synchronizeToLiveEdge(l),this.tick()}
72synchronizeToLiveEdge(e){let{config:t,media:i}=this;if(!i)return;let s=this.hls.liveSyncPosition,r=this.getLoadPosition(),a=e.fragmentStart,n=e.edge,l=r>=a-t.maxFragLookUpTolerance&&r<=n;if(null!==s&&i.duration>s&&(r<s||!l)){let a=void 0!==t.liveMaxLatencyDuration?t.liveMaxLatencyDuration:t.liveMaxLatencyDurationCount*e.targetduration;if((!l&&i.readyState<4||r<n-a)&&(this._hasEnoughToStart||(this.nextLoadPosition=s),i.readyState))if(this.warn(`Playback: ${r.toFixed(3)} is located too far from the end of live sliding playlist: ${n}, reset currentTime to : ${s.toFixed(3)}`),"buffered"===this.config.liveSyncMode){var o;let e=tJ.bufferInfo(i,s,0);if(!(null!=(o=e.buffered)&&o.length)||e.start<=r){i.currentTime=s;return}let{nextStart:t}=tJ.bufferedInfo(e.buffered,r,0);t&&(i.currentTime=t)}else i.currentTime=s}}_handleFragmentLoadProgress(e){var t;let i=e.frag,{part:s,payload:r}=e,{levels:a}=this;if(!a)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let n=a[i.level];if(!n)return void this.warn(`Level ${i.level} not found on progress`);let l=n.details;if(!l){this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),this.fragmentTracker.removeFragment(i);return}let o=n.videoCodec,d=l.PTSKnown||!l.live,h=null==(t=i.initSegment)?void 0:t.data,u=this._getAudioCodec(n),c=this.transmuxer=this.transmuxer||new rf(this.hls,ei,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),f=s?s.index:-1,m=new tz(i.level,i.sn,i.stats.chunkCount,r.byteLength,f,-1!==f),g=this.initPTS[i.cc];c.push(r,h,u,o,i,s,l.totalduration,d,m,g)}onAudioTrackSwitching(e,t){let i=this.hls,s=0!==this.altAudio;if(ty(t.url,i))this.altAudio=1;else{if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let e=this.fragCurrent;e&&(this.log("Switching to main audio track, cancel main fragment load"),e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();if(s){this.altAudio=0,this.fragmentTracker.removeAllFragments(),i.once(X.BUFFER_FLUSHED,()=>{this.hls&&this.hls.trigger(X.AUDIO_TRACK_SWITCHED,t)}),i.trigger(X.BUFFER_FLUSHING,{startOffset:0,endOffset:1/0,type:null});return}i.trigger(X.AUDIO_TRACK_SWITCHED,t)}}onAudioTrackSwitched(e,t){let i=ty(t.url,this.hls);if(i){let e=this.videoBuffer;e&&this.mediaBuffer!==e&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=e)}this.altAudio=2*!!i,this.tick()}onBufferCreated(e,t){let i,s,r=t.tracks,a=!1;for(let e in r){let t=r[e];if("main"===t.id){if(s=e,i=t,"video"===e){let t=r[e];t&&(this.videoBuffer=t.buffer)}}else a=!0}a&&i?(this.log(`Alternate track found, use ${s}.buffered to schedule main fragment loading`),this.mediaBuffer=i.buffer):this.mediaBuffer=this.media}onFragBuffered(e,t){let{frag:i,part:s}=t,r=i.type===ei;if(r){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===ss&&(this.state=i6);return}let e=s?s.stats:i.stats;this.fragLastKbps=Math.round(8*e.total/(e.buffering.end-e.loading.first)),eM(i)&&(this.fragPrevious=i),this.fragBufferedComplete(i,s)}let a=this.media;a&&(!this._hasEnoughToStart&&tJ.getBuffered(a).length&&(this._hasEnoughToStart=!0,this.seekToStartPos()),r&&this.tick())}get hasEnoughToStart(){return this._hasEnoughToStart}onError(e,t){var i;if(t.fatal){this.state=sa;return}switch(t.details){case z.FRAG_GAP:case z.FRAG_PARSING_ERROR:case z.FRAG_DECRYPT_ERROR:case z.FRAG_LOAD_ERROR:case z.FRAG_LOAD_TIMEOUT:case z.KEY_LOAD_ERROR:case z.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ei,t);break;case z.LEVEL_LOAD_ERROR:case z.LEVEL_LOAD_TIMEOUT:case z.LEVEL_PARSING_ERROR:t.levelRetry||this.state!==sl||(null==(i=t.context)?void 0:i.type)!==J||(this.state=i6);break;case z.BUFFER_ADD_CODEC_ERROR:case z.BUFFER_APPEND_ERROR:if("main"!==t.parent)return;this.reduceLengthAndFlushBuffer(t)&&this.resetLoadingState();break;case z.BUFFER_FULL_ERROR:if("main"!==t.parent)return;this.reduceLengthAndFlushBuffer(t)&&(!this.config.interstitialsController&&this.config.assetPlayerId?this._hasEnoughToStart=!0:this.flushMainBuffer(0,1/0));break;case z.INTERNAL_EXCEPTION:this.recoverWorkerError(t)}}onFragLoadEmergencyAborted(){this.state=i6,this._hasEnoughToStart||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()}onBufferFlushed(e,{type:t}){if(t!==eI||!this.altAudio){let e=(t===eL?this.videoBuffer:this.mediaBuffer)||this.media;e&&(this.afterBufferFlushed(e,t,ei),this.tick())}}onLevelsUpdated(e,t){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level,-1===this.level&&this.resetWhenMissingContext(this.fragCurrent)),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)return void this.log(`could not seek to ${i}, already seeking at ${t}`);let s=this.timelineOffset;s&&i&&(i+=s);let r=this.getLevelDetails(),a=tJ.getBuffered(e),n=a.length?a.start(0):0,l=n-i,o=Math.max(this.config.maxBufferHole,this.config.maxFragLookUpTolerance);(this.config.startOnSegmentBoundary||l>0&&(l<o||this.loadingParts&&l<2*((null==r?void 0:r.partTarget)||0)))&&(this.log(`adjusting start position by ${l} to match buffer start`),i+=l,this.startPosition=i),t<i&&(this.log(`seek to target start position ${i} from current time ${t} buffer start ${n}`),e.currentTime=i)}}_getAudioCodec(e){let t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t=-1!==t.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),t}_loadBitrateTestFrag(e,t){e.bitrateTest=!0,this._doFragLoad(e,t).then(e=>{let{hls:i}=this,s=null==e?void 0:e.frag;if(!s||this.fragContextChanged(s))return;t.fragmentError=0,this.state=i6,this.startFragRequested=!1,this.bitrateTest=!1;let r=s.stats;r.parsing.start=r.parsing.end=r.buffering.start=r.buffering.end=self.performance.now(),i.trigger(X.FRAG_LOADED,e),s.bitrateTest=!1}
72).catch(t=>{this.state!==i8&&this.state!==sa&&(this.warn(t),this.resetFragmentLoading(e))})}_handleTransmuxComplete(e){let t=this.playlistType,{hls:i}=this,{remuxResult:s,chunkMeta:r}=e,a=this.getCurrentContext(r);if(!a)return void this.resetWhenMissingContext(r);let{frag:n,part:l,level:o}=a,{video:d,text:h,id3:u,initSegment:c}=s,{details:f}=o,m=this.altAudio?void 0:s.audio;if(this.fragContextChanged(n))return void this.fragmentTracker.removeFragment(n);if(this.state=si,c){let e=c.tracks;if(e){let s=n.initSegment||n;if(this.unhandledEncryptionError(c,n))return;this._bufferInitSegment(o,e,s,r),i.trigger(X.FRAG_PARSING_INIT_SEGMENT,{frag:s,id:t,tracks:e})}let s=c.initPTS,a=c.timescale,l=this.initPTS[n.cc];if(j(s)&&(!l||l.baseTime!==s||l.timescale!==a)){let e=c.trackId;this.initPTS[n.cc]={baseTime:s,timescale:a,trackId:e},i.trigger(X.INIT_PTS_FOUND,{frag:n,id:t,initPTS:s,timescale:a,trackId:e})}}if(d&&f){m&&"audiovideo"===d.type&&this.logMuxedErr(n);let e=f.fragments[n.sn-1-f.startSN],t=n.sn===f.startSN,i=!e||n.cc>e.cc;if(!1!==s.independent){let{startPTS:e,endPTS:s,startDTS:a,endDTS:o}=d;if(l)l.elementaryStreams[d.type]={startPTS:e,endPTS:s,startDTS:a,endDTS:o};else if(d.firstKeyFrame&&d.independent&&1===r.id&&!i&&(this.couldBacktrack=!0),d.dropped&&d.independent){let r=this.getMainFwdBufferInfo(),a=(r?r.end:this.getLoadPosition())+this.config.maxBufferHole,l=d.firstKeyFramePTS?d.firstKeyFramePTS:e;if(!t&&a<l-this.config.maxBufferHole&&!i)return void this.backtrack(n);i&&(n.gap=!0),n.setElementaryStreamInfo(d.type,n.start,s,n.start,o,!0)}else t&&e-(f.appliedTimelineOffset||0)>2&&(n.gap=!0);n.setElementaryStreamInfo(d.type,e,s,a,o),this.backtrackFragment&&(this.backtrackFragment=n),this.bufferFragmentData(d,n,l,r,t||i)}else{if(!t&&!i)return void this.backtrack(n);n.gap=!0}}if(m){let{startPTS:e,endPTS:t,startDTS:i,endDTS:s}=m;l&&(l.elementaryStreams[eI]={startPTS:e,endPTS:t,startDTS:i,endDTS:s}),n.setElementaryStreamInfo(eI,e,t,i,s),this.bufferFragmentData(m,n,l,r)}if(f&&null!=u&&u.samples.length){let e={id:t,frag:n,details:f,samples:u.samples};i.trigger(X.FRAG_PARSING_METADATA,e)}if(f&&h){let e={id:t,frag:n,details:f,samples:h.samples};i.trigger(X.FRAG_PARSING_USERDATA,e)}}logMuxedErr(e){this.warn(`${eM(e)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${e.url}`)}_bufferInitSegment(e,t,i,s){if(this.state!==si)return;this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&(delete t.audio,t.audiovideo&&this.logMuxedErr(i));let{audio:r,video:a,audiovideo:n}=t;if(r){let i=e.audioCodec,s=e6(r.codec,i);"mp4a"===s&&(s="mp4a.40.5");let a=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){s&&(s=-1!==s.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5");let e=r.metadata;e&&"channelCount"in e&&1!==(e.channelCount||1)&&-1===a.indexOf("firefox")&&(s="mp4a.40.5")}s&&-1!==s.indexOf("mp4a.40.5")&&-1!==a.indexOf("android")&&"audio/mpeg"!==r.container&&(s="mp4a.40.2",this.log(`Android: force audio codec to ${s}`)),i&&i!==s&&this.log(`Swapping manifest audio codec "${i}" for "${s}"`),r.levelCodec=s,r.id=ei,this.log(`Init audio buffer, container:${r.container}, codecs[selected/level/parsed]=[${s||""}/${i||""}/${r.codec}]`),delete t.audiovideo}if(a){a.levelCodec=e.videoCodec,a.id=ei;let i=a.codec;if((null==i?void 0:i.length)===4)switch(i){case"hvc1":case"hev1":a.codec="hvc1.1.6.L120.90";break;case"av01":a.codec="av01.0.04M.08";break;case"avc1":a.codec="avc1.42e01e"}this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${e.videoCodec||""}/${i}]${a.codec!==i?" parsed-corrected="+a.codec:""}${a.supplemental?" supplemental="+a.supplemental:""}`),delete t.audiovideo}n&&(this.log(`Init audiovideo buffer, container:${n.container}, codecs[level/parsed]=[${e.codecs}/${n.codec}]`),delete t.video,delete t.audio);let l=Object.keys(t);if(l.length){if(this.hls.trigger(X.BUFFER_CODECS,t),!this.hls)return;l.forEach(e=>{let r=t[e].initSegment;null!=r&&r.byteLength&&this.hls.trigger(X.BUFFER_APPENDING,{type:e,data:r,frag:i,part:null,chunkMeta:s,parent:i.type})})}this.tickImmediate()}getMainFwdBufferInfo(){let e=this.mediaBuffer&&2===this.altAudio?this.mediaBuffer:this.media;return this.getFwdBufferInfo(e,ei)}get maxBufferLength(){let{levels:e,level:t}=this,i=null==e?void 0:e[t];return i?this.getMaxBufferLength(i.maxBitrate):this.config.maxBufferLength}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=i6}checkFragmentChanged(){let e=this.media,t=null;if(e&&e.readyState>1&&!1===e.seeking){let i=e.currentTime;if(tJ.isBuffered(e,i)?t=this.getAppendedFrag(i):tJ.isBuffered(e,i+.
721)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;let e=this.fragPlaying,i=t.level;(!e||t.sn!==e.sn||e.level!==i)&&(this.fragPlaying=t,this.hls.trigger(X.FRAG_CHANGED,{frag:t}),e&&e.level===i||this.hls.trigger(X.LEVEL_SWITCHED,{level:i}))}}}get nextLevel(){let e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){var e;if(this.fragPlaying)return this.fragPlaying;let t=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;return j(t)?this.getAppendedFrag(t):null}get currentProgramDateTime(){var e;let t=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;if(j(t)){let e=this.getLevelDetails(),i=this.currentFrag||(e?tA(null,e.fragments,t):null);if(i){let e=i.programDateTime;if(null!==e)return new Date(e+(t-i.start)*1e3)}}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}}class nS extends eh{constructor(e,t){super("key-loader",t),this.config=void 0,this.keyIdToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(let i in this.keyIdToKeyInfo){let s=this.keyIdToKeyInfo[i].loader;if(s){var t;if(e&&e!==(null==(t=s.context)?void 0:t.frag.type))return;s.abort()}}}detach(){for(let e in this.keyIdToKeyInfo){let t=this.keyIdToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyIdToKeyInfo[e]}}destroy(){for(let e in this.detach(),this.keyIdToKeyInfo){let t=this.keyIdToKeyInfo[e].loader;t&&t.destroy()}this.keyIdToKeyInfo={}}createKeyLoadError(e,t=z.KEY_LOAD_ERROR,i,s,r){return new tY({type:Q.NETWORK_ERROR,details:t,fatal:!1,frag:e,response:r,error:i,networkDetails:s})}loadClear(e,t,i){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(t.length)for(let s=0,r=t.length;s<r;s++){let a=t[s];if(e.cc<=a.cc&&(!eM(e)||!eM(a)||e.sn<a.sn)||!i&&s==r-1)return this.emeController.selectKeySystemFormat(a).then(e=>{if(!this.emeController)return;a.setKeyFormat(e);let t=iv(e);if(t)return this.emeController.getKeySystemAccess([t])})}if(this.config.requireKeySystemAccessOnStart){let e=ib(this.config);if(e.length)return this.emeController.getKeySystemAccess(e)}}return null}load(e){return!e.decryptdata&&e.encrypted&&this.emeController&&this.config.emeEnabled?this.emeController.selectKeySystemFormat(e).then(t=>this.loadInternal(e,t)):this.loadInternal(e)}loadInternal(e,t){var i,s;t&&e.setKeyFormat(t);let r=e.decryptdata;if(!r){let i=Error(t?`Expected frag.decryptdata to be defined after setting format ${t}`:`Missing decryption data on fragment in onKeyLoading (emeEnabled with controller: ${this.emeController&&this.config.emeEnabled})`);return Promise.reject(this.createKeyLoadError(e,z.KEY_LOAD_ERROR,i))}let a=r.uri;if(!a)return Promise.reject(this.createKeyLoadError(e,z.KEY_LOAD_ERROR,Error(`Invalid key URI: "${a}"`)));let n=nI(r),l=this.keyIdToKeyInfo[n];if(null!=(i=l)&&i.decryptdata.key)return r.key=l.decryptdata.key,Promise.resolve({frag:e,keyInfo:l});if(this.emeController&&null!=(s=l)&&s.keyLoadPromise)switch(this.emeController.getKeyStatus(l.decryptdata)){case"usable":case"usable-in-future":return l.keyLoadPromise.then(t=>{let{keyInfo:i}=t;return r.key=i.decryptdata.key,{frag:e,keyInfo:i}})}switch(this.log(`${this.keyIdToKeyInfo[n]?"Rel":"L"}oading${r.keyId?" keyId: "+eb(r.keyId):""} URI: ${r.uri} from ${e.type} ${e.level}`),l=this.keyIdToKeyInfo[n]={decryptdata:r,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},r.method){case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":if("identity"===r.keyFormat)return this.loadKeyHTTP(l,e);return this.loadKeyEME(l,e);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(l,e);default:return Promise.reject(this.createKeyLoadError(e,z.KEY_LOAD_ERROR,Error(`Key supplied with unsupported METHOD: "${r.method}"`)))}}loadKeyEME(e,t){let i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){var s,r;if(!e.decryptdata.keyId&&null!=(s=t.initSegment)&&s.data){let i,s=(r=t.initSegment.data,i=[],eW(r,e=>i.push(e.subarray(8,24))),i);if(s.length){let t=s[0];t.some(e=>0!==e)?(this.log(`Using keyId found in init segment ${eb(t)}`),iS.setKeyIdForUri(e.decryptdata.uri,t)):(t=iS.addKeyIdForUri(e.decryptdata.uri),this.log(`Generating keyId to patch media ${eb(t)}`)),e.decryptdata.keyId=t}}return e.decryptdata.keyId||eM(t)?(e.keyLoadPromise=this.emeController.loadKey(i).then(t=>(e.mediaKeySessionContext=t,i))).catch(i=>{throw e.keyLoadPromise=null,"data"in i&&(i.data.frag=t),i}):Promise.resolve(i)}return Promise.resolve(i)}loadKeyHTTP(e,t){let i=this.config,s=new i.loader(i);return t.keyLoader=e.loader=s,e.keyLoadPromise=new Promise((r,a)=>{let n={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},l=i.keyLoadPolicy.default,o={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0};s.load(n,o,{onSuccess:(e,t,i,s)=>{let{frag:n,keyInfo:l}=i,o=nI(l.decryptdata);if(!n.decryptdata||l!==this.keyIdToKeyInfo[o])return a(this.createKeyLoadError(n,z.KEY_LOAD_ERROR,Error("after key load, decryptdata unset or changed"),s));l.decryptdata.key=n.decryptdata.key=new Uint8Array(e.data),n.keyLoader=null,l.loader=null,r({frag:n,keyInfo:l})},onError:(e,i,s,r)=>{this.resetLoader(i),a(this.createKeyLoadError(t,z.KEY_LOAD_ERROR,Error(`HTTP Error ${e.code} loading key ${e.text}`),s,ed({url:n.url,data:void 0},e)))},onTimeout:(e,i,s)=>{this.resetLoader(i),a(this.createKeyLoadError(t,z.KEY_LOAD_TIMEOUT,Error("key loading timed out"),s))},onAbort:(e,i,s)=>{this.resetLoader(i),a(this.createKeyLoadError(t,z.INTERNAL_ABORTED,Error("key loading aborted"),s))}})})}
72resetLoader(e){let{frag:t,keyInfo:i,url:s}=e,r=i.loader;t.keyLoader===r&&(t.keyLoader=null,i.loader=null);let a=nI(i.decryptdata)||s;delete this.keyIdToKeyInfo[a],r&&r.destroy()}}function nI(e){if(e.keyFormat!==im){let t=e.keyId;if(t)return eb(t)}return e.uri}function nL(e){let{type:t}=e;switch(t){case ee:return es;case et:return er;default:return ei}}function nk(e,t){let i=e.url;return(void 0===i||0===i.indexOf("data:"))&&(i=t.url),i}class nR{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:e}=this;e.on(X.MANIFEST_LOADING,this.onManifestLoading,this),e.on(X.LEVEL_LOADING,this.onLevelLoading,this),e.on(X.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(X.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.on(X.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){let{hls:e}=this;e.off(X.MANIFEST_LOADING,this.onManifestLoading,this),e.off(X.LEVEL_LOADING,this.onLevelLoading,this),e.off(X.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(X.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),e.off(X.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(e){let t=this.hls.config,i=t.pLoader,s=t.loader,r=new(i||s)(t);return this.loaders[e.type]=r,r}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:Z,url:i,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(e,t){let{id:i,level:s,pathwayId:r,url:a,deliveryDirectives:n,levelInfo:l}=t;this.load({id:i,level:s,pathwayId:r,responseType:"text",type:J,url:a,deliveryDirectives:n,levelOrTrack:l})}onAudioTrackLoading(e,t){let{id:i,groupId:s,url:r,deliveryDirectives:a,track:n}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:ee,url:r,deliveryDirectives:a,levelOrTrack:n})}onSubtitleTrackLoading(e,t){let{id:i,groupId:s,url:r,deliveryDirectives:a,track:n}=t;this.load({id:i,groupId:s,level:null,responseType:"text",type:et,url:r,deliveryDirectives:a,levelOrTrack:n})}onLevelsUpdated(e,t){let i=this.loaders[J];if(i){let e=i.context;e&&!t.levels.some(t=>t===e.levelOrTrack)&&(i.abort(),delete this.loaders[J])}}load(e){var t;let i,s=this.hls.config,r=this.getInternalLoader(e);if(r){let t=this.hls.logger,i=r.context;if(i&&i.levelOrTrack===e.levelOrTrack&&(i.url===e.url||i.deliveryDirectives&&!e.deliveryDirectives))return void(i.url===e.url?t.log(`[playlist-loader]: ignore ${e.url} ongoing request`):t.log(`[playlist-loader]: ignore ${e.url} in favor of ${i.url}`));t.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),r.abort()}if(i=e.type===Z?s.manifestLoadPolicy.default:el({},s.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),r=this.createInternalLoader(e),j(null==(t=e.deliveryDirectives)?void 0:t.part)){let t;if(e.type===J&&null!==e.level?t=this.hls.levels[e.level].details:e.type===ee&&null!==e.id?t=this.hls.audioTracks[e.id].details:e.type===et&&null!==e.id&&(t=this.hls.subtitleTracks[e.id].details),t){let e=t.partTarget,s=t.targetduration;if(e&&s){let t=1e3*Math.max(3*e,.8*s);i=el({},i,{maxTimeToFirstByteMs:Math.min(t,i.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(t,i.maxTimeToFirstByteMs)})}}}let a=i.errorRetry||i.timeoutRetry||{},n={loadPolicy:i,timeout:i.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0};r.load(e,n,{onSuccess:(e,t,i,s)=>{let r=this.getInternalLoader(i);this.resetInternalLoader(i.type);let a=e.data;t.parsing.start=performance.now(),i_.isMediaPlaylist(a)||i.type!==Z?this.handleTrackOrLevelPlaylist(e,t,i,s||null,r):this.handleMasterPlaylist(e,t,i,s)},onError:(e,t,i,s)=>{this.handleNetworkError(t,i,!1,e,s)},onTimeout:(e,t,i)=>{this.handleNetworkError(t,i,!0,void 0,e)}})}
72checkAutostartLoad(){if(!this.hls)return;let{config:{autoStartLoad:e,startPosition:t},forceStartLoad:i}=this.hls;(e||i)&&(this.hls.logger.log(`${e?"auto":"force"} startLoad with configured startPosition ${t}`),this.hls.startLoad(t))}handleMasterPlaylist(e,t,i,s){let r=this.hls,a=e.data,n=nk(e,i),l=i_.parseMasterPlaylist(a,n);if(l.playlistParsingError){t.parsing.end=performance.now(),this.handleManifestParsingError(e,i,l.playlistParsingError,s,t);return}let{contentSteering:o,levels:d,sessionData:h,sessionKeys:u,startTimeOffset:c,variableList:f}=l;this.variableList=f,d.forEach(e=>{let{unknownCodecs:t}=e;if(t){let{preferManagedMediaSource:i}=this.hls.config,{audioCodec:s,videoCodec:r}=e;for(let a=t.length;a--;){let n=t[a];eJ(n,"audio",i)?(e.audioCodec=s=s?`${s},${n}`:n,eX.audio[s.substring(0,4)]=2,t.splice(a,1)):eJ(n,"video",i)&&(e.videoCodec=r=r?`${r},${n}`:n,eX.video[r.substring(0,4)]=2,t.splice(a,1))}}});let{AUDIO:m=[],SUBTITLES:g,"CLOSED-CAPTIONS":p}=i_.parseMasterPlaylistMedia(a,n,l);m.length&&(m.some(e=>!e.url)||!d[0].audioCodec||d[0].attrs.AUDIO||(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),m.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new t5({}),bitrate:0,url:""}))),r.trigger(X.MANIFEST_LOADED,{levels:d,audioTracks:m,subtitles:g,captions:p,contentSteering:o,url:n,stats:t,networkDetails:s,sessionData:h,sessionKeys:u,startTimeOffset:c,variableList:f})}handleTrackOrLevelPlaylist(e,t,i,s,r){let a=this.hls,{id:n,level:l,type:o}=i,d=nk(e,i),h=j(l)?l:j(n)?n:0,u=nL(i),c=i_.parseLevelPlaylist(e.data,d,h,u,0,this.variableList);if(o===Z){let e={attrs:new t5({}),bitrate:0,details:c,name:"",url:d};c.requestScheduled=t.loading.start+ij(c,0),a.trigger(X.MANIFEST_LOADED,{levels:[e],audioTracks:[],url:d,stats:t,networkDetails:s,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}t.parsing.end=performance.now(),i.levelDetails=c,this.handlePlaylistLoaded(c,e,t,i,s,r)}handleManifestParsingError(e,t,i,s,r){this.hls.trigger(X.ERROR,{type:Q.NETWORK_ERROR,details:z.MANIFEST_PARSING_ERROR,fatal:t.type===Z,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:s,stats:r})}handleNetworkError(e,t,i=!1,s,r){let a=`A network ${i?"timeout":"error"+(s?" (status "+s.code+")":"")} occurred while loading ${e.type}`;e.type===J?a+=`: ${e.level} id: ${e.id}`:(e.type===ee||e.type===et)&&(a+=` id: ${e.id} group-id: "${e.groupId}"`);let n=Error(a);this.hls.logger.warn(`[playlist-loader]: ${a}`);let l=z.UNKNOWN,o=!1,d=this.getInternalLoader(e);switch(e.type){case Z:l=i?z.MANIFEST_LOAD_TIMEOUT:z.MANIFEST_LOAD_ERROR,o=!0;break;case J:l=i?z.LEVEL_LOAD_TIMEOUT:z.LEVEL_LOAD_ERROR,o=!1;break;case ee:l=i?z.AUDIO_TRACK_LOAD_TIMEOUT:z.AUDIO_TRACK_LOAD_ERROR,o=!1;break;case et:l=i?z.SUBTITLE_TRACK_LOAD_TIMEOUT:z.SUBTITLE_LOAD_ERROR,o=!1}d&&this.resetInternalLoader(e.type);let h={type:Q.NETWORK_ERROR,details:l,fatal:o,url:e.url,loader:d,context:e,error:n,networkDetails:t,stats:r};s&&(h.response=ed({url:(null==t?void 0:t.url)||e.url,data:void 0},s)),this.hls.trigger(X.ERROR,h)}handlePlaylistLoaded(e,t,i,s,r,a){let n=this.hls,{type:l,level:o,levelOrTrack:d,id:h,groupId:u,deliveryDirectives:c}=s,f=nk(t,s),m=nL(s),g="number"==typeof s.level&&m===ei?o:void 0,p=e.playlistParsingError;if(p){if(this.hls.logger.warn(`${p} ${e.url}`),!n.config.ignorePlaylistParsingErrors)return void n.trigger(X.ERROR,{type:Q.NETWORK_ERROR,details:z.LEVEL_PARSING_ERROR,fatal:!1,url:f,error:p,reason:p.message,response:t,context:s,level:g,parent:m,networkDetails:r,stats:i});e.playlistParsingError=null}if(!e.fragments.length){let a=e.playlistParsingError=Error("No Segments found in Playlist");n.trigger(X.ERROR,{type:Q.NETWORK_ERROR,details:z.LEVEL_EMPTY_ERROR,fatal:!1,url:f,error:a,reason:a.message,response:t,context:s,level:g,parent:m,networkDetails:r,stats:i});return}switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),(!a.getCacheAge||isNaN(e.ageHeader))&&(e.ageHeader=0)),l){case Z:case J:if(g)if(d){if(d!==n.levels[g]){let e=n.levels.indexOf(d);e>-1&&(g=e)}}else g=0;n.trigger(X.LEVEL_LOADED,{details:e,levelInfo:d||n.levels[0],level:g||0,id:h||0,stats:i,networkDetails:r,deliveryDirectives:c,withoutMultiVariant:l===Z});break;case ee:n.trigger(X.AUDIO_TRACK_LOADED,{details:e,track:d,id:h||0,groupId:u||"",stats:i,networkDetails:r,deliveryDirectives:c});break;case et:n.trigger(X.SUBTITLE_TRACK_LOADED,{details:e,track:d,id:h||0,groupId:u||"",stats:i,networkDetails:r,deliveryDirectives:c})}}}class nM{static get version(){return sf}static isMSESupported(){return nT()}static isSupported(){if(!nT())return!1;let e=ep();
72return"function"==typeof(null==e?void 0:e.isTypeSupported)&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(t=>e.isTypeSupported(e1(t,"video")))||["mp4a.40.2","fLaC"].some(t=>e.isTypeSupported(e1(t,"audio"))))}static getMediaSource(){return ep()}static get Events(){return X}static get MetadataSchema(){return sC}static get ErrorTypes(){return Q}static get ErrorDetails(){return z}static get DefaultConfig(){return nM.defaultConfig?nM.defaultConfig:no}static set DefaultConfig(e){nM.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new sc,this._autoLevelCapping=-1,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.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;const t=this.logger=function(e,t,i){let s=ef();if("object"==typeof console&&!0===e||"object"==typeof e){let r=["debug","log","info","warn","error"];r.forEach(t=>{s[t]=em(t,e,i)});try{s.log(`Debug logs enabled for "${t}" in hls.js version 1.6.15`)}catch(e){return ef()}r.forEach(t=>{eg[t]=em(t,e)})}else el(eg,s);return s}(e.debug||!1,"Hls instance",e.assetPlayerId),i=this.config=function(e,t,i){if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==t.liveMaxLatencyDurationCount&&(void 0===t.liveSyncDurationCount||t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount))throw Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(void 0===t.liveSyncDuration||t.liveMaxLatencyDuration<=t.liveSyncDuration))throw Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let s=function e(t){return t&&"object"==typeof t?Array.isArray(t)?t.map(e):Object.keys(t).reduce((i,s)=>(i[s]=e(t[s]),i),{}):t}(e),r=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach(e=>{let a=`${"level"===e?"playlist":e}LoadPolicy`,n=void 0===t[a],l=[];r.forEach(i=>{let r=`${e}Loading${i}`,o=t[r];if(void 0!==o&&n){l.push(r);let e=s[a].default;switch(t[a]={default:e},i){case"TimeOut":e.maxLoadTimeMs=o,e.maxTimeToFirstByteMs=o;break;case"MaxRetry":e.errorRetry.maxNumRetry=o,e.timeoutRetry.maxNumRetry=o;break;case"RetryDelay":e.errorRetry.retryDelayMs=o,e.timeoutRetry.retryDelayMs=o;break;case"MaxRetryTimeout":e.errorRetry.maxRetryDelayMs=o,e.timeoutRetry.maxRetryDelayMs=o}}}),l.length&&i.warn(`hls.js config: "${l.join('", "')}" setting(s) are deprecated, use "${a}": ${tc(t[a])}`)}),ed(ed({},s),t)}(nM.DefaultConfig,e,t);this.userConfig=e,i.progressive&&function(e,t){let i=e.loader;i!==ns&&i!==nl?(t.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}()&&(e.loader=ns,e.progressive=!0,e.enableSoftwareAES=!0,t.log("[config]: Progressive streaming enabled, using FetchLoader"))}(i,t);const{abrController:s,bufferController:r,capLevelController:a,errorController:n,fpsController:l}=i,o=new n(this),d=this.abrController=new s(this),h=new tN(this),u=i.interstitialsController,c=u?this.interstitialsController=new u(this,nM):null,f=this.bufferController=new r(this,h),m=this.capLevelController=new a(this),g=new l(this),p=new nR(this),v=i.contentSteeringController,E=v?new v(this):null,b=this.levelController=new nE(this,E),y=new np(this),T=new nS(this.config,this.logger),A=this.streamController=new nA(this,h,T),S=this.gapController=new nd(this,h);m.setStreamController(A),g.setStreamController(A);const I=[p,b,A];c&&I.splice(1,0,c),E&&I.splice(1,0,E),this.networkControllers=I;
72const L=[d,f,S,m,g,y,h];this.audioTrackController=this.createController(i.audioTrackController,I);const k=i.audioStreamController;k&&I.push(this.audioStreamController=new k(this,h,T)),this.subtitleTrackController=this.createController(i.subtitleTrackController,I);const R=i.subtitleStreamController;R&&I.push(this.subtititleStreamController=new R(this,h,T)),this.createController(i.timelineController,L),T.emeController=this.emeController=this.createController(i.emeController,L),this.cmcdController=this.createController(i.cmcdController,L),this.latencyController=this.createController(nv,L),this.coreComponents=L,I.push(o);const M=o.onErrorOut;"function"==typeof M&&this.on(X.ERROR,M,o),this.on(X.MANIFEST_LOADED,p.onManifestLoaded,p)}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(t){if(this.logger.error("An internal error happened while handling event "+e+'. Error message: "'+t.message+'". Here is a stacktrace:',t),!this.triggeringException){this.triggeringException=!0;let i=e===X.ERROR;this.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.INTERNAL_EXCEPTION,fatal:i,event:e,error:t}),this.triggeringException=!1}}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){this.logger.log("destroy"),this.trigger(X.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach(e=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(e=>e.destroy()),this.coreComponents.length=0;let e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){if(!e||"media"in e&&!e.media){let t=Error(`attachMedia failed: invalid argument (${e})`);this.trigger(X.ERROR,{type:Q.OTHER_ERROR,details:z.ATTACH_MEDIA_ERROR,fatal:!0,error:t});return}this.logger.log("attachMedia"),this._media&&(this.logger.warn("media must be detached before attaching"),this.detachMedia());let t="media"in e,i=t?e.media:e,s=t?e:{media:i};this._media=i,this.trigger(X.MEDIA_ATTACHING,s)}detachMedia(){this.logger.log("detachMedia"),this.trigger(X.MEDIA_DETACHING,{}),this._media=null}transferMedia(){this._media=null;let e=this.bufferController.transferMedia();return this.trigger(X.MEDIA_DETACHING,{transferMedia:e}),e}loadSource(e){this.stopLoad();let t=this.media,i=this._url,s=this._url=eA.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${s}`),t&&i&&(i!==s||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(X.MANIFEST_LOADING,{url:e})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(e=-1,t){this.logger.log(`startLoad(${e+(t?", <skip seek to start>":"")})`),this.started=!0,this.resumeBuffering();for(let i=0;i<this.networkControllers.length&&(this.networkControllers[i].startLoad(e,t),this.started&&this.networkControllers);i++);}stopLoad(){this.logger.log("stopLoad"),this.started=!1;for(let e=0;e<this.networkControllers.length&&(this.networkControllers[e].stopLoad(),!this.started&&this.networkControllers);e++);}get loadingEnabled(){return this.started}get bufferingEnabled(){return this.streamController.bufferingEnabled}resumeBuffering(){this.bufferingEnabled||(this.logger.log("resume buffering"),this.networkControllers.forEach(e=>{e.resumeBuffering&&e.resumeBuffering()}))}pauseBuffering(){this.bufferingEnabled&&(this.logger.log("pause buffering"),this.networkControllers.forEach(e=>{e.pauseBuffering&&e.pauseBuffering()}))}get inFlightFragments(){let e={[ei]:this.streamController.inFlightFrag};return this.audioStreamController&&(e[es]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(e[er]=this.subtititleStreamController.inFlightFrag),e}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");let e=this._media,t=null==e?void 0:e.currentTime;this.detachMedia(),e&&(this.attachMedia(e),t&&this.startLoad(t))}removeLevel(e){this.levelController.removeLevel(e)}get sessionId(){let e=this._sessionId;return e||(e=this._sessionId=function(){try{return crypto.randomUUID()}catch(e){try{let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}catch(t){let e=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let i=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?i:3&i|8).toString(16)})}}}()),e}get levels(){return this.levelController.levels||[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){this.logger.log(`set currentLevel:${e}`),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){this.logger.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){this.logger.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){this.logger.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){let e=this.levelController.startLevel;return -1===e&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e}set startLevel(e){this.logger.log(`set startLevel:${e}`),-1!==e&&(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}set bandwidthEstimate(e){this.abrController.resetEstimator(e)}get abrEwmaDefaultEstimate(){let{bwEstimator:e}=this.abrController;return e?e.defaultEstimate:NaN}get ttfbEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(this.logger.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){tn.indexOf(e)>-1&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return -1===this.levelController.manualLevel}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 e,{levels:t,autoLevelCapping:i,maxHdcpLevel:s}=this;if(e=-1===i&&null!=t&&t.length?t.length-1:i,s)for(let i=e;i--;){let e=t[i].attrs["HDCP-LEVEL"];if(e&&e<=s)return i}return e}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(e){this.abrController.nextAutoLevel=e}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(e){var t;return(null==(t=this.audioTrackController)?void 0:t.setAudioOption(e))||null}
72setSubtitleOption(e){var t;return(null==(t=this.subtitleTrackController)?void 0:t.setSubtitleOption(e))||null}get allAudioTracks(){let e=this.audioTrackController;return e?e.allAudioTracks:[]}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 allSubtitleTracks(){let e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}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}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}set targetLatency(e){this.latencyController.targetLatency=e}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(e){this.levelController.pathwayPriority=e}get bufferedToEnd(){var e;return!!(null!=(e=this.bufferController)&&e.bufferedToEnd)}get interstitialsManager(){var e;return(null==(e=this.interstitialsController)?void 0:e.interstitialsManager)||null}getMediaDecodingInfo(e,t=this.allAudioTracks){return tr(e,tm(t),navigator.mediaCapabilities)}}nM.defaultConfig=void 0;let nC=(i=function(e){if(!e?.prototype)return e;let t=K(e,"video");(!t||`${t}`.includes("[native code]"))&&Object.defineProperty(e.prototype,"videoTracks",{get(){var e=this;let t=R(e).videoTracks;if(!t&&(t=new _,R(e).videoTracks=t,V)){let i=V.call(e.nativeEl??e);for(let t of i)M(e,t);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(e=>e instanceof O)){for(let e of i)C(e);return}M(e,s.track)}),i.addEventListener("removetrack",e=>{C(e.track)})}return t}});let i=K(e,"audio");(!i||`${i}`.includes("[native code]"))&&Object.defineProperty(e.prototype,"audioTracks",{get(){var e=this;let t=R(e).audioTracks;
72if(!t&&(t=new H,R(e).audioTracks=t,W)){let i=W.call(e.nativeEl??e);for(let t of i)B(e,t);i.addEventListener("change",()=>{t.dispatchEvent(new Event("change"))}),i.addEventListener("addtrack",s=>{if([...t].some(e=>e instanceof G)){for(let e of i)$(e);return}B(e,s.track)}),i.addEventListener("removetrack",e=>{$(e.track)})}return t}}),"addVideoTrack"in e.prototype||(e.prototype.addVideoTrack=function(e,t="",i=""){let s=new O;return s.kind=e,s.label=t,s.language=i,M(this,s),s}),"removeVideoTrack"in e.prototype||(e.prototype.removeVideoTrack=C),"addAudioTrack"in e.prototype||(e.prototype.addAudioTrack=function(e,t="",i=""){let s=new G;return s.kind=e,s.label=t,s.language=i,B(this,s),s}),"removeAudioTrack"in e.prototype||(e.prototype.removeAudioTrack=$),"videoRenditions"in e.prototype||Object.defineProperty(e.prototype,"videoRenditions",{get(){return s(this)}});let s=e=>{let t=R(e).videoRenditions;return t||(R(t=new x).media=e,R(e).videoRenditions=t),t};"audioRenditions"in e.prototype||Object.defineProperty(e.prototype,"audioRenditions",{get(){return r(this)}});let r=e=>{let t=R(e).audioRenditions;return t||(R(t=new N).media=e,R(e).audioRenditions=t),t};return e}(I),class extends i{static shadowRootOptions={...i.shadowRootOptions};static getTemplateHTML=(e,t={})=>{let{src:s,...r}=e;return`
73        <script type="application/json" id="config">
74          ${JSON.stringify(t.config||{})}
75        </script>
76        ${i.getTemplateHTML(r)}
77      `};#y=null;#T=null;constructor(){super(),this.#l("config")}get config(){return this.#T}set config(e){this.#T=e}attributeChangedCallback(e,t,i){"src"!==e&&super.attributeChangedCallback(e,t,i),"src"===e&&t!=i&&this.load()}#A(){var e,t;null==(e=this.#y)||e.remove(),null==(t=this.nativeEl)||t.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.#S),this.api&&(this.api.detachMedia(),this.api.destroy(),this.api=null)}async load(){var e,t;let i=!this.api;if(this.#A(),this.src){if(i&&!this.#T&&(this.#T=JSON.parse((null==(e=this.shadowRoot.getElementById("config"))?void 0:e.textContent)||"{}")),nM.isSupported()){switch(await Promise.resolve(),this.api=new nM({liveDurationInfinity:!0,autoStartLoad:!1,...this.config}),this.api.loadSource(this.src),this.api.attachMedia(this.nativeEl),this.nativeEl.preload){case"none":{let e=()=>this.api.startLoad();this.nativeEl.addEventListener("play",e,{once:!0}),this.api.on(nM.Events.DESTROYING,()=>{this.nativeEl.removeEventListener("play",e)});break}case"metadata":{let e=this.api.config.maxBufferLength,t=this.api.config.maxBufferSize;this.api.config.maxBufferLength=1,this.api.config.maxBufferSize=1;let i=()=>{this.api.config.maxBufferLength=e,this.api.config.maxBufferSize=t};this.nativeEl.addEventListener("play",i,{once:!0}),this.api.on(nM.Events.DESTROYING,()=>{this.nativeEl.removeEventListener("play",i)}),this.api.startLoad();break}default:this.api.startLoad()}this.nativeEl.webkitCurrentPlaybackTargetIsWireless&&this.api.stopLoad(),this.nativeEl.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",this.#S),this.#y=document.createElement("source"),this.#y.setAttribute("type","application/x-mpegURL"),this.#y.setAttribute("src",this.src),this.nativeEl.disableRemotePlayback=!1,this.nativeEl.append(this.#y);let e=new WeakMap;this.api.on(nM.Events.MANIFEST_PARSED,(t,i)=>{this.nativeEl.autoplay&&this.nativeEl.paused&&this.nativeEl.play().catch(e=>{console.warn("Autoplay failed:",e)}),r();let s=this.videoTracks.getTrackById("main");for(let[t,r]of(s||((s=this.addVideoTrack("main")).id="main",s.selected=!0),i.levels.entries())){let i=s.addRendition(r.url[0],r.width,r.height,r.videoCodec,r.bitrate);e.set(r,`${t}`),i.id=`${t}`}for(let[e,t]of i.audioTracks.entries()){let i=t.default?"main":"alternative",s=this.addAudioTrack(i,t.name,t.lang);s.id=`${e}`,t.default&&(s.enabled=!0)}}),this.audioTracks.addEventListener("change",()=>{var e;let t=+(null==(e=[...this.audioTracks].find(e=>e.enabled))?void 0:e.id),i=this.api.audioTracks.map(e=>e.id);t!=this.api.audioTrack&&i.includes(t)&&(this.api.audioTrack=t)}),this.api.on(nM.Events.LEVELS_UPDATED,(t,i)=>{let s=this.videoTracks[this.videoTracks.selectedIndex??0];if(!s)return;let r=i.levels.map(t=>e.get(t));for(let e of this.videoRenditions)e.id&&!r.includes(e.id)&&s.removeRendition(e)});let i=null;this.api.on(nM.Events.ERROR,(e,t)=>
77{t.type===nM.ErrorTypes.NETWORK_ERROR&&t.details===nM.ErrorDetails.FRAG_LOAD_ERROR&&(i=t.frag.level)}),this.api.on(nM.Events.LEVEL_SWITCHED,(e,t)=>{let s=t.level;null!==i&&s<i&&(console.warn(`\u26A0\uFE0F hls.js downgraded quality from level ${i} to ${s} due to fragment load failure.`),this.videoRenditions.selectedIndex=s,i=null)});let s=e=>{let t=e.target.selectedIndex;t!=this.api.nextLevel&&(this.api.nextLevel=t)};null==(t=this.videoRenditions)||t.addEventListener("change",s);let r=()=>{for(let e of this.videoTracks)this.removeVideoTrack(e);for(let e of this.audioTracks)this.removeAudioTrack(e)};this.api.once(nM.Events.DESTROYING,r);return}await Promise.resolve(),this.nativeEl.canPlayType("application/vnd.apple.mpegurl")&&(this.nativeEl.src=this.src)}}#S=()=>{var e,t,i;(null==(e=this.nativeEl)?void 0:e.webkitCurrentPlaybackTargetIsWireless)?null==(t=this.api)||t.stopLoad():null==(i=this.api)||i.startLoad()};#l(e){if(Object.prototype.hasOwnProperty.call(this,e)){let t=this[e];delete this[e],this[e]=t}}});globalThis.customElements&&!globalThis.customElements.get("hls-video")&&globalThis.customElements.define("hls-video",nC);var n_=new Set(["style","children","ref","key","suppressContentEditableWarning","suppressHydrationWarning","dangerouslySetInnerHTML"]),nw={className:"class",htmlFor:"for"};function nD(e){return e.toLowerCase()}function nx(e){return"boolean"==typeof e?e?"":void 0:"function"==typeof e?void 0:"object"!=typeof e||null===e?e:void 0}function nP(e,t,i){var s;e[t]=i,null==i&&t in((null==(s=globalThis.HTMLElement)?void 0:s.prototype)??{})&&e.removeAttribute(t)}var nO=function({react:e,tagName:t,elementClass:i,events:s,displayName:r,defaultProps:a,toAttributeName:n=nD,toAttributeValue:l=nx}){let o=Number.parseInt(e.version)>=19,d=e.forwardRef((r,d)=>{var h,u;let c=e.useRef(null),f=e.useRef(new Map),m={},g={},p={},v={};for(let[e,t]of Object.entries(r)){if(n_.has(e)){p[e]=t;continue}let s=n(nw[e]??e);if(i.prototype&&e in i.prototype&&!(e in((null==(h=globalThis.HTMLElement)?void 0:h.prototype)??{}))&&!(null==(u=i.observedAttributes)?void 0:u.some(e=>e===s))){v[e]=t;continue}if(e.startsWith("on")){m[e]=t;continue}let r=l(t);s&&null!=r&&(g[s]=String(r),o||(p[s]=r)),s&&o&&(r!==nx(t)?p[s]=r:p[s]=t)}if("u">typeof window){for(let t in m){let i=m[t],r=t.endsWith("Capture"),a=((null==s?void 0:s[t])??t.slice(2).toLowerCase()).slice(0,r?-7:void 0);e.useLayoutEffect(()=>{let e=null==c?void 0:c.current;if(e&&"function"==typeof i)return e.addEventListener(a,i,r),()=>{e.removeEventListener(a,i,r)}},[null==c?void 0:c.current,i])}e.useLayoutEffect(()=>{if(null===c.current)return;let e=new Map;for(let t in v)nP(c.current,t,v[t]),f.current.delete(t),e.set(t,v[t]);for(let[e,t]of f.current)nP(c.current,e,void 0);f.current=e})}if("u"<typeof window&&(null==i?void 0:i.getTemplateHTML)&&(null==i?void 0:i.shadowRootOptions)){let{mode:t,delegatesFocus:s}=i.shadowRootOptions;p.children=[e.createElement("template",{shadowrootmode:t,shadowrootdelegatesfocus:s,dangerouslySetInnerHTML:{__html:i.getTemplateHTML(g,r)},key:"ce-la-react-ssr-template-shadow-root"}),p.children]}return e.createElement(t,{...a,...p,ref:e.useCallback(e=>{c.current=e,"function"==typeof d?d(e):null!==d&&(d.current=e)},[d])},p.children)});return d.displayName=r??i.name,d}({react:v.default,tagName:"hls-video",elementClass:nC,toAttributeName:e=>"muted"===e?"":"defaultMuted"===e?"muted":nD(e)});e.s(["default",0,nO],556836)},900001,30094,889096,e=>{"use strict";let t={MEDIA_CHROME_ATTRIBUTES:"mediachromeattributes",MEDIA_CONTROLLER:"mediacontroller"},i={MEDIA_AIRPLAY_UNAVAILABLE:"mediaAirplayUnavailable",MEDIA_AUDIO_TRACK_ENABLED:"mediaAudioTrackEnabled",MEDIA_AUDIO_TRACK_LIST:"mediaAudioTrackList",MEDIA_AUDIO_TRACK_UNAVAILABLE:"mediaAudioTrackUnavailable",MEDIA_BUFFERED:"mediaBuffered",MEDIA_CAST_UNAVAILABLE:"mediaCastUnavailable",MEDIA_CHAPTERS_CUES:"mediaChaptersCues",MEDIA_CURRENT_TIME:"mediaCurrentTime",MEDIA_DURATION:"mediaDuration",MEDIA_ENDED:"mediaEnded",MEDIA_ERROR:"mediaError",MEDIA_ERROR_CODE:"mediaErrorCode",MEDIA_ERROR_MESSAGE:"mediaErrorMessage",MEDIA_FULLSCREEN_UNAVAILABLE:"mediaFullscreenUnavailable",MEDIA_HAS_P
77LAYED:"mediaHasPlayed",MEDIA_HEIGHT:"mediaHeight",MEDIA_IS_AIRPLAYING:"mediaIsAirplaying",MEDIA_IS_CASTING:"mediaIsCasting",MEDIA_IS_FULLSCREEN:"mediaIsFullscreen",MEDIA_IS_PIP:"mediaIsPip",MEDIA_LOADING:"mediaLoading",MEDIA_MUTED:"mediaMuted",MEDIA_LOOP:"mediaLoop",MEDIA_PAUSED:"mediaPaused",MEDIA_PIP_UNAVAILABLE:"mediaPipUnavailable",MEDIA_PLAYBACK_RATE:"mediaPlaybackRate",MEDIA_PREVIEW_CHAPTER:"mediaPreviewChapter",MEDIA_PREVIEW_COORDS:"mediaPreviewCoords",MEDIA_PREVIEW_IMAGE:"mediaPreviewImage",MEDIA_PREVIEW_TIME:"mediaPreviewTime",MEDIA_RENDITION_LIST:"mediaRenditionList",MEDIA_RENDITION_SELECTED:"mediaRenditionSelected",MEDIA_RENDITION_UNAVAILABLE:"mediaRenditionUnavailable",MEDIA_SEEKABLE:"mediaSeekable",MEDIA_STREAM_TYPE:"mediaStreamType",MEDIA_SUBTITLES_LIST:"mediaSubtitlesList",MEDIA_SUBTITLES_SHOWING:"mediaSubtitlesShowing",MEDIA_TARGET_LIVE_WINDOW:"mediaTargetLiveWindow",MEDIA_TIME_IS_LIVE:"mediaTimeIsLive",MEDIA_VOLUME:"mediaVolume",MEDIA_VOLUME_LEVEL:"mediaVolumeLevel",MEDIA_VOLUME_UNAVAILABLE:"mediaVolumeUnavailable",MEDIA_LANG:"mediaLang",MEDIA_WIDTH:"mediaWidth"},s=Object.entries(i),r=s.reduce((e,[t,i])=>(e[t]=i.toLowerCase(),e),{}),a=s.reduce((e,[t,i])=>(e[t]=i.toLowerCase(),e),{USER_INACTIVE_CHANGE:"userinactivechange",BREAKPOINTS_CHANGE:"breakpointchange",BREAKPOINTS_COMPUTED:"breakpointscomputed"}),n=Object.entries(a).reduce((e,[t,i])=>{let s=r[t];return s&&(e[i]=s),e},{userinactivechange:"userinactive"}),l=Object.entries(r).reduce((e,[t,i])=>{let s=a[t];return s&&(e[i]=s),e},{userinactive:"userinactivechange"});e.s(["AttributeToStateChangeEventMap",0,l,"AvailabilityStates",0,{UNAVAILABLE:"unavailable",UNSUPPORTED:"unsupported"},"MediaStateChangeEvents",0,a,"MediaStateReceiverAttributes",0,t,"MediaUIAttributes",0,r,"MediaUIEvents",0,{MEDIA_PLAY_REQUEST:"mediaplayrequest",MEDIA_PAUSE_REQUEST:"mediapauserequest",MEDIA_MUTE_REQUEST:"mediamuterequest",MEDIA_UNMUTE_REQUEST:"mediaunmuterequest",MEDIA_LOOP_REQUEST:"medialooprequest",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_TOGGLE_SUBTITLES_REQUEST:"mediatogglesubtitlesrequest",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"},"MediaUIProps",0,i,"PointerTypes",0,{MOUSE:"mouse",PEN:"pen",TOUCH:"touch"},"ReadyStates",0,{HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4},"StateChangeEventToAttributeMap",0,n,"StreamTypes",0,{LIVE:"live",ON_DEMAND:"on-demand",UNKNOWN:"unknown"},"TextTrackKinds",0,{SUBTITLES:"subtitles",CAPTIONS:"captions",DESCRIPTIONS:"descriptions",CHAPTERS:"chapters",METADATA:"metadata"},"TextTrackModes",0,{DISABLED:"disabled",HIDDEN:"hidden",SHOWING:"showing"},"VolumeLevels",0,{HIGH:"high",MEDIUM:"medium",LOW:"low",OFF:"off"},"WebkitPresentationModes",0,{INLINE:"inline",FULLSCREEN:"fullscreen",PICTURE_IN_PICTURE:"picture-in-picture"}],900001);class o{addEventListener(){}removeEventListener(){}dispatchEvent(){return!0}}class d extends o{}class h extends d{constructor(){super(...arguments),this.role=null}}let u={createElement:function(){return new c.HTMLElement},createElementNS:function(){return new c.HTMLElement},addEventListener(){},removeEventListener(){},dispatchEvent:e=>!1},c={ResizeObserver:class{observe(){}unobserve(){}disconnect(){}},document:u,Node:d,Element:h,HTMLElement:class extends h{constructor(){super(...arguments),this.innerHTML=""}get content(){return new c.DocumentFragment}},DocumentFragment:class extends o{},customElements:{get:function(){},define:function(){},whenDefined:function(){}},localStorage:{getItem:e=>null,setItem(e,t){},removeItem(e){}},CustomEvent:function(){},getComputedStyle:function(){},navigator:{languages:[],get userAgent(){return""}},matchMedia:e=>({matches:!1,media:e}),DOMParser:class{parseFromString(e,t){return{body:{textContent:e}}}}},f="global"in globalThis&&(null==globalThis?void 0:globalThis.global)===globalThis||"u"<typeof window||void 0===window.customElements,m=Object.keys(c).every(e=>e in globalThis),g=f&&!m?c:globalThis,p=f&&!m?u:globalThis.document;function v(e){var i;let{MEDIA_CONTROLLER:s}=t,r=e.getAttribute(s);if(r)return null==(i=y(e))?void 0:i.getElementById(r)}e.s(["document",0,p,"globalThis",0,g],30094);let E=(e,t)=>!!e&&!!t&&(null!=e&&!!e.contains(t)||E(e,t.getRootNode().host)),b=(e,t)=>{if(!e)return null;let i=e.closest(t);return i||b(e.getRootNode().host,t)};function y(e){var t;let i=null==(t=null==e?void 0:e.getRootNode)?void 0:t.call(e);return i instanceof ShadowRoot||i instanceof Document?i:null}function T(e,t){var i,s;let r=null!=(i=e.querySelectorAll("style:not([media])"))?i:[],a=null==r?void 0:r[r.length-1];return(null==a?void 0:a.sheet)?(null==a||a.sheet.insertRule(`${t}{}`,a.sheet.cssRules.length),null==(s=a.sheet.cssRules)?void 0:s[a.sheet.cssRules.length-1]):(console.warn("Media Chrome: No style sheet found on style tag of",e),{style:{setProperty:()=>{},removeProperty:()=>"",getPropertyValue:()=>""}})}function A(e,t,i=NaN){let s=e.getAttribute(t);return null!=s?+s:i}function S(e,t){return e.hasAttribute(t)}function I(e,t,i=null){var s;return null!=(s=e.getAttribute(t))?s:i}e.s(["closestComposedNode",0,b,"containsComposedNode",0,E,"getActiveElement",0,function e(t=document){var i;let s=null==t?void 0:t.activeElement;return s?null!=(i=e(s.shadowRoot))?i:s:null},"getAttributeMediaController",0,v,"getBooleanAttr",0,S,"getDocumentOrShadowRoot",0,y,"getMediaController",0,function(e){var t;return null!=(t=v(e))?t:b(e,"media-controller")},"getNumericAttr",0,A,"getOrInsertCSSRule",0,function(e,t){let i=function(e,t){var i,s;let r;for(r of null!=(i=e.querySelectorAll("style:not([media])"))?i:[]){let e;try{e=null==(s=r.sheet)?void 0:s.cssRules}catch{continue}for(let i of null!=e?e:[])if(t(i.selectorText))return i}}(e,e=>e===t);return i||T(e,t)},"getPointProgressOnLine",0,function(e,t,i,s){let r=s.x-i.x,a=s.y-i.y,n=r*r+a*a;return 0===n?0:Math.max(0,Math.min(1,((e-i.x)*r+(t-i.y)*a)/n))},"getSlotted",0,(e,t)=>{let i,s;return(i=`slot[name="${t}"]`,!(s=e.shadowRoot.querySelector(i))?[]:s.children)[0]},"getStringAttr",0,I,"insertCSSRule",0,T,"isElementVisible",0,function(e,{depth:t=3,checkOpacity:i=!0,checkVisibilityCSS:s=!0}={}){if(e.checkVisibility)return e.checkVisibility({checkOpacity:i,checkVisibilityCSS:s});let r=e;for(;r&&t>0;){let e=getComputedStyle(r);if(i&&"0"===e.opacity||s&&"hidden"===e.visibility||"none"===e.display)return!1;r=r.parentElement,t--}return!0},"namedNodeMapToObject",0,function(e){let t={};for(let i of e)t[i.name]=i.value;return t},"setBooleanAttr",0,function(e,t,i){if(null==i){e.hasAttribute(t)&&e.removeAttribute(t);return}S(e,t)!=i&&e.toggleAttribute(t,i)},"setNumericAttr",0,function(e,t,i){let s=+i;if(null==i||Number.isNaN(s)){e.hasAttribute(t)&&e.removeAttribute(t);return}A(e,t,void 0)!==s&&e.setAttribute(t,`${s}`)},"setStringAttr",0,function(e,t,i){if(null==i){e.hasAttribute(t)&&e.removeAttribute(t);return}let s=`${i}`;I(e,t,void 0)!==s&&e.setAttribute(t,s)},"updateIconText",0,(e,t,i=".value")=>{let s=e.querySelector(i);s&&(s.textContent=t)}],889096)},911639,244899,e=>{"use strict";var t,i,s,r,a,n,l,o=e.i(900001),d=e.i(889096),h=e.i(30094);let u="placement",c="bounds";class f extends h.globalThis.HTMLElement{constructor(){if(super(),this.updateXOffset=()=>{var e;if(!(0,d.isElementVisible)(this,{checkOpacity:!1,checkVisibilityCSS:!1}))return;let t=this.placement;if("left"===t||"right"===t)return void this.style.removeProperty("--media-tooltip-offset-x");let i=getComputedStyle(this),s=null!=(e=(0,d.closestComposedNode)(this,"#"+this.bounds))?e:(0,d.getMediaController)(this);if(!s)return;let{x:r,width:a}=s.getBoundingClientRect(),{x:n,width:l}=this.getBoundingClientRect(),o=i.getPropertyValue("--media-tooltip-offset-x"),h=o?parseFloat(o.replace("px","")):0,u=i.getPropertyValue("--media-tooltip-container-margin"),c=u?parseFloat(u.replace("px","")):0,f=n-r+h-c,m=n+l-(r+a)+h+c;f<0?this.style.setProperty("--media-tooltip-offset-x",`${f}px`):m>0?this.style.setProperty("--media-tooltip-offset-x",`${m}px`):this.style.removeProperty("--media-tooltip-offset-x")},!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,d.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}if(this.arrowEl=this.shadowRoot.querySelector("#arrow"),Object.prototype.hasOwnProperty.call(this,"placement")){const e=this.placement;delete this.placement,this.placement=e}}static get observedAttributes(){return[u,c]}get placement(){return(0,d.getStringAttr)(this,u)}set placement(e){(0,d.setStringAttr)(this,u,e)}get bounds(){return(0,d.getStringAttr)(this,c)}set bounds(e){(0,d.setStringAttr)(this,c,e)}}f.shadowRootOptions={mode:"open"},f.getTemplateHTML=function(e){return`
78    <style>
79      :host {
80        --_tooltip-background-color: var(--media-tooltip-background-color, var(--media-secondary-color, rgba(20, 20, 30, .7)));
81        --_tooltip-background: var(--media-tooltip-background, var(--_tooltip-background-color));
82        --_tooltip-arrow-half-width: calc(var(--media-tooltip-arrow-width, 12px) / 2);
83        --_tooltip-arrow-height: var(--media-tooltip-arrow-height, 5px);
84        --_tooltip-arrow-background: var(--media-tooltip-arrow-color, var(--_tooltip-background-color));
85        position: relative;
86        pointer-events: none;
87        display: var(--media-tooltip-display, inline-flex);
88        justify-content: center;
89        align-items: center;
90        box-sizing: border-box;
91        z-index: var(--media-tooltip-z-index, 1);
92        background: var(--_tooltip-background);
93        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
94        font: var(--media-font,
95          var(--media-font-weight, 400)
96          var(--media-font-size, 13px) /
97          var(--media-text-content-height, var(--media-control-height, 18px))
98          var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));
99        padding: var(--media-tooltip-padding, .35em .7em);
100        border: var(--media-tooltip-border, none);
101        border-radius: var(--media-tooltip-border-radius, 5px);
102        filter: var(--media-tooltip-filter, drop-shadow(0 0 4px rgba(0, 0, 0, .2)));
103        white-space: var(--media-tooltip-white-space, nowrap);
104      }
105
106      :host([hidden]) {
107        display: none;
108      }
109
110      img, svg {
111        display: inline-block;
112      }
113
114      #arrow {
115        position: absolute;
116        width: 0px;
117        height: 0px;
118        border-style: solid;
119        display: var(--media-tooltip-arrow-display, block);
120      }
121
122      :host(:not([placement])),
123      :host([placement="top"]) {
124        position: absolute;
125        bottom: calc(100% + var(--media-tooltip-distance, 12px));
126        left: 50%;
127        transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0
127);
128      }
129      :host(:not([placement])) #arrow,
130      :host([placement="top"]) #arrow {
131        top: 100%;
132        left: 50%;
133        border-width: var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width);
134        border-color: var(--_tooltip-arrow-background) transparent transparent transparent;
135        transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);
136      }
137
138      :host([placement="right"]) {
139        position: absolute;
140        left: calc(100% + var(--media-tooltip-distance, 12px));
141        top: 50%;
142        transform: translate(0, -50%);
143      }
144      :host([placement="right"]) #arrow {
145        top: 50%;
146        right: 100%;
147        border-width: var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width) 0;
148        border-color: transparent var(--_tooltip-arrow-background) transparent transparent;
149        transform: translate(0, -50%);
150      }
151
152      :host([placement="bottom"]) {
153        position: absolute;
154        top: calc(100% + var(--media-tooltip-distance, 12px));
155        left: 50%;
156        transform: translate(calc(-50% - var(--media-tooltip-offset-x, 0px)), 0);
157      }
158      :host([placement="bottom"]) #arrow {
159        bottom: 100%;
160        left: 50%;
161        border-width: 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height) var(--_tooltip-arrow-half-width);
162        border-color: transparent transparent var(--_tooltip-arrow-background) transparent;
163        transform: translate(calc(-50% + var(--media-tooltip-offset-x, 0px)), 0);
164      }
165
166      :host([placement="left"]) {
167        position: absolute;
168        right: calc(100% + var(--media-tooltip-distance, 12px));
169        top: 50%;
170        transform: translate(0, -50%);
171      }
172      :host([placement="left"]) #arrow {
173        top: 50%;
174        left: 100%;
175        border-width: var(--_tooltip-arrow-half-width) 0 var(--_tooltip-arrow-half-width) var(--_tooltip-arrow-height);
176        border-color: transparent transparent transparent var(--_tooltip-arrow-background);
177        transform: translate(0, -50%);
178      }
179      
180      :host([placement="none"]) #arrow {
181        display: none;
182      }
183    </style>
184    <slot></slot>
185    <div id="arrow"></div>
186  `},h.globalThis.customElements.get("media-tooltip")||h.globalThis.customElements.define("media-tooltip",f),e.s(["default",0,f],244899);var m=h,g=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},p=(e,t,i)=>(g(e,t,"read from private field"),i?i.call(e):t.get(e)),v=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},E=(e,t,i,s)=>(g(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);let b="tooltipplacement",y="disabled",T="notooltip";class A extends m.globalThis.HTMLElement{constructor(){if(super(),v(this,n),v(this,t,void 0),this.preventClick=!1,this.tooltipEl=null,v(this,i,e=>{this.preventClick||this.handleClick(e),setTimeout(p(this,s),0)}),v(this,s,()=>{var e,t;null==(t=null==(e=this.tooltipEl)?void 0:e.updateXOffset)||t.call(e)}),v(this,r,e=>{let{key:t}=e;this.keysUsed.includes(t)?this.preventClick||this.handleClick(e):this.removeEventListener("keyup",p(this,r))}),v(this,a,e=>{let{metaKey:t,altKey:i,key:s}=e;t||i||!this.keysUsed.includes(s)?this.removeEventListener("keyup",p(this,r)):this.addEventListener("keyup",p(this,r),{once:!0})}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,d.namedNodeMapToObject)(this.attributes),t=this.constructor.getTemplateHTML(e);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(t):this.shadowRoot.innerHTML=t}this.tooltipEl=this.shadowRoot.querySelector("media-tooltip")}static get observedAttributes(){return["disabled",b,o.MediaStateReceiverAttributes.MEDIA_CONTROLLER,o.MediaUIAttributes.MEDIA_LANG]}enable(){this.addEventListener("click",p(this,i)),this.addEventListener("keydown",p(this,a)),this.tabIndex=0}disable(){this.removeEventListener("click",p(this,i)),this.removeEventListener("keydown",p(this,a)),this.removeEventListener("keyup",p(this,r)),this.tabIndex=-1}attributeChangedCallback(e,i,r){var a,n,l,d,h;e===o.MediaStateReceiverAttributes.MEDIA_CONTROLLER?(i&&(null==(n=null==(a=p(this,t))?void 0:a.unassociateElement)||n.call(a,this),E(this,t,null)),r&&this.isConnected&&(E(this,t,null==(l=this.getRootNode())?void 0:l.getElementById(r)),null==(h=null==(d=p(this,t))?void 0:d.associateElement)||h.call(d,this))):"disabled"===e&&r!==i?null==r?this.enable():this.disable():e===b&&this.tooltipEl&&r!==i?this.tooltipEl.placement=r:e===o.MediaUIAttributes.MEDIA_LA
186NG&&(this.shadowRoot.querySelector('slot[name="tooltip-content"]').innerHTML=this.constructor.getTooltipContentHTML()),p(this,s).call(this)}connectedCallback(){var e,i,s;let{style:r}=(0,d.getOrInsertCSSRule)(this.shadowRoot,":host");r.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),this.hasAttribute("disabled")?this.disable():this.enable(),this.setAttribute("role","button");let a=this.getAttribute(o.MediaStateReceiverAttributes.MEDIA_CONTROLLER);a&&(E(this,t,null==(e=this.getRootNode())?void 0:e.getElementById(a)),null==(s=null==(i=p(this,t))?void 0:i.associateElement)||s.call(i,this)),m.globalThis.customElements.whenDefined("media-tooltip").then(()=>{var e,t;return(e=n,t=l,g(this,e,"access private method"),t).call(this)})}disconnectedCallback(){var e,r;this.disable(),null==(r=null==(e=p(this,t))?void 0:e.unassociateElement)||r.call(e,this),E(this,t,null),this.removeEventListener("mouseenter",p(this,s)),this.removeEventListener("focus",p(this,s)),this.removeEventListener("click",p(this,i))}get keysUsed(){return["Enter"," "]}get tooltipPlacement(){return(0,d.getStringAttr)(this,b)}set tooltipPlacement(e){(0,d.setStringAttr)(this,b,e)}get mediaController(){return(0,d.getStringAttr)(this,o.MediaStateReceiverAttributes.MEDIA_CONTROLLER)}set mediaController(e){(0,d.setStringAttr)(this,o.MediaStateReceiverAttributes.MEDIA_CONTROLLER,e)}get disabled(){return(0,d.getBooleanAttr)(this,y)}set disabled(e){(0,d.setBooleanAttr)(this,y,e)}get noTooltip(){return(0,d.getBooleanAttr)(this,T)}set noTooltip(e){(0,d.setBooleanAttr)(this,T,e)}handleClick(e){}}t=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,a=new WeakMap,n=new WeakSet,l=function(){this.addEventListener("mouseenter",p(this,s)),this.addEventListener("focus",p(this,s)),this.addEventListener("click",p(this,i));let e=this.tooltipPlacement;e&&this.tooltipEl&&(this.tooltipEl.placement=e)},A.shadowRootOptions={mode:"open"},A.getTemplateHTML=function(e,t={}){return`
187    <style>
188      :host {
189        position: relative;
190        font: var(--media-font,
191          var(--media-font-weight, bold)
192          var(--media-font-size, 14px) /
193          var(--media-text-content-height, var(--media-control-height, 24px))
194          var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));
195        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
196        background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));
197        padding: var(--media-button-padding, var(--media-control-padding, 10px));
198        justify-content: var(--media-button-justify-content, center);
199        display: inline-flex;
200        align-items: center;
201        vertical-align: middle;
202        box-sizing: border-box;
203        transition: background .15s linear;
204        pointer-events: auto;
205        cursor: var(--media-cursor, pointer);
206        -webkit-tap-highlight-color: transparent;
207      }
208
209      
210      :host(:focus-visible) {
211        box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));
212        outline: 0;
213      }
214      
215      :host(:where(:focus)) {
216        box-shadow: none;
217        outline: 0;
218      }
219
220      :host(:hover) {
221        background: var(--media-control-hover-background, rgba(50 50 70 / .7));
222      }
223
224      svg, img, ::slotted(svg), ::slotted(img) {
225        width: var(--media-button-icon-width);
226        height: var(--media-button-icon-height, var(--media-control-height, 24px));
227        transform: var(--media-button-icon-transform);
228        transition: var(--media-button-icon-transition);
229        fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));
230        vertical-align: middle;
231        max-width: 100%;
232        max-height: 100%;
233        min-width: 100%;
234      }
235
236      media-tooltip {
237        
238        max-width: 0;
239        overflow-x: clip;
240        opacity: 0;
241        transition: opacity .3s, max-width 0s 9s;
242      }
243
244      :host(:hover) media-tooltip,
245      :host(:focus-visible) media-tooltip {
246        max-width: 100vw;
247        opacity: 1;
248        transition: opacity .3s;
249      }
250
251      :host([notooltip]) slot[name="tooltip"] {
252        display: none;
253      }
254    </style>
255
256    ${this.getSlotTemplateHTML(e,t)}
257
258    <slot name="tooltip">
259      <media-tooltip part="tooltip" aria-hidden="true">
260        <template shadowrootmode="${f.shadowRootOptions.mode}">
261          ${f.getTemplateHTML({})}
262        </template>
263        <slot name="tooltip-content">
264          ${this.getTooltipContentHTML(e)}
265        </slot>
266      </media-tooltip>
267    </slot>
268  `},A.getSlotTemplateHTML=function(e,t){return`
269    <slot></slot>
270  `},A.getTooltipContentHTML=function(){return""},m.globalThis.customElements.get("media-chrome-button")||m.globalThis.customElements.define("media-chrome-button",A),e.s(["MediaChromeButton",0,A,"default",0,A],911639)},11339,e=>{"use strict";var t,i=e.i(911639),s=e.i(30094),r=e.i(900001),a=e.i(789312),n=e.i(889096),l=e.i(12327),o=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot read from private field");return i?i.call(e):t.get(e)};let d="rates",h=[1,1.2,1.5,1.7,2];class u extends i.MediaChromeButton{constructor(){var e;super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,t,new a.AttributeTokenList(this,d,{defaultValue:h})),this.container=this.shadowRoot.querySelector('slot[name="icon"]'),this.container.innerHTML=`${null!=(e=this.mediaPlaybackRate)?e:1}x`}static get observedAttributes(){return[...super.observedAttributes,r.MediaUIAttributes.MEDIA_PLAYBACK_RATE,d]}attributeChangedCallback(e,i,s){if(super.attributeChangedCallback(e,i,s),e===d&&(o(this,t).value=s),e===r.MediaUIAttributes.MEDIA_PLAYBACK_RATE){let e=s?+s:NaN,t=Number.isNaN(e)?1:e;this.container.innerHTML=`${t}x`,this.setAttribute("aria-label",(0,l.t)("Playback rate {playbackRate}",{playbackRate:t}))}}get rates(){return o(this,t)}set rates(e){e?Array.isArray(e)?o(this,t).value=e.join(" "):"string"==typeof e&&(o(this,t).value=e):o(this,t).value=""}get mediaPlaybackRate(){return(0,n.getNumericAttr)(this,r.MediaUIAttributes.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(e){(0,n.setNumericAttr)(this,r.MediaUIAttributes.MEDIA_PLAYBACK_RATE,e)}handleClick(){var e,i;let a=Array.from(o(this,t).values(),e=>+e).sort((e,t)=>e-t),n=null!=(i=null!=(e=a.find(e=>e>this.mediaPlaybackRate))?e:a[0])?i:1,l=new s.globalThis.CustomEvent(r.MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:n});this.dispatchEvent(l)}}t=new WeakMap,u.getSlotTemplateHTML=function(e){return`
271    <style>
272      :host {
273        min-width: 5ch;
274        padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));
275      }
276    </style>
277    <slot name="icon">${e.mediaplaybackrate||1}x</slot>
278  `},u.getTooltipContentHTML=function(){return(0,l.t)("Playback rate")},s.globalThis.customElements.get("media-playback-rate-button")||s.globalThis.customElements.define("media-playback-rate-button",u),e.s(["DEFAULT_RATE",0,1,"DEFAULT_RATES",0,h,"default",0,u])},747426,285664,417379,e=>{"use strict";let t;var i=e.i(699294),s=e.i(900001),r=e.i(30094),a=e.i(889096),n=e.i(489094),l=e.i(474227),o=e.i(436561);let d=e=>(0,o.getTextTracksList)(e.media,e=>[s.TextTrackKinds.SUBTITLES,s.TextTrackKinds.CAPTIONS].includes(e.kind)).sort((e,t)=>e.kind>=t.kind?1:-1),h=e=>(0,o.getTextTracksList)(e.media,e=>e.mode===s.TextTrackModes.SHOWING&&[s.TextTrackKinds.SUBTITLES,s.TextTrackKinds.CAPTIONS].includes(e.kind)),u=(e,t)=>{let i=d(e),r=h(e),a=!!r.length;if(i.length){if(!1===t||a&&!0!==t)(0,o.updateTracksModeTo)(s.TextTrackModes.DISABLED,i,r);else if(!0===t||!a&&!1!==t){let t=i[0],{options:a}=e;if(!(null==a?void 0:a.noSubtitlesLangPref)){let e=globalThis.localStorage.getItem("media-chrome-pref-subtitles-lang"),s=e?[e,...globalThis.navigator.languages]:globalThis.navigator.languages,r=i.filter(e=>s.some(t=>e.language.toLowerCase().startsWith(t.split("-")[0]))).sort((e,t)=>s.findIndex(t=>e.language.toLowerCase().startsWith(t.split("-")[0]))-s.findIndex(e=>t.language.toLowerCase().startsWith(e.split("-")[0])));r[0]&&(t=r[0])}let{language:n,label:l,kind:d}=t;(0,o.updateTracksModeTo)(s.TextTrackModes.DISABLED,i,r),(0,o.updateTracksModeTo)(s.TextTrackModes.SHOWING,i,[{language:n,label:l,kind:d}])}}},c=(e,t)=>e===t||null!=e&&null!=t&&typeof e==typeof t&&(!!("number"==typeof e&&Number.isNaN(e)&&Number.isNaN(t))||"object"==typeof e&&(Array.isArray(e)?f(e,t):Object.entries(e).every(([e,i])=>
278e in t&&c(i,t[e])))),f=(e,t)=>{let i=Array.isArray(e),s=Array.isArray(t);return i===s&&(!i&&!s||e.length===t.length&&e.every((e,i)=>c(e,t[i])))};var m=e.i(966803);let g=Object.values(s.StreamTypes),p=(0,l.hasVolumeSupportAsync)().then(e=>t=e),v=async(...e)=>{await Promise.all(e.filter(e=>e).map(async e=>{if(!("localName"in e&&e instanceof r.globalThis.HTMLElement))return;let t=e.localName;if(!t.includes("-"))return;let i=r.globalThis.customElements.get(t);i&&e instanceof i||(await r.globalThis.customElements.whenDefined(t),r.globalThis.customElements.upgrade(e))}))},E=new r.globalThis.DOMParser,b={mediaError:{get(e,t){let{media:i}=e;if((null==t?void 0:t.type)!=="playing")return null==i?void 0:i.error},mediaEvents:["emptied","error","playing"]},mediaErrorCode:{get(e,t){var i;let{media:s}=e;if((null==t?void 0:t.type)!=="playing")return null==(i=null==s?void 0:s.error)?void 0:i.code},mediaEvents:["emptied","error","playing"]},mediaErrorMessage:{get(e,t){var i,s;let{media:r}=e;if((null==t?void 0:t.type)!=="playing")return null!=(s=null==(i=null==r?void 0:r.error)?void 0:i.message)?s:""},mediaEvents:["emptied","error","playing"]},mediaWidth:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.videoWidth)?t:0},mediaEvents:["resize"]},mediaHeight:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.videoHeight)?t:0},mediaEvents:["resize"]},mediaPaused:{get(e){var t;let{media:i}=e;return null==(t=null==i?void 0:i.paused)||t},set(e,t){var i;let{media:s}=t;s&&(e?s.pause():null==(i=s.play())||i.catch(()=>{}))},mediaEvents:["play","playing","pause","emptied"]},mediaHasPlayed:{get(e,t){let{media:i}=e;return!!i&&(t?"playing"===t.type:!i.paused)},mediaEvents:["playing","emptied"]},mediaEnded:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.ended)&&t},mediaEvents:["seeked","ended","emptied"]},mediaPlaybackRate:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.playbackRate)?t:1},set(e,t){let{media:i}=t;!i||Number.isFinite(+e)&&(i.playbackRate=+e)},mediaEvents:["ratechange","loadstart"]},mediaMuted:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.muted)&&t},set(e,t){let{media:i,options:{noMutedPref:s}={}}=t;if(i){i.muted=e;try{let t=null!==r.globalThis.localStorage.getItem("media-chrome-pref-muted"),a=i.hasAttribute("muted");if(s){t&&r.globalThis.localStorage.removeItem("media-chrome-pref-muted");return}if(a&&!t)return;r.globalThis.localStorage.setItem("media-chrome-pref-muted",e?"true":"false")}catch(e){console.debug("Error setting muted pref",e)}}},mediaEvents:["volumechange"],stateOwnersUpdateHandlers:[(e,t)=>{let{options:{noMutedPref:i}}=t,{media:s}=t;if(s&&!s.muted&&!i)try{let i="true"===r.globalThis.localStorage.getItem("media-chrome-pref-muted");b.mediaMuted.set(i,t),e(i)}catch(e){console.debug("Error getting muted pref",e)}}]},mediaLoop:{get(e){let{media:t}=e;return null==t?void 0:t.loop},set(e,t){let{media:i}=t;i&&(i.loop=e)},mediaEvents:["medialooprequest"]},mediaVolume:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.volume)?t:1},set(e,t){let{media:i,options:{noVolumePref:s}={}}=t;if(i){try{null==e?r.globalThis.localStorage.removeItem("media-chrome-pref-volume"):i.hasAttribute("muted")||s||r.globalThis.localStorage.setItem("media-chrome-pref-volume",e.toString())}catch(e){console.debug("Error setting volume pref",e)}Number.isFinite(+e)&&(i.volume=+e)}},mediaEvents:["volumechange"],stateOwnersUpdateHandlers:[(e,t)=>{let{options:{noVolumePref:i}}=t;if(!i)try{let{media:i}=t;if(!i)return;let s=r.globalThis.localStorage.getItem("media-chrome-pref-volume");if(null==s)return;b.mediaVolume.set(+s,t),e(+s)}catch(e){console.debug("Error getting volume pref",e)}}]},mediaVolumeLevel:{get(e){let{media:t}=e;return void 0===(null==t?void 0:t.volume)?"high":t.muted||0===t.volume?"off":t.volume<.5?"low":t.volume<.75?"medium":"high"},mediaEvents:["volumechange"]},mediaCurrentTime:{get(e){var t;let{media:i}=e;return null!=(t=null==i?void 0:i.currentTime)?t:0},set(e,t){let{media:i}=t;i&&(0,m.isValidNumber)(e)&&(i.currentTime=e)},mediaEvents:["timeupdate","loadedmetadata"]},mediaDuration:{get(e){let{media:t,options:{defaultDuration:i}={}}=e;return i&&(!t||!t.duration||Number.isNaN(t.duration)||!Number.isFinite(t.duration))?i:Number.isFinite(null==t?void 0:t.duration)?t.duration:NaN},mediaEvents:["durationchange","loadedmetadata","emptied"]},mediaLoading:{get(e){let{media:t}=e;return(null==t?void 0:t.readyState)<3},mediaEvents:["waiting","playing","emptied"]},mediaSeekable:{get(e){var t;let{media:i}=e;if(!(null==(t=null==i?void 0:i.seekable)?void 0:t.length))return;let s=i.seekable.start(0),r=i.seekable.end(i.seekable.length-1);if(s||r)return[Number(s.toFixed(3)),Number(r.toFixed(3))]},mediaEvents:["loadedmetadata","emptied","progress","seekablechange"]},mediaBuffered:{get(e){var t;let{media:i}=e,s=null!=(t=null==i?void 0:i.buffered)?t:[];return Array.from(s).map((e,t)=>[Number(s.start(t).toFixed(3)),Number(s.end(t).toFixed(3))])},mediaEvents:["progress","emptied"]},mediaStreamType:{get(e){let{media:t,options:{defaultStreamType:i}={}}=e,r=[s.StreamTypes.LIVE,s.StreamTypes.ON_DEMAND].includes(i)?i:void 0;if(!t)return r;let{streamType:a}=t;if(g.includes(a))return a===s.StreamTypes.UNKNOWN?r:a;let n=t.duration;return n===1/0?s.StreamTypes.LIVE:Number.isFinite(n)?s.StreamTypes.ON_DEMAND:r}
278,mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange"]},mediaTargetLiveWindow:{get(e){let{media:t}=e;if(!t)return NaN;let{targetLiveWindow:i}=t,r=b.mediaStreamType.get(e);return(null==i||Number.isNaN(i))&&r===s.StreamTypes.LIVE?0:i},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange","targetlivewindowchange"]},mediaTimeIsLive:{get(e){let{media:t,options:{liveEdgeOffset:i=10}={}}=e;if(!t)return!1;if("number"==typeof t.liveEdgeStart)return!Number.isNaN(t.liveEdgeStart)&&t.currentTime>=t.liveEdgeStart;if(b.mediaStreamType.get(e)!==s.StreamTypes.LIVE)return!1;let r=t.seekable;if(!r)return!0;if(!r.length)return!1;let a=r.end(r.length-1)-i;return t.currentTime>=a},mediaEvents:["playing","timeupdate","progress","waiting","emptied"]},mediaSubtitlesList:{get:e=>d(e).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i})),mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack"]},mediaSubtitlesShowing:{get:e=>h(e).map(({kind:e,label:t,language:i})=>({kind:e,label:t,language:i})),mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack","change"],stateOwnersUpdateHandlers:[(e,t)=>{var i,r;let{media:a,options:n}=t;if(!a)return;let l=e=>{var i;n.defaultSubtitles&&(e&&![s.TextTrackKinds.CAPTIONS,s.TextTrackKinds.SUBTITLES].includes(null==(i=null==e?void 0:e.track)?void 0:i.kind)||u(t,!0))};return a.addEventListener("loadstart",l),null==(i=a.textTracks)||i.addEventListener("addtrack",l),null==(r=a.textTracks)||r.addEventListener("removetrack",l),()=>{var e,t;a.removeEventListener("loadstart",l),null==(e=a.textTracks)||e.removeEventListener("addtrack",l),null==(t=a.textTracks)||t.removeEventListener("removetrack",l)}}]},mediaChaptersCues:{get(e){var t;let{media:i}=e;if(!i)return[];let[r]=(0,o.getTextTracksList)(i,{kind:s.TextTrackKinds.CHAPTERS});return Array.from(null!=(t=null==r?void 0:r.cues)?t:[]).map(({text:e,startTime:t,endTime:i})=>({text:e&&E.parseFromString(e,"text/html").body.textContent||e,startTime:t,endTime:i}))},mediaEvents:["loadstart","loadedmetadata"],textTracksEvents:["addtrack","removetrack","change"],stateOwnersUpdateHandlers:[(e,t)=>{var i;let{media:s}=t;if(!s)return;let r=s.querySelector('track[kind="chapters"][default][src]'),a=null==(i=s.shadowRoot)?void 0:i.querySelector(':is(video,audio) > track[kind="chapters"][default][src]');return null==r||r.addEventListener("load",e),null==a||a.addEventListener("load",e),()=>{null==r||r.removeEventListener("load",e),null==a||a.removeEventListener("load",e)}}]},mediaIsPip:{get(e){var t,i;let{media:s,documentElement:r}=e;if(!s||!r||!r.pictureInPictureElement)return!1;if(r.pictureInPictureElement===s)return!0;if(r.pictureInPictureElement instanceof HTMLMediaElement)return!!(null==(t=s.localName)?void 0:t.includes("-"))&&(0,a.containsComposedNode)(s,r.pictureInPictureElement);if(r.pictureInPictureElement.localName.includes("-")){let e=r.pictureInPictureElement.shadowRoot;for(;null==e?void 0:e.pictureInPictureElement;){if(e.pictureInPictureElement===s)return!0;e=null==(i=e.pictureInPictureElement)?void 0:i.shadowRoot}}return!1},set(e,t){let{media:i}=t;if(i)if(e){if(!r.document.pictureInPictureEnabled)return void console.warn("MediaChrome: Picture-in-picture is not enabled");if(!i.requestPictureInPicture)return void console.warn("MediaChrome: The current media does not support picture-in-picture");let e=()=>{console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.")};i.requestPictureInPicture().catch(t=>{if(11===t.code){if(!i.src)return void console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a src set.");if(0===i.readyState&&"none"===i.preload){let t=()=>{i.removeEventListener("loadedmetadata",s),i.preload="none"},s=()=>{i.requestPictureInPicture().catch(e),t()};i.addEventListener("loadedmetadata",s),i.preload="metadata",setTimeout(()=>{0===i.readyState&&e(),t()},1e3)}else throw t}else throw t})}else r.document.pictureInPictureElement&&r.document.exitPictureInPicture()},mediaEvents:["enterpictureinpicture","leavepictureinpicture"]},mediaRenditionList:{get(e){var t;let{media:i}=e;return[...null!=(t=null==i?void 0:i.videoRenditions)?t:[]].map(e=>({...e}))},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},mediaRenditionSelected:{get(e){var t,i,s;let{media:r}=e;return null==(s=null==(i=null==r?void 0:r.videoRenditions)?void 0:i[null==(t=r.videoRenditions)?void 0:t.selectedIndex])?void 0:s.id},set(e,t){let{media:i}=t;if(!(null==i?void 0:i.videoRenditions))return void console.warn("MediaController: Rendition selection not supported by this media.");let s=Array.prototype.findIndex.call(i.videoRenditions,t=>t.id==e);i.videoRenditions.selectedIndex!=s&&(i.videoRenditions.selectedIndex=s)},mediaEvents:["emptied"],videoRenditionsEvents:["addrendition","removerendition","change"]},mediaAudioTrackList:{get(e){var t;let{media:i}=e;return[...null!=(t=null==i?void 0:i.audioTracks)?t:[]]},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},mediaAudioTrackEnabled:{get(e){var t,i;let{media:s}=e;return null==(i=[...null!=(t=null==s?void 0:s.audioTracks)?t:[]].find(e=>e.enabled))?void 0:i.id},set(e,t){let{media:i}=t;if(!(null==i?void 0:i.audioTracks))return void console.warn("MediaChrome: Audio track selection not supported by this media.");
278for(let t of i.audioTracks)t.enabled=e==t.id},mediaEvents:["emptied"],audioTracksEvents:["addtrack","removetrack","change"]},mediaIsFullscreen:{get:e=>(0,n.isFullscreen)(e),set(e,t,i){var s;e?((0,n.enterFullscreen)(t),i.detail&&(null==(s=t.media)||s.focus())):(0,n.exitFullscreen)(t)},rootEvents:["fullscreenchange","webkitfullscreenchange"],mediaEvents:["webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"]},mediaIsCasting:{get(e){var t;let{media:i}=e;return!!(null==i?void 0:i.remote)&&(null==(t=i.remote)?void 0:t.state)!=="disconnected"&&!!i.remote.state},set(e,t){var i,s;let{media:r}=t;if(r&&(!e||(null==(i=r.remote)?void 0:i.state)==="disconnected")&&(e||(null==(s=r.remote)?void 0:s.state)==="connected")){if("function"!=typeof r.remote.prompt)return void console.warn("MediaChrome: Casting is not supported in this environment");r.remote.prompt().catch(()=>{})}},remoteEvents:["connect","connecting","disconnect"]},mediaIsAirplaying:{get:()=>!1,set(e,t){let{media:i}=t;if(i){if(!(i.webkitShowPlaybackTargetPicker&&r.globalThis.WebKitPlaybackTargetAvailabilityEvent))return void console.error("MediaChrome: received a request to select AirPlay but AirPlay is not supported in this environment");i.webkitShowPlaybackTargetPicker()}},mediaEvents:["webkitcurrentplaybacktargetiswirelesschanged"]},mediaFullscreenUnavailable:{get(e){let{media:t}=e;if(!l.fullscreenSupported||!(0,l.hasFullscreenSupport)(t))return s.AvailabilityStates.UNSUPPORTED}},mediaPipUnavailable:{get(e){let{media:t}=e;return l.pipSupported&&(0,l.hasPipSupport)(t)?(null==t?void 0:t.disablePictureInPicture)?s.AvailabilityStates.UNAVAILABLE:void 0:s.AvailabilityStates.UNSUPPORTED}},mediaVolumeUnavailable:{get(e){let{media:i}=e;if(!1===t||(null==i?void 0:i.volume)==void 0)return s.AvailabilityStates.UNSUPPORTED},stateOwnersUpdateHandlers:[e=>{null==t&&p.then(t=>e(t?void 0:s.AvailabilityStates.UNSUPPORTED))}]},mediaCastUnavailable:{get(e,{availability:t="not-available"}={}){var i;let{media:r}=e;return l.castSupported&&(null==(i=null==r?void 0:r.remote)?void 0:i.state)?null!=t&&"available"!==t?s.AvailabilityStates.UNAVAILABLE:void 0:s.AvailabilityStates.UNSUPPORTED},stateOwnersUpdateHandlers:[(e,t)=>{var i;let{media:s}=t;if(s)return s.disableRemotePlayback||s.hasAttribute("disableremoteplayback")||null==(i=null==s?void 0:s.remote)||i.watchAvailability(t=>{e({availability:t?"available":"not-available"})}).catch(t=>{"NotSupportedError"===t.name?e({availability:null}):e({availability:"not-available"})}),()=>{var e;null==(e=null==s?void 0:s.remote)||e.cancelWatchAvailability().catch(()=>{})}}]},mediaAirplayUnavailable:{get:(e,t)=>l.airplaySupported?(null==t?void 0:t.availability)==="not-available"?s.AvailabilityStates.UNAVAILABLE:void 0:s.AvailabilityStates.UNSUPPORTED,mediaEvents:["webkitplaybacktargetavailabilitychanged"],stateOwnersUpdateHandlers:[(e,t)=>{var i;let{media:s}=t;if(s)return s.disableRemotePlayback||s.hasAttribute("disableremoteplayback")||null==(i=null==s?void 0:s.remote)||i.watchAvailability(t=>{e({availability:t?"available":"not-available"})}).catch(t=>{"NotSupportedError"===t.name?e({availability:null}):e({availability:"not-available"})}),()=>{var e;null==(e=null==s?void 0:s.remote)||e.cancelWatchAvailability().catch(()=>{})}}]},mediaRenditionUnavailable:{get(e){var t;let{media:i}=e;return(null==i?void 0:i.videoRenditions)?(null==(t=i.videoRenditions)?void 0:t.length)?void 0:s.AvailabilityStates.UNAVAILABLE:s.AvailabilityStates.UNSUPPORTED},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},mediaAudioTrackUnavailable:{get(e){var t,i;let{media:r}=e;return(null==r?void 0:r.audioTracks)?(null!=(i=null==(t=r.audioTracks)?void 0:t.length)?i:0)<=1?s.AvailabilityStates.UNAVAILABLE:void 0:s.AvailabilityStates.UNSUPPORTED},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},mediaLang:{get(e){let{options:{mediaLang:t}={}}=e;return null!=t?t:"en"}}},y={[s.MediaUIEvents.MEDIA_PREVIEW_REQUEST](e,t,{detail:i}){var r,a,n;let l,d,{media:h}=t,u=null!=i?i:void 0;if(h&&null!=u){let[e]=(0,o.getTextTracksList)(h,{kind:s.TextTrackKinds.METADATA,label:"thumbnails"}),t=Array.prototype.find.call(null!=(r=null==e?void 0:e.cues)?r:[],
278(e,t,i)=>0===t?e.endTime>u:t===i.length-1?e.startTime<=u:e.startTime<=u&&e.endTime>u);if(t){let e=/'^(?:[a-z]+:)?\/\//i.test(t.text)||null==(a=null==h?void 0:h.querySelector('track[label="thumbnails"]'))?void 0:a.src,i=new URL(t.text,e);d=new URLSearchParams(i.hash).get("#xywh").split(",").map(e=>+e),l=i.href}}let c=e.mediaDuration.get(t),f=null==(n=e.mediaChaptersCues.get(t).find((e,t,i)=>t===i.length-1&&c===e.endTime?e.startTime<=u&&e.endTime>=u:e.startTime<=u&&e.endTime>u))?void 0:n.text;return null!=i&&null==f&&(f=""),{mediaPreviewTime:u,mediaPreviewImage:l,mediaPreviewCoords:d,mediaPreviewChapter:f}},[s.MediaUIEvents.MEDIA_PAUSE_REQUEST](e,t){e.mediaPaused.set(!0,t)},[s.MediaUIEvents.MEDIA_PLAY_REQUEST](e,t){var i,r,a,n;let l=e.mediaStreamType.get(t)===s.StreamTypes.LIVE,o=!(null==(i=t.options)?void 0:i.noAutoSeekToLive),d=e.mediaTargetLiveWindow.get(t)>0;if(l&&o&&!d){let i=null==(r=e.mediaSeekable.get(t))?void 0:r[1];if(i){let s=null!=(n=null==(a=t.options)?void 0:a.seekToLiveOffset)?n:0;e.mediaCurrentTime.set(i-s,t)}}e.mediaPaused.set(!1,t)},[s.MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST](e,t,{detail:i}){e.mediaPlaybackRate.set(i,t)},[s.MediaUIEvents.MEDIA_MUTE_REQUEST](e,t){e.mediaMuted.set(!0,t)},[s.MediaUIEvents.MEDIA_UNMUTE_REQUEST](e,t){e.mediaVolume.get(t)||e.mediaVolume.set(.25,t),e.mediaMuted.set(!1,t)},[s.MediaUIEvents.MEDIA_LOOP_REQUEST](e,t,{detail:i}){let s=!!i;return e.mediaLoop.set(s,t),{mediaLoop:s}},[s.MediaUIEvents.MEDIA_VOLUME_REQUEST](e,t,{detail:i}){i&&e.mediaMuted.get(t)&&e.mediaMuted.set(!1,t),e.mediaVolume.set(i,t)},[s.MediaUIEvents.MEDIA_SEEK_REQUEST](e,t,{detail:i}){e.mediaCurrentTime.set(i,t)},[s.MediaUIEvents.MEDIA_SEEK_TO_LIVE_REQUEST](e,t){var i,s,r;let a=null==(i=e.mediaSeekable.get(t))?void 0:i[1];if(Number.isNaN(Number(a)))return;let n=null!=(r=null==(s=t.options)?void 0:s.seekToLiveOffset)?r:0;e.mediaCurrentTime.set(a-n,t)},[s.MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST](e,t,{detail:i}){var a;let{options:n}=t,l=d(t),h=(0,o.parseTracks)(i),u=null==(a=h[0])?void 0:a.language;u&&!n.noSubtitlesLangPref&&r.globalThis.localStorage.setItem("media-chrome-pref-subtitles-lang",u),(0,o.updateTracksModeTo)(s.TextTrackModes.SHOWING,l,h)},[s.MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST](e,t,{detail:i}){let r=d(t);(0,o.updateTracksModeTo)(s.TextTrackModes.DISABLED,r,null!=i?i:[])},[s.MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST](e,t,{detail:i}){u(t,i)},[s.MediaUIEvents.MEDIA_RENDITION_REQUEST](e,t,{detail:i}){e.mediaRenditionSelected.set(i,t)},[s.MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST](e,t,{detail:i}){e.mediaAudioTrackEnabled.set(i,t)},[s.MediaUIEvents.MEDIA_ENTER_PIP_REQUEST](e,t){e.mediaIsFullscreen.get(t)&&e.mediaIsFullscreen.set(!1,t),e.mediaIsPip.set(!0,t)},[s.MediaUIEvents.MEDIA_EXIT_PIP_REQUEST](e,t){e.mediaIsPip.set(!1,t)},[s.MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST](e,t,i){e.mediaIsPip.get(t)&&e.mediaIsPip.set(!1,t),e.mediaIsFullscreen.set(!0,t,i)},[s.MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST](e,t){e.mediaIsFullscreen.set(!1,t)},[s.MediaUIEvents.MEDIA_ENTER_CAST_REQUEST](e,t){e.mediaIsFullscreen.get(t)&&e.mediaIsFullscreen.set(!1,t),e.mediaIsCasting.set(!0,t)},[s.MediaUIEvents.MEDIA_EXIT_CAST_REQUEST](e,t){e.mediaIsCasting.set(!1,t)},[s.MediaUIEvents.MEDIA_AIRPLAY_REQUEST](e,t){e.mediaIsAirplaying.set(!0,t)}},T=({media:e,fullscreenElement:t,documentElement:i,stateMediator:s=b,requestMap:r=y,options:a={},monitorStateOwnersOnlyWithSubscriptions:n=!0})=>{let l,o=[],d={options:{...a}},h=Object.freeze({mediaPreviewTime:void 0,mediaPreviewImage:void 0,mediaPreviewCoords:void 0,mediaPreviewChapter:void 0}),u=e=>{void 0==e||c(e,h)||(h=Object.freeze({...h,...e}),o.forEach(e=>e(h)))},f=()=>{u(Object.entries(s).reduce((e,[t,{get:i}])=>(e[t]=i(d),e),{}))},m={},g=async(e,t)=>{var i,r,a,h,c,g,p,E,b,y,T,A,S,I,L,k;let R=!!l;if(l={...d,...null!=l?l:{},...e},R)return;await v(...Object.values(e));let M=o.length>0&&0===t&&n,C=d.media!==l.media,_=(null==(i=d.media)?void 0:i.textTracks)!==(null==(r=l.media)?void 0:r.textTracks),w=(null==(a=d.media)?void 0:a.videoRenditions)!==(null==(h=l.media)?void 0:h.videoRenditions),D=(null==(c=d.media)?void 0:c.audioTracks)!==(null==(g=l.media)?void 0:g.audioTracks),x=(null==(p=d.media)?void 0:p.remote)!==(null==(E=l.media)?void 0:E.remote),P=d.documentElement!==l.documentElement,O=!!d.media&&(C||M),U=!!(null==(b=d.media)?void 0:b.textTracks)&&(_||M),N=!!(null==(y=d.media)?void 0:y.videoRenditions)&&(w||M),F=!!(null==(T=d.media)?void 0:T.audioTracks)&&(D||M),B=!!(null==(A=d.media)?void 0:A.remote)&&(x||M),$=!!d.documentElement&&(P||M),H=O||U||N||F||B||$,G=0===o.length&&1===t&&n,V=!!l.media&&(C||G),W=!!(null==(S=l.media)?void 0:S.textTracks)&&(_||G),K=!!(null==(I=l.media)?void 0:I.videoRenditions)&&(w||G),j=!!(null==(L=l.media)?void 0:L.audioTracks)&&(D||G),q=!!(null==(k=l.media)?void 0:k.remote)&&(x||G),Y=!!l.documentElement&&(P||G),Q=V||W||K||j||q||Y;if(!(H||Q)){Object.entries(l).forEach(([e,t])=>{d[e]=t}),f(),l=void 0;return}
278Object.entries(s).forEach(([e,{get:t,mediaEvents:i=[],textTracksEvents:s=[],videoRenditionsEvents:r=[],audioTracksEvents:a=[],remoteEvents:n=[],rootEvents:o=[],stateOwnersUpdateHandlers:h=[]}])=>{let c;m[e]||(m[e]={});let f=i=>{u({[e]:t(d,i)})};c=m[e].mediaEvents,i.forEach(t=>{c&&O&&(d.media.removeEventListener(t,c),m[e].mediaEvents=void 0),V&&(l.media.addEventListener(t,f),m[e].mediaEvents=f)}),c=m[e].textTracksEvents,s.forEach(t=>{var i,s;c&&U&&(null==(i=d.media.textTracks)||i.removeEventListener(t,c),m[e].textTracksEvents=void 0),W&&(null==(s=l.media.textTracks)||s.addEventListener(t,f),m[e].textTracksEvents=f)}),c=m[e].videoRenditionsEvents,r.forEach(t=>{var i,s;c&&N&&(null==(i=d.media.videoRenditions)||i.removeEventListener(t,c),m[e].videoRenditionsEvents=void 0),K&&(null==(s=l.media.videoRenditions)||s.addEventListener(t,f),m[e].videoRenditionsEvents=f)}),c=m[e].audioTracksEvents,a.forEach(t=>{var i,s;c&&F&&(null==(i=d.media.audioTracks)||i.removeEventListener(t,c),m[e].audioTracksEvents=void 0),j&&(null==(s=l.media.audioTracks)||s.addEventListener(t,f),m[e].audioTracksEvents=f)}),c=m[e].remoteEvents,n.forEach(t=>{var i,s;c&&B&&(null==(i=d.media.remote)||i.removeEventListener(t,c),m[e].remoteEvents=void 0),q&&(null==(s=l.media.remote)||s.addEventListener(t,f),m[e].remoteEvents=f)}),c=m[e].rootEvents,o.forEach(t=>{c&&$&&(d.documentElement.removeEventListener(t,c),m[e].rootEvents=void 0),Y&&(l.documentElement.addEventListener(t,f),m[e].rootEvents=f)});let g=m[e].stateOwnersUpdateHandlers;if(g&&H&&(Array.isArray(g)?g:[g]).forEach(e=>{"function"==typeof e&&e()}),Q){let t=h.map(e=>e(f,l)).filter(e=>"function"==typeof e);m[e].stateOwnersUpdateHandlers=1===t.length?t[0]:t}else H&&(m[e].stateOwnersUpdateHandlers=void 0)}),Object.entries(l).forEach(([e,t])=>{d[e]=t}),f(),l=void 0};return g({media:e,fullscreenElement:t,documentElement:i,options:a}),{dispatch(e){let{type:t,detail:i}=e;r[t]&&null==h.mediaErrorCode?u(r[t](s,d,e)):"mediaelementchangerequest"===t?g({media:i}):"fullscreenelementchangerequest"===t?g({fullscreenElement:i}):"documentelementchangerequest"===t?g({documentElement:i}):"optionschangerequest"===t&&(Object.entries(null!=i?i:{}).forEach(([e,t])=>{d.options[e]=t}),f())},getState:()=>h,subscribe:e=>(g({},o.length+1),o.push(e),e(h),()=>{let t=o.indexOf(e);t>=0&&(g({},o.length-1),o.splice(t,1))})}};e.s(["createMediaStore",0,T],285664);let A="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},S=[{singular:"hour",plural:"hours"},{singular:"minute",plural:"minutes"},{singular:"second",plural:"seconds"}],I=Object.freeze({length:0,start(e){let t=e>>>0;if(t>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${t}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(e){let t=e>>>0;if(t>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${t}) is greater than or equal to the maximum bound (${this.length}).`);return 0}});e.s(["emptyTimeRanges",0,I,"formatAsTimePhrase",0,e=>{if(!(0,m.isValidNumber)(e))return"";let t=Math.abs(e),i=t!==e,s=new Date(0,0,0,0,0,t,0),r=[s.getHours(),s.getMinutes(),s.getSeconds()].map((e,t)=>{let i;return e&&(i=1===e?S[t].singular:S[t].plural,`${e} ${i}`)}).filter(e=>e).join(", ");return`${r}${i?" remaining":""}`},"formatTime",0,function(e,t){let i=!1;e<0&&(i=!0,e=0-e);let s=Math.floor((e=e<0?0:e)%60),r=Math.floor(e/60%60),a=Math.floor(e/3600),n=Math.floor(t/60%60),l=Math.floor(t/3600);return(isNaN(e)||e===1/0)&&(a=r=s="0"),r=(((a=a>0||l>0?a+":":"")||n>=10)&&r<10?"0"+r:r)+":",(i?"-":"")+a+r+(s=s<10?"0"+s:s)},"serializeTimeRanges",0,function(e=I){return Array.from(e).map((t,i)=>[Number(e.start(i).toFixed(3)),Number(e.end(i).toFixed(3))].join(":")).join(" ")}],417379),e.i(417379);let{REGISTER_MEDIA_STATE_RECEIVER:L,UNREGISTER_MEDIA_STATE_RECEIVER:k,MEDIA_SHOW_TEXT_TRACKS_REQUEST:R,MEDIA_HIDE_TEXT_TRACKS_REQUEST:M,...C}=s.MediaUIEvents,_={...C,MEDIA_ELEMENT_CHANGE_REQUEST:"mediaelementchangerequest",FULLSCREEN_ELEMENT_CHANGE_REQUEST:"fullscreenelementchangerequest"};({...s.MediaUIProps});let w=e=>e,D=(0,i.createContext)(null),x=()=>{var e;let t=(0,i.useContext)(D),s=null!=(e=null==t?void 0:t.dispatch)?e:w;return e=>s(e)},P=(e,t)=>e===t;
278e.s(["MediaActionTypes",0,_,"MediaProvider",0,({children:e,mediaStore:t})=>{let s=(0,i.useMemo)(()=>null!=t?t:T({documentElement:globalThis.document}),[t]);return(0,i.useEffect)(()=>(null==s||s.dispatch({type:"documentelementchangerequest",detail:globalThis.document}),()=>{null==s||s.dispatch({type:"documentelementchangerequest",detail:void 0})}),[]),i.default.createElement(D.Provider,{value:s},e)},"useMediaDispatch",0,x,"useMediaRef",0,()=>{let e=x();return t=>{e({type:_.MEDIA_ELEMENT_CHANGE_REQUEST,detail:t})}},"useMediaSelector",0,(e,t=P)=>{var s,r,a;let n=(0,i.useContext)(D);return function(e,t,s,r,a){let n,l=(0,i.useRef)(null);null===l.current?l.current=n={hasValue:!1,value:null}:n=l.current;let[o,d]=(0,i.useMemo)(()=>{let e,i,l=!1,o=t=>{if(!l){l=!0,e=t;let s=r(t);if(void 0!==a&&n.hasValue){let e=n.value;if(a(e,s))return i=e,e}return i=s,s}let s=i;if(A(e,t))return s;let o=r(t);return void 0!==a&&a(s,o)?s:(e=t,i=o,o)},d=void 0===s?null:s;return[()=>o(t()),null===d?void 0:()=>o(d())]},[t,s,r,a]),h=(0,i.useSyncExternalStore)(e,o,d);return(0,i.useEffect)(()=>{n.hasValue=!0,n.value=h},[h]),(0,i.useDebugValue)(h),h}(null!=(s=null==n?void 0:n.subscribe)?s:w,null!=(r=null==n?void 0:n.getState)?r:w,null!=(a=null==n?void 0:n.getState)?a:w,e,t)}],747426)},838078,e=>{"use strict";var t,i,s,r,a,n,l,o,d,h,u,c,f,m,g,p,v,E,b,y,T,A,S,I,L,k,R,M,C,_,w,D,x,P,O,U,N,F,B,$,H,G,V,W,K,j,q,Y,Q,z,X,Z,J,ee,et,ei,es,er,ea,en,el,eo,ed,eh,eu,ec,ef,em,eg,ep,ev,eE,eb,ey,eT,eA,eS,eI,eL,ek,eR,eM,eC,e_,ew,eD,ex,eP,eO,eU,eN,eF,eB,e$,eH,eG,eV,eW,eK=e.i(699294),ej=e.i(711808),eq=e.i(900001),eY=e.i(30094);function eQ(e){return e.split("-")[0]}var ez=e.i(309869);class eX extends Event{constructor({action:e="auto",relatedTarget:t,...i}){super("invoke",i),this.action=e,this.relatedTarget=t}}class eZ extends Event{constructor({newState:e,oldState:t,...i}){super("toggle",i),this.newState=e,this.oldState=t}}var eJ=e.i(889096),e0=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},e1=(e,t,i)=>(e0(e,t,"read from private field"),i?i.call(e):t.get(e)),e2=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},e3=(e,t,i,s)=>(e0(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),e4=(e,t,i)=>(e0(e,t,"access private method"),i);function e5({type:e,text:t,value:i,checked:s}){let r=eY.document.createElement("media-chrome-menu-item");r.type=null!=e?e:"",r.part.add("menu-item"),e&&r.part.add(e),r.value=i,r.checked=s;let a=eY.document.createElement("span");return a.textContent=t,r.append(a),r}function e8(e,t){let i=e.querySelector(`:scope > [slot="${t}"]`);if((null==i?void 0:i.nodeName)=="SLOT"&&(i=i.assignedElements({flatten:!0})[0]),i)return i.cloneNode(!0);let s=e.shadowRoot.querySelector(`[name="${t}"] > svg`);return s?s.cloneNode(!0):""}let e6="style",e9="hidden",e7="disabled";class te extends eY.globalThis.HTMLElement{constructor(){if(super(),e2(this,o),e2(this,h),e2(this,f),e2(this,g),e2(this,v),e2(this,b),e2(this,S),e2(this,L),e2(this,R),e2(this,C),e2(this,w),e2(this,x),e2(this,O),e2(this,N),e2(this,B),e2(this,H),e2(this,V),e2(this,K),e2(this,t,null),e2(this,i,null),e2(this,s,null),e2(this,r,new Set),e2(this,a,void 0),e2(this,n,!1),e2(this,l,null),e2(this,c,()=>{let e=e1(this,r),t=new Set(this.items);for(let i of e)t.has(i)||this.dispatchEvent(new CustomEvent("removemenuitem",{detail:i}));for(let i of t)e.has(i)||this.dispatchEvent(new CustomEvent("addmenuitem",{detail:i}));e3(this,r,t)}),e2(this,T,()=>{e4(this,S,I).call(this),e4(this,L,k).call(this,!1)}),e2(this,A,()=>{e4(this,S,I).call(this)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,eJ.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}this.container=this.shadowRoot.querySelector("#container"),this.defaultSlot=this.shadowRoot.querySelector("slot:not([name])"),this.shadowRoot.addEventListener("slotchange",this),e3(this,a,new MutationObserver(e1(this,c))),e1(this,a).observe(this.defaultSlot,{childList:!0})}static get observedAttributes(){return[e7,e9,e6,"anchor",eq.MediaStateReceiverAttributes.MEDIA_CONTROLLER]}static formatMenuItemText(e,t){return e}enable(){this.addEventListener("click",this),this.addEventListener("focusout",this),this.addEventListener("keydown",this),this.addEventListener("invoke",this),this.addEventListener("toggle",this)}disable(){this.removeEventListener("click",this),this.removeEventListener("focusout",this),this.removeEventListener("keyup",this),this.removeEventListener("invoke",this),this.removeEventListener("toggle",this)}handleEvent(e){switch(e.type){case"slotchange":e4(this,o,d).call(this,e);break;case"invoke":e4(this,g,p).call(this,e);break;case"click":e4(this,R,M).call(this,e);break;case"toggle":e4(this,w,D).call(this,e);break;case"focusout":e4(this,O,U).call(this,e);break;case"keydown":e4(this,N,F).call(this,e)}}connectedCallback(){var e,i;e3(this,l,(0,eJ.insertCSSRule)(this.shadowRoot,":host")),e4(this,f,m).call(this),this.hasAttribute("disabled")||this.enable(),this.role||(this.role="menu"),e3(this,t,(0,eJ.getAttributeMediaController)(this)),null==(i=null==(e=e1(this,t))?void 0:e.associateElement)||i.call(e,this),this.hidden||((0,ez.observeResize)(ti(this),e1(this,T)),(0,ez.observeResize)(this,e1(this,A))),e4(this,h,u).call(this)}disconnectedCallback(){var e,i;(0,ez.unobserveResize)(ti(this),e1(this,T)),(0,ez.unobserveResize)(this,e1(this,A)),this.disable(),null==(i=null==(e=e1(this,t))?void 0:e.unassociateElement)||i.call(e,this),e3(this,t,null)}attributeChangedCallback(e,i,s){var r,a,l,o;e===e9&&s!==i?(e1(this,n)||e3(this,n,!0),this.hidden?e4(this,b,y).call(this):e4(this,v,E).c
278all(this),this.dispatchEvent(new eZ({oldState:this.hidden?"open":"closed",newState:this.hidden?"closed":"open",bubbles:!0}))):e===eq.MediaStateReceiverAttributes.MEDIA_CONTROLLER?(i&&(null==(a=null==(r=e1(this,t))?void 0:r.unassociateElement)||a.call(r,this),e3(this,t,null)),s&&this.isConnected&&(e3(this,t,(0,eJ.getAttributeMediaController)(this)),null==(o=null==(l=e1(this,t))?void 0:l.associateElement)||o.call(l,this))):e===e7&&s!==i?null==s?this.enable():this.disable():e===e6&&s!==i&&e4(this,f,m).call(this)}formatMenuItemText(e,t){return this.constructor.formatMenuItemText(e,t)}get anchor(){return this.getAttribute("anchor")}set anchor(e){this.setAttribute("anchor",`${e}`)}get anchorElement(){var e;return this.anchor?null==(e=(0,eJ.getDocumentOrShadowRoot)(this))?void 0:e.querySelector(`#${this.anchor}`):null}get items(){return this.defaultSlot.assignedElements({flatten:!0}).filter(tt)}get radioGroupItems(){return this.items.filter(e=>"menuitemradio"===e.role)}get checkedItems(){return this.items.filter(e=>e.checked)}get value(){var e,t;return null!=(t=null==(e=this.checkedItems[0])?void 0:e.value)?t:""}set value(e){let t=this.items.find(t=>t.value===e);t&&e4(this,K,j).call(this,t)}focus(){if(e3(this,i,(0,eJ.getActiveElement)()),this.items.length){e4(this,V,W).call(this,this.items[0]),this.items[0].focus();return}let e=this.querySelector('[autofocus], [tabindex]:not([tabindex="-1"]), [role="menu"]');null==e||e.focus()}handleSelect(e){var t;let r=e4(this,B,$).call(this,e);r&&(e4(this,K,j).call(this,r,"checkbox"===r.type),e1(this,s)&&!this.hidden&&(null==(t=e1(this,i))||t.focus(),this.hidden=!0))}get keysUsed(){return["Enter","Escape","Tab"," ","ArrowDown","ArrowUp","Home","End"]}handleMove(e){var t,i;let{key:s}=e,r=this.items,a=null!=(i=null!=(t=e4(this,B,$).call(this,e))?t:e4(this,H,G).call(this))?i:r[0],n=Math.max(0,r.indexOf(a));"ArrowDown"===s?n++:"ArrowUp"===s?n--:"Home"===e.key?n=0:"End"===e.key&&(n=r.length-1),n<0&&(n=r.length-1),n>r.length-1&&(n=0),e4(this,V,W).call(this,r[n]),r[n].focus()}}function tt(e){return["menuitem","menuitemradio","menuitemcheckbox"].includes(null==e?void 0:e.role)}function ti(e){var t;return null!=(t=e.getAttribute("bounds")?(0,eJ.closestComposedNode)(e,`#${e.getAttribute("bounds")}`):(0,eJ.getMediaController)(e)||e.parentElement)?t:e}t=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,a=new WeakMap,n=new WeakMap,l=new WeakMap,o=new WeakSet,d=function(e){let t=e.target;for(let e of t.assignedNodes({flatten:!0}))3===e.nodeType&&""===e.textContent.trim()&&e.remove();["header","title"].includes(t.name)&&e4(this,h,u).call(this),t.name||e1(this,c).call(this)},h=new WeakSet,u=function(){let e=this.shadowRoot.querySelector('slot[name="header"]');e.hidden=0===this.shadowRoot.querySelector('slot[name="title"]').assignedNodes().length&&0===e.assignedNodes().length},c=new WeakMap,f=new WeakSet,m=function(){var e;let t=this.shadowRoot.querySelector("#layout-row"),i=null==(e=getComputedStyle(this).getPropertyValue("--media-menu-layout"))?void 0:e.trim();t.setAttribute("media","row"===i?"":"width:0")},g=new WeakSet,p=function(e){e3(this,s,e.relatedTarget),(0,eJ.containsComposedNode)(this,e.relatedTarget)||(this.hidden=!this.hidden)},v=new WeakSet,E=function(){var e;null==(e=e1(this,s))||e.setAttribute("aria-expanded","true"),this.addEventListener("transitionend",()=>this.focus(),{once:!0}),(0,ez.observeResize)(ti(this),e1(this,T)),(0,ez.observeResize)(this,e1(this,A))},b=new WeakSet,y=function(){var e;null==(e=e1(this,s))||e.setAttribute("aria-expanded","false"),(0,ez.unobserveResize)(ti(this),e1(this,T)),(0,ez.unobserveResize)(this,e1(this,A))},T=new WeakMap,A=new WeakMap,S=new WeakSet,I=function(e){if(this.hasAttribute("mediacontroller")&&!this.anchor||this.hidden||!this.anchorElement)return;let{x:t,y:i}=function({anchor:e,floating:t,placement:i}){let{x:s,y:r}=function({anchor:e,floating:t},i){let s,r="x"==(["top","bottom"].includes(eQ(i))?"y":"x")?"y":"x",a="y"===r?"height":"width",n=eQ(i),l=e.x+e.width/2-t.width/2,o=e.y+e.height/2-t.height/2,d=e[a]/2-t[a]/2;switch(n){case"top":s={x:l,y:e.y-t.height};break;case"bottom":s={x:l,y:e.y+e.height};break;case"right":s={x:e.x+e.width,y:o};break;case"left":s={x:e.x-t.width,y:o};break;default:s={x:e.x,y:e.y}}switch(i.split("-")[1]){case"start":s[r]-=d;break;case"end":s[r]+=d}return s}(function({anchor:e,floating:t}){var i,s,r;let a,n;return{anchor:(i=e,s=t.offsetParent,a=i.getBoundingClientRect(),n=null!=(r=null==s?void 0:s.getBoundingClientRect())?r:{x:0,y:0},{x:a.x-n.x,y:a.y-n.y,width:a.width,height:a.height}),floating:{x:0,y:0,width:t.offsetWidth,height:t.offsetHeight}}}({anchor:e,floating:t}),i);return{x:s,y:r}}({anchor:this.anchorElement,floating:this,placement:"top-start"});null!=e||(e=this.offsetWidth);let s=ti(this).getBoundingClientRect(),r=s.width-t-e,a=s.height-i-this.offsetHeight,{style:n}=e1(this,l);n.setProperty("position","absolute"),n.setProperty("right",`${Math.max(0,r)}px`),n.setProperty("--_menu-bottom",`${a}px`);let o=getComputedStyle(this),d=n.getPropertyValue("--_menu-bottom")===o.bottom?a:parseFloat(o.bottom),h=s.height-d-parseFloat(o.marginBottom);this.style.setProperty("--_menu-max-height",`${h}px`)},L=new WeakSet,k=function(e){let t=this.querySelector('[role="menuitem"][aria-haspopup][aria-expanded="true"]'),i=null==t?void 0:t.querySelector('[role="menu"]'),{style:s}=e1(this,l);if(e||s.setProperty("--media-menu-transition-in","none"),i){let e=i.offsetHeight,s=Math.max(i.offsetWidth,t.offsetWidth);this.style.setProperty("min-width",`${s}px`),this.style.setProperty("min-height",`${e}px`),e4(this,S,I).call(this,s)}else this.style.removeProperty("min-width"),this.style.removeProperty("min-height"),e4(this,S,I).call(this);s.removeProperty("--media-menu-transition-in")},R=new WeakSet,M=function(e){var t;if(e.stopPropagation(),e.composedPath().includes(e1(this,C,_))){null==(t=e1(this,i))||t.focu
278s(),this.hidden=!0;return}let s=e4(this,B,$).call(this,e);!s||s.hasAttribute("disabled")||(e4(this,V,W).call(this,s),this.handleSelect(e))},C=new WeakSet,_=function(){var e;return null==(e=this.shadowRoot.querySelector('slot[name="header"]').assignedElements({flatten:!0}))?void 0:e.find(e=>e.matches('button[part~="back"]'))},w=new WeakSet,D=function(e){if(e.target===this)return;e4(this,x,P).call(this);let t=Array.from(this.querySelectorAll('[role="menuitem"][aria-haspopup]'));for(let i of t)i.invokeTargetElement!=e.target&&("open"!=e.newState||"true"!=i.getAttribute("aria-expanded")||i.invokeTargetElement.hidden||i.invokeTargetElement.dispatchEvent(new eX({relatedTarget:i})));for(let e of t)e.setAttribute("aria-expanded",`${!e.submenuElement.hidden}`);e4(this,L,k).call(this,!0)},x=new WeakSet,P=function(){let e=this.querySelector('[role="menuitem"] > [role="menu"]:not([hidden])');this.container.classList.toggle("has-expanded",!!e)},O=new WeakSet,U=function(e){var t;(0,eJ.containsComposedNode)(this,e.relatedTarget)||(e1(this,n)&&(null==(t=e1(this,i))||t.focus()),e1(this,s)&&e1(this,s)!==e.relatedTarget&&!this.hidden&&(this.hidden=!0))},N=new WeakSet,F=function(e){var t,s,r,a,l;let{key:o,ctrlKey:d,altKey:h,metaKey:u}=e;if(!d&&!h&&!u&&this.keysUsed.includes(o))if(e.preventDefault(),e.stopPropagation(),"Tab"===o){if(e1(this,n)){this.hidden=!0;return}e.shiftKey?null==(s=null==(t=this.previousElementSibling)?void 0:t.focus)||s.call(t):null==(a=null==(r=this.nextElementSibling)?void 0:r.focus)||a.call(r),this.blur()}else"Escape"===o?(null==(l=e1(this,i))||l.focus(),e1(this,n)&&(this.hidden=!0)):"Enter"===o||" "===o?this.handleSelect(e):this.handleMove(e)},B=new WeakSet,$=function(e){return e.composedPath().find(e=>["menuitemradio","menuitemcheckbox"].includes(e.role))},H=new WeakSet,G=function(){return this.items.find(e=>0===e.tabIndex)},V=new WeakSet,W=function(e){for(let t of this.items)t.tabIndex=t===e?0:-1},K=new WeakSet,j=function(e,t){let i=[...this.checkedItems];"radio"===e.type&&this.radioGroupItems.forEach(e=>e.checked=!1),t?e.checked=!e.checked:e.checked=!0,this.checkedItems.some((e,t)=>e!=i[t])&&this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))},te.shadowRootOptions={mode:"open"},te.getTemplateHTML=function(e){return`
279    <style>
280      :host {
281        font: var(--media-font,
282          var(--media-font-weight, normal)
283          var(--media-font-size, 14px) /
284          var(--media-text-content-height, var(--media-control-height, 24px))
285          var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));
286        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
287        --_menu-bg: rgb(20 20 30 / .8);
288        background: var(--media-menu-background, var(--media-control-background, var(--media-secondary-color, var(--_menu-bg))));
289        border-radius: var(--media-menu-border-radius);
290        border: var(--media-menu-border, none);
291        display: var(--media-menu-display, inline-flex) !important;
292        
293        transition: var(--media-menu-transition-in,
294          visibility 0s,
295          opacity .2s ease-out,
296          transform .15s ease-out,
297          left .2s ease-in-out,
298          min-width .2s ease-in-out,
299          min-height .2s ease-in-out
300        ) !important;
301        
302        visibility: var(--media-menu-visibility, visible);
303        opacity: var(--media-menu-opacity, 1);
304        max-height: var(--media-menu-max-height, var(--_menu-max-height, 300px));
305        transform: var(--media-menu-transform-in, translateY(0) scale(1));
306        flex-direction: column;
307        
308        min-height: 0;
309        position: relative;
310        bottom: var(--_menu-bottom);
311        box-sizing: border-box;
312      } 
313
314      @-moz-document url-prefix() {
315        :host{
316          --_menu-bg: rgb(20 20 30);
317        }
318      }
319
320      :host([hidden]) {
321        transition: var(--media-menu-transition-out,
322          visibility .15s ease-in,
323          opacity .15s ease-in,
324          transform .15s ease-in
325        ) !important;
326        visibility: var(--media-menu-hidden-visibility, hidden);
327        opacity: var(--media-menu-hidden-opacity, 0);
328        max-height: var(--media-menu-hidden-max-height,
329          var(--media-menu-max-height, var(--_menu-max-height, 300px)));
330        transform: var(--media-menu-transform-out, translateY(2px) scale(.99));
331        pointer-events: none;
332      }
333
334      :host([slot="submenu"]) {
335        background: none;
336        width: 100%;
337        min-height: 100%;
338        position: absolute;
339        bottom: 0;
340        right: -100%;
341      }
342
343      #container {
344        display: flex;
345        flex-direction: column;
346        min-height: 0;
347        transition: transform .2s ease-out;
348        transform: translate(0, 0);
349      }
350
351      #container.has-expanded {
352        transition: transform .2s ease-in;
353        transform: translate(-100%, 0);
354      }
355
356      button {
357        background: none;
358        color: inherit;
359        border: none;
360        padding: 0;
361        font: inherit;
362        outline: inherit;
363        display: inline-flex;
364        align-items: center;
365      }
366
367      slot[name="header"][hidden] {
368        display: none;
369      }
370
371      slot[name="header"] > *,
372      slot[name="header"]::slotted(*) {
373        padding: .4em .7em;
374        border-bottom: 1px solid rgb(255 255 255 / .25);
375        cursor: var(--media-cursor, default);
376      }
377
378      slot[name="header"] > button[part~="back"],
379      slot[name="header"]::slotted(button[part~="back"]) {
380        cursor: var(--media-cursor, pointer);
381      }
382
383      svg[part~="back"] {
384        height: var(--media-menu-icon-height, var(--media-control-height, 24px));
385        fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));
386        display: block;
387        margin-right: .5ch;
388      }
389
390      slot:not([name]) {
391        gap: var(--media-menu-gap);
392        flex-direction: var(--media-menu-flex-direction, column);
393        overflow: var(--media-menu-overflow, hidden auto);
394        display: flex;
395        min-height: 0;
396      }
397
398      :host([role="menu"]) slot:not([name]) {
399        padding-block: .4em;
400      }
401
402      slot:not([name])::slotted([role="menu"]) {
403        background: none;
404      }
405
406      media-chrome-menu-item > span {
407        margin-right: .5ch;
408        max-width: var(--media-menu-item-max-width);
409        text-overflow: ellipsis;
410        overflow: hidden;
411      }
412    </style>
413    <style id="layout-row" media="width:0">
414
415      slot[name="header"] > *,
416      slot[name="header"]::slotted(*) {
417        padding: .4em .5em;
418      }
419
420      slot:not([name]) {
421        gap: var(--media-menu-gap, .25em);
422        flex-direction: var(--media-menu-flex-direction, row);
423        padding-inline: .5em;
424      }
425
426      media-chrome-menu-item {
427        padding: .3em .5em;
428      }
429
430      media-chrome-menu-item[aria-checked="true"] {
431        background: var(--media-menu-item-checked-background, rgb(255 255 255 / .2));
432      }
433
434      
435      media-chrome-menu-item::part(checked-indicator) {
436        display: var(--media-menu-item-checked-indicator-display, none);
437      }
438    </style>
439    <div id="container" part="container">
440      <slot name="header" hidden>
441        <button part="back button" aria-label="Back to previous menu">
442          <slot name="back-icon">
443            <svg aria-hidden="true" viewBox="0 0 20 24" part="back indicator">
444              <path d="m11.88 17.585.742-.669-4.2-4.665 4.2-4.666-.743-.669-4.803 5.335 4.803 5.334Z"/>
445            </svg>
446          </slot>
447          <slot name="title"></slot>
448        </button>
449      </slot>
450      <slot></slot>
451    </div>
452    <slot name="checked-indicator" hidden></slot>
453  `},eY.globalThis.customElements.get("media-chrome-menu")||eY.globalThis.customElements.define("media-chrome-menu",te);var ts=eY,tr=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},ta=(e,t,i)=>(tr(e,t,"read from private field"),i?i.call(e):t.get(e)),tn=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tl=(e,t,i,s)=>(tr(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),to=(e,t,i)=>(tr(e,t,"access private method"),i);let td="type",th="value",tu="checked",tc="disabled";class tf extends ts.globalThis.HTMLElement{constructor(){if(super(),tn(this,Q),tn(this,X),tn(this,J),tn(this,ei),tn(this,er),tn(this,en),tn(this,q,!1),tn(this,Y,void 0),tn(this,et,()=>{var e,t;this.submenuElement.items&&this.setAttribute("submenusize",`${this.submenuElement.items.length}`);let i=this.shadowRoot.querySelector('slot[name="description"]'),s=null==(e=this.submenuElement.checkedItems)?void 0:e[0],r=null!=(t=null==s?void 0:s.dataset.description)?t:null==s?void 0:s.text,a=ts.document.createElement("span");a.textContent=null!=r?r:"",i.replaceChildren(a)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,eJ.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}this.shadowRoot.addEventListener("slotchange",this)}static get observedAttributes(){return[td,tc,tu,th]}enable(){this.hasAttribute("tabindex")||this.setAttribute("tabindex","-1"),tm(this)&&!this.hasAttribute("aria-checked")&&this.setAttribute("aria-checked","fal
453se"),this.addEventListener("click",this),this.addEventListener("keydown",this)}disable(){this.removeAttribute("tabindex"),this.removeEventListener("click",this),this.removeEventListener("keydown",this),this.removeEventListener("keyup",this)}handleEvent(e){switch(e.type){case"slotchange":to(this,Q,z).call(this,e);break;case"click":this.handleClick(e);break;case"keydown":to(this,er,ea).call(this,e);break;case"keyup":to(this,ei,es).call(this,e)}}attributeChangedCallback(e,t,i){e===tu&&tm(this)&&!ta(this,q)?this.setAttribute("aria-checked",null!=i?"true":"false"):e===td&&i!==t?this.role="menuitem"+i:e===tc&&i!==t&&(null==i?this.enable():this.disable())}connectedCallback(){this.hasAttribute(tc)||this.enable(),this.role="menuitem"+this.type,tl(this,Y,function e(t,i){if(!t)return null;let{host:s}=t.getRootNode();return!i&&s?e(t,s):(null==i?void 0:i.items)?i:e(i,null==i?void 0:i.parentNode)}(this,this.parentNode)),to(this,en,el).call(this),this.submenuElement&&to(this,X,Z).call(this)}disconnectedCallback(){this.disable(),to(this,en,el).call(this),tl(this,Y,null)}get invokeTarget(){return this.getAttribute("invoketarget")}set invokeTarget(e){this.setAttribute("invoketarget",`${e}`)}get invokeTargetElement(){var e;return this.invokeTarget?null==(e=(0,eJ.getDocumentOrShadowRoot)(this))?void 0:e.querySelector(`#${this.invokeTarget}`):this.submenuElement}get submenuElement(){return this.shadowRoot.querySelector('slot[name="submenu"]').assignedElements({flatten:!0})[0]}get type(){var e;return null!=(e=this.getAttribute(td))?e:""}set type(e){this.setAttribute(td,`${e}`)}get value(){var e;return null!=(e=this.getAttribute(th))?e:this.text}set value(e){this.setAttribute(th,e)}get text(){var e;return(null!=(e=this.textContent)?e:"").trim()}get checked(){if(tm(this))return"true"===this.getAttribute("aria-checked")}set checked(e){tm(this)&&(tl(this,q,!0),this.setAttribute("aria-checked",e?"true":"false"),e?this.part.add("checked"):this.part.remove("checked"))}handleClick(e){!tm(this)&&this.invokeTargetElement&&(0,eJ.containsComposedNode)(this,e.target)&&this.invokeTargetElement.dispatchEvent(new eX({relatedTarget:this}))}get keysUsed(){return["Enter"," "]}}function tm(e){return"radio"===e.type||"checkbox"===e.type}q=new WeakMap,Y=new WeakMap,Q=new WeakSet,z=function(e){let t=e.target;if(!(null==t?void 0:t.name))for(let e of t.assignedNodes({flatten:!0}))e instanceof Text&&""===e.textContent.trim()&&e.remove();"submenu"===t.name&&(this.submenuElement?to(this,X,Z).call(this):to(this,J,ee).call(this))},X=new WeakSet,Z=async function(){this.setAttribute("aria-haspopup","menu"),this.setAttribute("aria-expanded",`${!this.submenuElement.hidden}`),this.submenuElement.addEventListener("change",ta(this,et)),this.submenuElement.addEventListener("addmenuitem",ta(this,et)),this.submenuElement.addEventListener("removemenuitem",ta(this,et)),ta(this,et).call(this)},J=new WeakSet,ee=function(){this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.submenuElement.removeEventListener("change",ta(this,et)),this.submenuElement.removeEventListener("addmenuitem",ta(this,et)),this.submenuElement.removeEventListener("removemenuitem",ta(this,et)),ta(this,et).call(this)},et=new WeakMap,ei=new WeakSet,es=function(e){let{key:t}=e;this.keysUsed.includes(t)?this.handleClick(e):this.removeEventListener("keyup",to(this,ei,es))},er=new WeakSet,ea=function(e){let{metaKey:t,altKey:i,key:s}=e;t||i||!this.keysUsed.includes(s)?this.removeEventListener("keyup",to(this,ei,es)):this.addEventListener("keyup",to(this,ei,es),{once:!0})},en=new WeakSet,el=function(){var e;let t=null==(e=ta(this,Y))?void 0:e.radioGroupItems;if(!t)return;let i=t.filter(e=>"true"===e.getAttribute("aria-checked")).pop();for(let e of(i||(i=t[0]),t))e.setAttribute("aria-checked","false");null==i||i.setAttribute("aria-checked","true")},tf.shadowRootOptions={mode:"open"},tf.getTemplateHTML=function(e){return`
454    <style>
455      :host {
456        transition: var(--media-menu-item-transition,
457          background .15s linear,
458          opacity .2s ease-in-out
459        );
460        outline: var(--media-menu-item-outline, 0);
461        outline-offset: var(--media-menu-item-outline-offset, -1px);
462        cursor: var(--media-cursor, pointer);
463        display: flex;
464        align-items: center;
465        align-self: stretch;
466        justify-self: stretch;
467        white-space: nowrap;
468        white-space-collapse: collapse;
469        text-wrap: nowrap;
470        padding: .4em .8em .4em 1em;
471      }
472
473      :host(:focus-visible) {
474        box-shadow: var(--media-menu-item-focus-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));
475        outline: var(--media-menu-item-hover-outline, 0);
476        outline-offset: var(--media-menu-item-hover-outline-offset,  var(--media-menu-item-outline-offset, -1px));
477      }
478
479      :host(:hover) {
480        cursor: var(--media-cursor, pointer);
481        background: var(--media-menu-item-hover-background, rgb(92 92 102 / .5));
482        outline: var(--media-menu-item-hover-outline);
483        outline-offset: var(--media-menu-item-hover-outline-offset,  var(--media-menu-item-outline-offset, -1px));
484      }
485
486      :host([aria-checked="true"]) {
487        background: var(--media-menu-item-checked-background);
488      }
489
490      :host([hidden]) {
491        display: none;
492      }
493
494      :host([disabled]) {
495        pointer-events: none;
496        color: rgba(255, 255, 255, .3);
497      }
498
499      slot:not([name]) {
500        width: 100%;
501      }
502
503      slot:not([name="submenu"]) {
504        display: inline-flex;
505        align-items: center;
506        transition: inherit;
507        opacity: var(--media-menu-item-opacity, 1);
508      }
509
510      slot[name="description"] {
511        justify-content: end;
512      }
513
514      slot[name="description"] > span {
515        display: inline-block;
516        margin-inline: 1em .2em;
517        max-width: var(--media-menu-item-description-max-width, 100px);
518        text-overflow: ellipsis;
519        overflow: hidden;
520        font-size: .8em;
521        font-weight: 400;
522        text-align: right;
523        position: relative;
524        top: .04em;
525      }
526
527      slot[name="checked-indicator"] {
528        display: none;
529      }
530
531      :host(:is([role="menuitemradio"],[role="menuitemcheckbox"])) slot[name="checked-indicator"] {
532        display: var(--media-menu-item-checked-indicator-display, inline-block);
533      }
534
535      
536      svg, img, ::slotted(svg), ::slotted(img) {
537        height: var(--media-menu-item-icon-height, var(--media-control-height, 24px));
538        fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));
539        display: block;
540      }
541
542      
543      [part~="indicator"],
544      ::slotted([part~="indicator"]) {
545        fill: var(--media-menu-item-indicator-fill,
546          var(--media-icon-color, var(--media-primary-color, rgb(238 238 238))));
547        height: var(--media-menu-item-indicator-height, 1.25em);
548        margin-right: .5ch;
549      }
550
551      [part~="checked-indicator"] {
552        visibility: hidden;
553      }
554
555      :host([aria-checked="true"]) [part~="checked-indicator"] {
556        visibility: visible;
557      }
558    </style>
559    <slot name="checked-indicator">
560      <svg aria-hidden="true" viewBox="0 1 24 24" part="checked-indicator indicator">
561        <path d="m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z"/>
562      </svg>
563    </slot>
564    <slot name="prefix"></slot>
565    <slot></slot>
566    <slot name="description"></slot>
567    <slot name="suffix">
568      ${this.getSuffixSlotInnerHTML(e)}
569    </slot>
570    <slot name="submenu"></slot>
571  `},tf.getSuffixSlotInnerHTML=function(e){return""},ts.globalThis.customElements.get("media-chrome-menu-item")||ts.globalThis.customElements.define("media-chrome-menu-item",tf);class tg extends te{get anchorElement(){return"auto"!==this.anchor?super.anchorElement:(0,eJ.getMediaController)(this).querySelector("media-settings-menu-button")}}tg.getTemplateHTML=function(e){return`
572    ${te.getTemplateHTML(e)}
573    <style>
574      :host {
575        --_menu-bg: rgb(20 20 30 / .8);
576        background: var(--media-settings-menu-background,
577            var(--media-menu-background,
578              var(--media-control-background,
579                var(--media-secondary-color, var(--_menu-bg)))));
580        min-width: var(--media-settings-menu-min-width, 170px);
581        border-radius: 2px 2px 0 0;
582        overflow: hidden;
583      }
584
585      @-moz-document url-prefix() {
586        :host{
587          --_menu-bg: rgb(20 20 30);
588        }
589      }
590
591      :host([role="menu"]) {
592        
593        justify-content: end;
594      }
595
596      slot:not([name]) {
597        justify-content: var(--media-settings-menu-justify-content);
598        flex-direction: var(--media-settings-menu-flex-direction, column);
599        overflow: visible;
600      }
601
602      #container.has-expanded {
603        --media-settings-menu-item-opacity: 0;
604      }
605    </style>
606  `},eY.globalThis.customElements.get("media-settings-menu")||eY.globalThis.customElements.define("media-settings-menu",tg);class tp extends tf{}tp.shadowRootOptions={mode:"open"},tp.getTemplateHTML=function(e){return`
607    ${tf.getTemplateHTML.call(this,e)}
608    <style>
609      slot:not([name="submenu"]) {
610        opacity: var(--media-settings-menu-item-opacity, var(--media-menu-item-opacity));
611      }
612
613      :host([aria-expanded="true"]:hover) {
614        background: transparent;
615      }
616    </style>
617  `},tp.getSuffixSlotInnerHTML=function(e){return`
618    <svg aria-hidden="true" viewBox="0 0 20 24">
619      <path d="m8.12 17.585-.742-.669 4.2-4.665-4.2-4.666.743-.669 4.803 5.335-4.803 5.334Z"/>
620    </svg>
621  `},eY.globalThis.customElements.get("media-settings-menu-item")||eY.globalThis.customElements.define("media-settings-menu-item",tp);var tv=e.i(911639);class tE extends tv.MediaChromeButton{connectedCallback(){super.connectedCallback(),this.invokeTargetElement&&this.setAttribute("aria-haspopup","menu")}get invokeTarget(){return this.getAttribute("invoketarget")}set invokeTarget(e){this.setAttribute("invoketarget",`${e}`)}get invokeTargetElement(){var e;return this.invokeTarget?null==(e=(0,eJ.getDocumentOrShadowRoot)(this))?void 0:e.querySelector(`#${this.invokeTarget}`):null}handleClick(){var e;null==(e=this.invokeTargetElement)||e.dispatchEvent(new eX({relatedTarget:this}))}}eY.globalThis.customElements.get("media-chrome-menu-button")||eY.globalThis.customElements.define("media-chrome-menu-button",tE);var tb=e.i(12327);class ty extends tE{static get observedAttributes(){return[...super.observedAttributes,"target"]}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-label",(0,tb.t)("settings"))}get invokeTargetElement(){return void 0!=this.invokeTarget?super.invokeTargetElement:(0,eJ.getMediaController)(this).querySelector("media-settings-menu")}}ty.getSlotTemplateHTML=function(){return`
622    <style>
623      :host([aria-expanded="true"]) slot[name=tooltip] {
624        display: none;
625      }
626    </style>
627    <slot name="icon">
628      <svg aria-hidden="true" viewBox="0 0 24 24">
629        <path d="M4.5 14.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm7.5 0a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/>
630      </svg>
631    </slot>
632  `},ty.getTooltipContentHTML=function(){return(0,tb.t)("Settings")},eY.globalThis.customElements.get("media-settings-menu-button")||eY.globalThis.customElements.define("media-settings-menu-button",ty);var tT=e.i(966803),tA=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tS=(e,t,i)=>(tA(e,t,"read from private field"),i?i.call(e):t.get(e)),tI=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tL=(e,t,i,s)=>(tA(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),tk=(e,t,i)=>(tA(e,t,"access private method"),i);class tR extends te{constructor(){super(...arguments),tI(this,eh),tI(this,ec),tI(this,eo,[]),tI(this,ed,void 0)}static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED&&t!==i?this.value=i:e===eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST&&t!==i&&(tL(this,eo,(0,tT.parseAudioTrackList)(null!=i?i:"")),tk(this,eh,eu).call(this))}connectedCallback(){super.connectedCallback(),this.addEventListener("change",tk(this,ec,ef))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",tk(this,ec,ef))}get anchorElement(){var e;return"auto"!==this.anchor?super.anchorElement:null==(e=(0,eJ.getMediaController)(this))?void 0:e.querySelector("media-audio-track-menu-button")}get mediaAudioTrackList(){return tS(this,eo)}set mediaAudioTrackList(e){tL(this,eo,e),tk(this,eh,eu).call(this)}get mediaAudioTrackEnabled(){var e;return null!=(e=(0,eJ.getStringAttr)(this,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED))?e:""}set mediaAudioTrackEnabled(e){(0,eJ.setStringAttr)(this,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,e)}}eo=new WeakMap,ed=new WeakMap,eh=new WeakSet,eu=function(){if(tS(this,ed)===JSON.stringify(this.mediaAudioTrackList))return;tL(this,ed,JSON.stringify(this.mediaAudioTrackList));let e=this.mediaAudioTrackList;for(let t of(this.defaultSlot.textContent="",e.sort((e,t)=>
632e.id.localeCompare(t.id,void 0,{numeric:!0})),e)){let e=e5({type:"radio",text:this.formatMenuItemText(t.label,t),value:`${t.id}`,checked:t.enabled});e.prepend(e8(this,"checked-indicator")),this.defaultSlot.append(e)}},ec=new WeakSet,ef=function(){if(null==this.value)return;let e=new eY.globalThis.CustomEvent(eq.MediaUIEvents.MEDIA_AUDIO_TRACK_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(e)},eY.globalThis.customElements.get("media-audio-track-menu")||eY.globalThis.customElements.define("media-audio-track-menu",tR);let tM=`<svg aria-hidden="true" viewBox="0 0 24 24">
633  <path d="M11 17H9.5V7H11v10Zm-3-3H6.5v-4H8v4Zm6-5h-1.5v6H14V9Zm3 7h-1.5V8H17v8Z"/>
634  <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"/>
635</svg>`,tC=e=>{let t=(0,tb.t)("Audio");e.setAttribute("aria-label",t)};class t_ extends tE{static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),tC(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_LANG&&tC(this)}get invokeTargetElement(){var e;return void 0!=this.invokeTarget?super.invokeTargetElement:null==(e=(0,eJ.getMediaController)(this))?void 0:e.querySelector("media-audio-track-menu")}get mediaAudioTrackEnabled(){var e;return null!=(e=(0,eJ.getStringAttr)(this,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED))?e:""}set mediaAudioTrackEnabled(e){(0,eJ.setStringAttr)(this,eq.MediaUIAttributes.MEDIA_AUDIO_TRACK_ENABLED,e)}}t_.getSlotTemplateHTML=function(){return`
636    <style>
637      :host([aria-expanded="true"]) slot[name=tooltip] {
638        display: none;
639      }
640    </style>
641    <slot name="icon">${tM}</slot>
642  `},t_.getTooltipContentHTML=function(){return(0,tb.t)("Audio")},eY.globalThis.customElements.get("media-audio-track-menu-button")||eY.globalThis.customElements.define("media-audio-track-menu-button",t_);var tw=e.i(436561),tD=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tx=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tP=(e,t,i)=>(tD(e,t,"access private method"),i);let tO=`
643  <svg aria-hidden="true" viewBox="0 0 26 24" part="captions-indicator indicator">
644    <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"/>
645  </svg>`;class tU extends te{constructor(){super(...arguments),tx(this,eg),tx(this,ev),tx(this,em,void 0)}static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST&&t!==i?tP(this,eg,ep).call(this):e===eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING&&t!==i&&(this.value=i||"",tP(this,eg,ep).call(this))}connectedCallback(){super.connectedCallback(),this.addEventListener("change",tP(this,ev,eE))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",tP(this,ev,eE))}get anchorElement(){return"auto"!==this.anchor?super.anchorElement:(0,eJ.getMediaController)(this).querySelector("media-captions-menu-button")}get mediaSubtitlesList(){return tN(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(e){tF(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST,e)}get mediaSubtitlesShowing(){return tN(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(e){tF(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,e)}}em=new WeakMap,eg=new WeakSet,ep=function(){var e,t,i,s;let r=(tD(this,t=em,"read from private field"),t.get(this)!==JSON.stringify(this.mediaSubtitlesList)),a=this.value!==this.getAttribute(eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING);if(!r&&!a)return;i=em,s=JSON.stringify(this.mediaSubtitlesList),tD(this,i,"write to private field"),i.set(this,s),this.defaultSlot.textContent="";let n=!this.value,l=e5({type:"radio",text:this.formatMenuItemText((0,tb.t)("Off")),value:"off",checked:n});for(let t of(l.prepend(e8(this,"checked-indicator")),this.defaultSlot.append(l),this.mediaSubtitlesList)){let i=e5({type:"radio",text:this.formatMenuItemText(t.label,t),value:(0,tw.formatTextTrackObj)(t),checked:this.value==(0,tw.formatTextTrackObj)(t)});i.prepend(e8(this,"checked-indicator")),"captions"===(null!=(e=t.kind)?e:"subs")&&i.append(e8(this,"captions-indicator")),this.defaultSlot.append(i)}},ev=new WeakSet,eE=function(){let e=this.mediaSubtitlesShowing,t=this.getAttribute(eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING),i=this.value!==t;if((null==e?void 0:e.length)&&i&&this.dispatchEvent(new eY.globalThis.CustomEvent(eq.MediaUIEvents.MEDIA_DISABLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:e})),!this.value||!i)return;let s=new eY.globalThis.CustomEvent(eq.MediaUIEvents.MEDIA_SHOW_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(s)},tU.getTemplateHTML=function(e){return`
646    ${te.getTemplateHTML(e)}
647    <slot name="captions-indicator" hidden>${tO}</slot>
648  `};let tN=(e,t)=>{let i=e.getAttribute(t);return i?(0,tw.parseTextTracksStr)(i):[]},tF=(e,t,i)=>{if(!(null==i?void 0:i.length))return void e.removeAttribute(t);let s=(0,tw.stringifyTextTrackList)(i);e.getAttribute(t)!==s&&e.setAttribute(t,s)};eY.globalThis.customElements.get("media-captions-menu")||eY.globalThis.customElements.define("media-captions-menu",tU);let tB=`<svg aria-hidden="true" viewBox="0 0 26 24">
649  <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 
6490 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"/>
650</svg>`,t$=`<svg aria-hidden="true" viewBox="0 0 26 24">
651  <path d="M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z"/>
652</svg>`,tH=e=>{e.setAttribute("data-captions-enabled",(0,tw.areSubsOn)(e).toString())},tG=e=>{e.setAttribute("aria-label",(0,tb.t)("closed captions"))};class tV extends tE{static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,eq.MediaUIAttributes.MEDIA_LANG]}connectedCallback(){super.connectedCallback(),tG(this),tH(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING?tH(this):e===eq.MediaUIAttributes.MEDIA_LANG&&tG(this)}get invokeTargetElement(){var e;return void 0!=this.invokeTarget?super.invokeTargetElement:null==(e=(0,eJ.getMediaController)(this))?void 0:e.querySelector("media-captions-menu")}get mediaSubtitlesList(){return tW(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(e){tK(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_LIST,e)}get mediaSubtitlesShowing(){return tW(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(e){tK(this,eq.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,e)}}tV.getSlotTemplateHTML=function(){return`
653    <style>
654      :host([data-captions-enabled="true"]) slot[name=off] {
655        display: none !important;
656      }
657
658      
659      :host(:not([data-captions-enabled="true"])) slot[name=on] {
660        display: none !important;
661      }
662
663      :host([aria-expanded="true"]) slot[name=tooltip] {
664        display: none;
665      }
666    </style>
667
668    <slot name="icon">
669      <slot name="on">${tB}</slot>
670      <slot name="off">${t$}</slot>
671    </slot>
672  `},tV.getTooltipContentHTML=function(){return(0,tb.t)("Captions")};let tW=(e,t)=>{let i=e.getAttribute(t);return i?(0,tw.parseTextTracksStr)(i):[]},tK=(e,t,i)=>{if(!(null==i?void 0:i.length))return void e.removeAttribute(t);let s=(0,tw.stringifyTextTrackList)(i);e.getAttribute(t)!==s&&e.setAttribute(t,s)};eY.globalThis.customElements.get("media-captions-menu-button")||eY.globalThis.customElements.define("media-captions-menu-button",tV);var tj=e.i(789312),tq=e.i(11339),tY=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tQ=(e,t,i)=>(tY(e,t,"read from private field"),i?i.call(e):t.get(e)),tz=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tX=(e,t,i)=>(tY(e,t,"access private method"),i);let tZ="rates";class tJ extends te{constructor(){super(),tz(this,ey),tz(this,eA),tz(this,eb,new tj.AttributeTokenList(this,tZ,{defaultValue:tq.DEFAULT_RATES})),tX(this,ey,eT).call(this)}static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE,tZ]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE&&t!=i?(this.value=i,tX(this,ey,eT).call(this)):e===tZ&&t!=i&&(tQ(this,eb).value=i,tX(this,ey,eT).call(this))}connectedCallback(){super.connectedCallback(),this.addEventListener("change",tX(this,eA,eS))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",tX(this,eA,eS))}get anchorElement(){return"auto"!==this.anchor?super.anchorElement:(0,eJ.getMediaController)(this).querySelector("media-playback-rate-menu-button")}get rates(){return tQ(this,eb)}set rates(e){e?Array.isArray(e)?tQ(this,eb).value=e.join(" "):"str
672ing"==typeof e&&(tQ(this,eb).value=e):tQ(this,eb).value="",tX(this,ey,eT).call(this)}get mediaPlaybackRate(){return(0,eJ.getNumericAttr)(this,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE,tq.DEFAULT_RATE)}set mediaPlaybackRate(e){(0,eJ.setNumericAttr)(this,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE,e)}}eb=new WeakMap,ey=new WeakSet,eT=function(){this.defaultSlot.textContent="";let e=this.mediaPlaybackRate,t=new Set(Array.from(tQ(this,eb)).map(e=>Number(e)));for(let i of(e>0&&!t.has(e)&&t.add(e),Array.from(t).sort((e,t)=>e-t))){let t=e5({type:"radio",text:this.formatMenuItemText(`${i}x`,i),value:i.toString(),checked:e===i});t.prepend(e8(this,"checked-indicator")),this.defaultSlot.append(t)}},eA=new WeakSet,eS=function(){if(!this.value)return;let e=new eY.globalThis.CustomEvent(eq.MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(e)},eY.globalThis.customElements.get("media-playback-rate-menu")||eY.globalThis.customElements.define("media-playback-rate-menu",tJ);class t0 extends tE{static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE]}constructor(){var e;super(),this.container=this.shadowRoot.querySelector('slot[name="icon"]'),this.container.innerHTML=`${null!=(e=this.mediaPlaybackRate)?e:1}x`}attributeChangedCallback(e,t,i){if(super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE){let e=i?+i:NaN,t=Number.isNaN(e)?1:e;this.container.innerHTML=`${t}x`,this.setAttribute("aria-label",(0,tb.t)("Playback rate {playbackRate}",{playbackRate:t}))}}get invokeTargetElement(){return void 0!=this.invokeTarget?super.invokeTargetElement:(0,eJ.getMediaController)(this).querySelector("media-playback-rate-menu")}get mediaPlaybackRate(){return(0,eJ.getNumericAttr)(this,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(e){(0,eJ.setNumericAttr)(this,eq.MediaUIAttributes.MEDIA_PLAYBACK_RATE,e)}}t0.getSlotTemplateHTML=function(e){return`
673    <style>
674      :host {
675        min-width: 5ch;
676        padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));
677      }
678      
679      :host([aria-expanded="true"]) slot {
680        display: block;
681      }
682
683      :host([aria-expanded="true"]) slot[name=tooltip] {
684        display: none;
685      }
686    </style>
687    <slot name="icon">${e.mediaplaybackrate||1}x</slot>
688  `},t0.getTooltipContentHTML=function(){return(0,tb.t)("Playback rate")},eY.globalThis.customElements.get("media-playback-rate-menu-button")||eY.globalThis.customElements.define("media-playback-rate-menu-button",t0);var t1=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},t2=(e,t,i)=>(t1(e,t,"read from private field"),i?i.call(e):t.get(e)),t3=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},t4=(e,t,i,s)=>(t1(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),t5=(e,t,i)=>(t1(e,t,"access private method"),i);class t8 extends te{constructor(){super(...arguments),t3(this,ek),t3(this,eM),t3(this,eI,[]),t3(this,eL,{})}static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_RENDITION_LIST,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED,eq.MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,eq.MediaUIAttributes.MEDIA_HEIGHT]}static formatMenuItemText(e,t){return super.formatMenuItemText(e,t)}static formatRendition(e,{showBitrate:t=!1}={}){let i=`${Math.min(e.width,e.height)}p`;if(t&&e.bitrate){let t=e.bitrate/1e6,s=`${t.toFixed(+(t<1))} Mbps`;return`${i} (${s})`}return this.formatMenuItemText(i,e)}static compareRendition(e,t){var i,s;return t.height===e.height?(null!=(i=t.bitrate)?i:0)-(null!=(s=e.bitrate)?s:0):t.height-e.height}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED&&t!==i?(this.value=null!=i?i:"auto",t5(this,ek,eR).call(this)):e===eq.MediaUIAttributes.MEDIA_RENDITION_LIST&&t!==i?(t4(this,eI,(0,tT.parseRenditionList)(i)),t5(this,ek,eR).call(this)):e===eq.MediaUIAttributes.MEDIA_HEIGHT&&t!==i&&t5(this,ek,eR).call(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",t5(this,eM,eC))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",t5(this,eM,eC))}get anchorElement(){return"auto"!==this.anchor?super.anchorElement:(0,eJ.getMediaController)(this).querySelector("media-rendition-menu-button")}get mediaRenditionList(){return t2(this,eI)}set mediaRenditionList(e){t4(this,eI,e),t5(this,ek,eR).call(this)}get mediaRenditionSelected(){return(0,eJ.getStringAttr)(this,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED)}set mediaRenditionSelected(e){(0,eJ.setStringAttr)(this,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED,e)}get mediaHeight(){return(0,eJ.getNumericAttr)(this,eq.MediaUIAttributes.MEDIA_HEIGHT)}set mediaHeight(e){(0,eJ.setNumericAttr)(this,eq.MediaUIAttributes.MEDIA_HEIGHT,e)}compareRendition(e,t){return this.constructor.compareRendition(e,t)}formatMenuItemText(e,t){return this.constructor.formatMenuItemText(e,t)}formatRendition(e,t){return this.constructor.formatRendition(e,t)}showRenditionBitrate(e){return this.mediaRenditionList.some(t=>t!==e&&t.height===e.height&&t.bitrate!==e.bitrate)}}eI=new WeakMap,eL=new WeakMap,ek=new WeakSet,eR=function(){if(t2(this,eL).mediaRenditionList===JSON.stringify(this.mediaRenditionList)&&t2(this,eL).mediaHeight===this.mediaHeight)return;t2(this,eL).mediaRenditionList=JSON.stringify(this.mediaRenditionList),t2(this,eL).mediaHeight=this.mediaHeight;let e=this.mediaRenditionList.sort(this.compareRendition.bind(this)),t=e.find(e=>e.id===this.mediaRenditionSelected);for(let i of e)i.selected=i===t;this.defaultSlot.textContent="";let i=!this.mediaRenditionSelected;for(let t of e){let e=e5({type:"radio",text:this.formatRendition(t,{showBitrate:this.showRenditionBitrate(t)}
688),value:`${t.id}`,checked:t.selected&&!i});e.prepend(e8(this,"checked-indicator")),this.defaultSlot.append(e)}let s=t&&this.showRenditionBitrate(t),r=i?t?this.formatMenuItemText(`${(0,tb.t)("Auto")} \u2022 ${this.formatRendition(t,{showBitrate:s})}`,t):this.formatMenuItemText(`${(0,tb.t)("Auto")} (${this.mediaHeight}p)`):this.formatMenuItemText((0,tb.t)("Auto")),a=e5({type:"radio",text:r,value:"auto",checked:i});a.dataset.description=r,a.prepend(e8(this,"checked-indicator")),this.defaultSlot.append(a)},eM=new WeakSet,eC=function(){if(null==this.value)return;let e=new eY.globalThis.CustomEvent(eq.MediaUIEvents.MEDIA_RENDITION_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(e)},eY.globalThis.customElements.get("media-rendition-menu")||eY.globalThis.customElements.define("media-rendition-menu",t8);let t6=`<svg aria-hidden="true" viewBox="0 0 24 24">
689  <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" />
690</svg>`;class t9 extends tE{static get observedAttributes(){return[...super.observedAttributes,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED,eq.MediaUIAttributes.MEDIA_RENDITION_UNAVAILABLE,eq.MediaUIAttributes.MEDIA_HEIGHT]}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-label",(0,tb.t)("quality"))}get invokeTargetElement(){return void 0!=this.invokeTarget?super.invokeTargetElement:(0,eJ.getMediaController)(this).querySelector("media-rendition-menu")}get mediaRenditionSelected(){return(0,eJ.getStringAttr)(this,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED)}set mediaRenditionSelected(e){(0,eJ.setStringAttr)(this,eq.MediaUIAttributes.MEDIA_RENDITION_SELECTED,e)}get mediaHeight(){return(0,eJ.getNumericAttr)(this,eq.MediaUIAttributes.MEDIA_HEIGHT)}set mediaHeight(e){(0,eJ.setNumericAttr)(this,eq.MediaUIAttributes.MEDIA_HEIGHT,e)}}t9.getSlotTemplateHTML=function(){return`
691    <style>
692      :host([aria-expanded="true"]) slot[name=tooltip] {
693        display: none;
694      }
695    </style>
696    <slot name="icon">${t6}</slot>
697  `},t9.getTooltipContentHTML=function(){return(0,tb.t)("Quality")},eY.globalThis.customElements.get("media-rendition-menu-button")||eY.globalThis.customElements.define("media-rendition-menu-button",t9);var t7=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},ie=(e,t,i)=>(t7(e,t,"read from private field"),i?i.call(e):t.get(e)),it=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},ii=(e,t,i,s)=>(t7(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),is=(e,t,i)=>(t7(e,t,"access private method"),i);class ir extends te{constructor(){super(),it(this,ew),it(this,ex),it(this,eO),it(this,eN),it(this,e$),it(this,e_,!1),it(this,eB,e=>{let t=e.target,i=(null==t?void 0:t.nodeName)==="VIDEO",s=is(this,eN,eF).call(this,t);(i||s)&&(ie(this,e_)?is(this,ex,eP).call(this):is(this,e$,eH).call(this,e))}),it(this,eG,e=>{let t=e.target,i=this.contains(t),s=2===e.button,r=(null==t?void 0:t.nodeName)==="VIDEO",a=is(this,eN,eF).call(this,t);i||s&&(r||a)||is(this,ex,eP).call(this)}),it(this,eV,e=>{"Escape"===e.key&&is(this,ex,eP).call(this)}),it(this,eW,e=>{var t,i;let s=e.target;if(null==(t=s.matches)?void 0:t.call(s,'button[invoke="copy"]')){let e=null==(i=s.closest("media-context-menu-item"))?void 0:i.querySelector('input[slot="copy"]');e&&navigator.clipboard.writeText(e.value)}is(this,ex,eP).call(this)}),this.setAttribute("noautohide",""),is(this,ew,eD).call(this)}connectedCallback(){super.connectedCallback(),(0,eJ.getMediaController)(this).addEventListener("contextmenu",ie(this,eB)),this.addEventListener("click",ie(this,eW))}disconnectedCallback(){super.disconnectedCallback(),(0,eJ.getMediaController)(this).removeEventListener("contextmenu",ie(this,eB)),this.removeEventListener("click",ie(this,eW)),document.removeEventListener("mousedown",ie(this,eG)),document.removeEventListener("keydown",ie(this,eV))}}e_=new WeakMap,ew=new WeakSet,eD=function(){this.hidden=!ie(this,e_)},ex=new WeakSet,eP=function(){ii(this,e_,!1),is(this,ew,eD).call(this)},eO=new WeakSet,eU=function(){document.querySelectorAll("media-context-menu").forEach(e
697=>{e!==this&&is(e,ex,eP).call(e)})},eN=new WeakSet,eF=function(e){return!!e&&(!!e.hasAttribute("slot")&&"media"===e.getAttribute("slot")||!!(e.nodeName.includes("-")&&e.tagName.includes("-"))&&(e.hasAttribute("src")||e.hasAttribute("poster")||e.hasAttribute("preload")||e.hasAttribute("playsinline")))},eB=new WeakMap,e$=new WeakSet,eH=function(e){e.preventDefault(),is(this,eO,eU).call(this),ii(this,e_,!0),this.style.position="fixed",this.style.left=`${e.clientX}px`,this.style.top=`${e.clientY}px`,is(this,ew,eD).call(this),document.addEventListener("mousedown",ie(this,eG),{once:!0}),document.addEventListener("keydown",ie(this,eV),{once:!0})},eG=new WeakMap,eV=new WeakMap,eW=new WeakMap,ir.getTemplateHTML=function(e){return`
698      ${te.getTemplateHTML(e)}
699      <style>
700        :host {
701          --_menu-bg: rgb(20 20 30 / .8);
702          background: var(--media-settings-menu-background,
703            var(--media-menu-background,
704              var(--media-control-background,
705                var(--media-secondary-color, var(--_menu-bg)))));
706          min-width: var(--media-settings-menu-min-width, 170px);
707          border-radius: 2px;
708          overflow: hidden;
709        }
710      </style>
711    `},eY.globalThis.customElements.get("media-context-menu")||eY.globalThis.customElements.define("media-context-menu",ir);class ia extends tf{}function il(e){return"boolean"==typeof e?e?"":void 0:"function"==typeof e?void 0:Array.isArray(e)&&e.every(e=>"string"==typeof e||"number"==typeof e||"boolean"==typeof e)?e.join(" "):"object"!=typeof e||null===e?e:void 0}ia.shadowRootOptions={mode:"open"},ia.getTemplateHTML=function(e){return`
712    ${tf.getTemplateHTML.call(this,e)}
713    <style>
714        ::slotted(*) {
715            color: var(--media-text-color, white);
716            text-decoration: none;
717            border: none;
718            background: none;
719            cursor: pointer;
720            padding: 0;
721            min-height: var(--media-control-height, 24px);
722        }
723    </style>
724  `},eY.globalThis.customElements.get("media-context-menu-item")||eY.globalThis.customElements.define("media-context-menu-item",ia),(0,ej.createComponent)({tagName:"media-chrome-menu",elementClass:te,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-chrome-menu-item",elementClass:tf,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});let io=(0,ej.createComponent)({tagName:"media-settings-menu",elementClass:tg,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),id=(0,ej.createComponent)({tagName:"media-settings-menu-item",elementClass:tp,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});(0,ej.createComponent)({tagName:"media-chrome-menu-button",elementClass:tE,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});let ih=(0,ej.createComponent)({tagName:"media-settings-menu-button",elementClass:ty,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});(0,ej.createComponent)({tagName:"media-audio-track-menu",elementClass:tR,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-audio-track-menu-button",elementClass:t_,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-captions-menu",elementClass:tU,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-captions-menu-button",elementClass:tV,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});let iu=(0,ej.createComponent)({tagName:"media-playback-rate-menu",elementClass:tJ,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});(0,ej.createComponent)({tagName:"media-playback-rate-menu-button",elementClass:t0,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});let ic=(0,ej.createComponent)({tagName:"media-rendition-menu",elementClass:t8,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}});(0,ej.createComponent)({tagName:"media-rendition-menu-button",elementClass:t9,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-context-menu",elementClass:ir,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),(0,ej.createComponent)({tagName:"media-context-menu-item",elementClass:ia,react:eK.default,toAttributeValue:il,defaultProps:{suppressHydrationWarning:!0}}),e.s(["MediaPlaybackRateMenu",0,iu,"MediaRenditionMenu",0,ic,"MediaSettingsMenu",0,io,"MediaSettingsMenuButton",0,ih,"MediaSettingsMenuItem",0,id],838078)},789312,e=>{"use strict";var t,i,s,r,a,n,l=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},o=(e,t,i)=>(l(e,t,"read from private field"),i?i.call(e):t.get(e)),d=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},h=(e,t,i,s)=>(l(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class u{constructor(e,n,{defaultValue:l}={defaultValue:void 0}){d(this,a),d(this,t,void 0),d(this,i,void 0),d(this,s,void 0),d(this,r,new Set),h(this,t,e),h(this,i,n),h(this,s,new Set(l))}[Symbol.iterator](){return o(this,a,n).values()}get length(){return o(this,a,n).size}get value(){var e;return null!=(e=[...o(this,a,n)].join(" "))?e:""}set value(e){var t;e!==this.value&&(h(this,r,new Set),this.add(...null!=(t=null==e?void 0:e.split(" "))?t:[]))}toString(){return this.value}item(e){return[...o(this,a,n)][e]}values(){return o(this,a,n).values()}
724forEach(e,t){o(this,a,n).forEach(e,t)}add(...e){var s,a;e.forEach(e=>o(this,r).add(e)),(""!==this.value||(null==(s=o(this,t))?void 0:s.hasAttribute(`${o(this,i)}`)))&&(null==(a=o(this,t))||a.setAttribute(`${o(this,i)}`,`${this.value}`))}remove(...e){var s;e.forEach(e=>o(this,r).delete(e)),null==(s=o(this,t))||s.setAttribute(`${o(this,i)}`,`${this.value}`)}contains(e){return o(this,a,n).has(e)}toggle(e,t){if(void 0!==t)if(t)return this.add(e),!0;else return this.remove(e),!1;return this.contains(e)?(this.remove(e),!1):(this.add(e),!0)}replace(e,t){return this.remove(e),this.add(t),e===t}}t=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,a=new WeakSet,n=function(){return o(this,r).size?o(this,r):o(this,s)},e.s(["AttributeTokenList",0,u])},436561,e=>{"use strict";var t=e.i(900001);let i=(e="")=>{let[i,s,r]=e.split(":"),a=r?decodeURIComponent(r):void 0;return{kind:"cc"===i?t.TextTrackKinds.CAPTIONS:t.TextTrackKinds.SUBTITLES,language:s,label:a}},s=(e="",t={})=>((e="")=>e.split(/\s+/))(e).map(e=>{let s=i(e);return{...t,...s}}),r=e=>e?Array.isArray(e)?e.map(e=>"string"==typeof e?i(e):e):"string"==typeof e?s(e):[e]:[],a=({kind:e,label:t,language:i}={kind:"subtitles"})=>t?`${"captions"===e?"cc":"sb"}:${i}:${encodeURIComponent(t)}`:i,n=e=>{let t=Object.entries(e).map(([e,t])=>i=>i[e]===t);return e=>t.every(t=>t(e))};e.s(["areSubsOn",0,e=>{var i;return!!(null==(i=e.mediaSubtitlesShowing)?void 0:i.length)||e.hasAttribute(t.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING)},"formatTextTrackObj",0,a,"getTextTracksList",0,(e,t=()=>!0)=>{if(!(null==e?void 0:e.textTracks))return[];let i="function"==typeof t?t:n(t);return Array.from(e.textTracks).filter(i)},"parseTextTracksStr",0,s,"parseTracks",0,r,"stringifyTextTrackList",0,(e=[])=>Array.prototype.map.call(e,a).join(" "),"updateTracksModeTo",0,(e,t=[],i=[])=>{let s=r(i).map(n);Array.from(t).filter(e=>s.some(t=>t(e))).forEach(t=>{t.mode=e})}])},489094,e=>{"use strict";var t=e.i(900001),i=e.i(889096),s=e.i(30094);let r="exitFullscreen"in s.document?"exitFullscreen":"webkitExitFullscreen"in s.document?"webkitExitFullscreen":"webkitCancelFullScreen"in s.document?"webkitCancelFullScreen":void 0,a="fullscreenElement"in s.document?"fullscreenElement":"webkitFullscreenElement"in s.document?"webkitFullscreenElement":void 0,n="fullscreenEnabled"in s.document?"fullscreenEnabled":"webkitFullscreenEnabled"in s.document?"webkitFullscreenEnabled":void 0;e.s(["enterFullscreen",0,e=>{var t;let{media:i,fullscreenElement:s}=e;try{let e=s&&"requestFullscreen"in s?"requestFullscreen":s&&"webkitRequestFullScreen"in s?"webkitRequestFullScreen":void 0;if(e){let i=null==(t=s[e])?void 0:t.call(s);if(i instanceof Promise)return i.catch(()=>{})}else(null==i?void 0:i.webkitEnterFullscreen)?i.webkitEnterFullscreen():(null==i?void 0:i.requestFullscreen)&&i.requestFullscreen()}catch(e){console.error(e)}},"exitFullscreen",0,e=>{var t;let{documentElement:i}=e;if(r){let e=null==(t=null==i?void 0:i[r])?void 0:t.call(i);if(e instanceof Promise)return e.catch(()=>{})}},"isFullscreen",0,e=>{var s;let{media:r,documentElement:n,fullscreenElement:l=r}=e;if(!r||!n)return!1;let o=(e=>{let{documentElement:i,media:s}=e,r=null==i?void 0:i[a];return!r&&"webkitDisplayingFullscreen"in s&&"webkitPresentationMode"in s&&s.webkitDisplayingFullscreen&&s.webkitPresentationMode===t.WebkitPresentationModes.FULLSCREEN?s:r})(e);if(!o)return!1;if(o===l||o===r)return!0;if(o.localName.includes("-")){let e=o.shadowRoot;if(!(a in e))return(0,i.containsComposedNode)(o,l);for(;null==e?void 0:e[a];){if(e[a]===l)return!0;e=null==(s=e[a])?void 0:s.shadowRoot}}return!1},"isFullscreenEnabled",0,e=>{let{documentElement:t,media:i}=e;return!!(null==t?void 0:t[n])||i&&"webkitSupportsFullscreen"in i}])},12327,e=>{"use strict";var t;let i={en:{"Start airplay":"Start airplay","Stop airplay":"Stop airplay",Audio:"Audio",Captions:"Captions","Enable captions":"Enable captions","Disable captions":"Disable captions","Start casting":"Start casting","Stop casting":"Stop casting","Enter fullscreen mode":"Enter fullscreen mode","Exit fullscreen mode":"Exit fullscreen mode",Mute:"Mute",Unmute:"Unmute",Loop:"Loop","Enter picture in picture mode":"Enter picture in picture mode","Exit picture in picture mode":"Exit picture in picture mode",Play:"Play",Pause:"Pause","Playback rate":"Playback rate","Playback rate {playbackRate}":"Playback rate {playbackRate}",Quality:"Quality","Seek backward":"Seek backward","Seek forward":"Seek forward",Settings:"Settings",Auto:"Auto","audio player":"audio player","video player":"video player",volume:"volume",seek:"seek","closed captions":"closed captions","current playback rate":"current playback rate","playback time":"playback time","media loading":"media loading",settings:"settings","audio tracks":"audio tracks",quality:"quality",play:"play",pause:"pause",mute:"mute",unmute:"unmute","chapter: {chapterName}":"chapter: {chapterName}",live:"live",Off:"Off","start airplay":"start airplay","stop airplay":"stop airplay","start casting":"start casting","stop casting":"stop casting","enter fullscreen mode":"enter fullscreen mode","exit fullscreen mode":"exit fullscreen mode","enter picture in picture mode":"enter picture in picture mode","exit picture in picture mode":"exit picture in picture mode","seek to live":"seek to live","playing live":"playing live","seek back {seekOffset} seconds":"seek back {seekOffset} seconds","seek forward {seekOffset} seconds":"seek forward {seekOffset} seconds","Network Error":"Network Error","Decode Error":"Decode Error","S
724ource Not Supported":"Source Not Supported","Encryption Error":"Encryption Error","A network error caused the media download to fail.":"A network error caused the media download to fail.","A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.":"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.","An unsupported error occurred. The server or network failed, or your browser does not support this format.":"An unsupported error occurred. The server or network failed, or your browser does not support this format.","The media is encrypted and there are no keys to decrypt it.":"The media is encrypted and there are no keys to decrypt it."}},s=(null==(t=globalThis.navigator)?void 0:t.language)||"en";e.s(["setLanguage",0,e=>{s=e},"t",0,(e,t={})=>(e=>{var t,r,a;let[n]=s.split("-");return(null==(t=i[s])?void 0:t[e])||(null==(r=i[n])?void 0:r[e])||(null==(a=i.en)?void 0:a[e])||e})(e).replace(/\{(\w+)\}/g,(e,i)=>i in t?String(t[i]):`{${i}}`)],12327)},474227,e=>{"use strict";let t;var i=e.i(30094),s=e.i(966803),r=e.i(489094);let a=()=>{var e,s;return t||(t=null==(s=null==(e=i.document)?void 0:e.createElement)?void 0:s.call(e,"video"))},n=async(e=a())=>{if(!e)return!1;let t=e.volume;e.volume=t/2+.1;let i=new AbortController,s=await Promise.race([l(e,i.signal),o(e,t)]);return i.abort(),s},l=(e,t)=>new Promise(i=>{e.addEventListener("volumechange",()=>i(!0),{signal:t})}),o=async(e,t)=>{for(let i=0;i<10;i++){if(e.volume===t)return!1;await (0,s.delay)(10)}return e.volume!==t},d=/.*Version\/.*Safari\/.*/.test(i.globalThis.navigator.userAgent),h=(e=a())=>(!i.globalThis.matchMedia("(display-mode: standalone)").matches||!d)&&"function"==typeof(null==e?void 0:e.requestPictureInPicture),u=(e=a())=>(0,r.isFullscreenEnabled)({documentElement:i.document,media:e}),c=u(),f=h(),m=!!i.globalThis.WebKitPlaybackTargetAvailabilityEvent,g=!!i.globalThis.chrome;e.s(["airplaySupported",0,m,"castSupported",0,g,"fullscreenSupported",0,c,"hasFullscreenSupport",0,u,"hasPipSupport",0,h,"hasVolumeSupportAsync",0,n,"pipSupported",0,f])},309869,e=>{"use strict";var t=e.i(30094);let i=new WeakMap,s=e=>{let t=i.get(e);return t||i.set(e,t=new Set),t},r=new t.globalThis.ResizeObserver(e=>{for(let t of e)for(let e of s(t.target))e(t)});e.s(["observeResize",0,function(e,t){s(e).add(t),r.observe(e)},"unobserveResize",0,function(e,t){let i=s(e);i.delete(t),i.size||r.unobserve(e)}])},966803,e=>{"use strict";function t(e){if(e){let{id:t,width:i,height:s}=e;return[t,i,s].filter(e=>null!=e).join(":")}}function i(e){if(e){let[t,i,s]=e.split(":");return{id:t,width:+i,height:+s}}}function s(e){if(e){let{id:t,kind:i,language:s,label:r}=e;return[t,i,s,r].filter(e=>null!=e).join(":")}}function r(e){if(e){let[t,i,s,r]=e.split(":");return{id:t,kind:i,language:s,label:r}}}e.s(["delay",0,e=>new Promise(t=>setTimeout(t,e)),"isValidNumber",0,function(e){return"number"==typeof e&&!Number.isNaN(e)&&Number.isFinite(e)},"parseAudioTrackList",0,function(e){return null==e?void 0:e.split(/\s+/).map(r)},"parseRenditionList",0,function(e){return null==e?void 0:e.split(/\s+/).map(i)},"stringifyAudioTrackList",0,function(e){return null==e?void 0:e.map(s).join(" ")},"stringifyRenditionList",0,function(e){return null==e?void 0:e.map(t).join(" ")}])},396200,e=>{"use strict";var t=e.i(586507),i=e.i(220923),s=e.i(838078),r=e.i(747426),a=e.i(587939),n=e.i(753915),l=e.i(744777),o=e.i(462951);e.s(["Controls",0,({controlsToShow:e,hideWhenPaused:d=!1,className:h})=>{let{play:u=!0,mute:c=!0,time:f=!0,range:m=!0,settings:g=!0,fullscreen:p=!0,captions:v=!1}=e??{},E=(0,o.useHasPlayedOnce)(),b=(0,r.useMediaSelector)(e=>e?.mediaMuted),y=(0,r.useMediaSelector)(e=>e?.mediaPaused),T=(0,n.useIsMobile)();return(0,t.jsxs)(i.MediaControlBar,{className:(0,a.cn)("z-(--z-index-slot-controls) absolute bottom-0 left-0 right-0","pointer-events-none hidden items-center justify-between gap-3 p-3 focus-within:flex",E&&"pointer-events-auto",E&&!(d&&y)&&"flex",T&&"portrait:group-[[mediaisfullscreen]]/mediaplayercontroller:bottom-auto! portrait:group-[[mediaisfullscreen]]/mediaplayercontroller:flex! portrait:group-[[mediaisfullscreen]]/mediaplayercontroller:transform-hidden portrait:group-[[mediaisfullscreen]]/mediaplayercontroller:top-[50%]",h),children:[u&&(0,t.jsx)(i.MediaPlayButton,{}),c&&(0,t.jsx)(i.MediaMuteButton,{children:(0,t.jsxs)("div",{slot:"icon",className:"relative size-6",children:[(0,t.jsx)(l.SoundOnIcon,{}),(0,t.jsx)("div",{className:(0,a.cn)("absolute inset-0 h-full w-full rotate-45","after:absolute after:right-0 after:top-[calc(50%-1px)] after:h-[2px] after:w-0 after:bg-white",b&&"after:left-0 after:right-auto after:w-full")})]})}),f&&(0,t.jsx)(i.MediaTimeDisplay,{showDuration:!0}),m&&(0,t.jsx)(i.MediaTimeRange,{}),v&&(0,t.jsx)(i.MediaCaptionsButton,{}),g&&(0,t.jsx)(s.MediaSettingsMenuButton,{className:"group",children:(0,t.jsx)(l.OptionsIcon,{slot:"icon"})}),p&&(0,t.jsx)(i.MediaFullscreenButton,{children:(0,t.jsx)(l.FullscreenIcon,{slot:"icon"})}),(0,t.jsx)("div",{className:"-z-1 bg-linear-to-t absolute inset-0 -mt-5 from-black/75 via-black/35 to-transparent opacity-75"})]})}])},462951,e=>{"use strict";var t=e.i(699294),i=e.i(747426),s=e.i(724965);let r=()=>{let[e,s]=(0,t.useState)(!1),r=(0,i.useMediaSelector)(e=>e?.mediaHasPlayed);return(0,t.useEffect)(()=>{r&&!e&&s(!0)},[r,e]),e};e.s(["useHasPlayedOnce",0,r,"useOverlay",0,()=>
724{let e=(0,i.useMediaDispatch)(),t=(0,i.useMediaSelector)(e=>!1===e.mediaPaused),{video:a,overlay:n}=(0,s.useMediaPlayerContext)(),l=r(),o=n?.showWhenPaused??!1;return{shouldHide:t||l&&!o,play:()=>{e({type:i.MediaActionTypes.MEDIA_PLAY_REQUEST})},isPlaying:t,hasPlayedOnce:l,title:a?.title,showWhenPaused:o,overlay:n}},"useProgress",0,()=>(0,i.useMediaSelector)(e=>{let t=e.mediaDuration??0;return!Number.isFinite(t)||t<=0?0:Math.min((e.mediaCurrentTime??0)/t,1)})])},744777,e=>{"use strict";var t=e.i(586507),i=e.i(587939);let s=e=>(0,t.jsx)("svg",{viewBox:"0 0 25 25",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,t.jsx)("path",{d:"M6.97168 3.90283L19.4161 11.9028L6.97168 19.9028V3.90283Z",fill:"currentColor"})});e.s(["ChevronIcon",0,e=>(0,t.jsx)("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6.52044 4.0285C6.1885 4.36045 6.1885 4.89864 6.52044 5.23058L9.4194 8.12954L6.52044 11.0285C6.1885 11.3604 6.1885 11.8986 6.52044 12.2306C6.85239 12.5625 7.39058 12.5625 7.72253 12.2306L11.2225 8.73058C11.5545 8.39864 11.5545 7.86045 11.2225 7.5285L7.72253 4.0285C7.39058 3.69655 6.85239 3.69655 6.52044 4.0285Z",fill:"currentColor"})}),"FullscreenIcon",0,e=>(0,t.jsx)("svg",{width:"25",height:"25",viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,t.jsx)("path",{d:"M5.25472 10.9962C5.03087 10.9962 4.84619 10.9258 4.70068 10.7851C4.55517 10.6445 4.48242 10.4725 4.48242 10.2693V5.93185C4.48242 5.53587 4.59995 5.22847 4.83499 5.00964C5.07564 4.7856 5.40862 4.67358 5.83394 4.67358H10.4929C10.7224 4.67358 10.9098 4.74132 11.0553 4.87678C11.2065 5.01225 11.282 5.18418 11.282 5.39259C11.282 5.601 11.2065 5.77294 11.0553 5.9084C10.9042 6.03866 10.7168 6.10378 10.4929 6.10378H9.79617L6.85808 5.94748L9.18337 8.0029L11.7773 10.41C11.85 10.4777 11.906 10.5585 11.9452 10.6523C11.9843 10.7461 12.0039 10.8451 12.0039 10.9493C12.0039 11.1681 11.9256 11.3452 11.7689 11.4807C11.6122 11.611 11.4135 11.6761 11.1729 11.6761C10.9602 11.6761 10.7839 11.6084 10.644 11.4729L8.0585 9.05015L5.85073 6.88531L6.01862 9.61285V10.2693C6.01862 10.4777 5.94587 10.6523 5.80037 10.793C5.66046 10.9284 5.47857 10.9962 5.25472 10.9962ZM14.4635 19.5852C14.2397 19.5852 14.0522 19.5174 13.9011 19.382C13.75 19.2465 13.6744 19.0746 13.6744 18.8662C13.6744 18.6577 13.75 18.4858 13.9011 18.3503C14.0522 18.2201 14.2397 18.155 14.4635 18.155H15.1687L18.1068 18.3113L15.7731 16.2558L13.1876 13.8487C13.1092 13.781 13.0505 13.7002 13.0113 13.6065C12.9721 13.5127 12.9525 13.4137 12.9525 13.3095C12.9525 13.0907 13.0309 12.9161 13.1876 12.7859C13.3499 12.6504 13.5485 12.5827 13.7836 12.5827C14.0018 12.5827 14.1809 12.6504 14.3208 12.7859L16.898 15.2086L19.1141 17.3734L18.9378 14.6459V13.9894C18.9378 13.781 19.0106 13.6091 19.1561 13.4736C19.3016 13.3329 19.4835 13.2626 19.7017 13.2626C19.9256 13.2626 20.1103 13.3329 20.2558 13.4736C20.4069 13.6143 20.4824 13.7862 20.4824 13.9894V18.3269C20.4824 18.7229 20.3621 19.0303 20.1215 19.2491C19.8864 19.4731 19.5534 19.5852 19.1225 19.5852H14.4635Z",fill:"currentColor"})}),"OptionsIcon",0,e=>(0,t.jsx)("svg",{width:"25",height:"25",viewBox:"0 0 25 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,t.jsx)("path",{d:"M11.7384 20.1294C11.4339 20.1294 11.1687 20.0434 10.9428 19.8713C10.7169 19.6993 10.572 19.4658 10.5082 19.1709L10.2062 17.8658L10.0073 17.7994L8.88021 18.4925C8.62484 18.6547 8.35474 18.7162 8.0699 18.6769C7.78997 18.6425 7.54197 18.5171 7.32588 18.3008L6.29458 17.2759C6.07358 17.0547 5.9459 16.804 5.91152 16.5239C5.87714 16.2437 5.94099 15.9758 6.10305 15.7202L6.81023 14.5921L6.74393 14.4077L5.44006 14.1054C5.15032 14.0366 4.91704 13.8891 4.74025 13.663C4.56836 13.4369 4.48242 13.1739 4.48242 12.8741V11.4216C4.48242 11.1217 4.56836 10.8612 4.74025 10.64C4.91213 10.4139 5.14541 10.264 5.44006 10.1902L6.7292 9.88055L6.80286 9.68147L6.09568 8.55336C5.93853 8.30267 5.87469 8.03723 5.90415 7.75704C5.93853 7.47686 6.06622 7.22617 6.28721 7.00497L7.31852 5.97271C7.5346 5.76135 7.78261 5.636 8.06253 5.59668C8.34246 5.55735 8.61011 5.
72461634 8.86548 5.77363L9.99992 6.47409L10.2062 6.39299L10.5082 5.08792C10.572 4.7979 10.7169 4.56688 10.9428 4.39483C11.1687 4.21787 11.4339 4.12939 11.7384 4.12939H13.2338C13.5383 4.12939 13.801 4.21787 14.022 4.39483C14.243 4.56688 14.3879 4.7979 14.4566 5.08792L14.7587 6.39299L14.9649 6.47409L16.0994 5.77363C16.3547 5.61634 16.6224 5.55735 16.9023 5.59668C17.1822 5.636 17.4302 5.76135 17.6463 5.97271L18.6776 7.00497C18.8986 7.22617 19.0239 7.47686 19.0533 7.75704C19.0877 8.03723 19.0263 8.30267 18.8692 8.55336L18.162 9.68147L18.243 9.88055L19.5248 10.1902C19.8145 10.259 20.0453 10.4065 20.2172 10.6326C20.394 10.8587 20.4824 11.1217 20.4824 11.4216V12.8741C20.4824 13.1739 20.394 13.4369 20.2172 13.663C20.0453 13.8891 19.8145 14.0366 19.5248 14.1054L18.2283 14.4077L18.1546 14.5921L18.8618 15.7202C19.0189 15.9758 19.0803 16.2437 19.046 16.5239C19.0165 16.804 18.8913 17.0547 18.6703 17.2759L17.639 18.3008C17.4229 18.5171 17.1724 18.6425 16.8876 18.6769C16.6077 18.7162 16.34 18.6547 16.0846 18.4925L14.9502 17.7994L14.7587 17.8658L14.4566 19.1709C14.3879 19.4658 14.243 19.6993 14.022 19.8713C13.801 20.0434 13.5383 20.1294 13.2338 20.1294H11.7384ZM11.9226 18.7948H13.0496C13.1675 18.7948 13.2338 18.7383 13.2485 18.6252L13.6905 16.8114C13.9361 16.7574 14.1644 16.6861 14.3756 16.5976C14.5868 16.5042 14.7832 16.401 14.9649 16.2879L16.5487 17.2612C16.6519 17.33 16.7427 17.3202 16.8213 17.2317L17.6021 16.4428C17.6807 16.3739 17.6881 16.2855 17.6242 16.1773L16.6519 14.5994C16.755 14.4225 16.8507 14.2259 16.9391 14.0096C17.0325 13.7933 17.1061 13.5696 17.1601 13.3386L18.9797 12.9036C19.0926 12.8839 19.1491 12.8151 19.1491 12.6971V11.5911C19.1491 11.4781 19.0926 11.4093 18.9797 11.3847L17.1675 10.9497C17.1086 10.7039 17.03 10.4704 16.9318 10.2492C16.8385 10.028 16.7476 9.83876 16.6592 9.68147L17.6316 8.09621C17.7003 7.99299 17.693 7.89959 17.6095 7.81603L16.8286 7.04921C16.7452 6.97056 16.6519 6.95827 16.5487 7.01234L14.9649 7.97824C14.7832 7.87502 14.5843 7.77916 14.3682 7.69068C14.1571 7.59729 13.9312 7.5211 13.6905 7.46211L13.2485 5.63354C13.2338 5.52049 13.1675 5.46396 13.0496 5.46396H11.9226C11.7998 5.46396 11.7286 5.52049 11.7089 5.63354L11.2817 7.44737C11.046 7.50635 10.8127 7.585 10.5819 7.68331C10.356 7.77671 10.1595 7.87256 9.99255 7.97087L8.40876 7.01234C8.31054 6.95827 8.21968 6.9681 8.1362 7.04184L7.34798 7.81603C7.26941 7.89959 7.26204 7.99299 7.32588 8.09621L8.29826 9.68147C8.21477 9.83876 8.12392 10.028 8.0257 10.2492C7.92748 10.4704 7.85136 10.7039 7.79734 10.9497L5.98518 11.3847C5.87223 11.4093 5.81576 11.4781 5.81576 11.5911V12.6971C5.81576 12.8151 5.87223 12.8839 5.98518 12.9036L7.79734 13.3312C7.85627 13.5672 7.93239 13.7933 8.0257 14.0096C8.11901 14.2209 8.21477 14.4176 8.31299 14.5994L7.33325 16.1847C7.27432 16.2879 7.28169 16.3764 7.35535 16.4501L8.14356 17.2317C8.22214 17.3202 8.31054 17.3325 8.40876 17.2686L9.99992 16.2879C10.1816 16.401 10.3805 16.5042 10.5966 16.5976C10.8176 16.6861 11.0435 16.7574 11.2743 16.8114L11.7089 18.6252C11.7286 18.7383 11.7998 18.7948 11.9226 18.7948ZM12.4824 14.9239C11.9668 14.9239 11.4953 14.7985 11.0681 14.5478C10.6457 14.2971 10.3093 13.9604 10.0588 13.5377C9.8133 13.11 9.69053 12.6406 9.69053 12.1294C9.69053 11.6133 9.8133 11.1438 10.0588 10.7211C10.3093 10.2984 10.6457 9.96165 11.0681 9.71096C11.4953 9.46027 11.9668 9.33492 12.4824 9.33492C12.9981 9.33492 13.4671 9.46027 13.8894 9.71096C14.3118 9.96165 14.6482 10.2984 14.8986 10.7211C15.1491 11.1438 15.2743 11.6133 15.2743 12.1294C15.2743 12.6406 15.1491 13.11 14.8986 13.5377C14.6482 13.9604 14.3118 14.2971 13.8894 14.5478C13.4671 14.7985 12.9981 14.9239 12.4824 14.9239ZM12.4824 13.6557C12.7623 13.6557 13.0177 13.5868 13.2485 13.4492C13.4794 13.3116 13.6635 13.1272 13.801 12.8962C13.9385 12.6652 14.0073 12.4096 14.0073 12.1294C14.0073 11.8443 13.9385 11.5887 13.801 11.3626C13.6635 11.1315 13.4794 10.9472 13.2485 10.8096C13.0177 10.6719 12.7623 10.6031 12.4824 10.6031C12.1976 10.6031 11.9398 10.6719 11.7089 10.8096C11.483 10.9472 11.3013 11.1315 11.1638 11.3626C11.0263 11.5887 10.9576 11.8443 10.9576 12.1294C10.9576 12.4096 11.0263 12.6652 11.1638 12.8962C11.3013 13.1272 11.483 13.3116 11.7089 13.4492C11.9398 13.5868 12.1976 13.6557 12.4824 13.6557Z",fill:"currentColor"})}),"PlayButton",0,({className:e,label:r="Play"})=>(0,t.jsx)("div",{className:(0,i.cn)("py-2.25 flex items-center rounded-sm border border-white bg-white/5 px-3.5 shadow-[0_9.841px_82.665px_0_rgba(0,0,0,0.75)] backdrop-blur-[5px] transition-transform group-hover:scale-105",e),children:(0,t.jsxs)("span",{className:"flex items-center text-sm font-medium text-white",children:[(0,t.jsx)(s,{className:"-ml-1 mr-1 w-
7245"})," ",r]})}),"PlayIcon",0,s,"SoundOnIcon",0,e=>(0,t.jsx)("svg",{width:"100%",viewBox:"0 0 25 25",fill:"none",preserveAspectRatio:"xMidYMid meet",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,t.jsx)("path",{d:"M4.046 15.6908C3.41273 15.6908 2.93489 15.5288 2.6125 15.2048C2.2901 14.8808 2.12891 14.3976 2.12891 13.7551V10.5288C2.12891 9.8752 2.2901 9.38917 2.6125 9.07073C2.93489 8.74671 3.41273 8.5847 4.046 8.5847H6.48987C6.56471 8.5847 6.62804 8.55956 6.67986 8.50928L10.4709 5.24951C10.7184 5.03722 10.9286 4.88079 11.1013 4.78023C11.2797 4.67967 11.4812 4.62939 11.7058 4.62939C12.0339 4.62939 12.3045 4.73833 12.5175 4.95621C12.7305 5.17409 12.837 5.43945 12.837 5.7523V18.5484C12.837 18.8556 12.7305 19.1126 12.5175 19.3193C12.3103 19.526 12.0454 19.6294 11.723 19.6294C11.4985 19.6294 11.2884 19.5819 11.0926 19.4869C10.9027 19.392 10.6954 19.2495 10.4709 19.0596L6.67986 15.7663C6.62804 15.716 6.56471 15.6908 6.48987 15.6908H4.046ZM4.19281 14.2076H6.88711C7.00225 14.2076 7.10588 14.2244 7.19799 14.2579C7.29586 14.2914 7.39373 14.3501 7.4916 14.4339L10.9545 17.4674C11.0005 17.5121 11.0466 17.5344 11.0926 17.5344C11.1675 17.5344 11.2049 17.4925 11.2049 17.4087V6.85006C11.2049 6.76627 11.1675 6.72437 11.0926 6.72437C11.0639 6.72437 11.0379 6.72995 11.0149 6.74113C10.9919 6.7523 10.9689 6.76906 10.9458 6.79141L7.4916 9.84168C7.39373 9.93107 7.29586 9.98973 7.19799 10.0177C7.10588 10.0456 7.00225 10.0596 6.88711 10.0596H4.19281C4.04888 10.0596 3.9395 10.0959 3.86466 10.1685C3.79557 10.2355 3.76103 10.3389 3.76103 10.4786V13.797C3.76103 13.9367 3.79557 14.04 3.86466 14.107C3.9395 14.1741 4.04888 14.2076 4.19281 14.2076ZM15.7731 15.8417C15.5659 15.7076 15.445 15.5288 15.4104 15.3054C15.3816 15.0819 15.4478 14.8501 15.609 14.6098C15.8451 14.2746 16.0293 13.8948 16.1617 13.4702C16.2941 13.04 16.3603 12.5903 16.3603 12.121C16.3603 11.6517 16.2941 11.202 16.1617 10.7719C16.0351 10.3417 15.8508 9.9618 15.609 9.63219C15.4421 9.39755 15.3759 9.1685 15.4104 8.94504C15.445 8.71599 15.5659 8.53442 15.7731 8.40034C15.9573 8.28303 16.156 8.24392 16.369 8.28303C16.582 8.32213 16.7518 8.43107 16.8785 8.60984C17.2297 9.06235 17.5031 9.59587 17.6989 10.2104C17.8946 10.8193 17.9925 11.4562 17.9925 12.121C17.9925 12.7858 17.8946 13.4227 17.6989 14.0316C17.5031 14.6406 17.2297 15.1713 16.8785 15.6238C16.7518 15.8082 16.582 15.9199 16.369 15.959C16.156 15.9925 15.9573 15.9534 15.7731 15.8417ZM19.2187 18.0791C19.0172 17.9562 18.9021 17.7858 18.8733 17.5679C18.8445 17.3445 18.905 17.1238 19.0546 16.9059C19.5094 16.2467 19.8635 15.5065 20.1168 14.6853C20.3701 13.864 20.4968 13.0093 20.4968 12.121C20.4968 11.2327 20.3701 10.378 20.1168 9.55677C19.8693 8.72995 19.5152 7.98973 19.0546 7.3361C18.8992 7.11822 18.8359 6.90034 18.8647 6.68247C18.8992 6.459 19.0172 6.28582 19.2187 6.16291C19.4145 6.04001 19.6188 6.0009 19.8318 6.0456C20.0506 6.0847 20.2262 6.19923 20.3586 6.38917C20.9228 7.15453 21.3575 8.03722 21.6626 9.03722C21.9735 10.0316 22.1289 11.0596 22.1289 12.121C22.1289 13.1825 21.9735 14.2104 21.6626 15.2048C21.3517 16.1936 20.917 17.0763 20.3586 17.8529C20.2262 18.0428 20.0506 18.1573 19.8318 18.1964C19.6188 18.2355 19.4145 18.1964 19.2187 18.0791Z",fill:"currentColor"})})])},651536,e=>{"use strict";var t=e.i(586507),i=e.i(587939),s=e.i(462951),r=e.i(744777);e.s(["Overlay",0,({playLabel:e}={})=>{let{shouldHide:a,play:n,title:l,overlay:o}=(0,s.useOverlay)();return(0,t.jsx)("div",{"aria-hidden":a,className:(0,i.cn)("z-(--z-index-slot-overlay) transition-none! absolute inset-0 h-full w-full",a&&"pointer-events-none opacity-0",o?.className),children:(0,t.jsxs)("button",{onClick:n,className:(0,i.cn)("z-(--z-index-slot-overlay) pointer-events-auto absolute inset-0 flex h-full w-full cursor-pointer items-center justify-center focus-visible:outline-2 focus-visible:outline-offset-2","bg-black/20","group",a&&"pointer-events-none opacity-0"),children:[(0,t.jsx)("div",{className:"absolute inset-0 z-10 w-full bg-black/10"}),(l||o?.children)&&(0,t.jsxs)("div",{className:"absolute inset-0 z-10 flex w-full flex-col items-start gap-2 p-3 lg:p-6 xl:p-8",children:[l&&!o?.hideTitle&&(0,t.jsx)("span",{className:"max-w-[28ch] text-balance text-left text-lg font-medium text-white/85",children:l}),o?.children]}),(0,t.jsx)(r.PlayButton,{label:e,className:(0,i.cn)("absolute left-1/2 top-1/2 z-20 -translate-x-1/2 -translate-y-1/2","transition-scale scale-120 ease-out-quart opacity-0 duration-500","shadow-[0_9.841px_82.665px_0_rgba(0,0,0,0.75)]","group-focus-visible:ring-3 group-focus-visible:ring-border-focus focus-visible:ring-3 focus-visible:ring-border-focus hover:bg-(--media-player-accent) focus-visible:bg-(--media-player-accent) group-focus-visible:bg-(--media-player-accent) pointer-events-auto hover:scale-105 focus-visible:outline-none",a?"pointer-events-none animate-[fade-out-blur_0.66s_var(--ease-out-quart)_both]":"scale-100 animate-[fade-in-blur_0.66s_var(--ease-out-quart)_both] cursor-pointer opacity-100")})]})})}])},879841,e=>{"use strict";var t=e.i(586507),i=e.i(699294),s=e.i(747426),r=e.i(601756),a=e.i(556836),n=e.i(587939),l=e.i(447018),o=e.i(724965),d=e.i(462951);e.s(["PreviewVideo",0,()=>{let e=(0,d.useHasPlayedOnce)(),{video:h,previewVideo:u}=(0,o.useMediaPlayerContext)(),c=(0,s.useMediaSelector)(e=>e?.mediaPaused),f=(0,l.useMediaQuery)("(max-width: 767px)"),m=(0,i.useRef)(null),g=(0,r.useInView)(m,{margin:"200px"});return u?.url?(0,t.jsx)("div",{ref:m,className:(0,n.cn)("z-(--z-index-slot-thumbnail) absolute inset-0 flex h-full w-full items-center justify-center overflow-hidden",e&&"pointer-events-none opacity-0",u?.showWhenPaused&&c&&"pointer-events-auto opacity-100"),children:g&&(0,t.jsx)(a.default,{src:"string"==typeof u.url?u.url:f?u.url.mobile:u.url.desktop,autoplay:!0,muted:!0,loop:!0,playsInl
724ine:!0,className:"absolute inset-0 h-full w-full [--media-object-fit:cover]",poster:h?.poster,defaultMuted:!0,volume:0})}):null}])},724965,220923,e=>{"use strict";var t,i,s,r,a,n,l,o,d,h,u,c,f,m,g,p,v,E,b,y,T,A,S,I,L,k,R,M,C,_,w,D,x,P,O,U,N,F,B,$,H,G,V,W,K,j,q,Y,Q,z,X,Z,J,ee,et,ei,es,er,ea,en,el,eo,ed,eh,eu,ec,ef,em,eg,ep,ev,eE,eb,ey,eT,eA,eS,eI,eL,ek,eR,eM,eC,e_,ew,eD,ex,eP,eO,eU,eN,eF,eB,e$,eH,eG,eV,eW,eK,ej,eq,eY,eQ,ez,eX,eZ,eJ,e0,e1,e2,e3,e4,e5,e8,e6,e9,e7,te,tt,ti,ts,tr,ta,tn,tl,to,td=e.i(586507),th=e.i(699294),tu=e.i(390903),tc=e.i(711808),tf=e.i(900001),tm=e.i(417379),tg=e.i(12327),tp=e.i(30094),tv=e.i(309869),tE=e.i(889096),tb=tp,ty=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tT=(e,t,i)=>(ty(e,t,"read from private field"),i?i.call(e):t.get(e)),tA=(e,t,i,s)=>(ty(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class tS extends tb.globalThis.HTMLElement{constructor(){if(super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,t,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}}static get observedAttributes(){return[tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER,tf.MediaUIAttributes.MEDIA_PAUSED]}attributeChangedCallback(e,i,s){var r,a,n,l,o;e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER&&(i&&(null==(a=null==(r=tT(this,t))?void 0:r.unassociateElement)||a.call(r,this),tA(this,t,null)),s&&this.isConnected&&(tA(this,t,null==(n=this.getRootNode())?void 0:n.getElementById(s)),null==(o=null==(l=tT(this,t))?void 0:l.associateElement)||o.call(l,this)))}connectedCallback(){var e,i,s,r,a,n;let l;this.tabIndex=-1,this.setAttribute("aria-hidden","true"),tA(this,t,(a=this,(l=a.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER))?null==(n=a.getRootNode())?void 0:n.getElementById(l):(0,tE.closestComposedNode)(a,"media-controller"))),this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER)&&(null==(i=null==(e=tT(this,t))?void 0:e.associateElement)||i.call(e,this)),null==(s=tT(this,t))||s.addEventListener("pointerdown",this),null==(r=tT(this,t))||r.addEventListener("click",this)}disconnectedCallback(){var e,i,s,r;this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER)&&(null==(i=null==(e=tT(this,t))?void 0:e.unassociateElement)||i.call(e,this)),null==(s=tT(this,t))||s.removeEventListener("pointerdown",this),null==(r=tT(this,t))||r.removeEventListener("click",this),tA(this,t,null)}handleEvent(e){var t;let i=null==(t=e.composedPath())?void 0:t[0];if(["video","media-controller"].includes(null==i?void 0:i.localName)){if("pointerdown"===e.type)this._pointerType=e.pointerType;else if("click"===e.type){let{clientX:t,clientY:i}=e,{left:s,top:r,width:a,height:n}=this.getBoundingClientRect(),l=t-s,o=i-r;if(l<0||o<0||l>a||o>n||0===a&&0===n)return;let d=this._pointerType||"mouse";if(this._pointerType=void 0,d===tf.PointerTypes.TOUCH)return void this.handleTap(e);if(d===tf.PointerTypes.MOUSE||d===tf.PointerTypes.PEN)return void this.handleMouseClick(e)}}}get mediaPaused(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED)}set mediaPaused(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED,e)}handleTap(e){}handleMouseClick(e){let t=this.mediaPaused?tf.MediaUIEvents.MEDIA_PLAY_REQUEST:tf.MediaUIEvents.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new tb.globalThis.CustomEvent(t,{composed:!0,bubbles:!0}))}}t=new WeakMap,tS.shadowRootOptions={mode:"open"},tS.getTemplateHTML=function(e){return`
725    <style>
726      :host {
727        display: var(--media-control-display, var(--media-gesture-receiver-display, inline-block));
728        box-sizing: border-box;
729      }
730    </style>
731  `},tb.globalThis.customElements.get("media-gesture-receiver")||tb.globalThis.customElements.define("media-gesture-receiver",tS);var tI=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tL=(e,t,i)=>(tI(e,t,"read from private field"),i?i.call(e):t.get(e)),tk=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tR=(e,t,i,s)=>(tI(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),tM=(e,t,i)=>(tI(e,t,"access private method"),i);let tC="audio",t_="autohide",tw="breakpoints",tD="gesturesdisabled",tx="keyboardcontrol",tP="noautohide",tO="userinactive",tU="autohideovercontrols",tN=Object.values(tf.MediaUIAttributes);function tF(e,t){var i,s,r;if(!e.isConnected)return;let a=Object.fromEntries((null!=(i=e.getAttribute(tw))?i:"sm:384 md:576 lg:768 xl:960").split(/\s+/).map(e=>e.split(":"))),n=(s=a,r=t,Object.keys(s).filter(e=>r>=parseInt(s[e]))),l=!1;
731if(Object.keys(a).forEach(t=>{if(n.includes(t)){e.hasAttribute(`breakpoint${t}`)||(e.setAttribute(`breakpoint${t}`,""),l=!0);return}e.hasAttribute(`breakpoint${t}`)&&(e.removeAttribute(`breakpoint${t}`),l=!0)}),l){let t=new CustomEvent(tf.MediaStateChangeEvents.BREAKPOINTS_CHANGE,{detail:n});e.dispatchEvent(t)}e.breakpointsComputed||(e.breakpointsComputed=!0,e.dispatchEvent(new CustomEvent(tf.MediaStateChangeEvents.BREAKPOINTS_COMPUTED,{bubbles:!0,composed:!0})))}class tB extends tp.globalThis.HTMLElement{constructor(){if(super(),tk(this,l),tk(this,u),tk(this,f),tk(this,g),tk(this,v),tk(this,b),tk(this,i,0),tk(this,s,null),tk(this,r,null),tk(this,a,void 0),this.breakpointsComputed=!1,tk(this,n,new MutationObserver(tM(this,l,o).bind(this))),tk(this,d,!1),tk(this,h,e=>{tL(this,d)||(setTimeout(()=>{tF(e.target,e.contentRect.width),tR(this,d,!1)},0),tR(this,d,!0))}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes),t=this.constructor.getTemplateHTML(e);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(t):this.shadowRoot.innerHTML=t}const e=this.querySelector(":scope > slot[slot=media]");e&&e.addEventListener("slotchange",()=>{if(!e.assignedElements({flatten:!0}).length){tL(this,s)&&this.mediaUnsetCallback(tL(this,s));return}this.handleMediaUpdated(this.media)})}static get observedAttributes(){return[t_,tD].concat(tN).filter(e=>![tf.MediaUIAttributes.MEDIA_RENDITION_LIST,tf.MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST,tf.MediaUIAttributes.MEDIA_CHAPTERS_CUES,tf.MediaUIAttributes.MEDIA_WIDTH,tf.MediaUIAttributes.MEDIA_HEIGHT,tf.MediaUIAttributes.MEDIA_ERROR,tf.MediaUIAttributes.MEDIA_ERROR_MESSAGE].includes(e))}attributeChangedCallback(e,t,i){e.toLowerCase()==t_&&(this.autohide=i)}get media(){let e=this.querySelector(":scope > [slot=media]");return(null==e?void 0:e.nodeName)=="SLOT"&&(e=e.assignedElements({flatten:!0})[0]),e}async handleMediaUpdated(e){e&&(tR(this,s,e),e.localName.includes("-")&&await tp.globalThis.customElements.whenDefined(e.localName),this.mediaSetCallback(e))}connectedCallback(){var e;tL(this,n).observe(this,{childList:!0,subtree:!0}),(0,tv.observeResize)(this,tL(this,h));let t=null!=this.getAttribute(tC)?(0,tg.t)("audio player"):(0,tg.t)("video player");this.setAttribute("role","region"),this.setAttribute("aria-label",t),this.handleMediaUpdated(this.media),this.setAttribute(tO,""),tF(this,this.getBoundingClientRect().width),this.addEventListener("pointerdown",this),this.addEventListener("pointermove",this),this.addEventListener("pointerup",this),this.addEventListener("mouseleave",this),this.addEventListener("keyup",this),null==(e=tp.globalThis.window)||e.addEventListener("mouseup",this)}disconnectedCallback(){var e;tL(this,n).disconnect(),(0,tv.unobserveResize)(this,tL(this,h)),this.media&&this.mediaUnsetCallback(this.media),null==(e=tp.globalThis.window)||e.removeEventListener("mouseup",this)}mediaSetCallback(e){}mediaUnsetCallback(e){tR(this,s,null)}handleEvent(e){switch(e.type){case"pointerdown":tR(this,i,e.timeStamp);break;case"pointermove":tM(this,u,c).call(this,e);break;case"pointerup":tM(this,f,m).call(this,e);break;case"mouseleave":tM(this,g,p).call(this);break;case"mouseup":this.removeAttribute(tx);break;case"keyup":tM(this,b,y).call(this),this.setAttribute(tx,"")}}set autohide(e){let t=Number(e);tR(this,a,isNaN(t)?0:t)}get autohide(){return(void 0===tL(this,a)?2:tL(this,a)).toString()}get breakpoints(){return(0,tE.getStringAttr)(this,tw)}set breakpoints(e){(0,tE.setStringAttr)(this,tw,e)}get audio(){return(0,tE.getBooleanAttr)(this,tC)}set audio(e){(0,tE.setBooleanAttr)(this,tC,e)}get gesturesDisabled(){return(0,tE.getBooleanAttr)(this,tD)}set gesturesDisabled(e){(0,tE.setBooleanAttr)(this,tD,e)}get keyboardControl(){return(0,tE.getBooleanAttr)(this,tx)}set keyboardControl(e){(0,tE.setBooleanAttr)(this,tx,e)}get noAutohide(){return(0,tE.getBooleanAttr)(this,tP)}set noAutohide(e){(0,tE.setBooleanAttr)(this,tP,e)}get autohideOverControls(){return(0,tE.getBooleanAttr)(this,tU)}set autohideOverControls(e){(0,tE.setBooleanAttr)(this,tU,e)}get userInteractive(){return(0,tE.getBooleanAttr)(this,tO)}set userInteractive(e){(0,tE.setBooleanAttr)(this,tO,e)}}i=new WeakMap,s=new WeakMap,r=new WeakMap,a=new WeakMap,n=new WeakMap,l=new WeakSet,o=function(e){let t=this.media;for(let i of e)if("childList"===i.type){for(let e of i.removedNodes
731){if("media"!=e.slot||i.target!=this)continue;let s=i.previousSibling&&i.previousSibling.previousElementSibling;if(s&&t){let t="media"!==s.slot;for(;null!==(s=s.previousSibling);)"media"==s.slot&&(t=!1);t&&this.mediaUnsetCallback(e)}else this.mediaUnsetCallback(e)}if(t)for(let e of i.addedNodes)e===t&&this.handleMediaUpdated(t)}},d=new WeakMap,h=new WeakMap,u=new WeakSet,c=function(e){if("mouse"!==e.pointerType&&e.timeStamp-tL(this,i)<250)return;tM(this,v,E).call(this),clearTimeout(tL(this,r));let t=this.hasAttribute(tU);([this,this.media].includes(e.target)||t)&&tM(this,b,y).call(this)},f=new WeakSet,m=function(e){if("touch"===e.pointerType){let t=!this.hasAttribute(tO);[this,this.media].includes(e.target)&&t?tM(this,g,p).call(this):tM(this,b,y).call(this)}else e.composedPath().some(e=>["media-play-button","media-fullscreen-button"].includes(null==e?void 0:e.localName))&&tM(this,b,y).call(this)},g=new WeakSet,p=function(){if(0>tL(this,a)||this.hasAttribute(tO))return;this.setAttribute(tO,"");let e=new tp.globalThis.CustomEvent(tf.MediaStateChangeEvents.USER_INACTIVE_CHANGE,{composed:!0,bubbles:!0,detail:!0});this.dispatchEvent(e)},v=new WeakSet,E=function(){if(!this.hasAttribute(tO))return;this.removeAttribute(tO);let e=new tp.globalThis.CustomEvent(tf.MediaStateChangeEvents.USER_INACTIVE_CHANGE,{composed:!0,bubbles:!0,detail:!1});this.dispatchEvent(e)},b=new WeakSet,y=function(){tM(this,v,E).call(this),clearTimeout(tL(this,r));let e=parseInt(this.autohide);e<0||tR(this,r,setTimeout(()=>{tM(this,g,p).call(this)},1e3*e))},tB.shadowRootOptions={mode:"open"},tB.getTemplateHTML=function(e){return`
732    <style>
733      
734      :host([${tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) ::slotted([slot=media]) {
735        outline: none;
736      }
737
738      :host {
739        box-sizing: border-box;
740        position: relative;
741        display: inline-block;
742        line-height: 0;
743        background-color: var(--media-background-color, #000);
744        overflow: hidden;
745      }
746
747      :host(:not([${tC}])) [part~=layer]:not([part~=media-layer]) {
748        position: absolute;
749        top: 0;
750        left: 0;
751        bottom: 0;
752        right: 0;
753        display: flex;
754        flex-flow: column nowrap;
755        align-items: start;
756        pointer-events: none;
757        background: none;
758      }
759
760      slot[name=media] {
761        display: var(--media-slot-display, contents);
762      }
763
764      
765      :host([${tC}]) slot[name=media] {
766        display: var(--media-slot-display, none);
767      }
768
769      
770      :host([${tC}]) [part~=layer][part~=gesture-layer] {
771        height: 0;
772        display: block;
773      }
774
775      
776      :host(:not([${tC}])[${tD}]) ::slotted([slot=gestures-chrome]),
777          :host(:not([${tC}])[${tD}]) media-gesture-receiver[slot=gestures-chrome] {
778        display: none;
779      }
780
781      
782      ::slotted(:not([slot=media]):not([slot=poster]):not(media-loading-indicator):not([role=dialog]):not([hidden])) {
783        pointer-events: auto;
784      }
785
786      :host(:not([${tC}])) *[part~=layer][part~=centered-layer] {
787        align-items: center;
788        justify-content: center;
789      }
790
791      :host(:not([${tC}])) ::slotted(media-gesture-receiver[slot=gestures-chrome]),
792      :host(:not([${tC}])) media-gesture-receiver[slot=gestures-chrome] {
793        align-self: stretch;
794        flex-grow: 1;
795      }
796
797      slot[name=middle-chrome] {
798        display: inline;
799        flex-grow: 1;
800        pointer-events: none;
801        background: none;
802      }
803
804      
805      ::slotted([slot=media]),
806      ::slotted([slot=poster]) {
807        width: 100%;
808        height: 100%;
809      }
810
811      
812      :host(:not([${tC}])) .spacer {
813        flex-grow: 1;
814      }
815
816      
817      :host(:-webkit-full-screen) {
818        
819        width: 100% !important;
820        height: 100% !important;
821      }
822
823      
824      ::slotted(:not([slot=media]):not([slot=poster]):not([${tP}]):not([hidden]):not([role=dialog])) {
825        opacity: 1;
826        transition: var(--media-control-transition-in, opacity 0.25s);
827      }
828
829      
830      :host([${tO}]:not([${tf.MediaUIAttributes.MEDIA_PAUSED}]):not([${tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING}
830]):not([${tf.MediaUIAttributes.MEDIA_IS_CASTING}]):not([${tC}])) ::slotted(:not([slot=media]):not([slot=poster]):not([${tP}]):not([role=dialog])) {
831        opacity: 0;
832        transition: var(--media-control-transition-out, opacity 1s);
833      }
834
835      :host([${tO}]:not([${tP}]):not([${tf.MediaUIAttributes.MEDIA_PAUSED}]):not([${tf.MediaUIAttributes.MEDIA_IS_CASTING}]):not([${tC}])) ::slotted([slot=media]) {
836        cursor: none;
837      }
838
839      :host([${tO}][${tU}]:not([${tP}]):not([${tf.MediaUIAttributes.MEDIA_PAUSED}]):not([${tf.MediaUIAttributes.MEDIA_IS_CASTING}]):not([${tC}])) * {
840        --media-cursor: none;
841        cursor: none;
842      }
843
844
845      ::slotted(media-control-bar)  {
846        align-self: stretch;
847      }
848
849      
850      :host(:not([${tC}])[${tf.MediaUIAttributes.MEDIA_HAS_PLAYED}]) slot[name=poster] {
851        display: none;
852      }
853
854      ::slotted([role=dialog]) {
855        width: 100%;
856        height: 100%;
857        align-self: center;
858      }
859
860      ::slotted([role=menu]) {
861        align-self: end;
862      }
863    </style>
864
865    <slot name="media" part="layer media-layer"></slot>
866    <slot name="poster" part="layer poster-layer"></slot>
867    <slot name="gestures-chrome" part="layer gesture-layer">
868      <media-gesture-receiver slot="gestures-chrome">
869        <template shadowrootmode="${tS.shadowRootOptions.mode}">
870          ${tS.getTemplateHTML({})}
871        </template>
872      </media-gesture-receiver>
873    </slot>
874    <span part="layer vertical-layer">
875      <slot name="top-chrome" part="top chrome"></slot>
876      <slot name="middle-chrome" part="middle chrome"></slot>
877      <slot name="centered-chrome" part="layer centered-layer center centered chrome"></slot>
878      
879      <slot part="bottom chrome"></slot>
880    </span>
881    <slot name="dialog" part="layer dialog-layer"></slot>
882  `},tp.globalThis.customElements.get("media-container")||tp.globalThis.customElements.define("media-container",tB);var t$=e.i(789312),tH=e.i(966803),tG=e.i(436561),tV=e.i(285664),tW=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},tK=(e,t,i)=>(tW(e,t,"read from private field"),i?i.call(e):t.get(e)),tj=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},tq=(e,t,i,s)=>(tW(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),tY=(e,t,i)=>(tW(e,t,"access private method"),i);let tQ=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter"," ","f","m","k","c","l","j",">","<","p"],tz="defaultsubtitles",tX="defaultstreamtype",tZ="defaultduration",tJ="fullscreenelement",t0="hotkeys",t1="keyboardbackwardseekoffset",t2="keyboardforwardseekoffset",t3="keyboarddownvolumestep",t4="keyboardupvolumestep",t5="keysused",t8="lang",t6="loop",t9="liveedgeoffset",t7="noautoseektolive",ie="nodefaultstore",it="nohotkeys",ii="nomutedpref",is="nosubtitleslangpref",ir="novolumepref",ia="seektoliveoffset";class il extends tB{constructor(){super(),tj(this,C),tj(this,w),tj(this,x),tj(this,O),this.mediaStateReceivers=[],this.associatedElementSubscriptions=new Map,tj(this,T,new t$.AttributeTokenList(this,t0)),tj(this,A,void 0),tj(this,S,void 0),tj(this,I,null),tj(this,L,void 0),tj(this,k,void 0),tj(this,R,e=>{var t;null==(t=tK(this,S))||t.dispatch(e)}),tj(this,M,void 0),this.associateElement(this);let e={};tq(this,L,t=>{Object.entries(t).forEach(([t,i])=>{if(t in e&&e[t]===i)return;this.propagateMediaState(t,i);let s=t.toLowerCase(),r=new tp.globalThis.CustomEvent(tf.AttributeToStateChangeEventMap[s],{composed:!0,detail:i});this.dispatchEvent(r)}),e=t}),this.hasAttribute(it)?this.disableHotkeys():this.enableHotkeys()}static get observedAttributes(){return super.observedAttributes.concat(it,t0,tX,tz,tZ,ii,ir,t8,t6)}get mediaStore(){return tK(this,S)}set mediaStore(e){var t,i;(tK(this,S)&&(null==(t=tK(this,k))||t.call(this),tq(this,k,void 0)),tq(this,S,e),tK(this,S)||this.hasAttribute(ie))?tq(this,k,null==(i=tK(this,S))?void 0:i.subscribe(tK(this,L))):tY(this,C,_).call(this)}get fullscreenElement(){var e;return null!=(e=tK(this,A))?e:this}set fullscreenElement(e){var t;this.hasAttribute(tJ)&&this.removeAttribute(tJ),tq(this,A,e),null==(t=tK(this,S))||t.dispatch({type:"fullscreenelementchangerequest",detail:this.fullscreenElement})}get defaultSubtitles(){return(0,tE.getBooleanAttr)(this,tz)}set defaultSubtitles(e){(0,tE.setBooleanAttr)(this,tz,e)}get defaultStreamType(){return(0,tE.getStringAttr)(this,tX)}set defaultStreamType(e){(0,tE.setStringAttr)(this,tX,e)}get defaultDuration(){return(0,tE.getNumericAttr)(this,tZ)}set defaultDuration(e){(0,tE.setNumericAttr)(this,tZ,e)}get noHotkeys(){return(0,tE.getBooleanAttr)(this,it)}set noHotkeys(e){(0,tE.setBooleanAttr)(this,it,e)}get keysUsed(){return(0,tE.getStringAttr)(this,t5)}set keysUsed(e){(0,tE.setStringAttr)(this,t5,e)}get liveEdgeOffset(){return(0,tE.getNumericAttr)(this,t9)}set liveEdgeOffset(e){(0,tE.setNumericAttr)(this,t9,e)}get noAutoSeekToLive(){return(0,tE.getBooleanAttr)(this,t7)}set noAutoSeekToLive(e){(0,tE.setBooleanAttr)(this,t7,e)}get noVolumePref(){return(0,tE.getBooleanAttr)(this,ir)}set noVolumePref(e){(0,tE.setBooleanAttr)(this,ir,e)}get noMutedPref(){return(0,tE.getBooleanAttr)(this,ii)}set noMutedPref(e){(0,tE.setBooleanAttr)(this,ii,e)}get noSubtitlesLangPref(){return(0,tE.getBooleanAttr)(this,is)}set noSubtitlesLangPref(e){(0,tE.setBooleanAttr)(this,is,e)}get noDefaultStore(){return(0,tE.getBooleanAttr)(this,ie)}set noDefaultStore(e){(0,tE.setBooleanAttr)(this,ie,e)}attributeChangedCallback(e,t,i){var s,r,a,n,l,o,d,h,u,c,f,m;if(super.attributeChangedCallback(e,t,i),e===it)i!==t&&""===i?(this.hasAttribute(t0)&&console.warn("Media Chrome: Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled."),this.disableHotkeys()):i!==t&&null===i&&this.enableHotkeys();else if(e===t0)tK(this,T).value=i;else if(e===tz&&i!==t)null==(s=tK(this,S))||s.dispatch({type:"optionschangerequest",detail:{defaultSubtitles:this.hasAttribute(tz)}});else if(e===tX)null==(a=tK(this,S))||a.dispatch({type:"optionschangerequest",detail:{defaultStreamType:null!=(r=this.getAttribute(tX))?r:void 0}});else if(e===t9)null==(n=tK(this,S))||n.dispatch({type:"optionschangerequest",detail:{liveEdgeOffset:this.hasAttribute(t9)?+this.getAttribute(t9):void 0,seekToLiveOffset:this.hasAttribute(ia)?void 0:+this.getAttribute(t9)}});else if(e===ia)null==(l=tK(this,S))||l.dispatch({type:"optionschangerequest",detail:{seekToLiveOffset:this.hasAttribute(ia)?+this.getAttribute(ia):void 0}});else if(e===t7)null==(o=tK(this,S))||o.dispatch({type:"optionschangerequest",detail:{noAutoSeekToLive:this.hasAttribute(t7)}});else if(e===tJ){let e=i?null==(d=this.getRootNode())?void 0:d.getElementById(i):void 0;tq(this,A,e),null==(h=tK(this,S))||h.dispatch({type:"fullscreenelementchangerequest",detail:this.fullscreenElement})}else e===t8&&i!==t?((0,tg.setLanguage)(i),null==(u=tK(this,S))||u.dispatch({type:"optionschangerequest",detail:{mediaLang:i}}
882)):e===t6&&i!==t?null==(c=tK(this,S))||c.dispatch({type:tf.MediaUIEvents.MEDIA_LOOP_REQUEST,detail:null!=i}):e===ir&&i!==t?null==(f=tK(this,S))||f.dispatch({type:"optionschangerequest",detail:{noVolumePref:this.hasAttribute(ir)}}):e===ii&&i!==t&&(null==(m=tK(this,S))||m.dispatch({type:"optionschangerequest",detail:{noMutedPref:this.hasAttribute(ii)}}))}connectedCallback(){var e,t;tK(this,S)||this.hasAttribute(ie)||tY(this,C,_).call(this),null==(e=tK(this,S))||e.dispatch({type:"documentelementchangerequest",detail:tp.document}),super.connectedCallback(),tK(this,S)&&!tK(this,k)&&tq(this,k,null==(t=tK(this,S))?void 0:t.subscribe(tK(this,L))),void 0!==tK(this,M)&&tK(this,S)&&this.media&&setTimeout(()=>{var e,t,i;(null==(t=null==(e=this.media)?void 0:e.textTracks)?void 0:t.length)&&(null==(i=tK(this,S))||i.dispatch({type:tf.MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,detail:tK(this,M)}))},0),this.hasAttribute(it)?this.disableHotkeys():this.enableHotkeys()}disconnectedCallback(){var e,t,i,s,r;if(null==(e=super.disconnectedCallback)||e.call(this),tK(this,S)){let e=tK(this,S).getState();tq(this,M,!!(null==(t=e.mediaSubtitlesShowing)?void 0:t.length)),null==(i=tK(this,S))||i.dispatch({type:"documentelementchangerequest",detail:void 0}),null==(s=tK(this,S))||s.dispatch({type:tf.MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,detail:!1})}tK(this,k)&&(null==(r=tK(this,k))||r.call(this),tq(this,k,void 0))}mediaSetCallback(e){var t;super.mediaSetCallback(e),null==(t=tK(this,S))||t.dispatch({type:"mediaelementchangerequest",detail:e}),e.hasAttribute("tabindex")||(e.tabIndex=-1)}mediaUnsetCallback(e){var t;super.mediaUnsetCallback(e),null==(t=tK(this,S))||t.dispatch({type:"mediaelementchangerequest",detail:void 0})}propagateMediaState(e,t){iv(this.mediaStateReceivers,e,t)}associateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;if(t.has(e))return;let i=iE(e,this.registerMediaStateReceiver.bind(this),this.unregisterMediaStateReceiver.bind(this));Object.values(tf.MediaUIEvents).forEach(t=>{e.addEventListener(t,tK(this,R))}),t.set(e,i)}unassociateElement(e){if(!e)return;let{associatedElementSubscriptions:t}=this;t.has(e)&&(t.get(e)(),t.delete(e),Object.values(tf.MediaUIEvents).forEach(t=>{e.removeEventListener(t,tK(this,R))}))}registerMediaStateReceiver(e){if(!e)return;let t=this.mediaStateReceivers;!(t.indexOf(e)>-1)&&(t.push(e),tK(this,S)&&Object.entries(tK(this,S).getState()).forEach(([t,i])=>{iv([e],t,i)}))}unregisterMediaStateReceiver(e){let t=this.mediaStateReceivers,i=t.indexOf(e);i<0||t.splice(i,1)}enableHotkeys(){this.addEventListener("keydown",tY(this,x,P))}disableHotkeys(){this.removeEventListener("keydown",tY(this,x,P)),this.removeEventListener("keyup",tY(this,w,D))}get hotkeys(){return(0,tE.getStringAttr)(this,t0)}set hotkeys(e){(0,tE.setStringAttr)(this,t0,e)}keyboardShortcutHandler(e){var t,i,s,r,a,n,l,o,d;let h,u,c,f=e.target;if(!((null!=(s=null!=(i=null==(t=f.getAttribute(t5))?void 0:t.split(" "))?i:null==f?void 0:f.keysUsed)?s:[]).map(e=>
882"Space"===e?" ":e).filter(Boolean).includes(e.key)||tK(this,T).contains(`no${e.key.toLowerCase()}`)||" "===e.key&&tK(this,T).contains("nospace"))&&!(e.shiftKey&&("/"===e.key||"?"===e.key)&&tK(this,T).contains("noshift+/")))switch(e.key){case" ":case"k":h=tK(this,S).getState().mediaPaused?tf.MediaUIEvents.MEDIA_PLAY_REQUEST:tf.MediaUIEvents.MEDIA_PAUSE_REQUEST,this.dispatchEvent(new tp.globalThis.CustomEvent(h,{composed:!0,bubbles:!0}));break;case"m":h="off"===this.mediaStore.getState().mediaVolumeLevel?tf.MediaUIEvents.MEDIA_UNMUTE_REQUEST:tf.MediaUIEvents.MEDIA_MUTE_REQUEST,this.dispatchEvent(new tp.globalThis.CustomEvent(h,{composed:!0,bubbles:!0}));break;case"f":h=this.mediaStore.getState().mediaIsFullscreen?tf.MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST:tf.MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST,this.dispatchEvent(new tp.globalThis.CustomEvent(h,{composed:!0,bubbles:!0}));break;case"c":this.dispatchEvent(new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0}));break;case"ArrowLeft":case"j":{let e=this.hasAttribute(t1)?+this.getAttribute(t1):10;u=Math.max((null!=(r=this.mediaStore.getState().mediaCurrentTime)?r:0)-e,0),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break}case"ArrowRight":case"l":{let e=this.hasAttribute(t2)?+this.getAttribute(t2):10;u=Math.max((null!=(a=this.mediaStore.getState().mediaCurrentTime)?a:0)+e,0),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break}case"ArrowUp":{let e=this.hasAttribute(t4)?+this.getAttribute(t4):.025;u=Math.min((null!=(n=this.mediaStore.getState().mediaVolume)?n:1)+e,1),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break}case"ArrowDown":{let e=this.hasAttribute(t3)?+this.getAttribute(t3):.025;u=Math.max((null!=(l=this.mediaStore.getState().mediaVolume)?l:1)-e,0),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break}case"<":u=Math.max((null!=(o=this.mediaStore.getState().mediaPlaybackRate)?o:1)-.25,.25).toFixed(2),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break;case">":u=Math.min((null!=(d=this.mediaStore.getState().mediaPlaybackRate)?d:1)+.25,2).toFixed(2),c=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:u}),this.dispatchEvent(c);break;case"/":case"?":e.shiftKey&&tY(this,O,U).call(this);break;case"p":h=this.mediaStore.getState().mediaIsPip?tf.MediaUIEvents.MEDIA_EXIT_PIP_REQUEST:tf.MediaUIEvents.MEDIA_ENTER_PIP_REQUEST,c=new tp.globalThis.CustomEvent(h,{composed:!0,bubbles:!0}),this.dispatchEvent(c)}}}T=new WeakMap,A=new WeakMap,S=new WeakMap,I=new WeakMap,L=new WeakMap,k=new WeakMap,R=new WeakMap,M=new WeakMap,C=new WeakSet,_=function(){var e;this.mediaStore=(0,tV.createMediaStore)({media:this.media,fullscreenElement:this.fullscreenElement,options:{defaultSubtitles:this.hasAttribute(tz),defaultDuration:this.hasAttribute(tZ)?+this.getAttribute(tZ):void 0,defaultStreamType:null!=(e=this.getAttribute(tX))?e:void 0,liveEdgeOffset:this.hasAttribute(t9)?+this.getAttribute(t9):void 0,seekToLiveOffset:this.hasAttribute(ia)?+this.getAttribute(ia):this.hasAttribute(t9)?+this.getAttribute(t9):void 0,noAutoSeekToLive:this.hasAttribute(t7),noVolumePref:this.hasAttribute(ir),noMutedPref:this.hasAttribute(ii),noSubtitlesLangPref:this.hasAttribute(is)}})},w=new WeakSet,D=function(e){let{key:t,shiftKey:i}=e;i&&("/"===t||"?"===t)||tQ.includes(t)?this.keyboardShortcutHandler(e):this.removeEventListener("keyup",tY(this,w,D))},x=new WeakSet,P=function(e){var t;let{metaKey:i,altKey:s,key:r,shiftKey:a}=e,n=a&&("/"===r||"?"===r);if(n&&(null==(t=tK(this,I))?void 0:t.open)||i||s||!n&&!tQ.includes(r))return void this.removeEventListener("keyup",tY(this,w,D));let l=e.target,o=l instanceof HTMLElement&&("media-volume-range"===l.tagName.toLowerCase()||"media-time-range"===l.tagName.toLowerCase());![" ","ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(r)||tK(this,T).contains(`no${r.toLowerCase()}
882`)||" "===r&&tK(this,T).contains("nospace")||o||e.preventDefault(),this.addEventListener("keyup",tY(this,w,D),{once:!0})},O=new WeakSet,U=function(){tK(this,I)||(tq(this,I,tp.document.createElement("media-keyboard-shortcuts-dialog")),this.appendChild(tK(this,I))),tK(this,I).open=!0};let io=Object.values(tf.MediaUIAttributes),id=Object.values(tf.MediaUIProps),ih=e=>{var t,i,s,r;let{observedAttributes:a}=e.constructor;!a&&(null==(t=e.nodeName)?void 0:t.includes("-"))&&(tp.globalThis.customElements.upgrade(e),{observedAttributes:a}=e.constructor);let n=null==(r=null==(s=null==(i=null==e?void 0:e.getAttribute)?void 0:i.call(e,tf.MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES))?void 0:s.split)?void 0:r.call(s,/\s+/);return Array.isArray(a||n)?(a||n).filter(e=>io.includes(e)):[]},iu=e=>{var t,i;return(null==(t=e.nodeName)?void 0:t.includes("-"))&&tp.globalThis.customElements.get(null==(i=e.nodeName)?void 0:i.toLowerCase())&&!(e instanceof tp.globalThis.customElements.get(e.nodeName.toLowerCase()))&&tp.globalThis.customElements.upgrade(e),id.some(t=>t in e)||!!ih(e).length},ic=e=>{var t;return null==(t=null==e?void 0:e.join)?void 0:t.call(e,":")},im={[tf.MediaUIAttributes.MEDIA_SUBTITLES_LIST]:tG.stringifyTextTrackList,[tf.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING]:tG.stringifyTextTrackList,[tf.MediaUIAttributes.MEDIA_SEEKABLE]:ic,[tf.MediaUIAttributes.MEDIA_BUFFERED]:e=>null==e?void 0:e.map(ic).join(" "),[tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS]:e=>null==e?void 0:e.join(" "),[tf.MediaUIAttributes.MEDIA_RENDITION_LIST]:tH.stringifyRenditionList,[tf.MediaUIAttributes.MEDIA_AUDIO_TRACK_LIST]:tH.stringifyAudioTrackList},ig=async(e,t,i)=>{var s,r;if(e.isConnected||await (0,tH.delay)(0),"boolean"==typeof i||null==i)return(0,tE.setBooleanAttr)(e,t,i);if("number"==typeof i)return(0,tE.setNumericAttr)(e,t,i);if("string"==typeof i)return(0,tE.setStringAttr)(e,t,i);if(Array.isArray(i)&&!i.length)return e.removeAttribute(t);let a=null!=(r=null==(s=im[t])?void 0:s.call(im,i))?r:i;return e.setAttribute(t,a)},ip=(e,t)=>{var i;if(null==(i=e.closest)?void 0:i.call(e,'*[slot="media"]'))return;let s=(e,t)=>{var i,s;iu(e)&&t(e);let{children:r=[]}=null!=e?e:{};[...r,...null!=(s=null==(i=null==e?void 0:e.shadowRoot)?void 0:i.children)?s:[]].forEach(e=>ip(e,t))},r=null==e?void 0:e.nodeName.toLowerCase();r.includes("-")&&!iu(e)?tp.globalThis.customElements.whenDefined(r).then(()=>{s(e,t)}):s(e,t)},iv=(e,t,i)=>{e.forEach(e=>{if(t in e){e[t]=i;return}let s=ih(e),r=t.toLowerCase();s.includes(r)&&ig(e,r,i)})},iE=(e,t,i)=>{ip(e,t);let s=e=>{var i;t(null!=(i=null==e?void 0:e.composedPath()[0])?i:e.target)},r=e=>{var t;i(null!=(t=null==e?void 0:e.composedPath()[0])?t:e.target)};e.addEventListener(tf.MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,s),e.addEventListener(tf.MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,r);let a=[],n=e=>{let s=e.target;"media"!==s.name&&(a.forEach(e=>ip(e,i)),(a=[...s.assignedElements({flatten:!0})]).forEach(e=>ip(e,t)))};e.addEventListener("slotchange",n);let l=new MutationObserver(e=>{e.forEach(e=>{let{addedNodes:s=[],removedNodes:r=[],type:a,target:n,attributeName:l}=e;"childList"===a?(Array.prototype.forEach.call(s,e=>ip(e,t)),Array.prototype.forEach.call(r,e=>ip(e,i))):"attributes"===a&&l===tf.MediaStateReceiverAttributes.MEDIA_CHROME_ATTRIBUTES&&(iu(n)?t(n):i(n))})});return l.observe(e,{childList:!0,attributes:!0,subtree:!0}),()=>{ip(e,i),e.removeEventListener("slotchange",n),l.disconnect(),e.removeEventListener(tf.MediaUIEvents.REGISTER_MEDIA_STATE_RECEIVER,s),e.removeEventListener(tf.MediaUIEvents.UNREGISTER_MEDIA_STATE_RECEIVER,r)}};tp.globalThis.customElements.get("media-controller")||tp.globalThis.customElements.define("media-controller",il);var ib=e.i(911639);let iy=`<svg aria-hidden="true" viewBox="0 0 26 24">
883  <path d="M22.13 3H3.87a.87.87 0 0 0-.87.87v13.26a.87.87 0 0 0 .87.87h3.4L9 16H5V5h16v11h-4l1.72 2h3.4a.87.87 0 0 0 .87-.87V3.87a.87.87 0 0 0-.86-.87Zm-8.75 11.44a.5.5 0 0 0-.76 0l-4.91 5.73a.5.5 0 0 0 .38.83h9.82a.501.501 0 0 0 .38-.83l-4.91-5.73Z"/>
884</svg>
885`,iT=e=>{let t=e.mediaIsAirplaying?(0,tg.t)("stop airplay"):(0,tg.t)("start airplay");e.setAttribute("aria-label",t)};class iA extends ib.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING,tf.MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),iT(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING&&iT(this)}get mediaIsAirplaying(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING)}set mediaIsAirplaying(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING,e)}get mediaAirplayUnavailable(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE)}set mediaAirplayUnavailable(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_AIRPLAY_UNAVAILABLE,e)}handleClick(){let e=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_AIRPLAY_REQUEST,{composed:!0,bubbles:!0});this.dispatchEvent(e)}}iA.getSlotTemplateHTML=function(e){return`
886    <style>
887      :host([${tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=icon] slot:not([name=exit]) {
888        display: none !important;
889      }
890
891      
892      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=icon] slot:not([name=enter]) {
893        display: none !important;
894      }
895
896      :host([${tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING}]) slot[name=tooltip-enter],
897      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_AIRPLAYING}])) slot[name=tooltip-exit] {
898        display: none;
899      }
900    </style>
901
902    <slot name="icon">
903      <slot name="enter">${iy}</slot>
904      <slot name="exit">${iy}</slot>
905    </slot>
906  `},iA.getTooltipContentHTML=function(){return`
907    <slot name="tooltip-enter">${(0,tg.t)("start airplay")}</slot>
908    <slot name="tooltip-exit">${(0,tg.t)("stop airplay")}</slot>
909  `},tp.globalThis.customElements.get("media-airplay-button")||tp.globalThis.customElements.define("media-airplay-button",iA);var iS=ib;let iI=`<svg aria-hidden="true" viewBox="0 0 26 24">
910  <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 
9100 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"/>
911</svg>`,iL=`<svg aria-hidden="true" viewBox="0 0 26 24">
912  <path d="M17.73 14.09a1.4 1.4 0 0 1-1 .37 1.579 1.579 0 0 1-1.27-.58A3 3 0 0 1 15 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34A2.89 2.89 0 0 0 19 9.07a3 3 0 0 0-2.14-.78 3.14 3.14 0 0 0-2.42 1 3.91 3.91 0 0 0-.93 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.17 3.17 0 0 0 1.07-1.74l-1.4-.45c-.083.43-.3.822-.62 1.12Zm-7.22 0a1.43 1.43 0 0 1-1 .37 1.58 1.58 0 0 1-1.27-.58A3 3 0 0 1 7.76 12a2.8 2.8 0 0 1 .5-1.85 1.63 1.63 0 0 1 1.29-.57 1.47 1.47 0 0 1 1.51 1.2l1.43-.34a2.81 2.81 0 0 0-.74-1.32 2.94 2.94 0 0 0-2.13-.78 3.18 3.18 0 0 0-2.43 1 4 4 0 0 0-.92 2.78 3.74 3.74 0 0 0 .92 2.66 3.07 3.07 0 0 0 2.34 1 3.07 3.07 0 0 0 1.91-.57 3.23 3.23 0 0 0 1.07-1.74l-1.4-.45a2.06 2.06 0 0 1-.6 1.07Zm12.32-8.41a2.59 2.59 0 0 0-2.3-2.51C18.72 3.05 15.86 3 13 3c-2.86 0-5.72.05-7.53.17a2.59 2.59 0 0 0-2.3 2.51c-.23 4.207-.23 8.423 0 12.63a2.57 2.57 0 0 0 2.3 2.5c1.81.13 4.67.19 7.53.19 2.86 0 5.72-.06 7.53-.19a2.57 2.57 0 0 0 2.3-2.5c.23-4.207.23-8.423 0-12.63Zm-1.49 12.53a1.11 1.11 0 0 1-.91 1.11c-1.67.11-4.45.18-7.43.18-2.98 0-5.76-.07-7.43-.18a1.11 1.11 0 0 1-.91-1.11c-.21-4.14-.21-8.29 0-12.43a1.11 1.11 0 0 1 .91-1.11C7.24 4.56 10 4.49 13 4.49s5.76.07 7.43.18a1.11 1.11 0 0 1 .91 1.11c.21 4.14.21 8.29 0 12.43Z"/>
913</svg>`,ik=e=>{e.setAttribute("aria-checked",(0,tG.areSubsOn)(e).toString())};class iR extends iS.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_SUBTITLES_LIST,tf.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING]}connectedCallback(){super.connectedCallback(),this.setAttribute("role","switch"),this.setAttribute("aria-label",(0,tg.t)("closed captions")),ik(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING&&ik(this)}get mediaSubtitlesList(){return iM(this,tf.MediaUIAttributes.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(e){iC(this,tf.MediaUIAttributes.MEDIA_SUBTITLES_LIST,e)}get mediaSubtitlesShowing(){return iM(this,tf.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(e){iC(this,tf.MediaUIAttributes.MEDIA_SUBTITLES_SHOWING,e)}handleClick(){this.dispatchEvent(new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_TOGGLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0}))}}iR.getSlotTemplateHTML=function(e){return`
914    <style>
915      :host([aria-checked="true"]) slot[name=off] {
916        display: none !important;
917      }
918
919      
920      :host(:not([aria-checked="true"])) slot[name=on] {
921        display: none !important;
922      }
923
924      :host([aria-checked="true"]) slot[name=tooltip-enable],
925      :host(:not([aria-checked="true"])) slot[name=tooltip-disable] {
926        display: none;
927      }
928    </style>
929
930    <slot name="icon">
931      <slot name="on">${iI}</slot>
932      <slot name="off">${iL}</slot>
933    </slot>
934  `},iR.getTooltipContentHTML=function(){return`
935    <slot name="tooltip-enable">${(0,tg.t)("Enable captions")}</slot>
936    <slot name="tooltip-disable">${(0,tg.t)("Disable captions")}</slot>
937  `};let iM=(e,t)=>{let i=e.getAttribute(t);return i?(0,tG.parseTextTracksStr)(i):[]},iC=(e,t,i)=>{if(!(null==i?void 0:i.length))return void e.removeAttribute(t);let s=(0,tG.stringifyTextTrackList)(i);e.getAttribute(t)!==s&&e.setAttribute(t,s)};tp.globalThis.customElements.get("media-captions-button")||tp.globalThis.customElements.define("media-captions-button",iR);var i_=ib;let iw=e=>{let t=e.mediaIsCasting?(0,tg.t)("stop casting"):(0,tg.t)("start casting");e.setAttribute("aria-label",t)};class iD extends i_.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_IS_CASTING,tf.MediaUIAttributes.MEDIA_CAST_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),iw(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_IS_CASTING&&iw(this)}get mediaIsCasting(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_CASTING)}set mediaIsCasting(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_CASTING,e)}get mediaCastUnavailable(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_CAST_UNAVAILABLE)}set mediaCastUnavailable(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_CAST_UNAVAILABLE,e)}handleClick(){let e=this.mediaIsCasting?tf.MediaUIEvents.MEDIA_EXIT_CAST_REQUEST:tf.MediaUIEvents.MEDIA_ENTER_CAST_REQUEST;this.dispatchEvent(new tp.globalThis.CustomEvent(e,{composed:!0,bubbles:!0}))}}iD.getSlotTemplateHTML=function(e){return`
938    <style>
939      :host([${tf.MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=icon] slot:not([name=exit]) {
940        display: none !important;
941      }
942
943      
944      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=icon] slot:not([name=enter]) {
945        display: none !important;
946      }
947
948      :host([${tf.MediaUIAttributes.MEDIA_IS_CASTING}]) slot[name=tooltip-enter],
949      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_CASTING}])) slot[name=tooltip-exit] {
950        display: none;
951      }
952    </style>
953
954    <slot name="icon">
955      <slot name="enter"><svg aria-hidden="true" viewBox="0 0 24 24"><g><path class="cast_caf_icon_arch0" d="M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z"/><path class="cast_caf_icon_arch1" d="M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z"/><path class="cast_caf_icon_arch2" d="M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z"/><path class="cast_caf_icon_box" d="M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z"/></g></svg></slot>
956      <slot name="exit"><svg aria-hidden="true" viewBox="0 0 24 24"><g><path class="cast_caf_icon_arch0" d="M1,18 L1,21 L4,21 C4,19.3 2.66,18 1,18 L1,18 Z"/><path class="cast_caf_icon_arch1" d="M1,14 L1,16 C3.76,16 6,18.2 6,21 L8,21 C8,17.13 4.87,14 1,14 L1,14 Z"/><path class="cast_caf_icon_arch2" d="M1,10 L1,12 C5.97,12 10,16.0 10,21 L12,21 C12,14.92 7.07,10 1,10 L1,10 Z"/><path class="cast_caf_icon_box" d="M21,3 L3,3 C1.9,3 1,3.9 1,5 L1,8 L3,8 L3,5 L21,5 L21,19 L14,19 L14,21 L21,21 C22.1,21 23,20.1 23,19 L23,5 C23,3.9 22.1,3 21,3 L21,3 Z"/><path class="cast_caf_icon_boxfill" d="M5,7 L5,8.63 C8,8.6 13.37,14 13.37,17 L19,17 L19,7 Z"/></g></svg></slot>
957    </slot>
958  `},iD.getTooltipContentHTML=function(){return`
959    <slot name="tooltip-enter">${(0,tg.t)("Start casting")}</slot>
960    <slot name="tooltip-exit">${(0,tg.t)("Stop casting")}</slot>
961  `},tp.globalThis.customElements.get("media-cast-button")||tp.globalThis.customElements.define("media-cast-button",iD);var ix=tp,iP=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},iO=(e,t,i)=>(iP(e,t,"read from private field"),i?i.call(e):t.get(e)),iU=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},iN=(e,t,i,s)=>(iP(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),iF=(e,t,i)=>(iP(e,t,"access private method"),i);let iB="open";class i$ extends ix.globalThis.HTMLElement{constructor(){super(),iU(this,$),iU(this,G),iU(this,W),iU(this,j),iU(this,Y),iU(this,z),iU(this,N,!1),iU(this,F,null),iU(this,B,null),this.addEventListener("invoke",this),this.addEventListener("focusout",this),this.addEventListener("keydown",this)}static get observedAttributes(){return[iB,"anchor"]}get open(){return(0,tE.getBooleanAttr)(this,iB)}set open(e){(0,tE.setBooleanAttr)(this,iB,e)}handleEvent(e){switch(e.type){case"invoke":iF(this,j,q).call(this,e);break;case"focusout":iF(this,Y,Q).call(this,e);break;case"keydown":iF(this,z,X).call(this,e)}}connectedCallback(){iF(this,$,H).call(this),this.role||(this.role="dialog")}attributeChangedCallback(e,t,i){iF(this,$,H).call(this),e===iB&&i!==t&&(this.open?iF(this,G,V).call(this):iF(this,W,K).call(this))}focus(){iN(this,F,(0,tE.getActiveElement)());let e=!this.dispatchEvent(new Event("focus",{composed:!0,cancelable:!0})),t=!this.dispatchEvent(new Event("focusin",{composed:!0,bubbles:!0,cancelable:!0}));if(e||t)return;
961let i=this.querySelector('[autofocus], [tabindex]:not([tabindex="-1"]), [role="menu"]');null==i||i.focus()}get keysUsed(){return["Escape","Tab"]}}N=new WeakMap,F=new WeakMap,B=new WeakMap,$=new WeakSet,H=function(){if(!iO(this,N)&&(iN(this,N,!0),!this.shadowRoot)){this.attachShadow(this.constructor.shadowRootOptions);let e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e),queueMicrotask(()=>{let{style:e}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");e.setProperty("transition","display .15s, visibility .15s, opacity .15s ease-in, transform .15s ease-in")})}},G=new WeakSet,V=function(){var e;null==(e=iO(this,B))||e.setAttribute("aria-expanded","true"),this.dispatchEvent(new Event("open",{composed:!0,bubbles:!0})),this.addEventListener("transitionend",()=>this.focus(),{once:!0})},W=new WeakSet,K=function(){var e;null==(e=iO(this,B))||e.setAttribute("aria-expanded","false"),this.dispatchEvent(new Event("close",{composed:!0,bubbles:!0}))},j=new WeakSet,q=function(e){iN(this,B,e.relatedTarget),(0,tE.containsComposedNode)(this,e.relatedTarget)||(this.open=!this.open)},Y=new WeakSet,Q=function(e){var t;!(0,tE.containsComposedNode)(this,e.relatedTarget)&&(null==(t=iO(this,F))||t.focus(),iO(this,B)&&iO(this,B)!==e.relatedTarget&&this.open&&(this.open=!1))},z=new WeakSet,X=function(e){var t,i,s,r,a;let{key:n,ctrlKey:l,altKey:o,metaKey:d}=e;l||o||d||this.keysUsed.includes(n)&&(e.preventDefault(),e.stopPropagation(),"Tab"===n?(e.shiftKey?null==(i=null==(t=this.previousElementSibling)?void 0:t.focus)||i.call(t):null==(r=null==(s=this.nextElementSibling)?void 0:s.focus)||r.call(s),this.blur()):"Escape"===n&&(null==(a=iO(this,F))||a.focus(),this.open=!1))},i$.shadowRootOptions={mode:"open"},i$.getTemplateHTML=function(e){return`
962    <style>
963      :host {
964        font: var(--media-font,
965          var(--media-font-weight, normal)
966          var(--media-font-size, 14px) /
967          var(--media-text-content-height, var(--media-control-height, 24px))
968          var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));
969        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
970        display: var(--media-dialog-display, inline-flex);
971        justify-content: center;
972        align-items: center;
973        
974        transition-behavior: allow-discrete;
975        visibility: hidden;
976        opacity: 0;
977        transform: translateY(2px) scale(.99);
978        pointer-events: none;
979      }
980
981      :host([open]) {
982        transition: display .2s, visibility 0s, opacity .2s ease-out, transform .15s ease-out;
983        visibility: visible;
984        opacity: 1;
985        transform: translateY(0) scale(1);
986        pointer-events: auto;
987      }
988
989      #content {
990        display: flex;
991        position: relative;
992        box-sizing: border-box;
993        width: min(320px, 100%);
994        word-wrap: break-word;
995        max-height: 100%;
996        overflow: auto;
997        text-align: center;
998        line-height: 1.4;
999      }
1000    </style>
1001    ${this.getSlotTemplateHTML(e)}
1002  `},i$.getSlotTemplateHTML=function(e){return`
1003    <slot id="content"></slot>
1004  `},ix.globalThis.customElements.get("media-chrome-dialog")||ix.globalThis.customElements.define("media-chrome-dialog",i$);var iH=tp,iG=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},iV=(e,t,i)=>(iG(e,t,"read from private field"),i?i.call(e):t.get(e)),iW=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},iK=(e,t,i,s)=>(iG(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),ij=(e,t,i)=>(iG(e,t,"access private method"),i);class iq extends iH.globalThis.HTMLElement{constructor(){if(super(),iW(this,el),iW(this,ed),iW(this,eu),iW(this,ef),iW(this,eg),iW(this,ev),iW(this,eb),iW(this,eT),iW(this,Z,void 0),iW(this,J,void 0),iW(this,ee,void 0),iW(this,et,void 0),iW(this,ei,{}),iW(this,es,[]),iW(this,er,()=>{if(this.range.matches(":focus-visible")){let{style:e}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");e.setProperty("--_focus-visible-box-shadow","var(--_focus-box-sha
1004dow)")}}),iW(this,ea,()=>{let{style:e}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");e.removeProperty("--_focus-visible-box-shadow")}),iW(this,en,()=>{let e=this.shadowRoot.querySelector("#segments-clipping");e&&e.parentNode.append(e)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes),t=this.constructor.getTemplateHTML(e);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(t):this.shadowRoot.innerHTML=t}this.container=this.shadowRoot.querySelector("#container"),iK(this,ee,this.shadowRoot.querySelector("#startpoint")),iK(this,et,this.shadowRoot.querySelector("#endpoint")),this.range=this.shadowRoot.querySelector("#range"),this.appearance=this.shadowRoot.querySelector("#appearance")}static get observedAttributes(){return["disabled","aria-disabled",tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER]}attributeChangedCallback(e,t,i){var s,r,a,n,l;e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER?(t&&(null==(r=null==(s=iV(this,Z))?void 0:s.unassociateElement)||r.call(s,this),iK(this,Z,null)),i&&this.isConnected&&(iK(this,Z,null==(a=this.getRootNode())?void 0:a.getElementById(i)),null==(l=null==(n=iV(this,Z))?void 0:n.associateElement)||l.call(n,this))):("disabled"===e||"aria-disabled"===e&&t!==i)&&(null==i?(this.range.removeAttribute(e),ij(this,ed,eh).call(this)):(this.range.setAttribute(e,i),ij(this,eu,ec).call(this)))}connectedCallback(){var e,t,i;let{style:s}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");s.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),iV(this,ei).pointer=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#pointer"),iV(this,ei).progress=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#progress"),iV(this,ei).thumb=(0,tE.getOrInsertCSSRule)(this.shadowRoot,'#thumb, ::slotted([slot="thumb"])'),iV(this,ei).activeSegment=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#segments-clipping rect:nth-child(0)");let r=this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER);r&&(iK(this,Z,null==(e=this.getRootNode())?void 0:e.getElementById(r)),null==(i=null==(t=iV(this,Z))?void 0:t.associateElement)||i.call(t,this)),this.updateBar(),this.shadowRoot.addEventListener("focusin",iV(this,er)),this.shadowRoot.addEventListener("focusout",iV(this,ea)),ij(this,ed,eh).call(this),(0,tv.observeResize)(this.container,iV(this,en))}disconnectedCallback(){var e,t;ij(this,eu,ec).call(this),null==(t=null==(e=iV(this,Z))?void 0:e.unassociateElement)||t.call(e,this),iK(this,Z,null),this.shadowRoot.removeEventListener("focusin",iV(this,er)),this.shadowRoot.removeEventListener("focusout",iV(this,ea)),(0,tv.unobserveResize)(this.container,iV(this,en))}updatePointerBar(e){var t;null==(t=iV(this,ei).pointer)||t.style.setProperty("width",`${100*this.getPointerRatio(e)}%`)}updateBar(){var e,t;let i=100*this.range.valueAsNumber;null==(e=iV(this,ei).progress)||e.style.setProperty("width",`${i}%`),null==(t=iV(this,ei).thumb)||t.style.setProperty("left",`${i}%`)}updateSegments(e){let t=this.shadowRoot.querySelector("#segments-clipping");if(t.textContent="",this.container.classList.toggle("segments",!!(null==e?void 0:e.length)),!(null==e?void 0:e.length))return;let i=[...new Set([+this.range.min,...e.flatMap(e=>[e.start,e.end]),+this.range.max])];iK(this,es,[...i]);let s=i.pop();for(let[e,r]of i.entries()){let[a,n]=[0===e,e===i.length-1],l=a?"calc(var(--segments-gap) / -1)":`${100*r}%`,o=n?s:i[e+1],d=`calc(${(o-r)*100}%${a||n?"":" - var(--segments-gap)"})`,h=iH.document.createElementNS("http://www.w3.org/2000/svg","rect"),u=(0,tE.insertCSSRule)(this.shadowRoot,`#segments-clipping rect:nth-child(${e+1})`);u.style.setProperty("x",l),u.style.setProperty("width",d),t.append(h)}}getPointerRatio(e){return(0,tE.getPointProgressOnLine)(e.clientX,e.clientY,iV(this,ee).getBoundingClientRect(),iV(this,et).getBoundingClientRect())}get dragging(){return this.hasAttribute("dragging")}handleEvent(e){switch(e.type){case"pointermove":ij(this,eT,eA).call(this,e);break;case"input":this.updateBar();break;case"pointerenter":ij(this,eg,ep).call(this,e);break;case"pointerdown":ij(this,ef,em).call(this,e);break;case"pointerup":ij(this,ev,eE).call(this);break;case"pointerleave":ij(this,eb,ey).call(this)}}get keysUsed(){return["ArrowUp","ArrowRight","ArrowDown","ArrowLeft"]}}Z=new WeakMap,J=new WeakMap,ee=new WeakMap,et=new WeakMap,ei=new WeakMap,es=new WeakMap,er=new WeakMap,ea=new WeakMap,en=new WeakMap,el=new WeakSet,eo=function(e){let t=iV(this,ei).activeSegment;if(!t)return;let i=this.getPointerRatio(e),s=iV(this,es).findIndex((e,t,s)=>{let r=s[t+1];return null!=r&&i>=e&&i<=r}),r=`#segments-clipping rect:nth-child(${s+1})`;t.selectorText==r&&t.style.transform||(t.selectorText=r,t.style.setProperty("transform","var(--media-range-segment-hover-transform, scaleY(2))"))},ed=new WeakSet,eh=function(){this.hasAttribute("disabled")||(this.addEventListener("input",this),this.addEventListener("pointerdown",this),this.addEventListener("pointerenter",this))},eu=new WeakSet,ec=function(){var e,t;this.removeEventListener("input",this),this.removeEventListener("pointerdown",this),this.removeEventListener("pointerenter",this),null==(e=iH.globalThis.window)||e.removeEventListener("pointerup",this),null==(t=iH.globalThis.window)||t.removeEventListener("pointermove",this)},ef=new WeakSet,em=function(e){var t;iK(this,J,e.composedPath().includes(this.range)),null==(t=iH.globalThis.window)||t.addEventListener("pointerup",this)},eg=new WeakSet,ep=function(e){var t;"mouse"!==e.pointerType&&ij(this,ef,em).call(this,e),this.addEventListener("pointerleave",this),null==(t=iH.globalThis.window)||t.addEventListener("pointermove",this)},ev=new WeakSet,eE=function(){var e;null==(e=iH.globalThis.window)||e.removeEventListener("pointerup",this),this.toggleAttribute("dragging",!1),this.range.disabled=this.hasAttribute("disabled")},eb=new WeakSet,ey=function(){var e,t;this.removeEventListener("pointerleave",this),null==(e=iH.globalThis.window)||e.removeEventListener("pointermove",this),this.toggleAttribute("dragging",!1),this.range.disabled=this.hasAttribute("disabled"),null==(t=iV(this,ei).activeSegment)||t.style.removeProperty("transform")},eT=new WeakSet,eA=function(e){("pen"!==e.pointerType||0!==e.buttons)&&(this.toggleAttribute("dragging",1===e.buttons||"mouse"!==e.pointerType),this.updatePointerBar(e),ij(this,el,eo).call(this,e),this.dragging&&("mouse"!==e.pointerType||!iV(this,J))&&(this.range.disabled=!0,this.range.valueAsNumber=this.getPointerRatio(e),this.range.dispatchEvent(new Event("input",{bubbles:!0,composed:!0}))))},iq.shadowRootOptions={mode:"open"},iq.getTemplateHTML=function(e){return`
1005    <style>
1006      :host {
1007        --_focus-box-shadow: var(--media-focus-box-shadow, inset 0 0 0 2px rgb(27 127 204 / .9));
1008        --_media-range-padding: var(--media-range-padding, var(--media-control-padding, 10px));
1009
1010        box-shadow: var(--_focus-visible-box-shadow, none);
1011        background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));
1012        height: calc(var(--media-control-height, 24px) + 2 * var(--_media-range-padding));
1013        display: inline-flex;
1014        align-items: center;
1015        
1016        vertical-align: middle;
1017        box-sizing: border-box;
1018        position: relative;
1019        width: 100px;
1020        transition: background .15s linear;
1021        cursor: var(--media-cursor, pointer);
1022        pointer-events: auto;
1023        touch-action: none; 
1024      }
1025
1026      
1027      input[type=range]:focus {
1028        outline: 0;
1029      }
1030      input[type=range]:focus::-webkit-slider-runnable-track {
1031        outline: 0;
1032      }
1033
1034      :host(:hover) {
1035        background: var(--media-control-hover-background, rgb(50 50 70 / .7));
1036      }
1037
1038      #leftgap {
1039        padding-left: var(--media-range-padding-left, var(--_media-range-padding));
1040      }
1041
1042      #rightgap {
1043        padding-right: var(--media-range-padding-right, var(--_media-range-padding));
1044      }
1045
1046      #startpoint,
1047      #endpoint {
1048        position: absolute;
1049      }
1050
1051      #endpoint {
1052        right: 0;
1053      }
1054
1055      #container {
1056        
1057        width: var(--media-range-track-width, 100%);
1058        transform: translate(var(--media-range-track-translate-x, 0px), var(--media-range-track-translate-y, 0px));
1059        position: relative;
1060        height: 100%;
1061        display: flex;
1062        align-items: center;
1063        min-width: 40px;
1064      }
1065
1066      #range {
1067        
1068        display: var(--media-time-range-hover-display, block);
1069        bottom: var(--media-time-range-hover-bottom, -7px);
1070        height: var(--media-time-range-hover-height, max(100% + 7px, 25px));
1071        width: 100%;
1072        position: absolute;
1073        cursor: var(--media-cursor, pointer);
1074
1075        -webkit-appearance: none; 
1076        -webkit-tap-highlight-color: transparent;
1077        background: transparent; 
1078        margin: 0;
1079        z-index: 1;
1080      }
1081
1082      @media (hover: hover) {
1083        #range {
1084          bottom: var(--media-time-range-hover-bottom, -5px);
1085          height: var(--media-time-range-hover-height, max(100% + 5px, 20px));
1086        }
1087      }
1088
1089      
1090      
1091      #range::-webkit-slider-thumb {
1092        -webkit-appearance: none;
1093        background: transparent;
1094        width: .1px;
1095        height: .1px;
1096      }
1097
1098      
1099      #range::-moz-range-thumb {
1100        background: transparent;
1101        border: transparent;
1102        width: .1px;
1103        height: .1px;
1104      }
1105
1106      #appearance {
1107        height: var(--media-range-track-height, 4px);
1108        display: flex;
1109        flex-direction: column;
1110        justify-content: center;
1111        width: 100%;
1112        position: absolute;
1113        
1114        will-change: transform;
1115      }
1116
1117      #track {
1118        background: var(--media-range-track-background, rgb(255 255 255 / .2));
1119        border-radius: var(--media-range-track-border-radius, 1px);
1120        border: var(--media-range-track-border, none);
1121        outline: var(--media-range-track-outline);
1122        outline-offset: var(--media-range-track-outline-offset);
1123        backdrop-filter: var(--media-range-track-backdrop-filter);
1124        -webkit-backdrop-filter: var(--media-range-track-backdrop-filter);
1125        box-shadow: var(--media-range-track-box-shadow, none);
1126        position: absolute;
1127        width: 100%;
1128        height: 100%;
1129        overflow: hidden;
1130      }
1131
1132      #progress,
1133      #pointer {
1134        position: absolute;
1135        height: 100%;
1136        will-change: width;
1137      }
1138
1139      #progress {
1140        background: var(--media-range-bar-color, var(--media-primary-color, rgb(238 238 238)));
1141        transition: var(--media-range-track-transition);
1142      }
1143
1144      #pointer {
1145        background: var(--media-range-track-pointer-background);
1146        border-right: var(--media-range-track-pointer-border-right);
1147        transition: visibility .25s, opacity .25s;
1148        visibility: hidden;
1149        opacity: 0;
1150      }
1151
1152      @media (hover: hover) {
1153        :host(:hover) #pointer {
1154          transition: visibility .5s, opacity .5s;
1155          visibility: visible;
1156          opacity: 1;
1157        }
1158      }
1159
1160      #thumb,
1161      ::slotted([slot=thumb]) {
1162        width: var(--media-range-thumb-width, 10px);
1163        height: var(--media-range-thumb-height, 10px);
1164        transition: var(--media-range-thumb-transition);
1165        transform: var(--media-range-thumb-transform, none);
1166        opacity: var(--media-range-thumb-opacity, 1);
1167        translate: -50%;
1168        position: absolute;
1169        left: 0;
1170        cursor: var(--media-cursor, pointer);
1171      }
1172
1173      #thumb {
1174        border-radius: var(--media-range-thumb-border-radius, 10px);
1175        background: var(--media-range-thumb-background, var(--media-primary-color, rgb(238 238 238)));
1176        box-shadow: var(--media-range-thumb-box-shadow, 1px 1px 1px transparent);
1177        border: var(--media-range-thumb-border, none);
1178      }
1179
1180      :host([disabled]) #thumb {
1181        background-color: #777;
1182      }
1183
1184      .segments #appearance {
1185        height: var(--media-range-segment-hover-height, 7px);
1186      }
1187
1188      #track {
1189        clip-path: url(#segments-clipping);
1190      }
1191
1192      #segments {
1193        --segments-gap: var(--media-range-segments-gap, 2px);
1194        position: absolute;
1195        width: 100%;
1196        height: 100%;
1197      }
1198
1199      #segments-clipping {
1200        transform: translateX(calc(var(--segments-gap) / 2));
1201      }
1202
1203      #segments-clipping:empty {
1204        display: none;
1205      }
1206
1207      #segments-clipping rect {
1208        height: var(--media-range-track-height, 4px);
1209        y: calc((var(--media-range-segment-hover-height, 7px) - var(--media-range-track-height, 4px)) / 2);
1210        transition: var(--media-range-segment-transition, transform .1s ease-in-out);
1211        transform: var(--media-range-segment-transform, scaleY(1));
1212        transform-origin: center;
1213      }
1214    </style>
1215    <div id="leftgap"></div>
1216    <div id="container">
1217      <div id="startpoint"></div>
1218      <div id="endpoint"></div>
1219      <div id="appearance">
1220        <div id="track" part="track">
1221          <div id="pointer"></div>
1222          <div id="progress" part="progress"></div>
1223        </div>
1224        <slot name="thumb">
1225          <div id="thumb" part="thumb"></div>
1226        </slot>
1227        <svg id="segments"><clipPath id="segments-clipping"></clipPath></svg>
1228      </div>
1229      <input id="range" type="range" min="0" max="1" step="any" value="0">
1230
1231      ${this.getContainerTemplateHTML(e)}
1232    </div>
1233    <div id="rightgap"></div>
1234  `},iq.getContainerTemplateHTML=function(e){return""},iH.globalThis.customElements.get("media-chrome-range")||iH.globalThis.customElements.define("media-chrome-range",iq);var iY=tp,iQ=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},iz=(e,t,i)=>(iQ(e,t,"read from private field"),i?i.call(e):t.get(e)),iX=(e,t,i,s)=>(iQ(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class iZ extends iY.globalThis.HTMLElement{constructor(){if(super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eS,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}}static get observedAttributes(){return[tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER]}attributeChangedCallback(e,t,i){var s,r,a,n,l;e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER&&(t&&(null==(r=null==(s=iz(this,eS))?void 0:s.unassociateElement)||r.call(s,this),iX(this,eS,null)),i&&this.isConnected&&(iX(this,eS,null==(a=this.getRootNode())?void 0:a.getElementById(i)),null==(l=null==(n=iz(this,eS))?void 0:n.associateElement)||l.call(n,this)))}connectedCallback(){var e,t,i;let s=this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER);s&&(iX(this,eS,null==(e=this.getRootNode())?void 0:e.getElementById(s)),null==(i=null==(t=iz(this,eS))?void 0:t.associateElement)||i.call(t,this))}disconnectedCallback(){var e,t;null==(t=null==(e=iz(this,eS))?void 0:e.unassociateElement)||t.call(e,this),iX(this,eS,null)}}eS=new WeakMap,iZ.shadowRootOptions={mode:"open"},iZ.getTemplateHTML=function(e){return`
1235    <style>
1236      :host {
1237        
1238        box-sizing: border-box;
1239        display: var(--media-control-display, var(--media-control-bar-display, inline-flex));
1240        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
1241        --media-loading-indicator-icon-height: 44px;
1242      }
1243
1244      ::slotted(media-time-range),
1245      ::slotted(media-volume-range) {
1246        min-height: 100%;
1247      }
1248
1249      ::slotted(media-time-range),
1250      ::slotted(media-clip-selector) {
1251        flex-grow: 1;
1252      }
1253
1254      ::slotted([role="menu"]) {
1255        position: absolute;
1256      }
1257    </style>
1258
1259    <slot></slot>
1260  `},iY.globalThis.customElements.get("media-control-bar")||iY.globalThis.customElements.define("media-control-bar",iZ);var iJ=tp,i0=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},i1=(e,t,i)=>(i0(e,t,"read from private field"),i?i.call(e):t.get(e)),i2=(e,t,i,s)=>(i0(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class i3 extends iJ.globalThis.HTMLElement{constructor(){if(super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eI,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}}static get observedAttributes(){return[tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER]}attributeChangedCallback(e,t,i){var s,r,a,n,l;e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER&&(t&&(null==(r=null==(s=i1(this,eI))?void 0:s.unassociateElement)||r.call(s,this),i2(this,eI,null)),i&&this.isConnected&&(i2(this,eI,null==(a=this.getRootNode())?void 0:a.getElementById(i)),null==(l=null==(n=i1(this,eI))?void 0:n.associateElement)||l.call(n,this)))}connectedCallback(){var e,t,i;let{style:s}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");s.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`);let r=this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER);r&&(i2(this,eI,null==(e=this.getRootNode())?void 0:e.getElementById(r)),null==(i=null==(t=i1(this,eI))?void 0:t.associateElement)||i.call(t,this))}disconnectedCallback(){var e,t;null==(t=null==(e=i1(this,eI))?void 0:e.unassociateElement)||t.call(e,this),i2(this,eI,null)}}eI=new WeakMap,i3.shadowRootOptions={mode:"open"},i3.getTemplateHTML=function(e,t={}){return`
1261    <style>
1262      :host {
1263        font: var(--media-font,
1264          var(--media-font-weight, normal)
1265          var(--media-font-size, 14px) /
1266          var(--media-text-content-height, var(--media-control-height, 24px))
1267          var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif));
1268        color: var(--media-text-color, var(--media-primary-color, rgb(238 238 238)));
1269        background: var(--media-text-background, var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7))));
1270        padding: var(--media-control-padding, 10px);
1271        display: inline-flex;
1272        justify-content: center;
1273        align-items: center;
1274        vertical-align: middle;
1275        box-sizing: border-box;
1276        text-align: center;
1277        pointer-events: auto;
1278      }
1279
1280      
1281      :host(:focus-visible) {
1282        box-shadow: inset 0 0 0 2px rgb(27 127 204 / .9);
1283        outline: 0;
1284      }
1285
1286      
1287      :host(:where(:focus)) {
1288        box-shadow: none;
1289        outline: 0;
1290      }
1291    </style>
1292
1293    ${this.getSlotTemplateHTML(e,t)}
1294  `},i3.getSlotTemplateHTML=function(e,t){return`
1295    <slot></slot>
1296  `},iJ.globalThis.customElements.get("media-text-display")||iJ.globalThis.customElements.define("media-text-display",i3);var i4=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},i5=(e,t,i)=>(i4(e,t,"read from private field"),i?i.call(e):t.get(e));class i8 extends i3{constructor(){var e;super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eL,void 0),((e,t,i)=>(i4(e,t,"write to private field"),t.set(e,i)))(this,eL,this.shadowRoot.querySelector("slot")),i5(this,eL).textContent=(0,tm.formatTime)(null!=(e=this.mediaDuration)?e:0)}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_DURATION]}attributeChangedCallback(e,t,i){e===tf.MediaUIAttributes.MEDIA_DURATION&&(i5(this,eL).textContent=(0,tm.formatTime)(+i)),super.attributeChangedCallback(e,t,i)}get mediaDuration(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION)}set mediaDuration(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION,e)}}eL=new WeakMap,i8.getSlotTemplateHTML=function(e,t){return`
1297    <slot>${(0,tm.formatTime)(t.mediaDuration)}</slot>
1298  `},tp.globalThis.customElements.get("media-duration-display")||tp.globalThis.customElements.define("media-duration-display",i8);let i6={2:(0,tg.t)("Network Error"),3:(0,tg.t)("Decode Error"),4:(0,tg.t)("Source Not Supported"),5:(0,tg.t)("Encryption 
1298Error")},i9={2:(0,tg.t)("A network error caused the media download to fail."),3:(0,tg.t)("A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format."),4:(0,tg.t)("An unsupported error occurred. The server or network failed, or your browser does not support this format."),5:(0,tg.t)("The media is encrypted and there are no keys to decrypt it.")},i7=e=>{var t,i;return 1===e.code?null:{title:null!=(t=i6[e.code])?t:`Error ${e.code}`,message:null!=(i=i9[e.code])?i:e.message}};var se=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)};function st(e){var t;let{title:i,message:s}=null!=(t=i7(e))?t:{},r="";return i&&(r+=`<slot name="error-${e.code}-title"><h3>${i}</h3></slot>`),s&&(r+=`<slot name="error-${e.code}-message"><p>${s}</p></slot>`),r}let si=[tf.MediaUIAttributes.MEDIA_ERROR_CODE,tf.MediaUIAttributes.MEDIA_ERROR_MESSAGE];class ss extends i${constructor(){super(...arguments),((e,t)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,null)})(this,ek)}static get observedAttributes(){return[...super.observedAttributes,...si]}formatErrorMessage(e){return this.constructor.formatErrorMessage(e)}attributeChangedCallback(e,t,i){var s;if(super.attributeChangedCallback(e,t,i),!si.includes(e))return;let r=null!=(s=this.mediaError)?s:{code:this.mediaErrorCode,message:this.mediaErrorMessage};this.open=r.code&&null!==i7(r),this.open&&(this.shadowRoot.querySelector("slot").name=`error-${this.mediaErrorCode}`,this.shadowRoot.querySelector("#content").innerHTML=this.formatErrorMessage(r))}get mediaError(){var e;return se(this,e=ek,"read from private field"),e.get(this)}set mediaError(e){var t;se(this,t=ek,"write to private field"),t.set(this,e)}get mediaErrorCode(){return(0,tE.getNumericAttr)(this,"mediaerrorcode")}set mediaErrorCode(e){(0,tE.setNumericAttr)(this,"mediaerrorcode",e)}get mediaErrorMessage(){return(0,tE.getStringAttr)(this,"mediaerrormessage")}set mediaErrorMessage(e){(0,tE.setStringAttr)(this,"mediaerrormessage",e)}}ek=new WeakMap,ss.getSlotTemplateHTML=function(e){return`
1299    <style>
1300      :host {
1301        background: rgb(20 20 30 / .8);
1302      }
1303
1304      #content {
1305        display: block;
1306        padding: 1.2em 1.5em;
1307      }
1308
1309      h3,
1310      p {
1311        margin-block: 0 .3em;
1312      }
1313    </style>
1314    <slot name="error-${e.mediaerrorcode}" id="content">
1315      ${st({code:+e.mediaerrorcode,message:e.mediaerrormessage})}
1316    </slot>
1317  `},ss.formatErrorMessage=st,tp.globalThis.customElements.get("media-error-dialog")||tp.globalThis.customElements.define("media-error-dialog",ss);var sr=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot read from private field");return i?i.call(e):t.get(e)},sa=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)};class sn extends i${constructor(){super(...arguments),sa(this,eR,e=>{var t;if(!this.open)return;let i=null==(t=this.shadowRoot)?void 0:t.querySelector("#content");if(!i)return;let s=e.composedPath(),r=s[0]===this||s.includes(this),a=s.includes(i);r&&!a&&(this.open=!1)}),sa(this,eM,e=>{if(!this.open)return;let t=e.shiftKey&&("/"===e.key||"?"===e.key);"Escape"!==e.key&&!t||e.ctrlKey||e.altKey||e.metaKey||(this.open=!1,e.preventDefault(),e.stopPropagation())})}connectedCallback(){super.connectedCallback(),this.open&&(this.addEventListener("click",sr(this,eR)),document.addEventListener("keydown",sr(this,eM)))}disconnectedCallback(){this.removeEventListener("click",sr(this,eR)),document.removeEventListener("keydown",sr(this,eM))}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),"open"===e&&(this.open?(this.addEventListener("click",sr(this,eR)),document.addEventListener("keydown",sr(this,eM))):(this.removeEventListener("click",sr(this,eR)),document.removeEventListener("keydown",sr(this,eM))))}}eR=new WeakMap,eM=new WeakMap,sn.getSlotTemplateHTML=function(e){let t;return`
1318    <style>
1319      :host {
1320        position: fixed;
1321        top: 0;
1322        left: 0;
1323        z-index: 9999;
1324        background: rgb(20 20 30 / .8);
1325        backdrop-filter: blur(10px);
1326      }
1327
1328      #content {
1329        display: block;
1330        width: clamp(400px, 40vw, 700px);
1331        max-width: 90vw;
1332        text-align: left;
1333      }
1334
1335      h2 {
1336        margin: 0 0 1.5rem 0;
1337        font-size: 1.5rem;
1338        font-weight: 500;
1339        text-align: center;
1340      }
1341
1342      .shortcuts-table {
1343        width: 100%;
1344        border-collapse: collapse;
1345      }
1346
1347      .shortcuts-table tr {
1348        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1349      }
1350
1351      .shortcuts-table tr:last-child {
1352        border-bottom: none;
1353      }
1354
1355      .shortcuts-table td {
1356        padding: 0.75rem 0.5rem;
1357      }
1358
1359      .shortcuts-table td:first-child {
1360        text-align: right;
1361        padding-right: 1rem;
1362        width: 40%;
1363        min-width: 120px;
1364      }
1365
1366      .shortcuts-table td:last-child {
1367        padding-left: 1rem;
1368      }
1369
1370      .key {
1371        display: inline-block;
1372        background: rgba(255, 255, 255, 0.15);
1373        border: 1px solid rgba(255, 255, 255, 0.2);
1374        border-radius: 4px;
1375        padding: 0.25rem 0.5rem;
1376        font-family: 'Courier New', monospace;
1377        font-size: 0.9rem;
1378        font-weight: 500;
1379        min-width: 1.5rem;
1380        text-align: center;
1381        margin: 0 0.2rem;
1382      }
1383
1384      .description {
1385        color: rgba(255, 255, 255, 0.9);
1386        font-size: 0.95rem;
1387      }
1388
1389      .key-combo {
1390        display: flex;
1391        align-items: center;
1392        justify-content: flex-end;
1393        gap: 0.3rem;
1394      }
1395
1396      .key-separator {
1397        color: rgba(255, 255, 255, 0.5);
1398        font-size: 0.9rem;
1399      }
1400    </style>
1401    <slot id="content">
1402      ${t=[{keys:["Space","k"],description:"Toggle Playback"},{keys:["m"],description:"Toggle mute"},{keys:["f"],description:"Toggle fullscreen"},{keys:["c"],description:"Toggle captions or subtitles, if available"},{keys:["p"],description:"Toggle Picture in Picture"},{keys:["←","j"],description:"Seek back 10s"},{keys:["→","l"],description:"Seek forward 10s"},{keys:["↑"],description:"Turn volume up"},{keys:["↓"],description:"Turn volume down"},{keys:["< (SHIFT+,)"],description:"Decrease playback rate"},{keys:["> (SHIFT+.)"],description:"Increase playback rate"}].map(({keys:e,description:t})=>{let i=e.map((e,t)=>t>0?`<span class="key-separator">or</span><span class="key">${e}</span>`:`<span class="key">${e}</span>`).join("");return`
1403      <tr>
1404        <td>
1405          <div class="key-combo">${i}</div>
1406        </td>
1407        <td class="description">${t}</td>
1408      </tr>
1409    `}).join(""),`
1410    <h2>Keyboard Shortcuts</h2>
1411    <table class="shortcuts-table">${t}</table>
1412  `}
1413    </slot>
1414  `},tp.globalThis.customElements.get("media-keyboard-shortcuts-dialog")||tp.globalThis.customElements.define("media-keyboard-shortcuts-dialog",sn);var sl=ib,so=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)};let sd=`<svg aria-hidden="true" viewBox="0 0 26 24">
1415  <path d="M16 3v2.5h3.5V9H22V3h-6ZM4 9h2.5V5.5H10V3H4v6Zm15.5 9.5H16V21h6v-6h-2.5v3.5ZM6.5 15H4v6h6v-2.5H6.5V15Z"/>
1416</svg>`,sh=`<svg aria-hidden="true" viewBox="0 0 26 24">
1417  <path d="M18.5 6.5V3H16v6h6V6.5h-3.5ZM16 21h2.5v-3.5H22V15h-6v6ZM4 17.5h3.5V21H10v-6H4v2.5Zm3.5-11H4V9h6V3H7.5v3.5Z"/>
1418</svg>`,su=e=>{let t=e.mediaIsFullscreen?(0,tg.t)("exit fullscreen mode"):(0,tg.t)("enter fullscreen mode");e.setAttribute("aria-label",t)};class sc extends sl.MediaChromeButton{constructor(){super(...arguments),((e,t)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,null)})(this,eC)}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN,tf.MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),su(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN&&su(this)}get mediaFullscreenUnavailable(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE)}set mediaFullscreenUnavailable(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_FULLSCREEN_UNAVAILABLE,e)}get mediaIsFullscreen(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN)}set mediaIsFullscreen(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN,e)}handleClick(e){var t,i;so(this,t=eC,"write to private field"),t.set(this,e);let s=(so(this,i=eC,"read from private field"),i.get(this)instanceof PointerEvent),r=this.mediaIsFullscreen?new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_EXIT_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0}):new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_ENTER_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0,detail:s});this.dispatchEvent(r)}}eC=new WeakMap,sc.getSlotTemplateHTML=function(e){return`
1419    <style>
1420      :host([${tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=icon] slot:not([name=exit]) {
1421        display: none !important;
1422      }
1423
1424      
1425      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=icon] slot:not([name=enter]) {
1426        display: none !important;
1427      }
1428
1429      :host([${tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN}]) slot[name=tooltip-enter],
1430      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_FULLSCREEN}])) slot[name=tooltip-exit] {
1431        display: none;
1432      }
1433    </style>
1434
1435    <slot name="icon">
1436      <slot name="enter">${sd}</slot>
1437      <slot name="exit">${sh}</slot>
1438    </slot>
1439  `},sc.getTooltipContentHTML=function(){return`
1440    <slot name="tooltip-enter">${(0,tg.t)("Enter fullscreen mode")}</slot>
1441    <slot name="tooltip-exit">${(0,tg.t)("Exit fullscreen mode")}</slot>
1442  `},tp.globalThis.customElements.get("media-fullscreen-button")||tp.globalThis.customElements.define("media-fullscreen-button",sc);var sf=ib;let{MEDIA_TIME_IS_LIVE:sm,MEDIA_PAUSED:sg}=tf.MediaUIAttributes,{MEDIA_SEEK_TO_LIVE_REQUEST:sp,MEDIA_PLAY_REQUEST:sv}=tf.MediaUIEvents,sE=e=>{var t;let i=e.mediaPaused||!e.mediaTimeIsLive,s=i?(0,tg.t)("seek to live"):(0,tg.t)("playing live");e.setAttribute("aria-label",s);let r=null==(t=e.shadowRoot)?void 0:t.querySelector('slot[name="text"]');r&&(r.textContent=(0,tg.t)("live")),i?e.removeAttribute("aria-disabled"):e.setAttribute("aria-disabled","true")};class sb extends sf.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,sm,sg]}connectedCallback(){super.connectedCallback(),sE(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),sE(this)}get mediaPaused(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED)}set mediaPaused(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED,e)}get mediaTimeIsLive(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_TIME_IS_LIVE)}set mediaTimeIsLive(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_TIME_IS_LIVE,e)}handleClick(){(this.mediaPaused||!this.mediaTimeIsLive)&&(this.dispatchEvent(new tp.globalThis.CustomEvent(sp,{composed:!0,bubbles:!0})),this.hasAttribute(sg)&&this.dispatchEvent(new tp.globalThis.CustomEvent(sv,{composed:!0,bubbles:!0})))}}sb.getSlotTemplateHTML=function(e){return`
1443    <style>
1444      :host { --media-tooltip-display: none; }
1445      
1446      slot[name=indicator] > *,
1447      :host ::slotted([slot=indicator]) {
1448        
1449        min-width: auto;
1450        fill: var(--media-live-button-icon-color, rgb(140, 140, 140));
1451        color: var(--media-live-button-icon-color, rgb(140, 140, 140));
1452      }
1453
1454      :host([${sm}]:not([${sg}])) slot[name=indicator] > *,
1455      :host([${sm}]:not([${sg}])) ::slotted([slot=indicator]) {
1456        fill: var(--media-live-button-indicator-color, rgb(255, 0, 0));
1457        color: var(--media-live-button-indicator-color, rgb(255, 0, 0));
1458      }
1459
1460      :host([${sm}]:not([${sg}])) {
1461        cursor: var(--media-cursor, not-allowed);
1462      }
1463
1464      slot[name=text]{
1465        text-transform: uppercase;
1466      }
1467
1468    </style>
1469
1470    <slot name="indicator"><svg viewBox="0 0 6 12"><circle cx="3" cy="6" r="2"></circle></svg></slot>
1471    
1472    <slot name="spacer">&nbsp;</slot><slot name="text">${(0,tg.t)("live")}</slot>
1473  `},tp.globalThis.customElements.get("media-live-button")||tp.globalThis.customElements.define("media-live-button",sb);var sy=tp,sT=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},sA=(e,t,i)=>(sT(e,t,"read from private field"),i?i.call(e):t.get(e)),sS=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},sI=(e,t,i,s)=>(sT(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);let sL="loadingdelay",sk="noautohide",sR=`
1474<svg aria-hidden="true" viewBox="0 0 100 100">
1475  <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">
1476    <animateTransform
1477       attributeName="transform"
1478       attributeType="XML"
1479       type="rotate"
1480       dur="1s"
1481       from="0 50 50"
1482       to="360 50 50"
1483       repeatCount="indefinite" />
1484  </path>
1485</svg>
1486`;class sM extends sy.globalThis.HTMLElement{constructor(){if(super(),sS(this,e_,void 0),sS(this,ew,500),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}}static get observedAttributes(){return[tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER,tf.MediaUIAttributes.MEDIA_PAUSED,tf.MediaUIAttributes.MEDIA_LOADING,sL]}attributeChangedCallback(e,t,i){var s,r,a,n,l;e===sL&&t!==i?this.loadingDelay=Number(i):e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER&&(t&&(null==(r=null==(s=sA(this,e_))?void 0:s.unassociateElement)||r.call(s,this),sI(this,e_,null)),i&&this.isConnected&&(sI(this,e_,null==(a=this.getRootNode())?void 0:a.getElementById(i)),null==(l=null==(n=sA(this,e_))?void 0:n.associateElement)||l.call(n,this)))}connectedCallback(){var e,t,i;let s=this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER);s&&(sI(this,e_,null==(e=this.getRootNode())?void 0:e.getElementById(s)),null==(i=null==(t=sA(this,e_))?void 0:t.associateElement)||i.call(t,this))}disconnectedCallback(){var e,t;null==(t=null==(e=sA(this,e_))?void 0:e.unassociateElement)||t.call(e,this),sI(this,e_,null)}get loadingDelay(){return sA(this,ew)}set loadingDelay(e){sI(this,ew,e);let{style:t}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host");t.setProperty("--_loading-indicator-delay",`var(--media-loading-indicator-transition-delay, ${e}ms)`)}get mediaPaused(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED)}set mediaPaused(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED,e)}get mediaLoading(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOADING)}set mediaLoading(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOADING,e)}get mediaController(){return(0,tE.getStringAttr)(this,tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER)}set mediaController(e){(0,tE.setStringAttr)(this,tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER,e)}get noAutohide(){return(0,tE.getBooleanAttr)(this,sk)}set noAutohide(e){(0,tE.setBooleanAttr)(this,sk,e)}}e_=new WeakMap,ew=new WeakMap,sM.shadowRootOptions={mode:"open"},sM.getTemplateHTML=function(e){return`
1487    <style>
1488      :host {
1489        display: var(--media-control-display, var(--media-loading-indicator-display, inline-block));
1490        vertical-align: middle;
1491        box-sizing: border-box;
1492        --_loading-indicator-delay: var(--media-loading-indicator-transition-delay, 500ms);
1493      }
1494
1495      #status {
1496        color: rgba(0,0,0,0);
1497        width: 0px;
1498        height: 0px;
1499      }
1500
1501      :host slot[name=icon] > *,
1502      :host ::slotted([slot=icon]) {
1503        opacity: var(--media-loading-indicator-opacity, 0);
1504        transition: opacity 0.15s;
1505      }
1506
1507      :host([${tf.MediaUIAttributes.MEDIA_LOADING}]:not([${tf.MediaUIAttributes.MEDIA_PAUSED}])) slot[name=icon] > *,
1508      :host([${tf.MediaUIAttributes.MEDIA_LOADING}]:not([${tf.MediaUIAttributes.MEDIA_PAUSED}])) ::slotted([slot=icon]) {
1509        opacity: var(--media-loading-indicator-opacity, 1);
1510        transition: opacity 0.15s var(--_loading-indicator-delay);
1511      }
1512
1513      :host #status {
1514        visibility: var(--media-loading-indicator-opacity, hidden);
1515        transition: visibility 0.15s;
1516      }
1517
1518      :host([${tf.MediaUIAttributes.MEDIA_LOADING}]:not([${tf.MediaUIAttributes.MEDIA_PAUSED}])) #status {
1519        visibility: var(--media-loading-indicator-opacity, visible);
1520        transition: visibility 0.15s var(--_loading-indicator-delay);
1521      }
1522
1523      svg, img, ::slotted(svg), ::slotted(img) {
1524        width: var(--media-loading-indicator-icon-width);
1525        height: var(--media-loading-indicator-icon-height, 100px);
1526        fill: var(--media-icon-color, var(--media-primary-color, rgb(238 238 238)));
1527        vertical-align: middle;
1528      }
1529    </style>
1530
1531    <slot name="icon">${sR}</slot>
1532    <div id="status" role="status" aria-live="polite">${(0,tg.t)("media loading")}</div>
1533  `},sy.globalThis.customElements.get("media-loading-indicator")||sy.globalThis.customElements.define("media-loading-indicator",sM);var sC=ib;let s_=`<svg aria-hidden="true" viewBox="0 0 24 24">
1534  <path d="M16.5 12A4.5 4.5 0 0 0 14 8v2.18l2.45 2.45a4.22 4.22 0 0 0 .05-.63Zm2.5 0a6.84 6.84 0 0 1-.54 2.64L20 16.15A8.8 8.8 0 0 0 21 12a9 9 0 0 0-7-8.77v2.06A7 7 0 0 1 19 12ZM4.27 3 3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25A6.92 6.92 0 0 1 14 18.7v2.06A9 9 0 0 0 17.69 19l2 2.05L21 19.73l-9-9L4.27 3ZM12 4 9.91 6.09 12 8.18V4Z"/>
1535</svg>`,sw=`<svg aria-hidden="true" viewBox="0 0 24 24">
1536  <path d="M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4Z"/>
1537</svg>`,sD=`<svg aria-hidden="true" viewBox="0 0 24 24">
1538  <path d="M3 9v6h4l5 5V4L7 9H3Zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.47 4.47 0 0 0 2.5-4ZM14 3.23v2.06a7 7 0 0 1 0 13.42v2.06a9 9 0 0 0 0-17.54Z"/>
1539</svg>`,sx=e=>{let t="off"===e.mediaVolumeLevel?(0,tg.t)("unmute"):(0,tg.t)("mute");e.setAttribute("aria-label",t)};class sP extends sC.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL]}connectedCallback(){super.connectedCallback(),sx(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL&&sx(this)}get mediaVolumeLevel(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL)}set mediaVolumeLevel(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL,e)}handleClick(){let e="off"===this.mediaVolumeLevel?tf.MediaUIEvents.MEDIA_UNMUTE_REQUEST:tf.MediaUIEvents.MEDIA_MUTE_REQUEST;this.dispatchEvent(new tp.globalThis.CustomEvent(e,{composed:!0,bubbles:!0}))}}sP.getSlotTemplateHTML=function(e){return`
1540    <style>
1541      :host(:not([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}])) slot[name=icon] slot:not([name=high]),
1542      :host([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=high]) slot[name=icon] slot:not([name=high]) {
1543        display: none !important;
1544      }
1545
1546      :host([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=icon] slot:not([name=off]) {
1547        display: none !important;
1548      }
1549
1550      :host([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=low]) slot[name=icon] slot:not([name=low]) {
1551        display: none !important;
1552      }
1553
1554      :host([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=medium]) slot[name=icon] slot:not([name=medium]) {
1555        display: none !important;
1556      }
1557
1558      :host(:not([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off])) slot[name=tooltip-unmute],
1559      :host([${tf.MediaUIAttributes.MEDIA_VOLUME_LEVEL}=off]) slot[name=tooltip-mute] {
1560        display: none;
1561      }
1562    </style>
1563
1564    <slot name="icon">
1565      <slot name="off">${s_}</slot>
1566      <slot name="low">${sw}</slot>
1567      <slot name="medium">${sw}</slot>
1568      <slot name="high">${sD}</slot>
1569    </slot>
1570  `},sP.getTooltipContentHTML=function(){return`
1571    <slot name="tooltip-mute">${(0,tg.t)("Mute")}</slot>
1572    <slot name="tooltip-unmute">${(0,tg.t)("Unmute")}</slot>
1573  `},tp.globalThis.customElements.get("media-mute-button")||tp.globalThis.customElements.define("media-mute-button",sP);var sO=ib;let sU=`<svg aria-hidden="true" viewBox="0 0 28 24">
1574  <path d="M24 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1Zm-1 16H5V5h18v14Zm-3-8h-7v5h7v-5Z"/>
1575</svg>`,sN=e=>{let t=e.mediaIsPip?(0,tg.t)("exit picture in picture mode"):(0,tg.t)("enter picture in picture mode");e.setAttribute("aria-label",t)};class sF extends sO.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_IS_PIP,tf.MediaUIAttributes.MEDIA_PIP_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),sN(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_IS_PIP&&sN(this)}get mediaPipUnavailable(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_PIP_UNAVAILABLE)}set mediaPipUnavailable(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_PIP_UNAVAILABLE,e)}get mediaIsPip(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_PIP)}set mediaIsPip(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_IS_PIP,e)}handleClick(){let e=this.mediaIsPip?tf.MediaUIEvents.MEDIA_EXIT_PIP_REQUEST:tf.MediaUIEvents.MEDIA_ENTER_PIP_REQUEST;this.dispatchEvent(new tp.globalThis.CustomEvent(e,{composed:!0,bubbles:!0}))}}sF.getSlotTemplateHTML=function(e){return`
1576    <style>
1577      :host([${tf.MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=icon] slot:not([name=exit]) {
1578        display: none !important;
1579      }
1580
1581      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=icon] slot:not([name=enter]) {
1582        display: none !important;
1583      }
1584
1585      :host([${tf.MediaUIAttributes.MEDIA_IS_PIP}]) slot[name=tooltip-enter],
1586      :host(:not([${tf.MediaUIAttributes.MEDIA_IS_PIP}])) slot[name=tooltip-exit] {
1587        display: none;
1588      }
1589    </style>
1590
1591    <slot name="icon">
1592      <slot name="enter">${sU}</slot>
1593      <slot name="exit">${sU}
1593</slot>
1594    </slot>
1595  `},sF.getTooltipContentHTML=function(){return`
1596    <slot name="tooltip-enter">${(0,tg.t)("Enter picture in picture mode")}</slot>
1597    <slot name="tooltip-exit">${(0,tg.t)("Exit picture in picture mode")}</slot>
1598  `},tp.globalThis.customElements.get("media-pip-button")||tp.globalThis.customElements.define("media-pip-button",sF);var sB=e.i(11339),s$=ib;let sH=`<svg aria-hidden="true" viewBox="0 0 24 24">
1599  <path d="m6 21 15-9L6 3v18Z"/>
1600</svg>`,sG=`<svg aria-hidden="true" viewBox="0 0 24 24">
1601  <path d="M6 20h4V4H6v16Zm8-16v16h4V4h-4Z"/>
1602</svg>`,sV=e=>{let t=e.mediaPaused?(0,tg.t)("play"):(0,tg.t)("pause");e.setAttribute("aria-label",t)};class sW extends s$.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_PAUSED,tf.MediaUIAttributes.MEDIA_ENDED]}connectedCallback(){super.connectedCallback(),sV(this)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),(e===tf.MediaUIAttributes.MEDIA_PAUSED||e===tf.MediaUIAttributes.MEDIA_LANG)&&sV(this)}get mediaPaused(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED)}set mediaPaused(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED,e)}handleClick(){let e=this.mediaPaused?tf.MediaUIEvents.MEDIA_PLAY_REQUEST:tf.MediaUIEvents.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new tp.globalThis.CustomEvent(e,{composed:!0,bubbles:!0}))}}sW.getSlotTemplateHTML=function(e){return`
1603    <style>
1604      :host([${tf.MediaUIAttributes.MEDIA_PAUSED}]) slot[name=pause],
1605      :host(:not([${tf.MediaUIAttributes.MEDIA_PAUSED}])) slot[name=play] {
1606        display: none !important;
1607      }
1608
1609      :host([${tf.MediaUIAttributes.MEDIA_PAUSED}]) slot[name=tooltip-pause],
1610      :host(:not([${tf.MediaUIAttributes.MEDIA_PAUSED}])) slot[name=tooltip-play] {
1611        display: none;
1612      }
1613    </style>
1614
1615    <slot name="icon">
1616      <slot name="play">${sH}</slot>
1617      <slot name="pause">${sG}</slot>
1618    </slot>
1619  `},sW.getTooltipContentHTML=function(){return`
1620    <slot name="tooltip-play">${(0,tg.t)("Play")}</slot>
1621    <slot name="tooltip-pause">${(0,tg.t)("Pause")}</slot>
1622  `},tp.globalThis.customElements.get("media-play-button")||tp.globalThis.customElements.define("media-play-button",sW);var sK=tp;let sj="placeholdersrc";class sq extends sK.globalThis.HTMLElement{static get observedAttributes(){return[sj,"src"]}constructor(){if(super(),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}this.image=this.shadowRoot.querySelector("#image")}attributeChangedCallback(e,t,i){if("src"===e&&(null==i?this.image.removeAttribute("src"):this.image.setAttribute("src",i)),e===sj)if(null==i)this.image.style.removeProperty("background-image");else{var s;s=this.image,s.style["background-image"]=`url('${i}')`}}get placeholderSrc(){return(0,tE.getStringAttr)(this,sj)}set placeholderSrc(e){(0,tE.setStringAttr)(this,"src",e)}get src(){return(0,tE.getStringAttr)(this,"src")}set src(e){(0,tE.setStringAttr)(this,"src",e)}}sq.shadowRootOptions={mode:"open"},sq.getTemplateHTML=function(e){return`
1623    <style>
1624      :host {
1625        pointer-events: none;
1626        display: var(--media-poster-image-display, inline-block);
1627        box-sizing: border-box;
1628      }
1629
1630      img {
1631        max-width: 100%;
1632        max-height: 100%;
1633        min-width: 100%;
1634        min-height: 100%;
1635        background-repeat: no-repeat;
1636        background-position: var(--media-poster-image-background-position, var(--media-object-position, center));
1637        background-size: var(--media-poster-image-background-size, var(--media-object-fit, contain));
1638        object-fit: var(--media-object-fit, contain);
1639        object-position: var(--media-object-position, center);
1640      }
1641    </style>
1642
1643    <img part="poster img" aria-hidden="true" id="image"/>
1644  `},sK.globalThis.customElements.get("media-poster-image")||sK.globalThis.customElements.define("media-poster-image",sq);var sY=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)};class sQ extends i3{constructor(){super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eD,void 0),((e,t,i)=>(sY(e,t,"write to private field"),t.set(e,i)))(this,eD,this.shadowRoot.querySelector("slot"))}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,tf.MediaUIAttributes.MEDIA_LA
1644NG]}attributeChangedCallback(e,t,i){if(super.attributeChangedCallback(e,t,i),(e===tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER||e===tf.MediaUIAttributes.MEDIA_LANG)&&i!==t&&null!=i){var s;if((sY(this,s=eD,"read from private field"),s.get(this)).textContent=i,""!==i){let e=(0,tg.t)("chapter: {chapterName}",{chapterName:i});this.setAttribute("aria-valuetext",e)}else this.removeAttribute("aria-valuetext")}}get mediaPreviewChapter(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER)}set mediaPreviewChapter(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,e)}}eD=new WeakMap,tp.globalThis.customElements.get("media-preview-chapter-display")||tp.globalThis.customElements.define("media-preview-chapter-display",sQ);var sz=tp,sX=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},sZ=(e,t,i)=>(sX(e,t,"read from private field"),i?i.call(e):t.get(e)),sJ=(e,t,i,s)=>(sX(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class s0 extends sz.globalThis.HTMLElement{constructor(){if(super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,ex,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);const e=(0,tE.namedNodeMapToObject)(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(e)}}static get observedAttributes(){return[tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE,tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS]}connectedCallback(){var e,t,i;let s=this.getAttribute(tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER);s&&(sJ(this,ex,null==(e=this.getRootNode())?void 0:e.getElementById(s)),null==(i=null==(t=sZ(this,ex))?void 0:t.associateElement)||i.call(t,this))}disconnectedCallback(){var e,t;null==(t=null==(e=sZ(this,ex))?void 0:e.unassociateElement)||t.call(e,this),sJ(this,ex,null)}attributeChangedCallback(e,t,i){var s,r,a,n,l;[tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE,tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS].includes(e)&&this.update(),e===tf.MediaStateReceiverAttributes.MEDIA_CONTROLLER&&(t&&(null==(r=null==(s=sZ(this,ex))?void 0:s.unassociateElement)||r.call(s,this),sJ(this,ex,null)),i&&this.isConnected&&(sJ(this,ex,null==(a=this.getRootNode())?void 0:a.getElementById(i)),null==(l=null==(n=sZ(this,ex))?void 0:n.associateElement)||l.call(n,this)))}get mediaPreviewImage(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewCoords(){let e=this.getAttribute(tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS);if(e)return e.split(/\s+/).map(e=>+e)}set mediaPreviewCoords(e){e?this.setAttribute(tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS,e.join(" ")):this.removeAttribute(tf.MediaUIAttributes.MEDIA_PREVIEW_COORDS)}update(){let e=this.mediaPreviewCoords,t=this.mediaPreviewImage;if(!(e&&t))return;let[i,s,r,a]=e,n=t.split("#")[0],{maxWidth:l,maxHeight:o,minWidth:d,minHeight:h}=getComputedStyle(this),u=Math.min(parseInt(l)/r,parseInt(o)/a),c=Math.max(parseInt(d)/r,parseInt(h)/a),f=u<1,m=f?u:c>1?c:1,{style:g}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host"),p=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"img").style,v=this.shadowRoot.querySelector("img"),E=f?"min":"max";g.setProperty(`${E}-width`,"initial","important"),g.setProperty(`${E}-height`,"initial","important"),g.width=`${r*m}px`,g.height=`${a*m}px`;let b=()=>{p.width=`${this.imgWidth*m}px`,p.height=`${this.imgHeight*m}px`,p.display="block"};v.src!==n&&(v.onload=()=>{this.imgWidth=v.naturalWidth,this.imgHeight=v.naturalHeight,b()},v.src=n,b()),b(),p.transform=`translate(-${i*m}px, -${s*m}px)`}}ex=new WeakMap,s0.shadowRootOptions={mode:"open"},s0.getTemplateHTML=function(e){return`
1645    <style>
1646      :host {
1647        box-sizing: border-box;
1648        display: var(--media-control-display, var(--media-preview-thumbnail-display, inline-block));
1649        overflow: hidden;
1650      }
1651
1652      img {
1653        display: none;
1654        position: relative;
1655      }
1656    </style>
1657    <img crossorigin loading="eager" decoding="async">
1658  `}
1658,sz.globalThis.customElements.get("media-preview-thumbnail")||sz.globalThis.customElements.define("media-preview-thumbnail",s0);var s1=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},s2=(e,t,i)=>(s1(e,t,"read from private field"),i?i.call(e):t.get(e));class s3 extends i3{constructor(){super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eP,void 0),((e,t,i)=>(s1(e,t,"write to private field"),t.set(e,i)))(this,eP,this.shadowRoot.querySelector("slot")),s2(this,eP).textContent=(0,tm.formatTime)(0)}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME]}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_PREVIEW_TIME&&null!=i&&(s2(this,eP).textContent=(0,tm.formatTime)(parseFloat(i)))}get mediaPreviewTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME,e)}}eP=new WeakMap,tp.globalThis.customElements.get("media-preview-time-display")||tp.globalThis.customElements.define("media-preview-time-display",s3);var s4=ib;let s5="seekoffset";class s8 extends s4.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,s5]}connectedCallback(){super.connectedCallback(),this.seekOffset=(0,tE.getNumericAttr)(this,s5,30)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===s5&&(this.seekOffset=(0,tE.getNumericAttr)(this,s5,30))}get seekOffset(){return(0,tE.getNumericAttr)(this,s5,30)}set seekOffset(e){(0,tE.setNumericAttr)(this,s5,e),this.setAttribute("aria-label",(0,tg.t)("seek back {seekOffset} seconds",{seekOffset:this.seekOffset})),(0,tE.updateIconText)((0,tE.getSlotted)(this,"icon"),this.seekOffset)}get mediaCurrentTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,0)}set mediaCurrentTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,e)}handleClick(){let e=Math.max(this.mediaCurrentTime-this.seekOffset,0),t=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:e});this.dispatchEvent(t)}}s8.getSlotTemplateHTML=function(e,t){let i;return`
1659    <slot name="icon">${i=t.seekOffset,`
1660  <svg aria-hidden="true" viewBox="0 0 20 24">
1661    <defs>
1662      <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>
1663    </defs>
1664    <text class="text value" transform="translate(2.18 19.87)">${i}</text>
1665    <path d="M10 6V3L4.37 7 10 10.94V8a5.54 5.54 0 0 1 1.9 10.48v2.12A7.5 7.5 0 0 0 10 6Z"/>
1666  </svg>`}</slot>
1667  `},s8.getTooltipContentHTML=function(){return(0,tg.t)("Seek backward")},tp.globalThis.customElements.get("media-seek-backward-button")||tp.globalThis.customElements.define("media-seek-backward-button",s8);var s6=ib;let s9="seekoffset";class s7 extends s6.MediaChromeButton{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,s9]}connectedCallback(){super.connectedCallback(),this.seekOffset=(0,tE.getNumericAttr)(this,s9,30)}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===s9&&(this.seekOffset=(0,tE.getNumericAttr)(this,s9,30))}get seekOffset(){return(0,tE.getNumericAttr)(this,s9,30)}set seekOffset(e){(0,tE.setNumericAttr)(this,s9,e),this.setAttribute("aria-label",(0,tg.t)("seek forward {seekOffset} seconds",{seekOffset:this.seekOffset})),(0,tE.updateIconText)((0,tE.getSlotted)(this,"icon"),this.seekOffset)}get mediaCurrentTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,0)}set mediaCurrentTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,e)}handleClick(){let e=this.mediaCurrentTime+this.seekOffset,t=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:e});this.dispatchEvent(t)}}s7.getSlotTemplateHTML=function(e,t){let i;return`
1668    <slot name="icon">${i=t.seekOffset,`
1669  <svg aria-hidden="true" viewBox="0 0 20 24">
1670    <defs>
1671      <style>.text{font-size:8px;font-family:Arial-BoldMT, Arial;font-weight:700;}</style>
1672    </defs>
1673    <text class="text value" transform="translate(8.9 19.87)">${i}</text>
1674    <path d="M10 6V3l5.61 4L10 10.94V8a5.54 5.54 0 0 0-1.9 10.48v2.12A7.5 7.5 0 0 1 10 6Z"/>
1675  </svg>`}</slot>
1676  `},s7.getTooltipContentHTML=function(){return(0,tg.t)("Seek forward")},tp.globalThis.customElements.get("media-seek-forward-button")||tp.globalThis.customElements.define("media-seek-forward-button",s7);var re=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},rt=(e,t,i)=>(re(e,t,"read from private field"),i?i.call(e):t.get(e));let ri={REMAINING:"remaining",SHOW_DURATION:"showduration",NO_TOGGLE:"notoggle"},rs=[...Object.values(ri),tf.MediaUIAttributes.MEDIA_CURRENT_TIME,tf.MediaUIAttributes.MEDIA_DURATION,tf.MediaUIAttributes.MEDIA_SEEKABLE],rr=["Enter"," "],ra="&nbsp;/&nbsp;",rn=(e,{timesSep:t=ra}={})=>{var i,s;let r=null!=(i=e.mediaCurrentTime)?i:0,[,a]=null!=(s=e.mediaSeekable)?s:[],n=0;Number.isFinite(e.mediaDuration)?n=e.mediaDuration:Number.isFinite(a)&&(n=a);let l=e.remaining?(0,tm.formatTime)(0-(n-r)):(0,tm.formatTime)(r);return e.showDuration?`${l}${t}${(0,tm.formatTime)(n)}`:l};class rl extends i3{constructor(){super(),((e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)})(this,eO,void 0),((e,t,i)=>(re(e,t,"write to private field"),t.set(e,i)))(this,eO,this.shadowRoot.querySelector("slot")),rt(this,eO).innerHTML=`${rn(this)}`}static get observedAttributes(){return[...super.observedAttributes,...rs,"disabled"]}connectedCallback(){let{style:e}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,":host(:hover:not([notoggle]))");e.setProperty("cursor","var(--media-cursor, pointer)"),e.setProperty("background","var(--media-control-hover-background, rgba(50 50 70 / .7))"),this.hasAttribute("disabled")||this.enable(),this.setAttribute("role","progressbar"),this.setAttribute("aria-label",(0,tg.t)("playback time"));let t=e=>{let{key:i}=e;rr.includes(i)?this.toggleTimeDisplay():this.removeEventListener("keyup",t)};this.addEventListener("keydown",e=>{let{metaKey:i,altKey:s,key:r}=e;i||s||!rr.includes(r)?this.removeEventListener("keyup",t):this.addEventListener("keyup",t)}),this.addEventListener("click",this.toggleTimeDisplay),super.connectedCallback()}toggleTimeDisplay(){this.noToggle||(this.hasAttribute("remaining")?this.removeAttribute("remaining"):this.setAttribute("remaining",""))}disconnectedCallback(){this.disable(),super.disconnectedCallback()}attributeChangedCallback(e,t,i){rs.includes(e)?this.update():"disabled"===e&&i!==t&&(null==i?this.enable():this.disable()),super.attributeChangedCallback(e,t,i)}enable(){this.tabIndex=0}disable(){this.tabIndex=-1}get remaining(){return(0,tE.getBooleanAttr)(this,ri.REMAINING)}set remaining(e){(0,tE.setBooleanAttr)(this,ri.REMAINING,e)}get showDuration(){return(0,tE.getBooleanAttr)(this,ri.SHOW_DURATION)}set showDuration(e){(0,tE.setBooleanAttr)(this,ri.SHOW_DURATION,e)}get noToggle(){return(0,tE.getBooleanAttr)(this,ri.NO_TOGGLE)}set noToggle(e){(0,tE.setBooleanAttr)(this,ri.NO_TOGGLE,e)}get mediaDuration(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION)}set mediaDuration(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION,e)}get mediaCurrentTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME)}set mediaCurrentTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,e)}get mediaSeekable(){let e=this.getAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE);if(e)return e.split(":").map(e=>+e)}set mediaSeekable(e){null==e?this.removeAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE):this.setAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE,e.join(":"))}update(){let e=rn(this);(e=>{var t;let i=e.mediaCurrentTime,[,s]=null!=(t=e.mediaSeekable)?t:[],r=null;if(Number.isFinite(e.mediaDuration)?r=e.mediaDuration:Number.isFinite(s)&&(r=s),null==i||null===r)return e.setAttribute("aria-valuetext","video not loaded, unknown time.");let a=e.remaining?(0,tm.formatAsTimePhrase)(0-(r-i)):(0,tm.formatAsTimePhrase)(i);if(!e.showDuration)return e.setAttribute("aria-valuetext",a);let n=(0,tm.formatAsTimePhrase)(r),l=`${a} of ${n}`;e.setAttribute("aria-valuetext",l)})(this),e!==rt(this,eO).innerHTML&&(rt(this,eO).innerHTML=e)}}eO=new WeakMap,rl.getSlotTemplateHTML=function(e,t){return`
1677    <slot>${rn(t)}</slot>
1678  `},tp.globalThis.customElements.get("media-time-display")||tp.globalThis.customElements.define("media-time-display",rl);var ro=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},rd=(e,t,i)=>(ro(e,t,"read from private field"),i?i.call(e):t.get(e)),rh=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},ru=(e,t,i,s)=>(ro(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i);class rc{constructor(e,t,i){rh(this,eU,void 0),rh(this,eN,void 0),rh(this,eF,void 0),rh(this,eB,void 0),rh(this,e$,void 0),rh(this,eH,void 0),rh(this,eG,void 0),rh(this,eV,void 0),rh(this,eW,0),rh(this,eK,(e=performance.now())=>{ru(this,eW,requestAnimationFrame(rd(this,eK))),ru(this,eB,performance.now()-rd(this,eF));let t=1e3/this.fps;if(rd(this,eB)>t){let i,s;ru(this,eF,e-rd(this,eB)%t);let r=1e3/((e-rd(this,eN))/++(i=this,s=e$,{set _(value){ru(i,s,value,void 0)},get _(){return rd(i,s,void 0)}})._),a=(e-rd(this,eH))/1e3/this.duration,n=rd(this,eG)+a*this.playbackRate;n-rd(this,eU).valueAsNumber>0?ru(this,eV,this.playbackRate/this.duration/r):(ru(this,eV,.995*rd(this,eV)),n=rd(this,eU).valueAsNumber+rd(this,eV)),this.callback(n)}}),ru(this,eU,e),this.callback=t,this.fps=i}start(){0===rd(this,eW)&&(ru(this,eF,performance.now()),ru(this,eN,rd(this,eF)),ru(this,e$,0),rd(this,eK).call(this))}stop(){0!==rd(this,eW)&&(cancelAnimationFrame(rd(this,eW)),ru(this,eW,0))}update({start:e,duration:t,playbackRate:i}){let s=e-rd(this,eU).valueAsNumber,r=Math.abs(t-this.duration);(s>0||s<-.03||r>=.5)&&this.callback(e),ru(this,eG,e),ru(this,eH,performance.now()),this.duration=t,this.playbackRate=i}}eU=new WeakMap,eN=new WeakMap,eF=new WeakMap,eB=new WeakMap,e$=new WeakMap,eH=new WeakMap,eG=new WeakMap,eV=new WeakMap,eW=new WeakMap,eK=new WeakMap;var rf=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},rm=(e,t,i)=>(rf(e,t,"read from private field"),i?i.call(e):t.get(e)),rg=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},rp=(e,t,i,s)=>(rf(e,t,"write to private field"),s?s.call(e,i):t.set(e,i),i),rv=(e,t,i)=>(rf(e,t,"access private method"),i);let rE=(e,t=e.mediaCurrentTime)=>{let i=Number.isFinite(e.mediaSeekableStart)?e.mediaSeekableStart:0,s=Number.isFinite(e.mediaDuration)?e.mediaDuration:e.mediaSeekableEnd;return Number.isNaN(s)?0:Math.max(0,Math.min((t-i)/(s-i),1))},rb=(e,t=e.range.valueAsNumber)=>{let i=Number.isFinite(e.mediaSeekableStart)?e.mediaSeekableStart:0,s=Number.isFinite(e.mediaDuration)?e.mediaDuration:e.mediaSeekableEnd;return Number.isNaN(s)?0:t*(s-i)+i};class ry extends iq{constructor(){super(),rg(this,e2),rg(this,e4),rg(this,e6),rg(this,e7),rg(this,tt),rg(this,ts),rg(this,ta),rg(this,tl),rg(this,ej,void 0),rg(this,eq,void 0),rg(this,eY,void 0),rg(this,eQ,void 0),rg(this,ez,void 0),rg(this,eX,void 0),rg(this,eZ,void 0),rg(this,eJ,void 0),rg(this,e0,void 0),rg(this,e1,void 0),rg(this,e8,e=>{!this.dragging&&((0,tH.isValidNumber)(e)&&(this.range.valueAsNumber=e),rm(this,e1)||this.updateBar())}),this.shadowRoot.querySelector("#track").insertAdjacentHTML("afterbegin",'<div id="buffered" part="buffered"></div>'),rp(this,eY,this.shadowRoot.querySelectorAll('[part~="box"]')),rp(this,ez,this.shadowRoot.querySelector('[part~="preview-box"]')),rp(this,eX,this.shadowRoot.querySelector('[part~="current-box"]'));const e=getComputedStyle(this);rp(this,eZ,parseInt(e.getPropertyValue("--media-box-padding-left"))),rp(this,eJ,parseInt(e.getPropertyValue("--media-box-padding-right"))),rp(this,eq,new rc(this.range,rm(this,e8),60))}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_PAUSED,tf.MediaUIAttributes.MEDIA_DURATION,tf.MediaUIAttributes.MEDIA_SEEKABLE,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME,tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER,tf.MediaUIAttributes.MEDIA_BUFFERED,tf.MediaUIAttributes.MEDIA_PLAYBACK_RATE,tf.MediaUIAttributes.MEDIA_LOADING,tf.MediaUIAttributes.MEDIA_ENDED]}connectedCallback(){var e;super.connectedCallback(),this.range.setAttribute("aria-label",(0,tg.t)("seek")),rv(this,e2,e3).call(this),rp(this,ej,this.getRootNode()),null==(e=rm(this,ej))||e.addEventListener("transitionstart",this)}disconnectedCallback(){var e;super.disconnectedCallback(),rv(this,e2,e3).call(this),null==(e=rm(this,ej))||e.removeEventListener("transitionstart",this),rp(this,ej,null)}attributeChangedCallback(e,t,i){if(super.attributeChangedCallback(e,t,i),t!=i){if(e===tf.MediaUIAttributes.MEDIA_CURRENT_TIME||e===tf.MediaUIAttributes.MEDIA_PAUSED||e===tf.MediaUIAttributes.MEDIA_ENDED||e===tf.MediaUIAttributes.MEDIA_LOADING||e===tf.MediaUIAttributes.MEDIA_DURATION||e===tf.MediaUIAttributes.MEDIA_SEEKABLE){let e,t,i,s;rm(this,eq).update({start:rE(this),duration:this.mediaSeekableEnd-this.mediaSeekableStart,playbackRate:this.mediaPlaybackRate}),rv(this,e2,e3).call(this),e=this.range,t=(0,tm.formatAsTimePhrase)(+rb(this)),i=(0,tm.formatAsTimePhrase)(+this.mediaSeekableEnd),s=t&&i?`${t} of ${i}`:"video not loaded, unknown time.",e.setAttribute("aria-valuetext",s)}else e===tf.MediaUIAttributes.MEDIA_BUFFERED&&this.updateBufferedBar();(e===tf.MediaUIAttributes.MEDIA_DURATION||e===tf.MediaUIAttributes.MEDIA_SEEKABLE)&&(this.mediaChapter
1678sCues=rm(this,e0),this.updateBar())}}get mediaChaptersCues(){return rm(this,e0)}set mediaChaptersCues(e){var t;rp(this,e0,e),this.updateSegments(null==(t=rm(this,e0))?void 0:t.map(e=>({start:rE(this,e.startTime),end:rE(this,e.endTime)})))}get mediaPaused(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED)}set mediaPaused(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_PAUSED,e)}get mediaLoading(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOADING)}set mediaLoading(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOADING,e)}get mediaDuration(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION)}set mediaDuration(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_DURATION,e)}get mediaCurrentTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME)}set mediaCurrentTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_CURRENT_TIME,e)}get mediaPlaybackRate(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PLAYBACK_RATE,e)}get mediaBuffered(){let e=this.getAttribute(tf.MediaUIAttributes.MEDIA_BUFFERED);return e?e.split(" ").map(e=>e.split(":").map(e=>+e)):[]}set mediaBuffered(e){if(!e)return void this.removeAttribute(tf.MediaUIAttributes.MEDIA_BUFFERED);let t=e.map(e=>e.join(":")).join(" ");this.setAttribute(tf.MediaUIAttributes.MEDIA_BUFFERED,t)}get mediaSeekable(){let e=this.getAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE);if(e)return e.split(":").map(e=>+e)}set mediaSeekable(e){null==e?this.removeAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE):this.setAttribute(tf.MediaUIAttributes.MEDIA_SEEKABLE,e.join(":"))}get mediaSeekableEnd(){var e;let[,t=this.mediaDuration]=null!=(e=this.mediaSeekable)?e:[];return t}get mediaSeekableStart(){var e;let[t=0]=null!=(e=this.mediaSeekable)?e:[];return t}get mediaPreviewImage(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE,e)}get mediaPreviewTime(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_PREVIEW_TIME,e)}get mediaEnded(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_ENDED)}set mediaEnded(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_ENDED,e)}updateBar(){super.updateBar(),this.updateBufferedBar(),this.updateCurrentBox()}updateBufferedBar(){var e;let t,i=this.mediaBuffered;if(!i.length)return;if(this.mediaEnded)t=1;else{let s=this.mediaCurrentTime,[,r=this.mediaSeekableStart]=null!=(e=i.find(([e,t])=>e<=s&&s<=t))?e:[];t=rE(this,r)}let{style:s}=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#buffered");s.setProperty("width",`${100*t}%`)}updateCurrentBox(){if(!this.shadowRoot.querySelector('slot[name="current"]').assignedElements().length)return;let e=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#current-rail"),t=(0,tE.getOrInsertCSSRule)(this.shadowRoot,'[part~="current-box"]'),i=rv(this,e6,e9).call(this,rm(this,eX)),s=rv(this,e7,te).call(this,i,this.range.valueAsNumber),r=rv(this,tt,ti).call(this,i,this.range.valueAsNumber);e.style.transform=`translateX(${s})`,e.style.setProperty("--_range-width",`${i.range.width}`),t.style.setProperty("--_box-shift",`${r}`),t.style.setProperty("--_box-width",`${i.box.width}px`),t.style.setProperty("visibility","initial")}handleEvent(e){switch(super.handleEvent(e),e.type){case"input":rv(this,tl,to).call(this);break;case"pointermove":rv(this,ts,tr).call(this,e);break;case"pointerup":rm(this,e1)&&rp(this,e1,!1);break;case"pointerdown":rp(this,e1,!0);break;case"pointerleave":rv(this,ta,tn).call(this,null);break;case"transitionstart":(0,tE.containsComposedNode)(e.target,this)&&setTimeout(()=>rv(this,e2,e3).call(this),0)}}}ej=new WeakMap,eq=new WeakMap,eY=new WeakMap,eQ=new WeakMap,ez=new WeakMap,eX=new WeakMap,eZ=new WeakMap,eJ=new WeakMap,e0=new WeakMap,e1=new WeakMap,e2=new WeakSet,e3=function(){rv(this,e4,e5).call(this)?rm(this,eq).start():rm(this,eq).stop()},e4=new WeakSet,e5=function(){return this.isConnected&&!this.mediaPaused&&!this.mediaLoading&&!this.mediaEnded&&this.mediaSeekableEnd>0&&(0,tE.isElementVisible)(this)},e8=new WeakMap,e6=new WeakSet,e9=function(e){var t;let i=(null!=(t=this.getAttribute("bounds")?(0,tE.closestComposedNode)(this,`#${this.getAttribute("bounds")}`):this.parentElement)?t:this).getBoundingClientRect(),s=this.range.getBoundingClientRect(),r=e.offsetWidth,a=-(s.left-i.left-r/2),n=i.right-s.left-r/2;return{box:{width:r,min:a,max:n},bounds:i,range:s}},e7=new WeakSet,te=function(e,t){let i=`${100*t}%`,{width:s,min:r,max:a}=e.box;if(!s)return i;if(!Number.isNaN(r)){let e=`calc(1 / var(--_range-width) * 100 * ${r}% + var(--media-box-padding-left))`;i=`max(${e}, ${i})`}if(!Number.isNaN(a)){let e=`calc(1 / var(--_range-width) * 100 * ${a}% - var(--media-box-padding-right))`;i=`min(${i}, ${e})`}return i},tt=new WeakSet,ti=function(e,t){let{width:i,min:s,max:r}
1678=e.box,a=t*e.range.width;if(a<s+rm(this,eZ)){let t=e.range.left-e.bounds.left-rm(this,eZ);return`${a-i/2+t}px`}if(a>r-rm(this,eJ)){let t=e.bounds.right-e.range.right-rm(this,eJ);return`${a+i/2-t-e.range.width}px`}return 0},ts=new WeakSet,tr=function(e){let t=[...rm(this,eY)].some(t=>e.composedPath().includes(t));if(!this.dragging&&(t||!e.composedPath().includes(this)))return void rv(this,ta,tn).call(this,null);let i=this.mediaSeekableEnd;if(!i)return;let s=(0,tE.getOrInsertCSSRule)(this.shadowRoot,"#preview-rail"),r=(0,tE.getOrInsertCSSRule)(this.shadowRoot,'[part~="preview-box"]'),a=rv(this,e6,e9).call(this,rm(this,ez)),n=(e.clientX-a.range.left)/a.range.width;n=Math.max(0,Math.min(1,n));let l=rv(this,e7,te).call(this,a,n),o=rv(this,tt,ti).call(this,a,n);s.style.transform=`translateX(${l})`,s.style.setProperty("--_range-width",`${a.range.width}`),r.style.setProperty("--_box-shift",`${o}`),r.style.setProperty("--_box-width",`${a.box.width}px`),1>Math.abs(Math.round(rm(this,eQ))-Math.round(n*i))&&n>.01&&n<.99||(rp(this,eQ,n*i),rv(this,ta,tn).call(this,rm(this,eQ)))},ta=new WeakSet,tn=function(e){this.dispatchEvent(new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:e}))},tl=new WeakSet,to=function(){rm(this,eq).stop();let e=rb(this);this.dispatchEvent(new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:e}))},ry.shadowRootOptions={mode:"open"},ry.getContainerTemplateHTML=function(e){return`
1679    <style>
1680      :host {
1681        --media-box-border-radius: 4px;
1682        --media-box-padding-left: 10px;
1683        --media-box-padding-right: 10px;
1684        --media-preview-border-radius: var(--media-box-border-radius);
1685        --media-box-arrow-offset: var(--media-box-border-radius);
1686        --_control-background: var(--media-control-background, var(--media-secondary-color, rgb(20 20 30 / .7)));
1687        --_preview-background: var(--media-preview-background, var(--_control-background));
1688
1689        
1690        contain: layout;
1691      }
1692
1693      #buffered {
1694        background: var(--media-time-range-buffered-color, rgb(255 255 255 / .4));
1695        position: absolute;
1696        height: 100%;
1697        will-change: width;
1698      }
1699
1700      #preview-rail,
1701      #current-rail {
1702        width: 100%;
1703        position: absolute;
1704        left: 0;
1705        bottom: 100%;
1706        pointer-events: none;
1707        will-change: transform;
1708      }
1709
1710      [part~="box"] {
1711        width: min-content;
1712        
1713        position: absolute;
1714        bottom: 100%;
1715        flex-direction: column;
1716        align-items: center;
1717        transform: translateX(-50%);
1718      }
1719
1720      [part~="current-box"] {
1721        display: var(--media-current-box-display, var(--media-box-display, flex));
1722        margin: var(--media-current-box-margin, var(--media-box-margin, 0 0 5px));
1723        visibility: hidden;
1724      }
1725
1726      [part~="preview-box"] {
1727        display: var(--media-preview-box-display, var(--media-box-display, flex));
1728        margin: var(--media-preview-box-margin, var(--media-box-margin, 0 0 5px));
1729        transition-property: var(--media-preview-transition-property, visibility, opacity);
1730        transition-duration: var(--media-preview-transition-duration-out, .25s);
1731        transition-delay: var(--media-preview-transition-delay-out, 0s);
1732        visibility: hidden;
1733        opacity: 0;
1734      }
1735
1736      :host(:is([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${tf.MediaUIAttributes.MEDIA_PREVIEW_TIME}])[dragging]) [part~="preview-box"] {
1737        transition-duration: var(--media-preview-transition-duration-in, .5s);
1738        transition-delay: var(--media-preview-transition-delay-in, .25s);
1739        visibility: visible;
1740        opacity: 1;
1741      }
1742
1743      @media (hover: hover) {
1744        :host(:is([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}], [${tf.MediaUIAttributes.MEDIA_PREVIEW_TIME}]):hover) [part~="preview-box"] {
1745          transition-duration: var(--media-preview-transition-duration-in, .5s);
1746          transition-delay: var(--media-preview-transition-delay-in, .25s);
1747          visibility: visible;
1748          opacity: 1;
1749        }
1750      }
1751
1752      media-preview-thumbnail,
1753      ::slotted(media-preview-thumbnail) {
1754        visibility: hidden;
1755        
1756        transition: visibility 0s .25s;
1757        transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));
1758        background: var(--media-preview-thumbnail-background, var(--_preview-background));
1759        box-shadow: var(--media-preview-thumbnail-box-shadow, 0 0 4px rgb(0 0 0 / .2));
1760        max-width: var(--media-preview-thumbnail-max-width, 180px);
1761        max-height: var(--media-preview-thumbnail-max-height, 160px);
1762        min-width: var(--media-preview-thumbnail-min-width, 120px);
1763        min-height: var(--media-preview-thumbnail-min-height, 80px);
1764        border: var(--media-preview-thumbnail-border);
1765        border-radius: var(--media-preview-thumbnail-border-radius,
1766          var(--media-preview-border-radius) var(--media-preview-border-radius) 0 0);
1767      }
1768
1769      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) media-preview-thumbnail,
1770      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}][dragging]) ::slotted(media-preview-thumbnail) {
1771        transition-delay: var(--media-preview-transition-delay-in, .25s);
1772        visibility: visible;
1773      }
1774
1775      @media (hover: hover) {
1776        :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) media-preview-thumbnail,
1777        :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]:hover) ::slotted(media-preview-thumbnail) {
1778          transition-delay: var(--media-preview-transition-delay-in, .25s);
1779          visibility: visible;
1780        }
1781
1782        :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {
1783          --media-time-range-hover-display: block;
1784        }
1785      }
1786
1787      media-preview-chapter-display,
1788      ::slotted(media-preview-chapter-display) {
1789        font-size: var(--media-font-size, 13px);
1790        line-height: 17px;
1791        min-width: 0;
1792        visibility: hidden;
1793        
1794        transition: min-width 0s, border-radius 0s, margin 0s, padding 0s, visibility 0s;
1795        transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));
1796        background: var(--media-preview-chapter-background, var(--_preview-background));
1797        border-radius: var(--media-preview-chapter-border-radius,
1798          var(--media-preview-border-radius) var(--media-preview-border-radius)
1799          var(--media-preview-border-radius) var(--media-preview-border-radius));
1800        padding: var(--media-preview-chapter-padding, 3.5px 9px);
1801        margin: var(--media-preview-chapter-margin, 0 0 5px);
1802        text-shadow: var(--media-preview-chapter-text-shadow, 0 0 4px rgb(0 0 0 / .75));
1803      }
1804
1805      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-chapter-display,
1806      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-chapter-display) {
1807        transition-delay: var(--media-preview-transition-delay-in, .25s);
1808        border-radius: var(--media-preview-chapter-border-radius, 0);
1809        padding: var(--media-preview-chapter-padding, 3.5px 9px 0);
1810        margin: var(--media-preview-chapter-margin, 0);
1811        min-width: 100%;
1812      }
1813
1814      media-preview-chapter-display[${tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}],
1815      ::slotted(media-preview-chapter-display[${tf.MediaUIAttributes.MEDIA_PREVIEW_CHAPTER}]) {
1816        visibility: visible;
1817      }
1818
1819      media-preview-chapter-display:not([aria-valuetext]),
1820      ::slotted(media-preview-chapter-display:not([aria-valuetext])) {
1821        display: none;
1822      }
1823
1824      media-preview-time-display,
1825      ::slotted(media-preview-time-display),
1826      media-time-display,
1827      ::slotted(media-time-display) {
1828        font-size: var(--media-font-size, 13px);
1829        line-height: 17px;
1830        min-width: 0;
1831        
1832        transition: min-width 0s, border-radius 0s;
1833        transition-delay: calc(var(--media-preview-transition-delay-out, 0s) + var(--media-preview-transition-duration-out, .25s));
1834        background: var(--media-preview-time-background, var(--_preview-background));
1835        border-radius: var(--media-preview-time-border-radius,
1836          var(--media-preview-border-radius) var(--media-preview-border-radius)
1837          var(--media-preview-border-radius) var(--media-preview-border-radius));
1838        padding: var(--media-preview-time-padding, 3.5px 9px);
1839        margin: var(--media-preview-time-margin, 0);
1840        text-shadow: var(--media-preview-time-text-shadow, 0 0 4px rgb(0 0 0 / .75));
1841        transform: translateX(min(
1842          max(calc(50% - var(--_box-width) / 2),
1843          calc(var(--_box-shift, 0))),
1844          calc(var(--_box-width) / 2 - 50%)
1845        ));
1846      }
1847
1848      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) media-preview-time-display,
1849      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_IMAGE}]) ::slotted(media-preview-time-display) {
1850        transition-delay: var(--media-preview-transition-delay-in, .25s);
1851        border-radius: var(--media-preview-time-border-radius,
1852          0 0 var(--media-preview-border-radius) var(--media-preview-border-radius));
1853        min-width: 100%;
1854      }
1855
1856      :host([${tf.MediaUIAttributes.MEDIA_PREVIEW_TIME}]:hover) {
1857        --media-time-range-hover-display: block;
1858      }
1859
1860      [part~="arrow"],
1861      ::slotted([part~="arrow"]) {
1862        display: var(--media-box-arrow-display, inline-block);
1863        transform: translateX(min(
1864          max(calc(50% - var(--_box-width) / 2 + var(--media-box-arrow-offset)),
1865          calc(var(--_box-shift, 0))),
1866          calc(var(--_box-width) / 2 - 50% - var(--media-box-arrow-offset))
1867        ));
1868        
1869        border-color: transparent;
1870        border-top-color: var(--media-box-arrow-background, var(--_control-background));
1871        border-width: var(--media-box-arrow-border-width,
1872          var(--media-box-arrow-height, 5px) var(--media-box-arrow-width, 6px) 0);
1873        border-style: solid;
1874        justify-content: center;
1875        height: 0;
1876      }
1877    </style>
1878    <div id="preview-rail">
1879      <slot name="preview" part="box preview-box">
1880        <media-preview-thumbnail>
1881          <template shadowrootmode="${s0.shadowRootOptions.mode}">
1882            ${s0.getTemplateHTML({})}
1883          </template>
1884        </media-preview-thumbnail>
1885        <media-preview-chapter-display></media-preview-chapter-display>
1886        <media-preview-time-display></media-preview-time-display>
1887        <slot name="preview-arrow"><div part="arrow"></div></slot>
1888      </slot>
1889    </div>
1890    <div id="current-rail">
1891      <slot name="current" part="box current-box">
1892        
1893      </slot>
1894    </div>
1895  `},tp.globalThis.customElements.get("media-time-range")||tp.globalThis.customElements.define("media-time-range",ry);var rT=e.i(244899);class rA extends iq{static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_VOLUME,tf.MediaUIAttributes.MEDIA_MUTED,tf.MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE]}constructor(){super(),this.range.addEventListener("input",()=>{let e=this.range.value,t=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:e});this.dispatchEvent(t)})}connectedCallback(){super.connectedCallback(),this.range.setAttribute("aria-label",(0,tg.t)("volume"))}attributeChangedCallback(e,t,i){if(super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_VOLUME||e===tf.MediaUIAttributes.MEDIA_MUTED){let e;this.range.valueAsNumber=this.mediaMuted?0:this.mediaVolume,this.range.setAttribute("aria-valuetext",(e=this.range.valueAsNumber,`${Math.round(100*e)}%`)),this.updateBar()}}get mediaVolume(){return(0,tE.getNumericAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME,
18951)}set mediaVolume(e){(0,tE.setNumericAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME,e)}get mediaMuted(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_MUTED)}set mediaMuted(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_MUTED,e)}get mediaVolumeUnavailable(){return(0,tE.getStringAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE)}set mediaVolumeUnavailable(e){(0,tE.setStringAttr)(this,tf.MediaUIAttributes.MEDIA_VOLUME_UNAVAILABLE,e)}}tp.globalThis.customElements.get("media-volume-range")||tp.globalThis.customElements.define("media-volume-range",rA);var rS=ib;class rI extends rS.MediaChromeButton{constructor(){super(...arguments),this.container=null}static get observedAttributes(){return[...super.observedAttributes,tf.MediaUIAttributes.MEDIA_LOOP]}connectedCallback(){var e;super.connectedCallback(),this.container=(null==(e=this.shadowRoot)?void 0:e.querySelector("#icon"))||null,this.container&&(this.container.textContent=(0,tg.t)("Loop"))}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),e===tf.MediaUIAttributes.MEDIA_LOOP&&this.container&&this.setAttribute("aria-checked",this.mediaLoop?"true":"false")}get mediaLoop(){return(0,tE.getBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOOP)}set mediaLoop(e){(0,tE.setBooleanAttr)(this,tf.MediaUIAttributes.MEDIA_LOOP,e)}handleClick(){let e=!this.mediaLoop,t=new tp.globalThis.CustomEvent(tf.MediaUIEvents.MEDIA_LOOP_REQUEST,{composed:!0,bubbles:!0,detail:e});this.dispatchEvent(t)}}rI.getSlotTemplateHTML=function(e){return`
1896      <style>
1897        :host {
1898          min-width: 4ch;
1899          padding: var(--media-button-padding, var(--media-control-padding, 10px 5px));
1900          width: 100%;
1901          display: grid;
1902          grid-template-columns: 1fr auto;
1903          gap: 1rem;
1904          font-weight: var(--media-button-font-weight, normal);
1905        }
1906
1907        #checked-indicator {
1908          display: none;
1909        }
1910
1911        :host([${tf.MediaUIAttributes.MEDIA_LOOP}]) #checked-indicator {
1912          display: block;
1913        }
1914      </style>
1915      
1916      <span id="icon">
1917     </span>
1918
1919      <div id="checked-indicator">
1920        <svg aria-hidden="true" viewBox="0 1 24 24" part="checked-indicator indicator">
1921          <path d="m10 15.17 9.193-9.191 1.414 1.414-10.606 10.606-6.364-6.364 1.414-1.414 4.95 4.95Z"/>
1922        </svg>
1923      </div>
1924    `},rI.getTooltipContentHTML=function(){return(0,tg.t)("Loop")},tp.globalThis.customElements.get("media-loop-button")||tp.globalThis.customElements.define("media-loop-button",rI);function rL(e){return"boolean"==typeof e?e?"":void 0:"function"==typeof e?void 0:Array.isArray(e)&&e.every(e=>"string"==typeof e||"number"==typeof e||"boolean"==typeof e)?e.join(" "):"object"!=typeof e||null===e?e:void 0}(0,tc.createComponent)({tagName:"media-gesture-receiver",elementClass:tS,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-container",elementClass:tB,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rk=(0,tc.createComponent)({tagName:"media-controller",elementClass:il,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-tooltip",elementClass:rT.default,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-chrome-button",elementClass:ib.default,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-airplay-button",elementClass:iA,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rR=(0,tc.createComponent)({tagName:"media-captions-button",elementClass:iR,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-cast-button",elementClass:iD,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-chrome-dialog",elementClass:i$,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-chrome-range",elementClass:iq,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rM=(0,tc.createComponent)({tagName:"media-control-bar",elementClass:iZ,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-text-display",elementClass:i3,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-duration-display",elementClass:i8,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-error-dialog",elementClass:ss,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-keyboard-shortcuts-dialog",elementClass:sn,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rC=(0,tc.createComponent)({tagName:"media-fullscreen-button",elementClass:sc,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-live-button",elementClass:sb,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let r_=(0,tc.createComponent)({tagName:"media-loading-indicator",elementClass:sM,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),rw=(0,tc.createComponent)({tagName:"media-mute-button",elementClass:sP,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-pip-button",elementClass:sF,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-playback-rate-button",elementClass:sB.default,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rD=(0,tc.createComponent)({tagName:"media-play-button",elementClass:sW,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-poster-image",elementClass:sq,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-preview-chapter-display",elementClass:sQ,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}
1924),(0,tc.createComponent)({tagName:"media-preview-thumbnail",elementClass:s0,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-preview-time-display",elementClass:s3,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-seek-backward-button",elementClass:s8,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-seek-forward-button",elementClass:s7,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});let rx=(0,tc.createComponent)({tagName:"media-time-display",elementClass:rl,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),rP=(0,tc.createComponent)({tagName:"media-time-range",elementClass:ry,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}});(0,tc.createComponent)({tagName:"media-volume-range",elementClass:rA,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),(0,tc.createComponent)({tagName:"media-loop-button",elementClass:rI,react:th.default,toAttributeValue:rL,defaultProps:{suppressHydrationWarning:!0}}),e.s(["MediaCaptionsButton",0,rR,"MediaControlBar",0,rM,"MediaController",0,rk,"MediaFullscreenButton",0,rC,"MediaLoadingIndicator",0,r_,"MediaMuteButton",0,rw,"MediaPlayButton",0,rD,"MediaTimeDisplay",0,rx,"MediaTimeRange",0,rP],220923);var rO=e.i(747426),rU=e.i(587939);let rN=(0,th.createContext)({video:{url:"",id:"",title:""},overlay:{showWhenPaused:!1}}),rF="(max-width: 768px) 100vw, 800px",rB=({src:e,alt:t,sizes:i=rF,priority:s=!1})=>s?(0,td.jsx)("img",{src:e,alt:t,crossOrigin:"anonymous",fetchPriority:"high",decoding:"async",className:"z-1 absolute inset-0 h-full w-full bg-black/20 object-cover"}):(0,td.jsx)(tu.default,{src:e,alt:t,fill:!0,sizes:i,className:"z-1 bg-black/20 object-cover"});e.s(["MediaPlayerContextProvider",0,({children:e,video:t,overlay:i,previewVideo:s})=>(0,td.jsx)(rN.Provider,{value:{video:t,overlay:i,previewVideo:s},children:(0,td.jsx)(rO.MediaProvider,{children:e})}),"MediaPlayerRoot",0,({className:e,children:t,priority:i=!1})=>{let{video:s}=(0,th.useContext)(rN),[r,a]=(0,th.useState)(!1);return(0,th.useEffect)(()=>{a(!0)},[]),(0,td.jsxs)(td.Fragment,{children:[s?.poster&&(0,td.jsx)(rB,{src:s.poster,alt:`${s?.title} poster`,sizes:s?.posterSizes,priority:i}),r&&(0,td.jsx)(rk,{id:`mediacontroller-${s?.id}`,"data-media-player":!0,className:(0,rU.cn)(e,"group/mediaplayercontroller z-2 absolute inset-0 isolate overflow-hidden"),children:t})]})},"useMediaPlayerContext",0,()=>(0,th.useContext)(rN)],724965)},969797,e=>{"use strict";var t=e.i(586507),i=e.i(699294),s=e.i(838078),r=e.i(747426),a=e.i(744777);e.s(["SettingsMenu",0,({labels:e}={})=>{let n=(0,i.useRef)(null),l=(0,r.useMediaSelector)(e=>e?.mediaPlaybackRate),o=(0,r.useMediaSelector)(e=>e?.mediaRenditionSelected),d=(0,r.useMediaSelector)(e=>e?.mediaRenditionList),h=e?.speed??"Speed",u=e?.quality??"Quality",c=e?.auto??"Auto";return(0,i.useLayoutEffect)(()=>{let e=n.current;e&&(e.formatMenuItemText=e=>"Auto"!==c?e.replace(/^Auto/,c):e)},[c]),(0,t.jsxs)(s.MediaSettingsMenu,{anchor:"auto",hidden:!0,children:[(0,t.jsxs)(s.MediaSettingsMenuItem,{children:[h,(0,t.jsxs)("span",{slot:"description",children:[l,"x"]}),(0,t.jsx)(a.ChevronIcon,{slot:"suffix"}),(0,t.jsxs)(s.MediaPlaybackRateMenu,{slot:"submenu",hidden:!0,children:[(0,t.jsx)("span",{slot:"title",children:h}),(0,t.jsx)(a.ChevronIcon,{slot:"back-icon"})]})]}),(0,t.jsxs)(s.MediaSettingsMenuItem,{children:[u,(0,t.jsx)("span",{slot:"description",children:d&&null!=o?`${d[Number(o)]?.height}p`:c}),(0,t.jsx)(a.ChevronIcon,{slot:"suffix"}),(0,t.jsxs)(s.MediaRenditionMenu,{ref:n,slot:"submenu",hidden:!0,children:[(0,t.jsx)("span",{slot:"title",children:u}),(0,t.jsx)(a.ChevronIcon,{slot:"back-icon"})]})]})]})}])},525548,e=>{"use strict";var t=e.i(586507),i=e.i(699294),s=e.i(601756),r=e.i(747426),a=e.i(220923),n=e.i(556836),l=e.i(587939),o=e.i(71717),d=e.i(396645),h=e.i(724965);let u=()=>"u">typeof navigator&&/Android/i.test(navigator.userAgent);e.s(["Video",0,({analyticsId:e,muted:c,loop:f,autoplay:m,playsInl
1924ine:g,onPlay:p,onPause:v,onEnded:E,className:b})=>{let y=(0,r.useMediaRef)(),T=(0,r.useMediaDispatch)(),[A,S]=(0,i.useState)(!1),I=(0,i.useRef)(null),{video:L}=(0,h.useMediaPlayerContext)(),k=(0,s.useInView)(I,{once:!1,amount:.75}),R=(0,s.useInView)(I,{margin:"200px",once:!0}),M=(0,r.useMediaSelector)(e=>+(e.mediaCurrentTime??0)?.toFixed(0));return(0,i.useEffect)(()=>{let e="u">typeof navigator&&/iPhone|iPod|iPad/.test(navigator.userAgent);k||!A||e||(S(!1),T({type:r.MediaActionTypes.MEDIA_PAUSE_REQUEST}))},[k,A,T]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.default,{slot:"media",ref:e=>{y(e),e&&(I.current=e)},src:R?L?.url:void 0,poster:R?L?.poster:void 0,crossOrigin:"",className:(0,l.cn)("@container z-(--z-index-slot-video) h-full w-full overflow-hidden bg-transparent",b),controls:!1,playsInline:g??u(),autoplay:m,defaultMuted:c,loop:f,onPlay:t=>{S(!0),T({type:r.MediaActionTypes.MEDIA_PLAY_REQUEST}),p?.(t),(0,o.triggerAnalyticsEvent)({action:d.TrackingAction.Play,type:d.TrackingType.Video,text:`Played from ${M}s`,analyticsId:`${e}_play`,location:L.id})},onPause:t=>{S(!1),T({type:r.MediaActionTypes.MEDIA_PAUSE_REQUEST}),u()&&T({type:r.MediaActionTypes.MEDIA_EXIT_FULLSCREEN_REQUEST}),v?.(t),(0,o.triggerAnalyticsEvent)({action:d.TrackingAction.Pause,type:d.TrackingType.Video,text:`Paused at ${M}s`,analyticsId:`${e}_pause`,location:L.id})},onEnded:t=>{S(!1),T({type:r.MediaActionTypes.MEDIA_PAUSE_REQUEST}),E?.(t),(0,o.triggerAnalyticsEvent)({action:d.TrackingAction.End,type:d.TrackingType.Video,text:"Video ended",analyticsId:`${e}_ended`,location:L.id})},children:[L?.storyboard&&(0,t.jsx)("track",{label:"thumbnails",default:!0,kind:"metadata",src:L.storyboard}),L?.captions&&(0,t.jsx)("track",{default:L.captionsDefault,label:"captions",kind:"captions",src:L.captions})]}),(0,t.jsx)(a.MediaLoadingIndicator,{slot:"centered-chrome",noAutohide:!0})]})}])}]);
1925
1926//# debugId=dab90179-d71b-72e3-c906-b4479c64251c
1927//# sourceMappingURL=31eoo_iaioco1.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.