@ct-player/embed 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,181 @@
1
+ 'use strict';var react=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),jsxRuntime=require('react/jsx-runtime'),excalidraw=require('@excalidraw/excalidraw'),reactPdf=require('react-pdf');require('react-pdf/dist/Page/TextLayer.css'),require('react-pdf/dist/Page/AnnotationLayer.css');var WL=require('@monaco-editor/react');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var WL__default=/*#__PURE__*/_interopDefault(WL);/* @ct-player/embed - Standalone embeddable course player */
2
+ var uT=Object.create;var Am=Object.defineProperty;var dT=Object.getOwnPropertyDescriptor;var hT=Object.getOwnPropertyNames;var fT=Object.getPrototypeOf,pT=Object.prototype.hasOwnProperty;var hi=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var ae=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var mT=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of hT(e))!pT.call(r,n)&&n!==t&&Am(r,n,{get:()=>e[n],enumerable:!(i=dT(e,n))||i.enumerable});return r};var km=(r,e,t)=>(t=r!=null?uT(fT(r)):{},mT(Am(t,"default",{value:r,enumerable:true}),r));var ga=ae((V2,cu)=>{typeof process>"u"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?cu.exports={nextTick:gT}:cu.exports=process;function gT(r,e,t,i){if(typeof r!="function")throw new TypeError('"callback" argument must be a function');var n=arguments.length,s,a;switch(n){case 0:case 1:return process.nextTick(r);case 2:return process.nextTick(function(){r.call(null,e);});case 3:return process.nextTick(function(){r.call(null,e,t);});case 4:return process.nextTick(function(){r.call(null,e,t,i);});default:for(s=new Array(n-1),a=0;a<s.length;)s[a++]=arguments[a];return process.nextTick(function(){r.apply(null,s);})}}});var Lm=ae((j2,Im)=>{var yT={}.toString;Im.exports=Array.isArray||function(r){return yT.call(r)=="[object Array]"};});var uu=ae((W2,Rm)=>{Rm.exports=hi("stream");});var ya=ae((du,Dm)=>{var Wo=hi("buffer"),fi=Wo.Buffer;function Cm(r,e){for(var t in r)e[t]=r[t];}fi.from&&fi.alloc&&fi.allocUnsafe&&fi.allocUnsafeSlow?Dm.exports=Wo:(Cm(Wo,du),du.Buffer=Jn);function Jn(r,e,t){return fi(r,e,t)}Cm(fi,Jn);Jn.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return fi(r,e,t)};Jn.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=fi(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};Jn.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return fi(r)};Jn.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return Wo.SlowBuffer(r)};});var Qn=ae(Gt=>{function vT(r){return Array.isArray?Array.isArray(r):qo(r)==="[object Array]"}Gt.isArray=vT;function xT(r){return typeof r=="boolean"}Gt.isBoolean=xT;function ET(r){return r===null}Gt.isNull=ET;function bT(r){return r==null}Gt.isNullOrUndefined=bT;function ST(r){return typeof r=="number"}Gt.isNumber=ST;function _T(r){return typeof r=="string"}Gt.isString=_T;function TT(r){return typeof r=="symbol"}Gt.isSymbol=TT;function wT(r){return r===void 0}Gt.isUndefined=wT;function AT(r){return qo(r)==="[object RegExp]"}Gt.isRegExp=AT;function kT(r){return typeof r=="object"&&r!==null}Gt.isObject=kT;function IT(r){return qo(r)==="[object Date]"}Gt.isDate=IT;function LT(r){return qo(r)==="[object Error]"||r instanceof Error}Gt.isError=LT;function RT(r){return typeof r=="function"}Gt.isFunction=RT;function CT(r){return r===null||typeof r=="boolean"||typeof r=="number"||typeof r=="string"||typeof r=="symbol"||typeof r>"u"}Gt.isPrimitive=CT;Gt.isBuffer=hi("buffer").Buffer.isBuffer;function qo(r){return Object.prototype.toString.call(r)}});var Pm=ae((Y2,hu)=>{typeof Object.create=="function"?hu.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}}));}:hu.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e;}};});var es=ae((Z2,pu)=>{try{if(fu=hi("util"),typeof fu.inherits!="function")throw "";pu.exports=fu.inherits;}catch{pu.exports=Pm();}var fu;});var Om=ae((X2,mu)=>{function DT(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}var Mm=ya().Buffer,va=hi("util");function PT(r,e,t){r.copy(e,t);}mu.exports=(function(){function r(){DT(this,r),this.head=null,this.tail=null,this.length=0;}return r.prototype.push=function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length;},r.prototype.unshift=function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length;},r.prototype.shift=function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0;},r.prototype.join=function(t){if(this.length===0)return "";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n},r.prototype.concat=function(t){if(this.length===0)return Mm.alloc(0);for(var i=Mm.allocUnsafe(t>>>0),n=this.head,s=0;n;)PT(n.data,i,s),s+=n.data.length,n=n.next;return i},r})();va&&va.inspect&&va.inspect.custom&&(mu.exports.prototype[va.inspect.custom]=function(){var r=va.inspect({length:this.length});return this.constructor.name+" "+r});});var gu=ae((J2,Fm)=>{var Yo=ga();function MT(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=true,Yo.nextTick(Zo,this,r)):Yo.nextTick(Zo,this,r)),this):(this._readableState&&(this._readableState.destroyed=true),this._writableState&&(this._writableState.destroyed=true),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted||(t._writableState.errorEmitted=true,Yo.nextTick(Zo,t,s)):Yo.nextTick(Zo,t,s):e&&e(s);}),this)}function OT(){this._readableState&&(this._readableState.destroyed=false,this._readableState.reading=false,this._readableState.ended=false,this._readableState.endEmitted=false),this._writableState&&(this._writableState.destroyed=false,this._writableState.ended=false,this._writableState.ending=false,this._writableState.finalCalled=false,this._writableState.prefinished=false,this._writableState.finished=false,this._writableState.errorEmitted=false);}function Zo(r,e){r.emit("error",e);}Fm.exports={destroy:MT,undestroy:OT};});var Bm=ae((Q2,Nm)=>{Nm.exports=hi("util").deprecate;});var vu=ae((eB,jm)=>{var mn=ga();jm.exports=Et;function $m(r){var e=this;this.next=null,this.entry=null,this.finish=function(){QT(e,r);};}var FT=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:mn.nextTick,ts;Et.WritableState=Ea;var zm=Object.create(Qn());zm.inherits=es();var NT={deprecate:Bm()},Gm=uu(),Jo=ya().Buffer,BT=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function UT(r){return Jo.from(r)}function $T(r){return Jo.isBuffer(r)||r instanceof BT}var Hm=gu();zm.inherits(Et,Gm);function zT(){}function Ea(r,e){ts=ts||gn(),r=r||{};var t=e instanceof ts;this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode);var i=r.highWaterMark,n=r.writableHighWaterMark,s=this.objectMode?16:16*1024;i||i===0?this.highWaterMark=i:t&&(n||n===0)?this.highWaterMark=n:this.highWaterMark=s,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=false,this.needDrain=false,this.ending=false,this.ended=false,this.finished=false,this.destroyed=false;var a=r.decodeStrings===false;this.decodeStrings=!a,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=false,this.corked=0,this.sync=true,this.bufferProcessing=false,this.onwrite=function(o){qT(e,o);},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=false,this.errorEmitted=false,this.bufferedRequestCount=0,this.corkedRequestsFree=new $m(this);}Ea.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(Ea.prototype,"buffer",{get:NT.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")});}catch{}})();var Xo;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Xo=Function.prototype[Symbol.hasInstance],Object.defineProperty(Et,Symbol.hasInstance,{value:function(r){return Xo.call(this,r)?true:this!==Et?false:r&&r._writableState instanceof Ea}})):Xo=function(r){return r instanceof this};function Et(r){if(ts=ts||gn(),!Xo.call(Et,this)&&!(this instanceof ts))return new Et(r);this._writableState=new Ea(r,this),this.writable=true,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),Gm.call(this);}Et.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"));};function GT(r,e){var t=new Error("write after end");r.emit("error",t),mn.nextTick(e,t);}function HT(r,e,t,i){var n=true,s=false;return t===null?s=new TypeError("May not write null values to stream"):typeof t!="string"&&t!==void 0&&!e.objectMode&&(s=new TypeError("Invalid non-string/buffer chunk")),s&&(r.emit("error",s),mn.nextTick(i,s),n=false),n}Et.prototype.write=function(r,e,t){var i=this._writableState,n=false,s=!i.objectMode&&$T(r);return s&&!Jo.isBuffer(r)&&(r=UT(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=zT),i.ended?GT(this,t):(s||HT(this,i,r,t))&&(i.pendingcb++,n=VT(this,i,s,r,e,t)),n};Et.prototype.cork=function(){var r=this._writableState;r.corked++;};Et.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Km(this,r));};Et.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this};function KT(r,e,t){return !r.objectMode&&r.decodeStrings!==false&&typeof e=="string"&&(e=Jo.from(e,t)),e}Object.defineProperty(Et.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function VT(r,e,t,i,n,s){if(!t){var a=KT(e,i,n);i!==a&&(t=true,n="buffer",i=a);}var o=e.objectMode?1:i.length;e.length+=o;var c=e.length<e.highWaterMark;if(c||(e.needDrain=true),e.writing||e.corked){var l=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},l?l.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1;}else yu(r,e,false,o,i,n,s);return c}function yu(r,e,t,i,n,s,a){e.writelen=i,e.writecb=a,e.writing=true,e.sync=true,t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=false;}function jT(r,e,t,i,n){--e.pendingcb,t?(mn.nextTick(n,i),mn.nextTick(xa,r,e),r._writableState.errorEmitted=true,r.emit("error",i)):(n(i),r._writableState.errorEmitted=true,r.emit("error",i),xa(r,e));}function WT(r){r.writing=false,r.writecb=null,r.length-=r.writelen,r.writelen=0;}function qT(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(WT(t),e)jT(r,t,i,e,n);else {var s=Vm(t);!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Km(r,t),i?FT(Um,r,t,s,n):Um(r,t,s,n);}}function Um(r,e,t,i){t||YT(r,e),e.pendingcb--,i(),xa(r,e);}function YT(r,e){e.length===0&&e.needDrain&&(e.needDrain=false,r.emit("drain"));}function Km(r,e){e.bufferProcessing=true;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var a=0,o=true;t;)n[a]=t,t.isBuf||(o=false),t=t.next,a+=1;n.allBuffers=o,yu(r,e,true,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new $m(e),e.bufferedRequestCount=0;}else {for(;t;){var c=t.chunk,l=t.encoding,u=t.callback,d=e.objectMode?1:c.length;if(yu(r,e,false,d,c,l,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null);}e.bufferedRequest=t,e.bufferProcessing=false;}Et.prototype._write=function(r,e,t){t(new Error("_write() is not implemented"));};Et.prototype._writev=null;Et.prototype.end=function(r,e,t){var i=this._writableState;typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||JT(this,i,t);};function Vm(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function ZT(r,e){r._final(function(t){e.pendingcb--,t&&r.emit("error",t),e.prefinished=true,r.emit("prefinish"),xa(r,e);});}function XT(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"?(e.pendingcb++,e.finalCalled=true,mn.nextTick(ZT,r,e)):(e.prefinished=true,r.emit("prefinish")));}function xa(r,e){var t=Vm(e);return t&&(XT(r,e),e.pendingcb===0&&(e.finished=true,r.emit("finish"))),t}function JT(r,e,t){e.ending=true,xa(r,e),t&&(e.finished?mn.nextTick(t):r.once("finish",t)),e.ended=true,r.writable=false;}function QT(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next;}e.corkedRequestsFree.next=r;}Object.defineProperty(Et.prototype,"destroyed",{get:function(){return this._writableState===void 0?false:this._writableState.destroyed},set:function(r){this._writableState&&(this._writableState.destroyed=r);}});Et.prototype.destroy=Hm.destroy;Et.prototype._undestroy=Hm.undestroy;Et.prototype._destroy=function(r,e){this.end(),e(r);};});var gn=ae((tB,Zm)=>{var Wm=ga(),ew=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Zm.exports=pi;var qm=Object.create(Qn());qm.inherits=es();var Ym=bu(),Eu=vu();qm.inherits(pi,Ym);for(xu=ew(Eu.prototype),Qo=0;Qo<xu.length;Qo++)el=xu[Qo],pi.prototype[el]||(pi.prototype[el]=Eu.prototype[el]);var xu,el,Qo;function pi(r){if(!(this instanceof pi))return new pi(r);Ym.call(this,r),Eu.call(this,r),r&&r.readable===false&&(this.readable=false),r&&r.writable===false&&(this.writable=false),this.allowHalfOpen=true,r&&r.allowHalfOpen===false&&(this.allowHalfOpen=false),this.once("end",tw);}Object.defineProperty(pi.prototype,"writableHighWaterMark",{enumerable:false,get:function(){return this._writableState.highWaterMark}});function tw(){this.allowHalfOpen||this._writableState.ended||Wm.nextTick(rw,this);}function rw(r){r.end();}Object.defineProperty(pi.prototype,"destroyed",{get:function(){return this._readableState===void 0||this._writableState===void 0?false:this._readableState.destroyed&&this._writableState.destroyed},set:function(r){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=r,this._writableState.destroyed=r);}});pi.prototype._destroy=function(r,e){this.push(null),this.end(),Wm.nextTick(e,r);};});var Tu=ae(Jm=>{var _u=ya().Buffer,Xm=_u.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case "hex":case "utf8":case "utf-8":case "ascii":case "binary":case "base64":case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":case "raw":return true;default:return false}};function iw(r){if(!r)return "utf8";for(var e;;)switch(r){case "utf8":case "utf-8":return "utf8";case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return "utf16le";case "latin1":case "binary":return "latin1";case "base64":case "ascii":case "hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=true;}}function nw(r){var e=iw(r);if(typeof e!="string"&&(_u.isEncoding===Xm||!Xm(r)))throw new Error("Unknown encoding: "+r);return e||r}Jm.StringDecoder=ba;function ba(r){this.encoding=nw(r);var e;switch(this.encoding){case "utf16le":this.text=uw,this.end=dw,e=4;break;case "utf8":this.fillLast=ow,e=4;break;case "base64":this.text=hw,this.end=fw,e=3;break;default:this.write=pw,this.end=mw;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=_u.allocUnsafe(e);}ba.prototype.write=function(r){if(r.length===0)return "";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return "";t=this.lastNeed,this.lastNeed=0;}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};ba.prototype.end=cw;ba.prototype.text=lw;ba.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length;};function Su(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function sw(r,e,t){var i=e.length-1;if(i<t)return 0;var n=Su(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=Su(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=Su(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function aw(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function ow(r){var e=this.lastTotal-this.lastNeed,t=aw(this,r);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length;}function lw(r,e){var t=sw(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function cw(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function uw(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function dw(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function hw(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function fw(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function pw(r){return r.toString(this.encoding)}function mw(r){return r&&r.length?this.write(r):""}});var bu=ae((nB,ug)=>{var is=ga();ug.exports=nt;var gw=Lm(),Sa;nt.ReadableState=sg;hi("events").EventEmitter;var rg=function(r,e){return r.listeners(e).length},Lu=uu(),_a=ya().Buffer,yw=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function vw(r){return _a.from(r)}function xw(r){return _a.isBuffer(r)||r instanceof yw}var ig=Object.create(Qn());ig.inherits=es();var wu=hi("util"),Ve=void 0;wu&&wu.debuglog?Ve=wu.debuglog("stream"):Ve=function(){};var Ew=Om(),ng=gu(),rs;ig.inherits(nt,Lu);var Au=["error","close","destroy","pause","resume"];function bw(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):gw(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]];}function sg(r,e){Sa=Sa||gn(),r=r||{};var t=e instanceof Sa;this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode);var i=r.highWaterMark,n=r.readableHighWaterMark,s=this.objectMode?16:16*1024;i||i===0?this.highWaterMark=i:t&&(n||n===0)?this.highWaterMark=n:this.highWaterMark=s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Ew,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=false,this.endEmitted=false,this.reading=false,this.sync=true,this.needReadable=false,this.emittedReadable=false,this.readableListening=false,this.resumeScheduled=false,this.destroyed=false,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=false,this.decoder=null,this.encoding=null,r.encoding&&(rs||(rs=Tu().StringDecoder),this.decoder=new rs(r.encoding),this.encoding=r.encoding);}function nt(r){if(Sa=Sa||gn(),!(this instanceof nt))return new nt(r);this._readableState=new sg(r,this),this.readable=true,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),Lu.call(this);}Object.defineProperty(nt.prototype,"destroyed",{get:function(){return this._readableState===void 0?false:this._readableState.destroyed},set:function(r){this._readableState&&(this._readableState.destroyed=r);}});nt.prototype.destroy=ng.destroy;nt.prototype._undestroy=ng.undestroy;nt.prototype._destroy=function(r,e){this.push(null),e(r);};nt.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=true:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=_a.from(r,e),e=""),i=true),ag(this,r,e,false,i)};nt.prototype.unshift=function(r){return ag(this,r,null,true,false)};function ag(r,e,t,i,n){var s=r._readableState;if(e===null)s.reading=false,ww(r,s);else {var a;n||(a=Sw(s,e)),a?r.emit("error",a):s.objectMode||e&&e.length>0?(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==_a.prototype&&(e=vw(e)),i?s.endEmitted?r.emit("error",new Error("stream.unshift() after end event")):ku(r,s,e,true):s.ended?r.emit("error",new Error("stream.push() after EOF")):(s.reading=false,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?ku(r,s,e,false):og(r,s)):ku(r,s,e,false))):i||(s.reading=false);}return _w(s)}function ku(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(r.emit("data",t),r.read(0)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&tl(r)),og(r,e);}function Sw(r,e){var t;return !xw(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new TypeError("Invalid non-string/buffer chunk")),t}function _w(r){return !r.ended&&(r.needReadable||r.length<r.highWaterMark||r.length===0)}nt.prototype.isPaused=function(){return this._readableState.flowing===false};nt.prototype.setEncoding=function(r){return rs||(rs=Tu().StringDecoder),this._readableState.decoder=new rs(r),this._readableState.encoding=r,this};var Qm=8388608;function Tw(r){return r>=Qm?r=Qm:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function eg(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=Tw(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=true,0))}nt.prototype.read=function(r){Ve("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=false),r===0&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return Ve("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Iu(this):tl(this),null;if(r=eg(r,e),r===0&&e.ended)return e.length===0&&Iu(this),null;var i=e.needReadable;Ve("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=true,Ve("length less than watermark",i)),e.ended||e.reading?(i=false,Ve("reading or ended",i)):i&&(Ve("do read"),e.reading=true,e.sync=true,e.length===0&&(e.needReadable=true),this._read(e.highWaterMark),e.sync=false,e.reading||(r=eg(t,e)));var n;return r>0?n=lg(r,e):n=null,n===null?(e.needReadable=true,r=0):e.length-=r,e.length===0&&(e.ended||(e.needReadable=true),t!==r&&e.ended&&Iu(this)),n!==null&&this.emit("data",n),n};function ww(r,e){if(!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length);}e.ended=true,tl(r);}}function tl(r){var e=r._readableState;e.needReadable=false,e.emittedReadable||(Ve("emitReadable",e.flowing),e.emittedReadable=true,e.sync?is.nextTick(tg,r):tg(r));}function tg(r){Ve("emit readable"),r.emit("readable"),Ru(r);}function og(r,e){e.readingMore||(e.readingMore=true,is.nextTick(Aw,r,e));}function Aw(r,e){for(var t=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(Ve("maybeReadMore read 0"),r.read(0),t!==e.length);)t=e.length;e.readingMore=false;}nt.prototype._read=function(r){this.emit("error",new Error("_read() is not implemented"));};nt.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Ve("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==false)&&r!==process.stdout&&r!==process.stderr,s=n?o:m;i.endEmitted?is.nextTick(s):t.once("end",s),r.on("unpipe",a);function a(y,v){Ve("onunpipe"),y===t&&v&&v.hasUnpiped===false&&(v.hasUnpiped=true,u());}function o(){Ve("onend"),r.end();}var c=kw(t);r.on("drain",c);var l=false;function u(){Ve("cleanup"),r.removeListener("close",p),r.removeListener("finish",g),r.removeListener("drain",c),r.removeListener("error",f),r.removeListener("unpipe",a),t.removeListener("end",o),t.removeListener("end",m),t.removeListener("data",h),l=true,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&c();}var d=false;t.on("data",h);function h(y){Ve("ondata"),d=false;var v=r.write(y);v===false&&!d&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&cg(i.pipes,r)!==-1)&&!l&&(Ve("false write response, pause",i.awaitDrain),i.awaitDrain++,d=true),t.pause());}function f(y){Ve("onerror",y),m(),r.removeListener("error",f),rg(r,"error")===0&&r.emit("error",y);}bw(r,"error",f);function p(){r.removeListener("finish",g),m();}r.once("close",p);function g(){Ve("onfinish"),r.removeListener("close",p),m();}r.once("finish",g);function m(){Ve("unpipe"),t.unpipe(r);}return r.emit("pipe",t),i.flowing||(Ve("pipe resume"),t.resume()),r};function kw(r){return function(){var e=r._readableState;Ve("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,e.awaitDrain===0&&rg(r,"data")&&(e.flowing=true,Ru(r));}}nt.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:false};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=false,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=false;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:false});return this}var a=cg(e.pipes,r);return a===-1?this:(e.pipes.splice(a,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};nt.prototype.on=function(r,e){var t=Lu.prototype.on.call(this,r,e);if(r==="data")this._readableState.flowing!==false&&this.resume();else if(r==="readable"){var i=this._readableState;!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=true,i.emittedReadable=false,i.reading?i.length&&tl(this):is.nextTick(Iw,this));}return t};nt.prototype.addListener=nt.prototype.on;function Iw(r){Ve("readable nexttick read 0"),r.read(0);}nt.prototype.resume=function(){var r=this._readableState;return r.flowing||(Ve("resume"),r.flowing=true,Lw(this,r)),this};function Lw(r,e){e.resumeScheduled||(e.resumeScheduled=true,is.nextTick(Rw,r,e));}function Rw(r,e){e.reading||(Ve("resume read 0"),r.read(0)),e.resumeScheduled=false,e.awaitDrain=0,r.emit("resume"),Ru(r),e.flowing&&!e.reading&&r.read(0);}nt.prototype.pause=function(){return Ve("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==false&&(Ve("pause"),this._readableState.flowing=false,this.emit("pause")),this};function Ru(r){var e=r._readableState;for(Ve("flow",e.flowing);e.flowing&&r.read()!==null;);}nt.prototype.wrap=function(r){var e=this,t=this._readableState,i=false;r.on("end",function(){if(Ve("wrapped end"),t.decoder&&!t.ended){var a=t.decoder.end();a&&a.length&&e.push(a);}e.push(null);}),r.on("data",function(a){if(Ve("wrapped data"),t.decoder&&(a=t.decoder.write(a)),!(t.objectMode&&a==null)&&!(!t.objectMode&&(!a||!a.length))){var o=e.push(a);o||(i=true,r.pause());}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=(function(a){return function(){return r[a].apply(r,arguments)}})(n));for(var s=0;s<Au.length;s++)r.on(Au[s],this.emit.bind(this,Au[s]));return this._read=function(a){Ve("wrapped _read",a),i&&(i=false,r.resume());},this};Object.defineProperty(nt.prototype,"readableHighWaterMark",{enumerable:false,get:function(){return this._readableState.highWaterMark}});nt._fromList=lg;function lg(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.head.data:t=e.buffer.concat(e.length),e.buffer.clear()):t=Cw(r,e.buffer,e.decoder),t}function Cw(r,e,t){var i;return r<e.head.data.length?(i=e.head.data.slice(0,r),e.head.data=e.head.data.slice(r)):r===e.head.data.length?i=e.shift():i=t?Dw(r,e):Pw(r,e),i}function Dw(r,e){var t=e.head,i=1,n=t.data;for(r-=n.length;t=t.next;){var s=t.data,a=r>s.length?s.length:r;if(a===s.length?n+=s:n+=s.slice(0,r),r-=a,r===0){a===s.length?(++i,t.next?e.head=t.next:e.head=e.tail=null):(e.head=t,t.data=s.slice(a));break}++i;}return e.length-=i,n}function Pw(r,e){var t=_a.allocUnsafe(r),i=e.head,n=1;for(i.data.copy(t),r-=i.data.length;i=i.next;){var s=i.data,a=r>s.length?s.length:r;if(s.copy(t,t.length-r,0,a),r-=a,r===0){a===s.length?(++n,i.next?e.head=i.next:e.head=e.tail=null):(e.head=i,i.data=s.slice(a));break}++n;}return e.length-=n,t}function Iu(r){var e=r._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=true,is.nextTick(Mw,e,r));}function Mw(r,e){!r.endEmitted&&r.length===0&&(r.endEmitted=true,e.readable=false,e.emit("end"));}function cg(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return -1}});var Cu=ae((sB,fg)=>{fg.exports=mi;var rl=gn(),hg=Object.create(Qn());hg.inherits=es();hg.inherits(mi,rl);function Ow(r,e){var t=this._transformState;t.transforming=false;var i=t.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=false,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark);}function mi(r){if(!(this instanceof mi))return new mi(r);rl.call(this,r),this._transformState={afterTransform:Ow.bind(this),needTransform:false,transforming:false,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=true,this._readableState.sync=false,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",Fw);}function Fw(){var r=this;typeof this._flush=="function"?this._flush(function(e,t){dg(r,e,t);}):dg(this,null,null);}mi.prototype.push=function(r,e){return this._transformState.needTransform=false,rl.prototype.push.call(this,r,e)};mi.prototype._transform=function(r,e,t){throw new Error("_transform() is not implemented")};mi.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark);}};mi.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&e.writecb&&!e.transforming?(e.transforming=true,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=true;};mi.prototype._destroy=function(r,e){var t=this;rl.prototype._destroy.call(this,r,function(i){e(i),t.emit("close");});};function dg(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(r._transformState.transforming)throw new Error("Calling transform done when still transforming");return r.push(null)}});var yg=ae((aB,gg)=>{gg.exports=Ta;var pg=Cu(),mg=Object.create(Qn());mg.inherits=es();mg.inherits(Ta,pg);function Ta(r){if(!(this instanceof Ta))return new Ta(r);pg.call(this,r);}Ta.prototype._transform=function(r,e,t){t(null,r);};});var Du=ae((Ot,il)=>{var Hr=hi("stream");process.env.READABLE_STREAM==="disable"&&Hr?(il.exports=Hr,Ot=il.exports=Hr.Readable,Ot.Readable=Hr.Readable,Ot.Writable=Hr.Writable,Ot.Duplex=Hr.Duplex,Ot.Transform=Hr.Transform,Ot.PassThrough=Hr.PassThrough,Ot.Stream=Hr):(Ot=il.exports=bu(),Ot.Stream=Hr||Ot,Ot.Readable=Ot,Ot.Writable=vu(),Ot.Duplex=gn(),Ot.Transform=Cu(),Ot.PassThrough=yg());});var gi=ae(or=>{or.base64=true;or.array=true;or.string=true;or.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u";or.nodebuffer=typeof Buffer<"u";or.uint8array=typeof Uint8Array<"u";if(typeof ArrayBuffer>"u")or.blob=false;else {Pu=new ArrayBuffer(0);try{or.blob=new Blob([Pu],{type:"application/zip"}).size===0;}catch{try{vg=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,Mu=new vg,Mu.append(Pu),or.blob=Mu.getBlob("application/zip").size===0;}catch{or.blob=false;}}}var Pu,vg,Mu;try{or.nodestream=!!Du().Readable;}catch{or.nodestream=false;}});var Fu=ae(Ou=>{var Nw=ct(),Bw=gi(),Kr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";Ou.encode=function(r){for(var e=[],t,i,n,s,a,o,c,l=0,u=r.length,d=u,h=Nw.getTypeOf(r)!=="string";l<r.length;)d=u-l,h?(t=r[l++],i=l<u?r[l++]:0,n=l<u?r[l++]:0):(t=r.charCodeAt(l++),i=l<u?r.charCodeAt(l++):0,n=l<u?r.charCodeAt(l++):0),s=t>>2,a=(t&3)<<4|i>>4,o=d>1?(i&15)<<2|n>>6:64,c=d>2?n&63:64,e.push(Kr.charAt(s)+Kr.charAt(a)+Kr.charAt(o)+Kr.charAt(c));return e.join("")};Ou.decode=function(r){var e,t,i,n,s,a,o,c=0,l=0,u="data:";if(r.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");r=r.replace(/[^A-Za-z0-9+/=]/g,"");var d=r.length*3/4;if(r.charAt(r.length-1)===Kr.charAt(64)&&d--,r.charAt(r.length-2)===Kr.charAt(64)&&d--,d%1!==0)throw new Error("Invalid base64 input, bad content length.");var h;for(Bw.uint8array?h=new Uint8Array(d|0):h=new Array(d|0);c<r.length;)n=Kr.indexOf(r.charAt(c++)),s=Kr.indexOf(r.charAt(c++)),a=Kr.indexOf(r.charAt(c++)),o=Kr.indexOf(r.charAt(c++)),e=n<<2|s>>4,t=(s&15)<<4|a>>2,i=(a&3)<<6|o,h[l++]=e,a!==64&&(h[l++]=t),o!==64&&(h[l++]=i);return h};});var wa=ae((cB,xg)=>{xg.exports={isNode:typeof Buffer<"u",newBufferFrom:function(r,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(r,e);if(typeof r=="number")throw new Error('The "data" argument must not be a number');return new Buffer(r,e)},allocBuffer:function(r){if(Buffer.alloc)return Buffer.alloc(r);var e=new Buffer(r);return e.fill(0),e},isBuffer:function(r){return Buffer.isBuffer(r)},isStream:function(r){return r&&typeof r.on=="function"&&typeof r.pause=="function"&&typeof r.resume=="function"}};});var _g=ae((uB,Sg)=>{var Eg=global.MutationObserver||global.WebKitMutationObserver,ns;process.browser?Eg?(Nu=0,bg=new Eg(Aa),Bu=global.document.createTextNode(""),bg.observe(Bu,{characterData:true}),ns=function(){Bu.data=Nu=++Nu%2;}):!global.setImmediate&&typeof global.MessageChannel<"u"?(Uu=new global.MessageChannel,Uu.port1.onmessage=Aa,ns=function(){Uu.port2.postMessage(0);}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?ns=function(){var r=global.document.createElement("script");r.onreadystatechange=function(){Aa(),r.onreadystatechange=null,r.parentNode.removeChild(r),r=null;},global.document.documentElement.appendChild(r);}:ns=function(){setTimeout(Aa,0);}:ns=function(){process.nextTick(Aa);};var Nu,bg,Bu,Uu,$u,ka=[];function Aa(){$u=true;for(var r,e,t=ka.length;t;){for(e=ka,ka=[],r=-1;++r<t;)e[r]();t=ka.length;}$u=false;}Sg.exports=Uw;function Uw(r){ka.push(r)===1&&!$u&&ns();}});var Rg=ae((dB,Lg)=>{var Tg=_g();function ss(){}var Ht={},wg=["REJECTED"],zu=["FULFILLED"],Ag=["PENDING"];process.browser||(Ia=["UNHANDLED"]);var Ia;Lg.exports=zi;function zi(r){if(typeof r!="function")throw new TypeError("resolver must be a function");this.state=Ag,this.queue=[],this.outcome=void 0,process.browser||(this.handled=Ia),r!==ss&&kg(this,r);}zi.prototype.finally=function(r){if(typeof r!="function")return this;var e=this.constructor;return this.then(t,i);function t(n){function s(){return n}return e.resolve(r()).then(s)}function i(n){function s(){throw n}return e.resolve(r()).then(s)}};zi.prototype.catch=function(r){return this.then(null,r)};zi.prototype.then=function(r,e){if(typeof r!="function"&&this.state===zu||typeof e!="function"&&this.state===wg)return this;var t=new this.constructor(ss);if(process.browser||this.handled===Ia&&(this.handled=null),this.state!==Ag){var i=this.state===zu?r:e;Gu(t,i,this.outcome);}else this.queue.push(new La(t,r,e));return t};function La(r,e,t){this.promise=r,typeof e=="function"&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),typeof t=="function"&&(this.onRejected=t,this.callRejected=this.otherCallRejected);}La.prototype.callFulfilled=function(r){Ht.resolve(this.promise,r);};La.prototype.otherCallFulfilled=function(r){Gu(this.promise,this.onFulfilled,r);};La.prototype.callRejected=function(r){Ht.reject(this.promise,r);};La.prototype.otherCallRejected=function(r){Gu(this.promise,this.onRejected,r);};function Gu(r,e,t){Tg(function(){var i;try{i=e(t);}catch(n){return Ht.reject(r,n)}i===r?Ht.reject(r,new TypeError("Cannot resolve promise with itself")):Ht.resolve(r,i);});}Ht.resolve=function(r,e){var t=Ig($w,e);if(t.status==="error")return Ht.reject(r,t.value);var i=t.value;if(i)kg(r,i);else {r.state=zu,r.outcome=e;for(var n=-1,s=r.queue.length;++n<s;)r.queue[n].callFulfilled(e);}return r};Ht.reject=function(r,e){r.state=wg,r.outcome=e,process.browser||r.handled===Ia&&Tg(function(){r.handled===Ia&&process.emit("unhandledRejection",e,r);});for(var t=-1,i=r.queue.length;++t<i;)r.queue[t].callRejected(e);return r};function $w(r){var e=r&&r.then;if(r&&(typeof r=="object"||typeof r=="function")&&typeof e=="function")return function(){e.apply(r,arguments);}}function kg(r,e){var t=false;function i(o){t||(t=true,Ht.reject(r,o));}function n(o){t||(t=true,Ht.resolve(r,o));}function s(){e(n,i);}var a=Ig(s);a.status==="error"&&i(a.value);}function Ig(r,e){var t={};try{t.value=r(e),t.status="success";}catch(i){t.status="error",t.value=i;}return t}zi.resolve=zw;function zw(r){return r instanceof this?r:Ht.resolve(new this(ss),r)}zi.reject=Gw;function Gw(r){var e=new this(ss);return Ht.reject(e,r)}zi.all=Hw;function Hw(r){var e=this;if(Object.prototype.toString.call(r)!=="[object Array]")return this.reject(new TypeError("must be an array"));var t=r.length,i=false;if(!t)return this.resolve([]);for(var n=new Array(t),s=0,a=-1,o=new this(ss);++a<t;)c(r[a],a);return o;function c(l,u){e.resolve(l).then(d,function(h){i||(i=true,Ht.reject(o,h));});function d(h){n[u]=h,++s===t&&!i&&(i=true,Ht.resolve(o,n));}}}zi.race=Kw;function Kw(r){var e=this;if(Object.prototype.toString.call(r)!=="[object Array]")return this.reject(new TypeError("must be an array"));var t=r.length,i=false;if(!t)return this.resolve([]);for(var n=-1,s=new this(ss);++n<t;)a(r[n]);return s;function a(o){e.resolve(o).then(function(c){i||(i=true,Ht.resolve(s,c));},function(c){i||(i=true,Ht.reject(s,c));});}}});var as=ae((hB,Cg)=>{var Hu=null;typeof Promise<"u"?Hu=Promise:Hu=Rg();Cg.exports={Promise:Hu};});var Pg=ae(Dg=>{(function(r,e){if(r.setImmediate)return;var t=1,i={},n=false,s=r.document,a;function o(v){typeof v!="function"&&(v=new Function(""+v));for(var E=new Array(arguments.length-1),b=0;b<E.length;b++)E[b]=arguments[b+1];var S={callback:v,args:E};return i[t]=S,a(t),t++}function c(v){delete i[v];}function l(v){var E=v.callback,b=v.args;switch(b.length){case 0:E();break;case 1:E(b[0]);break;case 2:E(b[0],b[1]);break;case 3:E(b[0],b[1],b[2]);break;default:E.apply(e,b);break}}function u(v){if(n)setTimeout(u,0,v);else {var E=i[v];if(E){n=true;try{l(E);}finally{c(v),n=false;}}}}function d(){a=function(v){process.nextTick(function(){u(v);});};}function h(){if(r.postMessage&&!r.importScripts){var v=true,E=r.onmessage;return r.onmessage=function(){v=false;},r.postMessage("","*"),r.onmessage=E,v}}function f(){var v="setImmediate$"+Math.random()+"$",E=function(b){b.source===r&&typeof b.data=="string"&&b.data.indexOf(v)===0&&u(+b.data.slice(v.length));};r.addEventListener?r.addEventListener("message",E,false):r.attachEvent("onmessage",E),a=function(b){r.postMessage(v+b,"*");};}function p(){var v=new MessageChannel;v.port1.onmessage=function(E){var b=E.data;u(b);},a=function(E){v.port2.postMessage(E);};}function g(){var v=s.documentElement;a=function(E){var b=s.createElement("script");b.onreadystatechange=function(){u(E),b.onreadystatechange=null,v.removeChild(b),b=null;},v.appendChild(b);};}function m(){a=function(v){setTimeout(u,0,v);};}var y=Object.getPrototypeOf&&Object.getPrototypeOf(r);y=y&&y.setTimeout?y:r,{}.toString.call(r.process)==="[object process]"?d():h()?f():r.MessageChannel?p():s&&"onreadystatechange"in s.createElement("script")?g():m(),y.setImmediate=o,y.clearImmediate=c;})(typeof self>"u"?typeof global>"u"?Dg:global:self);});var ct=ae(bt=>{var Gi=gi(),Vw=Fu(),os=wa(),Ku=as();Pg();function jw(r){var e=null;return Gi.uint8array?e=new Uint8Array(r.length):e=new Array(r.length),sl(r,e)}bt.newBlob=function(r,e){bt.checkSupport("blob");try{return new Blob([r],{type:e})}catch{try{var t=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,i=new t;return i.append(r),i.getBlob(e)}catch{throw new Error("Bug : can't construct the Blob.")}}};function Ra(r){return r}function sl(r,e){for(var t=0;t<r.length;++t)e[t]=r.charCodeAt(t)&255;return e}var nl={stringifyByChunk:function(r,e,t){var i=[],n=0,s=r.length;if(s<=t)return String.fromCharCode.apply(null,r);for(;n<s;)e==="array"||e==="nodebuffer"?i.push(String.fromCharCode.apply(null,r.slice(n,Math.min(n+t,s)))):i.push(String.fromCharCode.apply(null,r.subarray(n,Math.min(n+t,s)))),n+=t;return i.join("")},stringifyByChar:function(r){for(var e="",t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},applyCanBeUsed:{uint8array:(function(){try{return Gi.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return false}})(),nodebuffer:(function(){try{return Gi.nodebuffer&&String.fromCharCode.apply(null,os.allocBuffer(1)).length===1}catch{return false}})()}};function Ca(r){var e=65536,t=bt.getTypeOf(r),i=true;if(t==="uint8array"?i=nl.applyCanBeUsed.uint8array:t==="nodebuffer"&&(i=nl.applyCanBeUsed.nodebuffer),i)for(;e>1;)try{return nl.stringifyByChunk(r,t,e)}catch{e=Math.floor(e/2);}return nl.stringifyByChar(r)}bt.applyFromCharCode=Ca;function al(r,e){for(var t=0;t<r.length;t++)e[t]=r[t];return e}var Hi={};Hi.string={string:Ra,array:function(r){return sl(r,new Array(r.length))},arraybuffer:function(r){return Hi.string.uint8array(r).buffer},uint8array:function(r){return sl(r,new Uint8Array(r.length))},nodebuffer:function(r){return sl(r,os.allocBuffer(r.length))}};Hi.array={string:Ca,array:Ra,arraybuffer:function(r){return new Uint8Array(r).buffer},uint8array:function(r){return new Uint8Array(r)},nodebuffer:function(r){return os.newBufferFrom(r)}};Hi.arraybuffer={string:function(r){return Ca(new Uint8Array(r))},array:function(r){return al(new Uint8Array(r),new Array(r.byteLength))},arraybuffer:Ra,uint8array:function(r){return new Uint8Array(r)},nodebuffer:function(r){return os.newBufferFrom(new Uint8Array(r))}};Hi.uint8array={string:Ca,array:function(r){return al(r,new Array(r.length))},arraybuffer:function(r){return r.buffer},uint8array:Ra,nodebuffer:function(r){return os.newBufferFrom(r)}};Hi.nodebuffer={string:Ca,array:function(r){return al(r,new Array(r.length))},arraybuffer:function(r){return Hi.nodebuffer.uint8array(r).buffer},uint8array:function(r){return al(r,new Uint8Array(r.length))},nodebuffer:Ra};bt.transformTo=function(r,e){if(e||(e=""),!r)return e;bt.checkSupport(r);var t=bt.getTypeOf(e),i=Hi[t][r](e);return i};bt.resolve=function(r){for(var e=r.split("/"),t=[],i=0;i<e.length;i++){var n=e[i];n==="."||n===""&&i!==0&&i!==e.length-1||(n===".."?t.pop():t.push(n));}return t.join("/")};bt.getTypeOf=function(r){if(typeof r=="string")return "string";if(Object.prototype.toString.call(r)==="[object Array]")return "array";if(Gi.nodebuffer&&os.isBuffer(r))return "nodebuffer";if(Gi.uint8array&&r instanceof Uint8Array)return "uint8array";if(Gi.arraybuffer&&r instanceof ArrayBuffer)return "arraybuffer"};bt.checkSupport=function(r){var e=Gi[r.toLowerCase()];if(!e)throw new Error(r+" is not supported by this platform")};bt.MAX_VALUE_16BITS=65535;bt.MAX_VALUE_32BITS=-1;bt.pretty=function(r){var e="",t,i;for(i=0;i<(r||"").length;i++)t=r.charCodeAt(i),e+="\\x"+(t<16?"0":"")+t.toString(16).toUpperCase();return e};bt.delay=function(r,e,t){setImmediate(function(){r.apply(t||null,e||[]);});};bt.inherits=function(r,e){var t=function(){};t.prototype=e.prototype,r.prototype=new t;};bt.extend=function(){var r={},e,t;for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&typeof r[t]>"u"&&(r[t]=arguments[e][t]);return r};bt.prepareContent=function(r,e,t,i,n){var s=Ku.Promise.resolve(e).then(function(a){var o=Gi.blob&&(a instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a))!==-1);return o&&typeof FileReader<"u"?new Ku.Promise(function(c,l){var u=new FileReader;u.onload=function(d){c(d.target.result);},u.onerror=function(d){l(d.target.error);},u.readAsArrayBuffer(a);}):a});return s.then(function(a){var o=bt.getTypeOf(a);return o?(o==="arraybuffer"?a=bt.transformTo("uint8array",a):o==="string"&&(n?a=Vw.decode(a):t&&i!==true&&(a=jw(a))),a):Ku.Promise.reject(new Error("Can't read the data of '"+r+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})};});var lr=ae((mB,Og)=>{function Mg(r){this.name=r||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=true,this.isFinished=false,this.isLocked=false,this._listeners={data:[],end:[],error:[]},this.previous=null;}Mg.prototype={push:function(r){this.emit("data",r);},end:function(){if(this.isFinished)return false;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(r){this.emit("error",r);}return true},error:function(r){return this.isFinished?false:(this.isPaused?this.generatedError=r:(this.isFinished=true,this.emit("error",r),this.previous&&this.previous.error(r),this.cleanUp()),true)},on:function(r,e){return this._listeners[r].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(r,e){if(this._listeners[r])for(var t=0;t<this._listeners[r].length;t++)this._listeners[r][t].call(this,e);},pipe:function(r){return r.registerPrevious(this)},registerPrevious:function(r){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=r.streamInfo,this.mergeStreamInfo(),this.previous=r;var e=this;return r.on("data",function(t){e.processChunk(t);}),r.on("end",function(){e.end();}),r.on("error",function(t){e.error(t);}),this},pause:function(){return this.isPaused||this.isFinished?false:(this.isPaused=true,this.previous&&this.previous.pause(),true)},resume:function(){if(!this.isPaused||this.isFinished)return false;this.isPaused=false;var r=false;return this.generatedError&&(this.error(this.generatedError),r=true),this.previous&&this.previous.resume(),!r},flush:function(){},processChunk:function(r){this.push(r);},withStreamInfo:function(r,e){return this.extraStreamInfo[r]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var r in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,r)&&(this.streamInfo[r]=this.extraStreamInfo[r]);},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=true,this.previous&&this.previous.lock();},toString:function(){var r="Worker "+this.name;return this.previous?this.previous+" -> "+r:r}};Og.exports=Mg;});var cs=ae(Ki=>{var ls=ct(),yn=gi(),Ww=wa(),ol=lr(),Da=new Array(256);for(yi=0;yi<256;yi++)Da[yi]=yi>=252?6:yi>=248?5:yi>=240?4:yi>=224?3:yi>=192?2:1;var yi;Da[254]=Da[254]=1;var qw=function(r){var e,t,i,n,s,a=r.length,o=0;for(n=0;n<a;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),o+=t<128?1:t<2048?2:t<65536?3:4;for(yn.uint8array?e=new Uint8Array(o):e=new Array(o),s=0,n=0;s<o;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),t<128?e[s++]=t:t<2048?(e[s++]=192|t>>>6,e[s++]=128|t&63):t<65536?(e[s++]=224|t>>>12,e[s++]=128|t>>>6&63,e[s++]=128|t&63):(e[s++]=240|t>>>18,e[s++]=128|t>>>12&63,e[s++]=128|t>>>6&63,e[s++]=128|t&63);return e},Yw=function(r,e){var t;for(e=e||r.length,e>r.length&&(e=r.length),t=e-1;t>=0&&(r[t]&192)===128;)t--;return t<0||t===0?e:t+Da[r[t]]>e?t:e},Zw=function(r){var e,t,i,n,s=r.length,a=new Array(s*2);for(t=0,e=0;e<s;){if(i=r[e++],i<128){a[t++]=i;continue}if(n=Da[i],n>4){a[t++]=65533,e+=n-1;continue}for(i&=n===2?31:n===3?15:7;n>1&&e<s;)i=i<<6|r[e++]&63,n--;if(n>1){a[t++]=65533;continue}i<65536?a[t++]=i:(i-=65536,a[t++]=55296|i>>10&1023,a[t++]=56320|i&1023);}return a.length!==t&&(a.subarray?a=a.subarray(0,t):a.length=t),ls.applyFromCharCode(a)};Ki.utf8encode=function(e){return yn.nodebuffer?Ww.newBufferFrom(e,"utf-8"):qw(e)};Ki.utf8decode=function(e){return yn.nodebuffer?ls.transformTo("nodebuffer",e).toString("utf-8"):(e=ls.transformTo(yn.uint8array?"uint8array":"array",e),Zw(e))};function ll(){ol.call(this,"utf-8 decode"),this.leftOver=null;}ls.inherits(ll,ol);ll.prototype.processChunk=function(r){var e=ls.transformTo(yn.uint8array?"uint8array":"array",r.data);if(this.leftOver&&this.leftOver.length){if(yn.uint8array){var t=e;e=new Uint8Array(t.length+this.leftOver.length),e.set(this.leftOver,0),e.set(t,this.leftOver.length);}else e=this.leftOver.concat(e);this.leftOver=null;}var i=Yw(e),n=e;i!==e.length&&(yn.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:Ki.utf8decode(n),meta:r.meta});};ll.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Ki.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);};Ki.Utf8DecodeWorker=ll;function Vu(){ol.call(this,"utf-8 encode");}ls.inherits(Vu,ol);Vu.prototype.processChunk=function(r){this.push({data:Ki.utf8encode(r.data),meta:r.meta});};Ki.Utf8EncodeWorker=Vu;});var Ug=ae((yB,Bg)=>{var Fg=lr(),Ng=ct();function ju(r){Fg.call(this,"ConvertWorker to "+r),this.destType=r;}Ng.inherits(ju,Fg);ju.prototype.processChunk=function(r){this.push({data:Ng.transformTo(this.destType,r.data),meta:r.meta});};Bg.exports=ju;});var Gg=ae((vB,zg)=>{var $g=Du().Readable,Xw=ct();Xw.inherits(Wu,$g);function Wu(r,e,t){$g.call(this,e),this._helper=r;var i=this;r.on("data",function(n,s){i.push(n)||i._helper.pause(),t&&t(s);}).on("error",function(n){i.emit("error",n);}).on("end",function(){i.push(null);});}Wu.prototype._read=function(){this._helper.resume();};zg.exports=Wu;});var qu=ae((xB,Vg)=>{var vn=ct(),Jw=Ug(),Qw=lr(),e1=Fu(),t1=gi(),r1=as(),Hg=null;if(t1.nodestream)try{Hg=Gg();}catch{}function i1(r,e,t){switch(r){case "blob":return vn.newBlob(vn.transformTo("arraybuffer",e),t);case "base64":return e1.encode(e);default:return vn.transformTo(r,e)}}function n1(r,e){var t,i=0,n=null,s=0;for(t=0;t<e.length;t++)s+=e[t].length;switch(r){case "string":return e.join("");case "array":return Array.prototype.concat.apply([],e);case "uint8array":for(n=new Uint8Array(s),t=0;t<e.length;t++)n.set(e[t],i),i+=e[t].length;return n;case "nodebuffer":return Buffer.concat(e);default:throw new Error("concat : unsupported type '"+r+"'")}}function s1(r,e){return new r1.Promise(function(t,i){var n=[],s=r._internalType,a=r._outputType,o=r._mimeType;r.on("data",function(c,l){n.push(c),e&&e(l);}).on("error",function(c){n=[],i(c);}).on("end",function(){try{var c=i1(a,n1(s,n),o);t(c);}catch(l){i(l);}n=[];}).resume();})}function Kg(r,e,t){var i=e;switch(e){case "blob":case "arraybuffer":i="uint8array";break;case "base64":i="string";break}try{this._internalType=i,this._outputType=e,this._mimeType=t,vn.checkSupport(i),this._worker=r.pipe(new Jw(i)),r.lock();}catch(n){this._worker=new Qw("error"),this._worker.error(n);}}Kg.prototype={accumulate:function(r){return s1(this,r)},on:function(r,e){var t=this;return r==="data"?this._worker.on(r,function(i){e.call(t,i.data,i.meta);}):this._worker.on(r,function(){vn.delay(e,arguments,t);}),this},resume:function(){return vn.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(r){if(vn.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new Hg(this,{objectMode:this._outputType!=="nodebuffer"},r)}};Vg.exports=Kg;});var Yu=ae(Lr=>{Lr.base64=false;Lr.binary=false;Lr.dir=false;Lr.createFolders=true;Lr.date=null;Lr.compression=null;Lr.compressionOptions=null;Lr.comment=null;Lr.unixPermissions=null;Lr.dosPermissions=null;});var Zu=ae((bB,jg)=>{var cl=ct(),ul=lr(),a1=16*1024;function us(r){ul.call(this,"DataWorker");var e=this;this.dataIsReady=false,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=false,r.then(function(t){e.dataIsReady=true,e.data=t,e.max=t&&t.length||0,e.type=cl.getTypeOf(t),e.isPaused||e._tickAndRepeat();},function(t){e.error(t);});}cl.inherits(us,ul);us.prototype.cleanUp=function(){ul.prototype.cleanUp.call(this),this.data=null;};us.prototype.resume=function(){return ul.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=true,cl.delay(this._tickAndRepeat,[],this)),true):false};us.prototype._tickAndRepeat=function(){this._tickScheduled=false,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(cl.delay(this._tickAndRepeat,[],this),this._tickScheduled=true));};us.prototype._tick=function(){if(this.isPaused||this.isFinished)return false;var r=a1,e=null,t=Math.min(this.max,this.index+r);if(this.index>=this.max)return this.end();switch(this.type){case "string":e=this.data.substring(this.index,t);break;case "uint8array":e=this.data.subarray(this.index,t);break;case "array":case "nodebuffer":e=this.data.slice(this.index,t);break}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})};jg.exports=us;});var dl=ae((SB,qg)=>{var o1=ct();function l1(){for(var r,e=[],t=0;t<256;t++){r=t;for(var i=0;i<8;i++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r;}return e}var Wg=l1();function c1(r,e,t,i){var n=Wg,s=i+t;r=r^-1;for(var a=i;a<s;a++)r=r>>>8^n[(r^e[a])&255];return r^-1}function u1(r,e,t,i){var n=Wg,s=i+t;r=r^-1;for(var a=i;a<s;a++)r=r>>>8^n[(r^e.charCodeAt(a))&255];return r^-1}qg.exports=function(e,t){if(typeof e>"u"||!e.length)return 0;var i=o1.getTypeOf(e)!=="string";return i?c1(t|0,e,e.length,0):u1(t|0,e,e.length,0)};});var Ju=ae((_B,Zg)=>{var Yg=lr(),d1=dl(),h1=ct();function Xu(){Yg.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}h1.inherits(Xu,Yg);Xu.prototype.processChunk=function(r){this.streamInfo.crc32=d1(r.data,this.streamInfo.crc32||0),this.push(r);};Zg.exports=Xu;});var Jg=ae((TB,Xg)=>{var f1=ct(),Qu=lr();function ed(r){Qu.call(this,"DataLengthProbe for "+r),this.propName=r,this.withStreamInfo(r,0);}f1.inherits(ed,Qu);ed.prototype.processChunk=function(r){if(r){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+r.data.length;}Qu.prototype.processChunk.call(this,r);};Xg.exports=ed;});var hl=ae((wB,t0)=>{var Qg=as(),e0=Zu(),p1=Ju(),td=Jg();function rd(r,e,t,i,n){this.compressedSize=r,this.uncompressedSize=e,this.crc32=t,this.compression=i,this.compressedContent=n;}rd.prototype={getContentWorker:function(){var r=new e0(Qg.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new td("data_length")),e=this;return r.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),r},getCompressedWorker:function(){return new e0(Qg.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};rd.createWorkerFrom=function(r,e,t){return r.pipe(new p1).pipe(new td("uncompressedSize")).pipe(e.compressWorker(t)).pipe(new td("compressedSize")).withStreamInfo("compression",e)};t0.exports=rd;});var s0=ae((AB,n0)=>{var m1=qu(),g1=Zu(),id=cs(),nd=hl(),r0=lr(),sd=function(r,e,t){this.name=r,this.dir=t.dir,this.date=t.date,this.comment=t.comment,this.unixPermissions=t.unixPermissions,this.dosPermissions=t.dosPermissions,this._data=e,this._dataBinary=t.binary,this.options={compression:t.compression,compressionOptions:t.compressionOptions};};sd.prototype={internalStream:function(r){var e=null,t="string";try{if(!r)throw new Error("No output type specified.");t=r.toLowerCase();var i=t==="string"||t==="text";(t==="binarystring"||t==="text")&&(t="string"),e=this._decompressWorker();var n=!this._dataBinary;n&&!i&&(e=e.pipe(new id.Utf8EncodeWorker)),!n&&i&&(e=e.pipe(new id.Utf8DecodeWorker));}catch(s){e=new r0("error"),e.error(s);}return new m1(e,t,"")},async:function(r,e){return this.internalStream(r).accumulate(e)},nodeStream:function(r,e){return this.internalStream(r||"nodebuffer").toNodejsStream(e)},_compressWorker:function(r,e){if(this._data instanceof nd&&this._data.compression.magic===r.magic)return this._data.getCompressedWorker();var t=this._decompressWorker();return this._dataBinary||(t=t.pipe(new id.Utf8EncodeWorker)),nd.createWorkerFrom(t,r,e)},_decompressWorker:function(){return this._data instanceof nd?this._data.getContentWorker():this._data instanceof r0?this._data:new g1(this._data)}};var i0=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],y1=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(fl=0;fl<i0.length;fl++)sd.prototype[i0[fl]]=y1;var fl;n0.exports=sd;});var vi=ae(Wt=>{var v1=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function x1(r,e){return Object.prototype.hasOwnProperty.call(r,e)}Wt.assign=function(r){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(var i in t)x1(t,i)&&(r[i]=t[i]);}}return r};Wt.shrinkBuf=function(r,e){return r.length===e?r:r.subarray?r.subarray(0,e):(r.length=e,r)};var E1={arraySet:function(r,e,t,i,n){if(e.subarray&&r.subarray){r.set(e.subarray(t,t+i),n);return}for(var s=0;s<i;s++)r[n+s]=e[t+s];},flattenChunks:function(r){var e,t,i,n,s,a;for(i=0,e=0,t=r.length;e<t;e++)i+=r[e].length;for(a=new Uint8Array(i),n=0,e=0,t=r.length;e<t;e++)s=r[e],a.set(s,n),n+=s.length;return a}},b1={arraySet:function(r,e,t,i,n){for(var s=0;s<i;s++)r[n+s]=e[t+s];},flattenChunks:function(r){return [].concat.apply([],r)}};Wt.setTyped=function(r){r?(Wt.Buf8=Uint8Array,Wt.Buf16=Uint16Array,Wt.Buf32=Int32Array,Wt.assign(Wt,E1)):(Wt.Buf8=Array,Wt.Buf16=Array,Wt.Buf32=Array,Wt.assign(Wt,b1));};Wt.setTyped(v1);});var I0=ae(fs=>{var S1=vi(),_1=4,a0=0,o0=1,T1=2;function hs(r){for(var e=r.length;--e>=0;)r[e]=0;}var w1=0,f0=1,A1=2,k1=3,I1=258,hd=29,Ba=256,Ma=Ba+1+hd,ds=30,fd=19,p0=2*Ma+1,xn=15,ad=16,L1=7,pd=256,m0=16,g0=17,y0=18,ud=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],pl=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],R1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],v0=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],C1=512,xi=new Array((Ma+2)*2);hs(xi);var Pa=new Array(ds*2);hs(Pa);var Oa=new Array(C1);hs(Oa);var Fa=new Array(I1-k1+1);hs(Fa);var md=new Array(hd);hs(md);var ml=new Array(ds);hs(ml);function od(r,e,t,i,n){this.static_tree=r,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=r&&r.length;}var x0,E0,b0;function ld(r,e){this.dyn_tree=r,this.max_code=0,this.stat_desc=e;}function S0(r){return r<256?Oa[r]:Oa[256+(r>>>7)]}function Na(r,e){r.pending_buf[r.pending++]=e&255,r.pending_buf[r.pending++]=e>>>8&255;}function tr(r,e,t){r.bi_valid>ad-t?(r.bi_buf|=e<<r.bi_valid&65535,Na(r,r.bi_buf),r.bi_buf=e>>ad-r.bi_valid,r.bi_valid+=t-ad):(r.bi_buf|=e<<r.bi_valid&65535,r.bi_valid+=t);}function Vr(r,e,t){tr(r,t[e*2],t[e*2+1]);}function _0(r,e){var t=0;do t|=r&1,r>>>=1,t<<=1;while(--e>0);return t>>>1}function D1(r){r.bi_valid===16?(Na(r,r.bi_buf),r.bi_buf=0,r.bi_valid=0):r.bi_valid>=8&&(r.pending_buf[r.pending++]=r.bi_buf&255,r.bi_buf>>=8,r.bi_valid-=8);}function P1(r,e){var t=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,c=e.stat_desc.max_length,l,u,d,h,f,p,g=0;for(h=0;h<=xn;h++)r.bl_count[h]=0;for(t[r.heap[r.heap_max]*2+1]=0,l=r.heap_max+1;l<p0;l++)u=r.heap[l],h=t[t[u*2+1]*2+1]+1,h>c&&(h=c,g++),t[u*2+1]=h,!(u>i)&&(r.bl_count[h]++,f=0,u>=o&&(f=a[u-o]),p=t[u*2],r.opt_len+=p*(h+f),s&&(r.static_len+=p*(n[u*2+1]+f)));if(g!==0){do{for(h=c-1;r.bl_count[h]===0;)h--;r.bl_count[h]--,r.bl_count[h+1]+=2,r.bl_count[c]--,g-=2;}while(g>0);for(h=c;h!==0;h--)for(u=r.bl_count[h];u!==0;)d=r.heap[--l],!(d>i)&&(t[d*2+1]!==h&&(r.opt_len+=(h-t[d*2+1])*t[d*2],t[d*2+1]=h),u--);}}function T0(r,e,t){var i=new Array(xn+1),n=0,s,a;for(s=1;s<=xn;s++)i[s]=n=n+t[s-1]<<1;for(a=0;a<=e;a++){var o=r[a*2+1];o!==0&&(r[a*2]=_0(i[o]++,o));}}function M1(){var r,e,t,i,n,s=new Array(xn+1);for(t=0,i=0;i<hd-1;i++)for(md[i]=t,r=0;r<1<<ud[i];r++)Fa[t++]=i;for(Fa[t-1]=i,n=0,i=0;i<16;i++)for(ml[i]=n,r=0;r<1<<pl[i];r++)Oa[n++]=i;for(n>>=7;i<ds;i++)for(ml[i]=n<<7,r=0;r<1<<pl[i]-7;r++)Oa[256+n++]=i;for(e=0;e<=xn;e++)s[e]=0;for(r=0;r<=143;)xi[r*2+1]=8,r++,s[8]++;for(;r<=255;)xi[r*2+1]=9,r++,s[9]++;for(;r<=279;)xi[r*2+1]=7,r++,s[7]++;for(;r<=287;)xi[r*2+1]=8,r++,s[8]++;for(T0(xi,Ma+1,s),r=0;r<ds;r++)Pa[r*2+1]=5,Pa[r*2]=_0(r,5);x0=new od(xi,ud,Ba+1,Ma,xn),E0=new od(Pa,pl,0,ds,xn),b0=new od(new Array(0),R1,0,fd,L1);}function w0(r){var e;for(e=0;e<Ma;e++)r.dyn_ltree[e*2]=0;for(e=0;e<ds;e++)r.dyn_dtree[e*2]=0;for(e=0;e<fd;e++)r.bl_tree[e*2]=0;r.dyn_ltree[pd*2]=1,r.opt_len=r.static_len=0,r.last_lit=r.matches=0;}function A0(r){r.bi_valid>8?Na(r,r.bi_buf):r.bi_valid>0&&(r.pending_buf[r.pending++]=r.bi_buf),r.bi_buf=0,r.bi_valid=0;}function O1(r,e,t,i){A0(r),(Na(r,t),Na(r,~t)),S1.arraySet(r.pending_buf,r.window,e,t,r.pending),r.pending+=t;}function l0(r,e,t,i){var n=e*2,s=t*2;return r[n]<r[s]||r[n]===r[s]&&i[e]<=i[t]}function cd(r,e,t){for(var i=r.heap[t],n=t<<1;n<=r.heap_len&&(n<r.heap_len&&l0(e,r.heap[n+1],r.heap[n],r.depth)&&n++,!l0(e,i,r.heap[n],r.depth));)r.heap[t]=r.heap[n],t=n,n<<=1;r.heap[t]=i;}function c0(r,e,t){var i,n,s=0,a,o;if(r.last_lit!==0)do i=r.pending_buf[r.d_buf+s*2]<<8|r.pending_buf[r.d_buf+s*2+1],n=r.pending_buf[r.l_buf+s],s++,i===0?Vr(r,n,e):(a=Fa[n],Vr(r,a+Ba+1,e),o=ud[a],o!==0&&(n-=md[a],tr(r,n,o)),i--,a=S0(i),Vr(r,a,t),o=pl[a],o!==0&&(i-=ml[a],tr(r,i,o)));while(s<r.last_lit);Vr(r,pd,e);}function dd(r,e){var t=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,s=e.stat_desc.elems,a,o,c=-1,l;for(r.heap_len=0,r.heap_max=p0,a=0;a<s;a++)t[a*2]!==0?(r.heap[++r.heap_len]=c=a,r.depth[a]=0):t[a*2+1]=0;for(;r.heap_len<2;)l=r.heap[++r.heap_len]=c<2?++c:0,t[l*2]=1,r.depth[l]=0,r.opt_len--,n&&(r.static_len-=i[l*2+1]);for(e.max_code=c,a=r.heap_len>>1;a>=1;a--)cd(r,t,a);l=s;do a=r.heap[1],r.heap[1]=r.heap[r.heap_len--],cd(r,t,1),o=r.heap[1],r.heap[--r.heap_max]=a,r.heap[--r.heap_max]=o,t[l*2]=t[a*2]+t[o*2],r.depth[l]=(r.depth[a]>=r.depth[o]?r.depth[a]:r.depth[o])+1,t[a*2+1]=t[o*2+1]=l,r.heap[1]=l++,cd(r,t,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],P1(r,e),T0(t,c,r.bl_count);}function u0(r,e,t){var i,n=-1,s,a=e[1],o=0,c=7,l=4;for(a===0&&(c=138,l=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)s=a,a=e[(i+1)*2+1],!(++o<c&&s===a)&&(o<l?r.bl_tree[s*2]+=o:s!==0?(s!==n&&r.bl_tree[s*2]++,r.bl_tree[m0*2]++):o<=10?r.bl_tree[g0*2]++:r.bl_tree[y0*2]++,o=0,n=s,a===0?(c=138,l=3):s===a?(c=6,l=3):(c=7,l=4));}function d0(r,e,t){var i,n=-1,s,a=e[1],o=0,c=7,l=4;for(a===0&&(c=138,l=3),i=0;i<=t;i++)if(s=a,a=e[(i+1)*2+1],!(++o<c&&s===a)){if(o<l)do Vr(r,s,r.bl_tree);while(--o!==0);else s!==0?(s!==n&&(Vr(r,s,r.bl_tree),o--),Vr(r,m0,r.bl_tree),tr(r,o-3,2)):o<=10?(Vr(r,g0,r.bl_tree),tr(r,o-3,3)):(Vr(r,y0,r.bl_tree),tr(r,o-11,7));o=0,n=s,a===0?(c=138,l=3):s===a?(c=6,l=3):(c=7,l=4);}}function F1(r){var e;for(u0(r,r.dyn_ltree,r.l_desc.max_code),u0(r,r.dyn_dtree,r.d_desc.max_code),dd(r,r.bl_desc),e=fd-1;e>=3&&r.bl_tree[v0[e]*2+1]===0;e--);return r.opt_len+=3*(e+1)+5+5+4,e}function N1(r,e,t,i){var n;for(tr(r,e-257,5),tr(r,t-1,5),tr(r,i-4,4),n=0;n<i;n++)tr(r,r.bl_tree[v0[n]*2+1],3);d0(r,r.dyn_ltree,e-1),d0(r,r.dyn_dtree,t-1);}function B1(r){var e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&r.dyn_ltree[t*2]!==0)return a0;if(r.dyn_ltree[18]!==0||r.dyn_ltree[20]!==0||r.dyn_ltree[26]!==0)return o0;for(t=32;t<Ba;t++)if(r.dyn_ltree[t*2]!==0)return o0;return a0}var h0=false;function U1(r){h0||(M1(),h0=true),r.l_desc=new ld(r.dyn_ltree,x0),r.d_desc=new ld(r.dyn_dtree,E0),r.bl_desc=new ld(r.bl_tree,b0),r.bi_buf=0,r.bi_valid=0,w0(r);}function k0(r,e,t,i){tr(r,(w1<<1)+(i?1:0),3),O1(r,e,t);}function $1(r){tr(r,f0<<1,3),Vr(r,pd,xi),D1(r);}function z1(r,e,t,i){var n,s,a=0;r.level>0?(r.strm.data_type===T1&&(r.strm.data_type=B1(r)),dd(r,r.l_desc),dd(r,r.d_desc),a=F1(r),n=r.opt_len+3+7>>>3,s=r.static_len+3+7>>>3,s<=n&&(n=s)):n=s=t+5,t+4<=n&&e!==-1?k0(r,e,t,i):r.strategy===_1||s===n?(tr(r,(f0<<1)+(i?1:0),3),c0(r,xi,Pa)):(tr(r,(A1<<1)+(i?1:0),3),N1(r,r.l_desc.max_code+1,r.d_desc.max_code+1,a+1),c0(r,r.dyn_ltree,r.dyn_dtree)),w0(r),i&&A0(r);}function G1(r,e,t){return r.pending_buf[r.d_buf+r.last_lit*2]=e>>>8&255,r.pending_buf[r.d_buf+r.last_lit*2+1]=e&255,r.pending_buf[r.l_buf+r.last_lit]=t&255,r.last_lit++,e===0?r.dyn_ltree[t*2]++:(r.matches++,e--,r.dyn_ltree[(Fa[t]+Ba+1)*2]++,r.dyn_dtree[S0(e)*2]++),r.last_lit===r.lit_bufsize-1}fs._tr_init=U1;fs._tr_stored_block=k0;fs._tr_flush_block=z1;fs._tr_tally=G1;fs._tr_align=$1;});var gd=ae((LB,L0)=>{function H1(r,e,t,i){for(var n=r&65535|0,s=r>>>16&65535|0,a=0;t!==0;){a=t>2e3?2e3:t,t-=a;do n=n+e[i++]|0,s=s+n|0;while(--a);n%=65521,s%=65521;}return n|s<<16|0}L0.exports=H1;});var yd=ae((RB,R0)=>{function K1(){for(var r,e=[],t=0;t<256;t++){r=t;for(var i=0;i<8;i++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r;}return e}var V1=K1();function j1(r,e,t,i){var n=V1,s=i+t;r^=-1;for(var a=i;a<s;a++)r=r>>>8^n[(r^e[a])&255];return r^-1}R0.exports=j1;});var gl=ae((CB,C0)=>{C0.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};});var $0=ae(qr=>{var qt=vi(),Er=I0(),O0=gd(),Vi=yd(),W1=gl(),_n=0,q1=1,Y1=3,Zi=4,D0=5,Wr=0,P0=1,br=-2,Z1=-3,vd=-5,X1=-1,J1=1,yl=2,Q1=3,eA=4,tA=0,rA=2,bl=8,iA=9,nA=15,sA=8,aA=29,oA=256,Ed=oA+1+aA,lA=30,cA=19,uA=2*Ed+1,dA=15,Ge=3,qi=258,Rr=qi+Ge+1,hA=32,Sl=42,bd=69,vl=73,xl=91,El=103,En=113,$a=666,Tt=1,za=2,bn=3,gs=4,fA=3;function Yi(r,e){return r.msg=W1[e],e}function M0(r){return (r<<1)-(r>4?9:0)}function Wi(r){for(var e=r.length;--e>=0;)r[e]=0;}function ji(r){var e=r.state,t=e.pending;t>r.avail_out&&(t=r.avail_out),t!==0&&(qt.arraySet(r.output,e.pending_buf,e.pending_out,t,r.next_out),r.next_out+=t,e.pending_out+=t,r.total_out+=t,r.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0));}function Ft(r,e){Er._tr_flush_block(r,r.block_start>=0?r.block_start:-1,r.strstart-r.block_start,e),r.block_start=r.strstart,ji(r.strm);}function Ke(r,e){r.pending_buf[r.pending++]=e;}function Ua(r,e){r.pending_buf[r.pending++]=e>>>8&255,r.pending_buf[r.pending++]=e&255;}function pA(r,e,t,i){var n=r.avail_in;return n>i&&(n=i),n===0?0:(r.avail_in-=n,qt.arraySet(e,r.input,r.next_in,n,t),r.state.wrap===1?r.adler=O0(r.adler,e,n,t):r.state.wrap===2&&(r.adler=Vi(r.adler,e,n,t)),r.next_in+=n,r.total_in+=n,n)}function F0(r,e){var t=r.max_chain_length,i=r.strstart,n,s,a=r.prev_length,o=r.nice_match,c=r.strstart>r.w_size-Rr?r.strstart-(r.w_size-Rr):0,l=r.window,u=r.w_mask,d=r.prev,h=r.strstart+qi,f=l[i+a-1],p=l[i+a];r.prev_length>=r.good_match&&(t>>=2),o>r.lookahead&&(o=r.lookahead);do if(n=e,!(l[n+a]!==p||l[n+a-1]!==f||l[n]!==l[i]||l[++n]!==l[i+1])){i+=2,n++;do;while(l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&i<h);if(s=qi-(h-i),i=h-qi,s>a){if(r.match_start=e,a=s,s>=o)break;f=l[i+a-1],p=l[i+a];}}while((e=d[e&u])>c&&--t!==0);return a<=r.lookahead?a:r.lookahead}function Sn(r){var e=r.w_size,t,i,n,s,a;do{if(s=r.window_size-r.lookahead-r.strstart,r.strstart>=e+(e-Rr)){qt.arraySet(r.window,r.window,e,e,0),r.match_start-=e,r.strstart-=e,r.block_start-=e,i=r.hash_size,t=i;do n=r.head[--t],r.head[t]=n>=e?n-e:0;while(--i);i=e,t=i;do n=r.prev[--t],r.prev[t]=n>=e?n-e:0;while(--i);s+=e;}if(r.strm.avail_in===0)break;if(i=pA(r.strm,r.window,r.strstart+r.lookahead,s),r.lookahead+=i,r.lookahead+r.insert>=Ge)for(a=r.strstart-r.insert,r.ins_h=r.window[a],r.ins_h=(r.ins_h<<r.hash_shift^r.window[a+1])&r.hash_mask;r.insert&&(r.ins_h=(r.ins_h<<r.hash_shift^r.window[a+Ge-1])&r.hash_mask,r.prev[a&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=a,a++,r.insert--,!(r.lookahead+r.insert<Ge)););}while(r.lookahead<Rr&&r.strm.avail_in!==0)}function mA(r,e){var t=65535;for(t>r.pending_buf_size-5&&(t=r.pending_buf_size-5);;){if(r.lookahead<=1){if(Sn(r),r.lookahead===0&&e===_n)return Tt;if(r.lookahead===0)break}r.strstart+=r.lookahead,r.lookahead=0;var i=r.block_start+t;if((r.strstart===0||r.strstart>=i)&&(r.lookahead=r.strstart-i,r.strstart=i,Ft(r,false),r.strm.avail_out===0)||r.strstart-r.block_start>=r.w_size-Rr&&(Ft(r,false),r.strm.avail_out===0))return Tt}return r.insert=0,e===Zi?(Ft(r,true),r.strm.avail_out===0?bn:gs):(r.strstart>r.block_start&&(Ft(r,false),r.strm.avail_out===0),Tt)}function xd(r,e){for(var t,i;;){if(r.lookahead<Rr){if(Sn(r),r.lookahead<Rr&&e===_n)return Tt;if(r.lookahead===0)break}if(t=0,r.lookahead>=Ge&&(r.ins_h=(r.ins_h<<r.hash_shift^r.window[r.strstart+Ge-1])&r.hash_mask,t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),t!==0&&r.strstart-t<=r.w_size-Rr&&(r.match_length=F0(r,t)),r.match_length>=Ge)if(i=Er._tr_tally(r,r.strstart-r.match_start,r.match_length-Ge),r.lookahead-=r.match_length,r.match_length<=r.max_lazy_match&&r.lookahead>=Ge){r.match_length--;do r.strstart++,r.ins_h=(r.ins_h<<r.hash_shift^r.window[r.strstart+Ge-1])&r.hash_mask,t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart;while(--r.match_length!==0);r.strstart++;}else r.strstart+=r.match_length,r.match_length=0,r.ins_h=r.window[r.strstart],r.ins_h=(r.ins_h<<r.hash_shift^r.window[r.strstart+1])&r.hash_mask;else i=Er._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++;if(i&&(Ft(r,false),r.strm.avail_out===0))return Tt}return r.insert=r.strstart<Ge-1?r.strstart:Ge-1,e===Zi?(Ft(r,true),r.strm.avail_out===0?bn:gs):r.last_lit&&(Ft(r,false),r.strm.avail_out===0)?Tt:za}function ps(r,e){for(var t,i,n;;){if(r.lookahead<Rr){if(Sn(r),r.lookahead<Rr&&e===_n)return Tt;if(r.lookahead===0)break}if(t=0,r.lookahead>=Ge&&(r.ins_h=(r.ins_h<<r.hash_shift^r.window[r.strstart+Ge-1])&r.hash_mask,t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),r.prev_length=r.match_length,r.prev_match=r.match_start,r.match_length=Ge-1,t!==0&&r.prev_length<r.max_lazy_match&&r.strstart-t<=r.w_size-Rr&&(r.match_length=F0(r,t),r.match_length<=5&&(r.strategy===J1||r.match_length===Ge&&r.strstart-r.match_start>4096)&&(r.match_length=Ge-1)),r.prev_length>=Ge&&r.match_length<=r.prev_length){n=r.strstart+r.lookahead-Ge,i=Er._tr_tally(r,r.strstart-1-r.prev_match,r.prev_length-Ge),r.lookahead-=r.prev_length-1,r.prev_length-=2;do++r.strstart<=n&&(r.ins_h=(r.ins_h<<r.hash_shift^r.window[r.strstart+Ge-1])&r.hash_mask,t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart);while(--r.prev_length!==0);if(r.match_available=0,r.match_length=Ge-1,r.strstart++,i&&(Ft(r,false),r.strm.avail_out===0))return Tt}else if(r.match_available){if(i=Er._tr_tally(r,0,r.window[r.strstart-1]),i&&Ft(r,false),r.strstart++,r.lookahead--,r.strm.avail_out===0)return Tt}else r.match_available=1,r.strstart++,r.lookahead--;}return r.match_available&&(i=Er._tr_tally(r,0,r.window[r.strstart-1]),r.match_available=0),r.insert=r.strstart<Ge-1?r.strstart:Ge-1,e===Zi?(Ft(r,true),r.strm.avail_out===0?bn:gs):r.last_lit&&(Ft(r,false),r.strm.avail_out===0)?Tt:za}function gA(r,e){for(var t,i,n,s,a=r.window;;){if(r.lookahead<=qi){if(Sn(r),r.lookahead<=qi&&e===_n)return Tt;if(r.lookahead===0)break}if(r.match_length=0,r.lookahead>=Ge&&r.strstart>0&&(n=r.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){s=r.strstart+qi;do;while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);r.match_length=qi-(s-n),r.match_length>r.lookahead&&(r.match_length=r.lookahead);}if(r.match_length>=Ge?(t=Er._tr_tally(r,1,r.match_length-Ge),r.lookahead-=r.match_length,r.strstart+=r.match_length,r.match_length=0):(t=Er._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++),t&&(Ft(r,false),r.strm.avail_out===0))return Tt}return r.insert=0,e===Zi?(Ft(r,true),r.strm.avail_out===0?bn:gs):r.last_lit&&(Ft(r,false),r.strm.avail_out===0)?Tt:za}function yA(r,e){for(var t;;){if(r.lookahead===0&&(Sn(r),r.lookahead===0)){if(e===_n)return Tt;break}if(r.match_length=0,t=Er._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++,t&&(Ft(r,false),r.strm.avail_out===0))return Tt}return r.insert=0,e===Zi?(Ft(r,true),r.strm.avail_out===0?bn:gs):r.last_lit&&(Ft(r,false),r.strm.avail_out===0)?Tt:za}function jr(r,e,t,i,n){this.good_length=r,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=n;}var ms;ms=[new jr(0,0,0,0,mA),new jr(4,4,8,4,xd),new jr(4,5,16,8,xd),new jr(4,6,32,32,xd),new jr(4,4,16,16,ps),new jr(8,16,32,32,ps),new jr(8,16,128,128,ps),new jr(8,32,128,256,ps),new jr(32,128,258,1024,ps),new jr(32,258,258,4096,ps)];function vA(r){r.window_size=2*r.w_size,Wi(r.head),r.max_lazy_match=ms[r.level].max_lazy,r.good_match=ms[r.level].good_length,r.nice_match=ms[r.level].nice_length,r.max_chain_length=ms[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=Ge-1,r.match_available=0,r.ins_h=0;}function xA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=bl,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new qt.Buf16(uA*2),this.dyn_dtree=new qt.Buf16((2*lA+1)*2),this.bl_tree=new qt.Buf16((2*cA+1)*2),Wi(this.dyn_ltree),Wi(this.dyn_dtree),Wi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new qt.Buf16(dA+1),this.heap=new qt.Buf16(2*Ed+1),Wi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new qt.Buf16(2*Ed+1),Wi(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}function N0(r){var e;return !r||!r.state?Yi(r,br):(r.total_in=r.total_out=0,r.data_type=rA,e=r.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?Sl:En,r.adler=e.wrap===2?0:1,e.last_flush=_n,Er._tr_init(e),Wr)}function B0(r){var e=N0(r);return e===Wr&&vA(r.state),e}function EA(r,e){return !r||!r.state||r.state.wrap!==2?br:(r.state.gzhead=e,Wr)}function U0(r,e,t,i,n,s){if(!r)return br;var a=1;if(e===X1&&(e=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>iA||t!==bl||i<8||i>15||e<0||e>9||s<0||s>eA)return Yi(r,br);i===8&&(i=9);var o=new xA;return r.state=o,o.strm=r,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+Ge-1)/Ge),o.window=new qt.Buf8(o.w_size*2),o.head=new qt.Buf16(o.hash_size),o.prev=new qt.Buf16(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new qt.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=s,o.method=t,B0(r)}function bA(r,e){return U0(r,e,bl,nA,sA,tA)}function SA(r,e){var t,i,n,s;if(!r||!r.state||e>D0||e<0)return r?Yi(r,br):br;if(i=r.state,!r.output||!r.input&&r.avail_in!==0||i.status===$a&&e!==Zi)return Yi(r,r.avail_out===0?vd:br);if(i.strm=r,t=i.last_flush,i.last_flush=e,i.status===Sl)if(i.wrap===2)r.adler=0,Ke(i,31),Ke(i,139),Ke(i,8),i.gzhead?(Ke(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Ke(i,i.gzhead.time&255),Ke(i,i.gzhead.time>>8&255),Ke(i,i.gzhead.time>>16&255),Ke(i,i.gzhead.time>>24&255),Ke(i,i.level===9?2:i.strategy>=yl||i.level<2?4:0),Ke(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Ke(i,i.gzhead.extra.length&255),Ke(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(r.adler=Vi(r.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=bd):(Ke(i,0),Ke(i,0),Ke(i,0),Ke(i,0),Ke(i,0),Ke(i,i.level===9?2:i.strategy>=yl||i.level<2?4:0),Ke(i,fA),i.status=En);else {var a=bl+(i.w_bits-8<<4)<<8,o=-1;i.strategy>=yl||i.level<2?o=0:i.level<6?o=1:i.level===6?o=2:o=3,a|=o<<6,i.strstart!==0&&(a|=hA),a+=31-a%31,i.status=En,Ua(i,a),i.strstart!==0&&(Ua(i,r.adler>>>16),Ua(i,r.adler&65535)),r.adler=1;}if(i.status===bd)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),ji(r),n=i.pending,i.pending===i.pending_buf_size));)Ke(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=vl);}else i.status=vl;if(i.status===vl)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),ji(r),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindex<i.gzhead.name.length?s=i.gzhead.name.charCodeAt(i.gzindex++)&255:s=0,Ke(i,s);}while(s!==0);i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.gzindex=0,i.status=xl);}else i.status=xl;if(i.status===xl)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),ji(r),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindex<i.gzhead.comment.length?s=i.gzhead.comment.charCodeAt(i.gzindex++)&255:s=0,Ke(i,s);}while(s!==0);i.gzhead.hcrc&&i.pending>n&&(r.adler=Vi(r.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.status=El);}else i.status=El;if(i.status===El&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&ji(r),i.pending+2<=i.pending_buf_size&&(Ke(i,r.adler&255),Ke(i,r.adler>>8&255),r.adler=0,i.status=En)):i.status=En),i.pending!==0){if(ji(r),r.avail_out===0)return i.last_flush=-1,Wr}else if(r.avail_in===0&&M0(e)<=M0(t)&&e!==Zi)return Yi(r,vd);if(i.status===$a&&r.avail_in!==0)return Yi(r,vd);if(r.avail_in!==0||i.lookahead!==0||e!==_n&&i.status!==$a){var c=i.strategy===yl?yA(i,e):i.strategy===Q1?gA(i,e):ms[i.level].func(i,e);if((c===bn||c===gs)&&(i.status=$a),c===Tt||c===bn)return r.avail_out===0&&(i.last_flush=-1),Wr;if(c===za&&(e===q1?Er._tr_align(i):e!==D0&&(Er._tr_stored_block(i,0,0,false),e===Y1&&(Wi(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),ji(r),r.avail_out===0))return i.last_flush=-1,Wr}return e!==Zi?Wr:i.wrap<=0?P0:(i.wrap===2?(Ke(i,r.adler&255),Ke(i,r.adler>>8&255),Ke(i,r.adler>>16&255),Ke(i,r.adler>>24&255),Ke(i,r.total_in&255),Ke(i,r.total_in>>8&255),Ke(i,r.total_in>>16&255),Ke(i,r.total_in>>24&255)):(Ua(i,r.adler>>>16),Ua(i,r.adler&65535)),ji(r),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?Wr:P0)}function _A(r){var e;return !r||!r.state?br:(e=r.state.status,e!==Sl&&e!==bd&&e!==vl&&e!==xl&&e!==El&&e!==En&&e!==$a?Yi(r,br):(r.state=null,e===En?Yi(r,Z1):Wr))}function TA(r,e){var t=e.length,i,n,s,a,o,c,l,u;if(!r||!r.state||(i=r.state,a=i.wrap,a===2||a===1&&i.status!==Sl||i.lookahead))return br;for(a===1&&(r.adler=O0(r.adler,e,t,0)),i.wrap=0,t>=i.w_size&&(a===0&&(Wi(i.head),i.strstart=0,i.block_start=0,i.insert=0),u=new qt.Buf8(i.w_size),qt.arraySet(u,e,t-i.w_size,i.w_size,0),e=u,t=i.w_size),o=r.avail_in,c=r.next_in,l=r.input,r.avail_in=t,r.next_in=0,r.input=e,Sn(i);i.lookahead>=Ge;){n=i.strstart,s=i.lookahead-(Ge-1);do i.ins_h=(i.ins_h<<i.hash_shift^i.window[n+Ge-1])&i.hash_mask,i.prev[n&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=n,n++;while(--s);i.strstart=n,i.lookahead=Ge-1,Sn(i);}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Ge-1,i.match_available=0,r.next_in=c,r.input=l,r.avail_in=o,i.wrap=a,Wr}qr.deflateInit=bA;qr.deflateInit2=U0;qr.deflateReset=B0;qr.deflateResetKeep=N0;qr.deflateSetHeader=EA;qr.deflate=SA;qr.deflateEnd=_A;qr.deflateSetDictionary=TA;qr.deflateInfo="pako deflate (from Nodeca project)";});var Sd=ae(ys=>{var _l=vi(),z0=true,G0=true;try{String.fromCharCode.apply(null,[0]);}catch{z0=false;}try{String.fromCharCode.apply(null,new Uint8Array(1));}catch{G0=false;}var Ga=new _l.Buf8(256);for(Ei=0;Ei<256;Ei++)Ga[Ei]=Ei>=252?6:Ei>=248?5:Ei>=240?4:Ei>=224?3:Ei>=192?2:1;var Ei;Ga[254]=Ga[254]=1;ys.string2buf=function(r){var e,t,i,n,s,a=r.length,o=0;for(n=0;n<a;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),o+=t<128?1:t<2048?2:t<65536?3:4;for(e=new _l.Buf8(o),s=0,n=0;s<o;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),t<128?e[s++]=t:t<2048?(e[s++]=192|t>>>6,e[s++]=128|t&63):t<65536?(e[s++]=224|t>>>12,e[s++]=128|t>>>6&63,e[s++]=128|t&63):(e[s++]=240|t>>>18,e[s++]=128|t>>>12&63,e[s++]=128|t>>>6&63,e[s++]=128|t&63);return e};function H0(r,e){if(e<65534&&(r.subarray&&G0||!r.subarray&&z0))return String.fromCharCode.apply(null,_l.shrinkBuf(r,e));for(var t="",i=0;i<e;i++)t+=String.fromCharCode(r[i]);return t}ys.buf2binstring=function(r){return H0(r,r.length)};ys.binstring2buf=function(r){for(var e=new _l.Buf8(r.length),t=0,i=e.length;t<i;t++)e[t]=r.charCodeAt(t);return e};ys.buf2string=function(r,e){var t,i,n,s,a=e||r.length,o=new Array(a*2);for(i=0,t=0;t<a;){if(n=r[t++],n<128){o[i++]=n;continue}if(s=Ga[n],s>4){o[i++]=65533,t+=s-1;continue}for(n&=s===2?31:s===3?15:7;s>1&&t<a;)n=n<<6|r[t++]&63,s--;if(s>1){o[i++]=65533;continue}n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|n&1023);}return H0(o,i)};ys.utf8border=function(r,e){var t;for(e=e||r.length,e>r.length&&(e=r.length),t=e-1;t>=0&&(r[t]&192)===128;)t--;return t<0||t===0?e:t+Ga[r[t]]>e?t:e};});var _d=ae((MB,K0)=>{function wA(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;}K0.exports=wA;});var q0=ae(Va=>{var Ha=$0(),Ka=vi(),wd=Sd(),Ad=gl(),AA=_d(),W0=Object.prototype.toString,kA=0,Td=4,vs=0,V0=1,j0=2,IA=-1,LA=0,RA=8;function Tn(r){if(!(this instanceof Tn))return new Tn(r);this.options=Ka.assign({level:IA,method:RA,chunkSize:16384,windowBits:15,memLevel:8,strategy:LA,to:""},r||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=false,this.chunks=[],this.strm=new AA,this.strm.avail_out=0;var t=Ha.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==vs)throw new Error(Ad[t]);if(e.header&&Ha.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(typeof e.dictionary=="string"?i=wd.string2buf(e.dictionary):W0.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=Ha.deflateSetDictionary(this.strm,i),t!==vs)throw new Error(Ad[t]);this._dict_set=true;}}Tn.prototype.push=function(r,e){var t=this.strm,i=this.options.chunkSize,n,s;if(this.ended)return false;s=e===~~e?e:e===true?Td:kA,typeof r=="string"?t.input=wd.string2buf(r):W0.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new Ka.Buf8(i),t.next_out=0,t.avail_out=i),n=Ha.deflate(t,s),n!==V0&&n!==vs)return this.onEnd(n),this.ended=true,false;(t.avail_out===0||t.avail_in===0&&(s===Td||s===j0))&&(this.options.to==="string"?this.onData(wd.buf2binstring(Ka.shrinkBuf(t.output,t.next_out))):this.onData(Ka.shrinkBuf(t.output,t.next_out)));}while((t.avail_in>0||t.avail_out===0)&&n!==V0);return s===Td?(n=Ha.deflateEnd(this.strm),this.onEnd(n),this.ended=true,n===vs):(s===j0&&(this.onEnd(vs),t.avail_out=0),true)};Tn.prototype.onData=function(r){this.chunks.push(r);};Tn.prototype.onEnd=function(r){r===vs&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ka.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg;};function kd(r,e){var t=new Tn(e);if(t.push(r,true),t.err)throw t.msg||Ad[t.err];return t.result}function CA(r,e){return e=e||{},e.raw=true,kd(r,e)}function DA(r,e){return e=e||{},e.gzip=true,kd(r,e)}Va.Deflate=Tn;Va.deflate=kd;Va.deflateRaw=CA;Va.gzip=DA;});var Z0=ae((FB,Y0)=>{var Tl=30,PA=12;Y0.exports=function(e,t){var i,n,s,a,o,c,l,u,d,h,f,p,g,m,y,v,E,b,S,I,T,w,A,_,k;i=e.state,n=e.next_in,_=e.input,s=n+(e.avail_in-5),a=e.next_out,k=e.output,o=a-(t-e.avail_out),c=a+(e.avail_out-257),l=i.dmax,u=i.wsize,d=i.whave,h=i.wnext,f=i.window,p=i.hold,g=i.bits,m=i.lencode,y=i.distcode,v=(1<<i.lenbits)-1,E=(1<<i.distbits)-1;e:do{g<15&&(p+=_[n++]<<g,g+=8,p+=_[n++]<<g,g+=8),b=m[p&v];t:for(;;){if(S=b>>>24,p>>>=S,g-=S,S=b>>>16&255,S===0)k[a++]=b&65535;else if(S&16){I=b&65535,S&=15,S&&(g<S&&(p+=_[n++]<<g,g+=8),I+=p&(1<<S)-1,p>>>=S,g-=S),g<15&&(p+=_[n++]<<g,g+=8,p+=_[n++]<<g,g+=8),b=y[p&E];r:for(;;){if(S=b>>>24,p>>>=S,g-=S,S=b>>>16&255,S&16){if(T=b&65535,S&=15,g<S&&(p+=_[n++]<<g,g+=8,g<S&&(p+=_[n++]<<g,g+=8)),T+=p&(1<<S)-1,T>l){e.msg="invalid distance too far back",i.mode=Tl;break e}if(p>>>=S,g-=S,S=a-o,T>S){if(S=T-S,S>d&&i.sane){e.msg="invalid distance too far back",i.mode=Tl;break e}if(w=0,A=f,h===0){if(w+=u-S,S<I){I-=S;do k[a++]=f[w++];while(--S);w=a-T,A=k;}}else if(h<S){if(w+=u+h-S,S-=h,S<I){I-=S;do k[a++]=f[w++];while(--S);if(w=0,h<I){S=h,I-=S;do k[a++]=f[w++];while(--S);w=a-T,A=k;}}}else if(w+=h-S,S<I){I-=S;do k[a++]=f[w++];while(--S);w=a-T,A=k;}for(;I>2;)k[a++]=A[w++],k[a++]=A[w++],k[a++]=A[w++],I-=3;I&&(k[a++]=A[w++],I>1&&(k[a++]=A[w++]));}else {w=a-T;do k[a++]=k[w++],k[a++]=k[w++],k[a++]=k[w++],I-=3;while(I>2);I&&(k[a++]=k[w++],I>1&&(k[a++]=k[w++]));}}else if((S&64)===0){b=y[(b&65535)+(p&(1<<S)-1)];continue r}else {e.msg="invalid distance code",i.mode=Tl;break e}break}}else if((S&64)===0){b=m[(b&65535)+(p&(1<<S)-1)];continue t}else if(S&32){i.mode=PA;break e}else {e.msg="invalid literal/length code",i.mode=Tl;break e}break}}while(n<s&&a<c);I=g>>3,n-=I,g-=I<<3,p&=(1<<g)-1,e.next_in=n,e.next_out=a,e.avail_in=n<s?5+(s-n):5-(n-s),e.avail_out=a<c?257+(c-a):257-(a-c),i.hold=p,i.bits=g;};});var iy=ae((NB,ry)=>{var X0=vi(),xs=15,J0=852,Q0=592,ey=0,Id=1,ty=2,MA=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],OA=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],FA=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],NA=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];ry.exports=function(e,t,i,n,s,a,o,c){var l=c.bits,u=0,d=0,h=0,f=0,p=0,g=0,m=0,y=0,v=0,E=0,b,S,I,T,w,A=null,_=0,k,L=new X0.Buf16(xs+1),C=new X0.Buf16(xs+1),N=null,B=0,F,G,M;for(u=0;u<=xs;u++)L[u]=0;for(d=0;d<n;d++)L[t[i+d]]++;for(p=l,f=xs;f>=1&&L[f]===0;f--);if(p>f&&(p=f),f===0)return s[a++]=1<<24|64<<16|0,s[a++]=1<<24|64<<16|0,c.bits=1,0;for(h=1;h<f&&L[h]===0;h++);for(p<h&&(p=h),y=1,u=1;u<=xs;u++)if(y<<=1,y-=L[u],y<0)return -1;if(y>0&&(e===ey||f!==1))return -1;for(C[1]=0,u=1;u<xs;u++)C[u+1]=C[u]+L[u];for(d=0;d<n;d++)t[i+d]!==0&&(o[C[t[i+d]]++]=d);if(e===ey?(A=N=o,k=19):e===Id?(A=MA,_-=257,N=OA,B-=257,k=256):(A=FA,N=NA,k=-1),E=0,d=0,u=h,w=a,g=p,m=0,I=-1,v=1<<p,T=v-1,e===Id&&v>J0||e===ty&&v>Q0)return 1;for(;;){F=u-m,o[d]<k?(G=0,M=o[d]):o[d]>k?(G=N[B+o[d]],M=A[_+o[d]]):(G=96,M=0),b=1<<u-m,S=1<<g,h=S;do S-=b,s[w+(E>>m)+S]=F<<24|G<<16|M|0;while(S!==0);for(b=1<<u-1;E&b;)b>>=1;if(b!==0?(E&=b-1,E+=b):E=0,d++,--L[u]===0){if(u===f)break;u=t[i+o[d]];}if(u>p&&(E&T)!==I){for(m===0&&(m=p),w+=h,g=u-m,y=1<<g;g+m<f&&(y-=L[g+m],!(y<=0));)g++,y<<=1;if(v+=1<<g,e===Id&&v>J0||e===ty&&v>Q0)return 1;I=E&T,s[I]=p<<24|g<<16|w-a|0;}}return E!==0&&(s[w+E]=u-m<<24|64<<16|0),c.bits=p,0};});var By=ae(Cr=>{var cr=vi(),Md=gd(),Yr=yd(),BA=Z0(),ja=iy(),UA=0,Ly=1,Ry=2,ny=4,$A=5,wl=6,wn=0,zA=1,GA=2,Sr=-2,Cy=-3,Od=-4,HA=-5,sy=8,Dy=1,ay=2,oy=3,ly=4,cy=5,uy=6,dy=7,hy=8,fy=9,py=10,Il=11,bi=12,Ld=13,my=14,Rd=15,gy=16,yy=17,vy=18,xy=19,Al=20,kl=21,Ey=22,by=23,Sy=24,_y=25,Ty=26,Cd=27,wy=28,Ay=29,at=30,Fd=31,KA=32,VA=852,jA=592,WA=15,qA=WA;function ky(r){return (r>>>24&255)+(r>>>8&65280)+((r&65280)<<8)+((r&255)<<24)}function YA(){this.mode=0,this.last=false,this.wrap=0,this.havedict=false,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new cr.Buf16(320),this.work=new cr.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function Py(r){var e;return !r||!r.state?Sr:(e=r.state,r.total_in=r.total_out=e.total=0,r.msg="",e.wrap&&(r.adler=e.wrap&1),e.mode=Dy,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new cr.Buf32(VA),e.distcode=e.distdyn=new cr.Buf32(jA),e.sane=1,e.back=-1,wn)}function My(r){var e;return !r||!r.state?Sr:(e=r.state,e.wsize=0,e.whave=0,e.wnext=0,Py(r))}function Oy(r,e){var t,i;return !r||!r.state||(i=r.state,e<0?(t=0,e=-e):(t=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?Sr:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,My(r))}function Fy(r,e){var t,i;return r?(i=new YA,r.state=i,i.window=null,t=Oy(r,e),t!==wn&&(r.state=null),t):Sr}function ZA(r){return Fy(r,qA)}var Iy=true,Dd,Pd;function XA(r){if(Iy){var e;for(Dd=new cr.Buf32(512),Pd=new cr.Buf32(32),e=0;e<144;)r.lens[e++]=8;for(;e<256;)r.lens[e++]=9;for(;e<280;)r.lens[e++]=7;for(;e<288;)r.lens[e++]=8;for(ja(Ly,r.lens,0,288,Dd,0,r.work,{bits:9}),e=0;e<32;)r.lens[e++]=5;ja(Ry,r.lens,0,32,Pd,0,r.work,{bits:5}),Iy=false;}r.lencode=Dd,r.lenbits=9,r.distcode=Pd,r.distbits=5;}function Ny(r,e,t,i){var n,s=r.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new cr.Buf8(s.wsize)),i>=s.wsize?(cr.arraySet(s.window,e,t-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),cr.arraySet(s.window,e,t-i,n,s.wnext),i-=n,i?(cr.arraySet(s.window,e,t-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0}function JA(r,e){var t,i,n,s,a,o,c,l,u,d,h,f,p,g,m=0,y,v,E,b,S,I,T,w,A=new cr.Buf8(4),_,k,L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!r||!r.state||!r.output||!r.input&&r.avail_in!==0)return Sr;t=r.state,t.mode===bi&&(t.mode=Ld),a=r.next_out,n=r.output,c=r.avail_out,s=r.next_in,i=r.input,o=r.avail_in,l=t.hold,u=t.bits,d=o,h=c,w=wn;e:for(;;)switch(t.mode){case Dy:if(t.wrap===0){t.mode=Ld;break}for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.wrap&2&&l===35615){t.check=0,A[0]=l&255,A[1]=l>>>8&255,t.check=Yr(t.check,A,2,0),l=0,u=0,t.mode=ay;break}if(t.flags=0,t.head&&(t.head.done=false),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){r.msg="incorrect header check",t.mode=at;break}if((l&15)!==sy){r.msg="unknown compression method",t.mode=at;break}if(l>>>=4,u-=4,T=(l&15)+8,t.wbits===0)t.wbits=T;else if(T>t.wbits){r.msg="invalid window size",t.mode=at;break}t.dmax=1<<T,r.adler=t.check=1,t.mode=l&512?py:bi,l=0,u=0;break;case ay:for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.flags=l,(t.flags&255)!==sy){r.msg="unknown compression method",t.mode=at;break}if(t.flags&57344){r.msg="unknown header flags set",t.mode=at;break}t.head&&(t.head.text=l>>8&1),t.flags&512&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Yr(t.check,A,2,0)),l=0,u=0,t.mode=oy;case oy:for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.head&&(t.head.time=l),t.flags&512&&(A[0]=l&255,A[1]=l>>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,t.check=Yr(t.check,A,4,0)),l=0,u=0,t.mode=ly;case ly:for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.head&&(t.head.xflags=l&255,t.head.os=l>>8),t.flags&512&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Yr(t.check,A,2,0)),l=0,u=0,t.mode=cy;case cy:if(t.flags&1024){for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.length=l,t.head&&(t.head.extra_len=l),t.flags&512&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Yr(t.check,A,2,0)),l=0,u=0;}else t.head&&(t.head.extra=null);t.mode=uy;case uy:if(t.flags&1024&&(f=t.length,f>o&&(f=o),f&&(t.head&&(T=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),cr.arraySet(t.head.extra,i,s,f,T)),t.flags&512&&(t.check=Yr(t.check,i,f,s)),o-=f,s+=f,t.length-=f),t.length))break e;t.length=0,t.mode=dy;case dy:if(t.flags&2048){if(o===0)break e;f=0;do T=i[s+f++],t.head&&T&&t.length<65536&&(t.head.name+=String.fromCharCode(T));while(T&&f<o);if(t.flags&512&&(t.check=Yr(t.check,i,f,s)),o-=f,s+=f,T)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=hy;case hy:if(t.flags&4096){if(o===0)break e;f=0;do T=i[s+f++],t.head&&T&&t.length<65536&&(t.head.comment+=String.fromCharCode(T));while(T&&f<o);if(t.flags&512&&(t.check=Yr(t.check,i,f,s)),o-=f,s+=f,T)break e}else t.head&&(t.head.comment=null);t.mode=fy;case fy:if(t.flags&512){for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(l!==(t.check&65535)){r.msg="header crc mismatch",t.mode=at;break}l=0,u=0;}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=true),r.adler=t.check=0,t.mode=bi;break;case py:for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}r.adler=t.check=ky(l),l=0,u=0,t.mode=Il;case Il:if(t.havedict===0)return r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,GA;r.adler=t.check=1,t.mode=bi;case bi:if(e===$A||e===wl)break e;case Ld:if(t.last){l>>>=u&7,u-=u&7,t.mode=Cd;break}for(;u<3;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}switch(t.last=l&1,l>>>=1,u-=1,l&3){case 0:t.mode=my;break;case 1:if(XA(t),t.mode=Al,e===wl){l>>>=2,u-=2;break e}break;case 2:t.mode=yy;break;case 3:r.msg="invalid block type",t.mode=at;}l>>>=2,u-=2;break;case my:for(l>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if((l&65535)!==(l>>>16^65535)){r.msg="invalid stored block lengths",t.mode=at;break}if(t.length=l&65535,l=0,u=0,t.mode=Rd,e===wl)break e;case Rd:t.mode=gy;case gy:if(f=t.length,f){if(f>o&&(f=o),f>c&&(f=c),f===0)break e;cr.arraySet(n,i,s,f,a),o-=f,s+=f,c-=f,a+=f,t.length-=f;break}t.mode=bi;break;case yy:for(;u<14;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.nlen=(l&31)+257,l>>>=5,u-=5,t.ndist=(l&31)+1,l>>>=5,u-=5,t.ncode=(l&15)+4,l>>>=4,u-=4,t.nlen>286||t.ndist>30){r.msg="too many length or distance symbols",t.mode=at;break}t.have=0,t.mode=vy;case vy:for(;t.have<t.ncode;){for(;u<3;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.lens[L[t.have++]]=l&7,l>>>=3,u-=3;}for(;t.have<19;)t.lens[L[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,_={bits:t.lenbits},w=ja(UA,t.lens,0,19,t.lencode,0,t.work,_),t.lenbits=_.bits,w){r.msg="invalid code lengths set",t.mode=at;break}t.have=0,t.mode=xy;case xy:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[l&(1<<t.lenbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(E<16)l>>>=y,u-=y,t.lens[t.have++]=E;else {if(E===16){for(k=y+2;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(l>>>=y,u-=y,t.have===0){r.msg="invalid bit length repeat",t.mode=at;break}T=t.lens[t.have-1],f=3+(l&3),l>>>=2,u-=2;}else if(E===17){for(k=y+3;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=y,u-=y,T=0,f=3+(l&7),l>>>=3,u-=3;}else {for(k=y+7;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=y,u-=y,T=0,f=11+(l&127),l>>>=7,u-=7;}if(t.have+f>t.nlen+t.ndist){r.msg="invalid bit length repeat",t.mode=at;break}for(;f--;)t.lens[t.have++]=T;}}if(t.mode===at)break;if(t.lens[256]===0){r.msg="invalid code -- missing end-of-block",t.mode=at;break}if(t.lenbits=9,_={bits:t.lenbits},w=ja(Ly,t.lens,0,t.nlen,t.lencode,0,t.work,_),t.lenbits=_.bits,w){r.msg="invalid literal/lengths set",t.mode=at;break}if(t.distbits=6,t.distcode=t.distdyn,_={bits:t.distbits},w=ja(Ry,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,_),t.distbits=_.bits,w){r.msg="invalid distances set",t.mode=at;break}if(t.mode=Al,e===wl)break e;case Al:t.mode=kl;case kl:if(o>=6&&c>=258){r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,BA(r,h),a=r.next_out,n=r.output,c=r.avail_out,s=r.next_in,i=r.input,o=r.avail_in,l=t.hold,u=t.bits,t.mode===bi&&(t.back=-1);break}for(t.back=0;m=t.lencode[l&(1<<t.lenbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(v&&(v&240)===0){for(b=y,S=v,I=E;m=t.lencode[I+((l&(1<<b+S)-1)>>b)],y=m>>>24,v=m>>>16&255,E=m&65535,!(b+y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=b,u-=b,t.back+=b;}if(l>>>=y,u-=y,t.back+=y,t.length=E,v===0){t.mode=Ty;break}if(v&32){t.back=-1,t.mode=bi;break}if(v&64){r.msg="invalid literal/length code",t.mode=at;break}t.extra=v&15,t.mode=Ey;case Ey:if(t.extra){for(k=t.extra;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.length+=l&(1<<t.extra)-1,l>>>=t.extra,u-=t.extra,t.back+=t.extra;}t.was=t.length,t.mode=by;case by:for(;m=t.distcode[l&(1<<t.distbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if((v&240)===0){for(b=y,S=v,I=E;m=t.distcode[I+((l&(1<<b+S)-1)>>b)],y=m>>>24,v=m>>>16&255,E=m&65535,!(b+y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=b,u-=b,t.back+=b;}if(l>>>=y,u-=y,t.back+=y,v&64){r.msg="invalid distance code",t.mode=at;break}t.offset=E,t.extra=v&15,t.mode=Sy;case Sy:if(t.extra){for(k=t.extra;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.offset+=l&(1<<t.extra)-1,l>>>=t.extra,u-=t.extra,t.back+=t.extra;}if(t.offset>t.dmax){r.msg="invalid distance too far back",t.mode=at;break}t.mode=_y;case _y:if(c===0)break e;if(f=h-c,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){r.msg="invalid distance too far back",t.mode=at;break}f>t.wnext?(f-=t.wnext,p=t.wsize-f):p=t.wnext-f,f>t.length&&(f=t.length),g=t.window;}else g=n,p=a-t.offset,f=t.length;f>c&&(f=c),c-=f,t.length-=f;do n[a++]=g[p++];while(--f);t.length===0&&(t.mode=kl);break;case Ty:if(c===0)break e;n[a++]=t.length,c--,t.mode=kl;break;case Cd:if(t.wrap){for(;u<32;){if(o===0)break e;o--,l|=i[s++]<<u,u+=8;}if(h-=c,r.total_out+=h,t.total+=h,h&&(r.adler=t.check=t.flags?Yr(t.check,n,h,a-h):Md(t.check,n,h,a-h)),h=c,(t.flags?l:ky(l))!==t.check){r.msg="incorrect data check",t.mode=at;break}l=0,u=0;}t.mode=wy;case wy:if(t.wrap&&t.flags){for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(l!==(t.total&4294967295)){r.msg="incorrect length check",t.mode=at;break}l=0,u=0;}t.mode=Ay;case Ay:w=zA;break e;case at:w=Cy;break e;case Fd:return Od;case KA:default:return Sr}return r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,(t.wsize||h!==r.avail_out&&t.mode<at&&(t.mode<Cd||e!==ny))&&Ny(r,r.output,r.next_out,h-r.avail_out)?(t.mode=Fd,Od):(d-=r.avail_in,h-=r.avail_out,r.total_in+=d,r.total_out+=h,t.total+=h,t.wrap&&h&&(r.adler=t.check=t.flags?Yr(t.check,n,h,r.next_out-h):Md(t.check,n,h,r.next_out-h)),r.data_type=t.bits+(t.last?64:0)+(t.mode===bi?128:0)+(t.mode===Al||t.mode===Rd?256:0),(d===0&&h===0||e===ny)&&w===wn&&(w=HA),w)}function QA(r){if(!r||!r.state)return Sr;var e=r.state;return e.window&&(e.window=null),r.state=null,wn}function ek(r,e){var t;return !r||!r.state||(t=r.state,(t.wrap&2)===0)?Sr:(t.head=e,e.done=false,wn)}function tk(r,e){var t=e.length,i,n,s;return !r||!r.state||(i=r.state,i.wrap!==0&&i.mode!==Il)?Sr:i.mode===Il&&(n=1,n=Md(n,e,t,0),n!==i.check)?Cy:(s=Ny(r,e,t,t),s?(i.mode=Fd,Od):(i.havedict=1,wn))}Cr.inflateReset=My;Cr.inflateReset2=Oy;Cr.inflateResetKeep=Py;Cr.inflateInit=ZA;Cr.inflateInit2=Fy;Cr.inflate=JA;Cr.inflateEnd=QA;Cr.inflateGetHeader=ek;Cr.inflateSetDictionary=tk;Cr.inflateInfo="pako inflate (from Nodeca project)";});var Nd=ae((UB,Uy)=>{Uy.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};});var zy=ae(($B,$y)=>{function rk(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=false;}$y.exports=rk;});var Hy=ae(qa=>{var Es=By(),Wa=vi(),Ll=Sd(),mt=Nd(),Bd=gl(),ik=_d(),nk=zy(),Gy=Object.prototype.toString;function An(r){if(!(this instanceof An))return new An(r);this.options=Wa.assign({chunkSize:16384,windowBits:0,to:""},r||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(r&&r.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=false,this.chunks=[],this.strm=new ik,this.strm.avail_out=0;var t=Es.inflateInit2(this.strm,e.windowBits);if(t!==mt.Z_OK)throw new Error(Bd[t]);if(this.header=new nk,Es.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Ll.string2buf(e.dictionary):Gy.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Es.inflateSetDictionary(this.strm,e.dictionary),t!==mt.Z_OK)))throw new Error(Bd[t])}An.prototype.push=function(r,e){var t=this.strm,i=this.options.chunkSize,n=this.options.dictionary,s,a,o,c,l,u=false;if(this.ended)return false;a=e===~~e?e:e===true?mt.Z_FINISH:mt.Z_NO_FLUSH,typeof r=="string"?t.input=Ll.binstring2buf(r):Gy.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new Wa.Buf8(i),t.next_out=0,t.avail_out=i),s=Es.inflate(t,mt.Z_NO_FLUSH),s===mt.Z_NEED_DICT&&n&&(s=Es.inflateSetDictionary(this.strm,n)),s===mt.Z_BUF_ERROR&&u===true&&(s=mt.Z_OK,u=false),s!==mt.Z_STREAM_END&&s!==mt.Z_OK)return this.onEnd(s),this.ended=true,false;t.next_out&&(t.avail_out===0||s===mt.Z_STREAM_END||t.avail_in===0&&(a===mt.Z_FINISH||a===mt.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Ll.utf8border(t.output,t.next_out),c=t.next_out-o,l=Ll.buf2string(t.output,o),t.next_out=c,t.avail_out=i-c,c&&Wa.arraySet(t.output,t.output,o,c,0),this.onData(l)):this.onData(Wa.shrinkBuf(t.output,t.next_out))),t.avail_in===0&&t.avail_out===0&&(u=true);}while((t.avail_in>0||t.avail_out===0)&&s!==mt.Z_STREAM_END);return s===mt.Z_STREAM_END&&(a=mt.Z_FINISH),a===mt.Z_FINISH?(s=Es.inflateEnd(this.strm),this.onEnd(s),this.ended=true,s===mt.Z_OK):(a===mt.Z_SYNC_FLUSH&&(this.onEnd(mt.Z_OK),t.avail_out=0),true)};An.prototype.onData=function(r){this.chunks.push(r);};An.prototype.onEnd=function(r){r===mt.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Wa.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg;};function Ud(r,e){var t=new An(e);if(t.push(r,true),t.err)throw t.msg||Bd[t.err];return t.result}function sk(r,e){return e=e||{},e.raw=true,Ud(r,e)}qa.Inflate=An;qa.inflate=Ud;qa.inflateRaw=sk;qa.ungzip=Ud;});var jy=ae((GB,Vy)=>{var ak=vi().assign,ok=q0(),lk=Hy(),ck=Nd(),Ky={};ak(Ky,ok,lk,ck);Vy.exports=Ky;});var qy=ae(Cl=>{var uk=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",dk=jy(),Wy=ct(),Rl=lr(),hk=uk?"uint8array":"array";Cl.magic="\b\0";function kn(r,e){Rl.call(this,"FlateWorker/"+r),this._pako=null,this._pakoAction=r,this._pakoOptions=e,this.meta={};}Wy.inherits(kn,Rl);kn.prototype.processChunk=function(r){this.meta=r.meta,this._pako===null&&this._createPako(),this._pako.push(Wy.transformTo(hk,r.data),false);};kn.prototype.flush=function(){Rl.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],true);};kn.prototype.cleanUp=function(){Rl.prototype.cleanUp.call(this),this._pako=null;};kn.prototype._createPako=function(){this._pako=new dk[this._pakoAction]({raw:true,level:this._pakoOptions.level||-1});var r=this;this._pako.onData=function(e){r.push({data:e,meta:r.meta});};};Cl.compressWorker=function(r){return new kn("Deflate",r)};Cl.uncompressWorker=function(){return new kn("Inflate",{})};});var zd=ae($d=>{var Yy=lr();$d.STORE={magic:"\0\0",compressWorker:function(){return new Yy("STORE compression")},uncompressWorker:function(){return new Yy("STORE decompression")}};$d.DEFLATE=qy();});var Gd=ae(In=>{In.LOCAL_FILE_HEADER="PK";In.CENTRAL_FILE_HEADER="PK";In.CENTRAL_DIRECTORY_END="PK";In.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";In.ZIP64_CENTRAL_DIRECTORY_END="PK";In.DATA_DESCRIPTOR="PK\x07\b";});var Qy=ae((jB,Jy)=>{var bs=ct(),Ss=lr(),Hd=cs(),Zy=dl(),Dl=Gd(),it=function(r,e){var t="",i;for(i=0;i<e;i++)t+=String.fromCharCode(r&255),r=r>>>8;return t},fk=function(r,e){var t=r;return r||(t=e?16893:33204),(t&65535)<<16},pk=function(r){return (r||0)&63},Xy=function(r,e,t,i,n,s){var a=r.file,o=r.compression,c=s!==Hd.utf8encode,l=bs.transformTo("string",s(a.name)),u=bs.transformTo("string",Hd.utf8encode(a.name)),d=a.comment,h=bs.transformTo("string",s(d)),f=bs.transformTo("string",Hd.utf8encode(d)),p=u.length!==a.name.length,g=f.length!==d.length,m,y,v="",E="",b="",S=a.dir,I=a.date,T={crc32:0,compressedSize:0,uncompressedSize:0};(!e||t)&&(T.crc32=r.crc32,T.compressedSize=r.compressedSize,T.uncompressedSize=r.uncompressedSize);var w=0;e&&(w|=8),!c&&(p||g)&&(w|=2048);var A=0,_=0;S&&(A|=16),n==="UNIX"?(_=798,A|=fk(a.unixPermissions,S)):(_=20,A|=pk(a.dosPermissions)),m=I.getUTCHours(),m=m<<6,m=m|I.getUTCMinutes(),m=m<<5,m=m|I.getUTCSeconds()/2,y=I.getUTCFullYear()-1980,y=y<<4,y=y|I.getUTCMonth()+1,y=y<<5,y=y|I.getUTCDate(),p&&(E=it(1,1)+it(Zy(l),4)+u,v+="up"+it(E.length,2)+E),g&&(b=it(1,1)+it(Zy(h),4)+f,v+="uc"+it(b.length,2)+b);var k="";k+=`
3
+ \0`,k+=it(w,2),k+=o.magic,k+=it(m,2),k+=it(y,2),k+=it(T.crc32,4),k+=it(T.compressedSize,4),k+=it(T.uncompressedSize,4),k+=it(l.length,2),k+=it(v.length,2);var L=Dl.LOCAL_FILE_HEADER+k+l+v,C=Dl.CENTRAL_FILE_HEADER+it(_,2)+k+it(h.length,2)+"\0\0\0\0"+it(A,4)+it(i,4)+l+v+h;return {fileRecord:L,dirRecord:C}},mk=function(r,e,t,i,n){var s="",a=bs.transformTo("string",n(i));return s=Dl.CENTRAL_DIRECTORY_END+"\0\0\0\0"+it(r,2)+it(r,2)+it(e,4)+it(t,4)+it(a.length,2)+a,s},gk=function(r){var e="";return e=Dl.DATA_DESCRIPTOR+it(r.crc32,4)+it(r.compressedSize,4)+it(r.uncompressedSize,4),e};function Dr(r,e,t,i){Ss.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=t,this.encodeFileName=i,this.streamFiles=r,this.accumulate=false,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}bs.inherits(Dr,Ss);Dr.prototype.push=function(r){var e=r.meta.percent||0,t=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(r):(this.bytesWritten+=r.data.length,Ss.prototype.push.call(this,{data:r.data,meta:{currentFile:this.currentFile,percent:t?(e+100*(t-i-1))/t:100}}));};Dr.prototype.openedSource=function(r){this.currentSourceOffset=this.bytesWritten,this.currentFile=r.file.name;var e=this.streamFiles&&!r.file.dir;if(e){var t=Xy(r,e,false,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:t.fileRecord,meta:{percent:0}});}else this.accumulate=true;};Dr.prototype.closedSource=function(r){this.accumulate=false;var e=this.streamFiles&&!r.file.dir,t=Xy(r,e,true,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(t.dirRecord),e)this.push({data:gk(r),meta:{percent:100}});else for(this.push({data:t.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;};Dr.prototype.flush=function(){for(var r=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var t=this.bytesWritten-r,i=mk(this.dirRecords.length,t,r,this.zipComment,this.encodeFileName);this.push({data:i,meta:{percent:100}});};Dr.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume();};Dr.prototype.registerPrevious=function(r){this._sources.push(r);var e=this;return r.on("data",function(t){e.processChunk(t);}),r.on("end",function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end();}),r.on("error",function(t){e.error(t);}),this};Dr.prototype.resume=function(){if(!Ss.prototype.resume.call(this))return false;if(!this.previous&&this._sources.length)return this.prepareNextSource(),true;if(!this.previous&&!this._sources.length&&!this.generatedError)return this.end(),true};Dr.prototype.error=function(r){var e=this._sources;if(!Ss.prototype.error.call(this,r))return false;for(var t=0;t<e.length;t++)try{e[t].error(r);}catch{}return true};Dr.prototype.lock=function(){Ss.prototype.lock.call(this);for(var r=this._sources,e=0;e<r.length;e++)r[e].lock();};Jy.exports=Dr;});var tv=ae(ev=>{var yk=zd(),vk=Qy(),xk=function(r,e){var t=r||e,i=yk[t];if(!i)throw new Error(t+" is not a valid compression method !");return i};ev.generateWorker=function(r,e,t){var i=new vk(e.streamFiles,t,e.platform,e.encodeFileName),n=0;try{r.forEach(function(s,a){n++;var o=xk(a.options.compression,e.compression),c=a.options.compressionOptions||e.compressionOptions||{},l=a.dir,u=a.date;a._compressWorker(o,c).withStreamInfo("file",{name:s,dir:l,date:u,comment:a.comment||"",unixPermissions:a.unixPermissions,dosPermissions:a.dosPermissions}).pipe(i);}),i.entriesCount=n;}catch(s){i.error(s);}return i};});var iv=ae((qB,rv)=>{var Ek=ct(),Pl=lr();function Ya(r,e){Pl.call(this,"Nodejs stream input adapter for "+r),this._upstreamEnded=false,this._bindStream(e);}Ek.inherits(Ya,Pl);Ya.prototype._bindStream=function(r){var e=this;this._stream=r,r.pause(),r.on("data",function(t){e.push({data:t,meta:{percent:0}});}).on("error",function(t){e.isPaused?this.generatedError=t:e.error(t);}).on("end",function(){e.isPaused?e._upstreamEnded=true:e.end();});};Ya.prototype.pause=function(){return Pl.prototype.pause.call(this)?(this._stream.pause(),true):false};Ya.prototype.resume=function(){return Pl.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),true):false};rv.exports=Ya;});var fv=ae((YB,hv)=>{var bk=cs(),Za=ct(),ov=lr(),Sk=qu(),lv=Yu(),nv=hl(),_k=s0(),Tk=tv(),sv=wa(),wk=iv(),cv=function(r,e,t){var i=Za.getTypeOf(e),n,s=Za.extend(t||{},lv);s.date=s.date||new Date,s.compression!==null&&(s.compression=s.compression.toUpperCase()),typeof s.unixPermissions=="string"&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&s.unixPermissions&16384&&(s.dir=true),s.dosPermissions&&s.dosPermissions&16&&(s.dir=true),s.dir&&(r=uv(r)),s.createFolders&&(n=Ak(r))&&dv.call(this,n,true);var a=i==="string"&&s.binary===false&&s.base64===false;(!t||typeof t.binary>"u")&&(s.binary=!a);var o=e instanceof nv&&e.uncompressedSize===0;(o||s.dir||!e||e.length===0)&&(s.base64=false,s.binary=true,e="",s.compression="STORE",i="string");var c=null;e instanceof nv||e instanceof ov?c=e:sv.isNode&&sv.isStream(e)?c=new wk(r,e):c=Za.prepareContent(r,e,s.binary,s.optimizedBinaryString,s.base64);var l=new _k(r,c,s);this.files[r]=l;},Ak=function(r){r.slice(-1)==="/"&&(r=r.substring(0,r.length-1));var e=r.lastIndexOf("/");return e>0?r.substring(0,e):""},uv=function(r){return r.slice(-1)!=="/"&&(r+="/"),r},dv=function(r,e){return e=typeof e<"u"?e:lv.createFolders,r=uv(r),this.files[r]||cv.call(this,r,null,{dir:true,createFolders:e}),this.files[r]};function av(r){return Object.prototype.toString.call(r)==="[object RegExp]"}var kk={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(r){var e,t,i;for(e in this.files)i=this.files[e],t=e.slice(this.root.length,e.length),t&&e.slice(0,this.root.length)===this.root&&r(t,i);},filter:function(r){var e=[];return this.forEach(function(t,i){r(t,i)&&e.push(i);}),e},file:function(r,e,t){if(arguments.length===1)if(av(r)){var i=r;return this.filter(function(s,a){return !a.dir&&i.test(s)})}else {var n=this.files[this.root+r];return n&&!n.dir?n:null}else r=this.root+r,cv.call(this,r,e,t);return this},folder:function(r){if(!r)return this;if(av(r))return this.filter(function(n,s){return s.dir&&r.test(n)});var e=this.root+r,t=dv.call(this,e),i=this.clone();return i.root=t.name,i},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(r.slice(-1)!=="/"&&(r+="/"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(n,s){return s.name.slice(0,r.length)===r}),i=0;i<t.length;i++)delete this.files[t[i].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(r){var e,t={};try{if(t=Za.extend(r||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:bk.utf8encode}),t.type=t.type.toLowerCase(),t.compression=t.compression.toUpperCase(),t.type==="binarystring"&&(t.type="string"),!t.type)throw new Error("No output type specified.");Za.checkSupport(t.type),(t.platform==="darwin"||t.platform==="freebsd"||t.platform==="linux"||t.platform==="sunos")&&(t.platform="UNIX"),t.platform==="win32"&&(t.platform="DOS");var i=t.comment||this.comment||"";e=Tk.generateWorker(this,t,i);}catch(n){e=new ov("error"),e.error(n);}return new Sk(e,t.type||"string",t.mimeType)},generateAsync:function(r,e){return this.generateInternalStream(r).accumulate(e)},generateNodeStream:function(r,e){return r=r||{},r.type||(r.type="nodebuffer"),this.generateInternalStream(r).toNodejsStream(e)}};hv.exports=kk;});var Kd=ae((ZB,mv)=>{var Ik=ct();function pv(r){this.data=r,this.length=r.length,this.index=0,this.zero=0;}pv.prototype={checkOffset:function(r){this.checkIndex(this.index+r);},checkIndex:function(r){if(this.length<this.zero+r||r<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+r+"). Corrupted zip ?")},setIndex:function(r){this.checkIndex(r),this.index=r;},skip:function(r){this.setIndex(this.index+r);},byteAt:function(){},readInt:function(r){var e=0,t;for(this.checkOffset(r),t=this.index+r-1;t>=this.index;t--)e=(e<<8)+this.byteAt(t);return this.index+=r,e},readString:function(r){return Ik.transformTo("string",this.readData(r))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var r=this.readInt(4);return new Date(Date.UTC((r>>25&127)+1980,(r>>21&15)-1,r>>16&31,r>>11&31,r>>5&63,(r&31)<<1))}};mv.exports=pv;});var Vd=ae((XB,yv)=>{var gv=Kd(),Lk=ct();function _s(r){gv.call(this,r);for(var e=0;e<this.data.length;e++)r[e]=r[e]&255;}Lk.inherits(_s,gv);_s.prototype.byteAt=function(r){return this.data[this.zero+r]};_s.prototype.lastIndexOfSignature=function(r){for(var e=r.charCodeAt(0),t=r.charCodeAt(1),i=r.charCodeAt(2),n=r.charCodeAt(3),s=this.length-4;s>=0;--s)if(this.data[s]===e&&this.data[s+1]===t&&this.data[s+2]===i&&this.data[s+3]===n)return s-this.zero;return -1};_s.prototype.readAndCheckSignature=function(r){var e=r.charCodeAt(0),t=r.charCodeAt(1),i=r.charCodeAt(2),n=r.charCodeAt(3),s=this.readData(4);return e===s[0]&&t===s[1]&&i===s[2]&&n===s[3]};_s.prototype.readData=function(r){if(this.checkOffset(r),r===0)return [];var e=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,e};yv.exports=_s;});var Ev=ae((JB,xv)=>{var vv=Kd(),Rk=ct();function Ts(r){vv.call(this,r);}Rk.inherits(Ts,vv);Ts.prototype.byteAt=function(r){return this.data.charCodeAt(this.zero+r)};Ts.prototype.lastIndexOfSignature=function(r){return this.data.lastIndexOf(r)-this.zero};Ts.prototype.readAndCheckSignature=function(r){var e=this.readData(4);return r===e};Ts.prototype.readData=function(r){this.checkOffset(r);var e=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,e};xv.exports=Ts;});var Wd=ae((QB,Sv)=>{var bv=Vd(),Ck=ct();function jd(r){bv.call(this,r);}Ck.inherits(jd,bv);jd.prototype.readData=function(r){if(this.checkOffset(r),r===0)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+r);return this.index+=r,e};Sv.exports=jd;});var wv=ae((eU,Tv)=>{var _v=Wd(),Dk=ct();function qd(r){_v.call(this,r);}Dk.inherits(qd,_v);qd.prototype.readData=function(r){this.checkOffset(r);var e=this.data.slice(this.zero+this.index,this.zero+this.index+r);return this.index+=r,e};Tv.exports=qd;});var Yd=ae((tU,kv)=>{var Ml=ct(),Av=gi(),Pk=Vd(),Mk=Ev(),Ok=wv(),Fk=Wd();kv.exports=function(r){var e=Ml.getTypeOf(r);return Ml.checkSupport(e),e==="string"&&!Av.uint8array?new Mk(r):e==="nodebuffer"?new Ok(r):Av.uint8array?new Fk(Ml.transformTo("uint8array",r)):new Pk(Ml.transformTo("array",r))};});var Cv=ae((rU,Rv)=>{var Zd=Yd(),Xi=ct(),Nk=hl(),Iv=dl(),Ol=cs(),Fl=zd(),Bk=gi(),Uk=0,$k=3,zk=function(r){for(var e in Fl)if(Object.prototype.hasOwnProperty.call(Fl,e)&&Fl[e].magic===r)return Fl[e];return null};function Lv(r,e){this.options=r,this.loadOptions=e;}Lv.prototype={isEncrypted:function(){return (this.bitFlag&1)===1},useUTF8:function(){return (this.bitFlag&2048)===2048},readLocalPart:function(r){var e,t;if(r.skip(22),this.fileNameLength=r.readInt(2),t=r.readInt(2),this.fileName=r.readData(this.fileNameLength),r.skip(t),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(e=zk(this.compressionMethod),e===null)throw new Error("Corrupted zip : compression "+Xi.pretty(this.compressionMethod)+" unknown (inner file : "+Xi.transformTo("string",this.fileName)+")");this.decompressed=new Nk(this.compressedSize,this.uncompressedSize,this.crc32,e,r.readData(this.compressedSize));},readCentralPart:function(r){this.versionMadeBy=r.readInt(2),r.skip(2),this.bitFlag=r.readInt(2),this.compressionMethod=r.readString(2),this.date=r.readDate(),this.crc32=r.readInt(4),this.compressedSize=r.readInt(4),this.uncompressedSize=r.readInt(4);var e=r.readInt(2);if(this.extraFieldsLength=r.readInt(2),this.fileCommentLength=r.readInt(2),this.diskNumberStart=r.readInt(2),this.internalFileAttributes=r.readInt(2),this.externalFileAttributes=r.readInt(4),this.localHeaderOffset=r.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");r.skip(e),this.readExtraFields(r),this.parseZIP64ExtraField(r),this.fileComment=r.readData(this.fileCommentLength);},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var r=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),r===Uk&&(this.dosPermissions=this.externalFileAttributes&63),r===$k&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=true);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var r=Zd(this.extraFields[1].value);this.uncompressedSize===Xi.MAX_VALUE_32BITS&&(this.uncompressedSize=r.readInt(8)),this.compressedSize===Xi.MAX_VALUE_32BITS&&(this.compressedSize=r.readInt(8)),this.localHeaderOffset===Xi.MAX_VALUE_32BITS&&(this.localHeaderOffset=r.readInt(8)),this.diskNumberStart===Xi.MAX_VALUE_32BITS&&(this.diskNumberStart=r.readInt(4));}},readExtraFields:function(r){var e=r.index+this.extraFieldsLength,t,i,n;for(this.extraFields||(this.extraFields={});r.index+4<e;)t=r.readInt(2),i=r.readInt(2),n=r.readData(i),this.extraFields[t]={id:t,length:i,value:n};r.setIndex(e);},handleUTF8:function(){var r=Bk.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=Ol.utf8decode(this.fileName),this.fileCommentStr=Ol.utf8decode(this.fileComment);else {var e=this.findExtraFieldUnicodePath();if(e!==null)this.fileNameStr=e;else {var t=Xi.transformTo(r,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(t);}var i=this.findExtraFieldUnicodeComment();if(i!==null)this.fileCommentStr=i;else {var n=Xi.transformTo(r,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(n);}}},findExtraFieldUnicodePath:function(){var r=this.extraFields[28789];if(r){var e=Zd(r.value);return e.readInt(1)!==1||Iv(this.fileName)!==e.readInt(4)?null:Ol.utf8decode(e.readData(r.length-5))}return null},findExtraFieldUnicodeComment:function(){var r=this.extraFields[25461];if(r){var e=Zd(r.value);return e.readInt(1)!==1||Iv(this.fileComment)!==e.readInt(4)?null:Ol.utf8decode(e.readData(r.length-5))}return null}};Rv.exports=Lv;});var Mv=ae((iU,Pv)=>{var Gk=Yd(),Si=ct(),Pr=Gd(),Hk=Cv(),Kk=gi();function Dv(r){this.files=[],this.loadOptions=r;}Dv.prototype={checkSignature:function(r){if(!this.reader.readAndCheckSignature(r)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+Si.pretty(e)+", expected "+Si.pretty(r)+")")}},isSignature:function(r,e){var t=this.reader.index;this.reader.setIndex(r);var i=this.reader.readString(4),n=i===e;return this.reader.setIndex(t),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var r=this.reader.readData(this.zipCommentLength),e=Kk.uint8array?"uint8array":"array",t=Si.transformTo(e,r);this.zipComment=this.loadOptions.decodeFileName(t);},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var r=this.zip64EndOfCentralSize-44,e=0,t,i,n;e<r;)t=this.reader.readInt(2),i=this.reader.readInt(4),n=this.reader.readData(i),this.zip64ExtensibleData[t]={id:t,length:i,value:n};},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var r,e;for(r=0;r<this.files.length;r++)e=this.files[r],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(Pr.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes();},readCentralDir:function(){var r;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(Pr.CENTRAL_FILE_HEADER);)r=new Hk({zip64:this.zip64},this.loadOptions),r.readCentralPart(this.reader),this.files.push(r);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var r=this.reader.lastIndexOfSignature(Pr.CENTRAL_DIRECTORY_END);if(r<0){var e=!this.isSignature(0,Pr.LOCAL_FILE_HEADER);throw e?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(r);var t=r;if(this.checkSignature(Pr.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===Si.MAX_VALUE_16BITS||this.diskWithCentralDirStart===Si.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===Si.MAX_VALUE_16BITS||this.centralDirRecords===Si.MAX_VALUE_16BITS||this.centralDirSize===Si.MAX_VALUE_32BITS||this.centralDirOffset===Si.MAX_VALUE_32BITS){if(this.zip64=true,r=this.reader.lastIndexOfSignature(Pr.ZIP64_CENTRAL_DIRECTORY_LOCATOR),r<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(r),this.checkSignature(Pr.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,Pr.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(Pr.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(Pr.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral();}var i=this.centralDirOffset+this.centralDirSize;this.zip64&&(i+=20,i+=12+this.zip64EndOfCentralSize);var n=t-i;if(n>0)this.isSignature(t,Pr.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(r){this.reader=Gk(r);},load:function(r){this.prepareReader(r),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles();}};Pv.exports=Dv;});var Nv=ae((nU,Fv)=>{var Xd=ct(),Nl=as(),Vk=cs(),jk=Mv(),Wk=Ju(),Ov=wa();function qk(r){return new Nl.Promise(function(e,t){var i=r.decompressed.getContentWorker().pipe(new Wk);i.on("error",function(n){t(n);}).on("end",function(){i.streamInfo.crc32!==r.decompressed.crc32?t(new Error("Corrupted zip : CRC32 mismatch")):e();}).resume();})}Fv.exports=function(r,e){var t=this;return e=Xd.extend(e||{},{base64:false,checkCRC32:false,optimizedBinaryString:false,createFolders:false,decodeFileName:Vk.utf8decode}),Ov.isNode&&Ov.isStream(r)?Nl.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Xd.prepareContent("the loaded zip file",r,true,e.optimizedBinaryString,e.base64).then(function(i){var n=new jk(e);return n.load(i),n}).then(function(n){var s=[Nl.Promise.resolve(n)],a=n.files;if(e.checkCRC32)for(var o=0;o<a.length;o++)s.push(qk(a[o]));return Nl.Promise.all(s)}).then(function(n){for(var s=n.shift(),a=s.files,o=0;o<a.length;o++){var c=a[o],l=c.fileNameStr,u=Xd.resolve(c.fileNameStr);t.file(u,c.decompressed,{binary:true,optimizedBinaryString:true,date:c.date,dir:c.dir,comment:c.fileCommentStr.length?c.fileCommentStr:null,unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions,createFolders:e.createFolders}),c.dir||(t.file(u).unsafeOriginalName=l);}return s.zipComment.length&&(t.comment=s.zipComment),t})};});var Jd=ae((sU,Bv)=>{function _r(){if(!(this instanceof _r))return new _r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var r=new _r;for(var e in this)typeof this[e]!="function"&&(r[e]=this[e]);return r};}_r.prototype=fv();_r.prototype.loadAsync=Nv();_r.support=gi();_r.defaults=Yu();_r.version="3.10.1";_r.loadAsync=function(r,e){return new _r().loadAsync(r,e)};_r.external=as();Bv.exports=_r;});var ch=km(Jd());var ws={trace:0,debug:1,info:2,warn:3,error:4,fatal:5};function Yk(){let r=Date.now().toString(36),e=Math.random().toString(36).substring(2,10);return `${r}-${e}`}function Zk(){let r=new Date,e=r.toISOString().split("T")[0],t=r.toTimeString().split(" ")[0].replace(/:/g,"-"),i=Math.random().toString(36).substring(2,6);return `session-${e}_${t}-${i}`}function Uv(r){if(r instanceof Error){let e={name:r.name,message:r.message,stack:r.stack};"cause"in r&&r.cause&&(e.cause=Uv(r.cause)),"code"in r&&(e.code=r.code);for(let t of Object.keys(r))t in e||(e[t]=r[t]);return e}return typeof r=="object"&&r!==null?{name:"UnknownError",message:String(r),...r}:{name:"UnknownError",message:String(r)}}function Ln(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}function Xk(){if(typeof process<"u"&&process.versions?.node)return {runtime:"node",nodeVersion:process.versions.node,platform:process.platform,memory:process.memoryUsage?{heapUsed:process.memoryUsage().heapUsed,heapTotal:process.memoryUsage().heapTotal,rss:process.memoryUsage().rss}:void 0};if(typeof window<"u"&&typeof navigator<"u"){let r={runtime:"browser",userAgent:navigator.userAgent,platform:navigator.platform,url:window.location?.href};if("memory"in performance){let e=performance.memory;r.memory={heapUsed:e.usedJSHeapSize,heapTotal:e.totalJSHeapSize};}return r}return {runtime:"unknown"}}function Jk(r=3){try{let e=new Error().stack;if(!e)return;let i=e.split(`
4
+ `)[r+1];if(!i)return;let n=i.match(/at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?/);if(n)return {function:n[1]||void 0,file:n[2],line:parseInt(n[3],10),column:parseInt(n[4],10)};if(n=i.match(/(.+?)@(.+?):(\d+):(\d+)/),n)return {function:n[1]||void 0,file:n[2],line:parseInt(n[3],10),column:parseInt(n[4],10)}}catch{}}function Qk(r){let e={trace:"\x1B[90m",debug:"\x1B[36m",info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",fatal:"\x1B[35m"},t="\x1B[0m",i="\x1B[2m",n=e[r.level],s=r.level.toUpperCase().padEnd(5),a=r.timestamp.split("T")[1]?.split(".")[0]||r.timestamp,o=`${i}${a}${t} ${n}${s}${t} [${r.namespace}] ${r.message}`;if(r.data&&Object.keys(r.data).length>0&&(o+=` ${i}${JSON.stringify(r.data)}${t}`),r.error&&(o+=`
5
+ ${n} Error: ${r.error.name}: ${r.error.message}${t}`,r.error.stack)){let c=r.error.stack.split(`
6
+ `).slice(1,5);o+=`
7
+ ${i}${c.join(`
8
+ `)}${t}`;}return r.performance&&(o+=` ${i}(${r.performance.durationMs.toFixed(2)}ms)${t}`),o}function eI(r){return JSON.stringify(r)}function tI(r,e){let t=new WeakSet;return JSON.stringify(r,(i,n)=>{if(typeof n=="object"&&n!==null){if(t.has(n))return "[Circular]";t.add(n);}return typeof n=="bigint"?n.toString()+"n":typeof n=="function"?`[Function: ${n.name||"anonymous"}]`:typeof n=="symbol"?n.toString():n},e)}function Qd(r){try{return JSON.parse(tI(r))}catch{return r}}var rI=class{constructor(r=1e4){this.sessions=new Map,this.logs=new Map,this.maxLogsPerSession=r;}async store(r){let e=r.sessionId;this.sessions.has(e)||(this.sessions.set(e,{id:e,startedAt:r.timestamp,environment:{runtime:"unknown"},logCount:0,levelCounts:{trace:0,debug:0,info:0,warn:0,error:0,fatal:0}}),this.logs.set(e,[]));let t=this.sessions.get(e),i=this.logs.get(e);i.push(r),t.logCount++,t.levelCounts[r.level]++,i.length>this.maxLogsPerSession&&i.shift();}async getSessionLogs(r){return this.logs.get(r)||[]}async queryLogs(r){let e=[];if(r.sessionId)e=[...this.logs.get(r.sessionId)||[]];else for(let t of this.logs.values())e.push(...t);if(r.minLevel){let t=ws[r.minLevel];e=e.filter(i=>ws[i.level]>=t);}if(r.namespace){let t=r.namespace instanceof RegExp?r.namespace:new RegExp(`^${r.namespace}`);e=e.filter(i=>t.test(i.namespace));}if(r.from){let t=r.from.getTime();e=e.filter(i=>new Date(i.timestamp).getTime()>=t);}if(r.to){let t=r.to.getTime();e=e.filter(i=>new Date(i.timestamp).getTime()<=t);}if(r.tags&&r.tags.length>0&&(e=e.filter(t=>t.tags&&r.tags.some(i=>t.tags.includes(i)))),r.messageContains){let t=r.messageContains.toLowerCase();e=e.filter(i=>i.message.toLowerCase().includes(t));}return e.sort((t,i)=>new Date(t.timestamp).getTime()-new Date(i.timestamp).getTime()),r.offset&&(e=e.slice(r.offset)),r.limit&&(e=e.slice(0,r.limit)),e}async getSessions(){return Array.from(this.sessions.values())}async getSession(r){return this.sessions.get(r)||null}updateSession(r,e){let t=this.sessions.get(r);t&&Object.assign(t,e);}async exportSession(r,e){let t=this.sessions.get(r),i=this.logs.get(r)||[];if(e==="json")return JSON.stringify({session:t,logs:i},null,2);let n=[];n.push("=".repeat(80)),n.push("CT-COURSES LOG EXPORT"),n.push(`Session: ${r}`),n.push(`Started: ${t?.startedAt||"Unknown"}`),n.push(`Ended: ${t?.endedAt||"Active"}`),n.push(`Total Logs: ${i.length}`),n.push("=".repeat(80)),n.push("");for(let s of i){let a=s.level.toUpperCase().padEnd(5),o=`[${s.timestamp}] ${a} [${s.namespace}] ${s.message}`;s.data&&Object.keys(s.data).length>0&&(o+=`
9
+ Data: ${JSON.stringify(s.data)}`),s.error&&(o+=`
10
+ Error: ${s.error.name}: ${s.error.message}`,s.error.stack&&(o+=`
11
+ Stack:
12
+ ${s.error.stack.split(`
13
+ `).join(`
14
+ `)}`)),s.performance&&(o+=`
15
+ Performance: ${s.performance.operation} took ${s.performance.durationMs.toFixed(2)}ms`),n.push(o),n.push("-".repeat(80));}return n.join(`
16
+ `)}async clearOldSessions(r){let e=r.getTime(),t=0;for(let[i,n]of this.sessions)new Date(n.startedAt).getTime()<e&&(this.sessions.delete(i),this.logs.delete(i),t++);return t}async getStats(){let r=0;for(let e of this.logs.values())r+=e.length;return {totalSessions:this.sessions.size,totalLogs:r}}clear(){this.sessions.clear(),this.logs.clear();}},iI=class{constructor(r={}){this.name="console",this.format=r.format||"pretty",this.minLevel=r.minLevel||"trace";}log(r){if(ws[r.level]<ws[this.minLevel])return;let e=this.format==="pretty"?Qk(r):eI(r);switch(r.level){case "trace":case "debug":console.debug(e);break;case "info":console.info(e);break;case "warn":console.warn(e);break;case "error":case "fatal":console.error(e);break}}};var nI={minLevel:"debug",console:true,consoleFormat:"pretty",persistent:true,maxMemoryLogs:1e4,captureSource:false,enablePerformance:true},sI=class $v{constructor(e,t={},i){this.children=new Map,this.namespace=e,this.parent=i,i?(this.config=i.config,this.sessionId=i.sessionId,this.storage=i.storage,this.transports=i.transports,this.environment=i.environment,this.sessionStartTime=i.sessionStartTime):(this.config={...nI,...t},this.sessionId=t.sessionId||Zk(),this.storage=new rI(this.config.maxMemoryLogs),this.transports=t.transports||[],this.environment=Xk(),this.sessionStartTime=Ln(),this.config.console&&this.transports.push(new iI({format:this.config.consoleFormat,minLevel:this.config.minLevel})),this.initSession(t.sessionMetadata));}initSession(e){let t={id:this.sessionId,startedAt:new Date().toISOString(),environment:this.environment,metadata:e,logCount:0,levelCounts:{trace:0,debug:0,info:0,warn:0,error:0,fatal:0}};this.storage.updateSession(this.sessionId,t),this.info("Logging session started",{sessionId:this.sessionId,environment:this.environment.runtime,metadata:e});}child(e){let t=`${this.namespace}:${e}`;if(this.children.has(t))return this.children.get(t);let i=new $v(t,{},this.getRoot());return this.children.set(t,i),i}getRoot(){return this.parent?this.parent.getRoot():this}createEntry(e,t,i,n,s,a){let o={id:Yk(),timestamp:new Date().toISOString(),hrTimestamp:Ln(),level:e,namespace:this.namespace,message:t,sessionId:this.sessionId};return i&&(o.data=Qd(i)),n&&(o.error=Uv(n)),s&&(o.performance=s),a&&a.length>0&&(o.tags=a),this.config.captureSource&&(o.source=Jk(4)),o}log(e){if(!(ws[e.level]<ws[this.config.minLevel])){this.config.persistent&&this.storage.store(e);for(let t of this.transports)try{t.log(e);}catch(i){console.error(`Transport ${t.name} failed:`,i);}}}trace(e,t){this.log(this.createEntry("trace",e,t));}debug(e,t){this.log(this.createEntry("debug",e,t));}info(e,t){this.log(this.createEntry("info",e,t));}warn(e,t){this.log(this.createEntry("warn",e,t));}error(e,t,i){this.log(this.createEntry("error",e,i,t));}fatal(e,t,i){this.log(this.createEntry("fatal",e,i,t));}tagged(e){return new aI(this,e)}logWithTags(e,t,i,n,s){this.log(this.createEntry(e,t,n,s,void 0,i));}time(e){if(!this.config.enablePerformance)return this.createNoopTimer();let t=Ln(),i=[],n=this;return {end(s){let a=Ln(),o=a-t,c={operation:e,durationMs:o,startTime:t,endTime:a};if(i.length>0){c.metrics={};let l=t;for(let u of i)c.metrics[u.name]=u.time-l,l=u.time;}return n.log(n.createEntry("debug",`Performance: ${e}`,s,void 0,c)),c},checkpoint(s){i.push({name:s,time:Ln()});},elapsed(){return Ln()-t}}}createNoopTimer(){return {end:()=>({operation:"",durationMs:0,startTime:0,endTime:0}),checkpoint:()=>{},elapsed:()=>0}}async timeAsync(e,t,i){let n=this.time(e);try{let s=await t();return n.end({...i,success:!0}),s}catch(s){throw n.end({...i,success:false}),s}}timeSync(e,t,i){let n=this.time(e);try{let s=t();return n.end({...i,success:!0}),s}catch(s){throw n.end({...i,success:false}),s}}captureException(e,t){let i=e instanceof Error?e:new Error(String(e));this.error(`Exception captured: ${i.message}`,e,{...t,capturedAt:new Date().toISOString()});}wrapWithErrorHandling(e,t){let i=this;return((...n)=>{try{let s=e(...n);return s instanceof Promise?s.catch(a=>{throw i.error(`Error in ${t}`,a,{args:Qd(n)}),a}):s}catch(s){throw i.error(`Error in ${t}`,s,{args:Qd(n)}),s}})}getSessionId(){return this.sessionId}async getSession(){return this.storage.getSession(this.sessionId)}async getSessions(){return this.storage.getSessions()}async queryLogs(e){return this.storage.queryLogs({sessionId:this.sessionId,...e})}async exportSession(e="text"){return this.storage.exportSession(this.sessionId,e)}downloadLogs(e="text",t){this.exportSession(e).then(i=>{let n=e==="json"?"json":"log",s=t||`ct-logs-${this.sessionId}.${n}`,a=new Blob([i],{type:"text/plain"}),o=URL.createObjectURL(a),c=document.createElement("a");c.href=o,c.download=s,c.click(),URL.revokeObjectURL(o);});}endSession(){this.info("Logging session ended",{duration:Ln()-this.sessionStartTime}),this.storage.updateSession(this.sessionId,{endedAt:new Date().toISOString()}),this.flush();}async flush(){await Promise.all(this.transports.filter(e=>e.flush).map(e=>e.flush()));}addTransport(e){this.transports.push(e);}removeTransport(e){let t=this.transports.findIndex(i=>i.name===e);t>=0&&this.transports.splice(t,1);}getStorage(){return this.storage}},aI=class{constructor(r,e){this.logger=r,this.tags=e;}trace(r,e){this.logger.logWithTags("trace",r,this.tags,e);}debug(r,e){this.logger.logWithTags("debug",r,this.tags,e);}info(r,e){this.logger.logWithTags("info",r,this.tags,e);}warn(r,e){this.logger.logWithTags("warn",r,this.tags,e);}error(r,e,t){this.logger.logWithTags("error",r,this.tags,t,e);}fatal(r,e,t){this.logger.logWithTags("fatal",r,this.tags,t,e);}};function Bl(r,e){return new sI(r,e)}var ox=km(Jd());function rx(r){return "indexFile"in r}function oI(r){return "file"in r&&!("indexFile"in r)}function ur(){return {code:"",language:"javascript",terminalLines:[],terminalInput:"",strokes:[],excalidrawScene:null,activeTool:"code",currentFile:null,fileSystem:{},documentData:null,documentPage:1,documentZoom:1,documentScroll:{x:0,y:0},cursorPosition:{x:0,y:0,visible:false},fileCreation:null}}function eh(r){if(r==null)return r;try{return typeof structuredClone=="function"?structuredClone(r):JSON.parse(JSON.stringify(r))}catch{return Array.isArray(r)?[...r]:typeof r=="object"?{...r}:r}}function $l(r){return {code:r.code,language:r.language,terminalLines:r.terminalLines.map(e=>({...e})),terminalInput:r.terminalInput,strokes:r.strokes.map(e=>({...e,points:e.points.map(t=>({...t}))})),excalidrawScene:r.excalidrawScene?{elements:r.excalidrawScene.elements.map(e=>typeof e=="object"&&e!==null?eh(e):e),appState:r.excalidrawScene.appState?eh(r.excalidrawScene.appState):void 0,files:r.excalidrawScene.files?eh(r.excalidrawScene.files):void 0}:null,activeTool:r.activeTool,currentFile:r.currentFile,fileSystem:{...r.fileSystem},documentData:r.documentData?{...r.documentData}:null,documentPage:r.documentPage,documentZoom:r.documentZoom,documentScroll:{...r.documentScroll},cursorPosition:{...r.cursorPosition},fileCreation:r.fileCreation?{...r.fileCreation}:null}}function Cn(r,e=false){let t=String(r).padStart(3,"0");return e?`chunk-${t}.json.gz`:`chunk-${t}.json`}function zv(r,e){for(let t=0;t<r.chunks.length;t++){let i=r.chunks[t];if(i&&e>=i.startTimeMs&&e<=i.endTimeMs)return t}if(r.chunks.length>0&&r.chunks[0]&&e<r.chunks[0].startTimeMs)return 0;if(r.chunks.length>0){let t=r.chunks[r.chunks.length-1];if(t&&e>t.endTimeMs)return r.chunks.length-1}return -1}function Gv(r,e,t){let i=[];for(let n=0;n<r.chunks.length;n++){let s=r.chunks[n];s&&s.endTimeMs>=e&&s.startTimeMs<=t&&i.push(n);}return i}var Ls="1.1.0",lI=["1.0.0","1.1.0"],ut={MANIFEST:"manifest.json",EVENTS_LEGACY:"events.json",EVENTS_INDEX:"events/index.json",VIDEO:"media/video.webm",AUDIO:"media/audio.webm"},Dn={EVENTS_PER_CHUNK:1e3,CHUNK_DURATION_MS:3e5};var Rn={BUFFER_BEHIND:2,BUFFER_AHEAD:3,MAX_CHUNKS_IN_MEMORY:10};var As={MAX_EVENTS:1e6,MAX_EVENT_SIZE_BYTES:1e7,MAX_FILE_SIZE_BYTES:5e9,MAX_MARKERS:1e4,MAX_FILES_IN_FILESYSTEM:1e3,MAX_CHUNKS:1e4,MAX_CHUNK_SIZE:1e7},cI=new Set(["init","code","code_edit","language","terminal","terminal_input","stroke_start","whiteboard_points","stroke_end","whiteboard_stroke","whiteboard_clear","whiteboard_undo","whiteboard","whiteboard_point","excalidraw_scene","excalidraw_clear","document_load","document_page","document_zoom","document_scroll","document_clear","file_create","file_update","file_delete","file_rename","file_switch","file_select","file_change","file_creation_start","file_creation_input","file_creation_cancel","cursor_move","cursor_click","cursor_enter","cursor_leave","tool_switch","tool","marker"]),uI=new Set(["file_create","file_update","file_delete","file_rename","file_switch"]);function Hv(r){return typeof r!="string"?"path must be a string":r===""||r.trim()===""?"path cannot be empty":r==="/"||r==="\\"?"path cannot be root directory":r.includes("..")?'path cannot contain ".." (path traversal)':r.startsWith("/")||/^[a-zA-Z]:/.test(r)?"path must be relative, not absolute":r.includes("\0")?"path cannot contain null bytes":null}function dI(r){return "totalCount"in r?r.totalCount:"count"in r?r.count:0}function ix(r){let e=[],t=[],i=nx(r.manifest);i.valid||e.push(...i.errors??[]),t.push(...i.warnings??[]);let n=sx(r.events);n.valid||e.push(...n.errors??[]),t.push(...n.warnings??[]);let s=dI(r.manifest.events);return s!==r.events.length&&t.push(`Event count mismatch: manifest says ${s}, actual is ${r.events.length}`),r.manifest.media.video&&!r.mediaBlob&&t.push("Manifest declares video but no media blob provided"),{valid:e.length===0,errors:e.length>0?e:void 0,warnings:t.length>0?t:void 0}}function nx(r){let e=[],t=[];if(r.formatVersion?lI.includes(r.formatVersion)||e.push(`Unsupported format version: ${r.formatVersion}`):e.push("Missing formatVersion"),r.id||e.push("Missing id"),r.name||e.push("Missing name"),(typeof r.duration!="number"||r.duration<0)&&e.push("Invalid duration"),r.createdAt||e.push("Missing createdAt"),r.modifiedAt||e.push("Missing modifiedAt"),!r.events)e.push("Missing events reference");else {let i=r.events;rx(i)?(i.indexFile||e.push("Chunked events missing indexFile"),(typeof i.chunkCount!="number"||i.chunkCount<0)&&e.push("Chunked events has invalid chunkCount"),(typeof i.totalCount!="number"||i.totalCount<0)&&e.push("Chunked events has invalid totalCount")):oI(i)?i.file||e.push("Legacy events missing file path"):e.push("Invalid events reference format");}if(r.markers)if(!Array.isArray(r.markers))e.push("markers must be an array");else {let i=new Set;for(let n=0;n<r.markers.length;n++){let s=r.markers[n];s&&(s.id?i.has(s.id)?e.push(`Marker ${n}: duplicate id "${s.id}"`):i.add(s.id):e.push(`Marker ${n}: missing id`),(typeof s.time!="number"||s.time<0)&&e.push(`Marker ${n}: invalid time`),s.label||e.push(`Marker ${n}: missing label`),["chapter","highlight","quiz","note"].includes(s.type)||e.push(`Marker ${n}: invalid type "${s.type}"`));}r.markers.length>As.MAX_MARKERS&&t.push(`Too many markers: ${r.markers.length} (max: ${As.MAX_MARKERS})`);}return r.media.video&&(r.media.video.file||e.push("Video missing file path"),r.media.video.mimeType||e.push("Video missing mimeType"),typeof r.media.video.duration!="number"&&e.push("Video missing duration"),typeof r.media.video.width!="number"&&e.push("Video missing width"),typeof r.media.video.height!="number"&&e.push("Video missing height")),{valid:e.length===0,errors:e.length>0?e:void 0,warnings:t.length>0?t:void 0}}function sx(r){let e=[],t=[];if(!Array.isArray(r))return {valid:false,errors:["Events must be an array"]};r.length>As.MAX_EVENTS&&e.push(`Too many events: ${r.length} (max: ${As.MAX_EVENTS})`);let i=false,n=-1;for(let s=0;s<r.length;s++){let a=r[s];if(a){if(!a.type){e.push(`Event ${s}: missing type`);continue}if(cI.has(a.type)||e.push(`Event ${s}: invalid type "${a.type}"`),(typeof a.time!="number"||a.time<0)&&e.push(`Event ${s}: invalid time`),a.data===void 0)e.push(`Event ${s}: missing data`);else try{let o=JSON.stringify(a.data),c=new TextEncoder().encode(o).length;c>As.MAX_EVENT_SIZE_BYTES&&e.push(`Event ${s}: data size (${(c/1e6).toFixed(2)}MB) exceeds limit (${As.MAX_EVENT_SIZE_BYTES/1e6}MB)`);}catch{e.push(`Event ${s}: data contains circular references or is not serializable`);}if(a.type==="init"&&(i=true),uI.has(a.type)&&a.data){let o=a.data;if("path"in o){let c=Hv(o.path);c&&e.push(`Event ${s} (${a.type}): ${c}`);}if("newPath"in o){let c=Hv(o.newPath);c&&e.push(`Event ${s} (${a.type}): newPath - ${c}`);}}a.time<n&&e.push(`Event ${s}: time ${a.time}ms is before previous event at ${n}ms (events must be in chronological order)`),n=a.time;}}return r.length>0&&!i&&t.push("No init event found - state reconstruction may start with empty state"),{valid:e.length===0,errors:e.length>0?e:void 0,warnings:t.length>0?t:void 0}}var th=null,hI={minLevel:"debug",console:true,consoleFormat:"pretty",persistent:true,enablePerformance:true};function fI(){return th||(th=Bl("@ct-courses/core",hI)),th}function uh(r){return fI().child(r)}var ax=()=>uh("format"),dh=()=>uh("engine");var pI=()=>uh("services"),Ul=ax();function Xa(r){if(!r||typeof r!="string")return;let e=r.replace(/\\/g,"/");if(e=e.replace(/^[a-zA-Z]:\//,""),e.startsWith("/")&&(e=e.substring(1)),!!e)return e}function mI(r){if(!r.data)return r;let e={...r.data};if("path"in e&&typeof e.path=="string"&&(e.path=Xa(e.path)||"main.txt"),"oldPath"in e&&typeof e.oldPath=="string"&&(e.oldPath=Xa(e.oldPath)||"main.txt"),"newPath"in e&&typeof e.newPath=="string"&&(e.newPath=Xa(e.newPath)||"main.txt"),"currentFile"in e&&typeof e.currentFile=="string"&&(e.currentFile=Xa(e.currentFile)),"fileSystem"in e&&typeof e.fileSystem=="object"&&e.fileSystem!==null){let t={};for(let[i,n]of Object.entries(e.fileSystem)){let s=Xa(i)||i;t[s]=n;}e.fileSystem=t;}return {...r,data:e}}var Kv={loadAllEvents:false,validateEvents:true,loadMedia:true,loadAssets:true};async function zl(r,e=Kv){let t={...Kv,...e},i=await ch.default.loadAsync(r),n=i.file(ut.MANIFEST);if(!n)throw new Error("Invalid .ct file: missing manifest.json");let s=await n.async("string"),a=JSON.parse(s),o=nx(a);if(!o.valid)throw new Error(`Invalid manifest: ${o.errors?.join(", ")}`);let c=rx(a.events),l=[],u,d;if(c){let p=a.events,g=i.file(p.indexFile);if(g){let m=await g.async("string");u=JSON.parse(m),d=async y=>{let v=performance.now(),E=u.chunks[y];if(!E)return {chunk:void 0,loadTimeMs:performance.now()-v,fromCache:false,error:`Chunk ${y} not found`};try{let b=i.file(E.file);if(!b)throw new Error(`Chunk file not found: ${E.file}`);let S=await b.async("string");return {chunk:JSON.parse(S),loadTimeMs:performance.now()-v,fromCache:!1}}catch(b){return {chunk:void 0,loadTimeMs:performance.now()-v,fromCache:false,error:b instanceof Error?b.message:String(b)}}},t.loadAllEvents&&u&&(l=await gI(i,u));}else {Ul.debug("Chunk index not found, checking legacy path",{expectedPath:p.indexFile});let m=i.file(ut.EVENTS_LEGACY);if(Ul.debug("Legacy events file check",{found:!!m}),m){Ul.warn("Manifest specifies chunked format but file not found, using legacy",{expectedChunkIndex:p.indexFile,usingLegacy:ut.EVENTS_LEGACY});let y=await m.async("string");l=JSON.parse(y),Ul.info("Loaded events from legacy format",{eventCount:l.length});}else throw new Error(`Invalid .ct file: missing chunk index at ${p.indexFile}`)}}else {let p=a.events,g="file"in p?p.file:ut.EVENTS_LEGACY,m=i.file(g);if(!m)throw new Error(`Invalid .ct file: missing events file at ${g}`);let y=await m.async("string");l=JSON.parse(y);}if(l=l.map(mI),t.validateEvents&&l.length>0){let p=sx(l);if(!p.valid)throw new Error(`Invalid events: ${p.errors?.join(", ")}`)}let h;if(t.loadMedia){if(a.media.audio){let p=i.file(a.media.audio.file);if(p){let g=await p.async("arraybuffer");h=new Blob([g],{type:a.media.audio.mimeType});}}else if(a.media.video){let p=i.file(a.media.video.file);if(p){let g=await p.async("arraybuffer");h=new Blob([g],{type:a.media.video.mimeType});}}}let f=new Map;if(t.loadAssets&&a.assets){let p=[...a.assets.documents??[],...a.assets.images??[]];for(let g of p){let m=i.file(g.file);if(m){let y=await m.async("arraybuffer");f.set(g.id,new Blob([y],{type:g.mimeType}));}}}return {manifest:a,events:l,mediaBlob:h,assets:f.size>0?f:void 0,isChunked:c,chunkIndex:u,loadChunk:d}}async function gI(r,e){let t=[],i=[...e.chunks].sort((n,s)=>n.id-s.id);for(let n of i){let s=r.file(n.file);if(!s){console.warn(`Chunk file not found: ${n.file}`);continue}let a=await s.async("string"),o=JSON.parse(a);t.push(...o.events);}return t}async function yI(r){let t=(await ch.default.loadAsync(r)).file(ut.MANIFEST);if(!t)throw new Error("Invalid .ct file: missing manifest.json");let i=await t.async("string");return JSON.parse(i)}function lx(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let e=Math.random()*16|0;return (r==="x"?e:e&3|8).toString(16)})}async function vI(r){let e;if(typeof r=="string"?e=new TextEncoder().encode(r).buffer:r instanceof Uint8Array?e=r.slice().buffer:e=r,typeof crypto<"u"&&crypto.subtle)try{let t=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(t)).map(n=>n.toString(16).padStart(2,"0")).join("")}catch(t){return console.warn("[crypto] SHA-256 failed, falling back to simple hash:",t),ah(typeof r=="string"?r:new TextDecoder().decode(e))}return console.warn("[crypto] crypto.subtle not available, using simple hash"),ah(typeof r=="string"?r:new TextDecoder().decode(e))}function ah(r){let e=5381;for(let t=0;t<r.length;t++){let i=r.charCodeAt(t);e=(e<<5)+e+i,e=e&e;}return Math.abs(e).toString(16).padStart(8,"0")}async function Vv(r,e=true){let t=typeof r=="string"?r:JSON.stringify(r);return e?vI(t):ah(t)}async function xI(r,e=true){let t={};for(let[s,a]of Object.entries(r)){let o=typeof a=="string"?a:JSON.stringify(a);t[s]=await Vv(o,e);}let i=Object.keys(t).sort().map(s=>t[s]).join(""),n=await Vv(i,e);return {algorithm:e?"SHA-256":"simple-hash",generatedAt:new Date().toISOString(),files:t,rootChecksum:n}}var EI={compressionLevel:6,validate:true,skipMedia:false,useChunkedEvents:true,eventsPerChunk:Dn.EVENTS_PER_CHUNK,chunkDurationMs:Dn.CHUNK_DURATION_MS,generateChecksums:true,generateIntegrity:true,useSHA256:true};async function bI(r,e={}){let t={...EI,...e};if(t.validate){let d=ix(r);if(!d.valid)throw new Error(`Invalid recording: ${d.errors?.join(", ")}`)}let i=new ox.default;console.log("[writeCTFile] Events count:",r.events.length),console.log("[writeCTFile] Duration:",r.manifest.duration),console.log("[writeCTFile] Pre-computed chunks:",r.chunks?.length??"none"),console.log("[writeCTFile] Pre-computed chunkIndex:",r.chunkIndex?"yes":"no"),console.log("[writeCTFile] mediaBlob present:",!!r.mediaBlob,"size:",r.mediaBlob?.size??0),console.log("[writeCTFile] skipMedia option:",t.skipMedia);let n={...r.manifest},s,a;if(r.chunks&&r.chunkIndex)console.log("[writeCTFile] Using pre-computed chunks and index"),s=r.chunks,a=r.chunkIndex;else {console.log("[writeCTFile] Creating chunked events format from flat events...");let d=SI(r.events,t.eventsPerChunk,t.chunkDurationMs,t.generateChecksums);s=d.chunks,a=d.index;}console.log("[writeCTFile] Total",s.length,"chunks with",a.totalEventCount,"events");let o=JSON.stringify(a,null,2);console.log("[writeCTFile] Writing index to:",ut.EVENTS_INDEX),i.file(ut.EVENTS_INDEX,o);for(let d of s){let h=JSON.stringify(d),f=Cn(d.id);console.log("[writeCTFile] Writing chunk:",`events/${f}`),i.file(`events/${f}`,h);}let c={indexFile:ut.EVENTS_INDEX,chunkCount:s.length,totalCount:r.events.length,chunkDurationMs:t.chunkDurationMs,compressed:false};if(n={...n,events:c},!t.skipMedia&&r.mediaBlob){let d=r.mediaBlob.type||"audio/webm";if(d.startsWith("audio/")){let h=ut.AUDIO;n.media.audio||(console.log("[writeCTFile] Adding audio metadata to manifest, blob type:",r.mediaBlob.type),n={...n,media:{...n.media,audio:{file:h,mimeType:d,duration:r.manifest.duration,sampleRate:48e3}}}),console.log("[writeCTFile] Writing audio file:",n.media.audio.file);let f=await r.mediaBlob.arrayBuffer();i.file(n.media.audio.file,f);}else {let h=ut.VIDEO;n.media.video||(console.log("[writeCTFile] Adding video metadata to manifest, blob type:",r.mediaBlob.type),n={...n,media:{...n.media,video:{file:h,mimeType:d,duration:r.manifest.duration,width:1280,height:720,codec:d.includes("vp9")?"vp9":"vp8"}}}),console.log("[writeCTFile] Writing video file:",n.media.video.file);let f=await r.mediaBlob.arrayBuffer();i.file(n.media.video.file,f);}}let l=JSON.stringify(n,null,2);if(i.file(ut.MANIFEST,l),r.assets){let d=[...r.manifest.assets?.documents??[],...r.manifest.assets?.images??[]];for(let h of d){let f=r.assets.get(h.id);if(f){let p=await f.arrayBuffer();i.file(h.file,p);}}}if(r.snapshots&&r.snapshots.length>0){console.log("[writeCTFile] Writing",r.snapshots.length,"state snapshots...");for(let d of r.snapshots){let h=`snapshots/snap-${String(d.chunkId).padStart(3,"0")}.json`,f={chunkId:d.chunkId,timeMs:d.timeMs,state:d.state};i.file(h,JSON.stringify(f,null,2));}}if(t.generateIntegrity){console.log("[writeCTFile] Generating integrity manifest...");let d={[ut.MANIFEST]:n,[ut.EVENTS_INDEX]:a};for(let f of s){let p=`events/${Cn(f.id)}`;d[p]=f;}if(r.snapshots)for(let f of r.snapshots){let p=`snapshots/snap-${String(f.chunkId).padStart(3,"0")}.json`;d[p]=f;}let h=await xI(d,t.useSHA256);i.file("integrity.json",JSON.stringify(h,null,2)),console.log("[writeCTFile] Integrity manifest generated with",Object.keys(h.files).length,"files");}return await i.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:t.compressionLevel}})}function SI(r,e,t,i){let n=[],s=[];if(r.length===0){let p={id:0,startTimeMs:0,endTimeMs:0,events:[]},g={id:0,file:`events/${Cn(0)}`,startTimeMs:0,endTimeMs:0,eventCount:0,checksum:"",sizeBytes:JSON.stringify(p).length,hasSnapshot:false};return {chunks:[p],index:{formatVersion:Ls,chunks:[g],totalEventCount:0,totalChunks:1,totalDuration:0,chunkDurationMs:t}}}let a=[...r].sort((p,g)=>p.time-g.time),o=[],c=a[0]?.time??0,l=0;for(let p of a){let g=p.time-c;if(o.length>=e&&g>=t&&o.length>0){let y=jv(o,l);n.push(y),s.push(Wv(y,i)),l++,o=[],c=p.time;}o.push(p);}if(o.length>0){let p=jv(o,l);n.push(p),s.push(Wv(p,i));}let u=a[a.length-1],d=a[0],h=(u?.time??0)-(d?.time??0),f={formatVersion:Ls,chunks:s,totalEventCount:r.length,totalChunks:n.length,totalDuration:h,chunkDurationMs:t};return {chunks:n,index:f}}function jv(r,e,t){let i=r[0],n=r[r.length-1];return {id:e,startTimeMs:i?.time??0,endTimeMs:n?.time??0,events:r}}function Wv(r,e){let t=JSON.stringify(r);return {id:r.id,file:`events/${Cn(r.id)}`,startTimeMs:r.startTimeMs,endTimeMs:r.endTimeMs,eventCount:r.events.length,sizeBytes:t.length,hasSnapshot:r.snapshotAtStart!==void 0,checksum:e?_I(t):""}}function _I(r){let e=0;for(let t=0;t<r.length;t++){let i=r.charCodeAt(t);e=(e<<5)-e+i,e=e&e;}return Math.abs(e).toString(16).padStart(8,"0")}function TI(r="Untitled Recording"){let e=new Date().toISOString();return {manifest:{formatVersion:Ls,generator:"CT-Courses Core",id:lx(),name:r,duration:0,createdAt:e,modifiedAt:e,media:{},events:{indexFile:ut.EVENTS_INDEX,chunkCount:0,totalCount:0,chunkDurationMs:Dn.CHUNK_DURATION_MS,compressed:false},markers:[]},events:[]}}var wI=class{constructor(){this.migrations=new Map;}register(r){let e=`${r.from}\u2192${r.to}`;this.migrations.set(e,r);}get(r,e){return this.migrations.get(`${r}\u2192${e}`)}getPath(r,e){let t=this.get(r,e);if(t)return [t];let i=new Set,n=[{version:r,path:[]}];for(;n.length>0;){let{version:s,path:a}=n.shift();if(s===e)return a;if(!i.has(s)){i.add(s);for(let[,o]of this.migrations)o.from===s&&!i.has(o.to)&&n.push({version:o.to,path:[...a,o]});}}return []}canMigrate(r,e){return this.getPath(r,e).length>0}},AI=new wI;function kI(r,e){let t=[],i=r,n={formatVersion:"1.1.0",generator:i.generator||"CT-Courses Core (migrated)",id:i.id,name:i.name,description:i.description,duration:i.duration,createdAt:i.createdAt,modifiedAt:new Date().toISOString(),media:i.media,events:{file:ut.EVENTS_LEGACY,count:e.length},markers:i.markers||[],author:i.author,assets:i.assets},s=i.events;s&&"file"in s&&(n.events.file=s.file,n.events.count=s.count||e.length);let a=e.map(o=>{let c={...o};if(o.type==="terminal"){let l=o.data;if(l.lines&&!l.output){let u=l.lines.map(d=>d.text).join(`
17
+ `);c.data={...l,output:{text:u,stream:"stdout"},lines:l.lines},t.push(`Migrated terminal event at ${o.time}ms to batched format`);}}if(o.type==="terminal_input"){let l=o.data;l.submitted===void 0&&(c.data={...l,submitted:true});}return c});return {manifest:n,events:a,warnings:t.length>0?t:void 0}}function II(r,e){let t={formatVersion:"1.0.0",generator:r.generator,id:r.id,name:r.name,description:r.description,duration:r.duration,createdAt:r.createdAt,modifiedAt:r.modifiedAt,media:r.media,events:{file:ut.EVENTS_LEGACY,count:e.length},markers:r.markers,author:r.author,assets:r.assets},i=e.map(n=>{let s={...n};if(n.type==="terminal"){let a=n.data;a.output&&a.lines&&(s.data={lines:a.lines,cleared:a.cleared});}if(n.type==="terminal_input"){let a=n.data;s.data={input:a.input};}return s});return {manifest:t,events:i}}AI.register({from:"1.0.0",to:"1.1.0",migrate:kI,rollback:II,description:"Migrate to chunked events, batched terminal output, and enhanced metadata"});pI();function oh(r,e,t){return Math.max(e,Math.min(t,r))}function rh(r,e,t,i=""){let n=oh(e,0,r.length),s=oh(t,0,r.length-n);return r.slice(0,n)+i+r.slice(n+s)}var ks=dh();function Is(){return {activeStroke:null}}function Pn(r,e,t){if(!e||typeof e.type!="string")return ks.warn("Invalid event received",{event:e}),r;try{return RI(r,e,t)}catch(i){return ks.error(`Error applying event '${e.type}'`,i,{eventTime:e.time}),r}}function RI(r,e,t){let i=$l(r);switch(e.type){case "init":i.code=e.data.code??"",i.language=e.data.language??"javascript",i.terminalLines=Array.isArray(e.data.terminal)?[...e.data.terminal]:[],i.terminalInput=e.data.terminalInput??"",i.strokes=Array.isArray(e.data.strokes)?e.data.strokes.map(s=>({...s,points:Array.isArray(s.points)?[...s.points]:[]})):[],i.excalidrawScene=e.data.excalidrawScene??null,i.activeTool=e.data.tool??"code",i.currentFile=e.data.currentFile??null,i.fileSystem=e.data.fileSystem?{...e.data.fileSystem}:{},i.documentData=e.data.document??null,i.documentPage=e.data.documentPage??1,i.documentZoom=e.data.documentZoom??1,i.documentScroll=e.data.documentScroll?{...e.data.documentScroll}:{x:0,y:0};let n=Object.keys(i.fileSystem);if(i.code&&n.length===0){let a=`main.${i.language==="python"?"py":i.language==="javascript"?"js":i.language}`;i.fileSystem={[a]:i.code},i.currentFile=a;}else if(n.length>0&&!i.currentFile){i.currentFile=n[0];let s=i.fileSystem[i.currentFile];s&&(i.code===""||i.code===`// Start coding...
18
+ `||i.code===`# Start coding...
19
+ `)&&(i.code=s);}break;case "code":if(i.code=e.data.content,e.data.language&&(i.language=e.data.language),Object.keys(i.fileSystem).length===0&&e.data.content){let s=e.data.language||i.language||"python",o=`main.${s==="python"?"py":s==="javascript"?"js":s}`;i.fileSystem={[o]:e.data.content},i.currentFile=o;}else i.currentFile&&i.fileSystem[i.currentFile]!==void 0&&(i.fileSystem={...i.fileSystem,[i.currentFile]:e.data.content});break;case "language":i.language=e.data.language;break;case "terminal":if(e.data.cleared&&(i.terminalLines=[],i.terminalInput=""),e.data.addedLines&&e.data.lines)i.terminalLines=[...i.terminalLines,...e.data.lines];else if(e.data.command!==void 0){let s=typeof e.data.output=="string"?e.data.output:e.data.output?.text??"",a=[{type:"input",text:`$ ${e.data.command}`},{type:"output",text:s}];i.terminalLines=[...i.terminalLines,...a];}else if(e.data.output){let s=typeof e.data.output=="string"?e.data.output:e.data.output?.text??"";if(s){let a={type:"output",text:s};i.terminalLines=[...i.terminalLines,a];}}else e.data.lines&&!e.data.cleared?i.terminalLines=[...i.terminalLines,...e.data.lines]:e.data.lines&&e.data.cleared&&(i.terminalLines=[...e.data.lines]);e.data.inputCleared&&(i.terminalInput="");break;case "terminal_input":i.terminalInput=e.data.input??e.data.value??"";break;case "stroke_start":t.activeStroke={id:e.data.id,color:e.data.color,width:e.data.width,opacity:e.data.opacity??1,tool:e.data.tool,points:[]};break;case "whiteboard_points":if(t.activeStroke&&t.activeStroke.id===e.data.strokeId)t.activeStroke.points.push(...e.data.points);else if(e.data.points?.length&&i.strokes.length>0){let s=i.strokes[i.strokes.length-1];s&&(i.strokes=[...i.strokes.slice(0,-1),{...s,points:[...s.points,...e.data.points]}]);}break;case "stroke_end":t.activeStroke&&t.activeStroke.id===e.data.strokeId&&(i.strokes=[...i.strokes,t.activeStroke],t.activeStroke=null);break;case "whiteboard_stroke":i.strokes=[...i.strokes,{...e.data.stroke,points:[...e.data.stroke.points]}];break;case "whiteboard_clear":i.strokes=[];break;case "whiteboard_undo":e.data.strokeId?i.strokes=i.strokes.filter(s=>s.id!==e.data.strokeId):i.strokes.length>0&&(i.strokes=i.strokes.slice(0,-1));break;case "excalidraw_scene":i.excalidrawScene={elements:e.data.elements,appState:e.data.appState,files:e.data.files};break;case "excalidraw_clear":i.excalidrawScene=null;break;case "document_load":i.documentData={id:e.data.id,name:e.data.name,type:e.data.type,data:e.data.data,assetRef:e.data.assetRef,numPages:e.data.numPages},i.documentPage=1;break;case "document_page":i.documentPage=e.data.page;break;case "document_zoom":i.documentZoom=e.data.zoom;break;case "document_scroll":i.documentScroll={x:e.data.x,y:e.data.y};break;case "document_clear":i.documentData=null;break;case "file_create":i.fileSystem={...i.fileSystem,[e.data.path]:e.data.content},i.currentFile=e.data.path,i.fileCreation=null;break;case "file_update":i.fileSystem={...i.fileSystem,[e.data.path]:e.data.content};break;case "file_delete":{let{[e.data.path]:s,...a}=i.fileSystem;i.fileSystem=a,i.currentFile===e.data.path&&(i.currentFile=Object.keys(a)[0]??null);break}case "file_rename":{let s=i.fileSystem[e.data.oldPath];if(s!==void 0){i.fileSystem[e.data.newPath]!==void 0&&e.data.oldPath!==e.data.newPath&&ks.warn("file_rename: Overwriting existing file",{newPath:e.data.newPath,oldPath:e.data.oldPath});let{[e.data.oldPath]:o,...c}=i.fileSystem;i.fileSystem={...c,[e.data.newPath]:s},i.currentFile===e.data.oldPath&&(i.currentFile=e.data.newPath);}break}case "file_switch":{let s=i.fileSystem[e.data.path];s!==void 0?(i.currentFile=e.data.path,i.code=s):e.data.path===""?i.currentFile=null:(ks.debug("file_switch: File not found in filesystem, initializing as empty",{path:e.data.path,existingFiles:Object.keys(i.fileSystem)}),i.currentFile=e.data.path,i.code="",i.fileSystem[e.data.path]="");break}case "cursor_move":i.cursorPosition={x:e.data.x,y:e.data.y,visible:e.data.visible};break;case "cursor_click":break;case "cursor_enter":i.cursorPosition.visible=true;break;case "cursor_leave":i.cursorPosition.visible=false;break;case "code_edit":{let{operation:s,position:a,text:o,deleteCount:c,deleteDirection:l}=e.data,u=i.code,d=u.length,h=oh(a.offset,0,d);if(a.offset!==h&&ks.warn("code_edit: offset out of bounds, clamped",{originalOffset:a.offset,clampedOffset:h,codeLength:d}),s==="insert"&&o)i.code=rh(u,h,0,o);else if(s==="delete"&&c&&c>0){let f=Math.min(c,d);if(l==="forward"){let p=Math.min(f,d-h);i.code=rh(u,h,p,"");}else {let p=Math.max(0,h-f),g=h-p;i.code=rh(u,p,g,"");}}i.currentFile&&i.fileSystem[i.currentFile]!==void 0&&(i.fileSystem={...i.fileSystem,[i.currentFile]:i.code});break}case "file_creation_start":i.fileCreation={type:e.data.type,parentPath:e.data.parentPath,inputValue:""};break;case "file_creation_input":i.fileCreation&&(i.fileCreation={...i.fileCreation,inputValue:e.data.value});break;case "file_creation_cancel":i.fileCreation=null;break;case "tool_switch":i.activeTool=e.data.tool;break;case "tool":i.activeTool=e.data.tool;break;case "whiteboard":e.data.strokes&&(i.strokes=e.data.strokes.map(s=>({...s,points:[...s.points]})));break;case "whiteboard_point":if(i.strokes.length>0&&e.data.point){let s=i.strokes[i.strokes.length-1];s&&(i.strokes=[...i.strokes.slice(0,-1),{...s,points:[...s.points,e.data.point]}]);}break;case "file_select":i.currentFile=e.data.path??null,e.data.content!==void 0?i.code=e.data.content:e.data.path&&i.fileSystem[e.data.path]&&(i.code=i.fileSystem[e.data.path]??""),e.data.language&&(i.language=e.data.language);break;case "file_change":e.data.path&&(i.fileSystem={...i.fileSystem,[e.data.path]:e.data.content??""},i.currentFile===e.data.path&&(i.code=e.data.content??""));break;case "marker":break;default:ks.warn("Unknown event type",{type:e.type});}return i}function CI(r,e){let t=ur(),i=Is();for(let n of r){if(n.time>e)break;t=Pn(t,n,i);}return t}function cx(r,e){let t=0,i=r.length;for(;t<i;){let n=Math.floor((t+i)/2),s=r[n];s&&s.time<e?t=n+1:i=n;}return t}function DI(r,e,t){let i=cx(r,e),n=[];for(let s=i;s<r.length;s++){let a=r[s];if(!a||a.time>=t)break;n.push(a);}return n}function PI(r,e,t,i,n){let s=n??Is(),a=r,o=DI(e,t,i+1);for(let c of o)a=Pn(a,c,s);return a}var MI=360;function Yv(r,e=5e3,t=MI){let i=[];if(r.length===0)return i;let s=r[r.length-1]?.time??0,a=e;Math.ceil(s/e)>t&&(a=Math.ceil(s/t));let c=ur(),l=Is(),u=0;for(let d=0;d<r.length;d++){let h=r[d];h&&(h.time>=u+a&&i.length<t&&(i.push({state:$l(c),timeMs:h.time,eventIndex:d,context:{...l,activeStroke:l.activeStroke?{...l.activeStroke,points:[...l.activeStroke.points]}:null}}),u=h.time),c=Pn(c,h,l));}return i}function Zv(r,e,t){let i=null;for(let n of t)if(n.timeMs<=e)i=n;else break;return i?PI(i.state,r,i.timeMs,e,{...i.context}):CI(r,e)}var Yt=dh(),Rs=class{constructor(r,e=5e3){this.events=Array.isArray(r)?r:[],Yt.info("StateEngine initialized",{eventCount:this.events.length,cacheIntervalMs:e}),this.events.length>0&&Yt.debug("First event preview",{event:JSON.stringify(this.events[0]).slice(0,200)}),this.currentState=ur(),this.currentEventIndex=0,this.currentTimeMs=0,this.context=Is();let t=Yt.time("createStateCache");this.caches=Yv(this.events,e),t.end({cacheCount:this.caches.length});}getCurrentState(){return $l(this.currentState)}getCurrentTime(){return this.currentTimeMs}getStateAtTime(r){return Zv(this.events,r,this.caches)}seek(r){let e=Math.max(0,r);e!==this.currentTimeMs&&(e>this.currentTimeMs?this.advanceTo(e):(this.currentState=Zv(this.events,e,this.caches),this.currentEventIndex=cx(this.events,e+1),this.context=Is()),this.currentTimeMs=e);}advanceTo(r){let e=Math.max(0,r),t=[];for(;this.currentEventIndex<this.events.length;){let i=this.events[this.currentEventIndex];if(!i||i.time>e)break;this.currentState=Pn(this.currentState,i,this.context),t.push(i),this.currentEventIndex++;}return this.currentTimeMs=e,t}reset(){this.currentState=ur(),this.currentEventIndex=0,this.currentTimeMs=0,this.context=Is();let r=this.events.find(t=>t.type==="init");r&&(Yt.debug("Applying init event",{time:r.time}),this.currentState=Pn(this.currentState,r,this.context)),Yt.debug("Reset called, applying events at time 0");let e=this.advanceTo(0);Yt.debug("Reset complete",{appliedEvents:e.length,codePreview:this.currentState.code?.slice(0,50),fileSystemKeys:Object.keys(this.currentState.fileSystem||{})});}getDuration(){return this.events.length===0?0:this.events[this.events.length-1]?.time??0}getEvents(){return this.events}getEventCount(){return this.events.length}hasMoreEvents(){return this.currentEventIndex<this.events.length}peekNextEvent(){return this.events[this.currentEventIndex]??null}updateEvents(r,e=5e3){this.events=r,this.caches=Yv(r,e),this.reset();}},OI={bufferBehind:Rn.BUFFER_BEHIND,bufferAhead:Rn.BUFFER_AHEAD,maxChunksInMemory:Rn.MAX_CHUNKS_IN_MEMORY,preloadThreshold:.8,cacheIntervalMs:5e3},Qa=class extends Rs{constructor(r,e,t={}){if(super([],t.cacheIntervalMs??5e3),this.chunkIndex=r,this.loadChunk=e,this.loadedChunks=new Map,this.currentChunkIndex=0,this.loadingChunks=new Set,this.loadPromises=new Map,this.isDestroyed=false,this.config={...OI,...t},r.chunks.length>0){let i=r.chunks[r.chunks.length-1];this.totalDurationMs=i?.endTimeMs??0;}else this.totalDurationMs=r.totalDuration??0;}async initialize(){await this.ensureChunkLoaded(0),this.preloadAhead(0);}async seekAsync(r){let e=Math.max(0,r),t=zv(this.chunkIndex,e);if(t===-1){this.reset();return}try{await this.ensureChunkLoaded(t);}catch(i){throw Yt.error("Failed to load chunk for seek",i,{chunkIdx:t,timeMs:e}),i}if(!this.loadedChunks.has(t))throw new Error(`Chunk ${t} failed to load for seek to ${e}ms`);this.switchToChunk(t),super.seek(e),this.preloadAhead(t),this.preloadBehind(t),this.evictDistantChunks(t),this.currentChunkIndex=t;}async advanceToAsync(r){let e=Math.max(0,r),t=zv(this.chunkIndex,e);return t!==this.currentChunkIndex&&t!==-1&&(await this.ensureChunkLoaded(t),this.switchToChunk(t),this.currentChunkIndex=t,this.preloadAhead(t)),super.advanceTo(e)}getBufferHealth(){let r=this.loadedChunks.size,e=this.chunkIndex.totalChunks,t=0;for(let[,a]of this.loadedChunks)t+=a.endTimeMs-a.startTimeMs;let i=this.countChunksAhead(this.currentChunkIndex),n=r/e,s;return i>=this.config.bufferAhead?s="healthy":i>=1?s="buffering":r===0?s="empty":s="critical",{status:s,loadedChunks:r,totalChunks:e,currentChunk:this.currentChunkIndex,bufferedTimeMs:t,percentLoaded:n}}getDuration(){return this.totalDurationMs}getChunkIndex(){return this.chunkIndex}isTimeRangeBuffered(r,e){return Gv(this.chunkIndex,r,e).every(i=>this.loadedChunks.has(i))}async preloadTimeRange(r,e){let t=Gv(this.chunkIndex,r,e);await Promise.all(t.map(i=>this.ensureChunkLoaded(i)));}async ensureChunkLoaded(r){if(this.loadedChunks.has(r))return;if(this.isDestroyed)throw new Error("StreamingStateEngine has been destroyed");let e=this.loadPromises.get(r);if(e)return e;let t=this.doLoadChunk(r);this.loadPromises.set(r,t);try{await t;}finally{this.loadPromises.delete(r);}}async doLoadChunk(r){this.loadingChunks.add(r);let e=Yt.time(`loadChunk-${r}`);try{let t=await this.loadChunk(r);if(this.isDestroyed){Yt.warn("Engine destroyed during chunk load",{chunkIdx:r});return}if(t.chunk)this.loadedChunks.set(r,t.chunk),e.end({chunkIdx:r,eventCount:t.chunk.events.length,success:!0});else if(t.error)throw Yt.error(`Failed to load chunk ${r}`,new Error(t.error),{chunkIdx:r}),e.end({chunkIdx:r,success:!1,error:t.error}),new Error(t.error)}finally{this.loadingChunks.delete(r);}}switchToChunk(r){let e=this.loadedChunks.get(r);if(!e){Yt.error("Chunk not loaded when switching",void 0,{chunkIdx:r});return}Yt.debug("Switching to chunk",{chunkIdx:r,eventCount:e.events.length,timeRange:`${e.startTimeMs}ms - ${e.endTimeMs}ms`}),super.updateEvents(e.events,this.config.cacheIntervalMs);}preloadAhead(r){for(let e=1;e<=this.config.bufferAhead;e++){let t=r+e;t<this.chunkIndex.totalChunks&&!this.loadedChunks.has(t)&&this.ensureChunkLoaded(t).catch(i=>{this.isDestroyed||Yt.warn("Preload chunk failed",{chunkIdx:t,error:i?.message||i});});}}preloadBehind(r){for(let e=1;e<=this.config.bufferBehind;e++){let t=r-e;t>=0&&!this.loadedChunks.has(t)&&this.ensureChunkLoaded(t).catch(i=>{this.isDestroyed||Yt.warn("Preload chunk failed",{chunkIdx:t,error:i?.message||i});});}}evictDistantChunks(r){if(this.loadedChunks.size<=this.config.maxChunksInMemory)return;let e=[];for(let t of this.loadedChunks.keys()){let i=Math.abs(t-r);e.push({idx:t,distance:i});}for(e.sort((t,i)=>i.distance-t.distance);this.loadedChunks.size>this.config.maxChunksInMemory;){let t=e.shift();if(!t||t.idx===r)break;this.loadedChunks.delete(t.idx);}}countChunksAhead(r){let e=0;for(let t=r+1;t<this.chunkIndex.totalChunks&&this.loadedChunks.has(t);t++)e++;return e}destroy(){Yt.info("StreamingStateEngine destroyed",{loadedChunks:this.loadedChunks.size,currentChunk:this.currentChunkIndex}),this.isDestroyed=true,this.loadedChunks.clear(),this.loadingChunks.clear(),this.loadPromises.clear(),this.reset();}isEngineDestroyed(){return this.isDestroyed}};dh();ax();var KI={".py":"python",".js":"javascript",".mjs":"javascript",".ts":"typescript",".tsx":"typescript",".jsx":"javascript",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".hpp":"cpp",".c":"c",".h":"c",".java":"java",".rs":"rust",".html":"html",".htm":"html",".css":"css",".json":"json",".md":"markdown",".txt":"plaintext",".xml":"xml",".yaml":"yaml",".yml":"yaml",".sh":"shell",".bash":"shell",".sql":"sql",".go":"go",".rb":"ruby",".php":"php"};function ex(r){let e=r.substring(r.lastIndexOf(".")).toLowerCase();return KI[e]||"plaintext"}var dx=class{constructor(){this.files=new Map,this.cwd="/",this.listeners=new Set;}subscribe(r){return this.listeners.add(r),()=>this.listeners.delete(r)}emit(r){this.listeners.forEach(e=>e(r));}normalizePath(r){r.startsWith("/")||(r=this.cwd+(this.cwd.endsWith("/")?"":"/")+r);let e=r.split("/").filter(i=>i&&i!=="."),t=[];for(let i of e)i===".."?t.pop():t.push(i);return "/"+t.join("/")}getDirectory(r){let e=this.normalizePath(r),t=e.lastIndexOf("/");return t===0?"/":e.substring(0,t)}getFilename(r){let e=this.normalizePath(r);return e.substring(e.lastIndexOf("/")+1)}writeFile(r,e,t={}){let i=this.normalizePath(r),n=t.language||ex(i),s=Date.now(),a=this.files.get(i);return this.files.set(i,{content:e,language:n,createdAt:a?.createdAt||s,modifiedAt:s}),this.emit({type:a?"file_updated":"file_created",path:i,content:e,language:n}),i}readFile(r){let e=this.normalizePath(r),t=this.files.get(e);if(!t)throw new Error(`File not found: ${e}`);return t.content}exists(r){let e=this.normalizePath(r);return this.files.has(e)}stat(r){let e=this.normalizePath(r),t=this.files.get(e);if(!t){if(this.isDirectory(e))return {type:"directory",path:e};throw new Error(`Path not found: ${e}`)}return {type:"file",path:e,language:t.language,size:t.content.length,createdAt:t.createdAt,modifiedAt:t.modifiedAt}}isDirectory(r){let e=this.normalizePath(r)+"/";for(let t of this.files.keys())if(t.startsWith(e)||r==="/"&&t.startsWith("/"))return true;return r==="/"&&this.files.size>0}deleteFile(r){let e=this.normalizePath(r);if(!this.files.has(e))throw new Error(`File not found: ${e}`);return this.files.delete(e),this.emit({type:"file_deleted",path:e}),true}renameFile(r,e){let t=this.normalizePath(r),i=this.normalizePath(e),n=this.files.get(t);if(!n)throw new Error(`File not found: ${t}`);let s=ex(i);return this.files.delete(t),this.files.set(i,{...n,language:s,modifiedAt:Date.now()}),this.emit({type:"file_renamed",oldPath:t,newPath:i}),i}listDir(r="/"){let e=this.normalizePath(r),t=e==="/"?"/":e+"/",i=new Map;for(let[s,a]of this.files.entries())if(e==="/"){let o=s.substring(1),c=o.indexOf("/");if(c===-1)i.set(o,{type:"file",path:s,language:a.language});else {let l=o.substring(0,c);i.has(l)||i.set(l,{type:"directory",path:"/"+l});}}else if(s.startsWith(t)){let o=s.substring(t.length),c=o.indexOf("/");if(c===-1)i.set(o,{type:"file",path:s,language:a.language});else {let l=o.substring(0,c);i.has(l)||i.set(l,{type:"directory",path:t+l});}}return Array.from(i.entries()).map(([s,a])=>({name:s,...a})).sort((s,a)=>s.type===a.type?s.name.localeCompare(a.name):s.type==="directory"?-1:1)}mkdir(r){let e=this.normalizePath(r);return this.emit({type:"directory_created",path:e}),e}getAllFiles(){let r={};for(let[e,t]of this.files.entries())r[e]=t.content;return r}getFileTree(){let r={name:"/",type:"directory",children:[],path:"/"};for(let[t,i]of this.files.entries()){let n=t.split("/").filter(Boolean),s=r,a="";for(let o=0;o<n.length;o++){let c=n[o];if(a+="/"+c,o===n.length-1)s.children.push({name:c,type:"file",path:a,language:i.language});else {let u=s.children.find(d=>d.name===c&&d.type==="directory");u||(u={name:c,type:"directory",children:[],path:a},s.children.push(u)),s=u;}}}let e=t=>{t.children&&(t.children.sort((i,n)=>i.type===n.type?i.name.localeCompare(n.name):i.type==="directory"?-1:1),t.children.forEach(e));};return e(r),r}clear(){this.files.clear(),this.cwd="/",this.emit({type:"cleared"});}setWorkingDirectory(r){return this.cwd=this.normalizePath(r),this.cwd}getWorkingDirectory(){return this.cwd}exportState(){let r={};for(let[e,t]of this.files.entries())r[e]={content:t.content,language:t.language};return {files:r,cwd:this.cwd}}importState(r){if(this.clear(),r.files)for(let[e,t]of Object.entries(r.files))this.writeFile(e,t.content,{language:t.language});r.cwd&&(this.cwd=r.cwd);}get fileCount(){return this.files.size}};function hx(r){let e=new dx;return e}var sh={python:{name:"Python",extension:".py",fileName:"main.py",run:{args:["/usr/bin/python3","main.py"],env:["PATH=/usr/bin:/bin","LANG=C.UTF-8","LC_ALL=C.UTF-8"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},javascript:{name:"JavaScript (Node.js)",extension:".js",fileName:"main.js",run:{args:["/usr/bin/node","main.js"],env:["PATH=/usr/bin:/bin","NODE_PATH=/usr/lib/node_modules"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},cpp:{name:"C++",extension:".cpp",fileName:"main.cpp",compile:{args:["/usr/bin/g++","-o","main","main.cpp","-std=c++17","-O2"],env:["PATH=/usr/bin:/bin"],cpuLimit:1e10,memoryLimit:536870912,procLimit:50,copyOutCached:["main"]},run:{args:["main"],env:["PATH=/usr/bin:/bin"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},c:{name:"C",extension:".c",fileName:"main.c",compile:{args:["/usr/bin/gcc","-o","main","main.c","-std=c11","-O2"],env:["PATH=/usr/bin:/bin"],cpuLimit:1e10,memoryLimit:536870912,procLimit:50,copyOutCached:["main"]},run:{args:["main"],env:["PATH=/usr/bin:/bin"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},java:{name:"Java",extension:".java",fileName:"Main.java",compile:{args:["/usr/bin/javac","Main.java"],env:["PATH=/usr/bin:/bin","JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"],cpuLimit:2e10,memoryLimit:536870912,procLimit:100,copyOutCached:["Main.class"]},run:{args:["/usr/bin/java","Main"],env:["PATH=/usr/bin:/bin","JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"],cpuLimit:1e10,memoryLimit:536870912,procLimit:100}},rust:{name:"Rust",extension:".rs",fileName:"main.rs",compile:{args:["/usr/bin/rustc","-o","main","main.rs","-O"],env:["PATH=/usr/bin:/bin"],cpuLimit:3e10,memoryLimit:1073741824,procLimit:50,copyOutCached:["main"]},run:{args:["main"],env:["PATH=/usr/bin:/bin"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},go:{name:"Go",extension:".go",fileName:"main.go",compile:{args:["/usr/bin/go","build","-o","main","main.go"],env:["PATH=/usr/bin:/bin","GOCACHE=/tmp/gocache","HOME=/tmp"],cpuLimit:15e9,memoryLimit:536870912,procLimit:50,copyOutCached:["main"]},run:{args:["./main"],env:["PATH=/usr/bin:/bin"],cpuLimit:5e9,memoryLimit:268435456,procLimit:50}},typescript:{name:"TypeScript",extension:".ts",fileName:"main.ts",run:{args:["/usr/bin/node","--loader","ts-node/esm","main.ts"],env:["PATH=/usr/bin:/bin","NODE_PATH=/usr/lib/node_modules"],cpuLimit:1e10,memoryLimit:268435456,procLimit:50}}},tx={python:"python",javascript:"javascript",typescript:"typescript",cpp:"cpp",c:"c",java:"java",rust:"rust",go:"go"},VI=3e4,jI=class{constructor(r){this.config=r;}getApiUrl(r){return `${this.config.baseUrl.replace(/\/+$/,"")}${r}`}async request(r,e="GET",t,i=VI){let n={Accept:"application/json"};t&&(n["Content-Type"]="application/json"),this.config.apiKey&&(n["X-API-Key"]=this.config.apiKey);let s=new AbortController,a=setTimeout(()=>s.abort(),i);try{let o=await fetch(this.getApiUrl(r),{method:e,headers:n,body:t?JSON.stringify(t):void 0,signal:s.signal});if(!o.ok){let l=await o.text().catch(()=>"Unknown error");throw new Error(`Go-Judge request failed: ${o.status} ${o.statusText} - ${l}`)}let c=o.headers.get("content-type");if(!c?.includes("application/json")){let l=await o.text().catch(()=>"");throw new Error(`Expected JSON response but got ${c}: ${l.slice(0,100)}`)}return await o.json()}catch(o){throw o instanceof DOMException&&o.name==="AbortError"?new Error(`Go-Judge request timed out after ${i}ms`):o instanceof TypeError&&o.message.includes("fetch")?new Error(`Go-Judge server unreachable: ${o.message}`):o}finally{clearTimeout(a);}}async checkHealth(){try{return await this.request("/version"),!0}catch{return false}}async getVersion(){return (await this.request("/version")).buildVersion||"unknown"}async executeCode(r,e,t=""){let i=tx[e]||e,n=sh[i];if(!n)return {success:false,error:`Unsupported language: ${e}`,stdout:"",stderr:`Language "${e}" is not supported for execution.`,exitCode:-1,time:0,memory:0};try{return n.compile?await this.compileAndRun(r,n,t):await this.runDirectly(r,n,t)}catch(s){let a=s instanceof Error?s.message:"Unknown error";return {success:false,error:a,stdout:"",stderr:`Execution error: ${a}`,exitCode:-1,time:0,memory:0}}}async executeCodeMultiFile(r,e,t="",i={},n){let s=tx[e]||e,a=sh[s];if(!a)return {success:false,error:`Unsupported language: ${e}`,stdout:"",stderr:`Language "${e}" is not supported for execution.`,exitCode:-1,time:0,memory:0};try{let o=this.buildCopyIn(r,a,i,n),c=n||a.fileName;return a.compile?await this.compileAndRunMultiFile(a,t,o,c):await this.runDirectlyMultiFile(a,t,o,c)}catch(o){let c=o instanceof Error?o.message:"Unknown error";return {success:false,error:c,stdout:"",stderr:`Execution error: ${c}`,exitCode:-1,time:0,memory:0}}}buildCopyIn(r,e,t,i){let n={},s=i||e.fileName;n[s]={content:r};for(let[a,o]of Object.entries(t)){let c=a.startsWith("/")?a.substring(1):a;if(c===s)continue;if([e.extension,".txt",".json",".csv",".xml",".yaml",".yml",".h",".hpp",".py",".js",".ts",".java",".rs",".go"].some(u=>c.endsWith(u))){let u=typeof o=="string"?o:o.content;n[c]={content:u};}}return n}async runDirectly(r,e,t){let i={cmd:[{args:e.run.args,env:e.run.env,files:[{content:t},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:e.run.cpuLimit,memoryLimit:e.run.memoryLimit,procLimit:e.run.procLimit,copyIn:{[e.fileName]:{content:r}},copyOut:["stdout","stderr"]}]},s=(await this.request("/run","POST",i))[0];return s?this.parseResult(s):{success:false,error:"No execution result received",stdout:"",stderr:"Go-Judge returned no results",exitCode:-1,time:0,memory:0,phase:"run"}}async runDirectlyMultiFile(r,e,t,i){let n=[...r.run.args],s=n.findIndex(l=>l===r.fileName);s!==-1&&(n[s]=i);let a={cmd:[{args:n,env:r.run.env,files:[{content:e},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:r.run.cpuLimit,memoryLimit:r.run.memoryLimit,procLimit:r.run.procLimit,copyIn:t,copyOut:["stdout","stderr"]}]},c=(await this.request("/run","POST",a))[0];return c?this.parseResult(c):{success:false,error:"No execution result received",stdout:"",stderr:"Go-Judge returned no results",exitCode:-1,time:0,memory:0,phase:"run"}}async compileAndRun(r,e,t){let i={cmd:[{args:e.compile.args,env:e.compile.env,files:[{content:""},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:e.compile.cpuLimit,memoryLimit:e.compile.memoryLimit,procLimit:e.compile.procLimit,copyIn:{[e.fileName]:{content:r}},copyOut:["stdout","stderr"],copyOutCached:e.compile.copyOutCached}]},s=(await this.request("/run","POST",i))[0];if(!s)return {success:false,error:"Compilation failed - no result received",stdout:"",stderr:"Go-Judge returned no compilation results",exitCode:-1,time:0,memory:0,phase:"compile"};if(s.status!=="Accepted")return {success:false,error:"Compilation failed",stdout:s.files?.stdout||"",stderr:s.files?.stderr||this.getStatusMessage(s.status),exitCode:s.exitStatus||-1,time:s.time/1e6,memory:s.memory,phase:"compile"};let a=e.compile.copyOutCached[0];if(!a)return {success:false,error:"No executable name configured",stdout:"",stderr:"Language configuration missing copyOutCached entry",exitCode:-1,time:s.time/1e6,memory:s.memory,phase:"compile"};let o=s.fileIds?.[a];if(!o)return {success:false,error:"Compilation produced no executable",stdout:s.files?.stdout||"",stderr:s.files?.stderr||"No executable file was produced.",exitCode:-1,time:s.time/1e6,memory:s.memory,phase:"compile"};let c={cmd:[{args:e.run.args,env:e.run.env,files:[{content:t},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:e.run.cpuLimit,memoryLimit:e.run.memoryLimit,procLimit:e.run.procLimit,copyIn:{[a]:{fileId:o}},copyOut:["stdout","stderr"]}]},l=await this.request("/run","POST",c);this.deleteFile(o).catch(()=>{});let u=l[0];return u?this.parseResult(u,s.time/1e6):{success:false,error:"Execution failed - no result received",stdout:"",stderr:"Go-Judge returned no execution results",exitCode:-1,time:s.time/1e6,memory:0,phase:"run"}}async compileAndRunMultiFile(r,e,t,i){let n=[...r.compile.args],s=n.findIndex(p=>p===r.fileName);if(s!==-1&&(n[s]=i),r.extension===".cpp"||r.extension===".c"){let p=Object.keys(t).filter(g=>g.endsWith(".cpp")||g.endsWith(".c")||g.endsWith(".cc")||g.endsWith(".cxx"));if(p.length>1){let g=n.filter(y=>y!==i),m=g.findIndex(y=>y.startsWith("-std"));m!==-1?g.splice(m,0,...p):g.push(...p),n.length=0,n.push(...g);}}let a={cmd:[{args:n,env:r.compile.env,files:[{content:""},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:r.compile.cpuLimit,memoryLimit:r.compile.memoryLimit,procLimit:r.compile.procLimit,copyIn:t,copyOut:["stdout","stderr"],copyOutCached:r.compile.copyOutCached}]},c=(await this.request("/run","POST",a))[0];if(!c)return {success:false,error:"Compilation failed - no result received",stdout:"",stderr:"Go-Judge returned no compilation results",exitCode:-1,time:0,memory:0,phase:"compile"};if(c.status!=="Accepted")return {success:false,error:"Compilation failed",stdout:c.files?.stdout||"",stderr:c.files?.stderr||this.getStatusMessage(c.status),exitCode:c.exitStatus||-1,time:c.time/1e6,memory:c.memory,phase:"compile"};let l=r.compile.copyOutCached[0];if(!l)return {success:false,error:"No executable name configured",stdout:"",stderr:"Language configuration missing copyOutCached entry",exitCode:-1,time:c.time/1e6,memory:c.memory,phase:"compile"};let u=c.fileIds?.[l];if(!u)return {success:false,error:"Compilation produced no executable",stdout:c.files?.stdout||"",stderr:"No executable file was produced.",exitCode:-1,time:c.time/1e6,memory:c.memory,phase:"compile"};let d={cmd:[{args:r.run.args,env:r.run.env,files:[{content:e},{name:"stdout",max:65536},{name:"stderr",max:65536}],cpuLimit:r.run.cpuLimit,memoryLimit:r.run.memoryLimit,procLimit:r.run.procLimit,copyIn:{[l]:{fileId:u}},copyOut:["stdout","stderr"]}]},h=await this.request("/run","POST",d);this.deleteFile(u).catch(()=>{});let f=h[0];return f?this.parseResult(f,c.time/1e6):{success:false,error:"Execution failed - no result received",stdout:"",stderr:"Go-Judge returned no execution results",exitCode:-1,time:c.time/1e6,memory:0,phase:"run"}}async deleteFile(r){try{await this.request(`/file/${r}`,"DELETE");}catch{}}parseResult(r,e=0){let t=r.files?.stdout||"",i=r.files?.stderr||"",n=r.status,s=r.exitStatus||0,a=r.time/1e6,o=r.memory,c=n==="Accepted"&&s===0;return {success:c,error:c?null:this.getStatusMessage(n),stdout:t.trim(),stderr:i.trim(),exitCode:s,time:a+e,memory:o,status:n,phase:"run"}}getStatusMessage(r){return {Accepted:"Success","Wrong Answer":"Wrong Answer","Time Limit Exceeded":"Time Limit Exceeded (program took too long)","Memory Limit Exceeded":"Memory Limit Exceeded (program used too much memory)","Runtime Error":"Runtime Error (program crashed)","Compile Error":"Compilation Error","System Error":"System Error (judge server issue)","Internal Error":"Internal Error","Output Limit Exceeded":"Output Limit Exceeded (too much output)"}[r]||r||"Unknown error"}getSupportedLanguages(){return Object.entries(sh).map(([r,e])=>({key:r,name:e.name,extension:e.extension,compiled:!!e.compile}))}};function hh(r){return new jI(r)}var lh={cd:(r,e)=>{if(r.length===0||r[0]==="~")return e.setCwd("/"),{success:true,output:[],exitCode:0};let t=r[0],i=e.resolvePath(t),n=e.getVFS();try{return n.stat(i).type!=="directory"?{success:!1,output:[{type:"error",text:`cd: not a directory: ${t}`}],exitCode:1}:(e.setCwd(i),{success:!0,output:[],exitCode:0})}catch{if(n.listDir(i).length===0){let a=n.getAllFiles();if(!Object.keys(a).some(c=>c.startsWith(i+"/")||c===i)&&i!=="/")return {success:false,output:[{type:"error",text:`cd: no such file or directory: ${t}`}],exitCode:1}}return e.setCwd(i),{success:true,output:[],exitCode:0}}},pwd:(r,e)=>({success:true,output:[{type:"output",text:e.getCwd()}],exitCode:0}),ls:(r,e)=>{let t=r[0]||".",i=e.resolvePath(t),n=e.getVFS();try{let s=n.listDir(i);if(s.length===0)return {success:!0,output:[],exitCode:0};let a=[];for(let o of s){let c=o.type==="directory"?`${o.name}/`:o.name,l=o.type==="directory"?"info":"output";a.push({type:l,text:c});}return {success:!0,output:a,exitCode:0}}catch{return {success:false,output:[{type:"error",text:`ls: cannot access '${t}': No such file or directory`}],exitCode:1}}},cat:(r,e)=>{if(r.length===0)return {success:false,output:[{type:"error",text:"cat: missing file operand"}],exitCode:1};let t=e.getVFS(),i=[];for(let n of r){let s=e.resolvePath(n);try{t.readFile(s).split(`
20
+ `).forEach(o=>{i.push({type:"output",text:o});});}catch{return i.push({type:"error",text:`cat: ${n}: No such file or directory`}),{success:false,output:i,exitCode:1}}}return {success:true,output:i,exitCode:0}},touch:(r,e)=>{if(r.length===0)return {success:false,output:[{type:"error",text:"touch: missing file operand"}],exitCode:1};let t=e.getVFS();for(let i of r){let n=e.resolvePath(i);t.exists(n)||t.writeFile(n,"");}return {success:true,output:[],exitCode:0}},rm:(r,e)=>{if(r.length===0)return {success:false,output:[{type:"error",text:"rm: missing operand"}],exitCode:1};let t=e.getVFS(),i=[];for(let n of r){if(n==="-r"||n==="-rf"||n==="-f")continue;let s=e.resolvePath(n);try{t.deleteFile(s);}catch{if(!r.includes("-f"))return i.push({type:"error",text:`rm: cannot remove '${n}': No such file or directory`}),{success:false,output:i,exitCode:1}}}return {success:true,output:i,exitCode:0}},mkdir:(r,e)=>{if(r.length===0)return {success:false,output:[{type:"error",text:"mkdir: missing operand"}],exitCode:1};let t=e.getVFS();for(let i of r){if(i==="-p")continue;let s=`${e.resolvePath(i)}/.keep`;t.writeFile(s,""),t.deleteFile(s);}return {success:true,output:[],exitCode:0}},mv:(r,e)=>{if(r.length<2)return {success:false,output:[{type:"error",text:"mv: missing destination file operand"}],exitCode:1};let t=e.getVFS(),i=e.resolvePath(r[0]),n=e.resolvePath(r[1]);try{return t.renameFile(i,n),{success:!0,output:[],exitCode:0}}catch(s){return {success:false,output:[{type:"error",text:`mv: cannot move '${r[0]}' to '${r[1]}': ${s}`}],exitCode:1}}},cp:(r,e)=>{if(r.length<2)return {success:false,output:[{type:"error",text:"cp: missing destination file operand"}],exitCode:1};let t=e.getVFS(),i=e.resolvePath(r[0]),n=e.resolvePath(r[1]);try{let s=t.readFile(i);return t.writeFile(n,s),{success:!0,output:[],exitCode:0}}catch{return {success:false,output:[{type:"error",text:`cp: cannot stat '${r[0]}': No such file or directory`}],exitCode:1}}},echo:r=>({success:true,output:[{type:"output",text:r.join(" ")}],exitCode:0}),head:(r,e)=>{let t=r.indexOf("-n"),i=10,n=[];if(t!==-1&&r[t+1]?(i=parseInt(r[t+1],10)||10,n=r.filter((o,c)=>c!==t&&c!==t+1)):n=r,n.length===0)return {success:false,output:[{type:"error",text:"head: missing file operand"}],exitCode:1};let s=e.getVFS(),a=[];for(let o of n){let c=e.resolvePath(o);try{s.readFile(c).split(`
21
+ `).slice(0,i).forEach(d=>{a.push({type:"output",text:d});});}catch{return a.push({type:"error",text:`head: cannot open '${o}' for reading: No such file or directory`}),{success:false,output:a,exitCode:1}}}return {success:true,output:a,exitCode:0}},tail:(r,e)=>{let t=r.indexOf("-n"),i=10,n=[];if(t!==-1&&r[t+1]?(i=parseInt(r[t+1],10)||10,n=r.filter((o,c)=>c!==t&&c!==t+1)):n=r,n.length===0)return {success:false,output:[{type:"error",text:"tail: missing file operand"}],exitCode:1};let s=e.getVFS(),a=[];for(let o of n){let c=e.resolvePath(o);try{s.readFile(c).split(`
22
+ `).slice(-i).forEach(h=>{a.push({type:"output",text:h});});}catch{return a.push({type:"error",text:`tail: cannot open '${o}' for reading: No such file or directory`}),{success:false,output:a,exitCode:1}}}return {success:true,output:a,exitCode:0}},wc:(r,e)=>{if(r.length===0)return {success:false,output:[{type:"error",text:"wc: missing file operand"}],exitCode:1};let t=e.getVFS(),i=[];for(let n of r){let s=e.resolvePath(n);try{let a=t.readFile(s),o=a.split(`
23
+ `).length,c=a.split(/\s+/).filter(u=>u).length,l=a.length;i.push({type:"output",text:` ${o} ${c} ${l} ${n}`});}catch{return i.push({type:"error",text:`wc: ${n}: No such file or directory`}),{success:false,output:i,exitCode:1}}}return {success:true,output:i,exitCode:0}},clear:()=>({success:true,output:[{type:"system",text:"__CLEAR__"}],exitCode:0}),help:()=>({success:true,output:`Available commands:
24
+
25
+ Navigation:
26
+ cd <dir> Change directory
27
+ pwd Print working directory
28
+ ls [path] List directory contents
29
+
30
+ File Operations:
31
+ cat <file> Display file contents
32
+ touch <file> Create empty file
33
+ rm <file> Remove file
34
+ mkdir <dir> Create directory
35
+ mv <src> <dst> Move/rename file
36
+ cp <src> <dst> Copy file
37
+
38
+ Text Operations:
39
+ echo <text> Print text
40
+ head <file> Show first 10 lines
41
+ tail <file> Show last 10 lines
42
+ wc <file> Word, line, character count
43
+
44
+ Code Execution:
45
+ python <file> Run Python file
46
+ node <file> Run JavaScript file
47
+ java <file> Run Java file
48
+ c <file> Run C file
49
+ cpp <file> Run C++ file
50
+ go run <file> Run Go file
51
+ rust <file> Run Rust file
52
+ run [file] Run current/specified file
53
+
54
+ Other:
55
+ clear Clear terminal
56
+ help Show this help
57
+ exit Exit (no-op in browser)
58
+ `.split(`
59
+ `).map(e=>({type:"output",text:e})),exitCode:0}),exit:()=>({success:true,output:[{type:"system",text:"exit: Cannot exit - running in browser"}],exitCode:0}),env:(r,e)=>{let t=e.getEnv();return {success:true,output:Object.entries(t).map(([n,s])=>({type:"output",text:`${n}=${s}`})),exitCode:0}},export:(r,e)=>{for(let t of r){let[i,...n]=t.split("=");i&&n.length>0&&e.setEnv(i,n.join("="));}return {success:true,output:[],exitCode:0}},which:r=>{let e={python:"/usr/bin/python3",python3:"/usr/bin/python3",node:"/usr/bin/node",java:"/usr/bin/java",javac:"/usr/bin/javac",gcc:"/usr/bin/gcc","g++":"/usr/bin/g++",go:"/usr/bin/go",rustc:"/usr/bin/rustc"},t=[];for(let i of r)e[i]?t.push({type:"output",text:e[i]}):lh[i]?t.push({type:"output",text:`${i}: shell built-in command`}):t.push({type:"error",text:`${i} not found`});return {success:true,output:t,exitCode:0}}},WI=class{constructor(r){this.lines=[],this.history=[],this.historyIndex=-1,this.env={},this.customCommands=new Map,this.vfs=r.vfs,this.goJudge=r.goJudge||null,this.cwd=r.initialCwd||"/",this.onOutput=r.onOutput,this.onCwdChange=r.onCwdChange,this.onStateChange=r.onStateChange,this.env={HOME:"/",USER:"user",SHELL:"/bin/bash",PATH:"/usr/bin:/bin",PWD:this.cwd};}getVFS(){return this.vfs}getCwd(){return this.cwd}getLines(){return [...this.lines]}getHistory(){return [...this.history]}getEnv(){return {...this.env}}getState(){return {cwd:this.cwd,lines:this.getLines(),history:this.getHistory(),historyIndex:this.historyIndex,env:this.getEnv()}}setCwd(r){this.cwd=r,this.env.PWD=r,this.onCwdChange?.(r),this.notifyStateChange();}setEnv(r,e){this.env[r]=e,this.notifyStateChange();}resolvePath(r){r.startsWith("~")&&(r="/"+r.substring(1)),r.startsWith("/")||(r=this.cwd+(this.cwd.endsWith("/")?"":"/")+r);let e=r.split("/").filter(i=>i&&i!=="."),t=[];for(let i of e)i===".."?t.pop():t.push(i);return "/"+t.join("/")}registerCommand(r,e){this.customCommands.set(r,e);}async executeCommand(r){let e=r.trim();if(!e)return {success:true,output:[],exitCode:0};this.history[this.history.length-1]!==e&&this.history.push(e),this.historyIndex=-1,this.addLines([{type:"input",text:`$ ${e}`}]);let{cmd:t,args:i}=this.parseCommand(e),n;return this.customCommands.has(t)?n=await this.customCommands.get(t)(i,this):lh[t]?n=await lh[t](i,this):this.isExecutionCommand(t)?n=await this.executeCode(t,i):n={success:false,output:[{type:"error",text:`${t}: command not found`}],exitCode:127},n.output.find(a=>a.text==="__CLEAR__")?(this.lines=[],n.output=[],this.notifyStateChange()):this.addLines(n.output),n}parseCommand(r){let e=[],t="",i=false,n="";for(let s=0;s<r.length;s++){let a=r[s];i?a===n?i=false:t+=a:a==='"'||a==="'"?(i=true,n=a):a===" "||a===" "?t&&(e.push(t),t=""):t+=a;}return t&&e.push(t),{cmd:e[0]||"",args:e.slice(1)}}isExecutionCommand(r){return ["python","python3","node","java","c","cpp","go","rust","run"].includes(r)}async executeCode(r,e){if(!this.goJudge)return {success:false,output:[{type:"error",text:"Code execution not available. Go-Judge not configured."}],exitCode:1};let t,i,n="";switch(r){case "python":case "python3":if(e.length===0)return {success:false,output:[{type:"error",text:"python: missing file argument"}],exitCode:1};t=this.resolvePath(e[0]),i="python";break;case "node":if(e.length===0)return {success:false,output:[{type:"error",text:"node: missing file argument"}],exitCode:1};t=this.resolvePath(e[0]),i="javascript";break;case "java":if(e.length===0)return {success:false,output:[{type:"error",text:"java: missing file argument"}],exitCode:1};e[0].endsWith(".java")?t=this.resolvePath(e[0]):t=this.resolvePath(`${e[0]}.java`),i="java";break;case "c":if(e.length===0)return {success:false,output:[{type:"error",text:"c: missing file argument"}],exitCode:1};t=this.resolvePath(e[0]),i="c";break;case "cpp":if(e.length===0)return {success:false,output:[{type:"error",text:"cpp: missing file argument"}],exitCode:1};t=this.resolvePath(e[0]),i="cpp";break;case "go":if(e[0]!=="run"||e.length<2)return {success:false,output:[{type:"error",text:"Usage: go run <file.go>"}],exitCode:1};t=this.resolvePath(e[1]),i="go";break;case "rust":if(e.length===0)return {success:false,output:[{type:"error",text:"rust: missing file argument"}],exitCode:1};t=this.resolvePath(e[0]),i="rust";break;case "run":if(e.length===0){let l=this.vfs.listDir(this.cwd).find(u=>u.type==="file"&&[".py",".js",".java",".c",".cpp",".go",".rs"].some(d=>u.name.endsWith(d)));if(!l)return {success:false,output:[{type:"error",text:"run: no runnable file found in current directory"}],exitCode:1};t=this.resolvePath(l.name);}else t=this.resolvePath(e[0]);i=this.detectLanguage(t);break;default:return {success:false,output:[{type:"error",text:`${r}: unknown execution command`}],exitCode:1}}let s;try{s=this.vfs.readFile(t);}catch{return {success:false,output:[{type:"error",text:`${r}: ${t}: No such file or directory`}],exitCode:1}}let a={};try{let c=this.vfs.listDir(this.cwd);for(let l of c)if(l.type==="file"){let u=this.resolvePath(l.name);try{a[u]=this.vfs.readFile(u);}catch{}}}catch{}let o=await this.goJudge.executeCodeMultiFile(s,i,n,a,t.substring(t.lastIndexOf("/")+1));return this.formatExecutionResult(o)}detectLanguage(r){let e=r.substring(r.lastIndexOf("."));return {".py":"python",".js":"javascript",".ts":"typescript",".java":"java",".c":"c",".cpp":"cpp",".cc":"cpp",".cxx":"cpp",".go":"go",".rs":"rust"}[e]||"plaintext"}formatExecutionResult(r){let e=[];if(r.stdout&&r.stdout.split(`
60
+ `).forEach(t=>{e.push({type:"output",text:t});}),r.stderr&&r.stderr.split(`
61
+ `).forEach(t=>{t.trim()&&e.push({type:"error",text:t});}),!r.stdout&&!r.stderr&&r.error&&e.push({type:"error",text:r.error}),r.time>0||r.memory>0){let t=r.time<1e3?`${r.time.toFixed(1)}ms`:`${(r.time/1e3).toFixed(2)}s`,i=r.memory>1e6?`${(r.memory/1e6).toFixed(1)}MB`:`${(r.memory/1e3).toFixed(1)}KB`;r.success||e.push({type:"system",text:`Exit ${r.exitCode} | ${t} | ${i}`,time:r.time,memory:r.memory,status:r.status});}return {success:r.success,output:e,exitCode:r.exitCode}}addLines(r){this.lines.push(...r),this.onOutput?.(r),this.notifyStateChange();}clearLines(){this.lines=[],this.notifyStateChange();}historyUp(){return this.history.length===0?null:(this.historyIndex===-1?this.historyIndex=this.history.length-1:this.historyIndex>0&&this.historyIndex--,this.history[this.historyIndex]||null)}historyDown(){return this.historyIndex===-1?null:this.historyIndex<this.history.length-1?(this.historyIndex++,this.history[this.historyIndex]??null):(this.historyIndex=-1,"")}notifyStateChange(){this.onStateChange?.(this.getState());}importState(r){r.cwd&&(this.cwd=r.cwd),r.lines&&(this.lines=[...r.lines]),r.history&&(this.history=[...r.history]),r.historyIndex!==void 0&&(this.historyIndex=r.historyIndex),r.env&&(this.env={...r.env}),this.notifyStateChange();}exportState(){return this.getState()}reset(){this.cwd="/",this.lines=[],this.history=[],this.historyIndex=-1,this.env={HOME:"/",USER:"user",SHELL:"/bin/bash",PATH:"/usr/bin:/bin",PWD:"/"},this.notifyStateChange();}};function fh(r){return new WI(r)}function fx(r){var e,t,i="";if(typeof r=="string"||typeof r=="number")i+=r;else if(typeof r=="object")if(Array.isArray(r)){var n=r.length;for(e=0;e<n;e++)r[e]&&(t=fx(r[e]))&&(i&&(i+=" "),i+=t);}else for(t in r)r[t]&&(i&&(i+=" "),i+=t);return i}function px(){for(var r,e,t=0,i="",n=arguments.length;t<n;t++)(r=arguments[t])&&(e=fx(r))&&(i&&(i+=" "),i+=e);return i}var qI=r=>{let e=ZI(r),{conflictingClassGroups:t,conflictingClassGroupModifiers:i}=r;return {getClassGroupId:a=>{let o=a.split("-");return o[0]===""&&o.length!==1&&o.shift(),yx(o,e)||YI(a)},getConflictingClassGroupIds:(a,o)=>{let c=t[a]||[];return o&&i[a]?[...c,...i[a]]:c}}},yx=(r,e)=>{if(r.length===0)return e.classGroupId;let t=r[0],i=e.nextPart.get(t),n=i?yx(r.slice(1),i):void 0;if(n)return n;if(e.validators.length===0)return;let s=r.join("-");return e.validators.find(({validator:a})=>a(s))?.classGroupId},mx=/^\[(.+)\]$/,YI=r=>{if(mx.test(r)){let e=mx.exec(r)[1],t=e?.substring(0,e.indexOf(":"));if(t)return "arbitrary.."+t}},ZI=r=>{let{theme:e,prefix:t}=r,i={nextPart:new Map,validators:[]};return JI(Object.entries(r.classGroups),t).forEach(([s,a])=>{mh(a,i,s,e);}),i},mh=(r,e,t,i)=>{r.forEach(n=>{if(typeof n=="string"){let s=n===""?e:gx(e,n);s.classGroupId=t;return}if(typeof n=="function"){if(XI(n)){mh(n(i),e,t,i);return}e.validators.push({validator:n,classGroupId:t});return}Object.entries(n).forEach(([s,a])=>{mh(a,gx(e,s),t,i);});});},gx=(r,e)=>{let t=r;return e.split("-").forEach(i=>{t.nextPart.has(i)||t.nextPart.set(i,{nextPart:new Map,validators:[]}),t=t.nextPart.get(i);}),t},XI=r=>r.isThemeGetter,JI=(r,e)=>e?r.map(([t,i])=>{let n=i.map(s=>typeof s=="string"?e+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([a,o])=>[e+a,o])):s);return [t,n]}):r,QI=r=>{if(r<1)return {get:()=>{},set:()=>{}};let e=0,t=new Map,i=new Map,n=(s,a)=>{t.set(s,a),e++,e>r&&(e=0,i=t,t=new Map);};return {get(s){let a=t.get(s);if(a!==void 0)return a;if((a=i.get(s))!==void 0)return n(s,a),a},set(s,a){t.has(s)?t.set(s,a):n(s,a);}}};var eL=r=>{let{separator:e,experimentalParseClassName:t}=r,i=e.length===1,n=e[0],s=e.length,a=o=>{let c=[],l=0,u=0,d;for(let m=0;m<o.length;m++){let y=o[m];if(l===0){if(y===n&&(i||o.slice(m,m+s)===e)){c.push(o.slice(u,m)),u=m+s;continue}if(y==="/"){d=m;continue}}y==="["?l++:y==="]"&&l--;}let h=c.length===0?o:o.substring(u),f=h.startsWith("!"),p=f?h.substring(1):h,g=d&&d>u?d-u:void 0;return {modifiers:c,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:g}};return t?o=>t({className:o,parseClassName:a}):a},tL=r=>{if(r.length<=1)return r;let e=[],t=[];return r.forEach(i=>{i[0]==="["?(e.push(...t.sort(),i),t=[]):t.push(i);}),e.push(...t.sort()),e},rL=r=>({cache:QI(r.cacheSize),parseClassName:eL(r),...qI(r)}),iL=/\s+/,nL=(r,e)=>{let{parseClassName:t,getClassGroupId:i,getConflictingClassGroupIds:n}=e,s=[],a=r.trim().split(iL),o="";for(let c=a.length-1;c>=0;c-=1){let l=a[c],{modifiers:u,hasImportantModifier:d,baseClassName:h,maybePostfixModifierPosition:f}=t(l),p=!!f,g=i(p?h.substring(0,f):h);if(!g){if(!p){o=l+(o.length>0?" "+o:o);continue}if(g=i(h),!g){o=l+(o.length>0?" "+o:o);continue}p=false;}let m=tL(u).join(":"),y=d?m+"!":m,v=y+g;if(s.includes(v))continue;s.push(v);let E=n(g,p);for(let b=0;b<E.length;++b){let S=E[b];s.push(y+S);}o=l+(o.length>0?" "+o:o);}return o};function sL(){let r=0,e,t,i="";for(;r<arguments.length;)(e=arguments[r++])&&(t=vx(e))&&(i&&(i+=" "),i+=t);return i}var vx=r=>{if(typeof r=="string")return r;let e,t="";for(let i=0;i<r.length;i++)r[i]&&(e=vx(r[i]))&&(t&&(t+=" "),t+=e);return t};function aL(r,...e){let t,i,n,s=a;function a(c){let l=e.reduce((u,d)=>d(u),r());return t=rL(l),i=t.cache.get,n=t.cache.set,s=o,o(c)}function o(c){let l=i(c);if(l)return l;let u=nL(c,t);return n(c,u),u}return function(){return s(sL.apply(null,arguments))}}var st=r=>{let e=t=>t[r]||[];return e.isThemeGetter=true,e},xx=/^\[(?:([a-z-]+):)?(.+)\]$/i,oL=/^\d+\/\d+$/,lL=new Set(["px","full","screen"]),cL=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,uL=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,dL=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,hL=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,fL=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_i=r=>Cs(r)||lL.has(r)||oL.test(r),Qi=r=>Ds(r,"length",bL),Cs=r=>!!r&&!Number.isNaN(Number(r)),ph=r=>Ds(r,"number",Cs),eo=r=>!!r&&Number.isInteger(Number(r)),pL=r=>r.endsWith("%")&&Cs(r.slice(0,-1)),Le=r=>xx.test(r),en=r=>cL.test(r),mL=new Set(["length","size","percentage"]),gL=r=>Ds(r,mL,Ex),yL=r=>Ds(r,"position",Ex),vL=new Set(["image","url"]),xL=r=>Ds(r,vL,_L),EL=r=>Ds(r,"",SL),to=()=>true,Ds=(r,e,t)=>{let i=xx.exec(r);return i?i[1]?typeof e=="string"?i[1]===e:e.has(i[1]):t(i[2]):false},bL=r=>uL.test(r)&&!dL.test(r),Ex=()=>false,SL=r=>hL.test(r),_L=r=>fL.test(r);var TL=()=>{let r=st("colors"),e=st("spacing"),t=st("blur"),i=st("brightness"),n=st("borderColor"),s=st("borderRadius"),a=st("borderSpacing"),o=st("borderWidth"),c=st("contrast"),l=st("grayscale"),u=st("hueRotate"),d=st("invert"),h=st("gap"),f=st("gradientColorStops"),p=st("gradientColorStopPositions"),g=st("inset"),m=st("margin"),y=st("opacity"),v=st("padding"),E=st("saturate"),b=st("scale"),S=st("sepia"),I=st("skew"),T=st("space"),w=st("translate"),A=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto",Le,e],L=()=>[Le,e],C=()=>["",_i,Qi],N=()=>["auto",Cs,Le],B=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],F=()=>["solid","dashed","dotted","double","none"],G=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],M=()=>["start","end","center","between","around","evenly","stretch"],H=()=>["","0",Le],Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>[Cs,Le];return {cacheSize:500,separator:":",theme:{colors:[to],spacing:[_i,Qi],blur:["none","",en,Le],brightness:R(),borderColor:[r],borderRadius:["none","","full",en,Le],borderSpacing:L(),borderWidth:C(),contrast:R(),grayscale:H(),hueRotate:R(),invert:H(),gap:L(),gradientColorStops:[r],gradientColorStopPositions:[pL,Qi],inset:k(),margin:k(),opacity:R(),padding:L(),saturate:R(),scale:R(),sepia:H(),skew:R(),space:L(),translate:L()},classGroups:{aspect:[{aspect:["auto","square","video",Le]}],container:["container"],columns:[{columns:[en]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...B(),Le]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:A()}],"overscroll-x":[{"overscroll-x":A()}],"overscroll-y":[{"overscroll-y":A()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",eo,Le]}],basis:[{basis:k()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Le]}],grow:[{grow:H()}],shrink:[{shrink:H()}],order:[{order:["first","last","none",eo,Le]}],"grid-cols":[{"grid-cols":[to]}],"col-start-end":[{col:["auto",{span:["full",eo,Le]},Le]}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":[to]}],"row-start-end":[{row:["auto",{span:[eo,Le]},Le]}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Le]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Le]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...M()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...M(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...M(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[m]}],mx:[{mx:[m]}],my:[{my:[m]}],ms:[{ms:[m]}],me:[{me:[m]}],mt:[{mt:[m]}],mr:[{mr:[m]}],mb:[{mb:[m]}],ml:[{ml:[m]}],"space-x":[{"space-x":[T]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[T]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Le,e]}],"min-w":[{"min-w":[Le,e,"min","max","fit"]}],"max-w":[{"max-w":[Le,e,"none","full","min","max","fit","prose",{screen:[en]},en]}],h:[{h:[Le,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Le,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Le,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Le,e,"auto","min","max","fit"]}],"font-size":[{text:["base",en,Qi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ph]}],"font-family":[{font:[to]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Le]}],"line-clamp":[{"line-clamp":["none",Cs,ph]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",_i,Le]}],"list-image":[{"list-image":["none",Le]}],"list-style-type":[{list:["none","disc","decimal",Le]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[r]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[r]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...F(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",_i,Qi]}],"underline-offset":[{"underline-offset":["auto",_i,Le]}],"text-decoration-color":[{decoration:[r]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:L()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Le]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Le]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...B(),yL]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",gL]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},xL]}],"bg-color":[{bg:[r]}],"gradient-from-pos":[{from:[p]}],"gradient-via-pos":[{via:[p]}],"gradient-to-pos":[{to:[p]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[o]}],"border-w-x":[{"border-x":[o]}],"border-w-y":[{"border-y":[o]}],"border-w-s":[{"border-s":[o]}],"border-w-e":[{"border-e":[o]}],"border-w-t":[{"border-t":[o]}],"border-w-r":[{"border-r":[o]}],"border-w-b":[{"border-b":[o]}],"border-w-l":[{"border-l":[o]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...F(),"hidden"]}],"divide-x":[{"divide-x":[o]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[o]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:F()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...F()]}],"outline-offset":[{"outline-offset":[_i,Le]}],"outline-w":[{outline:[_i,Qi]}],"outline-color":[{outline:[r]}],"ring-w":[{ring:C()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[r]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[_i,Qi]}],"ring-offset-color":[{"ring-offset":[r]}],shadow:[{shadow:["","inner","none",en,EL]}],"shadow-color":[{shadow:[to]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...G(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":G()}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[i]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",en,Le]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[E]}],sepia:[{sepia:[S]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[i]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[E]}],"backdrop-sepia":[{"backdrop-sepia":[S]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Le]}],duration:[{duration:R()}],ease:[{ease:["linear","in","out","in-out",Le]}],delay:[{delay:R()}],animate:[{animate:["none","spin","ping","pulse","bounce",Le]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[b]}],"scale-x":[{"scale-x":[b]}],"scale-y":[{"scale-y":[b]}],rotate:[{rotate:[eo,Le]}],"translate-x":[{"translate-x":[w]}],"translate-y":[{"translate-y":[w]}],"skew-x":[{"skew-x":[I]}],"skew-y":[{"skew-y":[I]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Le]}],accent:[{accent:["auto",r]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Le]}],"caret-color":[{caret:[r]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":L()}],"scroll-mx":[{"scroll-mx":L()}],"scroll-my":[{"scroll-my":L()}],"scroll-ms":[{"scroll-ms":L()}],"scroll-me":[{"scroll-me":L()}],"scroll-mt":[{"scroll-mt":L()}],"scroll-mr":[{"scroll-mr":L()}],"scroll-mb":[{"scroll-mb":L()}],"scroll-ml":[{"scroll-ml":L()}],"scroll-p":[{"scroll-p":L()}],"scroll-px":[{"scroll-px":L()}],"scroll-py":[{"scroll-py":L()}],"scroll-ps":[{"scroll-ps":L()}],"scroll-pe":[{"scroll-pe":L()}],"scroll-pt":[{"scroll-pt":L()}],"scroll-pr":[{"scroll-pr":L()}],"scroll-pb":[{"scroll-pb":L()}],"scroll-pl":[{"scroll-pl":L()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Le]}],fill:[{fill:[r,"none"]}],"stroke-w":[{stroke:[_i,Qi,ph]}],stroke:[{stroke:[r,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}};var bx=aL(TL);function St(...r){return bx(px(r))}var IL={code:{icon:lucideReact.Code2,label:"Code Editor",shortcut:"1"},whiteboard:{icon:lucideReact.PenTool,label:"Whiteboard",shortcut:"2"},document:{icon:lucideReact.FileText,label:"Present Document",shortcut:"3"}};function Ms({activeTool:r,onToolChange:e,tools:t=["code","whiteboard","document"],className:i}){return jsxRuntime.jsx("div",{className:St("w-12 bg-zinc-950 border-r border-zinc-800 flex flex-col items-center py-3 gap-1 rounded-l-xl",i),children:t.map(n=>{let s=IL[n];if(!s)return null;let a=s.icon;return jsxRuntime.jsx("button",{onClick:()=>e(n),className:St("w-9 h-9 flex items-center justify-center rounded-xl transition-all",r===n?"bg-zinc-800 text-white shadow-sm":"text-zinc-500 hover:text-zinc-400 hover:bg-zinc-900"),title:`${s.label} (${s.shortcut})`,children:jsxRuntime.jsx(a,{className:"w-4 h-4"})},n)})})}var CL=100,DL=50;function Mn(r){if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(Mn);let e={};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=Mn(r[t]));return e}function ro(r){return r?{viewBackgroundColor:r.viewBackgroundColor,currentItemStrokeColor:r.currentItemStrokeColor,currentItemBackgroundColor:r.currentItemBackgroundColor,currentItemFillStyle:r.currentItemFillStyle,currentItemStrokeWidth:r.currentItemStrokeWidth,currentItemRoughness:r.currentItemRoughness,currentItemOpacity:r.currentItemOpacity,scrollX:r.scrollX,scrollY:r.scrollY,zoom:r.zoom}:{}}function PL(r,e){if(!r&&!e)return false;if(!r||!e||r.length!==e.length)return true;let t=JSON.stringify(r.map(n=>({id:n.id,version:n.version,versionNonce:n.versionNonce}))),i=JSON.stringify(e.map(n=>({id:n.id,version:n.version,versionNonce:n.versionNonce})));return t!==i}function Os({scene:r=null,onSceneChange:e,onSceneClear:t,mode:i="recording",isPlaying:n=false,onInteract:s,showToolbar:a=true,backgroundColor:o="#000000",className:c}){let l=react.useRef(null),u=react.useRef(null),d=react.useRef(null),h=react.useRef(0),f=react.useRef(null),p=react.useRef(null),g=react.useRef({initialized:false,mode:""}),m=react.useRef(false),y=react.useRef(n),v=i==="playback"&&n,E=i==="recording"||i==="interactive"||i==="playback"&&!n,b=i==="playback"&&!n,S=react.useMemo(()=>{let _={viewBackgroundColor:"#000000",theme:"dark",gridSize:null,currentItemStrokeColor:"#ffffff",currentItemBackgroundColor:"transparent",currentItemFillStyle:"solid",currentItemStrokeWidth:2,currentItemRoughness:1,currentItemOpacity:100};return r?.elements?{elements:r.elements,appState:{..._,viewBackgroundColor:r.appState?.viewBackgroundColor||"#000000"},files:r.files||{}}:{elements:[],appState:_,files:{}}},[r]);react.useEffect(()=>{let _=y.current;if(i==="playback"&&_&&!n){g.current={initialized:false,mode:"interactive"};let L=l.current;if(L){let C=L.getSceneElements(),N=L.getAppState();d.current={elements:Mn(C),appState:ro(N)};}}y.current=n;},[n,i]);let I=react.useCallback((_,k,L)=>{let C=d.current?.elements;if(!PL(C,_))return;let N=performance.now();h.current=N,f.current&&(clearTimeout(f.current),f.current=null);let B={elements:Mn(_),appState:ro(k),files:L?{...L}:{}};d.current=B,e?.(B),s?.();},[e,s]),T=react.useCallback((_,k,L)=>{if(m.current){m.current=false,d.current={elements:Mn(_),appState:ro(k)};return}if(!E||v)return;let C=b?"interactive":i;if((!g.current.initialized||g.current.mode!==C)&&(g.current={initialized:true,mode:C},d.current={elements:Mn(_),appState:ro(k)},b&&s?.()),performance.now()-h.current<DL){f.current&&clearTimeout(f.current),p.current={elements:[..._],appState:k,files:L},f.current=setTimeout(()=>{let B=p.current;B&&(p.current=null,I(B.elements,B.appState,B.files));},CL);return}I(_,k,L);},[E,v,b,i,s,I]);react.useEffect(()=>{if(i!=="playback"||!r||!n)return;let _=l.current;_&&(m.current=true,d.current={elements:Mn(r.elements||[]),appState:ro(r.appState)},_.updateScene({elements:r.elements||[],appState:{...r.appState,viewBackgroundColor:r.appState?.viewBackgroundColor||"#000000",theme:"dark"}}),r.files&&Object.keys(r.files).length>0&&_.addFiles(Object.values(r.files)));},[r,i,n]),react.useEffect(()=>{let _=()=>{let k=l.current;if(!k)return false;try{return k.updateScene({appState:{viewBackgroundColor:"#000000",currentItemStrokeColor:"#ffffff",currentItemBackgroundColor:"transparent",theme:"dark"}}),!0}catch{return false}};if(!_()){let k=[50,100,200,500].map(L=>setTimeout(_,L));return ()=>k.forEach(clearTimeout)}},[]),react.useEffect(()=>()=>{f.current&&clearTimeout(f.current);},[]);let w=react.useMemo(()=>({canvasActions:{changeViewBackgroundColor:!v,clearCanvas:!v,export:false,loadScene:false,saveToActiveFile:false,toggleTheme:false,saveAsImage:false},tools:{image:false},welcomeScreen:false}),[v]),A=react.useCallback(_=>{l.current=_,_&&requestAnimationFrame(()=>{_.updateScene({appState:{viewBackgroundColor:"#000000",currentItemStrokeColor:"#ffffff",currentItemBackgroundColor:"transparent",theme:"dark"}});});},[]);return jsxRuntime.jsxs("div",{ref:u,className:St("h-full w-full relative excalidraw-wrapper",c),style:{backgroundColor:o},children:[jsxRuntime.jsx("style",{children:`
62
+ /* Force dark theme on container elements (not canvas - canvas uses viewBackgroundColor) */
63
+ .excalidraw-wrapper .excalidraw {
64
+ --color-surface-lowest: #000000;
65
+ --color-surface-low: #1a1a1a;
66
+ --color-surface-mid: #262626;
67
+ --color-surface-high: #333333;
68
+ --color-on-surface: #ffffff;
69
+ }
70
+ .excalidraw .HelpButton,
71
+ .excalidraw button[aria-label="Help"] {
72
+ display: none !important;
73
+ }
74
+ .excalidraw .dropdown-menu-group:has(a[href*="excalidraw"]),
75
+ .excalidraw .dropdown-menu-group:has(a[href*="github.com/excalidraw"]),
76
+ .excalidraw .dropdown-menu-group:has(a[href*="discord"]),
77
+ .excalidraw .dropdown-menu-group:has(a[href*="twitter"]) {
78
+ display: none !important;
79
+ }
80
+ .excalidraw a[href*="github.com/excalidraw"],
81
+ .excalidraw a[href*="discord.gg"],
82
+ .excalidraw a[href*="twitter.com"] {
83
+ display: none !important;
84
+ }
85
+ ${v?`
86
+ .excalidraw button[aria-label="Reset the canvas"],
87
+ .excalidraw .dropdown-menu-button:has([data-testid="clear-canvas-button"]) {
88
+ display: none !important;
89
+ }
90
+ `:""}
91
+ `}),jsxRuntime.jsx("div",{className:"h-full w-full",style:{position:"absolute",top:0,left:0,right:0,bottom:0,pointerEvents:v?"none":"auto"},children:jsxRuntime.jsx(excalidraw.Excalidraw,{excalidrawAPI:A,initialData:S,onChange:T,viewModeEnabled:false,zenModeEnabled:false,gridModeEnabled:false,theme:"dark",UIOptions:w,langCode:"en",detectScroll:true,handleKeyboardGlobally:false,autoFocus:E})})]})}reactPdf.pdfjs.GlobalWorkerOptions.workerSrc=`//unpkg.com/pdfjs-dist@${reactPdf.pdfjs.version}/build/pdf.worker.min.mjs`;var Eh=1,kx=.25,Ix=.25,Kl=4,wi={nextPage:["ArrowRight","ArrowDown","PageDown","Space","l","L"],prevPage:["ArrowLeft","ArrowUp","PageUp","j","J"],firstPage:["Home"],lastPage:["End"],zoomIn:["+","="],zoomOut:["-","_"],zoomReset:["0"],fitWidth:["w","W"],fitHeight:["h","H"]};function KL(r){return new Promise((e,t)=>{let i=new FileReader;i.onload=()=>e(i.result),i.onerror=()=>t(i.error),i.readAsDataURL(r);})}function VL(){return `doc_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}function bh({doc:r,isActive:e,onSelect:t,onClose:i,showClose:n=true}){return jsxRuntime.jsxs("div",{className:St("flex items-center gap-1.5 px-3 py-1.5 text-[12px] cursor-pointer border-b-2 transition-colors min-w-0 max-w-[180px]",e?"bg-zinc-800 border-white text-white":"bg-zinc-900 border-transparent text-zinc-500 hover:text-white hover:bg-zinc-850"),onClick:t,children:[jsxRuntime.jsx(lucideReact.FileText,{className:"w-3.5 h-3.5 shrink-0"}),jsxRuntime.jsx("span",{className:"truncate",children:r.name}),n&&i&&jsxRuntime.jsx("button",{onClick:s=>{s.stopPropagation(),i();},className:"ml-1 p-0.5 hover:bg-zinc-700 rounded text-zinc-500 hover:text-red-400 transition-colors shrink-0",children:jsxRuntime.jsx(lucideReact.X,{className:"w-3 h-3"})})]})}function Fs({documentData:r=null,documents:e,activeDocumentId:t,currentPage:i=1,zoom:n=Eh,scrollPosition:s={x:0,y:0},onDocumentLoad:a,onDocumentSelect:o,onDocumentRemove:c,onPageChange:l,onZoomChange:u,onScrollChange:d,onDocumentClear:h,mode:f="recording",isPlaying:p=false,onInteract:g,showTabBar:m=true,showToolbar:y=true,showPageIndicator:v=true,allowUpload:E=true,allowMultiple:b=true,backgroundColor:S="#1a1a1a",className:I}){let[T,w]=react.useState([]),[A,_]=react.useState(null),[k,L]=react.useState(null),[C,N]=react.useState(null),[B,F]=react.useState(null),[G,M]=react.useState(false),[H,Z]=react.useState(null),[R,$]=react.useState("width"),[Q,j]=react.useState(1),[se,q]=react.useState(Eh),[_e,ke]=react.useState(null),De=react.useRef(null),Pe=react.useRef(null),re=react.useRef(null),Oe=react.useRef({width:null,height:null}),Ne=e||T,Ue=t||A,xt=Ne.length>0,ie=f==="recording"||f==="playback"||r!==null||e!==void 0,me=react.useMemo(()=>xt?Ne.find(J=>J.id===Ue)||Ne[0]||null:ie?r?.data?r:_e||r:_e,[xt,Ne,Ue,ie,r,_e]),fe=ie?i:Q,ee=ie?n:se,he=react.useMemo(()=>{if(!C||R==="none")return ee;let W=De.current?.clientWidth||800,J=De.current?.clientHeight||600,xe=W-48,P=J-100;return R==="width"?Math.min(xe/C,Kl):R==="height"&&B?Math.min(P/B,Kl):ee},[R,C,B,ee]),ye=react.useCallback(async W=>{let J=W.target.files;if(!(!J||J.length===0)){M(true),Z(null);try{for(let xe=0;xe<J.length;xe++){let P=J[xe];if(!P)continue;if(P.type!=="application/pdf"){Z(`${P.name} is not a PDF file.`);continue}let ne=await KL(P),ue=VL(),Be={id:ue,data:ne,name:P.name,type:P.type};ie&&a?(a({id:ue,data:ne,name:P.name,numPages:0,type:P.type}),b?(w(O=>[...O,Be]),_(O=>O||ue)):ke(Be)):b?(w(O=>[...O,Be]),_(O=>O||ue)):ke(Be);}}catch(xe){console.error("Error loading document:",xe),Z("Failed to load document");}finally{M(false);}re.current&&(re.current.value="");}},[ie,a,b]),$e=react.useCallback(W=>{o?o(W):_(W),ie&&l?l(1):j(1),L(null),N(null),F(null),Oe.current={width:null,height:null};},[o,ie,l]),z=react.useCallback(W=>{c?c(W):w(J=>{let xe=J.filter(P=>P.id!==W);return A===W&&xe.length>0?_(xe[0]?.id||null):xe.length===0&&_(null),xe});},[c,A]),ce=react.useCallback(({numPages:W})=>{L(W),Z(null);},[]),We=react.useCallback(W=>{console.error("PDF load error:",W),Z("Failed to load PDF document"),L(null);},[]),lt=react.useCallback(W=>{let J=W.originalWidth||W.width,xe=W.originalHeight||W.height;(Oe.current.width!==J||Oe.current.height!==xe)&&(Oe.current={width:J,height:xe},N(J),F(xe));},[]),K=react.useCallback(W=>{if(!k)return;let J=Math.max(1,Math.min(k,W));f==="playback"&&!p&&g?.(),ie?l?.(J):j(J);},[k,f,p,ie,l,g]),ze=react.useCallback(()=>K(fe+1),[K,fe]),pt=react.useCallback(()=>K(fe-1),[K,fe]),Y=react.useCallback(()=>K(1),[K]),X=react.useCallback(()=>{k&&K(k);},[K,k]),ve=react.useCallback(W=>{let J=Math.max(Ix,Math.min(Kl,W));$("none"),ie?u?.(J):q(J);},[ie,u]),be=react.useCallback(()=>ve(ee+kx),[ve,ee]),ge=react.useCallback(()=>ve(ee-kx),[ve,ee]),Te=react.useCallback(()=>ve(Eh),[ve]),rt=react.useCallback(()=>$("width"),[]),pe=react.useCallback(()=>$("height"),[]),_t=react.useCallback(()=>{if(!Pe.current)return;let{scrollLeft:W,scrollTop:J}=Pe.current;ie&&d?.({x:W,y:J});},[ie,d]);react.useEffect(()=>{f==="playback"&&Pe.current&&s&&(Pe.current.scrollLeft=s.x,Pe.current.scrollTop=s.y);},[f,s]);let oe=react.useCallback(()=>{ie?h?.():ke(null),L(null),N(null),F(null),Z(null),Oe.current={width:null,height:null};},[ie,h]);return react.useEffect(()=>{if(!me||f==="playback"&&p)return;let W=J=>{if(["INPUT","TEXTAREA"].includes(J.target.tagName))return;let xe=J.key;wi.nextPage.includes(xe)?(J.preventDefault(),ze()):wi.prevPage.includes(xe)?(J.preventDefault(),pt()):wi.firstPage.includes(xe)?(J.preventDefault(),Y()):wi.lastPage.includes(xe)?(J.preventDefault(),X()):wi.zoomIn.includes(xe)?(J.preventDefault(),be()):wi.zoomOut.includes(xe)?(J.preventDefault(),ge()):wi.zoomReset.includes(xe)?(J.preventDefault(),Te()):wi.fitWidth.includes(xe)?(J.preventDefault(),rt()):wi.fitHeight.includes(xe)&&(J.preventDefault(),pe());};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[me,f,p,ze,pt,Y,X,be,ge,Te,rt,pe]),me?jsxRuntime.jsxs("div",{ref:De,className:St("h-full flex flex-col",I),style:{backgroundColor:S},children:[m&&jsxRuntime.jsxs("div",{className:"h-9 border-b border-zinc-800 flex items-center bg-zinc-900 shrink-0 overflow-x-auto",children:[jsxRuntime.jsx("div",{className:"flex items-center",children:Ne.length>0?Ne.map(W=>jsxRuntime.jsx(bh,{doc:W,isActive:W.id===me?.id||Ne.length===1,onSelect:()=>$e(W.id),onClose:f==="recording"?()=>z(W.id):void 0,showClose:f==="recording"&&Ne.length>1},W.id||W.name)):me&&jsxRuntime.jsx(bh,{doc:me,isActive:true,onSelect:()=>{},onClose:f==="recording"?oe:void 0,showClose:f==="recording"})}),E&&b&&f!=="playback"&&jsxRuntime.jsxs("label",{className:"flex items-center justify-center w-8 h-8 hover:bg-zinc-800 rounded cursor-pointer ml-1 text-zinc-500 hover:text-white transition-colors shrink-0",title:"Add document",children:[jsxRuntime.jsx(lucideReact.FileUp,{className:"w-4 h-4"}),jsxRuntime.jsx("input",{type:"file",accept:".pdf,application/pdf",multiple:b,onChange:ye,className:"hidden"})]})]}),y&&jsxRuntime.jsxs("div",{className:"h-11 border-b border-zinc-800 flex items-center justify-between px-3 shrink-0 bg-zinc-900",children:[!m&&jsxRuntime.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"w-4 h-4 text-zinc-500 shrink-0"}),jsxRuntime.jsx("span",{className:"text-[12px] text-zinc-500 truncate max-w-[150px]",children:me.name}),f==="recording"&&jsxRuntime.jsx("button",{onClick:oe,className:"p-1 hover:bg-zinc-800 rounded text-zinc-500 hover:text-red-400 transition-colors",title:"Remove document",children:jsxRuntime.jsx(lucideReact.X,{className:"w-3.5 h-3.5"})})]}),m&&jsxRuntime.jsx("div",{}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("button",{onClick:Y,disabled:fe<=1,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"First page",children:jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:pt,disabled:fe<=1,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"Previous page",children:jsxRuntime.jsx(lucideReact.ChevronLeft,{className:"w-4 h-4"})}),v&&k&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5 px-2",children:[jsxRuntime.jsx("input",{type:"number",min:1,max:k,value:fe,onChange:W=>K(parseInt(W.target.value)||1),className:"w-10 bg-zinc-800 border border-zinc-700 rounded px-1.5 py-0.5 text-[12px] text-center text-white"}),jsxRuntime.jsxs("span",{className:"text-[12px] text-zinc-500",children:["/ ",k]})]}),jsxRuntime.jsx("button",{onClick:ze,disabled:!k||fe>=k,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"Next page",children:jsxRuntime.jsx(lucideReact.ChevronRight,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:X,disabled:!k||fe>=k,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"Last page",children:jsxRuntime.jsx(lucideReact.ChevronsRight,{className:"w-4 h-4"})})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("button",{onClick:ge,disabled:ee<=Ix,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"Zoom out",children:jsxRuntime.jsx(lucideReact.ZoomOut,{className:"w-4 h-4"})}),jsxRuntime.jsxs("span",{className:"text-[11px] text-zinc-500 w-12 text-center",children:[Math.round(he*100),"%"]}),jsxRuntime.jsx("button",{onClick:be,disabled:ee>=Kl,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white disabled:opacity-30 transition-colors",title:"Zoom in",children:jsxRuntime.jsx(lucideReact.ZoomIn,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:rt,className:St("p-1.5 rounded-md transition-colors",R==="width"?"bg-zinc-800 text-white":"text-zinc-500 hover:text-white hover:bg-zinc-800"),title:"Fit width",children:jsxRuntime.jsx(lucideReact.Maximize2,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:Te,className:"p-1.5 hover:bg-zinc-800 rounded-md text-zinc-500 hover:text-white transition-colors",title:"Reset zoom",children:jsxRuntime.jsx(lucideReact.RotateCcw,{className:"w-4 h-4"})})]})]}),jsxRuntime.jsx("div",{ref:Pe,className:"flex-1 overflow-auto flex items-start justify-center p-6",onScroll:_t,children:G?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntime.jsx(lucideReact.Loader2,{className:"w-8 h-8 text-zinc-500 animate-spin"})}):jsxRuntime.jsx(reactPdf.Document,{file:me.data,onLoadSuccess:ce,onLoadError:We,loading:jsxRuntime.jsx(lucideReact.Loader2,{className:"w-8 h-8 text-zinc-500 animate-spin"}),className:"shadow-2xl",children:jsxRuntime.jsx(reactPdf.Page,{pageNumber:fe,scale:he,onLoadSuccess:lt,renderTextLayer:true,renderAnnotationLayer:true,className:"bg-white"})})}),H&&jsxRuntime.jsx("div",{className:"absolute bottom-4 left-4 right-4 bg-red-500/10 border border-red-500/20 text-red-400 px-4 py-2 rounded-lg text-[13px]",children:H})]}):jsxRuntime.jsxs("div",{ref:De,className:St("h-full flex flex-col",I),style:{backgroundColor:S},children:[m&&Ne.length>0&&jsxRuntime.jsxs("div",{className:"h-9 border-b border-zinc-800 flex items-center bg-zinc-900 shrink-0 overflow-x-auto",children:[jsxRuntime.jsx("div",{className:"flex items-center",children:Ne.map(W=>jsxRuntime.jsx(bh,{doc:W,isActive:W.id===Ue,onSelect:()=>$e(W.id),onClose:f==="recording"?()=>z(W.id):void 0,showClose:f==="recording"},W.id||W.name))}),E&&b&&f!=="playback"&&jsxRuntime.jsxs("label",{className:"flex items-center justify-center w-8 h-8 hover:bg-zinc-800 rounded cursor-pointer ml-1 text-zinc-500 hover:text-white transition-colors shrink-0",children:[jsxRuntime.jsx(lucideReact.FileUp,{className:"w-4 h-4"}),jsxRuntime.jsx("input",{type:"file",accept:".pdf,application/pdf",multiple:b,onChange:ye,className:"hidden"})]})]}),jsxRuntime.jsx("div",{className:"flex-1 flex items-center justify-center",children:E&&f!=="playback"?jsxRuntime.jsxs("div",{className:"text-center p-8",children:[jsxRuntime.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-2xl bg-zinc-800 flex items-center justify-center",children:jsxRuntime.jsx(lucideReact.FileText,{className:"w-8 h-8 text-zinc-500"})}),jsxRuntime.jsx("h3",{className:"text-[15px] font-medium text-white mb-2",children:"Present a Document"}),jsxRuntime.jsx("p",{className:"text-[13px] text-zinc-500 mb-6 max-w-[280px]",children:b?"Upload one or more PDFs to present during your recording.":"Upload a PDF to present during your recording."}),jsxRuntime.jsxs("label",{className:"inline-flex items-center gap-2 px-4 py-2.5 bg-white text-black rounded-lg text-[13px] font-medium cursor-pointer hover:bg-zinc-200 transition-colors",children:[jsxRuntime.jsx(lucideReact.FileUp,{className:"w-4 h-4"}),"Upload PDF",b?"s":"",jsxRuntime.jsx("input",{ref:re,type:"file",accept:".pdf,application/pdf",multiple:b,onChange:ye,className:"hidden"})]})]}):jsxRuntime.jsxs("div",{className:"text-center p-8",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"w-12 h-12 text-zinc-700 mx-auto mb-3"}),jsxRuntime.jsx("p",{className:"text-[13px] text-zinc-500",children:"No document loaded"})]})}),H&&jsxRuntime.jsx("div",{className:"absolute bottom-4 left-4 right-4 bg-red-500/10 border border-red-500/20 text-red-400 px-4 py-2 rounded-lg text-[13px]",children:H})]})}var lR=0,cR="[FileExplorer:FileSwitch]";function Px(r,e={}){let t=++lR,i=performance.now().toFixed(2);console.log(`%c${cR} [${t}] ${i}ms | ${r}`,"color: #e91e63; font-weight: bold;",e);}var Mx={python:"#3572A5",javascript:"#F7DF1E",typescript:"#3178C6",cpp:"#00599C",c:"#555555",java:"#B07219",rust:"#DEA584",html:"#E34C26",css:"#563D7C",json:"#292929",markdown:"#083FA1",plaintext:"#666666"};function uR(r,e){let t=Mx[e||"plaintext"]||Mx.plaintext;return jsxRuntime.jsx(lucideReact.File,{className:"w-4 h-4 flex-shrink-0",style:{color:t}})}function $x({item:r,depth:e=0,selectedPath:t,onSelect:i,onDelete:n,onRename:s,expandedFolders:a,onToggleFolder:o,onCreateInFolder:c,isCreating:l,createPath:u,onCreateFile:d,onCreateFolder:h,playbackFileCreation:f,onFileCreationInput:p,onFileCreationCancel:g}){let[m,y]=react.useState(false),[v,E]=react.useState(r.name),[b,S]=react.useState(false),I=react.useRef(null),T=react.useRef(null),w=t===r.path,A=a.has(r.path);react.useEffect(()=>{m&&I.current&&(I.current.focus(),I.current.select());},[m]),react.useEffect(()=>{if(!b)return;let C=N=>{T.current&&!T.current.contains(N.target)&&S(false);};return document.addEventListener("mousedown",C),()=>document.removeEventListener("mousedown",C)},[b]);let _=()=>{v&&v!==r.name&&s(r.path,v),y(false);},k=C=>{C.key==="Enter"?_():C.key==="Escape"&&(E(r.name),y(false));},L=C=>{C.preventDefault(),S(true);};return jsxRuntime.jsxs("div",{className:"select-none",children:[jsxRuntime.jsxs("div",{className:St("flex items-center h-6 px-1 cursor-pointer group","hover:bg-zinc-800",w&&"bg-violet-600/30 hover:bg-violet-600/30"),style:{paddingLeft:`${e*12+4}px`},onClick:()=>{Px("FILE_TREE_ITEM_CLICK",{path:r.path,type:r.type,isSelected:w}),r.type==="directory"?o(r.path):(Px("CALLING_onSelect",{path:r.path}),i(r.path));},onContextMenu:L,children:[r.type==="directory"?jsxRuntime.jsx("button",{className:"w-4 h-4 flex items-center justify-center text-zinc-500",onClick:C=>{C.stopPropagation(),o(r.path);},children:A?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"w-3 h-3"}):jsxRuntime.jsx(lucideReact.ChevronRight,{className:"w-3 h-3"})}):jsxRuntime.jsx("span",{className:"w-4"}),r.type==="directory"?A?jsxRuntime.jsx(lucideReact.FolderOpen,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}):jsxRuntime.jsx(lucideReact.Folder,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}):uR(r.name,r.language),m?jsxRuntime.jsx("input",{ref:I,type:"text",value:v,onChange:C=>E(C.target.value),onBlur:_,onKeyDown:k,onClick:C=>C.stopPropagation(),className:"ml-1 flex-1 bg-zinc-700 text-[12px] text-white px-1 outline-none border border-violet-500 rounded"}):jsxRuntime.jsx("span",{className:"ml-1 text-[12px] text-zinc-300 truncate flex-1",children:r.name}),!m&&jsxRuntime.jsxs("div",{className:"hidden group-hover:flex items-center gap-0.5 ml-auto",children:[r.type==="directory"&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{onClick:C=>{C.stopPropagation(),c?.(r.path,"file");},className:"p-0.5 hover:bg-zinc-700 rounded",title:"New File",children:jsxRuntime.jsx(lucideReact.FilePlus,{className:"w-3 h-3 text-zinc-500"})}),jsxRuntime.jsx("button",{onClick:C=>{C.stopPropagation(),c?.(r.path,"folder");},className:"p-0.5 hover:bg-zinc-700 rounded",title:"New Folder",children:jsxRuntime.jsx(lucideReact.FolderPlus,{className:"w-3 h-3 text-zinc-500"})})]}),jsxRuntime.jsx("button",{onClick:C=>{C.stopPropagation(),y(true);},className:"p-0.5 hover:bg-zinc-700 rounded",title:"Rename",children:jsxRuntime.jsx(lucideReact.Edit2,{className:"w-3 h-3 text-zinc-500"})}),jsxRuntime.jsx("button",{onClick:C=>{C.stopPropagation(),n(r.path);},className:"p-0.5 hover:bg-zinc-700 rounded",title:"Delete",children:jsxRuntime.jsx(lucideReact.Trash2,{className:"w-3 h-3 text-zinc-500"})})]})]}),b&&jsxRuntime.jsxs("div",{ref:T,className:"fixed z-50 bg-zinc-800 border border-zinc-700 rounded-lg shadow-xl py-1 min-w-[160px]",style:{left:"50%",transform:"translateX(-50%)"},children:[r.type==="directory"&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-[12px] text-zinc-300 hover:bg-violet-600/30 flex items-center gap-2 transition-colors",onClick:()=>{S(false),c?.(r.path,"file");},children:[jsxRuntime.jsx(lucideReact.FilePlus,{className:"w-3.5 h-3.5"}),"New File"]}),jsxRuntime.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-[12px] text-zinc-300 hover:bg-violet-600/30 flex items-center gap-2 transition-colors",onClick:()=>{S(false),c?.(r.path,"folder");},children:[jsxRuntime.jsx(lucideReact.FolderPlus,{className:"w-3.5 h-3.5"}),"New Folder"]}),jsxRuntime.jsx("div",{className:"h-px bg-zinc-700 my-1"})]}),jsxRuntime.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-[12px] text-zinc-300 hover:bg-violet-600/30 flex items-center gap-2 transition-colors",onClick:()=>{S(false),y(true);},children:[jsxRuntime.jsx(lucideReact.Edit2,{className:"w-3.5 h-3.5"}),"Rename"]}),jsxRuntime.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-[12px] text-zinc-300 hover:bg-violet-600/30 flex items-center gap-2 transition-colors",onClick:()=>{S(false),n(r.path);},children:[jsxRuntime.jsx(lucideReact.Trash2,{className:"w-3.5 h-3.5"}),"Delete"]})]}),r.type==="directory"&&A&&jsxRuntime.jsxs("div",{children:[l&&u===r.path&&jsxRuntime.jsx(zx,{type:l,parentPath:u,onSubmit:l==="file"?d:h,onCancel:()=>{c?.(r.path,null),g?.();},onInputChange:p,depth:e+1}),f&&f.parentPath===r.path&&jsxRuntime.jsx(Gx,{type:f.type,value:f.inputValue,depth:e+1}),r.children?.map(C=>jsxRuntime.jsx($x,{item:C,depth:e+1,selectedPath:t,onSelect:i,onDelete:n,onRename:s,expandedFolders:a,onToggleFolder:o,onCreateInFolder:c,isCreating:l,createPath:u,onCreateFile:d,onCreateFolder:h,playbackFileCreation:f,onFileCreationInput:p,onFileCreationCancel:g},C.path))]})]})}function zx({type:r,onSubmit:e,onCancel:t,onInputChange:i,depth:n=0}){let[s,a]=react.useState(""),o=react.useRef(null);react.useEffect(()=>{o.current?.focus();},[]);let c=()=>{s.trim()?e(s.trim()):t();},l=d=>{d.key==="Enter"?c():d.key==="Escape"&&t();},u=d=>{let h=d.target.value;a(h),i?.(h);};return jsxRuntime.jsxs("div",{className:"flex items-center h-6 px-2 bg-zinc-800",style:{paddingLeft:`${n*12+8}px`},children:[r==="folder"?jsxRuntime.jsx(lucideReact.Folder,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}):jsxRuntime.jsx(lucideReact.File,{className:"w-4 h-4 text-zinc-500 flex-shrink-0"}),jsxRuntime.jsx("input",{ref:o,type:"text",value:s,onChange:u,onBlur:c,onKeyDown:l,placeholder:r==="folder"?"folder name":"filename.ext",className:"ml-1 flex-1 bg-zinc-700 text-[12px] text-white px-1 outline-none border border-violet-500 rounded"})]})}function Gx({type:r,value:e,depth:t=0}){return jsxRuntime.jsxs("div",{className:"flex items-center h-6 px-2 bg-zinc-800",style:{paddingLeft:`${t*12+8}px`},children:[r==="folder"?jsxRuntime.jsx(lucideReact.Folder,{className:"w-4 h-4 text-amber-400 flex-shrink-0"}):jsxRuntime.jsx(lucideReact.File,{className:"w-4 h-4 text-zinc-500 flex-shrink-0"}),jsxRuntime.jsx("div",{className:"ml-1 flex-1 bg-zinc-700 text-[12px] text-white px-1 border border-violet-500 rounded min-h-[18px]",children:e||jsxRuntime.jsx("span",{className:"text-zinc-500",children:r==="folder"?"folder name":"filename.ext"})})]})}function Rh({fileSystem:r,selectedFile:e,onFileSelect:t,onFileCreate:i,onFolderCreate:n,onFileDelete:s,onFileRename:a,onFileCreationStart:o,onFileCreationInput:c,onFileCreationCancel:l,playbackFileCreation:u,className:d}){let[h,f]=react.useState({name:"root",path:"/",type:"directory",children:[]}),[p,g]=react.useState(new Set(["/"])),[m,y]=react.useState(null),[v,E]=react.useState("/");react.useEffect(()=>{let _=()=>{let L=r.getFileTree();f(L);};return _(),r.subscribe(()=>{_();})},[r]);let b=react.useCallback(_=>{g(k=>{let L=new Set(k);return L.has(_)?L.delete(_):L.add(_),L});},[]),S=react.useCallback(_=>{if(_){let k=v==="/"?`/${_}`:`${v}/${_}`;i?.(k,"");}y(null);},[v,i]),I=react.useCallback(_=>{if(_){let k=v==="/"?`/${_}`:`${v}/${_}`,L=`${k}/.gitkeep`;r.writeFile(L,""),g(C=>new Set([...C,v,k])),n?.(k);}y(null);},[v,r,n]),T=react.useCallback((_,k)=>{if(k===null){y(null),l?.();return}E(_),y(k),o?.(k,_),g(L=>new Set([...L,_]));},[o,l]),w=react.useCallback(_=>{window.confirm(`Delete "${_}"?`)&&s?.(_);},[s]),A=react.useCallback((_,k)=>{let L=_.substring(0,_.lastIndexOf("/"))||"/",C=L==="/"?`/${k}`:`${L}/${k}`;a?.(_,C);},[a]);return jsxRuntime.jsxs("div",{className:St("flex flex-col bg-zinc-900 rounded-l-xl",d),children:[jsxRuntime.jsxs("div",{className:"h-9 px-3 flex items-center justify-between border-b border-zinc-800",children:[jsxRuntime.jsx("span",{className:"text-[11px] font-semibold text-zinc-400 uppercase tracking-wider",children:"Explorer"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("button",{onClick:()=>{E("/"),y("file"),o?.("file","/");},className:"p-1 hover:bg-zinc-700 rounded transition-colors",title:"New File",children:jsxRuntime.jsx(lucideReact.FilePlus,{className:"w-3.5 h-3.5 text-zinc-500"})}),jsxRuntime.jsx("button",{onClick:()=>{E("/"),y("folder"),o?.("folder","/");},className:"p-1 hover:bg-zinc-700 rounded transition-colors",title:"New Folder",children:jsxRuntime.jsx(lucideReact.FolderPlus,{className:"w-3.5 h-3.5 text-zinc-500"})})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 overflow-y-auto py-1",children:[m&&v==="/"&&jsxRuntime.jsx(zx,{type:m,parentPath:v,onSubmit:m==="folder"?I:S,onCancel:()=>{y(null),l?.();},onInputChange:c}),u&&(u.parentPath==="/"||u.parentPath==="")&&jsxRuntime.jsx(Gx,{type:u.type,value:u.inputValue}),h.children?.map(_=>jsxRuntime.jsx($x,{item:_,depth:0,selectedPath:e??null,onSelect:t,onDelete:w,onRename:A,expandedFolders:p,onToggleFolder:b,onCreateInFolder:T,isCreating:m,createPath:v,onCreateFile:S,onCreateFolder:I,playbackFileCreation:u,onFileCreationInput:c,onFileCreationCancel:l},_.path)),h.children?.length===0&&!m&&jsxRuntime.jsxs("div",{className:"px-3 py-4 text-center",children:[jsxRuntime.jsx("p",{className:"text-[11px] text-zinc-500 mb-2",children:"No files yet"}),jsxRuntime.jsx("button",{onClick:()=>y("file"),className:"text-[11px] text-violet-400 hover:underline",children:"Create a file"})]})]})]})}var hR=0,Ox="[IDEPanel:FileSwitch]";function Zt(r,e={}){let t=++hR,i=performance.now().toFixed(2);console.log(`%c${Ox} [${t}] ${i}ms | ${r}`,"color: #00bcd4; font-weight: bold;",e),(r.includes("OVERRIDE")||r.includes("CONFLICT")||r.includes("BLOCKED"))&&console.trace(`${Ox} Stack trace for: ${r}`);}var fR=200,pR=100,mR=500,gR=220,yR=150,vR=400;function xR({path:r,isActive:e,onSelect:t,onClose:i}){let n=r.split("/").pop();return jsxRuntime.jsxs("div",{className:St("flex items-center gap-1 px-3 py-1.5 cursor-pointer group min-w-0 transition-colors","border-r border-zinc-800 first:rounded-tl-lg",e?"bg-zinc-900 text-white":"bg-zinc-900/70 text-zinc-500 hover:bg-zinc-800 hover:text-zinc-400"),onClick:t,children:[jsxRuntime.jsx("span",{className:"text-[12px] truncate max-w-[120px]",children:n}),jsxRuntime.jsx("button",{onClick:s=>{s.stopPropagation(),i();},className:St("p-0.5 rounded-sm hover:bg-zinc-700 transition-colors",e?"opacity-100":"opacity-0 group-hover:opacity-100"),children:jsxRuntime.jsx(lucideReact.X,{className:"w-3 h-3"})})]})}function ER({onResize:r}){let[e,t]=react.useState(false),i=react.useRef(0),n=react.useRef(0),s=react.useCallback(a=>{a.preventDefault(),t(true),i.current=a.clientX,n.current=r(0,true);},[r]);return react.useEffect(()=>{if(!e)return;let a=c=>{let l=c.clientX-i.current;r(n.current+l);},o=()=>{t(false);};return document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o);}},[e,r]),jsxRuntime.jsx("div",{className:St("w-1 cursor-col-resize flex items-center justify-center hover:bg-violet-500/50 transition-colors",e&&"bg-violet-500/50"),onMouseDown:s,children:jsxRuntime.jsx(lucideReact.GripVertical,{className:"w-3 h-3 text-zinc-600 opacity-0 hover:opacity-100"})})}function bR({onResize:r}){let[e,t]=react.useState(false),i=react.useRef(0),n=react.useRef(0),s=react.useCallback(a=>{a.preventDefault(),t(true),i.current=a.clientY,n.current=r(0,true);},[r]);return react.useEffect(()=>{if(!e)return;let a=c=>{let l=i.current-c.clientY;r(n.current+l);},o=()=>{t(false);};return document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o);}},[e,r]),jsxRuntime.jsx("div",{className:St("h-1 cursor-row-resize flex items-center justify-center hover:bg-violet-500/50 transition-colors",e&&"bg-violet-500/50"),onMouseDown:s,children:jsxRuntime.jsx(lucideReact.GripHorizontal,{className:"w-3 h-3 text-zinc-600 opacity-0 hover:opacity-100"})})}function io(r){let e=r.split(".").pop()?.toLowerCase();return {py:"python",js:"javascript",jsx:"javascript",ts:"typescript",tsx:"typescript",cpp:"cpp",c:"c",java:"java",rs:"rust",go:"go",rb:"ruby",php:"php",html:"html",css:"css",json:"json",md:"markdown",txt:"plaintext"}[e||""]||"plaintext"}function Ns({fileSystem:r,code:e,language:t,currentFile:i,onCodeChange:n,onFileChange:s,onFileCreate:a,onFileDelete:o,onFileRename:c,onFileSelect:l,onTerminalCommand:u,onTerminalClear:d,onTerminalAddLines:h,fileCreationState:f,onFileCreationStart:p,onFileCreationInput:g,onFileCreationCancel:m,terminalLines:y,terminalInput:v,onTerminalInputChange:E,onExecute:b,onTerminalExecute:S,mode:I="recording",isPlaying:T=false,defaultShowExplorer:w=true,defaultShowTerminal:A=true,showRunButton:_=true,interactiveLabel:k="Interactive",initialFiles:L,initialActiveFile:C}){let[N,B]=react.useState(w),[F,G]=react.useState(gR),[M,H]=react.useState(A),[Z,R]=react.useState(fR),[$,Q]=react.useState([]),[j,se]=react.useState(null),[q,_e]=react.useState({}),[ke,De]=react.useState(y||[]),[Pe,re]=react.useState(""),[Oe,Ne]=react.useState([]),[Ue,xt]=react.useState(-1),[ie,me]=react.useState(false),fe=react.useRef(null),ee=react.useRef(null),he=react.useRef(false),ye=react.useRef(null),$e=react.useRef(T),[z,ce]=react.useState(0);react.useEffect(()=>r.subscribe(()=>{ce(ne=>ne+1);}),[r]),react.useEffect(()=>(Zt("COMPONENT_MOUNT",{mode:I,isPlaying:T,externalCurrentFile:i,activeFile:j}),()=>Zt("COMPONENT_UNMOUNT",{activeFile:j})),[]),react.useEffect(()=>{Zt("MODE_TRANSITION",{mode:I,isPlaying:T,prevIsPlaying:$e.current,activeFile:j,externalCurrentFile:i,userSelectedFile:ye.current}),$e.current&&!T&&Zt("PLAYBACK_PAUSED - User can now switch files freely",{activeFile:j,userSelectedFile:ye.current}),!$e.current&&T&&(Zt("PLAYBACK_RESUMED - Clearing user file selection",{activeFile:j,userSelectedFile:ye.current}),ye.current=null),$e.current=T;},[I,T,j,i]),react.useEffect(()=>{if(j){he.current=true;return}let P=r.getFileTree(),ne=P.children||[];if(ne.length===0)return;if(i){ze(i,"auto-open:externalCurrentFile");return}if(C){ze(C,"auto-open:initialActiveFile");return}let ue=ne.find(O=>O.name==="main.py");if(ue){ze(ue.path,"auto-open:main.py");return}let Be=We(P);Be&&ze(Be.path,"auto-open:firstFile");},[r,j,i,C,z]),react.useEffect(()=>{if(Zt("EXTERNAL_FILE_SYNC_EFFECT triggered",{mode:I,isPlaying:T,externalCurrentFile:i,activeFile:j,userSelectedFile:ye.current,wouldTrigger:I==="playback"&&i&&i!==j}),I==="playback"&&!T&&ye.current){Zt("BLOCKED: User has selected a file while paused - not overriding",{userSelectedFile:ye.current,externalCurrentFile:i,activeFile:j});return}I==="playback"&&T&&i&&i!==j?(Zt("SYNC: Playback is playing - syncing to external file",{from:j,to:i}),ze(i,"sync:playback-external-file")):I==="playback"&&!T&&Zt("SKIPPED: Playback is paused - user controls file selection",{activeFile:j,externalCurrentFile:i});},[i,j,I,T]),react.useEffect(()=>{y&&De(y);},[y]),react.useEffect(()=>{fe.current?.scrollTo(0,fe.current.scrollHeight);},[ke]);let We=P=>{if(P.type==="file")return P;if(P.children)for(let ne of P.children){let ue=We(ne);if(ue)return ue}return null},lt=react.useCallback((P,ne=false)=>{if(ne)return F;let ue=Math.max(yR,Math.min(vR,P));return G(ue),ue},[F]),K=react.useCallback((P,ne=false)=>{if(ne)return Z;let ue=Math.max(pR,Math.min(mR,P));return R(ue),ue},[Z]),ze=react.useCallback((P,ne="unknown")=>{let ue=P.startsWith("/")?P.slice(1):P;Zt("OPEN_FILE called",{path:P,normalizedPath:ue,source:ne,currentActiveFile:j,mode:I,isPlaying:T,userSelectedFile:ye.current,openFiles:$}),Q(Ae=>Ae.some(Qe=>(Qe.startsWith("/")?Qe.slice(1):Qe)===ue)?(Zt("OPEN_FILE: File already in tabs",{normalizedPath:ue}),Ae):(Zt("OPEN_FILE: Adding file to tabs",{normalizedPath:ue,prevTabs:Ae}),[...Ae,ue])),Zt("OPEN_FILE: Setting activeFile",{from:j,to:ue}),se(ue);let Be=P.startsWith("/")?P:"/"+P,O=P.startsWith("/")?P.slice(1):P,V;if(r.readFile)try{V=r.readFile(P),V||(V=r.readFile(O));}catch{}if(V===void 0&&r.getFiles)try{let Ae=r.getFiles();V=Ae[P]??Ae[Be]??Ae[O];}catch{}V!==void 0&&_e(Ae=>Ae[P]===void 0?{...Ae,[P]:V}:Ae);let we=io(P);l?.(P,V||"",we);},[l,r]),pt=react.useCallback(P=>{Zt("USER_FILE_SELECT - User clicked to select file",{path:P,currentActiveFile:j,mode:I,isPlaying:T,externalCurrentFile:i}),T||(ye.current=P,Zt("USER_FILE_SELECT: Marked user selection (paused state)",{userSelectedFile:P})),ze(P,"user:click");},[ze,j,I,T,i]),Y=react.useCallback(P=>{if(Q(ne=>ne.filter(ue=>ue!==P)),j===P){let ne=$.filter(ue=>ue!==P);se(ne.length>0?ne[ne.length-1]:null);}_e(ne=>{let ue={...ne};return delete ue[P],ue});},[$,j]),X=react.useCallback((P,ne="")=>{r.writeFile(P,ne),ze(P,"user:file-create"),a?.(P,ne);},[r,ze,a]),ve=react.useCallback(P=>{Y(P),o?.(P);},[Y,o]),be=react.useCallback((P,ne)=>{Q(ue=>ue.map(Be=>Be===P?ne:Be)),j===P&&se(ne),q[P]&&_e(ue=>{let Be={...ue};return Be[ne]=ue[P],delete Be[P],Be}),c?.(P,ne);},[j,q,c]),ge=react.useCallback(P=>{let ne=O=>O.startsWith("/")?O.slice(1):O,ue=ne(P),Be=i?ne(i):null;if(I==="interactive"){if(q[P]!==void 0)return q[P];if(r.readFile)try{let O=r.readFile(P);if(O!==void 0&&O!==""||(O=r.readFile(ue),O!==void 0&&O!==""))return O}catch{}if(r.getFiles)try{let O=r.getFiles(),V="/"+ue;return O[P]??O[V]??O[ue]??""}catch{}return ""}if(I==="playback"&&e!==void 0&&Be&&ue===Be)return e;if(I==="playback"){if(r.readFile)try{let O=r.readFile(P);if(O!==void 0&&O!==""||(O=r.readFile(ue),O!==void 0&&O!==""))return O}catch{}if(r.getFiles)try{let O=r.getFiles(),V="/"+ue,we=O[P]??O[V]??O[ue];if(we!==void 0)return we}catch{}return ""}if(q[P]!==void 0)return q[P];if(r.readFile)try{let O=r.readFile(P);if(O!==void 0&&O!==""||(O=r.readFile(ue),O!==void 0&&O!==""))return O}catch{}if(r.getFiles)try{let O=r.getFiles(),V="/"+ue,we=O[P]??O[V]??O[ue];if(we!==void 0)return we}catch{}return ""},[q,I,i,e,r]),Te=react.useMemo(()=>t&&I==="playback"?t:j?io(j):"plaintext",[j,t,I]),rt=react.useCallback(P=>{!j||P===void 0||(_e(ne=>({...ne,[j]:P})),r.writeFile(j,P),n?.(P,Te),s?.(j,P,Te));},[j,r,Te,n,s]),pe=react.useCallback(P=>{let ne=Array.isArray(P)?P:[P];De(ue=>[...ue,...ne]),h?.(ne);},[h]),_t=react.useCallback(async P=>{let ne=P.trim();if(!ne)return;if(re(""),E?.(""),Ne(V=>[...V,ne]),xt(-1),pe([{type:"input",text:`$ ${ne}`}]),S){me(true);try{let V=await S(ne);V&&V.length>0&&pe(V);}catch(V){pe([{type:"error",text:`Error: ${V}`}]);}finally{me(false);}u?.(P,"");return}let[ue,...Be]=ne.split(/\s+/),O="";switch(ue.toLowerCase()){case "help":O=`Available commands:
92
+ Code Execution:
93
+ python <file> - Run Python file
94
+ node <file> - Run JavaScript file
95
+ java <file> - Run Java file
96
+ c <file> - Run C file
97
+ cpp <file> - Run C++ file
98
+ go run <file> - Run Go file
99
+ rust <file> - Run Rust file
100
+ run [file] - Run file (auto-detect language)
101
+
102
+ File System:
103
+ cd <path> - Change directory
104
+ pwd - Print working directory
105
+ ls [path] - List files and directories
106
+ cat <file> - Display file contents
107
+ touch <file> - Create new empty file
108
+ rm <file> - Remove file
109
+ mkdir <dir> - Create directory
110
+ mv <old> <new> - Rename/move file
111
+ cp <src> <dest> - Copy file
112
+ head <file> - Show first 10 lines
113
+ tail <file> - Show last 10 lines
114
+ wc <file> - Count lines, words, chars
115
+ echo <text> - Print text to terminal
116
+
117
+ Other:
118
+ clear - Clear terminal
119
+ help - Show this help message`;break;case "clear":De([{type:"system",text:"Terminal cleared."}]),d?.();return;case "pwd":O="/";break;case "echo":O=Be.join(" ");break;case "ls":{let we=r.getFileTree().children||[];we.length===0?O="(empty directory)":O=we.map(qe=>qe.type==="directory"?`\x1B[34m${qe.name}/\x1B[0m`:qe.name).join(" ");break}case "cat":{let V=Be[0];if(!V){O="cat: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=r.getFileTree(),Ae=(Qe,ar)=>{if(Qe.path===ar||Qe.path==="/"+ar)return q[Qe.path]??q["/"+ar]??null;if(Qe.children)for(let Gr of Qe.children){let wm=Ae(Gr,ar);if(wm!==null)return wm}return null},qe=q[V]??q["/"+V]??Ae(we,V);if(qe!==null)O=qe;else {O=`cat: ${V}: No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}break}case "touch":{let V=Be[0];if(!V){O="touch: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=V.startsWith("/")?V:"/"+V;r.writeFile(we,""),_e(Ae=>({...Ae,[we]:""})),a?.(we,""),O=`Created: ${V}`,pe([{type:"success",text:O}]),u?.(P,O);return}case "rm":{let V=Be[0];if(!V){O="rm: missing operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=V.startsWith("/")?V:"/"+V;if(q[we]===void 0&&q[V]===void 0){O=`rm: cannot remove '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}if(_e(Ae=>{let qe={...Ae};return delete qe[we],delete qe[V],qe}),Q(Ae=>Ae.filter(qe=>qe!==we&&qe!==V)),j===we||j===V){let Ae=$.filter(qe=>qe!==we&&qe!==V);se(Ae[0]||null);}o?.(we),O=`Removed: ${V}`,pe([{type:"success",text:O}]),u?.(P,O);return}case "mv":{let V=Be[0],we=Be[1];if(!V||!we){O="mv: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let Ae=V.startsWith("/")?V:"/"+V,qe=we.startsWith("/")?we:"/"+we,Qe=q[Ae]??q[V];if(Qe===void 0){O=`mv: cannot stat '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}_e(ar=>{let Gr={...ar};return Gr[qe]=Qe,delete Gr[Ae],delete Gr[V],Gr}),Q(ar=>ar.map(Gr=>Gr===Ae||Gr===V?qe:Gr)),(j===Ae||j===V)&&se(qe),r.writeFile(qe,Qe),c?.(Ae,qe),O=`Renamed: ${V} -> ${we}`,pe([{type:"success",text:O}]),u?.(P,O);return}case "mkdir":{let V=Be[0];if(!V){O="mkdir: missing operand",pe([{type:"error",text:O}]),u?.(P,O);return}let Ae=(V.startsWith("/")?V:"/"+V)+"/.gitkeep";r.writeFile(Ae,""),O=`Created directory: ${V}`,pe([{type:"success",text:O}]),u?.(P,O);return}case "run":case "python":case "node":case "java":case "c":case "cpp":case "go":case "rust":if(b){let V=Be[0]||j;if(ue.toLowerCase()==="go"&&Be[0]==="run"&&(V=Be[1]||j),V){me(true);try{let we=await b(V,io(V));we&&pe(we);}finally{me(false);}}else O="No file specified";}else O="Execution not available. Please configure Go-Judge.";O&&pe([{type:"output",text:O}]),u?.(P,O);return;case "cd":{O=`Changed directory to: ${Be[0]||"/"}`,pe([{type:"output",text:O}]),u?.(P,O);return}case "cp":{let V=Be[0],we=Be[1];if(!V||!we){O="cp: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let Ae=V.startsWith("/")?V:"/"+V,qe=we.startsWith("/")?we:"/"+we,Qe=q[Ae]??q[V];if(Qe===void 0){O=`cp: cannot stat '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}r.writeFile(qe,Qe),_e(ar=>({...ar,[qe]:Qe})),O=`Copied: ${V} -> ${we}`,pe([{type:"success",text:O}]),u?.(P,O);return}case "head":{let V=Be.find(Qe=>!Qe.startsWith("-"))||"";if(!V){O="head: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=V.startsWith("/")?V:"/"+V,Ae=q[we]??q[V];if(Ae===void 0){O=`head: cannot open '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}Ae.split(`
120
+ `).slice(0,10).forEach(Qe=>{pe([{type:"output",text:Qe}]);}),u?.(P,"");return}case "tail":{let V=Be.find(Qe=>!Qe.startsWith("-"))||"";if(!V){O="tail: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=V.startsWith("/")?V:"/"+V,Ae=q[we]??q[V];if(Ae===void 0){O=`tail: cannot open '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}Ae.split(`
121
+ `).slice(-10).forEach(Qe=>{pe([{type:"output",text:Qe}]);}),u?.(P,"");return}case "wc":{let V=Be[0];if(!V){O="wc: missing file operand",pe([{type:"error",text:O}]),u?.(P,O);return}let we=V.startsWith("/")?V:"/"+V,Ae=q[we]??q[V];if(Ae===void 0){O=`wc: '${V}': No such file or directory`,pe([{type:"error",text:O}]),u?.(P,O);return}let qe=Ae.split(`
122
+ `).length,Qe=Ae.split(/\s+/).filter(Boolean).length,ar=Ae.length;O=` ${qe} ${Qe} ${ar} ${V}`;break}default:O=`Command not found: ${ue}
123
+ Type 'help' for available commands.`,pe([{type:"error",text:O}]),u?.(P,O);return}pe([{type:"output",text:O}]),u?.(P,O);},[j,$,q,r,pe,u,d,E,b,S,a,o,c]),oe=react.useCallback(async()=>{if(!(ie||!j||!b)){me(true),pe([{type:"input",text:`$ run ${j}`}]);try{let P=await b(j,io(j));P&&pe(P);}finally{me(false);}}},[ie,j,b,pe]),W=react.useCallback(P=>{if(P.key==="Enter")_t(Pe);else if(P.key==="ArrowUp"){if(P.preventDefault(),Oe.length){let ne=Math.min(Ue+1,Oe.length-1);xt(ne),re(Oe[Oe.length-1-ne]);}}else P.key==="ArrowDown"&&(P.preventDefault(),Ue>0?(xt(Ue-1),re(Oe[Oe.length-Ue])):(xt(-1),re("")));},[Pe,Oe,Ue,_t]),J=I==="playback"&&T,xe=I==="recording"||I==="interactive"||I==="playback"&&!T;return jsxRuntime.jsx("div",{className:"flex flex-col h-full bg-zinc-900 rounded-xl overflow-hidden",children:jsxRuntime.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[!N&&jsxRuntime.jsx("button",{onClick:()=>B(true),className:"w-10 bg-zinc-900 border-r border-zinc-800 flex items-center justify-center hover:bg-zinc-800 transition-colors rounded-l-xl",title:"Show Explorer",children:jsxRuntime.jsx(lucideReact.FolderTree,{className:"w-4 h-4 text-zinc-500"})}),N&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex flex-col bg-zinc-900 rounded-l-xl",style:{width:F},children:[jsxRuntime.jsx(Rh,{fileSystem:r,selectedFile:j,onFileSelect:pt,onFileCreate:X,onFolderCreate:P=>console.log("Folder created:",P),onFileDelete:ve,onFileRename:be,playbackFileCreation:f,onFileCreationStart:p,onFileCreationInput:g,onFileCreationCancel:m,className:"flex-1"}),jsxRuntime.jsx("button",{onClick:()=>B(false),className:"h-6 flex items-center justify-center text-zinc-500 hover:text-zinc-400 hover:bg-zinc-800 border-t border-zinc-800 transition-colors",children:jsxRuntime.jsx(lucideReact.ChevronLeft,{className:"w-3 h-3"})})]}),jsxRuntime.jsx(ER,{onResize:lt})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[jsxRuntime.jsxs("div",{className:"h-9 bg-zinc-900/70 border-b border-zinc-800 flex items-center overflow-x-auto rounded-tr-lg",children:[$.map(P=>jsxRuntime.jsx(xR,{path:P,isActive:j===P,onSelect:()=>pt(P),onClose:()=>Y(P),language:io(P)},P)),jsxRuntime.jsx("button",{onClick:()=>{let P=`/untitled-${Date.now()}.txt`;X(P,"");},className:"w-9 h-9 flex items-center justify-center text-zinc-500 hover:text-zinc-400 hover:bg-zinc-800 transition-colors",title:"New File",children:jsxRuntime.jsx(lucideReact.Plus,{className:"w-3.5 h-3.5"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-hidden",style:{height:M?`calc(100% - ${Z}px - 4px)`:"100%"},children:j?jsxRuntime.jsx(WL__default.default,{height:"100%",language:Te,value:ge(j),onChange:rt,theme:"vs-dark",options:{fontSize:13,fontFamily:'"SF Mono", "JetBrains Mono", Consolas, monospace',minimap:{enabled:false},padding:{top:16,bottom:16},scrollBeyondLastLine:false,wordWrap:"on",automaticLayout:true,renderLineHighlight:"gutter",cursorBlinking:"smooth",readOnly:J,lineNumbers:"on",lineNumbersMinChars:3,glyphMargin:false,folding:true,scrollbar:{verticalScrollbarSize:10,horizontalScrollbarSize:10}}}):jsxRuntime.jsx("div",{className:"h-full flex items-center justify-center text-zinc-500 text-sm",children:jsxRuntime.jsxs("div",{className:"text-center",children:[jsxRuntime.jsx("p",{children:"No file open"}),jsxRuntime.jsx("button",{onClick:()=>X("/main.py",""),className:"mt-2 text-violet-400 hover:underline",children:"Create a new file"})]})})}),M&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(bR,{onResize:K}),jsxRuntime.jsxs("div",{className:"bg-zinc-950 flex flex-col rounded-b-xl",style:{height:Z},children:[jsxRuntime.jsxs("div",{className:"h-8 px-3 flex items-center justify-between border-b border-zinc-800",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.Terminal,{className:"w-3.5 h-3.5 text-zinc-500"}),jsxRuntime.jsx("span",{className:"text-[11px] text-zinc-500 font-medium",children:"Terminal"}),xe&&!J&&jsxRuntime.jsx("span",{className:"text-[10px] text-emerald-400/70 bg-emerald-400/10 px-1.5 py-0.5 rounded",children:k})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[_&&xe&&j&&b&&jsxRuntime.jsx("button",{onClick:oe,disabled:ie||J,className:St("flex items-center gap-1 px-2.5 py-1 rounded-md text-[11px] font-medium transition-all",ie?"bg-emerald-600/50 text-emerald-200 cursor-wait":"bg-emerald-600 hover:bg-emerald-500 text-white shadow-sm"),children:ie?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Loader2,{className:"w-3 h-3 animate-spin"}),"Running..."]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Play,{className:"w-3 h-3 fill-current"}),"Run"]})}),jsxRuntime.jsx("button",{onClick:()=>H(false),className:"p-1 hover:bg-zinc-800 rounded text-zinc-500 hover:text-zinc-400 transition-colors",children:jsxRuntime.jsx(lucideReact.ChevronDown,{className:"w-3.5 h-3.5"})})]})]}),jsxRuntime.jsxs("div",{ref:fe,className:"flex-1 p-3 font-mono text-[12px] overflow-y-auto leading-relaxed select-text",onClick:()=>ee.current?.focus(),children:[ke.map((P,ne)=>jsxRuntime.jsx("div",{className:St("whitespace-pre-wrap break-all",(()=>{switch(P.type){case "input":return "text-cyan-400";case "output":return "text-zinc-200";case "system":return "text-zinc-500";case "success":return "text-emerald-400 font-medium";case "error":return "text-red-400";case "execution_header":return "text-blue-400 font-medium mt-2";default:return "text-zinc-300"}})()),children:P.text},ne)),jsxRuntime.jsxs("div",{className:"flex items-center mt-1",children:[jsxRuntime.jsx("span",{className:"text-emerald-400 select-none",children:"$"}),J?jsxRuntime.jsxs("span",{className:"ml-2 text-zinc-300",children:[v||Pe,jsxRuntime.jsx("span",{className:"animate-pulse text-emerald-400",children:"\u258B"})]}):jsxRuntime.jsx("input",{ref:ee,value:Pe,onChange:P=>{re(P.target.value),E?.(P.target.value);},onKeyDown:W,className:"flex-1 ml-2 bg-transparent outline-none text-zinc-300 caret-emerald-400",spellCheck:false,autoFocus:I==="recording",placeholder:ie?"Executing...":"Type 'help' for commands",disabled:ie})]})]})]})]}),!M&&jsxRuntime.jsxs("button",{onClick:()=>H(true),className:"h-7 bg-zinc-950 border-t border-zinc-800 flex items-center justify-center gap-1.5 text-[11px] text-zinc-500 hover:text-zinc-400 hover:bg-zinc-900 transition-colors rounded-b-xl",children:[jsxRuntime.jsx(lucideReact.Terminal,{className:"w-3 h-3"}),"Terminal",jsxRuntime.jsx(lucideReact.ChevronUp,{className:"w-3 h-3"})]})]})]})})}var Bx={input:"text-emerald-400 font-medium",output:"text-zinc-200",system:"text-zinc-500",error:"text-red-400",success:"text-emerald-400",warning:"text-amber-400",info:"text-blue-400",header:"text-zinc-400 border-b border-zinc-800 pb-1 mb-1",divider:"text-zinc-700"};function AR({status:r,className:e}){let t={Accepted:{icon:lucideReact.CheckCircle2,color:"text-emerald-400 bg-emerald-400/10",label:"Accepted"},Running:{icon:lucideReact.Loader2,color:"text-blue-400 bg-blue-400/10",label:"Running...",spin:true},Error:{icon:lucideReact.XCircle,color:"text-red-400 bg-red-400/10",label:"Error"},"Compile Error":{icon:lucideReact.XCircle,color:"text-orange-400 bg-orange-400/10",label:"Compile Error"},"Runtime Error":{icon:lucideReact.XCircle,color:"text-red-400 bg-red-400/10",label:"Runtime Error"},"Time Limit Exceeded":{icon:lucideReact.Clock,color:"text-yellow-400 bg-yellow-400/10",label:"TLE"},"Memory Limit Exceeded":{icon:lucideReact.Cpu,color:"text-purple-400 bg-purple-400/10",label:"MLE"}},i=t[r]||t.Error,n=i.icon;return jsxRuntime.jsxs("span",{className:St("inline-flex items-center gap-1 px-2 py-0.5 rounded text-[11px] font-medium",i.color,e),children:[jsxRuntime.jsx(n,{className:St("w-3 h-3",i.spin&&"animate-spin")}),i.label]})}function kR({line:r}){let e=typeof r=="object"?r:{type:"output",text:r},{type:t,text:i,status:n,time:s,memory:a}=e;return t==="execution_header"?jsxRuntime.jsxs("div",{className:"mt-2 mb-1 flex items-center gap-2 text-[11px]",children:[jsxRuntime.jsx("span",{className:"text-zinc-500",children:"\u2500\u2500\u2500"}),jsxRuntime.jsx("span",{className:"text-zinc-400 font-medium",children:i}),jsxRuntime.jsx("span",{className:"text-zinc-500",children:"\u2500\u2500\u2500"})]}):t==="execution_result"?jsxRuntime.jsxs("div",{className:"flex items-center gap-3 py-1 text-[11px]",children:[n&&jsxRuntime.jsx(AR,{status:n}),s!==void 0&&jsxRuntime.jsxs("span",{className:"text-zinc-500 flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Clock,{className:"w-3 h-3"}),s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`]}),a!==void 0&&a>0&&jsxRuntime.jsxs("span",{className:"text-zinc-500 flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Cpu,{className:"w-3 h-3"}),a>1e6?`${(a/1e6).toFixed(1)}MB`:`${(a/1e3).toFixed(1)}KB`]})]}):t==="divider"?jsxRuntime.jsx("div",{className:"text-zinc-700 text-[11px]",children:"\u2500".repeat(30)}):t==="input"?jsxRuntime.jsxs("div",{className:"flex items-start",children:[jsxRuntime.jsx("span",{className:"text-emerald-400 select-none mr-2",children:"$"}),jsxRuntime.jsx("span",{className:"text-zinc-200",children:i?.replace(/^\$ ?/,"")})]}):jsxRuntime.jsx("div",{className:St("whitespace-pre-wrap break-words",Bx[t]||Bx.output),children:i})}var Vx=react.forwardRef(function({lines:e=[],input:t="",onInputChange:i,onCommand:n,onClear:s,isExecuting:a=false,isReadOnly:o=false,placeholder:c="Type 'help' for commands",className:l,showPrompt:u=true,autoFocus:d=false},h){let[f,p]=react.useState(t),[g,m]=react.useState([]),[y,v]=react.useState(-1),E=react.useRef(null),b=react.useRef(null);react.useEffect(()=>{p(t);},[t]),react.useEffect(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight);},[e]),react.useImperativeHandle(h,()=>({focus:()=>b.current?.focus(),scrollToBottom:()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight);}}));let S=react.useCallback(w=>{p(w),i?.(w);},[i]),I=react.useCallback(()=>{let w=f.trim();w&&(m(A=>[...A,w]),v(-1),p(""),i?.(""),n?.(w));},[f,n,i]),T=react.useCallback(w=>{if(w.key==="Enter"&&!w.shiftKey)w.preventDefault(),I();else if(w.key==="ArrowUp"){if(w.preventDefault(),g.length>0){let A=Math.min(y+1,g.length-1);v(A);let _=g[g.length-1-A];p(_),i?.(_);}}else if(w.key==="ArrowDown")if(w.preventDefault(),y>0){let A=y-1;v(A);let _=g[g.length-1-A];p(_),i?.(_);}else y===0&&(v(-1),p(""),i?.(""));else w.key==="l"&&w.ctrlKey&&(w.preventDefault(),s?.());},[g,y,I,i,s]);return jsxRuntime.jsx("div",{className:St("flex flex-col bg-zinc-950 font-mono text-[12px] leading-relaxed",l),onClick:()=>b.current?.focus(),children:jsxRuntime.jsxs("div",{ref:E,className:"flex-1 overflow-y-auto p-3 space-y-0.5 select-text",children:[e.map((w,A)=>jsxRuntime.jsx(kR,{line:w,index:A},A)),u&&jsxRuntime.jsxs("div",{className:"flex items-center mt-1",children:[jsxRuntime.jsx("span",{className:"text-emerald-400 select-none mr-2",children:"$"}),o?jsxRuntime.jsxs("span",{className:"text-zinc-200",children:[f,jsxRuntime.jsx("span",{className:"animate-pulse text-emerald-400",children:"\u258B"})]}):jsxRuntime.jsx("input",{ref:b,type:"text",value:f,onChange:w=>S(w.target.value),onKeyDown:T,className:St("flex-1 bg-transparent outline-none text-zinc-200 caret-emerald-400","placeholder:text-zinc-600"),placeholder:a?"Executing...":c,disabled:a,autoFocus:d,spellCheck:false,autoComplete:"off"})]})]})})});var te=Number.isFinite||function(r){return typeof r=="number"&&isFinite(r)},IR=Number.isSafeInteger||function(r){return typeof r=="number"&&Math.abs(r)<=LR},LR=Number.MAX_SAFE_INTEGER||9007199254740991,de=(function(r){return r.NETWORK_ERROR="networkError",r.MEDIA_ERROR="mediaError",r.KEY_SYSTEM_ERROR="keySystemError",r.MUX_ERROR="muxError",r.OTHER_ERROR="otherError",r})({}),D=(function(r){return r.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",r.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",r.KEY_SYSTEM_NO_SESSION="keySystemNoSession",r.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",r.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",r.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",r.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",r.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",r.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",r.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",r.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",r.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",r.MANIFEST_LOAD_ERROR="manifestLoadError",r.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",r.MANIFEST_PARSING_ERROR="manifestParsingError",r.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",r.LEVEL_EMPTY_ERROR="levelEmptyError",r.LEVEL_LOAD_ERROR="levelLoadError",r.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",r.LEVEL_PARSING_ERROR="levelParsingError",r.LEVEL_SWITCH_ERROR="levelSwitchError",r.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",r.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",r.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",r.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",r.FRAG_LOAD_ERROR="fragLoadError",r.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",r.FRAG_DECRYPT_ERROR="fragDecryptError",r.FRAG_PARSING_ERROR="fragParsingError",r.FRAG_GAP="fragGap",r.REMUX_ALLOC_ERROR="remuxAllocError",r.KEY_LOAD_ERROR="keyLoadError",r.KEY_LOAD_TIMEOUT="keyLoadTimeOut",r.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",r.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",r.BUFFER_APPEND_ERROR="bufferAppendError",r.BUFFER_APPENDING_ERROR="bufferAppendingError",r.BUFFER_STALLED_ERROR="bufferStalledError",r.BUFFER_FULL_ERROR="bufferFullError",r.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",r.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",r.ASSET_LIST_LOAD_ERROR="assetListLoadError",r.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",r.ASSET_LIST_PARSING_ERROR="assetListParsingError",r.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",r.INTERNAL_EXCEPTION="internalException",r.INTERNAL_ABORTED="aborted",r.ATTACH_MEDIA_ERROR="attachMediaError",r.UNKNOWN="unknown",r})({}),x=(function(r){return r.MEDIA_ATTACHING="hlsMediaAttaching",r.MEDIA_ATTACHED="hlsMediaAttached",r.MEDIA_DETACHING="hlsMediaDetaching",r.MEDIA_DETACHED="hlsMediaDetached",r.MEDIA_ENDED="hlsMediaEnded",r.STALL_RESOLVED="hlsStallResolved",r.BUFFER_RESET="hlsBufferReset",r.BUFFER_CODECS="hlsBufferCodecs",r.BUFFER_CREATED="hlsBufferCreated",r.BUFFER_APPENDING="hlsBufferAppending",r.BUFFER_APPENDED="hlsBufferAppended",r.BUFFER_EOS="hlsBufferEos",r.BUFFERED_TO_END="hlsBufferedToEnd",r.BUFFER_FLUSHING="hlsBufferFlushing",r.BUFFER_FLUSHED="hlsBufferFlushed",r.MANIFEST_LOADING="hlsManifestLoading",r.MANIFEST_LOADED="hlsManifestLoaded",r.MANIFEST_PARSED="hlsManifestParsed",r.LEVEL_SWITCHING="hlsLevelSwitching",r.LEVEL_SWITCHED="hlsLevelSwitched",r.LEVEL_LOADING="hlsLevelLoading",r.LEVEL_LOADED="hlsLevelLoaded",r.LEVEL_UPDATED="hlsLevelUpdated",r.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",r.LEVELS_UPDATED="hlsLevelsUpdated",r.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",r.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",r.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",r.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",r.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",r.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",r.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",r.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",r.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",r.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",r.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",r.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",r.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",r.CUES_PARSED="hlsCuesParsed",r.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",r.INIT_PTS_FOUND="hlsInitPtsFound",r.FRAG_LOADING="hlsFragLoading",r.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",r.FRAG_LOADED="hlsFragLoaded",r.FRAG_DECRYPTED="hlsFragDecrypted",r.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",r.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",r.FRAG_PARSING_METADATA="hlsFragParsingMetadata",r.FRAG_PARSED="hlsFragParsed",r.FRAG_BUFFERED="hlsFragBuffered",r.FRAG_CHANGED="hlsFragChanged",r.FPS_DROP="hlsFpsDrop",r.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",r.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",r.ERROR="hlsError",r.DESTROYING="hlsDestroying",r.KEY_LOADING="hlsKeyLoading",r.KEY_LOADED="hlsKeyLoaded",r.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",r.BACK_BUFFER_REACHED="hlsBackBufferReached",r.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",r.ASSET_LIST_LOADING="hlsAssetListLoading",r.ASSET_LIST_LOADED="hlsAssetListLoaded",r.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",r.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",r.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",r.INTERSTITIAL_STARTED="hlsInterstitialStarted",r.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",r.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",r.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",r.INTERSTITIAL_ENDED="hlsInterstitialEnded",r.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",r.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",r.EVENT_CUE_ENTER="hlsEventCueEnter",r})({}),Me={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},le={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"},sn=class{constructor(e,t=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i;}sample(e,t){let i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e;}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}},Qh=class{constructor(e,t,i,n=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new sn(e),this.fast_=new sn(t),this.defaultTTFB_=n,this.ttfb_=new sn(e);}update(e,t){let{slow_:i,fast_:n,ttfb_:s}=this;i.halfLife!==e&&(this.slow_=new sn(e,i.getEstimate(),i.getTotalWeight())),n.halfLife!==t&&(this.fast_=new sn(t,n.getEstimate(),n.getTotalWeight())),s.halfLife!==e&&(this.ttfb_=new sn(e,s.getEstimate(),s.getTotalWeight()));}sample(e,t){e=Math.max(e,this.minDelayMs_);let i=8*t,n=e/1e3,s=i/n;this.fast_.sample(n,s),this.slow_.sample(n,s);}sampleTTFB(e){let t=e/1e3,i=Math.sqrt(2)*Math.exp(-Math.pow(t,2)/2);this.ttfb_.sample(i,Math.max(e,5));}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}};function RR(r,e,t){return (e=DR(e))in r?Object.defineProperty(r,e,{value:t,enumerable:true,configurable:true,writable:true}):r[e]=t,r}function Je(){return Je=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(r[i]=t[i]);}return r},Je.apply(null,arguments)}function jx(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i);}return t}function Ye(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?jx(Object(t),true).forEach(function(i){RR(r,i,t[i]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):jx(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i));});}return r}function CR(r,e){if(typeof r!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var i=t.call(r,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return (e==="string"?String:Number)(r)}function DR(r){var e=CR(r,"string");return typeof e=="symbol"?e:e+""}var nr=class{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;let i=`[${e}]:`;this.trace=an,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);}},an=function(){},PR={trace:an,debug:an,log:an,warn:an,info:an,error:an};function ef(){return Je({},PR)}function MR(r,e){let t=self.console[r];return t?t.bind(self.console,`${e?"["+e+"] ":""}[${r}] >`):an}function Wx(r,e,t){return e[r]?e[r].bind(e):MR(r,t)}var tf=ef();function OR(r,e,t){let i=ef();if(typeof console=="object"&&r===true||typeof r=="object"){let n=["debug","log","info","warn","error"];n.forEach(s=>{i[s]=Wx(s,r,t);});try{i.log(`Debug logs enabled for "${e}" in hls.js version 1.6.15`);}catch{return ef()}n.forEach(s=>{tf[s]=Wx(s,r);});}else Je(tf,i);return i}var Ze=tf;function on(r=true){return typeof self>"u"?void 0:(r||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function FR(r){return typeof self<"u"&&r===self.ManagedMediaSource}function nb(r,e){let t=Object.keys(r),i=Object.keys(e),n=t.length,s=i.length;return !n||!s||n===s&&!t.some(a=>i.indexOf(a)===-1)}function pr(r,e=false){if(typeof TextDecoder<"u"){let l=new TextDecoder("utf-8").decode(r);if(e){let u=l.indexOf("\0");return u!==-1?l.substring(0,u):l}return l.replace(/\0/g,"")}let t=r.length,i,n,s,a="",o=0;for(;o<t;){if(i=r[o++],i===0&&e)return a;if(i===0||i===3)continue;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:n=r[o++],a+=String.fromCharCode((i&31)<<6|n&63);break;case 14:n=r[o++],s=r[o++],a+=String.fromCharCode((i&15)<<12|(n&63)<<6|(s&63)<<0);break}}return a}function Bt(r){let e="";for(let t=0;t<r.length;t++){let i=r[t].toString(16);i.length<2&&(i="0"+i),e+=i;}return e}function sb(r){return Uint8Array.from(r.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}function NR(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Ch={exports:{}},qx;function BR(){return qx||(qx=1,(function(r,e){(function(t){var i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,n=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(c,l,u){if(u=u||{},c=c.trim(),l=l.trim(),!l){if(!u.alwaysNormalize)return c;var d=o.parseURL(c);if(!d)throw new Error("Error trying to parse base URL.");return d.path=o.normalizePath(d.path),o.buildURLFromParts(d)}var h=o.parseURL(l);if(!h)throw new Error("Error trying to parse relative URL.");if(h.scheme)return u.alwaysNormalize?(h.path=o.normalizePath(h.path),o.buildURLFromParts(h)):l;var f=o.parseURL(c);if(!f)throw new Error("Error trying to parse base URL.");if(!f.netLoc&&f.path&&f.path[0]!=="/"){var p=n.exec(f.path);f.netLoc=p[1],f.path=p[2];}f.netLoc&&!f.path&&(f.path="/");var g={scheme:f.scheme,netLoc:h.netLoc,path:null,params:h.params,query:h.query,fragment:h.fragment};if(!h.netLoc&&(g.netLoc=f.netLoc,h.path[0]!=="/"))if(!h.path)g.path=f.path,h.params||(g.params=f.params,h.query||(g.query=f.query));else {var m=f.path,y=m.substring(0,m.lastIndexOf("/")+1)+h.path;g.path=o.normalizePath(y);}return g.path===null&&(g.path=u.alwaysNormalize?o.normalizePath(h.path):h.path),o.buildURLFromParts(g)},parseURL:function(c){var l=i.exec(c);return l?{scheme:l[1]||"",netLoc:l[2]||"",path:l[3]||"",params:l[4]||"",query:l[5]||"",fragment:l[6]||""}:null},normalizePath:function(c){for(c=c.split("").reverse().join("").replace(s,"");c.length!==(c=c.replace(a,"")).length;);return c.split("").reverse().join("")},buildURLFromParts:function(c){return c.scheme+c.netLoc+c.path+c.params+c.query+c.fragment}};r.exports=o;})();})(Ch)),Ch.exports}var xp=BR(),uo=class{constructor(){this.aborted=false,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};}},et={AUDIO:"audio",VIDEO:"video",AUDIOVIDEO:"audiovideo"},mc=class{constructor(e){this._byteRange=null,this._url=null,this._stats=null,this._streams=null,this.base=void 0,this.relurl=void 0,typeof e=="string"&&(e={url:e}),this.base=e,UR(this,"stats");}setByteRange(e,t){let i=e.split("@",2),n;i.length===1?n=t?.byteRangeEndOffset||0:n=parseInt(i[1]),this._byteRange=[n,parseInt(i[0])+n];}get baseurl(){return this.base.url}get byteRange(){return this._byteRange===null?[]:this._byteRange}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get elementaryStreams(){return this._streams===null&&(this._streams={[et.AUDIO]:null,[et.VIDEO]:null,[et.AUDIOVIDEO]:null}),this._streams}set elementaryStreams(e){this._streams=e;}get hasStats(){return this._stats!==null}get hasStreams(){return this._streams!==null}get stats(){return this._stats===null&&(this._stats=new uo),this._stats}set stats(e){this._stats=e;}get url(){return !this._url&&this.baseurl&&this.relurl&&(this._url=xp.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:true})),this._url||""}set url(e){this._url=e;}clearElementaryStreamInfo(){let{elementaryStreams:e}=this;e[et.AUDIO]=null,e[et.VIDEO]=null,e[et.AUDIOVIDEO]=null;}};function gt(r){return r.sn!=="initSegment"}var ao=class extends mc{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=false,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(te(e)&&te(t))return t-e}return null}get bitrate(){return this.byteLength?this.byteLength*8/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(!((e=this._decryptdata)!=null&&e.keyId)){let i=Object.keys(t);if(i.length===1){let n=this._decryptdata=t[i[0]]||null;n&&(this._decryptdata=n.getDecryptData(this.sn,t));}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;let e=te(this.duration)?this.duration:0;return this.programDateTime+e*1e3}get encrypted(){var e;if((e=this._decryptdata)!=null&&e.encrypted)return true;if(this.levelkeys){var t;let i=Object.keys(this.levelkeys),n=i.length;if(n>1||n===1&&(t=this.levelkeys[i[0]])!=null&&t.encrypted)return true}return false}get programDateTime(){return this._programDateTime===null&&this.rawProgramDateTime&&(this.programDateTime=Date.parse(this.rawProgramDateTime)),this._programDateTime}set programDateTime(e){if(!te(e)){this._programDateTime=this.rawProgramDateTime=null;return}this._programDateTime=e;}get ref(){return gt(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 n=t[e];n&&!((i=this._decryptdata)!=null&&i.keyId)&&(this._decryptdata=n.getDecryptData(this.sn,t));}}abortRequests(){var e,t;(e=this.loader)==null||e.abort(),(t=this.keyLoader)==null||t.abort();}setElementaryStreamInfo(e,t,i,n,s,a=false){let{elementaryStreams:o}=this,c=o[e];if(!c){o[e]={startPTS:t,endPTS:i,startDTS:n,endDTS:s,partial:a};return}c.startPTS=Math.min(c.startPTS,t),c.endPTS=Math.max(c.endPTS,i),c.startDTS=Math.min(c.startDTS,n),c.endDTS=Math.max(c.endDTS,s);}},rf=class extends mc{constructor(e,t,i,n,s){super(i),this.fragOffset=0,this.duration=0,this.gap=false,this.independent=false,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=n;let a=e.enumeratedString("BYTERANGE");a&&this.setByteRange(a,s),s&&(this.fragOffset=s.fragOffset+s.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)}};function ab(r,e){let t=Object.getPrototypeOf(r);if(t){let i=Object.getOwnPropertyDescriptor(t,e);return i||ab(t,e)}}function UR(r,e){let t=ab(r,e);t&&(t.enumerable=true,Object.defineProperty(r,e,t));}var Yx=Math.pow(2,32)-1,$R=[].push,ob={video:1,audio:2,id3:3,text:4};function At(r){return String.fromCharCode.apply(null,r)}function lb(r,e){let t=r[e]<<8|r[e+1];return t<0?65536+t:t}function Se(r,e){let t=cb(r,e);return t<0?4294967296+t:t}function Zx(r,e){let t=Se(r,e);return t*=Math.pow(2,32),t+=Se(r,e+4),t}function cb(r,e){return r[e]<<24|r[e+1]<<16|r[e+2]<<8|r[e+3]}function zR(r){let e=r.byteLength;for(let t=0;t<e;){let i=Se(r,t);if(i>8&&r[t+4]===109&&r[t+5]===111&&r[t+6]===111&&r[t+7]===102)return true;t=i>1?t+i:e;}return false}function Ce(r,e){let t=[];if(!e.length)return t;let i=r.byteLength;for(let n=0;n<i;){let s=Se(r,n),a=At(r.subarray(n+4,n+8)),o=s>1?n+s:i;if(a===e[0])if(e.length===1)t.push(r.subarray(n+8,o));else {let c=Ce(r.subarray(n+8,o),e.slice(1));c.length&&$R.apply(t,c);}n=o;}return t}function GR(r){let e=[],t=r[0],i=8,n=Se(r,i);i+=4;let s=0,a=0;t===0?(s=Se(r,i),a=Se(r,i+4),i+=8):(s=Zx(r,i),a=Zx(r,i+8),i+=16),i+=2;let o=r.length+a,c=lb(r,i);i+=2;for(let l=0;l<c;l++){let u=i,d=Se(r,u);u+=4;let h=d&2147483647;if((d&2147483648)>>>31===1)return Ze.warn("SIDX has hierarchical references (not supported)"),null;let p=Se(r,u);u+=4,e.push({referenceSize:h,subsegmentDuration:p,info:{duration:p/n,start:o,end:o+h-1}}),o+=h,u+=4,i=u;}return {earliestPresentationTime:s,timescale:n,version:t,referencesCount:c,references:e}}function ub(r){let e=[],t=Ce(r,["moov","trak"]);for(let n=0;n<t.length;n++){let s=t[n],a=Ce(s,["tkhd"])[0];if(a){let o=a[0],c=Se(a,o===0?12:20),l=Ce(s,["mdia","mdhd"])[0];if(l){o=l[0];let u=Se(l,o===0?12:20),d=Ce(s,["mdia","hdlr"])[0];if(d){let h=At(d.subarray(8,12)),f={soun:et.AUDIO,vide:et.VIDEO}[h],p=Ce(s,["mdia","minf","stbl","stsd"])[0],g=HR(p);f?(e[c]={timescale:u,type:f,stsd:g},e[f]=Ye({timescale:u,id:c},g)):e[c]={timescale:u,type:h,stsd:g};}}}}return Ce(r,["moov","mvex","trex"]).forEach(n=>{let s=Se(n,4),a=e[s];a&&(a.default={duration:Se(n,12),flags:Se(n,20)});}),e}function HR(r){let e=r.subarray(8),t=e.subarray(86),i=At(e.subarray(4,8)),n=i,s,a=i==="enca"||i==="encv";if(a){let l=Ce(e,[i])[0].subarray(i==="enca"?28:78);Ce(l,["sinf"]).forEach(d=>{let h=Ce(d,["schm"])[0];if(h){let f=At(h.subarray(4,8));if(f==="cbcs"||f==="cenc"){let p=Ce(d,["frma"])[0];p&&(n=At(p));}}});}let o=n;switch(n){case "avc1":case "avc2":case "avc3":case "avc4":{let c=Ce(t,["avcC"])[0];c&&c.length>3&&(n+="."+Yl(c[1])+Yl(c[2])+Yl(c[3]),s=ql(o==="avc1"?"dva1":"dvav",t));break}case "mp4a":{let c=Ce(e,[i])[0],l=Ce(c.subarray(28),["esds"])[0];if(l&&l.length>7){let u=4;if(l[u++]!==3)break;u=Dh(l,u),u+=2;let d=l[u++];if(d&128&&(u+=2),d&64&&(u+=l[u++]),l[u++]!==4)break;u=Dh(l,u);let h=l[u++];if(h===64)n+="."+Yl(h);else break;if(u+=12,l[u++]!==5)break;u=Dh(l,u);let f=l[u++],p=(f&248)>>3;p===31&&(p+=1+((f&7)<<3)+((l[u]&224)>>5)),n+="."+p;}break}case "hvc1":case "hev1":{let c=Ce(t,["hvcC"])[0];if(c&&c.length>12){let l=c[1],u=["","A","B","C"][l>>6],d=l&31,h=Se(c,2),f=(l&32)>>5?"H":"L",p=c[12],g=c.subarray(6,12);n+="."+u+d,n+="."+KR(h).toString(16).toUpperCase(),n+="."+f+p;let m="";for(let y=g.length;y--;){let v=g[y];(v||m)&&(m="."+v.toString(16).toUpperCase()+m);}n+=m;}s=ql(o=="hev1"?"dvhe":"dvh1",t);break}case "dvh1":case "dvhe":case "dvav":case "dva1":case "dav1":{n=ql(n,t)||n;break}case "vp09":{let c=Ce(t,["vpcC"])[0];if(c&&c.length>6){let l=c[4],u=c[5],d=c[6]>>4&15;n+="."+Jr(l)+"."+Jr(u)+"."+Jr(d);}break}case "av01":{let c=Ce(t,["av1C"])[0];if(c&&c.length>2){let l=c[1]>>>5,u=c[1]&31,d=c[2]>>>7?"H":"M",h=(c[2]&64)>>6,f=(c[2]&32)>>5,p=l===2&&h?f?12:10:h?10:8,g=(c[2]&16)>>4,m=(c[2]&8)>>3,y=(c[2]&4)>>2,v=c[2]&3;n+="."+l+"."+Jr(u)+d+"."+Jr(p)+"."+g+"."+m+y+v+"."+Jr(1)+"."+Jr(1)+"."+Jr(1)+"."+0,s=ql("dav1",t);}break}}return {codec:n,encrypted:a,supplemental:s}}function ql(r,e){let t=Ce(e,["dvvC"]),i=t.length?t[0]:Ce(e,["dvcC"])[0];if(i){let n=i[2]>>1&127,s=i[2]<<5&32|i[3]>>3&31;return r+"."+Jr(n)+"."+Jr(s)}}function KR(r){let e=0;for(let t=0;t<32;t++)e|=(r>>t&1)<<31-t;return e>>>0}function Dh(r,e){let t=e+5;for(;r[e++]&128&&e<t;);return e}function Yl(r){return ("0"+r.toString(16).toUpperCase()).slice(-2)}function Jr(r){return (r<10?"0":"")+r}function VR(r,e){if(!r||!e)return;let t=e.keyId;t&&e.isCommonEncryption&&db(r,(i,n)=>{let s=i.subarray(8,24);s.some(a=>a!==0)||(Ze.log(`[eme] Patching keyId in 'enc${n?"a":"v"}>sinf>>tenc' box: ${Bt(s)} -> ${Bt(t)}`),i.set(t,8));});}function jR(r){let e=[];return db(r,t=>e.push(t.subarray(8,24))),e}function db(r,e){Ce(r,["moov","trak"]).forEach(i=>{let n=Ce(i,["mdia","minf","stbl","stsd"])[0];if(!n)return;let s=n.subarray(8),a=Ce(s,["enca"]),o=a.length>0;o||(a=Ce(s,["encv"])),a.forEach(c=>{let l=o?c.subarray(28):c.subarray(78);Ce(l,["sinf"]).forEach(d=>{let h=hb(d);h&&e(h,o);});});});}function hb(r){let e=Ce(r,["schm"])[0];if(e){let t=At(e.subarray(4,8));if(t==="cbcs"||t==="cenc"){let i=Ce(r,["schi","tenc"])[0];if(i)return i}}}function WR(r,e,t){let i={},n=Ce(r,["moof","traf"]);for(let s=0;s<n.length;s++){let a=n[s],o=Ce(a,["tfhd"])[0],c=Se(o,4),l=e[c];if(!l)continue;i[c]||(i[c]={start:NaN,duration:0,sampleCount:0,timescale:l.timescale,type:l.type});let u=i[c],d=Ce(a,["tfdt"])[0];if(d){let E=d[0],b=Se(d,4);E===1&&(b===Yx?t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"):(b*=Yx+1,b+=Se(d,8))),te(b)&&(!te(u.start)||b<u.start)&&(u.start=b);}let h=l.default,f=Se(o,0)|h?.flags,p=h?.duration||0;f&8&&(f&2?p=Se(o,12):p=Se(o,8));let g=Ce(a,["trun"]),m=u.start||0,y=0,v=p;for(let E=0;E<g.length;E++){let b=g[E],S=Se(b,4),I=u.sampleCount;u.sampleCount+=S;let T=b[3]&1,w=b[3]&4,A=b[2]&1,_=b[2]&2,k=b[2]&4,L=b[2]&8,C=8,N=S;for(T&&(C+=4),w&&S&&(!(b[C+1]&1)&&u.keyFrameIndex===void 0&&(u.keyFrameIndex=I),C+=4,A?(v=Se(b,C),C+=4):v=p,_&&(C+=4),L&&(C+=4),m+=v,y+=v,N--);N--;)A?(v=Se(b,C),C+=4):v=p,_&&(C+=4),k&&(b[C+1]&1||u.keyFrameIndex===void 0&&(u.keyFrameIndex=u.sampleCount-(N+1),u.keyFrameStart=m),C+=4),L&&(C+=4),m+=v,y+=v;!y&&p&&(y+=p*S);}u.duration+=y;}if(!Object.keys(i).some(s=>i[s].duration)){let s=1/0,a=0,o=Ce(r,["sidx"]);for(let c=0;c<o.length;c++){let l=GR(o[c]);if(l!=null&&l.references){s=Math.min(s,l.earliestPresentationTime/l.timescale);let u=l.references.reduce((d,h)=>d+h.info.duration||0,0);a=Math.max(a,u+l.earliestPresentationTime/l.timescale);}}a&&te(a)&&Object.keys(i).forEach(c=>{i[c].duration||(i[c].duration=a*i[c].timescale-i[c].start);});}return i}function qR(r){let e={valid:null,remainder:null},t=Ce(r,["moof"]);if(t.length<2)return e.remainder=r,e;let i=t[t.length-1];return e.valid=r.slice(0,i.byteOffset-8),e.remainder=r.slice(i.byteOffset-8),e}function Tr(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r),t.set(e,r.length),t}function Xx(r,e){let t=[],i=e.samples,n=e.timescale,s=e.id,a=false;return Ce(i,["moof"]).map(c=>{let l=c.byteOffset-8;Ce(c,["traf"]).map(d=>{let h=Ce(d,["tfdt"]).map(f=>{let p=f[0],g=Se(f,4);return p===1&&(g*=Math.pow(2,32),g+=Se(f,8)),g/n})[0];return h!==void 0&&(r=h),Ce(d,["tfhd"]).map(f=>{let p=Se(f,4),g=Se(f,0)&16777215,m=(g&1)!==0,y=(g&2)!==0,v=(g&8)!==0,E=0,b=(g&16)!==0,S=0,I=(g&32)!==0,T=8;p===s&&(m&&(T+=8),y&&(T+=4),v&&(E=Se(f,T),T+=4),b&&(S=Se(f,T),T+=4),I&&(T+=4),e.type==="video"&&(a=zc(e.codec)),Ce(d,["trun"]).map(w=>{let A=w[0],_=Se(w,0)&16777215,k=(_&1)!==0,L=0,C=(_&4)!==0,N=(_&256)!==0,B=0,F=(_&512)!==0,G=0,M=(_&1024)!==0,H=(_&2048)!==0,Z=0,R=Se(w,4),$=8;k&&(L=Se(w,$),$+=4),C&&($+=4);let Q=L+l;for(let j=0;j<R;j++){if(N?(B=Se(w,$),$+=4):B=E,F?(G=Se(w,$),$+=4):G=S,M&&($+=4),H&&(A===0?Z=Se(w,$):Z=cb(w,$),$+=4),e.type===et.VIDEO){let se=0;for(;se<G;){let q=Se(i,Q);if(Q+=4,YR(a,i[Q])){let _e=i.subarray(Q,Q+q);Ep(_e,a?2:1,r+Z/n,t);}Q+=q,se+=q+4;}}r+=B/n;}}));})});}),t}function zc(r){if(!r)return false;let e=r.substring(0,4);return e==="hvc1"||e==="hev1"||e==="dvh1"||e==="dvhe"}function YR(r,e){if(r){let t=e>>1&63;return t===39||t===40}else return (e&31)===6}function Ep(r,e,t,i){let n=fb(r),s=0;s+=e;let a=0,o=0,c=0;for(;s<n.length;){a=0;do{if(s>=n.length)break;c=n[s++],a+=c;}while(c===255);o=0;do{if(s>=n.length)break;c=n[s++],o+=c;}while(c===255);let l=n.length-s,u=s;if(o<l)s+=o;else if(o>l){Ze.error(`Malformed SEI payload. ${o} is too small, only ${l} bytes left to parse.`);break}if(a===4){if(n[u++]===181){let h=lb(n,u);if(u+=2,h===49){let f=Se(n,u);if(u+=4,f===1195456820){let p=n[u++];if(p===3){let g=n[u++],m=31&g,y=64&g,v=y?2+m*3:0,E=new Uint8Array(v);if(y){E[0]=g;for(let b=1;b<v;b++)E[b]=n[u++];}i.push({type:p,payloadType:a,pts:t,bytes:E});}}}}}else if(a===5&&o>16){let d=[];for(let p=0;p<16;p++){let g=n[u++].toString(16);d.push(g.length==1?"0"+g:g),(p===3||p===5||p===7||p===9)&&d.push("-");}let h=o-16,f=new Uint8Array(h);for(let p=0;p<h;p++)f[p]=n[u++];i.push({payloadType:a,pts:t,uuid:d.join(""),userData:pr(f),userDataBytes:f});}}}function fb(r){let e=r.byteLength,t=[],i=1;for(;i<e-2;)r[i]===0&&r[i+1]===0&&r[i+2]===3?(t.push(i+2),i+=2):i++;if(t.length===0)return r;let n=e-t.length,s=new Uint8Array(n),a=0;for(i=0;i<n;a++,i++)a===t[0]&&(a++,t.shift()),s[i]=r[a];return s}function ZR(r){let e=r[0],t="",i="",n=0,s=0,a=0,o=0,c=0,l=0;if(e===0){for(;At(r.subarray(l,l+1))!=="\0";)t+=At(r.subarray(l,l+1)),l+=1;for(t+=At(r.subarray(l,l+1)),l+=1;At(r.subarray(l,l+1))!=="\0";)i+=At(r.subarray(l,l+1)),l+=1;i+=At(r.subarray(l,l+1)),l+=1,n=Se(r,12),s=Se(r,16),o=Se(r,20),c=Se(r,24),l=28;}else if(e===1){l+=4,n=Se(r,l),l+=4;let d=Se(r,l);l+=4;let h=Se(r,l);for(l+=4,a=2**32*d+h,IR(a)||(a=Number.MAX_SAFE_INTEGER,Ze.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=Se(r,l),l+=4,c=Se(r,l),l+=4;At(r.subarray(l,l+1))!=="\0";)t+=At(r.subarray(l,l+1)),l+=1;for(t+=At(r.subarray(l,l+1)),l+=1;At(r.subarray(l,l+1))!=="\0";)i+=At(r.subarray(l,l+1)),l+=1;i+=At(r.subarray(l,l+1)),l+=1;}let u=r.subarray(l,r.byteLength);return {schemeIdUri:t,value:i,timeScale:n,presentationTime:a,presentationTimeDelta:s,eventDuration:o,id:c,payload:u}}function XR(r,...e){let t=e.length,i=8,n=t;for(;n--;)i+=e[n].byteLength;let s=new Uint8Array(i);for(s[0]=i>>24&255,s[1]=i>>16&255,s[2]=i>>8&255,s[3]=i&255,s.set(r,4),n=0,i=8;n<t;n++)s.set(e[n],i),i+=e[n].byteLength;return s}function JR(r,e,t){if(r.byteLength!==16)throw new RangeError("Invalid system id");let i,n;i=0,n=new Uint8Array;let s;i>0?(s=new Uint8Array(4),e.length>0&&new DataView(s.buffer).setUint32(0,e.length,false)):s=new Uint8Array;let a=new Uint8Array(4);return t.byteLength>0&&new DataView(a.buffer).setUint32(0,t.byteLength,false),XR([112,115,115,104],new Uint8Array([i,0,0,0]),r,s,n,a,t)}function QR(r){let e=[];if(r instanceof ArrayBuffer){let t=r.byteLength,i=0;for(;i+32<t;){let n=new DataView(r,i),s=eC(n);e.push(s),i+=s.size;}}return e}function eC(r){let e=r.getUint32(0),t=r.byteOffset,i=r.byteLength;if(i<e)return {offset:t,size:i};if(r.getUint32(4)!==1886614376)return {offset:t,size:e};let s=r.getUint32(8)>>>24;if(s!==0&&s!==1)return {offset:t,size:e};let a=r.buffer,o=Bt(new Uint8Array(a,t+12,16)),c=null,l=null,u=0;if(s===0)u=28;else {let h=r.getUint32(28);if(!h||i<32+h*16)return {offset:t,size:e};c=[];for(let f=0;f<h;f++)c.push(new Uint8Array(a,t+32+f*16,16));u=32+h*16;}if(!u)return {offset:t,size:e};let d=r.getUint32(u);return e-32<d?{offset:t,size:e}:(l=new Uint8Array(a,t+u+4,d),{version:s,systemId:o,kids:c,data:l,offset:t,size:e})}var pb=()=>/\(Windows.+Firefox\//i.test(navigator.userAgent),Ys={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 bp(r,e){let t=Ys[e];return !!t&&!!t[r.slice(0,4)]}function ho(r,e,t=true){return !r.split(",").some(i=>!Sp(i,e,t))}function Sp(r,e,t=true){var i;let n=on(t);return (i=n?.isTypeSupported(fo(r,e)))!=null?i:false}function fo(r,e){return `${e}/mp4;codecs=${r}`}function Jx(r){if(r){let e=r.substring(0,4);return Ys.video[e]}return 2}function gc(r){let e=pb();return r.split(",").reduce((t,i)=>{let s=e&&zc(i)?9:Ys.video[i];return s?(s*2+t)/(t?3:2):(Ys.audio[i]+t)/(t?2:1)},0)}var Ph={};function tC(r,e=true){if(Ph[r])return Ph[r];let t={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[r];for(let n=0;n<t.length;n++){var i;if(Sp(t[n],"audio",e))return Ph[r]=t[n],t[n];if(t[n]==="mp3"&&(i=on(e))!=null&&i.isTypeSupported("audio/mpeg"))return ""}return r}var rC=/flac|opus|mp4a\.40\.34/i;function yc(r,e=true){return r.replace(rC,t=>tC(t.toLowerCase(),e))}function iC(r,e){let t=[];if(r){let i=r.split(",");for(let n=0;n<i.length;n++)bp(i[n],"video")||t.push(i[n]);}return e&&t.push(e),t.join(",")}function lc(r,e){if(r&&(r.length>4||["ac-3","ec-3","alac","fLaC","Opus"].indexOf(r)!==-1)&&(Qx(r,"audio")||Qx(r,"video")))return r;if(e){let t=e.split(",");if(t.length>1){if(r){for(let i=t.length;i--;)if(t[i].substring(0,4)===r.substring(0,4))return t[i]}return t[0]}}return e||r}function Qx(r,e){return bp(r,e)&&Sp(r,e)}function nC(r){let e=r.split(",");for(let t=0;t<e.length;t++){let i=e[t].split(".");i.length>2&&i[0]==="avc1"&&(e[t]=`avc1.${parseInt(i[1]).toString(16)}${("000"+parseInt(i[2]).toString(16)).slice(-4)}`);}return e.join(",")}function sC(r){if(r.startsWith("av01.")){let e=r.split("."),t=["0","111","01","01","01","0"];for(let i=e.length;i>4&&i<10;i++)e[i]=t[i-4];return e.join(".")}return r}function eE(r){let e=on(r)||{isTypeSupported:()=>false};return {mpeg:e.isTypeSupported("audio/mpeg"),mp3:e.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:e.isTypeSupported('audio/mp4; codecs="ac-3"')}}function nf(r){return r.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}var aC={supported:true,powerEfficient:true,smooth:true},oC={supported:false,smooth:false,powerEfficient:false},mb={supported:true,configurations:[],decodingInfoResults:[aC]};function gb(r,e){return {supported:false,configurations:e,decodingInfoResults:[oC],error:r}}function lC(r,e,t,i,n,s){let a=r.videoCodec,o=r.audioCodec?r.audioGroups:null,c=s?.audioCodec,l=s?.channels,u=l?parseInt(l):c?1/0:2,d=null;if(o!=null&&o.length)try{o.length===1&&o[0]?d=e.groups[o[0]].channels:d=o.reduce((h,f)=>{if(f){let p=e.groups[f];if(!p)throw new Error(`Audio track group ${f} not found`);Object.keys(p.channels).forEach(g=>{h[g]=(h[g]||0)+p.channels[g];});}return h},{2:0});}catch{return true}return a!==void 0&&(a.split(",").some(h=>zc(h))||r.width>1920&&r.height>1088||r.height>1920&&r.width>1088||r.frameRate>Math.max(i,30)||r.videoRange!=="SDR"&&r.videoRange!==t||r.bitrate>Math.max(n,8e6))||!!d&&te(u)&&Object.keys(d).some(h=>parseInt(h)>u)}function yb(r,e,t,i={}){let n=r.videoCodec;if(!n&&!r.audioCodec||!t)return Promise.resolve(mb);let s=[],a=cC(r),o=a.length,c=uC(r,e,o>0),l=c.length;for(let u=o||1*l||1;u--;){let d={type:"media-source"};if(o&&(d.video=a[u%o]),l){d.audio=c[u%l];let h=d.audio.bitrate;d.video&&h&&(d.video.bitrate-=h);}s.push(d);}if(n){let u=navigator.userAgent;if(n.split(",").some(d=>zc(d))&&pb())return Promise.resolve(gb(new Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${u})`),s))}return Promise.all(s.map(u=>{let d=hC(u);return i[d]||(i[d]=t.decodingInfo(u))})).then(u=>({supported:!u.some(d=>!d.supported),configurations:s,decodingInfoResults:u})).catch(u=>({supported:false,configurations:s,decodingInfoResults:[],error:u}))}function cC(r){var e;let t=(e=r.videoCodec)==null?void 0:e.split(","),i=vb(r),n=r.width||640,s=r.height||480,a=r.frameRate||30,o=r.videoRange.toLowerCase();return t?t.map(c=>{let l={contentType:fo(sC(c),"video"),width:n,height:s,bitrate:i,framerate:a};return o!=="sdr"&&(l.transferFunction=o),l}):[]}function uC(r,e,t){var i;let n=(i=r.audioCodec)==null?void 0:i.split(","),s=vb(r);return n&&r.audioGroups?r.audioGroups.reduce((a,o)=>{var c;let l=o?(c=e.groups[o])==null?void 0:c.tracks:null;return l?l.reduce((u,d)=>{if(d.groupId===o){let h=parseFloat(d.channels||"");n.forEach(f=>{let p={contentType:fo(f,"audio"),bitrate:t?dC(f,s):s};h&&(p.channels=""+h),u.push(p);});}return u},a):a},[]):[]}function dC(r,e){if(e<=1)return 1;let t=128e3;return r==="ec-3"?t=768e3:r==="ac-3"&&(t=64e4),Math.min(e/2,t)}function vb(r){return Math.ceil(Math.max(r.bitrate*.9,r.averageBitrate)/1e3)*1e3||1}function hC(r){let e="",{audio:t,video:i}=r;if(i){let n=nf(i.contentType);e+=`${n}_r${i.height}x${i.width}f${Math.ceil(i.framerate)}${i.transferFunction||"sd"}_${Math.ceil(i.bitrate/1e5)}`;}if(t){let n=nf(t.contentType);e+=`${i?"_":""}${n}_c${t.channels}`;}return e}var sf=["NONE","TYPE-0","TYPE-1",null];function fC(r){return sf.indexOf(r)>-1}var vc=["SDR","PQ","HLG"];function pC(r){return !!r&&vc.indexOf(r)>-1}var cc={No:"",Yes:"YES",v2:"v2"};function tE(r){let{canSkipUntil:e,canSkipDateRanges:t,age:i}=r,n=i<e/2;return e&&n?t?cc.v2:cc.Yes:cc.No}var xc=class{constructor(e,t,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=t,this.skip=i;}addDirectives(e){let t=new self.URL(e);return this.msn!==void 0&&t.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&t.searchParams.set("_HLS_part",this.part.toString()),this.skip&&t.searchParams.set("_HLS_skip",this.skip),t.href}},zn=class{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(i=>!!i).map(i=>i.substring(0,4)).join(","),"supplemental"in e){var t;this.supplemental=e.supplemental;let i=(t=e.supplemental)==null?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 rE(this._audioGroups,e)}hasSubtitleGroup(e){return rE(this._subtitleGroups,e)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(e,t){if(t){if(e==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(t)===-1&&i.push(t);}else if(e==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(t)===-1&&i.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 (e=this.audioGroups)==null?void 0:e[0]}get textGroupId(){var e;return (e=this.subtitleGroups)==null?void 0:e[0]}addFallback(){}};function rE(r,e){return !e||!r?false:r.indexOf(e)!==-1}function mC(){if(typeof matchMedia=="function"){let r=matchMedia("(dynamic-range: high)"),e=matchMedia("bad query");if(r.media!==e.media)return r.matches===true}return false}function gC(r,e){let t=false,i=[];if(r&&(t=r!=="SDR",i=[r]),e){i=e.allowedVideoRanges||vc.slice(0);let n=i.join("")!=="SDR"&&!e.videoCodec;t=e.preferHDR!==void 0?e.preferHDR:n&&mC(),t||(i=["SDR"]);}return {preferHDR:t,allowedVideoRanges:i}}var yC=r=>{let e=new WeakSet;return (t,i)=>{if(r&&(i=r(t,i)),typeof i=="object"&&i!==null){if(e.has(i))return;e.add(i);}return i}},tt=(r,e)=>JSON.stringify(r,yC(e));function vC(r,e,t,i,n){let s=Object.keys(r),a=i?.channels,o=i?.audioCodec,c=n?.videoCodec,l=a&&parseInt(a)===2,u=false,d=false,h=1/0,f=1/0,p=1/0,g=1/0,m=0,y=[],{preferHDR:v,allowedVideoRanges:E}=gC(e,n);for(let w=s.length;w--;){let A=r[s[w]];u||(u=A.channels[2]>0),h=Math.min(h,A.minHeight),f=Math.min(f,A.minFramerate),p=Math.min(p,A.minBitrate),E.filter(k=>A.videoRanges[k]>0).length>0&&(d=true);}h=te(h)?h:0,f=te(f)?f:0;let b=Math.max(1080,h),S=Math.max(30,f);p=te(p)?p:t,t=Math.max(p,t),d||(e=void 0);let I=s.length>1;return {codecSet:s.reduce((w,A)=>{let _=r[A];if(A===w)return w;if(y=d?E.filter(k=>_.videoRanges[k]>0):[],I){if(_.minBitrate>t)return Zr(A,`min bitrate of ${_.minBitrate} > current estimate of ${t}`),w;if(!_.hasDefaultAudio)return Zr(A,"no renditions with default or auto-select sound found"),w;if(o&&A.indexOf(o.substring(0,4))%5!==0)return Zr(A,`audio codec preference "${o}" not found`),w;if(a&&!l){if(!_.channels[a])return Zr(A,`no renditions with ${a} channel sound found (channels options: ${Object.keys(_.channels)})`),w}else if((!o||l)&&u&&_.channels[2]===0)return Zr(A,"no renditions with stereo sound found"),w;if(_.minHeight>b)return Zr(A,`min resolution of ${_.minHeight} > maximum of ${b}`),w;if(_.minFramerate>S)return Zr(A,`min framerate of ${_.minFramerate} > maximum of ${S}`),w;if(!y.some(k=>_.videoRanges[k]>0))return Zr(A,`no variants with VIDEO-RANGE of ${tt(y)} found`),w;if(c&&A.indexOf(c.substring(0,4))%5!==0)return Zr(A,`video codec preference "${c}" not found`),w;if(_.maxScore<m)return Zr(A,`max score of ${_.maxScore} < selected max of ${m}`),w}return w&&(gc(A)>=gc(w)||_.fragmentError>r[w].fragmentError)?w:(g=_.minIndex,m=_.maxScore,A)},void 0),videoRanges:y,preferHDR:v,minFramerate:f,minBitrate:p,minIndex:g}}function Zr(r,e){Ze.log(`[abr] start candidates with "${r}" ignored because ${e}`);}function xb(r){return r.reduce((e,t)=>{let i=e.groups[t.groupId];i||(i=e.groups[t.groupId]={tracks:[],channels:{2:0},hasDefault:false,hasAutoSelect:false}),i.tracks.push(t);let n=t.channels||"2";return i.channels[n]=(i.channels[n]||0)+1,i.hasDefault=i.hasDefault||t.default,i.hasAutoSelect=i.hasAutoSelect||t.autoselect,i.hasDefault&&(e.hasDefaultAudio=true),i.hasAutoSelect&&(e.hasAutoSelectAudio=true),e},{hasDefaultAudio:false,hasAutoSelectAudio:false,groups:{}})}function xC(r,e,t,i){return r.slice(t,i+1).reduce((n,s,a)=>{if(!s.codecSet)return n;let o=s.audioGroups,c=n[s.codecSet];c||(n[s.codecSet]=c={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:a,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!o,fragmentError:0}),c.minBitrate=Math.min(c.minBitrate,s.bitrate);let l=Math.min(s.height,s.width);return c.minHeight=Math.min(c.minHeight,l),c.minFramerate=Math.min(c.minFramerate,s.frameRate),c.minIndex=Math.min(c.minIndex,a),c.maxScore=Math.max(c.maxScore,s.score),c.fragmentError+=s.fragmentError,c.videoRanges[s.videoRange]=(c.videoRanges[s.videoRange]||0)+1,o&&o.forEach(u=>{if(!u)return;let d=e.groups[u];d&&(c.hasDefaultAudio=c.hasDefaultAudio||e.hasDefaultAudio?d.hasDefault:d.hasAutoSelect||!e.hasDefaultAudio&&!e.hasAutoSelectAudio,Object.keys(d.channels).forEach(h=>{c.channels[h]=(c.channels[h]||0)+d.channels[h];}));}),n},{})}function iE(r){if(!r)return r;let{lang:e,assocLang:t,characteristics:i,channels:n,audioCodec:s}=r;return {lang:e,assocLang:t,characteristics:i,channels:n,audioCodec:s}}function ei(r,e,t){if("attrs"in r){let i=e.indexOf(r);if(i!==-1)return i}for(let i=0;i<e.length;i++){let n=e[i];if(Un(r,n,t))return i}return -1}function Un(r,e,t){let{groupId:i,name:n,lang:s,assocLang:a,default:o}=r,c=r.forced;return (i===void 0||e.groupId===i)&&(n===void 0||e.name===n)&&(s===void 0||EC(s,e.lang))&&(s===void 0||e.assocLang===a)&&(o===void 0||e.default===o)&&(c===void 0||e.forced===c)&&(!("characteristics"in r)||bC(r.characteristics||"",e.characteristics))&&(t===void 0||t(r,e))}function EC(r,e="--"){return r.length===e.length?r===e:r.startsWith(e)||e.startsWith(r)}function bC(r,e=""){let t=r.split(","),i=e.split(",");return t.length===i.length&&!t.some(n=>i.indexOf(n)===-1)}function Nn(r,e){let{audioCodec:t,channels:i}=r;return (t===void 0||(e.audioCodec||"").substring(0,4)===t.substring(0,4))&&(i===void 0||i===(e.channels||"2"))}function SC(r,e,t,i,n){let s=e[i],o=e.reduce((h,f,p)=>{let g=f.uri;return (h[g]||(h[g]=[])).push(p),h},{})[s.uri];o.length>1&&(i=Math.max.apply(Math,o));let c=s.videoRange,l=s.frameRate,u=s.codecSet.substring(0,4),d=nE(e,i,h=>{if(h.videoRange!==c||h.frameRate!==l||h.codecSet.substring(0,4)!==u)return false;let f=h.audioGroups,p=t.filter(g=>!f||f.indexOf(g.groupId)!==-1);return ei(r,p,n)>-1});return d>-1?d:nE(e,i,h=>{let f=h.audioGroups,p=t.filter(g=>!f||f.indexOf(g.groupId)!==-1);return ei(r,p,n)>-1})}function nE(r,e,t){for(let i=e;i>-1;i--)if(t(r[i]))return i;for(let i=e+1;i<r.length;i++)if(t(r[i]))return i;return -1}function Ec(r,e){var t;return !!r&&r!==((t=e.loadLevelObj)==null?void 0:t.uri)}var af=class extends nr{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.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.rebufferNotice=-1,this.supportedCache={},this.bwEstimator=void 0,this._abandonRulesCheck=t=>{var i;let{fragCurrent:n,partCurrent:s,hls:a}=this,{autoLevelEnabled:o,media:c}=a;if(!n||!c)return;let l=performance.now(),u=s?s.stats:n.stats,d=s?s.duration:n.duration,h=l-u.loading.start,f=a.minAutoLevel,p=n.level,g=this._nextAutoLevel;if(u.aborted||u.loaded&&u.loaded===u.total||p<=f){this.clearTimer(),this._nextAutoLevel=-1;return}if(!o)return;let m=g>-1&&g!==p,y=!!t||m;if(!y&&(c.paused||!c.playbackRate||!c.readyState))return;let v=a.mainForwardBufferInfo;if(!y&&v===null)return;let E=this.bwEstimator.getEstimateTTFB(),b=Math.abs(c.playbackRate);if(h<=Math.max(E,1e3*(d/(b*2))))return;let S=v?v.len/b:0,I=u.loading.first?u.loading.first-u.loading.start:-1,T=u.loaded&&I>-1,w=this.getBwEstimate(),A=a.levels,_=A[p],k=Math.max(u.loaded,Math.round(d*(n.bitrate||_.averageBitrate)/8)),L=T?h-I:h;L<1&&T&&(L=Math.min(h,u.loaded*8/w));let C=T?u.loaded*1e3/L:0,N=E/1e3,B=C?(k-u.loaded)/C:k*8/w+N;if(B<=S)return;let F=C?C*8:w,G=((i=t?.details||this.hls.latestLevelDetails)==null?void 0:i.live)===true,M=this.hls.config.abrBandWidthUpFactor,H=Number.POSITIVE_INFINITY,Z;for(Z=p-1;Z>f;Z--){let j=A[Z].maxBitrate,se=!A[Z].details||G;if(H=this.getTimeToLoadFrag(N,F,d*j,se),H<Math.min(S,d+N))break}if(H>=B||H>d*10)return;T?this.bwEstimator.sample(h-Math.min(E,I),u.loaded):this.bwEstimator.sampleTTFB(h);let R=A[Z].maxBitrate;this.getBwEstimate()*M>R&&this.resetEstimator(R);let $=this.findBestLevel(R,f,Z,0,S,1,1);$>-1&&(Z=$),this.warn(`Fragment ${n.sn}${s?" part "+s.index:""} of level ${p} is loading too slowly;
124
+ Fragment duration: ${n.duration.toFixed(3)}
125
+ Time to underbuffer: ${S.toFixed(3)} s
126
+ Estimated load time for current fragment: ${B.toFixed(3)} s
127
+ Estimated load time for down switch fragment: ${H.toFixed(3)} s
128
+ TTFB estimate: ${I|0} ms
129
+ Current BW estimate: ${te(w)?w|0:"Unknown"} bps
130
+ New BW estimate: ${this.getBwEstimate()|0} bps
131
+ Switching to level ${Z} @ ${R|0} bps`),a.nextLoadLevel=a.nextAutoLevel=Z,this.clearTimer();let Q=()=>{if(this.clearTimer(),this.fragCurrent===n&&this.hls.loadLevel===Z&&Z>0){let j=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${Z>0?"and switching down":""}
132
+ Fragment duration: ${n.duration.toFixed(3)} s
133
+ Time to underbuffer: ${j.toFixed(3)} s`),n.abortRequests(),this.fragCurrent=this.partCurrent=null,Z>f){let se=this.findBestLevel(this.hls.levels[f].bitrate,f,Z,0,j,1,1);se===-1&&(se=f),this.hls.nextLoadLevel=this.hls.nextAutoLevel=se,this.resetEstimator(this.hls.levels[se].bitrate);}}};m||B>H*2?Q():this.timer=self.setInterval(Q,H*1e3),a.trigger(x.FRAG_LOAD_EMERGENCY_ABORTED,{frag:n,part:s,stats:u});},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 Qh(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;if(!this.ignoreFragment(i)){if(!i.bitrateTest){var n;this.fragCurrent=i,this.partCurrent=(n=t.part)!=null?n: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 D.BUFFER_ADD_CODEC_ERROR:case D.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case D.FRAG_LOAD_TIMEOUT:{let i=t.frag,{fragCurrent:n,partCurrent:s}=this;if(i&&n&&i.sn===n.sn&&i.level===n.level){let a=performance.now(),o=s?s.stats:i.stats,c=a-o.loading.start,l=o.loading.first?o.loading.first-o.loading.start:-1;if(o.loaded&&l>-1){let d=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(c-Math.min(d,l),o.loaded);}else this.bwEstimator.sampleTTFB(c);}break}}}getTimeToLoadFrag(e,t,i,n){let s=e+i/t,a=n?e+this.lastLevelLoadSec:0;return s+a}onLevelLoaded(e,t){let i=this.hls.config,{loading:n}=t.stats,s=n.end-n.first;te(s)&&(this.lastLevelLoadSec=s/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 n=i?i.stats:t.stats;if(t.type===le.MAIN&&this.bwEstimator.sampleTTFB(n.loading.first-n.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),t.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let s=i?i.duration:t.duration,a=this.hls.levels[t.level],o=(a.loaded?a.loaded.bytes:0)+n.loaded,c=(a.loaded?a.loaded.duration:0)+s;a.loaded={bytes:o,duration:c},a.realBitrate=Math.round(8*o/c);}if(t.bitrateTest){let s={stats:n,frag:t,part:i,id:t.type};this.onFragBuffered(x.FRAG_BUFFERED,s),t.bitrateTest=false;}else this.lastLoadedFragLevel=t.level;}}onFragBuffered(e,t){let{frag:i,part:n}=t,s=n!=null&&n.stats.loaded?n.stats:i.stats;if(s.aborted||this.ignoreFragment(i))return;let a=s.parsing.end-s.loading.start-Math.min(s.loading.first-s.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,s.loaded),s.bwEstimate=this.getBwEstimate(),i.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0;}ignoreFragment(e){return e.type!==le.MAIN||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1);}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:t}=this.hls,i=this.getBwEstimate(),n=this.hls.config.maxStarvationDelay,s=this.findBestLevel(i,t,e,0,n,1,1);if(s>-1)return s;let a=this.hls.firstLevel,o=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 ${o}`),o}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),n=this.lastLoadedFragLevel>-1;if(e!==-1&&(!i||!n||this.nextAutoLevelKey===this.getAutoLevelKey()))return e;let s=i&&n?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let a=this.hls.levels;if(a.length>Math.max(e,s)&&a[e].loadError<=a[s].loadError)return e}return this._nextAutoLevel=s,this.nextAutoLevelKey=this.getAutoLevelKey(),s}getAutoLevelKey(){return `${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:t,hls:i}=this;if(i.levels.length<=1)return i.loadLevel;let{maxAutoLevel:n,config:s,minAutoLevel:a}=i,o=t?t.duration:e?e.duration:0,c=this.getBwEstimate(),l=this.getStarvationDelay(),u=s.abrBandWidthFactor,d=s.abrBandWidthUpFactor;if(l){let m=this.findBestLevel(c,a,n,l,0,u,d);if(m>=0)return this.rebufferNotice=-1,m}let h=o?Math.min(o,s.maxStarvationDelay):s.maxStarvationDelay;if(!l){let m=this.bitrateTestDelay;m&&(h=(o?Math.min(o,s.maxLoadingDelay):s.maxLoadingDelay)-m,this.info(`bitrate test took ${Math.round(1e3*m)}ms, set first fragment max fetchDuration to ${Math.round(1e3*h)} ms`),u=d=1);}let f=this.findBestLevel(c,a,n,l,h,u,d);if(this.rebufferNotice!==f&&(this.rebufferNotice=f,this.info(`${l?"rebuffering expected":"buffer is empty"}, optimal quality level ${f}`)),f>-1)return f;let p=i.levels[a],g=i.loadLevelObj;return g&&p?.bitrate<g.bitrate?a:i.loadLevel}getStarvationDelay(){let e=this.hls,t=e.media;if(!t)return 1/0;let i=t&&t.playbackRate!==0?Math.abs(t.playbackRate):1,n=e.mainForwardBufferInfo;return (n?n.len:0)/i}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,t,i,n,s,a,o){var c;let l=n+s,u=this.lastLoadedFragLevel,d=u===-1?this.hls.firstLevel:u,{fragCurrent:h,partCurrent:f}=this,{levels:p,allAudioTracks:g,loadLevel:m,config:y}=this.hls;if(p.length===1)return 0;let v=p[d],E=!!((c=this.hls.latestLevelDetails)!=null&&c.live),b=m===-1||u===-1,S,I="SDR",T=v?.frameRate||0,{audioPreference:w,videoPreference:A}=y,_=this.audioTracksByGroup||(this.audioTracksByGroup=xb(g)),k=-1;if(b){if(this.firstSelection!==-1)return this.firstSelection;let F=this.codecTiers||(this.codecTiers=xC(p,_,t,i)),G=vC(F,I,e,w,A),{codecSet:M,videoRanges:H,minFramerate:Z,minBitrate:R,minIndex:$,preferHDR:Q}=G;k=$,S=M,I=Q?H[H.length-1]:H[0],T=Z,e=Math.max(e,R),this.log(`picked start tier ${tt(G)}`);}else S=v?.codecSet,I=v?.videoRange;let L=f?f.duration:h?h.duration:0,C=this.bwEstimator.getEstimateTTFB()/1e3,N=[];for(let F=i;F>=t;F--){var B;let G=p[F],M=F>d;if(!G)continue;if(y.useMediaCapabilities&&!G.supportedResult&&!G.supportedPromise){let se=navigator.mediaCapabilities;typeof se?.decodingInfo=="function"&&lC(G,_,I,T,e,w)?(G.supportedPromise=yb(G,_,se,this.supportedCache),G.supportedPromise.then(q=>{if(!this.hls)return;G.supportedResult=q;let _e=this.hls.levels,ke=_e.indexOf(G);q.error?this.warn(`MediaCapabilities decodingInfo error: "${q.error}" for level ${ke} ${tt(q)}`):q.supported?q.decodingInfoResults.some(De=>De.smooth===false||De.powerEfficient===false)&&this.log(`MediaCapabilities decodingInfo for level ${ke} not smooth or powerEfficient: ${tt(q)}`):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${ke} ${tt(q)}`),ke>-1&&_e.length>1&&(this.log(`Removing unsupported level ${ke}`),this.hls.removeLevel(ke),this.hls.loadLevel===-1&&(this.hls.nextLoadLevel=0)));}).catch(q=>{this.warn(`Error handling MediaCapabilities decodingInfo: ${q}`);})):G.supportedResult=mb;}if((S&&G.codecSet!==S||I&&G.videoRange!==I||M&&T>G.frameRate||!M&&T>0&&T<G.frameRate||(B=G.supportedResult)!=null&&(B=B.decodingInfoResults)!=null&&B.some(se=>se.smooth===false))&&(!b||F!==k)){N.push(F);continue}let H=G.details,Z=(f?H?.partTarget:H?.averagetargetduration)||L,R;M?R=o*e:R=a*e;let $=L&&n>=L*2&&s===0?G.averageBitrate:G.maxBitrate,Q=this.getTimeToLoadFrag(C,R,$*Z,H===void 0);if(R>=$&&(F===u||G.loadError===0&&G.fragmentError===0)&&(Q<=C||!te(Q)||E&&!this.bitrateTestDelay||Q<l)){let se=this.forcedAutoLevel;return F!==m&&(se===-1||se!==m)&&(N.length&&this.trace(`Skipped level(s) ${N.join(",")} of ${i} max with CODECS and VIDEO-RANGE:"${p[N[0]].codecs}" ${p[N[0]].videoRange}; not compatible with "${S}" ${I}`),this.info(`switch candidate:${d}->${F} adjustedbw(${Math.round(R)})-bitrate=${Math.round(R-$)} ttfb:${C.toFixed(1)} avgDuration:${Z.toFixed(1)} maxFetchDuration:${l.toFixed(1)} fetchDuration:${Q.toFixed(1)} firstSelection:${b} codecSet:${G.codecSet} videoRange:${G.videoRange} hls.loadLevel:${m}`)),b&&(this.firstSelection=F),F}}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)}},Eb={search:function(r,e){let t=0,i=r.length-1,n=null,s=null;for(;t<=i;){n=(t+i)/2|0,s=r[n];let a=e(s);if(a>0)t=n+1;else if(a<0)i=n-1;else return s}return null}};function _C(r,e,t){if(e===null||!Array.isArray(r)||!r.length||!te(e))return null;let i=r[0].programDateTime;if(e<(i||0))return null;let n=r[r.length-1].endProgramDateTime;if(e>=(n||0))return null;for(let s=0;s<r.length;++s){let a=r[s];if(wC(e,t,a))return a}return null}function Gn(r,e,t=0,i=0,n=.005){let s=null;if(r){s=e[1+r.sn-e[0].sn]||null;let o=r.endDTS-t;o>0&&o<15e-7&&(t+=15e-7),s&&r.level!==s.level&&s.end<=r.end&&(s=e[2+r.sn-e[0].sn]||null);}else t===0&&e[0].start===0&&(s=e[0]);if(s&&((!r||r.level===s.level)&&sE(t,i,s)===0||TC(s,r,Math.min(n,i))))return s;let a=Eb.search(e,sE.bind(null,t,i));return a&&(a!==r||!s)?a:s}function TC(r,e,t){if(e&&e.start===0&&e.level<r.level&&(e.endPTS||0)>0){let i=e.tagList.reduce((n,s)=>(s[0]==="INF"&&(n+=parseFloat(s[1])),n),t);return r.start<=i}return false}function sE(r=0,e=0,t){if(t.start<=r&&t.start+t.duration>r)return 0;let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-i<=r?1:t.start-i>r&&t.start?-1:0}function wC(r,e,t){let i=Math.min(e,t.duration+(t.deltaPTS?t.deltaPTS:0))*1e3;return (t.endProgramDateTime||0)-i>r}function bb(r,e,t){if(r&&r.startCC<=e&&r.endCC>=e){let i=r.fragments,{fragmentHint:n}=r;n&&(i=i.concat(n));let s;return Eb.search(i,a=>a.cc<e?1:a.cc>e?-1:(s=a,a.end<=t?1:a.start>t?-1:0)),s||null}return null}function bc(r){switch(r.details){case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_TIMEOUT:case D.LEVEL_LOAD_TIMEOUT:case D.MANIFEST_LOAD_TIMEOUT:return true}return false}function Sb(r){return r.details.startsWith("key")}function _b(r){return Sb(r)&&!!r.frag&&!r.frag.decryptdata}function aE(r,e){let t=bc(e);return r.default[`${t?"timeout":"error"}Retry`]}function _p(r,e){let t=r.backoff==="linear"?1:Math.pow(2,e);return Math.min(t*r.retryDelayMs,r.maxRetryDelayMs)}function oE(r){return Ye(Ye({},r),{errorRetry:null,timeoutRetry:null})}function Sc(r,e,t,i){if(!r)return false;let n=i?.code,s=e<r.maxNumRetry&&(AC(n)||!!t);return r.shouldRetry?r.shouldRetry(r,e,t,i,s):s}function AC(r){return of(r)||!!r&&(r<400||r>499)}function of(r){return r===0&&navigator.onLine===false}var Dt={DoNothing:0,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,RetryRequest:5},dr={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,MoveAllAlternatesMatchingKey:4},lf=class extends nr{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 e?.type===le.MAIN?e.level:this.getVariantIndex()}getVariantIndex(){var e;let t=this.hls,i=t.currentLevel;return (e=t.loadLevelObj)!=null&&e.details||i===-1?t.loadLevel:i}variantHasKey(e,t){if(e){var i;if((i=e.details)!=null&&i.hasKey(t))return true;let n=e.audioGroups;if(n)return this.hls.allAudioTracks.filter(a=>n.indexOf(a.groupId)>=0).some(a=>{var o;return (o=a.details)==null?void 0:o.hasKey(t)})}return false}onManifestLoading(){this.playlistError=0;}onLevelUpdated(){this.playlistError=0;}onError(e,t){var i;if(t.fatal)return;let n=this.hls,s=t.context;switch(t.details){case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:t.errorAction=this.getFragRetryOrSwitchAction(t);return;case D.FRAG_PARSING_ERROR:if((i=t.frag)!=null&&i.gap){t.errorAction=Vs();return}case D.FRAG_GAP:case D.FRAG_DECRYPT_ERROR:{t.errorAction=this.getFragRetryOrSwitchAction(t),t.errorAction.action=Dt.SendAlternateToPenaltyBox;return}case D.LEVEL_EMPTY_ERROR:case D.LEVEL_PARSING_ERROR:{var a;let c=t.parent===le.MAIN?t.level:n.loadLevel;t.details===D.LEVEL_EMPTY_ERROR&&((a=t.context)!=null&&(a=a.levelDetails)!=null&&a.live)?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,c):(t.levelRetry=false,t.errorAction=this.getLevelSwitchAction(t,c));}return;case D.LEVEL_LOAD_ERROR:case D.LEVEL_LOAD_TIMEOUT:typeof s?.level=="number"&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,s.level));return;case D.AUDIO_TRACK_LOAD_ERROR:case D.AUDIO_TRACK_LOAD_TIMEOUT:case D.SUBTITLE_LOAD_ERROR:case D.SUBTITLE_TRACK_LOAD_TIMEOUT:if(s){let c=n.loadLevelObj;if(c&&(s.type===Me.AUDIO_TRACK&&c.hasAudioGroup(s.groupId)||s.type===Me.SUBTITLE_TRACK&&c.hasSubtitleGroup(s.groupId))){t.errorAction=this.getPlaylistRetryOrSwitchAction(t,n.loadLevel),t.errorAction.action=Dt.SendAlternateToPenaltyBox,t.errorAction.flags=dr.MoveAllAlternatesMatchingHost;return}}return;case D.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:t.errorAction={action:Dt.SendAlternateToPenaltyBox,flags:dr.MoveAllAlternatesMatchingHDCP};return;case D.KEY_SYSTEM_SESSION_UPDATE_FAILED:case D.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case D.KEY_SYSTEM_NO_SESSION:t.errorAction={action:Dt.SendAlternateToPenaltyBox,flags:dr.MoveAllAlternatesMatchingKey};return;case D.BUFFER_ADD_CODEC_ERROR:case D.REMUX_ALLOC_ERROR:case D.BUFFER_APPEND_ERROR:if(!t.errorAction){var o;t.errorAction=this.getLevelSwitchAction(t,(o=t.level)!=null?o:n.loadLevel);}return;case D.INTERNAL_EXCEPTION:case D.BUFFER_APPENDING_ERROR:case D.BUFFER_FULL_ERROR:case D.LEVEL_SWITCH_ERROR:case D.BUFFER_STALLED_ERROR:case D.BUFFER_SEEK_OVER_HOLE:case D.BUFFER_NUDGE_ON_STALL:t.errorAction=Vs();return}t.type===de.KEY_SYSTEM_ERROR&&(t.levelRetry=false,t.errorAction=Vs());}getPlaylistRetryOrSwitchAction(e,t){let i=this.hls,n=aE(i.config.playlistLoadPolicy,e),s=this.playlistError++;if(Sc(n,s,bc(e),e.response))return {action:Dt.RetryRequest,flags:dr.None,retryConfig:n,retryCount:s};let o=this.getLevelSwitchAction(e,t);return n&&(o.retryConfig=n,o.retryCount=s),o}getFragRetryOrSwitchAction(e){let t=this.hls,i=this.getVariantLevelIndex(e.frag),n=t.levels[i],{fragLoadPolicy:s,keyLoadPolicy:a}=t.config,o=aE(Sb(e)?a:s,e),c=t.levels.reduce((u,d)=>u+d.fragmentError,0);if(n&&(e.details!==D.FRAG_GAP&&n.fragmentError++,!_b(e)&&Sc(o,c,bc(e),e.response)))return {action:Dt.RetryRequest,flags:dr.None,retryConfig:o,retryCount:c};let l=this.getLevelSwitchAction(e,i);return o&&(l.retryConfig=o,l.retryCount=c),l}getLevelSwitchAction(e,t){let i=this.hls;t==null&&(t=i.loadLevel);let n=this.hls.levels[t];if(n){var s,a;let l=e.details;n.loadError++,l===D.BUFFER_APPEND_ERROR&&n.fragmentError++;let u=-1,{levels:d,loadLevel:h,minAutoLevel:f,maxAutoLevel:p}=i;!i.autoLevelEnabled&&!i.config.preserveManualLevelOnError&&(i.loadLevel=-1);let g=(s=e.frag)==null?void 0:s.type,y=(g===le.AUDIO&&l===D.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(l===D.BUFFER_ADD_CODEC_ERROR||l===D.BUFFER_APPEND_ERROR))&&d.some(({audioCodec:I})=>n.audioCodec!==I),E=e.sourceBufferName==="video"&&(l===D.BUFFER_ADD_CODEC_ERROR||l===D.BUFFER_APPEND_ERROR)&&d.some(({codecSet:I,audioCodec:T})=>n.codecSet!==I&&n.audioCodec===T),{type:b,groupId:S}=(a=e.context)!=null?a:{};for(let I=d.length;I--;){let T=(I+h)%d.length;if(T!==h&&T>=f&&T<=p&&d[T].loadError===0){var o,c;let w=d[T];if(l===D.FRAG_GAP&&g===le.MAIN&&e.frag){let A=d[T].details;if(A){let _=Gn(e.frag,A.fragments,e.frag.start);if(_!=null&&_.gap)continue}}else {if(b===Me.AUDIO_TRACK&&w.hasAudioGroup(S)||b===Me.SUBTITLE_TRACK&&w.hasSubtitleGroup(S))continue;if(g===le.AUDIO&&(o=n.audioGroups)!=null&&o.some(A=>w.hasAudioGroup(A))||g===le.SUBTITLE&&(c=n.subtitleGroups)!=null&&c.some(A=>w.hasSubtitleGroup(A))||y&&n.audioCodec===w.audioCodec||E&&n.codecSet===w.codecSet||!y&&n.codecSet!==w.codecSet)continue}u=T;break}}if(u>-1&&i.loadLevel!==u)return e.levelRetry=true,this.playlistError=0,{action:Dt.SendAlternateToPenaltyBox,flags:dr.None,nextAutoLevel:u}}return {action:Dt.SendAlternateToPenaltyBox,flags:dr.MoveAllAlternatesMatchingHost}}onErrorOut(e,t){var i;switch((i=t.errorAction)==null?void 0:i.action){case Dt.DoNothing:break;case Dt.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(t),!t.errorAction.resolved&&t.details!==D.FRAG_GAP?t.fatal=true:/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());break;}if(t.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(e){let t=this.hls,i=e.errorAction;if(!i)return;let{flags:n}=i,s=i.nextAutoLevel;switch(n){case dr.None:this.switchLevel(e,s);break;case dr.MoveAllAlternatesMatchingHDCP:{let c=this.getVariantLevelIndex(e.frag),l=t.levels[c],u=l?.attrs["HDCP-LEVEL"];if(i.hdcpLevel=u,u==="NONE")this.warn("HDCP policy resticted output with HDCP-LEVEL=NONE");else if(u){t.maxHdcpLevel=sf[sf.indexOf(u)-1],i.resolved=true,this.warn(`Restricting playback to HDCP-LEVEL of "${t.maxHdcpLevel}" or lower`);break}}case dr.MoveAllAlternatesMatchingKey:{let c=e.decryptdata;if(c){let l=this.hls.levels,u=l.length;for(let h=u;h--;)if(this.variantHasKey(l[h],c)){var a,o;this.log(`Banned key found in level ${h} (${l[h].bitrate}bps) or audio group "${(a=l[h].audioGroups)==null?void 0:a.join(",")}" (${(o=e.frag)==null?void 0:o.type} fragment) ${Bt(c.keyId||[])}`),l[h].fragmentError++,l[h].loadError++,this.log(`Removing level ${h} with key error (${e.error})`),this.hls.removeLevel(h);}let d=e.frag;if(this.hls.levels.length<u)i.resolved=true;else if(d&&d.type!==le.MAIN){let h=d.decryptdata;h&&!c.matches(h)&&(i.resolved=true);}}break}}i.resolved||this.switchLevel(e,s);}switchLevel(e,t){if(t!==void 0&&e.errorAction&&(this.warn(`switching to level ${t} after ${e.details}`),this.hls.nextAutoLevel=t,e.errorAction.resolved=true,this.hls.nextLoadLevel=this.hls.nextAutoLevel,e.details===D.BUFFER_ADD_CODEC_ERROR&&e.mimeType&&e.sourceBufferName!=="audiovideo")){let i=nf(e.mimeType),n=this.hls.levels;for(let s=n.length;s--;)n[s][`${e.sourceBufferName}Codec`]===i&&(this.log(`Removing level ${s} for ${e.details} ("${i}" not supported)`),this.hls.removeLevel(s));}}};function Vs(r){let e={action:Dt.DoNothing,flags:dr.None};return r&&(e.resolved=true),e}var kt={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},cf=class{constructor(e){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=false,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 n=i.length;n--;){let s=i[n];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,true)}getFragAtPos(e,t,i){let{fragments:n}=this,s=Object.keys(n);for(let a=s.length;a--;){let o=n[s[a]];if(o?.body.type===t&&(!i||o.buffered)){let c=o.body;if(c.start<=e&&e<=c.end)return c}}return null}detectEvictedFragments(e,t,i,n,s){this.timeRanges&&(this.timeRanges[e]=t);let a=n?.fragment.sn||-1;Object.keys(this.fragments).forEach(o=>{let c=this.fragments[o];if(!c||a>=c.body.sn)return;if(!c.buffered&&(!c.loaded||s)){c.body.type===i&&this.removeFragment(c.body);return}let l=c.range[e];if(l){if(l.time.length===0){this.removeFragment(c.body);return}l.time.some(u=>{let d=!this.isTimeBuffered(u.startPTS,u.endPTS,t);return d&&this.removeFragment(c.body),d});}});}detectPartialFragments(e){let t=this.timeRanges;if(!t||e.frag.sn==="initSegment")return;let i=e.frag,n=Bs(i),s=this.fragments[n];if(!s||s.buffered&&i.gap)return;let a=!i.relurl;Object.keys(t).forEach(o=>{let c=i.elementaryStreams[o];if(!c)return;let l=t[o],u=a||c.partial===true;s.range[o]=this.getBufferedTimes(i,e.part,u,l);}),s.loaded=null,Object.keys(s.range).length?(this.bufferedEnd(s,i),Zl(s)||this.removeParts(i.sn-1,i.type)):this.removeFragment(s.body);}bufferedEnd(e,t){e.buffered=true,(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]=lE(i,n=>n.fragment.sn>=e));}fragBuffered(e,t){let i=Bs(e),n=this.fragments[i];!n&&t&&(n=this.fragments[i]={body:e,appendedPTS:null,loaded:null,buffered:false,range:Object.create(null)},e.gap&&(this.hasGaps=true)),n&&(n.loaded=null,this.bufferedEnd(n,e));}getBufferedTimes(e,t,i,n){let s={time:[],partial:i},a=e.start,o=e.end,c=e.minEndPTS||o,l=e.maxStartPTS||a;for(let u=0;u<n.length;u++){let d=n.start(u)-this.bufferPadding,h=n.end(u)+this.bufferPadding;if(l>=d&&c<=h){s.time.push({startPTS:Math.max(a,n.start(u)),endPTS:Math.min(o,n.end(u))});break}else if(a<h&&o>d){let f=Math.max(a,n.start(u)),p=Math.min(o,n.end(u));p>f&&(s.partial=true,s.time.push({startPTS:f,endPTS:p}));}else if(o<=d)break}return s}getPartialFragment(e){let t=null,i,n,s,a=0,{bufferPadding:o,fragments:c}=this;return Object.keys(c).forEach(l=>{let u=c[l];u&&Zl(u)&&(n=u.body.start-o,s=u.body.end+o,e>=n&&e<=s&&(i=Math.min(e-n,s-e),a<=i&&(t=u.body,a=i)));}),t}isEndListAppended(e){let t=this.endListFragments[e];return t!==void 0&&(t.buffered||Zl(t))}getState(e){let t=Bs(e),i=this.fragments[t];return i?i.buffered?Zl(i)?kt.PARTIAL:kt.OK:kt.APPENDING:kt.NOT_LOADED}isTimeBuffered(e,t,i){let n,s;for(let a=0;a<i.length;a++){if(n=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,e>=n&&t<=s)return true;if(t<=n)return false}return false}onManifestLoading(){this.removeAllFragments();}onFragLoaded(e,t){if(t.frag.sn==="initSegment"||t.frag.bitrateTest)return;let i=t.frag,n=t.part?null:t,s=Bs(i);this.fragments[s]={body:i,appendedPTS:null,loaded:n,buffered:false,range:Object.create(null)};}onBufferAppended(e,t){let{frag:i,part:n,timeRanges:s,type:a}=t;if(i.sn==="initSegment")return;let o=i.type;if(n){let l=this.activePartLists[o];l||(this.activePartLists[o]=l=[]),l.push(n);}this.timeRanges=s;let c=s[a];this.detectEvictedFragments(a,c,o,n);}onFragBuffered(e,t){this.detectPartialFragments(t);}hasFragment(e){let t=Bs(e);return !!this.fragments[t]}hasFragments(e){let{fragments:t}=this,i=Object.keys(t);if(!e)return i.length>0;for(let n=i.length;n--;){let s=t[i[n]];if(s?.body.type===e)return true}return false}hasParts(e){var t;return !!((t=this.activePartLists[e])!=null&&t.length)}removeFragmentsInRange(e,t,i,n,s){n&&!this.hasGaps||Object.keys(this.fragments).forEach(a=>{let o=this.fragments[a];if(!o)return;let c=o.body;c.type!==i||n&&!c.gap||c.start<t&&c.end>e&&(o.buffered||s)&&this.removeFragment(c);});}removeFragment(e){let t=Bs(e);e.clearElementaryStreamInfo();let i=this.activePartLists[e.type];if(i){let n=e.sn;this.activePartLists[e.type]=lE(i,s=>s.fragment.sn!==n);}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=false;let t=(e=this.hls)==null||(e=e.latestLevelDetails)==null?void 0:e.partList;t&&t.forEach(i=>i.clearElementaryStreamInfo());}};function Zl(r){var e,t,i;return r.buffered&&!!(r.body.gap||(e=r.range.video)!=null&&e.partial||(t=r.range.audio)!=null&&t.partial||(i=r.range.audiovideo)!=null&&i.partial)}function Bs(r){return `${r.type}_${r.level}_${r.sn}`}function lE(r,e){return r.filter(t=>{let i=e(t);return i||t.clearElementaryStreamInfo(),i})}var ln={cbc:0,ctr:1},uf=class{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 ln.cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e);case ln.ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},t,e);default:throw new Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}};function kC(r){let e=r.byteLength,t=e&&new DataView(r.buffer).getUint8(e-1);return t?r.slice(0,e-t):r}var df=class{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable();}uint8ArrayToUint32Array_(e){let t=new DataView(e),i=new Uint32Array(4);for(let n=0;n<4;n++)i[n]=t.getUint32(n*4);return i}initTable(){let e=this.sBox,t=this.invSBox,i=this.subMix,n=i[0],s=i[1],a=i[2],o=i[3],c=this.invSubMix,l=c[0],u=c[1],d=c[2],h=c[3],f=new Uint32Array(256),p=0,g=0,m=0;for(m=0;m<256;m++)m<128?f[m]=m<<1:f[m]=m<<1^283;for(m=0;m<256;m++){let y=g^g<<1^g<<2^g<<3^g<<4;y=y>>>8^y&255^99,e[p]=y,t[y]=p;let v=f[p],E=f[v],b=f[E],S=f[y]*257^y*16843008;n[p]=S<<24|S>>>8,s[p]=S<<16|S>>>16,a[p]=S<<8|S>>>24,o[p]=S,S=b*16843009^E*65537^v*257^p*16843008,l[y]=S<<24|S>>>8,u[y]=S<<16|S>>>16,d[y]=S<<8|S>>>24,h[y]=S,p?(p=v^f[f[f[b^v]]],g^=f[f[g]]):p=g=1;}}expandKey(e){let t=this.uint8ArrayToUint32Array_(e),i=true,n=0;for(;n<t.length&&i;)i=t[n]===this.key[n],n++;if(i)return;this.key=t;let s=this.keySize=t.length;if(s!==4&&s!==6&&s!==8)throw new Error("Invalid aes key size="+s);let a=this.ksRows=(s+6+1)*4,o,c,l=this.keySchedule=new Uint32Array(a),u=this.invKeySchedule=new Uint32Array(a),d=this.sBox,h=this.rcon,f=this.invSubMix,p=f[0],g=f[1],m=f[2],y=f[3],v,E;for(o=0;o<a;o++){if(o<s){v=l[o]=t[o];continue}E=v,o%s===0?(E=E<<8|E>>>24,E=d[E>>>24]<<24|d[E>>>16&255]<<16|d[E>>>8&255]<<8|d[E&255],E^=h[o/s|0]<<24):s>6&&o%s===4&&(E=d[E>>>24]<<24|d[E>>>16&255]<<16|d[E>>>8&255]<<8|d[E&255]),l[o]=v=(l[o-s]^E)>>>0;}for(c=0;c<a;c++)o=a-c,c&3?E=l[o]:E=l[o-4],c<4||o<=4?u[c]=E:u[c]=p[d[E>>>24]]^g[d[E>>>16&255]]^m[d[E>>>8&255]]^y[d[E&255]],u[c]=u[c]>>>0;}networkToHostOrderSwap(e){return e<<24|(e&65280)<<8|(e&16711680)>>8|e>>>24}decrypt(e,t,i){let n=this.keySize+6,s=this.invKeySchedule,a=this.invSBox,o=this.invSubMix,c=o[0],l=o[1],u=o[2],d=o[3],h=this.uint8ArrayToUint32Array_(i),f=h[0],p=h[1],g=h[2],m=h[3],y=new Int32Array(e),v=new Int32Array(y.length),E,b,S,I,T,w,A,_,k,L,C,N,B,F,G=this.networkToHostOrderSwap;for(;t<y.length;){for(k=G(y[t]),L=G(y[t+1]),C=G(y[t+2]),N=G(y[t+3]),T=k^s[0],w=N^s[1],A=C^s[2],_=L^s[3],B=4,F=1;F<n;F++)E=c[T>>>24]^l[w>>16&255]^u[A>>8&255]^d[_&255]^s[B],b=c[w>>>24]^l[A>>16&255]^u[_>>8&255]^d[T&255]^s[B+1],S=c[A>>>24]^l[_>>16&255]^u[T>>8&255]^d[w&255]^s[B+2],I=c[_>>>24]^l[T>>16&255]^u[w>>8&255]^d[A&255]^s[B+3],T=E,w=b,A=S,_=I,B=B+4;E=a[T>>>24]<<24^a[w>>16&255]<<16^a[A>>8&255]<<8^a[_&255]^s[B],b=a[w>>>24]<<24^a[A>>16&255]<<16^a[_>>8&255]<<8^a[T&255]^s[B+1],S=a[A>>>24]<<24^a[_>>16&255]<<16^a[T>>8&255]<<8^a[w&255]^s[B+2],I=a[_>>>24]<<24^a[T>>16&255]<<16^a[w>>8&255]<<8^a[A&255]^s[B+3],v[t]=G(E^f),v[t+1]=G(I^p),v[t+2]=G(S^g),v[t+3]=G(b^m),f=k,p=L,g=C,m=N,t=t+4;}return v.buffer}},hf=class{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=IC(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},false,["encrypt","decrypt"])}};function IC(r){switch(r){case ln.cbc:return "AES-CBC";case ln.ctr:return "AES-CTR";default:throw new Error(`[FastAESKey] invalid aes mode ${r}`)}}var LC=16,po=class{constructor(e,{removePKCS7Padding:t=true}={}){if(this.logEnabled=true,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{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle);}catch{}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);return this.reset(),this.removePKCS7Padding?kC(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null);}decrypt(e,t,i,n){return this.useSoftware?new Promise((s,a)=>{let o=ArrayBuffer.isView(e)?e:new Uint8Array(e);this.softwareDecrypt(o,t,i,n);let c=this.flush();c?s(c.buffer):a(new Error("[softwareDecrypt] Failed to decrypt data"));}):this.webCryptoDecrypt(new Uint8Array(e),t,i,n)}softwareDecrypt(e,t,i,n){let{currentIV:s,currentResult:a,remainderData:o}=this;if(n!==ln.cbc||t.byteLength!==16)return Ze.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),o&&(e=Tr(o,e),this.remainderData=null);let c=this.getValidChunk(e);if(!c.length)return null;s&&(i=s);let l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new df),l.expandKey(t);let u=a;return this.currentResult=l.decrypt(c.buffer,0,i),this.currentIV=c.slice(-16).buffer,u||null}webCryptoDecrypt(e,t,i,n){if(this.key!==t||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(e,t,i,n));this.key=t,this.fastAesKey=new hf(this.subtle,t,n);}return this.fastAesKey.expandKey().then(s=>this.subtle?(this.logOnce("WebCrypto AES decrypt"),new uf(this.subtle,new Uint8Array(i),n).decrypt(e.buffer,s)):Promise.reject(new Error("web crypto not initialized"))).catch(s=>(Ze.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${s.name}: ${s.message}`),this.onWebCryptoError(e,t,i,n)))}onWebCryptoError(e,t,i,n){let s=this.enableSoftwareAES;if(s){this.useSoftware=true,this.logEnabled=true,this.softwareDecrypt(e,t,i,n);let a=this.flush();if(a)return a.buffer}throw new Error("WebCrypto"+(s?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(e){let t=e,i=e.length-e.length%LC;return i!==e.length&&(t=e.slice(0,i),this.remainderData=e.slice(i)),t}logOnce(e){this.logEnabled&&(Ze.log(`[decrypter]: ${e}`),this.logEnabled=false);}},cE=Math.pow(2,17),ff=class{constructor(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e;}destroy(){this.loader&&(this.loader.destroy(),this.loader=null);}abort(){this.loader&&this.loader.abort();}load(e,t){let i=e.url;if(!i)return Promise.reject(new Nr({type:de.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:false,frag:e,error:new Error(`Fragment does not have a ${i?"part list":"url"}`),networkDetails:null}));this.abort();let n=this.config,s=n.fLoader,a=n.loader;return new Promise((o,c)=>{if(this.loader&&this.loader.destroy(),e.gap)if(e.tagList.some(p=>p[0]==="GAP")){c(dE(e));return}else e.gap=false;let l=this.loader=s?new s(n):new a(n),u=uE(e);e.loader=l;let d=oE(n.fragLoadPolicy.default),h={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:e.sn==="initSegment"?1/0:cE};e.stats=l.stats;let f={onSuccess:(p,g,m,y)=>{this.resetLoader(e,l);let v=p.data;m.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(v.slice(0,16)),v=v.slice(16)),o({frag:e,part:null,payload:v,networkDetails:y});},onError:(p,g,m,y)=>{this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:false,frag:e,response:Ye({url:i,data:void 0},p),error:new Error(`HTTP Error ${p.code} ${p.text}`),networkDetails:m,stats:y}));},onAbort:(p,g,m)=>{this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.INTERNAL_ABORTED,fatal:false,frag:e,error:new Error("Aborted"),networkDetails:m,stats:p}));},onTimeout:(p,g,m)=>{this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.FRAG_LOAD_TIMEOUT,fatal:false,frag:e,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:m,stats:p}));}};t&&(f.onProgress=(p,g,m,y)=>t({frag:e,part:null,payload:m,networkDetails:y})),l.load(u,h,f);})}loadPart(e,t,i){this.abort();let n=this.config,s=n.fLoader,a=n.loader;return new Promise((o,c)=>{if(this.loader&&this.loader.destroy(),e.gap||t.gap){c(dE(e,t));return}let l=this.loader=s?new s(n):new a(n),u=uE(e,t);e.loader=l;let d=oE(n.fragLoadPolicy.default),h={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:cE};t.stats=l.stats,l.load(u,h,{onSuccess:(f,p,g,m)=>{this.resetLoader(e,l),this.updateStatsFromPart(e,t);let y={frag:e,part:t,payload:f.data,networkDetails:m};i(y),o(y);},onError:(f,p,g,m)=>{this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:false,frag:e,part:t,response:Ye({url:u.url,data:void 0},f),error:new Error(`HTTP Error ${f.code} ${f.text}`),networkDetails:g,stats:m}));},onAbort:(f,p,g)=>{e.stats.aborted=t.stats.aborted,this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.INTERNAL_ABORTED,fatal:false,frag:e,part:t,error:new Error("Aborted"),networkDetails:g,stats:f}));},onTimeout:(f,p,g)=>{this.resetLoader(e,l),c(new Nr({type:de.NETWORK_ERROR,details:D.FRAG_LOAD_TIMEOUT,fatal:false,frag:e,part:t,error:new Error(`Timeout after ${h.timeout}ms`),networkDetails:g,stats:f}));}});})}updateStatsFromPart(e,t){let i=e.stats,n=t.stats,s=n.total;if(i.loaded+=n.loaded,s){let c=Math.round(e.duration/t.duration),l=Math.min(Math.round(i.loaded/s),c),d=(c-l)*Math.round(i.loaded/l);i.total=i.loaded+d;}else i.total=Math.max(i.loaded,i.total);let a=i.loading,o=n.loading;a.start?a.first+=o.first-o.start:(a.start=o.start,a.first=o.first),a.end=o.end;}resetLoader(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy();}};function uE(r,e=null){let t=e||r,i={frag:r,part:e,responseType:"arraybuffer",url:t.url,headers:{},rangeStart:0,rangeEnd:0},n=t.byteRangeStartOffset,s=t.byteRangeEndOffset;if(te(n)&&te(s)){var a;let o=n,c=s;if(r.sn==="initSegment"&&RC((a=r.decryptdata)==null?void 0:a.method)){let l=s-n;l%16&&(c=s+(16-l%16)),n!==0&&(i.resetIV=true,o=n-16);}i.rangeStart=o,i.rangeEnd=c;}return i}function dE(r,e){let t=new Error(`GAP ${r.gap?"tag":"attribute"} found`),i={type:de.MEDIA_ERROR,details:D.FRAG_GAP,fatal:false,frag:r,error:t,networkDetails:null};return e&&(i.part=e),(e||r).stats.aborted=true,new Nr(i)}function RC(r){return r==="AES-128"||r==="AES-256"}var Nr=class extends Error{constructor(e){super(e.error.message),this.data=void 0,this.data=e;}},_c=class extends nr{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?false:(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),true)}clearInterval(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,true):false}clearNextTick(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,true):false}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0);}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0);}doTick(){}},mo=class{constructor(e,t,i,n=0,s=-1,a=false){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=Xl(),this.buffering={audio:Xl(),video:Xl(),audiovideo:Xl()},this.level=e,this.sn=t,this.id=i,this.size=n,this.part=s,this.partial=a;}};function Xl(){return {start:0,executeStart:0,executeEnd:0,end:0}}var hE={length:0,start:()=>0,end:()=>0},Re=class r{static isBuffered(e,t){if(e){let i=r.getBuffered(e);for(let n=i.length;n--;)if(t>=i.start(n)&&t<=i.end(n))return true}return false}static bufferedRanges(e){if(e){let t=r.getBuffered(e);return r.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 n=r.bufferedRanges(e);if(n.length)return r.bufferedInfo(n,t,i)}return {len:0,start:t,end:t,bufferedIndex:-1}}static bufferedInfo(e,t,i){t=Math.max(0,t),e.length>1&&e.sort((u,d)=>u.start-d.start||d.end-u.end);let n=-1,s=[];if(i)for(let u=0;u<e.length;u++){t>=e[u].start&&t<=e[u].end&&(n=u);let d=s.length;if(d){let h=s[d-1].end;e[u].start-h<i?e[u].end>h&&(s[d-1].end=e[u].end):s.push(e[u]);}else s.push(e[u]);}else s=e;let a=0,o,c=t,l=t;for(let u=0;u<s.length;u++){let d=s[u].start,h=s[u].end;if(n===-1&&t>=d&&t<=h&&(n=u),t+i>=d&&t<h)c=d,l=h,a=l-t;else if(t+i<d){o=d;break}}return {len:a,start:c||0,end:l||0,nextStart:o,buffered:e,bufferedIndex:n}}static getBuffered(e){try{return e.buffered||hE}catch(t){return Ze.log("failed to get media.buffered",t),hE}}},Tb=/\{\$([a-zA-Z0-9-_]+)\}/g;function fE(r){return Tb.test(r)}function pf(r,e){if(r.variableList!==null||r.hasVariableRefs){let t=r.variableList;return e.replace(Tb,i=>{let n=i.substring(2,i.length-1),s=t?.[n];return s===void 0?(r.playlistParsingError||(r.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${n}"`)),i):s})}return e}function pE(r,e,t){let i=r.variableList;i||(r.variableList=i={});let n,s;if("QUERYPARAM"in e){n=e.QUERYPARAM;try{let a=new self.URL(t).searchParams;if(a.has(n))s=a.get(n);else throw new Error(`"${n}" does not match any query parameter in URI: "${t}"`)}catch(a){r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${a.message}`));}}else n=e.NAME,s=e.VALUE;n in i?r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${n}"`)):i[n]=s||"";}function CC(r,e,t){let i=e.IMPORT;if(t&&i in t){let n=r.variableList;n||(r.variableList=n={}),n[i]=t[i];}else r.playlistParsingError||(r.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${i}"`));}var DC=/^(\d+)x(\d+)$/,mE=/(.+?)=(".*?"|.*?)(?:,|$)/g,dt=class r{constructor(e,t){typeof e=="string"&&(e=r.parseAttrList(e,t)),Je(this,e);}get clientAttrs(){return Object.keys(this).filter(e=>e.substring(0,2)==="X-")}decimalInteger(e){let t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t}hexadecimalInteger(e){if(this[e]){let t=(this[e]||"0x").slice(2);t=(t.length&1?"0":"")+t;let i=new Uint8Array(t.length/2);for(let n=0;n<t.length/2;n++)i[n]=parseInt(t.slice(n*2,n*2+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((n,s)=>(n[s.toLowerCase()]=true,n),t)}bool(e){return this[e]==="YES"}decimalResolution(e){let t=DC.exec(this[e]);if(t!==null)return {width:parseInt(t[1],10),height:parseInt(t[2],10)}}static parseAttrList(e,t){let i,n={};for(mE.lastIndex=0;(i=mE.exec(e))!==null;){let a=i[1].trim(),o=i[2],c=o.indexOf('"')===0&&o.lastIndexOf('"')===o.length-1,l=false;if(c)o=o.slice(1,-1);else switch(a){case "IV":case "SCTE35-CMD":case "SCTE35-IN":case "SCTE35-OUT":l=true;}if(t&&(c||l))o=pf(t,o);else if(!l&&!c)switch(a){case "CLOSED-CAPTIONS":if(o==="NONE")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":Ze.warn(`${e}: attribute ${a} is missing quotes`);}n[a]=o;}return n}},PC="com.apple.hls.interstitial";function MC(r){return r!=="ID"&&r!=="CLASS"&&r!=="CUE"&&r!=="START-DATE"&&r!=="DURATION"&&r!=="END-DATE"&&r!=="END-ON-NEXT"}function OC(r){return r==="SCTE35-OUT"||r==="SCTE35-IN"||r==="SCTE35-CMD"}var Tc=class{constructor(e,t,i=0){var n;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=t?.tagAnchor||null,this.tagOrder=(n=t?.tagOrder)!=null?n:i,t){let s=t.attr;for(let a in s)if(Object.prototype.hasOwnProperty.call(e,a)&&e[a]!==s[a]){Ze.warn(`DATERANGE tag attribute: "${a}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=a;break}e=Je(new dt({}),s,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){let s=t?.endDate||new Date(this.attr["END-DATE"]);te(s.getTime())&&(this._endDate=s);}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){let e=this._cue;return e===void 0?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:false,post:false,once:false}):e}get startTime(){let{tagAnchor:e}=this;return e===null||e.programDateTime===null?(Ze.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 t!==null?this._dateAtEnd=new Date(this._startDate.getTime()+t*1e3):null}get duration(){if("DURATION"in this.attr){let e=this.attr.decimalFloatingPoint("DURATION");if(te(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 this.class===PC}get isValid(){return !!this.id&&!this._badValueForSameId&&te(this.startDate.getTime())&&(this.duration===null||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)}},FC=10,mf=class{constructor(e){this.PTSKnown=false,this.alignedSliding=false,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=true,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=true,this.advanced=true,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=false,this.canSkipUntil=0,this.canSkipDateRanges=false,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=false,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e;}reloaded(e){if(!e){this.advanced=true,this.updated=true;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||t===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(e.misses*.6):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?te(this.fragments[this.fragments.length-1].programDateTime):false}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||FC}get drift(){let e=this.driftEndTime-this.driftStartTime;return e>0?(this.driftEnd-this.driftStart)*1e3/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return (e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){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 (e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].index:-1}get maxPartIndex(){let e=this.partList;if(e){let t=this.lastPartIndex;if(t!==-1){for(let i=e.length;i--;)if(e[i].index>t)return e[i].index;return t}}return 0}get lastPartSn(){var e;return (e=this.partList)!=null&&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 false}};function wc(r,e){return r.length===e.length?!r.some((t,i)=>t!==e[i]):false}function gE(r,e){return !r&&!e?true:!r||!e?false:wc(r,e)}function js(r){return r==="AES-128"||r==="AES-256"||r==="AES-256-CTR"}function Tp(r){switch(r){case "AES-128":case "AES-256":return ln.cbc;case "AES-256-CTR":return ln.ctr;default:throw new Error(`invalid full segment method ${r}`)}}function wp(r){return Uint8Array.from(atob(r),e=>e.charCodeAt(0))}function gf(r){return Uint8Array.from(unescape(encodeURIComponent(r)),e=>e.charCodeAt(0))}function NC(r){let e=gf(r).subarray(0,16),t=new Uint8Array(16);return t.set(e,16-e.length),t}function wb(r){let e=function(i,n,s){let a=i[n];i[n]=i[s],i[s]=a;};e(r,0,3),e(r,1,2),e(r,4,5),e(r,6,7);}function Ab(r){let e=r.split(":"),t=null;if(e[0]==="data"&&e.length===2){let i=e[1].split(";"),n=i[i.length-1].split(",");if(n.length===2){let s=n[0]==="base64",a=n[1];s?(i.splice(-1,1),t=wp(a)):t=NC(a);}}return t}var Ac=typeof self<"u"?self:void 0,ht={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},Ut={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function uc(r){switch(r){case Ut.FAIRPLAY:return ht.FAIRPLAY;case Ut.PLAYREADY:return ht.PLAYREADY;case Ut.WIDEVINE:return ht.WIDEVINE;case Ut.CLEARKEY:return ht.CLEARKEY}}function Mh(r){switch(r){case ht.FAIRPLAY:return Ut.FAIRPLAY;case ht.PLAYREADY:return Ut.PLAYREADY;case ht.WIDEVINE:return Ut.WIDEVINE;case ht.CLEARKEY:return Ut.CLEARKEY}}function so(r){let{drmSystems:e,widevineLicenseUrl:t}=r,i=e?[ht.FAIRPLAY,ht.WIDEVINE,ht.PLAYREADY,ht.CLEARKEY].filter(n=>!!e[n]):[];return !i[ht.WIDEVINE]&&t&&i.push(ht.WIDEVINE),i}var kb=(function(r){return Ac!=null&&(r=Ac.navigator)!=null&&r.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null})();function BC(r,e,t,i){let n;switch(r){case ht.FAIRPLAY:n=["cenc","sinf"];break;case ht.WIDEVINE:case ht.PLAYREADY:n=["cenc"];break;case ht.CLEARKEY:n=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${r}`)}return UC(n,e,t,i)}function UC(r,e,t,i){return [{initDataTypes:r,persistentState:i.persistentState||"optional",distinctiveIdentifier:i.distinctiveIdentifier||"optional",sessionTypes:i.sessionTypes||[i.sessionType||"temporary"],audioCapabilities:e.map(s=>({contentType:`audio/mp4; codecs=${s}`,robustness:i.audioRobustness||"",encryptionScheme:i.audioEncryptionScheme||null})),videoCapabilities:t.map(s=>({contentType:`video/mp4; codecs=${s}`,robustness:i.videoRobustness||"",encryptionScheme:i.videoEncryptionScheme||null}))}]}function $C(r){var e;return !!r&&(r.sessionType==="persistent-license"||!!((e=r.sessionTypes)!=null&&e.some(t=>t==="persistent-license")))}function Ib(r){let e=new Uint16Array(r.buffer,r.byteOffset,r.byteLength/2),t=String.fromCharCode.apply(null,Array.from(e)),i=t.substring(t.indexOf("<"),t.length),a=new DOMParser().parseFromString(i,"text/xml").getElementsByTagName("KID")[0];if(a){let o=a.childNodes[0]?a.childNodes[0].nodeValue:a.getAttribute("VALUE");if(o){let c=wp(o).subarray(0,16);return wb(c),c}}return null}var Us={},Zs=class r{static clearKeyUriToKeyIdMap(){Us={};}static setKeyIdForUri(e,t){Us[e]=t;}static addKeyIdForUri(e){let t=Object.keys(Us).length%Number.MAX_SAFE_INTEGER,i=new Uint8Array(16);return new DataView(i.buffer,12,4).setUint32(0,t),Us[e]=i,i}constructor(e,t,i,n=[1],s=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.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=n,this.iv=s,this.encrypted=e?e!=="NONE":false,this.isCommonEncryption=this.encrypted&&!js(e),a!=null&&a.startsWith("0x")&&(this.keyId=new Uint8Array(sb(a)));}matches(e){return e.uri===this.uri&&e.method===this.method&&e.encrypted===this.encrypted&&e.keyFormat===this.keyFormat&&wc(e.keyFormatVersions,this.keyFormatVersions)&&gE(e.iv,this.iv)&&gE(e.keyId,this.keyId)}isSupported(){if(this.method){if(js(this.method)||this.method==="NONE")return true;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case Ut.FAIRPLAY:case Ut.WIDEVINE:case Ut.PLAYREADY:case Ut.CLEARKEY:return ["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return false}getDecryptData(e,t){if(!this.encrypted||!this.uri)return null;if(js(this.method)){let s=this.iv;return s||(typeof e!="number"&&(Ze.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0),s=GC(e)),new r(this.method,this.uri,"identity",this.keyFormatVersions,s)}if(this.keyId){let s=Us[this.uri];if(s&&!wc(this.keyId,s)&&r.setKeyIdForUri(this.uri,this.keyId),this.pssh)return this}let i=Ab(this.uri);if(i)switch(this.keyFormat){case Ut.WIDEVINE:if(this.pssh=i,!this.keyId){let s=QR(i.buffer);if(s.length){var n;let a=s[0];this.keyId=(n=a.kids)!=null&&n.length?a.kids[0]:null;}}this.keyId||(this.keyId=yE(t));break;case Ut.PLAYREADY:{let s=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=JR(s,null,i),this.keyId=Ib(i);break}default:{let s=i.subarray(0,16);if(s.length!==16){let a=new Uint8Array(16);a.set(s,16-s.length),s=a;}this.keyId=s;break}}if(!this.keyId||this.keyId.byteLength!==16){let s;s=zC(t),s||(s=yE(t),s||(s=Us[this.uri])),s&&(this.keyId=s,r.setKeyIdForUri(this.uri,s));}return this}};function zC(r){let e=r?.[Ut.WIDEVINE];return e?e.keyId:null}function yE(r){let e=r?.[Ut.PLAYREADY];if(e){let t=Ab(e.uri);if(t)return Ib(t)}return null}function GC(r){let e=new Uint8Array(16);for(let t=12;t<16;t++)e[t]=r>>8*(15-t)&255;return e}var vE=/#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,xE=/#EXT-X-MEDIA:(.*)/g,HC=/^#EXT(?:INF|-X-TARGETDURATION):/m,Oh=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),KC=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("|")),Bn=class r{static findGroup(e,t){for(let i=0;i<e.length;i++){let n=e[i];if(n.id===t)return n}}static resolve(e,t){return xp.buildAbsoluteURL(t,e,{alwaysNormalize:true})}static isMediaPlaylist(e){return HC.test(e)}static parseMasterPlaylist(e,t){let i=fE(e),n={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:i},s=[];if(vE.lastIndex=0,!e.startsWith("#EXTM3U"))return n.playlistParsingError=new Error("no EXTM3U delimiter"),n;let a;for(;(a=vE.exec(e))!=null;)if(a[1]){var o;let l=new dt(a[1],n),u=pf(n,a[2]),d={attrs:l,bitrate:l.decimalInteger("BANDWIDTH")||l.decimalInteger("AVERAGE-BANDWIDTH"),name:l.NAME,url:r.resolve(u,t)},h=l.decimalResolution("RESOLUTION");h&&(d.width=h.width,d.height=h.height),SE(l.CODECS,d);let f=l["SUPPLEMENTAL-CODECS"];f&&(d.supplemental={},SE(f,d.supplemental)),(o=d.unknownCodecs)!=null&&o.length||s.push(d),n.levels.push(d);}else if(a[3]){let l=a[3],u=a[4];switch(l){case "SESSION-DATA":{let d=new dt(u,n),h=d["DATA-ID"];h&&(n.sessionData===null&&(n.sessionData={}),n.sessionData[h]=d);break}case "SESSION-KEY":{let d=EE(u,t,n);d.encrypted&&d.isSupported()?(n.sessionKeys===null&&(n.sessionKeys=[]),n.sessionKeys.push(d)):Ze.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${u}"`);break}case "DEFINE":{{let d=new dt(u,n);pE(n,d,t);}break}case "CONTENT-STEERING":{let d=new dt(u,n);n.contentSteering={uri:r.resolve(d["SERVER-URI"],t),pathwayId:d["PATHWAY-ID"]||"."};break}case "START":{n.startTimeOffset=bE(u);break}}}let c=s.length>0&&s.length<n.levels.length;return n.levels=c?s:n.levels,n.levels.length===0&&(n.playlistParsingError=new Error("no levels found in manifest")),n}static parseMasterPlaylistMedia(e,t,i){let n,s={},a=i.levels,o={AUDIO:a.map(l=>({id:l.attrs.AUDIO,audioCodec:l.audioCodec})),SUBTITLES:a.map(l=>({id:l.attrs.SUBTITLES,textCodec:l.textCodec})),"CLOSED-CAPTIONS":[]},c=0;for(xE.lastIndex=0;(n=xE.exec(e))!==null;){let l=new dt(n[1],i),u=l.TYPE;if(u){let d=o[u],h=s[u]||[];s[u]=h;let f=l.LANGUAGE,p=l["ASSOC-LANGUAGE"],g=l.CHANNELS,m=l.CHARACTERISTICS,y=l["INSTREAM-ID"],v={attrs:l,bitrate:0,id:c++,groupId:l["GROUP-ID"]||"",name:l.NAME||f||"",type:u,default:l.bool("DEFAULT"),autoselect:l.bool("AUTOSELECT"),forced:l.bool("FORCED"),lang:f,url:l.URI?r.resolve(l.URI,t):""};if(p&&(v.assocLang=p),g&&(v.channels=g),m&&(v.characteristics=m),y&&(v.instreamId=y),d!=null&&d.length){let E=r.findGroup(d,v.groupId)||d[0];_E(v,E,"audioCodec"),_E(v,E,"textCodec");}h.push(v);}}return s}static parseLevelPlaylist(e,t,i,n,s,a){var o;let c={url:t},l=new mf(t),u=l.fragments,d=[],h=null,f=0,p=0,g=0,m=0,y=0,v=null,E=new ao(n,c),b,S,I,T=-1,w=false,A=null,_;if(Oh.lastIndex=0,l.m3u8=e,l.hasVariableRefs=fE(e),((o=Oh.exec(e))==null?void 0:o[0])!=="#EXTM3U")return l.playlistParsingError=new Error("Missing format identifier #EXTM3U"),l;for(;(b=Oh.exec(e))!==null;){w&&(w=false,E=new ao(n,c),E.playlistOffset=g,E.setStart(g),E.sn=f,E.cc=m,y&&(E.bitrate=y),E.level=i,h&&(E.initSegment=h,h.rawProgramDateTime&&(E.rawProgramDateTime=h.rawProgramDateTime,h.rawProgramDateTime=null),A&&(E.setByteRange(A),A=null)));let N=b[1];if(N){E.duration=parseFloat(N);let B=(" "+b[2]).slice(1);E.title=B||null,E.tagList.push(B?["INF",N,B]:["INF",N]);}else if(b[3]){if(te(E.duration)){E.playlistOffset=g,E.setStart(g),I&&wE(E,I,l),E.sn=f,E.level=i,E.cc=m,u.push(E);let B=(" "+b[3]).slice(1);E.relurl=pf(l,B),yf(E,v,d),v=E,g+=E.duration,f++,p=0,w=true;}}else {if(b=b[0].match(KC),!b){Ze.warn("No matches on slow regex match for level playlist!");continue}for(S=1;S<b.length&&b[S]===void 0;S++);let B=(" "+b[S]).slice(1),F=(" "+b[S+1]).slice(1),G=b[S+2]?(" "+b[S+2]).slice(1):null;switch(B){case "BYTERANGE":v?E.setByteRange(F,v):E.setByteRange(F);break;case "PROGRAM-DATE-TIME":E.rawProgramDateTime=F,E.tagList.push(["PROGRAM-DATE-TIME",F]),T===-1&&(T=u.length);break;case "PLAYLIST-TYPE":l.type&&Li(l,B,b),l.type=F.toUpperCase();break;case "MEDIA-SEQUENCE":l.startSN!==0?Li(l,B,b):u.length>0&&AE(l,B,b),f=l.startSN=parseInt(F);break;case "SKIP":{l.skippedSegments&&Li(l,B,b);let M=new dt(F,l),H=M.decimalInteger("SKIPPED-SEGMENTS");if(te(H)){l.skippedSegments+=H;for(let R=H;R--;)u.push(null);f+=H;}let Z=M.enumeratedString("RECENTLY-REMOVED-DATERANGES");Z&&(l.recentlyRemovedDateranges=(l.recentlyRemovedDateranges||[]).concat(Z.split(" ")));break}case "TARGETDURATION":l.targetduration!==0&&Li(l,B,b),l.targetduration=Math.max(parseInt(F),1);break;case "VERSION":l.version!==null&&Li(l,B,b),l.version=parseInt(F);break;case "INDEPENDENT-SEGMENTS":break;case "ENDLIST":l.live||Li(l,B,b),l.live=false;break;case "#":(F||G)&&E.tagList.push(G?[F,G]:[F]);break;case "DISCONTINUITY":m++,E.tagList.push(["DIS"]);break;case "GAP":E.gap=true,E.tagList.push([B]);break;case "BITRATE":E.tagList.push([B,F]),y=parseInt(F)*1e3,te(y)?E.bitrate=y:y=0;break;case "DATERANGE":{let M=new dt(F,l),H=new Tc(M,l.dateRanges[M.ID],l.dateRangeTagCount);l.dateRangeTagCount++,H.isValid||l.skippedSegments?l.dateRanges[H.id]=H:Ze.warn(`Ignoring invalid DATERANGE tag: "${F}"`),E.tagList.push(["EXT-X-DATERANGE",F]);break}case "DEFINE":{{let M=new dt(F,l);"IMPORT"in M?CC(l,M,a):pE(l,M,t);}break}case "DISCONTINUITY-SEQUENCE":l.startCC!==0?Li(l,B,b):u.length>0&&AE(l,B,b),l.startCC=m=parseInt(F);break;case "KEY":{let M=EE(F,t,l);if(M.isSupported()){if(M.method==="NONE"){I=void 0;break}I||(I={});let H=I[M.keyFormat];H!=null&&H.matches(M)||(H&&(I=Je({},I)),I[M.keyFormat]=M);}else Ze.warn(`[Keys] Ignoring unsupported EXT-X-KEY tag: "${F}"`);break}case "START":l.startTimeOffset=bE(F);break;case "MAP":{let M=new dt(F,l);if(E.duration){let H=new ao(n,c);TE(H,M,i,I),h=H,E.initSegment=h,h.rawProgramDateTime&&!E.rawProgramDateTime&&(E.rawProgramDateTime=h.rawProgramDateTime);}else {let H=E.byteRangeEndOffset;if(H){let Z=E.byteRangeStartOffset;A=`${H-Z}@${Z}`;}else A=null;TE(E,M,i,I),h=E,w=true;}h.cc=m;break}case "SERVER-CONTROL":{_&&Li(l,B,b),_=new dt(F),l.canBlockReload=_.bool("CAN-BLOCK-RELOAD"),l.canSkipUntil=_.optionalFloat("CAN-SKIP-UNTIL",0),l.canSkipDateRanges=l.canSkipUntil>0&&_.bool("CAN-SKIP-DATERANGES"),l.partHoldBack=_.optionalFloat("PART-HOLD-BACK",0),l.holdBack=_.optionalFloat("HOLD-BACK",0);break}case "PART-INF":{l.partTarget&&Li(l,B,b);let M=new dt(F);l.partTarget=M.decimalFloatingPoint("PART-TARGET");break}case "PART":{let M=l.partList;M||(M=l.partList=[]);let H=p>0?M[M.length-1]:void 0,Z=p++,R=new dt(F,l),$=new rf(R,E,c,Z,H);M.push($),E.duration+=$.duration;break}case "PRELOAD-HINT":{let M=new dt(F,l);l.preloadHint=M;break}case "RENDITION-REPORT":{let M=new dt(F,l);l.renditionReports=l.renditionReports||[],l.renditionReports.push(M);break}default:Ze.warn(`line parsed but not handled: ${b}`);break}}}v&&!v.relurl?(u.pop(),g-=v.duration,l.partList&&(l.fragmentHint=v)):l.partList&&(yf(E,v,d),E.cc=m,l.fragmentHint=E,I&&wE(E,I,l)),l.targetduration||(l.playlistParsingError=new Error("Missing Target Duration"));let k=u.length,L=u[0],C=u[k-1];if(g+=l.skippedSegments*l.targetduration,g>0&&k&&C){l.averagetargetduration=g/k;let N=C.sn;l.endSN=N!=="initSegment"?N:0,l.live||(C.endList=true),T>0&&(jC(u,T),L&&d.unshift(L));}return l.fragmentHint&&(g+=l.fragmentHint.duration),l.totalduration=g,d.length&&l.dateRangeTagCount&&L&&Lb(d,l),l.endCC=m,l}};function Lb(r,e){let t=r.length;if(!t)if(e.hasProgramDateTime){let o=e.fragments[e.fragments.length-1];r.push(o),t++;}else return;let i=r[t-1],n=e.live?1/0:e.totalduration,s=Object.keys(e.dateRanges);for(let o=s.length;o--;){let c=e.dateRanges[s[o]],l=c.startDate.getTime();c.tagAnchor=i.ref;for(let u=t;u--;){var a;if(((a=r[u])==null?void 0:a.sn)<e.startSN)break;let d=VC(e,l,r,u,n);if(d!==-1){c.tagAnchor=e.fragments[d].ref;break}}}}function VC(r,e,t,i,n){let s=t[i];if(s){let o=s.programDateTime;if(e>=o||i===0){var a;let c=(((a=t[i+1])==null?void 0:a.start)||n)-s.start;if(e<=o+c*1e3){let l=t[i].sn-r.startSN;if(l<0)return -1;let u=r.fragments;if(u.length>t.length){let h=(t[i+1]||u[u.length-1]).sn-r.startSN;for(let f=h;f>l;f--){let p=u[f].programDateTime;if(e>=p&&e<p+u[f].duration*1e3)return f}}return l}}}return -1}function EE(r,e,t){var i,n;let s=new dt(r,t),a=(i=s.METHOD)!=null?i:"",o=s.URI,c=s.hexadecimalInteger("IV"),l=s.KEYFORMATVERSIONS,u=(n=s.KEYFORMAT)!=null?n:"identity";o&&s.IV&&!c&&Ze.error(`Invalid IV: ${s.IV}`);let d=o?Bn.resolve(o,e):"",h=(l||"1").split("/").map(Number).filter(Number.isFinite);return new Zs(a,d,u,h,c,s.KEYID)}function bE(r){let t=new dt(r).decimalFloatingPoint("TIME-OFFSET");return te(t)?t:null}function SE(r,e){let t=(r||"").split(/[ ,]+/).filter(i=>i);["video","audio","text"].forEach(i=>{let n=t.filter(s=>bp(s,i));n.length&&(e[`${i}Codec`]=n.map(s=>s.split("/")[0]).join(","),t=t.filter(s=>n.indexOf(s)===-1));}),e.unknownCodecs=t;}function _E(r,e,t){let i=e[t];i&&(r[t]=i);}function jC(r,e){let t=r[e];for(let i=e;i--;){let n=r[i];if(!n)return;n.programDateTime=t.programDateTime-n.duration*1e3,t=n;}}function yf(r,e,t){r.rawProgramDateTime?t.push(r):e!=null&&e.programDateTime&&(r.programDateTime=e.endProgramDateTime);}function TE(r,e,t,i){r.relurl=e.URI,e.BYTERANGE&&r.setByteRange(e.BYTERANGE),r.level=t,r.sn="initSegment",i&&(r.levelkeys=i),r.initSegment=null;}function wE(r,e,t){r.levelkeys=e;let{encryptedFragments:i}=t;(!i.length||i[i.length-1].levelkeys!==e)&&Object.keys(e).some(n=>e[n].isCommonEncryption)&&i.push(r);}function Li(r,e,t){r.playlistParsingError=new Error(`#EXT-X-${e} must not appear more than once (${t[0]})`);}function AE(r,e,t){r.playlistParsingError=new Error(`#EXT-X-${e} must appear before the first Media Segment (${t[0]})`);}function Fh(r,e){let t=e.startPTS;if(te(t)){let i=0,n;e.sn>r.sn?(i=t-r.start,n=r):(i=r.start-t,n=e),n.duration!==i&&n.setDuration(i);}else e.sn>r.sn?r.cc===e.cc&&r.minEndPTS?e.setStart(r.start+(r.minEndPTS-r.start)):e.setStart(r.start+r.duration):e.setStart(Math.max(r.start-e.duration,0));}function Rb(r,e,t,i,n,s,a){i-t<=0&&(a.warn("Fragment should have a positive duration",e),i=t+e.duration,s=n+e.duration);let c=t,l=i,u=e.startPTS,d=e.endPTS;if(te(u)){let y=Math.abs(u-t);r&&y>r.totalduration?a.warn(`media timestamps and playlist times differ by ${y}s for level ${e.level} ${r.url}`):te(e.deltaPTS)?e.deltaPTS=Math.max(y,e.deltaPTS):e.deltaPTS=y,c=Math.max(t,u),t=Math.min(t,u),n=e.startDTS!==void 0?Math.min(n,e.startDTS):n,l=Math.min(i,d),i=Math.max(i,d),s=e.endDTS!==void 0?Math.max(s,e.endDTS):s;}let h=t-e.start;e.start!==0&&e.setStart(t),e.setDuration(i-e.start),e.startPTS=t,e.maxStartPTS=c,e.startDTS=n,e.endPTS=i,e.minEndPTS=l,e.endDTS=s;let f=e.sn;if(!r||f<r.startSN||f>r.endSN)return 0;let p,g=f-r.startSN,m=r.fragments;for(m[g]=e,p=g;p>0;p--)Fh(m[p],m[p-1]);for(p=g;p<m.length-1;p++)Fh(m[p],m[p+1]);return r.fragmentHint&&Fh(m[m.length-1],r.fragmentHint),r.PTSKnown=r.alignedSliding=true,h}function WC(r,e,t){if(r===e)return;let i=null,n=r.fragments;for(let u=n.length-1;u>=0;u--){let d=n[u].initSegment;if(d){i=d;break}}r.fragmentHint&&delete r.fragmentHint.endPTS;let s;ZC(r,e,(u,d,h,f)=>{if((!e.startCC||e.skippedSegments)&&d.cc!==u.cc){let p=u.cc-d.cc;for(let g=h;g<f.length;g++)f[g].cc+=p;e.endCC=f[f.length-1].cc;}te(u.startPTS)&&te(u.endPTS)&&(d.setStart(d.startPTS=u.startPTS),d.startDTS=u.startDTS,d.maxStartPTS=u.maxStartPTS,d.endPTS=u.endPTS,d.endDTS=u.endDTS,d.minEndPTS=u.minEndPTS,d.setDuration(u.endPTS-u.startPTS),d.duration&&(s=d),e.PTSKnown=e.alignedSliding=true),u.hasStreams&&(d.elementaryStreams=u.elementaryStreams),d.loader=u.loader,u.hasStats&&(d.stats=u.stats),u.initSegment&&(d.initSegment=u.initSegment,i=u.initSegment);});let a=e.fragments,o=e.fragmentHint?a.concat(e.fragmentHint):a;if(i&&o.forEach(u=>{var d;u&&(!u.initSegment||u.initSegment.relurl===((d=i)==null?void 0:d.relurl))&&(u.initSegment=i);}),e.skippedSegments){if(e.deltaUpdateFailed=a.some(u=>!u),e.deltaUpdateFailed){t.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let u=e.skippedSegments;u--;)a.shift();e.startSN=a[0].sn;}else {e.canSkipDateRanges&&(e.dateRanges=qC(r.dateRanges,e,t));let u=r.fragments.filter(d=>d.rawProgramDateTime);if(r.hasProgramDateTime&&!e.hasProgramDateTime)for(let d=1;d<o.length;d++)o[d].programDateTime===null&&yf(o[d],o[d-1],u);Lb(u,e);}e.endCC=a[a.length-1].cc;}if(!e.startCC){var c;let u=Pb(r,e.startSN-1);e.startCC=(c=u?.cc)!=null?c:a[0].cc;}YC(r.partList,e.partList,(u,d)=>{d.elementaryStreams=u.elementaryStreams,d.stats=u.stats;}),s?Rb(e,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS,t):Cb(r,e),a.length&&(e.totalduration=e.edge-a[0].start),e.driftStartTime=r.driftStartTime,e.driftStart=r.driftStart;let l=e.advancedDateTime;if(e.advanced&&l){let u=e.edge;e.driftStart||(e.driftStartTime=l,e.driftStart=u),e.driftEndTime=l,e.driftEnd=u;}else e.driftEndTime=r.driftEndTime,e.driftEnd=r.driftEnd,e.advancedDateTime=r.advancedDateTime;e.requestScheduled===-1&&(e.requestScheduled=r.requestScheduled);}function qC(r,e,t){let{dateRanges:i,recentlyRemovedDateranges:n}=e,s=Je({},r);n&&n.forEach(c=>{delete s[c];});let o=Object.keys(s).length;return o?(Object.keys(i).forEach(c=>{let l=s[c],u=new Tc(i[c].attr,l);u.isValid?(s[c]=u,l||(u.tagOrder+=o)):t.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${tt(i[c].attr)}"`);}),s):i}function YC(r,e,t){if(r&&e){let i=0;for(let n=0,s=r.length;n<=s;n++){let a=r[n],o=e[n+i];a&&o&&a.index===o.index&&a.fragment.sn===o.fragment.sn?t(a,o):i--;}}}function ZC(r,e,t){let i=e.skippedSegments,n=Math.max(r.startSN,e.startSN)-e.startSN,s=(r.fragmentHint?1:0)+(i?e.endSN:Math.min(r.endSN,e.endSN))-e.startSN,a=e.startSN-r.startSN,o=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,c=r.fragmentHint?r.fragments.concat(r.fragmentHint):r.fragments;for(let l=n;l<=s;l++){let u=c[a+l],d=o[l];if(i&&!d&&u&&(d=e.fragments[l]=u),u&&d){t(u,d,l,o);let h=u.relurl,f=d.relurl;if(h&&XC(h,f)){e.playlistParsingError=kE(`media sequence mismatch ${d.sn}:`,r,e,u,d);return}else if(u.cc!==d.cc){e.playlistParsingError=kE(`discontinuity sequence mismatch (${u.cc}!=${d.cc})`,r,e,u,d);return}}}}function kE(r,e,t,i,n){return new Error(`${r} ${n.url}
134
+ Playlist starting @${e.startSN}
135
+ ${e.m3u8}
136
+
137
+ Playlist starting @${t.startSN}
138
+ ${t.m3u8}`)}function Cb(r,e,t=true){let i=e.startSN+e.skippedSegments-r.startSN,n=r.fragments,s=i>=0,a=0;if(s&&i<n.length)a=n[i].start;else if(s&&e.startSN===r.endSN+1)a=r.fragmentEnd;else if(s&&t)a=r.fragmentStart+i*e.levelTargetDuration;else if(!e.skippedSegments&&e.fragmentStart===0)a=r.fragmentStart;else return;vf(e,a);}function vf(r,e){if(e){let t=r.fragments;for(let i=r.skippedSegments;i<t.length;i++)t[i].addStart(e);r.fragmentHint&&r.fragmentHint.addStart(e);}}function Db(r,e=1/0){let t=1e3*r.targetduration;if(r.updated){let i=r.fragments;if(i.length&&t*4>e){let s=i[i.length-1].duration*1e3;s<t&&(t=s);}}else t/=2;return Math.round(t)}function Pb(r,e,t){if(!r)return null;let i=r.fragments[e-r.startSN];return i||(i=r.fragmentHint,i&&i.sn===e)?i:e<r.startSN&&t&&t.sn===e?t:null}function IE(r,e,t){return r?Mb(r.partList,e,t):null}function Mb(r,e,t){if(r)for(let i=r.length;i--;){let n=r[i];if(n.index===t&&n.fragment.sn===e)return n}return null}function Ob(r){r.forEach((e,t)=>{var i;(i=e.details)==null||i.fragments.forEach(n=>{n.level=t,n.initSegment&&(n.initSegment.level=t);});});}function XC(r,e){return r!==e&&e?LE(r)!==LE(e):false}function LE(r){return r.replace(/\?[^?]*$/,"")}function oo(r,e){for(let i=0,n=r.length;i<n;i++){var t;if(((t=r[i])==null?void 0:t.cc)===e)return r[i]}return null}function JC(r,e){return !!(r&&e.startCC<r.endCC&&e.endCC>r.startCC)}function RE(r,e){let t=r.start+e;r.startPTS=t,r.setStart(t),r.endPTS=t+r.duration;}function Fb(r,e){let t=e.fragments;for(let i=0,n=t.length;i<n;i++)RE(t[i],r);e.fragmentHint&&RE(e.fragmentHint,r),e.alignedSliding=true;}function QC(r,e){r&&(Nb(e,r),e.alignedSliding||kc(e,r),!e.alignedSliding&&!e.skippedSegments&&Cb(r,e,false));}function Nb(r,e){if(!JC(e,r))return;let t=Math.min(e.endCC,r.endCC),i=oo(e.fragments,t),n=oo(r.fragments,t);if(!i||!n)return;Ze.log(`Aligning playlist at start of dicontinuity sequence ${t}`);let s=i.start-n.start;Fb(s,r);}function kc(r,e){if(!r.hasProgramDateTime||!e.hasProgramDateTime)return;let t=r.fragments,i=e.fragments;if(!t.length||!i.length)return;let n,s,a=Math.min(e.endCC,r.endCC);e.startCC<a&&r.startCC<a&&(n=oo(i,a),s=oo(t,a)),(!n||!s)&&(n=i[Math.floor(i.length/2)],s=oo(t,n.cc)||t[Math.floor(t.length/2)]);let o=n.programDateTime,c=s.programDateTime;if(!o||!c)return;let l=(c-o)/1e3-(s.start-n.start);Fb(l,r);}function Qt(r,e,t){ir(r,e,t),r.addEventListener(e,t);}function ir(r,e,t){r.removeEventListener(e,t);}var eD={toString:function(r){let e="",t=r.length;for(let i=0;i<t;i++)e+=`[${r.start(i).toFixed(3)}-${r.end(i).toFixed(3)}]`;return e}},U={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},go=class extends _c{constructor(e,t,i,n,s){super(n,e.logger),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=U.STOPPED,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=false,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=false,this.decrypter=void 0,this.initPTS=[],this.buffering=true,this.loadingParts=false,this.loopSn=void 0,this.onMediaSeeking=()=>{let{config:a,fragCurrent:o,media:c,mediaBuffer:l,state:u}=this,d=c?c.currentTime:0,h=Re.bufferInfo(l||c,d,a.maxBufferHole),f=!h.len;if(this.log(`Media seeking to ${te(d)?d.toFixed(3):d}, state: ${u}, ${f?"out of":"in"} buffer`),this.state===U.ENDED)this.resetLoadingState();else if(o){let p=a.maxFragLookUpTolerance,g=o.start-p,m=o.start+o.duration+p;if(f||m<h.start||g>h.end){let y=d>m;(d<g||y)&&(y&&o.loader&&(this.log(`Cancelling fragment load for seek (sn: ${o.sn})`),o.abortRequests(),this.resetLoadingState()),this.fragPrevious=null);}}if(c){this.fragmentTracker.removeFragmentsInRange(d,1/0,this.playlistType,true);let p=this.lastCurrentTime;if(d>p&&(this.lastCurrentTime=d),!this.loadingParts){let g=Math.max(h.end,d),m=this.shouldLoadParts(this.getLevelDetails(),g);m&&(this.log(`LL-Part loading ON after seeking to ${d.toFixed(2)} with buffer @${g.toFixed(2)}`),this.loadingParts=m);}}this.hls.hasEnoughToStart||(this.log(`Setting ${f?"startPosition":"nextLoadPosition"} to ${d} for seek without enough to start`),this.nextLoadPosition=d,f&&(this.startPosition=d)),f&&this.state===U.IDLE&&this.tickImmediate();},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0;},this.playlistType=s,this.hls=e,this.fragmentLoader=new ff(e.config),this.keyLoader=i,this.fragmentTracker=t,this.config=e.config,this.decrypter=new po(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===U.STOPPED)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let e=this.fragCurrent;e!=null&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=U.STOPPED;}get startPositionValue(){let{nextLoadPosition:e,startPosition:t}=this;return t===-1&&e?e:t}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=false;}resumeBuffering(){this.buffering=true;}get inFlightFrag(){return {frag:this.fragCurrent,state:this.state}}_streamEnded(e,t){if(t.live||!this.media)return false;let i=e.end||0,n=this.config.timelineOffset||0;if(i<=n)return false;let s=e.buffered;this.config.maxBufferHole&&s&&s.length>1&&(e=Re.bufferedInfo(s,e.start,0));let a=e.nextStart;if(a&&a>n&&a<t.edge||this.media.currentTime<e.start)return false;let c=t.partList;if(c!=null&&c.length){let u=c[c.length-1];return Re.isBuffered(this.media,u.start+u.duration/2)}let l=t.fragments[t.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(l)}getLevelDetails(){if(this.levels&&this.levelLastLoaded!==null)return this.levelLastLoaded.details}get timelineOffset(){let e=this.config.timelineOffset;if(e){var t;return ((t=this.getLevelDetails())==null?void 0:t.appliedTimelineOffset)||e}return 0}onMediaAttached(e,t){let i=this.media=this.mediaBuffer=t.media;Qt(i,"seeking",this.onMediaSeeking),Qt(i,"ended",this.onMediaEnded);let n=this.config;this.levels&&n.autoStartLoad&&this.state===U.STOPPED&&this.startLoad(n.startPosition);}onMediaDetaching(e,t){let i=!!t.transferMedia,n=this.media;if(n!==null){if(n.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),ir(n,"seeking",this.onMediaSeeking),ir(n,"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=false,this.fragmentTracker.removeAllFragments(),this.stopLoad();}}onManifestLoading(){this.initPTS=[],this.levels=this.levelLastLoaded=this.fragCurrent=null,this.lastCurrentTime=this.startPosition=0,this.startFragRequested=false;}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=U.STOPPED,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed();}loadFragment(e,t,i){this.startFragRequested=true,this._loadFragForPlayback(e,t,i);}_loadFragForPlayback(e,t,i){let n=s=>{let a=s.frag;if(this.fragContextChanged(a)){this.warn(`${a.type} sn: ${a.sn}${s.part?" part: "+s.part.index:""} of ${this.fragInfo(a,false,s.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(a);return}a.stats.chunkCount++,this._handleFragmentLoadProgress(s);};this._doFragLoad(e,t,i,n).then(s=>{if(!s)return;let a=this.state,o=s.frag;if(this.fragContextChanged(o)){(a===U.FRAG_LOADING||!this.fragCurrent&&a===U.PARSING)&&(this.fragmentTracker.removeFragment(o),this.state=U.IDLE);return}"payload"in s&&(this.log(`Loaded ${o.type} sn: ${o.sn} of ${this.playlistLabel()} ${o.level}`),this.hls.trigger(x.FRAG_LOADED,s)),this._handleFragmentLoadComplete(s);}).catch(s=>{this.state===U.STOPPED||this.state===U.ERROR||(this.warn(`Frag error: ${s?.message||s}`),this.resetFragmentLoading(e));});}clearTrackerIfNeeded(e){var t;let{fragmentTracker:i}=this;if(i.getState(e)===kt.APPENDING){let s=e.type,a=this.getFwdBufferInfo(this.mediaBuffer,s),o=Math.max(e.duration,a?a.len:this.config.maxBufferLength),c=this.backtrackFragment;((c?e.sn-c.sn:0)===1||this.reduceMaxBufferLength(o,e.duration))&&i.removeFragment(e);}else ((t=this.mediaBuffer)==null?void 0:t.buffered.length)===0?i.removeAllFragments():i.hasParts(e.type)&&(i.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),i.getState(e)===kt.PARTIAL&&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=true);}waitForLive(e){let t=e.details;return t?.live&&t.type!=="EVENT"&&(this.levelLastLoaded!==e||t.expired)}flushMainBuffer(e,t,i=null){if(!(e-t))return;let n={startOffset:e,endOffset:t,type:i};this.hls.trigger(x.BUFFER_FLUSHING,n);}_loadInitSegment(e,t){this._doFragLoad(e,t).then(i=>{let n=i?.frag;if(!n||this.fragContextChanged(n)||!this.levels)throw new Error("init load aborted");return i}).then(i=>{let{hls:n}=this,{frag:s,payload:a}=i,o=s.decryptdata;if(a&&a.byteLength>0&&o!=null&&o.key&&o.iv&&js(o.method)){let c=self.performance.now();return this.decrypter.decrypt(new Uint8Array(a),o.key.buffer,o.iv.buffer,Tp(o.method)).catch(l=>{throw n.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_DECRYPT_ERROR,fatal:false,error:l,reason:l.message,frag:s}),l}).then(l=>{let u=self.performance.now();return n.trigger(x.FRAG_DECRYPTED,{frag:s,payload:l,stats:{tstart:c,tdecrypt:u}}),i.payload=l,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch(i=>{this.state===U.STOPPED||this.state===U.ERROR||(this.warn(i),this.resetFragmentLoading(e));});}completeInitSegmentLoad(e){let{levels:t}=this;if(!t)throw new Error("init load aborted, missing levels");let i=e.frag.stats;this.state!==U.STOPPED&&(this.state=U.IDLE),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,n;let s=e.tracks;if(s&&!t.encrypted&&((i=s.audio)!=null&&i.encrypted||(n=s.video)!=null&&n.encrypted)&&(!this.config.emeEnabled||!this.keyLoader.emeController)){let a=this.media,o=new Error(`Encrypted track with no key in ${this.fragInfo(t)} (media ${a?"attached mediaKeys: "+a.mediaKeys:"detached"})`);return this.warn(o.message),!a||a.mediaKeys?false:(this.hls.trigger(x.ERROR,{type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_KEYS,fatal:false,error:o,frag:t}),this.resetTransmuxer(),true)}return false}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,false,t)} > buffer:${i?eD.toString(Re.getBuffered(i)):"(detached)"})`),gt(e)){var n;if(e.type!==le.SUBTITLE){let a=e.elementaryStreams;if(!Object.keys(a).some(o=>!!a[o])){this.state=U.IDLE;return}}let s=(n=this.levels)==null?void 0:n[e.level];s!=null&&s.fragmentError&&(this.log(`Resetting level fragment error count of ${s.fragmentError} on frag buffered`),s.fragmentError=0);}this.state=U.IDLE;}_handleFragmentLoadComplete(e){let{transmuxer:t}=this;if(!t)return;let{frag:i,part:n,partsLoaded:s}=e,a=!s||s.length===0||s.some(c=>!c),o=new mo(i.level,i.sn,i.stats.chunkCount+1,0,n?n.index:-1,!a);t.flush(o);}_handleFragmentLoadProgress(e){}_doFragLoad(e,t,i=null,n){var s;this.fragCurrent=e;let a=t.details;if(!this.levels||!a)throw new Error(`frag load aborted, missing level${a?"":" detail"}s`);let o=null;if(e.encrypted&&!((s=e.decryptdata)!=null&&s.key)){if(this.log(`Loading key for ${e.sn} of [${a.startSN}-${a.endSN}], ${this.playlistLabel()} ${e.level}`),this.state=U.KEY_LOADING,this.fragCurrent=e,o=this.keyLoader.load(e).then(h=>{if(!this.fragContextChanged(h.frag))return this.hls.trigger(x.KEY_LOADED,h),this.state===U.KEY_LOADING&&(this.state=U.IDLE),h}),this.hls.trigger(x.KEY_LOADING,{frag:e}),this.fragCurrent===null)return this.log("context changed in KEY_LOADING"),Promise.resolve(null)}else e.encrypted||(o=this.keyLoader.loadClear(e,a.encryptedFragments,this.startFragRequested),o&&this.log("[eme] blocking frag load until media-keys acquired"));let c=this.fragPrevious;if(gt(e)&&(!c||e.sn!==c.sn)){let h=this.shouldLoadParts(t.details,e.end);h!==this.loadingParts&&(this.log(`LL-Part loading ${h?"ON":"OFF"} loading sn ${c?.sn}->${e.sn}`),this.loadingParts=h);}if(i=Math.max(e.start,i||0),this.loadingParts&&gt(e)){let h=a.partList;if(h&&n){i>a.fragmentEnd&&a.fragmentHint&&(e=a.fragmentHint);let f=this.getNextPart(h,e,i);if(f>-1){let p=h[f];e=this.fragCurrent=p.fragment,this.log(`Loading ${e.type} sn: ${e.sn} part: ${p.index} (${f}/${h.length-1}) of ${this.fragInfo(e,false,p)}) cc: ${e.cc} [${a.startSN}-${a.endSN}], target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=p.start+p.duration,this.state=U.FRAG_LOADING;let g;return o?g=o.then(m=>!m||this.fragContextChanged(m.frag)?null:this.doFragPartsLoad(e,p,t,n)).catch(m=>this.handleFragLoadError(m)):g=this.doFragPartsLoad(e,p,t,n).catch(m=>this.handleFragLoadError(m)),this.hls.trigger(x.FRAG_LOADING,{frag:e,part:p,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):g}else if(!e.url||this.loadedEndOfParts(h,i))return Promise.resolve(null)}}if(gt(e)&&this.loadingParts){var l;this.log(`LL-Part loading OFF after next part miss @${i.toFixed(2)} Check buffer at sn: ${e.sn} loaded parts: ${(l=a.partList)==null?void 0:l.filter(h=>h.loaded).map(h=>`[${h.start}-${h.end}]`)}`),this.loadingParts=false;}else if(!e.url)return Promise.resolve(null);this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e,false)}) cc: ${e.cc} ${"["+a.startSN+"-"+a.endSN+"]"}, target: ${parseFloat(i.toFixed(3))}`),te(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=U.FRAG_LOADING;let u=this.config.progressive&&e.type!==le.SUBTITLE,d;return u&&o?d=o.then(h=>!h||this.fragContextChanged(h.frag)?null:this.fragmentLoader.load(e,n)).catch(h=>this.handleFragLoadError(h)):d=Promise.all([this.fragmentLoader.load(e,u?n:void 0),o]).then(([h])=>(!u&&n&&n(h),h)).catch(h=>this.handleFragLoadError(h)),this.hls.trigger(x.FRAG_LOADING,{frag:e,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):d}doFragPartsLoad(e,t,i,n){return new Promise((s,a)=>{var o;let c=[],l=(o=i.details)==null?void 0:o.partList,u=d=>{this.fragmentLoader.loadPart(e,d,n).then(h=>{c[d.index]=h;let f=h.part;this.hls.trigger(x.FRAG_LOADED,h);let p=IE(i.details,e.sn,d.index+1)||Mb(l,e.sn,d.index+1);if(p)u(p);else return s({frag:e,part:f,partsLoaded:c})}).catch(a);};u(t);})}handleFragLoadError(e){if("data"in e){let t=e.data;t.frag&&t.details===D.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):t.frag&&t.type===de.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:de.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,err:e,error:e,fatal:true});return null}_handleTransmuxerFlush(e){let t=this.getCurrentContext(e);if(!t||this.state!==U.PARSING){!this.fragCurrent&&this.state!==U.STOPPED&&this.state!==U.ERROR&&(this.state=U.IDLE);return}let{frag:i,part:n,level:s}=t,a=self.performance.now();i.stats.parsing.end=a,n&&(n.stats.parsing.end=a);let o=this.getLevelDetails(),l=o&&i.sn>o.endSN||this.shouldLoadParts(o,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,n,s,e.partial);}shouldLoadParts(e,t){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(e.partList){var i;let s=e.partList[0];if(s.fragment.type===le.SUBTITLE)return false;let a=s.end+(((i=e.fragmentHint)==null?void 0:i.duration)||0);if(t>=a){var n;if((this.hls.hasEnoughToStart?((n=this.media)==null?void 0:n.currentTime)||this.lastCurrentTime:this.getLoadPosition())>s.start-s.fragment.duration)return true}}}return false}getCurrentContext(e){let{levels:t,fragCurrent:i}=this,{level:n,sn:s,part:a}=e;if(!(t!=null&&t[n]))return this.warn(`Levels object was unset while buffering fragment ${s} of ${this.playlistLabel()} ${n}. The current chunk will not be buffered.`),null;let o=t[n],c=o.details,l=a>-1?IE(c,s,a):null,u=l?l.fragment:Pb(c,s,i);return u?(i&&i!==u&&(u.stats=i.stats),{frag:u,part:l,level:o}):null}bufferFragmentData(e,t,i,n,s){if(this.state!==U.PARSING)return;let{data1:a,data2:o}=e,c=a;if(o&&(c=Tr(a,o)),!c.length)return;let l=this.initPTS[t.cc],u=l?-l.baseTime/l.timescale:void 0,d={type:e.type,frag:t,part:i,chunkMeta:n,offset:u,parent:t.type,data:c};if(this.hls.trigger(x.BUFFER_APPENDING,d),e.dropped&&e.independent&&!i){if(s)return;this.flushBufferGap(t);}}flushBufferGap(e){let t=this.media;if(!t)return;if(!Re.isBuffered(t,t.currentTime)){this.flushMainBuffer(0,e.start);return}let i=t.currentTime,n=Re.bufferInfo(t,i,0),s=e.duration,a=Math.min(this.config.maxFragLookUpTolerance*2,s*.25),o=Math.max(Math.min(e.start-a,n.end-a),i+a);e.start-o>a&&this.flushMainBuffer(o,e.start);}getFwdBufferInfo(e,t){var i;let n=this.getLoadPosition();if(!te(n))return null;let a=this.lastCurrentTime>n||(i=this.media)!=null&&i.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,n,t,a)}getFwdBufferInfoAtPos(e,t,i,n){let s=Re.bufferInfo(e,t,n);if(s.len===0&&s.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(t,i);if(a&&(s.nextStart<=a.end||a.gap)){let o=Math.max(Math.min(s.nextStart,a.end)-t,n);return Re.bufferInfo(e,t,o)}}return s}getMaxBufferLength(e){let{config:t}=this,i;return e?i=Math.max(8*t.maxBufferSize/e,t.maxBufferLength):i=t.maxBufferLength,Math.min(i,t.maxMaxBufferLength)}reduceMaxBufferLength(e,t){let i=this.config,n=Math.max(Math.min(e-t,i.maxBufferLength),t),s=Math.max(e-t*3,i.maxMaxBufferLength/2,n);return s>=n?(i.maxMaxBufferLength=s,this.warn(`Reduce max buffer length to ${s}s`),true):false}getAppendedFrag(e,t=le.MAIN){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,n=i.length;if(!n)return null;let{config:s}=this,a=i[0].start,o=s.lowLatencyMode&&!!t.partList,c=null;if(t.live){let d=s.initialLiveManifestSize;if(n<d)return this.warn(`Not enough fragments to start playback (have: ${n}, need: ${d})`),null;if(!t.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||e<a){var l;o&&!this.loadingParts&&(this.log("LL-Part loading ON for initial live fragment"),this.loadingParts=true),c=this.getInitialLiveFragment(t);let h=this.hls.startPosition,f=this.hls.liveSyncPosition,p=c?(h!==-1&&h>=a?h:f)||c.start:e;this.log(`Setting startPosition to ${p} to match start frag at live edge. mainStart: ${h} liveSyncPosition: ${f} frag.start: ${(l=c)==null?void 0:l.start}`),this.startPosition=this.nextLoadPosition=p;}}else e<=a&&(c=i[0]);if(!c){let d=this.loadingParts?t.partEnd:t.fragmentEnd;c=this.getFragmentAtPosition(e,d,t);}let u=this.filterReplacedPrimary(c,t);if(!u&&c){let d=c.sn-t.startSN;u=this.filterReplacedPrimary(i[d+1]||null,t);}return this.mapToInitFragWhenRequired(u)}isLoopLoading(e,t){let i=this.fragmentTracker.getState(e);return (i===kt.OK||i===kt.PARTIAL&&!!e.gap)&&this.nextLoadPosition>t}getNextFragmentLoopLoading(e,t,i,n,s){let a=null;if(e.gap&&(a=this.getNextFragment(this.nextLoadPosition,t),a&&!a.gap&&i.nextStart)){let o=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,n,0);if(o!==null&&i.len+o.len>=s){let c=a.sn;return this.loopSn!==c&&(this.log(`buffer full after gaps in "${n}" playlist starting at sn: ${c}`),this.loopSn=c),null}}return this.loopSn=void 0,a}get primaryPrefetch(){if(CE(this.config)){var e;if((e=this.hls.interstitialsManager)==null||(e=e.playingItem)==null?void 0:e.event)return true}return false}filterReplacedPrimary(e,t){if(!e)return e;if(CE(this.config)&&e.type!==le.SUBTITLE){let i=this.hls.interstitialsManager,n=i?.bufferingItem;if(n){let a=n.event;if(a){if(a.appendInPlace||Math.abs(e.start-n.start)>1||n.start===0)return null}else if(e.end<=n.start&&t?.live===false||e.start>n.end&&n.nextEvent&&(n.nextEvent.appendInPlace||e.start-n.end>1))return null}let s=i?.playerQueue;if(s)for(let a=s.length;a--;){let o=s[a].interstitial;if(o.appendInPlace&&e.start>=o.startTime&&e.end<=o.resumeTime)return null}}return e}mapToInitFragWhenRequired(e){return e!=null&&e.initSegment&&!e.initSegment.data&&!this.bitrateTest?e.initSegment:e}getNextPart(e,t,i){let n=-1,s=false,a=true;for(let o=0,c=e.length;o<c;o++){let l=e[o];if(a=a&&!l.independent,n>-1&&i<l.start)break;let u=l.loaded;u?n=-1:(s||(l.independent||a)&&l.fragment===t)&&(l.fragment!==t&&this.warn(`Need buffer at ${i} but next unloaded part starts at ${l.start}`),n=o),s=u;}return n}loadedEndOfParts(e,t){let i;for(let n=e.length;n--;){if(i=e[n],!i.loaded)return false;if(t>i.start)return true}return false}getInitialLiveFragment(e){let t=e.fragments,i=this.fragPrevious,n=null;if(i){if(e.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${i.programDateTime}`),n=_C(t,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!n){let s=i.sn+1;if(s>=e.startSN&&s<=e.endSN){let a=t[s-e.startSN];i.cc===a.cc&&(n=a,this.log(`Live playlist, switching playlist, load frag with next SN: ${n.sn}`));}n||(n=bb(e,i.cc,i.end),n&&this.log(`Live playlist, switching playlist, load frag with same CC: ${n.sn}`));}}else {let s=this.hls.liveSyncPosition;s!==null&&(n=this.getFragmentAtPosition(s,this.bitrateTest?e.fragmentEnd:e.edge,e));}return n}getFragmentAtPosition(e,t,i){let{config:n}=this,{fragPrevious:s}=this,{fragments:a,endSN:o}=i,{fragmentHint:c}=i,{maxFragLookUpTolerance:l}=n,u=i.partList,d=!!(this.loadingParts&&u!=null&&u.length&&c);d&&!this.bitrateTest&&u[u.length-1].fragment.sn===c.sn&&(a=a.concat(c),o=c.sn);let h;if(e<t){var f;let g=e<this.lastCurrentTime||e>t-l||(f=this.media)!=null&&f.paused||!this.startFragRequested?0:l;h=Gn(s,a,e,g);}else h=a[a.length-1];if(h){let p=h.sn-i.startSN,g=this.fragmentTracker.getState(h);if((g===kt.OK||g===kt.PARTIAL&&h.gap)&&(s=h),s&&h.sn===s.sn&&(!d||u[0].fragment.sn>h.sn||!i.live)&&h.level===s.level){let y=a[p+1];h.sn<o&&this.fragmentTracker.getState(y)!==kt.OK?h=y:h=null;}}return h}alignPlaylists(e,t,i){let n=e.fragments.length;if(!n)return this.warn("No fragments in live playlist"),0;let s=e.fragmentStart,a=!t,o=e.alignedSliding&&te(s);if(a||!o&&!s){QC(i,e);let c=e.fragmentStart;return this.log(`Live playlist sliding: ${c.toFixed(2)} start-sn: ${t?t.startSN:"na"}->${e.startSN} fragments: ${n}`),c}return s}waitForCdnTuneIn(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,e.partTarget*3)}setStartPosition(e,t){let i=this.startPosition;i<t&&(i=-1);let n=this.timelineOffset;if(i===-1){let s=this.startTimeOffset!==null,a=s?this.startTimeOffset:e.startTimeOffset;a!==null&&te(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 ${s?"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+n;}this.nextLoadPosition=i+n;}getLoadPosition(){var e;let{media:t}=this,i=0;return (e=this.hls)!=null&&e.hasEnoughToStart&&t?i=t.currentTime:this.nextLoadPosition>=0&&(i=this.nextLoadPosition),i}handleFragLoadAborted(e,t){this.transmuxer&&e.type===this.playlistType&&gt(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!==U.FRAG_LOADING_WAITING_RETRY)&&(this.state=U.IDLE);}onFragmentOrKeyLoadError(e,t){var i;if(t.chunkMeta&&!t.frag){let y=this.getCurrentContext(t.chunkMeta);y&&(t.frag=y.frag);}let n=t.frag;if(!n||n.type!==e||!this.levels)return;if(this.fragContextChanged(n)){var s;this.warn(`Frag load error must match current frag to retry ${n.url} > ${(s=this.fragCurrent)==null?void 0:s.url}`);return}let a=t.details===D.FRAG_GAP;a&&this.fragmentTracker.fragBuffered(n,true);let o=t.errorAction;if(!o){this.state=U.ERROR;return}let{action:c,flags:l,retryCount:u=0,retryConfig:d}=o,h=!!d,f=h&&c===Dt.RetryRequest,p=h&&!o.resolved&&l===dr.MoveAllAlternatesMatchingHost,g=(i=this.hls.latestLevelDetails)==null?void 0:i.live;if(!f&&p&&gt(n)&&!n.endList&&g&&!_b(t))this.resetFragmentErrors(e),this.treatAsGap(n),o.resolved=true;else if((f||p)&&u<d.maxNumRetry){var m;let y=of((m=t.response)==null?void 0:m.code),v=_p(d,u);if(this.resetStartWhenNotLoaded(),this.retryDate=self.performance.now()+v,this.state=U.FRAG_LOADING_WAITING_RETRY,o.resolved=true,y){this.log("Waiting for connection (offline)"),this.retryDate=1/0,t.reason="offline";return}this.warn(`Fragment ${n.sn} of ${e} ${n.level} errored with ${t.details}, retrying loading ${u+1}/${d.maxNumRetry} in ${v}ms`);}else if(d)if(this.resetFragmentErrors(e),u<d.maxNumRetry)!a&&c!==Dt.RemoveAlternatePermanently&&(o.resolved=true);else {this.warn(`${t.details} reached or exceeded max retry (${u})`);return}else c===Dt.SendAlternateToPenaltyBox?this.state=U.WAITING_LEVEL:this.state=U.ERROR;this.tickImmediate();}checkRetryDate(){let e=self.performance.now(),t=this.retryDate,i=t===1/0;(!t||e>=t||i&&!of(0))&&(i&&this.log("Connection restored (online)"),this.resetStartWhenNotLoaded(),this.state=U.IDLE);}reduceLengthAndFlushBuffer(e){if(this.state===U.PARSING||this.state===U.PARSED){let t=e.frag,i=e.parent,n=this.getFwdBufferInfo(this.mediaBuffer,i),s=n&&n.len>.5;s&&this.reduceMaxBufferLength(n.len,t?.duration||10);let a=!s;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 false}resetFragmentErrors(e){e===le.AUDIO&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=false),this.state!==U.STOPPED&&(this.state=U.IDLE);}afterBufferFlushed(e,t,i){if(!e)return;let n=Re.getBuffered(e);this.fragmentTracker.detectEvictedFragments(t,n,i),this.state===U.ENDED&&this.resetLoadingState();}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==U.STOPPED&&(this.state=U.IDLE);}resetStartWhenNotLoaded(){if(!this.hls.hasEnoughToStart){this.startFragRequested=false;let e=this.levelLastLoaded,t=e?e.details:null;t!=null&&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()} ${e.level===-1?"<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,false,true);}updateLevelTiming(e,t,i,n){let s=i.details;if(!s){this.warn("level.details undefined");return}if(!Object.keys(e.elementaryStreams).reduce((c,l)=>{let u=e.elementaryStreams[l];if(u){let d=u.endPTS-u.startPTS;if(d<=0)return this.warn(`Could not parse fragment ${e.sn} ${l} duration reliably (${d})`),c||false;let h=n?0:Rb(s,e,u.startPTS,u.endPTS,u.startDTS,u.endDTS,this);return this.hls.trigger(x.LEVEL_PTS_UPDATED,{details:s,level:i,drift:h,type:l,frag:e,start:u.startPTS,end:u.endPTS}),true}return c},false)){var o;let c=((o=this.transmuxer)==null?void 0:o.error)===null;if((i.fragmentError===0||c&&(i.fragmentError<2||e.endList))&&this.treatAsGap(e,i),c){let l=new Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(l.message),this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:false,error:l,frag:e,reason:`Found no media in msn ${e.sn} of ${this.playlistLabel()} "${i.url}"`}),!this.hls)return;this.resetTransmuxer();}}this.state=U.PARSED,this.log(`Parsed ${e.type} sn: ${e.sn}${t?" part: "+t.index:""} of ${this.fragInfo(e,false,t)})`),this.hls.trigger(x.FRAG_PARSED,{frag:e,part:t});}playlistLabel(){return this.playlistType===le.MAIN?"level":"track"}fragInfo(e,t=true,i){var n,s;return `${this.playlistLabel()} ${e.level} (${i?"part":"frag"}:[${((n=t&&!i?e.startPTS:(i||e).start)!=null?n:NaN).toFixed(3)}-${((s=t&&!i?e.endPTS:(i||e).end)!=null?s:NaN).toFixed(3)}]${i&&e.type==="main"?"INDEPENDENT="+(i.independent?"YES":"NO"):""}`}treatAsGap(e,t){t&&t.fragmentError++,e.gap=true,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,true);}resetTransmuxer(){var e;(e=this.transmuxer)==null||e.reset();}recoverWorkerError(e){e.event==="demuxerWorker"&&(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 CE(r){return !!r.interstitialsController&&r.enableInterstitialPlayback!==false}var Ic=class{constructor(){this.chunks=[],this.dataLength=0;}push(e){this.chunks.push(e),this.dataLength+=e.length;}flush(){let{chunks:e,dataLength:t}=this,i;if(e.length)e.length===1?i=e[0]:i=tD(e,t);else return new Uint8Array(0);return this.reset(),i}reset(){this.chunks.length=0,this.dataLength=0;}};function tD(r,e){let t=new Uint8Array(e),i=0;for(let n=0;n<r.length;n++){let s=r[n];t.set(s,i),i+=s.length;}return t}var Nh={exports:{}},DE;function rD(){return DE||(DE=1,(function(r){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=false));function n(c,l,u){this.fn=c,this.context=l,this.once=u||false;}function s(c,l,u,d,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var f=new n(u,d||c,h),p=t?t+l:l;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],f]:c._events[p].push(f):(c._events[p]=f,c._eventsCount++),c}function a(c,l){--c._eventsCount===0?c._events=new i:delete c._events[l];}function o(){this._events=new i,this._eventsCount=0;}o.prototype.eventNames=function(){var l=[],u,d;if(this._eventsCount===0)return l;for(d in u=this._events)e.call(u,d)&&l.push(t?d.slice(1):d);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(u)):l},o.prototype.listeners=function(l){var u=t?t+l:l,d=this._events[u];if(!d)return [];if(d.fn)return [d.fn];for(var h=0,f=d.length,p=new Array(f);h<f;h++)p[h]=d[h].fn;return p},o.prototype.listenerCount=function(l){var u=t?t+l:l,d=this._events[u];return d?d.fn?1:d.length:0},o.prototype.emit=function(l,u,d,h,f,p){var g=t?t+l:l;if(!this._events[g])return false;var m=this._events[g],y=arguments.length,v,E;if(m.fn){switch(m.once&&this.removeListener(l,m.fn,void 0,true),y){case 1:return m.fn.call(m.context),true;case 2:return m.fn.call(m.context,u),true;case 3:return m.fn.call(m.context,u,d),true;case 4:return m.fn.call(m.context,u,d,h),true;case 5:return m.fn.call(m.context,u,d,h,f),true;case 6:return m.fn.call(m.context,u,d,h,f,p),true}for(E=1,v=new Array(y-1);E<y;E++)v[E-1]=arguments[E];m.fn.apply(m.context,v);}else {var b=m.length,S;for(E=0;E<b;E++)switch(m[E].once&&this.removeListener(l,m[E].fn,void 0,true),y){case 1:m[E].fn.call(m[E].context);break;case 2:m[E].fn.call(m[E].context,u);break;case 3:m[E].fn.call(m[E].context,u,d);break;case 4:m[E].fn.call(m[E].context,u,d,h);break;default:if(!v)for(S=1,v=new Array(y-1);S<y;S++)v[S-1]=arguments[S];m[E].fn.apply(m[E].context,v);}}return true},o.prototype.on=function(l,u,d){return s(this,l,u,d,false)},o.prototype.once=function(l,u,d){return s(this,l,u,d,true)},o.prototype.removeListener=function(l,u,d,h){var f=t?t+l:l;if(!this._events[f])return this;if(!u)return a(this,f),this;var p=this._events[f];if(p.fn)p.fn===u&&(!h||p.once)&&(!d||p.context===d)&&a(this,f);else {for(var g=0,m=[],y=p.length;g<y;g++)(p[g].fn!==u||h&&!p[g].once||d&&p[g].context!==d)&&m.push(p[g]);m.length?this._events[f]=m.length===1?m[0]:m:a(this,f);}return this},o.prototype.removeAllListeners=function(l){var u;return l?(u=t?t+l:l,this._events[u]&&a(this,u)):(this._events=new i,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=t,o.EventEmitter=o,r.exports=o;})(Nh)),Nh.exports}var iD=rD(),Ap=NR(iD),yo="1.6.15",Xs={};function nD(){return typeof __HLS_WORKER_BUNDLE__=="function"}function sD(){let r=Xs[yo];if(r)return r.clientCount++,r;let e=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),t=self.URL.createObjectURL(e),n={worker:new self.Worker(t),objectURL:t,clientCount:1};return Xs[yo]=n,n}function aD(r){let e=Xs[r];if(e)return e.clientCount++,e;let t=new self.URL(r,self.location.href).href,n={worker:new self.Worker(t),scriptURL:t,clientCount:1};return Xs[r]=n,n}function oD(r){let e=Xs[r||yo];if(e&&e.clientCount--===1){let{worker:i,objectURL:n}=e;delete Xs[r||yo],n&&self.URL.revokeObjectURL(n),i.terminate();}}function Bb(r,e){return e+10<=r.length&&r[e]===51&&r[e+1]===68&&r[e+2]===73&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128}function kp(r,e){return e+10<=r.length&&r[e]===73&&r[e+1]===68&&r[e+2]===51&&r[e+3]<255&&r[e+4]<255&&r[e+6]<128&&r[e+7]<128&&r[e+8]<128&&r[e+9]<128}function Gc(r,e){let t=0;return t=(r[e]&127)<<21,t|=(r[e+1]&127)<<14,t|=(r[e+2]&127)<<7,t|=r[e+3]&127,t}function vo(r,e){let t=e,i=0;for(;kp(r,e);){i+=10;let n=Gc(r,e+6);i+=n,Bb(r,e+10)&&(i+=10),e+=i;}if(i>0)return r.subarray(t,t+i)}function lD(r,e,t,i){let n=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],s=e[t+2],a=s>>2&15;if(a>12){let f=new Error(`invalid ADTS sampling index:${a}`);r.emit(x.ERROR,x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:true,error:f,reason:f.message});return}let o=(s>>6&3)+1,c=e[t+3]>>6&3|(s&1)<<2,l="mp4a.40."+o,u=n[a],d=a;(o===5||o===29)&&(d-=3);let h=[o<<3|(d&14)>>1,(d&1)<<7|c<<3];return Ze.log(`manifest codec:${i}, parsed codec:${l}, channels:${c}, rate:${u} (ADTS object type:${o} sampling index:${a})`),{config:h,samplerate:u,channelCount:c,codec:l,parsedCodec:l,manifestCodec:i}}function Ub(r,e){return r[e]===255&&(r[e+1]&246)===240}function $b(r,e){return r[e+1]&1?7:9}function Ip(r,e){return (r[e+3]&3)<<11|r[e+4]<<3|(r[e+5]&224)>>>5}function cD(r,e){return e+5<r.length}function Lc(r,e){return e+1<r.length&&Ub(r,e)}function uD(r,e){return cD(r,e)&&Ub(r,e)&&Ip(r,e)<=r.length-e}function dD(r,e){if(Lc(r,e)){let t=$b(r,e);if(e+t>=r.length)return false;let i=Ip(r,e);if(i<=t)return false;let n=e+i;return n===r.length||Lc(r,n)}return false}function zb(r,e,t,i,n){if(!r.samplerate){let s=lD(e,t,i,n);if(!s)return;Je(r,s);}}function Gb(r){return 1024*9e4/r}function hD(r,e){let t=$b(r,e);if(e+t<=r.length){let i=Ip(r,e)-t;if(i>0)return {headerLength:t,frameLength:i}}}function Hb(r,e,t,i,n){let s=Gb(r.samplerate),a=i+n*s,o=hD(e,t),c;if(o){let{frameLength:d,headerLength:h}=o,f=h+d,p=Math.max(0,t+f-e.length);p?(c=new Uint8Array(f-h),c.set(e.subarray(t+h,e.length),0)):c=e.subarray(t+h,t+f);let g={unit:c,pts:a};return p||r.samples.push(g),{sample:g,length:f,missing:p}}let l=e.length-t;return c=new Uint8Array(l),c.set(e.subarray(t,e.length),0),{sample:{unit:c,pts:a},length:l,missing:-1}}function fD(r,e){return kp(r,e)&&Gc(r,e+6)+10<=r.length-e}function pD(r){return r instanceof ArrayBuffer?r:r.byteOffset==0&&r.byteLength==r.buffer.byteLength?r.buffer:new Uint8Array(r).buffer}function Bh(r,e=0,t=1/0){return mD(r,e,t,Uint8Array)}function mD(r,e,t,i){let n=gD(r),s=1;"BYTES_PER_ELEMENT"in i&&(s=i.BYTES_PER_ELEMENT);let a=yD(r)?r.byteOffset:0,o=(a+r.byteLength)/s,c=(a+e)/s,l=Math.floor(Math.max(0,Math.min(c,o))),u=Math.floor(Math.min(l+Math.max(t,0),o));return new i(n,l,u-l)}function gD(r){return r instanceof ArrayBuffer?r:r.buffer}function yD(r){return r&&r.buffer instanceof ArrayBuffer&&r.byteLength!==void 0&&r.byteOffset!==void 0}function vD(r){let e={key:r.type,description:"",data:"",mimeType:null,pictureType:null},t=3;if(r.size<2)return;if(r.data[0]!==t){console.log("Ignore frame with unrecognized character encoding");return}let i=r.data.subarray(1).indexOf(0);if(i===-1)return;let n=pr(Bh(r.data,1,i)),s=r.data[2+i],a=r.data.subarray(3+i).indexOf(0);if(a===-1)return;let o=pr(Bh(r.data,3+i,a)),c;return n==="-->"?c=pr(Bh(r.data,4+i+a)):c=pD(r.data.subarray(4+i+a)),e.mimeType=n,e.pictureType=s,e.description=o,e.data=c,e}function xD(r){if(r.size<2)return;let e=pr(r.data,true),t=new Uint8Array(r.data.subarray(e.length+1));return {key:r.type,info:e,data:t.buffer}}function ED(r){if(r.size<2)return;if(r.type==="TXXX"){let t=1,i=pr(r.data.subarray(t),true);t+=i.length+1;let n=pr(r.data.subarray(t));return {key:r.type,info:i,data:n}}let e=pr(r.data.subarray(1));return {key:r.type,info:"",data:e}}function bD(r){if(r.type==="WXXX"){if(r.size<2)return;let t=1,i=pr(r.data.subarray(t),true);t+=i.length+1;let n=pr(r.data.subarray(t));return {key:r.type,info:i,data:n}}let e=pr(r.data);return {key:r.type,info:"",data:e}}function SD(r){return r.type==="PRIV"?xD(r):r.type[0]==="W"?bD(r):r.type==="APIC"?vD(r):ED(r)}function _D(r){let e=String.fromCharCode(r[0],r[1],r[2],r[3]),t=Gc(r,4),i=10;return {type:e,size:t,data:r.subarray(i,i+t)}}var Jl=10,TD=10;function Kb(r){let e=0,t=[];for(;kp(r,e);){let i=Gc(r,e+6);r[e+5]>>6&1&&(e+=Jl),e+=Jl;let n=e+i;for(;e+TD<n;){let s=_D(r.subarray(e)),a=SD(s);a&&t.push(a),e+=s.size+Jl;}Bb(r,e)&&(e+=Jl);}return t}function Vb(r){return r&&r.key==="PRIV"&&r.info==="com.apple.streaming.transportStreamTimestamp"}function wD(r){if(r.data.byteLength===8){let e=new Uint8Array(r.data),t=e[3]&1,i=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return i/=45,t&&(i+=4772185884e-2),Math.round(i)}}function Lp(r){let e=Kb(r);for(let t=0;t<e.length;t++){let i=e[t];if(Vb(i))return wD(i)}}var fr=(function(r){return r.audioId3="org.id3",r.dateRange="com.apple.quicktime.HLS",r.emsg="https://aomedia.org/emsg/ID3",r.misbklv="urn:misb:KLV:bin:1910.1",r})({});function Qr(r="",e=9e4){return {type:r,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}var xo=class{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null;}resetInitSegment(e,t,i,n){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 false}appendFrame(e,t,i){}demux(e,t){this.cachedData&&(e=Tr(this.cachedData,e),this.cachedData=null);let i=vo(e,0),n=i?i.length:0,s,a=this._audioTrack,o=this._id3Track,c=i?Lp(i):void 0,l=e.length;for((this.basePTS===null||this.frameIndex===0&&te(c))&&(this.basePTS=AD(c,t,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),i&&i.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:fr.audioId3,duration:Number.POSITIVE_INFINITY});n<l;){if(this.canParse(e,n)){let u=this.appendFrame(a,e,n);u?(this.frameIndex++,this.lastPTS=u.sample.pts,n+=u.length,s=n):n=l;}else fD(e,n)?(i=vo(e,n),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:i,type:fr.audioId3,duration:Number.POSITIVE_INFINITY}),n+=i.length,s=n):n++;if(n===l&&s!==l){let u=e.slice(s);this.cachedData?this.cachedData=Tr(this.cachedData,u):this.cachedData=u;}}return {audioTrack:a,videoTrack:Qr(),id3Track:o,textTrack:Qr()}}demuxSampleAes(e,t,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(e){let t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),{audioTrack:this._audioTrack,videoTrack:Qr(),id3Track:this._id3Track,textTrack:Qr()}}destroy(){this.cachedData=null,this._audioTrack=this._id3Track=void 0;}},AD=(r,e,t)=>{if(te(r))return r*90;let i=t?t.baseTime*9e4/t.timescale:0;return e*9e4+i},Ql=null,kD=[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],ID=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],LD=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],RD=[0,1,1,4];function jb(r,e,t,i,n){if(t+24>e.length)return;let s=Wb(e,t);if(s&&t+s.frameLength<=e.length){let a=s.samplesPerFrame*9e4/s.sampleRate,o=i+n*a,c={unit:e.subarray(t,t+s.frameLength),pts:o,dts:o};return r.config=[],r.channelCount=s.channelCount,r.samplerate=s.sampleRate,r.samples.push(c),{sample:c,length:s.frameLength,missing:0}}}function Wb(r,e){let t=r[e+1]>>3&3,i=r[e+1]>>1&3,n=r[e+2]>>4&15,s=r[e+2]>>2&3;if(t!==1&&n!==0&&n!==15&&s!==3){let a=r[e+2]>>1&1,o=r[e+3]>>6,c=t===3?3-i:i===3?3:4,l=kD[c*14+n-1]*1e3,d=ID[(t===3?0:t===2?1:2)*3+s],h=o===3?1:2,f=LD[t][i],p=RD[i],g=f*8*p,m=Math.floor(f*l/d+a)*p;if(Ql===null){let E=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Ql=E?parseInt(E[1]):0;}return Ql&&Ql<=87&&i===2&&l>=224e3&&o===0&&(r[e+3]=r[e+3]|128),{sampleRate:d,channelCount:h,frameLength:m,samplesPerFrame:g}}}function Rp(r,e){return r[e]===255&&(r[e+1]&224)===224&&(r[e+1]&6)!==0}function qb(r,e){return e+1<r.length&&Rp(r,e)}function CD(r,e){return Rp(r,e)&&4<=r.length-e}function Yb(r,e){if(e+1<r.length&&Rp(r,e)){let i=Wb(r,e),n=4;i!=null&&i.frameLength&&(n=i.frameLength);let s=e+n;return s===r.length||qb(r,s)}return false}var xf=class extends xo{constructor(e,t){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=t;}resetInitSegment(e,t,i,n){super.resetInitSegment(e,t,i,n),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:t,duration:n,inputTimeScale:9e4,dropped:0};}static probe(e,t){if(!e)return false;let i=vo(e,0),n=i?.length||0;if(Yb(e,n))return false;for(let s=e.length;n<s;n++)if(dD(e,n))return t.log("ADTS sync word found !"),true;return false}canParse(e,t){return uD(e,t)}appendFrame(e,t,i){zb(e,this.observer,t,i,e.manifestCodec);let n=Hb(e,t,i,this.basePTS,this.frameIndex);if(n&&n.missing===0)return n}},Zb=(r,e)=>{let t=0,i=5;e+=i;let n=new Uint32Array(1),s=new Uint32Array(1),a=new Uint8Array(1);for(;i>0;){a[0]=r[e];let o=Math.min(i,8),c=8-o;s[0]=4278190080>>>24+c<<c,n[0]=(a[0]&s[0])>>c,t=t?t<<o|n[0]:n[0],e+=1,i-=o;}return t},Ef=class extends xo{constructor(e){super(),this.observer=void 0,this.observer=e;}resetInitSegment(e,t,i,n){super.resetInitSegment(e,t,i,n),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:t,duration:n,inputTimeScale:9e4,dropped:0};}canParse(e,t){return t+64<e.length}appendFrame(e,t,i){let n=Xb(e,t,i,this.basePTS,this.frameIndex);if(n!==-1)return {sample:e.samples[e.samples.length-1],length:n,missing:0}}static probe(e){if(!e)return false;let t=vo(e,0);if(!t)return false;let i=t.length;return e[i]===11&&e[i+1]===119&&Lp(t)!==void 0&&Zb(e,i)<16}};function Xb(r,e,t,i,n){if(t+8>e.length||e[t]!==11||e[t+1]!==119)return -1;let s=e[t+4]>>6;if(s>=3)return -1;let o=[48e3,44100,32e3][s],c=e[t+4]&63,u=[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][c*3+s]*2;if(t+u>e.length)return -1;let d=e[t+6]>>5,h=0;d===2?h+=2:(d&1&&d!==1&&(h+=2),d&4&&(h+=2));let f=(e[t+6]<<8|e[t+7])>>12-h&1,g=[2,1,2,3,3,4,4,5][d]+f,m=e[t+5]>>3,y=e[t+5]&7,v=new Uint8Array([s<<6|m<<1|y>>2,(y&3)<<6|d<<3|f<<2|c>>4,c<<4&224]),E=1536/o*9e4,b=i+n*E,S=e.subarray(t,t+u);return r.config=v,r.channelCount=g,r.samplerate=o,r.samples.push({unit:S,pts:b}),u}var bf=class extends xo{resetInitSegment(e,t,i,n){super.resetInitSegment(e,t,i,n),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:n,inputTimeScale:9e4,dropped:0};}static probe(e){if(!e)return false;let t=vo(e,0),i=t?.length||0;if(t&&e[i]===11&&e[i+1]===119&&Lp(t)!==void 0&&Zb(e,i)<=16)return false;for(let n=e.length;i<n;i++)if(Yb(e,i))return Ze.log("MPEG Audio sync word found !"),true;return false}canParse(e,t){return CD(e,t)}appendFrame(e,t,i){if(this.basePTS!==null)return jb(e,t,i,this.basePTS,this.frameIndex)}},DD=/\/emsg[-/]ID3/i,Sf=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,n){let s=this.videoTrack=Qr("video",1),a=this.audioTrack=Qr("audio",1),o=this.txtTrack=Qr("text",1);if(this.id3Track=Qr("id3",1),this.timeOffset=0,!(e!=null&&e.byteLength))return;let c=ub(e);if(c.video){let{id:l,timescale:u,codec:d,supplemental:h}=c.video;s.id=l,s.timescale=o.timescale=u,s.codec=d,s.supplemental=h;}if(c.audio){let{id:l,timescale:u,codec:d}=c.audio;a.id=l,a.timescale=u,a.codec=d;}o.id=ob.text,s.sampleDuration=0,s.duration=a.duration=n;}resetContiguity(){this.remainderData=null;}static probe(e){return zR(e)}demux(e,t){this.timeOffset=t;let i=e,n=this.videoTrack,s=this.txtTrack;if(this.config.progressive){this.remainderData&&(i=Tr(this.remainderData,e));let o=qR(i);this.remainderData=o.remainder,n.samples=o.valid||new Uint8Array;}else n.samples=i;let a=this.extractID3Track(n,t);return s.samples=Xx(t,n),{videoTrack:n,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 n=this.extractID3Track(t,this.timeOffset);return i.samples=Xx(e,t),{videoTrack:t,audioTrack:Qr(),id3Track:n,textTrack:Qr()}}extractID3Track(e,t){let i=this.id3Track;if(e.samples.length){let n=Ce(e.samples,["emsg"]);n&&n.forEach(s=>{let a=ZR(s);if(DD.test(a.schemeIdUri)){let o=PE(a,t),c=a.eventDuration===4294967295?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;c<=.001&&(c=Number.POSITIVE_INFINITY);let l=a.payload;i.samples.push({data:l,len:l.byteLength,dts:o,pts:o,type:fr.emsg,duration:c});}else if(this.config.enableEmsgKLVMetadata&&a.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){let o=PE(a,t);i.samples.push({data:a.payload,len:a.payload.byteLength,dts:o,pts:o,type:fr.misbklv,duration:Number.POSITIVE_INFINITY});}});}return i}demuxSampleAes(e,t,i){return Promise.reject(new 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;}};function PE(r,e){return te(r.presentationTime)?r.presentationTime/r.timeScale:e+r.presentationTimeDelta/r.timeScale}var _f=class{constructor(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new po(t,{removePKCS7Padding:false});}decryptBuffer(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,ln.cbc)}decryptAacSample(e,t,i){let n=e[t].unit;if(n.length<=16)return;let s=n.subarray(16,n.length-n.length%16),a=s.buffer.slice(s.byteOffset,s.byteOffset+s.length);this.decryptBuffer(a).then(o=>{let c=new Uint8Array(o);n.set(c,16),this.decrypter.isSync()||this.decryptAacSamples(e,t+1,i);}).catch(i);}decryptAacSamples(e,t,i){for(;;t++){if(t>=e.length){i();return}if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(e){let t=Math.floor((e.length-48)/160)*16+16,i=new Int8Array(t),n=0;for(let s=32;s<e.length-16;s+=160,n+=16)i.set(e.subarray(s,s+16),n);return i}getAvcDecryptedUnit(e,t){let i=new Uint8Array(t),n=0;for(let s=32;s<e.length-16;s+=160,n+=16)e.set(i.subarray(n,n+16),s);return e}decryptAvcSample(e,t,i,n,s){let a=fb(s.data),o=this.getAvcEncryptedData(a);this.decryptBuffer(o.buffer).then(c=>{s.data=this.getAvcDecryptedUnit(a,c),this.decrypter.isSync()||this.decryptAvcSamples(e,t,i+1,n);}).catch(n);}decryptAvcSamples(e,t,i,n){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length){n();return}let s=e[t].units;for(;!(i>=s.length);i++){let a=s[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5)&&(this.decryptAvcSample(e,t,i,n,a),!this.decrypter.isSync()))return}}}},Rc=class{constructor(){this.VideoSample=null;}createVideoSample(e,t,i){return {key:e,frame:false,pts:t,dts:i,units:[],length:0}}getLastNalUnit(e){var t;let i=this.VideoSample,n;if((!i||i.units.length===0)&&(i=e[e.length-1]),(t=i)!=null&&t.units){let s=i.units;n=s[s.length-1];}return n}pushAccessUnit(e,t){if(e.units.length&&e.frame){if(e.pts===void 0){let i=t.samples,n=i.length;if(n){let s=i[n-1];e.pts=s.pts,e.dts=s.dts;}else {t.dropped++;return}}t.samples.push(e);}}parseNALu(e,t,i){let n=t.byteLength,s=e.naluState||0,a=s,o=[],c=0,l,u,d,h=-1,f=0;for(s===-1&&(h=0,f=this.getNALuType(t,0),s=0,c=1);c<n;){if(l=t[c++],!s){s=l?0:1;continue}if(s===1){s=l?0:2;continue}if(!l)s=3;else if(l===1){if(u=c-s-1,h>=0){let p={data:t.subarray(h,u),type:f};o.push(p);}else {let p=this.getLastNalUnit(e.samples);p&&(a&&c<=4-a&&p.state&&(p.data=p.data.subarray(0,p.data.byteLength-a)),u>0&&(p.data=Tr(p.data,t.subarray(0,u)),p.state=0));}c<n?(d=this.getNALuType(t,c),h=c,f=d,s=0):s=-1;}else s=0;}if(h>=0&&s>=0){let p={data:t.subarray(h,n),type:f,state:s};o.push(p);}if(o.length===0){let p=this.getLastNalUnit(e.samples);p&&(p.data=Tr(p.data,t));}return e.naluState=s,o}},$n=class{constructor(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0;}loadWord(){let e=this.data,t=this.bytesAvailable,i=e.byteLength-t,n=new Uint8Array(4),s=Math.min(4,t);if(s===0)throw new Error("no bytes available");n.set(e.subarray(i,i+s)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=s*8,this.bytesAvailable-=s;}skipBits(e){let t;e=Math.min(e,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,t=e>>3,e-=t<<3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e);}readBits(e){let t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(e>32&&Ze.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0)this.word<<=t;else if(this.bytesAvailable>0)this.loadWord();else throw new Error("no bits available");return t=e-t,t>0&&this.bitsAvailable?i<<t|this.readBits(t):i}skipLZ(){let e;for(e=0;e<this.bitsAvailable;++e)if((this.word&2147483648>>>e)!==0)return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ());}skipEG(){this.skipBits(1+this.skipLZ());}readUEG(){let e=this.skipLZ();return this.readBits(e+1)-1}readEG(){let e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}},Tf=class extends Rc{parsePES(e,t,i,n){let s=this.parseNALu(e,i.data,n),a=this.VideoSample,o,c=false;i.data=null,a&&s.length&&!e.audFound&&(this.pushAccessUnit(a,e),a=this.VideoSample=this.createVideoSample(false,i.pts,i.dts)),s.forEach(l=>{var u,d;switch(l.type){case 1:{let g=false;o=true;let m=l.data;if(c&&m.length>4){let y=this.readSliceType(m);(y===2||y===4||y===7||y===9)&&(g=true);}if(g){var h;(h=a)!=null&&h.frame&&!a.key&&(this.pushAccessUnit(a,e),a=this.VideoSample=null);}a||(a=this.VideoSample=this.createVideoSample(true,i.pts,i.dts)),a.frame=true,a.key=g;break}case 5:o=true,(u=a)!=null&&u.frame&&!a.key&&(this.pushAccessUnit(a,e),a=this.VideoSample=null),a||(a=this.VideoSample=this.createVideoSample(true,i.pts,i.dts)),a.key=true,a.frame=true;break;case 6:{o=true,Ep(l.data,1,i.pts,t.samples);break}case 7:{var f,p;o=true,c=true;let g=l.data,m=this.readSPS(g);if(!e.sps||e.width!==m.width||e.height!==m.height||((f=e.pixelRatio)==null?void 0:f[0])!==m.pixelRatio[0]||((p=e.pixelRatio)==null?void 0:p[1])!==m.pixelRatio[1]){e.width=m.width,e.height=m.height,e.pixelRatio=m.pixelRatio,e.sps=[g];let y=g.subarray(1,4),v="avc1.";for(let E=0;E<3;E++){let b=y[E].toString(16);b.length<2&&(b="0"+b),v+=b;}e.codec=v;}break}case 8:o=true,e.pps=[l.data];break;case 9:o=true,e.audFound=true,(d=a)!=null&&d.frame&&(this.pushAccessUnit(a,e),a=null),a||(a=this.VideoSample=this.createVideoSample(false,i.pts,i.dts));break;case 12:o=true;break;default:o=false;break}a&&o&&a.units.push(l);}),n&&a&&(this.pushAccessUnit(a,e),this.VideoSample=null);}getNALuType(e,t){return e[t]&31}readSliceType(e){let t=new $n(e);return t.readUByte(),t.readUEG(),t.readUEG()}skipScalingList(e,t){let i=8,n=8,s;for(let a=0;a<e;a++)n!==0&&(s=t.readEG(),n=(i+s+256)%256),i=n===0?i:n;}readSPS(e){let t=new $n(e),i=0,n=0,s=0,a=0,o,c,l,u=t.readUByte.bind(t),d=t.readBits.bind(t),h=t.readUEG.bind(t),f=t.readBoolean.bind(t),p=t.skipBits.bind(t),g=t.skipEG.bind(t),m=t.skipUEG.bind(t),y=this.skipScalingList.bind(this);u();let v=u();if(d(5),p(3),u(),m(),v===100||v===110||v===122||v===244||v===44||v===83||v===86||v===118||v===128){let w=h();if(w===3&&p(1),m(),m(),p(1),f())for(c=w!==3?8:12,l=0;l<c;l++)f()&&(l<6?y(16,t):y(64,t));}m();let E=h();if(E===0)h();else if(E===1)for(p(1),g(),g(),o=h(),l=0;l<o;l++)g();m(),p(1);let b=h(),S=h(),I=d(1);I===0&&p(1),p(1),f()&&(i=h(),n=h(),s=h(),a=h());let T=[1,1];if(f()&&f())switch(u()){case 1:T=[1,1];break;case 2:T=[12,11];break;case 3:T=[10,11];break;case 4:T=[16,11];break;case 5:T=[40,33];break;case 6:T=[24,11];break;case 7:T=[20,11];break;case 8:T=[32,11];break;case 9:T=[80,33];break;case 10:T=[18,11];break;case 11:T=[15,11];break;case 12:T=[64,33];break;case 13:T=[160,99];break;case 14:T=[4,3];break;case 15:T=[3,2];break;case 16:T=[2,1];break;case 255:{T=[u()<<8|u(),u()<<8|u()];break}}return {width:Math.ceil((b+1)*16-i*2-n*2),height:(2-I)*(S+1)*16-(I?2:4)*(s+a),pixelRatio:T}}},wf=class extends Rc{constructor(...e){super(...e),this.initVPS=null;}parsePES(e,t,i,n){let s=this.parseNALu(e,i.data,n),a=this.VideoSample,o,c=false;i.data=null,a&&s.length&&!e.audFound&&(this.pushAccessUnit(a,e),a=this.VideoSample=this.createVideoSample(false,i.pts,i.dts)),s.forEach(l=>{var u,d;switch(l.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:a||(a=this.VideoSample=this.createVideoSample(false,i.pts,i.dts)),a.frame=true,o=true;break;case 16:case 17:case 18:case 21:if(o=true,c){var h;(h=a)!=null&&h.frame&&!a.key&&(this.pushAccessUnit(a,e),a=this.VideoSample=null);}a||(a=this.VideoSample=this.createVideoSample(true,i.pts,i.dts)),a.key=true,a.frame=true;break;case 19:case 20:o=true,(u=a)!=null&&u.frame&&!a.key&&(this.pushAccessUnit(a,e),a=this.VideoSample=null),a||(a=this.VideoSample=this.createVideoSample(true,i.pts,i.dts)),a.key=true,a.frame=true;break;case 39:o=true,Ep(l.data,2,i.pts,t.samples);break;case 32:o=true,e.vps||(typeof e.params!="object"&&(e.params={}),e.params=Je(e.params,this.readVPS(l.data)),this.initVPS=l.data),e.vps=[l.data];break;case 33:if(o=true,c=true,e.vps!==void 0&&e.vps[0]!==this.initVPS&&e.sps!==void 0&&!this.matchSPS(e.sps[0],l.data)&&(this.initVPS=e.vps[0],e.sps=e.pps=void 0),!e.sps){let f=this.readSPS(l.data);e.width=f.width,e.height=f.height,e.pixelRatio=f.pixelRatio,e.codec=f.codecString,e.sps=[],typeof e.params!="object"&&(e.params={});for(let p in f.params)e.params[p]=f.params[p];}this.pushParameterSet(e.sps,l.data,e.vps),a||(a=this.VideoSample=this.createVideoSample(true,i.pts,i.dts)),a.key=true;break;case 34:if(o=true,typeof e.params=="object"){if(!e.pps){e.pps=[];let f=this.readPPS(l.data);for(let p in f)e.params[p]=f[p];}this.pushParameterSet(e.pps,l.data,e.vps);}break;case 35:o=true,e.audFound=true,(d=a)!=null&&d.frame&&(this.pushAccessUnit(a,e),a=null),a||(a=this.VideoSample=this.createVideoSample(false,i.pts,i.dts));break;default:o=false;break}a&&o&&a.units.push(l);}),n&&a&&(this.pushAccessUnit(a,e),this.VideoSample=null);}pushParameterSet(e,t,i){(i&&i[0]===this.initVPS||!i&&!e.length)&&e.push(t);}getNALuType(e,t){return (e[t]&126)>>>1}ebsp2rbsp(e){let t=new Uint8Array(e.byteLength),i=0;for(let n=0;n<e.byteLength;n++)n>=2&&e[n]===3&&e[n-1]===0&&e[n-2]===0||(t[i]=e[n],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 $n(e);t.readUByte(),t.readUByte(),t.readBits(4),t.skipBits(2),t.readBits(6);let i=t.readBits(3),n=t.readBoolean();return {numTemporalLayers:i+1,temporalIdNested:n}}readSPS(e){let t=new $n(this.ebsp2rbsp(e));t.readUByte(),t.readUByte(),t.readBits(4);let i=t.readBits(3);t.readBoolean();let n=t.readBits(2),s=t.readBoolean(),a=t.readBits(5),o=t.readUByte(),c=t.readUByte(),l=t.readUByte(),u=t.readUByte(),d=t.readUByte(),h=t.readUByte(),f=t.readUByte(),p=t.readUByte(),g=t.readUByte(),m=t.readUByte(),y=t.readUByte(),v=[],E=[];for(let ie=0;ie<i;ie++)v.push(t.readBoolean()),E.push(t.readBoolean());if(i>0)for(let ie=i;ie<8;ie++)t.readBits(2);for(let ie=0;ie<i;ie++)v[ie]&&(t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte()),E[ie]&&t.readUByte();t.readUEG();let b=t.readUEG();b==3&&t.skipBits(1);let S=t.readUEG(),I=t.readUEG(),T=t.readBoolean(),w=0,A=0,_=0,k=0;T&&(w+=t.readUEG(),A+=t.readUEG(),_+=t.readUEG(),k+=t.readUEG());let L=t.readUEG(),C=t.readUEG(),N=t.readUEG(),B=t.readBoolean();for(let ie=B?0:i;ie<=i;ie++)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 me=0;me<4;me++)for(let fe=0;fe<(me===3?2:6);fe++)if(!t.readBoolean())t.readUEG();else {let he=Math.min(64,1<<4+(me<<1));me>1&&t.readEG();for(let ye=0;ye<he;ye++)t.readEG();}t.readBoolean(),t.readBoolean(),t.readBoolean()&&(t.readUByte(),t.skipUEG(),t.skipUEG(),t.readBoolean());let M=t.readUEG(),H=0;for(let ie=0;ie<M;ie++){let me=false;if(ie!==0&&(me=t.readBoolean()),me){ie===M&&t.readUEG(),t.readBoolean(),t.readUEG();let fe=0;for(let ee=0;ee<=H;ee++){let he=t.readBoolean(),ye=false;he||(ye=t.readBoolean()),(he||ye)&&fe++;}H=fe;}else {let fe=t.readUEG(),ee=t.readUEG();H=fe+ee;for(let he=0;he<fe;he++)t.readUEG(),t.readBoolean();for(let he=0;he<ee;he++)t.readUEG(),t.readBoolean();}}if(t.readBoolean()){let ie=t.readUEG();for(let me=0;me<ie;me++){for(let fe=0;fe<N+4;fe++)t.readBits(1);t.readBits(1);}}let R=0,$=1,Q=1,j=true,se=1,q=0;t.readBoolean(),t.readBoolean();let _e=false;if(t.readBoolean()){if(t.readBoolean()){let $e=t.readUByte(),z=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],ce=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1];$e>0&&$e<16?($=z[$e-1],Q=ce[$e-1]):$e===255&&($=t.readBits(16),Q=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(),_e=t.readBoolean(),_e&&(t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG()),t.readBoolean()&&(se=t.readBits(32),q=t.readBits(32),t.readBoolean()&&t.readUEG(),t.readBoolean())){let ce=t.readBoolean(),We=t.readBoolean(),lt=false;(ce||We)&&(lt=t.readBoolean(),lt&&(t.readUByte(),t.readBits(5),t.readBoolean(),t.readBits(5)),t.readBits(4),t.readBits(4),lt&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5));for(let K=0;K<=i;K++){j=t.readBoolean();let ze=j||t.readBoolean(),pt=false;ze?t.readEG():pt=t.readBoolean();let Y=pt?1:t.readUEG()+1;if(ce)for(let X=0;X<Y;X++)t.readUEG(),t.readUEG(),lt&&(t.readUEG(),t.readUEG()),t.skipBits(1);if(We)for(let X=0;X<Y;X++)t.readUEG(),t.readUEG(),lt&&(t.readUEG(),t.readUEG()),t.skipBits(1);}}t.readBoolean()&&(t.readBoolean(),t.readBoolean(),t.readBoolean(),R=t.readUEG());}let De=S,Pe=I;if(T){let ie=1,me=1;b===1?ie=me=2:b==2&&(ie=2),De=S-ie*A-ie*w,Pe=I-me*k-me*_;}let re=n?["A","B","C"][n]:"",Oe=o<<24|c<<16|l<<8|u,Ne=0;for(let ie=0;ie<32;ie++)Ne=(Ne|(Oe>>ie&1)<<31-ie)>>>0;let Ue=Ne.toString(16);return a===1&&Ue==="2"&&(Ue="6"),{codecString:`hvc1.${re}${a}.${Ue}.${s?"H":"L"}${y}.B0`,params:{general_tier_flag:s,general_profile_idc:a,general_profile_space:n,general_profile_compatibility_flags:[o,c,l,u],general_constraint_indicator_flags:[d,h,f,p,g,m],general_level_idc:y,bit_depth:L+8,bit_depth_luma_minus8:L,bit_depth_chroma_minus8:C,min_spatial_segmentation_idc:R,chroma_format_idc:b,frame_rate:{fixed:j,fps:q/se}},width:De,height:Pe,pixelRatio:[$,Q]}}readPPS(e){let t=new $n(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 n=t.readBoolean(),s=t.readBoolean(),a=1;return s&&n?a=0:s?a=3:n&&(a=2),{parallelismType:a}}matchSPS(e,t){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,t).substr(3)}},Ct=188,Af=class r{constructor(e,t,i,n){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=false,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.typeSupported=i,this.logger=n,this.videoParser=null;}static probe(e,t){let i=r.syncOffset(e);return i>0&&t.warn(`MPEG2-TS detected but first sync word found @ offset ${i}`),i!==-1}static syncOffset(e){let t=e.length,i=Math.min(Ct*5,t-Ct)+1,n=0;for(;n<i;){let s=false,a=-1,o=0;for(let c=n;c<t;c+=Ct)if(e[c]===71&&(t-c===Ct||e[c+Ct]===71)){if(o++,a===-1&&(a=c,a!==0&&(i=Math.min(a+Ct*99,e.length-Ct)+1)),s||(s=kf(e,c)===0),s&&o>1&&(a===0&&o>2||c+Ct>i))return a}else {if(o)return -1;break}n++;}return -1}static createTrack(e,t){return {container:e==="video"||e==="audio"?"video/mp2t":void 0,type:e,id:ob[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:e==="audio"?t:void 0}}resetInitSegment(e,t,i,n){this.pmtParsed=false,this._pmtId=-1,this._videoTrack=r.createTrack("video"),this._videoTrack.duration=n,this._audioTrack=r.createTrack("audio",n),this._id3Track=r.createTrack("id3"),this._txtTrack=r.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=t,this.videoCodec=i;}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(e,t,i=false,n=false){i||(this.sampleAes=null);let s,a=this._videoTrack,o=this._audioTrack,c=this._id3Track,l=this._txtTrack,u=a.pid,d=a.pesData,h=o.pid,f=c.pid,p=o.pesData,g=c.pesData,m=null,y=this.pmtParsed,v=this._pmtId,E=e.length;if(this.remainderData&&(e=Tr(this.remainderData,e),E=e.length,this.remainderData=null),E<Ct&&!n)return this.remainderData=e,{audioTrack:o,videoTrack:a,id3Track:c,textTrack:l};let b=Math.max(0,r.syncOffset(e));E-=(E-b)%Ct,E<e.byteLength&&!n&&(this.remainderData=new Uint8Array(e.buffer,E,e.buffer.byteLength-E));let S=0;for(let T=b;T<E;T+=Ct)if(e[T]===71){let w=!!(e[T+1]&64),A=kf(e,T),_=(e[T+3]&48)>>4,k;if(_>1){if(k=T+5+e[T+4],k===T+Ct)continue}else k=T+4;switch(A){case u:w&&(d&&(s=$s(d,this.logger))&&(this.readyVideoParser(a.segmentCodec),this.videoParser!==null&&this.videoParser.parsePES(a,l,s,false)),d={data:[],size:0}),d&&(d.data.push(e.subarray(k,T+Ct)),d.size+=T+Ct-k);break;case h:if(w){if(p&&(s=$s(p,this.logger)))switch(o.segmentCodec){case "aac":this.parseAACPES(o,s);break;case "mp3":this.parseMPEGPES(o,s);break;case "ac3":this.parseAC3PES(o,s);break}p={data:[],size:0};}p&&(p.data.push(e.subarray(k,T+Ct)),p.size+=T+Ct-k);break;case f:w&&(g&&(s=$s(g,this.logger))&&this.parseID3PES(c,s),g={data:[],size:0}),g&&(g.data.push(e.subarray(k,T+Ct)),g.size+=T+Ct-k);break;case 0:w&&(k+=e[k]+1),v=this._pmtId=PD(e,k);break;case v:{w&&(k+=e[k]+1);let L=MD(e,k,this.typeSupported,i,this.observer,this.logger);u=L.videoPid,u>0&&(a.pid=u,a.segmentCodec=L.segmentVideoCodec),h=L.audioPid,h>0&&(o.pid=h,o.segmentCodec=L.segmentAudioCodec),f=L.id3Pid,f>0&&(c.pid=f),m!==null&&!y&&(this.logger.warn(`MPEG-TS PMT found at ${T} after unknown PID '${m}'. Backtracking to sync byte @${b} to parse all TS packets.`),m=null,T=b-188),y=this.pmtParsed=true;break}case 17:case 8191:break;default:m=A;break}}else S++;S>0&&If(this.observer,new Error(`Found ${S} TS packet/s that do not start with 0x47`),void 0,this.logger),a.pesData=d,o.pesData=p,c.pesData=g;let I={audioTrack:o,videoTrack:a,id3Track:c,textTrack:l};return n&&this.extractRemainingSamples(I),I}flush(){let{remainderData:e}=this;this.remainderData=null;let t;return e?t=this.demux(e,-1,false,true):t={videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(t),this.sampleAes?this.decrypt(t,this.sampleAes):t}extractRemainingSamples(e){let{audioTrack:t,videoTrack:i,id3Track:n,textTrack:s}=e,a=i.pesData,o=t.pesData,c=n.pesData,l;if(a&&(l=$s(a,this.logger))?(this.readyVideoParser(i.segmentCodec),this.videoParser!==null&&(this.videoParser.parsePES(i,s,l,true),i.pesData=null)):i.pesData=a,o&&(l=$s(o,this.logger))){switch(t.segmentCodec){case "aac":this.parseAACPES(t,l);break;case "mp3":this.parseMPEGPES(t,l);break;case "ac3":this.parseAC3PES(t,l);break}t.pesData=null;}else o!=null&&o.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),t.pesData=o;c&&(l=$s(c,this.logger))?(this.parseID3PES(n,l),n.pesData=null):n.pesData=c;}demuxSampleAes(e,t,i){let n=this.demux(e,i,true,!this.config.progressive),s=this.sampleAes=new _f(this.observer,this.config,t);return this.decrypt(n,s)}readyVideoParser(e){this.videoParser===null&&(e==="avc"?this.videoParser=new Tf:e==="hevc"&&(this.videoParser=new wf));}decrypt(e,t){return new Promise(i=>{let{audioTrack:n,videoTrack:s}=e;n.samples&&n.segmentCodec==="aac"?t.decryptAacSamples(n.samples,0,()=>{s.samples?t.decryptAvcSamples(s.samples,0,0,()=>{i(e);}):i(e);}):s.samples&&t.decryptAvcSamples(s.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=0,n=this.aacOverFlow,s=t.data;if(n){this.aacOverFlow=null;let d=n.missing,h=n.sample.unit.byteLength;if(d===-1)s=Tr(n.sample.unit,s);else {let f=h-d;n.sample.unit.set(s.subarray(0,d),f),e.samples.push(n.sample),i=n.missing;}}let a,o;for(a=i,o=s.length;a<o-1&&!Lc(s,a);a++);if(a!==i){let d,h=a<o-1;if(h?d=`AAC PES did not start with ADTS header,offset:${a}`:d="No ADTS header found in AAC PES",If(this.observer,new Error(d),h,this.logger),!h)return}zb(e,this.observer,s,a,this.audioCodec);let c;if(t.pts!==void 0)c=t.pts;else if(n){let d=Gb(e.samplerate);c=n.sample.pts+d;}else {this.logger.warn("[tsdemuxer]: AAC PES unknown PTS");return}let l=0,u;for(;a<o;)if(u=Hb(e,s,a,c,l),a+=u.length,u.missing){this.aacOverFlow=u;break}else for(l++;a<o-1&&!Lc(s,a);a++);}parseMPEGPES(e,t){let i=t.data,n=i.length,s=0,a=0,o=t.pts;if(o===void 0){this.logger.warn("[tsdemuxer]: MPEG PES unknown PTS");return}for(;a<n;)if(qb(i,a)){let c=jb(e,i,a,o,s);if(c)a+=c.length,s++;else break}else a++;}parseAC3PES(e,t){{let i=t.data,n=t.pts;if(n===void 0){this.logger.warn("[tsdemuxer]: AC3 PES unknown PTS");return}let s=i.length,a=0,o=0,c;for(;o<s&&(c=Xb(e,i,o,n,a++))>0;)o+=c;}}parseID3PES(e,t){if(t.pts===void 0){this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");return}let i=Je({},t,{type:this._videoTrack?fr.emsg:fr.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(i);}};function kf(r,e){return ((r[e+1]&31)<<8)+r[e+2]}function PD(r,e){return (r[e+10]&31)<<8|r[e+11]}function MD(r,e,t,i,n,s){let a={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},o=(r[e+1]&15)<<8|r[e+2],c=e+3+o-4,l=(r[e+10]&15)<<8|r[e+11];for(e+=12+l;e<c;){let u=kf(r,e),d=(r[e+3]&15)<<8|r[e+4];switch(r[e]){case 207:if(!i){Uh("ADTS AAC",s);break}case 15:a.audioPid===-1&&(a.audioPid=u);break;case 21:a.id3Pid===-1&&(a.id3Pid=u);break;case 219:if(!i){Uh("H.264",s);break}case 27:a.videoPid===-1&&(a.videoPid=u);break;case 3:case 4:!t.mpeg&&!t.mp3?s.log("MPEG audio found, not supported in this browser"):a.audioPid===-1&&(a.audioPid=u,a.segmentAudioCodec="mp3");break;case 193:if(!i){Uh("AC-3",s);break}case 129:t.ac3?a.audioPid===-1&&(a.audioPid=u,a.segmentAudioCodec="ac3"):s.log("AC-3 audio found, not supported in this browser");break;case 6:if(a.audioPid===-1&&d>0){let h=e+5,f=d;for(;f>2;){r[h]===106&&(t.ac3!==true?s.log("AC-3 audio found, not supported in this browser for now"):(a.audioPid=u,a.segmentAudioCodec="ac3"));let g=r[h+1]+2;h+=g,f-=g;}}break;case 194:case 135:return If(n,new Error("Unsupported EC-3 in M2TS found"),void 0,s),a;case 36:a.videoPid===-1&&(a.videoPid=u,a.segmentVideoCodec="hevc",s.log("HEVC in M2TS found"));break}e+=d+5;}return a}function If(r,e,t,i){i.warn(`parsing error: ${e.message}`),r.emit(x.ERROR,x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:false,levelRetry:t,error:e,reason:e.message});}function Uh(r,e){e.log(`${r} with AES-128-CBC encryption found in unencrypted stream`);}function $s(r,e){let t=0,i,n,s,a,o,c=r.data;if(!r||r.size===0)return null;for(;c[0].length<19&&c.length>1;)c[0]=Tr(c[0],c[1]),c.splice(1,1);if(i=c[0],(i[0]<<16)+(i[1]<<8)+i[2]===1){if(n=(i[4]<<8)+i[5],n&&n>r.size-6)return null;let u=i[7];u&192&&(a=(i[9]&14)*536870912+(i[10]&255)*4194304+(i[11]&254)*16384+(i[12]&255)*128+(i[13]&254)/2,u&64?(o=(i[14]&14)*536870912+(i[15]&255)*4194304+(i[16]&254)*16384+(i[17]&255)*128+(i[18]&254)/2,a-o>60*9e4&&(e.warn(`${Math.round((a-o)/9e4)}s delta between PTS and DTS, align them`),a=o)):o=a),s=i[8];let d=s+9;if(r.size<=d)return null;r.size-=d;let h=new Uint8Array(r.size);for(let f=0,p=c.length;f<p;f++){i=c[f];let g=i.byteLength;if(d)if(d>g){d-=g;continue}else i=i.subarray(d),g-=d,d=0;h.set(i,t),t+=g;}return n&&(n-=s+3),{data:h,pts:a,dts:o,len:n}}return null}var Lf=class{static getSilentFrame(e,t){switch(e){case "mp4a.40.2":if(t===1)return new Uint8Array([0,200,0,128,35,128]);if(t===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(t===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(t===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(t===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(t===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(t===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(t===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}}},rn=Math.pow(2,32)-1,It=class r{static init(){r.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:[]};let e;for(e in r.types)r.types.hasOwnProperty(e)&&(r.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);r.HDLR_TYPES={video:t,audio:i};let n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),s=new Uint8Array([0,0,0,0,0,0,0,0]);r.STTS=r.STSC=r.STCO=s,r.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),r.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),r.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),r.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),c=new Uint8Array([0,0,0,1]);r.FTYP=r.box(r.types.ftyp,a,c,a,o),r.DINF=r.box(r.types.dinf,r.box(r.types.dref,n));}static box(e,...t){let i=8,n=t.length,s=n;for(;n--;)i+=t[n].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=i&255,a.set(e,4),n=0,i=8;n<s;n++)a.set(t[n],i),i+=t[n].byteLength;return a}static hdlr(e){return r.box(r.types.hdlr,r.HDLR_TYPES[e])}static mdat(e){return r.box(r.types.mdat,e)}static mdhd(e,t){t*=e;let i=Math.floor(t/(rn+1)),n=Math.floor(t%(rn+1));return r.box(r.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,n>>24,n>>16&255,n>>8&255,n&255,85,196,0,0]))}static mdia(e){return r.box(r.types.mdia,r.mdhd(e.timescale||0,e.duration||0),r.hdlr(e.type),r.minf(e))}static mfhd(e){return r.box(r.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,e&255]))}static minf(e){return e.type==="audio"?r.box(r.types.minf,r.box(r.types.smhd,r.SMHD),r.DINF,r.stbl(e)):r.box(r.types.minf,r.box(r.types.vmhd,r.VMHD),r.DINF,r.stbl(e))}static moof(e,t,i){return r.box(r.types.moof,r.mfhd(e),r.traf(i,t))}static moov(e){let t=e.length,i=[];for(;t--;)i[t]=r.trak(e[t]);return r.box.apply(null,[r.types.moov,r.mvhd(e[0].timescale||0,e[0].duration||0)].concat(i).concat(r.mvex(e)))}static mvex(e){let t=e.length,i=[];for(;t--;)i[t]=r.trex(e[t]);return r.box.apply(null,[r.types.mvex,...i])}static mvhd(e,t){t*=e;let i=Math.floor(t/(rn+1)),n=Math.floor(t%(rn+1)),s=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,e&255,i>>24,i>>16&255,i>>8&255,i&255,n>>24,n>>16&255,n>>8&255,n&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return r.box(r.types.mvhd,s)}static sdtp(e){let t=e.samples||[],i=new Uint8Array(4+t.length),n,s;for(n=0;n<t.length;n++)s=t[n].flags,i[n+4]=s.dependsOn<<4|s.isDependedOn<<2|s.hasRedundancy;return r.box(r.types.sdtp,i)}static stbl(e){return r.box(r.types.stbl,r.stsd(e),r.box(r.types.stts,r.STTS),r.box(r.types.stsc,r.STSC),r.box(r.types.stsz,r.STSZ),r.box(r.types.stco,r.STCO))}static avc1(e){let t=[],i=[],n,s,a;for(n=0;n<e.sps.length;n++)s=e.sps[n],a=s.byteLength,t.push(a>>>8&255),t.push(a&255),t=t.concat(Array.prototype.slice.call(s));for(n=0;n<e.pps.length;n++)s=e.pps[n],a=s.byteLength,i.push(a>>>8&255),i.push(a&255),i=i.concat(Array.prototype.slice.call(s));let o=r.box(r.types.avcC,new Uint8Array([1,t[3],t[4],t[5],255,224|e.sps.length].concat(t).concat([e.pps.length]).concat(i))),c=e.width,l=e.height,u=e.pixelRatio[0],d=e.pixelRatio[1];return r.box(r.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,c>>8&255,c&255,l>>8&255,l&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,r.box(r.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),r.box(r.types.pasp,new Uint8Array([u>>24,u>>16&255,u>>8&255,u&255,d>>24,d>>16&255,d>>8&255,d&255])))}static esds(e){let t=e.config;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,...t,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,t&255,0,0])}static mp4a(e){return r.box(r.types.mp4a,r.audioStsd(e),r.box(r.types.esds,r.esds(e)))}static mp3(e){return r.box(r.types[".mp3"],r.audioStsd(e))}static ac3(e){return r.box(r.types["ac-3"],r.audioStsd(e),r.box(r.types.dac3,e.config))}static stsd(e){let{segmentCodec:t}=e;if(e.type==="audio"){if(t==="aac")return r.box(r.types.stsd,r.STSD,r.mp4a(e));if(t==="ac3"&&e.config)return r.box(r.types.stsd,r.STSD,r.ac3(e));if(t==="mp3"&&e.codec==="mp3")return r.box(r.types.stsd,r.STSD,r.mp3(e))}else if(e.pps&&e.sps){if(t==="avc")return r.box(r.types.stsd,r.STSD,r.avc1(e));if(t==="hevc"&&e.vps)return r.box(r.types.stsd,r.STSD,r.hvc1(e))}else throw new Error("video track missing pps or sps");throw new Error(`unsupported ${e.type} segment codec (${t}/${e.codec})`)}static tkhd(e){let t=e.id,i=(e.duration||0)*(e.timescale||0),n=e.width||0,s=e.height||0,a=Math.floor(i/(rn+1)),o=Math.floor(i%(rn+1));return r.box(r.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,t&255,0,0,0,0,a>>24,a>>16&255,a>>8&255,a&255,o>>24,o>>16&255,o>>8&255,o&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,n&255,0,0,s>>8&255,s&255,0,0]))}static traf(e,t){let i=r.sdtp(e),n=e.id,s=Math.floor(t/(rn+1)),a=Math.floor(t%(rn+1));return r.box(r.types.traf,r.box(r.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,n&255])),r.box(r.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,s&255,a>>24,a>>16&255,a>>8&255,a&255])),r.trun(e,i.length+16+20+8+16+8+8),i)}static trak(e){return e.duration=e.duration||4294967295,r.box(r.types.trak,r.tkhd(e),r.mdia(e))}static trex(e){let t=e.id;return r.box(r.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,t&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(e,t){let i=e.samples||[],n=i.length,s=12+16*n,a=new Uint8Array(s),o,c,l,u,d,h;for(t+=8+s,a.set([e.type==="video"?1:0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,n&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255],0),o=0;o<n;o++)c=i[o],l=c.duration,u=c.size,d=c.flags,h=c.cts,a.set([l>>>24&255,l>>>16&255,l>>>8&255,l&255,u>>>24&255,u>>>16&255,u>>>8&255,u&255,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.paddingValue<<1|d.isNonSync,d.degradPrio&61440,d.degradPrio&15,h>>>24&255,h>>>16&255,h>>>8&255,h&255],12+16*o);return r.box(r.types.trun,a)}static initSegment(e){r.types||r.init();let t=r.moov(e);return Tr(r.FTYP,t)}static hvc1(e){let t=e.params,i=[e.vps,e.sps,e.pps],n=4,s=new Uint8Array([1,t.general_profile_space<<6|(t.general_tier_flag?32:0)|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),n-1|t.temporal_id_nested<<2|t.num_temporal_layers<<3|(t.frame_rate.fixed?64:0),i.length]),a=s.length;for(let p=0;p<i.length;p+=1){a+=3;for(let g=0;g<i[p].length;g+=1)a+=2+i[p][g].length;}let o=new Uint8Array(a);o.set(s,0),a=s.length;let c=i.length-1;for(let p=0;p<i.length;p+=1){o.set(new Uint8Array([32+p|(p===c?128:0),0,i[p].length]),a),a+=3;for(let g=0;g<i[p].length;g+=1)o.set(new Uint8Array([i[p][g].length>>8,i[p][g].length&255]),a),a+=2,o.set(i[p][g],a),a+=i[p][g].length;}let l=r.box(r.types.hvcC,o),u=e.width,d=e.height,h=e.pixelRatio[0],f=e.pixelRatio[1];return r.box(r.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,u>>8&255,u&255,d>>8&255,d&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),l,r.box(r.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),r.box(r.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,h&255,f>>24,f>>16&255,f>>8&255,f&255])))}};It.types=void 0;It.HDLR_TYPES=void 0;It.STTS=void 0;It.STSC=void 0;It.STCO=void 0;It.STSZ=void 0;It.VMHD=void 0;It.SMHD=void 0;It.STSD=void 0;It.FTYP=void 0;It.DINF=void 0;var Jb=9e4;function Cp(r,e,t=1,i=false){let n=r*e*t;return i?Math.round(n):n}function OD(r,e,t=1,i=false){return Cp(r,e,1/t,i)}function no(r,e=false){return Cp(r,1e3,1/Jb,e)}function FD(r,e=1){return Cp(r,Jb,1/e)}function ME(r){let{baseTime:e,timescale:t,trackId:i}=r;return `${e/t} (${e}/${t}) trackId: ${i}`}var ND=10*1e3,BD=1024,UD=1152,$D=1536,zs=null,$h=null;function OE(r,e,t,i){return {duration:e,size:t,cts:i,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:r?2:1,isNonSync:r?0:1}}}var Ws=class extends nr{constructor(e,t,i,n){if(super("mp4-remuxer",n),this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=false,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=false,this.isVideoContiguous=false,this.videoTrackConfig=void 0,this.observer=e,this.config=t,this.typeSupported=i,this.ISGenerated=false,zs===null){let a=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);zs=a?parseInt(a[1]):0;}if($h===null){let s=navigator.userAgent.match(/Safari\/(\d+)/i);$h=s?parseInt(s[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&&ME(t)} > ${e&&ME(e)}`),this._initPTS=this._initDTS=e;}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=false,this.isAudioContiguous=false;}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=false,this.videoTrackConfig=void 0;}getVideoStartPts(e){let t=false,i=e[0].pts,n=e.reduce((s,a)=>{let o=a.pts,c=o-s;return c<-4294967296&&(t=true,o=hr(o,i),c=o-s),c>0?s:o},i);return t&&this.debug("PTS rollover detected"),n}remux(e,t,i,n,s,a,o,c){let l,u,d,h,f,p,g=s,m=s,y=e.pid>-1,v=t.pid>-1,E=t.samples.length,b=e.samples.length>0,S=o&&E>0||E>1;if((!y||b)&&(!v||S)||this.ISGenerated||o){if(this.ISGenerated){var T,w,A,_;let N=this.videoTrackConfig;(N&&(t.width!==N.width||t.height!==N.height||((T=t.pixelRatio)==null?void 0:T[0])!==((w=N.pixelRatio)==null?void 0:w[0])||((A=t.pixelRatio)==null?void 0:A[1])!==((_=N.pixelRatio)==null?void 0:_[1]))||!N&&S||this.nextAudioTs===null&&b)&&this.resetInitSegment();}this.ISGenerated||(d=this.generateIS(e,t,s,a));let k=this.isVideoContiguous,L=-1,C;if(S&&(L=zD(t.samples),!k&&this.config.forceKeyFrameOnDiscontinuity))if(p=true,L>0){this.warn(`Dropped ${L} out of ${E} video samples due to a missing keyframe`);let N=this.getVideoStartPts(t.samples);t.samples=t.samples.slice(L),t.dropped+=L,m+=(t.samples[0].pts-N)/t.inputTimeScale,C=m;}else L===-1&&(this.warn(`No keyframe found out of ${E} video samples`),p=false);if(this.ISGenerated){if(b&&S){let N=this.getVideoStartPts(t.samples),F=(hr(e.samples[0].pts,N)-N)/t.inputTimeScale;g+=Math.max(0,F),m+=Math.max(0,-F);}if(b){if(e.samplerate||(this.warn("regenerate InitSegment as audio detected"),d=this.generateIS(e,t,s,a)),u=this.remuxAudio(e,g,this.isAudioContiguous,a,v||S||c===le.AUDIO?m:void 0),S){let N=u?u.endPTS-u.startPTS:0;t.inputTimeScale||(this.warn("regenerate InitSegment as video detected"),d=this.generateIS(e,t,s,a)),l=this.remuxVideo(t,m,k,N);}}else S&&(l=this.remuxVideo(t,m,k,0));l&&(l.firstKeyFrame=L,l.independent=L!==-1,l.firstKeyFramePTS=C);}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(f=Qb(i,s,this._initPTS,this._initDTS)),n.samples.length&&(h=eS(n,s,this._initPTS))),{audio:u,video:l,initSegment:d,independent:p,text:h,id3:f}}computeInitPts(e,t,i,n){let s=Math.round(i*t),a=hr(e,s);if(a<s+t)for(this.log(`Adjusting PTS for rollover in timeline near ${(s-a)/t} ${n}`);a<s+t;)a+=8589934592;return a-s}generateIS(e,t,i,n){let s=e.samples,a=t.samples,o=this.typeSupported,c={},l=this._initPTS,u=!l||n,d="audio/mp4",h,f,p,g=-1;if(u&&(h=f=1/0),e.config&&s.length){switch(e.timescale=e.samplerate,e.segmentCodec){case "mp3":o.mpeg?(d="audio/mpeg",e.codec=""):o.mp3&&(e.codec="mp3");break;case "ac3":e.codec="ac-3";break}c.audio={id:"audio",container:d,codec:e.codec,initSegment:e.segmentCodec==="mp3"&&o.mpeg?new Uint8Array(0):It.initSegment([e]),metadata:{channelCount:e.channelCount}},u&&(g=e.id,p=e.inputTimeScale,!l||p!==l.timescale?h=f=this.computeInitPts(s[0].pts,p,i,"audio"):u=false);}if(t.sps&&t.pps&&a.length){if(t.timescale=t.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:It.initSegment([t]),metadata:{width:t.width,height:t.height}},u)if(g=t.id,p=t.inputTimeScale,!l||p!==l.timescale){let m=this.getVideoStartPts(a),y=hr(a[0].dts,m),v=this.computeInitPts(y,p,i,"video"),E=this.computeInitPts(m,p,i,"video");f=Math.min(f,v),h=Math.min(h,E);}else u=false;this.videoTrackConfig={width:t.width,height:t.height,pixelRatio:t.pixelRatio};}if(Object.keys(c).length)return this.ISGenerated=true,u?(l&&this.warn(`Timestamps at playlist time: ${n?"":"~"}${i} ${h/p} != initPTS: ${l.baseTime/l.timescale} (${l.baseTime}/${l.timescale}) trackId: ${l.trackId}`),this.log(`Found initPTS at playlist time: ${i} offset: ${h/p} (${h}/${p}) trackId: ${g}`),this._initPTS={baseTime:h,timescale:p,trackId:g},this._initDTS={baseTime:f,timescale:p,trackId:g}):h=p=void 0,{tracks:c,initPTS:h,timescale:p,trackId:g}}remuxVideo(e,t,i,n){let s=e.inputTimeScale,a=e.samples,o=[],c=a.length,l=this._initPTS,u=l.baseTime*s/l.timescale,d=this.nextVideoTs,h=8,f=this.videoSampleDuration,p,g,m=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=false;if(!i||d===null){let R=u+t*s,$=a[0].pts-hr(a[0].dts,a[0].pts);zs&&d!==null&&Math.abs(R-$-(d+u))<15e3?i=true:d=R-$-u;}let E=d+u;for(let R=0;R<c;R++){let $=a[R];$.pts=hr($.pts,E),$.dts=hr($.dts,E),$.dts<a[R>0?R-1:R].dts&&(v=true);}v&&a.sort(function(R,$){let Q=R.dts-$.dts,j=R.pts-$.pts;return Q||j}),p=a[0].dts,g=a[a.length-1].dts;let b=g-p,S=b?Math.round(b/(c-1)):f||e.inputTimeScale/30;if(i){let R=p-E,$=R>S,Q=R<-1;if(($||Q)&&($?this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${no(R,true)} ms (${R}dts) hole between fragments detected at ${t.toFixed(3)}`):this.warn(`${(e.segmentCodec||"").toUpperCase()}: ${no(-R,true)} ms (${R}dts) overlapping between fragments detected at ${t.toFixed(3)}`),!Q||E>=a[0].pts||zs)){p=E;let j=a[0].pts-R;if($)a[0].dts=p,a[0].pts=j;else {let se=true;for(let q=0;q<a.length&&!(a[q].dts>j&&se);q++){let _e=a[q].pts;if(a[q].dts-=R,a[q].pts-=R,q<a.length-1){let ke=a[q+1].pts,De=a[q].pts,Pe=ke<=De,re=ke<=_e;se=Pe==re;}}}this.log(`Video: Initial PTS/DTS adjusted: ${no(j,true)}/${no(p,true)}, delta: ${no(R,true)} ms`);}}p=Math.max(0,p);let I=0,T=0,w=p;for(let R=0;R<c;R++){let $=a[R],Q=$.units,j=Q.length,se=0;for(let q=0;q<j;q++)se+=Q[q].data.length;T+=se,I+=j,$.length=se,$.dts<w?($.dts=w,w+=S/4|0||1):w=$.dts,m=Math.min($.pts,m),y=Math.max($.pts,y);}g=a[c-1].dts;let A=T+4*I+8,_;try{_=new Uint8Array(A);}catch(R){this.observer.emit(x.ERROR,x.ERROR,{type:de.MUX_ERROR,details:D.REMUX_ALLOC_ERROR,fatal:false,error:R,bytes:A,reason:`fail allocating video mdat ${A}`});return}let k=new DataView(_.buffer);k.setUint32(0,A),_.set(It.types.mdat,4);let L=false,C=Number.POSITIVE_INFINITY,N=Number.POSITIVE_INFINITY,B=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(let R=0;R<c;R++){let $=a[R],Q=$.units,j=0;for(let _e=0,ke=Q.length;_e<ke;_e++){let De=Q[_e],Pe=De.data,re=De.data.byteLength;k.setUint32(h,re),h+=4,_.set(Pe,h),h+=re,j+=4+re;}let se;if(R<c-1)f=a[R+1].dts-$.dts,se=a[R+1].pts-$.pts;else {let _e=this.config,ke=R>0?$.dts-a[R-1].dts:S;if(se=R>0?$.pts-a[R-1].pts:S,_e.stretchShortVideoTrack&&this.nextAudioTs!==null){let De=Math.floor(_e.maxBufferHole*s),Pe=(n?m+n*s:this.nextAudioTs+u)-$.pts;Pe>De?(f=Pe-ke,f<0?f=ke:L=true,this.log(`It is approximately ${Pe/90} ms to the next segment; using duration ${f/90} ms for the last video frame.`)):f=ke;}else f=ke;}let q=Math.round($.pts-$.dts);C=Math.min(C,f),B=Math.max(B,f),N=Math.min(N,se),F=Math.max(F,se),o.push(OE($.key,f,j,q));}if(o.length){if(zs){if(zs<70){let R=o[0].flags;R.dependsOn=2,R.isNonSync=0;}}else if($h&&F-N<B-C&&S/B<.025&&o[0].cts===0){this.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let R=p;for(let $=0,Q=o.length;$<Q;$++){let j=R+o[$].duration,se=R+o[$].cts;if($<Q-1){let q=j+o[$+1].cts;o[$].duration=q-se;}else o[$].duration=$?o[$-1].duration:S;o[$].cts=0,R=j;}}}f=L||!f?S:f;let G=g+f;this.nextVideoTs=d=G-u,this.videoSampleDuration=f,this.isVideoContiguous=true;let Z={data1:It.moof(e.sequenceNumber++,p,Je(e,{samples:o})),data2:_,startPTS:(m-u)/s,endPTS:(y+f-u)/s,startDTS:(p-u)/s,endDTS:d/s,type:"video",hasAudio:false,hasVideo:true,nb:o.length,dropped:e.dropped};return e.samples=[],e.dropped=0,Z}getSamplesPerFrame(e){switch(e.segmentCodec){case "mp3":return UD;case "ac3":return $D;default:return BD}}remuxAudio(e,t,i,n,s){let a=e.inputTimeScale,o=e.samplerate?e.samplerate:a,c=a/o,l=this.getSamplesPerFrame(e),u=l*c,d=this._initPTS,h=e.segmentCodec==="mp3"&&this.typeSupported.mpeg,f=[],p=s!==void 0,g=e.samples,m=h?0:8,y=this.nextAudioTs||-1,v=d.baseTime*a/d.timescale,E=v+t*a;if(this.isAudioContiguous=i=i||g.length&&y>0&&(n&&Math.abs(E-(y+v))<9e3||Math.abs(hr(g[0].pts,E)-(y+v))<20*u),g.forEach(function(F){F.pts=hr(F.pts,E);}),!i||y<0){let F=g.length;if(g=g.filter(G=>G.pts>=0),F!==g.length&&this.warn(`Removed ${g.length-F} of ${F} samples (initPTS ${v} / ${a})`),!g.length)return;s===0?y=0:n&&!p?y=Math.max(0,E-v):y=g[0].pts-v;}if(e.segmentCodec==="aac"){let F=this.config.maxAudioFramesDrift;for(let G=0,M=y+v;G<g.length;G++){let H=g[G],Z=H.pts,R=Z-M,$=Math.abs(1e3*R/a);if(R<=-F*u&&p)G===0&&(this.warn(`Audio frame @ ${(Z/a).toFixed(3)}s overlaps marker by ${Math.round(1e3*R/a)} ms.`),this.nextAudioTs=y=Z-v,M=Z);else if(R>=F*u&&$<ND&&p){let Q=Math.round(R/u);for(M=Z-Q*u;M<0&&Q&&u;)Q--,M+=u;G===0&&(this.nextAudioTs=y=M-v),this.warn(`Injecting ${Q} audio frames @ ${((M-v)/a).toFixed(3)}s due to ${Math.round(1e3*R/a)} ms gap.`);for(let j=0;j<Q;j++){let se=Lf.getSilentFrame(e.parsedCodec||e.manifestCodec||e.codec,e.channelCount);se||(this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."),se=H.unit.subarray()),g.splice(G,0,{unit:se,pts:M}),M+=u,G++;}}H.pts=M,M+=u;}}let b=null,S=null,I,T=0,w=g.length;for(;w--;)T+=g[w].unit.byteLength;for(let F=0,G=g.length;F<G;F++){let M=g[F],H=M.unit,Z=M.pts;if(S!==null){let $=f[F-1];$.duration=Math.round((Z-S)/c);}else if(i&&e.segmentCodec==="aac"&&(Z=y+v),b=Z,T>0){T+=m;try{I=new Uint8Array(T);}catch($){this.observer.emit(x.ERROR,x.ERROR,{type:de.MUX_ERROR,details:D.REMUX_ALLOC_ERROR,fatal:false,error:$,bytes:T,reason:`fail allocating audio mdat ${T}`});return}h||(new DataView(I.buffer).setUint32(0,T),I.set(It.types.mdat,4));}else return;I.set(H,m);let R=H.byteLength;m+=R,f.push(OE(true,l,R,0)),S=Z;}let A=f.length;if(!A)return;let _=f[f.length-1];y=S-v,this.nextAudioTs=y+c*_.duration;let k=h?new Uint8Array(0):It.moof(e.sequenceNumber++,b/c,Je({},e,{samples:f}));e.samples=[];let L=(b-v)/a,C=this.nextAudioTs/a,B={data1:k,data2:I,startPTS:L,endPTS:C,startDTS:L,endDTS:C,type:"audio",hasAudio:true,hasVideo:false,nb:A};return this.isAudioContiguous=true,B}};function hr(r,e){let t;if(e===null)return r;for(e<r?t=-8589934592:t=8589934592;Math.abs(r-e)>4294967296;)r+=t;return r}function zD(r){for(let e=0;e<r.length;e++)if(r[e].key)return e;return -1}function Qb(r,e,t,i){let n=r.samples.length;if(!n)return;let s=r.inputTimeScale;for(let o=0;o<n;o++){let c=r.samples[o];c.pts=hr(c.pts-t.baseTime*s/t.timescale,e*s)/s,c.dts=hr(c.dts-i.baseTime*s/i.timescale,e*s)/s;}let a=r.samples;return r.samples=[],{samples:a}}function eS(r,e,t){let i=r.samples.length;if(!i)return;let n=r.inputTimeScale;for(let a=0;a<i;a++){let o=r.samples[a];o.pts=hr(o.pts-t.baseTime*n/t.timescale,e*n)/n;}r.samples.sort((a,o)=>a.pts-o.pts);let s=r.samples;return r.samples=[],{samples:s}}var Rf=class extends nr{constructor(e,t,i,n){super("passthrough-remuxer",n),this.emitInitSegment=false,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=false;}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=false,this.lastEndTime=null;}resetInitSegment(e,t,i,n){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(e,n),this.emitInitSegment=true;}generateInitSegment(e,t){let{audioCodec:i,videoCodec:n}=this;if(!(e!=null&&e.byteLength)){this.initTracks=void 0,this.initData=void 0;return}let{audio:s,video:a}=this.initData=ub(e);if(t)VR(e,t);else {let c=s||a;c!=null&&c.encrypted&&this.warn(`Init segment with encrypted track with has no key ("${c.codec}")!`);}s&&(i=FE(s,et.AUDIO,this)),a&&(n=FE(a,et.VIDEO,this));let o={};s&&a?o.audiovideo={container:"video/mp4",codec:i+","+n,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:s?o.audio={container:"audio/mp4",codec:i,encrypted:s.encrypted,initSegment:e,id:"audio"}:a?o.video={container:"video/mp4",codec:n,supplemental:a.supplemental,encrypted:a.encrypted,initSegment:e,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=o;}remux(e,t,i,n,s,a){var o,c;let{initPTS:l,lastEndTime:u}=this,d={audio:void 0,video:void 0,text:n,id3:i,initSegment:void 0};te(u)||(u=this.lastEndTime=s||0);let h=t.samples;if(!h.length)return d;let f={initPTS:void 0,timescale:void 0,trackId:void 0},p=this.initData;if((o=p)!=null&&o.length||(this.generateInitSegment(h),p=this.initData),!((c=p)!=null&&c.length))return this.warn("Failed to generate initSegment."),d;this.emitInitSegment&&(f.tracks=this.initTracks,this.emitInitSegment=false);let g=WR(h,p,this),m=p.audio?g[p.audio.id]:null,y=p.video?g[p.video.id]:null,v=ec(y,1/0),E=ec(m,1/0),b=ec(y,0,true),S=ec(m,0,true),I=s,T=0,w=m&&(!y||!l&&E<v||l&&l.trackId===p.audio.id),A=w?m:y;if(A){let M=A.timescale,H=A.start-s*M,Z=w?p.audio.id:p.video.id;I=A.start/M,T=w?S-E:b-v,(a||!l)&&(GD(l,I,s,T)||M!==l.timescale)&&(l&&this.warn(`Timestamps at playlist time: ${a?"":"~"}${s} ${H/M} != initPTS: ${l.baseTime/l.timescale} (${l.baseTime}/${l.timescale}) trackId: ${l.trackId}`),this.log(`Found initPTS at playlist time: ${s} offset: ${I-s} (${H}/${M}) trackId: ${Z}`),l=null,f.initPTS=H,f.timescale=M,f.trackId=Z);}else this.warn(`No audio or video samples found for initPTS at playlist time: ${s}`);l?(f.initPTS=l.baseTime,f.timescale=l.timescale,f.trackId=l.trackId):((!f.timescale||f.trackId===void 0||f.initPTS===void 0)&&(this.warn("Could not set initPTS"),f.initPTS=I,f.timescale=1,f.trackId=-1),this.initPTS=l={baseTime:f.initPTS,timescale:f.timescale,trackId:f.trackId});let _=I-l.baseTime/l.timescale,k=_+T;T>0?this.lastEndTime=k:(this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let L=!!p.audio,C=!!p.video,N="";L&&(N+="audio"),C&&(N+="video");let B=(p.audio?p.audio.encrypted:false)||(p.video?p.video.encrypted:false),F={data1:h,startPTS:_,startDTS:_,endPTS:k,endDTS:k,type:N,hasAudio:L,hasVideo:C,nb:1,dropped:0,encrypted:B};d.audio=L&&!C?F:void 0,d.video=C?F:void 0;let G=y?.sampleCount;if(G){let M=y.keyFrameIndex,H=M!==-1;F.nb=G,F.dropped=M===0||this.isVideoContiguous?0:H?M:G,F.independent=H,F.firstKeyFrame=M,H&&y.keyFrameStart&&(F.firstKeyFramePTS=(y.keyFrameStart-l.baseTime)/l.timescale),this.isVideoContiguous||(d.independent=H),this.isVideoContiguous||(this.isVideoContiguous=H),F.dropped&&this.warn(`fmp4 does not start with IDR: firstIDR ${M}/${G} dropped: ${F.dropped} start: ${F.firstKeyFramePTS||"NA"}`);}return d.initSegment=f,d.id3=Qb(i,s,l,l),n.samples.length&&(d.text=eS(n,s,l)),d}};function ec(r,e,t=false){return r?.start!==void 0?(r.start+(t?r.duration:0))/r.timescale:e}function GD(r,e,t,i){if(r===null)return true;let n=Math.max(i,1),s=e-r.baseTime/r.timescale;return Math.abs(s-t)>n}function FE(r,e,t){let i=r.codec;return i&&i.length>4?i:e===et.AUDIO?i==="ec-3"||i==="ac-3"||i==="alac"?i:i==="fLaC"||i==="Opus"?yc(i,false):(t.warn(`Unhandled audio codec "${i}" in mp4 MAP`),i||"mp4a"):(t.warn(`Unhandled video codec "${i}" in mp4 MAP`),i||"avc1")}var Ci;try{Ci=self.performance.now.bind(self.performance);}catch{Ci=Date.now;}var dc=[{demux:Sf,remux:Rf},{demux:Af,remux:Ws},{demux:xf,remux:Ws},{demux:bf,remux:Ws}];dc.splice(2,0,{demux:Ef,remux:Ws});var Cc=class{constructor(e,t,i,n,s,a){this.asyncResult=false,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=s,this.logger=a;}configure(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset();}push(e,t,i,n){let s=i.transmuxing;s.executeStart=Ci();let a=new Uint8Array(e),{currentTransmuxState:o,transmuxConfig:c}=this;n&&(this.currentTransmuxState=n);let{contiguous:l,discontinuity:u,trackSwitch:d,accurateTimeOffset:h,timeOffset:f,initSegmentChange:p}=n||o,{audioCodec:g,videoCodec:m,defaultInitPts:y,duration:v,initSegmentData:E}=c,b=HD(a,t);if(b&&js(b.method)){let w=this.getDecrypter(),A=Tp(b.method);if(w.isSync()){let _=w.softwareDecrypt(a,b.key.buffer,b.iv.buffer,A);if(i.part>-1){let L=w.flush();_=L&&L.buffer;}if(!_)return s.executeEnd=Ci(),zh(i);a=new Uint8Array(_);}else return this.asyncResult=true,this.decryptionPromise=w.webCryptoDecrypt(a,b.key.buffer,b.iv.buffer,A).then(_=>{let k=this.push(_,null,i);return this.decryptionPromise=null,k}),this.decryptionPromise}let S=this.needsProbing(u,d);if(S){let w=this.configureTransmuxer(a);if(w)return this.logger.warn(`[transmuxer] ${w.message}`),this.observer.emit(x.ERROR,x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:false,error:w,reason:w.message}),s.executeEnd=Ci(),zh(i)}(u||d||p||S)&&this.resetInitSegment(E,g,m,v,t),(u||p||S)&&this.resetInitialTimestamp(y),l||this.resetContiguity();let I=this.transmux(a,b,f,h,i);this.asyncResult=Eo(I);let T=this.currentTransmuxState;return T.contiguous=true,T.discontinuity=false,T.trackSwitch=false,s.executeEnd=Ci(),I}flush(e){let t=e.transmuxing;t.executeStart=Ci();let{decrypter:i,currentTransmuxState:n,decryptionPromise:s}=this;if(s)return this.asyncResult=true,s.then(()=>this.flush(e));let a=[],{timeOffset:o}=n;if(i){let d=i.flush();d&&a.push(this.push(d.buffer,null,e));}let{demuxer:c,remuxer:l}=this;if(!c||!l){t.executeEnd=Ci();let d=[zh(e)];return this.asyncResult?Promise.resolve(d):d}let u=c.flush(o);return Eo(u)?(this.asyncResult=true,u.then(d=>(this.flushRemux(a,d,e),a))):(this.flushRemux(a,u,e),this.asyncResult?Promise.resolve(a):a)}flushRemux(e,t,i){let{audioTrack:n,videoTrack:s,id3Track:a,textTrack:o}=t,{accurateTimeOffset:c,timeOffset:l}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${i.sn}${i.part>-1?" part: "+i.part:""} of ${this.id===le.MAIN?"level":"track"} ${i.level}`);let u=this.remuxer.remux(n,s,a,o,l,c,true,this.id);e.push({remuxResult:u,chunkMeta:i}),i.transmuxing.executeEnd=Ci();}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,n,s){let{demuxer:a,remuxer:o}=this;!a||!o||(a.resetInitSegment(e,t,i,n),o.resetInitSegment(e,t,i,s));}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0);}transmux(e,t,i,n,s){let a;return t&&t.method==="SAMPLE-AES"?a=this.transmuxSampleAes(e,t,i,n,s):a=this.transmuxUnencrypted(e,i,n,s),a}transmuxUnencrypted(e,t,i,n){let{audioTrack:s,videoTrack:a,id3Track:o,textTrack:c}=this.demuxer.demux(e,t,false,!this.config.progressive);return {remuxResult:this.remuxer.remux(s,a,o,c,t,i,false,this.id),chunkMeta:n}}transmuxSampleAes(e,t,i,n,s){return this.demuxer.demuxSampleAes(e,t,i).then(a=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,n,false,this.id),chunkMeta:s}))}configureTransmuxer(e){let{config:t,observer:i,typeSupported:n}=this,s;for(let d=0,h=dc.length;d<h;d++){var a;if((a=dc[d].demux)!=null&&a.probe(e,this.logger)){s=dc[d];break}}if(!s)return new Error("Failed to find demuxer by probing fragment data");let o=this.demuxer,c=this.remuxer,l=s.remux,u=s.demux;(!c||!(c instanceof l))&&(this.remuxer=new l(i,t,n,this.logger)),(!o||!(o instanceof u))&&(this.demuxer=new u(i,t,n,this.logger),this.probe=u.probe);}needsProbing(e,t){return !this.demuxer||!this.remuxer||e||t}getDecrypter(){let e=this.decrypter;return e||(e=this.decrypter=new po(this.config)),e}};function HD(r,e){let t=null;return r.byteLength>0&&e?.key!=null&&e.iv!==null&&e.method!=null&&(t=e),t}var zh=r=>({remuxResult:{},chunkMeta:r});function Eo(r){return "then"in r&&r.then instanceof Function}var Cf=class{constructor(e,t,i,n,s){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=n,this.defaultInitPts=s||null;}},Df=class{constructor(e,t,i,n,s,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=n,this.timeOffset=s,this.initSegmentChange=a;}},NE=0,Dc=class{constructor(e,t,i,n){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=NE++,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=c=>{let l=c.data,u=this.hls;if(!(!u||!(l!=null&&l.event)||l.instanceNo!==this.instanceNo))switch(l.event){case "init":{var d;let h=(d=this.workerContext)==null?void 0:d.objectURL;h&&self.URL.revokeObjectURL(h);break}case "transmuxComplete":{this.handleTransmuxComplete(l.data);break}case "flush":{this.onFlush(l.data);break}case "workerLog":{u.logger[l.data.logType]&&u.logger[l.data.logType](l.data.message);break}default:{l.data=l.data||{},l.data.frag=this.frag,l.data.part=this.part,l.data.id=this.id,u.trigger(l.event,l.data);break}}},this.onWorkerError=c=>{if(!this.hls)return;let l=new Error(`${c.message} (${c.filename}:${c.lineno})`);this.hls.config.enableWorker=false,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,fatal:false,event:"demuxerWorker",error:l});};let s=e.config;this.hls=e,this.id=t,this.useWorker=!!s.enableWorker,this.onTransmuxComplete=i,this.onFlush=n;let a=(c,l)=>{l=l||{},l.frag=this.frag||void 0,c===x.ERROR&&(l=l,l.parent=this.id,l.part=this.part,this.error=l.error),this.hls.trigger(c,l);};this.observer=new Ap,this.observer.on(x.FRAG_DECRYPTED,a),this.observer.on(x.ERROR,a);let o=eE(s.preferManagedMediaSource);if(this.useWorker&&typeof Worker<"u"){let c=this.hls.logger;if(s.workerPath||nD()){try{s.workerPath?(c.log(`loading Web Worker ${s.workerPath} for "${t}"`),this.workerContext=aD(s.workerPath)):(c.log(`injecting Web Worker for "${t}"`),this.workerContext=sD());let{worker:u}=this.workerContext;u.addEventListener("message",this.onWorkerMessage),u.addEventListener("error",this.onWorkerError),u.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:o,id:t,config:tt(s)});}catch(u){c.warn(`Error setting up "${t}" Web Worker, fallback to inline`,u),this.terminateWorker(),this.error=null,this.transmuxer=new Cc(this.observer,o,s,"",t,e.logger);}return}}this.transmuxer=new Cc(this.observer,o,s,"",t,e.logger);}reset(){if(this.frag=null,this.part=null,this.workerContext){let e=this.instanceNo;this.instanceNo=NE++;let t=this.hls.config,i=eE(t.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupported:i,id:this.id,config:tt(t)});}}terminateWorker(){if(this.workerContext){let{worker:e}=this.workerContext;this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),oD(this.hls.config.workerPath);}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else {let t=this.transmuxer;t&&(t.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,n,s,a,o,c,l,u){var d,h;l.transmuxing.start=self.performance.now();let{instanceNo:f,transmuxer:p}=this,g=a?a.start:s.start,m=s.decryptdata,y=this.frag,v=!(y&&s.cc===y.cc),E=!(y&&l.level===y.level),b=y?l.sn-y.sn:-1,S=this.part?l.part-this.part.index:-1,I=b===0&&l.id>1&&l.id===y?.stats.chunkCount,T=!E&&(b===1||b===0&&(S===1||I&&S<=0)),w=self.performance.now();(E||b||s.stats.parsing.start===0)&&(s.stats.parsing.start=w),a&&(S||!T)&&(a.stats.parsing.start=w);let A=!(y&&((d=s.initSegment)==null?void 0:d.url)===((h=y.initSegment)==null?void 0:h.url)),_=new Df(v,T,c,E,g,A);if(!T||v||A){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${s.type} sn: ${l.sn}${l.part>-1?" part: "+l.part:""} ${this.id===le.MAIN?"level":"track"}: ${l.level} id: ${l.id}
139
+ discontinuity: ${v}
140
+ trackSwitch: ${E}
141
+ contiguous: ${T}
142
+ accurateTimeOffset: ${c}
143
+ timeOffset: ${g}
144
+ initSegmentChange: ${A}`);let k=new Cf(i,n,t,o,u);this.configureTransmuxer(k);}if(this.frag=s,this.part=a,this.workerContext)this.workerContext.worker.postMessage({instanceNo:f,cmd:"demux",data:e,decryptdata:m,chunkMeta:l,state:_},e instanceof ArrayBuffer?[e]:[]);else if(p){let k=p.push(e,m,l,_);Eo(k)?k.then(L=>{this.handleTransmuxComplete(L);}).catch(L=>{this.transmuxerError(L,l,"transmuxer-interface push error");}):this.handleTransmuxComplete(k);}}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 n=i.flush(e);Eo(n)?n.then(s=>{this.handleFlushResult(s,e);}).catch(s=>{this.transmuxerError(s,e,"transmuxer-interface flush error");}):this.handleFlushResult(n,e);}}transmuxerError(e,t,i){this.hls&&(this.error=e,this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,chunkMeta:t,frag:this.frag||void 0,part:this.part||void 0,fatal:false,error:e,err:e,reason:i}));}handleFlushResult(e,t){e.forEach(i=>{this.handleTransmuxComplete(i);}),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);}},BE=100,Pf=class extends go{constructor(e,t,i){super(e,t,i,"audio-stream-controller",le.AUDIO),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=false,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=false,this.bufferFlushed=false,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:n,timescale:s,trackId:a}){if(i===le.MAIN){let o=t.cc,c=this.fragCurrent;if(this.initPTS[o]={baseTime:n,timescale:s,trackId:a},this.log(`InitPTS for cc: ${o} found from main: ${n/s} (${n}/${s}) trackId: ${a}`),this.mainAnchor=t,this.state===U.WAITING_INIT_PTS){let l=this.waitingData;(!l&&!this.loadingParts||l&&l.frag.cc!==o)&&this.syncWithAnchor(t,l?.frag);}else !this.hls.hasEnoughToStart&&c&&c.cc!==o?(c.abortRequests(),this.syncWithAnchor(t,c)):this.state===U.IDLE&&this.tick();}}getLoadPosition(){return !this.startFragRequested&&this.nextLoadPosition>=0?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(e,t){var i;let n=((i=this.mainFragLoading)==null?void 0:i.frag)||null;if(t&&n?.cc===t.cc)return;let s=(n||e).cc,a=this.getLevelDetails(),o=this.getLoadPosition(),c=bb(a,s,o);c&&(this.log(`Syncing with main frag at ${c.start} cc ${c.cc}`),this.startFragRequested=false,this.nextLoadPosition=c.start,this.resetLoadingState(),this.state===U.IDLE&&this.doTickIdle());}startLoad(e,t){if(!this.levels){this.startPosition=e,this.state=U.STOPPED;return}let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(BE),i>0&&e===-1?(this.log(`Override startPosition with lastCurrentTime @${i.toFixed(3)}`),e=i,this.state=U.IDLE):this.state=U.WAITING_TRACK,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick();}doTick(){switch(this.state){case U.IDLE:this.doTickIdle();break;case U.WAITING_TRACK:{let{levels:e,trackId:t}=this,i=e?.[t],n=i?.details;if(n&&!this.waitForLive(i)){if(this.waitForCdnTuneIn(n))break;this.state=U.WAITING_INIT_PTS;}break}case U.FRAG_LOADING_WAITING_RETRY:{this.checkRetryDate();break}case U.WAITING_INIT_PTS:{let e=this.waitingData;if(e){let{frag:t,part:i,cache:n,complete:s}=e,a=this.mainAnchor;if(this.initPTS[t.cc]!==void 0){this.waitingData=null,this.state=U.FRAG_LOADING;let o=n.flush().buffer,c={frag:t,part:i,payload:o,networkDetails:null};this._handleFragmentLoadProgress(c),s&&super._handleFragmentLoadComplete(c);}else a&&a.cc!==e.frag.cc&&this.syncWithAnchor(a,e.frag);}else this.state=U.IDLE;}}this.onTickEnd();}resetLoadingState(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null),super.resetLoadingState();}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime);}doTickIdle(){var e;let{hls:t,levels:i,media:n,trackId:s}=this,a=t.config;if(!this.buffering||!n&&!this.primaryPrefetch&&(this.startFragRequested||!a.startFragPrefetch)||!(i!=null&&i[s]))return;let o=i[s],c=o.details;if(!c||this.waitForLive(o)||this.waitForCdnTuneIn(c)){this.state=U.WAITING_TRACK,this.startFragRequested=false;return}let l=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&l&&(this.bufferFlushed=false,this.afterBufferFlushed(l,et.AUDIO,le.AUDIO));let u=this.getFwdBufferInfo(l,le.AUDIO);if(u===null)return;if(!this.switchingTrack&&this._streamEnded(u,c)){t.trigger(x.BUFFER_EOS,{type:"audio"}),this.state=U.ENDED;return}let d=u.len,h=t.maxBufferLength,f=c.fragments,p=f[0].start,g=this.getLoadPosition(),m=this.flushing?g:u.end;if(this.switchingTrack&&n){let E=g;c.PTSKnown&&E<p&&(u.end>p||u.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),n.currentTime=p+.05);}if(d>=h&&!this.switchingTrack&&m<f[f.length-1].start)return;let y=this.getNextFragment(m,c);if(y&&this.isLoopLoading(y,m)&&(y=this.getNextFragmentLoopLoading(y,c,u,le.MAIN,h)),!y){this.bufferFlushed=true;return}let v=((e=this.mainFragLoading)==null?void 0:e.frag)||null;if(!this.audioOnly&&this.startFragRequested&&v&&gt(y)&&!y.endList&&(!c.live||!this.loadingParts&&m<this.hls.liveSyncPosition)&&(this.fragmentTracker.getState(v)===kt.OK&&(this.mainFragLoading=v=null),v&&gt(v))){if(y.start>v.end){let b=this.fragmentTracker.getFragAtPos(m,le.MAIN);b&&b.end>v.end&&(v=b,this.mainFragLoading={frag:b,targetBufferTime:null});}if(y.start>v.end)return}this.loadFragment(y,o,m);}onMediaDetaching(e,t){this.bufferFlushed=this.flushing=false,super.onMediaDetaching(e,t);}onAudioTracksUpdated(e,{audioTracks:t}){this.resetTransmuxer(),this.levels=t.map(i=>new zn(i));}onAudioTrackSwitching(e,t){let i=!!t.url;this.trackId=t.id;let{fragCurrent:n}=this;n&&(n.abortRequests(),this.removeUnbufferedFrags(n.start)),this.resetLoadingState(),i?(this.switchingTrack=t,this.flushAudioIfNeeded(t),this.state!==U.STOPPED&&(this.setInterval(BE),this.state=U.IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=t,this.clearInterval());}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=false,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;let{levels:n}=this,{details:s,id:a,groupId:o,track:c}=t;if(!n){this.warn(`Audio tracks reset while loading track ${a} "${c.name}" of "${o}"`);return}let l=this.mainDetails;if(!l||s.endCC>l.endCC||l.expired){this.cachedTrackLoadedData=t,this.state!==U.STOPPED&&(this.state=U.WAITING_TRACK);return}this.cachedTrackLoadedData=null,this.log(`Audio track ${a} "${c.name}" of "${o}" loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""},duration:${s.totalduration}`);let u=n[a],d=0;if(s.live||(i=u.details)!=null&&i.live){if(this.checkLiveUpdate(s),s.deltaUpdateFailed)return;if(u.details){var h;d=this.alignPlaylists(s,u.details,(h=this.levelLastLoaded)==null?void 0:h.details);}s.alignedSliding||(Nb(s,l),s.alignedSliding||kc(s,l),d=s.fragmentStart);}u.details=s,this.levelLastLoaded=u,this.startFragRequested||this.setStartPosition(l,d),this.hls.trigger(x.AUDIO_TRACK_UPDATED,{details:s,id:a,groupId:t.groupId}),this.state===U.WAITING_TRACK&&!this.waitForCdnTuneIn(s)&&(this.state=U.IDLE),this.tick();}_handleFragmentLoadProgress(e){var t;let i=e.frag,{part:n,payload:s}=e,{config:a,trackId:o,levels:c}=this;if(!c){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let l=c[o];if(!l){this.warn("Audio track is undefined on fragment load progress");return}let u=l.details;if(!u){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(i.start);return}let d=a.defaultAudioCodec||l.audioCodec||"mp4a.40.2",h=this.transmuxer;h||(h=this.transmuxer=new Dc(this.hls,le.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let f=this.initPTS[i.cc],p=(t=i.initSegment)==null?void 0:t.data;if(f!==void 0){let m=n?n.index:-1,y=m!==-1,v=new mo(i.level,i.sn,i.stats.chunkCount,s.byteLength,m,y);h.push(s,p,d,"",i,n,u.totalduration,false,v,f);}else {this.log(`Unknown video PTS for cc ${i.cc}, waiting for video PTS before demuxing audio frag ${i.sn} of [${u.startSN} ,${u.endSN}],track ${o}`);let{cache:g}=this.waitingData=this.waitingData||{frag:i,part:n,cache:new Ic,complete:false};g.push(new Uint8Array(s)),this.state!==U.STOPPED&&(this.state=U.WAITING_INIT_PTS);}}_handleFragmentLoadComplete(e){if(this.waitingData){this.waitingData.complete=true;return}super._handleFragmentLoadComplete(e);}onBufferReset(){this.mediaBuffer=null;}onBufferCreated(e,t){this.bufferFlushed=this.flushing=false;let i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null);}onFragLoading(e,t){!this.audioOnly&&t.frag.type===le.MAIN&&gt(t.frag)&&(this.mainFragLoading=t,this.state===U.IDLE&&this.tick());}onFragBuffered(e,t){let{frag:i,part:n}=t;if(i.type!==le.AUDIO){!this.audioOnly&&i.type===le.MAIN&&!i.elementaryStreams.video&&!i.elementaryStreams.audiovideo&&(this.audioOnly=true,this.mainFragLoading=null);return}if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${n?" p: "+n.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(gt(i)){this.fragPrevious=i;let s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(x.AUDIO_TRACK_SWITCHED,Ye({},s)));}this.fragBufferedComplete(i,n),this.media&&this.tick();}onError(e,t){var i;if(t.fatal){this.state=U.ERROR;return}switch(t.details){case D.FRAG_GAP:case D.FRAG_PARSING_ERROR:case D.FRAG_DECRYPT_ERROR:case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(le.AUDIO,t);break;case D.AUDIO_TRACK_LOAD_ERROR:case D.AUDIO_TRACK_LOAD_TIMEOUT:case D.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===U.WAITING_TRACK&&((i=t.context)==null?void 0:i.type)===Me.AUDIO_TRACK&&(this.state=U.IDLE);break;case D.BUFFER_ADD_CODEC_ERROR:case D.BUFFER_APPEND_ERROR:if(t.parent!=="audio")return;this.reduceLengthAndFlushBuffer(t)||this.resetLoadingState();break;case D.BUFFER_FULL_ERROR:if(t.parent!=="audio")return;this.reduceLengthAndFlushBuffer(t)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case D.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}onBufferFlushing(e,{type:t}){t!==et.VIDEO&&(this.flushing=true);}onBufferFlushed(e,{type:t}){if(t!==et.VIDEO){this.flushing=false,this.bufferFlushed=true,this.state===U.ENDED&&(this.state=U.IDLE);let i=this.mediaBuffer||this.media;i&&(this.afterBufferFlushed(i,t,le.AUDIO),this.tick());}}_handleTransmuxComplete(e){var t;let i="audio",{hls:n}=this,{remuxResult:s,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:c,part:l,level:u}=o,{details:d}=u,{audio:h,text:f,id3:p,initSegment:g}=s;if(this.fragContextChanged(c)||!d){this.fragmentTracker.removeFragment(c);return}if(this.state=U.PARSING,this.switchingTrack&&h&&this.completeAudioSwitch(this.switchingTrack),g!=null&&g.tracks){let m=c.initSegment||c;if(this.unhandledEncryptionError(g,c))return;this._bufferInitSegment(u,g.tracks,m,a),n.trigger(x.FRAG_PARSING_INIT_SEGMENT,{frag:m,id:i,tracks:g.tracks});}if(h){let{startPTS:m,endPTS:y,startDTS:v,endDTS:E}=h;l&&(l.elementaryStreams[et.AUDIO]={startPTS:m,endPTS:y,startDTS:v,endDTS:E}),c.setElementaryStreamInfo(et.AUDIO,m,y,v,E),this.bufferFragmentData(h,c,l,a);}if(p!=null&&(t=p.samples)!=null&&t.length){let m=Je({id:i,frag:c,details:d},p);n.trigger(x.FRAG_PARSING_METADATA,m);}if(f){let m=Je({id:i,frag:c,details:d},f);n.trigger(x.FRAG_PARSING_USERDATA,m);}}_bufferInitSegment(e,t,i,n){if(this.state!==U.PARSING||(t.video&&delete t.video,t.audiovideo&&delete t.audiovideo,!t.audio))return;let s=t.audio;s.id=le.AUDIO;let a=e.audioCodec;this.log(`Init audio buffer, container:${s.container}, codecs[level/parsed]=[${a}/${s.codec}]`),a&&a.split(",").length===1&&(s.levelCodec=a),this.hls.trigger(x.BUFFER_CODECS,t);let o=s.initSegment;if(o!=null&&o.byteLength){let c={type:"audio",frag:i,part:null,chunkMeta:n,parent:i.type,data:o};this.hls.trigger(x.BUFFER_APPENDING,c);}this.tickImmediate();}loadFragment(e,t,i){let n=this.fragmentTracker.getState(e);if(this.switchingTrack||n===kt.NOT_LOADED||n===kt.PARTIAL){var s;if(!gt(e))this._loadInitSegment(e,t);else if((s=t.details)!=null&&s.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=U.WAITING_INIT_PTS;let a=this.mainDetails;a&&a.fragmentStart!==t.details.fragmentStart&&kc(t.details,a);}else super.loadFragment(e,t,i);}else this.clearTrackerIfNeeded(e);}flushAudioIfNeeded(e){if(this.media&&this.bufferedTrack){let{name:t,lang:i,assocLang:n,characteristics:s,audioCodec:a,channels:o}=this.bufferedTrack;Un({name:t,lang:i,assocLang:n,characteristics:s,audioCodec:a,channels:o},e,Nn)||(Ec(e.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"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,Ye({},e));}},bo=class extends nr{constructor(e,t){super(t,e.logger),this.hls=void 0,this.canLoad=false,this.timer=-1,this.hls=e;}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null;}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1);}startLoad(){this.canLoad=true,this.loadPlaylist();}stopLoad(){this.canLoad=false,this.clearTimer();}switchParams(e,t,i){let n=t?.renditionReports;if(n){let s=-1;for(let a=0;a<n.length;a++){let o=n[a],c;try{c=new self.URL(o.URI,t.url).href;}catch(l){this.warn(`Could not construct new URL for Rendition Report: ${l}`),c=o.URI||"";}if(c===e){s=a;break}else c===e.substring(0,c.length)&&(s=a);}if(s!==-1){let a=n[s],o=parseInt(a["LAST-MSN"])||t.lastPartSn,c=parseInt(a["LAST-PART"])||t.lastPartIndex;if(this.hls.config.lowLatencyMode){let u=Math.min(t.age-t.partTarget,t.targetduration);c>=0&&u>t.partTarget&&(c+=1);}let l=i&&tE(i);return new xc(o,c>=0?c:void 0,l)}}}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(i){this.warn(`Could not construct new URL with HLS Delivery Directives: ${i}`);}return e}playlistLoaded(e,t,i){let{details:n,stats:s}=t,a=self.performance.now(),o=s.loading.first?Math.max(0,a-s.loading.first):0;n.advancedDateTime=Date.now()-o;let c=this.hls.config.timelineOffset;if(c!==n.appliedTimelineOffset){let u=Math.max(c||0,0);n.appliedTimelineOffset=u,n.fragments.forEach(d=>{d.setStart(d.playlistOffset+u);});}if(n.live||i!=null&&i.live){let u="levelInfo"in t?t.levelInfo:t.track;if(n.reloaded(i),i&&n.fragments.length>0){WC(i,n,this);let v=n.playlistParsingError;if(v){this.warn(v);let E=this.hls;if(!E.config.ignorePlaylistParsingErrors){var l;let{networkDetails:b}=t;E.trigger(x.ERROR,{type:de.NETWORK_ERROR,details:D.LEVEL_PARSING_ERROR,fatal:false,url:n.url,error:v,reason:v.message,level:t.level||void 0,parent:(l=n.fragments[0])==null?void 0:l.type,networkDetails:b,stats:s});return}n.playlistParsingError=null;}}n.requestScheduled===-1&&(n.requestScheduled=s.loading.start);let d=this.hls.mainForwardBufferInfo,h=d?d.end-d.len:0,f=(n.edge-h)*1e3,p=Db(n,f);if(n.requestScheduled+p<a?n.requestScheduled=a:n.requestScheduled+=p,this.log(`live playlist ${e} ${n.advanced?"REFRESHED "+n.lastPartSn+"-"+n.lastPartIndex:n.updated?"UPDATED":"MISSED"}`),!this.canLoad||!n.live)return;let g,m,y;if(n.canBlockReload&&n.endSN&&n.advanced){let v=this.hls.config.lowLatencyMode,E=n.lastPartSn,b=n.endSN,S=n.lastPartIndex,I=S!==-1,T=E===b;I?T?(m=b+1,y=v?0:S):(m=E,y=v?S+1:n.maxPartIndex):m=b+1;let w=n.age,A=w+n.ageHeader,_=Math.min(A-n.partTarget,n.targetduration*1.5);if(_>0){if(A>n.targetduration*3)this.log(`Playlist last advanced ${w.toFixed(2)}s ago. Omitting segment and part directives.`),m=void 0,y=void 0;else if(i!=null&&i.tuneInGoal&&A-n.partTarget>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${_} with playlist age: ${n.age}`),_=0;else {let k=Math.floor(_/n.targetduration);if(m+=k,y!==void 0){let L=Math.round(_%n.targetduration/n.partTarget);y+=L;}this.log(`CDN Tune-in age: ${n.ageHeader}s last advanced ${w.toFixed(2)}s goal: ${_} skip sn ${k} to part ${y}`);}n.tuneInGoal=_;}if(g=this.getDeliveryDirectives(n,t.deliveryDirectives,m,y),v||!T){n.requestScheduled=a,this.loadingPlaylist(u,g);return}}else (n.canBlockReload||n.canSkipUntil)&&(g=this.getDeliveryDirectives(n,t.deliveryDirectives,m,y));g&&m!==void 0&&n.canBlockReload&&(n.requestScheduled=s.loading.first+Math.max(p-o*2,p/2)),this.scheduleLoading(u,g,n);}else this.clearTimer();}scheduleLoading(e,t,i){let n=i||e.details;if(!n){this.loadingPlaylist(e,t);return}let s=self.performance.now(),a=n.requestScheduled;if(s>=a){this.loadingPlaylist(e,t);return}let o=a-s;this.log(`reload live playlist ${e.name||e.bitrate+"bps"} in ${Math.round(o)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(e,t),o);}getDeliveryDirectives(e,t,i,n){let s=tE(e);return t!=null&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,n=t.part,s=cc.No),new xc(i,n,s)}checkRetry(e){let t=e.details,i=bc(e),n=e.errorAction,{action:s,retryCount:a=0,retryConfig:o}=n||{},c=!!n&&!!o&&(s===Dt.RetryRequest||!n.resolved&&s===Dt.SendAlternateToPenaltyBox);if(c){var l;if(a>=o.maxNumRetry)return false;if(i&&(l=e.context)!=null&&l.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" without delivery-directives`),this.loadPlaylist();else {let u=_p(o,a);this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),u),this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${t}" in ${u}ms`);}e.levelRetry=true,n.resolved=true;}return c}};function tS(r,e){if(r.length!==e.length)return false;for(let t=0;t<r.length;t++)if(!So(r[t].attrs,e[t].attrs))return false;return true}function So(r,e,t){let i=r["STABLE-RENDITION-ID"];return i&&!t?i===e["STABLE-RENDITION-ID"]:!(t||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some(n=>r[n]!==e[n])}function Mf(r,e){return e.label.toLowerCase()===r.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(r.lang||"").toLowerCase())}var Of=class extends bo{constructor(e){super(e,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=true,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=true;}onManifestParsed(e,t){this.tracks=t.audioTracks||[];}onAudioTrackLoaded(e,t){let{id:i,groupId:n,details:s}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==n){this.warn(`Audio track with id:${i} and group:${n} not found in active group ${a?.groupId}`);return}let o=a.details;a.details=t.details,this.log(`Audio track ${i} "${a.name}" lang:${a.lang} group:${n} loaded [${s.startSN}-${s.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o);}onLevelLoading(e,t){this.switchLevel(t.level);}onLevelSwitching(e,t){this.switchLevel(t.level);}switchLevel(e){let t=this.hls.levels[e];if(!t)return;let i=t.audioGroups||null,n=this.groupIds,s=this.currentTrack;if(!i||n?.length!==i?.length||i!=null&&i.some(o=>n?.indexOf(o)===-1)){this.groupIds=i,this.trackId=-1,this.currentTrack=null;let o=this.tracks.filter(h=>!i||i.indexOf(h.groupId)!==-1);if(o.length)this.selectDefaultTrack&&!o.some(h=>h.default)&&(this.selectDefaultTrack=false),o.forEach((h,f)=>{h.id=f;});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=o;let c=this.hls.config.audioPreference;if(!s&&c){let h=ei(c,o,Nn);if(h>-1)s=o[h];else {let f=ei(c,this.tracks);s=this.tracks[f];}}let l=this.findTrackId(s);l===-1&&s&&(l=this.findTrackId(null));let u={audioTracks:o};this.log(`Updating audio tracks, ${o.length} track(s) found in group(s): ${i?.join(",")}`),this.hls.trigger(x.AUDIO_TRACKS_UPDATED,u);let d=this.trackId;if(l!==-1&&d===-1)this.setAudioTrack(l);else if(o.length&&d===-1){var a;let h=new Error(`No audio track selected for current audio group-ID(s): ${(a=this.groupIds)==null?void 0:a.join(",")} track count: ${o.length}`);this.warn(h.message),this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.AUDIO_TRACK_LOAD_ERROR,fatal:true,error:h});}}}onError(e,t){t.fatal||!t.context||t.context.type===Me.AUDIO_TRACK&&t.context.id===this.trackId&&(!this.groupIds||this.groupIds.indexOf(t.context.groupId)!==-1)&&this.checkRetry(t);}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=false,this.setAudioTrack(e);}setAudioOption(e){let t=this.hls;if(t.config.audioPreference=e,e){let i=this.allAudioTracks;if(this.selectDefaultTrack=false,i.length){let n=this.currentTrack;if(n&&Un(e,n,Nn))return n;let s=ei(e,this.tracksInGroup,Nn);if(s>-1){let a=this.tracksInGroup[s];return this.setAudioTrack(s),a}else if(n){let a=t.loadLevel;a===-1&&(a=t.firstAutoLevel);let o=SC(e,t.levels,i,a,Nn);if(o===-1)return null;t.nextLoadLevel=o;}if(e.channels||e.audioCodec){let a=ei(e,i);if(a>-1)return i[a]}}}return null}setAudioTrack(e){let t=this.tracksInGroup;if(e<0||e>=t.length){this.warn(`Invalid audio track id: ${e}`);return}this.selectDefaultTrack=false;let i=this.currentTrack,n=t[e],s=n.details&&!n.details.live;if(e===this.trackId&&n===i&&s||(this.log(`Switching to audio-track ${e} "${n.name}" lang:${n.lang} group:${n.groupId} channels:${n.channels}`),this.trackId=e,this.currentTrack=n,this.hls.trigger(x.AUDIO_TRACK_SWITCHING,Ye({},n)),s))return;let a=this.switchParams(n.url,i?.details,n.details);this.loadPlaylist(a);}findTrackId(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let n=t[i];if(!(this.selectDefaultTrack&&!n.default)&&(!e||Un(e,n,Nn)))return i}if(e){let{name:i,lang:n,assocLang:s,characteristics:a,audioCodec:o,channels:c}=e;for(let l=0;l<t.length;l++){let u=t[l];if(Un({name:i,lang:n,assocLang:s,characteristics:a,audioCodec:o,channels:c},u,Nn))return l}for(let l=0;l<t.length;l++){let u=t[l];if(So(e.attrs,u.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return l}for(let l=0;l<t.length;l++){let u=t[l];if(So(e.attrs,u.attrs,["LANGUAGE"]))return l}}return -1}loadPlaylist(e){super.loadPlaylist();let t=this.currentTrack;this.shouldLoadPlaylist(t)&&Ec(t.url,this.hls)&&this.scheduleLoading(t,e);}loadingPlaylist(e,t){super.loadingPlaylist(e,t);let i=e.id,n=e.groupId,s=this.getUrlWithDirectives(e.url,t),a=e.details,o=a?.age;this.log(`Loading audio-track ${i} "${e.name}" lang:${e.lang} group:${n}${t?.msn!==void 0?" at sn "+t.msn+" part "+t.part:""}${o&&a.live?" age "+o.toFixed(1)+(a.type&&" "+a.type||""):""} ${s}`),this.hls.trigger(x.AUDIO_TRACK_LOADING,{url:s,id:i,groupId:n,deliveryDirectives:t||null,track:e});}},Ff=class{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(this.queues===null||this.tracks===null)return;let n=this.queues[t];n.push(e),n.length===1&&!i&&this.executeNext(t);}appendBlocker(e){return new Promise(t=>{let i={label:"async-blocker",execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.append(i,e);})}prependBlocker(e){return new Promise(t=>{if(this.queues){let i={label:"async-blocker-prepend",execute:t,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.queues[e].unshift(i);}})}removeBlockers(){this.queues!==null&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach(e=>{var t;let i=(t=e[0])==null?void 0:t.label;(i==="async-blocker"||i==="async-blocker-prepend")&&(e[0].execute(),e.splice(0,1));});}unblockAudio(e){if(this.queues===null)return;this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio");}executeNext(e){if(this.queues===null||this.tracks===null)return;let t=this.queues[e];if(t.length){let n=t[0];try{n.execute();}catch(s){var i;if(n.onError(s),this.queues===null||this.tracks===null)return;let a=(i=this.tracks[e])==null?void 0:i.buffer;a!=null&&a.updating||this.shiftAndExecuteNext(e);}}}shiftAndExecuteNext(e){this.queues!==null&&(this.queues[e].shift(),this.executeNext(e));}current(e){var t;return ((t=this.queues)==null?void 0:t[e][0])||null}toString(){let{queues:e,tracks:t}=this;return e===null||t===null?"<destroyed>":`
145
+ ${this.list("video")}
146
+ ${this.list("audio")}
147
+ ${this.list("audiovideo")}}`}list(e){var t,i;return (t=this.queues)!=null&&t[e]||(i=this.tracks)!=null&&i[e]?`${e}: (${this.listSbInfo(e)}) ${this.listOps(e)}`:""}listSbInfo(e){var t;let i=(t=this.tracks)==null?void 0:t[e],n=i?.buffer;return n?`SourceBuffer${n.updating?" updating":""}${i.ended?" ended":""}${i.ending?" ending":""}`:"none"}listOps(e){var t;return ((t=this.queues)==null?void 0:t[e].map(i=>i.label).join(", "))||""}},UE=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,rS="HlsJsTrackRemovedError",Nf=class extends Error{constructor(e){super(e),this.name=rS;}},Bf=class extends nr{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=i=>{var n;this.hls&&((n=this.mediaSource)==null?void 0:n.readyState)==="open"&&this.hls.pauseBuffering();},this._onStartStreaming=i=>{this.hls&&this.hls.resumeBuffering();},this._onMediaSourceOpen=i=>{let{media:n,mediaSource:s}=this;i&&this.log("Media source opened"),!(!n||!s)&&(s.removeEventListener("sourceopen",this._onMediaSourceOpen),n.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(x.MEDIA_ATTACHED,{media:n,mediaSource:s}),this.mediaSource!==null&&this.checkPendingTracks());},this._onMediaSourceClose=()=>{this.log("Media source closed");},this._onMediaSourceEnded=()=>{this.log("Media source ended");},this._onMediaEmptied=()=>{let{mediaSrc:i,_objectUrl:n}=this;i!==n&&this.error(`Media element src was set while attaching MediaSource (${n} > ${i})`);},this.hls=e,this.fragmentTracker=t,this.appendSource=FR(on(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;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_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 s=this.isUpdating();s||this.operationQueue.removeBlockers();let a=this.isQueued();(s||a)&&this.warn(`Transfering MediaSource with${a?" operations in queue":""}${s?" updating SourceBuffer(s)":""} ${this.operationQueue}`),this.operationQueue.destroy();}let n=this.transferData;return !this.sourceBufferCount&&n&&n.mediaSource===t?Je(i,n.tracks):this.sourceBuffers.forEach(s=>{let[a]=s;a&&(i[a]=Je({},this.tracks[a]),this.removeBuffer(a)),s[0]=s[1]=null;}),{media:e,mediaSource:t,tracks:i}}initTracks(){let e={};this.sourceBuffers=[[null,null],[null,null]],this.tracks=e,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 n=2;(t.audio&&!t.video||!t.altAudio)&&(n=1),this.bufferCodecEventsTotal=n,this.log(`${n} bufferCodec event(s) expected.`),(i=this.transferData)!=null&&i.mediaSource&&this.sourceBufferCount&&n&&this.bufferCreated();}onMediaAttaching(e,t){let i=this.media=t.media;this.transferData=this.overrides=void 0;let n=on(this.appendSource);if(n){let s=!!t.mediaSource;(s||t.overrides)&&(this.transferData=t,this.overrides=t.overrides);let a=this.mediaSource=t.mediaSource||new n;if(this.assignMediaSource(a),s)this._objectUrl=i.src,this.attachTransferred();else {let o=this._objectUrl=self.URL.createObjectURL(a);if(this.appendSource)try{i.removeAttribute("src");let c=self.ManagedMediaSource;i.disableRemotePlayback=i.disableRemotePlayback||c&&a instanceof c,$E(i),KD(i,o),i.load();}catch{i.src=o;}else i.src=o;}i.addEventListener("emptied",this._onMediaEmptied);}}assignMediaSource(e){var t,i;this.log(`${((t=this.transferData)==null?void 0:t.mediaSource)===e?"transferred":"created"} media source: ${(i=e.constructor)==null?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,n=t.tracks,s=n?Object.keys(n):null,a=s?s.length:0,o=()=>{Promise.resolve().then(()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen();});};if(n&&s&&a){if(!this.tracksReady){this.hls.config.startFragPrefetch=true,this.log("attachTransferred: waiting for SourceBuffer track info");return}if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal})
148
+ required tracks: ${tt(i,(c,l)=>c==="initSegment"?void 0:l)};
149
+ transfer tracks: ${tt(n,(c,l)=>c==="initSegment"?void 0:l)}}`),!nb(n,i)){t.mediaSource=null,t.tracks=void 0;let c=e.currentTime,l=this.details,u=Math.max(c,l?.fragments[0].start||0);if(u-c>1){this.log(`attachTransferred: waiting for playback to reach new tracks start time ${c} -> ${u}`);return}this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(n)}"->"${Object.keys(i)}") start time: ${u} currentTime: ${c}`),this.onMediaDetaching(x.MEDIA_DETACHING,{}),this.onMediaAttaching(x.MEDIA_ATTACHING,t),e.currentTime=u;return}this.transferData=void 0,s.forEach(c=>{let l=c,u=n[l];if(u){let d=u.buffer;if(d){let h=this.fragmentTracker,f=u.id;if(h.hasFragments(f)||h.hasParts(f)){let m=Re.getBuffered(d);h.detectEvictedFragments(l,m,f,null,true);}let p=Gh(l),g=[l,d];this.sourceBuffers[p]=g,d.updating&&this.operationQueue&&this.operationQueue.prependBlocker(l),this.trackSourceBuffer(l,u);}}}),o(),this.bufferCreated();}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),o();}get mediaSourceOpenOrEnded(){var e;let t=(e=this.mediaSource)==null?void 0:e.readyState;return t==="open"||t==="ended"}onMediaDetaching(e,t){let i=!!t.transferMedia;this.transferData=this.overrides=void 0;let{media:n,mediaSource:s,_objectUrl:a}=this;if(s){if(this.log(`media source ${i?"transferring":"detaching"}`),i)this.sourceBuffers.forEach(([o])=>{o&&this.removeBuffer(o);}),this.resetQueue();else {if(this.mediaSourceOpenOrEnded){let o=s.readyState==="open";try{let c=s.sourceBuffers;for(let l=c.length;l--;)o&&c[l].abort(),s.removeSourceBuffer(c[l]);o&&s.endOfStream();}catch(c){this.warn(`onMediaDetaching: ${c.message} while calling endOfStream`);}}this.sourceBufferCount&&this.onBufferReset();}s.removeEventListener("sourceopen",this._onMediaSourceOpen),s.removeEventListener("sourceended",this._onMediaSourceEnded),s.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(s.removeEventListener("startstreaming",this._onStartStreaming),s.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null;}n&&(n.removeEventListener("emptied",this._onMediaEmptied),i||(a&&self.URL.revokeObjectURL(a),this.mediaSrc===a?(n.removeAttribute("src"),this.appendSource&&$E(n),n.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;let i=(t=this.tracks[e])==null?void 0:t.buffer;if(this.removeBuffer(e),i)try{var n;(n=this.mediaSource)!=null&&n.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i);}catch(s){this.warn(`onBufferReset ${e}`,s);}delete this.tracks[e];}removeBuffer(e){this.removeBufferListeners(e),this.sourceBuffers[Gh(e)]=[null,null];let t=this.tracks[e];t&&(t.buffer=void 0);}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new Ff(this.tracks);}onBufferCodecs(e,t){var i;let n=this.tracks,s=Object.keys(t);this.log(`BUFFER_CODECS: "${s}" (current SB count ${this.sourceBufferCount})`);let a="audiovideo"in t&&(n.audio||n.video)||n.audiovideo&&("audio"in t||"video"in t),o=!a&&this.sourceBufferCount&&this.media&&s.some(c=>!n[c]);if(a||o){this.warn(`Unsupported transition between "${Object.keys(n)}" and "${s}" SourceBuffers`);return}s.forEach(c=>{var l,u;let d=t[c],{id:h,codec:f,levelCodec:p,container:g,metadata:m,supplemental:y}=d,v=n[c],E=(l=this.transferData)==null||(l=l.tracks)==null?void 0:l[c],b=E!=null&&E.buffer?E:v,S=b?.pendingCodec||b?.codec,I=b?.levelCodec;v||(v=n[c]={buffer:void 0,listeners:[],codec:f,supplemental:y,container:g,levelCodec:p,metadata:m,id:h});let T=lc(S,I),w=T?.replace(UE,"$1"),A=lc(f,p),_=(u=A)==null?void 0:u.replace(UE,"$1");A&&T&&w!==_&&(c.slice(0,5)==="audio"&&(A=yc(A,this.appendSource)),this.log(`switching codec ${S} to ${A}`),A!==(v.pendingCodec||v.codec)&&(v.pendingCodec=A),v.container=g,this.appendChangeType(c,g,A));}),(this.tracksReady||this.sourceBufferCount)&&(t.tracks=this.sourceBufferTracks),!this.sourceBufferCount&&(this.bufferCodecEventsTotal>1&&!this.tracks.video&&!t.video&&((i=t.audio)==null?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 n=`${t};codecs=${i}`,s={label:`change-type=${n}`,execute:()=>{let a=this.tracks[e];if(a){let o=a.buffer;o!=null&&o.changeType&&(this.log(`changing ${e} sourceBuffer type to ${n}`),o.changeType(n),a.codec=i,a.container=t);}this.shiftAndExecuteNext(e);},onStart:()=>{},onComplete:()=>{},onError:a=>{this.warn(`Failed to change ${e} SourceBuffer type`,a);}};this.append(s,e,this.isPending(this.tracks[e]));}blockAudio(e){var t;let i=e.start,n=i+e.duration*.05;if(((t=this.fragmentTracker.getAppendedFrag(i,le.MAIN))==null?void 0:t.gap)===true)return;let a={label:"block-audio",execute:()=>{var o;let c=this.tracks.video;(this.lastVideoAppendEnd>n||c!=null&&c.buffer&&Re.isBuffered(c.buffer,n)||((o=this.fragmentTracker.getAppendedFrag(n,le.MAIN))==null?void 0:o.gap)===true)&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"));},onStart:()=>{},onComplete:()=>{},onError:o=>{this.warn("Error executing block-audio operation",o);}};this.blockedAudioAppend={op:a,frag:e},this.append(a,"audio",true);}unblockAudio(){let{blockedAudioAppend:e,operationQueue:t}=this;e&&t&&(this.blockedAudioAppend=null,t.unblockAudio(e.op));}onBufferAppending(e,t){let{tracks:i}=this,{data:n,type:s,parent:a,frag:o,part:c,chunkMeta:l,offset:u}=t,d=l.buffering[s],{sn:h,cc:f}=o,p=self.performance.now();d.start=p;let g=o.stats.buffering,m=c?c.stats.buffering:null;g.start===0&&(g.start=p),m&&m.start===0&&(m.start=p);let y=i.audio,v=false;s==="audio"&&y?.container==="audio/mpeg"&&(v=!this.lastMpegAudioChunk||l.id===1||this.lastMpegAudioChunk.sn!==l.sn,this.lastMpegAudioChunk=l);let E=i.video,b=E?.buffer;if(b&&h!=="initSegment"){let T=c||o,w=this.blockedAudioAppend;if(s==="audio"&&a!=="main"&&!this.blockedAudioAppend&&!(E.ending||E.ended)){let _=T.start+T.duration*.05,k=b.buffered,L=this.currentOp("video");!k.length&&!L?this.blockAudio(T):!L&&!Re.isBuffered(b,_)&&this.lastVideoAppendEnd<_&&this.blockAudio(T);}else if(s==="video"){let A=T.end;if(w){let _=w.frag.start;(A>_||A<this.lastVideoAppendEnd||Re.isBuffered(b,_))&&this.unblockAudio();}this.lastVideoAppendEnd=A;}}let S=(c||o).start,I={label:`append-${s}`,execute:()=>{var T;d.executeStart=self.performance.now();let w=(T=this.tracks[s])==null?void 0:T.buffer;w&&(v?this.updateTimestampOffset(w,S,.1,s,h,f):u!==void 0&&te(u)&&this.updateTimestampOffset(w,u,1e-6,s,h,f)),this.appendExecutor(n,s);},onStart:()=>{},onComplete:()=>{let T=self.performance.now();d.executeEnd=d.end=T,g.first===0&&(g.first=T),m&&m.first===0&&(m.first=T);let w={};this.sourceBuffers.forEach(([A,_])=>{A&&(w[A]=Re.getBuffered(_));}),this.appendErrors[s]=0,s==="audio"||s==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(x.BUFFER_APPENDED,{type:s,frag:o,part:c,chunkMeta:l,parent:o.type,timeRanges:w});},onError:T=>{var w;let A={type:de.MEDIA_ERROR,parent:o.type,details:D.BUFFER_APPEND_ERROR,sourceBufferName:s,frag:o,part:c,chunkMeta:l,error:T,err:T,fatal:false},_=(w=this.media)==null?void 0:w.error;if(T.code===DOMException.QUOTA_EXCEEDED_ERR||T.name=="QuotaExceededError"||"quota"in T)A.details=D.BUFFER_FULL_ERROR;else if(T.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!_)A.errorAction=Vs(true);else if(T.name===rS&&this.sourceBufferCount===0)A.errorAction=Vs(true);else {let k=++this.appendErrors[s];this.warn(`Failed ${k}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${s}" sourceBuffer (${_||"no media error"})`),(k>=this.hls.config.appendErrorMaxRetry||_)&&(A.fatal=true);}this.hls.trigger(x.ERROR,A);}};this.log(`queuing "${s}" append sn: ${h}${c?" p: "+c.index:""} of ${o.type===le.MAIN?"level":"track"} ${o.level} cc: ${f}`),this.append(I,s,this.isPending(this.tracks[s]));}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:n=>{this.warn(`Failed to remove ${t}-${i} from "${e}" SourceBuffer`,n);}}}onBufferFlushing(e,t){let{type:i,startOffset:n,endOffset:s}=t;i?this.append(this.getFlushOp(i,n,s),i):this.sourceBuffers.forEach(([a])=>{a&&this.append(this.getFlushOp(a,n,s),a);});}onFragParsed(e,t){let{frag:i,part:n}=t,s=[],a=n?n.elementaryStreams:i.elementaryStreams;a[et.AUDIOVIDEO]?s.push("audiovideo"):(a[et.AUDIO]&&s.push("audio"),a[et.VIDEO]&&s.push("video"));let o=()=>{let c=self.performance.now();i.stats.buffering.end=c,n&&(n.stats.buffering.end=c);let l=n?n.stats:i.stats;this.hls.trigger(x.FRAG_BUFFERED,{frag:i,part:n,stats:l,id:i.type});};s.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${i.type} level: ${i.level} sn: ${i.sn}`),this.blockBuffers(o,s).catch(c=>{this.warn(`Fragment buffered callback ${c}`),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 false})}onBufferEos(e,t){var i;this.sourceBuffers.forEach(([a])=>{if(a){let o=this.tracks[a];(!t.type||t.type===a)&&(o.ending=true,o.ended||(o.ended=true,this.log(`${a} buffer reached EOS`)));}});let n=((i=this.overrides)==null?void 0:i.endOfStream)!==false;this.sourceBufferCount>0&&!this.sourceBuffers.some(([a])=>{var o;return a&&!((o=this.tracks[a])!=null&&o.ended)})?n?(this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();let{mediaSource:a}=this;if(!a||a.readyState!=="open"){a&&this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${a.readyState}`);return}this.log("Calling mediaSource.endOfStream()"),a.endOfStream(),this.hls.trigger(x.BUFFERED_TO_END,void 0);})):(this.tracksEnded(),this.hls.trigger(x.BUFFERED_TO_END,void 0)):t.type==="video"&&this.unblockAudio();}tracksEnded(){this.sourceBuffers.forEach(([e])=>{if(e!==null){let t=this.tracks[e];t&&(t.ending=false);}});}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===D.BUFFER_APPEND_ERROR&&t.frag){var i;let n=(i=t.errorAction)==null?void 0:i.nextAutoLevel;te(n)&&n!==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||t===null||!this.sourceBufferCount)return;let n=e.config,s=i.currentTime,a=t.levelTargetDuration,o=t.live&&n.liveBackBufferLength!==null?n.liveBackBufferLength:n.backBufferLength;if(te(o)&&o>=0){let l=Math.max(o,a),u=Math.floor(s/a)*a-l;this.flushBackBuffer(s,a,u);}let c=n.frontBufferFlushThreshold;if(te(c)&&c>0){let l=Math.max(n.maxBufferLength,c),u=Math.max(l,a),d=Math.floor(s/a)*a+u;this.flushFrontBuffer(s,a,d);}}flushBackBuffer(e,t,i){this.sourceBuffers.forEach(([n,s])=>{if(s){let o=Re.getBuffered(s);if(o.length>0&&i>o.start(0)){var a;this.hls.trigger(x.BACK_BUFFER_REACHED,{bufferEnd:i});let c=this.tracks[n];if((a=this.details)!=null&&a.live)this.hls.trigger(x.LIVE_BACK_BUFFER_REACHED,{bufferEnd:i});else if(c!=null&&c.ended){this.log(`Cannot flush ${n} back buffer while SourceBuffer is in ended state`);return}this.hls.trigger(x.BUFFER_FLUSHING,{startOffset:0,endOffset:i,type:n});}}});}flushFrontBuffer(e,t,i){this.sourceBuffers.forEach(([n,s])=>{if(s){let a=Re.getBuffered(s),o=a.length;if(o<2)return;let c=a.start(o-1),l=a.end(o-1);if(i>c||e>=c&&e<=l)return;this.hls.trigger(x.BUFFER_FLUSHING,{startOffset:c,endOffset:1/0,type:n});}});}getDurationAndRange(){var e;let{details:t,mediaSource:i}=this;if(!t||!this.media||i?.readyState!=="open")return null;let n=t.edge;if(t.live&&this.hls.config.liveDurationInfinity){if(t.fragments.length&&i.setLiveSeekableRange){let l=Math.max(0,t.fragmentStart),u=Math.max(l,n);return {duration:1/0,start:l,end:u}}return {duration:1/0}}let s=(e=this.overrides)==null?void 0:e.duration;if(s)return te(s)?{duration:s}:null;let a=this.media.duration,o=te(i.duration)?i.duration:0;return n>o&&n>a||!te(a)?{duration:n}:null}updateMediaSource({duration:e,start:t,end:i}){let n=this.mediaSource;!this.media||!n||n.readyState!=="open"||(n.duration!==e&&(te(e)&&this.log(`Updating MediaSource duration to ${e.toFixed(3)}`),n.duration=e),t!==void 0&&i!==void 0&&(this.log(`MediaSource duration is set to ${n.duration}. Setting seekable range to ${t}-${i}.`),n.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}) ${tt(i)}`),this.tracksReady){var n;let s=(n=this.transferData)==null?void 0:n.tracks;s&&Object.keys(s).length?this.attachTransferred():this.createSourceBuffers();}}bufferCreated(){if(this.sourceBufferCount){let e={};this.sourceBuffers.forEach(([t,i])=>{if(t){let n=this.tracks[t];e[t]={buffer:i,container:n.container,codec:n.codec,supplemental:n.supplemental,levelCodec:n.levelCodec,id:n.id,metadata:n.metadata};}}),this.hls.trigger(x.BUFFER_CREATED,{tracks:e}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach(([t])=>{this.executeNext(t);});}else {let e=new Error("could not create source buffer for media codec(s)");this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:true,error:e,reason:e.message});}}createSourceBuffers(){let{tracks:e,sourceBuffers:t,mediaSource:i}=this;if(!i)throw new Error("createSourceBuffers called when mediaSource was null");for(let s in e){let a=s,o=e[a];if(this.isPending(o)){let c=this.getTrackCodec(o,a),l=`${o.container};codecs=${c}`;o.codec=c,this.log(`creating sourceBuffer(${l})${this.currentOp(a)?" Queued":""} ${tt(o)}`);try{let u=i.addSourceBuffer(l),d=Gh(a),h=[a,u];t[d]=h,o.buffer=u;}catch(u){var n;this.error(`error while trying to add sourceBuffer: ${u.message}`),this.shiftAndExecuteNext(a),(n=this.operationQueue)==null||n.removeBlockers(),delete this.tracks[a],this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_ADD_CODEC_ERROR,fatal:false,error:u,sourceBufferName:a,mimeType:l,parent:o.id});return}this.trackSourceBuffer(a,o);}}this.bufferCreated();}getTrackCodec(e,t){let i=e.supplemental,n=e.codec;i&&(t==="video"||t==="audiovideo")&&ho(i,"video")&&(n=iC(n,i));let s=lc(n,e.levelCodec);return s?t.slice(0,5)==="audio"?yc(s,this.appendSource):s:""}trackSourceBuffer(e,t){let i=t.buffer;if(!i)return;let n=this.getTrackCodec(t,e);this.tracks[e]={buffer:i,codec:n,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",(s,a)=>{let o=a.removedRanges;o!=null&&o.length&&this.hls.trigger(x.BUFFER_FLUSHED,{type:s});});}get mediaSrc(){var e,t;let i=((e=this.media)==null||(t=e.querySelector)==null?void 0:t.call(e,"source"))||this.media;return i?.src}onSBUpdateStart(e){let t=this.currentOp(e);t&&t.onStart();}onSBUpdateEnd(e){var t;if(((t=this.mediaSource)==null?void 0:t.readyState)==="closed"){this.resetBuffer(e);return}let i=this.currentOp(e);i&&(i.onComplete(),this.shiftAndExecuteNext(e));}onSBUpdateError(e,t){var i;let n=new Error(`${e} SourceBuffer error. MediaSource readyState: ${(i=this.mediaSource)==null?void 0:i.readyState}`);this.error(`${n}`,t),this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:n,fatal:false});let s=this.currentOp(e);s&&s.onError(n);}updateTimestampOffset(e,t,i,n,s,a){let o=t-e.timestampOffset;Math.abs(o)>=i&&(this.log(`Updating ${n} SourceBuffer timestampOffset to ${t} (sn: ${s} cc: ${a})`),e.timestampOffset=t);}removeExecutor(e,t,i){let{media:n,mediaSource:s}=this,a=this.tracks[e],o=a?.buffer;if(!n||!s||!o){this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(e);return}let c=te(n.duration)?n.duration:1/0,l=te(s.duration)?s.duration:1/0,u=Math.max(0,t),d=Math.min(i,c,l);d>u&&(!a.ending||a.ended)?(a.ended=false,this.log(`Removing [${u},${d}] from the ${e} SourceBuffer`),o.remove(u,d)):this.shiftAndExecuteNext(e);}appendExecutor(e,t){let i=this.tracks[t],n=i?.buffer;if(!n)throw new Nf(`Attempting to append to the ${t} SourceBuffer, but it does not exist`);i.ending=false,i.ended=false,n.appendBuffer(e);}blockUntilOpen(e){if(this.isUpdating()||this.isQueued())this.blockBuffers(e).catch(t=>{this.warn(`SourceBuffer blocked callback ${t}`),this.stepOperationQueue(this.sourceBufferTypes);});else try{e();}catch(t){this.warn(`Callback run without blocking ${this.operationQueue} ${t}`);}}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,n=t.map(a=>this.appendBlocker(a));return t.length>1&&this.blockedAudioAppend&&this.unblockAudio(),Promise.all(n).then(a=>{i===this.operationQueue&&(e(),this.stepOperationQueue(this.sourceBufferTypes));})}stepOperationQueue(e){e.forEach(t=>{var i;let n=(i=this.tracks[t])==null?void 0:i.buffer;!n||n.updating||this.shiftAndExecuteNext(t);});}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])?1:0),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((e,[t])=>e+(t?1:0),0)}get sourceBufferTypes(){return this.sourceBuffers.map(([e])=>e).filter(e=>!!e)}addBufferListener(e,t,i){let n=this.tracks[e];if(!n)return;let s=n.buffer;if(!s)return;let a=i.bind(this,e);n.listeners.push({event:t,listener:a}),s.addEventListener(t,a);}removeBufferListeners(e){let t=this.tracks[e];if(!t)return;let i=t.buffer;i&&(t.listeners.forEach(n=>{i.removeEventListener(n.event,n.listener);}),t.listeners.length=0);}};function $E(r){let e=r.querySelectorAll("source");[].slice.call(e).forEach(t=>{r.removeChild(t);});}function KD(r,e){let t=self.document.createElement("source");t.type="video/mp4",t.src=e,r.appendChild(t);}function Gh(r){return r==="audio"?1:0}var Uf=class r{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners();}setStreamController(e){this.streamController=e;}destroy(){this.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&&te(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((n,s)=>this.isLevelAllowed(n)&&s<=e);return this.clientRect=null,r.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize());}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0);}getDimensions(){if(this.clientRect)return this.clientRect;let e=this.media,t={width:0,height:0};if(e){let i=e.getBoundingClientRect();t.width=i.width,t.height=i.height,!t.width&&!t.height&&(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0);}return this.clientRect=t,t}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio;}catch{}return Math.min(e,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(e){return !this.restrictedLevels.some(i=>e.bitrate===i.bitrate&&e.width===i.width&&e.height===i.height)}static getMaxLevelByMediaSize(e,t,i){if(!(e!=null&&e.length))return -1;let n=(o,c)=>c?o.width!==c.width||o.height!==c.height:true,s=e.length-1,a=Math.max(t,i);for(let o=0;o<e.length;o+=1){let c=e[o];if((c.width>=a||c.height>=a)&&n(c,e[o+1])){s=o;break}}return s}},VD={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},rr=VD,jD={HLS:"h"},WD=jD,Di=class r{constructor(e,t){Array.isArray(e)&&(e=e.map(i=>i instanceof r?i:new r(i))),this.value=e,this.params=t;}},qD="Dict";function YD(r){return Array.isArray(r)?JSON.stringify(r):r instanceof Map?"Map{}":r instanceof Set?"Set{}":typeof r=="object"?JSON.stringify(r):String(r)}function ZD(r,e,t,i){return new Error(`failed to ${r} "${YD(e)}" as ${t}`,{cause:i})}function ti(r,e,t){return ZD("serialize",r,e,t)}var Pc=class{constructor(e){this.description=e;}},zE="Bare Item",XD="Boolean";function JD(r){if(typeof r!="boolean")throw ti(r,XD);return r?"?1":"?0"}function QD(r){return btoa(String.fromCharCode(...r))}var eP="Byte Sequence";function tP(r){if(ArrayBuffer.isView(r)===false)throw ti(r,eP);return `:${QD(r)}:`}var rP="Integer";function iP(r){return r<-999999999999999||999999999999999<r}function iS(r){if(iP(r))throw ti(r,rP);return r.toString()}function nP(r){return `@${iS(r.getTime()/1e3)}`}function nS(r,e){if(r<0)return -nS(-r,e);let t=Math.pow(10,e);if(Math.abs(r*t%1-.5)<Number.EPSILON){let n=Math.floor(r*t);return (n%2===0?n:n+1)/t}else return Math.round(r*t)/t}var sP="Decimal";function aP(r){let e=nS(r,3);if(Math.floor(Math.abs(e)).toString().length>12)throw ti(r,sP);let t=e.toString();return t.includes(".")?t:`${t}.0`}var oP="String",lP=/[\x00-\x1f\x7f]+/;function cP(r){if(lP.test(r))throw ti(r,oP);return `"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function uP(r){return r.description||r.toString().slice(7,-1)}var dP="Token";function GE(r){let e=uP(r);if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===false)throw ti(e,dP);return e}function $f(r){switch(typeof r){case "number":if(!te(r))throw ti(r,zE);return Number.isInteger(r)?iS(r):aP(r);case "string":return cP(r);case "symbol":return GE(r);case "boolean":return JD(r);case "object":if(r instanceof Date)return nP(r);if(r instanceof Uint8Array)return tP(r);if(r instanceof Pc)return GE(r);default:throw ti(r,zE)}}var hP="Key";function zf(r){if(/^[a-z*][a-z0-9\-_.*]*$/.test(r)===false)throw ti(r,hP);return r}function Dp(r){return r==null?"":Object.entries(r).map(([e,t])=>t===true?`;${zf(e)}`:`;${zf(e)}=${$f(t)}`).join("")}function sS(r){return r instanceof Di?`${$f(r.value)}${Dp(r.params)}`:$f(r)}function fP(r){return `(${r.value.map(sS).join(" ")})${Dp(r.params)}`}function pP(r,e={whitespace:true}){if(typeof r!="object"||r==null)throw ti(r,qD);let t=r instanceof Map?r.entries():Object.entries(r),i=e?.whitespace?" ":"";return Array.from(t).map(([n,s])=>{s instanceof Di||(s=new Di(s));let a=zf(n);return s.value===true?a+=Dp(s.params):(a+="=",Array.isArray(s.value)?a+=fP(s):a+=sS(s)),a}).join(`,${i}`)}function aS(r,e){return pP(r,e)}var Xr="CMCD-Object",ft="CMCD-Request",On="CMCD-Session",nn="CMCD-Status",mP={br:Xr,ab:Xr,d:Xr,ot:Xr,tb:Xr,tpb:Xr,lb:Xr,tab:Xr,lab:Xr,url:Xr,pb:ft,bl:ft,tbl:ft,dl:ft,ltc:ft,mtp:ft,nor:ft,nrr:ft,rc:ft,sn:ft,sta:ft,su:ft,ttfb:ft,ttfbb:ft,ttlb:ft,cmsdd:ft,cmsds:ft,smrt:ft,df:ft,cs:ft,ts:ft,cid:On,pr:On,sf:On,sid:On,st:On,v:On,msd:On,bs:nn,bsd:nn,cdn:nn,rtp:nn,bg:nn,pt:nn,ec:nn,e:nn},gP={REQUEST:ft};function yP(r){return Object.keys(r).reduce((e,t)=>{var i;return (i=r[t])===null||i===void 0||i.forEach(n=>e[n]=t),e},{})}function vP(r,e){let t={};if(!r)return t;let i=Object.keys(r),n=e?yP(e):{};return i.reduce((s,a)=>{var o;let c=mP[a]||n[a]||gP.REQUEST,l=(o=s[c])!==null&&o!==void 0?o:s[c]={};return l[a]=r[a],s},t)}function xP(r){return ["ot","sf","st","e","sta"].includes(r)}function EP(r){return typeof r=="number"?te(r):r!=null&&r!==""&&r!==false}var oS="event";function bP(r,e){let t=new URL(r),i=new URL(e);if(t.origin!==i.origin)return r;let n=t.pathname.split("/").slice(1),s=i.pathname.split("/").slice(1,-1);for(;n[0]===s[0];)n.shift(),s.shift();for(;s.length;)s.shift(),n.unshift("..");return n.join("/")+t.search+t.hash}var hc=r=>Math.round(r),Gf=(r,e)=>Array.isArray(r)?r.map(t=>Gf(t,e)):r instanceof Di&&typeof r.value=="string"?new Di(Gf(r.value,e),r.params):(e.baseUrl&&(r=bP(r,e.baseUrl)),e.version===1?encodeURIComponent(r):r),tc=r=>hc(r/100)*100,SP=(r,e)=>{let t=r;return e.version>=2&&(r instanceof Di&&typeof r.value=="string"?t=new Di([r]):typeof r=="string"&&(t=[r])),Gf(t,e)},_P={br:hc,d:hc,bl:tc,dl:tc,mtp:tc,nor:SP,rtp:tc,tb:hc},lS="request",cS="response",Pp=["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"],TP=["e"],wP=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function Hc(r){return wP.test(r)}function AP(r){return Pp.includes(r)||TP.includes(r)||Hc(r)}var uS=["d","dl","nor","ot","rtp","su"];function kP(r){return Pp.includes(r)||uS.includes(r)||Hc(r)}var IP=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"];function LP(r){return Pp.includes(r)||uS.includes(r)||IP.includes(r)||Hc(r)}var RP=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function CP(r){return RP.includes(r)||Hc(r)}var DP={[cS]:LP,[oS]:AP,[lS]:kP};function dS(r,e={}){let t={};if(r==null||typeof r!="object")return t;let i=e.version||r.v||1,n=e.reportingMode||lS,s=i===1?CP:DP[n],a=Object.keys(r).filter(s),o=e.filter;typeof o=="function"&&(a=a.filter(o));let c=n===cS||n===oS;c&&!a.includes("ts")&&a.push("ts"),i>1&&!a.includes("v")&&a.push("v");let l=Je({},_P,e.formatters),u={version:i,reportingMode:n,baseUrl:e.baseUrl};return a.sort().forEach(d=>{let h=r[d],f=l[d];if(typeof f=="function"&&(h=f(h,u)),d==="v"){if(i===1)return;h=i;}d=="pr"&&h===1||(c&&d==="ts"&&!te(h)&&(h=Date.now()),EP(h)&&(xP(d)&&typeof h=="string"&&(h=new Pc(h)),t[d]=h));}),t}function PP(r,e={}){let t={};if(!r)return t;let i=dS(r,e),n=vP(i,e?.customHeaderMap);return Object.entries(n).reduce((s,[a,o])=>{let c=aS(o,{whitespace:false});return c&&(s[a]=c),s},t)}function MP(r,e,t){return Je(r,PP(e,t))}var OP="CMCD";function FP(r,e={}){return r?aS(dS(r,e),{whitespace:false}):""}function NP(r,e={}){if(!r)return "";let t=FP(r,e);return encodeURIComponent(t)}function BP(r,e={}){if(!r)return "";let t=NP(r,e);return `${OP}=${t}`}var HE=/CMCD=[^&#]+/;function UP(r,e,t){let i=BP(e,t);if(!i)return r;if(HE.test(r))return r.replace(HE,i);let n=r.includes("?")?"&":"?";return `${r}${n}${i}`}var Hf=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=false,this.includeKeys=void 0,this.initialized=false,this.starved=false,this.buffering=true,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=true),this.buffering=true;},this.onPlaying=()=>{this.initialized||(this.initialized=true),this.buffering=false;},this.applyPlaylistData=n=>{try{this.apply(n,{ot:rr.MANIFEST,su:!this.initialized});}catch(s){this.hls.logger.warn("Could not generate manifest CMCD data.",s);}},this.applyFragmentData=n=>{try{let{frag:s,part:a}=n,o=this.hls.levels[s.level],c=this.getObjectType(s),l={d:(a||s).duration*1e3,ot:c};(c===rr.VIDEO||c===rr.AUDIO||c==rr.MUXED)&&(l.br=o.bitrate/1e3,l.tb=this.getTopBandwidth(c)/1e3,l.bl=this.getBufferLength(c));let u=a?this.getNextPart(a):this.getNextFrag(s);u!=null&&u.url&&u.url!==s.url&&(l.nor=u.url),this.apply(n,l);}catch(s){this.hls.logger.warn("Could not generate segment CMCD data.",s);}},this.hls=e;let t=this.config=e.config,{cmcd:i}=t;i!=null&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||e.sessionId,this.cid=i.contentId,this.useHeaders=i.useHeaders===true,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,n;this.audioBuffer=(i=t.tracks.audio)==null?void 0:i.buffer,this.videoBuffer=(n=t.tracks.video)==null?void 0:n.buffer;}createData(){var e;return {v:1,sf:WD.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,t={}){Je(t,this.createData());let i=t.ot===rr.INIT||t.ot===rr.VIDEO||t.ot===rr.MUXED;this.starved&&i&&(t.bs=true,t.su=true,this.starved=false),t.su==null&&(t.su=this.buffering);let{includeKeys:n}=this;n&&(t=Object.keys(t).reduce((a,o)=>(n.includes(o)&&(a[o]=t[o]),a),{}));let s={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),MP(e.headers,t,s)):e.url=UP(e.url,t,s);}getNextFrag(e){var t;let i=(t=this.hls.levels[e.level])==null?void 0:t.details;if(i){let n=e.sn-i.startSN;return i.fragments[n+1]}}getNextPart(e){var t;let{index:i,fragment:n}=e,s=(t=this.hls.levels[n.level])==null||(t=t.details)==null?void 0:t.partList;if(s){let{sn:a}=n;for(let o=s.length-1;o>=0;o--){let c=s[o];if(c.index===i&&c.fragment.sn===a)return s[o+1]}}}getObjectType(e){let{type:t}=e;if(t==="subtitle")return rr.TIMED_TEXT;if(e.sn==="initSegment")return rr.INIT;if(t==="audio")return rr.AUDIO;if(t==="main")return this.hls.audioTracks.length?rr.VIDEO:rr.MUXED}getTopBandwidth(e){let t=0,i,n=this.hls;if(e===rr.AUDIO)i=n.audioTracks;else {let s=n.maxAutoLevel,a=s>-1?s+1:n.levels.length;i=n.levels.slice(0,a);}return i.forEach(s=>{s.bitrate>t&&(t=s.bitrate);}),t>0?t:NaN}getBufferLength(e){let t=this.media,i=e===rr.AUDIO?this.audioBuffer:this.videoBuffer;return !i||!t?NaN:Re.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){let{pLoader:e}=this.config,t=this.applyPlaylistData,i=e||this.config.loader;return class{constructor(s){this.loader=void 0,this.loader=new i(s);}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy();}abort(){this.loader.abort();}load(s,a,o){t(s),this.loader.load(s,a,o);}}}createFragmentLoader(){let{fLoader:e}=this.config,t=this.applyFragmentData,i=e||this.config.loader;return class{constructor(s){this.loader=void 0,this.loader=new i(s);}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy();}abort(){this.loader.abort();}load(s,a,o){t(s),this.loader.load(s,a,o);}}}},$P=3e5,Kf=class extends nr{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=false,this.enabled=true,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)=>(e.indexOf(t.pathwayId)===-1&&e.push(t.pathwayId),e),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(e){this.updatePathwayPriority(e);}startLoad(){if(this.started=true,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=this.timeToLoad*1e3-(performance.now()-this.updated);if(e>0){this.scheduleRefresh(this.uri,e);return}}this.loadSteeringManifest(this.uri);}}stopLoad(){this.started=false,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout();}clearTimeout(){this.reloadTimer!==-1&&(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(i=>i!==e));}onManifestLoading(){this.stopLoad(),this.enabled=true,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null;}onManifestLoaded(e,t){let{contentSteering:i}=t;i!==null&&(this.pathwayId=i.pathwayId,this.uri=i.uri,this.started&&this.startLoad());}onManifestParsed(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks;}onError(e,t){let{errorAction:i}=t;if(i?.action===Dt.SendAlternateToPenaltyBox&&i.flags===dr.MoveAllAlternatesMatchingHost){let n=this.levels,s=this._pathwayPriority,a=this.pathwayId;if(t.context){let{groupId:o,pathwayId:c,type:l}=t.context;o&&n?a=this.getPathwayForGroupId(o,l,a):c&&(a=c);}a in this.penalizedPathways||(this.penalizedPathways[a]=performance.now()),!s&&n&&(s=this.pathways()),s&&s.length>1&&(this.updatePathwayPriority(s),i.resolved=this.pathwayId!==a),t.details===D.BUFFER_APPEND_ERROR&&!t.fatal?i.resolved=true:i.resolved||this.warn(`Could not resolve ${t.details} ("${t.error.message}") with content-steering for Pathway: ${a} levels: ${n&&n.length} priorities: ${tt(s)} penalized: ${tt(this.penalizedPathways)}`);}}filterParsedLevels(e){this.levels=e;let t=this.getLevelsForPathway(this.pathwayId);if(t.length===0){let i=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${i}"`),t=this.getLevelsForPathway(i),this.pathwayId=i;}return t.length!==e.length&&this.log(`Found ${t.length}/${e.length} levels in Pathway "${this.pathwayId}"`),t}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter(t=>e===t.pathwayId)}updatePathwayPriority(e){this._pathwayPriority=e;let t,i=this.penalizedPathways,n=performance.now();Object.keys(i).forEach(s=>{n-i[s]>$P&&delete i[s];});for(let s=0;s<e.length;s++){let a=e[s];if(a in i)continue;if(a===this.pathwayId)return;let o=this.hls.nextLoadLevel,c=this.hls.levels[o];if(t=this.getLevelsForPathway(a),t.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,Ob(t),this.hls.trigger(x.LEVELS_UPDATED,{levels:t});let l=this.hls.levels[o];c&&l&&this.levels&&(l.attrs["STABLE-VARIANT-ID"]!==c.attrs["STABLE-VARIANT-ID"]&&l.bitrate!==c.bitrate&&this.log(`Unstable Pathways change from bitrate ${c.bitrate} to ${l.bitrate}`),this.hls.nextLoadLevel=o);break}}}getPathwayForGroupId(e,t,i){let n=this.getLevelsForPathway(i).concat(this.levels||[]);for(let s=0;s<n.length;s++)if(t===Me.AUDIO_TRACK&&n[s].hasAudioGroup(e)||t===Me.SUBTITLE_TRACK&&n[s].hasSubtitleGroup(e))return n[s].pathwayId;return i}clonePathways(e){let t=this.levels;if(!t)return;let i={},n={};e.forEach(s=>{let{ID:a,"BASE-ID":o,"URI-REPLACEMENT":c}=s;if(t.some(u=>u.pathwayId===a))return;let l=this.getLevelsForPathway(o).map(u=>{let d=new dt(u.attrs);d["PATHWAY-ID"]=a;let h=d.AUDIO&&`${d.AUDIO}_clone_${a}`,f=d.SUBTITLES&&`${d.SUBTITLES}_clone_${a}`;h&&(i[d.AUDIO]=h,d.AUDIO=h),f&&(n[d.SUBTITLES]=f,d.SUBTITLES=f);let p=hS(u.uri,d["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",c),g=new zn({attrs:d,audioCodec:u.audioCodec,bitrate:u.bitrate,height:u.height,name:u.name,url:p,videoCodec:u.videoCodec,width:u.width});if(u.audioGroups)for(let m=1;m<u.audioGroups.length;m++)g.addGroupId("audio",`${u.audioGroups[m]}_clone_${a}`);if(u.subtitleGroups)for(let m=1;m<u.subtitleGroups.length;m++)g.addGroupId("text",`${u.subtitleGroups[m]}_clone_${a}`);return g});t.push(...l),KE(this.audioTracks,i,c,a),KE(this.subtitleTracks,n,c,a);});}loadSteeringManifest(e){let t=this.hls.config,i=t.loader;this.loader&&this.loader.destroy(),this.loader=new i(t);let n;try{n=new self.URL(e);}catch{this.enabled=false,this.log(`Failed to parse Steering Manifest URI: ${e}`);return}if(n.protocol!=="data:"){let u=(this.hls.bandwidthEstimate||t.abrEwmaDefaultEstimate)|0;n.searchParams.set("_HLS_pathway",this.pathwayId),n.searchParams.set("_HLS_throughput",""+u);}let s={responseType:"json",url:n.href},a=t.steeringManifestLoadPolicy.default,o=a.errorRetry||a.timeoutRetry||{},c={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:o.maxNumRetry||0,retryDelay:o.retryDelayMs||0,maxRetryDelay:o.maxRetryDelayMs||0},l={onSuccess:(u,d,h,f)=>{this.log(`Loaded steering manifest: "${n}"`);let p=u.data;if(p?.VERSION!==1){this.log(`Steering VERSION ${p.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=p.TTL;let{"RELOAD-URI":g,"PATHWAY-CLONES":m,"PATHWAY-PRIORITY":y}=p;if(g)try{this.uri=new self.URL(g,n).href;}catch{this.enabled=false,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${g}`);return}this.scheduleRefresh(this.uri||h.url),m&&this.clonePathways(m);let v={steeringManifest:p,url:n.toString()};this.hls.trigger(x.STEERING_MANIFEST_LOADED,v),y&&this.updatePathwayPriority(y);},onError:(u,d,h,f)=>{if(this.log(`Error loading steering manifest: ${u.code} ${u.text} (${d.url})`),this.stopLoad(),u.code===410){this.enabled=false,this.log(`Steering manifest ${d.url} no longer available`);return}let p=this.timeToLoad*1e3;if(u.code===429){let g=this.loader;if(typeof g?.getResponseHeader=="function"){let m=g.getResponseHeader("Retry-After");m&&(p=parseFloat(m)*1e3);}this.log(`Steering manifest ${d.url} rate limited`);return}this.scheduleRefresh(this.uri||d.url,p);},onTimeout:(u,d,h)=>{this.log(`Timeout loading steering manifest (${d.url})`),this.scheduleRefresh(this.uri||d.url);}};this.log(`Requesting steering manifest: ${n}`),this.loader.load(s,c,l);}scheduleRefresh(e,t=this.timeToLoad*1e3){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var i;let n=(i=this.hls)==null?void 0:i.media;if(n&&!n.ended){this.loadSteeringManifest(e);return}this.scheduleRefresh(e,this.timeToLoad*1e3);},t);}};function KE(r,e,t,i){r&&Object.keys(e).forEach(n=>{let s=r.filter(a=>a.groupId===n).map(a=>{let o=Je({},a);return o.details=void 0,o.attrs=new dt(o.attrs),o.url=o.attrs.URI=hS(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),o.groupId=o.attrs["GROUP-ID"]=e[n],o.attrs["PATHWAY-ID"]=i,o});r.push(...s);});}function hS(r,e,t,i){let{HOST:n,PARAMS:s,[t]:a}=i,o;e&&(o=a?.[e],o&&(r=o));let c=new self.URL(r);return n&&!o&&(c.host=n),s&&Object.keys(s).sort().forEach(l=>{l&&c.searchParams.set(l,s[l]);}),c.href}var Mc=class r extends nr{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=r.CDMCleanupPromise?[r.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=t=>{let{initDataType:i,initData:n}=t,s=`"${t.type}" event: init data type: "${i}"`;if(this.debug(s),n!==null){if(!this.keyFormatPromise){let a=Object.keys(this.keySystemAccessPromises);a.length||(a=so(this.config));let o=a.map(Mh).filter(c=>!!c);this.keyFormatPromise=this.getKeyFormatPromise(o);}this.keyFormatPromise.then(a=>{let o=uc(a);if(i!=="sinf"||o!==ht.FAIRPLAY){this.log(`Ignoring "${t.type}" event with init data type: "${i}" for selected key-system ${o}`);return}let c;try{let f=At(new Uint8Array(n)),p=wp(JSON.parse(f).sinf),g=hb(p);if(!g)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");c=new Uint8Array(g.subarray(8,24));}catch(f){this.warn(`${s} Failed to parse sinf: ${f}`);return}let l=Bt(c),{keyIdToKeySessionPromise:u,mediaKeySessions:d}=this,h=u[l];for(let f=0;f<d.length;f++){let p=d[f],g=p.decryptdata;if(!g.keyId)continue;let m=Bt(g.keyId);if(wc(c,g.keyId)||g.uri.replace(/-/g,"").indexOf(l)!==-1){if(h=u[m],!h)continue;if(g.pssh)break;delete u[m],g.pssh=new Uint8Array(n),g.keyId=c,h=u[l]=h.then(()=>this.generateRequestWithPreferredKeySession(p,i,n,"encrypted-event-key-match")),h.catch(y=>this.handleError(y));break}}h||this.handleError(new Error(`Key ID ${l} not encountered in playlist. Key-system sessions ${d.length}.`));}).catch(a=>this.handleError(a));}},this.onWaitingForKey=t=>{this.log(`"${t.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;}registerListeners(){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,n=t?.[e];if(n)return n.licenseUrl;if(e===ht.WIDEVINE&&i)return i}getLicenseServerUrlOrThrow(e){let t=this.getLicenseServerUrl(e);if(t===void 0)throw new Error(`no license server URL configured for key-system "${e}"`);return t}getServerCertificateUrl(e){let{drmSystems:t}=this.config,i=t?.[e];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`);}attemptKeySystemAccess(e){let t=this.hls.levels,i=(a,o,c)=>!!a&&c.indexOf(a)===o,n=t.map(a=>a.audioCodec).filter(i),s=t.map(a=>a.videoCodec).filter(i);return n.length+s.length===0&&s.push("avc1.42e01e"),new Promise((a,o)=>{let c=l=>{let u=l.shift();this.getMediaKeysPromise(u,n,s).then(d=>a({keySystem:u,mediaKeys:d})).catch(d=>{l.length?c(l):d instanceof Jt?o(d):o(new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_ACCESS,error:d,fatal:true},d.message));});};c(e);})}requestMediaKeySystemAccess(e,t){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let n=`Configured requestMediaKeySystemAccess is not a function ${i}`;return kb===null&&self.location.protocol==="http:"&&(n=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(n))}return i(e,t)}getMediaKeysPromise(e,t,i){var n;let s=BC(e,t,i,this.config.drmSystemOptions||{}),a=this.keySystemAccessPromises[e],o=(n=a)==null?void 0:n.keySystemAccess;if(!o){this.log(`Requesting encrypted media "${e}" key-system access with config: ${tt(s)}`),o=this.requestMediaKeySystemAccess(e,s);let c=a=this.keySystemAccessPromises[e]={keySystemAccess:o};return o.catch(l=>{this.log(`Failed to obtain access to key-system "${e}": ${l}`);}),o.then(l=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let u=this.fetchServerCertificate(e);this.log(`Create media-keys for "${e}"`);let d=c.mediaKeys=l.createMediaKeys().then(h=>(this.log(`Media-keys created for "${e}"`),c.hasMediaKeys=true,u.then(f=>f?this.setMediaKeysServerCertificate(h,e,f):h)));return d.catch(h=>{this.error(`Failed to create media-keys for "${e}"}: ${h}`);}),d})}return o.then(()=>a.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${Bt(e.keyId||[])} keyUri: ${e.uri}`);let n=i.createSession(),s={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:n,keyStatus:"status-pending"};return this.mediaKeySessions.push(s),s}renewKeySession(e){let t=e.decryptdata;if(t.pssh){let i=this.createMediaKeySessionContext(e),n=rc(t),s="cenc";this.keyIdToKeySessionPromise[n]=this.generateRequestWithPreferredKeySession(i,s,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 ${Bt(e.decryptdata.keyId||[])}
150
+ } (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})=>Mh(e)).filter(e=>!!e)}getKeySystemAccess(e){return this.getKeySystemSelectionPromise(e).then(({keySystem:t,mediaKeys:i})=>this.attemptSetMediaKeys(t,i))}selectKeySystem(e){return new Promise((t,i)=>{this.getKeySystemSelectionPromise(e).then(({keySystem:n})=>{let s=Mh(n);s?t(s):i(new Error(`Unable to find format for key-system "${n}"`));}).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=so(this.config),i=e.map(uc).filter(n=>!!n&&t.indexOf(n)!==-1);return this.selectKeySystem(i)}getKeyStatus(e){let{mediaKeySessions:t}=this;for(let i=0;i<t.length;i++){let n=zP(e,t[i]);if(n)return n}}loadKey(e){let t=e.keyInfo.decryptdata,i=rc(t),n=this.bannedKeyIds[i];if(n||this.getKeyStatus(t)==="internal-error"){let o=VE(n||"internal-error",t);return this.handleError(o,e.frag),Promise.reject(o)}let s=`(keyId: ${i} format: "${t.keyFormat}" method: ${t.method} uri: ${t.uri})`;this.log(`Starting session for key ${s}`);let a=this.keyIdToKeySessionPromise[i];if(!a){let o=this.getKeySystemForKeyPromise(t).then(({keySystem:c,mediaKeys:l})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${s}`),this.attemptSetMediaKeys(c,l).then(()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:c,mediaKeys:l,decryptdata:t}))))).then(c=>{let l="cenc",u=t.pssh?t.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(c,l,u,"playlist-key")});return o.catch(c=>this.handleError(c,e.frag)),this.keyIdToKeySessionPromise[i]=o,o}return a.catch(o=>{if(o instanceof Jt){let c=Ye({},o.data);this.getKeyStatus(t)==="internal-error"&&(c.decryptdata=t);let l=new Jt(c,o.message);this.handleError(l,e.frag);}}),a}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e,t){if(this.hls)if(e instanceof Jt){t&&(e.data.frag=t);let i=e.data.decryptdata;this.error(`${e.message}${i?` (${Bt(i.keyId||[])})`:""}`),this.hls.trigger(x.ERROR,e.data);}else this.error(e.message),this.hls.trigger(x.ERROR,{type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_KEYS,error:e,fatal:true});}getKeySystemForKeyPromise(e){let t=rc(e),i=this.keyIdToKeySessionPromise[t];if(!i){let n=uc(e.keyFormat),s=n?[n]:so(this.config);return this.attemptKeySystemAccess(s)}return i}getKeySystemSelectionPromise(e){if(e.length||(e=so(this.config)),e.length===0)throw new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:true},`Missing key-system license configuration options ${tt({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 n=Promise.all(i).then(()=>this.media?this.media.setMediaKeys(t):new Promise((s,a)=>{this.mediaResolved=()=>{if(this.mediaResolved=void 0,!this.media)return a(new Error("Attempted to set mediaKeys without media element attached"));this.mediaKeys=t,this.media.setMediaKeys(t).then(s).catch(a);};}));return this.mediaKeys=t,this.setMediaKeysQueue.push(n),n.then(()=>{this.log(`Media-keys set for "${e}"`),i.push(n),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(s=>i.indexOf(s)===-1);})}generateRequestWithPreferredKeySession(e,t,i,n){var s;let a=(s=this.config.drmSystems)==null||(s=s[e.keySystem])==null?void 0:s.generateRequest;if(a)try{let p=a.call(this.hls,t,i,e);if(!p)throw new Error("Invalid response from configured generateRequest filter");t=p.initDataType,i=p.initData?p.initData:null,e.decryptdata.pssh=i?new Uint8Array(i):null;}catch(p){if(this.warn(p.message),this.hls&&this.hls.config.debug)throw p}if(i===null)return this.log(`Skipping key-session request for "${n}" (no initData)`),Promise.resolve(e);let o=rc(e.decryptdata),c=e.decryptdata.uri;this.log(`Generating key-session request for "${n}" keyId: ${o} URI: ${c} (init data type: ${t} length: ${i.byteLength})`);let l=new Ap,u=e._onmessage=p=>{let g=e.mediaKeysSession;if(!g){l.emit("error",new Error("invalid state"));return}let{messageType:m,message:y}=p;this.log(`"${m}" message event for session "${g.sessionId}" message size: ${y.byteLength}`),m==="license-request"||m==="license-renewal"?this.renewLicense(e,y).catch(v=>{l.eventNames().length?l.emit("error",v):this.handleError(v);}):m==="license-release"?e.keySystem===ht.FAIRPLAY&&this.updateKeySession(e,gf("acknowledged")).then(()=>this.removeSession(e)).catch(v=>this.handleError(v)):this.warn(`unhandled media key message type "${m}"`);},d=(p,g)=>{g.keyStatus=p;let m;p.startsWith("usable")?l.emit("resolved"):p==="internal-error"||p==="output-restricted"||p==="output-downscaled"?m=VE(p,g.decryptdata):p==="expired"?m=new Error(`key expired (keyId: ${o})`):p==="released"?m=new Error("key released"):p==="status-pending"||this.warn(`unhandled key status change "${p}" (keyId: ${o})`),m&&(l.eventNames().length?l.emit("error",m):this.handleError(m));},h=e._onkeystatuseschange=p=>{if(!e.mediaKeysSession){l.emit("error",new Error("invalid state"));return}let m=this.getKeyStatuses(e);if(!Object.keys(m).some(b=>m[b]!=="status-pending"))return;if(m[o]==="expired"){this.log(`Expired key ${tt(m)} in key-session "${e.mediaKeysSession.sessionId}"`),this.renewKeySession(e);return}let v=m[o];if(v)d(v,e);else {var E;e.keyStatusTimeouts||(e.keyStatusTimeouts={}),(E=e.keyStatusTimeouts)[o]||(E[o]=self.setTimeout(()=>{if(!e.mediaKeysSession||!this.mediaKeys)return;let S=this.getKeyStatus(e.decryptdata);if(S&&S!=="status-pending")return this.log(`No status for keyId ${o} in key-session "${e.mediaKeysSession.sessionId}". Using session key-status ${S} from other session.`),d(S,e);this.log(`key status for ${o} in key-session "${e.mediaKeysSession.sessionId}" timed out after 1000ms`),v="internal-error",d(v,e);},1e3)),this.log(`No status for keyId ${o} (${tt(m)}).`);}};Qt(e.mediaKeysSession,"message",u),Qt(e.mediaKeysSession,"keystatuseschange",h);let f=new Promise((p,g)=>{l.on("error",g),l.on("resolved",p);});return e.mediaKeysSession.generateRequest(t,i).then(()=>{this.log(`Request generated for key-session "${e.mediaKeysSession.sessionId}" keyId: ${o} URI: ${c}`);}).catch(p=>{throw new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_SESSION,error:p,decryptdata:e.decryptdata,fatal:false},`Error generating key-session request: ${p}`)}).then(()=>f).catch(p=>(l.removeAllListeners(),this.removeSession(e).then(()=>{throw p}))).then(()=>(l.removeAllListeners(),e))}getKeyStatuses(e){let t={};return e.mediaKeysSession.keyStatuses.forEach((i,n)=>{if(typeof n=="string"&&typeof i=="object"){let o=n;n=i,i=o;}let s="buffer"in n?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n);if(e.keySystem===ht.PLAYREADY&&s.length===16){let o=Bt(s);t[o]=i,wb(s);}let a=Bt(s);i==="internal-error"&&(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=t.loader,n=new i(t),s=this.getServerCertificateUrl(e);return s?(this.log(`Fetching server certificate for "${e}"`),new Promise((a,o)=>{let c={responseType:"arraybuffer",url:s},l=t.certLoadPolicy.default,u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(h,f,p,g)=>{a(h.data);},onError:(h,f,p,g)=>{o(new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:true,networkDetails:p,response:Ye({url:c.url,data:void 0},h)},`"${e}" certificate request failed (${s}). Status: ${h.code} (${h.text})`));},onTimeout:(h,f,p)=>{o(new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:true,networkDetails:p,response:{url:c.url,data:void 0}},`"${e}" certificate request timed out (${s})`));},onAbort:(h,f,p)=>{o(new Error("aborted"));}};n.load(c,u,d);})):Promise.resolve()}setMediaKeysServerCertificate(e,t,i){return new Promise((n,s)=>{e.setServerCertificate(i).then(a=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i.byteLength}) on "${t}"`),n(e);}).catch(a=>{s(new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:true},a.message));});})}renewLicense(e,t){return this.requestLicense(e,new Uint8Array(t)).then(i=>this.updateKeySession(e,new Uint8Array(i)).catch(n=>{throw new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:e.decryptdata,error:n,fatal:false},n.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 n=new DOMParser().parseFromString(i,"application/xml"),s=n.querySelectorAll("HttpHeader");if(s.length>0){let u;for(let d=0,h=s.length;d<h;d++){var a,o;u=s[d];let f=(a=u.querySelector("name"))==null?void 0:a.textContent,p=(o=u.querySelector("value"))==null?void 0:o.textContent;f&&p&&e.setRequestHeader(f,p);}}let c=n.querySelector("Challenge"),l=c?.textContent;if(!l)throw new Error("Cannot find <Challenge> in key message");return gf(atob(l))}setupLicenseXHR(e,t,i,n){let s=this.config.licenseXhrSetup;return s?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return s.call(this.hls,e,t,i,n)}).catch(a=>{if(!i.decryptdata)throw a;return e.open("POST",t,true),s.call(this.hls,e,t,i,n)}).then(a=>(e.readyState||e.open("POST",t,true),{xhr:e,licenseChallenge:a||n})):(e.open("POST",t,true),Promise.resolve({xhr:e,licenseChallenge:n}))}requestLicense(e,t){let i=this.config.keyLoadPolicy.default;return new Promise((n,s)=>{let a=this.getLicenseServerUrlOrThrow(e.keySystem);this.log(`Sending license request to URL: ${a}`);let o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return s(new Error("invalid state"));if(o.readyState===4)if(o.status===200){this._requestLicenseFailureCount=0;let c=o.response;this.log(`License received ${c instanceof ArrayBuffer?c.byteLength:c}`);let l=this.config.licenseResponseCallback;if(l)try{c=l.call(this.hls,o,a,e);}catch(u){this.error(u);}n(c);}else {let c=i.errorRetry,l=c?c.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>l||o.status>=400&&o.status<500)s(new Jt({type:de.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:e.decryptdata,fatal:true,networkDetails:o,response:{url:a,data:void 0,code:o.status,text:o.statusText}},`License Request XHR failed (${a}). Status: ${o.status} (${o.statusText})`));else {let u=l-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${u} attempts left`),this.requestLicense(e,t).then(n,s);}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=o,this.setupLicenseXHR(o,a,e,t).then(({xhr:c,licenseChallenge:l})=>{e.keySystem==ht.PLAYREADY&&(l=this.unpackPlayReadyKeyMessage(c,l)),c.send(l);}).catch(s);})}onDestroying(){this.unregisterListeners(),this._clear();}onMediaAttached(e,t){if(!this.config.emeEnabled)return;let i=t.media;this.media=i,Qt(i,"encrypted",this.onMediaEncrypted),Qt(i,"waitingforkey",this.onWaitingForKey);let n=this.mediaResolved;n?n():this.mediaKeys=i.mediaKeys;}onMediaDetached(){let e=this.media;e&&(ir(e,"encrypted",this.onMediaEncrypted),ir(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,n=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,Zs.clearKeyUriToKeyIdMap();let s=n.length;r.CDMCleanupPromise=Promise.all(n.map(a=>this.removeSession(a)).concat((i==null||(e=i.setMediaKeys(null))==null?void 0:e.catch(a=>{this.log(`Could not clear media keys: ${a}`),this.hls&&this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:false,error:new Error(`Could not clear media keys: ${a}`)});}))||Promise.resolve())).catch(a=>{this.log(`Could not close sessions and clear media keys: ${a}`),this.hls&&this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:false,error:new Error(`Could not close sessions and clear media keys: ${a}`)});}).then(()=>{s&&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 i=t.reduce((n,s)=>(n.indexOf(s.keyFormat)===-1&&n.push(s.keyFormat),n),[]);this.log(`Selecting key-system from session-keys ${i.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(i);}}removeSession(e){let{mediaKeysSession:t,licenseXhr:i,decryptdata:n}=e;if(t){this.log(`Remove licenses and keys and close session "${t.sessionId}" keyId: ${Bt(n?.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 s=this.mediaKeySessions.indexOf(e);s>-1&&this.mediaKeySessions.splice(s,1);let{keyStatusTimeouts:a}=e;a&&Object.keys(a).forEach(l=>self.clearTimeout(a[l]));let{drmSystemOptions:o}=this.config;return ($C(o)?new Promise((l,u)=>{self.setTimeout(()=>u(new Error("MediaKeySession.remove() timeout")),8e3),t.remove().then(l).catch(u);}):Promise.resolve()).catch(l=>{this.log(`Could not remove session: ${l}`),this.hls&&this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:false,error:new Error(`Could not remove session: ${l}`)});}).then(()=>t.close()).catch(l=>{this.log(`Could not close session: ${l}`),this.hls&&this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:false,error:new Error(`Could not close session: ${l}`)});})}return Promise.resolve()}};Mc.CDMCleanupPromise=void 0;function rc(r){if(!r)throw new Error("Could not read keyId of undefined decryptdata");if(r.keyId===null)throw new Error("keyId is null");return Bt(r.keyId)}function zP(r,e){if(r.keyId&&e.mediaKeysSession.keyStatuses.has(r.keyId))return e.mediaKeysSession.keyStatuses.get(r.keyId);if(r.matches(e.decryptdata))return e.keyStatus}var Jt=class extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=new Error(t)),this.data=e,e.err=e.error;}};function VE(r,e){let t=r==="output-restricted",i=t?D.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:D.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new Jt({type:de.KEY_SYSTEM_ERROR,details:i,fatal:false,decryptdata:e},t?"HDCP level output restricted":`key status changed to "${r}"`)}var Vf=class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=false,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners();}setStreamController(e){this.streamController=e;}registerListeners(){this.hls.on(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=false,this.media=null;}onMediaAttaching(e,t){let i=this.hls.config;if(i.capLevelOnFPSDrop){let n=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=n,n&&typeof n.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=true),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod);}}onMediaDetaching(){this.media=null;}checkFPS(e,t,i){let n=performance.now();if(t){if(this.lastTime){let s=n-this.lastTime,a=i-this.lastDroppedFrames,o=t-this.lastDecodedFrames,c=1e3*a/s,l=this.hls;if(l.trigger(x.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),c>0&&a>l.config.fpsDroppedMonitoringThreshold*o){let u=l.currentLevel;l.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+u),u>0&&(l.autoLevelCapping===-1||l.autoLevelCapping>=u)&&(u=u-1,l.trigger(x.FPS_DROP_LEVEL_CAPPING,{level:u,droppedLevel:l.currentLevel}),l.autoLevelCapping=u,this.streamController.nextLevelSwitch());}}this.lastTime=n,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);}};function fS(r,e){let t;try{t=new Event("addtrack");}catch{t=document.createEvent("Event"),t.initEvent("addtrack",false,false);}t.track=r,e.dispatchEvent(t);}function pS(r,e){let t=r.mode;if(t==="disabled"&&(r.mode="hidden"),r.cues&&!r.cues.getCueById(e.id))try{if(r.addCue(e),!r.cues.getCueById(e.id))throw new Error(`addCue is failed for: ${e}`)}catch(i){Ze.debug(`[texttrack-utils]: ${i}`);try{let n=new self.TextTrackCue(e.startTime,e.endTime,e.text);n.id=e.id,r.addCue(n);}catch(n){Ze.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${n}`);}}t==="disabled"&&(r.mode=t);}function Hs(r,e){let t=r.mode;if(t==="disabled"&&(r.mode="hidden"),r.cues)for(let i=r.cues.length;i--;)e&&r.cues[i].removeEventListener("enter",e),r.removeCue(r.cues[i]);t==="disabled"&&(r.mode=t);}function jf(r,e,t,i){let n=r.mode;if(n==="disabled"&&(r.mode="hidden"),r.cues&&r.cues.length>0){let s=HP(r.cues,e,t);for(let a=0;a<s.length;a++)(!i||i(s[a]))&&r.removeCue(s[a]);}n==="disabled"&&(r.mode=n);}function GP(r,e){if(e<=r[0].startTime)return 0;let t=r.length-1;if(e>r[t].endTime)return -1;let i=0,n=t,s;for(;i<=n;)if(s=Math.floor((n+i)/2),e<r[s].startTime)n=s-1;else if(e>r[s].startTime&&i<t)i=s+1;else return s;return r[i].startTime-e<e-r[n].startTime?i:n}function HP(r,e,t){let i=[],n=GP(r,e);if(n>-1)for(let s=n,a=r.length;s<a;s++){let o=r[s];if(o.startTime>=e&&o.endTime<=t)i.push(o);else if(o.startTime>t)return i}return i}function fc(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];(i.kind==="subtitles"||i.kind==="captions")&&i.label&&e.push(r[t]);}return e}var Wf=class extends bo{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=true,this.queuedDefaultTrack=-1,this.useTextTrackPolling=false,this.subtitlePollingInterval=-1,this._subtitleDisplay=true,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let t=null,i=fc(this.media.textTracks);for(let s=0;s<i.length;s++)if(i[s].mode==="hidden")t=i[s];else if(i[s].mode==="showing"){t=i[s];break}let n=this.findTrackForTextTrack(t);this.subtitleTrack!==n&&this.setSubtitleTrack(n);},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 n=!!t.transferMedia;if(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,n)return;fc(i.textTracks).forEach(a=>{Hs(a);});}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=true;}onManifestParsed(e,t){this.tracks=t.subtitleTracks;}onSubtitleTrackLoaded(e,t){let{id:i,groupId:n,details:s}=t,a=this.tracksInGroup[i];if(!a||a.groupId!==n){this.warn(`Subtitle track with id:${i} and group:${n} not found in active group ${a?.groupId}`);return}let o=a.details;a.details=t.details,this.log(`Subtitle track ${i} "${a.name}" lang:${a.lang} group:${n} loaded [${s.startSN}-${s.endSN}]`),i===this.trackId&&this.playlistLoaded(i,t,o);}onLevelLoading(e,t){this.switchLevel(t.level);}onLevelSwitching(e,t){this.switchLevel(t.level);}switchLevel(e){let t=this.hls.levels[e];if(!t)return;let i=t.subtitleGroups||null,n=this.groupIds,s=this.currentTrack;if(!i||n?.length!==i?.length||i!=null&&i.some(a=>n?.indexOf(a)===-1)){this.groupIds=i,this.trackId=-1,this.currentTrack=null;let a=this.tracks.filter(u=>!i||i.indexOf(u.groupId)!==-1);if(a.length)this.selectDefaultTrack&&!a.some(u=>u.default)&&(this.selectDefaultTrack=false),a.forEach((u,d)=>{u.id=d;});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=a;let o=this.hls.config.subtitlePreference;if(!s&&o){this.selectDefaultTrack=false;let u=ei(o,a);if(u>-1)s=a[u];else {let d=ei(o,this.tracks);s=this.tracks[d];}}let c=this.findTrackId(s);c===-1&&s&&(c=this.findTrackId(null));let l={subtitleTracks:a};this.log(`Updating subtitle tracks, ${a.length} track(s) found in "${i?.join(",")}" group-id`),this.hls.trigger(x.SUBTITLE_TRACKS_UPDATED,l),c!==-1&&this.trackId===-1&&this.setSubtitleTrack(c);}}findTrackId(e){let t=this.tracksInGroup,i=this.selectDefaultTrack;for(let n=0;n<t.length;n++){let s=t[n];if(!(i&&!s.default||!i&&!e)&&(!e||Un(s,e)))return n}if(e){for(let n=0;n<t.length;n++){let s=t[n];if(So(e.attrs,s.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return n}for(let n=0;n<t.length;n++){let s=t[n];if(So(e.attrs,s.attrs,["LANGUAGE"]))return n}}return -1}findTrackForTextTrack(e){if(e){let t=this.tracksInGroup;for(let i=0;i<t.length;i++){let n=t[i];if(Mf(n,e))return i}}return -1}onError(e,t){t.fatal||!t.context||t.context.type===Me.SUBTITLE_TRACK&&t.context.id===this.trackId&&(!this.groupIds||this.groupIds.indexOf(t.context.groupId)!==-1)&&this.checkRetry(t);}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=false,this.setSubtitleTrack(e);}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){if(e.id===-1)return this.setSubtitleTrack(-1),null;let t=this.allSubtitleTracks;if(this.selectDefaultTrack=false,t.length){let i=this.currentTrack;if(i&&Un(e,i))return i;let n=ei(e,this.tracksInGroup);if(n>-1){let s=this.tracksInGroup[n];return this.setSubtitleTrack(n),s}else {if(i)return null;{let s=ei(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,n=e.groupId,s=this.getUrlWithDirectives(e.url,t),a=e.details,o=a?.age;this.log(`Loading subtitle ${i} "${e.name}" lang:${e.lang} group:${n}${t?.msn!==void 0?" at sn "+t.msn+" part "+t.part:""}${o&&a.live?" age "+o.toFixed(1)+(a.type&&" "+a.type||""):""} ${s}`),this.hls.trigger(x.SUBTITLE_TRACK_LOADING,{url:s,id:i,groupId:n,deliveryDirectives:t||null,track:e});}toggleTrackModes(){let{media:e}=this;if(!e)return;let t=fc(e.textTracks),i=this.currentTrack,n;if(i&&(n=t.filter(s=>Mf(i,s))[0],n||this.warn(`Unable to find subtitle TextTrack with name "${i.name}" and language "${i.lang}"`)),[].slice.call(t).forEach(s=>{s.mode!=="disabled"&&s!==n&&(s.mode="disabled");}),n){let s=this.subtitleDisplay?"showing":"hidden";n.mode!==s&&(n.mode=s);}}setSubtitleTrack(e){let t=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=e;return}if(e<-1||e>=t.length||!te(e)){this.warn(`Invalid subtitle track id: ${e}`);return}this.selectDefaultTrack=false;let i=this.currentTrack,n=t[e]||null;if(this.trackId=e,this.currentTrack=n,this.toggleTrackModes(),!n){this.hls.trigger(x.SUBTITLE_TRACK_SWITCH,{id:e});return}let s=!!n.details&&!n.details.live;if(e===this.trackId&&n===i&&s)return;this.log(`Switching to subtitle-track ${e}`+(n?` "${n.name}" lang:${n.lang} group:${n.groupId}`:""));let{id:a,groupId:o="",name:c,type:l,url:u}=n;this.hls.trigger(x.SUBTITLE_TRACK_SWITCH,{id:a,groupId:o,name:c,type:l,url:u});let d=this.switchParams(n.url,i?.details,n.details);this.loadPlaylist(d);}};function KP(){try{return crypto.randomUUID()}catch{try{let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}catch{let t=new Date().getTime();return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{let s=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(n=="x"?s:s&3|8).toString(16)})}}}function lo(r){let e=5381,t=r.length;for(;t;)e=e*33^r.charCodeAt(--t);return (e>>>0).toString()}var qs=.025,Oc=(function(r){return r[r.Point=0]="Point",r[r.Range=1]="Range",r})({});function VP(r,e,t){return `${r.identifier}-${t+1}-${lo(e)}`}var qf=class{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=false,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:false,jump:false},this.snapOptions={out:false,in:false},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=false,(e=this.assetListLoader)==null||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 true;let i=this.playoutLimit;return e<=0||isNaN(i)?false:i===0?true:(((t=this.assetList[e])==null?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 Hh(e,t)}return e}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(this.startTime===0||this.snapOptions.out)return true;let e=this.dateRange.tagAnchor;if(e){let t=this.dateRange.startTime,i=Hh(t,e);return t-i<.1}return false}get resumptionOffset(){let e=this.resumeOffset,t=te(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 Hh(e,t)}return e}get appendInPlace(){return this.appendInPlaceStarted?true:this.appendInPlaceDisabled?false:!!(!this.cue.once&&!this.cue.pre&&this.startIsAligned&&(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)<qs))}set appendInPlace(e){if(this.appendInPlaceStarted){this.resetOnResume=!e;return}this.appendInPlaceDisabled=!e;}get timelineStart(){return this._timelineStart!==null?this._timelineStart:this.startTime}set timelineStart(e){this._timelineStart=e;}get duration(){let e=this.playoutLimit,t;return this._duration!==null?t=this._duration:this.dateRange.duration?t=this.dateRange.duration:t=this.dateRange.plannedDuration||0,!isNaN(e)&&e<t&&(t=e),t}set duration(e){this._duration=e;}get cue(){return this.dateRange.cue}get timelineOccupancy(){return this.dateRange.attr["X-TIMELINE-OCCUPIES"]==="RANGE"?Oc.Range:Oc.Point}get supplementsPrimary(){return this.dateRange.attr["X-TIMELINE-STYLE"]==="PRIMARY"}get contentMayVary(){return this.dateRange.attr["X-CONTENT-MAY-VARY"]!=="NO"}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||this.assetListResponse!==null}toString(){return jP(this)}};function Hh(r,e){return r-e.start<e.duration/2&&!(Math.abs(r-(e.start+e.duration))<qs)?e.start:e.start+e.duration}function mS(r,e,t){let i=new self.URL(r,t);return i.protocol!=="data:"&&i.searchParams.set("_HLS_primary_id",e),i}function Kh(r,e){for(;(t=r.assetList[++e])!=null&&t.error;)var t;return e}function jP(r){return `["${r.identifier}" ${r.cue.pre?"<pre>":r.cue.post?"<post>":""}${r.timelineStart.toFixed(2)}-${r.resumeTime.toFixed(2)}]`}function Gs(r){let e=r.timelineStart,t=r.duration||0;return `["${r.identifier}" ${e.toFixed(2)}-${(e+t).toFixed(2)}]`}var Yf=class{constructor(e,t,i,n){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetails=false,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,{});};let s=this.hls=new e(t);this.interstitial=i,this.assetItem=n;let a=()=>{this.hasDetails=true;};s.once(x.LEVEL_LOADED,a),s.once(x.AUDIO_TRACK_LOADED,a),s.once(x.SUBTITLE_TRACK_LOADED,a),s.on(x.MEDIA_ATTACHING,(o,{media:c})=>{this.removeMediaListeners(),this.mediaAttached=c,this.interstitial.playoutLimit&&(c.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace&&s.on(x.BUFFER_APPENDED,()=>{let u=this.bufferedEnd;this.reachedPlayout(u)&&(this._bufferedEosTime=u,s.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,true);else {let t=this.assetItem.uri;try{t=mS(t,e.config.primarySessionId||"").href;}catch{}e.loadSource(t);}}bufferedInPlaceToEnd(e){var t;if(!this.appendInPlace)return false;if((t=this.hls)!=null&&t.bufferedToEnd)return true;if(!e)return false;let i=Math.min(this._bufferedEosTime||1/0,this.duration),n=this.timelineOffset,s=Re.bufferInfo(e,n,0);return this.getAssetTime(s.end)>=i-.02}reachedPlayout(e){let i=this.interstitial.playoutLimit;return this.startOffset+e>=i}get destroyed(){var e;return !((e=this.hls)!=null&&e.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var e;return ((e=this.hls)==null?void 0:e.media)||null}get bufferedEnd(){let e=this.media||this.mediaAttached;if(!e)return this._bufferedEosTime?this._bufferedEosTime:this.currentTime;let t=Re.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 ((e=this.hls)==null?void 0:e.config.timelineOffset)||0}set timelineOffset(e){let t=this.timelineOffset;if(e!==t){let i=e-t;if(Math.abs(i)>1/9e4&&this.hls){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e;}}}getAssetTime(e){let t=this.timelineOffset,i=this.duration;return Math.min(Math.max(0,e-t),i)}removeMediaListeners(){let e=this.mediaAttached;e&&(this._currentTime=e.currentTime,this.bufferSnapShot(),e.removeEventListener("timeupdate",this.checkPlayout));}bufferSnapShot(){if(this.mediaAttached){var e;(e=this.hls)!=null&&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(),(t=this.hls)==null||t.attachMedia(e);}detachMedia(){var e;this.removeMediaListeners(),this.mediaAttached=null,(e=this.hls)==null||e.detachMedia();}resumeBuffering(){var e;(e=this.hls)==null||e.resumeBuffering();}pauseBuffering(){var e;(e=this.hls)==null||e.pauseBuffering();}transferMedia(){var e;return this.bufferSnapShot(),((e=this.hls)==null?void 0:e.transferMedia())||null}resetDetails(){let e=this.hls;if(e&&this.hasDetails){e.stopLoad();let t=i=>delete i.details;e.levels.forEach(t),e.allAudioTracks.forEach(t),e.allSubtitleTracks.forEach(t),this.hasDetails=false;}}on(e,t,i){var n;(n=this.hls)==null||n.on(e,t);}once(e,t,i){var n;(n=this.hls)==null||n.once(e,t);}off(e,t,i){var n;(n=this.hls)==null||n.off(e,t);}toString(){var e;return `HlsAssetPlayer: ${Gs(this.assetItem)} ${(e=this.hls)==null?void 0:e.sessionId} ${this.appendInPlace?"append-in-place":""}`}},jE=.033,Zf=class extends nr{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={},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,n)=>e<=n.startOffset&&t>n.startOffset?(delete n.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 n=this.items;if(n)for(n[i]||(t===void 0&&(t=e.start),i=this.findItemIndexAtTime(t));i>=0&&(s=n[i])!=null&&s.event;){var s;i--;}return i}findItemIndexAtTime(e,t){let i=this.items;if(i)for(let n=0;n<i.length;n++){let s=i[n];if(t&&t!=="primary"&&(s=s[t]),e===s.start||e>s.start&&e<s.end)return n}return -1}findJumpRestrictedIndex(e,t){let i=this.items;if(i)for(let n=e;n<=t&&i[n];n++){let s=i[n].event;if(s!=null&&s.restrictions.jump&&!s.appendInPlace)return n}return -1}findEventIndex(e){let t=this.items;if(t)for(let n=t.length;n--;){var i;if(((i=t[n].event)==null?void 0:i.identifier)===e)return n}return -1}findAssetIndex(e,t){let i=e.assetList,n=i.length;if(n>1)for(let s=0;s<n;s++){let a=i[s];if(!a.error){let o=a.timelineStart;if(t===o||t>o&&(t<o+(a.duration||0)||s===n-1))return s}}return 0}get assetIdAtEnd(){var e;let t=(e=this.items)==null||(e=e[this.length-1])==null?void 0:e.event;if(t){let i=t.assetList,n=i[i.length-1];if(n)return n.identifier}return null}parseInterstitialDateRanges(e,t){let i=e.main.details,{dateRanges:n}=i,s=this.events,a=this.parseDateRanges(n,{url:i.url},t),o=Object.keys(n),c=s?s.filter(l=>!o.includes(l.identifier)):[];a.length&&a.sort((l,u)=>{let d=l.cue.pre,h=l.cue.post,f=u.cue.pre,p=u.cue.post;if(d&&!f)return -1;if(f&&!d||h&&!p)return 1;if(p&&!h)return -1;if(!d&&!f&&!h&&!p){let g=l.startTime,m=u.startTime;if(g!==m)return g-m}return l.dateRange.tagOrder-u.dateRange.tagOrder}),this.events=a,c.forEach(l=>{this.removeEvent(l);}),this.updateSchedule(e,c);}updateSchedule(e,t=[],i=false){let n=this.events||[];if(n.length||t.length||this.length<2){let s=this.items,a=this.parseSchedule(n,e);(i||t.length||s?.length!==a.length||a.some((c,l)=>Math.abs(c.playout.start-s[l].playout.start)>.005||Math.abs(c.playout.end-s[l].playout.end)>.005))&&(this.items=a,this.onScheduleUpdate(t,s));}}parseDateRanges(e,t,i){let n=[],s=Object.keys(e);for(let a=0;a<s.length;a++){let o=s[a],c=e[o];if(c.isInterstitial){let l=this.eventMap[o];l?l.setDateRange(c):(l=new qf(c,t),this.eventMap[o]=l,i===false&&(l.appendInPlace=i)),n.push(l);}}return n}parseSchedule(e,t){let i=[],n=t.main.details,s=n.live?1/0:n.edge,a=0;if(e=e.filter(c=>!c.error&&!(c.cue.once&&c.hasPlayed)),e.length){this.resolveOffsets(e,t);let c=0,l=0;if(e.forEach((u,d)=>{let h=u.cue.pre,f=u.cue.post,p=e[d-1]||null,g=u.appendInPlace,m=f?s:u.startOffset,y=u.duration,v=u.timelineOccupancy===Oc.Range?y:0,E=u.resumptionOffset,b=p?.startTime===m,S=m+u.cumulativeDuration,I=g?S+y:m+E;if(h||!f&&m<=0){let w=l;l+=v,u.timelineStart=S;let A=a;a+=y,i.push({event:u,start:S,end:I,playout:{start:A,end:a},integrated:{start:w,end:l}});}else if(m<=s){if(!b){let _=m-c;if(_>jE){let k=c,L=l;l+=_;let C=a;a+=_;let N={previousEvent:e[d-1]||null,nextEvent:u,start:k,end:k+_,playout:{start:C,end:a},integrated:{start:L,end:l}};i.push(N);}else _>0&&p&&(p.cumulativeDuration+=_,i[i.length-1].end=m);}f&&(I=S),u.timelineStart=S;let w=l;l+=v;let A=a;a+=y,i.push({event:u,start:S,end:I,playout:{start:A,end:a},integrated:{start:w,end:l}});}else return;let T=u.resumeTime;f||T>s?c=s:c=T;}),c<s){var o;let u=c,d=l,h=s-c;l+=h;let f=a;a+=h,i.push({previousEvent:((o=i[i.length-1])==null?void 0:o.event)||null,nextEvent:null,start:c,end:u+h,playout:{start:f,end:a},integrated:{start:d,end:l}});}this.setDurations(s,a,l);}else i.push({previousEvent:null,nextEvent:null,start:0,end:s,playout:{start:0,end:s},integrated:{start:0,end:s}}),this.setDurations(s,s,s);return i}setDurations(e,t,i){this.durations={primary:e,playout:t,integrated:i};}resolveOffsets(e,t){let i=t.main.details,n=i.live?1/0:i.edge,s=0,a=-1;e.forEach((o,c)=>{let l=o.cue.pre,u=o.cue.post,d=l?0:u?n:o.startTime;this.updateAssetDurations(o),a===d?o.cumulativeDuration=s:(s=0,a=d),!u&&o.snapOptions.in&&(o.resumeAnchor=Gn(null,i.fragments,o.startOffset+o.resumptionOffset,0,0)||void 0),o.appendInPlace&&!o.appendInPlaceStarted&&(this.primaryCanResumeInPlaceAt(o,t)||(o.appendInPlace=false)),!o.appendInPlace&&c+1<e.length&&e[c+1].startTime-e[c].resumeTime<jE&&(e[c+1].appendInPlace=false,e[c+1].appendInPlace&&this.warn(`Could not change append strategy for abutting event ${o}`));let f=te(o.resumeOffset)?o.resumeOffset:o.duration;s+=f;});}primaryCanResumeInPlaceAt(e,t){let i=e.resumeTime,n=e.startTime+e.resumptionOffset;return Math.abs(i-n)>qs?(this.log(`"${e.identifier}" resumption ${i} not aligned with estimated timeline end ${n}`),false):!Object.keys(t).some(a=>{let o=t[a].details,c=o.edge;if(i>=c)return this.log(`"${e.identifier}" resumption ${i} past ${a} playlist end ${c}`),false;let l=Gn(null,o.fragments,i);if(!l)return this.log(`"${e.identifier}" resumption ${i} does not align with any fragments in ${a} playlist (${o.fragStart}-${o.fragmentEnd})`),true;let u=a==="audio"?.175:0;return Math.abs(l.start-i)<qs+u||Math.abs(l.end-i)<qs+u?false:(this.log(`"${e.identifier}" resumption ${i} not aligned with ${a} fragment bounds (${l.start}-${l.end} sn: ${l.sn} cc: ${l.cc})`),true)})}updateAssetDurations(e){if(!e.assetListLoaded)return;let t=e.timelineStart,i=0,n=false,s=false;for(let a=0;a<e.assetList.length;a++){let o=e.assetList[a],c=t+i;o.startOffset=i,o.timelineStart=c,n||(n=o.duration===null),s||(s=!!o.error);let l=o.error?0:o.duration||0;i+=l;}n&&!s?e.duration=Math.max(i,e.duration):e.duration=i;}removeEvent(e){e.reset(),delete this.eventMap[e.identifier];}};function Or(r){return `[${r.event?'"'+r.event.identifier+'"':"primary"}: ${r.start.toFixed(2)}-${r.end.toFixed(2)}]`}var Xf=class{constructor(e){this.hls=void 0,this.hls=e;}destroy(){this.hls=null;}loadAssetList(e,t){let i=e.assetListUrl,n;try{n=mS(i,this.hls.sessionId,e.baseUrl);}catch(h){let f=this.assignAssetListError(e,D.ASSET_LIST_LOAD_ERROR,h,i);this.hls.trigger(x.ERROR,f);return}t&&n.protocol!=="data:"&&n.searchParams.set("_HLS_start_offset",""+t);let s=this.hls.config,a=s.loader,o=new a(s),c={responseType:"json",url:n.href},l=s.interstitialAssetListLoadPolicy.default,u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(h,f,p,g)=>{let m=h.data,y=m?.ASSETS;if(!Array.isArray(y)){let v=this.assignAssetListError(e,D.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),p.url,f,g);this.hls.trigger(x.ERROR,v);return}e.assetListResponse=m,this.hls.trigger(x.ASSET_LIST_LOADED,{event:e,assetListResponse:m,networkDetails:g});},onError:(h,f,p,g)=>{let m=this.assignAssetListError(e,D.ASSET_LIST_LOAD_ERROR,new Error(`Error loading X-ASSET-LIST: HTTP status ${h.code} ${h.text} (${f.url})`),f.url,g,p);this.hls.trigger(x.ERROR,m);},onTimeout:(h,f,p)=>{let g=this.assignAssetListError(e,D.ASSET_LIST_LOAD_TIMEOUT,new Error(`Timeout loading X-ASSET-LIST (${f.url})`),f.url,h,p);this.hls.trigger(x.ERROR,g);}};return o.load(c,u,d),this.hls.trigger(x.ASSET_LIST_LOADING,{event:e}),o}assignAssetListError(e,t,i,n,s,a){return e.error=i,{type:de.NETWORK_ERROR,details:t,fatal:false,interstitial:e,url:n,error:i,networkDetails:a,stats:s}}};function WE(r){var e;r==null||(e=r.play())==null||e.catch(()=>{});}function ic(r,e){return `[${r}] Advancing timeline position to ${e}`}var Jf=class extends nr{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=false,this.onPlay=()=>{this.shouldPlay=true;},this.onPause=()=>{this.shouldPlay=false;},this.onSeeking=()=>{let i=this.currentTime;if(i===void 0||this.playbackDisabled||!this.schedule)return;let n=i-this.timelinePos;if(Math.abs(n)<1/7056e5)return;let a=n<=-0.01;this.timelinePos=i,this.bufferedPos=i;let o=this.playingItem;if(!o){this.checkBuffer();return}if(a&&this.schedule.resetErrorsInRange(i,i-n)&&this.updateSchedule(true),this.checkBuffer(),a&&i<o.start||i>=o.end){var c;let f=this.findItemIndex(o),p=this.schedule.findItemIndexAtTime(i);if(p===-1&&(p=f+(a?-1:1),this.log(`seeked ${a?"back ":""}to position not covered by schedule ${i} (resolving from ${f} to ${p})`)),!this.isInterstitial(o)&&(c=this.media)!=null&&c.paused&&(this.shouldPlay=false),!a&&p>f){let g=this.schedule.findJumpRestrictedIndex(f+1,p);if(g>f){this.setSchedulePosition(g);return}}this.setSchedulePosition(p);return}let l=this.playingAsset;if(!l){if(this.playingLastItem&&this.isInterstitial(o)){let f=o.event.assetList[0];f&&(this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(i,f));}return}let u=l.timelineStart,d=l.duration||0;if(a&&i<u||i>=u+d){var h;(h=o.event)!=null&&h.appendInPlace&&(this.clearAssetPlayers(o.event,o),this.flushFrontBuffer(i)),this.setScheduleToAssetAtTime(i,l);}},this.onTimeupdate=()=>{let i=this.currentTime;if(i===void 0||this.playbackDisabled)return;if(i>this.timelinePos)this.timelinePos=i,i>this.bufferedPos&&this.checkBuffer();else return;let n=this.playingItem;if(!n||this.playingLastItem)return;if(i>=n.end){this.timelinePos=n.end;let o=this.findItemIndex(n);this.setSchedulePosition(o+1);}let s=this.playingAsset;if(!s)return;let a=s.timelineStart+(s.duration||0);i>=a&&this.setScheduleToAssetAtTime(i,s);},this.onScheduleUpdate=(i,n)=>{let s=this.schedule;if(!s)return;let a=this.playingItem,o=s.events||[],c=s.items||[],l=s.durations,u=i.map(g=>g.identifier),d=!!(o.length||u.length);(d||n)&&this.log(`INTERSTITIALS_UPDATED (${o.length}): ${o}
151
+ Schedule: ${c.map(g=>Or(g))} pos: ${this.timelinePos}`),u.length&&this.log(`Removed events ${u}`);let h=null,f=null;a&&(h=this.updateItem(a,this.timelinePos),this.itemsMatch(a,h)?this.playingItem=h:this.waitingItem=this.endedItem=null),this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);let p=this.bufferingItem;if(p&&(f=this.updateItem(p,this.bufferedPos),this.itemsMatch(p,f)?this.bufferingItem=f:p.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(p.event,null))),i.forEach(g=>{g.assetList.forEach(m=>{this.clearAssetPlayer(m.identifier,null);});}),this.playerQueue.forEach(g=>{if(g.interstitial.appendInPlace){let m=g.assetItem.timelineStart,y=g.timelineOffset-m;if(y)try{g.timelineOffset=m;}catch(v){Math.abs(y)>qs&&this.warn(`${v} ("${g.assetId}" ${g.timelineOffset}->${m})`);}}}),d||n){if(this.hls.trigger(x.INTERSTITIALS_UPDATED,{events:o.slice(0),schedule:c.slice(0),durations:l,removedIds:u}),this.isInterstitial(a)&&u.includes(a.event.identifier)){this.warn(`Interstitial "${a.event.identifier}" removed while playing`),this.primaryFallback(a.event);return}a&&this.trimInPlace(h,a),p&&f!==h&&this.trimInPlace(f,p),this.checkBuffer();}},this.hls=e,this.HlsPlayerClass=t,this.assetListLoader=new Xf(e),this.schedule=new Zf(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;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.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;(e=this.getBufferingPlayer())==null||e.resumeBuffering();}pauseBuffering(){var e;(e=this.getBufferingPlayer())==null||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){ir(e,"play",this.onPlay),ir(e,"pause",this.onPause),ir(e,"seeking",this.onSeeking),ir(e,"timeupdate",this.onTimeupdate);}onMediaAttaching(e,t){let i=this.media=t.media;Qt(i,"seeking",this.onSeeking),Qt(i,"timeupdate",this.onTimeupdate),Qt(i,"play",this.onPlay),Qt(i,"pause",this.onPause);}onMediaAttached(e,t){let i=this.effectivePlayingItem,n=this.detachedData;if(this.detachedData=null,i===null)this.checkStart();else if(!n){this.clearScheduleState();let s=this.findItemIndex(i);this.setSchedulePosition(s);}}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,n=this.media;if(this.media=null,!i&&(n&&this.removeMediaListeners(n),this.detachedData)){let s=this.getBufferingPlayer();s&&(this.log(`Removing schedule state for detachedData and ${s}`),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,s.detachMedia()),this.shouldPlay=false;}}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;let e=this,t=()=>e.bufferingItem||e.waitingItem,i=d=>d&&e.getAssetPlayer(d.identifier),n=(d,h,f,p,g)=>{if(d){let m=d[h].start,y=d.event;if(y){if(h==="playout"||y.timelineOccupancy!==Oc.Point){let v=i(f);v?.interstitial===y&&(m+=v.assetItem.startOffset+v[g]);}}else {let v=p==="bufferedPos"?a():e[p];m+=v-d.start;}return m}return 0},s=(d,h)=>{var f;if(d!==0&&h!=="primary"&&(f=e.schedule)!=null&&f.length){var p;let g=e.schedule.findItemIndexAtTime(d),m=(p=e.schedule.items)==null?void 0:p[g];if(m){let y=m[h].start-m.start;return d+y}}return d},a=()=>{let d=e.bufferedPos;return d===Number.MAX_VALUE?o("primary"):Math.max(d,0)},o=d=>{var h,f;return (h=e.primaryDetails)!=null&&h.live?e.primaryDetails.edge:((f=e.schedule)==null?void 0:f.durations[d])||0},c=(d,h)=>{var f,p;let g=e.effectivePlayingItem;if(g!=null&&(f=g.event)!=null&&f.restrictions.skip||!e.schedule)return;e.log(`seek to ${d} "${h}"`);let m=e.effectivePlayingItem,y=e.schedule.findItemIndexAtTime(d,h),v=(p=e.schedule.items)==null?void 0:p[y],E=e.getBufferingPlayer(),b=E?.interstitial,S=b?.appendInPlace,I=m&&e.itemsMatch(m,v);if(m&&(S||I)){let T=i(e.playingAsset),w=T?.media||e.primaryMedia;if(w){let A=h==="primary"?w.currentTime:n(m,h,e.playingAsset,"timelinePos","currentTime"),_=d-A,k=(S?A:w.currentTime)+_;if(k>=0&&(!T||S||k<=T.duration)){w.currentTime=k;return}}}if(v){let T=d;if(h!=="primary"){let A=v[h].start,_=d-A;T=v.start+_;}let w=!e.isInterstitial(v);if((!e.isInterstitial(m)||m.event.appendInPlace)&&(w||v.event.appendInPlace)){let A=e.media||(S?E?.media:null);A&&(A.currentTime=T);}else if(m){let A=e.findItemIndex(m);if(y>A){let k=e.schedule.findJumpRestrictedIndex(A+1,y);if(k>A){e.setSchedulePosition(k);return}}let _=0;if(w)e.timelinePos=T,e.checkBuffer();else {let k=v.event.assetList,L=d-(v[h]||v).start;for(let C=k.length;C--;){let N=k[C];if(N.duration&&L>=N.startOffset&&L<N.startOffset+N.duration){_=C;break}}}e.setSchedulePosition(y,_);}}},l=()=>{let d=e.effectivePlayingItem;if(e.isInterstitial(d))return d;let h=t();return e.isInterstitial(h)?h:null},u={get bufferedEnd(){let d=t(),h=e.bufferingItem;if(h&&h===d){var f;return n(h,"playout",e.bufferingAsset,"bufferedPos","bufferedEnd")-h.playout.start||((f=e.bufferingAsset)==null?void 0:f.startOffset)||0}return 0},get currentTime(){let d=l(),h=e.effectivePlayingItem;return h&&h===d?n(h,"playout",e.effectivePlayingAsset,"timelinePos","currentTime")-h.playout.start:0},set currentTime(d){let h=l(),f=e.effectivePlayingItem;f&&f===h&&c(d+f.playout.start,"playout");},get duration(){let d=l();return d?d.playout.end-d.playout.start:0},get assetPlayers(){var d;let h=(d=l())==null?void 0:d.event.assetList;return h?h.map(f=>e.getAssetPlayer(f.identifier)):[]},get playingIndex(){var d;let h=(d=l())==null?void 0:d.event;return h&&e.effectivePlayingAsset?h.findAssetIndex(e.effectivePlayingAsset):-1},get scheduleItem(){return l()}};return this.manager={get events(){var d;return ((d=e.schedule)==null||(d=d.events)==null?void 0:d.slice(0))||[]},get schedule(){var d;return ((d=e.schedule)==null||(d=d.items)==null?void 0:d.slice(0))||[]},get interstitialPlayer(){return l()?u:null},get playerQueue(){return e.playerQueue.slice(0)},get bufferingAsset(){return e.bufferingAsset},get bufferingItem(){return t()},get bufferingIndex(){let d=t();return e.findItemIndex(d)},get playingAsset(){return e.effectivePlayingAsset},get playingItem(){return e.effectivePlayingItem},get playingIndex(){let d=e.effectivePlayingItem;return e.findItemIndex(d)},primary:{get bufferedEnd(){return a()},get currentTime(){let d=e.timelinePos;return d>0?d:0},set currentTime(d){c(d,"primary");},get duration(){return o("primary")},get seekableStart(){var d;return ((d=e.primaryDetails)==null?void 0:d.fragmentStart)||0}},integrated:{get bufferedEnd(){return n(t(),"integrated",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return n(e.effectivePlayingItem,"integrated",e.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(d){c(d,"integrated");},get duration(){return o("integrated")},get seekableStart(){var d;return s(((d=e.primaryDetails)==null?void 0:d.fragmentStart)||0,"integrated")}},skip:()=>{let d=e.effectivePlayingItem,h=d?.event;if(h&&!h.restrictions.skip){let f=e.findItemIndex(d);if(h.appendInPlace){let p=d.playout.start+d.event.duration;c(p+.001,"playout");}else e.advanceAfterAssetEnded(h,f,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=(e=this.schedule)==null?void 0:e.items;return !this.playbackStarted||!t||!i?false:this.findItemIndex(t)===i.length-1}get playbackStarted(){return this.effectivePlayingItem!==null}get currentTime(){var e,t;if(this.mediaSelection===null)return;let i=this.waitingItem||this.playingItem;if(this.isInterstitial(i)&&!i.event.appendInPlace)return;let n=this.media;!n&&(e=this.bufferingItem)!=null&&(e=e.event)!=null&&e.appendInPlace&&(n=this.primaryMedia);let s=(t=n)==null?void 0:t.currentTime;if(!(s===void 0||!te(s)))return s}get primaryMedia(){var e;return this.media||((e=this.detachedData)==null?void 0:e.media)||null}isInterstitial(e){return !!(e!=null&&e.event)}retreiveMediaSource(e,t){let i=this.getAssetPlayer(e);i&&this.transferMediaFromPlayer(i,t);}transferMediaFromPlayer(e,t){let i=e.interstitial.appendInPlace,n=e.media;if(i&&n===this.primaryMedia){if(this.bufferingAsset=null,(!t||this.isInterstitial(t)&&!t.event.appendInPlace)&&t&&n){this.detachedData={media:n};return}let s=e.transferMedia();this.log(`transfer MediaSource from ${e} ${tt(s)}`),this.detachedData=s;}else t&&n&&(this.shouldPlay||(this.shouldPlay=!n.paused));}transferMediaTo(e,t){var i,n;if(e.media===t)return;let s=null,a=this.hls,o=e!==a,c=o&&e.interstitial.appendInPlace,l=(i=this.detachedData)==null?void 0:i.mediaSource,u;if(a.media)c&&(s=a.transferMedia(),this.detachedData=s),u="Primary";else if(l){let p=this.getBufferingPlayer();p?(s=p.transferMedia(),u=`${p}`):u="detached MediaSource";}else u="detached media";if(!s){if(l)s=this.detachedData,this.log(`using detachedData: MediaSource ${tt(s)}`);else if(!this.detachedData||a.media===t){let p=this.playerQueue;p.length>1&&p.forEach(g=>{if(o&&g.interstitial.appendInPlace!==c){let m=g.interstitial;this.clearInterstitial(g.interstitial,null),m.appendInPlace=false,m.appendInPlace&&this.warn(`Could not change append strategy for queued assets ${m}`);}}),this.hls.detachMedia(),this.detachedData={media:t};}}let d=s&&"mediaSource"in s&&((n=s.mediaSource)==null?void 0:n.readyState)!=="closed",h=d&&s?s:t;this.log(`${d?"transfering MediaSource":"attaching media"} to ${o?e:"Primary"} from ${u} (media.currentTime: ${t.currentTime})`);let f=this.schedule;if(h===s&&f){let p=o&&e.assetId===f.assetIdAtEnd;h.overrides={duration:f.duration,endOfStream:!o||p,cueRemoval:!o};}e.attachMedia(h);}onInterstitialCueEnter(){this.onTimeupdate();}checkStart(){let e=this.schedule,t=e?.events;if(!t||this.playbackDisabled||!this.media)return;this.bufferedPos===-1&&(this.bufferedPos=0);let i=this.timelinePos,n=this.effectivePlayingItem;if(i===-1){let s=this.hls.startPosition;if(this.log(ic("checkStart",s)),this.timelinePos=s,t.length&&t[0].cue.pre){let a=e.findEventIndex(t[0].identifier);this.setSchedulePosition(a);}else if(s>=0||!this.primaryLive){let a=this.timelinePos=s>0?s:0,o=e.findItemIndexAtTime(a);this.setSchedulePosition(o);}}else if(n&&!this.playingItem){let s=e.findItemIndex(n);this.setSchedulePosition(s);}}advanceAssetBuffering(e,t){let i=e.event,n=i.findAssetIndex(t),s=Kh(i,n);if(!i.isAssetPastPlayoutLimit(s))this.bufferedToEvent(e,s);else if(this.schedule){var a;let o=(a=this.schedule.items)==null?void 0:a[this.findItemIndex(e)+1];o&&this.bufferedToItem(o);}}advanceAfterAssetEnded(e,t,i){let n=Kh(e,i);if(e.isAssetPastPlayoutLimit(n)){if(this.schedule){let s=this.schedule.items;if(s){let a=t+1,o=s.length;if(a>=o){this.setSchedulePosition(-1);return}let c=e.resumeTime;this.timelinePos<c&&(this.log(ic("advanceAfterAssetEnded",c)),this.timelinePos=c,e.appendInPlace&&this.advanceInPlace(c),this.checkBuffer(this.bufferedPos<c)),this.setSchedulePosition(a);}}}else {if(e.appendInPlace){let s=e.assetList[n];s&&this.advanceInPlace(s.timelineStart);}this.setSchedulePosition(t,n);}}setScheduleToAssetAtTime(e,t){let i=this.schedule;if(!i)return;let n=t.parentIdentifier,s=i.getEvent(n);if(s){let a=i.findEventIndex(n),o=i.findAssetIndex(s,e);this.advanceAfterAssetEnded(s,a,o-1);}}setSchedulePosition(e,t){var i;let n=(i=this.schedule)==null?void 0:i.items;if(!n||this.playbackDisabled)return;let s=e>=0?n[e]:null;this.log(`setSchedulePosition ${e}, ${t} (${s&&Or(s)}) pos: ${this.timelinePos}`);let a=this.waitingItem||this.playingItem,o=this.playingLastItem;if(this.isInterstitial(a)){let u=a.event,d=this.playingAsset,h=d?.identifier,f=h?this.getAssetPlayer(h):null;if(f&&h&&(!this.eventItemsMatch(a,s)||t!==void 0&&h!==u.assetList[t].identifier)){var c;let p=u.findAssetIndex(d);if(this.log(`INTERSTITIAL_ASSET_ENDED ${p+1}/${u.assetList.length} ${Gs(d)}`),this.endedAsset=d,this.playingAsset=null,this.hls.trigger(x.INTERSTITIAL_ASSET_ENDED,{asset:d,assetListIndex:p,event:u,schedule:n.slice(0),scheduleIndex:e,player:f}),a!==this.playingItem){this.itemsMatch(a,this.playingItem)&&!this.playingAsset&&this.advanceAfterAssetEnded(u,this.findItemIndex(this.playingItem),p);return}this.retreiveMediaSource(h,s),f.media&&!((c=this.detachedData)!=null&&c.mediaSource)&&f.detachMedia();}if(!this.eventItemsMatch(a,s)&&(this.endedItem=a,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${u} ${Or(a)}`),u.hasPlayed=true,this.hls.trigger(x.INTERSTITIAL_ENDED,{event:u,schedule:n.slice(0),scheduleIndex:e}),u.cue.once)){var l;this.updateSchedule();let p=(l=this.schedule)==null?void 0:l.items;if(s&&p){let g=this.findItemIndex(s);this.advanceSchedule(g,p,t,a,o);}return}}this.advanceSchedule(e,n,t,a,o);}advanceSchedule(e,t,i,n,s){let a=this.schedule;if(!a)return;let o=t[e]||null,c=this.primaryMedia,l=this.playerQueue;if(l.length&&l.forEach(u=>{let d=u.interstitial,h=a.findEventIndex(d.identifier);(h<e||h>e+1)&&this.clearInterstitial(d,o);}),this.isInterstitial(o)){this.timelinePos=Math.min(Math.max(this.timelinePos,o.start),o.end);let u=o.event;if(i===void 0){i=a.findAssetIndex(u,this.timelinePos);let p=Kh(u,i-1);if(u.isAssetPastPlayoutLimit(p)||u.appendInPlace&&this.timelinePos===o.end){this.advanceAfterAssetEnded(u,e,i);return}i=p;}let d=this.waitingItem;this.assetsBuffered(o,c)||this.setBufferingItem(o);let h=this.preloadAssets(u,i);if(this.eventItemsMatch(o,d||n)||(this.waitingItem=o,this.log(`INTERSTITIAL_STARTED ${Or(o)} ${u.appendInPlace?"append in place":""}`),this.hls.trigger(x.INTERSTITIAL_STARTED,{event:u,schedule:t.slice(0),scheduleIndex:e})),!u.assetListLoaded){this.log(`Waiting for ASSET-LIST to complete loading ${u}`);return}if(u.assetListLoader&&(u.assetListLoader.destroy(),u.assetListLoader=void 0),!c){this.log(`Waiting for attachMedia to start Interstitial ${u}`);return}this.waitingItem=this.endedItem=null,this.playingItem=o;let f=u.assetList[i];if(!f){this.advanceAfterAssetEnded(u,e,i||0);return}if(h||(h=this.getAssetPlayer(f.identifier)),h===null||h.destroyed){let p=u.assetList.length;this.warn(`asset ${i+1}/${p} player destroyed ${u}`),h=this.createAssetPlayer(u,f,i),h.loadSource();}if(!this.eventItemsMatch(o,this.bufferingItem)&&u.appendInPlace&&this.isAssetBuffered(f))return;this.startAssetPlayer(h,i,t,e,c),this.shouldPlay&&WE(h.media);}else o?(this.resumePrimary(o,e,n),this.shouldPlay&&WE(this.hls.media)):s&&this.isInterstitial(n)&&(this.endedItem=null,this.playingItem=n,n.event.appendInPlace||this.attachPrimary(a.durations.primary,null));}get playbackDisabled(){return this.hls.config.enableInterstitialPlayback===false}get primaryDetails(){var e;return (e=this.mediaSelection)==null?void 0:e.main.details}get primaryLive(){var e;return !!((e=this.primaryDetails)!=null&&e.live)}resumePrimary(e,t,i){var n,s;if(this.playingItem=e,this.playingAsset=this.endedAsset=null,this.waitingItem=this.endedItem=null,this.bufferedToItem(e),this.log(`resuming ${Or(e)}`),!((n=this.detachedData)!=null&&n.mediaSource)){let o=this.timelinePos;(o<e.start||o>=e.end)&&(o=this.getPrimaryResumption(e,t),this.log(ic("resumePrimary",o)),this.timelinePos=o),this.attachPrimary(o,e);}if(!i)return;let a=(s=this.schedule)==null?void 0:s.items;a&&(this.log(`INTERSTITIALS_PRIMARY_RESUMED ${Or(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 n=this.primaryDetails;if(t===0)return this.hls.startPosition;if(n&&(i<n.fragmentStart||i>n.edge))return this.hls.liveSyncPosition||-1}return i}isAssetBuffered(e){let t=this.getAssetPlayer(e.identifier);return t!=null&&t.hls?t.hls.bufferedToEnd:Re.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 n=this.primaryMedia;if(!n)return;let s=this.hls;s.media?this.checkBuffer():(this.transferMediaTo(s,n),i&&this.startLoadingPrimaryAt(e,i)),i||(this.log(ic("attachPrimary",e)),this.timelinePos=e,this.startLoadingPrimaryAt(e,i));}startLoadingPrimaryAt(e,t){var i;let n=this.hls;!n.loadingEnabled||!n.media||Math.abs((((i=n.mainForwardBufferInfo)==null?void 0:i.start)||n.media.currentTime)-e)>.5?n.startLoad(e,t):n.bufferingEnabled||n.resumeBuffering();}onManifestLoading(){var e;this.stopLoad(),(e=this.schedule)==null||e.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=false,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(t.level===-1||!this.schedule)return;let i=this.hls.levels[t.level];if(!i.details)return;let n=Ye(Ye({},this.mediaSelection||this.altSelection),{},{main:i});this.mediaSelection=n,this.schedule.parseInterstitialDateRanges(n,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items&&this.checkStart();}onAudioTrackUpdated(e,t){let i=this.hls.audioTracks[t.id],n=this.mediaSelection;if(!n){this.altSelection=Ye(Ye({},this.altSelection),{},{audio:i});return}let s=Ye(Ye({},n),{},{audio:i});this.mediaSelection=s;}onSubtitleTrackUpdated(e,t){let i=this.hls.subtitleTracks[t.id],n=this.mediaSelection;if(!n){this.altSelection=Ye(Ye({},this.altSelection),{},{subtitles:i});return}let s=Ye(Ye({},n),{},{subtitles:i});this.mediaSelection=s;}onAudioTrackSwitching(e,t){let i=iE(t);this.playerQueue.forEach(({hls:n})=>n&&(n.setAudioOption(t)||n.setAudioOption(i)));}onSubtitleTrackSwitch(e,t){let i=iE(t);this.playerQueue.forEach(({hls:n})=>n&&(n.setSubtitleOption(t)||t.id!==-1&&n.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 n=this.timelinePos;this.bufferedPos=n,this.checkBuffer();}}onBufferedToEnd(e){if(!this.schedule)return;let t=this.schedule.events;if(this.bufferedPos<Number.MAX_VALUE&&t){for(let n=0;n<t.length;n++){let s=t[n];if(s.cue.post){var i;let a=this.schedule.findEventIndex(s.identifier),o=(i=this.schedule.items)==null?void 0:i[a];this.isInterstitial(o)&&this.eventItemsMatch(o,this.bufferingItem)&&this.bufferedToItem(o,0);break}}this.bufferedPos=Number.MAX_VALUE;}}onMediaEnded(e){let t=this.playingItem;if(!this.playingLastItem&&t){let i=this.findItemIndex(t);this.setSchedulePosition(i+1);}else this.shouldPlay=false;}updateItem(e,t){var i;let n=(i=this.schedule)==null?void 0:i.items;if(e&&n){let s=this.findItemIndex(e,t);return n[s]||null}return null}trimInPlace(e,t){if(this.isInterstitial(e)&&e.event.appendInPlace&&t.end-e.end>.25){e.event.assetList.forEach((s,a)=>{e.event.isAssetPastPlayoutLimit(a)&&this.clearAssetPlayer(s.identifier,null);});let i=e.end+.25,n=Re.bufferInfo(this.primaryMedia,i,0);(n.end>i||(n.nextStart||0)>i)&&(this.log(`trim buffered interstitial ${Or(e)} (was ${Or(t)})`),this.attachPrimary(i,null,true),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===((i=t.event)==null?void 0:i.identifier))}findItemIndex(e,t){return e&&this.schedule?this.schedule.findItemIndex(e,t):-1}updateSchedule(e=false){var t;let i=this.mediaSelection;i&&((t=this.schedule)==null||t.updateSchedule(i,[],e));}checkBuffer(e){var t;let i=(t=this.schedule)==null?void 0:t.items;if(!i)return;let n=Re.bufferInfo(this.primaryMedia,this.timelinePos,0);e&&(this.bufferedPos=this.timelinePos),e||(e=n.len<1),this.updateBufferedPos(n.end,i,e);}updateBufferedPos(e,t,i){let n=this.schedule,s=this.bufferingItem;if(this.bufferedPos>e||!n)return;if(t.length===1&&this.itemsMatch(t[0],s)){this.bufferedPos=e;return}let a=this.playingItem,o=this.findItemIndex(a),c=n.findItemIndexAtTime(e);if(this.bufferedPos<e){var l;let u=this.findItemIndex(s),d=Math.min(u+1,t.length-1),h=t[d];if((c===-1&&s&&e>=s.end||(l=h.event)!=null&&l.appendInPlace&&e+.01>=h.start)&&(c=d),this.isInterstitial(s)){let f=s.event;if(d-o>1&&f.appendInPlace===false||f.assetList.length===0&&f.assetListLoader)return}if(this.bufferedPos=e,c>u&&c>o)this.bufferedToItem(h);else {let f=this.primaryDetails;this.primaryLive&&f&&e>f.edge-f.targetduration&&h.start<f.edge+this.hls.config.interstitialLiveLookAhead&&this.isInterstitial(h)&&this.preloadAssets(h.event,0);}}else i&&a&&!this.itemsMatch(a,s)&&(c===o?this.bufferedToItem(a):c===o+1&&this.bufferedToItem(t[c]));}assetsBuffered(e,t){return e.event.assetList.length===0?false:!e.event.assetList.some(n=>{let s=this.getAssetPlayer(n.identifier);return !(s!=null&&s.bufferedInPlaceToEnd(t))})}setBufferingItem(e){let t=this.bufferingItem,i=this.schedule;if(!this.itemsMatch(e,t)&&i){let{items:n,events:s}=i;if(!n||!s)return t;let a=this.isInterstitial(e),o=this.getBufferingPlayer();this.bufferingItem=e,this.bufferedPos=Math.max(e.start,Math.min(e.end,this.timelinePos));let c=o?o.remaining:t?t.end-this.timelinePos:0;if(this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${Or(e)}`+(t?` (${c.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(a){let l=i.findAssetIndex(e.event,this.bufferedPos);e.event.assetList.forEach((u,d)=>{let h=this.getAssetPlayer(u.identifier);h&&(d===l&&h.loadSource(),h.resumeBuffering());});}else this.hls.resumeBuffering(),this.playerQueue.forEach(l=>l.pauseBuffering());this.hls.trigger(x.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:s.slice(0),schedule:n.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(i!==null){this.bufferingAsset=null;let n=this.detachedData;n?n.mediaSource?this.attachPrimary(e.start,e,true):this.preloadPrimary(e):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,n=i.assetList.length===0&&!i.assetListLoader,s=i.cue.once;if(n||!s){let a=this.preloadAssets(i,t);if(a!=null&&a.interstitial.appendInPlace){let o=this.primaryMedia;o&&this.bufferAssetPlayer(a,o);}}}preloadAssets(e,t){let i=e.assetUrl,n=e.assetList.length,s=n===0&&!e.assetListLoader,a=e.cue.once;if(s){let c=e.timelineStart;if(e.appendInPlace){var o;let h=this.playingItem;!this.isInterstitial(h)&&(h==null||(o=h.nextEvent)==null?void 0:o.identifier)===e.identifier&&this.flushFrontBuffer(c+.25);}let l,u=0;if(!this.playingItem&&this.primaryLive&&(u=this.hls.startPosition,u===-1&&(u=this.hls.liveSyncPosition||0)),u&&!(e.cue.pre||e.cue.post)){let h=u-c;h>0&&(l=Math.round(h*1e3)/1e3);}if(this.log(`Load interstitial asset ${t+1}/${i?1:n} ${e}${l?` live-start: ${u} start-offset: ${l}`:""}`),i)return this.createAsset(e,0,0,c,e.duration,i);let d=this.assetListLoader.loadAssetList(e,l);d&&(e.assetListLoader=d);}else if(!a&&n){for(let l=t;l<n;l++){let u=e.assetList[l],d=this.getAssetPlayerQueueIndex(u.identifier);(d===-1||this.playerQueue[d].destroyed)&&!u.error&&this.createAssetPlayer(e,u,l);}let c=e.assetList[t];if(c){let l=this.getAssetPlayer(c.identifier);return l&&l.loadSource(),l}}return null}flushFrontBuffer(e){let t=this.requiredTracks;if(!t)return;this.log(`Removing front buffer starting at ${e}`),Object.keys(t).forEach(n=>{this.hls.trigger(x.BUFFER_FLUSHING,{startOffset:e,endOffset:1/0,type:n});});}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,n,s,a){let o={parentIdentifier:e.identifier,identifier:VP(e,a,t),duration:s,startOffset:i,timelineStart:n,uri:a};return this.createAssetPlayer(e,o,t)}createAssetPlayer(e,t,i){let n=this.hls,s=n.userConfig,a=s.videoPreference,o=n.loadLevelObj||n.levels[n.currentLevel];(a||o)&&(a=Je({},a),o.videoCodec&&(a.videoCodec=o.videoCodec),o.videoRange&&(a.allowedVideoRanges=[o.videoRange]));let c=n.audioTracks[n.audioTrack],l=n.subtitleTracks[n.subtitleTrack],u=0;if(this.primaryLive||e.appendInPlace){let b=this.timelinePos-t.timelineStart;if(b>1){let S=t.duration;S&&b<S&&(u=b);}}let d=t.identifier,h=Ye(Ye({},s),{},{maxMaxBufferLength:Math.min(180,n.config.maxMaxBufferLength),autoStartLoad:true,startFragPrefetch:true,primarySessionId:n.sessionId,assetPlayerId:d,abrEwmaDefaultEstimate:n.bandwidthEstimate,interstitialsController:void 0,startPosition:u,liveDurationInfinity:false,testBandwidth:false,videoPreference:a,audioPreference:c||s.audioPreference,subtitlePreference:l||s.subtitlePreference});e.appendInPlace&&(e.appendInPlaceStarted=true,t.timelineStart&&(h.timelineOffset=t.timelineStart));let f=h.cmcd;f!=null&&f.sessionId&&f.contentId&&(h.cmcd=Je({},f,{contentId:lo(t.uri)})),this.getAssetPlayer(d)&&this.warn(`Duplicate date range identifier ${e} and asset ${d}`);let p=new Yf(this.HlsPlayerClass,h,e,t);this.playerQueue.push(p),e.assetList[i]=t;let g=true,m=b=>{if(b.live){var S;let w=new Error(`Interstitials MUST be VOD assets ${e}`),A={fatal:true,type:de.OTHER_ERROR,details:D.INTERSTITIAL_ASSET_ITEM_ERROR,error:w},_=((S=this.schedule)==null?void 0:S.findEventIndex(e.identifier))||-1;this.handleAssetItemError(A,e,_,i,w.message);return}let I=b.edge-b.fragmentStart,T=t.duration;(g||T===null||I>T)&&(g=false,this.log(`Interstitial asset "${d}" duration change ${T} > ${I}`),t.duration=I,this.updateSchedule());};p.on(x.LEVEL_UPDATED,(b,{details:S})=>m(S)),p.on(x.LEVEL_PTS_UPDATED,(b,{details:S})=>m(S)),p.on(x.EVENT_CUE_ENTER,()=>this.onInterstitialCueEnter());let y=(b,S)=>{let I=this.getAssetPlayer(d);if(I&&S.tracks){I.off(x.BUFFER_CODECS,y),I.tracks=S.tracks;let T=this.primaryMedia;this.bufferingAsset===I.assetItem&&T&&!I.media&&this.bufferAssetPlayer(I,T);}};p.on(x.BUFFER_CODECS,y);let v=()=>{var b;let S=this.getAssetPlayer(d);if(this.log(`buffered to end of asset ${S}`),!S||!this.schedule)return;let I=this.schedule.findEventIndex(e.identifier),T=(b=this.schedule.items)==null?void 0:b[I];this.isInterstitial(T)&&this.advanceAssetBuffering(T,t);};p.on(x.BUFFERED_TO_END,v);let E=b=>()=>{if(!this.getAssetPlayer(d)||!this.schedule)return;this.shouldPlay=true;let I=this.schedule.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,I,b);};return p.once(x.MEDIA_ENDED,E(i)),p.once(x.PLAYOUT_LIMIT_REACHED,E(1/0)),p.on(x.ERROR,(b,S)=>{if(!this.schedule)return;let I=this.getAssetPlayer(d);if(S.details===D.BUFFER_STALLED_ERROR){if(I!=null&&I.appendInPlace){this.handleInPlaceStall(e);return}this.onTimeupdate(),this.checkBuffer(true);return}this.handleAssetItemError(S,e,this.schedule.findEventIndex(e.identifier),i,`Asset player error ${S.error} ${e}`);}),p.on(x.DESTROYING,()=>{if(!this.getAssetPlayer(d)||!this.schedule)return;let S=new Error(`Asset player destroyed unexpectedly ${d}`),I={fatal:true,type:de.OTHER_ERROR,details:D.INTERSTITIAL_ASSET_ITEM_ERROR,error:S};this.handleAssetItemError(I,e,this.schedule.findEventIndex(e.identifier),i,S.message);}),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${Gs(t)}`),this.hls.trigger(x.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:t,assetListIndex:i,event:e,player:p}),p}clearInterstitial(e,t){this.clearAssetPlayers(e,t),e.reset();}clearAssetPlayers(e,t){e.assetList.forEach(i=>{this.clearAssetPlayer(i.identifier,t);});}resetAssetPlayer(e){let t=this.getAssetPlayerQueueIndex(e);if(t!==-1){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(i!==-1){let n=this.playerQueue[i];this.log(`clear ${n} toSegment: ${t&&Or(t)}`),this.transferMediaFromPlayer(n,t),this.playerQueue.splice(i,1),n.destroy();}}emptyPlayerQueue(){let e;for(;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[];}startAssetPlayer(e,t,i,n,s){let{interstitial:a,assetItem:o,assetId:c}=e,l=a.assetList.length,u=this.playingAsset;this.endedAsset=null,this.playingAsset=o,(!u||u.identifier!==c)&&(u&&(this.clearAssetPlayer(u.identifier,i[n]),delete u.error),this.log(`INTERSTITIAL_ASSET_STARTED ${t+1}/${l} ${Gs(o)}`),this.hls.trigger(x.INTERSTITIAL_ASSET_STARTED,{asset:o,assetListIndex:t,event:a,schedule:i.slice(0),scheduleIndex:n,player:e})),this.bufferAssetPlayer(e,s);}bufferAssetPlayer(e,t){var i,n;if(!this.schedule)return;let{interstitial:s,assetItem:a}=e,o=this.schedule.findEventIndex(s.identifier),c=(i=this.schedule.items)==null?void 0:i[o];if(!c)return;e.loadSource(),this.setBufferingItem(c),this.bufferingAsset=a;let l=this.getBufferingPlayer();if(l===e)return;let u=s.appendInPlace;if(u&&l?.interstitial.appendInPlace===false)return;let d=l?.tracks||((n=this.detachedData)==null?void 0:n.tracks)||this.requiredTracks;if(u&&a!==this.playingAsset){if(!e.tracks){this.log(`Waiting for track info before buffering ${e}`);return}if(d&&!nb(d,e.tracks)){let h=new Error(`Asset ${Gs(a)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(d)}')`),f={fatal:true,type:de.OTHER_ERROR,details:D.INTERSTITIAL_ASSET_ITEM_ERROR,error:h},p=s.findAssetIndex(a);this.handleAssetItemError(f,s,o,p,h.message);return}}this.transferMediaTo(e,t);}handleInPlaceStall(e){let t=this.schedule,i=this.primaryMedia;if(!t||!i)return;let n=i.currentTime,s=t.findAssetIndex(e,n),a=e.assetList[s];if(a){let o=this.getAssetPlayer(a.identifier);if(o){let c=o.currentTime||n-a.timelineStart,l=o.duration-c;if(this.warn(`Stalled at ${c} of ${c+l} in ${o} ${e} (media.currentTime: ${n})`),c&&(l/i.playbackRate<.5||o.bufferedInPlaceToEnd(i))&&o.hls){let u=t.findEventIndex(e.identifier);this.advanceAfterAssetEnded(e,u,s);}}}}advanceInPlace(e){let t=this.primaryMedia;t&&t.currentTime<e&&(t.currentTime=e);}handleAssetItemError(e,t,i,n,s){if(e.details===D.BUFFER_STALLED_ERROR)return;let a=t.assetList[n]||null;if(this.warn(`INTERSTITIAL_ASSET_ERROR ${a&&Gs(a)} ${e.error}`),!this.schedule)return;let o=a?.identifier||"",c=this.getAssetPlayerQueueIndex(o),l=this.playerQueue[c]||null,u=this.schedule.items,d=Je({},e,{fatal:false,errorAction:Vs(true),asset:a,assetListIndex:n,event:t,schedule:u,scheduleIndex:i,player:l});if(this.hls.trigger(x.INTERSTITIAL_ASSET_ERROR,d),!e.fatal)return;let h=this.playingAsset,f=this.bufferingAsset,p=new Error(s);if(a&&(this.clearAssetPlayer(o,null),a.error=p),!t.assetList.some(g=>!g.error))t.error=p;else for(let g=n;g<t.assetList.length;g++)this.resetAssetPlayer(t.assetList[g].identifier);this.updateSchedule(true),t.error?this.primaryFallback(t):h&&h.identifier===o?this.advanceAfterAssetEnded(t,i,n):f&&f.identifier===o&&this.isInterstitial(this.bufferingItem)&&this.advanceAssetBuffering(this.bufferingItem,f);}primaryFallback(e){let t=e.timelineStart,i=this.effectivePlayingItem,n=this.timelinePos;if(i){this.log(`Fallback to primary from event "${e.identifier}" start: ${t} pos: ${n} playing: ${Or(i)} error: ${e.error}`),n===-1&&(n=this.hls.startPosition);let a=this.updateItem(i,n);this.itemsMatch(i,a)&&this.clearInterstitial(e,null),e.appendInPlace&&(this.attachPrimary(t,null),this.flushFrontBuffer(t));}else if(n===-1){this.checkStart();return}if(!this.schedule)return;let s=this.schedule.findItemIndexAtTime(n);this.setSchedulePosition(s);}onAssetListLoaded(e,t){var i,n;let s=t.event,a=s.identifier,o=t.assetListResponse.ASSETS;if(!((i=this.schedule)!=null&&i.hasEvent(a)))return;let c=s.timelineStart,l=s.duration,u=0;o.forEach((g,m)=>{let y=parseFloat(g.DURATION);this.createAsset(s,m,u,c+u,y,g.URI),u+=y;}),s.duration=u,this.log(`Loaded asset-list with duration: ${u} (was: ${l}) ${s}`);let d=this.waitingItem,h=d?.event.identifier===a;this.updateSchedule();let f=(n=this.bufferingItem)==null?void 0:n.event;if(h){var p;let g=this.schedule.findEventIndex(a),m=(p=this.schedule.items)==null?void 0:p[g];if(m){if(!this.playingItem&&this.timelinePos>m.end&&this.schedule.findItemIndexAtTime(this.timelinePos)!==g){s.error=new Error(`Interstitial ${o.length?"no longer within playback range":"asset-list is empty"} ${this.timelinePos} ${s}`),this.log(s.error.message),this.updateSchedule(true),this.primaryFallback(s);return}this.setBufferingItem(m);}this.setSchedulePosition(g);}else if(f?.identifier===a){let g=s.assetList[0];if(g){let m=this.getAssetPlayer(g.identifier);if(f.appendInPlace){let y=this.primaryMedia;m&&y&&this.bufferAssetPlayer(m,y);}else m&&m.loadSource();}}}onError(e,t){if(this.schedule)switch(t.details){case D.ASSET_LIST_PARSING_ERROR:case D.ASSET_LIST_LOAD_ERROR:case D.ASSET_LIST_LOAD_TIMEOUT:{let i=t.interstitial;i&&(this.updateSchedule(true),this.primaryFallback(i));break}case D.BUFFER_STALLED_ERROR:{let i=this.endedItem||this.waitingItem||this.playingItem;if(this.isInterstitial(i)&&i.event.appendInPlace){this.handleInPlaceStall(i.event);return}this.log(`Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`),this.onTimeupdate(),this.checkBuffer(true);break}}}},qE=500,Qf=class extends go{constructor(e,t,i){super(e,t,i,"subtitle-stream-controller",le.SUBTITLE),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=U.IDLE,this.setInterval(qE),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{frag:i,success:n}=t;if(this.fragContextChanged(i)||(gt(i)&&(this.fragPrevious=i),this.state=U.IDLE),!n)return;let s=this.tracksBuffered[this.currentTrackId];if(!s)return;let a,o=i.start;for(let l=0;l<s.length;l++)if(o>=s[l].start&&o<=s[l].end){a=s[l];break}let c=i.start+i.duration;a?a.end=c:(a={start:o,end:c},s.push(a)),this.fragmentTracker.fragBuffered(i),this.fragBufferedComplete(i,null),this.media&&this.tick();}onBufferFlushing(e,t){let{startOffset:i,endOffset:n}=t;if(i===0&&n!==Number.POSITIVE_INFINITY){let s=n-1;if(s<=0)return;t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach(a=>{for(let o=0;o<a.length;){if(a[o].end<=s){a.shift();continue}else if(a[o].start<s)a[o].start=s;else break;o++;}}),this.fragmentTracker.removeFragmentsInRange(i,s,le.SUBTITLE);}}onError(e,t){let i=t.frag;i?.type===le.SUBTITLE&&(t.details===D.FRAG_GAP&&this.fragmentTracker.fragBuffered(i,true),this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==U.STOPPED&&(this.state=U.IDLE));}onSubtitleTracksUpdated(e,{subtitleTracks:t}){if(this.levels&&tS(this.levels,t)){this.levels=t.map(i=>new zn(i));return}this.tracksBuffered=[],this.levels=t.map(i=>{let n=new zn(i);return this.tracksBuffered[n.id]=[],n}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,le.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null;}onSubtitleTrackSwitch(e,t){var i;if(this.currentTrackId=t.id,!((i=this.levels)!=null&&i.length)||this.currentTrackId===-1){this.clearInterval();return}let n=this.levels[this.currentTrackId];n!=null&&n.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,n&&this.state!==U.STOPPED&&this.setInterval(qE);}onSubtitleTrackLoaded(e,t){var i;let{currentTrackId:n,levels:s}=this,{details:a,id:o}=t;if(!s){this.warn(`Subtitle tracks were reset while loading level ${o}`);return}let c=s[o];if(o>=s.length||!c)return;this.log(`Subtitle track ${o} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let l=0;if(a.live||(i=c.details)!=null&&i.live){if(a.deltaUpdateFailed)return;let d=this.mainDetails;if(!d){this.startFragRequested=false;return}let h=d.fragments[0];if(!c.details)a.hasProgramDateTime&&d.hasProgramDateTime?(kc(a,d),l=a.fragmentStart):h&&(l=h.start,vf(a,l));else {var u;l=this.alignPlaylists(a,c.details,(u=this.levelLastLoaded)==null?void 0:u.details),l===0&&h&&(l=h.start,vf(a,l));}d&&!this.startFragRequested&&this.setStartPosition(d,l);}c.details=a,this.levelLastLoaded=c,o===n&&(this.hls.trigger(x.SUBTITLE_TRACK_UPDATED,{details:a,id:o,groupId:t.groupId}),this.tick(),a.live&&!this.fragCurrent&&this.media&&this.state===U.IDLE&&(Gn(null,a.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),c.details=void 0)));}_handleFragmentLoadComplete(e){let{frag:t,payload:i}=e,n=t.decryptdata,s=this.hls;if(!this.fragContextChanged(t)&&i&&i.byteLength>0&&n!=null&&n.key&&n.iv&&js(n.method)){let a=performance.now();this.decrypter.decrypt(new Uint8Array(i),n.key.buffer,n.iv.buffer,Tp(n.method)).catch(o=>{throw s.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.FRAG_DECRYPT_ERROR,fatal:false,error:o,reason:o.message,frag:t}),o}).then(o=>{let c=performance.now();s.trigger(x.FRAG_DECRYPTED,{frag:t,payload:o,stats:{tstart:a,tdecrypt:c}});}).catch(o=>{this.warn(`${o.name}: ${o.message}`),this.state=U.IDLE;});}}doTick(){if(!this.media){this.state=U.IDLE;return}if(this.state===U.IDLE){let{currentTrackId:e,levels:t}=this,i=t?.[e];if(!i||!t.length||!i.details||this.waitForLive(i))return;let{config:n}=this,s=this.getLoadPosition(),a=Re.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],s,n.maxBufferHole),{end:o,len:c}=a,l=i.details,u=this.hls.maxBufferLength+l.levelTargetDuration;if(c>u)return;let d=l.fragments,h=d.length,f=l.edge,p=null,g=this.fragPrevious;if(o<f){let v=n.maxFragLookUpTolerance,E=o>f-v?0:v;p=Gn(g,d,Math.max(d[0].start,o),E),!p&&g&&g.start<d[0].start&&(p=d[0]);}else p=d[h-1];if(p=this.filterReplacedPrimary(p,i.details),!p)return;let m=p.sn-l.startSN,y=d[m-1];if(y&&y.cc===p.cc&&this.fragmentTracker.getState(y)===kt.NOT_LOADED&&(p=y),this.fragmentTracker.getState(p)===kt.NOT_LOADED){let v=this.mapToInitFragWhenRequired(p);v&&this.loadFragment(v,i,o);}}}loadFragment(e,t,i){gt(e)?super.loadFragment(e,t,i):this._loadInitSegment(e,t);}get mediaBufferTimeRanges(){return new ep(this.tracksBuffered[this.currentTrackId]||[])}},ep=class{constructor(e){this.buffered=void 0;let t=(i,n,s)=>{if(n=n>>>0,n>s-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${n}) is greater than the maximum bound (${s})`);return e[n][i]};this.buffered={get length(){return e.length},end(i){return t("end",i,e.length)},start(i){return t("start",i,e.length)}};}},WP={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},gS=r=>String.fromCharCode(WP[r]||r),Fr=15,Ri=100,qP={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},YP={17:2,18:4,21:6,22:8,23:10,19:13,20:15},ZP={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},XP={25:2,26:4,29:6,30:8,31:10,27:13,28:15},JP=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],tp=class{constructor(){this.time=null,this.verboseLevel=0;}log(e,t){if(this.verboseLevel>=e){let i=typeof t=="function"?t():t;Ze.log(`${this.time} [${e}] ${i}`);}}},Fn=function(e){let t=[];for(let i=0;i<e.length;i++)t.push(e[i].toString(16));return t},Fc=class{constructor(){this.foreground="white",this.underline=false,this.italics=false,this.background="black",this.flash=false;}reset(){this.foreground="white",this.underline=false,this.italics=false,this.background="black",this.flash=false;}setStyles(e){let t=["foreground","underline","italics","background","flash"];for(let i=0;i<t.length;i++){let n=t[i];e.hasOwnProperty(n)&&(this[n]=e[n]);}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash}copy(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash;}toString(){return "color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}},rp=class{constructor(){this.uchar=" ",this.penState=new Fc;}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()}},ip=class{constructor(e){this.chars=[],this.pos=0,this.currPenState=new Fc,this.cueStartTime=null,this.logger=void 0;for(let t=0;t<Ri;t++)this.chars.push(new rp);this.logger=e;}equals(e){for(let t=0;t<Ri;t++)if(!this.chars[t].equals(e.chars[t]))return false;return true}copy(e){for(let t=0;t<Ri;t++)this.chars[t].copy(e.chars[t]);}isEmpty(){let e=true;for(let t=0;t<Ri;t++)if(!this.chars[t].isEmpty()){e=false;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>Ri&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Ri);}moveCursor(e){let t=this.pos+e;if(e>1)for(let i=this.pos+1;i<t+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(t);}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState);}insertChar(e){e>=144&&this.backSpace();let t=gS(e);if(this.pos>=Ri){this.logger.log(0,()=>"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1);}clearFromPos(e){let t;for(t=e;t<Ri;t++)this.chars[t].reset();}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset();}clearToEndOfRow(){this.clearFromPos(this.pos);}getTextString(){let e=[],t=true;for(let i=0;i<Ri;i++){let n=this.chars[i].uchar;n!==" "&&(t=false),e.push(n);}return t?"":e.join("")}setPenStyles(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState);}},co=class{constructor(e){this.rows=[],this.currRow=Fr-1,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let t=0;t<Fr;t++)this.rows.push(new ip(e));this.logger=e;}reset(){for(let e=0;e<Fr;e++)this.rows[e].clear();this.currRow=Fr-1;}equals(e){let t=true;for(let i=0;i<Fr;i++)if(!this.rows[i].equals(e.rows[i])){t=false;break}return t}copy(e){for(let t=0;t<Fr;t++)this.rows[t].copy(e.rows[t]);}isEmpty(){let e=true;for(let t=0;t<Fr;t++)if(!this.rows[t].isEmpty()){e=false;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 = "+tt(e));let t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(let o=0;o<Fr;o++)this.rows[o].clear();let s=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let o=a.rows[s].cueStartTime,c=this.logger.time;if(o!==null&&c!==null&&o<c)for(let l=0;l<this.nrRollUpRows;l++)this.rows[t-this.nrRollUpRows+l+1].copy(a.rows[s+l]);}}this.currRow=t;let i=this.rows[this.currRow];if(e.indent!==null){let s=e.indent,a=Math.max(s-1,0);i.setCursor(e.indent),e.color=i.chars[a].penState.foreground;}let n={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:false};this.setPen(n);}setBkgData(e){this.logger.log(2,()=>"bkgData = "+tt(e)),this.backSpace(),this.setPen(e),this.insertChar(32);}setRollUpRows(e){this.nrRollUpRows=e;}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());let e=this.currRow+1-this.nrRollUpRows,t=this.rows.splice(e,1)[0];t.clear(),this.rows.splice(this.currRow,0,t),this.logger.log(2,"Rolling up");}getDisplayText(e){e=e||false;let t=[],i="",n=-1;for(let s=0;s<Fr;s++){let a=this.rows[s].getTextString();a&&(n=s+1,e?t.push("Row "+n+": '"+a+"'"):t.push(a.trim()));}return t.length>0&&(e?i="["+t.join(" | ")+"]":i=t.join(`
152
+ `)),i}getTextAndFormat(){return this.rows}},Nc=class{constructor(e,t,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new co(i),this.nonDisplayedMemory=new co(i),this.lastOutputScreen=new co(i),this.currRollUpRow=this.displayedMemory.rows[Fr-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i;}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[Fr-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null;}getHandler(){return this.outputFilter}setHandler(e){this.outputFilter=e;}setPAC(e){this.writeScreen.setPAC(e);}setBkgData(e){this.writeScreen.setBkgData(e);}setMode(e){e!==this.mode&&(this.mode=e,this.logger.log(2,()=>"MODE="+e),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e);}insertChars(e){for(let i=0;i<e.length;i++)this.writeScreen.insertChar(e[i]);let t=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>t+": "+this.writeScreen.getDisplayText(true)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(true)),this.outputDataUpdate());}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON");}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate());}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate();}ccRU(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e);}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:true});}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON");}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT");}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT");}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(true);}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(true);}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset();}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText());}this.outputDataUpdate(true);}ccTO(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e);}ccMIDROW(e){let t={flash:false};if(t.underline=e%2===1,t.italics=e>=46,t.italics)t.foreground="white";else {let i=Math.floor(e/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=n[i];}this.logger.log(2,"MIDROW: "+tt(t)),this.writeScreen.setPen(t);}outputDataUpdate(e=false){let t=this.logger.time;t!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=t:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t),this.lastOutputScreen.copy(this.displayedMemory));}cueSplitAtTime(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e));}},Bc=class{constructor(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory=eM(),this.logger=void 0;let n=this.logger=new tp;this.channels=[null,new Nc(e,t,n),new Nc(e+1,i,n)];}getHandler(e){return this.channels[e].getHandler()}setHandler(e,t){this.channels[e].setHandler(t);}addData(e,t){this.logger.time=e;for(let i=0;i<t.length;i+=2){let n=t[i]&127,s=t[i+1]&127,a=false,o=null;if(n===0&&s===0)continue;this.logger.log(3,()=>"["+Fn([t[i],t[i+1]])+"] -> ("+Fn([n,s])+")");let c=this.cmdHistory;if(n>=16&&n<=31){if(QP(n,s,c)){nc(null,null,c),this.logger.log(3,()=>"Repeated command ("+Fn([n,s])+") is dropped");continue}nc(n,s,this.cmdHistory),a=this.parseCmd(n,s),a||(a=this.parseMidrow(n,s)),a||(a=this.parsePAC(n,s)),a||(a=this.parseBackgroundAttributes(n,s));}else nc(null,null,c);if(!a&&(o=this.parseChars(n,s),o)){let u=this.currentChannel;u&&u>0?this.channels[u].insertChars(o):this.logger.log(2,"No channel found yet. TEXT-MODE?");}!a&&!o&&this.logger.log(2,()=>"Couldn't parse cleaned data "+Fn([n,s])+" orig: "+Fn([t[i],t[i+1]]));}}parseCmd(e,t){let i=(e===20||e===28||e===21||e===29)&&t>=32&&t<=47,n=(e===23||e===31)&&t>=33&&t<=35;if(!(i||n))return false;let s=e===20||e===21||e===23?1:2,a=this.channels[s];return e===20||e===21||e===28||e===29?t===32?a.ccRCL():t===33?a.ccBS():t===34?a.ccAOF():t===35?a.ccAON():t===36?a.ccDER():t===37?a.ccRU(2):t===38?a.ccRU(3):t===39?a.ccRU(4):t===40?a.ccFON():t===41?a.ccRDC():t===42?a.ccTR():t===43?a.ccRTD():t===44?a.ccEDM():t===45?a.ccCR():t===46?a.ccENM():t===47&&a.ccEOC():a.ccTO(t-32),this.currentChannel=s,true}parseMidrow(e,t){let i=0;if((e===17||e===25)&&t>=32&&t<=47){if(e===17?i=1:i=2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),false;let n=this.channels[i];return n?(n.ccMIDROW(t),this.logger.log(3,()=>"MIDROW ("+Fn([e,t])+")"),true):false}return false}parsePAC(e,t){let i,n=(e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127,s=(e===16||e===24)&&t>=64&&t<=95;if(!(n||s))return false;let a=e<=23?1:2;t>=64&&t<=95?i=a===1?qP[e]:ZP[e]:i=a===1?YP[e]:XP[e];let o=this.channels[a];return o?(o.setPAC(this.interpretPAC(i,t)),this.currentChannel=a,true):false}interpretPAC(e,t){let i,n={color:null,italics:false,indent:null,underline:false,row:e};return t>95?i=t-96:i=t-64,n.underline=(i&1)===1,i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=true,n.color="white"):n.indent=Math.floor((i-16)/2)*4,n}parseChars(e,t){let i,n=null,s=null;if(e>=25?(i=2,s=e-8):(i=1,s=e),s>=17&&s<=19){let a;s===17?a=t+80:s===18?a=t+112:a=t+144,this.logger.log(2,()=>"Special char '"+gS(a)+"' in channel "+i),n=[a];}else e>=32&&e<=127&&(n=t===0?[e]:[e,t]);return n&&this.logger.log(3,()=>"Char codes = "+Fn(n).join(",")),n}parseBackgroundAttributes(e,t){let i=(e===16||e===24)&&t>=32&&t<=47,n=(e===23||e===31)&&t>=45&&t<=47;if(!(i||n))return false;let s,a={};e===16||e===24?(s=Math.floor((t-32)/2),a.background=JP[s],t%2===1&&(a.background=a.background+"_semi")):t===45?a.background="transparent":(a.foreground="black",t===47&&(a.underline=true));let o=e<=23?1:2;return this.channels[o].setBkgData(a),true}reset(){for(let e=0;e<Object.keys(this.channels).length;e++){let t=this.channels[e];t&&t.reset();}nc(null,null,this.cmdHistory);}cueSplitAtTime(e){for(let t=0;t<this.channels.length;t++){let i=this.channels[t];i&&i.cueSplitAtTime(e);}}};function nc(r,e,t){t.a=r,t.b=e;}function QP(r,e,t){return t.a===r&&t.b===e}function eM(){return {a:null,b:null}}var Mp=(function(){if(Ac!=null&&Ac.VTTCue)return self.VTTCue;let r=["","lr","rl"],e=["start","middle","end","left","right"];function t(o,c){if(typeof c!="string"||!Array.isArray(o))return false;let l=c.toLowerCase();return ~o.indexOf(l)?l:false}function i(o){return t(r,o)}function n(o){return t(e,o)}function s(o,...c){let l=1;for(;l<arguments.length;l++){let u=arguments[l];for(let d in u)o[d]=u[d];}return o}function a(o,c,l){let u=this,d={enumerable:true};u.hasBeenReset=false;let h="",f=false,p=o,g=c,m=l,y=null,v="",E=true,b="auto",S="start",I=50,T="middle",w=50,A="middle";Object.defineProperty(u,"id",s({},d,{get:function(){return h},set:function(_){h=""+_;}})),Object.defineProperty(u,"pauseOnExit",s({},d,{get:function(){return f},set:function(_){f=!!_;}})),Object.defineProperty(u,"startTime",s({},d,{get:function(){return p},set:function(_){if(typeof _!="number")throw new TypeError("Start time must be set to a number.");p=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"endTime",s({},d,{get:function(){return g},set:function(_){if(typeof _!="number")throw new TypeError("End time must be set to a number.");g=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"text",s({},d,{get:function(){return m},set:function(_){m=""+_,this.hasBeenReset=true;}})),Object.defineProperty(u,"region",s({},d,{get:function(){return y},set:function(_){y=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"vertical",s({},d,{get:function(){return v},set:function(_){let k=i(_);if(k===false)throw new SyntaxError("An invalid or illegal string was specified.");v=k,this.hasBeenReset=true;}})),Object.defineProperty(u,"snapToLines",s({},d,{get:function(){return E},set:function(_){E=!!_,this.hasBeenReset=true;}})),Object.defineProperty(u,"line",s({},d,{get:function(){return b},set:function(_){if(typeof _!="number"&&_!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");b=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"lineAlign",s({},d,{get:function(){return S},set:function(_){let k=n(_);if(!k)throw new SyntaxError("An invalid or illegal string was specified.");S=k,this.hasBeenReset=true;}})),Object.defineProperty(u,"position",s({},d,{get:function(){return I},set:function(_){if(_<0||_>100)throw new Error("Position must be between 0 and 100.");I=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"positionAlign",s({},d,{get:function(){return T},set:function(_){let k=n(_);if(!k)throw new SyntaxError("An invalid or illegal string was specified.");T=k,this.hasBeenReset=true;}})),Object.defineProperty(u,"size",s({},d,{get:function(){return w},set:function(_){if(_<0||_>100)throw new Error("Size must be between 0 and 100.");w=_,this.hasBeenReset=true;}})),Object.defineProperty(u,"align",s({},d,{get:function(){return A},set:function(_){let k=n(_);if(!k)throw new SyntaxError("An invalid or illegal string was specified.");A=k,this.hasBeenReset=true;}})),u.displayState=void 0;}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a})(),np=class{decode(e,t){if(!e)return "";if(typeof e!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}};function yS(r){function e(i,n,s,a){return (i|0)*3600+(n|0)*60+(s|0)+parseFloat(a||0)}let t=r.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return t?parseFloat(t[2])>59?e(t[2],t[3],0,t[4]):e(t[1],t[2],t[3],t[4]):null}var sp=class{constructor(){this.values=Object.create(null);}set(e,t){!this.get(e)&&t!==""&&(this.values[e]=t);}get(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t}has(e){return e in this.values}alt(e,t,i){for(let n=0;n<i.length;++n)if(t===i[n]){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),true}return false}};function vS(r,e,t,i){let n=i?r.split(i):[r];for(let s in n){if(typeof n[s]!="string")continue;let a=n[s].split(t);if(a.length!==2)continue;let o=a[0],c=a[1];e(o,c);}}var ap=new Mp(0,0,""),sc=ap.align==="middle"?"middle":"center";function tM(r,e,t){let i=r;function n(){let o=yS(r);if(o===null)throw new Error("Malformed timestamp: "+i);return r=r.replace(/^[^\sa-zA-Z-]+/,""),o}function s(o,c){let l=new sp;vS(o,function(h,f){let p;switch(h){case "region":for(let g=t.length-1;g>=0;g--)if(t[g].id===f){l.set(h,t[g].region);break}break;case "vertical":l.alt(h,f,["rl","lr"]);break;case "line":p=f.split(","),l.integer(h,p[0]),l.percent(h,p[0])&&l.set("snapToLines",false),l.alt(h,p[0],["auto"]),p.length===2&&l.alt("lineAlign",p[1],["start",sc,"end"]);break;case "position":p=f.split(","),l.percent(h,p[0]),p.length===2&&l.alt("positionAlign",p[1],["start",sc,"end","line-left","line-right","auto"]);break;case "size":l.percent(h,f);break;case "align":l.alt(h,f,["start",sc,"end","left","right"]);break}},/:/,/\s/),c.region=l.get("region",null),c.vertical=l.get("vertical","");let u=l.get("line","auto");u==="auto"&&ap.line===-1&&(u=-1),c.line=u,c.lineAlign=l.get("lineAlign","start"),c.snapToLines=l.get("snapToLines",true),c.size=l.get("size",100),c.align=l.get("align",sc);let d=l.get("position","auto");d==="auto"&&ap.position===50&&(d=c.align==="start"||c.align==="left"?0:c.align==="end"||c.align==="right"?100:50),c.position=d;}function a(){r=r.replace(/^\s+/,"");}if(a(),e.startTime=n(),a(),r.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+i);r=r.slice(3),a(),e.endTime=n(),a(),s(r,e);}function xS(r){return r.replace(/<br(?: \/)?>/gi,`
153
+ `)}var op=class{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new np,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0;}parse(e){let t=this;e&&(t.buffer+=t.decoder.decode(e,{stream:true}));function i(){let s=t.buffer,a=0;for(s=xS(s);a<s.length&&s[a]!=="\r"&&s[a]!==`
154
+ `;)++a;let o=s.slice(0,a);return s[a]==="\r"&&++a,s[a]===`
155
+ `&&++a,t.buffer=s.slice(a),o}function n(s){vS(s,function(a,o){},/:/);}try{let s="";if(t.state==="INITIAL"){if(!/\r\n|\n/.test(t.buffer))return this;s=i();let o=s.match(/^()?WEBVTT([ \t].*)?$/);if(!(o!=null&&o[0]))throw new Error("Malformed WebVTT signature.");t.state="HEADER";}let a=!1;for(;t.buffer;){if(!/\r\n|\n/.test(t.buffer))return this;switch(a?a=!1:s=i(),t.state){case "HEADER":/:/.test(s)?n(s):s||(t.state="ID");continue;case "NOTE":s||(t.state="ID");continue;case "ID":if(/^NOTE($|[ \t])/.test(s)){t.state="NOTE";break}if(!s)continue;if(t.cue=new Mp(0,0,""),t.state="CUE",s.indexOf("-->")===-1){t.cue.id=s;continue}case "CUE":if(!t.cue){t.state="BADCUE";continue}try{tM(s,t.cue,t.regionList);}catch{t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case "CUETEXT":{let o=s.indexOf("-->")!==-1;if(!s||o&&(a=!0)){t.oncue&&t.cue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}if(t.cue===null)continue;t.cue.text&&(t.cue.text+=`
156
+ `),t.cue.text+=s;}continue;case "BADCUE":s||(t.state="ID");}}}catch{t.state==="CUETEXT"&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state=t.state==="INITIAL"?"BADWEBVTT":"BADCUE";}return this}flush(){let e=this;try{if((e.cue||e.state==="HEADER")&&(e.buffer+=`
157
+
158
+ `,e.parse()),e.state==="INITIAL"||e.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(t){e.onparsingerror&&e.onparsingerror(t);}return e.onflush&&e.onflush(),this}},rM=/\r\n|\n\r|\n|\r/g,Vh=function(e,t,i=0){return e.slice(i,i+t.length)===t},iM=function(e){let t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),n=parseInt(e.slice(-9,-7)),s=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!te(t)||!te(i)||!te(n)||!te(s))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);return t+=1e3*i,t+=60*1e3*n,t+=3600*1e3*s,t};function Op(r,e,t){return lo(r.toString())+lo(e.toString())+lo(t)}var nM=function(e,t,i){let n=e[t],s=e[n.prevCC];if(!s||!s.new&&n.new){e.ccOffset=e.presentationOffset=n.start,n.new=false;return}for(;(a=s)!=null&&a.new;){var a;e.ccOffset+=n.start-s.start,n.new=false,n=s,s=e[n.prevCC];}e.presentationOffset=i;};function sM(r,e,t,i,n,s,a){let o=new op,c=pr(new Uint8Array(r)).trim().replace(rM,`
159
+ `).split(`
160
+ `),l=[],u=e?FD(e.baseTime,e.timescale):0,d="00:00.000",h=0,f=0,p,g=true;o.oncue=function(m){let y=t[i],v=t.ccOffset,E=(h-u)/9e4;if(y!=null&&y.new&&(f!==void 0?v=t.ccOffset=y.start:nM(t,i,E)),E){if(!e){p=new Error("Missing initPTS for VTT MPEGTS");return}v=E-t.presentationOffset;}let b=m.endTime-m.startTime,S=hr((m.startTime+v-f)*9e4,n*9e4)/9e4;m.startTime=Math.max(S,0),m.endTime=Math.max(S+b,0);let I=m.text.trim();m.text=decodeURIComponent(encodeURIComponent(I)),m.id||(m.id=Op(m.startTime,m.endTime,I)),m.endTime>0&&l.push(m);},o.onparsingerror=function(m){p=m;},o.onflush=function(){if(p){a(p);return}s(l);},c.forEach(m=>{if(g)if(Vh(m,"X-TIMESTAMP-MAP=")){g=false,m.slice(16).split(",").forEach(y=>{Vh(y,"LOCAL:")?d=y.slice(6):Vh(y,"MPEGTS:")&&(h=parseInt(y.slice(7)));});try{f=iM(d)/1e3;}catch(y){p=y;}return}else m===""&&(g=false);o.parse(m+`
161
+ `);}),o.flush();}var jh="stpp.ttml.im1t",ES=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,bS=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,aM={left:"start",center:"center",right:"end",start:"start",end:"end"};function YE(r,e,t,i){let n=Ce(new Uint8Array(r),["mdat"]);if(n.length===0){i(new Error("Could not parse IMSC1 mdat"));return}let s=n.map(o=>pr(o)),a=OD(e.baseTime,1,e.timescale);try{s.forEach(o=>t(oM(o,a)));}catch(o){i(o);}}function oM(r,e){let n=new DOMParser().parseFromString(r,"text/xml").getElementsByTagName("tt")[0];if(!n)throw new Error("Invalid ttml");let s={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},a=Object.keys(s).reduce((d,h)=>(d[h]=n.getAttribute(`ttp:${h}`)||s[h],d),{}),o=n.getAttribute("xml:space")!=="preserve",c=ZE(Wh(n,"styling","style")),l=ZE(Wh(n,"layout","region")),u=Wh(n,"body","[begin]");return [].map.call(u,d=>{let h=SS(d,o);if(!h||!d.hasAttribute("begin"))return null;let f=Yh(d.getAttribute("begin"),a),p=Yh(d.getAttribute("dur"),a),g=Yh(d.getAttribute("end"),a);if(f===null)throw XE(d);if(g===null){if(p===null)throw XE(d);g=f+p;}let m=new Mp(f-e,g-e,h);m.id=Op(m.startTime,m.endTime,m.text);let y=l[d.getAttribute("region")],v=c[d.getAttribute("style")],E=lM(y,v,c),{textAlign:b}=E;if(b){let S=aM[b];S&&(m.lineAlign=S),m.align=b;}return Je(m,E),m}).filter(d=>d!==null)}function Wh(r,e,t){let i=r.getElementsByTagName(e)[0];return i?[].slice.call(i.querySelectorAll(t)):[]}function ZE(r){return r.reduce((e,t)=>{let i=t.getAttribute("xml:id");return i&&(e[i]=t),e},{})}function SS(r,e){return [].slice.call(r.childNodes).reduce((t,i,n)=>{var s;return i.nodeName==="br"&&n?t+`
162
+ `:(s=i.childNodes)!=null&&s.length?SS(i,e):e?t+i.textContent.trim().replace(/\s+/g," "):t+i.textContent},"")}function lM(r,e,t){let i="http://www.w3.org/ns/ttml#styling",n=null,s=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],a=r!=null&&r.hasAttribute("style")?r.getAttribute("style"):null;return a&&t.hasOwnProperty(a)&&(n=t[a]),s.reduce((o,c)=>{let l=qh(e,i,c)||qh(r,i,c)||qh(n,i,c);return l&&(o[c]=l),o},{})}function qh(r,e,t){return r&&r.hasAttributeNS(e,t)?r.getAttributeNS(e,t):null}function XE(r){return new Error(`Could not parse ttml timestamp ${r}`)}function Yh(r,e){if(!r)return null;let t=yS(r);return t===null&&(ES.test(r)?t=cM(r,e):bS.test(r)&&(t=uM(r,e))),t}function cM(r,e){let t=ES.exec(r),i=(t[4]|0)+(t[5]|0)/e.subFrameRate;return (t[1]|0)*3600+(t[2]|0)*60+(t[3]|0)+i/e.frameRate}function uM(r,e){let t=bS.exec(r),i=Number(t[1]);switch(t[2]){case "h":return i*3600;case "m":return i*60;case "ms":return i*1e3;case "f":return i/e.frameRate;case "t":return i/e.tickRate}return i}var Ks=class{constructor(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t;}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null);}newCue(e,t,i){(this.startTime===null||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName);}reset(){this.cueRanges=[],this.startTime=null;}},lp=class{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=true,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=QE(),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}},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 Ks(this,"textTrack1"),t=new Ks(this,"textTrack2"),i=new Ks(this,"textTrack3"),n=new Ks(this,"textTrack4");this.cea608Parser1=new Bc(1,e,t),this.cea608Parser2=new Bc(3,i,n);}addCues(e,t,i,n,s){let a=false;for(let o=s.length;o--;){let c=s[o],l=dM(c[0],c[1],t,i);if(l>=0&&(c[0]=Math.min(c[0],t),c[1]=Math.max(c[1],i),a=true,l/(i-t)>.5))return}if(a||s.push([t,i]),this.config.renderTextTracksNatively){let o=this.captionsTracks[e];this.Cues.newCue(o,t,i,n);}else {let o=this.Cues.newCue(null,t,i,n);this.hls.trigger(x.CUES_PARSED,{type:"captions",cues:o,track:e});}}onInitPtsFound(e,{frag:t,id:i,initPTS:n,timescale:s,trackId:a}){let{unparsedVttFrags:o}=this;i===le.MAIN&&(this.initPTS[t.cc]={baseTime:n,timescale:s,trackId:a}),o.length&&(this.unparsedVttFrags=[],o.forEach(c=>{this.initPTS[c.frag.cc]?this.onFragLoaded(x.FRAG_LOADED,c):this.hls.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:false,frag:c.frag,error:new Error("Subtitle discontinuity domain does not match main")});}));}getExistingTrack(e,t){let{media:i}=this;if(i)for(let n=0;n<i.textTracks.length;n++){let s=i.textTracks[n];if(JE(s,{name:e,lang:t,characteristics:"transcribes-spoken-dialog,describes-music-and-sound"}))return s}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e);}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:t,captionsTracks:i,media:n}=this,{label:s,languageCode:a}=t[e],o=this.getExistingTrack(s,a);if(o)i[e]=o,Hs(i[e]),fS(i[e],n);else {let c=this.createTextTrack("captions",s,a);c&&(c[e]=true,i[e]=c);}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let t=this.captionsProperties[e];if(!t)return;let i=t.label,n={_id:e,label:i,kind:"captions",default:t.media?!!t.media.default:false,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=n,this.hls.trigger(x.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[n]});}createTextTrack(e,t,i){let n=this.media;if(n)return n.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:n}=this;Object.keys(n).forEach(s=>{Hs(n[s]),delete n[s];}),this.nonNativeCaptionsTracks={};}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=QE(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset());}_cleanTracks(){let{media:e}=this;if(!e)return;let t=e.textTracks;if(t)for(let i=0;i<t.length;i++)Hs(t[i]);}onSubtitleTracksUpdated(e,t){let i=t.subtitleTracks||[],n=i.some(s=>s.textCodec===jh);if(this.config.enableWebVTT||n&&this.config.enableIMSC1){if(tS(this.tracks,i)){this.tracks=i;return}if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){let a=this.media,o=a?fc(a.textTracks):null;if(this.tracks.forEach((c,l)=>{let u;if(o){let d=null;for(let h=0;h<o.length;h++)if(o[h]&&JE(o[h],c)){d=o[h],o[h]=null;break}d&&(u=d);}if(u)Hs(u);else {let d=_S(c);u=this.createTextTrack(d,c.name,c.lang),u&&(u.mode="disabled");}u&&this.textTracks.push(u);}),o!=null&&o.length){let c=o.filter(l=>l!==null).map(l=>l.label);c.length&&this.hls.logger.warn(`Media element contains unused subtitle tracks: ${c.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`);}}else if(this.tracks.length){let a=this.tracks.map(o=>({label:o.name,kind:o.type.toLowerCase(),default:o.default,subtitleTrack:o}));this.hls.trigger(x.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a});}}}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(i=>{let n=/(?:CC|SERVICE)([1-4])/.exec(i.instreamId);if(!n)return;let s=`textTrack${n[1]}`,a=this.captionsProperties[s];a&&(a.label=i.name,i.lang&&(a.languageCode=i.lang),a.media=i);});}closedCaptionsForLevel(e){let t=this.hls.levels[e.level];return t?.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){if(this.enabled&&t.frag.type===le.MAIN){var i,n;let{cea608Parser1:s,cea608Parser2:a,lastSn:o}=this,{cc:c,sn:l}=t.frag,u=(i=(n=t.part)==null?void 0:n.index)!=null?i:-1;s&&a&&(l!==o+1||l===o&&u!==this.lastPartIndex+1||c!==this.lastCc)&&(s.reset(),a.reset()),this.lastCc=c,this.lastSn=l,this.lastPartIndex=u;}}onFragLoaded(e,t){let{frag:i,payload:n}=t;if(i.type===le.SUBTITLE)if(n.byteLength){let s=i.decryptdata,a="stats"in t;if(s==null||!s.encrypted||a){let o=this.tracks[i.level],c=this.vttCCs;c[i.cc]||(c[i.cc]={start:i.start,prevCC:this.prevCC,new:true},this.prevCC=i.cc),o&&o.textCodec===jh?this._parseIMSC1(i,n):this._parseVTTs(t);}}else this.hls.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:false,frag:i,error:new Error("Empty subtitle payload")});}_parseIMSC1(e,t){let i=this.hls;YE(t,this.initPTS[e.cc],n=>{this._appendCues(n,e.level),i.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:true,frag:e});},n=>{i.logger.log(`Failed to parse IMSC1: ${n}`),i.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:false,frag:e,error:n});});}_parseVTTs(e){var t;let{frag:i,payload:n}=e,{initPTS:s,unparsedVttFrags:a}=this,o=s.length-1;if(!s[i.cc]&&o===-1){a.push(e);return}let c=this.hls,l=(t=i.initSegment)!=null&&t.data?Tr(i.initSegment.data,new Uint8Array(n)).buffer:n;sM(l,this.initPTS[i.cc],this.vttCCs,i.cc,i.start,u=>{this._appendCues(u,i.level),c.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:true,frag:i});},u=>{let d=u.message==="Missing initPTS for VTT MPEGTS";d?a.push(e):this._fallbackToIMSC1(i,n),c.logger.log(`Failed to parse VTT cue: ${u}`),!(d&&o>i.cc)&&c.trigger(x.SUBTITLE_FRAG_PROCESSED,{success:false,frag:i,error:u});});}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||YE(t,this.initPTS[e.cc],()=>{i.textCodec=jh,this._parseIMSC1(e,t);},()=>{i.textCodec="wvtt";});}_appendCues(e,t){let i=this.hls;if(this.config.renderTextTracksNatively){let n=this.textTracks[t];if(!n||n.mode==="disabled")return;e.forEach(s=>pS(n,s));}else {let n=this.tracks[t];if(!n)return;let s=n.default?"default":"subtitles"+t;i.trigger(x.CUES_PARSED,{type:"subtitles",cues:e,track:s});}}onFragDecrypted(e,t){let{frag:i}=t;i.type===le.SUBTITLE&&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:n}=t;if(!(i.type===le.MAIN&&this.closedCaptionsForLevel(i)==="NONE"))for(let s=0;s<n.length;s++){let a=n[s].bytes;if(a){this.cea608Parser1||this.initCea608Parsers();let o=this.extractCea608Data(a);this.cea608Parser1.addData(n[s].pts,o[0]),this.cea608Parser2.addData(n[s].pts,o[1]);}}}onBufferFlushing(e,{startOffset:t,endOffset:i,endOffsetSubtitles:n,type:s}){let{media:a}=this;if(!(!a||a.currentTime<i)){if(!s||s==="video"){let{captionsTracks:o}=this;Object.keys(o).forEach(c=>jf(o[c],t,i));}if(this.config.renderTextTracksNatively&&t===0&&n!==void 0){let{textTracks:o}=this;Object.keys(o).forEach(c=>jf(o[c],t,n));}}}extractCea608Data(e){let t=[[],[]],i=e[0]&31,n=2;for(let s=0;s<i;s++){let a=e[n++],o=127&e[n++],c=127&e[n++];if(o===0&&c===0)continue;if((4&a)!==0){let u=3&a;(u===0||u===1)&&(t[u].push(o),t[u].push(c));}}return t}};function _S(r){return r.characteristics&&/transcribes-spoken-dialog/gi.test(r.characteristics)&&/describes-music-and-sound/gi.test(r.characteristics)?"captions":"subtitles"}function JE(r,e){return !!r&&r.kind===_S(e)&&Mf(e,r)}function dM(r,e,t,i){return Math.min(e,i)-Math.max(r,t)}function QE(){return {ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:true}}}var hM=/\s/,fM={newCue(r,e,t,i){let n=[],s,a,o,c,l,u=self.VTTCue||self.TextTrackCue;for(let h=0;h<i.rows.length;h++)if(s=i.rows[h],o=true,c=0,l="",!s.isEmpty()){var d;for(let g=0;g<s.chars.length;g++)hM.test(s.chars[g].uchar)&&o?c++:(l+=s.chars[g].uchar,o=false);s.cueStartTime=e,e===t&&(t+=1e-4),c>=16?c--:c++;let f=xS(l.trim()),p=Op(e,t,f);r!=null&&(d=r.cues)!=null&&d.getCueById(p)||(a=new u(e,t,f),a.id=p,a.line=h+1,a.align="left",a.position=10+Math.min(80,Math.floor(c*8/32)*10),n.push(a));}return r&&n.length&&(n.sort((h,f)=>h.line==="auto"||f.line==="auto"?0:h.line>8&&f.line>8?f.line-h.line:h.line-f.line),n.forEach(h=>pS(r,h))),n}};function pM(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return false}var mM=/(\d+)-(\d+)\/(\d+)/,Uc=class{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||xM,this.controller=new self.AbortController,this.stats=new uo;}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=true,this.controller.abort());}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response);}load(e,t,i){let n=this.stats;if(n.loading.start)throw new Error("Loader can only be used once.");n.loading.start=self.performance.now();let s=gM(e,this.controller.signal),a=e.responseType==="arraybuffer",o=a?"byteLength":"length",{maxTimeToFirstByteMs:c,maxLoadTimeMs:l}=t.loadPolicy;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,s),self.clearTimeout(this.requestTimeout),t.timeout=c&&te(c)?c:l,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(n,e,this.response));},t.timeout),(Eo(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then(d=>{var h;this.response=this.loader=d;let f=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(this.requestTimeout),t.timeout=l,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(n,e,this.response));},l-(f-n.loading.start)),!d.ok){let{status:g,statusText:m}=d;throw new cp(m||"fetch, bad network response",g,d)}n.loading.first=f,n.total=vM(d.headers)||n.total;let p=(h=this.callbacks)==null?void 0:h.onProgress;return p&&te(t.highWaterMark)?this.loadProgressively(d,n,e,t.highWaterMark,p):a?d.arrayBuffer():e.responseType==="json"?d.json():d.text()}).then(d=>{var h,f;let p=this.response;if(!p)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);let g=d[o];g&&(n.loaded=n.total=g);let m={url:p.url,data:d,code:p.status},y=(h=this.callbacks)==null?void 0:h.onProgress;y&&!te(t.highWaterMark)&&y(n,e,d,p),(f=this.callbacks)==null||f.onSuccess(m,n,e,p);}).catch(d=>{var h;if(self.clearTimeout(this.requestTimeout),n.aborted)return;let f=d&&d.code||0,p=d?d.message:null;(h=this.callbacks)==null||h.onError({code:f,text:p},e,d?d.details:null,n);});}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,n=0,s){let a=new Ic,o=e.body.getReader(),c=()=>o.read().then(l=>{if(l.done)return a.dataLength&&s(t,i,a.flush().buffer,e),Promise.resolve(new ArrayBuffer(0));let u=l.value,d=u.length;return t.loaded+=d,d<n||a.dataLength?(a.push(u),a.dataLength>=n&&s(t,i,a.flush().buffer,e)):s(t,i,u.buffer,e),c()}).catch(()=>Promise.reject());return c()}};function gM(r,e){let t={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(Je({},r.headers))};return r.rangeEnd&&t.headers.set("Range","bytes="+r.rangeStart+"-"+String(r.rangeEnd-1)),t}function yM(r){let e=mM.exec(r);if(e)return parseInt(e[2])-parseInt(e[1])+1}function vM(r){let e=r.get("Content-Range");if(e){let i=yM(e);if(te(i))return i}let t=r.get("Content-Length");if(t)return parseInt(t)}function xM(r,e){return new self.Request(r.url,e)}var cp=class extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i;}},EM=/^age:\s*[\d.]+\s*$/im,$c=class{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new uo,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,e.readyState!==4&&(this.stats.aborted=true,e.abort()));}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader);}load(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal();}loadInternal(){let{config:e,context:t}=this;if(!e||!t)return;let i=this.loader=new self.XMLHttpRequest,n=this.stats;n.loading.first=0,n.loaded=0,n.aborted=false;let s=this.xhrSetup;s?Promise.resolve().then(()=>{if(!(this.loader!==i||this.stats.aborted))return s(i,t.url)}).catch(a=>{if(!(this.loader!==i||this.stats.aborted))return i.open("GET",t.url,true),s(i,t.url)}).then(()=>{this.loader!==i||this.stats.aborted||this.openAndSendXhr(i,t,e);}).catch(a=>{var o;(o=this.callbacks)==null||o.onError({code:i.status,text:a.message},t,i,n);}):this.openAndSendXhr(i,t,e);}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,true);let n=t.headers,{maxTimeToFirstByteMs:s,maxLoadTimeMs:a}=i.loadPolicy;if(n)for(let o in n)e.setRequestHeader(o,n[o]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=s&&te(s)?s: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 n=t.readyState,s=this.config;if(!i.aborted&&n>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),s.timeout!==s.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),s.timeout=s.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),s.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),n===4)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;let l=t.status,u=t.responseType==="text"?t.responseText:null;if(l>=200&&l<300){let p=u??t.response;if(p!=null){var a,o;i.loading.end=Math.max(self.performance.now(),i.loading.first);let g=t.responseType==="arraybuffer"?p.byteLength:p.length;i.loaded=i.total=g,i.bwEstimate=i.total*8e3/(i.loading.end-i.loading.first);let m=(a=this.callbacks)==null?void 0:a.onProgress;m&&m(i,e,p,t);let y={url:t.responseURL,data:p,code:l};(o=this.callbacks)==null||o.onSuccess(y,i,e,t);return}}let d=s.loadPolicy.errorRetry,h=i.retry,f={url:e.url,data:void 0,code:l};if(Sc(d,h,false,f))this.retry(d);else {var c;Ze.error(`${l} while loading ${e.url}`),(c=this.callbacks)==null||c.onError({code:l,text:t.statusText},e,t,i);}}}loadtimeout(){if(!this.config)return;let e=this.config.loadPolicy.timeoutRetry,t=this.stats.retry;if(Sc(e,t,true))this.retry(e);else {var i;Ze.warn(`timeout while loading ${(i=this.context)==null?void 0:i.url}`);let n=this.callbacks;n&&(this.abortInternal(),n.onTimeout(this.stats,this.context,this.loader));}}retry(e){let{context:t,stats:i}=this;this.retryDelay=_p(e,i.retry),i.retry++,Ze.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${t?.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay);}loadprogress(e){let t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total);}getCacheAge(){let e=null;if(this.loader&&EM.test(this.loader.getAllResponseHeaders())){let t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null;}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}},bM={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},SM=Ye(Ye({autoStartLoad:true,startPosition:-1,defaultAudioCodec:void 0,debug:false,capLevelOnFPSDrop:false,capLevelToPlayerSize:false,ignoreDevicePixelRatio:false,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:true,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:false,maxBufferSize:60*1e3*1e3,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:true,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:false,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:true,workerPath:null,enableSoftwareAES:true,startLevel:void 0,startFragPrefetch:false,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:false,loader:$c,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:af,bufferController:Bf,capLevelController:Uf,errorController:lf,fpsController:Vf,stretchShortVideoTrack:false,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:true,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:false,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:false,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:kb,requireKeySystemAccessOnStart:false,testBandwidth:true,progressive:false,lowLatencyMode:true,cmcd:void 0,enableDateRangeMetadataCues:true,enableEmsgMetadataCues:true,enableEmsgKLVMetadata:false,enableID3MetadataCues:true,enableInterstitialPlayback:true,interstitialAppendInPlace:true,interstitialLiveLookAhead:10,useMediaCapabilities:true,preserveManualLevelOnError:false,certLoadPolicy:{default:bM},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},_M()),{},{subtitleStreamController:Qf,subtitleTrackController:Wf,timelineController:lp,audioStreamController:Pf,audioTrackController:Of,emeController:Mc,cmcdController:Hf,contentSteeringController:Kf,interstitialsController:Jf});function _M(){return {cueHandler:fM,enableWebVTT:true,enableIMSC1:true,enableCEA708Captions:true,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:true}}function TM(r,e,t){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(e.liveMaxLatencyDurationCount!==void 0&&(e.liveSyncDurationCount===void 0||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(e.liveMaxLatencyDuration!==void 0&&(e.liveSyncDuration===void 0||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let i=up(r),n=["manifest","level","frag"],s=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return n.forEach(a=>{let o=`${a==="level"?"playlist":a}LoadPolicy`,c=e[o]===void 0,l=[];s.forEach(u=>{let d=`${a}Loading${u}`,h=e[d];if(h!==void 0&&c){l.push(d);let f=i[o].default;switch(e[o]={default:f},u){case "TimeOut":f.maxLoadTimeMs=h,f.maxTimeToFirstByteMs=h;break;case "MaxRetry":f.errorRetry.maxNumRetry=h,f.timeoutRetry.maxNumRetry=h;break;case "RetryDelay":f.errorRetry.retryDelayMs=h,f.timeoutRetry.retryDelayMs=h;break;case "MaxRetryTimeout":f.errorRetry.maxRetryDelayMs=h,f.timeoutRetry.maxRetryDelayMs=h;break}}}),l.length&&t.warn(`hls.js config: "${l.join('", "')}" setting(s) are deprecated, use "${o}": ${tt(e[o])}`);}),Ye(Ye({},i),e)}function up(r){return r&&typeof r=="object"?Array.isArray(r)?r.map(up):Object.keys(r).reduce((e,t)=>(e[t]=up(r[t]),e),{}):r}function wM(r,e){let t=r.loader;t!==Uc&&t!==$c?(e.log("[config]: Custom loader detected, cannot enable progressive streaming"),r.progressive=false):pM()&&(r.loader=Uc,r.progressive=true,r.enableSoftwareAES=true,e.log("[config]: Progressive streaming enabled, using FetchLoader"));}var pc=2,AM=.1,kM=.05,IM=100,dp=class extends _c{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=false,this.stalled=null,this.moved=false,this.seeking=false,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0;},this.onMediaWaiting=()=>{var i;(i=this.media)!=null&&i.seeking||(this.waiting=self.performance.now(),this.tick());},this.onMediaEnded=()=>{if(this.hls){var i;this.ended=((i=this.media)==null?void 0:i.currentTime)||1,this.hls.trigger(x.MEDIA_ENDED,{stalled:false});}},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(IM),this.mediaSource=t.mediaSource;let i=this.media=t.media;Qt(i,"playing",this.onMediaPlaying),Qt(i,"waiting",this.onMediaWaiting),Qt(i,"ended",this.onMediaEnded);}onMediaDetaching(e,t){this.clearInterval();let{media:i}=this;i&&(ir(i,"playing",this.onMediaPlaying),ir(i,"waiting",this.onMediaWaiting),ir(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(!((e=this.media)!=null&&e.readyState)||!this.hasBuffered)return;let t=this.media.currentTime;this.poll(t,this.lastCurrentTime),this.lastCurrentTime=t;}poll(e,t){var i,n;let s=(i=this.hls)==null?void 0:i.config;if(!s)return;let a=this.media;if(!a)return;let{seeking:o}=a,c=this.seeking&&!o,l=!this.seeking&&o,u=a.paused&&!o||a.ended||a.playbackRate===0;if(this.seeking=o,e!==t){t&&(this.ended=0),this.moved=true,o||(this.nudgeRetry=0,s.nudgeOnVideoHole&&!u&&e>t&&this.nudgeOnVideoHole(e,t)),this.waiting===0&&this.stallResolved(e);return}if(l||c){c&&this.stallResolved(e);return}if(u){this.nudgeRetry=0,this.stallResolved(e),!this.ended&&a.ended&&this.hls&&(this.ended=e||1,this.hls.trigger(x.MEDIA_ENDED,{stalled:false}));return}if(!Re.getBuffered(a).length){this.nudgeRetry=0;return}let d=Re.bufferInfo(a,e,0),h=d.nextStart||0,f=this.fragmentTracker;if(o&&f&&this.hls){let I=eb(this.hls.inFlightFragments,e),T=d.len>pc,w=!h||I||h-e>pc&&!f.getPartialFragment(e);if(T||w)return;this.moved=false;}let p=(n=this.hls)==null?void 0:n.latestLevelDetails;if(!this.moved&&this.stalled!==null&&f){if(!(d.len>0)&&!h)return;let T=Math.max(h,d.start||0)-e,A=!!(p!=null&&p.live)?p.targetduration*2:pc,_=ac(e,f);if(T>0&&(T<=A||_)){a.paused||this._trySkipBufferHole(_);return}}let g=s.detectStallWithCurrentTimeMs,m=self.performance.now(),y=this.waiting,v=this.stalled;if(v===null)if(y>0&&m-y<g)v=this.stalled=y;else {this.stalled=m;return}let E=m-v;if(!o&&(E>=g||y)&&this.hls){var b;if(((b=this.mediaSource)==null?void 0:b.readyState)==="ended"&&!(p!=null&&p.live)&&Math.abs(e-(p?.edge||0))<1){if(this.ended)return;this.ended=e||1,this.hls.trigger(x.MEDIA_ENDED,{stalled:true});return}if(this._reportStall(d),!this.media||!this.hls)return}let S=Re.bufferInfo(a,e,s.maxBufferHole);this._tryFixBufferStall(S,E,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=false,this.waiting=0,this.hls.trigger(x.STALL_RESOLVED,{});}}nudgeOnVideoHole(e,t){var i;let n=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&(i=this.buffered.audio)!=null&&i.length&&n&&n.length>1&&e>n.end(0)){let s=Re.bufferedInfo(Re.timeRangesToArray(this.buffered.audio),e,0);if(s.len>1&&t>=s.start){let a=Re.timeRangesToArray(n),o=Re.bufferedInfo(a,t,0).bufferedIndex;if(o>-1&&o<a.length-1){let c=Re.bufferedInfo(a,e,0).bufferedIndex,l=a[o].end,u=a[o+1].start;if((c===-1||c>o)&&u-l<1&&e-l<2){let d=new Error(`nudging playhead to flush pipeline after video hole. currentTime: ${e} hole: ${l} -> ${u} buffered index: ${c}`);this.warn(d.message),this.media.currentTime+=1e-6;let h=ac(e,this.fragmentTracker);h&&"fragment"in h?h=h.fragment:h||(h=void 0);let f=Re.bufferInfo(this.media,e,0);this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_SEEK_OVER_HOLE,fatal:false,error:d,reason:d.message,frag:h,buffer:f.len,bufferInfo:f});}}}}}_tryFixBufferStall(e,t,i){var n,s;let{fragmentTracker:a,media:o}=this,c=(n=this.hls)==null?void 0:n.config;if(!o||!a||!c)return;let l=(s=this.hls)==null?void 0:s.latestLevelDetails,u=ac(i,a);if((u||l!=null&&l.live&&i<l.fragmentStart)&&(this._trySkipBufferHole(u)||!this.media))return;let d=e.buffered,h=this.adjacentTraversal(e,i);(d&&d.length>1&&e.len>c.maxBufferHole||e.nextStart&&(e.nextStart-i<c.maxBufferHole||h))&&(t>c.highBufferWatchdogPeriod*1e3||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(e));}adjacentTraversal(e,t){let i=this.fragmentTracker,n=e.nextStart;if(i&&n){let s=i.getFragAtPos(t,le.MAIN),a=i.getFragAtPos(n,le.MAIN);if(s&&a)return a.sn-s.sn<2}return false}_reportStall(e){let{hls:t,media:i,stallReported:n,stalled:s}=this;if(!n&&s!==null&&i&&t){this.stallReported=true;let a=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${tt(e)})`);this.warn(a.message),t.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_STALLED_ERROR,fatal:false,error:a,buffer:e.len,bufferInfo:e,stalled:{start:s}});}}_trySkipBufferHole(e){var t;let{fragmentTracker:i,media:n}=this,s=(t=this.hls)==null?void 0:t.config;if(!n||!i||!s)return 0;let a=n.currentTime,o=Re.bufferInfo(n,a,0),c=a<o.start?o.start:o.nextStart;if(c&&this.hls){let u=o.len<=s.maxBufferHole,d=o.len>0&&o.len<1&&n.readyState<3,h=c-a;if(h>0&&(u||d)){if(h>s.maxBufferHole){let p=false;if(a===0){let g=i.getAppendedFrag(0,le.MAIN);g&&c<g.end&&(p=true);}if(!p&&e){var l;if(!((l=this.hls.loadLevelObj)!=null&&l.details)||eb(this.hls.inFlightFragments,c))return 0;let m=false,y=e.end;for(;y<c;){let v=ac(y,i);if(v)y+=v.duration;else {m=true;break}}if(m)return 0}}let f=Math.max(c+kM,a+AM);if(this.warn(`skipping hole, adjusting currentTime from ${a} to ${f}`),this.moved=true,n.currentTime=f,!(e!=null&&e.gap)){let p=new Error(`fragment loaded with buffer holes, seeking from ${a} to ${f}`),g={type:de.MEDIA_ERROR,details:D.BUFFER_SEEK_OVER_HOLE,fatal:false,error:p,reason:p.message,buffer:o.len,bufferInfo:o};e&&("fragment"in e?g.part=e:g.frag=e),this.hls.trigger(x.ERROR,g);}return f}}return 0}_tryNudgeBuffer(e){let{hls:t,media:i,nudgeRetry:n}=this,s=t?.config;if(!i||!s)return 0;let a=i.currentTime;if(this.nudgeRetry++,n<s.nudgeMaxRetry){let o=a+(n+1)*s.nudgeOffset,c=new Error(`Nudging 'currentTime' from ${a} to ${o}`);this.warn(c.message),i.currentTime=o,t.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_NUDGE_ON_STALL,error:c,fatal:false,buffer:e.len,bufferInfo:e});}else {let o=new Error(`Playhead still not moving while enough data buffered @${a} after ${s.nudgeMaxRetry} nudges`);this.error(o.message),t.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.BUFFER_STALLED_ERROR,error:o,fatal:true,buffer:e.len,bufferInfo:e});}}};function eb(r,e){let t=tb(r.main);if(t&&t.start<=e)return t;let i=tb(r.audio);return i&&i.start<=e?i:null}function tb(r){if(!r)return null;switch(r.state){case U.IDLE:case U.STOPPED:case U.ENDED:case U.ERROR:return null}return r.frag}function ac(r,e){return e.getAppendedFrag(r,le.MAIN)||e.getPartialFragment(r)}var LM=.25;function hp(){if(!(typeof self>"u"))return self.VTTCue||self.TextTrackCue}function Zh(r,e,t,i,n){let s=new r(e,t,"");try{s.value=i,n&&(s.type=n);}catch{s=new r(e,t,tt(n?Ye({type:n},i):i));}return s}var oc=(()=>{let r=hp();try{r&&new r(0,Number.POSITIVE_INFINITY,"");}catch{return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})(),fp=class{constructor(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=true,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,((i=t.overrides)==null?void 0:i.cueRemoval)===false&&(this.removeCues=false);}onMediaAttached(){var e;let t=(e=this.hls)==null?void 0:e.latestLevelDetails;t&&this.updateDateRangeCues(t);}onMediaDetaching(e,t){this.media=null,!t.transferMedia&&(this.id3Track&&(this.removeCues&&Hs(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(i.kind==="metadata"&&i.label==="id3")return fS(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(e,t){if(!this.media||!this.hls)return;let{enableEmsgMetadataCues:i,enableID3MetadataCues:n}=this.hls.config;if(!i&&!n)return;let{samples:s}=t;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=hp();if(a)for(let o=0;o<s.length;o++){let c=s[o].type;if(c===fr.emsg&&!i||!n)continue;let l=Kb(s[o].data),u=s[o].pts,d=u+s[o].duration;d>oc&&(d=oc),d-u<=0&&(d=u+LM);for(let f=0;f<l.length;f++){let p=l[f];if(!Vb(p)){this.updateId3CueEnds(u,c);let g=Zh(a,u,d,p,c);g&&this.id3Track.addCue(g);}}}}updateId3CueEnds(e,t){var i;let n=(i=this.id3Track)==null?void 0:i.cues;if(n)for(let s=n.length;s--;){let a=n[s];a.type===t&&a.startTime<e&&a.endTime===oc&&(a.endTime=e);}}onBufferFlushing(e,{startOffset:t,endOffset:i,type:n}){let{id3Track:s,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:o,enableID3MetadataCues:c}}=a;if(s&&(o||c)){let l;n==="audio"?l=u=>u.type===fr.audioId3&&c:n==="video"?l=u=>u.type===fr.emsg&&o:l=u=>u.type===fr.audioId3&&c||u.type===fr.emsg&&o,jf(s,t,i,l);}}onLevelUpdated(e,{details:t}){this.updateDateRangeCues(t,true);}onLevelPtsUpdated(e,t){Math.abs(t.drift)>.01&&this.updateDateRangeCues(t.details);}updateDateRangeCues(e,t){if(!this.hls||!this.media)return;let{assetPlayerId:i,timelineOffset:n,enableDateRangeMetadataCues:s,interstitialsController:a}=this.hls.config;if(!s)return;let o=hp();if(i&&n&&!a){let{fragmentStart:g,fragmentEnd:m}=e,y=this.assetCue;y?(y.startTime=g,y.endTime=m):o&&(y=this.assetCue=Zh(o,g,m,{assetPlayerId:this.hls.config.assetPlayerId},"hlsjs.interstitial.asset"),y&&(y.id=i,this.id3Track||(this.id3Track=this.createTrack(this.media)),this.id3Track.addCue(y),y.addEventListener("enter",this.onEventCueEnter)));}if(!e.hasProgramDateTime)return;let{id3Track:c}=this,{dateRanges:l}=e,u=Object.keys(l),d=this.dateRangeCuesAppended;if(c&&t){var h;if((h=c.cues)!=null&&h.length){let g=Object.keys(d).filter(m=>!u.includes(m));for(let m=g.length;m--;){var f;let y=g[m],v=(f=d[y])==null?void 0:f.cues;delete d[y],v&&Object.keys(v).forEach(E=>{let b=v[E];if(b){b.removeEventListener("enter",this.onEventCueEnter);try{c.removeCue(b);}catch{}}});}}else d=this.dateRangeCuesAppended={};}let p=e.fragments[e.fragments.length-1];if(!(u.length===0||!te(p?.programDateTime))){this.id3Track||(this.id3Track=this.createTrack(this.media));for(let g=0;g<u.length;g++){let m=u[g],y=l[m],v=y.startTime,E=d[m],b=E?.cues||{},S=E?.durationKnown||false,I=oc,{duration:T,endDate:w}=y;if(w&&T!==null)I=v+T,S=true;else if(y.endOnNext&&!S){let _=u.reduce((k,L)=>{if(L!==y.id){let C=l[L];if(C.class===y.class&&C.startDate>y.startDate&&(!k||y.startDate<k.startDate))return C}return k},null);_&&(I=_.startTime,S=true);}let A=Object.keys(y.attr);for(let _=0;_<A.length;_++){let k=A[_];if(!MC(k))continue;let L=b[k];if(L)S&&!(E!=null&&E.durationKnown)?L.endTime=I:Math.abs(L.startTime-v)>.01&&(L.startTime=v,L.endTime=I);else if(o){let C=y.attr[k];OC(k)&&(C=sb(C));let B=Zh(o,v,I,{key:k,data:C},fr.dateRange);B&&(B.id=m,this.id3Track.addCue(B),b[k]=B,a&&(k==="X-ASSET-LIST"||k==="X-ASSET-URL")&&B.addEventListener("enter",this.onEventCueEnter));}}d[m]={cues:b,dateRange:y,durationKnown:S};}}}},pp=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=false,this.onTimeupdate=()=>{let{media:t}=this,i=this.levelDetails;if(!t||!i)return;this.currentTime=t.currentTime;let n=this.computeLatency();if(n===null)return;this._latency=n;let{lowLatencyMode:s,maxLiveSyncPlaybackRate:a}=this.config;if(!s||a===1||!i.live)return;let o=this.targetLatency;if(o===null)return;let c=n-o,l=Math.min(this.maxLatency,o+i.targetduration);if(c<l&&c>.05&&this.forwardBufferLength>1){let d=Math.min(2,Math.max(1,a)),h=Math.round(2/(1+Math.exp(-0.75*c-this.edgeStalled))*20)/20,f=Math.min(d,Math.max(1,h));this.changeMediaPlaybackRate(t,f);}else t.playbackRate!==1&&t.playbackRate!==0&&this.changeMediaPlaybackRate(t,1);},this.hls=e,this.config=e.config,this.registerListeners();}get levelDetails(){var e;return ((e=this.hls)==null?void 0:e.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){let{config:e}=this;if(e.liveMaxLatencyDuration!==void 0)return e.liveMaxLatencyDuration;let t=this.levelDetails;return t?e.liveMaxLatencyDurationCount*t.targetduration:0}get targetLatency(){let e=this.levelDetails;if(e===null||this.hls===null)return null;let{holdBack:t,partHoldBack:i,targetduration:n}=e,{liveSyncDuration:s,liveSyncDurationCount:a,lowLatencyMode:o}=this.config,c=this.hls.userConfig,l=o&&i||t;(this._targetLatencyUpdated||c.liveSyncDuration||c.liveSyncDurationCount||l===0)&&(l=s!==void 0?s:a*n);let u=n;return l+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,u)}set targetLatency(e){this.stallCount=0,this.config.liveSyncDuration=e,this._targetLatencyUpdated=true;}get liveSyncPosition(){let e=this.estimateLiveEdge(),t=this.targetLatency;if(e===null||t===null)return null;let i=this.levelDetails;if(i===null)return null;let n=i.edge,s=e-t-this.edgeStalled,a=n-i.totalduration,o=n-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,s),o)}get drift(){let e=this.levelDetails;return e===null?1:e.drift}get edgeStalled(){let e=this.levelDetails;if(e===null)return 0;let t=(this.config.lowLatencyMode&&e.partTarget||e.targetduration)*3;return Math.max(e.age-t,0)}get forwardBufferLength(){let{media:e}=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===D.BUFFER_STALLED_ERROR&&(this.stallCount++,this.hls&&(i=this.levelDetails)!=null&&i.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"));}changeMediaPlaybackRate(e,t){var i,n;e.playbackRate!==t&&((i=this.hls)==null||i.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(n=this.targetLatency)==null?void 0:n.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${e.playbackRate} to ${t}`),e.playbackRate=t);}estimateLiveEdge(){let e=this.levelDetails;return e===null?null:e.edge+e.age}computeLatency(){let e=this.estimateLiveEdge();return e===null?null:e-this.currentTime}},mp=class extends bo{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();}stopLoad(){this._levels.forEach(t=>{t.loadError=0,t.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,n=[],s={},a={},o=false,c=false,l=false;t.levels.forEach(u=>{let d=u.attrs,{audioCodec:h,videoCodec:f}=u;h&&(u.audioCodec=h=yc(h,i)||void 0),f&&(f=u.videoCodec=nC(f));let{width:p,height:g,unknownCodecs:m}=u,y=m?.length||0;if(o||(o=!!(p&&g)),c||(c=!!f),l||(l=!!h),y||h&&!this.isAudioSupported(h)||f&&!this.isVideoSupported(f)){this.log(`Some or all CODECS not supported "${d.CODECS}"`);return}let{CODECS:v,"FRAME-RATE":E,"HDCP-LEVEL":b,"PATHWAY-ID":S,RESOLUTION:I,"VIDEO-RANGE":T}=d,A=`${`${S||"."}-`}${u.bitrate}-${I}-${E}-${v}-${T}-${b}`;if(s[A])if(s[A].uri!==u.url&&!u.attrs["PATHWAY-ID"]){let _=a[A]+=1;u.attrs["PATHWAY-ID"]=new Array(_+1).join(".");let k=this.createLevel(u);s[A]=k,n.push(k);}else s[A].addGroupId("audio",d.AUDIO),s[A].addGroupId("text",d.SUBTITLES);else {let _=this.createLevel(u);s[A]=_,a[A]=1,n.push(_);}}),this.filterAndSortMediaOptions(n,t,o,c,l);}createLevel(e){let t=new zn(e),i=e.supplemental;if(i!=null&&i.videoCodec&&!this.isVideoSupported(i.videoCodec)){let n=new Error(`SUPPLEMENTAL-CODECS not supported "${i.videoCodec}"`);this.log(n.message),t.supportedResult=gb(n,[]);}return t}isAudioSupported(e){return ho(e,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(e){return ho(e,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(e,t,i,n,s){var a;let o=[],c=[],l=e,u=((a=t.stats)==null?void 0:a.parsing)||{};if((i||n)&&s&&(l=l.filter(({videoCodec:v,videoRange:E,width:b,height:S})=>(!!v||!!(b&&S))&&pC(E))),l.length===0){Promise.resolve().then(()=>{if(this.hls){let v="no level with compatible codecs found in manifest",E=v;t.levels.length&&(E=`one or more CODECS in variant not supported: ${tt(t.levels.map(S=>S.attrs.CODECS).filter((S,I,T)=>T.indexOf(S)===I))}`,this.warn(E),v+=` (${E})`);let b=new Error(v);this.hls.trigger(x.ERROR,{type:de.MEDIA_ERROR,details:D.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:true,url:t.url,error:b,reason:E});}}),u.end=performance.now();return}t.audioTracks&&(o=t.audioTracks.filter(v=>!v.audioCodec||this.isAudioSupported(v.audioCodec)),rb(o)),t.subtitles&&(c=t.subtitles,rb(c));let d=l.slice(0);l.sort((v,E)=>{if(v.attrs["HDCP-LEVEL"]!==E.attrs["HDCP-LEVEL"])return (v.attrs["HDCP-LEVEL"]||"")>(E.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&v.height!==E.height)return v.height-E.height;if(v.frameRate!==E.frameRate)return v.frameRate-E.frameRate;if(v.videoRange!==E.videoRange)return vc.indexOf(v.videoRange)-vc.indexOf(E.videoRange);if(v.videoCodec!==E.videoCodec){let b=Jx(v.videoCodec),S=Jx(E.videoCodec);if(b!==S)return S-b}if(v.uri===E.uri&&v.codecSet!==E.codecSet){let b=gc(v.codecSet),S=gc(E.codecSet);if(b!==S)return S-b}return v.averageBitrate!==E.averageBitrate?v.averageBitrate-E.averageBitrate:0});let h=d[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==d.length)){for(let v=0;v<d.length;v++)if(d[v].pathwayId===l[0].pathwayId){h=d[v];break}}this._levels=l;for(let v=0;v<l.length;v++)if(l[v]===h){var f;this._firstLevel=v;let E=h.bitrate,b=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${E}`),((f=this.hls.userConfig)==null?void 0:f.abrEwmaDefaultEstimate)===void 0){let S=Math.min(E,this.hls.config.abrEwmaDefaultEstimateMax);S>b&&b===this.hls.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=S);}break}let p=s&&!n,g=this.hls.config,m=!!(g.audioStreamController&&g.audioTrackController),y={levels:l,audioTracks:o,subtitleTracks:c,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:s,video:n,altAudio:m&&!p&&o.some(v=>!!v.url)};u.end=performance.now(),this.hls.trigger(x.MANIFEST_PARSED,y);}get levels(){return this._levels.length===0?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(e){let t=this._levels;if(t.length===0)return;if(e<0||e>=t.length){let u=new Error("invalid level idx"),d=e<0;if(this.hls.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.LEVEL_SWITCH_ERROR,level:e,fatal:d,error:u,reason:u.message}),d)return;e=Math.min(e,t.length-1);}let i=this.currentLevelIndex,n=this.currentLevel,s=n?n.attrs["PATHWAY-ID"]:void 0,a=t[e],o=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=a,i===e&&n&&s===o)return;this.log(`Switching to level ${e} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${o?" with Pathway "+o:""} from level ${i}${s?" with Pathway "+s:""}`);let c={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,c);let l=a.details;if(!l||l.live){let u=this.switchParams(a.uri,n?.details,l);this.loadPlaylist(u);}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,this._startLevel===void 0&&(this._startLevel=e),e!==-1&&(this.level=e);}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e;}get startLevel(){if(this._startLevel===void 0){let e=this.hls.config.startLevel;return e!==void 0?e:this.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(n=>t.indexOf(n)!==-1);if(e.length<1){this.warn(`pathwayPriority ${e} should contain at least one pathway from list: ${t}`);return}this.steering.pathwayPriority=i;}}onError(e,t){t.fatal||!t.context||t.context.type===Me.LEVEL&&t.context.level===this.level&&this.checkRetry(t);}onFragBuffered(e,{frag:t}){if(t!==void 0&&t.type===le.MAIN){let i=t.elementaryStreams;if(!Object.keys(i).some(s=>!!i[s]))return;let n=this._levels[t.level];n!=null&&n.loadError&&(this.log(`Resetting level error count of ${n.loadError} on frag buffered`),n.loadError=0);}}onLevelLoaded(e,t){var i;let{level:n,details:s}=t,a=t.levelInfo;if(!a){var o;this.warn(`Invalid level index ${n}`),(o=t.deliveryDirectives)!=null&&o.skip&&(s.deltaUpdateFailed=true);return}if(a===this.currentLevel||t.withoutMultiVariant){a.fragmentError===0&&(a.loadError=0);let c=a.details;c===t.details&&c.advanced&&(c=void 0),this.playlistLoaded(n,t,c);}else (i=t.deliveryDirectives)!=null&&i.skip&&(s.deltaUpdateFailed=true);}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),n=this.currentLevelIndex,s=e.attrs["PATHWAY-ID"],a=e.details,o=a?.age;this.log(`Loading level index ${n}${t?.msn!==void 0?" at sn "+t.msn+" part "+t.part:""}${s?" Pathway "+s:""}${o&&a.live?" age "+o.toFixed(1)+(a.type&&" "+a.type||""):""} ${i}`),this.hls.trigger(x.LEVEL_LOADING,{url:i,level:n,levelInfo:e,pathwayId:e.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null});}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=e);}removeLevel(e){var t;if(this._levels.length===1)return;let i=this._levels.filter((s,a)=>a!==e?true:(this.steering&&this.steering.removeLevel(s),s===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,s.details&&s.details.fragments.forEach(o=>o.level=-1)),false));Ob(i),this._levels=i,this.currentLevelIndex>-1&&(t=this.currentLevel)!=null&&t.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.manualLevelIndex>-1&&(this.manualLevelIndex=this.currentLevelIndex);let n=i.length-1;this._firstLevel=Math.min(this._firstLevel,n),this._startLevel&&(this._startLevel=Math.min(this._startLevel,n)),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 rb(r){let e={};r.forEach(t=>{let i=t.groupId||"";t.id=e[i]=e[i]||0,e[i]++;});}function TS(){return self.SourceBuffer||self.WebKitSourceBuffer}function wS(){if(!on())return false;let e=TS();return !e||e.prototype&&typeof e.prototype.appendBuffer=="function"&&typeof e.prototype.remove=="function"}function RM(){if(!wS())return false;let r=on();return typeof r?.isTypeSupported=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(e=>r.isTypeSupported(fo(e,"video")))||["mp4a.40.2","fLaC"].some(e=>r.isTypeSupported(fo(e,"audio"))))}function CM(){var r;let e=TS();return typeof(e==null||(r=e.prototype)==null?void 0:r.changeType)=="function"}var DM=100,gp=class extends go{constructor(e,t,i){super(e,t,i,"stream-controller",le.MAIN),this.audioCodecSwap=false,this.level=-1,this._forceStartLoad=false,this._hasEnoughToStart=false,this.altAudio=0,this.audioOnly=false,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=false,this.backtrackFragment=null,this.audioCodecSwitch=false,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick();},this.onMediaSeeked=()=>{let n=this.media,s=n?n.currentTime:null;if(s===null||!te(s)||(this.log(`Media seeked to ${s.toFixed(3)}`),!this.getBufferedFrag(s)))return;let a=this.getFwdBufferInfoAtPos(n,s,le.MAIN,0);if(a===null||a.len===0){this.warn(`Main forward buffer length at ${s} on "seeked" event ${a?a.len:"empty"})`);return}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:n}=this;if(this.stopLoad(),this.setInterval(DM),this.level=-1,!this.startFragRequested){let s=n.startLevel;s===-1&&(n.config.testBandwidth&&this.levels.length>1?(s=0,this.bitrateTest=true):s=n.firstAutoLevel),n.nextLoadLevel=s,this.level=n.loadLevel,this._hasEnoughToStart=!!t;}i>0&&e===-1&&!t&&(this.log(`Override startPosition with lastCurrentTime @${i.toFixed(3)}`),e=i),this.state=U.IDLE,this.nextLoadPosition=this.lastCurrentTime=e+this.timelineOffset,this.startPosition=t?-1:e,this.tick();}else this._forceStartLoad=true,this.state=U.STOPPED;}stopLoad(){this._forceStartLoad=false,super.stopLoad();}doTick(){switch(this.state){case U.WAITING_LEVEL:{let{levels:e,level:t}=this,i=e?.[t],n=i?.details;if(n&&(!n.live||this.levelLastLoaded===i&&!this.waitForLive(i))){if(this.waitForCdnTuneIn(n))break;this.state=U.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=U.IDLE;break}break}case U.FRAG_LOADING_WAITING_RETRY:this.checkRetryDate();break}this.state===U.IDLE&&this.doTickIdle(),this.onTickEnd();}onTickEnd(){var e;super.onTickEnd(),(e=this.media)!=null&&e.readyState&&this.media.seeking===false&&(this.lastCurrentTime=this.media.currentTime),this.checkFragmentChanged();}doTickIdle(){let{hls:e,levelLastLoaded:t,levels:i,media:n}=this;if(t===null||!n&&!this.primaryPrefetch&&(this.startFragRequested||!e.config.startFragPrefetch)||this.altAudio&&this.audioOnly)return;let s=this.buffering?e.nextLoadLevel:e.loadLevel;if(!(i!=null&&i[s]))return;let a=i[s],o=this.getMainFwdBufferInfo();if(o===null)return;let c=this.getLevelDetails();if(c&&this._streamEnded(o,c)){let g={};this.altAudio===2&&(g.type="video"),this.hls.trigger(x.BUFFER_EOS,g),this.state=U.ENDED;return}if(!this.buffering)return;e.loadLevel!==s&&e.manualLevel===-1&&this.log(`Adapting to level ${s} from level ${this.level}`),this.level=e.nextLoadLevel=s;let l=a.details;if(!l||this.state===U.WAITING_LEVEL||this.waitForLive(a)){this.level=s,this.state=U.WAITING_LEVEL,this.startFragRequested=false;return}let u=o.len,d=this.getMaxBufferLength(a.maxBitrate);if(u>=d)return;this.backtrackFragment&&this.backtrackFragment.start>o.end&&(this.backtrackFragment=null);let h=this.backtrackFragment?this.backtrackFragment.start:o.end,f=this.getNextFragment(h,l);if(this.couldBacktrack&&!this.fragPrevious&&f&&gt(f)&&this.fragmentTracker.getState(f)!==kt.OK){var p;let m=((p=this.backtrackFragment)!=null?p:f).sn-l.startSN,y=l.fragments[m-1];y&&f.cc===y.cc&&(f=y,this.fragmentTracker.removeFragment(y));}else this.backtrackFragment&&o.len&&(this.backtrackFragment=null);if(f&&this.isLoopLoading(f,h)){if(!f.gap){let m=this.audioOnly&&!this.altAudio?et.AUDIO:et.VIDEO,y=(m===et.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;y&&this.afterBufferFlushed(y,m,le.MAIN);}f=this.getNextFragmentLoopLoading(f,l,o,le.MAIN,d);}f&&(f.initSegment&&!f.initSegment.data&&!this.bitrateTest&&(f=f.initSegment),this.loadFragment(f,a,h));}loadFragment(e,t,i){let n=this.fragmentTracker.getState(e);n===kt.NOT_LOADED||n===kt.PARTIAL?gt(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,le.MAIN)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY);}nextLevelSwitch(){let{levels:e,media:t}=this;if(t!=null&&t.readyState){let i,n=this.getAppendedFrag(t.currentTime);n&&n.start>1&&this.flushMainBuffer(0,n.start-1);let s=this.getLevelDetails();if(s!=null&&s.live){let o=this.getMainFwdBufferInfo();if(!o||o.len<s.targetduration*2)return}if(!t.paused&&e){let o=this.hls.nextLoadLevel,c=e[o],l=this.fragLastKbps;l&&this.fragCurrent?i=this.fragCurrent.duration*c.maxBitrate/(1e3*l)+1:i=0;}else i=0;let a=this.getBufferedFrag(t.currentTime+i);if(a){let o=this.followingBufferedFrag(a);if(o){this.abortCurrentFrag();let c=o.maxStartPTS?o.maxStartPTS:o.start,l=o.duration,u=Math.max(a.end,c+Math.min(Math.max(l-this.config.maxFragLookUpTolerance,l*(this.couldBacktrack?.5:.125)),l*(this.couldBacktrack?.75:.25)));this.flushMainBuffer(u,Number.POSITIVE_INFINITY);}}}}abortCurrentFrag(){let e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case U.KEY_LOADING:case U.FRAG_LOADING:case U.FRAG_LOADING_WAITING_RETRY:case U.PARSING:case U.PARSED:this.state=U.IDLE;break}this.nextLoadPosition=this.getLoadPosition();}flushMainBuffer(e,t){super.flushMainBuffer(e,t,this.altAudio===2?"video":null);}onMediaAttached(e,t){super.onMediaAttached(e,t);let i=t.media;Qt(i,"playing",this.onMediaPlaying),Qt(i,"seeked",this.onMediaSeeked);}onMediaDetaching(e,t){let{media:i}=this;i&&(ir(i,"playing",this.onMediaPlaying),ir(i,"seeked",this.onMediaSeeked)),this.videoBuffer=null,this.fragPlaying=null,super.onMediaDetaching(e,t),!t.transferMedia&&(this._hasEnoughToStart=false);}onManifestLoading(){super.onManifestLoading(),this.log("Trigger BUFFER_RESET"),this.hls.trigger(x.BUFFER_RESET,void 0),this.couldBacktrack=false,this.fragLastKbps=0,this.fragPlaying=this.backtrackFragment=null,this.altAudio=0,this.audioOnly=false;}onManifestParsed(e,t){let i=false,n=false;for(let s=0;s<t.levels.length;s++){let a=t.levels[s].audioCodec;a&&(i=i||a.indexOf("mp4a.40.2")!==-1,n=n||a.indexOf("mp4a.40.5")!==-1);}this.audioCodecSwitch=i&&n&&!CM(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=false;}onLevelLoading(e,t){let{levels:i}=this;if(!i||this.state!==U.IDLE)return;let n=t.levelInfo;(!n.details||n.details.live&&(this.levelLastLoaded!==n||n.details.expired)||this.waitForCdnTuneIn(n.details))&&(this.state=U.WAITING_LEVEL);}onLevelLoaded(e,t){var i;let{levels:n,startFragRequested:s}=this,a=t.level,o=t.details,c=o.totalduration;if(!n){this.warn(`Levels were reset while loading level ${a}`);return}this.log(`Level ${a} loaded [${o.startSN},${o.endSN}]${o.lastPartSn?`[part-${o.lastPartSn}-${o.lastPartIndex}]`:""}, cc [${o.startCC}, ${o.endCC}] duration:${c}`);let l=t.levelInfo,u=this.fragCurrent;u&&(this.state===U.FRAG_LOADING||this.state===U.FRAG_LOADING_WAITING_RETRY)&&u.level!==t.level&&u.loader&&this.abortCurrentFrag();let d=0;if(o.live||(i=l.details)!=null&&i.live){var h;if(this.checkLiveUpdate(o),o.deltaUpdateFailed)return;d=this.alignPlaylists(o,l.details,(h=this.levelLastLoaded)==null?void 0:h.details);}if(l.details=o,this.levelLastLoaded=l,s||this.setStartPosition(o,d),this.hls.trigger(x.LEVEL_UPDATED,{details:o,level:a}),this.state===U.WAITING_LEVEL){if(this.waitForCdnTuneIn(o))return;this.state=U.IDLE;}s&&o.live&&this.synchronizeToLiveEdge(o),this.tick();}synchronizeToLiveEdge(e){let{config:t,media:i}=this;if(!i)return;let n=this.hls.liveSyncPosition,s=this.getLoadPosition(),a=e.fragmentStart,o=e.edge,c=s>=a-t.maxFragLookUpTolerance&&s<=o;if(n!==null&&i.duration>n&&(s<n||!c)){let u=t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:t.liveMaxLatencyDurationCount*e.targetduration;if((!c&&i.readyState<4||s<o-u)&&(this._hasEnoughToStart||(this.nextLoadPosition=n),i.readyState))if(this.warn(`Playback: ${s.toFixed(3)} is located too far from the end of live sliding playlist: ${o}, reset currentTime to : ${n.toFixed(3)}`),this.config.liveSyncMode==="buffered"){var l;let d=Re.bufferInfo(i,n,0);if(!((l=d.buffered)!=null&&l.length)){i.currentTime=n;return}if(d.start<=s){i.currentTime=n;return}let{nextStart:f}=Re.bufferedInfo(d.buffered,s,0);f&&(i.currentTime=f);}else i.currentTime=n;}}_handleFragmentLoadProgress(e){var t;let i=e.frag,{part:n,payload:s}=e,{levels:a}=this;if(!a){this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let o=a[i.level];if(!o){this.warn(`Level ${i.level} not found on progress`);return}let c=o.details;if(!c){this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),this.fragmentTracker.removeFragment(i);return}let l=o.videoCodec,u=c.PTSKnown||!c.live,d=(t=i.initSegment)==null?void 0:t.data,h=this._getAudioCodec(o),f=this.transmuxer=this.transmuxer||new Dc(this.hls,le.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),p=n?n.index:-1,g=p!==-1,m=new mo(i.level,i.sn,i.stats.chunkCount,s.byteLength,p,g),y=this.initPTS[i.cc];f.push(s,d,h,l,i,n,c.totalduration,u,m,y);}onAudioTrackSwitching(e,t){let i=this.hls,n=this.altAudio!==0;if(Ec(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 a=this.fragCurrent;a&&(this.log("Switching to main audio track, cancel main fragment load"),a.abortRequests(),this.fragmentTracker.removeFragment(a)),this.resetTransmuxer(),this.resetLoadingState();}else this.audioOnly&&this.resetTransmuxer();if(n){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:Number.POSITIVE_INFINITY,type:null});return}i.trigger(x.AUDIO_TRACK_SWITCHED,t);}}onAudioTrackSwitched(e,t){let i=Ec(t.url,this.hls);if(i){let n=this.videoBuffer;n&&this.mediaBuffer!==n&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n);}this.altAudio=i?2:0,this.tick();}onBufferCreated(e,t){let i=t.tracks,n,s,a=false;for(let o in i){let c=i[o];if(c.id==="main"){if(s=o,n=c,o==="video"){let l=i[o];l&&(this.videoBuffer=l.buffer);}}else a=true;}a&&n?(this.log(`Alternate track found, use ${s}.buffered to schedule main fragment loading`),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media;}onFragBuffered(e,t){let{frag:i,part:n}=t,s=i.type===le.MAIN;if(s){if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${n?" p: "+n.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),this.state===U.PARSED&&(this.state=U.IDLE);return}let o=n?n.stats:i.stats;this.fragLastKbps=Math.round(8*o.total/(o.buffering.end-o.loading.first)),gt(i)&&(this.fragPrevious=i),this.fragBufferedComplete(i,n);}let a=this.media;a&&(!this._hasEnoughToStart&&Re.getBuffered(a).length&&(this._hasEnoughToStart=true,this.seekToStartPos()),s&&this.tick());}get hasEnoughToStart(){return this._hasEnoughToStart}onError(e,t){var i;if(t.fatal){this.state=U.ERROR;return}switch(t.details){case D.FRAG_GAP:case D.FRAG_PARSING_ERROR:case D.FRAG_DECRYPT_ERROR:case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(le.MAIN,t);break;case D.LEVEL_LOAD_ERROR:case D.LEVEL_LOAD_TIMEOUT:case D.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===U.WAITING_LEVEL&&((i=t.context)==null?void 0:i.type)===Me.LEVEL&&(this.state=U.IDLE);break;case D.BUFFER_ADD_CODEC_ERROR:case D.BUFFER_APPEND_ERROR:if(t.parent!=="main")return;this.reduceLengthAndFlushBuffer(t)&&this.resetLoadingState();break;case D.BUFFER_FULL_ERROR:if(t.parent!=="main")return;this.reduceLengthAndFlushBuffer(t)&&(!this.config.interstitialsController&&this.config.assetPlayerId?this._hasEnoughToStart=true:this.flushMainBuffer(0,Number.POSITIVE_INFINITY));break;case D.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}onFragLoadEmergencyAborted(){this.state=U.IDLE,this._hasEnoughToStart||(this.startFragRequested=false,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate();}onBufferFlushed(e,{type:t}){if(t!==et.AUDIO||!this.altAudio){let i=(t===et.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;i&&(this.afterBufferFlushed(i,t,le.MAIN),this.tick());}}onLevelsUpdated(e,t){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level,this.level===-1&&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){this.log(`could not seek to ${i}, already seeking at ${t}`);return}let n=this.timelineOffset;n&&i&&(i+=n);let s=this.getLevelDetails(),a=Re.getBuffered(e),o=a.length?a.start(0):0,c=o-i,l=Math.max(this.config.maxBufferHole,this.config.maxFragLookUpTolerance);(this.config.startOnSegmentBoundary||c>0&&(c<l||this.loadingParts&&c<2*(s?.partTarget||0)))&&(this.log(`adjusting start position by ${c} to match buffer start`),i+=c,this.startPosition=i),t<i&&(this.log(`seek to target start position ${i} from current time ${t} buffer start ${o}`),e.currentTime=i);}}_getAudioCodec(e){let t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t.indexOf("mp4a.40.5")!==-1?t="mp4a.40.2":t="mp4a.40.5"),t}_loadBitrateTestFrag(e,t){e.bitrateTest=true,this._doFragLoad(e,t).then(i=>{let{hls:n}=this,s=i?.frag;if(!s||this.fragContextChanged(s))return;t.fragmentError=0,this.state=U.IDLE,this.startFragRequested=false,this.bitrateTest=false;let a=s.stats;a.parsing.start=a.parsing.end=a.buffering.start=a.buffering.end=self.performance.now(),n.trigger(x.FRAG_LOADED,i),s.bitrateTest=false;}).catch(i=>{this.state===U.STOPPED||this.state===U.ERROR||(this.warn(i),this.resetFragmentLoading(e));});}_handleTransmuxComplete(e){let t=this.playlistType,{hls:i}=this,{remuxResult:n,chunkMeta:s}=e,a=this.getCurrentContext(s);if(!a){this.resetWhenMissingContext(s);return}let{frag:o,part:c,level:l}=a,{video:u,text:d,id3:h,initSegment:f}=n,{details:p}=l,g=this.altAudio?void 0:n.audio;if(this.fragContextChanged(o)){this.fragmentTracker.removeFragment(o);return}if(this.state=U.PARSING,f){let m=f.tracks;if(m){let b=o.initSegment||o;if(this.unhandledEncryptionError(f,o))return;this._bufferInitSegment(l,m,b,s),i.trigger(x.FRAG_PARSING_INIT_SEGMENT,{frag:b,id:t,tracks:m});}let y=f.initPTS,v=f.timescale,E=this.initPTS[o.cc];if(te(y)&&(!E||E.baseTime!==y||E.timescale!==v)){let b=f.trackId;this.initPTS[o.cc]={baseTime:y,timescale:v,trackId:b},i.trigger(x.INIT_PTS_FOUND,{frag:o,id:t,initPTS:y,timescale:v,trackId:b});}}if(u&&p){g&&u.type==="audiovideo"&&this.logMuxedErr(o);let m=p.fragments[o.sn-1-p.startSN],y=o.sn===p.startSN,v=!m||o.cc>m.cc;if(n.independent!==false){let{startPTS:E,endPTS:b,startDTS:S,endDTS:I}=u;if(c)c.elementaryStreams[u.type]={startPTS:E,endPTS:b,startDTS:S,endDTS:I};else if(u.firstKeyFrame&&u.independent&&s.id===1&&!v&&(this.couldBacktrack=true),u.dropped&&u.independent){let T=this.getMainFwdBufferInfo(),w=(T?T.end:this.getLoadPosition())+this.config.maxBufferHole,A=u.firstKeyFramePTS?u.firstKeyFramePTS:E;if(!y&&w<A-this.config.maxBufferHole&&!v){this.backtrack(o);return}else v&&(o.gap=true);o.setElementaryStreamInfo(u.type,o.start,b,o.start,I,true);}else y&&E-(p.appliedTimelineOffset||0)>pc&&(o.gap=true);o.setElementaryStreamInfo(u.type,E,b,S,I),this.backtrackFragment&&(this.backtrackFragment=o),this.bufferFragmentData(u,o,c,s,y||v);}else if(y||v)o.gap=true;else {this.backtrack(o);return}}if(g){let{startPTS:m,endPTS:y,startDTS:v,endDTS:E}=g;c&&(c.elementaryStreams[et.AUDIO]={startPTS:m,endPTS:y,startDTS:v,endDTS:E}),o.setElementaryStreamInfo(et.AUDIO,m,y,v,E),this.bufferFragmentData(g,o,c,s);}if(p&&h!=null&&h.samples.length){let m={id:t,frag:o,details:p,samples:h.samples};i.trigger(x.FRAG_PARSING_METADATA,m);}if(p&&d){let m={id:t,frag:o,details:p,samples:d.samples};i.trigger(x.FRAG_PARSING_USERDATA,m);}}logMuxedErr(e){this.warn(`${gt(e)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${e.url}`);}_bufferInitSegment(e,t,i,n){if(this.state!==U.PARSING)return;this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&(delete t.audio,t.audiovideo&&this.logMuxedErr(i));let{audio:s,video:a,audiovideo:o}=t;if(s){let l=e.audioCodec,u=lc(s.codec,l);u==="mp4a"&&(u="mp4a.40.5");let d=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){u&&(u.indexOf("mp4a.40.5")!==-1?u="mp4a.40.2":u="mp4a.40.5");let h=s.metadata;h&&"channelCount"in h&&(h.channelCount||1)!==1&&d.indexOf("firefox")===-1&&(u="mp4a.40.5");}u&&u.indexOf("mp4a.40.5")!==-1&&d.indexOf("android")!==-1&&s.container!=="audio/mpeg"&&(u="mp4a.40.2",this.log(`Android: force audio codec to ${u}`)),l&&l!==u&&this.log(`Swapping manifest audio codec "${l}" for "${u}"`),s.levelCodec=u,s.id=le.MAIN,this.log(`Init audio buffer, container:${s.container}, codecs[selected/level/parsed]=[${u||""}/${l||""}/${s.codec}]`),delete t.audiovideo;}if(a){a.levelCodec=e.videoCodec,a.id=le.MAIN;let l=a.codec;if(l?.length===4)switch(l){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";break}this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${e.videoCodec||""}/${l}]${a.codec!==l?" parsed-corrected="+a.codec:""}${a.supplemental?" supplemental="+a.supplemental:""}`),delete t.audiovideo;}o&&(this.log(`Init audiovideo buffer, container:${o.container}, codecs[level/parsed]=[${e.codecs}/${o.codec}]`),delete t.video,delete t.audio);let c=Object.keys(t);if(c.length){if(this.hls.trigger(x.BUFFER_CODECS,t),!this.hls)return;c.forEach(l=>{let d=t[l].initSegment;d!=null&&d.byteLength&&this.hls.trigger(x.BUFFER_APPENDING,{type:l,data:d,frag:i,part:null,chunkMeta:n,parent:i.type});});}this.tickImmediate();}getMainFwdBufferInfo(){let e=this.mediaBuffer&&this.altAudio===2?this.mediaBuffer:this.media;return this.getFwdBufferInfo(e,le.MAIN)}get maxBufferLength(){let{levels:e,level:t}=this,i=e?.[t];return i?this.getMaxBufferLength(i.maxBitrate):this.config.maxBufferLength}backtrack(e){this.couldBacktrack=true,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=U.IDLE;}checkFragmentChanged(){let e=this.media,t=null;if(e&&e.readyState>1&&e.seeking===false){let i=e.currentTime;if(Re.isBuffered(e,i)?t=this.getAppendedFrag(i):Re.isBuffered(e,i+.1)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;let n=this.fragPlaying,s=t.level;(!n||t.sn!==n.sn||n.level!==s)&&(this.fragPlaying=t,this.hls.trigger(x.FRAG_CHANGED,{frag:t}),(!n||n.level!==s)&&this.hls.trigger(x.LEVEL_SWITCHED,{level:s}));}}}get nextLevel(){let e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){var e;if(this.fragPlaying)return this.fragPlaying;let t=((e=this.media)==null?void 0:e.currentTime)||this.lastCurrentTime;return te(t)?this.getAppendedFrag(t):null}get currentProgramDateTime(){var e;let t=((e=this.media)==null?void 0:e.currentTime)||this.lastCurrentTime;if(te(t)){let i=this.getLevelDetails(),n=this.currentFrag||(i?Gn(null,i.fragments,t):null);if(n){let s=n.programDateTime;if(s!==null){let a=s+(t-n.start)*1e3;return new Date(a)}}}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}},yp=class extends nr{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 n=this.keyIdToKeyInfo[i].loader;if(n){var t;if(e&&e!==((t=n.context)==null?void 0:t.frag.type))return;n.abort();}}}detach(){for(let e in this.keyIdToKeyInfo){let t=this.keyIdToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyIdToKeyInfo[e];}}destroy(){this.detach();for(let e in this.keyIdToKeyInfo){let t=this.keyIdToKeyInfo[e].loader;t&&t.destroy();}this.keyIdToKeyInfo={};}createKeyLoadError(e,t=D.KEY_LOAD_ERROR,i,n,s){return new Nr({type:de.NETWORK_ERROR,details:t,fatal:false,frag:e,response:s,error:i,networkDetails:n})}loadClear(e,t,i){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(t.length)for(let n=0,s=t.length;n<s;n++){let a=t[n];if(e.cc<=a.cc&&(!gt(e)||!gt(a)||e.sn<a.sn)||!i&&n==s-1)return this.emeController.selectKeySystemFormat(a).then(o=>{if(!this.emeController)return;a.setKeyFormat(o);let c=uc(o);if(c)return this.emeController.getKeySystemAccess([c])})}if(this.config.requireKeySystemAccessOnStart){let n=so(this.config);if(n.length)return this.emeController.getKeySystemAccess(n)}}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,n;t&&e.setKeyFormat(t);let s=e.decryptdata;if(!s){let l=new 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,D.KEY_LOAD_ERROR,l))}let a=s.uri;if(!a)return Promise.reject(this.createKeyLoadError(e,D.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${a}"`)));let o=Xh(s),c=this.keyIdToKeyInfo[o];if((i=c)!=null&&i.decryptdata.key)return s.key=c.decryptdata.key,Promise.resolve({frag:e,keyInfo:c});if(this.emeController&&(n=c)!=null&&n.keyLoadPromise)switch(this.emeController.getKeyStatus(c.decryptdata)){case "usable":case "usable-in-future":return c.keyLoadPromise.then(u=>{let{keyInfo:d}=u;return s.key=d.decryptdata.key,{frag:e,keyInfo:d}})}switch(this.log(`${this.keyIdToKeyInfo[o]?"Rel":"L"}oading${s.keyId?" keyId: "+Bt(s.keyId):""} URI: ${s.uri} from ${e.type} ${e.level}`),c=this.keyIdToKeyInfo[o]={decryptdata:s,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},s.method){case "SAMPLE-AES":case "SAMPLE-AES-CENC":case "SAMPLE-AES-CTR":return s.keyFormat==="identity"?this.loadKeyHTTP(c,e):this.loadKeyEME(c,e);case "AES-128":case "AES-256":case "AES-256-CTR":return this.loadKeyHTTP(c,e);default:return Promise.reject(this.createKeyLoadError(e,D.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${s.method}"`)))}}loadKeyEME(e,t){let i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){var n;if(!e.decryptdata.keyId&&(n=t.initSegment)!=null&&n.data){let a=jR(t.initSegment.data);if(a.length){let o=a[0];o.some(c=>c!==0)?(this.log(`Using keyId found in init segment ${Bt(o)}`),Zs.setKeyIdForUri(e.decryptdata.uri,o)):(o=Zs.addKeyIdForUri(e.decryptdata.uri),this.log(`Generating keyId to patch media ${Bt(o)}`)),e.decryptdata.keyId=o;}}if(!e.decryptdata.keyId&&!gt(t))return Promise.resolve(i);let s=this.emeController.loadKey(i);return (e.keyLoadPromise=s.then(a=>(e.mediaKeySessionContext=a,i))).catch(a=>{throw e.keyLoadPromise=null,"data"in a&&(a.data.frag=t),a})}return Promise.resolve(i)}loadKeyHTTP(e,t){let i=this.config,n=i.loader,s=new n(i);return t.keyLoader=e.loader=s,e.keyLoadPromise=new Promise((a,o)=>{let c={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},l=i.keyLoadPolicy.default,u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(h,f,p,g)=>{let{frag:m,keyInfo:y}=p,v=Xh(y.decryptdata);if(!m.decryptdata||y!==this.keyIdToKeyInfo[v])return o(this.createKeyLoadError(m,D.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),g));y.decryptdata.key=m.decryptdata.key=new Uint8Array(h.data),m.keyLoader=null,y.loader=null,a({frag:m,keyInfo:y});},onError:(h,f,p,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,D.KEY_LOAD_ERROR,new Error(`HTTP Error ${h.code} loading key ${h.text}`),p,Ye({url:c.url,data:void 0},h)));},onTimeout:(h,f,p)=>{this.resetLoader(f),o(this.createKeyLoadError(t,D.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),p));},onAbort:(h,f,p)=>{this.resetLoader(f),o(this.createKeyLoadError(t,D.INTERNAL_ABORTED,new Error("key loading aborted"),p));}};s.load(c,u,d);})}resetLoader(e){let{frag:t,keyInfo:i,url:n}=e,s=i.loader;t.keyLoader===s&&(t.keyLoader=null,i.loader=null);let a=Xh(i.decryptdata)||n;delete this.keyIdToKeyInfo[a],s&&s.destroy();}};function Xh(r){if(r.keyFormat!==Ut.FAIRPLAY){let e=r.keyId;if(e)return Bt(e)}return r.uri}function ib(r){let{type:e}=r;switch(e){case Me.AUDIO_TRACK:return le.AUDIO;case Me.SUBTITLE_TRACK:return le.SUBTITLE;default:return le.MAIN}}function Jh(r,e){let t=r.url;return (t===void 0||t.indexOf("data:")===0)&&(t=e.url),t}var vp=class{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,n=t.loader,s=i||n,a=new s(t);return this.loaders[e.type]=a,a}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e];}destroyInternalLoaders(){for(let e in this.loaders){let t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e);}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders();}onManifestLoading(e,t){let{url:i}=t;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Me.MANIFEST,url:i,deliveryDirectives:null,levelOrTrack:null});}onLevelLoading(e,t){let{id:i,level:n,pathwayId:s,url:a,deliveryDirectives:o,levelInfo:c}=t;this.load({id:i,level:n,pathwayId:s,responseType:"text",type:Me.LEVEL,url:a,deliveryDirectives:o,levelOrTrack:c});}onAudioTrackLoading(e,t){let{id:i,groupId:n,url:s,deliveryDirectives:a,track:o}=t;this.load({id:i,groupId:n,level:null,responseType:"text",type:Me.AUDIO_TRACK,url:s,deliveryDirectives:a,levelOrTrack:o});}onSubtitleTrackLoading(e,t){let{id:i,groupId:n,url:s,deliveryDirectives:a,track:o}=t;this.load({id:i,groupId:n,level:null,responseType:"text",type:Me.SUBTITLE_TRACK,url:s,deliveryDirectives:a,levelOrTrack:o});}onLevelsUpdated(e,t){let i=this.loaders[Me.LEVEL];if(i){let n=i.context;n&&!t.levels.some(s=>s===n.levelOrTrack)&&(i.abort(),delete this.loaders[Me.LEVEL]);}}load(e){var t;let i=this.hls.config,n=this.getInternalLoader(e);if(n){let l=this.hls.logger,u=n.context;if(u&&u.levelOrTrack===e.levelOrTrack&&(u.url===e.url||u.deliveryDirectives&&!e.deliveryDirectives)){u.url===e.url?l.log(`[playlist-loader]: ignore ${e.url} ongoing request`):l.log(`[playlist-loader]: ignore ${e.url} in favor of ${u.url}`);return}l.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),n.abort();}let s;if(e.type===Me.MANIFEST?s=i.manifestLoadPolicy.default:s=Je({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),n=this.createInternalLoader(e),te((t=e.deliveryDirectives)==null?void 0:t.part)){let l;if(e.type===Me.LEVEL&&e.level!==null?l=this.hls.levels[e.level].details:e.type===Me.AUDIO_TRACK&&e.id!==null?l=this.hls.audioTracks[e.id].details:e.type===Me.SUBTITLE_TRACK&&e.id!==null&&(l=this.hls.subtitleTracks[e.id].details),l){let u=l.partTarget,d=l.targetduration;if(u&&d){let h=Math.max(u*3,d*.8)*1e3;s=Je({},s,{maxTimeToFirstByteMs:Math.min(h,s.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(h,s.maxTimeToFirstByteMs)});}}}let a=s.errorRetry||s.timeoutRetry||{},o={loadPolicy:s,timeout:s.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},c={onSuccess:(l,u,d,h)=>{let f=this.getInternalLoader(d);this.resetInternalLoader(d.type);let p=l.data;u.parsing.start=performance.now(),Bn.isMediaPlaylist(p)||d.type!==Me.MANIFEST?this.handleTrackOrLevelPlaylist(l,u,d,h||null,f):this.handleMasterPlaylist(l,u,d,h);},onError:(l,u,d,h)=>{this.handleNetworkError(u,d,false,l,h);},onTimeout:(l,u,d)=>{this.handleNetworkError(u,d,true,void 0,l);}};n.load(e,o,c);}checkAutostartLoad(){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,n){let s=this.hls,a=e.data,o=Jh(e,i),c=Bn.parseMasterPlaylist(a,o);if(c.playlistParsingError){t.parsing.end=performance.now(),this.handleManifestParsingError(e,i,c.playlistParsingError,n,t);return}let{contentSteering:l,levels:u,sessionData:d,sessionKeys:h,startTimeOffset:f,variableList:p}=c;this.variableList=p,u.forEach(v=>{let{unknownCodecs:E}=v;if(E){let{preferManagedMediaSource:b}=this.hls.config,{audioCodec:S,videoCodec:I}=v;for(let T=E.length;T--;){let w=E[T];ho(w,"audio",b)?(v.audioCodec=S=S?`${S},${w}`:w,Ys.audio[S.substring(0,4)]=2,E.splice(T,1)):ho(w,"video",b)&&(v.videoCodec=I=I?`${I},${w}`:w,Ys.video[I.substring(0,4)]=2,E.splice(T,1));}}});let{AUDIO:g=[],SUBTITLES:m,"CLOSED-CAPTIONS":y}=Bn.parseMasterPlaylistMedia(a,o,c);g.length&&!g.some(E=>!E.url)&&u[0].audioCodec&&!u[0].attrs.AUDIO&&(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),g.unshift({type:"main",name:"main",groupId:"main",default:false,autoselect:false,forced:false,id:-1,attrs:new dt({}),bitrate:0,url:""})),s.trigger(x.MANIFEST_LOADED,{levels:u,audioTracks:g,subtitles:m,captions:y,contentSteering:l,url:o,stats:t,networkDetails:n,sessionData:d,sessionKeys:h,startTimeOffset:f,variableList:p});}handleTrackOrLevelPlaylist(e,t,i,n,s){let a=this.hls,{id:o,level:c,type:l}=i,u=Jh(e,i),d=te(c)?c:te(o)?o:0,h=ib(i),f=Bn.parseLevelPlaylist(e.data,u,d,h,0,this.variableList);if(l===Me.MANIFEST){let p={attrs:new dt({}),bitrate:0,details:f,name:"",url:u};f.requestScheduled=t.loading.start+Db(f,0),a.trigger(x.MANIFEST_LOADED,{levels:[p],audioTracks:[],url:u,stats:t,networkDetails:n,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null});}t.parsing.end=performance.now(),i.levelDetails=f,this.handlePlaylistLoaded(f,e,t,i,n,s);}handleManifestParsingError(e,t,i,n,s){this.hls.trigger(x.ERROR,{type:de.NETWORK_ERROR,details:D.MANIFEST_PARSING_ERROR,fatal:t.type===Me.MANIFEST,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:n,stats:s});}handleNetworkError(e,t,i=false,n,s){let a=`A network ${i?"timeout":"error"+(n?" (status "+n.code+")":"")} occurred while loading ${e.type}`;e.type===Me.LEVEL?a+=`: ${e.level} id: ${e.id}`:(e.type===Me.AUDIO_TRACK||e.type===Me.SUBTITLE_TRACK)&&(a+=` id: ${e.id} group-id: "${e.groupId}"`);let o=new Error(a);this.hls.logger.warn(`[playlist-loader]: ${a}`);let c=D.UNKNOWN,l=false,u=this.getInternalLoader(e);switch(e.type){case Me.MANIFEST:c=i?D.MANIFEST_LOAD_TIMEOUT:D.MANIFEST_LOAD_ERROR,l=true;break;case Me.LEVEL:c=i?D.LEVEL_LOAD_TIMEOUT:D.LEVEL_LOAD_ERROR,l=false;break;case Me.AUDIO_TRACK:c=i?D.AUDIO_TRACK_LOAD_TIMEOUT:D.AUDIO_TRACK_LOAD_ERROR,l=false;break;case Me.SUBTITLE_TRACK:c=i?D.SUBTITLE_TRACK_LOAD_TIMEOUT:D.SUBTITLE_LOAD_ERROR,l=false;break}u&&this.resetInternalLoader(e.type);let d={type:de.NETWORK_ERROR,details:c,fatal:l,url:e.url,loader:u,context:e,error:o,networkDetails:t,stats:s};if(n){let h=t?.url||e.url;d.response=Ye({url:h,data:void 0},n);}this.hls.trigger(x.ERROR,d);}handlePlaylistLoaded(e,t,i,n,s,a){let o=this.hls,{type:c,level:l,levelOrTrack:u,id:d,groupId:h,deliveryDirectives:f}=n,p=Jh(t,n),g=ib(n),m=typeof n.level=="number"&&g===le.MAIN?l:void 0,y=e.playlistParsingError;if(y){if(this.hls.logger.warn(`${y} ${e.url}`),!o.config.ignorePlaylistParsingErrors){o.trigger(x.ERROR,{type:de.NETWORK_ERROR,details:D.LEVEL_PARSING_ERROR,fatal:false,url:p,error:y,reason:y.message,response:t,context:n,level:m,parent:g,networkDetails:s,stats:i});return}e.playlistParsingError=null;}if(!e.fragments.length){let v=e.playlistParsingError=new Error("No Segments found in Playlist");o.trigger(x.ERROR,{type:de.NETWORK_ERROR,details:D.LEVEL_EMPTY_ERROR,fatal:false,url:p,error:v,reason:v.message,response:t,context:n,level:m,parent:g,networkDetails:s,stats:i});return}switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),(!a.getCacheAge||isNaN(e.ageHeader))&&(e.ageHeader=0)),c){case Me.MANIFEST:case Me.LEVEL:if(m){if(!u)m=0;else if(u!==o.levels[m]){let v=o.levels.indexOf(u);v>-1&&(m=v);}}o.trigger(x.LEVEL_LOADED,{details:e,levelInfo:u||o.levels[0],level:m||0,id:d||0,stats:i,networkDetails:s,deliveryDirectives:f,withoutMultiVariant:c===Me.MANIFEST});break;case Me.AUDIO_TRACK:o.trigger(x.AUDIO_TRACK_LOADED,{details:e,track:u,id:d||0,groupId:h||"",stats:i,networkDetails:s,deliveryDirectives:f});break;case Me.SUBTITLE_TRACK:o.trigger(x.SUBTITLE_TRACK_LOADED,{details:e,track:u,id:d||0,groupId:h||"",stats:i,networkDetails:s,deliveryDirectives:f});break}}},mr=class r{static get version(){return yo}static isMSESupported(){return wS()}static isSupported(){return RM()}static getMediaSource(){return on()}static get Events(){return x}static get MetadataSchema(){return fr}static get ErrorTypes(){return de}static get ErrorDetails(){return D}static get DefaultConfig(){return r.defaultConfig?r.defaultConfig:SM}static set DefaultConfig(e){r.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 Ap,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=false;let t=this.logger=OR(e.debug||false,"Hls instance",e.assetPlayerId),i=this.config=TM(r.DefaultConfig,e,t);this.userConfig=e,i.progressive&&wM(i,t);let{abrController:n,bufferController:s,capLevelController:a,errorController:o,fpsController:c}=i,l=new o(this),u=this.abrController=new n(this),d=new cf(this),h=i.interstitialsController,f=h?this.interstitialsController=new h(this,r):null,p=this.bufferController=new s(this,d),g=this.capLevelController=new a(this),m=new c(this),y=new vp(this),v=i.contentSteeringController,E=v?new v(this):null,b=this.levelController=new mp(this,E),S=new fp(this),I=new yp(this.config,this.logger),T=this.streamController=new gp(this,d,I),w=this.gapController=new dp(this,d);g.setStreamController(T),m.setStreamController(T);let A=[y,b,T];f&&A.splice(1,0,f),E&&A.splice(1,0,E),this.networkControllers=A;let _=[u,p,w,g,m,S,d];this.audioTrackController=this.createController(i.audioTrackController,A);let k=i.audioStreamController;k&&A.push(this.audioStreamController=new k(this,d,I)),this.subtitleTrackController=this.createController(i.subtitleTrackController,A);let L=i.subtitleStreamController;L&&A.push(this.subtititleStreamController=new L(this,d,I)),this.createController(i.timelineController,_),I.emeController=this.emeController=this.createController(i.emeController,_),this.cmcdController=this.createController(i.cmcdController,_),this.latencyController=this.createController(pp,_),this.coreComponents=_,A.push(l);let C=l.onErrorOut;typeof C=="function"&&this.on(x.ERROR,C,l),this.on(x.MANIFEST_LOADED,y.onManifestLoaded,y);}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,n){this._emitter.off(e,t,i,n);}listeners(e){return this._emitter.listeners(e)}emit(e,t,i){return this._emitter.emit(e,t,i)}trigger(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(i){if(this.logger.error("An internal error happened while handling event "+e+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=true;let n=e===x.ERROR;this.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,fatal:n,event:e,error:i}),this.triggeringException=false;}}return false}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(t=>t.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(t=>t.destroy()),this.coreComponents.length=0;let e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null;}attachMedia(e){if(!e||"media"in e&&!e.media){let s=new Error(`attachMedia failed: invalid argument (${e})`);this.trigger(x.ERROR,{type:de.OTHER_ERROR,details:D.ATTACH_MEDIA_ERROR,fatal:true,error:s});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,n=t?e:{media:i};this._media=i,this.trigger(x.MEDIA_ATTACHING,n);}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,n=this._url=xp.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:true});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${n}`),t&&i&&(i!==n||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=true,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=false;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={[le.MAIN]:this.streamController.inFlightFrag};return this.audioStreamController&&(e[le.AUDIO]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(e[le.SUBTITLE]=this.subtititleStreamController.inFlightFrag),e}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec();}recoverMediaError(){this.logger.log("recoverMediaError");let e=this._media,t=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=KP()),e}get levels(){let e=this.levelController.levels;return e||[]}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 e===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e}set startLevel(e){this.logger.log(`set startLevel:${e}`),e!==-1&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e;}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){let t=!!e;t!==this.config.capLevelToPlayerSize&&(t?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=t);}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}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){fC(e)&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated());}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:e,config:{minAutoBitrate:t}}=this;if(!e)return 0;let i=e.length;for(let n=0;n<i;n++)if(e[n].maxBitrate>=t)return n;return 0}get maxAutoLevel(){let{levels:e,autoLevelCapping:t,maxHdcpLevel:i}=this,n;if(t===-1&&e!=null&&e.length?n=e.length-1:n=t,i)for(let s=n;s--;){let a=e[s].attrs["HDCP-LEVEL"];if(a&&a<=i)return s}return n}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 ((t=this.audioTrackController)==null?void 0:t.setAudioOption(e))||null}setSubtitleOption(e){var t;return ((t=this.subtitleTrackController)==null?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:false}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 !!((e=this.bufferController)!=null&&e.bufferedToEnd)}get interstitialsManager(){var e;return ((e=this.interstitialsController)==null?void 0:e.interstitialsManager)||null}getMediaDecodingInfo(e,t=this.allAudioTracks){let i=xb(t);return yb(e,i,navigator.mediaCapabilities)}};mr.defaultConfig=void 0;function ia(r){let e=r.length;for(;--e>=0;)r[e]=0;}var PM=0,u_=1,MM=2,OM=3,FM=258,sm=29,No=256,Lo=No+1+sm,ea=30,am=19,d_=2*Lo+1,Hn=15,Fp=16,NM=7,om=256,h_=16,f_=17,p_=18,Zp=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Yc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),BM=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),m_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),UM=512,Mi=new Array((Lo+2)*2);ia(Mi);var Ao=new Array(ea*2);ia(Ao);var Ro=new Array(UM);ia(Ro);var Co=new Array(FM-OM+1);ia(Co);var lm=new Array(sm);ia(lm);var Zc=new Array(ea);ia(Zc);function Np(r,e,t,i,n){this.static_tree=r,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=r&&r.length;}var g_,y_,v_;function Bp(r,e){this.dyn_tree=r,this.max_code=0,this.stat_desc=e;}var x_=r=>r<256?Ro[r]:Ro[256+(r>>>7)],Do=(r,e)=>{r.pending_buf[r.pending++]=e&255,r.pending_buf[r.pending++]=e>>>8&255;},sr=(r,e,t)=>{r.bi_valid>Fp-t?(r.bi_buf|=e<<r.bi_valid&65535,Do(r,r.bi_buf),r.bi_buf=e>>Fp-r.bi_valid,r.bi_valid+=t-Fp):(r.bi_buf|=e<<r.bi_valid&65535,r.bi_valid+=t);},ii=(r,e,t)=>{sr(r,t[e*2],t[e*2+1]);},E_=(r,e)=>{let t=0;do t|=r&1,r>>>=1,t<<=1;while(--e>0);return t>>>1},$M=r=>{r.bi_valid===16?(Do(r,r.bi_buf),r.bi_buf=0,r.bi_valid=0):r.bi_valid>=8&&(r.pending_buf[r.pending++]=r.bi_buf&255,r.bi_buf>>=8,r.bi_valid-=8);},zM=(r,e)=>{let t=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,c=e.stat_desc.max_length,l,u,d,h,f,p,g=0;for(h=0;h<=Hn;h++)r.bl_count[h]=0;for(t[r.heap[r.heap_max]*2+1]=0,l=r.heap_max+1;l<d_;l++)u=r.heap[l],h=t[t[u*2+1]*2+1]+1,h>c&&(h=c,g++),t[u*2+1]=h,!(u>i)&&(r.bl_count[h]++,f=0,u>=o&&(f=a[u-o]),p=t[u*2],r.opt_len+=p*(h+f),s&&(r.static_len+=p*(n[u*2+1]+f)));if(g!==0){do{for(h=c-1;r.bl_count[h]===0;)h--;r.bl_count[h]--,r.bl_count[h+1]+=2,r.bl_count[c]--,g-=2;}while(g>0);for(h=c;h!==0;h--)for(u=r.bl_count[h];u!==0;)d=r.heap[--l],!(d>i)&&(t[d*2+1]!==h&&(r.opt_len+=(h-t[d*2+1])*t[d*2],t[d*2+1]=h),u--);}},b_=(r,e,t)=>{let i=new Array(Hn+1),n=0,s,a;for(s=1;s<=Hn;s++)n=n+t[s-1]<<1,i[s]=n;for(a=0;a<=e;a++){let o=r[a*2+1];o!==0&&(r[a*2]=E_(i[o]++,o));}},GM=()=>{let r,e,t,i,n,s=new Array(Hn+1);for(t=0,i=0;i<sm-1;i++)for(lm[i]=t,r=0;r<1<<Zp[i];r++)Co[t++]=i;for(Co[t-1]=i,n=0,i=0;i<16;i++)for(Zc[i]=n,r=0;r<1<<Yc[i];r++)Ro[n++]=i;for(n>>=7;i<ea;i++)for(Zc[i]=n<<7,r=0;r<1<<Yc[i]-7;r++)Ro[256+n++]=i;for(e=0;e<=Hn;e++)s[e]=0;for(r=0;r<=143;)Mi[r*2+1]=8,r++,s[8]++;for(;r<=255;)Mi[r*2+1]=9,r++,s[9]++;for(;r<=279;)Mi[r*2+1]=7,r++,s[7]++;for(;r<=287;)Mi[r*2+1]=8,r++,s[8]++;for(b_(Mi,Lo+1,s),r=0;r<ea;r++)Ao[r*2+1]=5,Ao[r*2]=E_(r,5);g_=new Np(Mi,Zp,No+1,Lo,Hn),y_=new Np(Ao,Yc,0,ea,Hn),v_=new Np(new Array(0),BM,0,am,NM);},S_=r=>{let e;for(e=0;e<Lo;e++)r.dyn_ltree[e*2]=0;for(e=0;e<ea;e++)r.dyn_dtree[e*2]=0;for(e=0;e<am;e++)r.bl_tree[e*2]=0;r.dyn_ltree[om*2]=1,r.opt_len=r.static_len=0,r.sym_next=r.matches=0;},__=r=>{r.bi_valid>8?Do(r,r.bi_buf):r.bi_valid>0&&(r.pending_buf[r.pending++]=r.bi_buf),r.bi_buf=0,r.bi_valid=0;},AS=(r,e,t,i)=>{let n=e*2,s=t*2;return r[n]<r[s]||r[n]===r[s]&&i[e]<=i[t]},Up=(r,e,t)=>{let i=r.heap[t],n=t<<1;for(;n<=r.heap_len&&(n<r.heap_len&&AS(e,r.heap[n+1],r.heap[n],r.depth)&&n++,!AS(e,i,r.heap[n],r.depth));)r.heap[t]=r.heap[n],t=n,n<<=1;r.heap[t]=i;},kS=(r,e,t)=>{let i,n,s=0,a,o;if(r.sym_next!==0)do i=r.pending_buf[r.sym_buf+s++]&255,i+=(r.pending_buf[r.sym_buf+s++]&255)<<8,n=r.pending_buf[r.sym_buf+s++],i===0?ii(r,n,e):(a=Co[n],ii(r,a+No+1,e),o=Zp[a],o!==0&&(n-=lm[a],sr(r,n,o)),i--,a=x_(i),ii(r,a,t),o=Yc[a],o!==0&&(i-=Zc[a],sr(r,i,o)));while(s<r.sym_next);ii(r,om,e);},Xp=(r,e)=>{let t=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,s=e.stat_desc.elems,a,o,c=-1,l;for(r.heap_len=0,r.heap_max=d_,a=0;a<s;a++)t[a*2]!==0?(r.heap[++r.heap_len]=c=a,r.depth[a]=0):t[a*2+1]=0;for(;r.heap_len<2;)l=r.heap[++r.heap_len]=c<2?++c:0,t[l*2]=1,r.depth[l]=0,r.opt_len--,n&&(r.static_len-=i[l*2+1]);for(e.max_code=c,a=r.heap_len>>1;a>=1;a--)Up(r,t,a);l=s;do a=r.heap[1],r.heap[1]=r.heap[r.heap_len--],Up(r,t,1),o=r.heap[1],r.heap[--r.heap_max]=a,r.heap[--r.heap_max]=o,t[l*2]=t[a*2]+t[o*2],r.depth[l]=(r.depth[a]>=r.depth[o]?r.depth[a]:r.depth[o])+1,t[a*2+1]=t[o*2+1]=l,r.heap[1]=l++,Up(r,t,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],zM(r,e),b_(t,c,r.bl_count);},IS=(r,e,t)=>{let i,n=-1,s,a=e[1],o=0,c=7,l=4;for(a===0&&(c=138,l=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)s=a,a=e[(i+1)*2+1],!(++o<c&&s===a)&&(o<l?r.bl_tree[s*2]+=o:s!==0?(s!==n&&r.bl_tree[s*2]++,r.bl_tree[h_*2]++):o<=10?r.bl_tree[f_*2]++:r.bl_tree[p_*2]++,o=0,n=s,a===0?(c=138,l=3):s===a?(c=6,l=3):(c=7,l=4));},LS=(r,e,t)=>{let i,n=-1,s,a=e[1],o=0,c=7,l=4;for(a===0&&(c=138,l=3),i=0;i<=t;i++)if(s=a,a=e[(i+1)*2+1],!(++o<c&&s===a)){if(o<l)do ii(r,s,r.bl_tree);while(--o!==0);else s!==0?(s!==n&&(ii(r,s,r.bl_tree),o--),ii(r,h_,r.bl_tree),sr(r,o-3,2)):o<=10?(ii(r,f_,r.bl_tree),sr(r,o-3,3)):(ii(r,p_,r.bl_tree),sr(r,o-11,7));o=0,n=s,a===0?(c=138,l=3):s===a?(c=6,l=3):(c=7,l=4);}},HM=r=>{let e;for(IS(r,r.dyn_ltree,r.l_desc.max_code),IS(r,r.dyn_dtree,r.d_desc.max_code),Xp(r,r.bl_desc),e=am-1;e>=3&&r.bl_tree[m_[e]*2+1]===0;e--);return r.opt_len+=3*(e+1)+5+5+4,e},KM=(r,e,t,i)=>{let n;for(sr(r,e-257,5),sr(r,t-1,5),sr(r,i-4,4),n=0;n<i;n++)sr(r,r.bl_tree[m_[n]*2+1],3);LS(r,r.dyn_ltree,e-1),LS(r,r.dyn_dtree,t-1);},VM=r=>{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&r.dyn_ltree[t*2]!==0)return 0;if(r.dyn_ltree[18]!==0||r.dyn_ltree[20]!==0||r.dyn_ltree[26]!==0)return 1;for(t=32;t<No;t++)if(r.dyn_ltree[t*2]!==0)return 1;return 0},RS=false,jM=r=>{RS||(GM(),RS=true),r.l_desc=new Bp(r.dyn_ltree,g_),r.d_desc=new Bp(r.dyn_dtree,y_),r.bl_desc=new Bp(r.bl_tree,v_),r.bi_buf=0,r.bi_valid=0,S_(r);},T_=(r,e,t,i)=>{sr(r,(PM<<1)+(i?1:0),3),__(r),Do(r,t),Do(r,~t),t&&r.pending_buf.set(r.window.subarray(e,e+t),r.pending),r.pending+=t;},WM=r=>{sr(r,u_<<1,3),ii(r,om,Mi),$M(r);},qM=(r,e,t,i)=>{let n,s,a=0;r.level>0?(r.strm.data_type===2&&(r.strm.data_type=VM(r)),Xp(r,r.l_desc),Xp(r,r.d_desc),a=HM(r),n=r.opt_len+3+7>>>3,s=r.static_len+3+7>>>3,s<=n&&(n=s)):n=s=t+5,t+4<=n&&e!==-1?T_(r,e,t,i):r.strategy===4||s===n?(sr(r,(u_<<1)+(i?1:0),3),kS(r,Mi,Ao)):(sr(r,(MM<<1)+(i?1:0),3),KM(r,r.l_desc.max_code+1,r.d_desc.max_code+1,a+1),kS(r,r.dyn_ltree,r.dyn_dtree)),S_(r),i&&__(r);},YM=(r,e,t)=>(r.pending_buf[r.sym_buf+r.sym_next++]=e,r.pending_buf[r.sym_buf+r.sym_next++]=e>>8,r.pending_buf[r.sym_buf+r.sym_next++]=t,e===0?r.dyn_ltree[t*2]++:(r.matches++,e--,r.dyn_ltree[(Co[t]+No+1)*2]++,r.dyn_dtree[x_(e)*2]++),r.sym_next===r.sym_end),ZM=jM,XM=T_,JM=qM,QM=YM,eO=WM,tO={_tr_init:ZM,_tr_stored_block:XM,_tr_flush_block:JM,_tr_tally:QM,_tr_align:eO},rO=(r,e,t,i)=>{let n=r&65535|0,s=r>>>16&65535|0,a=0;for(;t!==0;){a=t>2e3?2e3:t,t-=a;do n=n+e[i++]|0,s=s+n|0;while(--a);n%=65521,s%=65521;}return n|s<<16|0},Po=rO,iO=()=>{let r,e=[];for(var t=0;t<256;t++){r=t;for(var i=0;i<8;i++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r;}return e},nO=new Uint32Array(iO()),sO=(r,e,t,i)=>{let n=nO,s=i+t;r^=-1;for(let a=i;a<s;a++)r=r>>>8^n[(r^e[a])&255];return r^-1},Pt=sO,jn={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Yn={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:aO,_tr_stored_block:Jp,_tr_flush_block:oO,_tr_tally:dn,_tr_align:lO}=tO,{Z_NO_FLUSH:hn,Z_PARTIAL_FLUSH:cO,Z_FULL_FLUSH:uO,Z_FINISH:wr,Z_BLOCK:CS,Z_OK:$t,Z_STREAM_END:DS,Z_STREAM_ERROR:ni,Z_DATA_ERROR:dO,Z_BUF_ERROR:$p,Z_DEFAULT_COMPRESSION:hO,Z_FILTERED:fO,Z_HUFFMAN_ONLY:Kc,Z_RLE:pO,Z_FIXED:mO,Z_DEFAULT_STRATEGY:gO,Z_UNKNOWN:yO,Z_DEFLATED:Qc}=Yn,vO=9,xO=15,EO=8,bO=29,SO=256,Qp=SO+1+bO,_O=30,TO=19,wO=2*Qp+1,AO=15,He=3,un=258,si=un+He+1,kO=32,ta=42,cm=57,em=69,tm=73,rm=91,im=103,Kn=113,To=666,er=1,na=2,Wn=3,sa=4,IO=3,Vn=(r,e)=>(r.msg=jn[e],e),PS=r=>r*2-(r>4?9:0),cn=r=>{let e=r.length;for(;--e>=0;)r[e]=0;},LO=r=>{let e,t,i,n=r.w_size;e=r.hash_size,i=e;do t=r.head[--i],r.head[i]=t>=n?t-n:0;while(--e);e=n,i=e;do t=r.prev[--i],r.prev[i]=t>=n?t-n:0;while(--e)},RO=(r,e,t)=>(e<<r.hash_shift^t)&r.hash_mask,fn=RO,gr=r=>{let e=r.state,t=e.pending;t>r.avail_out&&(t=r.avail_out),t!==0&&(r.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),r.next_out),r.next_out+=t,e.pending_out+=t,r.total_out+=t,r.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0));},yr=(r,e)=>{oO(r,r.block_start>=0?r.block_start:-1,r.strstart-r.block_start,e),r.block_start=r.strstart,gr(r.strm);},je=(r,e)=>{r.pending_buf[r.pending++]=e;},_o=(r,e)=>{r.pending_buf[r.pending++]=e>>>8&255,r.pending_buf[r.pending++]=e&255;},nm=(r,e,t,i)=>{let n=r.avail_in;return n>i&&(n=i),n===0?0:(r.avail_in-=n,e.set(r.input.subarray(r.next_in,r.next_in+n),t),r.state.wrap===1?r.adler=Po(r.adler,e,n,t):r.state.wrap===2&&(r.adler=Pt(r.adler,e,n,t)),r.next_in+=n,r.total_in+=n,n)},w_=(r,e)=>{let t=r.max_chain_length,i=r.strstart,n,s,a=r.prev_length,o=r.nice_match,c=r.strstart>r.w_size-si?r.strstart-(r.w_size-si):0,l=r.window,u=r.w_mask,d=r.prev,h=r.strstart+un,f=l[i+a-1],p=l[i+a];r.prev_length>=r.good_match&&(t>>=2),o>r.lookahead&&(o=r.lookahead);do if(n=e,!(l[n+a]!==p||l[n+a-1]!==f||l[n]!==l[i]||l[++n]!==l[i+1])){i+=2,n++;do;while(l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&l[++i]===l[++n]&&i<h);if(s=un-(h-i),i=h-un,s>a){if(r.match_start=e,a=s,s>=o)break;f=l[i+a-1],p=l[i+a];}}while((e=d[e&u])>c&&--t!==0);return a<=r.lookahead?a:r.lookahead},ra=r=>{let e=r.w_size,t,i,n;do{if(i=r.window_size-r.lookahead-r.strstart,r.strstart>=e+(e-si)&&(r.window.set(r.window.subarray(e,e+e-i),0),r.match_start-=e,r.strstart-=e,r.block_start-=e,r.insert>r.strstart&&(r.insert=r.strstart),LO(r),i+=e),r.strm.avail_in===0)break;if(t=nm(r.strm,r.window,r.strstart+r.lookahead,i),r.lookahead+=t,r.lookahead+r.insert>=He)for(n=r.strstart-r.insert,r.ins_h=r.window[n],r.ins_h=fn(r,r.ins_h,r.window[n+1]);r.insert&&(r.ins_h=fn(r,r.ins_h,r.window[n+He-1]),r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,r.insert--,!(r.lookahead+r.insert<He)););}while(r.lookahead<si&&r.strm.avail_in!==0)},A_=(r,e)=>{let t=r.pending_buf_size-5>r.w_size?r.w_size:r.pending_buf_size-5,i,n,s,a=0,o=r.strm.avail_in;do{if(i=65535,s=r.bi_valid+42>>3,r.strm.avail_out<s||(s=r.strm.avail_out-s,n=r.strstart-r.block_start,i>n+r.strm.avail_in&&(i=n+r.strm.avail_in),i>s&&(i=s),i<t&&(i===0&&e!==wr||e===hn||i!==n+r.strm.avail_in)))break;a=e===wr&&i===n+r.strm.avail_in?1:0,Jp(r,0,0,a),r.pending_buf[r.pending-4]=i,r.pending_buf[r.pending-3]=i>>8,r.pending_buf[r.pending-2]=~i,r.pending_buf[r.pending-1]=~i>>8,gr(r.strm),n&&(n>i&&(n=i),r.strm.output.set(r.window.subarray(r.block_start,r.block_start+n),r.strm.next_out),r.strm.next_out+=n,r.strm.avail_out-=n,r.strm.total_out+=n,r.block_start+=n,i-=n),i&&(nm(r.strm,r.strm.output,r.strm.next_out,i),r.strm.next_out+=i,r.strm.avail_out-=i,r.strm.total_out+=i);}while(a===0);return o-=r.strm.avail_in,o&&(o>=r.w_size?(r.matches=2,r.window.set(r.strm.input.subarray(r.strm.next_in-r.w_size,r.strm.next_in),0),r.strstart=r.w_size,r.insert=r.strstart):(r.window_size-r.strstart<=o&&(r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,r.insert>r.strstart&&(r.insert=r.strstart)),r.window.set(r.strm.input.subarray(r.strm.next_in-o,r.strm.next_in),r.strstart),r.strstart+=o,r.insert+=o>r.w_size-r.insert?r.w_size-r.insert:o),r.block_start=r.strstart),r.high_water<r.strstart&&(r.high_water=r.strstart),a?sa:e!==hn&&e!==wr&&r.strm.avail_in===0&&r.strstart===r.block_start?na:(s=r.window_size-r.strstart,r.strm.avail_in>s&&r.block_start>=r.w_size&&(r.block_start-=r.w_size,r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,s+=r.w_size,r.insert>r.strstart&&(r.insert=r.strstart)),s>r.strm.avail_in&&(s=r.strm.avail_in),s&&(nm(r.strm,r.window,r.strstart,s),r.strstart+=s,r.insert+=s>r.w_size-r.insert?r.w_size-r.insert:s),r.high_water<r.strstart&&(r.high_water=r.strstart),s=r.bi_valid+42>>3,s=r.pending_buf_size-s>65535?65535:r.pending_buf_size-s,t=s>r.w_size?r.w_size:s,n=r.strstart-r.block_start,(n>=t||(n||e===wr)&&e!==hn&&r.strm.avail_in===0&&n<=s)&&(i=n>s?s:n,a=e===wr&&r.strm.avail_in===0&&i===n?1:0,Jp(r,r.block_start,i,a),r.block_start+=i,gr(r.strm)),a?Wn:er)},zp=(r,e)=>{let t,i;for(;;){if(r.lookahead<si){if(ra(r),r.lookahead<si&&e===hn)return er;if(r.lookahead===0)break}if(t=0,r.lookahead>=He&&(r.ins_h=fn(r,r.ins_h,r.window[r.strstart+He-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),t!==0&&r.strstart-t<=r.w_size-si&&(r.match_length=w_(r,t)),r.match_length>=He)if(i=dn(r,r.strstart-r.match_start,r.match_length-He),r.lookahead-=r.match_length,r.match_length<=r.max_lazy_match&&r.lookahead>=He){r.match_length--;do r.strstart++,r.ins_h=fn(r,r.ins_h,r.window[r.strstart+He-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart;while(--r.match_length!==0);r.strstart++;}else r.strstart+=r.match_length,r.match_length=0,r.ins_h=r.window[r.strstart],r.ins_h=fn(r,r.ins_h,r.window[r.strstart+1]);else i=dn(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++;if(i&&(yr(r,false),r.strm.avail_out===0))return er}return r.insert=r.strstart<He-1?r.strstart:He-1,e===wr?(yr(r,true),r.strm.avail_out===0?Wn:sa):r.sym_next&&(yr(r,false),r.strm.avail_out===0)?er:na},Js=(r,e)=>{let t,i,n;for(;;){if(r.lookahead<si){if(ra(r),r.lookahead<si&&e===hn)return er;if(r.lookahead===0)break}if(t=0,r.lookahead>=He&&(r.ins_h=fn(r,r.ins_h,r.window[r.strstart+He-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),r.prev_length=r.match_length,r.prev_match=r.match_start,r.match_length=He-1,t!==0&&r.prev_length<r.max_lazy_match&&r.strstart-t<=r.w_size-si&&(r.match_length=w_(r,t),r.match_length<=5&&(r.strategy===fO||r.match_length===He&&r.strstart-r.match_start>4096)&&(r.match_length=He-1)),r.prev_length>=He&&r.match_length<=r.prev_length){n=r.strstart+r.lookahead-He,i=dn(r,r.strstart-1-r.prev_match,r.prev_length-He),r.lookahead-=r.prev_length-1,r.prev_length-=2;do++r.strstart<=n&&(r.ins_h=fn(r,r.ins_h,r.window[r.strstart+He-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart);while(--r.prev_length!==0);if(r.match_available=0,r.match_length=He-1,r.strstart++,i&&(yr(r,false),r.strm.avail_out===0))return er}else if(r.match_available){if(i=dn(r,0,r.window[r.strstart-1]),i&&yr(r,false),r.strstart++,r.lookahead--,r.strm.avail_out===0)return er}else r.match_available=1,r.strstart++,r.lookahead--;}return r.match_available&&(i=dn(r,0,r.window[r.strstart-1]),r.match_available=0),r.insert=r.strstart<He-1?r.strstart:He-1,e===wr?(yr(r,true),r.strm.avail_out===0?Wn:sa):r.sym_next&&(yr(r,false),r.strm.avail_out===0)?er:na},CO=(r,e)=>{let t,i,n,s,a=r.window;for(;;){if(r.lookahead<=un){if(ra(r),r.lookahead<=un&&e===hn)return er;if(r.lookahead===0)break}if(r.match_length=0,r.lookahead>=He&&r.strstart>0&&(n=r.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){s=r.strstart+un;do;while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);r.match_length=un-(s-n),r.match_length>r.lookahead&&(r.match_length=r.lookahead);}if(r.match_length>=He?(t=dn(r,1,r.match_length-He),r.lookahead-=r.match_length,r.strstart+=r.match_length,r.match_length=0):(t=dn(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++),t&&(yr(r,false),r.strm.avail_out===0))return er}return r.insert=0,e===wr?(yr(r,true),r.strm.avail_out===0?Wn:sa):r.sym_next&&(yr(r,false),r.strm.avail_out===0)?er:na},DO=(r,e)=>{let t;for(;;){if(r.lookahead===0&&(ra(r),r.lookahead===0)){if(e===hn)return er;break}if(r.match_length=0,t=dn(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++,t&&(yr(r,false),r.strm.avail_out===0))return er}return r.insert=0,e===wr?(yr(r,true),r.strm.avail_out===0?Wn:sa):r.sym_next&&(yr(r,false),r.strm.avail_out===0)?er:na};function ri(r,e,t,i,n){this.good_length=r,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=n;}var wo=[new ri(0,0,0,0,A_),new ri(4,4,8,4,zp),new ri(4,5,16,8,zp),new ri(4,6,32,32,zp),new ri(4,4,16,16,Js),new ri(8,16,32,32,Js),new ri(8,16,128,128,Js),new ri(8,32,128,256,Js),new ri(32,128,258,1024,Js),new ri(32,258,258,4096,Js)],PO=r=>{r.window_size=2*r.w_size,cn(r.head),r.max_lazy_match=wo[r.level].max_lazy,r.good_match=wo[r.level].good_length,r.nice_match=wo[r.level].nice_length,r.max_chain_length=wo[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=He-1,r.match_available=0,r.ins_h=0;};function MO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Qc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(wO*2),this.dyn_dtree=new Uint16Array((2*_O+1)*2),this.bl_tree=new Uint16Array((2*TO+1)*2),cn(this.dyn_ltree),cn(this.dyn_dtree),cn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(AO+1),this.heap=new Uint16Array(2*Qp+1),cn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Qp+1),cn(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}var Bo=r=>{if(!r)return 1;let e=r.state;return !e||e.strm!==r||e.status!==ta&&e.status!==cm&&e.status!==em&&e.status!==tm&&e.status!==rm&&e.status!==im&&e.status!==Kn&&e.status!==To?1:0},k_=r=>{if(Bo(r))return Vn(r,ni);r.total_in=r.total_out=0,r.data_type=yO;let e=r.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?cm:e.wrap?ta:Kn,r.adler=e.wrap===2?0:1,e.last_flush=-2,aO(e),$t},I_=r=>{let e=k_(r);return e===$t&&PO(r.state),e},OO=(r,e)=>Bo(r)||r.state.wrap!==2?ni:(r.state.gzhead=e,$t),L_=(r,e,t,i,n,s)=>{if(!r)return ni;let a=1;if(e===hO&&(e=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>vO||t!==Qc||i<8||i>15||e<0||e>9||s<0||s>mO||i===8&&a!==1)return Vn(r,ni);i===8&&(i=9);let o=new MO;return r.state=o,o.strm=r,o.status=ta,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+He-1)/He),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=e,o.strategy=s,o.method=t,I_(r)},FO=(r,e)=>L_(r,e,Qc,xO,EO,gO),NO=(r,e)=>{if(Bo(r)||e>CS||e<0)return r?Vn(r,ni):ni;let t=r.state;if(!r.output||r.avail_in!==0&&!r.input||t.status===To&&e!==wr)return Vn(r,r.avail_out===0?$p:ni);let i=t.last_flush;if(t.last_flush=e,t.pending!==0){if(gr(r),r.avail_out===0)return t.last_flush=-1,$t}else if(r.avail_in===0&&PS(e)<=PS(i)&&e!==wr)return Vn(r,$p);if(t.status===To&&r.avail_in!==0)return Vn(r,$p);if(t.status===ta&&t.wrap===0&&(t.status=Kn),t.status===ta){let n=Qc+(t.w_bits-8<<4)<<8,s=-1;if(t.strategy>=Kc||t.level<2?s=0:t.level<6?s=1:t.level===6?s=2:s=3,n|=s<<6,t.strstart!==0&&(n|=kO),n+=31-n%31,_o(t,n),t.strstart!==0&&(_o(t,r.adler>>>16),_o(t,r.adler&65535)),r.adler=1,t.status=Kn,gr(r),t.pending!==0)return t.last_flush=-1,$t}if(t.status===cm){if(r.adler=0,je(t,31),je(t,139),je(t,8),t.gzhead)je(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),je(t,t.gzhead.time&255),je(t,t.gzhead.time>>8&255),je(t,t.gzhead.time>>16&255),je(t,t.gzhead.time>>24&255),je(t,t.level===9?2:t.strategy>=Kc||t.level<2?4:0),je(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(je(t,t.gzhead.extra.length&255),je(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(r.adler=Pt(r.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=em;else if(je(t,0),je(t,0),je(t,0),je(t,0),je(t,0),je(t,t.level===9?2:t.strategy>=Kc||t.level<2?4:0),je(t,IO),t.status=Kn,gr(r),t.pending!==0)return t.last_flush=-1,$t}if(t.status===em){if(t.gzhead.extra){let n=t.pending,s=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+s>t.pending_buf_size;){let o=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n)),t.gzindex+=o,gr(r),t.pending!==0)return t.last_flush=-1,$t;n=0,s-=o;}let a=new Uint8Array(t.gzhead.extra);t.pending_buf.set(a.subarray(t.gzindex,t.gzindex+s),t.pending),t.pending+=s,t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n)),t.gzindex=0;}t.status=tm;}if(t.status===tm){if(t.gzhead.name){let n=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n)),gr(r),t.pending!==0)return t.last_flush=-1,$t;n=0;}t.gzindex<t.gzhead.name.length?s=t.gzhead.name.charCodeAt(t.gzindex++)&255:s=0,je(t,s);}while(s!==0);t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n)),t.gzindex=0;}t.status=rm;}if(t.status===rm){if(t.gzhead.comment){let n=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n)),gr(r),t.pending!==0)return t.last_flush=-1,$t;n=0;}t.gzindex<t.gzhead.comment.length?s=t.gzhead.comment.charCodeAt(t.gzindex++)&255:s=0,je(t,s);}while(s!==0);t.gzhead.hcrc&&t.pending>n&&(r.adler=Pt(r.adler,t.pending_buf,t.pending-n,n));}t.status=im;}if(t.status===im){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(gr(r),t.pending!==0))return t.last_flush=-1,$t;je(t,r.adler&255),je(t,r.adler>>8&255),r.adler=0;}if(t.status=Kn,gr(r),t.pending!==0)return t.last_flush=-1,$t}if(r.avail_in!==0||t.lookahead!==0||e!==hn&&t.status!==To){let n=t.level===0?A_(t,e):t.strategy===Kc?DO(t,e):t.strategy===pO?CO(t,e):wo[t.level].func(t,e);if((n===Wn||n===sa)&&(t.status=To),n===er||n===Wn)return r.avail_out===0&&(t.last_flush=-1),$t;if(n===na&&(e===cO?lO(t):e!==CS&&(Jp(t,0,0,false),e===uO&&(cn(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),gr(r),r.avail_out===0))return t.last_flush=-1,$t}return e!==wr?$t:t.wrap<=0?DS:(t.wrap===2?(je(t,r.adler&255),je(t,r.adler>>8&255),je(t,r.adler>>16&255),je(t,r.adler>>24&255),je(t,r.total_in&255),je(t,r.total_in>>8&255),je(t,r.total_in>>16&255),je(t,r.total_in>>24&255)):(_o(t,r.adler>>>16),_o(t,r.adler&65535)),gr(r),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?$t:DS)},BO=r=>{if(Bo(r))return ni;let e=r.state.status;return r.state=null,e===Kn?Vn(r,dO):$t},UO=(r,e)=>{let t=e.length;if(Bo(r))return ni;let i=r.state,n=i.wrap;if(n===2||n===1&&i.status!==ta||i.lookahead)return ni;if(n===1&&(r.adler=Po(r.adler,e,t,0)),i.wrap=0,t>=i.w_size){n===0&&(cn(i.head),i.strstart=0,i.block_start=0,i.insert=0);let c=new Uint8Array(i.w_size);c.set(e.subarray(t-i.w_size,t),0),e=c,t=i.w_size;}let s=r.avail_in,a=r.next_in,o=r.input;for(r.avail_in=t,r.next_in=0,r.input=e,ra(i);i.lookahead>=He;){let c=i.strstart,l=i.lookahead-(He-1);do i.ins_h=fn(i,i.ins_h,i.window[c+He-1]),i.prev[c&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=c,c++;while(--l);i.strstart=c,i.lookahead=He-1,ra(i);}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=He-1,i.match_available=0,r.next_in=a,r.input=o,r.avail_in=s,i.wrap=n,$t},$O=FO,zO=L_,GO=I_,HO=k_,KO=OO,VO=NO,jO=BO,WO=UO,qO="pako deflate (from Nodeca project)",ko={deflateInit:$O,deflateInit2:zO,deflateReset:GO,deflateResetKeep:HO,deflateSetHeader:KO,deflate:VO,deflateEnd:jO,deflateSetDictionary:WO,deflateInfo:qO},YO=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),ZO=function(r){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let i in t)YO(t,i)&&(r[i]=t[i]);}}return r},XO=r=>{let e=0;for(let i=0,n=r.length;i<n;i++)e+=r[i].length;let t=new Uint8Array(e);for(let i=0,n=0,s=r.length;i<s;i++){let a=r[i];t.set(a,n),n+=a.length;}return t},eu={assign:ZO,flattenChunks:XO},R_=true;try{String.fromCharCode.apply(null,new Uint8Array(1));}catch{R_=false;}var Mo=new Uint8Array(256);for(let r=0;r<256;r++)Mo[r]=r>=252?6:r>=248?5:r>=240?4:r>=224?3:r>=192?2:1;Mo[254]=Mo[254]=1;var JO=r=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(r);let e,t,i,n,s,a=r.length,o=0;for(n=0;n<a;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),o+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(o),s=0,n=0;s<o;n++)t=r.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=r.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),t<128?e[s++]=t:t<2048?(e[s++]=192|t>>>6,e[s++]=128|t&63):t<65536?(e[s++]=224|t>>>12,e[s++]=128|t>>>6&63,e[s++]=128|t&63):(e[s++]=240|t>>>18,e[s++]=128|t>>>12&63,e[s++]=128|t>>>6&63,e[s++]=128|t&63);return e},QO=(r,e)=>{if(e<65534&&r.subarray&&R_)return String.fromCharCode.apply(null,r.length===e?r:r.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(r[i]);return t},eF=(r,e)=>{let t=e||r.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(r.subarray(0,e));let i,n,s=new Array(t*2);for(n=0,i=0;i<t;){let a=r[i++];if(a<128){s[n++]=a;continue}let o=Mo[a];if(o>4){s[n++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i<t;)a=a<<6|r[i++]&63,o--;if(o>1){s[n++]=65533;continue}a<65536?s[n++]=a:(a-=65536,s[n++]=55296|a>>10&1023,s[n++]=56320|a&1023);}return QO(s,n)},tF=(r,e)=>{e=e||r.length,e>r.length&&(e=r.length);let t=e-1;for(;t>=0&&(r[t]&192)===128;)t--;return t<0||t===0?e:t+Mo[r[t]]>e?t:e},Oo={string2buf:JO,buf2string:eF,utf8border:tF};function rF(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;}var C_=rF,D_=Object.prototype.toString,{Z_NO_FLUSH:iF,Z_SYNC_FLUSH:nF,Z_FULL_FLUSH:sF,Z_FINISH:aF,Z_OK:Xc,Z_STREAM_END:oF,Z_DEFAULT_COMPRESSION:lF,Z_DEFAULT_STRATEGY:cF,Z_DEFLATED:uF}=Yn;function Uo(r){this.options=eu.assign({level:lF,method:uF,chunkSize:16384,windowBits:15,memLevel:8,strategy:cF},r||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=false,this.chunks=[],this.strm=new C_,this.strm.avail_out=0;let t=ko.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Xc)throw new Error(jn[t]);if(e.header&&ko.deflateSetHeader(this.strm,e.header),e.dictionary){let i;if(typeof e.dictionary=="string"?i=Oo.string2buf(e.dictionary):D_.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=ko.deflateSetDictionary(this.strm,i),t!==Xc)throw new Error(jn[t]);this._dict_set=true;}}Uo.prototype.push=function(r,e){let t=this.strm,i=this.options.chunkSize,n,s;if(this.ended)return false;for(e===~~e?s=e:s=e===true?aF:iF,typeof r=="string"?t.input=Oo.string2buf(r):D_.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(s===nF||s===sF)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(n=ko.deflate(t,s),n===oF)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),n=ko.deflateEnd(this.strm),this.onEnd(n),this.ended=true,n===Xc;if(t.avail_out===0){this.onData(t.output);continue}if(s>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return true};Uo.prototype.onData=function(r){this.chunks.push(r);};Uo.prototype.onEnd=function(r){r===Xc&&(this.result=eu.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg;};function um(r,e){let t=new Uo(e);if(t.push(r,true),t.err)throw t.msg||jn[t.err];return t.result}function dF(r,e){return e=e||{},e.raw=true,um(r,e)}function hF(r,e){return e=e||{},e.gzip=true,um(r,e)}var fF=Uo,pF=um,mF=dF,gF=hF,vF={Deflate:fF,deflate:pF,deflateRaw:mF,gzip:gF},Vc=16209,xF=16191,EF=function(e,t){let i,n,s,a,o,c,l,u,d,h,f,p,g,m,y,v,E,b,S,I,T,w,A,_,k=e.state;i=e.next_in,A=e.input,n=i+(e.avail_in-5),s=e.next_out,_=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),c=k.dmax,l=k.wsize,u=k.whave,d=k.wnext,h=k.window,f=k.hold,p=k.bits,g=k.lencode,m=k.distcode,y=(1<<k.lenbits)-1,v=(1<<k.distbits)-1;e:do{p<15&&(f+=A[i++]<<p,p+=8,f+=A[i++]<<p,p+=8),E=g[f&y];t:for(;;){if(b=E>>>24,f>>>=b,p-=b,b=E>>>16&255,b===0)_[s++]=E&65535;else if(b&16){S=E&65535,b&=15,b&&(p<b&&(f+=A[i++]<<p,p+=8),S+=f&(1<<b)-1,f>>>=b,p-=b),p<15&&(f+=A[i++]<<p,p+=8,f+=A[i++]<<p,p+=8),E=m[f&v];r:for(;;){if(b=E>>>24,f>>>=b,p-=b,b=E>>>16&255,b&16){if(I=E&65535,b&=15,p<b&&(f+=A[i++]<<p,p+=8,p<b&&(f+=A[i++]<<p,p+=8)),I+=f&(1<<b)-1,I>c){e.msg="invalid distance too far back",k.mode=Vc;break e}if(f>>>=b,p-=b,b=s-a,I>b){if(b=I-b,b>u&&k.sane){e.msg="invalid distance too far back",k.mode=Vc;break e}if(T=0,w=h,d===0){if(T+=l-b,b<S){S-=b;do _[s++]=h[T++];while(--b);T=s-I,w=_;}}else if(d<b){if(T+=l+d-b,b-=d,b<S){S-=b;do _[s++]=h[T++];while(--b);if(T=0,d<S){b=d,S-=b;do _[s++]=h[T++];while(--b);T=s-I,w=_;}}}else if(T+=d-b,b<S){S-=b;do _[s++]=h[T++];while(--b);T=s-I,w=_;}for(;S>2;)_[s++]=w[T++],_[s++]=w[T++],_[s++]=w[T++],S-=3;S&&(_[s++]=w[T++],S>1&&(_[s++]=w[T++]));}else {T=s-I;do _[s++]=_[T++],_[s++]=_[T++],_[s++]=_[T++],S-=3;while(S>2);S&&(_[s++]=_[T++],S>1&&(_[s++]=_[T++]));}}else if((b&64)===0){E=m[(E&65535)+(f&(1<<b)-1)];continue r}else {e.msg="invalid distance code",k.mode=Vc;break e}break}}else if((b&64)===0){E=g[(E&65535)+(f&(1<<b)-1)];continue t}else if(b&32){k.mode=xF;break e}else {e.msg="invalid literal/length code",k.mode=Vc;break e}break}}while(i<n&&s<o);S=p>>3,i-=S,p-=S<<3,f&=(1<<p)-1,e.next_in=i,e.next_out=s,e.avail_in=i<n?5+(n-i):5-(i-n),e.avail_out=s<o?257+(o-s):257-(s-o),k.hold=f,k.bits=p;},Qs=15,MS=852,OS=592,FS=0,Gp=1,NS=2,bF=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),SF=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),_F=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),TF=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),wF=(r,e,t,i,n,s,a,o)=>{let c=o.bits,l=0,u=0,d=0,h=0,f=0,p=0,g=0,m=0,y=0,v=0,E,b,S,I,T,w=null,A,_=new Uint16Array(Qs+1),k=new Uint16Array(Qs+1),L=null,C,N,B;for(l=0;l<=Qs;l++)_[l]=0;for(u=0;u<i;u++)_[e[t+u]]++;for(f=c,h=Qs;h>=1&&_[h]===0;h--);if(f>h&&(f=h),h===0)return n[s++]=1<<24|64<<16|0,n[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d<h&&_[d]===0;d++);for(f<d&&(f=d),m=1,l=1;l<=Qs;l++)if(m<<=1,m-=_[l],m<0)return -1;if(m>0&&(r===FS||h!==1))return -1;for(k[1]=0,l=1;l<Qs;l++)k[l+1]=k[l]+_[l];for(u=0;u<i;u++)e[t+u]!==0&&(a[k[e[t+u]]++]=u);if(r===FS?(w=L=a,A=20):r===Gp?(w=bF,L=SF,A=257):(w=_F,L=TF,A=0),v=0,u=0,l=d,T=s,p=f,g=0,S=-1,y=1<<f,I=y-1,r===Gp&&y>MS||r===NS&&y>OS)return 1;for(;;){C=l-g,a[u]+1<A?(N=0,B=a[u]):a[u]>=A?(N=L[a[u]-A],B=w[a[u]-A]):(N=96,B=0),E=1<<l-g,b=1<<p,d=b;do b-=E,n[T+(v>>g)+b]=C<<24|N<<16|B|0;while(b!==0);for(E=1<<l-1;v&E;)E>>=1;if(E!==0?(v&=E-1,v+=E):v=0,u++,--_[l]===0){if(l===h)break;l=e[t+a[u]];}if(l>f&&(v&I)!==S){for(g===0&&(g=f),T+=d,p=l-g,m=1<<p;p+g<h&&(m-=_[p+g],!(m<=0));)p++,m<<=1;if(y+=1<<p,r===Gp&&y>MS||r===NS&&y>OS)return 1;S=v&I,n[S]=f<<24|p<<16|T-s|0;}}return v!==0&&(n[T+v]=l-g<<24|64<<16|0),o.bits=f,0},Io=wF,AF=0,P_=1,M_=2,{Z_FINISH:BS,Z_BLOCK:kF,Z_TREES:jc,Z_OK:qn,Z_STREAM_END:IF,Z_NEED_DICT:LF,Z_STREAM_ERROR:Ar,Z_DATA_ERROR:O_,Z_MEM_ERROR:F_,Z_BUF_ERROR:RF,Z_DEFLATED:US}=Yn,tu=16180,$S=16181,zS=16182,GS=16183,HS=16184,KS=16185,VS=16186,jS=16187,WS=16188,qS=16189,Jc=16190,Pi=16191,Hp=16192,YS=16193,Kp=16194,ZS=16195,XS=16196,JS=16197,QS=16198,Wc=16199,qc=16200,e_=16201,t_=16202,r_=16203,i_=16204,n_=16205,Vp=16206,s_=16207,a_=16208,ot=16209,N_=16210,B_=16211,CF=852,DF=592,PF=15,MF=PF,o_=r=>(r>>>24&255)+(r>>>8&65280)+((r&65280)<<8)+((r&255)<<24);function OF(){this.strm=null,this.mode=0,this.last=false,this.wrap=0,this.havedict=false,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}var Zn=r=>{if(!r)return 1;let e=r.state;return !e||e.strm!==r||e.mode<tu||e.mode>B_?1:0},U_=r=>{if(Zn(r))return Ar;let e=r.state;return r.total_in=r.total_out=e.total=0,r.msg="",e.wrap&&(r.adler=e.wrap&1),e.mode=tu,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(CF),e.distcode=e.distdyn=new Int32Array(DF),e.sane=1,e.back=-1,qn},$_=r=>{if(Zn(r))return Ar;let e=r.state;return e.wsize=0,e.whave=0,e.wnext=0,U_(r)},z_=(r,e)=>{let t;if(Zn(r))return Ar;let i=r.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Ar:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,$_(r))},G_=(r,e)=>{if(!r)return Ar;let t=new OF;r.state=t,t.strm=r,t.window=null,t.mode=tu;let i=z_(r,e);return i!==qn&&(r.state=null),i},FF=r=>G_(r,MF),l_=true,jp,Wp,NF=r=>{if(l_){jp=new Int32Array(512),Wp=new Int32Array(32);let e=0;for(;e<144;)r.lens[e++]=8;for(;e<256;)r.lens[e++]=9;for(;e<280;)r.lens[e++]=7;for(;e<288;)r.lens[e++]=8;for(Io(P_,r.lens,0,288,jp,0,r.work,{bits:9}),e=0;e<32;)r.lens[e++]=5;Io(M_,r.lens,0,32,Wp,0,r.work,{bits:5}),l_=false;}r.lencode=jp,r.lenbits=9,r.distcode=Wp,r.distbits=5;},H_=(r,e,t,i)=>{let n,s=r.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(e.subarray(t-s.wsize,t),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(t-i,t-i+n),s.wnext),i-=n,i?(s.window.set(e.subarray(t-i,t),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0},BF=(r,e)=>{let t,i,n,s,a,o,c,l,u,d,h,f,p,g,m=0,y,v,E,b,S,I,T,w,A=new Uint8Array(4),_,k,L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Zn(r)||!r.output||!r.input&&r.avail_in!==0)return Ar;t=r.state,t.mode===Pi&&(t.mode=Hp),a=r.next_out,n=r.output,c=r.avail_out,s=r.next_in,i=r.input,o=r.avail_in,l=t.hold,u=t.bits,d=o,h=c,w=qn;e:for(;;)switch(t.mode){case tu:if(t.wrap===0){t.mode=Hp;break}for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.wrap&2&&l===35615){t.wbits===0&&(t.wbits=15),t.check=0,A[0]=l&255,A[1]=l>>>8&255,t.check=Pt(t.check,A,2,0),l=0,u=0,t.mode=$S;break}if(t.head&&(t.head.done=false),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){r.msg="incorrect header check",t.mode=ot;break}if((l&15)!==US){r.msg="unknown compression method",t.mode=ot;break}if(l>>>=4,u-=4,T=(l&15)+8,t.wbits===0&&(t.wbits=T),T>15||T>t.wbits){r.msg="invalid window size",t.mode=ot;break}t.dmax=1<<t.wbits,t.flags=0,r.adler=t.check=1,t.mode=l&512?qS:Pi,l=0,u=0;break;case $S:for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.flags=l,(t.flags&255)!==US){r.msg="unknown compression method",t.mode=ot;break}if(t.flags&57344){r.msg="unknown header flags set",t.mode=ot;break}t.head&&(t.head.text=l>>8&1),t.flags&512&&t.wrap&4&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Pt(t.check,A,2,0)),l=0,u=0,t.mode=zS;case zS:for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.head&&(t.head.time=l),t.flags&512&&t.wrap&4&&(A[0]=l&255,A[1]=l>>>8&255,A[2]=l>>>16&255,A[3]=l>>>24&255,t.check=Pt(t.check,A,4,0)),l=0,u=0,t.mode=GS;case GS:for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.head&&(t.head.xflags=l&255,t.head.os=l>>8),t.flags&512&&t.wrap&4&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Pt(t.check,A,2,0)),l=0,u=0,t.mode=HS;case HS:if(t.flags&1024){for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.length=l,t.head&&(t.head.extra_len=l),t.flags&512&&t.wrap&4&&(A[0]=l&255,A[1]=l>>>8&255,t.check=Pt(t.check,A,2,0)),l=0,u=0;}else t.head&&(t.head.extra=null);t.mode=KS;case KS:if(t.flags&1024&&(f=t.length,f>o&&(f=o),f&&(t.head&&(T=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(s,s+f),T)),t.flags&512&&t.wrap&4&&(t.check=Pt(t.check,i,f,s)),o-=f,s+=f,t.length-=f),t.length))break e;t.length=0,t.mode=VS;case VS:if(t.flags&2048){if(o===0)break e;f=0;do T=i[s+f++],t.head&&T&&t.length<65536&&(t.head.name+=String.fromCharCode(T));while(T&&f<o);if(t.flags&512&&t.wrap&4&&(t.check=Pt(t.check,i,f,s)),o-=f,s+=f,T)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=jS;case jS:if(t.flags&4096){if(o===0)break e;f=0;do T=i[s+f++],t.head&&T&&t.length<65536&&(t.head.comment+=String.fromCharCode(T));while(T&&f<o);if(t.flags&512&&t.wrap&4&&(t.check=Pt(t.check,i,f,s)),o-=f,s+=f,T)break e}else t.head&&(t.head.comment=null);t.mode=WS;case WS:if(t.flags&512){for(;u<16;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.wrap&4&&l!==(t.check&65535)){r.msg="header crc mismatch",t.mode=ot;break}l=0,u=0;}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=true),r.adler=t.check=0,t.mode=Pi;break;case qS:for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}r.adler=t.check=o_(l),l=0,u=0,t.mode=Jc;case Jc:if(t.havedict===0)return r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,LF;r.adler=t.check=1,t.mode=Pi;case Pi:if(e===kF||e===jc)break e;case Hp:if(t.last){l>>>=u&7,u-=u&7,t.mode=Vp;break}for(;u<3;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}switch(t.last=l&1,l>>>=1,u-=1,l&3){case 0:t.mode=YS;break;case 1:if(NF(t),t.mode=Wc,e===jc){l>>>=2,u-=2;break e}break;case 2:t.mode=XS;break;case 3:r.msg="invalid block type",t.mode=ot;}l>>>=2,u-=2;break;case YS:for(l>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if((l&65535)!==(l>>>16^65535)){r.msg="invalid stored block lengths",t.mode=ot;break}if(t.length=l&65535,l=0,u=0,t.mode=Kp,e===jc)break e;case Kp:t.mode=ZS;case ZS:if(f=t.length,f){if(f>o&&(f=o),f>c&&(f=c),f===0)break e;n.set(i.subarray(s,s+f),a),o-=f,s+=f,c-=f,a+=f,t.length-=f;break}t.mode=Pi;break;case XS:for(;u<14;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.nlen=(l&31)+257,l>>>=5,u-=5,t.ndist=(l&31)+1,l>>>=5,u-=5,t.ncode=(l&15)+4,l>>>=4,u-=4,t.nlen>286||t.ndist>30){r.msg="too many length or distance symbols",t.mode=ot;break}t.have=0,t.mode=JS;case JS:for(;t.have<t.ncode;){for(;u<3;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.lens[L[t.have++]]=l&7,l>>>=3,u-=3;}for(;t.have<19;)t.lens[L[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,_={bits:t.lenbits},w=Io(AF,t.lens,0,19,t.lencode,0,t.work,_),t.lenbits=_.bits,w){r.msg="invalid code lengths set",t.mode=ot;break}t.have=0,t.mode=QS;case QS:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[l&(1<<t.lenbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(E<16)l>>>=y,u-=y,t.lens[t.have++]=E;else {if(E===16){for(k=y+2;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(l>>>=y,u-=y,t.have===0){r.msg="invalid bit length repeat",t.mode=ot;break}T=t.lens[t.have-1],f=3+(l&3),l>>>=2,u-=2;}else if(E===17){for(k=y+3;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=y,u-=y,T=0,f=3+(l&7),l>>>=3,u-=3;}else {for(k=y+7;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=y,u-=y,T=0,f=11+(l&127),l>>>=7,u-=7;}if(t.have+f>t.nlen+t.ndist){r.msg="invalid bit length repeat",t.mode=ot;break}for(;f--;)t.lens[t.have++]=T;}}if(t.mode===ot)break;if(t.lens[256]===0){r.msg="invalid code -- missing end-of-block",t.mode=ot;break}if(t.lenbits=9,_={bits:t.lenbits},w=Io(P_,t.lens,0,t.nlen,t.lencode,0,t.work,_),t.lenbits=_.bits,w){r.msg="invalid literal/lengths set",t.mode=ot;break}if(t.distbits=6,t.distcode=t.distdyn,_={bits:t.distbits},w=Io(M_,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,_),t.distbits=_.bits,w){r.msg="invalid distances set",t.mode=ot;break}if(t.mode=Wc,e===jc)break e;case Wc:t.mode=qc;case qc:if(o>=6&&c>=258){r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,EF(r,h),a=r.next_out,n=r.output,c=r.avail_out,s=r.next_in,i=r.input,o=r.avail_in,l=t.hold,u=t.bits,t.mode===Pi&&(t.back=-1);break}for(t.back=0;m=t.lencode[l&(1<<t.lenbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(v&&(v&240)===0){for(b=y,S=v,I=E;m=t.lencode[I+((l&(1<<b+S)-1)>>b)],y=m>>>24,v=m>>>16&255,E=m&65535,!(b+y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=b,u-=b,t.back+=b;}if(l>>>=y,u-=y,t.back+=y,t.length=E,v===0){t.mode=n_;break}if(v&32){t.back=-1,t.mode=Pi;break}if(v&64){r.msg="invalid literal/length code",t.mode=ot;break}t.extra=v&15,t.mode=e_;case e_:if(t.extra){for(k=t.extra;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.length+=l&(1<<t.extra)-1,l>>>=t.extra,u-=t.extra,t.back+=t.extra;}t.was=t.length,t.mode=t_;case t_:for(;m=t.distcode[l&(1<<t.distbits)-1],y=m>>>24,v=m>>>16&255,E=m&65535,!(y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if((v&240)===0){for(b=y,S=v,I=E;m=t.distcode[I+((l&(1<<b+S)-1)>>b)],y=m>>>24,v=m>>>16&255,E=m&65535,!(b+y<=u);){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}l>>>=b,u-=b,t.back+=b;}if(l>>>=y,u-=y,t.back+=y,v&64){r.msg="invalid distance code",t.mode=ot;break}t.offset=E,t.extra=v&15,t.mode=r_;case r_:if(t.extra){for(k=t.extra;u<k;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}t.offset+=l&(1<<t.extra)-1,l>>>=t.extra,u-=t.extra,t.back+=t.extra;}if(t.offset>t.dmax){r.msg="invalid distance too far back",t.mode=ot;break}t.mode=i_;case i_:if(c===0)break e;if(f=h-c,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){r.msg="invalid distance too far back",t.mode=ot;break}f>t.wnext?(f-=t.wnext,p=t.wsize-f):p=t.wnext-f,f>t.length&&(f=t.length),g=t.window;}else g=n,p=a-t.offset,f=t.length;f>c&&(f=c),c-=f,t.length-=f;do n[a++]=g[p++];while(--f);t.length===0&&(t.mode=qc);break;case n_:if(c===0)break e;n[a++]=t.length,c--,t.mode=qc;break;case Vp:if(t.wrap){for(;u<32;){if(o===0)break e;o--,l|=i[s++]<<u,u+=8;}if(h-=c,r.total_out+=h,t.total+=h,t.wrap&4&&h&&(r.adler=t.check=t.flags?Pt(t.check,n,h,a-h):Po(t.check,n,h,a-h)),h=c,t.wrap&4&&(t.flags?l:o_(l))!==t.check){r.msg="incorrect data check",t.mode=ot;break}l=0,u=0;}t.mode=s_;case s_:if(t.wrap&&t.flags){for(;u<32;){if(o===0)break e;o--,l+=i[s++]<<u,u+=8;}if(t.wrap&4&&l!==(t.total&4294967295)){r.msg="incorrect length check",t.mode=ot;break}l=0,u=0;}t.mode=a_;case a_:w=IF;break e;case ot:w=O_;break e;case N_:return F_;case B_:default:return Ar}return r.next_out=a,r.avail_out=c,r.next_in=s,r.avail_in=o,t.hold=l,t.bits=u,(t.wsize||h!==r.avail_out&&t.mode<ot&&(t.mode<Vp||e!==BS))&&H_(r,r.output,r.next_out,h-r.avail_out),d-=r.avail_in,h-=r.avail_out,r.total_in+=d,r.total_out+=h,t.total+=h,t.wrap&4&&h&&(r.adler=t.check=t.flags?Pt(t.check,n,h,r.next_out-h):Po(t.check,n,h,r.next_out-h)),r.data_type=t.bits+(t.last?64:0)+(t.mode===Pi?128:0)+(t.mode===Wc||t.mode===Kp?256:0),(d===0&&h===0||e===BS)&&w===qn&&(w=RF),w},UF=r=>{if(Zn(r))return Ar;let e=r.state;return e.window&&(e.window=null),r.state=null,qn},$F=(r,e)=>{if(Zn(r))return Ar;let t=r.state;return (t.wrap&2)===0?Ar:(t.head=e,e.done=false,qn)},zF=(r,e)=>{let t=e.length,i,n,s;return Zn(r)||(i=r.state,i.wrap!==0&&i.mode!==Jc)?Ar:i.mode===Jc&&(n=1,n=Po(n,e,t,0),n!==i.check)?O_:(s=H_(r,e,t,t),s?(i.mode=N_,F_):(i.havedict=1,qn))},GF=$_,HF=z_,KF=U_,VF=FF,jF=G_,WF=BF,qF=UF,YF=$F,ZF=zF,XF="pako inflate (from Nodeca project)",Oi={inflateReset:GF,inflateReset2:HF,inflateResetKeep:KF,inflateInit:VF,inflateInit2:jF,inflate:WF,inflateEnd:qF,inflateGetHeader:YF,inflateSetDictionary:ZF,inflateInfo:XF};function JF(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=false;}var QF=JF,K_=Object.prototype.toString,{Z_NO_FLUSH:eN,Z_FINISH:tN,Z_OK:Fo,Z_STREAM_END:qp,Z_NEED_DICT:Yp,Z_STREAM_ERROR:rN,Z_DATA_ERROR:c_,Z_MEM_ERROR:iN}=Yn;function $o(r){this.options=eu.assign({chunkSize:1024*64,windowBits:15,to:""},r||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(r&&r.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=false,this.chunks=[],this.strm=new C_,this.strm.avail_out=0;let t=Oi.inflateInit2(this.strm,e.windowBits);if(t!==Fo)throw new Error(jn[t]);if(this.header=new QF,Oi.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Oo.string2buf(e.dictionary):K_.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Oi.inflateSetDictionary(this.strm,e.dictionary),t!==Fo)))throw new Error(jn[t])}$o.prototype.push=function(r,e){let t=this.strm,i=this.options.chunkSize,n=this.options.dictionary,s,a,o;if(this.ended)return false;for(e===~~e?a=e:a=e===true?tN:eN,K_.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),s=Oi.inflate(t,a),s===Yp&&n&&(s=Oi.inflateSetDictionary(t,n),s===Fo?s=Oi.inflate(t,a):s===c_&&(s=Yp));t.avail_in>0&&s===qp&&t.state.wrap>0&&r[t.next_in]!==0;)Oi.inflateReset(t),s=Oi.inflate(t,a);switch(s){case rN:case c_:case Yp:case iN:return this.onEnd(s),this.ended=true,false}if(o=t.avail_out,t.next_out&&(t.avail_out===0||s===qp))if(this.options.to==="string"){let c=Oo.utf8border(t.output,t.next_out),l=t.next_out-c,u=Oo.buf2string(t.output,c);t.next_out=l,t.avail_out=i-l,l&&t.output.set(t.output.subarray(c,c+l),0),this.onData(u);}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(s===Fo&&o===0)){if(s===qp)return s=Oi.inflateEnd(this.strm),this.onEnd(s),this.ended=true,true;if(t.avail_in===0)break}}return true};$o.prototype.onData=function(r){this.chunks.push(r);};$o.prototype.onEnd=function(r){r===Fo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=eu.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg;};function dm(r,e){let t=new $o(e);if(t.push(r),t.err)throw t.msg||jn[t.err];return t.result}function nN(r,e){return e=e||{},e.raw=true,dm(r,e)}var sN=$o,aN=dm,oN=nN,lN=dm,uN={Inflate:sN,inflate:aN,inflateRaw:oN,ungzip:lN},{Deflate:dN,deflate:hN,deflateRaw:fN,gzip:pN}=vF,{Inflate:mN,inflate:gN,inflateRaw:yN,ungzip:vN}=uN,xN=dN,EN=hN,bN=fN,SN=pN,_N=mN,TN=gN,wN=yN,AN=vN,kN=Yn,V_={Deflate:xN,deflate:EN,deflateRaw:bN,gzip:SN,Inflate:_N,inflate:TN,inflateRaw:wN,ungzip:AN,constants:kN};var hm=null,CN={minLevel:"debug",console:true,consoleFormat:"pretty",persistent:true,enablePerformance:true};function DN(){return hm||(hm=Bl("@ct-courses/player",CN)),hm}function jo(r){return DN().child(r)}var PN=()=>jo("hooks"),zr=PN();function Ni(r,e={}){return;}var j_=33;function Em(r){let{recording:e,autoPlay:t=false,defaultSpeed:i=1,defaultVolume:n=1,onPlay:s,onPause:a,onProgress:o,onComplete:c,onError:l}=r,[u,d]=react.useState(ur()),[h,f]=react.useState(0),[p,g]=react.useState(0),[m,y]=react.useState(false),[v,E]=react.useState(i),[b,S]=react.useState(false),[I,T]=react.useState(n),[w,A]=react.useState(false),[_,k]=react.useState(false),L=react.useRef(null),C=react.useRef(null),N=react.useRef(0),B=react.useRef(null),F=react.useRef(0),G=react.useRef(0),M=react.useRef(i),H=react.useRef(0),Z=react.useRef(false),R=react.useRef(false);react.useEffect(()=>{G.current=h;},[h]),react.useEffect(()=>{M.current=v;},[v]),react.useEffect(()=>{H.current=p;},[p]),react.useEffect(()=>{Z.current=m;},[m]),react.useEffect(()=>{R.current=_;},[_]);let $=react.useRef(o),Q=react.useRef(c),j=react.useRef(l);react.useEffect(()=>{$.current=o;},[o]),react.useEffect(()=>{Q.current=c;},[c]),react.useEffect(()=>{j.current=l;},[l]),react.useEffect(()=>{if(!e){L.current=null,S(false),d(ur()),f(0),g(0);return}try{zr.info("Initializing playback engine",{eventCount:e.events.length,duration:e.manifest.duration,hasMedia:!!e.manifest.media?.audio});let z=new Rs(e.events);L.current=z;let ce=e.manifest.duration*1e3;g(ce),H.current=ce,S(!0),z.reset(),d(z.getCurrentState()),zr.debug("Engine initialized successfully",{duration:ce,autoPlay:t}),t&&y(!0);}catch(z){zr.error("Failed to initialize playback engine",z,{recordingId:e.manifest?.id}),j.current?.(z);}return ()=>{C.current&&cancelAnimationFrame(C.current);}},[e,t]),react.useEffect(()=>{if(!m||!L.current){C.current&&(cancelAnimationFrame(C.current),C.current=null);return}if(_)return;let z=B.current,ce=z&&z.src&&!z.error;if(N.current=performance.now(),F.current=performance.now(),ce){zr.debug("Starting audio-master playback mode",{audioSrc:z.src?.slice(0,50),readyState:z.readyState,duration:z.duration});let lt=()=>{if(!Z.current||!L.current||R.current)return;let ze=B.current;if(!ze||ze.error){C.current&&(cancelAnimationFrame(C.current),C.current=null),zr.warn("Audio element unavailable, falling back to RAF mode",{hasAudio:!!ze,error:ze?.error?.message}),We();return}let Y=ze.currentTime*1e3,X=H.current,ve=performance.now();if(X>0&&Y>=X-50){reactDom.flushSync(()=>{y(false),f(X);}),L.current.seek(X),d(L.current.getCurrentState()),Q.current?.();return}L.current.advanceTo(Y),ve-F.current>=j_&&(F.current=ve,G.current=Y,reactDom.flushSync(()=>{d(L.current.getCurrentState()),f(Y);}),$.current?.(Y,X)),C.current=requestAnimationFrame(lt);},K=()=>{zr.debug("Attempting to start audio playback",{readyState:z.readyState,paused:z.paused,currentTime:z.currentTime}),z.play().then(()=>{zr.info("Audio playback started successfully"),C.current=requestAnimationFrame(lt);}).catch(ze=>{zr.error("Audio play failed, falling back to RAF mode",ze,{readyState:z.readyState,networkState:z.networkState}),We();});};if(z.readyState>=2)K();else {zr.debug("Audio not ready, waiting for canplay event",{readyState:z.readyState});let ze=()=>{z.removeEventListener("canplay",ze),z.removeEventListener("error",pt),K();},pt=()=>{z.removeEventListener("canplay",ze),z.removeEventListener("error",pt),zr.error("Audio loading failed",z.error,{readyState:z.readyState,networkState:z.networkState}),We();};return z.addEventListener("canplay",ze),z.addEventListener("error",pt),()=>{z.removeEventListener("canplay",ze),z.removeEventListener("error",pt);}}}else We();function We(){C.current&&(cancelAnimationFrame(C.current),C.current=null),N.current=performance.now();let lt=K=>{if(!Z.current||!L.current||R.current)return;let ze=(K-N.current)*M.current;N.current=K;let pt=G.current,Y=Math.min(pt+ze,H.current);if(L.current.advanceTo(Y),G.current=Y,H.current>0&&Y>=H.current){reactDom.flushSync(()=>{d(L.current.getCurrentState()),f(H.current),y(false);}),Q.current?.();return}K-F.current>=j_&&(F.current=K,reactDom.flushSync(()=>{d(L.current.getCurrentState()),f(Y);}),$.current?.(Y,H.current)),C.current=requestAnimationFrame(lt);};C.current=requestAnimationFrame(lt);}return ()=>{C.current&&(cancelAnimationFrame(C.current),C.current=null);}},[m,_]),react.useEffect(()=>{let z=B.current;if(!(!z||!z.src)){if(z.error){console.warn("[usePlayback] Audio element has error, skipping sync");return}try{m&&!_?z.play().catch(ce=>{z===B.current&&console.warn("[usePlayback] Audio play failed:",ce.message);}):z.pause(),z.playbackRate=v,z.volume=I,z.muted=w;}catch(ce){console.warn("[usePlayback] Audio sync error:",ce);}}},[m,v,I,w,_]);let se=react.useCallback(()=>{if(Ni("PLAY called",{currentTime:G.current,currentFile:L.current?.getCurrentState().currentFile}),!b){return}if(_&&(k(false),L.current)){L.current.seek(G.current);let z=L.current.getCurrentState();Ni("PLAY: State restored from engine",{currentFile:z.currentFile,fileSystemKeys:Object.keys(z.fileSystem||{})}),d(z);}y(true),s?.();},[b,_,s]),q=react.useCallback(()=>{Ni("PAUSE called",{currentTime:G.current,currentFile:L.current?.getCurrentState().currentFile}),y(false),a?.();},[a]),_e=react.useCallback(z=>{if(!L.current)return;let ce=Math.max(0,Math.min(z,p));Ni("SEEK called",{from:G.current,isPlaying:Z.current}),L.current.seek(ce);let We=L.current.getCurrentState();Ni("SEEK: New state after seek",{currentFile:We.currentFile,fileSystemKeys:Object.keys(We.fileSystem||{})}),d(We),f(ce),G.current=ce;let lt=B.current;lt&&(lt.currentTime=ce/1e3),o?.(ce,p);},[p,o]),ke=react.useCallback(z=>{let ce=Math.max(.25,Math.min(4,z));E(ce),M.current=ce;let We=B.current;We&&(We.playbackRate=ce);},[]),De=react.useCallback(z=>{let ce=Math.max(0,Math.min(1,z));T(ce);let We=B.current;We&&(We.volume=ce);},[]),Pe=react.useCallback(z=>{A(z);let ce=B.current;ce&&(ce.muted=z);},[]),re=react.useCallback(z=>{let ce=B.current;if(!z&&ce)try{ce.pause();}catch{}if(B.current=z,z&&z.src&&!z.error)try{z.playbackRate=M.current;}catch(We){console.warn("[usePlayback] Failed to initialize audio element:",We);}},[]),Oe=react.useCallback(()=>{m||k(true);},[m]),Ne=react.useCallback(()=>{_&&L.current&&(L.current.seek(G.current),d(L.current.getCurrentState())),k(false);},[_]),Ue=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,code:z})));},[m]),xt=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,language:z})));},[m]),ie=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,terminalLines:z})));},[m]),me=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,terminalLines:[...ce.terminalLines,...z]})));},[m]),fe=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,excalidrawScene:z})));},[m]),ee=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,documentPage:z})));},[m]),he=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,documentZoom:z})));},[m]),ye=react.useCallback(z=>{m||(k(true),d(ce=>({...ce,documentScroll:z})));},[m]),$e=react.useMemo(()=>({play:se,pause:q,seek:_e,setSpeed:ke,setVolume:De,setMuted:Pe,setAudioElement:re,enterInteractiveMode:Oe,exitInteractiveMode:Ne,setInteractiveCode:Ue,setInteractiveLanguage:xt,setInteractiveTerminalLines:ie,addInteractiveTerminalLines:me,setInteractiveExcalidrawScene:fe,setInteractiveDocumentPage:ee,setInteractiveDocumentZoom:he,setInteractiveDocumentScroll:ye}),[se,q,_e,ke,De,Pe,re,Oe,Ne,Ue,xt,ie,me,fe,ee,he,ye]);return {state:u,currentTime:h,duration:p,isPlaying:m,speed:v,isLoaded:b,volume:I,muted:w,isInteracting:_,controls:$e}}function vm(r){let e=Math.floor(r/1e3),t=Math.floor(e/60),i=e%60;return `${t}:${i.toString().padStart(2,"0")}`}var YN=react.memo(function({currentTime:e,duration:t,markers:i=[],onSeek:n,onSeekStart:s,onSeekEnd:a}){let o=react.useRef(null),[c,l]=react.useState(false),[u,d]=react.useState(null),[h,f]=react.useState(0),p=t>0?e/t*100:0,g=react.useCallback(E=>{if(!o.current)return 0;let b=o.current.getBoundingClientRect();return Math.max(0,Math.min(E-b.left,b.width))/b.width*t},[t]),m=react.useCallback(E=>{if(!o.current)return;let b=o.current.getBoundingClientRect(),S=E.clientX-b.left,I=Math.max(0,Math.min(1,S/b.width));d(I*t),f(I*100),c&&n(g(E.clientX));},[c,t,g,n]),y=react.useCallback(E=>{E.preventDefault(),l(true),s?.();let b=g(E.clientX);n(b);},[g,n,s]),v=react.useCallback(()=>{d(null);},[]);return react.useEffect(()=>{if(!c)return;let E=S=>{if(o.current){let I=g(S.clientX);n(I);}},b=()=>{l(false),a?.();};return window.addEventListener("mousemove",E),window.addEventListener("mouseup",b),()=>{window.removeEventListener("mousemove",E),window.removeEventListener("mouseup",b);}},[c,g,n,a]),jsxRuntime.jsxs("div",{className:"flex-1 relative group",children:[u!==null&&jsxRuntime.jsx("div",{className:"absolute bottom-full mb-2 px-2 py-1 bg-black text-white text-xs rounded pointer-events-none whitespace-nowrap",style:{left:`${h}%`,transform:"translateX(-50%)"},children:vm(u)}),jsxRuntime.jsxs("div",{ref:o,onMouseMove:m,onMouseDown:y,onMouseLeave:v,className:"relative h-1 bg-[#333] rounded-full cursor-pointer group-hover:h-1.5 transition-all",children:[jsxRuntime.jsx("div",{className:"absolute top-0 left-0 h-full bg-white rounded-full pointer-events-none",style:{width:`${p}%`}}),jsxRuntime.jsx("div",{className:"absolute top-1/2 -translate-y-1/2 w-3 h-3 bg-white rounded-full shadow-lg opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none",style:{left:`${p}%`,transform:"translate(-50%, -50%)"}}),i.map((E,b)=>{let S=t>0?E.time/t*100:0;return jsxRuntime.jsx("div",{className:"absolute top-0 w-0.5 h-full bg-yellow-400/60 pointer-events-none",style:{left:`${S}%`},title:E.label},b)})]})]})}),ZN=react.memo(function({volume:e,muted:t,onVolumeChange:i,onMuteToggle:n}){let[s,a]=react.useState(false),o=react.useRef(null),c=()=>{o.current&&clearTimeout(o.current),a(true);},l=()=>{o.current=setTimeout(()=>a(false),300);},u=t||e===0?lucideReact.VolumeX:e<.5?lucideReact.Volume1:lucideReact.Volume2;return jsxRuntime.jsxs("div",{className:"relative flex items-center gap-1",onMouseEnter:c,onMouseLeave:l,children:[jsxRuntime.jsx("button",{onClick:n,className:"p-1.5 hover:bg-[#1a1a1a] rounded-md text-[#888] hover:text-white transition-colors",title:t?"Unmute (M)":"Mute (M)",children:jsxRuntime.jsx(u,{className:"w-4 h-4"})}),jsxRuntime.jsx("div",{className:`flex items-center overflow-hidden transition-all duration-200 ${s?"w-20 opacity-100":"w-0 opacity-0"}`,children:jsxRuntime.jsx("input",{type:"range",min:"0",max:"1",step:"0.01",value:t?0:e,onChange:d=>{let h=parseFloat(d.target.value);i(h);},className:`w-full h-1 bg-[#333] rounded-full appearance-none cursor-pointer\r
163
+ [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 \r
164
+ [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:bg-white \r
165
+ [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:cursor-pointer\r
166
+ [&::-webkit-slider-thumb]:shadow-sm`,style:{background:`linear-gradient(to right, #fff ${(t?0:e)*100}%, #333 ${(t?0:e)*100}%)`}})})]})}),XN=react.memo(function({speed:e,onSpeedChange:t}){let[i,n]=react.useState(false);return jsxRuntime.jsxs("div",{className:"relative",children:[jsxRuntime.jsxs("button",{onClick:()=>n(!i),className:"flex items-center gap-1 px-2 py-1 hover:bg-[#1a1a1a] rounded-md text-[#888] hover:text-white transition-colors text-xs font-medium",title:"Playback speed (< / >)",children:[e,"x",jsxRuntime.jsx(lucideReact.ChevronDown,{className:"w-3 h-3"})]}),i&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>n(false)}),jsxRuntime.jsx("div",{className:"absolute bottom-full mb-2 right-0 bg-[#1a1a1a] border border-[#333] rounded-lg py-1 shadow-xl z-50 min-w-[80px]",children:[.25,.5,.75,1,1.25,1.5,1.75,2].map(a=>jsxRuntime.jsx("button",{onClick:()=>{t(a),n(false);},className:`w-full px-3 py-1.5 text-left text-xs transition-colors ${e===a?"bg-white/10 text-white":"text-[#888] hover:text-white hover:bg-[#222]"}`,children:a===1?"Normal":`${a}x`},a))})]})]})});function Sm({isPlaying:r,currentTime:e,duration:t,volume:i,muted:n,playbackSpeed:s,markers:a=[],isFullscreen:o=false,onPlayPause:c,onSeek:l,onSeekStart:u,onSeekEnd:d,onSkip:h,onRestart:f,onVolumeChange:p,onMuteToggle:g,onSpeedChange:m,onFullscreenToggle:y,showMarkers:v=true,compact:E=false}){let b=react.useRef(null),S=react.useRef(false);react.useEffect(()=>{let w=A=>{if(["INPUT","TEXTAREA","SELECT"].includes(A.target.tagName)||A.target.isContentEditable)return;let _=A.key.toLowerCase(),k=A.shiftKey,L=A.ctrlKey||A.metaKey;switch(_){case " ":case "k":A.preventDefault(),c();break;case "j":A.preventDefault(),h(-10);break;case "l":A.preventDefault(),h(10);break;case "arrowleft":A.preventDefault(),h(k?-1:-5);break;case "arrowright":A.preventDefault(),h(k?1:5);break;case "arrowup":A.preventDefault(),p(Math.min(1,i+.1));break;case "arrowdown":A.preventDefault(),p(Math.max(0,i-.1));break;case "m":A.preventDefault(),g();break;case "f":A.preventDefault(),y?.();break;case "home":A.preventDefault(),f();break;case "end":A.preventDefault(),l(t);break;case "<":case ",":{A.preventDefault();let C=[.25,.5,.75,1,1.25,1.5,1.75,2],N=C.indexOf(s);N>0&&C[N-1]!==void 0&&m(C[N-1]);break}case ">":case ".":{A.preventDefault();let C=[.25,.5,.75,1,1.25,1.5,1.75,2],N=C.indexOf(s);N<C.length-1&&C[N+1]!==void 0&&m(C[N+1]);break}default:if(/^[0-9]$/.test(_)&&!L){A.preventDefault();let C=parseInt(_)*10;l(C/100*t);}}};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[c,h,l,f,p,g,m,y,i,s,t]);let I=react.useCallback(()=>{S.current=r,u?.();},[r,u]),T=react.useCallback(()=>{d?.();},[d]);return jsxRuntime.jsxs("div",{ref:b,className:`flex items-center gap-2 px-4 py-3 bg-gradient-to-t from-black/80 via-black/60 to-transparent ${E?"h-12":"h-14"}`,children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-0.5",children:[jsxRuntime.jsx("button",{onClick:f,className:"p-2 hover:bg-white/10 rounded-full text-[#888] hover:text-white transition-colors",title:"Restart (Home)",children:jsxRuntime.jsx(lucideReact.RotateCcw,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:()=>h(-10),className:"p-2 hover:bg-white/10 rounded-full text-[#888] hover:text-white transition-colors",title:"Rewind 10s (J)",children:jsxRuntime.jsx(lucideReact.SkipBack,{className:"w-4 h-4"})}),jsxRuntime.jsx("button",{onClick:c,className:"w-10 h-10 flex items-center justify-center bg-white hover:bg-white/90 rounded-full text-black transition-all hover:scale-105 active:scale-95 mx-1",title:r?"Pause (K/Space)":"Play (K/Space)",children:r?jsxRuntime.jsx(lucideReact.Pause,{className:"w-5 h-5"}):jsxRuntime.jsx(lucideReact.Play,{className:"w-5 h-5 ml-0.5"})}),jsxRuntime.jsx("button",{onClick:()=>h(10),className:"p-2 hover:bg-white/10 rounded-full text-[#888] hover:text-white transition-colors",title:"Forward 10s (L)",children:jsxRuntime.jsx(lucideReact.SkipForward,{className:"w-4 h-4"})})]}),jsxRuntime.jsx("span",{className:"font-mono text-xs text-white/80 w-12 text-right tabular-nums",children:vm(e)}),jsxRuntime.jsx(YN,{currentTime:e,duration:t,markers:v?a:[],onSeek:l,onSeekStart:I,onSeekEnd:T}),jsxRuntime.jsx("span",{className:"font-mono text-xs text-white/50 w-12 tabular-nums",children:vm(t)}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(ZN,{volume:i,muted:n,onVolumeChange:p,onMuteToggle:g}),jsxRuntime.jsx(XN,{speed:s,onSpeedChange:m}),y&&jsxRuntime.jsx("button",{onClick:y,className:"p-2 hover:bg-white/10 rounded-full text-[#888] hover:text-white transition-colors",title:o?"Exit fullscreen (F)":"Fullscreen (F)",children:o?jsxRuntime.jsx(lucideReact.Minimize,{className:"w-4 h-4"}):jsxRuntime.jsx(lucideReact.Maximize,{className:"w-4 h-4"})})]})]})}function oa(r,e={}){return;}function t2(r){let e=new Set,t={...r},i=()=>{let a={name:"root",path:"/",type:"directory",children:[]},o=new Map;o.set("/",a);let c=Object.keys(t).sort();for(let l of c){let u=l.split("/").filter(f=>f.length>0),d="",h=a;for(let f=0;f<u.length;f++){let p=u[f];if(d+="/"+p,f===u.length-1){let m=p.includes(".")?p.split(".").pop()??"":"";h.children=h.children||[],h.children.push({name:p,path:d,type:"file",language:m==="ts"?"typescript":m==="js"?"javascript":m==="py"?"python":m});}else {if(!o.has(d)){let m={name:p,path:d,type:"directory",children:[]};h.children=h.children||[],h.children.push(m),o.set(d,m);}h=o.get(d);}}}return a},n=()=>{e.forEach(a=>a());};return {getFileTree:i,subscribe:a=>(e.add(a),()=>e.delete(a)),writeFile:(a,o)=>{t[a]=o;},readFile:a=>{let o=a.startsWith("/")?a:"/"+a;return t[o]??t[a]??""},clear:()=>{t={};},getFiles:()=>({...t}),notifyChanged:()=>{n();}}}function r2(){return jsxRuntime.jsxs("div",{role:"status","aria-live":"polite","aria-label":"Loading course",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",height:"100%"},children:[jsxRuntime.jsx("div",{style:{width:"48px",height:"48px",border:"4px solid #333",borderTopColor:"#007acc",borderRadius:"50%",animation:"ct-spin 1s linear infinite"}}),jsxRuntime.jsx("span",{style:{color:"#888",fontSize:"14px"},children:"Loading course..."}),jsxRuntime.jsx("style",{children:`
167
+ @keyframes ct-spin {
168
+ to { transform: rotate(360deg); }
169
+ }
170
+ `})]})}function i2({error:r}){return jsxRuntime.jsxs("div",{role:"alert","aria-live":"assertive",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",height:"100%",padding:"24px"},children:[jsxRuntime.jsx("span",{style:{fontSize:"48px"},"aria-hidden":"true",children:"\u26A0\uFE0F"}),jsxRuntime.jsx("span",{style:{color:"#ff4444",fontSize:"16px",fontWeight:500},children:"Failed to load course"}),jsxRuntime.jsx("span",{style:{color:"#888",fontSize:"14px",textAlign:"center"},children:r.message})]})}function n2(r){let e=[];return r.stdout&&r.stdout.split(`
171
+ `).forEach(t=>{e.push({type:"output",text:t});}),r.stderr&&r.stderr.split(`
172
+ `).forEach(t=>{t.trim()&&e.push({type:"error",text:t});}),!r.stdout&&!r.stderr&&(r.error?e.push({type:"error",text:r.error}):r.success||e.push({type:"error",text:"Execution failed with no output"})),e}function s2(r){return r.terminalLines&&r.terminalLines.length>0?r.terminalLines.map(t=>{let i="output",n=t.type;return (n==="input"||n==="output"||n==="system"||n==="error"||n==="success"||n==="warning"||n==="info"||n==="header"||n==="divider"||n==="execution_header"||n==="execution_result")&&(i=n),{type:i,text:t.text}}):[]}function a2(r){return r?.manifest.markers?r.manifest.markers.map(e=>({id:e.id,time:e.time,label:e.label,type:e.type==="chapter"?"chapter":"highlight"})):[]}function o2(r){return ["code","whiteboard","document"]}var l2=react.forwardRef(function(e,t){let{recording:i,recordingUrl:n,recordingId:s,apiUrl:a,authToken:o,goJudgeUrl:c,goJudgeApiKey:l,theme:u="dark",aspectRatio:d="16:9",showToolbar:h=true,showTimeline:f=true,showChapters:p=true,showToolSidebar:g=true,autoPlay:m=false,defaultSpeed:y=1,allowFullscreen:v=true,defaultTool:E="code",onReady:b,onPlay:S,onPause:I,onProgress:T,onComplete:w,onError:A,onInteractionStart:_,onInteractionEnd:k,onToolChange:L}=e,[C,N]=react.useState(i??null),[B,F]=react.useState(!i),[G,M]=react.useState(null),[H,Z]=react.useState(E),[R,$]=react.useState(false),[Q,j]=react.useState(false),[se,q]=react.useState(1),[_e,ke]=react.useState(false),[De,Pe]=react.useState(false),re=react.useRef(null),Oe=react.useRef(null),Ne=u==="dark"||u==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches,Ue=react.useRef(null),xt=react.useRef(null),ie=react.useRef(null),me=react.useRef(null),fe=react.useRef(null);react.useMemo(()=>{c&&(ie.current=hh({baseUrl:c,apiKey:l}),fe.current||(fe.current=hx()),me.current=fh({vfs:fe.current,goJudge:ie.current,initialCwd:"/"}));},[c,l]);let ee=react.useCallback(async(oe,W)=>{if(!ie.current||!Ue.current)return [{type:"error",text:"Code execution not available"}];try{let J=Ue.current.getFiles(),xe=oe.startsWith("/")?oe:"/"+oe,P=J[xe]||J[oe];if(!P)return [{type:"error",text:`File not found: ${oe}`}];let ne=await ie.current.executeCodeMultiFile(P,W,"",J,oe.substring(oe.lastIndexOf("/")+1));return n2(ne)}catch(J){return [{type:"error",text:`Execution failed: ${J instanceof Error?J.message:"Unknown error"}`}]}},[]),he=react.useCallback(async oe=>{if(!me.current)return [{type:"error",text:"Terminal not available"}];try{if(Ue.current&&fe.current){let J=Ue.current.getFiles();for(let[xe,P]of Object.entries(J))try{fe.current.writeFile(xe,P);}catch{}}return (await me.current.executeCommand(oe)).output.map(J=>({type:J.type,text:J.text,time:J.time,memory:J.memory,status:J.status}))}catch(W){return [{type:"error",text:`Command failed: ${W instanceof Error?W.message:"Unknown error"}`}]}},[]),[ye,$e]=react.useState(null),z=react.useRef(null),ce=react.useRef(null);react.useEffect(()=>{let oe=C?.mediaBlob;if(oe===ce.current)return;if(z.current&&(console.log("[CoursePlayer] Revoking old blob URL:",z.current),URL.revokeObjectURL(z.current),z.current=null),ce.current=oe,!oe){$e(null);return}let W=URL.createObjectURL(oe);z.current=W,console.log("[CoursePlayer] Created new blob URL:",W,"for blob size:",oe.size),$e(W);},[C?.mediaBlob]),react.useEffect(()=>()=>{z.current&&(console.log("[CoursePlayer] Unmount - revoking blob URL:",z.current),URL.revokeObjectURL(z.current));},[]),react.useEffect(()=>{if(i){N(i),F(false);return}n?We(n):s&&a&&lt(s,a,o);},[i,n,s,a,o]);async function We(oe){try{F(!0),M(null);let W=await fetch(oe);if(!W.ok)throw new Error(`Failed to fetch: ${W.status}`);let J=await W.blob(),xe=await zl(J,{loadAllEvents:!0});N(xe),b?.();}catch(W){let J=W instanceof Error?W:new Error(String(W));M(J),A?.(J);}finally{F(false);}}async function lt(oe,W,J){try{F(!0),M(null);let xe={};J&&(xe.Authorization=`Bearer ${J}`);let P=await fetch(`${W}/recordings/${oe}/download`,{headers:xe});if(!P.ok)throw new Error(`Failed to fetch: ${P.status}`);let ne=await P.blob(),ue=await zl(ne,{loadAllEvents:!0});N(ue),b?.();}catch(xe){let P=xe instanceof Error?xe:new Error(String(xe));M(P),A?.(P);}finally{F(false);}}let K=Em({recording:C,autoPlay:m,defaultSpeed:y,onPlay:S,onPause:I,onProgress:T,onComplete:w});react.useEffect(()=>{let oe=Oe.current;return oe&&ye&&K.controls.setAudioElement(oe),()=>{ye||K.controls.setAudioElement(null);}},[ye]),react.useEffect(()=>{K.controls.setVolume(se);},[se]),react.useEffect(()=>{K.controls.setMuted(_e);},[_e]),react.useEffect(()=>{if(!De&&K.state.activeTool){let oe=K.state.activeTool;oe!==H&&["code","whiteboard","document"].includes(oe)&&Z(oe);}},[K.state.activeTool,De,H]),react.useEffect(()=>{K.isPlaying&&Pe(false);},[K.isPlaying]);let ze=react.useMemo(()=>o2(),[C]),pt=react.useMemo(()=>a2(C),[C]),Y=react.useMemo(()=>s2(K.state),[K.state]);react.useEffect(()=>{K.state.fileCreation;},[K.state.fileCreation]);let{fileSystemToUse:X,currentFileToUse:ve}=react.useMemo(()=>{let oe=K.state.fileSystem||{},W=K.state.currentFile,J=Object.keys(oe);if(oa("FILE_SYSTEM_CALCULATION",{stateCurrentFile:K.state.currentFile,stateCode:K.state.code?.substring(0,50)+"...",isPlaying:K.isPlaying}),J.length===0&&K.state.code&&!W){let xe={python:"py",typescript:"ts",javascript:"js",java:"java",cpp:"cpp",c:"c",csharp:"cs",go:"go",rust:"rs",ruby:"rb",php:"php",swift:"swift",kotlin:"kt",scala:"scala",html:"html",css:"css",json:"json",yaml:"yaml",markdown:"md",sql:"sql",shell:"sh",bash:"sh"},P=(K.state.language||"javascript").toLowerCase(),ue=`main.${xe[P]||"txt"}`;oe={[ue]:K.state.code},W=ue;}else W&&J.length===0&&K.state.code?(oe={[W]:K.state.code},oa("CREATED_FILE_FROM_CURRENT",{})):!W&&J.length>0&&(W=J[0],oa("DEFAULTED_TO_FIRST_FILE",{}));return {fileSystemToUse:oe,currentFileToUse:W}},[K.state.fileSystem,K.state.currentFile,K.state.code,K.state.language]),be=react.useMemo(()=>(Ue.current||(console.log("[CoursePlayer] Creating initial VFS"),Ue.current=t2({})),Ue.current),[]),ge=react.useRef("{}");react.useEffect(()=>{let oe=JSON.stringify(X);if(Ue.current&&oe!==ge.current){ge.current=oe;let W=Object.keys(X);console.log("[CoursePlayer] Syncing VFS with",W.length,"files:",W),Ue.current.clear(),Object.entries(X).forEach(([J,xe])=>{Ue.current.writeFile(J,xe);}),Ue.current.notifyChanged();}xt.current=ve??null;},[X,ve]);let Te=react.useCallback(oe=>{K.isPlaying||(Pe(true),Z(oe),L?.(oe));},[K.isPlaying,L]),rt=react.useCallback(()=>{re.current&&(document.fullscreenElement?document.exitFullscreen().then(()=>$(false)).catch(()=>{}):re.current.requestFullscreen().then(()=>$(true)).catch(()=>{}));},[]);react.useImperativeHandle(t,()=>({play:()=>K.controls.play(),pause:()=>K.controls.pause(),seek:oe=>K.controls.seek(oe),setSpeed:oe=>K.controls.setSpeed(oe),getCurrentTime:()=>K.currentTime,getDuration:()=>K.duration,getState:()=>K.state,enterInteractiveMode:()=>{K.controls.pause(),j(true),_?.();},exitInteractiveMode:()=>{j(false),k?.(K.state.code);},setActiveTool:oe=>Z(oe)}));let pe=d==="auto"?{height:"100%",flex:1}:{paddingBottom:d==="16:9"?"56.25%":"75%"};return B?jsxRuntime.jsx("div",{className:"ct-player ct-player--loading",style:{position:"relative",width:"100%",backgroundColor:Ne?"#1a1a1a":"#f5f5f5",...pe},children:jsxRuntime.jsx("div",{style:{position:"absolute",inset:0},children:jsxRuntime.jsx(r2,{})})}):G?jsxRuntime.jsx("div",{className:"ct-player ct-player--error",style:{position:"relative",width:"100%",backgroundColor:Ne?"#1a1a1a":"#f5f5f5",...pe},children:jsxRuntime.jsx("div",{style:{position:"absolute",inset:0},children:jsxRuntime.jsx(i2,{error:G})})}):jsxRuntime.jsx("div",{ref:re,className:`ct-player ct-player--${Ne?"dark":"light"}`,style:{position:"relative",width:"100%",height:"100%",backgroundColor:Ne?"#0a0a0a":"#f5f5f5",borderRadius:"12px",overflow:"hidden"},children:jsxRuntime.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[jsxRuntime.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden",position:"relative",minHeight:0},children:[g&&jsxRuntime.jsx(Ms,{activeTool:H,tools:ze,onToolChange:oe=>Te(oe)}),jsxRuntime.jsxs("div",{style:{flex:1,overflow:"hidden",position:"relative",borderRadius:"8px"},children:[(()=>{switch(H){case "whiteboard":let oe=K.state.excalidrawScene?{elements:K.state.excalidrawScene.elements||[],appState:K.state.excalidrawScene.appState,files:K.state.excalidrawScene.files}:void 0;return jsxRuntime.jsx(Os,{mode:Q?"interactive":"playback",scene:oe,isPlaying:K.isPlaying});case "document":let W=K.state.documentData,J=W?{data:W.data||"",name:W.name||"document.pdf",type:W.type||"application/pdf"}:void 0;return jsxRuntime.jsx(Fs,{mode:Q?"interactive":"playback",documentData:J,currentPage:K.state.documentPage||1,zoom:K.state.documentZoom||1,scrollPosition:K.state.documentScroll||{x:0,y:0},isPlaying:K.isPlaying,showTabBar:true,showToolbar:true,allowUpload:Q,allowMultiple:true,onPageChange:K.controls.setInteractiveDocumentPage,onZoomChange:K.controls.setInteractiveDocumentZoom,onScrollChange:K.controls.setInteractiveDocumentScroll,onInteract:()=>{Q||(j(true),_?.());}});default:return oa("RENDERING_IDE_PANEL",{isPlaying:K.isPlaying,codeLength:K.state.code?.length,language:K.state.language}),jsxRuntime.jsx(Ns,{mode:Q?"interactive":"playback",code:K.state.code,language:K.state.language||"javascript",currentFile:ve||void 0,fileSystem:be,cursorPosition:void 0,readOnly:!Q,defaultShowExplorer:true,defaultShowTerminal:true,isPlaying:K.isPlaying,terminalLines:Y,terminalInput:K.state.terminalInput,fileCreationState:K.state.fileCreation||void 0,onExecute:c?ee:void 0,onTerminalExecute:c?he:void 0})}})(),K.state.cursorPosition?.visible&&jsxRuntime.jsx("div",{style:{position:"absolute",left:`${K.state.cursorPosition.x}%`,top:`${K.state.cursorPosition.y}%`,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:50},children:jsxRuntime.jsx("div",{style:{width:12,height:12,borderRadius:"50%",backgroundColor:"rgba(255, 255, 255, 0.8)",border:"1px solid rgba(255, 255, 255, 0.4)",boxShadow:"0 0 8px rgba(255, 255, 255, 0.3)",transition:"transform 100ms"}})}),ye&&jsxRuntime.jsx("audio",{ref:Oe,src:ye,preload:"auto",style:{display:"none"}})]})]}),h&&jsxRuntime.jsx(Sm,{currentTime:K.currentTime,duration:K.duration,isPlaying:K.isPlaying,onPlayPause:()=>K.isPlaying?K.controls.pause():K.controls.play(),onSeek:K.controls.seek,onSeekStart:()=>{},onSeekEnd:()=>{},onSkip:oe=>K.controls.seek(K.currentTime+oe*1e3),onRestart:()=>K.controls.seek(0),playbackSpeed:K.speed,onSpeedChange:K.controls.setSpeed,volume:se,onVolumeChange:q,muted:_e,onMuteToggle:()=>ke(!_e),isFullscreen:R,onFullscreenToggle:v?rt:void 0,markers:p?pt.map(oe=>({time:oe.time,label:oe.label,type:oe.type})):[]})]})})}),$r=jo("hlsLoader"),di={MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHED:"hlsLevelSwitched",ERROR:"hlsError",BUFFER_CREATED:"hlsBufferCreated",FRAG_LOADED:"hlsFragLoaded"};function _m(){return mr.isSupported()}function Tm(){let r=document.createElement("audio");return !!(r.canPlayType("application/vnd.apple.mpegurl")||r.canPlayType("audio/mpegurl"))}function rT(){return _m()||Tm()}var h2={maxBufferLength:30,maxMaxBufferLength:60,startLevel:-1,autoStartLoad:true};function iT(r,e,t={}){let i={...h2,...t},n=new Map,s=(a,...o)=>{let c=n.get(a);c&&c.forEach(l=>l(...o));};if(_m()){$r.debug("Creating HLS.js player",{url:e});let a=new mr({maxBufferLength:i.maxBufferLength,maxMaxBufferLength:i.maxMaxBufferLength,startLevel:i.startLevel,autoStartLoad:i.autoStartLoad,maxBufferHole:.5,highBufferWatchdogPeriod:3});return a.on(mr.Events.MANIFEST_PARSED,(o,c)=>{$r.debug("HLS manifest parsed",{levels:c.levels.length}),s(di.MANIFEST_PARSED,c);}),a.on(mr.Events.LEVEL_SWITCHED,(o,c)=>{$r.debug("HLS level switched",{level:c.level}),s(di.LEVEL_SWITCHED,c);}),a.on(mr.Events.ERROR,(o,c)=>{if(c.fatal)switch($r.error("HLS fatal error",{type:c.type,details:c.details}),c.type){case mr.ErrorTypes.NETWORK_ERROR:$r.warn("Attempting to recover from network error"),a.startLoad();break;case mr.ErrorTypes.MEDIA_ERROR:$r.warn("Attempting to recover from media error"),a.recoverMediaError();break;default:s(di.ERROR,c);}else $r.warn("HLS non-fatal error",{type:c.type,details:c.details});}),a.on(mr.Events.BUFFER_CREATED,(o,c)=>{s(di.BUFFER_CREATED,c);}),a.on(mr.Events.FRAG_LOADED,(o,c)=>{s(di.FRAG_LOADED,c);}),a.loadSource(e),a.attachMedia(r),{hls:a,audioElement:r,isNative:false,destroy:()=>{$r.debug("Destroying HLS.js player"),a.destroy(),n.clear();},getQualityLevels:()=>a.levels.map((o,c)=>({index:c,bitrate:o.bitrate,codecs:o.audioCodec||o.codecSet||"unknown"})),setQualityLevel:o=>{a.currentLevel=o;},getCurrentQualityLevel:()=>a.currentLevel,on:(o,c)=>{n.has(o)||n.set(o,new Set),n.get(o).add(c);},off:(o,c)=>{n.get(o)?.delete(c);}}}if(Tm()){$r.debug("Using native HLS support",{url:e}),r.src=e;let a=()=>{s(di.MANIFEST_PARSED,{levels:[{bitrate:0,codecSet:"native"}]});},o=()=>{let c=r.error;s(di.ERROR,{fatal:true,type:"mediaError",details:c?.message||"Unknown audio error"});};return r.addEventListener("loadedmetadata",a),r.addEventListener("error",o),{hls:null,audioElement:r,isNative:true,destroy:()=>{$r.debug("Destroying native HLS player"),r.removeEventListener("loadedmetadata",a),r.removeEventListener("error",o),r.src="",r.load(),n.clear();},getQualityLevels:()=>[{index:0,bitrate:0,codecs:"native"}],setQualityLevel:()=>{$r.debug("Quality level switching not available with native HLS");},getCurrentQualityLevel:()=>-1,on:(c,l)=>{n.has(c)||n.set(c,new Set),n.get(c).add(l);},off:(c,l)=>{n.get(c)?.delete(l);}}}throw new Error("HLS playback is not supported in this browser")}function nT(r){r&&r.destroy();}var ca=jo("chunkCache"),f2={maxSize:5,protectionRadius:2},p2=class{constructor(r={}){this.cache=new Map,this.config={...f2,...r},this.currentChunkId=0,this.cacheHits=0,this.cacheMisses=0;}get(r){let e=this.cache.get(r);if(e)return e.lastAccessTime=Date.now(),this.cacheHits++,ca.debug("Cache hit",{chunkId:r}),e.chunk;this.cacheMisses++,ca.debug("Cache miss",{chunkId:r});}has(r){return this.cache.has(r)}set(r,e,t){this.cache.size>=this.config.maxSize&&!this.cache.has(r)&&this.evict(),this.cache.set(r,{chunk:e,lastAccessTime:Date.now(),sizeBytes:t}),ca.debug("Chunk cached",{chunkId:r,cacheSize:this.cache.size});}setCurrentChunk(r){this.currentChunkId=r;}delete(r){return this.cache.delete(r)}clear(){this.cache.clear(),this.cacheHits=0,this.cacheMisses=0,ca.debug("Cache cleared");}getStats(){let r=this.cacheHits+this.cacheMisses,e=0,t=[];for(let[i,n]of this.cache.entries())e+=n.sizeBytes,t.push(i);return {size:this.cache.size,maxSize:this.config.maxSize,hitRate:r>0?this.cacheHits/r:0,totalBytes:e,cachedChunkIds:t.sort((i,n)=>i-n)}}getCachedChunkIds(){return [...this.cache.keys()].sort((r,e)=>r-e)}evict(){let{protectionRadius:r}=this.config,e=[];for(let[i,n]of this.cache.entries()){let s=Math.abs(i-this.currentChunkId);s>r&&e.push({id:i,distance:s,lastAccess:n.lastAccessTime});}if(e.length===0){let i=-1,n=1/0;for(let[s,a]of this.cache.entries())a.lastAccessTime<n&&(n=a.lastAccessTime,i=s);i!==-1&&(this.cache.delete(i),ca.debug("Evicted (all protected, LRU)",{chunkId:i}));return}e.sort((i,n)=>n.distance!==i.distance?n.distance-i.distance:i.lastAccess-n.lastAccess);let t=e[0];t&&(this.cache.delete(t.id),ca.debug("Evicted",{chunkId:t.id,distance:t.distance}));}};function Ho(r,e){for(let t=0;t<r.chunks.length;t++){let i=r.chunks[t];if(i&&e>=i.startTimeMs&&e<=i.endTimeMs)return t}if(r.chunks.length>0){let t=r.chunks[0],i=r.chunks[r.chunks.length-1];if(t&&e<t.startTimeMs)return 0;if(i&&e>i.endTimeMs)return r.chunks.length-1}return -1}function q_(r,e){return r.chunks[e]||null}function m2(r,e){return `${r.replace(/\/index\.json$/,"")}/${e}`}var pn=jo("chunkFetcher"),g2={maxRetries:3,retryDelayMs:1e3,timeoutMs:3e4};async function fm(r,e){let t=performance.now();try{let i=new AbortController,n=setTimeout(()=>i.abort(),e),s=await fetch(r,{signal:i.signal,headers:{Accept:"application/json"}});if(clearTimeout(n),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);let a=await s.text();return {data:JSON.parse(a),error:null,durationMs:performance.now()-t,bytesLoaded:a.length}}catch(i){let n=i instanceof Error?i.message:String(i);return pn.error("Fetch JSON failed",{url:r,error:n}),{data:null,error:n,durationMs:performance.now()-t,bytesLoaded:0}}}async function y2(r,e){let t=performance.now();try{let i=new AbortController,n=setTimeout(()=>i.abort(),e),s=await fetch(r,{signal:i.signal,headers:{Accept:"application/gzip, application/json"}});if(clearTimeout(n),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);let a=await s.arrayBuffer(),o=new Uint8Array(a),c=V_.ungzip(o,{to:"string"});return {data:JSON.parse(c),error:null,durationMs:performance.now()-t,bytesLoaded:a.byteLength}}catch(i){let n=i instanceof Error?i.message:String(i);return pn.error("Fetch gzip failed",{url:r,error:n}),{data:null,error:n,durationMs:performance.now()-t,bytesLoaded:0}}}async function au(r,e){let t=null,i=0;for(;i<e.maxRetries;){if(t=await r(),t.data!==null)return t;if(i++,i<e.maxRetries){let n=e.retryDelayMs*Math.pow(2,i-1);pn.warn("Retrying fetch",{attempt:i,delay:n}),await new Promise(s=>setTimeout(s,n));}}return t||{data:null,error:"Max retries exceeded",durationMs:0,bytesLoaded:0}}var v2=class{constructor(r={}){this.config={...g2,...r},this.chunkIndex=null,this.eventsBaseUrl="",this.compressed=true,this.pendingFetches=new Map,this.metrics={totalFetches:0,totalBytes:0,totalTimeMs:0,errors:0};}async fetchManifest(r){return pn.debug("Fetching streaming manifest",{url:r}),au(()=>fm(r,this.config.timeoutMs),this.config)}async fetchChunkIndex(r){pn.debug("Fetching chunk index",{url:r});let e=await au(()=>fm(r,this.config.timeoutMs),this.config);return e.data&&(this.chunkIndex=e.data,this.eventsBaseUrl=r.replace(/\/index\.json$/,"")),e}initialize(r,e){this.chunkIndex=e,this.eventsBaseUrl=r.events.indexUrl.replace(/\/index\.json$/,""),this.compressed=r.events.compressed,pn.debug("Fetcher initialized",{totalChunks:e.totalChunks,compressed:this.compressed});}async fetchChunk(r){let e=this.pendingFetches.get(r);if(e)return pn.debug("Returning pending fetch",{chunkId:r}),e;if(!this.chunkIndex)return {chunkId:r,data:null,error:"Chunk index not loaded",durationMs:0,bytesLoaded:0};let t=q_(this.chunkIndex,r);if(!t)return {chunkId:r,data:null,error:`Chunk ${r} not found in index`,durationMs:0,bytesLoaded:0};let i=m2(this.eventsBaseUrl+"/index.json",t.file);pn.debug("Fetching chunk",{chunkId:r,url:i,compressed:this.compressed});let n=(async()=>{try{let s=this.compressed?await au(()=>y2(i,this.config.timeoutMs),this.config):await au(()=>fm(i,this.config.timeoutMs),this.config);return this.metrics.totalFetches++,this.metrics.totalBytes+=s.bytesLoaded,this.metrics.totalTimeMs+=s.durationMs,s.error&&this.metrics.errors++,{chunkId:r,data:s.data,error:s.error,durationMs:s.durationMs,bytesLoaded:s.bytesLoaded}}finally{this.pendingFetches.delete(r);}})();return this.pendingFetches.set(r,n),n}async prefetchChunks(r){let e=r.map(t=>this.fetchChunk(t));await Promise.all(e);}getMetrics(){return {totalFetches:this.metrics.totalFetches,totalBytes:this.metrics.totalBytes,avgFetchTimeMs:this.metrics.totalFetches>0?this.metrics.totalTimeMs/this.metrics.totalFetches:0,errorRate:this.metrics.totalFetches>0?this.metrics.errors/this.metrics.totalFetches:0}}getChunkInfo(r){return this.chunkIndex?q_(this.chunkIndex,r):null}getTotalChunks(){return this.chunkIndex?.totalChunks??0}reset(){this.chunkIndex=null,this.eventsBaseUrl="",this.pendingFetches.clear(),this.metrics={totalFetches:0,totalBytes:0,totalTimeMs:0,errors:0};}},Ir=jo("remoteStreamingPlayback"),x2={status:"empty",cachedChunks:0,totalChunks:0,currentChunk:0,bufferedTimeMs:0},E2={avgChunkFetchTimeMs:0,cacheHitRate:0,bufferUnderrunCount:0,avgSeekTimeMs:0,totalBytesLoaded:0,peakChunksCached:0};function pm(){return {activeStroke:null}}function b2(r,e,t,i){let n=ur(),s=false,a=0,o=Ho(e,r);if(o<0)return Ir.warn("computeStateAtTime: No chunk found for time",{timeMs:r}),n;for(let c=0;c<=o;c++){let l=t.get(c);if(!l){Ir.warn("computeStateAtTime: Chunk not in cache",{chunkId:c,targetChunkId:o});continue}if(r===0&&c===0){let u={},d=[];for(let h of l.events)u[h.type]=(u[h.type]||0)+1,h.type==="terminal"&&d.push({time:h.time,command:h.data?.command,output:typeof h.data?.output=="string"?h.data?.output?.substring(0,50):h.data?.output?.text?.substring(0,50),lines:h.data?.lines?.length});console.log("[RemoteStreaming] Chunk 0 event types:",u,"total:",l.events.length),console.log("[RemoteStreaming] Terminal events:",d);}if(l.snapshotAtStart&&!s&&c<=o){let u=e.chunks[c];u&&u.startTimeMs<=r&&(n={...l.snapshotAtStart},s=true,i.activeStroke=null);}for(let u of l.events){if(u.time>r)break;n=S2(n,u,i),a++;}}return r===0&&Ir.info("Initial state computed",{timeMs:r,appliedEventCount:a,hasCode:!!n.code,codeLength:n.code?.length??0,fileCount:Object.keys(n.fileSystem||{}).length,currentFile:n.currentFile,activeTool:n.activeTool}),n}function S2(r,e,t){return Pn(r,e,t)}function sT(r){let{manifestUrl:e,autoPlay:t=false,defaultSpeed:i=1,maxCacheSize:n=5,onReady:s,onPlay:a,onPause:o,onProgress:c,onComplete:l,onBuffering:u,onError:d}=r,[h,f]=react.useState(ur()),[p,g]=react.useState(0),[m,y]=react.useState(0),[v,E]=react.useState(false),[b,S]=react.useState(i),[I,T]=react.useState(false),[w,A]=react.useState(false),[_,k]=react.useState(x2),[L,C]=react.useState(E2),[N,B]=react.useState(null),[F,G]=react.useState(null),M=react.useRef(null),H=react.useRef(null),Z=react.useRef(null),R=react.useRef(null),$=react.useRef(new p2({maxSize:n})),Q=react.useRef(new v2),j=react.useRef(pm()),se=react.useRef(-1),q=react.useRef(false),_e=react.useRef(0),ke=react.useRef(null),De=react.useRef(null),Pe=react.useRef(0),re=react.useRef({fetchTimes:[],seekTimes:[],bufferUnderruns:0,peakCache:0}),Oe=react.useRef(s),Ne=react.useRef(a),Ue=react.useRef(o),xt=react.useRef(c),ie=react.useRef(l),me=react.useRef(u),fe=react.useRef(d);react.useEffect(()=>{Oe.current=s;},[s]),react.useEffect(()=>{Ne.current=a;},[a]),react.useEffect(()=>{Ue.current=o;},[o]),react.useEffect(()=>{xt.current=c;},[c]),react.useEffect(()=>{ie.current=l;},[l]),react.useEffect(()=>{me.current=u;},[u]),react.useEffect(()=>{fe.current=d;},[d]);let ee=react.useCallback(()=>{let Y=R.current,X=$.current;if(!Y)return;let ve=X.getStats(),be=se.current,ge=0;for(let _t of ve.cachedChunkIds){let oe=Y.chunks[_t];oe&&(ge+=oe.endTimeMs-oe.startTimeMs);}let Te="healthy",rt=X.has(be),pe=X.has(be+1);ve.size===0?Te="empty":rt?!pe&&be<Y.totalChunks-1&&(Te="buffering"):Te="critical",k({status:Te,cachedChunks:ve.size,totalChunks:Y.totalChunks,currentChunk:be,bufferedTimeMs:ge}),ve.size>re.current.peakCache&&(re.current.peakCache=ve.size);},[]),he=react.useCallback(async Y=>{let X=$.current,ve=Q.current,be=X.get(Y);if(be)return be;let ge=performance.now(),Te=await ve.fetchChunk(Y),rt=performance.now()-ge;return re.current.fetchTimes.push(rt),re.current.fetchTimes.length>50&&re.current.fetchTimes.shift(),Te.data?(X.set(Y,Te.data,Te.bytesLoaded),ee(),Te.data):(Te.error&&Ir.error("Failed to load chunk",{chunkId:Y,error:Te.error}),null)},[ee]);react.useCallback(async Y=>{let X=R.current;if(!X)return;let ve=Ho(X,Y);if(ve<0)return;let be=[ve,ve+1,ve+2].filter(ge=>ge<X.totalChunks);await Promise.all(be.map(ge=>he(ge)));},[he]);let $e=react.useCallback((Y,X)=>{if(!Y||Y.code!==X.code||Y.language!==X.language||Y.currentFile!==X.currentFile||Y.activeTool!==X.activeTool||Y.terminalInput!==X.terminalInput)return false;let ve=Y.terminalLines??[],be=X.terminalLines??[];if(ve.length!==be.length)return false;for(let ne=0;ne<ve.length;ne++)if(ve[ne]?.text!==be[ne]?.text||ve[ne]?.type!==be[ne]?.type)return false;let ge=Object.keys(Y.fileSystem||{}),Te=Object.keys(X.fileSystem||{});if(ge.length!==Te.length)return false;for(let ne of ge)if(Y.fileSystem?.[ne]!==X.fileSystem?.[ne])return false;let rt=Y.strokes??[],pe=X.strokes??[];if(rt.length!==pe.length)return false;if(rt.length>0){let ne=rt[rt.length-1],ue=pe[pe.length-1];if(ne?.points?.length!==ue?.points?.length||ne?.id!==ue?.id)return false}let _t=Y.excalidrawScene?JSON.stringify(Y.excalidrawScene):null,oe=X.excalidrawScene?JSON.stringify(X.excalidrawScene):null;if(_t!==oe||Y.documentPage!==X.documentPage||Y.documentZoom!==X.documentZoom)return false;let W=Y.documentData?JSON.stringify(Y.documentData):null,J=X.documentData?JSON.stringify(X.documentData):null;if(W!==J||Y.cursorPosition?.x!==X.cursorPosition?.x||Y.cursorPosition?.y!==X.cursorPosition?.y||Y.cursorPosition?.visible!==X.cursorPosition?.visible)return false;let xe=Y.fileCreation?JSON.stringify(Y.fileCreation):null,P=X.fileCreation?JSON.stringify(X.fileCreation):null;return xe===P},[]),z=react.useCallback(Y=>{let X=R.current,ve=$.current,be=j.current;if(!X){Ir.warn("updatePlaybackState: No chunk index available");return}let ge=Ho(X,Y);ge>=0&&ge!==se.current&&(se.current=ge,ve.setCurrentChunk(ge));let Te=b2(Y,X,ve,be),rt=!$e(De.current,Te);(Y<1e4||Math.floor(Y/5e3)!==Math.floor((Y-100)/5e3))&&console.log("[RemoteStreaming] State @",Math.round(Y),"ms",{chunkId:ge,stateChanged:rt,codeLen:Te.code?.length??0,terminalLines:Te.terminalLines?.length??0,strokes:Te.strokes?.length??0,excalidraw:Te.excalidrawScene?.elements?.length??0,activeTool:Te.activeTool,files:Object.keys(Te.fileSystem||{}).length}),rt&&(De.current=Te,f(Te)),Math.abs(Y-Pe.current)>16&&(Pe.current=Y,g(Y)),xt.current?.(Y,m);},[m,$e]);react.useEffect(()=>{if(!e)return;let Y=true,X=Q.current;return (async()=>{try{if(Ir.info("Initializing remote streaming",{manifestUrl:e}),T(!1),B(null),A(!0),me.current?.(!0),!rT())throw new Error("HLS playback is not supported in this browser");let be=await X.fetchManifest(e);if(!Y)return;if(!be.data)throw new Error(`Failed to fetch manifest: ${be.error}`);let ge=be.data;Z.current=ge,G(ge);let Te=await X.fetchChunkIndex(ge.events.indexUrl);if(!Y)return;if(!Te.data)throw new Error(`Failed to fetch chunk index: ${Te.error}`);let rt=Te.data;R.current=rt,X.initialize(ge,rt);let pe=rt.totalDuration||(ge.recording.duration?ge.recording.duration*1e3:0);y(pe);let _t=new Audio;_t.preload="auto",M.current=_t;let oe=iT(_t,ge.audio.masterPlaylistUrl,{maxBufferLength:30});if(H.current=oe,await new Promise((W,J)=>{let xe=setTimeout(()=>{J(new Error("HLS manifest loading timeout"));},3e4);oe.on(di.MANIFEST_PARSED,()=>{clearTimeout(xe),W();}),oe.on(di.ERROR,P=>{let ne=P;ne.fatal&&(clearTimeout(xe),J(new Error(`HLS error: ${ne.details}`)));});}),!Y||(await he(0),!Y))return;j.current=pm(),se.current=0,$.current.setCurrentChunk(0),z(0),ee(),_t.addEventListener("play",()=>{q.current=!0,E(!0),Ne.current?.();}),_t.addEventListener("pause",()=>{q.current=!1,E(!1),Ue.current?.();}),_t.addEventListener("ended",()=>{q.current=!1,E(!1),ie.current?.();}),_t.addEventListener("waiting",()=>{A(!0),me.current?.(!0);}),_t.addEventListener("playing",()=>{A(!1),me.current?.(!1);}),T(!0),A(!1),me.current?.(!1),Oe.current?.(),Ir.info("Remote streaming initialized",{duration:pe,totalChunks:rt.totalChunks,totalEvents:rt.totalEventCount}),t&&_t.play().catch(W=>{Ir.warn("Auto-play prevented",{error:W.message});});}catch(be){if(!Y)return;let ge=be instanceof Error?be:new Error(String(be));Ir.error("Initialization failed",{error:ge.message}),B(ge),A(false),fe.current?.(ge);}})(),()=>{Y=false,nT(H.current),H.current=null,M.current&&(M.current.pause(),M.current.src="",M.current=null),$.current.clear(),Q.current.reset(),ke.current&&cancelAnimationFrame(ke.current);}},[e,t,he,z,ee]),react.useEffect(()=>{if(!v||!M.current||!R.current)return;let Y=M.current;_e.current=performance.now();let X=async()=>{try{if(!q.current||!M.current){console.log("[RemoteStreaming] tick: not playing or no audio");return}let ve=Y.currentTime*1e3,be=R.current;if(!be){console.log("[RemoteStreaming] tick: no index");return}let ge=Ho(be,ve),Te=$.current;if(ge>=0){if(!Te.has(ge)){if(A(!0),me.current?.(!0),re.current.bufferUnderruns++,await he(ge),!q.current)return;A(!1),me.current?.(!1);}[ge+1,ge+2].filter(pe=>pe<be.totalChunks&&!Te.has(pe)).forEach(pe=>he(pe));}if(z(ve),ee(),ve>=m){console.log("[RemoteStreaming] tick: playback ended at",ve),ie.current?.();return}ke.current=requestAnimationFrame(X);}catch(ve){console.error("[RemoteStreaming] tick error:",ve),ke.current=requestAnimationFrame(X);}};return ke.current=requestAnimationFrame(X),()=>{ke.current&&cancelAnimationFrame(ke.current);}},[v,m,he,z,ee]),react.useEffect(()=>{let Y=setInterval(()=>{let X=re.current,ve=Q.current.getMetrics(),be=$.current.getStats();C({avgChunkFetchTimeMs:X.fetchTimes.length>0?X.fetchTimes.reduce((ge,Te)=>ge+Te,0)/X.fetchTimes.length:0,cacheHitRate:be.hitRate,bufferUnderrunCount:X.bufferUnderruns,avgSeekTimeMs:X.seekTimes.length>0?X.seekTimes.reduce((ge,Te)=>ge+Te,0)/X.seekTimes.length:0,totalBytesLoaded:ve.totalBytes,peakChunksCached:X.peakCache});},1e3);return ()=>clearInterval(Y)},[]);let ce=react.useCallback(()=>{!I||!M.current||M.current.play().catch(Y=>{Ir.error("Play failed",{error:Y.message}),fe.current?.(Y);});},[I]),We=react.useCallback(()=>{M.current&&M.current.pause();},[]),lt=react.useCallback(async Y=>{if(!M.current||!R.current)return;let X=performance.now(),ve=Math.max(0,Math.min(Y,m));Ir.debug("Seeking",{timeMs:ve}),A(true),me.current?.(true);try{j.current=pm();let be=Ho(R.current,ve);await Promise.all([he(be),be>0?he(be-1):Promise.resolve(null),be<R.current.totalChunks-1?he(be+1):Promise.resolve(null)]),se.current=be,$.current.setCurrentChunk(be),z(ve),M.current.currentTime=ve/1e3;let ge=performance.now()-X;re.current.seekTimes.push(ge),re.current.seekTimes.length>20&&re.current.seekTimes.shift(),ee();}catch(be){let ge=be instanceof Error?be:new Error(String(be));Ir.error("Seek failed",{error:ge.message}),fe.current?.(ge);}finally{A(false),me.current?.(false);}},[m,he,z,ee]),K=react.useCallback(Y=>{let X=Math.max(.25,Math.min(4,Y));S(X),M.current&&(M.current.playbackRate=X);},[]),ze=react.useCallback(()=>M.current,[]),pt=react.useMemo(()=>({play:ce,pause:We,seek:lt,setSpeed:K,getAudioElement:ze}),[ce,We,lt,K,ze]);return {state:h,currentTime:p,duration:m,isPlaying:v,speed:b,isReady:I,isBuffering:w,bufferHealth:_,metrics:L,error:N,manifest:F,controls:pt}}function _2({message:r="Loading..."}){return jsxRuntime.jsxs("div",{role:"status","aria-live":"polite","aria-label":r,style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",height:"100%",backgroundColor:"#1a1a1a"},children:[jsxRuntime.jsx("div",{style:{width:"48px",height:"48px",border:"4px solid #333",borderTopColor:"#007acc",borderRadius:"50%",animation:"ct-streaming-spin 1s linear infinite"}}),jsxRuntime.jsx("span",{style:{color:"#888",fontSize:"14px"},children:r}),jsxRuntime.jsx("style",{children:`
173
+ @keyframes ct-streaming-spin {
174
+ to { transform: rotate(360deg); }
175
+ }
176
+ `})]})}function T2({error:r}){return jsxRuntime.jsxs("div",{role:"alert","aria-live":"assertive",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px",height:"100%",padding:"24px",backgroundColor:"#1a1a1a"},children:[jsxRuntime.jsx("span",{style:{fontSize:"48px"},"aria-hidden":"true",children:"\u26A0\uFE0F"}),jsxRuntime.jsx("span",{style:{color:"#ff4444",fontSize:"16px",fontWeight:500},children:"Failed to load streaming content"}),jsxRuntime.jsx("span",{style:{color:"#888",fontSize:"14px",textAlign:"center",maxWidth:"400px"},children:r.message})]})}function w2({health:r}){return jsxRuntime.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.7)",zIndex:100},children:[jsxRuntime.jsx("div",{style:{width:"40px",height:"40px",border:"3px solid #333",borderTopColor:"#007acc",borderRadius:"50%",animation:"ct-streaming-spin 0.8s linear infinite"}}),jsxRuntime.jsx("span",{style:{color:"#fff",fontSize:"14px",marginTop:"12px"},children:"Buffering..."}),jsxRuntime.jsxs("span",{style:{color:"#888",fontSize:"12px",marginTop:"4px"},children:["Chunk ",r.currentChunk+1," / ",r.totalChunks]})]})}function A2(r){let e=new Set,t={...r};return {getFileTree:()=>{let s={name:"root",path:"/",type:"directory",children:[]},a=new Map;a.set("/",s);let o=Object.keys(t).sort();for(let c of o){let l=c.split("/").filter(h=>h.length>0),u="",d=s;for(let h=0;h<l.length;h++){let f=l[h];if(u+="/"+f,h===l.length-1){let g=f.includes(".")?f.split(".").pop()??"":"";d.children=d.children||[],d.children.push({name:f,path:u,type:"file",language:g==="ts"?"typescript":g==="js"?"javascript":g==="py"?"python":g});}else {if(!a.has(u)){let g={name:f,path:u,type:"directory",children:[]};d.children=d.children||[],d.children.push(g),a.set(u,g);}d=a.get(u);}}}return s},subscribe:s=>(e.add(s),()=>e.delete(s)),writeFile:(s,a)=>{t[s]=a;},readFile:s=>{let a=s.startsWith("/")?s:"/"+s;return t[a]??t[s]??""},clear:()=>{t={};},getFiles:()=>({...t}),notifyChanged:()=>{e.forEach(s=>s());}}}function k2(r){return r.terminalLines&&r.terminalLines.length>0?r.terminalLines.map(e=>{let t="output",i=e.type;return (i==="input"||i==="output"||i==="system"||i==="error"||i==="success"||i==="warning"||i==="info"||i==="header"||i==="divider"||i==="execution_header"||i==="execution_result")&&(t=i),{type:t,text:e.text}}):[]}function I2(){return []}function L2(){return ["code","whiteboard","document"]}var R2=react.forwardRef(function(e,t){let{manifestUrl:i,theme:n="dark",aspectRatio:s="16:9",showToolbar:a=true,showToolSidebar:o=true,autoPlay:c=false,defaultSpeed:l=1,allowFullscreen:u=true,defaultTool:d="code",maxCacheSize:h=5,className:f,onReady:p,onPlay:g,onPause:m,onProgress:y,onComplete:v,onError:E,onBuffering:b,onToolChange:S}=e,[I,T]=react.useState(d),[w,A]=react.useState(false),[_,k]=react.useState(1),[L,C]=react.useState(false),[N,B]=react.useState(false),F=react.useRef(null),G=react.useRef(null),M=react.useRef(null),H=react.useRef("{}"),Z=n==="dark"||n==="system"&&typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches,R=sT({manifestUrl:i,autoPlay:c,defaultSpeed:l,maxCacheSize:h,onReady:p,onPlay:g,onPause:m,onProgress:y,onComplete:v,onBuffering:b,onError:E});react.useEffect(()=>{let re=R.controls.getAudioElement();re&&(re.volume=L?0:_);},[_,L,R.controls]),react.useEffect(()=>{if(!N&&R.state.activeTool){let re=R.state.activeTool;re!==I&&["code","whiteboard","document"].includes(re)&&T(re);}},[R.state.activeTool,N,I]),react.useEffect(()=>{R.isPlaying&&B(false);},[R.isPlaying]);let $=react.useMemo(()=>L2(),[]),Q=react.useMemo(()=>I2(),[]),j=react.useMemo(()=>k2(R.state),[R.state]),{fileSystemToUse:se,currentFileToUse:q}=react.useMemo(()=>{let re=R.state.fileSystem||{},Oe=R.state.currentFile,Ne=Object.keys(re);if(Ne.length===0&&R.state.code&&!Oe){let Ue={python:"py",typescript:"ts",javascript:"js",java:"java",cpp:"cpp",c:"c",go:"go",rust:"rs",ruby:"rb",php:"php"},xt=(R.state.language||"javascript").toLowerCase(),me=`main.${Ue[xt]||"txt"}`;re={[me]:R.state.code},Oe=me;}else Oe&&Ne.length===0&&R.state.code?re={[Oe]:R.state.code}:!Oe&&Ne.length>0&&(Oe=Ne[0]);return {fileSystemToUse:re,currentFileToUse:Oe}},[R.state.fileSystem,R.state.currentFile,R.state.code,R.state.language]),_e=react.useMemo(()=>(G.current||(G.current=A2({})),G.current),[]);react.useEffect(()=>{let re=JSON.stringify(se);G.current&&re!==H.current&&(H.current=re,G.current.clear(),Object.entries(se).forEach(([Oe,Ne])=>{G.current.writeFile(Oe,Ne);}),G.current.notifyChanged()),M.current=q??null;},[se,q]);let ke=react.useCallback(re=>{R.isPlaying||(B(true),T(re),S?.(re));},[R.isPlaying,S]),De=react.useCallback(()=>{F.current&&(document.fullscreenElement?document.exitFullscreen().then(()=>A(false)).catch(()=>{}):F.current.requestFullscreen().then(()=>A(true)).catch(()=>{}));},[]);react.useImperativeHandle(t,()=>({play:()=>R.controls.play(),pause:()=>R.controls.pause(),seek:re=>R.controls.seek(re),setSpeed:re=>R.controls.setSpeed(re),getCurrentTime:()=>R.currentTime,getDuration:()=>R.duration,getState:()=>R.state,setActiveTool:re=>T(re),getManifest:()=>R.manifest,getBufferHealth:()=>R.bufferHealth}),[R]);let Pe=react.useMemo(()=>{switch(s){case "16:9":return {aspectRatio:"16 / 9"};case "4:3":return {aspectRatio:"4 / 3"};default:return {height:"100%"}}},[s]);return !R.isReady&&!R.error?jsxRuntime.jsx("div",{ref:F,className:f,style:{...Pe,backgroundColor:"#1a1a1a",position:"relative",overflow:"hidden"},children:jsxRuntime.jsx(_2,{message:"Initializing streaming..."})}):R.error?jsxRuntime.jsx("div",{ref:F,className:f,style:{...Pe,backgroundColor:"#1a1a1a",position:"relative",overflow:"hidden"},children:jsxRuntime.jsx(T2,{error:R.error})}):jsxRuntime.jsxs("div",{ref:F,className:f,style:{...Pe,backgroundColor:Z?"#1a1a1a":"#ffffff",color:Z?"#ffffff":"#000000",position:"relative",display:"flex",flexDirection:"column",overflow:"hidden"},children:[R.isBuffering&&R.isPlaying&&jsxRuntime.jsx(w2,{health:R.bufferHealth}),jsxRuntime.jsxs("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[o&&jsxRuntime.jsx(Ms,{activeTool:I,onToolChange:ke,tools:$}),jsxRuntime.jsxs("div",{style:{flex:1,overflow:"hidden"},children:[I==="code"&&jsxRuntime.jsx(Ns,{code:R.state.code,language:R.state.language||"javascript",currentFile:q??void 0,fileSystem:_e,terminalLines:j,readOnly:true,mode:"playback",isPlaying:R.isPlaying,fileCreationState:R.state.fileCreation??void 0}),I==="whiteboard"&&jsxRuntime.jsx(Os,{mode:"playback",isPlaying:R.isPlaying,scene:R.state.excalidrawScene}),I==="document"&&R.state.documentData&&jsxRuntime.jsx(Fs,{mode:"playback",documentData:{...R.state.documentData,data:R.state.documentData.data||""},currentPage:R.state.documentPage,zoom:R.state.documentZoom,scrollPosition:R.state.documentScroll})]})]}),a&&jsxRuntime.jsx(Sm,{isPlaying:R.isPlaying,currentTime:R.currentTime,duration:R.duration,playbackSpeed:R.speed,volume:_,muted:L,markers:Q,onPlayPause:()=>R.isPlaying?R.controls.pause():R.controls.play(),onSeek:re=>R.controls.seek(re),onSkip:re=>R.controls.seek(R.currentTime+re*1e3),onRestart:()=>R.controls.seek(0),onSpeedChange:re=>R.controls.setSpeed(re),onVolumeChange:k,onMuteToggle:()=>C(!L),onFullscreenToggle:u?De:void 0,isFullscreen:w})]})}),D2={status:"empty",loadedChunks:0,totalChunks:0,currentChunk:0,bufferedTimeMs:0,percentLoaded:0},P2={avgChunkLoadTimeMs:0,chunkCacheHitRate:0,bufferUnderrunCount:0,avgBufferHealthPercent:0,avgSeekTimeMs:0,seekCacheHitRate:0,peakChunksCached:0,totalBytesLoaded:0};function M2(r){let{recording:e,chunkIndex:t,loadChunk:i,autoPlay:n=false,defaultSpeed:s=1,bufferAhead:a=Rn.BUFFER_AHEAD,bufferBehind:o=Rn.BUFFER_BEHIND,maxChunksInMemory:c=Rn.MAX_CHUNKS_IN_MEMORY,onPlay:l,onPause:u,onProgress:d,onComplete:h,onBuffering:f,onChunkLoad:p,onError:g}=r,[m,y]=react.useState(ur()),[v,E]=react.useState(0),[b,S]=react.useState(0),[I,T]=react.useState(false),[w,A]=react.useState(s),[_,k]=react.useState(false),[L,C]=react.useState(false),[N,B]=react.useState(D2),[F,G]=react.useState(P2),M=react.useRef(null),H=react.useRef(null),Z=react.useRef(0),R=react.useRef({chunkLoadTimes:[],cacheHits:0,cacheMisses:0,seekTimes:[],seekCacheHits:0,seekCacheMisses:0,bufferUnderruns:0,totalBytesLoaded:0}),$=react.useRef(0),Q=react.useRef(s),j=react.useRef(0),se=react.useRef(false);react.useEffect(()=>{$.current=v;},[v]),react.useEffect(()=>{Q.current=w;},[w]),react.useEffect(()=>{j.current=b;},[b]),react.useEffect(()=>{se.current=I;},[I]);let q=react.useMemo(()=>!!(t&&i),[t,i]),_e=react.useRef(d),ke=react.useRef(h),De=react.useRef(f),Pe=react.useRef(p),re=react.useRef(g);react.useEffect(()=>{_e.current=d;},[d]),react.useEffect(()=>{ke.current=h;},[h]),react.useEffect(()=>{De.current=f;},[f]),react.useEffect(()=>{Pe.current=p;},[p]),react.useEffect(()=>{re.current=g;},[g]);let Oe=react.useCallback(async fe=>{if(!i)return {chunk:void 0,error:"No chunk loader provided",loadTimeMs:0,fromCache:false};let ee=performance.now();try{let he=await i(fe),ye=performance.now()-ee;return R.current.chunkLoadTimes.push(ye),R.current.chunkLoadTimes.length>100&&R.current.chunkLoadTimes.shift(),he.chunk&&(R.current.cacheMisses++,Pe.current?.(fe)),he}catch(he){let ye=he instanceof Error?he:new Error(String(he)),$e=performance.now()-ee;return re.current?.(ye),{chunk:void 0,error:ye.message,loadTimeMs:$e,fromCache:false}}},[i]);react.useEffect(()=>{if(!e){M.current=null,k(false),y(ur()),E(0),S(0);return}return (async()=>{try{if(q&&t&&i){let ee=new Qa(t,Oe,{bufferAhead:a,bufferBehind:o,maxChunksInMemory:c,preloadThreshold:.8,cacheIntervalMs:5e3});await ee.initialize(),M.current=ee,S(ee.getDuration()),B(ee.getBufferHealth());}else {let ee=new Rs(e.events);M.current=ee,S(e.manifest.duration*1e3);}k(!0),M.current.reset(),y(M.current.getCurrentState()),n&&T(!0);}catch(ee){let he=ee instanceof Error?ee:new Error(String(ee));re.current?.(he),k(false);}})(),()=>{H.current&&cancelAnimationFrame(H.current);}},[e,t,q,Oe,a,o,c,n,i]),react.useEffect(()=>{if(!I||!M.current)return;Z.current=performance.now();let fe=async()=>{if(!se.current||!M.current)return;let ee=performance.now(),he=(ee-Z.current)*Q.current;Z.current=ee;let ye=j.current,$e=Math.min($.current+he,ye);try{if(q&&M.current instanceof Qa){let z=M.current,ce=z.getBufferHealth();if(B(ce),ce.status==="critical"||ce.status==="empty"){if(C(!0),De.current?.(!0),R.current.bufferUnderruns++,await z.advanceToAsync($e),!se.current)return;C(!1),De.current?.(!1);}else if(await z.advanceToAsync($e),!se.current)return}else M.current.advanceTo($e);if(y(M.current.getCurrentState()),$.current=$e,E($e),_e.current?.($e,ye),$e>=ye){se.current=!1,T(!1),ke.current?.();return}H.current=requestAnimationFrame(fe);}catch(z){let ce=z instanceof Error?z:new Error(String(z));re.current?.(ce),T(false);}};return H.current=requestAnimationFrame(fe),()=>{H.current&&cancelAnimationFrame(H.current);}},[I,q]),react.useEffect(()=>{let fe=setInterval(()=>{let ee=R.current;G({avgChunkLoadTimeMs:ee.chunkLoadTimes.length>0?ee.chunkLoadTimes.reduce((he,ye)=>he+ye,0)/ee.chunkLoadTimes.length:0,chunkCacheHitRate:ee.cacheHits+ee.cacheMisses>0?ee.cacheHits/(ee.cacheHits+ee.cacheMisses):0,bufferUnderrunCount:ee.bufferUnderruns,avgBufferHealthPercent:N.percentLoaded*100,avgSeekTimeMs:ee.seekTimes.length>0?ee.seekTimes.reduce((he,ye)=>he+ye,0)/ee.seekTimes.length:0,seekCacheHitRate:ee.seekCacheHits+ee.seekCacheMisses>0?ee.seekCacheHits/(ee.seekCacheHits+ee.seekCacheMisses):0,peakChunksCached:N.loadedChunks,totalBytesLoaded:ee.totalBytesLoaded});},1e3);return ()=>clearInterval(fe)},[N]);let Ne=react.useCallback(()=>{_&&(T(true),l?.());},[_,l]),Ue=react.useCallback(()=>{T(false),u?.();},[u]),xt=react.useCallback(async fe=>{if(!M.current)return;let ee=performance.now(),he=Math.max(0,Math.min(fe,b));try{q&&M.current instanceof Qa?(C(!0),De.current?.(!0),await M.current.seekAsync(he),C(!1),De.current?.(!1),B(M.current.getBufferHealth())):M.current.seek(he),y(M.current.getCurrentState()),E(he),$.current=he,_e.current?.(he,b);let ye=performance.now()-ee;R.current.seekTimes.push(ye),R.current.seekTimes.length>50&&R.current.seekTimes.shift();}catch(ye){let $e=ye instanceof Error?ye:new Error(String(ye));re.current?.($e);}},[b,q]),ie=react.useCallback(fe=>{A(Math.max(.25,Math.min(4,fe)));},[]),me=react.useCallback(async(fe,ee)=>{if(!(!q||!(M.current instanceof Qa)))try{await M.current.preloadTimeRange(fe,ee),B(M.current.getBufferHealth());}catch(he){let ye=he instanceof Error?he:new Error(String(he));re.current?.(ye);}},[q]);return {state:m,currentTime:v,duration:b,isPlaying:I,speed:w,isLoaded:_,isBuffering:L,bufferHealth:N,isStreaming:q,metrics:F,controls:{play:Ne,pause:Ue,seek:xt,setSpeed:ie,preloadRange:me}}}function O2(r){let{playbackState:e,onEnter:t,onExit:i,executeCode:n}=r,[s,a]=react.useState(false),[o,c]=react.useState(""),[l,u]=react.useState(""),d=react.useCallback(()=>{a(true),u(e.code),c(e.code),t?.();},[e.code,t]),h=react.useCallback(()=>{let m=o!==l;a(false),i?.(o,m);},[o,l,i]),f=react.useCallback(m=>{c(m);},[]),p=react.useCallback(()=>{c(l);},[l]),g=react.useCallback(async()=>n?n(o,e.language):"Code execution not configured",[o,e.language,n]);return {isActive:s,modifiedCode:o,hasChanges:o!==l,controls:{enter:d,exit:h,updateCode:f,resetCode:p,runCode:g}}}function aT(r){let{audioRef:e,eventTime:t,isPlaying:i,speed:n,driftTolerance:s=500,onAudioTimeUpdate:a,onSyncLost:o,onSyncRestored:c}=r,[l,u]=react.useState(0),[d,h]=react.useState(false),[f,p]=react.useState(true),g=react.useRef(true),m=react.useRef(false),y=Math.abs(l-t);react.useEffect(()=>{let S=e.current;if(!S)return;let I=()=>{h(true);},T=()=>{if(m.current)return;let w=S.currentTime*1e3;u(w),a?.(w);};return S.addEventListener("loadedmetadata",I),S.addEventListener("timeupdate",T),S.readyState>=1&&h(true),()=>{S.removeEventListener("loadedmetadata",I),S.removeEventListener("timeupdate",T);}},[e,a]),react.useEffect(()=>{let S=e.current;!S||!d||(i?S.play().catch(()=>{}):S.pause());},[e,i,d]),react.useEffect(()=>{let S=e.current;!S||!d||(S.playbackRate=n);},[e,n,d]),react.useEffect(()=>{let S=y<=s;S!==g.current&&(g.current=S,p(S),S?c?.():o?.(y));},[y,s,o,c]);let v=react.useCallback(S=>{let I=e.current;if(!I||!d)return;m.current=true,I.currentTime=S/1e3;let T=()=>{w(),m.current=false,u(S);},w=()=>{I.removeEventListener("seeked",T),clearTimeout(A);},A=setTimeout(()=>{w(),m.current=false;},3e3);I.addEventListener("seeked",T);},[e,d]),E=react.useCallback(()=>{},[]),b=react.useCallback(()=>{v(t);},[v,t]);return react.useEffect(()=>{!i||!d||y>s&&v(t);},[i,d,y,s,t,v]),{audioTime:l,eventTime:t,drift:y,isSynced:f,isAudioReady:d,controls:{syncToAudio:E,syncAudioTo:v,forceResync:b}}}function oT(r){let e=react.useRef(null),[t,i]=react.useState(false),[n,s]=react.useState(null),[a,o]=react.useState(0);return react.useEffect(()=>{if(!r){i(false),o(0);return}let c=e.current;if(!c)return;let l=()=>{i(true),o(c.duration*1e3),s(null);},u=()=>{i(false),s(new Error("Failed to load audio"));};return c.addEventListener("loadedmetadata",l),c.addEventListener("error",u),c.src=r,c.load(),()=>{c.removeEventListener("loadedmetadata",l),c.removeEventListener("error",u);}},[r]),{audioRef:e,isLoaded:t,error:n,duration:a}}var F2=aT,N2=oT;function ou(r){let e=Math.floor(r/1e3),t=Math.floor(e/3600),i=Math.floor(e%3600/60),n=e%60;return t>0?`${t}:${i.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}`:`${i}:${n.toString().padStart(2,"0")}`}function lT(r){return {chapter:"#4a90d9",highlight:"#f5a623",quiz:"#7b68ee",note:"#50c878",bookmark:"#ff6b6b",error:"#ff4444"}[r]}function U2(r){return {chapter:"\u{1F4D6}",highlight:"\u2B50",quiz:"\u2753",note:"\u{1F4DD}",bookmark:"\u{1F516}",error:"\u26A0\uFE0F"}[r]}function $2({marker:r,position:e,theme:t="light"}){let i=t==="dark";return jsxRuntime.jsxs("div",{className:"ct-timeline-tooltip",style:{position:"absolute",left:`${e}%`,bottom:"100%",transform:"translateX(-50%)",marginBottom:"8px",padding:"8px 12px",backgroundColor:i?"#333":"#fff",border:`1px solid ${i?"#555":"#ddd"}`,borderRadius:"6px",boxShadow:"0 2px 8px rgba(0,0,0,0.15)",whiteSpace:"nowrap",zIndex:100,pointerEvents:"none"},children:[jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[jsxRuntime.jsx("span",{children:U2(r.type)}),jsxRuntime.jsx("span",{style:{fontWeight:500,color:i?"#fff":"#333",fontSize:"13px"},children:r.label})]}),r.description&&jsxRuntime.jsx("div",{style:{marginTop:"4px",fontSize:"11px",color:i?"#aaa":"#666"},children:r.description}),jsxRuntime.jsx("div",{style:{marginTop:"4px",fontSize:"11px",color:i?"#888":"#999"},children:ou(r.time)})]})}function z2({markers:r,currentTime:e,duration:t,onSeek:i,theme:n="light"}){let s=r.filter(c=>c.type==="chapter");if(s.length===0)return null;let a=n==="dark",o=s.reduce((c,l)=>l.time<=e?l:c);return jsxRuntime.jsx("div",{className:"ct-chapter-nav",style:{display:"flex",gap:"4px",marginBottom:"8px",overflowX:"auto",padding:"4px 0"},children:s.map((c,l)=>jsxRuntime.jsxs("button",{onClick:()=>i(c.time),style:{padding:"4px 12px",border:"none",borderRadius:"4px",backgroundColor:o.id===c.id?lT("chapter"):a?"#333":"#e0e0e0",color:o.id===c.id?"#fff":a?"#ccc":"#333",fontSize:"12px",cursor:"pointer",whiteSpace:"nowrap",transition:"background-color 0.2s"},children:[l+1,". ",c.label]},c.id))})}function G2({currentTime:r,duration:e,markers:t=[],chunks:i=[],buffered:n=[],onSeek:s,onMarkerClick:a,theme:o="light",showChapterLabels:c=true,showBufferStatus:l=true,showChunkIndicators:u=false,compact:d=false}){let[h,f]=react.useState(null),[p,g]=react.useState(null),m=react.useRef(null),y=o==="dark",v=e>0?r/e*100:0,E=react.useMemo(()=>l?n.map(w=>({start:w.start/e*100,end:w.end/e*100})):[],[n,e,l]),b=react.useMemo(()=>!u||i.length===0?[]:i.map(w=>({position:w.startTime/e*100,loaded:w.loaded,loading:w.loading})),[i,e,u]),S=react.useCallback(w=>{let A=w.currentTarget.getBoundingClientRect(),k=(w.clientX-A.left)/A.width;s(Math.round(k*e));},[e,s]),I=react.useCallback(w=>{let A=w.currentTarget.getBoundingClientRect(),k=(w.clientX-A.left)/A.width;g(Math.round(k*e));},[e]),T=react.useCallback(()=>{g(null);},[]);return jsxRuntime.jsxs("div",{className:"ct-timeline",style:{padding:d?"4px 0":"12px 0"},children:[c&&!d&&jsxRuntime.jsx(z2,{markers:t,currentTime:r,duration:e,onSeek:s,theme:o}),!d&&jsxRuntime.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"8px",fontSize:"12px",color:y?"#aaa":"#666"},children:[jsxRuntime.jsx("span",{children:ou(r)}),p!==null&&jsxRuntime.jsx("span",{style:{color:y?"#fff":"#333"},children:ou(p)}),jsxRuntime.jsx("span",{children:ou(e)})]}),jsxRuntime.jsxs("div",{ref:m,onClick:S,onMouseMove:I,onMouseLeave:T,style:{position:"relative",height:d?"6px":"10px",backgroundColor:y?"#333":"#ddd",borderRadius:d?"3px":"5px",cursor:"pointer",overflow:"visible"},children:[E.map((w,A)=>jsxRuntime.jsx("div",{style:{position:"absolute",left:`${w.start}%`,width:`${w.end-w.start}%`,height:"100%",backgroundColor:y?"#444":"#bbb",borderRadius:d?"3px":"5px"}},A)),jsxRuntime.jsx("div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${v}%`,backgroundColor:"#4a90d9",borderRadius:d?"3px":"5px",transition:"width 0.1s linear"}}),b.map((w,A)=>jsxRuntime.jsx("div",{style:{position:"absolute",left:`${w.position}%`,top:0,width:"2px",height:"100%",backgroundColor:w.loaded?y?"#666":"#999":w.loading?"#f5a623":y?"#444":"#ccc"}},A)),t.map(w=>{let A=e>0?w.time/e*100:0,_=h?.id===w.id;return jsxRuntime.jsx("div",{onMouseEnter:()=>f(w),onMouseLeave:()=>f(null),onClick:k=>{k.stopPropagation(),a?.(w),s(w.time);},style:{position:"absolute",left:`${A}%`,top:d?"-2px":"-4px",width:d?"8px":"12px",height:d?"10px":"18px",marginLeft:d?"-4px":"-6px",backgroundColor:lT(w.type),borderRadius:"2px",cursor:"pointer",zIndex:_?10:1,transform:_?"scale(1.2)":"scale(1)",transition:"transform 0.1s"},children:_&&!d&&jsxRuntime.jsx($2,{marker:w,position:A,theme:o})},w.id)}),jsxRuntime.jsx("div",{style:{position:"absolute",left:`${v}%`,top:d?"-3px":"-5px",width:d?"6px":"8px",height:d?"12px":"20px",marginLeft:d?"-3px":"-4px",backgroundColor:"#fff",borderRadius:"2px",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",zIndex:20}}),p!==null&&!d&&jsxRuntime.jsx("div",{style:{position:"absolute",left:`${p/e*100}%`,top:0,width:"1px",height:"100%",backgroundColor:y?"rgba(255,255,255,0.5)":"rgba(0,0,0,0.3)",pointerEvents:"none"}})]})]})}var eT={"top-right":{top:16,right:16},"top-left":{top:16,left:16},"bottom-right":{bottom:120,right:16},"bottom-left":{bottom:120,left:16}};function cT({src:r,currentTime:e,isPlaying:t,playbackRate:i=1,position:n="top-right",customPosition:s,visible:a=true,draggable:o=true,showControls:c=true,opacity:l=1,onPositionChange:u,onAudioRef:d,muted:h=false,volume:f=1,syncTolerance:p=300}){let g=react.useRef(null),m=react.useRef(null),[y,v]=react.useState(false),[E,b]=react.useState(false),[S,I]=react.useState({x:0,y:0}),[T,w]=react.useState(s||{x:0,y:0}),[A,_]=react.useState(false),[k,L]=react.useState(false);react.useEffect(()=>{let N=g.current;if(!(!N||!r))return d&&d(N),()=>{d&&d(null),N.pause();}},[r,d]);let C=react.useCallback(N=>{if(!o)return;b(true);let B=m.current?.getBoundingClientRect(),F=m.current?.parentElement?.getBoundingClientRect();B&&F&&(I({x:N.clientX-B.left,y:N.clientY-B.top}),k||w({x:B.left-F.left,y:B.top-F.top}));},[o,k]);return react.useEffect(()=>{if(!E)return;let N=F=>{let G=m.current?.parentElement?.getBoundingClientRect();if(!G)return;let M=F.clientX-G.left-S.x,H=F.clientY-G.top-S.y,Z=G.width-60,R=G.height-60,$=Math.max(0,Math.min(M,Z)),Q=Math.max(0,Math.min(H,R));w({x:$,y:Q}),L(true),u?.({x:$,y:Q});},B=()=>{b(false);};return window.addEventListener("mousemove",N),window.addEventListener("mouseup",B),()=>{window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",B);}},[E,S,u]),!r||!a?null:A?jsxRuntime.jsxs("div",{ref:m,style:{position:"absolute",...k?{left:T.x,top:T.y}:eT[n],width:40,height:40,borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.6)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:1e3,transition:"transform 0.2s"},onClick:()=>_(false),onMouseDown:C,children:[jsxRuntime.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"white",children:jsxRuntime.jsx("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"})}),jsxRuntime.jsx("audio",{ref:g,src:r,preload:"auto"})]}):jsxRuntime.jsxs("div",{ref:m,style:{position:"absolute",...k?{left:T.x,top:T.y}:eT[n],width:60,height:60,borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.7)",border:"2px solid rgba(255, 255, 255, 0.3)",display:"flex",alignItems:"center",justifyContent:"center",cursor:o?E?"grabbing":"grab":"default",opacity:l,zIndex:1e3,transition:E?"none":"transform 0.2s",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.3)"},onMouseEnter:()=>v(true),onMouseLeave:()=>v(false),onMouseDown:C,children:[jsxRuntime.jsx("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"white",children:jsxRuntime.jsx("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"})}),c&&y&&jsxRuntime.jsx("button",{style:{position:"absolute",top:-6,right:-6,width:20,height:20,borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.8)",border:"1px solid rgba(255, 255, 255, 0.3)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:1001},onClick:N=>{N.stopPropagation(),_(true);},children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"white",children:jsxRuntime.jsx("path",{d:"M19 13H5v-2h14v2z"})})}),jsxRuntime.jsx("audio",{ref:g,src:r,preload:"auto"})]})}/*! Bundled license information:
177
+
178
+ pako/dist/pako.esm.mjs:
179
+ (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
180
+ */exports.AudioOverlay=cT;exports.CoursePlayer=l2;exports.DocumentPanel=Fs;exports.FileExplorer=Rh;exports.HLS_EVENTS=di;exports.IDEPanel=Ns;exports.PlayerControls=Sm;exports.StreamingCoursePlayer=R2;exports.Terminal=Vx;exports.Timeline=G2;exports.ToolSidebar=Ms;exports.WebcamOverlay=cT;exports.WhiteboardPanel=Os;exports.canPlayHls=rT;exports.createEmptyRecording=TI;exports.createHlsPlayer=iT;exports.destroyHlsPlayer=nT;exports.hasNativeHlsSupport=Tm;exports.isHlsSupported=_m;exports.readCTFile=zl;exports.readCTManifest=yI;exports.useAudioElement=oT;exports.useAudioSync=aT;exports.useInteractiveMode=O2;exports.usePlayback=Em;exports.usePlaybackEngine=Em;exports.useRemoteStreamingPlayback=sT;exports.useStreamingPlayback=M2;exports.useVideoElement=N2;exports.useVideoSync=F2;exports.validateCTFile=ix;exports.writeCTFile=bI;//# sourceMappingURL=index.cjs.map
181
+ //# sourceMappingURL=index.cjs.map