@pilio/gemini-watermark-remover 1.0.35 → 1.0.37

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/video-app.js CHANGED
@@ -1,14 +1,14 @@
1
1
  /*!
2
- * @pilio/gemini-watermark-remover v1.0.35+9b14e90
2
+ * @pilio/gemini-watermark-remover v1.0.37+e8c307d
3
3
  * Automatically removes watermarks from Gemini AI generated images
4
4
  * (c) 2026 GargantuaX
5
5
  * https://github.com/GargantuaX/gemini-watermark-remover
6
6
  * Released under the MIT License.
7
7
  */
8
- (()=>{var UD=Object.defineProperty;var zt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof require<"u"?require:e)[A]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var qD=(t,e)=>()=>(t&&(e=t(t=0)),e);var op=(t,e)=>{for(var A in e)UD(t,A,{get:e[A],enumerable:!0})};var pI={};op(pI,{InferenceSession:()=>Em,TRACE:()=>og,TRACE_EVENT_BEGIN:()=>dn,TRACE_EVENT_END:()=>fn,TRACE_FUNC_BEGIN:()=>ci,TRACE_FUNC_END:()=>ui,Tensor:()=>jA,default:()=>wG,env:()=>ct,registerBackend:()=>oi});async function Jy(t={}){var e=t,A=!!globalThis.window,r=!!globalThis.WorkerGlobalScope,n=r&&self.name?.startsWith("em-pthread");e.mountExternalData=(d,m)=>{d.startsWith("./")&&(d=d.substring(2)),(e.Uc||(e.Uc=new Map)).set(d,m)},e.unmountExternalData=()=>{delete e.Uc},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let a=()=>{let d=m=>(...B)=>{let P=oA;return B=m(...B),oA!=P?new Promise((G,v)=>{ki={resolve:G,reject:v}}):B};(()=>{for(let m of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])e[m]=d(e[m])})(),typeof jsepRunAsync<"u"&&(e._OrtRun=jsepRunAsync(e._OrtRun),e._OrtRunWithBinding=jsepRunAsync(e._OrtRunWithBinding)),a=void 0};e.asyncInit=()=>{a?.()};var i,s,o=(d,m)=>{throw m},c=LA.url,g="";if(A||r){try{g=new URL(".",c).href}catch{}r&&(s=d=>{var m=new XMLHttpRequest;return m.open("GET",d,!1),m.responseType="arraybuffer",m.send(null),new Uint8Array(m.response)}),i=async d=>{if(S(d))return new Promise((B,P)=>{var G=new XMLHttpRequest;G.open("GET",d,!0),G.responseType="arraybuffer",G.onload=()=>{G.status==200||G.status==0&&G.response?B(G.response):P(G.status)},G.onerror=P,G.send(null)});var m=await fetch(d,{credentials:"same-origin"});if(m.ok)return m.arrayBuffer();throw Error(m.status+" : "+m.url)}}var u,l,f,p,h,y,w=console.log.bind(console),D=console.error.bind(console),b=w,E=D,x=!1,S=d=>d.startsWith("file://");function k(){KA.buffer!=N.buffer&&et()}if(n){let d=function(m){try{var B=m.data,P=B.Oc;if(P==="load"){let G=[];self.onmessage=v=>G.push(v),y=()=>{postMessage({Oc:"loaded"});for(let v of G)d(v);self.onmessage=d};for(let v of B.ce)e[v]&&!e[v].proxy||(e[v]=(...z)=>{postMessage({Oc:"callHandler",be:v,args:z})},v=="print"&&(b=e[v]),v=="printErr"&&(E=e[v]));KA=B.ie,et(),l=B.je,Je(),gc()}else if(P==="run"){(function(G){var v=(k(),_)[G+52>>>2>>>0];G=(k(),_)[G+56>>>2>>>0],Bh(v,v-G),fe(v)})(B.Nc),ll(B.Nc,0,0,1,0,0),wA(),zr(B.Nc),M||(th(),M=!0);try{hi(B.ge,B.Wc)}catch(G){if(G!="unwind")throw G}}else B.target!=="setimmediate"&&(P==="checkMailbox"?M&&Ei():P&&(E(`worker: received unknown command ${P}`),E(B)))}catch(G){throw fh(),G}};var R=d,M=!1;self.onunhandledrejection=m=>{throw m.reason||m},self.onmessage=d}var N,V,F,K,L,_,W,pe,Ae,De,ae,we=!1;function et(){var d=KA.buffer;e.HEAP8=N=new Int8Array(d),F=new Int16Array(d),e.HEAPU8=V=new Uint8Array(d),K=new Uint16Array(d),e.HEAP32=L=new Int32Array(d),e.HEAPU32=_=new Uint32Array(d),W=new Float32Array(d),pe=new Float64Array(d),Ae=new BigInt64Array(d),De=new BigUint64Array(d)}function tt(){we=!0,n?y():dr._b()}function $e(d){throw E(d="Aborted("+d+")"),x=!0,d=new WebAssembly.RuntimeError(d+". Build with -sASSERTIONS for more info."),h?.(d),d}function pA(){return{a:{f:dg,J:_o,k:fg,p:mg,l:hg,sa:pg,b:Mo,ca:Ro,Ja:Ha,q:Fo,da:La,Za:ja,Fa:Va,Ha:Ka,_a:Wa,Xa:Za,Qa:$a,Wa:Ja,oa:Xa,Ga:es,Xb:zo,Ya:No,Yb:yi,db:wg,Da:Bg,Sb:Pg,Qb:hn,Ca:qo,M:gr,I:Ig,Rb:Dg,ja:lr,Tb:ns,Ta:bi,Vb:Sg,Ka:is,Ob:Lo,ka:jo,Sa:zr,ab:Vo,U:gs,n:ls,c:Ii,rb:Ce,w:Jo,L:ds,z:Xo,j:ec,o:fs,sb:ZA,G:Yg,T:tc,h:vg,u:Og,m:_g,i:Mg,Na:Rg,Oa:Qg,Pa:Fg,La:ic,Ma:ac,Pb:sc,eb:Ng,cb:qg,Y:Lg,qb:jg,la:Vg,bb:Hg,fb:Kg,$a:Wg,Wb:Zg,N:zg,gb:$g,X:Jg,Ub:Xg,nb:CA,C:bA,ra:tl,qa:Al,pb:rl,W:ps,v:DI,mb:CI,lb:bI,kb:EI,ob:TI,jb:kI,ib:GI,hb:xI,Ua:Km,Va:Wm,Ia:sr,V:Zm,na:$m,Ra:Jm,ma:Xm,Cb:zD,xa:OD,Db:FD,ya:vD,F:ID,e:cD,s:sD,x:aD,B:BD,Fb:xD,ba:GD,D:lD,za:SD,$:_D,ga:kD,Gb:TD,Hb:ED,Ba:DD,Aa:bD,Ib:CD,wa:QD,aa:YD,d:oD,A:gD,r:uD,Bb:ND,t:fD,y:PD,H:dD,E:mD,K:yD,R:MD,ia:wD,_:RD,Jb:pD,Kb:hD,g:YI,a:KA,Nb:Rt,Eb:vI,ha:OI,O:_I,pa:MI,Lb:RI,ta:QI,Q:FI,yb:zI,zb:NI,ua:HI,ea:UI,P:qI,Ea:LI,va:jI,Z:VI,wb:KI,Zb:WI,S:ZI,Ab:$I,tb:JI,ub:eD,vb:tD,fa:AD,xb:rD,Mb:nD}}}async function Je(){function d(P,G){var v=dr=P.exports;P={};for(let[z,H]of Object.entries(v))typeof H=="function"?(v=Ko(H),P[z]=v):P[z]=H;return dr=P,dr=function(){var z=dr,H=re=>Qe=>re(Qe)>>>0,Z=re=>()=>re()>>>0;return(z=Object.assign({},z)).$b=H(z.$b),z.Cc=Z(z.Cc),z.Ec=H(z.Ec),z.rd=(re=>(Qe,Ue)=>re(Qe,Ue)>>>0)(z.rd),z.wd=H(z.wd),z.xd=Z(z.xd),z.Bd=H(z.Bd),z}(),Ra.push(dr.id),eh=(P=dr).$b,th=P.ac,e._OrtInit=P.bc,e._OrtGetLastError=P.cc,e._OrtCreateSessionOptions=P.dc,e._OrtAppendExecutionProvider=P.ec,e._OrtAddFreeDimensionOverride=P.fc,e._OrtAddSessionConfigEntry=P.gc,e._OrtReleaseSessionOptions=P.hc,e._OrtCreateSession=P.ic,e._OrtReleaseSession=P.jc,e._OrtGetInputOutputCount=P.kc,e._OrtGetInputOutputMetadata=P.lc,e._OrtFree=P.mc,e._OrtCreateTensor=P.nc,e._OrtGetTensorData=P.oc,e._OrtReleaseTensor=P.pc,e._OrtCreateRunOptions=P.qc,e._OrtAddRunConfigEntry=P.rc,e._OrtReleaseRunOptions=P.sc,e._OrtCreateBinding=P.tc,e._OrtBindInput=P.uc,e._OrtBindOutput=P.vc,e._OrtClearBoundOutputs=P.wc,e._OrtReleaseBinding=P.xc,e._OrtRunWithBinding=P.yc,e._OrtRun=P.zc,e._OrtEndProfiling=P.Ac,al=e._OrtGetWebGpuDevice=P.Bc,cc=P.Cc,EA=e._free=P.Dc,Si=e._malloc=P.Ec,Ah=e._wgpuBufferRelease=P.Fc,rh=e._wgpuCreateInstance=P.Gc,nh=P.Hc,ih=P.Ic,ah=P.Jc,sh=P.Kc,oh=P.Lc,ch=P.Pc,uh=P.Zc,gh=P._c,lh=P.$c,sl=P.bd,ol=P.cd,cl=P.dd,ul=P.ed,ws=P.fd,gl=P.gd,dh=P.hd,ll=P.kd,fh=P.ld,mh=P.md,hh=P.nd,dl=P.od,ph=P.pd,wh=P.qd,fl=P.rd,ve=P.sd,Bs=P.td,Bh=P.ud,fe=P.vd,uc=P.wd,me=P.xd,Ph=P.yd,ml=P.zd,yh=P.Ad,Ih=P.Bd,Dh=P.Cd,hl=P.Dd,Ch=P.Ed,bh=P.Fd,Eh=P.Gd,Th=P.Hd,kh=P.Id,Gh=P.Jd,xh=P.Kd,Sh=P.Ld,Yh=P.Md,vh=P.Nd,Oh=P.Od,_h=P.Pd,Mh=P.Qd,Rh=P.Rd,Qh=P.Td,Fh=P.Ud,zh=P.Vd,Nh=P.Wd,Hh=P.Yd,Uh=P.Zd,qh=P._d,Lh=P.$d,jh=P.ae,Vh=P.oe,Kh=P.pe,Wh=P.qe,Zh=P.re,$h=P.se,Jh=P.te,Xh=P.ue,ep=P.ve,tp=P.we,Ap=P.xe,rp=P.ye,np=P.Ye,ip=P.Ze,ap=P._e,sp=P.$e,l=G,dr}var m,B=pA();return e.instantiateWasm?new Promise(P=>{e.instantiateWasm(B,(G,v)=>{P(d(G,v))})}):n?d(new WebAssembly.Instance(l,pA()),l):(ae??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.asyncify.wasm",g):g+"ort-wasm-simd-threaded.asyncify.wasm":new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href,m=await async function(P){var G=ae;if(!u&&!S(G))try{var v=fetch(G,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(v,P)}catch(z){E(`wasm streaming compile failed: ${z}`),E("falling back to ArrayBuffer instantiation")}return async function(z,H){try{var Z=await async function(re){if(!u)try{var Qe=await i(re);return new Uint8Array(Qe)}catch{}if(re==ae&&u)re=new Uint8Array(u);else{if(!s)throw"both async and sync fetching of the wasm failed";re=s(re)}return re}(z);return await WebAssembly.instantiate(Z,H)}catch(re){E(`failed to asynchronously prepare wasm: ${re}`),$e(re)}}(G,P)}(B),d(m.instance,m.module))}class qe{name="ExitStatus";constructor(m){this.message=`Program terminated with exit(${m})`,this.status=m}}var ut=d=>{d.terminate(),d.onmessage=()=>{}},Be=[],se=0,ue=null,Yt=d=>{Gt.length==0&&(Te(),Fa(Gt[0]));var m=Gt.pop();if(!m)return 6;Rr.push(m),VA[d.Nc]=m,m.Nc=d.Nc;var B={Oc:"run",ge:d.fe,Wc:d.Wc,Nc:d.Nc};return m.postMessage(B,d.Yc),0},Se=0,Ne=(d,m,...B)=>{var P,G=16*B.length,v=me(),z=uc(G),H=z>>>3;for(P of B)typeof P=="bigint"?((k(),Ae)[H++>>>0]=1n,(k(),Ae)[H++>>>0]=P):((k(),Ae)[H++>>>0]=0n,(k(),pe)[H++>>>0]=P);return d=mh(d,0,G,z,m),fe(v),d};function Rt(d){if(n)return Ne(0,1,d);if(f=d,!(0<Se)){for(var m of Rr)ut(m);for(m of Gt)ut(m);Gt=[],Rr=[],VA={},x=!0}o(0,new qe(d))}function pt(d){if(n)return Ne(1,0,d);sr(d)}var sr=d=>{if(f=d,n)throw pt(d),"unwind";Rt(d)},Gt=[],Rr=[],Ra=[],VA={},Qa=d=>{var m=d.Nc;delete VA[m],Gt.push(d),Rr.splice(Rr.indexOf(d),1),d.Nc=0,hh(m)};function wA(){Ra.forEach(d=>d())}var Fa=d=>new Promise(m=>{d.onmessage=G=>{var v=G.data;if(G=v.Oc,v.Vc&&v.Vc!=cc()){var z=VA[v.Vc];z?z.postMessage(v,v.Yc):E(`Internal error! Worker sent a message "${G}" to target pthread ${v.Vc}, but that thread no longer exists!`)}else G==="checkMailbox"?Ei():G==="spawnThread"?Yt(v):G==="cleanupThread"?yt(()=>{Qa(VA[v.he])}):G==="loaded"?(d.loaded=!0,m(d)):v.target==="setimmediate"?d.postMessage(v):G==="uncaughtException"?d.onerror(v.error):G==="callHandler"?e[v.be](...v.args):G&&E(`worker sent an unknown command ${G}`)},d.onerror=G=>{throw E(`worker sent an error! ${G.filename}:${G.lineno}: ${G.message}`),G};var B,P=[];for(B of[])e.propertyIsEnumerable(B)&&P.push(B);d.postMessage({Oc:"load",ce:P,ie:KA,je:l})});function Te(){var d=new Worker((()=>{let m=URL;return LA.url>"file:"&&LA.url<"file;"?new m("ort.webgpu.bundle.min.mjs",LA.url):new URL(LA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Gt.push(d)}var KA,hi=(d,m)=>{Se=0,d=hl(d,m),0<Se?f=d:dl(d)},or=[],pi=0,at=d=>-9007199254740992>d||9007199254740992<d?NaN:Number(d);function dg(d){var m=new za(d>>>=0);return(k(),N)[m.Qc+12>>>0]==0&&(wi(m,!0),pi--),Bi(m,!1),or.push(m),Ih(d)}var cr=0,_o=()=>{ve(0,0);var d=or.pop();Ph(d.Xc),cr=0};function wi(d,m){m=m?1:0,(k(),N)[d.Qc+12>>>0]=m}function Bi(d,m){m=m?1:0,(k(),N)[d.Qc+13>>>0]=m}class za{constructor(m){this.Xc=m,this.Qc=m-24}}var Na=d=>{var m=cr;if(!m)return Bs(0),0;var B=new za(m);(k(),_)[B.Qc+16>>>2>>>0]=m;var P=(k(),_)[B.Qc+4>>>2>>>0];if(!P)return Bs(0),m;for(var G of d){if(G===0||G===P)break;if(yh(G,P,B.Qc+16))return Bs(G),m}return Bs(P),m};function fg(){return Na([])}function mg(d){return Na([d>>>0])}function hg(d,m,B,P){return Na([d>>>0,m>>>0,B>>>0,P>>>0])}var pg=()=>{var d=or.pop();d||$e("no exception to throw");var m=d.Xc;throw(k(),N)[d.Qc+13>>>0]==0&&(or.push(d),Bi(d,!0),wi(d,!1),pi++),ml(m),cr=m};function Mo(d,m,B){var P=new za(d>>>=0);throw m>>>=0,B>>>=0,(k(),_)[P.Qc+16>>>2>>>0]=0,(k(),_)[P.Qc+4>>>2>>>0]=m,(k(),_)[P.Qc+8>>>2>>>0]=B,ml(d),pi++,cr=d}var Ro=()=>pi;function Qo(d,m,B,P){return n?Ne(2,1,d,m,B,P):Ha(d,m,B,P)}function Ha(d,m,B,P){if(d>>>=0,m>>>=0,B>>>=0,P>>>=0,!globalThis.SharedArrayBuffer)return 6;var G=[];return n&&G.length===0?Qo(d,m,B,P):(d={fe:B,Nc:d,Wc:P,Yc:G},n?(d.Oc="spawnThread",postMessage(d,G),0):Yt(d))}function Fo(d){throw cr||=d>>>0,cr}var Pi=globalThis.TextDecoder&&new TextDecoder,Ua=(d,m,B,P)=>{if(B=m+B,P)return B;for(;d[m]&&!(m>=B);)++m;return m},qa=(d,m=0,B,P)=>{if(16<(B=Ua(d,m>>>=0,B,P))-m&&d.buffer&&Pi)return Pi.decode(d.buffer instanceof ArrayBuffer?d.subarray(m,B):d.slice(m,B));for(P="";m<B;){var G=d[m++];if(128&G){var v=63&d[m++];if((224&G)==192)P+=String.fromCharCode((31&G)<<6|v);else{var z=63&d[m++];65536>(G=(240&G)==224?(15&G)<<12|v<<6|z:(7&G)<<18|v<<12|z<<6|63&d[m++])?P+=String.fromCharCode(G):(G-=65536,P+=String.fromCharCode(55296|G>>10,56320|1023&G))}}else P+=String.fromCharCode(G)}return P},ur=(d,m,B)=>(d>>>=0)?qa((k(),V),d,m,B):"";function La(d,m,B){return n?Ne(3,1,d,m,B):0}function ja(d,m){if(n)return Ne(4,1,d,m)}function Va(d,m){if(n)return Ne(5,1,d,m)}function Ka(d,m,B){if(n)return Ne(6,1,d,m,B)}function Wa(d,m,B){return n?Ne(7,1,d,m,B):0}function Za(d,m){if(n)return Ne(8,1,d,m)}function $a(d,m,B){if(n)return Ne(9,1,d,m,B)}function Ja(d,m,B,P){if(n)return Ne(10,1,d,m,B,P)}function Xa(d,m,B,P){if(n)return Ne(11,1,d,m,B,P)}function es(d,m,B,P){if(n)return Ne(12,1,d,m,B,P)}function zo(d){if(n)return Ne(13,1,d)}function No(d,m){if(n)return Ne(14,1,d,m)}function yi(d,m,B){if(n)return Ne(15,1,d,m,B)}var wg=()=>$e(""),Qt=d=>{d>>>=0;for(var m="";;){var B=(k(),V)[d++>>>0];if(!B)return m;m+=String.fromCharCode(B)}},Qr={},ts={},As={},Fr=class extends Error{constructor(d){super(d),this.name="BindingError"}};function BA(d,m,B={}){return function(P,G,v={}){var z=G.name;if(!P)throw new Fr(`type "${z}" must have a positive integer typeid pointer`);if(ts.hasOwnProperty(P)){if(v.de)return;throw new Fr(`Cannot register type '${z}' twice`)}ts[P]=G,delete As[P],Qr.hasOwnProperty(P)&&(G=Qr[P],delete Qr[P],G.forEach(H=>H()))}(d,m,B)}var Ho=(d,m,B)=>{switch(m){case 1:return B?P=>(k(),N)[P>>>0]:P=>(k(),V)[P>>>0];case 2:return B?P=>(k(),F)[P>>>1>>>0]:P=>(k(),K)[P>>>1>>>0];case 4:return B?P=>(k(),L)[P>>>2>>>0]:P=>(k(),_)[P>>>2>>>0];case 8:return B?P=>(k(),Ae)[P>>>3>>>0]:P=>(k(),De)[P>>>3>>>0];default:throw new TypeError(`invalid integer width (${m}): ${d}`)}};function Bg(d,m,B,P,G){d>>>=0,B>>>=0,m=Qt(m>>>0);let v=z=>z;if(P=P===0n){let z=8*B;v=H=>BigInt.asUintN(z,H),G=v(G)}BA(d,{name:m,Mc:v,Sc:(z,H)=>(typeof H=="number"&&(H=BigInt(H)),H),Rc:Ho(m,B,!P),Tc:null})}function Pg(d,m,B,P){BA(d>>>=0,{name:m=Qt(m>>>0),Mc:function(G){return!!G},Sc:function(G,v){return v?B:P},Rc:function(G){return this.Mc((k(),V)[G>>>0])},Tc:null})}var rs=[],WA=[0,1,,1,null,1,!0,1,!1,1];function Ii(d){9<(d>>>=0)&&--WA[d+1]==0&&(WA[d]=void 0,rs.push(d))}var Ft=d=>{if(!d)throw new Fr(`Cannot use deleted val. handle = ${d}`);return WA[d]},Wt=d=>{switch(d){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let m=rs.pop()||WA.length;return WA[m]=d,WA[m+1]=1,m}};function Di(d){return this.Mc((k(),_)[d>>>2>>>0])}var Uo={name:"emscripten::val",Mc:d=>{var m=Ft(d);return Ii(d),m},Sc:(d,m)=>Wt(m),Rc:Di,Tc:null};function hn(d){return BA(d>>>0,Uo)}var yg=(d,m)=>{switch(m){case 4:return function(B){return this.Mc((k(),W)[B>>>2>>>0])};case 8:return function(B){return this.Mc((k(),pe)[B>>>3>>>0])};default:throw new TypeError(`invalid float width (${m}): ${d}`)}};function qo(d,m,B){B>>>=0,BA(d>>>=0,{name:m=Qt(m>>>0),Mc:P=>P,Sc:(P,G)=>G,Rc:yg(m,B),Tc:null})}function gr(d,m,B,P,G){d>>>=0,B>>>=0,m=Qt(m>>>0);let v=H=>H;if(P===0){var z=32-8*B;v=H=>H<<z>>>z,G=v(G)}BA(d,{name:m,Mc:v,Sc:(H,Z)=>Z,Rc:Ho(m,B,P!==0),Tc:null})}function Ig(d,m,B){function P(v){var z=(k(),_)[v>>>2>>>0];return v=(k(),_)[v+4>>>2>>>0],new G((k(),N).buffer,v,z)}var G=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][m];BA(d>>>=0,{name:B=Qt(B>>>0),Mc:P,Rc:P},{de:!0})}var PA=(d,m,B)=>{var P=(k(),V);if(m>>>=0,0<B){var G=m;B=m+B-1;for(var v=0;v<d.length;++v){var z=d.codePointAt(v);if(127>=z){if(m>=B)break;P[m++>>>0]=z}else if(2047>=z){if(m+1>=B)break;P[m++>>>0]=192|z>>6,P[m++>>>0]=128|63&z}else if(65535>=z){if(m+2>=B)break;P[m++>>>0]=224|z>>12,P[m++>>>0]=128|z>>6&63,P[m++>>>0]=128|63&z}else{if(m+3>=B)break;P[m++>>>0]=240|z>>18,P[m++>>>0]=128|z>>12&63,P[m++>>>0]=128|z>>6&63,P[m++>>>0]=128|63&z,v++}}P[m>>>0]=0,d=m-G}else d=0;return d},yA=d=>{for(var m=0,B=0;B<d.length;++B){var P=d.charCodeAt(B);127>=P?m++:2047>=P?m+=2:55296<=P&&57343>=P?(m+=4,++B):m+=3}return m};function Dg(d,m){BA(d>>>=0,{name:m=Qt(m>>>0),Mc(B){var P=(k(),_)[B>>>2>>>0];return P=ur(B+4,P,!0),EA(B),P},Sc(B,P){P instanceof ArrayBuffer&&(P=new Uint8Array(P));var G=typeof P=="string";if(!(G||ArrayBuffer.isView(P)&&P.BYTES_PER_ELEMENT==1))throw new Fr("Cannot pass non-string to std::string");var v=G?yA(P):P.length,z=Si(4+v+1),H=z+4;return(k(),_)[z>>>2>>>0]=v,G?PA(P,H,v+1):(k(),V).set(P,H>>>0),B!==null&&B.push(EA,z),z},Rc:Di,Tc(B){EA(B)}})}var Ci=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Cg=(d,m,B)=>{if(d>>>=1,16<(m=Ua((k(),K),d,m/2,B))-d&&Ci)return Ci.decode((k(),K).slice(d,m));for(B="";d<m;++d){var P=(k(),K)[d>>>0];B+=String.fromCharCode(P)}return B},bg=(d,m,B)=>{if(B??=2147483647,2>B)return 0;var P=m;B=(B-=2)<2*d.length?B/2:d.length;for(var G=0;G<B;++G){var v=d.charCodeAt(G);(k(),F)[m>>>1>>>0]=v,m+=2}return(k(),F)[m>>>1>>>0]=0,m-P},Eg=d=>2*d.length,Tg=(d,m,B)=>{var P="";d>>>=2;for(var G=0;!(G>=m/4);G++){var v=(k(),_)[d+G>>>0];if(!v&&!B)break;P+=String.fromCodePoint(v)}return P},kg=(d,m,B)=>{if(m>>>=0,B??=2147483647,4>B)return 0;var P=m;B=P+B-4;for(var G=0;G<d.length;++G){var v=d.codePointAt(G);if(65535<v&&G++,(k(),L)[m>>>2>>>0]=v,(m+=4)+4>B)break}return(k(),L)[m>>>2>>>0]=0,m-P},Gg=d=>{for(var m=0,B=0;B<d.length;++B)65535<d.codePointAt(B)&&B++,m+=4;return m};function lr(d,m,B){if(d>>>=0,m>>>=0,B=Qt(B>>>=0),m===2)var P=Cg,G=bg,v=Eg;else P=Tg,G=kg,v=Gg;BA(d,{name:B,Mc:z=>{var H=(k(),_)[z>>>2>>>0];return H=P(z+4,H*m,!0),EA(z),H},Sc:(z,H)=>{if(typeof H!="string")throw new Fr(`Cannot pass non-string to C++ string type ${B}`);var Z=v(H),re=Si(4+Z+m);return(k(),_)[re>>>2>>>0]=Z/m,G(H,re+4,Z+m),z!==null&&z.push(EA,re),re},Rc:Di,Tc(z){EA(z)}})}function ns(d,m){BA(d>>>=0,{ee:!0,name:m=Qt(m>>>0),Mc:()=>{},Sc:()=>{}})}function bi(d){ll(d>>>0,!r,1,!A,131072,!1),wA()}var yt=d=>{if(!x)try{if(d(),!(0<Se))try{n?cc()&&dl(f):sr(f)}catch(m){m instanceof qe||m=="unwind"||o(0,m)}}catch(m){m instanceof qe||m=="unwind"||o(0,m)}},xg=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function zr(d){d>>>=0,xg||(Atomics.waitAsync((k(),L),d>>>2,d).value.then(Ei),d+=128,Atomics.store((k(),L),d>>>2,1))}var Ei=()=>yt(()=>{var d=cc();d&&(zr(d),wh())});function Sg(d,m){(d>>>=0)==m>>>0?setTimeout(Ei):n?postMessage({Vc:d,Oc:"checkMailbox"}):(d=VA[d])&&d.postMessage({Oc:"checkMailbox"})}var pn=[];function is(d,m,B,P,G){for(m>>>=0,G>>>=0,pn.length=0,B=G>>>3,P=G+P>>>3;B<P;){var v;v=(k(),Ae)[B++>>>0]?(k(),Ae)[B++>>>0]:(k(),pe)[B++>>>0],pn.push(v)}return(m?pl[m]:iD[d])(...pn)}var Lo=()=>{Se=0};function jo(d){d>>>=0,n?postMessage({Oc:"cleanupThread",he:d}):Qa(VA[d])}function Vo(d){}var wn=d=>{try{d()}catch(m){$e(m)}};function Ko(d){var m=(...B)=>{Ti.push(d);try{return d(...B)}finally{x||(Ti.pop(),oA&&IA===1&&Ti.length===0&&(IA=0,Se+=1,wn(ip),typeof Fibers<"u"&&Fibers.Be()))}};return os.set(d,m),m}var IA=0,oA=null,as=0,Ti=[],Nr=new Map,ss=new Map,os=new Map,cs=0,ki=null,Wo=[],us=d=>function(m){if(!x){if(IA===0){var B=!1,P=!1;m((G=0)=>{if(!x&&(as=G,B=!0,P)){IA=2,wn(()=>ap(oA)),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.resume(),G=!1;try{var v=function(){var Z=(k(),L)[oA+8>>>2>>>0];return Z=ss.get(Z),Z=os.get(Z),--Se,Z()}()}catch(Z){v=Z,G=!0}var z=!1;if(!oA){var H=ki;H&&(ki=null,(G?H.reject:H.resolve)(v),z=!0)}if(G&&!z)throw v}}),P=!0,B||(IA=1,oA=function(){var G=Si(65548),v=G+12;if((k(),_)[G>>>2>>>0]=v,(k(),_)[G+4>>>2>>>0]=v+65536,v=Ti[0],!Nr.has(v)){var z=cs++;Nr.set(v,z),ss.set(z,v)}return v=Nr.get(v),(k(),L)[G+8>>>2>>>0]=v,G}(),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.pause(),wn(()=>np(oA)))}else IA===2?(IA=0,wn(sp),EA(oA),oA=null,Wo.forEach(yt)):$e(`invalid state: ${IA}`);return as}}(m=>{d().then(m)});function gs(d){return d>>>=0,us(async()=>{var m=await Ft(d);return Wt(m)})}var Gi=[],Zo=d=>{var m=Gi.length;return Gi.push(d),m},ke=(d,m)=>{for(var B=Array(d),P=0;P<d;++P){var G=P,v=(k(),_)[m+4*P>>>2>>>0],z=ts[v];if(z===void 0)throw d=`parameter ${P}`,v=eh(v),m=Qt(v),EA(v),new Fr(`${d} has unknown type ${m}`);B[G]=z}return B},Bn=(d,m,B)=>{var P=[];return d=d(P,B),P.length&&((k(),_)[m>>>2>>>0]=Wt(P)),d},$o={},Pe=d=>{var m=$o[d];return m===void 0?Qt(d):m};function ls(d,m,B){var[P,...G]=ke(d,m>>>0);m=P.Sc.bind(P);var v=G.map(Z=>Z.Rc.bind(Z));d--;var z={toValue:Ft};switch(d=v.map((Z,re)=>{var Qe=`argFromPtr${re}`;return z[Qe]=Z,`${Qe}(args${re?"+"+8*re:""})`}),B){case 0:var H="toValue(handle)";break;case 2:H="new (toValue(handle))";break;case 3:H="";break;case 1:z.getStringOrSymbol=Pe,H="toValue(handle)[getStringOrSymbol(methodName)]"}return H+=`(${d})`,P.ee||(z.toReturnWire=m,z.emval_returnValue=Bn,H=`return emval_returnValue(toReturnWire, destructorsRef, ${H})`),H=`return function (handle, methodName, destructorsRef, args) {
8
+ (()=>{var LD=Object.defineProperty;var zt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof require<"u"?require:e)[A]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var jD=(t,e)=>()=>(t&&(e=t(t=0)),e);var cp=(t,e)=>{for(var A in e)LD(t,A,{get:e[A],enumerable:!0})};var BI={};cp(BI,{InferenceSession:()=>Tm,TRACE:()=>og,TRACE_EVENT_BEGIN:()=>dn,TRACE_EVENT_END:()=>fn,TRACE_FUNC_BEGIN:()=>ci,TRACE_FUNC_END:()=>ui,Tensor:()=>jA,default:()=>PG,env:()=>ct,registerBackend:()=>oi});async function e0(t={}){var e=t,A=!!globalThis.window,r=!!globalThis.WorkerGlobalScope,n=r&&self.name?.startsWith("em-pthread");e.mountExternalData=(d,m)=>{d.startsWith("./")&&(d=d.substring(2)),(e.Uc||(e.Uc=new Map)).set(d,m)},e.unmountExternalData=()=>{delete e.Uc},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;let a=()=>{let d=m=>(...B)=>{let P=oA;return B=m(...B),oA!=P?new Promise((G,v)=>{ki={resolve:G,reject:v}}):B};(()=>{for(let m of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])e[m]=d(e[m])})(),typeof jsepRunAsync<"u"&&(e._OrtRun=jsepRunAsync(e._OrtRun),e._OrtRunWithBinding=jsepRunAsync(e._OrtRunWithBinding)),a=void 0};e.asyncInit=()=>{a?.()};var i,s,o=(d,m)=>{throw m},c=LA.url,g="";if(A||r){try{g=new URL(".",c).href}catch{}r&&(s=d=>{var m=new XMLHttpRequest;return m.open("GET",d,!1),m.responseType="arraybuffer",m.send(null),new Uint8Array(m.response)}),i=async d=>{if(S(d))return new Promise((B,P)=>{var G=new XMLHttpRequest;G.open("GET",d,!0),G.responseType="arraybuffer",G.onload=()=>{G.status==200||G.status==0&&G.response?B(G.response):P(G.status)},G.onerror=P,G.send(null)});var m=await fetch(d,{credentials:"same-origin"});if(m.ok)return m.arrayBuffer();throw Error(m.status+" : "+m.url)}}var u,l,f,p,h,y,w=console.log.bind(console),D=console.error.bind(console),b=w,E=D,x=!1,S=d=>d.startsWith("file://");function k(){KA.buffer!=N.buffer&&et()}if(n){let d=function(m){try{var B=m.data,P=B.Oc;if(P==="load"){let G=[];self.onmessage=v=>G.push(v),y=()=>{postMessage({Oc:"loaded"});for(let v of G)d(v);self.onmessage=d};for(let v of B.ce)e[v]&&!e[v].proxy||(e[v]=(...z)=>{postMessage({Oc:"callHandler",be:v,args:z})},v=="print"&&(b=e[v]),v=="printErr"&&(E=e[v]));KA=B.ie,et(),l=B.je,Je(),gc()}else if(P==="run"){(function(G){var v=(k(),_)[G+52>>>2>>>0];G=(k(),_)[G+56>>>2>>>0],Ph(v,v-G),fe(v)})(B.Nc),ll(B.Nc,0,0,1,0,0),wA(),zr(B.Nc),M||(Ah(),M=!0);try{hi(B.ge,B.Wc)}catch(G){if(G!="unwind")throw G}}else B.target!=="setimmediate"&&(P==="checkMailbox"?M&&Ei():P&&(E(`worker: received unknown command ${P}`),E(B)))}catch(G){throw mh(),G}};var R=d,M=!1;self.onunhandledrejection=m=>{throw m.reason||m},self.onmessage=d}var N,V,F,K,L,_,W,pe,Ae,De,ae,we=!1;function et(){var d=KA.buffer;e.HEAP8=N=new Int8Array(d),F=new Int16Array(d),e.HEAPU8=V=new Uint8Array(d),K=new Uint16Array(d),e.HEAP32=L=new Int32Array(d),e.HEAPU32=_=new Uint32Array(d),W=new Float32Array(d),pe=new Float64Array(d),Ae=new BigInt64Array(d),De=new BigUint64Array(d)}function tt(){we=!0,n?y():dr._b()}function $e(d){throw E(d="Aborted("+d+")"),x=!0,d=new WebAssembly.RuntimeError(d+". Build with -sASSERTIONS for more info."),h?.(d),d}function pA(){return{a:{f:dg,J:_o,k:fg,p:mg,l:hg,sa:pg,b:Mo,ca:Ro,Ja:Ha,q:Fo,da:La,Za:ja,Fa:Va,Ha:Ka,_a:Wa,Xa:Za,Qa:$a,Wa:Ja,oa:Xa,Ga:es,Xb:zo,Ya:No,Yb:yi,db:wg,Da:Bg,Sb:Pg,Qb:hn,Ca:qo,M:gr,I:Ig,Rb:Dg,ja:lr,Tb:ns,Ta:bi,Vb:Sg,Ka:is,Ob:Lo,ka:jo,Sa:zr,ab:Vo,U:gs,n:ls,c:Ii,rb:Ce,w:Jo,L:ds,z:Xo,j:ec,o:fs,sb:ZA,G:Yg,T:tc,h:vg,u:Og,m:_g,i:Mg,Na:Rg,Oa:Qg,Pa:Fg,La:ic,Ma:ac,Pb:sc,eb:Ng,cb:qg,Y:Lg,qb:jg,la:Vg,bb:Hg,fb:Kg,$a:Wg,Wb:Zg,N:zg,gb:$g,X:Jg,Ub:Xg,nb:CA,C:bA,ra:tl,qa:Al,pb:rl,W:ps,v:bI,mb:EI,lb:TI,kb:kI,ob:GI,jb:xI,ib:SI,hb:YI,Ua:Wm,Va:Zm,Ia:sr,V:$m,na:Jm,Ra:Xm,ma:eh,Cb:HD,xa:MD,Db:ND,ya:_D,F:CD,e:gD,s:cD,x:oD,B:yD,Fb:YD,ba:SD,D:fD,za:vD,$:RD,ga:xD,Gb:GD,Hb:kD,Ba:bD,Aa:TD,Ib:ED,wa:zD,aa:OD,d:uD,A:dD,r:lD,Bb:UD,t:hD,y:ID,H:mD,E:pD,K:DD,R:QD,ia:PD,_:FD,Jb:BD,Kb:wD,g:OI,a:KA,Nb:Rt,Eb:_I,ha:MI,O:RI,pa:QI,Lb:FI,ta:zI,Q:NI,yb:HI,zb:UI,ua:qI,ea:LI,P:jI,Ea:VI,va:KI,Z:WI,wb:ZI,Zb:$I,S:JI,Ab:XI,tb:eD,ub:AD,vb:rD,fa:nD,xb:iD,Mb:aD}}}async function Je(){function d(P,G){var v=dr=P.exports;P={};for(let[z,H]of Object.entries(v))typeof H=="function"?(v=Ko(H),P[z]=v):P[z]=H;return dr=P,dr=function(){var z=dr,H=re=>Qe=>re(Qe)>>>0,Z=re=>()=>re()>>>0;return(z=Object.assign({},z)).$b=H(z.$b),z.Cc=Z(z.Cc),z.Ec=H(z.Ec),z.rd=(re=>(Qe,Ue)=>re(Qe,Ue)>>>0)(z.rd),z.wd=H(z.wd),z.xd=Z(z.xd),z.Bd=H(z.Bd),z}(),Ra.push(dr.id),th=(P=dr).$b,Ah=P.ac,e._OrtInit=P.bc,e._OrtGetLastError=P.cc,e._OrtCreateSessionOptions=P.dc,e._OrtAppendExecutionProvider=P.ec,e._OrtAddFreeDimensionOverride=P.fc,e._OrtAddSessionConfigEntry=P.gc,e._OrtReleaseSessionOptions=P.hc,e._OrtCreateSession=P.ic,e._OrtReleaseSession=P.jc,e._OrtGetInputOutputCount=P.kc,e._OrtGetInputOutputMetadata=P.lc,e._OrtFree=P.mc,e._OrtCreateTensor=P.nc,e._OrtGetTensorData=P.oc,e._OrtReleaseTensor=P.pc,e._OrtCreateRunOptions=P.qc,e._OrtAddRunConfigEntry=P.rc,e._OrtReleaseRunOptions=P.sc,e._OrtCreateBinding=P.tc,e._OrtBindInput=P.uc,e._OrtBindOutput=P.vc,e._OrtClearBoundOutputs=P.wc,e._OrtReleaseBinding=P.xc,e._OrtRunWithBinding=P.yc,e._OrtRun=P.zc,e._OrtEndProfiling=P.Ac,al=e._OrtGetWebGpuDevice=P.Bc,cc=P.Cc,EA=e._free=P.Dc,Si=e._malloc=P.Ec,rh=e._wgpuBufferRelease=P.Fc,nh=e._wgpuCreateInstance=P.Gc,ih=P.Hc,ah=P.Ic,sh=P.Jc,oh=P.Kc,ch=P.Lc,uh=P.Pc,gh=P.Zc,lh=P._c,dh=P.$c,sl=P.bd,ol=P.cd,cl=P.dd,ul=P.ed,ws=P.fd,gl=P.gd,fh=P.hd,ll=P.kd,mh=P.ld,hh=P.md,ph=P.nd,dl=P.od,wh=P.pd,Bh=P.qd,fl=P.rd,ve=P.sd,Bs=P.td,Ph=P.ud,fe=P.vd,uc=P.wd,me=P.xd,yh=P.yd,ml=P.zd,Ih=P.Ad,Dh=P.Bd,Ch=P.Cd,hl=P.Dd,bh=P.Ed,Eh=P.Fd,Th=P.Gd,kh=P.Hd,Gh=P.Id,xh=P.Jd,Sh=P.Kd,Yh=P.Ld,vh=P.Md,Oh=P.Nd,_h=P.Od,Mh=P.Pd,Rh=P.Qd,Qh=P.Rd,Fh=P.Td,zh=P.Ud,Nh=P.Vd,Hh=P.Wd,Uh=P.Yd,qh=P.Zd,Lh=P._d,jh=P.$d,Vh=P.ae,Kh=P.oe,Wh=P.pe,Zh=P.qe,$h=P.re,Jh=P.se,Xh=P.te,ep=P.ue,tp=P.ve,Ap=P.we,rp=P.xe,np=P.ye,ip=P.Ye,ap=P.Ze,sp=P._e,op=P.$e,l=G,dr}var m,B=pA();return e.instantiateWasm?new Promise(P=>{e.instantiateWasm(B,(G,v)=>{P(d(G,v))})}):n?d(new WebAssembly.Instance(l,pA()),l):(ae??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.asyncify.wasm",g):g+"ort-wasm-simd-threaded.asyncify.wasm":new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href,m=await async function(P){var G=ae;if(!u&&!S(G))try{var v=fetch(G,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(v,P)}catch(z){E(`wasm streaming compile failed: ${z}`),E("falling back to ArrayBuffer instantiation")}return async function(z,H){try{var Z=await async function(re){if(!u)try{var Qe=await i(re);return new Uint8Array(Qe)}catch{}if(re==ae&&u)re=new Uint8Array(u);else{if(!s)throw"both async and sync fetching of the wasm failed";re=s(re)}return re}(z);return await WebAssembly.instantiate(Z,H)}catch(re){E(`failed to asynchronously prepare wasm: ${re}`),$e(re)}}(G,P)}(B),d(m.instance,m.module))}class qe{name="ExitStatus";constructor(m){this.message=`Program terminated with exit(${m})`,this.status=m}}var ut=d=>{d.terminate(),d.onmessage=()=>{}},Be=[],se=0,ue=null,Yt=d=>{Gt.length==0&&(Te(),Fa(Gt[0]));var m=Gt.pop();if(!m)return 6;Rr.push(m),VA[d.Nc]=m,m.Nc=d.Nc;var B={Oc:"run",ge:d.fe,Wc:d.Wc,Nc:d.Nc};return m.postMessage(B,d.Yc),0},Se=0,Ne=(d,m,...B)=>{var P,G=16*B.length,v=me(),z=uc(G),H=z>>>3;for(P of B)typeof P=="bigint"?((k(),Ae)[H++>>>0]=1n,(k(),Ae)[H++>>>0]=P):((k(),Ae)[H++>>>0]=0n,(k(),pe)[H++>>>0]=P);return d=hh(d,0,G,z,m),fe(v),d};function Rt(d){if(n)return Ne(0,1,d);if(f=d,!(0<Se)){for(var m of Rr)ut(m);for(m of Gt)ut(m);Gt=[],Rr=[],VA={},x=!0}o(0,new qe(d))}function pt(d){if(n)return Ne(1,0,d);sr(d)}var sr=d=>{if(f=d,n)throw pt(d),"unwind";Rt(d)},Gt=[],Rr=[],Ra=[],VA={},Qa=d=>{var m=d.Nc;delete VA[m],Gt.push(d),Rr.splice(Rr.indexOf(d),1),d.Nc=0,ph(m)};function wA(){Ra.forEach(d=>d())}var Fa=d=>new Promise(m=>{d.onmessage=G=>{var v=G.data;if(G=v.Oc,v.Vc&&v.Vc!=cc()){var z=VA[v.Vc];z?z.postMessage(v,v.Yc):E(`Internal error! Worker sent a message "${G}" to target pthread ${v.Vc}, but that thread no longer exists!`)}else G==="checkMailbox"?Ei():G==="spawnThread"?Yt(v):G==="cleanupThread"?yt(()=>{Qa(VA[v.he])}):G==="loaded"?(d.loaded=!0,m(d)):v.target==="setimmediate"?d.postMessage(v):G==="uncaughtException"?d.onerror(v.error):G==="callHandler"?e[v.be](...v.args):G&&E(`worker sent an unknown command ${G}`)},d.onerror=G=>{throw E(`worker sent an error! ${G.filename}:${G.lineno}: ${G.message}`),G};var B,P=[];for(B of[])e.propertyIsEnumerable(B)&&P.push(B);d.postMessage({Oc:"load",ce:P,ie:KA,je:l})});function Te(){var d=new Worker((()=>{let m=URL;return LA.url>"file:"&&LA.url<"file;"?new m("ort.webgpu.bundle.min.mjs",LA.url):new URL(LA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Gt.push(d)}var KA,hi=(d,m)=>{Se=0,d=hl(d,m),0<Se?f=d:dl(d)},or=[],pi=0,at=d=>-9007199254740992>d||9007199254740992<d?NaN:Number(d);function dg(d){var m=new za(d>>>=0);return(k(),N)[m.Qc+12>>>0]==0&&(wi(m,!0),pi--),Bi(m,!1),or.push(m),Dh(d)}var cr=0,_o=()=>{ve(0,0);var d=or.pop();yh(d.Xc),cr=0};function wi(d,m){m=m?1:0,(k(),N)[d.Qc+12>>>0]=m}function Bi(d,m){m=m?1:0,(k(),N)[d.Qc+13>>>0]=m}class za{constructor(m){this.Xc=m,this.Qc=m-24}}var Na=d=>{var m=cr;if(!m)return Bs(0),0;var B=new za(m);(k(),_)[B.Qc+16>>>2>>>0]=m;var P=(k(),_)[B.Qc+4>>>2>>>0];if(!P)return Bs(0),m;for(var G of d){if(G===0||G===P)break;if(Ih(G,P,B.Qc+16))return Bs(G),m}return Bs(P),m};function fg(){return Na([])}function mg(d){return Na([d>>>0])}function hg(d,m,B,P){return Na([d>>>0,m>>>0,B>>>0,P>>>0])}var pg=()=>{var d=or.pop();d||$e("no exception to throw");var m=d.Xc;throw(k(),N)[d.Qc+13>>>0]==0&&(or.push(d),Bi(d,!0),wi(d,!1),pi++),ml(m),cr=m};function Mo(d,m,B){var P=new za(d>>>=0);throw m>>>=0,B>>>=0,(k(),_)[P.Qc+16>>>2>>>0]=0,(k(),_)[P.Qc+4>>>2>>>0]=m,(k(),_)[P.Qc+8>>>2>>>0]=B,ml(d),pi++,cr=d}var Ro=()=>pi;function Qo(d,m,B,P){return n?Ne(2,1,d,m,B,P):Ha(d,m,B,P)}function Ha(d,m,B,P){if(d>>>=0,m>>>=0,B>>>=0,P>>>=0,!globalThis.SharedArrayBuffer)return 6;var G=[];return n&&G.length===0?Qo(d,m,B,P):(d={fe:B,Nc:d,Wc:P,Yc:G},n?(d.Oc="spawnThread",postMessage(d,G),0):Yt(d))}function Fo(d){throw cr||=d>>>0,cr}var Pi=globalThis.TextDecoder&&new TextDecoder,Ua=(d,m,B,P)=>{if(B=m+B,P)return B;for(;d[m]&&!(m>=B);)++m;return m},qa=(d,m=0,B,P)=>{if(16<(B=Ua(d,m>>>=0,B,P))-m&&d.buffer&&Pi)return Pi.decode(d.buffer instanceof ArrayBuffer?d.subarray(m,B):d.slice(m,B));for(P="";m<B;){var G=d[m++];if(128&G){var v=63&d[m++];if((224&G)==192)P+=String.fromCharCode((31&G)<<6|v);else{var z=63&d[m++];65536>(G=(240&G)==224?(15&G)<<12|v<<6|z:(7&G)<<18|v<<12|z<<6|63&d[m++])?P+=String.fromCharCode(G):(G-=65536,P+=String.fromCharCode(55296|G>>10,56320|1023&G))}}else P+=String.fromCharCode(G)}return P},ur=(d,m,B)=>(d>>>=0)?qa((k(),V),d,m,B):"";function La(d,m,B){return n?Ne(3,1,d,m,B):0}function ja(d,m){if(n)return Ne(4,1,d,m)}function Va(d,m){if(n)return Ne(5,1,d,m)}function Ka(d,m,B){if(n)return Ne(6,1,d,m,B)}function Wa(d,m,B){return n?Ne(7,1,d,m,B):0}function Za(d,m){if(n)return Ne(8,1,d,m)}function $a(d,m,B){if(n)return Ne(9,1,d,m,B)}function Ja(d,m,B,P){if(n)return Ne(10,1,d,m,B,P)}function Xa(d,m,B,P){if(n)return Ne(11,1,d,m,B,P)}function es(d,m,B,P){if(n)return Ne(12,1,d,m,B,P)}function zo(d){if(n)return Ne(13,1,d)}function No(d,m){if(n)return Ne(14,1,d,m)}function yi(d,m,B){if(n)return Ne(15,1,d,m,B)}var wg=()=>$e(""),Qt=d=>{d>>>=0;for(var m="";;){var B=(k(),V)[d++>>>0];if(!B)return m;m+=String.fromCharCode(B)}},Qr={},ts={},As={},Fr=class extends Error{constructor(d){super(d),this.name="BindingError"}};function BA(d,m,B={}){return function(P,G,v={}){var z=G.name;if(!P)throw new Fr(`type "${z}" must have a positive integer typeid pointer`);if(ts.hasOwnProperty(P)){if(v.de)return;throw new Fr(`Cannot register type '${z}' twice`)}ts[P]=G,delete As[P],Qr.hasOwnProperty(P)&&(G=Qr[P],delete Qr[P],G.forEach(H=>H()))}(d,m,B)}var Ho=(d,m,B)=>{switch(m){case 1:return B?P=>(k(),N)[P>>>0]:P=>(k(),V)[P>>>0];case 2:return B?P=>(k(),F)[P>>>1>>>0]:P=>(k(),K)[P>>>1>>>0];case 4:return B?P=>(k(),L)[P>>>2>>>0]:P=>(k(),_)[P>>>2>>>0];case 8:return B?P=>(k(),Ae)[P>>>3>>>0]:P=>(k(),De)[P>>>3>>>0];default:throw new TypeError(`invalid integer width (${m}): ${d}`)}};function Bg(d,m,B,P,G){d>>>=0,B>>>=0,m=Qt(m>>>0);let v=z=>z;if(P=P===0n){let z=8*B;v=H=>BigInt.asUintN(z,H),G=v(G)}BA(d,{name:m,Mc:v,Sc:(z,H)=>(typeof H=="number"&&(H=BigInt(H)),H),Rc:Ho(m,B,!P),Tc:null})}function Pg(d,m,B,P){BA(d>>>=0,{name:m=Qt(m>>>0),Mc:function(G){return!!G},Sc:function(G,v){return v?B:P},Rc:function(G){return this.Mc((k(),V)[G>>>0])},Tc:null})}var rs=[],WA=[0,1,,1,null,1,!0,1,!1,1];function Ii(d){9<(d>>>=0)&&--WA[d+1]==0&&(WA[d]=void 0,rs.push(d))}var Ft=d=>{if(!d)throw new Fr(`Cannot use deleted val. handle = ${d}`);return WA[d]},Wt=d=>{switch(d){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let m=rs.pop()||WA.length;return WA[m]=d,WA[m+1]=1,m}};function Di(d){return this.Mc((k(),_)[d>>>2>>>0])}var Uo={name:"emscripten::val",Mc:d=>{var m=Ft(d);return Ii(d),m},Sc:(d,m)=>Wt(m),Rc:Di,Tc:null};function hn(d){return BA(d>>>0,Uo)}var yg=(d,m)=>{switch(m){case 4:return function(B){return this.Mc((k(),W)[B>>>2>>>0])};case 8:return function(B){return this.Mc((k(),pe)[B>>>3>>>0])};default:throw new TypeError(`invalid float width (${m}): ${d}`)}};function qo(d,m,B){B>>>=0,BA(d>>>=0,{name:m=Qt(m>>>0),Mc:P=>P,Sc:(P,G)=>G,Rc:yg(m,B),Tc:null})}function gr(d,m,B,P,G){d>>>=0,B>>>=0,m=Qt(m>>>0);let v=H=>H;if(P===0){var z=32-8*B;v=H=>H<<z>>>z,G=v(G)}BA(d,{name:m,Mc:v,Sc:(H,Z)=>Z,Rc:Ho(m,B,P!==0),Tc:null})}function Ig(d,m,B){function P(v){var z=(k(),_)[v>>>2>>>0];return v=(k(),_)[v+4>>>2>>>0],new G((k(),N).buffer,v,z)}var G=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][m];BA(d>>>=0,{name:B=Qt(B>>>0),Mc:P,Rc:P},{de:!0})}var PA=(d,m,B)=>{var P=(k(),V);if(m>>>=0,0<B){var G=m;B=m+B-1;for(var v=0;v<d.length;++v){var z=d.codePointAt(v);if(127>=z){if(m>=B)break;P[m++>>>0]=z}else if(2047>=z){if(m+1>=B)break;P[m++>>>0]=192|z>>6,P[m++>>>0]=128|63&z}else if(65535>=z){if(m+2>=B)break;P[m++>>>0]=224|z>>12,P[m++>>>0]=128|z>>6&63,P[m++>>>0]=128|63&z}else{if(m+3>=B)break;P[m++>>>0]=240|z>>18,P[m++>>>0]=128|z>>12&63,P[m++>>>0]=128|z>>6&63,P[m++>>>0]=128|63&z,v++}}P[m>>>0]=0,d=m-G}else d=0;return d},yA=d=>{for(var m=0,B=0;B<d.length;++B){var P=d.charCodeAt(B);127>=P?m++:2047>=P?m+=2:55296<=P&&57343>=P?(m+=4,++B):m+=3}return m};function Dg(d,m){BA(d>>>=0,{name:m=Qt(m>>>0),Mc(B){var P=(k(),_)[B>>>2>>>0];return P=ur(B+4,P,!0),EA(B),P},Sc(B,P){P instanceof ArrayBuffer&&(P=new Uint8Array(P));var G=typeof P=="string";if(!(G||ArrayBuffer.isView(P)&&P.BYTES_PER_ELEMENT==1))throw new Fr("Cannot pass non-string to std::string");var v=G?yA(P):P.length,z=Si(4+v+1),H=z+4;return(k(),_)[z>>>2>>>0]=v,G?PA(P,H,v+1):(k(),V).set(P,H>>>0),B!==null&&B.push(EA,z),z},Rc:Di,Tc(B){EA(B)}})}var Ci=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Cg=(d,m,B)=>{if(d>>>=1,16<(m=Ua((k(),K),d,m/2,B))-d&&Ci)return Ci.decode((k(),K).slice(d,m));for(B="";d<m;++d){var P=(k(),K)[d>>>0];B+=String.fromCharCode(P)}return B},bg=(d,m,B)=>{if(B??=2147483647,2>B)return 0;var P=m;B=(B-=2)<2*d.length?B/2:d.length;for(var G=0;G<B;++G){var v=d.charCodeAt(G);(k(),F)[m>>>1>>>0]=v,m+=2}return(k(),F)[m>>>1>>>0]=0,m-P},Eg=d=>2*d.length,Tg=(d,m,B)=>{var P="";d>>>=2;for(var G=0;!(G>=m/4);G++){var v=(k(),_)[d+G>>>0];if(!v&&!B)break;P+=String.fromCodePoint(v)}return P},kg=(d,m,B)=>{if(m>>>=0,B??=2147483647,4>B)return 0;var P=m;B=P+B-4;for(var G=0;G<d.length;++G){var v=d.codePointAt(G);if(65535<v&&G++,(k(),L)[m>>>2>>>0]=v,(m+=4)+4>B)break}return(k(),L)[m>>>2>>>0]=0,m-P},Gg=d=>{for(var m=0,B=0;B<d.length;++B)65535<d.codePointAt(B)&&B++,m+=4;return m};function lr(d,m,B){if(d>>>=0,m>>>=0,B=Qt(B>>>=0),m===2)var P=Cg,G=bg,v=Eg;else P=Tg,G=kg,v=Gg;BA(d,{name:B,Mc:z=>{var H=(k(),_)[z>>>2>>>0];return H=P(z+4,H*m,!0),EA(z),H},Sc:(z,H)=>{if(typeof H!="string")throw new Fr(`Cannot pass non-string to C++ string type ${B}`);var Z=v(H),re=Si(4+Z+m);return(k(),_)[re>>>2>>>0]=Z/m,G(H,re+4,Z+m),z!==null&&z.push(EA,re),re},Rc:Di,Tc(z){EA(z)}})}function ns(d,m){BA(d>>>=0,{ee:!0,name:m=Qt(m>>>0),Mc:()=>{},Sc:()=>{}})}function bi(d){ll(d>>>0,!r,1,!A,131072,!1),wA()}var yt=d=>{if(!x)try{if(d(),!(0<Se))try{n?cc()&&dl(f):sr(f)}catch(m){m instanceof qe||m=="unwind"||o(0,m)}}catch(m){m instanceof qe||m=="unwind"||o(0,m)}},xg=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function zr(d){d>>>=0,xg||(Atomics.waitAsync((k(),L),d>>>2,d).value.then(Ei),d+=128,Atomics.store((k(),L),d>>>2,1))}var Ei=()=>yt(()=>{var d=cc();d&&(zr(d),Bh())});function Sg(d,m){(d>>>=0)==m>>>0?setTimeout(Ei):n?postMessage({Vc:d,Oc:"checkMailbox"}):(d=VA[d])&&d.postMessage({Oc:"checkMailbox"})}var pn=[];function is(d,m,B,P,G){for(m>>>=0,G>>>=0,pn.length=0,B=G>>>3,P=G+P>>>3;B<P;){var v;v=(k(),Ae)[B++>>>0]?(k(),Ae)[B++>>>0]:(k(),pe)[B++>>>0],pn.push(v)}return(m?pl[m]:sD[d])(...pn)}var Lo=()=>{Se=0};function jo(d){d>>>=0,n?postMessage({Oc:"cleanupThread",he:d}):Qa(VA[d])}function Vo(d){}var wn=d=>{try{d()}catch(m){$e(m)}};function Ko(d){var m=(...B)=>{Ti.push(d);try{return d(...B)}finally{x||(Ti.pop(),oA&&IA===1&&Ti.length===0&&(IA=0,Se+=1,wn(ap),typeof Fibers<"u"&&Fibers.Be()))}};return os.set(d,m),m}var IA=0,oA=null,as=0,Ti=[],Nr=new Map,ss=new Map,os=new Map,cs=0,ki=null,Wo=[],us=d=>function(m){if(!x){if(IA===0){var B=!1,P=!1;m((G=0)=>{if(!x&&(as=G,B=!0,P)){IA=2,wn(()=>sp(oA)),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.resume(),G=!1;try{var v=function(){var Z=(k(),L)[oA+8>>>2>>>0];return Z=ss.get(Z),Z=os.get(Z),--Se,Z()}()}catch(Z){v=Z,G=!0}var z=!1;if(!oA){var H=ki;H&&(ki=null,(G?H.reject:H.resolve)(v),z=!0)}if(G&&!z)throw v}}),P=!0,B||(IA=1,oA=function(){var G=Si(65548),v=G+12;if((k(),_)[G>>>2>>>0]=v,(k(),_)[G+4>>>2>>>0]=v+65536,v=Ti[0],!Nr.has(v)){var z=cs++;Nr.set(v,z),ss.set(z,v)}return v=Nr.get(v),(k(),L)[G+8>>>2>>>0]=v,G}(),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.pause(),wn(()=>ip(oA)))}else IA===2?(IA=0,wn(op),EA(oA),oA=null,Wo.forEach(yt)):$e(`invalid state: ${IA}`);return as}}(m=>{d().then(m)});function gs(d){return d>>>=0,us(async()=>{var m=await Ft(d);return Wt(m)})}var Gi=[],Zo=d=>{var m=Gi.length;return Gi.push(d),m},ke=(d,m)=>{for(var B=Array(d),P=0;P<d;++P){var G=P,v=(k(),_)[m+4*P>>>2>>>0],z=ts[v];if(z===void 0)throw d=`parameter ${P}`,v=th(v),m=Qt(v),EA(v),new Fr(`${d} has unknown type ${m}`);B[G]=z}return B},Bn=(d,m,B)=>{var P=[];return d=d(P,B),P.length&&((k(),_)[m>>>2>>>0]=Wt(P)),d},$o={},Pe=d=>{var m=$o[d];return m===void 0?Qt(d):m};function ls(d,m,B){var[P,...G]=ke(d,m>>>0);m=P.Sc.bind(P);var v=G.map(Z=>Z.Rc.bind(Z));d--;var z={toValue:Ft};switch(d=v.map((Z,re)=>{var Qe=`argFromPtr${re}`;return z[Qe]=Z,`${Qe}(args${re?"+"+8*re:""})`}),B){case 0:var H="toValue(handle)";break;case 2:H="new (toValue(handle))";break;case 3:H="";break;case 1:z.getStringOrSymbol=Pe,H="toValue(handle)[getStringOrSymbol(methodName)]"}return H+=`(${d})`,P.ee||(z.toReturnWire=m,z.emval_returnValue=Bn,H=`return emval_returnValue(toReturnWire, destructorsRef, ${H})`),H=`return function (handle, methodName, destructorsRef, args) {
9
9
  ${H}
10
- }`,B=new Function(Object.keys(z),H)(...Object.values(z)),H=`methodCaller<(${G.map(Z=>Z.name)}) => ${P.name}>`,Zo(Object.defineProperty(B,"name",{value:H}))}function Ce(d,m){return m>>>=0,(d=Ft(d>>>0))==Ft(m)}function Jo(d){return(d>>>=0)?(d=Pe(d),Wt(globalThis[d])):Wt(globalThis)}function ds(d){return d=Pe(d>>>0),Wt(e[d])}function Xo(d,m){return m>>>=0,d=Ft(d>>>0),m=Ft(m),Wt(d[m])}function ec(d){9<(d>>>=0)&&(WA[d+1]+=1)}function fs(d,m,B,P,G){return Gi[d>>>0](m>>>0,B>>>0,P>>>0,G>>>0)}function ZA(d,m,B,P,G){return fs(d>>>0,m>>>0,B>>>0,P>>>0,G>>>0)}function Yg(){return Wt([])}function tc(d){d=Ft(d>>>0);for(var m=Array(d.length),B=0;B<d.length;B++)m[B]=d[B];return Wt(m)}function vg(d){return Wt(Pe(d>>>0))}function Og(){return Wt({})}function _g(d){for(var m=Ft(d>>>=0);m.length;){var B=m.pop();m.pop()(B)}Ii(d)}function Mg(d,m,B){m>>>=0,B>>>=0,d=Ft(d>>>0),m=Ft(m),B=Ft(B),d[m]=B}function Rg(d,m){d=at(d),m>>>=0,d=new Date(1e3*d),(k(),L)[m>>>2>>>0]=d.getUTCSeconds(),(k(),L)[m+4>>>2>>>0]=d.getUTCMinutes(),(k(),L)[m+8>>>2>>>0]=d.getUTCHours(),(k(),L)[m+12>>>2>>>0]=d.getUTCDate(),(k(),L)[m+16>>>2>>>0]=d.getUTCMonth(),(k(),L)[m+20>>>2>>>0]=d.getUTCFullYear()-1900,(k(),L)[m+24>>>2>>>0]=d.getUTCDay(),d=(d.getTime()-Date.UTC(d.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(k(),L)[m+28>>>2>>>0]=d}var Ac=d=>d%4==0&&(d%100!=0||d%400==0),rc=[0,31,60,91,121,152,182,213,244,274,305,335],nc=[0,31,59,90,120,151,181,212,243,273,304,334];function Qg(d,m){d=at(d),m>>>=0,d=new Date(1e3*d),(k(),L)[m>>>2>>>0]=d.getSeconds(),(k(),L)[m+4>>>2>>>0]=d.getMinutes(),(k(),L)[m+8>>>2>>>0]=d.getHours(),(k(),L)[m+12>>>2>>>0]=d.getDate(),(k(),L)[m+16>>>2>>>0]=d.getMonth(),(k(),L)[m+20>>>2>>>0]=d.getFullYear()-1900,(k(),L)[m+24>>>2>>>0]=d.getDay();var B=(Ac(d.getFullYear())?rc:nc)[d.getMonth()]+d.getDate()-1|0;(k(),L)[m+28>>>2>>>0]=B,(k(),L)[m+36>>>2>>>0]=-60*d.getTimezoneOffset(),B=new Date(d.getFullYear(),6,1).getTimezoneOffset();var P=new Date(d.getFullYear(),0,1).getTimezoneOffset();d=0|(B!=P&&d.getTimezoneOffset()==Math.min(P,B)),(k(),L)[m+32>>>2>>>0]=d}function Fg(d){d>>>=0;var m=new Date((k(),L)[d+20>>>2>>>0]+1900,(k(),L)[d+16>>>2>>>0],(k(),L)[d+12>>>2>>>0],(k(),L)[d+8>>>2>>>0],(k(),L)[d+4>>>2>>>0],(k(),L)[d>>>2>>>0],0),B=(k(),L)[d+32>>>2>>>0],P=m.getTimezoneOffset(),G=new Date(m.getFullYear(),6,1).getTimezoneOffset(),v=new Date(m.getFullYear(),0,1).getTimezoneOffset(),z=Math.min(v,G);return 0>B?(k(),L)[d+32>>>2>>>0]=+(G!=v&&z==P):0<B!=(z==P)&&(G=Math.max(v,G),m.setTime(m.getTime()+6e4*((0<B?z:G)-P))),(k(),L)[d+24>>>2>>>0]=m.getDay(),B=(Ac(m.getFullYear())?rc:nc)[m.getMonth()]+m.getDate()-1|0,(k(),L)[d+28>>>2>>>0]=B,(k(),L)[d>>>2>>>0]=m.getSeconds(),(k(),L)[d+4>>>2>>>0]=m.getMinutes(),(k(),L)[d+8>>>2>>>0]=m.getHours(),(k(),L)[d+12>>>2>>>0]=m.getDate(),(k(),L)[d+16>>>2>>>0]=m.getMonth(),(k(),L)[d+20>>>2>>>0]=m.getYear(),d=m.getTime(),BigInt(isNaN(d)?-1:d/1e3)}function ic(d,m,B,P,G,v,z){return n?Ne(16,1,d,m,B,P,G,v,z):-52}function ac(d,m,B,P,G,v){if(n)return Ne(17,1,d,m,B,P,G,v)}var Pn={},zg=()=>performance.timeOrigin+performance.now();function sc(d,m){if(n)return Ne(18,1,d,m);if(Pn[d]&&(clearTimeout(Pn[d].id),delete Pn[d]),!m)return 0;var B=setTimeout(()=>{delete Pn[d],yt(()=>ph(d,performance.timeOrigin+performance.now()))},m);return Pn[d]={id:B,Ae:m},0}function Ng(d,m,B,P){d>>>=0,m>>>=0,B>>>=0,P>>>=0;var G=new Date().getFullYear(),v=new Date(G,0,1).getTimezoneOffset();G=new Date(G,6,1).getTimezoneOffset();var z=Math.max(v,G);(k(),_)[d>>>2>>>0]=60*z,(k(),L)[m>>>2>>>0]=+(v!=G),d=(m=H=>{var Z=Math.abs(H);return`UTC${0<=H?"-":"+"}${String(Math.floor(Z/60)).padStart(2,"0")}${String(Z%60).padStart(2,"0")}`})(v),m=m(G),G<v?(PA(d,B,17),PA(m,P,17)):(PA(d,P,17),PA(m,B,17))}var Hg=()=>Date.now(),Ug=1;function qg(d,m,B){if(B>>>=0,!(0<=d&&3>=d))return 28;if(d===0)d=Date.now();else{if(!Ug)return 52;d=performance.timeOrigin+performance.now()}return d=Math.round(1e6*d),(k(),Ae)[B>>>3>>>0]=BigInt(d),0}var ms=[],oc=(d,m)=>{ms.length=0;for(var B;B=(k(),V)[d++>>>0];){var P=B!=105;m+=(P&=B!=112)&&m%8?4:0,ms.push(B==112?(k(),_)[m>>>2>>>0]:B==106?(k(),Ae)[m>>>3>>>0]:B==105?(k(),L)[m>>>2>>>0]:(k(),pe)[m>>>3>>>0]),m+=P?8:4}return ms};function Lg(d,m,B){return d>>>=0,m=oc(m>>>0,B>>>0),pl[d](...m)}function jg(d,m,B){return d>>>=0,m=oc(m>>>0,B>>>0),pl[d](...m)}var Vg=()=>{};function Kg(d,m){return E(ur(d>>>0,m>>>0))}var Wg=()=>{throw Se+=1,"unwind"};function Zg(){return 4294901760}var $g=()=>1,Jg=()=>navigator.hardwareConcurrency;function Xg(d){d>>>=0;var m=(k(),V).length;if(d<=m||4294901760<d)return!1;for(var B=1;4>=B;B*=2){var P=m*(1+.2/B);P=Math.min(P,d+100663296);e:{P=(Math.min(4294901760,65536*Math.ceil(Math.max(d,P)/65536))-KA.buffer.byteLength+65535)/65536|0;try{KA.grow(P),et();var G=1;break e}catch{}G=void 0}if(G)return!0}return!1}var cA=d=>{var m=yA(d)+1,B=uc(m);return PA(d,B,m),B},hs=(d,m)=>{(k(),_)[d>>>2>>>0]=m;var B=(k(),_)[d>>>2>>>0];(k(),_)[d+4>>>2>>>0]=(m-B)/4294967296},yn=d=>(k(),_)[d>>>2>>>0]+4294967296*(k(),L)[d+4>>>2>>>0],wt=[],el=(d,m)=>{wt[d>>>0]=m},DA=[],xi=[],Hr=(d,m)=>{xi[d]=new Promise(B=>m.finally(()=>B(d)))},oe=d=>{if(d)return wt[d>>>0]},I=(d,m)=>{for(d=(k(),_)[d>>>2>>>0];d;d=(k(),_)[d>>>2>>>0])m[(k(),L)[d+4>>>2>>>0]](d)},T=(d,m,B)=>{(k(),_)[d>>>2>>>0]=m,(k(),_)[d+4>>>2>>>0]=B},O=d=>{var m=(k(),_)[d>>>2>>>0];return d=(k(),_)[d+4>>>2>>>0],ur(m,d)},Y=d=>{var m=(k(),_)[d>>>2>>>0];return d=(k(),_)[d+4>>>2>>>0],m?ur(m,d):d===0?"":void 0},Q=d=>{var m=Y(d+4),B=(B=(k(),_)[d+12>>>2>>>0])?oe(B):"auto";if(d+=16){var P=oe((k(),_)[d+4>>>2>>>0]),G=(k(),_)[d+16>>>2>>>0],v=(k(),_)[d+20>>>2>>>0];if(G){for(var z={},H=0;H<G;++H){var Z=v+24*H;z[O(Z+4)]=(k(),pe)[Z+16>>>3>>>0]}G=z}else G=void 0;d={module:P,constants:G,entryPoint:Y(d+8)}}else d=void 0;return{label:m,layout:B,compute:d}},U=(d,m)=>{function B(P,G){P=d[P],(k(),_)[m+G>>>2>>>0]=P}B("maxTextureDimension1D",4),B("maxTextureDimension2D",8),B("maxTextureDimension3D",12),B("maxTextureArrayLayers",16),B("maxBindGroups",20),B("maxBindGroupsPlusVertexBuffers",24),B("maxBindingsPerBindGroup",28),B("maxDynamicUniformBuffersPerPipelineLayout",32),B("maxDynamicStorageBuffersPerPipelineLayout",36),B("maxSampledTexturesPerShaderStage",40),B("maxSamplersPerShaderStage",44),B("maxStorageBuffersPerShaderStage",48),B("maxStorageTexturesPerShaderStage",52),B("maxUniformBuffersPerShaderStage",56),B("minUniformBufferOffsetAlignment",80),B("minStorageBufferOffsetAlignment",84),hs(m+64,d.maxUniformBufferBindingSize),hs(m+72,d.maxStorageBufferBindingSize),B("maxVertexBuffers",88),hs(m+96,d.maxBufferSize),B("maxVertexAttributes",104),B("maxVertexBufferArrayStride",108),B("maxInterStageShaderVariables",112),B("maxColorAttachments",116),B("maxColorAttachmentBytesPerSample",120),B("maxComputeWorkgroupStorageSize",124),B("maxComputeInvocationsPerWorkgroup",128),B("maxComputeWorkgroupSizeX",132),B("maxComputeWorkgroupSizeY",136),B("maxComputeWorkgroupSizeZ",140),B("maxComputeWorkgroupsPerDimension",144),d.ze!==void 0&&B("maxImmediateSize",148)},X=[,"validation","out-of-memory","internal"],ge=[,"compatibility","core"],Ie={1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},Ye=[,"low-power","high-performance"],Bt=[,"occlusion","timestamp"],Zt={undefined:1,unknown:1,destroyed:2};function CA(d,m,B,P,G,v){m=at(m),B=at(B),P>>>=0,G>>>=0,v>>>=0;var z=oe(d>>>0);if(d={},v){var H=(k(),_)[v+12>>>2>>>0];if(H){var Z=(k(),_)[v+16>>>2>>>0];d.requiredFeatures=Array.from((k(),_).subarray(Z>>>2>>>0,Z+4*H>>>2>>>0),le=>Ie[le])}var re=(k(),_)[v+20>>>2>>>0];if(re){let le=function(vt,Dt,In=!1){Dt=re+Dt,(Dt=(k(),_)[Dt>>>2>>>0])==4294967295||In&&Dt==0||(Ze[vt]=Dt)},It=function(vt,Dt){Dt=re+Dt;var In=(k(),_)[Dt>>>2>>>0],HD=(k(),_)[Dt+4>>>2>>>0];In==4294967295&&HD==4294967295||(Ze[vt]=yn(Dt))};var Qe=le,Ue=It,Ze={};le("maxTextureDimension1D",4),le("maxTextureDimension2D",8),le("maxTextureDimension3D",12),le("maxTextureArrayLayers",16),le("maxBindGroups",20),le("maxBindGroupsPlusVertexBuffers",24),le("maxDynamicUniformBuffersPerPipelineLayout",32),le("maxDynamicStorageBuffersPerPipelineLayout",36),le("maxSampledTexturesPerShaderStage",40),le("maxSamplersPerShaderStage",44),le("maxStorageBuffersPerShaderStage",48),le("maxStorageTexturesPerShaderStage",52),le("maxUniformBuffersPerShaderStage",56),le("minUniformBufferOffsetAlignment",80),le("minStorageBufferOffsetAlignment",84),It("maxUniformBufferBindingSize",64),It("maxStorageBufferBindingSize",72),le("maxVertexBuffers",88),It("maxBufferSize",96),le("maxVertexAttributes",104),le("maxVertexBufferArrayStride",108),le("maxInterStageShaderVariables",112),le("maxColorAttachments",116),le("maxColorAttachmentBytesPerSample",120),le("maxComputeWorkgroupStorageSize",124),le("maxComputeInvocationsPerWorkgroup",128),le("maxComputeWorkgroupSizeX",132),le("maxComputeWorkgroupSizeY",136),le("maxComputeWorkgroupSizeZ",140),le("maxComputeWorkgroupsPerDimension",144),le("maxImmediateSize",148,!0),d.requiredLimits=Ze}(H=(k(),_)[v+24>>>2>>>0])&&(H={label:Y(H+4)},d.defaultQueue=H),d.label=Y(v+4)}Se+=1,Hr(m,z.requestDevice(d).then(le=>{--Se,yt(()=>{wt[G>>>0]=le.queue,wt[P>>>0]=le,Se+=1,Hr(B,le.lost.then(It=>{yt(()=>{le.onuncapturederror=()=>{};var vt=me(),Dt=cA(It.message);ol(B,Zt[It.reason],Dt),fe(vt)}),--Se})),le.onuncapturederror=It=>{var vt=5;It.error instanceof GPUValidationError?vt=2:It.error instanceof GPUOutOfMemoryError?vt=3:It.error instanceof GPUInternalError&&(vt=4);var Dt=me();It=cA(It.error.message),dh(P,vt,It),fe(Dt)},"adapterInfo"in le||(le.adapterInfo=z.info),gl(m,1,P,0)})},le=>{--Se,yt(()=>{var It=me(),vt=cA(le.message);gl(m,3,P,vt),B&&ol(B,4,vt),fe(It)})}))}function bA(d){var m=oe(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d]}m.destroy()}function tl(d,m,B){B>>>=0;var P=oe(d>>>=0);B==4294967295&&(B=void 0);try{var G=P.getMappedRange(m>>>0,B)}catch{return 0}var v=fl(16,G.byteLength);return(k(),V).set(new Uint8Array(G),v>>>0),DA[d].push(()=>EA(v)),v}function Al(d,m,B){B>>>=0;var P=oe(d>>>=0);B==4294967295&&(B=void 0);try{var G=P.getMappedRange(m>>>0,B)}catch{return 0}var v=fl(16,G.byteLength);return(k(),V).fill(0,v,G.byteLength),DA[d].push(()=>{new Uint8Array(G).set((k(),V).subarray(v>>>0,v+G.byteLength>>>0)),EA(v)}),v}function rl(d,m,B,P,G){d>>>=0,m=at(m),B=at(B),G>>>=0;var v=oe(d);DA[d]=[],G==4294967295&&(G=void 0),Se+=1,Hr(m,v.mapAsync(B,P>>>0,G).then(()=>{--Se,yt(()=>{cl(m,1,0)})},z=>{--Se,yt(()=>{me();var H=cA(z.message);cl(m,z.name==="AbortError"?4:z.name==="OperationError"?3:0,H),delete DA[d]})}))}function ps(d){var m=oe(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d],m.unmap()}}function DI(d){delete wt[d>>>0]}function CI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=!!(k(),_)[m+32>>>2>>>0];m={label:Y(m+4),usage:(k(),_)[m+16>>>2>>>0],size:yn(m+24),mappedAtCreation:P},d=oe(d);try{var G=d.createBuffer(m)}catch{return!1}return wt[B>>>0]=G,P&&(DA[B]=[]),!0}function bI(d,m,B,P){d>>>=0,m=at(m),P>>>=0,B=Q(B>>>0),d=oe(d),Se+=1,Hr(m,d.createComputePipelineAsync(B).then(G=>{--Se,yt(()=>{wt[P>>>0]=G,sl(m,1,P,0)})},G=>{--Se,yt(()=>{var v=me(),z=cA(G.message);sl(m,G.reason==="validation"?3:G.reason==="internal"?4:0,P,z),fe(v)})}))}function EI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=(k(),_)[m>>>2>>>0],G=(k(),L)[P+4>>>2>>>0];m={label:Y(m+4),code:""},G===2&&(m.code=O(P+8)),d=oe(d).createShaderModule(m),wt[B>>>0]=d}var TI=d=>{(d=oe(d)).onuncapturederror=null,d.destroy()};function kI(d,m){m=at(m),d=oe(d>>>0),Se+=1,Hr(m,d.popErrorScope().then(B=>{--Se,yt(()=>{var P=5;B?B instanceof GPUValidationError?P=2:B instanceof GPUOutOfMemoryError?P=3:B instanceof GPUInternalError&&(P=4):P=1;var G=me(),v=B?cA(B.message):0;ul(m,1,P,v),fe(G)})},B=>{--Se,yt(()=>{var P=me(),G=cA(B.message);ul(m,1,5,G),fe(P)})}))}function GI(d,m,B,P){if(m=at(m),P>>>=0,B>>>=0){var G={featureLevel:ge[(k(),L)[B+4>>>2>>>0]],powerPreference:Ye[(k(),L)[B+8>>>2>>>0]],forceFallbackAdapter:!!(k(),_)[B+12>>>2>>>0]};(d=(k(),_)[B>>>2>>>0])!==0&&(k(),G.De=!!(k(),_)[d+8>>>2>>>0])}"gpu"in navigator?(Se+=1,Hr(m,navigator.gpu.requestAdapter(G).then(v=>{--Se,yt(()=>{if(v)wt[P>>>0]=v,ws(m,1,P,0);else{var z=me(),H=cA("WebGPU not available on this browser (requestAdapter returned null)");ws(m,3,P,H),fe(z)}})},v=>{--Se,yt(()=>{var z=me(),H=cA(v.message);ws(m,4,P,H),fe(z)})}))):(G=me(),d=cA("WebGPU not available on this browser (navigator.gpu is not available)"),ws(m,3,P,d),fe(G))}function xI(d,m,B){return d>>>=0,m>>>=0,B>>>=0,us(async()=>{var P=[];if(B){var G=(k(),L)[B>>>2>>>0];P.length=m+1,P[m]=new Promise(H=>setTimeout(H,G,0))}else P.length=m;for(var v=0;v<m;++v){var z=yn(d+8*v);if(!(z in xi))return z;P[v]=xi[z]}return P=await Promise.race(P),delete xi[P],P})}var nl,il={},Vm=()=>{if(!nl){var d,m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(d in il)il[d]===void 0?delete m[d]:m[d]=il[d];var B=[];for(d in m)B.push(`${d}=${m[d]}`);nl=B}return nl};function Km(d,m){if(n)return Ne(19,1,d,m);d>>>=0,m>>>=0;var B,P=0,G=0;for(B of Vm()){var v=m+P;(k(),_)[d+G>>>2>>>0]=v,P+=PA(B,v,1/0)+1,G+=4}return 0}function Wm(d,m){if(n)return Ne(20,1,d,m);d>>>=0,m>>>=0;var B=Vm();for(var P of((k(),_)[d>>>2>>>0]=B.length,d=0,B))d+=yA(P)+1;return(k(),_)[m>>>2>>>0]=d,0}function Zm(d){return n?Ne(21,1,d):52}function $m(d,m,B,P){return n?Ne(22,1,d,m,B,P):52}function Jm(d,m,B,P){return n?Ne(23,1,d,m,B,P):70}var SI=[null,[],[]];function Xm(d,m,B,P){if(n)return Ne(24,1,d,m,B,P);m>>>=0,B>>>=0,P>>>=0;for(var G=0,v=0;v<B;v++){var z=(k(),_)[m>>>2>>>0],H=(k(),_)[m+4>>>2>>>0];m+=8;for(var Z=0;Z<H;Z++){var re=d,Qe=(k(),V)[z+Z>>>0],Ue=SI[re];Qe===0||Qe===10?((re===1?b:E)(qa(Ue)),Ue.length=0):Ue.push(Qe)}G+=H}return(k(),_)[P>>>2>>>0]=G,0}function YI(d){return d>>>0}function vI(d,m){return U(oe(d>>>0).limits,m>>>0),1}function OI(d,m){return oe(d>>>0).features.has(Ie[m])}function _I(d){return BigInt(oe(d>>>0).size)}function MI(d){return BigInt(oe(d>>>0).usage)}function RI(d,m){if(d>>>=0,m>>>=0){var B=Y(m+4);B={label:B,timestampWrites:m=(m=(k(),_)[m+12>>>2>>>0])!==0?{querySet:oe((k(),_)[m+4>>>2>>>0]),beginningOfPassWriteIndex:(k(),_)[m+8>>>2>>>0],endOfPassWriteIndex:(k(),_)[m+12>>>2>>>0]}:void 0}}return m=oe(d),d=oh(0),B=m.beginComputePass(B),wt[d>>>0]=B,d}function QI(d,m,B,P){B=at(B),(P=at(P))==-1&&(P=void 0),(d=oe(d>>>0)).clearBuffer(oe(m>>>0),B,P)}function FI(d,m,B,P,G,v){B=at(B),G=at(G),v=at(v),oe(d>>>0).copyBufferToBuffer(oe(m>>>0),B,oe(P>>>0),G,v)}function zI(d){var m=oe(d>>>0);return d=ah(0),m=m.finish(),wt[d>>>0]=m,d}function NI(d,m,B,P,G,v){v=at(v),oe(d>>>0).resolveQuerySet(oe(m>>>0),B,P,oe(G>>>0),v)}function HI(d,m,B,P){oe(d>>>0).dispatchWorkgroups(m,B,P)}function UI(d,m,B){B=at(B),oe(d>>>0).dispatchWorkgroupsIndirect(oe(m>>>0),B)}function qI(d){oe(d>>>0).end()}function LI(d,m,B,P,G){P>>>=0,G>>>=0,d=oe(d>>>0),B=oe(B>>>0),P==0?d.setBindGroup(m,B):d.setBindGroup(m,B,(k(),_),G>>>2,P)}function jI(d,m){oe(d>>>0).setPipeline(oe(m>>>0))}function VI(d,m,B){oe(d>>>0).Ce(oe(m>>>0),B)}function KI(d,m){var B=oe(d>>>0);return d=ih(0),m=B.getBindGroupLayout(m),wt[d>>>0]=m,d}function WI(d,m){function B(G){var v=(k(),_)[G+8>>>2>>>0],z=(k(),_)[G+32>>>2>>>0],H=(k(),_)[G+36>>>2>>>0],Z=0;return I(G,{327681:re=>{Z=(k(),_)[re+8>>>2>>>0]}}),v?((z=yn(G+24))==-1&&(z=void 0),v={buffer:oe(v),offset:yn(G+16),size:z}):v=oe(z||H||Z),{binding:(k(),_)[G+4>>>2>>>0],resource:v}}d>>>=0,m={label:Y(4+(m>>>=0)),layout:oe((k(),_)[m+12>>>2>>>0]),entries:function(G,v){for(var z=[],H=0;H<G;++H)z.push(B(v+40*H));return z}((k(),_)[m+16>>>2>>>0],(k(),_)[m+20>>>2>>>0])},d=oe(d);var P=nh(0);return el(P,d.createBindGroup(m)),P}function ZI(d,m){var B;return d>>>=0,(m>>>=0)&&(B={label:Y(m+4)}),m=oe(d),d=sh(0),B=m.createCommandEncoder(B),wt[d>>>0]=B,d}function $I(d,m){d>>>=0,m>>>=0,m={type:Bt[(k(),L)[m+12>>>2>>>0]],count:(k(),_)[m+16>>>2>>>0]};var B=oe(d);return d=ch(0),m=B.createQuerySet(m),wt[d>>>0]=m,d}function JI(d,m){d=oe(d>>>0).adapterInfo,m>>>=0,(k(),_)[m+52>>>2>>>0]=d.subgroupMinSize,(k(),_)[m+56>>>2>>>0]=d.subgroupMaxSize;var B=d.vendor+d.architecture+d.device+d.description,P=yA(B)+1,G=Si(P);return G&&PA(B,G,P),B=G,P=yA(d.vendor),T(m+4,B,P),B+=P,P=yA(d.architecture),T(m+12,B,P),B+=P,P=yA(d.device),T(m+20,B,P),T(m+28,B+P,yA(d.description)),(k(),L)[m+36>>>2>>>0]=2,d=d.isFallbackAdapter?3:4,(k(),L)[m+40>>>2>>>0]=d,(k(),_)[m+44>>>2>>>0]=0,(k(),_)[m+48>>>2>>>0]=0,1}var XI={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function eD(d,m){m>>>=0;var B=oe(d>>>0);d=Si(4*B.features.size);var P=0,G=0;for(let v of B.features)0<=(B=XI[v])&&((k(),L)[d+P>>>2>>>0]=B,P+=4,G++);(k(),_)[m+4>>>2>>>0]=d,(k(),_)[m>>>2>>>0]=G}function tD(d,m){return U(oe(d>>>0).limits,m>>>0),1}function AD(d,m){oe(d>>>0).pushErrorScope(X[m])}function rD(d,m,B){m>>>=0,B>>>=0,d=oe(d>>>0),m=Array.from((k(),L).subarray(B>>>2>>>0,B+4*m>>>2>>>0),P=>oe(P)),d.submit(m)}function nD(d,m,B,P,G){B=at(B),P>>>=0,G>>>=0,d=oe(d>>>0),m=oe(m>>>0),P=(k(),V).subarray(P>>>0,P+G>>>0),d.writeBuffer(m,B,P,0,G)}n||function(){for(var d=e.numThreads-1;d--;)Te();Be.push(async()=>{var m=async function(){if(!n)return Promise.all(Gt.map(Fa))}();se++,await m,--se==0&&ue&&(m=ue,ue=null,m())})}(),n||(KA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),et()),e.wasmBinary&&(u=e.wasmBinary),e.stackSave=()=>me(),e.stackRestore=d=>fe(d),e.stackAlloc=d=>uc(d),e.setValue=function(d,m,B="i8"){switch(B.endsWith("*")&&(B="*"),B){case"i1":case"i8":(k(),N)[d>>>0]=m;break;case"i16":(k(),F)[d>>>1>>>0]=m;break;case"i32":(k(),L)[d>>>2>>>0]=m;break;case"i64":(k(),Ae)[d>>>3>>>0]=BigInt(m);break;case"float":(k(),W)[d>>>2>>>0]=m;break;case"double":(k(),pe)[d>>>3>>>0]=m;break;case"*":(k(),_)[d>>>2>>>0]=m;break;default:$e(`invalid type for setValue: ${B}`)}},e.getValue=function(d,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":case"i8":return(k(),N)[d>>>0];case"i16":return(k(),F)[d>>>1>>>0];case"i32":return(k(),L)[d>>>2>>>0];case"i64":return(k(),Ae)[d>>>3>>>0];case"float":return(k(),W)[d>>>2>>>0];case"double":return(k(),pe)[d>>>3>>>0];case"*":return(k(),_)[d>>>2>>>0];default:$e(`invalid type for getValue: ${m}`)}},e.UTF8ToString=ur,e.stringToUTF8=PA,e.lengthBytesUTF8=yA;var eh,th,al,cc,EA,Si,Ah,rh,nh,ih,ah,sh,oh,ch,uh,gh,lh,sl,ol,cl,ul,ws,gl,dh,ll,fh,mh,hh,dl,ph,wh,fl,ve,Bs,Bh,fe,uc,me,Ph,ml,yh,Ih,Dh,hl,Ch,bh,Eh,Th,kh,Gh,xh,Sh,Yh,vh,Oh,_h,Mh,Rh,Qh,Fh,zh,Nh,Hh,Uh,qh,Lh,jh,Vh,Kh,Wh,Zh,$h,Jh,Xh,ep,tp,Ap,rp,np,ip,ap,sp,dr,iD=[Rt,pt,Qo,La,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,zo,No,yi,ic,ac,sc,Km,Wm,Zm,$m,Jm,Xm],pl={979436:(d,m,B,P,G)=>{if(e===void 0||!e.Uc)return 1;if((d=ur(Number(d>>>0))).startsWith("./")&&(d=d.substring(2)),!(d=e.Uc.get(d)))return 2;if(m=Number(m>>>0),B=Number(B>>>0),P=Number(P>>>0),m+B>d.byteLength)return 3;try{let v=d.subarray(m,m+B);switch(G){case 0:(k(),V).set(v,P>>>0);break;case 1:e.ad?e.ad(P,v):e.ne(P,v);break;default:return 4}return 0}catch{return 4}},980260:(d,m,B)=>{e.Sd(d,(k(),V).subarray(m>>>0,m+B>>>0))},980324:()=>e.le(),980366:d=>{e.jd(d)},980403:()=>typeof wasmOffsetConverter<"u"};function aD(d,m,B,P){var G=me();try{return Sh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function sD(d,m,B){var P=me();try{return kh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function oD(d){var m=me();try{Ch(d)}catch(B){if(fe(m),B!==B+0)throw B;ve(1,0)}}function cD(d,m){var B=me();try{return hl(d,m)}catch(P){if(fe(B),P!==P+0)throw P;ve(1,0)}}function uD(d,m,B){var P=me();try{Dh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function gD(d,m){var B=me();try{Yh(d,m)}catch(P){if(fe(B),P!==P+0)throw P;ve(1,0)}}function lD(d,m,B,P,G,v,z){var H=me();try{return Th(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function dD(d,m,B,P,G,v){var z=me();try{bh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function fD(d,m,B,P){var G=me();try{xh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function mD(d,m,B,P,G,v,z){var H=me();try{Oh(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function hD(d,m,B,P,G,v,z){var H=me();try{_h(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function pD(d,m,B,P,G,v,z,H){var Z=me();try{qh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function wD(d,m,B,P,G,v,z,H,Z,re,Qe,Ue){var Ze=me();try{Mh(d,m,B,P,G,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;ve(1,0)}}function BD(d,m,B,P,G){var v=me();try{return vh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function PD(d,m,B,P,G){var v=me();try{Eh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function yD(d,m,B,P,G,v,z,H){var Z=me();try{Gh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function ID(d){var m=me();try{return Lh(d)}catch(B){if(fe(m),B!==B+0)throw B;ve(1,0)}}function DD(d,m,B){var P=me();try{return jh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function CD(d,m){var B=me();try{return rp(d,m)}catch(P){if(fe(B),P!==P+0)throw P;return ve(1,0),0n}}function bD(d){var m=me();try{return Rh(d)}catch(B){if(fe(m),B!==B+0)throw B;return ve(1,0),0n}}function ED(d,m,B,P){var G=me();try{return Vh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function TD(d,m,B,P,G){var v=me();try{return Kh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function kD(d,m,B,P,G,v){var z=me();try{return Wh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function GD(d,m,B,P,G,v){var z=me();try{return Hh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function xD(d,m,B,P,G,v){var z=me();try{return Zh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function SD(d,m,B,P,G,v,z,H){var Z=me();try{return Uh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function YD(d,m,B,P,G){var v=me();try{return $h(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;return ve(1,0),0n}}function vD(d,m,B,P){var G=me();try{return Jh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function OD(d,m,B,P){var G=me();try{return Xh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function _D(d,m,B,P,G,v,z,H,Z,re,Qe,Ue){var Ze=me();try{return ep(d,m,B,P,G,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;ve(1,0)}}function MD(d,m,B,P,G,v,z,H,Z,re,Qe){var Ue=me();try{tp(d,m,B,P,G,v,z,H,Z,re,Qe)}catch(Ze){if(fe(Ue),Ze!==Ze+0)throw Ze;ve(1,0)}}function RD(d,m,B,P,G,v,z,H,Z,re,Qe,Ue,Ze,le,It,vt){var Dt=me();try{Ap(d,m,B,P,G,v,z,H,Z,re,Qe,Ue,Ze,le,It,vt)}catch(In){if(fe(Dt),In!==In+0)throw In;ve(1,0)}}function QD(d,m,B){var P=me();try{return Fh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;return ve(1,0),0n}}function FD(d,m,B){var P=me();try{return Qh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function zD(d,m,B){var P=me();try{return zh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function ND(d,m,B,P){var G=me();try{Nh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function gc(){if(0<se)ue=gc;else if(n)p?.(e),tt();else{for(var d=Be;0<d.length;)d.shift()(e);0<se?ue=gc:(e.calledRun=!0,x||(tt(),p?.(e)))}}return n||(dr=await Je(),gc()),e.PTR_SIZE=4,e.webgpuInit=d=>{let m=new WeakMap,B,P,G=1;e.webgpuRegisterDevice=H=>{if(P!==void 0)throw Error("another WebGPU EP inference session is being created.");if(H){var Z=m.get(H);if(!Z){let re=((Qe,Ue=0)=>{var Ze=lh(Ue);return Ue=gh(Ue,Ze),wt[Ze>>>0]=Qe.queue,wt[Ue>>>0]=Qe,Ue})(H,Z=rh(0));Z=[G++,Z,re],m.set(H,Z)}return B=H,P=Z[0],Z}B=void 0,P=0};let v=new Map;e.webgpuOnCreateSession=H=>{if(P!==void 0){var Z=P;if(P=void 0,H){let re=al(Z);v.set(H,re),Z===0&&d(B??oe(re))}B=void 0}},e.webgpuOnReleaseSession=H=>{v.delete(H)};let z=Symbol("gpuBufferMetadata");e.webgpuRegisterBuffer=(H,Z,re)=>{if(re)return H[z]=[re,NaN],re;if(re=H[z])return re[1]++,re[0];if((Z=v.get(Z))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return Z=((Qe,Ue=0)=>(Qe.mapState==="unmapped"||$e(),Ue=uh(Ue),wt[Ue>>>0]=Qe,Ue))(H,Z),H[z]=[Z,1],Z},e.webgpuUnregisterBuffer=H=>{let Z=H[z];if(!Z)throw Error("Buffer is not registered");Z[1]--,Z[1]===0&&(Ah(Z[0]),delete H[z])},e.webgpuGetBuffer=H=>oe(H),e.webgpuCreateDownloader=(H,Z,re)=>{if((re=v.get(re))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let Qe=oe(re),Ue=16*Math.ceil(Number(Z)/16);return async()=>{let Ze=Qe.createBuffer({size:Ue,usage:9});try{let le=Qe.createCommandEncoder();return le.copyBufferToBuffer(H,0,Ze,0,Ue),Qe.queue.submit([le.finish()]),await Ze.mapAsync(GPUMapMode.READ),Ze.getMappedRange().slice(0,Z)}finally{Ze.destroy()}}},e.ad=(H,Z)=>{var re=Z.buffer;let Qe=Z.byteOffset,Ue=Z.byteLength;if(Z=16*Math.ceil(Number(Ue)/16),H=oe(H),!B){var Ze=al(P);B=oe(Ze)}let le=(Ze=B.createBuffer({mappedAtCreation:!0,size:Z,usage:6})).getMappedRange();new Uint8Array(le).set(new Uint8Array(re,Qe,Ue)),Ze.unmap(),(re=B.createCommandEncoder()).copyBufferToBuffer(Ze,0,H,0,Z),B.queue.submit([re.finish()]),Ze.destroy()}},e.webnnInit=d=>{let m=d[0];[e.le,e.jd,e.webnnEnsureTensor,e.Sd,e.webnnDownloadTensor,e.ke,e.webnnEnableTraceEvent]=d.slice(1),e.webnnReleaseTensorId=e.jd,e.webnnUploadTensor=e.Sd,e.webnnRegisterMLContext=e.ke,e.webnnOnRunStart=B=>m.onRunStart(B),e.webnnOnRunEnd=m.onRunEnd.bind(m),e.webnnOnReleaseSession=B=>{m.onReleaseSession(B)},e.webnnCreateMLTensorDownloader=(B,P)=>m.createMLTensorDownloader(B,P),e.webnnRegisterMLTensor=(B,P,G,v)=>m.registerMLTensor(B,P,G,v),e.webnnCreateMLContext=B=>m.createMLContext(B),e.webnnRegisterMLConstant=(B,P,G,v,z,H)=>m.registerMLConstant(B,P,G,v,z,e.Uc,H),e.webnnRegisterGraphInput=m.registerGraphInput.bind(m),e.webnnIsGraphInput=m.isGraphInput.bind(m),e.webnnRegisterGraphOutput=m.registerGraphOutput.bind(m),e.webnnIsGraphOutput=m.isGraphOutput.bind(m),e.webnnCreateTemporaryTensor=m.createTemporaryTensor.bind(m),e.webnnIsGraphInputOutputTypeSupported=m.isGraphInputOutputTypeSupported.bind(m)},we?e:new Promise((d,m)=>{p=d,h=m})}var LA,Cm,qk,Lk,jk,Vk,Oe,xo,Kk,sg,Do,cn,oi,$y,C0,b0,Wk,E0,Zk,Jf,Tt,T0,ct,$k,k0,G0,Jk,tg,x0,S0,Y0,v0,O0,Xk,ai,ko,Xf,_0,eG,M0,R0,tG,sA,bm,jA,Q0,og,em,ci,ui,dn,fn,F0,z0,AG,Em,rG,nG,iG,aG,sG,H0,gi,Tm,U0,tm,Am,q0,oG,L0,j0,Xy,cG,rm,Bm,e0,iA,V0,Ag,t0,A0,nm,r0,im,K0,am,W0,km,sm,rg,Co,om,n0,i0,a0,Gm,je,li,aA,cg,He,xm,Z0,uG,s0,o0,c0,Ya,un,u0,$0,gG,si,ag,Oa,Go,ug,Sm,Ym,Pm,_a,vm,J0,X0,lG,g0,l0,d0,f0,eI,m0,St,tI,cm,ym,um,h0,gm,p0,lm,dm,fm,w0,AI,dG,rI,bo,B0,nI,fG,P0,Om,_m,gn,y0,mm,gg,Mm,Rm,hm,Qm,Fm,zm,iI,ln,mA,va,Eo,To,ng,pm,ig,ni,ii,I0,aI,sI,oI,cI,uI,gI,lI,dI,wm,D0,fI,mG,mI,Im,Dm,hI,hG,pG,wG,wI=qD(()=>{LA={};Cm=Object.defineProperty,qk=Object.getOwnPropertyDescriptor,Lk=Object.getOwnPropertyNames,jk=Object.prototype.hasOwnProperty,Vk=(t=>typeof zt<"u"?zt:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof zt<"u"?zt:e)[A]}):t)(function(t){if(typeof zt<"u")return zt.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),Oe=(t,e)=>()=>(t&&(e=t(t=0)),e),xo=(t,e)=>{for(var A in e)Cm(t,A,{get:e[A],enumerable:!0})},Kk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Lk(e))!jk.call(t,n)&&n!==A&&Cm(t,n,{get:()=>e[n],enumerable:!(r=qk(e,n))||r.enumerable});return t},sg=t=>Kk(Cm({},"__esModule",{value:!0}),t),b0=Oe(()=>{"use strict";Do=new Map,cn=[],oi=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=Do.get(t);if(r===void 0)Do.set(t,{backend:e,priority:A});else{if(r.priority>A)return;if(r.priority===A&&r.backend!==e)throw new Error(`cannot register backend "${t}" using priority ${A}`)}if(A>=0){let n=cn.indexOf(t);n!==-1&&cn.splice(n,1);for(let a=0;a<cn.length;a++)if(Do.get(cn[a]).priority<=A){cn.splice(a,0,t);return}cn.push(t)}return}throw new TypeError("not a valid backend")},$y=async t=>{let e=Do.get(t);if(!e)return"backend not found.";if(e.initialized)return e.backend;if(e.aborted)return e.error;{let A=!!e.initPromise;try{return A||(e.initPromise=e.backend.init(t)),await e.initPromise,e.initialized=!0,e.backend}catch(r){return A||(e.error=`${r}`,e.aborted=!0),e.error}finally{delete e.initPromise}}},C0=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?cn:A,n,a=[],i=new Set;for(let o of r){let c=await $y(o);typeof c=="string"?a.push({name:o,err:c}):(n||(n=c),n===c&&i.add(o))}if(!n)throw new Error(`no available backend found. ERR: ${a.map(o=>`[${o.name}] ${o.err}`).join(", ")}`);for(let{name:o,err:c}of a)A.includes(o)&&console.warn(`removing requested execution provider "${o}" from session options because it is not available: ${c}`);let s=e.filter(o=>i.has(typeof o=="string"?o:o.name));return[n,new Proxy(t,{get:(o,c)=>c==="executionProviders"?s:Reflect.get(o,c)})]}}),Wk=Oe(()=>{"use strict";b0()}),Zk=Oe(()=>{"use strict";E0="1.26.0"}),T0=Oe(()=>{"use strict";Zk(),Jf="warning",Tt={wasm:{},webgl:{},webgpu:{},versions:{common:E0},set logLevel(t){if(t!==void 0){if(typeof t!="string"||["verbose","info","warning","error","fatal"].indexOf(t)===-1)throw new Error(`Unsupported logging level: ${t}`);Jf=t}},get logLevel(){return Jf}},Object.defineProperty(Tt,"logLevel",{enumerable:!0})}),$k=Oe(()=>{"use strict";T0(),ct=Tt}),Jk=Oe(()=>{"use strict";k0=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);A.width=t.dims[3],A.height=t.dims[2];let r=A.getContext("2d");if(r!=null){let n,a;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[3]):(n=t.dims[3],a=t.dims[2]);let i=e?.format!==void 0?e.format:"RGB",s=e?.norm,o,c;s===void 0||s.mean===void 0?o=[255,255,255,255]:typeof s.mean=="number"?o=[s.mean,s.mean,s.mean,s.mean]:(o=[s.mean[0],s.mean[1],s.mean[2],0],s.mean[3]!==void 0&&(o[3]=s.mean[3])),s===void 0||s.bias===void 0?c=[0,0,0,0]:typeof s.bias=="number"?c=[s.bias,s.bias,s.bias,s.bias]:(c=[s.bias[0],s.bias[1],s.bias[2],0],s.bias[3]!==void 0&&(c[3]=s.bias[3]));let g=a*n,u=0,l=g,f=g*2,p=-1;i==="RGBA"?(u=0,l=g,f=g*2,p=g*3):i==="RGB"?(u=0,l=g,f=g*2):i==="RBG"&&(u=0,f=g,l=g*2);for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=(t.data[u++]-c[0])*o[0],D=(t.data[l++]-c[1])*o[1],b=(t.data[f++]-c[2])*o[2],E=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+b+","+E+")",r.fillRect(y,h,1,1)}if("toDataURL"in A)return A.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},G0=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),r;if(A!=null){let n,a,i;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[1],i=t.dims[3]):(n=t.dims[3],a=t.dims[2],i=t.dims[1]);let s=e!==void 0&&e.format!==void 0?e.format:"RGB",o=e?.norm,c,g;o===void 0||o.mean===void 0?c=[255,255,255,255]:typeof o.mean=="number"?c=[o.mean,o.mean,o.mean,o.mean]:(c=[o.mean[0],o.mean[1],o.mean[2],255],o.mean[3]!==void 0&&(c[3]=o.mean[3])),o===void 0||o.bias===void 0?g=[0,0,0,0]:typeof o.bias=="number"?g=[o.bias,o.bias,o.bias,o.bias]:(g=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(g[3]=o.bias[3]));let u=a*n;if(e!==void 0&&(e.format!==void 0&&i===4&&e.format!=="RGBA"||i===3&&e.format!=="RGB"&&e.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let l=4,f=0,p=1,h=2,y=3,w=0,D=u,b=u*2,E=-1;s==="RGBA"?(w=0,D=u,b=u*2,E=u*3):s==="RGB"?(w=0,D=u,b=u*2):s==="RBG"&&(w=0,b=u,D=u*2),r=A.createImageData(n,a);for(let x=0;x<a*n;f+=l,p+=l,h+=l,y+=l,x++)r.data[f]=(t.data[w++]-g[0])*c[0],r.data[p]=(t.data[D++]-g[1])*c[1],r.data[h]=(t.data[b++]-g[2])*c[2],r.data[y]=E===-1?255:(t.data[E++]-g[3])*c[3]}else throw new Error("Can not access image data");return r}}),Xk=Oe(()=>{"use strict";bm(),tg=(t,e)=>{if(t===void 0)throw new Error("Image buffer must be defined");if(e.height===void 0||e.width===void 0)throw new Error("Image height and width must be defined");if(e.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:A,width:r}=e,n=e.norm??{mean:255,bias:0},a,i;typeof n.mean=="number"?a=[n.mean,n.mean,n.mean,n.mean]:a=[n.mean[0],n.mean[1],n.mean[2],n.mean[3]??255],typeof n.bias=="number"?i=[n.bias,n.bias,n.bias,n.bias]:i=[n.bias[0],n.bias[1],n.bias[2],n.bias[3]??0];let s=e.format!==void 0?e.format:"RGBA",o=e.tensorFormat!==void 0&&e.tensorFormat!==void 0?e.tensorFormat:"RGB",c=A*r,g=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,l=0,f=1,p=2,h=3,y=0,w=c,D=c*2,b=-1;s==="RGB"&&(u=3,l=0,f=1,p=2,h=-1),o==="RGBA"?b=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let E=0;E<c;E++,l+=u,p+=u,f+=u,h+=u)g[y++]=(t[l]+i[0])/a[0],g[w++]=(t[f]+i[1])/a[1],g[D++]=(t[p]+i[2])/a[2],b!==-1&&h!==-1&&(g[b++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new sA("float32",g,[1,4,A,r]):new sA("float32",g,[1,3,A,r])},x0=async(t,e)=>{let A=typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement,r=typeof ImageData<"u"&&t instanceof ImageData,n=typeof ImageBitmap<"u"&&t instanceof ImageBitmap,a=typeof t=="string",i,s=e??{},o=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=g=>typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement||g instanceof OffscreenCanvas?g.getContext("2d"):null;if(A){let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(l=e.resizedHeight,f=e.resizedWidth),e!==void 0){if(s=e,e.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");s.tensorFormat="RGBA",s.height=l,s.width=f}else s.tensorFormat="RGBA",s.height=l,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,l).data}else throw new Error("Can not access image data")}else if(r){let g,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(g=e.resizedHeight,u=e.resizedWidth):(g=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=g,s.width=u,e!==void 0){let l=o();l.width=u,l.height=g;let f=c(l);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,g).data;else throw new Error("Can not access image data")}else i=t.data}else if(n){if(e===void 0)throw new Error("Please provide image config with format for Imagebitmap");let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;return u.drawImage(t,0,0,f,l),i=u.getImageData(0,0,f,l).data,s.height=l,s.width=f,tg(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((g,u)=>{let l=o(),f=c(l);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{l.width=p.width,l.height=p.height,f.drawImage(p,0,0,l.width,l.height);let h=f.getImageData(0,0,l.width,l.height);s.height=l.height,s.width=l.width,g(tg(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return tg(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},S0=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new sA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},Y0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new sA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},v0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new sA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},O0=(t,e,A)=>new sA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),eG=Oe(()=>{"use strict";ai=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ko=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Xf=!1,_0=()=>{if(!Xf){Xf=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(ai.set("int64",BigInt64Array),ko.set(BigInt64Array,"int64")),e&&(ai.set("uint64",BigUint64Array),ko.set(BigUint64Array,"uint64")),r?(ai.set("float16",A),ko.set(A,"float16")):ai.set("float16",Uint16Array)}}}),tG=Oe(()=>{"use strict";bm(),M0=t=>{let e=1;for(let A=0;A<t.length;A++){let r=t[A];if(typeof r!="number"||!Number.isSafeInteger(r))throw new TypeError(`dims[${A}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${A}] must be a non-negative integer, got: ${r}`);e*=r}return e},R0=(t,e)=>{switch(t.location){case"cpu":return new sA(t.type,t.data,e);case"cpu-pinned":return new sA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new sA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new sA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new sA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),bm=Oe(()=>{"use strict";Jk(),Xk(),eG(),tG(),sA=class{constructor(t,e,A){_0();let r,n;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,n=t.dims,t.location){case"cpu-pinned":{let i=ai.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,s;if(typeof t=="string")if(r=t,s=A,t==="string"){if(!Array.isArray(e))throw new TypeError("A string tensor's data must be a string array.");i=e}else{let o=ai.get(t);if(o===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(e)){if(t==="float16"&&o===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${o.name} as data.`);t==="uint64"||t==="int64"?i=o.from(e,BigInt):i=o.from(e)}else if(e instanceof o)i=e;else if(e instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(e);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(t==="float16"&&e instanceof Uint16Array&&o!==Uint16Array)i=new globalThis.Float16Array(e.buffer,e.byteOffset,e.length);else throw new TypeError(`A ${r} tensor's data must be type of ${o}`)}else if(s=e,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let o=typeof t[0];if(o==="string")r="string",i=t;else if(o==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${o}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let o=ko.get(t.constructor);if(o===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=o,i=t}if(s===void 0)s=[i.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");n=s,this.cpuData=i,this.dataLocation="cpu"}let a=M0(n);if(this.cpuData&&a!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(t,e){return x0(t,e)}static fromTexture(t,e){return S0(t,e)}static fromGpuBuffer(t,e){return Y0(t,e)}static fromMLTensor(t,e){return v0(t,e)}static fromPinnedBuffer(t,e,A){return O0(t,e,A)}toDataURL(t){return k0(this,t)}toImageData(t){return G0(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let e=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=e,t&&this.disposer&&(this.disposer(),this.disposer=void 0),e}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return R0(this,t)}}}),Q0=Oe(()=>{"use strict";bm(),jA=sA}),F0=Oe(()=>{"use strict";T0(),og=(t,e)=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.timeStamp(`${t}::ORT::${e}`)},em=(t,e)=>{let A=new Error().stack?.split(/\r\n|\r|\n/g)||[],r=!1;for(let n=0;n<A.length;n++){if(r&&!A[n].includes("TRACE_FUNC")){let a=`FUNC_${t}::${A[n].trim().split(" ")[1]}`;e&&(a+=`::${e}`),og("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},ci=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||em("BEGIN",t)},ui=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||em("END",t)},dn=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.time(`ORT::${t}`)},fn=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.timeEnd(`ORT::${t}`)}}),AG=Oe(()=>{"use strict";b0(),Q0(),F0(),z0=class N0{constructor(e){this.handler=e}async run(e,A,r){ci(),dn("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof jA||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if(typeof A=="object"){if(A===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof jA)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(A.length===0)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(let c of A){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);n[c]=null}if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,g=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(g.indexOf(u)!==-1){let l=A[u];(l===null||l instanceof jA)&&(c=!0,i=!1,n[u]=l)}if(c){if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else a=A}}else if(typeof A<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof e[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(i)for(let c of this.outputNames)n[c]=null;let s=await this.handler.run(e,n,a),o={};for(let c in s)if(Object.hasOwnProperty.call(s,c)){let g=s[c];g instanceof jA?o[c]=g:o[c]=new jA(g.type,g.data,g.dims)}return fn("InferenceSession.run"),ui(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){ci(),dn("InferenceSession.create");let a,i={};if(typeof e=="string"){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){let g=e,u=0,l=e.byteLength;if(typeof A=="object"&&A!==null)i=A;else if(typeof A=="number"){if(u=A,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=g.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${g.byteLength}).`);if(l=e.byteLength-u,typeof r=="number"){if(l=r,!Number.isSafeInteger(l))throw new RangeError("'byteLength' must be an integer.");if(l<=0||u+l>g.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${g.byteLength-u}].`);if(typeof n=="object"&&n!==null)i=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof r<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof A<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(g,u,l)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await C0(i),c=await s.createInferenceSessionHandler(a,o);return fn("InferenceSession.create"),ui(),new N0(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),rG=Oe(()=>{"use strict";AG(),Em=z0}),nG=Oe(()=>{"use strict"}),iG=Oe(()=>{"use strict"}),aG=Oe(()=>{"use strict"}),sG=Oe(()=>{"use strict"}),H0={};xo(H0,{InferenceSession:()=>Em,TRACE:()=>og,TRACE_EVENT_BEGIN:()=>dn,TRACE_EVENT_END:()=>fn,TRACE_FUNC_BEGIN:()=>ci,TRACE_FUNC_END:()=>ui,Tensor:()=>jA,env:()=>ct,registerBackend:()=>oi});gi=Oe(()=>{"use strict";Wk(),$k(),rG(),Q0(),nG(),iG(),F0(),aG(),sG()}),Tm=Oe(()=>{"use strict"}),U0={};xo(U0,{default:()=>q0});oG=Oe(()=>{"use strict";iI(),li(),km(),tm="ort-wasm-proxy-worker",Am=globalThis.self?.name===tm,Am&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":Gm(A.wasm).then(()=>{Om(A).then(()=>{postMessage({type:e})},r=>{postMessage({type:e,err:r})})},r=>{postMessage({type:e,err:r})});break;case"init-ep":{let{epName:r,env:n}=A;_m(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=gg(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Mm(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Rm(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Qm(r,n,a,i,new Array(i.length).fill(null),s).then(o=>{o.some(c=>c[3]!=="cpu")?postMessage({type:e,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:e,out:o},zm([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Fm(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),q0=Am?null:t=>new Worker(t??iA,{type:"module",name:tm})}),L0={};xo(L0,{default:()=>j0});cG=Oe(()=>{"use strict";j0=Jy,Xy=globalThis.self?.name?.startsWith("em-pthread"),Xy&&Jy()}),km=Oe(()=>{"use strict";Tm(),rm=typeof location>"u"?void 0:location.origin,Bm=LA.url>"file:"&&LA.url<"file;",e0=()=>{if(Bm){let t=URL;return new URL(new t("ort.webgpu.bundle.min.mjs",LA.url).href,rm).href}return LA.url},iA=e0(),V0=()=>{if(iA&&!iA.startsWith("blob:"))return iA.substring(0,iA.lastIndexOf("/")+1)},Ag=(t,e)=>{try{let A=e??iA;return(A?new URL(t,A):new URL(t)).origin===rm}catch{return!1}},t0=(t,e)=>{let A=e??iA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},A0=(t,e)=>`${e??"./"}${t}`,nm=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},r0=async t=>(await import(t)).default,im=(oG(),sg(U0)).default,K0=async()=>{if(!iA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ag(iA))return[void 0,im()];let t=await nm(iA);return[t,im(t)]},am=(cG(),sg(L0)).default,W0=async(t,e,A,r)=>{let n=am&&!(t||e);if(n)if(iA)n=Ag(iA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,am];{let a="ort-wasm-simd-threaded.asyncify.mjs",i=t??t0(a,e),s=A&&i&&!Ag(i,e),o=s?await nm(i):i??A0(a,e);return[s?o:void 0,await r0(o)]}}}),li=Oe(()=>{"use strict";km(),rg=!1,Co=!1,om=!1,n0=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},i0=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},a0=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Gm=async t=>{if(rg)return Promise.resolve();if(Co)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(om)throw new Error("previous call to 'initializeWebAssembly()' failed.");Co=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!a0())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!i0())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=n0();A>1&&!r&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+A+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),t.numThreads=A=1);let n=t.wasmPaths,a=typeof n=="string"?n:void 0,i=n?.mjs,s=i?.href??i,o=n?.wasm,c=o?.href??o,g=t.wasmBinary,[u,l]=await W0(s,a,A>1,!!g||!!c),f=!1,p=[];if(e>0&&p.push(new Promise(h=>{setTimeout(()=>{f=!0,h()},e)})),p.push(new Promise((h,y)=>{let w={numThreads:A};if(g)w.wasmBinary=g,w.locateFile=D=>D;else if(c||a)w.locateFile=D=>c??a+D;else if(s&&s.indexOf("blob:")!==0)w.locateFile=D=>new URL(D,s).href;else if(u){let D=V0();D&&(w.locateFile=b=>D+b)}l(w).then(D=>{Co=!1,rg=!0,sm=D,h(),u&&URL.revokeObjectURL(u)},D=>{Co=!1,om=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},je=()=>{if(rg&&sm)return sm;throw new Error("WebAssembly is not initialized yet.")}}),xm=Oe(()=>{"use strict";li(),aA=(t,e)=>{let A=je(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},cg=(t,e,A,r)=>{if(typeof t=="object"&&t!==null){if(A.has(t))throw new Error("Circular reference in options");A.add(t)}Object.entries(t).forEach(([n,a])=>{let i=e?e+n:n;if(typeof a=="object")cg(a,i+".",A,r);else if(typeof a=="string"||typeof a=="number")r(i,a.toString());else if(typeof a=="boolean")r(i,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},He=t=>{let e=je(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetLastError(n,n+r);let a=Number(e.getValue(n,r===4?"i32":"i64")),i=e.getValue(n+r,"*"),s=i?e.UTF8ToString(i):"";throw new Error(`${t} ERROR_CODE: ${a}, ERROR_MESSAGE: ${s}`)}finally{e.stackRestore(A)}}}),uG=Oe(()=>{"use strict";li(),xm(),Z0=t=>{let e=je(),A=0,r=[],n=t||{};try{if(t?.logSeverityLevel===void 0)n.logSeverityLevel=2;else if(typeof t.logSeverityLevel!="number"||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${t.logSeverityLevel}`);if(t?.logVerbosityLevel===void 0)n.logVerbosityLevel=0;else if(typeof t.logVerbosityLevel!="number"||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);t?.terminate===void 0&&(n.terminate=!1);let a=0;return t?.tag!==void 0&&(a=aA(t.tag,r)),A=e._OrtCreateRunOptions(n.logSeverityLevel,n.logVerbosityLevel,!!n.terminate,a),A===0&&He("Can't create run options."),t?.extra!==void 0&&cg(t.extra,"",new WeakSet,(i,s)=>{let o=aA(i,r),c=aA(s,r);e._OrtAddRunConfigEntry(A,o,c)!==0&&He(`Can't set a run config entry: ${i} - ${s}.`)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseRunOptions(A),r.forEach(i=>e._free(i)),a}}}),gG=Oe(()=>{"use strict";li(),xm(),s0=t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}},o0=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},c0=t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});let e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1"),t.executionProviders&&t.executionProviders.some(A=>(typeof A=="string"?A:A.name)==="webgpu")&&(t.enableMemPattern=!1)},Ya=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);je()._OrtAddSessionConfigEntry(t,n,a)!==0&&He(`Can't set a session config entry: ${e} - ${A}.`)},un=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);t.push([n,a])},u0=async(t,e,A)=>{let r=e.executionProviders;for(let n of r){let a=typeof n=="string"?n:n.name,i=[];switch(a){case"webnn":if(a="WEBNN",Ya(t,"session.disable_quant_qdq","1",A),Ya(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Ya(t,"deviceType",u,A)}break;case"webgpu":{a="WebGPU";let u;if(typeof n!="string"){let f=n;if(f.device)if(typeof GPUDevice<"u"&&f.device instanceof GPUDevice)u=f.device;else throw new Error("Invalid GPU device set in WebGPU EP options.");let{enableGraphCapture:p}=e;if(typeof p=="boolean"&&p&&un(i,"enableGraphCapture","1",A),typeof f.preferredLayout=="string"&&un(i,"preferredLayout",f.preferredLayout,A),f.forceCpuNodeNames){let h=Array.isArray(f.forceCpuNodeNames)?f.forceCpuNodeNames:[f.forceCpuNodeNames];un(i,"forceCpuNodeNames",h.join(`
11
- `),A)}f.validationMode&&un(i,"validationMode",f.validationMode,A)}let l=je().webgpuRegisterDevice(u);if(l){let[f,p,h]=l;un(i,"deviceId",f.toString(),A),un(i,"webgpuInstance",p.toString(),A),un(i,"webgpuDevice",h.toString(),A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=aA(a,A),o=i.length,c=0,g=0;if(o>0){c=je()._malloc(o*je().PTR_SIZE),A.push(c),g=je()._malloc(o*je().PTR_SIZE),A.push(g);for(let u=0;u<o;u++)je().setValue(c+u*je().PTR_SIZE,i[u][0],"*"),je().setValue(g+u*je().PTR_SIZE,i[u][1],"*")}await je()._OrtAppendExecutionProvider(t,s,c,g,o)!==0&&He(`Can't append execution provider: ${a}.`)}},$0=async t=>{let e=je(),A=0,r=[],n=t||{};c0(n);try{let a=s0(n.graphOptimizationLevel??"all"),i=o0(n.executionMode??"sequential"),s=typeof n.logId=="string"?aA(n.logId,r):0,o=n.logSeverityLevel??2;if(!Number.isInteger(o)||o<0||o>4)throw new Error(`log severity level is not valid: ${o}`);let c=n.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let g=typeof n.optimizedModelFilePath=="string"?aA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,g),A===0&&He("Can't create session options."),n.executionProviders&&await u0(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Ya(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,l]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof l!="number"||!Number.isInteger(l)||l<0)throw new Error(`free dimension override value must be a non-negative integer: ${l}`);let f=aA(u,r);e._OrtAddFreeDimensionOverride(A,f,l)!==0&&He(`Can't set a free dimension override: ${u} - ${l}.`)}return n.extra!==void 0&&cg(n.extra,"",new WeakSet,(u,l)=>{Ya(A,u,l,r)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseSessionOptions(A)!==0&&He("Can't release session options."),r.forEach(i=>e._free(i)),a}}}),_a=Oe(()=>{"use strict";si=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${t}`)}},ag=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${t}`)}},Oa=(t,e)=>{let A=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][t],r=typeof e=="number"?e:e.reduce((n,a)=>n*a,1);return A>0?Math.ceil(r*A):void 0},Go=t=>{switch(t){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}},ug=t=>{switch(t){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${t}`)}},Sm=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Ym=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Pm=t=>{switch(t){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${t}`)}}}),J0=Oe(()=>{"use strict";Tm(),vm=async t=>{if(typeof t=="string"){let e=await fetch(t);if(!e.ok)throw new Error(`failed to load external data file: ${t}`);let A=e.headers.get("Content-Length"),r=A?parseInt(A,10):0;if(r<1073741824)return new Uint8Array(await e.arrayBuffer());{if(!e.body)throw new Error(`failed to load external data file: ${t}, no response body.`);let n=e.body.getReader(),a;try{a=new ArrayBuffer(r)}catch(s){if(s instanceof RangeError){let o=Math.ceil(r/65536);a=new WebAssembly.Memory({initial:o,maximum:o}).buffer}else throw s}let i=0;for(;;){let{done:s,value:o}=await n.read();if(s)break;let c=o.byteLength;new Uint8Array(a,i,c).set(o),i+=c}return new Uint8Array(a,0,r)}}else return t instanceof Blob?new Uint8Array(await t.arrayBuffer()):t instanceof Uint8Array?t:new Uint8Array(t)}}),lG=Oe(()=>{"use strict";_a(),X0=(t,e)=>new(Go(e))(t)}),tI=Oe(()=>{"use strict";_a(),g0=["V","I","W","E","F"],l0=(t,e)=>{console.log(`[${g0[t]},${new Date().toISOString()}]${e}`)},eI=(t,e)=>{d0=t,f0=e},m0=(t,e)=>{let A=ug(t),r=ug(d0);A>=r&&l0(A,typeof e=="function"?e():e)},St=(...t)=>{f0&&m0(...t)}}),dG=Oe(()=>{"use strict";_a(),tI(),cm=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),ym=(t,e)=>{if(e==="int32")return t;let A=cm.get(e);if(!A)throw new Error(`WebNN backend does not support data type: ${e}`);let r=A/8;if(t.byteLength%r!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${r}.`);let n=t.byteLength/r,a=new(Go(e))(t.buffer,t.byteOffset,n);switch(e){case"int64":case"uint64":{let i=new Int32Array(n);for(let s=0;s<n;s++){let o=a[s];if(o>2147483647n||o<-2147483648n)throw new Error("Can not convert int64 data to int32 - value out of range.");i[s]=Number(o)}return new Uint8Array(i.buffer)}case"int8":case"uint8":case"uint32":{if(e==="uint32"&&a.some(s=>s>2147483647))throw new Error("Can not convert uint32 data to int32 - value out of range.");let i=Int32Array.from(a,Number);return new Uint8Array(i.buffer)}default:throw new Error(`Unsupported data conversion from ${e} to 'int32'`)}},um=(t,e)=>{if(e==="int32")return t;if(t.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let A=t.byteLength/4,r=new Int32Array(t.buffer,t.byteOffset,A);switch(e){case"int64":{let n=BigInt64Array.from(r,BigInt);return new Uint8Array(n.buffer)}case"uint64":{if(r.some(a=>a<0))throw new Error("Can not convert int32 data to uin64 - negative value found.");let n=BigUint64Array.from(r,BigInt);return new Uint8Array(n.buffer)}case"int8":{if(r.some(a=>a<-128||a>127))throw new Error("Can not convert int32 data to int8 - value out of range.");let n=Int8Array.from(r,Number);return new Uint8Array(n.buffer)}case"uint8":{if(r.some(n=>n<0||n>255))throw new Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(r,Number)}case"uint32":{if(r.some(a=>a<0))throw new Error("Can not convert int32 data to uint32 - negative value found.");let n=Uint32Array.from(r,Number);return new Uint8Array(n.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${e}`)}},h0=1,gm=()=>h0++,p0=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),lm=(t,e)=>{let A=cm.get(t);if(!A)throw new Error(`WebNN backend does not support data type: ${t}`);return e.length>0?Math.ceil(e.reduce((r,n)=>r*n)*A/8):0},dm=class{constructor(t){this.isDataConverted=!1;let{sessionId:e,context:A,tensor:r,dataType:n,shape:a,fallbackDataType:i}=t;this.sessionId=e,this.mlContext=A,this.mlTensor=r,this.dataType=n,this.tensorShape=a,this.fallbackDataType=i}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return lm(this.dataType,this.tensorShape)}destroy(){St("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(t){this.mlContext.writeTensor(this.mlTensor,t)}async read(t){if(this.fallbackDataType){let e=await this.mlContext.readTensor(this.mlTensor),A=um(new Uint8Array(e),this.dataType);if(t){(t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)).set(A);return}else return A.buffer}else return t?this.mlContext.readTensor(this.mlTensor,t):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(t,e,A){return this.mlContext===t&&this.dataType===e&&this.tensorShape.length===A.length&&this.tensorShape.every((r,n)=>r===A[n])}setIsDataConverted(t){this.isDataConverted=t}},fm=class{constructor(t,e){this.tensorManager=t,this.wrapper=e}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(t,e,A,r){let n=this.tensorManager.getMLContext(t),a=this.tensorManager.getMLOpSupportLimits(t),i;if(!a?.input.dataTypes.includes(e)){if(i=p0.get(e),!i||a?.input.dataTypes.includes(i))throw new Error(`WebNN backend does not support data type: ${e}`);St("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${e} to ${i}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(n,e,A))return this.wrapper.tensor;if(r){if(this.wrapper.byteLength!==lm(e,A))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let s=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(t,e,A,s,!0,!0,i),r&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(t){let e=t;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType==="int32")e=ym(t,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw new Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(t.byteLength===this.wrapper.byteLength){this.wrapper.write(e);return}else St("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(e):this.activeUpload=new Uint8Array(e)}async download(t){if(this.activeUpload){let e=this.wrapper?.isDataConverted?um(this.activeUpload,this.wrapper?.type):this.activeUpload;if(t){t instanceof ArrayBuffer?new Uint8Array(t).set(e):new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(e);return}else return e.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return t?this.wrapper.read(t):this.wrapper.read()}},w0=class{constructor(t){this.backend=t,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(t){let e=this.backend.getMLContext(t);if(!e)throw new Error("MLContext not found for session.");return e}getMLOpSupportLimits(t){return this.backend.getMLOpSupportLimits(t)}reserveTensorId(){let t=gm();return this.tensorTrackersById.set(t,new fm(this)),t}releaseTensorId(t){let e=this.tensorTrackersById.get(t);e&&(this.tensorTrackersById.delete(t),e.tensorWrapper&&this.releaseTensor(e.tensorWrapper))}async ensureTensor(t,e,A,r,n){St("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${e}, dataType: ${A}, shape: ${r}, copyOld: ${n}}`);let a=this.tensorTrackersById.get(e);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(t,A,r,n)}upload(t,e){let A=this.tensorTrackersById.get(t);if(!A)throw new Error("Tensor not found.");A.upload(e)}async download(t,e){St("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${t}, dstBuffer: ${e?.byteLength}}`);let A=this.tensorTrackersById.get(t);if(!A)throw new Error("Tensor not found.");return A.download(e)}releaseTensorsForSession(t){for(let e of this.freeTensors)e.sessionId===t&&e.destroy();this.freeTensors=this.freeTensors.filter(e=>e.sessionId!==t)}registerTensor(t,e,A,r){let n=this.getMLContext(t),a=gm(),i=new dm({sessionId:t,context:n,tensor:e,dataType:A,shape:r});return this.tensorTrackersById.set(a,new fm(this,i)),this.externalTensors.add(i),a}async getCachedTensor(t,e,A,r,n,a,i){let s=this.getMLContext(t);for(let[c,g]of this.freeTensors.entries())if(g.canReuseTensor(s,e,A)){St("verbose",()=>`[WebNN] Reusing tensor {dataType: ${e}, ${i?`fallbackDataType: ${i},`:""} shape: ${A}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=t,u}St("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${e}, ${i?`fallbackDataType: ${i},`:""} shape: ${A}}`);let o=await s.createTensor({dataType:i??e,shape:A,dimensions:A,usage:r,writable:n,readable:a});return new dm({sessionId:t,context:s,tensor:o,dataType:e,shape:A,fallbackDataType:i})}releaseTensor(t){this.externalTensors.has(t)&&this.externalTensors.delete(t),this.freeTensors.push(t)}},AI=(...t)=>new w0(...t)}),rI={};xo(rI,{WebNNBackend:()=>nI});fG=Oe(()=>{"use strict";_a(),li(),lG(),dG(),tI(),bo=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),B0=(t,e)=>{if(t===e)return!0;if(t===void 0||e===void 0)return!1;let A=Object.keys(t).sort(),r=Object.keys(e).sort();return A.length===r.length&&A.every((n,a)=>n===r[a]&&t[n]===e[n])},nI=class{constructor(t){this.tensorManager=AI(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.sessionGraphOutputs=new Map,this.temporaryGraphInputs=[],this.temporaryGraphOutputs=[],this.temporarySessionTensorIds=new Map,this.mlOpSupportLimitsBySessionId=new Map,eI(t.logLevel,!!t.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(t){St("verbose",()=>`[WebNN] onRunStart {sessionId: ${t}}`),this.activeSessionId=t}onRunEnd(t){St("verbose",()=>`[WebNN] onRunEnd {sessionId: ${t}}`);let e=this.temporarySessionTensorIds.get(t);if(e){for(let A of e)St("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${A}}`),this.tensorManager.releaseTensorId(A);this.temporarySessionTensorIds.delete(t),this.activeSessionId=void 0}}async createMLContext(t){if(t instanceof GPUDevice){let A=this.mlContextCache.findIndex(r=>r.gpuDevice===t);if(A!==-1)return this.mlContextCache[A].mlContext;{let r=await navigator.ml.createContext(t);return this.mlContextCache.push({gpuDevice:t,mlContext:r}),r}}else if(t===void 0){let A=this.mlContextCache.findIndex(r=>r.options===void 0&&r.gpuDevice===void 0);if(A!==-1)return this.mlContextCache[A].mlContext;{let r=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:r}),r}}let e=this.mlContextCache.findIndex(A=>B0(A.options,t));if(e!==-1)return this.mlContextCache[e].mlContext;{let A=await navigator.ml.createContext(t);return this.mlContextCache.push({options:t,mlContext:A}),A}}registerMLContext(t,e){this.mlContextBySessionId.set(t,e);let A=this.sessionIdsByMLContext.get(e);A||(A=new Set,this.sessionIdsByMLContext.set(e,A)),A.add(t),this.mlOpSupportLimitsBySessionId.has(t)||this.mlOpSupportLimitsBySessionId.set(t,e.opSupportLimits()),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(t,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(t,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(t){this.sessionGraphInputs.delete(t),this.sessionGraphOutputs.delete(t);let e=this.mlContextBySessionId.get(t);if(!e)return;this.tensorManager.releaseTensorsForSession(t),this.mlContextBySessionId.delete(t),this.mlOpSupportLimitsBySessionId.delete(t);let A=this.sessionIdsByMLContext.get(e);if(A.delete(t),A.size===0){this.sessionIdsByMLContext.delete(e);let r=this.mlContextCache.findIndex(n=>n.mlContext===e);r!==-1&&this.mlContextCache.splice(r,1)}}getMLContext(t){return this.mlContextBySessionId.get(t)}getMLOpSupportLimits(t){return this.mlOpSupportLimitsBySessionId.get(t)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(t){St("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t)}async ensureTensor(t,e,A,r,n){let a=bo.get(A);if(!a)throw new Error(`Unsupported ONNX data type: ${A}`);return this.tensorManager.ensureTensor(t??this.currentSessionId,e,a,r,n)}async createTemporaryTensor(t,e,A){St("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${e}, shape: ${A}}`);let r=bo.get(e);if(!r)throw new Error(`Unsupported ONNX data type: ${e}`);let n=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(t,n,r,A,!1);let a=this.temporarySessionTensorIds.get(t);return a?a.push(n):this.temporarySessionTensorIds.set(t,[n]),n}uploadTensor(t,e){if(!je().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");St("verbose",()=>`[WebNN] uploadTensor {tensorId: ${t}, data: ${e.byteLength}}`),this.tensorManager.upload(t,e)}async downloadTensor(t,e){return this.tensorManager.download(t,e)}createMLTensorDownloader(t,e){return async()=>{let A=await this.tensorManager.download(t);return X0(A,e)}}registerMLTensor(t,e,A,r){let n=bo.get(A);if(!n)throw new Error(`Unsupported ONNX data type: ${A}`);let a=this.tensorManager.registerTensor(t,e,n,r);return St("verbose",()=>`[WebNN] registerMLTensor {tensor: ${e}, dataType: ${n}, dimensions: ${r}} -> {tensorId: ${a}}`),a}registerMLConstant(t,e,A,r,n,a,i=!1){if(!a)throw new Error("External mounted files are not available.");let s=t;t.startsWith("./")&&(s=t.substring(2));let o=a.get(s);if(!o)throw new Error(`File with name ${s} not found in preloaded files.`);if(e+A>o.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=o.slice(e,e+A).buffer,g;switch(n.dataType){case"float32":g=new Float32Array(c);break;case"float16":g=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":g=new Int32Array(c);break;case"uint32":g=new Uint32Array(c);break;case"int64":if(i){let u=ym(new Uint8Array(c),"int64");g=new Int32Array(u.buffer),n.dataType="int32"}else g=new BigInt64Array(c);break;case"uint64":g=new BigUint64Array(c);break;case"int8":g=new Int8Array(c);break;case"int4":case"uint4":case"uint8":g=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${n.dataType} in creating WebNN Constant from external data.`)}return St("verbose",()=>`[WebNN] registerMLConstant {dataType: ${n.dataType}, shape: ${n.shape}}} ${i?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),r.constant(n,g)}registerGraphInput(t){this.temporaryGraphInputs.push(t)}registerGraphOutput(t){this.temporaryGraphOutputs.push(t)}isGraphInput(t,e){let A=this.sessionGraphInputs.get(t);return A?A.includes(e):!1}isGraphOutput(t,e){let A=this.sessionGraphOutputs.get(t);return A?A.includes(e):!1}isGraphInputOutputTypeSupported(t,e,A=!0){let r=bo.get(si(e)),n=this.mlOpSupportLimitsBySessionId.get(t);return typeof r>"u"?!1:A?!!n?.input.dataTypes.includes(r):!!n?.output.dataTypes.includes(r)}flush(){}}}),iI=Oe(()=>{"use strict";gi(),uG(),gG(),_a(),li(),xm(),J0(),P0=(t,e)=>{je()._OrtInit(t,e)!==0&&He("Can't initialize onnxruntime.")},Om=async t=>{P0(t.wasm.numThreads,ug(t.logLevel))},_m=async(t,e)=>{je().asyncInit?.();let A=t.webgpu.adapter;if(e==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(A){if(typeof A.limits!="object"||typeof A.features!="object"||typeof A.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let r=t.webgpu.powerPreference;if(r!==void 0&&r!=="low-power"&&r!=="high-performance")throw new Error(`Invalid powerPreference setting: "${r}"`);let n=t.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(A=await navigator.gpu.requestAdapter({powerPreference:r,forceFallbackAdapter:n}),!A)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(e==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment");if(e==="webgpu"&&je().webgpuInit(r=>{t.webgpu.device=r}),e==="webnn"){let r=new(fG(),sg(rI)).WebNNBackend(t);je().webnnInit([r,()=>r.reserveTensorId(),n=>r.releaseTensorId(n),async(n,a,i,s,o)=>r.ensureTensor(n,a,i,s,o),(n,a)=>{r.uploadTensor(n,a)},async(n,a)=>r.downloadTensor(n,a),(n,a)=>r.registerMLContext(n,a),!!t.trace])}},gn=new Map,y0=t=>{let e=je(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetInputOutputCount(t,n,n+r)!==0&&He("Can't get session input/output count.");let a=r===4?"i32":"i64";return[Number(e.getValue(n,a)),Number(e.getValue(n+r,a))]}finally{e.stackRestore(A)}},mm=(t,e)=>{let A=je(),r=A.stackSave(),n=0;try{let a=A.PTR_SIZE,i=A.stackAlloc(2*a);A._OrtGetInputOutputMetadata(t,e,i,i+a)!==0&&He("Can't get session input/output metadata.");let s=Number(A.getValue(i,"*"));n=Number(A.getValue(i+a,"*"));let o=A.HEAP32[n/4];if(o===0)return[s,0];let c=A.HEAPU32[n/4+1],g=[];for(let u=0;u<c;u++){let l=Number(A.getValue(n+8+u*a,"*"));g.push(l!==0?A.UTF8ToString(l):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,g]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},gg=t=>{let e=je(),A=e._malloc(t.byteLength);if(A===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${t.byteLength}.`);return e.HEAPU8.set(t,A),[A,t.byteLength]},Mm=async(t,e)=>{let A,r,n=je();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=gg(t);let a=0,i=0,s=0,o=[],c=[],g=[];try{if([i,o]=await $0(e),e?.externalData&&n.mountExternalData){let E=[];for(let x of e.externalData){let S=typeof x=="string"?x:x.path;E.push(vm(typeof x=="string"?x:x.data).then(k=>{n.mountExternalData(S,k)}))}await Promise.all(E)}for(let E of e?.executionProviders??[])if((typeof E=="string"?E:E.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof E!="string"){let x=E,S=x?.context,k=x?.gpuDevice,R=x?.deviceType,M=x?.powerPreference;S?n.currentContext=S:k?n.currentContext=await n.webnnCreateMLContext(k):n.currentContext=await n.webnnCreateMLContext({deviceType:R,powerPreference:M})}else n.currentContext=await n.webnnCreateMLContext();break}a=await n._OrtCreateSession(A,r,i),n.webgpuOnCreateSession?.(a),a===0&&He("Can't create a session."),n.jsepOnCreateSession?.(),n.currentContext&&(n.webnnRegisterMLContext(a,n.currentContext),n.currentContext=void 0,n.shouldTransferToMLTensor=!0);let[u,l]=y0(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let E=0;E<u;E++){let[x,S,k]=mm(a,E);x===0&&He("Can't get an input name."),c.push(x);let R=n.UTF8ToString(x);p.push(R),y.push(S===0?{name:R,isTensor:!1}:{name:R,isTensor:!0,type:ag(S),shape:k})}for(let E=0;E<l;E++){let[x,S,k]=mm(a,E+u);x===0&&He("Can't get an output name."),g.push(x);let R=n.UTF8ToString(x);h.push(R),w.push(S===0?{name:R,isTensor:!1}:{name:R,isTensor:!0,type:ag(S),shape:k});{if(f&&e?.preferredOutputLocation===void 0){D.push("gpu-buffer");continue}let M=typeof e?.preferredOutputLocation=="string"?e.preferredOutputLocation:e?.preferredOutputLocation?.[R]??"cpu",N=n.webnnIsGraphOutput;if(M==="cpu"&&N&&N(a,R)){D.push("ml-tensor-cpu-output");continue}if(M!=="cpu"&&M!=="cpu-pinned"&&M!=="gpu-buffer"&&M!=="ml-tensor")throw new Error(`Not supported preferred output location: ${M}.`);if(f&&M!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${M}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);D.push(M)}}let b=null;return D.some(E=>E==="gpu-buffer"||E==="ml-tensor"||E==="ml-tensor-cpu-output")&&(s=n._OrtCreateBinding(a),s===0&&He("Can't create IO binding."),b={handle:s,outputPreferredLocations:D,outputPreferredLocationsEncoded:D.map(E=>E==="ml-tensor-cpu-output"?"ml-tensor":E).map(E=>Pm(E))}),gn.set(a,[a,c,g,b,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(l=>n._OrtFree(l)),g.forEach(l=>n._OrtFree(l)),s!==0&&n._OrtReleaseBinding(s)!==0&&He("Can't release IO binding."),a!==0&&n._OrtReleaseSession(a)!==0&&He("Can't release session."),u}finally{n._free(A),i!==0&&n._OrtReleaseSessionOptions(i)!==0&&He("Can't release session options."),o.forEach(u=>n._free(u)),n.unmountExternalData?.()}},Rm=t=>{let e=je(),A=gn.get(t);if(!A)throw new Error(`cannot release session. invalid session id: ${t}`);let[r,n,a,i,s]=A;i&&(s&&e._OrtClearBoundOutputs(i.handle)!==0&&He("Can't clear bound outputs."),e._OrtReleaseBinding(i.handle)!==0&&He("Can't release IO binding.")),e.jsepOnReleaseSession?.(t),e.webnnOnReleaseSession?.(t),e.webgpuOnReleaseSession?.(t),n.forEach(o=>e._OrtFree(o)),a.forEach(o=>e._OrtFree(o)),e._OrtReleaseSession(r)!==0&&He("Can't release session."),gn.delete(t)},hm=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=je(),o=s.PTR_SIZE,c=t[0],g=t[1],u=t[3],l=u,f,p;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let w=t[2].gpuBuffer;p=Oa(si(c),g);{let D=s.webgpuRegisterBuffer;if(!D)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');f=D(w,r)}}else if(u==="ml-tensor"){let w=t[2].mlTensor;p=Oa(si(c),g);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,si(c),g)}else{let w=t[2];if(Array.isArray(w)){p=o*w.length,f=s._malloc(p),A.push(f);for(let D=0;D<w.length;D++){if(typeof w[D]!="string")throw new TypeError(`tensor data at index ${D} is not a string`);s.setValue(f+D*o,aA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,b=s.webnnIsGraphOutput;if(c!=="string"&&D&&b){let E=s.UTF8ToString(n);if(D(r,E)||b(r,E)){let x=si(c);p=Oa(x,g),l="ml-tensor";let S=s.webnnCreateTemporaryTensor,k=s.webnnUploadTensor;if(!S||!k)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let R=await S(r,x,g);k(R,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=R}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}}let h=s.stackSave(),y=s.stackAlloc(4*g.length);try{g.forEach((D,b)=>s.setValue(y+b*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(si(c),f,p,y,g.length,Pm(l));w===0&&He(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Qm=async(t,e,A,r,n,a)=>{let i=je(),s=i.PTR_SIZE,o=gn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],g=o[1],u=o[2],l=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],b=[],E=[],x=[],S=[],k=i.stackSave(),R=i.stackAlloc(h*s),M=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=Z0(a),dn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await hm(A[_],b,x,t,g[e[_]],e[_],f);for(let _=0;_<y;_++)await hm(n[_],E,x,t,u[r[_]],h+r[_],f);fn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(R+_*s,b[_],"*"),i.setValue(M+_*s,g[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,E[_],"*"),i.setValue(V+_*s,u[r[_]],"*");if(l&&!p){let{handle:_,outputPreferredLocations:W,outputPreferredLocationsEncoded:pe}=l;if(g.length!==h)throw new Error(`input count from feeds (${h}) is expected to be always equal to model's input count (${g.length}).`);dn("wasm bindInputsOutputs");for(let Ae=0;Ae<h;Ae++){let De=e[Ae];await i._OrtBindInput(_,g[De],b[Ae])!==0&&He(`Can't bind input[${Ae}] for session=${t}.`)}for(let Ae=0;Ae<y;Ae++){let De=r[Ae];n[Ae]?.[3]?(S.push(E[Ae]),i._OrtBindOutput(_,u[De],E[Ae],0)!==0&&He(`Can't bind pre-allocated output[${Ae}] for session=${t}.`)):i._OrtBindOutput(_,u[De],0,pe[De])!==0&&He(`Can't bind output[${Ae}] to ${W[Ae]} for session=${t}.`)}fn("wasm bindInputsOutputs"),gn.set(t,[c,g,u,l,f,!0])}i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;l?F=await i._OrtRunWithBinding(c,l.handle,y,N,w):F=await i._OrtRun(c,M,R,h,V,y,N,w),F!==0&&He("failed to call OrtRun().");let K=[],L=[];dn("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===E[_]||S.includes(E[_])){K.push(n[_]),W!==E[_]&&i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.");continue}let pe=i.stackSave(),Ae=i.stackAlloc(4*s),De=!1,ae,we=0;try{i._OrtGetTensorData(W,Ae,Ae+s,Ae+2*s,Ae+3*s)!==0&&He(`Can't access output tensor data on index ${_}.`);let et=s===4?"i32":"i64",tt=Number(i.getValue(Ae,et));we=i.getValue(Ae+s,"*");let $e=i.getValue(Ae+s*2,"*"),pA=Number(i.getValue(Ae+s*3,et)),Je=[];for(let Be=0;Be<pA;Be++)Je.push(Number(i.getValue($e+Be*s,et)));i._OrtFree($e)!==0&&He("Can't free memory for tensor dims.");let qe=Je.reduce((Be,se)=>Be*se,1);ae=ag(tt);let ut=l?.outputPreferredLocations[r[_]];if(ae==="string"){if(ut==="gpu-buffer"||ut==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let se=0;se<qe;se++){let ue=i.getValue(we+se*s,"*"),Yt=i.getValue(we+(se+1)*s,"*"),Se=se===qe-1?void 0:Yt-ue;Be.push(i.UTF8ToString(ue,Se))}K.push([ae,Je,Be,"cpu"])}else if(ut==="gpu-buffer"&&qe>0){let Be=i.webgpuGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let se=Be(we),ue=Oa(tt,qe);if(ue===void 0||!Sm(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0;{i.webgpuRegisterBuffer(se,t,we);let Yt=i.webgpuCreateDownloader(se,ue,t);K.push([ae,Je,{gpuBuffer:se,download:async()=>{let Se=await Yt();return new(Go(ae))(Se)},dispose:()=>{i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.")}},"gpu-buffer"])}}else if(ut==="ml-tensor"&&qe>0){let Be=i.webnnEnsureTensor,se=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!se)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Oa(tt,qe)===void 0||!Ym(ae))throw new Error(`Unsupported data type: ${ae}`);if(!se(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let ue=await Be(t,we,tt,Je,!1);De=!0,K.push([ae,Je,{mlTensor:ue,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&qe>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),se=K.length;De=!0,L.push((async()=>{let ue=[se,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),ue})()),K.push([ae,Je,[],"cpu"])}else{let Be=Go(ae),se=new Be(qe);new Uint8Array(se.buffer,se.byteOffset,se.byteLength).set(i.HEAPU8.subarray(we,we+se.byteLength)),K.push([ae,Je,se,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}l&&!f&&(i._OrtClearBoundOutputs(l.handle)!==0&&He("Can't clear bound outputs."),gn.set(t,[c,g,u,l,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return fn("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),A.forEach(F=>{F&&F[3]==="gpu-buffer"&&i.webgpuUnregisterBuffer(F[2].gpuBuffer)}),n.forEach(F=>{F&&F[3]==="gpu-buffer"&&i.webgpuUnregisterBuffer(F[2].gpuBuffer)}),b.forEach(F=>i._OrtReleaseTensor(F)),E.forEach(F=>i._OrtReleaseTensor(F)),x.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Fm=t=>{let e=je(),A=gn.get(t);if(!A)throw new Error("invalid session id");let r=A[0],n=e._OrtEndProfiling(r);n===0&&He("Can't get an profile file name."),e._OrtFree(n)},zm=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),dI=Oe(()=>{"use strict";gi(),iI(),li(),km(),ln=()=>!!ct.wasm.proxy&&typeof document<"u",va=!1,Eo=!1,To=!1,ig=new Map,ni=(t,e)=>{let A=ig.get(t);A?A.push(e):ig.set(t,[e])},ii=()=>{if(va||!Eo||To||!mA)throw new Error("worker not ready")},I0=t=>{switch(t.data.type){case"init-wasm":va=!1,t.data.err?(To=!0,pm[1](t.data.err)):(Eo=!0,pm[0]()),ng&&(URL.revokeObjectURL(ng),ng=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=ig.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},aI=async()=>{if(!Eo){if(va)throw new Error("multiple calls to 'initWasm()' detected.");if(To)throw new Error("previous call to 'initWasm()' failed.");if(va=!0,ln())return new Promise((t,e)=>{mA?.terminate(),K0().then(([A,r])=>{try{mA=r,mA.onerror=a=>e(a),mA.onmessage=I0,pm=[t,e];let n={type:"init-wasm",in:ct};!n.in.wasm.wasmPaths&&(A||Bm)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href}),mA.postMessage(n),ng=A}catch(n){e(n)}},e)});try{await Gm(ct.wasm),await Om(ct),Eo=!0}catch(t){throw To=!0,t}finally{va=!1}}},sI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:ct}};mA.postMessage(r)});await _m(ct,t)},oI=async t=>ln()?(ii(),new Promise((e,A)=>{ni("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};mA.postMessage(r,[t.buffer])})):gg(t),cI=async(t,e)=>{if(ln()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return ii(),new Promise((A,r)=>{ni("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),mA.postMessage(n,a)})}else return Mm(t,e)},uI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("release",[e,A]);let r={type:"release",in:t};mA.postMessage(r)});Rm(t)},gI=async(t,e,A,r,n,a)=>{if(ln()){if(A.some(i=>i[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(n.some(i=>i))throw new Error("pre-allocated output tensor is not supported for proxy.");return ii(),new Promise((i,s)=>{ni("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};mA.postMessage(c,zm(o))})}else return Qm(t,e,A,r,n,a)},lI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("end-profiling",[e,A]);let r={type:"end-profiling",in:t};mA.postMessage(r)});Fm(t)}}),mG=Oe(()=>{"use strict";gi(),dI(),_a(),Tm(),J0(),wm=(t,e)=>{switch(t.location){case"cpu":return[t.type,t.dims,t.data,"cpu"];case"gpu-buffer":return[t.type,t.dims,{gpuBuffer:t.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[t.type,t.dims,{mlTensor:t.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${t.location} for ${e()}`)}},D0=t=>{switch(t[3]){case"cpu":return new jA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!Sm(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return jA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!Ym(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return jA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},fI=class{async fetchModelAndCopyToWasmMemory(t){return oI(await vm(t))}async loadModel(t,e){ci();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await cI(A,e),ui()}async dispose(){return uI(this.sessionId)}async run(t,e,A){ci();let r=[],n=[];Object.entries(t).forEach(u=>{let l=u[0],f=u[1],p=this.inputNames.indexOf(l);if(p===-1)throw new Error(`invalid input '${l}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let l=u[0],f=u[1],p=this.outputNames.indexOf(l);if(p===-1)throw new Error(`invalid output '${l}'`);a.push(f),i.push(p)});let s=r.map((u,l)=>wm(u,()=>`input "${this.inputNames[n[l]]}"`)),o=a.map((u,l)=>u?wm(u,()=>`output "${this.outputNames[i[l]]}"`):null),c=await gI(this.sessionId,n,s,i,o,A),g={};for(let u=0;u<c.length;u++)g[this.outputNames[i[u]]]=a[u]??D0(c[u]);return ui(),g}startProfiling(){}endProfiling(){lI(this.sessionId)}}}),mI={};xo(mI,{OnnxruntimeWebAssemblyBackend:()=>Dm,initializeFlags:()=>Im,wasmBackend:()=>hI});hG=Oe(()=>{"use strict";gi(),dI(),mG(),Im=()=>{(typeof ct.wasm.initTimeout!="number"||ct.wasm.initTimeout<0)&&(ct.wasm.initTimeout=0);let t=ct.wasm.simd;if(typeof t!="boolean"&&t!==void 0&&t!=="fixed"&&t!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${t}". Reset it to \`false\` and ignore SIMD feature checking.`),ct.wasm.simd=!1),typeof ct.wasm.proxy!="boolean"&&(ct.wasm.proxy=!1),typeof ct.wasm.trace!="boolean"&&(ct.wasm.trace=!1),typeof ct.wasm.numThreads!="number"||!Number.isInteger(ct.wasm.numThreads)||ct.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)ct.wasm.numThreads=1;else{let e=typeof navigator>"u"?Vk("node:os").cpus().length:navigator.hardwareConcurrency;ct.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Dm=class{async init(t){Im(),await aI(),await sI(t)}async createInferenceSessionHandler(t,e){let A=new fI;return await A.loadModel(t,e),A}},hI=new Dm});gi();gi();gi();pG="1.26.0",wG=H0;{let t=(hG(),sg(mI)).wasmBackend;oi("webgpu",t,5),oi("webnn",t,5),oi("cpu",t,10),oi("wasm",t,10)}Object.defineProperty(ct.versions,"web",{value:pG,enumerable:!0})});function C(t){if(!t)throw new Error("Assertion failed.")}var Yi=t=>{let e=(t%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${t}.`)},_e=t=>t&&t[t.length-1],fr=t=>t>=0&&t<2**32,ee=t=>{let e=0;for(;t.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},JA=t=>{let e=ee(t);return e&1?e+1>>1:-(e>>1)};var ft=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),xe=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),mt=new TextDecoder,Ht=new TextEncoder;var Il=t=>Object.fromEntries(Object.entries(t).map(([e,A])=>[A,e])),mr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Cn=Il(mr),hr={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},bn=Il(hr),pr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},En=Il(pr),cp=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,Ps=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),Nt=class{constructor(){this.currentPromise=Promise.resolve(),this.pending=0}async acquire(){let e,A=new Promise(n=>{let a=!1;e=()=>{a||(n(),this.pending--,a=!0)}}),r=this.currentPromise;return this.currentPromise=A,this.pending++,await r,e}},up=/^[0-9a-fA-F]+$/,Ur=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),gp=t=>{C(t.length%2===0);let e=new Uint8Array(t.length/2);for(let A=0;A<t.length;A+=2)e[A/2]=parseInt(t.slice(A,A+2),16);return e},Dl=t=>(t=t>>1&1431655765|(t&1431655765)<<1,t=t>>2&858993459|(t&858993459)<<2,t=t>>4&252645135|(t&252645135)<<4,t=t>>8&16711935|(t&16711935)<<8,t=t>>16&65535|(t&65535)<<16,t>>>0),wr=(t,e,A)=>{let r=0,n=t.length-1,a=-1;for(;r<=n;){let i=r+n>>1,s=A(t[i]);s===e?(a=i,n=i-1):s<e?r=i+1:n=i-1}return a},ye=(t,e,A)=>{let r=0,n=t.length-1,a=-1;for(;r<=n;){let i=r+(n-r+1)/2|0;A(t[i])<=e?(a=i,r=i+1):n=i-1}return a},Cl=(t,e,A)=>{let r=ye(t,A(e),A);t.splice(r+1,0,e)},lt=()=>{let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}},lp=(t,e)=>{let A=t.indexOf(e);A!==-1&&t.splice(A,1)},bl=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return t[A]},vi=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return A;return-1},dp=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},fp=t=>{if(!(Symbol.iterator in t)&&!(Symbol.asyncIterator in t))throw new TypeError("Argument must be an iterable or async iterable.")},$t=t=>{throw new Error(`Unexpected value: ${t}`)},ys=(t,e,A)=>{let r=t.getUint8(e),n=t.getUint8(e+1),a=t.getUint8(e+2);return A?r|n<<8|a<<16:r<<16|n<<8|a};var El=(t,e,A,r)=>{A=A>>>0,A=A&16777215,r?(t.setUint8(e,A&255),t.setUint8(e+1,A>>>8&255),t.setUint8(e+2,A>>>16&255)):(t.setUint8(e,A>>>16&255),t.setUint8(e+1,A>>>8&255),t.setUint8(e+2,A&255))};var Tn=(t,e,A)=>Math.max(e,Math.min(A,t)),Xe="und",Br=t=>{let e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t},Is=(t,e)=>Math.round(t/e)*e,Ds=(t,e)=>Math.round(t*e)/e,lc=(t,e)=>Math.floor(t/e)*e,Tl=(t,e)=>Math.floor(t*e)/e,mp=t=>{let e=0;for(;t;)e++,t>>=1;return e},LD=/^[a-z]{3}$/,Oi=t=>LD.test(t),qr=1e6*(1+Number.EPSILON);var hp=(t,e)=>{let A=t<0?-1:1;t=Math.abs(t);let r=0,n=1,a=1,i=0,s=t;for(;;){let o=Math.floor(s),c=o*a+r,g=o*i+n;if(g>e)return{num:A*a,den:i};if(r=a,n=i,a=c,i=g,s=1/(s-o),!isFinite(s))break}return{num:A*a,den:i}},Dn=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},wl=null,kn=()=>wl!==null?wl:wl=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),Bl=null,Cs=()=>Bl!==null?Bl:Bl=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),Pl=null,bs=()=>Pl!==null?Pl:Pl=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),yl=null,pp=()=>{if(yl!==null)return yl;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?yl=Number(t[1]):null},Gn=(t,e)=>t!==-1?t:e,dc=(t,e,A,r)=>t<=r&&A<=e,Es=function*(t){for(let e in t){let A=t[e];A!==void 0&&(yield{key:e,value:A})}};var Ts=t=>{let e=atob(t),A=new Uint8Array(e.length);for(let r=0;r<e.length;r++)A[r]=e.charCodeAt(r);return A};var wp=(t,e)=>{if(t.length!==e.length)return!1;for(let A=0;A<t.length;A++)if(t[A]!==e[A])return!1;return!0},_i=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},ks=t=>typeof t=="number"&&!Number.isNaN(t),XA=(t,e)=>{if(e.includes("://"))return e;if(t.includes("://")){let s=t.indexOf("?");s!==-1&&(t=t.slice(0,s))}let A;if(e.startsWith("/")){let s=t.indexOf("://");if(s===-1)A=e;else{let o=t.indexOf("/",s+3);o===-1?A=t+e:A=t.slice(0,o)+e}}else{let s=t.lastIndexOf("/");s===-1?A=e:A=t.slice(0,s+1)+e}let r="",n=A.indexOf("://");if(n!==-1){let s=A.indexOf("/",n+3);s!==-1&&(r=A.slice(0,s),A=A.slice(s))}let a=A.split("/"),i=[];for(let s of a)s===".."?i.pop():s!=="."&&i.push(s);return r+i.join("/")},xn=(t,e)=>{let A=0;for(let r=0;r<t.length;r++)e(t[r])&&A++;return A},Mi=(t,e)=>{let A=-1,r=1/0;for(let n=0;n<t.length;n++){let a=e(t[n]);a<r&&(r=a,A=n)}return A};var Sn=t=>{C(Number.isInteger(t.num)),C(Number.isInteger(t.den)),C(t.den!==0);let e=Math.abs(t.num),A=Math.abs(t.den);for(;A!==0;){let n=e%A;e=A,A=n}let r=e||1;return{num:t.num/r,den:t.den/r}},kl=(t,e)=>{if(typeof t!="object"||!t)throw new TypeError(`${e} must be an object.`);if(!Number.isInteger(t.left)||t.left<0)throw new TypeError(`${e}.left must be a non-negative integer.`);if(!Number.isInteger(t.top)||t.top<0)throw new TypeError(`${e}.top must be a non-negative integer.`);if(!Number.isInteger(t.width)||t.width<0)throw new TypeError(`${e}.width must be a non-negative integer.`);if(!Number.isInteger(t.height)||t.height<0)throw new TypeError(`${e}.height must be a non-negative integer.`)};var Gl=t=>new Promise(e=>setTimeout(e,t));var xl=t=>Array.isArray(t)?t:[t],$A=class{constructor(){this._listeners=new Map}on(e,A,r){this._listeners.has(e)||this._listeners.set(e,new Set);let n={fn:A,once:r?.once??!1};return this._listeners.get(e).add(n),()=>{this._listeners.get(e)?.delete(n)}}_emit(...e){let[A,r]=e,n=this._listeners.get(A);if(n)for(let a of n){try{a.fn(r)}catch(i){console.error(i)}a.once&&n.delete(a)}}};var Sl=t=>t!==null&&typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype&&Object.values(t).every(e=>typeof e=="string");var TA=class{constructor(e,A){if(this.data=e,this.mimeType=A,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(typeof A!="string")throw new TypeError("mimeType must be a string.")}},Gs=class{constructor(e,A,r,n){if(this.data=e,this.mimeType=A,this.name=r,this.description=n,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(A!==void 0&&typeof A!="string")throw new TypeError("mimeType, when provided, must be a string.");if(r!==void 0&&typeof r!="string")throw new TypeError("name, when provided, must be a string.");if(n!==void 0&&typeof n!="string")throw new TypeError("description, when provided, must be a string.")}},Bp=t=>{if(!t||typeof t!="object")throw new TypeError("tags must be an object.");if(t.title!==void 0&&typeof t.title!="string")throw new TypeError("tags.title, when provided, must be a string.");if(t.description!==void 0&&typeof t.description!="string")throw new TypeError("tags.description, when provided, must be a string.");if(t.artist!==void 0&&typeof t.artist!="string")throw new TypeError("tags.artist, when provided, must be a string.");if(t.album!==void 0&&typeof t.album!="string")throw new TypeError("tags.album, when provided, must be a string.");if(t.albumArtist!==void 0&&typeof t.albumArtist!="string")throw new TypeError("tags.albumArtist, when provided, must be a string.");if(t.trackNumber!==void 0&&(!Number.isInteger(t.trackNumber)||t.trackNumber<=0))throw new TypeError("tags.trackNumber, when provided, must be a positive integer.");if(t.tracksTotal!==void 0&&(!Number.isInteger(t.tracksTotal)||t.tracksTotal<=0))throw new TypeError("tags.tracksTotal, when provided, must be a positive integer.");if(t.discNumber!==void 0&&(!Number.isInteger(t.discNumber)||t.discNumber<=0))throw new TypeError("tags.discNumber, when provided, must be a positive integer.");if(t.discsTotal!==void 0&&(!Number.isInteger(t.discsTotal)||t.discsTotal<=0))throw new TypeError("tags.discsTotal, when provided, must be a positive integer.");if(t.genre!==void 0&&typeof t.genre!="string")throw new TypeError("tags.genre, when provided, must be a string.");if(t.date!==void 0&&(!(t.date instanceof Date)||Number.isNaN(t.date.getTime())))throw new TypeError("tags.date, when provided, must be a valid Date.");if(t.lyrics!==void 0&&typeof t.lyrics!="string")throw new TypeError("tags.lyrics, when provided, must be a string.");if(t.images!==void 0){if(!Array.isArray(t.images))throw new TypeError("tags.images, when provided, must be an array.");for(let e of t.images){if(!e||typeof e!="object")throw new TypeError("Each image in tags.images must be an object.");if(!(e.data instanceof Uint8Array))throw new TypeError("Each image.data must be a Uint8Array.");if(typeof e.mimeType!="string")throw new TypeError("Each image.mimeType must be a string.");if(!["coverFront","coverBack","unknown"].includes(e.kind))throw new TypeError("Each image.kind must be 'coverFront', 'coverBack', or 'unknown'.")}}if(t.comment!==void 0&&typeof t.comment!="string")throw new TypeError("tags.comment, when provided, must be a string.");if(t.raw!==void 0){if(!t.raw||typeof t.raw!="object")throw new TypeError("tags.raw, when provided, must be an object.");for(let e of Object.values(t.raw))if(e!==null&&typeof e!="string"&&!(e instanceof Uint8Array)&&!(e instanceof TA)&&!(e instanceof Gs)&&!Sl(e))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, Record<string, string>, or null.")}};var Ct={default:!0,primary:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},Pp=t=>{if(!t||typeof t!="object")throw new TypeError("disposition must be an object.");if(t.default!==void 0&&typeof t.default!="boolean")throw new TypeError("disposition.default must be a boolean.");if(t.primary!==void 0&&typeof t.primary!="boolean")throw new TypeError("disposition.primary must be a boolean.");if(t.forced!==void 0&&typeof t.forced!="boolean")throw new TypeError("disposition.forced must be a boolean.");if(t.original!==void 0&&typeof t.original!="boolean")throw new TypeError("disposition.original must be a boolean.");if(t.commentary!==void 0&&typeof t.commentary!="boolean")throw new TypeError("disposition.commentary must be a boolean.");if(t.hearingImpaired!==void 0&&typeof t.hearingImpaired!="boolean")throw new TypeError("disposition.hearingImpaired must be a boolean.");if(t.visuallyImpaired!==void 0&&typeof t.visuallyImpaired!="boolean")throw new TypeError("disposition.visuallyImpaired must be a boolean.")};var Ge=class t{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),A=this.bytes[e]??0,r=7-(this.pos&7),n=(A&1<<r)>>r;return this.pos++,n}readBits(e){if(e===1)return this.readBit();let A=0;for(let r=0;r<e;r++)A<<=1,A|=this.readBit();return A}writeBits(e,A){let r=this.pos+e;for(let n=this.pos;n<r;n++){let a=Math.floor(n/8),i=this.bytes[a],s=7-(n&7);i&=~(1<<s),i|=(A&1<<r-n-1)>>r-n-1<<s,this.bytes[a]=i}this.pos=r}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,A=this.bytes[e]??0;return this.pos+=8,A}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new t(this.bytes);return e.pos=this.pos,e}};var er=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Lr=[-1,1,2,3,4,5,6,8],fc=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new Ge(t),A=e.readBits(5);A===31&&(A=32+e.readBits(6));let r=e.readBits(4),n=null;r===15?n=e.readBits(24):r<er.length&&(n=er[r]);let a=e.readBits(4),i=null;return a>=1&&a<=7&&(i=Lr[a]),{objectType:A,frequencyIndex:r,sampleRate:n,channelConfiguration:a,numberOfChannels:i}},yp=t=>{let e=er.indexOf(t.sampleRate),A=null;e===-1&&(e=15,A=t.sampleRate);let r=Lr.indexOf(t.numberOfChannels);if(r===-1)throw new TypeError(`Unsupported number of channels: ${t.numberOfChannels}`);let n=13;t.objectType>=32&&(n+=6),e===15&&(n+=24);let a=Math.ceil(n/8),i=new Uint8Array(a),s=new Ge(i);return t.objectType<32?s.writeBits(5,t.objectType):(s.writeBits(5,31),s.writeBits(6,t.objectType-32)),s.writeBits(4,e),e===15&&s.writeBits(24,A),s.writeBits(4,r),i};var _t=["avc","hevc","vp9","av1","vp8"],Ot=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],mc=["aac","opus","mp3","vorbis","flac","ac3","eac3"],tr=[...mc,...Ot],jr=["webvtt"],xs=[{maxMacroblocks:99,maxBitrate:64e3,maxDpbMbs:396,level:10},{maxMacroblocks:396,maxBitrate:192e3,maxDpbMbs:900,level:11},{maxMacroblocks:396,maxBitrate:384e3,maxDpbMbs:2376,level:12},{maxMacroblocks:396,maxBitrate:768e3,maxDpbMbs:2376,level:13},{maxMacroblocks:396,maxBitrate:2e6,maxDpbMbs:2376,level:20},{maxMacroblocks:792,maxBitrate:4e6,maxDpbMbs:4752,level:21},{maxMacroblocks:1620,maxBitrate:4e6,maxDpbMbs:8100,level:22},{maxMacroblocks:1620,maxBitrate:1e7,maxDpbMbs:8100,level:30},{maxMacroblocks:3600,maxBitrate:14e6,maxDpbMbs:18e3,level:31},{maxMacroblocks:5120,maxBitrate:2e7,maxDpbMbs:20480,level:32},{maxMacroblocks:8192,maxBitrate:2e7,maxDpbMbs:32768,level:40},{maxMacroblocks:8192,maxBitrate:5e7,maxDpbMbs:32768,level:41},{maxMacroblocks:8704,maxBitrate:5e7,maxDpbMbs:34816,level:42},{maxMacroblocks:22080,maxBitrate:135e6,maxDpbMbs:110400,level:50},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:51},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:52},{maxMacroblocks:139264,maxBitrate:24e7,maxDpbMbs:696320,level:60},{maxMacroblocks:139264,maxBitrate:48e7,maxDpbMbs:696320,level:61},{maxMacroblocks:139264,maxBitrate:8e8,maxDpbMbs:696320,level:62}],Ip=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],Pr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],Dp=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],Cp=".01.01.01.01.00",bp=".0.110.01.01.01.0",Ep=(t,e,A,r)=>{if(t==="avc"){let a=Math.ceil(e/16)*Math.ceil(A/16),i=xs.find(u=>a<=u.maxMacroblocks&&r<=u.maxBitrate)??_e(xs),s=i?i.level:0,o="64".padStart(2,"0"),c="00",g=s.toString(16).padStart(2,"0");return`avc1.${o}${c}${g}`}else if(t==="hevc"){let n="",i="6",s=e*A,o=Ip.find(g=>s<=g.maxPictureSize&&r<=g.maxBitrate)??_e(Ip);return`hev1.${n}1.${i}.${o.tier}${o.level}.B0`}else{if(t==="vp8")return"vp8";if(t==="vp9"){let n="00",a=e*A,i=Pr.find(o=>a<=o.maxPictureSize&&r<=o.maxBitrate)??_e(Pr);return`vp09.${n}.${i.level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let a=e*A,i=Dp.find(c=>a<=c.maxPictureSize&&r<=c.maxBitrate)??_e(Dp);return`av01.0.${i.level.toString().padStart(2,"0")}${i.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var Tp=t=>{let e=t.split("."),n=(1<<7)+1,a=Number(e[1]),i=e[2],s=Number(i.slice(0,-1)),o=(a<<5)+s,c=i.slice(-1)==="H"?1:0,u=Number(e[3])===8?0:1,l=0,f=e[4]?Number(e[4]):0,p=e[5]?Number(e[5][0]):1,h=e[5]?Number(e[5][1]):1,y=e[5]?Number(e[5][2]):0,w=(c<<7)+(u<<6)+(l<<5)+(f<<4)+(p<<3)+(h<<2)+y;return[n,o,w,0]},Ri=t=>{let{codec:e,codecDescription:A,colorSpace:r,avcCodecInfo:n,hevcCodecInfo:a,vp9CodecInfo:i,av1CodecInfo:s}=t;if(e==="avc"){if(C(t.avcType!==null),n){let o=new Uint8Array([n.avcProfileIndication,n.profileCompatibility,n.avcLevelIndication]);return`avc${t.avcType}.${Ur(o)}`}if(!A||A.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${Ur(A.subarray(1,4))}`}else if(e==="hevc"){let o,c,g,u,l,f;if(a)o=a.generalProfileSpace,c=a.generalProfileIdc,g=Dl(a.generalProfileCompatibilityFlags),u=a.generalTierFlag,l=a.generalLevelIdc,f=[...a.generalConstraintIndicatorFlags];else{if(!A||A.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let h=xe(A),y=h.getUint8(1);o=y>>6&3,c=y&31,g=Dl(h.getUint32(2)),u=y>>5&1,l=h.getUint8(12),f=[];for(let w=0;w<6;w++)f.push(h.getUint8(6+w))}let p="hev1.";for(p+=["","A","B","C"][o]+c,p+=".",p+=g.toString(16).toUpperCase(),p+=".",p+=u===0?"L":"H",p+=l;f.length>0&&f[f.length-1]===0;)f.pop();return f.length>0&&(p+=".",p+=f.map(h=>h.toString(16).toUpperCase()).join(".")),p}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!i){let w=t.width*t.height,D=_e(Pr).level;for(let b of Pr)if(w<=b.maxPictureSize){D=b.level;break}return`vp09.00.${D.toString().padStart(2,"0")}.08`}let o=i.profile.toString().padStart(2,"0"),c=i.level.toString().padStart(2,"0"),g=i.bitDepth.toString().padStart(2,"0"),u=i.chromaSubsampling.toString().padStart(2,"0"),l=i.colourPrimaries.toString().padStart(2,"0"),f=i.transferCharacteristics.toString().padStart(2,"0"),p=i.matrixCoefficients.toString().padStart(2,"0"),h=i.videoFullRangeFlag.toString().padStart(2,"0"),y=`vp09.${o}.${c}.${g}.${u}`;return y+=`.${l}.${f}.${p}.${h}`,y.endsWith(Cp)&&(y=y.slice(0,-Cp.length)),y}else if(e==="av1"){if(!s){let b=t.width*t.height,E=_e(Pr).level;for(let x of Pr)if(b<=x.maxPictureSize){E=x.level;break}return`av01.0.${E.toString().padStart(2,"0")}M.08`}let o=s.profile,c=s.level.toString().padStart(2,"0"),g=s.tier?"H":"M",u=s.bitDepth.toString().padStart(2,"0"),l=s.monochrome?"1":"0",f=100*s.chromaSubsamplingX+10*s.chromaSubsamplingY+1*(s.chromaSubsamplingX&&s.chromaSubsamplingY?s.chromaSamplePosition:0),p=r?.primaries?mr[r.primaries]:1,h=r?.transfer?hr[r.transfer]:1,y=r?.matrix?pr[r.matrix]:1,w=r?.fullRange?1:0,D=`av01.${o}.${c}${g}.${u}`;return D+=`.${l}.${f.toString().padStart(3,"0")}`,D+=`.${p.toString().padStart(2,"0")}`,D+=`.${h.toString().padStart(2,"0")}`,D+=`.${y.toString().padStart(2,"0")}`,D+=`.${w}`,D.endsWith(bp)&&(D=D.slice(0,-bp.length)),D}}throw new TypeError(`Unhandled codec '${e}'.`)};var Qi=t=>{let{codec:e,codecDescription:A,aacCodecInfo:r}=t;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");if(r.isMpeg2)return"mp4a.67";{let n;return r.objectType!==null?n=r.objectType:n=fc(A).objectType,`mp4a.40.${n}`}}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e==="ac3")return"ac-3";if(e==="eac3")return"ec-3";if(e&&Ot.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)};var Yn=48e3,kp=/^pcm-([usf])(\d+)(be)?$/,kA=t=>{if(C(Ot.includes(t)),t==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(t==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=kp.exec(t);C(e);let A;e[1]==="u"?A="unsigned":e[1]==="s"?A="signed":A="float";let r=Number(e[2])/8,n=e[3]!=="be",a=t==="pcm-u8"?2**7:0;return{dataType:A,sampleSize:r,littleEndian:n,silentValue:a}},Vr=t=>t.startsWith("avc1")||t.startsWith("avc3")?"avc":t.startsWith("hev1")||t.startsWith("hvc1")?"hevc":t==="vp8"?"vp8":t.startsWith("vp09")?"vp9":t.startsWith("av01")?"av1":t==="mp3"||t==="mp4a.69"||t==="mp4a.6B"||t==="mp4a.6b"||t==="mp4a.40.34"?"mp3":t.startsWith("mp4a.40.")||t==="mp4a.67"?"aac":t==="opus"?"opus":t==="vorbis"?"vorbis":t==="flac"?"flac":t==="ac-3"||t==="ac3"?"ac3":t==="ec-3"||t==="eac3"?"eac3":t==="ulaw"?"ulaw":t==="alaw"?"alaw":kp.test(t)?t:t==="webvtt"?"webvtt":null,Gp=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{};var jD=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],VD=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,KD=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,WD=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,ZD=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,xp=t=>{if(!t)throw new TypeError("Video chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Video chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!jD.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the Mediabunny Codec Registry.");if(!Number.isInteger(t.decoderConfig.codedWidth)||t.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(t.decoderConfig.codedHeight)||t.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(t.decoderConfig.displayAspectWidth!==void 0&&(!Number.isInteger(t.decoderConfig.displayAspectWidth)||t.decoderConfig.displayAspectWidth<=0))throw new TypeError("Video chunk metadata decoder configuration displayAspectWidth, when defined, must be a positive integer.");if(t.decoderConfig.displayAspectHeight!==void 0&&(!Number.isInteger(t.decoderConfig.displayAspectHeight)||t.decoderConfig.displayAspectHeight<=0))throw new TypeError("Video chunk metadata decoder configuration displayAspectHeight, when defined, must be a positive integer.");if(t.decoderConfig.displayAspectWidth!==void 0!=(t.decoderConfig.displayAspectHeight!==void 0))throw new TypeError("Video chunk metadata decoder configuration must specify both displayAspectWidth and displayAspectHeight, or neither.");if(t.decoderConfig.description!==void 0&&!Ps(t.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=t.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let A=Object.keys(mr);if(e.primaries!=null&&!A.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${A.join(", ")}.`);let r=Object.keys(hr);if(e.transfer!=null&&!r.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${r.join(", ")}.`);let n=Object.keys(pr);if(e.matrix!=null&&!n.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${n.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(t.decoderConfig.codec.startsWith("avc1")||t.decoderConfig.codec.startsWith("avc3")){if(!VD.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(t.decoderConfig.codec.startsWith("hev1")||t.decoderConfig.codec.startsWith("hvc1")){if(!KD.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(t.decoderConfig.codec.startsWith("vp8")){if(t.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(t.decoderConfig.codec.startsWith("vp09")){if(!WD.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(t.decoderConfig.codec.startsWith("av01")&&!ZD.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},$D=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm","ac-3","ec-3"],Sp=t=>{if(!t)throw new TypeError("Audio chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!$D.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the Mediabunny Codec Registry.");if(!Number.isInteger(t.decoderConfig.sampleRate)||t.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(t.decoderConfig.numberOfChannels)||t.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(t.decoderConfig.description!==void 0&&!Ps(t.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.codec.startsWith("mp4a")&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(t.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("mp3")||t.decoderConfig.codec.startsWith("mp4a")){if(t.decoderConfig.codec!=="mp3"&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(t.decoderConfig.codec.startsWith("opus")){if(t.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(t.decoderConfig.description&&t.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(t.decoderConfig.codec.startsWith("vorbis")){if(t.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!t.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("flac")){if(t.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!t.decoderConfig.description||t.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("ac-3")||t.decoderConfig.codec.startsWith("ac3")){if(t.decoderConfig.codec!=="ac-3")throw new TypeError('Audio chunk metadata decoder configuration codec string for AC-3 must be "ac-3".')}else if(t.decoderConfig.codec.startsWith("ec-3")||t.decoderConfig.codec.startsWith("eac3")){if(t.decoderConfig.codec!=="ec-3")throw new TypeError('Audio chunk metadata decoder configuration codec string for EC-3 must be "ec-3".')}else if((t.decoderConfig.codec.startsWith("pcm")||t.decoderConfig.codec.startsWith("ulaw")||t.decoderConfig.codec.startsWith("alaw"))&&!Ot.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Ot.join(", ")}).`)},Yp=t=>{if(!t)throw new TypeError("Subtitle metadata must be provided.");if(typeof t!="object")throw new TypeError("Subtitle metadata must be an object.");if(!t.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof t.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof t.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var JD=[44100,48e3,32e3],XD=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1,-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1,-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],hc=1483304551,pc=1231971951,eC=(t,e,A,r,n)=>e===0?0:e===1?Math.floor(144*A/(r<<t))+n:e===2?Math.floor(144*A/r)+n:(Math.floor(12*A/r)+n)*4,vp=(t,e,A,r)=>e===0?0:e===1?144*A/(r<<t):e===2?144*A/r:12*A/r*4,wc=(t,e)=>t===3?e===3?21:36:e===3?13:21,Ys=(t,e)=>{let A=t>>>24,r=t>>>16&255,n=t>>>8&255,a=t&255;if(A!==255&&r!==255&&n!==255&&a!==255)return{header:null,bytesAdvanced:4};if(A!==255)return{header:null,bytesAdvanced:1};if((r&224)!==224)return{header:null,bytesAdvanced:1};let i=0,s=0;r&16?i=r&8?0:1:(i=1,s=1);let o=r>>3&3,c=r>>1&3,g=n>>4&15,u=(n>>2&3)%3,l=n>>1&1,f=a>>6&3,p=a>>4&3,h=a>>3&1,y=a>>2&1,w=a&3,D=XD[i*16*4+c*16+g];if(D===-1)return{header:null,bytesAdvanced:1};let b=D*1e3,E=JD[u]>>i+s,x=eC(i,c,b,E,l);if(e!==null&&e<x)return{header:null,bytesAdvanced:1};let S;return o===3?S=c===3?384:1152:c===3?S=384:c===2?S=1152:S=576,{header:{totalSize:x,mpegVersionId:o,lowSamplingFrequency:i,layer:c,bitrate:b,frequencyIndex:u,sampleRate:E,channel:f,modeExtension:p,copyright:h,original:y,emphasis:w,audioSamplesInFrame:S},bytesAdvanced:1}};var Bc=t=>{let e=2130706432,A=0;for(;e!==0;)A>>=1,A|=t&e,e>>=8;return A},Ss;(function(t){t[t.FrameCount=1]="FrameCount",t[t.FileSize=2]="FileSize",t[t.Toc=4]="Toc"})(Ss||(Ss={}));var Kr=t=>t===3?1:2;var vn=[48e3,44100,32e3],Yl=[24e3,22050,16e3];var Jt;(function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"})(Jt||(Jt={}));var bt;(function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(bt||(bt={}));var Fi=function*(t){let e=0,A=-1;for(;e<t.length-2;){let r=t.indexOf(0,e);if(r===-1||r>=t.length-2)break;e=r;let n=0;if(e+3<t.length&&t[e+1]===0&&t[e+2]===0&&t[e+3]===1?n=4:t[e+1]===0&&t[e+2]===1&&(n=3),n===0){e++;continue}A!==-1&&e>A&&(yield{offset:A,length:e-A}),A=e+n,e=A}A!==-1&&A<t.length&&(yield{offset:A,length:t.length-A})},Mp=function*(t,e){let A=0,r=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;A+e<=t.length;){let n;e===1?n=r.getUint8(A):e===2?n=r.getUint16(A,!1):e===3?n=ys(r,A,!1):(C(e===4),n=r.getUint32(A,!1)),A+=e,yield{offset:A,length:n},A+=n}},Ol=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Mp(t,n)}else return Fi(t)},zi=t=>t&31,Pc=t=>{let e=[],A=t.length;for(let r=0;r<A;r++)r+2<A&&t[r]===0&&t[r+1]===0&&t[r+2]===3?(e.push(0,0),r+=2):e.push(t[r]);return new Uint8Array(e)},vl=new Uint8Array([0,0,0,1]),Rp=t=>{let e=t.reduce((n,a)=>n+vl.byteLength+a.byteLength,0),A=new Uint8Array(e),r=0;for(let n of t)A.set(vl,r),r+=vl.byteLength,A.set(n,r),r+=n.byteLength;return A},yc=(t,e)=>{let A=t.reduce((a,i)=>a+e+i.byteLength,0),r=new Uint8Array(A),n=0;for(let a of t){let i=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(e){case 1:i.setUint8(n,a.byteLength);break;case 2:i.setUint16(n,a.byteLength,!1);break;case 3:El(i,n,a.byteLength,!1);break;case 4:i.setUint32(n,a.byteLength,!1);break}n+=e,r.set(a,n),n+=a.byteLength}return r},Qp=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return yc(t,n)}else return Rp(t)},Ni=t=>{try{let e=[],A=[],r=[];for(let s of Fi(t)){let o=t.subarray(s.offset,s.offset+s.length),c=zi(o[0]);c===Jt.SPS?e.push(o):c===Jt.PPS?A.push(o):c===Jt.SPS_EXT&&r.push(o)}if(e.length===0||A.length===0)return null;let n=e[0],a=Os(n);C(a!==null);let i=a.profileIdc===100||a.profileIdc===110||a.profileIdc===122||a.profileIdc===144;return{configurationVersion:1,avcProfileIndication:a.profileIdc,profileCompatibility:a.constraintFlags,avcLevelIndication:a.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:e,pictureParameterSets:A,chromaFormat:i?a.chromaFormatIdc:null,bitDepthLumaMinus8:i?a.bitDepthLumaMinus8:null,bitDepthChromaMinus8:i?a.bitDepthChromaMinus8:null,sequenceParameterSetExt:i?r:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},Fp=t=>{let e=[];e.push(t.configurationVersion),e.push(t.avcProfileIndication),e.push(t.profileCompatibility),e.push(t.avcLevelIndication),e.push(252|t.lengthSizeMinusOne&3),e.push(224|t.sequenceParameterSets.length&31);for(let A of t.sequenceParameterSets){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}e.push(t.pictureParameterSets.length);for(let A of t.pictureParameterSets){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}if(t.avcProfileIndication===100||t.avcProfileIndication===110||t.avcProfileIndication===122||t.avcProfileIndication===144){C(t.chromaFormat!==null),C(t.bitDepthLumaMinus8!==null),C(t.bitDepthChromaMinus8!==null),C(t.sequenceParameterSetExt!==null),e.push(252|t.chromaFormat&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.sequenceParameterSetExt.length);for(let A of t.sequenceParameterSetExt){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}}return new Uint8Array(e)},zp=t=>{try{let e=xe(t),A=0,r=e.getUint8(A++),n=e.getUint8(A++),a=e.getUint8(A++),i=e.getUint8(A++),s=e.getUint8(A++)&3,o=e.getUint8(A++)&31,c=[];for(let f=0;f<o;f++){let p=e.getUint16(A,!1);A+=2,c.push(t.subarray(A,A+p)),A+=p}let g=e.getUint8(A++),u=[];for(let f=0;f<g;f++){let p=e.getUint16(A,!1);A+=2,u.push(t.subarray(A,A+p)),A+=p}let l={configurationVersion:r,avcProfileIndication:n,profileCompatibility:a,avcLevelIndication:i,lengthSizeMinusOne:s,sequenceParameterSets:c,pictureParameterSets:u,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((n===100||n===110||n===122||n===144)&&A+4<=t.length){let f=e.getUint8(A++)&3,p=e.getUint8(A++)&7,h=e.getUint8(A++)&7,y=e.getUint8(A++);l.chromaFormat=f,l.bitDepthLumaMinus8=p,l.bitDepthChromaMinus8=h;let w=[];for(let D=0;D<y;D++){let b=e.getUint16(A,!1);A+=2,w.push(t.subarray(A,A+b)),A+=b}l.sequenceParameterSetExt=w}return l}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},Np={1:{num:1,den:1},2:{num:12,den:11},3:{num:10,den:11},4:{num:16,den:11},5:{num:40,den:33},6:{num:24,den:11},7:{num:20,den:11},8:{num:32,den:11},9:{num:80,den:33},10:{num:18,den:11},11:{num:15,den:11},12:{num:64,den:33},13:{num:160,den:99},14:{num:4,den:3},15:{num:3,den:2},16:{num:2,den:1}},Os=t=>{try{let e=new Ge(Pc(t));if(e.skipBits(1),e.skipBits(2),e.readBits(5)!==7)return null;let r=e.readAlignedByte(),n=e.readAlignedByte(),a=e.readAlignedByte();ee(e);let i=1,s=0,o=0,c=0;if((r===100||r===110||r===122||r===244||r===44||r===83||r===86||r===118||r===128)&&(i=ee(e),i===3&&(c=e.readBits(1)),s=ee(e),o=ee(e),e.skipBits(1),e.readBits(1))){for(let F=0;F<(i!==3?8:12);F++)if(e.readBits(1)){let L=F<6?16:64,_=8,W=8;for(let pe=0;pe<L;pe++){if(W!==0){let Ae=JA(e);W=(_+Ae+256)%256}_=W===0?_:W}}}ee(e);let g=ee(e);if(g===0)ee(e);else if(g===1){e.skipBits(1),JA(e),JA(e);let V=ee(e);for(let F=0;F<V;F++)JA(e)}ee(e),e.skipBits(1);let u=ee(e),l=ee(e),f=16*(u+1),p=16*(l+1),h=f,y=p,w=e.readBits(1);if(w||e.skipBits(1),e.skipBits(1),e.readBits(1)){let V=ee(e),F=ee(e),K=ee(e),L=ee(e),_,W;if((c===0?i:0)===0)_=1,W=2-w;else{let Ae=i===3?1:2,De=i===1?2:1;_=Ae,W=De*(2-w)}h-=_*(V+F),y-=W*(K+L)}let b=2,E=2,x=2,S=0,k={num:1,den:1},R=null,M=null;if(e.readBits(1)){if(e.readBits(1)){let De=e.readBits(8);if(De===255)k={num:e.readBits(16),den:e.readBits(16)};else{let ae=Np[De];ae&&(k=ae)}}e.readBits(1)&&e.skipBits(1),e.readBits(1)&&(e.skipBits(3),S=e.readBits(1),e.readBits(1)&&(b=e.readBits(8),E=e.readBits(8),x=e.readBits(8))),e.readBits(1)&&(ee(e),ee(e)),e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.skipBits(1));let W=e.readBits(1);W&&Op(e);let pe=e.readBits(1);pe&&Op(e),(W||pe)&&e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(1),ee(e),ee(e),ee(e),ee(e),R=ee(e),M=ee(e))}if(R===null){C(M===null);let V=n&16;if((r===44||r===86||r===100||r===110||r===122||r===244)&&V)R=0,M=0;else{let F=u+1,K=l+1,L=(2-w)*K,_=xs.find(pe=>pe.level>=a)??_e(xs),W=Math.min(Math.floor(_.maxDpbMbs/(F*L)),16);R=W,M=W}}return C(M!==null),{profileIdc:r,constraintFlags:n,levelIdc:a,frameMbsOnlyFlag:w,chromaFormatIdc:i,bitDepthLumaMinus8:s,bitDepthChromaMinus8:o,codedWidth:f,codedHeight:p,displayWidth:h,displayHeight:y,pixelAspectRatio:k,colourPrimaries:b,matrixCoefficients:x,transferCharacteristics:E,fullRangeFlag:S,numReorderFrames:R,maxDecFrameBuffering:M}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},Op=t=>{let e=ee(t);t.skipBits(4),t.skipBits(4);for(let A=0;A<=e;A++)ee(t),ee(t),t.skipBits(1);t.skipBits(5),t.skipBits(5),t.skipBits(5),t.skipBits(5)},tC=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return yc(t,n)}else return Rp(t)},vs=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Mp(t,n)}else return Fi(t)},Wr=t=>t>>1&63,_l=t=>{try{let e=new Ge(Pc(t));e.skipBits(16),e.readBits(4);let A=e.readBits(3),r=e.readBits(1),{general_profile_space:n,general_tier_flag:a,general_profile_idc:i,general_profile_compatibility_flags:s,general_constraint_indicator_flags:o,general_level_idc:c}=AC(e,A);ee(e);let g=ee(e),u=0;g===3&&(u=e.readBits(1));let l=ee(e),f=ee(e),p=l,h=f;if(e.readBits(1)){let F=ee(e),K=ee(e),L=ee(e),_=ee(e),W=1,pe=1,Ae=u===0?g:0;Ae===1?(W=2,pe=2):Ae===2&&(W=2,pe=1),p-=(F+K)*W,h-=(L+_)*pe}let y=ee(e),w=ee(e);ee(e);let b=e.readBits(1)?0:A,E=0;for(let F=b;F<=A;F++)ee(e),E=ee(e),ee(e);ee(e),ee(e),ee(e),ee(e),ee(e),ee(e),e.readBits(1)&&e.readBits(1)&&rC(e),e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(4),e.skipBits(4),ee(e),ee(e),e.skipBits(1));let x=ee(e);if(nC(e,x),e.readBits(1)){let F=ee(e);for(let K=0;K<F;K++)ee(e),e.skipBits(1)}e.skipBits(1),e.skipBits(1);let S=2,k=2,R=2,M=0,N=0,V={num:1,den:1};if(e.readBits(1)){let F=aC(e,A);V=F.pixelAspectRatio,S=F.colourPrimaries,k=F.transferCharacteristics,R=F.matrixCoefficients,M=F.fullRangeFlag,N=F.minSpatialSegmentationIdc}return{displayWidth:p,displayHeight:h,pixelAspectRatio:V,colourPrimaries:S,transferCharacteristics:k,matrixCoefficients:R,fullRangeFlag:M,maxDecFrameBuffering:E+1,spsMaxSubLayersMinus1:A,spsTemporalIdNestingFlag:r,generalProfileSpace:n,generalTierFlag:a,generalProfileIdc:i,generalProfileCompatibilityFlags:s,generalConstraintIndicatorFlags:o,generalLevelIdc:c,chromaFormatIdc:g,bitDepthLumaMinus8:y,bitDepthChromaMinus8:w,minSpatialSegmentationIdc:N}}catch(e){return console.error("Error parsing HEVC SPS:",e),null}},Hi=t=>{try{let e=[],A=[],r=[],n=[];for(let c of Fi(t)){let g=t.subarray(c.offset,c.offset+c.length),u=Wr(g[0]);u===bt.VPS_NUT?e.push(g):u===bt.SPS_NUT?A.push(g):u===bt.PPS_NUT?r.push(g):(u===bt.PREFIX_SEI_NUT||u===bt.SUFFIX_SEI_NUT)&&n.push(g)}if(A.length===0||r.length===0)return null;let a=_l(A[0]);if(!a)return null;let i=0;if(r.length>0){let c=r[0],g=new Ge(Pc(c));g.skipBits(16),ee(g),ee(g),g.skipBits(1),g.skipBits(1),g.skipBits(3),g.skipBits(1),g.skipBits(1),ee(g),ee(g),JA(g),g.skipBits(1),g.skipBits(1),g.readBits(1)&&ee(g),JA(g),JA(g),g.skipBits(1),g.skipBits(1),g.skipBits(1),g.skipBits(1);let u=g.readBits(1),l=g.readBits(1);!u&&!l?i=0:u&&!l?i=2:!u&&l?i=3:i=0}let s=[...e.length?[{arrayCompleteness:1,nalUnitType:bt.VPS_NUT,nalUnits:e}]:[],...A.length?[{arrayCompleteness:1,nalUnitType:bt.SPS_NUT,nalUnits:A}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:bt.PPS_NUT,nalUnits:r}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Wr(n[0][0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,generalProfileIdc:a.generalProfileIdc,generalProfileCompatibilityFlags:a.generalProfileCompatibilityFlags,generalConstraintIndicatorFlags:a.generalConstraintIndicatorFlags,generalLevelIdc:a.generalLevelIdc,minSpatialSegmentationIdc:a.minSpatialSegmentationIdc,parallelismType:i,chromaFormatIdc:a.chromaFormatIdc,bitDepthLumaMinus8:a.bitDepthLumaMinus8,bitDepthChromaMinus8:a.bitDepthChromaMinus8,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:a.spsMaxSubLayersMinus1+1,temporalIdNested:a.spsTemporalIdNestingFlag,lengthSizeMinusOne:3,arrays:s}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},AC=(t,e)=>{let A=t.readBits(2),r=t.readBits(1),n=t.readBits(5),a=0;for(let g=0;g<32;g++)a=a<<1|t.readBits(1);let i=new Uint8Array(6);for(let g=0;g<6;g++)i[g]=t.readBits(8);let s=t.readBits(8),o=[],c=[];for(let g=0;g<e;g++)o.push(t.readBits(1)),c.push(t.readBits(1));if(e>0)for(let g=e;g<8;g++)t.skipBits(2);for(let g=0;g<e;g++)o[g]&&t.skipBits(88),c[g]&&t.skipBits(8);return{general_profile_space:A,general_tier_flag:r,general_profile_idc:n,general_profile_compatibility_flags:a,general_constraint_indicator_flags:i,general_level_idc:s}},rC=t=>{for(let e=0;e<4;e++)for(let A=0;A<(e===3?2:6);A++)if(!t.readBits(1))ee(t);else{let n=Math.min(64,1<<4+(e<<1));e>1&&JA(t);for(let a=0;a<n;a++)JA(t)}},nC=(t,e)=>{let A=[];for(let r=0;r<e;r++)A[r]=iC(t,r,e,A)},iC=(t,e,A,r)=>{let n=0,a=0,i=0;if(e!==0&&(a=t.readBits(1)),a){if(e===A){let o=ee(t);i=e-(o+1)}else i=e-1;t.readBits(1),ee(t);let s=r[i]??0;for(let o=0;o<=s;o++)t.readBits(1)||t.readBits(1);n=r[i]}else{let s=ee(t),o=ee(t);for(let c=0;c<s;c++)ee(t),t.readBits(1);for(let c=0;c<o;c++)ee(t),t.readBits(1);n=s+o}return n},aC=(t,e)=>{let A=2,r=2,n=2,a=0,i=0,s={num:1,den:1};if(t.readBits(1)){let o=t.readBits(8);if(o===255)s={num:t.readBits(16),den:t.readBits(16)};else{let c=Np[o];c&&(s=c)}}return t.readBits(1)&&t.readBits(1),t.readBits(1)&&(t.readBits(3),a=t.readBits(1),t.readBits(1)&&(A=t.readBits(8),r=t.readBits(8),n=t.readBits(8))),t.readBits(1)&&(ee(t),ee(t)),t.readBits(1),t.readBits(1),t.readBits(1),t.readBits(1)&&(ee(t),ee(t),ee(t),ee(t)),t.readBits(1)&&(t.readBits(32),t.readBits(32),t.readBits(1)&&ee(t),t.readBits(1)&&sC(t,!0,e)),t.readBits(1)&&(t.readBits(1),t.readBits(1),t.readBits(1),i=ee(t),ee(t),ee(t),ee(t),ee(t)),{pixelAspectRatio:s,colourPrimaries:A,transferCharacteristics:r,matrixCoefficients:n,fullRangeFlag:a,minSpatialSegmentationIdc:i}},sC=(t,e,A)=>{let r=!1,n=!1,a=!1;e&&(r=t.readBits(1)===1,n=t.readBits(1)===1,(r||n)&&(a=t.readBits(1)===1,a&&(t.readBits(8),t.readBits(5),t.readBits(1),t.readBits(5)),t.readBits(4),t.readBits(4),a&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5)));for(let i=0;i<=A;i++){let s=t.readBits(1)===1,o=!0;s||(o=t.readBits(1)===1);let c=!1;o?ee(t):c=t.readBits(1)===1;let g=1;c||(g=ee(t)+1),r&&_p(t,g,a),n&&_p(t,g,a)}},_p=(t,e,A)=>{for(let r=0;r<e;r++)ee(t),ee(t),A&&(ee(t),ee(t)),t.readBits(1)},Hp=t=>{let e=[];e.push(t.configurationVersion),e.push((t.generalProfileSpace&3)<<6|(t.generalTierFlag&1)<<5|t.generalProfileIdc&31),e.push(t.generalProfileCompatibilityFlags>>>24&255),e.push(t.generalProfileCompatibilityFlags>>>16&255),e.push(t.generalProfileCompatibilityFlags>>>8&255),e.push(t.generalProfileCompatibilityFlags&255),e.push(...t.generalConstraintIndicatorFlags),e.push(t.generalLevelIdc&255),e.push(240|t.minSpatialSegmentationIdc>>8&15),e.push(t.minSpatialSegmentationIdc&255),e.push(252|t.parallelismType&3),e.push(252|t.chromaFormatIdc&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.avgFrameRate>>8&255),e.push(t.avgFrameRate&255),e.push((t.constantFrameRate&3)<<6|(t.numTemporalLayers&7)<<3|(t.temporalIdNested&1)<<2|t.lengthSizeMinusOne&3),e.push(t.arrays.length&255);for(let A of t.arrays){e.push((A.arrayCompleteness&1)<<7|0|A.nalUnitType&63),e.push(A.nalUnits.length>>8&255),e.push(A.nalUnits.length&255);for(let r of A.nalUnits){e.push(r.length>>8&255),e.push(r.length&255);for(let n=0;n<r.length;n++)e.push(r[n])}}return new Uint8Array(e)};var xt;(function(t){t[t.audAllowed=0]="audAllowed",t[t.beforeFirstVcl=1]="beforeFirstVcl",t[t.afterFirstVcl=2]="afterFirstVcl",t[t.eoBitstreamAllowed=3]="eoBitstreamAllowed",t[t.noMoreDataAllowed=4]="noMoreDataAllowed"})(xt||(xt={}));var Up=(t,e)=>{let A=new Set,r=xt.audAllowed;for(let a of vs(t,e)){if(r===xt.noMoreDataAllowed){A.add(a.offset);continue}let i=Wr(t[a.offset]);if(r===xt.eoBitstreamAllowed&&i!==37){A.add(a.offset);continue}let s=!1;i===35?r>xt.audAllowed?s=!0:r=xt.beforeFirstVcl:i<=31?r>xt.afterFirstVcl?s=!0:r=xt.afterFirstVcl:i===36?r!==xt.afterFirstVcl?s=!0:r=xt.eoBitstreamAllowed:i===37?r<xt.afterFirstVcl?s=!0:r=xt.noMoreDataAllowed:i===32||i===33||i===34||i===39||i>=41&&i<=44||i>=48&&i<=55?r>xt.beforeFirstVcl?s=!0:r=xt.beforeFirstVcl:(i===38||i===40||i>=45&&i<=47||i>=56&&i<=63)&&r<xt.afterFirstVcl&&(s=!0),s&&A.add(a.offset)}if(A.size===0)return null;let n=[];for(let a of vs(t,e))A.has(a.offset)||n.push(t.subarray(a.offset,a.offset+a.length));return tC(n,e)},Ic=t=>{let e=new Ge(t);if(e.readBits(2)!==2)return null;let r=e.readBits(1),a=(e.readBits(1)<<1)+r;if(a===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let c=8;a>=2&&(c=e.readBits(1)?12:10);let g=e.readBits(3),u=0,l=0;if(g!==7)if(l=e.readBits(1),a===1||a===3){let k=e.readBits(1),R=e.readBits(1);u=!k&&!R?3:k&&!R?2:1,e.skipBits(1)}else u=1;else u=3,l=1;let f=e.readBits(16),p=e.readBits(16),h=f+1,y=p+1,w=h*y,D=_e(Pr).level;for(let S of Pr)if(w<=S.maxPictureSize){D=S.level;break}return{profile:a,level:D,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:g===2?1:g===1?6:2,transferCharacteristics:g===2?1:g===1?6:2,matrixCoefficients:g===7?0:g===2?1:g===1?6:2}},qp=function*(t){let e=new Ge(t),A=()=>{let r=0;for(let n=0;n<8;n++){let a=e.readAlignedByte();if(r|=(a&127)<<n*7,!(a&128))break;if(n===7&&a&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){e.skipBits(1);let r=e.readBits(4),n=e.readBits(1),a=e.readBits(1);e.skipBits(1),n&&e.skipBits(8);let i;if(a){let s=A();if(s===null)return;i=s}else i=Math.floor(e.getBitsLeft()/8);C(e.pos%8===0),yield{type:r,data:t.subarray(e.pos/8,e.pos/8+i)},e.skipBits(i*8)}},Dc=t=>{for(let{type:e,data:A}of qp(t)){if(e!==1)continue;let r=new Ge(A),n=r.readBits(3),a=r.readBits(1),i=r.readBits(1),s=0,o=0,c=0;if(i)s=r.readBits(5);else{if(r.readBits(1)&&(r.skipBits(32),r.skipBits(32),r.readBits(1)))return null;let S=r.readBits(1);S&&(c=r.readBits(5),r.skipBits(32),r.skipBits(5),r.skipBits(5));let k=r.readBits(5);for(let R=0;R<=k;R++){r.skipBits(12);let M=r.readBits(5);if(R===0&&(s=M),M>7){let V=r.readBits(1);R===0&&(o=V)}if(S&&r.readBits(1)){let F=c+1;r.skipBits(F),r.skipBits(F),r.skipBits(1)}r.readBits(1)&&r.skipBits(4)}}let g=r.readBits(4),u=r.readBits(4),l=g+1;r.skipBits(l);let f=u+1;r.skipBits(f);let p=0;if(i?p=0:p=r.readBits(1),p&&(r.skipBits(4),r.skipBits(3)),r.skipBits(1),r.skipBits(1),r.skipBits(1),!i){r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let x=r.readBits(1);x&&(r.skipBits(1),r.skipBits(1));let S=r.readBits(1),k=0;S?k=2:k=r.readBits(1),k>0&&(r.readBits(1)||r.skipBits(1)),x&&r.skipBits(3)}r.skipBits(1),r.skipBits(1),r.skipBits(1);let h=r.readBits(1),y=8;n===2&&h?y=r.readBits(1)?12:10:n<=2&&(y=h?10:8);let w=0;n!==1&&(w=r.readBits(1));let D=1,b=1,E=0;return w||(n===0?(D=1,b=1):n===1?(D=0,b=0):y===12&&(D=r.readBits(1),D&&(b=r.readBits(1))),D&&b&&(E=r.readBits(2))),{profile:n,level:s,tier:o,bitDepth:y,monochrome:w,chromaSubsamplingX:D,chromaSubsamplingY:b,chromaSamplePosition:E}}return null},Cc=t=>{let e=xe(t),A=e.getUint8(9),r=e.getUint16(10,!0),n=e.getUint32(12,!0),a=e.getInt16(16,!0),i=e.getUint8(18),s=null;return i&&(s=t.subarray(19,21+A)),{outputChannelCount:A,preSkip:r,inputSampleRate:n,outputGain:a,channelMappingFamily:i,channelMappingTable:s}},oC=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Lp=t=>{let e=t[0]>>3;return{durationInSamples:oC[e]}},jp=t=>{if(t.length<7)throw new Error("Setup header is too short.");if(t[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...t.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let A=t.length,r=new Uint8Array(A);for(let u=0;u<A;u++)r[u]=t[A-1-u];let n=new Ge(r),a=0;for(;n.getBitsLeft()>97;)if(n.readBits(1)===1){a=n.pos;break}if(a===0)throw new Error("Invalid Setup header: framing bit not found.");let i=0,s=!1,o=0;for(;n.getBitsLeft()>=97;){let u=n.pos,l=n.readBits(8),f=n.readBits(16),p=n.readBits(16);if(l>63||f!==0||p!==0){n.pos=u;break}if(n.skipBits(1),i++,i>64)break;n.clone().readBits(6)+1===i&&(s=!0,o=i)}if(!s)throw new Error("Invalid Setup header: mode header not found.");if(o>63)throw new Error(`Unsupported mode count: ${o}.`);let c=o;n.pos=0,n.skipBits(a);let g=Array(c).fill(0);for(let u=c-1;u>=0;u--)n.skipBits(40),g[u]=n.readBits(1);return{modeBlockflags:g}},$r=(t,e,A)=>{switch(t){case"avc":{for(let r of Ol(A,e)){let n=A[r.offset],a=zi(n);if(a>=Jt.NON_IDR_SLICE&&a<=Jt.SLICE_DPC)return"delta";if(a===Jt.IDR)return"key";if(a===Jt.SEI&&(!bs()||pp()>=144)){let i=A.subarray(r.offset,r.offset+r.length),s=Pc(i),o=1;do{let c=0;for(;;){let l=s[o++];if(l===void 0||(c+=l,l<255))break}let g=0;for(;;){let l=s[o++];if(l===void 0||(g+=l,l<255))break}if(c===6){let l=new Ge(s);l.pos=8*o;let f=ee(l),p=l.readBits(1);if(f===0&&p===1)return"key"}o+=g}while(o<s.length-1)}}return"delta"}case"hevc":{for(let r of vs(A,e)){let n=Wr(A[r.offset]);if(n<bt.BLA_W_LP)return"delta";if(n<=bt.RSV_IRAP_VCL23)return"key"}return"delta"}case"vp8":return(A[0]&1)===0?"key":"delta";case"vp9":{let r=new Ge(A);if(r.readBits(2)!==2)return null;let n=r.readBits(1);return(r.readBits(1)<<1)+n===3&&r.skipBits(1),r.readBits(1)?null:r.readBits(1)===0?"key":"delta"}case"av1":{let r=!1;for(let{type:n,data:a}of qp(A))if(n===1){let i=new Ge(a);i.skipBits(4),r=!!i.readBits(1)}else if(n===3||n===6||n===7){if(r)return"key";let i=new Ge(a);return i.readBits(1)?null:i.readBits(2)===0?"key":"delta"}return null}default:$t(t),C(!1)}},Zr;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})(Zr||(Zr={}));var _s=(t,e)=>{let A=xe(t),r=0,n=A.getUint32(r,!0);r+=4;let a=mt.decode(t.subarray(r,r+n));r+=n,n>0&&(e.raw??={},e.raw.vendor??=a);let i=A.getUint32(r,!0);r+=4;for(let s=0;s<i;s++){let o=A.getUint32(r,!0);r+=4;let c=mt.decode(t.subarray(r,r+o));r+=o;let g=c.indexOf("=");if(g===-1)continue;let u=c.slice(0,g).toUpperCase(),l=c.slice(g+1);switch(e.raw??={},e.raw[u]??=l,u){case"TITLE":e.title??=l;break;case"DESCRIPTION":e.description??=l;break;case"ARTIST":e.artist??=l;break;case"ALBUM":e.album??=l;break;case"ALBUMARTIST":e.albumArtist??=l;break;case"COMMENT":e.comment??=l;break;case"LYRICS":e.lyrics??=l;break;case"TRACKNUMBER":{let f=l.split("/"),p=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.trackNumber??=p),h&&Number.isInteger(h)&&h>0&&(e.tracksTotal??=h)}break;case"TRACKTOTAL":{let f=Number.parseInt(l,10);Number.isInteger(f)&&f>0&&(e.tracksTotal??=f)}break;case"DISCNUMBER":{let f=l.split("/"),p=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.discNumber??=p),h&&Number.isInteger(h)&&h>0&&(e.discsTotal??=h)}break;case"DISCTOTAL":{let f=Number.parseInt(l,10);Number.isInteger(f)&&f>0&&(e.discsTotal??=f)}break;case"DATE":{let f=new Date(l);Number.isNaN(f.getTime())||(e.date??=f)}break;case"GENRE":e.genre??=l;break;case"METADATA_BLOCK_PICTURE":{let f=Ts(l),p=xe(f),h=p.getUint32(0,!1),y=p.getUint32(4,!1),w=String.fromCharCode(...f.subarray(8,8+y)),D=p.getUint32(8+y,!1),b=mt.decode(f.subarray(12+y,12+y+D)),E=p.getUint32(y+D+28),x=f.subarray(y+D+32,y+D+32+E);e.images??=[],e.images.push({data:x,mimeType:w,kind:h===3?"coverFront":h===4?"coverBack":"unknown",name:void 0,description:b||void 0})}break}}};var Ms=[2,1,2,3,3,4,4,5],bc=t=>{if(t.length<7||t[0]!==11||t[1]!==119)return null;let e=new Ge(t);e.skipBits(16),e.skipBits(16);let A=e.readBits(2);if(A===3)return null;let r=e.readBits(6),n=e.readBits(5);if(n>8)return null;let a=e.readBits(3),i=e.readBits(3);i&1&&i!==1&&e.skipBits(2),i&4&&e.skipBits(2),i===2&&e.skipBits(2);let s=e.readBits(1),o=Math.floor(r/2);return{fscod:A,bsid:n,bsmod:a,acmod:i,lfeon:s,bitRateCode:o}},Vp=[64*2,69*2,96*2,64*2,70*2,96*2,80*2,87*2,120*2,80*2,88*2,120*2,96*2,104*2,144*2,96*2,105*2,144*2,112*2,121*2,168*2,112*2,122*2,168*2,128*2,139*2,192*2,128*2,140*2,192*2,160*2,174*2,240*2,160*2,175*2,240*2,192*2,208*2,288*2,192*2,209*2,288*2,224*2,243*2,336*2,224*2,244*2,336*2,256*2,278*2,384*2,256*2,279*2,384*2,320*2,348*2,480*2,320*2,349*2,480*2,384*2,417*2,576*2,384*2,418*2,576*2,448*2,487*2,672*2,448*2,488*2,672*2,512*2,557*2,768*2,512*2,558*2,768*2,640*2,696*2,960*2,640*2,697*2,960*2,768*2,835*2,1152*2,768*2,836*2,1152*2,896*2,975*2,1344*2,896*2,976*2,1344*2,1024*2,1114*2,1536*2,1024*2,1115*2,1536*2,1152*2,1253*2,1728*2,1152*2,1254*2,1728*2,1280*2,1393*2,1920*2,1280*2,1394*2,1920*2],Kp=1536,n1=new Uint8Array([5,4,65,67,45,51]),i1=new Uint8Array([5,4,69,65,67,51]),Ml=[1,2,3,6],Ec=t=>{if(t.length<6||t[0]!==11||t[1]!==119)return null;let e=new Ge(t);e.skipBits(16);let A=e.readBits(2);if(e.skipBits(3),A!==0&&A!==2)return null;let r=e.readBits(11),n=e.readBits(2),a=0,i;n===3?(a=e.readBits(2),i=3):i=e.readBits(2);let s=e.readBits(3),o=e.readBits(1),c=e.readBits(5);if(c<11||c>16)return null;let g=Ml[i],u;return n<3?u=vn[n]/1e3:u=Yl[a]/1e3,{dataRate:Math.round((r+1)*u/(g*16)),substreams:[{fscod:n,fscod2:a,bsid:c,bsmod:0,acmod:s,lfeon:o,numDepSub:0,chanLoc:0}]}},Wp=t=>{if(t.length<2)return null;let e=new Ge(t),A=e.readBits(13),r=e.readBits(3),n=[];for(let a=0;a<=r&&!(Math.ceil(e.pos/8)+3>t.length);a++){let i=e.readBits(2),s=e.readBits(5);e.skipBits(1),e.skipBits(1);let o=e.readBits(3),c=e.readBits(3),g=e.readBits(1);e.skipBits(3);let u=e.readBits(4),l=0;u>0?l=e.readBits(9):e.skipBits(1),n.push({fscod:i,fscod2:null,bsid:s,bsmod:o,acmod:c,lfeon:g,numDepSub:u,chanLoc:l})}return n.length===0?null:{dataRate:A,substreams:n}},Tc=t=>{let e=t.substreams[0];return C(e),e.fscod<3?vn[e.fscod]:e.fscod2!==null&&e.fscod2<3?Yl[e.fscod2]:null},kc=t=>{let e=t.substreams[0];C(e);let A=Ms[e.acmod]+e.lfeon;if(e.numDepSub>0){let r=[2,2,1,1,2,2,2,1,1];for(let n=0;n<9;n++)e.chanLoc&1<<8-n&&(A+=r[n])}return A};var ht=class{constructor(e){this.input=e}dispose(){}};var dt=new Uint8Array(0),Fe=class t{constructor(e,A,r,n,a=-1,i,s){if(this.data=e,this.type=A,this.timestamp=r,this.duration=n,this.sequenceNumber=a,e===dt&&i===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(i===void 0&&(i=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(A!=="key"&&A!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(r))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(n)||n<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(a))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(i)||i<0)throw new TypeError("byteLength must be a non-negative integer.");if(s!==void 0&&(typeof s!="object"||!s))throw new TypeError("sideData, when provided, must be an object.");if(s?.alpha!==void 0&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(s?.alphaByteLength!==void 0&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=i,this.sideData=s??{},this.sideData.alpha&&this.sideData.alphaByteLength===void 0&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===dt}get microsecondTimestamp(){return Math.trunc(qr*this.timestamp)}get microsecondDuration(){return Math.trunc(qr*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(e=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:e,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e,A){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let r=new Uint8Array(e.byteLength);return e.copyTo(r),new t(r,e.type,e.timestamp/1e6,(e.duration??0)/1e6,void 0,void 0,A)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.data!==void 0&&!(e.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(e?.type!==void 0&&e.type!=="key"&&e.type!=="delta")throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");if(e?.sequenceNumber!==void 0&&!Number.isFinite(e.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(e?.sideData!==void 0&&(typeof e.sideData!="object"||e.sideData===null))throw new TypeError("options.sideData, when provided, must be an object.");return new t(e?.data??this.data,e?.type??this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,e?.sequenceNumber??this.sequenceNumber,this.byteLength,e?.sideData??this.sideData)}};var Gc=t=>{let A=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");if(t.codecStrings.length>0){let r=[...new Set(t.codecStrings)];A+=`; codecs="${r.join(", ")}"`}return A},xc=t=>{let e=xe(t),A=0,r=e.getUint8(A);A+=1,A+=3;let n=Ur(t.subarray(A,A+16));A+=16;let a=null;if(r>0){let s=e.getUint32(A);if(A+=4,s>0){a=[];for(let o=0;o<s;o++)a.push(Ur(t.subarray(A,A+16))),A+=16}}let i=e.getUint32(A);return A+=4,{systemId:n,keyIds:a,data:t.slice(A,A+i)}},Sc=(t,e)=>t.systemId===e.systemId&&wp(t.data,e.data);var GA=8,yr=16,Ir=t=>{let e=J(t),A=Le(t,4),r=8;e===1&&(e=Ut(t),r=16);let a=e-r;return a<0?null:{name:A,totalSize:e,headerSize:r,contentSize:a}},Jr=t=>Dr(t)/65536,Yc=t=>Dr(t)/1073741824,vc=t=>{let e=0;for(let A=0;A<4;A++){e<<=7;let r=ne(t);if(e|=r&127,!(r&128))break}return e},xA=t=>{let e=At(t);return t.skip(2),e=Math.min(e,t.remainingLength),mt.decode(te(t,e))},Zp=t=>{let e=Ir(t);if(!e||e.name!=="data"||t.remainingLength<8)return null;let A=J(t);t.skip(4);let r=te(t,e.contentSize-8);switch(A){case 1:return mt.decode(r);case 2:return new TextDecoder("utf-16be").decode(r);case 13:return new TA(r,"image/jpeg");case 14:return new TA(r,"image/png");case 27:return new TA(r,"image/bmp");default:return r}};var SA=16,Cr=new Uint32Array(256),Ui=new Uint32Array(256),qi=new Uint32Array(256),Li=new Uint32Array(256),ji=new Uint32Array(256),kt=new Uint32Array(256),$p=new Uint32Array(10),Jp=!1,cC=()=>{let t=new Uint8Array(256),e=new Uint8Array(256),A=new Uint8Array(256);for(let a=0,i=1;a<256;a++)A[a]=i,e[i]=a,i=i^i<<1^(i&128?283:0);let r=(a,i)=>a&&i?A[(e[a]+e[i])%255]:0;t[0]=99;for(let a=1;a<256;a++){let i=A[255-e[a]],s=i^i<<1^i<<2^i<<3^i<<4;s=s>>>8^s&255^99,t[a]=s}for(let a=0;a<256;a++){let i=t[a],s=t.indexOf(a);Cr[a]=i<<24|i<<16|i<<8|i,kt[a]=s<<24|s<<16|s<<8|s;let o=r(s,14),c=r(s,9),g=r(s,13),u=r(s,11),l=o<<24|c<<16|g<<8|u;Ui[a]=l,qi[a]=l>>>8|l<<24,Li[a]=l>>>16|l<<16,ji[a]=l>>>24|l<<8}let n=1;for(let a=0;a<10;a++)$p[a]=n<<24,n=n<<1^(n&128?283:0);Jp=!0},Rs=class{constructor(){this.roundkey=new Uint32Array(44),this.iv=new Uint32Array(SA/Uint32Array.BYTES_PER_ELEMENT),this.in=new Uint8Array(SA),this.out=new Uint8Array(SA),this.inView=new DataView(this.in.buffer),this.outView=new DataView(this.out.buffer)}init({key:e,iv:A}){C(e.byteLength===16),C(A.byteLength===16),Jp||cC();let r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=new DataView(A.buffer,A.byteOffset,A.byteLength);this.roundkey[0]=r.getUint32(0,!1),this.roundkey[1]=r.getUint32(4,!1),this.roundkey[2]=r.getUint32(8,!1),this.roundkey[3]=r.getUint32(12,!1),this.iv[0]=n.getUint32(0,!1),this.iv[1]=n.getUint32(4,!1),this.iv[2]=n.getUint32(8,!1),this.iv[3]=n.getUint32(12,!1);for(let a=4;a<44;a+=4){let i=this.roundkey[a-1];this.roundkey[a]=this.roundkey[a-4]^Cr[i>>>16&255]&4278190080^Cr[i>>>8&255]&16711680^Cr[i>>>0&255]&65280^Cr[i>>>24&255]&255^$p[a/4-1],this.roundkey[a+1]=this.roundkey[a-3]^this.roundkey[a],this.roundkey[a+2]=this.roundkey[a-2]^this.roundkey[a+1],this.roundkey[a+3]=this.roundkey[a-1]^this.roundkey[a+2]}for(let a=0,i=40;a<i;a+=4,i-=4)for(let s=0;s<4;s++){let o=this.roundkey[a+s];this.roundkey[a+s]=this.roundkey[i+s],this.roundkey[i+s]=o}for(let a=4;a<40;a+=4)for(let i=0;i<4;i++){let s=this.roundkey[a+i];this.roundkey[a+i]=Ui[Cr[s>>>24&255]&255]^qi[Cr[s>>>16&255]&255]^Li[Cr[s>>>8&255]&255]^ji[Cr[s>>>0&255]&255]}}decrypt(){let e=this.inView.getUint32(0,!1)^this.roundkey[0],A=this.inView.getUint32(4,!1)^this.roundkey[1],r=this.inView.getUint32(8,!1)^this.roundkey[2],n=this.inView.getUint32(12,!1)^this.roundkey[3],a=this.inView.getUint32(0,!1),i=this.inView.getUint32(4,!1),s=this.inView.getUint32(8,!1),o=this.inView.getUint32(12,!1),c,g,u,l;for(let w=1;w<10;w++){let D=w*4;c=Ui[e>>>24]^qi[n>>>16&255]^Li[r>>>8&255]^ji[A&255]^this.roundkey[D],g=Ui[A>>>24]^qi[e>>>16&255]^Li[n>>>8&255]^ji[r&255]^this.roundkey[D+1],u=Ui[r>>>24]^qi[A>>>16&255]^Li[e>>>8&255]^ji[n&255]^this.roundkey[D+2],l=Ui[n>>>24]^qi[r>>>16&255]^Li[A>>>8&255]^ji[e&255]^this.roundkey[D+3],e=c,A=g,r=u,n=l}let f=kt[e>>>24&255]&4278190080^kt[n>>>16&255]&16711680^kt[r>>>8&255]&65280^kt[A>>>0&255]&255^this.roundkey[40],p=kt[A>>>24&255]&4278190080^kt[e>>>16&255]&16711680^kt[n>>>8&255]&65280^kt[r>>>0&255]&255^this.roundkey[41],h=kt[r>>>24&255]&4278190080^kt[A>>>16&255]&16711680^kt[e>>>8&255]&65280^kt[n>>>0&255]&255^this.roundkey[42],y=kt[n>>>24&255]&4278190080^kt[r>>>16&255]&16711680^kt[A>>>8&255]&65280^kt[e>>>0&255]&255^this.roundkey[43];this.outView.setUint32(0,f^this.iv[0],!1),this.outView.setUint32(4,p^this.iv[1],!1),this.outView.setUint32(8,h^this.iv[2],!1),this.outView.setUint32(12,y^this.iv[3],!1),this.iv[0]=a,this.iv[1]=i,this.iv[2]=s,this.iv[3]=o}},Xp=(t,e,A)=>{let r=!1,n=0,a=2**16,i=16,s=new Rs;return new ReadableStream({pull:async o=>{r||(s.init(await e()),r=!0);let c=a+i,g=t.requestSliceRange(n,0,c);if(g instanceof Promise&&(g=await g),!g||g.length===0)throw new Error("Invalid ciphertext.");let u=g.length;if(u%16!==0)throw new Error("Invalid ciphertext.");let l=u===c?u-i:u,f=te(g,l),p=new Uint8Array(l);for(let h=0;h<l;h+=16)s.in.set(f.subarray(h,h+16)),s.decrypt(),p.set(s.out,h);if(l<u)o.enqueue(p),n+=l;else{let h=p[l-1];if(h===0||h>16)throw new Error("Invalid PKCS#7 padding. Incorrect key or corrupted data.");let y=p.subarray(0,l-h);o.enqueue(y),o.close(),A()}},cancel:()=>{A()}})};var Oc=class t extends ht{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.psshBoxes=[],this.currentFragment=null,this.lastReadFragment=null,this.decryptionKeyCache=new Map,this.reader=e._reader}async getTrackBackings(){return await this.readMetadata(),this.tracks.map(e=>e.trackBacking)}async getMimeType(){await this.readMetadata();let e=await this.getTrackBackings(),A=await Promise.all(e.map(r=>r.getDecoderConfig().then(n=>n?.codec??null)));return Gc({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(r=>r.info?.type==="video"),hasAudio:this.tracks.some(r=>r.info?.type==="audio"),codecStrings:A.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0,A=!1;for(;;){let r=this.reader.requestSliceRange(e,GA,yr);if(r instanceof Promise&&(r=await r),!r)break;let n=e,a=Ir(r);if(!a)break;if(a.name==="ftyp"||a.name==="styp"){let i=Le(r,4);this.isQuickTime=i==="qt "}else if(a.name==="moov"){let i=this.reader.requestSlice(r.filePos,a.contentSize);if(i instanceof Promise&&(i=await i),!i)break;this.moovSlice=i,this.readContiguousBoxes(this.moovSlice);for(let s of this.tracks){let o=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(o*s.timescale)}A=this.isFragmented&&this.reader.fileSize!==null&&this.reader.fileSize>n+a.totalSize;break}else if(a.name==="moof"){if(!this.input._initInput)throw new Error('"moof" box encountered with no "moov" box present; this file is likely a Segment as described in ISO/IEC 14496-12 Section 8.16. A separate init file that contains a "moov" box is required to read this file, please provide it using InputOptions.initInput.');let i=await this.input._initInput._getDemuxer();if(i.constructor!==t)throw new Error("Init input must match the input's format.");await i.readMetadata(),this.movieTimescale=i.movieTimescale,this.movieDurationInTimescale=i.movieDurationInTimescale,this.metadataTags=i.metadataTags,this.isFragmented=!0,this.fragmentTrackDefaults=i.fragmentTrackDefaults,this.psshBoxes=i.psshBoxes;for(let s of i.tracks){let o={id:s.id,demuxer:this,trackBacking:null,disposition:s.disposition,timescale:s.timescale,durationInMediaTimescale:s.durationInMediaTimescale,durationInMovieTimescale:s.durationInMovieTimescale,rotation:s.rotation,internalCodecId:s.internalCodecId,name:s.name,languageCode:s.languageCode,sampleTableByteOffset:null,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:s.editListPreviousSegmentDurations,editListOffset:s.editListOffset,encryptionInfo:s.encryptionInfo,encryptionAuxInfo:null,frmaCodecString:null,info:s.info};if(s.trackBacking){if(C(o.info),o.info.type==="video"&&o.info.width!==-1){let c=o;o.trackBacking=new Mc(c),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let c=o;o.trackBacking=new Rc(c),this.tracks.push(o)}}}A=!1;break}e=n+a.totalSize}if(A){C(this.reader.fileSize!==null);let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),C(r);let n=J(r),a=this.reader.fileSize-n;if(a>=0&&a<=this.reader.fileSize-yr){let i=this.reader.requestSliceRange(a,GA,yr);if(i instanceof Promise&&(i=await i),i){let s=Ir(i);if(s&&s.name==="mfra"){let o=this.reader.requestSlice(i.filePos,s.contentSize);o instanceof Promise&&(o=await o),o&&this.readContiguousBoxes(o)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let A={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=A,e.sampleTableByteOffset===null)return A;C(this.moovSlice);let r=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(r),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Ot.includes(e.info.codec)&&A.sampleCompositionTimeOffsets.length===0){C(e.info?.type==="audio");let a=kA(e.info.codec),i=[],s=[];for(let o=0;o<A.sampleToChunk.length;o++){let c=A.sampleToChunk[o],g=A.sampleToChunk[o+1],u=(g?g.startChunkIndex:A.chunkOffsets.length)-c.startChunkIndex;for(let l=0;l<u;l++){let f=c.startSampleIndex+l*c.samplesPerChunk,p=f+c.samplesPerChunk,h=ye(A.sampleTimingEntries,f,R=>R.startIndex),y=A.sampleTimingEntries[h],w=ye(A.sampleTimingEntries,p,R=>R.startIndex),D=A.sampleTimingEntries[w],b=y.startDecodeTimestamp+(f-y.startIndex)*y.delta,x=D.startDecodeTimestamp+(p-D.startIndex)*D.delta-b,S=_e(i);S&&S.delta===x?S.count++:i.push({startIndex:c.startChunkIndex+l,startDecodeTimestamp:b,count:1,delta:x});let k=c.samplesPerChunk*a.sampleSize*e.info.numberOfChannels;s.push(k)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}A.sampleTimingEntries=i,A.sampleSizes=s}if(A.sampleCompositionTimeOffsets.length>0){A.presentationTimestamps=[];for(let a of A.sampleTimingEntries)for(let i=0;i<a.count;i++)A.presentationTimestamps.push({presentationTimestamp:a.startDecodeTimestamp+i*a.delta,sampleIndex:a.startIndex+i});for(let a of A.sampleCompositionTimeOffsets)for(let i=0;i<a.count;i++){let s=a.startIndex+i,o=A.presentationTimestamps[s];o&&(o.presentationTimestamp+=a.offset)}A.presentationTimestamps.sort((a,i)=>a.presentationTimestamp-i.presentationTimestamp),A.presentationTimestampIndexMap=Array(A.presentationTimestamps.length).fill(-1);for(let a=0;a<A.presentationTimestamps.length;a++)A.presentationTimestampIndexMap[A.presentationTimestamps[a].sampleIndex]=a}return A}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let A=this.reader.requestSliceRange(e,GA,yr);A instanceof Promise&&(A=await A),C(A);let r=Ir(A);C(r?.name==="moof");let n=this.reader.requestSlice(e,r.totalSize);n instanceof Promise&&(n=await n),C(n),this.traverseBox(n);let a=this.lastReadFragment;C(a&&a.moofOffset===e);for(let[,i]of a.trackData){let s=i.track,{fragmentPositionCache:o}=s;if(!i.startTimestampIsFinal){let g=s.fragmentLookupTable.find(u=>u.moofOffset===a.moofOffset);if(g)Rl(i,g.timestamp);else{let u=ye(o,a.moofOffset-1,l=>l.moofOffset);if(u!==-1){let l=o[u];Rl(i,l.endTimestamp)}}i.startTimestampIsFinal=!0}let c=ye(o,i.startTimestamp,g=>g.startTimestamp);if((c===-1||o[c].moofOffset!==a.moofOffset)&&o.splice(c+1,0,{moofOffset:a.moofOffset,startTimestamp:i.startTimestamp,endTimestamp:i.endTimestamp}),i.encryptionAuxInfo&&s.encryptionInfo){let g=await rw(this.reader,s.encryptionInfo,i.encryptionAuxInfo);for(let u=0;u<Math.min(i.samples.length,g.length);u++){let l=g[u];i.samples[u].encryption=l}}}return a}readContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-GA&&this.traverseBox(e););}*iterateContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-GA;){let r=e.filePos,n=Ir(e);if(!n)break;yield{boxInfo:n,slice:e},e.filePos=r+n.totalSize}}traverseBox(e){let A=e.filePos,r=Ir(e);if(!r)return!1;let n=e.filePos,a=A+r.totalSize;switch(r.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"sinf":case"schi":this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"mvhd":{let i=ne(e);e.skip(3),i===1?(e.skip(16),this.movieTimescale=J(e),this.movieDurationInTimescale=Ut(e)):(e.skip(8),this.movieTimescale=J(e),this.movieDurationInTimescale=J(e))}break;case"trak":{let i={id:-1,demuxer:this,trackBacking:null,disposition:{...Ct,primary:!1},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Xe,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0,encryptionInfo:null,encryptionAuxInfo:null,frmaCodecString:null};if(this.currentTrack=i,this.readContiguousBoxes(e.slice(n,r.contentSize)),i.id!==-1&&i.timescale!==-1&&i.info!==null){if(i.info.type==="video"&&i.info.width!==-1){let s=i;i.trackBacking=new Mc(s),this.tracks.push(i)}else if(i.info.type==="audio"&&i.info.numberOfChannels!==-1){let s=i;i.trackBacking=new Rc(s),this.tracks.push(i)}}this.currentTrack=null}break;case"tkhd":{let i=this.currentTrack;if(!i)break;let s=ne(e),c=!!(YA(e)&1);if(i.disposition.default=c,s===0)e.skip(8),i.id=J(e),e.skip(4),i.durationInMovieTimescale=J(e);else if(s===1)e.skip(16),i.id=J(e),e.skip(4),i.durationInMovieTimescale=Ut(e);else throw new Error(`Incorrect track header version ${s}.`);e.skip(2*4+2+2+2+2);let g=[Jr(e),Jr(e),Yc(e),Jr(e),Jr(e),Yc(e),Jr(e),Jr(e),Yc(e)],u=Yi(Is(dC(g),90));C(u===0||u===90||u===180||u===270),i.rotation=u}break;case"elst":{let i=this.currentTrack;if(!i)break;let s=ne(e);e.skip(3);let o=!1,c=0,g=J(e);for(let u=0;u<g;u++){let l=s===1?Ut(e):J(e),f=s===1?iw(e):Dr(e),p=Jr(e);if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){c+=l;continue}if(p!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}i.editListPreviousSegmentDurations=c,i.editListOffset=f,o=!0}}}break;case"mdhd":{let i=this.currentTrack;if(!i)break;let s=ne(e);e.skip(3),s===0?(e.skip(8),i.timescale=J(e),i.durationInMediaTimescale=J(e)):s===1&&(e.skip(16),i.timescale=J(e),i.durationInMediaTimescale=Ut(e));let o=At(e);if(o>0){i.languageCode="";for(let c=0;c<3;c++)i.languageCode=String.fromCharCode(96+(o&31))+i.languageCode,o>>=5;Oi(i.languageCode)||(i.languageCode=Xe)}}break;case"hdlr":{let i=this.currentTrack;if(!i)break;e.skip(8);let s=Le(e,4);s==="vide"?i.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:s==="soun"&&(i.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null,pcmLittleEndian:!1,pcmSampleSize:null})}break;case"stbl":{let i=this.currentTrack;if(!i)break;i.sampleTableByteOffset=A,this.readContiguousBoxes(e.slice(n,r.contentSize))}break;case"stsd":{let i=this.currentTrack;if(!i||i.info===null||i.sampleTable)break;let s=ne(e);e.skip(3);let o=J(e);for(let c=0;c<o;c++){let g=e.filePos,u=Ir(e);if(!u)break;i.internalCodecId=u.name;let l=u.name.toLowerCase();if(i.info.type==="video"){e.skip(6*1+2+2+2+3*4),i.info.width=At(e),i.info.height=At(e),i.info.squarePixelWidth=i.info.width,i.info.squarePixelHeight=i.info.height,e.skip(50),i.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,g+u.totalSize-e.filePos));let f=l==="encv"?i.frmaCodecString:l;i.frmaCodecString=null,f==="avc1"||f==="avc3"?(i.info.codec="avc",i.info.avcType=f==="avc1"?1:3):f==="hvc1"||f==="hev1"?i.info.codec="hevc":f==="vp08"?i.info.codec="vp8":f==="vp09"?i.info.codec="vp9":f==="av01"?i.info.codec="av1":console.warn(f===null?"Unknown encrypted video codec due to missing frma box.":`Unsupported video codec (sample entry type '${u.name}').`)}else{e.skip(6*1+2);let f=At(e);e.skip(3*2);let p=At(e),h=At(e);e.skip(2*2);let y=J(e)/65536,w=null;s===0&&f>0&&(f===1?(e.skip(4),h=8*J(e),e.skip(2*4)):f===2&&(e.skip(4),y=Qc(e),p=J(e),e.skip(4),h=J(e),w=J(e),e.skip(2*4))),i.info.numberOfChannels=p,i.info.sampleRate=y,i.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,g+u.totalSize-e.filePos));let D=l==="enca"?i.frmaCodecString:l;if(i.frmaCodecString=null,D!=="mp4a")if(D==="opus")i.info.codec="opus",i.info.sampleRate=Yn;else if(D==="flac")i.info.codec="flac";else if(D==="ulaw")i.info.codec="ulaw";else if(D==="alaw")i.info.codec="alaw";else if(D==="ac-3")i.info.codec="ac3";else if(D==="ec-3")i.info.codec="eac3";else if(D==="twos")h===8?i.info.codec="pcm-s8":h===16?i.info.codec=i.info.pcmLittleEndian?"pcm-s16":"pcm-s16be":(console.warn(`Unsupported sample size ${h} for codec 'twos'.`),i.info.codec=null);else if(D==="sowt")h===8?i.info.codec="pcm-s8":h===16?i.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${h} for codec 'sowt'.`),i.info.codec=null);else if(D==="raw ")i.info.codec="pcm-u8";else if(D==="in24")i.info.codec=i.info.pcmLittleEndian?"pcm-s24":"pcm-s24be";else if(D==="in32")i.info.codec=i.info.pcmLittleEndian?"pcm-s32":"pcm-s32be";else if(D==="fl32")i.info.codec=i.info.pcmLittleEndian?"pcm-f32":"pcm-f32be";else if(D==="fl64")i.info.codec=i.info.pcmLittleEndian?"pcm-f64":"pcm-f64be";else if(D==="ipcm"){let b=i.info.pcmSampleSize;i.info.pcmLittleEndian?b===16?i.info.codec="pcm-s16":b===24?i.info.codec="pcm-s24":b===32?i.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${b}.`),i.info.codec=null):b===16?i.info.codec="pcm-s16be":b===24?i.info.codec="pcm-s24be":b===32?i.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${b}.`),i.info.codec=null)}else if(D==="fpcm"){let b=i.info.pcmSampleSize;i.info.pcmLittleEndian?b===32?i.info.codec="pcm-f32":b===64?i.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${b}.`),i.info.codec=null):b===32?i.info.codec="pcm-f32be":b===64?i.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${b}.`),i.info.codec=null)}else if(D==="lpcm"&&w!==null){let b=h+7>>3,E=!!(w&1),x=!!(w&2),S=w&4?-1:0;h>0&&h<=64&&(E?h===32&&(i.info.codec=x?"pcm-f32be":"pcm-f32"):S&1<<b-1?b===1?i.info.codec="pcm-s8":b===2?i.info.codec=x?"pcm-s16be":"pcm-s16":b===3?i.info.codec=x?"pcm-s24be":"pcm-s24":b===4&&(i.info.codec=x?"pcm-s32be":"pcm-s32"):b===1&&(i.info.codec="pcm-u8")),i.info.codec===null&&console.warn("Unsupported PCM format.")}else console.warn(D===null?"Unknown encrypted audio codec due to missing frma box.":`Unsupported audio codec (sample entry type '${u.name}').`)}e.filePos=g+u.totalSize}}break;case"frma":{let i=this.currentTrack;if(!i)break;let o=Le(e,4).toLowerCase();i.frmaCodecString=o}break;case"schm":{let i=this.currentTrack;if(!i)break;e.skip(4);let s=Le(e,4);s==="cenc"||s==="cens"||s==="cbcs"?i.encryptionInfo={scheme:s,defaultKid:null,defaultIsProtected:null,defaultPerSampleIvSize:null,defaultConstantIv:null,defaultCryptByteBlock:null,defaultSkipByteBlock:null}:console.warn(`Unsupported encryption scheme '${s}'.`)}break;case"tenc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ne(e);e.skip(3),e.skip(1);let o=ne(e);if(s>0?(i.encryptionInfo.defaultCryptByteBlock=o>>4,i.encryptionInfo.defaultSkipByteBlock=o&15):(i.encryptionInfo.defaultCryptByteBlock=0,i.encryptionInfo.defaultSkipByteBlock=0),i.encryptionInfo.defaultIsProtected=ne(e)!==0,i.encryptionInfo.defaultPerSampleIvSize=ne(e),i.encryptionInfo.defaultKid=Ur(te(e,16)),i.encryptionInfo.defaultIsProtected&&i.encryptionInfo.defaultPerSampleIvSize===0){let c=ne(e),g=new Uint8Array(16);g.set(te(e,c),0),i.encryptionInfo.defaultConstantIv=g}}break;case"avcC":{let i=this.currentTrack;if(!i)break;C(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"hvcC":{let i=this.currentTrack;if(!i)break;C(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"vpcC":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video"),e.skip(4);let s=ne(e),o=ne(e),c=ne(e),g=c>>4,u=c>>1&7,l=c&1,f=ne(e),p=ne(e),h=ne(e);i.info.vp9CodecInfo={profile:s,level:o,bitDepth:g,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:f,transferCharacteristics:p,matrixCoefficients:h}}break;case"av1C":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video"),e.skip(1);let s=ne(e),o=s>>5,c=s&31,g=ne(e),u=g>>7,l=g>>6&1,f=g>>5&1,p=g>>4&1,h=g>>3&1,y=g>>2&1,w=g&3,D=o===2&&l?f?12:10:l?10:8;i.info.av1CodecInfo={profile:o,level:c,tier:u,bitDepth:D,monochrome:p,chromaSubsamplingX:h,chromaSubsamplingY:y,chromaSamplePosition:w}}break;case"colr":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video");let s=Le(e,4);if(s!=="nclx"&&s!=="nclc")break;let o=At(e),c=At(e),g=At(e),u;s==="nclx"&&(u=!!(ne(e)&128)),i.info.colorSpace={primaries:Cn[o],transfer:bn[c],matrix:En[g],fullRange:u}}break;case"pasp":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video");let s=J(e),o=J(e);s>0&&o>0&&(s>o?i.info.squarePixelWidth=Math.round(i.info.width*s/o):i.info.squarePixelHeight=Math.round(i.info.height*o/s))}break;case"wave":this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"esds":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=ne(e);C(s===3),vc(e),e.skip(2);let o=ne(e),c=(o&128)!==0,g=(o&64)!==0,u=(o&32)!==0;if(c&&e.skip(2),g){let y=ne(e);e.skip(y)}u&&e.skip(2);let l=ne(e);C(l===4);let f=vc(e),p=e.filePos,h=ne(e);if(h===64||h===103?(i.info.codec="aac",i.info.aacCodecInfo={isMpeg2:h===103,objectType:null}):h===105||h===107?i.info.codec="mp3":h===221?i.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${h}) - discarding track.`),e.skip(12),f>e.filePos-p){let y=ne(e);C(y===5);let w=vc(e);if(i.info.codecDescription=te(e,w),i.info.codec==="aac"){let D=fc(i.info.codecDescription);D.numberOfChannels!==null&&(i.info.numberOfChannels=D.numberOfChannels),D.sampleRate!==null&&(i.info.sampleRate=D.sampleRate)}}}break;case"enda":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),i.info.pcmLittleEndian=!!(At(e)&255)}break;case"pcmC":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=ne(e);i.info.pcmLittleEndian=!!(s&1),i.info.pcmSampleSize=ne(e)}break;case"dOps":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(1);let s=ne(e),o=At(e),c=J(e),g=Qs(e),u=ne(e),l;u!==0?l=te(e,2+s):l=new Uint8Array(0);let f=new Uint8Array(19+l.byteLength),p=new DataView(f.buffer);p.setUint32(0,1332770163,!1),p.setUint32(4,1214603620,!1),p.setUint8(8,1),p.setUint8(9,s),p.setUint16(10,o,!0),p.setUint32(12,c,!0),p.setInt16(16,g,!0),p.setUint8(18,u),f.set(l,19),i.info.codecDescription=f,i.info.numberOfChannels=s}break;case"dfLa":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=127,o=128,c=e.filePos;for(;e.filePos<a;){let p=ne(e),h=YA(e);if((p&s)===Zr.STREAMINFO){e.skip(10);let w=J(e),D=w>>>12,b=(w>>9&7)+1;i.info.sampleRate=D,i.info.numberOfChannels=b,e.skip(20)}else e.skip(h);if(p&o)break}let g=e.filePos;e.filePos=c;let u=te(e,g-c),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),i.info.codecDescription=l}break;case"dac3":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio");let s=te(e,3),o=new Ge(s),c=o.readBits(2);o.skipBits(8);let g=o.readBits(3),u=o.readBits(1);c<3&&(i.info.sampleRate=vn[c]),i.info.numberOfChannels=Ms[g]+u}break;case"dec3":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio");let s=te(e,r.contentSize),o=Wp(s);if(!o){console.warn("Invalid dec3 box contents, ignoring.");break}let c=Tc(o);c!==null&&(i.info.sampleRate=c),i.info.numberOfChannels=kc(o)}break;case"stts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=0,c=0;for(let g=0;g<s;g++){let u=J(e),l=J(e);i.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:c,count:u,delta:l}),o+=u,c+=u*l}}break;case"ctts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=0;for(let c=0;c<s;c++){let g=J(e),u=Dr(e);i.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:g,offset:u}),o+=g}}break;case"stsz":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=J(e);if(s===0)for(let c=0;c<o;c++){let g=J(e);i.sampleTable.sampleSizes.push(g)}else i.sampleTable.sampleSizes.push(s)}break;case"stz2":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),e.skip(3);let s=ne(e),o=J(e),c=te(e,Math.ceil(o*s/8)),g=new Ge(c);for(let u=0;u<o;u++){let l=g.readBits(s);i.sampleTable.sampleSizes.push(l)}}break;case"stss":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),i.sampleTable.keySampleIndices=[];let s=J(e);for(let o=0;o<s;o++){let c=J(e)-1;i.sampleTable.keySampleIndices.push(c)}i.sampleTable.keySampleIndices[0]!==0&&i.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let c=0;c<s;c++){let g=J(e)-1,u=J(e),l=J(e);i.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:g,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let c=0;c<i.sampleTable.sampleToChunk.length;c++)if(i.sampleTable.sampleToChunk[c].startSampleIndex=o,c<i.sampleTable.sampleToChunk.length-1){let u=i.sampleTable.sampleToChunk[c+1].startChunkIndex-i.sampleTable.sampleToChunk[c].startChunkIndex;o+=u*i.sampleTable.sampleToChunk[c].samplesPerChunk}}break;case"stco":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let o=0;o<s;o++){let c=J(e);i.sampleTable.chunkOffsets.push(c)}}break;case"co64":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let o=0;o<s;o++){let c=Ut(e);i.sampleTable.chunkOffsets.push(c)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"mehd":{let i=ne(e);e.skip(3);let s=i===1?Ut(e):J(e);this.movieDurationInTimescale=s}break;case"trex":{e.skip(4);let i=J(e),s=J(e),o=J(e),c=J(e),g=J(e);this.fragmentTrackDefaults.push({trackId:i,defaultSampleDescriptionIndex:s,defaultSampleDuration:o,defaultSampleSize:c,defaultSampleFlags:g})}break;case"tfra":{let i=ne(e);e.skip(3);let s=J(e),o=this.tracks.find(D=>D.id===s);if(!o)break;let c=J(e),g=(c&48)>>4,u=(c&12)>>2,l=c&3,f=[ne,At,YA,J],p=f[g],h=f[u],y=f[l],w=J(e);for(let D=0;D<w;D++){let b=i===1?Ut(e):J(e),E=i===1?Ut(e):J(e);p(e),h(e),y(e),o.fragmentLookupTable.push({timestamp:b,moofOffset:E})}o.fragmentLookupTable.sort((D,b)=>D.timestamp-b.timestamp);for(let D=0;D<o.fragmentLookupTable.length-1;D++){let b=o.fragmentLookupTable[D],E=o.fragmentLookupTable[D+1];b.timestamp===E.timestamp&&(o.fragmentLookupTable.splice(D+1,1),D--)}}break;case"moof":this.currentFragment={moofOffset:A,moofSize:r.totalSize,implicitBaseDataOffset:A,trackData:new Map,psshBoxes:[]},this.readContiguousBoxes(e.slice(n,r.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(C(this.currentFragment),this.readContiguousBoxes(e.slice(n,r.contentSize)),this.currentTrack){let i=this.currentFragment.trackData.get(this.currentTrack.id);if(i){this.currentFragment.implicitBaseDataOffset=i.currentOffset,i.presentationTimestamps=i.samples.map((g,u)=>({presentationTimestamp:g.presentationTimestamp,sampleIndex:u})).sort((g,u)=>g.presentationTimestamp-u.presentationTimestamp);for(let g=0;g<i.presentationTimestamps.length;g++){let u=i.presentationTimestamps[g],l=i.samples[u.sampleIndex];if(i.firstKeyFrameTimestamp===null&&l.isKeyFrame&&(i.firstKeyFrameTimestamp=l.presentationTimestamp),g<i.presentationTimestamps.length-1){let p=i.presentationTimestamps[g+1].presentationTimestamp-u.presentationTimestamp;l.duration=p}}let s=i.samples[i.presentationTimestamps[0].sampleIndex],o=i.samples[_e(i.presentationTimestamps).sampleIndex];i.startTimestamp=s.presentationTimestamp,i.endTimestamp=o.presentationTimestamp+o.duration;let{currentFragmentState:c}=this.currentTrack;C(c),c.startTimestamp!==null&&(Rl(i,c.startTimestamp),i.startTimestampIsFinal=!0),c.encryptionAuxInfo&&!i.samples[0].encryption&&(i.encryptionAuxInfo=c.encryptionAuxInfo)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"pssh":{if(this.input._formatOptions.isobmff?._suppressPsshParsing)break;let i=xc(te(e,r.contentSize));this.currentFragment?this.currentFragment.psshBoxes.push(i):this.currentTrack||this.psshBoxes.push(i)}break;case"tfhd":{C(this.currentFragment),e.skip(1);let i=YA(e),s=!!(i&1),o=!!(i&2),c=!!(i&8),g=!!(i&16),u=!!(i&32),l=!!(i&65536),f=!!(i&131072),p=J(e),h=this.tracks.find(w=>w.id===p);if(!h)break;let y=this.fragmentTrackDefaults.find(w=>w.trackId===p);this.currentTrack=h,h.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:y?.defaultSampleDescriptionIndex??null,defaultSampleDuration:y?.defaultSampleDuration??null,defaultSampleSize:y?.defaultSampleSize??null,defaultSampleFlags:y?.defaultSampleFlags??null,startTimestamp:null,encryptionAuxInfo:null},s?h.currentFragmentState.baseDataOffset=Ut(e):f&&(h.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(h.currentFragmentState.sampleDescriptionIndex=J(e)),c&&(h.currentFragmentState.defaultSampleDuration=J(e)),g&&(h.currentFragmentState.defaultSampleSize=J(e)),u&&(h.currentFragmentState.defaultSampleFlags=J(e)),l&&(h.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let i=this.currentTrack;if(!i)break;C(i.currentFragmentState);let s=ne(e);e.skip(3);let o=s===0?J(e):Ut(e);i.currentFragmentState.startTimestamp=o}break;case"trun":{let i=this.currentTrack;if(!i)break;C(this.currentFragment),C(i.currentFragmentState);let s=ne(e),o=YA(e),c=!!(o&1),g=!!(o&4),u=!!(o&256),l=!!(o&512),f=!!(o&1024),p=!!(o&2048),h=J(e),y=null;c&&(y=Dr(e));let w=null;g&&(w=J(e));let D;if(this.currentFragment.trackData.has(i.id)?(D=this.currentFragment.trackData.get(i.id),y!==null&&(D.currentOffset=i.currentFragmentState.baseDataOffset+y)):(D={track:i,currentTimestamp:0,currentOffset:i.currentFragmentState.baseDataOffset+(y??0),startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1,encryptionAuxInfo:null},this.currentFragment.trackData.set(i.id,D)),h===0){this.currentFragment.implicitBaseDataOffset=D.currentOffset;break}for(let b=0;b<h;b++){let E;u?E=J(e):(C(i.currentFragmentState.defaultSampleDuration!==null),E=i.currentFragmentState.defaultSampleDuration);let x;l?x=J(e):(C(i.currentFragmentState.defaultSampleSize!==null),x=i.currentFragmentState.defaultSampleSize);let S;f?S=J(e):(C(i.currentFragmentState.defaultSampleFlags!==null),S=i.currentFragmentState.defaultSampleFlags),b===0&&w!==null&&(S=w);let k=0;p&&(s===0?k=J(e):k=Dr(e));let R=!(S&65536);D.samples.push({presentationTimestamp:D.currentTimestamp+k,duration:E,byteOffset:D.currentOffset,byteSize:x,isKeyFrame:R,encryption:null}),D.currentOffset+=x,D.currentTimestamp+=E}}break;case"saiz":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;if(e.skip(1),YA(e)&1){let l=Le(e,4),f=J(e);if(l!==i.encryptionInfo.scheme||f!==0)break}let o=ne(e),c=J(e),g=null;o===0&&c>0&&(g=te(e,c));let u=tw(i);u.defaultSampleInfoSize=o,u.sampleSizes=g,u.sampleCount=c}break;case"saio":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ne(e);if(YA(e)&1){let l=Le(e,4),f=J(e);if(l!==i.encryptionInfo.scheme||f!==0)break}let c=J(e);if(c===0)break;c>1&&console.warn("Multiple saio entries are not supported; using the first offset only.");let g=s===0?J(e):Number(Ut(e));this.currentFragment&&(g+=this.currentFragment.moofOffset);let u=tw(i);u.offset=g}break;case"senc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;C(this.currentFragment);let s=this.currentFragment.trackData.get(i.id);if(!s)break;e.skip(1);let c=!!(YA(e)&2),g=J(e),u=i.encryptionInfo.defaultPerSampleIvSize;C(u!==null);for(let l=0;l<Math.min(g,s.samples.length);l++){let f=new Uint8Array(16);u>0?f.set(te(e,u),0):f.set(i.encryptionInfo.defaultConstantIv,0);let p=null;if(c){let y=At(e);p=[];for(let w=0;w<y;w++){let D=At(e),b=J(e);p.push({clearLen:D,protectedLen:b})}}let h=s.samples[l];h.encryption={iv:f,subsamples:p}}}break;case"udta":{let i=this.iterateContiguousBoxes(e.slice(n,r.contentSize));for(let{boxInfo:s,slice:o}of i){if(s.name!=="meta"&&!this.currentTrack){let c=o.filePos;this.metadataTags.raw??={},s.name[0]==="\xA9"?this.metadataTags.raw[s.name]??=xA(o):this.metadataTags.raw[s.name]??=te(o,s.contentSize),o.filePos=c}switch(s.name){case"meta":o.skip(-s.headerSize),this.traverseBox(o);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=mt.decode(te(o,s.contentSize)):this.metadataTags.title??=xA(o);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=xA(o));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=xA(o));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=xA(o));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=xA(o));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=xA(o));break;case"\xA9day":if(!this.currentTrack){let c=new Date(xA(o));Number.isNaN(c.getTime())||(this.metadataTags.date??=c)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=xA(o));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=xA(o));break}}}break;case"meta":{if(this.currentTrack)break;let s=J(e)!==0;this.currentMetadataKeys=new Map,s?this.readContiguousBoxes(e.slice(n,r.contentSize)):this.readContiguousBoxes(e.slice(n+4,r.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let i=J(e);for(let s=0;s<i;s++){let o=J(e);e.skip(4);let c=mt.decode(te(e,o-8));this.currentMetadataKeys.set(s+1,c)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let i=this.iterateContiguousBoxes(e.slice(n,r.contentSize));for(let{boxInfo:s,slice:o}of i){let c=s.name,g=(c.charCodeAt(0)<<24)+(c.charCodeAt(1)<<16)+(c.charCodeAt(2)<<8)+c.charCodeAt(3);this.currentMetadataKeys.has(g)&&(c=this.currentMetadataKeys.get(g));let u=Zp(o);switch(this.metadataTags.raw??={},this.metadataTags.raw[c]??=u,c){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof u=="string"&&(this.metadataTags.title??=u);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof u=="string"&&(this.metadataTags.description??=u);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof u=="string"&&(this.metadataTags.artist??=u);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof u=="string"&&(this.metadataTags.album??=u);break;case"aART":case"album_artist":typeof u=="string"&&(this.metadataTags.albumArtist??=u);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof u=="string"&&(this.metadataTags.comment??=u);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof u=="string"&&(this.metadataTags.genre??=u);break;case"\xA9lyr":case"lyrics":typeof u=="string"&&(this.metadataTags.lyrics??=u);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof u=="string"){let l=new Date(u);Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"covr":case"com.apple.quicktime.artwork":u instanceof TA?(this.metadataTags.images??=[],this.metadataTags.images.push({data:u.data,kind:"coverFront",mimeType:u.mimeType})):u instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:u,kind:"coverFront",mimeType:"image/*"}));break;case"track":if(typeof u=="string"){let l=u.split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"trkn":if(u instanceof Uint8Array&&u.length>=6){let l=xe(u),f=l.getUint16(2,!1),p=l.getUint16(4,!1);f>0&&(this.metadataTags.trackNumber??=f),p>0&&(this.metadataTags.tracksTotal??=p)}break;case"disc":case"disk":if(u instanceof Uint8Array&&u.length>=6){let l=xe(u),f=l.getUint16(2,!1),p=l.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=a,!0}},_c=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,A=this.internalTrack.trackBacking.getType(),r=0;for(let n of e.tracks)if(n.trackBacking.getType()===A&&r++,n===this.internalTrack)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}isRelativeToUnixEpoch(){return!1}getDisposition(){return this.internalTrack.disposition}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.internalTrack;return e.durationInMediaTimescale<=0?null:(C(e.trackBacking),((await e.trackBacking.getFirstPacket({metadataOnly:!0}))?.timestamp??0)+e.durationInMediaTimescale/e.timescale)}async getLiveRefreshInterval(){return null}async getFirstPacket(e){let A=await this.fetchPacketForSampleIndex(0,e);return A||!this.internalTrack.demuxer.isFragmented?A:this.performFragmentedLookup(null,r=>r.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return Br(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,A){let r=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=Ql(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!ew(n)||!this.internalTrack.demuxer.isFragmented?i:this.performFragmentedLookup(null,s=>{let o=s.trackData.get(this.internalTrack.id);if(!o)return{sampleIndex:-1,correctSampleFound:!1};let c=ye(o.presentationTimestamps,r,l=>l.presentationTimestamp),g=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:g,correctSampleFound:u}},r,r,A)}async getNextPacket(e,A){let r=this.packetToSampleIndex.get(e);if(r!==void 0)return this.fetchPacketForSampleIndex(r+1,A);let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,a=>{if(a===n.fragment){let i=a.trackData.get(this.internalTrack.id);if(n.sampleIndex+1<i.samples.length)return{sampleIndex:n.sampleIndex+1,correctSampleFound:!0}}else if(a.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,A)}async getKeyPacket(e,A){let r=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=uC(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!ew(n)||!this.internalTrack.demuxer.isFragmented?i:this.performFragmentedLookup(null,s=>{let o=s.trackData.get(this.internalTrack.id);if(!o)return{sampleIndex:-1,correctSampleFound:!1};let c=vi(o.presentationTimestamps,l=>o.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=r),g=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:g,correctSampleFound:u}},r,r,A)}async getNextKeyPacket(e,A){let r=this.packetToSampleIndex.get(e);if(r!==void 0){let a=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=lC(a,r);return this.fetchPacketForSampleIndex(i,A)}let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,a=>{if(a===n.fragment){let s=a.trackData.get(this.internalTrack.id).samples.findIndex((o,c)=>o.isKeyFrame&&c>n.sampleIndex);if(s!==-1)return{sampleIndex:s,correctSampleFound:!0}}else{let i=a.trackData.get(this.internalTrack.id);if(i&&i.firstKeyFrameTimestamp!==null){let s=i.samples.findIndex(o=>o.isKeyFrame);return C(s!==-1),{sampleIndex:s,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,A)}async fetchPacketForSampleIndex(e,A){if(e===-1)return null;let r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=gC(r,e);if(!n)return null;let a;if(A.metadataOnly)a=dt;else{let c=this.internalTrack.demuxer.reader.requestSlice(n.sampleOffset,n.sampleSize);if(c instanceof Promise&&(c=await c),!c)return null;if(a=te(c,n.sampleSize),this.internalTrack.encryptionAuxInfo){C(this.internalTrack.encryptionInfo);let g=await rw(this.internalTrack.demuxer.reader,this.internalTrack.encryptionInfo,this.internalTrack.encryptionAuxInfo);e<g.length&&(a=await Aw(this.internalTrack,g[e],a,null))}}let i=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=n.duration/this.internalTrack.timescale,o=new Fe(a,n.isKeyFrame?"key":"delta",i,s,e,n.sampleSize);return this.packetToSampleIndex.set(o,e),o}async fetchPacketInFragment(e,A,r){if(A===-1)return null;let a=e.trackData.get(this.internalTrack.id).samples[A];C(a);let i;if(r.metadataOnly)i=dt;else{let g=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);if(g instanceof Promise&&(g=await g),!g)return null;i=te(g,a.byteSize),a.encryption&&(i=await Aw(this.internalTrack,a.encryption,i,e))}let s=(a.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=a.duration/this.internalTrack.timescale,c=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.moofOffset+A,a.byteSize);return this.packetToFragmentLocation.set(c,{fragment:e,sampleIndex:A}),c}async performFragmentedLookup(e,A,r,n,a){let i=this.internalTrack.demuxer,s=null,o=null,c=-1;if(e){let{sampleIndex:y,correctSampleFound:w}=A(e);if(w)return this.fetchPacketInFragment(e,y,a);y!==-1&&(o=e,c=y)}let g=ye(this.internalTrack.fragmentLookupTable,r,y=>y.timestamp),u=g!==-1?this.internalTrack.fragmentLookupTable[g]:null,l=ye(this.internalTrack.fragmentPositionCache,r,y=>y.startTimestamp),f=l!==-1?this.internalTrack.fragmentPositionCache[l]:null,p=Math.max(u?.moofOffset??0,f?.moofOffset??0)||null,h;for(e?p===null||e.moofOffset>=p?(h=e.moofOffset+e.moofSize,s=e):h=p:h=p??0;;){if(s){let b=s.trackData.get(this.internalTrack.id);if(b&&b.startTimestamp>n)break}let y=i.reader.requestSliceRange(h,GA,yr);if(y instanceof Promise&&(y=await y),!y)break;let w=h,D=Ir(y);if(!D)break;if(D.name==="moof"){s=await i.readFragment(w);let{sampleIndex:b,correctSampleFound:E}=A(s);if(E)return this.fetchPacketInFragment(s,b,a);b!==-1&&(o=s,c=b)}h=w+D.totalSize}if(u&&(!o||o.moofOffset<u.moofOffset)){let y=this.internalTrack.fragmentLookupTable[g-1];C(!y||y.timestamp<u.timestamp);let w=y?.timestamp??-1/0;return this.performFragmentedLookup(null,A,w,n,a)}return o?this.fetchPacketInFragment(o,c,a):null}},Mc=class extends _c{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"video"}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=A&&Ic(A.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=A&&Dc(A.data)}let e={codec:Ri(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0};return(this.internalTrack.info.width!==this.internalTrack.info.squarePixelWidth||this.internalTrack.info.height!==this.internalTrack.info.squarePixelHeight)&&(e.displayAspectWidth=this.internalTrack.info.squarePixelWidth,e.displayAspectHeight=this.internalTrack.info.squarePixelHeight),e})():null}},Rc=class extends _c{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getType(){return"audio"}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Qi(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Ql=(t,e)=>{if(t.presentationTimestamps){let A=ye(t.presentationTimestamps,e,r=>r.presentationTimestamp);return A===-1?-1:t.presentationTimestamps[A].sampleIndex}else{let A=ye(t.sampleTimingEntries,e,n=>n.startDecodeTimestamp);if(A===-1)return-1;let r=t.sampleTimingEntries[A];return r.startIndex+Math.min(Math.floor((e-r.startDecodeTimestamp)/r.delta),r.count-1)}},uC=(t,e)=>{if(!t.keySampleIndices)return Ql(t,e);if(t.presentationTimestamps){let A=ye(t.presentationTimestamps,e,r=>r.presentationTimestamp);if(A===-1)return-1;for(let r=A;r>=0;r--){let n=t.presentationTimestamps[r].sampleIndex;if(wr(t.keySampleIndices,n,i=>i)!==-1)return n}return-1}else{let A=Ql(t,e),r=ye(t.keySampleIndices,A,n=>n);return t.keySampleIndices[r]??-1}},gC=(t,e)=>{let A=ye(t.sampleTimingEntries,e,w=>w.startIndex),r=t.sampleTimingEntries[A];if(!r||r.startIndex+r.count<=e)return null;let a=r.startDecodeTimestamp+(e-r.startIndex)*r.delta,i=ye(t.sampleCompositionTimeOffsets,e,w=>w.startIndex),s=t.sampleCompositionTimeOffsets[i];s&&e-s.startIndex<s.count&&(a+=s.offset);let o=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],c=ye(t.sampleToChunk,e,w=>w.startSampleIndex),g=t.sampleToChunk[c];C(g);let u=g.startChunkIndex+Math.floor((e-g.startSampleIndex)/g.samplesPerChunk),l=t.chunkOffsets[u],f=g.startSampleIndex+(u-g.startChunkIndex)*g.samplesPerChunk,p=0,h=l;if(t.sampleSizes.length===1)h+=o*(e-f),p+=o*g.samplesPerChunk;else for(let w=f;w<f+g.samplesPerChunk;w++){let D=t.sampleSizes[w];w<e&&(h+=D),p+=D}let y=r.delta;if(t.presentationTimestamps){let w=t.presentationTimestampIndexMap[e];C(w!==void 0),w<t.presentationTimestamps.length-1&&(y=t.presentationTimestamps[w+1].presentationTimestamp-a)}return{presentationTimestamp:a,duration:y,sampleOffset:h,sampleSize:o,chunkOffset:l,chunkSize:p,isKeyFrame:t.keySampleIndices?wr(t.keySampleIndices,e,w=>w)!==-1:!0}},lC=(t,e)=>{if(!t.keySampleIndices)return e+1;let A=ye(t.keySampleIndices,e,r=>r);return t.keySampleIndices[A+1]??-1},Rl=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(let A of t.samples)A.presentationTimestamp+=e;for(let A of t.presentationTimestamps)A.presentationTimestamp+=e},dC=t=>{let[e,A]=t,r=Math.atan2(A,e);return Number.isFinite(r)?r*(180/Math.PI):0},ew=t=>t.sampleSizes.length===0,tw=t=>t.currentFragmentState?t.currentFragmentState.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null}:t.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null},rw=async(t,e,A)=>{if(A.resolved)return A.resolved;if(A.offset===null||A.sampleCount===0)throw new Error("Incomplete saiz/saio info; cannot resolve encryption data.");let r=0;if(A.defaultSampleInfoSize>0)r=A.defaultSampleInfoSize*A.sampleCount;else{C(A.sampleSizes);for(let s=0;s<A.sampleCount;s++)r+=A.sampleSizes[s]}let n=t.requestSlice(A.offset,r);if(n instanceof Promise&&(n=await n),!n)throw new Error("Failed to read auxiliary encryption info.");let a=e.defaultPerSampleIvSize;C(a!==null);let i=[];for(let s=0;s<A.sampleCount;s++){let o=A.defaultSampleInfoSize>0?A.defaultSampleInfoSize:A.sampleSizes[s],c=new Uint8Array(16);a>0?c.set(te(n,a),0):c.set(e.defaultConstantIv,0);let g=null;if(o>a){let u=At(n);g=[];for(let l=0;l<u;l++){let f=At(n),p=J(n);g.push({clearLen:f,protectedLen:p})}}i.push({iv:c,subsamples:g})}return A.resolved=i,i},Aw=async(t,e,A,r)=>{C(t.encryptionInfo);let n=t.encryptionInfo;C(n.defaultKid!==null);let a=n.defaultKid,i,s=t.demuxer.decryptionKeyCache.get(a);if(s)i=await s;else{if(!t.demuxer.input._formatOptions.isobmff?.resolveKeyId)throw new Error("Encrypted media samples encountered. To decrypt them, please provide a callback for InputOptions.formatOptions.isobmff.resolveKeyId.");let o=(async()=>{let c=t.demuxer.psshBoxes;if(r){c=[...c,...r.psshBoxes].filter(u=>u.keyIds===null||u.keyIds.includes(a));for(let u=0;u<c.length-1;u++)for(let l=u+1;l<c.length;l++)Sc(c[u],c[l])&&(c.splice(l,1),l--)}let g=await t.demuxer.input._formatOptions.isobmff.resolveKeyId({keyId:a,psshBoxes:c});if(!(typeof g=="string"&&g.length===32&&up.test(g)||g instanceof Uint8Array&&g.byteLength===16))throw new TypeError("resolveKeyId must return a 32-character hex string or a 16-byte Uint8Array containing the decryption key.");return g instanceof Uint8Array?g:gp(g)})();t.demuxer.decryptionKeyCache.set(a,o),i=await o}return n.scheme==="cenc"||n.scheme==="cens"?fC(i,n,e,A):mC(i,n,e,A)},fC=async(t,e,A,r)=>{let n=new Uint8Array(16);n.set(A.iv,0);let a=await crypto.subtle.importKey("raw",t,{name:"AES-CTR"},!1,["decrypt"]),i=async p=>{let h=await crypto.subtle.decrypt({name:"AES-CTR",counter:n,length:64},a,p);return new Uint8Array(h)};if(!A.subsamples)return i(r);C(e.defaultCryptByteBlock!==null&&e.defaultSkipByteBlock!==null);let s=nw(A.subsamples,e.defaultCryptByteBlock,e.defaultSkipByteBlock),o=0;for(let p of s)for(let h of p.perSubsample)o+=h.length;let c=new Uint8Array(o),g=0;for(let p of s)for(let h of p.perSubsample)c.set(r.subarray(h.offset,h.offset+h.length),g),g+=h.length;let u=await i(c),l=new Uint8Array(r),f=0;for(let p of s)for(let h of p.perSubsample)l.set(u.subarray(f,f+h.length),h.offset),f+=h.length;return l},mC=(t,e,A,r)=>{let n=new Rs;n.init({key:t,iv:A.iv});let a=e.defaultCryptByteBlock,i=e.defaultSkipByteBlock;if(C(a!==null&&i!==null),!A.subsamples){let g=new Uint8Array(r),u=Math.floor(r.length/16);for(let l=0;l<u;l++){let f=l*16;n.in.set(r.subarray(f,f+16)),n.decrypt(),g.set(n.out,f)}return g}if(a===0&&i===0)throw new Error("cbcs with subsamples requires pattern encryption.");let s=new Uint8Array(r),o=nw(A.subsamples,a,i),c=new DataView(A.iv.buffer,A.iv.byteOffset,16);for(let g of o){n.iv[0]=c.getUint32(0,!1),n.iv[1]=c.getUint32(4,!1),n.iv[2]=c.getUint32(8,!1),n.iv[3]=c.getUint32(12,!1);for(let u of g.perSubsample){let l=u.length/16;for(let f=0;f<l;f++){let p=u.offset+f*16;n.in.set(r.subarray(p,p+16)),n.decrypt(),s.set(n.out,p)}}}return s},nw=(t,e,A)=>{let r=[],n=e!==0||A!==0,a=0;for(let i of t){a+=i.clearLen;let s=[];if(!n)i.protectedLen>0&&s.push({offset:a,length:i.protectedLen}),a+=i.protectedLen;else{let o=i.protectedLen,c=a;for(;o>0&&!(o<16*e);){let g=16*e;s.push({offset:c,length:g}),c+=g,o-=g;let u=Math.min(16*A,o);c+=u,o-=u}a+=i.protectedLen}r.push({perSubsample:s})}return r};var j;(function(t){t[t.EBML=440786851]="EBML",t[t.EBMLVersion=17030]="EBMLVersion",t[t.EBMLReadVersion=17143]="EBMLReadVersion",t[t.EBMLMaxIDLength=17138]="EBMLMaxIDLength",t[t.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",t[t.DocType=17026]="DocType",t[t.DocTypeVersion=17031]="DocTypeVersion",t[t.DocTypeReadVersion=17029]="DocTypeReadVersion",t[t.Void=236]="Void",t[t.Segment=408125543]="Segment",t[t.SeekHead=290298740]="SeekHead",t[t.Seek=19899]="Seek",t[t.SeekID=21419]="SeekID",t[t.SeekPosition=21420]="SeekPosition",t[t.Duration=17545]="Duration",t[t.Info=357149030]="Info",t[t.TimestampScale=2807729]="TimestampScale",t[t.MuxingApp=19840]="MuxingApp",t[t.WritingApp=22337]="WritingApp",t[t.Tracks=374648427]="Tracks",t[t.TrackEntry=174]="TrackEntry",t[t.TrackNumber=215]="TrackNumber",t[t.TrackUID=29637]="TrackUID",t[t.TrackType=131]="TrackType",t[t.FlagEnabled=185]="FlagEnabled",t[t.FlagDefault=136]="FlagDefault",t[t.FlagForced=21930]="FlagForced",t[t.FlagOriginal=21934]="FlagOriginal",t[t.FlagHearingImpaired=21931]="FlagHearingImpaired",t[t.FlagVisualImpaired=21932]="FlagVisualImpaired",t[t.FlagCommentary=21935]="FlagCommentary",t[t.FlagLacing=156]="FlagLacing",t[t.Name=21358]="Name",t[t.Language=2274716]="Language",t[t.LanguageBCP47=2274717]="LanguageBCP47",t[t.CodecID=134]="CodecID",t[t.CodecPrivate=25506]="CodecPrivate",t[t.CodecDelay=22186]="CodecDelay",t[t.SeekPreRoll=22203]="SeekPreRoll",t[t.DefaultDuration=2352003]="DefaultDuration",t[t.Video=224]="Video",t[t.PixelWidth=176]="PixelWidth",t[t.PixelHeight=186]="PixelHeight",t[t.DisplayWidth=21680]="DisplayWidth",t[t.DisplayHeight=21690]="DisplayHeight",t[t.DisplayUnit=21682]="DisplayUnit",t[t.AlphaMode=21440]="AlphaMode",t[t.Audio=225]="Audio",t[t.SamplingFrequency=181]="SamplingFrequency",t[t.Channels=159]="Channels",t[t.BitDepth=25188]="BitDepth",t[t.SimpleBlock=163]="SimpleBlock",t[t.BlockGroup=160]="BlockGroup",t[t.Block=161]="Block",t[t.BlockAdditions=30113]="BlockAdditions",t[t.BlockMore=166]="BlockMore",t[t.BlockAdditional=165]="BlockAdditional",t[t.BlockAddID=238]="BlockAddID",t[t.BlockDuration=155]="BlockDuration",t[t.ReferenceBlock=251]="ReferenceBlock",t[t.Cluster=524531317]="Cluster",t[t.Timestamp=231]="Timestamp",t[t.Cues=475249515]="Cues",t[t.CuePoint=187]="CuePoint",t[t.CueTime=179]="CueTime",t[t.CueTrackPositions=183]="CueTrackPositions",t[t.CueTrack=247]="CueTrack",t[t.CueClusterPosition=241]="CueClusterPosition",t[t.Colour=21936]="Colour",t[t.MatrixCoefficients=21937]="MatrixCoefficients",t[t.TransferCharacteristics=21946]="TransferCharacteristics",t[t.Primaries=21947]="Primaries",t[t.Range=21945]="Range",t[t.Projection=30320]="Projection",t[t.ProjectionType=30321]="ProjectionType",t[t.ProjectionPoseRoll=30325]="ProjectionPoseRoll",t[t.Attachments=423732329]="Attachments",t[t.AttachedFile=24999]="AttachedFile",t[t.FileDescription=18046]="FileDescription",t[t.FileName=18030]="FileName",t[t.FileMediaType=18016]="FileMediaType",t[t.FileData=18012]="FileData",t[t.FileUID=18094]="FileUID",t[t.Chapters=272869232]="Chapters",t[t.Tags=307544935]="Tags",t[t.Tag=29555]="Tag",t[t.Targets=25536]="Targets",t[t.TargetTypeValue=26826]="TargetTypeValue",t[t.TargetType=25546]="TargetType",t[t.TagTrackUID=25541]="TagTrackUID",t[t.TagEditionUID=25545]="TagEditionUID",t[t.TagChapterUID=25540]="TagChapterUID",t[t.TagAttachmentUID=25542]="TagAttachmentUID",t[t.SimpleTag=26568]="SimpleTag",t[t.TagName=17827]="TagName",t[t.TagLanguage=17530]="TagLanguage",t[t.TagString=17543]="TagString",t[t.TagBinary=17541]="TagBinary",t[t.ContentEncodings=28032]="ContentEncodings",t[t.ContentEncoding=25152]="ContentEncoding",t[t.ContentEncodingOrder=20529]="ContentEncodingOrder",t[t.ContentEncodingScope=20530]="ContentEncodingScope",t[t.ContentCompression=20532]="ContentCompression",t[t.ContentCompAlgo=16980]="ContentCompAlgo",t[t.ContentCompSettings=16981]="ContentCompSettings",t[t.ContentEncryption=20533]="ContentEncryption"})(j||(j={}));var hC=[j.EBML,j.Segment],Vi=[j.SeekHead,j.Info,j.Cluster,j.Tracks,j.Cues,j.Attachments,j.Chapters,j.Tags],Fs=[...hC,...Vi];var Fl=8,qt=2,vA=2*Fl,zl=t=>{if(t.remainingLength<1)return null;let e=ne(t);if(t.skip(-1),e===0)return null;let A=1,r=128;for(;!(e&r);)A++,r>>=1;return t.remainingLength<A?null:A},Ki=t=>{if(t.remainingLength<1)return null;let e=ne(t);if(e===0)return null;let A=1,r=128;for(;!(e&r);)A++,r>>=1;if(t.remainingLength<A-1)return null;let n=e&r-1;for(let a=1;a<A;a++)n*=256,n+=ne(t);return n},be=(t,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let A=0;for(let r=0;r<e;r++)A*=256,A+=ne(t);return A},aw=(t,e)=>{if(e<1)throw new Error("Bad unsigned int size "+e);let A=0n;for(let r=0;r<e;r++)A<<=8n,A+=BigInt(ne(t));return A};var Fc=t=>{let e=zl(t);return e===null||t.remainingLength<e?null:be(t,e)},Nl=t=>{if(t.remainingLength<1)return null;if(ne(t)===255)return;t.skip(-1);let A=Ki(t);if(A===null)return null;if(A!==72057594037927940)return A},OA=t=>{C(t.remainingLength>=qt);let e=Fc(t);if(e===null)return null;let A=Nl(t);return A===null?null:{id:e,size:A}},Xr=(t,e)=>{let A=te(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return String.fromCharCode(...A.subarray(0,r))},Wi=(t,e)=>{let A=te(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return mt.decode(A.subarray(0,r))},zc=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?sw(t):Qc(t)},Nc=async(t,e,A,r)=>{let n=new Set(A),a=e;for(;r===null||a<r;){let i=t.requestSliceRange(a,qt,vA);if(i instanceof Promise&&(i=await i),!i)break;let s=OA(i);if(!s)break;if(n.has(s.id))return{pos:a,found:!0};br(s.size),a=i.filePos+s.size}return{pos:r!==null&&r>a?r:a,found:!1}},Hl=async(t,e,A,r)=>{let a=new Set(A),i=e;for(;i<r;){let s=t.requestSliceRange(i,0,Math.min(65536,r-i));if(s instanceof Promise&&(s=await s),!s||s.length<Fl)break;for(let o=0;o<s.length-Fl;o++){s.filePos=i;let c=Fc(s);if(c!==null&&a.has(c))return i;i++}}return null},Xt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC",ac3:"A_AC3",eac3:"A_EAC3","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function br(t){if(t===void 0)throw new Error("Undefined element size is used in a place where it is not supported.")}var ow=t=>{let A=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isWebM?"webm":"x-matroska");if(t.codecStrings.length>0){let r=[...new Set(t.codecStrings.filter(Boolean))];A+=`; codecs="${r.join(", ")}"`}return A};var Er;(function(t){t[t.None=0]="None",t[t.Xiph=1]="Xiph",t[t.FixedSize=2]="FixedSize",t[t.Ebml=3]="Ebml"})(Er||(Er={}));var Hc;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(Hc||(Hc={}));var zs;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(zs||(zs={}));var Ul=[{id:j.SeekHead,flag:"seekHeadSeen"},{id:j.Info,flag:"infoSeen"},{id:j.Tracks,flag:"tracksSeen"},{id:j.Cues,flag:"cuesSeen"}],cw=10*2**20,Uc=class extends ht{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentBlockAdditional=null,this.currentCueTime=null,this.currentDecodingInstruction=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async getTrackBackings(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(A=>A.trackBacking))}async getMimeType(){await this.readMetadata();let e=await this.getTrackBackings(),A=await Promise.all(e.map(r=>r.getDecoderConfig().then(n=>n?.codec??null)));return ow({isWebM:this.isWebM,hasVideo:this.segments.some(r=>r.tracks.some(n=>n.info?.type==="video")),hasAudio:this.segments.some(r=>r.tracks.some(n=>n.info?.type==="audio")),codecStrings:A.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let A of this.segments)A.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(A),A.metadataTagsCollected=!0);let e={};for(let A of this.segments)e={...e,...A.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let A=this.reader.requestSliceRange(e,qt,vA);if(A instanceof Promise&&(A=await A),!A)break;let r=OA(A);if(!r)break;let n=r.id,a=r.size,i=A.filePos;if(n===j.EBML){br(a);let s=this.reader.requestSlice(i,a);if(s instanceof Promise&&(s=await s),!s)break;this.readContiguousElements(s)}else if(n===j.Segment){if(await this.readSegment(i,a),a===void 0||this.reader.fileSize===null)break}else if(n===j.Cluster){if(this.reader.fileSize===null)break;a===void 0&&(a=(await Nc(this.reader,i,Fs,this.reader.fileSize)).pos-i);let s=_e(this.segments);s&&(s.elementEndPos=i+a)}br(a),e=i+a}})()}async readSegment(e,A){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:A===void 0?null:e+A,clusterSeekStartPos:e,lastReadCluster:null,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let r=e;for(;this.currentSegment.elementEndPos===null||r<this.currentSegment.elementEndPos;){let s=this.reader.requestSliceRange(r,qt,vA);if(s instanceof Promise&&(s=await s),!s)break;let o=r,c=OA(s);if(!c||!Vi.includes(c.id)&&c.id!==j.Void){let p=await Hl(this.reader,o,Vi,Math.min(this.currentSegment.elementEndPos??1/0,o+cw));if(p){r=p;continue}else break}let{id:g,size:u}=c,l=s.filePos,f=Ul.findIndex(p=>p.id===g);if(f!==-1){let p=Ul[f].flag;this.currentSegment[p]=!0,br(u);let h=this.reader.requestSlice(l,u);h instanceof Promise&&(h=await h),h&&this.readContiguousElements(h)}else if(g===j.Tags||g===j.Attachments){g===j.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,br(u);let p=this.reader.requestSlice(l,u);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(g===j.Cluster){this.currentSegment.clusterSeekStartPos=o;break}if(u===void 0)break;r=l+u}if(this.currentSegment.seekEntries.sort((s,o)=>s.segmentPosition-o.segmentPosition),this.reader.fileSize!==null)for(let s of this.currentSegment.seekEntries){let o=Ul.find(p=>p.id===s.id);if(!o||this.currentSegment[o.flag])continue;let c=this.reader.requestSliceRange(e+s.segmentPosition,qt,vA);if(c instanceof Promise&&(c=await c),!c)continue;let g=OA(c);if(!g)continue;let{id:u,size:l}=g;if(u!==o.id)continue;br(l),this.currentSegment[o.flag]=!0;let f=this.reader.requestSlice(c.filePos,l);f instanceof Promise&&(f=await f),f&&this.readContiguousElements(f)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6);for(let s of this.currentSegment.tracks)s.defaultDurationNs!==null&&(s.defaultDuration=this.currentSegment.timestampFactor*s.defaultDurationNs/1e9);let n=new Map(this.currentSegment.tracks.map(s=>[s.id,s]));for(let s of this.currentSegment.cuePoints){let o=n.get(s.trackId);o&&o.cuePoints.push(s)}for(let s of this.currentSegment.tracks){s.cuePoints.sort((o,c)=>o.time-c.time);for(let o=0;o<s.cuePoints.length-1;o++){let c=s.cuePoints[o],g=s.cuePoints[o+1];c.time===g.time&&(s.cuePoints.splice(o+1,1),o--)}}let a=null,i=-1/0;for(let s of this.currentSegment.tracks)s.cuePoints.length>i&&(i=s.cuePoints.length,a=s);for(let s of this.currentSegment.tracks)s.cuePoints.length===0&&(s.cuePoints=a.cuePoints);this.currentSegment=null}async readCluster(e,A){if(A.lastReadCluster?.elementStartPos===e)return A.lastReadCluster;let r=this.reader.requestSliceRange(e,qt,vA);r instanceof Promise&&(r=await r),C(r);let n=e,a=OA(r);C(a);let i=a.id;C(i===j.Cluster);let s=a.size,o=r.filePos;s===void 0&&(s=(await Nc(this.reader,o,Fs,A.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,s);c instanceof Promise&&(c=await c);let g={segment:A,elementStartPos:n,elementEndPos:o+s,dataStartPos:o,timestamp:-1,trackData:new Map};if(this.currentCluster=g,c){let u=this.readContiguousElements(c,Fs);g.elementEndPos=u}for(let[,u]of g.trackData){let l=u.track;C(u.blocks.length>0);let f=!1;for(let w=0;w<u.blocks.length;w++){let D=u.blocks[w];D.timestamp+=g.timestamp,f||=D.lacing!==Er.None}u.presentationTimestamps=u.blocks.map((w,D)=>({timestamp:w.timestamp,blockIndex:D})).sort((w,D)=>w.timestamp-D.timestamp);for(let w=0;w<u.presentationTimestamps.length;w++){let D=u.presentationTimestamps[w],b=u.blocks[D.blockIndex];if(u.firstKeyFrameTimestamp===null&&b.isKeyFrame&&(u.firstKeyFrameTimestamp=b.timestamp),w<u.presentationTimestamps.length-1){let E=u.presentationTimestamps[w+1];b.duration=E.timestamp-b.timestamp}else b.duration===0&&l.defaultDuration!=null&&b.lacing===Er.None&&(b.duration=l.defaultDuration)}f&&(this.expandLacedBlocks(u.blocks,l),u.presentationTimestamps=u.blocks.map((w,D)=>({timestamp:w.timestamp,blockIndex:D})).sort((w,D)=>w.timestamp-D.timestamp));let p=u.blocks[u.presentationTimestamps[0].blockIndex],h=u.blocks[_e(u.presentationTimestamps).blockIndex];u.startTimestamp=p.timestamp,u.endTimestamp=h.timestamp+h.duration;let y=ye(l.clusterPositionCache,u.startTimestamp,w=>w.startTimestamp);(y===-1||l.clusterPositionCache[y].elementStartPos!==n)&&l.clusterPositionCache.splice(y+1,0,{elementStartPos:g.elementStartPos,startTimestamp:u.startTimestamp})}return A.lastReadCluster=g,g}getTrackDataInCluster(e,A){let r=e.trackData.get(A);if(!r){let n=e.segment.tracks.find(a=>a.id===A);if(!n)return null;r={track:n,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(A,r)}return r}expandLacedBlocks(e,A){for(let r=0;r<e.length;r++){let n=e[r];if(n.lacing===Er.None)continue;n.decoded||(n.data=this.decodeBlockData(A,n.data),n.decoded=!0);let a=Mt.tempFromBytes(n.data),i=[],s=ne(a)+1;switch(n.lacing){case Er.Xiph:{let c=0;for(let g=0;g<s-1;g++){let u=0;for(;a.bufferPos<a.length;){let l=ne(a);if(u+=l,l<255){i.push(u),c+=u;break}}}i.push(a.length-(a.bufferPos+c))}break;case Er.FixedSize:{let c=a.length-1,g=Math.floor(c/s);for(let u=0;u<s;u++)i.push(g)}break;case Er.Ebml:{let c=Ki(a);C(c!==null);let g=c;i.push(g);let u=g;for(let l=1;l<s-1;l++){let f=a.bufferPos,p=Ki(a);C(p!==null);let h=p,w=(1<<(a.bufferPos-f)*7-1)-1,D=h-w;g+=D,i.push(g),u+=g}i.push(a.length-(a.bufferPos+u))}break;default:C(!1)}C(i.length===s),e.splice(r,1);let o=n.duration||s*(A.defaultDuration??0);for(let c=0;c<s;c++){let g=i[c],u=te(a,g),l=n.timestamp+o*c/s,f=o/s;e.splice(r+c,0,{timestamp:l,duration:f,isKeyFrame:n.isKeyFrame,data:u,lacing:Er.None,decoded:!0,mainAdditional:n.mainAdditional})}r+=s,r--}}async loadSegmentMetadata(e){for(let A of e.seekEntries){if(!(A.id===j.Tags&&!e.tagsSeen)){if(!(A.id===j.Attachments&&!e.attachmentsSeen))continue}let r=this.reader.requestSliceRange(e.dataStartPos+A.segmentPosition,qt,vA);if(r instanceof Promise&&(r=await r),!r)continue;let n=OA(r);if(!n||n.id!==A.id)continue;let{size:a}=n;br(a),C(!this.currentSegment),this.currentSegment=e;let i=this.reader.requestSlice(r.filePos,a);i instanceof Promise&&(i=await i),i&&this.readContiguousElements(i),this.currentSegment=null,A.id===j.Tags?e.tagsSeen=!0:A.id===j.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,A){for(;e.remainingLength>=qt;){let r=e.filePos;if(!this.traverseElement(e,A))return r}return e.filePos}traverseElement(e,A){let r=OA(e);if(!r||A&&A.includes(r.id))return!1;let{id:n,size:a}=r,i=e.filePos;switch(br(a),n){case j.DocType:this.isWebM=Xr(e,a)==="webm";break;case j.Seek:{if(!this.currentSegment)break;let s={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(s),this.readContiguousElements(e.slice(i,a)),(s.id===-1||s.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case j.SeekID:{let s=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!s)break;s.id=be(e,a)}break;case j.SeekPosition:{let s=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!s)break;s.segmentPosition=be(e,a)}break;case j.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=be(e,a),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case j.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=zc(e,a)}break;case j.TrackEntry:{if(!this.currentSegment||(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...Ct,primary:!1},trackBacking:null,codecId:null,codecPrivate:null,defaultDuration:null,defaultDurationNs:null,name:null,languageCode:"eng",hasLanguageBcp47:!1,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(i,a)),!this.currentTrack))break;if(this.currentTrack.decodingInstructions.some(s=>s.data?.type!=="decompress"||s.scope!==Hc.Block||s.data.algorithm!==zs.HeaderStripping)&&(console.warn(`Track #${this.currentTrack.id} has an unsupported content encoding; dropping.`),this.currentTrack=null),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let s=this.currentTrack.codecId.indexOf("/"),o=s===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,s);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){if(this.currentTrack.info.squarePixelWidth=this.currentTrack.info.width,this.currentTrack.info.squarePixelHeight=this.currentTrack.info.height,this.currentTrack.info.displayWidth!==null&&this.currentTrack.info.displayHeight!==null){let g=this.currentTrack.info.displayWidth*this.currentTrack.info.height,u=this.currentTrack.info.displayHeight*this.currentTrack.info.width;g>0&&u>0&&(g>u?this.currentTrack.info.squarePixelWidth=Math.round(this.currentTrack.info.width*g/u):this.currentTrack.info.squarePixelHeight=Math.round(this.currentTrack.info.height*u/g))}this.currentTrack.codecId===Xt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Xt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.vp8?this.currentTrack.info.codec="vp8":o===Xt.vp9?this.currentTrack.info.codec="vp9":o===Xt.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack;this.currentTrack.trackBacking=new ql(c),this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"){o===Xt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2"),objectType:null},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Xt.mp3?this.currentTrack.info.codec="mp3":o===Xt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=Yn):o===Xt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.ac3?(this.currentTrack.info.codec="ac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.eac3?(this.currentTrack.info.codec="eac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let c=this.currentTrack;this.currentTrack.trackBacking=new Ll(c),this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case j.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=be(e,a)}break;case j.TrackType:{if(!this.currentTrack)break;let s=be(e,a);s===1?this.currentTrack.info={type:"video",width:-1,height:-1,displayWidth:null,displayHeight:null,displayUnit:null,squarePixelWidth:-1,squarePixelHeight:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:s===2&&(this.currentTrack.info={type:"audio",numberOfChannels:1,sampleRate:8e3,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case j.FlagEnabled:{if(!this.currentTrack)break;be(e,a)||(this.currentTrack=null)}break;case j.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.disposition.default=!!be(e,a)}break;case j.FlagForced:{if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!be(e,a)}break;case j.FlagOriginal:{if(!this.currentTrack)break;this.currentTrack.disposition.original=!!be(e,a)}break;case j.FlagHearingImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!be(e,a)}break;case j.FlagVisualImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!be(e,a)}break;case j.FlagCommentary:{if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!be(e,a)}break;case j.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=Xr(e,a)}break;case j.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=te(e,a)}break;case j.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDurationNs=be(e,a)}break;case j.Name:{if(!this.currentTrack)break;this.currentTrack.name=Wi(e,a)}break;case j.Language:{if(!this.currentTrack||this.currentTrack.hasLanguageBcp47)break;this.currentTrack.languageCode=Xr(e,a),Oi(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Xe)}break;case j.LanguageBCP47:{if(!this.currentTrack)break;let o=Xr(e,a).split("-")[0];o?this.currentTrack.languageCode=o:this.currentTrack.languageCode=Xe,this.currentTrack.hasLanguageBcp47=!0}break;case j.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(i,a))}break;case j.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=be(e,a)}break;case j.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=be(e,a)}break;case j.DisplayWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayWidth=be(e,a)}break;case j.DisplayHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayHeight=be(e,a)}break;case j.DisplayUnit:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayUnit=be(e,a)}break;case j.AlphaMode:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=be(e,a)===1}break;case j.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(i,a))}break;case j.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=En[s]??null;this.currentTrack.info.colorSpace.matrix=o}break;case j.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=be(e,a)===2}break;case j.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=bn[s]??null;this.currentTrack.info.colorSpace.transfer=o}break;case j.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=Cn[s]??null;this.currentTrack.info.colorSpace.primaries=o}break;case j.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(i,a))}break;case j.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-zc(e,a);try{this.currentTrack.info.rotation=Yi(o)}catch{}}break;case j.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(i,a))}break;case j.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=zc(e,a)}break;case j.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=be(e,a)}break;case j.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=be(e,a)}break;case j.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(i,a)),this.currentCueTime=null}break;case j.CueTime:this.currentCueTime=be(e,a);break;case j.CueTrackPositions:{if(this.currentCueTime===null)break;C(this.currentSegment);let s={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(s),this.readContiguousElements(e.slice(i,a)),(s.trackId===-1||s.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case j.CueTrack:{let s=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!s)break;s.trackId=be(e,a)}break;case j.CueClusterPosition:{let s=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!s)break;C(this.currentSegment),s.clusterPosition=this.currentSegment.dataStartPos+be(e,a)}break;case j.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=be(e,a)}break;case j.SimpleBlock:{if(!this.currentCluster)break;let s=Ki(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Qs(e),g=ne(e),u=g>>1&3,l=!!(g&128);o.track.info?.type==="audio"&&o.track.info.codec&&(l=!0);let f=te(e,a-(e.filePos-i)),p=o.track.decodingInstructions.length>0;o.blocks.push({timestamp:c,duration:0,isKeyFrame:l,data:f,lacing:u,decoded:!p,mainAdditional:null})}break;case j.BlockGroup:{if(!this.currentCluster)break;this.readContiguousElements(e.slice(i,a)),this.currentBlock=null}break;case j.Block:{if(!this.currentCluster)break;let s=Ki(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Qs(e),u=ne(e)>>1&3,l=te(e,a-(e.filePos-i)),f=o.track.decodingInstructions.length>0;this.currentBlock={timestamp:c,duration:0,isKeyFrame:!0,data:l,lacing:u,decoded:!f,mainAdditional:null},o.blocks.push(this.currentBlock)}break;case j.BlockAdditions:this.readContiguousElements(e.slice(i,a));break;case j.BlockMore:{if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(i,a)),this.currentBlockAdditional.data&&this.currentBlockAdditional.addId===1&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null}break;case j.BlockAdditional:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=te(e,a)}break;case j.BlockAddID:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=be(e,a)}break;case j.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=be(e,a)}break;case j.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1}break;case j.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(i,a));break;case j.Targets:this.readContiguousElements(e.slice(i,a));break;case j.TargetTypeValue:be(e,a)!==50&&(this.currentTagTargetIsMovie=!1);break;case j.TagTrackUID:case j.TagEditionUID:case j.TagChapterUID:case j.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case j.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(i,a))}break;case j.TagName:this.currentSimpleTagName=Wi(e,a);break;case j.TagString:{if(!this.currentSimpleTagName)break;let s=Wi(e,a);this.processTagValue(this.currentSimpleTagName,s)}break;case j.TagBinary:{if(!this.currentSimpleTagName)break;let s=te(e,a);this.processTagValue(this.currentSimpleTagName,s)}break;case j.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(i,a));let s=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(s.raw??={},s.raw[this.currentAttachedFile.fileUid.toString()]=new Gs(this.currentAttachedFile.fileData,this.currentAttachedFile.fileMediaType??void 0,this.currentAttachedFile.fileName??void 0,this.currentAttachedFile.fileDescription??void 0)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let o=this.currentAttachedFile.fileName,c="unknown";if(o){let g=o.toLowerCase();g.startsWith("cover.")?c="coverFront":g.startsWith("back.")&&(c="coverBack")}s.images??=[],s.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:c,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case j.FileUID:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=aw(e,a)}break;case j.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=Wi(e,a)}break;case j.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=Xr(e,a)}break;case j.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=te(e,a)}break;case j.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=Wi(e,a)}break;case j.ContentEncodings:{if(!this.currentTrack)break;this.readContiguousElements(e.slice(i,a)),this.currentTrack.decodingInstructions.sort((s,o)=>o.order-s.order)}break;case j.ContentEncoding:this.currentDecodingInstruction={order:0,scope:Hc.Block,data:null},this.readContiguousElements(e.slice(i,a)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case j.ContentEncodingOrder:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=be(e,a)}break;case j.ContentEncodingScope:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=be(e,a)}break;case j.ContentCompression:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:zs.Zlib,settings:null},this.readContiguousElements(e.slice(i,a))}break;case j.ContentCompAlgo:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=be(e,a)}break;case j.ContentCompSettings:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=te(e,a)}break;case j.ContentEncryption:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}break}return e.filePos=i+a,!0}decodeBlockData(e,A){C(e.decodingInstructions.length>0);let r=A;for(let n of e.decodingInstructions)switch(C(n.data),n.data.type){case"decompress":switch(n.data.algorithm){case zs.HeaderStripping:if(n.data.settings&&n.data.settings.length>0){let a=n.data.settings,i=new Uint8Array(a.length+r.length);i.set(a,0),i.set(r,a.length),r=i}break;default:}break;default:}return r}processTagValue(e,A){if(!this.currentSegment?.metadataTags)return;let r=this.currentSegment.metadataTags;if(r.raw??={},r.raw[e]??=A,typeof A=="string")switch(e.toLowerCase()){case"title":r.title??=A;break;case"description":r.description??=A;break;case"artist":r.artist??=A;break;case"album":r.album??=A;break;case"album_artist":r.albumArtist??=A;break;case"genre":r.genre??=A;break;case"comment":r.comment??=A;break;case"lyrics":r.lyrics??=A;break;case"date":{let n=new Date(A);Number.isNaN(n.getTime())||(r.date??=n)}break;case"track_number":case"part_number":{let n=A.split("/"),a=Number.parseInt(n[0],10),i=n[1]&&Number.parseInt(n[1],10);Number.isInteger(a)&&a>0&&(r.trackNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.tracksTotal??=i)}break;case"disc_number":case"disc":{let n=A.split("/"),a=Number.parseInt(n[0],10),i=n[1]&&Number.parseInt(n[1],10);Number.isInteger(a)&&a>0&&(r.discNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.discsTotal??=i)}break}}},qc=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,A=this.internalTrack.trackBacking.getType(),r=0;for(let n of e.segments)for(let a of n.tracks)if(a.trackBacking.getType()===A&&r++,a===this.internalTrack)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.segment.timestampFactor}isRelativeToUnixEpoch(){return!1}getDisposition(){return this.internalTrack.disposition}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.internalTrack.segment;if(e.duration<=0)return null;let A=e.duration/e.timestampFactor,r=await this.getFirstPacket({metadataOnly:!0});return A+=r?.timestamp??0,A}async getLiveRefreshInterval(){return null}async getFirstPacket(e){return this.performClusterLookup(null,A=>A.trackData.get(this.internalTrack.id)?{blockIndex:0,correctBlockFound:!0}:{blockIndex:-1,correctBlockFound:!1},-1/0,1/0,e)}intoTimescale(e){return Br(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,A){let r=this.intoTimescale(e);return this.performClusterLookup(null,n=>{let a=n.trackData.get(this.internalTrack.id);if(!a)return{blockIndex:-1,correctBlockFound:!1};let i=ye(a.presentationTimestamps,r,c=>c.timestamp),s=i!==-1?a.presentationTimestamps[i].blockIndex:-1,o=i!==-1&&r<a.endTimestamp;return{blockIndex:s,correctBlockFound:o}},r,r,A)}async getNextPacket(e,A){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(r.cluster,n=>{if(n===r.cluster){let a=n.trackData.get(this.internalTrack.id);if(r.blockIndex+1<a.blocks.length)return{blockIndex:r.blockIndex+1,correctBlockFound:!0}}else if(n.trackData.get(this.internalTrack.id))return{blockIndex:0,correctBlockFound:!0};return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,A)}async getKeyPacket(e,A){let r=this.intoTimescale(e);return this.performClusterLookup(null,n=>{let a=n.trackData.get(this.internalTrack.id);if(!a)return{blockIndex:-1,correctBlockFound:!1};let i=vi(a.presentationTimestamps,c=>a.blocks[c.blockIndex].isKeyFrame&&c.timestamp<=r),s=i!==-1?a.presentationTimestamps[i].blockIndex:-1,o=i!==-1&&r<a.endTimestamp;return{blockIndex:s,correctBlockFound:o}},r,r,A)}async getNextKeyPacket(e,A){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(r.cluster,n=>{if(n===r.cluster){let i=n.trackData.get(this.internalTrack.id).blocks.findIndex((s,o)=>s.isKeyFrame&&o>r.blockIndex);if(i!==-1)return{blockIndex:i,correctBlockFound:!0}}else{let a=n.trackData.get(this.internalTrack.id);if(a&&a.firstKeyFrameTimestamp!==null){let i=a.blocks.findIndex(s=>s.isKeyFrame);return C(i!==-1),{blockIndex:i,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,A)}async fetchPacketInCluster(e,A,r){if(A===-1)return null;let a=e.trackData.get(this.internalTrack.id).blocks[A];C(a),a.decoded||(a.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,a.data),a.decoded=!0);let i=r.metadataOnly?dt:a.data,s=a.timestamp/this.internalTrack.segment.timestampFactor,o=a.duration/this.internalTrack.segment.timestampFactor,c={};a.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(c.alpha=r.metadataOnly?dt:a.mainAdditional,c.alphaByteLength=a.mainAdditional.byteLength);let g=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.dataStartPos+A,a.data.byteLength,c);return this.packetToClusterLocation.set(g,{cluster:e,blockIndex:A}),g}async performClusterLookup(e,A,r,n,a){let{demuxer:i,segment:s}=this.internalTrack,o=null,c=null,g=-1;if(e){let{blockIndex:w,correctBlockFound:D}=A(e);if(D)return this.fetchPacketInCluster(e,w,a);w!==-1&&(c=e,g=w)}let u=ye(this.internalTrack.cuePoints,r,w=>w.time),l=u!==-1?this.internalTrack.cuePoints[u]:null,f=ye(this.internalTrack.clusterPositionCache,r,w=>w.startTimestamp),p=f!==-1?this.internalTrack.clusterPositionCache[f]:null,h=Math.max(l?.clusterPosition??0,p?.elementStartPos??0)||null,y;for(e?h===null||e.elementStartPos>=h?(y=e.elementEndPos,o=e):y=h:y=h??s.clusterSeekStartPos;s.elementEndPos===null||y<=s.elementEndPos-qt;){if(o){let R=o.trackData.get(this.internalTrack.id);if(R&&R.startTimestamp>n)break}let w=i.reader.requestSliceRange(y,qt,vA);if(w instanceof Promise&&(w=await w),!w)break;let D=y,b=OA(w);if(!b||!Vi.includes(b.id)&&b.id!==j.Void){let R=await Hl(i.reader,D,Vi,Math.min(s.elementEndPos??1/0,D+cw));if(R){y=R;continue}else break}let E=b.id,x=b.size,S=w.filePos;if(E===j.Cluster){o=await i.readCluster(D,s),x=o.elementEndPos-S;let{blockIndex:R,correctBlockFound:M}=A(o);if(M)return this.fetchPacketInCluster(o,R,a);R!==-1&&(c=o,g=R)}x===void 0&&(C(E!==j.Cluster),x=(await Nc(i.reader,S,Fs,s.elementEndPos)).pos-S);let k=S+x;if(s.elementEndPos===null){let R=i.reader.requestSliceRange(k,qt,vA);if(R instanceof Promise&&(R=await R),!R)break;if(Fc(R)===j.Segment){s.elementEndPos=k;break}}y=k}if(l&&(!c||c.elementStartPos<l.clusterPosition)){let w=this.internalTrack.cuePoints[u-1];C(!w||w.time<l.time);let D=w?.time??-1/0;return this.performClusterLookup(null,A,D,n,a)}return c?this.fetchPacketInCluster(c,g,a):null}},ql=class extends qc{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"video"}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return this.internalTrack.info.alphaMode}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({}));let r={codec:Ri({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcType:1,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Ni(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Hi(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ic(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Dc(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0};return(this.internalTrack.info.width!==this.internalTrack.info.squarePixelWidth||this.internalTrack.info.height!==this.internalTrack.info.squarePixelHeight)&&(r.displayAspectWidth=this.internalTrack.info.squarePixelWidth,r.displayAspectHeight=this.internalTrack.info.squarePixelHeight),r})():null}},Ll=class extends qc{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getType(){return"audio"}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Qi({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}};var Ns=async(t,e,A,r=null)=>{let a=e;for(;A===null||a<A;){let i=A!==null?Math.min(65536,A-a):65536,s=t.requestSliceRange(a,4,i);if(s instanceof Promise&&(s=await s),!s||s.length<4)break;for(;s.remainingLength>=4;){let o=s.filePos,c=J(s),g=t.fileSize!==null?t.fileSize-a:null,u=Ys(c,g);if(u.header&&(!r||u.header.sampleRate===r.sampleRate&&u.header.mpegVersionId===r.mpegVersionId&&u.header.layer===r.layer&&Kr(u.header.channel)===Kr(r.channel)))return{header:u.header,startPos:a};s.filePos=o+u.bytesAdvanced,a=s.filePos}}return null};var Lc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.firstFrameHeaderPos=null,this.loadedSamples=[],this.metadataTags=null,this.xingData=null,this.trackBackings=[],this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.trackBackings=[new jl(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let s=this.reader.requestSlice(this.lastLoadedPos,eA);if(s instanceof Promise&&(s=await s),!s){this.lastSampleLoaded=!0;return}let o=_A(s);if(!o)break;this.lastLoadedPos=s.filePos+o.size}let e=await Ns(this.reader,this.lastLoadedPos,this.reader.fileSize,this.firstFrameHeader);if(!e){this.lastSampleLoaded=!0;return}let A=e.header;this.lastLoadedPos=e.startPos+A.totalSize-1;let r=wc(A.mpegVersionId,A.channel),n=this.reader.requestSlice(e.startPos+r,4);if(n instanceof Promise&&(n=await n),n){let s=J(n);if(s===hc||s===pc){if(!this.xingData){let c=this.reader.requestSlice(e.startPos+r+4,12);if(c instanceof Promise&&(c=await c),c){let g=te(c,12),u=xe(g),l=u.getUint32(0,!1);this.xingData={frameCount:l&Ss.FrameCount?u.getUint32(4,!1):null,fileSize:l&Ss.FileSize?u.getUint32(8,!1):null}}}return}}this.firstFrameHeader||(this.firstFrameHeader=A,this.firstFrameHeaderPos=e.startPos);let a=A.audioSamplesInFrame/this.firstFrameHeader.sampleRate,i={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:a,dataStart:e.startPos,dataSize:A.totalSize};this.loadedSamples.push(i),this.nextTimestampInSamples+=A.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let A=0,r=!1;for(;;){let n=this.reader.requestSlice(A,eA);if(n instanceof Promise&&(n=await n),!n)break;let a=_A(n);if(!a)break;r=!0;let i=this.reader.requestSlice(n.filePos,a.size);if(i instanceof Promise&&(i=await i),!i)break;Zi(i,a,this.metadataTags),A=n.filePos+a.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Hs){let n=this.reader.requestSlice(this.reader.fileSize-Hs,Hs);n instanceof Promise&&(n=await n),C(n),Le(n,3)==="TAG"&&uw(n,this.metadataTags)}return this.metadataTags}finally{e()}}},jl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.demuxer;if(C(e.firstFrameHeader!==null),C(e.firstFrameHeaderPos!==null),e.xingData){if(e.xingData.frameCount!==null)return e.xingData.frameCount*e.firstFrameHeader.audioSamplesInFrame/e.firstFrameHeader.sampleRate}else if(e.reader.fileSize!==null){let A=vp(e.firstFrameHeader.lowSamplingFrequency,e.firstFrameHeader.layer,e.firstFrameHeader.bitrate,e.firstFrameHeader.sampleRate),r=(e.reader.fileSize-e.firstFrameHeaderPos)/A;return Math.round(r)*e.firstFrameHeader.audioSamplesInFrame/e.firstFrameHeader.sampleRate}return null}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return C(this.demuxer.firstFrameHeader),Kr(this.demuxer.firstFrameHeader.channel)}getSampleRate(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:Kr(this.demuxer.firstFrameHeader.channel),sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,A){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let a=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;n=te(a,r.dataSize)}return new Fe(n,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=wr(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let a=n+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,A)}finally{r()}}async getPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,a=>a.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,A);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,A);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var Vl=1399285583,pC=79764919,gw=new Uint32Array(256);for(let t=0;t<256;t++){let e=t<<24;for(let A=0;A<8;A++)e=e&2147483648?e<<1^pC:e<<1;gw[t]=e>>>0&4294967295}var lw=t=>{let e=xe(t),A=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let n=0;n<t.length;n++){let a=t[n];r=(r<<8^gw[r>>>24^a])>>>0}return e.setUint32(22,A,!0),r},dw=(t,e,A)=>{let r=0,n=null;if(t.length>0)if(e.codec==="vorbis"){C(e.vorbisInfo);let a=e.vorbisInfo.modeBlockflags.length,s=(1<<mp(a-1))-1<<1,o=(t[0]&s)>>1;if(o>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let c=A,g=e.vorbisInfo.modeBlockflags[o];if(n=e.vorbisInfo.blocksizes[g],g===1){let u=(s|1)+1,l=t[0]&u?1:0;c=e.vorbisInfo.blocksizes[l]}r=c!==null?c+n>>2:0}else e.codec==="opus"&&(r=Lp(t).durationInSamples);return{durationInSamples:r,vorbisBlockSize:n}},fw=t=>{let e="audio/ogg";if(t.codecStrings){let A=[...new Set(t.codecStrings)];e+=`; codecs="${A.join(", ")}"`}return e};var en=27,_n=282,mw=_n+255*255,$i=t=>{let e=t.filePos;if(On(t)!==Vl)return null;t.skip(1);let r=ne(t),n=pw(t),a=On(t),i=On(t),s=On(t),o=ne(t),c=new Uint8Array(o);for(let f=0;f<o;f++)c[f]=ne(t);let g=27+o,u=c.reduce((f,p)=>f+p,0),l=g+u;return{headerStartPos:e,totalSize:l,dataStartPos:e+g,dataSize:u,headerType:r,granulePosition:n,serialNumber:a,sequenceNumber:i,checksum:s,lacingValues:c}},hw=(t,e)=>{for(;t.filePos<e-3;){let A=On(t),r=A&255,n=A>>>8&255,a=A>>>16&255,i=A>>>24&255,s=79;if(!(r!==s&&n!==s&&a!==s&&i!==s)){if(t.skip(-4),A===Vl)return!0;t.skip(1)}}return!1};var jc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.trackBackings=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let A=this.reader.requestSliceRange(e,en,_n);if(A instanceof Promise&&(A=await A),!A)break;let r=$i(A);if(!r||!!!(r.headerType&2))break;this.bitstreams.push({serialNumber:r.serialNumber,bosPage:r,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=r.headerStartPos+r.totalSize}for(let A of this.bitstreams){let r=await this.readPacket(A.bosPage,0);r&&(r.data.byteLength>=7&&r.data[0]===1&&r.data[1]===118&&r.data[2]===111&&r.data[3]===114&&r.data[4]===98&&r.data[5]===105&&r.data[6]===115?await this.readVorbisMetadata(r,A):r.data.byteLength>=8&&r.data[0]===79&&r.data[1]===112&&r.data[2]===117&&r.data[3]===115&&r.data[4]===72&&r.data[5]===101&&r.data[6]===97&&r.data[7]===100&&await this.readOpusMetadata(r,A),A.codecInfo.codec!==null&&this.trackBackings.push(new Kl(A,this)))}})()}async readVorbisMetadata(e,A){let r=await this.findNextPacketStart(e);if(!r)return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n||(r=await this.findNextPacketStart(n),!r))return;let a=await this.readPacket(r.startPage,r.startSegmentIndex);if(!a||n.data[0]!==3||a.data[0]!==5)return;let i=[],s=u=>{for(;i.push(Math.min(255,u)),!(u<255);)u-=255};s(e.data.length),s(n.data.length);let o=new Uint8Array(1+i.length+e.data.length+n.data.length+a.data.length);o[0]=2,o.set(i,1),o.set(e.data,1+i.length),o.set(n.data,1+i.length+e.data.length),o.set(a.data,1+i.length+e.data.length+n.data.length),A.codecInfo.codec="vorbis",A.description=o,A.lastMetadataPacket=a;let c=xe(e.data);A.numberOfChannels=c.getUint8(11),A.sampleRate=c.getUint32(12,!0);let g=c.getUint8(28);A.codecInfo.vorbisInfo={blocksizes:[1<<(g&15),1<<(g>>4)],modeBlockflags:jp(a.data).modeBlockflags},_s(n.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,A){let r=await this.findNextPacketStart(e);if(!r)return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n)return;A.codecInfo.codec="opus",A.description=e.data,A.lastMetadataPacket=n;let a=Cc(e.data);A.numberOfChannels=a.outputChannelCount,A.sampleRate=Yn,A.codecInfo.opusInfo={preSkip:a.preSkip},_s(n.data.subarray(8),this.metadataTags)}async readPacket(e,A){C(A<e.lacingValues.length);let r=0;for(let u=0;u<A;u++)r+=e.lacingValues[u];let n=e,a=r,i=A,s=[];e:for(;;){let u=this.reader.requestSlice(n.dataStartPos,n.dataSize);u instanceof Promise&&(u=await u),C(u);let l=te(u,n.dataSize);for(;;){if(i===n.lacingValues.length){s.push(l.subarray(r,a));break}let p=n.lacingValues[i];if(a+=p,p<255){s.push(l.subarray(r,a));break e}i++}let f=n.headerStartPos+n.totalSize;for(;;){let p=this.reader.requestSliceRange(f,en,_n);if(p instanceof Promise&&(p=await p),!p)return null;let h=$i(p);if(!h)return null;if(n=h,n.serialNumber===e.serialNumber)break;f=n.headerStartPos+n.totalSize}r=0,a=0,i=0}let o=s.reduce((u,l)=>u+l.length,0);if(o===0)return null;let c=new Uint8Array(o),g=0;for(let u=0;u<s.length;u++){let l=s[u];c.set(l,g),g+=l.length}return{data:c,endPage:n,endSegmentIndex:i}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let r=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let n=this.reader.requestSliceRange(r,en,_n);if(n instanceof Promise&&(n=await n),!n)return null;let a=$i(n);if(!a)return null;if(a.serialNumber===e.endPage.serialNumber)return{startPage:a,startSegmentIndex:0};r=a.headerStartPos+a.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.trackBackings.map(A=>A.getDecoderConfig().then(r=>r?.codec??null)));return fw({codecStrings:e.filter(Boolean)})}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Kl=class{constructor(e,A){this.bitstream=e,this.demuxer=A,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new Nt,this.internalSampleRate=e.codecInfo.codec==="opus"?Yn:e.sampleRate}getType(){return"audio"}getId(){return this.bitstream.serialNumber}getNumber(){let e=this.demuxer.trackBackings.findIndex(A=>A.bitstream===this.bitstream);return C(e!==-1),e+1}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return C(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct,primary:!1}}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(C(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,A,r){if(!e)return null;let{durationInSamples:n,vorbisBlockSize:a}=dw(e.data,this.bitstream.codecInfo,A.vorbisLastBlocksize),i=new Fe(r.metadataOnly?dt:e.data,"key",Math.max(0,A.timestampInSamples)/this.internalSampleRate,n/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(i,{packet:e,timestampInSamples:A.timestampInSamples,durationInSamples:n,vorbisLastBlockSize:A.vorbisLastBlocksize,vorbisBlockSize:a}),i}async getFirstPacket(e){C(this.bitstream.lastMetadataPacket);let A=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!A)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(C(this.bitstream.codecInfo.opusInfo),r-=this.bitstream.codecInfo.opusInfo.preSkip);let n=await this.demuxer.readPacket(A.startPage,A.startSegmentIndex);return this.createEncodedPacketFromOggPacket(n,{timestampInSamples:r,vorbisLastBlocksize:null},e)}async getNextPacket(e,A){let r=this.encodedPacketToMetadata.get(e);if(!r)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(r.packet);if(!n)return null;let a=r.timestampInSamples+r.durationInSamples,i=await this.demuxer.readPacket(n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(i,{timestampInSamples:a,vorbisLastBlocksize:r.vorbisBlockSize},A)}async getPacket(e,A){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,A);let r=Br(e*this.internalSampleRate);if(r===0)return this.getFirstPacket(A);if(r<0)return null;C(this.bitstream.lastMetadataPacket);let n=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!n)return null;let a=n.startPage,i=this.demuxer.reader.fileSize,s=[a];e:for(;a.headerStartPos+a.totalSize<i;){let D=a.headerStartPos,b=Math.floor((D+i)/2),E=b;for(;;){let x=Math.min(E+mw,i-en),S=this.demuxer.reader.requestSlice(E,x-E);if(S instanceof Promise&&(S=await S),C(S),!hw(S,x)){i=b+en;continue e}let R=this.demuxer.reader.requestSliceRange(S.filePos,en,_n);R instanceof Promise&&(R=await R),C(R);let M=$i(R);C(M);let N=!1;if(M.serialNumber===this.bitstream.serialNumber)N=!0;else{let F=this.demuxer.reader.requestSlice(M.headerStartPos,M.totalSize);F instanceof Promise&&(F=await F),C(F);let K=te(F,M.totalSize);N=lw(K)===M.checksum}if(!N){E=M.headerStartPos+4;continue}if(N&&M.serialNumber!==this.bitstream.serialNumber){E=M.headerStartPos+M.totalSize;continue}if(M.granulePosition===-1){E=M.headerStartPos+M.totalSize;continue}this.granulePositionToTimestampInSamples(M.granulePosition)>r?i=M.headerStartPos:(a=M,s.push(M));continue e}}let o=n.startPage;for(let D of s){if(D.granulePosition===a.granulePosition)break;(!o||D.headerStartPos>o.headerStartPos)&&(o=D)}let c=o,g=[c];for(;!(c.serialNumber===this.bitstream.serialNumber&&c.granulePosition===a.granulePosition);){let D=c.headerStartPos+c.totalSize,b=this.demuxer.reader.requestSliceRange(D,en,_n);b instanceof Promise&&(b=await b),C(b);let E=$i(b);C(E),c=E,c.serialNumber===this.bitstream.serialNumber&&g.push(c)}C(c.granulePosition!==-1);let u=null,l,f,p=c,h=0;if(c.headerStartPos===n.startPage.headerStartPos)l=this.granulePositionToTimestampInSamples(0),f=!0,u=0;else{l=0,f=!1;for(let E=c.lacingValues.length-1;E>=0;E--)if(c.lacingValues[E]<255){u=E+1;break}if(u===null)throw new Error("Invalid page with granule position: no packets end on this page.");h=u-1;let D={data:dt,endPage:p,endSegmentIndex:h};if(await this.demuxer.findNextPacketStart(D)){let E=Bw(g,c,u);C(E);let x=ww(g,E.page,E.segmentIndex);x&&(c=x.page,u=x.segmentIndex)}else for(;;){let E=Bw(g,c,u);if(!E)break;let x=ww(g,E.page,E.segmentIndex);if(!x)break;if(c=x.page,u=x.segmentIndex,E.page.headerStartPos!==p.headerStartPos){p=E.page,h=E.segmentIndex;break}}}let y=null,w=null;for(;c!==null;){C(u!==null);let D=await this.demuxer.readPacket(c,u);if(!D)break;if(!(c.headerStartPos===n.startPage.headerStartPos&&u<n.startSegmentIndex)){let x=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:l,vorbisLastBlocksize:w?.vorbisBlockSize??null},A);C(x);let S=this.encodedPacketToMetadata.get(x);if(C(S),!f&&D.endPage.headerStartPos===p.headerStartPos&&D.endSegmentIndex===h?(l=this.granulePositionToTimestampInSamples(c.granulePosition),f=!0,x=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:l-S.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},A),C(x),S=this.encodedPacketToMetadata.get(x),C(S)):l+=S.durationInSamples,y=x,w=S,f&&(Math.max(l,0)>r||Math.max(S.timestampInSamples,0)===r))break}let E=await this.demuxer.findNextPacketStart(D);if(!E)break;c=E.startPage,u=E.startSegmentIndex}return y}async getPacketSequential(e,A){let r=await this.sequentialScanMutex.acquire();try{let n=Br(e*this.internalSampleRate);e=n/this.internalSampleRate;let a=ye(this.sequentialScanCache,n,o=>o.timestampInSamples),i;if(a!==-1){let o=this.sequentialScanCache[a];i=this.createEncodedPacketFromOggPacket(o.packet,{timestampInSamples:o.timestampInSamples,vorbisLastBlocksize:o.vorbisLastBlockSize},A)}else i=await this.getFirstPacket(A);let s=0;for(;i&&i.timestamp<e;){let o=await this.getNextPacket(i,A);if(!o||o.timestamp>e)break;if(i=o,s++,s===100){s=0;let c=this.encodedPacketToMetadata.get(i);C(c),this.sequentialScanCache.length>0&&C(_e(this.sequentialScanCache).timestampInSamples<=c.timestampInSamples),this.sequentialScanCache.push(c)}}return i}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}},ww=(t,e,A)=>{let r=e,n=A;e:for(;;){for(n--,n;n>=0;n--)if(r.lacingValues[n]<255){n++;break e}if(C(n===-1),!(r.headerType&1)){n=0;break}let i=bl(t,s=>s.headerStartPos<r.headerStartPos);if(!i)return null;r=i,n=r.lacingValues.length}if(C(n!==-1),n===r.lacingValues.length){let a=t[t.indexOf(r)+1];C(a),r=a,n=0}return{page:r,segmentIndex:n}},Bw=(t,e,A)=>{if(A>0)return{page:e,segmentIndex:A-1};let r=bl(t,n=>n.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var kr;(function(t){t[t.PCM=1]="PCM",t[t.IEEE_FLOAT=3]="IEEE_FLOAT",t[t.ALAW=6]="ALAW",t[t.MULAW=7]="MULAW",t[t.EXTENSIBLE=65534]="EXTENSIBLE"})(kr||(kr={}));var Vc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.trackBackings=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),C(e);let A=Le(e,4),r=A!=="RIFX",n=A==="RF64",a=Gr(e,r),i=n?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if(Le(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let o=0,c=null,g=e.filePos;for(;i===null||g<i;){let l=this.reader.requestSlice(g,8);if(l instanceof Promise&&(l=await l),!l)break;let f=Le(l,4),p=Gr(l,r),h=l.filePos;if(n&&o===0&&f!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(f==="fmt ")await this.parseFmtChunk(h,p,r);else if(f==="data"){if(c??=p,this.dataStart=l.filePos,this.dataSize=Math.min(c,(i??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(f==="ds64"){let y=this.reader.requestSlice(h,p);if(y instanceof Promise&&(y=await y),!y)break;let w=Zl(y,r);c=Zl(y,r),i=Math.min(w+8,this.reader.fileSize??1/0)}else f==="LIST"?await this.parseListChunk(h,p,r):(f==="ID3 "||f==="id3 ")&&await this.parseId3Chunk(h,p);g=h+p+(p&1),o++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let u=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/u)*u,this.trackBackings.push(new Wl(this))})()}async parseFmtChunk(e,A,r){let n=this.reader.requestSlice(e,A);if(n instanceof Promise&&(n=await n),!n)return;let a=Xi(n,r),i=Xi(n,r),s=Gr(n,r);n.skip(4);let o=Xi(n,r),c;if(A===14?c=8:c=Xi(n,r),A>=18&&a!==357){let g=Xi(n,r),u=A-18;if(Math.min(u,g)>=22&&a===kr.EXTENSIBLE){n.skip(6);let f=te(n,16);a=f[0]|f[1]<<8}}(a===kr.MULAW||a===kr.ALAW)&&(c=8),this.audioInfo={format:a,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(c/8),blockSizeInBytes:o}}async parseListChunk(e,A,r){let n=this.reader.requestSlice(e,A);if(n instanceof Promise&&(n=await n),!n)return;let a=Le(n,4);if(a!=="INFO"&&a!=="INF0")return;let i=n.filePos;for(;i<=e+A-8;){n.filePos=i;let s=Le(n,4),o=Gr(n,r),c=te(n,o),g=0;for(let l=0;l<c.length&&c[l]!==0;l++)g++;let u=String.fromCharCode(...c.subarray(0,g));switch(this.metadataTags.raw??={},this.metadataTags.raw[s]=u,s){case"INAM":case"TITL":this.metadataTags.title??=u;break;case"TIT3":this.metadataTags.description??=u;break;case"IART":this.metadataTags.artist??=u;break;case"IPRD":this.metadataTags.album??=u;break;case"IPRT":case"ITRK":case"TRCK":{let l=u.split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"ICRD":case"IDIT":{let l=new Date(u);Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"YEAR":{let l=Number.parseInt(u,10);Number.isInteger(l)&&l>0&&(this.metadataTags.date??=new Date(l,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=u;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=u;break}i+=8+o+(o&1)}}async parseId3Chunk(e,A){let r=this.reader.requestSlice(e,A);if(r instanceof Promise&&(r=await r),!r)return;let n=_A(r);if(n){let a=A-eA;if(n.size=Math.min(n.size,a),n.size>0){let i=r.slice(e+eA,n.size);Zi(i,n,this.metadataTags)}}}getCodec(){if(C(this.audioInfo),this.audioInfo.format===kr.MULAW)return"ulaw";if(this.audioInfo.format===kr.ALAW)return"alaw";if(this.audioInfo.format===kr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===kr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Ji=2048,Wl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(C(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}getNumberOfChannels(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return C(this.demuxer.dataSize!==-1),this.demuxer.dataSize/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct}}async getPacketAtIndex(e,A){C(e>=0),C(this.demuxer.audioInfo);let r=e*Ji*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let n=Math.min(Ji*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(this.demuxer.reader.fileSize===null){let o=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,n);if(o instanceof Promise&&(o=await o),!o)return null}let a;if(A.metadataOnly)a=dt;else{let o=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,n);o instanceof Promise&&(o=await o),C(o),a=te(o,n)}let i=e*Ji/this.demuxer.audioInfo.sampleRate,s=n/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,this.demuxer.lastKnownPacketIndex),new Fe(a,"key",i,s,e,n)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,A){C(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/Ji,(this.demuxer.dataSize-1)/(Ji*this.demuxer.audioInfo.blockSizeInBytes)));if(r<0)return null;let n=await this.getPacketAtIndex(r,A);if(n)return n;if(r===0)return null;C(this.demuxer.reader.fileSize===null);let a=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,A);for(;a;){let i=await this.getNextPacket(a,A);if(!i)break;a=i}return a}getNextPacket(e,A){C(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/Ji);return this.getPacketAtIndex(r+1,A)}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var Mn=7,MA=9,RA=t=>{let e=t.filePos,A=te(t,9),r=new Ge(A);if(r.readBits(12)!==4095||(r.skipBits(1),r.readBits(2)!==0))return null;let i=r.readBits(1),s=r.readBits(2)+1,o=r.readBits(4);if(o===15)return null;r.skipBits(1);let c=r.readBits(3);if(c===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let g=r.readBits(13);r.skipBits(11);let u=r.readBits(2)+1;if(u!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let l=null;return i===1?t.filePos-=2:l=r.readBits(16),{objectType:s,samplingFrequencyIndex:o,channelConfiguration:c,frameLength:g,numberOfAacFrames:u,crcCheck:l,startPos:e}};var Us=1024,Kc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.trackBackings=[],this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();C(this.firstFrameHeader),this.trackBackings=[new $l(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let i=this.reader.requestSlice(this.lastLoadedPos,eA);if(i instanceof Promise&&(i=await i),!i){this.lastSampleLoaded=!0;return}let s=_A(i);if(!s)break;this.lastLoadedPos=i.filePos+s.size}let e=this.reader.requestSliceRange(this.lastLoadedPos,Mn,MA);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let A=RA(e);if(!A){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&A.startPos+A.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=A);let r=er[A.samplingFrequencyIndex];C(r!==void 0);let n=Us/r,a={timestamp:this.nextTimestampInSamples/r,duration:n,dataStart:A.startPos,dataSize:A.frameLength};this.loadedSamples.push(a),this.nextTimestampInSamples+=Us,this.lastLoadedPos=A.startPos+A.frameLength}async getMimeType(){return"audio/aac"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let A=0;for(;;){let r=this.reader.requestSlice(A,eA);if(r instanceof Promise&&(r=await r),!r)break;let n=_A(r);if(!n)break;let a=this.reader.requestSlice(r.filePos,n.size);if(a instanceof Promise&&(a=await a),!a)break;Zi(a,n,this.metadataTags),A=r.filePos+n.size}return this.metadataTags}finally{e()}}},$l=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return this.getSampleRate()/Us}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getCodec(){return"aac"}getInternalCodecId(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){C(this.demuxer.firstFrameHeader);let e=Lr[this.demuxer.firstFrameHeader.channelConfiguration];return C(e!==void 0),e}getSampleRate(){C(this.demuxer.firstFrameHeader);let e=er[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return C(e!==void 0),e}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.firstFrameHeader),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate()}}async getPacketAtIndex(e,A){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let a=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;n=te(a,r.dataSize)}return new Fe(n,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=wr(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let a=n+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,A)}finally{r()}}async getPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,a=>a.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,A);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,A);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var Pw=t=>t===0?null:t===1?192:t>=2&&t<=5?144*2**t:t===6?"uncommon-u8":t===7?"uncommon-u16":t>=8&&t<=15?2**t:null,yw=(t,e)=>{switch(t){case 0:return e;case 1:return 88200;case 2:return 176400;case 3:return 192e3;case 4:return 8e3;case 5:return 16e3;case 6:return 22050;case 7:return 24e3;case 8:return 32e3;case 9:return 44100;case 10:return 48e3;case 11:return 96e3;case 12:return"uncommon-u8";case 13:return"uncommon-u16";case 14:return"uncommon-u16-10";default:return null}},Iw=t=>{let e=0,A=new Ge(te(t,1));for(;A.readBits(1)===1;)e++;if(e===0)return A.readBits(7);let r=[],n=e-1,a=new Ge(te(t,n)),i=8-e-1;for(let o=0;o<i;o++)r.unshift(A.readBits(1));for(let o=0;o<n;o++)for(let c=0;c<8;c++){let g=a.readBits(1);c<2||r.unshift(g)}return r.reduce((o,c,g)=>o|c<<g,0)},Dw=(t,e)=>{if(e==="uncommon-u16")return At(t)+1;if(e==="uncommon-u8")return ne(t)+1;if(typeof e=="number")return e;$t(e),C(!1)},Cw=(t,e)=>e==="uncommon-u16"?At(t):e==="uncommon-u16-10"?At(t)*10:e==="uncommon-u8"?ne(t):typeof e=="number"?e:null,bw=t=>{let A=0;for(let r of t){A^=r;for(let n=0;n<8;n++)A&128?A=A<<1^7:A<<=1,A&=255}return A};var Wc=class extends ht{constructor(e){super(e),this.loadedSamples=[],this.metadataPromise=null,this.trackBacking=null,this.metadataTags={},this.audioInfo=null,this.lastLoadedPos=null,this.blockingBit=null,this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.reader=e._reader}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTrackBackings(){return await this.readMetadata(),C(this.trackBacking),[this.trackBacking]}async getMimeType(){return"audio/flac"}async readMetadata(){let e=4;return this.metadataPromise??=(async()=>{for(;this.reader.fileSize===null||e<this.reader.fileSize;){let A=this.reader.requestSlice(e,4);if(A instanceof Promise&&(A=await A),e+=4,A===null)throw new Error(`Metadata block at position ${e} is too small! Corrupted file.`);C(A);let r=ne(A),n=YA(A),a=(r&128)!==0;switch(r&127){case Zr.STREAMINFO:{let s=this.reader.requestSlice(e,n);if(s instanceof Promise&&(s=await s),C(s),s===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let o=te(s,34),c=new Ge(o),g=c.readBits(16),u=c.readBits(16),l=c.readBits(24),f=c.readBits(24),p=c.readBits(20),h=c.readBits(3)+1;c.readBits(5);let y=c.readBits(36);c.skipBits(16*8);let w=new Uint8Array(42);w.set(new Uint8Array([102,76,97,67]),0),w.set(new Uint8Array([128,0,0,34]),4),w.set(o,8),this.audioInfo={numberOfChannels:h,sampleRate:p,totalSamples:y,minimumBlockSize:g,maximumBlockSize:u,minimumFrameSize:l,maximumFrameSize:f,description:w},this.trackBacking=new Jl(this);break}case Zr.VORBIS_COMMENT:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),C(s),_s(te(s,n),this.metadataTags);break}case Zr.PICTURE:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),C(s);let o=J(s),c=J(s),g=mt.decode(te(s,c)),u=J(s),l=mt.decode(te(s,u));s.skip(16);let f=J(s),p=te(s,f);this.metadataTags.images??=[],this.metadataTags.images.push({data:p,mimeType:g,kind:o===3?"coverFront":o===4?"coverBack":"unknown",description:l});break}default:break}if(e+=n,a){this.lastLoadedPos=e;break}}if(!this.audioInfo)throw new Error("Missing STREAMINFO metadata block! Corrupted FLAC file.")})()}async readNextFlacFrame({startPos:e,isFirstPacket:A}){C(this.audioInfo);let r=6,n=16,a=10,i=this.audioInfo.maximumBlockSize*this.audioInfo.numberOfChannels*4+n+2,s=this.audioInfo.minimumFrameSize||a,c=(this.audioInfo.maximumFrameSize||i)+n,g=await this.reader.requestSliceRange(e,n,c);if(!g)return null;let u=this.readFlacFrameHeader({slice:g,isFirstPacket:A});if(!u)return null;for(g.filePos=e+s;;){if(g.filePos>g.end-r)return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:g.end-e,isLastFrame:!0};if(ne(g)===255){let f=g.filePos,p=ne(g),h=this.blockingBit===1?249:248;if(p!==h){g.filePos=f;continue}g.skip(-2);let y=g.filePos-e,w=this.readFlacFrameHeader({slice:g,isFirstPacket:!1});if(!w){g.filePos=f;continue}if(this.blockingBit===0){if(w.num-u.num!==1){g.filePos=f;continue}}else if(w.num-u.num!==u.blockSize){g.filePos=f;continue}return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:y,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:A}){let r=e.filePos,n=te(e,4),a=new Ge(n);if(a.readBits(15)!==32764)return null;if(this.blockingBit===null){C(A);let y=a.readBits(1);this.blockingBit=y}else if(this.blockingBit===1){if(C(!A),a.readBits(1)!==1)return null}else if(this.blockingBit===0){if(C(!A),a.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let s=Pw(a.readBits(4));if(!s)return null;C(this.audioInfo);let o=yw(a.readBits(4),this.audioInfo.sampleRate);if(!o||(a.readBits(4),a.readBits(3),a.readBits(1)!==0))return null;let g=Iw(e),u=Dw(e,s),l=Cw(e,o);if(l===null||l!==this.audioInfo.sampleRate)return null;let f=e.filePos-r,p=ne(e);e.skip(-f),e.skip(-1);let h=bw(te(e,f));return p!==h?null:{num:g,blockSize:u,sampleRate:l}}async advanceReader(){await this.readMetadata(),C(this.lastLoadedPos!==null),C(this.audioInfo);let e=this.lastLoadedPos,A=await this.readNextFlacFrame({startPos:e,isFirstPacket:this.loadedSamples.length===0});if(!A){this.lastSampleLoaded=!0;return}let r=this.loadedSamples[this.loadedSamples.length-1],a={blockOffset:r?r.blockOffset+r.blockSize:0,blockSize:A.blockSize,byteOffset:e,byteSize:A.size};if(this.lastLoadedPos=this.lastLoadedPos+A.size,this.loadedSamples.push(a),A.isLastFrame){this.lastSampleLoaded=!0;return}}},Jl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Xe}getTimeResolution(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.totalSamples===0?null:this.demuxer.audioInfo.totalSamples/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.audioInfo),{codec:"flac",numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate,description:this.demuxer.audioInfo.description}}async getPacket(e,A){if(C(this.demuxer.audioInfo),e<0)return null;let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,o=>o.blockOffset/this.demuxer.audioInfo.sampleRate);if(n===-1){await this.demuxer.advanceReader();continue}let a=this.demuxer.loadedSamples[n],i=a.blockOffset/this.demuxer.audioInfo.sampleRate,s=a.blockSize/this.demuxer.audioInfo.sampleRate;if(i+s<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,A);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(n,A)}}finally{r()}}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&n>=this.demuxer.loadedSamples.length)return null;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,A)}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}async getPacketAtIndex(e,A){let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let s=this.demuxer.reader.requestSlice(r.byteOffset,r.byteSize);if(s instanceof Promise&&(s=await s),!s)return null;n=te(s,r.byteSize)}C(this.demuxer.audioInfo);let a=r.blockOffset/this.demuxer.audioInfo.sampleRate,i=r.blockSize/this.demuxer.audioInfo.sampleRate;return new Fe(n,"key",a,i,e,r.byteSize)}async getFirstPacket(e){for(;this.demuxer.loadedSamples.length===0&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(0,e)}};var Ew=t=>{let e="video/MP2T",A=[...new Set(t.filter(Boolean))];return A.length>0&&(e+=`; codecs="${A.join(", ")}"`),e};var kw="PES packet is missing PTS where it was expected. PES packets without PTS are not currently supported. If you think this file should be supported, please report it.",Tw=new Set,Zc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.elementaryStreams=[],this.trackBackingEntries=[],this.packetOffset=0,this.packetStride=-1,this.sectionEndPositions=[],this.seekChunkSize=5*1024*1024,this.minReferencePointByteDistance=-1,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=205,A=this.reader.requestSlice(0,e);A instanceof Promise&&(A=await A),C(A);let r=te(A,e);if(r[0]===71&&r[188]===71)this.packetOffset=0,this.packetStride=188;else if(r[0]===71&&r[204]===71)this.packetOffset=0,this.packetStride=204;else if(r[4]===71&&r[196]===71)this.packetOffset=4,this.packetStride=192;else throw new Error("Unreachable.");let n=256;this.minReferencePointByteDistance=n*this.packetStride;let a=this.packetOffset,i=null,s=!1,o=!1;for(;;){let c=await this.readPacketHeader(a);if(!c)break;if(c.payloadUnitStartIndicator===0){a+=this.packetStride;continue}let g=await this.readSection(a,!0,!o);if(!g)break;let u=3,l=32,f=!1;if(!o&&g.pid!==0&&!(g.payload[0]===0&&g.payload[1]===0&&g.payload[2]===1)){let y=new Ge(g.payload),w=y.readAlignedByte();y.skipBits(8*w),f=y.readBits(8)===2}if(g.pid===0&&!s){let h=new Ge(g.payload),y=h.readAlignedByte();h.skipBits(8*y),h.skipBits(14);let w=h.readBits(10);for(h.skipBits(40);8*(w+u)-h.pos>l;){let D=h.readBits(16);h.skipBits(3);let b=h.readBits(13);if(D!==0){if(i!==null)throw new Error("Only files with a single program are supported.");i=b}}if(i===null)throw new Error("Program Association Table must link to a Program Map Table.");s=!0}else if((g.pid===i||f)&&!o){let h=new Ge(g.payload),y=h.readAlignedByte();h.skipBits(8*y),h.skipBits(12);let w=h.readBits(12);h.skipBits(43);let D=h.readBits(13);h.skipBits(6);let b=h.readBits(10);for(h.skipBits(8*b);8*(w+u)-h.pos>l;){let E=h.readBits(8);h.skipBits(3);let x=h.readBits(13);h.skipBits(6);let S=h.readBits(10),k=h.pos+8*S,R=!1,M=!1;for(;h.pos<k;){let V=h.readBits(8),F=h.readBits(8);V===106?R=!0:(V===122||V===204)&&(M=!0),h.skipBits(8*F)}let N=null;switch(E){case 27:case 36:N={type:"video",codec:E===27?"avc":"hevc",decoderConfig:null,avcCodecInfo:null,hevcCodecInfo:null,colorSpace:{primaries:null,transfer:null,matrix:null,fullRange:null},width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,reorderSize:-1};break;case 3:case 4:case 15:case 129:case 135:{let V;if(E===3||E===4)V="mp3";else if(E===15)V="aac";else if(E===129)V="ac3";else if(E===135)V="eac3";else throw new Error("Unreachable.");N={type:"audio",codec:V,decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}}break;case 6:M?N={type:"audio",codec:"eac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}:R&&(N={type:"audio",codec:"ac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1});break;default:Tw.has(E)||(console.warn(`Note: MPEG-TS streams with stream_type 0x${E.toString(16)} are not currently supported.`),Tw.add(E))}N&&this.elementaryStreams.push({demuxer:this,pid:x,streamType:E,initialized:!1,firstSection:null,canBeTrustedWithKeyPackets:!1,info:N,referencePesPackets:[]})}o=!0}else{let h=this.elementaryStreams.find(y=>y.pid===g.pid);e:if(h&&!h.initialized){let y=ea(g,!0);if(!y)throw new Error(`Couldn't read first PES packet for Elementary Stream with PID ${h.pid}`);if(h.firstSection=g,h.canBeTrustedWithKeyPackets=g.randomAccessIndicator===1,this.input._initInput){let b=(await this.input._initInput._getDemuxer()).elementaryStreams.find(E=>E.pid===g.pid&&E.info.codec===h.info.codec);if(b){h.info=b.info,h.initialized=!0;break e}}let w=new Qn(h,y);if(h.info.type==="video"){for(;;){let D=w;if(D.suppliedPacket=null,await w.markNextPacket(),h.info.codec==="avc"){if(!w.suppliedPacket)throw new Error("Invalid AVC video stream; could not extract AVCDecoderConfigurationRecord from any packet.");if(h.info.avcCodecInfo=Ni(w.suppliedPacket.data),!h.info.avcCodecInfo)continue;let b=h.info.avcCodecInfo.sequenceParameterSets[0];C(b);let E=Os(b);h.info.width=E.displayWidth,h.info.height=E.displayHeight;let x=E.pixelAspectRatio.num,S=E.pixelAspectRatio.den;x>0&&S>0&&(x>S?(h.info.squarePixelWidth=Math.round(h.info.width*x/S),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*S/x))),h.info.colorSpace={primaries:Cn[E.colourPrimaries],transfer:bn[E.transferCharacteristics],matrix:En[E.matrixCoefficients],fullRange:!!E.fullRangeFlag},h.info.reorderSize=E.maxDecFrameBuffering;break}else if(h.info.codec==="hevc"){if(!w.suppliedPacket)throw new Error("Invalid HEVC video stream; could not extract HVCDecoderConfigurationRecord from first packet.");if(h.info.hevcCodecInfo=Hi(w.suppliedPacket.data),!h.info.hevcCodecInfo)continue;let E=h.info.hevcCodecInfo.arrays.find(S=>S.nalUnitType===bt.SPS_NUT).nalUnits[0];C(E);let x=_l(E);h.info.width=x.displayWidth,h.info.height=x.displayHeight,x.pixelAspectRatio.num>x.pixelAspectRatio.den?(h.info.squarePixelWidth=Math.round(h.info.width*x.pixelAspectRatio.num/x.pixelAspectRatio.den),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*x.pixelAspectRatio.den/x.pixelAspectRatio.num)),h.info.colorSpace={primaries:Cn[x.colourPrimaries],transfer:bn[x.transferCharacteristics],matrix:En[x.matrixCoefficients],fullRange:!!x.fullRangeFlag},h.info.reorderSize=x.maxDecFrameBuffering;break}else throw new Error("Unhandled.")}h.info.decoderConfig={codec:Ri({width:h.info.width,height:h.info.height,codec:h.info.codec,codecDescription:null,colorSpace:h.info.colorSpace,avcType:1,avcCodecInfo:h.info.avcCodecInfo,hevcCodecInfo:h.info.hevcCodecInfo,vp9CodecInfo:null,av1CodecInfo:null}),codedWidth:h.info.width,codedHeight:h.info.height,colorSpace:h.info.colorSpace},(h.info.width!==h.info.squarePixelWidth||h.info.height!==h.info.squarePixelHeight)&&(h.info.decoderConfig.displayAspectWidth=h.info.squarePixelWidth,h.info.decoderConfig.displayAspectHeight=h.info.squarePixelHeight),h.initialized=!0}else{if(await w.markNextPacket(),!w.suppliedPacket)throw new Error(`Couldn't parse first media packet for Elementary Stream with PID ${h.pid}`);if(h.info.codec==="aac"){let D=Mt.tempFromBytes(w.suppliedPacket.data),b=RA(D);if(!b)throw new Error("Invalid AAC audio stream; could not read ADTS frame header from first packet.");h.info.aacCodecInfo={isMpeg2:!1,objectType:b.objectType},h.info.numberOfChannels=Lr[b.channelConfiguration],h.info.sampleRate=er[b.samplingFrequencyIndex]}else if(h.info.codec==="mp3"){let D=J(Mt.tempFromBytes(w.suppliedPacket.data)),b=Ys(D,w.suppliedPacket.data.byteLength);if(!b.header)throw new Error("Invalid MP3 audio stream; could not read frame header from first packet.");h.info.numberOfChannels=Kr(b.header.channel),h.info.sampleRate=b.header.sampleRate}else if(h.info.codec==="ac3"){let D=bc(w.suppliedPacket.data);if(!D)throw new Error("Invalid AC-3 audio stream; could not read sync frame from first packet.");if(D.fscod===3)throw new Error("Invalid AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=Ms[D.acmod]+D.lfeon,h.info.sampleRate=vn[D.fscod]}else if(h.info.codec==="eac3"){let D=Ec(w.suppliedPacket.data);if(!D)throw new Error("Invalid E-AC-3 audio stream; could not read sync frame from first packet.");let b=Tc(D);if(b===null)throw new Error("Invalid E-AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=kc(D),h.info.sampleRate=b}else throw new Error("Unhandled.");h.info.decoderConfig={codec:Qi({codec:h.info.codec,codecDescription:null,aacCodecInfo:h.info.aacCodecInfo}),numberOfChannels:h.info.numberOfChannels,sampleRate:h.info.sampleRate},h.initialized=!0}}}if(o&&this.elementaryStreams.every(h=>h.initialized))break;a+=this.packetStride}if(!o)throw s?new Error("No Program Map Table found in the file."):new Error("No Program Association Table found in the file.");for(let c of this.elementaryStreams)c.info.type==="video"?this.trackBackingEntries.push(new Xl(c)):this.trackBackingEntries.push(new ed(c))})()}async getTrackBackings(){return await this.readMetadata(),this.trackBackingEntries}async getMetadataTags(){return{}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.trackBackingEntries.map(A=>A.getDecoderConfig().then(r=>r?.codec??null)));return Ew(e)}async readSection(e,A,r=!1){let n=e,a=e,i=[],s=0,o=null,c=!0,g=0;for(;;){let l=await this.readPacket(a);if(a+=this.packetStride,!l)break;if(o){if(l.pid!==o.pid){if(r)break;continue}if(l.payloadUnitStartIndicator===1)break}else{if(l.payloadUnitStartIndicator===0)break;o=l}let f=!!(l.adaptationFieldControl&2),p=!!(l.adaptationFieldControl&1),h=0;if(f&&(h=1+l.body[0],l===o&&h>1&&(g=l.body[1]>>6&1)),p&&(h===0?(i.push(l.body),s+=l.body.byteLength):(i.push(l.body.subarray(h)),s+=l.body.byteLength-h)),n=a,!A&&s>=64){c=!1;break}if(wr(this.sectionEndPositions,n,w=>w)!==-1){c=!1;break}}if(c){let l=ye(this.sectionEndPositions,n,f=>f);this.sectionEndPositions.splice(l+1,0,n)}if(!o)return null;let u;if(i.length===1)u=i[0];else{let l=i.reduce((p,h)=>p+h.length,0);u=new Uint8Array(l);let f=0;for(let p of i)u.set(p,f),f+=p.length}return{startPos:e,endPos:A?n:null,pid:o.pid,payload:u,randomAccessIndicator:g}}async readPacketHeader(e){let A=this.reader.requestSlice(e,4);if(A instanceof Promise&&(A=await A),!A)return null;if(ne(A)!==71)throw new Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let n=At(A),a=n>>15,i=n>>14&1,s=n>>13&1,o=n&8191,c=ne(A),g=c>>6,u=c>>4&3,l=c&15;return{payloadUnitStartIndicator:i,pid:o,adaptationFieldControl:u}}async readPacket(e){let A=this.reader.requestSlice(e,188);if(A instanceof Promise&&(A=await A),!A)return null;let r=te(A,188);if(r[0]!==71)throw new Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let a=(r[1]<<8)+r[2],i=a>>15,s=a>>14&1,o=a>>13&1,c=a&8191,g=r[3],u=g>>6,l=g>>4&3,f=g&15;return{payloadUnitStartIndicator:s,pid:c,adaptationFieldControl:l,body:r.subarray(4)}}},Rn=(t,e)=>{if(t.payload.byteLength<3)return null;let A=new Ge(t.payload);if(A.readBits(24)!==1)return null;let n=A.readBits(8);if(A.skipBits(16),n===188||n===190||n===191||n===240||n===241||n===255||n===242||n===248)return null;A.skipBits(8);let a=A.readBits(2);A.skipBits(14);let i=null;if(a===2||a===3)i=0,A.skipBits(4),i+=A.readBits(3)*(1<<30),A.skipBits(1),i+=A.readBits(15)*32768,A.skipBits(1),i+=A.readBits(15);else if(e)throw new Error(kw);return{sectionStartPos:t.startPos,sectionEndPos:t.endPos,pts:i,randomAccessIndicator:t.randomAccessIndicator}},ea=(t,e)=>{C(t.endPos!==null);let A=Rn(t,e);if(!A)return null;let r=new Ge(t.payload);r.skipBits(32);let n=r.readBits(16),a=6;r.skipBits(16);let i=r.readBits(8),s=r.pos+8*i;r.pos=s;let o=s/8;C(Number.isInteger(o));let c=t.payload.subarray(o,n>0?a+n:t.payload.byteLength);return{...A,data:c}},$c=class t{constructor(e){this.elementaryStream=e,this.packetBuffers=new WeakMap,this.packetSectionStarts=new WeakMap}getId(){return this.elementaryStream.pid}getNumber(){let e=this.elementaryStream.demuxer,A=this.elementaryStream.info.type,r=0;for(let n of e.trackBackingEntries)if(n.getType()===A&&r++,C(n instanceof t),n.elementaryStream===this.elementaryStream)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.elementaryStream.streamType}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct,primary:!1}}getTimeResolution(){return 9e4}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}createEncodedPacket(e,A,r){let n;return this.allPacketsAreKeyPackets()?n="key":n=e.randomAccessIndicator===1?"key":"delta",new Fe(r.metadataOnly?dt:e.data,n,e.pts/9e4,Math.max(A/9e4,0),e.sequenceNumber,e.data.byteLength)}async getFirstPacket(e){let A=this.elementaryStream.firstSection;C(A);let r=ea(A,!0);C(r);let n=new Qn(this.elementaryStream,r),a=new qs(this,n),i=await a.readNext();if(!i)return null;let s=this.createEncodedPacket(i.packet,i.duration,e);return this.packetBuffers.set(s,a),this.packetSectionStarts.set(s,i.packet.sectionStartPos),s}async getNextPacket(e,A){let r=this.packetBuffers.get(e);if(r){let g=await r.readNext();if(!g)return null;this.packetBuffers.delete(e);let u=this.createEncodedPacket(g.packet,g.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,g.packet.sectionStartPos),u}let n=this.packetSectionStarts.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");let i=await this.elementaryStream.demuxer.readSection(n,!0);C(i);let s=ea(i,!0);C(s);let o=new Qn(this.elementaryStream,s);r=new qs(this,o);let c=e.sequenceNumber;for(;;){let g=await r.readNext();if(!g)return null;if(g.packet.sequenceNumber>c){let u=this.createEncodedPacket(g.packet,g.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,g.packet.sectionStartPos),u}}}async getNextKeyPacket(e,A){let r=e;for(;;){if(r=await this.getNextPacket(r,A),!r)return null;if(r.type==="key")return r}}getPacket(e,A){return this.doPacketLookup(e,!1,A)}getKeyPacket(e,A){return this.doPacketLookup(e,!0,A)}async doPacketLookup(e,A,r){let n=Br(e*9e4),a=this.elementaryStream.demuxer,{reader:i,seekChunkSize:s}=a,o=this.elementaryStream.pid,c=async(E,x,S)=>{let k=E;for(;k<x;){let R=await a.readPacketHeader(k);if(!R)return null;if(R.pid===o&&R.payloadUnitStartIndicator===1){let M=await a.readSection(k,S);if(!M)return null;let N=Rn(M,!1);if(N&&N.pts!==null)return{pesPacketHeader:N,section:M}}k+=a.packetStride}return null},g=this.elementaryStream.firstSection;C(g);let u=Rn(g,!0);if(C(u),n<u.pts)return null;let l,f=this.elementaryStream.referencePesPackets,p=ye(f,n,E=>E.pts),h=p!==-1?f[p]:null;if(h&&n-h.pts<9e4/2)l=h.sectionStartPos;else{let E=0;if(i.fileSize!==null){let x=Math.ceil(i.fileSize/s);if(x>1){let S=0,k=x-1;for(E=S;S<=k;){let R=Math.floor((S+k)/2),M=lc(R*s,a.packetStride)+u.sectionStartPos,N=M+s,V=await c(M,N,!1);if(!V){k=R-1;continue}V.pesPacketHeader.pts<=n?(E=R,S=R+1):k=R-1}}}l=lc(E*s,a.packetStride)+u.sectionStartPos}let w=(await c(l,i.fileSize??1/0,!1))?.pesPacketHeader??null;w||(w=u);let D=this.getReorderSize(),b=async(E,x)=>{let S=await a.readSection(E,!0);C(S);let k=ea(S,!0);C(k);let R=new Qn(this.elementaryStream,k),M=new qs(this,R);for(;!((_e(M.presentationOrderPackets)?.pts??-1/0)>=n||!await M.readNextPacket()););let N=vi(M.presentationOrderPackets,x);if(N===-1)return null;let V=M.presentationOrderPackets[N],F=N===0?0:V.pts-M.presentationOrderPackets[N-1].pts;for(;M.decodeOrderPackets[0]!==V;)M.decodeOrderPackets.shift();M.lastDuration=F;let K=await M.readNext();C(K);let L=this.createEncodedPacket(K.packet,K.duration,r);return this.packetBuffers.set(L,M),this.packetSectionStarts.set(L,K.packet.sectionStartPos),L};if(!A||this.allPacketsAreKeyPackets()){e:for(;;){let E=w.sectionStartPos+a.packetStride;for(;;){let x=await a.readPacketHeader(E);if(!x)break e;if(x.pid===o&&x.payloadUnitStartIndicator===1){let S=await a.readSection(E,!1);if(S){let k=Rn(S,!1);if(k&&k.pts!==null){if(k.pts>n)break e;w=k,td(this.elementaryStream,w);break}}}E+=a.packetStride}}e:for(let E=0;E<D+1;E++){let x=w.sectionStartPos-a.packetStride;for(;x>=a.packetOffset;){let S=await a.readPacketHeader(x);if(!S)break e;if(S.pid===o&&S.payloadUnitStartIndicator===1){let k=await a.readSection(x,!1);if(k){let R=Rn(k,!1);if(R&&R.pts!==null){w=R;break}}}x-=a.packetStride}}return b(w.sectionStartPos,E=>E.pts<=n)}else{let E=l,x=null,S=!this.elementaryStream.canBeTrustedWithKeyPackets;for(;;){let k=null,R=E<=u.sectionStartPos,M,N=null;if(R)M=u,N=g;else{let K=await c(E,i.fileSize??1/0,S);M=K?.pesPacketHeader??null,N=K?.section??null}let V=!1,F=0;e:for(;M&&!(x!==null&&M.sectionStartPos>=x);){if(M.pts<=n){let L;if(this.elementaryStream.canBeTrustedWithKeyPackets)L=M.randomAccessIndicator===1;else{C(N);let _=ea(N,!0);C(_);let W=new Qn(this.elementaryStream,_);await W.markNextPacket(),L=W.suppliedPacket?.randomAccessIndicator===1}L&&(k=M)}if(M.pts>n&&(V=!0),V&&(F++,F>D))break;let K=M.sectionStartPos+a.packetStride;for(;;){let L=await a.readPacketHeader(K);if(!L)break e;if(L.pid===o&&L.payloadUnitStartIndicator===1){let _=await a.readSection(K,S);if(_){let W=Rn(_,!1);if(W&&W.pts!==null){M=W,N=_,td(this.elementaryStream,M);break}}}K+=a.packetStride}}if(k){let K=k;if(F===0)e:for(let _=0;_<D;_++){let W=K.sectionStartPos-a.packetStride;for(;W>=a.packetOffset;){let pe=await a.readPacketHeader(W);if(!pe)break e;if(pe.pid===o&&pe.payloadUnitStartIndicator===1){let Ae=await a.readSection(W,S);if(Ae){let De=Rn(Ae,!1);if(De&&De.pts!==null){K=De;break}}}W-=a.packetStride}}let L=await b(K.sectionStartPos,_=>_.pts<=n&&_.randomAccessIndicator===1);return C(L),L}if(R)return null;x=E,E=Math.max(lc(E-u.sectionStartPos-s,a.packetStride)+u.sectionStartPos,u.sectionStartPos)}}}},Xl=class extends $c{getType(){return"video"}getCodec(){return this.elementaryStream.info.codec}getCodedWidth(){return this.elementaryStream.info.width}getCodedHeight(){return this.elementaryStream.info.height}getSquarePixelWidth(){return this.elementaryStream.info.squarePixelWidth}getSquarePixelHeight(){return this.elementaryStream.info.squarePixelHeight}getRotation(){return 0}async getColorSpace(){return this.elementaryStream.info.colorSpace}async canBeTransparent(){return!1}async getDecoderConfig(){return C(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!1}getReorderSize(){return this.elementaryStream.info.reorderSize}},ed=class extends $c{getType(){return"audio"}getCodec(){return this.elementaryStream.info.codec}getNumberOfChannels(){return this.elementaryStream.info.numberOfChannels}getSampleRate(){return this.elementaryStream.info.sampleRate}async getDecoderConfig(){return C(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!0}getReorderSize(){return 0}},td=(t,e)=>{let A=t.referencePesPackets,r=ye(A,e.sectionStartPos,n=>n.sectionStartPos);if(r>=0){let n=A[r];if(e.pts<=n.pts)return!1;let a=t.demuxer.minReferencePointByteDistance;if(e.sectionStartPos-n.sectionStartPos<a)return!1;if(r<A.length-1){let i=A[r+1];if(i.pts<e.pts||i.sectionStartPos-e.sectionStartPos<a)return!1}}return A.splice(r+1,0,e),!0},Qn=class{constructor(e,A){this.currentPos=0,this.pesPackets=[],this.currentPesPacketIndex=0,this.currentPesPacketPos=0,this.endPos=0,this.lastSuppliedPesPacket=null,this.nextPts=null,this.suppliedPacket=null,this.elementaryStream=e,this.pid=e.pid,this.demuxer=e.demuxer,this.startingPesPacket=A}ensureBuffered(e){let A=this.endPos-this.currentPos;return A>=e?e:this.bufferData(e-A).then(()=>Math.min(this.endPos-this.currentPos,e))}getCurrentPesPacket(){let e=this.pesPackets[this.currentPesPacketIndex];return C(e),e}async bufferData(e){let A=this.endPos+e;for(;this.endPos<A;){let r;if(this.pesPackets.length===0)r=this.startingPesPacket;else{let n=_e(this.pesPackets).sectionEndPos;for(C(n!==null);;){let a=await this.demuxer.readPacketHeader(n);if(!a)return;if(a.pid===this.pid){let i=await this.demuxer.readSection(n,!0);if(!i)return;let s=ea(i,!1);if(s){r=s;break}}n+=this.demuxer.packetStride}}this.pesPackets.push(r),this.endPos+=r.data.byteLength}}readBytes(e){let A=this.getCurrentPesPacket(),r=this.currentPos-this.currentPesPacketPos,n=r+e;if(this.currentPos+=e,n<=A.data.byteLength)return A.data.subarray(r,n);let a=new Uint8Array(e);a.set(A.data.subarray(r));let i=A.data.byteLength-r;for(;;){this.advanceCurrentPacket();let s=this.getCurrentPesPacket(),o=e-i;if(o<=s.data.byteLength){a.set(s.data.subarray(0,o),i);break}a.set(s.data,i),i+=s.data.byteLength}return a}readU8(){let e=this.getCurrentPesPacket(),A=this.currentPos-this.currentPesPacketPos;return this.currentPos++,A<e.data.byteLength?e.data[A]:(this.advanceCurrentPacket(),e=this.getCurrentPesPacket(),e.data[0])}seekTo(e){if(e!==this.currentPos){if(e<this.currentPos)for(;e<this.currentPesPacketPos;){this.currentPesPacketIndex--;let A=this.getCurrentPesPacket();this.currentPesPacketPos-=A.data.byteLength}else for(;;){let A=this.getCurrentPesPacket(),r=this.currentPesPacketPos+A.data.byteLength;if(e<r)break;this.currentPesPacketPos+=A.data.byteLength,this.currentPesPacketIndex++}this.currentPos=e}}skip(e){this.seekTo(this.currentPos+e)}advanceCurrentPacket(){this.currentPesPacketPos+=this.getCurrentPesPacket().data.byteLength,this.currentPesPacketIndex++}async markNextPacket(){C(!this.suppliedPacket);let e=this.elementaryStream;if(e.info.type==="video"){let A=e.info.codec,r=1024;if(A!=="avc"&&A!=="hevc")throw new Error("Unhandled.");let n=null;for(;;){let a=this.ensureBuffered(r);if(a instanceof Promise&&(a=await a),a===0)break;let i=this.currentPos,s=this.readBytes(a),o=s.byteLength,c=0;for(;c<o;){let g=s.indexOf(0,c);if(g===-1||g>=o)break;c=g;let u=i+c;if(c+4>=o){this.seekTo(u);break}let l=s[c+1],f=s[c+2],p=s[c+3],h=0,y=null;if(l===0&&f===0&&p===1?(h=4,y=s[c+4]):l===0&&f===1&&(h=3,y=p),h===0){c++;continue}let w=u;if(n===null){n=w,c+=h;continue}if(y!==null){let D=A==="avc"?zi(y):Wr(y);if(A==="avc"?D===Jt.AUD:D===bt.AUD_NUT){let E=w-n;return this.seekTo(n),this.supplyPacket(E,0)}}c+=h}if(a<r)break}if(n!==null){let a=this.endPos-n;return this.seekTo(n),this.supplyPacket(a,0)}}else{let A=e.info.codec,r=128;for(;;){let n=this.ensureBuffered(r);n instanceof Promise&&(n=await n);let a=this.currentPos;for(;this.currentPos-a<n;){let i=this.readU8();if(A==="aac"){if(i!==255)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(MA);if(o instanceof Promise&&(o=await o),o<MA)return;let c=this.readBytes(MA),g=RA(Mt.tempFromBytes(c));if(g){this.seekTo(s);let u=this.ensureBuffered(g.frameLength);return u instanceof Promise&&(u=await u),this.supplyPacket(u,Math.round(Us*9e4/e.info.sampleRate))}else this.seekTo(s+1)}else if(A==="mp3"){if(i!==255)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(4);if(o instanceof Promise&&(o=await o),o<4)return;let c=this.readBytes(4),g=xe(c).getUint32(0),u=Ys(g,null);if(u.header){this.seekTo(s);let l=this.ensureBuffered(u.header.totalSize);l instanceof Promise&&(l=await l);let f=u.header.audioSamplesInFrame*9e4/e.info.sampleRate;return this.supplyPacket(l,Math.round(f))}else this.seekTo(s+1)}else if(A==="ac3"){if(i!==11)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(5);if(o instanceof Promise&&(o=await o),o<5)return;let c=this.readBytes(5);if(c[0]!==11||c[1]!==119){this.seekTo(s+1);continue}let g=c[4]>>6,u=c[4]&63;if(g===3||u>37){this.seekTo(s+1);continue}let l=Vp[3*u+g];C(l!==void 0),this.seekTo(s),o=this.ensureBuffered(l),o instanceof Promise&&(o=await o);let f=Math.round(Kp*9e4/e.info.sampleRate);return this.supplyPacket(o,f)}else if(A==="eac3"){if(i!==11)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(5);if(o instanceof Promise&&(o=await o),o<5)return;let c=this.readBytes(5);if(c[0]!==11||c[1]!==119){this.seekTo(s+1);continue}let u=(((c[2]&7)<<8|c[3])+1)*2,f=c[4]>>6===3?3:c[4]>>4&3,p=Ml[f];this.seekTo(s),o=this.ensureBuffered(u),o instanceof Promise&&(o=await o);let h=p*256,y=Math.round(h*9e4/e.info.sampleRate);return this.supplyPacket(o,y)}else throw new Error("Unhandled.")}if(n<r)break}}}supplyPacket(e,A){let r=this.getCurrentPesPacket(),n;if(this.lastSuppliedPesPacket===r)C(this.nextPts!==null),n=this.nextPts;else{if(r.pts===null)throw new Error(kw);n=r.pts,td(this.elementaryStream,r)}this.lastSuppliedPesPacket=r,this.nextPts=n+A;let a=r.sectionStartPos,i=a+(this.currentPos-this.currentPesPacketPos),s=this.readBytes(e),o=r.randomAccessIndicator;if(o===0&&!this.elementaryStream.canBeTrustedWithKeyPackets){if(this.elementaryStream.info.type==="audio")o=1;else if(this.elementaryStream.info.decoderConfig){let c=$r(this.elementaryStream.info.codec,this.elementaryStream.info.decoderConfig,s)==="key";o=Number(c)}}this.suppliedPacket={pts:n,data:s,sequenceNumber:i,sectionStartPos:a,randomAccessIndicator:o},this.pesPackets.splice(0,this.currentPesPacketIndex),this.currentPesPacketIndex=0}},qs=class{constructor(e,A){this.decodeOrderPackets=[],this.reorderBuffer=[],this.presentationOrderPackets=[],this.reachedEnd=!1,this.lastDuration=0,this.backing=e,this.context=A,this.reorderSize=e.getReorderSize(),C(this.reorderSize>=0)}async readNext(){if(this.decodeOrderPackets.length===0&&!await this.readNextPacket())return null;await this.ensureCurrentPacketHasNext();let e=this.decodeOrderPackets[0],A=this.presentationOrderPackets.indexOf(e);C(A!==-1);let r;for(A===this.presentationOrderPackets.length-1?r=this.lastDuration:(r=this.presentationOrderPackets[A+1].pts-e.pts,this.lastDuration=r),this.decodeOrderPackets.shift();this.presentationOrderPackets.length>0;){let n=this.presentationOrderPackets[0];if(this.decodeOrderPackets.includes(n))break;this.presentationOrderPackets.shift()}return{packet:e,duration:r}}async readNextPacket(){if(this.reachedEnd)return!1;let e;return this.context.suppliedPacket?e=this.context.suppliedPacket:(await this.context.markNextPacket(),e=this.context.suppliedPacket),this.context.suppliedPacket=null,e?(this.decodeOrderPackets.push(e),this.processPacketThroughReorderBuffer(e),!0):(this.reachedEnd=!0,this.flushReorderBuffer(),!1)}async ensureCurrentPacketHasNext(){let e=this.decodeOrderPackets[0];for(C(e);;){let A=this.presentationOrderPackets.indexOf(e);if(A!==-1&&A<=this.presentationOrderPackets.length-2||!await this.readNextPacket())break}}processPacketThroughReorderBuffer(e){if(this.reorderBuffer.push(e),this.reorderBuffer.length>this.reorderSize){let A=0;for(let n=1;n<this.reorderBuffer.length;n++)this.reorderBuffer[n].pts<this.reorderBuffer[A].pts&&(A=n);let r=this.reorderBuffer[A];this.presentationOrderPackets.push(r),this.reorderBuffer.splice(A,1)}}flushReorderBuffer(){this.reorderBuffer.sort((e,A)=>e.pts-A.pts),this.presentationOrderPackets.push(...this.reorderBuffer),this.reorderBuffer.length=0}};var Jc="application/vnd.apple.mpegurl",Ad="#EXT-X-STREAM-INF:",rd="#EXT-X-I-FRAME-STREAM-INF:",nd="#EXT-X-MEDIA:",Ls="#EXTINF:",id="#EXT-X-MAP:",ad="#EXT-X-KEY:",sd="#EXT-X-MEDIA-SEQUENCE:",od="#EXT-X-BYTERANGE:",cd="#EXT-X-PROGRAM-DATE-TIME:",Gw="#EXT-X-DISCONTINUITY",ud="#EXT-X-TARGETDURATION:",xw="#EXT-X-ENDLIST",gd="#EXT-X-PLAYLIST-TYPE:",Sw="#EXT-X-I-FRAMES-ONLY",Xc=t=>t.length===0||t.startsWith("#")&&!t.startsWith("#EXT"),Sr=class{constructor(e){this._attributes={};let A="",r="",n=!1,a=!1;for(let i=0;i<e.length;i++){let s=e[i];s==='"'?a=!a:s==="="&&!n&&!a?n=!0:s===","&&!a?(A&&(this._attributes[A.trim().toLowerCase()]=r),A="",r="",n=!1):n?r+=s:A+=s}A&&(this._attributes[A.trim().toLowerCase()]=r)}get(e){return this._attributes[e.toLowerCase()]??null}getAsNumber(e){let A=this.get(e);if(A===null)return null;let r=Number(A);return Number.isFinite(r)?r:null}merge(e){Object.assign(this._attributes,e._attributes)}};var eu=class{constructor(e,A,r){this.nextInputCacheAge=0,this.inputCache=[],this.trackBackingsPromise=null,this.firstSegment=null,this.firstSegmentFirstTimestamps=new WeakMap,this.firstTimestampCache=new WeakMap,this.input=e,this.path=A,this.trackDeclarations=r}async getDurationFromMetadata(e){let A=await this.getSegmentAt(1/0,{skipLiveWait:e.skipLiveWait});return A?A.timestamp+A.duration:null}async getTrackBackings(){return this.trackBackingsPromise??=(async()=>{let e=[];if(this.trackDeclarations){for(let A of this.trackDeclarations)if(A.type==="video"){let r=xn(e,n=>n.getType()==="video")+1;e.push(new Au(this,A,r))}else if(A.type==="audio"){let r=xn(e,n=>n.getType()==="audio")+1;e.push(new ru(this,A,r))}}else{if(this.firstSegment=await this.getFirstSegment({}),!this.firstSegment)return[];let r=await this.getInputForSegment(this.firstSegment).getTracks();for(let n of r)if(n.type==="video"){let a=xn(e,i=>i.getType()==="video")+1;e.push(new Au(this,{id:e.length+1,type:"video"},a))}else if(n.type==="audio"){let a=xn(e,i=>i.getType()==="audio")+1;e.push(new ru(this,{id:e.length+1,type:"audio"},a))}}return e})()}async getFirstTimestampForInput(e){let A=this.firstTimestampCache.get(e);if(A!==void 0)return A;let r=await e.getFirstTimestamp();return this.firstTimestampCache.set(e,r),r}async getMediaOffset(e,A){let r=e.firstSegment??e,n;if(this.firstSegmentFirstTimestamps.has(r))n=this.firstSegmentFirstTimestamps.get(r);else{let c=this.getInputForSegment(r);n=await this.getFirstTimestampForInput(c),this.firstSegmentFirstTimestamps.set(r,n)}if(r===e)return r.timestamp-n;let a=await this.getFirstTimestampForInput(A),i=e.timestamp-r.timestamp,o=a-n-i;return Math.abs(o)<=Math.min(.25,i)?r.timestamp-n:e.timestamp-a}dispose(){for(let e of this.inputCache)e.input.dispose();this.inputCache.length=0}},tu=class{constructor(e,A,r){this.packetInfos=new WeakMap,this.hydrationPromise=null,this.firstInputTrack=null,this.segmentedInput=e,this.decl=A,this.number=r}hydrate(){return this.hydrationPromise??=(async()=>{if(this.segmentedInput.firstSegment??=await this.segmentedInput.getFirstSegment({}),!this.segmentedInput.firstSegment)throw new Error("Missing first segment, can't retrieve track.");let r=(await this.segmentedInput.getInputForSegment(this.segmentedInput.firstSegment).getTracks()).find(n=>n.type===this.decl.type&&n.number===this.number);if(!r)throw new Error("No matching track found in underlying media data.");this.firstInputTrack=r})()}getId(){return this.decl.id}getType(){return this.decl.type}getNumber(){return this.number}delegate(e){return this.firstInputTrack?e():this.hydrate().then(e)}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}getHasOnlyKeyPackets(){return this.delegate(()=>this.firstInputTrack._backing.getHasOnlyKeyPackets?.()??null)}getPairingMask(){return 1n}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getInternalCodecId(){return this.delegate(()=>this.firstInputTrack._backing.getInternalCodecId())}getDisposition(){return this.delegate(()=>this.firstInputTrack._backing.getDisposition())}getLanguageCode(){return this.delegate(()=>this.firstInputTrack._backing.getLanguageCode())}getName(){return this.delegate(()=>this.firstInputTrack._backing.getName())}getTimeResolution(){return this.delegate(()=>this.firstInputTrack._backing.getTimeResolution())}async isRelativeToUnixEpoch(){return await this.hydrate(),C(this.segmentedInput.firstSegment),this.segmentedInput.firstSegment.relativeToUnixEpoch}getBitrate(){return this.delegate(()=>this.firstInputTrack._backing.getBitrate())}getAverageBitrate(){return this.delegate(()=>this.firstInputTrack._backing.getAverageBitrate())}getDurationFromMetadata(e){return this.segmentedInput.getDurationFromMetadata(e)}getLiveRefreshInterval(){return this.segmentedInput.getLiveRefreshInterval()}async createAdjustedPacket(e,A,r){C(e.sequenceNumber>=0),C(this.segmentedInput.firstSegment);let n=await this.segmentedInput.getMediaOffset(A,r.input),a=A.timestamp-this.segmentedInput.firstSegment.timestamp,i=e.clone({timestamp:Ds(e.timestamp+n,await r.getTimeResolution()),sequenceNumber:Math.floor(1e8*a)+e.sequenceNumber});return this.packetInfos.set(i,{segment:A,track:r,sourcePacket:e}),i}async getFirstPacket(e){await this.hydrate(),C(this.segmentedInput.firstSegment),C(this.firstInputTrack);let A=await this.firstInputTrack._backing.getFirstPacket(e);return A?this.createAdjustedPacket(A,this.segmentedInput.firstSegment,this.firstInputTrack):null}getNextPacket(e,A){return this._getNextInternal(e,A,!1)}getNextKeyPacket(e,A){return this._getNextInternal(e,A,!0)}async _getNextInternal(e,A,r){let n=this.packetInfos.get(e);if(!n)throw new Error("Packet was not created from this track.");let a=r?await n.track._backing.getNextKeyPacket(n.sourcePacket,A):await n.track._backing.getNextPacket(n.sourcePacket,A);if(a)return this.createAdjustedPacket(a,n.segment,n.track);let i=n.segment;for(;;){let s=await this.segmentedInput.getNextSegment(i,{skipLiveWait:A.skipLiveWait});if(!s)return null;let g=(await this.segmentedInput.getInputForSegment(s).getTracks()).find(l=>l.type===n.track.type&&l.number===n.track.number);if(!g){i=s;continue}let u=await g._backing.getFirstPacket(A);return u?this.createAdjustedPacket(u,s,g):null}}getPacket(e,A){return this._getPacketInternal(e,A,!1)}getKeyPacket(e,A){return this._getPacketInternal(e,A,!0)}async _getPacketInternal(e,A,r){let n=await this.segmentedInput.getSegmentAt(e,{skipLiveWait:A.skipLiveWait});if(!n)return null;for(await this.hydrate();n;){let a=this.segmentedInput.getInputForSegment(n),s=(await a.getTracks()).find(u=>u.type===this.firstInputTrack.type&&u.number===this.firstInputTrack.number);if(!s){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}let o=await this.segmentedInput.getMediaOffset(n,a),c=e-o,g=r?await s._backing.getKeyPacket(c,A):await s._backing.getPacket(c,A);if(!g){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}return this.createAdjustedPacket(g,n,s)}return null}},Au=class extends tu{getType(){return"video"}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getCodedWidth(){return this.delegate(()=>this.firstInputTrack._backing.getCodedWidth())}getCodedHeight(){return this.delegate(()=>this.firstInputTrack._backing.getCodedHeight())}getSquarePixelWidth(){return this.delegate(()=>this.firstInputTrack._backing.getSquarePixelWidth())}getSquarePixelHeight(){return this.delegate(()=>this.firstInputTrack._backing.getSquarePixelHeight())}getRotation(){return this.delegate(()=>this.firstInputTrack._backing.getRotation())}async getColorSpace(){return this.delegate(()=>this.firstInputTrack._backing.getColorSpace())}async canBeTransparent(){return this.delegate(()=>this.firstInputTrack._backing.canBeTransparent())}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}},ru=class extends tu{getType(){return"audio"}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getNumberOfChannels(){return this.delegate(()=>this.firstInputTrack._backing.getNumberOfChannels())}getSampleRate(){return this.delegate(()=>this.firstInputTrack._backing.getSampleRate())}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}};_i();var dd=0,fd=1/0,wC=null;typeof FinalizationRegistry<"u"&&(wC=new FinalizationRegistry(t=>{t()}));var Lt=class extends $A{constructor(){super(),this._disposed=!1,this._refCount=0,this._usedForHls=!1,this._refFinalizationRegistry=null,this._sizePromise=null,this.onread=null,typeof FinalizationRegistry<"u"&&(this._refFinalizationRegistry=new FinalizationRegistry(e=>{e._decrementRefCount()}))}async getSizeOrNull(){if(this._disposed)throw new Pt;return this._sizePromise??=(async()=>{let e=this._getFileSize();return e!==void 0||(await this._read(0,1,dd,fd),e=this._getFileSize(),C(e!==void 0)),e})()}async getSize(){if(this._disposed)throw new Pt;let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}slice(e,A){if(!Number.isInteger(e)||e<0)throw new TypeError("offset must be a non-negative integer.");if(A!==void 0&&(!Number.isInteger(A)||A<0))throw new TypeError("length, when provided, must be a non-negative integer.");return new nu(this,e,A)}_dispatchRead(e,A){this.onread?.(e,A),this._emit("read",{start:e,end:A})}ref(){return new Fn(this)}_incrementRefCount(){this._refCount++}_decrementRefCount(){this._refCount--,this._refCount===0&&(this._dispose(),this._disposed=!0)}},Fn=class{constructor(e){if(this._freed=!1,e._disposed)throw new Error("Cannot ref a disposed source.");e._incrementRefCount(),e._refFinalizationRegistry?.register(this,e,this),this._source=e}get source(){if(!this._source)throw new Error("Can't get source; ref has already been freed.");return this._source}get freed(){return this._freed}free(){if(this._freed)throw new Error("Illegal operation: double free on SourceRef.");let e=this.source;C(e._refCount>0),e._decrementRefCount(),e._refFinalizationRegistry?.unregister(this),this._freed=!0,this._source=null}[Symbol.dispose](){this.freed||this.free()}},Ar=class extends Lt{constructor(e,A){if(typeof e!="string")throw new TypeError("rootPath must be a string.");if(typeof A!="function")throw new TypeError("requestHandler must be a function.");super(),this.rootPath=e,this.requestHandler=A}_resolveRequest(e){let A=this.requestHandler(e),r=n=>{if(!(n instanceof Lt||n instanceof Fn))throw new TypeError("requestHandler must return or resolve to a Source or SourceRef.");let a=n instanceof Lt?n.ref():n;return a.source._usedForHls||=this._usedForHls,a};return A instanceof Promise?A.then(r):r(A)}},md=(t,e)=>t.path===e.path,js=class extends Ar{constructor(){super(...arguments),this._root=null,this._rootRequest=null}_read(e,A,r,n){if(!this._root){if(!this._rootRequest){let a=this._resolveRequest({path:this.rootPath,isRoot:!0}),i=s=>{let o=s instanceof Lt?s.ref():s;return this._root=o,this._rootRequest=null,o};a instanceof Promise?this._rootRequest=a.then(i):(i(a),C(this._root))}if(this._rootRequest)return this._rootRequest.then(a=>a.source._read(e,A,r,n))}return this._root.source._read(e,A,r,n)}_getFileSize(){if(this._root)return this._root.source._getFileSize()}_dispose(){this._root?this._root.free():this._rootRequest&&this._rootRequest.then(e=>e.free())}};var Vs=class extends Lt{constructor(e,A={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(A.maxCacheSize!==void 0&&(!ks(A.maxCacheSize)||A.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");if(A.useStreamReader!==void 0&&typeof A.useStreamReader!="boolean")throw new TypeError("options.useStreamReader, when provided, must be a boolean.");super(),this._readers=new WeakMap,this._blob=e,this._options=A,this._orchestrator=new ld({maxCacheSize:A.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:PC.fileSystem}),this._orchestrator.fileSize=e.size}_getFileSize(){return this._orchestrator.fileSize}_read(e,A,r,n){return this._orchestrator.read(e,A,r,n)}async _runWorker(e){C(e.strictTarget);let A=this._readers.get(e);for(A===void 0&&("stream"in this._blob&&!kn()&&this._options.useStreamReader!==!1?A=this._blob.slice(e.currentPos).stream().getReader():A=null,this._readers.set(e,A));e.currentPos<e.targetPos&&!e.aborted;)if(A){let{done:r,value:n}=await A.read();if(r)throw this._orchestrator.onWorkerFinished(e),new Error("Blob reader stopped unexpectedly before all requested data was read.");if(e.aborted)break;this._dispatchRead(e.currentPos,e.currentPos+n.length),this._orchestrator.supplyWorkerData(e,n)}else{let r=await this._blob.slice(e.currentPos,e.targetPos).arrayBuffer();if(e.aborted)break;this._dispatchRead(e.currentPos,e.currentPos+r.byteLength),this._orchestrator.supplyWorkerData(e,new Uint8Array(r))}this._orchestrator.signalWorkerStoppedRunning(e),e.aborted&&await A?.cancel()}_dispose(){this._orchestrator.dispose()}},BC=.5*2**20;var Ks=class extends Lt{constructor(e,A={}){if(!(e instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(A.maxCacheSize!==void 0&&(!ks(A.maxCacheSize)||A.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=e,this._maxCacheSize=A.maxCacheSize??32*2**20}_getFileSize(){return this._endIndex}_read(e,A){if(this._endIndex!==null&&A>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,A);let r=ye(this._cache,e,g=>g.start),n=r!==-1?this._cache[r]:null;if(n&&n.start<=e&&A<=n.end)return{bytes:n.bytes,view:n.view,offset:n.start};let a=e,i=new Uint8Array(A-e);if(r!==-1)for(let g=r;g<this._cache.length;g++){let u=this._cache[g];if(u.start>=A)break;let l=Math.max(e,u.start);l>a&&this._throwDueToCacheMiss();let f=Math.min(A,u.end);l<f&&(i.set(u.bytes.subarray(l-u.start,f-u.start),l-e),a=f)}if(a===A)return{bytes:i,view:xe(i),offset:e};this._currentIndex>a&&this._throwDueToCacheMiss();let{promise:s,resolve:o,reject:c}=lt();return this._pendingSlices.push({start:e,end:A,bytes:i,resolve:o,reject:c}),this._targetIndex=Math.max(this._targetIndex,A),this._pulling||(this._pulling=!0,this._pull().catch(g=>{if(this._pulling=!1,this._pendingSlices.length>0)this._pendingSlices.forEach(u=>u.reject(g)),this._pendingSlices.length=0;else throw g})),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(this._reader??=this._stream.getReader();this._currentIndex<this._targetIndex&&!this._disposed;){let{done:e,value:A}=await this._reader.read();if(e){for(let a of this._pendingSlices)a.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}let r=this._currentIndex,n=this._currentIndex+A.byteLength;this._dispatchRead(r,n);for(let a=0;a<this._pendingSlices.length;a++){let i=this._pendingSlices[a],s=Math.max(r,i.start),o=Math.min(n,i.end);s<o&&(i.bytes.set(A.subarray(s-r,o-r),s-i.start),o===i.end&&(i.resolve({bytes:i.bytes,view:xe(i.bytes),offset:i.start}),this._pendingSlices.splice(a,1),a--))}for(this._cache.push({start:r,end:n,bytes:A,view:xe(A),age:0});this._cache.length>0;){let a=this._cache[0];if(this._maxRequestedIndex-a.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=A.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0,this._reader?.cancel()}},PC={none:(t,e)=>({start:t,end:e}),fileSystem:(t,e)=>(t=Math.floor((t-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:t,end:e}),network:(t,e,A)=>{t=Math.max(0,Math.floor((t-65536)/65536)*65536);for(let n of A){let i=Math.max((n.startPos+n.targetPos)/2,n.targetPos-8388608);if(dc(t,e,i,n.targetPos)){let s=n.targetPos-n.startPos,o=Math.ceil((s+1)/8388608)*8388608,c=2**Math.ceil(Math.log2(s+1)),g=Math.min(c,o);e=Math.max(e,n.startPos+g)}}return e=Math.max(e,t+BC),{start:t,end:e}}},ld=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0,this.disposed=!1,this.queuedReads=[]}read(e,A,r,n){C(!this.disposed);let a=this.options.prefetchProfile(e,A,this.workers),i=Math.max(a.start,r),s=Math.min(a.end,this.fileSize??1/0,n);C(i<=e&&A<=s);let o=null,c=ye(this.cache,e,x=>x.start),g=c!==-1?this.cache[c]:null;g&&g.start<=e&&A<=g.end&&(g.age=this.nextAge++,o={bytes:g.bytes,view:g.view,offset:g.start});let u=ye(this.cache,i,x=>x.start),l=o?null:new Uint8Array(A-e),f=0,p=i,h=[];if(u!==-1){for(let x=u;x<this.cache.length;x++){let S=this.cache[x];if(S.start>=s)break;if(S.end<=i)continue;let k=Math.max(i,S.start),R=Math.min(s,S.end);if(C(k<=R),p<k&&h.push({start:p,end:k}),p=R,l){let M=Math.max(e,S.start),N=Math.min(A,S.end);if(M<N){let V=M-e;l.set(S.bytes.subarray(M-S.start,N-S.start),V),V===f&&(f=N-e)}}S.age=this.nextAge++}p<s&&h.push({start:p,end:s})}else h.push({start:i,end:s});if(l&&f>=l.length&&(o={bytes:l,view:xe(l),offset:e}),h.length===0)return C(o),o;let{promise:y,resolve:w,reject:D}=lt(),b=[];for(let x of h){let S=Math.max(e,x.start),k=Math.min(A,x.end);S===x.start&&k===x.end?b.push(x):S<k&&b.push({start:S,end:k})}let E=l&&{start:e,bytes:l,holes:b,resolve:w,reject:D};e:for(let x of h){for(let R of this.workers)if(this.checkHoleAgainstWorker(R,x,E?[E]:[])){this.checkQueuedReadsAgainstWorker(R);continue e}let S=x.end<s||this.fileSize!==null,k=this.createWorker(x.start,x.end,S);if(k)E&&(k.pendingSlices=[E]),this.runWorker(k);else{let R=ye(this.queuedReads,x.start,N=>N.hole.start),M=R!==-1?this.queuedReads[R]:null;for(M&&x.start<=M.hole.end?(M.hole.end=Math.max(M.hole.end,x.end),M.strictTarget&&=S,E&&M.pendingSlices.push(E)):(R++,M={hole:{start:x.start,end:x.end},strictTarget:S,pendingSlices:E?[E]:[],age:this.nextAge++},this.queuedReads.splice(R,0,M));R+1<this.queuedReads.length;){let N=this.queuedReads[R+1];if(N.hole.start>M.hole.end)break;M.hole.end=Math.max(M.hole.end,N.hole.end),M.pendingSlices.push(...N.pendingSlices),M.strictTarget&&=N.strictTarget,M.age=Math.min(M.age,N.age),this.queuedReads.splice(R+1,1)}}}return o||(C(l),o=y.then(x=>x&&{bytes:x,view:xe(x),offset:e})),o}checkHoleAgainstWorker(e,A,r){if(dc(A.start-131072,A.start,e.currentPos,e.targetPos)){e.targetPos=Math.max(e.targetPos,A.end);for(let a=0;a<r.length;a++){let i=r[a];e.pendingSlices.includes(i)||e.pendingSlices.push(i)}return e.running||this.runWorker(e),!0}return!1}checkQueuedReadsAgainstWorker(e){let A=!1;for(let r=0;r<this.queuedReads.length;r++){let n=this.queuedReads[r];if(this.checkHoleAgainstWorker(e,n.hole,n.pendingSlices))this.queuedReads.splice(r,1),r--,A=!0;else if(A)break}}createWorker(e,A,r){if(this.workers.length>=this.options.maxWorkerCount){let a=null,i=null;for(let s=0;s<this.workers.length;s++){let o=this.workers[s];!o.running&&o.pendingSlices.length===0&&(!a||o.age<a.age)&&(i=s,a=o)}if(a)C(i!==null),C(a.pendingSlices.length===0),this.workers.splice(i,1);else return null}let n={startPos:e,currentPos:e,targetPos:A,strictTarget:r,running:!1,aborted:this.disposed,pendingSlices:[],age:this.nextAge++};return this.workers.push(n),n}runWorker(e){C(!e.running),C(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(A=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(r=>r.reject(A)),e.pendingSlices.length=0;else throw A}).finally(()=>{if(!e.running&&this.queuedReads.length>0){let A=0;for(let a=1;a<this.queuedReads.length;a++)this.queuedReads[a].age<this.queuedReads[A].age&&(A=a);let r=this.queuedReads[A];this.queuedReads.splice(A,1);let n=this.createWorker(r.hole.start,r.hole.end,r.strictTarget);C(n),n.pendingSlices=r.pendingSlices,this.runWorker(n)}})}consolidateEverythingIntoOneWorker(e){let A=new Set(e.pendingSlices);for(let r=0;r<this.workers.length;r++){let n=this.workers[r];if(n!==e){for(let a of n.pendingSlices)A.add(a);n.aborted=!0,n.pendingSlices.length=0,this.workers.splice(r,1),r--}}for(let r=0;r<this.queuedReads.length;r++){let n=this.queuedReads[r];for(let a of n.pendingSlices)A.add(a)}e.pendingSlices=[...A],this.queuedReads.length=0}supplyWorkerData(e,A){C(!e.aborted);let r=e.currentPos,n=r+A.length;this.insertIntoCache({start:r,end:n,bytes:A,view:xe(A),age:this.nextAge++}),e.currentPos+=A.length,e.currentPos>e.targetPos&&(e.targetPos=e.currentPos,this.checkQueuedReadsAgainstWorker(e));for(let a=0;a<e.pendingSlices.length;a++){let i=e.pendingSlices[a],s=Math.max(r,i.start),o=Math.min(n,i.start+i.bytes.length);s<o&&i.bytes.set(A.subarray(s-r,o-r),s-i.start);for(let c=0;c<i.holes.length;c++){let g=i.holes[c];r<=g.start&&n>g.start&&(g.start=n),g.end<=g.start&&(i.holes.splice(c,1),c--)}i.holes.length===0&&(i.resolve(i.bytes),e.pendingSlices.splice(a,1),a--)}for(let a=0;a<this.workers.length;a++){let i=this.workers[a];e===i||i.running||dc(r,n,i.currentPos,i.targetPos)&&(this.workers.splice(a,1),a--)}}supplyFileSize(e){C(this.fileSize===null),this.fileSize=e;for(let A of this.workers){A.targetPos=Math.min(A.targetPos,e),A.strictTarget=!0;for(let r=0;r<A.pendingSlices.length;r++){let n=A.pendingSlices[r];for(let a of n.holes)if(a.end>e){n.resolve(null),A.pendingSlices.splice(r,1),r--;break}}}for(let A=0;A<this.queuedReads.length;A++){let r=this.queuedReads[A];if(r.hole.start>=e){for(let n of r.pendingSlices)n.resolve(null);this.queuedReads.splice(A,1),A--}else if(r.hole.end>e){r.hole.end=e,r.strictTarget=!0;for(let n=0;n<r.pendingSlices.length;n++){let a=r.pendingSlices[n];a.start>=e&&(a.resolve(null),r.pendingSlices.splice(n,1),n--)}}}}signalWorkerStoppedRunning(e){e.running=!1,e.pendingSlices.length=0}onWorkerFinished(e){let A=this.workers.indexOf(e);C(A!==-1),e.running=!1,this.workers.splice(A,1),this.fileSize===null&&this.supplyFileSize(e.currentPos);for(let r of e.pendingSlices)r.resolve(null)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let A=ye(this.cache,e.start,r=>r.start)+1;if(A>0){let r=this.cache[A-1];if(r.end>=e.end)return;if(r.end>e.start){let n=new Uint8Array(e.end-r.start);n.set(r.bytes,0),n.set(e.bytes,e.start-r.start),this.currentCacheSize+=e.end-r.end,r.bytes=n,r.view=xe(n),r.end=e.end,A--,e=r}else this.cache.splice(A,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(A,0,e),this.currentCacheSize+=e.bytes.length;for(let r=A+1;r<this.cache.length;r++){let n=this.cache[r];if(e.end<=n.start)break;if(e.end>=n.end){this.cache.splice(r,1),this.currentCacheSize-=n.bytes.length,r--;continue}let a=new Uint8Array(n.end-e.start);a.set(e.bytes,0),a.set(n.bytes,n.start-e.start),this.currentCacheSize-=e.end-n.start,e.bytes=a,e.view=xe(a),e.end=n.end,this.cache.splice(r,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let r=0,n=this.cache[0];for(let a=1;a<this.cache.length;a++){let i=this.cache[a];i.age<n.age&&(r=a,n=i)}if(this.currentCacheSize-n.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(r,1),this.currentCacheSize-=n.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}};var nu=class extends Lt{constructor(e,A,r){if(super(),this._ref=null,e._disposed)throw new Error("Cannot create a slice of a disposed source.");this._baseSource=e,this._offset=A,this._length=r??null}_getFileSize(){let e=this._baseSource._getFileSize();return e===void 0?this._length!==null?this._length:void 0:e===null?this._length!==null?this._length:null:Tn(e-this._offset,0,this._length??1/0)}_read(e,A,r,n){if(this._length!==null&&A>this._length)return null;let a=this._baseSource._read(this._offset+e,this._offset+A,this._offset+r,this._offset+n),i=s=>s?(s.offset-=this._offset,s):null;return a instanceof Promise?a.then(i):i(a)}_dispose(){this._ref?.free()}ref(){return this._ref??=this._baseSource.ref(),super.ref()}};var Yw=function(t,e,A){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var r,n;if(A){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],A&&(n=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");n&&(r=function(){try{n.call(this)}catch(a){return Promise.reject(a)}}),t.stack.push({value:e,dispose:r,async:A})}else A&&t.stack.push({async:!0});return e},vw=function(t){return function(e){function A(i){e.error=e.hasError?new t(i,e.error,"An error was suppressed during disposal."):i,e.hasError=!0}var r,n=0;function a(){for(;r=e.stack.pop();)try{if(!r.async&&n===1)return n=0,e.stack.push(r),Promise.resolve().then(a);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(a,function(s){return A(s),a()})}else n|=1}catch(s){A(s)}if(n===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return a()}}(typeof SuppressedError=="function"?SuppressedError:function(t,e,A){var r=new Error(A);return r.name="SuppressedError",r.error=t,r.suppressed=e,r}),yC=/^0[xX][0-9a-fA-F]+$/,IC=/^data:.*;base64,/i,Ws=class extends eu{constructor(e,A,r,n){super(e.input,A,r),this.segments=[],this.nextLines=null,this.currentUpdateSegmentsPromise=null,this.streamHasEnded=!1,this.lastSegmentUpdateTime=-1/0,this.refreshInterval=5,this.demuxer=e,this.nextLines=n}runUpdateSegments(){return this.currentUpdateSegmentsPromise??=(async()=>{try{let e=this.getRemainingWaitTimeMs();e>0&&await Gl(e),this.lastSegmentUpdateTime=performance.now(),await this.updateSegments()}finally{this.currentUpdateSegmentsPromise=null}})()}getRemainingWaitTimeMs(){let e=performance.now()-this.lastSegmentUpdateTime,A=Math.max(0,1e3*this.refreshInterval-e);return A<=50?0:A}async updateSegments(){let e=this.nextLines;if(this.nextLines=null,!e){let w={stack:[],error:void 0,hasError:!1};try{let D=Yw(w,await this.demuxer.input._getSourceUncached({path:this.path,isRoot:!1}),!1),E=await new tn(D.source).requestEntireFile();C(E),e=iu(E,E.length,{ignore:Xc})}catch(D){w.error=D,w.hasError=!0}finally{vw(w)}}let A=!1,r=0,n=null,a=null,i=0,s=null,o=null,c=null,g=null,u=null,l=null,f=!1,p=_e(this.segments)??null,h=w=>{let D=w.indexOf("@"),b=Number(D===-1?w:w.slice(0,D));if(!Number.isInteger(b)||b<0)throw new Error(`Invalid #EXT-X-BYTERANGE length '${w}'.`);let E=null;if(D!==-1&&(E=Number(w.slice(D+1)),!Number.isInteger(E)||E<0))throw new Error(`Invalid #EXT-X-BYTERANGE offset '${w}'.`);return{length:b,offset:E}},y=w=>{i=w,p&&(C(p.sequenceNumber!==null),p.sequenceNumber<w&&(r=p.timestamp+p.duration,s=p.firstSegment,o=p.initSegment,u=p.lastProgramDateTimeSeconds,p=null))};for(let w=0;w<e.length;w++){let D=e[w];if(!A){if(D!=="#EXTM3U")throw new Error("Invalid M3U8 file; expected first line to be #EXTM3U.");A=!0;continue}if(!D.startsWith("#")){if(!p){if(n===null)throw new Error("Invalid M3U8 file; a segment must be preceded by an #EXTINF tag.");let b=a;if(b&&b.method==="AES-128"&&!b.iv){let k=new Uint8Array(SA),R=xe(k);R.setUint32(8,Math.floor(i/2**32)),R.setUint32(12,i),b={...b,iv:k}}let x={path:XA(this.path,D),offset:g?.offset??0,length:g?.length??null},S={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:s,sequenceNumber:i,location:x,duration:n,encryption:b,initSegment:o,lastProgramDateTimeSeconds:u};s??=S,r+=n,this.segments.push(S)}n=null,g===null?c=null:g=null,y(i+1)}if(D.startsWith(Ls)){if(p){f=!0;continue}f||(u===null&&i>0&&l!==null&&(r=i*l),f=!0);let b=D.slice(Ls.length),E=b.indexOf(","),x=E===-1?b:b.slice(0,E),S=Number(x);if(!Number.isFinite(S)||S<0)throw new Error(`Invalid #EXTINF tag duration '${x}'.`);n=S}else if(D.startsWith(id)){let b=new Sr(D.slice(id.length)),E=b.get("uri");if(!E)throw new Error("Invalid #EXT-X-MAP tag; missing URI attribute.");let x=b.get("byterange"),S=null;if(x!==null&&(S=h(x)),S&&S.offset===null)throw new Error("Invalid #EXT-X-MAP tag; BYTERANGE attribute must have a specified offset.");if(!p){let R={path:XA(this.path,E),offset:S?.offset??0,length:S?.length??null};if(a?.method==="AES-128"&&!a.iv)throw new Error("IV attribute must be set on #EXT-X-KEY tag preceding the #EXT-X-MAP tag.");o={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:null,sequenceNumber:null,location:R,duration:0,encryption:a,initSegment:null,lastProgramDateTimeSeconds:u}}n=null,g===null?c=null:g=null}else if(D.startsWith(ad)){let b=new Sr(D.slice(ad.length)),E=b.get("method");if(E==="NONE")a=null;else if(E==="AES-128"){let x=b.get("uri");if(!x)throw new Error("Invalid #EXT-X-KEY: AES-128 requires a URI attribute.");let S=null,k=b.get("iv");if(k){if(!yC.test(k))throw new Error(`Unsupported IV format '${k}'.`);let M=k.slice(2);M=M.padStart(SA*2,"0"),S=new Uint8Array(SA);for(let N=0;N<SA;N++){let V=-SA*2+N;S[N]=parseInt(M.slice(V,V+2),16)}}let R=b.get("keyformat")??"identity";if(R!=="identity")throw new Error("For AES-128 encryption, only the 'identity' KEYFORMAT is currently supported. If you think other formats should be supported, please raise an issue.");a={method:"AES-128",keyUri:XA(this.path,x),iv:S,keyFormat:R}}else if(E==="SAMPLE-AES"||E==="SAMPLE-AES-CTR"){let x=b.get("uri");if(!x)throw new Error(`Invalid #EXT-X-KEY: ${E} requires a URI attribute.`);if((b.get("keyformat")??"identity")==="identity")throw new Error("For SAMPLE-AES and SAMPLE-AES-CTR encryption, the 'identity' KEYFORMAT is not supported. If you think this format should be supported, please raise an issue.");let k=null;if(IC.test(x)){let R=x.indexOf(","),M=Ts(x.slice(R+1));if(M.length>=8&&M[4]===112&&M[5]===115&&M[6]===115&&M[7]===104){let N=xe(M).getUint32(0);k=xc(M.subarray(8,Math.min(N,M.length)))}}a={method:E,psshBox:k}}else throw new Error(`Unsupported encryption method '${E}'. If you think this method should be supported, please raise an issue.`)}else if(D.startsWith(sd)){let b=D.slice(sd.length),E=Number(b);if(!Number.isInteger(E)||E<0)throw new Error(`Invalid EXT-X-MEDIA-SEQUENCE value '${b}'.`);y(E)}else if(D.startsWith(od)){let b=h(D.slice(od.length));if(b.offset===null){if(c===null)throw new Error("Invalid M3U8 file; #EXT-X-BYTERANGE without offset requires a previous byte range.");b.offset=c}g=b,c=b.offset+b.length}else if(D.startsWith(cd)){if(p)continue;let b=D.slice(cd.length),E=Date.parse(b);if(!Number.isFinite(E))continue;let x=E/1e3;if(u===x)continue;if(u===null&&this.segments.length>0){let S=_e(this.segments),k=S.timestamp+S.duration,R=x-k;for(let M of this.segments)M.timestamp+=R,M.relativeToUnixEpoch=!0;r+=R}u=x,r=x}else if(D===Gw)s=null;else if(D.startsWith(ud)){let b=D.slice(ud.length),E=Number(b);if(!Number.isFinite(E)||E<0)throw new Error(`Invalid EXT-X-TARGETDURATION value '${b}'.`);this.refreshInterval=E,l=E}else if(D===xw){this.streamHasEnded=!0;break}else D.startsWith(gd)&&D.slice(gd.length).toLowerCase()==="vod"&&(this.streamHasEnded=!0)}if(!A)throw new Error("Invalid M3U8 file; no #EXTM3U header.")}async getFirstSegment(){return this.segments.length===0&&await this.runUpdateSegments(),this.segments[0]??null}async getSegmentAt(e,A){this.segments.length===0&&await this.runUpdateSegments();let r=!!A.skipLiveWait&&this.getRemainingWaitTimeMs()>0;for(;;){let n=ye(this.segments,e,i=>i.timestamp);if(n===-1)return null;if(n<this.segments.length-1||this.streamHasEnded||r)return this.segments[n];let a=this.segments[n];if(e<a.timestamp+a.duration)return a;await this.runUpdateSegments(),A.skipLiveWait&&(r=!0)}}async getNextSegment(e,A){let r=this.segments.indexOf(e);C(r!==-1);let n=r+1,a=!!A.skipLiveWait&&this.getRemainingWaitTimeMs()>0;for(;;){if(n<this.segments.length)return this.segments[n];if(this.streamHasEnded||a)return null;await this.runUpdateSegments(),A.skipLiveWait&&(a=!0)}}async getPreviousSegment(e){let A=this.segments.indexOf(e);return C(A!==-1),this.segments[A-1]??null}getInputForSegment(e){let A=e,r=this.inputCache.find(o=>o.segment===A);if(r)return r.age=this.nextInputCacheAge++,r.input;let n=null;(A.initSegment||A.firstSegment)&&(n=this.getInputForSegment(A.initSegment??A.firstSegment));let a={...this.input._formatOptions,isobmff:{...this.input._formatOptions.isobmff,resolveKeyId:this.input._formatOptions.isobmff?.resolveKeyId&&(o=>{if(!A.encryption||!(A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR")||!A.encryption.psshBox)return this.input._formatOptions.isobmff.resolveKeyId(o);let c=o.psshBoxes,{psshBox:g}=A.encryption;return(g.keyIds===null||g.keyIds.includes(o.keyId))&&!c.some(u=>Sc(u,g))&&(c=[...c,g]),this.input._formatOptions.isobmff.resolveKeyId({...o,psshBoxes:c})})}},i=new zn({source:new js(A.location.path,async o=>{C(o.isRoot);let c={...o,isRoot:!1},g,u=A.location.offset>0||A.location.length!==null;if(!A.encryption||A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR"){if(g=await this.input._getSourceCached(c),u){let f=g.source.slice(A.location.offset,A.location.length??void 0).ref();g.free(),g=f}}else if(A.encryption.method==="AES-128"){let l=A.encryption;C(l.iv);let f=await this.input._getSourceCached(c);if(u){let w=f.source.slice(A.location.offset,A.location.length??void 0).ref();f.free(),f=w}let p=new tn(f.source),h=Xp(p,async()=>{let y={stack:[],error:void 0,hasError:!1};try{let w=Yw(y,await this.input._getSourceCached({path:l.keyUri,isRoot:!1},Ow),!1),b=await new tn(w.source).requestSlice(0,SA);if(!b)throw new Error("Invalid AES-128 key; expected at least 16 bytes of data.");return{key:te(b,SA),iv:l.iv}}catch(w){y.error=w,y.hasError=!0}finally{vw(y)}},()=>{f.free()});g=new Ks(h).ref()}else C(!1);return g}),formats:this.input._formats.filter(o=>!(o instanceof ta)),initInput:n??void 0,formatOptions:a});if(i._onFormatDetermined=o=>{if((A.encryption?.method==="SAMPLE-AES"||A.encryption?.method==="SAMPLE-AES-CTR")&&!o._isIsobmff)throw new Error("The SAMPLE-AES and SAMPLE-AES-CTR encryption methods are currently only supported for ISOBMFF files.")},this.inputCache.push({segment:A,input:i,age:this.nextInputCacheAge++}),this.inputCache.length>4){let o=Mi(this.inputCache,c=>c.age);C(o!==-1),this.inputCache.splice(o,1)}return i}async getLiveRefreshInterval(){return this.getRemainingWaitTimeMs()===0&&await this.runUpdateSegments(),this.streamHasEnded?null:this.refreshInterval}};var su=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.trackBackings=null,this.internalTracks=null,this.segmentedInputs=[],this.hasMasterPlaylist=!0}readMetadata(){return this.metadataPromise??=(async()=>{C(this.input._rootSource instanceof Ar);let{rootPath:e}=this.input._rootSource,A=await this.input._reader.requestEntireFile();C(A);let r=iu(A,A.length,{ignore:Xc}),n=[],a=[];for(let u=1;u<r.length;u++){let l=r[u];if(l.startsWith(Ad)){let f=u,p=r[++u];if(p===void 0)throw new Error("Incorrect M3U8 file; a line must follow the #EXT-X-STREAM-INF tag.");let h=XA(e,p),y=new Sr(l.slice(Ad.length));if(y.getAsNumber("bandwidth")===null)throw new Error("Invalid M3U8 file; #EXT-X-STREAM-INF tag requires a BANDWIDTH attribute with a valid numerical value.");n.push({fullPath:h,attributes:y,lineNumber:f,hasOnlyKeyPackets:!1})}else if(l.startsWith(rd)){let f=new Sr(l.slice(rd.length)),p=f.get("uri");if(p===null)throw new Error("Invalid M3U8 file; #EXT-X-I-FRAME-STREAM-INF tag requires a URI attribute.");if(f.getAsNumber("bandwidth")===null)throw new Error("Invalid M3U8 file; #EXT-X-I-FRAME-STREAM-INF tag requires a BANDWIDTH attribute with a valid numerical value.");let y=XA(e,p);n.push({fullPath:y,attributes:f,lineNumber:u,hasOnlyKeyPackets:!0})}else if(l.startsWith(nd)){let f=new Sr(l.slice(nd.length));if(f.get("type")===null)throw new Error("Invalid M3U8 file; #EXT-X-MEDIA tag requires a TYPE attribute.");if(f.get("group-id")===null)throw new Error("Invalid M3U8 file; #EXT-X-MEDIA tag requires a GROUP-ID attribute.");let y=null,w=f.get("uri");w!==null&&(y=XA(e,w)),a.push({fullPath:y,attributes:f,lineNumber:u})}else if(l!==Sw){if(l.startsWith(Ls)){let f=new Ws(this,e,null,r);this.segmentedInputs=[f],this.hasMasterPlaylist=!1,this.trackBackings=await f.getTrackBackings();return}}}let i=[...new Set(a.filter(u=>u.attributes.get("type").toLowerCase()==="video").map(u=>u.attributes.get("group-id")))],s=[...new Set(a.filter(u=>u.attributes.get("type").toLowerCase()==="audio").map(u=>u.attributes.get("group-id")))],o=await Promise.all(n.map(async(u,l)=>{let f=[],p=u.attributes.get("codecs"),h;if(p)h=p.split(",").map(M=>M.trim());else{let N=await this.getSegmentedInputForPath(u.fullPath).getTrackBackings(),V=await Promise.all(N.map(async F=>({track:F,codec:await F.getCodec()})));h=await Promise.all(V.filter(F=>F.codec!==null).map(F=>F.track.getDecoderConfig().then(K=>K.codec)))}let y=u.attributes.get("video"),w=u.attributes.get("audio"),D=h.some(M=>_t.includes(Vr(M))),b=h.some(M=>tr.includes(Vr(M)));if(y!==null&&!D){if(!i.includes(y))throw new Error(`Invalid M3U8 file; variant stream references video group "${y}" which is not defined in any #EXT-X-MEDIA tags.`);let M=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===y&&F.toLowerCase()==="video"});e:if(M){let N=M.attributes.get("uri");if(N===null)break e;let V=XA(e,N),L=(await this.getSegmentedInputForPath(V).getTrackBackings()).find(W=>W.getType()==="video");if(!L||await L.getCodec()===null)break e;let _=await L.getDecoderConfig().then(W=>W?.codec??null);C(_!==null),h.push(_)}}if(w!==null&&!b){if(!s.includes(w))throw new Error(`Invalid M3U8 file; variant stream references audio group "${w}" which is not defined in any #EXT-X-MEDIA tags.`);let M=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===w&&F.toLowerCase()==="audio"});e:if(M){let N=M.attributes.get("uri");if(N===null)break e;let V=XA(e,N),L=(await this.getSegmentedInputForPath(V).getTrackBackings()).find(W=>W.getType()==="audio");if(!L||await L.getCodec()===null)break e;let _=await L.getDecoderConfig().then(W=>W?.codec??null);C(_!==null),h.push(_)}}h=[...new Set(h)];let E=null,x=null,S=u.attributes.getAsNumber("bandwidth");C(S!==null);let k=u.attributes.getAsNumber("average-bandwidth"),R=u.attributes.get("name");for(let M of h){let N=Vr(M);if(N!==null){if(_t.includes(N)){if(E!==null)throw new Error("Unsupported M3U8 file; multiple video codecs found in the CODECS attribute of a variant stream.");E=M;let V=u.attributes.get("video");if(V===null){let F=u.attributes.get("resolution"),K=null,L=null;if(F){let _=F.match(/^(\d+)x(\d+)$/);_&&(K=Number(_[1]),L=Number(_[2]))}f.push({id:-1,demuxer:this,backingTrack:null,default:!0,autoselect:!0,languageCode:Xe,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:E,pairingMask:1n<<BigInt(l),peakBitrate:S,averageBitrate:k,name:R,hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:K,height:L}})}else{if(!i.includes(V))throw new Error(`Invalid M3U8 file; variant stream references video group "${V}" which is not defined in any #EXT-X-MEDIA tags.`);for(let F of a){let K=F.attributes.get("group-id"),L=F.attributes.get("type");if(K!==V||L.toLowerCase()!=="video")continue;let _=F.attributes.get("resolution")??u.attributes.get("resolution"),W=null,pe=null;if(_){let Ae=_.match(/^(\d+)x(\d+)$/);Ae&&(W=Number(Ae[1]),pe=Number(Ae[2]))}f.push({id:-1,demuxer:this,backingTrack:null,default:au(F.attributes),autoselect:au(F.attributes)||_w(F.attributes),languageCode:Mw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:E,pairingMask:1n<<BigInt(l),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:W,height:pe}})}}}else if(tr.includes(N)){if(x!==null)throw new Error("Unsupported M3U8 file; multiple audio codecs found in the CODECS attribute of a variant stream.");x=M;let V=u.attributes.get("audio");if(V===null){let F=u.attributes.get("channels"),K=F!==null?Number(F.split("/")[0]):null;f.push({id:-1,demuxer:this,backingTrack:null,default:!0,autoselect:!0,languageCode:Xe,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:x,pairingMask:1n<<BigInt(l),peakBitrate:S,averageBitrate:k,name:R,hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"audio",numberOfChannels:K!==null&&Number.isInteger(K)&&K>0?K:null}})}else{if(!s.includes(V))throw new Error(`Invalid M3U8 file; variant stream references audio group "${V}" which is not defined in any #EXT-X-MEDIA tags.`);for(let F of a){let K=F.attributes.get("group-id"),L=F.attributes.get("type");if(K!==V||L.toLowerCase()!=="audio")continue;let _=F.attributes.get("channels")??u.attributes.get("channels"),W=_!==null?Number(_.split("/")[0]):null;f.push({id:-1,demuxer:this,backingTrack:null,default:au(F.attributes),autoselect:au(F.attributes)||_w(F.attributes),languageCode:Mw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:x,pairingMask:1n<<BigInt(l),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"audio",numberOfChannels:W!==null&&Number.isInteger(W)&&W>0?W:null}})}}}}}return f})),c=[],g=u=>{let l=c.find(f=>f.fullPath===u.fullPath&&f.info.type===u.info.type);l?(l.pairingMask|=u.pairingMask,l.default||=u.default,l.autoselect||=u.autoselect,l.lineNumber=Math.min(l.lineNumber,u.lineNumber),u.peakBitrate!==null&&(l.peakBitrate=Math.max(l.peakBitrate??-1/0,u.peakBitrate)),u.averageBitrate!==null&&(l.averageBitrate=Math.max(l.averageBitrate??-1/0,u.averageBitrate)),l.languageCode===Xe&&(l.languageCode=u.languageCode)):(u.id=c.length+1,c.push(u))};for(let u of o)for(let l of u)g(l);c.sort((u,l)=>u.lineNumber-l.lineNumber),this.trackBackings=[];for(let u of c)u.info.type==="video"?this.trackBackings.push(new cu(u)):this.trackBackings.push(new uu(u));this.internalTracks=c})()}async getTrackBackings(){return await this.readMetadata(),C(this.trackBackings),this.trackBackings}getSegmentedInputForPath(e){let A=this.segmentedInputs.find(n=>n.path===e);if(A)return A;let r=null;return this.internalTracks&&(r=this.internalTracks.filter(a=>a.fullPath===e).map(a=>({id:a.id,type:a.info.type}))),A=new Ws(this,e,r,null),this.segmentedInputs.push(A),A}async getMetadataTags(){return{}}async getMimeType(){return Jc}dispose(){if(this.segmentedInputs){for(let e of this.segmentedInputs)e.dispose();this.segmentedInputs.length=0}}},ou=class{constructor(e){this.internalTrack=e,this.hydrationPromise=null}hydrate(){return this.hydrationPromise??=(async()=>{let e=this.internalTrack.demuxer.getSegmentedInputForPath(this.internalTrack.fullPath),A=null,n=(await e.getTrackBackings()).filter(a=>a.getType()===this.getType());if(n.length===1)A=n[0];else if(this instanceof cu){for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}else{C(this instanceof uu);for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}if(!A)throw new Error("Could not find matching track in underlying media data.");this.internalTrack.backingTrack=A})()}delegate(e){return this.internalTrack.backingTrack?e():this.hydrate().then(e)}getCodec(){throw new Error("Not implemented on base class.")}getDisposition(){return{...Ct,default:this.internalTrack.autoselect,primary:this.internalTrack.default}}getId(){return this.internalTrack.id}getPairingMask(){return this.internalTrack.pairingMask}getInternalCodecId(){return null}getLanguageCode(){return this.internalTrack.languageCode}getName(){return this.internalTrack.name}getNumber(){C(this.internalTrack.demuxer.internalTracks);let e=this.internalTrack.info.type,A=0;for(let r of this.internalTrack.demuxer.internalTracks)if(r.info.type===e&&A++,r===this.internalTrack)break;return A}getTimeResolution(){return this.delegate(()=>this.internalTrack.backingTrack.getTimeResolution())}isRelativeToUnixEpoch(){return this.delegate(()=>this.internalTrack.backingTrack.isRelativeToUnixEpoch())}getBitrate(){return this.internalTrack.peakBitrate}getAverageBitrate(){return this.internalTrack.averageBitrate}async getDurationFromMetadata(e){return await this.hydrate(),this.internalTrack.backingTrack.getDurationFromMetadata(e)}async getLiveRefreshInterval(){return await this.hydrate(),this.internalTrack.backingTrack.getLiveRefreshInterval()}getHasOnlyKeyPackets(){return this.internalTrack.hasOnlyKeyPackets||null}async getFirstPacket(e){return await this.hydrate(),this.internalTrack.backingTrack.getFirstPacket(e)}async getPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getPacket(e,A)}async getKeyPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getKeyPacket(e,A)}async getNextPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getNextPacket(e,A)}async getNextKeyPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getNextKeyPacket(e,A)}},cu=class extends ou{constructor(e){super(e)}get backingVideoTrack(){return this.internalTrack.backingTrack}getType(){return"video"}getCodec(){return Vr(this.internalTrack.fullCodecString)}getCodedWidth(){return this.delegate(()=>this.backingVideoTrack.getCodedWidth())}getCodedHeight(){return this.delegate(()=>this.backingVideoTrack.getCodedHeight())}getSquarePixelWidth(){return this.delegate(()=>this.backingVideoTrack.getSquarePixelWidth())}getSquarePixelHeight(){return this.delegate(()=>this.backingVideoTrack.getSquarePixelHeight())}getMetadataDisplayWidth(){return this.backingVideoTrack?null:this.internalTrack.info.width}getMetadataDisplayHeight(){return this.backingVideoTrack?null:this.internalTrack.info.height}getRotation(){return this.delegate(()=>this.backingVideoTrack.getRotation())}async getColorSpace(){return await this.hydrate(),this.backingVideoTrack.getColorSpace()}async canBeTransparent(){return await this.hydrate(),this.backingVideoTrack.canBeTransparent()}getMetadataCodecParameterString(){return this.backingVideoTrack?null:this.internalTrack.fullCodecString}async getDecoderConfig(){return await this.hydrate(),this.backingVideoTrack.getDecoderConfig()}},uu=class extends ou{constructor(e){super(e)}get backingAudioTrack(){return this.internalTrack.backingTrack}getType(){return"audio"}getCodec(){return Vr(this.internalTrack.fullCodecString)}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels!==null?this.internalTrack.info.numberOfChannels:this.delegate(()=>this.backingAudioTrack.getNumberOfChannels())}getSampleRate(){return this.delegate(()=>this.backingAudioTrack.getSampleRate())}getMetadataCodecParameterString(){return this.backingAudioTrack?null:this.internalTrack.fullCodecString}async getDecoderConfig(){return await this.hydrate(),this.backingAudioTrack.getDecoderConfig()}},au=t=>{let e=t.get("default");if(e===null)return!1;let A=e.toUpperCase();if(A==="YES")return!0;if(A==="NO")return!1;throw new Error(`Invalid M3U8 file; #EXT-X-MEDIA DEFAULT attribute must be YES or NO, got "${e}".`)},_w=t=>{let e=t.get("autoselect");if(e===null)return!1;let A=e.toUpperCase();if(A==="YES")return!0;if(A==="NO")return!1;throw new Error(`Invalid M3U8 file; #EXT-X-MEDIA AUTOSELECT attribute must be YES or NO, got "${e}".`)},Mw=t=>{if(t===null)return Xe;let e=t.split("-")[0];return e||Xe};var jt=class{constructor(){this._isIsobmff=!1}},Zs=class extends jt{constructor(){super(...arguments),this._isIsobmff=!0}async _getMajorBrand(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return null;A.skip(4);let r=Le(A,4);return r!=="ftyp"&&r!=="styp"?null:Le(A,4)}_createDemuxer(e){return new Oc(e)}},gu=class extends Zs{async _canReadInput(e){let A=await this._getMajorBrand(e);if(A!==null)return A!=="qt ";let r=e._reader.requestSlice(4,4);if(r instanceof Promise&&(r=await r),!r)return!1;let n=Le(r,4);return n==="moof"||n==="sidx"}get name(){return"MP4"}get mimeType(){return"video/mp4"}},lu=class extends Zs{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},$s=class extends jt{async isSupportedEBMLOfDocType(e,A){let r=e._reader.requestSlice(0,vA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=zl(r);if(n===null||n<1||n>8||be(r,n)!==j.EBML)return!1;let i=Nl(r);if(typeof i!="number")return!1;let s=e._reader.requestSlice(r.filePos,i);if(s instanceof Promise&&(s=await s),!s)return!1;let o=r.filePos;for(;s.filePos<=o+i-qt;){let c=OA(s);if(!c)break;let{id:g,size:u}=c,l=s.filePos;if(u===void 0)return!1;switch(g){case j.EBMLVersion:if(be(s,u)!==1)return!1;break;case j.EBMLReadVersion:if(be(s,u)!==1)return!1;break;case j.DocType:if(Xr(s,u)!==A)return!1;break;case j.DocTypeVersion:if(be(s,u)>4)return!1;break}s.filePos=l+u}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Uc(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},du=class extends $s{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},fu=class extends jt{async _canReadInput(e){let A=0;for(;;){let u=e._reader.requestSlice(A,eA);if(u instanceof Promise&&(u=await u),!u)break;let l=_A(u);if(!l)break;A=u.filePos+l.size}let r=await Ns(e._reader,A,A+4096);if(!r)return!1;let n=r.header,a=wc(n.mpegVersionId,n.channel),i=e._reader.requestSlice(r.startPos+a,4);if(i instanceof Promise&&(i=await i),!i)return!1;let s=J(i);if(s===hc||s===pc)return!0;A=r.startPos+r.header.totalSize;let c=await Ns(e._reader,A,A+4);if(!c)return!1;let g=c.header;return!(n.channel!==g.channel||n.sampleRate!==g.sampleRate)}_createDemuxer(e){return new Lc(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},mu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return!1;let r=Le(A,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(A.skip(4),Le(A,4)==="WAVE")}_createDemuxer(e){return new Vc(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},hu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?Le(A,4)==="OggS":!1}_createDemuxer(e){return new jc(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},pu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?Le(A,4)==="fLaC":!1}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new Wc(e)}},wu=class extends jt{async _canReadInput(e){let A=0;for(;;){let i=e._reader.requestSlice(A,eA);if(i instanceof Promise&&(i=await i),!i)break;let s=_A(i);if(!s)break;A=i.filePos+s.size}let r=e._reader.requestSliceRange(A,Mn,MA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=RA(r);if(!n||(A+=n.frameLength,r=e._reader.requestSliceRange(A,Mn,MA),r instanceof Promise&&(r=await r),!r))return!1;let a=RA(r);return a?n.objectType===a.objectType&&n.samplingFrequencyIndex===a.samplingFrequencyIndex&&n.channelConfiguration===a.channelConfiguration:!1}_createDemuxer(e){return new Kc(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},Bu=class extends jt{async _canReadInput(e){let A=205,r=e._reader.requestSlice(0,A);if(r instanceof Promise&&(r=await r),!r)return!1;let n=te(r,A);return n[0]===71&&n[188]===71||n[0]===71&&n[204]===71?!0:n[4]===71&&n[196]===71}_createDemuxer(e){return new Zc(e)}get name(){return"MPEG Transport Stream"}get mimeType(){return"video/MP2T"}},ta=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,7);if(A instanceof Promise&&(A=await A),!A||!(Le(A,7)==="#EXTM3U"))return!1;if(!(e._rootSource instanceof Ar))throw new TypeError("HLS inputs require `InputOptions.source` to be a PathedSource or a ref to one.");return e._rootSource._usedForHls=!0,!0}_createDemuxer(e){return new su(e)}get name(){return"HTTP Live Streaming (HLS)"}get mimeType(){return Jc}},Rw=new gu,Qw=new lu,Fw=new $s,zw=new du,Nw=new fu,Hw=new mu,Uw=new hu,qw=new wu,Lw=new pu,jw=new Bu,Vw=new ta,hd=[Vw,Rw,Qw,Fw,zw,Hw,Uw,Lw,Nw,qw,jw];var Kw=(t,e)=>{if(!t||typeof t!="object")throw new TypeError(`${e}, when provided, must be an object.`);if(t.isobmff!==void 0){if(!t.isobmff||typeof t.isobmff!="object")throw new TypeError(`${e}.isobmff, when provided, must be an object.`);if(t.isobmff.resolveKeyId!==void 0&&typeof t.isobmff.resolveKeyId!="function")throw new TypeError(`${e}.isobmff.resolveKeyId, when provided, must be a function.`)}};var DC=function(t,e,A){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var r,n;if(A){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],A&&(n=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");n&&(r=function(){try{n.call(this)}catch(a){return Promise.reject(a)}}),t.stack.push({value:e,dispose:r,async:A})}else A&&t.stack.push({async:!0});return e},CC=function(t){return function(e){function A(i){e.error=e.hasError?new t(i,e.error,"An error was suppressed during disposal."):i,e.hasError=!0}var r,n=0;function a(){for(;r=e.stack.pop();)try{if(!r.async&&n===1)return n=0,e.stack.push(r),Promise.resolve().then(a);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(a,function(s){return A(s),a()})}else n|=1}catch(s){A(s)}if(n===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return a()}}(typeof SuppressedError=="function"?SuppressedError:function(t,e,A){var r=new Error(A);return r.name="SuppressedError",r.error=t,r.suppressed=e,r});_i();var Ww=-1/0,Zw=-1/0,pd=null;typeof FinalizationRegistry<"u"&&(pd=new FinalizationRegistry(t=>{let e=performance.now();t.type==="video"?(e-Ww>=1e3&&(console.error("A VideoSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your VideoSamples as soon as you're done using them."),Ww=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-Zw>=1e3&&(console.error("An AudioSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your AudioSamples as soon as you're done using them."),Zw=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var Yr=class{constructor(){this._referenceCount=0,this._lastAllocationBuffer=null}},wd=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],bC=new Set(wd),QA=class t{get codedWidth(){return this.visibleRect.width}get codedHeight(){return this.visibleRect.height}get displayWidth(){return this.rotation%180===0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this.rotation%180===0?this.squarePixelHeight:this.squarePixelWidth}get microsecondTimestamp(){return Math.trunc(qr*this.timestamp)}get microsecondDuration(){return Math.trunc(qr*this.duration)}get hasAlpha(){return this.format&&this.format.includes("A")}constructor(e,A){if(this._closed=!1,e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e)){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.format===void 0||!bC.has(A.format))throw new TypeError("init.format must be one of: "+wd.join(", "));if(!Number.isInteger(A.codedWidth)||A.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(A.codedHeight)||A.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(A.layout!==void 0){if(!Array.isArray(A.layout))throw new TypeError("init.layout, when provided, must be an array.");for(let n of A.layout){if(!n||typeof n!="object"||Array.isArray(n))throw new TypeError("Each entry in init.layout must be an object.");if(!Number.isInteger(n.offset)||n.offset<0)throw new TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(n.stride)||n.stride<0)throw new TypeError("plane.stride must be a non-negative integer.")}}if(A.visibleRect!==void 0&&kl(A.visibleRect,"init.visibleRect"),A.displayWidth!==void 0&&(!Number.isInteger(A.displayWidth)||A.displayWidth<=0))throw new TypeError("init.displayWidth, when provided, must be a positive integer.");if(A.displayHeight!==void 0&&(!Number.isInteger(A.displayHeight)||A.displayHeight<=0))throw new TypeError("init.displayHeight, when provided, must be a positive integer.");if(A.displayWidth!==void 0!=(A.displayHeight!==void 0))throw new TypeError("init.displayWidth and init.displayHeight must be either both provided or both omitted.");this._data=A._doNotCopy?ft(e):ft(e).slice(),this._layout=A.layout??kC(A.format,A.codedWidth,A.codedHeight),this.format=A.format,this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0;let r=A.colorSpace??null;r===null&&(this.format==="RGBA"||this.format==="RGBX"||this.format==="BGRA"||this.format==="BGRX"?r={primaries:"bt709",transfer:"iec61966-2-1",matrix:"rgb",fullRange:!0}:r={primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),this.colorSpace=new eo(r),this.visibleRect={left:A.visibleRect?.left??0,top:A.visibleRect?.top??0,width:A.visibleRect?.width??A.codedWidth,height:A.visibleRect?.height??A.codedHeight},A.displayWidth!==void 0?(this.squarePixelWidth=this.rotation%180===0?A.displayWidth:A.displayHeight,this.squarePixelHeight=this.rotation%180===0?A.displayHeight:A.displayWidth):(this.squarePixelWidth=this.visibleRect.width,this.squarePixelHeight=this.visibleRect.height)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(A?.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(A?.timestamp!==void 0&&!Number.isFinite(A?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(A?.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");A?.visibleRect!==void 0&&kl(A.visibleRect,"init.visibleRect"),this._data=e,this._layout=null,this.format=e.format,this.visibleRect={left:e.visibleRect?.x??0,top:e.visibleRect?.y??0,width:e.visibleRect?.width??e.codedWidth,height:e.visibleRect?.height??e.codedHeight},this.rotation=A?.rotation??0,this.squarePixelWidth=e.displayWidth,this.squarePixelHeight=e.displayHeight,this.timestamp=A?.timestamp??e.timestamp/1e6,this.duration=A?.duration??(e.duration??0)/1e6,this.colorSpace=new eo(e.colorSpace)}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new t(new VideoFrame(e,{timestamp:Math.trunc(A.timestamp*qr),duration:Math.trunc((A.duration??0)*qr)||void 0}),A);let r=0,n=0;if("naturalWidth"in e?(r=e.naturalWidth,n=e.naturalHeight):"videoWidth"in e?(r=e.videoWidth,n=e.videoHeight):"width"in e&&(r=Number(e.width),n=Number(e.height)),!r||!n)throw new TypeError("Could not determine dimensions.");let a=new OffscreenCanvas(r,n),i=a.getContext("2d",{alpha:Cs(),willReadFrequently:!0});if(!i)throw new Error("OffscreenCanvas must have support for the '2d' context in order to create a VideoSample from this data.");i.drawImage(e,0,0),this._data=a,this._layout=null,this.format="RGBX",this.visibleRect={left:0,top:0,width:r,height:n},this.squarePixelWidth=r,this.squarePixelHeight=n,this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0,this.colorSpace=new eo({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else if(e instanceof Yr){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(this._data=e,e._referenceCount++,this.format=e.getFormat(),this.format!==null&&!wd.includes(this.format))throw new TypeError("getFormat() must return a VideoSamplePixelFormat or null.");if(this.visibleRect={left:0,top:0,width:e.getCodedWidth(),height:e.getCodedHeight()},!Number.isInteger(this.visibleRect.width)||this.visibleRect.width<=0)throw new TypeError("getCodedWidth() must return a positive integer.");if(!Number.isInteger(this.visibleRect.height)||this.visibleRect.height<=0)throw new TypeError("getCodedHeight() must return a positive integer.");if(this.squarePixelWidth=e.getSquarePixelWidth(),!Number.isInteger(this.squarePixelWidth)||this.squarePixelWidth<=0)throw new TypeError("getSquarePixelWidth() must return a positive integer.");if(this.squarePixelHeight=e.getSquarePixelHeight(),!Number.isInteger(this.squarePixelHeight)||this.squarePixelHeight<=0)throw new TypeError("getSquarePixelHeight() must return a positive integer.");this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0,this.colorSpace=e.getColorSpace()}else throw new TypeError("Invalid data type: Must be a BufferSource, CanvasImageSource, or VideoSampleResource.");this.encodeOptions=A?.encodeOptions??{},this.pixelAspectRatio=Sn({num:this.squarePixelWidth*this.codedHeight,den:this.squarePixelHeight*this.codedWidth}),pd?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw new Error("VideoSample is closed.");return C(this._data!==null),this._data instanceof Yr?new t(this._data,{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):Xs(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):this._data instanceof Uint8Array?(C(this._layout),new t(this._data,{format:this.format,layout:this._layout,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight,encodeOptions:this.encodeOptions,_doNotCopy:!0})):new t(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight,encodeOptions:this.encodeOptions})}close(){this._closed||(pd?.unregister(this),this._data instanceof Yr?(this._data._referenceCount--,this._data._referenceCount===0&&this._data.close()):Xs(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(Jw(e),this._closed)throw new Error("VideoSample is closed.");if((e.format??this.format)==null)throw new Error("Cannot get allocation size when format is null.");return Xs(this._data)?this._data.allocationSize(e):Xw(this,e).allocationSize}async copyTo(e,A={}){if(!Ps(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(Jw(A),this._closed)throw new Error("VideoSample is closed.");if((A.format??this.format)==null)throw new Error("Cannot copy video sample data when format is null.");if(C(this._data!==null),Xs(this._data))return this._data.copyTo(e,A);if(A.format&&!["RGBA","RGBX","BGRA","BGRX"].includes(this.format)&&["RGBA","RGBX","BGRA","BGRX"].includes(A.format))if(this._data instanceof Yr){let c={stack:[],error:void 0,hasError:!1};try{let g=DC(c,await this._data.toRgbSample({timestamp:this.timestamp,duration:this.duration,rotation:this.rotation},A.colorSpace??"srgb"),!1);if(!(g instanceof t))throw new TypeError("toRgbSample() must return a VideoSample.");if(!["RGBA","RGBX","BGRA","BGRX"].includes(g.format))throw new Error(`Sample returned by toRgbSample was expected to have an RGB format, got '${g.format}' instead.`);return await g.copyTo(e,A)}catch(g){c.error=g,c.hasError=!0}finally{CC(c)}}else{if(typeof VideoFrame>"u")throw new Error("For this sample, converting from a non-RGB to an RGB format requires VideoFrame to be defined.");let c=this.toVideoFrame(),g=await c.copyTo(e,A);return c.close(),g}let r=Xw(this,A);C(this.format);let n=ft(e);if(n.byteLength<r.allocationSize)throw new TypeError(`Destination buffer too small. Required: ${r.allocationSize}, Available: ${n.byteLength}`);let a=Pu(this.format),i;if(this._data instanceof Yr){let c=this._data.getDataPlanes();if(c instanceof Promise&&(c=await c),!Array.isArray(c)||c.some(g=>!(g.data instanceof Uint8Array)||!Number.isInteger(g.stride)||g.stride<0))throw new TypeError('getDataPlanes() must return an array of objects with a Uint8Array "data" property and a non-negative integer "stride" property.');i=c}else if(this._data instanceof Uint8Array)C(this._layout),C(this._layout.length===a.length),i=this._layout.map((c,g)=>{let u=Math.ceil(this.codedHeight/a[g].heightDivisor);return{data:this._data.subarray(c.offset,c.offset+c.stride*u),stride:c.stride}});else{let g=this._data.getContext("2d");C(g);let u=g.getImageData(0,0,this.codedWidth,this.codedHeight);i=[{data:ft(u.data),stride:4*this.codedWidth}]}let s=[],o=a.length;for(let c=0;c<o;c++){let g=r.computedLayouts[c],u=i[c].stride,l=i[c].data,f=g.sourceTop*u;f+=g.sourceLeftBytes;let p=g.destinationOffset,h=g.sourceWidthBytes,y={offset:p,stride:g.destinationStride};for(let w=0;w<g.sourceHeight;w++){if(f+h>l.byteLength)throw new Error("Source buffer OOB read.");if(p+h>n.byteLength)throw new Error("Destination buffer OOB write.");let D=l.subarray(f,f+h);n.set(D,p),f+=u,p+=g.destinationStride}s.push(y)}if(A.format!==void 0){let c=this.format.startsWith("RGB")!==A.format.startsWith("RGB"),g=this.format.includes("X")&&A.format.includes("A");if(c||g)for(let u=0;u<r.allocationSize;u+=4){if(c){let l=n[u],f=n[u+2];n[u]=f,n[u+2]=l}g&&(n[u+3]=255)}}return s}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");if(C(this._data!==null),this._data instanceof Yr){if(this.format===null)throw new Error("Cannot convert a VideoSampleResource-backed VideoSample to VideoFrame if format is null.");let e=this._data.getDataPlanes();if(e instanceof Promise)throw new Error("Cannot convert a VideoSampleResource-backed VideoSample to VideoFrame if getDataPlanes() returns a promise.");let A=e.reduce((i,s)=>i+s.data.byteLength,0),r=new Uint8Array(A),n=0,a=[];for(let i of e)r.set(i.data,n),a.push(n),n+=i.data.byteLength;return new VideoFrame(r,{format:this.format,layout:e.map((i,s)=>({offset:a[s],stride:i.stride})),codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace,displayWidth:this.squarePixelWidth,displayHeight:this.squarePixelHeight})}else return Xs(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0,colorSpace:this.colorSpace,displayWidth:this.squarePixelWidth,displayHeight:this.squarePixelHeight}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0})}draw(e,A,r,n,a,i,s,o,c){let g=0,u=0,l=this.displayWidth,f=this.displayHeight,p=0,h=0,y=this.displayWidth,w=this.displayHeight;if(i!==void 0?(g=A,u=r,l=n,f=a,p=i,h=s,o!==void 0?(y=o,w=c):(y=l,w=f)):(p=A,h=r,n!==void 0&&(y=n,w=a)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(g))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(l)||l<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(p))throw new TypeError("dx must be a number.");if(!Number.isFinite(h))throw new TypeError("dy must be a number.");if(!Number.isFinite(y)||y<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(w)||w<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");({sx:g,sy:u,sWidth:l,sHeight:f}=this._rotateSourceRegion(g,u,l,f,this.rotation));let D=this.toCanvasImageSource();e.save();let b=p+y/2,E=h+w/2;e.translate(b,E),e.rotate(this.rotation*Math.PI/180);let x=this.rotation%180===0?1:y/w;e.scale(1/x,x),e.drawImage(D,g,u,l,f,-y/2,-w/2,y,w),e.restore()}drawWithFit(e,A){if(!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(!["fill","contain","cover"].includes(A.fit))throw new TypeError("options.fit must be 'fill', 'contain', or 'cover'.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180, or 270.");A.crop!==void 0&&to(A.crop,"options.");let r=e.canvas.width,n=e.canvas.height,a=A.rotation??this.rotation,[i,s]=a%180===0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth],o=A.crop;o&&(o=Bd(o,i,s));let c,g,u,l,{sx:f,sy:p,sWidth:h,sHeight:y}=this._rotateSourceRegion(A.crop?.left??0,A.crop?.top??0,A.crop?.width??i,A.crop?.height??s,a);if(A.fit==="fill")c=0,g=0,u=r,l=n;else{let[D,b]=A.crop?[A.crop.width,A.crop.height]:[i,s],E=A.fit==="contain"?Math.min(r/D,n/b):Math.max(r/D,n/b);u=D*E,l=b*E,c=(r-u)/2,g=(n-l)/2}e.save();let w=a%180===0?1:u/l;e.translate(r/2,n/2),e.rotate(a*Math.PI/180),e.scale(1/w,w),e.translate(-r/2,-n/2),e.drawImage(this.toCanvasImageSource(),f,p,h,y,c,g,u,l),e.restore()}_rotateSourceRegion(e,A,r,n,a){return a===90?[e,A,r,n]=[A,this.squarePixelHeight-e-r,n,r]:a===180?[e,A]=[this.squarePixelWidth-e-r,this.squarePixelHeight-A-n]:a===270&&([e,A,r,n]=[this.squarePixelWidth-A-n,e,n,r]),{sx:e,sy:A,sWidth:r,sHeight:n}}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(C(this._data!==null),this._data instanceof Yr||this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}async transform(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.width!==void 0&&(!Number.isInteger(e.width)||e.width<=0))throw new TypeError("options.width, when provided, must be a positive integer.");if(e.height!==void 0&&(!Number.isInteger(e.height)||e.height<=0))throw new TypeError("options.height, when provided, must be a positive integer.");if(e.roundDimensionsTo!==void 0&&(!Number.isInteger(e.roundDimensionsTo)||e.roundDimensionsTo<=0))throw new TypeError("options.roundDimensionsTo, when provided, must be a positive integer.");if(e.fit!==void 0&&!["fill","contain","cover"].includes(e.fit))throw new TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(e.width!==void 0&&e.height!==void 0&&e.fit===void 0)throw new TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(e.rotate!==void 0&&![0,90,180,270].includes(e.rotate))throw new TypeError("options.rotate, when provided, must be 0, 90, 180 or 270.");if(e.crop!==void 0&&to(e.crop,"options."),e.alpha!==void 0&&!["keep","discard"].includes(e.alpha))throw new TypeError("options.alpha, when provided, must be 'keep' or 'discard'.");let A=Yi(this.rotation+(e.rotate??0)),[r,n]=A%180===0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth],a=e.crop;a&&(a=Bd(a,r,n));let i=a?a.width:r,s=a?a.height:n,o=i/s,c,g;e.width!==void 0&&e.height===void 0?(c=e.width,g=c/o):e.width===void 0&&e.height!==void 0?(g=e.height,c=g*o):e.width!==void 0&&e.height!==void 0?(c=e.width,g=e.height):(c=i,g=s),c=Is(c,e.roundDimensionsTo??1),g=Is(g,e.roundDimensionsTo??1);let u={width:c,height:g,fit:e.fit??"fill",rotation:A,crop:a??{left:0,top:0,width:r,height:n},alpha:e.alpha??"keep"};for(let h of EC){let y=h(this,u);if(y instanceof Promise&&(y=await y),y!==null)return y}let l=null,f=!1;for(let h of Js)if(h.canvas.width===u.width&&h.canvas.height===u.height){l=h.canvas,h.age=$w++;break}if(l===null){if(typeof OffscreenCanvas<"u")l=new OffscreenCanvas(u.width,u.height);else{if(typeof window>"u"||typeof document>"u")throw new Error("Cannot transform VideoSamples in this environment. Either run in an environment with OffscreenCanvas or HTMLCanvasElement, or supply a custom VideoSample transformer using registerVideoSampleTransformer().");l=document.createElement("canvas"),l.width=u.width,l.height=u.height}f=!0,Js.length>=TC&&Js.splice(Mi(Js,h=>h.age),1),Js.push({canvas:l,age:$w++})}let p=l.getContext("2d",{alpha:!0});if(!p)throw new Error("The '2d' canvas context is required to transform VideoSamples. Register a custom transformer using registerVideoSampleTransformer to work around this limitation.");return u.alpha==="discard"?(p.fillStyle="black",p.fillRect(0,0,u.width,u.height)):f||p.clearRect(0,0,u.width,u.height),this.drawWithFit(p,{fit:u.fit,rotation:u.rotation,crop:u.crop}),new t(l,{timestamp:this.timestamp,duration:this.duration,rotation:0})}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}setEncodeOptions(e){if(!e||typeof e!="object")throw new TypeError("newEncodeOptions must be an object.");this.encodeOptions=e}[Symbol.dispose](){this.close()}},EC=[];var TC=3,Js=[],$w=0,eo=class{constructor(e){if(e!==void 0){if(!e||typeof e!="object")throw new TypeError("init.colorSpace, when provided, must be an object.");let A=Object.keys(mr);if(e.primaries!=null&&!A.includes(e.primaries))throw new TypeError(`init.colorSpace.primaries, when provided, must be one of ${A.join(", ")}.`);let r=Object.keys(hr);if(e.transfer!=null&&!r.includes(e.transfer))throw new TypeError(`init.colorSpace.transfer, when provided, must be one of ${r.join(", ")}.`);let n=Object.keys(pr);if(e.matrix!=null&&!n.includes(e.matrix))throw new TypeError(`init.colorSpace.matrix, when provided, must be one of ${n.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("init.colorSpace.fullRange, when provided, must be a boolean.")}this.primaries=e?.primaries??null,this.transfer=e?.transfer??null,this.matrix=e?.matrix??null,this.fullRange=e?.fullRange??null}toJSON(){return{primaries:this.primaries,transfer:this.transfer,matrix:this.matrix,fullRange:this.fullRange}}},Xs=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Bd=(t,e,A)=>{let r=Math.min(t.left,e),n=Math.min(t.top,A),a=Math.min(t.width,e-r),i=Math.min(t.height,A-n);return C(a>=0),C(i>=0),{left:r,top:n,width:a,height:i}},to=(t,e)=>{if(!t||typeof t!="object")throw new TypeError(e+"crop, when provided, must be an object.");if(!Number.isInteger(t.left)||t.left<0)throw new TypeError(e+"crop.left must be a non-negative integer.");if(!Number.isInteger(t.top)||t.top<0)throw new TypeError(e+"crop.top must be a non-negative integer.");if(!Number.isInteger(t.width)||t.width<0)throw new TypeError(e+"crop.width must be a non-negative integer.");if(!Number.isInteger(t.height)||t.height<0)throw new TypeError(e+"crop.height must be a non-negative integer.")},Jw=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.colorSpace!==void 0&&!["display-p3","srgb"].includes(t.colorSpace))throw new TypeError("options.colorSpace, when provided, must be 'display-p3' or 'srgb'.");if(t.format!==void 0&&typeof t.format!="string")throw new TypeError("options.format, when provided, must be a string.");if(t.layout!==void 0){if(!Array.isArray(t.layout))throw new TypeError("options.layout, when provided, must be an array.");for(let e of t.layout){if(!e||typeof e!="object")throw new TypeError("Each entry in options.layout must be an object.");if(!Number.isInteger(e.offset)||e.offset<0)throw new TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(e.stride)||e.stride<0)throw new TypeError("plane.stride must be a non-negative integer.")}}if(t.rect!==void 0){if(!t.rect||typeof t.rect!="object")throw new TypeError("options.rect, when provided, must be an object.");if(t.rect.x!==void 0&&(!Number.isInteger(t.rect.x)||t.rect.x<0))throw new TypeError("options.rect.x, when provided, must be a non-negative integer.");if(t.rect.y!==void 0&&(!Number.isInteger(t.rect.y)||t.rect.y<0))throw new TypeError("options.rect.y, when provided, must be a non-negative integer.");if(t.rect.width!==void 0&&(!Number.isInteger(t.rect.width)||t.rect.width<0))throw new TypeError("options.rect.width, when provided, must be a non-negative integer.");if(t.rect.height!==void 0&&(!Number.isInteger(t.rect.height)||t.rect.height<0))throw new TypeError("options.rect.height, when provided, must be a non-negative integer.")}},kC=(t,e,A)=>{let r=Pu(t),n=[],a=0;for(let i of r){let s=Math.ceil(e/i.widthDivisor),o=Math.ceil(A/i.heightDivisor),c=s*i.sampleBytes,g=c*o;n.push({offset:a,stride:c}),a+=g}return n},Pu=t=>{let e=(A,r,n,a,i)=>{let s=[{sampleBytes:A,widthDivisor:1,heightDivisor:1},{sampleBytes:r,widthDivisor:n,heightDivisor:a},{sampleBytes:r,widthDivisor:n,heightDivisor:a}];return i&&s.push({sampleBytes:A,widthDivisor:1,heightDivisor:1}),s};switch(t){case"I420":return e(1,1,2,2,!1);case"I420P10":case"I420P12":return e(2,2,2,2,!1);case"I420A":return e(1,1,2,2,!0);case"I420AP10":case"I420AP12":return e(2,2,2,2,!0);case"I422":return e(1,1,2,1,!1);case"I422P10":case"I422P12":return e(2,2,2,1,!1);case"I422A":return e(1,1,2,1,!0);case"I422AP10":case"I422AP12":return e(2,2,2,1,!0);case"I444":return e(1,1,1,1,!1);case"I444P10":case"I444P12":return e(2,2,1,1,!1);case"I444A":return e(1,1,1,1,!0);case"I444AP10":case"I444AP12":return e(2,2,1,1,!0);case"NV12":return[{sampleBytes:1,widthDivisor:1,heightDivisor:1},{sampleBytes:2,widthDivisor:2,heightDivisor:2}];case"RGBA":case"RGBX":case"BGRA":case"BGRX":return[{sampleBytes:4,widthDivisor:1,heightDivisor:1}];default:$t(t),C(!1)}},Xw=(t,e)=>{let A={left:0,top:0,width:t.codedWidth,height:t.codedHeight},r=e.rect,n=GC(A,r,t.codedWidth,t.codedHeight,t.format),a=e.layout,i;if(!e.format||e.format===t.format)i=t.format;else if(["RGBA","RGBX","BGRA","BGRX"].includes(e.format))i=e.format;else throw new Error("NotSupportedError: Invalid destination format.");return SC(n,i,a)},GC=(t,e,A,r,n)=>{let a={...t};if(e!==void 0){if(e.width===0||e.height===0)throw new TypeError("visibleRect dimensions cannot be zero.");if((e.x||0)+(e.width||0)>A)throw new TypeError("visibleRect exceeds codedWidth.");if((e.y||0)+(e.height||0)>r)throw new TypeError("visibleRect exceeds codedHeight.");a.x=e.x||0,a.y=e.y||0,a.width=e.width||0,a.height=e.height||0}if(!xC(n,a))throw new TypeError("visibleRect alignment is invalid for the format.");return a},xC=(t,e)=>{if(t===null)return!0;let A=Pu(t);for(let r=0;r<A.length;r++){let n=A[r],a=n.widthDivisor,i=n.heightDivisor;if((e.x||0)%a!==0||(e.y||0)%i!==0)return!1}return!0},SC=(t,e,A)=>{let r=Pu(e),n=r.length;if(A!==void 0&&A.length!==n)throw new TypeError(`Layout must have ${n} planes.`);let a=0,i=[],s=[];for(let o=0;o<n;o++){let c=r[o],g=c.sampleBytes,u=c.widthDivisor,l=c.heightDivisor,f={destinationOffset:0,destinationStride:0,sourceTop:0,sourceHeight:0,sourceLeftBytes:0,sourceWidthBytes:0};if(f.sourceTop=Math.ceil(Math.trunc(t.y||0)/l),f.sourceHeight=Math.ceil(Math.trunc(t.height||0)/l),f.sourceLeftBytes=Math.floor(Math.trunc(t.x||0)/u)*g,f.sourceWidthBytes=Math.floor(Math.trunc(t.width||0)/u)*g,A!==void 0){let y=A[o];if(y.stride<f.sourceWidthBytes)throw new TypeError(`Stride for plane ${o} is too small.`);f.destinationOffset=y.offset,f.destinationStride=y.stride}else f.destinationOffset=a,f.destinationStride=f.sourceWidthBytes;let h=f.destinationStride*f.sourceHeight+f.destinationOffset;if(h>4294967295)throw new TypeError("Allocation size exceeds limit.");s.push(h),a=Math.max(a,h);for(let y=0;y<o;y++){let w=i[y];if(!(s[o]<=w.destinationOffset||s[y]<=f.destinationOffset))throw new TypeError("Planes overlap.")}i.push(f)}return{allocationSize:a,computedLayouts:i}};var eB=new Map;var tB=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!_t.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${_t.join(", ")}.`);if(!(t.bitrate instanceof Aa)&&(!Number.isInteger(t.bitrate)||t.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(t.keyFrameInterval!==void 0&&(!Number.isFinite(t.keyFrameInterval)||t.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(t.sizeChangeBehavior!==void 0&&!["deny","passThrough","fill","contain","cover"].includes(t.sizeChangeBehavior))throw new TypeError("config.sizeChangeBehavior, when provided, must be 'deny', 'passThrough', 'fill', 'contain' or 'cover'.");if(t.transform!==void 0){if(typeof t.transform!="object"||!t.transform)throw new TypeError("config.transform, when provided, must be an object.");if(t.transform.width!==void 0&&(!Number.isInteger(t.transform.width)||t.transform.width<=0))throw new TypeError("config.transform.width, when provided, must be a positive integer.");if(t.transform.height!==void 0&&(!Number.isInteger(t.transform.height)||t.transform.height<=0))throw new TypeError("config.transform.height, when provided, must be a positive integer.");if(t.transform.fit!==void 0&&!["fill","contain","cover"].includes(t.transform.fit))throw new TypeError('config.transform.fit, when provided, must be one of "fill", "contain", or "cover".');if(t.transform.width!==void 0&&t.transform.height!==void 0&&t.transform.fit===void 0&&!["fill","contain","cover"].includes(t.sizeChangeBehavior))throw new TypeError("When both config.transform.width and config.transform.height are provided, config.transform.fit must also be provided.");if(t.transform.fit!==void 0&&["fill","contain","cover"].includes(t.sizeChangeBehavior)&&t.transform.fit!==t.sizeChangeBehavior)throw new TypeError("config.transform.fit, when provided, cannot differ from config.sizeChangeBehavior when config.sizeChangeBehavior is 'fill', 'contain' or 'cover', as sizeChangeBehavior already determines the fitting algorithm.");if(t.transform.rotate!==void 0&&![0,90,180,270].includes(t.transform.rotate))throw new TypeError("config.transform.rotate, when provided, must be 0, 90, 180 or 270.");if(t.transform.crop!==void 0&&to(t.transform.crop,"config.transform."),t.transform.process!==void 0&&typeof t.transform.process!="function")throw new TypeError("config.transform.process, when provided, must be a function.");if(t.transform.frameRate!==void 0&&(!Number.isFinite(t.transform.frameRate)||t.transform.frameRate<=0))throw new TypeError("config.transform.frameRate, when provided, must be a finite positive number.");if(t.transform.force!==void 0&&typeof t.transform.force!="boolean")throw new TypeError("config.transform.force, when provided, must be a boolean.")}if(t.onEncodedPacket!==void 0&&typeof t.onEncodedPacket!="function")throw new TypeError("config.onEncodedPacket, when provided, must be a function.");if(t.onEncoderConfig!==void 0&&typeof t.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.");AB(t.codec,t)},AB=(t,e)=>{if(!e||typeof e!="object")throw new TypeError("Encoding options must be an object.");if(e.alpha!==void 0&&!["discard","keep"].includes(e.alpha))throw new TypeError("options.alpha, when provided, must be 'discard' or 'keep'.");if(e.bitrateMode!==void 0&&!["constant","variable"].includes(e.bitrateMode))throw new TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(e.latencyMode!==void 0&&!["quality","realtime"].includes(e.latencyMode))throw new TypeError("latencyMode, when provided, must be 'quality' or 'realtime'.");if(e.fullCodecString!==void 0&&typeof e.fullCodecString!="string")throw new TypeError("fullCodecString, when provided, must be a string.");if(e.fullCodecString!==void 0&&Vr(e.fullCodecString)!==t)throw new TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${t}).`);if(e.hardwareAcceleration!==void 0&&!["no-preference","prefer-hardware","prefer-software"].includes(e.hardwareAcceleration))throw new TypeError("hardwareAcceleration, when provided, must be 'no-preference', 'prefer-hardware' or 'prefer-software'.");if(e.scalabilityMode!==void 0&&typeof e.scalabilityMode!="string")throw new TypeError("scalabilityMode, when provided, must be a string.");if(e.contentHint!==void 0&&typeof e.contentHint!="string")throw new TypeError("contentHint, when provided, must be a string.")},Pd=t=>{let e=t.bitrate instanceof Aa?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??Ep(t.codec,t.width,t.height,e),width:t.width,height:t.height,displayWidth:t.squarePixelWidth,displayHeight:t.squarePixelHeight,bitrate:e,bitrateMode:t.bitrateMode,alpha:t.alpha??"discard",framerate:t.framerate,latencyMode:t.latencyMode,hardwareAcceleration:t.hardwareAcceleration,scalabilityMode:t.scalabilityMode,contentHint:t.contentHint,...Gp(t.codec)}};var Aa=class{constructor(e){this._factor=e}_toVideoBitrate(e,A,r){let n=A*r,a={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},i=1920*1080,s=3e6,o=Math.pow(n/i,.95),u=s*o*a[e]*this._factor;return Math.ceil(u/1e3)*1e3}_toAudioBitrate(e){if(Ot.includes(e)||e==="flac")return;let r={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3,ac3:384e3,eac3:192e3}[e];if(!r)throw new Error(`Unhandled codec: ${e}`);let n=r*this._factor;return e==="aac"?n=[96e3,128e3,16e4,192e3].reduce((i,s)=>Math.abs(s-n)<Math.abs(i-n)?s:i):e==="opus"||e==="vorbis"?n=Math.max(6e3,n):e==="mp3"&&(n=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((i,s)=>Math.abs(s-n)<Math.abs(i-n)?s:i)),Math.round(n/1e3)*1e3}};var yd=async(t,e={})=>{let{width:A=1280,height:r=720,bitrate:n=1e6,...a}=e;if(!_t.includes(t))return!1;if(!Number.isInteger(A)||A<=0)throw new TypeError("width must be a positive integer.");if(!Number.isInteger(r)||r<=0)throw new TypeError("height must be a positive integer.");if(!(n instanceof Aa)&&(!Number.isInteger(n)||n<=0))throw new TypeError("bitrate must be a positive integer or a quality.");AB(t,a);let i=Pd({codec:t,width:A,height:r,bitrate:n,framerate:void 0,...a,alpha:"discard"}),s=JSON.stringify(i),o=eB.get(s);if(o)return o;let c=(async()=>yu.some(l=>l.supports(t,i))?!0:typeof VideoEncoder>"u"||(A%2===1||r%2===1)&&(t==="avc"||t==="hevc")||!(await VideoEncoder.isConfigSupported(i)).supported?!1:Cs()?new Promise(async l=>{try{let f=new VideoEncoder({output:()=>{},error:()=>l(!1)});f.configure(i);let p=new Uint8Array(A*r*4),h=new VideoFrame(p,{format:"RGBA",codedWidth:A,codedHeight:r,timestamp:0});f.encode(h),h.close(),await f.flush(),l(!0)}catch{l(!1)}}):!0)();return eB.set(s,c),c};var Iu=[],Id=[],yu=[];var Nn=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.metadataOnly!==void 0&&typeof t.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(t.verifyKeyPackets!==void 0&&typeof t.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.");if(t.skipLiveWait!==void 0&&typeof t.skipLiveWait!="boolean")throw new TypeError("options.skipLiveWait, when defined, must be a boolean.")},ra=t=>{if(!ks(t))throw new TypeError("timestamp must be a number.")},Dd=(t,e,A)=>A.verifyKeyPackets?e.then(async r=>{if(!r||r.type==="delta")return r;let n=await t.determinePacketType(r);return n&&(r.type=n),r}):e,An=class{constructor(e){if(!(e instanceof ia))throw new TypeError("track must be an InputTrack.");this._track=e}async getFirstPacket(e={}){if(Nn(e),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getFirstPacket(e),e)}async getFirstKeyPacket(e={}){Nn(e);let A=await this.getFirstPacket(e);return A?A.type==="key"?A:this.getNextKeyPacket(A,e):null}async getPacket(e,A={}){if(ra(e),Nn(A),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getPacket(e,A),A)}async getNextPacket(e,A={}){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(Nn(A),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getNextPacket(e,A),A)}async getKeyPacket(e,A={}){if(ra(e),Nn(A),this._track.input._disposed)throw new Pt;if(!A.verifyKeyPackets)return this._track._backing.getKeyPacket(e,A);let r=await this._track._backing.getKeyPacket(e,A);return r&&(C(r.type==="key"),await this._track.determinePacketType(r)==="delta"?this.getKeyPacket(r.timestamp-1/await this._track.getTimeResolution(),A):r)}async getNextKeyPacket(e,A={}){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(Nn(A),this._track.input._disposed)throw new Pt;if(!A.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,A);let r=await this._track._backing.getNextKeyPacket(e,A);return r&&(C(r.type==="key"),await this._track.determinePacketType(r)==="delta"?this.getNextKeyPacket(r,A):r)}packets(e,A,r={}){if(e!==void 0&&!(e instanceof Fe))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!r?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(A!==void 0&&!(A instanceof Fe))throw new TypeError("endPacket must be an EncodedPacket.");if(Nn(r),this._track.input._disposed)throw new Pt;let n=[],{promise:a,resolve:i}=lt(),{promise:s,resolve:o}=lt(),c=!1,g=!1,u=null,l=[],f=()=>Math.max(2,l.length);(async()=>{let h=e??await this.getFirstPacket(r);for(;h&&!g&&!this._track.input._disposed&&!(A&&h.sequenceNumber>=A?.sequenceNumber);){if(n.length>f()){({promise:s,resolve:o}=lt()),await s;continue}n.push(h),i(),{promise:a,resolve:i}=lt(),h=await this.getNextPacket(h,r)}c=!0,i()})().catch(h=>{u||(u=h,i())});let p=this._track;return{async next(){for(;;){if(p.input._disposed)throw new Pt;if(g)return{value:void 0,done:!0};if(u)throw u;if(n.length>0){let h=n.shift(),y=performance.now();for(l.push(y);l.length>0&&y-l[0]>=1e3;)l.shift();return o(),{value:h,done:!1}}else{if(c)return{value:void 0,done:!0};await a}}},async return(){return g=!0,o(),i(),{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}},Cd=class{constructor(e,A){this.onSample=e,this.onError=A}},Du=class{mediaSamplesInRange(e=-1/0,A=1/0,r){ra(e),ra(A);let n=[],a=!1,i=null,{promise:s,resolve:o}=lt(),{promise:c,resolve:g}=lt(),u=!1,l=!1,f=!1,p=null,h={...r,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let D=await this._createDecoder(R=>{if(g(),R.timestamp>=A&&(l=!0),l){R.close();return}i&&(R.timestamp>e?(n.push(i),a=!0):i.close()),R.timestamp>=e&&(n.push(R),a=!0),i=a?null:R,n.length>0&&(o(),{promise:s,resolve:o}=lt())},R=>{p||(p=R,o())}),b=this._createPacketSink(),E=await b.getKeyPacket(e,h)??await b.getFirstKeyPacket(h),x=E,k=b.packets(E??void 0,void 0,h);for(await k.next();x&&!l&&!this._track.input._disposed;){let R=rB(n.length);if(n.length+D.getDecodeQueueSize()>R){({promise:c,resolve:g}=lt()),await c;continue}D.decode(x);let M=await k.next();if(M.done)break;x=M.value}await k.return(),!f&&!this._track.input._disposed&&await D.flush(),D.close(),!a&&i&&n.push(i),u=!0,o()})().catch(D=>{p||(p=D,o())});let y=this._track,w=()=>{i?.close();for(let D of n)D.close()};return{async next(){for(;;){if(y.input._disposed)throw w(),new Pt;if(f)return{value:void 0,done:!0};if(p)throw w(),p;if(n.length>0){let D=n.shift();return g(),{value:D,done:!1}}else if(!u)await s;else return{value:void 0,done:!0}}},async return(){return f=!0,l=!0,g(),o(),w(),{value:void 0,done:!0}},async throw(D){throw D},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e,A){fp(e);let r=dp(e),n=[],a=[],{promise:i,resolve:s}=lt(),{promise:o,resolve:c}=lt(),g=!1,u=!1,l=null,f=w=>{a.push(w),s(),{promise:i,resolve:s}=lt()},p={...A,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let w=await this._createDecoder(R=>{if(c(),u){R.close();return}let M=0;for(;n.length>0&&R.timestamp-n[0]>-1e-10;)M++,n.shift();if(M>0)for(let N=0;N<M;N++)f(N<M-1?R.clone():R);else R.close()},R=>{l||(l=R,s())}),D=this._createPacketSink(),b=null,E=null,x=-1,S=async()=>{C(E);let R=E;for(w.decode(R);R.sequenceNumber<x;){let M=rB(a.length);for(;a.length+w.getDecodeQueueSize()>M&&!u;)({promise:o,resolve:c}=lt()),await o;if(u)break;let N=await D.getNextPacket(R,p);C(N),w.decode(N),R=N}x=-1},k=async()=>{await w.flush();for(let R=0;R<n.length;R++)f(null);n.length=0};for await(let R of r){if(ra(R),u||this._track.input._disposed)break;let M=await D.getPacket(R,p),N=M&&await D.getKeyPacket(R,p);if(!N){x!==-1&&(await S(),await k()),f(null),b=null;continue}b&&(N.sequenceNumber!==E.sequenceNumber||M.timestamp<b.timestamp)&&(await S(),await k()),n.push(M.timestamp),x=Math.max(M.sequenceNumber,x),b=M,E=N}!u&&!this._track.input._disposed&&(x!==-1&&await S(),await k()),w.close(),g=!0,s()})().catch(w=>{l||(l=w,s())});let h=this._track,y=()=>{for(let w of a)w?.close()};return{async next(){for(;;){if(h.input._disposed)throw y(),new Pt;if(u)return{value:void 0,done:!0};if(l)throw y(),l;if(a.length>0){let w=a.shift();return C(w!==void 0),c(),{value:w,done:!1}}else if(!g)await i;else return{value:void 0,done:!0}}},async return(){return u=!0,c(),s(),y(),{value:void 0,done:!0}},async throw(w){throw w},[Symbol.asyncIterator](){return this}}}},rB=t=>t===0?40:8,bd=class extends Cd{constructor(e,A,r,n,a,i){super(e,A),this.codec=r,this.decoderConfig=n,this.rotation=a,this.timeResolution=i,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Dn,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1,this.alphaDecoder=null,this.alphaHadKeyframe=!1,this.colorQueue=[],this.alphaQueue=[],this.merger=null,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue=[],this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1,this.frameHandlerSerializer=new Dn;let s=Iu.find(o=>o.supports(r,n));if(s)this.customDecoder=new s,this.customDecoder.codec=r,this.customDecoder.config=n,this.customDecoder.onSample=o=>{if(!(o instanceof QA))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(o)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let o=g=>{this.frameHandlerSerializer.call(async()=>{if(this.alphaQueue.length>0){let u=this.alphaQueue.shift();C(u!==void 0),await this.mergeAlpha(g,u)}else this.colorQueue.push(g)}).catch(u=>this.onError(u))};if(r==="avc"&&this.decoderConfig.description&&bs()){let g=zp(ft(this.decoderConfig.description));if(g&&g.sequenceParameterSets.length>0){let u=Os(g.sequenceParameterSets[0]);u&&u.frameMbsOnlyFlag===0&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}let c=new Error("Decoding error").stack;this.decoder=new VideoDecoder({output:g=>{try{o(g)}catch(u){this.onError(u)}},error:g=>{g.stack=c,this.onError(g)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(C(this.decoder),Math.max(this.decoder.decodeQueueSize,this.alphaDecoder?.decodeQueueSize??0))}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(this.hasHevcRaslPicture(e.data))return;this.raslSkipped=!0}if(this.customDecoder)this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--);else{if(C(this.decoder),kn()||Cl(this.inputTimestamps,e.timestamp,A=>A),bs()&&this.currentPacketIndex===0){if(this.codec==="avc"){let A=[];for(let n of Ol(e.data,this.decoderConfig)){let a=zi(e.data[n.offset]);a===Jt.AUD&&(A.length=0),a>=20&&a<=31||A.push(e.data.subarray(n.offset,n.offset+n.length))}let r=Qp(A,this.decoderConfig);e=new Fe(r,e.type,e.timestamp,e.duration)}else if(this.codec==="hevc"){let A=Up(e.data,this.decoderConfig);A&&(e=new Fe(A,e.type,e.timestamp,e.duration))}}this.decoder.decode(e.toEncodedVideoChunk()),this.decodeAlphaData(e)}this.currentPacketIndex++}decodeAlphaData(e){if(!e.sideData.alpha){this.pushNullAlphaFrame();return}if(this.merger||(this.merger=new Cu),!this.alphaDecoder){let r=a=>{this.frameHandlerSerializer.call(async()=>{if(this.colorQueue.length>0){let i=this.colorQueue.shift();C(i!==void 0),await this.mergeAlpha(i,a)}else this.alphaQueue.push(a);for(this.decodedAlphaChunkCount++;this.nullAlphaFrameQueue.length>0&&this.nullAlphaFrameQueue[0]===this.decodedAlphaChunkCount;)if(this.nullAlphaFrameQueue.shift(),this.colorQueue.length>0){let i=this.colorQueue.shift();C(i!==void 0),await this.mergeAlpha(i,null)}else this.alphaQueue.push(null);this.alphaDecoderQueueSize--}).catch(i=>this.onError(i))},n=new Error("Decoding error").stack;this.alphaDecoder=new VideoDecoder({output:a=>{try{r(a)}catch(i){this.onError(i)}},error:a=>{a.stack=n,this.onError(a)}}),this.alphaDecoder.configure(this.decoderConfig)}let A=$r(this.codec,this.decoderConfig,e.sideData.alpha);if(this.alphaHadKeyframe||(this.alphaHadKeyframe=A==="key"),this.alphaHadKeyframe){if(this.codec==="hevc"&&this.currentAlphaPacketIndex>0&&!this.alphaRaslSkipped){if(this.hasHevcRaslPicture(e.sideData.alpha)){this.pushNullAlphaFrame();return}this.alphaRaslSkipped=!0}this.currentAlphaPacketIndex++,this.alphaDecoder.decode(e.alphaToEncodedVideoChunk(A??e.type)),this.alphaDecoderQueueSize++}else this.pushNullAlphaFrame()}pushNullAlphaFrame(){this.alphaDecoderQueueSize===0?this.alphaQueue.push(null):this.nullAlphaFrameQueue.push(this.decodedAlphaChunkCount+this.alphaDecoderQueueSize)}hasHevcRaslPicture(e){for(let A of vs(e,this.decoderConfig)){let r=Wr(e[A.offset]);if(r===bt.RASL_N||r===bt.RASL_R)return!0}return!1}sampleHandler(e){if(kn()){if(this.sampleQueue.length>0&&e.timestamp>=_e(this.sampleQueue).timestamp){for(let A of this.sampleQueue)this.finalizeAndEmitSample(A);this.sampleQueue.length=0}Cl(this.sampleQueue,e,A=>A.timestamp)}else{let A=this.inputTimestamps.shift();C(A!==void 0),e.setTimestamp(A),this.finalizeAndEmitSample(e)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}async mergeAlpha(e,A){if(!A){let a=new QA(e);this.sampleHandler(a);return}C(this.merger);let r=await this.merger.update(e,A),n=new QA(r);this.sampleHandler(n)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(C(this.decoder),await Promise.all([this.decoder.flush(),this.alphaDecoder?.flush()]),await this.frameHandlerSerializer.currentPromise,this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.alphaHadKeyframe=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue.length=0,this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1),kn()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(C(this.decoder),this.decoder.close(),this.alphaDecoder?.close(),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.merger?.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},nB=!1,Cu=class t{constructor(){this.canvas=null,this.gl=null,this.program=null,this.vao=null,this.colorTexture=null,this.alphaTexture=null,this.worker=null,this.pendingRequests=new Map,this.nextRequestId=0;let e=typeof OffscreenCanvas<"u"||typeof document<"u"&&typeof document.createElement=="function";if(!t.forceCpu&&e&&!nB)try{typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(300,150):this.canvas=document.createElement("canvas");let A=this.canvas.getContext("webgl2",{premultipliedAlpha:!1});if(!A)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=A,this.program=this.createProgram(),this.vao=this.createVAO(),this.colorTexture=this.createTexture(),this.alphaTexture=this.createTexture(),this.gl.useProgram(this.program),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_colorTexture"),0),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_alphaTexture"),1)}catch(A){this.gl=null,this.canvas=null,nB=!0,console.warn("Falling back to CPU for color/alpha merging.",A)}}async update(e,A){return this.gl?this.updateGpu(e,A):this.updateCpu(e,A)}createProgram(){C(this.gl);let e=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
10
+ }`,B=new Function(Object.keys(z),H)(...Object.values(z)),H=`methodCaller<(${G.map(Z=>Z.name)}) => ${P.name}>`,Zo(Object.defineProperty(B,"name",{value:H}))}function Ce(d,m){return m>>>=0,(d=Ft(d>>>0))==Ft(m)}function Jo(d){return(d>>>=0)?(d=Pe(d),Wt(globalThis[d])):Wt(globalThis)}function ds(d){return d=Pe(d>>>0),Wt(e[d])}function Xo(d,m){return m>>>=0,d=Ft(d>>>0),m=Ft(m),Wt(d[m])}function ec(d){9<(d>>>=0)&&(WA[d+1]+=1)}function fs(d,m,B,P,G){return Gi[d>>>0](m>>>0,B>>>0,P>>>0,G>>>0)}function ZA(d,m,B,P,G){return fs(d>>>0,m>>>0,B>>>0,P>>>0,G>>>0)}function Yg(){return Wt([])}function tc(d){d=Ft(d>>>0);for(var m=Array(d.length),B=0;B<d.length;B++)m[B]=d[B];return Wt(m)}function vg(d){return Wt(Pe(d>>>0))}function Og(){return Wt({})}function _g(d){for(var m=Ft(d>>>=0);m.length;){var B=m.pop();m.pop()(B)}Ii(d)}function Mg(d,m,B){m>>>=0,B>>>=0,d=Ft(d>>>0),m=Ft(m),B=Ft(B),d[m]=B}function Rg(d,m){d=at(d),m>>>=0,d=new Date(1e3*d),(k(),L)[m>>>2>>>0]=d.getUTCSeconds(),(k(),L)[m+4>>>2>>>0]=d.getUTCMinutes(),(k(),L)[m+8>>>2>>>0]=d.getUTCHours(),(k(),L)[m+12>>>2>>>0]=d.getUTCDate(),(k(),L)[m+16>>>2>>>0]=d.getUTCMonth(),(k(),L)[m+20>>>2>>>0]=d.getUTCFullYear()-1900,(k(),L)[m+24>>>2>>>0]=d.getUTCDay(),d=(d.getTime()-Date.UTC(d.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(k(),L)[m+28>>>2>>>0]=d}var Ac=d=>d%4==0&&(d%100!=0||d%400==0),rc=[0,31,60,91,121,152,182,213,244,274,305,335],nc=[0,31,59,90,120,151,181,212,243,273,304,334];function Qg(d,m){d=at(d),m>>>=0,d=new Date(1e3*d),(k(),L)[m>>>2>>>0]=d.getSeconds(),(k(),L)[m+4>>>2>>>0]=d.getMinutes(),(k(),L)[m+8>>>2>>>0]=d.getHours(),(k(),L)[m+12>>>2>>>0]=d.getDate(),(k(),L)[m+16>>>2>>>0]=d.getMonth(),(k(),L)[m+20>>>2>>>0]=d.getFullYear()-1900,(k(),L)[m+24>>>2>>>0]=d.getDay();var B=(Ac(d.getFullYear())?rc:nc)[d.getMonth()]+d.getDate()-1|0;(k(),L)[m+28>>>2>>>0]=B,(k(),L)[m+36>>>2>>>0]=-60*d.getTimezoneOffset(),B=new Date(d.getFullYear(),6,1).getTimezoneOffset();var P=new Date(d.getFullYear(),0,1).getTimezoneOffset();d=0|(B!=P&&d.getTimezoneOffset()==Math.min(P,B)),(k(),L)[m+32>>>2>>>0]=d}function Fg(d){d>>>=0;var m=new Date((k(),L)[d+20>>>2>>>0]+1900,(k(),L)[d+16>>>2>>>0],(k(),L)[d+12>>>2>>>0],(k(),L)[d+8>>>2>>>0],(k(),L)[d+4>>>2>>>0],(k(),L)[d>>>2>>>0],0),B=(k(),L)[d+32>>>2>>>0],P=m.getTimezoneOffset(),G=new Date(m.getFullYear(),6,1).getTimezoneOffset(),v=new Date(m.getFullYear(),0,1).getTimezoneOffset(),z=Math.min(v,G);return 0>B?(k(),L)[d+32>>>2>>>0]=+(G!=v&&z==P):0<B!=(z==P)&&(G=Math.max(v,G),m.setTime(m.getTime()+6e4*((0<B?z:G)-P))),(k(),L)[d+24>>>2>>>0]=m.getDay(),B=(Ac(m.getFullYear())?rc:nc)[m.getMonth()]+m.getDate()-1|0,(k(),L)[d+28>>>2>>>0]=B,(k(),L)[d>>>2>>>0]=m.getSeconds(),(k(),L)[d+4>>>2>>>0]=m.getMinutes(),(k(),L)[d+8>>>2>>>0]=m.getHours(),(k(),L)[d+12>>>2>>>0]=m.getDate(),(k(),L)[d+16>>>2>>>0]=m.getMonth(),(k(),L)[d+20>>>2>>>0]=m.getYear(),d=m.getTime(),BigInt(isNaN(d)?-1:d/1e3)}function ic(d,m,B,P,G,v,z){return n?Ne(16,1,d,m,B,P,G,v,z):-52}function ac(d,m,B,P,G,v){if(n)return Ne(17,1,d,m,B,P,G,v)}var Pn={},zg=()=>performance.timeOrigin+performance.now();function sc(d,m){if(n)return Ne(18,1,d,m);if(Pn[d]&&(clearTimeout(Pn[d].id),delete Pn[d]),!m)return 0;var B=setTimeout(()=>{delete Pn[d],yt(()=>wh(d,performance.timeOrigin+performance.now()))},m);return Pn[d]={id:B,Ae:m},0}function Ng(d,m,B,P){d>>>=0,m>>>=0,B>>>=0,P>>>=0;var G=new Date().getFullYear(),v=new Date(G,0,1).getTimezoneOffset();G=new Date(G,6,1).getTimezoneOffset();var z=Math.max(v,G);(k(),_)[d>>>2>>>0]=60*z,(k(),L)[m>>>2>>>0]=+(v!=G),d=(m=H=>{var Z=Math.abs(H);return`UTC${0<=H?"-":"+"}${String(Math.floor(Z/60)).padStart(2,"0")}${String(Z%60).padStart(2,"0")}`})(v),m=m(G),G<v?(PA(d,B,17),PA(m,P,17)):(PA(d,P,17),PA(m,B,17))}var Hg=()=>Date.now(),Ug=1;function qg(d,m,B){if(B>>>=0,!(0<=d&&3>=d))return 28;if(d===0)d=Date.now();else{if(!Ug)return 52;d=performance.timeOrigin+performance.now()}return d=Math.round(1e6*d),(k(),Ae)[B>>>3>>>0]=BigInt(d),0}var ms=[],oc=(d,m)=>{ms.length=0;for(var B;B=(k(),V)[d++>>>0];){var P=B!=105;m+=(P&=B!=112)&&m%8?4:0,ms.push(B==112?(k(),_)[m>>>2>>>0]:B==106?(k(),Ae)[m>>>3>>>0]:B==105?(k(),L)[m>>>2>>>0]:(k(),pe)[m>>>3>>>0]),m+=P?8:4}return ms};function Lg(d,m,B){return d>>>=0,m=oc(m>>>0,B>>>0),pl[d](...m)}function jg(d,m,B){return d>>>=0,m=oc(m>>>0,B>>>0),pl[d](...m)}var Vg=()=>{};function Kg(d,m){return E(ur(d>>>0,m>>>0))}var Wg=()=>{throw Se+=1,"unwind"};function Zg(){return 4294901760}var $g=()=>1,Jg=()=>navigator.hardwareConcurrency;function Xg(d){d>>>=0;var m=(k(),V).length;if(d<=m||4294901760<d)return!1;for(var B=1;4>=B;B*=2){var P=m*(1+.2/B);P=Math.min(P,d+100663296);e:{P=(Math.min(4294901760,65536*Math.ceil(Math.max(d,P)/65536))-KA.buffer.byteLength+65535)/65536|0;try{KA.grow(P),et();var G=1;break e}catch{}G=void 0}if(G)return!0}return!1}var cA=d=>{var m=yA(d)+1,B=uc(m);return PA(d,B,m),B},hs=(d,m)=>{(k(),_)[d>>>2>>>0]=m;var B=(k(),_)[d>>>2>>>0];(k(),_)[d+4>>>2>>>0]=(m-B)/4294967296},yn=d=>(k(),_)[d>>>2>>>0]+4294967296*(k(),L)[d+4>>>2>>>0],wt=[],el=(d,m)=>{wt[d>>>0]=m},DA=[],xi=[],Hr=(d,m)=>{xi[d]=new Promise(B=>m.finally(()=>B(d)))},oe=d=>{if(d)return wt[d>>>0]},I=(d,m)=>{for(d=(k(),_)[d>>>2>>>0];d;d=(k(),_)[d>>>2>>>0])m[(k(),L)[d+4>>>2>>>0]](d)},T=(d,m,B)=>{(k(),_)[d>>>2>>>0]=m,(k(),_)[d+4>>>2>>>0]=B},O=d=>{var m=(k(),_)[d>>>2>>>0];return d=(k(),_)[d+4>>>2>>>0],ur(m,d)},Y=d=>{var m=(k(),_)[d>>>2>>>0];return d=(k(),_)[d+4>>>2>>>0],m?ur(m,d):d===0?"":void 0},Q=d=>{var m=Y(d+4),B=(B=(k(),_)[d+12>>>2>>>0])?oe(B):"auto";if(d+=16){var P=oe((k(),_)[d+4>>>2>>>0]),G=(k(),_)[d+16>>>2>>>0],v=(k(),_)[d+20>>>2>>>0];if(G){for(var z={},H=0;H<G;++H){var Z=v+24*H;z[O(Z+4)]=(k(),pe)[Z+16>>>3>>>0]}G=z}else G=void 0;d={module:P,constants:G,entryPoint:Y(d+8)}}else d=void 0;return{label:m,layout:B,compute:d}},U=(d,m)=>{function B(P,G){P=d[P],(k(),_)[m+G>>>2>>>0]=P}B("maxTextureDimension1D",4),B("maxTextureDimension2D",8),B("maxTextureDimension3D",12),B("maxTextureArrayLayers",16),B("maxBindGroups",20),B("maxBindGroupsPlusVertexBuffers",24),B("maxBindingsPerBindGroup",28),B("maxDynamicUniformBuffersPerPipelineLayout",32),B("maxDynamicStorageBuffersPerPipelineLayout",36),B("maxSampledTexturesPerShaderStage",40),B("maxSamplersPerShaderStage",44),B("maxStorageBuffersPerShaderStage",48),B("maxStorageTexturesPerShaderStage",52),B("maxUniformBuffersPerShaderStage",56),B("minUniformBufferOffsetAlignment",80),B("minStorageBufferOffsetAlignment",84),hs(m+64,d.maxUniformBufferBindingSize),hs(m+72,d.maxStorageBufferBindingSize),B("maxVertexBuffers",88),hs(m+96,d.maxBufferSize),B("maxVertexAttributes",104),B("maxVertexBufferArrayStride",108),B("maxInterStageShaderVariables",112),B("maxColorAttachments",116),B("maxColorAttachmentBytesPerSample",120),B("maxComputeWorkgroupStorageSize",124),B("maxComputeInvocationsPerWorkgroup",128),B("maxComputeWorkgroupSizeX",132),B("maxComputeWorkgroupSizeY",136),B("maxComputeWorkgroupSizeZ",140),B("maxComputeWorkgroupsPerDimension",144),d.ze!==void 0&&B("maxImmediateSize",148)},X=[,"validation","out-of-memory","internal"],ge=[,"compatibility","core"],Ie={1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",22:"texture-component-swizzle",327692:"chromium-experimental-unorm16-texture-formats",327729:"chromium-experimental-multi-draw-indirect"},Ye=[,"low-power","high-performance"],Bt=[,"occlusion","timestamp"],Zt={undefined:1,unknown:1,destroyed:2};function CA(d,m,B,P,G,v){m=at(m),B=at(B),P>>>=0,G>>>=0,v>>>=0;var z=oe(d>>>0);if(d={},v){var H=(k(),_)[v+12>>>2>>>0];if(H){var Z=(k(),_)[v+16>>>2>>>0];d.requiredFeatures=Array.from((k(),_).subarray(Z>>>2>>>0,Z+4*H>>>2>>>0),le=>Ie[le])}var re=(k(),_)[v+20>>>2>>>0];if(re){let le=function(vt,Dt,In=!1){Dt=re+Dt,(Dt=(k(),_)[Dt>>>2>>>0])==4294967295||In&&Dt==0||(Ze[vt]=Dt)},It=function(vt,Dt){Dt=re+Dt;var In=(k(),_)[Dt>>>2>>>0],qD=(k(),_)[Dt+4>>>2>>>0];In==4294967295&&qD==4294967295||(Ze[vt]=yn(Dt))};var Qe=le,Ue=It,Ze={};le("maxTextureDimension1D",4),le("maxTextureDimension2D",8),le("maxTextureDimension3D",12),le("maxTextureArrayLayers",16),le("maxBindGroups",20),le("maxBindGroupsPlusVertexBuffers",24),le("maxDynamicUniformBuffersPerPipelineLayout",32),le("maxDynamicStorageBuffersPerPipelineLayout",36),le("maxSampledTexturesPerShaderStage",40),le("maxSamplersPerShaderStage",44),le("maxStorageBuffersPerShaderStage",48),le("maxStorageTexturesPerShaderStage",52),le("maxUniformBuffersPerShaderStage",56),le("minUniformBufferOffsetAlignment",80),le("minStorageBufferOffsetAlignment",84),It("maxUniformBufferBindingSize",64),It("maxStorageBufferBindingSize",72),le("maxVertexBuffers",88),It("maxBufferSize",96),le("maxVertexAttributes",104),le("maxVertexBufferArrayStride",108),le("maxInterStageShaderVariables",112),le("maxColorAttachments",116),le("maxColorAttachmentBytesPerSample",120),le("maxComputeWorkgroupStorageSize",124),le("maxComputeInvocationsPerWorkgroup",128),le("maxComputeWorkgroupSizeX",132),le("maxComputeWorkgroupSizeY",136),le("maxComputeWorkgroupSizeZ",140),le("maxComputeWorkgroupsPerDimension",144),le("maxImmediateSize",148,!0),d.requiredLimits=Ze}(H=(k(),_)[v+24>>>2>>>0])&&(H={label:Y(H+4)},d.defaultQueue=H),d.label=Y(v+4)}Se+=1,Hr(m,z.requestDevice(d).then(le=>{--Se,yt(()=>{wt[G>>>0]=le.queue,wt[P>>>0]=le,Se+=1,Hr(B,le.lost.then(It=>{yt(()=>{le.onuncapturederror=()=>{};var vt=me(),Dt=cA(It.message);ol(B,Zt[It.reason],Dt),fe(vt)}),--Se})),le.onuncapturederror=It=>{var vt=5;It.error instanceof GPUValidationError?vt=2:It.error instanceof GPUOutOfMemoryError?vt=3:It.error instanceof GPUInternalError&&(vt=4);var Dt=me();It=cA(It.error.message),fh(P,vt,It),fe(Dt)},"adapterInfo"in le||(le.adapterInfo=z.info),gl(m,1,P,0)})},le=>{--Se,yt(()=>{var It=me(),vt=cA(le.message);gl(m,3,P,vt),B&&ol(B,4,vt),fe(It)})}))}function bA(d){var m=oe(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d]}m.destroy()}function tl(d,m,B){B>>>=0;var P=oe(d>>>=0);B==4294967295&&(B=void 0);try{var G=P.getMappedRange(m>>>0,B)}catch{return 0}var v=fl(16,G.byteLength);return(k(),V).set(new Uint8Array(G),v>>>0),DA[d].push(()=>EA(v)),v}function Al(d,m,B){B>>>=0;var P=oe(d>>>=0);B==4294967295&&(B=void 0);try{var G=P.getMappedRange(m>>>0,B)}catch{return 0}var v=fl(16,G.byteLength);return(k(),V).fill(0,v,G.byteLength),DA[d].push(()=>{new Uint8Array(G).set((k(),V).subarray(v>>>0,v+G.byteLength>>>0)),EA(v)}),v}function rl(d,m,B,P,G){d>>>=0,m=at(m),B=at(B),G>>>=0;var v=oe(d);DA[d]=[],G==4294967295&&(G=void 0),Se+=1,Hr(m,v.mapAsync(B,P>>>0,G).then(()=>{--Se,yt(()=>{cl(m,1,0)})},z=>{--Se,yt(()=>{me();var H=cA(z.message);cl(m,z.name==="AbortError"?4:z.name==="OperationError"?3:0,H),delete DA[d]})}))}function ps(d){var m=oe(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d],m.unmap()}}function bI(d){delete wt[d>>>0]}function EI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=!!(k(),_)[m+32>>>2>>>0];m={label:Y(m+4),usage:(k(),_)[m+16>>>2>>>0],size:yn(m+24),mappedAtCreation:P},d=oe(d);try{var G=d.createBuffer(m)}catch{return!1}return wt[B>>>0]=G,P&&(DA[B]=[]),!0}function TI(d,m,B,P){d>>>=0,m=at(m),P>>>=0,B=Q(B>>>0),d=oe(d),Se+=1,Hr(m,d.createComputePipelineAsync(B).then(G=>{--Se,yt(()=>{wt[P>>>0]=G,sl(m,1,P,0)})},G=>{--Se,yt(()=>{var v=me(),z=cA(G.message);sl(m,G.reason==="validation"?3:G.reason==="internal"?4:0,P,z),fe(v)})}))}function kI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=(k(),_)[m>>>2>>>0],G=(k(),L)[P+4>>>2>>>0];m={label:Y(m+4),code:""},G===2&&(m.code=O(P+8)),d=oe(d).createShaderModule(m),wt[B>>>0]=d}var GI=d=>{(d=oe(d)).onuncapturederror=null,d.destroy()};function xI(d,m){m=at(m),d=oe(d>>>0),Se+=1,Hr(m,d.popErrorScope().then(B=>{--Se,yt(()=>{var P=5;B?B instanceof GPUValidationError?P=2:B instanceof GPUOutOfMemoryError?P=3:B instanceof GPUInternalError&&(P=4):P=1;var G=me(),v=B?cA(B.message):0;ul(m,1,P,v),fe(G)})},B=>{--Se,yt(()=>{var P=me(),G=cA(B.message);ul(m,1,5,G),fe(P)})}))}function SI(d,m,B,P){if(m=at(m),P>>>=0,B>>>=0){var G={featureLevel:ge[(k(),L)[B+4>>>2>>>0]],powerPreference:Ye[(k(),L)[B+8>>>2>>>0]],forceFallbackAdapter:!!(k(),_)[B+12>>>2>>>0]};(d=(k(),_)[B>>>2>>>0])!==0&&(k(),G.De=!!(k(),_)[d+8>>>2>>>0])}"gpu"in navigator?(Se+=1,Hr(m,navigator.gpu.requestAdapter(G).then(v=>{--Se,yt(()=>{if(v)wt[P>>>0]=v,ws(m,1,P,0);else{var z=me(),H=cA("WebGPU not available on this browser (requestAdapter returned null)");ws(m,3,P,H),fe(z)}})},v=>{--Se,yt(()=>{var z=me(),H=cA(v.message);ws(m,4,P,H),fe(z)})}))):(G=me(),d=cA("WebGPU not available on this browser (navigator.gpu is not available)"),ws(m,3,P,d),fe(G))}function YI(d,m,B){return d>>>=0,m>>>=0,B>>>=0,us(async()=>{var P=[];if(B){var G=(k(),L)[B>>>2>>>0];P.length=m+1,P[m]=new Promise(H=>setTimeout(H,G,0))}else P.length=m;for(var v=0;v<m;++v){var z=yn(d+8*v);if(!(z in xi))return z;P[v]=xi[z]}return P=await Promise.race(P),delete xi[P],P})}var nl,il={},Km=()=>{if(!nl){var d,m={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(d in il)il[d]===void 0?delete m[d]:m[d]=il[d];var B=[];for(d in m)B.push(`${d}=${m[d]}`);nl=B}return nl};function Wm(d,m){if(n)return Ne(19,1,d,m);d>>>=0,m>>>=0;var B,P=0,G=0;for(B of Km()){var v=m+P;(k(),_)[d+G>>>2>>>0]=v,P+=PA(B,v,1/0)+1,G+=4}return 0}function Zm(d,m){if(n)return Ne(20,1,d,m);d>>>=0,m>>>=0;var B=Km();for(var P of((k(),_)[d>>>2>>>0]=B.length,d=0,B))d+=yA(P)+1;return(k(),_)[m>>>2>>>0]=d,0}function $m(d){return n?Ne(21,1,d):52}function Jm(d,m,B,P){return n?Ne(22,1,d,m,B,P):52}function Xm(d,m,B,P){return n?Ne(23,1,d,m,B,P):70}var vI=[null,[],[]];function eh(d,m,B,P){if(n)return Ne(24,1,d,m,B,P);m>>>=0,B>>>=0,P>>>=0;for(var G=0,v=0;v<B;v++){var z=(k(),_)[m>>>2>>>0],H=(k(),_)[m+4>>>2>>>0];m+=8;for(var Z=0;Z<H;Z++){var re=d,Qe=(k(),V)[z+Z>>>0],Ue=vI[re];Qe===0||Qe===10?((re===1?b:E)(qa(Ue)),Ue.length=0):Ue.push(Qe)}G+=H}return(k(),_)[P>>>2>>>0]=G,0}function OI(d){return d>>>0}function _I(d,m){return U(oe(d>>>0).limits,m>>>0),1}function MI(d,m){return oe(d>>>0).features.has(Ie[m])}function RI(d){return BigInt(oe(d>>>0).size)}function QI(d){return BigInt(oe(d>>>0).usage)}function FI(d,m){if(d>>>=0,m>>>=0){var B=Y(m+4);B={label:B,timestampWrites:m=(m=(k(),_)[m+12>>>2>>>0])!==0?{querySet:oe((k(),_)[m+4>>>2>>>0]),beginningOfPassWriteIndex:(k(),_)[m+8>>>2>>>0],endOfPassWriteIndex:(k(),_)[m+12>>>2>>>0]}:void 0}}return m=oe(d),d=ch(0),B=m.beginComputePass(B),wt[d>>>0]=B,d}function zI(d,m,B,P){B=at(B),(P=at(P))==-1&&(P=void 0),(d=oe(d>>>0)).clearBuffer(oe(m>>>0),B,P)}function NI(d,m,B,P,G,v){B=at(B),G=at(G),v=at(v),oe(d>>>0).copyBufferToBuffer(oe(m>>>0),B,oe(P>>>0),G,v)}function HI(d){var m=oe(d>>>0);return d=sh(0),m=m.finish(),wt[d>>>0]=m,d}function UI(d,m,B,P,G,v){v=at(v),oe(d>>>0).resolveQuerySet(oe(m>>>0),B,P,oe(G>>>0),v)}function qI(d,m,B,P){oe(d>>>0).dispatchWorkgroups(m,B,P)}function LI(d,m,B){B=at(B),oe(d>>>0).dispatchWorkgroupsIndirect(oe(m>>>0),B)}function jI(d){oe(d>>>0).end()}function VI(d,m,B,P,G){P>>>=0,G>>>=0,d=oe(d>>>0),B=oe(B>>>0),P==0?d.setBindGroup(m,B):d.setBindGroup(m,B,(k(),_),G>>>2,P)}function KI(d,m){oe(d>>>0).setPipeline(oe(m>>>0))}function WI(d,m,B){oe(d>>>0).Ce(oe(m>>>0),B)}function ZI(d,m){var B=oe(d>>>0);return d=ah(0),m=B.getBindGroupLayout(m),wt[d>>>0]=m,d}function $I(d,m){function B(G){var v=(k(),_)[G+8>>>2>>>0],z=(k(),_)[G+32>>>2>>>0],H=(k(),_)[G+36>>>2>>>0],Z=0;return I(G,{327681:re=>{Z=(k(),_)[re+8>>>2>>>0]}}),v?((z=yn(G+24))==-1&&(z=void 0),v={buffer:oe(v),offset:yn(G+16),size:z}):v=oe(z||H||Z),{binding:(k(),_)[G+4>>>2>>>0],resource:v}}d>>>=0,m={label:Y(4+(m>>>=0)),layout:oe((k(),_)[m+12>>>2>>>0]),entries:function(G,v){for(var z=[],H=0;H<G;++H)z.push(B(v+40*H));return z}((k(),_)[m+16>>>2>>>0],(k(),_)[m+20>>>2>>>0])},d=oe(d);var P=ih(0);return el(P,d.createBindGroup(m)),P}function JI(d,m){var B;return d>>>=0,(m>>>=0)&&(B={label:Y(m+4)}),m=oe(d),d=oh(0),B=m.createCommandEncoder(B),wt[d>>>0]=B,d}function XI(d,m){d>>>=0,m>>>=0,m={type:Bt[(k(),L)[m+12>>>2>>>0]],count:(k(),_)[m+16>>>2>>>0]};var B=oe(d);return d=uh(0),m=B.createQuerySet(m),wt[d>>>0]=m,d}function eD(d,m){d=oe(d>>>0).adapterInfo,m>>>=0,(k(),_)[m+52>>>2>>>0]=d.subgroupMinSize,(k(),_)[m+56>>>2>>>0]=d.subgroupMaxSize;var B=d.vendor+d.architecture+d.device+d.description,P=yA(B)+1,G=Si(P);return G&&PA(B,G,P),B=G,P=yA(d.vendor),T(m+4,B,P),B+=P,P=yA(d.architecture),T(m+12,B,P),B+=P,P=yA(d.device),T(m+20,B,P),T(m+28,B+P,yA(d.description)),(k(),L)[m+36>>>2>>>0]=2,d=d.isFallbackAdapter?3:4,(k(),L)[m+40>>>2>>>0]=d,(k(),_)[m+44>>>2>>>0]=0,(k(),_)[m+48>>>2>>>0]=0,1}var tD={"core-features-and-limits":1,"depth-clip-control":2,"depth32float-stencil8":3,"texture-compression-bc":4,"texture-compression-bc-sliced-3d":5,"texture-compression-etc2":6,"texture-compression-astc":7,"texture-compression-astc-sliced-3d":8,"timestamp-query":9,"indirect-first-instance":10,"shader-f16":11,"rg11b10ufloat-renderable":12,"bgra8unorm-storage":13,"float32-filterable":14,"float32-blendable":15,"clip-distances":16,"dual-source-blending":17,subgroups:18,"texture-formats-tier1":19,"texture-formats-tier2":20,"primitive-index":21,"texture-component-swizzle":22,"chromium-experimental-unorm16-texture-formats":327692,"chromium-experimental-multi-draw-indirect":327729};function AD(d,m){m>>>=0;var B=oe(d>>>0);d=Si(4*B.features.size);var P=0,G=0;for(let v of B.features)0<=(B=tD[v])&&((k(),L)[d+P>>>2>>>0]=B,P+=4,G++);(k(),_)[m+4>>>2>>>0]=d,(k(),_)[m>>>2>>>0]=G}function rD(d,m){return U(oe(d>>>0).limits,m>>>0),1}function nD(d,m){oe(d>>>0).pushErrorScope(X[m])}function iD(d,m,B){m>>>=0,B>>>=0,d=oe(d>>>0),m=Array.from((k(),L).subarray(B>>>2>>>0,B+4*m>>>2>>>0),P=>oe(P)),d.submit(m)}function aD(d,m,B,P,G){B=at(B),P>>>=0,G>>>=0,d=oe(d>>>0),m=oe(m>>>0),P=(k(),V).subarray(P>>>0,P+G>>>0),d.writeBuffer(m,B,P,0,G)}n||function(){for(var d=e.numThreads-1;d--;)Te();Be.push(async()=>{var m=async function(){if(!n)return Promise.all(Gt.map(Fa))}();se++,await m,--se==0&&ue&&(m=ue,ue=null,m())})}(),n||(KA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),et()),e.wasmBinary&&(u=e.wasmBinary),e.stackSave=()=>me(),e.stackRestore=d=>fe(d),e.stackAlloc=d=>uc(d),e.setValue=function(d,m,B="i8"){switch(B.endsWith("*")&&(B="*"),B){case"i1":case"i8":(k(),N)[d>>>0]=m;break;case"i16":(k(),F)[d>>>1>>>0]=m;break;case"i32":(k(),L)[d>>>2>>>0]=m;break;case"i64":(k(),Ae)[d>>>3>>>0]=BigInt(m);break;case"float":(k(),W)[d>>>2>>>0]=m;break;case"double":(k(),pe)[d>>>3>>>0]=m;break;case"*":(k(),_)[d>>>2>>>0]=m;break;default:$e(`invalid type for setValue: ${B}`)}},e.getValue=function(d,m="i8"){switch(m.endsWith("*")&&(m="*"),m){case"i1":case"i8":return(k(),N)[d>>>0];case"i16":return(k(),F)[d>>>1>>>0];case"i32":return(k(),L)[d>>>2>>>0];case"i64":return(k(),Ae)[d>>>3>>>0];case"float":return(k(),W)[d>>>2>>>0];case"double":return(k(),pe)[d>>>3>>>0];case"*":return(k(),_)[d>>>2>>>0];default:$e(`invalid type for getValue: ${m}`)}},e.UTF8ToString=ur,e.stringToUTF8=PA,e.lengthBytesUTF8=yA;var th,Ah,al,cc,EA,Si,rh,nh,ih,ah,sh,oh,ch,uh,gh,lh,dh,sl,ol,cl,ul,ws,gl,fh,ll,mh,hh,ph,dl,wh,Bh,fl,ve,Bs,Ph,fe,uc,me,yh,ml,Ih,Dh,Ch,hl,bh,Eh,Th,kh,Gh,xh,Sh,Yh,vh,Oh,_h,Mh,Rh,Qh,Fh,zh,Nh,Hh,Uh,qh,Lh,jh,Vh,Kh,Wh,Zh,$h,Jh,Xh,ep,tp,Ap,rp,np,ip,ap,sp,op,dr,sD=[Rt,pt,Qo,La,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,zo,No,yi,ic,ac,sc,Wm,Zm,$m,Jm,Xm,eh],pl={979436:(d,m,B,P,G)=>{if(e===void 0||!e.Uc)return 1;if((d=ur(Number(d>>>0))).startsWith("./")&&(d=d.substring(2)),!(d=e.Uc.get(d)))return 2;if(m=Number(m>>>0),B=Number(B>>>0),P=Number(P>>>0),m+B>d.byteLength)return 3;try{let v=d.subarray(m,m+B);switch(G){case 0:(k(),V).set(v,P>>>0);break;case 1:e.ad?e.ad(P,v):e.ne(P,v);break;default:return 4}return 0}catch{return 4}},980260:(d,m,B)=>{e.Sd(d,(k(),V).subarray(m>>>0,m+B>>>0))},980324:()=>e.le(),980366:d=>{e.jd(d)},980403:()=>typeof wasmOffsetConverter<"u"};function oD(d,m,B,P){var G=me();try{return Yh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function cD(d,m,B){var P=me();try{return Gh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function uD(d){var m=me();try{bh(d)}catch(B){if(fe(m),B!==B+0)throw B;ve(1,0)}}function gD(d,m){var B=me();try{return hl(d,m)}catch(P){if(fe(B),P!==P+0)throw P;ve(1,0)}}function lD(d,m,B){var P=me();try{Ch(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function dD(d,m){var B=me();try{vh(d,m)}catch(P){if(fe(B),P!==P+0)throw P;ve(1,0)}}function fD(d,m,B,P,G,v,z){var H=me();try{return kh(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function mD(d,m,B,P,G,v){var z=me();try{Eh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function hD(d,m,B,P){var G=me();try{Sh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function pD(d,m,B,P,G,v,z){var H=me();try{_h(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function wD(d,m,B,P,G,v,z){var H=me();try{Mh(d,m,B,P,G,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;ve(1,0)}}function BD(d,m,B,P,G,v,z,H){var Z=me();try{Lh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function PD(d,m,B,P,G,v,z,H,Z,re,Qe,Ue){var Ze=me();try{Rh(d,m,B,P,G,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;ve(1,0)}}function yD(d,m,B,P,G){var v=me();try{return Oh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function ID(d,m,B,P,G){var v=me();try{Th(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function DD(d,m,B,P,G,v,z,H){var Z=me();try{xh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function CD(d){var m=me();try{return jh(d)}catch(B){if(fe(m),B!==B+0)throw B;ve(1,0)}}function bD(d,m,B){var P=me();try{return Vh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function ED(d,m){var B=me();try{return np(d,m)}catch(P){if(fe(B),P!==P+0)throw P;return ve(1,0),0n}}function TD(d){var m=me();try{return Qh(d)}catch(B){if(fe(m),B!==B+0)throw B;return ve(1,0),0n}}function kD(d,m,B,P){var G=me();try{return Kh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function GD(d,m,B,P,G){var v=me();try{return Wh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;ve(1,0)}}function xD(d,m,B,P,G,v){var z=me();try{return Zh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function SD(d,m,B,P,G,v){var z=me();try{return Uh(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function YD(d,m,B,P,G,v){var z=me();try{return $h(d,m,B,P,G,v)}catch(H){if(fe(z),H!==H+0)throw H;ve(1,0)}}function vD(d,m,B,P,G,v,z,H){var Z=me();try{return qh(d,m,B,P,G,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;ve(1,0)}}function OD(d,m,B,P,G){var v=me();try{return Jh(d,m,B,P,G)}catch(z){if(fe(v),z!==z+0)throw z;return ve(1,0),0n}}function _D(d,m,B,P){var G=me();try{return Xh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function MD(d,m,B,P){var G=me();try{return ep(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function RD(d,m,B,P,G,v,z,H,Z,re,Qe,Ue){var Ze=me();try{return tp(d,m,B,P,G,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;ve(1,0)}}function QD(d,m,B,P,G,v,z,H,Z,re,Qe){var Ue=me();try{Ap(d,m,B,P,G,v,z,H,Z,re,Qe)}catch(Ze){if(fe(Ue),Ze!==Ze+0)throw Ze;ve(1,0)}}function FD(d,m,B,P,G,v,z,H,Z,re,Qe,Ue,Ze,le,It,vt){var Dt=me();try{rp(d,m,B,P,G,v,z,H,Z,re,Qe,Ue,Ze,le,It,vt)}catch(In){if(fe(Dt),In!==In+0)throw In;ve(1,0)}}function zD(d,m,B){var P=me();try{return zh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;return ve(1,0),0n}}function ND(d,m,B){var P=me();try{return Fh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function HD(d,m,B){var P=me();try{return Nh(d,m,B)}catch(G){if(fe(P),G!==G+0)throw G;ve(1,0)}}function UD(d,m,B,P){var G=me();try{Hh(d,m,B,P)}catch(v){if(fe(G),v!==v+0)throw v;ve(1,0)}}function gc(){if(0<se)ue=gc;else if(n)p?.(e),tt();else{for(var d=Be;0<d.length;)d.shift()(e);0<se?ue=gc:(e.calledRun=!0,x||(tt(),p?.(e)))}}return n||(dr=await Je(),gc()),e.PTR_SIZE=4,e.webgpuInit=d=>{let m=new WeakMap,B,P,G=1;e.webgpuRegisterDevice=H=>{if(P!==void 0)throw Error("another WebGPU EP inference session is being created.");if(H){var Z=m.get(H);if(!Z){let re=((Qe,Ue=0)=>{var Ze=dh(Ue);return Ue=lh(Ue,Ze),wt[Ze>>>0]=Qe.queue,wt[Ue>>>0]=Qe,Ue})(H,Z=nh(0));Z=[G++,Z,re],m.set(H,Z)}return B=H,P=Z[0],Z}B=void 0,P=0};let v=new Map;e.webgpuOnCreateSession=H=>{if(P!==void 0){var Z=P;if(P=void 0,H){let re=al(Z);v.set(H,re),Z===0&&d(B??oe(re))}B=void 0}},e.webgpuOnReleaseSession=H=>{v.delete(H)};let z=Symbol("gpuBufferMetadata");e.webgpuRegisterBuffer=(H,Z,re)=>{if(re)return H[z]=[re,NaN],re;if(re=H[z])return re[1]++,re[0];if((Z=v.get(Z))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return Z=((Qe,Ue=0)=>(Qe.mapState==="unmapped"||$e(),Ue=gh(Ue),wt[Ue>>>0]=Qe,Ue))(H,Z),H[z]=[Z,1],Z},e.webgpuUnregisterBuffer=H=>{let Z=H[z];if(!Z)throw Error("Buffer is not registered");Z[1]--,Z[1]===0&&(rh(Z[0]),delete H[z])},e.webgpuGetBuffer=H=>oe(H),e.webgpuCreateDownloader=(H,Z,re)=>{if((re=v.get(re))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let Qe=oe(re),Ue=16*Math.ceil(Number(Z)/16);return async()=>{let Ze=Qe.createBuffer({size:Ue,usage:9});try{let le=Qe.createCommandEncoder();return le.copyBufferToBuffer(H,0,Ze,0,Ue),Qe.queue.submit([le.finish()]),await Ze.mapAsync(GPUMapMode.READ),Ze.getMappedRange().slice(0,Z)}finally{Ze.destroy()}}},e.ad=(H,Z)=>{var re=Z.buffer;let Qe=Z.byteOffset,Ue=Z.byteLength;if(Z=16*Math.ceil(Number(Ue)/16),H=oe(H),!B){var Ze=al(P);B=oe(Ze)}let le=(Ze=B.createBuffer({mappedAtCreation:!0,size:Z,usage:6})).getMappedRange();new Uint8Array(le).set(new Uint8Array(re,Qe,Ue)),Ze.unmap(),(re=B.createCommandEncoder()).copyBufferToBuffer(Ze,0,H,0,Z),B.queue.submit([re.finish()]),Ze.destroy()}},e.webnnInit=d=>{let m=d[0];[e.le,e.jd,e.webnnEnsureTensor,e.Sd,e.webnnDownloadTensor,e.ke,e.webnnEnableTraceEvent]=d.slice(1),e.webnnReleaseTensorId=e.jd,e.webnnUploadTensor=e.Sd,e.webnnRegisterMLContext=e.ke,e.webnnOnRunStart=B=>m.onRunStart(B),e.webnnOnRunEnd=m.onRunEnd.bind(m),e.webnnOnReleaseSession=B=>{m.onReleaseSession(B)},e.webnnCreateMLTensorDownloader=(B,P)=>m.createMLTensorDownloader(B,P),e.webnnRegisterMLTensor=(B,P,G,v)=>m.registerMLTensor(B,P,G,v),e.webnnCreateMLContext=B=>m.createMLContext(B),e.webnnRegisterMLConstant=(B,P,G,v,z,H)=>m.registerMLConstant(B,P,G,v,z,e.Uc,H),e.webnnRegisterGraphInput=m.registerGraphInput.bind(m),e.webnnIsGraphInput=m.isGraphInput.bind(m),e.webnnRegisterGraphOutput=m.registerGraphOutput.bind(m),e.webnnIsGraphOutput=m.isGraphOutput.bind(m),e.webnnCreateTemporaryTensor=m.createTemporaryTensor.bind(m),e.webnnIsGraphInputOutputTypeSupported=m.isGraphInputOutputTypeSupported.bind(m)},we?e:new Promise((d,m)=>{p=d,h=m})}var LA,bm,jk,Vk,Kk,Wk,Oe,xo,Zk,sg,Do,cn,oi,Xy,E0,T0,$k,k0,Jk,Xf,Tt,G0,ct,Xk,x0,S0,eG,tg,Y0,v0,O0,_0,M0,tG,ai,ko,em,R0,AG,Q0,F0,rG,sA,Em,jA,z0,og,tm,ci,ui,dn,fn,N0,H0,nG,Tm,iG,aG,sG,oG,cG,q0,gi,km,L0,Am,rm,j0,uG,V0,K0,t0,gG,nm,Pm,A0,iA,W0,Ag,r0,n0,im,i0,am,Z0,sm,$0,Gm,om,rg,Co,cm,a0,s0,o0,xm,je,li,aA,cg,He,Sm,J0,lG,c0,u0,g0,Ya,un,l0,X0,dG,si,ag,Oa,Go,ug,Ym,vm,ym,_a,Om,eI,tI,fG,d0,f0,m0,h0,AI,p0,St,rI,um,Im,gm,w0,lm,B0,dm,fm,mm,P0,nI,mG,iI,bo,y0,aI,hG,I0,_m,Mm,gn,D0,hm,gg,Rm,Qm,pm,Fm,zm,Nm,sI,ln,mA,va,Eo,To,ng,wm,ig,ni,ii,C0,oI,cI,uI,gI,lI,dI,fI,mI,Bm,b0,hI,pG,pI,Dm,Cm,wI,wG,BG,PG,PI=jD(()=>{LA={};bm=Object.defineProperty,jk=Object.getOwnPropertyDescriptor,Vk=Object.getOwnPropertyNames,Kk=Object.prototype.hasOwnProperty,Wk=(t=>typeof zt<"u"?zt:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof zt<"u"?zt:e)[A]}):t)(function(t){if(typeof zt<"u")return zt.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),Oe=(t,e)=>()=>(t&&(e=t(t=0)),e),xo=(t,e)=>{for(var A in e)bm(t,A,{get:e[A],enumerable:!0})},Zk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Vk(e))!Kk.call(t,n)&&n!==A&&bm(t,n,{get:()=>e[n],enumerable:!(r=jk(e,n))||r.enumerable});return t},sg=t=>Zk(bm({},"__esModule",{value:!0}),t),T0=Oe(()=>{"use strict";Do=new Map,cn=[],oi=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=Do.get(t);if(r===void 0)Do.set(t,{backend:e,priority:A});else{if(r.priority>A)return;if(r.priority===A&&r.backend!==e)throw new Error(`cannot register backend "${t}" using priority ${A}`)}if(A>=0){let n=cn.indexOf(t);n!==-1&&cn.splice(n,1);for(let a=0;a<cn.length;a++)if(Do.get(cn[a]).priority<=A){cn.splice(a,0,t);return}cn.push(t)}return}throw new TypeError("not a valid backend")},Xy=async t=>{let e=Do.get(t);if(!e)return"backend not found.";if(e.initialized)return e.backend;if(e.aborted)return e.error;{let A=!!e.initPromise;try{return A||(e.initPromise=e.backend.init(t)),await e.initPromise,e.initialized=!0,e.backend}catch(r){return A||(e.error=`${r}`,e.aborted=!0),e.error}finally{delete e.initPromise}}},E0=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?cn:A,n,a=[],i=new Set;for(let o of r){let c=await Xy(o);typeof c=="string"?a.push({name:o,err:c}):(n||(n=c),n===c&&i.add(o))}if(!n)throw new Error(`no available backend found. ERR: ${a.map(o=>`[${o.name}] ${o.err}`).join(", ")}`);for(let{name:o,err:c}of a)A.includes(o)&&console.warn(`removing requested execution provider "${o}" from session options because it is not available: ${c}`);let s=e.filter(o=>i.has(typeof o=="string"?o:o.name));return[n,new Proxy(t,{get:(o,c)=>c==="executionProviders"?s:Reflect.get(o,c)})]}}),$k=Oe(()=>{"use strict";T0()}),Jk=Oe(()=>{"use strict";k0="1.26.0"}),G0=Oe(()=>{"use strict";Jk(),Xf="warning",Tt={wasm:{},webgl:{},webgpu:{},versions:{common:k0},set logLevel(t){if(t!==void 0){if(typeof t!="string"||["verbose","info","warning","error","fatal"].indexOf(t)===-1)throw new Error(`Unsupported logging level: ${t}`);Xf=t}},get logLevel(){return Xf}},Object.defineProperty(Tt,"logLevel",{enumerable:!0})}),Xk=Oe(()=>{"use strict";G0(),ct=Tt}),eG=Oe(()=>{"use strict";x0=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);A.width=t.dims[3],A.height=t.dims[2];let r=A.getContext("2d");if(r!=null){let n,a;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[3]):(n=t.dims[3],a=t.dims[2]);let i=e?.format!==void 0?e.format:"RGB",s=e?.norm,o,c;s===void 0||s.mean===void 0?o=[255,255,255,255]:typeof s.mean=="number"?o=[s.mean,s.mean,s.mean,s.mean]:(o=[s.mean[0],s.mean[1],s.mean[2],0],s.mean[3]!==void 0&&(o[3]=s.mean[3])),s===void 0||s.bias===void 0?c=[0,0,0,0]:typeof s.bias=="number"?c=[s.bias,s.bias,s.bias,s.bias]:(c=[s.bias[0],s.bias[1],s.bias[2],0],s.bias[3]!==void 0&&(c[3]=s.bias[3]));let g=a*n,u=0,l=g,f=g*2,p=-1;i==="RGBA"?(u=0,l=g,f=g*2,p=g*3):i==="RGB"?(u=0,l=g,f=g*2):i==="RBG"&&(u=0,f=g,l=g*2);for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=(t.data[u++]-c[0])*o[0],D=(t.data[l++]-c[1])*o[1],b=(t.data[f++]-c[2])*o[2],E=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+b+","+E+")",r.fillRect(y,h,1,1)}if("toDataURL"in A)return A.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},S0=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),r;if(A!=null){let n,a,i;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[1],i=t.dims[3]):(n=t.dims[3],a=t.dims[2],i=t.dims[1]);let s=e!==void 0&&e.format!==void 0?e.format:"RGB",o=e?.norm,c,g;o===void 0||o.mean===void 0?c=[255,255,255,255]:typeof o.mean=="number"?c=[o.mean,o.mean,o.mean,o.mean]:(c=[o.mean[0],o.mean[1],o.mean[2],255],o.mean[3]!==void 0&&(c[3]=o.mean[3])),o===void 0||o.bias===void 0?g=[0,0,0,0]:typeof o.bias=="number"?g=[o.bias,o.bias,o.bias,o.bias]:(g=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(g[3]=o.bias[3]));let u=a*n;if(e!==void 0&&(e.format!==void 0&&i===4&&e.format!=="RGBA"||i===3&&e.format!=="RGB"&&e.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let l=4,f=0,p=1,h=2,y=3,w=0,D=u,b=u*2,E=-1;s==="RGBA"?(w=0,D=u,b=u*2,E=u*3):s==="RGB"?(w=0,D=u,b=u*2):s==="RBG"&&(w=0,b=u,D=u*2),r=A.createImageData(n,a);for(let x=0;x<a*n;f+=l,p+=l,h+=l,y+=l,x++)r.data[f]=(t.data[w++]-g[0])*c[0],r.data[p]=(t.data[D++]-g[1])*c[1],r.data[h]=(t.data[b++]-g[2])*c[2],r.data[y]=E===-1?255:(t.data[E++]-g[3])*c[3]}else throw new Error("Can not access image data");return r}}),tG=Oe(()=>{"use strict";Em(),tg=(t,e)=>{if(t===void 0)throw new Error("Image buffer must be defined");if(e.height===void 0||e.width===void 0)throw new Error("Image height and width must be defined");if(e.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:A,width:r}=e,n=e.norm??{mean:255,bias:0},a,i;typeof n.mean=="number"?a=[n.mean,n.mean,n.mean,n.mean]:a=[n.mean[0],n.mean[1],n.mean[2],n.mean[3]??255],typeof n.bias=="number"?i=[n.bias,n.bias,n.bias,n.bias]:i=[n.bias[0],n.bias[1],n.bias[2],n.bias[3]??0];let s=e.format!==void 0?e.format:"RGBA",o=e.tensorFormat!==void 0&&e.tensorFormat!==void 0?e.tensorFormat:"RGB",c=A*r,g=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,l=0,f=1,p=2,h=3,y=0,w=c,D=c*2,b=-1;s==="RGB"&&(u=3,l=0,f=1,p=2,h=-1),o==="RGBA"?b=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let E=0;E<c;E++,l+=u,p+=u,f+=u,h+=u)g[y++]=(t[l]+i[0])/a[0],g[w++]=(t[f]+i[1])/a[1],g[D++]=(t[p]+i[2])/a[2],b!==-1&&h!==-1&&(g[b++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new sA("float32",g,[1,4,A,r]):new sA("float32",g,[1,3,A,r])},Y0=async(t,e)=>{let A=typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement,r=typeof ImageData<"u"&&t instanceof ImageData,n=typeof ImageBitmap<"u"&&t instanceof ImageBitmap,a=typeof t=="string",i,s=e??{},o=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=g=>typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement||g instanceof OffscreenCanvas?g.getContext("2d"):null;if(A){let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(l=e.resizedHeight,f=e.resizedWidth),e!==void 0){if(s=e,e.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");s.tensorFormat="RGBA",s.height=l,s.width=f}else s.tensorFormat="RGBA",s.height=l,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,l).data}else throw new Error("Can not access image data")}else if(r){let g,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(g=e.resizedHeight,u=e.resizedWidth):(g=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=g,s.width=u,e!==void 0){let l=o();l.width=u,l.height=g;let f=c(l);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,g).data;else throw new Error("Can not access image data")}else i=t.data}else if(n){if(e===void 0)throw new Error("Please provide image config with format for Imagebitmap");let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;return u.drawImage(t,0,0,f,l),i=u.getImageData(0,0,f,l).data,s.height=l,s.width=f,tg(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((g,u)=>{let l=o(),f=c(l);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{l.width=p.width,l.height=p.height,f.drawImage(p,0,0,l.width,l.height);let h=f.getImageData(0,0,l.width,l.height);s.height=l.height,s.width=l.width,g(tg(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return tg(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},v0=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new sA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},O0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new sA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},_0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new sA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},M0=(t,e,A)=>new sA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),AG=Oe(()=>{"use strict";ai=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ko=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),em=!1,R0=()=>{if(!em){em=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(ai.set("int64",BigInt64Array),ko.set(BigInt64Array,"int64")),e&&(ai.set("uint64",BigUint64Array),ko.set(BigUint64Array,"uint64")),r?(ai.set("float16",A),ko.set(A,"float16")):ai.set("float16",Uint16Array)}}}),rG=Oe(()=>{"use strict";Em(),Q0=t=>{let e=1;for(let A=0;A<t.length;A++){let r=t[A];if(typeof r!="number"||!Number.isSafeInteger(r))throw new TypeError(`dims[${A}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${A}] must be a non-negative integer, got: ${r}`);e*=r}return e},F0=(t,e)=>{switch(t.location){case"cpu":return new sA(t.type,t.data,e);case"cpu-pinned":return new sA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new sA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new sA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new sA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),Em=Oe(()=>{"use strict";eG(),tG(),AG(),rG(),sA=class{constructor(t,e,A){R0();let r,n;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,n=t.dims,t.location){case"cpu-pinned":{let i=ai.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,s;if(typeof t=="string")if(r=t,s=A,t==="string"){if(!Array.isArray(e))throw new TypeError("A string tensor's data must be a string array.");i=e}else{let o=ai.get(t);if(o===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(e)){if(t==="float16"&&o===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${o.name} as data.`);t==="uint64"||t==="int64"?i=o.from(e,BigInt):i=o.from(e)}else if(e instanceof o)i=e;else if(e instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(e);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(t==="float16"&&e instanceof Uint16Array&&o!==Uint16Array)i=new globalThis.Float16Array(e.buffer,e.byteOffset,e.length);else throw new TypeError(`A ${r} tensor's data must be type of ${o}`)}else if(s=e,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let o=typeof t[0];if(o==="string")r="string",i=t;else if(o==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${o}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let o=ko.get(t.constructor);if(o===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=o,i=t}if(s===void 0)s=[i.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");n=s,this.cpuData=i,this.dataLocation="cpu"}let a=Q0(n);if(this.cpuData&&a!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(t,e){return Y0(t,e)}static fromTexture(t,e){return v0(t,e)}static fromGpuBuffer(t,e){return O0(t,e)}static fromMLTensor(t,e){return _0(t,e)}static fromPinnedBuffer(t,e,A){return M0(t,e,A)}toDataURL(t){return x0(this,t)}toImageData(t){return S0(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let e=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=e,t&&this.disposer&&(this.disposer(),this.disposer=void 0),e}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return F0(this,t)}}}),z0=Oe(()=>{"use strict";Em(),jA=sA}),N0=Oe(()=>{"use strict";G0(),og=(t,e)=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.timeStamp(`${t}::ORT::${e}`)},tm=(t,e)=>{let A=new Error().stack?.split(/\r\n|\r|\n/g)||[],r=!1;for(let n=0;n<A.length;n++){if(r&&!A[n].includes("TRACE_FUNC")){let a=`FUNC_${t}::${A[n].trim().split(" ")[1]}`;e&&(a+=`::${e}`),og("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},ci=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||tm("BEGIN",t)},ui=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||tm("END",t)},dn=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.time(`ORT::${t}`)},fn=t=>{(typeof Tt.trace>"u"?!Tt.wasm.trace:!Tt.trace)||console.timeEnd(`ORT::${t}`)}}),nG=Oe(()=>{"use strict";T0(),z0(),N0(),H0=class U0{constructor(e){this.handler=e}async run(e,A,r){ci(),dn("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof jA||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if(typeof A=="object"){if(A===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof jA)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(A.length===0)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(let c of A){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);n[c]=null}if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,g=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(g.indexOf(u)!==-1){let l=A[u];(l===null||l instanceof jA)&&(c=!0,i=!1,n[u]=l)}if(c){if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else a=A}}else if(typeof A<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof e[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(i)for(let c of this.outputNames)n[c]=null;let s=await this.handler.run(e,n,a),o={};for(let c in s)if(Object.hasOwnProperty.call(s,c)){let g=s[c];g instanceof jA?o[c]=g:o[c]=new jA(g.type,g.data,g.dims)}return fn("InferenceSession.run"),ui(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){ci(),dn("InferenceSession.create");let a,i={};if(typeof e=="string"){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){let g=e,u=0,l=e.byteLength;if(typeof A=="object"&&A!==null)i=A;else if(typeof A=="number"){if(u=A,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=g.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${g.byteLength}).`);if(l=e.byteLength-u,typeof r=="number"){if(l=r,!Number.isSafeInteger(l))throw new RangeError("'byteLength' must be an integer.");if(l<=0||u+l>g.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${g.byteLength-u}].`);if(typeof n=="object"&&n!==null)i=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof r<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof A<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(g,u,l)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await E0(i),c=await s.createInferenceSessionHandler(a,o);return fn("InferenceSession.create"),ui(),new U0(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),iG=Oe(()=>{"use strict";nG(),Tm=H0}),aG=Oe(()=>{"use strict"}),sG=Oe(()=>{"use strict"}),oG=Oe(()=>{"use strict"}),cG=Oe(()=>{"use strict"}),q0={};xo(q0,{InferenceSession:()=>Tm,TRACE:()=>og,TRACE_EVENT_BEGIN:()=>dn,TRACE_EVENT_END:()=>fn,TRACE_FUNC_BEGIN:()=>ci,TRACE_FUNC_END:()=>ui,Tensor:()=>jA,env:()=>ct,registerBackend:()=>oi});gi=Oe(()=>{"use strict";$k(),Xk(),iG(),z0(),aG(),sG(),N0(),oG(),cG()}),km=Oe(()=>{"use strict"}),L0={};xo(L0,{default:()=>j0});uG=Oe(()=>{"use strict";sI(),li(),Gm(),Am="ort-wasm-proxy-worker",rm=globalThis.self?.name===Am,rm&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":xm(A.wasm).then(()=>{_m(A).then(()=>{postMessage({type:e})},r=>{postMessage({type:e,err:r})})},r=>{postMessage({type:e,err:r})});break;case"init-ep":{let{epName:r,env:n}=A;Mm(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=gg(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Rm(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Qm(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Fm(r,n,a,i,new Array(i.length).fill(null),s).then(o=>{o.some(c=>c[3]!=="cpu")?postMessage({type:e,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:e,out:o},Nm([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":zm(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),j0=rm?null:t=>new Worker(t??iA,{type:"module",name:Am})}),V0={};xo(V0,{default:()=>K0});gG=Oe(()=>{"use strict";K0=e0,t0=globalThis.self?.name?.startsWith("em-pthread"),t0&&e0()}),Gm=Oe(()=>{"use strict";km(),nm=typeof location>"u"?void 0:location.origin,Pm=LA.url>"file:"&&LA.url<"file;",A0=()=>{if(Pm){let t=URL;return new URL(new t("ort.webgpu.bundle.min.mjs",LA.url).href,nm).href}return LA.url},iA=A0(),W0=()=>{if(iA&&!iA.startsWith("blob:"))return iA.substring(0,iA.lastIndexOf("/")+1)},Ag=(t,e)=>{try{let A=e??iA;return(A?new URL(t,A):new URL(t)).origin===nm}catch{return!1}},r0=(t,e)=>{let A=e??iA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},n0=(t,e)=>`${e??"./"}${t}`,im=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},i0=async t=>(await import(t)).default,am=(uG(),sg(L0)).default,Z0=async()=>{if(!iA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Ag(iA))return[void 0,am()];let t=await im(iA);return[t,am(t)]},sm=(gG(),sg(V0)).default,$0=async(t,e,A,r)=>{let n=sm&&!(t||e);if(n)if(iA)n=Ag(iA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,sm];{let a="ort-wasm-simd-threaded.asyncify.mjs",i=t??r0(a,e),s=A&&i&&!Ag(i,e),o=s?await im(i):i??n0(a,e);return[s?o:void 0,await i0(o)]}}}),li=Oe(()=>{"use strict";Gm(),rg=!1,Co=!1,cm=!1,a0=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},s0=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},o0=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},xm=async t=>{if(rg)return Promise.resolve();if(Co)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(cm)throw new Error("previous call to 'initializeWebAssembly()' failed.");Co=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!o0())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!s0())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=a0();A>1&&!r&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+A+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),t.numThreads=A=1);let n=t.wasmPaths,a=typeof n=="string"?n:void 0,i=n?.mjs,s=i?.href??i,o=n?.wasm,c=o?.href??o,g=t.wasmBinary,[u,l]=await $0(s,a,A>1,!!g||!!c),f=!1,p=[];if(e>0&&p.push(new Promise(h=>{setTimeout(()=>{f=!0,h()},e)})),p.push(new Promise((h,y)=>{let w={numThreads:A};if(g)w.wasmBinary=g,w.locateFile=D=>D;else if(c||a)w.locateFile=D=>c??a+D;else if(s&&s.indexOf("blob:")!==0)w.locateFile=D=>new URL(D,s).href;else if(u){let D=W0();D&&(w.locateFile=b=>D+b)}l(w).then(D=>{Co=!1,rg=!0,om=D,h(),u&&URL.revokeObjectURL(u)},D=>{Co=!1,cm=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},je=()=>{if(rg&&om)return om;throw new Error("WebAssembly is not initialized yet.")}}),Sm=Oe(()=>{"use strict";li(),aA=(t,e)=>{let A=je(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},cg=(t,e,A,r)=>{if(typeof t=="object"&&t!==null){if(A.has(t))throw new Error("Circular reference in options");A.add(t)}Object.entries(t).forEach(([n,a])=>{let i=e?e+n:n;if(typeof a=="object")cg(a,i+".",A,r);else if(typeof a=="string"||typeof a=="number")r(i,a.toString());else if(typeof a=="boolean")r(i,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},He=t=>{let e=je(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetLastError(n,n+r);let a=Number(e.getValue(n,r===4?"i32":"i64")),i=e.getValue(n+r,"*"),s=i?e.UTF8ToString(i):"";throw new Error(`${t} ERROR_CODE: ${a}, ERROR_MESSAGE: ${s}`)}finally{e.stackRestore(A)}}}),lG=Oe(()=>{"use strict";li(),Sm(),J0=t=>{let e=je(),A=0,r=[],n=t||{};try{if(t?.logSeverityLevel===void 0)n.logSeverityLevel=2;else if(typeof t.logSeverityLevel!="number"||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${t.logSeverityLevel}`);if(t?.logVerbosityLevel===void 0)n.logVerbosityLevel=0;else if(typeof t.logVerbosityLevel!="number"||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);t?.terminate===void 0&&(n.terminate=!1);let a=0;return t?.tag!==void 0&&(a=aA(t.tag,r)),A=e._OrtCreateRunOptions(n.logSeverityLevel,n.logVerbosityLevel,!!n.terminate,a),A===0&&He("Can't create run options."),t?.extra!==void 0&&cg(t.extra,"",new WeakSet,(i,s)=>{let o=aA(i,r),c=aA(s,r);e._OrtAddRunConfigEntry(A,o,c)!==0&&He(`Can't set a run config entry: ${i} - ${s}.`)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseRunOptions(A),r.forEach(i=>e._free(i)),a}}}),dG=Oe(()=>{"use strict";li(),Sm(),c0=t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}},u0=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},g0=t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});let e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1"),t.executionProviders&&t.executionProviders.some(A=>(typeof A=="string"?A:A.name)==="webgpu")&&(t.enableMemPattern=!1)},Ya=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);je()._OrtAddSessionConfigEntry(t,n,a)!==0&&He(`Can't set a session config entry: ${e} - ${A}.`)},un=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);t.push([n,a])},l0=async(t,e,A)=>{let r=e.executionProviders;for(let n of r){let a=typeof n=="string"?n:n.name,i=[];switch(a){case"webnn":if(a="WEBNN",Ya(t,"session.disable_quant_qdq","1",A),Ya(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Ya(t,"deviceType",u,A)}break;case"webgpu":{a="WebGPU";let u;if(typeof n!="string"){let f=n;if(f.device)if(typeof GPUDevice<"u"&&f.device instanceof GPUDevice)u=f.device;else throw new Error("Invalid GPU device set in WebGPU EP options.");let{enableGraphCapture:p}=e;if(typeof p=="boolean"&&p&&un(i,"enableGraphCapture","1",A),typeof f.preferredLayout=="string"&&un(i,"preferredLayout",f.preferredLayout,A),f.forceCpuNodeNames){let h=Array.isArray(f.forceCpuNodeNames)?f.forceCpuNodeNames:[f.forceCpuNodeNames];un(i,"forceCpuNodeNames",h.join(`
11
+ `),A)}f.validationMode&&un(i,"validationMode",f.validationMode,A)}let l=je().webgpuRegisterDevice(u);if(l){let[f,p,h]=l;un(i,"deviceId",f.toString(),A),un(i,"webgpuInstance",p.toString(),A),un(i,"webgpuDevice",h.toString(),A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=aA(a,A),o=i.length,c=0,g=0;if(o>0){c=je()._malloc(o*je().PTR_SIZE),A.push(c),g=je()._malloc(o*je().PTR_SIZE),A.push(g);for(let u=0;u<o;u++)je().setValue(c+u*je().PTR_SIZE,i[u][0],"*"),je().setValue(g+u*je().PTR_SIZE,i[u][1],"*")}await je()._OrtAppendExecutionProvider(t,s,c,g,o)!==0&&He(`Can't append execution provider: ${a}.`)}},X0=async t=>{let e=je(),A=0,r=[],n=t||{};g0(n);try{let a=c0(n.graphOptimizationLevel??"all"),i=u0(n.executionMode??"sequential"),s=typeof n.logId=="string"?aA(n.logId,r):0,o=n.logSeverityLevel??2;if(!Number.isInteger(o)||o<0||o>4)throw new Error(`log severity level is not valid: ${o}`);let c=n.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let g=typeof n.optimizedModelFilePath=="string"?aA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,g),A===0&&He("Can't create session options."),n.executionProviders&&await l0(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Ya(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,l]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof l!="number"||!Number.isInteger(l)||l<0)throw new Error(`free dimension override value must be a non-negative integer: ${l}`);let f=aA(u,r);e._OrtAddFreeDimensionOverride(A,f,l)!==0&&He(`Can't set a free dimension override: ${u} - ${l}.`)}return n.extra!==void 0&&cg(n.extra,"",new WeakSet,(u,l)=>{Ya(A,u,l,r)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseSessionOptions(A)!==0&&He("Can't release session options."),r.forEach(i=>e._free(i)),a}}}),_a=Oe(()=>{"use strict";si=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${t}`)}},ag=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${t}`)}},Oa=(t,e)=>{let A=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][t],r=typeof e=="number"?e:e.reduce((n,a)=>n*a,1);return A>0?Math.ceil(r*A):void 0},Go=t=>{switch(t){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}},ug=t=>{switch(t){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${t}`)}},Ym=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",vm=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",ym=t=>{switch(t){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${t}`)}}}),eI=Oe(()=>{"use strict";km(),Om=async t=>{if(typeof t=="string"){let e=await fetch(t);if(!e.ok)throw new Error(`failed to load external data file: ${t}`);let A=e.headers.get("Content-Length"),r=A?parseInt(A,10):0;if(r<1073741824)return new Uint8Array(await e.arrayBuffer());{if(!e.body)throw new Error(`failed to load external data file: ${t}, no response body.`);let n=e.body.getReader(),a;try{a=new ArrayBuffer(r)}catch(s){if(s instanceof RangeError){let o=Math.ceil(r/65536);a=new WebAssembly.Memory({initial:o,maximum:o}).buffer}else throw s}let i=0;for(;;){let{done:s,value:o}=await n.read();if(s)break;let c=o.byteLength;new Uint8Array(a,i,c).set(o),i+=c}return new Uint8Array(a,0,r)}}else return t instanceof Blob?new Uint8Array(await t.arrayBuffer()):t instanceof Uint8Array?t:new Uint8Array(t)}}),fG=Oe(()=>{"use strict";_a(),tI=(t,e)=>new(Go(e))(t)}),rI=Oe(()=>{"use strict";_a(),d0=["V","I","W","E","F"],f0=(t,e)=>{console.log(`[${d0[t]},${new Date().toISOString()}]${e}`)},AI=(t,e)=>{m0=t,h0=e},p0=(t,e)=>{let A=ug(t),r=ug(m0);A>=r&&f0(A,typeof e=="function"?e():e)},St=(...t)=>{h0&&p0(...t)}}),mG=Oe(()=>{"use strict";_a(),rI(),um=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Im=(t,e)=>{if(e==="int32")return t;let A=um.get(e);if(!A)throw new Error(`WebNN backend does not support data type: ${e}`);let r=A/8;if(t.byteLength%r!==0)throw new Error(`Invalid Uint8Array length - must be a multiple of ${r}.`);let n=t.byteLength/r,a=new(Go(e))(t.buffer,t.byteOffset,n);switch(e){case"int64":case"uint64":{let i=new Int32Array(n);for(let s=0;s<n;s++){let o=a[s];if(o>2147483647n||o<-2147483648n)throw new Error("Can not convert int64 data to int32 - value out of range.");i[s]=Number(o)}return new Uint8Array(i.buffer)}case"int8":case"uint8":case"uint32":{if(e==="uint32"&&a.some(s=>s>2147483647))throw new Error("Can not convert uint32 data to int32 - value out of range.");let i=Int32Array.from(a,Number);return new Uint8Array(i.buffer)}default:throw new Error(`Unsupported data conversion from ${e} to 'int32'`)}},gm=(t,e)=>{if(e==="int32")return t;if(t.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (int32).");let A=t.byteLength/4,r=new Int32Array(t.buffer,t.byteOffset,A);switch(e){case"int64":{let n=BigInt64Array.from(r,BigInt);return new Uint8Array(n.buffer)}case"uint64":{if(r.some(a=>a<0))throw new Error("Can not convert int32 data to uin64 - negative value found.");let n=BigUint64Array.from(r,BigInt);return new Uint8Array(n.buffer)}case"int8":{if(r.some(a=>a<-128||a>127))throw new Error("Can not convert int32 data to int8 - value out of range.");let n=Int8Array.from(r,Number);return new Uint8Array(n.buffer)}case"uint8":{if(r.some(n=>n<0||n>255))throw new Error("Can not convert int32 data to uint8 - value out of range.");return Uint8Array.from(r,Number)}case"uint32":{if(r.some(a=>a<0))throw new Error("Can not convert int32 data to uint32 - negative value found.");let n=Uint32Array.from(r,Number);return new Uint8Array(n.buffer)}default:throw new Error(`Unsupported data conversion from 'int32' to ${e}`)}},w0=1,lm=()=>w0++,B0=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),dm=(t,e)=>{let A=um.get(t);if(!A)throw new Error(`WebNN backend does not support data type: ${t}`);return e.length>0?Math.ceil(e.reduce((r,n)=>r*n)*A/8):0},fm=class{constructor(t){this.isDataConverted=!1;let{sessionId:e,context:A,tensor:r,dataType:n,shape:a,fallbackDataType:i}=t;this.sessionId=e,this.mlContext=A,this.mlTensor=r,this.dataType=n,this.tensorShape=a,this.fallbackDataType=i}get tensor(){return this.mlTensor}get type(){return this.dataType}get fallbackType(){return this.fallbackDataType}get shape(){return this.tensorShape}get byteLength(){return dm(this.dataType,this.tensorShape)}destroy(){St("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(t){this.mlContext.writeTensor(this.mlTensor,t)}async read(t){if(this.fallbackDataType){let e=await this.mlContext.readTensor(this.mlTensor),A=gm(new Uint8Array(e),this.dataType);if(t){(t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)).set(A);return}else return A.buffer}else return t?this.mlContext.readTensor(this.mlTensor,t):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(t,e,A){return this.mlContext===t&&this.dataType===e&&this.tensorShape.length===A.length&&this.tensorShape.every((r,n)=>r===A[n])}setIsDataConverted(t){this.isDataConverted=t}},mm=class{constructor(t,e){this.tensorManager=t,this.wrapper=e}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(t,e,A,r){let n=this.tensorManager.getMLContext(t),a=this.tensorManager.getMLOpSupportLimits(t),i;if(!a?.input.dataTypes.includes(e)){if(i=B0.get(e),!i||a?.input.dataTypes.includes(i))throw new Error(`WebNN backend does not support data type: ${e}`);St("verbose",()=>`[WebNN] TensorIdTracker.ensureTensor: fallback dataType from ${e} to ${i}`)}if(this.wrapper){if(this.wrapper.canReuseTensor(n,e,A))return this.wrapper.tensor;if(r){if(this.wrapper.byteLength!==dm(e,A))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let s=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(t,e,A,s,!0,!0,i),r&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(t){let e=t;if(this.wrapper){if(this.wrapper.fallbackType)if(this.wrapper.fallbackType==="int32")e=Im(t,this.wrapper.type),this.wrapper.setIsDataConverted(!0);else throw new Error(`Unsupported fallback data type: ${this.wrapper.fallbackType}`);if(t.byteLength===this.wrapper.byteLength){this.wrapper.write(e);return}else St("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor()}this.activeUpload?this.activeUpload.set(e):this.activeUpload=new Uint8Array(e)}async download(t){if(this.activeUpload){let e=this.wrapper?.isDataConverted?gm(this.activeUpload,this.wrapper?.type):this.activeUpload;if(t){t instanceof ArrayBuffer?new Uint8Array(t).set(e):new Uint8Array(t.buffer,t.byteOffset,t.byteLength).set(e);return}else return e.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return t?this.wrapper.read(t):this.wrapper.read()}},P0=class{constructor(t){this.backend=t,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(t){let e=this.backend.getMLContext(t);if(!e)throw new Error("MLContext not found for session.");return e}getMLOpSupportLimits(t){return this.backend.getMLOpSupportLimits(t)}reserveTensorId(){let t=lm();return this.tensorTrackersById.set(t,new mm(this)),t}releaseTensorId(t){let e=this.tensorTrackersById.get(t);e&&(this.tensorTrackersById.delete(t),e.tensorWrapper&&this.releaseTensor(e.tensorWrapper))}async ensureTensor(t,e,A,r,n){St("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${e}, dataType: ${A}, shape: ${r}, copyOld: ${n}}`);let a=this.tensorTrackersById.get(e);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(t,A,r,n)}upload(t,e){let A=this.tensorTrackersById.get(t);if(!A)throw new Error("Tensor not found.");A.upload(e)}async download(t,e){St("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${t}, dstBuffer: ${e?.byteLength}}`);let A=this.tensorTrackersById.get(t);if(!A)throw new Error("Tensor not found.");return A.download(e)}releaseTensorsForSession(t){for(let e of this.freeTensors)e.sessionId===t&&e.destroy();this.freeTensors=this.freeTensors.filter(e=>e.sessionId!==t)}registerTensor(t,e,A,r){let n=this.getMLContext(t),a=lm(),i=new fm({sessionId:t,context:n,tensor:e,dataType:A,shape:r});return this.tensorTrackersById.set(a,new mm(this,i)),this.externalTensors.add(i),a}async getCachedTensor(t,e,A,r,n,a,i){let s=this.getMLContext(t);for(let[c,g]of this.freeTensors.entries())if(g.canReuseTensor(s,e,A)){St("verbose",()=>`[WebNN] Reusing tensor {dataType: ${e}, ${i?`fallbackDataType: ${i},`:""} shape: ${A}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=t,u}St("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${e}, ${i?`fallbackDataType: ${i},`:""} shape: ${A}}`);let o=await s.createTensor({dataType:i??e,shape:A,dimensions:A,usage:r,writable:n,readable:a});return new fm({sessionId:t,context:s,tensor:o,dataType:e,shape:A,fallbackDataType:i})}releaseTensor(t){this.externalTensors.has(t)&&this.externalTensors.delete(t),this.freeTensors.push(t)}},nI=(...t)=>new P0(...t)}),iI={};xo(iI,{WebNNBackend:()=>aI});hG=Oe(()=>{"use strict";_a(),li(),fG(),mG(),rI(),bo=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),y0=(t,e)=>{if(t===e)return!0;if(t===void 0||e===void 0)return!1;let A=Object.keys(t).sort(),r=Object.keys(e).sort();return A.length===r.length&&A.every((n,a)=>n===r[a]&&t[n]===e[n])},aI=class{constructor(t){this.tensorManager=nI(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.sessionGraphOutputs=new Map,this.temporaryGraphInputs=[],this.temporaryGraphOutputs=[],this.temporarySessionTensorIds=new Map,this.mlOpSupportLimitsBySessionId=new Map,AI(t.logLevel,!!t.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(t){St("verbose",()=>`[WebNN] onRunStart {sessionId: ${t}}`),this.activeSessionId=t}onRunEnd(t){St("verbose",()=>`[WebNN] onRunEnd {sessionId: ${t}}`);let e=this.temporarySessionTensorIds.get(t);if(e){for(let A of e)St("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${A}}`),this.tensorManager.releaseTensorId(A);this.temporarySessionTensorIds.delete(t),this.activeSessionId=void 0}}async createMLContext(t){if(t instanceof GPUDevice){let A=this.mlContextCache.findIndex(r=>r.gpuDevice===t);if(A!==-1)return this.mlContextCache[A].mlContext;{let r=await navigator.ml.createContext(t);return this.mlContextCache.push({gpuDevice:t,mlContext:r}),r}}else if(t===void 0){let A=this.mlContextCache.findIndex(r=>r.options===void 0&&r.gpuDevice===void 0);if(A!==-1)return this.mlContextCache[A].mlContext;{let r=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:r}),r}}let e=this.mlContextCache.findIndex(A=>y0(A.options,t));if(e!==-1)return this.mlContextCache[e].mlContext;{let A=await navigator.ml.createContext(t);return this.mlContextCache.push({options:t,mlContext:A}),A}}registerMLContext(t,e){this.mlContextBySessionId.set(t,e);let A=this.sessionIdsByMLContext.get(e);A||(A=new Set,this.sessionIdsByMLContext.set(e,A)),A.add(t),this.mlOpSupportLimitsBySessionId.has(t)||this.mlOpSupportLimitsBySessionId.set(t,e.opSupportLimits()),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(t,this.temporaryGraphInputs),this.temporaryGraphInputs=[]),this.temporaryGraphOutputs.length>0&&(this.sessionGraphOutputs.set(t,this.temporaryGraphOutputs),this.temporaryGraphOutputs=[])}onReleaseSession(t){this.sessionGraphInputs.delete(t),this.sessionGraphOutputs.delete(t);let e=this.mlContextBySessionId.get(t);if(!e)return;this.tensorManager.releaseTensorsForSession(t),this.mlContextBySessionId.delete(t),this.mlOpSupportLimitsBySessionId.delete(t);let A=this.sessionIdsByMLContext.get(e);if(A.delete(t),A.size===0){this.sessionIdsByMLContext.delete(e);let r=this.mlContextCache.findIndex(n=>n.mlContext===e);r!==-1&&this.mlContextCache.splice(r,1)}}getMLContext(t){return this.mlContextBySessionId.get(t)}getMLOpSupportLimits(t){return this.mlOpSupportLimitsBySessionId.get(t)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(t){St("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t)}async ensureTensor(t,e,A,r,n){let a=bo.get(A);if(!a)throw new Error(`Unsupported ONNX data type: ${A}`);return this.tensorManager.ensureTensor(t??this.currentSessionId,e,a,r,n)}async createTemporaryTensor(t,e,A){St("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${e}, shape: ${A}}`);let r=bo.get(e);if(!r)throw new Error(`Unsupported ONNX data type: ${e}`);let n=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(t,n,r,A,!1);let a=this.temporarySessionTensorIds.get(t);return a?a.push(n):this.temporarySessionTensorIds.set(t,[n]),n}uploadTensor(t,e){if(!je().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");St("verbose",()=>`[WebNN] uploadTensor {tensorId: ${t}, data: ${e.byteLength}}`),this.tensorManager.upload(t,e)}async downloadTensor(t,e){return this.tensorManager.download(t,e)}createMLTensorDownloader(t,e){return async()=>{let A=await this.tensorManager.download(t);return tI(A,e)}}registerMLTensor(t,e,A,r){let n=bo.get(A);if(!n)throw new Error(`Unsupported ONNX data type: ${A}`);let a=this.tensorManager.registerTensor(t,e,n,r);return St("verbose",()=>`[WebNN] registerMLTensor {tensor: ${e}, dataType: ${n}, dimensions: ${r}} -> {tensorId: ${a}}`),a}registerMLConstant(t,e,A,r,n,a,i=!1){if(!a)throw new Error("External mounted files are not available.");let s=t;t.startsWith("./")&&(s=t.substring(2));let o=a.get(s);if(!o)throw new Error(`File with name ${s} not found in preloaded files.`);if(e+A>o.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=o.slice(e,e+A).buffer,g;switch(n.dataType){case"float32":g=new Float32Array(c);break;case"float16":g=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":g=new Int32Array(c);break;case"uint32":g=new Uint32Array(c);break;case"int64":if(i){let u=Im(new Uint8Array(c),"int64");g=new Int32Array(u.buffer),n.dataType="int32"}else g=new BigInt64Array(c);break;case"uint64":g=new BigUint64Array(c);break;case"int8":g=new Int8Array(c);break;case"int4":case"uint4":case"uint8":g=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${n.dataType} in creating WebNN Constant from external data.`)}return St("verbose",()=>`[WebNN] registerMLConstant {dataType: ${n.dataType}, shape: ${n.shape}}} ${i?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),r.constant(n,g)}registerGraphInput(t){this.temporaryGraphInputs.push(t)}registerGraphOutput(t){this.temporaryGraphOutputs.push(t)}isGraphInput(t,e){let A=this.sessionGraphInputs.get(t);return A?A.includes(e):!1}isGraphOutput(t,e){let A=this.sessionGraphOutputs.get(t);return A?A.includes(e):!1}isGraphInputOutputTypeSupported(t,e,A=!0){let r=bo.get(si(e)),n=this.mlOpSupportLimitsBySessionId.get(t);return typeof r>"u"?!1:A?!!n?.input.dataTypes.includes(r):!!n?.output.dataTypes.includes(r)}flush(){}}}),sI=Oe(()=>{"use strict";gi(),lG(),dG(),_a(),li(),Sm(),eI(),I0=(t,e)=>{je()._OrtInit(t,e)!==0&&He("Can't initialize onnxruntime.")},_m=async t=>{I0(t.wasm.numThreads,ug(t.logLevel))},Mm=async(t,e)=>{je().asyncInit?.();let A=t.webgpu.adapter;if(e==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(A){if(typeof A.limits!="object"||typeof A.features!="object"||typeof A.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let r=t.webgpu.powerPreference;if(r!==void 0&&r!=="low-power"&&r!=="high-performance")throw new Error(`Invalid powerPreference setting: "${r}"`);let n=t.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(A=await navigator.gpu.requestAdapter({powerPreference:r,forceFallbackAdapter:n}),!A)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(e==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment");if(e==="webgpu"&&je().webgpuInit(r=>{t.webgpu.device=r}),e==="webnn"){let r=new(hG(),sg(iI)).WebNNBackend(t);je().webnnInit([r,()=>r.reserveTensorId(),n=>r.releaseTensorId(n),async(n,a,i,s,o)=>r.ensureTensor(n,a,i,s,o),(n,a)=>{r.uploadTensor(n,a)},async(n,a)=>r.downloadTensor(n,a),(n,a)=>r.registerMLContext(n,a),!!t.trace])}},gn=new Map,D0=t=>{let e=je(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetInputOutputCount(t,n,n+r)!==0&&He("Can't get session input/output count.");let a=r===4?"i32":"i64";return[Number(e.getValue(n,a)),Number(e.getValue(n+r,a))]}finally{e.stackRestore(A)}},hm=(t,e)=>{let A=je(),r=A.stackSave(),n=0;try{let a=A.PTR_SIZE,i=A.stackAlloc(2*a);A._OrtGetInputOutputMetadata(t,e,i,i+a)!==0&&He("Can't get session input/output metadata.");let s=Number(A.getValue(i,"*"));n=Number(A.getValue(i+a,"*"));let o=A.HEAP32[n/4];if(o===0)return[s,0];let c=A.HEAPU32[n/4+1],g=[];for(let u=0;u<c;u++){let l=Number(A.getValue(n+8+u*a,"*"));g.push(l!==0?A.UTF8ToString(l):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,g]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},gg=t=>{let e=je(),A=e._malloc(t.byteLength);if(A===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${t.byteLength}.`);return e.HEAPU8.set(t,A),[A,t.byteLength]},Rm=async(t,e)=>{let A,r,n=je();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=gg(t);let a=0,i=0,s=0,o=[],c=[],g=[];try{if([i,o]=await X0(e),e?.externalData&&n.mountExternalData){let E=[];for(let x of e.externalData){let S=typeof x=="string"?x:x.path;E.push(Om(typeof x=="string"?x:x.data).then(k=>{n.mountExternalData(S,k)}))}await Promise.all(E)}for(let E of e?.executionProviders??[])if((typeof E=="string"?E:E.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof E!="string"){let x=E,S=x?.context,k=x?.gpuDevice,R=x?.deviceType,M=x?.powerPreference;S?n.currentContext=S:k?n.currentContext=await n.webnnCreateMLContext(k):n.currentContext=await n.webnnCreateMLContext({deviceType:R,powerPreference:M})}else n.currentContext=await n.webnnCreateMLContext();break}a=await n._OrtCreateSession(A,r,i),n.webgpuOnCreateSession?.(a),a===0&&He("Can't create a session."),n.jsepOnCreateSession?.(),n.currentContext&&(n.webnnRegisterMLContext(a,n.currentContext),n.currentContext=void 0,n.shouldTransferToMLTensor=!0);let[u,l]=D0(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let E=0;E<u;E++){let[x,S,k]=hm(a,E);x===0&&He("Can't get an input name."),c.push(x);let R=n.UTF8ToString(x);p.push(R),y.push(S===0?{name:R,isTensor:!1}:{name:R,isTensor:!0,type:ag(S),shape:k})}for(let E=0;E<l;E++){let[x,S,k]=hm(a,E+u);x===0&&He("Can't get an output name."),g.push(x);let R=n.UTF8ToString(x);h.push(R),w.push(S===0?{name:R,isTensor:!1}:{name:R,isTensor:!0,type:ag(S),shape:k});{if(f&&e?.preferredOutputLocation===void 0){D.push("gpu-buffer");continue}let M=typeof e?.preferredOutputLocation=="string"?e.preferredOutputLocation:e?.preferredOutputLocation?.[R]??"cpu",N=n.webnnIsGraphOutput;if(M==="cpu"&&N&&N(a,R)){D.push("ml-tensor-cpu-output");continue}if(M!=="cpu"&&M!=="cpu-pinned"&&M!=="gpu-buffer"&&M!=="ml-tensor")throw new Error(`Not supported preferred output location: ${M}.`);if(f&&M!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${M}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);D.push(M)}}let b=null;return D.some(E=>E==="gpu-buffer"||E==="ml-tensor"||E==="ml-tensor-cpu-output")&&(s=n._OrtCreateBinding(a),s===0&&He("Can't create IO binding."),b={handle:s,outputPreferredLocations:D,outputPreferredLocationsEncoded:D.map(E=>E==="ml-tensor-cpu-output"?"ml-tensor":E).map(E=>ym(E))}),gn.set(a,[a,c,g,b,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(l=>n._OrtFree(l)),g.forEach(l=>n._OrtFree(l)),s!==0&&n._OrtReleaseBinding(s)!==0&&He("Can't release IO binding."),a!==0&&n._OrtReleaseSession(a)!==0&&He("Can't release session."),u}finally{n._free(A),i!==0&&n._OrtReleaseSessionOptions(i)!==0&&He("Can't release session options."),o.forEach(u=>n._free(u)),n.unmountExternalData?.()}},Qm=t=>{let e=je(),A=gn.get(t);if(!A)throw new Error(`cannot release session. invalid session id: ${t}`);let[r,n,a,i,s]=A;i&&(s&&e._OrtClearBoundOutputs(i.handle)!==0&&He("Can't clear bound outputs."),e._OrtReleaseBinding(i.handle)!==0&&He("Can't release IO binding.")),e.jsepOnReleaseSession?.(t),e.webnnOnReleaseSession?.(t),e.webgpuOnReleaseSession?.(t),n.forEach(o=>e._OrtFree(o)),a.forEach(o=>e._OrtFree(o)),e._OrtReleaseSession(r)!==0&&He("Can't release session."),gn.delete(t)},pm=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=je(),o=s.PTR_SIZE,c=t[0],g=t[1],u=t[3],l=u,f,p;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let w=t[2].gpuBuffer;p=Oa(si(c),g);{let D=s.webgpuRegisterBuffer;if(!D)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');f=D(w,r)}}else if(u==="ml-tensor"){let w=t[2].mlTensor;p=Oa(si(c),g);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,si(c),g)}else{let w=t[2];if(Array.isArray(w)){p=o*w.length,f=s._malloc(p),A.push(f);for(let D=0;D<w.length;D++){if(typeof w[D]!="string")throw new TypeError(`tensor data at index ${D} is not a string`);s.setValue(f+D*o,aA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,b=s.webnnIsGraphOutput;if(c!=="string"&&D&&b){let E=s.UTF8ToString(n);if(D(r,E)||b(r,E)){let x=si(c);p=Oa(x,g),l="ml-tensor";let S=s.webnnCreateTemporaryTensor,k=s.webnnUploadTensor;if(!S||!k)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let R=await S(r,x,g);k(R,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=R}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}}let h=s.stackSave(),y=s.stackAlloc(4*g.length);try{g.forEach((D,b)=>s.setValue(y+b*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(si(c),f,p,y,g.length,ym(l));w===0&&He(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Fm=async(t,e,A,r,n,a)=>{let i=je(),s=i.PTR_SIZE,o=gn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],g=o[1],u=o[2],l=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],b=[],E=[],x=[],S=[],k=i.stackSave(),R=i.stackAlloc(h*s),M=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=J0(a),dn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await pm(A[_],b,x,t,g[e[_]],e[_],f);for(let _=0;_<y;_++)await pm(n[_],E,x,t,u[r[_]],h+r[_],f);fn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(R+_*s,b[_],"*"),i.setValue(M+_*s,g[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,E[_],"*"),i.setValue(V+_*s,u[r[_]],"*");if(l&&!p){let{handle:_,outputPreferredLocations:W,outputPreferredLocationsEncoded:pe}=l;if(g.length!==h)throw new Error(`input count from feeds (${h}) is expected to be always equal to model's input count (${g.length}).`);dn("wasm bindInputsOutputs");for(let Ae=0;Ae<h;Ae++){let De=e[Ae];await i._OrtBindInput(_,g[De],b[Ae])!==0&&He(`Can't bind input[${Ae}] for session=${t}.`)}for(let Ae=0;Ae<y;Ae++){let De=r[Ae];n[Ae]?.[3]?(S.push(E[Ae]),i._OrtBindOutput(_,u[De],E[Ae],0)!==0&&He(`Can't bind pre-allocated output[${Ae}] for session=${t}.`)):i._OrtBindOutput(_,u[De],0,pe[De])!==0&&He(`Can't bind output[${Ae}] to ${W[Ae]} for session=${t}.`)}fn("wasm bindInputsOutputs"),gn.set(t,[c,g,u,l,f,!0])}i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;l?F=await i._OrtRunWithBinding(c,l.handle,y,N,w):F=await i._OrtRun(c,M,R,h,V,y,N,w),F!==0&&He("failed to call OrtRun().");let K=[],L=[];dn("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===E[_]||S.includes(E[_])){K.push(n[_]),W!==E[_]&&i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.");continue}let pe=i.stackSave(),Ae=i.stackAlloc(4*s),De=!1,ae,we=0;try{i._OrtGetTensorData(W,Ae,Ae+s,Ae+2*s,Ae+3*s)!==0&&He(`Can't access output tensor data on index ${_}.`);let et=s===4?"i32":"i64",tt=Number(i.getValue(Ae,et));we=i.getValue(Ae+s,"*");let $e=i.getValue(Ae+s*2,"*"),pA=Number(i.getValue(Ae+s*3,et)),Je=[];for(let Be=0;Be<pA;Be++)Je.push(Number(i.getValue($e+Be*s,et)));i._OrtFree($e)!==0&&He("Can't free memory for tensor dims.");let qe=Je.reduce((Be,se)=>Be*se,1);ae=ag(tt);let ut=l?.outputPreferredLocations[r[_]];if(ae==="string"){if(ut==="gpu-buffer"||ut==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let se=0;se<qe;se++){let ue=i.getValue(we+se*s,"*"),Yt=i.getValue(we+(se+1)*s,"*"),Se=se===qe-1?void 0:Yt-ue;Be.push(i.UTF8ToString(ue,Se))}K.push([ae,Je,Be,"cpu"])}else if(ut==="gpu-buffer"&&qe>0){let Be=i.webgpuGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let se=Be(we),ue=Oa(tt,qe);if(ue===void 0||!Ym(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0;{i.webgpuRegisterBuffer(se,t,we);let Yt=i.webgpuCreateDownloader(se,ue,t);K.push([ae,Je,{gpuBuffer:se,download:async()=>{let Se=await Yt();return new(Go(ae))(Se)},dispose:()=>{i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.")}},"gpu-buffer"])}}else if(ut==="ml-tensor"&&qe>0){let Be=i.webnnEnsureTensor,se=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!se)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Oa(tt,qe)===void 0||!vm(ae))throw new Error(`Unsupported data type: ${ae}`);if(!se(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let ue=await Be(t,we,tt,Je,!1);De=!0,K.push([ae,Je,{mlTensor:ue,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&qe>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),se=K.length;De=!0,L.push((async()=>{let ue=[se,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),ue})()),K.push([ae,Je,[],"cpu"])}else{let Be=Go(ae),se=new Be(qe);new Uint8Array(se.buffer,se.byteOffset,se.byteLength).set(i.HEAPU8.subarray(we,we+se.byteLength)),K.push([ae,Je,se,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}l&&!f&&(i._OrtClearBoundOutputs(l.handle)!==0&&He("Can't clear bound outputs."),gn.set(t,[c,g,u,l,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return fn("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),A.forEach(F=>{F&&F[3]==="gpu-buffer"&&i.webgpuUnregisterBuffer(F[2].gpuBuffer)}),n.forEach(F=>{F&&F[3]==="gpu-buffer"&&i.webgpuUnregisterBuffer(F[2].gpuBuffer)}),b.forEach(F=>i._OrtReleaseTensor(F)),E.forEach(F=>i._OrtReleaseTensor(F)),x.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},zm=t=>{let e=je(),A=gn.get(t);if(!A)throw new Error("invalid session id");let r=A[0],n=e._OrtEndProfiling(r);n===0&&He("Can't get an profile file name."),e._OrtFree(n)},Nm=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),mI=Oe(()=>{"use strict";gi(),sI(),li(),Gm(),ln=()=>!!ct.wasm.proxy&&typeof document<"u",va=!1,Eo=!1,To=!1,ig=new Map,ni=(t,e)=>{let A=ig.get(t);A?A.push(e):ig.set(t,[e])},ii=()=>{if(va||!Eo||To||!mA)throw new Error("worker not ready")},C0=t=>{switch(t.data.type){case"init-wasm":va=!1,t.data.err?(To=!0,wm[1](t.data.err)):(Eo=!0,wm[0]()),ng&&(URL.revokeObjectURL(ng),ng=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=ig.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},oI=async()=>{if(!Eo){if(va)throw new Error("multiple calls to 'initWasm()' detected.");if(To)throw new Error("previous call to 'initWasm()' failed.");if(va=!0,ln())return new Promise((t,e)=>{mA?.terminate(),Z0().then(([A,r])=>{try{mA=r,mA.onerror=a=>e(a),mA.onmessage=C0,wm=[t,e];let n={type:"init-wasm",in:ct};!n.in.wasm.wasmPaths&&(A||Pm)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href}),mA.postMessage(n),ng=A}catch(n){e(n)}},e)});try{await xm(ct.wasm),await _m(ct),Eo=!0}catch(t){throw To=!0,t}finally{va=!1}}},cI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:ct}};mA.postMessage(r)});await Mm(ct,t)},uI=async t=>ln()?(ii(),new Promise((e,A)=>{ni("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};mA.postMessage(r,[t.buffer])})):gg(t),gI=async(t,e)=>{if(ln()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return ii(),new Promise((A,r)=>{ni("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),mA.postMessage(n,a)})}else return Rm(t,e)},lI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("release",[e,A]);let r={type:"release",in:t};mA.postMessage(r)});Qm(t)},dI=async(t,e,A,r,n,a)=>{if(ln()){if(A.some(i=>i[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(n.some(i=>i))throw new Error("pre-allocated output tensor is not supported for proxy.");return ii(),new Promise((i,s)=>{ni("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};mA.postMessage(c,Nm(o))})}else return Fm(t,e,A,r,n,a)},fI=async t=>{if(ln())return ii(),new Promise((e,A)=>{ni("end-profiling",[e,A]);let r={type:"end-profiling",in:t};mA.postMessage(r)});zm(t)}}),pG=Oe(()=>{"use strict";gi(),mI(),_a(),km(),eI(),Bm=(t,e)=>{switch(t.location){case"cpu":return[t.type,t.dims,t.data,"cpu"];case"gpu-buffer":return[t.type,t.dims,{gpuBuffer:t.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[t.type,t.dims,{mlTensor:t.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${t.location} for ${e()}`)}},b0=t=>{switch(t[3]){case"cpu":return new jA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!Ym(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return jA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!vm(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return jA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},hI=class{async fetchModelAndCopyToWasmMemory(t){return uI(await Om(t))}async loadModel(t,e){ci();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await gI(A,e),ui()}async dispose(){return lI(this.sessionId)}async run(t,e,A){ci();let r=[],n=[];Object.entries(t).forEach(u=>{let l=u[0],f=u[1],p=this.inputNames.indexOf(l);if(p===-1)throw new Error(`invalid input '${l}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let l=u[0],f=u[1],p=this.outputNames.indexOf(l);if(p===-1)throw new Error(`invalid output '${l}'`);a.push(f),i.push(p)});let s=r.map((u,l)=>Bm(u,()=>`input "${this.inputNames[n[l]]}"`)),o=a.map((u,l)=>u?Bm(u,()=>`output "${this.outputNames[i[l]]}"`):null),c=await dI(this.sessionId,n,s,i,o,A),g={};for(let u=0;u<c.length;u++)g[this.outputNames[i[u]]]=a[u]??b0(c[u]);return ui(),g}startProfiling(){}endProfiling(){fI(this.sessionId)}}}),pI={};xo(pI,{OnnxruntimeWebAssemblyBackend:()=>Cm,initializeFlags:()=>Dm,wasmBackend:()=>wI});wG=Oe(()=>{"use strict";gi(),mI(),pG(),Dm=()=>{(typeof ct.wasm.initTimeout!="number"||ct.wasm.initTimeout<0)&&(ct.wasm.initTimeout=0);let t=ct.wasm.simd;if(typeof t!="boolean"&&t!==void 0&&t!=="fixed"&&t!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${t}". Reset it to \`false\` and ignore SIMD feature checking.`),ct.wasm.simd=!1),typeof ct.wasm.proxy!="boolean"&&(ct.wasm.proxy=!1),typeof ct.wasm.trace!="boolean"&&(ct.wasm.trace=!1),typeof ct.wasm.numThreads!="number"||!Number.isInteger(ct.wasm.numThreads)||ct.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)ct.wasm.numThreads=1;else{let e=typeof navigator>"u"?Wk("node:os").cpus().length:navigator.hardwareConcurrency;ct.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Cm=class{async init(t){Dm(),await oI(),await cI(t)}async createInferenceSessionHandler(t,e){let A=new hI;return await A.loadModel(t,e),A}},wI=new Cm});gi();gi();gi();BG="1.26.0",PG=q0;{let t=(wG(),sg(pI)).wasmBackend;oi("webgpu",t,5),oi("webnn",t,5),oi("cpu",t,10),oi("wasm",t,10)}Object.defineProperty(ct.versions,"web",{value:BG,enumerable:!0})});function C(t){if(!t)throw new Error("Assertion failed.")}var Yi=t=>{let e=(t%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${t}.`)},_e=t=>t&&t[t.length-1],fr=t=>t>=0&&t<2**32,ee=t=>{let e=0;for(;t.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},JA=t=>{let e=ee(t);return e&1?e+1>>1:-(e>>1)};var ft=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),xe=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),mt=new TextDecoder,Ht=new TextEncoder;var Il=t=>Object.fromEntries(Object.entries(t).map(([e,A])=>[A,e])),mr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Cn=Il(mr),hr={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},bn=Il(hr),pr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},En=Il(pr),up=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,Ps=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),Nt=class{constructor(){this.currentPromise=Promise.resolve(),this.pending=0}async acquire(){let e,A=new Promise(n=>{let a=!1;e=()=>{a||(n(),this.pending--,a=!0)}}),r=this.currentPromise;return this.currentPromise=A,this.pending++,await r,e}},gp=/^[0-9a-fA-F]+$/,Ur=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),lp=t=>{C(t.length%2===0);let e=new Uint8Array(t.length/2);for(let A=0;A<t.length;A+=2)e[A/2]=parseInt(t.slice(A,A+2),16);return e},Dl=t=>(t=t>>1&1431655765|(t&1431655765)<<1,t=t>>2&858993459|(t&858993459)<<2,t=t>>4&252645135|(t&252645135)<<4,t=t>>8&16711935|(t&16711935)<<8,t=t>>16&65535|(t&65535)<<16,t>>>0),wr=(t,e,A)=>{let r=0,n=t.length-1,a=-1;for(;r<=n;){let i=r+n>>1,s=A(t[i]);s===e?(a=i,n=i-1):s<e?r=i+1:n=i-1}return a},ye=(t,e,A)=>{let r=0,n=t.length-1,a=-1;for(;r<=n;){let i=r+(n-r+1)/2|0;A(t[i])<=e?(a=i,r=i+1):n=i-1}return a},Cl=(t,e,A)=>{let r=ye(t,A(e),A);t.splice(r+1,0,e)},lt=()=>{let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}},dp=(t,e)=>{let A=t.indexOf(e);A!==-1&&t.splice(A,1)},bl=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return t[A]},vi=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return A;return-1},fp=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},mp=t=>{if(!(Symbol.iterator in t)&&!(Symbol.asyncIterator in t))throw new TypeError("Argument must be an iterable or async iterable.")},$t=t=>{throw new Error(`Unexpected value: ${t}`)},ys=(t,e,A)=>{let r=t.getUint8(e),n=t.getUint8(e+1),a=t.getUint8(e+2);return A?r|n<<8|a<<16:r<<16|n<<8|a};var El=(t,e,A,r)=>{A=A>>>0,A=A&16777215,r?(t.setUint8(e,A&255),t.setUint8(e+1,A>>>8&255),t.setUint8(e+2,A>>>16&255)):(t.setUint8(e,A>>>16&255),t.setUint8(e+1,A>>>8&255),t.setUint8(e+2,A&255))};var Tn=(t,e,A)=>Math.max(e,Math.min(A,t)),Xe="und",Br=t=>{let e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t},Is=(t,e)=>Math.round(t/e)*e,Ds=(t,e)=>Math.round(t*e)/e,lc=(t,e)=>Math.floor(t/e)*e,Tl=(t,e)=>Math.floor(t*e)/e,hp=t=>{let e=0;for(;t;)e++,t>>=1;return e},VD=/^[a-z]{3}$/,Oi=t=>VD.test(t),qr=1e6*(1+Number.EPSILON);var pp=(t,e)=>{let A=t<0?-1:1;t=Math.abs(t);let r=0,n=1,a=1,i=0,s=t;for(;;){let o=Math.floor(s),c=o*a+r,g=o*i+n;if(g>e)return{num:A*a,den:i};if(r=a,n=i,a=c,i=g,s=1/(s-o),!isFinite(s))break}return{num:A*a,den:i}},Dn=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},wl=null,kn=()=>wl!==null?wl:wl=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),Bl=null,Cs=()=>Bl!==null?Bl:Bl=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),Pl=null,bs=()=>Pl!==null?Pl:Pl=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),yl=null,wp=()=>{if(yl!==null)return yl;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?yl=Number(t[1]):null},Gn=(t,e)=>t!==-1?t:e,dc=(t,e,A,r)=>t<=r&&A<=e,Es=function*(t){for(let e in t){let A=t[e];A!==void 0&&(yield{key:e,value:A})}};var Ts=t=>{let e=atob(t),A=new Uint8Array(e.length);for(let r=0;r<e.length;r++)A[r]=e.charCodeAt(r);return A};var Bp=(t,e)=>{if(t.length!==e.length)return!1;for(let A=0;A<t.length;A++)if(t[A]!==e[A])return!1;return!0},_i=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},ks=t=>typeof t=="number"&&!Number.isNaN(t),XA=(t,e)=>{if(e.includes("://"))return e;if(t.includes("://")){let s=t.indexOf("?");s!==-1&&(t=t.slice(0,s))}let A;if(e.startsWith("/")){let s=t.indexOf("://");if(s===-1)A=e;else{let o=t.indexOf("/",s+3);o===-1?A=t+e:A=t.slice(0,o)+e}}else{let s=t.lastIndexOf("/");s===-1?A=e:A=t.slice(0,s+1)+e}let r="",n=A.indexOf("://");if(n!==-1){let s=A.indexOf("/",n+3);s!==-1&&(r=A.slice(0,s),A=A.slice(s))}let a=A.split("/"),i=[];for(let s of a)s===".."?i.pop():s!=="."&&i.push(s);return r+i.join("/")},xn=(t,e)=>{let A=0;for(let r=0;r<t.length;r++)e(t[r])&&A++;return A},Mi=(t,e)=>{let A=-1,r=1/0;for(let n=0;n<t.length;n++){let a=e(t[n]);a<r&&(r=a,A=n)}return A};var Sn=t=>{C(Number.isInteger(t.num)),C(Number.isInteger(t.den)),C(t.den!==0);let e=Math.abs(t.num),A=Math.abs(t.den);for(;A!==0;){let n=e%A;e=A,A=n}let r=e||1;return{num:t.num/r,den:t.den/r}},kl=(t,e)=>{if(typeof t!="object"||!t)throw new TypeError(`${e} must be an object.`);if(!Number.isInteger(t.left)||t.left<0)throw new TypeError(`${e}.left must be a non-negative integer.`);if(!Number.isInteger(t.top)||t.top<0)throw new TypeError(`${e}.top must be a non-negative integer.`);if(!Number.isInteger(t.width)||t.width<0)throw new TypeError(`${e}.width must be a non-negative integer.`);if(!Number.isInteger(t.height)||t.height<0)throw new TypeError(`${e}.height must be a non-negative integer.`)};var Gl=t=>new Promise(e=>setTimeout(e,t));var xl=t=>Array.isArray(t)?t:[t],$A=class{constructor(){this._listeners=new Map}on(e,A,r){this._listeners.has(e)||this._listeners.set(e,new Set);let n={fn:A,once:r?.once??!1};return this._listeners.get(e).add(n),()=>{this._listeners.get(e)?.delete(n)}}_emit(...e){let[A,r]=e,n=this._listeners.get(A);if(n)for(let a of n){try{a.fn(r)}catch(i){console.error(i)}a.once&&n.delete(a)}}};var Sl=t=>t!==null&&typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype&&Object.values(t).every(e=>typeof e=="string");var TA=class{constructor(e,A){if(this.data=e,this.mimeType=A,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(typeof A!="string")throw new TypeError("mimeType must be a string.")}},Gs=class{constructor(e,A,r,n){if(this.data=e,this.mimeType=A,this.name=r,this.description=n,!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(A!==void 0&&typeof A!="string")throw new TypeError("mimeType, when provided, must be a string.");if(r!==void 0&&typeof r!="string")throw new TypeError("name, when provided, must be a string.");if(n!==void 0&&typeof n!="string")throw new TypeError("description, when provided, must be a string.")}},Pp=t=>{if(!t||typeof t!="object")throw new TypeError("tags must be an object.");if(t.title!==void 0&&typeof t.title!="string")throw new TypeError("tags.title, when provided, must be a string.");if(t.description!==void 0&&typeof t.description!="string")throw new TypeError("tags.description, when provided, must be a string.");if(t.artist!==void 0&&typeof t.artist!="string")throw new TypeError("tags.artist, when provided, must be a string.");if(t.album!==void 0&&typeof t.album!="string")throw new TypeError("tags.album, when provided, must be a string.");if(t.albumArtist!==void 0&&typeof t.albumArtist!="string")throw new TypeError("tags.albumArtist, when provided, must be a string.");if(t.trackNumber!==void 0&&(!Number.isInteger(t.trackNumber)||t.trackNumber<=0))throw new TypeError("tags.trackNumber, when provided, must be a positive integer.");if(t.tracksTotal!==void 0&&(!Number.isInteger(t.tracksTotal)||t.tracksTotal<=0))throw new TypeError("tags.tracksTotal, when provided, must be a positive integer.");if(t.discNumber!==void 0&&(!Number.isInteger(t.discNumber)||t.discNumber<=0))throw new TypeError("tags.discNumber, when provided, must be a positive integer.");if(t.discsTotal!==void 0&&(!Number.isInteger(t.discsTotal)||t.discsTotal<=0))throw new TypeError("tags.discsTotal, when provided, must be a positive integer.");if(t.genre!==void 0&&typeof t.genre!="string")throw new TypeError("tags.genre, when provided, must be a string.");if(t.date!==void 0&&(!(t.date instanceof Date)||Number.isNaN(t.date.getTime())))throw new TypeError("tags.date, when provided, must be a valid Date.");if(t.lyrics!==void 0&&typeof t.lyrics!="string")throw new TypeError("tags.lyrics, when provided, must be a string.");if(t.images!==void 0){if(!Array.isArray(t.images))throw new TypeError("tags.images, when provided, must be an array.");for(let e of t.images){if(!e||typeof e!="object")throw new TypeError("Each image in tags.images must be an object.");if(!(e.data instanceof Uint8Array))throw new TypeError("Each image.data must be a Uint8Array.");if(typeof e.mimeType!="string")throw new TypeError("Each image.mimeType must be a string.");if(!["coverFront","coverBack","unknown"].includes(e.kind))throw new TypeError("Each image.kind must be 'coverFront', 'coverBack', or 'unknown'.")}}if(t.comment!==void 0&&typeof t.comment!="string")throw new TypeError("tags.comment, when provided, must be a string.");if(t.raw!==void 0){if(!t.raw||typeof t.raw!="object")throw new TypeError("tags.raw, when provided, must be an object.");for(let e of Object.values(t.raw))if(e!==null&&typeof e!="string"&&!(e instanceof Uint8Array)&&!(e instanceof TA)&&!(e instanceof Gs)&&!Sl(e))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, Record<string, string>, or null.")}};var Ct={default:!0,primary:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},yp=t=>{if(!t||typeof t!="object")throw new TypeError("disposition must be an object.");if(t.default!==void 0&&typeof t.default!="boolean")throw new TypeError("disposition.default must be a boolean.");if(t.primary!==void 0&&typeof t.primary!="boolean")throw new TypeError("disposition.primary must be a boolean.");if(t.forced!==void 0&&typeof t.forced!="boolean")throw new TypeError("disposition.forced must be a boolean.");if(t.original!==void 0&&typeof t.original!="boolean")throw new TypeError("disposition.original must be a boolean.");if(t.commentary!==void 0&&typeof t.commentary!="boolean")throw new TypeError("disposition.commentary must be a boolean.");if(t.hearingImpaired!==void 0&&typeof t.hearingImpaired!="boolean")throw new TypeError("disposition.hearingImpaired must be a boolean.");if(t.visuallyImpaired!==void 0&&typeof t.visuallyImpaired!="boolean")throw new TypeError("disposition.visuallyImpaired must be a boolean.")};var Ge=class t{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),A=this.bytes[e]??0,r=7-(this.pos&7),n=(A&1<<r)>>r;return this.pos++,n}readBits(e){if(e===1)return this.readBit();let A=0;for(let r=0;r<e;r++)A<<=1,A|=this.readBit();return A}writeBits(e,A){let r=this.pos+e;for(let n=this.pos;n<r;n++){let a=Math.floor(n/8),i=this.bytes[a],s=7-(n&7);i&=~(1<<s),i|=(A&1<<r-n-1)>>r-n-1<<s,this.bytes[a]=i}this.pos=r}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,A=this.bytes[e]??0;return this.pos+=8,A}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new t(this.bytes);return e.pos=this.pos,e}};var er=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Lr=[-1,1,2,3,4,5,6,8],fc=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new Ge(t),A=e.readBits(5);A===31&&(A=32+e.readBits(6));let r=e.readBits(4),n=null;r===15?n=e.readBits(24):r<er.length&&(n=er[r]);let a=e.readBits(4),i=null;return a>=1&&a<=7&&(i=Lr[a]),{objectType:A,frequencyIndex:r,sampleRate:n,channelConfiguration:a,numberOfChannels:i}},Ip=t=>{let e=er.indexOf(t.sampleRate),A=null;e===-1&&(e=15,A=t.sampleRate);let r=Lr.indexOf(t.numberOfChannels);if(r===-1)throw new TypeError(`Unsupported number of channels: ${t.numberOfChannels}`);let n=13;t.objectType>=32&&(n+=6),e===15&&(n+=24);let a=Math.ceil(n/8),i=new Uint8Array(a),s=new Ge(i);return t.objectType<32?s.writeBits(5,t.objectType):(s.writeBits(5,31),s.writeBits(6,t.objectType-32)),s.writeBits(4,e),e===15&&s.writeBits(24,A),s.writeBits(4,r),i};var _t=["avc","hevc","vp9","av1","vp8"],Ot=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],mc=["aac","opus","mp3","vorbis","flac","ac3","eac3"],tr=[...mc,...Ot],jr=["webvtt"],xs=[{maxMacroblocks:99,maxBitrate:64e3,maxDpbMbs:396,level:10},{maxMacroblocks:396,maxBitrate:192e3,maxDpbMbs:900,level:11},{maxMacroblocks:396,maxBitrate:384e3,maxDpbMbs:2376,level:12},{maxMacroblocks:396,maxBitrate:768e3,maxDpbMbs:2376,level:13},{maxMacroblocks:396,maxBitrate:2e6,maxDpbMbs:2376,level:20},{maxMacroblocks:792,maxBitrate:4e6,maxDpbMbs:4752,level:21},{maxMacroblocks:1620,maxBitrate:4e6,maxDpbMbs:8100,level:22},{maxMacroblocks:1620,maxBitrate:1e7,maxDpbMbs:8100,level:30},{maxMacroblocks:3600,maxBitrate:14e6,maxDpbMbs:18e3,level:31},{maxMacroblocks:5120,maxBitrate:2e7,maxDpbMbs:20480,level:32},{maxMacroblocks:8192,maxBitrate:2e7,maxDpbMbs:32768,level:40},{maxMacroblocks:8192,maxBitrate:5e7,maxDpbMbs:32768,level:41},{maxMacroblocks:8704,maxBitrate:5e7,maxDpbMbs:34816,level:42},{maxMacroblocks:22080,maxBitrate:135e6,maxDpbMbs:110400,level:50},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:51},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:52},{maxMacroblocks:139264,maxBitrate:24e7,maxDpbMbs:696320,level:60},{maxMacroblocks:139264,maxBitrate:48e7,maxDpbMbs:696320,level:61},{maxMacroblocks:139264,maxBitrate:8e8,maxDpbMbs:696320,level:62}],Dp=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],Pr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],Cp=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],bp=".01.01.01.01.00",Ep=".0.110.01.01.01.0",Tp=(t,e,A,r)=>{if(t==="avc"){let a=Math.ceil(e/16)*Math.ceil(A/16),i=xs.find(u=>a<=u.maxMacroblocks&&r<=u.maxBitrate)??_e(xs),s=i?i.level:0,o="64".padStart(2,"0"),c="00",g=s.toString(16).padStart(2,"0");return`avc1.${o}${c}${g}`}else if(t==="hevc"){let n="",i="6",s=e*A,o=Dp.find(g=>s<=g.maxPictureSize&&r<=g.maxBitrate)??_e(Dp);return`hev1.${n}1.${i}.${o.tier}${o.level}.B0`}else{if(t==="vp8")return"vp8";if(t==="vp9"){let n="00",a=e*A,i=Pr.find(o=>a<=o.maxPictureSize&&r<=o.maxBitrate)??_e(Pr);return`vp09.${n}.${i.level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let a=e*A,i=Cp.find(c=>a<=c.maxPictureSize&&r<=c.maxBitrate)??_e(Cp);return`av01.0.${i.level.toString().padStart(2,"0")}${i.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var kp=t=>{let e=t.split("."),n=(1<<7)+1,a=Number(e[1]),i=e[2],s=Number(i.slice(0,-1)),o=(a<<5)+s,c=i.slice(-1)==="H"?1:0,u=Number(e[3])===8?0:1,l=0,f=e[4]?Number(e[4]):0,p=e[5]?Number(e[5][0]):1,h=e[5]?Number(e[5][1]):1,y=e[5]?Number(e[5][2]):0,w=(c<<7)+(u<<6)+(l<<5)+(f<<4)+(p<<3)+(h<<2)+y;return[n,o,w,0]},Ri=t=>{let{codec:e,codecDescription:A,colorSpace:r,avcCodecInfo:n,hevcCodecInfo:a,vp9CodecInfo:i,av1CodecInfo:s}=t;if(e==="avc"){if(C(t.avcType!==null),n){let o=new Uint8Array([n.avcProfileIndication,n.profileCompatibility,n.avcLevelIndication]);return`avc${t.avcType}.${Ur(o)}`}if(!A||A.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${Ur(A.subarray(1,4))}`}else if(e==="hevc"){let o,c,g,u,l,f;if(a)o=a.generalProfileSpace,c=a.generalProfileIdc,g=Dl(a.generalProfileCompatibilityFlags),u=a.generalTierFlag,l=a.generalLevelIdc,f=[...a.generalConstraintIndicatorFlags];else{if(!A||A.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let h=xe(A),y=h.getUint8(1);o=y>>6&3,c=y&31,g=Dl(h.getUint32(2)),u=y>>5&1,l=h.getUint8(12),f=[];for(let w=0;w<6;w++)f.push(h.getUint8(6+w))}let p="hev1.";for(p+=["","A","B","C"][o]+c,p+=".",p+=g.toString(16).toUpperCase(),p+=".",p+=u===0?"L":"H",p+=l;f.length>0&&f[f.length-1]===0;)f.pop();return f.length>0&&(p+=".",p+=f.map(h=>h.toString(16).toUpperCase()).join(".")),p}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!i){let w=t.width*t.height,D=_e(Pr).level;for(let b of Pr)if(w<=b.maxPictureSize){D=b.level;break}return`vp09.00.${D.toString().padStart(2,"0")}.08`}let o=i.profile.toString().padStart(2,"0"),c=i.level.toString().padStart(2,"0"),g=i.bitDepth.toString().padStart(2,"0"),u=i.chromaSubsampling.toString().padStart(2,"0"),l=i.colourPrimaries.toString().padStart(2,"0"),f=i.transferCharacteristics.toString().padStart(2,"0"),p=i.matrixCoefficients.toString().padStart(2,"0"),h=i.videoFullRangeFlag.toString().padStart(2,"0"),y=`vp09.${o}.${c}.${g}.${u}`;return y+=`.${l}.${f}.${p}.${h}`,y.endsWith(bp)&&(y=y.slice(0,-bp.length)),y}else if(e==="av1"){if(!s){let b=t.width*t.height,E=_e(Pr).level;for(let x of Pr)if(b<=x.maxPictureSize){E=x.level;break}return`av01.0.${E.toString().padStart(2,"0")}M.08`}let o=s.profile,c=s.level.toString().padStart(2,"0"),g=s.tier?"H":"M",u=s.bitDepth.toString().padStart(2,"0"),l=s.monochrome?"1":"0",f=100*s.chromaSubsamplingX+10*s.chromaSubsamplingY+1*(s.chromaSubsamplingX&&s.chromaSubsamplingY?s.chromaSamplePosition:0),p=r?.primaries?mr[r.primaries]:1,h=r?.transfer?hr[r.transfer]:1,y=r?.matrix?pr[r.matrix]:1,w=r?.fullRange?1:0,D=`av01.${o}.${c}${g}.${u}`;return D+=`.${l}.${f.toString().padStart(3,"0")}`,D+=`.${p.toString().padStart(2,"0")}`,D+=`.${h.toString().padStart(2,"0")}`,D+=`.${y.toString().padStart(2,"0")}`,D+=`.${w}`,D.endsWith(Ep)&&(D=D.slice(0,-Ep.length)),D}}throw new TypeError(`Unhandled codec '${e}'.`)};var Qi=t=>{let{codec:e,codecDescription:A,aacCodecInfo:r}=t;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");if(r.isMpeg2)return"mp4a.67";{let n;return r.objectType!==null?n=r.objectType:n=fc(A).objectType,`mp4a.40.${n}`}}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e==="ac3")return"ac-3";if(e==="eac3")return"ec-3";if(e&&Ot.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)};var Yn=48e3,Gp=/^pcm-([usf])(\d+)(be)?$/,kA=t=>{if(C(Ot.includes(t)),t==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(t==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=Gp.exec(t);C(e);let A;e[1]==="u"?A="unsigned":e[1]==="s"?A="signed":A="float";let r=Number(e[2])/8,n=e[3]!=="be",a=t==="pcm-u8"?2**7:0;return{dataType:A,sampleSize:r,littleEndian:n,silentValue:a}},Vr=t=>t.startsWith("avc1")||t.startsWith("avc3")?"avc":t.startsWith("hev1")||t.startsWith("hvc1")?"hevc":t==="vp8"?"vp8":t.startsWith("vp09")?"vp9":t.startsWith("av01")?"av1":t==="mp3"||t==="mp4a.69"||t==="mp4a.6B"||t==="mp4a.6b"||t==="mp4a.40.34"?"mp3":t.startsWith("mp4a.40.")||t==="mp4a.67"?"aac":t==="opus"?"opus":t==="vorbis"?"vorbis":t==="flac"?"flac":t==="ac-3"||t==="ac3"?"ac3":t==="ec-3"||t==="eac3"?"eac3":t==="ulaw"?"ulaw":t==="alaw"?"alaw":Gp.test(t)?t:t==="webvtt"?"webvtt":null,xp=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{};var KD=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],WD=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,ZD=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,$D=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,JD=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,Sp=t=>{if(!t)throw new TypeError("Video chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Video chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!KD.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the Mediabunny Codec Registry.");if(!Number.isInteger(t.decoderConfig.codedWidth)||t.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(t.decoderConfig.codedHeight)||t.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(t.decoderConfig.displayAspectWidth!==void 0&&(!Number.isInteger(t.decoderConfig.displayAspectWidth)||t.decoderConfig.displayAspectWidth<=0))throw new TypeError("Video chunk metadata decoder configuration displayAspectWidth, when defined, must be a positive integer.");if(t.decoderConfig.displayAspectHeight!==void 0&&(!Number.isInteger(t.decoderConfig.displayAspectHeight)||t.decoderConfig.displayAspectHeight<=0))throw new TypeError("Video chunk metadata decoder configuration displayAspectHeight, when defined, must be a positive integer.");if(t.decoderConfig.displayAspectWidth!==void 0!=(t.decoderConfig.displayAspectHeight!==void 0))throw new TypeError("Video chunk metadata decoder configuration must specify both displayAspectWidth and displayAspectHeight, or neither.");if(t.decoderConfig.description!==void 0&&!Ps(t.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=t.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let A=Object.keys(mr);if(e.primaries!=null&&!A.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${A.join(", ")}.`);let r=Object.keys(hr);if(e.transfer!=null&&!r.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${r.join(", ")}.`);let n=Object.keys(pr);if(e.matrix!=null&&!n.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${n.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(t.decoderConfig.codec.startsWith("avc1")||t.decoderConfig.codec.startsWith("avc3")){if(!WD.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(t.decoderConfig.codec.startsWith("hev1")||t.decoderConfig.codec.startsWith("hvc1")){if(!ZD.test(t.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(t.decoderConfig.codec.startsWith("vp8")){if(t.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(t.decoderConfig.codec.startsWith("vp09")){if(!$D.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(t.decoderConfig.codec.startsWith("av01")&&!JD.test(t.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},XD=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm","ac-3","ec-3"],Yp=t=>{if(!t)throw new TypeError("Audio chunk metadata must be provided.");if(typeof t!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!t.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof t.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof t.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!XD.some(e=>t.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the Mediabunny Codec Registry.");if(!Number.isInteger(t.decoderConfig.sampleRate)||t.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(t.decoderConfig.numberOfChannels)||t.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(t.decoderConfig.description!==void 0&&!Ps(t.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(t.decoderConfig.codec.startsWith("mp4a")&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(t.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("mp3")||t.decoderConfig.codec.startsWith("mp4a")){if(t.decoderConfig.codec!=="mp3"&&t.decoderConfig.codec!=="mp4a.69"&&t.decoderConfig.codec!=="mp4a.6B"&&t.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(t.decoderConfig.codec.startsWith("opus")){if(t.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(t.decoderConfig.description&&t.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(t.decoderConfig.codec.startsWith("vorbis")){if(t.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!t.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("flac")){if(t.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!t.decoderConfig.description||t.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if(t.decoderConfig.codec.startsWith("ac-3")||t.decoderConfig.codec.startsWith("ac3")){if(t.decoderConfig.codec!=="ac-3")throw new TypeError('Audio chunk metadata decoder configuration codec string for AC-3 must be "ac-3".')}else if(t.decoderConfig.codec.startsWith("ec-3")||t.decoderConfig.codec.startsWith("eac3")){if(t.decoderConfig.codec!=="ec-3")throw new TypeError('Audio chunk metadata decoder configuration codec string for EC-3 must be "ec-3".')}else if((t.decoderConfig.codec.startsWith("pcm")||t.decoderConfig.codec.startsWith("ulaw")||t.decoderConfig.codec.startsWith("alaw"))&&!Ot.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Ot.join(", ")}).`)},vp=t=>{if(!t)throw new TypeError("Subtitle metadata must be provided.");if(typeof t!="object")throw new TypeError("Subtitle metadata must be an object.");if(!t.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof t.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof t.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var eC=[44100,48e3,32e3],tC=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1,-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1,-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],hc=1483304551,pc=1231971951,AC=(t,e,A,r,n)=>e===0?0:e===1?Math.floor(144*A/(r<<t))+n:e===2?Math.floor(144*A/r)+n:(Math.floor(12*A/r)+n)*4,Op=(t,e,A,r)=>e===0?0:e===1?144*A/(r<<t):e===2?144*A/r:12*A/r*4,wc=(t,e)=>t===3?e===3?21:36:e===3?13:21,Ys=(t,e)=>{let A=t>>>24,r=t>>>16&255,n=t>>>8&255,a=t&255;if(A!==255&&r!==255&&n!==255&&a!==255)return{header:null,bytesAdvanced:4};if(A!==255)return{header:null,bytesAdvanced:1};if((r&224)!==224)return{header:null,bytesAdvanced:1};let i=0,s=0;r&16?i=r&8?0:1:(i=1,s=1);let o=r>>3&3,c=r>>1&3,g=n>>4&15,u=(n>>2&3)%3,l=n>>1&1,f=a>>6&3,p=a>>4&3,h=a>>3&1,y=a>>2&1,w=a&3,D=tC[i*16*4+c*16+g];if(D===-1)return{header:null,bytesAdvanced:1};let b=D*1e3,E=eC[u]>>i+s,x=AC(i,c,b,E,l);if(e!==null&&e<x)return{header:null,bytesAdvanced:1};let S;return o===3?S=c===3?384:1152:c===3?S=384:c===2?S=1152:S=576,{header:{totalSize:x,mpegVersionId:o,lowSamplingFrequency:i,layer:c,bitrate:b,frequencyIndex:u,sampleRate:E,channel:f,modeExtension:p,copyright:h,original:y,emphasis:w,audioSamplesInFrame:S},bytesAdvanced:1}};var Bc=t=>{let e=2130706432,A=0;for(;e!==0;)A>>=1,A|=t&e,e>>=8;return A},Ss;(function(t){t[t.FrameCount=1]="FrameCount",t[t.FileSize=2]="FileSize",t[t.Toc=4]="Toc"})(Ss||(Ss={}));var Kr=t=>t===3?1:2;var vn=[48e3,44100,32e3],Yl=[24e3,22050,16e3];var Jt;(function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"})(Jt||(Jt={}));var bt;(function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(bt||(bt={}));var Fi=function*(t){let e=0,A=-1;for(;e<t.length-2;){let r=t.indexOf(0,e);if(r===-1||r>=t.length-2)break;e=r;let n=0;if(e+3<t.length&&t[e+1]===0&&t[e+2]===0&&t[e+3]===1?n=4:t[e+1]===0&&t[e+2]===1&&(n=3),n===0){e++;continue}A!==-1&&e>A&&(yield{offset:A,length:e-A}),A=e+n,e=A}A!==-1&&A<t.length&&(yield{offset:A,length:t.length-A})},Rp=function*(t,e){let A=0,r=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;A+e<=t.length;){let n;e===1?n=r.getUint8(A):e===2?n=r.getUint16(A,!1):e===3?n=ys(r,A,!1):(C(e===4),n=r.getUint32(A,!1)),A+=e,yield{offset:A,length:n},A+=n}},Ol=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Rp(t,n)}else return Fi(t)},zi=t=>t&31,Pc=t=>{let e=[],A=t.length;for(let r=0;r<A;r++)r+2<A&&t[r]===0&&t[r+1]===0&&t[r+2]===3?(e.push(0,0),r+=2):e.push(t[r]);return new Uint8Array(e)},vl=new Uint8Array([0,0,0,1]),Qp=t=>{let e=t.reduce((n,a)=>n+vl.byteLength+a.byteLength,0),A=new Uint8Array(e),r=0;for(let n of t)A.set(vl,r),r+=vl.byteLength,A.set(n,r),r+=n.byteLength;return A},yc=(t,e)=>{let A=t.reduce((a,i)=>a+e+i.byteLength,0),r=new Uint8Array(A),n=0;for(let a of t){let i=new DataView(r.buffer,r.byteOffset,r.byteLength);switch(e){case 1:i.setUint8(n,a.byteLength);break;case 2:i.setUint16(n,a.byteLength,!1);break;case 3:El(i,n,a.byteLength,!1);break;case 4:i.setUint32(n,a.byteLength,!1);break}n+=e,r.set(a,n),n+=a.byteLength}return r},Fp=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return yc(t,n)}else return Qp(t)},Ni=t=>{try{let e=[],A=[],r=[];for(let s of Fi(t)){let o=t.subarray(s.offset,s.offset+s.length),c=zi(o[0]);c===Jt.SPS?e.push(o):c===Jt.PPS?A.push(o):c===Jt.SPS_EXT&&r.push(o)}if(e.length===0||A.length===0)return null;let n=e[0],a=Os(n);C(a!==null);let i=a.profileIdc===100||a.profileIdc===110||a.profileIdc===122||a.profileIdc===144;return{configurationVersion:1,avcProfileIndication:a.profileIdc,profileCompatibility:a.constraintFlags,avcLevelIndication:a.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:e,pictureParameterSets:A,chromaFormat:i?a.chromaFormatIdc:null,bitDepthLumaMinus8:i?a.bitDepthLumaMinus8:null,bitDepthChromaMinus8:i?a.bitDepthChromaMinus8:null,sequenceParameterSetExt:i?r:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},zp=t=>{let e=[];e.push(t.configurationVersion),e.push(t.avcProfileIndication),e.push(t.profileCompatibility),e.push(t.avcLevelIndication),e.push(252|t.lengthSizeMinusOne&3),e.push(224|t.sequenceParameterSets.length&31);for(let A of t.sequenceParameterSets){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}e.push(t.pictureParameterSets.length);for(let A of t.pictureParameterSets){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}if(t.avcProfileIndication===100||t.avcProfileIndication===110||t.avcProfileIndication===122||t.avcProfileIndication===144){C(t.chromaFormat!==null),C(t.bitDepthLumaMinus8!==null),C(t.bitDepthChromaMinus8!==null),C(t.sequenceParameterSetExt!==null),e.push(252|t.chromaFormat&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.sequenceParameterSetExt.length);for(let A of t.sequenceParameterSetExt){let r=A.byteLength;e.push(r>>8),e.push(r&255);for(let n=0;n<r;n++)e.push(A[n])}}return new Uint8Array(e)},Np=t=>{try{let e=xe(t),A=0,r=e.getUint8(A++),n=e.getUint8(A++),a=e.getUint8(A++),i=e.getUint8(A++),s=e.getUint8(A++)&3,o=e.getUint8(A++)&31,c=[];for(let f=0;f<o;f++){let p=e.getUint16(A,!1);A+=2,c.push(t.subarray(A,A+p)),A+=p}let g=e.getUint8(A++),u=[];for(let f=0;f<g;f++){let p=e.getUint16(A,!1);A+=2,u.push(t.subarray(A,A+p)),A+=p}let l={configurationVersion:r,avcProfileIndication:n,profileCompatibility:a,avcLevelIndication:i,lengthSizeMinusOne:s,sequenceParameterSets:c,pictureParameterSets:u,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((n===100||n===110||n===122||n===144)&&A+4<=t.length){let f=e.getUint8(A++)&3,p=e.getUint8(A++)&7,h=e.getUint8(A++)&7,y=e.getUint8(A++);l.chromaFormat=f,l.bitDepthLumaMinus8=p,l.bitDepthChromaMinus8=h;let w=[];for(let D=0;D<y;D++){let b=e.getUint16(A,!1);A+=2,w.push(t.subarray(A,A+b)),A+=b}l.sequenceParameterSetExt=w}return l}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},Hp={1:{num:1,den:1},2:{num:12,den:11},3:{num:10,den:11},4:{num:16,den:11},5:{num:40,den:33},6:{num:24,den:11},7:{num:20,den:11},8:{num:32,den:11},9:{num:80,den:33},10:{num:18,den:11},11:{num:15,den:11},12:{num:64,den:33},13:{num:160,den:99},14:{num:4,den:3},15:{num:3,den:2},16:{num:2,den:1}},Os=t=>{try{let e=new Ge(Pc(t));if(e.skipBits(1),e.skipBits(2),e.readBits(5)!==7)return null;let r=e.readAlignedByte(),n=e.readAlignedByte(),a=e.readAlignedByte();ee(e);let i=1,s=0,o=0,c=0;if((r===100||r===110||r===122||r===244||r===44||r===83||r===86||r===118||r===128)&&(i=ee(e),i===3&&(c=e.readBits(1)),s=ee(e),o=ee(e),e.skipBits(1),e.readBits(1))){for(let F=0;F<(i!==3?8:12);F++)if(e.readBits(1)){let L=F<6?16:64,_=8,W=8;for(let pe=0;pe<L;pe++){if(W!==0){let Ae=JA(e);W=(_+Ae+256)%256}_=W===0?_:W}}}ee(e);let g=ee(e);if(g===0)ee(e);else if(g===1){e.skipBits(1),JA(e),JA(e);let V=ee(e);for(let F=0;F<V;F++)JA(e)}ee(e),e.skipBits(1);let u=ee(e),l=ee(e),f=16*(u+1),p=16*(l+1),h=f,y=p,w=e.readBits(1);if(w||e.skipBits(1),e.skipBits(1),e.readBits(1)){let V=ee(e),F=ee(e),K=ee(e),L=ee(e),_,W;if((c===0?i:0)===0)_=1,W=2-w;else{let Ae=i===3?1:2,De=i===1?2:1;_=Ae,W=De*(2-w)}h-=_*(V+F),y-=W*(K+L)}let b=2,E=2,x=2,S=0,k={num:1,den:1},R=null,M=null;if(e.readBits(1)){if(e.readBits(1)){let De=e.readBits(8);if(De===255)k={num:e.readBits(16),den:e.readBits(16)};else{let ae=Hp[De];ae&&(k=ae)}}e.readBits(1)&&e.skipBits(1),e.readBits(1)&&(e.skipBits(3),S=e.readBits(1),e.readBits(1)&&(b=e.readBits(8),E=e.readBits(8),x=e.readBits(8))),e.readBits(1)&&(ee(e),ee(e)),e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.skipBits(1));let W=e.readBits(1);W&&_p(e);let pe=e.readBits(1);pe&&_p(e),(W||pe)&&e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(1),ee(e),ee(e),ee(e),ee(e),R=ee(e),M=ee(e))}if(R===null){C(M===null);let V=n&16;if((r===44||r===86||r===100||r===110||r===122||r===244)&&V)R=0,M=0;else{let F=u+1,K=l+1,L=(2-w)*K,_=xs.find(pe=>pe.level>=a)??_e(xs),W=Math.min(Math.floor(_.maxDpbMbs/(F*L)),16);R=W,M=W}}return C(M!==null),{profileIdc:r,constraintFlags:n,levelIdc:a,frameMbsOnlyFlag:w,chromaFormatIdc:i,bitDepthLumaMinus8:s,bitDepthChromaMinus8:o,codedWidth:f,codedHeight:p,displayWidth:h,displayHeight:y,pixelAspectRatio:k,colourPrimaries:b,matrixCoefficients:x,transferCharacteristics:E,fullRangeFlag:S,numReorderFrames:R,maxDecFrameBuffering:M}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},_p=t=>{let e=ee(t);t.skipBits(4),t.skipBits(4);for(let A=0;A<=e;A++)ee(t),ee(t),t.skipBits(1);t.skipBits(5),t.skipBits(5),t.skipBits(5),t.skipBits(5)},rC=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return yc(t,n)}else return Qp(t)},vs=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Rp(t,n)}else return Fi(t)},Wr=t=>t>>1&63,_l=t=>{try{let e=new Ge(Pc(t));e.skipBits(16),e.readBits(4);let A=e.readBits(3),r=e.readBits(1),{general_profile_space:n,general_tier_flag:a,general_profile_idc:i,general_profile_compatibility_flags:s,general_constraint_indicator_flags:o,general_level_idc:c}=nC(e,A);ee(e);let g=ee(e),u=0;g===3&&(u=e.readBits(1));let l=ee(e),f=ee(e),p=l,h=f;if(e.readBits(1)){let F=ee(e),K=ee(e),L=ee(e),_=ee(e),W=1,pe=1,Ae=u===0?g:0;Ae===1?(W=2,pe=2):Ae===2&&(W=2,pe=1),p-=(F+K)*W,h-=(L+_)*pe}let y=ee(e),w=ee(e);ee(e);let b=e.readBits(1)?0:A,E=0;for(let F=b;F<=A;F++)ee(e),E=ee(e),ee(e);ee(e),ee(e),ee(e),ee(e),ee(e),ee(e),e.readBits(1)&&e.readBits(1)&&iC(e),e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(4),e.skipBits(4),ee(e),ee(e),e.skipBits(1));let x=ee(e);if(aC(e,x),e.readBits(1)){let F=ee(e);for(let K=0;K<F;K++)ee(e),e.skipBits(1)}e.skipBits(1),e.skipBits(1);let S=2,k=2,R=2,M=0,N=0,V={num:1,den:1};if(e.readBits(1)){let F=oC(e,A);V=F.pixelAspectRatio,S=F.colourPrimaries,k=F.transferCharacteristics,R=F.matrixCoefficients,M=F.fullRangeFlag,N=F.minSpatialSegmentationIdc}return{displayWidth:p,displayHeight:h,pixelAspectRatio:V,colourPrimaries:S,transferCharacteristics:k,matrixCoefficients:R,fullRangeFlag:M,maxDecFrameBuffering:E+1,spsMaxSubLayersMinus1:A,spsTemporalIdNestingFlag:r,generalProfileSpace:n,generalTierFlag:a,generalProfileIdc:i,generalProfileCompatibilityFlags:s,generalConstraintIndicatorFlags:o,generalLevelIdc:c,chromaFormatIdc:g,bitDepthLumaMinus8:y,bitDepthChromaMinus8:w,minSpatialSegmentationIdc:N}}catch(e){return console.error("Error parsing HEVC SPS:",e),null}},Hi=t=>{try{let e=[],A=[],r=[],n=[];for(let c of Fi(t)){let g=t.subarray(c.offset,c.offset+c.length),u=Wr(g[0]);u===bt.VPS_NUT?e.push(g):u===bt.SPS_NUT?A.push(g):u===bt.PPS_NUT?r.push(g):(u===bt.PREFIX_SEI_NUT||u===bt.SUFFIX_SEI_NUT)&&n.push(g)}if(A.length===0||r.length===0)return null;let a=_l(A[0]);if(!a)return null;let i=0;if(r.length>0){let c=r[0],g=new Ge(Pc(c));g.skipBits(16),ee(g),ee(g),g.skipBits(1),g.skipBits(1),g.skipBits(3),g.skipBits(1),g.skipBits(1),ee(g),ee(g),JA(g),g.skipBits(1),g.skipBits(1),g.readBits(1)&&ee(g),JA(g),JA(g),g.skipBits(1),g.skipBits(1),g.skipBits(1),g.skipBits(1);let u=g.readBits(1),l=g.readBits(1);!u&&!l?i=0:u&&!l?i=2:!u&&l?i=3:i=0}let s=[...e.length?[{arrayCompleteness:1,nalUnitType:bt.VPS_NUT,nalUnits:e}]:[],...A.length?[{arrayCompleteness:1,nalUnitType:bt.SPS_NUT,nalUnits:A}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:bt.PPS_NUT,nalUnits:r}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Wr(n[0][0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,generalProfileIdc:a.generalProfileIdc,generalProfileCompatibilityFlags:a.generalProfileCompatibilityFlags,generalConstraintIndicatorFlags:a.generalConstraintIndicatorFlags,generalLevelIdc:a.generalLevelIdc,minSpatialSegmentationIdc:a.minSpatialSegmentationIdc,parallelismType:i,chromaFormatIdc:a.chromaFormatIdc,bitDepthLumaMinus8:a.bitDepthLumaMinus8,bitDepthChromaMinus8:a.bitDepthChromaMinus8,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:a.spsMaxSubLayersMinus1+1,temporalIdNested:a.spsTemporalIdNestingFlag,lengthSizeMinusOne:3,arrays:s}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},nC=(t,e)=>{let A=t.readBits(2),r=t.readBits(1),n=t.readBits(5),a=0;for(let g=0;g<32;g++)a=a<<1|t.readBits(1);let i=new Uint8Array(6);for(let g=0;g<6;g++)i[g]=t.readBits(8);let s=t.readBits(8),o=[],c=[];for(let g=0;g<e;g++)o.push(t.readBits(1)),c.push(t.readBits(1));if(e>0)for(let g=e;g<8;g++)t.skipBits(2);for(let g=0;g<e;g++)o[g]&&t.skipBits(88),c[g]&&t.skipBits(8);return{general_profile_space:A,general_tier_flag:r,general_profile_idc:n,general_profile_compatibility_flags:a,general_constraint_indicator_flags:i,general_level_idc:s}},iC=t=>{for(let e=0;e<4;e++)for(let A=0;A<(e===3?2:6);A++)if(!t.readBits(1))ee(t);else{let n=Math.min(64,1<<4+(e<<1));e>1&&JA(t);for(let a=0;a<n;a++)JA(t)}},aC=(t,e)=>{let A=[];for(let r=0;r<e;r++)A[r]=sC(t,r,e,A)},sC=(t,e,A,r)=>{let n=0,a=0,i=0;if(e!==0&&(a=t.readBits(1)),a){if(e===A){let o=ee(t);i=e-(o+1)}else i=e-1;t.readBits(1),ee(t);let s=r[i]??0;for(let o=0;o<=s;o++)t.readBits(1)||t.readBits(1);n=r[i]}else{let s=ee(t),o=ee(t);for(let c=0;c<s;c++)ee(t),t.readBits(1);for(let c=0;c<o;c++)ee(t),t.readBits(1);n=s+o}return n},oC=(t,e)=>{let A=2,r=2,n=2,a=0,i=0,s={num:1,den:1};if(t.readBits(1)){let o=t.readBits(8);if(o===255)s={num:t.readBits(16),den:t.readBits(16)};else{let c=Hp[o];c&&(s=c)}}return t.readBits(1)&&t.readBits(1),t.readBits(1)&&(t.readBits(3),a=t.readBits(1),t.readBits(1)&&(A=t.readBits(8),r=t.readBits(8),n=t.readBits(8))),t.readBits(1)&&(ee(t),ee(t)),t.readBits(1),t.readBits(1),t.readBits(1),t.readBits(1)&&(ee(t),ee(t),ee(t),ee(t)),t.readBits(1)&&(t.readBits(32),t.readBits(32),t.readBits(1)&&ee(t),t.readBits(1)&&cC(t,!0,e)),t.readBits(1)&&(t.readBits(1),t.readBits(1),t.readBits(1),i=ee(t),ee(t),ee(t),ee(t),ee(t)),{pixelAspectRatio:s,colourPrimaries:A,transferCharacteristics:r,matrixCoefficients:n,fullRangeFlag:a,minSpatialSegmentationIdc:i}},cC=(t,e,A)=>{let r=!1,n=!1,a=!1;e&&(r=t.readBits(1)===1,n=t.readBits(1)===1,(r||n)&&(a=t.readBits(1)===1,a&&(t.readBits(8),t.readBits(5),t.readBits(1),t.readBits(5)),t.readBits(4),t.readBits(4),a&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5)));for(let i=0;i<=A;i++){let s=t.readBits(1)===1,o=!0;s||(o=t.readBits(1)===1);let c=!1;o?ee(t):c=t.readBits(1)===1;let g=1;c||(g=ee(t)+1),r&&Mp(t,g,a),n&&Mp(t,g,a)}},Mp=(t,e,A)=>{for(let r=0;r<e;r++)ee(t),ee(t),A&&(ee(t),ee(t)),t.readBits(1)},Up=t=>{let e=[];e.push(t.configurationVersion),e.push((t.generalProfileSpace&3)<<6|(t.generalTierFlag&1)<<5|t.generalProfileIdc&31),e.push(t.generalProfileCompatibilityFlags>>>24&255),e.push(t.generalProfileCompatibilityFlags>>>16&255),e.push(t.generalProfileCompatibilityFlags>>>8&255),e.push(t.generalProfileCompatibilityFlags&255),e.push(...t.generalConstraintIndicatorFlags),e.push(t.generalLevelIdc&255),e.push(240|t.minSpatialSegmentationIdc>>8&15),e.push(t.minSpatialSegmentationIdc&255),e.push(252|t.parallelismType&3),e.push(252|t.chromaFormatIdc&3),e.push(248|t.bitDepthLumaMinus8&7),e.push(248|t.bitDepthChromaMinus8&7),e.push(t.avgFrameRate>>8&255),e.push(t.avgFrameRate&255),e.push((t.constantFrameRate&3)<<6|(t.numTemporalLayers&7)<<3|(t.temporalIdNested&1)<<2|t.lengthSizeMinusOne&3),e.push(t.arrays.length&255);for(let A of t.arrays){e.push((A.arrayCompleteness&1)<<7|0|A.nalUnitType&63),e.push(A.nalUnits.length>>8&255),e.push(A.nalUnits.length&255);for(let r of A.nalUnits){e.push(r.length>>8&255),e.push(r.length&255);for(let n=0;n<r.length;n++)e.push(r[n])}}return new Uint8Array(e)};var xt;(function(t){t[t.audAllowed=0]="audAllowed",t[t.beforeFirstVcl=1]="beforeFirstVcl",t[t.afterFirstVcl=2]="afterFirstVcl",t[t.eoBitstreamAllowed=3]="eoBitstreamAllowed",t[t.noMoreDataAllowed=4]="noMoreDataAllowed"})(xt||(xt={}));var qp=(t,e)=>{let A=new Set,r=xt.audAllowed;for(let a of vs(t,e)){if(r===xt.noMoreDataAllowed){A.add(a.offset);continue}let i=Wr(t[a.offset]);if(r===xt.eoBitstreamAllowed&&i!==37){A.add(a.offset);continue}let s=!1;i===35?r>xt.audAllowed?s=!0:r=xt.beforeFirstVcl:i<=31?r>xt.afterFirstVcl?s=!0:r=xt.afterFirstVcl:i===36?r!==xt.afterFirstVcl?s=!0:r=xt.eoBitstreamAllowed:i===37?r<xt.afterFirstVcl?s=!0:r=xt.noMoreDataAllowed:i===32||i===33||i===34||i===39||i>=41&&i<=44||i>=48&&i<=55?r>xt.beforeFirstVcl?s=!0:r=xt.beforeFirstVcl:(i===38||i===40||i>=45&&i<=47||i>=56&&i<=63)&&r<xt.afterFirstVcl&&(s=!0),s&&A.add(a.offset)}if(A.size===0)return null;let n=[];for(let a of vs(t,e))A.has(a.offset)||n.push(t.subarray(a.offset,a.offset+a.length));return rC(n,e)},Ic=t=>{let e=new Ge(t);if(e.readBits(2)!==2)return null;let r=e.readBits(1),a=(e.readBits(1)<<1)+r;if(a===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let c=8;a>=2&&(c=e.readBits(1)?12:10);let g=e.readBits(3),u=0,l=0;if(g!==7)if(l=e.readBits(1),a===1||a===3){let k=e.readBits(1),R=e.readBits(1);u=!k&&!R?3:k&&!R?2:1,e.skipBits(1)}else u=1;else u=3,l=1;let f=e.readBits(16),p=e.readBits(16),h=f+1,y=p+1,w=h*y,D=_e(Pr).level;for(let S of Pr)if(w<=S.maxPictureSize){D=S.level;break}return{profile:a,level:D,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:g===2?1:g===1?6:2,transferCharacteristics:g===2?1:g===1?6:2,matrixCoefficients:g===7?0:g===2?1:g===1?6:2}},Lp=function*(t){let e=new Ge(t),A=()=>{let r=0;for(let n=0;n<8;n++){let a=e.readAlignedByte();if(r|=(a&127)<<n*7,!(a&128))break;if(n===7&&a&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){e.skipBits(1);let r=e.readBits(4),n=e.readBits(1),a=e.readBits(1);e.skipBits(1),n&&e.skipBits(8);let i;if(a){let s=A();if(s===null)return;i=s}else i=Math.floor(e.getBitsLeft()/8);C(e.pos%8===0),yield{type:r,data:t.subarray(e.pos/8,e.pos/8+i)},e.skipBits(i*8)}},Dc=t=>{for(let{type:e,data:A}of Lp(t)){if(e!==1)continue;let r=new Ge(A),n=r.readBits(3),a=r.readBits(1),i=r.readBits(1),s=0,o=0,c=0;if(i)s=r.readBits(5);else{if(r.readBits(1)&&(r.skipBits(32),r.skipBits(32),r.readBits(1)))return null;let S=r.readBits(1);S&&(c=r.readBits(5),r.skipBits(32),r.skipBits(5),r.skipBits(5));let k=r.readBits(5);for(let R=0;R<=k;R++){r.skipBits(12);let M=r.readBits(5);if(R===0&&(s=M),M>7){let V=r.readBits(1);R===0&&(o=V)}if(S&&r.readBits(1)){let F=c+1;r.skipBits(F),r.skipBits(F),r.skipBits(1)}r.readBits(1)&&r.skipBits(4)}}let g=r.readBits(4),u=r.readBits(4),l=g+1;r.skipBits(l);let f=u+1;r.skipBits(f);let p=0;if(i?p=0:p=r.readBits(1),p&&(r.skipBits(4),r.skipBits(3)),r.skipBits(1),r.skipBits(1),r.skipBits(1),!i){r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let x=r.readBits(1);x&&(r.skipBits(1),r.skipBits(1));let S=r.readBits(1),k=0;S?k=2:k=r.readBits(1),k>0&&(r.readBits(1)||r.skipBits(1)),x&&r.skipBits(3)}r.skipBits(1),r.skipBits(1),r.skipBits(1);let h=r.readBits(1),y=8;n===2&&h?y=r.readBits(1)?12:10:n<=2&&(y=h?10:8);let w=0;n!==1&&(w=r.readBits(1));let D=1,b=1,E=0;return w||(n===0?(D=1,b=1):n===1?(D=0,b=0):y===12&&(D=r.readBits(1),D&&(b=r.readBits(1))),D&&b&&(E=r.readBits(2))),{profile:n,level:s,tier:o,bitDepth:y,monochrome:w,chromaSubsamplingX:D,chromaSubsamplingY:b,chromaSamplePosition:E}}return null},Cc=t=>{let e=xe(t),A=e.getUint8(9),r=e.getUint16(10,!0),n=e.getUint32(12,!0),a=e.getInt16(16,!0),i=e.getUint8(18),s=null;return i&&(s=t.subarray(19,21+A)),{outputChannelCount:A,preSkip:r,inputSampleRate:n,outputGain:a,channelMappingFamily:i,channelMappingTable:s}},uC=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],jp=t=>{let e=t[0]>>3;return{durationInSamples:uC[e]}},Vp=t=>{if(t.length<7)throw new Error("Setup header is too short.");if(t[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...t.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let A=t.length,r=new Uint8Array(A);for(let u=0;u<A;u++)r[u]=t[A-1-u];let n=new Ge(r),a=0;for(;n.getBitsLeft()>97;)if(n.readBits(1)===1){a=n.pos;break}if(a===0)throw new Error("Invalid Setup header: framing bit not found.");let i=0,s=!1,o=0;for(;n.getBitsLeft()>=97;){let u=n.pos,l=n.readBits(8),f=n.readBits(16),p=n.readBits(16);if(l>63||f!==0||p!==0){n.pos=u;break}if(n.skipBits(1),i++,i>64)break;n.clone().readBits(6)+1===i&&(s=!0,o=i)}if(!s)throw new Error("Invalid Setup header: mode header not found.");if(o>63)throw new Error(`Unsupported mode count: ${o}.`);let c=o;n.pos=0,n.skipBits(a);let g=Array(c).fill(0);for(let u=c-1;u>=0;u--)n.skipBits(40),g[u]=n.readBits(1);return{modeBlockflags:g}},$r=(t,e,A)=>{switch(t){case"avc":{for(let r of Ol(A,e)){let n=A[r.offset],a=zi(n);if(a>=Jt.NON_IDR_SLICE&&a<=Jt.SLICE_DPC)return"delta";if(a===Jt.IDR)return"key";if(a===Jt.SEI&&(!bs()||wp()>=144)){let i=A.subarray(r.offset,r.offset+r.length),s=Pc(i),o=1;do{let c=0;for(;;){let l=s[o++];if(l===void 0||(c+=l,l<255))break}let g=0;for(;;){let l=s[o++];if(l===void 0||(g+=l,l<255))break}if(c===6){let l=new Ge(s);l.pos=8*o;let f=ee(l),p=l.readBits(1);if(f===0&&p===1)return"key"}o+=g}while(o<s.length-1)}}return"delta"}case"hevc":{for(let r of vs(A,e)){let n=Wr(A[r.offset]);if(n<bt.BLA_W_LP)return"delta";if(n<=bt.RSV_IRAP_VCL23)return"key"}return"delta"}case"vp8":return(A[0]&1)===0?"key":"delta";case"vp9":{let r=new Ge(A);if(r.readBits(2)!==2)return null;let n=r.readBits(1);return(r.readBits(1)<<1)+n===3&&r.skipBits(1),r.readBits(1)?null:r.readBits(1)===0?"key":"delta"}case"av1":{let r=!1;for(let{type:n,data:a}of Lp(A))if(n===1){let i=new Ge(a);i.skipBits(4),r=!!i.readBits(1)}else if(n===3||n===6||n===7){if(r)return"key";let i=new Ge(a);return i.readBits(1)?null:i.readBits(2)===0?"key":"delta"}return null}default:$t(t),C(!1)}},Zr;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})(Zr||(Zr={}));var _s=(t,e)=>{let A=xe(t),r=0,n=A.getUint32(r,!0);r+=4;let a=mt.decode(t.subarray(r,r+n));r+=n,n>0&&(e.raw??={},e.raw.vendor??=a);let i=A.getUint32(r,!0);r+=4;for(let s=0;s<i;s++){let o=A.getUint32(r,!0);r+=4;let c=mt.decode(t.subarray(r,r+o));r+=o;let g=c.indexOf("=");if(g===-1)continue;let u=c.slice(0,g).toUpperCase(),l=c.slice(g+1);switch(e.raw??={},e.raw[u]??=l,u){case"TITLE":e.title??=l;break;case"DESCRIPTION":e.description??=l;break;case"ARTIST":e.artist??=l;break;case"ALBUM":e.album??=l;break;case"ALBUMARTIST":e.albumArtist??=l;break;case"COMMENT":e.comment??=l;break;case"LYRICS":e.lyrics??=l;break;case"TRACKNUMBER":{let f=l.split("/"),p=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.trackNumber??=p),h&&Number.isInteger(h)&&h>0&&(e.tracksTotal??=h)}break;case"TRACKTOTAL":{let f=Number.parseInt(l,10);Number.isInteger(f)&&f>0&&(e.tracksTotal??=f)}break;case"DISCNUMBER":{let f=l.split("/"),p=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(p)&&p>0&&(e.discNumber??=p),h&&Number.isInteger(h)&&h>0&&(e.discsTotal??=h)}break;case"DISCTOTAL":{let f=Number.parseInt(l,10);Number.isInteger(f)&&f>0&&(e.discsTotal??=f)}break;case"DATE":{let f=new Date(l);Number.isNaN(f.getTime())||(e.date??=f)}break;case"GENRE":e.genre??=l;break;case"METADATA_BLOCK_PICTURE":{let f=Ts(l),p=xe(f),h=p.getUint32(0,!1),y=p.getUint32(4,!1),w=String.fromCharCode(...f.subarray(8,8+y)),D=p.getUint32(8+y,!1),b=mt.decode(f.subarray(12+y,12+y+D)),E=p.getUint32(y+D+28),x=f.subarray(y+D+32,y+D+32+E);e.images??=[],e.images.push({data:x,mimeType:w,kind:h===3?"coverFront":h===4?"coverBack":"unknown",name:void 0,description:b||void 0})}break}}};var Ms=[2,1,2,3,3,4,4,5],bc=t=>{if(t.length<7||t[0]!==11||t[1]!==119)return null;let e=new Ge(t);e.skipBits(16),e.skipBits(16);let A=e.readBits(2);if(A===3)return null;let r=e.readBits(6),n=e.readBits(5);if(n>8)return null;let a=e.readBits(3),i=e.readBits(3);i&1&&i!==1&&e.skipBits(2),i&4&&e.skipBits(2),i===2&&e.skipBits(2);let s=e.readBits(1),o=Math.floor(r/2);return{fscod:A,bsid:n,bsmod:a,acmod:i,lfeon:s,bitRateCode:o}},Kp=[64*2,69*2,96*2,64*2,70*2,96*2,80*2,87*2,120*2,80*2,88*2,120*2,96*2,104*2,144*2,96*2,105*2,144*2,112*2,121*2,168*2,112*2,122*2,168*2,128*2,139*2,192*2,128*2,140*2,192*2,160*2,174*2,240*2,160*2,175*2,240*2,192*2,208*2,288*2,192*2,209*2,288*2,224*2,243*2,336*2,224*2,244*2,336*2,256*2,278*2,384*2,256*2,279*2,384*2,320*2,348*2,480*2,320*2,349*2,480*2,384*2,417*2,576*2,384*2,418*2,576*2,448*2,487*2,672*2,448*2,488*2,672*2,512*2,557*2,768*2,512*2,558*2,768*2,640*2,696*2,960*2,640*2,697*2,960*2,768*2,835*2,1152*2,768*2,836*2,1152*2,896*2,975*2,1344*2,896*2,976*2,1344*2,1024*2,1114*2,1536*2,1024*2,1115*2,1536*2,1152*2,1253*2,1728*2,1152*2,1254*2,1728*2,1280*2,1393*2,1920*2,1280*2,1394*2,1920*2],Wp=1536,a1=new Uint8Array([5,4,65,67,45,51]),s1=new Uint8Array([5,4,69,65,67,51]),Ml=[1,2,3,6],Ec=t=>{if(t.length<6||t[0]!==11||t[1]!==119)return null;let e=new Ge(t);e.skipBits(16);let A=e.readBits(2);if(e.skipBits(3),A!==0&&A!==2)return null;let r=e.readBits(11),n=e.readBits(2),a=0,i;n===3?(a=e.readBits(2),i=3):i=e.readBits(2);let s=e.readBits(3),o=e.readBits(1),c=e.readBits(5);if(c<11||c>16)return null;let g=Ml[i],u;return n<3?u=vn[n]/1e3:u=Yl[a]/1e3,{dataRate:Math.round((r+1)*u/(g*16)),substreams:[{fscod:n,fscod2:a,bsid:c,bsmod:0,acmod:s,lfeon:o,numDepSub:0,chanLoc:0}]}},Zp=t=>{if(t.length<2)return null;let e=new Ge(t),A=e.readBits(13),r=e.readBits(3),n=[];for(let a=0;a<=r&&!(Math.ceil(e.pos/8)+3>t.length);a++){let i=e.readBits(2),s=e.readBits(5);e.skipBits(1),e.skipBits(1);let o=e.readBits(3),c=e.readBits(3),g=e.readBits(1);e.skipBits(3);let u=e.readBits(4),l=0;u>0?l=e.readBits(9):e.skipBits(1),n.push({fscod:i,fscod2:null,bsid:s,bsmod:o,acmod:c,lfeon:g,numDepSub:u,chanLoc:l})}return n.length===0?null:{dataRate:A,substreams:n}},Tc=t=>{let e=t.substreams[0];return C(e),e.fscod<3?vn[e.fscod]:e.fscod2!==null&&e.fscod2<3?Yl[e.fscod2]:null},kc=t=>{let e=t.substreams[0];C(e);let A=Ms[e.acmod]+e.lfeon;if(e.numDepSub>0){let r=[2,2,1,1,2,2,2,1,1];for(let n=0;n<9;n++)e.chanLoc&1<<8-n&&(A+=r[n])}return A};var ht=class{constructor(e){this.input=e}dispose(){}};var dt=new Uint8Array(0),Fe=class t{constructor(e,A,r,n,a=-1,i,s){if(this.data=e,this.type=A,this.timestamp=r,this.duration=n,this.sequenceNumber=a,e===dt&&i===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(i===void 0&&(i=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(A!=="key"&&A!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(r))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(n)||n<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(a))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(i)||i<0)throw new TypeError("byteLength must be a non-negative integer.");if(s!==void 0&&(typeof s!="object"||!s))throw new TypeError("sideData, when provided, must be an object.");if(s?.alpha!==void 0&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(s?.alphaByteLength!==void 0&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=i,this.sideData=s??{},this.sideData.alpha&&this.sideData.alphaByteLength===void 0&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===dt}get microsecondTimestamp(){return Math.trunc(qr*this.timestamp)}get microsecondDuration(){return Math.trunc(qr*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(e=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:e,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e,A){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let r=new Uint8Array(e.byteLength);return e.copyTo(r),new t(r,e.type,e.timestamp/1e6,(e.duration??0)/1e6,void 0,void 0,A)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.data!==void 0&&!(e.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(e?.type!==void 0&&e.type!=="key"&&e.type!=="delta")throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");if(e?.sequenceNumber!==void 0&&!Number.isFinite(e.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(e?.sideData!==void 0&&(typeof e.sideData!="object"||e.sideData===null))throw new TypeError("options.sideData, when provided, must be an object.");return new t(e?.data??this.data,e?.type??this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,e?.sequenceNumber??this.sequenceNumber,this.byteLength,e?.sideData??this.sideData)}};var Gc=t=>{let A=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");if(t.codecStrings.length>0){let r=[...new Set(t.codecStrings)];A+=`; codecs="${r.join(", ")}"`}return A},xc=t=>{let e=xe(t),A=0,r=e.getUint8(A);A+=1,A+=3;let n=Ur(t.subarray(A,A+16));A+=16;let a=null;if(r>0){let s=e.getUint32(A);if(A+=4,s>0){a=[];for(let o=0;o<s;o++)a.push(Ur(t.subarray(A,A+16))),A+=16}}let i=e.getUint32(A);return A+=4,{systemId:n,keyIds:a,data:t.slice(A,A+i)}},Sc=(t,e)=>t.systemId===e.systemId&&Bp(t.data,e.data);var GA=8,yr=16,Ir=t=>{let e=J(t),A=Le(t,4),r=8;e===1&&(e=Ut(t),r=16);let a=e-r;return a<0?null:{name:A,totalSize:e,headerSize:r,contentSize:a}},Jr=t=>Dr(t)/65536,Yc=t=>Dr(t)/1073741824,vc=t=>{let e=0;for(let A=0;A<4;A++){e<<=7;let r=ne(t);if(e|=r&127,!(r&128))break}return e},xA=t=>{let e=At(t);return t.skip(2),e=Math.min(e,t.remainingLength),mt.decode(te(t,e))},$p=t=>{let e=Ir(t);if(!e||e.name!=="data"||t.remainingLength<8)return null;let A=J(t);t.skip(4);let r=te(t,e.contentSize-8);switch(A){case 1:return mt.decode(r);case 2:return new TextDecoder("utf-16be").decode(r);case 13:return new TA(r,"image/jpeg");case 14:return new TA(r,"image/png");case 27:return new TA(r,"image/bmp");default:return r}};var SA=16,Cr=new Uint32Array(256),Ui=new Uint32Array(256),qi=new Uint32Array(256),Li=new Uint32Array(256),ji=new Uint32Array(256),kt=new Uint32Array(256),Jp=new Uint32Array(10),Xp=!1,gC=()=>{let t=new Uint8Array(256),e=new Uint8Array(256),A=new Uint8Array(256);for(let a=0,i=1;a<256;a++)A[a]=i,e[i]=a,i=i^i<<1^(i&128?283:0);let r=(a,i)=>a&&i?A[(e[a]+e[i])%255]:0;t[0]=99;for(let a=1;a<256;a++){let i=A[255-e[a]],s=i^i<<1^i<<2^i<<3^i<<4;s=s>>>8^s&255^99,t[a]=s}for(let a=0;a<256;a++){let i=t[a],s=t.indexOf(a);Cr[a]=i<<24|i<<16|i<<8|i,kt[a]=s<<24|s<<16|s<<8|s;let o=r(s,14),c=r(s,9),g=r(s,13),u=r(s,11),l=o<<24|c<<16|g<<8|u;Ui[a]=l,qi[a]=l>>>8|l<<24,Li[a]=l>>>16|l<<16,ji[a]=l>>>24|l<<8}let n=1;for(let a=0;a<10;a++)Jp[a]=n<<24,n=n<<1^(n&128?283:0);Xp=!0},Rs=class{constructor(){this.roundkey=new Uint32Array(44),this.iv=new Uint32Array(SA/Uint32Array.BYTES_PER_ELEMENT),this.in=new Uint8Array(SA),this.out=new Uint8Array(SA),this.inView=new DataView(this.in.buffer),this.outView=new DataView(this.out.buffer)}init({key:e,iv:A}){C(e.byteLength===16),C(A.byteLength===16),Xp||gC();let r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=new DataView(A.buffer,A.byteOffset,A.byteLength);this.roundkey[0]=r.getUint32(0,!1),this.roundkey[1]=r.getUint32(4,!1),this.roundkey[2]=r.getUint32(8,!1),this.roundkey[3]=r.getUint32(12,!1),this.iv[0]=n.getUint32(0,!1),this.iv[1]=n.getUint32(4,!1),this.iv[2]=n.getUint32(8,!1),this.iv[3]=n.getUint32(12,!1);for(let a=4;a<44;a+=4){let i=this.roundkey[a-1];this.roundkey[a]=this.roundkey[a-4]^Cr[i>>>16&255]&4278190080^Cr[i>>>8&255]&16711680^Cr[i>>>0&255]&65280^Cr[i>>>24&255]&255^Jp[a/4-1],this.roundkey[a+1]=this.roundkey[a-3]^this.roundkey[a],this.roundkey[a+2]=this.roundkey[a-2]^this.roundkey[a+1],this.roundkey[a+3]=this.roundkey[a-1]^this.roundkey[a+2]}for(let a=0,i=40;a<i;a+=4,i-=4)for(let s=0;s<4;s++){let o=this.roundkey[a+s];this.roundkey[a+s]=this.roundkey[i+s],this.roundkey[i+s]=o}for(let a=4;a<40;a+=4)for(let i=0;i<4;i++){let s=this.roundkey[a+i];this.roundkey[a+i]=Ui[Cr[s>>>24&255]&255]^qi[Cr[s>>>16&255]&255]^Li[Cr[s>>>8&255]&255]^ji[Cr[s>>>0&255]&255]}}decrypt(){let e=this.inView.getUint32(0,!1)^this.roundkey[0],A=this.inView.getUint32(4,!1)^this.roundkey[1],r=this.inView.getUint32(8,!1)^this.roundkey[2],n=this.inView.getUint32(12,!1)^this.roundkey[3],a=this.inView.getUint32(0,!1),i=this.inView.getUint32(4,!1),s=this.inView.getUint32(8,!1),o=this.inView.getUint32(12,!1),c,g,u,l;for(let w=1;w<10;w++){let D=w*4;c=Ui[e>>>24]^qi[n>>>16&255]^Li[r>>>8&255]^ji[A&255]^this.roundkey[D],g=Ui[A>>>24]^qi[e>>>16&255]^Li[n>>>8&255]^ji[r&255]^this.roundkey[D+1],u=Ui[r>>>24]^qi[A>>>16&255]^Li[e>>>8&255]^ji[n&255]^this.roundkey[D+2],l=Ui[n>>>24]^qi[r>>>16&255]^Li[A>>>8&255]^ji[e&255]^this.roundkey[D+3],e=c,A=g,r=u,n=l}let f=kt[e>>>24&255]&4278190080^kt[n>>>16&255]&16711680^kt[r>>>8&255]&65280^kt[A>>>0&255]&255^this.roundkey[40],p=kt[A>>>24&255]&4278190080^kt[e>>>16&255]&16711680^kt[n>>>8&255]&65280^kt[r>>>0&255]&255^this.roundkey[41],h=kt[r>>>24&255]&4278190080^kt[A>>>16&255]&16711680^kt[e>>>8&255]&65280^kt[n>>>0&255]&255^this.roundkey[42],y=kt[n>>>24&255]&4278190080^kt[r>>>16&255]&16711680^kt[A>>>8&255]&65280^kt[e>>>0&255]&255^this.roundkey[43];this.outView.setUint32(0,f^this.iv[0],!1),this.outView.setUint32(4,p^this.iv[1],!1),this.outView.setUint32(8,h^this.iv[2],!1),this.outView.setUint32(12,y^this.iv[3],!1),this.iv[0]=a,this.iv[1]=i,this.iv[2]=s,this.iv[3]=o}},ew=(t,e,A)=>{let r=!1,n=0,a=2**16,i=16,s=new Rs;return new ReadableStream({pull:async o=>{r||(s.init(await e()),r=!0);let c=a+i,g=t.requestSliceRange(n,0,c);if(g instanceof Promise&&(g=await g),!g||g.length===0)throw new Error("Invalid ciphertext.");let u=g.length;if(u%16!==0)throw new Error("Invalid ciphertext.");let l=u===c?u-i:u,f=te(g,l),p=new Uint8Array(l);for(let h=0;h<l;h+=16)s.in.set(f.subarray(h,h+16)),s.decrypt(),p.set(s.out,h);if(l<u)o.enqueue(p),n+=l;else{let h=p[l-1];if(h===0||h>16)throw new Error("Invalid PKCS#7 padding. Incorrect key or corrupted data.");let y=p.subarray(0,l-h);o.enqueue(y),o.close(),A()}},cancel:()=>{A()}})};var Oc=class t extends ht{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.psshBoxes=[],this.currentFragment=null,this.lastReadFragment=null,this.decryptionKeyCache=new Map,this.reader=e._reader}async getTrackBackings(){return await this.readMetadata(),this.tracks.map(e=>e.trackBacking)}async getMimeType(){await this.readMetadata();let e=await this.getTrackBackings(),A=await Promise.all(e.map(r=>r.getDecoderConfig().then(n=>n?.codec??null)));return Gc({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(r=>r.info?.type==="video"),hasAudio:this.tracks.some(r=>r.info?.type==="audio"),codecStrings:A.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0,A=!1;for(;;){let r=this.reader.requestSliceRange(e,GA,yr);if(r instanceof Promise&&(r=await r),!r)break;let n=e,a=Ir(r);if(!a)break;if(a.name==="ftyp"||a.name==="styp"){let i=Le(r,4);this.isQuickTime=i==="qt "}else if(a.name==="moov"){let i=this.reader.requestSlice(r.filePos,a.contentSize);if(i instanceof Promise&&(i=await i),!i)break;this.moovSlice=i,this.readContiguousBoxes(this.moovSlice);for(let s of this.tracks){let o=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(o*s.timescale)}A=this.isFragmented&&this.reader.fileSize!==null&&this.reader.fileSize>n+a.totalSize;break}else if(a.name==="moof"){if(!this.input._initInput)throw new Error('"moof" box encountered with no "moov" box present; this file is likely a Segment as described in ISO/IEC 14496-12 Section 8.16. A separate init file that contains a "moov" box is required to read this file, please provide it using InputOptions.initInput.');let i=await this.input._initInput._getDemuxer();if(i.constructor!==t)throw new Error("Init input must match the input's format.");await i.readMetadata(),this.movieTimescale=i.movieTimescale,this.movieDurationInTimescale=i.movieDurationInTimescale,this.metadataTags=i.metadataTags,this.isFragmented=!0,this.fragmentTrackDefaults=i.fragmentTrackDefaults,this.psshBoxes=i.psshBoxes;for(let s of i.tracks){let o={id:s.id,demuxer:this,trackBacking:null,disposition:s.disposition,timescale:s.timescale,durationInMediaTimescale:s.durationInMediaTimescale,durationInMovieTimescale:s.durationInMovieTimescale,rotation:s.rotation,internalCodecId:s.internalCodecId,name:s.name,languageCode:s.languageCode,sampleTableByteOffset:null,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:s.editListPreviousSegmentDurations,editListOffset:s.editListOffset,encryptionInfo:s.encryptionInfo,encryptionAuxInfo:null,frmaCodecString:null,info:s.info};if(s.trackBacking){if(C(o.info),o.info.type==="video"&&o.info.width!==-1){let c=o;o.trackBacking=new Mc(c),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let c=o;o.trackBacking=new Rc(c),this.tracks.push(o)}}}A=!1;break}e=n+a.totalSize}if(A){C(this.reader.fileSize!==null);let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),C(r);let n=J(r),a=this.reader.fileSize-n;if(a>=0&&a<=this.reader.fileSize-yr){let i=this.reader.requestSliceRange(a,GA,yr);if(i instanceof Promise&&(i=await i),i){let s=Ir(i);if(s&&s.name==="mfra"){let o=this.reader.requestSlice(i.filePos,s.contentSize);o instanceof Promise&&(o=await o),o&&this.readContiguousBoxes(o)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let A={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=A,e.sampleTableByteOffset===null)return A;C(this.moovSlice);let r=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(r),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Ot.includes(e.info.codec)&&A.sampleCompositionTimeOffsets.length===0){C(e.info?.type==="audio");let a=kA(e.info.codec),i=[],s=[];for(let o=0;o<A.sampleToChunk.length;o++){let c=A.sampleToChunk[o],g=A.sampleToChunk[o+1],u=(g?g.startChunkIndex:A.chunkOffsets.length)-c.startChunkIndex;for(let l=0;l<u;l++){let f=c.startSampleIndex+l*c.samplesPerChunk,p=f+c.samplesPerChunk,h=ye(A.sampleTimingEntries,f,R=>R.startIndex),y=A.sampleTimingEntries[h],w=ye(A.sampleTimingEntries,p,R=>R.startIndex),D=A.sampleTimingEntries[w],b=y.startDecodeTimestamp+(f-y.startIndex)*y.delta,x=D.startDecodeTimestamp+(p-D.startIndex)*D.delta-b,S=_e(i);S&&S.delta===x?S.count++:i.push({startIndex:c.startChunkIndex+l,startDecodeTimestamp:b,count:1,delta:x});let k=c.samplesPerChunk*a.sampleSize*e.info.numberOfChannels;s.push(k)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}A.sampleTimingEntries=i,A.sampleSizes=s}if(A.sampleCompositionTimeOffsets.length>0){A.presentationTimestamps=[];for(let a of A.sampleTimingEntries)for(let i=0;i<a.count;i++)A.presentationTimestamps.push({presentationTimestamp:a.startDecodeTimestamp+i*a.delta,sampleIndex:a.startIndex+i});for(let a of A.sampleCompositionTimeOffsets)for(let i=0;i<a.count;i++){let s=a.startIndex+i,o=A.presentationTimestamps[s];o&&(o.presentationTimestamp+=a.offset)}A.presentationTimestamps.sort((a,i)=>a.presentationTimestamp-i.presentationTimestamp),A.presentationTimestampIndexMap=Array(A.presentationTimestamps.length).fill(-1);for(let a=0;a<A.presentationTimestamps.length;a++)A.presentationTimestampIndexMap[A.presentationTimestamps[a].sampleIndex]=a}return A}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let A=this.reader.requestSliceRange(e,GA,yr);A instanceof Promise&&(A=await A),C(A);let r=Ir(A);C(r?.name==="moof");let n=this.reader.requestSlice(e,r.totalSize);n instanceof Promise&&(n=await n),C(n),this.traverseBox(n);let a=this.lastReadFragment;C(a&&a.moofOffset===e);for(let[,i]of a.trackData){let s=i.track,{fragmentPositionCache:o}=s;if(!i.startTimestampIsFinal){let g=s.fragmentLookupTable.find(u=>u.moofOffset===a.moofOffset);if(g)Rl(i,g.timestamp);else{let u=ye(o,a.moofOffset-1,l=>l.moofOffset);if(u!==-1){let l=o[u];Rl(i,l.endTimestamp)}}i.startTimestampIsFinal=!0}let c=ye(o,i.startTimestamp,g=>g.startTimestamp);if((c===-1||o[c].moofOffset!==a.moofOffset)&&o.splice(c+1,0,{moofOffset:a.moofOffset,startTimestamp:i.startTimestamp,endTimestamp:i.endTimestamp}),i.encryptionAuxInfo&&s.encryptionInfo){let g=await nw(this.reader,s.encryptionInfo,i.encryptionAuxInfo);for(let u=0;u<Math.min(i.samples.length,g.length);u++){let l=g[u];i.samples[u].encryption=l}}}return a}readContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-GA&&this.traverseBox(e););}*iterateContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-GA;){let r=e.filePos,n=Ir(e);if(!n)break;yield{boxInfo:n,slice:e},e.filePos=r+n.totalSize}}traverseBox(e){let A=e.filePos,r=Ir(e);if(!r)return!1;let n=e.filePos,a=A+r.totalSize;switch(r.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"sinf":case"schi":this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"mvhd":{let i=ne(e);e.skip(3),i===1?(e.skip(16),this.movieTimescale=J(e),this.movieDurationInTimescale=Ut(e)):(e.skip(8),this.movieTimescale=J(e),this.movieDurationInTimescale=J(e))}break;case"trak":{let i={id:-1,demuxer:this,trackBacking:null,disposition:{...Ct,primary:!1},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Xe,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0,encryptionInfo:null,encryptionAuxInfo:null,frmaCodecString:null};if(this.currentTrack=i,this.readContiguousBoxes(e.slice(n,r.contentSize)),i.id!==-1&&i.timescale!==-1&&i.info!==null){if(i.info.type==="video"&&i.info.width!==-1){let s=i;i.trackBacking=new Mc(s),this.tracks.push(i)}else if(i.info.type==="audio"&&i.info.numberOfChannels!==-1){let s=i;i.trackBacking=new Rc(s),this.tracks.push(i)}}this.currentTrack=null}break;case"tkhd":{let i=this.currentTrack;if(!i)break;let s=ne(e),c=!!(YA(e)&1);if(i.disposition.default=c,s===0)e.skip(8),i.id=J(e),e.skip(4),i.durationInMovieTimescale=J(e);else if(s===1)e.skip(16),i.id=J(e),e.skip(4),i.durationInMovieTimescale=Ut(e);else throw new Error(`Incorrect track header version ${s}.`);e.skip(2*4+2+2+2+2);let g=[Jr(e),Jr(e),Yc(e),Jr(e),Jr(e),Yc(e),Jr(e),Jr(e),Yc(e)],u=Yi(Is(mC(g),90));C(u===0||u===90||u===180||u===270),i.rotation=u}break;case"elst":{let i=this.currentTrack;if(!i)break;let s=ne(e);e.skip(3);let o=!1,c=0,g=J(e);for(let u=0;u<g;u++){let l=s===1?Ut(e):J(e),f=s===1?aw(e):Dr(e),p=Jr(e);if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){c+=l;continue}if(p!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}i.editListPreviousSegmentDurations=c,i.editListOffset=f,o=!0}}}break;case"mdhd":{let i=this.currentTrack;if(!i)break;let s=ne(e);e.skip(3),s===0?(e.skip(8),i.timescale=J(e),i.durationInMediaTimescale=J(e)):s===1&&(e.skip(16),i.timescale=J(e),i.durationInMediaTimescale=Ut(e));let o=At(e);if(o>0){i.languageCode="";for(let c=0;c<3;c++)i.languageCode=String.fromCharCode(96+(o&31))+i.languageCode,o>>=5;Oi(i.languageCode)||(i.languageCode=Xe)}}break;case"hdlr":{let i=this.currentTrack;if(!i)break;e.skip(8);let s=Le(e,4);s==="vide"?i.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:s==="soun"&&(i.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null,pcmLittleEndian:!1,pcmSampleSize:null})}break;case"stbl":{let i=this.currentTrack;if(!i)break;i.sampleTableByteOffset=A,this.readContiguousBoxes(e.slice(n,r.contentSize))}break;case"stsd":{let i=this.currentTrack;if(!i||i.info===null||i.sampleTable)break;let s=ne(e);e.skip(3);let o=J(e);for(let c=0;c<o;c++){let g=e.filePos,u=Ir(e);if(!u)break;i.internalCodecId=u.name;let l=u.name.toLowerCase();if(i.info.type==="video"){e.skip(6*1+2+2+2+3*4),i.info.width=At(e),i.info.height=At(e),i.info.squarePixelWidth=i.info.width,i.info.squarePixelHeight=i.info.height,e.skip(50),i.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,g+u.totalSize-e.filePos));let f=l==="encv"?i.frmaCodecString:l;i.frmaCodecString=null,f==="avc1"||f==="avc3"?(i.info.codec="avc",i.info.avcType=f==="avc1"?1:3):f==="hvc1"||f==="hev1"?i.info.codec="hevc":f==="vp08"?i.info.codec="vp8":f==="vp09"?i.info.codec="vp9":f==="av01"?i.info.codec="av1":console.warn(f===null?"Unknown encrypted video codec due to missing frma box.":`Unsupported video codec (sample entry type '${u.name}').`)}else{e.skip(6*1+2);let f=At(e);e.skip(3*2);let p=At(e),h=At(e);e.skip(2*2);let y=J(e)/65536,w=null;s===0&&f>0&&(f===1?(e.skip(4),h=8*J(e),e.skip(2*4)):f===2&&(e.skip(4),y=Qc(e),p=J(e),e.skip(4),h=J(e),w=J(e),e.skip(2*4))),i.info.numberOfChannels=p,i.info.sampleRate=y,i.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,g+u.totalSize-e.filePos));let D=l==="enca"?i.frmaCodecString:l;if(i.frmaCodecString=null,D!=="mp4a")if(D==="opus")i.info.codec="opus",i.info.sampleRate=Yn;else if(D==="flac")i.info.codec="flac";else if(D==="ulaw")i.info.codec="ulaw";else if(D==="alaw")i.info.codec="alaw";else if(D==="ac-3")i.info.codec="ac3";else if(D==="ec-3")i.info.codec="eac3";else if(D==="twos")h===8?i.info.codec="pcm-s8":h===16?i.info.codec=i.info.pcmLittleEndian?"pcm-s16":"pcm-s16be":(console.warn(`Unsupported sample size ${h} for codec 'twos'.`),i.info.codec=null);else if(D==="sowt")h===8?i.info.codec="pcm-s8":h===16?i.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${h} for codec 'sowt'.`),i.info.codec=null);else if(D==="raw ")i.info.codec="pcm-u8";else if(D==="in24")i.info.codec=i.info.pcmLittleEndian?"pcm-s24":"pcm-s24be";else if(D==="in32")i.info.codec=i.info.pcmLittleEndian?"pcm-s32":"pcm-s32be";else if(D==="fl32")i.info.codec=i.info.pcmLittleEndian?"pcm-f32":"pcm-f32be";else if(D==="fl64")i.info.codec=i.info.pcmLittleEndian?"pcm-f64":"pcm-f64be";else if(D==="ipcm"){let b=i.info.pcmSampleSize;i.info.pcmLittleEndian?b===16?i.info.codec="pcm-s16":b===24?i.info.codec="pcm-s24":b===32?i.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${b}.`),i.info.codec=null):b===16?i.info.codec="pcm-s16be":b===24?i.info.codec="pcm-s24be":b===32?i.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${b}.`),i.info.codec=null)}else if(D==="fpcm"){let b=i.info.pcmSampleSize;i.info.pcmLittleEndian?b===32?i.info.codec="pcm-f32":b===64?i.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${b}.`),i.info.codec=null):b===32?i.info.codec="pcm-f32be":b===64?i.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${b}.`),i.info.codec=null)}else if(D==="lpcm"&&w!==null){let b=h+7>>3,E=!!(w&1),x=!!(w&2),S=w&4?-1:0;h>0&&h<=64&&(E?h===32&&(i.info.codec=x?"pcm-f32be":"pcm-f32"):S&1<<b-1?b===1?i.info.codec="pcm-s8":b===2?i.info.codec=x?"pcm-s16be":"pcm-s16":b===3?i.info.codec=x?"pcm-s24be":"pcm-s24":b===4&&(i.info.codec=x?"pcm-s32be":"pcm-s32"):b===1&&(i.info.codec="pcm-u8")),i.info.codec===null&&console.warn("Unsupported PCM format.")}else console.warn(D===null?"Unknown encrypted audio codec due to missing frma box.":`Unsupported audio codec (sample entry type '${u.name}').`)}e.filePos=g+u.totalSize}}break;case"frma":{let i=this.currentTrack;if(!i)break;let o=Le(e,4).toLowerCase();i.frmaCodecString=o}break;case"schm":{let i=this.currentTrack;if(!i)break;e.skip(4);let s=Le(e,4);s==="cenc"||s==="cens"||s==="cbcs"?i.encryptionInfo={scheme:s,defaultKid:null,defaultIsProtected:null,defaultPerSampleIvSize:null,defaultConstantIv:null,defaultCryptByteBlock:null,defaultSkipByteBlock:null}:console.warn(`Unsupported encryption scheme '${s}'.`)}break;case"tenc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ne(e);e.skip(3),e.skip(1);let o=ne(e);if(s>0?(i.encryptionInfo.defaultCryptByteBlock=o>>4,i.encryptionInfo.defaultSkipByteBlock=o&15):(i.encryptionInfo.defaultCryptByteBlock=0,i.encryptionInfo.defaultSkipByteBlock=0),i.encryptionInfo.defaultIsProtected=ne(e)!==0,i.encryptionInfo.defaultPerSampleIvSize=ne(e),i.encryptionInfo.defaultKid=Ur(te(e,16)),i.encryptionInfo.defaultIsProtected&&i.encryptionInfo.defaultPerSampleIvSize===0){let c=ne(e),g=new Uint8Array(16);g.set(te(e,c),0),i.encryptionInfo.defaultConstantIv=g}}break;case"avcC":{let i=this.currentTrack;if(!i)break;C(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"hvcC":{let i=this.currentTrack;if(!i)break;C(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"vpcC":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video"),e.skip(4);let s=ne(e),o=ne(e),c=ne(e),g=c>>4,u=c>>1&7,l=c&1,f=ne(e),p=ne(e),h=ne(e);i.info.vp9CodecInfo={profile:s,level:o,bitDepth:g,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:f,transferCharacteristics:p,matrixCoefficients:h}}break;case"av1C":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video"),e.skip(1);let s=ne(e),o=s>>5,c=s&31,g=ne(e),u=g>>7,l=g>>6&1,f=g>>5&1,p=g>>4&1,h=g>>3&1,y=g>>2&1,w=g&3,D=o===2&&l?f?12:10:l?10:8;i.info.av1CodecInfo={profile:o,level:c,tier:u,bitDepth:D,monochrome:p,chromaSubsamplingX:h,chromaSubsamplingY:y,chromaSamplePosition:w}}break;case"colr":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video");let s=Le(e,4);if(s!=="nclx"&&s!=="nclc")break;let o=At(e),c=At(e),g=At(e),u;s==="nclx"&&(u=!!(ne(e)&128)),i.info.colorSpace={primaries:Cn[o],transfer:bn[c],matrix:En[g],fullRange:u}}break;case"pasp":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="video");let s=J(e),o=J(e);s>0&&o>0&&(s>o?i.info.squarePixelWidth=Math.round(i.info.width*s/o):i.info.squarePixelHeight=Math.round(i.info.height*o/s))}break;case"wave":this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"esds":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=ne(e);C(s===3),vc(e),e.skip(2);let o=ne(e),c=(o&128)!==0,g=(o&64)!==0,u=(o&32)!==0;if(c&&e.skip(2),g){let y=ne(e);e.skip(y)}u&&e.skip(2);let l=ne(e);C(l===4);let f=vc(e),p=e.filePos,h=ne(e);if(h===64||h===103?(i.info.codec="aac",i.info.aacCodecInfo={isMpeg2:h===103,objectType:null}):h===105||h===107?i.info.codec="mp3":h===221?i.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${h}) - discarding track.`),e.skip(12),f>e.filePos-p){let y=ne(e);C(y===5);let w=vc(e);if(i.info.codecDescription=te(e,w),i.info.codec==="aac"){let D=fc(i.info.codecDescription);D.numberOfChannels!==null&&(i.info.numberOfChannels=D.numberOfChannels),D.sampleRate!==null&&(i.info.sampleRate=D.sampleRate)}}}break;case"enda":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),i.info.pcmLittleEndian=!!(At(e)&255)}break;case"pcmC":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=ne(e);i.info.pcmLittleEndian=!!(s&1),i.info.pcmSampleSize=ne(e)}break;case"dOps":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(1);let s=ne(e),o=At(e),c=J(e),g=Qs(e),u=ne(e),l;u!==0?l=te(e,2+s):l=new Uint8Array(0);let f=new Uint8Array(19+l.byteLength),p=new DataView(f.buffer);p.setUint32(0,1332770163,!1),p.setUint32(4,1214603620,!1),p.setUint8(8,1),p.setUint8(9,s),p.setUint16(10,o,!0),p.setUint32(12,c,!0),p.setInt16(16,g,!0),p.setUint8(18,u),f.set(l,19),i.info.codecDescription=f,i.info.numberOfChannels=s}break;case"dfLa":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio"),e.skip(4);let s=127,o=128,c=e.filePos;for(;e.filePos<a;){let p=ne(e),h=YA(e);if((p&s)===Zr.STREAMINFO){e.skip(10);let w=J(e),D=w>>>12,b=(w>>9&7)+1;i.info.sampleRate=D,i.info.numberOfChannels=b,e.skip(20)}else e.skip(h);if(p&o)break}let g=e.filePos;e.filePos=c;let u=te(e,g-c),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),i.info.codecDescription=l}break;case"dac3":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio");let s=te(e,3),o=new Ge(s),c=o.readBits(2);o.skipBits(8);let g=o.readBits(3),u=o.readBits(1);c<3&&(i.info.sampleRate=vn[c]),i.info.numberOfChannels=Ms[g]+u}break;case"dec3":{let i=this.currentTrack;if(!i)break;C(i.info?.type==="audio");let s=te(e,r.contentSize),o=Zp(s);if(!o){console.warn("Invalid dec3 box contents, ignoring.");break}let c=Tc(o);c!==null&&(i.info.sampleRate=c),i.info.numberOfChannels=kc(o)}break;case"stts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=0,c=0;for(let g=0;g<s;g++){let u=J(e),l=J(e);i.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:c,count:u,delta:l}),o+=u,c+=u*l}}break;case"ctts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=0;for(let c=0;c<s;c++){let g=J(e),u=Dr(e);i.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:g,offset:u}),o+=g}}break;case"stsz":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e),o=J(e);if(s===0)for(let c=0;c<o;c++){let g=J(e);i.sampleTable.sampleSizes.push(g)}else i.sampleTable.sampleSizes.push(s)}break;case"stz2":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),e.skip(3);let s=ne(e),o=J(e),c=te(e,Math.ceil(o*s/8)),g=new Ge(c);for(let u=0;u<o;u++){let l=g.readBits(s);i.sampleTable.sampleSizes.push(l)}}break;case"stss":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),i.sampleTable.keySampleIndices=[];let s=J(e);for(let o=0;o<s;o++){let c=J(e)-1;i.sampleTable.keySampleIndices.push(c)}i.sampleTable.keySampleIndices[0]!==0&&i.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let c=0;c<s;c++){let g=J(e)-1,u=J(e),l=J(e);i.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:g,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let c=0;c<i.sampleTable.sampleToChunk.length;c++)if(i.sampleTable.sampleToChunk[c].startSampleIndex=o,c<i.sampleTable.sampleToChunk.length-1){let u=i.sampleTable.sampleToChunk[c+1].startChunkIndex-i.sampleTable.sampleToChunk[c].startChunkIndex;o+=u*i.sampleTable.sampleToChunk[c].samplesPerChunk}}break;case"stco":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let o=0;o<s;o++){let c=J(e);i.sampleTable.chunkOffsets.push(c)}}break;case"co64":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let s=J(e);for(let o=0;o<s;o++){let c=Ut(e);i.sampleTable.chunkOffsets.push(c)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"mehd":{let i=ne(e);e.skip(3);let s=i===1?Ut(e):J(e);this.movieDurationInTimescale=s}break;case"trex":{e.skip(4);let i=J(e),s=J(e),o=J(e),c=J(e),g=J(e);this.fragmentTrackDefaults.push({trackId:i,defaultSampleDescriptionIndex:s,defaultSampleDuration:o,defaultSampleSize:c,defaultSampleFlags:g})}break;case"tfra":{let i=ne(e);e.skip(3);let s=J(e),o=this.tracks.find(D=>D.id===s);if(!o)break;let c=J(e),g=(c&48)>>4,u=(c&12)>>2,l=c&3,f=[ne,At,YA,J],p=f[g],h=f[u],y=f[l],w=J(e);for(let D=0;D<w;D++){let b=i===1?Ut(e):J(e),E=i===1?Ut(e):J(e);p(e),h(e),y(e),o.fragmentLookupTable.push({timestamp:b,moofOffset:E})}o.fragmentLookupTable.sort((D,b)=>D.timestamp-b.timestamp);for(let D=0;D<o.fragmentLookupTable.length-1;D++){let b=o.fragmentLookupTable[D],E=o.fragmentLookupTable[D+1];b.timestamp===E.timestamp&&(o.fragmentLookupTable.splice(D+1,1),D--)}}break;case"moof":this.currentFragment={moofOffset:A,moofSize:r.totalSize,implicitBaseDataOffset:A,trackData:new Map,psshBoxes:[]},this.readContiguousBoxes(e.slice(n,r.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(C(this.currentFragment),this.readContiguousBoxes(e.slice(n,r.contentSize)),this.currentTrack){let i=this.currentFragment.trackData.get(this.currentTrack.id);if(i){this.currentFragment.implicitBaseDataOffset=i.currentOffset,i.presentationTimestamps=i.samples.map((g,u)=>({presentationTimestamp:g.presentationTimestamp,sampleIndex:u})).sort((g,u)=>g.presentationTimestamp-u.presentationTimestamp);for(let g=0;g<i.presentationTimestamps.length;g++){let u=i.presentationTimestamps[g],l=i.samples[u.sampleIndex];if(i.firstKeyFrameTimestamp===null&&l.isKeyFrame&&(i.firstKeyFrameTimestamp=l.presentationTimestamp),g<i.presentationTimestamps.length-1){let p=i.presentationTimestamps[g+1].presentationTimestamp-u.presentationTimestamp;l.duration=p}}let s=i.samples[i.presentationTimestamps[0].sampleIndex],o=i.samples[_e(i.presentationTimestamps).sampleIndex];i.startTimestamp=s.presentationTimestamp,i.endTimestamp=o.presentationTimestamp+o.duration;let{currentFragmentState:c}=this.currentTrack;C(c),c.startTimestamp!==null&&(Rl(i,c.startTimestamp),i.startTimestampIsFinal=!0),c.encryptionAuxInfo&&!i.samples[0].encryption&&(i.encryptionAuxInfo=c.encryptionAuxInfo)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"pssh":{if(this.input._formatOptions.isobmff?._suppressPsshParsing)break;let i=xc(te(e,r.contentSize));this.currentFragment?this.currentFragment.psshBoxes.push(i):this.currentTrack||this.psshBoxes.push(i)}break;case"tfhd":{C(this.currentFragment),e.skip(1);let i=YA(e),s=!!(i&1),o=!!(i&2),c=!!(i&8),g=!!(i&16),u=!!(i&32),l=!!(i&65536),f=!!(i&131072),p=J(e),h=this.tracks.find(w=>w.id===p);if(!h)break;let y=this.fragmentTrackDefaults.find(w=>w.trackId===p);this.currentTrack=h,h.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:y?.defaultSampleDescriptionIndex??null,defaultSampleDuration:y?.defaultSampleDuration??null,defaultSampleSize:y?.defaultSampleSize??null,defaultSampleFlags:y?.defaultSampleFlags??null,startTimestamp:null,encryptionAuxInfo:null},s?h.currentFragmentState.baseDataOffset=Ut(e):f&&(h.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(h.currentFragmentState.sampleDescriptionIndex=J(e)),c&&(h.currentFragmentState.defaultSampleDuration=J(e)),g&&(h.currentFragmentState.defaultSampleSize=J(e)),u&&(h.currentFragmentState.defaultSampleFlags=J(e)),l&&(h.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let i=this.currentTrack;if(!i)break;C(i.currentFragmentState);let s=ne(e);e.skip(3);let o=s===0?J(e):Ut(e);i.currentFragmentState.startTimestamp=o}break;case"trun":{let i=this.currentTrack;if(!i)break;C(this.currentFragment),C(i.currentFragmentState);let s=ne(e),o=YA(e),c=!!(o&1),g=!!(o&4),u=!!(o&256),l=!!(o&512),f=!!(o&1024),p=!!(o&2048),h=J(e),y=null;c&&(y=Dr(e));let w=null;g&&(w=J(e));let D;if(this.currentFragment.trackData.has(i.id)?(D=this.currentFragment.trackData.get(i.id),y!==null&&(D.currentOffset=i.currentFragmentState.baseDataOffset+y)):(D={track:i,currentTimestamp:0,currentOffset:i.currentFragmentState.baseDataOffset+(y??0),startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1,encryptionAuxInfo:null},this.currentFragment.trackData.set(i.id,D)),h===0){this.currentFragment.implicitBaseDataOffset=D.currentOffset;break}for(let b=0;b<h;b++){let E;u?E=J(e):(C(i.currentFragmentState.defaultSampleDuration!==null),E=i.currentFragmentState.defaultSampleDuration);let x;l?x=J(e):(C(i.currentFragmentState.defaultSampleSize!==null),x=i.currentFragmentState.defaultSampleSize);let S;f?S=J(e):(C(i.currentFragmentState.defaultSampleFlags!==null),S=i.currentFragmentState.defaultSampleFlags),b===0&&w!==null&&(S=w);let k=0;p&&(s===0?k=J(e):k=Dr(e));let R=!(S&65536);D.samples.push({presentationTimestamp:D.currentTimestamp+k,duration:E,byteOffset:D.currentOffset,byteSize:x,isKeyFrame:R,encryption:null}),D.currentOffset+=x,D.currentTimestamp+=E}}break;case"saiz":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;if(e.skip(1),YA(e)&1){let l=Le(e,4),f=J(e);if(l!==i.encryptionInfo.scheme||f!==0)break}let o=ne(e),c=J(e),g=null;o===0&&c>0&&(g=te(e,c));let u=Aw(i);u.defaultSampleInfoSize=o,u.sampleSizes=g,u.sampleCount=c}break;case"saio":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ne(e);if(YA(e)&1){let l=Le(e,4),f=J(e);if(l!==i.encryptionInfo.scheme||f!==0)break}let c=J(e);if(c===0)break;c>1&&console.warn("Multiple saio entries are not supported; using the first offset only.");let g=s===0?J(e):Number(Ut(e));this.currentFragment&&(g+=this.currentFragment.moofOffset);let u=Aw(i);u.offset=g}break;case"senc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;C(this.currentFragment);let s=this.currentFragment.trackData.get(i.id);if(!s)break;e.skip(1);let c=!!(YA(e)&2),g=J(e),u=i.encryptionInfo.defaultPerSampleIvSize;C(u!==null);for(let l=0;l<Math.min(g,s.samples.length);l++){let f=new Uint8Array(16);u>0?f.set(te(e,u),0):f.set(i.encryptionInfo.defaultConstantIv,0);let p=null;if(c){let y=At(e);p=[];for(let w=0;w<y;w++){let D=At(e),b=J(e);p.push({clearLen:D,protectedLen:b})}}let h=s.samples[l];h.encryption={iv:f,subsamples:p}}}break;case"udta":{let i=this.iterateContiguousBoxes(e.slice(n,r.contentSize));for(let{boxInfo:s,slice:o}of i){if(s.name!=="meta"&&!this.currentTrack){let c=o.filePos;this.metadataTags.raw??={},s.name[0]==="\xA9"?this.metadataTags.raw[s.name]??=xA(o):this.metadataTags.raw[s.name]??=te(o,s.contentSize),o.filePos=c}switch(s.name){case"meta":o.skip(-s.headerSize),this.traverseBox(o);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=mt.decode(te(o,s.contentSize)):this.metadataTags.title??=xA(o);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=xA(o));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=xA(o));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=xA(o));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=xA(o));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=xA(o));break;case"\xA9day":if(!this.currentTrack){let c=new Date(xA(o));Number.isNaN(c.getTime())||(this.metadataTags.date??=c)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=xA(o));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=xA(o));break}}}break;case"meta":{if(this.currentTrack)break;let s=J(e)!==0;this.currentMetadataKeys=new Map,s?this.readContiguousBoxes(e.slice(n,r.contentSize)):this.readContiguousBoxes(e.slice(n+4,r.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let i=J(e);for(let s=0;s<i;s++){let o=J(e);e.skip(4);let c=mt.decode(te(e,o-8));this.currentMetadataKeys.set(s+1,c)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let i=this.iterateContiguousBoxes(e.slice(n,r.contentSize));for(let{boxInfo:s,slice:o}of i){let c=s.name,g=(c.charCodeAt(0)<<24)+(c.charCodeAt(1)<<16)+(c.charCodeAt(2)<<8)+c.charCodeAt(3);this.currentMetadataKeys.has(g)&&(c=this.currentMetadataKeys.get(g));let u=$p(o);switch(this.metadataTags.raw??={},this.metadataTags.raw[c]??=u,c){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof u=="string"&&(this.metadataTags.title??=u);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof u=="string"&&(this.metadataTags.description??=u);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof u=="string"&&(this.metadataTags.artist??=u);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof u=="string"&&(this.metadataTags.album??=u);break;case"aART":case"album_artist":typeof u=="string"&&(this.metadataTags.albumArtist??=u);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof u=="string"&&(this.metadataTags.comment??=u);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof u=="string"&&(this.metadataTags.genre??=u);break;case"\xA9lyr":case"lyrics":typeof u=="string"&&(this.metadataTags.lyrics??=u);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof u=="string"){let l=new Date(u);Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"covr":case"com.apple.quicktime.artwork":u instanceof TA?(this.metadataTags.images??=[],this.metadataTags.images.push({data:u.data,kind:"coverFront",mimeType:u.mimeType})):u instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:u,kind:"coverFront",mimeType:"image/*"}));break;case"track":if(typeof u=="string"){let l=u.split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"trkn":if(u instanceof Uint8Array&&u.length>=6){let l=xe(u),f=l.getUint16(2,!1),p=l.getUint16(4,!1);f>0&&(this.metadataTags.trackNumber??=f),p>0&&(this.metadataTags.tracksTotal??=p)}break;case"disc":case"disk":if(u instanceof Uint8Array&&u.length>=6){let l=xe(u),f=l.getUint16(2,!1),p=l.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=a,!0}},_c=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,A=this.internalTrack.trackBacking.getType(),r=0;for(let n of e.tracks)if(n.trackBacking.getType()===A&&r++,n===this.internalTrack)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}isRelativeToUnixEpoch(){return!1}getDisposition(){return this.internalTrack.disposition}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.internalTrack;return e.durationInMediaTimescale<=0?null:(C(e.trackBacking),((await e.trackBacking.getFirstPacket({metadataOnly:!0}))?.timestamp??0)+e.durationInMediaTimescale/e.timescale)}async getLiveRefreshInterval(){return null}async getFirstPacket(e){let A=await this.fetchPacketForSampleIndex(0,e);return A||!this.internalTrack.demuxer.isFragmented?A:this.performFragmentedLookup(null,r=>r.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return Br(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,A){let r=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=Ql(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!tw(n)||!this.internalTrack.demuxer.isFragmented?i:this.performFragmentedLookup(null,s=>{let o=s.trackData.get(this.internalTrack.id);if(!o)return{sampleIndex:-1,correctSampleFound:!1};let c=ye(o.presentationTimestamps,r,l=>l.presentationTimestamp),g=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:g,correctSampleFound:u}},r,r,A)}async getNextPacket(e,A){let r=this.packetToSampleIndex.get(e);if(r!==void 0)return this.fetchPacketForSampleIndex(r+1,A);let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,a=>{if(a===n.fragment){let i=a.trackData.get(this.internalTrack.id);if(n.sampleIndex+1<i.samples.length)return{sampleIndex:n.sampleIndex+1,correctSampleFound:!0}}else if(a.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,A)}async getKeyPacket(e,A){let r=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=lC(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!tw(n)||!this.internalTrack.demuxer.isFragmented?i:this.performFragmentedLookup(null,s=>{let o=s.trackData.get(this.internalTrack.id);if(!o)return{sampleIndex:-1,correctSampleFound:!1};let c=vi(o.presentationTimestamps,l=>o.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=r),g=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:g,correctSampleFound:u}},r,r,A)}async getNextKeyPacket(e,A){let r=this.packetToSampleIndex.get(e);if(r!==void 0){let a=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=fC(a,r);return this.fetchPacketForSampleIndex(i,A)}let n=this.packetToFragmentLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(n.fragment,a=>{if(a===n.fragment){let s=a.trackData.get(this.internalTrack.id).samples.findIndex((o,c)=>o.isKeyFrame&&c>n.sampleIndex);if(s!==-1)return{sampleIndex:s,correctSampleFound:!0}}else{let i=a.trackData.get(this.internalTrack.id);if(i&&i.firstKeyFrameTimestamp!==null){let s=i.samples.findIndex(o=>o.isKeyFrame);return C(s!==-1),{sampleIndex:s,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,A)}async fetchPacketForSampleIndex(e,A){if(e===-1)return null;let r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=dC(r,e);if(!n)return null;let a;if(A.metadataOnly)a=dt;else{let c=this.internalTrack.demuxer.reader.requestSlice(n.sampleOffset,n.sampleSize);if(c instanceof Promise&&(c=await c),!c)return null;if(a=te(c,n.sampleSize),this.internalTrack.encryptionAuxInfo){C(this.internalTrack.encryptionInfo);let g=await nw(this.internalTrack.demuxer.reader,this.internalTrack.encryptionInfo,this.internalTrack.encryptionAuxInfo);e<g.length&&(a=await rw(this.internalTrack,g[e],a,null))}}let i=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=n.duration/this.internalTrack.timescale,o=new Fe(a,n.isKeyFrame?"key":"delta",i,s,e,n.sampleSize);return this.packetToSampleIndex.set(o,e),o}async fetchPacketInFragment(e,A,r){if(A===-1)return null;let a=e.trackData.get(this.internalTrack.id).samples[A];C(a);let i;if(r.metadataOnly)i=dt;else{let g=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);if(g instanceof Promise&&(g=await g),!g)return null;i=te(g,a.byteSize),a.encryption&&(i=await rw(this.internalTrack,a.encryption,i,e))}let s=(a.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=a.duration/this.internalTrack.timescale,c=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.moofOffset+A,a.byteSize);return this.packetToFragmentLocation.set(c,{fragment:e,sampleIndex:A}),c}async performFragmentedLookup(e,A,r,n,a){let i=this.internalTrack.demuxer,s=null,o=null,c=-1;if(e){let{sampleIndex:y,correctSampleFound:w}=A(e);if(w)return this.fetchPacketInFragment(e,y,a);y!==-1&&(o=e,c=y)}let g=ye(this.internalTrack.fragmentLookupTable,r,y=>y.timestamp),u=g!==-1?this.internalTrack.fragmentLookupTable[g]:null,l=ye(this.internalTrack.fragmentPositionCache,r,y=>y.startTimestamp),f=l!==-1?this.internalTrack.fragmentPositionCache[l]:null,p=Math.max(u?.moofOffset??0,f?.moofOffset??0)||null,h;for(e?p===null||e.moofOffset>=p?(h=e.moofOffset+e.moofSize,s=e):h=p:h=p??0;;){if(s){let b=s.trackData.get(this.internalTrack.id);if(b&&b.startTimestamp>n)break}let y=i.reader.requestSliceRange(h,GA,yr);if(y instanceof Promise&&(y=await y),!y)break;let w=h,D=Ir(y);if(!D)break;if(D.name==="moof"){s=await i.readFragment(w);let{sampleIndex:b,correctSampleFound:E}=A(s);if(E)return this.fetchPacketInFragment(s,b,a);b!==-1&&(o=s,c=b)}h=w+D.totalSize}if(u&&(!o||o.moofOffset<u.moofOffset)){let y=this.internalTrack.fragmentLookupTable[g-1];C(!y||y.timestamp<u.timestamp);let w=y?.timestamp??-1/0;return this.performFragmentedLookup(null,A,w,n,a)}return o?this.fetchPacketInFragment(o,c,a):null}},Mc=class extends _c{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"video"}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=A&&Ic(A.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=A&&Dc(A.data)}let e={codec:Ri(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0};return(this.internalTrack.info.width!==this.internalTrack.info.squarePixelWidth||this.internalTrack.info.height!==this.internalTrack.info.squarePixelHeight)&&(e.displayAspectWidth=this.internalTrack.info.squarePixelWidth,e.displayAspectHeight=this.internalTrack.info.squarePixelHeight),e})():null}},Rc=class extends _c{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getType(){return"audio"}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Qi(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Ql=(t,e)=>{if(t.presentationTimestamps){let A=ye(t.presentationTimestamps,e,r=>r.presentationTimestamp);return A===-1?-1:t.presentationTimestamps[A].sampleIndex}else{let A=ye(t.sampleTimingEntries,e,n=>n.startDecodeTimestamp);if(A===-1)return-1;let r=t.sampleTimingEntries[A];return r.startIndex+Math.min(Math.floor((e-r.startDecodeTimestamp)/r.delta),r.count-1)}},lC=(t,e)=>{if(!t.keySampleIndices)return Ql(t,e);if(t.presentationTimestamps){let A=ye(t.presentationTimestamps,e,r=>r.presentationTimestamp);if(A===-1)return-1;for(let r=A;r>=0;r--){let n=t.presentationTimestamps[r].sampleIndex;if(wr(t.keySampleIndices,n,i=>i)!==-1)return n}return-1}else{let A=Ql(t,e),r=ye(t.keySampleIndices,A,n=>n);return t.keySampleIndices[r]??-1}},dC=(t,e)=>{let A=ye(t.sampleTimingEntries,e,w=>w.startIndex),r=t.sampleTimingEntries[A];if(!r||r.startIndex+r.count<=e)return null;let a=r.startDecodeTimestamp+(e-r.startIndex)*r.delta,i=ye(t.sampleCompositionTimeOffsets,e,w=>w.startIndex),s=t.sampleCompositionTimeOffsets[i];s&&e-s.startIndex<s.count&&(a+=s.offset);let o=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],c=ye(t.sampleToChunk,e,w=>w.startSampleIndex),g=t.sampleToChunk[c];C(g);let u=g.startChunkIndex+Math.floor((e-g.startSampleIndex)/g.samplesPerChunk),l=t.chunkOffsets[u],f=g.startSampleIndex+(u-g.startChunkIndex)*g.samplesPerChunk,p=0,h=l;if(t.sampleSizes.length===1)h+=o*(e-f),p+=o*g.samplesPerChunk;else for(let w=f;w<f+g.samplesPerChunk;w++){let D=t.sampleSizes[w];w<e&&(h+=D),p+=D}let y=r.delta;if(t.presentationTimestamps){let w=t.presentationTimestampIndexMap[e];C(w!==void 0),w<t.presentationTimestamps.length-1&&(y=t.presentationTimestamps[w+1].presentationTimestamp-a)}return{presentationTimestamp:a,duration:y,sampleOffset:h,sampleSize:o,chunkOffset:l,chunkSize:p,isKeyFrame:t.keySampleIndices?wr(t.keySampleIndices,e,w=>w)!==-1:!0}},fC=(t,e)=>{if(!t.keySampleIndices)return e+1;let A=ye(t.keySampleIndices,e,r=>r);return t.keySampleIndices[A+1]??-1},Rl=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(let A of t.samples)A.presentationTimestamp+=e;for(let A of t.presentationTimestamps)A.presentationTimestamp+=e},mC=t=>{let[e,A]=t,r=Math.atan2(A,e);return Number.isFinite(r)?r*(180/Math.PI):0},tw=t=>t.sampleSizes.length===0,Aw=t=>t.currentFragmentState?t.currentFragmentState.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null}:t.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null},nw=async(t,e,A)=>{if(A.resolved)return A.resolved;if(A.offset===null||A.sampleCount===0)throw new Error("Incomplete saiz/saio info; cannot resolve encryption data.");let r=0;if(A.defaultSampleInfoSize>0)r=A.defaultSampleInfoSize*A.sampleCount;else{C(A.sampleSizes);for(let s=0;s<A.sampleCount;s++)r+=A.sampleSizes[s]}let n=t.requestSlice(A.offset,r);if(n instanceof Promise&&(n=await n),!n)throw new Error("Failed to read auxiliary encryption info.");let a=e.defaultPerSampleIvSize;C(a!==null);let i=[];for(let s=0;s<A.sampleCount;s++){let o=A.defaultSampleInfoSize>0?A.defaultSampleInfoSize:A.sampleSizes[s],c=new Uint8Array(16);a>0?c.set(te(n,a),0):c.set(e.defaultConstantIv,0);let g=null;if(o>a){let u=At(n);g=[];for(let l=0;l<u;l++){let f=At(n),p=J(n);g.push({clearLen:f,protectedLen:p})}}i.push({iv:c,subsamples:g})}return A.resolved=i,i},rw=async(t,e,A,r)=>{C(t.encryptionInfo);let n=t.encryptionInfo;C(n.defaultKid!==null);let a=n.defaultKid,i,s=t.demuxer.decryptionKeyCache.get(a);if(s)i=await s;else{if(!t.demuxer.input._formatOptions.isobmff?.resolveKeyId)throw new Error("Encrypted media samples encountered. To decrypt them, please provide a callback for InputOptions.formatOptions.isobmff.resolveKeyId.");let o=(async()=>{let c=t.demuxer.psshBoxes;if(r){c=[...c,...r.psshBoxes].filter(u=>u.keyIds===null||u.keyIds.includes(a));for(let u=0;u<c.length-1;u++)for(let l=u+1;l<c.length;l++)Sc(c[u],c[l])&&(c.splice(l,1),l--)}let g=await t.demuxer.input._formatOptions.isobmff.resolveKeyId({keyId:a,psshBoxes:c});if(!(typeof g=="string"&&g.length===32&&gp.test(g)||g instanceof Uint8Array&&g.byteLength===16))throw new TypeError("resolveKeyId must return a 32-character hex string or a 16-byte Uint8Array containing the decryption key.");return g instanceof Uint8Array?g:lp(g)})();t.demuxer.decryptionKeyCache.set(a,o),i=await o}return n.scheme==="cenc"||n.scheme==="cens"?hC(i,n,e,A):pC(i,n,e,A)},hC=async(t,e,A,r)=>{let n=new Uint8Array(16);n.set(A.iv,0);let a=await crypto.subtle.importKey("raw",t,{name:"AES-CTR"},!1,["decrypt"]),i=async p=>{let h=await crypto.subtle.decrypt({name:"AES-CTR",counter:n,length:64},a,p);return new Uint8Array(h)};if(!A.subsamples)return i(r);C(e.defaultCryptByteBlock!==null&&e.defaultSkipByteBlock!==null);let s=iw(A.subsamples,e.defaultCryptByteBlock,e.defaultSkipByteBlock),o=0;for(let p of s)for(let h of p.perSubsample)o+=h.length;let c=new Uint8Array(o),g=0;for(let p of s)for(let h of p.perSubsample)c.set(r.subarray(h.offset,h.offset+h.length),g),g+=h.length;let u=await i(c),l=new Uint8Array(r),f=0;for(let p of s)for(let h of p.perSubsample)l.set(u.subarray(f,f+h.length),h.offset),f+=h.length;return l},pC=(t,e,A,r)=>{let n=new Rs;n.init({key:t,iv:A.iv});let a=e.defaultCryptByteBlock,i=e.defaultSkipByteBlock;if(C(a!==null&&i!==null),!A.subsamples){let g=new Uint8Array(r),u=Math.floor(r.length/16);for(let l=0;l<u;l++){let f=l*16;n.in.set(r.subarray(f,f+16)),n.decrypt(),g.set(n.out,f)}return g}if(a===0&&i===0)throw new Error("cbcs with subsamples requires pattern encryption.");let s=new Uint8Array(r),o=iw(A.subsamples,a,i),c=new DataView(A.iv.buffer,A.iv.byteOffset,16);for(let g of o){n.iv[0]=c.getUint32(0,!1),n.iv[1]=c.getUint32(4,!1),n.iv[2]=c.getUint32(8,!1),n.iv[3]=c.getUint32(12,!1);for(let u of g.perSubsample){let l=u.length/16;for(let f=0;f<l;f++){let p=u.offset+f*16;n.in.set(r.subarray(p,p+16)),n.decrypt(),s.set(n.out,p)}}}return s},iw=(t,e,A)=>{let r=[],n=e!==0||A!==0,a=0;for(let i of t){a+=i.clearLen;let s=[];if(!n)i.protectedLen>0&&s.push({offset:a,length:i.protectedLen}),a+=i.protectedLen;else{let o=i.protectedLen,c=a;for(;o>0&&!(o<16*e);){let g=16*e;s.push({offset:c,length:g}),c+=g,o-=g;let u=Math.min(16*A,o);c+=u,o-=u}a+=i.protectedLen}r.push({perSubsample:s})}return r};var j;(function(t){t[t.EBML=440786851]="EBML",t[t.EBMLVersion=17030]="EBMLVersion",t[t.EBMLReadVersion=17143]="EBMLReadVersion",t[t.EBMLMaxIDLength=17138]="EBMLMaxIDLength",t[t.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",t[t.DocType=17026]="DocType",t[t.DocTypeVersion=17031]="DocTypeVersion",t[t.DocTypeReadVersion=17029]="DocTypeReadVersion",t[t.Void=236]="Void",t[t.Segment=408125543]="Segment",t[t.SeekHead=290298740]="SeekHead",t[t.Seek=19899]="Seek",t[t.SeekID=21419]="SeekID",t[t.SeekPosition=21420]="SeekPosition",t[t.Duration=17545]="Duration",t[t.Info=357149030]="Info",t[t.TimestampScale=2807729]="TimestampScale",t[t.MuxingApp=19840]="MuxingApp",t[t.WritingApp=22337]="WritingApp",t[t.Tracks=374648427]="Tracks",t[t.TrackEntry=174]="TrackEntry",t[t.TrackNumber=215]="TrackNumber",t[t.TrackUID=29637]="TrackUID",t[t.TrackType=131]="TrackType",t[t.FlagEnabled=185]="FlagEnabled",t[t.FlagDefault=136]="FlagDefault",t[t.FlagForced=21930]="FlagForced",t[t.FlagOriginal=21934]="FlagOriginal",t[t.FlagHearingImpaired=21931]="FlagHearingImpaired",t[t.FlagVisualImpaired=21932]="FlagVisualImpaired",t[t.FlagCommentary=21935]="FlagCommentary",t[t.FlagLacing=156]="FlagLacing",t[t.Name=21358]="Name",t[t.Language=2274716]="Language",t[t.LanguageBCP47=2274717]="LanguageBCP47",t[t.CodecID=134]="CodecID",t[t.CodecPrivate=25506]="CodecPrivate",t[t.CodecDelay=22186]="CodecDelay",t[t.SeekPreRoll=22203]="SeekPreRoll",t[t.DefaultDuration=2352003]="DefaultDuration",t[t.Video=224]="Video",t[t.PixelWidth=176]="PixelWidth",t[t.PixelHeight=186]="PixelHeight",t[t.DisplayWidth=21680]="DisplayWidth",t[t.DisplayHeight=21690]="DisplayHeight",t[t.DisplayUnit=21682]="DisplayUnit",t[t.AlphaMode=21440]="AlphaMode",t[t.Audio=225]="Audio",t[t.SamplingFrequency=181]="SamplingFrequency",t[t.Channels=159]="Channels",t[t.BitDepth=25188]="BitDepth",t[t.SimpleBlock=163]="SimpleBlock",t[t.BlockGroup=160]="BlockGroup",t[t.Block=161]="Block",t[t.BlockAdditions=30113]="BlockAdditions",t[t.BlockMore=166]="BlockMore",t[t.BlockAdditional=165]="BlockAdditional",t[t.BlockAddID=238]="BlockAddID",t[t.BlockDuration=155]="BlockDuration",t[t.ReferenceBlock=251]="ReferenceBlock",t[t.Cluster=524531317]="Cluster",t[t.Timestamp=231]="Timestamp",t[t.Cues=475249515]="Cues",t[t.CuePoint=187]="CuePoint",t[t.CueTime=179]="CueTime",t[t.CueTrackPositions=183]="CueTrackPositions",t[t.CueTrack=247]="CueTrack",t[t.CueClusterPosition=241]="CueClusterPosition",t[t.Colour=21936]="Colour",t[t.MatrixCoefficients=21937]="MatrixCoefficients",t[t.TransferCharacteristics=21946]="TransferCharacteristics",t[t.Primaries=21947]="Primaries",t[t.Range=21945]="Range",t[t.Projection=30320]="Projection",t[t.ProjectionType=30321]="ProjectionType",t[t.ProjectionPoseRoll=30325]="ProjectionPoseRoll",t[t.Attachments=423732329]="Attachments",t[t.AttachedFile=24999]="AttachedFile",t[t.FileDescription=18046]="FileDescription",t[t.FileName=18030]="FileName",t[t.FileMediaType=18016]="FileMediaType",t[t.FileData=18012]="FileData",t[t.FileUID=18094]="FileUID",t[t.Chapters=272869232]="Chapters",t[t.Tags=307544935]="Tags",t[t.Tag=29555]="Tag",t[t.Targets=25536]="Targets",t[t.TargetTypeValue=26826]="TargetTypeValue",t[t.TargetType=25546]="TargetType",t[t.TagTrackUID=25541]="TagTrackUID",t[t.TagEditionUID=25545]="TagEditionUID",t[t.TagChapterUID=25540]="TagChapterUID",t[t.TagAttachmentUID=25542]="TagAttachmentUID",t[t.SimpleTag=26568]="SimpleTag",t[t.TagName=17827]="TagName",t[t.TagLanguage=17530]="TagLanguage",t[t.TagString=17543]="TagString",t[t.TagBinary=17541]="TagBinary",t[t.ContentEncodings=28032]="ContentEncodings",t[t.ContentEncoding=25152]="ContentEncoding",t[t.ContentEncodingOrder=20529]="ContentEncodingOrder",t[t.ContentEncodingScope=20530]="ContentEncodingScope",t[t.ContentCompression=20532]="ContentCompression",t[t.ContentCompAlgo=16980]="ContentCompAlgo",t[t.ContentCompSettings=16981]="ContentCompSettings",t[t.ContentEncryption=20533]="ContentEncryption"})(j||(j={}));var wC=[j.EBML,j.Segment],Vi=[j.SeekHead,j.Info,j.Cluster,j.Tracks,j.Cues,j.Attachments,j.Chapters,j.Tags],Fs=[...wC,...Vi];var Fl=8,qt=2,vA=2*Fl,zl=t=>{if(t.remainingLength<1)return null;let e=ne(t);if(t.skip(-1),e===0)return null;let A=1,r=128;for(;!(e&r);)A++,r>>=1;return t.remainingLength<A?null:A},Ki=t=>{if(t.remainingLength<1)return null;let e=ne(t);if(e===0)return null;let A=1,r=128;for(;!(e&r);)A++,r>>=1;if(t.remainingLength<A-1)return null;let n=e&r-1;for(let a=1;a<A;a++)n*=256,n+=ne(t);return n},be=(t,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let A=0;for(let r=0;r<e;r++)A*=256,A+=ne(t);return A},sw=(t,e)=>{if(e<1)throw new Error("Bad unsigned int size "+e);let A=0n;for(let r=0;r<e;r++)A<<=8n,A+=BigInt(ne(t));return A};var Fc=t=>{let e=zl(t);return e===null||t.remainingLength<e?null:be(t,e)},Nl=t=>{if(t.remainingLength<1)return null;if(ne(t)===255)return;t.skip(-1);let A=Ki(t);if(A===null)return null;if(A!==72057594037927940)return A},OA=t=>{C(t.remainingLength>=qt);let e=Fc(t);if(e===null)return null;let A=Nl(t);return A===null?null:{id:e,size:A}},Xr=(t,e)=>{let A=te(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return String.fromCharCode(...A.subarray(0,r))},Wi=(t,e)=>{let A=te(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return mt.decode(A.subarray(0,r))},zc=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?ow(t):Qc(t)},Nc=async(t,e,A,r)=>{let n=new Set(A),a=e;for(;r===null||a<r;){let i=t.requestSliceRange(a,qt,vA);if(i instanceof Promise&&(i=await i),!i)break;let s=OA(i);if(!s)break;if(n.has(s.id))return{pos:a,found:!0};br(s.size),a=i.filePos+s.size}return{pos:r!==null&&r>a?r:a,found:!1}},Hl=async(t,e,A,r)=>{let a=new Set(A),i=e;for(;i<r;){let s=t.requestSliceRange(i,0,Math.min(65536,r-i));if(s instanceof Promise&&(s=await s),!s||s.length<Fl)break;for(let o=0;o<s.length-Fl;o++){s.filePos=i;let c=Fc(s);if(c!==null&&a.has(c))return i;i++}}return null},Xt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC",ac3:"A_AC3",eac3:"A_EAC3","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function br(t){if(t===void 0)throw new Error("Undefined element size is used in a place where it is not supported.")}var cw=t=>{let A=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isWebM?"webm":"x-matroska");if(t.codecStrings.length>0){let r=[...new Set(t.codecStrings.filter(Boolean))];A+=`; codecs="${r.join(", ")}"`}return A};var Er;(function(t){t[t.None=0]="None",t[t.Xiph=1]="Xiph",t[t.FixedSize=2]="FixedSize",t[t.Ebml=3]="Ebml"})(Er||(Er={}));var Hc;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(Hc||(Hc={}));var zs;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(zs||(zs={}));var Ul=[{id:j.SeekHead,flag:"seekHeadSeen"},{id:j.Info,flag:"infoSeen"},{id:j.Tracks,flag:"tracksSeen"},{id:j.Cues,flag:"cuesSeen"}],uw=10*2**20,Uc=class extends ht{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentBlockAdditional=null,this.currentCueTime=null,this.currentDecodingInstruction=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async getTrackBackings(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(A=>A.trackBacking))}async getMimeType(){await this.readMetadata();let e=await this.getTrackBackings(),A=await Promise.all(e.map(r=>r.getDecoderConfig().then(n=>n?.codec??null)));return cw({isWebM:this.isWebM,hasVideo:this.segments.some(r=>r.tracks.some(n=>n.info?.type==="video")),hasAudio:this.segments.some(r=>r.tracks.some(n=>n.info?.type==="audio")),codecStrings:A.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let A of this.segments)A.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(A),A.metadataTagsCollected=!0);let e={};for(let A of this.segments)e={...e,...A.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let A=this.reader.requestSliceRange(e,qt,vA);if(A instanceof Promise&&(A=await A),!A)break;let r=OA(A);if(!r)break;let n=r.id,a=r.size,i=A.filePos;if(n===j.EBML){br(a);let s=this.reader.requestSlice(i,a);if(s instanceof Promise&&(s=await s),!s)break;this.readContiguousElements(s)}else if(n===j.Segment){if(await this.readSegment(i,a),a===void 0||this.reader.fileSize===null)break}else if(n===j.Cluster){if(this.reader.fileSize===null)break;a===void 0&&(a=(await Nc(this.reader,i,Fs,this.reader.fileSize)).pos-i);let s=_e(this.segments);s&&(s.elementEndPos=i+a)}br(a),e=i+a}})()}async readSegment(e,A){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:A===void 0?null:e+A,clusterSeekStartPos:e,lastReadCluster:null,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let r=e;for(;this.currentSegment.elementEndPos===null||r<this.currentSegment.elementEndPos;){let s=this.reader.requestSliceRange(r,qt,vA);if(s instanceof Promise&&(s=await s),!s)break;let o=r,c=OA(s);if(!c||!Vi.includes(c.id)&&c.id!==j.Void){let p=await Hl(this.reader,o,Vi,Math.min(this.currentSegment.elementEndPos??1/0,o+uw));if(p){r=p;continue}else break}let{id:g,size:u}=c,l=s.filePos,f=Ul.findIndex(p=>p.id===g);if(f!==-1){let p=Ul[f].flag;this.currentSegment[p]=!0,br(u);let h=this.reader.requestSlice(l,u);h instanceof Promise&&(h=await h),h&&this.readContiguousElements(h)}else if(g===j.Tags||g===j.Attachments){g===j.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,br(u);let p=this.reader.requestSlice(l,u);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(g===j.Cluster){this.currentSegment.clusterSeekStartPos=o;break}if(u===void 0)break;r=l+u}if(this.currentSegment.seekEntries.sort((s,o)=>s.segmentPosition-o.segmentPosition),this.reader.fileSize!==null)for(let s of this.currentSegment.seekEntries){let o=Ul.find(p=>p.id===s.id);if(!o||this.currentSegment[o.flag])continue;let c=this.reader.requestSliceRange(e+s.segmentPosition,qt,vA);if(c instanceof Promise&&(c=await c),!c)continue;let g=OA(c);if(!g)continue;let{id:u,size:l}=g;if(u!==o.id)continue;br(l),this.currentSegment[o.flag]=!0;let f=this.reader.requestSlice(c.filePos,l);f instanceof Promise&&(f=await f),f&&this.readContiguousElements(f)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6);for(let s of this.currentSegment.tracks)s.defaultDurationNs!==null&&(s.defaultDuration=this.currentSegment.timestampFactor*s.defaultDurationNs/1e9);let n=new Map(this.currentSegment.tracks.map(s=>[s.id,s]));for(let s of this.currentSegment.cuePoints){let o=n.get(s.trackId);o&&o.cuePoints.push(s)}for(let s of this.currentSegment.tracks){s.cuePoints.sort((o,c)=>o.time-c.time);for(let o=0;o<s.cuePoints.length-1;o++){let c=s.cuePoints[o],g=s.cuePoints[o+1];c.time===g.time&&(s.cuePoints.splice(o+1,1),o--)}}let a=null,i=-1/0;for(let s of this.currentSegment.tracks)s.cuePoints.length>i&&(i=s.cuePoints.length,a=s);for(let s of this.currentSegment.tracks)s.cuePoints.length===0&&(s.cuePoints=a.cuePoints);this.currentSegment=null}async readCluster(e,A){if(A.lastReadCluster?.elementStartPos===e)return A.lastReadCluster;let r=this.reader.requestSliceRange(e,qt,vA);r instanceof Promise&&(r=await r),C(r);let n=e,a=OA(r);C(a);let i=a.id;C(i===j.Cluster);let s=a.size,o=r.filePos;s===void 0&&(s=(await Nc(this.reader,o,Fs,A.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,s);c instanceof Promise&&(c=await c);let g={segment:A,elementStartPos:n,elementEndPos:o+s,dataStartPos:o,timestamp:-1,trackData:new Map};if(this.currentCluster=g,c){let u=this.readContiguousElements(c,Fs);g.elementEndPos=u}for(let[,u]of g.trackData){let l=u.track;C(u.blocks.length>0);let f=!1;for(let w=0;w<u.blocks.length;w++){let D=u.blocks[w];D.timestamp+=g.timestamp,f||=D.lacing!==Er.None}u.presentationTimestamps=u.blocks.map((w,D)=>({timestamp:w.timestamp,blockIndex:D})).sort((w,D)=>w.timestamp-D.timestamp);for(let w=0;w<u.presentationTimestamps.length;w++){let D=u.presentationTimestamps[w],b=u.blocks[D.blockIndex];if(u.firstKeyFrameTimestamp===null&&b.isKeyFrame&&(u.firstKeyFrameTimestamp=b.timestamp),w<u.presentationTimestamps.length-1){let E=u.presentationTimestamps[w+1];b.duration=E.timestamp-b.timestamp}else b.duration===0&&l.defaultDuration!=null&&b.lacing===Er.None&&(b.duration=l.defaultDuration)}f&&(this.expandLacedBlocks(u.blocks,l),u.presentationTimestamps=u.blocks.map((w,D)=>({timestamp:w.timestamp,blockIndex:D})).sort((w,D)=>w.timestamp-D.timestamp));let p=u.blocks[u.presentationTimestamps[0].blockIndex],h=u.blocks[_e(u.presentationTimestamps).blockIndex];u.startTimestamp=p.timestamp,u.endTimestamp=h.timestamp+h.duration;let y=ye(l.clusterPositionCache,u.startTimestamp,w=>w.startTimestamp);(y===-1||l.clusterPositionCache[y].elementStartPos!==n)&&l.clusterPositionCache.splice(y+1,0,{elementStartPos:g.elementStartPos,startTimestamp:u.startTimestamp})}return A.lastReadCluster=g,g}getTrackDataInCluster(e,A){let r=e.trackData.get(A);if(!r){let n=e.segment.tracks.find(a=>a.id===A);if(!n)return null;r={track:n,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(A,r)}return r}expandLacedBlocks(e,A){for(let r=0;r<e.length;r++){let n=e[r];if(n.lacing===Er.None)continue;n.decoded||(n.data=this.decodeBlockData(A,n.data),n.decoded=!0);let a=Mt.tempFromBytes(n.data),i=[],s=ne(a)+1;switch(n.lacing){case Er.Xiph:{let c=0;for(let g=0;g<s-1;g++){let u=0;for(;a.bufferPos<a.length;){let l=ne(a);if(u+=l,l<255){i.push(u),c+=u;break}}}i.push(a.length-(a.bufferPos+c))}break;case Er.FixedSize:{let c=a.length-1,g=Math.floor(c/s);for(let u=0;u<s;u++)i.push(g)}break;case Er.Ebml:{let c=Ki(a);C(c!==null);let g=c;i.push(g);let u=g;for(let l=1;l<s-1;l++){let f=a.bufferPos,p=Ki(a);C(p!==null);let h=p,w=(1<<(a.bufferPos-f)*7-1)-1,D=h-w;g+=D,i.push(g),u+=g}i.push(a.length-(a.bufferPos+u))}break;default:C(!1)}C(i.length===s),e.splice(r,1);let o=n.duration||s*(A.defaultDuration??0);for(let c=0;c<s;c++){let g=i[c],u=te(a,g),l=n.timestamp+o*c/s,f=o/s;e.splice(r+c,0,{timestamp:l,duration:f,isKeyFrame:n.isKeyFrame,data:u,lacing:Er.None,decoded:!0,mainAdditional:n.mainAdditional})}r+=s,r--}}async loadSegmentMetadata(e){for(let A of e.seekEntries){if(!(A.id===j.Tags&&!e.tagsSeen)){if(!(A.id===j.Attachments&&!e.attachmentsSeen))continue}let r=this.reader.requestSliceRange(e.dataStartPos+A.segmentPosition,qt,vA);if(r instanceof Promise&&(r=await r),!r)continue;let n=OA(r);if(!n||n.id!==A.id)continue;let{size:a}=n;br(a),C(!this.currentSegment),this.currentSegment=e;let i=this.reader.requestSlice(r.filePos,a);i instanceof Promise&&(i=await i),i&&this.readContiguousElements(i),this.currentSegment=null,A.id===j.Tags?e.tagsSeen=!0:A.id===j.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,A){for(;e.remainingLength>=qt;){let r=e.filePos;if(!this.traverseElement(e,A))return r}return e.filePos}traverseElement(e,A){let r=OA(e);if(!r||A&&A.includes(r.id))return!1;let{id:n,size:a}=r,i=e.filePos;switch(br(a),n){case j.DocType:this.isWebM=Xr(e,a)==="webm";break;case j.Seek:{if(!this.currentSegment)break;let s={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(s),this.readContiguousElements(e.slice(i,a)),(s.id===-1||s.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case j.SeekID:{let s=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!s)break;s.id=be(e,a)}break;case j.SeekPosition:{let s=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!s)break;s.segmentPosition=be(e,a)}break;case j.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=be(e,a),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case j.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=zc(e,a)}break;case j.TrackEntry:{if(!this.currentSegment||(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...Ct,primary:!1},trackBacking:null,codecId:null,codecPrivate:null,defaultDuration:null,defaultDurationNs:null,name:null,languageCode:"eng",hasLanguageBcp47:!1,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(i,a)),!this.currentTrack))break;if(this.currentTrack.decodingInstructions.some(s=>s.data?.type!=="decompress"||s.scope!==Hc.Block||s.data.algorithm!==zs.HeaderStripping)&&(console.warn(`Track #${this.currentTrack.id} has an unsupported content encoding; dropping.`),this.currentTrack=null),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let s=this.currentTrack.codecId.indexOf("/"),o=s===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,s);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){if(this.currentTrack.info.squarePixelWidth=this.currentTrack.info.width,this.currentTrack.info.squarePixelHeight=this.currentTrack.info.height,this.currentTrack.info.displayWidth!==null&&this.currentTrack.info.displayHeight!==null){let g=this.currentTrack.info.displayWidth*this.currentTrack.info.height,u=this.currentTrack.info.displayHeight*this.currentTrack.info.width;g>0&&u>0&&(g>u?this.currentTrack.info.squarePixelWidth=Math.round(this.currentTrack.info.width*g/u):this.currentTrack.info.squarePixelHeight=Math.round(this.currentTrack.info.height*u/g))}this.currentTrack.codecId===Xt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Xt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.vp8?this.currentTrack.info.codec="vp8":o===Xt.vp9?this.currentTrack.info.codec="vp9":o===Xt.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack;this.currentTrack.trackBacking=new ql(c),this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"){o===Xt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2"),objectType:null},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Xt.mp3?this.currentTrack.info.codec="mp3":o===Xt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=Yn):o===Xt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.ac3?(this.currentTrack.info.codec="ac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Xt.eac3?(this.currentTrack.info.codec="eac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let c=this.currentTrack;this.currentTrack.trackBacking=new Ll(c),this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case j.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=be(e,a)}break;case j.TrackType:{if(!this.currentTrack)break;let s=be(e,a);s===1?this.currentTrack.info={type:"video",width:-1,height:-1,displayWidth:null,displayHeight:null,displayUnit:null,squarePixelWidth:-1,squarePixelHeight:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:s===2&&(this.currentTrack.info={type:"audio",numberOfChannels:1,sampleRate:8e3,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case j.FlagEnabled:{if(!this.currentTrack)break;be(e,a)||(this.currentTrack=null)}break;case j.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.disposition.default=!!be(e,a)}break;case j.FlagForced:{if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!be(e,a)}break;case j.FlagOriginal:{if(!this.currentTrack)break;this.currentTrack.disposition.original=!!be(e,a)}break;case j.FlagHearingImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!be(e,a)}break;case j.FlagVisualImpaired:{if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!be(e,a)}break;case j.FlagCommentary:{if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!be(e,a)}break;case j.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=Xr(e,a)}break;case j.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=te(e,a)}break;case j.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDurationNs=be(e,a)}break;case j.Name:{if(!this.currentTrack)break;this.currentTrack.name=Wi(e,a)}break;case j.Language:{if(!this.currentTrack||this.currentTrack.hasLanguageBcp47)break;this.currentTrack.languageCode=Xr(e,a),Oi(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Xe)}break;case j.LanguageBCP47:{if(!this.currentTrack)break;let o=Xr(e,a).split("-")[0];o?this.currentTrack.languageCode=o:this.currentTrack.languageCode=Xe,this.currentTrack.hasLanguageBcp47=!0}break;case j.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(i,a))}break;case j.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=be(e,a)}break;case j.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=be(e,a)}break;case j.DisplayWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayWidth=be(e,a)}break;case j.DisplayHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayHeight=be(e,a)}break;case j.DisplayUnit:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayUnit=be(e,a)}break;case j.AlphaMode:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=be(e,a)===1}break;case j.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(i,a))}break;case j.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=En[s]??null;this.currentTrack.info.colorSpace.matrix=o}break;case j.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=be(e,a)===2}break;case j.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=bn[s]??null;this.currentTrack.info.colorSpace.transfer=o}break;case j.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let s=be(e,a),o=Cn[s]??null;this.currentTrack.info.colorSpace.primaries=o}break;case j.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(i,a))}break;case j.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-zc(e,a);try{this.currentTrack.info.rotation=Yi(o)}catch{}}break;case j.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(i,a))}break;case j.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=zc(e,a)}break;case j.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=be(e,a)}break;case j.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=be(e,a)}break;case j.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(i,a)),this.currentCueTime=null}break;case j.CueTime:this.currentCueTime=be(e,a);break;case j.CueTrackPositions:{if(this.currentCueTime===null)break;C(this.currentSegment);let s={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(s),this.readContiguousElements(e.slice(i,a)),(s.trackId===-1||s.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case j.CueTrack:{let s=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!s)break;s.trackId=be(e,a)}break;case j.CueClusterPosition:{let s=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!s)break;C(this.currentSegment),s.clusterPosition=this.currentSegment.dataStartPos+be(e,a)}break;case j.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=be(e,a)}break;case j.SimpleBlock:{if(!this.currentCluster)break;let s=Ki(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Qs(e),g=ne(e),u=g>>1&3,l=!!(g&128);o.track.info?.type==="audio"&&o.track.info.codec&&(l=!0);let f=te(e,a-(e.filePos-i)),p=o.track.decodingInstructions.length>0;o.blocks.push({timestamp:c,duration:0,isKeyFrame:l,data:f,lacing:u,decoded:!p,mainAdditional:null})}break;case j.BlockGroup:{if(!this.currentCluster)break;this.readContiguousElements(e.slice(i,a)),this.currentBlock=null}break;case j.Block:{if(!this.currentCluster)break;let s=Ki(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Qs(e),u=ne(e)>>1&3,l=te(e,a-(e.filePos-i)),f=o.track.decodingInstructions.length>0;this.currentBlock={timestamp:c,duration:0,isKeyFrame:!0,data:l,lacing:u,decoded:!f,mainAdditional:null},o.blocks.push(this.currentBlock)}break;case j.BlockAdditions:this.readContiguousElements(e.slice(i,a));break;case j.BlockMore:{if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(i,a)),this.currentBlockAdditional.data&&this.currentBlockAdditional.addId===1&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null}break;case j.BlockAdditional:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=te(e,a)}break;case j.BlockAddID:{if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=be(e,a)}break;case j.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=be(e,a)}break;case j.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1}break;case j.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(i,a));break;case j.Targets:this.readContiguousElements(e.slice(i,a));break;case j.TargetTypeValue:be(e,a)!==50&&(this.currentTagTargetIsMovie=!1);break;case j.TagTrackUID:case j.TagEditionUID:case j.TagChapterUID:case j.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case j.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(i,a))}break;case j.TagName:this.currentSimpleTagName=Wi(e,a);break;case j.TagString:{if(!this.currentSimpleTagName)break;let s=Wi(e,a);this.processTagValue(this.currentSimpleTagName,s)}break;case j.TagBinary:{if(!this.currentSimpleTagName)break;let s=te(e,a);this.processTagValue(this.currentSimpleTagName,s)}break;case j.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(i,a));let s=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(s.raw??={},s.raw[this.currentAttachedFile.fileUid.toString()]=new Gs(this.currentAttachedFile.fileData,this.currentAttachedFile.fileMediaType??void 0,this.currentAttachedFile.fileName??void 0,this.currentAttachedFile.fileDescription??void 0)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let o=this.currentAttachedFile.fileName,c="unknown";if(o){let g=o.toLowerCase();g.startsWith("cover.")?c="coverFront":g.startsWith("back.")&&(c="coverBack")}s.images??=[],s.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:c,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case j.FileUID:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=sw(e,a)}break;case j.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=Wi(e,a)}break;case j.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=Xr(e,a)}break;case j.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=te(e,a)}break;case j.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=Wi(e,a)}break;case j.ContentEncodings:{if(!this.currentTrack)break;this.readContiguousElements(e.slice(i,a)),this.currentTrack.decodingInstructions.sort((s,o)=>o.order-s.order)}break;case j.ContentEncoding:this.currentDecodingInstruction={order:0,scope:Hc.Block,data:null},this.readContiguousElements(e.slice(i,a)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case j.ContentEncodingOrder:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=be(e,a)}break;case j.ContentEncodingScope:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=be(e,a)}break;case j.ContentCompression:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:zs.Zlib,settings:null},this.readContiguousElements(e.slice(i,a))}break;case j.ContentCompAlgo:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=be(e,a)}break;case j.ContentCompSettings:{if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=te(e,a)}break;case j.ContentEncryption:{if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}break}return e.filePos=i+a,!0}decodeBlockData(e,A){C(e.decodingInstructions.length>0);let r=A;for(let n of e.decodingInstructions)switch(C(n.data),n.data.type){case"decompress":switch(n.data.algorithm){case zs.HeaderStripping:if(n.data.settings&&n.data.settings.length>0){let a=n.data.settings,i=new Uint8Array(a.length+r.length);i.set(a,0),i.set(r,a.length),r=i}break;default:}break;default:}return r}processTagValue(e,A){if(!this.currentSegment?.metadataTags)return;let r=this.currentSegment.metadataTags;if(r.raw??={},r.raw[e]??=A,typeof A=="string")switch(e.toLowerCase()){case"title":r.title??=A;break;case"description":r.description??=A;break;case"artist":r.artist??=A;break;case"album":r.album??=A;break;case"album_artist":r.albumArtist??=A;break;case"genre":r.genre??=A;break;case"comment":r.comment??=A;break;case"lyrics":r.lyrics??=A;break;case"date":{let n=new Date(A);Number.isNaN(n.getTime())||(r.date??=n)}break;case"track_number":case"part_number":{let n=A.split("/"),a=Number.parseInt(n[0],10),i=n[1]&&Number.parseInt(n[1],10);Number.isInteger(a)&&a>0&&(r.trackNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.tracksTotal??=i)}break;case"disc_number":case"disc":{let n=A.split("/"),a=Number.parseInt(n[0],10),i=n[1]&&Number.parseInt(n[1],10);Number.isInteger(a)&&a>0&&(r.discNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.discsTotal??=i)}break}}},qc=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,A=this.internalTrack.trackBacking.getType(),r=0;for(let n of e.segments)for(let a of n.tracks)if(a.trackBacking.getType()===A&&r++,a===this.internalTrack)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.segment.timestampFactor}isRelativeToUnixEpoch(){return!1}getDisposition(){return this.internalTrack.disposition}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.internalTrack.segment;if(e.duration<=0)return null;let A=e.duration/e.timestampFactor,r=await this.getFirstPacket({metadataOnly:!0});return A+=r?.timestamp??0,A}async getLiveRefreshInterval(){return null}async getFirstPacket(e){return this.performClusterLookup(null,A=>A.trackData.get(this.internalTrack.id)?{blockIndex:0,correctBlockFound:!0}:{blockIndex:-1,correctBlockFound:!1},-1/0,1/0,e)}intoTimescale(e){return Br(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,A){let r=this.intoTimescale(e);return this.performClusterLookup(null,n=>{let a=n.trackData.get(this.internalTrack.id);if(!a)return{blockIndex:-1,correctBlockFound:!1};let i=ye(a.presentationTimestamps,r,c=>c.timestamp),s=i!==-1?a.presentationTimestamps[i].blockIndex:-1,o=i!==-1&&r<a.endTimestamp;return{blockIndex:s,correctBlockFound:o}},r,r,A)}async getNextPacket(e,A){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(r.cluster,n=>{if(n===r.cluster){let a=n.trackData.get(this.internalTrack.id);if(r.blockIndex+1<a.blocks.length)return{blockIndex:r.blockIndex+1,correctBlockFound:!0}}else if(n.trackData.get(this.internalTrack.id))return{blockIndex:0,correctBlockFound:!0};return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,A)}async getKeyPacket(e,A){let r=this.intoTimescale(e);return this.performClusterLookup(null,n=>{let a=n.trackData.get(this.internalTrack.id);if(!a)return{blockIndex:-1,correctBlockFound:!1};let i=vi(a.presentationTimestamps,c=>a.blocks[c.blockIndex].isKeyFrame&&c.timestamp<=r),s=i!==-1?a.presentationTimestamps[i].blockIndex:-1,o=i!==-1&&r<a.endTimestamp;return{blockIndex:s,correctBlockFound:o}},r,r,A)}async getNextKeyPacket(e,A){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");return this.performClusterLookup(r.cluster,n=>{if(n===r.cluster){let i=n.trackData.get(this.internalTrack.id).blocks.findIndex((s,o)=>s.isKeyFrame&&o>r.blockIndex);if(i!==-1)return{blockIndex:i,correctBlockFound:!0}}else{let a=n.trackData.get(this.internalTrack.id);if(a&&a.firstKeyFrameTimestamp!==null){let i=a.blocks.findIndex(s=>s.isKeyFrame);return C(i!==-1),{blockIndex:i,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,A)}async fetchPacketInCluster(e,A,r){if(A===-1)return null;let a=e.trackData.get(this.internalTrack.id).blocks[A];C(a),a.decoded||(a.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,a.data),a.decoded=!0);let i=r.metadataOnly?dt:a.data,s=a.timestamp/this.internalTrack.segment.timestampFactor,o=a.duration/this.internalTrack.segment.timestampFactor,c={};a.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(c.alpha=r.metadataOnly?dt:a.mainAdditional,c.alphaByteLength=a.mainAdditional.byteLength);let g=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.dataStartPos+A,a.data.byteLength,c);return this.packetToClusterLocation.set(g,{cluster:e,blockIndex:A}),g}async performClusterLookup(e,A,r,n,a){let{demuxer:i,segment:s}=this.internalTrack,o=null,c=null,g=-1;if(e){let{blockIndex:w,correctBlockFound:D}=A(e);if(D)return this.fetchPacketInCluster(e,w,a);w!==-1&&(c=e,g=w)}let u=ye(this.internalTrack.cuePoints,r,w=>w.time),l=u!==-1?this.internalTrack.cuePoints[u]:null,f=ye(this.internalTrack.clusterPositionCache,r,w=>w.startTimestamp),p=f!==-1?this.internalTrack.clusterPositionCache[f]:null,h=Math.max(l?.clusterPosition??0,p?.elementStartPos??0)||null,y;for(e?h===null||e.elementStartPos>=h?(y=e.elementEndPos,o=e):y=h:y=h??s.clusterSeekStartPos;s.elementEndPos===null||y<=s.elementEndPos-qt;){if(o){let R=o.trackData.get(this.internalTrack.id);if(R&&R.startTimestamp>n)break}let w=i.reader.requestSliceRange(y,qt,vA);if(w instanceof Promise&&(w=await w),!w)break;let D=y,b=OA(w);if(!b||!Vi.includes(b.id)&&b.id!==j.Void){let R=await Hl(i.reader,D,Vi,Math.min(s.elementEndPos??1/0,D+uw));if(R){y=R;continue}else break}let E=b.id,x=b.size,S=w.filePos;if(E===j.Cluster){o=await i.readCluster(D,s),x=o.elementEndPos-S;let{blockIndex:R,correctBlockFound:M}=A(o);if(M)return this.fetchPacketInCluster(o,R,a);R!==-1&&(c=o,g=R)}x===void 0&&(C(E!==j.Cluster),x=(await Nc(i.reader,S,Fs,s.elementEndPos)).pos-S);let k=S+x;if(s.elementEndPos===null){let R=i.reader.requestSliceRange(k,qt,vA);if(R instanceof Promise&&(R=await R),!R)break;if(Fc(R)===j.Segment){s.elementEndPos=k;break}}y=k}if(l&&(!c||c.elementStartPos<l.clusterPosition)){let w=this.internalTrack.cuePoints[u-1];C(!w||w.time<l.time);let D=w?.time??-1/0;return this.performClusterLookup(null,A,D,n,a)}return c?this.fetchPacketInCluster(c,g,a):null}},ql=class extends qc{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"video"}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return this.internalTrack.info.alphaMode}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({}));let r={codec:Ri({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcType:1,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Ni(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Hi(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ic(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Dc(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0};return(this.internalTrack.info.width!==this.internalTrack.info.squarePixelWidth||this.internalTrack.info.height!==this.internalTrack.info.squarePixelHeight)&&(r.displayAspectWidth=this.internalTrack.info.squarePixelWidth,r.displayAspectHeight=this.internalTrack.info.squarePixelHeight),r})():null}},Ll=class extends qc{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getType(){return"audio"}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Qi({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}};var Ns=async(t,e,A,r=null)=>{let a=e;for(;A===null||a<A;){let i=A!==null?Math.min(65536,A-a):65536,s=t.requestSliceRange(a,4,i);if(s instanceof Promise&&(s=await s),!s||s.length<4)break;for(;s.remainingLength>=4;){let o=s.filePos,c=J(s),g=t.fileSize!==null?t.fileSize-a:null,u=Ys(c,g);if(u.header&&(!r||u.header.sampleRate===r.sampleRate&&u.header.mpegVersionId===r.mpegVersionId&&u.header.layer===r.layer&&Kr(u.header.channel)===Kr(r.channel)))return{header:u.header,startPos:a};s.filePos=o+u.bytesAdvanced,a=s.filePos}}return null};var Lc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.firstFrameHeaderPos=null,this.loadedSamples=[],this.metadataTags=null,this.xingData=null,this.trackBackings=[],this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.trackBackings=[new jl(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let s=this.reader.requestSlice(this.lastLoadedPos,eA);if(s instanceof Promise&&(s=await s),!s){this.lastSampleLoaded=!0;return}let o=_A(s);if(!o)break;this.lastLoadedPos=s.filePos+o.size}let e=await Ns(this.reader,this.lastLoadedPos,this.reader.fileSize,this.firstFrameHeader);if(!e){this.lastSampleLoaded=!0;return}let A=e.header;this.lastLoadedPos=e.startPos+A.totalSize-1;let r=wc(A.mpegVersionId,A.channel),n=this.reader.requestSlice(e.startPos+r,4);if(n instanceof Promise&&(n=await n),n){let s=J(n);if(s===hc||s===pc){if(!this.xingData){let c=this.reader.requestSlice(e.startPos+r+4,12);if(c instanceof Promise&&(c=await c),c){let g=te(c,12),u=xe(g),l=u.getUint32(0,!1);this.xingData={frameCount:l&Ss.FrameCount?u.getUint32(4,!1):null,fileSize:l&Ss.FileSize?u.getUint32(8,!1):null}}}return}}this.firstFrameHeader||(this.firstFrameHeader=A,this.firstFrameHeaderPos=e.startPos);let a=A.audioSamplesInFrame/this.firstFrameHeader.sampleRate,i={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:a,dataStart:e.startPos,dataSize:A.totalSize};this.loadedSamples.push(i),this.nextTimestampInSamples+=A.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let A=0,r=!1;for(;;){let n=this.reader.requestSlice(A,eA);if(n instanceof Promise&&(n=await n),!n)break;let a=_A(n);if(!a)break;r=!0;let i=this.reader.requestSlice(n.filePos,a.size);if(i instanceof Promise&&(i=await i),!i)break;Zi(i,a,this.metadataTags),A=n.filePos+a.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Hs){let n=this.reader.requestSlice(this.reader.fileSize-Hs,Hs);n instanceof Promise&&(n=await n),C(n),Le(n,3)==="TAG"&&gw(n,this.metadataTags)}return this.metadataTags}finally{e()}}},jl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.demuxer;if(C(e.firstFrameHeader!==null),C(e.firstFrameHeaderPos!==null),e.xingData){if(e.xingData.frameCount!==null)return e.xingData.frameCount*e.firstFrameHeader.audioSamplesInFrame/e.firstFrameHeader.sampleRate}else if(e.reader.fileSize!==null){let A=Op(e.firstFrameHeader.lowSamplingFrequency,e.firstFrameHeader.layer,e.firstFrameHeader.bitrate,e.firstFrameHeader.sampleRate),r=(e.reader.fileSize-e.firstFrameHeaderPos)/A;return Math.round(r)*e.firstFrameHeader.audioSamplesInFrame/e.firstFrameHeader.sampleRate}return null}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return C(this.demuxer.firstFrameHeader),Kr(this.demuxer.firstFrameHeader.channel)}getSampleRate(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:Kr(this.demuxer.firstFrameHeader.channel),sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,A){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let a=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;n=te(a,r.dataSize)}return new Fe(n,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=wr(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let a=n+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,A)}finally{r()}}async getPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,a=>a.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,A);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,A);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var Vl=1399285583,BC=79764919,lw=new Uint32Array(256);for(let t=0;t<256;t++){let e=t<<24;for(let A=0;A<8;A++)e=e&2147483648?e<<1^BC:e<<1;lw[t]=e>>>0&4294967295}var dw=t=>{let e=xe(t),A=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let n=0;n<t.length;n++){let a=t[n];r=(r<<8^lw[r>>>24^a])>>>0}return e.setUint32(22,A,!0),r},fw=(t,e,A)=>{let r=0,n=null;if(t.length>0)if(e.codec==="vorbis"){C(e.vorbisInfo);let a=e.vorbisInfo.modeBlockflags.length,s=(1<<hp(a-1))-1<<1,o=(t[0]&s)>>1;if(o>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let c=A,g=e.vorbisInfo.modeBlockflags[o];if(n=e.vorbisInfo.blocksizes[g],g===1){let u=(s|1)+1,l=t[0]&u?1:0;c=e.vorbisInfo.blocksizes[l]}r=c!==null?c+n>>2:0}else e.codec==="opus"&&(r=jp(t).durationInSamples);return{durationInSamples:r,vorbisBlockSize:n}},mw=t=>{let e="audio/ogg";if(t.codecStrings){let A=[...new Set(t.codecStrings)];e+=`; codecs="${A.join(", ")}"`}return e};var en=27,_n=282,hw=_n+255*255,$i=t=>{let e=t.filePos;if(On(t)!==Vl)return null;t.skip(1);let r=ne(t),n=ww(t),a=On(t),i=On(t),s=On(t),o=ne(t),c=new Uint8Array(o);for(let f=0;f<o;f++)c[f]=ne(t);let g=27+o,u=c.reduce((f,p)=>f+p,0),l=g+u;return{headerStartPos:e,totalSize:l,dataStartPos:e+g,dataSize:u,headerType:r,granulePosition:n,serialNumber:a,sequenceNumber:i,checksum:s,lacingValues:c}},pw=(t,e)=>{for(;t.filePos<e-3;){let A=On(t),r=A&255,n=A>>>8&255,a=A>>>16&255,i=A>>>24&255,s=79;if(!(r!==s&&n!==s&&a!==s&&i!==s)){if(t.skip(-4),A===Vl)return!0;t.skip(1)}}return!1};var jc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.trackBackings=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let A=this.reader.requestSliceRange(e,en,_n);if(A instanceof Promise&&(A=await A),!A)break;let r=$i(A);if(!r||!!!(r.headerType&2))break;this.bitstreams.push({serialNumber:r.serialNumber,bosPage:r,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=r.headerStartPos+r.totalSize}for(let A of this.bitstreams){let r=await this.readPacket(A.bosPage,0);r&&(r.data.byteLength>=7&&r.data[0]===1&&r.data[1]===118&&r.data[2]===111&&r.data[3]===114&&r.data[4]===98&&r.data[5]===105&&r.data[6]===115?await this.readVorbisMetadata(r,A):r.data.byteLength>=8&&r.data[0]===79&&r.data[1]===112&&r.data[2]===117&&r.data[3]===115&&r.data[4]===72&&r.data[5]===101&&r.data[6]===97&&r.data[7]===100&&await this.readOpusMetadata(r,A),A.codecInfo.codec!==null&&this.trackBackings.push(new Kl(A,this)))}})()}async readVorbisMetadata(e,A){let r=await this.findNextPacketStart(e);if(!r)return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n||(r=await this.findNextPacketStart(n),!r))return;let a=await this.readPacket(r.startPage,r.startSegmentIndex);if(!a||n.data[0]!==3||a.data[0]!==5)return;let i=[],s=u=>{for(;i.push(Math.min(255,u)),!(u<255);)u-=255};s(e.data.length),s(n.data.length);let o=new Uint8Array(1+i.length+e.data.length+n.data.length+a.data.length);o[0]=2,o.set(i,1),o.set(e.data,1+i.length),o.set(n.data,1+i.length+e.data.length),o.set(a.data,1+i.length+e.data.length+n.data.length),A.codecInfo.codec="vorbis",A.description=o,A.lastMetadataPacket=a;let c=xe(e.data);A.numberOfChannels=c.getUint8(11),A.sampleRate=c.getUint32(12,!0);let g=c.getUint8(28);A.codecInfo.vorbisInfo={blocksizes:[1<<(g&15),1<<(g>>4)],modeBlockflags:Vp(a.data).modeBlockflags},_s(n.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,A){let r=await this.findNextPacketStart(e);if(!r)return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n)return;A.codecInfo.codec="opus",A.description=e.data,A.lastMetadataPacket=n;let a=Cc(e.data);A.numberOfChannels=a.outputChannelCount,A.sampleRate=Yn,A.codecInfo.opusInfo={preSkip:a.preSkip},_s(n.data.subarray(8),this.metadataTags)}async readPacket(e,A){C(A<e.lacingValues.length);let r=0;for(let u=0;u<A;u++)r+=e.lacingValues[u];let n=e,a=r,i=A,s=[];e:for(;;){let u=this.reader.requestSlice(n.dataStartPos,n.dataSize);u instanceof Promise&&(u=await u),C(u);let l=te(u,n.dataSize);for(;;){if(i===n.lacingValues.length){s.push(l.subarray(r,a));break}let p=n.lacingValues[i];if(a+=p,p<255){s.push(l.subarray(r,a));break e}i++}let f=n.headerStartPos+n.totalSize;for(;;){let p=this.reader.requestSliceRange(f,en,_n);if(p instanceof Promise&&(p=await p),!p)return null;let h=$i(p);if(!h)return null;if(n=h,n.serialNumber===e.serialNumber)break;f=n.headerStartPos+n.totalSize}r=0,a=0,i=0}let o=s.reduce((u,l)=>u+l.length,0);if(o===0)return null;let c=new Uint8Array(o),g=0;for(let u=0;u<s.length;u++){let l=s[u];c.set(l,g),g+=l.length}return{data:c,endPage:n,endSegmentIndex:i}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let r=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let n=this.reader.requestSliceRange(r,en,_n);if(n instanceof Promise&&(n=await n),!n)return null;let a=$i(n);if(!a)return null;if(a.serialNumber===e.endPage.serialNumber)return{startPage:a,startSegmentIndex:0};r=a.headerStartPos+a.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.trackBackings.map(A=>A.getDecoderConfig().then(r=>r?.codec??null)));return mw({codecStrings:e.filter(Boolean)})}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Kl=class{constructor(e,A){this.bitstream=e,this.demuxer=A,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new Nt,this.internalSampleRate=e.codecInfo.codec==="opus"?Yn:e.sampleRate}getType(){return"audio"}getId(){return this.bitstream.serialNumber}getNumber(){let e=this.demuxer.trackBackings.findIndex(A=>A.bitstream===this.bitstream);return C(e!==-1),e+1}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return C(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct,primary:!1}}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(C(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,A,r){if(!e)return null;let{durationInSamples:n,vorbisBlockSize:a}=fw(e.data,this.bitstream.codecInfo,A.vorbisLastBlocksize),i=new Fe(r.metadataOnly?dt:e.data,"key",Math.max(0,A.timestampInSamples)/this.internalSampleRate,n/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(i,{packet:e,timestampInSamples:A.timestampInSamples,durationInSamples:n,vorbisLastBlockSize:A.vorbisLastBlocksize,vorbisBlockSize:a}),i}async getFirstPacket(e){C(this.bitstream.lastMetadataPacket);let A=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!A)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(C(this.bitstream.codecInfo.opusInfo),r-=this.bitstream.codecInfo.opusInfo.preSkip);let n=await this.demuxer.readPacket(A.startPage,A.startSegmentIndex);return this.createEncodedPacketFromOggPacket(n,{timestampInSamples:r,vorbisLastBlocksize:null},e)}async getNextPacket(e,A){let r=this.encodedPacketToMetadata.get(e);if(!r)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(r.packet);if(!n)return null;let a=r.timestampInSamples+r.durationInSamples,i=await this.demuxer.readPacket(n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(i,{timestampInSamples:a,vorbisLastBlocksize:r.vorbisBlockSize},A)}async getPacket(e,A){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,A);let r=Br(e*this.internalSampleRate);if(r===0)return this.getFirstPacket(A);if(r<0)return null;C(this.bitstream.lastMetadataPacket);let n=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!n)return null;let a=n.startPage,i=this.demuxer.reader.fileSize,s=[a];e:for(;a.headerStartPos+a.totalSize<i;){let D=a.headerStartPos,b=Math.floor((D+i)/2),E=b;for(;;){let x=Math.min(E+hw,i-en),S=this.demuxer.reader.requestSlice(E,x-E);if(S instanceof Promise&&(S=await S),C(S),!pw(S,x)){i=b+en;continue e}let R=this.demuxer.reader.requestSliceRange(S.filePos,en,_n);R instanceof Promise&&(R=await R),C(R);let M=$i(R);C(M);let N=!1;if(M.serialNumber===this.bitstream.serialNumber)N=!0;else{let F=this.demuxer.reader.requestSlice(M.headerStartPos,M.totalSize);F instanceof Promise&&(F=await F),C(F);let K=te(F,M.totalSize);N=dw(K)===M.checksum}if(!N){E=M.headerStartPos+4;continue}if(N&&M.serialNumber!==this.bitstream.serialNumber){E=M.headerStartPos+M.totalSize;continue}if(M.granulePosition===-1){E=M.headerStartPos+M.totalSize;continue}this.granulePositionToTimestampInSamples(M.granulePosition)>r?i=M.headerStartPos:(a=M,s.push(M));continue e}}let o=n.startPage;for(let D of s){if(D.granulePosition===a.granulePosition)break;(!o||D.headerStartPos>o.headerStartPos)&&(o=D)}let c=o,g=[c];for(;!(c.serialNumber===this.bitstream.serialNumber&&c.granulePosition===a.granulePosition);){let D=c.headerStartPos+c.totalSize,b=this.demuxer.reader.requestSliceRange(D,en,_n);b instanceof Promise&&(b=await b),C(b);let E=$i(b);C(E),c=E,c.serialNumber===this.bitstream.serialNumber&&g.push(c)}C(c.granulePosition!==-1);let u=null,l,f,p=c,h=0;if(c.headerStartPos===n.startPage.headerStartPos)l=this.granulePositionToTimestampInSamples(0),f=!0,u=0;else{l=0,f=!1;for(let E=c.lacingValues.length-1;E>=0;E--)if(c.lacingValues[E]<255){u=E+1;break}if(u===null)throw new Error("Invalid page with granule position: no packets end on this page.");h=u-1;let D={data:dt,endPage:p,endSegmentIndex:h};if(await this.demuxer.findNextPacketStart(D)){let E=Pw(g,c,u);C(E);let x=Bw(g,E.page,E.segmentIndex);x&&(c=x.page,u=x.segmentIndex)}else for(;;){let E=Pw(g,c,u);if(!E)break;let x=Bw(g,E.page,E.segmentIndex);if(!x)break;if(c=x.page,u=x.segmentIndex,E.page.headerStartPos!==p.headerStartPos){p=E.page,h=E.segmentIndex;break}}}let y=null,w=null;for(;c!==null;){C(u!==null);let D=await this.demuxer.readPacket(c,u);if(!D)break;if(!(c.headerStartPos===n.startPage.headerStartPos&&u<n.startSegmentIndex)){let x=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:l,vorbisLastBlocksize:w?.vorbisBlockSize??null},A);C(x);let S=this.encodedPacketToMetadata.get(x);if(C(S),!f&&D.endPage.headerStartPos===p.headerStartPos&&D.endSegmentIndex===h?(l=this.granulePositionToTimestampInSamples(c.granulePosition),f=!0,x=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:l-S.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},A),C(x),S=this.encodedPacketToMetadata.get(x),C(S)):l+=S.durationInSamples,y=x,w=S,f&&(Math.max(l,0)>r||Math.max(S.timestampInSamples,0)===r))break}let E=await this.demuxer.findNextPacketStart(D);if(!E)break;c=E.startPage,u=E.startSegmentIndex}return y}async getPacketSequential(e,A){let r=await this.sequentialScanMutex.acquire();try{let n=Br(e*this.internalSampleRate);e=n/this.internalSampleRate;let a=ye(this.sequentialScanCache,n,o=>o.timestampInSamples),i;if(a!==-1){let o=this.sequentialScanCache[a];i=this.createEncodedPacketFromOggPacket(o.packet,{timestampInSamples:o.timestampInSamples,vorbisLastBlocksize:o.vorbisLastBlockSize},A)}else i=await this.getFirstPacket(A);let s=0;for(;i&&i.timestamp<e;){let o=await this.getNextPacket(i,A);if(!o||o.timestamp>e)break;if(i=o,s++,s===100){s=0;let c=this.encodedPacketToMetadata.get(i);C(c),this.sequentialScanCache.length>0&&C(_e(this.sequentialScanCache).timestampInSamples<=c.timestampInSamples),this.sequentialScanCache.push(c)}}return i}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}},Bw=(t,e,A)=>{let r=e,n=A;e:for(;;){for(n--,n;n>=0;n--)if(r.lacingValues[n]<255){n++;break e}if(C(n===-1),!(r.headerType&1)){n=0;break}let i=bl(t,s=>s.headerStartPos<r.headerStartPos);if(!i)return null;r=i,n=r.lacingValues.length}if(C(n!==-1),n===r.lacingValues.length){let a=t[t.indexOf(r)+1];C(a),r=a,n=0}return{page:r,segmentIndex:n}},Pw=(t,e,A)=>{if(A>0)return{page:e,segmentIndex:A-1};let r=bl(t,n=>n.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var kr;(function(t){t[t.PCM=1]="PCM",t[t.IEEE_FLOAT=3]="IEEE_FLOAT",t[t.ALAW=6]="ALAW",t[t.MULAW=7]="MULAW",t[t.EXTENSIBLE=65534]="EXTENSIBLE"})(kr||(kr={}));var Vc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.trackBackings=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),C(e);let A=Le(e,4),r=A!=="RIFX",n=A==="RF64",a=Gr(e,r),i=n?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if(Le(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let o=0,c=null,g=e.filePos;for(;i===null||g<i;){let l=this.reader.requestSlice(g,8);if(l instanceof Promise&&(l=await l),!l)break;let f=Le(l,4),p=Gr(l,r),h=l.filePos;if(n&&o===0&&f!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(f==="fmt ")await this.parseFmtChunk(h,p,r);else if(f==="data"){if(c??=p,this.dataStart=l.filePos,this.dataSize=Math.min(c,(i??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(f==="ds64"){let y=this.reader.requestSlice(h,p);if(y instanceof Promise&&(y=await y),!y)break;let w=Zl(y,r);c=Zl(y,r),i=Math.min(w+8,this.reader.fileSize??1/0)}else f==="LIST"?await this.parseListChunk(h,p,r):(f==="ID3 "||f==="id3 ")&&await this.parseId3Chunk(h,p);g=h+p+(p&1),o++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let u=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/u)*u,this.trackBackings.push(new Wl(this))})()}async parseFmtChunk(e,A,r){let n=this.reader.requestSlice(e,A);if(n instanceof Promise&&(n=await n),!n)return;let a=Xi(n,r),i=Xi(n,r),s=Gr(n,r);n.skip(4);let o=Xi(n,r),c;if(A===14?c=8:c=Xi(n,r),A>=18&&a!==357){let g=Xi(n,r),u=A-18;if(Math.min(u,g)>=22&&a===kr.EXTENSIBLE){n.skip(6);let f=te(n,16);a=f[0]|f[1]<<8}}(a===kr.MULAW||a===kr.ALAW)&&(c=8),this.audioInfo={format:a,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(c/8),blockSizeInBytes:o}}async parseListChunk(e,A,r){let n=this.reader.requestSlice(e,A);if(n instanceof Promise&&(n=await n),!n)return;let a=Le(n,4);if(a!=="INFO"&&a!=="INF0")return;let i=n.filePos;for(;i<=e+A-8;){n.filePos=i;let s=Le(n,4),o=Gr(n,r),c=te(n,o),g=0;for(let l=0;l<c.length&&c[l]!==0;l++)g++;let u=String.fromCharCode(...c.subarray(0,g));switch(this.metadataTags.raw??={},this.metadataTags.raw[s]=u,s){case"INAM":case"TITL":this.metadataTags.title??=u;break;case"TIT3":this.metadataTags.description??=u;break;case"IART":this.metadataTags.artist??=u;break;case"IPRD":this.metadataTags.album??=u;break;case"IPRT":case"ITRK":case"TRCK":{let l=u.split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"ICRD":case"IDIT":{let l=new Date(u);Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"YEAR":{let l=Number.parseInt(u,10);Number.isInteger(l)&&l>0&&(this.metadataTags.date??=new Date(l,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=u;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=u;break}i+=8+o+(o&1)}}async parseId3Chunk(e,A){let r=this.reader.requestSlice(e,A);if(r instanceof Promise&&(r=await r),!r)return;let n=_A(r);if(n){let a=A-eA;if(n.size=Math.min(n.size,a),n.size>0){let i=r.slice(e+eA,n.size);Zi(i,n,this.metadataTags)}}}getCodec(){if(C(this.audioInfo),this.audioInfo.format===kr.MULAW)return"ulaw";if(this.audioInfo.format===kr.ALAW)return"alaw";if(this.audioInfo.format===kr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===kr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Ji=2048,Wl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(C(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}getNumberOfChannels(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return C(this.demuxer.dataSize!==-1),this.demuxer.dataSize/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct}}async getPacketAtIndex(e,A){C(e>=0),C(this.demuxer.audioInfo);let r=e*Ji*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let n=Math.min(Ji*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(this.demuxer.reader.fileSize===null){let o=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,n);if(o instanceof Promise&&(o=await o),!o)return null}let a;if(A.metadataOnly)a=dt;else{let o=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,n);o instanceof Promise&&(o=await o),C(o),a=te(o,n)}let i=e*Ji/this.demuxer.audioInfo.sampleRate,s=n/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,this.demuxer.lastKnownPacketIndex),new Fe(a,"key",i,s,e,n)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,A){C(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/Ji,(this.demuxer.dataSize-1)/(Ji*this.demuxer.audioInfo.blockSizeInBytes)));if(r<0)return null;let n=await this.getPacketAtIndex(r,A);if(n)return n;if(r===0)return null;C(this.demuxer.reader.fileSize===null);let a=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,A);for(;a;){let i=await this.getNextPacket(a,A);if(!i)break;a=i}return a}getNextPacket(e,A){C(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/Ji);return this.getPacketAtIndex(r+1,A)}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var Mn=7,MA=9,RA=t=>{let e=t.filePos,A=te(t,9),r=new Ge(A);if(r.readBits(12)!==4095||(r.skipBits(1),r.readBits(2)!==0))return null;let i=r.readBits(1),s=r.readBits(2)+1,o=r.readBits(4);if(o===15)return null;r.skipBits(1);let c=r.readBits(3);if(c===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let g=r.readBits(13);r.skipBits(11);let u=r.readBits(2)+1;if(u!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let l=null;return i===1?t.filePos-=2:l=r.readBits(16),{objectType:s,samplingFrequencyIndex:o,channelConfiguration:c,frameLength:g,numberOfAacFrames:u,crcCheck:l,startPos:e}};var Us=1024,Kc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.trackBackings=[],this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();C(this.firstFrameHeader),this.trackBackings=[new $l(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let i=this.reader.requestSlice(this.lastLoadedPos,eA);if(i instanceof Promise&&(i=await i),!i){this.lastSampleLoaded=!0;return}let s=_A(i);if(!s)break;this.lastLoadedPos=i.filePos+s.size}let e=this.reader.requestSliceRange(this.lastLoadedPos,Mn,MA);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let A=RA(e);if(!A){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&A.startPos+A.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=A);let r=er[A.samplingFrequencyIndex];C(r!==void 0);let n=Us/r,a={timestamp:this.nextTimestampInSamples/r,duration:n,dataStart:A.startPos,dataSize:A.frameLength};this.loadedSamples.push(a),this.nextTimestampInSamples+=Us,this.lastLoadedPos=A.startPos+A.frameLength}async getMimeType(){return"audio/aac"}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let A=0;for(;;){let r=this.reader.requestSlice(A,eA);if(r instanceof Promise&&(r=await r),!r)break;let n=_A(r);if(!n)break;let a=this.reader.requestSlice(r.filePos,n.size);if(a instanceof Promise&&(a=await a),!a)break;Zi(a,n,this.metadataTags),A=r.filePos+n.size}return this.metadataTags}finally{e()}}},$l=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return this.getSampleRate()/Us}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Xe}getCodec(){return"aac"}getInternalCodecId(){return C(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){C(this.demuxer.firstFrameHeader);let e=Lr[this.demuxer.firstFrameHeader.channelConfiguration];return C(e!==void 0),e}getSampleRate(){C(this.demuxer.firstFrameHeader);let e=er[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return C(e!==void 0),e}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.firstFrameHeader),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate()}}async getPacketAtIndex(e,A){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let a=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;n=te(a,r.dataSize)}return new Fe(n,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=wr(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(n===-1)throw new Error("Packet was not created from this track.");let a=n+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,A)}finally{r()}}async getPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,a=>a.timestamp);if(n===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(n,A);if(n>=0&&n+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(n,A);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}};var yw=t=>t===0?null:t===1?192:t>=2&&t<=5?144*2**t:t===6?"uncommon-u8":t===7?"uncommon-u16":t>=8&&t<=15?2**t:null,Iw=(t,e)=>{switch(t){case 0:return e;case 1:return 88200;case 2:return 176400;case 3:return 192e3;case 4:return 8e3;case 5:return 16e3;case 6:return 22050;case 7:return 24e3;case 8:return 32e3;case 9:return 44100;case 10:return 48e3;case 11:return 96e3;case 12:return"uncommon-u8";case 13:return"uncommon-u16";case 14:return"uncommon-u16-10";default:return null}},Dw=t=>{let e=0,A=new Ge(te(t,1));for(;A.readBits(1)===1;)e++;if(e===0)return A.readBits(7);let r=[],n=e-1,a=new Ge(te(t,n)),i=8-e-1;for(let o=0;o<i;o++)r.unshift(A.readBits(1));for(let o=0;o<n;o++)for(let c=0;c<8;c++){let g=a.readBits(1);c<2||r.unshift(g)}return r.reduce((o,c,g)=>o|c<<g,0)},Cw=(t,e)=>{if(e==="uncommon-u16")return At(t)+1;if(e==="uncommon-u8")return ne(t)+1;if(typeof e=="number")return e;$t(e),C(!1)},bw=(t,e)=>e==="uncommon-u16"?At(t):e==="uncommon-u16-10"?At(t)*10:e==="uncommon-u8"?ne(t):typeof e=="number"?e:null,Ew=t=>{let A=0;for(let r of t){A^=r;for(let n=0;n<8;n++)A&128?A=A<<1^7:A<<=1,A&=255}return A};var Wc=class extends ht{constructor(e){super(e),this.loadedSamples=[],this.metadataPromise=null,this.trackBacking=null,this.metadataTags={},this.audioInfo=null,this.lastLoadedPos=null,this.blockingBit=null,this.readingMutex=new Nt,this.lastSampleLoaded=!1,this.reader=e._reader}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTrackBackings(){return await this.readMetadata(),C(this.trackBacking),[this.trackBacking]}async getMimeType(){return"audio/flac"}async readMetadata(){let e=4;return this.metadataPromise??=(async()=>{for(;this.reader.fileSize===null||e<this.reader.fileSize;){let A=this.reader.requestSlice(e,4);if(A instanceof Promise&&(A=await A),e+=4,A===null)throw new Error(`Metadata block at position ${e} is too small! Corrupted file.`);C(A);let r=ne(A),n=YA(A),a=(r&128)!==0;switch(r&127){case Zr.STREAMINFO:{let s=this.reader.requestSlice(e,n);if(s instanceof Promise&&(s=await s),C(s),s===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let o=te(s,34),c=new Ge(o),g=c.readBits(16),u=c.readBits(16),l=c.readBits(24),f=c.readBits(24),p=c.readBits(20),h=c.readBits(3)+1;c.readBits(5);let y=c.readBits(36);c.skipBits(16*8);let w=new Uint8Array(42);w.set(new Uint8Array([102,76,97,67]),0),w.set(new Uint8Array([128,0,0,34]),4),w.set(o,8),this.audioInfo={numberOfChannels:h,sampleRate:p,totalSamples:y,minimumBlockSize:g,maximumBlockSize:u,minimumFrameSize:l,maximumFrameSize:f,description:w},this.trackBacking=new Jl(this);break}case Zr.VORBIS_COMMENT:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),C(s),_s(te(s,n),this.metadataTags);break}case Zr.PICTURE:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),C(s);let o=J(s),c=J(s),g=mt.decode(te(s,c)),u=J(s),l=mt.decode(te(s,u));s.skip(16);let f=J(s),p=te(s,f);this.metadataTags.images??=[],this.metadataTags.images.push({data:p,mimeType:g,kind:o===3?"coverFront":o===4?"coverBack":"unknown",description:l});break}default:break}if(e+=n,a){this.lastLoadedPos=e;break}}if(!this.audioInfo)throw new Error("Missing STREAMINFO metadata block! Corrupted FLAC file.")})()}async readNextFlacFrame({startPos:e,isFirstPacket:A}){C(this.audioInfo);let r=6,n=16,a=10,i=this.audioInfo.maximumBlockSize*this.audioInfo.numberOfChannels*4+n+2,s=this.audioInfo.minimumFrameSize||a,c=(this.audioInfo.maximumFrameSize||i)+n,g=await this.reader.requestSliceRange(e,n,c);if(!g)return null;let u=this.readFlacFrameHeader({slice:g,isFirstPacket:A});if(!u)return null;for(g.filePos=e+s;;){if(g.filePos>g.end-r)return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:g.end-e,isLastFrame:!0};if(ne(g)===255){let f=g.filePos,p=ne(g),h=this.blockingBit===1?249:248;if(p!==h){g.filePos=f;continue}g.skip(-2);let y=g.filePos-e,w=this.readFlacFrameHeader({slice:g,isFirstPacket:!1});if(!w){g.filePos=f;continue}if(this.blockingBit===0){if(w.num-u.num!==1){g.filePos=f;continue}}else if(w.num-u.num!==u.blockSize){g.filePos=f;continue}return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:y,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:A}){let r=e.filePos,n=te(e,4),a=new Ge(n);if(a.readBits(15)!==32764)return null;if(this.blockingBit===null){C(A);let y=a.readBits(1);this.blockingBit=y}else if(this.blockingBit===1){if(C(!A),a.readBits(1)!==1)return null}else if(this.blockingBit===0){if(C(!A),a.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let s=yw(a.readBits(4));if(!s)return null;C(this.audioInfo);let o=Iw(a.readBits(4),this.audioInfo.sampleRate);if(!o||(a.readBits(4),a.readBits(3),a.readBits(1)!==0))return null;let g=Dw(e),u=Cw(e,s),l=bw(e,o);if(l===null||l!==this.audioInfo.sampleRate)return null;let f=e.filePos-r,p=ne(e);e.skip(-f),e.skip(-1);let h=Ew(te(e,f));return p!==h?null:{num:g,blockSize:u,sampleRate:l}}async advanceReader(){await this.readMetadata(),C(this.lastLoadedPos!==null),C(this.audioInfo);let e=this.lastLoadedPos,A=await this.readNextFlacFrame({startPos:e,isFirstPacket:this.loadedSamples.length===0});if(!A){this.lastSampleLoaded=!0;return}let r=this.loadedSamples[this.loadedSamples.length-1],a={blockOffset:r?r.blockOffset+r.blockSize:0,blockSize:A.blockSize,byteOffset:e,byteSize:A.size};if(this.lastLoadedPos=this.lastLoadedPos+A.size,this.loadedSamples.push(a),A.isLastFrame){this.lastSampleLoaded=!0;return}}},Jl=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Xe}getTimeResolution(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return C(this.demuxer.audioInfo),this.demuxer.audioInfo.totalSamples===0?null:this.demuxer.audioInfo.totalSamples/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getDisposition(){return{...Ct}}async getDecoderConfig(){return C(this.demuxer.audioInfo),{codec:"flac",numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate,description:this.demuxer.audioInfo.description}}async getPacket(e,A){if(C(this.demuxer.audioInfo),e<0)return null;let r=await this.demuxer.readingMutex.acquire();try{for(;;){let n=ye(this.demuxer.loadedSamples,e,o=>o.blockOffset/this.demuxer.audioInfo.sampleRate);if(n===-1){await this.demuxer.advanceReader();continue}let a=this.demuxer.loadedSamples[n],i=a.blockOffset/this.demuxer.audioInfo.sampleRate,s=a.blockSize/this.demuxer.audioInfo.sampleRate;if(i+s<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,A);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(n,A)}}finally{r()}}async getNextPacket(e,A){let r=await this.demuxer.readingMutex.acquire();try{let n=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&n>=this.demuxer.loadedSamples.length)return null;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,A)}finally{r()}}getKeyPacket(e,A){return this.getPacket(e,A)}getNextKeyPacket(e,A){return this.getNextPacket(e,A)}async getPacketAtIndex(e,A){let r=this.demuxer.loadedSamples[e];if(!r)return null;let n;if(A.metadataOnly)n=dt;else{let s=this.demuxer.reader.requestSlice(r.byteOffset,r.byteSize);if(s instanceof Promise&&(s=await s),!s)return null;n=te(s,r.byteSize)}C(this.demuxer.audioInfo);let a=r.blockOffset/this.demuxer.audioInfo.sampleRate,i=r.blockSize/this.demuxer.audioInfo.sampleRate;return new Fe(n,"key",a,i,e,r.byteSize)}async getFirstPacket(e){for(;this.demuxer.loadedSamples.length===0&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(0,e)}};var Tw=t=>{let e="video/MP2T",A=[...new Set(t.filter(Boolean))];return A.length>0&&(e+=`; codecs="${A.join(", ")}"`),e};var Gw="PES packet is missing PTS where it was expected. PES packets without PTS are not currently supported. If you think this file should be supported, please report it.",kw=new Set,Zc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.elementaryStreams=[],this.trackBackingEntries=[],this.packetOffset=0,this.packetStride=-1,this.sectionEndPositions=[],this.seekChunkSize=5*1024*1024,this.minReferencePointByteDistance=-1,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=205,A=this.reader.requestSlice(0,e);A instanceof Promise&&(A=await A),C(A);let r=te(A,e);if(r[0]===71&&r[188]===71)this.packetOffset=0,this.packetStride=188;else if(r[0]===71&&r[204]===71)this.packetOffset=0,this.packetStride=204;else if(r[4]===71&&r[196]===71)this.packetOffset=4,this.packetStride=192;else throw new Error("Unreachable.");let n=256;this.minReferencePointByteDistance=n*this.packetStride;let a=this.packetOffset,i=null,s=!1,o=!1;for(;;){let c=await this.readPacketHeader(a);if(!c)break;if(c.payloadUnitStartIndicator===0){a+=this.packetStride;continue}let g=await this.readSection(a,!0,!o);if(!g)break;let u=3,l=32,f=!1;if(!o&&g.pid!==0&&!(g.payload[0]===0&&g.payload[1]===0&&g.payload[2]===1)){let y=new Ge(g.payload),w=y.readAlignedByte();y.skipBits(8*w),f=y.readBits(8)===2}if(g.pid===0&&!s){let h=new Ge(g.payload),y=h.readAlignedByte();h.skipBits(8*y),h.skipBits(14);let w=h.readBits(10);for(h.skipBits(40);8*(w+u)-h.pos>l;){let D=h.readBits(16);h.skipBits(3);let b=h.readBits(13);if(D!==0){if(i!==null)throw new Error("Only files with a single program are supported.");i=b}}if(i===null)throw new Error("Program Association Table must link to a Program Map Table.");s=!0}else if((g.pid===i||f)&&!o){let h=new Ge(g.payload),y=h.readAlignedByte();h.skipBits(8*y),h.skipBits(12);let w=h.readBits(12);h.skipBits(43);let D=h.readBits(13);h.skipBits(6);let b=h.readBits(10);for(h.skipBits(8*b);8*(w+u)-h.pos>l;){let E=h.readBits(8);h.skipBits(3);let x=h.readBits(13);h.skipBits(6);let S=h.readBits(10),k=h.pos+8*S,R=!1,M=!1;for(;h.pos<k;){let V=h.readBits(8),F=h.readBits(8);V===106?R=!0:(V===122||V===204)&&(M=!0),h.skipBits(8*F)}let N=null;switch(E){case 27:case 36:N={type:"video",codec:E===27?"avc":"hevc",decoderConfig:null,avcCodecInfo:null,hevcCodecInfo:null,colorSpace:{primaries:null,transfer:null,matrix:null,fullRange:null},width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,reorderSize:-1};break;case 3:case 4:case 15:case 129:case 135:{let V;if(E===3||E===4)V="mp3";else if(E===15)V="aac";else if(E===129)V="ac3";else if(E===135)V="eac3";else throw new Error("Unreachable.");N={type:"audio",codec:V,decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}}break;case 6:M?N={type:"audio",codec:"eac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}:R&&(N={type:"audio",codec:"ac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1});break;default:kw.has(E)||(console.warn(`Note: MPEG-TS streams with stream_type 0x${E.toString(16)} are not currently supported.`),kw.add(E))}N&&this.elementaryStreams.push({demuxer:this,pid:x,streamType:E,initialized:!1,firstSection:null,canBeTrustedWithKeyPackets:!1,info:N,referencePesPackets:[]})}o=!0}else{let h=this.elementaryStreams.find(y=>y.pid===g.pid);e:if(h&&!h.initialized){let y=ea(g,!0);if(!y)throw new Error(`Couldn't read first PES packet for Elementary Stream with PID ${h.pid}`);if(h.firstSection=g,h.canBeTrustedWithKeyPackets=g.randomAccessIndicator===1,this.input._initInput){let b=(await this.input._initInput._getDemuxer()).elementaryStreams.find(E=>E.pid===g.pid&&E.info.codec===h.info.codec);if(b){h.info=b.info,h.initialized=!0;break e}}let w=new Qn(h,y);if(h.info.type==="video"){for(;;){let D=w;if(D.suppliedPacket=null,await w.markNextPacket(),h.info.codec==="avc"){if(!w.suppliedPacket)throw new Error("Invalid AVC video stream; could not extract AVCDecoderConfigurationRecord from any packet.");if(h.info.avcCodecInfo=Ni(w.suppliedPacket.data),!h.info.avcCodecInfo)continue;let b=h.info.avcCodecInfo.sequenceParameterSets[0];C(b);let E=Os(b);h.info.width=E.displayWidth,h.info.height=E.displayHeight;let x=E.pixelAspectRatio.num,S=E.pixelAspectRatio.den;x>0&&S>0&&(x>S?(h.info.squarePixelWidth=Math.round(h.info.width*x/S),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*S/x))),h.info.colorSpace={primaries:Cn[E.colourPrimaries],transfer:bn[E.transferCharacteristics],matrix:En[E.matrixCoefficients],fullRange:!!E.fullRangeFlag},h.info.reorderSize=E.maxDecFrameBuffering;break}else if(h.info.codec==="hevc"){if(!w.suppliedPacket)throw new Error("Invalid HEVC video stream; could not extract HVCDecoderConfigurationRecord from first packet.");if(h.info.hevcCodecInfo=Hi(w.suppliedPacket.data),!h.info.hevcCodecInfo)continue;let E=h.info.hevcCodecInfo.arrays.find(S=>S.nalUnitType===bt.SPS_NUT).nalUnits[0];C(E);let x=_l(E);h.info.width=x.displayWidth,h.info.height=x.displayHeight,x.pixelAspectRatio.num>x.pixelAspectRatio.den?(h.info.squarePixelWidth=Math.round(h.info.width*x.pixelAspectRatio.num/x.pixelAspectRatio.den),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*x.pixelAspectRatio.den/x.pixelAspectRatio.num)),h.info.colorSpace={primaries:Cn[x.colourPrimaries],transfer:bn[x.transferCharacteristics],matrix:En[x.matrixCoefficients],fullRange:!!x.fullRangeFlag},h.info.reorderSize=x.maxDecFrameBuffering;break}else throw new Error("Unhandled.")}h.info.decoderConfig={codec:Ri({width:h.info.width,height:h.info.height,codec:h.info.codec,codecDescription:null,colorSpace:h.info.colorSpace,avcType:1,avcCodecInfo:h.info.avcCodecInfo,hevcCodecInfo:h.info.hevcCodecInfo,vp9CodecInfo:null,av1CodecInfo:null}),codedWidth:h.info.width,codedHeight:h.info.height,colorSpace:h.info.colorSpace},(h.info.width!==h.info.squarePixelWidth||h.info.height!==h.info.squarePixelHeight)&&(h.info.decoderConfig.displayAspectWidth=h.info.squarePixelWidth,h.info.decoderConfig.displayAspectHeight=h.info.squarePixelHeight),h.initialized=!0}else{if(await w.markNextPacket(),!w.suppliedPacket)throw new Error(`Couldn't parse first media packet for Elementary Stream with PID ${h.pid}`);if(h.info.codec==="aac"){let D=Mt.tempFromBytes(w.suppliedPacket.data),b=RA(D);if(!b)throw new Error("Invalid AAC audio stream; could not read ADTS frame header from first packet.");h.info.aacCodecInfo={isMpeg2:!1,objectType:b.objectType},h.info.numberOfChannels=Lr[b.channelConfiguration],h.info.sampleRate=er[b.samplingFrequencyIndex]}else if(h.info.codec==="mp3"){let D=J(Mt.tempFromBytes(w.suppliedPacket.data)),b=Ys(D,w.suppliedPacket.data.byteLength);if(!b.header)throw new Error("Invalid MP3 audio stream; could not read frame header from first packet.");h.info.numberOfChannels=Kr(b.header.channel),h.info.sampleRate=b.header.sampleRate}else if(h.info.codec==="ac3"){let D=bc(w.suppliedPacket.data);if(!D)throw new Error("Invalid AC-3 audio stream; could not read sync frame from first packet.");if(D.fscod===3)throw new Error("Invalid AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=Ms[D.acmod]+D.lfeon,h.info.sampleRate=vn[D.fscod]}else if(h.info.codec==="eac3"){let D=Ec(w.suppliedPacket.data);if(!D)throw new Error("Invalid E-AC-3 audio stream; could not read sync frame from first packet.");let b=Tc(D);if(b===null)throw new Error("Invalid E-AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=kc(D),h.info.sampleRate=b}else throw new Error("Unhandled.");h.info.decoderConfig={codec:Qi({codec:h.info.codec,codecDescription:null,aacCodecInfo:h.info.aacCodecInfo}),numberOfChannels:h.info.numberOfChannels,sampleRate:h.info.sampleRate},h.initialized=!0}}}if(o&&this.elementaryStreams.every(h=>h.initialized))break;a+=this.packetStride}if(!o)throw s?new Error("No Program Map Table found in the file."):new Error("No Program Association Table found in the file.");for(let c of this.elementaryStreams)c.info.type==="video"?this.trackBackingEntries.push(new Xl(c)):this.trackBackingEntries.push(new ed(c))})()}async getTrackBackings(){return await this.readMetadata(),this.trackBackingEntries}async getMetadataTags(){return{}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.trackBackingEntries.map(A=>A.getDecoderConfig().then(r=>r?.codec??null)));return Tw(e)}async readSection(e,A,r=!1){let n=e,a=e,i=[],s=0,o=null,c=!0,g=0;for(;;){let l=await this.readPacket(a);if(a+=this.packetStride,!l)break;if(o){if(l.pid!==o.pid){if(r)break;continue}if(l.payloadUnitStartIndicator===1)break}else{if(l.payloadUnitStartIndicator===0)break;o=l}let f=!!(l.adaptationFieldControl&2),p=!!(l.adaptationFieldControl&1),h=0;if(f&&(h=1+l.body[0],l===o&&h>1&&(g=l.body[1]>>6&1)),p&&(h===0?(i.push(l.body),s+=l.body.byteLength):(i.push(l.body.subarray(h)),s+=l.body.byteLength-h)),n=a,!A&&s>=64){c=!1;break}if(wr(this.sectionEndPositions,n,w=>w)!==-1){c=!1;break}}if(c){let l=ye(this.sectionEndPositions,n,f=>f);this.sectionEndPositions.splice(l+1,0,n)}if(!o)return null;let u;if(i.length===1)u=i[0];else{let l=i.reduce((p,h)=>p+h.length,0);u=new Uint8Array(l);let f=0;for(let p of i)u.set(p,f),f+=p.length}return{startPos:e,endPos:A?n:null,pid:o.pid,payload:u,randomAccessIndicator:g}}async readPacketHeader(e){let A=this.reader.requestSlice(e,4);if(A instanceof Promise&&(A=await A),!A)return null;if(ne(A)!==71)throw new Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let n=At(A),a=n>>15,i=n>>14&1,s=n>>13&1,o=n&8191,c=ne(A),g=c>>6,u=c>>4&3,l=c&15;return{payloadUnitStartIndicator:i,pid:o,adaptationFieldControl:u}}async readPacket(e){let A=this.reader.requestSlice(e,188);if(A instanceof Promise&&(A=await A),!A)return null;let r=te(A,188);if(r[0]!==71)throw new Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let a=(r[1]<<8)+r[2],i=a>>15,s=a>>14&1,o=a>>13&1,c=a&8191,g=r[3],u=g>>6,l=g>>4&3,f=g&15;return{payloadUnitStartIndicator:s,pid:c,adaptationFieldControl:l,body:r.subarray(4)}}},Rn=(t,e)=>{if(t.payload.byteLength<3)return null;let A=new Ge(t.payload);if(A.readBits(24)!==1)return null;let n=A.readBits(8);if(A.skipBits(16),n===188||n===190||n===191||n===240||n===241||n===255||n===242||n===248)return null;A.skipBits(8);let a=A.readBits(2);A.skipBits(14);let i=null;if(a===2||a===3)i=0,A.skipBits(4),i+=A.readBits(3)*(1<<30),A.skipBits(1),i+=A.readBits(15)*32768,A.skipBits(1),i+=A.readBits(15);else if(e)throw new Error(Gw);return{sectionStartPos:t.startPos,sectionEndPos:t.endPos,pts:i,randomAccessIndicator:t.randomAccessIndicator}},ea=(t,e)=>{C(t.endPos!==null);let A=Rn(t,e);if(!A)return null;let r=new Ge(t.payload);r.skipBits(32);let n=r.readBits(16),a=6;r.skipBits(16);let i=r.readBits(8),s=r.pos+8*i;r.pos=s;let o=s/8;C(Number.isInteger(o));let c=t.payload.subarray(o,n>0?a+n:t.payload.byteLength);return{...A,data:c}},$c=class t{constructor(e){this.elementaryStream=e,this.packetBuffers=new WeakMap,this.packetSectionStarts=new WeakMap}getId(){return this.elementaryStream.pid}getNumber(){let e=this.elementaryStream.demuxer,A=this.elementaryStream.info.type,r=0;for(let n of e.trackBackingEntries)if(n.getType()===A&&r++,C(n instanceof t),n.elementaryStream===this.elementaryStream)break;return r}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.elementaryStream.streamType}getName(){return null}getLanguageCode(){return Xe}getDisposition(){return{...Ct,primary:!1}}getTimeResolution(){return 9e4}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return null}async getLiveRefreshInterval(){return null}createEncodedPacket(e,A,r){let n;return this.allPacketsAreKeyPackets()?n="key":n=e.randomAccessIndicator===1?"key":"delta",new Fe(r.metadataOnly?dt:e.data,n,e.pts/9e4,Math.max(A/9e4,0),e.sequenceNumber,e.data.byteLength)}async getFirstPacket(e){let A=this.elementaryStream.firstSection;C(A);let r=ea(A,!0);C(r);let n=new Qn(this.elementaryStream,r),a=new qs(this,n),i=await a.readNext();if(!i)return null;let s=this.createEncodedPacket(i.packet,i.duration,e);return this.packetBuffers.set(s,a),this.packetSectionStarts.set(s,i.packet.sectionStartPos),s}async getNextPacket(e,A){let r=this.packetBuffers.get(e);if(r){let g=await r.readNext();if(!g)return null;this.packetBuffers.delete(e);let u=this.createEncodedPacket(g.packet,g.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,g.packet.sectionStartPos),u}let n=this.packetSectionStarts.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");let i=await this.elementaryStream.demuxer.readSection(n,!0);C(i);let s=ea(i,!0);C(s);let o=new Qn(this.elementaryStream,s);r=new qs(this,o);let c=e.sequenceNumber;for(;;){let g=await r.readNext();if(!g)return null;if(g.packet.sequenceNumber>c){let u=this.createEncodedPacket(g.packet,g.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,g.packet.sectionStartPos),u}}}async getNextKeyPacket(e,A){let r=e;for(;;){if(r=await this.getNextPacket(r,A),!r)return null;if(r.type==="key")return r}}getPacket(e,A){return this.doPacketLookup(e,!1,A)}getKeyPacket(e,A){return this.doPacketLookup(e,!0,A)}async doPacketLookup(e,A,r){let n=Br(e*9e4),a=this.elementaryStream.demuxer,{reader:i,seekChunkSize:s}=a,o=this.elementaryStream.pid,c=async(E,x,S)=>{let k=E;for(;k<x;){let R=await a.readPacketHeader(k);if(!R)return null;if(R.pid===o&&R.payloadUnitStartIndicator===1){let M=await a.readSection(k,S);if(!M)return null;let N=Rn(M,!1);if(N&&N.pts!==null)return{pesPacketHeader:N,section:M}}k+=a.packetStride}return null},g=this.elementaryStream.firstSection;C(g);let u=Rn(g,!0);if(C(u),n<u.pts)return null;let l,f=this.elementaryStream.referencePesPackets,p=ye(f,n,E=>E.pts),h=p!==-1?f[p]:null;if(h&&n-h.pts<9e4/2)l=h.sectionStartPos;else{let E=0;if(i.fileSize!==null){let x=Math.ceil(i.fileSize/s);if(x>1){let S=0,k=x-1;for(E=S;S<=k;){let R=Math.floor((S+k)/2),M=lc(R*s,a.packetStride)+u.sectionStartPos,N=M+s,V=await c(M,N,!1);if(!V){k=R-1;continue}V.pesPacketHeader.pts<=n?(E=R,S=R+1):k=R-1}}}l=lc(E*s,a.packetStride)+u.sectionStartPos}let w=(await c(l,i.fileSize??1/0,!1))?.pesPacketHeader??null;w||(w=u);let D=this.getReorderSize(),b=async(E,x)=>{let S=await a.readSection(E,!0);C(S);let k=ea(S,!0);C(k);let R=new Qn(this.elementaryStream,k),M=new qs(this,R);for(;!((_e(M.presentationOrderPackets)?.pts??-1/0)>=n||!await M.readNextPacket()););let N=vi(M.presentationOrderPackets,x);if(N===-1)return null;let V=M.presentationOrderPackets[N],F=N===0?0:V.pts-M.presentationOrderPackets[N-1].pts;for(;M.decodeOrderPackets[0]!==V;)M.decodeOrderPackets.shift();M.lastDuration=F;let K=await M.readNext();C(K);let L=this.createEncodedPacket(K.packet,K.duration,r);return this.packetBuffers.set(L,M),this.packetSectionStarts.set(L,K.packet.sectionStartPos),L};if(!A||this.allPacketsAreKeyPackets()){e:for(;;){let E=w.sectionStartPos+a.packetStride;for(;;){let x=await a.readPacketHeader(E);if(!x)break e;if(x.pid===o&&x.payloadUnitStartIndicator===1){let S=await a.readSection(E,!1);if(S){let k=Rn(S,!1);if(k&&k.pts!==null){if(k.pts>n)break e;w=k,td(this.elementaryStream,w);break}}}E+=a.packetStride}}e:for(let E=0;E<D+1;E++){let x=w.sectionStartPos-a.packetStride;for(;x>=a.packetOffset;){let S=await a.readPacketHeader(x);if(!S)break e;if(S.pid===o&&S.payloadUnitStartIndicator===1){let k=await a.readSection(x,!1);if(k){let R=Rn(k,!1);if(R&&R.pts!==null){w=R;break}}}x-=a.packetStride}}return b(w.sectionStartPos,E=>E.pts<=n)}else{let E=l,x=null,S=!this.elementaryStream.canBeTrustedWithKeyPackets;for(;;){let k=null,R=E<=u.sectionStartPos,M,N=null;if(R)M=u,N=g;else{let K=await c(E,i.fileSize??1/0,S);M=K?.pesPacketHeader??null,N=K?.section??null}let V=!1,F=0;e:for(;M&&!(x!==null&&M.sectionStartPos>=x);){if(M.pts<=n){let L;if(this.elementaryStream.canBeTrustedWithKeyPackets)L=M.randomAccessIndicator===1;else{C(N);let _=ea(N,!0);C(_);let W=new Qn(this.elementaryStream,_);await W.markNextPacket(),L=W.suppliedPacket?.randomAccessIndicator===1}L&&(k=M)}if(M.pts>n&&(V=!0),V&&(F++,F>D))break;let K=M.sectionStartPos+a.packetStride;for(;;){let L=await a.readPacketHeader(K);if(!L)break e;if(L.pid===o&&L.payloadUnitStartIndicator===1){let _=await a.readSection(K,S);if(_){let W=Rn(_,!1);if(W&&W.pts!==null){M=W,N=_,td(this.elementaryStream,M);break}}}K+=a.packetStride}}if(k){let K=k;if(F===0)e:for(let _=0;_<D;_++){let W=K.sectionStartPos-a.packetStride;for(;W>=a.packetOffset;){let pe=await a.readPacketHeader(W);if(!pe)break e;if(pe.pid===o&&pe.payloadUnitStartIndicator===1){let Ae=await a.readSection(W,S);if(Ae){let De=Rn(Ae,!1);if(De&&De.pts!==null){K=De;break}}}W-=a.packetStride}}let L=await b(K.sectionStartPos,_=>_.pts<=n&&_.randomAccessIndicator===1);return C(L),L}if(R)return null;x=E,E=Math.max(lc(E-u.sectionStartPos-s,a.packetStride)+u.sectionStartPos,u.sectionStartPos)}}}},Xl=class extends $c{getType(){return"video"}getCodec(){return this.elementaryStream.info.codec}getCodedWidth(){return this.elementaryStream.info.width}getCodedHeight(){return this.elementaryStream.info.height}getSquarePixelWidth(){return this.elementaryStream.info.squarePixelWidth}getSquarePixelHeight(){return this.elementaryStream.info.squarePixelHeight}getRotation(){return 0}async getColorSpace(){return this.elementaryStream.info.colorSpace}async canBeTransparent(){return!1}async getDecoderConfig(){return C(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!1}getReorderSize(){return this.elementaryStream.info.reorderSize}},ed=class extends $c{getType(){return"audio"}getCodec(){return this.elementaryStream.info.codec}getNumberOfChannels(){return this.elementaryStream.info.numberOfChannels}getSampleRate(){return this.elementaryStream.info.sampleRate}async getDecoderConfig(){return C(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!0}getReorderSize(){return 0}},td=(t,e)=>{let A=t.referencePesPackets,r=ye(A,e.sectionStartPos,n=>n.sectionStartPos);if(r>=0){let n=A[r];if(e.pts<=n.pts)return!1;let a=t.demuxer.minReferencePointByteDistance;if(e.sectionStartPos-n.sectionStartPos<a)return!1;if(r<A.length-1){let i=A[r+1];if(i.pts<e.pts||i.sectionStartPos-e.sectionStartPos<a)return!1}}return A.splice(r+1,0,e),!0},Qn=class{constructor(e,A){this.currentPos=0,this.pesPackets=[],this.currentPesPacketIndex=0,this.currentPesPacketPos=0,this.endPos=0,this.lastSuppliedPesPacket=null,this.nextPts=null,this.suppliedPacket=null,this.elementaryStream=e,this.pid=e.pid,this.demuxer=e.demuxer,this.startingPesPacket=A}ensureBuffered(e){let A=this.endPos-this.currentPos;return A>=e?e:this.bufferData(e-A).then(()=>Math.min(this.endPos-this.currentPos,e))}getCurrentPesPacket(){let e=this.pesPackets[this.currentPesPacketIndex];return C(e),e}async bufferData(e){let A=this.endPos+e;for(;this.endPos<A;){let r;if(this.pesPackets.length===0)r=this.startingPesPacket;else{let n=_e(this.pesPackets).sectionEndPos;for(C(n!==null);;){let a=await this.demuxer.readPacketHeader(n);if(!a)return;if(a.pid===this.pid){let i=await this.demuxer.readSection(n,!0);if(!i)return;let s=ea(i,!1);if(s){r=s;break}}n+=this.demuxer.packetStride}}this.pesPackets.push(r),this.endPos+=r.data.byteLength}}readBytes(e){let A=this.getCurrentPesPacket(),r=this.currentPos-this.currentPesPacketPos,n=r+e;if(this.currentPos+=e,n<=A.data.byteLength)return A.data.subarray(r,n);let a=new Uint8Array(e);a.set(A.data.subarray(r));let i=A.data.byteLength-r;for(;;){this.advanceCurrentPacket();let s=this.getCurrentPesPacket(),o=e-i;if(o<=s.data.byteLength){a.set(s.data.subarray(0,o),i);break}a.set(s.data,i),i+=s.data.byteLength}return a}readU8(){let e=this.getCurrentPesPacket(),A=this.currentPos-this.currentPesPacketPos;return this.currentPos++,A<e.data.byteLength?e.data[A]:(this.advanceCurrentPacket(),e=this.getCurrentPesPacket(),e.data[0])}seekTo(e){if(e!==this.currentPos){if(e<this.currentPos)for(;e<this.currentPesPacketPos;){this.currentPesPacketIndex--;let A=this.getCurrentPesPacket();this.currentPesPacketPos-=A.data.byteLength}else for(;;){let A=this.getCurrentPesPacket(),r=this.currentPesPacketPos+A.data.byteLength;if(e<r)break;this.currentPesPacketPos+=A.data.byteLength,this.currentPesPacketIndex++}this.currentPos=e}}skip(e){this.seekTo(this.currentPos+e)}advanceCurrentPacket(){this.currentPesPacketPos+=this.getCurrentPesPacket().data.byteLength,this.currentPesPacketIndex++}async markNextPacket(){C(!this.suppliedPacket);let e=this.elementaryStream;if(e.info.type==="video"){let A=e.info.codec,r=1024;if(A!=="avc"&&A!=="hevc")throw new Error("Unhandled.");let n=null;for(;;){let a=this.ensureBuffered(r);if(a instanceof Promise&&(a=await a),a===0)break;let i=this.currentPos,s=this.readBytes(a),o=s.byteLength,c=0;for(;c<o;){let g=s.indexOf(0,c);if(g===-1||g>=o)break;c=g;let u=i+c;if(c+4>=o){this.seekTo(u);break}let l=s[c+1],f=s[c+2],p=s[c+3],h=0,y=null;if(l===0&&f===0&&p===1?(h=4,y=s[c+4]):l===0&&f===1&&(h=3,y=p),h===0){c++;continue}let w=u;if(n===null){n=w,c+=h;continue}if(y!==null){let D=A==="avc"?zi(y):Wr(y);if(A==="avc"?D===Jt.AUD:D===bt.AUD_NUT){let E=w-n;return this.seekTo(n),this.supplyPacket(E,0)}}c+=h}if(a<r)break}if(n!==null){let a=this.endPos-n;return this.seekTo(n),this.supplyPacket(a,0)}}else{let A=e.info.codec,r=128;for(;;){let n=this.ensureBuffered(r);n instanceof Promise&&(n=await n);let a=this.currentPos;for(;this.currentPos-a<n;){let i=this.readU8();if(A==="aac"){if(i!==255)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(MA);if(o instanceof Promise&&(o=await o),o<MA)return;let c=this.readBytes(MA),g=RA(Mt.tempFromBytes(c));if(g){this.seekTo(s);let u=this.ensureBuffered(g.frameLength);return u instanceof Promise&&(u=await u),this.supplyPacket(u,Math.round(Us*9e4/e.info.sampleRate))}else this.seekTo(s+1)}else if(A==="mp3"){if(i!==255)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(4);if(o instanceof Promise&&(o=await o),o<4)return;let c=this.readBytes(4),g=xe(c).getUint32(0),u=Ys(g,null);if(u.header){this.seekTo(s);let l=this.ensureBuffered(u.header.totalSize);l instanceof Promise&&(l=await l);let f=u.header.audioSamplesInFrame*9e4/e.info.sampleRate;return this.supplyPacket(l,Math.round(f))}else this.seekTo(s+1)}else if(A==="ac3"){if(i!==11)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(5);if(o instanceof Promise&&(o=await o),o<5)return;let c=this.readBytes(5);if(c[0]!==11||c[1]!==119){this.seekTo(s+1);continue}let g=c[4]>>6,u=c[4]&63;if(g===3||u>37){this.seekTo(s+1);continue}let l=Kp[3*u+g];C(l!==void 0),this.seekTo(s),o=this.ensureBuffered(l),o instanceof Promise&&(o=await o);let f=Math.round(Wp*9e4/e.info.sampleRate);return this.supplyPacket(o,f)}else if(A==="eac3"){if(i!==11)continue;this.skip(-1);let s=this.currentPos,o=this.ensureBuffered(5);if(o instanceof Promise&&(o=await o),o<5)return;let c=this.readBytes(5);if(c[0]!==11||c[1]!==119){this.seekTo(s+1);continue}let u=(((c[2]&7)<<8|c[3])+1)*2,f=c[4]>>6===3?3:c[4]>>4&3,p=Ml[f];this.seekTo(s),o=this.ensureBuffered(u),o instanceof Promise&&(o=await o);let h=p*256,y=Math.round(h*9e4/e.info.sampleRate);return this.supplyPacket(o,y)}else throw new Error("Unhandled.")}if(n<r)break}}}supplyPacket(e,A){let r=this.getCurrentPesPacket(),n;if(this.lastSuppliedPesPacket===r)C(this.nextPts!==null),n=this.nextPts;else{if(r.pts===null)throw new Error(Gw);n=r.pts,td(this.elementaryStream,r)}this.lastSuppliedPesPacket=r,this.nextPts=n+A;let a=r.sectionStartPos,i=a+(this.currentPos-this.currentPesPacketPos),s=this.readBytes(e),o=r.randomAccessIndicator;if(o===0&&!this.elementaryStream.canBeTrustedWithKeyPackets){if(this.elementaryStream.info.type==="audio")o=1;else if(this.elementaryStream.info.decoderConfig){let c=$r(this.elementaryStream.info.codec,this.elementaryStream.info.decoderConfig,s)==="key";o=Number(c)}}this.suppliedPacket={pts:n,data:s,sequenceNumber:i,sectionStartPos:a,randomAccessIndicator:o},this.pesPackets.splice(0,this.currentPesPacketIndex),this.currentPesPacketIndex=0}},qs=class{constructor(e,A){this.decodeOrderPackets=[],this.reorderBuffer=[],this.presentationOrderPackets=[],this.reachedEnd=!1,this.lastDuration=0,this.backing=e,this.context=A,this.reorderSize=e.getReorderSize(),C(this.reorderSize>=0)}async readNext(){if(this.decodeOrderPackets.length===0&&!await this.readNextPacket())return null;await this.ensureCurrentPacketHasNext();let e=this.decodeOrderPackets[0],A=this.presentationOrderPackets.indexOf(e);C(A!==-1);let r;for(A===this.presentationOrderPackets.length-1?r=this.lastDuration:(r=this.presentationOrderPackets[A+1].pts-e.pts,this.lastDuration=r),this.decodeOrderPackets.shift();this.presentationOrderPackets.length>0;){let n=this.presentationOrderPackets[0];if(this.decodeOrderPackets.includes(n))break;this.presentationOrderPackets.shift()}return{packet:e,duration:r}}async readNextPacket(){if(this.reachedEnd)return!1;let e;return this.context.suppliedPacket?e=this.context.suppliedPacket:(await this.context.markNextPacket(),e=this.context.suppliedPacket),this.context.suppliedPacket=null,e?(this.decodeOrderPackets.push(e),this.processPacketThroughReorderBuffer(e),!0):(this.reachedEnd=!0,this.flushReorderBuffer(),!1)}async ensureCurrentPacketHasNext(){let e=this.decodeOrderPackets[0];for(C(e);;){let A=this.presentationOrderPackets.indexOf(e);if(A!==-1&&A<=this.presentationOrderPackets.length-2||!await this.readNextPacket())break}}processPacketThroughReorderBuffer(e){if(this.reorderBuffer.push(e),this.reorderBuffer.length>this.reorderSize){let A=0;for(let n=1;n<this.reorderBuffer.length;n++)this.reorderBuffer[n].pts<this.reorderBuffer[A].pts&&(A=n);let r=this.reorderBuffer[A];this.presentationOrderPackets.push(r),this.reorderBuffer.splice(A,1)}}flushReorderBuffer(){this.reorderBuffer.sort((e,A)=>e.pts-A.pts),this.presentationOrderPackets.push(...this.reorderBuffer),this.reorderBuffer.length=0}};var Jc="application/vnd.apple.mpegurl",Ad="#EXT-X-STREAM-INF:",rd="#EXT-X-I-FRAME-STREAM-INF:",nd="#EXT-X-MEDIA:",Ls="#EXTINF:",id="#EXT-X-MAP:",ad="#EXT-X-KEY:",sd="#EXT-X-MEDIA-SEQUENCE:",od="#EXT-X-BYTERANGE:",cd="#EXT-X-PROGRAM-DATE-TIME:",xw="#EXT-X-DISCONTINUITY",ud="#EXT-X-TARGETDURATION:",Sw="#EXT-X-ENDLIST",gd="#EXT-X-PLAYLIST-TYPE:",Yw="#EXT-X-I-FRAMES-ONLY",Xc=t=>t.length===0||t.startsWith("#")&&!t.startsWith("#EXT"),Sr=class{constructor(e){this._attributes={};let A="",r="",n=!1,a=!1;for(let i=0;i<e.length;i++){let s=e[i];s==='"'?a=!a:s==="="&&!n&&!a?n=!0:s===","&&!a?(A&&(this._attributes[A.trim().toLowerCase()]=r),A="",r="",n=!1):n?r+=s:A+=s}A&&(this._attributes[A.trim().toLowerCase()]=r)}get(e){return this._attributes[e.toLowerCase()]??null}getAsNumber(e){let A=this.get(e);if(A===null)return null;let r=Number(A);return Number.isFinite(r)?r:null}merge(e){Object.assign(this._attributes,e._attributes)}};var eu=class{constructor(e,A,r){this.nextInputCacheAge=0,this.inputCache=[],this.trackBackingsPromise=null,this.firstSegment=null,this.firstSegmentFirstTimestamps=new WeakMap,this.firstTimestampCache=new WeakMap,this.input=e,this.path=A,this.trackDeclarations=r}async getDurationFromMetadata(e){let A=await this.getSegmentAt(1/0,{skipLiveWait:e.skipLiveWait});return A?A.timestamp+A.duration:null}async getTrackBackings(){return this.trackBackingsPromise??=(async()=>{let e=[];if(this.trackDeclarations){for(let A of this.trackDeclarations)if(A.type==="video"){let r=xn(e,n=>n.getType()==="video")+1;e.push(new Au(this,A,r))}else if(A.type==="audio"){let r=xn(e,n=>n.getType()==="audio")+1;e.push(new ru(this,A,r))}}else{if(this.firstSegment=await this.getFirstSegment({}),!this.firstSegment)return[];let r=await this.getInputForSegment(this.firstSegment).getTracks();for(let n of r)if(n.type==="video"){let a=xn(e,i=>i.getType()==="video")+1;e.push(new Au(this,{id:e.length+1,type:"video"},a))}else if(n.type==="audio"){let a=xn(e,i=>i.getType()==="audio")+1;e.push(new ru(this,{id:e.length+1,type:"audio"},a))}}return e})()}async getFirstTimestampForInput(e){let A=this.firstTimestampCache.get(e);if(A!==void 0)return A;let r=await e.getFirstTimestamp();return this.firstTimestampCache.set(e,r),r}async getMediaOffset(e,A){let r=e.firstSegment??e,n;if(this.firstSegmentFirstTimestamps.has(r))n=this.firstSegmentFirstTimestamps.get(r);else{let c=this.getInputForSegment(r);n=await this.getFirstTimestampForInput(c),this.firstSegmentFirstTimestamps.set(r,n)}if(r===e)return r.timestamp-n;let a=await this.getFirstTimestampForInput(A),i=e.timestamp-r.timestamp,o=a-n-i;return Math.abs(o)<=Math.min(.25,i)?r.timestamp-n:e.timestamp-a}dispose(){for(let e of this.inputCache)e.input.dispose();this.inputCache.length=0}},tu=class{constructor(e,A,r){this.packetInfos=new WeakMap,this.hydrationPromise=null,this.firstInputTrack=null,this.segmentedInput=e,this.decl=A,this.number=r}hydrate(){return this.hydrationPromise??=(async()=>{if(this.segmentedInput.firstSegment??=await this.segmentedInput.getFirstSegment({}),!this.segmentedInput.firstSegment)throw new Error("Missing first segment, can't retrieve track.");let r=(await this.segmentedInput.getInputForSegment(this.segmentedInput.firstSegment).getTracks()).find(n=>n.type===this.decl.type&&n.number===this.number);if(!r)throw new Error("No matching track found in underlying media data.");this.firstInputTrack=r})()}getId(){return this.decl.id}getType(){return this.decl.type}getNumber(){return this.number}delegate(e){return this.firstInputTrack?e():this.hydrate().then(e)}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}getHasOnlyKeyPackets(){return this.delegate(()=>this.firstInputTrack._backing.getHasOnlyKeyPackets?.()??null)}getPairingMask(){return 1n}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getInternalCodecId(){return this.delegate(()=>this.firstInputTrack._backing.getInternalCodecId())}getDisposition(){return this.delegate(()=>this.firstInputTrack._backing.getDisposition())}getLanguageCode(){return this.delegate(()=>this.firstInputTrack._backing.getLanguageCode())}getName(){return this.delegate(()=>this.firstInputTrack._backing.getName())}getTimeResolution(){return this.delegate(()=>this.firstInputTrack._backing.getTimeResolution())}async isRelativeToUnixEpoch(){return await this.hydrate(),C(this.segmentedInput.firstSegment),this.segmentedInput.firstSegment.relativeToUnixEpoch}getBitrate(){return this.delegate(()=>this.firstInputTrack._backing.getBitrate())}getAverageBitrate(){return this.delegate(()=>this.firstInputTrack._backing.getAverageBitrate())}getDurationFromMetadata(e){return this.segmentedInput.getDurationFromMetadata(e)}getLiveRefreshInterval(){return this.segmentedInput.getLiveRefreshInterval()}async createAdjustedPacket(e,A,r){C(e.sequenceNumber>=0),C(this.segmentedInput.firstSegment);let n=await this.segmentedInput.getMediaOffset(A,r.input),a=A.timestamp-this.segmentedInput.firstSegment.timestamp,i=e.clone({timestamp:Ds(e.timestamp+n,await r.getTimeResolution()),sequenceNumber:Math.floor(1e8*a)+e.sequenceNumber});return this.packetInfos.set(i,{segment:A,track:r,sourcePacket:e}),i}async getFirstPacket(e){await this.hydrate(),C(this.segmentedInput.firstSegment),C(this.firstInputTrack);let A=await this.firstInputTrack._backing.getFirstPacket(e);return A?this.createAdjustedPacket(A,this.segmentedInput.firstSegment,this.firstInputTrack):null}getNextPacket(e,A){return this._getNextInternal(e,A,!1)}getNextKeyPacket(e,A){return this._getNextInternal(e,A,!0)}async _getNextInternal(e,A,r){let n=this.packetInfos.get(e);if(!n)throw new Error("Packet was not created from this track.");let a=r?await n.track._backing.getNextKeyPacket(n.sourcePacket,A):await n.track._backing.getNextPacket(n.sourcePacket,A);if(a)return this.createAdjustedPacket(a,n.segment,n.track);let i=n.segment;for(;;){let s=await this.segmentedInput.getNextSegment(i,{skipLiveWait:A.skipLiveWait});if(!s)return null;let g=(await this.segmentedInput.getInputForSegment(s).getTracks()).find(l=>l.type===n.track.type&&l.number===n.track.number);if(!g){i=s;continue}let u=await g._backing.getFirstPacket(A);return u?this.createAdjustedPacket(u,s,g):null}}getPacket(e,A){return this._getPacketInternal(e,A,!1)}getKeyPacket(e,A){return this._getPacketInternal(e,A,!0)}async _getPacketInternal(e,A,r){let n=await this.segmentedInput.getSegmentAt(e,{skipLiveWait:A.skipLiveWait});if(!n)return null;for(await this.hydrate();n;){let a=this.segmentedInput.getInputForSegment(n),s=(await a.getTracks()).find(u=>u.type===this.firstInputTrack.type&&u.number===this.firstInputTrack.number);if(!s){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}let o=await this.segmentedInput.getMediaOffset(n,a),c=e-o,g=r?await s._backing.getKeyPacket(c,A):await s._backing.getPacket(c,A);if(!g){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}return this.createAdjustedPacket(g,n,s)}return null}},Au=class extends tu{getType(){return"video"}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getCodedWidth(){return this.delegate(()=>this.firstInputTrack._backing.getCodedWidth())}getCodedHeight(){return this.delegate(()=>this.firstInputTrack._backing.getCodedHeight())}getSquarePixelWidth(){return this.delegate(()=>this.firstInputTrack._backing.getSquarePixelWidth())}getSquarePixelHeight(){return this.delegate(()=>this.firstInputTrack._backing.getSquarePixelHeight())}getRotation(){return this.delegate(()=>this.firstInputTrack._backing.getRotation())}async getColorSpace(){return this.delegate(()=>this.firstInputTrack._backing.getColorSpace())}async canBeTransparent(){return this.delegate(()=>this.firstInputTrack._backing.canBeTransparent())}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}},ru=class extends tu{getType(){return"audio"}getCodec(){return this.delegate(()=>this.firstInputTrack._backing.getCodec())}getNumberOfChannels(){return this.delegate(()=>this.firstInputTrack._backing.getNumberOfChannels())}getSampleRate(){return this.delegate(()=>this.firstInputTrack._backing.getSampleRate())}async getDecoderConfig(){return this.delegate(()=>this.firstInputTrack._backing.getDecoderConfig())}};_i();var dd=0,fd=1/0,PC=null;typeof FinalizationRegistry<"u"&&(PC=new FinalizationRegistry(t=>{t()}));var Lt=class extends $A{constructor(){super(),this._disposed=!1,this._refCount=0,this._usedForHls=!1,this._refFinalizationRegistry=null,this._sizePromise=null,this.onread=null,typeof FinalizationRegistry<"u"&&(this._refFinalizationRegistry=new FinalizationRegistry(e=>{e._decrementRefCount()}))}async getSizeOrNull(){if(this._disposed)throw new Pt;return this._sizePromise??=(async()=>{let e=this._getFileSize();return e!==void 0||(await this._read(0,1,dd,fd),e=this._getFileSize(),C(e!==void 0)),e})()}async getSize(){if(this._disposed)throw new Pt;let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}slice(e,A){if(!Number.isInteger(e)||e<0)throw new TypeError("offset must be a non-negative integer.");if(A!==void 0&&(!Number.isInteger(A)||A<0))throw new TypeError("length, when provided, must be a non-negative integer.");return new nu(this,e,A)}_dispatchRead(e,A){this.onread?.(e,A),this._emit("read",{start:e,end:A})}ref(){return new Fn(this)}_incrementRefCount(){this._refCount++}_decrementRefCount(){this._refCount--,this._refCount===0&&(this._dispose(),this._disposed=!0)}},Fn=class{constructor(e){if(this._freed=!1,e._disposed)throw new Error("Cannot ref a disposed source.");e._incrementRefCount(),e._refFinalizationRegistry?.register(this,e,this),this._source=e}get source(){if(!this._source)throw new Error("Can't get source; ref has already been freed.");return this._source}get freed(){return this._freed}free(){if(this._freed)throw new Error("Illegal operation: double free on SourceRef.");let e=this.source;C(e._refCount>0),e._decrementRefCount(),e._refFinalizationRegistry?.unregister(this),this._freed=!0,this._source=null}[Symbol.dispose](){this.freed||this.free()}},Ar=class extends Lt{constructor(e,A){if(typeof e!="string")throw new TypeError("rootPath must be a string.");if(typeof A!="function")throw new TypeError("requestHandler must be a function.");super(),this.rootPath=e,this.requestHandler=A}_resolveRequest(e){let A=this.requestHandler(e),r=n=>{if(!(n instanceof Lt||n instanceof Fn))throw new TypeError("requestHandler must return or resolve to a Source or SourceRef.");let a=n instanceof Lt?n.ref():n;return a.source._usedForHls||=this._usedForHls,a};return A instanceof Promise?A.then(r):r(A)}},md=(t,e)=>t.path===e.path,js=class extends Ar{constructor(){super(...arguments),this._root=null,this._rootRequest=null}_read(e,A,r,n){if(!this._root){if(!this._rootRequest){let a=this._resolveRequest({path:this.rootPath,isRoot:!0}),i=s=>{let o=s instanceof Lt?s.ref():s;return this._root=o,this._rootRequest=null,o};a instanceof Promise?this._rootRequest=a.then(i):(i(a),C(this._root))}if(this._rootRequest)return this._rootRequest.then(a=>a.source._read(e,A,r,n))}return this._root.source._read(e,A,r,n)}_getFileSize(){if(this._root)return this._root.source._getFileSize()}_dispose(){this._root?this._root.free():this._rootRequest&&this._rootRequest.then(e=>e.free())}};var Vs=class extends Lt{constructor(e,A={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(A.maxCacheSize!==void 0&&(!ks(A.maxCacheSize)||A.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");if(A.useStreamReader!==void 0&&typeof A.useStreamReader!="boolean")throw new TypeError("options.useStreamReader, when provided, must be a boolean.");super(),this._readers=new WeakMap,this._blob=e,this._options=A,this._orchestrator=new ld({maxCacheSize:A.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:IC.fileSystem}),this._orchestrator.fileSize=e.size}_getFileSize(){return this._orchestrator.fileSize}_read(e,A,r,n){return this._orchestrator.read(e,A,r,n)}async _runWorker(e){C(e.strictTarget);let A=this._readers.get(e);for(A===void 0&&("stream"in this._blob&&!kn()&&this._options.useStreamReader!==!1?A=this._blob.slice(e.currentPos).stream().getReader():A=null,this._readers.set(e,A));e.currentPos<e.targetPos&&!e.aborted;)if(A){let{done:r,value:n}=await A.read();if(r)throw this._orchestrator.onWorkerFinished(e),new Error("Blob reader stopped unexpectedly before all requested data was read.");if(e.aborted)break;this._dispatchRead(e.currentPos,e.currentPos+n.length),this._orchestrator.supplyWorkerData(e,n)}else{let r=await this._blob.slice(e.currentPos,e.targetPos).arrayBuffer();if(e.aborted)break;this._dispatchRead(e.currentPos,e.currentPos+r.byteLength),this._orchestrator.supplyWorkerData(e,new Uint8Array(r))}this._orchestrator.signalWorkerStoppedRunning(e),e.aborted&&await A?.cancel()}_dispose(){this._orchestrator.dispose()}},yC=.5*2**20;var Ks=class extends Lt{constructor(e,A={}){if(!(e instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(A.maxCacheSize!==void 0&&(!ks(A.maxCacheSize)||A.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=e,this._maxCacheSize=A.maxCacheSize??32*2**20}_getFileSize(){return this._endIndex}_read(e,A){if(this._endIndex!==null&&A>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,A);let r=ye(this._cache,e,g=>g.start),n=r!==-1?this._cache[r]:null;if(n&&n.start<=e&&A<=n.end)return{bytes:n.bytes,view:n.view,offset:n.start};let a=e,i=new Uint8Array(A-e);if(r!==-1)for(let g=r;g<this._cache.length;g++){let u=this._cache[g];if(u.start>=A)break;let l=Math.max(e,u.start);l>a&&this._throwDueToCacheMiss();let f=Math.min(A,u.end);l<f&&(i.set(u.bytes.subarray(l-u.start,f-u.start),l-e),a=f)}if(a===A)return{bytes:i,view:xe(i),offset:e};this._currentIndex>a&&this._throwDueToCacheMiss();let{promise:s,resolve:o,reject:c}=lt();return this._pendingSlices.push({start:e,end:A,bytes:i,resolve:o,reject:c}),this._targetIndex=Math.max(this._targetIndex,A),this._pulling||(this._pulling=!0,this._pull().catch(g=>{if(this._pulling=!1,this._pendingSlices.length>0)this._pendingSlices.forEach(u=>u.reject(g)),this._pendingSlices.length=0;else throw g})),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(this._reader??=this._stream.getReader();this._currentIndex<this._targetIndex&&!this._disposed;){let{done:e,value:A}=await this._reader.read();if(e){for(let a of this._pendingSlices)a.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}let r=this._currentIndex,n=this._currentIndex+A.byteLength;this._dispatchRead(r,n);for(let a=0;a<this._pendingSlices.length;a++){let i=this._pendingSlices[a],s=Math.max(r,i.start),o=Math.min(n,i.end);s<o&&(i.bytes.set(A.subarray(s-r,o-r),s-i.start),o===i.end&&(i.resolve({bytes:i.bytes,view:xe(i.bytes),offset:i.start}),this._pendingSlices.splice(a,1),a--))}for(this._cache.push({start:r,end:n,bytes:A,view:xe(A),age:0});this._cache.length>0;){let a=this._cache[0];if(this._maxRequestedIndex-a.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=A.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0,this._reader?.cancel()}},IC={none:(t,e)=>({start:t,end:e}),fileSystem:(t,e)=>(t=Math.floor((t-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:t,end:e}),network:(t,e,A)=>{t=Math.max(0,Math.floor((t-65536)/65536)*65536);for(let n of A){let i=Math.max((n.startPos+n.targetPos)/2,n.targetPos-8388608);if(dc(t,e,i,n.targetPos)){let s=n.targetPos-n.startPos,o=Math.ceil((s+1)/8388608)*8388608,c=2**Math.ceil(Math.log2(s+1)),g=Math.min(c,o);e=Math.max(e,n.startPos+g)}}return e=Math.max(e,t+yC),{start:t,end:e}}},ld=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0,this.disposed=!1,this.queuedReads=[]}read(e,A,r,n){C(!this.disposed);let a=this.options.prefetchProfile(e,A,this.workers),i=Math.max(a.start,r),s=Math.min(a.end,this.fileSize??1/0,n);C(i<=e&&A<=s);let o=null,c=ye(this.cache,e,x=>x.start),g=c!==-1?this.cache[c]:null;g&&g.start<=e&&A<=g.end&&(g.age=this.nextAge++,o={bytes:g.bytes,view:g.view,offset:g.start});let u=ye(this.cache,i,x=>x.start),l=o?null:new Uint8Array(A-e),f=0,p=i,h=[];if(u!==-1){for(let x=u;x<this.cache.length;x++){let S=this.cache[x];if(S.start>=s)break;if(S.end<=i)continue;let k=Math.max(i,S.start),R=Math.min(s,S.end);if(C(k<=R),p<k&&h.push({start:p,end:k}),p=R,l){let M=Math.max(e,S.start),N=Math.min(A,S.end);if(M<N){let V=M-e;l.set(S.bytes.subarray(M-S.start,N-S.start),V),V===f&&(f=N-e)}}S.age=this.nextAge++}p<s&&h.push({start:p,end:s})}else h.push({start:i,end:s});if(l&&f>=l.length&&(o={bytes:l,view:xe(l),offset:e}),h.length===0)return C(o),o;let{promise:y,resolve:w,reject:D}=lt(),b=[];for(let x of h){let S=Math.max(e,x.start),k=Math.min(A,x.end);S===x.start&&k===x.end?b.push(x):S<k&&b.push({start:S,end:k})}let E=l&&{start:e,bytes:l,holes:b,resolve:w,reject:D};e:for(let x of h){for(let R of this.workers)if(this.checkHoleAgainstWorker(R,x,E?[E]:[])){this.checkQueuedReadsAgainstWorker(R);continue e}let S=x.end<s||this.fileSize!==null,k=this.createWorker(x.start,x.end,S);if(k)E&&(k.pendingSlices=[E]),this.runWorker(k);else{let R=ye(this.queuedReads,x.start,N=>N.hole.start),M=R!==-1?this.queuedReads[R]:null;for(M&&x.start<=M.hole.end?(M.hole.end=Math.max(M.hole.end,x.end),M.strictTarget&&=S,E&&M.pendingSlices.push(E)):(R++,M={hole:{start:x.start,end:x.end},strictTarget:S,pendingSlices:E?[E]:[],age:this.nextAge++},this.queuedReads.splice(R,0,M));R+1<this.queuedReads.length;){let N=this.queuedReads[R+1];if(N.hole.start>M.hole.end)break;M.hole.end=Math.max(M.hole.end,N.hole.end),M.pendingSlices.push(...N.pendingSlices),M.strictTarget&&=N.strictTarget,M.age=Math.min(M.age,N.age),this.queuedReads.splice(R+1,1)}}}return o||(C(l),o=y.then(x=>x&&{bytes:x,view:xe(x),offset:e})),o}checkHoleAgainstWorker(e,A,r){if(dc(A.start-131072,A.start,e.currentPos,e.targetPos)){e.targetPos=Math.max(e.targetPos,A.end);for(let a=0;a<r.length;a++){let i=r[a];e.pendingSlices.includes(i)||e.pendingSlices.push(i)}return e.running||this.runWorker(e),!0}return!1}checkQueuedReadsAgainstWorker(e){let A=!1;for(let r=0;r<this.queuedReads.length;r++){let n=this.queuedReads[r];if(this.checkHoleAgainstWorker(e,n.hole,n.pendingSlices))this.queuedReads.splice(r,1),r--,A=!0;else if(A)break}}createWorker(e,A,r){if(this.workers.length>=this.options.maxWorkerCount){let a=null,i=null;for(let s=0;s<this.workers.length;s++){let o=this.workers[s];!o.running&&o.pendingSlices.length===0&&(!a||o.age<a.age)&&(i=s,a=o)}if(a)C(i!==null),C(a.pendingSlices.length===0),this.workers.splice(i,1);else return null}let n={startPos:e,currentPos:e,targetPos:A,strictTarget:r,running:!1,aborted:this.disposed,pendingSlices:[],age:this.nextAge++};return this.workers.push(n),n}runWorker(e){C(!e.running),C(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(A=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(r=>r.reject(A)),e.pendingSlices.length=0;else throw A}).finally(()=>{if(!e.running&&this.queuedReads.length>0){let A=0;for(let a=1;a<this.queuedReads.length;a++)this.queuedReads[a].age<this.queuedReads[A].age&&(A=a);let r=this.queuedReads[A];this.queuedReads.splice(A,1);let n=this.createWorker(r.hole.start,r.hole.end,r.strictTarget);C(n),n.pendingSlices=r.pendingSlices,this.runWorker(n)}})}consolidateEverythingIntoOneWorker(e){let A=new Set(e.pendingSlices);for(let r=0;r<this.workers.length;r++){let n=this.workers[r];if(n!==e){for(let a of n.pendingSlices)A.add(a);n.aborted=!0,n.pendingSlices.length=0,this.workers.splice(r,1),r--}}for(let r=0;r<this.queuedReads.length;r++){let n=this.queuedReads[r];for(let a of n.pendingSlices)A.add(a)}e.pendingSlices=[...A],this.queuedReads.length=0}supplyWorkerData(e,A){C(!e.aborted);let r=e.currentPos,n=r+A.length;this.insertIntoCache({start:r,end:n,bytes:A,view:xe(A),age:this.nextAge++}),e.currentPos+=A.length,e.currentPos>e.targetPos&&(e.targetPos=e.currentPos,this.checkQueuedReadsAgainstWorker(e));for(let a=0;a<e.pendingSlices.length;a++){let i=e.pendingSlices[a],s=Math.max(r,i.start),o=Math.min(n,i.start+i.bytes.length);s<o&&i.bytes.set(A.subarray(s-r,o-r),s-i.start);for(let c=0;c<i.holes.length;c++){let g=i.holes[c];r<=g.start&&n>g.start&&(g.start=n),g.end<=g.start&&(i.holes.splice(c,1),c--)}i.holes.length===0&&(i.resolve(i.bytes),e.pendingSlices.splice(a,1),a--)}for(let a=0;a<this.workers.length;a++){let i=this.workers[a];e===i||i.running||dc(r,n,i.currentPos,i.targetPos)&&(this.workers.splice(a,1),a--)}}supplyFileSize(e){C(this.fileSize===null),this.fileSize=e;for(let A of this.workers){A.targetPos=Math.min(A.targetPos,e),A.strictTarget=!0;for(let r=0;r<A.pendingSlices.length;r++){let n=A.pendingSlices[r];for(let a of n.holes)if(a.end>e){n.resolve(null),A.pendingSlices.splice(r,1),r--;break}}}for(let A=0;A<this.queuedReads.length;A++){let r=this.queuedReads[A];if(r.hole.start>=e){for(let n of r.pendingSlices)n.resolve(null);this.queuedReads.splice(A,1),A--}else if(r.hole.end>e){r.hole.end=e,r.strictTarget=!0;for(let n=0;n<r.pendingSlices.length;n++){let a=r.pendingSlices[n];a.start>=e&&(a.resolve(null),r.pendingSlices.splice(n,1),n--)}}}}signalWorkerStoppedRunning(e){e.running=!1,e.pendingSlices.length=0}onWorkerFinished(e){let A=this.workers.indexOf(e);C(A!==-1),e.running=!1,this.workers.splice(A,1),this.fileSize===null&&this.supplyFileSize(e.currentPos);for(let r of e.pendingSlices)r.resolve(null)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let A=ye(this.cache,e.start,r=>r.start)+1;if(A>0){let r=this.cache[A-1];if(r.end>=e.end)return;if(r.end>e.start){let n=new Uint8Array(e.end-r.start);n.set(r.bytes,0),n.set(e.bytes,e.start-r.start),this.currentCacheSize+=e.end-r.end,r.bytes=n,r.view=xe(n),r.end=e.end,A--,e=r}else this.cache.splice(A,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(A,0,e),this.currentCacheSize+=e.bytes.length;for(let r=A+1;r<this.cache.length;r++){let n=this.cache[r];if(e.end<=n.start)break;if(e.end>=n.end){this.cache.splice(r,1),this.currentCacheSize-=n.bytes.length,r--;continue}let a=new Uint8Array(n.end-e.start);a.set(e.bytes,0),a.set(n.bytes,n.start-e.start),this.currentCacheSize-=e.end-n.start,e.bytes=a,e.view=xe(a),e.end=n.end,this.cache.splice(r,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let r=0,n=this.cache[0];for(let a=1;a<this.cache.length;a++){let i=this.cache[a];i.age<n.age&&(r=a,n=i)}if(this.currentCacheSize-n.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(r,1),this.currentCacheSize-=n.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}};var nu=class extends Lt{constructor(e,A,r){if(super(),this._ref=null,e._disposed)throw new Error("Cannot create a slice of a disposed source.");this._baseSource=e,this._offset=A,this._length=r??null}_getFileSize(){let e=this._baseSource._getFileSize();return e===void 0?this._length!==null?this._length:void 0:e===null?this._length!==null?this._length:null:Tn(e-this._offset,0,this._length??1/0)}_read(e,A,r,n){if(this._length!==null&&A>this._length)return null;let a=this._baseSource._read(this._offset+e,this._offset+A,this._offset+r,this._offset+n),i=s=>s?(s.offset-=this._offset,s):null;return a instanceof Promise?a.then(i):i(a)}_dispose(){this._ref?.free()}ref(){return this._ref??=this._baseSource.ref(),super.ref()}};var vw=function(t,e,A){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var r,n;if(A){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],A&&(n=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");n&&(r=function(){try{n.call(this)}catch(a){return Promise.reject(a)}}),t.stack.push({value:e,dispose:r,async:A})}else A&&t.stack.push({async:!0});return e},Ow=function(t){return function(e){function A(i){e.error=e.hasError?new t(i,e.error,"An error was suppressed during disposal."):i,e.hasError=!0}var r,n=0;function a(){for(;r=e.stack.pop();)try{if(!r.async&&n===1)return n=0,e.stack.push(r),Promise.resolve().then(a);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(a,function(s){return A(s),a()})}else n|=1}catch(s){A(s)}if(n===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return a()}}(typeof SuppressedError=="function"?SuppressedError:function(t,e,A){var r=new Error(A);return r.name="SuppressedError",r.error=t,r.suppressed=e,r}),DC=/^0[xX][0-9a-fA-F]+$/,CC=/^data:.*;base64,/i,Ws=class extends eu{constructor(e,A,r,n){super(e.input,A,r),this.segments=[],this.nextLines=null,this.currentUpdateSegmentsPromise=null,this.streamHasEnded=!1,this.lastSegmentUpdateTime=-1/0,this.refreshInterval=5,this.demuxer=e,this.nextLines=n}runUpdateSegments(){return this.currentUpdateSegmentsPromise??=(async()=>{try{let e=this.getRemainingWaitTimeMs();e>0&&await Gl(e),this.lastSegmentUpdateTime=performance.now(),await this.updateSegments()}finally{this.currentUpdateSegmentsPromise=null}})()}getRemainingWaitTimeMs(){let e=performance.now()-this.lastSegmentUpdateTime,A=Math.max(0,1e3*this.refreshInterval-e);return A<=50?0:A}async updateSegments(){let e=this.nextLines;if(this.nextLines=null,!e){let w={stack:[],error:void 0,hasError:!1};try{let D=vw(w,await this.demuxer.input._getSourceUncached({path:this.path,isRoot:!1}),!1),E=await new tn(D.source).requestEntireFile();C(E),e=iu(E,E.length,{ignore:Xc})}catch(D){w.error=D,w.hasError=!0}finally{Ow(w)}}let A=!1,r=0,n=null,a=null,i=0,s=null,o=null,c=null,g=null,u=null,l=null,f=!1,p=_e(this.segments)??null,h=w=>{let D=w.indexOf("@"),b=Number(D===-1?w:w.slice(0,D));if(!Number.isInteger(b)||b<0)throw new Error(`Invalid #EXT-X-BYTERANGE length '${w}'.`);let E=null;if(D!==-1&&(E=Number(w.slice(D+1)),!Number.isInteger(E)||E<0))throw new Error(`Invalid #EXT-X-BYTERANGE offset '${w}'.`);return{length:b,offset:E}},y=w=>{i=w,p&&(C(p.sequenceNumber!==null),p.sequenceNumber<w&&(r=p.timestamp+p.duration,s=p.firstSegment,o=p.initSegment,u=p.lastProgramDateTimeSeconds,p=null))};for(let w=0;w<e.length;w++){let D=e[w];if(!A){if(D!=="#EXTM3U")throw new Error("Invalid M3U8 file; expected first line to be #EXTM3U.");A=!0;continue}if(!D.startsWith("#")){if(!p){if(n===null)throw new Error("Invalid M3U8 file; a segment must be preceded by an #EXTINF tag.");let b=a;if(b&&b.method==="AES-128"&&!b.iv){let k=new Uint8Array(SA),R=xe(k);R.setUint32(8,Math.floor(i/2**32)),R.setUint32(12,i),b={...b,iv:k}}let x={path:XA(this.path,D),offset:g?.offset??0,length:g?.length??null},S={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:s,sequenceNumber:i,location:x,duration:n,encryption:b,initSegment:o,lastProgramDateTimeSeconds:u};s??=S,r+=n,this.segments.push(S)}n=null,g===null?c=null:g=null,y(i+1)}if(D.startsWith(Ls)){if(p){f=!0;continue}f||(u===null&&i>0&&l!==null&&(r=i*l),f=!0);let b=D.slice(Ls.length),E=b.indexOf(","),x=E===-1?b:b.slice(0,E),S=Number(x);if(!Number.isFinite(S)||S<0)throw new Error(`Invalid #EXTINF tag duration '${x}'.`);n=S}else if(D.startsWith(id)){let b=new Sr(D.slice(id.length)),E=b.get("uri");if(!E)throw new Error("Invalid #EXT-X-MAP tag; missing URI attribute.");let x=b.get("byterange"),S=null;if(x!==null&&(S=h(x)),S&&S.offset===null)throw new Error("Invalid #EXT-X-MAP tag; BYTERANGE attribute must have a specified offset.");if(!p){let R={path:XA(this.path,E),offset:S?.offset??0,length:S?.length??null};if(a?.method==="AES-128"&&!a.iv)throw new Error("IV attribute must be set on #EXT-X-KEY tag preceding the #EXT-X-MAP tag.");o={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:null,sequenceNumber:null,location:R,duration:0,encryption:a,initSegment:null,lastProgramDateTimeSeconds:u}}n=null,g===null?c=null:g=null}else if(D.startsWith(ad)){let b=new Sr(D.slice(ad.length)),E=b.get("method");if(E==="NONE")a=null;else if(E==="AES-128"){let x=b.get("uri");if(!x)throw new Error("Invalid #EXT-X-KEY: AES-128 requires a URI attribute.");let S=null,k=b.get("iv");if(k){if(!DC.test(k))throw new Error(`Unsupported IV format '${k}'.`);let M=k.slice(2);M=M.padStart(SA*2,"0"),S=new Uint8Array(SA);for(let N=0;N<SA;N++){let V=-SA*2+N;S[N]=parseInt(M.slice(V,V+2),16)}}let R=b.get("keyformat")??"identity";if(R!=="identity")throw new Error("For AES-128 encryption, only the 'identity' KEYFORMAT is currently supported. If you think other formats should be supported, please raise an issue.");a={method:"AES-128",keyUri:XA(this.path,x),iv:S,keyFormat:R}}else if(E==="SAMPLE-AES"||E==="SAMPLE-AES-CTR"){let x=b.get("uri");if(!x)throw new Error(`Invalid #EXT-X-KEY: ${E} requires a URI attribute.`);if((b.get("keyformat")??"identity")==="identity")throw new Error("For SAMPLE-AES and SAMPLE-AES-CTR encryption, the 'identity' KEYFORMAT is not supported. If you think this format should be supported, please raise an issue.");let k=null;if(CC.test(x)){let R=x.indexOf(","),M=Ts(x.slice(R+1));if(M.length>=8&&M[4]===112&&M[5]===115&&M[6]===115&&M[7]===104){let N=xe(M).getUint32(0);k=xc(M.subarray(8,Math.min(N,M.length)))}}a={method:E,psshBox:k}}else throw new Error(`Unsupported encryption method '${E}'. If you think this method should be supported, please raise an issue.`)}else if(D.startsWith(sd)){let b=D.slice(sd.length),E=Number(b);if(!Number.isInteger(E)||E<0)throw new Error(`Invalid EXT-X-MEDIA-SEQUENCE value '${b}'.`);y(E)}else if(D.startsWith(od)){let b=h(D.slice(od.length));if(b.offset===null){if(c===null)throw new Error("Invalid M3U8 file; #EXT-X-BYTERANGE without offset requires a previous byte range.");b.offset=c}g=b,c=b.offset+b.length}else if(D.startsWith(cd)){if(p)continue;let b=D.slice(cd.length),E=Date.parse(b);if(!Number.isFinite(E))continue;let x=E/1e3;if(u===x)continue;if(u===null&&this.segments.length>0){let S=_e(this.segments),k=S.timestamp+S.duration,R=x-k;for(let M of this.segments)M.timestamp+=R,M.relativeToUnixEpoch=!0;r+=R}u=x,r=x}else if(D===xw)s=null;else if(D.startsWith(ud)){let b=D.slice(ud.length),E=Number(b);if(!Number.isFinite(E)||E<0)throw new Error(`Invalid EXT-X-TARGETDURATION value '${b}'.`);this.refreshInterval=E,l=E}else if(D===Sw){this.streamHasEnded=!0;break}else D.startsWith(gd)&&D.slice(gd.length).toLowerCase()==="vod"&&(this.streamHasEnded=!0)}if(!A)throw new Error("Invalid M3U8 file; no #EXTM3U header.")}async getFirstSegment(){return this.segments.length===0&&await this.runUpdateSegments(),this.segments[0]??null}async getSegmentAt(e,A){this.segments.length===0&&await this.runUpdateSegments();let r=!!A.skipLiveWait&&this.getRemainingWaitTimeMs()>0;for(;;){let n=ye(this.segments,e,i=>i.timestamp);if(n===-1)return null;if(n<this.segments.length-1||this.streamHasEnded||r)return this.segments[n];let a=this.segments[n];if(e<a.timestamp+a.duration)return a;await this.runUpdateSegments(),A.skipLiveWait&&(r=!0)}}async getNextSegment(e,A){let r=this.segments.indexOf(e);C(r!==-1);let n=r+1,a=!!A.skipLiveWait&&this.getRemainingWaitTimeMs()>0;for(;;){if(n<this.segments.length)return this.segments[n];if(this.streamHasEnded||a)return null;await this.runUpdateSegments(),A.skipLiveWait&&(a=!0)}}async getPreviousSegment(e){let A=this.segments.indexOf(e);return C(A!==-1),this.segments[A-1]??null}getInputForSegment(e){let A=e,r=this.inputCache.find(o=>o.segment===A);if(r)return r.age=this.nextInputCacheAge++,r.input;let n=null;(A.initSegment||A.firstSegment)&&(n=this.getInputForSegment(A.initSegment??A.firstSegment));let a={...this.input._formatOptions,isobmff:{...this.input._formatOptions.isobmff,resolveKeyId:this.input._formatOptions.isobmff?.resolveKeyId&&(o=>{if(!A.encryption||!(A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR")||!A.encryption.psshBox)return this.input._formatOptions.isobmff.resolveKeyId(o);let c=o.psshBoxes,{psshBox:g}=A.encryption;return(g.keyIds===null||g.keyIds.includes(o.keyId))&&!c.some(u=>Sc(u,g))&&(c=[...c,g]),this.input._formatOptions.isobmff.resolveKeyId({...o,psshBoxes:c})})}},i=new zn({source:new js(A.location.path,async o=>{C(o.isRoot);let c={...o,isRoot:!1},g,u=A.location.offset>0||A.location.length!==null;if(!A.encryption||A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR"){if(g=await this.input._getSourceCached(c),u){let f=g.source.slice(A.location.offset,A.location.length??void 0).ref();g.free(),g=f}}else if(A.encryption.method==="AES-128"){let l=A.encryption;C(l.iv);let f=await this.input._getSourceCached(c);if(u){let w=f.source.slice(A.location.offset,A.location.length??void 0).ref();f.free(),f=w}let p=new tn(f.source),h=ew(p,async()=>{let y={stack:[],error:void 0,hasError:!1};try{let w=vw(y,await this.input._getSourceCached({path:l.keyUri,isRoot:!1},_w),!1),b=await new tn(w.source).requestSlice(0,SA);if(!b)throw new Error("Invalid AES-128 key; expected at least 16 bytes of data.");return{key:te(b,SA),iv:l.iv}}catch(w){y.error=w,y.hasError=!0}finally{Ow(y)}},()=>{f.free()});g=new Ks(h).ref()}else C(!1);return g}),formats:this.input._formats.filter(o=>!(o instanceof ta)),initInput:n??void 0,formatOptions:a});if(i._onFormatDetermined=o=>{if((A.encryption?.method==="SAMPLE-AES"||A.encryption?.method==="SAMPLE-AES-CTR")&&!o._isIsobmff)throw new Error("The SAMPLE-AES and SAMPLE-AES-CTR encryption methods are currently only supported for ISOBMFF files.")},this.inputCache.push({segment:A,input:i,age:this.nextInputCacheAge++}),this.inputCache.length>4){let o=Mi(this.inputCache,c=>c.age);C(o!==-1),this.inputCache.splice(o,1)}return i}async getLiveRefreshInterval(){return this.getRemainingWaitTimeMs()===0&&await this.runUpdateSegments(),this.streamHasEnded?null:this.refreshInterval}};var su=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.trackBackings=null,this.internalTracks=null,this.segmentedInputs=[],this.hasMasterPlaylist=!0}readMetadata(){return this.metadataPromise??=(async()=>{C(this.input._rootSource instanceof Ar);let{rootPath:e}=this.input._rootSource,A=await this.input._reader.requestEntireFile();C(A);let r=iu(A,A.length,{ignore:Xc}),n=[],a=[];for(let u=1;u<r.length;u++){let l=r[u];if(l.startsWith(Ad)){let f=u,p=r[++u];if(p===void 0)throw new Error("Incorrect M3U8 file; a line must follow the #EXT-X-STREAM-INF tag.");let h=XA(e,p),y=new Sr(l.slice(Ad.length));if(y.getAsNumber("bandwidth")===null)throw new Error("Invalid M3U8 file; #EXT-X-STREAM-INF tag requires a BANDWIDTH attribute with a valid numerical value.");n.push({fullPath:h,attributes:y,lineNumber:f,hasOnlyKeyPackets:!1})}else if(l.startsWith(rd)){let f=new Sr(l.slice(rd.length)),p=f.get("uri");if(p===null)throw new Error("Invalid M3U8 file; #EXT-X-I-FRAME-STREAM-INF tag requires a URI attribute.");if(f.getAsNumber("bandwidth")===null)throw new Error("Invalid M3U8 file; #EXT-X-I-FRAME-STREAM-INF tag requires a BANDWIDTH attribute with a valid numerical value.");let y=XA(e,p);n.push({fullPath:y,attributes:f,lineNumber:u,hasOnlyKeyPackets:!0})}else if(l.startsWith(nd)){let f=new Sr(l.slice(nd.length));if(f.get("type")===null)throw new Error("Invalid M3U8 file; #EXT-X-MEDIA tag requires a TYPE attribute.");if(f.get("group-id")===null)throw new Error("Invalid M3U8 file; #EXT-X-MEDIA tag requires a GROUP-ID attribute.");let y=null,w=f.get("uri");w!==null&&(y=XA(e,w)),a.push({fullPath:y,attributes:f,lineNumber:u})}else if(l!==Yw){if(l.startsWith(Ls)){let f=new Ws(this,e,null,r);this.segmentedInputs=[f],this.hasMasterPlaylist=!1,this.trackBackings=await f.getTrackBackings();return}}}let i=[...new Set(a.filter(u=>u.attributes.get("type").toLowerCase()==="video").map(u=>u.attributes.get("group-id")))],s=[...new Set(a.filter(u=>u.attributes.get("type").toLowerCase()==="audio").map(u=>u.attributes.get("group-id")))],o=await Promise.all(n.map(async(u,l)=>{let f=[],p=u.attributes.get("codecs"),h;if(p)h=p.split(",").map(M=>M.trim());else{let N=await this.getSegmentedInputForPath(u.fullPath).getTrackBackings(),V=await Promise.all(N.map(async F=>({track:F,codec:await F.getCodec()})));h=await Promise.all(V.filter(F=>F.codec!==null).map(F=>F.track.getDecoderConfig().then(K=>K.codec)))}let y=u.attributes.get("video"),w=u.attributes.get("audio"),D=h.some(M=>_t.includes(Vr(M))),b=h.some(M=>tr.includes(Vr(M)));if(y!==null&&!D){if(!i.includes(y))throw new Error(`Invalid M3U8 file; variant stream references video group "${y}" which is not defined in any #EXT-X-MEDIA tags.`);let M=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===y&&F.toLowerCase()==="video"});e:if(M){let N=M.attributes.get("uri");if(N===null)break e;let V=XA(e,N),L=(await this.getSegmentedInputForPath(V).getTrackBackings()).find(W=>W.getType()==="video");if(!L||await L.getCodec()===null)break e;let _=await L.getDecoderConfig().then(W=>W?.codec??null);C(_!==null),h.push(_)}}if(w!==null&&!b){if(!s.includes(w))throw new Error(`Invalid M3U8 file; variant stream references audio group "${w}" which is not defined in any #EXT-X-MEDIA tags.`);let M=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===w&&F.toLowerCase()==="audio"});e:if(M){let N=M.attributes.get("uri");if(N===null)break e;let V=XA(e,N),L=(await this.getSegmentedInputForPath(V).getTrackBackings()).find(W=>W.getType()==="audio");if(!L||await L.getCodec()===null)break e;let _=await L.getDecoderConfig().then(W=>W?.codec??null);C(_!==null),h.push(_)}}h=[...new Set(h)];let E=null,x=null,S=u.attributes.getAsNumber("bandwidth");C(S!==null);let k=u.attributes.getAsNumber("average-bandwidth"),R=u.attributes.get("name");for(let M of h){let N=Vr(M);if(N!==null){if(_t.includes(N)){if(E!==null)throw new Error("Unsupported M3U8 file; multiple video codecs found in the CODECS attribute of a variant stream.");E=M;let V=u.attributes.get("video");if(V===null){let F=u.attributes.get("resolution"),K=null,L=null;if(F){let _=F.match(/^(\d+)x(\d+)$/);_&&(K=Number(_[1]),L=Number(_[2]))}f.push({id:-1,demuxer:this,backingTrack:null,default:!0,autoselect:!0,languageCode:Xe,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:E,pairingMask:1n<<BigInt(l),peakBitrate:S,averageBitrate:k,name:R,hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:K,height:L}})}else{if(!i.includes(V))throw new Error(`Invalid M3U8 file; variant stream references video group "${V}" which is not defined in any #EXT-X-MEDIA tags.`);for(let F of a){let K=F.attributes.get("group-id"),L=F.attributes.get("type");if(K!==V||L.toLowerCase()!=="video")continue;let _=F.attributes.get("resolution")??u.attributes.get("resolution"),W=null,pe=null;if(_){let Ae=_.match(/^(\d+)x(\d+)$/);Ae&&(W=Number(Ae[1]),pe=Number(Ae[2]))}f.push({id:-1,demuxer:this,backingTrack:null,default:au(F.attributes),autoselect:au(F.attributes)||Mw(F.attributes),languageCode:Rw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:E,pairingMask:1n<<BigInt(l),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:W,height:pe}})}}}else if(tr.includes(N)){if(x!==null)throw new Error("Unsupported M3U8 file; multiple audio codecs found in the CODECS attribute of a variant stream.");x=M;let V=u.attributes.get("audio");if(V===null){let F=u.attributes.get("channels"),K=F!==null?Number(F.split("/")[0]):null;f.push({id:-1,demuxer:this,backingTrack:null,default:!0,autoselect:!0,languageCode:Xe,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:x,pairingMask:1n<<BigInt(l),peakBitrate:S,averageBitrate:k,name:R,hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"audio",numberOfChannels:K!==null&&Number.isInteger(K)&&K>0?K:null}})}else{if(!s.includes(V))throw new Error(`Invalid M3U8 file; variant stream references audio group "${V}" which is not defined in any #EXT-X-MEDIA tags.`);for(let F of a){let K=F.attributes.get("group-id"),L=F.attributes.get("type");if(K!==V||L.toLowerCase()!=="audio")continue;let _=F.attributes.get("channels")??u.attributes.get("channels"),W=_!==null?Number(_.split("/")[0]):null;f.push({id:-1,demuxer:this,backingTrack:null,default:au(F.attributes),autoselect:au(F.attributes)||Mw(F.attributes),languageCode:Rw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:x,pairingMask:1n<<BigInt(l),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"audio",numberOfChannels:W!==null&&Number.isInteger(W)&&W>0?W:null}})}}}}}return f})),c=[],g=u=>{let l=c.find(f=>f.fullPath===u.fullPath&&f.info.type===u.info.type);l?(l.pairingMask|=u.pairingMask,l.default||=u.default,l.autoselect||=u.autoselect,l.lineNumber=Math.min(l.lineNumber,u.lineNumber),u.peakBitrate!==null&&(l.peakBitrate=Math.max(l.peakBitrate??-1/0,u.peakBitrate)),u.averageBitrate!==null&&(l.averageBitrate=Math.max(l.averageBitrate??-1/0,u.averageBitrate)),l.languageCode===Xe&&(l.languageCode=u.languageCode)):(u.id=c.length+1,c.push(u))};for(let u of o)for(let l of u)g(l);c.sort((u,l)=>u.lineNumber-l.lineNumber),this.trackBackings=[];for(let u of c)u.info.type==="video"?this.trackBackings.push(new cu(u)):this.trackBackings.push(new uu(u));this.internalTracks=c})()}async getTrackBackings(){return await this.readMetadata(),C(this.trackBackings),this.trackBackings}getSegmentedInputForPath(e){let A=this.segmentedInputs.find(n=>n.path===e);if(A)return A;let r=null;return this.internalTracks&&(r=this.internalTracks.filter(a=>a.fullPath===e).map(a=>({id:a.id,type:a.info.type}))),A=new Ws(this,e,r,null),this.segmentedInputs.push(A),A}async getMetadataTags(){return{}}async getMimeType(){return Jc}dispose(){if(this.segmentedInputs){for(let e of this.segmentedInputs)e.dispose();this.segmentedInputs.length=0}}},ou=class{constructor(e){this.internalTrack=e,this.hydrationPromise=null}hydrate(){return this.hydrationPromise??=(async()=>{let e=this.internalTrack.demuxer.getSegmentedInputForPath(this.internalTrack.fullPath),A=null,n=(await e.getTrackBackings()).filter(a=>a.getType()===this.getType());if(n.length===1)A=n[0];else if(this instanceof cu){for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}else{C(this instanceof uu);for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}if(!A)throw new Error("Could not find matching track in underlying media data.");this.internalTrack.backingTrack=A})()}delegate(e){return this.internalTrack.backingTrack?e():this.hydrate().then(e)}getCodec(){throw new Error("Not implemented on base class.")}getDisposition(){return{...Ct,default:this.internalTrack.autoselect,primary:this.internalTrack.default}}getId(){return this.internalTrack.id}getPairingMask(){return this.internalTrack.pairingMask}getInternalCodecId(){return null}getLanguageCode(){return this.internalTrack.languageCode}getName(){return this.internalTrack.name}getNumber(){C(this.internalTrack.demuxer.internalTracks);let e=this.internalTrack.info.type,A=0;for(let r of this.internalTrack.demuxer.internalTracks)if(r.info.type===e&&A++,r===this.internalTrack)break;return A}getTimeResolution(){return this.delegate(()=>this.internalTrack.backingTrack.getTimeResolution())}isRelativeToUnixEpoch(){return this.delegate(()=>this.internalTrack.backingTrack.isRelativeToUnixEpoch())}getBitrate(){return this.internalTrack.peakBitrate}getAverageBitrate(){return this.internalTrack.averageBitrate}async getDurationFromMetadata(e){return await this.hydrate(),this.internalTrack.backingTrack.getDurationFromMetadata(e)}async getLiveRefreshInterval(){return await this.hydrate(),this.internalTrack.backingTrack.getLiveRefreshInterval()}getHasOnlyKeyPackets(){return this.internalTrack.hasOnlyKeyPackets||null}async getFirstPacket(e){return await this.hydrate(),this.internalTrack.backingTrack.getFirstPacket(e)}async getPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getPacket(e,A)}async getKeyPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getKeyPacket(e,A)}async getNextPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getNextPacket(e,A)}async getNextKeyPacket(e,A){return await this.hydrate(),this.internalTrack.backingTrack.getNextKeyPacket(e,A)}},cu=class extends ou{constructor(e){super(e)}get backingVideoTrack(){return this.internalTrack.backingTrack}getType(){return"video"}getCodec(){return Vr(this.internalTrack.fullCodecString)}getCodedWidth(){return this.delegate(()=>this.backingVideoTrack.getCodedWidth())}getCodedHeight(){return this.delegate(()=>this.backingVideoTrack.getCodedHeight())}getSquarePixelWidth(){return this.delegate(()=>this.backingVideoTrack.getSquarePixelWidth())}getSquarePixelHeight(){return this.delegate(()=>this.backingVideoTrack.getSquarePixelHeight())}getMetadataDisplayWidth(){return this.backingVideoTrack?null:this.internalTrack.info.width}getMetadataDisplayHeight(){return this.backingVideoTrack?null:this.internalTrack.info.height}getRotation(){return this.delegate(()=>this.backingVideoTrack.getRotation())}async getColorSpace(){return await this.hydrate(),this.backingVideoTrack.getColorSpace()}async canBeTransparent(){return await this.hydrate(),this.backingVideoTrack.canBeTransparent()}getMetadataCodecParameterString(){return this.backingVideoTrack?null:this.internalTrack.fullCodecString}async getDecoderConfig(){return await this.hydrate(),this.backingVideoTrack.getDecoderConfig()}},uu=class extends ou{constructor(e){super(e)}get backingAudioTrack(){return this.internalTrack.backingTrack}getType(){return"audio"}getCodec(){return Vr(this.internalTrack.fullCodecString)}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels!==null?this.internalTrack.info.numberOfChannels:this.delegate(()=>this.backingAudioTrack.getNumberOfChannels())}getSampleRate(){return this.delegate(()=>this.backingAudioTrack.getSampleRate())}getMetadataCodecParameterString(){return this.backingAudioTrack?null:this.internalTrack.fullCodecString}async getDecoderConfig(){return await this.hydrate(),this.backingAudioTrack.getDecoderConfig()}},au=t=>{let e=t.get("default");if(e===null)return!1;let A=e.toUpperCase();if(A==="YES")return!0;if(A==="NO")return!1;throw new Error(`Invalid M3U8 file; #EXT-X-MEDIA DEFAULT attribute must be YES or NO, got "${e}".`)},Mw=t=>{let e=t.get("autoselect");if(e===null)return!1;let A=e.toUpperCase();if(A==="YES")return!0;if(A==="NO")return!1;throw new Error(`Invalid M3U8 file; #EXT-X-MEDIA AUTOSELECT attribute must be YES or NO, got "${e}".`)},Rw=t=>{if(t===null)return Xe;let e=t.split("-")[0];return e||Xe};var jt=class{constructor(){this._isIsobmff=!1}},Zs=class extends jt{constructor(){super(...arguments),this._isIsobmff=!0}async _getMajorBrand(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return null;A.skip(4);let r=Le(A,4);return r!=="ftyp"&&r!=="styp"?null:Le(A,4)}_createDemuxer(e){return new Oc(e)}},gu=class extends Zs{async _canReadInput(e){let A=await this._getMajorBrand(e);if(A!==null)return A!=="qt ";let r=e._reader.requestSlice(4,4);if(r instanceof Promise&&(r=await r),!r)return!1;let n=Le(r,4);return n==="moof"||n==="sidx"}get name(){return"MP4"}get mimeType(){return"video/mp4"}},lu=class extends Zs{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},$s=class extends jt{async isSupportedEBMLOfDocType(e,A){let r=e._reader.requestSlice(0,vA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=zl(r);if(n===null||n<1||n>8||be(r,n)!==j.EBML)return!1;let i=Nl(r);if(typeof i!="number")return!1;let s=e._reader.requestSlice(r.filePos,i);if(s instanceof Promise&&(s=await s),!s)return!1;let o=r.filePos;for(;s.filePos<=o+i-qt;){let c=OA(s);if(!c)break;let{id:g,size:u}=c,l=s.filePos;if(u===void 0)return!1;switch(g){case j.EBMLVersion:if(be(s,u)!==1)return!1;break;case j.EBMLReadVersion:if(be(s,u)!==1)return!1;break;case j.DocType:if(Xr(s,u)!==A)return!1;break;case j.DocTypeVersion:if(be(s,u)>4)return!1;break}s.filePos=l+u}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Uc(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},du=class extends $s{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},fu=class extends jt{async _canReadInput(e){let A=0;for(;;){let u=e._reader.requestSlice(A,eA);if(u instanceof Promise&&(u=await u),!u)break;let l=_A(u);if(!l)break;A=u.filePos+l.size}let r=await Ns(e._reader,A,A+4096);if(!r)return!1;let n=r.header,a=wc(n.mpegVersionId,n.channel),i=e._reader.requestSlice(r.startPos+a,4);if(i instanceof Promise&&(i=await i),!i)return!1;let s=J(i);if(s===hc||s===pc)return!0;A=r.startPos+r.header.totalSize;let c=await Ns(e._reader,A,A+4);if(!c)return!1;let g=c.header;return!(n.channel!==g.channel||n.sampleRate!==g.sampleRate)}_createDemuxer(e){return new Lc(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},mu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return!1;let r=Le(A,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(A.skip(4),Le(A,4)==="WAVE")}_createDemuxer(e){return new Vc(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},hu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?Le(A,4)==="OggS":!1}_createDemuxer(e){return new jc(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},pu=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?Le(A,4)==="fLaC":!1}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new Wc(e)}},wu=class extends jt{async _canReadInput(e){let A=0;for(;;){let i=e._reader.requestSlice(A,eA);if(i instanceof Promise&&(i=await i),!i)break;let s=_A(i);if(!s)break;A=i.filePos+s.size}let r=e._reader.requestSliceRange(A,Mn,MA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=RA(r);if(!n||(A+=n.frameLength,r=e._reader.requestSliceRange(A,Mn,MA),r instanceof Promise&&(r=await r),!r))return!1;let a=RA(r);return a?n.objectType===a.objectType&&n.samplingFrequencyIndex===a.samplingFrequencyIndex&&n.channelConfiguration===a.channelConfiguration:!1}_createDemuxer(e){return new Kc(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},Bu=class extends jt{async _canReadInput(e){let A=205,r=e._reader.requestSlice(0,A);if(r instanceof Promise&&(r=await r),!r)return!1;let n=te(r,A);return n[0]===71&&n[188]===71||n[0]===71&&n[204]===71?!0:n[4]===71&&n[196]===71}_createDemuxer(e){return new Zc(e)}get name(){return"MPEG Transport Stream"}get mimeType(){return"video/MP2T"}},ta=class extends jt{async _canReadInput(e){let A=e._reader.requestSlice(0,7);if(A instanceof Promise&&(A=await A),!A||!(Le(A,7)==="#EXTM3U"))return!1;if(!(e._rootSource instanceof Ar))throw new TypeError("HLS inputs require `InputOptions.source` to be a PathedSource or a ref to one.");return e._rootSource._usedForHls=!0,!0}_createDemuxer(e){return new su(e)}get name(){return"HTTP Live Streaming (HLS)"}get mimeType(){return Jc}},Qw=new gu,Fw=new lu,zw=new $s,Nw=new du,Hw=new fu,Uw=new mu,qw=new hu,Lw=new wu,jw=new pu,Vw=new Bu,Kw=new ta,hd=[Kw,Qw,Fw,zw,Nw,Uw,qw,jw,Hw,Lw,Vw];var Ww=(t,e)=>{if(!t||typeof t!="object")throw new TypeError(`${e}, when provided, must be an object.`);if(t.isobmff!==void 0){if(!t.isobmff||typeof t.isobmff!="object")throw new TypeError(`${e}.isobmff, when provided, must be an object.`);if(t.isobmff.resolveKeyId!==void 0&&typeof t.isobmff.resolveKeyId!="function")throw new TypeError(`${e}.isobmff.resolveKeyId, when provided, must be a function.`)}};var bC=function(t,e,A){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var r,n;if(A){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],A&&(n=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");n&&(r=function(){try{n.call(this)}catch(a){return Promise.reject(a)}}),t.stack.push({value:e,dispose:r,async:A})}else A&&t.stack.push({async:!0});return e},EC=function(t){return function(e){function A(i){e.error=e.hasError?new t(i,e.error,"An error was suppressed during disposal."):i,e.hasError=!0}var r,n=0;function a(){for(;r=e.stack.pop();)try{if(!r.async&&n===1)return n=0,e.stack.push(r),Promise.resolve().then(a);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(a,function(s){return A(s),a()})}else n|=1}catch(s){A(s)}if(n===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return a()}}(typeof SuppressedError=="function"?SuppressedError:function(t,e,A){var r=new Error(A);return r.name="SuppressedError",r.error=t,r.suppressed=e,r});_i();var Zw=-1/0,$w=-1/0,pd=null;typeof FinalizationRegistry<"u"&&(pd=new FinalizationRegistry(t=>{let e=performance.now();t.type==="video"?(e-Zw>=1e3&&(console.error("A VideoSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your VideoSamples as soon as you're done using them."),Zw=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-$w>=1e3&&(console.error("An AudioSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your AudioSamples as soon as you're done using them."),$w=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var Yr=class{constructor(){this._referenceCount=0,this._lastAllocationBuffer=null}},wd=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],TC=new Set(wd),QA=class t{get codedWidth(){return this.visibleRect.width}get codedHeight(){return this.visibleRect.height}get displayWidth(){return this.rotation%180===0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this.rotation%180===0?this.squarePixelHeight:this.squarePixelWidth}get microsecondTimestamp(){return Math.trunc(qr*this.timestamp)}get microsecondDuration(){return Math.trunc(qr*this.duration)}get hasAlpha(){return this.format&&this.format.includes("A")}constructor(e,A){if(this._closed=!1,e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e)){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.format===void 0||!TC.has(A.format))throw new TypeError("init.format must be one of: "+wd.join(", "));if(!Number.isInteger(A.codedWidth)||A.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(A.codedHeight)||A.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(A.layout!==void 0){if(!Array.isArray(A.layout))throw new TypeError("init.layout, when provided, must be an array.");for(let n of A.layout){if(!n||typeof n!="object"||Array.isArray(n))throw new TypeError("Each entry in init.layout must be an object.");if(!Number.isInteger(n.offset)||n.offset<0)throw new TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(n.stride)||n.stride<0)throw new TypeError("plane.stride must be a non-negative integer.")}}if(A.visibleRect!==void 0&&kl(A.visibleRect,"init.visibleRect"),A.displayWidth!==void 0&&(!Number.isInteger(A.displayWidth)||A.displayWidth<=0))throw new TypeError("init.displayWidth, when provided, must be a positive integer.");if(A.displayHeight!==void 0&&(!Number.isInteger(A.displayHeight)||A.displayHeight<=0))throw new TypeError("init.displayHeight, when provided, must be a positive integer.");if(A.displayWidth!==void 0!=(A.displayHeight!==void 0))throw new TypeError("init.displayWidth and init.displayHeight must be either both provided or both omitted.");this._data=A._doNotCopy?ft(e):ft(e).slice(),this._layout=A.layout??xC(A.format,A.codedWidth,A.codedHeight),this.format=A.format,this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0;let r=A.colorSpace??null;r===null&&(this.format==="RGBA"||this.format==="RGBX"||this.format==="BGRA"||this.format==="BGRX"?r={primaries:"bt709",transfer:"iec61966-2-1",matrix:"rgb",fullRange:!0}:r={primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),this.colorSpace=new eo(r),this.visibleRect={left:A.visibleRect?.left??0,top:A.visibleRect?.top??0,width:A.visibleRect?.width??A.codedWidth,height:A.visibleRect?.height??A.codedHeight},A.displayWidth!==void 0?(this.squarePixelWidth=this.rotation%180===0?A.displayWidth:A.displayHeight,this.squarePixelHeight=this.rotation%180===0?A.displayHeight:A.displayWidth):(this.squarePixelWidth=this.visibleRect.width,this.squarePixelHeight=this.visibleRect.height)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(A?.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(A?.timestamp!==void 0&&!Number.isFinite(A?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(A?.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");A?.visibleRect!==void 0&&kl(A.visibleRect,"init.visibleRect"),this._data=e,this._layout=null,this.format=e.format,this.visibleRect={left:e.visibleRect?.x??0,top:e.visibleRect?.y??0,width:e.visibleRect?.width??e.codedWidth,height:e.visibleRect?.height??e.codedHeight},this.rotation=A?.rotation??0,this.squarePixelWidth=e.displayWidth,this.squarePixelHeight=e.displayHeight,this.timestamp=A?.timestamp??e.timestamp/1e6,this.duration=A?.duration??(e.duration??0)/1e6,this.colorSpace=new eo(e.colorSpace)}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new t(new VideoFrame(e,{timestamp:Math.trunc(A.timestamp*qr),duration:Math.trunc((A.duration??0)*qr)||void 0}),A);let r=0,n=0;if("naturalWidth"in e?(r=e.naturalWidth,n=e.naturalHeight):"videoWidth"in e?(r=e.videoWidth,n=e.videoHeight):"width"in e&&(r=Number(e.width),n=Number(e.height)),!r||!n)throw new TypeError("Could not determine dimensions.");let a=new OffscreenCanvas(r,n),i=a.getContext("2d",{alpha:Cs(),willReadFrequently:!0});if(!i)throw new Error("OffscreenCanvas must have support for the '2d' context in order to create a VideoSample from this data.");i.drawImage(e,0,0),this._data=a,this._layout=null,this.format="RGBX",this.visibleRect={left:0,top:0,width:r,height:n},this.squarePixelWidth=r,this.squarePixelHeight=n,this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0,this.colorSpace=new eo({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else if(e instanceof Yr){if(!A||typeof A!="object")throw new TypeError("init must be an object.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(A.timestamp))throw new TypeError("init.timestamp must be a number.");if(A.duration!==void 0&&(!Number.isFinite(A.duration)||A.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(this._data=e,e._referenceCount++,this.format=e.getFormat(),this.format!==null&&!wd.includes(this.format))throw new TypeError("getFormat() must return a VideoSamplePixelFormat or null.");if(this.visibleRect={left:0,top:0,width:e.getCodedWidth(),height:e.getCodedHeight()},!Number.isInteger(this.visibleRect.width)||this.visibleRect.width<=0)throw new TypeError("getCodedWidth() must return a positive integer.");if(!Number.isInteger(this.visibleRect.height)||this.visibleRect.height<=0)throw new TypeError("getCodedHeight() must return a positive integer.");if(this.squarePixelWidth=e.getSquarePixelWidth(),!Number.isInteger(this.squarePixelWidth)||this.squarePixelWidth<=0)throw new TypeError("getSquarePixelWidth() must return a positive integer.");if(this.squarePixelHeight=e.getSquarePixelHeight(),!Number.isInteger(this.squarePixelHeight)||this.squarePixelHeight<=0)throw new TypeError("getSquarePixelHeight() must return a positive integer.");this.rotation=A.rotation??0,this.timestamp=A.timestamp,this.duration=A.duration??0,this.colorSpace=e.getColorSpace()}else throw new TypeError("Invalid data type: Must be a BufferSource, CanvasImageSource, or VideoSampleResource.");this.encodeOptions=A?.encodeOptions??{},this.pixelAspectRatio=Sn({num:this.squarePixelWidth*this.codedHeight,den:this.squarePixelHeight*this.codedWidth}),pd?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw new Error("VideoSample is closed.");return C(this._data!==null),this._data instanceof Yr?new t(this._data,{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):Xs(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):this._data instanceof Uint8Array?(C(this._layout),new t(this._data,{format:this.format,layout:this._layout,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight,encodeOptions:this.encodeOptions,_doNotCopy:!0})):new t(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight,encodeOptions:this.encodeOptions})}close(){this._closed||(pd?.unregister(this),this._data instanceof Yr?(this._data._referenceCount--,this._data._referenceCount===0&&this._data.close()):Xs(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(Xw(e),this._closed)throw new Error("VideoSample is closed.");if((e.format??this.format)==null)throw new Error("Cannot get allocation size when format is null.");return Xs(this._data)?this._data.allocationSize(e):eB(this,e).allocationSize}async copyTo(e,A={}){if(!Ps(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(Xw(A),this._closed)throw new Error("VideoSample is closed.");if((A.format??this.format)==null)throw new Error("Cannot copy video sample data when format is null.");if(C(this._data!==null),Xs(this._data))return this._data.copyTo(e,A);if(A.format&&!["RGBA","RGBX","BGRA","BGRX"].includes(this.format)&&["RGBA","RGBX","BGRA","BGRX"].includes(A.format))if(this._data instanceof Yr){let c={stack:[],error:void 0,hasError:!1};try{let g=bC(c,await this._data.toRgbSample({timestamp:this.timestamp,duration:this.duration,rotation:this.rotation},A.colorSpace??"srgb"),!1);if(!(g instanceof t))throw new TypeError("toRgbSample() must return a VideoSample.");if(!["RGBA","RGBX","BGRA","BGRX"].includes(g.format))throw new Error(`Sample returned by toRgbSample was expected to have an RGB format, got '${g.format}' instead.`);return await g.copyTo(e,A)}catch(g){c.error=g,c.hasError=!0}finally{EC(c)}}else{if(typeof VideoFrame>"u")throw new Error("For this sample, converting from a non-RGB to an RGB format requires VideoFrame to be defined.");let c=this.toVideoFrame(),g=await c.copyTo(e,A);return c.close(),g}let r=eB(this,A);C(this.format);let n=ft(e);if(n.byteLength<r.allocationSize)throw new TypeError(`Destination buffer too small. Required: ${r.allocationSize}, Available: ${n.byteLength}`);let a=Pu(this.format),i;if(this._data instanceof Yr){let c=this._data.getDataPlanes();if(c instanceof Promise&&(c=await c),!Array.isArray(c)||c.some(g=>!(g.data instanceof Uint8Array)||!Number.isInteger(g.stride)||g.stride<0))throw new TypeError('getDataPlanes() must return an array of objects with a Uint8Array "data" property and a non-negative integer "stride" property.');i=c}else if(this._data instanceof Uint8Array)C(this._layout),C(this._layout.length===a.length),i=this._layout.map((c,g)=>{let u=Math.ceil(this.codedHeight/a[g].heightDivisor);return{data:this._data.subarray(c.offset,c.offset+c.stride*u),stride:c.stride}});else{let g=this._data.getContext("2d");C(g);let u=g.getImageData(0,0,this.codedWidth,this.codedHeight);i=[{data:ft(u.data),stride:4*this.codedWidth}]}let s=[],o=a.length;for(let c=0;c<o;c++){let g=r.computedLayouts[c],u=i[c].stride,l=i[c].data,f=g.sourceTop*u;f+=g.sourceLeftBytes;let p=g.destinationOffset,h=g.sourceWidthBytes,y={offset:p,stride:g.destinationStride};for(let w=0;w<g.sourceHeight;w++){if(f+h>l.byteLength)throw new Error("Source buffer OOB read.");if(p+h>n.byteLength)throw new Error("Destination buffer OOB write.");let D=l.subarray(f,f+h);n.set(D,p),f+=u,p+=g.destinationStride}s.push(y)}if(A.format!==void 0){let c=this.format.startsWith("RGB")!==A.format.startsWith("RGB"),g=this.format.includes("X")&&A.format.includes("A");if(c||g)for(let u=0;u<r.allocationSize;u+=4){if(c){let l=n[u],f=n[u+2];n[u]=f,n[u+2]=l}g&&(n[u+3]=255)}}return s}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");if(C(this._data!==null),this._data instanceof Yr){if(this.format===null)throw new Error("Cannot convert a VideoSampleResource-backed VideoSample to VideoFrame if format is null.");let e=this._data.getDataPlanes();if(e instanceof Promise)throw new Error("Cannot convert a VideoSampleResource-backed VideoSample to VideoFrame if getDataPlanes() returns a promise.");let A=e.reduce((i,s)=>i+s.data.byteLength,0),r=new Uint8Array(A),n=0,a=[];for(let i of e)r.set(i.data,n),a.push(n),n+=i.data.byteLength;return new VideoFrame(r,{format:this.format,layout:e.map((i,s)=>({offset:a[s],stride:i.stride})),codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace,displayWidth:this.squarePixelWidth,displayHeight:this.squarePixelHeight})}else return Xs(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0,colorSpace:this.colorSpace,displayWidth:this.squarePixelWidth,displayHeight:this.squarePixelHeight}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0})}draw(e,A,r,n,a,i,s,o,c){let g=0,u=0,l=this.displayWidth,f=this.displayHeight,p=0,h=0,y=this.displayWidth,w=this.displayHeight;if(i!==void 0?(g=A,u=r,l=n,f=a,p=i,h=s,o!==void 0?(y=o,w=c):(y=l,w=f)):(p=A,h=r,n!==void 0&&(y=n,w=a)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(g))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(l)||l<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(p))throw new TypeError("dx must be a number.");if(!Number.isFinite(h))throw new TypeError("dy must be a number.");if(!Number.isFinite(y)||y<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(w)||w<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");({sx:g,sy:u,sWidth:l,sHeight:f}=this._rotateSourceRegion(g,u,l,f,this.rotation));let D=this.toCanvasImageSource();e.save();let b=p+y/2,E=h+w/2;e.translate(b,E),e.rotate(this.rotation*Math.PI/180);let x=this.rotation%180===0?1:y/w;e.scale(1/x,x),e.drawImage(D,g,u,l,f,-y/2,-w/2,y,w),e.restore()}drawWithFit(e,A){if(!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!A||typeof A!="object")throw new TypeError("options must be an object.");if(!["fill","contain","cover"].includes(A.fit))throw new TypeError("options.fit must be 'fill', 'contain', or 'cover'.");if(A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180, or 270.");A.crop!==void 0&&to(A.crop,"options.");let r=e.canvas.width,n=e.canvas.height,a=A.rotation??this.rotation,[i,s]=a%180===0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth],o=A.crop;o&&(o=Bd(o,i,s));let c,g,u,l,{sx:f,sy:p,sWidth:h,sHeight:y}=this._rotateSourceRegion(A.crop?.left??0,A.crop?.top??0,A.crop?.width??i,A.crop?.height??s,a);if(A.fit==="fill")c=0,g=0,u=r,l=n;else{let[D,b]=A.crop?[A.crop.width,A.crop.height]:[i,s],E=A.fit==="contain"?Math.min(r/D,n/b):Math.max(r/D,n/b);u=D*E,l=b*E,c=(r-u)/2,g=(n-l)/2}e.save();let w=a%180===0?1:u/l;e.translate(r/2,n/2),e.rotate(a*Math.PI/180),e.scale(1/w,w),e.translate(-r/2,-n/2),e.drawImage(this.toCanvasImageSource(),f,p,h,y,c,g,u,l),e.restore()}_rotateSourceRegion(e,A,r,n,a){return a===90?[e,A,r,n]=[A,this.squarePixelHeight-e-r,n,r]:a===180?[e,A]=[this.squarePixelWidth-e-r,this.squarePixelHeight-A-n]:a===270&&([e,A,r,n]=[this.squarePixelWidth-A-n,e,n,r]),{sx:e,sy:A,sWidth:r,sHeight:n}}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(C(this._data!==null),this._data instanceof Yr||this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}async transform(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.width!==void 0&&(!Number.isInteger(e.width)||e.width<=0))throw new TypeError("options.width, when provided, must be a positive integer.");if(e.height!==void 0&&(!Number.isInteger(e.height)||e.height<=0))throw new TypeError("options.height, when provided, must be a positive integer.");if(e.roundDimensionsTo!==void 0&&(!Number.isInteger(e.roundDimensionsTo)||e.roundDimensionsTo<=0))throw new TypeError("options.roundDimensionsTo, when provided, must be a positive integer.");if(e.fit!==void 0&&!["fill","contain","cover"].includes(e.fit))throw new TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(e.width!==void 0&&e.height!==void 0&&e.fit===void 0)throw new TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(e.rotate!==void 0&&![0,90,180,270].includes(e.rotate))throw new TypeError("options.rotate, when provided, must be 0, 90, 180 or 270.");if(e.crop!==void 0&&to(e.crop,"options."),e.alpha!==void 0&&!["keep","discard"].includes(e.alpha))throw new TypeError("options.alpha, when provided, must be 'keep' or 'discard'.");let A=Yi(this.rotation+(e.rotate??0)),[r,n]=A%180===0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth],a=e.crop;a&&(a=Bd(a,r,n));let i=a?a.width:r,s=a?a.height:n,o=i/s,c,g;e.width!==void 0&&e.height===void 0?(c=e.width,g=c/o):e.width===void 0&&e.height!==void 0?(g=e.height,c=g*o):e.width!==void 0&&e.height!==void 0?(c=e.width,g=e.height):(c=i,g=s),c=Is(c,e.roundDimensionsTo??1),g=Is(g,e.roundDimensionsTo??1);let u={width:c,height:g,fit:e.fit??"fill",rotation:A,crop:a??{left:0,top:0,width:r,height:n},alpha:e.alpha??"keep"};for(let h of kC){let y=h(this,u);if(y instanceof Promise&&(y=await y),y!==null)return y}let l=null,f=!1;for(let h of Js)if(h.canvas.width===u.width&&h.canvas.height===u.height){l=h.canvas,h.age=Jw++;break}if(l===null){if(typeof OffscreenCanvas<"u")l=new OffscreenCanvas(u.width,u.height);else{if(typeof window>"u"||typeof document>"u")throw new Error("Cannot transform VideoSamples in this environment. Either run in an environment with OffscreenCanvas or HTMLCanvasElement, or supply a custom VideoSample transformer using registerVideoSampleTransformer().");l=document.createElement("canvas"),l.width=u.width,l.height=u.height}f=!0,Js.length>=GC&&Js.splice(Mi(Js,h=>h.age),1),Js.push({canvas:l,age:Jw++})}let p=l.getContext("2d",{alpha:!0});if(!p)throw new Error("The '2d' canvas context is required to transform VideoSamples. Register a custom transformer using registerVideoSampleTransformer to work around this limitation.");return u.alpha==="discard"?(p.fillStyle="black",p.fillRect(0,0,u.width,u.height)):f||p.clearRect(0,0,u.width,u.height),this.drawWithFit(p,{fit:u.fit,rotation:u.rotation,crop:u.crop}),new t(l,{timestamp:this.timestamp,duration:this.duration,rotation:0})}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}setEncodeOptions(e){if(!e||typeof e!="object")throw new TypeError("newEncodeOptions must be an object.");this.encodeOptions=e}[Symbol.dispose](){this.close()}},kC=[];var GC=3,Js=[],Jw=0,eo=class{constructor(e){if(e!==void 0){if(!e||typeof e!="object")throw new TypeError("init.colorSpace, when provided, must be an object.");let A=Object.keys(mr);if(e.primaries!=null&&!A.includes(e.primaries))throw new TypeError(`init.colorSpace.primaries, when provided, must be one of ${A.join(", ")}.`);let r=Object.keys(hr);if(e.transfer!=null&&!r.includes(e.transfer))throw new TypeError(`init.colorSpace.transfer, when provided, must be one of ${r.join(", ")}.`);let n=Object.keys(pr);if(e.matrix!=null&&!n.includes(e.matrix))throw new TypeError(`init.colorSpace.matrix, when provided, must be one of ${n.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("init.colorSpace.fullRange, when provided, must be a boolean.")}this.primaries=e?.primaries??null,this.transfer=e?.transfer??null,this.matrix=e?.matrix??null,this.fullRange=e?.fullRange??null}toJSON(){return{primaries:this.primaries,transfer:this.transfer,matrix:this.matrix,fullRange:this.fullRange}}},Xs=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Bd=(t,e,A)=>{let r=Math.min(t.left,e),n=Math.min(t.top,A),a=Math.min(t.width,e-r),i=Math.min(t.height,A-n);return C(a>=0),C(i>=0),{left:r,top:n,width:a,height:i}},to=(t,e)=>{if(!t||typeof t!="object")throw new TypeError(e+"crop, when provided, must be an object.");if(!Number.isInteger(t.left)||t.left<0)throw new TypeError(e+"crop.left must be a non-negative integer.");if(!Number.isInteger(t.top)||t.top<0)throw new TypeError(e+"crop.top must be a non-negative integer.");if(!Number.isInteger(t.width)||t.width<0)throw new TypeError(e+"crop.width must be a non-negative integer.");if(!Number.isInteger(t.height)||t.height<0)throw new TypeError(e+"crop.height must be a non-negative integer.")},Xw=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.colorSpace!==void 0&&!["display-p3","srgb"].includes(t.colorSpace))throw new TypeError("options.colorSpace, when provided, must be 'display-p3' or 'srgb'.");if(t.format!==void 0&&typeof t.format!="string")throw new TypeError("options.format, when provided, must be a string.");if(t.layout!==void 0){if(!Array.isArray(t.layout))throw new TypeError("options.layout, when provided, must be an array.");for(let e of t.layout){if(!e||typeof e!="object")throw new TypeError("Each entry in options.layout must be an object.");if(!Number.isInteger(e.offset)||e.offset<0)throw new TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(e.stride)||e.stride<0)throw new TypeError("plane.stride must be a non-negative integer.")}}if(t.rect!==void 0){if(!t.rect||typeof t.rect!="object")throw new TypeError("options.rect, when provided, must be an object.");if(t.rect.x!==void 0&&(!Number.isInteger(t.rect.x)||t.rect.x<0))throw new TypeError("options.rect.x, when provided, must be a non-negative integer.");if(t.rect.y!==void 0&&(!Number.isInteger(t.rect.y)||t.rect.y<0))throw new TypeError("options.rect.y, when provided, must be a non-negative integer.");if(t.rect.width!==void 0&&(!Number.isInteger(t.rect.width)||t.rect.width<0))throw new TypeError("options.rect.width, when provided, must be a non-negative integer.");if(t.rect.height!==void 0&&(!Number.isInteger(t.rect.height)||t.rect.height<0))throw new TypeError("options.rect.height, when provided, must be a non-negative integer.")}},xC=(t,e,A)=>{let r=Pu(t),n=[],a=0;for(let i of r){let s=Math.ceil(e/i.widthDivisor),o=Math.ceil(A/i.heightDivisor),c=s*i.sampleBytes,g=c*o;n.push({offset:a,stride:c}),a+=g}return n},Pu=t=>{let e=(A,r,n,a,i)=>{let s=[{sampleBytes:A,widthDivisor:1,heightDivisor:1},{sampleBytes:r,widthDivisor:n,heightDivisor:a},{sampleBytes:r,widthDivisor:n,heightDivisor:a}];return i&&s.push({sampleBytes:A,widthDivisor:1,heightDivisor:1}),s};switch(t){case"I420":return e(1,1,2,2,!1);case"I420P10":case"I420P12":return e(2,2,2,2,!1);case"I420A":return e(1,1,2,2,!0);case"I420AP10":case"I420AP12":return e(2,2,2,2,!0);case"I422":return e(1,1,2,1,!1);case"I422P10":case"I422P12":return e(2,2,2,1,!1);case"I422A":return e(1,1,2,1,!0);case"I422AP10":case"I422AP12":return e(2,2,2,1,!0);case"I444":return e(1,1,1,1,!1);case"I444P10":case"I444P12":return e(2,2,1,1,!1);case"I444A":return e(1,1,1,1,!0);case"I444AP10":case"I444AP12":return e(2,2,1,1,!0);case"NV12":return[{sampleBytes:1,widthDivisor:1,heightDivisor:1},{sampleBytes:2,widthDivisor:2,heightDivisor:2}];case"RGBA":case"RGBX":case"BGRA":case"BGRX":return[{sampleBytes:4,widthDivisor:1,heightDivisor:1}];default:$t(t),C(!1)}},eB=(t,e)=>{let A={left:0,top:0,width:t.codedWidth,height:t.codedHeight},r=e.rect,n=SC(A,r,t.codedWidth,t.codedHeight,t.format),a=e.layout,i;if(!e.format||e.format===t.format)i=t.format;else if(["RGBA","RGBX","BGRA","BGRX"].includes(e.format))i=e.format;else throw new Error("NotSupportedError: Invalid destination format.");return vC(n,i,a)},SC=(t,e,A,r,n)=>{let a={...t};if(e!==void 0){if(e.width===0||e.height===0)throw new TypeError("visibleRect dimensions cannot be zero.");if((e.x||0)+(e.width||0)>A)throw new TypeError("visibleRect exceeds codedWidth.");if((e.y||0)+(e.height||0)>r)throw new TypeError("visibleRect exceeds codedHeight.");a.x=e.x||0,a.y=e.y||0,a.width=e.width||0,a.height=e.height||0}if(!YC(n,a))throw new TypeError("visibleRect alignment is invalid for the format.");return a},YC=(t,e)=>{if(t===null)return!0;let A=Pu(t);for(let r=0;r<A.length;r++){let n=A[r],a=n.widthDivisor,i=n.heightDivisor;if((e.x||0)%a!==0||(e.y||0)%i!==0)return!1}return!0},vC=(t,e,A)=>{let r=Pu(e),n=r.length;if(A!==void 0&&A.length!==n)throw new TypeError(`Layout must have ${n} planes.`);let a=0,i=[],s=[];for(let o=0;o<n;o++){let c=r[o],g=c.sampleBytes,u=c.widthDivisor,l=c.heightDivisor,f={destinationOffset:0,destinationStride:0,sourceTop:0,sourceHeight:0,sourceLeftBytes:0,sourceWidthBytes:0};if(f.sourceTop=Math.ceil(Math.trunc(t.y||0)/l),f.sourceHeight=Math.ceil(Math.trunc(t.height||0)/l),f.sourceLeftBytes=Math.floor(Math.trunc(t.x||0)/u)*g,f.sourceWidthBytes=Math.floor(Math.trunc(t.width||0)/u)*g,A!==void 0){let y=A[o];if(y.stride<f.sourceWidthBytes)throw new TypeError(`Stride for plane ${o} is too small.`);f.destinationOffset=y.offset,f.destinationStride=y.stride}else f.destinationOffset=a,f.destinationStride=f.sourceWidthBytes;let h=f.destinationStride*f.sourceHeight+f.destinationOffset;if(h>4294967295)throw new TypeError("Allocation size exceeds limit.");s.push(h),a=Math.max(a,h);for(let y=0;y<o;y++){let w=i[y];if(!(s[o]<=w.destinationOffset||s[y]<=f.destinationOffset))throw new TypeError("Planes overlap.")}i.push(f)}return{allocationSize:a,computedLayouts:i}};var tB=new Map;var AB=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!_t.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${_t.join(", ")}.`);if(!(t.bitrate instanceof Aa)&&(!Number.isInteger(t.bitrate)||t.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(t.keyFrameInterval!==void 0&&(!Number.isFinite(t.keyFrameInterval)||t.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(t.sizeChangeBehavior!==void 0&&!["deny","passThrough","fill","contain","cover"].includes(t.sizeChangeBehavior))throw new TypeError("config.sizeChangeBehavior, when provided, must be 'deny', 'passThrough', 'fill', 'contain' or 'cover'.");if(t.transform!==void 0){if(typeof t.transform!="object"||!t.transform)throw new TypeError("config.transform, when provided, must be an object.");if(t.transform.width!==void 0&&(!Number.isInteger(t.transform.width)||t.transform.width<=0))throw new TypeError("config.transform.width, when provided, must be a positive integer.");if(t.transform.height!==void 0&&(!Number.isInteger(t.transform.height)||t.transform.height<=0))throw new TypeError("config.transform.height, when provided, must be a positive integer.");if(t.transform.fit!==void 0&&!["fill","contain","cover"].includes(t.transform.fit))throw new TypeError('config.transform.fit, when provided, must be one of "fill", "contain", or "cover".');if(t.transform.width!==void 0&&t.transform.height!==void 0&&t.transform.fit===void 0&&!["fill","contain","cover"].includes(t.sizeChangeBehavior))throw new TypeError("When both config.transform.width and config.transform.height are provided, config.transform.fit must also be provided.");if(t.transform.fit!==void 0&&["fill","contain","cover"].includes(t.sizeChangeBehavior)&&t.transform.fit!==t.sizeChangeBehavior)throw new TypeError("config.transform.fit, when provided, cannot differ from config.sizeChangeBehavior when config.sizeChangeBehavior is 'fill', 'contain' or 'cover', as sizeChangeBehavior already determines the fitting algorithm.");if(t.transform.rotate!==void 0&&![0,90,180,270].includes(t.transform.rotate))throw new TypeError("config.transform.rotate, when provided, must be 0, 90, 180 or 270.");if(t.transform.crop!==void 0&&to(t.transform.crop,"config.transform."),t.transform.process!==void 0&&typeof t.transform.process!="function")throw new TypeError("config.transform.process, when provided, must be a function.");if(t.transform.frameRate!==void 0&&(!Number.isFinite(t.transform.frameRate)||t.transform.frameRate<=0))throw new TypeError("config.transform.frameRate, when provided, must be a finite positive number.");if(t.transform.force!==void 0&&typeof t.transform.force!="boolean")throw new TypeError("config.transform.force, when provided, must be a boolean.")}if(t.onEncodedPacket!==void 0&&typeof t.onEncodedPacket!="function")throw new TypeError("config.onEncodedPacket, when provided, must be a function.");if(t.onEncoderConfig!==void 0&&typeof t.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.");rB(t.codec,t)},rB=(t,e)=>{if(!e||typeof e!="object")throw new TypeError("Encoding options must be an object.");if(e.alpha!==void 0&&!["discard","keep"].includes(e.alpha))throw new TypeError("options.alpha, when provided, must be 'discard' or 'keep'.");if(e.bitrateMode!==void 0&&!["constant","variable"].includes(e.bitrateMode))throw new TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(e.latencyMode!==void 0&&!["quality","realtime"].includes(e.latencyMode))throw new TypeError("latencyMode, when provided, must be 'quality' or 'realtime'.");if(e.fullCodecString!==void 0&&typeof e.fullCodecString!="string")throw new TypeError("fullCodecString, when provided, must be a string.");if(e.fullCodecString!==void 0&&Vr(e.fullCodecString)!==t)throw new TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${t}).`);if(e.hardwareAcceleration!==void 0&&!["no-preference","prefer-hardware","prefer-software"].includes(e.hardwareAcceleration))throw new TypeError("hardwareAcceleration, when provided, must be 'no-preference', 'prefer-hardware' or 'prefer-software'.");if(e.scalabilityMode!==void 0&&typeof e.scalabilityMode!="string")throw new TypeError("scalabilityMode, when provided, must be a string.");if(e.contentHint!==void 0&&typeof e.contentHint!="string")throw new TypeError("contentHint, when provided, must be a string.")},Pd=t=>{let e=t.bitrate instanceof Aa?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??Tp(t.codec,t.width,t.height,e),width:t.width,height:t.height,displayWidth:t.squarePixelWidth,displayHeight:t.squarePixelHeight,bitrate:e,bitrateMode:t.bitrateMode,alpha:t.alpha??"discard",framerate:t.framerate,latencyMode:t.latencyMode,hardwareAcceleration:t.hardwareAcceleration,scalabilityMode:t.scalabilityMode,contentHint:t.contentHint,...xp(t.codec)}};var Aa=class{constructor(e){this._factor=e}_toVideoBitrate(e,A,r){let n=A*r,a={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},i=1920*1080,s=3e6,o=Math.pow(n/i,.95),u=s*o*a[e]*this._factor;return Math.ceil(u/1e3)*1e3}_toAudioBitrate(e){if(Ot.includes(e)||e==="flac")return;let r={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3,ac3:384e3,eac3:192e3}[e];if(!r)throw new Error(`Unhandled codec: ${e}`);let n=r*this._factor;return e==="aac"?n=[96e3,128e3,16e4,192e3].reduce((i,s)=>Math.abs(s-n)<Math.abs(i-n)?s:i):e==="opus"||e==="vorbis"?n=Math.max(6e3,n):e==="mp3"&&(n=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((i,s)=>Math.abs(s-n)<Math.abs(i-n)?s:i)),Math.round(n/1e3)*1e3}};var yd=async(t,e={})=>{let{width:A=1280,height:r=720,bitrate:n=1e6,...a}=e;if(!_t.includes(t))return!1;if(!Number.isInteger(A)||A<=0)throw new TypeError("width must be a positive integer.");if(!Number.isInteger(r)||r<=0)throw new TypeError("height must be a positive integer.");if(!(n instanceof Aa)&&(!Number.isInteger(n)||n<=0))throw new TypeError("bitrate must be a positive integer or a quality.");rB(t,a);let i=Pd({codec:t,width:A,height:r,bitrate:n,framerate:void 0,...a,alpha:"discard"}),s=JSON.stringify(i),o=tB.get(s);if(o)return o;let c=(async()=>yu.some(l=>l.supports(t,i))?!0:typeof VideoEncoder>"u"||(A%2===1||r%2===1)&&(t==="avc"||t==="hevc")||!(await VideoEncoder.isConfigSupported(i)).supported?!1:Cs()?new Promise(async l=>{try{let f=new VideoEncoder({output:()=>{},error:()=>l(!1)});f.configure(i);let p=new Uint8Array(A*r*4),h=new VideoFrame(p,{format:"RGBA",codedWidth:A,codedHeight:r,timestamp:0});f.encode(h),h.close(),await f.flush(),l(!0)}catch{l(!1)}}):!0)();return tB.set(s,c),c};var Iu=[],Id=[],yu=[];var Nn=t=>{if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.metadataOnly!==void 0&&typeof t.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(t.verifyKeyPackets!==void 0&&typeof t.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.");if(t.skipLiveWait!==void 0&&typeof t.skipLiveWait!="boolean")throw new TypeError("options.skipLiveWait, when defined, must be a boolean.")},ra=t=>{if(!ks(t))throw new TypeError("timestamp must be a number.")},Dd=(t,e,A)=>A.verifyKeyPackets?e.then(async r=>{if(!r||r.type==="delta")return r;let n=await t.determinePacketType(r);return n&&(r.type=n),r}):e,An=class{constructor(e){if(!(e instanceof ia))throw new TypeError("track must be an InputTrack.");this._track=e}async getFirstPacket(e={}){if(Nn(e),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getFirstPacket(e),e)}async getFirstKeyPacket(e={}){Nn(e);let A=await this.getFirstPacket(e);return A?A.type==="key"?A:this.getNextKeyPacket(A,e):null}async getPacket(e,A={}){if(ra(e),Nn(A),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getPacket(e,A),A)}async getNextPacket(e,A={}){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(Nn(A),this._track.input._disposed)throw new Pt;return Dd(this._track,this._track._backing.getNextPacket(e,A),A)}async getKeyPacket(e,A={}){if(ra(e),Nn(A),this._track.input._disposed)throw new Pt;if(!A.verifyKeyPackets)return this._track._backing.getKeyPacket(e,A);let r=await this._track._backing.getKeyPacket(e,A);return r&&(C(r.type==="key"),await this._track.determinePacketType(r)==="delta"?this.getKeyPacket(r.timestamp-1/await this._track.getTimeResolution(),A):r)}async getNextKeyPacket(e,A={}){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(Nn(A),this._track.input._disposed)throw new Pt;if(!A.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,A);let r=await this._track._backing.getNextKeyPacket(e,A);return r&&(C(r.type==="key"),await this._track.determinePacketType(r)==="delta"?this.getNextKeyPacket(r,A):r)}packets(e,A,r={}){if(e!==void 0&&!(e instanceof Fe))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!r?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(A!==void 0&&!(A instanceof Fe))throw new TypeError("endPacket must be an EncodedPacket.");if(Nn(r),this._track.input._disposed)throw new Pt;let n=[],{promise:a,resolve:i}=lt(),{promise:s,resolve:o}=lt(),c=!1,g=!1,u=null,l=[],f=()=>Math.max(2,l.length);(async()=>{let h=e??await this.getFirstPacket(r);for(;h&&!g&&!this._track.input._disposed&&!(A&&h.sequenceNumber>=A?.sequenceNumber);){if(n.length>f()){({promise:s,resolve:o}=lt()),await s;continue}n.push(h),i(),{promise:a,resolve:i}=lt(),h=await this.getNextPacket(h,r)}c=!0,i()})().catch(h=>{u||(u=h,i())});let p=this._track;return{async next(){for(;;){if(p.input._disposed)throw new Pt;if(g)return{value:void 0,done:!0};if(u)throw u;if(n.length>0){let h=n.shift(),y=performance.now();for(l.push(y);l.length>0&&y-l[0]>=1e3;)l.shift();return o(),{value:h,done:!1}}else{if(c)return{value:void 0,done:!0};await a}}},async return(){return g=!0,o(),i(),{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}},Cd=class{constructor(e,A){this.onSample=e,this.onError=A}},Du=class{mediaSamplesInRange(e=-1/0,A=1/0,r){ra(e),ra(A);let n=[],a=!1,i=null,{promise:s,resolve:o}=lt(),{promise:c,resolve:g}=lt(),u=!1,l=!1,f=!1,p=null,h={...r,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let D=await this._createDecoder(R=>{if(g(),R.timestamp>=A&&(l=!0),l){R.close();return}i&&(R.timestamp>e?(n.push(i),a=!0):i.close()),R.timestamp>=e&&(n.push(R),a=!0),i=a?null:R,n.length>0&&(o(),{promise:s,resolve:o}=lt())},R=>{p||(p=R,o())}),b=this._createPacketSink(),E=await b.getKeyPacket(e,h)??await b.getFirstKeyPacket(h),x=E,k=b.packets(E??void 0,void 0,h);for(await k.next();x&&!l&&!this._track.input._disposed;){let R=nB(n.length);if(n.length+D.getDecodeQueueSize()>R){({promise:c,resolve:g}=lt()),await c;continue}D.decode(x);let M=await k.next();if(M.done)break;x=M.value}await k.return(),!f&&!this._track.input._disposed&&await D.flush(),D.close(),!a&&i&&n.push(i),u=!0,o()})().catch(D=>{p||(p=D,o())});let y=this._track,w=()=>{i?.close();for(let D of n)D.close()};return{async next(){for(;;){if(y.input._disposed)throw w(),new Pt;if(f)return{value:void 0,done:!0};if(p)throw w(),p;if(n.length>0){let D=n.shift();return g(),{value:D,done:!1}}else if(!u)await s;else return{value:void 0,done:!0}}},async return(){return f=!0,l=!0,g(),o(),w(),{value:void 0,done:!0}},async throw(D){throw D},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e,A){mp(e);let r=fp(e),n=[],a=[],{promise:i,resolve:s}=lt(),{promise:o,resolve:c}=lt(),g=!1,u=!1,l=null,f=w=>{a.push(w),s(),{promise:i,resolve:s}=lt()},p={...A,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let w=await this._createDecoder(R=>{if(c(),u){R.close();return}let M=0;for(;n.length>0&&R.timestamp-n[0]>-1e-10;)M++,n.shift();if(M>0)for(let N=0;N<M;N++)f(N<M-1?R.clone():R);else R.close()},R=>{l||(l=R,s())}),D=this._createPacketSink(),b=null,E=null,x=-1,S=async()=>{C(E);let R=E;for(w.decode(R);R.sequenceNumber<x;){let M=nB(a.length);for(;a.length+w.getDecodeQueueSize()>M&&!u;)({promise:o,resolve:c}=lt()),await o;if(u)break;let N=await D.getNextPacket(R,p);C(N),w.decode(N),R=N}x=-1},k=async()=>{await w.flush();for(let R=0;R<n.length;R++)f(null);n.length=0};for await(let R of r){if(ra(R),u||this._track.input._disposed)break;let M=await D.getPacket(R,p),N=M&&await D.getKeyPacket(R,p);if(!N){x!==-1&&(await S(),await k()),f(null),b=null;continue}b&&(N.sequenceNumber!==E.sequenceNumber||M.timestamp<b.timestamp)&&(await S(),await k()),n.push(M.timestamp),x=Math.max(M.sequenceNumber,x),b=M,E=N}!u&&!this._track.input._disposed&&(x!==-1&&await S(),await k()),w.close(),g=!0,s()})().catch(w=>{l||(l=w,s())});let h=this._track,y=()=>{for(let w of a)w?.close()};return{async next(){for(;;){if(h.input._disposed)throw y(),new Pt;if(u)return{value:void 0,done:!0};if(l)throw y(),l;if(a.length>0){let w=a.shift();return C(w!==void 0),c(),{value:w,done:!1}}else if(!g)await i;else return{value:void 0,done:!0}}},async return(){return u=!0,c(),s(),y(),{value:void 0,done:!0}},async throw(w){throw w},[Symbol.asyncIterator](){return this}}}},nB=t=>t===0?40:8,bd=class extends Cd{constructor(e,A,r,n,a,i){super(e,A),this.codec=r,this.decoderConfig=n,this.rotation=a,this.timeResolution=i,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Dn,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1,this.alphaDecoder=null,this.alphaHadKeyframe=!1,this.colorQueue=[],this.alphaQueue=[],this.merger=null,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue=[],this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1,this.frameHandlerSerializer=new Dn;let s=Iu.find(o=>o.supports(r,n));if(s)this.customDecoder=new s,this.customDecoder.codec=r,this.customDecoder.config=n,this.customDecoder.onSample=o=>{if(!(o instanceof QA))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(o)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let o=g=>{this.frameHandlerSerializer.call(async()=>{if(this.alphaQueue.length>0){let u=this.alphaQueue.shift();C(u!==void 0),await this.mergeAlpha(g,u)}else this.colorQueue.push(g)}).catch(u=>this.onError(u))};if(r==="avc"&&this.decoderConfig.description&&bs()){let g=Np(ft(this.decoderConfig.description));if(g&&g.sequenceParameterSets.length>0){let u=Os(g.sequenceParameterSets[0]);u&&u.frameMbsOnlyFlag===0&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}let c=new Error("Decoding error").stack;this.decoder=new VideoDecoder({output:g=>{try{o(g)}catch(u){this.onError(u)}},error:g=>{g.stack=c,this.onError(g)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(C(this.decoder),Math.max(this.decoder.decodeQueueSize,this.alphaDecoder?.decodeQueueSize??0))}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(this.hasHevcRaslPicture(e.data))return;this.raslSkipped=!0}if(this.customDecoder)this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--);else{if(C(this.decoder),kn()||Cl(this.inputTimestamps,e.timestamp,A=>A),bs()&&this.currentPacketIndex===0){if(this.codec==="avc"){let A=[];for(let n of Ol(e.data,this.decoderConfig)){let a=zi(e.data[n.offset]);a===Jt.AUD&&(A.length=0),a>=20&&a<=31||A.push(e.data.subarray(n.offset,n.offset+n.length))}let r=Fp(A,this.decoderConfig);e=new Fe(r,e.type,e.timestamp,e.duration)}else if(this.codec==="hevc"){let A=qp(e.data,this.decoderConfig);A&&(e=new Fe(A,e.type,e.timestamp,e.duration))}}this.decoder.decode(e.toEncodedVideoChunk()),this.decodeAlphaData(e)}this.currentPacketIndex++}decodeAlphaData(e){if(!e.sideData.alpha){this.pushNullAlphaFrame();return}if(this.merger||(this.merger=new Cu),!this.alphaDecoder){let r=a=>{this.frameHandlerSerializer.call(async()=>{if(this.colorQueue.length>0){let i=this.colorQueue.shift();C(i!==void 0),await this.mergeAlpha(i,a)}else this.alphaQueue.push(a);for(this.decodedAlphaChunkCount++;this.nullAlphaFrameQueue.length>0&&this.nullAlphaFrameQueue[0]===this.decodedAlphaChunkCount;)if(this.nullAlphaFrameQueue.shift(),this.colorQueue.length>0){let i=this.colorQueue.shift();C(i!==void 0),await this.mergeAlpha(i,null)}else this.alphaQueue.push(null);this.alphaDecoderQueueSize--}).catch(i=>this.onError(i))},n=new Error("Decoding error").stack;this.alphaDecoder=new VideoDecoder({output:a=>{try{r(a)}catch(i){this.onError(i)}},error:a=>{a.stack=n,this.onError(a)}}),this.alphaDecoder.configure(this.decoderConfig)}let A=$r(this.codec,this.decoderConfig,e.sideData.alpha);if(this.alphaHadKeyframe||(this.alphaHadKeyframe=A==="key"),this.alphaHadKeyframe){if(this.codec==="hevc"&&this.currentAlphaPacketIndex>0&&!this.alphaRaslSkipped){if(this.hasHevcRaslPicture(e.sideData.alpha)){this.pushNullAlphaFrame();return}this.alphaRaslSkipped=!0}this.currentAlphaPacketIndex++,this.alphaDecoder.decode(e.alphaToEncodedVideoChunk(A??e.type)),this.alphaDecoderQueueSize++}else this.pushNullAlphaFrame()}pushNullAlphaFrame(){this.alphaDecoderQueueSize===0?this.alphaQueue.push(null):this.nullAlphaFrameQueue.push(this.decodedAlphaChunkCount+this.alphaDecoderQueueSize)}hasHevcRaslPicture(e){for(let A of vs(e,this.decoderConfig)){let r=Wr(e[A.offset]);if(r===bt.RASL_N||r===bt.RASL_R)return!0}return!1}sampleHandler(e){if(kn()){if(this.sampleQueue.length>0&&e.timestamp>=_e(this.sampleQueue).timestamp){for(let A of this.sampleQueue)this.finalizeAndEmitSample(A);this.sampleQueue.length=0}Cl(this.sampleQueue,e,A=>A.timestamp)}else{let A=this.inputTimestamps.shift();C(A!==void 0),e.setTimestamp(A),this.finalizeAndEmitSample(e)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}async mergeAlpha(e,A){if(!A){let a=new QA(e);this.sampleHandler(a);return}C(this.merger);let r=await this.merger.update(e,A),n=new QA(r);this.sampleHandler(n)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(C(this.decoder),await Promise.all([this.decoder.flush(),this.alphaDecoder?.flush()]),await this.frameHandlerSerializer.currentPromise,this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.alphaHadKeyframe=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue.length=0,this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1),kn()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(C(this.decoder),this.decoder.close(),this.alphaDecoder?.close(),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.merger?.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},iB=!1,Cu=class t{constructor(){this.canvas=null,this.gl=null,this.program=null,this.vao=null,this.colorTexture=null,this.alphaTexture=null,this.worker=null,this.pendingRequests=new Map,this.nextRequestId=0;let e=typeof OffscreenCanvas<"u"||typeof document<"u"&&typeof document.createElement=="function";if(!t.forceCpu&&e&&!iB)try{typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(300,150):this.canvas=document.createElement("canvas");let A=this.canvas.getContext("webgl2",{premultipliedAlpha:!1});if(!A)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=A,this.program=this.createProgram(),this.vao=this.createVAO(),this.colorTexture=this.createTexture(),this.alphaTexture=this.createTexture(),this.gl.useProgram(this.program),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_colorTexture"),0),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_alphaTexture"),1)}catch(A){this.gl=null,this.canvas=null,iB=!0,console.warn("Falling back to CPU for color/alpha merging.",A)}}async update(e,A){return this.gl?this.updateGpu(e,A):this.updateCpu(e,A)}createProgram(){C(this.gl);let e=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
12
12
  in vec2 a_position;
13
13
  in vec2 a_texCoord;
14
14
  out vec2 v_texCoord;
@@ -30,8 +30,8 @@
30
30
  float alpha = texture(u_alphaTexture, v_texCoord).r;
31
31
  fragColor = vec4(color, alpha);
32
32
  }
33
- `),r=this.gl.createProgram();return this.gl.attachShader(r,e),this.gl.attachShader(r,A),this.gl.linkProgram(r),r}createShader(e,A){C(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),r}createVAO(){C(this.gl),C(this.program);let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let A=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,A,this.gl.STATIC_DRAW);let n=this.gl.getAttribLocation(this.program,"a_position"),a=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,2,this.gl.FLOAT,!1,16,8),e}createTexture(){C(this.gl);let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}updateGpu(e,A){C(this.gl),C(this.canvas),(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colorTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.alphaTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,A),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);let r=new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0});return e.close(),A.close(),r}updateCpu(e,A){if(!this.worker){let a=new Blob([`(${OC.toString()})()`],{type:"application/javascript"}),i=URL.createObjectURL(a);this.worker=new Worker(i),URL.revokeObjectURL(i),this.worker.addEventListener("message",s=>{let o=s.data,c=this.pendingRequests.get(o.id);c&&(this.pendingRequests.delete(o.id),"error"in o?c.reject(new Error(o.error)):c.resolve(o.frame))}),this.worker.addEventListener("error",s=>{let o=new Error(s.message||"Color/alpha merge worker error.");for(let c of this.pendingRequests.values())c.reject(o);this.pendingRequests.clear()})}let r=this.nextRequestId++,n=lt();return this.pendingRequests.set(r,n),this.worker.postMessage({id:r,color:e,alpha:A},{transfer:[e,A]}),n.promise}close(){this.gl?.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null,this.canvas=null,this.worker?.terminate(),this.worker=null;let e=new Error("Color/alpha merger closed.");for(let A of this.pendingRequests.values())A.reject(e);this.pendingRequests.clear()}};Cu.forceCpu=!0;var OC=()=>{let t=null,e=null,A=Promise.resolve();self.addEventListener("message",o=>{let{id:c,color:g,alpha:u}=o.data;A=A.then(async()=>{try{let l=await r(g,u);self.postMessage({id:c,frame:l},{transfer:[l]})}catch(l){self.postMessage({id:c,error:l.message})}finally{g.close(),u.close()}})});let r=async(o,c)=>{let g=o.format,u=c.format;if(!g||!u)throw new Error("CPU color/alpha merging requires a known VideoFrame format.");let l=g.includes("P10"),f=g.includes("P12"),p=u.includes("P10"),h=u.includes("P12");if(p!==l||h!==f)throw new Error(`CPU color/alpha merging requires the alpha frame to have the same bit depth as the color frame (color: '${g}', alpha: '${u}').`);let y=o.codedWidth,w=o.codedHeight;if(g==="RGBX"||g==="RGBA"||g==="BGRX"||g==="BGRA")return await n(o,c,y,w,g);if(g==="I420"||g==="I420P10"||g==="I420P12"||g==="I422"||g==="I422P10"||g==="I422P12"||g==="I444"||g==="I444P10"||g==="I444P12")return await a(o,c,y,w,g);if(g==="NV12")return await i(o,c,y,w);throw new Error(`CPU color/alpha merging does not support format '${g}'.`)},n=async(o,c,g,u,l)=>{let f=g*u,p=new Uint8Array(f*4);await o.copyTo(p);let h=await s(c,g,u,1);for(let D=0,b=3;D<f;D++,b+=4)p[b]=h[D];let w={format:l==="RGBX"||l==="RGBA"?"RGBA":"BGRA",codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[p.buffer]};return new VideoFrame(p,w)},a=async(o,c,g,u,l)=>{let f=l.includes("P10"),p=l.includes("P12"),h=f||p?2:1,y,w;l.startsWith("I420")?(y=Math.ceil(g/2),w=Math.ceil(u/2)):l.startsWith("I422")?(y=Math.ceil(g/2),w=u):(y=g,w=u);let D=g*u,b=y*w,E=D*h,x=b*h,S=D*h,k=E+2*x+S,R=new Uint8Array(k);await o.copyTo(R);let M=await s(c,g,u,h),N=E+2*x;R.set(M,N);let F={format:l.slice(0,4)+"A"+l.slice(4),codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[R.buffer]};return new VideoFrame(R,F)},i=async(o,c,g,u)=>{let l=g*u,f=Math.ceil(g/2),p=Math.ceil(u/2),h=f*p,y=o.allocationSize();(!e||e.byteLength!==y)&&(e=new Uint8Array(y)),await o.copyTo(e);let w=new Uint8Array(l+2*h+l);w.set(e.subarray(0,l),0);let D=l,b=l+h,E=l;for(let k=0;k<h;k++)w[D+k]=e[E+k*2],w[b+k]=e[E+k*2+1];let x=await s(c,g,u,1);w.set(x,l+2*h);let S={format:"I420A",codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[w.buffer]};return new VideoFrame(w,S)},s=async(o,c,g,u)=>{let l=o.allocationSize();(!t||t.byteLength!==l)&&(t=new Uint8Array(l)),await o.copyTo(t);let f=o.format;if(f==="RGBA"||f==="BGRA"||f==="RGBX"||f==="BGRX"){let p=f==="RGBA"||f==="RGBX"?0:2,h=c*g;for(let y=0;y<h;y++)t[y]=t[y*4+p];return t.subarray(0,h)}else return t.subarray(0,c*g*u)}},na=class extends Du{constructor(e){if(!(e instanceof Hn))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._track=e}async _createDecoder(e,A){if(!await this._track.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let r=await this._track.getCodec(),n=await this._track.getRotation(),a=await this._track.getDecoderConfig(),i=await this._track.getTimeResolution();return C(r&&a),new bd(e,A,r,a,n,i)}_createPacketSink(){return new An(this._track)}async getSample(e,A={}){ra(e);for await(let r of this.mediaSamplesAtTimestamps([e],A))return r;throw new Error("Internal error: Iterator returned nothing.")}samples(e,A,r={}){return this.mediaSamplesInRange(e,A,r)}samplesAtTimestamps(e,A={}){return this.mediaSamplesAtTimestamps(e,A)}};var ia=class t{constructor(e,A){this.input=e,this._backing=A}isVideoTrack(){return this instanceof Hn}isAudioTrack(){return this instanceof aa}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}async getInternalCodecId(){return this._backing.getInternalCodecId()}get internalCodecId(){return st(this._backing.getInternalCodecId(),"internalCodecId","getInternalCodecId")}async getLanguageCode(){return this._backing.getLanguageCode()}get languageCode(){return st(this._backing.getLanguageCode(),"languageCode","getLanguageCode")}async getName(){return this._backing.getName()}get name(){return st(this._backing.getName(),"name","getName")}async getTimeResolution(){return this._backing.getTimeResolution()}get timeResolution(){return st(this._backing.getTimeResolution(),"timeResolution","getTimeResolution")}async isRelativeToUnixEpoch(){return this._backing.isRelativeToUnixEpoch()}async getDisposition(){return this._backing.getDisposition()}get disposition(){return st(this._backing.getDisposition(),"disposition","getDisposition")}async getBitrate(){return this._backing.getBitrate()}async getAverageBitrate(){return this._backing.getAverageBitrate()}async getFirstTimestamp(){return(await this._backing.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async computeDuration(e){let A=await this._backing.getPacket(1/0,{metadataOnly:!0,...e}),r=(A?.timestamp??0)+(A?.duration??0);return Ds(r,await this.getTimeResolution())}async getDurationFromMetadata(e={}){return this._backing.getDurationFromMetadata(e)}async computePacketStats(e=1/0,A){let r=new An(this),n=1/0,a=-1/0,i=0,s=0;for await(let o of r.packets(void 0,void 0,{metadataOnly:!0,...A})){if(i>=e&&o.timestamp>=a)break;n=Math.min(n,o.timestamp),a=Math.max(a,o.timestamp+o.duration),i++,s+=o.byteLength}return{packetCount:i,averagePacketRate:i?Number((i/(a-n)).toPrecision(16)):0,averageBitrate:i?Number((8*s/(a-n)).toPrecision(16)):0}}async isLive(){return await this._backing.getLiveRefreshInterval()!==null}async getLiveRefreshInterval(){return this._backing.getLiveRefreshInterval()}canBePairedWith(e){if(!(e instanceof t))throw new TypeError("other must be an InputTrack.");return this.input!==e.input||this===e?!1:(this._backing.getPairingMask()&e._backing.getPairingMask())!==0n}async getPairableTracks(e){return this.input.getTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPairableVideoTracks(e){return this.input.getVideoTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPairableAudioTracks(e){return this.input.getAudioTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableVideoTrack(e){return this.input.getPrimaryVideoTrack(rn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableAudioTrack(e){return this.input.getPrimaryAudioTrack(rn({filter:A=>A.canBePairedWith(this)},e))}async hasPairableTrack(e){e&&=Ed(e);let A=await this.input.getTracks();for(let r of A)if(this.canBePairedWith(r)&&(!e||await e(r)))return!0;return!1}hasPairableVideoTrack(e){return e&&=Ed(e),this.hasPairableTrack(async A=>A.isVideoTrack()&&(!e||await e(A)))}hasPairableAudioTrack(e){return e&&=Ed(e),this.hasPairableTrack(async A=>A.isAudioTrack()&&(!e||await e(A)))}},st=(t,e,A)=>{if(t instanceof Promise)throw new Error(`'${e}' is deprecated and not available synchronously for this track. Use the preferred '${A}()' instead.`);return t},Ed=t=>{if(t!==void 0&&typeof t!="function")throw new TypeError("predicate, when provided, must be a function.");return t?e=>{let A=n=>{if(typeof n!="boolean")throw new TypeError("predicate must return or resolve to a boolean value.");return n},r=t(e);return r instanceof Promise?r.then(A):A(r)}:void 0},Hn=class extends ia{constructor(e,A){super(e,A),this._pixelAspectRatioCache=null,this._backing=A}get type(){return"video"}async getCodec(){return this._backing.getCodec()}get codec(){return st(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!1}async getCodedWidth(){return this._backing.getCodedWidth()}get codedWidth(){return st(this._backing.getCodedWidth(),"codedWidth","getCodedWidth")}async getCodedHeight(){return this._backing.getCodedHeight()}get codedHeight(){return st(this._backing.getCodedHeight(),"codedHeight","getCodedHeight")}async getRotation(){return this._backing.getRotation()}get rotation(){return st(this._backing.getRotation(),"rotation","getRotation")}async getSquarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelWidth(){return st(this._backing.getSquarePixelWidth(),"squarePixelWidth","getSquarePixelWidth")}async getSquarePixelHeight(){return this._backing.getSquarePixelHeight()}get squarePixelHeight(){return st(this._backing.getSquarePixelHeight(),"squarePixelHeight","getSquarePixelHeight")}async getPixelAspectRatio(){return this._pixelAspectRatioCache??=Sn({num:await this.getSquarePixelWidth()*await this.getCodedHeight(),den:await this.getSquarePixelHeight()*await this.getCodedWidth()})}get pixelAspectRatio(){return this._pixelAspectRatioCache??=Sn({num:st(this._backing.getSquarePixelWidth(),"pixelAspectRatio","getPixelAspectRatio")*st(this._backing.getCodedHeight(),"pixelAspectRatio","getPixelAspectRatio"),den:st(this._backing.getSquarePixelHeight(),"pixelAspectRatio","getPixelAspectRatio")*st(this._backing.getCodedWidth(),"pixelAspectRatio","getPixelAspectRatio")})}async getDisplayWidth(){let e=await this._backing.getMetadataDisplayWidth?.();return e??(await this.getRotation()%180===0?this.getSquarePixelWidth():this.getSquarePixelHeight())}get displayWidth(){let e=this._backing.getMetadataDisplayWidth?.();if(e!==void 0){let n=st(e,"displayWidth","getDisplayWidth");if(n!==null)return n}let r=st(this._backing.getRotation(),"displayWidth","getDisplayWidth")%180===0?this._backing.getSquarePixelWidth():this._backing.getSquarePixelHeight();return st(r,"displayWidth","getDisplayWidth")}async getDisplayHeight(){let e=await this._backing.getMetadataDisplayHeight?.();return e??(await this.getRotation()%180===0?this.getSquarePixelHeight():this.getSquarePixelWidth())}get displayHeight(){let e=this._backing.getMetadataDisplayHeight?.();if(e!==void 0){let n=st(e,"displayHeight","getDisplayHeight");if(n!==null)return n}let r=st(this._backing.getRotation(),"displayHeight","getDisplayHeight")%180===0?this._backing.getSquarePixelHeight():this._backing.getSquarePixelWidth();return st(r,"displayHeight","getDisplayHeight")}async getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pq"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}async canBeTransparent(){return this._backing.canBeTransparent()}async getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getMetadataCodecParameterString?.();return e??(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let A=await this._backing.getCodec();return C(A!==null),Iu.some(n=>n.supports(A,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");let A=await this.getCodec();if(A===null)return null;let r=await this.getDecoderConfig();return C(r),$r(A,r,e.data)}},aa=class extends ia{constructor(e,A){super(e,A),this._backing=A}get type(){return"audio"}async getCodec(){return this._backing.getCodec()}get codec(){return st(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!0}async getNumberOfChannels(){return this._backing.getNumberOfChannels()}get numberOfChannels(){return st(this._backing.getNumberOfChannels(),"numberOfChannels","getNumberOfChannels")}async getSampleRate(){return this._backing.getSampleRate()}get sampleRate(){return st(this._backing.getSampleRate(),"sampleRate","getSampleRate")}async getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getMetadataCodecParameterString?.();return e??(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let A=await this._backing.getCodec();return C(A!==null),Id.some(r=>r.supports(A,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");return await this.getCodec()===null?null:"key"}};var Td=t=>-(t??-1/0),sa=t=>-t,oa=t=>{if(typeof t!="object"||!t)throw new TypeError("query must be an object.");if(t.filter!==void 0&&typeof t.filter!="function")throw new TypeError("query.filter, when provided, must be a function.");if(t.sortBy!==void 0&&typeof t.sortBy!="function")throw new TypeError("query.sortBy, when provided, must be a function.");return{filter:t.filter?e=>{let A=n=>{if(typeof n!="boolean")throw new TypeError("query.filter must return or resolve to a boolean.");return n},r=t.filter(e);return r instanceof Promise?r.then(A):A(r)}:void 0,sortBy:t.sortBy?e=>{let A=n=>{if(typeof n!="number"&&(!Array.isArray(n)||!n.every(a=>typeof a=="number")))throw new TypeError("query.sortBy must return or resolve to a number or an array of numbers.");return n},r=t.sortBy(e);return r instanceof Promise?r.then(A):A(r)}:void 0}},rn=(t,e)=>({filter:t?.filter||e?.filter?A=>{let r=t?.filter?.(A)??!0,n=a=>a===!1?!1:e?.filter?.(A)??!0;return r instanceof Promise?r.then(n):n(r)}:void 0,sortBy:t?.sortBy||e?.sortBy?A=>{let r=t?.sortBy?.(A)??[],n=e?.sortBy?.(A)??[],a=(i,s)=>[...Array.isArray(i)?i:[i],...Array.isArray(s)?s:[s]];return r instanceof Promise||n instanceof Promise?Promise.all([r,n]).then(([i,s])=>a(i,s)):a(r,n)}:void 0}),bu=async(t,e)=>{let A=t;if(e?.filter){let i=t.map(o=>e.filter(o));if(i.some(o=>o instanceof Promise)){let o=await Promise.all(i);A=t.filter((c,g)=>o[g])}else A=t.filter((o,c)=>i[c])}if(!e?.sortBy)return A;let r=A.map(i=>e.sortBy(i)),a=r.some(i=>i instanceof Promise)?await Promise.all(r):r;return A.map((i,s)=>({track:i,sortValue:a[s]})).sort((i,s)=>{let o=Array.isArray(i.sortValue)?i.sortValue:[i.sortValue],c=Array.isArray(s.sortValue)?s.sortValue:[s.sortValue],g=Math.max(o.length,c.length);for(let u=0;u<g;u++){let l=o[u]??0,f=c[u]??0;if(l!==f)return l-f}return 0}).map(i=>i.track)};_i();var _C=1,Ow=2,zn=class t extends $A{get disposed(){return this._disposed}constructor(e){if(super(),this._demuxerPromise=null,this._format=null,this._trackBackingsCache=null,this._backingToTrack=new Map,this._disposed=!1,this._nextSourceCacheAge=0,this._sourceRefs=[],this._sourceCache=[],this._sourceCachePromises=[],this._onFormatDetermined=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(A=>!(A instanceof jt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Lt||e.source instanceof Fn))throw new TypeError("options.source must be a Source or SourceRef.");if(e.source instanceof Lt&&e.source._disposed)throw new TypeError("options.source must not be a disposed Source.");if(e.initInput!==void 0&&!(e.initInput instanceof t))throw new TypeError("options.initInput, when provided, must be an Input.");e.formatOptions!==void 0&&Kw(e.formatOptions,"formatOptions"),this._formats=e.formats,this._initInput=e.initInput??null,this._formatOptions=e.formatOptions??{},e.source instanceof Lt?this._rootRef=e.source.ref():this._rootRef=e.source,this._sourceRefs.push(this._rootRef)}get _rootSource(){return this._rootRef.source}async _getSourceUncached(e){C(this._rootSource instanceof Ar);let A=await this._rootSource._resolveRequest(e);return this._emit("source",{source:A.source,request:e,isRoot:e.isRoot}),A}_getSourceCached(e,A=_C){let r=this._sourceCache.find(i=>i.cacheGroup===A&&md(i.request,e));if(r)return r.age++,Promise.resolve(r.sourceRef.source.ref());let n=this._sourceCachePromises.find(i=>i.cacheGroup===A&&md(i.request,e));if(n)return n.promise.then(i=>i.sourceRef.source.ref());let a=(async()=>{let i=await this._getSourceUncached(e);if(xn(this._sourceCache,u=>u.cacheGroup===A&&u.sourceRef.source._refCount===1)>=4){let u=Mi(this._sourceCache,f=>f.cacheGroup===A&&f.sourceRef.source._refCount===1?f.age:1/0);C(u!==-1);let l=this._sourceCache[u];this._sourceCache.splice(u,1),l.sourceRef.free(),lp(this._sourceRefs,l.sourceRef)}this._sourceRefs.push(i);let c=this._sourceCachePromises.findIndex(u=>u.request===e);return C(c!==-1),this._sourceCachePromises.splice(c,1),{request:e,sourceRef:i,age:this._nextSourceCacheAge++,cacheGroup:A}})();return this._sourceCachePromises.push({request:e,cacheGroup:A,promise:a}),a.then(i=>{let s=i.sourceRef.source.ref();return this._sourceCache.push(i),s})}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader=new tn(this._rootSource),this._emit("source",{source:this._rootSource,request:null,isRoot:!0});for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,this._onFormatDetermined?.(e),e._createDemuxer(this);throw new Ao})()}get source(){return this._rootSource}async getFormat(){return await this._getDemuxer(),C(this._format),this._format}async canRead(){try{return await this._getDemuxer(),!0}catch(e){if(e instanceof Ao)return!1;throw e}}async getFirstTimestamp(e){e??=await this.getTracks();let A=e.filter(n=>n!==null);if(A.length===0)return 0;let r=await Promise.all(A.map(n=>n.getFirstTimestamp()));return Math.min(...r)}async computeDuration(e,A){e??=await this.getTracks();let r=e.filter(a=>a!==null);if(r.length===0)return 0;let n=await Promise.all(r.map(a=>a.computeDuration(A)));return Math.max(...n)}async getDurationFromMetadata(e,A){e??=await this.getTracks();let r=e.filter(i=>i!==null),a=(await Promise.all(r.map(i=>i.getDurationFromMetadata(A)))).filter(i=>i!==null);return a.length===0?null:Math.max(...a)}async getTracks(e){e&&=oa(e);let r=(await this._getTrackBackings()).map(n=>this._wrapBackingAsTrack(n));return bu(r,e)}async getVideoTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isVideoTrack());return bu(r,e)}async getAudioTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isAudioTrack());return bu(r,e)}async getPrimaryVideoTrack(e){e&&=oa(e);let A=rn(e,{sortBy:async n=>[sa((await n.getDisposition()).default),sa(await n.hasPairableAudioTrack()),sa(!await n.hasOnlyKeyPackets()),Td(await n.getBitrate())]});return(await this.getVideoTracks(A))[0]??null}async getPrimaryAudioTrack(e){e&&=oa(e);let A=await this.getPrimaryVideoTrack(),r=rn(e,{sortBy:async a=>[sa(!A||a.canBePairedWith(A)),sa((await a.getDisposition()).default),Td(await a.getBitrate())]});return(await this.getAudioTracks(r))[0]??null}async _getTrackBackings(){let e=await this._getDemuxer();return this._trackBackingsCache??=await e.getTrackBackings()}_wrapBackingAsTrack(e){let A=this._backingToTrack.get(e);if(A)return A;let n=e.getType()==="video"?new Hn(this,e):new aa(this,e);return this._backingToTrack.set(e,n),n}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){if(!this._disposed){this._disposed=!0;for(let e of this._sourceRefs)e.free();this._sourceRefs.length=0,this._demuxerPromise?.then(e=>e.dispose())}}[Symbol.dispose](){this.dispose()}},Ao=class extends Error{constructor(e="Input has an unsupported or unrecognizable format."){super(e),this.name="UnsupportedInputFormatError"}},Pt=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var tn=class{constructor(e){this.source=e}get fileSize(){let e=this.source._getFileSize();if(e===void 0)throw new Error("Reading file size too early; read required first.");return e}get fileSizeNonStrict(){return this.source._getFileSize()??null}requestSlice(e,A){if(this.source._disposed)throw new Pt;if(e<0||this.fileSizeNonStrict!==null&&e+A>this.fileSizeNonStrict)return null;if(A===0){let a=new Uint8Array(0);return new Mt(a,xe(a),0,e,e)}let r=e+A,n=this.source._read(e,r,dd,fd);return n instanceof Promise?n.then(a=>a?new Mt(a.bytes,a.view,a.offset,e,r):null):n?new Mt(n.bytes,n.view,n.offset,e,r):null}requestSliceRange(e,A,r){if(this.source._disposed)throw new Pt;if(e<0)return null;if(this.fileSizeNonStrict!==null)return this.requestSlice(e,Tn(this.fileSizeNonStrict-e,A,r));{let n=this.requestSlice(e,r),a=i=>i||(C(this.fileSizeNonStrict!==null),this.requestSlice(e,Tn(this.fileSizeNonStrict-e,A,r)));return n instanceof Promise?n.then(a):a(n)}}requestEntireFile(){if(this.fileSizeNonStrict!==null)return this.requestSlice(0,this.fileSizeNonStrict);let e=1024;return(async()=>{let A=[],r=0;for(;;){if(A.length===1&&this.fileSizeNonStrict!==null)return this.requestSlice(0,this.fileSizeNonStrict);let i=this.requestSliceRange(r,0,e);if(i instanceof Promise&&(i=await i),!i||i.length===0)break;let s=te(i,i.length);A.push(s),r+=i.length}let n=new Uint8Array(r),a=0;for(let i of A)n.set(i,a),a+=i.length;return new Mt(n,xe(n),0,0,r)})()}},Mt=class t{constructor(e,A,r,n,a){this.bytes=e,this.view=A,this.offset=r,this.start=n,this.end=a,this.bufferPos=n-r}static tempFromBytes(e){return new t(e,xe(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(e){this.bufferPos+=e}slice(e,A=this.end-e){if(e<this.start||e+A>this.end)throw new RangeError("Slicing outside of original slice.");return new t(this.bytes,this.view,this.offset,e,e+A)}},Vt=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},te=(t,e)=>{Vt(t,e);let A=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,A},ne=t=>(Vt(t,1),t.view.getUint8(t.bufferPos++)),Xi=(t,e)=>{Vt(t,2);let A=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,A},At=t=>{Vt(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},YA=t=>{Vt(t,3);let e=ys(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},Qs=t=>{Vt(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},Gr=(t,e)=>{Vt(t,4);let A=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,A},J=t=>{Vt(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},On=t=>{Vt(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},Dr=t=>{Vt(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},MC=t=>{Vt(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},Zl=(t,e)=>{let A,r;return e?(A=Gr(t,!0),r=Gr(t,!0)):(r=Gr(t,!1),A=Gr(t,!1)),r*4294967296+A},Ut=t=>{let e=J(t),A=J(t);return e*4294967296+A},iw=t=>{let e=Dr(t),A=J(t);return e*4294967296+A},pw=t=>{let e=On(t);return MC(t)*4294967296+e},sw=t=>{Vt(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},Qc=t=>{Vt(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},Le=(t,e)=>{Vt(t,e);let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(t.bytes[t.bufferPos++]);return A},iu=(t,e,A)=>mt.decode(te(t,e)).split(`
34
- `).map(a=>a.trim()).filter(a=>a.length>0&&!A?.ignore?.(a));var ua;(function(t){t[t.Unsynchronisation=128]="Unsynchronisation",t[t.ExtendedHeader=64]="ExtendedHeader",t[t.ExperimentalIndicator=32]="ExperimentalIndicator",t[t.Footer=16]="Footer"})(ua||(ua={}));var ga;(function(t){t[t.ISO_8859_1=0]="ISO_8859_1",t[t.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",t[t.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",t[t.UTF_8=3]="UTF_8"})(ga||(ga={}));var Hs=128,eA=10,la=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],uw=(t,e)=>{let A=t.filePos;e.raw??={},e.raw.TAG??=te(t,Hs-3),t.filePos=A;let r=ca(t,30);r&&(e.title??=r);let n=ca(t,30);n&&(e.artist??=n);let a=ca(t,30);a&&(e.album??=a);let i=ca(t,4),s=Number.parseInt(i,10);Number.isInteger(s)&&s>0&&(e.date??=new Date(String(s)));let o=te(t,30),c;if(o[28]===0&&o[29]!==0){let u=o[29];u>0&&(e.trackNumber??=u),t.skip(-30),c=ca(t,28),t.skip(2)}else t.skip(-30),c=ca(t,30);c&&(e.comment??=c);let g=ne(t);g<la.length&&(e.genre??=la[g])},ca=(t,e)=>{let A=te(t,e),r=Gn(A.indexOf(0),A.length),n=A.subarray(0,r),a="";for(let i=0;i<n.length;i++)a+=String.fromCharCode(n[i]);return a.trimEnd()},_A=t=>{let e=t.filePos,A=Le(t,3),r=ne(t),n=ne(t),a=ne(t),i=J(t);if(A!=="ID3"||r===255||n===255||i&2155905152)return t.filePos=e,null;let s=Bc(i);return{majorVersion:r,revision:n,flags:a,size:s}},Zi=(t,e,A)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let r=te(t,e.size),n=new kd(e,r);if(e.flags&ua.Footer&&n.removeFooter(),e.flags&ua.Unsynchronisation&&e.majorVersion===3&&n.ununsynchronizeAll(),e.flags&ua.ExtendedHeader){let a=n.readU32();e.majorVersion===3?n.pos+=a:n.pos+=a-4}for(;n.pos<=n.bytes.length-n.frameHeaderSize();){let a=n.readId3V2Frame();if(!a)break;let i=n.pos,s=n.pos+a.size,o=!1,c=!1,g=!1;if(e.majorVersion===3?(o=!!(a.flags&64),c=!!(a.flags&128)):e.majorVersion===4&&(o=!!(a.flags&4),c=!!(a.flags&8),g=!!(a.flags&2)||!!(e.flags&ua.Unsynchronisation)),o){console.warn(`Skipping encrypted ID3v2 frame ${a.id}`),n.pos=s;continue}if(c){console.warn(`Skipping compressed ID3v2 frame ${a.id}`),n.pos=s;continue}if(g&&n.ununsynchronizeRegion(n.pos,s),A.raw??={},a.id==="TXXX"){let u=A.raw.TXXX??={},l=n.readId3V2TextEncoding(),f=n.readId3V2Text(l,s),p=n.readId3V2Text(l,s);u[f]??=p}else a.id[0]==="T"?A.raw[a.id]??=n.readId3V2EncodingAndText(s):A.raw[a.id]??=n.readBytes(a.size);switch(n.pos=i,a.id){case"TIT2":case"TT2":A.title??=n.readId3V2EncodingAndText(s);break;case"TIT3":case"TT3":A.description??=n.readId3V2EncodingAndText(s);break;case"TPE1":case"TP1":A.artist??=n.readId3V2EncodingAndText(s);break;case"TALB":case"TAL":A.album??=n.readId3V2EncodingAndText(s);break;case"TPE2":case"TP2":A.albumArtist??=n.readId3V2EncodingAndText(s);break;case"TRCK":case"TRK":{let l=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(A.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(A.tracksTotal??=p)}break;case"TPOS":case"TPA":{let l=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(A.discNumber??=f),p&&Number.isInteger(p)&&p>0&&(A.discsTotal??=p)}break;case"TCON":case"TCO":{let u=n.readId3V2EncodingAndText(s),l=/^\((\d+)\)/.exec(u);if(l){let f=Number.parseInt(l[1]);if(la[f]!==void 0){A.genre??=la[f];break}}if(l=/^\d+$/.exec(u),l){let f=Number.parseInt(l[0]);if(la[f]!==void 0){A.genre??=la[f];break}}A.genre??=u}break;case"TDRC":case"TDAT":{let u=n.readId3V2EncodingAndText(s),l=new Date(u);Number.isNaN(l.getTime())||(A.date??=l)}break;case"TYER":case"TYE":{let u=n.readId3V2EncodingAndText(s),l=Number.parseInt(u,10);Number.isInteger(l)&&(A.date??=new Date(String(l)))}break;case"USLT":case"ULT":{let u=n.readU8();n.pos+=3,n.readId3V2Text(u,s),A.lyrics??=n.readId3V2Text(u,s)}break;case"COMM":case"COM":{let u=n.readU8();n.pos+=3,n.readId3V2Text(u,s),A.comment??=n.readId3V2Text(u,s)}break;case"APIC":case"PIC":{let u=n.readId3V2TextEncoding(),l;if(e.majorVersion===2){let y=n.readAscii(3);l=y==="PNG"?"image/png":y==="JPG"?"image/jpeg":"image/*"}else l=n.readId3V2Text(u,s);let f=n.readU8(),p=n.readId3V2Text(u,s).trimEnd(),h=s-n.pos;if(h>=0){let y=n.readBytes(h);A.images||(A.images=[]),A.images.push({data:y,mimeType:l,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:p})}}break;default:n.pos+=a.size;break}n.pos=s}},kd=class{constructor(e,A){this.header=e,this.bytes=A,this.pos=0,this.view=new DataView(A.buffer,A.byteOffset,A.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let A=0;A<this.bytes.length;A++){let r=this.bytes[A];e.push(r),r===255&&A!==this.bytes.length-1&&this.bytes[A]===0&&A++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,A){let r=[];for(let i=e;i<A;i++){let s=this.bytes[i];r.push(s),s===255&&i!==A-1&&this.bytes[i+1]===0&&i++}let n=this.bytes.subarray(0,e),a=this.bytes.subarray(A);this.bytes=new Uint8Array(n.length+r.length+a.length),this.bytes.set(n,0),this.bytes.set(r,n.length),this.bytes.set(a,n.length+r.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-eA),this.view=new DataView(this.bytes.buffer)}readBytes(e){let A=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,A}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),A=this.view.getUint8(this.pos+2);return this.pos+=3,e*256+A}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(this.view.getUint8(this.pos+r));return this.pos+=e,A}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let A=this.readU24();return{id:e,size:A,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let A=this.readU32(),r=this.header.majorVersion===4?Bc(A):A,n=this.readU16(),a=this.pos,i=s=>{let o=this.pos+s;if(o>this.bytes.length)return!1;if(o<=this.bytes.length-this.frameHeaderSize()){this.pos+=s;let c=this.readAscii(4);if(c!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(c))return!1}return!0};if(!i(r)){let s=this.header.majorVersion===4?A:Bc(A);i(s)&&(r=s)}return this.pos=a,{id:e,size:r,flags:n}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,A){let r=this.pos,n=this.readBytes(A-this.pos);switch(e){case ga.ISO_8859_1:{let a="";for(let i=0;i<n.length;i++){let s=n[i];if(s===0){this.pos=r+i+1;break}a+=String.fromCharCode(s)}return a}case ga.UTF_16_WITH_BOM:if(n[0]===255&&n[1]===254){let a=new TextDecoder("utf-16le"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(2,i))}else if(n[0]===254&&n[1]===255){let a=new TextDecoder("utf-16be"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(2,i))}else{let a=Gn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}case ga.UTF_16_BE_NO_BOM:{let a=new TextDecoder("utf-16be"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(0,i))}case ga.UTF_8:{let a=Gn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let A=this.readId3V2TextEncoding();return this.readId3V2Text(A,e)}};var Eu=class{constructor(e){this.mutex=new Nt,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateTimestamp(e,A,r){if(A<0)throw new Error(`Timestamps must be non-negative (got ${A}s).`);let n=this.trackTimestampInfo.get(e);if(n){if(r&&(n.maxTimestampBeforeLastKeyPacket=n.maxTimestamp),n.maxTimestampBeforeLastKeyPacket!==null&&A<n.maxTimestampBeforeLastKeyPacket)throw new Error(`Timestamps cannot be smaller than the largest timestamp of the previous GOP (a GOP begins with a key packet and ends right before the next key packet). Got ${A}s, but largest timestamp is ${n.maxTimestampBeforeLastKeyPacket}s.`);n.maxTimestamp=Math.max(n.maxTimestamp,A)}else{if(!r)throw new Error("First packet must be a key packet.");n={maxTimestamp:A,maxTimestampBeforeLastKeyPacket:null},this.trackTimestampInfo.set(e,n)}}};var Gd=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var iB=t=>{let e=Math.floor(t/36e5),A=Math.floor(t%(60*60*1e3)/(60*1e3)),r=Math.floor(t%(60*1e3)/1e3),n=t%1e3;return e.toString().padStart(2,"0")+":"+A.toString().padStart(2,"0")+":"+r.toString().padStart(2,"0")+"."+n.toString().padStart(3,"0")};var Un=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let A=0;A<e.length;A++)this.helperView.setUint8(A%8,e.charCodeAt(A)),A%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let A=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let a of e.children)a&&this.writeBox(a);let r=this.writer.getPos(),n=e.size??r-A;this.writer.seek(A),this.writeBoxHeader(e,n),this.writer.seek(r)}}writeBoxHeader(e,A){this.writeU32(e.largeSize?1:A),this.writeAscii(e.type),e.largeSize&&this.writeU64(A)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let A=this.offsets.get(e);C(A!==void 0);let r=this.writer.getPos();this.writer.seek(A),this.writeBox(e),this.writer.seek(r)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let A=this.measureBoxHeader(e);if(e.contents&&(A+=e.contents.byteLength),e.children)for(let r of e.children)r&&(A+=this.measureBox(r));return A}}},Ee=new Uint8Array(8),gA=new DataView(Ee.buffer),gt=t=>[(t%256+256)%256],de=t=>(gA.setUint16(0,t,!1),[Ee[0],Ee[1]]),vd=t=>(gA.setInt16(0,t,!1),[Ee[0],Ee[1]]),oB=t=>(gA.setUint32(0,t,!1),[Ee[1],Ee[2],Ee[3]]),$=t=>(gA.setUint32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),vr=t=>(gA.setInt32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),ir=t=>(gA.setUint32(0,Math.floor(t/2**32),!1),gA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),RC=t=>(gA.setInt32(0,Math.floor(t/2**32),!1),gA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),cB=t=>(gA.setInt16(0,2**8*t,!1),[Ee[0],Ee[1]]),zA=t=>(gA.setInt32(0,2**16*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),xd=t=>(gA.setInt32(0,2**30*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Sd=(t,e)=>{let A=[],r=t;do{let n=r&127;r>>=7,A.length>0&&(n|=128),A.push(n),e!==void 0&&e--}while(r>0||e);return A.reverse()},Ve=(t,e=!1)=>{let A=Array(t.length).fill(null).map((r,n)=>t.charCodeAt(n));return e&&A.push(0),A},uB=t=>{let e=t*(Math.PI/180),A=Math.round(Math.cos(e)),r=Math.round(Math.sin(e));return[A,r,0,-r,A,0,0,0,1]},gB=uB(0),lB=t=>[zA(t[0]),zA(t[1]),xd(t[2]),zA(t[3]),zA(t[4]),xd(t[5]),zA(t[6]),zA(t[7]),xd(t[8])],ce=(t,e,A)=>({type:t,contents:e&&new Uint8Array(e.flat(10)),children:A}),Me=(t,e,A,r,n)=>ce(t,[gt(e),oB(A),r??[]],n),dB=t=>t.isQuickTime?ce("ftyp",[Ve("qt "),$(512),Ve("qt ")]):t.fragmented?t.cmaf?ce("ftyp",[Ve("iso5"),$(512),Ve("iso5"),Ve("iso6"),Ve("mp41"),Ve("cmfc"),Ve("dash")]):ce("ftyp",[Ve("iso5"),$(512),Ve("iso5"),Ve("iso6"),Ve("mp41")]):ce("ftyp",[Ve("isom"),$(512),Ve("isom"),t.holdsAvc?Ve("avc1"):[],Ve("mp41")]),Od=()=>ce("styp",[Ve("iso5"),$(0),Ve("iso5"),Ve("iso6"),Ve("mp41"),Ve("cmfc"),Ve("dash")]),_d=(t,e)=>{let A=t.maxWrittenEndTimestamp-t.minWrittenTimestamp;return Number.isFinite(A)||(A=0),Me("sidx",1,0,[$(1),$(uA),ir(rt(t.minWrittenTimestamp,uA)),ir(0),de(0),de(1),$(e&2147483647),$(rt(A,uA)),$(0)])},ro=t=>({type:"mdat",largeSize:t}),fB=t=>({type:"free",size:t}),da=t=>ce("moov",void 0,[QC(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>FC(e,t.creationTime)),t.isFragmented?Cb(t.trackDatas):null,vb(t)]),QC=(t,e)=>{let A=Math.max(0,...e.map(i=>rt(Tu(i),uA)+rt(i.startTimestampOffset??0,uA))),r=Math.max(0,...e.map(i=>i.track.id))+1,n=!fr(t)||!fr(A),a=n?ir:$;return Me("mvhd",+n,0,[a(t),a(t),$(uA),a(A),zA(1),cB(1),Array(10).fill(0),lB(gB),Array(24).fill(0),$(r)])},Tu=t=>{if(t.samples.length===0)return 0;let e=1/0,A=-1/0;for(let r=0;r<t.samples.length;r++){let n=t.samples[r];n.timestamp<e&&(e=n.timestamp),n.timestamp+n.duration>A&&(A=n.timestamp+n.duration)}return e===1/0?0:A-e},FC=(t,e)=>{let A=DB(t),r=t.startTimestampOffset!==null&&t.startTimestampOffset>0;return ce("trak",void 0,[zC(t,e),r?NC(t,t.startTimestampOffset):null,HC(t,e),A.name!==void 0?ce("udta",void 0,[ce("name",[...Ht.encode(A.name)])]):null])},zC=(t,e)=>{let A=rt(Tu(t),uA)+rt(t.startTimestampOffset??0,uA),r=!fr(e)||!fr(A),n=r?ir:$,a;if(t.type==="video"){let s=t.track.metadata.rotation;a=uB(s??0)}else a=gB;let i=2;return t.track.metadata.disposition?.default!==!1&&(i|=1),Me("tkhd",+r,i,[n(e),n(e),$(t.track.id),$(0),n(A),Array(8).fill(0),de(0),de(t.track.id),cB(t.type==="audio"?1:0),de(0),lB(a),zA(t.type==="video"?t.info.width:0),zA(t.type==="video"?t.info.height:0)])},NC=(t,e)=>{let A=rt(e,uA),r=rt(Tu(t),uA),n=!fr(A)||!fr(r),a=n?ir:$,i=n?RC:vr;return ce("edts",void 0,[Me("elst",n?1:0,0,[$(2),a(A),i(-1),zA(1),a(r),i(0),zA(1)])])},HC=(t,e)=>ce("mdia",void 0,[UC(t,e),Md(!0,qC[t.type],LC[t.type]),jC(t)]),UC=(t,e)=>{let A=rt(Tu(t),t.timescale),r=!fr(e)||!fr(A),n=r?ir:$;return Me("mdhd",+r,0,[n(e),n(e),$(t.timescale),n(A),de(IB(t.track.metadata.languageCode??Xe)),de(0)])},qC={video:"vide",audio:"soun",subtitle:"text"},LC={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Md=(t,e,A,r="\0\0\0\0")=>Me("hdlr",0,0,[t?Ve("mhlr"):$(0),Ve(e),Ve(r),$(0),$(0),Ve(A,!0)]),jC=t=>ce("minf",void 0,[ZC[t.type](),$C(),eb(t)]),VC=()=>Me("vmhd",0,1,[de(0),de(0),de(0),de(0)]),KC=()=>Me("smhd",0,0,[de(0),de(0)]),WC=()=>Me("nmhd",0,0),ZC={video:VC,audio:KC,subtitle:WC},$C=()=>ce("dinf",void 0,[JC()]),JC=()=>Me("dref",0,0,[$(1)],[XC()]),XC=()=>Me("url ",0,1),eb=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(A=>A.sampleCompositionTimeOffset!==0);return ce("stbl",void 0,[tb(t),pb(t),e?Ib(t):null,e?Db(t):null,Bb(t),Pb(t),yb(t),wb(t)])},tb=t=>{let e;if(t.type==="video")e=Ab(Rb(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let A=yB(t.track.source._codec,t.muxer.isQuickTime);C(A),e=ob(A,t)}else t.type==="subtitle"&&(e=mb(zb[t.track.source._codec],t));return C(e),Me("stsd",0,0,[$(1)],[e])},Ab=(t,e)=>ce(t,[Array(6).fill(0),de(1),de(0),de(0),Array(12).fill(0),de(e.info.width),de(e.info.height),$(4718592),$(4718592),$(0),de(1),Array(32).fill(0),de(24),vd(65535)],[Qb[e.track.source._codec](e),rb(e),cp(e.info.decoderConfig.colorSpace)?nb(e):null]),rb=t=>t.info.pixelAspectRatio.num===t.info.pixelAspectRatio.den?null:ce("pasp",[$(t.info.pixelAspectRatio.num),$(t.info.pixelAspectRatio.den)]),nb=t=>ce("colr",[Ve(t.muxer.isQuickTime?"nclc":"nclx"),de(mr[t.info.decoderConfig.colorSpace.primaries]),de(hr[t.info.decoderConfig.colorSpace.transfer]),de(pr[t.info.decoderConfig.colorSpace.matrix]),t.muxer.isQuickTime?[]:gt((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),ib=t=>t.info.decoderConfig&&ce("avcC",[...ft(t.info.decoderConfig.description)]),ab=t=>t.info.decoderConfig&&ce("hvcC",[...ft(t.info.decoderConfig.description)]),aB=t=>{if(!t.info.decoderConfig)return null;let e=t.info.decoderConfig,A=e.codec.split("."),r=Number(A[1]),n=Number(A[2]),a=Number(A[3]),i=A[4]?Number(A[4]):1,s=A[8]?Number(A[8]):Number(e.colorSpace?.fullRange??0),o=(a<<4)+(i<<1)+s,c=A[5]?Number(A[5]):e.colorSpace?.primaries?mr[e.colorSpace.primaries]:2,g=A[6]?Number(A[6]):e.colorSpace?.transfer?hr[e.colorSpace.transfer]:2,u=A[7]?Number(A[7]):e.colorSpace?.matrix?pr[e.colorSpace.matrix]:2;return Me("vpcC",1,0,[gt(r),gt(n),gt(o),gt(c),gt(g),gt(u),de(0)])},sb=t=>ce("av1C",Tp(t.info.decoderConfig.codec)),ob=(t,e)=>{let A=0,r,n=16,a=Ot.includes(e.track.source._codec);if(a){let i=e.track.source._codec,{sampleSize:s}=kA(i);n=8*s,n>16&&(A=1)}if(e.muxer.isQuickTime&&(A=1),A===0)r=[Array(6).fill(0),de(1),de(A),de(0),$(0),de(e.info.numberOfChannels),de(n),de(0),de(0),de(e.info.sampleRate<2**16?e.info.sampleRate:0),de(0)];else{let i=a?0:-2;r=[Array(6).fill(0),de(1),de(A),de(0),$(0),de(e.info.numberOfChannels),de(Math.min(n,16)),vd(i),de(0),de(e.info.sampleRate<2**16?e.info.sampleRate:0),de(0),a?[$(1),$(n/8),$(e.info.numberOfChannels*n/8)]:[$(0),$(0),$(0)],$(2)]}return ce(t,r,[Fb(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Yd=t=>{let e;switch(t.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${t.track.source._codec}`)}let A=[...gt(e),...gt(21),...oB(0),...$(0),...$(0)];if(t.info.decoderConfig.description){let r=ft(t.info.decoderConfig.description);A=[...A,...gt(5),...Sd(r.byteLength),...r]}return A=[...de(1),...gt(0),...gt(4),...Sd(A.length),...A,...gt(6),...gt(1),...gt(2)],A=[...gt(3),...Sd(A.length),...A],Me("esds",0,0,A)},nn=t=>ce("wave",void 0,[cb(t),ub(t),ce("\0\0\0\0")]),cb=t=>ce("frma",[Ve(yB(t.track.source._codec,t.muxer.isQuickTime))]),ub=t=>{let{littleEndian:e}=kA(t.track.source._codec);return ce("enda",[de(+e)])},gb=t=>{let e=t.info.numberOfChannels,A=3840,r=t.info.sampleRate,n=0,a=0,i=new Uint8Array(0),s=t.info.decoderConfig?.description;if(s){C(s.byteLength>=18);let o=ft(s),c=Cc(o);e=c.outputChannelCount,A=c.preSkip,r=c.inputSampleRate,n=c.outputGain,a=c.channelMappingFamily,c.channelMappingTable&&(i=c.channelMappingTable)}return ce("dOps",[gt(0),gt(e),de(A),$(r),vd(n),gt(a),...i])},lb=t=>{let e=t.info.decoderConfig?.description;C(e);let A=ft(e);return Me("dfLa",0,0,[...A.subarray(4)])},rr=t=>{let{littleEndian:e,sampleSize:A}=kA(t.track.source._codec),r=+e;return Me("pcmC",0,0,[gt(r),gt(8*A)])},db=t=>{let e=bc(t.info.firstPacket.data);if(!e)throw new Error("Couldn't extract AC-3 frame info from the audio packet. Ensure the packets contain valid AC-3 sync frames (as specified in ETSI TS 102 366).");let A=new Uint8Array(3),r=new Ge(A);return r.writeBits(2,e.fscod),r.writeBits(5,e.bsid),r.writeBits(3,e.bsmod),r.writeBits(3,e.acmod),r.writeBits(1,e.lfeon),r.writeBits(5,e.bitRateCode),r.writeBits(5,0),ce("dac3",[...A])},fb=t=>{let e=Ec(t.info.firstPacket.data);if(!e)throw new Error("Couldn't extract E-AC-3 frame info from the audio packet. Ensure the packets contain valid E-AC-3 sync frames (as specified in ETSI TS 102 366).");let A=16;for(let i of e.substreams)A+=23,i.numDepSub>0?A+=9:A+=1;let r=Math.ceil(A/8),n=new Uint8Array(r),a=new Ge(n);a.writeBits(13,e.dataRate),a.writeBits(3,e.substreams.length-1);for(let i of e.substreams)a.writeBits(2,i.fscod),a.writeBits(5,i.bsid),a.writeBits(1,0),a.writeBits(1,0),a.writeBits(3,i.bsmod),a.writeBits(3,i.acmod),a.writeBits(1,i.lfeon),a.writeBits(3,0),a.writeBits(4,i.numDepSub),i.numDepSub>0?a.writeBits(9,i.chanLoc):a.writeBits(1,0);return ce("dec3",[...n])},mb=(t,e)=>ce(t,[Array(6).fill(0),de(1)],[Nb[e.track.source._codec](e)]),hb=t=>ce("vttC",[...Ht.encode(t.info.config.description)]);var pb=t=>Me("stts",0,0,[$(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[$(e.sampleCount),$(e.sampleDelta)])]),wb=t=>{if(t.samples.every(A=>A.type==="key"))return null;let e=[...t.samples.entries()].filter(([,A])=>A.type==="key");return Me("stss",0,0,[$(e.length),e.map(([A])=>$(A+1))])},Bb=t=>Me("stsc",0,0,[$(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[$(e.firstChunk),$(e.samplesPerChunk),$(1)])]),Pb=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=kA(t.track.source._codec);return Me("stsz",0,0,[$(e*t.info.numberOfChannels),$(t.samples.reduce((A,r)=>A+rt(r.duration,t.timescale),0))])}return Me("stsz",0,0,[$(0),$(t.samples.length),t.samples.map(e=>$(e.size))])},yb=t=>t.finalizedChunks.length>0&&_e(t.finalizedChunks).offset>=2**32?Me("co64",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>ir(e.offset))]):Me("stco",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>$(e.offset))]),Ib=t=>Me("ctts",1,0,[$(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[$(e.sampleCount),vr(e.sampleCompositionTimeOffset)])]),Db=t=>{let e=1/0,A=-1/0,r=1/0,n=-1/0;C(t.compositionTimeOffsetTable.length>0),C(t.samples.length>0);for(let i=0;i<t.compositionTimeOffsetTable.length;i++){let s=t.compositionTimeOffsetTable[i];e=Math.min(e,s.sampleCompositionTimeOffset),A=Math.max(A,s.sampleCompositionTimeOffset)}for(let i=0;i<t.samples.length;i++){let s=t.samples[i];r=Math.min(r,rt(s.timestamp,t.timescale)),n=Math.max(n,rt(s.timestamp+s.duration,t.timescale))}let a=Math.max(-e,0);return n>=2**31?null:Me("cslg",0,0,[vr(a),vr(e),vr(A),vr(r),vr(n)])},Cb=t=>ce("mvex",void 0,t.map(bb)),bb=t=>Me("trex",0,0,[$(t.track.id),$(1),$(0),$(0),$(0)]),Rd=(t,e)=>ce("moof",void 0,[Eb(t),...e.map(Tb)]),Eb=t=>Me("mfhd",0,0,[$(t)]),mB=t=>{let e=0,A=0,r=0,n=0,a=t.type==="delta";return A|=+a,a?e|=1:e|=2,e<<24|A<<16|r<<8|n},Tb=t=>ce("traf",void 0,[kb(t),Gb(t),xb(t)]),kb=t=>{C(t.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let A=t.currentChunk.samples[1]??t.currentChunk.samples[0],r={duration:A.timescaleUnitsToNextSample,size:A.size,flags:mB(A)};return Me("tfhd",0,e,[$(t.track.id),$(r.duration),$(r.size),$(r.flags)])},Gb=t=>(C(t.currentChunk),Me("tfdt",1,0,[ir(rt(t.currentChunk.startTimestamp,t.timescale))])),xb=t=>{C(t.currentChunk);let e=t.currentChunk.samples.map(h=>h.timescaleUnitsToNextSample),A=t.currentChunk.samples.map(h=>h.size),r=t.currentChunk.samples.map(mB),n=t.currentChunk.samples.map(h=>rt(h.timestamp-h.decodeTimestamp,t.timescale)),a=new Set(e),i=new Set(A),s=new Set(r),o=new Set(n),c=s.size===2&&r[0]!==r[1],g=a.size>1,u=i.size>1,l=!c&&s.size>1,f=o.size>1||[...o].some(h=>h!==0),p=0;return p|=1,p|=4*+c,p|=256*+g,p|=512*+u,p|=1024*+l,p|=2048*+f,Me("trun",1,p,[$(t.currentChunk.samples.length),$(t.currentChunk.offset-t.currentChunk.moofOffset||0),c?$(r[0]):[],t.currentChunk.samples.map((h,y)=>[g?$(e[y]):[],u?$(A[y]):[],l?$(r[y]):[],f?vr(n[y]):[]])])},hB=t=>ce("mfra",void 0,[...t.map(Sb),Yb()]),Sb=(t,e)=>Me("tfra",1,0,[$(t.track.id),$(63),$(t.finalizedChunks.length),t.finalizedChunks.map(r=>[ir(rt(r.samples[0].timestamp,t.timescale)),ir(r.moofOffset),$(e+1),$(1),$(1)])]),Yb=()=>Me("mfro",0,0,[$(0)]),pB=()=>ce("vtte"),wB=(t,e,A,r,n)=>ce("vttc",void 0,[n!==null?ce("vsid",[vr(n)]):null,A!==null?ce("iden",[...Ht.encode(A)]):null,e!==null?ce("ctim",[...Ht.encode(iB(e))]):null,r!==null?ce("sttg",[...Ht.encode(r)]):null,ce("payl",[...Ht.encode(t)])]),BB=t=>ce("vtta",[...Ht.encode(t)]),vb=t=>{let e=[],A=t.format._options.metadataFormat??"auto",r=t.output._metadataTags;if(A==="mdir"||A==="auto"&&!t.isQuickTime){let n=_b(r);n&&e.push(n)}else if(A==="mdta"){let n=Mb(r);n&&e.push(n)}else(A==="udta"||A==="auto"&&t.isQuickTime)&&Ob(e,t.output._metadataTags);return e.length===0?null:ce("udta",void 0,e)},Ob=(t,e)=>{for(let{key:A,value:r}of Es(e))switch(A){case"title":t.push(nr("\xA9nam",r));break;case"description":t.push(nr("\xA9des",r));break;case"artist":t.push(nr("\xA9ART",r));break;case"album":t.push(nr("\xA9alb",r));break;case"albumArtist":t.push(nr("albr",r));break;case"genre":t.push(nr("\xA9gen",r));break;case"date":t.push(nr("\xA9day",r.toISOString().slice(0,10)));break;case"comment":t.push(nr("\xA9cmt",r));break;case"lyrics":t.push(nr("\xA9lyr",r));break;case"raw":break;case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:$t(A)}if(e.raw)for(let A in e.raw){let r=e.raw[A];r==null||A.length!==4||t.some(n=>n.type===A)||(typeof r=="string"?t.push(nr(A,r)):r instanceof Uint8Array&&t.push(ce(A,Array.from(r))))}},nr=(t,e)=>{let A=Ht.encode(e);return ce(t,[de(A.length),de(IB("und")),Array.from(A)])},sB={"image/jpeg":13,"image/png":14,"image/bmp":27},PB=(t,e)=>{let A=[];for(let{key:r,value:n}of Es(t))switch(r){case"title":A.push({key:e?"title":"\xA9nam",value:FA(n)});break;case"description":A.push({key:e?"description":"\xA9des",value:FA(n)});break;case"artist":A.push({key:e?"artist":"\xA9ART",value:FA(n)});break;case"album":A.push({key:e?"album":"\xA9alb",value:FA(n)});break;case"albumArtist":A.push({key:e?"album_artist":"aART",value:FA(n)});break;case"comment":A.push({key:e?"comment":"\xA9cmt",value:FA(n)});break;case"genre":A.push({key:e?"genre":"\xA9gen",value:FA(n)});break;case"lyrics":A.push({key:e?"lyrics":"\xA9lyr",value:FA(n)});break;case"date":A.push({key:e?"date":"\xA9day",value:FA(n.toISOString().slice(0,10))});break;case"images":for(let a of n)a.kind==="coverFront"&&A.push({key:"covr",value:ce("data",[$(sB[a.mimeType]??0),$(0),Array.from(a.data)])});break;case"trackNumber":if(e){let a=t.tracksTotal!==void 0?`${n}/${t.tracksTotal}`:n.toString();A.push({key:"track",value:FA(a)})}else A.push({key:"trkn",value:ce("data",[$(0),$(0),de(0),de(n),de(t.tracksTotal??0),de(0)])});break;case"discNumber":e||A.push({key:"disc",value:ce("data",[$(0),$(0),de(0),de(n),de(t.discsTotal??0),de(0)])});break;case"tracksTotal":case"discsTotal":break;case"raw":break;default:$t(r)}if(t.raw)for(let r in t.raw){let n=t.raw[r];n==null||!e&&r.length!==4||A.some(a=>a.key===r)||(typeof n=="string"?A.push({key:r,value:FA(n)}):n instanceof Uint8Array?A.push({key:r,value:ce("data",[$(0),$(0),Array.from(n)])}):n instanceof TA&&A.push({key:r,value:ce("data",[$(sB[n.mimeType]??0),$(0),Array.from(n.data)])}))}return A},_b=t=>{let e=PB(t,!1);return e.length===0?null:Me("meta",0,0,void 0,[Md(!1,"mdir","","appl"),ce("ilst",void 0,e.map(A=>ce(A.key,void 0,[A.value])))])},Mb=t=>{let e=PB(t,!0);return e.length===0?null:ce("meta",void 0,[Md(!1,"mdta",""),Me("keys",0,0,[$(e.length)],e.map(A=>ce("mdta",[...Ht.encode(A.key)]))),ce("ilst",void 0,e.map((A,r)=>{let n=String.fromCharCode(...$(r+1));return ce(n,void 0,[A.value])}))])},FA=t=>ce("data",[$(1),$(0),...Ht.encode(t)]),Rb=(t,e)=>{switch(t){case"avc":return e.startsWith("avc3")?"avc3":"avc1";case"hevc":return"hvc1";case"vp8":return"vp08";case"vp9":return"vp09";case"av1":return"av01"}},Qb={avc:ib,hevc:ab,vp8:aB,vp9:aB,av1:sb},yB=(t,e)=>{switch(t){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt";case"ac3":return"ac-3";case"eac3":return"ec-3"}if(e)switch(t){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(t){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},Fb=(t,e)=>{switch(t){case"aac":return Yd;case"mp3":return Yd;case"opus":return gb;case"vorbis":return Yd;case"flac":return lb;case"ac3":return db;case"eac3":return fb}if(e)switch(t){case"pcm-s24":return nn;case"pcm-s24be":return nn;case"pcm-s32":return nn;case"pcm-s32be":return nn;case"pcm-f32":return nn;case"pcm-f32be":return nn;case"pcm-f64":return nn;case"pcm-f64be":return nn}else switch(t){case"pcm-s16":return rr;case"pcm-s16be":return rr;case"pcm-s24":return rr;case"pcm-s24be":return rr;case"pcm-s32":return rr;case"pcm-s32be":return rr;case"pcm-f32":return rr;case"pcm-f32be":return rr;case"pcm-f64":return rr;case"pcm-f64be":return rr}return null},zb={webvtt:"wvtt"},Nb={webvtt:hb},IB=t=>{C(t.length===3);let e=0;for(let A=0;A<3;A++)e<<=5,e+=t.charCodeAt(A)-96;return e};var qn=class{constructor(e,A){if(this.finalized=!1,this.started=!1,this.pos=0,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1,e._writerAcquired)throw new Error("Can't have multiple Writers for the same Target.");this.target=e,e._setMonotonicity(A),e._writerAcquired=!0}start(){C(!this.started),this.target._start(),this.started=!0}write(e){C(this.started&&!this.finalized),this.maybeTrackWrites(e),this.target._write(e,this.pos),this.pos+=e.byteLength}seek(e){this.pos=e}getPos(){return this.pos}async flush(){return C(this.started&&!this.finalized),this.target._flush()}async finalize(){C(this.started&&!this.finalized),await this.target._finalize(),this.finalized=!0}maybeTrackWrites(e){if(!this.trackedWrites)return;let A=this.getPos();if(A<this.trackedStart){if(A+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-A),A=0}let r=A+e.byteLength-this.trackedStart,n=this.trackedWrites.byteLength;for(;n<r;)n*=2;if(n!==this.trackedWrites.byteLength){let a=new Uint8Array(n);a.set(this.trackedWrites,0),this.trackedWrites=a}this.trackedWrites.set(e,A-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,A+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let A={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,A}};var AA=class extends $A{constructor(){super(...arguments),this._writerAcquired=!1,this._monotonicity=null,this.onwrite=null}_setMonotonicity(e){this._monotonicity!==!1&&(this._monotonicity=e)}_dispatchWrite(e,A){this.onwrite?.(e,A),this._emit("write",{start:e,end:A})}slice(e){if(!Number.isInteger(e)||e<0)throw new TypeError("offset must be a non-negative integer.");return new ku(this,e)}},Qd=2**16,Fd=2**32,Or=class extends AA{constructor(e={}){if(super(),this.buffer=null,this._maxPos=0,!e||typeof e!="object")throw new TypeError("BufferTarget options, when provided, must be an object.");if(e.onFinalize!==void 0&&typeof e.onFinalize!="function")throw new TypeError("options.onFinalize, when provided, must be a function.");if(this._options=e,this._supportsResize="resize"in new ArrayBuffer(0),this._supportsResize)try{this._buffer=new ArrayBuffer(Qd,{maxByteLength:Fd})}catch{this._buffer=new ArrayBuffer(Qd),this._supportsResize=!1}else this._buffer=new ArrayBuffer(Qd);this._bytes=new Uint8Array(this._buffer)}_ensureSize(e){let A=this._buffer.byteLength;for(;A<e;)A*=2;if(A!==this._buffer.byteLength){if(A>Fd)throw new Error(`ArrayBuffer exceeded maximum size of ${Fd} bytes. Please consider using another target.`);if(this._supportsResize)this._buffer.resize(A);else{let r=new ArrayBuffer(A),n=new Uint8Array(r);n.set(this._bytes,0),this._buffer=r,this._bytes=n}}}_start(){}_write(e,A){this._ensureSize(A+e.byteLength),this._bytes.set(e,A),this._maxPos=Math.max(this._maxPos,A+e.byteLength),this._dispatchWrite(A,A+e.byteLength)}async _flush(){}async _finalize(){this.buffer=this._buffer.slice(0,this._maxPos),this._options.onFinalize&&await this._options.onFinalize(this.buffer),this._emit("finalized")}async _close(){}_getSlice(e,A){return this._bytes.slice(e,A)}},c8=2**24;var ku=class extends AA{constructor(e,A){super(),this._baseTarget=e,this._offset=A}_start(){}_write(e,A){this._baseTarget._write(e,this._offset+A),this._dispatchWrite(A,A+e.byteLength)}_flush(){return this._baseTarget._flush()}async _finalize(){this._emit("finalized")}async _close(){}_setMonotonicity(e){super._setMonotonicity(e),this._baseTarget._setMonotonicity(e)}},Ln=class{constructor(e,A){if(this.rootPath=e,this.getTarget=A,typeof e!="string")throw new TypeError("rootPath must be a string.");if(typeof A!="function")throw new TypeError("getTarget must be a function.")}};var uA=57600,Hb=2082844800,DB=t=>{let e={},A=t.track;return A.metadata.name!==void 0&&(e.name=A.metadata.name),e},rt=(t,e,A=!0)=>{let r=t*e;return A?Math.round(r):r},Gu=class extends Eu{constructor(e,A){super(e),this.writer=null,this.boxWriter=null,this.initWriter=null,this.initBoxWriter=null,this.auxTarget=new Or,this.auxWriter=new qn(this.auxTarget,!1),this.auxBoxWriter=new Un(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=lt(),this.creationTime=Math.floor(Date.now()/1e3)+Hb,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.minWrittenTimestamp=1/0,this.maxWrittenEndTimestamp=-1/0,this.segmentHeaderSize=null,this.format=A,this.isQuickTime=A instanceof ma,this.isCmaf=A instanceof fa,this.minimumFragmentDuration=A._options.minimumFragmentDuration??(A instanceof fa?1/0:1)}async start(){let e=await this.mutex.acquire();if(this.isCmaf?(this.fastStart="fragmented",this.isFragmented=!0):(this.writer=await this.output._getRootWriter(r=>this.format._options.fastStart!==void 0?this.format._options.fastStart==="fragmented":r instanceof Or),this.boxWriter=new Un(this.writer),this.fastStart=this.format._options.fastStart??(this.writer.target instanceof Or?"in-memory":!1),this.isFragmented=this.fastStart==="fragmented"),this.isCmaf){if(!this.output._hasInitTarget())throw new Error("CMAF outputs require the initTarget field in OutputOptions to be set; the init segment will be written to it.");let r=await this.output._getInitTarget(),n=new qn(r,!0);n.start(),this.initWriter=n,this.initBoxWriter=new Un(n)}let A=this.output._tracks.some(r=>r.isVideoTrack()&&r.source._codec==="avc");{let r=this.initBoxWriter??this.boxWriter;if(C(r),this.format._options.onFtyp&&r.writer.startTrackingWrites(),r.writeBox(dB({isQuickTime:this.isQuickTime,holdsAvc:A,fragmented:this.isFragmented,cmaf:this.isCmaf})),this.format._options.onFtyp){let{data:n,start:a}=r.writer.stopTrackingWrites();this.format._options.onFtyp(n,a)}this.ftypSize=r.writer.getPos(),this.isCmaf&&await this.initWriter.flush()}if(this.fastStart!=="in-memory")if(this.fastStart==="reserve"){for(let r of this.output._tracks)if(r.metadata.maximumPacketCount===void 0)throw new Error("All tracks must specify maximumPacketCount in their metadata when using fastStart: 'reserve'.")}else this.isFragmented||(C(this.writer),C(this.boxWriter),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ro(!0),this.boxWriter.writeBox(this.mdat));await this.writer?.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(A=>A.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(A=>A.type==="video"||A.type==="audio"?A.info.decoderConfig.codec:{webvtt:"wvtt"}[A.track.source._codec]);return Gc({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(A=>A.type==="video"),hasAudio:this.trackDatas.some(A=>A.type==="audio"),codecStrings:e})}getVideoTrackData(e,A,r){let n=this.trackDatas.find(l=>l.track===e);if(n)return n;xp(r),C(r),C(r.decoderConfig);let a={...r.decoderConfig};C(a.codedWidth!==void 0),C(a.codedHeight!==void 0);let i=!1;if(e.source._codec==="avc"&&!a.description){let l=Ni(A.data);if(!l)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");a.description=Fp(l),i=!0}else if(e.source._codec==="hevc"&&!a.description){let l=Hi(A.data);if(!l)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");a.description=Hp(l),i=!0}let s=hp(1/(e.metadata.frameRate??uA),1e6).den,o=a.displayAspectWidth,c=a.displayAspectHeight,g=o===void 0||c===void 0?{num:1,den:1}:Sn({num:o*a.codedHeight,den:c*a.codedWidth}),u={muxer:this,track:e,type:"video",info:{width:a.codedWidth,height:a.codedHeight,pixelAspectRatio:g,decoderConfig:a,requiresAnnexBTransformation:i},timescale:s,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1};return this.trackDatas.push(u),this.trackDatas.sort((l,f)=>l.track.id-f.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),u}getAudioTrackData(e,A,r){let n=this.trackDatas.find(o=>o.track===e);if(n)return n;Sp(r),C(r),C(r.decoderConfig);let a={...r.decoderConfig},i=!1;if(e.source._codec==="aac"&&!a.description){let o=RA(Mt.tempFromBytes(A.data));if(!o)throw new Error("Couldn't parse ADTS header from the AAC packet. Make sure the packets are in ADTS format (as specified in ISO 13818-7) when not providing a description, or provide a description (must be an AudioSpecificConfig as specified in ISO 14496-3) and ensure the packets are raw AAC data.");let c=er[o.samplingFrequencyIndex],g=Lr[o.channelConfiguration];if(c===void 0||g===void 0)throw new Error("Invalid ADTS frame header.");a.description=yp({objectType:o.objectType,sampleRate:c,numberOfChannels:g}),i=!0}let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:a,requiresPcmTransformation:!this.isFragmented&&Ot.includes(e.source._codec),expectedNextPcmPacketTimestamp:null,requiresAdtsStripping:i,firstPacket:A},timescale:a.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1};return this.trackDatas.push(s),this.trackDatas.sort((o,c)=>o.track.id-c.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,A){let r=this.trackDatas.find(a=>a.track===e);if(r)return r;Yp(A),C(A),C(A.config);let n={muxer:this,track:e,type:"subtitle",info:{config:A.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1,lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(n),this.trackDatas.sort((a,i)=>a.track.id-i.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),n}async addEncodedVideoPacket(e,A,r){let n=await this.mutex.acquire();try{let a=this.getVideoTrackData(e,A,r),i=A.data;if(a.info.requiresAnnexBTransformation){let o=[...Fi(i)].map(c=>i.subarray(c.offset,c.offset+c.length));if(o.length===0)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");i=yc(o,4)}this.validateTimestamp(a.track,A.timestamp,A.type==="key");let s=this.createSampleForTrack(a,i,A.timestamp,A.duration,A.type);await this.registerSample(a,s)}finally{n()}}async addEncodedAudioPacket(e,A,r){let n=await this.mutex.acquire();try{let a=this.getAudioTrackData(e,A,r),i=A.data;if(a.info.requiresAdtsStripping){let g=RA(Mt.tempFromBytes(i));if(!g)throw new Error("Expected ADTS frame, didn't get one.");let u=g.crcCheck===null?Mn:MA;i=i.subarray(u)}this.validateTimestamp(a.track,A.timestamp,A.type==="key");let s=A.timestamp,o=A.duration;if(a.info.requiresPcmTransformation){let u=kA(a.info.decoderConfig.codec).sampleSize*a.info.numberOfChannels;if(o=i.byteLength/u/a.info.sampleRate,a.info.expectedNextPcmPacketTimestamp!==null){let l=s-a.info.expectedNextPcmPacketTimestamp;if(l<.01)s=a.info.expectedNextPcmPacketTimestamp;else{let f=await this.padWithSilence(a,a.info.expectedNextPcmPacketTimestamp,l);s=a.info.expectedNextPcmPacketTimestamp+f}}a.info.expectedNextPcmPacketTimestamp=s+o}let c=this.createSampleForTrack(a,i,s,o,A.type);await this.registerSample(a,c)}finally{n()}}async padWithSilence(e,A,r){let n=rt(r,e.timescale);if(r=n/e.timescale,n>0){let{sampleSize:a,silentValue:i}=kA(e.info.decoderConfig.codec),s=n*e.info.numberOfChannels,o=new Uint8Array(a*s).fill(i),c=this.createSampleForTrack(e,new Uint8Array(o.buffer),A,r,"key");await this.registerSample(e,c)}return r}async addSubtitleCue(e,A,r){let n=await this.mutex.acquire();try{let a=this.getSubtitleTrackData(e,r);this.validateTimestamp(a.track,A.timestamp,!0),e.source._codec==="webvtt"&&(a.cueQueue.push(A),await this.processWebVTTCues(a,A.timestamp))}finally{n()}}async processWebVTTCues(e,A){for(;e.cueQueue.length>0;){let r=new Set([]);for(let c of e.cueQueue)C(c.timestamp<=A),C(e.lastCueEndTimestamp<=c.timestamp+c.duration),r.add(Math.max(c.timestamp,e.lastCueEndTimestamp)),r.add(c.timestamp+c.duration);let n=[...r].sort((c,g)=>c-g),a=n[0],i=n[1]??a;if(A<i)break;if(e.lastCueEndTimestamp<a){this.auxWriter.seek(0);let c=pB();this.auxBoxWriter.writeBox(c);let g=this.auxTarget._getSlice(0,this.auxWriter.getPos()),u=this.createSampleForTrack(e,g,e.lastCueEndTimestamp,a-e.lastCueEndTimestamp,"key");await this.registerSample(e,u),e.lastCueEndTimestamp=a}this.auxWriter.seek(0);for(let c=0;c<e.cueQueue.length;c++){let g=e.cueQueue[c];if(g.timestamp>=i)break;Gd.lastIndex=0;let u=Gd.test(g.text),l=g.timestamp+g.duration,f=e.cueToSourceId.get(g);if(f===void 0&&i<l&&(f=e.nextSourceId++,e.cueToSourceId.set(g,f)),g.notes){let h=BB(g.notes);this.auxBoxWriter.writeBox(h)}let p=wB(g.text,u?a:null,g.identifier??null,g.settings??null,f??null);this.auxBoxWriter.writeBox(p),l===i&&e.cueQueue.splice(c--,1)}let s=this.auxTarget._getSlice(0,this.auxWriter.getPos()),o=this.createSampleForTrack(e,s,a,i-a,"key");await this.registerSample(e,o),e.lastCueEndTimestamp=i}}createSampleForTrack(e,A,r,n,a){return{timestamp:r,decodeTimestamp:r,duration:n,data:A,size:A.byteLength,type:a,timescaleUnitsToNextSample:rt(n,e.timescale)}}processTimestamps(e,A){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){this.isFragmented||(e.startTimestampOffset??=e.timestampProcessingQueue[0].timestamp);let n=0;for(let a=0;a<e.timestampProcessingQueue.length;a++){let i=e.timestampProcessingQueue[a],s=rt(i.duration,e.timescale);n+=s}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:n,sampleDelta:1});else{let a=_e(e.timeToSampleTable);a.sampleCount+=n}e.timestampProcessingQueue.length=0;return}let r=e.timestampProcessingQueue.map(n=>n.timestamp).sort((n,a)=>n-a);this.isFragmented||(e.startTimestampOffset??=r[0]);for(let n=0;n<e.timestampProcessingQueue.length;n++){let a=e.timestampProcessingQueue[n];a.decodeTimestamp=r[n];let i=rt(a.timestamp-a.decodeTimestamp,e.timescale),s=rt(a.duration,e.timescale);if(e.lastTimescaleUnits!==null){C(e.lastSample);let o=rt(a.decodeTimestamp,e.timescale,!1),c=Math.round(o-e.lastTimescaleUnits);if(C(c>=0),e.lastTimescaleUnits+=c,e.lastSample.timescaleUnitsToNextSample=c,!this.isFragmented){let g=_e(e.timeToSampleTable);if(C(g),g.sampleCount===1){g.sampleDelta=c;let l=e.timeToSampleTable[e.timeToSampleTable.length-2];l&&l.sampleDelta===c&&(l.sampleCount++,e.timeToSampleTable.pop(),g=l)}else g.sampleDelta!==c&&(g.sampleCount--,e.timeToSampleTable.push(g={sampleCount:1,sampleDelta:c}));g.sampleDelta===s?g.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:s});let u=_e(e.compositionTimeOffsetTable);C(u),u.sampleCompositionTimeOffset===i?u.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i})}}else e.lastTimescaleUnits=rt(a.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:s}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i}));e.lastSample=a}if(e.timestampProcessingQueue.length=0,C(e.lastSample),C(e.lastTimescaleUnits!==null),A!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){C(A.type==="key");let n=rt(A.timestamp,e.timescale,!1),a=Math.round(n-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=a}}async registerSample(e,A){A.type==="key"&&this.processTimestamps(e,A),e.timestampProcessingQueue.push(A),this.isFragmented?(e.sampleQueue.push(A),await this.interleaveSamples()):this.fastStart==="reserve"?await this.registerSampleFastStartReserve(e,A):await this.addSampleToTrack(e,A)}async addSampleToTrack(e,A){if(!this.isFragmented&&(e.samples.push(A),this.fastStart==="reserve")){let n=e.track.metadata.maximumPacketCount;if(C(n!==void 0),e.samples.length>n)throw new Error(`Track #${e.track.id} has already reached the maximum packet count (${n}). Either add less packets or increase the maximum packet count.`)}let r=!1;if(!e.currentChunk)r=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,A.timestamp);let n=A.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let a=this.trackDatas.every(i=>{if(e===i)return A.type==="key";let s=i.sampleQueue[0];return s?s.type==="key":i.closed});n>=this.minimumFragmentDuration&&a&&A.timestamp>this.maxWrittenTimestamp&&(r=!0,await this.finalizeFragment())}else r=n>=.5}r&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:A.timestamp,samples:[],offset:null,moofOffset:null}),C(e.currentChunk),e.currentChunk.samples.push(A),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,A.timestamp),this.maxWrittenEndTimestamp=Math.max(this.maxWrittenEndTimestamp,A.timestamp+A.duration),this.minWrittenTimestamp=Math.min(this.minWrittenTimestamp,A.timestamp))}async finalizeCurrentChunk(e){if(C(!this.isFragmented),C(this.writer),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let A=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(A=e.currentChunk.samples.reduce((r,n)=>r+rt(n.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||_e(e.compactlyCodedChunkTable).samplesPerChunk!==A)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:A}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let r of e.currentChunk.samples)C(r.data),this.writer.write(r.data),r.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(C(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let A=null,r=1/0;for(let a of this.trackDatas){if(!e&&a.sampleQueue.length===0&&!a.closed)break e;a.sampleQueue.length>0&&a.sampleQueue[0].timestamp<r&&(A=a,r=a.sampleQueue[0].timestamp)}if(!A)break;let n=A.sampleQueue.shift();await this.addSampleToTrack(A,n)}}async finalizeFragment(e=!this.isCmaf){C(this.isFragmented);let A=this.nextFragmentNumber++;if(A===1){let f=this.initBoxWriter??this.boxWriter;C(f),this.format._options.onMoov&&f.writer.startTrackingWrites(),this.ensureOneEnabledTrack();let p=da(this);if(f.writeBox(p),this.format._options.onMoov){let{data:h,start:y}=f.writer.stopTrackingWrites();this.format._options.onMoov(h,y)}if(this.isCmaf){C(this.initWriter),await this.initWriter.flush(),await this.initWriter.finalize(),this.writer=await this.output._getRootWriter(!0),this.boxWriter=new Un(this.writer);let h=this.boxWriter.measureBox(Od()),y=this.boxWriter.measureBox(_d(this,0));this.segmentHeaderSize=h+y,this.writer.seek(this.segmentHeaderSize)}}C(this.writer),C(this.boxWriter);let r=this.trackDatas.filter(f=>f.currentChunk),n=Rd(A,r),a=this.writer.getPos(),i=a+this.boxWriter.measureBox(n),s=i+GA,o=1/0;for(let f of r){f.currentChunk.offset=s,f.currentChunk.moofOffset=a;for(let p of f.currentChunk.samples)s+=p.size;o=Math.min(o,f.currentChunk.startTimestamp)}let c=s-i,g=c>=2**32;if(g)for(let f of r)f.currentChunk.offset+=yr-GA;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=Rd(A,r);if(this.boxWriter.writeBox(u),this.format._options.onMoof){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMoof(f,p,o)}C(this.writer.getPos()===i),this.format._options.onMdat&&this.writer.startTrackingWrites();let l=ro(g);l.size=c,this.boxWriter.writeBox(l),this.writer.seek(i+(g?yr:GA));for(let f of r)for(let p of f.currentChunk.samples)this.writer.write(p.data),p.data=null;if(this.format._options.onMdat){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMdat(f,p)}for(let f of r)f.finalizedChunks.push(f.currentChunk),this.finalizedChunks.push(f.currentChunk),f.currentChunk=null;e&&await this.writer.flush()}async registerSampleFastStartReserve(e,A){if(C(this.writer),C(this.boxWriter),this.allTracksAreKnown()){if(!this.mdat){this.ensureOneEnabledTrack();let r=da(this),a=this.boxWriter.measureBox(r)+this.computeSampleTableSizeUpperBound()+4096;C(this.ftypSize!==null),this.writer.seek(this.ftypSize+a),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ro(!0),this.boxWriter.writeBox(this.mdat);for(let i of this.trackDatas){for(let s of i.sampleQueue)await this.addSampleToTrack(i,s);i.sampleQueue.length=0}}await this.addSampleToTrack(e,A)}else e.sampleQueue.push(A)}computeSampleTableSizeUpperBound(){C(this.fastStart==="reserve");let e=0;for(let A of this.trackDatas){let r=A.track.metadata.maximumPacketCount;C(r!==void 0),e+=8*Math.ceil(2/3*r),e+=4*r,e+=8*Math.ceil(2/3*r),e+=12*Math.ceil(2/3*r),e+=4*r,e+=8*r}return e}async onTrackClose(e){let A=await this.mutex.acquire(),r=this.trackDatas.find(n=>n.track===e);r&&(r.closed=!0,r.type==="subtitle"&&e.source._codec==="webvtt"&&await this.processWebVTTCues(r,1/0),this.processTimestamps(r)),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),A()}ensureOneEnabledTrack(){for(let e of["video","audio","subtitle"]){let A=this.trackDatas.filter(n=>n.type===e);if(A.length===0)continue;if(!A.some(n=>n.track.metadata.disposition?.default!==!1)){let n=A[0];n.track.metadata.disposition={...n.track.metadata.disposition,default:!0}}}}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve(),this.ensureOneEnabledTrack();for(let A of this.trackDatas)A.closed=!0,A.type==="subtitle"&&A.track.source._codec==="webvtt"&&await this.processWebVTTCues(A,1/0),this.processTimestamps(A);if(this.isFragmented)await this.interleaveSamples(!0),await this.finalizeFragment(!1);else for(let A of this.trackDatas){await this.finalizeCurrentChunk(A),C(A.startTimestampOffset!==null);for(let r=0;r<A.samples.length;r++){let n=A.samples[r];n.timestamp-=A.startTimestampOffset,n.decodeTimestamp-=A.startTimestampOffset}}if(C(this.writer),C(this.boxWriter),this.fastStart==="in-memory"){this.mdat=ro(!1);let A;for(let n=0;n<2;n++){let a=da(this),i=this.boxWriter.measureBox(a);A=this.boxWriter.measureBox(this.mdat);let s=this.writer.getPos()+i+A;for(let o of this.finalizedChunks){o.offset=s;for(let{data:c}of o.samples)C(c),s+=c.byteLength,A+=c.byteLength}if(s<2**32)break;A>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let r=da(this);if(this.boxWriter.writeBox(r),this.format._options.onMoov){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,a)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=A,this.boxWriter.writeBox(this.mdat);for(let n of this.finalizedChunks)for(let a of n.samples)C(a.data),this.writer.write(a.data),a.data=null;if(this.format._options.onMdat){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,a)}}else if(this.isFragmented)if(this.isCmaf){let A=this.segmentHeaderSize!==null?this.writer.getPos()-this.segmentHeaderSize:0;this.writer.seek(0),this.boxWriter.writeBox(Od()),this.boxWriter.writeBox(_d(this,A))}else{let A=this.writer.getPos(),r=hB(this.trackDatas);this.boxWriter.writeBox(r);let n=this.writer.getPos()-A;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(n)}else{C(this.mdat);let A=this.boxWriter.offsets.get(this.mdat);C(A!==void 0);let r=this.writer.getPos()-A;if(this.mdat.size=r,this.mdat.largeSize=r>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:a,start:i}=this.writer.stopTrackingWrites();this.format._options.onMdat(a,i)}let n=da(this);if(this.fastStart==="reserve"){C(this.ftypSize!==null),this.writer.seek(this.ftypSize),this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);let a=this.boxWriter.offsets.get(this.mdat)-this.writer.getPos();this.boxWriter.writeBox(fB(a))}else this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);if(this.format._options.onMoov){let{data:a,start:i}=this.writer.stopTrackingWrites();this.format._options.onMoov(a,i)}}e()}};var ha=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}async _start(){}async _flushAndClose(e){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(!1),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForOngoingClose(e){return this._closingPromise??=(async()=>{await this._flushAndClose(e),this._closed=!0})()}},pa=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!_t.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${_t.join(", ")}.`);this._codec=e}},CB=(t,e)=>{if(t.metadata.hasOnlyKeyPackets&&e.type!=="key")throw new Error("Cannot add non-key packets to a hasOnlyKeyPackets video track.")};var zd=class{constructor(e,A){this.source=e,this.encodingConfig=A,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.emittedEncoderPackets=0,this.codedWidth=null,this.codedHeight=null,this.outputWidth=null,this.outputHeight=null,this.frameRateLastSample=null,this.frameRateLastTimestamp=null,this.frameRateLastEndTimestamp=null,this.preciseTimings=[],this.customEncoder=null,this.customEncoderCallSerializer=new Dn,this.customEncoderQueueSize=0,this.alphaEncoder=null,this.splitter=null,this.splitterCreationFailed=!1,this.alphaFrameQueue=[],this.error=null,this.lastMuxerPromise=Promise.resolve()}async add(e,A,r){let n=e;try{this.checkForEncoderError(),this.source._ensureValidAdd();let a=this.encodingConfig,i=a.sizeChangeBehavior??"deny",s=!1;if(this.codedWidth!==null&&this.codedHeight!==null){if((e.codedWidth!==this.codedWidth||e.codedHeight!==this.codedHeight)&&(s=!0,i==="deny"))throw new Error(`Video sample size must remain constant. Expected ${this.codedWidth}x${this.codedHeight}, got ${e.codedWidth}x${e.codedHeight}. To allow the sample size to change over time, set \`sizeChangeBehavior\` to a value other than 'deny' in the encoding options.`)}else this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight;if(a.transform?.width!==void 0||a.transform?.height!==void 0||a.transform?.rotate!==void 0||a.transform?.crop!==void 0||a.transform?.force===!0||s&&i!=="passThrough"){let u=a.transform?.width,l=a.transform?.height,f=a.transform?.fit??"fill";s&&i!=="passThrough"&&(C(this.outputWidth),C(this.outputHeight),C(i!=="deny"),u=this.outputWidth,l=this.outputHeight,f=i);let p=await e.transform({width:u,height:l,roundDimensionsTo:2,crop:a.transform?.crop,rotate:a.transform?.rotate,fit:f,alpha:a.alpha});(this.outputWidth===null||this.outputHeight===null)&&(this.outputWidth=p.displayWidth,this.outputHeight=p.displayHeight),A&&e.close(),e=p,A=!0}else(this.outputWidth===null||this.outputHeight===null)&&(this.outputWidth=e.codedWidth,this.outputHeight=e.codedHeight);let g=a.transform?.frameRate;if(g!==void 0){let u=e.timestamp+e.duration,l=Tl(e.timestamp,g);if(this.frameRateLastSample!==null)if(l<=this.frameRateLastTimestamp){this.frameRateLastSample.close(),this.frameRateLastSample=e.clone(),this.frameRateLastEndTimestamp=u;return}else await this.padFrameRate(l,r);e===n&&(e=e.clone(),A=!0),e.setTimestamp(l),e.setDuration(1/g),this.frameRateLastSample?.close(),this.frameRateLastSample=e.clone(),this.frameRateLastTimestamp=l,this.frameRateLastEndTimestamp=u}await this.processAndEncode(e,r)}finally{A&&e.close()}}async processAndEncode(e,A){let r=this.encodingConfig,n;if(r.transform?.process){let a=r.transform.process(e);if(a instanceof Promise&&(a=await a),a===null)return;Array.isArray(a)||(a=[a]),n=a.map(i=>i instanceof QA?i:typeof VideoFrame<"u"&&i instanceof VideoFrame?new QA(i):new QA(i,{timestamp:e.timestamp,duration:e.duration}))}else n=[e];try{for(let a of n){this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(a),this.encoderInitialized||await this.ensureEncoderPromise),C(this.encoderInitialized);let i=this.encodingConfig.keyFrameInterval??2,s=Math.floor(a.timestamp/i),o={...a.encodeOptions,...A},c={...o,keyFrame:o.keyFrame!==void 0?o.keyFrame:i===0||s!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=s,this.customEncoder){this.customEncoderQueueSize++;let g=a.clone(),u=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(g,c)).then(()=>this.customEncoderQueueSize--).catch(l=>this.error??=l).finally(()=>{g.close()});this.customEncoderQueueSize>=4&&await u}else{C(this.encoder);let g=a.toVideoFrame(),u=ye(this.preciseTimings,g.timestamp,f=>f.microsecondTimestamp),l=u!==-1?this.preciseTimings[u]:null;if(l&&l.microsecondTimestamp===g.timestamp?(l.timestamp!==a.timestamp&&(l.timestampIsValid=!1),l.duration!==a.duration&&(l.durationIsValid=!1)):(this.preciseTimings.splice(u+1,0,{microsecondTimestamp:g.timestamp,timestamp:a.timestamp,duration:a.duration,timestampIsValid:!0,durationIsValid:!0}),this.preciseTimings.length>128&&this.preciseTimings.shift()),!this.alphaEncoder)this.encoder.encode(g,c),g.close();else if(!!g.format&&!g.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(g,c),g.close();else{let p=g.displayWidth,h=g.displayHeight;this.splitter||(this.splitter=new xu(p,h));let{colorFrame:y,alphaFrame:w}=await this.splitter.update(g);this.alphaFrameQueue.push(w),this.encoder.encode(y,c),y.close()}this.encoder.encodeQueueSize>=4&&await new Promise(f=>this.encoder.addEventListener("dequeue",f,{once:!0}))}await this.lastMuxerPromise}}finally{for(let a of n)a!==e&&a.close()}}async padFrameRate(e,A){let r=this.encodingConfig.transform.frameRate;C(this.frameRateLastSample);let n=Math.round((e-this.frameRateLastTimestamp)*r);for(let a=1;a<n;a++){let i=this.frameRateLastSample.clone();i.setTimestamp(this.frameRateLastTimestamp+a/r),i.setDuration(1/r),await this.processAndEncode(i,A),i.close()}}ensureEncoder(e){this.ensureEncoderPromise=(async()=>{let A=Pd({...this.encodingConfig,width:e.codedWidth,height:e.codedHeight,squarePixelWidth:e.squarePixelWidth,squarePixelHeight:e.squarePixelHeight,framerate:this.source._connectedTrack?.metadata.frameRate});this.encodingConfig.onEncoderConfig?.(A);let r=yu.find(n=>n.supports(this.encodingConfig.codec,A));if(r)this.customEncoder=new r,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=A,this.customEncoder.onPacket=(n,a)=>{if(!(n instanceof Fe))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(a!==void 0&&(!a||typeof a!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");CB(this.source._connectedTrack,n),this.encodingConfig.onEncodedPacket?.(n,a),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,n,a).catch(i=>{this.error??=i})},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(A.alpha="discard",this.encodingConfig.alpha==="keep"&&(A.latencyMode="quality"),(A.width%2===1||A.height%2===1)&&(this.encodingConfig.codec==="avc"||this.encodingConfig.codec==="hevc"))throw new Error(`The dimensions ${A.width}x${A.height} are not supported for codec '${this.encodingConfig.codec}'; both width and height must be even numbers. Make sure to round your dimensions to the nearest even number.`);if(!(await VideoEncoder.isConfigSupported(A)).supported)throw new Error(`This specific encoder configuration (${A.codec}, ${A.bitrate} bps, ${A.width}x${A.height}, hardware acceleration: ${A.hardwareAcceleration??"no-preference"}) is not supported by this browser. Consider using another codec or changing your video parameters.`);let i=[],s=[],o=0,c=0,g=(l,f,p)=>{let h={};if(f){let E=new Uint8Array(f.byteLength);f.copyTo(E),h.alpha=E}let y=Fe.fromEncodedChunk(l,h),w=ye(this.preciseTimings,l.timestamp,E=>E.microsecondTimestamp),D=w!==-1?this.preciseTimings[w]:null,b=null;this.emittedEncoderPackets===0&&y.type==="delta"&&p?.decoderConfig&&(b=$r(this.encodingConfig.codec,p.decoderConfig,y.data)),(D&&D.microsecondTimestamp===l.timestamp||b!==null)&&(y=y.clone({timestamp:D?.timestampIsValid?D.timestamp:void 0,duration:D?.durationIsValid?D.duration:void 0,type:b??void 0})),CB(this.source._connectedTrack,y),this.encodingConfig.onEncodedPacket?.(y,p),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,y,p).catch(E=>{this.error??=E}),this.emittedEncoderPackets++},u=new Error("Encoding error").stack;if(this.encoder=new VideoEncoder({output:(l,f)=>{if(!this.alphaEncoder){g(l,null,f);return}let p=this.alphaFrameQueue.shift();C(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:l.type==="key"}),c++,p.close(),i.push({chunk:l,meta:f})):c===0?g(l,null,f):(s.push(o+c),i.push({chunk:l,meta:f}))},error:l=>{l.stack=u,this.error??=l}}),this.encoder.configure(A),this.encodingConfig.alpha==="keep"){let l=new Error("Encoding error").stack;this.alphaEncoder=new VideoEncoder({output:(f,p)=>{c--;let h=i.shift();for(C(h!==void 0),g(h.chunk,f,h.meta),o++;s.length>0&&s[0]===o;){s.shift();let y=i.shift();C(y!==void 0),g(y.chunk,null,y.meta)}},error:f=>{f.stack=l,this.error??=f}}),this.alphaEncoder.configure(A)}}C(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(e){if(e||this.checkForEncoderError(),!e&&this.frameRateLastSample){let A=this.encodingConfig.transform.frameRate,r=Tl(this.frameRateLastEndTimestamp,A);await this.padFrameRate(r)}this.frameRateLastSample?.close(),this.frameRateLastSample=null,this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||(await this.encoder.flush(),await this.alphaEncoder?.flush()),this.encoder.state!=="closed"&&this.encoder.close(),this.alphaEncoder&&this.alphaEncoder.state!=="closed"&&this.alphaEncoder.close(),this.alphaFrameQueue.forEach(A=>A?.close()),this.splitter?.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.error}},bB=!1,xu=class t{constructor(e,A){this.canvas=null,this.gl=null,this.colorProgram=null,this.alphaProgram=null,this.vao=null,this.sourceTexture=null,this.alphaResolutionLocation=null,this.worker=null,this.pendingRequests=new Map,this.nextRequestId=0;let r=typeof OffscreenCanvas<"u"||typeof document<"u"&&typeof document.createElement=="function";if(!t.forceCpu&&r&&!bB)try{typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(e,A):(this.canvas=document.createElement("canvas"),this.canvas.width=e,this.canvas.height=A);let n=this.canvas.getContext("webgl2",{alpha:!0});if(!n)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=n,this.colorProgram=this.createColorProgram(),this.alphaProgram=this.createAlphaProgram(),this.vao=this.createVAO(),this.sourceTexture=this.createTexture(),this.alphaResolutionLocation=this.gl.getUniformLocation(this.alphaProgram,"u_resolution"),this.gl.useProgram(this.colorProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.colorProgram,"u_sourceTexture"),0),this.gl.useProgram(this.alphaProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.alphaProgram,"u_sourceTexture"),0)}catch(n){this.gl=null,this.canvas=null,bB=!0,console.warn("Falling back to CPU for color/alpha splitting.",n)}}async update(e){return this.gl?this.updateGpu(e):this.updateCpu(e)}updateGpu(e){C(this.gl),C(this.canvas),(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.sourceTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e);let A=this.runColorProgram(e),r=this.runAlphaProgram(e);return e.close(),{colorFrame:A,alphaFrame:r}}createVertexShader(){return C(this.gl),this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
33
+ `),r=this.gl.createProgram();return this.gl.attachShader(r,e),this.gl.attachShader(r,A),this.gl.linkProgram(r),r}createShader(e,A){C(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),r}createVAO(){C(this.gl),C(this.program);let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let A=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,A,this.gl.STATIC_DRAW);let n=this.gl.getAttribLocation(this.program,"a_position"),a=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,2,this.gl.FLOAT,!1,16,8),e}createTexture(){C(this.gl);let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}updateGpu(e,A){C(this.gl),C(this.canvas),(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colorTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.alphaTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,A),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);let r=new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0});return e.close(),A.close(),r}updateCpu(e,A){if(!this.worker){let a=new Blob([`(${MC.toString()})()`],{type:"application/javascript"}),i=URL.createObjectURL(a);this.worker=new Worker(i),URL.revokeObjectURL(i),this.worker.addEventListener("message",s=>{let o=s.data,c=this.pendingRequests.get(o.id);c&&(this.pendingRequests.delete(o.id),"error"in o?c.reject(new Error(o.error)):c.resolve(o.frame))}),this.worker.addEventListener("error",s=>{let o=new Error(s.message||"Color/alpha merge worker error.");for(let c of this.pendingRequests.values())c.reject(o);this.pendingRequests.clear()})}let r=this.nextRequestId++,n=lt();return this.pendingRequests.set(r,n),this.worker.postMessage({id:r,color:e,alpha:A},{transfer:[e,A]}),n.promise}close(){this.gl?.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null,this.canvas=null,this.worker?.terminate(),this.worker=null;let e=new Error("Color/alpha merger closed.");for(let A of this.pendingRequests.values())A.reject(e);this.pendingRequests.clear()}};Cu.forceCpu=!0;var MC=()=>{let t=null,e=null,A=Promise.resolve();self.addEventListener("message",o=>{let{id:c,color:g,alpha:u}=o.data;A=A.then(async()=>{try{let l=await r(g,u);self.postMessage({id:c,frame:l},{transfer:[l]})}catch(l){self.postMessage({id:c,error:l.message})}finally{g.close(),u.close()}})});let r=async(o,c)=>{let g=o.format,u=c.format;if(!g||!u)throw new Error("CPU color/alpha merging requires a known VideoFrame format.");let l=g.includes("P10"),f=g.includes("P12"),p=u.includes("P10"),h=u.includes("P12");if(p!==l||h!==f)throw new Error(`CPU color/alpha merging requires the alpha frame to have the same bit depth as the color frame (color: '${g}', alpha: '${u}').`);let y=o.codedWidth,w=o.codedHeight;if(g==="RGBX"||g==="RGBA"||g==="BGRX"||g==="BGRA")return await n(o,c,y,w,g);if(g==="I420"||g==="I420P10"||g==="I420P12"||g==="I422"||g==="I422P10"||g==="I422P12"||g==="I444"||g==="I444P10"||g==="I444P12")return await a(o,c,y,w,g);if(g==="NV12")return await i(o,c,y,w);throw new Error(`CPU color/alpha merging does not support format '${g}'.`)},n=async(o,c,g,u,l)=>{let f=g*u,p=new Uint8Array(f*4);await o.copyTo(p);let h=await s(c,g,u,1);for(let D=0,b=3;D<f;D++,b+=4)p[b]=h[D];let w={format:l==="RGBX"||l==="RGBA"?"RGBA":"BGRA",codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[p.buffer]};return new VideoFrame(p,w)},a=async(o,c,g,u,l)=>{let f=l.includes("P10"),p=l.includes("P12"),h=f||p?2:1,y,w;l.startsWith("I420")?(y=Math.ceil(g/2),w=Math.ceil(u/2)):l.startsWith("I422")?(y=Math.ceil(g/2),w=u):(y=g,w=u);let D=g*u,b=y*w,E=D*h,x=b*h,S=D*h,k=E+2*x+S,R=new Uint8Array(k);await o.copyTo(R);let M=await s(c,g,u,h),N=E+2*x;R.set(M,N);let F={format:l.slice(0,4)+"A"+l.slice(4),codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[R.buffer]};return new VideoFrame(R,F)},i=async(o,c,g,u)=>{let l=g*u,f=Math.ceil(g/2),p=Math.ceil(u/2),h=f*p,y=o.allocationSize();(!e||e.byteLength!==y)&&(e=new Uint8Array(y)),await o.copyTo(e);let w=new Uint8Array(l+2*h+l);w.set(e.subarray(0,l),0);let D=l,b=l+h,E=l;for(let k=0;k<h;k++)w[D+k]=e[E+k*2],w[b+k]=e[E+k*2+1];let x=await s(c,g,u,1);w.set(x,l+2*h);let S={format:"I420A",codedWidth:g,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[w.buffer]};return new VideoFrame(w,S)},s=async(o,c,g,u)=>{let l=o.allocationSize();(!t||t.byteLength!==l)&&(t=new Uint8Array(l)),await o.copyTo(t);let f=o.format;if(f==="RGBA"||f==="BGRA"||f==="RGBX"||f==="BGRX"){let p=f==="RGBA"||f==="RGBX"?0:2,h=c*g;for(let y=0;y<h;y++)t[y]=t[y*4+p];return t.subarray(0,h)}else return t.subarray(0,c*g*u)}},na=class extends Du{constructor(e){if(!(e instanceof Hn))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._track=e}async _createDecoder(e,A){if(!await this._track.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let r=await this._track.getCodec(),n=await this._track.getRotation(),a=await this._track.getDecoderConfig(),i=await this._track.getTimeResolution();return C(r&&a),new bd(e,A,r,a,n,i)}_createPacketSink(){return new An(this._track)}async getSample(e,A={}){ra(e);for await(let r of this.mediaSamplesAtTimestamps([e],A))return r;throw new Error("Internal error: Iterator returned nothing.")}samples(e,A,r={}){return this.mediaSamplesInRange(e,A,r)}samplesAtTimestamps(e,A={}){return this.mediaSamplesAtTimestamps(e,A)}};var ia=class t{constructor(e,A){this.input=e,this._backing=A}isVideoTrack(){return this instanceof Hn}isAudioTrack(){return this instanceof aa}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}async getInternalCodecId(){return this._backing.getInternalCodecId()}get internalCodecId(){return st(this._backing.getInternalCodecId(),"internalCodecId","getInternalCodecId")}async getLanguageCode(){return this._backing.getLanguageCode()}get languageCode(){return st(this._backing.getLanguageCode(),"languageCode","getLanguageCode")}async getName(){return this._backing.getName()}get name(){return st(this._backing.getName(),"name","getName")}async getTimeResolution(){return this._backing.getTimeResolution()}get timeResolution(){return st(this._backing.getTimeResolution(),"timeResolution","getTimeResolution")}async isRelativeToUnixEpoch(){return this._backing.isRelativeToUnixEpoch()}async getDisposition(){return this._backing.getDisposition()}get disposition(){return st(this._backing.getDisposition(),"disposition","getDisposition")}async getBitrate(){return this._backing.getBitrate()}async getAverageBitrate(){return this._backing.getAverageBitrate()}async getFirstTimestamp(){return(await this._backing.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async computeDuration(e){let A=await this._backing.getPacket(1/0,{metadataOnly:!0,...e}),r=(A?.timestamp??0)+(A?.duration??0);return Ds(r,await this.getTimeResolution())}async getDurationFromMetadata(e={}){return this._backing.getDurationFromMetadata(e)}async computePacketStats(e=1/0,A){let r=new An(this),n=1/0,a=-1/0,i=0,s=0;for await(let o of r.packets(void 0,void 0,{metadataOnly:!0,...A})){if(i>=e&&o.timestamp>=a)break;n=Math.min(n,o.timestamp),a=Math.max(a,o.timestamp+o.duration),i++,s+=o.byteLength}return{packetCount:i,averagePacketRate:i?Number((i/(a-n)).toPrecision(16)):0,averageBitrate:i?Number((8*s/(a-n)).toPrecision(16)):0}}async isLive(){return await this._backing.getLiveRefreshInterval()!==null}async getLiveRefreshInterval(){return this._backing.getLiveRefreshInterval()}canBePairedWith(e){if(!(e instanceof t))throw new TypeError("other must be an InputTrack.");return this.input!==e.input||this===e?!1:(this._backing.getPairingMask()&e._backing.getPairingMask())!==0n}async getPairableTracks(e){return this.input.getTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPairableVideoTracks(e){return this.input.getVideoTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPairableAudioTracks(e){return this.input.getAudioTracks(rn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableVideoTrack(e){return this.input.getPrimaryVideoTrack(rn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableAudioTrack(e){return this.input.getPrimaryAudioTrack(rn({filter:A=>A.canBePairedWith(this)},e))}async hasPairableTrack(e){e&&=Ed(e);let A=await this.input.getTracks();for(let r of A)if(this.canBePairedWith(r)&&(!e||await e(r)))return!0;return!1}hasPairableVideoTrack(e){return e&&=Ed(e),this.hasPairableTrack(async A=>A.isVideoTrack()&&(!e||await e(A)))}hasPairableAudioTrack(e){return e&&=Ed(e),this.hasPairableTrack(async A=>A.isAudioTrack()&&(!e||await e(A)))}},st=(t,e,A)=>{if(t instanceof Promise)throw new Error(`'${e}' is deprecated and not available synchronously for this track. Use the preferred '${A}()' instead.`);return t},Ed=t=>{if(t!==void 0&&typeof t!="function")throw new TypeError("predicate, when provided, must be a function.");return t?e=>{let A=n=>{if(typeof n!="boolean")throw new TypeError("predicate must return or resolve to a boolean value.");return n},r=t(e);return r instanceof Promise?r.then(A):A(r)}:void 0},Hn=class extends ia{constructor(e,A){super(e,A),this._pixelAspectRatioCache=null,this._backing=A}get type(){return"video"}async getCodec(){return this._backing.getCodec()}get codec(){return st(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!1}async getCodedWidth(){return this._backing.getCodedWidth()}get codedWidth(){return st(this._backing.getCodedWidth(),"codedWidth","getCodedWidth")}async getCodedHeight(){return this._backing.getCodedHeight()}get codedHeight(){return st(this._backing.getCodedHeight(),"codedHeight","getCodedHeight")}async getRotation(){return this._backing.getRotation()}get rotation(){return st(this._backing.getRotation(),"rotation","getRotation")}async getSquarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelWidth(){return st(this._backing.getSquarePixelWidth(),"squarePixelWidth","getSquarePixelWidth")}async getSquarePixelHeight(){return this._backing.getSquarePixelHeight()}get squarePixelHeight(){return st(this._backing.getSquarePixelHeight(),"squarePixelHeight","getSquarePixelHeight")}async getPixelAspectRatio(){return this._pixelAspectRatioCache??=Sn({num:await this.getSquarePixelWidth()*await this.getCodedHeight(),den:await this.getSquarePixelHeight()*await this.getCodedWidth()})}get pixelAspectRatio(){return this._pixelAspectRatioCache??=Sn({num:st(this._backing.getSquarePixelWidth(),"pixelAspectRatio","getPixelAspectRatio")*st(this._backing.getCodedHeight(),"pixelAspectRatio","getPixelAspectRatio"),den:st(this._backing.getSquarePixelHeight(),"pixelAspectRatio","getPixelAspectRatio")*st(this._backing.getCodedWidth(),"pixelAspectRatio","getPixelAspectRatio")})}async getDisplayWidth(){let e=await this._backing.getMetadataDisplayWidth?.();return e??(await this.getRotation()%180===0?this.getSquarePixelWidth():this.getSquarePixelHeight())}get displayWidth(){let e=this._backing.getMetadataDisplayWidth?.();if(e!==void 0){let n=st(e,"displayWidth","getDisplayWidth");if(n!==null)return n}let r=st(this._backing.getRotation(),"displayWidth","getDisplayWidth")%180===0?this._backing.getSquarePixelWidth():this._backing.getSquarePixelHeight();return st(r,"displayWidth","getDisplayWidth")}async getDisplayHeight(){let e=await this._backing.getMetadataDisplayHeight?.();return e??(await this.getRotation()%180===0?this.getSquarePixelHeight():this.getSquarePixelWidth())}get displayHeight(){let e=this._backing.getMetadataDisplayHeight?.();if(e!==void 0){let n=st(e,"displayHeight","getDisplayHeight");if(n!==null)return n}let r=st(this._backing.getRotation(),"displayHeight","getDisplayHeight")%180===0?this._backing.getSquarePixelHeight():this._backing.getSquarePixelWidth();return st(r,"displayHeight","getDisplayHeight")}async getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pq"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}async canBeTransparent(){return this._backing.canBeTransparent()}async getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getMetadataCodecParameterString?.();return e??(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let A=await this._backing.getCodec();return C(A!==null),Iu.some(n=>n.supports(A,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");let A=await this.getCodec();if(A===null)return null;let r=await this.getDecoderConfig();return C(r),$r(A,r,e.data)}},aa=class extends ia{constructor(e,A){super(e,A),this._backing=A}get type(){return"audio"}async getCodec(){return this._backing.getCodec()}get codec(){return st(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!0}async getNumberOfChannels(){return this._backing.getNumberOfChannels()}get numberOfChannels(){return st(this._backing.getNumberOfChannels(),"numberOfChannels","getNumberOfChannels")}async getSampleRate(){return this._backing.getSampleRate()}get sampleRate(){return st(this._backing.getSampleRate(),"sampleRate","getSampleRate")}async getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getMetadataCodecParameterString?.();return e??(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let A=await this._backing.getCodec();return C(A!==null),Id.some(r=>r.supports(A,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");return await this.getCodec()===null?null:"key"}};var Td=t=>-(t??-1/0),sa=t=>-t,oa=t=>{if(typeof t!="object"||!t)throw new TypeError("query must be an object.");if(t.filter!==void 0&&typeof t.filter!="function")throw new TypeError("query.filter, when provided, must be a function.");if(t.sortBy!==void 0&&typeof t.sortBy!="function")throw new TypeError("query.sortBy, when provided, must be a function.");return{filter:t.filter?e=>{let A=n=>{if(typeof n!="boolean")throw new TypeError("query.filter must return or resolve to a boolean.");return n},r=t.filter(e);return r instanceof Promise?r.then(A):A(r)}:void 0,sortBy:t.sortBy?e=>{let A=n=>{if(typeof n!="number"&&(!Array.isArray(n)||!n.every(a=>typeof a=="number")))throw new TypeError("query.sortBy must return or resolve to a number or an array of numbers.");return n},r=t.sortBy(e);return r instanceof Promise?r.then(A):A(r)}:void 0}},rn=(t,e)=>({filter:t?.filter||e?.filter?A=>{let r=t?.filter?.(A)??!0,n=a=>a===!1?!1:e?.filter?.(A)??!0;return r instanceof Promise?r.then(n):n(r)}:void 0,sortBy:t?.sortBy||e?.sortBy?A=>{let r=t?.sortBy?.(A)??[],n=e?.sortBy?.(A)??[],a=(i,s)=>[...Array.isArray(i)?i:[i],...Array.isArray(s)?s:[s]];return r instanceof Promise||n instanceof Promise?Promise.all([r,n]).then(([i,s])=>a(i,s)):a(r,n)}:void 0}),bu=async(t,e)=>{let A=t;if(e?.filter){let i=t.map(o=>e.filter(o));if(i.some(o=>o instanceof Promise)){let o=await Promise.all(i);A=t.filter((c,g)=>o[g])}else A=t.filter((o,c)=>i[c])}if(!e?.sortBy)return A;let r=A.map(i=>e.sortBy(i)),a=r.some(i=>i instanceof Promise)?await Promise.all(r):r;return A.map((i,s)=>({track:i,sortValue:a[s]})).sort((i,s)=>{let o=Array.isArray(i.sortValue)?i.sortValue:[i.sortValue],c=Array.isArray(s.sortValue)?s.sortValue:[s.sortValue],g=Math.max(o.length,c.length);for(let u=0;u<g;u++){let l=o[u]??0,f=c[u]??0;if(l!==f)return l-f}return 0}).map(i=>i.track)};_i();var RC=1,_w=2,zn=class t extends $A{get disposed(){return this._disposed}constructor(e){if(super(),this._demuxerPromise=null,this._format=null,this._trackBackingsCache=null,this._backingToTrack=new Map,this._disposed=!1,this._nextSourceCacheAge=0,this._sourceRefs=[],this._sourceCache=[],this._sourceCachePromises=[],this._onFormatDetermined=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(A=>!(A instanceof jt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Lt||e.source instanceof Fn))throw new TypeError("options.source must be a Source or SourceRef.");if(e.source instanceof Lt&&e.source._disposed)throw new TypeError("options.source must not be a disposed Source.");if(e.initInput!==void 0&&!(e.initInput instanceof t))throw new TypeError("options.initInput, when provided, must be an Input.");e.formatOptions!==void 0&&Ww(e.formatOptions,"formatOptions"),this._formats=e.formats,this._initInput=e.initInput??null,this._formatOptions=e.formatOptions??{},e.source instanceof Lt?this._rootRef=e.source.ref():this._rootRef=e.source,this._sourceRefs.push(this._rootRef)}get _rootSource(){return this._rootRef.source}async _getSourceUncached(e){C(this._rootSource instanceof Ar);let A=await this._rootSource._resolveRequest(e);return this._emit("source",{source:A.source,request:e,isRoot:e.isRoot}),A}_getSourceCached(e,A=RC){let r=this._sourceCache.find(i=>i.cacheGroup===A&&md(i.request,e));if(r)return r.age++,Promise.resolve(r.sourceRef.source.ref());let n=this._sourceCachePromises.find(i=>i.cacheGroup===A&&md(i.request,e));if(n)return n.promise.then(i=>i.sourceRef.source.ref());let a=(async()=>{let i=await this._getSourceUncached(e);if(xn(this._sourceCache,u=>u.cacheGroup===A&&u.sourceRef.source._refCount===1)>=4){let u=Mi(this._sourceCache,f=>f.cacheGroup===A&&f.sourceRef.source._refCount===1?f.age:1/0);C(u!==-1);let l=this._sourceCache[u];this._sourceCache.splice(u,1),l.sourceRef.free(),dp(this._sourceRefs,l.sourceRef)}this._sourceRefs.push(i);let c=this._sourceCachePromises.findIndex(u=>u.request===e);return C(c!==-1),this._sourceCachePromises.splice(c,1),{request:e,sourceRef:i,age:this._nextSourceCacheAge++,cacheGroup:A}})();return this._sourceCachePromises.push({request:e,cacheGroup:A,promise:a}),a.then(i=>{let s=i.sourceRef.source.ref();return this._sourceCache.push(i),s})}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader=new tn(this._rootSource),this._emit("source",{source:this._rootSource,request:null,isRoot:!0});for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,this._onFormatDetermined?.(e),e._createDemuxer(this);throw new Ao})()}get source(){return this._rootSource}async getFormat(){return await this._getDemuxer(),C(this._format),this._format}async canRead(){try{return await this._getDemuxer(),!0}catch(e){if(e instanceof Ao)return!1;throw e}}async getFirstTimestamp(e){e??=await this.getTracks();let A=e.filter(n=>n!==null);if(A.length===0)return 0;let r=await Promise.all(A.map(n=>n.getFirstTimestamp()));return Math.min(...r)}async computeDuration(e,A){e??=await this.getTracks();let r=e.filter(a=>a!==null);if(r.length===0)return 0;let n=await Promise.all(r.map(a=>a.computeDuration(A)));return Math.max(...n)}async getDurationFromMetadata(e,A){e??=await this.getTracks();let r=e.filter(i=>i!==null),a=(await Promise.all(r.map(i=>i.getDurationFromMetadata(A)))).filter(i=>i!==null);return a.length===0?null:Math.max(...a)}async getTracks(e){e&&=oa(e);let r=(await this._getTrackBackings()).map(n=>this._wrapBackingAsTrack(n));return bu(r,e)}async getVideoTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isVideoTrack());return bu(r,e)}async getAudioTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isAudioTrack());return bu(r,e)}async getPrimaryVideoTrack(e){e&&=oa(e);let A=rn(e,{sortBy:async n=>[sa((await n.getDisposition()).default),sa(await n.hasPairableAudioTrack()),sa(!await n.hasOnlyKeyPackets()),Td(await n.getBitrate())]});return(await this.getVideoTracks(A))[0]??null}async getPrimaryAudioTrack(e){e&&=oa(e);let A=await this.getPrimaryVideoTrack(),r=rn(e,{sortBy:async a=>[sa(!A||a.canBePairedWith(A)),sa((await a.getDisposition()).default),Td(await a.getBitrate())]});return(await this.getAudioTracks(r))[0]??null}async _getTrackBackings(){let e=await this._getDemuxer();return this._trackBackingsCache??=await e.getTrackBackings()}_wrapBackingAsTrack(e){let A=this._backingToTrack.get(e);if(A)return A;let n=e.getType()==="video"?new Hn(this,e):new aa(this,e);return this._backingToTrack.set(e,n),n}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){if(!this._disposed){this._disposed=!0;for(let e of this._sourceRefs)e.free();this._sourceRefs.length=0,this._demuxerPromise?.then(e=>e.dispose())}}[Symbol.dispose](){this.dispose()}},Ao=class extends Error{constructor(e="Input has an unsupported or unrecognizable format."){super(e),this.name="UnsupportedInputFormatError"}},Pt=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var tn=class{constructor(e){this.source=e}get fileSize(){let e=this.source._getFileSize();if(e===void 0)throw new Error("Reading file size too early; read required first.");return e}get fileSizeNonStrict(){return this.source._getFileSize()??null}requestSlice(e,A){if(this.source._disposed)throw new Pt;if(e<0||this.fileSizeNonStrict!==null&&e+A>this.fileSizeNonStrict)return null;if(A===0){let a=new Uint8Array(0);return new Mt(a,xe(a),0,e,e)}let r=e+A,n=this.source._read(e,r,dd,fd);return n instanceof Promise?n.then(a=>a?new Mt(a.bytes,a.view,a.offset,e,r):null):n?new Mt(n.bytes,n.view,n.offset,e,r):null}requestSliceRange(e,A,r){if(this.source._disposed)throw new Pt;if(e<0)return null;if(this.fileSizeNonStrict!==null)return this.requestSlice(e,Tn(this.fileSizeNonStrict-e,A,r));{let n=this.requestSlice(e,r),a=i=>i||(C(this.fileSizeNonStrict!==null),this.requestSlice(e,Tn(this.fileSizeNonStrict-e,A,r)));return n instanceof Promise?n.then(a):a(n)}}requestEntireFile(){if(this.fileSizeNonStrict!==null)return this.requestSlice(0,this.fileSizeNonStrict);let e=1024;return(async()=>{let A=[],r=0;for(;;){if(A.length===1&&this.fileSizeNonStrict!==null)return this.requestSlice(0,this.fileSizeNonStrict);let i=this.requestSliceRange(r,0,e);if(i instanceof Promise&&(i=await i),!i||i.length===0)break;let s=te(i,i.length);A.push(s),r+=i.length}let n=new Uint8Array(r),a=0;for(let i of A)n.set(i,a),a+=i.length;return new Mt(n,xe(n),0,0,r)})()}},Mt=class t{constructor(e,A,r,n,a){this.bytes=e,this.view=A,this.offset=r,this.start=n,this.end=a,this.bufferPos=n-r}static tempFromBytes(e){return new t(e,xe(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(e){this.bufferPos+=e}slice(e,A=this.end-e){if(e<this.start||e+A>this.end)throw new RangeError("Slicing outside of original slice.");return new t(this.bytes,this.view,this.offset,e,e+A)}},Vt=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},te=(t,e)=>{Vt(t,e);let A=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,A},ne=t=>(Vt(t,1),t.view.getUint8(t.bufferPos++)),Xi=(t,e)=>{Vt(t,2);let A=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,A},At=t=>{Vt(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},YA=t=>{Vt(t,3);let e=ys(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},Qs=t=>{Vt(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},Gr=(t,e)=>{Vt(t,4);let A=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,A},J=t=>{Vt(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},On=t=>{Vt(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},Dr=t=>{Vt(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},QC=t=>{Vt(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},Zl=(t,e)=>{let A,r;return e?(A=Gr(t,!0),r=Gr(t,!0)):(r=Gr(t,!1),A=Gr(t,!1)),r*4294967296+A},Ut=t=>{let e=J(t),A=J(t);return e*4294967296+A},aw=t=>{let e=Dr(t),A=J(t);return e*4294967296+A},ww=t=>{let e=On(t);return QC(t)*4294967296+e},ow=t=>{Vt(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},Qc=t=>{Vt(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},Le=(t,e)=>{Vt(t,e);let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(t.bytes[t.bufferPos++]);return A},iu=(t,e,A)=>mt.decode(te(t,e)).split(`
34
+ `).map(a=>a.trim()).filter(a=>a.length>0&&!A?.ignore?.(a));var ua;(function(t){t[t.Unsynchronisation=128]="Unsynchronisation",t[t.ExtendedHeader=64]="ExtendedHeader",t[t.ExperimentalIndicator=32]="ExperimentalIndicator",t[t.Footer=16]="Footer"})(ua||(ua={}));var ga;(function(t){t[t.ISO_8859_1=0]="ISO_8859_1",t[t.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",t[t.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",t[t.UTF_8=3]="UTF_8"})(ga||(ga={}));var Hs=128,eA=10,la=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],gw=(t,e)=>{let A=t.filePos;e.raw??={},e.raw.TAG??=te(t,Hs-3),t.filePos=A;let r=ca(t,30);r&&(e.title??=r);let n=ca(t,30);n&&(e.artist??=n);let a=ca(t,30);a&&(e.album??=a);let i=ca(t,4),s=Number.parseInt(i,10);Number.isInteger(s)&&s>0&&(e.date??=new Date(String(s)));let o=te(t,30),c;if(o[28]===0&&o[29]!==0){let u=o[29];u>0&&(e.trackNumber??=u),t.skip(-30),c=ca(t,28),t.skip(2)}else t.skip(-30),c=ca(t,30);c&&(e.comment??=c);let g=ne(t);g<la.length&&(e.genre??=la[g])},ca=(t,e)=>{let A=te(t,e),r=Gn(A.indexOf(0),A.length),n=A.subarray(0,r),a="";for(let i=0;i<n.length;i++)a+=String.fromCharCode(n[i]);return a.trimEnd()},_A=t=>{let e=t.filePos,A=Le(t,3),r=ne(t),n=ne(t),a=ne(t),i=J(t);if(A!=="ID3"||r===255||n===255||i&2155905152)return t.filePos=e,null;let s=Bc(i);return{majorVersion:r,revision:n,flags:a,size:s}},Zi=(t,e,A)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let r=te(t,e.size),n=new kd(e,r);if(e.flags&ua.Footer&&n.removeFooter(),e.flags&ua.Unsynchronisation&&e.majorVersion===3&&n.ununsynchronizeAll(),e.flags&ua.ExtendedHeader){let a=n.readU32();e.majorVersion===3?n.pos+=a:n.pos+=a-4}for(;n.pos<=n.bytes.length-n.frameHeaderSize();){let a=n.readId3V2Frame();if(!a)break;let i=n.pos,s=n.pos+a.size,o=!1,c=!1,g=!1;if(e.majorVersion===3?(o=!!(a.flags&64),c=!!(a.flags&128)):e.majorVersion===4&&(o=!!(a.flags&4),c=!!(a.flags&8),g=!!(a.flags&2)||!!(e.flags&ua.Unsynchronisation)),o){console.warn(`Skipping encrypted ID3v2 frame ${a.id}`),n.pos=s;continue}if(c){console.warn(`Skipping compressed ID3v2 frame ${a.id}`),n.pos=s;continue}if(g&&n.ununsynchronizeRegion(n.pos,s),A.raw??={},a.id==="TXXX"){let u=A.raw.TXXX??={},l=n.readId3V2TextEncoding(),f=n.readId3V2Text(l,s),p=n.readId3V2Text(l,s);u[f]??=p}else a.id[0]==="T"?A.raw[a.id]??=n.readId3V2EncodingAndText(s):A.raw[a.id]??=n.readBytes(a.size);switch(n.pos=i,a.id){case"TIT2":case"TT2":A.title??=n.readId3V2EncodingAndText(s);break;case"TIT3":case"TT3":A.description??=n.readId3V2EncodingAndText(s);break;case"TPE1":case"TP1":A.artist??=n.readId3V2EncodingAndText(s);break;case"TALB":case"TAL":A.album??=n.readId3V2EncodingAndText(s);break;case"TPE2":case"TP2":A.albumArtist??=n.readId3V2EncodingAndText(s);break;case"TRCK":case"TRK":{let l=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(A.trackNumber??=f),p&&Number.isInteger(p)&&p>0&&(A.tracksTotal??=p)}break;case"TPOS":case"TPA":{let l=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(l[0],10),p=l[1]&&Number.parseInt(l[1],10);Number.isInteger(f)&&f>0&&(A.discNumber??=f),p&&Number.isInteger(p)&&p>0&&(A.discsTotal??=p)}break;case"TCON":case"TCO":{let u=n.readId3V2EncodingAndText(s),l=/^\((\d+)\)/.exec(u);if(l){let f=Number.parseInt(l[1]);if(la[f]!==void 0){A.genre??=la[f];break}}if(l=/^\d+$/.exec(u),l){let f=Number.parseInt(l[0]);if(la[f]!==void 0){A.genre??=la[f];break}}A.genre??=u}break;case"TDRC":case"TDAT":{let u=n.readId3V2EncodingAndText(s),l=new Date(u);Number.isNaN(l.getTime())||(A.date??=l)}break;case"TYER":case"TYE":{let u=n.readId3V2EncodingAndText(s),l=Number.parseInt(u,10);Number.isInteger(l)&&(A.date??=new Date(String(l)))}break;case"USLT":case"ULT":{let u=n.readU8();n.pos+=3,n.readId3V2Text(u,s),A.lyrics??=n.readId3V2Text(u,s)}break;case"COMM":case"COM":{let u=n.readU8();n.pos+=3,n.readId3V2Text(u,s),A.comment??=n.readId3V2Text(u,s)}break;case"APIC":case"PIC":{let u=n.readId3V2TextEncoding(),l;if(e.majorVersion===2){let y=n.readAscii(3);l=y==="PNG"?"image/png":y==="JPG"?"image/jpeg":"image/*"}else l=n.readId3V2Text(u,s);let f=n.readU8(),p=n.readId3V2Text(u,s).trimEnd(),h=s-n.pos;if(h>=0){let y=n.readBytes(h);A.images||(A.images=[]),A.images.push({data:y,mimeType:l,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:p})}}break;default:n.pos+=a.size;break}n.pos=s}},kd=class{constructor(e,A){this.header=e,this.bytes=A,this.pos=0,this.view=new DataView(A.buffer,A.byteOffset,A.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let A=0;A<this.bytes.length;A++){let r=this.bytes[A];e.push(r),r===255&&A!==this.bytes.length-1&&this.bytes[A]===0&&A++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,A){let r=[];for(let i=e;i<A;i++){let s=this.bytes[i];r.push(s),s===255&&i!==A-1&&this.bytes[i+1]===0&&i++}let n=this.bytes.subarray(0,e),a=this.bytes.subarray(A);this.bytes=new Uint8Array(n.length+r.length+a.length),this.bytes.set(n,0),this.bytes.set(r,n.length),this.bytes.set(a,n.length+r.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-eA),this.view=new DataView(this.bytes.buffer)}readBytes(e){let A=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,A}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),A=this.view.getUint8(this.pos+2);return this.pos+=3,e*256+A}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(this.view.getUint8(this.pos+r));return this.pos+=e,A}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let A=this.readU24();return{id:e,size:A,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let A=this.readU32(),r=this.header.majorVersion===4?Bc(A):A,n=this.readU16(),a=this.pos,i=s=>{let o=this.pos+s;if(o>this.bytes.length)return!1;if(o<=this.bytes.length-this.frameHeaderSize()){this.pos+=s;let c=this.readAscii(4);if(c!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(c))return!1}return!0};if(!i(r)){let s=this.header.majorVersion===4?A:Bc(A);i(s)&&(r=s)}return this.pos=a,{id:e,size:r,flags:n}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,A){let r=this.pos,n=this.readBytes(A-this.pos);switch(e){case ga.ISO_8859_1:{let a="";for(let i=0;i<n.length;i++){let s=n[i];if(s===0){this.pos=r+i+1;break}a+=String.fromCharCode(s)}return a}case ga.UTF_16_WITH_BOM:if(n[0]===255&&n[1]===254){let a=new TextDecoder("utf-16le"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(2,i))}else if(n[0]===254&&n[1]===255){let a=new TextDecoder("utf-16be"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(2,i))}else{let a=Gn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}case ga.UTF_16_BE_NO_BOM:{let a=new TextDecoder("utf-16be"),i=Gn(n.findIndex((s,o)=>s===0&&n[o+1]===0&&o%2===0),n.length);return this.pos=r+Math.min(i+2,n.length),a.decode(n.subarray(0,i))}case ga.UTF_8:{let a=Gn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let A=this.readId3V2TextEncoding();return this.readId3V2Text(A,e)}};var Eu=class{constructor(e){this.mutex=new Nt,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateTimestamp(e,A,r){if(A<0)throw new Error(`Timestamps must be non-negative (got ${A}s).`);let n=this.trackTimestampInfo.get(e);if(n){if(r&&(n.maxTimestampBeforeLastKeyPacket=n.maxTimestamp),n.maxTimestampBeforeLastKeyPacket!==null&&A<n.maxTimestampBeforeLastKeyPacket)throw new Error(`Timestamps cannot be smaller than the largest timestamp of the previous GOP (a GOP begins with a key packet and ends right before the next key packet). Got ${A}s, but largest timestamp is ${n.maxTimestampBeforeLastKeyPacket}s.`);n.maxTimestamp=Math.max(n.maxTimestamp,A)}else{if(!r)throw new Error("First packet must be a key packet.");n={maxTimestamp:A,maxTimestampBeforeLastKeyPacket:null},this.trackTimestampInfo.set(e,n)}}};var Gd=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var aB=t=>{let e=Math.floor(t/36e5),A=Math.floor(t%(60*60*1e3)/(60*1e3)),r=Math.floor(t%(60*1e3)/1e3),n=t%1e3;return e.toString().padStart(2,"0")+":"+A.toString().padStart(2,"0")+":"+r.toString().padStart(2,"0")+"."+n.toString().padStart(3,"0")};var Un=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let A=0;A<e.length;A++)this.helperView.setUint8(A%8,e.charCodeAt(A)),A%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let A=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let a of e.children)a&&this.writeBox(a);let r=this.writer.getPos(),n=e.size??r-A;this.writer.seek(A),this.writeBoxHeader(e,n),this.writer.seek(r)}}writeBoxHeader(e,A){this.writeU32(e.largeSize?1:A),this.writeAscii(e.type),e.largeSize&&this.writeU64(A)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let A=this.offsets.get(e);C(A!==void 0);let r=this.writer.getPos();this.writer.seek(A),this.writeBox(e),this.writer.seek(r)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let A=this.measureBoxHeader(e);if(e.contents&&(A+=e.contents.byteLength),e.children)for(let r of e.children)r&&(A+=this.measureBox(r));return A}}},Ee=new Uint8Array(8),gA=new DataView(Ee.buffer),gt=t=>[(t%256+256)%256],de=t=>(gA.setUint16(0,t,!1),[Ee[0],Ee[1]]),vd=t=>(gA.setInt16(0,t,!1),[Ee[0],Ee[1]]),cB=t=>(gA.setUint32(0,t,!1),[Ee[1],Ee[2],Ee[3]]),$=t=>(gA.setUint32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),vr=t=>(gA.setInt32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),ir=t=>(gA.setUint32(0,Math.floor(t/2**32),!1),gA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),FC=t=>(gA.setInt32(0,Math.floor(t/2**32),!1),gA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),uB=t=>(gA.setInt16(0,2**8*t,!1),[Ee[0],Ee[1]]),zA=t=>(gA.setInt32(0,2**16*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),xd=t=>(gA.setInt32(0,2**30*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Sd=(t,e)=>{let A=[],r=t;do{let n=r&127;r>>=7,A.length>0&&(n|=128),A.push(n),e!==void 0&&e--}while(r>0||e);return A.reverse()},Ve=(t,e=!1)=>{let A=Array(t.length).fill(null).map((r,n)=>t.charCodeAt(n));return e&&A.push(0),A},gB=t=>{let e=t*(Math.PI/180),A=Math.round(Math.cos(e)),r=Math.round(Math.sin(e));return[A,r,0,-r,A,0,0,0,1]},lB=gB(0),dB=t=>[zA(t[0]),zA(t[1]),xd(t[2]),zA(t[3]),zA(t[4]),xd(t[5]),zA(t[6]),zA(t[7]),xd(t[8])],ce=(t,e,A)=>({type:t,contents:e&&new Uint8Array(e.flat(10)),children:A}),Me=(t,e,A,r,n)=>ce(t,[gt(e),cB(A),r??[]],n),fB=t=>t.isQuickTime?ce("ftyp",[Ve("qt "),$(512),Ve("qt ")]):t.fragmented?t.cmaf?ce("ftyp",[Ve("iso5"),$(512),Ve("iso5"),Ve("iso6"),Ve("mp41"),Ve("cmfc"),Ve("dash")]):ce("ftyp",[Ve("iso5"),$(512),Ve("iso5"),Ve("iso6"),Ve("mp41")]):ce("ftyp",[Ve("isom"),$(512),Ve("isom"),t.holdsAvc?Ve("avc1"):[],Ve("mp41")]),Od=()=>ce("styp",[Ve("iso5"),$(0),Ve("iso5"),Ve("iso6"),Ve("mp41"),Ve("cmfc"),Ve("dash")]),_d=(t,e)=>{let A=t.maxWrittenEndTimestamp-t.minWrittenTimestamp;return Number.isFinite(A)||(A=0),Me("sidx",1,0,[$(1),$(uA),ir(rt(t.minWrittenTimestamp,uA)),ir(0),de(0),de(1),$(e&2147483647),$(rt(A,uA)),$(0)])},ro=t=>({type:"mdat",largeSize:t}),mB=t=>({type:"free",size:t}),da=t=>ce("moov",void 0,[zC(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>NC(e,t.creationTime)),t.isFragmented?Eb(t.trackDatas):null,_b(t)]),zC=(t,e)=>{let A=Math.max(0,...e.map(i=>rt(Tu(i),uA)+rt(i.startTimestampOffset??0,uA))),r=Math.max(0,...e.map(i=>i.track.id))+1,n=!fr(t)||!fr(A),a=n?ir:$;return Me("mvhd",+n,0,[a(t),a(t),$(uA),a(A),zA(1),uB(1),Array(10).fill(0),dB(lB),Array(24).fill(0),$(r)])},Tu=t=>{if(t.samples.length===0)return 0;let e=1/0,A=-1/0;for(let r=0;r<t.samples.length;r++){let n=t.samples[r];n.timestamp<e&&(e=n.timestamp),n.timestamp+n.duration>A&&(A=n.timestamp+n.duration)}return e===1/0?0:A-e},NC=(t,e)=>{let A=CB(t),r=t.startTimestampOffset!==null&&t.startTimestampOffset>0;return ce("trak",void 0,[HC(t,e),r?UC(t,t.startTimestampOffset):null,qC(t,e),A.name!==void 0?ce("udta",void 0,[ce("name",[...Ht.encode(A.name)])]):null])},HC=(t,e)=>{let A=rt(Tu(t),uA)+rt(t.startTimestampOffset??0,uA),r=!fr(e)||!fr(A),n=r?ir:$,a;if(t.type==="video"){let s=t.track.metadata.rotation;a=gB(s??0)}else a=lB;let i=2;return t.track.metadata.disposition?.default!==!1&&(i|=1),Me("tkhd",+r,i,[n(e),n(e),$(t.track.id),$(0),n(A),Array(8).fill(0),de(0),de(t.track.id),uB(t.type==="audio"?1:0),de(0),dB(a),zA(t.type==="video"?t.info.width:0),zA(t.type==="video"?t.info.height:0)])},UC=(t,e)=>{let A=rt(e,uA),r=rt(Tu(t),uA),n=!fr(A)||!fr(r),a=n?ir:$,i=n?FC:vr;return ce("edts",void 0,[Me("elst",n?1:0,0,[$(2),a(A),i(-1),zA(1),a(r),i(0),zA(1)])])},qC=(t,e)=>ce("mdia",void 0,[LC(t,e),Md(!0,jC[t.type],VC[t.type]),KC(t)]),LC=(t,e)=>{let A=rt(Tu(t),t.timescale),r=!fr(e)||!fr(A),n=r?ir:$;return Me("mdhd",+r,0,[n(e),n(e),$(t.timescale),n(A),de(DB(t.track.metadata.languageCode??Xe)),de(0)])},jC={video:"vide",audio:"soun",subtitle:"text"},VC={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Md=(t,e,A,r="\0\0\0\0")=>Me("hdlr",0,0,[t?Ve("mhlr"):$(0),Ve(e),Ve(r),$(0),$(0),Ve(A,!0)]),KC=t=>ce("minf",void 0,[JC[t.type](),XC(),Ab(t)]),WC=()=>Me("vmhd",0,1,[de(0),de(0),de(0),de(0)]),ZC=()=>Me("smhd",0,0,[de(0),de(0)]),$C=()=>Me("nmhd",0,0),JC={video:WC,audio:ZC,subtitle:$C},XC=()=>ce("dinf",void 0,[eb()]),eb=()=>Me("dref",0,0,[$(1)],[tb()]),tb=()=>Me("url ",0,1),Ab=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(A=>A.sampleCompositionTimeOffset!==0);return ce("stbl",void 0,[rb(t),Bb(t),e?Cb(t):null,e?bb(t):null,yb(t),Ib(t),Db(t),Pb(t)])},rb=t=>{let e;if(t.type==="video")e=nb(Fb(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let A=IB(t.track.source._codec,t.muxer.isQuickTime);C(A),e=ub(A,t)}else t.type==="subtitle"&&(e=pb(Hb[t.track.source._codec],t));return C(e),Me("stsd",0,0,[$(1)],[e])},nb=(t,e)=>ce(t,[Array(6).fill(0),de(1),de(0),de(0),Array(12).fill(0),de(e.info.width),de(e.info.height),$(4718592),$(4718592),$(0),de(1),Array(32).fill(0),de(24),vd(65535)],[zb[e.track.source._codec](e),ib(e),up(e.info.decoderConfig.colorSpace)?ab(e):null]),ib=t=>t.info.pixelAspectRatio.num===t.info.pixelAspectRatio.den?null:ce("pasp",[$(t.info.pixelAspectRatio.num),$(t.info.pixelAspectRatio.den)]),ab=t=>ce("colr",[Ve(t.muxer.isQuickTime?"nclc":"nclx"),de(mr[t.info.decoderConfig.colorSpace.primaries]),de(hr[t.info.decoderConfig.colorSpace.transfer]),de(pr[t.info.decoderConfig.colorSpace.matrix]),t.muxer.isQuickTime?[]:gt((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),sb=t=>t.info.decoderConfig&&ce("avcC",[...ft(t.info.decoderConfig.description)]),ob=t=>t.info.decoderConfig&&ce("hvcC",[...ft(t.info.decoderConfig.description)]),sB=t=>{if(!t.info.decoderConfig)return null;let e=t.info.decoderConfig,A=e.codec.split("."),r=Number(A[1]),n=Number(A[2]),a=Number(A[3]),i=A[4]?Number(A[4]):1,s=A[8]?Number(A[8]):Number(e.colorSpace?.fullRange??0),o=(a<<4)+(i<<1)+s,c=A[5]?Number(A[5]):e.colorSpace?.primaries?mr[e.colorSpace.primaries]:2,g=A[6]?Number(A[6]):e.colorSpace?.transfer?hr[e.colorSpace.transfer]:2,u=A[7]?Number(A[7]):e.colorSpace?.matrix?pr[e.colorSpace.matrix]:2;return Me("vpcC",1,0,[gt(r),gt(n),gt(o),gt(c),gt(g),gt(u),de(0)])},cb=t=>ce("av1C",kp(t.info.decoderConfig.codec)),ub=(t,e)=>{let A=0,r,n=16,a=Ot.includes(e.track.source._codec);if(a){let i=e.track.source._codec,{sampleSize:s}=kA(i);n=8*s,n>16&&(A=1)}if(e.muxer.isQuickTime&&(A=1),A===0)r=[Array(6).fill(0),de(1),de(A),de(0),$(0),de(e.info.numberOfChannels),de(n),de(0),de(0),de(e.info.sampleRate<2**16?e.info.sampleRate:0),de(0)];else{let i=a?0:-2;r=[Array(6).fill(0),de(1),de(A),de(0),$(0),de(e.info.numberOfChannels),de(Math.min(n,16)),vd(i),de(0),de(e.info.sampleRate<2**16?e.info.sampleRate:0),de(0),a?[$(1),$(n/8),$(e.info.numberOfChannels*n/8)]:[$(0),$(0),$(0)],$(2)]}return ce(t,r,[Nb(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Yd=t=>{let e;switch(t.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${t.track.source._codec}`)}let A=[...gt(e),...gt(21),...cB(0),...$(0),...$(0)];if(t.info.decoderConfig.description){let r=ft(t.info.decoderConfig.description);A=[...A,...gt(5),...Sd(r.byteLength),...r]}return A=[...de(1),...gt(0),...gt(4),...Sd(A.length),...A,...gt(6),...gt(1),...gt(2)],A=[...gt(3),...Sd(A.length),...A],Me("esds",0,0,A)},nn=t=>ce("wave",void 0,[gb(t),lb(t),ce("\0\0\0\0")]),gb=t=>ce("frma",[Ve(IB(t.track.source._codec,t.muxer.isQuickTime))]),lb=t=>{let{littleEndian:e}=kA(t.track.source._codec);return ce("enda",[de(+e)])},db=t=>{let e=t.info.numberOfChannels,A=3840,r=t.info.sampleRate,n=0,a=0,i=new Uint8Array(0),s=t.info.decoderConfig?.description;if(s){C(s.byteLength>=18);let o=ft(s),c=Cc(o);e=c.outputChannelCount,A=c.preSkip,r=c.inputSampleRate,n=c.outputGain,a=c.channelMappingFamily,c.channelMappingTable&&(i=c.channelMappingTable)}return ce("dOps",[gt(0),gt(e),de(A),$(r),vd(n),gt(a),...i])},fb=t=>{let e=t.info.decoderConfig?.description;C(e);let A=ft(e);return Me("dfLa",0,0,[...A.subarray(4)])},rr=t=>{let{littleEndian:e,sampleSize:A}=kA(t.track.source._codec),r=+e;return Me("pcmC",0,0,[gt(r),gt(8*A)])},mb=t=>{let e=bc(t.info.firstPacket.data);if(!e)throw new Error("Couldn't extract AC-3 frame info from the audio packet. Ensure the packets contain valid AC-3 sync frames (as specified in ETSI TS 102 366).");let A=new Uint8Array(3),r=new Ge(A);return r.writeBits(2,e.fscod),r.writeBits(5,e.bsid),r.writeBits(3,e.bsmod),r.writeBits(3,e.acmod),r.writeBits(1,e.lfeon),r.writeBits(5,e.bitRateCode),r.writeBits(5,0),ce("dac3",[...A])},hb=t=>{let e=Ec(t.info.firstPacket.data);if(!e)throw new Error("Couldn't extract E-AC-3 frame info from the audio packet. Ensure the packets contain valid E-AC-3 sync frames (as specified in ETSI TS 102 366).");let A=16;for(let i of e.substreams)A+=23,i.numDepSub>0?A+=9:A+=1;let r=Math.ceil(A/8),n=new Uint8Array(r),a=new Ge(n);a.writeBits(13,e.dataRate),a.writeBits(3,e.substreams.length-1);for(let i of e.substreams)a.writeBits(2,i.fscod),a.writeBits(5,i.bsid),a.writeBits(1,0),a.writeBits(1,0),a.writeBits(3,i.bsmod),a.writeBits(3,i.acmod),a.writeBits(1,i.lfeon),a.writeBits(3,0),a.writeBits(4,i.numDepSub),i.numDepSub>0?a.writeBits(9,i.chanLoc):a.writeBits(1,0);return ce("dec3",[...n])},pb=(t,e)=>ce(t,[Array(6).fill(0),de(1)],[Ub[e.track.source._codec](e)]),wb=t=>ce("vttC",[...Ht.encode(t.info.config.description)]);var Bb=t=>Me("stts",0,0,[$(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[$(e.sampleCount),$(e.sampleDelta)])]),Pb=t=>{if(t.samples.every(A=>A.type==="key"))return null;let e=[...t.samples.entries()].filter(([,A])=>A.type==="key");return Me("stss",0,0,[$(e.length),e.map(([A])=>$(A+1))])},yb=t=>Me("stsc",0,0,[$(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[$(e.firstChunk),$(e.samplesPerChunk),$(1)])]),Ib=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=kA(t.track.source._codec);return Me("stsz",0,0,[$(e*t.info.numberOfChannels),$(t.samples.reduce((A,r)=>A+rt(r.duration,t.timescale),0))])}return Me("stsz",0,0,[$(0),$(t.samples.length),t.samples.map(e=>$(e.size))])},Db=t=>t.finalizedChunks.length>0&&_e(t.finalizedChunks).offset>=2**32?Me("co64",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>ir(e.offset))]):Me("stco",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>$(e.offset))]),Cb=t=>Me("ctts",1,0,[$(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[$(e.sampleCount),vr(e.sampleCompositionTimeOffset)])]),bb=t=>{let e=1/0,A=-1/0,r=1/0,n=-1/0;C(t.compositionTimeOffsetTable.length>0),C(t.samples.length>0);for(let i=0;i<t.compositionTimeOffsetTable.length;i++){let s=t.compositionTimeOffsetTable[i];e=Math.min(e,s.sampleCompositionTimeOffset),A=Math.max(A,s.sampleCompositionTimeOffset)}for(let i=0;i<t.samples.length;i++){let s=t.samples[i];r=Math.min(r,rt(s.timestamp,t.timescale)),n=Math.max(n,rt(s.timestamp+s.duration,t.timescale))}let a=Math.max(-e,0);return n>=2**31?null:Me("cslg",0,0,[vr(a),vr(e),vr(A),vr(r),vr(n)])},Eb=t=>ce("mvex",void 0,t.map(Tb)),Tb=t=>Me("trex",0,0,[$(t.track.id),$(1),$(0),$(0),$(0)]),Rd=(t,e)=>ce("moof",void 0,[kb(t),...e.map(Gb)]),kb=t=>Me("mfhd",0,0,[$(t)]),hB=t=>{let e=0,A=0,r=0,n=0,a=t.type==="delta";return A|=+a,a?e|=1:e|=2,e<<24|A<<16|r<<8|n},Gb=t=>ce("traf",void 0,[xb(t),Sb(t),Yb(t)]),xb=t=>{C(t.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let A=t.currentChunk.samples[1]??t.currentChunk.samples[0],r={duration:A.timescaleUnitsToNextSample,size:A.size,flags:hB(A)};return Me("tfhd",0,e,[$(t.track.id),$(r.duration),$(r.size),$(r.flags)])},Sb=t=>(C(t.currentChunk),Me("tfdt",1,0,[ir(rt(t.currentChunk.startTimestamp,t.timescale))])),Yb=t=>{C(t.currentChunk);let e=t.currentChunk.samples.map(h=>h.timescaleUnitsToNextSample),A=t.currentChunk.samples.map(h=>h.size),r=t.currentChunk.samples.map(hB),n=t.currentChunk.samples.map(h=>rt(h.timestamp-h.decodeTimestamp,t.timescale)),a=new Set(e),i=new Set(A),s=new Set(r),o=new Set(n),c=s.size===2&&r[0]!==r[1],g=a.size>1,u=i.size>1,l=!c&&s.size>1,f=o.size>1||[...o].some(h=>h!==0),p=0;return p|=1,p|=4*+c,p|=256*+g,p|=512*+u,p|=1024*+l,p|=2048*+f,Me("trun",1,p,[$(t.currentChunk.samples.length),$(t.currentChunk.offset-t.currentChunk.moofOffset||0),c?$(r[0]):[],t.currentChunk.samples.map((h,y)=>[g?$(e[y]):[],u?$(A[y]):[],l?$(r[y]):[],f?vr(n[y]):[]])])},pB=t=>ce("mfra",void 0,[...t.map(vb),Ob()]),vb=(t,e)=>Me("tfra",1,0,[$(t.track.id),$(63),$(t.finalizedChunks.length),t.finalizedChunks.map(r=>[ir(rt(r.samples[0].timestamp,t.timescale)),ir(r.moofOffset),$(e+1),$(1),$(1)])]),Ob=()=>Me("mfro",0,0,[$(0)]),wB=()=>ce("vtte"),BB=(t,e,A,r,n)=>ce("vttc",void 0,[n!==null?ce("vsid",[vr(n)]):null,A!==null?ce("iden",[...Ht.encode(A)]):null,e!==null?ce("ctim",[...Ht.encode(aB(e))]):null,r!==null?ce("sttg",[...Ht.encode(r)]):null,ce("payl",[...Ht.encode(t)])]),PB=t=>ce("vtta",[...Ht.encode(t)]),_b=t=>{let e=[],A=t.format._options.metadataFormat??"auto",r=t.output._metadataTags;if(A==="mdir"||A==="auto"&&!t.isQuickTime){let n=Rb(r);n&&e.push(n)}else if(A==="mdta"){let n=Qb(r);n&&e.push(n)}else(A==="udta"||A==="auto"&&t.isQuickTime)&&Mb(e,t.output._metadataTags);return e.length===0?null:ce("udta",void 0,e)},Mb=(t,e)=>{for(let{key:A,value:r}of Es(e))switch(A){case"title":t.push(nr("\xA9nam",r));break;case"description":t.push(nr("\xA9des",r));break;case"artist":t.push(nr("\xA9ART",r));break;case"album":t.push(nr("\xA9alb",r));break;case"albumArtist":t.push(nr("albr",r));break;case"genre":t.push(nr("\xA9gen",r));break;case"date":t.push(nr("\xA9day",r.toISOString().slice(0,10)));break;case"comment":t.push(nr("\xA9cmt",r));break;case"lyrics":t.push(nr("\xA9lyr",r));break;case"raw":break;case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:$t(A)}if(e.raw)for(let A in e.raw){let r=e.raw[A];r==null||A.length!==4||t.some(n=>n.type===A)||(typeof r=="string"?t.push(nr(A,r)):r instanceof Uint8Array&&t.push(ce(A,Array.from(r))))}},nr=(t,e)=>{let A=Ht.encode(e);return ce(t,[de(A.length),de(DB("und")),Array.from(A)])},oB={"image/jpeg":13,"image/png":14,"image/bmp":27},yB=(t,e)=>{let A=[];for(let{key:r,value:n}of Es(t))switch(r){case"title":A.push({key:e?"title":"\xA9nam",value:FA(n)});break;case"description":A.push({key:e?"description":"\xA9des",value:FA(n)});break;case"artist":A.push({key:e?"artist":"\xA9ART",value:FA(n)});break;case"album":A.push({key:e?"album":"\xA9alb",value:FA(n)});break;case"albumArtist":A.push({key:e?"album_artist":"aART",value:FA(n)});break;case"comment":A.push({key:e?"comment":"\xA9cmt",value:FA(n)});break;case"genre":A.push({key:e?"genre":"\xA9gen",value:FA(n)});break;case"lyrics":A.push({key:e?"lyrics":"\xA9lyr",value:FA(n)});break;case"date":A.push({key:e?"date":"\xA9day",value:FA(n.toISOString().slice(0,10))});break;case"images":for(let a of n)a.kind==="coverFront"&&A.push({key:"covr",value:ce("data",[$(oB[a.mimeType]??0),$(0),Array.from(a.data)])});break;case"trackNumber":if(e){let a=t.tracksTotal!==void 0?`${n}/${t.tracksTotal}`:n.toString();A.push({key:"track",value:FA(a)})}else A.push({key:"trkn",value:ce("data",[$(0),$(0),de(0),de(n),de(t.tracksTotal??0),de(0)])});break;case"discNumber":e||A.push({key:"disc",value:ce("data",[$(0),$(0),de(0),de(n),de(t.discsTotal??0),de(0)])});break;case"tracksTotal":case"discsTotal":break;case"raw":break;default:$t(r)}if(t.raw)for(let r in t.raw){let n=t.raw[r];n==null||!e&&r.length!==4||A.some(a=>a.key===r)||(typeof n=="string"?A.push({key:r,value:FA(n)}):n instanceof Uint8Array?A.push({key:r,value:ce("data",[$(0),$(0),Array.from(n)])}):n instanceof TA&&A.push({key:r,value:ce("data",[$(oB[n.mimeType]??0),$(0),Array.from(n.data)])}))}return A},Rb=t=>{let e=yB(t,!1);return e.length===0?null:Me("meta",0,0,void 0,[Md(!1,"mdir","","appl"),ce("ilst",void 0,e.map(A=>ce(A.key,void 0,[A.value])))])},Qb=t=>{let e=yB(t,!0);return e.length===0?null:ce("meta",void 0,[Md(!1,"mdta",""),Me("keys",0,0,[$(e.length)],e.map(A=>ce("mdta",[...Ht.encode(A.key)]))),ce("ilst",void 0,e.map((A,r)=>{let n=String.fromCharCode(...$(r+1));return ce(n,void 0,[A.value])}))])},FA=t=>ce("data",[$(1),$(0),...Ht.encode(t)]),Fb=(t,e)=>{switch(t){case"avc":return e.startsWith("avc3")?"avc3":"avc1";case"hevc":return"hvc1";case"vp8":return"vp08";case"vp9":return"vp09";case"av1":return"av01"}},zb={avc:sb,hevc:ob,vp8:sB,vp9:sB,av1:cb},IB=(t,e)=>{switch(t){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt";case"ac3":return"ac-3";case"eac3":return"ec-3"}if(e)switch(t){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(t){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},Nb=(t,e)=>{switch(t){case"aac":return Yd;case"mp3":return Yd;case"opus":return db;case"vorbis":return Yd;case"flac":return fb;case"ac3":return mb;case"eac3":return hb}if(e)switch(t){case"pcm-s24":return nn;case"pcm-s24be":return nn;case"pcm-s32":return nn;case"pcm-s32be":return nn;case"pcm-f32":return nn;case"pcm-f32be":return nn;case"pcm-f64":return nn;case"pcm-f64be":return nn}else switch(t){case"pcm-s16":return rr;case"pcm-s16be":return rr;case"pcm-s24":return rr;case"pcm-s24be":return rr;case"pcm-s32":return rr;case"pcm-s32be":return rr;case"pcm-f32":return rr;case"pcm-f32be":return rr;case"pcm-f64":return rr;case"pcm-f64be":return rr}return null},Hb={webvtt:"wvtt"},Ub={webvtt:wb},DB=t=>{C(t.length===3);let e=0;for(let A=0;A<3;A++)e<<=5,e+=t.charCodeAt(A)-96;return e};var qn=class{constructor(e,A){if(this.finalized=!1,this.started=!1,this.pos=0,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1,e._writerAcquired)throw new Error("Can't have multiple Writers for the same Target.");this.target=e,e._setMonotonicity(A),e._writerAcquired=!0}start(){C(!this.started),this.target._start(),this.started=!0}write(e){C(this.started&&!this.finalized),this.maybeTrackWrites(e),this.target._write(e,this.pos),this.pos+=e.byteLength}seek(e){this.pos=e}getPos(){return this.pos}async flush(){return C(this.started&&!this.finalized),this.target._flush()}async finalize(){C(this.started&&!this.finalized),await this.target._finalize(),this.finalized=!0}maybeTrackWrites(e){if(!this.trackedWrites)return;let A=this.getPos();if(A<this.trackedStart){if(A+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-A),A=0}let r=A+e.byteLength-this.trackedStart,n=this.trackedWrites.byteLength;for(;n<r;)n*=2;if(n!==this.trackedWrites.byteLength){let a=new Uint8Array(n);a.set(this.trackedWrites,0),this.trackedWrites=a}this.trackedWrites.set(e,A-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,A+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let A={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,A}};var AA=class extends $A{constructor(){super(...arguments),this._writerAcquired=!1,this._monotonicity=null,this.onwrite=null}_setMonotonicity(e){this._monotonicity!==!1&&(this._monotonicity=e)}_dispatchWrite(e,A){this.onwrite?.(e,A),this._emit("write",{start:e,end:A})}slice(e){if(!Number.isInteger(e)||e<0)throw new TypeError("offset must be a non-negative integer.");return new ku(this,e)}},Qd=2**16,Fd=2**32,Or=class extends AA{constructor(e={}){if(super(),this.buffer=null,this._maxPos=0,!e||typeof e!="object")throw new TypeError("BufferTarget options, when provided, must be an object.");if(e.onFinalize!==void 0&&typeof e.onFinalize!="function")throw new TypeError("options.onFinalize, when provided, must be a function.");if(this._options=e,this._supportsResize="resize"in new ArrayBuffer(0),this._supportsResize)try{this._buffer=new ArrayBuffer(Qd,{maxByteLength:Fd})}catch{this._buffer=new ArrayBuffer(Qd),this._supportsResize=!1}else this._buffer=new ArrayBuffer(Qd);this._bytes=new Uint8Array(this._buffer)}_ensureSize(e){let A=this._buffer.byteLength;for(;A<e;)A*=2;if(A!==this._buffer.byteLength){if(A>Fd)throw new Error(`ArrayBuffer exceeded maximum size of ${Fd} bytes. Please consider using another target.`);if(this._supportsResize)this._buffer.resize(A);else{let r=new ArrayBuffer(A),n=new Uint8Array(r);n.set(this._bytes,0),this._buffer=r,this._bytes=n}}}_start(){}_write(e,A){this._ensureSize(A+e.byteLength),this._bytes.set(e,A),this._maxPos=Math.max(this._maxPos,A+e.byteLength),this._dispatchWrite(A,A+e.byteLength)}async _flush(){}async _finalize(){this.buffer=this._buffer.slice(0,this._maxPos),this._options.onFinalize&&await this._options.onFinalize(this.buffer),this._emit("finalized")}async _close(){}_getSlice(e,A){return this._bytes.slice(e,A)}},g8=2**24;var ku=class extends AA{constructor(e,A){super(),this._baseTarget=e,this._offset=A}_start(){}_write(e,A){this._baseTarget._write(e,this._offset+A),this._dispatchWrite(A,A+e.byteLength)}_flush(){return this._baseTarget._flush()}async _finalize(){this._emit("finalized")}async _close(){}_setMonotonicity(e){super._setMonotonicity(e),this._baseTarget._setMonotonicity(e)}},Ln=class{constructor(e,A){if(this.rootPath=e,this.getTarget=A,typeof e!="string")throw new TypeError("rootPath must be a string.");if(typeof A!="function")throw new TypeError("getTarget must be a function.")}};var uA=57600,qb=2082844800,CB=t=>{let e={},A=t.track;return A.metadata.name!==void 0&&(e.name=A.metadata.name),e},rt=(t,e,A=!0)=>{let r=t*e;return A?Math.round(r):r},Gu=class extends Eu{constructor(e,A){super(e),this.writer=null,this.boxWriter=null,this.initWriter=null,this.initBoxWriter=null,this.auxTarget=new Or,this.auxWriter=new qn(this.auxTarget,!1),this.auxBoxWriter=new Un(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=lt(),this.creationTime=Math.floor(Date.now()/1e3)+qb,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.minWrittenTimestamp=1/0,this.maxWrittenEndTimestamp=-1/0,this.segmentHeaderSize=null,this.format=A,this.isQuickTime=A instanceof ma,this.isCmaf=A instanceof fa,this.minimumFragmentDuration=A._options.minimumFragmentDuration??(A instanceof fa?1/0:1)}async start(){let e=await this.mutex.acquire();if(this.isCmaf?(this.fastStart="fragmented",this.isFragmented=!0):(this.writer=await this.output._getRootWriter(r=>this.format._options.fastStart!==void 0?this.format._options.fastStart==="fragmented":r instanceof Or),this.boxWriter=new Un(this.writer),this.fastStart=this.format._options.fastStart??(this.writer.target instanceof Or?"in-memory":!1),this.isFragmented=this.fastStart==="fragmented"),this.isCmaf){if(!this.output._hasInitTarget())throw new Error("CMAF outputs require the initTarget field in OutputOptions to be set; the init segment will be written to it.");let r=await this.output._getInitTarget(),n=new qn(r,!0);n.start(),this.initWriter=n,this.initBoxWriter=new Un(n)}let A=this.output._tracks.some(r=>r.isVideoTrack()&&r.source._codec==="avc");{let r=this.initBoxWriter??this.boxWriter;if(C(r),this.format._options.onFtyp&&r.writer.startTrackingWrites(),r.writeBox(fB({isQuickTime:this.isQuickTime,holdsAvc:A,fragmented:this.isFragmented,cmaf:this.isCmaf})),this.format._options.onFtyp){let{data:n,start:a}=r.writer.stopTrackingWrites();this.format._options.onFtyp(n,a)}this.ftypSize=r.writer.getPos(),this.isCmaf&&await this.initWriter.flush()}if(this.fastStart!=="in-memory")if(this.fastStart==="reserve"){for(let r of this.output._tracks)if(r.metadata.maximumPacketCount===void 0)throw new Error("All tracks must specify maximumPacketCount in their metadata when using fastStart: 'reserve'.")}else this.isFragmented||(C(this.writer),C(this.boxWriter),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ro(!0),this.boxWriter.writeBox(this.mdat));await this.writer?.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(A=>A.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(A=>A.type==="video"||A.type==="audio"?A.info.decoderConfig.codec:{webvtt:"wvtt"}[A.track.source._codec]);return Gc({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(A=>A.type==="video"),hasAudio:this.trackDatas.some(A=>A.type==="audio"),codecStrings:e})}getVideoTrackData(e,A,r){let n=this.trackDatas.find(l=>l.track===e);if(n)return n;Sp(r),C(r),C(r.decoderConfig);let a={...r.decoderConfig};C(a.codedWidth!==void 0),C(a.codedHeight!==void 0);let i=!1;if(e.source._codec==="avc"&&!a.description){let l=Ni(A.data);if(!l)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");a.description=zp(l),i=!0}else if(e.source._codec==="hevc"&&!a.description){let l=Hi(A.data);if(!l)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");a.description=Up(l),i=!0}let s=pp(1/(e.metadata.frameRate??uA),1e6).den,o=a.displayAspectWidth,c=a.displayAspectHeight,g=o===void 0||c===void 0?{num:1,den:1}:Sn({num:o*a.codedHeight,den:c*a.codedWidth}),u={muxer:this,track:e,type:"video",info:{width:a.codedWidth,height:a.codedHeight,pixelAspectRatio:g,decoderConfig:a,requiresAnnexBTransformation:i},timescale:s,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1};return this.trackDatas.push(u),this.trackDatas.sort((l,f)=>l.track.id-f.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),u}getAudioTrackData(e,A,r){let n=this.trackDatas.find(o=>o.track===e);if(n)return n;Yp(r),C(r),C(r.decoderConfig);let a={...r.decoderConfig},i=!1;if(e.source._codec==="aac"&&!a.description){let o=RA(Mt.tempFromBytes(A.data));if(!o)throw new Error("Couldn't parse ADTS header from the AAC packet. Make sure the packets are in ADTS format (as specified in ISO 13818-7) when not providing a description, or provide a description (must be an AudioSpecificConfig as specified in ISO 14496-3) and ensure the packets are raw AAC data.");let c=er[o.samplingFrequencyIndex],g=Lr[o.channelConfiguration];if(c===void 0||g===void 0)throw new Error("Invalid ADTS frame header.");a.description=Ip({objectType:o.objectType,sampleRate:c,numberOfChannels:g}),i=!0}let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:a,requiresPcmTransformation:!this.isFragmented&&Ot.includes(e.source._codec),expectedNextPcmPacketTimestamp:null,requiresAdtsStripping:i,firstPacket:A},timescale:a.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1};return this.trackDatas.push(s),this.trackDatas.sort((o,c)=>o.track.id-c.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,A){let r=this.trackDatas.find(a=>a.track===e);if(r)return r;vp(A),C(A),C(A.config);let n={muxer:this,track:e,type:"subtitle",info:{config:A.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,startTimestampOffset:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],closed:!1,lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(n),this.trackDatas.sort((a,i)=>a.track.id-i.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),n}async addEncodedVideoPacket(e,A,r){let n=await this.mutex.acquire();try{let a=this.getVideoTrackData(e,A,r),i=A.data;if(a.info.requiresAnnexBTransformation){let o=[...Fi(i)].map(c=>i.subarray(c.offset,c.offset+c.length));if(o.length===0)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");i=yc(o,4)}this.validateTimestamp(a.track,A.timestamp,A.type==="key");let s=this.createSampleForTrack(a,i,A.timestamp,A.duration,A.type);await this.registerSample(a,s)}finally{n()}}async addEncodedAudioPacket(e,A,r){let n=await this.mutex.acquire();try{let a=this.getAudioTrackData(e,A,r),i=A.data;if(a.info.requiresAdtsStripping){let g=RA(Mt.tempFromBytes(i));if(!g)throw new Error("Expected ADTS frame, didn't get one.");let u=g.crcCheck===null?Mn:MA;i=i.subarray(u)}this.validateTimestamp(a.track,A.timestamp,A.type==="key");let s=A.timestamp,o=A.duration;if(a.info.requiresPcmTransformation){let u=kA(a.info.decoderConfig.codec).sampleSize*a.info.numberOfChannels;if(o=i.byteLength/u/a.info.sampleRate,a.info.expectedNextPcmPacketTimestamp!==null){let l=s-a.info.expectedNextPcmPacketTimestamp;if(l<.01)s=a.info.expectedNextPcmPacketTimestamp;else{let f=await this.padWithSilence(a,a.info.expectedNextPcmPacketTimestamp,l);s=a.info.expectedNextPcmPacketTimestamp+f}}a.info.expectedNextPcmPacketTimestamp=s+o}let c=this.createSampleForTrack(a,i,s,o,A.type);await this.registerSample(a,c)}finally{n()}}async padWithSilence(e,A,r){let n=rt(r,e.timescale);if(r=n/e.timescale,n>0){let{sampleSize:a,silentValue:i}=kA(e.info.decoderConfig.codec),s=n*e.info.numberOfChannels,o=new Uint8Array(a*s).fill(i),c=this.createSampleForTrack(e,new Uint8Array(o.buffer),A,r,"key");await this.registerSample(e,c)}return r}async addSubtitleCue(e,A,r){let n=await this.mutex.acquire();try{let a=this.getSubtitleTrackData(e,r);this.validateTimestamp(a.track,A.timestamp,!0),e.source._codec==="webvtt"&&(a.cueQueue.push(A),await this.processWebVTTCues(a,A.timestamp))}finally{n()}}async processWebVTTCues(e,A){for(;e.cueQueue.length>0;){let r=new Set([]);for(let c of e.cueQueue)C(c.timestamp<=A),C(e.lastCueEndTimestamp<=c.timestamp+c.duration),r.add(Math.max(c.timestamp,e.lastCueEndTimestamp)),r.add(c.timestamp+c.duration);let n=[...r].sort((c,g)=>c-g),a=n[0],i=n[1]??a;if(A<i)break;if(e.lastCueEndTimestamp<a){this.auxWriter.seek(0);let c=wB();this.auxBoxWriter.writeBox(c);let g=this.auxTarget._getSlice(0,this.auxWriter.getPos()),u=this.createSampleForTrack(e,g,e.lastCueEndTimestamp,a-e.lastCueEndTimestamp,"key");await this.registerSample(e,u),e.lastCueEndTimestamp=a}this.auxWriter.seek(0);for(let c=0;c<e.cueQueue.length;c++){let g=e.cueQueue[c];if(g.timestamp>=i)break;Gd.lastIndex=0;let u=Gd.test(g.text),l=g.timestamp+g.duration,f=e.cueToSourceId.get(g);if(f===void 0&&i<l&&(f=e.nextSourceId++,e.cueToSourceId.set(g,f)),g.notes){let h=PB(g.notes);this.auxBoxWriter.writeBox(h)}let p=BB(g.text,u?a:null,g.identifier??null,g.settings??null,f??null);this.auxBoxWriter.writeBox(p),l===i&&e.cueQueue.splice(c--,1)}let s=this.auxTarget._getSlice(0,this.auxWriter.getPos()),o=this.createSampleForTrack(e,s,a,i-a,"key");await this.registerSample(e,o),e.lastCueEndTimestamp=i}}createSampleForTrack(e,A,r,n,a){return{timestamp:r,decodeTimestamp:r,duration:n,data:A,size:A.byteLength,type:a,timescaleUnitsToNextSample:rt(n,e.timescale)}}processTimestamps(e,A){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){this.isFragmented||(e.startTimestampOffset??=e.timestampProcessingQueue[0].timestamp);let n=0;for(let a=0;a<e.timestampProcessingQueue.length;a++){let i=e.timestampProcessingQueue[a],s=rt(i.duration,e.timescale);n+=s}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:n,sampleDelta:1});else{let a=_e(e.timeToSampleTable);a.sampleCount+=n}e.timestampProcessingQueue.length=0;return}let r=e.timestampProcessingQueue.map(n=>n.timestamp).sort((n,a)=>n-a);this.isFragmented||(e.startTimestampOffset??=r[0]);for(let n=0;n<e.timestampProcessingQueue.length;n++){let a=e.timestampProcessingQueue[n];a.decodeTimestamp=r[n];let i=rt(a.timestamp-a.decodeTimestamp,e.timescale),s=rt(a.duration,e.timescale);if(e.lastTimescaleUnits!==null){C(e.lastSample);let o=rt(a.decodeTimestamp,e.timescale,!1),c=Math.round(o-e.lastTimescaleUnits);if(C(c>=0),e.lastTimescaleUnits+=c,e.lastSample.timescaleUnitsToNextSample=c,!this.isFragmented){let g=_e(e.timeToSampleTable);if(C(g),g.sampleCount===1){g.sampleDelta=c;let l=e.timeToSampleTable[e.timeToSampleTable.length-2];l&&l.sampleDelta===c&&(l.sampleCount++,e.timeToSampleTable.pop(),g=l)}else g.sampleDelta!==c&&(g.sampleCount--,e.timeToSampleTable.push(g={sampleCount:1,sampleDelta:c}));g.sampleDelta===s?g.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:s});let u=_e(e.compositionTimeOffsetTable);C(u),u.sampleCompositionTimeOffset===i?u.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i})}}else e.lastTimescaleUnits=rt(a.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:s}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i}));e.lastSample=a}if(e.timestampProcessingQueue.length=0,C(e.lastSample),C(e.lastTimescaleUnits!==null),A!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){C(A.type==="key");let n=rt(A.timestamp,e.timescale,!1),a=Math.round(n-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=a}}async registerSample(e,A){A.type==="key"&&this.processTimestamps(e,A),e.timestampProcessingQueue.push(A),this.isFragmented?(e.sampleQueue.push(A),await this.interleaveSamples()):this.fastStart==="reserve"?await this.registerSampleFastStartReserve(e,A):await this.addSampleToTrack(e,A)}async addSampleToTrack(e,A){if(!this.isFragmented&&(e.samples.push(A),this.fastStart==="reserve")){let n=e.track.metadata.maximumPacketCount;if(C(n!==void 0),e.samples.length>n)throw new Error(`Track #${e.track.id} has already reached the maximum packet count (${n}). Either add less packets or increase the maximum packet count.`)}let r=!1;if(!e.currentChunk)r=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,A.timestamp);let n=A.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let a=this.trackDatas.every(i=>{if(e===i)return A.type==="key";let s=i.sampleQueue[0];return s?s.type==="key":i.closed});n>=this.minimumFragmentDuration&&a&&A.timestamp>this.maxWrittenTimestamp&&(r=!0,await this.finalizeFragment())}else r=n>=.5}r&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:A.timestamp,samples:[],offset:null,moofOffset:null}),C(e.currentChunk),e.currentChunk.samples.push(A),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,A.timestamp),this.maxWrittenEndTimestamp=Math.max(this.maxWrittenEndTimestamp,A.timestamp+A.duration),this.minWrittenTimestamp=Math.min(this.minWrittenTimestamp,A.timestamp))}async finalizeCurrentChunk(e){if(C(!this.isFragmented),C(this.writer),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let A=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(A=e.currentChunk.samples.reduce((r,n)=>r+rt(n.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||_e(e.compactlyCodedChunkTable).samplesPerChunk!==A)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:A}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let r of e.currentChunk.samples)C(r.data),this.writer.write(r.data),r.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(C(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let A=null,r=1/0;for(let a of this.trackDatas){if(!e&&a.sampleQueue.length===0&&!a.closed)break e;a.sampleQueue.length>0&&a.sampleQueue[0].timestamp<r&&(A=a,r=a.sampleQueue[0].timestamp)}if(!A)break;let n=A.sampleQueue.shift();await this.addSampleToTrack(A,n)}}async finalizeFragment(e=!this.isCmaf){C(this.isFragmented);let A=this.nextFragmentNumber++;if(A===1){let f=this.initBoxWriter??this.boxWriter;C(f),this.format._options.onMoov&&f.writer.startTrackingWrites(),this.ensureOneEnabledTrack();let p=da(this);if(f.writeBox(p),this.format._options.onMoov){let{data:h,start:y}=f.writer.stopTrackingWrites();this.format._options.onMoov(h,y)}if(this.isCmaf){C(this.initWriter),await this.initWriter.flush(),await this.initWriter.finalize(),this.writer=await this.output._getRootWriter(!0),this.boxWriter=new Un(this.writer);let h=this.boxWriter.measureBox(Od()),y=this.boxWriter.measureBox(_d(this,0));this.segmentHeaderSize=h+y,this.writer.seek(this.segmentHeaderSize)}}C(this.writer),C(this.boxWriter);let r=this.trackDatas.filter(f=>f.currentChunk),n=Rd(A,r),a=this.writer.getPos(),i=a+this.boxWriter.measureBox(n),s=i+GA,o=1/0;for(let f of r){f.currentChunk.offset=s,f.currentChunk.moofOffset=a;for(let p of f.currentChunk.samples)s+=p.size;o=Math.min(o,f.currentChunk.startTimestamp)}let c=s-i,g=c>=2**32;if(g)for(let f of r)f.currentChunk.offset+=yr-GA;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=Rd(A,r);if(this.boxWriter.writeBox(u),this.format._options.onMoof){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMoof(f,p,o)}C(this.writer.getPos()===i),this.format._options.onMdat&&this.writer.startTrackingWrites();let l=ro(g);l.size=c,this.boxWriter.writeBox(l),this.writer.seek(i+(g?yr:GA));for(let f of r)for(let p of f.currentChunk.samples)this.writer.write(p.data),p.data=null;if(this.format._options.onMdat){let{data:f,start:p}=this.writer.stopTrackingWrites();this.format._options.onMdat(f,p)}for(let f of r)f.finalizedChunks.push(f.currentChunk),this.finalizedChunks.push(f.currentChunk),f.currentChunk=null;e&&await this.writer.flush()}async registerSampleFastStartReserve(e,A){if(C(this.writer),C(this.boxWriter),this.allTracksAreKnown()){if(!this.mdat){this.ensureOneEnabledTrack();let r=da(this),a=this.boxWriter.measureBox(r)+this.computeSampleTableSizeUpperBound()+4096;C(this.ftypSize!==null),this.writer.seek(this.ftypSize+a),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ro(!0),this.boxWriter.writeBox(this.mdat);for(let i of this.trackDatas){for(let s of i.sampleQueue)await this.addSampleToTrack(i,s);i.sampleQueue.length=0}}await this.addSampleToTrack(e,A)}else e.sampleQueue.push(A)}computeSampleTableSizeUpperBound(){C(this.fastStart==="reserve");let e=0;for(let A of this.trackDatas){let r=A.track.metadata.maximumPacketCount;C(r!==void 0),e+=8*Math.ceil(2/3*r),e+=4*r,e+=8*Math.ceil(2/3*r),e+=12*Math.ceil(2/3*r),e+=4*r,e+=8*r}return e}async onTrackClose(e){let A=await this.mutex.acquire(),r=this.trackDatas.find(n=>n.track===e);r&&(r.closed=!0,r.type==="subtitle"&&e.source._codec==="webvtt"&&await this.processWebVTTCues(r,1/0),this.processTimestamps(r)),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),A()}ensureOneEnabledTrack(){for(let e of["video","audio","subtitle"]){let A=this.trackDatas.filter(n=>n.type===e);if(A.length===0)continue;if(!A.some(n=>n.track.metadata.disposition?.default!==!1)){let n=A[0];n.track.metadata.disposition={...n.track.metadata.disposition,default:!0}}}}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve(),this.ensureOneEnabledTrack();for(let A of this.trackDatas)A.closed=!0,A.type==="subtitle"&&A.track.source._codec==="webvtt"&&await this.processWebVTTCues(A,1/0),this.processTimestamps(A);if(this.isFragmented)await this.interleaveSamples(!0),await this.finalizeFragment(!1);else for(let A of this.trackDatas){await this.finalizeCurrentChunk(A),C(A.startTimestampOffset!==null);for(let r=0;r<A.samples.length;r++){let n=A.samples[r];n.timestamp-=A.startTimestampOffset,n.decodeTimestamp-=A.startTimestampOffset}}if(C(this.writer),C(this.boxWriter),this.fastStart==="in-memory"){this.mdat=ro(!1);let A;for(let n=0;n<2;n++){let a=da(this),i=this.boxWriter.measureBox(a);A=this.boxWriter.measureBox(this.mdat);let s=this.writer.getPos()+i+A;for(let o of this.finalizedChunks){o.offset=s;for(let{data:c}of o.samples)C(c),s+=c.byteLength,A+=c.byteLength}if(s<2**32)break;A>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let r=da(this);if(this.boxWriter.writeBox(r),this.format._options.onMoov){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,a)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=A,this.boxWriter.writeBox(this.mdat);for(let n of this.finalizedChunks)for(let a of n.samples)C(a.data),this.writer.write(a.data),a.data=null;if(this.format._options.onMdat){let{data:n,start:a}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,a)}}else if(this.isFragmented)if(this.isCmaf){let A=this.segmentHeaderSize!==null?this.writer.getPos()-this.segmentHeaderSize:0;this.writer.seek(0),this.boxWriter.writeBox(Od()),this.boxWriter.writeBox(_d(this,A))}else{let A=this.writer.getPos(),r=pB(this.trackDatas);this.boxWriter.writeBox(r);let n=this.writer.getPos()-A;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(n)}else{C(this.mdat);let A=this.boxWriter.offsets.get(this.mdat);C(A!==void 0);let r=this.writer.getPos()-A;if(this.mdat.size=r,this.mdat.largeSize=r>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:a,start:i}=this.writer.stopTrackingWrites();this.format._options.onMdat(a,i)}let n=da(this);if(this.fastStart==="reserve"){C(this.ftypSize!==null),this.writer.seek(this.ftypSize),this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);let a=this.boxWriter.offsets.get(this.mdat)-this.writer.getPos();this.boxWriter.writeBox(mB(a))}else this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(n);if(this.format._options.onMoov){let{data:a,start:i}=this.writer.stopTrackingWrites();this.format._options.onMoov(a,i)}}e()}};var ha=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}async _start(){}async _flushAndClose(e){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(!1),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForOngoingClose(e){return this._closingPromise??=(async()=>{await this._flushAndClose(e),this._closed=!0})()}},pa=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!_t.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${_t.join(", ")}.`);this._codec=e}},bB=(t,e)=>{if(t.metadata.hasOnlyKeyPackets&&e.type!=="key")throw new Error("Cannot add non-key packets to a hasOnlyKeyPackets video track.")};var zd=class{constructor(e,A){this.source=e,this.encodingConfig=A,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.emittedEncoderPackets=0,this.codedWidth=null,this.codedHeight=null,this.outputWidth=null,this.outputHeight=null,this.frameRateLastSample=null,this.frameRateLastTimestamp=null,this.frameRateLastEndTimestamp=null,this.preciseTimings=[],this.customEncoder=null,this.customEncoderCallSerializer=new Dn,this.customEncoderQueueSize=0,this.alphaEncoder=null,this.splitter=null,this.splitterCreationFailed=!1,this.alphaFrameQueue=[],this.error=null,this.lastMuxerPromise=Promise.resolve()}async add(e,A,r){let n=e;try{this.checkForEncoderError(),this.source._ensureValidAdd();let a=this.encodingConfig,i=a.sizeChangeBehavior??"deny",s=!1;if(this.codedWidth!==null&&this.codedHeight!==null){if((e.codedWidth!==this.codedWidth||e.codedHeight!==this.codedHeight)&&(s=!0,i==="deny"))throw new Error(`Video sample size must remain constant. Expected ${this.codedWidth}x${this.codedHeight}, got ${e.codedWidth}x${e.codedHeight}. To allow the sample size to change over time, set \`sizeChangeBehavior\` to a value other than 'deny' in the encoding options.`)}else this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight;if(a.transform?.width!==void 0||a.transform?.height!==void 0||a.transform?.rotate!==void 0||a.transform?.crop!==void 0||a.transform?.force===!0||s&&i!=="passThrough"){let u=a.transform?.width,l=a.transform?.height,f=a.transform?.fit??"fill";s&&i!=="passThrough"&&(C(this.outputWidth),C(this.outputHeight),C(i!=="deny"),u=this.outputWidth,l=this.outputHeight,f=i);let p=await e.transform({width:u,height:l,roundDimensionsTo:2,crop:a.transform?.crop,rotate:a.transform?.rotate,fit:f,alpha:a.alpha});(this.outputWidth===null||this.outputHeight===null)&&(this.outputWidth=p.displayWidth,this.outputHeight=p.displayHeight),A&&e.close(),e=p,A=!0}else(this.outputWidth===null||this.outputHeight===null)&&(this.outputWidth=e.codedWidth,this.outputHeight=e.codedHeight);let g=a.transform?.frameRate;if(g!==void 0){let u=e.timestamp+e.duration,l=Tl(e.timestamp,g);if(this.frameRateLastSample!==null)if(l<=this.frameRateLastTimestamp){this.frameRateLastSample.close(),this.frameRateLastSample=e.clone(),this.frameRateLastEndTimestamp=u;return}else await this.padFrameRate(l,r);e===n&&(e=e.clone(),A=!0),e.setTimestamp(l),e.setDuration(1/g),this.frameRateLastSample?.close(),this.frameRateLastSample=e.clone(),this.frameRateLastTimestamp=l,this.frameRateLastEndTimestamp=u}await this.processAndEncode(e,r)}finally{A&&e.close()}}async processAndEncode(e,A){let r=this.encodingConfig,n;if(r.transform?.process){let a=r.transform.process(e);if(a instanceof Promise&&(a=await a),a===null)return;Array.isArray(a)||(a=[a]),n=a.map(i=>i instanceof QA?i:typeof VideoFrame<"u"&&i instanceof VideoFrame?new QA(i):new QA(i,{timestamp:e.timestamp,duration:e.duration}))}else n=[e];try{for(let a of n){this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(a),this.encoderInitialized||await this.ensureEncoderPromise),C(this.encoderInitialized);let i=this.encodingConfig.keyFrameInterval??2,s=Math.floor(a.timestamp/i),o={...a.encodeOptions,...A},c={...o,keyFrame:o.keyFrame!==void 0?o.keyFrame:i===0||s!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=s,this.customEncoder){this.customEncoderQueueSize++;let g=a.clone(),u=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(g,c)).then(()=>this.customEncoderQueueSize--).catch(l=>this.error??=l).finally(()=>{g.close()});this.customEncoderQueueSize>=4&&await u}else{C(this.encoder);let g=a.toVideoFrame(),u=ye(this.preciseTimings,g.timestamp,f=>f.microsecondTimestamp),l=u!==-1?this.preciseTimings[u]:null;if(l&&l.microsecondTimestamp===g.timestamp?(l.timestamp!==a.timestamp&&(l.timestampIsValid=!1),l.duration!==a.duration&&(l.durationIsValid=!1)):(this.preciseTimings.splice(u+1,0,{microsecondTimestamp:g.timestamp,timestamp:a.timestamp,duration:a.duration,timestampIsValid:!0,durationIsValid:!0}),this.preciseTimings.length>128&&this.preciseTimings.shift()),!this.alphaEncoder)this.encoder.encode(g,c),g.close();else if(!!g.format&&!g.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(g,c),g.close();else{let p=g.displayWidth,h=g.displayHeight;this.splitter||(this.splitter=new xu(p,h));let{colorFrame:y,alphaFrame:w}=await this.splitter.update(g);this.alphaFrameQueue.push(w),this.encoder.encode(y,c),y.close()}this.encoder.encodeQueueSize>=4&&await new Promise(f=>this.encoder.addEventListener("dequeue",f,{once:!0}))}await this.lastMuxerPromise}}finally{for(let a of n)a!==e&&a.close()}}async padFrameRate(e,A){let r=this.encodingConfig.transform.frameRate;C(this.frameRateLastSample);let n=Math.round((e-this.frameRateLastTimestamp)*r);for(let a=1;a<n;a++){let i=this.frameRateLastSample.clone();i.setTimestamp(this.frameRateLastTimestamp+a/r),i.setDuration(1/r),await this.processAndEncode(i,A),i.close()}}ensureEncoder(e){this.ensureEncoderPromise=(async()=>{let A=Pd({...this.encodingConfig,width:e.codedWidth,height:e.codedHeight,squarePixelWidth:e.squarePixelWidth,squarePixelHeight:e.squarePixelHeight,framerate:this.source._connectedTrack?.metadata.frameRate});this.encodingConfig.onEncoderConfig?.(A);let r=yu.find(n=>n.supports(this.encodingConfig.codec,A));if(r)this.customEncoder=new r,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=A,this.customEncoder.onPacket=(n,a)=>{if(!(n instanceof Fe))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(a!==void 0&&(!a||typeof a!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");bB(this.source._connectedTrack,n),this.encodingConfig.onEncodedPacket?.(n,a),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,n,a).catch(i=>{this.error??=i})},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(A.alpha="discard",this.encodingConfig.alpha==="keep"&&(A.latencyMode="quality"),(A.width%2===1||A.height%2===1)&&(this.encodingConfig.codec==="avc"||this.encodingConfig.codec==="hevc"))throw new Error(`The dimensions ${A.width}x${A.height} are not supported for codec '${this.encodingConfig.codec}'; both width and height must be even numbers. Make sure to round your dimensions to the nearest even number.`);if(!(await VideoEncoder.isConfigSupported(A)).supported)throw new Error(`This specific encoder configuration (${A.codec}, ${A.bitrate} bps, ${A.width}x${A.height}, hardware acceleration: ${A.hardwareAcceleration??"no-preference"}) is not supported by this browser. Consider using another codec or changing your video parameters.`);let i=[],s=[],o=0,c=0,g=(l,f,p)=>{let h={};if(f){let E=new Uint8Array(f.byteLength);f.copyTo(E),h.alpha=E}let y=Fe.fromEncodedChunk(l,h),w=ye(this.preciseTimings,l.timestamp,E=>E.microsecondTimestamp),D=w!==-1?this.preciseTimings[w]:null,b=null;this.emittedEncoderPackets===0&&y.type==="delta"&&p?.decoderConfig&&(b=$r(this.encodingConfig.codec,p.decoderConfig,y.data)),(D&&D.microsecondTimestamp===l.timestamp||b!==null)&&(y=y.clone({timestamp:D?.timestampIsValid?D.timestamp:void 0,duration:D?.durationIsValid?D.duration:void 0,type:b??void 0})),bB(this.source._connectedTrack,y),this.encodingConfig.onEncodedPacket?.(y,p),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,y,p).catch(E=>{this.error??=E}),this.emittedEncoderPackets++},u=new Error("Encoding error").stack;if(this.encoder=new VideoEncoder({output:(l,f)=>{if(!this.alphaEncoder){g(l,null,f);return}let p=this.alphaFrameQueue.shift();C(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:l.type==="key"}),c++,p.close(),i.push({chunk:l,meta:f})):c===0?g(l,null,f):(s.push(o+c),i.push({chunk:l,meta:f}))},error:l=>{l.stack=u,this.error??=l}}),this.encoder.configure(A),this.encodingConfig.alpha==="keep"){let l=new Error("Encoding error").stack;this.alphaEncoder=new VideoEncoder({output:(f,p)=>{c--;let h=i.shift();for(C(h!==void 0),g(h.chunk,f,h.meta),o++;s.length>0&&s[0]===o;){s.shift();let y=i.shift();C(y!==void 0),g(y.chunk,null,y.meta)}},error:f=>{f.stack=l,this.error??=f}}),this.alphaEncoder.configure(A)}}C(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(e){if(e||this.checkForEncoderError(),!e&&this.frameRateLastSample){let A=this.encodingConfig.transform.frameRate,r=Tl(this.frameRateLastEndTimestamp,A);await this.padFrameRate(r)}this.frameRateLastSample?.close(),this.frameRateLastSample=null,this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||(await this.encoder.flush(),await this.alphaEncoder?.flush()),this.encoder.state!=="closed"&&this.encoder.close(),this.alphaEncoder&&this.alphaEncoder.state!=="closed"&&this.alphaEncoder.close(),this.alphaFrameQueue.forEach(A=>A?.close()),this.splitter?.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.error}},EB=!1,xu=class t{constructor(e,A){this.canvas=null,this.gl=null,this.colorProgram=null,this.alphaProgram=null,this.vao=null,this.sourceTexture=null,this.alphaResolutionLocation=null,this.worker=null,this.pendingRequests=new Map,this.nextRequestId=0;let r=typeof OffscreenCanvas<"u"||typeof document<"u"&&typeof document.createElement=="function";if(!t.forceCpu&&r&&!EB)try{typeof OffscreenCanvas<"u"?this.canvas=new OffscreenCanvas(e,A):(this.canvas=document.createElement("canvas"),this.canvas.width=e,this.canvas.height=A);let n=this.canvas.getContext("webgl2",{alpha:!0});if(!n)throw new Error("Couldn't acquire WebGL 2 context.");this.gl=n,this.colorProgram=this.createColorProgram(),this.alphaProgram=this.createAlphaProgram(),this.vao=this.createVAO(),this.sourceTexture=this.createTexture(),this.alphaResolutionLocation=this.gl.getUniformLocation(this.alphaProgram,"u_resolution"),this.gl.useProgram(this.colorProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.colorProgram,"u_sourceTexture"),0),this.gl.useProgram(this.alphaProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.alphaProgram,"u_sourceTexture"),0)}catch(n){this.gl=null,this.canvas=null,EB=!0,console.warn("Falling back to CPU for color/alpha splitting.",n)}}async update(e){return this.gl?this.updateGpu(e):this.updateCpu(e)}updateGpu(e){C(this.gl),C(this.canvas),(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.sourceTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e);let A=this.runColorProgram(e),r=this.runAlphaProgram(e);return e.close(),{colorFrame:A,alphaFrame:r}}createVertexShader(){return C(this.gl),this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
35
35
  in vec2 a_position;
36
36
  in vec2 a_texCoord;
37
37
  out vec2 v_texCoord;
@@ -95,10 +95,10 @@
95
95
 
96
96
  fragColor = result;
97
97
  }
98
- `),r=this.gl.createProgram();return this.gl.attachShader(r,e),this.gl.attachShader(r,A),this.gl.linkProgram(r),r}createShader(e,A){C(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),this.gl.getShaderParameter(r,this.gl.COMPILE_STATUS)||console.error("Shader compile error:",this.gl.getShaderInfoLog(r)),r}createVAO(){C(this.gl),C(this.colorProgram);let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let A=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,A,this.gl.STATIC_DRAW);let n=this.gl.getAttribLocation(this.colorProgram,"a_position"),a=this.gl.getAttribLocation(this.colorProgram,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,2,this.gl.FLOAT,!1,16,8),e}createTexture(){C(this.gl);let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}runColorProgram(e){return C(this.gl),C(this.canvas),this.gl.useProgram(this.colorProgram),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4),new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0,alpha:"discard"})}runAlphaProgram(e){C(this.gl),C(this.canvas),this.gl.useProgram(this.alphaProgram),this.gl.uniform2f(this.alphaResolutionLocation,this.canvas.width,this.canvas.height),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);let{width:A,height:r}=this.canvas,n=Math.ceil(A/2)*Math.ceil(r/2),a=A*r+n*2,i=Math.ceil(a/(A*4)),s=new Uint8Array(4*A*i);this.gl.readPixels(0,0,A,i,this.gl.RGBA,this.gl.UNSIGNED_BYTE,s),s=s.subarray(0,a),C(s[A*r]===128),C(s[s.length-1]===128);let o={format:"I420",codedWidth:A,codedHeight:r,timestamp:e.timestamp,duration:e.duration??void 0,transfer:[s.buffer]};return new VideoFrame(s,o)}updateCpu(e){if(!this.worker){let n=new Blob([`(${Ub.toString()})()`],{type:"application/javascript"}),a=URL.createObjectURL(n);this.worker=new Worker(a),URL.revokeObjectURL(a),this.worker.addEventListener("message",i=>{let s=i.data,o=this.pendingRequests.get(s.id);o&&(this.pendingRequests.delete(s.id),"error"in s?o.reject(new Error(s.error)):o.resolve({colorFrame:s.colorFrame,alphaFrame:s.alphaFrame}))}),this.worker.addEventListener("error",i=>{let s=new Error(i.message||"Color/alpha splitter worker error.");for(let o of this.pendingRequests.values())o.reject(s);this.pendingRequests.clear()})}let A=this.nextRequestId++,r=lt();return this.pendingRequests.set(A,r),this.worker.postMessage({id:A,sourceFrame:e},{transfer:[e]}),r.promise}close(){this.gl?.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null,this.canvas=null,this.worker?.terminate(),this.worker=null;let e=new Error("Color/alpha splitter closed.");for(let A of this.pendingRequests.values())A.reject(e);this.pendingRequests.clear()}};xu.forceCpu=!0;var Ub=()=>{let t=null,e=Promise.resolve();self.addEventListener("message",a=>{let{id:i,sourceFrame:s}=a.data;e=e.then(async()=>{try{let{colorFrame:o,alphaFrame:c}=await A(s);self.postMessage({id:i,colorFrame:o,alphaFrame:c},{transfer:[o,c]})}catch(o){self.postMessage({id:i,error:o.message})}finally{s.close()}})});let A=async a=>{let i=a.format;if(!i)throw new Error("CPU color/alpha splitting requires a known VideoFrame format.");let s=a.codedWidth,o=a.codedHeight,c=a.allocationSize();if((!t||t.byteLength!==c)&&(t=new Uint8Array(c)),await a.copyTo(t),i==="RGBA"||i==="BGRA")return r(t,s,o,i,a);if(i==="I420A"||i==="I420AP10"||i==="I420AP12"||i==="I422A"||i==="I422AP10"||i==="I422AP12"||i==="I444A"||i==="I444AP10"||i==="I444AP12")return n(t,s,o,i,a);throw new Error(`CPU color/alpha splitting does not support format '${i}'.`)},r=(a,i,s,o,c)=>{let g=i*s,u=Math.ceil(i/2),l=Math.ceil(s/2),f=g+u*l*2,p=new Uint8Array(f);for(let D=0,b=3;D<g;D++,b+=4)p[D]=a[b];p.fill(128,g);let h=new VideoFrame(a,{format:o==="RGBA"?"RGBX":"BGRX",codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0}),y={format:"I420",codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0,transfer:[p.buffer]},w=new VideoFrame(p,y);return{colorFrame:h,alphaFrame:w}},n=(a,i,s,o,c)=>{let g=o.includes("P10"),u=o.includes("P12"),l=g||u?2:1,f,p;o.startsWith("I420")?(f=Math.ceil(i/2),p=Math.ceil(s/2)):o.startsWith("I422")?(f=Math.ceil(i/2),p=s):(f=i,p=s);let h=i*s,y=f*p,w=h*l,D=y*l,b=h*l,E=w+D*2,x=o.replace("A",""),S=Math.ceil(i/2),k=Math.ceil(s/2),R=S*k,M=R*l,N=b+2*M,V=new Uint8Array(N),F=E;V.set(a.subarray(F,F+b),0);let K=b,L=g?512:u?2048:128;l===1?V.fill(L,K):new Uint16Array(V.buffer,K,2*R).fill(L);let _=g?"I420P10":u?"I420P12":"I420",W=new VideoFrame(a.subarray(0,E),{format:x,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0}),pe={format:_,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0,transfer:[V.buffer]},Ae=new VideoFrame(V,pe);return{colorFrame:W,alphaFrame:Ae}}};var no=class extends pa{constructor(e,A){if(!(typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement)&&!(typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas))throw new TypeError("canvas must be an HTMLCanvasElement or OffscreenCanvas.");tB(A),super(A.codec),this._encoder=new zd(this,A),this._canvas=e}add(e,A=0,r){if(!Number.isFinite(e)||e<0)throw new TypeError("timestamp must be a non-negative number.");if(!Number.isFinite(A)||A<0)throw new TypeError("duration must be a non-negative number.");let n=new QA(this._canvas,{timestamp:e,duration:A});return this._encoder.add(n,!0,r)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var wa=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!tr.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${tr.join(", ")}.`);this._codec=e}},io=class extends wa{constructor(e){super(e)}add(e,A){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be added.");if(A!==void 0&&(!A||typeof A!="object"))throw new TypeError("meta, when provided, must be an object.");return this._ensureValidAdd(),this._connectedTrack.output._muxer.addEncodedAudioPacket(this._connectedTrack,e,A)}};var ao=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!jr.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${jr.join(", ")}.`);this._codec=e}};var Ba=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>_t.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>tr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>jr.includes(e))}_codecUnsupportedHint(e){return""}},Pa=class extends Ba{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","reserve","fragmented"].includes(e.fastStart))throw new TypeError("options.fastStart, when provided, must be false, 'in-memory', 'reserve', or 'fragmented'.");if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");if(e.metadataFormat!==void 0&&!["mdir","mdta","udta","auto"].includes(e.metadataFormat))throw new TypeError("options.metadataFormat, when provided, must be either 'auto', 'mdir', 'mdta', or 'udta'.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:4294967295},audio:{min:0,max:4294967295},subtitle:{min:0,max:4294967295},total:{min:1,max:4294967295}}}get supportsVideoRotationMetadata(){return!0}get supportsTimestampedMediaData(){return!0}_createMuxer(e){return new Gu(e,this)}},ya=class extends Pa{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[..._t,...mc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...jr]}_codecUnsupportedHint(e){return new ma().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},fa=class extends Pa{constructor(e){super(e)}get _name(){return"CMAF"}get fileExtension(){return".m4s"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[..._t,...mc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...jr]}},ma=class extends Pa{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[..._t,...tr]}_codecUnsupportedHint(e){return new ya().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var qb=["video","audio","subtitle"],Ia=class t{constructor(e,A,r,n,a){this.id=e,this.output=A,this.type=r,this.source=n,this.metadata=a}isVideoTrack(){return this.type==="video"}isAudioTrack(){return this.type==="audio"}isSubtitleTrack(){return this.type==="subtitle"}canBePairedWith(e){if(!(e instanceof t))throw new TypeError("other must be an OutputTrack.");if(this===e)return!1;let A=xl(this.metadata.group),r=xl(e.metadata.group);for(let n of A)if(this.type!==e.type&&r.some(s=>n===s)||r.some(s=>n._pairedGroups.has(s)))return!0;return!1}},Su=class extends Ia{constructor(e,A,r,n){super(e,A,"video",r,n)}},Yu=class extends Ia{constructor(e,A,r,n){super(e,A,"audio",r,n)}},vu=class extends Ia{constructor(e,A,r,n){super(e,A,"subtitle",r,n)}},Da=class t{constructor(){this._pairedGroups=new Set}pairWith(e){if(!(e instanceof t))throw new TypeError("other must be an OutputTrackGroup.");if(this===e)throw new TypeError("Cannot pair a group with itself.");this._pairedGroups.add(e),e._pairedGroups.add(this)}},Nd=t=>{if(!t||typeof t!="object")throw new TypeError("metadata must be an object.");if(t.languageCode!==void 0&&!Oi(t.languageCode))throw new TypeError("metadata.languageCode, when provided, must be a three-letter, ISO 639-2/T language code.");if(t.name!==void 0&&typeof t.name!="string")throw new TypeError("metadata.name, when provided, must be a string.");if(t.disposition!==void 0&&Pp(t.disposition),t.maximumPacketCount!==void 0&&(!Number.isInteger(t.maximumPacketCount)||t.maximumPacketCount<0))throw new TypeError("metadata.maximumPacketCount, when provided, must be a non-negative integer.");if(t.group!==void 0&&!(t.group instanceof Da)&&(!Array.isArray(t.group)||t.group.some(e=>!(e instanceof Da))))throw new TypeError("metadata.group, when provided, must be an OutputTrackGroup instance or an array of OutputTrackGroup instances.")},so=class extends $A{get target(){let e="Output.target cannot be used when using PathedTarget with an async callback. Use the 'target' event instead.";if(this._rootTargetPromise)throw new TypeError(e);let A=this._getRootTarget();if(A instanceof Promise)throw new TypeError(e);return A}constructor(e){if(super(),this.state="pending",this.defaultTrackGroup=new Da,this._onFinalize=null,this._unfinalizedTargets=new Set,this._rootWriterPromise=null,this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new Nt,this._metadataTags={},this._rootTarget=null,this._rootTargetPromise=null,this._firstMediaStreamTimestamp=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof Ba))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof AA||e.target instanceof Ln))throw new TypeError("options.target must be a Target or a PathedTarget.");if(e.target instanceof AA&&this._rememberTarget(e.target),e.initTarget!==void 0&&!(e.initTarget instanceof AA)&&typeof e.initTarget!="function")throw new Error("options.initTarget, when provided, must be a Target or a function that returns or resolves to a Target.");if(e.onFinalize!==void 0&&typeof e.onFinalize!="function")throw new TypeError("options.onFinalize, when provided, must be a function.");this.format=e.format,this._target=e.target,this._onFinalize=e.onFinalize??null,this._initTarget=e.initTarget??null,this._initTarget instanceof AA&&this._rememberTarget(this._initTarget),this._muxer=e.format._createMuxer(this)}_getTargetValidated(e){C(this._target instanceof Ln);let A=this._target.getTarget(e),r=n=>{if(!(n instanceof AA))throw new TypeError("getTarget must return a Target.");return n};return A instanceof Promise?A.then(r):r(A)}async _getTarget(e){C(this._target instanceof Ln);let A=await this._getTargetValidated(e);return this._emit("target",{target:A,request:e,isRoot:e.isRoot}),this.state==="canceled"?await A._close():this._rememberTarget(A),A}_rememberTarget(e){this._unfinalizedTargets.add(e),e.on("finalized",()=>this._unfinalizedTargets.delete(e),{once:!0})}async _getInitTarget(){if(C(this._initTarget!==null),this._initTarget instanceof AA)return this._initTarget;let e=await this._initTarget();return this.state==="canceled"?await e._close():this._rememberTarget(e),e}_hasInitTarget(){return this._initTarget!==null}_getRootTarget(){if(this._rootTarget)return this._rootTarget;if(this._rootTargetPromise)return this._rootTargetPromise;if(this._target instanceof AA)return this._emit("target",{target:this._target,request:null,isRoot:!0}),this._rootTarget=this._target,this._target;let e={path:this._target.rootPath,isRoot:!0,mimeType:this.format.mimeType},A=this._getTargetValidated(e),r=n=>(this.state==="canceled"?n._close():this._rememberTarget(n),this._emit("target",{target:n,request:e,isRoot:!0}),this._rootTarget=n,n);return A instanceof Promise?this._rootTargetPromise=A.then(r):r(A)}_getRootWriter(e){return this._rootWriterPromise??=(async()=>{let A=await this._getRootTarget(),r=new qn(A,typeof e=="boolean"?e:e(A));return r.start(),r})()}addVideoTrack(e,A={}){if(!(e instanceof pa))throw new TypeError("source must be a VideoSource.");if(Nd(A),A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError(`Invalid video rotation: ${A.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&A.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(A.frameRate!==void 0&&(!Number.isFinite(A.frameRate)||A.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${A.frameRate}. Must be a positive number.`);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Su(this._tracks.length+1,this,e,r))}addAudioTrack(e,A={}){if(!(e instanceof wa))throw new TypeError("source must be an AudioSource.");Nd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Yu(this._tracks.length+1,this,e,r))}addSubtitleTrack(e,A={}){if(!(e instanceof ao))throw new TypeError("source must be a SubtitleSource.");Nd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new vu(this._tracks.length+1,this,e,r))}setMetadataTags(e){if(Bp(e),this.state!=="pending")throw new Error("Cannot set metadata tags after output has been started or canceled.");this._metadataTags=e}_addTrack(e){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(e.source._connectedTrack)throw new Error("Source is already used for a track.");let A=this.format.getSupportedTrackCounts(),r=this._tracks.reduce((i,s)=>i+(s.type===e.type?1:0),0),n=A[e.type].max;if(r===n)throw new Error(n===0?`${this.format._name} does not support ${e.type} tracks.`:`${this.format._name} does not support more than ${n} ${e.type} track${n===1?"":"s"}.`);let a=A.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);if(e.isVideoTrack()){let i=this.format.getSupportedVideoCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}else if(e.isAudioTrack()){let i=this.format.getSupportedAudioCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}else if(e.isSubtitleTrack()){let i=this.format.getSupportedSubtitleCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}return this._tracks.push(e),e.source._connectedTrack=e,e}async start(){let e=this.format.getSupportedTrackCounts();for(let r of qb){let n=this._tracks.reduce((i,s)=>i+(s.type===r?1:0),0),a=e[r].min;if(n<a)throw new Error(a===e[r].max?`${this.format._name} requires exactly ${a} ${r} track${a===1?"":"s"}.`:`${this.format._name} requires at least ${a} ${r} track${a===1?"":"s"}.`)}let A=e.total.min;if(this._tracks.length<A)throw new Error(A===e.total.max?`${this.format._name} requires exactly ${A} track${A===1?"":"s"}.`:`${this.format._name} requires at least ${A} track${A===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started";let r=await this._mutex.acquire();try{await this._muxer.start();let n=this._tracks.map(a=>a.source._start());await Promise.all(n)}finally{r()}})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){this.state==="finalized"&&console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire();try{let A=this._tracks.map(r=>r.source._flushOrWaitForOngoingClose(!0));await Promise.all(A),await Promise.all([...this._unfinalizedTargets].map(r=>r._close())),this._unfinalizedTargets.clear()}finally{e()}})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire();try{let A=this._tracks.map(r=>r.source._flushOrWaitForOngoingClose(!1));if(await Promise.all(A),await this._muxer.finalize(),this._rootWriterPromise){let r=await this._rootWriterPromise;r.finalized||(await r.flush(),await r.finalize())}this._onFinalize&&await this._onFinalize(),this.state="finalized"}finally{e()}})()}};var EB=Symbol.for("mediabunny loaded");globalThis[EB]&&console.error(`[WARNING]
99
- Mediabunny was loaded twice. This will likely cause Mediabunny not to work correctly. Check if multiple dependencies are importing different versions of Mediabunny, or if something is being bundled incorrectly.`);globalThis[EB]=!0;var Lb=.011764705882352941,jb=.002,Vb=.99,Kb=255;function TB(t,e,A,r={}){let{x:n,y:a,width:i,height:s}=A,o=Number.isFinite(r.alphaGain)&&r.alphaGain>0?r.alphaGain:1;for(let c=0;c<s;c++)for(let g=0;g<i;g++){let u=((a+c)*t.width+(n+g))*4,l=c*i+g,f=e[l],p=Math.abs(f),h=Number.isFinite(r.logoValue)?r.logoValue:f<0?0:Kb;if(Math.max(0,p-Lb)*o<jb)continue;let w=Math.min(p*o,Vb),D=1-w;for(let b=0;b<3;b++){let x=(t.data[u+b]-w*h)/D;t.data[u+b]=Math.max(0,Math.min(255,Math.round(x)))}}}var kB="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";var GB="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUe678Wfm0QShA7X+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfmZ+ZG/40EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+Zz52wCbPkAACQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+b/6OcEAAAAAGwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX8QP0s/EQCgAATQEvAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfmZ+bh/hkDAAClAQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfmL/sbBX3+AAAIAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvdn5gAAzAkAAAAAQQLSBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABX8zb2AABwAgAAYQE8AzMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApfpq7uvuhAVn5hoBMgN8A4kFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM77b3a/cAAB0GAABRA6cECQSwBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF3tifEN8VIEufoAABgEjQVGBGsFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvqzfNRAscIAACHATIF7QVSBQ8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAietx8gAAcQUMAgAALgLVBTkGPwUyBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi6QXtAABNBQAAPgHCAmQFIwbyBPkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt+mG69noqwWw9E0BEgRzBCgF6AUyBTEFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA98Bz43fAAAC4FAADMAnAFowSUBVsFTAW9BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXsLfim98gF+u8AAD8EtgbDBRsF9AQUBYgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY77H39fbpAicEAADDAX8EEAaUBUwFFgXcBO8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwfKl7w71QQMAAFsBmgJmBM8EJQVqBOsE2QWIBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIPfU/HX2bgFn5gAAewPAA8cDJwRaBCsFjgTTBY0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHsw+af8Jv8JwEAAAAA3wTHBFIEqQREBLYEyQUrBVAFAAAAAAAAAAAAAAAAAAAAAAAAdujl5mfmz/oRBK/uAAA/ASUECwRvA3YDQwQEBUoFYgTsBAAAAAAAAAAAAAAAAAAAaur/6WjqZvgGBwb3AACaAY0CdQTvA2ADKgPnA3oFwwQlBRUEAAAAAAAAAAAAAG/pCu7g5mfmyQIp+gAAqAHEAqcCiQMSBPECGAPWA1UDlwPTBDwEAAAAAAAAAACJ8WfmVvNqAWEEAAAAAOIDowSEAyYDYgMQA5cC8AMVBDMEDwRgBAAAN+dW7urqZ+bkArQFAAAAAHkCCAVVBC8EJwNjA8wCVwPjA94DkgPyA8IDde6j7Fbtm/UyBAAAAAApAqcC3AOEAxIDkQNfA8kCHQNdBP8DdwONA18E9/ZVAfIDZ+YAAB0DtASpA0MDfQMYA9oDuAO/A2QD0gTbA78DYwNqA5QEAAAAAAAAmQOYBAgEUQNHAxcDpQMTBLMDFgTRA0cEjQNiAzwDAACMAuUC/gJHBDIDmwM8A4IDewODAzAEXgP3A4QD1gLAAr8CKgXiBDkDXQOHA2ID0AMQBAIE/QOpA2wDmAOVAykDEANRAgMFKwOlA9EDgwNQBJsEFwSWA9ECrwNuA94CMgPoAuMCxQNJA5cDrAPLA7QDzQNlA60DAQP1AtYC5QMGA88CqgPRA48DbwPuAlkD1QKHAusCKQN0AkMDLAPjAZoElgOAA+oDiQPFA0ICaQJzAp4CzQFyAmECtwP+A+gDIQP8Am8CMwOxAqECNQNdAkYC+wILA+4C1wKOAiQDGwMoA1QCTgLtAjcCkANTA4ECKgKYAnUDGQLMAcgC/gIDA9EC0AIrA60CVgItAloC1wJmAh4DsAKpAnwC6gEyAhkC+AGzAgYCsgKIAi8C2gHeAkACJQL2AVYCwwJeAtMBIALOAogCxQGvAQkC4gExAh8CKwISAhEC";var Wb={"36-v2":36*36,48:48*48,96:96*96,"96-20260520":96*96},xB={"36-v2":"gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzR0FA+4eBgPoGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8AAAAALGwMD2ZmJg+mZiYPrGwMD2BgIA7wcBAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAOHg4D2lpKQ+o6KiPuHg4D0AAAAAwcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPNXUVD6lpKQ+paSkPtXUVD6BgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA78fBwPZWUlD6lpKQ+o6KiPpmYmD6xsLA9AAAAAIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7tbQ0PqWkpD6fnp4+nZycPqempj7V1FQ+gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8wcBAPIGAgDuJiIg9l5aWPqWkpD6dnJw+nZycPqOioj6bmpo+sbCwPQAAAADBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYCAO4GAADzt7Gw+qaioPp2cnD6dnJw+nZycPp2cnD6npqY+3dxcPoGAgDuBgAA8gYCAO4GAADyBgAA8gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAJGQED6hoKA+oaCgPpuamj6dnJw+nZycPpuamj6hoKA+oaCgPpmYGD4AAAAAwcBAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDwAAAAA0dDQPZ2cnD6hoKA+m5qaPp2cnD6dnJw+n56ePp+enj6bmpo+o6KiPp2cnD7Z2Ng9AAAAAIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8wcBAPAAAAAChoKA9j46OPqempj6fnp4+nZycPp2cnD6dnJw+nZycPp+enj6dnJw+m5qaPqWkpD6Pjo4+mZiYPQAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8AAAAAJmYmD2NjIw+p6amPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6lpKQ+i4qKPpmYmD0AAAAAgYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADyBgIA72djYPY+Ojj6npqY+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+p6amPo+Ojj7R0NA9gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8AAAAAIGAADyhoCA+nZycPqWkpD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+m5qaPp+enj6dnJw+nZycPqWkpD6dnJw+kZAQPoGAADwAAAAAgYAAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYAAPMHAQDyBgAA8gYAAPAAAAACBgIA7sbCwPeHgYD6fnp4+o6KiPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp+enj6dnJw+nZycPp2cnD6bmpo+nZycPp+enj6dnJw+nZycPp2cnD6joqI+oaCgPu3sbD6JiIg9gYCAO4GAgDuBgAA8wcBAPIGAgDyBgAA8gYAAPAAAAAAAAAAAgYCAO6moqD3V1FQ+mZiYPqempj6fnp4+m5qaPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+oaCgPqmoqD6XlpY+tbQ0PvHwcD2BgAA8AAAAAAAAAACBgAA8gYAAPLGwMD3h4OA90dBQPpmYmD6npqY+o6KiPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6dnJw+m5qaPpuamj6lpKQ+o6KiPpWUlD7R0FA+2djYPaGgID2BgIA73dxcPpmYmD6joqI+paSkPqOioj6dnJw+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp+enj6bmpo+nZycPqOioj6joqI+o6KiPpmYmD7NzEw+0dBQPpmYmD6lpKQ+paSkPqWkpD6fnp4+m5qaPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPqGgoD6lpKQ+o6KiPpmYmD7d3Fw+gYCAO6GgID3h4OA90dBQPpWUlD6lpKQ+paSkPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+m5qaPp2cnD6joqI+paSkPpmYmD7R0FA+4eDgPaGgID2BgAA8gYAAPAAAAAAAAAAAgYAAPPHwcD21tDQ+l5aWPqmoqD6hoKA+m5qaPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+m5qaPp2cnD6bmpo+oaCgPqempj6ZmJg+1dRUPrGwsD2BgAA8AAAAAAAAAACBgAA8gYAAPMHAQDzBwEA8gYAAPAAAAACBgIA7iYiIPe3sbD6hoKA+o6KiPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6joqI+oaCgPuHgYD6pqKg9gYCAOwAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8AAAAAMHAQDyRkBA+m5qaPqempj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPqOioj6dnJw+nZwcPoGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDuBgIA72djYPZGQkD6npqY+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+p6amPpGQkD7R0NA9AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAKGgoD2Pjo4+p6amPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6npqY+jYyMPpmYmD0AAAAAgYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPAAAAACZmJg9kZCQPqWkpD6dnJw+nZycPp2cnD6dnJw+n56ePp2cnD6dnJw+m5qaPqWkpD6Pjo4+mZiYPQAAAADBwEA8gYAAPIGAgDuBgAA8wcBAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDwAAAAA0dDQPZ2cnD6joqI+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+oaCgPp2cnD7R0NA9AAAAAMHAQDyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYCAO52cHD6hoKA+n56ePp2cnD6dnJw+nZycPpuamj6hoKA+o6KiPpWUFD4AAAAAwcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAADzBwEA8gYCAO4GAADzl5GQ+paSkPp2cnD6dnJw+nZycPpuamj6npqY+7exsPoGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPAAAAACpqKg9m5qaPqWkpD6bmpo+nZycPqWkpD6XlpY+iYiIPQAAAACBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA71dRUPqempj6dnJw+n56ePqOioj61tDQ+gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7sbCwPZuamj6joqI+o6KiPpWUlD7x8HA9AAAAAMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPNXUVD6lpKQ+paSkPtXUVD6BgAA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8AAAAAOHg4D2lpKQ+paSkPuHg4D0AAAAAwcBAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYCAO7GwMD2ZmJg+mZiYPqGgID2BgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzZ2Fg+zcxMPoGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7",48:"gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAADj4uI+4eDgPoGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDvBwEA8gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4WEBD6BgAA/gYAAP4GAAD4AAAAAgYAAPAAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8wcBAPIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAADyBgAA8gYCAOwAAAAAAAAAAgYAAPIGAgDsAAAAAAAAAAIGAgDsAAAAAgYCAO5GQkD6BgAA/gYAAP5GQkD4AAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgAA8wcBAPMHAQDyBgIA7gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADwAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAgYCAO+Hg4D6BgAA/gYAAP/Hw8D4AAAAAgYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8wcBAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADyBgAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYAAPoGAAD+BgAA/gYAAP4GAAD+BgAA+AAAAAAAAAACBgIA7gYAAPAAAAACBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAADBwEA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAADwAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7oaCgPoGAAD+BgAA/gYAAP4GAAD/BwMA+AAAAAAAAAACBgIA7AAAAAIGAgDuBgAA8gYAAPAAAAACBgIA7gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAwcBAPIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYAAPIGAADwAAAAAAAAAAIGAADyJiIg9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPQAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADwAAAAAgYCAO4GAADyBgIA7gYCAOwAAAAAAAAAAgYCAO8HAQDyBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/o6KiPoGAgDuBgAA8AAAAAIGAgDuBgIA7gYCAO8HAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPAAAAAAAAAAAgYCAO4GAADyBgIA7gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYCAO4GAADyBgAA8gYCAO4mIiD2BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD6BgAA8gYCAO4GAADwAAAAAgYCAO4GAADyBgIA7wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAIGAADyBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgIA7gYCAO+Hg4D6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDsAAAAAAAAAAIGAgDuBgAA8AAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAgYAAPIGAgDuBgIA7gYAAPAAAAACBgIA7gYCAPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4GA+AAAAAAAAAACBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO8HAQDwAAAAAgYCAO4GAADwAAAAAgYAAPAAAAACBgAA8gYCAOwAAAACBgIA9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/x8PA+wcDAPYGAgDuBgAA8wcBAPIGAADyBgAA8gYAAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAMHAQDyBgAA8gYCAO4GAgD3h4OA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/4eDgPoGAAD2BgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAOwAAAACBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO9PS0j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYAAPIGAgDuBgIA7o6KiPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+hoKA+gYCAOwAAAACBgIA7gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPgAAAACBgIA7gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAIGAADwAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYAAPcHAwD6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP9HQ0D6BgIA9gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7wcBAPIGAgDzBwEA8gYAAPAAAAACBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7AAAAAAAAAADBwMA94eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+iYiIPYGAgDyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAOHgYD7x8PA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4WEhD6BgIA7gYCAO4GAADzBwEA8gYAAPMHAQDzBwEA8gYCAO4GAgDsAAAAAgYAAPIGAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAgDuBgAA+wcDAPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+gYCAPYGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAPaOioj6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP6GgoD6BgIA9gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4WEBD7BwMA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAAD6BgIA7gYAAPIGAgDuBgIA7AAAAAIGAAD6RkJA+8fDwPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+kZCQPoGAAD6BgIA84eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/j4uI+4eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+gYCAO4GAAD6RkJA+4eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/x8PA+kZCQPoGAAD6BgIA7gYCAO8HAQDwAAAAAgYCAO4GAAD6hoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/wcDAPoGAAD6BgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAAAAAACBgAA8gYCAPaOioj6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP6Oioj6JiIg9gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADyBgIA7gYCAOwAAAAAAAAAAgYCAO4GAADyBgIA94eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/BwMA+gYAAPoGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/8/LyPuXkZD6BgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAgYAAPAAAAACBgIA94+LiPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+wcDAPYGAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAPdHQ0D6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgAA9gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/oaCgPsHAQDzBwEA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgAA8gYAAPIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7gYCAO4GAADyBgIA7oaCgPoGAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+hoKA+gYCAO4GAgDyBgIA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO8PCwj6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP9HQ0D6BgAA8gYAAPMHAQDzBwEA8gYCAOwAAAACBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgIA7gYCAO8HAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAPMHAQDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAgDuBgIA7gYCAO6GgID3j4uI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/4eDgPoGAgD2BgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYCAPMHAQDwAAAAAgYCAO8HAQDzBwEA8gYAAPIGAADyBgAA8gYCAO4GAADyBgAA8AAAAAAAAAACBgAA8wcBAPIGAADzBwEA8gYAAPIGAADwAAAAAgYCAO4GAADzJyMg98fDwPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPQAAAACBgAA8gYAAPAAAAAAAAAAAgYCAO4GAgDuBgAA8wcBAPIGAADyBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYCAO4GAADyBgAA84eBgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgIA+gYCAO4GAgDvBwEA8gYAAPIGAgDsAAAAAgYCAO4GAgDvBwEA8wcBAPIGAgDuBgAA8gYCAOwAAAAAAAAAAAAAAAIGAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8gYAAPIGAADyBgAA8AAAAAMHAwD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP+Hg4D6BgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgAA8gYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPMHAQDyBgAA8gYCAO4GAAD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAgD2BgIA7gYCAOwAAAACBgAA8gYAAPIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYCAOwAAAACBgAA8gYAAPIGAADyBgIA7gYCAOwAAAAChoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPAAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPYGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAw8LCPoKBAT+CgQE/gYAAP4GAAD+hoKA+gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYAAPIGAADyBgIA7AAAAAIGAgDuBgIA7gYAAPMHAQDyBgIA7gYAAPoKBAT+BgAA/gYAAP4GAAD+BgAA+gYCAO4GAADyBgAA8AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPAAAAAAAAAAAgYAAPIGAADyBgIA7gYCAO/Py8j6BgAA/gYAAP+Hg4D6BgIA7gYCAO4GAADzBwEA8gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO5OSkj6BgAA/gYAAP5OSkj6BgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAADyBgIA7AAAAAIGAgDvBwEA8wcBAPIGAgDsAAAAAgYCAO4GAgDuBgAA8gYAAPIGAAD6BgAA/gYAAP4WEBD6BgIA7gYCAO4GAADyBgAA8gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAOwAAAADBwEA8gYAAPIGAgDvh4OA+4eDgPoGAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7AAAAAIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7",96:"gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDwAAAAAwcBAPMHAQDyBgIA8wcBAPIGAADyhoKA8gYAAPIGAADyBgAA8AAAAAIGAADyBgIA7gYCAO4GAgDuBgIA7wcBAPIGAADzBwEA8gYCAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPOXkZD7z8vI+4+LiPu3sbD6BgIA7wcBAPAAAAACBgAA8gYCAO4GAADyBgIA8gYCAPIGAADyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYCAPIGAADzBwEA8gYCAO8HAQDyBgAA8gYAAPIGAgDuBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8oaCgPIGAgDyBgIA8wcBAPIGAgDyBgAA8wcBAPIGAgDvBwEA8wcBAPIGAgDyBgAA8gYAAPMHAQDzBwEA8gYCAO4GAADyBgIA8wcBAPIGAADyBgAA8gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADzBwEA8wcBAPIGAgDvBwEA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAACBgAA8gYCAPYGAAD+BgAA/goEBP4KBAT+RkBA9gYAAPAAAAACBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYAAPAAAAACBgAA8AAAAAIGAgDuBgIA7gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcDAPKGgoDyBgIA8oaCgPIGAgDyhoKA8gYCAOwAAAACBgAA8gYCAO4GAADyBgIA8wcBAPIGAADwAAAAAgYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAADyBgAA8gYAAPMHAQDzBwEA8gYCAPMHAQDzBwEA8AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAADyBgAA8paQkPoGAAD+BgAA/goEBP4GAAD/FxEQ+AAAAAAAAAACBgIA7gYAAPIGAgDsAAAAAAAAAAIGAgDuBgIA7gYAAPKGgoDyBgIA8wcBAPIGAgDyBgIA8gYAAPAAAAACBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgAA8wcBAPKGgoDzBwEA8gYAAPIGAADyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgAA8gYCAPMHAQDyBgIA8gYCAPMHAQDzBwEA8AAAAAIGAgDuBgIA7gYAAPIGAADyhoKA8gYAAPMHAQDwAAAAAgYCAO4GAADyBgAA8AAAAAAAAAAAAAAAAgYAAPIGAADyBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYCAPMHAQDyBgAA8gYCAPIGAgDuBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYAAPIGAADzBwEA8paSkPoGAAD+BgAA/goEBP4KBAT+hoKA+gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDuBgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgIA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgIA8oaCgPIGAgDyBgAA8gYCAO8HAQDzBwEA8oaCgPIGAgDzBwEA8gYCAPMHAQDyhoKA8gYCAPMHAQDzBwEA8AAAAAAAAAACBgIA7wcBAPKGgoDyBgIA8gYCAPMHAQDyBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAADBwEA8gYCAO8HAQDzBwEA8AAAAAIGAADyBgIA7gYCAOwAAAACBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgAA8gYCAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgIA8wcBAPAAAAACBgIA7AAAAAIGAgDvBwEA85eTkPoGAAD+BgAA/gYAAP4GAAD/z8vI+gYAAPMHAQDyBgIA7gYAAPMHAQDyBgIA7gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgIA7gYCAO8HAQDyBgIA8oaCgPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAgDsAAAAAwcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYAAPKGgoDyBgIA8oaCgPIGAgDzBwEA8gYCAOwAAAADBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAgDyBgIA8AAAAAIGAgDuBgIA7gYCAO4GAADzBwEA8gYAAPIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8gYCAPIGAgDyBgIA8gYCAPIGAgDuBgIA8oaCgPIGAADyBgIA8AAAAAIGAADyBgIA8gYAAPIGAADyFhAQ+goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/iYgIPoGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPKGgoDzBwEA8gYAAPMHAQDyBgIA8gYCAPIGAADyBgIA7wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAO4GAADyBgIA7gYCAO4GAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPAAAAACBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDvBwEA8gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADwAAAAAgYCAO4GAADzBwEA8gYAAPIGAADyBgAA8wcBAPIGAADyBgIA7gYCAPIGAADyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADylpKQ+goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/k5KSPoGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAADyBgIA7gYAAPIGAADzBwEA8wcBAPKGgoDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwMA8oaCgPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAO8HAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgIA7gYAAPMHAQDyBgIA8gYCAO4GAgDsAAAAAgYAAPMHAQDzBwEA8wcBAPIGAgDuBgAA8wcBAPAAAAACBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDvj4uI+goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/8/LyPoGAADyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDzBwEA8wcBAPIGAgDyBgAA8gYCAO8HAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDzBwEA8oaCgPKGgoDyBgIA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAPMHAQDyBgIA7wcBAPIGAADzBwEA8gYAAPIGAADyBgIA8gYCAO4GAgDuBgAA8wcBAPIGAgDyBgIA7gYAAPIGAADyBgAA8gYAAPAAAAACBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPKmoKD6BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4WEBD7BwEA8gYAAPIGAgDvBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADyBgIA8gYAAPIGAgDsAAAAAgYCAO4GAgDuBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgIA8oaCgPIGAgDyBgAA8gYAAPIGAgDyBgIA8oaCgPIGAgDyBgIA8gYCAO8HAQDyBgIA7gYCAOwAAAACBgIA7wcBAPIGAADyBgIA7wcBAPIGAgDuBgAA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8wcBAPAAAAACBgIA7AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAADzBwEA8wcBAPLOysj6CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP8PCwj6BgAA8AAAAAIGAgDvBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYCAO4GAgDsAAAAAgYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYCAPAAAAACBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDyhoKA8gYCAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcDAPIGAgDyBgIA8wcBAPIGAADyBgIA8wcBAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA7gYCAO4GAgDuBgIA7gYCAO8HAQDyBgAA8gYCAPIGAADyBgAA8gYCAO4GAgDzBwEA8wcBAPIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAADyBgIA8iYiIPYGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+JiIg9gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO8HAQDyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPIGAgDsAAAAAgYAAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAADzBwEA8oaCgPoGAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+FhIQ+gYAAPIGAADyBgIA7AAAAAIGAADyBgIA8wcBAPIGAgDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAADyBgIA7gYCAO8HAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPIGAgDuBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA7wcBAPIGAgDvBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyhoKA8gYCAO4GAgDuBgIA7gYAAPAAAAACBgIA7gYAAPIGAADyBgAA8AAAAAAAAAACBgIA7gYAAPMHAQDwAAAAAgYAAPIGAgDuBgAA8gYCAOwAAAADBwEA8wcBAPMHAQDwAAAAAAAAAAIGAgDvBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADwAAAAAgYCAO4GAADyBgIA7gYAAPAAAAAAAAAAAgYAAPAAAAACJiIg9goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD/z8vI+gYAAPYGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAOwAAAADBwEA8gYAAPIGAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPIGAADyBgIA7gYAAPIGAgDuBgIA8wcBAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYCAPMHAwDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAADwAAAAAgYAAPIGAgDsAAAAAgYAAPMHAQDyBgAA8gYCAOwAAAACBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAADyBgAA8wcBAPAAAAAAAAAAAgYCAO4GAADzBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDyBgAA8gYCAO4GAgDuBgIA7AAAAAIGAADyBgIA7gYAAPMHAQDyDgoI+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/g4KCPoGAADyBgAA8gYAAPIGAgDuBgIA8gYCAPIGAgDyBgAA8gYCAO4GAgDuBgAA8wcBAPIGAgDuBgIA7gYAAPIGAgDzBwEA8gYCAPMHAQDyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgIA8gYCAPKGgoDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAgDuBgIA7gYCAO8HAQDyBgIA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8gYCAO4GAADyBgAA8gYAAPIGAgDvBwEA8gYCAPAAAAAAAAAAAgYCAO4GAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgIA8gYCAPJGQkD3j4uI+goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/8/LyPpGQED2BgAA8oaCgPIGAgDyBgIA8wcBAPIGAADyBgIA8gYCAPIGAADzBwEA8gYAAPIGAgDyBgIA7wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8gYCAPIGAgDyhoKA8gYCAPKGgoDzBwMA8gYCAPIGAADyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPMHAQDyhoKA8wcBAPIGAgDuBgAA8gYCAO4GAgDsAAAAAgYAAPIGAgDuBgAA8gYCAO8HAQDzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAADzBwEA8gYCAO4GAADyBgIA8gYCAPMHAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADzBwEA8gYCAPKWkpD6CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+BgAA/goEBP4KBAT+CgQE/goEBP4WEhD7BwEA8gYCAO8HAQDyBgIA8gYAAPMHAQDzBwMA8wcBAPIGAADyBgIA7gYCAO4GAADzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDyBgIA8oaCgPMHAwDzBwEA8gYCAPIGAADyhoKA8wcBAPIGAgDzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8oaCgPMHAQDyBgAA8gYAAPAAAAACBgIA7gYAAPIGAgDuBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAgDvBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDvBwEA8gYCAPKGgoDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAADzBwEA8kZCQPYKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP/Py8j6JiIg9wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAO4GAgDyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7gYAAPIGAADzBwEA8gYCAPIGAADyBgIA7wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA7gYAAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPIGAgDyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA8gYCAPIGAgDyBgIA8AAAAAIGAADzBwEA8wcBAPIGAADzBwEA8gYCAO4GAADyBgIA7gYCAO4GAADzBwEA8gYCAOwAAAACBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8paSkPoKBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+zsrI+gYCAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYCAO8HAQDyBgIA8gYCAOwAAAADBwEA8gYCAO4GAgDuBgAA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgIA8gYAAPIGAgDuBgIA7AAAAAIGAADzBwEA8oaCgPIGAgDzBwEA8gYCAO8HAQDyBgIA7gYCAO4GAADzBwEA8gYCAPIGAADyBgIA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8gYCAPKGgoDyBgIA8gYCAPMHAQDylpCQ+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4SDAz+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/iYgIPoGAgDuBgIA7gYAAPIGAgDyBgAA8gYCAO4GAADyBgAA8AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgAA8gYAAPIGAgDzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8gYAAPIGAgDyBgIA8gYAAPIGAgDzBwEA8gYAAPMHAQDyhoKA8oaCgPIGAgDyBgAA8gYCAOwAAAADBwEA8gYCAPIGAgDzBwEA8gYCAO4GAADyBgAA8gYCAO4GAADzBwEA8gYAAPIGAADyBgIA7gYCAPIGAADyBgAA8AAAAAIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzj4uI+goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/g4ICP4GAAD+CgQE/gYAAP4GAAD+CgQE/4+LiPpGQED3BwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYAAPIGAgDvBwEA8gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDvBwEA8gYCAPIWEhD6BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP5OSkj6BgAA8wcBAPMHAQDyBgAA8gYCAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDyBgIA8gYCAPIGAADyBgIA8oaCgPIGAgDyBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADyBgAA8oaCgPIGAADyBgAA8gYCAPIGAgDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAgDzBwEA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8AAAAAMHAQDyBgIA82djYPYKBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+DggI/goEBP4GAAD+FhAQ+wcBAPMHAQDyBgIA8gYCAPIGAADyBgIA7wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPMHAQDyBgAA8gYCAPMHAQDzBwEA8wcBAPMHAQDyhoKA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAgDyBgIA8gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDsAAAAAAAAAAAAAAAChoKA8gYCAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPMHAQDyBgAA8gYCAPMHAQDyBgIA7gYCAO4GAADzBwEA8oaCgPMHAQDwAAAAAgYCAO4GAADyJiIg95eTkPoKBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD/j4uI+sbAwPYGAgDyhoKA8oaCgPMHAQDyBgAA8AAAAAIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8oaCgPIGAADzBwEA8gYAAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyBgIA7wcBAPMHAQDwAAAAAAAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAIGAgDvBwEA8gYCAPIGAADyBgIA7gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyjoqI+gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/s7KyPsHAQDzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAPIGAADyBgIA8wcBAPKGgoDyBgIA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgAA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgIA8wcBAPIGAADyBgIA7gYAAPMHAQDyBgAA8wcBAPMHAQDwAAAAAAAAAAAAAAACBgIA7wcBAPMHAQDyBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7gYAAPAAAAACBgAA8wcBAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPMHAQDyBgIA7gYAAPIGAADyBgAA8wcBAPIGAgDuBgIA8wcBAPIWEhD6CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP+XkZD6BgAA8gYCAO4GAgDyBgIA8gYCAO8HAQDyBgIA8gYAAPMHAQDyBgIA7gYCAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyhoKA8gYAAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADwAAAAAgYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7gYAAPIGAADzBwEA8gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAwcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYCAPIGAgDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8jYwMPoKBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+CgQE/gYAAP4GAAD+BgAA+gYCAO4GAgDyBgIA8gYAAPIGAADyBgIA8gYCAO4GAADyhoKA8wcBAPIGAgDyBgIA8gYCAO4GAgDyBgIA8gYCAPIGAgDyBgAA8oaCgPIGAgDzBwEA8gYCAPKGgoDzBwEA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgIA7wcBAPIGAgDuBgAA8gYCAO4GAADyBgIA7gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA8wcBAPIGAgDsAAAAAgYCAO4GAgDuBgAA8gYCAO4GAADzBwEA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPIGAADzBwEA8gYAAPIGAgDsAAAAAwcBAPIGAADyJiIg98/LyPoKBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD/x8PA+kZCQPYGAADyBgIA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAPIGAgDyBgAA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAO8HAQDzBwEA8gYAAPIGAgDzBwEA8wcBAPKGgoDzBwEA8gYAAPIGAADwAAAAAgYCAO4GAADyBgAA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAgDvBwEA8wcBAPMHAQDwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgD3h4OA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/4+LiPomIiD3BwEA8gYCAO4GAgDuBgIA8wcBAPIGAADyBgAA8gYCAO8HAQDyBgIA7gYAAPMHAQDyBgIA8oaCgPMHAQDzBwEA8gYCAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgIA8gYAAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDzBwEA8wcBAPIGAADwAAAAAgYCAO8HAQDyBgIA7wcBAPIGAgDsAAAAAgYCAO4GAADzBwEA8kZCQPePi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP+Pi4j6BgIA9gYCAO4GAgDuhoKA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPMHAQDyhoKA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPIGAgDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDwAAAAAgYAAPIGAADyBgAA8gYCAO4GAADyBgIA7gYAAPIGAADyxsDA94+LiPoKBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+DggI/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT/T0tI+gYAAPcHAQDyBgAA8gYCAPIGAgDsAAAAAgYCAO8HAQDyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDuBgIA7gYAAPMHAQDyBgAA8gYCAPMHAQDyBgAA8gYCAO8HAQDwAAAAAgYCAO4GAADyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYCAOwAAAACBgAA8gYCAO4GAgDuBgAA8gYAAPJmYmD3V1NQ+gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/g4ICP4GAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+CgQE/4+LiPqGgoD2BgIA8wcDAPIGAADyBgAA8gYCAO4GAADzBwEA8gYCAPMHAQDyBgIA7gYCAPIGAgDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDyhoKA8oaCgPMHAQDzBwEA8gYCAPIGAgDuBgAA8wcBAPMHAQDyBgAA8gYCAO8HAQDzBwEA8gYAAPIGAgDuBgIA7wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYCAO8HAQDzBwEA8gYCAO8HAQDyBgIA7wcBAPIGAADzBwEA8gYAAPIGAADyBgIA7kZCQPeXk5D6CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/goEBP4OCAj+DggI/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+BgAA/gYAAP+Pi4j6JiIg9gYAAPAAAAAAAAAAAwcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDwAAAAAgYAAPMHAQDzBwEA8gYCAO4GAgDuBgIA7wcBAPIGAADyBgIA7gYAAPIGAgDzBwEA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8gYCAPIGAADyBgAA8gYAAPIGAADyRkJA95eTkPoKBAT+CgQE/g4ICP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD/j4uI+gYCAPYGAgDuBgIA7gYCAO4GAADzBwEA8oaCgPMHAQDzBwEA8wcBAPKGgoDyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8wcBAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYCAPIGAgDyBgIA7AAAAAMHAQDzBwEA8gYCAO4GAgDuBgIA7gYCAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgIA7AAAAAIGAADyBgAA8oaCgPMHAQDyBgIA7gYCAO4mICD7z8vI+gYAAP4KBAT+CgQE/g4ICP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/8fDwPoWEBD6BgIA7gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8wcDAPKGgoDwAAAAAgYAAPMHAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAADyBgIA8wcBAPMHAQDyBgIA75eRkPoKBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgIA+gYAAPIGAADzBwEA8wcBAPIGAgDuBgIA8wcBAPIGAADyBgAA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgAA8wcBAPMHAwDyhoKA8gYCAPMHAQDwAAAAAgYCAO4GAgDyBgIA8gYAAPIGAADyBgIA7gYCAPIGAADyBgIA7wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgAA8wcBAPIGAAD2xsLA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+DggI/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/o6KiPpGQkD3BwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDzBwEA8gYCAPIGAgDyhoKA8gYAAPMHAQDyBgIA7gYCAO4GAgDuBgAA8gYAAPMHAQDyBgIA7gYCAO8HAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgAA8AAAAAIGAADzBwEA8iYgIPuHg4D6BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP+Pi4j7R0NA9wcBAPIGAgDuBgIA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYCAO4GAADyBgIA7gYCAOwAAAACBgAA8wcBAPMHAQDyBgIA7gYAAPIGAgDyhoKA8gYCAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPIGAAD2TkpI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+DggI/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/hYSEPsHAQDyBgAA8gYCAO4GAADyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA7gYCAPKGgoDzBwEA8gYCAOwAAAADBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8iYgIPuPi4j6BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP+Xk5D6pqCg+gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8wcBAPIGAgDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDyBgAA8gYAAPIGAgDuBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDyhoKA8gYAAPIGAADyBgIA8wcBAPImIiD2zsrI+gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/g4ICP4KBAT+DggI/g4ICP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/paSkPomIiD3BwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADzBwEA8wcDAPIGAgDzBwEA8gYCAPIGAgDuBgAA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA9g4KCPvPy8j6CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+lpKQ+kZCQPYGAADyhoKA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAgDzBwEA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgAA8wcBAPIGAADyBgAA8kZAQPYWEhD7z8vI+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/4+LiPoWEhD6ZmJg9gYCAPKGgoDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDyBgIA7AAAAAIGAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAgD2FhIQ+8/LyPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/o6KiPomIiD2BgAA8gYCAPIGAADyBgIA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA7wcBAPMHAQDyBgIA8gYAAPIGAADyFhAQ+w8LCPoGAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4SDAz+BgAA/g4ICP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+xsLA+paQkPsHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgAA+kZCQPvPy8j6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/g4ICP+Pi4j6joqI+kZAQPoGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPKGgID3FxEQ+o6KiPvPy8j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4OCAj+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP+Xk5D6lpKQ+rawsPpGQkD2BgAA86ehoPoKBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD/p6Gg+4+LiPoKBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4GAAD+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+DggI/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT/z8vI+8/LyPoKBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT/l5OQ+6ehoPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT/t7Gw+wcBAPKmoqD2hoCA+paSkPuPi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP/X09D6joqI+xcREPpGQED2BgAA8wcBAPIGAgDzBwEA8wcBAPIGAADyFhAQ+oaCgPuPi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP/Py8j6VlJQ+iYgIPoGAgDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8gYCAO4GAADyBgIA7gYAAPIGAADylpCQ+tbS0PoGAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+DggI/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT/DwsI+iYgIPoGAgDyhoKA8wcBAPMHAQDyBgIA7gYAAPIGAADyBgIA7gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAgD2joqI+gYAAP4GAAD+BgAA/g4ICP4OCAj+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD/z8vI+hYSEPpmYmD3BwEA8wcBAPMHAwDzBwMA8wcBAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgAA8kZCQPYWEhD7j4uI+goEBP4KBAT+CgQE/gYAAP4KBAT+DggI/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/8/LyPoOCgj6RkBA9gYAAPIGAADyBgAA8gYCAPIGAgDyhoKA8wcBAPIGAADyBgIA8wcBAPIGAgDuBgAA8gYCAPIGAADzBwEA8gYCAPKGgoDyBgIA8gYAAPMHAQDyhoKA8oaCgPIGAADzBwEA8gYAAPIGAgDyBgIA9o6KiPoKBAT+BgAA/gYAAP4KBAT+DggI/g4ICP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP/X09D6FhIQ+oaAgPYGAgDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDyhoKA8gYCAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8oaCgPIGAgDyBgAA8gYAAPIGAADwAAAAAgYAAPImIiD2npqY+gYAAP4KBAT+DggI/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/s7KyPpGQkD2BgIA8wcBAPMHAQDyBgAA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYCAPIGAgDuBgIA7gYCAO4GAADwAAAAAgYCAO8HAQDzBwEA8oaAgPuHg4D6BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+DggI/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP+Xk5D6JiAg+gYCAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA7gYAAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPKGgoDyBgIA8wcBAPIGAADyBgIA7gYAAPIGAADyBgAA8AAAAAIGAADyDgoI+gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+DggI/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/lZSUPrGwMD3BwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDzBwEA8gYCAO8HAQDyBgIA7gYAAPIGAgDuBgAA8gYCAPIGAgDzBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDwAAAAAgYAAPAAAAACBgAA8gYCAO4GAgDsAAAAAwcDAPePi4j6CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/g4ICP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP+Pi4j6JiAg+wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPKGgoDyBgIA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADwAAAAAgYCAO8HAQDyBgAA8AAAAAAAAAADBwEA8gYCAO4mIiD2joqI+goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/s7KyPqGgID3BwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA8gYAAPIGAgDuBgIA8hYSEPoKBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT/l5GQ+wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyhoKA8wcBAPIGAADyBgIA7gYAAPIGAgDuBgAA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8oaCgPIGAgDzBwEA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDzBwEA8gYAAPMHAQDyBgIA7wcBAPIGAgDuBgAA8gYAAPImICD7z8vI+goEBP4GAAD+CgQE/goEBP4OCAj+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/8fDwPomICD7BwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8oaCgPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPIGAADzBwEA8gYCAPMHAQDyZmJg94+LiPoGAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD/j4uI+iYiIPcHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAO8HAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8kZCQPePi4j6CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP+Pi4j6RkJA9gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDyBgIA8oaCgPMHAQDyBgIA8oaCgPIGAgDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgIA8gYAAPIGAADyBgIA7gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYAAPMHAQDzBwEA8wcBAPJGQkD3j4uI+goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/g4ICP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4OCAj+CgQE/g4ICP4OCAj+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/09LSPpGQkD3BwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8oaCgPMHAQDyBgIA8wcBAPIGAgDuBgAA8gYAAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyhoCA909LSPoKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT/j4uI+sbAwPYGAgDyBgIA7wcBAPMHAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADzBwEA8wcBAPIGAgDyhoKA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYAAPIGAgDyBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgAA8wcBAPMHAQDzBwEA8mZiYPeXk5D6CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+DggI/g4ICP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP+Pi4j6RkJA9gYCAPIGAADzBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAADyBgAA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgIA7wcBAPMHAQDzBwEA8wcBAPJGQkD3j4uI+g4ICP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/gYAAP4GAAD+DggI/4+LiPpGQkD2BgAA8gYAAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyhoKA8gYCAPMHAQDyBgIA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyJiIg98/LyPoKBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT/19PQ+kZCQPYGAgDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA8wcBAPIGAgDzBwEA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPKGgoDyhoKA8oaCgPMHAQDyBgIA8wcBAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYCAPIGAADyBgIA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyhoKA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA7hYQEPoKBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/gYAAP4KBAT+NjAw+oaCgPKGgoDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPKGgoDyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgIA8gYCAPIGAgDyBgAA8wcBAPIGAADyBgAA8gYAAPOXkZD6BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4OCgj6BgIA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPKGgoDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAwDyBgAA8wcBAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8wcBAPMHAQDyhoKA8oaCgPKGgoDyBgIA8gYCAPIGAADzBwEA8wcBAPMHAQDyBgAA8AAAAAIGAADyBgAA8gYCAO8HAQDyzsrI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/g4ICP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYCAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8wcBAPIGAgDuhoKA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPMHAQDwAAAAAwcBAPMHAQDyBgAA8gYCAPIGAgDyhoKA8oaCgPKGgoDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8gYAAPMHAQDyBgIA7gYAAPMHAQDyBgAA94eDgPoGAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD/j4uI+kZCQPYGAADyBgIA7wcBAPMHAQDyBgIA8oaCgPMHAQDyBgIA7wcBAPIGAgDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDvBwEA8gYAAPIGAADzBwEA8gYCAO4GAADyBgIA7gYCAPMHAQDyBgIA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA7wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPoGAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT/R0NA9gYCAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAgDyhoKA8gYCAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8gYCAPMHAQDyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAADzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPJOSkj6BgAA/gYAAP4KBAT+DggI/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4WEhD6BgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYAAPIGAgDyBgIA7gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAADzBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgAA8gYAAPMHAQDyBgIA7wcBAPIGAADzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgAA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgAA8oaCgPIGAADyBgIA7wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAO5GQED3j4uI+gYAAP4OCAj+CgQE/goEBP4OCAj+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/5eTkPoGAgDzBwEA8oaCgPIGAgDzBwEA8wcBAPMHAQDyhoKA8gYCAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDyBgIA8gYAAPIGAgDyBgAA8oaCgPIGAADzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8gYCAPIGAgDyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYAAPIGAADyJiAg+goEBP4KBAT+DggI/goEBP4OCAj+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/qagoPoGAADyBgAA8gYAAPIGAADyBgIA8gYCAPIGAADyBgIA8gYCAO8HAQDyBgAA8wcBAPIGAADyBgAA8gYCAPIGAADyBgIA7gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA7wcBAPKGgoDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDvBwEA8gYAAPIGAgDvBwEA8gYCAPKGgoDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYAAPIGAADzBwEA8wcBAPAAAAACBgAA8gYCAO4GAADyBgIA7s7KyPoGAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+lpKQ+gYCAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYAAPIGAgDvBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYAAPIGAADyBgAA8wcBAPKGgoDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYCAO4GAADyBgIA8wcBAPIGAgDyhoKA8gYCAPIGAADzBwEA8gYCAPMHAQDyBgIA8wcBAPIGAADzBwEA8oaCgPIGAgDyBgIA8gYAAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYAAPIGAADyBgAA8iYiIPfHw8D6BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+JiIg9wcBAPMHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPMHAQDyhoKA8wcBAPMHAQDyBgAA8gYCAPMHAQDyhoKA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8gYCAPIGAgDyBgAA8gYCAO4GAgDvBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAgDyBgIA8gYCAPIGAADzBwEA8gYCAPIGAgDzBwEA8oaCgPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgAA8wcBAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIOCgj6BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP6WkpD6BgIA8gYCAPIGAgDzBwEA8wcBAPKGgoDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADzBwEA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgIA8wcBAPIGAgDyBgAA8gYCAPIGAADyBgAA8AAAAAIGAADyBgAA8wcBAPIGAADyBgIA8gYAAPIGAADzBwEA8wcBAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPIGAgDyBgIA8gYCAPJGQED3z8vI+gYAAP4GAAD+DggI/goEBP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4KBAT+CgQE/4+LiPpmYmD3BwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgAA8gYAAPKGgoDzBwEA8gYCAPKGgoDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYAAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8AAAAAMHAQDzBwEA8wcBAPAAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyDgoI+goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/g4KCPsHAQDyhoKA8oaCgPIGAgDzBwEA8gYCAPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPKGgoDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPIGAADyBgAA8gYAAPIGAgDuBgIA7gYCAO8HAQDyBgIA7gYCAO4GAADyBgAA8wcBAPMHAQDyBgIA7wcBAPMHAQDyBgIA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8oaCgPIGAgDzBwEA8gYCAPIGAADyhoCA98/LyPoKBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/mZiYPYGAADyBgIA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAPIGAgDzBwEA8oaCgPIGAgDvBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYCAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYAAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgIA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8hYSEPoKBAT+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+lpKQ+gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA7wcBAPIGAgDuBgAA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgIA8wcBAPIGAgDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgAA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDzBwMA8wcBAPMHAQDzBwEA8AAAAAIGAADzBwEA8AAAAAIGAADyBgIA8gYAAPIGAgDvBwEA8oaCgPIGAgDyBgAA8wcBAPIGAADwAAAAAgYAAPMHAQDyBgAA8gYCAO4GAADzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAADyBgAA8kZCQPYKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+RkJA9wcBAPIGAgDyBgIA8gYCAPKGgoDzBwEA8wcBAPKGgoDzBwEA8wcBAPMHAQDyBgIA7gYCAO4GAADyBgIA8gYAAPIGAADyBgIA7gYCAO4GAgDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgIA7gYCAO8HAQDyBgAA8AAAAAIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMPCwj6BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP7Oysj6BgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDyBgIA8oaCgPKGgoDyBgIA8gYCAPIGAgDvBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDvBwEA8gYAAPMHAQDzBwEA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgAA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAADyBgAA8wcBAPIGAgDuBgAA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgAA8gYCAO4GAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAAD6BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+BgAA/goEBP6WkJD7BwEA8wcBAPIGAADyBgAA8gYCAPKGgoDyBgIA7wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAO4GAADwAAAAAgYCAO4GAADzBwEA8gYAAPIGAgDwAAAAAgYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgIA8oaCgPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyhoKA8wcBAPMHAQDzz8vI+goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/4+LiPoGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAgDvBwEA8gYAAPIGAADyBgAA8wcBAPKGgoDyBgAA8gYCAPIGAgDyhoKA8oaCgPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADyBgAA8wcBAPAAAAADBwEA8wcBAPIGAgDuBgIA7gYAAPIGAgDyBgAA8wcBAPIGAADyBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDvBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8oaCgPMHAQDzBwEA8wcBAPIGAADyVlJQ+goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/paSkPoGAgDyBgIA8wcBAPMHAQDyhoKA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgAA8gYCAPIGAADzBwEA8gYAAPIGAgDvBwEA8oaCgPIGAgDyBgIA8gYAAPIGAADzBwEA8gYCAPIGAgDzBwEA8gYCAPIGAgDyBgAA8oaCgPIGAADzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA8wcBAPIGAADwAAAAAgYAAPIGAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDyBgIA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDyJiAg+goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/iYgIPoGAADyBgIA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAADzBwEA8gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAADyBgAA8gYCAO4GAADyhoKA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYAAPAAAAACBgAA8gYCAO4GAgDvBwEA8gYCAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDyhoKA8wcBAPIGAgDyBgAA8wcBAPMHAQDyBgAA8AAAAAIGAgDuBgIA8wcBAPAAAAACBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYCAO4GAADyBgIA8gYCAO8HAQDyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgAA88/LyPoGAAD+CgQE/goEBP4KBAT/j4uI+gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPKGgoDyBgIA8gYCAPIGAgDyBgIA7gYCAO8HAQDyBgAA8gYAAPIGAADyBgIA7gYAAPIGAgDsAAAAAAAAAAMHAQDyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDuBgIA7gYAAPMHAQDwAAAAAgYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPKGgoDyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDzBwEA8gYAAPAAAAACBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgAA8paSkPoKBAT+CgQE/goEBP4KBAT+hoKA+gYAAPMHAQDyhoKA8gYCAPIGAADyBgIA8gYCAPMHAQDyBgIA8oaCgPIGAADyBgAA8gYAAPMHAQDzBwEA8oaCgPIGAgDyBgIA7gYCAPIGAADyBgAA8wcBAPIGAgDyhoKA8wcBAPIGAADyhoKA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgIA8gYAAPIGAgDyBgIA8wcBAPMHAQDwAAAAAgYCAO8HAQDyBgAA8gYCAOwAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8xcREPoKBAT+CgQE/goEBP4KBAT+pqCg+wcBAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgIA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgIA7wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPIGAgDuBgAA8gYCAO4GAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYCAO4GAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8kZAQPYGAAD+CgQE/goEBP4KBAT+JiIg9gYCAPIGAgDyBgIA8wcBAPIGAgDyBgAA8gYCAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDsAAAAAgYCAO4GAADyBgAA8wcBAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA7gYAAPIGAgDyBgIA7gYAAPAAAAACBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAgDzBwEA8wcBAPKGgoDyBgAA8wcBAPIGAADzBwEA8AAAAAIGAADyBgIA7gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPIGAADyBgIA7wcBAPIGAgDyBgIA8gYAAPMHAQDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDyBgAA8wcBAPOXkZD7h4OA+8/LyPunoaD7BwEA8gYCAPIGAgDzBwEA8gYAAPIGAgDvBwEA8wcBAPIGAADyBgIA8wcBAPIGAADyBgIA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPIGAgDuBgAA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgIA7gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAPMHAQDyBgIA7gYAAPIGAADyBgAA8","96-20260520":"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m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6fnp4+o6KiPqmoqD6pqKg+q6qqPqOioj6Pjo4+7exsPtHQUD6dnBw+6ejoPcHAwD3x8HA9gYAAPcHAQDyBgIA70dBQPamoqD3p6Og9paQkPs3MTD7Z2Fg+6ehoPoOCgj6NjIw+m5qaPqOioj6npqY+p6amPqWkpD6hoKA+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPp2cnD6fnp4+paSkPqWkpD6pqKg+q6qqPqempj6bmpo+jYyMPoWEhD7p6Gg+1dRUPs3MTD6lpCQ+2djYPZGQkD3BwEA9vbw8PtHQUD7x8HA+iYiIPpeWlj6XlpY+lZSUPpeWlj6ZmJg+m5qaPpuamj6dnJw+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+nZycPp2cnD6bmpo+mZiYPpeWlj6XlpY+mZiYPpmYmD6FhIQ+4eBgPsHAQD6pqCg+/fx8Po2MjD6dnJw+sbCwPrm4uD63trY+sbCwPquqqj6npqY+o6KiPp+enj6fnp4+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp+enj6joqI+p6amPquqqj6xsLA+ubi4Prm4uD6xsLA+nZycPomIiD719HQ++fh4PouKij6bmpo+sbCwPrm4uD63trY+sbCwPquqqj6pqKg+o6KiPp+enj6dnJw+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp+enj6joqI+p6amPq2srD6zsrI+t7a2Prm4uD6xsLA+nZycPo2MjD79/Hw+qagoPsXERD7d3Fw+h4aGPpmYmD6ZmJg+lZSUPpeWlj6ZmJg+nZycPpuamj6dnJw+nZycPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6bmpo+mZiYPpmYmD6XlpY+l5aWPpeWlj6HhoY+7exsPtXUVD69vDw+wcBAPZGQkD3Z2Ng9paQkPs3MTD7Z2Fg+6ehoPoWEhD6NjIw+m5qaPqWkpD6pqKg+qaioPqWkpD6joqI+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6dnJw+oaCgPqOioj6pqKg+p6amPqOioj6bmpo+jYyMPoOCgj7p6Gg+1dRUPsnISD6lpCQ+6ejoPaGgoD3h4GA9gYCAO8HAQDzh4OA88fBwPcnIyD3p6Og9nZwcPtHQUD7t7Gw+j46OPqGgoD6pqKg+qaioPqmoqD6joqI+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+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"},_r=new Map;function SB(t,e){let A=YB(t),r=e/2,n=r*(r+1)/2;if(A.length!==n*2)throw new Error(`Invalid D4 signed alpha payload length: ${A.length}`);let a=new Int16Array(n);for(let s=0;s<n;s++){let o=A[s*2]|A[s*2+1]<<8;a[s]=o>=32768?o-65536:o}let i=new Float32Array(e*e);for(let s=0;s<e;s++)for(let o=0;o<e;o++){let c=Math.min(o,e-1-o),g=Math.min(s,e-1-s);c>g&&([c,g]=[g,c]);let u=c*r-c*(c-1)/2+(g-c);i[s*e+o]=a[u]/32767}return i}function YB(t){if(typeof Buffer<"u")return Uint8Array.from(Buffer.from(t,"base64"));if(typeof atob<"u"){let e=atob(t),A=new Uint8Array(e.length);for(let r=0;r<e.length;r++)A[r]=e.charCodeAt(r);return A}throw new Error("No base64 decoder available in current runtime")}function Ou(t){let e=String(t);if(e==="96-outline-dark")return _r.has(e)||_r.set(e,SB(GB,96)),new Float32Array(_r.get(e));if(e==="96-outline-light")return _r.has(e)||_r.set(e,SB(kB,96)),new Float32Array(_r.get(e));if(!(e in xB))return null;if(!_r.has(e)){let A=YB(xB[e]),r=Wb[e],n=new Float32Array(A.buffer,A.byteOffset,r);_r.set(e,new Float32Array(n))}return new Float32Array(_r.get(e))}var Zb=1e-8;function vB(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n];let A=e/t.length,r=0;for(let n=0;n<t.length;n++){let a=t[n]-A;r+=a*a}return{mean:A,variance:r/t.length}}function _B(t,e){if(t.length!==e.length||t.length===0)return 0;let A=vB(t),r=vB(e),n=Math.sqrt(A.variance*r.variance)*t.length;if(n<Zb)return 0;let a=0;for(let i=0;i<t.length;i++)a+=(t[i]-A.mean)*(e[i]-r.mean);return a/n}function MB(t,e){let{width:A,height:r,data:n}=t,a=e.size??Math.min(e.width,e.height);if(!a||a<=0)return new Float32Array(0);if(e.x<0||e.y<0||e.x+a>A||e.y+a>r)return new Float32Array(0);let i=new Float32Array(a*a);for(let s=0;s<a;s++)for(let o=0;o<a;o++){let c=((e.y+s)*A+(e.x+o))*4;i[s*a+o]=(.2126*n[c]+.7152*n[c+1]+.0722*n[c+2])/255}return i}function OB(t,e,A){let r=new Float32Array(e*A);for(let n=1;n<A-1;n++)for(let a=1;a<e-1;a++){let i=n*e+a,s=-t[i-e-1]-2*t[i-1]-t[i+e-1]+t[i-e+1]+2*t[i+1]+t[i+e+1],o=-t[i-e-1]-2*t[i-e]-t[i-e+1]+t[i+e-1]+2*t[i+e]+t[i+e+1];r[i]=Math.sqrt(s*s+o*o)}return r}function Hd({imageData:t,alphaMap:e,region:A}){let r=MB(t,A);return r.length===0||r.length!==e.length?0:_B(r,e)}function Ud({imageData:t,alphaMap:e,region:A}){let r=MB(t,A);if(r.length===0||r.length!==e.length)return 0;let n=A.size??Math.min(A.width,A.height);if(!n||n<=2)return 0;let a=OB(r,n,n),i=OB(e,n,n);return _B(a,i)}var $b=[{id:"veo-1080p-standard",label:"1080p standard, 72px, margin 108",size:72,marginRight:108,marginBottom:108},{id:"veo-1080p-inset",label:"1080p inset, 72px, margin 144",size:72,marginRight:144,marginBottom:144}],Jb=Object.freeze({"1280x720":Object.freeze({"veo-1080p-inset":Object.freeze({id:"veo-720p-3-inset",label:"720p-3 inset, 48px, margin 96",sourcePriority:0,exactSizeVariant:!0}),"veo-1080p-standard":Object.freeze({id:"veo-720p-1-standard",label:"720p-1 standard, 48px, margin 72",sourcePriority:1,exactSizeVariant:!0})})}),qd=(t,e,A)=>Math.max(e,Math.min(A,Math.round(t)));function Ld(t,e){return t===1920&&e===1080}function co(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0?[]:AE([...eE(t,e),...rE(t,e)])}function Mu(t,e,A,r=1,n={}){let a=qd(t.size*r,24,Math.min(e,A)),i=qd(t.marginRight*r,0,e-a),s=qd(t.marginBottom*r,0,A-a);return{...t,size:a,width:a,height:a,marginRight:i,marginBottom:s,x:e-i-a,y:A-s-a,sourcePriority:t.sourcePriority??n.sourcePriority??100,...n}}function oo(t){return t.x>=0&&t.y>=0&&t.x+t.size<=t.videoWidth&&t.y+t.size<=t.videoHeight}function Ru(t,e,A){return{...t,videoWidth:e,videoHeight:A}}function Xb(t,e){return`${t}x${e}`}function eE(t,e){let A=Math.min(t/1920,e/1080),r=Ld(t,e),n=Jb[Xb(t,e)]||{};return $b.map((a,i)=>{let s=n[a.id]||{};return Ru(Mu(a,t,e,A,{referenceSize:r,scaledFromReference:!r,sourceCandidateId:a.id,sourceResolution:"1920x1080",sourceScale:A,sourceFamily:r?"reference-exact":"reference-projected",evidenceGate:"standard",sourcePriority:s.sourcePriority??i,...s}),t,e)}).filter(oo)}function tE(t){return`${t.size}:${t.marginRight}:${t.marginBottom}`}function _u(t){return Number.isFinite(t?.sourcePriority)?t.sourcePriority:100}function AE(t){let e=new Map;for(let A of t.filter(oo)){let r=tE(A),n=e.get(r);(!n||_u(A)<_u(n))&&e.set(r,A)}return[...e.values()].sort((A,r)=>{let n=_u(A)-_u(r);return n!==0?n:0})}function rE(t,e){return t===1080&&e===1920?[{id:"veo-1080x1920-portrait-72",label:"1080x1920 portrait, 72px, margin 108",size:72,marginRight:108,marginBottom:108,sourcePriority:0},{id:"veo-1080x1920-portrait-relocated-72",label:"1080x1920 portrait relocated, 72px, margin 144",size:72,marginRight:144,marginBottom:144,sourcePriority:1}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"binary-prior",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):t===1280&&e===720?[{id:"veo-720p-2-compact",label:"720p-2 compact, 44px, margin 29/40",size:44,marginRight:29,marginBottom:40,sourcePriority:2}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):t===720&&e===1280?[{id:"veo-720x1280-portrait-48",label:"720x1280 portrait, 48px, margin 72",size:48,marginRight:72,marginBottom:72,sourcePriority:1,sourceFamily:"binary-prior"},{id:"veo-720x1280-portrait-relocated-48",label:"720x1280 portrait relocated, 48px, margin 96",size:48,marginRight:96,marginBottom:96,sourcePriority:0},{id:"veo-720x1280-vertical-inset",label:"720x1280 vertical inset, 35px, margin 102/96",size:35,marginRight:102,marginBottom:96,sourcePriority:1},{id:"veo-720x1280-compact-44",label:"720x1280 compact, 44px, margin 29/40",size:44,marginRight:29,marginBottom:40,sourcePriority:3,sourceFamily:"binary-prior"}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:A.sourceFamily||"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):[]}var nE=Object.freeze(["veo-text-23x10","veo-text-68x30","veo-text-99x43"]),RB=Object.freeze({"veo-text-23x10":"AQoHAAAAAgsEAAAAAAAAAAAAAAAAAAAKV0AHAAEYXCMDAAAAAAAAAAAAAAAAAAY+YQ4ABjpdDwIHCQYAAAABBgkHAgAAAyVmJwMNXEkLGD9MOA4BARQ7SkIaBQAADFFCCiJnKBxYST5bTwsOWlxASV8nAwAGO18WSF0VQ1okHC9jIS5iIQgQSk0JAAASZTVfOBBUZ05KS1AfOVMLAAUzWgsAAApWY2sYCUNWGg8UGwotYBYGD0hRCQAABTRrVgoCHlxINU5QDxRcXDpMYisEAAAADEAmBAAEHEdOPhoDAxlET0wjBgA=","veo-text-68x30":"AgEABgQEBgIBAQICAQICAQECAgIABgQFAwACAgEBAgMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAl1en15IwIBAgMCAQEBAQECAgx7foF7KAMCAQECAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAUZ/fn9fAgECAgIBAgICAgIDNH2AgG4FAwIBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQICAgICAgICAQEBAQEBAQECHYCAgHcFAwIDAgICAwMDAgNhfX+BTwMEAgEBAQECAgEBAgEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgIBAQEBAQEBAQECdoCBgDECAwMCAgICAwEBEYGAgn8YAgICAQEBAQICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgEBAQIBAQEBAQFLfoB+XgIDAwICAgICAgMvgYF/bwQBAgEBAQECAgIBAQEBAQEBAQEBAQEBAQAAAQEBAQECAgIBAgEBAQEBAgEBAQEBASJ/fn91DQICAgICAgICBVyAf344AgIBAQEBAQIDAwMCAgEBAQEBAQEBAQEBAQEBAQEBAgICAQEAAAABAQEBAQIBAQEBBWx/f4AvAwICAgIDAwMQeH9/exQBAgECAQEBAggMCwgCAQEBAQEBAQIBAQEBAQECAgMHCAgGAgEBAQEBAQECAgEBAQEDQIGBgV8EAQEBAgICA0F/gIBeAwECAgICDEBvf39/gXFSFgUCAgICAwIBAQIBBRREb4GCgIJwVBQEAQEBAQECAQEBAQMUfoGAfg0CAQECAgIFbX9/fy8DAgIDBDF1fX+BgYCBgIB7QAUDAwMDAgEBAgM4dX+Bf4KDgYKBe0EFAgEBAgIBAQECAwZggIGBOAQBAgICBRx/foB9DAECAQdAf4CBf4B/f3+AgIGAQAQCAwMCAgMFUH6CgoGAgH+AgIGBf2gNAwICAwEBAQEBATh/gIFeAgEBAgEETX+BflAFAwMDKXt/gH1hMhgZMV9/gYF+IwMCAwICA0B+gYB/eFM7OlFwgIB/fVEDAgICAQEBAQMDC3yBg38RAgIDAwduf4B8KgUDAwVtgH9+QQQDAgMDBUB9gH9uBgIDAwMUfIB+fkwMBQMCBQ0+gH+CfikDAgIBAQEBAwIJX4KCgDoCAwMEInuCgG0IAgIBMH5/f1IEAgECAgIBAlF/gX0jAwMDBVt9gIBSBAEBAQAEAwhMf4GAZQcDAgEBAQECAgcwgoJ/YgMCAgNRgYCATwQEAwNef398FAMEAwQEAwMDJn6Af0cDAwMTfH6AahUCAwIDAwICAgx0gYB/IgECAQEBAQICAg17gYJ+BAMDBHeCgIEaBAQDB32BgHZAPz0+Pj8+Pj5GfoOBVgMDAyl/f35RAwIBAwMCAwEDBUCAgn44BAIBAQEBAgECA1p/gIA3AgMzgIGAbQICBAIaf4GAgoCAgoGBgYGBgIGBgX9wBAICPX9/fzEDAgECAgIDAgICKYCCfk4EAgEBAAACAgICJX+CgVwEBFeCgn8zAQEDAh5+gYGAf35/fn9/f39+fn9+fm0GAwNBfoCAMQIBAQICAgICAQEjgIF+UQMCAQEAAQEBAgIGdIKDfg4MfIGBehUBAQICGX6AgWAzMTExMTExMjEwMS4wKgQCAz5/gYE1AwEBAgICAgICAiaAgX5OAgIBAQEBAgICAwVJf4F/NTB9gYBgBAICAwIOfYCCXQYDBAICAgIDAgECAwQEAgICNICCg0cEAQECAgICAgIENIGCf0YCAgEBAQEBAQICAyKAgoFgXX2BfTECAgICAwRugIF8DgMDAQECAwQDAwIDAgMCAgESfoOAdgYBAQIDAgEBAgdvgoJ8IAMEAQEBAQEBAQIBBXd/gH5+fn99CwECAgICBEB/f3xIBQMCAgICAgMTXTkVAwICAwZcg4N9QwIBAQIBAwECOHuAgWsJAwIBAQEBAQEBAQEEQn6Bf4B/f08EAQICAgMCFHWBgX1DBgMCBAUGFW5/fG0hAwICAyh+gYB9PQQFAwMEBC9+g4B+PwQCAgEBAQEBAQICAQIkgIKBgIB8JgICAgIDAwIFOn+CgH5sLxsQFkJ2gH6AbgQCAgIDBGGDgYB7bDogIjFdfIB/gm4EAQIBAQEBAQEBAQEBAgdcgoCCgGwOAgECAgICAwIJR4CAf4GBgYGBgYB+fmcVAQIBAQICDm19gIB/gX6AgX+AgH1rEwMCAgEBAQAAAQEBAQIBAz2Af4B+TQoCAgICAgICAQEJQX1/gIGAgIGBf3xnFgQDAgICAgMFC1B8f4CBgYGBgYB9XhQDAgICAQEBAAABAQEBAQIBDV9fX14UAgIBAgICAgEBAQIFElB7fH+Af3xuPwsCAgICAgICAgUDBzJifn9+foB9YzAFAgICAgIBAQEAAAEBAQECAgIBAwMDAwEBAQECAQICAgECAgIDBAYlKy4rEwUEAgICAgICAgEBAgIDAwMNIysyIAsEAgIDAwICAgIBAQABAQEBAQEBAQABAQEBAQEBAQICAQICAgECAgECAQIDAwMCAgEBAgICAgICAgICAgEBAgEBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgMCAgICAgIBAQEBAgEBAQEBAgEBAQEBAgICAgICAgIBAQICAQEBAQEB","veo-text-99x43":"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"}),iE=Object.freeze({"veo-text-23x10":Object.freeze({id:"veo-text-23x10",width:23,height:10,marginRight:15,marginBottom:16,minNcc:.62,observedSeedScale:1.256,allenkObservedRegion:Object.freeze({x:682,y:1254,width:23,height:10}),cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:32})}),"veo-text-68x30":Object.freeze({id:"veo-text-68x30",width:68,height:30,marginRight:44,marginBottom:48,minNcc:.62,observedSeedScale:1,cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:38})}),"veo-text-99x43":Object.freeze({id:"veo-text-99x43",width:99,height:43,marginRight:64,marginBottom:68,minNcc:.62,observedSeedScale:1,cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:44})})}),jd=new Map;function QB(t){if(jd.has(t))return jd.get(t);let e;if(typeof atob=="function"){let A=atob(t);e=new Uint8Array(A.length);for(let r=0;r<A.length;r++)e[r]=A.charCodeAt(r)}else if(typeof Buffer<"u")e=new Uint8Array(Buffer.from(t,"base64"));else throw new Error("No base64 decoder available for Veo text watermark template");return jd.set(t,e),e}function FB(t){let e=0;for(let A of t)A>e&&(e=A);return e<=0?new Float32Array(t.length):Float32Array.from(t,A=>A/e)}function aE(t){let e=iE[t];return e?{...e,allenkObservedRegion:e.allenkObservedRegion?{...e.allenkObservedRegion}:void 0,cleanup:{...e.cleanup}}:null}function sE(t,{alphaGain:e=.18}={}){let A=RB[t];if(!A)return null;let r=FB(QB(A)),n=Number.isFinite(e)&&e>0?e:.18;return Float32Array.from(r,a=>Math.max(0,Math.min(.99,a*n)))}function oE(t){let e=RB[t];return e?FB(QB(e)):null}function cE(t,e={}){let A=aE(t);return A?{...A,alphaMap:sE(t,e),detectorMap:oE(t)}:null}function Vd(t={}){return nE.map(e=>cE(e,t))}var uE=.62,gE=.6,lE=.02,zB=4,NB=.35,dE=.8,fE=.68;function HB(t,e){return(.2126*t[e]+.7152*t[e+1]+.0722*t[e+2])/255}function UB(t,e,A,r){let n=Math.max(A,Math.round(t-e)),a=Math.min(r,Math.round(t+e)),i=[];for(let s=n;s<=a;s++)i.push(s);return i}function Wd({imageData:t,alphaMap:e,region:A,activeThreshold:r=lE}){if(!t||!e||!A)return 0;let n=A.width??A.size,a=A.height??A.size;if(!Number.isFinite(n)||!Number.isFinite(a)||n<=0||a<=0||e.length!==n*a||A.x<0||A.y<0||A.x+n>t.width||A.y+a>t.height)return 0;let i=0,s=0,o=0;for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=e[h*n+y]||0;if(Math.abs(w)<=r)continue;let D=((A.y+h)*t.width+A.x+y)*4;i+=HB(t.data,D),s+=w,o++}if(o<=1)return 0;let c=i/o,g=s/o,u=0,l=0,f=0;for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=e[h*n+y]||0;if(Math.abs(w)<=r)continue;let D=((A.y+h)*t.width+A.x+y)*4,b=HB(t.data,D)-c,E=w-g;u+=b*E,l+=b*b,f+=E*E}let p=Math.sqrt(l*f);return p>0?u/p:0}function mE(t,e,A,r){let n=Wd({imageData:t,alphaMap:e.detectorMap,region:{x:A,y:r,width:e.width,height:e.height}});return{ncc:n,confidence:Math.max(0,n)}}function hE({width:t,height:e,templates:A=Vd(),marginRadiusX:r=null,marginRadiusY:n=null}={}){if(!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0)return[];let a=[];for(let i of A){if(!i||i.width>t||i.height>e)continue;let s=Number.isFinite(r)?r:Math.max(zB,Math.round(Math.min(i.width,i.height)*NB)),o=Number.isFinite(n)?n:Math.max(zB,Math.round(Math.min(i.width,i.height)*NB)),c=i.marginRight,g=i.marginBottom,u=UB(c,s,0,t-i.width),l=UB(g,o,0,e-i.height);for(let f of u)for(let p of l){let h=t-f-i.width,y=e-p-i.height;h<0||y<0||h+i.width>t||y+i.height>e||a.push({id:`${i.id}:${h}:${y}`,watermarkKind:"veo-text",template:i,x:h,y,width:i.width,height:i.height,marginRight:f,marginBottom:p})}}return a}function pE(t){if(!t.length)return{frames:0,meanNcc:0,maxNcc:0,votes:0};let e=0,A=Number.NEGATIVE_INFINITY;for(let r of t)e+=r.ncc,A=Math.max(A,r.ncc);return{frames:t.length,meanNcc:e/t.length,maxNcc:A,votes:0}}function qB(t){let e=t?.candidate,A=e?.template;return A&&e.marginRight===A.marginRight&&e.marginBottom===A.marginBottom}function wE(t,e,A){if(!qB(t))return!1;let r=Math.max(A,dE),n=e*fE;return t.voteRatio>=r&&t.maxNcc>=e&&t.meanNcc>=n}function BE(t){return{candidateId:t.candidate.id,templateId:t.candidate.template.id,x:t.candidate.x,y:t.candidate.y,width:t.candidate.width,height:t.candidate.height,marginRight:t.candidate.marginRight,marginBottom:t.candidate.marginBottom,meanNcc:t.meanNcc,maxNcc:t.maxNcc,votes:t.votes,voteRatio:t.voteRatio}}function PE(t,e=20){let A=new Map;for(let r of t.slice(0,e))A.set(r.candidate.id,r);for(let r of t)qB(r)&&A.set(r.candidate.id,r);return[...A.values()].map(BE)}function LB({frameCount:t=0,minNcc:e,candidates:A=[],frameWinners:r=[]}){return{watermarkKind:"veo-text",isConfident:!1,position:null,alphaMap:null,template:null,summary:{frameCount:t,minNcc:e,candidates:A,frameWinners:r}}}function yE({frames:t,perCandidate:e,frameWinners:A,minNcc:r,minVoteRatio:n}){let a=[...e.values()].map(u=>({candidate:u.candidate,...pE(u.scores),votes:u.votes,voteRatio:t.length>0?u.votes/t.length:0})).sort((u,l)=>l.votes!==u.votes?l.votes-u.votes:l.meanNcc-u.meanNcc),i=a[0]||null;if(!i)return LB({frameCount:t.length,minNcc:r,candidates:[],frameWinners:A});let s=Number.isFinite(i.candidate.template.minNcc)?Math.min(r,i.candidate.template.minNcc):r,o=i.meanNcc>=s&&i.voteRatio>=n||wE(i,s,n),c={x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height},g={id:i.candidate.template.id,width:i.candidate.template.width,height:i.candidate.template.height,cleanup:{...i.candidate.template.cleanup}};return{watermarkKind:"veo-text",position:c,alphaMap:i.candidate.template.alphaMap,alphaSeed:{seedGain:i.candidate.template.observedSeedScale||1,estimates:[],estimateCount:0,source:"template-default"},template:g,candidate:{id:i.candidate.id,label:i.candidate.template.id,x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height,marginRight:i.candidate.marginRight,marginBottom:i.candidate.marginBottom},isConfident:o,summary:{frameCount:t.length,minNcc:s,minVoteRatio:n,best:{candidateId:i.candidate.id,templateId:i.candidate.template.id,x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height,marginRight:i.candidate.marginRight,marginBottom:i.candidate.marginBottom,meanNcc:i.meanNcc,maxNcc:i.maxNcc,votes:i.votes,voteRatio:i.voteRatio},candidates:PE(a),frameWinners:A}}}async function Kd(t){typeof t=="function"&&await t()}async function jB({frames:t,width:e,height:A,templates:r=Vd(),minNcc:n=uE,minVoteRatio:a=gE,marginRadiusX:i=null,marginRadiusY:s=null,yieldEveryCandidates:o=96,yieldToMainThread:c=null}={}){if(!Array.isArray(t)||t.length===0)return await Kd(c),LB({minNcc:n});let g=hE({width:e,height:A,templates:r,marginRadiusX:i,marginRadiusY:s}),u=new Map(g.map(h=>[h.id,{candidate:h,scores:[],votes:0}])),l=[],f=Math.max(1,Math.round(o||96)),p=0;for(let h of t){let y=null;for(let w of g){let D=mE(h.imageData,w.template,w.x,w.y),b={timestamp:h.timestamp,ncc:D.ncc,confidence:D.confidence};u.get(w.id).scores.push(b),(!y||D.confidence>y.confidence)&&(y={candidateId:w.id,templateId:w.template.id,timestamp:h.timestamp,x:w.x,y:w.y,ncc:D.ncc,confidence:D.confidence}),p++,p%f===0&&await Kd(c)}if(y){l.push(y);let w=u.get(y.candidateId);w&&w.votes++}await Kd(c)}return yE({frames:t,perCandidate:u,frameWinners:l,minNcc:n,minVoteRatio:a})}var $d=.18,KB=1,WB="96-20260520",IE=.045,DE=.035,CE=5,Ca=255,bE=40,EE=.04,TE=.08,kE=.12;function ZB(t){if(t==null||t==="")return WB;let e=String(t).trim(),A=Number(e);return Number.isInteger(A)&&String(A)===e?A:e}function GE(t,e){let A=Math.round(Math.sqrt(t.length));return A>0&&A*A===t.length?A:e}function xE(t,e,A){if(A<=0)return new Float32Array(0);if(e===A)return new Float32Array(t);let r=new Float32Array(A*A),n=e/A;for(let a=0;a<A;a++){let i=a*n,s=(a+1)*n,o=Math.floor(i),c=Math.ceil(s);for(let g=0;g<A;g++){let u=g*n,l=(g+1)*n,f=Math.floor(u),p=Math.ceil(l),h=0,y=0;for(let w=o;w<c;w++){if(w<0||w>=e)continue;let D=Math.max(0,Math.min(s,w+1)-Math.max(i,w));for(let b=f;b<p;b++){if(b<0||b>=e)continue;let x=Math.max(0,Math.min(l,b+1)-Math.max(u,b))*D;h+=t[w*e+b]*x,y+=x}}r[a*A+g]=y>0?h/y:0}}return r}function $B(t=null){let e=Number(t?.size??t?.width??t?.height),A=Number(t?.marginRight),r=Number(t?.marginBottom),n=Number.isFinite(e)&&e>0&&Number.isFinite(A)&&Number.isFinite(r)&&A/e>=1.85&&r/e>=1.85;return t?.id==="veo-1080p-inset"||n?DE:IE}function Jd(t,e={}){let A=ZB(e.profile??e.alphaProfile),r=Ou(A)||Ou(WB)||Ou(96);if(!r)throw new Error("\u7F3A\u5C11 96px Gemini alpha map\uFF0C\u65E0\u6CD5\u751F\u6210\u89C6\u9891\u6C34\u5370\u6A21\u677F");let n=GE(r,96),a=Number.isFinite(e.edgeBoost)?e.edgeBoost:$B(e.candidate),i=t===n?new Float32Array(r):xE(r,n,t);return QE(zE(i,t,a),e)}function SE(t={}){return t.profile!==void 0||t.alphaProfile!==void 0||t.edgeBoost!==void 0||t.lowAlphaScale!==void 0||t.bodyAlphaScale!==void 0||t.localLowAlphaScale!==void 0||t.localBodyAlphaScale!==void 0||t.localRegion!==void 0}function Zd(t){return t<=0?0:t>=255?255:Math.round(t)}function YE(t,e,A,r){let n=e.width??e.size,a=e.height??e.size,i=new Uint8ClampedArray(n*a*4),s=0,o=0,c=0;for(let g=0;g<a;g++)for(let u=0;u<n;u++){let l=((e.y+g)*t.width+e.x+u)*4,f=(g*n+u)*4,p=A[g*n+u]||0,h=p>.025?Math.min(p*r,.99):0;if(h<=0)i[f]=t.data[l],i[f+1]=t.data[l+1],i[f+2]=t.data[l+2],i[f+3]=t.data[l+3]??255;else{let y=1-h;i[f]=Zd((t.data[l]-h*Ca)/y),i[f+1]=Zd((t.data[l+1]-h*Ca)/y),i[f+2]=Zd((t.data[l+2]-h*Ca)/y),i[f+3]=t.data[l+3]??255}for(let y=0;y<3;y++){let w=Math.abs(i[f+y]-t.data[l+y]);s+=w,w>1&&o++,c++}}return{imageData:{width:n,height:a,data:i},meanAbsDelta:c>0?s/c:0,changedRatio:c>0?o/c:0}}function vE(t,e={}){let A=$B(t);return[{name:"default",profile:ZB(e.profile??e.alphaProfile),edgeBoost:Number.isFinite(e.edgeBoost)?e.edgeBoost:A,options:{}},{name:`96-edge${A.toFixed(3)}`,profile:"96",edgeBoost:A,options:{alphaProfile:"96",edgeBoost:A}},...[.08,.1,kE].map(r=>({name:`96-edge${r.toFixed(3)}`,profile:"96",edgeBoost:r,options:{alphaProfile:"96",edgeBoost:r}}))]}function OE(t){if(!t.length)return{frames:0,meanSpatial:0,meanGradient:0,meanConfidence:1,maxConfidence:1,meanAbsDelta:0,changedRatio:0};let e=t.reduce((A,r)=>(A.spatial+=r.spatial,A.gradient+=r.gradient,A.confidence+=r.confidence,A.maxConfidence=Math.max(A.maxConfidence,r.confidence),A.meanAbsDelta+=r.meanAbsDelta,A.changedRatio+=r.changedRatio,A),{spatial:0,gradient:0,confidence:0,maxConfidence:0,meanAbsDelta:0,changedRatio:0});return{frames:t.length,meanSpatial:e.spatial/t.length,meanGradient:e.gradient/t.length,meanConfidence:e.confidence/t.length,maxConfidence:e.maxConfidence,meanAbsDelta:e.meanAbsDelta/t.length,changedRatio:e.changedRatio/t.length}}function VB(t,e){let A=Math.max(0,t.meanAbsDelta-32)*.003,r=Math.max(0,t.changedRatio-.92)*.15;return t.meanConfidence+A+r+e*.001}function _E({frames:t,position:e,candidate:A,frameWinners:r,alphaMapOptions:n,option:a,scoreAlphaMap:i}){let s=Jd(A.size,{...n,...a.options,candidate:A}),o=JB(t,e,s,r,A.id),c=new Map(r.map(u=>[u.timestamp,u])),g=[];for(let u of t){let l=c.get(u.timestamp);if(l&&l.candidateId!==A.id&&l.confidence>.08)continue;let f=YE(u.imageData,e,s,o.seedGain),p=Qu(f.imageData,{x:0,y:0,width:e.width,height:e.height},i);g.push({...p,meanAbsDelta:f.meanAbsDelta,changedRatio:f.changedRatio})}return{...a,alphaMap:s,alphaSeed:o,...OE(g)}}function ME({candidate:t,best:e,voteRatio:A,alphaMapOptions:r}){return r?.autoAlphaProfile===!1||SE(r)||!t||!e||(t.size??t.width??0)<bE||A<.6?!1:e.meanConfidence>=$d}function RE({frames:t,position:e,candidate:A,best:r,voteRatio:n,frameWinners:a,alphaMapOptions:i={}}){let s=Jd(A.size,{...i,candidate:A}),o=JB(t,e,s,a,A.id);if(!ME({candidate:A,best:r,voteRatio:n,alphaMapOptions:i}))return{alphaMap:s,alphaSeed:o,alphaShape:null};let c=s,g=vE(A,i).map((w,D)=>({..._E({frames:t,position:e,candidate:A,frameWinners:a,alphaMapOptions:i,option:w,scoreAlphaMap:c}),priorityIndex:D})).sort((w,D)=>{let b=VB(w,w.priorityIndex),E=VB(D,D.priorityIndex);return b-E}),u=g.find(w=>w.name==="default")||g[0],l=g[0]||u,f=u.meanConfidence-l.meanConfidence,p=u.meanConfidence>0?f/u.meanConfidence:0,h=l!==u&&f>=EE&&p>=TE,y=h?l:u;return{alphaMap:y.alphaMap,alphaSeed:y.alphaSeed,alphaShape:{accepted:h,baseline:{name:u.name,profile:u.profile,edgeBoost:u.edgeBoost,meanConfidence:u.meanConfidence,meanAbsDelta:u.meanAbsDelta,changedRatio:u.changedRatio},selected:{name:y.name,profile:y.profile,edgeBoost:y.edgeBoost,meanConfidence:y.meanConfidence,meanAbsDelta:y.meanAbsDelta,changedRatio:y.changedRatio,alphaSeed:y.alphaSeed},candidates:g.map(w=>({name:w.name,profile:w.profile,edgeBoost:w.edgeBoost,meanConfidence:w.meanConfidence,meanAbsDelta:w.meanAbsDelta,changedRatio:w.changedRatio}))}}}function QE(t,e={}){let A=Number.isFinite(e.lowAlphaScale)?Math.max(.5,Math.min(1.5,e.lowAlphaScale)):1,r=Number.isFinite(e.bodyAlphaScale)?Math.max(.5,Math.min(1.5,e.bodyAlphaScale)):1,n=Number.isFinite(e.localLowAlphaScale)?Math.max(.5,Math.min(1.5,e.localLowAlphaScale)):1,a=Number.isFinite(e.localBodyAlphaScale)?Math.max(.5,Math.min(1.5,e.localBodyAlphaScale)):1,i=typeof e.localRegion=="string"?e.localRegion:"all";if(Math.abs(A-1)<1e-4&&Math.abs(r-1)<1e-4&&Math.abs(n-1)<1e-4&&Math.abs(a-1)<1e-4)return t;let s=Math.round(Math.sqrt(t.length)),o=new Float32Array(t.length);for(let c=0;c<t.length;c++){let g=t[c]||0,u=s>0?c%s:0,l=s>0?Math.floor(c/s):0,f=FE(u,l,s,i);if(g>0&&g<.12){let p=A*(f?n:1);o[c]=Math.min(.99,g*p)}else if(g>=.12){let p=r*(f?a:1);o[c]=Math.min(.99,g*p)}else o[c]=g}return o}function FE(t,e,A,r){if(!r||r==="all")return!0;let n=(A-1)/2;return r==="top"?e<n:r==="bottom"?e>=n:r==="left"?t<n:r==="right"?t>=n:r==="top-left"?e<n&&t<n:r==="top-right"?e<n&&t>=n:r==="bottom-left"?e>=n&&t<n:r==="bottom-right"?e>=n&&t>=n:!0}function zE(t,e,A){if(!Number.isFinite(A)||A<=0||e<=2)return new Float32Array(t);let r=new Float32Array(t.length),n=0;for(let i=1;i<e-1;i++)for(let s=1;s<e-1;s++){let o=i*e+s,c=-t[o-e-1]-2*t[o-1]-t[o+e-1]+t[o-e+1]+2*t[o+1]+t[o+e+1],g=-t[o-e-1]-2*t[o-e]-t[o-e+1]+t[o+e-1]+2*t[o+e]+t[o+e+1],u=Math.sqrt(c*c+g*g);r[o]=u,u>n&&(n=u)}if(n<=0)return new Float32Array(t);let a=new Float32Array(t.length);for(let i=0;i<t.length;i++){let s=Math.sqrt(r[i]/n);a[i]=Math.min(.99,t[i]+s*A)}return a}function NE(t,e,A={}){let r=Jd(e.size,{...A,candidate:e}),n={x:e.x,y:e.y,size:e.size},a=Hd({imageData:t,alphaMap:r,region:n}),i=Ud({imageData:t,alphaMap:r,region:n}),s=Math.max(0,a)*.35+Math.max(0,i)*.65;return{candidate:e,alphaMap:r,spatial:a,gradient:i,confidence:s}}function Qu(t,e,A){let r=e.width??e.size,n=e.height??e.size;if(r!==n||A.length!==r*r){let c=Wd({imageData:t,alphaMap:A,region:{x:e.x,y:e.y,width:r,height:n}});return{spatial:c,gradient:0,confidence:Math.max(0,c)}}let a={x:e.x,y:e.y,size:r},i=Hd({imageData:t,alphaMap:A,region:a}),s=Ud({imageData:t,alphaMap:A,region:a}),o=Math.max(0,i)*.35+Math.max(0,s)*.65;return{spatial:i,gradient:s,confidence:o}}function HE(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function UE(t,e,A,r=18){let n=Math.max(0,e.x-r),a=Math.max(0,e.y-r),i=Math.min(t.width,e.x+e.width+r),s=Math.min(t.height,e.y+e.height+r),o=0,c=0,g=.015;for(let u=a;u<s;u++)for(let l=n;l<i;l++){let f=l>=e.x&&l<e.x+e.width&&u>=e.y&&u<e.y+e.height,p=f?0:1;if(f){let y=l-e.x,w=u-e.y;(A[w*e.width+y]||0)<=g&&(p=.35)}if(p<=0)continue;let h=(u*t.width+l)*4;o+=HE(t.data,h)*p,c+=p}return c>0?o/c:null}function qE(t,e,A,r,n){if(!Number.isFinite(n))return null;let a=0,i=0;for(let s=0;s<e.height;s++)for(let o=0;o<e.width;o++){let c=A[s*e.width+o]||0;if(c<=.025)continue;let g=Math.min(c*r,.99),u=1-g,l=((e.y+s)*t.width+e.x+o)*4,f=Math.min(1,Math.max(0,c*8)),p=(t.data[l]-g*Ca)/u,h=(t.data[l+1]-g*Ca)/u,y=(t.data[l+2]-g*Ca)/u;a+=(.2126*p+.7152*h+.0722*y)*f,i+=f}return i<=0?null:a/i-n}function LE(t,e,A,r=KB){let n=UE(t,e,A);if(!Number.isFinite(n))return null;let a=Math.max(.35,r-.45),i=Math.min(1.35,r+.45),s=r,o=Number.POSITIVE_INFINITY;for(let c=0;c<CE;c++){let g=(a+i)/2,u=qE(t,e,A,g,n);if(!Number.isFinite(u))return null;let l=Math.abs(u);l<o&&(o=l,s=g),u>0?a=g:i=g}return{gain:s,residualDelta:o}}function jE(t){if(!t.length)return null;let e=[...t].sort((r,n)=>r-n),A=Math.floor(e.length/2);return e.length%2===0?(e[A-1]+e[A])/2:e[A]}function JB(t,e,A,r,n){let a=new Map(r.map(o=>[o.timestamp,o])),i=[];for(let o of t){let c=a.get(o.timestamp);if(c&&c.candidateId!==n&&c.confidence>.08)continue;let g=LE(o.imageData,e,A);g&&(g.gain<.35||g.gain>1.35||i.push(g.gain))}return{seedGain:jE(i)??KB,estimates:i,estimateCount:i.length}}function VE(t){if(!t.length)return{frames:0,meanSpatial:0,meanGradient:0,meanConfidence:0,maxConfidence:0,votes:0};let e=t.reduce((A,r)=>(A.spatial+=r.spatial,A.gradient+=r.gradient,A.confidence+=r.confidence,A.maxConfidence=Math.max(A.maxConfidence,r.confidence),A),{spatial:0,gradient:0,confidence:0,maxConfidence:0});return{frames:t.length,meanSpatial:e.spatial/t.length,meanGradient:e.gradient/t.length,meanConfidence:e.confidence/t.length,maxConfidence:e.maxConfidence,votes:0}}async function KE(t){typeof t=="function"&&await t()}async function WE({frames:t,width:e,height:A,candidates:r=co(e,A),minConfidence:n=$d,alphaMapOptions:a={},yieldToMainThread:i=null}){if(!Array.isArray(t)||t.length===0)throw new Error("No video frames are available for detection");if(!r.length)throw new Error("Unsupported video watermark candidates for "+e+"x"+A);let s=new Map(r.map(w=>[w.id,{candidate:w,scores:[]}])),o=[];for(let w of t){let D=r.map(E=>NE(w.imageData,E,a)).sort((E,x)=>x.confidence-E.confidence),b=D[0]||null;b&&o.push({timestamp:w.timestamp,candidateId:b.candidate.id,confidence:b.confidence});for(let E of D)s.get(E.candidate.id).scores.push(E);await KE(i)}for(let w of o){let D=s.get(w.candidateId);D&&(D.votes=(D.votes||0)+1)}let c=[...s.values()].map(w=>({candidate:w.candidate,...VE(w.scores),votes:w.votes||0})).sort((w,D)=>D.votes!==w.votes?D.votes-w.votes:D.meanConfidence-w.meanConfidence),g=c[0],u=t.length>0?g.votes/t.length:0,l=g.meanConfidence>=n&&u>=.6,f={x:g.candidate.x,y:g.candidate.y,width:g.candidate.size,height:g.candidate.size},p=RE({frames:t,position:f,candidate:g.candidate,best:g,voteRatio:u,frameWinners:o,alphaMapOptions:a}),{alphaMap:h,alphaSeed:y}=p;return{watermarkKind:"diamond",position:f,alphaMap:h,alphaSeed:y,candidate:g.candidate,isConfident:l,summary:{frameCount:t.length,minConfidence:n,alphaSeed:y,alphaShape:p.alphaShape,best:{candidateId:g.candidate.id,label:g.candidate.label,meanSpatial:g.meanSpatial,meanGradient:g.meanGradient,meanConfidence:g.meanConfidence,maxConfidence:g.maxConfidence,votes:g.votes},candidates:c.map(w=>({candidateId:w.candidate.id,label:w.candidate.label,x:w.candidate.x,y:w.candidate.y,size:w.candidate.size,meanSpatial:w.meanSpatial,meanGradient:w.meanGradient,meanConfidence:w.meanConfidence,maxConfidence:w.maxConfidence,votes:w.votes})),frameWinners:o}}}function ZE({diamondDetection:t=null,veoTextDetection:e=null,diamondWeakConfidenceCeiling:A=.28}={}){let r=t?.summary?.best?.meanConfidence??0,n=e?.summary?.best?.meanNcc??0,a=e?.isConfident===!0,i=t?.isConfident===!0;return a&&(!i||r<A||n>r)?{...e,summary:{...e.summary,alternatives:{diamond:t?.summary?.best??null}}}:t?{...t,summary:{...t.summary,alternatives:{veoText:e?.summary?.best??null,veoTextCandidates:e?.summary?.candidates??[]}}}:e}async function XB({frames:t,width:e,height:A,candidates:r=co(e,A),minConfidence:n=$d,alphaMapOptions:a={},veoTextOptions:i={},yieldToMainThread:s=null}){let o=null;Array.isArray(r)&&r.length>0&&(o=await WE({frames:t,width:e,height:A,candidates:r,minConfidence:n,alphaMapOptions:a,yieldToMainThread:s}));let c=await jB({frames:t,width:e,height:A,...i,yieldToMainThread:s}),g=ZE({diamondDetection:o,veoTextDetection:c});if(!g)throw!Array.isArray(r)||r.length===0?new Error("Unsupported video watermark candidates for "+e+"x"+A):new Error("No video watermark detection result is available");return g}var NA=Object.freeze({name:"FDnCNN Color FP16",upstream:"allenk/GeminiWatermarkTool",license:"MIT",runtime:"NCNN",inputBlob:0,outputBlob:20,inputLayout:"[R, G, B, sigma] CHW float32",outputLayout:"[R, G, B] CHW float32",defaultSigma:25,defaultStrength:.85,defaultPadding:16,maxSigma:150,maxStrength:3});function he(t,e,A){return Math.max(e,Math.min(A,t))}function ba(t,e){if(e<=1)return 0;let A=Math.round(t);for(;A<0||A>=e;)A=A<0?-A:e*2-A-2;return A}function $E(t,e=Math.ceil(t*3)){let A=Math.max(.01,t),r=Math.max(1,Math.round(e)),n=new Float32Array(r*2+1),a=0;for(let i=-r;i<=r;i++){let s=Math.exp(-(i*i)/(2*A*A));n[i+r]=s,a+=s}for(let i=0;i<n.length;i++)n[i]/=a;return{kernel:n,radius:r}}function eP(t,e,A,r,n=Math.ceil(r*3)){if(!t||e<=0||A<=0||!Number.isFinite(r)||r<=0)return new Float32Array(t||0);let{kernel:a,radius:i}=$E(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=ba(g+l,e);u+=t[c*e+f]*a[l+i]}s[c*e+g]=u}for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=ba(c+l,A);u+=s[f*e+g]*a[l+i]}o[c*e+g]=u}return o}function JE(t){let e=Math.round(Math.sqrt(t?.length||0));return e>0&&e*e===t.length?e:0}function XE(t,e,A,r=A){if(!t||e<=0||A<=0||r<=0)return new Float32Array(0);if(e===A&&e===r)return new Float32Array(t);let n=new Float32Array(A*r),a=e/A,i=e/r;for(let s=0;s<r;s++){let o=s*i,c=(s+1)*i,g=Math.floor(o),u=Math.ceil(c);for(let l=0;l<A;l++){let f=l*a,p=(l+1)*a,h=Math.floor(f),y=Math.ceil(p),w=0,D=0;for(let b=g;b<u;b++){if(b<0||b>=e)continue;let E=Math.max(0,Math.min(c,b+1)-Math.max(o,b));for(let x=h;x<y;x++){if(x<0||x>=e)continue;let k=Math.max(0,Math.min(p,x+1)-Math.max(f,x))*E;w+=t[b*e+x]*k,D+=k}}n[s*A+l]=D>0?w/D:0}}return n}function eT(t,e,A,r=A){if(!t||e<=0||A<=0||r<=0)return new Float32Array(0);if(e===A&&e===r)return new Float32Array(t);let n=new Float32Array(A*r),a=e/A,i=e/r;for(let s=0;s<r;s++){let o=(s+.5)*i-.5,c=Math.floor(o),g=c+1,u=o-c;for(let l=0;l<A;l++){let f=(l+.5)*a-.5,p=Math.floor(f),h=p+1,y=f-p,w=t[he(c,0,e-1)*e+he(p,0,e-1)]||0,D=t[he(c,0,e-1)*e+he(h,0,e-1)]||0,b=t[he(g,0,e-1)*e+he(p,0,e-1)]||0,E=t[he(g,0,e-1)*e+he(h,0,e-1)]||0,x=w*(1-y)+D*y,S=b*(1-y)+E*y;n[s*A+l]=x*(1-u)+S*u}}return n}function tT(t,e,A,r=A){return A>e?eT(t,e,A,r):XE(t,e,A,r)}var AT=Object.freeze([[0,0,1,0,0],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[0,0,1,0,0]]);function rT(t,e,A){let r=new Float32Array(t.length);for(let n=0;n<A;n++)for(let a=0;a<e;a++){let i=0;for(let s=0;s<5;s++)for(let o=0;o<5;o++){if(!AT[s][o])continue;let c=a+o-2,g=n+s-2;c<0||g<0||c>=e||g>=A||(i=Math.max(i,t[g*e+c]||0))}r[n*e+a]=i}return r}function nT({alphaMap:t,width:e,height:A,strength:r}){if(!t||e<=0||A<=0||t.length<e*A)return new Float32Array(0);let n=new Float32Array(e*A),a=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(let l=0;l<A;l++)for(let f=0;f<e;f++){let p=ba(l-1,A),h=ba(l+1,A),y=ba(f-1,e),w=ba(f+1,e),D=-t[p*e+y]-2*t[l*e+y]-t[h*e+y]+t[p*e+w]+2*t[l*e+w]+t[h*e+w],b=-t[p*e+y]-2*t[p*e+f]-t[p*e+w]+t[h*e+y]+2*t[h*e+f]+t[h*e+w],E=Math.sqrt(D*D+b*b);n[l*e+f]=E,a=Math.min(a,E),i=Math.max(i,E)}if(!Number.isFinite(a)||i<=a)return new Float32Array(e*A);let s=new Float32Array(e*A),o=1/(i-a);for(let l=0;l<s.length;l++)s[l]=Math.sqrt(he((n[l]-a)*o,0,1));let c=rT(s,e,A),g=eP(c,e,A,2),u=Number.isFinite(r)?Math.max(0,r):1;for(let l=0;l<g.length;l++)g[l]=he(g[l]*u,0,1);return g}function tP(t={}){let e=Number.isFinite(t.sigma)?he(t.sigma,0,NA.maxSigma):NA.defaultSigma,A=Number.isFinite(t.strength)?he(t.strength,0,NA.maxStrength):NA.defaultStrength,r=Number.isFinite(t.padding)?Math.max(0,Math.round(t.padding)):NA.defaultPadding;return{sigma:e,strength:A,padding:r}}function AP({alphaMap:t,width:e,height:A=e,strength:r=NA.defaultStrength}={}){let n=JE(t),a=n>0?tT(t,n,e,A):t;return nT({alphaMap:a,width:e,height:A,strength:r})}function iT({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding}={}){if(!A||t<=0||e<=0||A.width<=0||A.height<=0)return null;let n=Math.max(0,Math.round(r)),a=he(Math.round(A.x-n),0,t),i=he(Math.round(A.y-n),0,e),s=he(Math.round(A.x+A.width+n),0,t),o=he(Math.round(A.y+A.height+n),0,e),c=s-a,g=o-i;return c<4||g<4?null:{x:a,y:i,width:c,height:g,inner:{x:he(Math.round(A.x-a),0,c),y:he(Math.round(A.y-i),0,g),width:he(Math.round(A.width),0,c),height:he(Math.round(A.height),0,g)}}}function rP({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){if(!A||t<=0||e<=0||A.width<=0||A.height<=0)return null;let i=Math.max(0,Math.round(r)),s=Math.round(A.x-i),o=Math.round(A.y-i),c=Math.round(A.width+i*2),g=Math.round(A.height+i*2),u=Number.isInteger(n)&&n>0?n:c,l=Number.isInteger(a)&&a>0?a:g;if(u<4||l<4)return null;let f=he(s,0,t),p=he(o,0,e),h=he(s+u,0,t),y=he(o+l,0,e),w=h-f,D=y-p;return w<=0||D<=0?null:{x:s,y:o,width:u,height:l,inner:{x:he(Math.round(A.x-s),0,u),y:he(Math.round(A.y-o),0,l),width:he(Math.round(A.width),0,u),height:he(Math.round(A.height),0,l)},visible:{x:f,y:p,width:w,height:D,offsetX:f-s,offsetY:p-o}}}function nP({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){let i=iT({imageWidth:t,imageHeight:e,region:A,padding:r});if(!i)return null;let s=Number.isInteger(n)&&n>0?n:null,o=Number.isInteger(a)&&a>0?a:null;if(!s||!o||t<s||e<o||i.width>s||i.height>o)return i;let c=A.x+A.width/2,g=A.y+A.height/2,u=he(Math.round(c-s/2),0,t-s),l=he(Math.round(g-o/2),0,e-o);return{x:u,y:l,width:s,height:o,inner:{x:he(Math.round(A.x-u),0,s),y:he(Math.round(A.y-l),0,o),width:he(Math.round(A.width),0,s),height:he(Math.round(A.height),0,o)}}}function iP({imageData:t,roi:e,imageX:A=0,imageY:r=0,canvasWidth:n=t?.width||0,canvasHeight:a=t?.height||0}={}){if(!t?.data||!e||t.width<=0||t.height<=0||e.width<=0||e.height<=0||n<=0||a<=0)return{width:0,height:0,data:new Uint8ClampedArray(0)};let i=Math.max(1,Math.round(e.width)),s=Math.max(1,Math.round(e.height)),o=new Uint8ClampedArray(i*s*4),c=t.data.length>=t.width*t.height*4?4:3;for(let u=0;u<s;u++){let l=he(Math.round(e.y+u),0,a-1),f=he(l-Math.round(r),0,t.height-1);for(let p=0;p<i;p++){let h=he(Math.round(e.x+p),0,n-1),y=he(h-Math.round(A),0,t.width-1),w=(f*t.width+y)*c,D=(u*i+p)*4;o[D]=t.data[w]||0,o[D+1]=t.data[w+1]||0,o[D+2]=t.data[w+2]||0,o[D+3]=c>=4?t.data[w+3]??255:255}}let g=typeof t.constructor=="function"&&t.constructor!==Object?t.constructor:typeof ImageData=="function"?ImageData:null;return g?new g(o,i,s):{width:i,height:s,data:o}}function aP({roiWeights:t,roiWidth:e,roiHeight:A,paddedRoi:r,blurSigma:n=1}={}){if(!t||!r?.inner||e<=0||A<=0)return new Float32Array(0);let a=new Float32Array(r.width*r.height),i=r.inner;for(let s=0;s<A;s++){let o=i.y+s;if(!(o<0||o>=r.height))for(let c=0;c<e;c++){let g=i.x+c;g<0||g>=r.width||(a[o*r.width+g]=he(t[s*e+c]||0,0,1))}}return eP(a,r.width,r.height,n)}function sP({imageData:t,sigma:e=NA.defaultSigma}={}){if(!t?.data||t.width<=0||t.height<=0)return new Float32Array(0);let{width:A,height:r,data:n}=t,a=A*r,i=new Float32Array(a*4),s=he(e,0,NA.maxSigma)/255,o=n.length>=a*4?4:3;for(let c=0;c<a;c++){let g=c*o;i[c]=(n[g]||0)/255,i[a+c]=(n[g+1]||0)/255,i[a*2+c]=(n[g+2]||0)/255,i[a*3+c]=s}return i}function oP({output:t,width:e,height:A,alpha:r=255}={}){if(!t||e<=0||A<=0)return new Uint8ClampedArray(0);let n=e*A,a=new Uint8ClampedArray(n*4);for(let i=0;i<n;i++)a[i*4]=Math.round(he(t[i]||0,0,1)*255),a[i*4+1]=Math.round(he(t[n+i]||0,0,1)*255),a[i*4+2]=Math.round(he(t[n*2+i]||0,0,1)*255),a[i*4+3]=r;return a}function aT(t,e,A,r,n,a){let i=0,s=0;for(let o=-1;o<=1;o++){let c=n+o;if(!(c<0||c>=A))for(let g=-1;g<=1;g++){let u=r+g;u<0||u>=e||(i+=t[(c*e+u)*4+a],s++)}}return s>0?i/s:t[(n*e+r)*4+a]}function sT(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function oT(t,e,A){let r=new Float32Array(e*A),n=(a,i)=>{let s=he(a,0,e-1),o=he(i,0,A-1);return sT(t,(o*e+s)*4)};for(let a=0;a<A;a++)for(let i=0;i<e;i++){let s=-n(i-1,a-1)-2*n(i-1,a)-n(i-1,a+1)+n(i+1,a-1)+2*n(i+1,a)+n(i+1,a+1),o=-n(i-1,a-1)-2*n(i,a-1)-n(i+1,a-1)+n(i-1,a+1)+2*n(i,a+1)+n(i+1,a+1),c=Math.sqrt(s*s+o*o);r[a*e+i]=he((c-48)/112,0,1)}return r}function cP({originalData:t,denoisedData:e,weights:A,width:r=0,height:n=0,preserveHighpassStrength:a=0,protectStructure:i=!1}={}){if(!t||!e||!A||t.length!==e.length)return new Uint8ClampedArray(t||0);let s=new Uint8ClampedArray(t),o=Math.min(A.length,Math.floor(t.length/4)),c=Number.isFinite(r)&&Number.isFinite(n)&&r>0&&n>0&&r*n<=o,g=Number.isFinite(a)&&a>0&&c,u=i&&c?oT(t,r,n):null;for(let l=0;l<o;l++){let f=he(A[l]||0,0,1),p=u?Math.max(.08,1-(u[l]||0)*.92):1,h=f*p;if(h<=0)continue;let y=l*4,w=g?l%r:0,D=g?Math.floor(l/r):0,b=g?Math.min(.28,h*a):0;for(let E=0;E<3;E++){let x=t[y+E]*(1-h)+e[y+E]*h,S=b>0?he(t[y+E]-aT(t,r,n,w,D,E),-14,14):0;s[y+E]=Math.round(he(x+S*b,0,255))}}return s}var Fu=1.5,an=!1,gP=!1,Af=.85,go="none",Kt=.65,zu=25,cT=6.5,uP=Object.freeze({CANVAS_SOFT:"canvas-soft",CANVAS_BILATERAL:"canvas-bilateral"}),Ke=Object.freeze({NONE:"none",ALLENK_FDNCNN_BROWSER_SPIKE:"allenk-fdncnn-browser-spike",CANVAS_EDGE_DENOISE:"canvas-edge-denoise",CANVAS_EDGE_BAND_DENOISE:"canvas-edge-band-denoise",CANVAS_EDGE_CORE_DENOISE:"canvas-edge-core-denoise",CANVAS_FOOTPRINT_POLISH:"canvas-footprint-polish",CANVAS_TEMPORAL_DELTA_STABILIZE:"canvas-temporal-delta-stabilize",CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE:"canvas-temporal-match-delta-stabilize",CANVAS_TEMPORAL_STABILIZE:"canvas-temporal-stabilize",CANVAS_TEXTURE_REPAIR:"canvas-texture-repair"});function Xd(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function lP(t,e=Math.ceil(t*3)){let A=Math.max(.01,t),r=Math.max(1,Math.round(e)),n=new Float32Array(r*2+1),a=0;for(let i=-r;i<=r;i++){let s=Math.exp(-(i*i)/(2*A*A));n[i+r]=s,a+=s}for(let i=0;i<n.length;i++)n[i]/=a;return{kernel:n,radius:r}}function lA(t,e,A,r,n){let{kernel:a,radius:i}=lP(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=Math.max(0,Math.min(e-1,g+l));u+=t[c*e+f]*a[l+i]}s[c*e+g]=u}for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=Math.max(0,Math.min(A-1,c+l));u+=s[f*e+g]*a[l+i]}o[c*e+g]=u}return o}function ar(t,e,A){if(t===e)return A>=e?1:0;let r=Math.max(0,Math.min(1,(A-t)/(e-t)));return r*r*(3-2*r)}function uT(t,e=1){if(!t?.data||t.width<=0||t.height<=0)return new Float32Array(0);let{width:A,height:r,data:n}=t,a=new Float32Array(A*r),i=(o,c)=>{let g=Math.max(0,Math.min(A-1,o)),u=Math.max(0,Math.min(r-1,c));return Xd(n,(u*A+g)*4)},s=Math.max(0,Math.min(1,Number.isFinite(e)?e:1));for(let o=0;o<r;o++)for(let c=0;c<A;c++){let g=-i(c-1,o-1)-2*i(c-1,o)-i(c-1,o+1)+i(c+1,o-1)+2*i(c+1,o)+i(c+1,o+1),u=-i(c-1,o-1)-2*i(c,o-1)-i(c+1,o-1)+i(c-1,o+1)+2*i(c,o+1)+i(c+1,o+1),l=Math.sqrt(g*g+u*u);a[o*A+c]=ar(42,150,l)*s}return lA(a,A,r,.65,2)}function uo(t,e,A){let r=t.width,n=t.height,a=t.data,{kernel:i,radius:s}=lP(e,A),o=new Float32Array(a.length),c=new Uint8ClampedArray(a.length);for(let g=0;g<n;g++)for(let u=0;u<r;u++){let l=(g*r+u)*4;for(let f=0;f<4;f++){let p=0;for(let h=-s;h<=s;h++){let y=Math.max(0,Math.min(r-1,u+h));p+=a[(g*r+y)*4+f]*i[h+s]}o[l+f]=p}}for(let g=0;g<n;g++)for(let u=0;u<r;u++){let l=(g*r+u)*4;for(let f=0;f<4;f++){let p=0;for(let h=-s;h<=s;h++){let y=Math.max(0,Math.min(n-1,g+h));p+=o[(y*r+u)*4+f]*i[h+s]}c[l+f]=Math.max(0,Math.min(255,Math.round(p)))}}return c}function Nu(t,e,A=5,r=42){let{width:n,height:a,data:i}=t,s=new Uint8ClampedArray(i),o=Math.max(1,Math.round(A)),c=Math.max(.1,o*.55),g=Math.max(1,r),u=2*c*c,l=2*g*g;for(let f=0;f<a;f++)for(let p=0;p<n;p++){let h=f*n+p,y=e[h]||0;if(y<=.02)continue;let w=h*4,D=[i[w],i[w+1],i[w+2]],b=[0,0,0],E=0;for(let x=-o;x<=o;x++){let S=f+x;if(!(S<0||S>=a))for(let k=-o;k<=o;k++){let R=p+k;if(R<0||R>=n)continue;let M=(S*n+R)*4,N=i[M]-D[0],V=i[M+1]-D[1],F=i[M+2]-D[2],K=Math.exp(-(k*k+x*x)/u),L=Math.exp(-(N*N+V*V+F*F)/l),_=Math.max(y,e[S*n+R]||0),W=K*(.35+L*.65)*(.5+_*.5);b[0]+=i[M]*W,b[1]+=i[M+1]*W,b[2]+=i[M+2]*W,E+=W}}E>0&&(s[w]=Math.max(0,Math.min(255,Math.round(b[0]/E))),s[w+1]=Math.max(0,Math.min(255,Math.round(b[1]/E))),s[w+2]=Math.max(0,Math.min(255,Math.round(b[2]/E))))}return s}function dP(t,e,A=24){let{width:r,height:n,data:a}=t,i=new Uint8Array(r*n),s=new Float32Array(a.length),o=new Float32Array(a.length);s.set(a),o.set(a);for(let u=0;u<e.length;u++)i[u]=e[u]>.08?1:0;for(let u=0;u<n;u++)for(let l=0;l<r;l++){let f=u*r+l;if(!i[f])continue;let p=0,h=[0,0,0];for(let y=1;y<=8&&p===0;y++)for(let w=-y;w<=y;w++){let D=u+w;if(!(D<0||D>=n))for(let b=-y;b<=y;b++){let E=l+b;if(E<0||E>=r||Math.max(Math.abs(b),Math.abs(w))!==y)continue;let x=D*r+E;if(i[x])continue;let S=x*4;h[0]+=a[S],h[1]+=a[S+1],h[2]+=a[S+2],p++}}if(p>0){let y=f*4;s[y]=h[0]/p,s[y+1]=h[1]/p,s[y+2]=h[2]/p,o[y]=s[y],o[y+1]=s[y+1],o[y+2]=s[y+2]}}let c=Math.max(4,Math.round(A));for(let u=0;u<c;u++){for(let l=0;l<n;l++)for(let f=0;f<r;f++){let p=l*r+f,h=p*4;if(!i[p]){o[h]=s[h],o[h+1]=s[h+1],o[h+2]=s[h+2],o[h+3]=s[h+3];continue}let y=0,w=[0,0,0],D=[[f-1,l],[f+1,l],[f,l-1],[f,l+1],[f-1,l-1],[f+1,l-1],[f-1,l+1],[f+1,l+1]];for(let[b,E]of D){if(b<0||b>=r||E<0||E>=n)continue;let x=(E*r+b)*4;w[0]+=s[x],w[1]+=s[x+1],w[2]+=s[x+2],y++}y>0&&(o[h]=w[0]/y,o[h+1]=w[1]/y,o[h+2]=w[2]/y,o[h+3]=s[h+3])}s.set(o)}let g=new Uint8ClampedArray(a.length);for(let u=0;u<g.length;u++)g[u]=Math.max(0,Math.min(255,Math.round(s[u])));return g}function Ea(t,e,A,r,n){let a=new Float32Array(A.width*A.height);for(let i=0;i<e.height;i++){let s=e.y-n+i;if(!(s<0||s>=A.height))for(let o=0;o<e.width;o++){let c=e.x-r+o;c<0||c>=A.width||(a[s*A.width+c]=t[i*e.width+o])}}return a}function fP(t=null){let e=t?.inputShape,A=Number(e?.[2]),r=Number(e?.[3]);return!Number.isInteger(r)||!Number.isInteger(A)||r<=0||A<=0?null:{width:r,height:A}}function mP(t,e,A){if(!t?.data||t.width<=0||t.height<=0||e<=0||A<=0)return t;let r=Math.max(1,Math.round(e)),n=Math.max(1,Math.round(A));if(t.width===r&&t.height===n)return{width:r,height:n,data:new Uint8ClampedArray(t.data)};let a=new Uint8ClampedArray(r*n*4),i=t.data,s=r>1?(t.width-1)/(r-1):0,o=n>1?(t.height-1)/(n-1):0;for(let c=0;c<n;c++){let g=c*o,u=Math.floor(g),l=Math.min(t.height-1,u+1),f=g-u;for(let p=0;p<r;p++){let h=p*s,y=Math.floor(h),w=Math.min(t.width-1,y+1),D=h-y,b=(c*r+p)*4,E=(u*t.width+y)*4,x=(u*t.width+w)*4,S=(l*t.width+y)*4,k=(l*t.width+w)*4;for(let R=0;R<4;R++){let M=i[E+R]*(1-D)+i[x+R]*D,N=i[S+R]*(1-D)+i[k+R]*D;a[b+R]=Math.round(M*(1-f)+N*f)}}}return{width:r,height:n,data:a}}function hP(t,e){return!e||t.padded.width===e.width&&t.padded.height===e.height?t.padded:mP(t.padded,e.width,e.height)}function pP(t,e){let A=e?.imageData;return!A?.data||A.width===t.padded.width&&A.height===t.padded.height?e:{...e,imageData:mP(A,t.padded.width,t.padded.height)}}function Hu(t={}){let e=t.highQualityCleanup===!0||t.highQualityCleanup!==!1&&an,A=typeof t.denoiseBackend=="string"?t.denoiseBackend:null,r=Object.values(Ke).includes(A)?A:t.textureRepair===!0||t.textureRepair!==!1&&gP?Ke.CANVAS_TEXTURE_REPAIR:go,n=r===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?3:1,a={residualCleanupStrength:Number.isFinite(t.residualCleanupStrength)?Math.max(0,Math.min(1.8,t.residualCleanupStrength)):Fu,cleanupBackend:e?uP.CANVAS_BILATERAL:uP.CANVAS_SOFT,highQualityCleanup:e,denoiseBackend:r,edgeDenoiseStrength:Number.isFinite(t.edgeDenoiseStrength)?Math.max(0,Math.min(n,t.edgeDenoiseStrength)):Kt,textureRepair:r===Ke.CANVAS_TEXTURE_REPAIR,textureRepairStrength:Number.isFinite(t.textureRepairStrength)?Math.max(0,Math.min(1,t.textureRepairStrength)):Af};return r===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&(a.allenkFdncnnRuntime=t.allenkFdncnnRuntime||null,a.allenkFdncnnSigma=Number.isFinite(t.allenkFdncnnSigma)?Math.max(0,Math.min(150,t.allenkFdncnnSigma)):zu,a.allenkFdncnnPadding=Number.isFinite(t.allenkFdncnnPadding)?Math.max(0,Math.round(t.allenkFdncnnPadding)):void 0,a.allenkFdncnnTemporalReuse=t.allenkFdncnnTemporalReuse||null,a.allenkFdncnnFrameCache=t.allenkFdncnnFrameCache||null,a.denoiseRuntimeStatus=a.allenkFdncnnRuntime?"available":"unavailable",a.denoiseRuntimeReason=a.allenkFdncnnRuntime?"allenk FDnCNN runtime provided":"allenk FDnCNN model contract is decoded, but no browser GPU inference runtime is wired yet"),a}function lo(t,e,A,r){let n=new Float32Array(e*A),a=0,i=(c,g)=>{let u=Math.max(0,Math.min(e-1,c)),l=Math.max(0,Math.min(A-1,g));return t[l*e+u]||0};for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=c*e+g,l=-i(g-1,c-1)-2*i(g-1,c)-i(g-1,c+1)+i(g+1,c-1)+2*i(g+1,c)+i(g+1,c+1),f=-i(g-1,c-1)-2*i(g,c-1)-i(g+1,c-1)+i(g-1,c+1)+2*i(g,c+1)+i(g+1,c+1),p=Math.sqrt(l*l+f*f);n[u]=p,p>a&&(a=p)}if(a<=0)return n;let s=new Float32Array(e*A);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-1;l<=1;l++){let f=c+l;if(!(f<0||f>=A))for(let p=-1;p<=1;p++){let h=g+p;h<0||h>=e||(u=Math.max(u,n[f*e+h]))}}s[c*e+g]=Math.sqrt(u/a)}let o=lA(s,e,A,1.15);for(let c=0;c<o.length;c++)o[c]=Math.min(1,o[c]*r);return o}function wP(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0,c=n[s]||0,g=Math.max(ar(.006,.035,o),ar(.42,.72,c)*.45),u=ar(.2,.3,o),l=ar(.24,.62,c),f=1-u*(1-l)*.86;a[s]=Math.min(1,c*g*f*i)}return lA(a,e,A,.65,2)}function gT(t,e,A){let r=new Float32Array(e*A),n=0,a=(i,s)=>{let o=Math.max(0,Math.min(e-1,i)),c=Math.max(0,Math.min(A-1,s));return t[c*e+o]||0};for(let i=0;i<A;i++)for(let s=0;s<e;s++){let o=i*e+s,c=-a(s-1,i-1)-2*a(s-1,i)-a(s-1,i+1)+a(s+1,i-1)+2*a(s+1,i)+a(s+1,i+1),g=-a(s-1,i-1)-2*a(s,i-1)-a(s+1,i-1)+a(s-1,i+1)+2*a(s,i+1)+a(s+1,i+1),u=Math.sqrt(c*c+g*g);r[o]=u,u>n&&(n=u)}if(n<=0)return r;for(let i=0;i<r.length;i++)r[i]/=n;return r}function lT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=wP(t,e,A,r),a=gT(t,e,A),i=new Float32Array(e*A);for(let s=0;s<i.length;s++){let o=ar(.1,.2,a[s]||0);i[s]=n[s]*o}return lA(i,e,A,.35,1)}function ef(t,e,A,{strength:r=0,highQuality:n=an,protectStructure:a=!1}={}){if(!Number.isFinite(r)||r<=0)return;let i=Math.max(24,Math.round(Math.min(e.width,e.height)*.9)),s=Math.max(0,e.x-i),o=Math.max(0,e.y-i),c=Math.min(t.canvas.width,e.x+e.width+i),g=Math.min(t.canvas.height,e.y+e.height+i),u=t.getImageData(s,o,c-s,g-o),l=lo(A,e.width,e.height,r),f=Ea(l,e,u,s,o),p=lA(f,u.width,u.height,1),h=uo(u,2.2,5),y=a?uT(u,n?.55:.78):null,w;if(n)w=Nu(u,p,Math.max(4,Math.round(Math.min(e.width,e.height)/14)),52);else{let D=dP(u,p,Math.max(18,Math.round(Math.min(e.width,e.height)/2))),b=Math.max(2,Math.round(Math.min(e.width,e.height)/18));w=uo({width:u.width,height:u.height,data:D},b*.8,b)}for(let D=0;D<p.length;D++){let b=Math.min(1,Math.max(0,p[D])),E=Math.min(1,b*(n?1.08:1.25)),x=ar(.22,.55,b),S=y?(y[D]||0)*(1-x*.82):0,k=y?Math.max(.28,1-S):1,R=E*k;if(R<=.01)continue;let M=D*4;for(let N=0;N<3;N++){let V=u.data[M+N]-h[M+N],F=n?Math.max(.18,.72-R*.48):Math.max(.05,.78-R*.9),K=Math.max(0,Math.min(255,w[M+N]+V*F));u.data[M+N]=Math.round(u.data[M+N]*(1-R)+K*R)}}t.putImageData(u,s,o)}function dT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(18,Math.round(Math.min(e.width,e.height)*.45)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=lo(A,e.width,e.height,Math.max(0,Math.min(1,r))),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.85,2),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/18)),34);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.62,h*.72);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function fT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(16,Math.round(Math.min(e.width,e.height)*.4)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=wP(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.65,2),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.54,h*.78);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function mT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(16,Math.round(Math.min(e.width,e.height)*.4)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=lT(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.45,1),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.48,h*.7);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function hT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0;if(o<=.035)continue;let c=Math.min(1,Math.max(0,(o-.035)/.18)),g=n[s]||0;a[s]=Math.min(1,Math.max(g*.75,c*.32)*i)}return lA(a,e,A,.75,2)}function pT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0,c=n[s]||0,g=ar(.018,.13,o),u=ar(.1,.24,o),l=1-ar(.42,.78,c)*.28;a[s]=Math.min(1,(g*.34+u*.22+c*.18)*l*i)}return lA(a,e,A,.85,2)}function wT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(22,Math.round(Math.min(e.width,e.height)*.55)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=pT(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.8,2),f=uo(c,1.8,4),p=dP(c,l,Math.max(14,Math.round(Math.min(e.width,e.height)/3))),h=uo({width:c.width,height:c.height,data:p},1.2,3);for(let y=0;y<l.length;y++){let w=Math.min(1,Math.max(0,l[y]||0)),D=Math.min(.36,w*.72);if(D<=.012)continue;let b=y*4,E=Math.max(.28,.72-D*1.1);for(let x=0;x<3;x++){let S=c.data[b+x]-f[b+x],k=Math.max(0,Math.min(255,h[b+x]+S*E));c.data[b+x]=Math.round(c.data[b+x]*(1-D)+k*D)}}t.putImageData(c,a,i)}function BT(t,e,A,{strength:r=Af}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(26,Math.round(Math.min(e.width,e.height)*.75)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=uo(c,1.65,4),u=hT(A,e.width,e.height,r),l=Ea(u,e,c,a,i),f=lA(l,c.width,c.height,.75,2),p=new Uint8ClampedArray(c.data),h=Math.max(6,Math.round(Math.min(e.width,e.height)/7));for(let y=0;y<c.height;y++)for(let w=0;w<c.width;w++){let D=y*c.width+w,b=Math.min(1,Math.max(0,f[D]||0));if(b<=.025)continue;let E=D*4,x=Xd(g,E),S=-1,k=Number.POSITIVE_INFINITY;for(let N=-h;N<=h;N+=2){let V=y+N;if(!(V<0||V>=c.height))for(let F=-h;F<=h;F+=2){let K=w+F;if(K<0||K>=c.width)continue;let L=V*c.width+K;if((f[L]||0)>.015)continue;let _=L*4,W=Math.abs(Xd(g,_)-x),pe=Math.sqrt(F*F+N*N),Ae=W+pe*.7;Ae<k&&(k=Ae,S=L)}}if(S<0)continue;let R=S*4,M=Math.min(.7,b*.95);for(let N=0;N<3;N++){let V=Math.max(-18,Math.min(18,p[R+N]-g[R+N]));c.data[E+N]=Math.max(0,Math.min(255,Math.round(c.data[E+N]+V*M)))}}t.putImageData(c,a,i)}function PT(t,e,A,{runtime:r=null,sigma:n=zu,strength:a=Kt,padding:i=void 0}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let s=fP(r),o=BP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:s?.width,targetHeight:s?.height});if(!o)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let c=r.denoiseImageData({imageData:hP(o,s),sigma:o.options.sigma}),g=pP(o,c);return tf(t,o,g),{denoiseRuntimeStatus:"applied",denoiseRuntime:g.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:g.macs??null,denoiseRuntimeRunMs:g.runMs??null}}function BP(t,e,A,{sigma:r=zu,strength:n=Kt,padding:a=void 0,targetWidth:i=null,targetHeight:s=null}={}){let o=tP({sigma:r,strength:n,padding:a}),g=Number.isInteger(i)&&i>0&&Number.isInteger(s)&&s>0&&Math.round(e.width)!==Math.round(e.height),u=g?rP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s}):nP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s});if(!u)return null;let l=u.visible||{x:u.x,y:u.y,width:u.width,height:u.height,offsetX:0,offsetY:0},f=t.getImageData(l.x,l.y,l.width,l.height),p=g?iP({imageData:f,imageX:l.x,imageY:l.y,canvasWidth:t.canvas.width,canvasHeight:t.canvas.height,roi:u}):f,h=AP({alphaMap:A,width:e.width,height:e.height,strength:o.strength}),y=aP({roiWeights:h,roiWidth:e.width,roiHeight:e.height,paddedRoi:u,blurSigma:1});return{options:o,paddedRoi:u,visible:l,padded:p,weights:y}}function yT(t,e){let A=t.visible||t.paddedRoi?.visible,r=t.padded;if(!A||!r?.data||A.width===r.width&&A.height===r.height&&A.offsetX===0&&A.offsetY===0)return r?.data&&e&&r.data.length===e.length&&r.data.set(e),{x:t.paddedRoi.x,y:t.paddedRoi.y,imageData:r};let n=Math.max(0,Math.round(A.width)),a=Math.max(0,Math.round(A.height)),i=Math.max(0,Math.round(A.offsetX||0)),s=Math.max(0,Math.round(A.offsetY||0)),o=new Uint8ClampedArray(n*a*4);for(let u=0;u<a;u++){let l=s+u;if(!(l<0||l>=r.height))for(let f=0;f<n;f++){let p=i+f;if(p<0||p>=r.width)continue;let h=(l*r.width+p)*4,y=(u*n+f)*4;o[y]=e[h]||0,o[y+1]=e[h+1]||0,o[y+2]=e[h+2]||0,o[y+3]=e[h+3]??255}}let c=typeof r.constructor=="function"&&r.constructor!==Object?r.constructor:typeof ImageData=="function"?ImageData:null,g=c?new c(o,n,a):{width:n,height:a,data:o};return{x:A.x,y:A.y,imageData:g}}function tf(t,e,A){let r=new Uint8ClampedArray(e.padded.data),n=cP({originalData:r,denoisedData:A.imageData.data,weights:e.weights,width:e.padded.width,height:e.padded.height,protectStructure:!0}),a=yT(e,n);t.putImageData(a.imageData,a.x,a.y)}function PP(t){return{width:t.width,height:t.height,data:new Uint8ClampedArray(t.data)}}function IT(t){return{...t,imageData:PP(t.imageData)}}function DT(t,e){if(!t?.data||!e?.data||t.width!==e.width||t.height!==e.height||t.data.length!==e.data.length)return 1/0;let A=0,r=0,n=t.data,a=e.data;for(let i=0;i<n.length;i+=16){let s=.2126*n[i]+.7152*n[i+1]+.0722*n[i+2],o=.2126*a[i]+.7152*a[i+1]+.0722*a[i+2];A+=Math.abs(s-o),r++}return r>0?A/r:1/0}function CT(t=null){if(!t||t.enabled===!1)return null;let e=Number.isFinite(t.maxFrames)?Math.max(0,Math.round(t.maxFrames)):0;return e<=0?null:{maxFrames:e,threshold:Number.isFinite(t.threshold)?Math.max(0,t.threshold):cT}}async function bT(t,e,A,{runtime:r=null,sigma:n=zu,strength:a=Kt,padding:i=void 0,temporalReuse:s=null,frameCache:o=null}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let c=fP(r),g=BP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:c?.width,targetHeight:c?.height});if(!g)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let u=CT(s),l=u&&o?PP(g.padded):null;if(u&&o?.denoised&&o?.previousInput){let h=DT(g.padded,o.previousInput),y=Number.isFinite(o.reuseCount)?o.reuseCount:0;if(y<u.maxFrames&&h<=u.threshold)return tf(t,g,o.denoised),o.previousInput=l,o.reuseCount=y+1,{denoiseRuntimeStatus:"reused",denoiseRuntime:`${o.denoised.runtime||r.id||"allenk-fdncnn-runtime"}+temporal-cache`,denoiseRuntimeMacs:0,denoiseRuntimeRunMs:0,denoiseRuntimeChangeScore:h,denoiseRuntimeReuseCount:o.reuseCount}}let f=await r.denoiseImageData({imageData:hP(g,c),sigma:g.options.sigma}),p=pP(g,f);return tf(t,g,p),u&&o&&(o.previousInput=l,o.denoised=IT(p),o.reuseCount=0),{denoiseRuntimeStatus:"applied",denoiseRuntime:p.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:p.macs??null,denoiseRuntimeRunMs:p.runMs??null}}function rf(t,e,A,r={}){let n=Hu(r),a=n.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE;return n.residualCleanupStrength>0&&!a&&ef(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup}),n.denoiseBackend===Ke.CANVAS_EDGE_DENOISE?dT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_EDGE_BAND_DENOISE?fT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_EDGE_CORE_DENOISE?mT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_FOOTPRINT_POLISH?wT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_TEXTURE_REPAIR?BT(t,e,A,{strength:n.textureRepairStrength}):n.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&Object.assign(n,PT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding})),n.residualCleanupStrength>0&&a&&ef(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n}async function yP(t,e,A,r={}){let n=Hu(r);return n.denoiseBackend!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?rf(t,e,A,r):(Object.assign(n,await bT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding,temporalReuse:n.allenkFdncnnTemporalReuse,frameCache:n.allenkFdncnnFrameCache})),n.residualCleanupStrength>0&&ef(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n)}var fo=Object.freeze([Object.freeze({id:"allenk-fdncnn-veo-text-23x10",modelSize:86,modelWidth:86,modelHeight:74,maxWatermarkSize:23,matchWatermark:Object.freeze({width:23,height:10}),modelUrl:"./models/allenk-fdncnn/model_core_fp32_86x74.onnx",inputShape:Object.freeze([1,4,74,86]),outputShape:Object.freeze([1,3,74,86]),padding:32}),Object.freeze({id:"allenk-fdncnn-104",modelSize:104,modelWidth:104,modelHeight:104,maxWatermarkSize:56,modelUrl:"./models/allenk-fdncnn/model_core_fp32_104.onnx",inputShape:Object.freeze([1,4,104,104]),outputShape:Object.freeze([1,3,104,104])}),Object.freeze({id:"allenk-fdncnn-200",modelSize:200,modelWidth:200,modelHeight:200,maxWatermarkSize:1/0,modelUrl:"./models/allenk-fdncnn/model_core_fp32_200.onnx",inputShape:Object.freeze([1,4,200,200]),outputShape:Object.freeze([1,3,200,200])})]),IP=fo.find(t=>t.id==="allenk-fdncnn-200")||fo[fo.length-1],ET=64;function TT(t=null){let e=Number(t?.width),A=Number(t?.height??t?.width);return!Number.isFinite(e)||!Number.isFinite(A)||e<=0||A<=0?null:Math.max(e,A)}function nf(t,e){return{...t,inputShape:[...t.inputShape],outputShape:[...t.outputShape],padding:e}}function jn(t=null){let e=TT(t);if(!e)return nf(IP,ET);let A=Math.round(Number(t?.width)),r=Math.round(Number(t?.height??t?.width)),n=fo.find(s=>s.matchWatermark&&s.matchWatermark.width===A&&s.matchWatermark.height===r);if(n)return nf(n,n.padding);let a=fo.find(s=>e<=s.maxWatermarkSize)||IP,i=Math.max(0,Math.floor((a.modelSize-e)/2));return nf(a,i)}var Vn=12,mo=1,af=!1,sf=12e6,kT=2,GT="no-preference",xT="quality",ST="constant",YT="detail",vT=Object.freeze({primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),OT=5,DP=.05,_T=.14,MT=.035,bP=Object.freeze({copied:!1,packetCount:0,codec:null,skipReason:"disabled"});function EP(t,e){if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(t,e);if(typeof document<"u"){let A=document.createElement("canvas");return A.width=t,A.height=e,A}throw new Error("\u5F53\u524D\u73AF\u5883\u6CA1\u6709\u53EF\u7528 Canvas")}function TP(t){let e=t.getContext("2d",{willReadFrequently:!0});if(!e)throw new Error("\u65E0\u6CD5\u521B\u5EFA 2D Canvas \u4E0A\u4E0B\u6587");return e}function RT(t){return new zn({source:new Vs(t),formats:hd})}async function of(t){let e=RT(t),A=await e.getPrimaryVideoTrack();if(!A)throw e.dispose(),new Error("\u6587\u4EF6\u4E2D\u6CA1\u6709\u53EF\u5904\u7406\u7684\u89C6\u9891\u8F68");return{input:e,videoTrack:A}}async function kP(t,e){let[A,r,n,a,i,s]=await Promise.all([e.getDisplayWidth(),e.getDisplayHeight(),e.getFirstTimestamp().catch(()=>0),e.getCodec().catch(()=>null),t.getDurationFromMetadata([e],{skipLiveWait:!0}).catch(()=>null),e.computePacketStats(90,{skipLiveWait:!0}).catch(()=>null)]),o=Number.isFinite(i)&&i>0?i:await e.computeDuration({skipLiveWait:!0}).catch(()=>null),c=s?.averagePacketRate&&Number.isFinite(s.averagePacketRate)?s.averagePacketRate:30;return{width:A,height:r,firstTimestamp:Number.isFinite(n)?n:0,duration:Number.isFinite(o)?o:null,codec:a,frameRate:c,frameCountEstimate:s?.packetCount||(o?Math.round(o*c):null),averageBitrate:s?.averageBitrate||null}}function QT({firstTimestamp:t,duration:e,sampleCount:A}){let r=Math.max(1,Math.round(A||Vn));if(!Number.isFinite(e)||e<=0)return[t];let n=Math.max(0,t),a=e/(r+1);return Array.from({length:r},(i,s)=>n+a*(s+1))}function GP(t){let e=Number(t);return Number.isFinite(e)&&e>0?e:sf}function FT(t,e){!e?.decoderConfig||typeof e.decoderConfig!="object"||(e.decoderConfig.colorSpace={...vT})}function zT(t){return{codec:"avc",bitrate:GP(t),alpha:"discard",keyFrameInterval:kT,latencyMode:xT,bitrateMode:ST,hardwareAcceleration:GT,contentHint:YT,onEncodedPacket:FT}}function NT(t,e){let A=t.timestamp-e;return A>=0?t:t.timestamp+t.duration<=e?null:t.clone({timestamp:0,duration:Math.max(0,t.duration+A)})}function HT(t,e){return!!(e&&t.getSupportedAudioCodecs().includes(e))}async function UT({input:t,output:e,format:A,startTimestamp:r,preserveAudio:n}){if(n===!1)return{source:null,track:null,meta:null,result:bP};let a=await t.getPrimaryAudioTrack().catch(()=>null);if(!a)return{source:null,track:null,meta:null,result:{copied:!1,packetCount:0,codec:null,skipReason:"no-audio-track"}};let i=await a.getCodec().catch(()=>null);if(!HT(A,i))return{source:null,track:a,meta:null,result:{copied:!1,packetCount:0,codec:i,skipReason:"unsupported-audio-codec"}};let s=new io(i);e.addAudioTrack(s);let o=await a.getDecoderConfig().catch(()=>null);return{source:s,track:a,meta:{decoderConfig:o??void 0},result:{copied:!1,packetCount:0,codec:i,skipReason:null},startTimestamp:r}}async function qT(t){if(!t?.source||!t.track)return t?.result||bP;let e=new An(t.track),A=0;try{for await(let r of e.packets()){let n=NT(r,t.startTimestamp||0);n&&(await t.source.add(n,t.meta),A++)}return t.source.close(),{copied:A>0,packetCount:A,codec:t.result.codec,skipReason:A>0?null:"no-audio-packets"}}catch(r){throw t.source.close(),r}}async function xP(t){let{input:e,videoTrack:A}=await of(t);try{let r=await kP(e,A);return{...r,candidates:co(r.width,r.height)}}finally{e.dispose()}}async function Uu(t,e={}){let A=typeof e.onProgress=="function"?e.onProgress:()=>{},r=typeof e.yieldToMainThread=="function"?e.yieldToMainThread:async()=>{},{input:n,videoTrack:a}=await of(t);try{let i=await kP(n,a);A({phase:"detect",step:"metadata",progress:.04,metadata:i}),await r();let s=EP(i.width,i.height),o=TP(s),c=new na(a),g=QT({firstTimestamp:i.firstTimestamp,duration:i.duration,sampleCount:e.sampleCount??Vn}),u=[],l=0;for await(let p of c.samples())try{if(l>=g.length)break;if(p.timestamp<g[l]&&u.length>0)continue;p.draw(o,0,0,i.width,i.height),u.push({timestamp:p.timestamp,imageData:o.getImageData(0,0,i.width,i.height)}),l++,A({phase:"detect",step:"sample",progress:.06+.54*Math.min(1,u.length/g.length),metadata:i,sampledFrames:u.length,sampleCount:g.length}),await r()}finally{p.close()}if(!u.length)throw new Error("\u65E0\u6CD5\u4ECE\u89C6\u9891\u4E2D\u62BD\u53D6\u68C0\u6D4B\u5E27");A({phase:"detect",step:"score",progress:.65,metadata:i,sampledFrames:u.length,sampleCount:g.length}),await r();let f=await XB({frames:u,width:i.width,height:i.height,candidates:e.candidates,minConfidence:e.minConfidence,alphaMapOptions:{profile:e.alphaProfile,lowAlphaScale:e.alphaLowScale,bodyAlphaScale:e.alphaBodyScale,edgeBoost:e.alphaEdgeBoost,localRegion:e.alphaLocalRegion,localLowAlphaScale:e.alphaLocalLowScale,localBodyAlphaScale:e.alphaLocalBodyScale},yieldToMainThread:r});return A({phase:"detect",step:"done",progress:1,metadata:i,detection:f}),{metadata:i,detection:f}}finally{n.dispose()}}function LT(t){let e=new Uint8ClampedArray(t.data);return typeof ImageData<"u"?new ImageData(e,t.width,t.height):{width:t.width,height:t.height,data:e}}function dA(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function jT(t,e,A,r=18){let n=Math.max(0,e.x-r),a=Math.max(0,e.y-r),i=Math.min(t.canvas.width,e.x+e.width+r),s=Math.min(t.canvas.height,e.y+e.height+r),o=t.getImageData(n,a,i-n,s-a),c=0,g=0,u=.015;for(let l=0;l<o.height;l++)for(let f=0;f<o.width;f++){let p=n+f,h=a+l,y=p>=e.x&&p<e.x+e.width&&h>=e.y&&h<e.y+e.height,w=y?0:1;if(y){let b=p-e.x,E=h-e.y;(A[E*e.width+b]||0)<=u&&(w=.35)}if(w<=0)continue;let D=(l*o.width+f)*4;c+=dA(o.data,D)*w,g+=w}return{mean:g>0?c/g:null,padded:o}}function VT(t,e,A){if(!Number.isFinite(A))return 0;let r=0,n=0;for(let a=0;a<t.height;a++)for(let i=0;i<t.width;i++){let s=e[a*t.width+i]||0;if(s<=.025)continue;let o=Math.min(1,Math.max(0,s*8)),c=(a*t.width+i)*4;r+=dA(t.data,c)*o,n+=o}return n<=0?0:r/n-A}function Mr(t,e,A){if(t===e)return A>=e?1:0;let r=Math.max(0,Math.min(1,(A-t)/(e-t)));return r*r*(3-2*r)}function cf(t,e,A){let r=LT(t);return TB(r,e,{x:0,y:0,width:t.width,height:t.height},{alphaGain:A}),r}function KT(t,e,A,r,{strength:n=Kt}={}){let a=t.getImageData(e.x,e.y,e.width,e.height);if(!r||r.width!==a.width||r.height!==a.height||!Number.isFinite(n)||n<=0)return a;let i=Math.max(0,Math.min(1,n)),s=new Uint8ClampedArray(a.data),o=!1;for(let g=0;g<a.height;g++)for(let u=0;u<a.width;u++){let l=g*a.width+u,f=A[l]||0;if(f<=.025)continue;let p=l*4,h=dA(a.data,p),y=dA(r.data,p),w=Math.abs(h-y),D=1-Mr(5,22,w),b=Mr(.035,.24,f),E=Math.min(.26,i*b*D*.32);if(!(E<=.012)){for(let x=0;x<3;x++)s[p+x]=Math.round(a.data[p+x]*(1-E)+r.data[p+x]*E);o=!0}}if(!o)return a;let c=typeof ImageData<"u"?new ImageData(s,a.width,a.height):{width:a.width,height:a.height,data:s};return t.putImageData(c,e.x,e.y),c}function WT(t,e,A,r,n,{strength:a=Kt}={}){let i=t.getImageData(e.x,e.y,e.width,e.height);if(!n?.originalRoi||!n?.processedRoi||n.originalRoi.width!==i.width||n.originalRoi.height!==i.height||n.processedRoi.width!==i.width||n.processedRoi.height!==i.height||!Number.isFinite(a)||a<=0)return{originalRoi:r,processedRoi:i};let s=Math.max(0,Math.min(1,a)),o=new Uint8ClampedArray(i.data),c=!1;for(let u=0;u<i.height;u++)for(let l=0;l<i.width;l++){let f=u*i.width+l,p=A[f]||0;if(p<=.025)continue;let h=f*4,y=dA(r.data,h),w=dA(n.originalRoi.data,h),D=Math.abs(y-w),b=dA(i.data,h)-y,E=dA(n.processedRoi.data,h)-w,x=Math.abs(b-E),S=1-Mr(4,20,D),k=Mr(1.5,10,x),R=Mr(.035,.24,p),M=Math.min(.34,s*S*k*R*.42);if(!(M<=.012)){for(let N=0;N<3;N++){let V=i.data[h+N]-r.data[h+N],F=n.processedRoi.data[h+N]-n.originalRoi.data[h+N],K=V*(1-M)+F*M;o[h+N]=Math.max(0,Math.min(255,Math.round(r.data[h+N]+K)))}c=!0}}if(!c)return{originalRoi:r,processedRoi:i};let g=typeof ImageData<"u"?new ImageData(o,i.width,i.height):{width:i.width,height:i.height,data:o};return t.putImageData(g,e.x,e.y),{originalRoi:r,processedRoi:g}}function CP(t){let e=new Float32Array(t.width*t.height);for(let A=0;A<e.length;A++)e[A]=dA(t.data,A*4);return e}function ZT(t,e,A,r,n,a,i,s){let o=0,c=0;for(let g=-1;g<=1;g++){let u=a+g,l=a+s+g;if(!(u<0||u>=r||l<0||l>=r))for(let f=-1;f<=1;f++){let p=n+f,h=n+i+f;p<0||p>=A||h<0||h>=A||(o+=Math.abs(t[u*A+p]-e[l*A+h]),c++)}}return c>0?o/c:Number.POSITIVE_INFINITY}function $T(t,e,A,r,n,{strength:a=Kt}={}){let i=t.getImageData(e.x,e.y,e.width,e.height);if(!n?.originalRoi||!n?.processedRoi||n.originalRoi.width!==i.width||n.originalRoi.height!==i.height||n.processedRoi.width!==i.width||n.processedRoi.height!==i.height||!Number.isFinite(a)||a<=0)return{originalRoi:r,processedRoi:i};let s=Math.max(0,Math.min(1,a)),o=i.width,c=i.height,g=CP(r),u=CP(n.originalRoi),l=new Uint8ClampedArray(i.data),f=!1;for(let h=0;h<c;h++)for(let y=0;y<o;y++){let w=h*o+y,D=A[w]||0;if(D<=.025)continue;let b=0,E=0,x=Number.POSITIVE_INFINITY;for(let ae=-2;ae<=2;ae++)for(let we=-2;we<=2;we++){let et=y+we,tt=h+ae;if(et<0||et>=o||tt<0||tt>=c)continue;let $e=ZT(g,u,o,c,y,h,we,ae);$e<x&&(x=$e,b=we,E=ae)}let S=(h+E)*o+y+b,k=w*4,R=S*4,M=dA(i.data,k)-g[w],N=dA(n.processedRoi.data,k)-u[w],V=dA(n.processedRoi.data,R)-u[S],F=Math.abs(M-V),L=Math.abs(M-N)-F;if(L<=.5||x>8)continue;let _=1-Mr(2.5,8,x),W=Mr(.5,5,L),pe=Mr(1.5,10,F),Ae=Mr(.035,.24,D),De=Math.min(.24,s*_*W*pe*Ae*.36);if(!(De<=.012)){for(let ae=0;ae<3;ae++){let we=i.data[k+ae]-r.data[k+ae],et=n.processedRoi.data[R+ae]-n.originalRoi.data[R+ae],tt=we*(1-De)+et*De;l[k+ae]=Math.max(0,Math.min(255,Math.round(r.data[k+ae]+tt)))}f=!0}}if(!f)return{originalRoi:r,processedRoi:i};let p=typeof ImageData<"u"?new ImageData(l,i.width,i.height):{width:i.width,height:i.height,data:l};return t.putImageData(p,e.x,e.y),{originalRoi:r,processedRoi:p}}function JT(t,e){let A=t.canvas.width-e.x-e.width,r=t.canvas.height-e.y-e.height,n=Math.round(e.width*1.8);return A>=n||r>=n}function SP({ctx:t,originalRoi:e,position:A,alphaMap:r,seedGain:n,previousGain:a}){let i=jT(t,A,r);if(!Number.isFinite(i.mean))return n;let s=Math.max(.2,n-.3),o=Math.min(1.15,n+.3),c=n,g=Number.POSITIVE_INFINITY;for(let u=0;u<OT;u++){let l=(s+o)/2,f=cf(e,r,l),p=VT(f,r,i.mean),h=Math.abs(p);h<g&&(g=h,c=l),p>0?s=l:o=l}return Number.isFinite(a)&&(c=Math.max(a-DP,Math.min(a+DP,c))),c}function XT(t,e,A){let{position:r,alphaMap:n}=e,a=Qu(t.getImageData(r.x,r.y,r.width,r.height),{x:0,y:0,width:r.width,height:r.height},n);if(a.confidence<A.lowConfidenceThreshold)return{alphaGain:A.previousAlphaGain??A.seedAlphaGain,frameScore:a,skipped:!0,mode:"skip"};let s=t.getImageData(r.x,r.y,r.width,r.height),o=A.adaptiveAlpha&&a.confidence>=A.highConfidenceThreshold,c=o?SP({ctx:t,originalRoi:s,position:r,alphaMap:n,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,g=cf(s,n,c);t.putImageData(g,r.x,r.y),rf(t,r,n,{residualCleanupStrength:A.residualCleanupStrength,highQualityCleanup:A.highQualityCleanup,denoiseBackend:A.denoiseBackend,edgeDenoiseStrength:A.edgeDenoiseStrength,allenkFdncnnRuntime:A.allenkFdncnnRuntime,allenkFdncnnSigma:A.allenkFdncnnSigma,textureRepair:A.textureRepair,textureRepairStrength:A.textureRepairStrength});let u=A.denoiseBackend===Ke.CANVAS_TEMPORAL_STABILIZE?KT(t,r,n,A.previousTemporalRoi,{strength:A.edgeDenoiseStrength}):null,l=A.denoiseBackend===Ke.CANVAS_TEMPORAL_DELTA_STABILIZE?WT(t,r,n,s,A.previousTemporalDeltaFrame,{strength:A.edgeDenoiseStrength}):null,f=A.denoiseBackend===Ke.CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE&&JT(t,r)?$T(t,r,n,s,A.previousTemporalMatchDeltaFrame,{strength:A.edgeDenoiseStrength}):null;return{alphaGain:c,frameScore:a,skipped:!1,mode:o?"adaptive":"seed",temporalRoi:u,temporalDeltaFrame:l,temporalMatchDeltaFrame:f}}async function ek(t,e,A){if(!(A.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&A.allenkFdncnnRuntime))return XT(t,e,A);let{position:n,alphaMap:a}=e,i=Qu(t.getImageData(n.x,n.y,n.width,n.height),{x:0,y:0,width:n.width,height:n.height},a);if(i.confidence<A.lowConfidenceThreshold)return{alphaGain:A.previousAlphaGain??A.seedAlphaGain,frameScore:i,skipped:!0,mode:"skip"};let o=t.getImageData(n.x,n.y,n.width,n.height),c=A.adaptiveAlpha&&i.confidence>=A.highConfidenceThreshold,g=c?SP({ctx:t,originalRoi:o,position:n,alphaMap:a,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,u=cf(o,a,g);t.putImageData(u,n.x,n.y);let l=await yP(t,n,a,{residualCleanupStrength:A.residualCleanupStrength,highQualityCleanup:A.highQualityCleanup,denoiseBackend:A.denoiseBackend,edgeDenoiseStrength:A.edgeDenoiseStrength,allenkFdncnnRuntime:A.allenkFdncnnRuntime,allenkFdncnnSigma:A.allenkFdncnnSigma,allenkFdncnnPadding:A.allenkFdncnnPadding,allenkFdncnnTemporalReuse:A.allenkFdncnnTemporalReuse,allenkFdncnnFrameCache:A.allenkFdncnnFrameCache,textureRepair:A.textureRepair,textureRepairStrength:A.textureRepairStrength});return{alphaGain:g,frameScore:i,skipped:!1,mode:c?"adaptive":"seed",temporalRoi:null,temporalDeltaFrame:null,temporalMatchDeltaFrame:null,cleanupResult:l}}async function YP(t,e={}){let A=Number.isFinite(e.alphaGain)&&e.alphaGain>0?e.alphaGain:mo,r=e.adaptiveAlpha===!0||e.adaptiveAlpha!==!1&&af,n=Hu(e),{residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:g}=n,u=typeof e.onProgress=="function"?e.onProgress:()=>{},l=GP(e.videoBitrate);u({phase:"detect",progress:0});let f=e.detection||await Uu(t,{sampleCount:e.sampleCount,minConfidence:e.minConfidence,candidates:e.candidates,alphaProfile:e.alphaProfile,alphaLowScale:e.alphaLowScale,alphaBodyScale:e.alphaBodyScale,alphaEdgeBoost:e.alphaEdgeBoost,alphaLocalRegion:e.alphaLocalRegion,alphaLocalLowScale:e.alphaLocalLowScale,alphaLocalBodyScale:e.alphaLocalBodyScale,onProgress:u,yieldToMainThread:e.yieldToMainThread}),{metadata:p,detection:h}=f,y=tk(n,h),w=h?.alphaSeed?.seedGain,D=Number.isFinite(w)&&Math.abs(A-mo)<1e-4?w:A;if(u({phase:"detect",progress:1,metadata:p,detection:h}),!h.isConfident&&e.allowLowConfidence!==!0)throw new Error("\u89C6\u9891\u6C34\u5370\u68C0\u6D4B\u7F6E\u4FE1\u5EA6\u504F\u4F4E\uFF0C\u5DF2\u505C\u6B62\u5BFC\u51FA\u3002\u53EF\u6253\u5F00\u4F4E\u7F6E\u4FE1\u5BFC\u51FA\u540E\u91CD\u8BD5\u3002");let b=zT(l);if(!await yd("avc",{width:p.width,height:p.height,bitrate:b.bitrate,latencyMode:b.latencyMode,bitrateMode:b.bitrateMode,hardwareAcceleration:b.hardwareAcceleration,contentHint:b.contentHint}))throw new Error("\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 WebCodecs H.264/AVC \u7F16\u7801\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002");let{input:x,videoTrack:S}=await of(t),k=EP(p.width,p.height),R=TP(k),M=new Or,N=new ya({fastStart:"in-memory"}),V=new so({format:N,target:M}),F=new no(k,b);V.addVideoTrack(F,{frameRate:p.frameRate});let K=await UT({input:x,output:V,format:N,startTimestamp:p.firstTimestamp,preserveAudio:e.preserveAudio}),L=0,_=0,W=0,pe=0,Ae=0,De=0,ae=-1/0,we=null,et=null,tt=null,$e=null,pA=s===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?{}:null,Je=p.frameRate>0?1/p.frameRate:1/30;try{await V.start();let qe=qT(K),ut=new na(S);for await(let se of ut.samples()){let ue=Math.max(0,se.timestamp-p.firstTimestamp);ue<ae&&(ue=ae+Je);let Yt=Number.isFinite(se.duration)&&se.duration>0?se.duration:Je;try{se.draw(R,0,0,p.width,p.height);let pt=await ek(R,h,{seedAlphaGain:D,previousAlphaGain:we,adaptiveAlpha:r,residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:g,allenkFdncnnRuntime:e.allenkFdncnnRuntime,allenkFdncnnSigma:e.allenkFdncnnSigma,allenkFdncnnPadding:y,allenkFdncnnTemporalReuse:e.allenkFdncnnTemporalReuse,allenkFdncnnFrameCache:pA,previousTemporalRoi:et,previousTemporalDeltaFrame:tt,previousTemporalMatchDeltaFrame:$e,highConfidenceThreshold:e.highConfidenceThreshold??_T,lowConfidenceThreshold:e.lowConfidenceThreshold??MT});we=pt.alphaGain;let sr=pt.cleanupResult?.denoiseRuntimeStatus;sr==="applied"?Ae++:sr==="reused"&&De++,pt.skipped?(_++,et=null,tt=null,$e=null):pt.mode==="adaptive"?(W++,et=pt.temporalRoi||null,tt=pt.temporalDeltaFrame||null,$e=pt.temporalMatchDeltaFrame||null):(pe++,et=pt.temporalRoi||null,tt=pt.temporalDeltaFrame||null,$e=pt.temporalMatchDeltaFrame||null)}finally{se.close()}await F.add(ue,Yt),ae=ue,L++;let Se=p.frameCountEstimate||Math.max(1,Math.round((p.duration||0)*p.frameRate)),Ne=ue+Yt,Rt=Number.isFinite(p.duration)&&p.duration>0?Math.max(0,Math.min(1,Ne/p.duration)):null;u({phase:"export",progress:Rt??(Se?Math.min(1,L/Se):0),processedFrames:L,frameEstimate:Se,elapsedSeconds:Ne,metadata:p,detection:h,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De,alphaGain:D})}F.close();let Be=await qe;if(await V.finalize(),!M.buffer)throw new Error("\u89C6\u9891\u5BFC\u51FA\u5931\u8D25\uFF0C\u8F93\u51FA\u4E3A\u7A7A");return{blob:new Blob([M.buffer],{type:"video/mp4"}),metadata:p,detection:h,alphaGain:D,adaptiveAlpha:r,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,allenkFdncnnPadding:y,textureRepair:c,textureRepairStrength:g,residualCleanupStrength:a,videoBitrate:l,preserveAudio:e.preserveAudio!==!1,audioCopied:Be.copied,audioPacketCount:Be.packetCount,audioCodec:Be.codec,audioSkipReason:Be.skipReason,processedFrames:L,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De}}catch(qe){throw V.state!=="finalized"&&V.state!=="canceled"&&await V.cancel().catch(()=>{}),qe}finally{x.dispose()}}function tk(t={},e=null){return Number.isFinite(t.allenkFdncnnPadding)||t.denoiseBackend!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?t.allenkFdncnnPadding:jn(e?.position).padding}var vP=1.8,OP=12,_P=1,Ak=1.8,rk=.4,nk=1,ik=1.2,ak=1.45,sk=.9;function ok(t){if(!t||!Number.isFinite(t.width)||t.width<=0)return!1;let e=Number(t.marginRight),A=Number(t.marginBottom),r=Number.isFinite(Number(t.videoWidth))&&Number.isFinite(Number(t.x))?Number(t.videoWidth)-Number(t.x)-Number(t.width):null,n=Number.isFinite(Number(t.videoHeight))&&Number.isFinite(Number(t.y))?Number(t.videoHeight)-Number(t.y)-Number(t.height||t.width):null,a=Number.isFinite(e)?e:r,i=Number.isFinite(A)?A:n;return Number.isFinite(a)&&a>=t.width*vP||Number.isFinite(i)&&i>=t.width*vP}function ck(t={}){let e=`${t.id||""} ${t.label||""}`.toLowerCase();return e.includes("inset")||e.includes("relocated")}function uk(t,e=null){if(!t?.isConfident||!t.position)return!1;let A={...t.position,videoWidth:t.position.videoWidth??e?.width,videoHeight:t.position.videoHeight??e?.height};return ok(A)||ck(t.summary?.best)}function uf(){return{id:"relocated-review",label:"AI \u81EA\u52A8\u5904\u7406",description:"\u81EA\u52A8\u68C0\u6D4B\u6C34\u5370\u4F4D\u7F6E\u5E76\u4F7F\u7528 AI \u6A21\u578B\u6E05\u7406\uFF0C\u65E0\u9700\u624B\u52A8\u8C03\u53C2\u3002",alphaGain:_P,adaptiveAlpha:!1,highQualityCleanup:an,denoiseBackend:Ke.CANVAS_FOOTPRINT_POLISH,edgeDenoiseStrength:nk,residualCleanupStrength:ik,sampleCount:OP,videoBitrateMbps:12,allowLowConfidence:!0}}function MP(){return{id:"standard-auto",label:"AI \u81EA\u52A8\u5904\u7406",description:"\u9ED8\u8BA4\u4F7F\u7528\u672C\u5730 AI \u6A21\u578B\u5904\u7406\u53F3\u4E0B\u89D2 Gemini/Veo \u6C34\u5370\u3002",alphaGain:_P,adaptiveAlpha:!1,highQualityCleanup:an,denoiseBackend:Ke.ALLENK_FDNCNN_BROWSER_SPIKE,edgeDenoiseStrength:Ak,residualCleanupStrength:rk,sampleCount:OP,videoBitrateMbps:"",allowLowConfidence:!1}}function gk(){return{...MP(),id:"veo-text-auto",edgeDenoiseStrength:ak,residualCleanupStrength:sk}}function gf(t=null,e=null){return uk(t,e)?uf():t?.watermarkKind==="veo-text"?gk():MP()}function RP({windowObject:t=globalThis,videoBitrateInput:e,setNumberControl:A}={}){let r=Number(t?.__gwrVideoOverrideBitrate);return!Number.isFinite(r)||r<=0||!e||typeof A!="function"?!1:(A(e,r/1e3/1e3),!0)}var lk="gwr-debug-file-handoff";var Ta="files",lf="latest",dk=new Set(["image/jpeg","image/png","image/webp"]),fk=new Set([".jpg",".jpeg",".png",".webp"]),mk=new Set([".mp4",".webm",".mov",".m4v"]);function hk(t){let e=typeof t?.name=="string"?t.name.toLowerCase():"",A=e.lastIndexOf(".");return A>=0?e.slice(A):""}function ho(t){if(!t)return null;let e=typeof t.type=="string"?t.type.toLowerCase():"",A=hk(t);return e.startsWith("video/")||mk.has(A)?"video":dk.has(e)||fk.has(A)?"image":null}function df(t){let e=Array.from(t||[]).filter(Boolean);return e.find(A=>ho(A)==="video")||e.find(A=>ho(A)==="image")||null}function QP(){return new Promise((t,e)=>{let A=globalThis.indexedDB;if(!A){e(new Error("\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u672C\u5730\u6587\u4EF6\u6682\u5B58\uFF0C\u8BF7\u76F4\u63A5\u6253\u5F00\u76EE\u6807\u8C03\u8BD5\u9875\u540E\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002"));return}let r=A.open(lk,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(Ta)||n.createObjectStore(Ta,{keyPath:"id"})},r.onerror=()=>e(r.error||new Error("\u65E0\u6CD5\u6253\u5F00\u672C\u5730\u6587\u4EF6\u6682\u5B58\u3002")),r.onsuccess=()=>t(r.result)})}async function FP(t,e=ho(t)){if(!t||!e)throw new Error("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\u3002");let A={id:lf,kind:e,file:t,name:t.name||"",type:t.type||"",size:Number.isFinite(t.size)?t.size:0,updatedAt:Date.now()},r=await QP();return await new Promise((n,a)=>{let i=r.transaction(Ta,"readwrite");i.objectStore(Ta).put(A),i.oncomplete=()=>n(),i.onerror=()=>a(i.error||new Error("\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),i.onabort=()=>a(i.error||new Error("\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5DF2\u53D6\u6D88\u3002"))}).finally(()=>r.close()),A}async function zP(t=null){let e=await QP(),A=null;return await new Promise((r,n)=>{let a=e.transaction(Ta,"readwrite"),i=a.objectStore(Ta),s=i.get(lf);s.onsuccess=()=>{let o=s.result||null;o&&(!t||o.kind===t)&&(A=o,i.delete(lf))},s.onerror=()=>n(s.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),a.oncomplete=()=>r(),a.onerror=()=>n(a.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),a.onabort=()=>n(a.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5DF2\u53D6\u6D88\u3002"))}).finally(()=>e.close()),A}var Zf={};op(Zf,{InferenceSession:()=>_f,TRACE:()=>Zu,TRACE_EVENT_BEGIN:()=>ti,TRACE_EVENT_END:()=>Ai,TRACE_FUNC_BEGIN:()=>Xn,TRACE_FUNC_END:()=>ei,Tensor:()=>qA,default:()=>Hk,env:()=>ot,registerBackend:()=>Io});var UA={};var vf=Object.defineProperty,pk=Object.getOwnPropertyDescriptor,wk=Object.getOwnPropertyNames,Bk=Object.prototype.hasOwnProperty,Pk=(t=>typeof zt<"u"?zt:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof zt<"u"?zt:e)[A]}):t)(function(t){if(typeof zt<"u")return zt.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ze=(t,e)=>()=>(t&&(e=t(t=0)),e),Xu=(t,e)=>{for(var A in e)vf(t,A,{get:e[A],enumerable:!0})},yk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of wk(e))!Bk.call(t,n)&&n!==A&&vf(t,n,{get:()=>e[n],enumerable:!(r=pk(e,n))||r.enumerable});return t},Gf=t=>yk(vf({},"__esModule",{value:!0}),t),po,sn,Io,NP,iy,ay=ze(()=>{"use strict";po=new Map,sn=[],Io=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=po.get(t);if(r===void 0)po.set(t,{backend:e,priority:A});else{if(r.priority>A)return;if(r.priority===A&&r.backend!==e)throw new Error(`cannot register backend "${t}" using priority ${A}`)}if(A>=0){let n=sn.indexOf(t);n!==-1&&sn.splice(n,1);for(let a=0;a<sn.length;a++)if(po.get(sn[a]).priority<=A){sn.splice(a,0,t);return}sn.push(t)}return}throw new TypeError("not a valid backend")},NP=async t=>{let e=po.get(t);if(!e)return"backend not found.";if(e.initialized)return e.backend;if(e.aborted)return e.error;{let A=!!e.initPromise;try{return A||(e.initPromise=e.backend.init(t)),await e.initPromise,e.initialized=!0,e.backend}catch(r){return A||(e.error=`${r}`,e.aborted=!0),e.error}finally{delete e.initPromise}}},iy=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?sn:A,n,a=[],i=new Set;for(let o of r){let c=await NP(o);typeof c=="string"?a.push({name:o,err:c}):(n||(n=c),n===c&&i.add(o))}if(!n)throw new Error(`no available backend found. ERR: ${a.map(o=>`[${o.name}] ${o.err}`).join(", ")}`);for(let{name:o,err:c}of a)A.includes(o)&&console.warn(`removing requested execution provider "${o}" from session options because it is not available: ${c}`);let s=e.filter(o=>i.has(typeof o=="string"?o:o.name));return[n,new Proxy(t,{get:(o,c)=>c==="executionProviders"?s:Reflect.get(o,c)})]}}),Ik=ze(()=>{"use strict";ay()}),sy,Dk=ze(()=>{"use strict";sy="1.26.0"}),ff,Et,oy=ze(()=>{"use strict";Dk(),ff="warning",Et={wasm:{},webgl:{},webgpu:{},versions:{common:sy},set logLevel(t){if(t!==void 0){if(typeof t!="string"||["verbose","info","warning","error","fatal"].indexOf(t)===-1)throw new Error(`Unsupported logging level: ${t}`);ff=t}},get logLevel(){return ff}},Object.defineProperty(Et,"logLevel",{enumerable:!0})}),ot,Ck=ze(()=>{"use strict";oy(),ot=Et}),cy,uy,bk=ze(()=>{"use strict";cy=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);A.width=t.dims[3],A.height=t.dims[2];let r=A.getContext("2d");if(r!=null){let n,a;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[3]):(n=t.dims[3],a=t.dims[2]);let i=e?.format!==void 0?e.format:"RGB",s=e?.norm,o,c;s===void 0||s.mean===void 0?o=[255,255,255,255]:typeof s.mean=="number"?o=[s.mean,s.mean,s.mean,s.mean]:(o=[s.mean[0],s.mean[1],s.mean[2],0],s.mean[3]!==void 0&&(o[3]=s.mean[3])),s===void 0||s.bias===void 0?c=[0,0,0,0]:typeof s.bias=="number"?c=[s.bias,s.bias,s.bias,s.bias]:(c=[s.bias[0],s.bias[1],s.bias[2],0],s.bias[3]!==void 0&&(c[3]=s.bias[3]));let g=a*n,u=0,l=g,f=g*2,p=-1;i==="RGBA"?(u=0,l=g,f=g*2,p=g*3):i==="RGB"?(u=0,l=g,f=g*2):i==="RBG"&&(u=0,f=g,l=g*2);for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=(t.data[u++]-c[0])*o[0],D=(t.data[l++]-c[1])*o[1],b=(t.data[f++]-c[2])*o[2],E=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+b+","+E+")",r.fillRect(y,h,1,1)}if("toDataURL"in A)return A.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},uy=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),r;if(A!=null){let n,a,i;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[1],i=t.dims[3]):(n=t.dims[3],a=t.dims[2],i=t.dims[1]);let s=e!==void 0&&e.format!==void 0?e.format:"RGB",o=e?.norm,c,g;o===void 0||o.mean===void 0?c=[255,255,255,255]:typeof o.mean=="number"?c=[o.mean,o.mean,o.mean,o.mean]:(c=[o.mean[0],o.mean[1],o.mean[2],255],o.mean[3]!==void 0&&(c[3]=o.mean[3])),o===void 0||o.bias===void 0?g=[0,0,0,0]:typeof o.bias=="number"?g=[o.bias,o.bias,o.bias,o.bias]:(g=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(g[3]=o.bias[3]));let u=a*n;if(e!==void 0&&(e.format!==void 0&&i===4&&e.format!=="RGBA"||i===3&&e.format!=="RGB"&&e.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let l=4,f=0,p=1,h=2,y=3,w=0,D=u,b=u*2,E=-1;s==="RGBA"?(w=0,D=u,b=u*2,E=u*3):s==="RGB"?(w=0,D=u,b=u*2):s==="RBG"&&(w=0,b=u,D=u*2),r=A.createImageData(n,a);for(let x=0;x<a*n;f+=l,p+=l,h+=l,y+=l,x++)r.data[f]=(t.data[w++]-g[0])*c[0],r.data[p]=(t.data[D++]-g[1])*c[1],r.data[h]=(t.data[b++]-g[2])*c[2],r.data[y]=E===-1?255:(t.data[E++]-g[3])*c[3]}else throw new Error("Can not access image data");return r}}),qu,gy,ly,dy,fy,my,Ek=ze(()=>{"use strict";Of(),qu=(t,e)=>{if(t===void 0)throw new Error("Image buffer must be defined");if(e.height===void 0||e.width===void 0)throw new Error("Image height and width must be defined");if(e.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:A,width:r}=e,n=e.norm??{mean:255,bias:0},a,i;typeof n.mean=="number"?a=[n.mean,n.mean,n.mean,n.mean]:a=[n.mean[0],n.mean[1],n.mean[2],n.mean[3]??255],typeof n.bias=="number"?i=[n.bias,n.bias,n.bias,n.bias]:i=[n.bias[0],n.bias[1],n.bias[2],n.bias[3]??0];let s=e.format!==void 0?e.format:"RGBA",o=e.tensorFormat!==void 0&&e.tensorFormat!==void 0?e.tensorFormat:"RGB",c=A*r,g=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,l=0,f=1,p=2,h=3,y=0,w=c,D=c*2,b=-1;s==="RGB"&&(u=3,l=0,f=1,p=2,h=-1),o==="RGBA"?b=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let E=0;E<c;E++,l+=u,p+=u,f+=u,h+=u)g[y++]=(t[l]+i[0])/a[0],g[w++]=(t[f]+i[1])/a[1],g[D++]=(t[p]+i[2])/a[2],b!==-1&&h!==-1&&(g[b++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new nA("float32",g,[1,4,A,r]):new nA("float32",g,[1,3,A,r])},gy=async(t,e)=>{let A=typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement,r=typeof ImageData<"u"&&t instanceof ImageData,n=typeof ImageBitmap<"u"&&t instanceof ImageBitmap,a=typeof t=="string",i,s=e??{},o=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=g=>typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement||g instanceof OffscreenCanvas?g.getContext("2d"):null;if(A){let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(l=e.resizedHeight,f=e.resizedWidth),e!==void 0){if(s=e,e.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");s.tensorFormat="RGBA",s.height=l,s.width=f}else s.tensorFormat="RGBA",s.height=l,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,l).data}else throw new Error("Can not access image data")}else if(r){let g,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(g=e.resizedHeight,u=e.resizedWidth):(g=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=g,s.width=u,e!==void 0){let l=o();l.width=u,l.height=g;let f=c(l);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,g).data;else throw new Error("Can not access image data")}else i=t.data}else if(n){if(e===void 0)throw new Error("Please provide image config with format for Imagebitmap");let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;return u.drawImage(t,0,0,f,l),i=u.getImageData(0,0,f,l).data,s.height=l,s.width=f,qu(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((g,u)=>{let l=o(),f=c(l);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{l.width=p.width,l.height=p.height,f.drawImage(p,0,0,l.width,l.height);let h=f.getImageData(0,0,l.width,l.height);s.height=l.height,s.width=l.width,g(qu(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return qu(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},ly=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new nA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},dy=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new nA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},fy=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new nA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},my=(t,e,A)=>new nA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),Jn,yo,mf,hy,Tk=ze(()=>{"use strict";Jn=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),yo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),mf=!1,hy=()=>{if(!mf){mf=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(Jn.set("int64",BigInt64Array),yo.set(BigInt64Array,"int64")),e&&(Jn.set("uint64",BigUint64Array),yo.set(BigUint64Array,"uint64")),r?(Jn.set("float16",A),yo.set(A,"float16")):Jn.set("float16",Uint16Array)}}}),py,wy,kk=ze(()=>{"use strict";Of(),py=t=>{let e=1;for(let A=0;A<t.length;A++){let r=t[A];if(typeof r!="number"||!Number.isSafeInteger(r))throw new TypeError(`dims[${A}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${A}] must be a non-negative integer, got: ${r}`);e*=r}return e},wy=(t,e)=>{switch(t.location){case"cpu":return new nA(t.type,t.data,e);case"cpu-pinned":return new nA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new nA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new nA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new nA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),nA,Of=ze(()=>{"use strict";bk(),Ek(),Tk(),kk(),nA=class{constructor(t,e,A){hy();let r,n;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,n=t.dims,t.location){case"cpu-pinned":{let i=Jn.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,s;if(typeof t=="string")if(r=t,s=A,t==="string"){if(!Array.isArray(e))throw new TypeError("A string tensor's data must be a string array.");i=e}else{let o=Jn.get(t);if(o===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(e)){if(t==="float16"&&o===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${o.name} as data.`);t==="uint64"||t==="int64"?i=o.from(e,BigInt):i=o.from(e)}else if(e instanceof o)i=e;else if(e instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(e);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(t==="float16"&&e instanceof Uint16Array&&o!==Uint16Array)i=new globalThis.Float16Array(e.buffer,e.byteOffset,e.length);else throw new TypeError(`A ${r} tensor's data must be type of ${o}`)}else if(s=e,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let o=typeof t[0];if(o==="string")r="string",i=t;else if(o==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${o}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let o=yo.get(t.constructor);if(o===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=o,i=t}if(s===void 0)s=[i.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");n=s,this.cpuData=i,this.dataLocation="cpu"}let a=py(n);if(this.cpuData&&a!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(t,e){return gy(t,e)}static fromTexture(t,e){return ly(t,e)}static fromGpuBuffer(t,e){return dy(t,e)}static fromMLTensor(t,e){return fy(t,e)}static fromPinnedBuffer(t,e,A){return my(t,e,A)}toDataURL(t){return cy(this,t)}toImageData(t){return uy(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let e=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=e,t&&this.disposer&&(this.disposer(),this.disposer=void 0),e}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return wy(this,t)}}}),qA,By=ze(()=>{"use strict";Of(),qA=nA}),Zu,hf,Xn,ei,ti,Ai,Py=ze(()=>{"use strict";oy(),Zu=(t,e)=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeStamp(`${t}::ORT::${e}`)},hf=(t,e)=>{let A=new Error().stack?.split(/\r\n|\r|\n/g)||[],r=!1;for(let n=0;n<A.length;n++){if(r&&!A[n].includes("TRACE_FUNC")){let a=`FUNC_${t}::${A[n].trim().split(" ")[1]}`;e&&(a+=`::${e}`),Zu("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},Xn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||hf("BEGIN",t)},ei=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||hf("END",t)},ti=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.time(`ORT::${t}`)},Ai=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeEnd(`ORT::${t}`)}}),yy,Gk=ze(()=>{"use strict";ay(),By(),Py(),yy=class Iy{constructor(e){this.handler=e}async run(e,A,r){Xn(),ti("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof qA||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if(typeof A=="object"){if(A===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof qA)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(A.length===0)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(let c of A){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);n[c]=null}if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,g=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(g.indexOf(u)!==-1){let l=A[u];(l===null||l instanceof qA)&&(c=!0,i=!1,n[u]=l)}if(c){if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else a=A}}else if(typeof A<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof e[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(i)for(let c of this.outputNames)n[c]=null;let s=await this.handler.run(e,n,a),o={};for(let c in s)if(Object.hasOwnProperty.call(s,c)){let g=s[c];g instanceof qA?o[c]=g:o[c]=new qA(g.type,g.data,g.dims)}return Ai("InferenceSession.run"),ei(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){Xn(),ti("InferenceSession.create");let a,i={};if(typeof e=="string"){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){let g=e,u=0,l=e.byteLength;if(typeof A=="object"&&A!==null)i=A;else if(typeof A=="number"){if(u=A,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=g.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${g.byteLength}).`);if(l=e.byteLength-u,typeof r=="number"){if(l=r,!Number.isSafeInteger(l))throw new RangeError("'byteLength' must be an integer.");if(l<=0||u+l>g.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${g.byteLength-u}].`);if(typeof n=="object"&&n!==null)i=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof r<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof A<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(g,u,l)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await iy(i),c=await s.createInferenceSessionHandler(a,o);return Ai("InferenceSession.create"),ei(),new Iy(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),_f,xk=ze(()=>{"use strict";Gk(),_f=yy}),Sk=ze(()=>{"use strict"}),Yk=ze(()=>{"use strict"}),vk=ze(()=>{"use strict"}),Ok=ze(()=>{"use strict"}),Dy={};Xu(Dy,{InferenceSession:()=>_f,TRACE:()=>Zu,TRACE_EVENT_BEGIN:()=>ti,TRACE_EVENT_END:()=>Ai,TRACE_FUNC_BEGIN:()=>Xn,TRACE_FUNC_END:()=>ei,Tensor:()=>qA,env:()=>ot,registerBackend:()=>Io});var ri=ze(()=>{"use strict";Ik(),Ck(),xk(),By(),Sk(),Yk(),Py(),vk(),Ok()}),Mf=ze(()=>{"use strict"}),Cy={};Xu(Cy,{default:()=>by});var pf,wf,by,_k=ze(()=>{"use strict";Qy(),Sa(),Rf(),pf="ort-wasm-proxy-worker",wf=globalThis.self?.name===pf,wf&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":Qf(A.wasm).then(()=>{Uf(A).then(()=>{postMessage({type:e})},r=>{postMessage({type:e,err:r})})},r=>{postMessage({type:e,err:r})});break;case"init-ep":{let{epName:r,env:n}=A;qf(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=Ju(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Lf(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":jf(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Vf(r,n,a,i,new Array(i.length).fill(null),s).then(o=>{o.some(c=>c[3]!=="cpu")?postMessage({type:e,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:e,out:o},Wf([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Kf(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),by=wf?null:t=>new Worker(t??rA,{type:"module",name:pf})}),Ey={};Xu(Ey,{default:()=>Ty});async function HP(t={}){var e=t,A=!!globalThis.window,r=!!globalThis.WorkerGlobalScope,n=r&&self.name?.startsWith("em-pthread");e.mountExternalData=(I,T)=>{I.startsWith("./")&&(I=I.substring(2)),(e.Rb||(e.Rb=new Map)).set(I,T)},e.unmountExternalData=()=>{delete e.Rb},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;var a,i,s=(I,T)=>{throw T},o=UA.url,c="";if(A||r){try{c=new URL(".",o).href}catch{}r&&(i=I=>{var T=new XMLHttpRequest;return T.open("GET",I,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),a=async I=>{if(x(I))return new Promise((O,Y)=>{var Q=new XMLHttpRequest;Q.open("GET",I,!0),Q.responseType="arraybuffer",Q.onload=()=>{Q.status==200||Q.status==0&&Q.response?O(Q.response):Y(Q.status)},Q.onerror=Y,Q.send(null)});var T=await fetch(I,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)}}var g,u,l,f,p,h,y=console.log.bind(console),w=console.error.bind(console),D=y,b=w,E=!1,x=I=>I.startsWith("file://");function S(){wA.buffer!=M.buffer&&De()}if(n){let I=function(T){try{var O=T.data,Y=O.Pb;if(Y==="load"){let Q=[];self.onmessage=U=>Q.push(U),h=()=>{postMessage({Pb:"loaded"});for(let U of Q)I(U);self.onmessage=I};for(let U of O.Zb)e[U]&&!e[U].proxy||(e[U]=(...X)=>{postMessage({Pb:"callHandler",Yb:U,args:X})},U=="print"&&(D=e[U]),U=="printErr"&&(b=e[U]));wA=O.dc,De(),u=O.ec,tt(),oe()}else if(Y==="run"){(function(Q){var U=(S(),K)[Q+52>>>2>>>0];Q=(S(),K)[Q+56>>>2>>>0],$o(U,U-Q),Pe(U)})(O.Ob),cs(O.Ob,0,0,1,0,0),Ra(),Qt(O.Ob),R||=!0;try{KA(O.bc,O.Tb)}catch(Q){if(Q!="unwind")throw Q}}else O.target!=="setimmediate"&&(Y==="checkMailbox"?R&&Qr():Y&&(b(`worker: received unknown command ${Y}`),b(O)))}catch(Q){throw ki(),Q}};var k=I,R=!1;self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=I}var M,N,V,F,K,L,_,W,pe,Ae=!1;function De(){var I=wA.buffer;e.HEAP8=M=new Int8Array(I),V=new Int16Array(I),e.HEAPU8=N=new Uint8Array(I),new Uint16Array(I),e.HEAP32=F=new Int32Array(I),e.HEAPU32=K=new Uint32Array(I),L=new Float32Array(I),_=new Float64Array(I),W=new BigInt64Array(I),new BigUint64Array(I)}function ae(){Ae=!0,n?h():ZA.Ta()}function we(I){throw b(I="Aborted("+I+")"),E=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),p?.(I),I}function et(){return{a:{R:vg,f:pi,w:dg,e:za,k:Na,g:fg,S:mg,b:hg,G:pg,ta:Ro,j:Qo,L:Ua,Ja:qa,pa:ur,ra:La,Ka:ja,Ha:Va,Aa:Ka,Ga:Wa,Y:Za,qa:$a,na:Ja,Ia:Xa,oa:es,Pa:zo,Da:No,la:ts,ua:Fr,ia:BA,T:Ho,Ca:Qt,Ma:Bg,xa:Pg,ya:Ft,za:Wt,va:Di,wa:Uo,ja:qo,Ra:Ig,Oa:Dg,V:Cg,U:bg,Na:PA,F:Eg,La:Tg,ma:kg,u:yg,H:Gg,Q:zr,ka:Ei,aa:xg,Sa:Sg,Ea:jo,Fa:Vo,sa:Ne,I:wn,X:Ko,Ba:IA,W:as,_:xi,M:hs,$:DA,N:cA,v:Lg,c:Rg,m:_g,n:Og,q:sc,ba:$g,x:qg,o:nc,O:Jg,D:yn,J:Zg,ca:Wg,da:Kg,A:Ng,P:Vg,ea:jg,z:ms,E:Xg,d:Mg,r:rc,i:Ac,Z:Hr,l:Fg,p:ic,s:Qg,t:ac,y:Hg,fa:oc,B:wt,K:Ug,C:el,ga:zg,ha:Pn,h:Ti,a:wA,Qa:Yt}}}async function tt(){function I(Y,Q){return ZA=Y.exports,ZA=function(){var U=ZA,X=Ie=>()=>Ie()>>>0,ge=Ie=>Ye=>Ie(Ye)>>>0;return(U=Object.assign({},U)).sb=X(U.sb),U.ub=ge(U.ub),U.Ib=ge(U.Ib),U.Jb=X(U.Jb),U.Nb=ge(U.Nb),U}(),sr.push(ZA.vb),Y=ZA,e._OrtInit=Y.Ua,e._OrtGetLastError=Y.Va,e._OrtCreateSessionOptions=Y.Wa,e._OrtAppendExecutionProvider=Y.Xa,e._OrtAddFreeDimensionOverride=Y.Ya,e._OrtAddSessionConfigEntry=Y.Za,e._OrtReleaseSessionOptions=Y._a,e._OrtCreateSession=Y.$a,e._OrtReleaseSession=Y.ab,e._OrtGetInputOutputCount=Y.bb,e._OrtGetInputOutputMetadata=Y.cb,e._OrtFree=Y.db,e._OrtCreateTensor=Y.eb,e._OrtGetTensorData=Y.fb,e._OrtReleaseTensor=Y.gb,e._OrtCreateRunOptions=Y.hb,e._OrtAddRunConfigEntry=Y.ib,e._OrtReleaseRunOptions=Y.jb,e._OrtCreateBinding=Y.kb,e._OrtBindInput=Y.lb,e._OrtBindOutput=Y.mb,e._OrtClearBoundOutputs=Y.nb,e._OrtReleaseBinding=Y.ob,e._OrtRunWithBinding=Y.pb,e._OrtRun=Y.qb,e._OrtEndProfiling=Y.rb,Nr=Y.sb,ss=e._free=Y.tb,os=e._malloc=Y.ub,cs=Y.xb,ki=Y.yb,Wo=Y.zb,us=Y.Ab,gs=Y.Bb,Gi=Y.Cb,Zo=Y.Db,ke=Y.Eb,Bn=Y.Fb,$o=Y.Gb,Pe=Y.Hb,ls=Y.Ib,Ce=Y.Jb,Jo=Y.Kb,ds=Y.Lb,Xo=Y.Mb,ec=Y.Nb,fs=Y.wb,u=Q,ZA}var T,O=et();return e.instantiateWasm?new Promise(Y=>{e.instantiateWasm(O,(Q,U)=>{Y(I(Q,U))})}):n?I(new WebAssembly.Instance(u,et()),u):(pe??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.wasm",c):c+"ort-wasm-simd-threaded.wasm":new URL("ort-wasm-simd-threaded.wasm",UA.url).href,T=await async function(Y){var Q=pe;if(!g&&!x(Q))try{var U=fetch(Q,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(U,Y)}catch(X){b(`wasm streaming compile failed: ${X}`),b("falling back to ArrayBuffer instantiation")}return async function(X,ge){try{var Ie=await async function(Ye){if(!g)try{var Bt=await a(Ye);return new Uint8Array(Bt)}catch{}if(Ye==pe&&g)Ye=new Uint8Array(g);else{if(!i)throw"both async and sync fetching of the wasm failed";Ye=i(Ye)}return Ye}(X);return await WebAssembly.instantiate(Ie,ge)}catch(Ye){b(`failed to asynchronously prepare wasm: ${Ye}`),we(Ye)}}(Q,Y)}(O),I(T.instance,T.module))}class $e{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var pA=I=>{I.terminate(),I.onmessage=()=>{}},Je=[],qe=0,ut=null,Be=I=>{Rt.length==0&&(Qa(),VA(Rt[0]));var T=Rt.pop();if(!T)return 6;pt.push(T),Gt[I.Ob]=T,T.Ob=I.Ob;var O={Pb:"run",bc:I.ac,Tb:I.Tb,Ob:I.Ob};return T.postMessage(O,I.Xb),0},se=0,ue=(I,T,...O)=>{var Y,Q=16*O.length,U=Ce(),X=ls(Q),ge=X>>>3;for(Y of O)typeof Y=="bigint"?((S(),W)[ge++>>>0]=1n,(S(),W)[ge++>>>0]=Y):((S(),W)[ge++>>>0]=0n,(S(),_)[ge++>>>0]=Y);return I=Wo(I,0,Q,X,T),Pe(U),I};function Yt(I){if(n)return ue(0,1,I);if(l=I,!(0<se)){for(var T of pt)pA(T);for(T of Rt)pA(T);Rt=[],pt=[],Gt={},E=!0}s(0,new $e(I))}function Se(I){if(n)return ue(1,0,I);Ne(I)}var Ne=I=>{if(l=I,n)throw Se(I),"unwind";Yt(I)},Rt=[],pt=[],sr=[],Gt={},Rr=I=>{var T=I.Ob;delete Gt[T],Rt.push(I),pt.splice(pt.indexOf(I),1),I.Ob=0,us(T)};function Ra(){sr.forEach(I=>I())}var VA=I=>new Promise(T=>{I.onmessage=Q=>{var U=Q.data;if(Q=U.Pb,U.Sb&&U.Sb!=Nr()){var X=Gt[U.Sb];X?X.postMessage(U,U.Xb):b(`Internal error! Worker sent a message "${Q}" to target pthread ${U.Sb}, but that thread no longer exists!`)}else Q==="checkMailbox"?Qr():Q==="spawnThread"?Be(U):Q==="cleanupThread"?yi(()=>{Rr(Gt[U.cc])}):Q==="loaded"?(I.loaded=!0,T(I)):U.target==="setimmediate"?I.postMessage(U):Q==="uncaughtException"?I.onerror(U.error):Q==="callHandler"?e[U.Yb](...U.args):Q&&b(`worker sent an unknown command ${Q}`)},I.onerror=Q=>{throw b(`worker sent an error! ${Q.filename}:${Q.lineno}: ${Q.message}`),Q};var O,Y=[];for(O of[])e.propertyIsEnumerable(O)&&Y.push(O);I.postMessage({Pb:"load",Zb:Y,dc:wA,ec:u})});function Qa(){var I=new Worker((()=>{let T=URL;return UA.url>"file:"&&UA.url<"file;"?new T("ort.wasm.bundle.min.mjs",UA.url):new URL(UA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Rt.push(I)}var wA,Fa=[],Te=I=>{var T=Fa[I];return T||(Fa[I]=T=fs.get(I)),T},KA=(I,T)=>{se=0,I=Te(I)(T),0<se?l=I:gs(I)},hi=[],or=0;function pi(I){var T=new wi(I>>>=0);return(S(),M)[T.Qb+12>>>0]==0&&(cr(T,!0),or--),_o(T,!1),hi.push(T),ec(I)}var at=0,dg=()=>{ke(0,0);var I=hi.pop();Jo(I.Ub),at=0};function cr(I,T){T=T?1:0,(S(),M)[I.Qb+12>>>0]=T}function _o(I,T){T=T?1:0,(S(),M)[I.Qb+13>>>0]=T}class wi{constructor(T){this.Ub=T,this.Qb=T-24}}var Bi=I=>{var T=at;if(!T)return Bn(0),0;var O=new wi(T);(S(),K)[O.Qb+16>>>2>>>0]=T;var Y=(S(),K)[O.Qb+4>>>2>>>0];if(!Y)return Bn(0),T;for(var Q of I){if(Q===0||Q===Y)break;if(Xo(Q,Y,O.Qb+16))return Bn(Q),T}return Bn(Y),T};function za(){return Bi([])}function Na(I){return Bi([I>>>0])}function fg(I,T,O,Y){return Bi([I>>>0,T>>>0,O>>>0,Y>>>0])}var mg=()=>{var I=hi.pop();I||we("no exception to throw");var T=I.Ub;throw(S(),M)[I.Qb+13>>>0]==0&&(hi.push(I),_o(I,!0),cr(I,!1),or++),ds(T),at=T};function hg(I,T,O){var Y=new wi(I>>>=0);throw T>>>=0,O>>>=0,(S(),K)[Y.Qb+16>>>2>>>0]=0,(S(),K)[Y.Qb+4>>>2>>>0]=T,(S(),K)[Y.Qb+8>>>2>>>0]=O,ds(I),or++,at=I}var pg=()=>or;function Mo(I,T,O,Y){return n?ue(2,1,I,T,O,Y):Ro(I,T,O,Y)}function Ro(I,T,O,Y){if(I>>>=0,T>>>=0,O>>>=0,Y>>>=0,!globalThis.SharedArrayBuffer)return 6;var Q=[];return n&&Q.length===0?Mo(I,T,O,Y):(I={ac:O,Ob:I,Tb:Y,Xb:Q},n?(I.Pb="spawnThread",postMessage(I,Q),0):Be(I))}function Qo(I){throw at||=I>>>0,at}var Ha=globalThis.TextDecoder&&new TextDecoder,Fo=(I,T=0,O,Y)=>{var Q=T>>>=0;if(O=Q+O,Y)Y=O;else{for(;I[Q]&&!(Q>=O);)++Q;Y=Q}if(16<Y-T&&I.buffer&&Ha)return Ha.decode(I.buffer instanceof ArrayBuffer?I.subarray(T,Y):I.slice(T,Y));for(Q="";T<Y;)if(128&(O=I[T++])){var U=63&I[T++];if((224&O)==192)Q+=String.fromCharCode((31&O)<<6|U);else{var X=63&I[T++];65536>(O=(240&O)==224?(15&O)<<12|U<<6|X:(7&O)<<18|U<<12|X<<6|63&I[T++])?Q+=String.fromCharCode(O):(O-=65536,Q+=String.fromCharCode(55296|O>>10,56320|1023&O))}}else Q+=String.fromCharCode(O);return Q},Pi=(I,T,O)=>(I>>>=0)?Fo((S(),N),I,T,O):"";function Ua(I,T,O){return n?ue(3,1,I,T,O):0}function qa(I,T){if(n)return ue(4,1,I,T)}function ur(I,T){if(n)return ue(5,1,I,T)}function La(I,T,O){if(n)return ue(6,1,I,T,O)}function ja(I,T,O){return n?ue(7,1,I,T,O):0}function Va(I,T){if(n)return ue(8,1,I,T)}function Ka(I,T,O){if(n)return ue(9,1,I,T,O)}function Wa(I,T,O,Y){if(n)return ue(10,1,I,T,O,Y)}function Za(I,T,O,Y){if(n)return ue(11,1,I,T,O,Y)}function $a(I,T,O,Y){if(n)return ue(12,1,I,T,O,Y)}function Ja(I){if(n)return ue(13,1,I)}function Xa(I,T){if(n)return ue(14,1,I,T)}function es(I,T,O){if(n)return ue(15,1,I,T,O)}var zo=()=>we("");function No(I){cs(I>>>0,!r,1,!A,131072,!1),Ra()}var yi=I=>{if(!E)try{if(I(),!(0<se))try{n?Nr()&&gs(l):Ne(l)}catch(T){T instanceof $e||T=="unwind"||s(0,T)}}catch(T){T instanceof $e||T=="unwind"||s(0,T)}},wg=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Qt(I){I>>>=0,wg||(Atomics.waitAsync((S(),F),I>>>2,I).value.then(Qr),I+=128,Atomics.store((S(),F),I>>>2,1))}var Qr=()=>yi(()=>{var I=Nr();I&&(Qt(I),Zo())});function ts(I,T){(I>>>=0)==T>>>0?setTimeout(Qr):n?postMessage({Sb:I,Pb:"checkMailbox"}):(I=Gt[I])&&I.postMessage({Pb:"checkMailbox"})}var As=[];function Fr(I,T,O,Y,Q){for(T>>>=0,Q>>>=0,As.length=0,O=Q>>>3,Y=Q+Y>>>3;O<Y;){var U;U=(S(),W)[O++>>>0]?(S(),W)[O++>>>0]:(S(),_)[O++>>>0],As.push(U)}return(T?tc[T]:Yg[I])(...As)}var BA=()=>{se=0};function Ho(I){I>>>=0,n?postMessage({Pb:"cleanupThread",cc:I}):Rr(Gt[I])}function Bg(I){}function Pg(I,T){I=-9007199254740992>I||9007199254740992<I?NaN:Number(I),T>>>=0,I=new Date(1e3*I),(S(),F)[T>>>2>>>0]=I.getUTCSeconds(),(S(),F)[T+4>>>2>>>0]=I.getUTCMinutes(),(S(),F)[T+8>>>2>>>0]=I.getUTCHours(),(S(),F)[T+12>>>2>>>0]=I.getUTCDate(),(S(),F)[T+16>>>2>>>0]=I.getUTCMonth(),(S(),F)[T+20>>>2>>>0]=I.getUTCFullYear()-1900,(S(),F)[T+24>>>2>>>0]=I.getUTCDay(),I=(I.getTime()-Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(S(),F)[T+28>>>2>>>0]=I}var rs=I=>I%4==0&&(I%100!=0||I%400==0),WA=[0,31,60,91,121,152,182,213,244,274,305,335],Ii=[0,31,59,90,120,151,181,212,243,273,304,334];function Ft(I,T){I=-9007199254740992>I||9007199254740992<I?NaN:Number(I),T>>>=0,I=new Date(1e3*I),(S(),F)[T>>>2>>>0]=I.getSeconds(),(S(),F)[T+4>>>2>>>0]=I.getMinutes(),(S(),F)[T+8>>>2>>>0]=I.getHours(),(S(),F)[T+12>>>2>>>0]=I.getDate(),(S(),F)[T+16>>>2>>>0]=I.getMonth(),(S(),F)[T+20>>>2>>>0]=I.getFullYear()-1900,(S(),F)[T+24>>>2>>>0]=I.getDay();var O=(rs(I.getFullYear())?WA:Ii)[I.getMonth()]+I.getDate()-1|0;(S(),F)[T+28>>>2>>>0]=O,(S(),F)[T+36>>>2>>>0]=-60*I.getTimezoneOffset(),O=new Date(I.getFullYear(),6,1).getTimezoneOffset();var Y=new Date(I.getFullYear(),0,1).getTimezoneOffset();I=0|(O!=Y&&I.getTimezoneOffset()==Math.min(Y,O)),(S(),F)[T+32>>>2>>>0]=I}function Wt(I){I>>>=0;var T=new Date((S(),F)[I+20>>>2>>>0]+1900,(S(),F)[I+16>>>2>>>0],(S(),F)[I+12>>>2>>>0],(S(),F)[I+8>>>2>>>0],(S(),F)[I+4>>>2>>>0],(S(),F)[I>>>2>>>0],0),O=(S(),F)[I+32>>>2>>>0],Y=T.getTimezoneOffset(),Q=new Date(T.getFullYear(),6,1).getTimezoneOffset(),U=new Date(T.getFullYear(),0,1).getTimezoneOffset(),X=Math.min(U,Q);return 0>O?(S(),F)[I+32>>>2>>>0]=+(Q!=U&&X==Y):0<O!=(X==Y)&&(Q=Math.max(U,Q),T.setTime(T.getTime()+6e4*((0<O?X:Q)-Y))),(S(),F)[I+24>>>2>>>0]=T.getDay(),O=(rs(T.getFullYear())?WA:Ii)[T.getMonth()]+T.getDate()-1|0,(S(),F)[I+28>>>2>>>0]=O,(S(),F)[I>>>2>>>0]=T.getSeconds(),(S(),F)[I+4>>>2>>>0]=T.getMinutes(),(S(),F)[I+8>>>2>>>0]=T.getHours(),(S(),F)[I+12>>>2>>>0]=T.getDate(),(S(),F)[I+16>>>2>>>0]=T.getMonth(),(S(),F)[I+20>>>2>>>0]=T.getYear(),I=T.getTime(),BigInt(isNaN(I)?-1:I/1e3)}function Di(I,T,O,Y,Q,U,X){return n?ue(16,1,I,T,O,Y,Q,U,X):-52}function Uo(I,T,O,Y,Q,U){if(n)return ue(17,1,I,T,O,Y,Q,U)}var hn={},yg=()=>performance.timeOrigin+performance.now();function qo(I,T){if(n)return ue(18,1,I,T);if(hn[I]&&(clearTimeout(hn[I].id),delete hn[I]),!T)return 0;var O=setTimeout(()=>{delete hn[I],yi(()=>Gi(I,performance.timeOrigin+performance.now()))},T);return hn[I]={id:O,jc:T},0}var gr=(I,T,O)=>{var Y=(S(),N);if(T>>>=0,0<O){var Q=T;O=T+O-1;for(var U=0;U<I.length;++U){var X=I.codePointAt(U);if(127>=X){if(T>=O)break;Y[T++>>>0]=X}else if(2047>=X){if(T+1>=O)break;Y[T++>>>0]=192|X>>6,Y[T++>>>0]=128|63&X}else if(65535>=X){if(T+2>=O)break;Y[T++>>>0]=224|X>>12,Y[T++>>>0]=128|X>>6&63,Y[T++>>>0]=128|63&X}else{if(T+3>=O)break;Y[T++>>>0]=240|X>>18,Y[T++>>>0]=128|X>>12&63,Y[T++>>>0]=128|X>>6&63,Y[T++>>>0]=128|63&X,U++}}Y[T>>>0]=0,I=T-Q}else I=0;return I};function Ig(I,T,O,Y){I>>>=0,T>>>=0,O>>>=0,Y>>>=0;var Q=new Date().getFullYear(),U=new Date(Q,0,1).getTimezoneOffset();Q=new Date(Q,6,1).getTimezoneOffset();var X=Math.max(U,Q);(S(),K)[I>>>2>>>0]=60*X,(S(),F)[T>>>2>>>0]=+(U!=Q),I=(T=ge=>{var Ie=Math.abs(ge);return`UTC${0<=ge?"-":"+"}${String(Math.floor(Ie/60)).padStart(2,"0")}${String(Ie%60).padStart(2,"0")}`})(U),T=T(Q),Q<U?(gr(I,O,17),gr(T,Y,17)):(gr(I,Y,17),gr(T,O,17))}var PA=()=>Date.now(),yA=1;function Dg(I,T,O){if(O>>>=0,!(0<=I&&3>=I))return 28;if(I===0)I=Date.now();else{if(!yA)return 52;I=performance.timeOrigin+performance.now()}return I=Math.round(1e6*I),(S(),W)[O>>>3>>>0]=BigInt(I),0}var Ci=[];function Cg(I,T,O){I>>>=0,T>>>=0,O>>>=0,Ci.length=0;for(var Y;Y=(S(),N)[T++>>>0];){var Q=Y!=105;O+=(Q&=Y!=112)&&O%8?4:0,Ci.push(Y==112?(S(),K)[O>>>2>>>0]:Y==106?(S(),W)[O>>>3>>>0]:Y==105?(S(),F)[O>>>2>>>0]:(S(),_)[O>>>3>>>0]),O+=Q?8:4}return tc[I](...Ci)}var bg=()=>{};function Eg(I,T){return b(Pi(I>>>0,T>>>0))}var Tg=()=>{throw se+=1,"unwind"};function kg(){return 4294901760}var Gg=()=>navigator.hardwareConcurrency,lr={},ns=I=>{for(var T=0,O=0;O<I.length;++O){var Y=I.charCodeAt(O);127>=Y?T++:2047>=Y?T+=2:55296<=Y&&57343>=Y?(T+=4,++O):T+=3}return T},bi=I=>{var T;return(T=/\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(I))?+T[1]:(T=/:(\d+):\d+(?:\)|$)/.exec(I))?2147483648|+T[1]:0},yt=I=>{for(var T of I)(I=bi(T))&&(lr[I]=T)};function xg(){var I=Error().stack.toString().split(`
98
+ `),r=this.gl.createProgram();return this.gl.attachShader(r,e),this.gl.attachShader(r,A),this.gl.linkProgram(r),r}createShader(e,A){C(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),this.gl.getShaderParameter(r,this.gl.COMPILE_STATUS)||console.error("Shader compile error:",this.gl.getShaderInfoLog(r)),r}createVAO(){C(this.gl),C(this.colorProgram);let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let A=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,A,this.gl.STATIC_DRAW);let n=this.gl.getAttribLocation(this.colorProgram,"a_position"),a=this.gl.getAttribLocation(this.colorProgram,"a_texCoord");return this.gl.enableVertexAttribArray(n),this.gl.vertexAttribPointer(n,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,2,this.gl.FLOAT,!1,16,8),e}createTexture(){C(this.gl);let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}runColorProgram(e){return C(this.gl),C(this.canvas),this.gl.useProgram(this.colorProgram),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4),new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0,alpha:"discard"})}runAlphaProgram(e){C(this.gl),C(this.canvas),this.gl.useProgram(this.alphaProgram),this.gl.uniform2f(this.alphaResolutionLocation,this.canvas.width,this.canvas.height),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);let{width:A,height:r}=this.canvas,n=Math.ceil(A/2)*Math.ceil(r/2),a=A*r+n*2,i=Math.ceil(a/(A*4)),s=new Uint8Array(4*A*i);this.gl.readPixels(0,0,A,i,this.gl.RGBA,this.gl.UNSIGNED_BYTE,s),s=s.subarray(0,a),C(s[A*r]===128),C(s[s.length-1]===128);let o={format:"I420",codedWidth:A,codedHeight:r,timestamp:e.timestamp,duration:e.duration??void 0,transfer:[s.buffer]};return new VideoFrame(s,o)}updateCpu(e){if(!this.worker){let n=new Blob([`(${Lb.toString()})()`],{type:"application/javascript"}),a=URL.createObjectURL(n);this.worker=new Worker(a),URL.revokeObjectURL(a),this.worker.addEventListener("message",i=>{let s=i.data,o=this.pendingRequests.get(s.id);o&&(this.pendingRequests.delete(s.id),"error"in s?o.reject(new Error(s.error)):o.resolve({colorFrame:s.colorFrame,alphaFrame:s.alphaFrame}))}),this.worker.addEventListener("error",i=>{let s=new Error(i.message||"Color/alpha splitter worker error.");for(let o of this.pendingRequests.values())o.reject(s);this.pendingRequests.clear()})}let A=this.nextRequestId++,r=lt();return this.pendingRequests.set(A,r),this.worker.postMessage({id:A,sourceFrame:e},{transfer:[e]}),r.promise}close(){this.gl?.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null,this.canvas=null,this.worker?.terminate(),this.worker=null;let e=new Error("Color/alpha splitter closed.");for(let A of this.pendingRequests.values())A.reject(e);this.pendingRequests.clear()}};xu.forceCpu=!0;var Lb=()=>{let t=null,e=Promise.resolve();self.addEventListener("message",a=>{let{id:i,sourceFrame:s}=a.data;e=e.then(async()=>{try{let{colorFrame:o,alphaFrame:c}=await A(s);self.postMessage({id:i,colorFrame:o,alphaFrame:c},{transfer:[o,c]})}catch(o){self.postMessage({id:i,error:o.message})}finally{s.close()}})});let A=async a=>{let i=a.format;if(!i)throw new Error("CPU color/alpha splitting requires a known VideoFrame format.");let s=a.codedWidth,o=a.codedHeight,c=a.allocationSize();if((!t||t.byteLength!==c)&&(t=new Uint8Array(c)),await a.copyTo(t),i==="RGBA"||i==="BGRA")return r(t,s,o,i,a);if(i==="I420A"||i==="I420AP10"||i==="I420AP12"||i==="I422A"||i==="I422AP10"||i==="I422AP12"||i==="I444A"||i==="I444AP10"||i==="I444AP12")return n(t,s,o,i,a);throw new Error(`CPU color/alpha splitting does not support format '${i}'.`)},r=(a,i,s,o,c)=>{let g=i*s,u=Math.ceil(i/2),l=Math.ceil(s/2),f=g+u*l*2,p=new Uint8Array(f);for(let D=0,b=3;D<g;D++,b+=4)p[D]=a[b];p.fill(128,g);let h=new VideoFrame(a,{format:o==="RGBA"?"RGBX":"BGRX",codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0}),y={format:"I420",codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0,transfer:[p.buffer]},w=new VideoFrame(p,y);return{colorFrame:h,alphaFrame:w}},n=(a,i,s,o,c)=>{let g=o.includes("P10"),u=o.includes("P12"),l=g||u?2:1,f,p;o.startsWith("I420")?(f=Math.ceil(i/2),p=Math.ceil(s/2)):o.startsWith("I422")?(f=Math.ceil(i/2),p=s):(f=i,p=s);let h=i*s,y=f*p,w=h*l,D=y*l,b=h*l,E=w+D*2,x=o.replace("A",""),S=Math.ceil(i/2),k=Math.ceil(s/2),R=S*k,M=R*l,N=b+2*M,V=new Uint8Array(N),F=E;V.set(a.subarray(F,F+b),0);let K=b,L=g?512:u?2048:128;l===1?V.fill(L,K):new Uint16Array(V.buffer,K,2*R).fill(L);let _=g?"I420P10":u?"I420P12":"I420",W=new VideoFrame(a.subarray(0,E),{format:x,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0}),pe={format:_,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0,transfer:[V.buffer]},Ae=new VideoFrame(V,pe);return{colorFrame:W,alphaFrame:Ae}}};var no=class extends pa{constructor(e,A){if(!(typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement)&&!(typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas))throw new TypeError("canvas must be an HTMLCanvasElement or OffscreenCanvas.");AB(A),super(A.codec),this._encoder=new zd(this,A),this._canvas=e}add(e,A=0,r){if(!Number.isFinite(e)||e<0)throw new TypeError("timestamp must be a non-negative number.");if(!Number.isFinite(A)||A<0)throw new TypeError("duration must be a non-negative number.");let n=new QA(this._canvas,{timestamp:e,duration:A});return this._encoder.add(n,!0,r)}_flushAndClose(e){return this._encoder.flushAndClose(e)}};var wa=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!tr.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${tr.join(", ")}.`);this._codec=e}},io=class extends wa{constructor(e){super(e)}add(e,A){if(!(e instanceof Fe))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be added.");if(A!==void 0&&(!A||typeof A!="object"))throw new TypeError("meta, when provided, must be an object.");return this._ensureValidAdd(),this._connectedTrack.output._muxer.addEncodedAudioPacket(this._connectedTrack,e,A)}};var ao=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!jr.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${jr.join(", ")}.`);this._codec=e}};var Ba=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>_t.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>tr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>jr.includes(e))}_codecUnsupportedHint(e){return""}},Pa=class extends Ba{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","reserve","fragmented"].includes(e.fastStart))throw new TypeError("options.fastStart, when provided, must be false, 'in-memory', 'reserve', or 'fragmented'.");if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");if(e.metadataFormat!==void 0&&!["mdir","mdta","udta","auto"].includes(e.metadataFormat))throw new TypeError("options.metadataFormat, when provided, must be either 'auto', 'mdir', 'mdta', or 'udta'.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:4294967295},audio:{min:0,max:4294967295},subtitle:{min:0,max:4294967295},total:{min:1,max:4294967295}}}get supportsVideoRotationMetadata(){return!0}get supportsTimestampedMediaData(){return!0}_createMuxer(e){return new Gu(e,this)}},ya=class extends Pa{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[..._t,...mc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...jr]}_codecUnsupportedHint(e){return new ma().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},fa=class extends Pa{constructor(e){super(e)}get _name(){return"CMAF"}get fileExtension(){return".m4s"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[..._t,...mc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...jr]}},ma=class extends Pa{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[..._t,...tr]}_codecUnsupportedHint(e){return new ya().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var jb=["video","audio","subtitle"],Ia=class t{constructor(e,A,r,n,a){this.id=e,this.output=A,this.type=r,this.source=n,this.metadata=a}isVideoTrack(){return this.type==="video"}isAudioTrack(){return this.type==="audio"}isSubtitleTrack(){return this.type==="subtitle"}canBePairedWith(e){if(!(e instanceof t))throw new TypeError("other must be an OutputTrack.");if(this===e)return!1;let A=xl(this.metadata.group),r=xl(e.metadata.group);for(let n of A)if(this.type!==e.type&&r.some(s=>n===s)||r.some(s=>n._pairedGroups.has(s)))return!0;return!1}},Su=class extends Ia{constructor(e,A,r,n){super(e,A,"video",r,n)}},Yu=class extends Ia{constructor(e,A,r,n){super(e,A,"audio",r,n)}},vu=class extends Ia{constructor(e,A,r,n){super(e,A,"subtitle",r,n)}},Da=class t{constructor(){this._pairedGroups=new Set}pairWith(e){if(!(e instanceof t))throw new TypeError("other must be an OutputTrackGroup.");if(this===e)throw new TypeError("Cannot pair a group with itself.");this._pairedGroups.add(e),e._pairedGroups.add(this)}},Nd=t=>{if(!t||typeof t!="object")throw new TypeError("metadata must be an object.");if(t.languageCode!==void 0&&!Oi(t.languageCode))throw new TypeError("metadata.languageCode, when provided, must be a three-letter, ISO 639-2/T language code.");if(t.name!==void 0&&typeof t.name!="string")throw new TypeError("metadata.name, when provided, must be a string.");if(t.disposition!==void 0&&yp(t.disposition),t.maximumPacketCount!==void 0&&(!Number.isInteger(t.maximumPacketCount)||t.maximumPacketCount<0))throw new TypeError("metadata.maximumPacketCount, when provided, must be a non-negative integer.");if(t.group!==void 0&&!(t.group instanceof Da)&&(!Array.isArray(t.group)||t.group.some(e=>!(e instanceof Da))))throw new TypeError("metadata.group, when provided, must be an OutputTrackGroup instance or an array of OutputTrackGroup instances.")},so=class extends $A{get target(){let e="Output.target cannot be used when using PathedTarget with an async callback. Use the 'target' event instead.";if(this._rootTargetPromise)throw new TypeError(e);let A=this._getRootTarget();if(A instanceof Promise)throw new TypeError(e);return A}constructor(e){if(super(),this.state="pending",this.defaultTrackGroup=new Da,this._onFinalize=null,this._unfinalizedTargets=new Set,this._rootWriterPromise=null,this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new Nt,this._metadataTags={},this._rootTarget=null,this._rootTargetPromise=null,this._firstMediaStreamTimestamp=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof Ba))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof AA||e.target instanceof Ln))throw new TypeError("options.target must be a Target or a PathedTarget.");if(e.target instanceof AA&&this._rememberTarget(e.target),e.initTarget!==void 0&&!(e.initTarget instanceof AA)&&typeof e.initTarget!="function")throw new Error("options.initTarget, when provided, must be a Target or a function that returns or resolves to a Target.");if(e.onFinalize!==void 0&&typeof e.onFinalize!="function")throw new TypeError("options.onFinalize, when provided, must be a function.");this.format=e.format,this._target=e.target,this._onFinalize=e.onFinalize??null,this._initTarget=e.initTarget??null,this._initTarget instanceof AA&&this._rememberTarget(this._initTarget),this._muxer=e.format._createMuxer(this)}_getTargetValidated(e){C(this._target instanceof Ln);let A=this._target.getTarget(e),r=n=>{if(!(n instanceof AA))throw new TypeError("getTarget must return a Target.");return n};return A instanceof Promise?A.then(r):r(A)}async _getTarget(e){C(this._target instanceof Ln);let A=await this._getTargetValidated(e);return this._emit("target",{target:A,request:e,isRoot:e.isRoot}),this.state==="canceled"?await A._close():this._rememberTarget(A),A}_rememberTarget(e){this._unfinalizedTargets.add(e),e.on("finalized",()=>this._unfinalizedTargets.delete(e),{once:!0})}async _getInitTarget(){if(C(this._initTarget!==null),this._initTarget instanceof AA)return this._initTarget;let e=await this._initTarget();return this.state==="canceled"?await e._close():this._rememberTarget(e),e}_hasInitTarget(){return this._initTarget!==null}_getRootTarget(){if(this._rootTarget)return this._rootTarget;if(this._rootTargetPromise)return this._rootTargetPromise;if(this._target instanceof AA)return this._emit("target",{target:this._target,request:null,isRoot:!0}),this._rootTarget=this._target,this._target;let e={path:this._target.rootPath,isRoot:!0,mimeType:this.format.mimeType},A=this._getTargetValidated(e),r=n=>(this.state==="canceled"?n._close():this._rememberTarget(n),this._emit("target",{target:n,request:e,isRoot:!0}),this._rootTarget=n,n);return A instanceof Promise?this._rootTargetPromise=A.then(r):r(A)}_getRootWriter(e){return this._rootWriterPromise??=(async()=>{let A=await this._getRootTarget(),r=new qn(A,typeof e=="boolean"?e:e(A));return r.start(),r})()}addVideoTrack(e,A={}){if(!(e instanceof pa))throw new TypeError("source must be a VideoSource.");if(Nd(A),A.rotation!==void 0&&![0,90,180,270].includes(A.rotation))throw new TypeError(`Invalid video rotation: ${A.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&A.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(A.frameRate!==void 0&&(!Number.isFinite(A.frameRate)||A.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${A.frameRate}. Must be a positive number.`);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Su(this._tracks.length+1,this,e,r))}addAudioTrack(e,A={}){if(!(e instanceof wa))throw new TypeError("source must be an AudioSource.");Nd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Yu(this._tracks.length+1,this,e,r))}addSubtitleTrack(e,A={}){if(!(e instanceof ao))throw new TypeError("source must be a SubtitleSource.");Nd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new vu(this._tracks.length+1,this,e,r))}setMetadataTags(e){if(Pp(e),this.state!=="pending")throw new Error("Cannot set metadata tags after output has been started or canceled.");this._metadataTags=e}_addTrack(e){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(e.source._connectedTrack)throw new Error("Source is already used for a track.");let A=this.format.getSupportedTrackCounts(),r=this._tracks.reduce((i,s)=>i+(s.type===e.type?1:0),0),n=A[e.type].max;if(r===n)throw new Error(n===0?`${this.format._name} does not support ${e.type} tracks.`:`${this.format._name} does not support more than ${n} ${e.type} track${n===1?"":"s"}.`);let a=A.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);if(e.isVideoTrack()){let i=this.format.getSupportedVideoCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}else if(e.isAudioTrack()){let i=this.format.getSupportedAudioCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}else if(e.isSubtitleTrack()){let i=this.format.getSupportedSubtitleCodecs();if(i.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(e.source._codec));if(!i.includes(e.source._codec))throw new Error(`Codec '${e.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${i.map(s=>`'${s}'`).join(", ")}.`+this.format._codecUnsupportedHint(e.source._codec))}return this._tracks.push(e),e.source._connectedTrack=e,e}async start(){let e=this.format.getSupportedTrackCounts();for(let r of jb){let n=this._tracks.reduce((i,s)=>i+(s.type===r?1:0),0),a=e[r].min;if(n<a)throw new Error(a===e[r].max?`${this.format._name} requires exactly ${a} ${r} track${a===1?"":"s"}.`:`${this.format._name} requires at least ${a} ${r} track${a===1?"":"s"}.`)}let A=e.total.min;if(this._tracks.length<A)throw new Error(A===e.total.max?`${this.format._name} requires exactly ${A} track${A===1?"":"s"}.`:`${this.format._name} requires at least ${A} track${A===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started";let r=await this._mutex.acquire();try{await this._muxer.start();let n=this._tracks.map(a=>a.source._start());await Promise.all(n)}finally{r()}})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){this.state==="finalized"&&console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire();try{let A=this._tracks.map(r=>r.source._flushOrWaitForOngoingClose(!0));await Promise.all(A),await Promise.all([...this._unfinalizedTargets].map(r=>r._close())),this._unfinalizedTargets.clear()}finally{e()}})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire();try{let A=this._tracks.map(r=>r.source._flushOrWaitForOngoingClose(!1));if(await Promise.all(A),await this._muxer.finalize(),this._rootWriterPromise){let r=await this._rootWriterPromise;r.finalized||(await r.flush(),await r.finalize())}this._onFinalize&&await this._onFinalize(),this.state="finalized"}finally{e()}})()}};var TB=Symbol.for("mediabunny loaded");globalThis[TB]&&console.error(`[WARNING]
99
+ Mediabunny was loaded twice. This will likely cause Mediabunny not to work correctly. Check if multiple dependencies are importing different versions of Mediabunny, or if something is being bundled incorrectly.`);globalThis[TB]=!0;var Vb=.011764705882352941,Kb=.002,Wb=.99,Zb=255;function kB(t,e,A,r={}){let{x:n,y:a,width:i,height:s}=A,o=Number.isFinite(r.alphaGain)&&r.alphaGain>0?r.alphaGain:1;for(let c=0;c<s;c++)for(let g=0;g<i;g++){let u=((a+c)*t.width+(n+g))*4,l=c*i+g,f=e[l],p=Math.abs(f),h=Number.isFinite(r.logoValue)?r.logoValue:f<0?0:Zb;if(Math.max(0,p-Vb)*o<Kb)continue;let w=Math.min(p*o,Wb),D=1-w;for(let b=0;b<3;b++){let x=(t.data[u+b]-w*h)/D;t.data[u+b]=Math.max(0,Math.min(255,Math.round(x)))}}}var GB="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";var xB="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";var $b={"36-v2":36*36,48:48*48,96:96*96,"96-20260520":96*96},SB={"36-v2":"gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzR0FA+4eBgPoGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8AAAAALGwMD2ZmJg+mZiYPrGwMD2BgIA7wcBAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAOHg4D2lpKQ+o6KiPuHg4D0AAAAAwcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPNXUVD6lpKQ+paSkPtXUVD6BgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA78fBwPZWUlD6lpKQ+o6KiPpmYmD6xsLA9AAAAAIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7tbQ0PqWkpD6fnp4+nZycPqempj7V1FQ+gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8wcBAPIGAgDuJiIg9l5aWPqWkpD6dnJw+nZycPqOioj6bmpo+sbCwPQAAAADBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYCAO4GAADzt7Gw+qaioPp2cnD6dnJw+nZycPp2cnD6npqY+3dxcPoGAgDuBgAA8gYCAO4GAADyBgAA8gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAJGQED6hoKA+oaCgPpuamj6dnJw+nZycPpuamj6hoKA+oaCgPpmYGD4AAAAAwcBAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDwAAAAA0dDQPZ2cnD6hoKA+m5qaPp2cnD6dnJw+n56ePp+enj6bmpo+o6KiPp2cnD7Z2Ng9AAAAAIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8wcBAPAAAAAChoKA9j46OPqempj6fnp4+nZycPp2cnD6dnJw+nZycPp+enj6dnJw+m5qaPqWkpD6Pjo4+mZiYPQAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8AAAAAJmYmD2NjIw+p6amPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6lpKQ+i4qKPpmYmD0AAAAAgYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADyBgIA72djYPY+Ojj6npqY+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+p6amPo+Ojj7R0NA9gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8AAAAAIGAADyhoCA+nZycPqWkpD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+m5qaPp+enj6dnJw+nZycPqWkpD6dnJw+kZAQPoGAADwAAAAAgYAAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYAAPMHAQDyBgAA8gYAAPAAAAACBgIA7sbCwPeHgYD6fnp4+o6KiPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp+enj6dnJw+nZycPp2cnD6bmpo+nZycPp+enj6dnJw+nZycPp2cnD6joqI+oaCgPu3sbD6JiIg9gYCAO4GAgDuBgAA8wcBAPIGAgDyBgAA8gYAAPAAAAAAAAAAAgYCAO6moqD3V1FQ+mZiYPqempj6fnp4+m5qaPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+oaCgPqmoqD6XlpY+tbQ0PvHwcD2BgAA8AAAAAAAAAACBgAA8gYAAPLGwMD3h4OA90dBQPpmYmD6npqY+o6KiPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6dnJw+m5qaPpuamj6lpKQ+o6KiPpWUlD7R0FA+2djYPaGgID2BgIA73dxcPpmYmD6joqI+paSkPqOioj6dnJw+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp2cnD6bmpo+nZycPp+enj6bmpo+nZycPqOioj6joqI+o6KiPpmYmD7NzEw+0dBQPpmYmD6lpKQ+paSkPqWkpD6fnp4+m5qaPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPqGgoD6lpKQ+o6KiPpmYmD7d3Fw+gYCAO6GgID3h4OA90dBQPpWUlD6lpKQ+paSkPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+m5qaPp2cnD6joqI+paSkPpmYmD7R0FA+4eDgPaGgID2BgAA8gYAAPAAAAAAAAAAAgYAAPPHwcD21tDQ+l5aWPqmoqD6hoKA+m5qaPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+m5qaPp2cnD6bmpo+oaCgPqempj6ZmJg+1dRUPrGwsD2BgAA8AAAAAAAAAACBgAA8gYAAPMHAQDzBwEA8gYAAPAAAAACBgIA7iYiIPe3sbD6hoKA+o6KiPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6joqI+oaCgPuHgYD6pqKg9gYCAOwAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8AAAAAMHAQDyRkBA+m5qaPqempj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPqOioj6dnJw+nZwcPoGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDuBgIA72djYPZGQkD6npqY+nZycPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6bmpo+nZycPp2cnD6dnJw+p6amPpGQkD7R0NA9AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8AAAAAKGgoD2Pjo4+p6amPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6npqY+jYyMPpmYmD0AAAAAgYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPAAAAACZmJg9kZCQPqWkpD6dnJw+nZycPp2cnD6dnJw+n56ePp2cnD6dnJw+m5qaPqWkpD6Pjo4+mZiYPQAAAADBwEA8gYAAPIGAgDuBgAA8wcBAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDwAAAAA0dDQPZ2cnD6joqI+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+oaCgPp2cnD7R0NA9AAAAAMHAQDyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYCAO52cHD6hoKA+n56ePp2cnD6dnJw+nZycPpuamj6hoKA+o6KiPpWUFD4AAAAAwcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAADzBwEA8gYCAO4GAADzl5GQ+paSkPp2cnD6dnJw+nZycPpuamj6npqY+7exsPoGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPAAAAACpqKg9m5qaPqWkpD6bmpo+nZycPqWkpD6XlpY+iYiIPQAAAACBgAA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA71dRUPqempj6dnJw+n56ePqOioj61tDQ+gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7sbCwPZuamj6joqI+o6KiPpWUlD7x8HA9AAAAAMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPNXUVD6lpKQ+paSkPtXUVD6BgAA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8AAAAAOHg4D2lpKQ+paSkPuHg4D0AAAAAwcBAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYCAO7GwMD2ZmJg+mZiYPqGgID2BgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzZ2Fg+zcxMPoGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7",48:"gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAADj4uI+4eDgPoGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDvBwEA8gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4WEBD6BgAA/gYAAP4GAAD4AAAAAgYAAPAAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8wcBAPIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAADyBgAA8gYCAOwAAAAAAAAAAgYAAPIGAgDsAAAAAAAAAAIGAgDsAAAAAgYCAO5GQkD6BgAA/gYAAP5GQkD4AAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgAA8wcBAPMHAQDyBgIA7gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADwAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAgYCAO+Hg4D6BgAA/gYAAP/Hw8D4AAAAAgYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8wcBAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADyBgAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYAAPoGAAD+BgAA/gYAAP4GAAD+BgAA+AAAAAAAAAACBgIA7gYAAPAAAAACBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAADBwEA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAADwAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7oaCgPoGAAD+BgAA/gYAAP4GAAD/BwMA+AAAAAAAAAACBgIA7AAAAAIGAgDuBgAA8gYAAPAAAAACBgIA7gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAwcBAPIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYAAPIGAADwAAAAAAAAAAIGAADyJiIg9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPQAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADwAAAAAgYCAO4GAADyBgIA7gYCAOwAAAAAAAAAAgYCAO8HAQDyBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/o6KiPoGAgDuBgAA8AAAAAIGAgDuBgIA7gYCAO8HAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPAAAAAAAAAAAgYCAO4GAADyBgIA7gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYCAO4GAADyBgAA8gYCAO4mIiD2BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD6BgAA8gYCAO4GAADwAAAAAgYCAO4GAADyBgIA7wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAIGAADyBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgIA7gYCAO+Hg4D6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDsAAAAAAAAAAIGAgDuBgAA8AAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAgYAAPIGAgDuBgIA7gYAAPAAAAACBgIA7gYCAPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4GA+AAAAAAAAAACBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO8HAQDwAAAAAgYCAO4GAADwAAAAAgYAAPAAAAACBgAA8gYCAOwAAAACBgIA9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/x8PA+wcDAPYGAgDuBgAA8wcBAPIGAADyBgAA8gYAAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAMHAQDyBgAA8gYCAO4GAgD3h4OA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/4eDgPoGAAD2BgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAOwAAAACBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO9PS0j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYAAPIGAgDuBgIA7o6KiPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+hoKA+gYCAOwAAAACBgIA7gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPgAAAACBgIA7gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAIGAADwAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYAAPcHAwD6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP9HQ0D6BgIA9gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7wcBAPIGAgDzBwEA8gYAAPAAAAACBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7AAAAAAAAAADBwMA94eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+iYiIPYGAgDyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAOHgYD7x8PA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4WEhD6BgIA7gYCAO4GAADzBwEA8gYAAPMHAQDzBwEA8gYCAO4GAgDsAAAAAgYAAPIGAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAgDuBgAA+wcDAPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+gYCAPYGAADzBwEA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAPaOioj6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP6GgoD6BgIA9gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4WEBD7BwMA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAAD6BgIA7gYAAPIGAgDuBgIA7AAAAAIGAAD6RkJA+8fDwPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+kZCQPoGAAD6BgIA84eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/j4uI+4eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+gYCAO4GAAD6RkJA+4eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/x8PA+kZCQPoGAAD6BgIA7gYCAO8HAQDwAAAAAgYCAO4GAAD6hoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/wcDAPoGAAD6BgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAAAAAACBgAA8gYCAPaOioj6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP6Oioj6JiIg9gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADyBgIA7gYCAOwAAAAAAAAAAgYCAO4GAADyBgIA94eDgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/BwMA+gYAAPoGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/8/LyPuXkZD6BgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAgYAAPAAAAACBgIA94+LiPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD/h4OA+wcDAPYGAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAPdHQ0D6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP8HAwD6BgAA9gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDuhoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/oaCgPsHAQDzBwEA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgAA8gYAAPIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7gYCAO4GAADyBgIA7oaCgPoGAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+hoKA+gYCAO4GAgDyBgIA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO8PCwj6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP9HQ0D6BgAA8gYAAPMHAQDzBwEA8gYCAOwAAAACBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgIA7gYCAO8HAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAPMHAQDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAgDuBgIA7gYCAO6GgID3j4uI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/4eDgPoGAgD2BgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYCAPMHAQDwAAAAAgYCAO8HAQDzBwEA8gYAAPIGAADyBgAA8gYCAO4GAADyBgAA8AAAAAAAAAACBgAA8wcBAPIGAADzBwEA8gYAAPIGAADwAAAAAgYCAO4GAADzJyMg98fDwPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPQAAAACBgAA8gYAAPAAAAAAAAAAAgYCAO4GAgDuBgAA8wcBAPIGAADyBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA7gYCAO4GAADyBgAA84eBgPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgIA+gYCAO4GAgDvBwEA8gYAAPIGAgDsAAAAAgYCAO4GAgDvBwEA8wcBAPIGAgDuBgAA8gYCAOwAAAAAAAAAAAAAAAIGAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8gYAAPIGAADyBgAA8AAAAAMHAwD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP+Hg4D6BgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgAA8gYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPMHAQDyBgAA8gYCAO4GAAD6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAgD2BgIA7gYCAOwAAAACBgAA8gYAAPIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYCAOwAAAACBgAA8gYAAPIGAADyBgIA7gYCAOwAAAAChoKA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPAAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPAAAAACBgIA7gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA9gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYCAPYGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAw8LCPoKBAT+CgQE/gYAAP4GAAD+hoKA+gYCAO4GAADyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYAAPIGAADyBgIA7AAAAAIGAgDuBgIA7gYAAPMHAQDyBgIA7gYAAPoKBAT+BgAA/gYAAP4GAAD+BgAA+gYCAO4GAADyBgAA8AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPAAAAAAAAAAAgYAAPIGAADyBgIA7gYCAO/Py8j6BgAA/gYAAP+Hg4D6BgIA7gYCAO4GAADzBwEA8gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO5OSkj6BgAA/gYAAP5OSkj6BgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAADyBgIA7AAAAAIGAgDvBwEA8wcBAPIGAgDsAAAAAgYCAO4GAgDuBgAA8gYAAPIGAAD6BgAA/gYAAP4WEBD6BgIA7gYCAO4GAADyBgAA8gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAOwAAAADBwEA8gYAAPIGAgDvh4OA+4eDgPoGAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7AAAAAIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7",96:"gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDwAAAAAwcBAPMHAQDyBgIA8wcBAPIGAADyhoKA8gYAAPIGAADyBgAA8AAAAAIGAADyBgIA7gYCAO4GAgDuBgIA7wcBAPIGAADzBwEA8gYCAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPOXkZD7z8vI+4+LiPu3sbD6BgIA7wcBAPAAAAACBgAA8gYCAO4GAADyBgIA8gYCAPIGAADyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYCAPIGAADzBwEA8gYCAO8HAQDyBgAA8gYAAPIGAgDuBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8oaCgPIGAgDyBgIA8wcBAPIGAgDyBgAA8wcBAPIGAgDvBwEA8wcBAPIGAgDyBgAA8gYAAPMHAQDzBwEA8gYCAO4GAADyBgIA8wcBAPIGAADyBgAA8gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADzBwEA8wcBAPIGAgDvBwEA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAACBgAA8gYCAPYGAAD+BgAA/goEBP4KBAT+RkBA9gYAAPAAAAACBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgIA7gYAAPAAAAACBgAA8AAAAAIGAgDuBgIA7gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcDAPKGgoDyBgIA8oaCgPIGAgDyhoKA8gYCAOwAAAACBgAA8gYCAO4GAADyBgIA8wcBAPIGAADwAAAAAgYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAADyBgAA8gYAAPMHAQDzBwEA8gYCAPMHAQDzBwEA8AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAADyBgAA8paQkPoGAAD+BgAA/goEBP4GAAD/FxEQ+AAAAAAAAAACBgIA7gYAAPIGAgDsAAAAAAAAAAIGAgDuBgIA7gYAAPKGgoDyBgIA8wcBAPIGAgDyBgIA8gYAAPAAAAACBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgAA8wcBAPKGgoDzBwEA8gYAAPIGAADyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgAA8gYCAPMHAQDyBgIA8gYCAPMHAQDzBwEA8AAAAAIGAgDuBgIA7gYAAPIGAADyhoKA8gYAAPMHAQDwAAAAAgYCAO4GAADyBgAA8AAAAAAAAAAAAAAAAgYAAPIGAADyBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYCAPMHAQDyBgAA8gYCAPIGAgDuBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYAAPIGAADzBwEA8paSkPoGAAD+BgAA/goEBP4KBAT+hoKA+gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDuBgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgIA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgIA8oaCgPIGAgDyBgAA8gYCAO8HAQDzBwEA8oaCgPIGAgDzBwEA8gYCAPMHAQDyhoKA8gYCAPMHAQDzBwEA8AAAAAAAAAACBgIA7wcBAPKGgoDyBgIA8gYCAPMHAQDyBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAADBwEA8gYCAO8HAQDzBwEA8AAAAAIGAADyBgIA7gYCAOwAAAACBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgAA8gYCAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgIA8wcBAPAAAAACBgIA7AAAAAIGAgDvBwEA85eTkPoGAAD+BgAA/gYAAP4GAAD/z8vI+gYAAPMHAQDyBgIA7gYAAPMHAQDyBgIA7gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgIA7gYCAO8HAQDyBgIA8oaCgPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAgDsAAAAAwcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYAAPKGgoDyBgIA8oaCgPIGAgDzBwEA8gYCAOwAAAADBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAgDyBgIA8AAAAAIGAgDuBgIA7gYCAO4GAADzBwEA8gYAAPIGAgDsAAAAAgYAAPIGAADyBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8gYCAPIGAgDyBgIA8gYCAPIGAgDuBgIA8oaCgPIGAADyBgIA8AAAAAIGAADyBgIA8gYAAPIGAADyFhAQ+goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/iYgIPoGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPKGgoDzBwEA8gYAAPMHAQDyBgIA8gYCAPIGAADyBgIA7wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAO4GAADyBgIA7gYCAO4GAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPAAAAACBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDvBwEA8gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADwAAAAAgYCAO4GAADzBwEA8gYAAPIGAADyBgAA8wcBAPIGAADyBgIA7gYCAPIGAADyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADylpKQ+goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/k5KSPoGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAADyBgIA7gYAAPIGAADzBwEA8wcBAPKGgoDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwMA8oaCgPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAO8HAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgIA7gYAAPMHAQDyBgIA8gYCAO4GAgDsAAAAAgYAAPMHAQDzBwEA8wcBAPIGAgDuBgAA8wcBAPAAAAACBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDvBwEA8gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDvj4uI+goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/8/LyPoGAADyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8gYCAO4GAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDzBwEA8wcBAPIGAgDyBgAA8gYCAO8HAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDzBwEA8oaCgPKGgoDyBgIA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAPMHAQDyBgIA7wcBAPIGAADzBwEA8gYAAPIGAADyBgIA8gYCAO4GAgDuBgAA8wcBAPIGAgDyBgIA7gYAAPIGAADyBgAA8gYAAPAAAAACBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPKmoKD6BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4WEBD7BwEA8gYAAPIGAgDvBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADyBgIA8gYAAPIGAgDsAAAAAgYCAO4GAgDuBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgIA8oaCgPIGAgDyBgAA8gYAAPIGAgDyBgIA8oaCgPIGAgDyBgIA8gYCAO8HAQDyBgIA7gYCAOwAAAACBgIA7wcBAPIGAADyBgIA7wcBAPIGAgDuBgAA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8wcBAPAAAAACBgIA7AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDuBgIA7AAAAAIGAgDuBgIA7gYCAO4GAADzBwEA8wcBAPLOysj6CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP8PCwj6BgAA8AAAAAIGAgDvBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPMHAQDyBgAA8gYCAO4GAgDsAAAAAgYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYCAPAAAAACBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDyhoKA8gYCAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcDAPIGAgDyBgIA8wcBAPIGAADyBgIA8wcBAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA7gYCAO4GAgDuBgIA7gYCAO8HAQDyBgAA8gYCAPIGAADyBgAA8gYCAO4GAgDzBwEA8wcBAPIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAADyBgIA8iYiIPYGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+JiIg9gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO8HAQDyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPIGAgDsAAAAAgYAAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAADzBwEA8oaCgPoGAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+FhIQ+gYAAPIGAADyBgIA7AAAAAIGAADyBgIA8wcBAPIGAgDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAADyBgIA7gYCAO8HAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPIGAgDuBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA7wcBAPIGAgDvBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyhoKA8gYCAO4GAgDuBgIA7gYAAPAAAAACBgIA7gYAAPIGAADyBgAA8AAAAAAAAAACBgIA7gYAAPMHAQDwAAAAAgYAAPIGAgDuBgAA8gYCAOwAAAADBwEA8wcBAPMHAQDwAAAAAAAAAAIGAgDvBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADwAAAAAgYCAO4GAADyBgIA7gYAAPAAAAAAAAAAAgYAAPAAAAACJiIg9goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD/z8vI+gYAAPYGAgDuBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAOwAAAADBwEA8gYAAPIGAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPIGAADyBgIA7gYAAPIGAgDuBgIA8wcBAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYCAPMHAwDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAADwAAAAAgYAAPIGAgDsAAAAAgYAAPMHAQDyBgAA8gYCAOwAAAACBgAA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAO4GAADyBgAA8wcBAPAAAAAAAAAAAgYCAO4GAADzBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDyBgAA8gYCAO4GAgDuBgIA7AAAAAIGAADyBgIA7gYAAPMHAQDyDgoI+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/g4KCPoGAADyBgAA8gYAAPIGAgDuBgIA8gYCAPIGAgDyBgAA8gYCAO4GAgDuBgAA8wcBAPIGAgDuBgIA7gYAAPIGAgDzBwEA8gYCAPMHAQDyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgIA8gYCAPKGgoDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAgDuBgIA7gYCAO8HAQDyBgIA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8gYCAO4GAADyBgAA8gYAAPIGAgDvBwEA8gYCAPAAAAAAAAAAAgYCAO4GAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgIA8gYCAPJGQkD3j4uI+goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/8/LyPpGQED2BgAA8oaCgPIGAgDyBgIA8wcBAPIGAADyBgIA8gYCAPIGAADzBwEA8gYAAPIGAgDyBgIA7wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8gYCAPIGAgDyhoKA8gYCAPKGgoDzBwMA8gYCAPIGAADyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPMHAQDyhoKA8wcBAPIGAgDuBgAA8gYCAO4GAgDsAAAAAgYAAPIGAgDuBgAA8gYCAO8HAQDzBwEA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAADzBwEA8gYCAO4GAADyBgIA8gYCAPMHAQDyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAADzBwEA8gYCAPKWkpD6CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+BgAA/goEBP4KBAT+CgQE/goEBP4WEhD7BwEA8gYCAO8HAQDyBgIA8gYAAPMHAQDzBwMA8wcBAPIGAADyBgIA7gYCAO4GAADzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDyBgIA8oaCgPMHAwDzBwEA8gYCAPIGAADyhoKA8wcBAPIGAgDzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8oaCgPMHAQDyBgAA8gYAAPAAAAACBgIA7gYAAPIGAgDuBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAgDvBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDvBwEA8gYCAPKGgoDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAADzBwEA8kZCQPYKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP/Py8j6JiIg9wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAO4GAgDyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7gYAAPIGAADzBwEA8gYCAPIGAADyBgIA7wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA7gYAAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPIGAgDyBgAA8gYAAPIGAgDuBgIA7gYAAPIGAgDuBgIA8gYCAPIGAgDyBgIA8AAAAAIGAADzBwEA8wcBAPIGAADzBwEA8gYCAO4GAADyBgIA7gYCAO4GAADzBwEA8gYCAOwAAAACBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8paSkPoKBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+zsrI+gYCAPIGAADyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYCAO8HAQDyBgIA8gYCAOwAAAADBwEA8gYCAO4GAgDuBgAA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgIA8gYAAPIGAgDuBgIA7AAAAAIGAADzBwEA8oaCgPIGAgDzBwEA8gYCAO8HAQDyBgIA7gYCAO4GAADzBwEA8gYCAPIGAADyBgIA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8gYCAPKGgoDyBgIA8gYCAPMHAQDylpCQ+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4SDAz+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/iYgIPoGAgDuBgIA7gYAAPIGAgDyBgAA8gYCAO4GAADyBgAA8AAAAAIGAADyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgAA8gYAAPIGAgDzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8gYAAPIGAgDyBgIA8gYAAPIGAgDzBwEA8gYAAPMHAQDyhoKA8oaCgPIGAgDyBgAA8gYCAOwAAAADBwEA8gYCAPIGAgDzBwEA8gYCAO4GAADyBgAA8gYCAO4GAADzBwEA8gYAAPIGAADyBgIA7gYCAPIGAADyBgAA8AAAAAIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzj4uI+goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/g4ICP4GAAD+CgQE/gYAAP4GAAD+CgQE/4+LiPpGQED3BwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYAAPIGAgDvBwEA8gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8wcBAPMHAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDvBwEA8gYCAPIWEhD6BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP5OSkj6BgAA8wcBAPMHAQDyBgAA8gYCAPIGAgDuBgIA7gYCAO4GAgDvBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAO4GAgDyBgIA8gYCAPIGAADyBgIA8oaCgPIGAgDyBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADyBgAA8oaCgPIGAADyBgAA8gYCAPIGAgDyBgAA8wcBAPIGAADzBwEA8gYCAO4GAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPIGAgDzBwEA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8AAAAAMHAQDyBgIA82djYPYKBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+DggI/goEBP4GAAD+FhAQ+wcBAPMHAQDyBgIA8gYCAPIGAADyBgIA7wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPMHAQDyBgAA8gYCAPMHAQDzBwEA8wcBAPMHAQDyhoKA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgAA8gYAAPIGAgDyBgIA8gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDsAAAAAAAAAAAAAAAChoKA8gYCAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPMHAQDyBgAA8gYCAPMHAQDyBgIA7gYCAO4GAADzBwEA8oaCgPMHAQDwAAAAAgYCAO4GAADyJiIg95eTkPoKBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD/j4uI+sbAwPYGAgDyhoKA8oaCgPMHAQDyBgAA8AAAAAIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8oaCgPIGAADzBwEA8gYAAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyBgIA7wcBAPMHAQDwAAAAAAAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAIGAgDvBwEA8gYCAPIGAADyBgIA7gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyjoqI+gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/s7KyPsHAQDzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAPIGAADyBgIA8wcBAPKGgoDyBgIA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgAA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgIA8wcBAPIGAADyBgIA7gYAAPMHAQDyBgAA8wcBAPMHAQDwAAAAAAAAAAAAAAACBgIA7wcBAPMHAQDyBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7gYAAPAAAAACBgAA8wcBAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPMHAQDyBgIA7gYAAPIGAADyBgAA8wcBAPIGAgDuBgIA8wcBAPIWEhD6CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP+XkZD6BgAA8gYCAO4GAgDyBgIA8gYCAO8HAQDyBgIA8gYAAPMHAQDyBgIA7gYCAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyhoKA8gYAAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADwAAAAAgYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7gYAAPIGAADzBwEA8gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAwcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8gYCAPIGAgDyBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8jYwMPoKBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+CgQE/gYAAP4GAAD+BgAA+gYCAO4GAgDyBgIA8gYAAPIGAADyBgIA8gYCAO4GAADyhoKA8wcBAPIGAgDyBgIA8gYCAO4GAgDyBgIA8gYCAPIGAgDyBgAA8oaCgPIGAgDzBwEA8gYCAPKGgoDzBwEA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgIA7wcBAPIGAgDuBgAA8gYCAO4GAADyBgIA7gYCAO4GAADyBgAA8gYAAPMHAQDyBgIA8wcBAPIGAgDsAAAAAgYCAO4GAgDuBgAA8gYCAO4GAADzBwEA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgAA8wcBAPIGAADzBwEA8gYAAPIGAgDsAAAAAwcBAPIGAADyJiIg98/LyPoKBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD/x8PA+kZCQPYGAADyBgIA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYCAPIGAgDyBgAA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAO8HAQDzBwEA8gYAAPIGAgDzBwEA8wcBAPKGgoDzBwEA8gYAAPIGAADwAAAAAgYCAO4GAADyBgAA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAgDvBwEA8wcBAPMHAQDwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgD3h4OA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/4+LiPomIiD3BwEA8gYCAO4GAgDuBgIA8wcBAPIGAADyBgAA8gYCAO8HAQDyBgIA7gYAAPMHAQDyBgIA8oaCgPMHAQDzBwEA8gYCAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgIA8gYAAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDzBwEA8wcBAPIGAADwAAAAAgYCAO8HAQDyBgIA7wcBAPIGAgDsAAAAAgYCAO4GAADzBwEA8kZCQPePi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP+Pi4j6BgIA9gYCAO4GAgDuhoKA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPMHAQDyhoKA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPIGAgDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAADyBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDwAAAAAgYAAPIGAADyBgAA8gYCAO4GAADyBgIA7gYAAPIGAADyxsDA94+LiPoKBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+DggI/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT/T0tI+gYAAPcHAQDyBgAA8gYCAPIGAgDsAAAAAgYCAO8HAQDyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDuBgIA7gYAAPMHAQDyBgAA8gYCAPMHAQDyBgAA8gYCAO8HAQDwAAAAAgYCAO4GAADyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYCAOwAAAACBgAA8gYCAO4GAgDuBgAA8gYAAPJmYmD3V1NQ+gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/g4ICP4GAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+CgQE/4+LiPqGgoD2BgIA8wcDAPIGAADyBgAA8gYCAO4GAADzBwEA8gYCAPMHAQDyBgIA7gYCAPIGAgDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDyhoKA8oaCgPMHAQDzBwEA8gYCAPIGAgDuBgAA8wcBAPMHAQDyBgAA8gYCAO8HAQDzBwEA8gYAAPIGAgDuBgIA7wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYCAO8HAQDzBwEA8gYCAO8HAQDyBgIA7wcBAPIGAADzBwEA8gYAAPIGAADyBgIA7kZCQPeXk5D6CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/goEBP4OCAj+DggI/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+BgAA/gYAAP+Pi4j6JiIg9gYAAPAAAAAAAAAAAwcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDwAAAAAgYAAPMHAQDzBwEA8gYCAO4GAgDuBgIA7wcBAPIGAADyBgIA7gYAAPIGAgDzBwEA8gYAAPIGAgDuBgIA7gYCAO4GAADzBwEA8gYCAPIGAADyBgAA8gYAAPIGAADyRkJA95eTkPoKBAT+CgQE/g4ICP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD/j4uI+gYCAPYGAgDuBgIA7gYCAO4GAADzBwEA8oaCgPMHAQDzBwEA8wcBAPKGgoDyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8wcBAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYCAPIGAgDyBgIA7AAAAAMHAQDzBwEA8gYCAO4GAgDuBgIA7gYCAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgIA7AAAAAIGAADyBgAA8oaCgPMHAQDyBgIA7gYCAO4mICD7z8vI+gYAAP4KBAT+CgQE/g4ICP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/8fDwPoWEBD6BgIA7gYCAO4GAgDuBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA7gYAAPIGAADzBwEA8gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8wcDAPKGgoDwAAAAAgYAAPMHAQDzBwEA8gYCAO4GAgDuBgAA8gYAAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAO4GAADyBgIA8wcBAPMHAQDyBgIA75eRkPoKBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgIA+gYAAPIGAADzBwEA8wcBAPIGAgDuBgIA8wcBAPIGAADyBgAA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgAA8wcBAPMHAwDyhoKA8gYCAPMHAQDwAAAAAgYCAO4GAgDyBgIA8gYAAPIGAADyBgIA7gYCAPIGAADyBgIA7wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA7gYCAO4GAADyBgAA8wcBAPIGAAD2xsLA+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+DggI/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/o6KiPpGQkD3BwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDzBwEA8gYCAPIGAgDyhoKA8gYAAPMHAQDyBgIA7gYCAO4GAgDuBgAA8gYAAPMHAQDyBgIA7gYCAO8HAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgAA8AAAAAIGAADzBwEA8iYgIPuHg4D6BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP+Pi4j7R0NA9wcBAPIGAgDuBgIA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYCAO4GAADyBgIA7gYCAOwAAAACBgAA8wcBAPMHAQDyBgIA7gYAAPIGAgDyhoKA8gYCAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPIGAAD2TkpI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+DggI/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/hYSEPsHAQDyBgAA8gYCAO4GAADyBgIA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA7gYCAPKGgoDzBwEA8gYCAOwAAAADBwEA8gYAAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8iYgIPuPi4j6BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP+Xk5D6pqCg+gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8wcBAPIGAgDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDyBgAA8gYAAPIGAgDuBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDyhoKA8gYAAPIGAADyBgIA8wcBAPImIiD2zsrI+gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/g4ICP4KBAT+DggI/g4ICP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/paSkPomIiD3BwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADzBwEA8wcDAPIGAgDzBwEA8gYCAPIGAgDuBgAA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA9g4KCPvPy8j6CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+lpKQ+kZCQPYGAADyhoKA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAgDzBwEA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgAA8wcBAPIGAADyBgAA8kZAQPYWEhD7z8vI+gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/4+LiPoWEhD6ZmJg9gYCAPKGgoDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDyBgIA7AAAAAIGAADzBwEA8gYAAPIGAADyBgIA7gYAAPIGAgD2FhIQ+8/LyPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/o6KiPomIiD2BgAA8gYCAPIGAADyBgIA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA7wcBAPMHAQDyBgIA8gYAAPIGAADyFhAQ+w8LCPoGAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4SDAz+BgAA/g4ICP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+xsLA+paQkPsHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDuBgAA+kZCQPvPy8j6BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/g4ICP+Pi4j6joqI+kZAQPoGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPKGgID3FxEQ+o6KiPvPy8j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4OCAj+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP+Xk5D6lpKQ+rawsPpGQkD2BgAA86ehoPoKBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD/p6Gg+4+LiPoKBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4GAAD+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+DggI/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT/z8vI+8/LyPoKBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT/l5OQ+6ehoPoGAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT/t7Gw+wcBAPKmoqD2hoCA+paSkPuPi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP/X09D6joqI+xcREPpGQED2BgAA8wcBAPIGAgDzBwEA8wcBAPIGAADyFhAQ+oaCgPuPi4j6BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP/Py8j6VlJQ+iYgIPoGAgDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgAA8gYCAO4GAADyBgIA7gYAAPIGAADylpCQ+tbS0PoGAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+DggI/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT/DwsI+iYgIPoGAgDyhoKA8wcBAPMHAQDyBgIA7gYAAPIGAADyBgIA7gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAgD2joqI+gYAAP4GAAD+BgAA/g4ICP4OCAj+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD/z8vI+hYSEPpmYmD3BwEA8wcBAPMHAwDzBwMA8wcBAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgAA8kZCQPYWEhD7j4uI+goEBP4KBAT+CgQE/gYAAP4KBAT+DggI/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/8/LyPoOCgj6RkBA9gYAAPIGAADyBgAA8gYCAPIGAgDyhoKA8wcBAPIGAADyBgIA8wcBAPIGAgDuBgAA8gYCAPIGAADzBwEA8gYCAPKGgoDyBgIA8gYAAPMHAQDyhoKA8oaCgPIGAADzBwEA8gYAAPIGAgDyBgIA9o6KiPoKBAT+BgAA/gYAAP4KBAT+DggI/g4ICP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP/X09D6FhIQ+oaAgPYGAgDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDyhoKA8gYCAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8oaCgPIGAgDyBgAA8gYAAPIGAADwAAAAAgYAAPImIiD2npqY+gYAAP4KBAT+DggI/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/gYAAP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/s7KyPpGQkD2BgIA8wcBAPMHAQDyBgAA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYCAPIGAgDuBgIA7gYCAO4GAADwAAAAAgYCAO8HAQDzBwEA8oaAgPuHg4D6BgAA/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+DggI/goEBP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP+Xk5D6JiAg+gYCAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA7gYAAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPKGgoDyBgIA8wcBAPIGAADyBgIA7gYAAPIGAADyBgAA8AAAAAIGAADyDgoI+gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4KBAT+BgAA/gYAAP4KBAT+DggI/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/lZSUPrGwMD3BwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDzBwEA8gYCAO8HAQDyBgIA7gYAAPIGAgDuBgAA8gYCAPIGAgDzBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDwAAAAAgYAAPAAAAACBgAA8gYCAO4GAgDsAAAAAwcDAPePi4j6CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/g4ICP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP+Pi4j6JiAg+wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPKGgoDyBgIA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPIGAADwAAAAAgYCAO8HAQDyBgAA8AAAAAAAAAADBwEA8gYCAO4mIiD2joqI+goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4GAAD+DggI/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/s7KyPqGgID3BwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA7gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA8gYAAPIGAgDuBgIA8hYSEPoKBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4OCAj+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT/l5GQ+wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyhoKA8wcBAPIGAADyBgIA7gYAAPIGAgDuBgAA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8oaCgPIGAgDzBwEA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDzBwEA8gYAAPMHAQDyBgIA7wcBAPIGAgDuBgAA8gYAAPImICD7z8vI+goEBP4GAAD+CgQE/goEBP4OCAj+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/8fDwPomICD7BwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPMHAQDzBwEA8gYCAPIGAgDzBwEA8oaCgPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPIGAADzBwEA8gYCAPMHAQDyZmJg94+LiPoGAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD/j4uI+iYiIPcHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAO8HAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8kZCQPePi4j6CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+BgAA/gYAAP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP+Pi4j6RkJA9gYAAPIGAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDyBgIA8oaCgPMHAQDyBgIA8oaCgPIGAgDyBgIA8oaCgPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADyBgIA8gYAAPIGAADyBgIA7gYCAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA8gYCAPIGAgDyBgIA8wcBAPIGAgDyBgIA8gYAAPMHAQDzBwEA8wcBAPJGQkD3j4uI+goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/g4ICP4GAAD+BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4OCAj+CgQE/g4ICP4OCAj+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/09LSPpGQkD3BwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8oaCgPMHAQDyBgIA8wcBAPIGAgDuBgAA8gYAAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyhoCA909LSPoKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+CgQE/gYAAP4KBAT/j4uI+sbAwPYGAgDyBgIA7wcBAPMHAQDyBgAA8gYAAPMHAQDwAAAAAgYAAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPIGAADzBwEA8wcBAPIGAgDyhoKA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYAAPIGAgDyBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgAA8wcBAPMHAQDzBwEA8mZiYPeXk5D6CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/gYAAP4GAAD+CgQE/gYAAP4KBAT+DggI/g4ICP4GAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP+Pi4j6RkJA9gYCAPIGAADzBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAADyBgAA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPMHAQDzBwEA8wcBAPIGAgDyBgIA7wcBAPMHAQDzBwEA8wcBAPJGQkD3j4uI+g4ICP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/gYAAP4GAAD+DggI/4+LiPpGQkD2BgAA8gYAAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADyhoKA8gYCAPMHAQDyBgIA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAADyBgIA7gYCAO4GAgDuBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyJiIg98/LyPoKBAT+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP4KBAT/19PQ+kZCQPYGAgDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA8wcBAPIGAgDzBwEA8gYCAPMHAQDyBgIA8gYAAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPKGgoDyhoKA8oaCgPMHAQDyBgIA8wcBAPIGAgDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDzBwEA8gYCAPIGAADyBgIA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAgDyhoKA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA7hYQEPoKBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/goEBP4KBAT+DggI/goEBP4KBAT+CgQE/gYAAP4KBAT+NjAw+oaCgPKGgoDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPKGgoDyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPIGAgDyhoKA8oaCgPMHAQDyBgIA8gYCAPIGAgDyBgAA8wcBAPIGAADyBgAA8gYAAPOXkZD6BgAA/gYAAP4GAAD+CgQE/gYAAP4GAAD+CgQE/goEBP4GAAD+BgAA/gYAAP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4OCgj6BgIA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPKGgoDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAwDyBgAA8wcBAPIGAADzBwEA8gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8wcBAPMHAQDyhoKA8oaCgPKGgoDyBgIA8gYCAPIGAADzBwEA8wcBAPMHAQDyBgAA8AAAAAIGAADyBgAA8gYCAO8HAQDyzsrI+gYAAP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/gYAAP4KBAT+CgQE/g4ICP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+BgAA/oaCgPoGAgDuBgAA8gYCAO4GAgDzBwEA8wcBAPMHAQDyBgAA8gYCAO4GAADyBgAA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYCAPMHAQDzBwEA8gYCAPMHAQDyBgAA8gYCAPIGAADyBgAA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8wcBAPIGAgDuhoKA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPMHAQDwAAAAAwcBAPMHAQDyBgAA8gYCAPIGAgDyhoKA8oaCgPKGgoDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8gYAAPMHAQDyBgIA7gYAAPMHAQDyBgAA94eDgPoGAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4GAAD+BgAA/gYAAP4GAAD/j4uI+kZCQPYGAADyBgIA7wcBAPMHAQDyBgIA8oaCgPMHAQDyBgIA7wcBAPIGAgDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDvBwEA8gYAAPIGAADzBwEA8gYCAO4GAADyBgIA7gYCAPMHAQDyBgIA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA7wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADzBwEA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPoGAAD+BgAA/gYAAP4KBAT+CgQE/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+BgAA/goEBP4KBAT+BgAA/goEBP4GAAD+BgAA/goEBP4KBAT/R0NA9gYCAPIGAgDzBwEA8gYCAPIGAgDzBwEA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAgDyhoKA8gYCAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgAA8gYCAPMHAQDyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAgDyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAADzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPJOSkj6BgAA/gYAAP4KBAT+DggI/gYAAP4KBAT+CgQE/goEBP4GAAD+BgAA/goEBP4KBAT+CgQE/goEBP4GAAD+BgAA/gYAAP4GAAD+BgAA/goEBP4WEhD6BgAA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDyBgIA8gYAAPIGAgDyBgIA7gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAADzBwEA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgAA8gYAAPMHAQDyBgIA7wcBAPIGAADzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAADyBgIA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgAA8wcBAPMHAQDyBgIA8gYCAPMHAQDyBgAA8oaCgPIGAADyBgIA7wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAO5GQED3j4uI+gYAAP4OCAj+CgQE/goEBP4OCAj+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+BgAA/gYAAP4GAAD+CgQE/5eTkPoGAgDzBwEA8oaCgPIGAgDzBwEA8wcBAPMHAQDyhoKA8gYCAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyhoKA8wcBAPMHAQDyBgIA8gYAAPIGAgDyBgAA8oaCgPIGAADzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgIA8wcBAPIGAgDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8gYCAPIGAgDyBgAA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYAAPIGAADyJiAg+goEBP4KBAT+DggI/goEBP4OCAj+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+CgQE/qagoPoGAADyBgAA8gYAAPIGAADyBgIA8gYCAPIGAADyBgIA8gYCAO8HAQDyBgAA8wcBAPIGAADyBgAA8gYCAPIGAADyBgIA7gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA7wcBAPKGgoDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDvBwEA8gYAAPIGAgDvBwEA8gYCAPKGgoDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYAAPIGAADzBwEA8wcBAPAAAAACBgAA8gYCAO4GAADyBgIA7s7KyPoGAAD+BgAA/gYAAP4GAAD+CgQE/g4ICP4GAAD+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/gYAAP4KBAT+lpKQ+gYCAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYAAPIGAgDvBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYAAPIGAADyBgAA8wcBAPKGgoDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAgDyBgIA8gYCAPIGAADyBgAA8gYCAO4GAADyBgIA8wcBAPIGAgDyhoKA8gYCAPIGAADzBwEA8gYCAPMHAQDyBgIA8wcBAPIGAADzBwEA8oaCgPIGAgDyBgIA8gYAAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYAAPIGAADyBgAA8iYiIPfHw8D6BgAA/gYAAP4GAAD+BgAA/goEBP4KBAT+CgQE/g4ICP4OCAj+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+JiIg9wcBAPMHAQDzBwEA8gYCAO4GAgDyBgAA8wcBAPMHAQDyhoKA8wcBAPMHAQDyBgAA8gYCAPMHAQDyhoKA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8gYCAPIGAgDyBgAA8gYCAO4GAgDvBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAgDyBgIA8gYCAPIGAADzBwEA8gYCAPIGAgDzBwEA8oaCgPMHAQDzBwEA8gYCAPIGAgDzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDyBgAA8wcBAPIGAADyBgAA8gYCAO8HAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIOCgj6BgAA/gYAAP4GAAD+BgAA/gYAAP4KBAT+DggI/goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/goEBP6WkpD6BgIA8gYCAPIGAgDzBwEA8wcBAPKGgoDzBwEA8wcBAPIGAADzBwEA8gYAAPMHAQDyBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADzBwEA8wcBAPIGAADzBwEA8oaCgPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDyBgIA8gYCAPIGAADyBgIA8wcBAPIGAgDyBgAA8gYCAPIGAADyBgAA8AAAAAIGAADyBgAA8wcBAPIGAADyBgIA8gYAAPIGAADzBwEA8wcBAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8wcBAPIGAgDyBgIA8gYCAPJGQED3z8vI+gYAAP4GAAD+DggI/goEBP4GAAD+CgQE/g4ICP4KBAT+CgQE/goEBP4KBAT+CgQE/4+LiPpmYmD3BwEA8wcBAPKGgoDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgAA8gYAAPKGgoDzBwEA8gYCAPKGgoDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8gYCAPIGAADzBwEA8wcBAPIGAgDzBwEA8gYAAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAADyBgAA8AAAAAMHAQDzBwEA8wcBAPAAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyDgoI+goEBP4KBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/goEBP4KBAT+CgQE/g4KCPsHAQDyhoKA8oaCgPIGAgDzBwEA8gYCAPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPKGgoDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDyBgIA8wcBAPMHAQDyBgIA8wcBAPIGAgDuBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8oaCgPIGAADyBgAA8gYAAPIGAgDuBgIA7gYCAO8HAQDyBgIA7gYCAO4GAADyBgAA8wcBAPMHAQDyBgIA7wcBAPMHAQDyBgIA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgIA8oaCgPIGAgDzBwEA8gYCAPIGAADyhoCA98/LyPoKBAT+CgQE/goEBP4GAAD+CgQE/goEBP4KBAT+BgAA/gYAAP4KBAT+CgQE/mZiYPYGAADyBgIA8oaCgPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADzBwEA8gYCAPIGAgDzBwEA8oaCgPIGAgDvBwEA8gYCAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYCAPIGAADzBwEA8wcBAPMHAQDyBgIA8gYAAPMHAQDzBwEA8gYCAPIGAADyBgAA8wcBAPMHAQDzBwEA8gYAAPIGAgDzBwEA8wcBAPMHAQDyBgIA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgIA8gYAAPIGAgDuBgIA7wcBAPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYCAPIGAADyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyBgAA8hYSEPoKBAT+BgAA/goEBP4GAAD+CgQE/goEBP4GAAD+CgQE/gYAAP4KBAT+lpKQ+gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYAAPIGAgDuBgIA7wcBAPIGAgDuBgAA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgIA8wcBAPIGAgDyBgIA8wcBAPIGAgDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyhoKA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgAA8gYCAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDzBwMA8wcBAPMHAQDzBwEA8AAAAAIGAADzBwEA8AAAAAIGAADyBgIA8gYAAPIGAgDvBwEA8oaCgPIGAgDyBgAA8wcBAPIGAADwAAAAAgYAAPMHAQDyBgAA8gYCAO4GAADzBwEA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAADyBgAA8kZCQPYKBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/goEBP4KBAT+RkJA9wcBAPIGAgDyBgIA8gYCAPKGgoDzBwEA8wcBAPKGgoDzBwEA8wcBAPMHAQDyBgIA7gYCAO4GAADyBgIA8gYAAPIGAADyBgIA7gYCAO4GAgDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgAA8gYCAO8HAQDzBwEA8wcBAPMHAQDzBwEA8gYCAO4GAgDvBwEA8gYAAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPMHAQDyBgIA7gYCAO8HAQDyBgAA8AAAAAIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYAAPMPCwj6BgAA/gYAAP4KBAT+CgQE/goEBP4KBAT+BgAA/goEBP7Oysj6BgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDyBgIA8oaCgPKGgoDyBgIA8gYCAPIGAgDvBwEA8gYAAPMHAQDyBgAA8gYAAPIGAgDvBwEA8gYAAPMHAQDzBwEA8gYAAPMHAQDzBwEA8gYCAPIGAgDyBgAA8wcBAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgAA8wcBAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAADyBgAA8wcBAPIGAgDuBgAA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAgDuBgAA8gYCAO4GAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDyBgIA8gYAAPIGAAD6BgAA/gYAAP4KBAT+CgQE/goEBP4OCAj+BgAA/goEBP6WkJD7BwEA8wcBAPIGAADyBgAA8gYCAPKGgoDyBgIA7wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAO4GAADwAAAAAgYCAO4GAADzBwEA8gYAAPIGAgDwAAAAAgYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgIA8oaCgPMHAQDyBgAA8gYAAPMHAQDzBwEA8gYAAPIGAgDuBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8wcBAPIGAADyhoKA8wcBAPMHAQDzz8vI+goEBP4KBAT+CgQE/goEBP4OCAj+CgQE/4+LiPoGAgDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDzBwEA8wcBAPKGgoDyBgIA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYCAO4GAADzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8wcBAPIGAADyBgAA8gYAAPIGAgDvBwEA8gYAAPIGAADyBgAA8wcBAPKGgoDyBgAA8gYCAPIGAgDyhoKA8oaCgPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYAAPIGAADyBgAA8wcBAPAAAAADBwEA8wcBAPIGAgDuBgIA7gYAAPIGAgDyBgAA8wcBAPIGAADyBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDvBwEA8wcBAPMHAQDyBgIA8gYCAPIGAgDzBwEA8oaCgPMHAQDzBwEA8wcBAPIGAADyVlJQ+goEBP4KBAT+CgQE/goEBP4KBAT+CgQE/paSkPoGAgDyBgIA8wcBAPMHAQDyhoKA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8gYAAPIGAgDyBgIA8gYAAPIGAADyBgAA8gYCAPIGAADzBwEA8gYAAPIGAgDvBwEA8oaCgPIGAgDyBgIA8gYAAPIGAADzBwEA8gYCAPIGAgDzBwEA8gYCAPIGAgDyBgAA8oaCgPIGAADzBwEA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYCAPIGAgDzBwEA8gYCAPMHAQDzBwEA8gYCAPIGAgDyBgIA8gYCAPMHAQDzBwEA8gYAAPMHAQDyBgIA7gYAAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgIA8wcBAPIGAADwAAAAAgYAAPIGAADyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDyBgIA8gYAAPIGAADzBwEA8gYAAPMHAQDzBwEA8wcBAPMHAQDyJiAg+goEBP4KBAT+CgQE/gYAAP4KBAT+BgAA/iYgIPoGAADyBgIA8gYAAPMHAQDyBgIA8wcBAPIGAgDyBgIA8gYCAPIGAgDzBwEA8gYAAPIGAADzBwEA8gYCAO4GAgDuBgIA7gYAAPIGAADyBgAA8gYAAPMHAQDyBgAA8wcBAPIGAADyBgAA8gYCAO4GAADyhoKA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYAAPAAAAACBgAA8gYCAO4GAgDvBwEA8gYCAPIGAADyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA8gYCAPIGAgDyBgIA8gYCAPMHAQDyhoKA8wcBAPIGAgDyBgAA8wcBAPMHAQDyBgAA8AAAAAIGAgDuBgIA8wcBAPAAAAACBgAA8wcBAPIGAgDuBgAA8gYAAPIGAADzBwEA8gYAAPIGAADyBgAA8gYCAO4GAADyBgIA8gYCAO8HAQDyBgAA8wcBAPMHAQDyBgAA8wcBAPMHAQDyBgAA88/LyPoGAAD+CgQE/goEBP4KBAT/j4uI+gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPKGgoDyBgIA8gYCAPIGAgDyBgIA7gYCAO8HAQDyBgAA8gYAAPIGAADyBgIA7gYAAPIGAgDsAAAAAAAAAAMHAQDyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8wcBAPIGAgDuBgIA7gYAAPMHAQDwAAAAAgYAAPIGAgDuBgIA7gYAAPMHAQDzBwEA8gYAAPMHAQDyBgAA8gYCAPIGAgDzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDyBgAA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgAA8gYAAPKGgoDyBgAA8wcBAPIGAADyBgAA8gYAAPMHAQDyBgAA8gYAAPIGAADyBgIA7wcBAPIGAgDzBwEA8gYAAPAAAAACBgAA8gYAAPMHAQDzBwEA8wcBAPMHAQDyBgIA8wcBAPMHAQDyBgAA8paSkPoKBAT+CgQE/goEBP4KBAT+hoKA+gYAAPMHAQDyhoKA8gYCAPIGAADyBgIA8gYCAPMHAQDyBgIA8oaCgPIGAADyBgAA8gYAAPMHAQDzBwEA8oaCgPIGAgDyBgIA7gYCAPIGAADyBgAA8wcBAPIGAgDyhoKA8wcBAPIGAADyhoKA8gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYAAPIGAADyBgAA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgAA8gYAAPIGAADzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAADzBwEA8gYAAPIGAADzBwEA8gYAAPMHAQDyBgIA8gYAAPIGAgDyBgIA8wcBAPMHAQDwAAAAAgYCAO8HAQDyBgAA8gYCAOwAAAACBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPMHAQDzBwEA8gYAAPIGAADyBgIA7wcBAPMHAQDzBwEA8gYAAPMHAQDyBgIA8wcBAPMHAQDzBwEA8xcREPoKBAT+CgQE/goEBP4KBAT+pqCg+wcBAPIGAgDyBgIA8wcBAPIGAADzBwEA8gYCAPIGAgDyBgIA8wcBAPMHAQDyBgIA8gYCAPIGAADyBgAA8gYCAPMHAQDyBgIA7wcBAPIGAADyBgAA8wcBAPIGAADzBwEA8wcBAPIGAgDuBgAA8gYCAO4GAADyBgAA8gYAAPIGAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDuBgAA8gYAAPMHAQDzBwEA8gYAAPIGAADyBgIA8wcBAPMHAQDzBwEA8wcBAPIGAgDzBwEA8gYCAPMHAQDzBwEA8wcBAPIGAgDzBwEA8wcBAPIGAADzBwEA8gYCAO4GAADzBwEA8gYAAPIGAADzBwEA8wcBAPMHAQDzBwEA8wcBAPMHAQDzBwEA8gYCAPMHAQDzBwEA8wcBAPMHAQDyBgIA8gYCAPMHAQDzBwEA8wcBAPIGAADyBgAA8kZAQPYGAAD+CgQE/goEBP4KBAT+JiIg9gYCAPIGAgDyBgIA8wcBAPIGAgDyBgAA8gYCAPMHAQDyBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgAA8gYAAPIGAADyBgIA7gYAAPMHAQDyBgIA7gYCAO4GAgDsAAAAAgYCAO4GAADyBgAA8wcBAPIGAADyBgAA8gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAADyBgIA7gYAAPIGAgDyBgIA7gYAAPAAAAACBgAA8wcBAPMHAQDzBwEA8wcBAPIGAADzBwEA8wcBAPIGAgDyBgAA8wcBAPIGAgDzBwEA8wcBAPKGgoDyBgAA8wcBAPIGAADzBwEA8AAAAAIGAADyBgIA7gYAAPMHAQDyBgAA8gYAAPIGAADyBgAA8wcBAPIGAADzBwEA8gYCAPIGAADyBgIA7wcBAPIGAgDyBgIA8gYAAPMHAQDyBgIA8gYCAPMHAQDyBgIA8wcBAPMHAQDyBgAA8wcBAPOXkZD7h4OA+8/LyPunoaD7BwEA8gYCAPIGAgDzBwEA8gYAAPIGAgDvBwEA8wcBAPIGAADyBgIA8wcBAPIGAADyBgIA8wcBAPMHAQDyBgAA8gYAAPIGAADyBgAA8gYAAPIGAgDvBwEA8wcBAPIGAgDuBgAA8gYAAPIGAgDuBgAA8wcBAPIGAgDyBgIA7gYCAO4GAADzBwEA8wcBAPMHAQDzBwEA8wcBAPIGAgDuBgIA7gYCAPMHAQDyBgIA7gYAAPIGAADyBgAA8","96-20260520":"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m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6fnp4+o6KiPqmoqD6pqKg+q6qqPqOioj6Pjo4+7exsPtHQUD6dnBw+6ejoPcHAwD3x8HA9gYAAPcHAQDyBgIA70dBQPamoqD3p6Og9paQkPs3MTD7Z2Fg+6ehoPoOCgj6NjIw+m5qaPqOioj6npqY+p6amPqWkpD6hoKA+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPp2cnD6fnp4+paSkPqWkpD6pqKg+q6qqPqempj6bmpo+jYyMPoWEhD7p6Gg+1dRUPs3MTD6lpCQ+2djYPZGQkD3BwEA9vbw8PtHQUD7x8HA+iYiIPpeWlj6XlpY+lZSUPpeWlj6ZmJg+m5qaPpuamj6dnJw+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+nZycPp2cnD6bmpo+mZiYPpeWlj6XlpY+mZiYPpmYmD6FhIQ+4eBgPsHAQD6pqCg+/fx8Po2MjD6dnJw+sbCwPrm4uD63trY+sbCwPquqqj6npqY+o6KiPp+enj6fnp4+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp+enj6joqI+p6amPquqqj6xsLA+ubi4Prm4uD6xsLA+nZycPomIiD719HQ++fh4PouKij6bmpo+sbCwPrm4uD63trY+sbCwPquqqj6pqKg+o6KiPp+enj6dnJw+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6dnJw+nZycPp+enj6joqI+p6amPq2srD6zsrI+t7a2Prm4uD6xsLA+nZycPo2MjD79/Hw+qagoPsXERD7d3Fw+h4aGPpmYmD6ZmJg+lZSUPpeWlj6ZmJg+nZycPpuamj6dnJw+nZycPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPp2cnD6dnJw+nZycPpuamj6bmpo+mZiYPpmYmD6XlpY+l5aWPpeWlj6HhoY+7exsPtXUVD69vDw+wcBAPZGQkD3Z2Ng9paQkPs3MTD7Z2Fg+6ehoPoWEhD6NjIw+m5qaPqWkpD6pqKg+qaioPqWkpD6joqI+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6dnJw+oaCgPqOioj6pqKg+p6amPqOioj6bmpo+jYyMPoOCgj7p6Gg+1dRUPsnISD6lpCQ+6ejoPaGgoD3h4GA9gYCAO8HAQDzh4OA88fBwPcnIyD3p6Og9nZwcPtHQUD7t7Gw+j46OPqGgoD6pqKg+qaioPqmoqD6joqI+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+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"},_r=new Map;function YB(t,e){let A=vB(t),r=e/2,n=r*(r+1)/2;if(A.length!==n*2)throw new Error(`Invalid D4 signed alpha payload length: ${A.length}`);let a=new Int16Array(n);for(let s=0;s<n;s++){let o=A[s*2]|A[s*2+1]<<8;a[s]=o>=32768?o-65536:o}let i=new Float32Array(e*e);for(let s=0;s<e;s++)for(let o=0;o<e;o++){let c=Math.min(o,e-1-o),g=Math.min(s,e-1-s);c>g&&([c,g]=[g,c]);let u=c*r-c*(c-1)/2+(g-c);i[s*e+o]=a[u]/32767}return i}function vB(t){if(typeof Buffer<"u")return Uint8Array.from(Buffer.from(t,"base64"));if(typeof atob<"u"){let e=atob(t),A=new Uint8Array(e.length);for(let r=0;r<e.length;r++)A[r]=e.charCodeAt(r);return A}throw new Error("No base64 decoder available in current runtime")}function Ou(t){let e=String(t);if(e==="96-outline-dark")return _r.has(e)||_r.set(e,YB(xB,96)),new Float32Array(_r.get(e));if(e==="96-outline-light")return _r.has(e)||_r.set(e,YB(GB,96)),new Float32Array(_r.get(e));if(!(e in SB))return null;if(!_r.has(e)){let A=vB(SB[e]),r=$b[e],n=new Float32Array(A.buffer,A.byteOffset,r);_r.set(e,new Float32Array(n))}return new Float32Array(_r.get(e))}var Jb=1e-8;function OB(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n];let A=e/t.length,r=0;for(let n=0;n<t.length;n++){let a=t[n]-A;r+=a*a}return{mean:A,variance:r/t.length}}function MB(t,e){if(t.length!==e.length||t.length===0)return 0;let A=OB(t),r=OB(e),n=Math.sqrt(A.variance*r.variance)*t.length;if(n<Jb)return 0;let a=0;for(let i=0;i<t.length;i++)a+=(t[i]-A.mean)*(e[i]-r.mean);return a/n}function RB(t,e){let{width:A,height:r,data:n}=t,a=e.size??Math.min(e.width,e.height);if(!a||a<=0)return new Float32Array(0);if(e.x<0||e.y<0||e.x+a>A||e.y+a>r)return new Float32Array(0);let i=new Float32Array(a*a);for(let s=0;s<a;s++)for(let o=0;o<a;o++){let c=((e.y+s)*A+(e.x+o))*4;i[s*a+o]=(.2126*n[c]+.7152*n[c+1]+.0722*n[c+2])/255}return i}function _B(t,e,A){let r=new Float32Array(e*A);for(let n=1;n<A-1;n++)for(let a=1;a<e-1;a++){let i=n*e+a,s=-t[i-e-1]-2*t[i-1]-t[i+e-1]+t[i-e+1]+2*t[i+1]+t[i+e+1],o=-t[i-e-1]-2*t[i-e]-t[i-e+1]+t[i+e-1]+2*t[i+e]+t[i+e+1];r[i]=Math.sqrt(s*s+o*o)}return r}function Hd({imageData:t,alphaMap:e,region:A}){let r=RB(t,A);return r.length===0||r.length!==e.length?0:MB(r,e)}function Ud({imageData:t,alphaMap:e,region:A}){let r=RB(t,A);if(r.length===0||r.length!==e.length)return 0;let n=A.size??Math.min(A.width,A.height);if(!n||n<=2)return 0;let a=_B(r,n,n),i=_B(e,n,n);return MB(a,i)}var Xb=[{id:"veo-1080p-standard",label:"1080p standard, 72px, margin 108",size:72,marginRight:108,marginBottom:108},{id:"veo-1080p-inset",label:"1080p inset, 72px, margin 144",size:72,marginRight:144,marginBottom:144}],eE=Object.freeze({"1280x720":Object.freeze({"veo-1080p-inset":Object.freeze({id:"veo-720p-3-inset",label:"720p-3 inset, 48px, margin 96",sourcePriority:0,exactSizeVariant:!0}),"veo-1080p-standard":Object.freeze({id:"veo-720p-1-standard",label:"720p-1 standard, 48px, margin 72",sourcePriority:1,exactSizeVariant:!0})})}),qd=(t,e,A)=>Math.max(e,Math.min(A,Math.round(t)));function Ld(t,e){return t===1920&&e===1080}function co(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0?[]:nE([...AE(t,e),...iE(t,e)])}function Mu(t,e,A,r=1,n={}){let a=qd(t.size*r,24,Math.min(e,A)),i=qd(t.marginRight*r,0,e-a),s=qd(t.marginBottom*r,0,A-a);return{...t,size:a,width:a,height:a,marginRight:i,marginBottom:s,x:e-i-a,y:A-s-a,sourcePriority:t.sourcePriority??n.sourcePriority??100,...n}}function oo(t){return t.x>=0&&t.y>=0&&t.x+t.size<=t.videoWidth&&t.y+t.size<=t.videoHeight}function Ru(t,e,A){return{...t,videoWidth:e,videoHeight:A}}function tE(t,e){return`${t}x${e}`}function AE(t,e){let A=Math.min(t/1920,e/1080),r=Ld(t,e),n=eE[tE(t,e)]||{};return Xb.map((a,i)=>{let s=n[a.id]||{};return Ru(Mu(a,t,e,A,{referenceSize:r,scaledFromReference:!r,sourceCandidateId:a.id,sourceResolution:"1920x1080",sourceScale:A,sourceFamily:r?"reference-exact":"reference-projected",evidenceGate:"standard",sourcePriority:s.sourcePriority??i,...s}),t,e)}).filter(oo)}function rE(t){return`${t.size}:${t.marginRight}:${t.marginBottom}`}function _u(t){return Number.isFinite(t?.sourcePriority)?t.sourcePriority:100}function nE(t){let e=new Map;for(let A of t.filter(oo)){let r=rE(A),n=e.get(r);(!n||_u(A)<_u(n))&&e.set(r,A)}return[...e.values()].sort((A,r)=>{let n=_u(A)-_u(r);return n!==0?n:0})}function iE(t,e){return t===1080&&e===1920?[{id:"veo-1080x1920-portrait-72",label:"1080x1920 portrait, 72px, margin 108",size:72,marginRight:108,marginBottom:108,sourcePriority:0},{id:"veo-1080x1920-portrait-relocated-72",label:"1080x1920 portrait relocated, 72px, margin 144",size:72,marginRight:144,marginBottom:144,sourcePriority:1}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"binary-prior",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):t===1280&&e===720?[{id:"veo-720p-2-compact",label:"720p-2 compact, 44px, margin 29/40",size:44,marginRight:29,marginBottom:40,sourcePriority:2}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):t===720&&e===1280?[{id:"veo-720x1280-portrait-48",label:"720x1280 portrait, 48px, margin 72",size:48,marginRight:72,marginBottom:72,sourcePriority:1,sourceFamily:"binary-prior"},{id:"veo-720x1280-portrait-relocated-48",label:"720x1280 portrait relocated, 48px, margin 96",size:48,marginRight:96,marginBottom:96,sourcePriority:0},{id:"veo-720x1280-vertical-inset",label:"720x1280 vertical inset, 35px, margin 102/96",size:35,marginRight:102,marginBottom:96,sourcePriority:1},{id:"veo-720x1280-compact-44",label:"720x1280 compact, 44px, margin 29/40",size:44,marginRight:29,marginBottom:40,sourcePriority:3,sourceFamily:"binary-prior"}].map(A=>Ru(Mu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:A.sourceFamily||"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(oo):[]}var aE=Object.freeze(["veo-text-23x10","veo-text-68x30","veo-text-99x43"]),QB=Object.freeze({"veo-text-23x10":"AQoHAAAAAgsEAAAAAAAAAAAAAAAAAAAKV0AHAAEYXCMDAAAAAAAAAAAAAAAAAAY+YQ4ABjpdDwIHCQYAAAABBgkHAgAAAyVmJwMNXEkLGD9MOA4BARQ7SkIaBQAADFFCCiJnKBxYST5bTwsOWlxASV8nAwAGO18WSF0VQ1okHC9jIS5iIQgQSk0JAAASZTVfOBBUZ05KS1AfOVMLAAUzWgsAAApWY2sYCUNWGg8UGwotYBYGD0hRCQAABTRrVgoCHlxINU5QDxRcXDpMYisEAAAADEAmBAAEHEdOPhoDAxlET0wjBgA=","veo-text-68x30":"AgEABgQEBgIBAQICAQICAQECAgIABgQFAwACAgEBAgMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAl1en15IwIBAgMCAQEBAQECAgx7foF7KAMCAQECAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAUZ/fn9fAgECAgIBAgICAgIDNH2AgG4FAwIBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQICAgICAgICAQEBAQEBAQECHYCAgHcFAwIDAgICAwMDAgNhfX+BTwMEAgEBAQECAgEBAgEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgIBAQEBAQEBAQECdoCBgDECAwMCAgICAwEBEYGAgn8YAgICAQEBAQICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgEBAQIBAQEBAQFLfoB+XgIDAwICAgICAgMvgYF/bwQBAgEBAQECAgIBAQEBAQEBAQEBAQEBAQAAAQEBAQECAgIBAgEBAQEBAgEBAQEBASJ/fn91DQICAgICAgICBVyAf344AgIBAQEBAQIDAwMCAgEBAQEBAQEBAQEBAQEBAQEBAgICAQEAAAABAQEBAQIBAQEBBWx/f4AvAwICAgIDAwMQeH9/exQBAgECAQEBAggMCwgCAQEBAQEBAQIBAQEBAQECAgMHCAgGAgEBAQEBAQECAgEBAQEDQIGBgV8EAQEBAgICA0F/gIBeAwECAgICDEBvf39/gXFSFgUCAgICAwIBAQIBBRREb4GCgIJwVBQEAQEBAQECAQEBAQMUfoGAfg0CAQECAgIFbX9/fy8DAgIDBDF1fX+BgYCBgIB7QAUDAwMDAgEBAgM4dX+Bf4KDgYKBe0EFAgEBAgIBAQECAwZggIGBOAQBAgICBRx/foB9DAECAQdAf4CBf4B/f3+AgIGAQAQCAwMCAgMFUH6CgoGAgH+AgIGBf2gNAwICAwEBAQEBATh/gIFeAgEBAgEETX+BflAFAwMDKXt/gH1hMhgZMV9/gYF+IwMCAwICA0B+gYB/eFM7OlFwgIB/fVEDAgICAQEBAQMDC3yBg38RAgIDAwduf4B8KgUDAwVtgH9+QQQDAgMDBUB9gH9uBgIDAwMUfIB+fkwMBQMCBQ0+gH+CfikDAgIBAQEBAwIJX4KCgDoCAwMEInuCgG0IAgIBMH5/f1IEAgECAgIBAlF/gX0jAwMDBVt9gIBSBAEBAQAEAwhMf4GAZQcDAgEBAQECAgcwgoJ/YgMCAgNRgYCATwQEAwNef398FAMEAwQEAwMDJn6Af0cDAwMTfH6AahUCAwIDAwICAgx0gYB/IgECAQEBAQICAg17gYJ+BAMDBHeCgIEaBAQDB32BgHZAPz0+Pj8+Pj5GfoOBVgMDAyl/f35RAwIBAwMCAwEDBUCAgn44BAIBAQEBAgECA1p/gIA3AgMzgIGAbQICBAIaf4GAgoCAgoGBgYGBgIGBgX9wBAICPX9/fzEDAgECAgIDAgICKYCCfk4EAgEBAAACAgICJX+CgVwEBFeCgn8zAQEDAh5+gYGAf35/fn9/f39+fn9+fm0GAwNBfoCAMQIBAQICAgICAQEjgIF+UQMCAQEAAQEBAgIGdIKDfg4MfIGBehUBAQICGX6AgWAzMTExMTExMjEwMS4wKgQCAz5/gYE1AwEBAgICAgICAiaAgX5OAgIBAQEBAgICAwVJf4F/NTB9gYBgBAICAwIOfYCCXQYDBAICAgIDAgECAwQEAgICNICCg0cEAQECAgICAgIENIGCf0YCAgEBAQEBAQICAyKAgoFgXX2BfTECAgICAwRugIF8DgMDAQECAwQDAwIDAgMCAgESfoOAdgYBAQIDAgEBAgdvgoJ8IAMEAQEBAQEBAQIBBXd/gH5+fn99CwECAgICBEB/f3xIBQMCAgICAgMTXTkVAwICAwZcg4N9QwIBAQIBAwECOHuAgWsJAwIBAQEBAQEBAQEEQn6Bf4B/f08EAQICAgMCFHWBgX1DBgMCBAUGFW5/fG0hAwICAyh+gYB9PQQFAwMEBC9+g4B+PwQCAgEBAQEBAQICAQIkgIKBgIB8JgICAgIDAwIFOn+CgH5sLxsQFkJ2gH6AbgQCAgIDBGGDgYB7bDogIjFdfIB/gm4EAQIBAQEBAQEBAQEBAgdcgoCCgGwOAgECAgICAwIJR4CAf4GBgYGBgYB+fmcVAQIBAQICDm19gIB/gX6AgX+AgH1rEwMCAgEBAQAAAQEBAQIBAz2Af4B+TQoCAgICAgICAQEJQX1/gIGAgIGBf3xnFgQDAgICAgMFC1B8f4CBgYGBgYB9XhQDAgICAQEBAAABAQEBAQIBDV9fX14UAgIBAgICAgEBAQIFElB7fH+Af3xuPwsCAgICAgICAgUDBzJifn9+foB9YzAFAgICAgIBAQEAAAEBAQECAgIBAwMDAwEBAQECAQICAgECAgIDBAYlKy4rEwUEAgICAgICAgEBAgIDAwMNIysyIAsEAgIDAwICAgIBAQABAQEBAQEBAQABAQEBAQEBAQICAQICAgECAgECAQIDAwMCAgEBAgICAgICAgICAgEBAgEBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgMCAgICAgIBAQEBAgEBAQEBAgEBAQEBAgICAgICAgIBAQICAQEBAQEB","veo-text-99x43":"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"}),sE=Object.freeze({"veo-text-23x10":Object.freeze({id:"veo-text-23x10",width:23,height:10,marginRight:15,marginBottom:16,minNcc:.62,observedSeedScale:1.256,allenkObservedRegion:Object.freeze({x:682,y:1254,width:23,height:10}),cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:32})}),"veo-text-68x30":Object.freeze({id:"veo-text-68x30",width:68,height:30,marginRight:44,marginBottom:48,minNcc:.62,observedSeedScale:1,cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:38})}),"veo-text-99x43":Object.freeze({id:"veo-text-99x43",width:99,height:43,marginRight:64,marginBottom:68,minNcc:.62,observedSeedScale:1,cleanup:Object.freeze({allenkObservedFdncnnSigma:20,runtimeFdncnnSigma:90,allenkFdncnnPadding:44})})}),jd=new Map;function FB(t){if(jd.has(t))return jd.get(t);let e;if(typeof atob=="function"){let A=atob(t);e=new Uint8Array(A.length);for(let r=0;r<A.length;r++)e[r]=A.charCodeAt(r)}else if(typeof Buffer<"u")e=new Uint8Array(Buffer.from(t,"base64"));else throw new Error("No base64 decoder available for Veo text watermark template");return jd.set(t,e),e}function zB(t){let e=0;for(let A of t)A>e&&(e=A);return e<=0?new Float32Array(t.length):Float32Array.from(t,A=>A/e)}function oE(t){let e=sE[t];return e?{...e,allenkObservedRegion:e.allenkObservedRegion?{...e.allenkObservedRegion}:void 0,cleanup:{...e.cleanup}}:null}function cE(t,{alphaGain:e=.18}={}){let A=QB[t];if(!A)return null;let r=zB(FB(A)),n=Number.isFinite(e)&&e>0?e:.18;return Float32Array.from(r,a=>Math.max(0,Math.min(.99,a*n)))}function uE(t){let e=QB[t];return e?zB(FB(e)):null}function gE(t,e={}){let A=oE(t);return A?{...A,alphaMap:cE(t,e),detectorMap:uE(t)}:null}function Vd(t={}){return aE.map(e=>gE(e,t))}var lE=.62,dE=.6,fE=.02,NB=4,HB=.35,mE=.8,hE=.68;function UB(t,e){return(.2126*t[e]+.7152*t[e+1]+.0722*t[e+2])/255}function qB(t,e,A,r){let n=Math.max(A,Math.round(t-e)),a=Math.min(r,Math.round(t+e)),i=[];for(let s=n;s<=a;s++)i.push(s);return i}function Wd({imageData:t,alphaMap:e,region:A,activeThreshold:r=fE}){if(!t||!e||!A)return 0;let n=A.width??A.size,a=A.height??A.size;if(!Number.isFinite(n)||!Number.isFinite(a)||n<=0||a<=0||e.length!==n*a||A.x<0||A.y<0||A.x+n>t.width||A.y+a>t.height)return 0;let i=0,s=0,o=0;for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=e[h*n+y]||0;if(Math.abs(w)<=r)continue;let D=((A.y+h)*t.width+A.x+y)*4;i+=UB(t.data,D),s+=w,o++}if(o<=1)return 0;let c=i/o,g=s/o,u=0,l=0,f=0;for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=e[h*n+y]||0;if(Math.abs(w)<=r)continue;let D=((A.y+h)*t.width+A.x+y)*4,b=UB(t.data,D)-c,E=w-g;u+=b*E,l+=b*b,f+=E*E}let p=Math.sqrt(l*f);return p>0?u/p:0}function pE(t,e,A,r){let n=Wd({imageData:t,alphaMap:e.detectorMap,region:{x:A,y:r,width:e.width,height:e.height}});return{ncc:n,confidence:Math.max(0,n)}}function wE({width:t,height:e,templates:A=Vd(),marginRadiusX:r=null,marginRadiusY:n=null}={}){if(!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0)return[];let a=[];for(let i of A){if(!i||i.width>t||i.height>e)continue;let s=Number.isFinite(r)?r:Math.max(NB,Math.round(Math.min(i.width,i.height)*HB)),o=Number.isFinite(n)?n:Math.max(NB,Math.round(Math.min(i.width,i.height)*HB)),c=i.marginRight,g=i.marginBottom,u=qB(c,s,0,t-i.width),l=qB(g,o,0,e-i.height);for(let f of u)for(let p of l){let h=t-f-i.width,y=e-p-i.height;h<0||y<0||h+i.width>t||y+i.height>e||a.push({id:`${i.id}:${h}:${y}`,watermarkKind:"veo-text",template:i,x:h,y,width:i.width,height:i.height,marginRight:f,marginBottom:p})}}return a}function BE(t){if(!t.length)return{frames:0,meanNcc:0,maxNcc:0,votes:0};let e=0,A=Number.NEGATIVE_INFINITY;for(let r of t)e+=r.ncc,A=Math.max(A,r.ncc);return{frames:t.length,meanNcc:e/t.length,maxNcc:A,votes:0}}function LB(t){let e=t?.candidate,A=e?.template;return A&&e.marginRight===A.marginRight&&e.marginBottom===A.marginBottom}function PE(t,e,A){if(!LB(t))return!1;let r=Math.max(A,mE),n=e*hE;return t.voteRatio>=r&&t.maxNcc>=e&&t.meanNcc>=n}function yE(t){return{candidateId:t.candidate.id,templateId:t.candidate.template.id,x:t.candidate.x,y:t.candidate.y,width:t.candidate.width,height:t.candidate.height,marginRight:t.candidate.marginRight,marginBottom:t.candidate.marginBottom,meanNcc:t.meanNcc,maxNcc:t.maxNcc,votes:t.votes,voteRatio:t.voteRatio}}function IE(t,e=20){let A=new Map;for(let r of t.slice(0,e))A.set(r.candidate.id,r);for(let r of t)LB(r)&&A.set(r.candidate.id,r);return[...A.values()].map(yE)}function jB({frameCount:t=0,minNcc:e,candidates:A=[],frameWinners:r=[]}){return{watermarkKind:"veo-text",isConfident:!1,position:null,alphaMap:null,template:null,summary:{frameCount:t,minNcc:e,candidates:A,frameWinners:r}}}function DE({frames:t,perCandidate:e,frameWinners:A,minNcc:r,minVoteRatio:n}){let a=[...e.values()].map(u=>({candidate:u.candidate,...BE(u.scores),votes:u.votes,voteRatio:t.length>0?u.votes/t.length:0})).sort((u,l)=>l.votes!==u.votes?l.votes-u.votes:l.meanNcc-u.meanNcc),i=a[0]||null;if(!i)return jB({frameCount:t.length,minNcc:r,candidates:[],frameWinners:A});let s=Number.isFinite(i.candidate.template.minNcc)?Math.min(r,i.candidate.template.minNcc):r,o=i.meanNcc>=s&&i.voteRatio>=n||PE(i,s,n),c={x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height},g={id:i.candidate.template.id,width:i.candidate.template.width,height:i.candidate.template.height,cleanup:{...i.candidate.template.cleanup}};return{watermarkKind:"veo-text",position:c,alphaMap:i.candidate.template.alphaMap,alphaSeed:{seedGain:i.candidate.template.observedSeedScale||1,estimates:[],estimateCount:0,source:"template-default"},template:g,candidate:{id:i.candidate.id,label:i.candidate.template.id,x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height,marginRight:i.candidate.marginRight,marginBottom:i.candidate.marginBottom},isConfident:o,summary:{frameCount:t.length,minNcc:s,minVoteRatio:n,best:{candidateId:i.candidate.id,templateId:i.candidate.template.id,x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height,marginRight:i.candidate.marginRight,marginBottom:i.candidate.marginBottom,meanNcc:i.meanNcc,maxNcc:i.maxNcc,votes:i.votes,voteRatio:i.voteRatio},candidates:IE(a),frameWinners:A}}}async function Kd(t){typeof t=="function"&&await t()}async function VB({frames:t,width:e,height:A,templates:r=Vd(),minNcc:n=lE,minVoteRatio:a=dE,marginRadiusX:i=null,marginRadiusY:s=null,yieldEveryCandidates:o=96,yieldToMainThread:c=null}={}){if(!Array.isArray(t)||t.length===0)return await Kd(c),jB({minNcc:n});let g=wE({width:e,height:A,templates:r,marginRadiusX:i,marginRadiusY:s}),u=new Map(g.map(h=>[h.id,{candidate:h,scores:[],votes:0}])),l=[],f=Math.max(1,Math.round(o||96)),p=0;for(let h of t){let y=null;for(let w of g){let D=pE(h.imageData,w.template,w.x,w.y),b={timestamp:h.timestamp,ncc:D.ncc,confidence:D.confidence};u.get(w.id).scores.push(b),(!y||D.confidence>y.confidence)&&(y={candidateId:w.id,templateId:w.template.id,timestamp:h.timestamp,x:w.x,y:w.y,ncc:D.ncc,confidence:D.confidence}),p++,p%f===0&&await Kd(c)}if(y){l.push(y);let w=u.get(y.candidateId);w&&w.votes++}await Kd(c)}return DE({frames:t,perCandidate:u,frameWinners:l,minNcc:n,minVoteRatio:a})}var Jd=.18,WB=1,$d="96-20260520",CE=.045,bE=.035,EE=5,Ca=255,ZB=40,TE=ZB-1,kE=.04,GE=.08,xE=.12;function $B(t){if(t==null||t==="")return $d;let e=String(t).trim(),A=Number(e);return Number.isInteger(A)&&String(A)===e?A:e}function SE(t,e){let A=Math.round(Math.sqrt(t.length));return A>0&&A*A===t.length?A:e}function YE(t,e,A){if(A<=0)return new Float32Array(0);if(e===A)return new Float32Array(t);let r=new Float32Array(A*A),n=e/A;for(let a=0;a<A;a++){let i=a*n,s=(a+1)*n,o=Math.floor(i),c=Math.ceil(s);for(let g=0;g<A;g++){let u=g*n,l=(g+1)*n,f=Math.floor(u),p=Math.ceil(l),h=0,y=0;for(let w=o;w<c;w++){if(w<0||w>=e)continue;let D=Math.max(0,Math.min(s,w+1)-Math.max(i,w));for(let b=f;b<p;b++){if(b<0||b>=e)continue;let x=Math.max(0,Math.min(l,b+1)-Math.max(u,b))*D;h+=t[w*e+b]*x,y+=x}}r[a*A+g]=y>0?h/y:0}}return r}function JB(t=null){let e=Number(t?.size??t?.width??t?.height),A=Number(t?.marginRight),r=Number(t?.marginBottom),n=Number.isFinite(e)&&e>0&&Number.isFinite(A)&&Number.isFinite(r)&&A/e>=1.85&&r/e>=1.85;return t?.id==="veo-1080p-inset"||n?bE:CE}function Xd(t,e={}){let A=e.profile??e.alphaProfile,r=A==null||A===""?t<=TE?48:$d:$B(A),n=Ou(r)||Ou($d)||Ou(96);if(!n)throw new Error("\u7F3A\u5C11 96px Gemini alpha map\uFF0C\u65E0\u6CD5\u751F\u6210\u89C6\u9891\u6C34\u5370\u6A21\u677F");let a=SE(n,96),i=Number.isFinite(e.edgeBoost)?e.edgeBoost:JB(e.candidate),s=t===a?new Float32Array(n):YE(n,a,t);return zE(HE(s,t,i),e)}function vE(t={}){return t.profile!==void 0||t.alphaProfile!==void 0||t.edgeBoost!==void 0||t.lowAlphaScale!==void 0||t.bodyAlphaScale!==void 0||t.localLowAlphaScale!==void 0||t.localBodyAlphaScale!==void 0||t.localRegion!==void 0}function Zd(t){return t<=0?0:t>=255?255:Math.round(t)}function OE(t,e,A,r){let n=e.width??e.size,a=e.height??e.size,i=new Uint8ClampedArray(n*a*4),s=0,o=0,c=0;for(let g=0;g<a;g++)for(let u=0;u<n;u++){let l=((e.y+g)*t.width+e.x+u)*4,f=(g*n+u)*4,p=A[g*n+u]||0,h=p>.025?Math.min(p*r,.99):0;if(h<=0)i[f]=t.data[l],i[f+1]=t.data[l+1],i[f+2]=t.data[l+2],i[f+3]=t.data[l+3]??255;else{let y=1-h;i[f]=Zd((t.data[l]-h*Ca)/y),i[f+1]=Zd((t.data[l+1]-h*Ca)/y),i[f+2]=Zd((t.data[l+2]-h*Ca)/y),i[f+3]=t.data[l+3]??255}for(let y=0;y<3;y++){let w=Math.abs(i[f+y]-t.data[l+y]);s+=w,w>1&&o++,c++}}return{imageData:{width:n,height:a,data:i},meanAbsDelta:c>0?s/c:0,changedRatio:c>0?o/c:0}}function _E(t,e={}){let A=JB(t);return[{name:"default",profile:$B(e.profile??e.alphaProfile),edgeBoost:Number.isFinite(e.edgeBoost)?e.edgeBoost:A,options:{}},{name:`96-edge${A.toFixed(3)}`,profile:"96",edgeBoost:A,options:{alphaProfile:"96",edgeBoost:A}},...[.08,.1,xE].map(r=>({name:`96-edge${r.toFixed(3)}`,profile:"96",edgeBoost:r,options:{alphaProfile:"96",edgeBoost:r}}))]}function ME(t){if(!t.length)return{frames:0,meanSpatial:0,meanGradient:0,meanConfidence:1,maxConfidence:1,meanAbsDelta:0,changedRatio:0};let e=t.reduce((A,r)=>(A.spatial+=r.spatial,A.gradient+=r.gradient,A.confidence+=r.confidence,A.maxConfidence=Math.max(A.maxConfidence,r.confidence),A.meanAbsDelta+=r.meanAbsDelta,A.changedRatio+=r.changedRatio,A),{spatial:0,gradient:0,confidence:0,maxConfidence:0,meanAbsDelta:0,changedRatio:0});return{frames:t.length,meanSpatial:e.spatial/t.length,meanGradient:e.gradient/t.length,meanConfidence:e.confidence/t.length,maxConfidence:e.maxConfidence,meanAbsDelta:e.meanAbsDelta/t.length,changedRatio:e.changedRatio/t.length}}function KB(t,e){let A=Math.max(0,t.meanAbsDelta-32)*.003,r=Math.max(0,t.changedRatio-.92)*.15;return t.meanConfidence+A+r+e*.001}function RE({frames:t,position:e,candidate:A,frameWinners:r,alphaMapOptions:n,option:a,scoreAlphaMap:i}){let s=Xd(A.size,{...n,...a.options,candidate:A}),o=XB(t,e,s,r,A.id),c=new Map(r.map(u=>[u.timestamp,u])),g=[];for(let u of t){let l=c.get(u.timestamp);if(l&&l.candidateId!==A.id&&l.confidence>.08)continue;let f=OE(u.imageData,e,s,o.seedGain),p=Qu(f.imageData,{x:0,y:0,width:e.width,height:e.height},i);g.push({...p,meanAbsDelta:f.meanAbsDelta,changedRatio:f.changedRatio})}return{...a,alphaMap:s,alphaSeed:o,...ME(g)}}function QE({candidate:t,best:e,voteRatio:A,alphaMapOptions:r}){return r?.autoAlphaProfile===!1||vE(r)||!t||!e||(t.size??t.width??0)<ZB||A<.6?!1:e.meanConfidence>=Jd}function FE({frames:t,position:e,candidate:A,best:r,voteRatio:n,frameWinners:a,alphaMapOptions:i={}}){let s=Xd(A.size,{...i,candidate:A}),o=XB(t,e,s,a,A.id);if(!QE({candidate:A,best:r,voteRatio:n,alphaMapOptions:i}))return{alphaMap:s,alphaSeed:o,alphaShape:null};let c=s,g=_E(A,i).map((w,D)=>({...RE({frames:t,position:e,candidate:A,frameWinners:a,alphaMapOptions:i,option:w,scoreAlphaMap:c}),priorityIndex:D})).sort((w,D)=>{let b=KB(w,w.priorityIndex),E=KB(D,D.priorityIndex);return b-E}),u=g.find(w=>w.name==="default")||g[0],l=g[0]||u,f=u.meanConfidence-l.meanConfidence,p=u.meanConfidence>0?f/u.meanConfidence:0,h=l!==u&&f>=kE&&p>=GE,y=h?l:u;return{alphaMap:y.alphaMap,alphaSeed:y.alphaSeed,alphaShape:{accepted:h,baseline:{name:u.name,profile:u.profile,edgeBoost:u.edgeBoost,meanConfidence:u.meanConfidence,meanAbsDelta:u.meanAbsDelta,changedRatio:u.changedRatio},selected:{name:y.name,profile:y.profile,edgeBoost:y.edgeBoost,meanConfidence:y.meanConfidence,meanAbsDelta:y.meanAbsDelta,changedRatio:y.changedRatio,alphaSeed:y.alphaSeed},candidates:g.map(w=>({name:w.name,profile:w.profile,edgeBoost:w.edgeBoost,meanConfidence:w.meanConfidence,meanAbsDelta:w.meanAbsDelta,changedRatio:w.changedRatio}))}}}function zE(t,e={}){let A=Number.isFinite(e.lowAlphaScale)?Math.max(.5,Math.min(1.5,e.lowAlphaScale)):1,r=Number.isFinite(e.bodyAlphaScale)?Math.max(.5,Math.min(1.5,e.bodyAlphaScale)):1,n=Number.isFinite(e.localLowAlphaScale)?Math.max(.5,Math.min(1.5,e.localLowAlphaScale)):1,a=Number.isFinite(e.localBodyAlphaScale)?Math.max(.5,Math.min(1.5,e.localBodyAlphaScale)):1,i=typeof e.localRegion=="string"?e.localRegion:"all";if(Math.abs(A-1)<1e-4&&Math.abs(r-1)<1e-4&&Math.abs(n-1)<1e-4&&Math.abs(a-1)<1e-4)return t;let s=Math.round(Math.sqrt(t.length)),o=new Float32Array(t.length);for(let c=0;c<t.length;c++){let g=t[c]||0,u=s>0?c%s:0,l=s>0?Math.floor(c/s):0,f=NE(u,l,s,i);if(g>0&&g<.12){let p=A*(f?n:1);o[c]=Math.min(.99,g*p)}else if(g>=.12){let p=r*(f?a:1);o[c]=Math.min(.99,g*p)}else o[c]=g}return o}function NE(t,e,A,r){if(!r||r==="all")return!0;let n=(A-1)/2;return r==="top"?e<n:r==="bottom"?e>=n:r==="left"?t<n:r==="right"?t>=n:r==="top-left"?e<n&&t<n:r==="top-right"?e<n&&t>=n:r==="bottom-left"?e>=n&&t<n:r==="bottom-right"?e>=n&&t>=n:!0}function HE(t,e,A){if(!Number.isFinite(A)||A<=0||e<=2)return new Float32Array(t);let r=new Float32Array(t.length),n=0;for(let i=1;i<e-1;i++)for(let s=1;s<e-1;s++){let o=i*e+s,c=-t[o-e-1]-2*t[o-1]-t[o+e-1]+t[o-e+1]+2*t[o+1]+t[o+e+1],g=-t[o-e-1]-2*t[o-e]-t[o-e+1]+t[o+e-1]+2*t[o+e]+t[o+e+1],u=Math.sqrt(c*c+g*g);r[o]=u,u>n&&(n=u)}if(n<=0)return new Float32Array(t);let a=new Float32Array(t.length);for(let i=0;i<t.length;i++){let s=Math.sqrt(r[i]/n);a[i]=Math.min(.99,t[i]+s*A)}return a}function UE(t,e,A={}){let r=Xd(e.size,{...A,candidate:e}),n={x:e.x,y:e.y,size:e.size},a=Hd({imageData:t,alphaMap:r,region:n}),i=Ud({imageData:t,alphaMap:r,region:n}),s=Math.max(0,a)*.35+Math.max(0,i)*.65;return{candidate:e,alphaMap:r,spatial:a,gradient:i,confidence:s}}function Qu(t,e,A){let r=e.width??e.size,n=e.height??e.size;if(r!==n||A.length!==r*r){let c=Wd({imageData:t,alphaMap:A,region:{x:e.x,y:e.y,width:r,height:n}});return{spatial:c,gradient:0,confidence:Math.max(0,c)}}let a={x:e.x,y:e.y,size:r},i=Hd({imageData:t,alphaMap:A,region:a}),s=Ud({imageData:t,alphaMap:A,region:a}),o=Math.max(0,i)*.35+Math.max(0,s)*.65;return{spatial:i,gradient:s,confidence:o}}function qE(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function LE(t,e,A,r=18){let n=Math.max(0,e.x-r),a=Math.max(0,e.y-r),i=Math.min(t.width,e.x+e.width+r),s=Math.min(t.height,e.y+e.height+r),o=0,c=0,g=.015;for(let u=a;u<s;u++)for(let l=n;l<i;l++){let f=l>=e.x&&l<e.x+e.width&&u>=e.y&&u<e.y+e.height,p=f?0:1;if(f){let y=l-e.x,w=u-e.y;(A[w*e.width+y]||0)<=g&&(p=.35)}if(p<=0)continue;let h=(u*t.width+l)*4;o+=qE(t.data,h)*p,c+=p}return c>0?o/c:null}function jE(t,e,A,r,n){if(!Number.isFinite(n))return null;let a=0,i=0;for(let s=0;s<e.height;s++)for(let o=0;o<e.width;o++){let c=A[s*e.width+o]||0;if(c<=.025)continue;let g=Math.min(c*r,.99),u=1-g,l=((e.y+s)*t.width+e.x+o)*4,f=Math.min(1,Math.max(0,c*8)),p=(t.data[l]-g*Ca)/u,h=(t.data[l+1]-g*Ca)/u,y=(t.data[l+2]-g*Ca)/u;a+=(.2126*p+.7152*h+.0722*y)*f,i+=f}return i<=0?null:a/i-n}function VE(t,e,A,r=WB){let n=LE(t,e,A);if(!Number.isFinite(n))return null;let a=Math.max(.35,r-.45),i=Math.min(1.35,r+.45),s=r,o=Number.POSITIVE_INFINITY;for(let c=0;c<EE;c++){let g=(a+i)/2,u=jE(t,e,A,g,n);if(!Number.isFinite(u))return null;let l=Math.abs(u);l<o&&(o=l,s=g),u>0?a=g:i=g}return{gain:s,residualDelta:o}}function KE(t){if(!t.length)return null;let e=[...t].sort((r,n)=>r-n),A=Math.floor(e.length/2);return e.length%2===0?(e[A-1]+e[A])/2:e[A]}function XB(t,e,A,r,n){let a=new Map(r.map(o=>[o.timestamp,o])),i=[];for(let o of t){let c=a.get(o.timestamp);if(c&&c.candidateId!==n&&c.confidence>.08)continue;let g=VE(o.imageData,e,A);g&&(g.gain<.35||g.gain>1.35||i.push(g.gain))}return{seedGain:KE(i)??WB,estimates:i,estimateCount:i.length}}function WE(t){if(!t.length)return{frames:0,meanSpatial:0,meanGradient:0,meanConfidence:0,maxConfidence:0,votes:0};let e=t.reduce((A,r)=>(A.spatial+=r.spatial,A.gradient+=r.gradient,A.confidence+=r.confidence,A.maxConfidence=Math.max(A.maxConfidence,r.confidence),A),{spatial:0,gradient:0,confidence:0,maxConfidence:0});return{frames:t.length,meanSpatial:e.spatial/t.length,meanGradient:e.gradient/t.length,meanConfidence:e.confidence/t.length,maxConfidence:e.maxConfidence,votes:0}}async function ZE(t){typeof t=="function"&&await t()}async function $E({frames:t,width:e,height:A,candidates:r=co(e,A),minConfidence:n=Jd,alphaMapOptions:a={},yieldToMainThread:i=null}){if(!Array.isArray(t)||t.length===0)throw new Error("No video frames are available for detection");if(!r.length)throw new Error("Unsupported video watermark candidates for "+e+"x"+A);let s=new Map(r.map(w=>[w.id,{candidate:w,scores:[]}])),o=[];for(let w of t){let D=r.map(E=>UE(w.imageData,E,a)).sort((E,x)=>x.confidence-E.confidence),b=D[0]||null;b&&o.push({timestamp:w.timestamp,candidateId:b.candidate.id,confidence:b.confidence});for(let E of D)s.get(E.candidate.id).scores.push(E);await ZE(i)}for(let w of o){let D=s.get(w.candidateId);D&&(D.votes=(D.votes||0)+1)}let c=[...s.values()].map(w=>({candidate:w.candidate,...WE(w.scores),votes:w.votes||0})).sort((w,D)=>D.votes!==w.votes?D.votes-w.votes:D.meanConfidence-w.meanConfidence),g=c[0],u=t.length>0?g.votes/t.length:0,l=g.meanConfidence>=n&&u>=.6,f={x:g.candidate.x,y:g.candidate.y,width:g.candidate.size,height:g.candidate.size},p=FE({frames:t,position:f,candidate:g.candidate,best:g,voteRatio:u,frameWinners:o,alphaMapOptions:a}),{alphaMap:h,alphaSeed:y}=p;return{watermarkKind:"diamond",position:f,alphaMap:h,alphaSeed:y,candidate:g.candidate,isConfident:l,summary:{frameCount:t.length,minConfidence:n,alphaSeed:y,alphaShape:p.alphaShape,best:{candidateId:g.candidate.id,label:g.candidate.label,meanSpatial:g.meanSpatial,meanGradient:g.meanGradient,meanConfidence:g.meanConfidence,maxConfidence:g.maxConfidence,votes:g.votes},candidates:c.map(w=>({candidateId:w.candidate.id,label:w.candidate.label,x:w.candidate.x,y:w.candidate.y,size:w.candidate.size,meanSpatial:w.meanSpatial,meanGradient:w.meanGradient,meanConfidence:w.meanConfidence,maxConfidence:w.maxConfidence,votes:w.votes})),frameWinners:o}}}function JE({diamondDetection:t=null,veoTextDetection:e=null,diamondWeakConfidenceCeiling:A=.28}={}){let r=t?.summary?.best?.meanConfidence??0,n=e?.summary?.best?.meanNcc??0,a=e?.isConfident===!0,i=t?.isConfident===!0;return a&&(!i||r<A||n>r)?{...e,summary:{...e.summary,alternatives:{diamond:t?.summary?.best??null}}}:t?{...t,summary:{...t.summary,alternatives:{veoText:e?.summary?.best??null,veoTextCandidates:e?.summary?.candidates??[]}}}:e}async function eP({frames:t,width:e,height:A,candidates:r=co(e,A),minConfidence:n=Jd,alphaMapOptions:a={},veoTextOptions:i={},yieldToMainThread:s=null}){let o=null;Array.isArray(r)&&r.length>0&&(o=await $E({frames:t,width:e,height:A,candidates:r,minConfidence:n,alphaMapOptions:a,yieldToMainThread:s}));let c=await VB({frames:t,width:e,height:A,...i,yieldToMainThread:s}),g=JE({diamondDetection:o,veoTextDetection:c});if(!g)throw!Array.isArray(r)||r.length===0?new Error("Unsupported video watermark candidates for "+e+"x"+A):new Error("No video watermark detection result is available");return g}var NA=Object.freeze({name:"FDnCNN Color FP16",upstream:"allenk/GeminiWatermarkTool",license:"MIT",runtime:"NCNN",inputBlob:0,outputBlob:20,inputLayout:"[R, G, B, sigma] CHW float32",outputLayout:"[R, G, B] CHW float32",defaultSigma:25,defaultStrength:.85,defaultPadding:16,maxSigma:150,maxStrength:3});function he(t,e,A){return Math.max(e,Math.min(A,t))}function ba(t,e){if(e<=1)return 0;let A=Math.round(t);for(;A<0||A>=e;)A=A<0?-A:e*2-A-2;return A}function XE(t,e=Math.ceil(t*3)){let A=Math.max(.01,t),r=Math.max(1,Math.round(e)),n=new Float32Array(r*2+1),a=0;for(let i=-r;i<=r;i++){let s=Math.exp(-(i*i)/(2*A*A));n[i+r]=s,a+=s}for(let i=0;i<n.length;i++)n[i]/=a;return{kernel:n,radius:r}}function tP(t,e,A,r,n=Math.ceil(r*3)){if(!t||e<=0||A<=0||!Number.isFinite(r)||r<=0)return new Float32Array(t||0);let{kernel:a,radius:i}=XE(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=ba(g+l,e);u+=t[c*e+f]*a[l+i]}s[c*e+g]=u}for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=ba(c+l,A);u+=s[f*e+g]*a[l+i]}o[c*e+g]=u}return o}function eT(t){let e=Math.round(Math.sqrt(t?.length||0));return e>0&&e*e===t.length?e:0}function tT(t,e,A,r=A){if(!t||e<=0||A<=0||r<=0)return new Float32Array(0);if(e===A&&e===r)return new Float32Array(t);let n=new Float32Array(A*r),a=e/A,i=e/r;for(let s=0;s<r;s++){let o=s*i,c=(s+1)*i,g=Math.floor(o),u=Math.ceil(c);for(let l=0;l<A;l++){let f=l*a,p=(l+1)*a,h=Math.floor(f),y=Math.ceil(p),w=0,D=0;for(let b=g;b<u;b++){if(b<0||b>=e)continue;let E=Math.max(0,Math.min(c,b+1)-Math.max(o,b));for(let x=h;x<y;x++){if(x<0||x>=e)continue;let k=Math.max(0,Math.min(p,x+1)-Math.max(f,x))*E;w+=t[b*e+x]*k,D+=k}}n[s*A+l]=D>0?w/D:0}}return n}function AT(t,e,A,r=A){if(!t||e<=0||A<=0||r<=0)return new Float32Array(0);if(e===A&&e===r)return new Float32Array(t);let n=new Float32Array(A*r),a=e/A,i=e/r;for(let s=0;s<r;s++){let o=(s+.5)*i-.5,c=Math.floor(o),g=c+1,u=o-c;for(let l=0;l<A;l++){let f=(l+.5)*a-.5,p=Math.floor(f),h=p+1,y=f-p,w=t[he(c,0,e-1)*e+he(p,0,e-1)]||0,D=t[he(c,0,e-1)*e+he(h,0,e-1)]||0,b=t[he(g,0,e-1)*e+he(p,0,e-1)]||0,E=t[he(g,0,e-1)*e+he(h,0,e-1)]||0,x=w*(1-y)+D*y,S=b*(1-y)+E*y;n[s*A+l]=x*(1-u)+S*u}}return n}function rT(t,e,A,r=A){return A>e?AT(t,e,A,r):tT(t,e,A,r)}var nT=Object.freeze([[0,0,1,0,0],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[0,0,1,0,0]]);function iT(t,e,A){let r=new Float32Array(t.length);for(let n=0;n<A;n++)for(let a=0;a<e;a++){let i=0;for(let s=0;s<5;s++)for(let o=0;o<5;o++){if(!nT[s][o])continue;let c=a+o-2,g=n+s-2;c<0||g<0||c>=e||g>=A||(i=Math.max(i,t[g*e+c]||0))}r[n*e+a]=i}return r}function aT({alphaMap:t,width:e,height:A,strength:r}){if(!t||e<=0||A<=0||t.length<e*A)return new Float32Array(0);let n=new Float32Array(e*A),a=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(let l=0;l<A;l++)for(let f=0;f<e;f++){let p=ba(l-1,A),h=ba(l+1,A),y=ba(f-1,e),w=ba(f+1,e),D=-t[p*e+y]-2*t[l*e+y]-t[h*e+y]+t[p*e+w]+2*t[l*e+w]+t[h*e+w],b=-t[p*e+y]-2*t[p*e+f]-t[p*e+w]+t[h*e+y]+2*t[h*e+f]+t[h*e+w],E=Math.sqrt(D*D+b*b);n[l*e+f]=E,a=Math.min(a,E),i=Math.max(i,E)}if(!Number.isFinite(a)||i<=a)return new Float32Array(e*A);let s=new Float32Array(e*A),o=1/(i-a);for(let l=0;l<s.length;l++)s[l]=Math.sqrt(he((n[l]-a)*o,0,1));let c=iT(s,e,A),g=tP(c,e,A,2),u=Number.isFinite(r)?Math.max(0,r):1;for(let l=0;l<g.length;l++)g[l]=he(g[l]*u,0,1);return g}function AP(t={}){let e=Number.isFinite(t.sigma)?he(t.sigma,0,NA.maxSigma):NA.defaultSigma,A=Number.isFinite(t.strength)?he(t.strength,0,NA.maxStrength):NA.defaultStrength,r=Number.isFinite(t.padding)?Math.max(0,Math.round(t.padding)):NA.defaultPadding;return{sigma:e,strength:A,padding:r}}function rP({alphaMap:t,width:e,height:A=e,strength:r=NA.defaultStrength}={}){let n=eT(t),a=n>0?rT(t,n,e,A):t;return aT({alphaMap:a,width:e,height:A,strength:r})}function sT({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding}={}){if(!A||t<=0||e<=0||A.width<=0||A.height<=0)return null;let n=Math.max(0,Math.round(r)),a=he(Math.round(A.x-n),0,t),i=he(Math.round(A.y-n),0,e),s=he(Math.round(A.x+A.width+n),0,t),o=he(Math.round(A.y+A.height+n),0,e),c=s-a,g=o-i;return c<4||g<4?null:{x:a,y:i,width:c,height:g,inner:{x:he(Math.round(A.x-a),0,c),y:he(Math.round(A.y-i),0,g),width:he(Math.round(A.width),0,c),height:he(Math.round(A.height),0,g)}}}function nP({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){if(!A||t<=0||e<=0||A.width<=0||A.height<=0)return null;let i=Math.max(0,Math.round(r)),s=Math.round(A.x-i),o=Math.round(A.y-i),c=Math.round(A.width+i*2),g=Math.round(A.height+i*2),u=Number.isInteger(n)&&n>0?n:c,l=Number.isInteger(a)&&a>0?a:g;if(u<4||l<4)return null;let f=he(s,0,t),p=he(o,0,e),h=he(s+u,0,t),y=he(o+l,0,e),w=h-f,D=y-p;return w<=0||D<=0?null:{x:s,y:o,width:u,height:l,inner:{x:he(Math.round(A.x-s),0,u),y:he(Math.round(A.y-o),0,l),width:he(Math.round(A.width),0,u),height:he(Math.round(A.height),0,l)},visible:{x:f,y:p,width:w,height:D,offsetX:f-s,offsetY:p-o}}}function iP({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){let i=sT({imageWidth:t,imageHeight:e,region:A,padding:r});if(!i)return null;let s=Number.isInteger(n)&&n>0?n:null,o=Number.isInteger(a)&&a>0?a:null;if(!s||!o||t<s||e<o||i.width>s||i.height>o)return i;let c=A.x+A.width/2,g=A.y+A.height/2,u=he(Math.round(c-s/2),0,t-s),l=he(Math.round(g-o/2),0,e-o);return{x:u,y:l,width:s,height:o,inner:{x:he(Math.round(A.x-u),0,s),y:he(Math.round(A.y-l),0,o),width:he(Math.round(A.width),0,s),height:he(Math.round(A.height),0,o)}}}function aP({imageData:t,roi:e,imageX:A=0,imageY:r=0,canvasWidth:n=t?.width||0,canvasHeight:a=t?.height||0}={}){if(!t?.data||!e||t.width<=0||t.height<=0||e.width<=0||e.height<=0||n<=0||a<=0)return{width:0,height:0,data:new Uint8ClampedArray(0)};let i=Math.max(1,Math.round(e.width)),s=Math.max(1,Math.round(e.height)),o=new Uint8ClampedArray(i*s*4),c=t.data.length>=t.width*t.height*4?4:3;for(let u=0;u<s;u++){let l=he(Math.round(e.y+u),0,a-1),f=he(l-Math.round(r),0,t.height-1);for(let p=0;p<i;p++){let h=he(Math.round(e.x+p),0,n-1),y=he(h-Math.round(A),0,t.width-1),w=(f*t.width+y)*c,D=(u*i+p)*4;o[D]=t.data[w]||0,o[D+1]=t.data[w+1]||0,o[D+2]=t.data[w+2]||0,o[D+3]=c>=4?t.data[w+3]??255:255}}let g=typeof t.constructor=="function"&&t.constructor!==Object?t.constructor:typeof ImageData=="function"?ImageData:null;return g?new g(o,i,s):{width:i,height:s,data:o}}function sP({roiWeights:t,roiWidth:e,roiHeight:A,paddedRoi:r,blurSigma:n=1}={}){if(!t||!r?.inner||e<=0||A<=0)return new Float32Array(0);let a=new Float32Array(r.width*r.height),i=r.inner;for(let s=0;s<A;s++){let o=i.y+s;if(!(o<0||o>=r.height))for(let c=0;c<e;c++){let g=i.x+c;g<0||g>=r.width||(a[o*r.width+g]=he(t[s*e+c]||0,0,1))}}return tP(a,r.width,r.height,n)}function oP({imageData:t,sigma:e=NA.defaultSigma}={}){if(!t?.data||t.width<=0||t.height<=0)return new Float32Array(0);let{width:A,height:r,data:n}=t,a=A*r,i=new Float32Array(a*4),s=he(e,0,NA.maxSigma)/255,o=n.length>=a*4?4:3;for(let c=0;c<a;c++){let g=c*o;i[c]=(n[g]||0)/255,i[a+c]=(n[g+1]||0)/255,i[a*2+c]=(n[g+2]||0)/255,i[a*3+c]=s}return i}function cP({output:t,width:e,height:A,alpha:r=255}={}){if(!t||e<=0||A<=0)return new Uint8ClampedArray(0);let n=e*A,a=new Uint8ClampedArray(n*4);for(let i=0;i<n;i++)a[i*4]=Math.round(he(t[i]||0,0,1)*255),a[i*4+1]=Math.round(he(t[n+i]||0,0,1)*255),a[i*4+2]=Math.round(he(t[n*2+i]||0,0,1)*255),a[i*4+3]=r;return a}function oT(t,e,A,r,n,a){let i=0,s=0;for(let o=-1;o<=1;o++){let c=n+o;if(!(c<0||c>=A))for(let g=-1;g<=1;g++){let u=r+g;u<0||u>=e||(i+=t[(c*e+u)*4+a],s++)}}return s>0?i/s:t[(n*e+r)*4+a]}function cT(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function uT(t,e,A){let r=new Float32Array(e*A),n=(a,i)=>{let s=he(a,0,e-1),o=he(i,0,A-1);return cT(t,(o*e+s)*4)};for(let a=0;a<A;a++)for(let i=0;i<e;i++){let s=-n(i-1,a-1)-2*n(i-1,a)-n(i-1,a+1)+n(i+1,a-1)+2*n(i+1,a)+n(i+1,a+1),o=-n(i-1,a-1)-2*n(i,a-1)-n(i+1,a-1)+n(i-1,a+1)+2*n(i,a+1)+n(i+1,a+1),c=Math.sqrt(s*s+o*o);r[a*e+i]=he((c-48)/112,0,1)}return r}function uP({originalData:t,denoisedData:e,weights:A,width:r=0,height:n=0,preserveHighpassStrength:a=0,protectStructure:i=!1}={}){if(!t||!e||!A||t.length!==e.length)return new Uint8ClampedArray(t||0);let s=new Uint8ClampedArray(t),o=Math.min(A.length,Math.floor(t.length/4)),c=Number.isFinite(r)&&Number.isFinite(n)&&r>0&&n>0&&r*n<=o,g=Number.isFinite(a)&&a>0&&c,u=i&&c?uT(t,r,n):null;for(let l=0;l<o;l++){let f=he(A[l]||0,0,1),p=u?Math.max(.08,1-(u[l]||0)*.92):1,h=f*p;if(h<=0)continue;let y=l*4,w=g?l%r:0,D=g?Math.floor(l/r):0,b=g?Math.min(.28,h*a):0;for(let E=0;E<3;E++){let x=t[y+E]*(1-h)+e[y+E]*h,S=b>0?he(t[y+E]-oT(t,r,n,w,D,E),-14,14):0;s[y+E]=Math.round(he(x+S*b,0,255))}}return s}var Fu=1.5,an=!1,lP=!1,rf=.85,go="none",Kt=.65,zu=25,gT=6.5,gP=Object.freeze({CANVAS_SOFT:"canvas-soft",CANVAS_BILATERAL:"canvas-bilateral"}),Ke=Object.freeze({NONE:"none",ALLENK_FDNCNN_BROWSER_SPIKE:"allenk-fdncnn-browser-spike",CANVAS_EDGE_DENOISE:"canvas-edge-denoise",CANVAS_EDGE_BAND_DENOISE:"canvas-edge-band-denoise",CANVAS_EDGE_CORE_DENOISE:"canvas-edge-core-denoise",CANVAS_FOOTPRINT_POLISH:"canvas-footprint-polish",CANVAS_TEMPORAL_DELTA_STABILIZE:"canvas-temporal-delta-stabilize",CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE:"canvas-temporal-match-delta-stabilize",CANVAS_TEMPORAL_STABILIZE:"canvas-temporal-stabilize",CANVAS_TEXTURE_REPAIR:"canvas-texture-repair"});function ef(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function dP(t,e=Math.ceil(t*3)){let A=Math.max(.01,t),r=Math.max(1,Math.round(e)),n=new Float32Array(r*2+1),a=0;for(let i=-r;i<=r;i++){let s=Math.exp(-(i*i)/(2*A*A));n[i+r]=s,a+=s}for(let i=0;i<n.length;i++)n[i]/=a;return{kernel:n,radius:r}}function lA(t,e,A,r,n){let{kernel:a,radius:i}=dP(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=Math.max(0,Math.min(e-1,g+l));u+=t[c*e+f]*a[l+i]}s[c*e+g]=u}for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-i;l<=i;l++){let f=Math.max(0,Math.min(A-1,c+l));u+=s[f*e+g]*a[l+i]}o[c*e+g]=u}return o}function ar(t,e,A){if(t===e)return A>=e?1:0;let r=Math.max(0,Math.min(1,(A-t)/(e-t)));return r*r*(3-2*r)}function lT(t,e=1){if(!t?.data||t.width<=0||t.height<=0)return new Float32Array(0);let{width:A,height:r,data:n}=t,a=new Float32Array(A*r),i=(o,c)=>{let g=Math.max(0,Math.min(A-1,o)),u=Math.max(0,Math.min(r-1,c));return ef(n,(u*A+g)*4)},s=Math.max(0,Math.min(1,Number.isFinite(e)?e:1));for(let o=0;o<r;o++)for(let c=0;c<A;c++){let g=-i(c-1,o-1)-2*i(c-1,o)-i(c-1,o+1)+i(c+1,o-1)+2*i(c+1,o)+i(c+1,o+1),u=-i(c-1,o-1)-2*i(c,o-1)-i(c+1,o-1)+i(c-1,o+1)+2*i(c,o+1)+i(c+1,o+1),l=Math.sqrt(g*g+u*u);a[o*A+c]=ar(42,150,l)*s}return lA(a,A,r,.65,2)}function uo(t,e,A){let r=t.width,n=t.height,a=t.data,{kernel:i,radius:s}=dP(e,A),o=new Float32Array(a.length),c=new Uint8ClampedArray(a.length);for(let g=0;g<n;g++)for(let u=0;u<r;u++){let l=(g*r+u)*4;for(let f=0;f<4;f++){let p=0;for(let h=-s;h<=s;h++){let y=Math.max(0,Math.min(r-1,u+h));p+=a[(g*r+y)*4+f]*i[h+s]}o[l+f]=p}}for(let g=0;g<n;g++)for(let u=0;u<r;u++){let l=(g*r+u)*4;for(let f=0;f<4;f++){let p=0;for(let h=-s;h<=s;h++){let y=Math.max(0,Math.min(n-1,g+h));p+=o[(y*r+u)*4+f]*i[h+s]}c[l+f]=Math.max(0,Math.min(255,Math.round(p)))}}return c}function Nu(t,e,A=5,r=42){let{width:n,height:a,data:i}=t,s=new Uint8ClampedArray(i),o=Math.max(1,Math.round(A)),c=Math.max(.1,o*.55),g=Math.max(1,r),u=2*c*c,l=2*g*g;for(let f=0;f<a;f++)for(let p=0;p<n;p++){let h=f*n+p,y=e[h]||0;if(y<=.02)continue;let w=h*4,D=[i[w],i[w+1],i[w+2]],b=[0,0,0],E=0;for(let x=-o;x<=o;x++){let S=f+x;if(!(S<0||S>=a))for(let k=-o;k<=o;k++){let R=p+k;if(R<0||R>=n)continue;let M=(S*n+R)*4,N=i[M]-D[0],V=i[M+1]-D[1],F=i[M+2]-D[2],K=Math.exp(-(k*k+x*x)/u),L=Math.exp(-(N*N+V*V+F*F)/l),_=Math.max(y,e[S*n+R]||0),W=K*(.35+L*.65)*(.5+_*.5);b[0]+=i[M]*W,b[1]+=i[M+1]*W,b[2]+=i[M+2]*W,E+=W}}E>0&&(s[w]=Math.max(0,Math.min(255,Math.round(b[0]/E))),s[w+1]=Math.max(0,Math.min(255,Math.round(b[1]/E))),s[w+2]=Math.max(0,Math.min(255,Math.round(b[2]/E))))}return s}function fP(t,e,A=24){let{width:r,height:n,data:a}=t,i=new Uint8Array(r*n),s=new Float32Array(a.length),o=new Float32Array(a.length);s.set(a),o.set(a);for(let u=0;u<e.length;u++)i[u]=e[u]>.08?1:0;for(let u=0;u<n;u++)for(let l=0;l<r;l++){let f=u*r+l;if(!i[f])continue;let p=0,h=[0,0,0];for(let y=1;y<=8&&p===0;y++)for(let w=-y;w<=y;w++){let D=u+w;if(!(D<0||D>=n))for(let b=-y;b<=y;b++){let E=l+b;if(E<0||E>=r||Math.max(Math.abs(b),Math.abs(w))!==y)continue;let x=D*r+E;if(i[x])continue;let S=x*4;h[0]+=a[S],h[1]+=a[S+1],h[2]+=a[S+2],p++}}if(p>0){let y=f*4;s[y]=h[0]/p,s[y+1]=h[1]/p,s[y+2]=h[2]/p,o[y]=s[y],o[y+1]=s[y+1],o[y+2]=s[y+2]}}let c=Math.max(4,Math.round(A));for(let u=0;u<c;u++){for(let l=0;l<n;l++)for(let f=0;f<r;f++){let p=l*r+f,h=p*4;if(!i[p]){o[h]=s[h],o[h+1]=s[h+1],o[h+2]=s[h+2],o[h+3]=s[h+3];continue}let y=0,w=[0,0,0],D=[[f-1,l],[f+1,l],[f,l-1],[f,l+1],[f-1,l-1],[f+1,l-1],[f-1,l+1],[f+1,l+1]];for(let[b,E]of D){if(b<0||b>=r||E<0||E>=n)continue;let x=(E*r+b)*4;w[0]+=s[x],w[1]+=s[x+1],w[2]+=s[x+2],y++}y>0&&(o[h]=w[0]/y,o[h+1]=w[1]/y,o[h+2]=w[2]/y,o[h+3]=s[h+3])}s.set(o)}let g=new Uint8ClampedArray(a.length);for(let u=0;u<g.length;u++)g[u]=Math.max(0,Math.min(255,Math.round(s[u])));return g}function Ea(t,e,A,r,n){let a=new Float32Array(A.width*A.height);for(let i=0;i<e.height;i++){let s=e.y-n+i;if(!(s<0||s>=A.height))for(let o=0;o<e.width;o++){let c=e.x-r+o;c<0||c>=A.width||(a[s*A.width+c]=t[i*e.width+o])}}return a}function mP(t=null){let e=t?.inputShape,A=Number(e?.[2]),r=Number(e?.[3]);return!Number.isInteger(r)||!Number.isInteger(A)||r<=0||A<=0?null:{width:r,height:A}}function hP(t,e,A){if(!t?.data||t.width<=0||t.height<=0||e<=0||A<=0)return t;let r=Math.max(1,Math.round(e)),n=Math.max(1,Math.round(A));if(t.width===r&&t.height===n)return{width:r,height:n,data:new Uint8ClampedArray(t.data)};let a=new Uint8ClampedArray(r*n*4),i=t.data,s=r>1?(t.width-1)/(r-1):0,o=n>1?(t.height-1)/(n-1):0;for(let c=0;c<n;c++){let g=c*o,u=Math.floor(g),l=Math.min(t.height-1,u+1),f=g-u;for(let p=0;p<r;p++){let h=p*s,y=Math.floor(h),w=Math.min(t.width-1,y+1),D=h-y,b=(c*r+p)*4,E=(u*t.width+y)*4,x=(u*t.width+w)*4,S=(l*t.width+y)*4,k=(l*t.width+w)*4;for(let R=0;R<4;R++){let M=i[E+R]*(1-D)+i[x+R]*D,N=i[S+R]*(1-D)+i[k+R]*D;a[b+R]=Math.round(M*(1-f)+N*f)}}}return{width:r,height:n,data:a}}function pP(t,e){return!e||t.padded.width===e.width&&t.padded.height===e.height?t.padded:hP(t.padded,e.width,e.height)}function wP(t,e){let A=e?.imageData;return!A?.data||A.width===t.padded.width&&A.height===t.padded.height?e:{...e,imageData:hP(A,t.padded.width,t.padded.height)}}function Hu(t={}){let e=t.highQualityCleanup===!0||t.highQualityCleanup!==!1&&an,A=typeof t.denoiseBackend=="string"?t.denoiseBackend:null,r=Object.values(Ke).includes(A)?A:t.textureRepair===!0||t.textureRepair!==!1&&lP?Ke.CANVAS_TEXTURE_REPAIR:go,n=r===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?3:1,a={residualCleanupStrength:Number.isFinite(t.residualCleanupStrength)?Math.max(0,Math.min(1.8,t.residualCleanupStrength)):Fu,cleanupBackend:e?gP.CANVAS_BILATERAL:gP.CANVAS_SOFT,highQualityCleanup:e,denoiseBackend:r,edgeDenoiseStrength:Number.isFinite(t.edgeDenoiseStrength)?Math.max(0,Math.min(n,t.edgeDenoiseStrength)):Kt,textureRepair:r===Ke.CANVAS_TEXTURE_REPAIR,textureRepairStrength:Number.isFinite(t.textureRepairStrength)?Math.max(0,Math.min(1,t.textureRepairStrength)):rf};return r===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&(a.allenkFdncnnRuntime=t.allenkFdncnnRuntime||null,a.allenkFdncnnSigma=Number.isFinite(t.allenkFdncnnSigma)?Math.max(0,Math.min(150,t.allenkFdncnnSigma)):zu,a.allenkFdncnnPadding=Number.isFinite(t.allenkFdncnnPadding)?Math.max(0,Math.round(t.allenkFdncnnPadding)):void 0,a.allenkFdncnnTemporalReuse=t.allenkFdncnnTemporalReuse||null,a.allenkFdncnnFrameCache=t.allenkFdncnnFrameCache||null,a.denoiseRuntimeStatus=a.allenkFdncnnRuntime?"available":"unavailable",a.denoiseRuntimeReason=a.allenkFdncnnRuntime?"allenk FDnCNN runtime provided":"allenk FDnCNN model contract is decoded, but no browser GPU inference runtime is wired yet"),a}function lo(t,e,A,r){let n=new Float32Array(e*A),a=0,i=(c,g)=>{let u=Math.max(0,Math.min(e-1,c)),l=Math.max(0,Math.min(A-1,g));return t[l*e+u]||0};for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=c*e+g,l=-i(g-1,c-1)-2*i(g-1,c)-i(g-1,c+1)+i(g+1,c-1)+2*i(g+1,c)+i(g+1,c+1),f=-i(g-1,c-1)-2*i(g,c-1)-i(g+1,c-1)+i(g-1,c+1)+2*i(g,c+1)+i(g+1,c+1),p=Math.sqrt(l*l+f*f);n[u]=p,p>a&&(a=p)}if(a<=0)return n;let s=new Float32Array(e*A);for(let c=0;c<A;c++)for(let g=0;g<e;g++){let u=0;for(let l=-1;l<=1;l++){let f=c+l;if(!(f<0||f>=A))for(let p=-1;p<=1;p++){let h=g+p;h<0||h>=e||(u=Math.max(u,n[f*e+h]))}}s[c*e+g]=Math.sqrt(u/a)}let o=lA(s,e,A,1.15);for(let c=0;c<o.length;c++)o[c]=Math.min(1,o[c]*r);return o}function BP(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0,c=n[s]||0,g=Math.max(ar(.006,.035,o),ar(.42,.72,c)*.45),u=ar(.2,.3,o),l=ar(.24,.62,c),f=1-u*(1-l)*.86;a[s]=Math.min(1,c*g*f*i)}return lA(a,e,A,.65,2)}function dT(t,e,A){let r=new Float32Array(e*A),n=0,a=(i,s)=>{let o=Math.max(0,Math.min(e-1,i)),c=Math.max(0,Math.min(A-1,s));return t[c*e+o]||0};for(let i=0;i<A;i++)for(let s=0;s<e;s++){let o=i*e+s,c=-a(s-1,i-1)-2*a(s-1,i)-a(s-1,i+1)+a(s+1,i-1)+2*a(s+1,i)+a(s+1,i+1),g=-a(s-1,i-1)-2*a(s,i-1)-a(s+1,i-1)+a(s-1,i+1)+2*a(s,i+1)+a(s+1,i+1),u=Math.sqrt(c*c+g*g);r[o]=u,u>n&&(n=u)}if(n<=0)return r;for(let i=0;i<r.length;i++)r[i]/=n;return r}function fT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=BP(t,e,A,r),a=dT(t,e,A),i=new Float32Array(e*A);for(let s=0;s<i.length;s++){let o=ar(.1,.2,a[s]||0);i[s]=n[s]*o}return lA(i,e,A,.35,1)}function tf(t,e,A,{strength:r=0,highQuality:n=an,protectStructure:a=!1}={}){if(!Number.isFinite(r)||r<=0)return;let i=Math.max(24,Math.round(Math.min(e.width,e.height)*.9)),s=Math.max(0,e.x-i),o=Math.max(0,e.y-i),c=Math.min(t.canvas.width,e.x+e.width+i),g=Math.min(t.canvas.height,e.y+e.height+i),u=t.getImageData(s,o,c-s,g-o),l=lo(A,e.width,e.height,r),f=Ea(l,e,u,s,o),p=lA(f,u.width,u.height,1),h=uo(u,2.2,5),y=a?lT(u,n?.55:.78):null,w;if(n)w=Nu(u,p,Math.max(4,Math.round(Math.min(e.width,e.height)/14)),52);else{let D=fP(u,p,Math.max(18,Math.round(Math.min(e.width,e.height)/2))),b=Math.max(2,Math.round(Math.min(e.width,e.height)/18));w=uo({width:u.width,height:u.height,data:D},b*.8,b)}for(let D=0;D<p.length;D++){let b=Math.min(1,Math.max(0,p[D])),E=Math.min(1,b*(n?1.08:1.25)),x=ar(.22,.55,b),S=y?(y[D]||0)*(1-x*.82):0,k=y?Math.max(.28,1-S):1,R=E*k;if(R<=.01)continue;let M=D*4;for(let N=0;N<3;N++){let V=u.data[M+N]-h[M+N],F=n?Math.max(.18,.72-R*.48):Math.max(.05,.78-R*.9),K=Math.max(0,Math.min(255,w[M+N]+V*F));u.data[M+N]=Math.round(u.data[M+N]*(1-R)+K*R)}}t.putImageData(u,s,o)}function mT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(18,Math.round(Math.min(e.width,e.height)*.45)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=lo(A,e.width,e.height,Math.max(0,Math.min(1,r))),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.85,2),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/18)),34);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.62,h*.72);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function hT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(16,Math.round(Math.min(e.width,e.height)*.4)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=BP(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.65,2),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.54,h*.78);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function pT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(16,Math.round(Math.min(e.width,e.height)*.4)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=fT(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.45,1),f=Nu(c,l,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<l.length;p++){let h=Math.min(1,Math.max(0,l[p]||0)),y=Math.min(.48,h*.7);if(y<=.01)continue;let w=p*4;for(let D=0;D<3;D++)c.data[w+D]=Math.round(c.data[w+D]*(1-y)+f[w+D]*y)}t.putImageData(c,a,i)}function wT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0;if(o<=.035)continue;let c=Math.min(1,Math.max(0,(o-.035)/.18)),g=n[s]||0;a[s]=Math.min(1,Math.max(g*.75,c*.32)*i)}return lA(a,e,A,.75,2)}function BT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=lo(t,e,A,1),a=new Float32Array(e*A),i=Math.max(0,Math.min(1,r));for(let s=0;s<a.length;s++){let o=t[s]||0,c=n[s]||0,g=ar(.018,.13,o),u=ar(.1,.24,o),l=1-ar(.42,.78,c)*.28;a[s]=Math.min(1,(g*.34+u*.22+c*.18)*l*i)}return lA(a,e,A,.85,2)}function PT(t,e,A,{strength:r=Kt}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(22,Math.round(Math.min(e.width,e.height)*.55)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=BT(A,e.width,e.height,r),u=Ea(g,e,c,a,i),l=lA(u,c.width,c.height,.8,2),f=uo(c,1.8,4),p=fP(c,l,Math.max(14,Math.round(Math.min(e.width,e.height)/3))),h=uo({width:c.width,height:c.height,data:p},1.2,3);for(let y=0;y<l.length;y++){let w=Math.min(1,Math.max(0,l[y]||0)),D=Math.min(.36,w*.72);if(D<=.012)continue;let b=y*4,E=Math.max(.28,.72-D*1.1);for(let x=0;x<3;x++){let S=c.data[b+x]-f[b+x],k=Math.max(0,Math.min(255,h[b+x]+S*E));c.data[b+x]=Math.round(c.data[b+x]*(1-D)+k*D)}}t.putImageData(c,a,i)}function yT(t,e,A,{strength:r=rf}={}){if(!Number.isFinite(r)||r<=0)return;let n=Math.max(26,Math.round(Math.min(e.width,e.height)*.75)),a=Math.max(0,e.x-n),i=Math.max(0,e.y-n),s=Math.min(t.canvas.width,e.x+e.width+n),o=Math.min(t.canvas.height,e.y+e.height+n),c=t.getImageData(a,i,s-a,o-i),g=uo(c,1.65,4),u=wT(A,e.width,e.height,r),l=Ea(u,e,c,a,i),f=lA(l,c.width,c.height,.75,2),p=new Uint8ClampedArray(c.data),h=Math.max(6,Math.round(Math.min(e.width,e.height)/7));for(let y=0;y<c.height;y++)for(let w=0;w<c.width;w++){let D=y*c.width+w,b=Math.min(1,Math.max(0,f[D]||0));if(b<=.025)continue;let E=D*4,x=ef(g,E),S=-1,k=Number.POSITIVE_INFINITY;for(let N=-h;N<=h;N+=2){let V=y+N;if(!(V<0||V>=c.height))for(let F=-h;F<=h;F+=2){let K=w+F;if(K<0||K>=c.width)continue;let L=V*c.width+K;if((f[L]||0)>.015)continue;let _=L*4,W=Math.abs(ef(g,_)-x),pe=Math.sqrt(F*F+N*N),Ae=W+pe*.7;Ae<k&&(k=Ae,S=L)}}if(S<0)continue;let R=S*4,M=Math.min(.7,b*.95);for(let N=0;N<3;N++){let V=Math.max(-18,Math.min(18,p[R+N]-g[R+N]));c.data[E+N]=Math.max(0,Math.min(255,Math.round(c.data[E+N]+V*M)))}}t.putImageData(c,a,i)}function IT(t,e,A,{runtime:r=null,sigma:n=zu,strength:a=Kt,padding:i=void 0}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let s=mP(r),o=PP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:s?.width,targetHeight:s?.height});if(!o)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let c=r.denoiseImageData({imageData:pP(o,s),sigma:o.options.sigma}),g=wP(o,c);return Af(t,o,g),{denoiseRuntimeStatus:"applied",denoiseRuntime:g.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:g.macs??null,denoiseRuntimeRunMs:g.runMs??null}}function PP(t,e,A,{sigma:r=zu,strength:n=Kt,padding:a=void 0,targetWidth:i=null,targetHeight:s=null}={}){let o=AP({sigma:r,strength:n,padding:a}),g=Number.isInteger(i)&&i>0&&Number.isInteger(s)&&s>0&&Math.round(e.width)!==Math.round(e.height),u=g?nP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s}):iP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s});if(!u)return null;let l=u.visible||{x:u.x,y:u.y,width:u.width,height:u.height,offsetX:0,offsetY:0},f=t.getImageData(l.x,l.y,l.width,l.height),p=g?aP({imageData:f,imageX:l.x,imageY:l.y,canvasWidth:t.canvas.width,canvasHeight:t.canvas.height,roi:u}):f,h=rP({alphaMap:A,width:e.width,height:e.height,strength:o.strength}),y=sP({roiWeights:h,roiWidth:e.width,roiHeight:e.height,paddedRoi:u,blurSigma:1});return{options:o,paddedRoi:u,visible:l,padded:p,weights:y}}function DT(t,e){let A=t.visible||t.paddedRoi?.visible,r=t.padded;if(!A||!r?.data||A.width===r.width&&A.height===r.height&&A.offsetX===0&&A.offsetY===0)return r?.data&&e&&r.data.length===e.length&&r.data.set(e),{x:t.paddedRoi.x,y:t.paddedRoi.y,imageData:r};let n=Math.max(0,Math.round(A.width)),a=Math.max(0,Math.round(A.height)),i=Math.max(0,Math.round(A.offsetX||0)),s=Math.max(0,Math.round(A.offsetY||0)),o=new Uint8ClampedArray(n*a*4);for(let u=0;u<a;u++){let l=s+u;if(!(l<0||l>=r.height))for(let f=0;f<n;f++){let p=i+f;if(p<0||p>=r.width)continue;let h=(l*r.width+p)*4,y=(u*n+f)*4;o[y]=e[h]||0,o[y+1]=e[h+1]||0,o[y+2]=e[h+2]||0,o[y+3]=e[h+3]??255}}let c=typeof r.constructor=="function"&&r.constructor!==Object?r.constructor:typeof ImageData=="function"?ImageData:null,g=c?new c(o,n,a):{width:n,height:a,data:o};return{x:A.x,y:A.y,imageData:g}}function Af(t,e,A){let r=new Uint8ClampedArray(e.padded.data),n=uP({originalData:r,denoisedData:A.imageData.data,weights:e.weights,width:e.padded.width,height:e.padded.height,protectStructure:!0}),a=DT(e,n);t.putImageData(a.imageData,a.x,a.y)}function yP(t){return{width:t.width,height:t.height,data:new Uint8ClampedArray(t.data)}}function CT(t){return{...t,imageData:yP(t.imageData)}}function bT(t,e){if(!t?.data||!e?.data||t.width!==e.width||t.height!==e.height||t.data.length!==e.data.length)return 1/0;let A=0,r=0,n=t.data,a=e.data;for(let i=0;i<n.length;i+=16){let s=.2126*n[i]+.7152*n[i+1]+.0722*n[i+2],o=.2126*a[i]+.7152*a[i+1]+.0722*a[i+2];A+=Math.abs(s-o),r++}return r>0?A/r:1/0}function ET(t=null){if(!t||t.enabled===!1)return null;let e=Number.isFinite(t.maxFrames)?Math.max(0,Math.round(t.maxFrames)):0;return e<=0?null:{maxFrames:e,threshold:Number.isFinite(t.threshold)?Math.max(0,t.threshold):gT}}async function TT(t,e,A,{runtime:r=null,sigma:n=zu,strength:a=Kt,padding:i=void 0,temporalReuse:s=null,frameCache:o=null}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let c=mP(r),g=PP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:c?.width,targetHeight:c?.height});if(!g)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let u=ET(s),l=u&&o?yP(g.padded):null;if(u&&o?.denoised&&o?.previousInput){let h=bT(g.padded,o.previousInput),y=Number.isFinite(o.reuseCount)?o.reuseCount:0;if(y<u.maxFrames&&h<=u.threshold)return Af(t,g,o.denoised),o.previousInput=l,o.reuseCount=y+1,{denoiseRuntimeStatus:"reused",denoiseRuntime:`${o.denoised.runtime||r.id||"allenk-fdncnn-runtime"}+temporal-cache`,denoiseRuntimeMacs:0,denoiseRuntimeRunMs:0,denoiseRuntimeChangeScore:h,denoiseRuntimeReuseCount:o.reuseCount}}let f=await r.denoiseImageData({imageData:pP(g,c),sigma:g.options.sigma}),p=wP(g,f);return Af(t,g,p),u&&o&&(o.previousInput=l,o.denoised=CT(p),o.reuseCount=0),{denoiseRuntimeStatus:"applied",denoiseRuntime:p.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:p.macs??null,denoiseRuntimeRunMs:p.runMs??null}}function nf(t,e,A,r={}){let n=Hu(r),a=n.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE;return n.residualCleanupStrength>0&&!a&&tf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup}),n.denoiseBackend===Ke.CANVAS_EDGE_DENOISE?mT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_EDGE_BAND_DENOISE?hT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_EDGE_CORE_DENOISE?pT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_FOOTPRINT_POLISH?PT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Ke.CANVAS_TEXTURE_REPAIR?yT(t,e,A,{strength:n.textureRepairStrength}):n.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&Object.assign(n,IT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding})),n.residualCleanupStrength>0&&a&&tf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n}async function IP(t,e,A,r={}){let n=Hu(r);return n.denoiseBackend!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?nf(t,e,A,r):(Object.assign(n,await TT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding,temporalReuse:n.allenkFdncnnTemporalReuse,frameCache:n.allenkFdncnnFrameCache})),n.residualCleanupStrength>0&&tf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n)}var fo=Object.freeze([Object.freeze({id:"allenk-fdncnn-veo-text-23x10",modelSize:86,modelWidth:86,modelHeight:74,maxWatermarkSize:23,matchWatermark:Object.freeze({width:23,height:10}),modelUrl:"./models/allenk-fdncnn/model_core_fp32_86x74.onnx",inputShape:Object.freeze([1,4,74,86]),outputShape:Object.freeze([1,3,74,86]),padding:32}),Object.freeze({id:"allenk-fdncnn-104",modelSize:104,modelWidth:104,modelHeight:104,maxWatermarkSize:56,modelUrl:"./models/allenk-fdncnn/model_core_fp32_104.onnx",inputShape:Object.freeze([1,4,104,104]),outputShape:Object.freeze([1,3,104,104])}),Object.freeze({id:"allenk-fdncnn-200",modelSize:200,modelWidth:200,modelHeight:200,maxWatermarkSize:1/0,modelUrl:"./models/allenk-fdncnn/model_core_fp32_200.onnx",inputShape:Object.freeze([1,4,200,200]),outputShape:Object.freeze([1,3,200,200])})]),DP=fo.find(t=>t.id==="allenk-fdncnn-200")||fo[fo.length-1],kT=64;function GT(t=null){let e=Number(t?.width),A=Number(t?.height??t?.width);return!Number.isFinite(e)||!Number.isFinite(A)||e<=0||A<=0?null:Math.max(e,A)}function af(t,e){return{...t,inputShape:[...t.inputShape],outputShape:[...t.outputShape],padding:e}}function jn(t=null){let e=GT(t);if(!e)return af(DP,kT);let A=Math.round(Number(t?.width)),r=Math.round(Number(t?.height??t?.width)),n=fo.find(s=>s.matchWatermark&&s.matchWatermark.width===A&&s.matchWatermark.height===r);if(n)return af(n,n.padding);let a=fo.find(s=>e<=s.maxWatermarkSize)||DP,i=Math.max(0,Math.floor((a.modelSize-e)/2));return af(a,i)}var Vn=12,mo=1,sf=!1,of=12e6,xT=2,ST="no-preference",YT="quality",vT="constant",OT="detail",_T=Object.freeze({primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),MT=5,CP=.05,RT=.14,QT=.035,EP=Object.freeze({copied:!1,packetCount:0,codec:null,skipReason:"disabled"});function TP(t,e){if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(t,e);if(typeof document<"u"){let A=document.createElement("canvas");return A.width=t,A.height=e,A}throw new Error("\u5F53\u524D\u73AF\u5883\u6CA1\u6709\u53EF\u7528 Canvas")}function kP(t){let e=t.getContext("2d",{willReadFrequently:!0});if(!e)throw new Error("\u65E0\u6CD5\u521B\u5EFA 2D Canvas \u4E0A\u4E0B\u6587");return e}function FT(t){return new zn({source:new Vs(t),formats:hd})}async function cf(t){let e=FT(t),A=await e.getPrimaryVideoTrack();if(!A)throw e.dispose(),new Error("\u6587\u4EF6\u4E2D\u6CA1\u6709\u53EF\u5904\u7406\u7684\u89C6\u9891\u8F68");return{input:e,videoTrack:A}}async function GP(t,e){let[A,r,n,a,i,s]=await Promise.all([e.getDisplayWidth(),e.getDisplayHeight(),e.getFirstTimestamp().catch(()=>0),e.getCodec().catch(()=>null),t.getDurationFromMetadata([e],{skipLiveWait:!0}).catch(()=>null),e.computePacketStats(90,{skipLiveWait:!0}).catch(()=>null)]),o=Number.isFinite(i)&&i>0?i:await e.computeDuration({skipLiveWait:!0}).catch(()=>null),c=s?.averagePacketRate&&Number.isFinite(s.averagePacketRate)?s.averagePacketRate:30;return{width:A,height:r,firstTimestamp:Number.isFinite(n)?n:0,duration:Number.isFinite(o)?o:null,codec:a,frameRate:c,frameCountEstimate:s?.packetCount||(o?Math.round(o*c):null),averageBitrate:s?.averageBitrate||null}}function zT({firstTimestamp:t,duration:e,sampleCount:A}){let r=Math.max(1,Math.round(A||Vn));if(!Number.isFinite(e)||e<=0)return[t];let n=Math.max(0,t),a=e/(r+1);return Array.from({length:r},(i,s)=>n+a*(s+1))}function xP(t){let e=Number(t);return Number.isFinite(e)&&e>0?e:of}function NT(t,e){!e?.decoderConfig||typeof e.decoderConfig!="object"||(e.decoderConfig.colorSpace={..._T})}function HT(t){return{codec:"avc",bitrate:xP(t),alpha:"discard",keyFrameInterval:xT,latencyMode:YT,bitrateMode:vT,hardwareAcceleration:ST,contentHint:OT,onEncodedPacket:NT}}function UT(t,e){let A=t.timestamp-e;return A>=0?t:t.timestamp+t.duration<=e?null:t.clone({timestamp:0,duration:Math.max(0,t.duration+A)})}function qT(t,e){return!!(e&&t.getSupportedAudioCodecs().includes(e))}async function LT({input:t,output:e,format:A,startTimestamp:r,preserveAudio:n}){if(n===!1)return{source:null,track:null,meta:null,result:EP};let a=await t.getPrimaryAudioTrack().catch(()=>null);if(!a)return{source:null,track:null,meta:null,result:{copied:!1,packetCount:0,codec:null,skipReason:"no-audio-track"}};let i=await a.getCodec().catch(()=>null);if(!qT(A,i))return{source:null,track:a,meta:null,result:{copied:!1,packetCount:0,codec:i,skipReason:"unsupported-audio-codec"}};let s=new io(i);e.addAudioTrack(s);let o=await a.getDecoderConfig().catch(()=>null);return{source:s,track:a,meta:{decoderConfig:o??void 0},result:{copied:!1,packetCount:0,codec:i,skipReason:null},startTimestamp:r}}async function jT(t){if(!t?.source||!t.track)return t?.result||EP;let e=new An(t.track),A=0;try{for await(let r of e.packets()){let n=UT(r,t.startTimestamp||0);n&&(await t.source.add(n,t.meta),A++)}return t.source.close(),{copied:A>0,packetCount:A,codec:t.result.codec,skipReason:A>0?null:"no-audio-packets"}}catch(r){throw t.source.close(),r}}async function SP(t){let{input:e,videoTrack:A}=await cf(t);try{let r=await GP(e,A);return{...r,candidates:co(r.width,r.height)}}finally{e.dispose()}}async function Uu(t,e={}){let A=typeof e.onProgress=="function"?e.onProgress:()=>{},r=typeof e.yieldToMainThread=="function"?e.yieldToMainThread:async()=>{},{input:n,videoTrack:a}=await cf(t);try{let i=await GP(n,a);A({phase:"detect",step:"metadata",progress:.04,metadata:i}),await r();let s=TP(i.width,i.height),o=kP(s),c=new na(a),g=zT({firstTimestamp:i.firstTimestamp,duration:i.duration,sampleCount:e.sampleCount??Vn}),u=[],l=0;for await(let p of c.samples())try{if(l>=g.length)break;if(p.timestamp<g[l]&&u.length>0)continue;p.draw(o,0,0,i.width,i.height),u.push({timestamp:p.timestamp,imageData:o.getImageData(0,0,i.width,i.height)}),l++,A({phase:"detect",step:"sample",progress:.06+.54*Math.min(1,u.length/g.length),metadata:i,sampledFrames:u.length,sampleCount:g.length}),await r()}finally{p.close()}if(!u.length)throw new Error("\u65E0\u6CD5\u4ECE\u89C6\u9891\u4E2D\u62BD\u53D6\u68C0\u6D4B\u5E27");A({phase:"detect",step:"score",progress:.65,metadata:i,sampledFrames:u.length,sampleCount:g.length}),await r();let f=await eP({frames:u,width:i.width,height:i.height,candidates:e.candidates,minConfidence:e.minConfidence,alphaMapOptions:{profile:e.alphaProfile,lowAlphaScale:e.alphaLowScale,bodyAlphaScale:e.alphaBodyScale,edgeBoost:e.alphaEdgeBoost,localRegion:e.alphaLocalRegion,localLowAlphaScale:e.alphaLocalLowScale,localBodyAlphaScale:e.alphaLocalBodyScale},yieldToMainThread:r});return A({phase:"detect",step:"done",progress:1,metadata:i,detection:f}),{metadata:i,detection:f}}finally{n.dispose()}}function VT(t){let e=new Uint8ClampedArray(t.data);return typeof ImageData<"u"?new ImageData(e,t.width,t.height):{width:t.width,height:t.height,data:e}}function dA(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function KT(t,e,A,r=18){let n=Math.max(0,e.x-r),a=Math.max(0,e.y-r),i=Math.min(t.canvas.width,e.x+e.width+r),s=Math.min(t.canvas.height,e.y+e.height+r),o=t.getImageData(n,a,i-n,s-a),c=0,g=0,u=.015;for(let l=0;l<o.height;l++)for(let f=0;f<o.width;f++){let p=n+f,h=a+l,y=p>=e.x&&p<e.x+e.width&&h>=e.y&&h<e.y+e.height,w=y?0:1;if(y){let b=p-e.x,E=h-e.y;(A[E*e.width+b]||0)<=u&&(w=.35)}if(w<=0)continue;let D=(l*o.width+f)*4;c+=dA(o.data,D)*w,g+=w}return{mean:g>0?c/g:null,padded:o}}function WT(t,e,A){if(!Number.isFinite(A))return 0;let r=0,n=0;for(let a=0;a<t.height;a++)for(let i=0;i<t.width;i++){let s=e[a*t.width+i]||0;if(s<=.025)continue;let o=Math.min(1,Math.max(0,s*8)),c=(a*t.width+i)*4;r+=dA(t.data,c)*o,n+=o}return n<=0?0:r/n-A}function Mr(t,e,A){if(t===e)return A>=e?1:0;let r=Math.max(0,Math.min(1,(A-t)/(e-t)));return r*r*(3-2*r)}function uf(t,e,A){let r=VT(t);return kB(r,e,{x:0,y:0,width:t.width,height:t.height},{alphaGain:A}),r}function ZT(t,e,A,r,{strength:n=Kt}={}){let a=t.getImageData(e.x,e.y,e.width,e.height);if(!r||r.width!==a.width||r.height!==a.height||!Number.isFinite(n)||n<=0)return a;let i=Math.max(0,Math.min(1,n)),s=new Uint8ClampedArray(a.data),o=!1;for(let g=0;g<a.height;g++)for(let u=0;u<a.width;u++){let l=g*a.width+u,f=A[l]||0;if(f<=.025)continue;let p=l*4,h=dA(a.data,p),y=dA(r.data,p),w=Math.abs(h-y),D=1-Mr(5,22,w),b=Mr(.035,.24,f),E=Math.min(.26,i*b*D*.32);if(!(E<=.012)){for(let x=0;x<3;x++)s[p+x]=Math.round(a.data[p+x]*(1-E)+r.data[p+x]*E);o=!0}}if(!o)return a;let c=typeof ImageData<"u"?new ImageData(s,a.width,a.height):{width:a.width,height:a.height,data:s};return t.putImageData(c,e.x,e.y),c}function $T(t,e,A,r,n,{strength:a=Kt}={}){let i=t.getImageData(e.x,e.y,e.width,e.height);if(!n?.originalRoi||!n?.processedRoi||n.originalRoi.width!==i.width||n.originalRoi.height!==i.height||n.processedRoi.width!==i.width||n.processedRoi.height!==i.height||!Number.isFinite(a)||a<=0)return{originalRoi:r,processedRoi:i};let s=Math.max(0,Math.min(1,a)),o=new Uint8ClampedArray(i.data),c=!1;for(let u=0;u<i.height;u++)for(let l=0;l<i.width;l++){let f=u*i.width+l,p=A[f]||0;if(p<=.025)continue;let h=f*4,y=dA(r.data,h),w=dA(n.originalRoi.data,h),D=Math.abs(y-w),b=dA(i.data,h)-y,E=dA(n.processedRoi.data,h)-w,x=Math.abs(b-E),S=1-Mr(4,20,D),k=Mr(1.5,10,x),R=Mr(.035,.24,p),M=Math.min(.34,s*S*k*R*.42);if(!(M<=.012)){for(let N=0;N<3;N++){let V=i.data[h+N]-r.data[h+N],F=n.processedRoi.data[h+N]-n.originalRoi.data[h+N],K=V*(1-M)+F*M;o[h+N]=Math.max(0,Math.min(255,Math.round(r.data[h+N]+K)))}c=!0}}if(!c)return{originalRoi:r,processedRoi:i};let g=typeof ImageData<"u"?new ImageData(o,i.width,i.height):{width:i.width,height:i.height,data:o};return t.putImageData(g,e.x,e.y),{originalRoi:r,processedRoi:g}}function bP(t){let e=new Float32Array(t.width*t.height);for(let A=0;A<e.length;A++)e[A]=dA(t.data,A*4);return e}function JT(t,e,A,r,n,a,i,s){let o=0,c=0;for(let g=-1;g<=1;g++){let u=a+g,l=a+s+g;if(!(u<0||u>=r||l<0||l>=r))for(let f=-1;f<=1;f++){let p=n+f,h=n+i+f;p<0||p>=A||h<0||h>=A||(o+=Math.abs(t[u*A+p]-e[l*A+h]),c++)}}return c>0?o/c:Number.POSITIVE_INFINITY}function XT(t,e,A,r,n,{strength:a=Kt}={}){let i=t.getImageData(e.x,e.y,e.width,e.height);if(!n?.originalRoi||!n?.processedRoi||n.originalRoi.width!==i.width||n.originalRoi.height!==i.height||n.processedRoi.width!==i.width||n.processedRoi.height!==i.height||!Number.isFinite(a)||a<=0)return{originalRoi:r,processedRoi:i};let s=Math.max(0,Math.min(1,a)),o=i.width,c=i.height,g=bP(r),u=bP(n.originalRoi),l=new Uint8ClampedArray(i.data),f=!1;for(let h=0;h<c;h++)for(let y=0;y<o;y++){let w=h*o+y,D=A[w]||0;if(D<=.025)continue;let b=0,E=0,x=Number.POSITIVE_INFINITY;for(let ae=-2;ae<=2;ae++)for(let we=-2;we<=2;we++){let et=y+we,tt=h+ae;if(et<0||et>=o||tt<0||tt>=c)continue;let $e=JT(g,u,o,c,y,h,we,ae);$e<x&&(x=$e,b=we,E=ae)}let S=(h+E)*o+y+b,k=w*4,R=S*4,M=dA(i.data,k)-g[w],N=dA(n.processedRoi.data,k)-u[w],V=dA(n.processedRoi.data,R)-u[S],F=Math.abs(M-V),L=Math.abs(M-N)-F;if(L<=.5||x>8)continue;let _=1-Mr(2.5,8,x),W=Mr(.5,5,L),pe=Mr(1.5,10,F),Ae=Mr(.035,.24,D),De=Math.min(.24,s*_*W*pe*Ae*.36);if(!(De<=.012)){for(let ae=0;ae<3;ae++){let we=i.data[k+ae]-r.data[k+ae],et=n.processedRoi.data[R+ae]-n.originalRoi.data[R+ae],tt=we*(1-De)+et*De;l[k+ae]=Math.max(0,Math.min(255,Math.round(r.data[k+ae]+tt)))}f=!0}}if(!f)return{originalRoi:r,processedRoi:i};let p=typeof ImageData<"u"?new ImageData(l,i.width,i.height):{width:i.width,height:i.height,data:l};return t.putImageData(p,e.x,e.y),{originalRoi:r,processedRoi:p}}function ek(t,e){let A=t.canvas.width-e.x-e.width,r=t.canvas.height-e.y-e.height,n=Math.round(e.width*1.8);return A>=n||r>=n}function YP({ctx:t,originalRoi:e,position:A,alphaMap:r,seedGain:n,previousGain:a}){let i=KT(t,A,r);if(!Number.isFinite(i.mean))return n;let s=Math.max(.2,n-.3),o=Math.min(1.15,n+.3),c=n,g=Number.POSITIVE_INFINITY;for(let u=0;u<MT;u++){let l=(s+o)/2,f=uf(e,r,l),p=WT(f,r,i.mean),h=Math.abs(p);h<g&&(g=h,c=l),p>0?s=l:o=l}return Number.isFinite(a)&&(c=Math.max(a-CP,Math.min(a+CP,c))),c}function tk(t,e,A){let{position:r,alphaMap:n}=e,a=Qu(t.getImageData(r.x,r.y,r.width,r.height),{x:0,y:0,width:r.width,height:r.height},n);if(a.confidence<A.lowConfidenceThreshold)return{alphaGain:A.previousAlphaGain??A.seedAlphaGain,frameScore:a,skipped:!0,mode:"skip"};let s=t.getImageData(r.x,r.y,r.width,r.height),o=A.adaptiveAlpha&&a.confidence>=A.highConfidenceThreshold,c=o?YP({ctx:t,originalRoi:s,position:r,alphaMap:n,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,g=uf(s,n,c);t.putImageData(g,r.x,r.y),nf(t,r,n,{residualCleanupStrength:A.residualCleanupStrength,highQualityCleanup:A.highQualityCleanup,denoiseBackend:A.denoiseBackend,edgeDenoiseStrength:A.edgeDenoiseStrength,allenkFdncnnRuntime:A.allenkFdncnnRuntime,allenkFdncnnSigma:A.allenkFdncnnSigma,textureRepair:A.textureRepair,textureRepairStrength:A.textureRepairStrength});let u=A.denoiseBackend===Ke.CANVAS_TEMPORAL_STABILIZE?ZT(t,r,n,A.previousTemporalRoi,{strength:A.edgeDenoiseStrength}):null,l=A.denoiseBackend===Ke.CANVAS_TEMPORAL_DELTA_STABILIZE?$T(t,r,n,s,A.previousTemporalDeltaFrame,{strength:A.edgeDenoiseStrength}):null,f=A.denoiseBackend===Ke.CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE&&ek(t,r)?XT(t,r,n,s,A.previousTemporalMatchDeltaFrame,{strength:A.edgeDenoiseStrength}):null;return{alphaGain:c,frameScore:a,skipped:!1,mode:o?"adaptive":"seed",temporalRoi:u,temporalDeltaFrame:l,temporalMatchDeltaFrame:f}}async function Ak(t,e,A){if(!(A.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&A.allenkFdncnnRuntime))return tk(t,e,A);let{position:n,alphaMap:a}=e,i=Qu(t.getImageData(n.x,n.y,n.width,n.height),{x:0,y:0,width:n.width,height:n.height},a);if(i.confidence<A.lowConfidenceThreshold)return{alphaGain:A.previousAlphaGain??A.seedAlphaGain,frameScore:i,skipped:!0,mode:"skip"};let o=t.getImageData(n.x,n.y,n.width,n.height),c=A.adaptiveAlpha&&i.confidence>=A.highConfidenceThreshold,g=c?YP({ctx:t,originalRoi:o,position:n,alphaMap:a,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,u=uf(o,a,g);t.putImageData(u,n.x,n.y);let l=await IP(t,n,a,{residualCleanupStrength:A.residualCleanupStrength,highQualityCleanup:A.highQualityCleanup,denoiseBackend:A.denoiseBackend,edgeDenoiseStrength:A.edgeDenoiseStrength,allenkFdncnnRuntime:A.allenkFdncnnRuntime,allenkFdncnnSigma:A.allenkFdncnnSigma,allenkFdncnnPadding:A.allenkFdncnnPadding,allenkFdncnnTemporalReuse:A.allenkFdncnnTemporalReuse,allenkFdncnnFrameCache:A.allenkFdncnnFrameCache,textureRepair:A.textureRepair,textureRepairStrength:A.textureRepairStrength});return{alphaGain:g,frameScore:i,skipped:!1,mode:c?"adaptive":"seed",temporalRoi:null,temporalDeltaFrame:null,temporalMatchDeltaFrame:null,cleanupResult:l}}async function vP(t,e={}){let A=Number.isFinite(e.alphaGain)&&e.alphaGain>0?e.alphaGain:mo,r=e.adaptiveAlpha===!0||e.adaptiveAlpha!==!1&&sf,n=Hu(e),{residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:g}=n,u=typeof e.onProgress=="function"?e.onProgress:()=>{},l=xP(e.videoBitrate);u({phase:"detect",progress:0});let f=e.detection||await Uu(t,{sampleCount:e.sampleCount,minConfidence:e.minConfidence,candidates:e.candidates,alphaProfile:e.alphaProfile,alphaLowScale:e.alphaLowScale,alphaBodyScale:e.alphaBodyScale,alphaEdgeBoost:e.alphaEdgeBoost,alphaLocalRegion:e.alphaLocalRegion,alphaLocalLowScale:e.alphaLocalLowScale,alphaLocalBodyScale:e.alphaLocalBodyScale,onProgress:u,yieldToMainThread:e.yieldToMainThread}),{metadata:p,detection:h}=f,y=rk(n,h),w=h?.alphaSeed?.seedGain,D=Number.isFinite(w)&&Math.abs(A-mo)<1e-4?w:A;if(u({phase:"detect",progress:1,metadata:p,detection:h}),!h.isConfident&&e.allowLowConfidence!==!0)throw new Error("\u89C6\u9891\u6C34\u5370\u68C0\u6D4B\u7F6E\u4FE1\u5EA6\u504F\u4F4E\uFF0C\u5DF2\u505C\u6B62\u5BFC\u51FA\u3002\u53EF\u6253\u5F00\u4F4E\u7F6E\u4FE1\u5BFC\u51FA\u540E\u91CD\u8BD5\u3002");let b=HT(l);if(!await yd("avc",{width:p.width,height:p.height,bitrate:b.bitrate,latencyMode:b.latencyMode,bitrateMode:b.bitrateMode,hardwareAcceleration:b.hardwareAcceleration,contentHint:b.contentHint}))throw new Error("\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 WebCodecs H.264/AVC \u7F16\u7801\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002");let{input:x,videoTrack:S}=await cf(t),k=TP(p.width,p.height),R=kP(k),M=new Or,N=new ya({fastStart:"in-memory"}),V=new so({format:N,target:M}),F=new no(k,b);V.addVideoTrack(F,{frameRate:p.frameRate});let K=await LT({input:x,output:V,format:N,startTimestamp:p.firstTimestamp,preserveAudio:e.preserveAudio}),L=0,_=0,W=0,pe=0,Ae=0,De=0,ae=-1/0,we=null,et=null,tt=null,$e=null,pA=s===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?{}:null,Je=p.frameRate>0?1/p.frameRate:1/30;try{await V.start();let qe=jT(K),ut=new na(S);for await(let se of ut.samples()){let ue=Math.max(0,se.timestamp-p.firstTimestamp);ue<ae&&(ue=ae+Je);let Yt=Number.isFinite(se.duration)&&se.duration>0?se.duration:Je;try{se.draw(R,0,0,p.width,p.height);let pt=await Ak(R,h,{seedAlphaGain:D,previousAlphaGain:we,adaptiveAlpha:r,residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:g,allenkFdncnnRuntime:e.allenkFdncnnRuntime,allenkFdncnnSigma:e.allenkFdncnnSigma,allenkFdncnnPadding:y,allenkFdncnnTemporalReuse:e.allenkFdncnnTemporalReuse,allenkFdncnnFrameCache:pA,previousTemporalRoi:et,previousTemporalDeltaFrame:tt,previousTemporalMatchDeltaFrame:$e,highConfidenceThreshold:e.highConfidenceThreshold??RT,lowConfidenceThreshold:e.lowConfidenceThreshold??QT});we=pt.alphaGain;let sr=pt.cleanupResult?.denoiseRuntimeStatus;sr==="applied"?Ae++:sr==="reused"&&De++,pt.skipped?(_++,et=null,tt=null,$e=null):pt.mode==="adaptive"?(W++,et=pt.temporalRoi||null,tt=pt.temporalDeltaFrame||null,$e=pt.temporalMatchDeltaFrame||null):(pe++,et=pt.temporalRoi||null,tt=pt.temporalDeltaFrame||null,$e=pt.temporalMatchDeltaFrame||null)}finally{se.close()}await F.add(ue,Yt),ae=ue,L++;let Se=p.frameCountEstimate||Math.max(1,Math.round((p.duration||0)*p.frameRate)),Ne=ue+Yt,Rt=Number.isFinite(p.duration)&&p.duration>0?Math.max(0,Math.min(1,Ne/p.duration)):null;u({phase:"export",progress:Rt??(Se?Math.min(1,L/Se):0),processedFrames:L,frameEstimate:Se,elapsedSeconds:Ne,metadata:p,detection:h,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De,alphaGain:D})}F.close();let Be=await qe;if(await V.finalize(),!M.buffer)throw new Error("\u89C6\u9891\u5BFC\u51FA\u5931\u8D25\uFF0C\u8F93\u51FA\u4E3A\u7A7A");return{blob:new Blob([M.buffer],{type:"video/mp4"}),metadata:p,detection:h,alphaGain:D,adaptiveAlpha:r,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,allenkFdncnnPadding:y,textureRepair:c,textureRepairStrength:g,residualCleanupStrength:a,videoBitrate:l,preserveAudio:e.preserveAudio!==!1,audioCopied:Be.copied,audioPacketCount:Be.packetCount,audioCodec:Be.codec,audioSkipReason:Be.skipReason,processedFrames:L,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De}}catch(qe){throw V.state!=="finalized"&&V.state!=="canceled"&&await V.cancel().catch(()=>{}),qe}finally{x.dispose()}}function rk(t={},e=null){return Number.isFinite(t.allenkFdncnnPadding)||t.denoiseBackend!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?t.allenkFdncnnPadding:jn(e?.position).padding}var OP=1.8,_P=12,MP=1,nk=1.8,ik=.4,ak=1,sk=1.2,ok=1.45,ck=.9;function uk(t){if(!t||!Number.isFinite(t.width)||t.width<=0)return!1;let e=Number(t.marginRight),A=Number(t.marginBottom),r=Number.isFinite(Number(t.videoWidth))&&Number.isFinite(Number(t.x))?Number(t.videoWidth)-Number(t.x)-Number(t.width):null,n=Number.isFinite(Number(t.videoHeight))&&Number.isFinite(Number(t.y))?Number(t.videoHeight)-Number(t.y)-Number(t.height||t.width):null,a=Number.isFinite(e)?e:r,i=Number.isFinite(A)?A:n;return Number.isFinite(a)&&a>=t.width*OP||Number.isFinite(i)&&i>=t.width*OP}function gk(t={}){let e=`${t.id||""} ${t.label||""}`.toLowerCase();return e.includes("inset")||e.includes("relocated")}function lk(t,e=null){if(!t?.isConfident||!t.position)return!1;let A={...t.position,videoWidth:t.position.videoWidth??e?.width,videoHeight:t.position.videoHeight??e?.height};return uk(A)||gk(t.summary?.best)}function gf(){return{id:"relocated-review",label:"AI \u81EA\u52A8\u5904\u7406",description:"\u81EA\u52A8\u68C0\u6D4B\u6C34\u5370\u4F4D\u7F6E\u5E76\u4F7F\u7528 AI \u6A21\u578B\u6E05\u7406\uFF0C\u65E0\u9700\u624B\u52A8\u8C03\u53C2\u3002",alphaGain:MP,adaptiveAlpha:!1,highQualityCleanup:an,denoiseBackend:Ke.CANVAS_FOOTPRINT_POLISH,edgeDenoiseStrength:ak,residualCleanupStrength:sk,sampleCount:_P,videoBitrateMbps:12,allowLowConfidence:!0}}function RP(){return{id:"standard-auto",label:"AI \u81EA\u52A8\u5904\u7406",description:"\u9ED8\u8BA4\u4F7F\u7528\u672C\u5730 AI \u6A21\u578B\u5904\u7406\u53F3\u4E0B\u89D2 Gemini/Veo \u6C34\u5370\u3002",alphaGain:MP,adaptiveAlpha:!1,highQualityCleanup:an,denoiseBackend:Ke.ALLENK_FDNCNN_BROWSER_SPIKE,edgeDenoiseStrength:nk,residualCleanupStrength:ik,sampleCount:_P,videoBitrateMbps:"",allowLowConfidence:!1}}function dk(){return{...RP(),id:"veo-text-auto",edgeDenoiseStrength:ok,residualCleanupStrength:ck}}function lf(t=null,e=null){return lk(t,e)?gf():t?.watermarkKind==="veo-text"?dk():RP()}function QP({windowObject:t=globalThis,adaptiveAlphaInput:e}={}){let A=t?.__gwrVideoOverrideAdaptiveAlpha;return typeof A!="boolean"||!e?!1:(e.checked=A,!0)}function FP({windowObject:t=globalThis,videoBitrateInput:e,setNumberControl:A}={}){let r=Number(t?.__gwrVideoOverrideBitrate);return!Number.isFinite(r)||r<=0||!e||typeof A!="function"?!1:(A(e,r/1e3/1e3),!0)}var fk="gwr-debug-file-handoff";var Ta="files",df="latest",mk=new Set(["image/jpeg","image/png","image/webp"]),hk=new Set([".jpg",".jpeg",".png",".webp"]),pk=new Set([".mp4",".webm",".mov",".m4v"]);function wk(t){let e=typeof t?.name=="string"?t.name.toLowerCase():"",A=e.lastIndexOf(".");return A>=0?e.slice(A):""}function ho(t){if(!t)return null;let e=typeof t.type=="string"?t.type.toLowerCase():"",A=wk(t);return e.startsWith("video/")||pk.has(A)?"video":mk.has(e)||hk.has(A)?"image":null}function ff(t){let e=Array.from(t||[]).filter(Boolean);return e.find(A=>ho(A)==="video")||e.find(A=>ho(A)==="image")||null}function zP(){return new Promise((t,e)=>{let A=globalThis.indexedDB;if(!A){e(new Error("\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u672C\u5730\u6587\u4EF6\u6682\u5B58\uFF0C\u8BF7\u76F4\u63A5\u6253\u5F00\u76EE\u6807\u8C03\u8BD5\u9875\u540E\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002"));return}let r=A.open(fk,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(Ta)||n.createObjectStore(Ta,{keyPath:"id"})},r.onerror=()=>e(r.error||new Error("\u65E0\u6CD5\u6253\u5F00\u672C\u5730\u6587\u4EF6\u6682\u5B58\u3002")),r.onsuccess=()=>t(r.result)})}async function NP(t,e=ho(t)){if(!t||!e)throw new Error("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\u3002");let A={id:df,kind:e,file:t,name:t.name||"",type:t.type||"",size:Number.isFinite(t.size)?t.size:0,updatedAt:Date.now()},r=await zP();return await new Promise((n,a)=>{let i=r.transaction(Ta,"readwrite");i.objectStore(Ta).put(A),i.oncomplete=()=>n(),i.onerror=()=>a(i.error||new Error("\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),i.onabort=()=>a(i.error||new Error("\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5DF2\u53D6\u6D88\u3002"))}).finally(()=>r.close()),A}async function HP(t=null){let e=await zP(),A=null;return await new Promise((r,n)=>{let a=e.transaction(Ta,"readwrite"),i=a.objectStore(Ta),s=i.get(df);s.onsuccess=()=>{let o=s.result||null;o&&(!t||o.kind===t)&&(A=o,i.delete(df))},s.onerror=()=>n(s.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),a.oncomplete=()=>r(),a.onerror=()=>n(a.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5931\u8D25\u3002")),a.onabort=()=>n(a.error||new Error("\u8BFB\u53D6\u672C\u5730\u6587\u4EF6\u6682\u5B58\u5DF2\u53D6\u6D88\u3002"))}).finally(()=>e.close()),A}var $f={};cp($f,{InferenceSession:()=>Mf,TRACE:()=>Zu,TRACE_EVENT_BEGIN:()=>ti,TRACE_EVENT_END:()=>Ai,TRACE_FUNC_BEGIN:()=>Xn,TRACE_FUNC_END:()=>ei,Tensor:()=>qA,default:()=>qk,env:()=>ot,registerBackend:()=>Io});var UA={};var Of=Object.defineProperty,Bk=Object.getOwnPropertyDescriptor,Pk=Object.getOwnPropertyNames,yk=Object.prototype.hasOwnProperty,Ik=(t=>typeof zt<"u"?zt:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof zt<"u"?zt:e)[A]}):t)(function(t){if(typeof zt<"u")return zt.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ze=(t,e)=>()=>(t&&(e=t(t=0)),e),Xu=(t,e)=>{for(var A in e)Of(t,A,{get:e[A],enumerable:!0})},Dk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Pk(e))!yk.call(t,n)&&n!==A&&Of(t,n,{get:()=>e[n],enumerable:!(r=Bk(e,n))||r.enumerable});return t},xf=t=>Dk(Of({},"__esModule",{value:!0}),t),po,sn,Io,UP,sy,oy=ze(()=>{"use strict";po=new Map,sn=[],Io=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=po.get(t);if(r===void 0)po.set(t,{backend:e,priority:A});else{if(r.priority>A)return;if(r.priority===A&&r.backend!==e)throw new Error(`cannot register backend "${t}" using priority ${A}`)}if(A>=0){let n=sn.indexOf(t);n!==-1&&sn.splice(n,1);for(let a=0;a<sn.length;a++)if(po.get(sn[a]).priority<=A){sn.splice(a,0,t);return}sn.push(t)}return}throw new TypeError("not a valid backend")},UP=async t=>{let e=po.get(t);if(!e)return"backend not found.";if(e.initialized)return e.backend;if(e.aborted)return e.error;{let A=!!e.initPromise;try{return A||(e.initPromise=e.backend.init(t)),await e.initPromise,e.initialized=!0,e.backend}catch(r){return A||(e.error=`${r}`,e.aborted=!0),e.error}finally{delete e.initPromise}}},sy=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?sn:A,n,a=[],i=new Set;for(let o of r){let c=await UP(o);typeof c=="string"?a.push({name:o,err:c}):(n||(n=c),n===c&&i.add(o))}if(!n)throw new Error(`no available backend found. ERR: ${a.map(o=>`[${o.name}] ${o.err}`).join(", ")}`);for(let{name:o,err:c}of a)A.includes(o)&&console.warn(`removing requested execution provider "${o}" from session options because it is not available: ${c}`);let s=e.filter(o=>i.has(typeof o=="string"?o:o.name));return[n,new Proxy(t,{get:(o,c)=>c==="executionProviders"?s:Reflect.get(o,c)})]}}),Ck=ze(()=>{"use strict";oy()}),cy,bk=ze(()=>{"use strict";cy="1.26.0"}),mf,Et,uy=ze(()=>{"use strict";bk(),mf="warning",Et={wasm:{},webgl:{},webgpu:{},versions:{common:cy},set logLevel(t){if(t!==void 0){if(typeof t!="string"||["verbose","info","warning","error","fatal"].indexOf(t)===-1)throw new Error(`Unsupported logging level: ${t}`);mf=t}},get logLevel(){return mf}},Object.defineProperty(Et,"logLevel",{enumerable:!0})}),ot,Ek=ze(()=>{"use strict";uy(),ot=Et}),gy,ly,Tk=ze(()=>{"use strict";gy=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);A.width=t.dims[3],A.height=t.dims[2];let r=A.getContext("2d");if(r!=null){let n,a;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[3]):(n=t.dims[3],a=t.dims[2]);let i=e?.format!==void 0?e.format:"RGB",s=e?.norm,o,c;s===void 0||s.mean===void 0?o=[255,255,255,255]:typeof s.mean=="number"?o=[s.mean,s.mean,s.mean,s.mean]:(o=[s.mean[0],s.mean[1],s.mean[2],0],s.mean[3]!==void 0&&(o[3]=s.mean[3])),s===void 0||s.bias===void 0?c=[0,0,0,0]:typeof s.bias=="number"?c=[s.bias,s.bias,s.bias,s.bias]:(c=[s.bias[0],s.bias[1],s.bias[2],0],s.bias[3]!==void 0&&(c[3]=s.bias[3]));let g=a*n,u=0,l=g,f=g*2,p=-1;i==="RGBA"?(u=0,l=g,f=g*2,p=g*3):i==="RGB"?(u=0,l=g,f=g*2):i==="RBG"&&(u=0,f=g,l=g*2);for(let h=0;h<a;h++)for(let y=0;y<n;y++){let w=(t.data[u++]-c[0])*o[0],D=(t.data[l++]-c[1])*o[1],b=(t.data[f++]-c[2])*o[2],E=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+b+","+E+")",r.fillRect(y,h,1,1)}if("toDataURL"in A)return A.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ly=(t,e)=>{let A=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),r;if(A!=null){let n,a,i;e?.tensorLayout!==void 0&&e.tensorLayout==="NHWC"?(n=t.dims[2],a=t.dims[1],i=t.dims[3]):(n=t.dims[3],a=t.dims[2],i=t.dims[1]);let s=e!==void 0&&e.format!==void 0?e.format:"RGB",o=e?.norm,c,g;o===void 0||o.mean===void 0?c=[255,255,255,255]:typeof o.mean=="number"?c=[o.mean,o.mean,o.mean,o.mean]:(c=[o.mean[0],o.mean[1],o.mean[2],255],o.mean[3]!==void 0&&(c[3]=o.mean[3])),o===void 0||o.bias===void 0?g=[0,0,0,0]:typeof o.bias=="number"?g=[o.bias,o.bias,o.bias,o.bias]:(g=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(g[3]=o.bias[3]));let u=a*n;if(e!==void 0&&(e.format!==void 0&&i===4&&e.format!=="RGBA"||i===3&&e.format!=="RGB"&&e.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let l=4,f=0,p=1,h=2,y=3,w=0,D=u,b=u*2,E=-1;s==="RGBA"?(w=0,D=u,b=u*2,E=u*3):s==="RGB"?(w=0,D=u,b=u*2):s==="RBG"&&(w=0,b=u,D=u*2),r=A.createImageData(n,a);for(let x=0;x<a*n;f+=l,p+=l,h+=l,y+=l,x++)r.data[f]=(t.data[w++]-g[0])*c[0],r.data[p]=(t.data[D++]-g[1])*c[1],r.data[h]=(t.data[b++]-g[2])*c[2],r.data[y]=E===-1?255:(t.data[E++]-g[3])*c[3]}else throw new Error("Can not access image data");return r}}),qu,dy,fy,my,hy,py,kk=ze(()=>{"use strict";_f(),qu=(t,e)=>{if(t===void 0)throw new Error("Image buffer must be defined");if(e.height===void 0||e.width===void 0)throw new Error("Image height and width must be defined");if(e.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:A,width:r}=e,n=e.norm??{mean:255,bias:0},a,i;typeof n.mean=="number"?a=[n.mean,n.mean,n.mean,n.mean]:a=[n.mean[0],n.mean[1],n.mean[2],n.mean[3]??255],typeof n.bias=="number"?i=[n.bias,n.bias,n.bias,n.bias]:i=[n.bias[0],n.bias[1],n.bias[2],n.bias[3]??0];let s=e.format!==void 0?e.format:"RGBA",o=e.tensorFormat!==void 0&&e.tensorFormat!==void 0?e.tensorFormat:"RGB",c=A*r,g=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,l=0,f=1,p=2,h=3,y=0,w=c,D=c*2,b=-1;s==="RGB"&&(u=3,l=0,f=1,p=2,h=-1),o==="RGBA"?b=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let E=0;E<c;E++,l+=u,p+=u,f+=u,h+=u)g[y++]=(t[l]+i[0])/a[0],g[w++]=(t[f]+i[1])/a[1],g[D++]=(t[p]+i[2])/a[2],b!==-1&&h!==-1&&(g[b++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new nA("float32",g,[1,4,A,r]):new nA("float32",g,[1,3,A,r])},dy=async(t,e)=>{let A=typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement,r=typeof ImageData<"u"&&t instanceof ImageData,n=typeof ImageBitmap<"u"&&t instanceof ImageBitmap,a=typeof t=="string",i,s=e??{},o=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=g=>typeof HTMLCanvasElement<"u"&&g instanceof HTMLCanvasElement||g instanceof OffscreenCanvas?g.getContext("2d"):null;if(A){let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(l=e.resizedHeight,f=e.resizedWidth),e!==void 0){if(s=e,e.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");s.tensorFormat="RGBA",s.height=l,s.width=f}else s.tensorFormat="RGBA",s.height=l,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,l).data}else throw new Error("Can not access image data")}else if(r){let g,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(g=e.resizedHeight,u=e.resizedWidth):(g=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=g,s.width=u,e!==void 0){let l=o();l.width=u,l.height=g;let f=c(l);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,g).data;else throw new Error("Can not access image data")}else i=t.data}else if(n){if(e===void 0)throw new Error("Please provide image config with format for Imagebitmap");let g=o();g.width=t.width,g.height=t.height;let u=c(g);if(u!=null){let l=t.height,f=t.width;return u.drawImage(t,0,0,f,l),i=u.getImageData(0,0,f,l).data,s.height=l,s.width=f,qu(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((g,u)=>{let l=o(),f=c(l);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{l.width=p.width,l.height=p.height,f.drawImage(p,0,0,l.width,l.height);let h=f.getImageData(0,0,l.width,l.height);s.height=l.height,s.width=l.width,g(qu(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return qu(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},fy=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new nA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},my=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new nA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},hy=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new nA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},py=(t,e,A)=>new nA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),Jn,yo,hf,wy,Gk=ze(()=>{"use strict";Jn=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),yo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),hf=!1,wy=()=>{if(!hf){hf=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(Jn.set("int64",BigInt64Array),yo.set(BigInt64Array,"int64")),e&&(Jn.set("uint64",BigUint64Array),yo.set(BigUint64Array,"uint64")),r?(Jn.set("float16",A),yo.set(A,"float16")):Jn.set("float16",Uint16Array)}}}),By,Py,xk=ze(()=>{"use strict";_f(),By=t=>{let e=1;for(let A=0;A<t.length;A++){let r=t[A];if(typeof r!="number"||!Number.isSafeInteger(r))throw new TypeError(`dims[${A}] must be an integer, got: ${r}`);if(r<0)throw new RangeError(`dims[${A}] must be a non-negative integer, got: ${r}`);e*=r}return e},Py=(t,e)=>{switch(t.location){case"cpu":return new nA(t.type,t.data,e);case"cpu-pinned":return new nA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new nA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new nA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new nA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),nA,_f=ze(()=>{"use strict";Tk(),kk(),Gk(),xk(),nA=class{constructor(t,e,A){wy();let r,n;if(typeof t=="object"&&"location"in t)switch(this.dataLocation=t.location,r=t.type,n=t.dims,t.location){case"cpu-pinned":{let i=Jn.get(r);if(!i)throw new TypeError(`unsupported type "${r}" to create tensor from pinned buffer`);if(!(t.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=t.data;break}case"texture":{if(r!=="float32")throw new TypeError(`unsupported type "${r}" to create tensor from texture`);this.gpuTextureData=t.texture,this.downloader=t.download,this.disposer=t.dispose;break}case"gpu-buffer":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from gpu buffer`);this.gpuBufferData=t.gpuBuffer,this.downloader=t.download,this.disposer=t.dispose;break}case"ml-tensor":{if(r!=="float32"&&r!=="float16"&&r!=="int32"&&r!=="int64"&&r!=="uint32"&&r!=="uint64"&&r!=="int8"&&r!=="uint8"&&r!=="bool"&&r!=="uint4"&&r!=="int4")throw new TypeError(`unsupported type "${r}" to create tensor from MLTensor`);this.mlTensorData=t.mlTensor,this.downloader=t.download,this.disposer=t.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,s;if(typeof t=="string")if(r=t,s=A,t==="string"){if(!Array.isArray(e))throw new TypeError("A string tensor's data must be a string array.");i=e}else{let o=Jn.get(t);if(o===void 0)throw new TypeError(`Unsupported tensor type: ${t}.`);if(Array.isArray(e)){if(t==="float16"&&o===Uint16Array||t==="uint4"||t==="int4")throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${o.name} as data.`);t==="uint64"||t==="int64"?i=o.from(e,BigInt):i=o.from(e)}else if(e instanceof o)i=e;else if(e instanceof Uint8ClampedArray)if(t==="uint8")i=Uint8Array.from(e);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(t==="float16"&&e instanceof Uint16Array&&o!==Uint16Array)i=new globalThis.Float16Array(e.buffer,e.byteOffset,e.length);else throw new TypeError(`A ${r} tensor's data must be type of ${o}`)}else if(s=e,Array.isArray(t)){if(t.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let o=typeof t[0];if(o==="string")r="string",i=t;else if(o==="boolean")r="bool",i=Uint8Array.from(t);else throw new TypeError(`Invalid element type of data array: ${o}.`)}else if(t instanceof Uint8ClampedArray)r="uint8",i=Uint8Array.from(t);else{let o=yo.get(t.constructor);if(o===void 0)throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);r=o,i=t}if(s===void 0)s=[i.length];else if(!Array.isArray(s))throw new TypeError("A tensor's dims must be a number array");n=s,this.cpuData=i,this.dataLocation="cpu"}let a=By(n);if(this.cpuData&&a!==this.cpuData.length&&!((r==="uint4"||r==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=r,this.dims=n,this.size=a}static async fromImage(t,e){return dy(t,e)}static fromTexture(t,e){return fy(t,e)}static fromGpuBuffer(t,e){return my(t,e)}static fromMLTensor(t,e){return hy(t,e)}static fromPinnedBuffer(t,e,A){return py(t,e,A)}toDataURL(t){return gy(this,t)}toImageData(t){return ly(this,t)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(t){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let e=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=e,t&&this.disposer&&(this.disposer(),this.disposer=void 0),e}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(t){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return Py(this,t)}}}),qA,yy=ze(()=>{"use strict";_f(),qA=nA}),Zu,pf,Xn,ei,ti,Ai,Iy=ze(()=>{"use strict";uy(),Zu=(t,e)=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeStamp(`${t}::ORT::${e}`)},pf=(t,e)=>{let A=new Error().stack?.split(/\r\n|\r|\n/g)||[],r=!1;for(let n=0;n<A.length;n++){if(r&&!A[n].includes("TRACE_FUNC")){let a=`FUNC_${t}::${A[n].trim().split(" ")[1]}`;e&&(a+=`::${e}`),Zu("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},Xn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||pf("BEGIN",t)},ei=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||pf("END",t)},ti=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.time(`ORT::${t}`)},Ai=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeEnd(`ORT::${t}`)}}),Dy,Sk=ze(()=>{"use strict";oy(),yy(),Iy(),Dy=class Cy{constructor(e){this.handler=e}async run(e,A,r){Xn(),ti("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof qA||Array.isArray(e))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let i=!0;if(typeof A=="object"){if(A===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(A instanceof qA)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(A)){if(A.length===0)throw new TypeError("'fetches' cannot be an empty array.");i=!1;for(let c of A){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);n[c]=null}if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,g=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(g.indexOf(u)!==-1){let l=A[u];(l===null||l instanceof qA)&&(c=!0,i=!1,n[u]=l)}if(c){if(typeof r=="object"&&r!==null)a=r;else if(typeof r<"u")throw new TypeError("'options' must be an object.")}else a=A}}else if(typeof A<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof e[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(i)for(let c of this.outputNames)n[c]=null;let s=await this.handler.run(e,n,a),o={};for(let c in s)if(Object.hasOwnProperty.call(s,c)){let g=s[c];g instanceof qA?o[c]=g:o[c]=new qA(g.type,g.data,g.dims)}return Ai("InferenceSession.run"),ei(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){Xn(),ti("InferenceSession.create");let a,i={};if(typeof e=="string"){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof Uint8Array){if(a=e,typeof A=="object"&&A!==null)i=A;else if(typeof A<"u")throw new TypeError("'options' must be an object.")}else if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer){let g=e,u=0,l=e.byteLength;if(typeof A=="object"&&A!==null)i=A;else if(typeof A=="number"){if(u=A,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=g.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${g.byteLength}).`);if(l=e.byteLength-u,typeof r=="number"){if(l=r,!Number.isSafeInteger(l))throw new RangeError("'byteLength' must be an integer.");if(l<=0||u+l>g.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${g.byteLength-u}].`);if(typeof n=="object"&&n!==null)i=n;else if(typeof n<"u")throw new TypeError("'options' must be an object.")}else if(typeof r<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof A<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(g,u,l)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await sy(i),c=await s.createInferenceSessionHandler(a,o);return Ai("InferenceSession.create"),ei(),new Cy(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),Mf,Yk=ze(()=>{"use strict";Sk(),Mf=Dy}),vk=ze(()=>{"use strict"}),Ok=ze(()=>{"use strict"}),_k=ze(()=>{"use strict"}),Mk=ze(()=>{"use strict"}),by={};Xu(by,{InferenceSession:()=>Mf,TRACE:()=>Zu,TRACE_EVENT_BEGIN:()=>ti,TRACE_EVENT_END:()=>Ai,TRACE_FUNC_BEGIN:()=>Xn,TRACE_FUNC_END:()=>ei,Tensor:()=>qA,env:()=>ot,registerBackend:()=>Io});var ri=ze(()=>{"use strict";Ck(),Ek(),Yk(),yy(),vk(),Ok(),Iy(),_k(),Mk()}),Rf=ze(()=>{"use strict"}),Ey={};Xu(Ey,{default:()=>Ty});var wf,Bf,Ty,Rk=ze(()=>{"use strict";zy(),Sa(),Qf(),wf="ort-wasm-proxy-worker",Bf=globalThis.self?.name===wf,Bf&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":Ff(A.wasm).then(()=>{qf(A).then(()=>{postMessage({type:e})},r=>{postMessage({type:e,err:r})})},r=>{postMessage({type:e,err:r})});break;case"init-ep":{let{epName:r,env:n}=A;Lf(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=Ju(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;jf(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Vf(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Kf(r,n,a,i,new Array(i.length).fill(null),s).then(o=>{o.some(c=>c[3]!=="cpu")?postMessage({type:e,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:e,out:o},Zf([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Wf(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),Ty=Bf?null:t=>new Worker(t??rA,{type:"module",name:wf})}),ky={};Xu(ky,{default:()=>Gy});async function qP(t={}){var e=t,A=!!globalThis.window,r=!!globalThis.WorkerGlobalScope,n=r&&self.name?.startsWith("em-pthread");e.mountExternalData=(I,T)=>{I.startsWith("./")&&(I=I.substring(2)),(e.Rb||(e.Rb=new Map)).set(I,T)},e.unmountExternalData=()=>{delete e.Rb},globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,shared:!0}).buffer.constructor;var a,i,s=(I,T)=>{throw T},o=UA.url,c="";if(A||r){try{c=new URL(".",o).href}catch{}r&&(i=I=>{var T=new XMLHttpRequest;return T.open("GET",I,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),a=async I=>{if(x(I))return new Promise((O,Y)=>{var Q=new XMLHttpRequest;Q.open("GET",I,!0),Q.responseType="arraybuffer",Q.onload=()=>{Q.status==200||Q.status==0&&Q.response?O(Q.response):Y(Q.status)},Q.onerror=Y,Q.send(null)});var T=await fetch(I,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)}}var g,u,l,f,p,h,y=console.log.bind(console),w=console.error.bind(console),D=y,b=w,E=!1,x=I=>I.startsWith("file://");function S(){wA.buffer!=M.buffer&&De()}if(n){let I=function(T){try{var O=T.data,Y=O.Pb;if(Y==="load"){let Q=[];self.onmessage=U=>Q.push(U),h=()=>{postMessage({Pb:"loaded"});for(let U of Q)I(U);self.onmessage=I};for(let U of O.Zb)e[U]&&!e[U].proxy||(e[U]=(...X)=>{postMessage({Pb:"callHandler",Yb:U,args:X})},U=="print"&&(D=e[U]),U=="printErr"&&(b=e[U]));wA=O.dc,De(),u=O.ec,tt(),oe()}else if(Y==="run"){(function(Q){var U=(S(),K)[Q+52>>>2>>>0];Q=(S(),K)[Q+56>>>2>>>0],$o(U,U-Q),Pe(U)})(O.Ob),cs(O.Ob,0,0,1,0,0),Ra(),Qt(O.Ob),R||=!0;try{KA(O.bc,O.Tb)}catch(Q){if(Q!="unwind")throw Q}}else O.target!=="setimmediate"&&(Y==="checkMailbox"?R&&Qr():Y&&(b(`worker: received unknown command ${Y}`),b(O)))}catch(Q){throw ki(),Q}};var k=I,R=!1;self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=I}var M,N,V,F,K,L,_,W,pe,Ae=!1;function De(){var I=wA.buffer;e.HEAP8=M=new Int8Array(I),V=new Int16Array(I),e.HEAPU8=N=new Uint8Array(I),new Uint16Array(I),e.HEAP32=F=new Int32Array(I),e.HEAPU32=K=new Uint32Array(I),L=new Float32Array(I),_=new Float64Array(I),W=new BigInt64Array(I),new BigUint64Array(I)}function ae(){Ae=!0,n?h():ZA.Ta()}function we(I){throw b(I="Aborted("+I+")"),E=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),p?.(I),I}function et(){return{a:{R:vg,f:pi,w:dg,e:za,k:Na,g:fg,S:mg,b:hg,G:pg,ta:Ro,j:Qo,L:Ua,Ja:qa,pa:ur,ra:La,Ka:ja,Ha:Va,Aa:Ka,Ga:Wa,Y:Za,qa:$a,na:Ja,Ia:Xa,oa:es,Pa:zo,Da:No,la:ts,ua:Fr,ia:BA,T:Ho,Ca:Qt,Ma:Bg,xa:Pg,ya:Ft,za:Wt,va:Di,wa:Uo,ja:qo,Ra:Ig,Oa:Dg,V:Cg,U:bg,Na:PA,F:Eg,La:Tg,ma:kg,u:yg,H:Gg,Q:zr,ka:Ei,aa:xg,Sa:Sg,Ea:jo,Fa:Vo,sa:Ne,I:wn,X:Ko,Ba:IA,W:as,_:xi,M:hs,$:DA,N:cA,v:Lg,c:Rg,m:_g,n:Og,q:sc,ba:$g,x:qg,o:nc,O:Jg,D:yn,J:Zg,ca:Wg,da:Kg,A:Ng,P:Vg,ea:jg,z:ms,E:Xg,d:Mg,r:rc,i:Ac,Z:Hr,l:Fg,p:ic,s:Qg,t:ac,y:Hg,fa:oc,B:wt,K:Ug,C:el,ga:zg,ha:Pn,h:Ti,a:wA,Qa:Yt}}}async function tt(){function I(Y,Q){return ZA=Y.exports,ZA=function(){var U=ZA,X=Ie=>()=>Ie()>>>0,ge=Ie=>Ye=>Ie(Ye)>>>0;return(U=Object.assign({},U)).sb=X(U.sb),U.ub=ge(U.ub),U.Ib=ge(U.Ib),U.Jb=X(U.Jb),U.Nb=ge(U.Nb),U}(),sr.push(ZA.vb),Y=ZA,e._OrtInit=Y.Ua,e._OrtGetLastError=Y.Va,e._OrtCreateSessionOptions=Y.Wa,e._OrtAppendExecutionProvider=Y.Xa,e._OrtAddFreeDimensionOverride=Y.Ya,e._OrtAddSessionConfigEntry=Y.Za,e._OrtReleaseSessionOptions=Y._a,e._OrtCreateSession=Y.$a,e._OrtReleaseSession=Y.ab,e._OrtGetInputOutputCount=Y.bb,e._OrtGetInputOutputMetadata=Y.cb,e._OrtFree=Y.db,e._OrtCreateTensor=Y.eb,e._OrtGetTensorData=Y.fb,e._OrtReleaseTensor=Y.gb,e._OrtCreateRunOptions=Y.hb,e._OrtAddRunConfigEntry=Y.ib,e._OrtReleaseRunOptions=Y.jb,e._OrtCreateBinding=Y.kb,e._OrtBindInput=Y.lb,e._OrtBindOutput=Y.mb,e._OrtClearBoundOutputs=Y.nb,e._OrtReleaseBinding=Y.ob,e._OrtRunWithBinding=Y.pb,e._OrtRun=Y.qb,e._OrtEndProfiling=Y.rb,Nr=Y.sb,ss=e._free=Y.tb,os=e._malloc=Y.ub,cs=Y.xb,ki=Y.yb,Wo=Y.zb,us=Y.Ab,gs=Y.Bb,Gi=Y.Cb,Zo=Y.Db,ke=Y.Eb,Bn=Y.Fb,$o=Y.Gb,Pe=Y.Hb,ls=Y.Ib,Ce=Y.Jb,Jo=Y.Kb,ds=Y.Lb,Xo=Y.Mb,ec=Y.Nb,fs=Y.wb,u=Q,ZA}var T,O=et();return e.instantiateWasm?new Promise(Y=>{e.instantiateWasm(O,(Q,U)=>{Y(I(Q,U))})}):n?I(new WebAssembly.Instance(u,et()),u):(pe??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.wasm",c):c+"ort-wasm-simd-threaded.wasm":new URL("ort-wasm-simd-threaded.wasm",UA.url).href,T=await async function(Y){var Q=pe;if(!g&&!x(Q))try{var U=fetch(Q,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(U,Y)}catch(X){b(`wasm streaming compile failed: ${X}`),b("falling back to ArrayBuffer instantiation")}return async function(X,ge){try{var Ie=await async function(Ye){if(!g)try{var Bt=await a(Ye);return new Uint8Array(Bt)}catch{}if(Ye==pe&&g)Ye=new Uint8Array(g);else{if(!i)throw"both async and sync fetching of the wasm failed";Ye=i(Ye)}return Ye}(X);return await WebAssembly.instantiate(Ie,ge)}catch(Ye){b(`failed to asynchronously prepare wasm: ${Ye}`),we(Ye)}}(Q,Y)}(O),I(T.instance,T.module))}class $e{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var pA=I=>{I.terminate(),I.onmessage=()=>{}},Je=[],qe=0,ut=null,Be=I=>{Rt.length==0&&(Qa(),VA(Rt[0]));var T=Rt.pop();if(!T)return 6;pt.push(T),Gt[I.Ob]=T,T.Ob=I.Ob;var O={Pb:"run",bc:I.ac,Tb:I.Tb,Ob:I.Ob};return T.postMessage(O,I.Xb),0},se=0,ue=(I,T,...O)=>{var Y,Q=16*O.length,U=Ce(),X=ls(Q),ge=X>>>3;for(Y of O)typeof Y=="bigint"?((S(),W)[ge++>>>0]=1n,(S(),W)[ge++>>>0]=Y):((S(),W)[ge++>>>0]=0n,(S(),_)[ge++>>>0]=Y);return I=Wo(I,0,Q,X,T),Pe(U),I};function Yt(I){if(n)return ue(0,1,I);if(l=I,!(0<se)){for(var T of pt)pA(T);for(T of Rt)pA(T);Rt=[],pt=[],Gt={},E=!0}s(0,new $e(I))}function Se(I){if(n)return ue(1,0,I);Ne(I)}var Ne=I=>{if(l=I,n)throw Se(I),"unwind";Yt(I)},Rt=[],pt=[],sr=[],Gt={},Rr=I=>{var T=I.Ob;delete Gt[T],Rt.push(I),pt.splice(pt.indexOf(I),1),I.Ob=0,us(T)};function Ra(){sr.forEach(I=>I())}var VA=I=>new Promise(T=>{I.onmessage=Q=>{var U=Q.data;if(Q=U.Pb,U.Sb&&U.Sb!=Nr()){var X=Gt[U.Sb];X?X.postMessage(U,U.Xb):b(`Internal error! Worker sent a message "${Q}" to target pthread ${U.Sb}, but that thread no longer exists!`)}else Q==="checkMailbox"?Qr():Q==="spawnThread"?Be(U):Q==="cleanupThread"?yi(()=>{Rr(Gt[U.cc])}):Q==="loaded"?(I.loaded=!0,T(I)):U.target==="setimmediate"?I.postMessage(U):Q==="uncaughtException"?I.onerror(U.error):Q==="callHandler"?e[U.Yb](...U.args):Q&&b(`worker sent an unknown command ${Q}`)},I.onerror=Q=>{throw b(`worker sent an error! ${Q.filename}:${Q.lineno}: ${Q.message}`),Q};var O,Y=[];for(O of[])e.propertyIsEnumerable(O)&&Y.push(O);I.postMessage({Pb:"load",Zb:Y,dc:wA,ec:u})});function Qa(){var I=new Worker((()=>{let T=URL;return UA.url>"file:"&&UA.url<"file;"?new T("ort.wasm.bundle.min.mjs",UA.url):new URL(UA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Rt.push(I)}var wA,Fa=[],Te=I=>{var T=Fa[I];return T||(Fa[I]=T=fs.get(I)),T},KA=(I,T)=>{se=0,I=Te(I)(T),0<se?l=I:gs(I)},hi=[],or=0;function pi(I){var T=new wi(I>>>=0);return(S(),M)[T.Qb+12>>>0]==0&&(cr(T,!0),or--),_o(T,!1),hi.push(T),ec(I)}var at=0,dg=()=>{ke(0,0);var I=hi.pop();Jo(I.Ub),at=0};function cr(I,T){T=T?1:0,(S(),M)[I.Qb+12>>>0]=T}function _o(I,T){T=T?1:0,(S(),M)[I.Qb+13>>>0]=T}class wi{constructor(T){this.Ub=T,this.Qb=T-24}}var Bi=I=>{var T=at;if(!T)return Bn(0),0;var O=new wi(T);(S(),K)[O.Qb+16>>>2>>>0]=T;var Y=(S(),K)[O.Qb+4>>>2>>>0];if(!Y)return Bn(0),T;for(var Q of I){if(Q===0||Q===Y)break;if(Xo(Q,Y,O.Qb+16))return Bn(Q),T}return Bn(Y),T};function za(){return Bi([])}function Na(I){return Bi([I>>>0])}function fg(I,T,O,Y){return Bi([I>>>0,T>>>0,O>>>0,Y>>>0])}var mg=()=>{var I=hi.pop();I||we("no exception to throw");var T=I.Ub;throw(S(),M)[I.Qb+13>>>0]==0&&(hi.push(I),_o(I,!0),cr(I,!1),or++),ds(T),at=T};function hg(I,T,O){var Y=new wi(I>>>=0);throw T>>>=0,O>>>=0,(S(),K)[Y.Qb+16>>>2>>>0]=0,(S(),K)[Y.Qb+4>>>2>>>0]=T,(S(),K)[Y.Qb+8>>>2>>>0]=O,ds(I),or++,at=I}var pg=()=>or;function Mo(I,T,O,Y){return n?ue(2,1,I,T,O,Y):Ro(I,T,O,Y)}function Ro(I,T,O,Y){if(I>>>=0,T>>>=0,O>>>=0,Y>>>=0,!globalThis.SharedArrayBuffer)return 6;var Q=[];return n&&Q.length===0?Mo(I,T,O,Y):(I={ac:O,Ob:I,Tb:Y,Xb:Q},n?(I.Pb="spawnThread",postMessage(I,Q),0):Be(I))}function Qo(I){throw at||=I>>>0,at}var Ha=globalThis.TextDecoder&&new TextDecoder,Fo=(I,T=0,O,Y)=>{var Q=T>>>=0;if(O=Q+O,Y)Y=O;else{for(;I[Q]&&!(Q>=O);)++Q;Y=Q}if(16<Y-T&&I.buffer&&Ha)return Ha.decode(I.buffer instanceof ArrayBuffer?I.subarray(T,Y):I.slice(T,Y));for(Q="";T<Y;)if(128&(O=I[T++])){var U=63&I[T++];if((224&O)==192)Q+=String.fromCharCode((31&O)<<6|U);else{var X=63&I[T++];65536>(O=(240&O)==224?(15&O)<<12|U<<6|X:(7&O)<<18|U<<12|X<<6|63&I[T++])?Q+=String.fromCharCode(O):(O-=65536,Q+=String.fromCharCode(55296|O>>10,56320|1023&O))}}else Q+=String.fromCharCode(O);return Q},Pi=(I,T,O)=>(I>>>=0)?Fo((S(),N),I,T,O):"";function Ua(I,T,O){return n?ue(3,1,I,T,O):0}function qa(I,T){if(n)return ue(4,1,I,T)}function ur(I,T){if(n)return ue(5,1,I,T)}function La(I,T,O){if(n)return ue(6,1,I,T,O)}function ja(I,T,O){return n?ue(7,1,I,T,O):0}function Va(I,T){if(n)return ue(8,1,I,T)}function Ka(I,T,O){if(n)return ue(9,1,I,T,O)}function Wa(I,T,O,Y){if(n)return ue(10,1,I,T,O,Y)}function Za(I,T,O,Y){if(n)return ue(11,1,I,T,O,Y)}function $a(I,T,O,Y){if(n)return ue(12,1,I,T,O,Y)}function Ja(I){if(n)return ue(13,1,I)}function Xa(I,T){if(n)return ue(14,1,I,T)}function es(I,T,O){if(n)return ue(15,1,I,T,O)}var zo=()=>we("");function No(I){cs(I>>>0,!r,1,!A,131072,!1),Ra()}var yi=I=>{if(!E)try{if(I(),!(0<se))try{n?Nr()&&gs(l):Ne(l)}catch(T){T instanceof $e||T=="unwind"||s(0,T)}}catch(T){T instanceof $e||T=="unwind"||s(0,T)}},wg=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Qt(I){I>>>=0,wg||(Atomics.waitAsync((S(),F),I>>>2,I).value.then(Qr),I+=128,Atomics.store((S(),F),I>>>2,1))}var Qr=()=>yi(()=>{var I=Nr();I&&(Qt(I),Zo())});function ts(I,T){(I>>>=0)==T>>>0?setTimeout(Qr):n?postMessage({Sb:I,Pb:"checkMailbox"}):(I=Gt[I])&&I.postMessage({Pb:"checkMailbox"})}var As=[];function Fr(I,T,O,Y,Q){for(T>>>=0,Q>>>=0,As.length=0,O=Q>>>3,Y=Q+Y>>>3;O<Y;){var U;U=(S(),W)[O++>>>0]?(S(),W)[O++>>>0]:(S(),_)[O++>>>0],As.push(U)}return(T?tc[T]:Yg[I])(...As)}var BA=()=>{se=0};function Ho(I){I>>>=0,n?postMessage({Pb:"cleanupThread",cc:I}):Rr(Gt[I])}function Bg(I){}function Pg(I,T){I=-9007199254740992>I||9007199254740992<I?NaN:Number(I),T>>>=0,I=new Date(1e3*I),(S(),F)[T>>>2>>>0]=I.getUTCSeconds(),(S(),F)[T+4>>>2>>>0]=I.getUTCMinutes(),(S(),F)[T+8>>>2>>>0]=I.getUTCHours(),(S(),F)[T+12>>>2>>>0]=I.getUTCDate(),(S(),F)[T+16>>>2>>>0]=I.getUTCMonth(),(S(),F)[T+20>>>2>>>0]=I.getUTCFullYear()-1900,(S(),F)[T+24>>>2>>>0]=I.getUTCDay(),I=(I.getTime()-Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,(S(),F)[T+28>>>2>>>0]=I}var rs=I=>I%4==0&&(I%100!=0||I%400==0),WA=[0,31,60,91,121,152,182,213,244,274,305,335],Ii=[0,31,59,90,120,151,181,212,243,273,304,334];function Ft(I,T){I=-9007199254740992>I||9007199254740992<I?NaN:Number(I),T>>>=0,I=new Date(1e3*I),(S(),F)[T>>>2>>>0]=I.getSeconds(),(S(),F)[T+4>>>2>>>0]=I.getMinutes(),(S(),F)[T+8>>>2>>>0]=I.getHours(),(S(),F)[T+12>>>2>>>0]=I.getDate(),(S(),F)[T+16>>>2>>>0]=I.getMonth(),(S(),F)[T+20>>>2>>>0]=I.getFullYear()-1900,(S(),F)[T+24>>>2>>>0]=I.getDay();var O=(rs(I.getFullYear())?WA:Ii)[I.getMonth()]+I.getDate()-1|0;(S(),F)[T+28>>>2>>>0]=O,(S(),F)[T+36>>>2>>>0]=-60*I.getTimezoneOffset(),O=new Date(I.getFullYear(),6,1).getTimezoneOffset();var Y=new Date(I.getFullYear(),0,1).getTimezoneOffset();I=0|(O!=Y&&I.getTimezoneOffset()==Math.min(Y,O)),(S(),F)[T+32>>>2>>>0]=I}function Wt(I){I>>>=0;var T=new Date((S(),F)[I+20>>>2>>>0]+1900,(S(),F)[I+16>>>2>>>0],(S(),F)[I+12>>>2>>>0],(S(),F)[I+8>>>2>>>0],(S(),F)[I+4>>>2>>>0],(S(),F)[I>>>2>>>0],0),O=(S(),F)[I+32>>>2>>>0],Y=T.getTimezoneOffset(),Q=new Date(T.getFullYear(),6,1).getTimezoneOffset(),U=new Date(T.getFullYear(),0,1).getTimezoneOffset(),X=Math.min(U,Q);return 0>O?(S(),F)[I+32>>>2>>>0]=+(Q!=U&&X==Y):0<O!=(X==Y)&&(Q=Math.max(U,Q),T.setTime(T.getTime()+6e4*((0<O?X:Q)-Y))),(S(),F)[I+24>>>2>>>0]=T.getDay(),O=(rs(T.getFullYear())?WA:Ii)[T.getMonth()]+T.getDate()-1|0,(S(),F)[I+28>>>2>>>0]=O,(S(),F)[I>>>2>>>0]=T.getSeconds(),(S(),F)[I+4>>>2>>>0]=T.getMinutes(),(S(),F)[I+8>>>2>>>0]=T.getHours(),(S(),F)[I+12>>>2>>>0]=T.getDate(),(S(),F)[I+16>>>2>>>0]=T.getMonth(),(S(),F)[I+20>>>2>>>0]=T.getYear(),I=T.getTime(),BigInt(isNaN(I)?-1:I/1e3)}function Di(I,T,O,Y,Q,U,X){return n?ue(16,1,I,T,O,Y,Q,U,X):-52}function Uo(I,T,O,Y,Q,U){if(n)return ue(17,1,I,T,O,Y,Q,U)}var hn={},yg=()=>performance.timeOrigin+performance.now();function qo(I,T){if(n)return ue(18,1,I,T);if(hn[I]&&(clearTimeout(hn[I].id),delete hn[I]),!T)return 0;var O=setTimeout(()=>{delete hn[I],yi(()=>Gi(I,performance.timeOrigin+performance.now()))},T);return hn[I]={id:O,jc:T},0}var gr=(I,T,O)=>{var Y=(S(),N);if(T>>>=0,0<O){var Q=T;O=T+O-1;for(var U=0;U<I.length;++U){var X=I.codePointAt(U);if(127>=X){if(T>=O)break;Y[T++>>>0]=X}else if(2047>=X){if(T+1>=O)break;Y[T++>>>0]=192|X>>6,Y[T++>>>0]=128|63&X}else if(65535>=X){if(T+2>=O)break;Y[T++>>>0]=224|X>>12,Y[T++>>>0]=128|X>>6&63,Y[T++>>>0]=128|63&X}else{if(T+3>=O)break;Y[T++>>>0]=240|X>>18,Y[T++>>>0]=128|X>>12&63,Y[T++>>>0]=128|X>>6&63,Y[T++>>>0]=128|63&X,U++}}Y[T>>>0]=0,I=T-Q}else I=0;return I};function Ig(I,T,O,Y){I>>>=0,T>>>=0,O>>>=0,Y>>>=0;var Q=new Date().getFullYear(),U=new Date(Q,0,1).getTimezoneOffset();Q=new Date(Q,6,1).getTimezoneOffset();var X=Math.max(U,Q);(S(),K)[I>>>2>>>0]=60*X,(S(),F)[T>>>2>>>0]=+(U!=Q),I=(T=ge=>{var Ie=Math.abs(ge);return`UTC${0<=ge?"-":"+"}${String(Math.floor(Ie/60)).padStart(2,"0")}${String(Ie%60).padStart(2,"0")}`})(U),T=T(Q),Q<U?(gr(I,O,17),gr(T,Y,17)):(gr(I,Y,17),gr(T,O,17))}var PA=()=>Date.now(),yA=1;function Dg(I,T,O){if(O>>>=0,!(0<=I&&3>=I))return 28;if(I===0)I=Date.now();else{if(!yA)return 52;I=performance.timeOrigin+performance.now()}return I=Math.round(1e6*I),(S(),W)[O>>>3>>>0]=BigInt(I),0}var Ci=[];function Cg(I,T,O){I>>>=0,T>>>=0,O>>>=0,Ci.length=0;for(var Y;Y=(S(),N)[T++>>>0];){var Q=Y!=105;O+=(Q&=Y!=112)&&O%8?4:0,Ci.push(Y==112?(S(),K)[O>>>2>>>0]:Y==106?(S(),W)[O>>>3>>>0]:Y==105?(S(),F)[O>>>2>>>0]:(S(),_)[O>>>3>>>0]),O+=Q?8:4}return tc[I](...Ci)}var bg=()=>{};function Eg(I,T){return b(Pi(I>>>0,T>>>0))}var Tg=()=>{throw se+=1,"unwind"};function kg(){return 4294901760}var Gg=()=>navigator.hardwareConcurrency,lr={},ns=I=>{for(var T=0,O=0;O<I.length;++O){var Y=I.charCodeAt(O);127>=Y?T++:2047>=Y?T+=2:55296<=Y&&57343>=Y?(T+=4,++O):T+=3}return T},bi=I=>{var T;return(T=/\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(I))?+T[1]:(T=/:(\d+):\d+(?:\)|$)/.exec(I))?2147483648|+T[1]:0},yt=I=>{for(var T of I)(I=bi(T))&&(lr[I]=T)};function xg(){var I=Error().stack.toString().split(`
100
100
  `);return I[0]=="Error"&&I.shift(),yt(I),lr.Vb=bi(I[3]),lr.$b=I,lr.Vb}function zr(I){if(!(I=lr[I>>>0]))return 0;var T;if(T=/^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(I))I=T[1];else if(T=/^\s+at (.*) \(.*\)$/.exec(I))I=T[1];else{if(!(T=/^(.+?)@/.exec(I)))return 0;I=T[1]}ss(zr.Wb??0),T=ns(I)+1;var O=os(T);return O&&gr(I,O,T),zr.Wb=O,zr.Wb}function Ei(I){I>>>=0;var T=(S(),N).length;if(I<=T||4294901760<I)return!1;for(var O=1;4>=O;O*=2){var Y=T*(1+.2/O);Y=Math.min(Y,I+100663296);e:{Y=(Math.min(4294901760,65536*Math.ceil(Math.max(I,Y)/65536))-wA.buffer.byteLength+65535)/65536|0;try{wA.grow(Y),De();var Q=1;break e}catch{}Q=void 0}if(Q)return!0}return!1}function Sg(I,T,O){if(I>>>=0,T>>>=0,lr.Vb==I)var Y=lr.$b;else(Y=Error().stack.toString().split(`
101
- `))[0]=="Error"&&Y.shift(),yt(Y);for(var Q=3;Y[Q]&&bi(Y[Q])!=I;)++Q;for(I=0;I<O&&Y[I+Q];++I)(S(),F)[T+4*I>>>2>>>0]=bi(Y[I+Q]);return I}var pn,is={},Lo=()=>{if(!pn){var I,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(I in is)is[I]===void 0?delete T[I]:T[I]=is[I];var O=[];for(I in T)O.push(`${I}=${T[I]}`);pn=O}return pn};function jo(I,T){if(n)return ue(19,1,I,T);I>>>=0,T>>>=0;var O,Y=0,Q=0;for(O of Lo()){var U=T+Y;(S(),K)[I+Q>>>2>>>0]=U,Y+=gr(O,U,1/0)+1,Q+=4}return 0}function Vo(I,T){if(n)return ue(20,1,I,T);I>>>=0,T>>>=0;var O=Lo();for(var Y of((S(),K)[I>>>2>>>0]=O.length,I=0,O))I+=ns(Y)+1;return(S(),K)[T>>>2>>>0]=I,0}function wn(I){return n?ue(21,1,I):52}function Ko(I,T,O,Y){return n?ue(22,1,I,T,O,Y):52}function IA(I,T,O,Y){return n?ue(23,1,I,T,O,Y):70}var oA=[null,[],[]];function as(I,T,O,Y){if(n)return ue(24,1,I,T,O,Y);T>>>=0,O>>>=0,Y>>>=0;for(var Q=0,U=0;U<O;U++){var X=(S(),K)[T>>>2>>>0],ge=(S(),K)[T+4>>>2>>>0];T+=8;for(var Ie=0;Ie<ge;Ie++){var Ye=I,Bt=(S(),N)[X+Ie>>>0],Zt=oA[Ye];Bt===0||Bt===10?((Ye===1?D:b)(Fo(Zt)),Zt.length=0):Zt.push(Bt)}Q+=ge}return(S(),K)[Y>>>2>>>0]=Q,0}function Ti(I){return I>>>0}n||function(){for(var I=e.numThreads-1;I--;)Qa();Je.push(async()=>{var T=async function(){if(!n)return Promise.all(Rt.map(VA))}();qe++,await T,--qe==0&&ut&&(T=ut,ut=null,T())})}(),n||(wA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),De()),e.wasmBinary&&(g=e.wasmBinary),e.stackSave=()=>Ce(),e.stackRestore=I=>Pe(I),e.stackAlloc=I=>ls(I),e.setValue=function(I,T,O="i8"){switch(O.endsWith("*")&&(O="*"),O){case"i1":case"i8":(S(),M)[I>>>0]=T;break;case"i16":(S(),V)[I>>>1>>>0]=T;break;case"i32":(S(),F)[I>>>2>>>0]=T;break;case"i64":(S(),W)[I>>>3>>>0]=BigInt(T);break;case"float":(S(),L)[I>>>2>>>0]=T;break;case"double":(S(),_)[I>>>3>>>0]=T;break;case"*":(S(),K)[I>>>2>>>0]=T;break;default:we(`invalid type for setValue: ${O}`)}},e.getValue=function(I,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return(S(),M)[I>>>0];case"i16":return(S(),V)[I>>>1>>>0];case"i32":return(S(),F)[I>>>2>>>0];case"i64":return(S(),W)[I>>>3>>>0];case"float":return(S(),L)[I>>>2>>>0];case"double":return(S(),_)[I>>>3>>>0];case"*":return(S(),K)[I>>>2>>>0];default:we(`invalid type for getValue: ${T}`)}},e.UTF8ToString=Pi,e.stringToUTF8=gr,e.lengthBytesUTF8=ns;var Nr,ss,os,cs,ki,Wo,us,gs,Gi,Zo,ke,Bn,$o,Pe,ls,Ce,Jo,ds,Xo,ec,fs,ZA,Yg=[Yt,Se,Mo,Ua,qa,ur,La,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,Di,Uo,qo,jo,Vo,wn,Ko,IA,as],tc={930988:(I,T,O,Y,Q)=>{if(e===void 0||!e.Rb)return 1;if((I=Pi(Number(I>>>0))).startsWith("./")&&(I=I.substring(2)),!(I=e.Rb.get(I)))return 2;if(T=Number(T>>>0),O=Number(O>>>0),Y=Number(Y>>>0),T+O>I.byteLength)return 3;try{let U=I.subarray(T,T+O);switch(Q){case 0:(S(),N).set(U,Y>>>0);break;case 1:e.fc?e.fc(Y,U):e.ic(Y,U);break;default:return 4}return 0}catch{return 4}},931812:()=>typeof wasmOffsetConverter<"u"};function vg(){return typeof wasmOffsetConverter<"u"}function Og(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function _g(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Mg(I){var T=Ce();try{Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function Rg(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function Ac(I,T,O){var Y=Ce();try{Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function rc(I,T){var O=Ce();try{Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function nc(I,T,O,Y,Q,U,X){var ge=Ce();try{return Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function Qg(I,T,O,Y,Q,U){var X=Ce();try{Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function Fg(I,T,O,Y){var Q=Ce();try{Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function ic(I,T,O,Y,Q){var U=Ce();try{Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function ac(I,T,O,Y,Q,U,X){var ge=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function Pn(I,T,O,Y,Q,U,X){var ge=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function zg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function sc(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function Ng(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Hg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function Ug(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt){var CA=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function qg(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function ms(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;return ke(1,0),0n}}function oc(I,T,O,Y,Q,U,X,ge,Ie){var Ye=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie)}catch(Bt){if(Pe(Ye),Bt!==Bt+0)throw Bt;ke(1,0)}}function Lg(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function jg(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;return ke(1,0),0n}}function Vg(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;return ke(1,0),0n}}function Kg(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function Wg(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function Zg(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function $g(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function Jg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{return Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function Xg(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;return ke(1,0),0n}}function cA(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function hs(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function yn(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt){var CA=Ce();try{return Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function wt(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt){var Zt=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt)}catch(CA){if(Pe(Zt),CA!==CA+0)throw CA;ke(1,0)}}function el(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt,CA,bA,tl,Al){var rl=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt,CA,bA,tl,Al)}catch(ps){if(Pe(rl),ps!==ps+0)throw ps;ke(1,0)}}function DA(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function xi(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Hr(I,T,O,Y){var Q=Ce();try{Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function oe(){if(0<qe)ut=oe;else if(n)f?.(e),ae();else{for(var I=Je;0<I.length;)I.shift()(e);0<qe?ut=oe:(e.calledRun=!0,E||(ae(),f?.(e)))}}return n||(ZA=await tt(),oe()),e.PTR_SIZE=4,Ae?e:new Promise((I,T)=>{f=I,p=T})}var Ty,UP,Mk=ze(()=>{"use strict";Ty=HP,UP=globalThis.self?.name?.startsWith("em-pthread"),UP&&HP()}),Bf,xf,qP,rA,ky,Lu,LP,jP,Pf,VP,yf,Gy,If,xy,Rf=ze(()=>{"use strict";Mf(),Bf=typeof location>"u"?void 0:location.origin,xf=UA.url>"file:"&&UA.url<"file;",qP=()=>{if(xf){let t=URL;return new URL(new t("ort.wasm.bundle.min.mjs",UA.url).href,Bf).href}return UA.url},rA=qP(),ky=()=>{if(rA&&!rA.startsWith("blob:"))return rA.substring(0,rA.lastIndexOf("/")+1)},Lu=(t,e)=>{try{let A=e??rA;return(A?new URL(t,A):new URL(t)).origin===Bf}catch{return!1}},LP=(t,e)=>{let A=e??rA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},jP=(t,e)=>`${e??"./"}${t}`,Pf=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},VP=async t=>(await import(t)).default,yf=(_k(),Gf(Cy)).default,Gy=async()=>{if(!rA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Lu(rA))return[void 0,yf()];let t=await Pf(rA);return[t,yf(t)]},If=(Mk(),Gf(Ey)).default,xy=async(t,e,A,r)=>{let n=If&&!(t||e);if(n)if(rA)n=Lu(rA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,If];{let a="ort-wasm-simd-threaded.mjs",i=t??LP(a,e),s=A&&i&&!Lu(i,e),o=s?await Pf(i):i??jP(a,e);return[s?o:void 0,await VP(o)]}}}),Df,ju,wo,Cf,KP,WP,ZP,Qf,nt,Sa=ze(()=>{"use strict";Rf(),ju=!1,wo=!1,Cf=!1,KP=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},WP=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},ZP=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Qf=async t=>{if(ju)return Promise.resolve();if(wo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Cf)throw new Error("previous call to 'initializeWebAssembly()' failed.");wo=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!ZP())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!WP())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=KP();A>1&&!r&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+A+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),t.numThreads=A=1);let n=t.wasmPaths,a=typeof n=="string"?n:void 0,i=n?.mjs,s=i?.href??i,o=n?.wasm,c=o?.href??o,g=t.wasmBinary,[u,l]=await xy(s,a,A>1,!!g||!!c),f=!1,p=[];if(e>0&&p.push(new Promise(h=>{setTimeout(()=>{f=!0,h()},e)})),p.push(new Promise((h,y)=>{let w={numThreads:A};if(g)w.wasmBinary=g,w.locateFile=D=>D;else if(c||a)w.locateFile=D=>c??a+D;else if(s&&s.indexOf("blob:")!==0)w.locateFile=D=>new URL(D,s).href;else if(u){let D=ky();D&&(w.locateFile=b=>D+b)}l(w).then(D=>{wo=!1,ju=!0,Df=D,h(),u&&URL.revokeObjectURL(u)},D=>{wo=!1,Cf=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},nt=()=>{if(ju&&Df)return Df;throw new Error("WebAssembly is not initialized yet.")}}),HA,$u,We,Ff=ze(()=>{"use strict";Sa(),HA=(t,e)=>{let A=nt(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},$u=(t,e,A,r)=>{if(typeof t=="object"&&t!==null){if(A.has(t))throw new Error("Circular reference in options");A.add(t)}Object.entries(t).forEach(([n,a])=>{let i=e?e+n:n;if(typeof a=="object")$u(a,i+".",A,r);else if(typeof a=="string"||typeof a=="number")r(i,a.toString());else if(typeof a=="boolean")r(i,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},We=t=>{let e=nt(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetLastError(n,n+r);let a=Number(e.getValue(n,r===4?"i32":"i64")),i=e.getValue(n+r,"*"),s=i?e.UTF8ToString(i):"";throw new Error(`${t} ERROR_CODE: ${a}, ERROR_MESSAGE: ${s}`)}finally{e.stackRestore(A)}}}),Sy,Rk=ze(()=>{"use strict";Sa(),Ff(),Sy=t=>{let e=nt(),A=0,r=[],n=t||{};try{if(t?.logSeverityLevel===void 0)n.logSeverityLevel=2;else if(typeof t.logSeverityLevel!="number"||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${t.logSeverityLevel}`);if(t?.logVerbosityLevel===void 0)n.logVerbosityLevel=0;else if(typeof t.logVerbosityLevel!="number"||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);t?.terminate===void 0&&(n.terminate=!1);let a=0;return t?.tag!==void 0&&(a=HA(t.tag,r)),A=e._OrtCreateRunOptions(n.logSeverityLevel,n.logVerbosityLevel,!!n.terminate,a),A===0&&We("Can't create run options."),t?.extra!==void 0&&$u(t.extra,"",new WeakSet,(i,s)=>{let o=HA(i,r),c=HA(s,r);e._OrtAddRunConfigEntry(A,o,c)!==0&&We(`Can't set a run config entry: ${i} - ${s}.`)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseRunOptions(A),r.forEach(i=>e._free(i)),a}}}),$P,JP,XP,Kn,ey,Yy,Qk=ze(()=>{"use strict";Sa(),Ff(),$P=t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}},JP=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},XP=t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});let e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1"),t.executionProviders&&t.executionProviders.some(A=>(typeof A=="string"?A:A.name)==="webgpu")&&(t.enableMemPattern=!1)},Kn=(t,e,A,r)=>{let n=HA(e,r),a=HA(A,r);nt()._OrtAddSessionConfigEntry(t,n,a)!==0&&We(`Can't set a session config entry: ${e} - ${A}.`)},ey=async(t,e,A)=>{let r=e.executionProviders;for(let n of r){let a=typeof n=="string"?n:n.name,i=[];switch(a){case"webnn":if(a="WEBNN",Kn(t,"session.disable_quant_qdq","1",A),Kn(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Kn(t,"deviceType",u,A)}break;case"webgpu":if(a="JS",typeof n!="string"){let u=n;if(u?.preferredLayout){if(u.preferredLayout!=="NCHW"&&u.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${u.preferredLayout}`);Kn(t,"preferredLayout",u.preferredLayout,A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=HA(a,A),o=i.length,c=0,g=0;if(o>0){c=nt()._malloc(o*nt().PTR_SIZE),A.push(c),g=nt()._malloc(o*nt().PTR_SIZE),A.push(g);for(let u=0;u<o;u++)nt().setValue(c+u*nt().PTR_SIZE,i[u][0],"*"),nt().setValue(g+u*nt().PTR_SIZE,i[u][1],"*")}await nt()._OrtAppendExecutionProvider(t,s,c,g,o)!==0&&We(`Can't append execution provider: ${a}.`)}},Yy=async t=>{let e=nt(),A=0,r=[],n=t||{};XP(n);try{let a=$P(n.graphOptimizationLevel??"all"),i=JP(n.executionMode??"sequential"),s=typeof n.logId=="string"?HA(n.logId,r):0,o=n.logSeverityLevel??2;if(!Number.isInteger(o)||o<0||o>4)throw new Error(`log severity level is not valid: ${o}`);let c=n.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let g=typeof n.optimizedModelFilePath=="string"?HA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,g),A===0&&We("Can't create session options."),n.executionProviders&&await ey(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Kn(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,l]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof l!="number"||!Number.isInteger(l)||l<0)throw new Error(`free dimension override value must be a non-negative integer: ${l}`);let f=HA(u,r);e._OrtAddFreeDimensionOverride(A,f,l)!==0&&We(`Can't set a free dimension override: ${u} - ${l}.`)}return n.extra!==void 0&&$u(n.extra,"",new WeakSet,(u,l)=>{Kn(A,u,l,r)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseSessionOptions(A)!==0&&We("Can't release session options."),r.forEach(i=>e._free(i)),a}}}),Ga,Wu,xa,vy,Oy,zf,Nf,_y,My=ze(()=>{"use strict";Ga=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${t}`)}},Wu=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${t}`)}},xa=(t,e)=>{let A=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][t],r=typeof e=="number"?e:e.reduce((n,a)=>n*a,1);return A>0?Math.ceil(r*A):void 0},vy=t=>{switch(t){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}},Oy=t=>{switch(t){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${t}`)}},zf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Nf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",_y=t=>{switch(t){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${t}`)}}}),Hf,Ry=ze(()=>{"use strict";Mf(),Hf=async t=>{if(typeof t=="string"){let e=await fetch(t);if(!e.ok)throw new Error(`failed to load external data file: ${t}`);let A=e.headers.get("Content-Length"),r=A?parseInt(A,10):0;if(r<1073741824)return new Uint8Array(await e.arrayBuffer());{if(!e.body)throw new Error(`failed to load external data file: ${t}, no response body.`);let n=e.body.getReader(),a;try{a=new ArrayBuffer(r)}catch(s){if(s instanceof RangeError){let o=Math.ceil(r/65536);a=new WebAssembly.Memory({initial:o,maximum:o}).buffer}else throw s}let i=0;for(;;){let{done:s,value:o}=await n.read();if(s)break;let c=o.byteLength;new Uint8Array(a,i,c).set(o),i+=c}return new Uint8Array(a,0,r)}}else return t instanceof Blob?new Uint8Array(await t.arrayBuffer()):t instanceof Uint8Array?t:new Uint8Array(t)}}),ty,Uf,qf,Wn,Ay,bf,Ju,Lf,jf,Ef,Vf,Kf,Wf,Qy=ze(()=>{"use strict";ri(),Rk(),Qk(),My(),Sa(),Ff(),Ry(),ty=(t,e)=>{nt()._OrtInit(t,e)!==0&&We("Can't initialize onnxruntime.")},Uf=async t=>{ty(t.wasm.numThreads,Oy(t.logLevel))},qf=async(t,e)=>{nt().asyncInit?.();let A=t.webgpu.adapter;if(e==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(A){if(typeof A.limits!="object"||typeof A.features!="object"||typeof A.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let r=t.webgpu.powerPreference;if(r!==void 0&&r!=="low-power"&&r!=="high-performance")throw new Error(`Invalid powerPreference setting: "${r}"`);let n=t.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(A=await navigator.gpu.requestAdapter({powerPreference:r,forceFallbackAdapter:n}),!A)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(e==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment")},Wn=new Map,Ay=t=>{let e=nt(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetInputOutputCount(t,n,n+r)!==0&&We("Can't get session input/output count.");let a=r===4?"i32":"i64";return[Number(e.getValue(n,a)),Number(e.getValue(n+r,a))]}finally{e.stackRestore(A)}},bf=(t,e)=>{let A=nt(),r=A.stackSave(),n=0;try{let a=A.PTR_SIZE,i=A.stackAlloc(2*a);A._OrtGetInputOutputMetadata(t,e,i,i+a)!==0&&We("Can't get session input/output metadata.");let s=Number(A.getValue(i,"*"));n=Number(A.getValue(i+a,"*"));let o=A.HEAP32[n/4];if(o===0)return[s,0];let c=A.HEAPU32[n/4+1],g=[];for(let u=0;u<c;u++){let l=Number(A.getValue(n+8+u*a,"*"));g.push(l!==0?A.UTF8ToString(l):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,g]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},Ju=t=>{let e=nt(),A=e._malloc(t.byteLength);if(A===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${t.byteLength}.`);return e.HEAPU8.set(t,A),[A,t.byteLength]},Lf=async(t,e)=>{let A,r,n=nt();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=Ju(t);let a=0,i=0,s=0,o=[],c=[],g=[];try{if([i,o]=await Yy(e),e?.externalData&&n.mountExternalData){let b=[];for(let E of e.externalData){let x=typeof E=="string"?E:E.path;b.push(Hf(typeof E=="string"?E:E.data).then(S=>{n.mountExternalData(x,S)}))}await Promise.all(b)}for(let b of e?.executionProviders??[])if((typeof b=="string"?b:b.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof b!="string"){let E=b,x=E?.context,S=E?.gpuDevice,k=E?.deviceType,R=E?.powerPreference;x?n.currentContext=x:S?n.currentContext=await n.webnnCreateMLContext(S):n.currentContext=await n.webnnCreateMLContext({deviceType:k,powerPreference:R})}else n.currentContext=await n.webnnCreateMLContext();break}a=await n._OrtCreateSession(A,r,i),n.webgpuOnCreateSession?.(a),a===0&&We("Can't create a session."),n.jsepOnCreateSession?.(),n.currentContext&&(n.webnnRegisterMLContext(a,n.currentContext),n.currentContext=void 0,n.shouldTransferToMLTensor=!0);let[u,l]=Ay(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let b=0;b<u;b++){let[E,x,S]=bf(a,b);E===0&&We("Can't get an input name."),c.push(E);let k=n.UTF8ToString(E);p.push(k),y.push(x===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Wu(x),shape:S})}for(let b=0;b<l;b++){let[E,x,S]=bf(a,b+u);E===0&&We("Can't get an output name."),g.push(E);let k=n.UTF8ToString(E);h.push(k),w.push(x===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Wu(x),shape:S})}return Wn.set(a,[a,c,g,null,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(l=>n._OrtFree(l)),g.forEach(l=>n._OrtFree(l)),s!==0&&n._OrtReleaseBinding(s)!==0&&We("Can't release IO binding."),a!==0&&n._OrtReleaseSession(a)!==0&&We("Can't release session."),u}finally{n._free(A),i!==0&&n._OrtReleaseSessionOptions(i)!==0&&We("Can't release session options."),o.forEach(u=>n._free(u)),n.unmountExternalData?.()}},jf=t=>{let e=nt(),A=Wn.get(t);if(!A)throw new Error(`cannot release session. invalid session id: ${t}`);let[r,n,a,i,s]=A;i&&(s&&e._OrtClearBoundOutputs(i.handle)!==0&&We("Can't clear bound outputs."),e._OrtReleaseBinding(i.handle)!==0&&We("Can't release IO binding.")),e.jsepOnReleaseSession?.(t),e.webnnOnReleaseSession?.(t),e.webgpuOnReleaseSession?.(t),n.forEach(o=>e._OrtFree(o)),a.forEach(o=>e._OrtFree(o)),e._OrtReleaseSession(r)!==0&&We("Can't release session."),Wn.delete(t)},Ef=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=nt(),o=s.PTR_SIZE,c=t[0],g=t[1],u=t[3],l=u,f,p;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let w=t[2].gpuBuffer;p=xa(Ga(c),g);{let D=s.jsepRegisterBuffer;if(!D)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');f=D(r,a,w,p)}}else if(u==="ml-tensor"){let w=t[2].mlTensor;p=xa(Ga(c),g);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,Ga(c),g)}else{let w=t[2];if(Array.isArray(w)){p=o*w.length,f=s._malloc(p),A.push(f);for(let D=0;D<w.length;D++){if(typeof w[D]!="string")throw new TypeError(`tensor data at index ${D} is not a string`);s.setValue(f+D*o,HA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,b=s.webnnIsGraphOutput;if(c!=="string"&&D&&b){let E=s.UTF8ToString(n);if(D(r,E)||b(r,E)){let x=Ga(c);p=xa(x,g),l="ml-tensor";let S=s.webnnCreateTemporaryTensor,k=s.webnnUploadTensor;if(!S||!k)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let R=await S(r,x,g);k(R,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=R}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}}let h=s.stackSave(),y=s.stackAlloc(4*g.length);try{g.forEach((D,b)=>s.setValue(y+b*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(Ga(c),f,p,y,g.length,_y(l));w===0&&We(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Vf=async(t,e,A,r,n,a)=>{let i=nt(),s=i.PTR_SIZE,o=Wn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],g=o[1],u=o[2],l=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],b=[],E=[],x=[],S=[],k=i.stackSave(),R=i.stackAlloc(h*s),M=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=Sy(a),ti("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await Ef(A[_],b,x,t,g[e[_]],e[_],f);for(let _=0;_<y;_++)await Ef(n[_],E,x,t,u[r[_]],h+r[_],f);Ai("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(R+_*s,b[_],"*"),i.setValue(M+_*s,g[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,E[_],"*"),i.setValue(V+_*s,u[r[_]],"*");i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;F=await i._OrtRun(c,M,R,h,V,y,N,w),F!==0&&We("failed to call OrtRun().");let K=[],L=[];ti("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===E[_]||S.includes(E[_])){K.push(n[_]),W!==E[_]&&i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.");continue}let pe=i.stackSave(),Ae=i.stackAlloc(4*s),De=!1,ae,we=0;try{i._OrtGetTensorData(W,Ae,Ae+s,Ae+2*s,Ae+3*s)!==0&&We(`Can't access output tensor data on index ${_}.`);let et=s===4?"i32":"i64",tt=Number(i.getValue(Ae,et));we=i.getValue(Ae+s,"*");let $e=i.getValue(Ae+s*2,"*"),pA=Number(i.getValue(Ae+s*3,et)),Je=[];for(let Be=0;Be<pA;Be++)Je.push(Number(i.getValue($e+Be*s,et)));i._OrtFree($e)!==0&&We("Can't free memory for tensor dims.");let qe=Je.reduce((Be,se)=>Be*se,1);ae=Wu(tt);let ut=l?.outputPreferredLocations[r[_]];if(ae==="string"){if(ut==="gpu-buffer"||ut==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let se=0;se<qe;se++){let ue=i.getValue(we+se*s,"*"),Yt=i.getValue(we+(se+1)*s,"*"),Se=se===qe-1?void 0:Yt-ue;Be.push(i.UTF8ToString(ue,Se))}K.push([ae,Je,Be,"cpu"])}else if(ut==="gpu-buffer"&&qe>0){let Be=i.jsepGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let se=Be(we),ue=xa(tt,qe);if(ue===void 0||!zf(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0,K.push([ae,Je,{gpuBuffer:se,download:i.jsepCreateDownloader(se,ue,ae),dispose:()=>{i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.")}},"gpu-buffer"])}else if(ut==="ml-tensor"&&qe>0){let Be=i.webnnEnsureTensor,se=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!se)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(xa(tt,qe)===void 0||!Nf(ae))throw new Error(`Unsupported data type: ${ae}`);if(!se(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let ue=await Be(t,we,tt,Je,!1);De=!0,K.push([ae,Je,{mlTensor:ue,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&qe>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),se=K.length;De=!0,L.push((async()=>{let ue=[se,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),ue})()),K.push([ae,Je,[],"cpu"])}else{let Be=vy(ae),se=new Be(qe);new Uint8Array(se.buffer,se.byteOffset,se.byteLength).set(i.HEAPU8.subarray(we,we+se.byteLength)),K.push([ae,Je,se,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}l&&!f&&(i._OrtClearBoundOutputs(l.handle)!==0&&We("Can't clear bound outputs."),Wn.set(t,[c,g,u,l,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return Ai("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),b.forEach(F=>i._OrtReleaseTensor(F)),E.forEach(F=>i._OrtReleaseTensor(F)),x.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Kf=t=>{let e=nt(),A=Wn.get(t);if(!A)throw new Error("invalid session id");let r=A[0],n=e._OrtEndProfiling(r);n===0&&We("Can't get an profile file name."),e._OrtFree(n)},Wf=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),on,fA,ka,Bo,Po,Vu,Tf,Ku,Zn,$n,ry,Fy,zy,Ny,Hy,Uy,qy,Ly,jy=ze(()=>{"use strict";ri(),Qy(),Sa(),Rf(),on=()=>!!ot.wasm.proxy&&typeof document<"u",ka=!1,Bo=!1,Po=!1,Ku=new Map,Zn=(t,e)=>{let A=Ku.get(t);A?A.push(e):Ku.set(t,[e])},$n=()=>{if(ka||!Bo||Po||!fA)throw new Error("worker not ready")},ry=t=>{switch(t.data.type){case"init-wasm":ka=!1,t.data.err?(Po=!0,Tf[1](t.data.err)):(Bo=!0,Tf[0]()),Vu&&(URL.revokeObjectURL(Vu),Vu=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=Ku.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},Fy=async()=>{if(!Bo){if(ka)throw new Error("multiple calls to 'initWasm()' detected.");if(Po)throw new Error("previous call to 'initWasm()' failed.");if(ka=!0,on())return new Promise((t,e)=>{fA?.terminate(),Gy().then(([A,r])=>{try{fA=r,fA.onerror=a=>e(a),fA.onmessage=ry,Tf=[t,e];let n={type:"init-wasm",in:ot};!n.in.wasm.wasmPaths&&(A||xf)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.wasm",UA.url).href}),fA.postMessage(n),Vu=A}catch(n){e(n)}},e)});try{await Qf(ot.wasm),await Uf(ot),Bo=!0}catch(t){throw Po=!0,t}finally{ka=!1}}},zy=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:ot}};fA.postMessage(r)});await qf(ot,t)},Ny=async t=>on()?($n(),new Promise((e,A)=>{Zn("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};fA.postMessage(r,[t.buffer])})):Ju(t),Hy=async(t,e)=>{if(on()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return $n(),new Promise((A,r)=>{Zn("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),fA.postMessage(n,a)})}else return Lf(t,e)},Uy=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("release",[e,A]);let r={type:"release",in:t};fA.postMessage(r)});jf(t)},qy=async(t,e,A,r,n,a)=>{if(on()){if(A.some(i=>i[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(n.some(i=>i))throw new Error("pre-allocated output tensor is not supported for proxy.");return $n(),new Promise((i,s)=>{Zn("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};fA.postMessage(c,Wf(o))})}else return Vf(t,e,A,r,n,a)},Ly=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("end-profiling",[e,A]);let r={type:"end-profiling",in:t};fA.postMessage(r)});Kf(t)}}),kf,ny,Vy,Fk=ze(()=>{"use strict";ri(),jy(),My(),Mf(),Ry(),kf=(t,e)=>{switch(t.location){case"cpu":return[t.type,t.dims,t.data,"cpu"];case"gpu-buffer":return[t.type,t.dims,{gpuBuffer:t.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[t.type,t.dims,{mlTensor:t.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${t.location} for ${e()}`)}},ny=t=>{switch(t[3]){case"cpu":return new qA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!zf(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return qA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!Nf(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return qA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},Vy=class{async fetchModelAndCopyToWasmMemory(t){return Ny(await Hf(t))}async loadModel(t,e){Xn();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await Hy(A,e),ei()}async dispose(){return Uy(this.sessionId)}async run(t,e,A){Xn();let r=[],n=[];Object.entries(t).forEach(u=>{let l=u[0],f=u[1],p=this.inputNames.indexOf(l);if(p===-1)throw new Error(`invalid input '${l}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let l=u[0],f=u[1],p=this.outputNames.indexOf(l);if(p===-1)throw new Error(`invalid output '${l}'`);a.push(f),i.push(p)});let s=r.map((u,l)=>kf(u,()=>`input "${this.inputNames[n[l]]}"`)),o=a.map((u,l)=>u?kf(u,()=>`output "${this.outputNames[i[l]]}"`):null),c=await qy(this.sessionId,n,s,i,o,A),g={};for(let u=0;u<c.length;u++)g[this.outputNames[i[u]]]=a[u]??ny(c[u]);return ei(),g}startProfiling(){}endProfiling(){Ly(this.sessionId)}}}),Ky={};Xu(Ky,{OnnxruntimeWebAssemblyBackend:()=>Yf,initializeFlags:()=>Sf,wasmBackend:()=>Wy});var Sf,Yf,Wy,zk=ze(()=>{"use strict";ri(),jy(),Fk(),Sf=()=>{(typeof ot.wasm.initTimeout!="number"||ot.wasm.initTimeout<0)&&(ot.wasm.initTimeout=0);let t=ot.wasm.simd;if(typeof t!="boolean"&&t!==void 0&&t!=="fixed"&&t!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${t}". Reset it to \`false\` and ignore SIMD feature checking.`),ot.wasm.simd=!1),typeof ot.wasm.proxy!="boolean"&&(ot.wasm.proxy=!1),typeof ot.wasm.trace!="boolean"&&(ot.wasm.trace=!1),typeof ot.wasm.numThreads!="number"||!Number.isInteger(ot.wasm.numThreads)||ot.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)ot.wasm.numThreads=1;else{let e=typeof navigator>"u"?Pk("node:os").cpus().length:navigator.hardwareConcurrency;ot.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Yf=class{async init(t){Sf(),await Fy(),await zy(t)}async createInferenceSessionHandler(t,e){let A=new Vy;return await A.loadModel(t,e),A}},Wy=new Yf});ri();ri();ri();var Nk="1.26.0",Hk=Dy;{let t=(zk(),Gf(Ky)).wasmBackend;Io("cpu",t,10),Io("wasm",t,10)}Object.defineProperty(ot.versions,"web",{value:Nk,enumerable:!0});function eg(){return globalThis.performance?.now?globalThis.performance.now():Date.now()}function Zy(t,e=null){if(!Array.isArray(t))return e;let A=t.map(r=>Number(r));return A.every(r=>Number.isInteger(r)&&r>0)?A:e}function Uk(t,e){let A=e?.[2],r=e?.[3];if(!t?.data||t.width<=0||t.height<=0)throw new Error("allenk FDnCNN ONNX runtime requires ImageData-like input");if(t.width!==r||t.height!==A){let n=new Error(`allenk FDnCNN ONNX runtime expected ${r}x${A}, got ${t.width}x${t.height}`);throw n.code="ALLENK_FDNCNN_ONNX_SHAPE_MISMATCH",n.expectedWidth=r,n.expectedHeight=A,n.actualWidth=t.width,n.actualHeight=t.height,n}}async function $f({ort:t=null,modelBytes:e,session:A=null,executionProvider:r="wasm",inputName:n="fdncnn_input",outputName:a="fdncnn_output",inputShape:i=[1,4,72,72],outputShape:s=[1,3,72,72],graphOptimizationLevel:o="all",wasmPaths:c=null,numThreads:g="auto"}={}){if(r==="webgpu"&&!t)throw new Error("allenk FDnCNN WebGPU runtime requires an injected onnxruntime-web/webgpu module");let u=t||Zf,l=Zy(i,[1,4,72,72]),f=Zy(s,[1,3,l[2],l[3]]);if(u.env?.wasm){let w=!!(globalThis.crossOriginIsolated&&typeof SharedArrayBuffer<"u"),D=Number(globalThis.navigator?.hardwareConcurrency)||1,b=g==="auto"?w?Math.max(1,Math.min(4,Math.ceil(D/2))):1:Math.max(1,Math.round(Number(g)||1));u.env.wasm.numThreads=r==="wasm"?b:1,u.env.wasm.proxy=!1,c&&(u.env.wasm.wasmPaths=c)}r==="webgpu"&&u.env?.webgpu&&(u.env.webgpu.powerPreference="high-performance");let p=eg(),h=A||await u.InferenceSession.create(e,{executionProviders:[r],graphOptimizationLevel:o}),y=eg()-p;return{id:`allenk-fdncnn-onnx-${r}`,status:"prototype",executionProvider:r,inputName:n,outputName:a,inputShape:l,outputShape:f,createMs:y,session:h,numThreads:r==="wasm"?u.env?.wasm?.numThreads??null:null,estimateMacs(w,D){return w*D*(4*64*9+18*64*64*9+64*3*9)},async execute(w){let D=new u.Tensor("float32",w,l),b=eg(),E=await h.run({[n]:D}),x=eg()-b,S=E[a];if(!S?.data)throw new Error(`allenk FDnCNN ONNX runtime did not return ${a}`);return{output:S.data,outputShape:[...S.dims],runtime:this.id,runMs:x,macs:this.estimateMacs(l[3],l[2])}},async denoiseImageData({imageData:w,sigma:D}={}){Uk(w,l);let b=sP({imageData:w,sigma:D}),E=await this.execute(b);return{...E,imageData:{width:w.width,height:w.height,data:oP({output:E.output,width:w.width,height:w.height})}}}}}var Re=t=>document.getElementById(t),BG=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.js",wasm:"./onnxruntime/ort-wasm-simd-threaded.wasm"}),BI=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.asyncify.mjs",wasm:"./onnxruntime/ort-wasm-simd-threaded.asyncify.wasm"}),ie={file:null,originalUrl:null,processedUrl:null,metadata:null,detection:null,running:!1,jobId:0,syncingPlayback:!1},So=new Map,q={dropzone:Re("dropzone"),fileInput:Re("fileInput"),comparePlayer:Re("comparePlayer"),afterBadge:Re("afterBadge"),playPauseBtn:Re("playPauseBtn"),scrubber:Re("scrubber"),timeLabel:Re("timeLabel"),originalVideo:Re("originalVideo"),processedVideo:Re("processedVideo"),originalEmpty:Re("originalEmpty"),processedEmpty:Re("processedEmpty"),metadata:Re("metadata"),detection:Re("detection"),progressBar:Re("progressBar"),progressText:Re("progressText"),status:Re("status"),alphaGain:Re("alphaGain"),alphaGainValue:Re("alphaGainValue"),adaptiveAlpha:Re("adaptiveAlpha"),highQualityCleanup:Re("highQualityCleanup"),denoiseBackend:Re("denoiseBackend"),edgeDenoiseStrength:Re("edgeDenoiseStrength"),edgeDenoiseStrengthValue:Re("edgeDenoiseStrengthValue"),residualCleanup:Re("residualCleanup"),residualCleanupValue:Re("residualCleanupValue"),videoBitrateMbps:Re("videoBitrateMbps"),sampleCount:Re("sampleCount"),allowLowConfidence:Re("allowLowConfidence"),autoPresetSummary:Re("autoPresetSummary"),processBtn:Re("processBtn"),detectBtn:Re("detectBtn"),downloadBtn:Re("downloadBtn"),resetBtn:Re("resetBtn"),relocatedReviewPresetBtn:Re("relocatedReviewPresetBtn")};function it(t,e="info"){q.status.textContent=t||"",q.status.dataset.tone=e}function PG(t){let e=String(t||"").split(";")[0].trim().toLowerCase();return e==="application/javascript"||e==="text/javascript"||e==="application/ecmascript"||e==="text/ecmascript"||e.endsWith("+javascript")}async function yG(t){try{let e=await fetch(t.mjs,{cache:"no-store"});if(!e.ok)return{ok:!1,reason:`WebGPU runtime module unavailable: ${e.status}`};let A=e.headers.get("content-type")||"";return PG(A)?{ok:!0}:{ok:!1,reason:`WebGPU runtime module is served as ${A||"unknown MIME"}`}}catch(e){return{ok:!1,reason:e?.message||String(e)}}}async function IG(t=jn()){let e=t||jn();if(!So.has(e.id)){let A=(async()=>{let r=await fetch(e.modelUrl);if(!r.ok)throw new Error(`\u65E0\u6CD5\u52A0\u8F7D AI \u6A21\u578B\uFF1A${r.status}`);let n=new Uint8Array(await r.arrayBuffer());if(navigator.gpu&&window.__gwrDisableWebGpuDenoise!==!0)try{let a=await yG(BI);if(!a.ok)throw console.warn("WebGPU AI runtime skipped:",a.reason),new Error(a.reason);it("\u6B63\u5728\u542F\u7528 WebGPU AI \u53BB\u6C34\u5370...");let i=await Promise.resolve().then(()=>(wI(),pI));return await $f({ort:i,modelBytes:n,executionProvider:"webgpu",wasmPaths:BI,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:e.inputShape,outputShape:e.outputShape})}catch(a){console.warn("WebGPU AI runtime unavailable, falling back to WASM:",a)}return $f({modelBytes:n,executionProvider:"wasm",wasmPaths:BG,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:e.inputShape,outputShape:e.outputShape})})();So.set(e.id,A),A.catch(()=>{So.get(e.id)===A&&So.delete(e.id)})}return So.get(e.id)}async function DG(t,e=jn()){return t!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?null:(it("\u6B63\u5728\u52A0\u8F7D AI FDnCNN ONNX \u6A21\u578B\uFF0C\u9996\u6B21\u52A0\u8F7D\u4F1A\u7A0D\u6162..."),IG(e))}function CG(t){if(!t||t.executionProvider!=="wasm")return null;let e=!!(crossOriginIsolated&&typeof SharedArrayBuffer<"u");return{maxFrames:e?1:2,threshold:e?4.5:6.5}}function bG(t){return Number.isFinite(window.__gwrVideoOverrideAllenkFdncnnSigma)?Math.max(0,Math.min(150,window.__gwrVideoOverrideAllenkFdncnnSigma)):t?.watermarkKind==="veo-text"?t.template?.cleanup?.runtimeFdncnnSigma??75:75}function EG(t,e){return Number.isFinite(window.__gwrVideoOverrideAllenkFdncnnPadding)?Math.max(0,Math.round(window.__gwrVideoOverrideAllenkFdncnnPadding)):t?.watermarkKind==="veo-text"&&Number.isFinite(t.template?.cleanup?.allenkFdncnnPadding)?t.template.cleanup.allenkFdncnnPadding:e.padding}function hA(t,e){let A=Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t*100))):0;q.progressBar.style.width=`${A}%`,q.progressText.textContent=e||`${A}%`}function Yo(){return new Promise(t=>{let e=()=>setTimeout(t,0);typeof requestAnimationFrame=="function"?requestAnimationFrame(e):e()})}function PI(t,{start:e=0,span:A=1}={}){return({progress:r=0,step:n="detect",sampledFrames:a=0,sampleCount:i=0}={})=>{if(t!==ie.jobId)return;let s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):0,o={metadata:"\u8BFB\u53D6\u89C6\u9891",sample:i>0?`\u62BD\u5E27 ${a}/${i}`:"\u62BD\u5E27",score:"\u5339\u914D\u6C34\u5370",done:"\u68C0\u6D4B\u5B8C\u6210"};hA(e+s*A,o[n]||"\u68C0\u6D4B\u4E2D"),n==="sample"?it(i>0?`\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370\uFF1A${a}/${i}`:"\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370..."):n==="score"&&it("\u6B63\u5728\u5339\u914D\u6C34\u5370\u5019\u9009\uFF0C\u9875\u9762\u4F1A\u4FDD\u6301\u54CD\u5E94...")}}function TG(t){return Number.isFinite(t)?`${t.toFixed(2)}s`:"\u672A\u77E5"}function kG(t){return Number.isFinite(t)?`${(t/1e3/1e3).toFixed(2)} Mbps`:"\u672A\u77E5"}function Nm(t){if(!Number.isFinite(t)||t<0)return"0:00";let e=Math.floor(t),A=Math.floor(e/60),r=e%60;return`${A}:${String(r).padStart(2,"0")}`}function mn(){let t=!!ie.file;q.detectBtn.disabled=!t||ie.running,q.processBtn.disabled=!t||ie.running;let e=!!ie.processedUrl&&!ie.running;q.downloadBtn.setAttribute("aria-disabled",e?"false":"true"),q.downloadBtn.tabIndex=e?0:-1,q.resetBtn.disabled=ie.running,di()}function qm(){return!!ie.processedUrl}function di(){let t=!!ie.originalUrl;q.playPauseBtn.disabled=!t,q.scrubber.disabled=!t,q.playPauseBtn.dataset.playing=q.originalVideo.paused?"false":"true",q.playPauseBtn.setAttribute("aria-label",q.originalVideo.paused?"\u64AD\u653E":"\u6682\u505C");let e=Number.isFinite(q.originalVideo.duration)?q.originalVideo.duration:0,A=Number.isFinite(q.originalVideo.currentTime)?q.originalVideo.currentTime:0;e>0&&!q.scrubber.matches(":active")&&(q.scrubber.value=String(Math.round(A/e*1e3))),q.timeLabel.textContent=e>0?`${Nm(A)} / ${Nm(e)}`:Nm(A)}function Oo(){let t=qm();q.afterBadge.hidden=!t,q.processedEmpty.hidden=t}function vo({force:t=!1}={}){if(!qm()||ie.syncingPlayback)return;let e=Number(q.originalVideo.currentTime)||0;if(!(!t&&Math.abs((Number(q.processedVideo.currentTime)||0)-e)<.08)){ie.syncingPlayback=!0;try{q.processedVideo.currentTime=e}catch(A){console.warn("sync processed video failed:",A)}finally{ie.syncingPlayback=!1}}}async function GG(){if(ie.originalUrl){vo({force:!0});try{await q.originalVideo.play(),qm()&&await q.processedVideo.play().catch(t=>{console.warn("processed video play failed:",t)})}catch(t){console.warn("original video play failed:",t),it("\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u64AD\u653E\uFF0C\u8BF7\u518D\u70B9\u4E00\u6B21\u64AD\u653E\u6309\u94AE\u3002","warn")}finally{di()}}}function yI(){q.originalVideo.pause(),q.processedVideo.pause(),di()}function xG(){q.originalVideo.paused?GG():yI()}function SG(t){let e=Number(q.originalVideo.duration);if(!Number.isFinite(e)||e<=0)return;let A=Number(t)/1e3*e;q.originalVideo.currentTime=A,vo({force:!0}),di()}function II(t=null){if(q.autoPresetSummary){if(!t){q.autoPresetSummary.innerHTML=`
101
+ `))[0]=="Error"&&Y.shift(),yt(Y);for(var Q=3;Y[Q]&&bi(Y[Q])!=I;)++Q;for(I=0;I<O&&Y[I+Q];++I)(S(),F)[T+4*I>>>2>>>0]=bi(Y[I+Q]);return I}var pn,is={},Lo=()=>{if(!pn){var I,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"};for(I in is)is[I]===void 0?delete T[I]:T[I]=is[I];var O=[];for(I in T)O.push(`${I}=${T[I]}`);pn=O}return pn};function jo(I,T){if(n)return ue(19,1,I,T);I>>>=0,T>>>=0;var O,Y=0,Q=0;for(O of Lo()){var U=T+Y;(S(),K)[I+Q>>>2>>>0]=U,Y+=gr(O,U,1/0)+1,Q+=4}return 0}function Vo(I,T){if(n)return ue(20,1,I,T);I>>>=0,T>>>=0;var O=Lo();for(var Y of((S(),K)[I>>>2>>>0]=O.length,I=0,O))I+=ns(Y)+1;return(S(),K)[T>>>2>>>0]=I,0}function wn(I){return n?ue(21,1,I):52}function Ko(I,T,O,Y){return n?ue(22,1,I,T,O,Y):52}function IA(I,T,O,Y){return n?ue(23,1,I,T,O,Y):70}var oA=[null,[],[]];function as(I,T,O,Y){if(n)return ue(24,1,I,T,O,Y);T>>>=0,O>>>=0,Y>>>=0;for(var Q=0,U=0;U<O;U++){var X=(S(),K)[T>>>2>>>0],ge=(S(),K)[T+4>>>2>>>0];T+=8;for(var Ie=0;Ie<ge;Ie++){var Ye=I,Bt=(S(),N)[X+Ie>>>0],Zt=oA[Ye];Bt===0||Bt===10?((Ye===1?D:b)(Fo(Zt)),Zt.length=0):Zt.push(Bt)}Q+=ge}return(S(),K)[Y>>>2>>>0]=Q,0}function Ti(I){return I>>>0}n||function(){for(var I=e.numThreads-1;I--;)Qa();Je.push(async()=>{var T=async function(){if(!n)return Promise.all(Rt.map(VA))}();qe++,await T,--qe==0&&ut&&(T=ut,ut=null,T())})}(),n||(wA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),De()),e.wasmBinary&&(g=e.wasmBinary),e.stackSave=()=>Ce(),e.stackRestore=I=>Pe(I),e.stackAlloc=I=>ls(I),e.setValue=function(I,T,O="i8"){switch(O.endsWith("*")&&(O="*"),O){case"i1":case"i8":(S(),M)[I>>>0]=T;break;case"i16":(S(),V)[I>>>1>>>0]=T;break;case"i32":(S(),F)[I>>>2>>>0]=T;break;case"i64":(S(),W)[I>>>3>>>0]=BigInt(T);break;case"float":(S(),L)[I>>>2>>>0]=T;break;case"double":(S(),_)[I>>>3>>>0]=T;break;case"*":(S(),K)[I>>>2>>>0]=T;break;default:we(`invalid type for setValue: ${O}`)}},e.getValue=function(I,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return(S(),M)[I>>>0];case"i16":return(S(),V)[I>>>1>>>0];case"i32":return(S(),F)[I>>>2>>>0];case"i64":return(S(),W)[I>>>3>>>0];case"float":return(S(),L)[I>>>2>>>0];case"double":return(S(),_)[I>>>3>>>0];case"*":return(S(),K)[I>>>2>>>0];default:we(`invalid type for getValue: ${T}`)}},e.UTF8ToString=Pi,e.stringToUTF8=gr,e.lengthBytesUTF8=ns;var Nr,ss,os,cs,ki,Wo,us,gs,Gi,Zo,ke,Bn,$o,Pe,ls,Ce,Jo,ds,Xo,ec,fs,ZA,Yg=[Yt,Se,Mo,Ua,qa,ur,La,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,Di,Uo,qo,jo,Vo,wn,Ko,IA,as],tc={930988:(I,T,O,Y,Q)=>{if(e===void 0||!e.Rb)return 1;if((I=Pi(Number(I>>>0))).startsWith("./")&&(I=I.substring(2)),!(I=e.Rb.get(I)))return 2;if(T=Number(T>>>0),O=Number(O>>>0),Y=Number(Y>>>0),T+O>I.byteLength)return 3;try{let U=I.subarray(T,T+O);switch(Q){case 0:(S(),N).set(U,Y>>>0);break;case 1:e.fc?e.fc(Y,U):e.ic(Y,U);break;default:return 4}return 0}catch{return 4}},931812:()=>typeof wasmOffsetConverter<"u"};function vg(){return typeof wasmOffsetConverter<"u"}function Og(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function _g(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Mg(I){var T=Ce();try{Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function Rg(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function Ac(I,T,O){var Y=Ce();try{Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function rc(I,T){var O=Ce();try{Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function nc(I,T,O,Y,Q,U,X){var ge=Ce();try{return Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function Qg(I,T,O,Y,Q,U){var X=Ce();try{Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function Fg(I,T,O,Y){var Q=Ce();try{Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function ic(I,T,O,Y,Q){var U=Ce();try{Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function ac(I,T,O,Y,Q,U,X){var ge=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function Pn(I,T,O,Y,Q,U,X){var ge=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ge),Ie!==Ie+0)throw Ie;ke(1,0)}}function zg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function sc(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function Ng(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Hg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function Ug(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt){var CA=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function qg(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function ms(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;return ke(1,0),0n}}function oc(I,T,O,Y,Q,U,X,ge,Ie){var Ye=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie)}catch(Bt){if(Pe(Ye),Bt!==Bt+0)throw Bt;ke(1,0)}}function Lg(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function jg(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;return ke(1,0),0n}}function Vg(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;return ke(1,0),0n}}function Kg(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function Wg(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;ke(1,0)}}function Zg(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function $g(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ge){if(Pe(X),ge!==ge+0)throw ge;ke(1,0)}}function Jg(I,T,O,Y,Q,U,X,ge){var Ie=Ce();try{return Te(I)(T,O,Y,Q,U,X,ge)}catch(Ye){if(Pe(Ie),Ye!==Ye+0)throw Ye;ke(1,0)}}function Xg(I,T,O,Y,Q){var U=Ce();try{return Te(I)(T,O,Y,Q)}catch(X){if(Pe(U),X!==X+0)throw X;return ke(1,0),0n}}function cA(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function hs(I,T,O,Y){var Q=Ce();try{return Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function yn(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt){var CA=Ce();try{return Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function wt(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt){var Zt=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt)}catch(CA){if(Pe(Zt),CA!==CA+0)throw CA;ke(1,0)}}function el(I,T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt,CA,bA,tl,Al){var rl=Ce();try{Te(I)(T,O,Y,Q,U,X,ge,Ie,Ye,Bt,Zt,CA,bA,tl,Al)}catch(ps){if(Pe(rl),ps!==ps+0)throw ps;ke(1,0)}}function DA(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function xi(I,T,O){var Y=Ce();try{return Te(I)(T,O)}catch(Q){if(Pe(Y),Q!==Q+0)throw Q;ke(1,0)}}function Hr(I,T,O,Y){var Q=Ce();try{Te(I)(T,O,Y)}catch(U){if(Pe(Q),U!==U+0)throw U;ke(1,0)}}function oe(){if(0<qe)ut=oe;else if(n)f?.(e),ae();else{for(var I=Je;0<I.length;)I.shift()(e);0<qe?ut=oe:(e.calledRun=!0,E||(ae(),f?.(e)))}}return n||(ZA=await tt(),oe()),e.PTR_SIZE=4,Ae?e:new Promise((I,T)=>{f=I,p=T})}var Gy,LP,Qk=ze(()=>{"use strict";Gy=qP,LP=globalThis.self?.name?.startsWith("em-pthread"),LP&&qP()}),Pf,Sf,jP,rA,xy,Lu,VP,KP,yf,WP,If,Sy,Df,Yy,Qf=ze(()=>{"use strict";Rf(),Pf=typeof location>"u"?void 0:location.origin,Sf=UA.url>"file:"&&UA.url<"file;",jP=()=>{if(Sf){let t=URL;return new URL(new t("ort.wasm.bundle.min.mjs",UA.url).href,Pf).href}return UA.url},rA=jP(),xy=()=>{if(rA&&!rA.startsWith("blob:"))return rA.substring(0,rA.lastIndexOf("/")+1)},Lu=(t,e)=>{try{let A=e??rA;return(A?new URL(t,A):new URL(t)).origin===Pf}catch{return!1}},VP=(t,e)=>{let A=e??rA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},KP=(t,e)=>`${e??"./"}${t}`,yf=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},WP=async t=>(await import(t)).default,If=(Rk(),xf(Ey)).default,Sy=async()=>{if(!rA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Lu(rA))return[void 0,If()];let t=await yf(rA);return[t,If(t)]},Df=(Qk(),xf(ky)).default,Yy=async(t,e,A,r)=>{let n=Df&&!(t||e);if(n)if(rA)n=Lu(rA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,Df];{let a="ort-wasm-simd-threaded.mjs",i=t??VP(a,e),s=A&&i&&!Lu(i,e),o=s?await yf(i):i??KP(a,e);return[s?o:void 0,await WP(o)]}}}),Cf,ju,wo,bf,ZP,$P,JP,Ff,nt,Sa=ze(()=>{"use strict";Qf(),ju=!1,wo=!1,bf=!1,ZP=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},$P=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},JP=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Ff=async t=>{if(ju)return Promise.resolve();if(wo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(bf)throw new Error("previous call to 'initializeWebAssembly()' failed.");wo=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!JP())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!$P())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=ZP();A>1&&!r&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+A+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),t.numThreads=A=1);let n=t.wasmPaths,a=typeof n=="string"?n:void 0,i=n?.mjs,s=i?.href??i,o=n?.wasm,c=o?.href??o,g=t.wasmBinary,[u,l]=await Yy(s,a,A>1,!!g||!!c),f=!1,p=[];if(e>0&&p.push(new Promise(h=>{setTimeout(()=>{f=!0,h()},e)})),p.push(new Promise((h,y)=>{let w={numThreads:A};if(g)w.wasmBinary=g,w.locateFile=D=>D;else if(c||a)w.locateFile=D=>c??a+D;else if(s&&s.indexOf("blob:")!==0)w.locateFile=D=>new URL(D,s).href;else if(u){let D=xy();D&&(w.locateFile=b=>D+b)}l(w).then(D=>{wo=!1,ju=!0,Cf=D,h(),u&&URL.revokeObjectURL(u)},D=>{wo=!1,bf=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},nt=()=>{if(ju&&Cf)return Cf;throw new Error("WebAssembly is not initialized yet.")}}),HA,$u,We,zf=ze(()=>{"use strict";Sa(),HA=(t,e)=>{let A=nt(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},$u=(t,e,A,r)=>{if(typeof t=="object"&&t!==null){if(A.has(t))throw new Error("Circular reference in options");A.add(t)}Object.entries(t).forEach(([n,a])=>{let i=e?e+n:n;if(typeof a=="object")$u(a,i+".",A,r);else if(typeof a=="string"||typeof a=="number")r(i,a.toString());else if(typeof a=="boolean")r(i,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},We=t=>{let e=nt(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetLastError(n,n+r);let a=Number(e.getValue(n,r===4?"i32":"i64")),i=e.getValue(n+r,"*"),s=i?e.UTF8ToString(i):"";throw new Error(`${t} ERROR_CODE: ${a}, ERROR_MESSAGE: ${s}`)}finally{e.stackRestore(A)}}}),vy,Fk=ze(()=>{"use strict";Sa(),zf(),vy=t=>{let e=nt(),A=0,r=[],n=t||{};try{if(t?.logSeverityLevel===void 0)n.logSeverityLevel=2;else if(typeof t.logSeverityLevel!="number"||!Number.isInteger(t.logSeverityLevel)||t.logSeverityLevel<0||t.logSeverityLevel>4)throw new Error(`log severity level is not valid: ${t.logSeverityLevel}`);if(t?.logVerbosityLevel===void 0)n.logVerbosityLevel=0;else if(typeof t.logVerbosityLevel!="number"||!Number.isInteger(t.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${t.logVerbosityLevel}`);t?.terminate===void 0&&(n.terminate=!1);let a=0;return t?.tag!==void 0&&(a=HA(t.tag,r)),A=e._OrtCreateRunOptions(n.logSeverityLevel,n.logVerbosityLevel,!!n.terminate,a),A===0&&We("Can't create run options."),t?.extra!==void 0&&$u(t.extra,"",new WeakSet,(i,s)=>{let o=HA(i,r),c=HA(s,r);e._OrtAddRunConfigEntry(A,o,c)!==0&&We(`Can't set a run config entry: ${i} - ${s}.`)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseRunOptions(A),r.forEach(i=>e._free(i)),a}}}),XP,ey,ty,Kn,Ay,Oy,zk=ze(()=>{"use strict";Sa(),zf(),XP=t=>{switch(t){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"layout":return 3;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${t}`)}},ey=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},ty=t=>{t.extra||(t.extra={}),t.extra.session||(t.extra.session={});let e=t.extra.session;e.use_ort_model_bytes_directly||(e.use_ort_model_bytes_directly="1"),t.executionProviders&&t.executionProviders.some(A=>(typeof A=="string"?A:A.name)==="webgpu")&&(t.enableMemPattern=!1)},Kn=(t,e,A,r)=>{let n=HA(e,r),a=HA(A,r);nt()._OrtAddSessionConfigEntry(t,n,a)!==0&&We(`Can't set a session config entry: ${e} - ${A}.`)},Ay=async(t,e,A)=>{let r=e.executionProviders;for(let n of r){let a=typeof n=="string"?n:n.name,i=[];switch(a){case"webnn":if(a="WEBNN",Kn(t,"session.disable_quant_qdq","1",A),Kn(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Kn(t,"deviceType",u,A)}break;case"webgpu":if(a="JS",typeof n!="string"){let u=n;if(u?.preferredLayout){if(u.preferredLayout!=="NCHW"&&u.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${u.preferredLayout}`);Kn(t,"preferredLayout",u.preferredLayout,A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=HA(a,A),o=i.length,c=0,g=0;if(o>0){c=nt()._malloc(o*nt().PTR_SIZE),A.push(c),g=nt()._malloc(o*nt().PTR_SIZE),A.push(g);for(let u=0;u<o;u++)nt().setValue(c+u*nt().PTR_SIZE,i[u][0],"*"),nt().setValue(g+u*nt().PTR_SIZE,i[u][1],"*")}await nt()._OrtAppendExecutionProvider(t,s,c,g,o)!==0&&We(`Can't append execution provider: ${a}.`)}},Oy=async t=>{let e=nt(),A=0,r=[],n=t||{};ty(n);try{let a=XP(n.graphOptimizationLevel??"all"),i=ey(n.executionMode??"sequential"),s=typeof n.logId=="string"?HA(n.logId,r):0,o=n.logSeverityLevel??2;if(!Number.isInteger(o)||o<0||o>4)throw new Error(`log severity level is not valid: ${o}`);let c=n.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let g=typeof n.optimizedModelFilePath=="string"?HA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,g),A===0&&We("Can't create session options."),n.executionProviders&&await Ay(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Kn(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,l]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof l!="number"||!Number.isInteger(l)||l<0)throw new Error(`free dimension override value must be a non-negative integer: ${l}`);let f=HA(u,r);e._OrtAddFreeDimensionOverride(A,f,l)!==0&&We(`Can't set a free dimension override: ${u} - ${l}.`)}return n.extra!==void 0&&$u(n.extra,"",new WeakSet,(u,l)=>{Kn(A,u,l,r)}),[A,r]}catch(a){throw A!==0&&e._OrtReleaseSessionOptions(A)!==0&&We("Can't release session options."),r.forEach(i=>e._free(i)),a}}}),Ga,Wu,xa,_y,My,Nf,Hf,Ry,Qy=ze(()=>{"use strict";Ga=t=>{switch(t){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${t}`)}},Wu=t=>{switch(t){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${t}`)}},xa=(t,e)=>{let A=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][t],r=typeof e=="number"?e:e.reduce((n,a)=>n*a,1);return A>0?Math.ceil(r*A):void 0},_y=t=>{switch(t){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${t}`)}},My=t=>{switch(t){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${t}`)}},Nf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Hf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Ry=t=>{switch(t){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${t}`)}}}),Uf,Fy=ze(()=>{"use strict";Rf(),Uf=async t=>{if(typeof t=="string"){let e=await fetch(t);if(!e.ok)throw new Error(`failed to load external data file: ${t}`);let A=e.headers.get("Content-Length"),r=A?parseInt(A,10):0;if(r<1073741824)return new Uint8Array(await e.arrayBuffer());{if(!e.body)throw new Error(`failed to load external data file: ${t}, no response body.`);let n=e.body.getReader(),a;try{a=new ArrayBuffer(r)}catch(s){if(s instanceof RangeError){let o=Math.ceil(r/65536);a=new WebAssembly.Memory({initial:o,maximum:o}).buffer}else throw s}let i=0;for(;;){let{done:s,value:o}=await n.read();if(s)break;let c=o.byteLength;new Uint8Array(a,i,c).set(o),i+=c}return new Uint8Array(a,0,r)}}else return t instanceof Blob?new Uint8Array(await t.arrayBuffer()):t instanceof Uint8Array?t:new Uint8Array(t)}}),ry,qf,Lf,Wn,ny,Ef,Ju,jf,Vf,Tf,Kf,Wf,Zf,zy=ze(()=>{"use strict";ri(),Fk(),zk(),Qy(),Sa(),zf(),Fy(),ry=(t,e)=>{nt()._OrtInit(t,e)!==0&&We("Can't initialize onnxruntime.")},qf=async t=>{ry(t.wasm.numThreads,My(t.logLevel))},Lf=async(t,e)=>{nt().asyncInit?.();let A=t.webgpu.adapter;if(e==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");if(A){if(typeof A.limits!="object"||typeof A.features!="object"||typeof A.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let r=t.webgpu.powerPreference;if(r!==void 0&&r!=="low-power"&&r!=="high-performance")throw new Error(`Invalid powerPreference setting: "${r}"`);let n=t.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(A=await navigator.gpu.requestAdapter({powerPreference:r,forceFallbackAdapter:n}),!A)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}}if(e==="webnn"&&(typeof navigator>"u"||!navigator.ml))throw new Error("WebNN is not supported in current environment")},Wn=new Map,ny=t=>{let e=nt(),A=e.stackSave();try{let r=e.PTR_SIZE,n=e.stackAlloc(2*r);e._OrtGetInputOutputCount(t,n,n+r)!==0&&We("Can't get session input/output count.");let a=r===4?"i32":"i64";return[Number(e.getValue(n,a)),Number(e.getValue(n+r,a))]}finally{e.stackRestore(A)}},Ef=(t,e)=>{let A=nt(),r=A.stackSave(),n=0;try{let a=A.PTR_SIZE,i=A.stackAlloc(2*a);A._OrtGetInputOutputMetadata(t,e,i,i+a)!==0&&We("Can't get session input/output metadata.");let s=Number(A.getValue(i,"*"));n=Number(A.getValue(i+a,"*"));let o=A.HEAP32[n/4];if(o===0)return[s,0];let c=A.HEAPU32[n/4+1],g=[];for(let u=0;u<c;u++){let l=Number(A.getValue(n+8+u*a,"*"));g.push(l!==0?A.UTF8ToString(l):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,g]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},Ju=t=>{let e=nt(),A=e._malloc(t.byteLength);if(A===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${t.byteLength}.`);return e.HEAPU8.set(t,A),[A,t.byteLength]},jf=async(t,e)=>{let A,r,n=nt();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=Ju(t);let a=0,i=0,s=0,o=[],c=[],g=[];try{if([i,o]=await Oy(e),e?.externalData&&n.mountExternalData){let b=[];for(let E of e.externalData){let x=typeof E=="string"?E:E.path;b.push(Uf(typeof E=="string"?E:E.data).then(S=>{n.mountExternalData(x,S)}))}await Promise.all(b)}for(let b of e?.executionProviders??[])if((typeof b=="string"?b:b.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof b!="string"){let E=b,x=E?.context,S=E?.gpuDevice,k=E?.deviceType,R=E?.powerPreference;x?n.currentContext=x:S?n.currentContext=await n.webnnCreateMLContext(S):n.currentContext=await n.webnnCreateMLContext({deviceType:k,powerPreference:R})}else n.currentContext=await n.webnnCreateMLContext();break}a=await n._OrtCreateSession(A,r,i),n.webgpuOnCreateSession?.(a),a===0&&We("Can't create a session."),n.jsepOnCreateSession?.(),n.currentContext&&(n.webnnRegisterMLContext(a,n.currentContext),n.currentContext=void 0,n.shouldTransferToMLTensor=!0);let[u,l]=ny(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let b=0;b<u;b++){let[E,x,S]=Ef(a,b);E===0&&We("Can't get an input name."),c.push(E);let k=n.UTF8ToString(E);p.push(k),y.push(x===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Wu(x),shape:S})}for(let b=0;b<l;b++){let[E,x,S]=Ef(a,b+u);E===0&&We("Can't get an output name."),g.push(E);let k=n.UTF8ToString(E);h.push(k),w.push(x===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Wu(x),shape:S})}return Wn.set(a,[a,c,g,null,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(l=>n._OrtFree(l)),g.forEach(l=>n._OrtFree(l)),s!==0&&n._OrtReleaseBinding(s)!==0&&We("Can't release IO binding."),a!==0&&n._OrtReleaseSession(a)!==0&&We("Can't release session."),u}finally{n._free(A),i!==0&&n._OrtReleaseSessionOptions(i)!==0&&We("Can't release session options."),o.forEach(u=>n._free(u)),n.unmountExternalData?.()}},Vf=t=>{let e=nt(),A=Wn.get(t);if(!A)throw new Error(`cannot release session. invalid session id: ${t}`);let[r,n,a,i,s]=A;i&&(s&&e._OrtClearBoundOutputs(i.handle)!==0&&We("Can't clear bound outputs."),e._OrtReleaseBinding(i.handle)!==0&&We("Can't release IO binding.")),e.jsepOnReleaseSession?.(t),e.webnnOnReleaseSession?.(t),e.webgpuOnReleaseSession?.(t),n.forEach(o=>e._OrtFree(o)),a.forEach(o=>e._OrtFree(o)),e._OrtReleaseSession(r)!==0&&We("Can't release session."),Wn.delete(t)},Tf=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=nt(),o=s.PTR_SIZE,c=t[0],g=t[1],u=t[3],l=u,f,p;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(i&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let w=t[2].gpuBuffer;p=xa(Ga(c),g);{let D=s.jsepRegisterBuffer;if(!D)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');f=D(r,a,w,p)}}else if(u==="ml-tensor"){let w=t[2].mlTensor;p=xa(Ga(c),g);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,Ga(c),g)}else{let w=t[2];if(Array.isArray(w)){p=o*w.length,f=s._malloc(p),A.push(f);for(let D=0;D<w.length;D++){if(typeof w[D]!="string")throw new TypeError(`tensor data at index ${D} is not a string`);s.setValue(f+D*o,HA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,b=s.webnnIsGraphOutput;if(c!=="string"&&D&&b){let E=s.UTF8ToString(n);if(D(r,E)||b(r,E)){let x=Ga(c);p=xa(x,g),l="ml-tensor";let S=s.webnnCreateTemporaryTensor,k=s.webnnUploadTensor;if(!S||!k)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let R=await S(r,x,g);k(R,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=R}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}else p=w.byteLength,f=s._malloc(p),A.push(f),s.HEAPU8.set(new Uint8Array(w.buffer,w.byteOffset,p),f)}}let h=s.stackSave(),y=s.stackAlloc(4*g.length);try{g.forEach((D,b)=>s.setValue(y+b*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(Ga(c),f,p,y,g.length,Ry(l));w===0&&We(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Kf=async(t,e,A,r,n,a)=>{let i=nt(),s=i.PTR_SIZE,o=Wn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],g=o[1],u=o[2],l=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],b=[],E=[],x=[],S=[],k=i.stackSave(),R=i.stackAlloc(h*s),M=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=vy(a),ti("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await Tf(A[_],b,x,t,g[e[_]],e[_],f);for(let _=0;_<y;_++)await Tf(n[_],E,x,t,u[r[_]],h+r[_],f);Ai("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(R+_*s,b[_],"*"),i.setValue(M+_*s,g[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,E[_],"*"),i.setValue(V+_*s,u[r[_]],"*");i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;F=await i._OrtRun(c,M,R,h,V,y,N,w),F!==0&&We("failed to call OrtRun().");let K=[],L=[];ti("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===E[_]||S.includes(E[_])){K.push(n[_]),W!==E[_]&&i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.");continue}let pe=i.stackSave(),Ae=i.stackAlloc(4*s),De=!1,ae,we=0;try{i._OrtGetTensorData(W,Ae,Ae+s,Ae+2*s,Ae+3*s)!==0&&We(`Can't access output tensor data on index ${_}.`);let et=s===4?"i32":"i64",tt=Number(i.getValue(Ae,et));we=i.getValue(Ae+s,"*");let $e=i.getValue(Ae+s*2,"*"),pA=Number(i.getValue(Ae+s*3,et)),Je=[];for(let Be=0;Be<pA;Be++)Je.push(Number(i.getValue($e+Be*s,et)));i._OrtFree($e)!==0&&We("Can't free memory for tensor dims.");let qe=Je.reduce((Be,se)=>Be*se,1);ae=Wu(tt);let ut=l?.outputPreferredLocations[r[_]];if(ae==="string"){if(ut==="gpu-buffer"||ut==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let se=0;se<qe;se++){let ue=i.getValue(we+se*s,"*"),Yt=i.getValue(we+(se+1)*s,"*"),Se=se===qe-1?void 0:Yt-ue;Be.push(i.UTF8ToString(ue,Se))}K.push([ae,Je,Be,"cpu"])}else if(ut==="gpu-buffer"&&qe>0){let Be=i.jsepGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let se=Be(we),ue=xa(tt,qe);if(ue===void 0||!Nf(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0,K.push([ae,Je,{gpuBuffer:se,download:i.jsepCreateDownloader(se,ue,ae),dispose:()=>{i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.")}},"gpu-buffer"])}else if(ut==="ml-tensor"&&qe>0){let Be=i.webnnEnsureTensor,se=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!se)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(xa(tt,qe)===void 0||!Hf(ae))throw new Error(`Unsupported data type: ${ae}`);if(!se(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let ue=await Be(t,we,tt,Je,!1);De=!0,K.push([ae,Je,{mlTensor:ue,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&qe>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),se=K.length;De=!0,L.push((async()=>{let ue=[se,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),ue})()),K.push([ae,Je,[],"cpu"])}else{let Be=_y(ae),se=new Be(qe);new Uint8Array(se.buffer,se.byteOffset,se.byteLength).set(i.HEAPU8.subarray(we,we+se.byteLength)),K.push([ae,Je,se,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}l&&!f&&(i._OrtClearBoundOutputs(l.handle)!==0&&We("Can't clear bound outputs."),Wn.set(t,[c,g,u,l,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return Ai("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),b.forEach(F=>i._OrtReleaseTensor(F)),E.forEach(F=>i._OrtReleaseTensor(F)),x.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Wf=t=>{let e=nt(),A=Wn.get(t);if(!A)throw new Error("invalid session id");let r=A[0],n=e._OrtEndProfiling(r);n===0&&We("Can't get an profile file name."),e._OrtFree(n)},Zf=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),on,fA,ka,Bo,Po,Vu,kf,Ku,Zn,$n,iy,Ny,Hy,Uy,qy,Ly,jy,Vy,Ky=ze(()=>{"use strict";ri(),zy(),Sa(),Qf(),on=()=>!!ot.wasm.proxy&&typeof document<"u",ka=!1,Bo=!1,Po=!1,Ku=new Map,Zn=(t,e)=>{let A=Ku.get(t);A?A.push(e):Ku.set(t,[e])},$n=()=>{if(ka||!Bo||Po||!fA)throw new Error("worker not ready")},iy=t=>{switch(t.data.type){case"init-wasm":ka=!1,t.data.err?(Po=!0,kf[1](t.data.err)):(Bo=!0,kf[0]()),Vu&&(URL.revokeObjectURL(Vu),Vu=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=Ku.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},Ny=async()=>{if(!Bo){if(ka)throw new Error("multiple calls to 'initWasm()' detected.");if(Po)throw new Error("previous call to 'initWasm()' failed.");if(ka=!0,on())return new Promise((t,e)=>{fA?.terminate(),Sy().then(([A,r])=>{try{fA=r,fA.onerror=a=>e(a),fA.onmessage=iy,kf=[t,e];let n={type:"init-wasm",in:ot};!n.in.wasm.wasmPaths&&(A||Sf)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.wasm",UA.url).href}),fA.postMessage(n),Vu=A}catch(n){e(n)}},e)});try{await Ff(ot.wasm),await qf(ot),Bo=!0}catch(t){throw Po=!0,t}finally{ka=!1}}},Hy=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:ot}};fA.postMessage(r)});await Lf(ot,t)},Uy=async t=>on()?($n(),new Promise((e,A)=>{Zn("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};fA.postMessage(r,[t.buffer])})):Ju(t),qy=async(t,e)=>{if(on()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return $n(),new Promise((A,r)=>{Zn("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),fA.postMessage(n,a)})}else return jf(t,e)},Ly=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("release",[e,A]);let r={type:"release",in:t};fA.postMessage(r)});Vf(t)},jy=async(t,e,A,r,n,a)=>{if(on()){if(A.some(i=>i[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(n.some(i=>i))throw new Error("pre-allocated output tensor is not supported for proxy.");return $n(),new Promise((i,s)=>{Zn("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};fA.postMessage(c,Zf(o))})}else return Kf(t,e,A,r,n,a)},Vy=async t=>{if(on())return $n(),new Promise((e,A)=>{Zn("end-profiling",[e,A]);let r={type:"end-profiling",in:t};fA.postMessage(r)});Wf(t)}}),Gf,ay,Wy,Nk=ze(()=>{"use strict";ri(),Ky(),Qy(),Rf(),Fy(),Gf=(t,e)=>{switch(t.location){case"cpu":return[t.type,t.dims,t.data,"cpu"];case"gpu-buffer":return[t.type,t.dims,{gpuBuffer:t.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[t.type,t.dims,{mlTensor:t.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${t.location} for ${e()}`)}},ay=t=>{switch(t[3]){case"cpu":return new qA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!Nf(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return qA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!Hf(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return qA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},Wy=class{async fetchModelAndCopyToWasmMemory(t){return Uy(await Uf(t))}async loadModel(t,e){Xn();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await qy(A,e),ei()}async dispose(){return Ly(this.sessionId)}async run(t,e,A){Xn();let r=[],n=[];Object.entries(t).forEach(u=>{let l=u[0],f=u[1],p=this.inputNames.indexOf(l);if(p===-1)throw new Error(`invalid input '${l}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let l=u[0],f=u[1],p=this.outputNames.indexOf(l);if(p===-1)throw new Error(`invalid output '${l}'`);a.push(f),i.push(p)});let s=r.map((u,l)=>Gf(u,()=>`input "${this.inputNames[n[l]]}"`)),o=a.map((u,l)=>u?Gf(u,()=>`output "${this.outputNames[i[l]]}"`):null),c=await jy(this.sessionId,n,s,i,o,A),g={};for(let u=0;u<c.length;u++)g[this.outputNames[i[u]]]=a[u]??ay(c[u]);return ei(),g}startProfiling(){}endProfiling(){Vy(this.sessionId)}}}),Zy={};Xu(Zy,{OnnxruntimeWebAssemblyBackend:()=>vf,initializeFlags:()=>Yf,wasmBackend:()=>$y});var Yf,vf,$y,Hk=ze(()=>{"use strict";ri(),Ky(),Nk(),Yf=()=>{(typeof ot.wasm.initTimeout!="number"||ot.wasm.initTimeout<0)&&(ot.wasm.initTimeout=0);let t=ot.wasm.simd;if(typeof t!="boolean"&&t!==void 0&&t!=="fixed"&&t!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${t}". Reset it to \`false\` and ignore SIMD feature checking.`),ot.wasm.simd=!1),typeof ot.wasm.proxy!="boolean"&&(ot.wasm.proxy=!1),typeof ot.wasm.trace!="boolean"&&(ot.wasm.trace=!1),typeof ot.wasm.numThreads!="number"||!Number.isInteger(ot.wasm.numThreads)||ot.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)ot.wasm.numThreads=1;else{let e=typeof navigator>"u"?Ik("node:os").cpus().length:navigator.hardwareConcurrency;ot.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},vf=class{async init(t){Yf(),await Ny(),await Hy(t)}async createInferenceSessionHandler(t,e){let A=new Wy;return await A.loadModel(t,e),A}},$y=new vf});ri();ri();ri();var Uk="1.26.0",qk=by;{let t=(Hk(),xf(Zy)).wasmBackend;Io("cpu",t,10),Io("wasm",t,10)}Object.defineProperty(ot.versions,"web",{value:Uk,enumerable:!0});function eg(){return globalThis.performance?.now?globalThis.performance.now():Date.now()}function Jy(t,e=null){if(!Array.isArray(t))return e;let A=t.map(r=>Number(r));return A.every(r=>Number.isInteger(r)&&r>0)?A:e}function Lk(t,e){let A=e?.[2],r=e?.[3];if(!t?.data||t.width<=0||t.height<=0)throw new Error("allenk FDnCNN ONNX runtime requires ImageData-like input");if(t.width!==r||t.height!==A){let n=new Error(`allenk FDnCNN ONNX runtime expected ${r}x${A}, got ${t.width}x${t.height}`);throw n.code="ALLENK_FDNCNN_ONNX_SHAPE_MISMATCH",n.expectedWidth=r,n.expectedHeight=A,n.actualWidth=t.width,n.actualHeight=t.height,n}}async function Jf({ort:t=null,modelBytes:e,session:A=null,executionProvider:r="wasm",inputName:n="fdncnn_input",outputName:a="fdncnn_output",inputShape:i=[1,4,72,72],outputShape:s=[1,3,72,72],graphOptimizationLevel:o="all",wasmPaths:c=null,numThreads:g="auto"}={}){if(r==="webgpu"&&!t)throw new Error("allenk FDnCNN WebGPU runtime requires an injected onnxruntime-web/webgpu module");let u=t||$f,l=Jy(i,[1,4,72,72]),f=Jy(s,[1,3,l[2],l[3]]);if(u.env?.wasm){let w=!!(globalThis.crossOriginIsolated&&typeof SharedArrayBuffer<"u"),D=Number(globalThis.navigator?.hardwareConcurrency)||1,b=g==="auto"?w?Math.max(1,Math.min(4,Math.ceil(D/2))):1:Math.max(1,Math.round(Number(g)||1));u.env.wasm.numThreads=r==="wasm"?b:1,u.env.wasm.proxy=!1,c&&(u.env.wasm.wasmPaths=c)}r==="webgpu"&&u.env?.webgpu&&(u.env.webgpu.powerPreference="high-performance");let p=eg(),h=A||await u.InferenceSession.create(e,{executionProviders:[r],graphOptimizationLevel:o}),y=eg()-p;return{id:`allenk-fdncnn-onnx-${r}`,status:"prototype",executionProvider:r,inputName:n,outputName:a,inputShape:l,outputShape:f,createMs:y,session:h,numThreads:r==="wasm"?u.env?.wasm?.numThreads??null:null,estimateMacs(w,D){return w*D*(4*64*9+18*64*64*9+64*3*9)},async execute(w){let D=new u.Tensor("float32",w,l),b=eg(),E=await h.run({[n]:D}),x=eg()-b,S=E[a];if(!S?.data)throw new Error(`allenk FDnCNN ONNX runtime did not return ${a}`);return{output:S.data,outputShape:[...S.dims],runtime:this.id,runMs:x,macs:this.estimateMacs(l[3],l[2])}},async denoiseImageData({imageData:w,sigma:D}={}){Lk(w,l);let b=oP({imageData:w,sigma:D}),E=await this.execute(b);return{...E,imageData:{width:w.width,height:w.height,data:cP({output:E.output,width:w.width,height:w.height})}}}}}var Re=t=>document.getElementById(t),yG=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.js",wasm:"./onnxruntime/ort-wasm-simd-threaded.wasm"}),yI=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.asyncify.mjs",wasm:"./onnxruntime/ort-wasm-simd-threaded.asyncify.wasm"}),ie={file:null,originalUrl:null,processedUrl:null,metadata:null,detection:null,running:!1,jobId:0,syncingPlayback:!1},So=new Map,q={dropzone:Re("dropzone"),fileInput:Re("fileInput"),comparePlayer:Re("comparePlayer"),afterBadge:Re("afterBadge"),playPauseBtn:Re("playPauseBtn"),scrubber:Re("scrubber"),timeLabel:Re("timeLabel"),originalVideo:Re("originalVideo"),processedVideo:Re("processedVideo"),originalEmpty:Re("originalEmpty"),processedEmpty:Re("processedEmpty"),metadata:Re("metadata"),detection:Re("detection"),progressBar:Re("progressBar"),progressText:Re("progressText"),status:Re("status"),alphaGain:Re("alphaGain"),alphaGainValue:Re("alphaGainValue"),adaptiveAlpha:Re("adaptiveAlpha"),highQualityCleanup:Re("highQualityCleanup"),denoiseBackend:Re("denoiseBackend"),edgeDenoiseStrength:Re("edgeDenoiseStrength"),edgeDenoiseStrengthValue:Re("edgeDenoiseStrengthValue"),residualCleanup:Re("residualCleanup"),residualCleanupValue:Re("residualCleanupValue"),videoBitrateMbps:Re("videoBitrateMbps"),sampleCount:Re("sampleCount"),allowLowConfidence:Re("allowLowConfidence"),autoPresetSummary:Re("autoPresetSummary"),processBtn:Re("processBtn"),detectBtn:Re("detectBtn"),downloadBtn:Re("downloadBtn"),resetBtn:Re("resetBtn"),relocatedReviewPresetBtn:Re("relocatedReviewPresetBtn")};function it(t,e="info"){q.status.textContent=t||"",q.status.dataset.tone=e}function IG(t){let e=String(t||"").split(";")[0].trim().toLowerCase();return e==="application/javascript"||e==="text/javascript"||e==="application/ecmascript"||e==="text/ecmascript"||e.endsWith("+javascript")}async function DG(t){try{let e=await fetch(t.mjs,{cache:"no-store"});if(!e.ok)return{ok:!1,reason:`WebGPU runtime module unavailable: ${e.status}`};let A=e.headers.get("content-type")||"";return IG(A)?{ok:!0}:{ok:!1,reason:`WebGPU runtime module is served as ${A||"unknown MIME"}`}}catch(e){return{ok:!1,reason:e?.message||String(e)}}}async function CG(t=jn()){let e=t||jn();if(!So.has(e.id)){let A=(async()=>{let r=await fetch(e.modelUrl);if(!r.ok)throw new Error(`\u65E0\u6CD5\u52A0\u8F7D AI \u6A21\u578B\uFF1A${r.status}`);let n=new Uint8Array(await r.arrayBuffer());if(navigator.gpu&&window.__gwrDisableWebGpuDenoise!==!0)try{let a=await DG(yI);if(!a.ok)throw console.warn("WebGPU AI runtime skipped:",a.reason),new Error(a.reason);it("\u6B63\u5728\u542F\u7528 WebGPU AI \u53BB\u6C34\u5370...");let i=await Promise.resolve().then(()=>(PI(),BI));return await Jf({ort:i,modelBytes:n,executionProvider:"webgpu",wasmPaths:yI,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:e.inputShape,outputShape:e.outputShape})}catch(a){console.warn("WebGPU AI runtime unavailable, falling back to WASM:",a)}return Jf({modelBytes:n,executionProvider:"wasm",wasmPaths:yG,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:e.inputShape,outputShape:e.outputShape})})();So.set(e.id,A),A.catch(()=>{So.get(e.id)===A&&So.delete(e.id)})}return So.get(e.id)}async function bG(t,e=jn()){return t!==Ke.ALLENK_FDNCNN_BROWSER_SPIKE?null:(it("\u6B63\u5728\u52A0\u8F7D AI FDnCNN ONNX \u6A21\u578B\uFF0C\u9996\u6B21\u52A0\u8F7D\u4F1A\u7A0D\u6162..."),CG(e))}function EG(t){if(!t||t.executionProvider!=="wasm")return null;let e=!!(crossOriginIsolated&&typeof SharedArrayBuffer<"u");return{maxFrames:e?1:2,threshold:e?4.5:6.5}}function TG(t){return Number.isFinite(window.__gwrVideoOverrideAllenkFdncnnSigma)?Math.max(0,Math.min(150,window.__gwrVideoOverrideAllenkFdncnnSigma)):t?.watermarkKind==="veo-text"?t.template?.cleanup?.runtimeFdncnnSigma??75:75}function kG(t,e){return Number.isFinite(window.__gwrVideoOverrideAllenkFdncnnPadding)?Math.max(0,Math.round(window.__gwrVideoOverrideAllenkFdncnnPadding)):t?.watermarkKind==="veo-text"&&Number.isFinite(t.template?.cleanup?.allenkFdncnnPadding)?t.template.cleanup.allenkFdncnnPadding:e.padding}function hA(t,e){let A=Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t*100))):0;q.progressBar.style.width=`${A}%`,q.progressText.textContent=e||`${A}%`}function Yo(){return new Promise(t=>{let e=()=>setTimeout(t,0);typeof requestAnimationFrame=="function"?requestAnimationFrame(e):e()})}function II(t,{start:e=0,span:A=1}={}){return({progress:r=0,step:n="detect",sampledFrames:a=0,sampleCount:i=0}={})=>{if(t!==ie.jobId)return;let s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):0,o={metadata:"\u8BFB\u53D6\u89C6\u9891",sample:i>0?`\u62BD\u5E27 ${a}/${i}`:"\u62BD\u5E27",score:"\u5339\u914D\u6C34\u5370",done:"\u68C0\u6D4B\u5B8C\u6210"};hA(e+s*A,o[n]||"\u68C0\u6D4B\u4E2D"),n==="sample"?it(i>0?`\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370\uFF1A${a}/${i}`:"\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370..."):n==="score"&&it("\u6B63\u5728\u5339\u914D\u6C34\u5370\u5019\u9009\uFF0C\u9875\u9762\u4F1A\u4FDD\u6301\u54CD\u5E94...")}}function GG(t){return Number.isFinite(t)?`${t.toFixed(2)}s`:"\u672A\u77E5"}function xG(t){return Number.isFinite(t)?`${(t/1e3/1e3).toFixed(2)} Mbps`:"\u672A\u77E5"}function Hm(t){if(!Number.isFinite(t)||t<0)return"0:00";let e=Math.floor(t),A=Math.floor(e/60),r=e%60;return`${A}:${String(r).padStart(2,"0")}`}function mn(){let t=!!ie.file;q.detectBtn.disabled=!t||ie.running,q.processBtn.disabled=!t||ie.running;let e=!!ie.processedUrl&&!ie.running;q.downloadBtn.setAttribute("aria-disabled",e?"false":"true"),q.downloadBtn.tabIndex=e?0:-1,q.resetBtn.disabled=ie.running,di()}function Lm(){return!!ie.processedUrl}function di(){let t=!!ie.originalUrl;q.playPauseBtn.disabled=!t,q.scrubber.disabled=!t,q.playPauseBtn.dataset.playing=q.originalVideo.paused?"false":"true",q.playPauseBtn.setAttribute("aria-label",q.originalVideo.paused?"\u64AD\u653E":"\u6682\u505C");let e=Number.isFinite(q.originalVideo.duration)?q.originalVideo.duration:0,A=Number.isFinite(q.originalVideo.currentTime)?q.originalVideo.currentTime:0;e>0&&!q.scrubber.matches(":active")&&(q.scrubber.value=String(Math.round(A/e*1e3))),q.timeLabel.textContent=e>0?`${Hm(A)} / ${Hm(e)}`:Hm(A)}function Oo(){let t=Lm();q.afterBadge.hidden=!t,q.processedEmpty.hidden=t}function vo({force:t=!1}={}){if(!Lm()||ie.syncingPlayback)return;let e=Number(q.originalVideo.currentTime)||0;if(!(!t&&Math.abs((Number(q.processedVideo.currentTime)||0)-e)<.08)){ie.syncingPlayback=!0;try{q.processedVideo.currentTime=e}catch(A){console.warn("sync processed video failed:",A)}finally{ie.syncingPlayback=!1}}}async function SG(){if(ie.originalUrl){vo({force:!0});try{await q.originalVideo.play(),Lm()&&await q.processedVideo.play().catch(t=>{console.warn("processed video play failed:",t)})}catch(t){console.warn("original video play failed:",t),it("\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u64AD\u653E\uFF0C\u8BF7\u518D\u70B9\u4E00\u6B21\u64AD\u653E\u6309\u94AE\u3002","warn")}finally{di()}}}function DI(){q.originalVideo.pause(),q.processedVideo.pause(),di()}function YG(){q.originalVideo.paused?SG():DI()}function vG(t){let e=Number(q.originalVideo.duration);if(!Number.isFinite(e)||e<=0)return;let A=Number(t)/1e3*e;q.originalVideo.currentTime=A,vo({force:!0}),di()}function CI(t=null){if(q.autoPresetSummary){if(!t){q.autoPresetSummary.innerHTML=`
102
102
  <strong>AI \u81EA\u52A8\u5904\u7406</strong>
103
103
  <span>\u9009\u62E9\u89C6\u9891\u540E\u81EA\u52A8\u68C0\u6D4B\u6C34\u5370\uFF0C\u5BFC\u51FA\u65F6\u4F7F\u7528\u672C\u5730 AI \u6A21\u578B\u6E05\u7406\u3002</span>
104
104
  `;return}q.autoPresetSummary.innerHTML=`
@@ -107,9 +107,9 @@ Mediabunny was loaded twice. This will likely cause Mediabunny not to work corre
107
107
  `}}function mi(t){if(!t){q.metadata.innerHTML='<p class="muted">\u7B49\u5F85\u8F7D\u5165\u89C6\u9891</p>';return}let e=Ld(t.width,t.height);q.metadata.innerHTML=`
108
108
  <dl>
109
109
  <div><dt>\u5C3A\u5BF8</dt><dd>${t.width} x ${t.height}</dd></div>
110
- <div><dt>\u65F6\u957F</dt><dd>${TG(t.duration)}</dd></div>
110
+ <div><dt>\u65F6\u957F</dt><dd>${GG(t.duration)}</dd></div>
111
111
  <div><dt>\u5E27\u7387</dt><dd>${t.frameRate.toFixed(2)} fps</dd></div>
112
- <div><dt>\u89C6\u9891\u7801\u7387</dt><dd>${kG(t.averageBitrate)}</dd></div>
112
+ <div><dt>\u89C6\u9891\u7801\u7387</dt><dd>${xG(t.averageBitrate)}</dd></div>
113
113
  <div><dt>\u6C34\u5370\u89C4\u683C</dt><dd>${e?"1920x1080 \u5DF2\u786E\u8BA4":"\u6BD4\u4F8B\u63A8\u65AD\uFF0C\u5B9E\u9A8C\u6027"}</dd></div>
114
114
  </dl>
115
115
  `}function Ma(t){if(!t){q.detection.innerHTML='<p class="muted">\u5148\u68C0\u6D4B\u6216\u76F4\u63A5\u5BFC\u51FA</p>';return}let e=t.summary?.best||{},A=t.watermarkKind==="veo-text"?e.templateId||t.template?.id||"Veo text":e.label||e.candidateId||t.candidate?.label||"unknown",r=Number.isFinite(e.meanConfidence)?e.meanConfidence:Number.isFinite(e.meanNcc)?e.meanNcc:null;q.detection.innerHTML=`
@@ -121,7 +121,7 @@ Mediabunny was loaded twice. This will likely cause Mediabunny not to work corre
121
121
  <div><dt>\u6295\u7968</dt><dd>${e.votes||0}/${t.summary?.frameCount||0}</dd></div>
122
122
  <div><dt>\u72B6\u6001</dt><dd>${t.isConfident?"\u53EF\u5BFC\u51FA":"\u4F4E\u7F6E\u4FE1"}</dd></div>
123
123
  </dl>
124
- `}function Lm(){ie.originalUrl&&URL.revokeObjectURL(ie.originalUrl),ie.processedUrl&&URL.revokeObjectURL(ie.processedUrl),ie.originalUrl=null,ie.processedUrl=null}async function Hm(t){let e=ho(t);if(e==="image"){await YG(t);return}if(e!=="video"){it("\u8BF7\u9009\u62E9\u56FE\u7247\u6216\u89C6\u9891\u6587\u4EF6\u3002\u89C6\u9891\u4F1A\u5728\u672C\u9875\u5904\u7406\uFF0C\u56FE\u7247\u4F1A\u56DE\u5230\u5355\u56FE\u5BF9\u6BD4\u9875\u3002","warn");return}Lm(),ie.file=t,ie.metadata=null,ie.detection=null,ie.processedUrl=null,ie.jobId++,ie.originalUrl=URL.createObjectURL(t),q.originalVideo.src=ie.originalUrl,q.originalVideo.currentTime=0,q.processedVideo.removeAttribute("src"),q.processedVideo.load(),q.downloadBtn.removeAttribute("href"),q.downloadBtn.removeAttribute("download"),q.originalEmpty.hidden=!0,Oo(),mi(null),Ma(null),hA(0,"\u51C6\u5907\u5C31\u7EEA"),it("\u6B63\u5728\u8BFB\u53D6\u89C6\u9891\u5143\u6570\u636E..."),mn();try{let A=await xP(t);ie.metadata=A,mi(A),lg(null,A,{silent:!0}),it("\u89C6\u9891\u5DF2\u8F7D\u5165\uFF0C\u70B9\u51FB\u5BFC\u51FA\u5373\u53EF\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002")}catch(A){console.error(A),it(A.message||"\u8BFB\u53D6\u89C6\u9891\u5931\u8D25","error")}finally{mn()}}async function YG(t){try{it("\u6B63\u5728\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B..."),await FP(t,"image"),window.location.assign("./dev-preview.html?fileHandoff=1")}catch(e){console.error(e),it(e.message||"\u65E0\u6CD5\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B\uFF0C\u8BF7\u6253\u5F00\u5355\u56FE\u9875\u540E\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}function Um(){return{alphaProfile:typeof window.__gwrVideoAlphaProfile=="string"?window.__gwrVideoAlphaProfile:void 0,alphaLowScale:Number.isFinite(window.__gwrVideoAlphaLowScale)?window.__gwrVideoAlphaLowScale:void 0,alphaBodyScale:Number.isFinite(window.__gwrVideoAlphaBodyScale)?window.__gwrVideoAlphaBodyScale:void 0,alphaEdgeBoost:Number.isFinite(window.__gwrVideoAlphaEdgeBoost)?window.__gwrVideoAlphaEdgeBoost:void 0,alphaLocalRegion:typeof window.__gwrVideoAlphaLocalRegion=="string"?window.__gwrVideoAlphaLocalRegion:void 0,alphaLocalLowScale:Number.isFinite(window.__gwrVideoAlphaLocalLowScale)?window.__gwrVideoAlphaLocalLowScale:void 0,alphaLocalBodyScale:Number.isFinite(window.__gwrVideoAlphaLocalBodyScale)?window.__gwrVideoAlphaLocalBodyScale:void 0}}async function vG(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,mn(),hA(.05,"\u68C0\u6D4B\u4E2D"),it("\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u53F3\u4E0B\u89D2\u6C34\u5370...");try{await Yo();let e=await Uu(ie.file,{...Um(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:PI(t,{start:.05,span:.9}),yieldToMainThread:Yo});if(t!==ie.jobId)return;ie.metadata=e.metadata,ie.detection=e.detection,mi(e.metadata),Ma(e.detection),hA(1,e.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210":"\u4F4E\u7F6E\u4FE1"),lg(e.detection,e.metadata,{silent:!0}).id==="relocated-review"?it("\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002",e.detection.isConfident?"success":"warn"):it(e.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002":"\u68C0\u6D4B\u7F6E\u4FE1\u5EA6\u504F\u4F4E\uFF0C\u4ECD\u53EF\u5C1D\u8BD5 AI \u5BFC\u51FA\u3002",e.detection.isConfident?"success":"warn")}catch(e){console.error(e),it(e.message||"\u68C0\u6D4B\u5931\u8D25","error"),hA(0,"\u68C0\u6D4B\u5931\u8D25")}finally{ie.running=!1,mn()}}async function OG(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,mn(),hA(0,"\u5F00\u59CB"),it("\u6B63\u5728\u672C\u5730\u9010\u5E27\u5904\u7406\uFF0C\u9875\u9762\u4FDD\u6301\u6253\u5F00\u5373\u53EF\u3002");try{let e=ie.detection?{metadata:ie.metadata,detection:ie.detection}:null;if(e)lg(e.detection,e.metadata,{silent:!0});else{hA(.04,"\u68C0\u6D4B\u4E2D"),it("\u6B63\u5728\u68C0\u6D4B\u6C34\u5370\u5019\u9009..."),await Yo();let f=await Uu(ie.file,{...Um(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:PI(t,{start:.04,span:.08}),yieldToMainThread:Yo});if(t!==ie.jobId)return;ie.metadata=f.metadata,ie.detection=f.detection,mi(f.metadata),Ma(f.detection),e={metadata:f.metadata,detection:f.detection},lg(f.detection,f.metadata,{silent:!0})}MG();let A=q.denoiseBackend.value||go,r=jn(e?.detection?.position),n=bG(e?.detection),a=EG(e?.detection,r),i=await DG(A,r),s=CG(i),o=Um();if(t!==ie.jobId)return;let c=await YP(ie.file,{alphaGain:Number(q.alphaGain.value)||mo,adaptiveAlpha:q.adaptiveAlpha.checked,highQualityCleanup:q.highQualityCleanup.checked,denoiseBackend:A,edgeDenoiseStrength:Number(q.edgeDenoiseStrength.value)||0,residualCleanupStrength:Number(q.residualCleanup.value)||0,videoBitrate:Number(q.videoBitrateMbps.value)>0?Number(q.videoBitrateMbps.value)*1e3*1e3:sf,...o,sampleCount:Number(q.sampleCount.value)||Vn,detection:e,allowLowConfidence:q.allowLowConfidence.checked,allenkFdncnnRuntime:i,allenkFdncnnSigma:n,allenkFdncnnPadding:a,allenkFdncnnTemporalReuse:s,yieldToMainThread:Yo,onProgress:({phase:f,progress:p,processedFrames:h,metadata:y,detection:w,aiDenoiseFrames:D,aiReuseFrames:b})=>{if(t===ie.jobId){if(y&&(ie.metadata=y,mi(y)),w&&(ie.detection=w,Ma(w)),f==="detect")hA(p*.12,p>=1?"\u68C0\u6D4B\u5B8C\u6210":"\u68C0\u6D4B\u4E2D");else if(f==="export"){let E=.12+p*.88,x=Number.isFinite(h)?`${h} \u5E27`:"\u5904\u7406\u4E2D",S="";hA(E,`\u5BFC\u51FA\u4E2D ${x}`),it(`\u6B63\u5728\u5BFC\u51FA\u89C6\u9891\uFF0C\u5DF2\u5904\u7406 ${x}${S}\u3002`)}}}});if(t!==ie.jobId)return;ie.processedUrl&&URL.revokeObjectURL(ie.processedUrl),ie.processedUrl=URL.createObjectURL(c.blob),q.processedVideo.src=ie.processedUrl,q.processedVideo.load(),q.processedEmpty.hidden=!0,Oo(),vo({force:!0}),q.downloadBtn.href=ie.processedUrl,q.downloadBtn.download=`${ie.file.name.replace(/\.[^.]+$/,"")}_gwr_video_mvp.mp4`,hA(1,"\u5B8C\u6210");let g=c.audioCopied?`\u97F3\u9891\u5DF2\u4FDD\u7559\uFF1A${c.audioCodec||"unknown"}\uFF0C${c.audioPacketCount||0} packets\u3002`:`\u97F3\u9891\u672A\u4FDD\u7559\uFF1A${c.audioSkipReason||"unknown"}\u3002`,u=c.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?"AI \u53BB\u6C34\u5370\u5DF2\u5B8C\u6210":"\u53BB\u6C34\u5370\u5DF2\u5B8C\u6210",l="";it(`${u}\uFF0C\u5DF2\u5904\u7406 ${c.processedFrames} \u5E27\u3002${g}`,"success")}catch(e){console.error(e),it(e.message||"\u5BFC\u51FA\u5931\u8D25","error")}finally{ie.running=!1,mn()}}function _G(){ie.jobId++,Lm(),ie.file=null,ie.metadata=null,ie.detection=null,ie.running=!1,q.fileInput.value="",q.originalVideo.removeAttribute("src"),q.originalVideo.load(),q.processedVideo.removeAttribute("src"),q.processedVideo.load(),q.downloadBtn.removeAttribute("href"),q.downloadBtn.removeAttribute("download"),q.originalEmpty.hidden=!1,Oo(),mi(null),Ma(null),II(null),hA(0,"\u7B49\u5F85\u89C6\u9891"),it(""),mn()}function fi(t,e){t.hasAttribute("max")&&Number(e)>Number(t.getAttribute("max"))&&t.setAttribute("max",String(e)),t.value=String(e),t===q.alphaGain?q.alphaGainValue.textContent=Number(t.value).toFixed(2):t===q.residualCleanup?q.residualCleanupValue.textContent=Number(t.value).toFixed(2):t===q.edgeDenoiseStrength&&(q.edgeDenoiseStrengthValue.textContent=Number(t.value).toFixed(2)),t.dispatchEvent(new Event("input",{bubbles:!0}))}function jm(t){t&&(fi(q.alphaGain,t.alphaGain??mo),q.adaptiveAlpha.checked=t.adaptiveAlpha??af,q.highQualityCleanup.checked=t.highQualityCleanup??an,q.denoiseBackend.value=Object.values(Ke).includes(t.denoiseBackend)?t.denoiseBackend:go,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0})),fi(q.edgeDenoiseStrength,t.edgeDenoiseStrength??Kt),fi(q.residualCleanup,t.residualCleanupStrength??Fu),q.sampleCount.value=String(t.sampleCount??Vn),q.videoBitrateMbps.value=Number(t.videoBitrateMbps)>0?String(t.videoBitrateMbps):"",q.allowLowConfidence.checked=t.allowLowConfidence===!0,II(t))}function lg(t=ie.detection,e=ie.metadata,{silent:A=!1}={}){let r=gf(t,e);return jm(r),A||it(`\u5DF2\u81EA\u52A8\u9009\u62E9\uFF1A${r.label}\u3002`,r.allowLowConfidence?"warn":"success"),r}function MG(){typeof window.__gwrVideoOverrideDenoiseBackend=="string"&&q.denoiseBackend.value!==window.__gwrVideoOverrideDenoiseBackend&&(q.denoiseBackend.value=window.__gwrVideoOverrideDenoiseBackend,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0}))),typeof window.__gwrVideoOverrideAllowLowConfidence=="boolean"&&(q.allowLowConfidence.checked=window.__gwrVideoOverrideAllowLowConfidence),Number.isFinite(window.__gwrVideoOverrideEdgeDenoiseStrength)&&fi(q.edgeDenoiseStrength,Math.max(0,Math.min(3,window.__gwrVideoOverrideEdgeDenoiseStrength))),Number.isFinite(window.__gwrVideoOverrideResidualCleanupStrength)&&fi(q.residualCleanup,Math.max(0,Math.min(1.8,window.__gwrVideoOverrideResidualCleanupStrength))),RP({windowObject:window,videoBitrateInput:q.videoBitrateMbps,setNumberControl:fi})}function RG(){let t=uf();jm(t),it("\u5DF2\u5E94\u7528\u8FC1\u79FB\u951A\u70B9\u590D\u6838\u9884\u8BBE\uFF1ACanvas \u8DB3\u8FF9\u629B\u5149\u300112Mbps\u3001\u5141\u8BB8\u4F4E\u7F6E\u4FE1\u3002\u6B64\u9884\u8BBE\u7528\u4E8E\u4EBA\u5DE5\u590D\u6838\uFF0C\u4E0D\u662F\u9ED8\u8BA4\u7B56\u7565\u3002","warn")}function QG(){q.dropzone.addEventListener("click",()=>q.fileInput.click()),q.dropzone.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),q.fileInput.click())}),q.fileInput.addEventListener("change",t=>{let e=df(t.target.files);e&&Hm(e)});for(let t of["dragenter","dragover"])q.dropzone.addEventListener(t,e=>{e.preventDefault(),q.dropzone.dataset.dragging="true"});for(let t of["dragleave","drop"])q.dropzone.addEventListener(t,e=>{e.preventDefault(),q.dropzone.dataset.dragging="false"});q.dropzone.addEventListener("drop",t=>{let e=df(t.dataTransfer?.files);e&&Hm(e)}),q.alphaGain.addEventListener("input",()=>{q.alphaGainValue.textContent=Number(q.alphaGain.value).toFixed(2)}),q.residualCleanup.addEventListener("input",()=>{q.residualCleanupValue.textContent=Number(q.residualCleanup.value).toFixed(2)}),q.edgeDenoiseStrength.addEventListener("input",()=>{q.edgeDenoiseStrengthValue.textContent=Number(q.edgeDenoiseStrength.value).toFixed(2)}),q.denoiseBackend.addEventListener("change",()=>{q.denoiseBackend.value===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&fi(q.edgeDenoiseStrength,1.8)}),q.detectBtn.addEventListener("click",vG),q.processBtn.addEventListener("click",OG),q.resetBtn.addEventListener("click",_G),q.relocatedReviewPresetBtn.addEventListener("click",RG),q.downloadBtn.addEventListener("click",t=>{(!ie.processedUrl||ie.running)&&t.preventDefault()}),q.playPauseBtn.addEventListener("click",xG),q.scrubber.addEventListener("input",t=>{SG(t.target.value)}),q.originalVideo.addEventListener("loadedmetadata",()=>{di()}),q.originalVideo.addEventListener("timeupdate",()=>{q.originalVideo.paused||vo(),di()}),q.originalVideo.addEventListener("pause",()=>{q.processedVideo.paused||q.processedVideo.pause(),di()}),q.originalVideo.addEventListener("ended",()=>{yI()}),q.processedVideo.addEventListener("loadedmetadata",()=>{vo({force:!0}),Oo()}),window.addEventListener("beforeunload",Lm)}async function FG(){if(new URLSearchParams(window.location.search).get("fileHandoff")==="1")try{let e=await zP("video");if(!e?.file)return;await Hm(e.file),window.history.replaceState(null,"",window.location.pathname)}catch(e){console.warn("video handoff unavailable:",e),it(e.message||"\u8BFB\u53D6\u89C6\u9891\u6682\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}async function zG(){jm(gf()),(!("VideoDecoder"in window)||!("VideoEncoder"in window))&&it("\u5F53\u524D\u6D4F\u89C8\u5668\u7F3A\u5C11 WebCodecs\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002","error"),mi(null),Ma(null),Oo(),hA(0,"\u7B49\u5F85\u89C6\u9891"),QG(),mn(),await FG()}zG();})();
124
+ `}function jm(){ie.originalUrl&&URL.revokeObjectURL(ie.originalUrl),ie.processedUrl&&URL.revokeObjectURL(ie.processedUrl),ie.originalUrl=null,ie.processedUrl=null}async function Um(t){let e=ho(t);if(e==="image"){await OG(t);return}if(e!=="video"){it("\u8BF7\u9009\u62E9\u56FE\u7247\u6216\u89C6\u9891\u6587\u4EF6\u3002\u89C6\u9891\u4F1A\u5728\u672C\u9875\u5904\u7406\uFF0C\u56FE\u7247\u4F1A\u56DE\u5230\u5355\u56FE\u5BF9\u6BD4\u9875\u3002","warn");return}jm(),ie.file=t,ie.metadata=null,ie.detection=null,ie.processedUrl=null,ie.jobId++,ie.originalUrl=URL.createObjectURL(t),q.originalVideo.src=ie.originalUrl,q.originalVideo.currentTime=0,q.processedVideo.removeAttribute("src"),q.processedVideo.load(),q.downloadBtn.removeAttribute("href"),q.downloadBtn.removeAttribute("download"),q.originalEmpty.hidden=!0,Oo(),mi(null),Ma(null),hA(0,"\u51C6\u5907\u5C31\u7EEA"),it("\u6B63\u5728\u8BFB\u53D6\u89C6\u9891\u5143\u6570\u636E..."),mn();try{let A=await SP(t);ie.metadata=A,mi(A),lg(null,A,{silent:!0}),it("\u89C6\u9891\u5DF2\u8F7D\u5165\uFF0C\u70B9\u51FB\u5BFC\u51FA\u5373\u53EF\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002")}catch(A){console.error(A),it(A.message||"\u8BFB\u53D6\u89C6\u9891\u5931\u8D25","error")}finally{mn()}}async function OG(t){try{it("\u6B63\u5728\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B..."),await NP(t,"image"),window.location.assign("./dev-preview.html?fileHandoff=1")}catch(e){console.error(e),it(e.message||"\u65E0\u6CD5\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B\uFF0C\u8BF7\u6253\u5F00\u5355\u56FE\u9875\u540E\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}function qm(){return{alphaProfile:typeof window.__gwrVideoAlphaProfile=="string"?window.__gwrVideoAlphaProfile:void 0,alphaLowScale:Number.isFinite(window.__gwrVideoAlphaLowScale)?window.__gwrVideoAlphaLowScale:void 0,alphaBodyScale:Number.isFinite(window.__gwrVideoAlphaBodyScale)?window.__gwrVideoAlphaBodyScale:void 0,alphaEdgeBoost:Number.isFinite(window.__gwrVideoAlphaEdgeBoost)?window.__gwrVideoAlphaEdgeBoost:void 0,alphaLocalRegion:typeof window.__gwrVideoAlphaLocalRegion=="string"?window.__gwrVideoAlphaLocalRegion:void 0,alphaLocalLowScale:Number.isFinite(window.__gwrVideoAlphaLocalLowScale)?window.__gwrVideoAlphaLocalLowScale:void 0,alphaLocalBodyScale:Number.isFinite(window.__gwrVideoAlphaLocalBodyScale)?window.__gwrVideoAlphaLocalBodyScale:void 0}}async function _G(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,mn(),hA(.05,"\u68C0\u6D4B\u4E2D"),it("\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u53F3\u4E0B\u89D2\u6C34\u5370...");try{await Yo();let e=await Uu(ie.file,{...qm(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:II(t,{start:.05,span:.9}),yieldToMainThread:Yo});if(t!==ie.jobId)return;ie.metadata=e.metadata,ie.detection=e.detection,mi(e.metadata),Ma(e.detection),hA(1,e.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210":"\u4F4E\u7F6E\u4FE1"),lg(e.detection,e.metadata,{silent:!0}).id==="relocated-review"?it("\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002",e.detection.isConfident?"success":"warn"):it(e.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002":"\u68C0\u6D4B\u7F6E\u4FE1\u5EA6\u504F\u4F4E\uFF0C\u4ECD\u53EF\u5C1D\u8BD5 AI \u5BFC\u51FA\u3002",e.detection.isConfident?"success":"warn")}catch(e){console.error(e),it(e.message||"\u68C0\u6D4B\u5931\u8D25","error"),hA(0,"\u68C0\u6D4B\u5931\u8D25")}finally{ie.running=!1,mn()}}async function MG(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,mn(),hA(0,"\u5F00\u59CB"),it("\u6B63\u5728\u672C\u5730\u9010\u5E27\u5904\u7406\uFF0C\u9875\u9762\u4FDD\u6301\u6253\u5F00\u5373\u53EF\u3002");try{let e=ie.detection?{metadata:ie.metadata,detection:ie.detection}:null;if(e)lg(e.detection,e.metadata,{silent:!0});else{hA(.04,"\u68C0\u6D4B\u4E2D"),it("\u6B63\u5728\u68C0\u6D4B\u6C34\u5370\u5019\u9009..."),await Yo();let f=await Uu(ie.file,{...qm(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:II(t,{start:.04,span:.08}),yieldToMainThread:Yo});if(t!==ie.jobId)return;ie.metadata=f.metadata,ie.detection=f.detection,mi(f.metadata),Ma(f.detection),e={metadata:f.metadata,detection:f.detection},lg(f.detection,f.metadata,{silent:!0})}QG();let A=q.denoiseBackend.value||go,r=jn(e?.detection?.position),n=TG(e?.detection),a=kG(e?.detection,r),i=await bG(A,r),s=EG(i),o=qm();if(t!==ie.jobId)return;let c=await vP(ie.file,{alphaGain:Number(q.alphaGain.value)||mo,adaptiveAlpha:q.adaptiveAlpha.checked,highQualityCleanup:q.highQualityCleanup.checked,denoiseBackend:A,edgeDenoiseStrength:Number(q.edgeDenoiseStrength.value)||0,residualCleanupStrength:Number(q.residualCleanup.value)||0,videoBitrate:Number(q.videoBitrateMbps.value)>0?Number(q.videoBitrateMbps.value)*1e3*1e3:of,...o,sampleCount:Number(q.sampleCount.value)||Vn,detection:e,allowLowConfidence:q.allowLowConfidence.checked,allenkFdncnnRuntime:i,allenkFdncnnSigma:n,allenkFdncnnPadding:a,allenkFdncnnTemporalReuse:s,yieldToMainThread:Yo,onProgress:({phase:f,progress:p,processedFrames:h,metadata:y,detection:w,aiDenoiseFrames:D,aiReuseFrames:b})=>{if(t===ie.jobId){if(y&&(ie.metadata=y,mi(y)),w&&(ie.detection=w,Ma(w)),f==="detect")hA(p*.12,p>=1?"\u68C0\u6D4B\u5B8C\u6210":"\u68C0\u6D4B\u4E2D");else if(f==="export"){let E=.12+p*.88,x=Number.isFinite(h)?`${h} \u5E27`:"\u5904\u7406\u4E2D",S="";hA(E,`\u5BFC\u51FA\u4E2D ${x}`),it(`\u6B63\u5728\u5BFC\u51FA\u89C6\u9891\uFF0C\u5DF2\u5904\u7406 ${x}${S}\u3002`)}}}});if(t!==ie.jobId)return;ie.processedUrl&&URL.revokeObjectURL(ie.processedUrl),ie.processedUrl=URL.createObjectURL(c.blob),q.processedVideo.src=ie.processedUrl,q.processedVideo.load(),q.processedEmpty.hidden=!0,Oo(),vo({force:!0}),q.downloadBtn.href=ie.processedUrl,q.downloadBtn.download=`${ie.file.name.replace(/\.[^.]+$/,"")}_gwr_video_mvp.mp4`,hA(1,"\u5B8C\u6210");let g=c.audioCopied?`\u97F3\u9891\u5DF2\u4FDD\u7559\uFF1A${c.audioCodec||"unknown"}\uFF0C${c.audioPacketCount||0} packets\u3002`:`\u97F3\u9891\u672A\u4FDD\u7559\uFF1A${c.audioSkipReason||"unknown"}\u3002`,u=c.denoiseBackend===Ke.ALLENK_FDNCNN_BROWSER_SPIKE?"AI \u53BB\u6C34\u5370\u5DF2\u5B8C\u6210":"\u53BB\u6C34\u5370\u5DF2\u5B8C\u6210",l="";it(`${u}\uFF0C\u5DF2\u5904\u7406 ${c.processedFrames} \u5E27\u3002${g}`,"success")}catch(e){console.error(e),it(e.message||"\u5BFC\u51FA\u5931\u8D25","error")}finally{ie.running=!1,mn()}}function RG(){ie.jobId++,jm(),ie.file=null,ie.metadata=null,ie.detection=null,ie.running=!1,q.fileInput.value="",q.originalVideo.removeAttribute("src"),q.originalVideo.load(),q.processedVideo.removeAttribute("src"),q.processedVideo.load(),q.downloadBtn.removeAttribute("href"),q.downloadBtn.removeAttribute("download"),q.originalEmpty.hidden=!1,Oo(),mi(null),Ma(null),CI(null),hA(0,"\u7B49\u5F85\u89C6\u9891"),it(""),mn()}function fi(t,e){t.hasAttribute("max")&&Number(e)>Number(t.getAttribute("max"))&&t.setAttribute("max",String(e)),t.value=String(e),t===q.alphaGain?q.alphaGainValue.textContent=Number(t.value).toFixed(2):t===q.residualCleanup?q.residualCleanupValue.textContent=Number(t.value).toFixed(2):t===q.edgeDenoiseStrength&&(q.edgeDenoiseStrengthValue.textContent=Number(t.value).toFixed(2)),t.dispatchEvent(new Event("input",{bubbles:!0}))}function Vm(t){t&&(fi(q.alphaGain,t.alphaGain??mo),q.adaptiveAlpha.checked=t.adaptiveAlpha??sf,q.highQualityCleanup.checked=t.highQualityCleanup??an,q.denoiseBackend.value=Object.values(Ke).includes(t.denoiseBackend)?t.denoiseBackend:go,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0})),fi(q.edgeDenoiseStrength,t.edgeDenoiseStrength??Kt),fi(q.residualCleanup,t.residualCleanupStrength??Fu),q.sampleCount.value=String(t.sampleCount??Vn),q.videoBitrateMbps.value=Number(t.videoBitrateMbps)>0?String(t.videoBitrateMbps):"",q.allowLowConfidence.checked=t.allowLowConfidence===!0,CI(t))}function lg(t=ie.detection,e=ie.metadata,{silent:A=!1}={}){let r=lf(t,e);return Vm(r),A||it(`\u5DF2\u81EA\u52A8\u9009\u62E9\uFF1A${r.label}\u3002`,r.allowLowConfidence?"warn":"success"),r}function QG(){QP({windowObject:window,adaptiveAlphaInput:q.adaptiveAlpha}),typeof window.__gwrVideoOverrideDenoiseBackend=="string"&&q.denoiseBackend.value!==window.__gwrVideoOverrideDenoiseBackend&&(q.denoiseBackend.value=window.__gwrVideoOverrideDenoiseBackend,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0}))),typeof window.__gwrVideoOverrideAllowLowConfidence=="boolean"&&(q.allowLowConfidence.checked=window.__gwrVideoOverrideAllowLowConfidence),Number.isFinite(window.__gwrVideoOverrideEdgeDenoiseStrength)&&fi(q.edgeDenoiseStrength,Math.max(0,Math.min(3,window.__gwrVideoOverrideEdgeDenoiseStrength))),Number.isFinite(window.__gwrVideoOverrideResidualCleanupStrength)&&fi(q.residualCleanup,Math.max(0,Math.min(1.8,window.__gwrVideoOverrideResidualCleanupStrength))),FP({windowObject:window,videoBitrateInput:q.videoBitrateMbps,setNumberControl:fi})}function FG(){let t=gf();Vm(t),it("\u5DF2\u5E94\u7528\u8FC1\u79FB\u951A\u70B9\u590D\u6838\u9884\u8BBE\uFF1ACanvas \u8DB3\u8FF9\u629B\u5149\u300112Mbps\u3001\u5141\u8BB8\u4F4E\u7F6E\u4FE1\u3002\u6B64\u9884\u8BBE\u7528\u4E8E\u4EBA\u5DE5\u590D\u6838\uFF0C\u4E0D\u662F\u9ED8\u8BA4\u7B56\u7565\u3002","warn")}function zG(){q.dropzone.addEventListener("click",()=>q.fileInput.click()),q.dropzone.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),q.fileInput.click())}),q.fileInput.addEventListener("change",t=>{let e=ff(t.target.files);e&&Um(e)});for(let t of["dragenter","dragover"])q.dropzone.addEventListener(t,e=>{e.preventDefault(),q.dropzone.dataset.dragging="true"});for(let t of["dragleave","drop"])q.dropzone.addEventListener(t,e=>{e.preventDefault(),q.dropzone.dataset.dragging="false"});q.dropzone.addEventListener("drop",t=>{let e=ff(t.dataTransfer?.files);e&&Um(e)}),q.alphaGain.addEventListener("input",()=>{q.alphaGainValue.textContent=Number(q.alphaGain.value).toFixed(2)}),q.residualCleanup.addEventListener("input",()=>{q.residualCleanupValue.textContent=Number(q.residualCleanup.value).toFixed(2)}),q.edgeDenoiseStrength.addEventListener("input",()=>{q.edgeDenoiseStrengthValue.textContent=Number(q.edgeDenoiseStrength.value).toFixed(2)}),q.denoiseBackend.addEventListener("change",()=>{q.denoiseBackend.value===Ke.ALLENK_FDNCNN_BROWSER_SPIKE&&fi(q.edgeDenoiseStrength,1.8)}),q.detectBtn.addEventListener("click",_G),q.processBtn.addEventListener("click",MG),q.resetBtn.addEventListener("click",RG),q.relocatedReviewPresetBtn.addEventListener("click",FG),q.downloadBtn.addEventListener("click",t=>{(!ie.processedUrl||ie.running)&&t.preventDefault()}),q.playPauseBtn.addEventListener("click",YG),q.scrubber.addEventListener("input",t=>{vG(t.target.value)}),q.originalVideo.addEventListener("loadedmetadata",()=>{di()}),q.originalVideo.addEventListener("timeupdate",()=>{q.originalVideo.paused||vo(),di()}),q.originalVideo.addEventListener("pause",()=>{q.processedVideo.paused||q.processedVideo.pause(),di()}),q.originalVideo.addEventListener("ended",()=>{DI()}),q.processedVideo.addEventListener("loadedmetadata",()=>{vo({force:!0}),Oo()}),window.addEventListener("beforeunload",jm)}async function NG(){if(new URLSearchParams(window.location.search).get("fileHandoff")==="1")try{let e=await HP("video");if(!e?.file)return;await Um(e.file),window.history.replaceState(null,"",window.location.pathname)}catch(e){console.warn("video handoff unavailable:",e),it(e.message||"\u8BFB\u53D6\u89C6\u9891\u6682\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}async function HG(){Vm(lf()),(!("VideoDecoder"in window)||!("VideoEncoder"in window))&&it("\u5F53\u524D\u6D4F\u89C8\u5668\u7F3A\u5C11 WebCodecs\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002","error"),mi(null),Ma(null),Oo(),hA(0,"\u7B49\u5F85\u89C6\u9891"),zG(),mn(),await NG()}HG();})();
125
125
  /*! Bundled license information:
126
126
 
127
127
  onnxruntime-web/dist/ort.webgpu.bundle.min.mjs: