@pilio/gemini-watermark-remover 1.0.44 → 1.0.45

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.44+ad9fefa
2
+ * @pilio/gemini-watermark-remover v1.0.45+38f46bd
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 VD=Object.defineProperty;var Ft=(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 KD=(t,e)=>()=>(t&&(e=t(t=0)),e);var up=(t,e)=>{for(var A in e)VD(t,A,{get:e[A],enumerable:!0})};var yI={};up(yI,{InferenceSession:()=>km,TRACE:()=>cl,TRACE_EVENT_BEGIN:()=>gn,TRACE_EVENT_END:()=>dn,TRACE_FUNC_BEGIN:()=>oi,TRACE_FUNC_END:()=>ci,Tensor:()=>LA,default:()=>Dx,env:()=>st,registerBackend:()=>si});async function A0(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((x,v)=>{ki={resolve:x,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=qA.url,l="";if(A||r){try{l=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 x=new XMLHttpRequest;x.open("GET",d,!0),x.responseType="arraybuffer",x.onload=()=>{x.status==200||x.status==0&&x.response?B(x.response):P(x.status)},x.onerror=P,x.send(null)});var m=await fetch(d,{credentials:"same-origin"});if(m.ok)return m.arrayBuffer();throw Error(m.status+" : "+m.url)}}var u,g,f,p,h,y,w=console.log.bind(console),D=console.error.bind(console),E=w,C=D,G=!1,S=d=>d.startsWith("file://");function k(){VA.buffer!=N.buffer&&ot()}if(n){let d=function(m){try{var B=m.data,P=B.Oc;if(P==="load"){let x=[];self.onmessage=v=>x.push(v),y=()=>{postMessage({Oc:"loaded"});for(let v of x)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"&&(E=e[v]),v=="printErr"&&(C=e[v]));VA=B.ie,ot(),g=B.je,qe(),gc()}else if(P==="run"){(function(x){var v=(k(),_)[x+52>>>2>>>0];x=(k(),_)[x+56>>>2>>>0],yh(v,v-x),fe(v)})(B.Nc),dg(B.Nc,0,0,1,0,0),pA(),Fr(B.Nc),R||(rh(),R=!0);try{hi(B.ge,B.Wc)}catch(x){if(x!="unwind")throw x}}else B.target!=="setimmediate"&&(P==="checkMailbox"?R&&Ei():P&&(C(`worker: received unknown command ${P}`),C(B)))}catch(x){throw hh(),x}};var M=d,R=!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 ot(){var d=VA.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 rt(){we=!0,n?y():lr._b()}function ct(d){throw C(d="Aborted("+d+")"),G=!0,d=new WebAssembly.RuntimeError(d+". Build with -sASSERTIONS for more info."),h?.(d),d}function Mt(){return{a:{f:fl,J:Mo,k:ml,p:hl,l:pl,sa:wl,b:Ro,ca:Qo,Ja:Ua,q:zo,da:ja,Za:Va,Fa:Ka,Ha:Wa,_a:Za,Xa:$a,Qa:Ja,Wa:Xa,oa:es,Ga:ts,Xb:No,Ya:Ho,Yb:yi,db:Bl,Da:Pl,Sb:yl,Qb:mn,Ca:Lo,M:cr,I:Dl,Rb:Cl,ja:ur,Tb:is,Ta:bi,Vb:Yl,Ka:as,Ob:jo,ka:Vo,Sa:Fr,ab:Ko,U:gs,n:ds,c:Ii,rb:Ce,w:Xo,L:fs,z:ec,j:tc,o:ms,sb:WA,G:vl,T:Ac,h:Ol,u:_l,m:Ml,i:Rl,Na:Ql,Oa:Fl,Pa:zl,La:ac,Ma:sc,Pb:oc,eb:Hl,cb:Ll,Y:jl,qb:Vl,la:Kl,bb:Ul,fb:Wl,$a:Zl,Wb:$l,N:Nl,gb:Jl,X:Xl,Ub:eg,nb:DA,C:CA,ra:Ag,qa:rg,pb:ng,W:ws,v:TI,mb:kI,lb:xI,kb:GI,ob:SI,jb:YI,ib:vI,hb:OI,Ua:Zm,Va:$m,Ia:mi,V:Jm,na:Xm,Ra:eh,ma:th,Cb:qD,xa:QD,Db:UD,ya:RD,F:ED,e:dD,s:lD,x:uD,B:DD,Fb:OD,ba:vD,D:hD,za:_D,$:FD,ga:YD,Gb:SD,Hb:GD,Ba:TD,Aa:xD,Ib:kD,wa:HD,aa:MD,d:gD,A:mD,r:fD,Bb:LD,t:wD,y:CD,H:pD,E:BD,K:bD,R:zD,ia:ID,_:ND,Jb:yD,Kb:PD,g:MI,a:VA,Nb:sA,Eb:RI,ha:QI,O:FI,pa:zI,Lb:NI,ta:HI,Q:UI,yb:qI,zb:LI,ua:jI,ea:VI,P:KI,Ea:WI,va:ZI,Z:$I,wb:JI,Zb:XI,S:eD,Ab:tD,tb:AD,ub:nD,vb:iD,fa:aD,xb:sD,Mb:oD}}}async function qe(){function d(P,x){var v=lr=P.exports;P={};for(let[z,H]of Object.entries(v))typeof H=="function"?(v=Wo(H),P[z]=v):P[z]=H;return lr=P,lr=function(){var z=lr,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}(),Qa.push(lr.id),Ah=(P=lr).$b,rh=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,sg=e._OrtGetWebGpuDevice=P.Bc,uc=P.Cc,bA=e._free=P.Dc,Si=e._malloc=P.Ec,nh=e._wgpuBufferRelease=P.Fc,ih=e._wgpuCreateInstance=P.Gc,ah=P.Hc,sh=P.Ic,oh=P.Jc,ch=P.Kc,uh=P.Lc,lh=P.Pc,gh=P.Zc,dh=P._c,fh=P.$c,og=P.bd,cg=P.cd,ug=P.dd,lg=P.ed,Bs=P.fd,gg=P.gd,mh=P.hd,dg=P.kd,hh=P.ld,ph=P.md,wh=P.nd,fg=P.od,Bh=P.pd,Ph=P.qd,mg=P.rd,Ye=P.sd,Ps=P.td,yh=P.ud,fe=P.vd,lc=P.wd,me=P.xd,Ih=P.yd,hg=P.zd,Dh=P.Ad,Ch=P.Bd,bh=P.Cd,pg=P.Dd,Eh=P.Ed,Th=P.Fd,kh=P.Gd,xh=P.Hd,Gh=P.Id,Sh=P.Jd,Yh=P.Kd,vh=P.Ld,Oh=P.Md,_h=P.Nd,Mh=P.Od,Rh=P.Pd,Qh=P.Qd,Fh=P.Rd,zh=P.Td,Nh=P.Ud,Hh=P.Vd,Uh=P.Wd,qh=P.Yd,Lh=P.Zd,jh=P._d,Vh=P.$d,Kh=P.ae,Wh=P.oe,Zh=P.pe,$h=P.qe,Jh=P.re,Xh=P.se,ep=P.te,tp=P.ue,Ap=P.ve,rp=P.we,np=P.xe,ip=P.ye,ap=P.Ye,sp=P.Ze,op=P._e,cp=P.$e,g=x,lr}var m,B=Mt();return e.instantiateWasm?new Promise(P=>{e.instantiateWasm(B,(x,v)=>{P(d(x,v))})}):n?d(new WebAssembly.Instance(g,Mt()),g):(ae??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.asyncify.wasm",l):l+"ort-wasm-simd-threaded.asyncify.wasm":new URL("ort-wasm-simd-threaded.asyncify.wasm",qA.url).href,m=await async function(P){var x=ae;if(!u&&!S(x))try{var v=fetch(x,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(v,P)}catch(z){C(`wasm streaming compile failed: ${z}`),C("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){C(`failed to asynchronously prepare wasm: ${re}`),ct(re)}}(x,P)}(B),d(m.instance,m.module))}class Ne{name="ExitStatus";constructor(m){this.message=`Program terminated with exit(${m})`,this.status=m}}var ut=d=>{d.terminate(),d.onmessage=()=>{}},Be=[],oe=0,de=null,kt=d=>{xt.length==0&&(Te(),za(xt[0]));var m=xt.pop();if(!m)return 6;Mr.push(m),jA[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},ve=0,Le=(d,m,...B)=>{var P,x=16*B.length,v=me(),z=lc(x),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=ph(d,0,x,z,m),fe(v),d};function sA(d){if(n)return Le(0,1,d);if(f=d,!(0<ve)){for(var m of Mr)ut(m);for(m of xt)ut(m);xt=[],Mr=[],jA={},G=!0}o(0,new Ne(d))}function _r(d){if(n)return Le(1,0,d);mi(d)}var mi=d=>{if(f=d,n)throw _r(d),"unwind";sA(d)},xt=[],Mr=[],Qa=[],jA={},Fa=d=>{var m=d.Nc;delete jA[m],xt.push(d),Mr.splice(Mr.indexOf(d),1),d.Nc=0,wh(m)};function pA(){Qa.forEach(d=>d())}var za=d=>new Promise(m=>{d.onmessage=x=>{var v=x.data;if(x=v.Oc,v.Vc&&v.Vc!=uc()){var z=jA[v.Vc];z?z.postMessage(v,v.Yc):C(`Internal error! Worker sent a message "${x}" to target pthread ${v.Vc}, but that thread no longer exists!`)}else x==="checkMailbox"?Ei():x==="spawnThread"?kt(v):x==="cleanupThread"?Pt(()=>{Fa(jA[v.he])}):x==="loaded"?(d.loaded=!0,m(d)):v.target==="setimmediate"?d.postMessage(v):x==="uncaughtException"?d.onerror(v.error):x==="callHandler"?e[v.be](...v.args):x&&C(`worker sent an unknown command ${x}`)},d.onerror=x=>{throw C(`worker sent an error! ${x.filename}:${x.lineno}: ${x.message}`),x};var B,P=[];for(B of[])e.propertyIsEnumerable(B)&&P.push(B);d.postMessage({Oc:"load",ce:P,ie:VA,je:g})});function Te(){var d=new Worker((()=>{let m=URL;return qA.url>"file:"&&qA.url<"file;"?new m("ort.webgpu.bundle.min.mjs",qA.url):new URL(qA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});xt.push(d)}var VA,hi=(d,m)=>{ve=0,d=pg(d,m),0<ve?f=d:fg(d)},ar=[],pi=0,nt=d=>-9007199254740992>d||9007199254740992<d?NaN:Number(d);function fl(d){var m=new Na(d>>>=0);return(k(),N)[m.Qc+12>>>0]==0&&(wi(m,!0),pi--),Bi(m,!1),ar.push(m),Ch(d)}var sr=0,Mo=()=>{Ye(0,0);var d=ar.pop();Ih(d.Xc),sr=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 Na{constructor(m){this.Xc=m,this.Qc=m-24}}var Ha=d=>{var m=sr;if(!m)return Ps(0),0;var B=new Na(m);(k(),_)[B.Qc+16>>>2>>>0]=m;var P=(k(),_)[B.Qc+4>>>2>>>0];if(!P)return Ps(0),m;for(var x of d){if(x===0||x===P)break;if(Dh(x,P,B.Qc+16))return Ps(x),m}return Ps(P),m};function ml(){return Ha([])}function hl(d){return Ha([d>>>0])}function pl(d,m,B,P){return Ha([d>>>0,m>>>0,B>>>0,P>>>0])}var wl=()=>{var d=ar.pop();d||ct("no exception to throw");var m=d.Xc;throw(k(),N)[d.Qc+13>>>0]==0&&(ar.push(d),Bi(d,!0),wi(d,!1),pi++),hg(m),sr=m};function Ro(d,m,B){var P=new Na(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,hg(d),pi++,sr=d}var Qo=()=>pi;function Fo(d,m,B,P){return n?Le(2,1,d,m,B,P):Ua(d,m,B,P)}function Ua(d,m,B,P){if(d>>>=0,m>>>=0,B>>>=0,P>>>=0,!globalThis.SharedArrayBuffer)return 6;var x=[];return n&&x.length===0?Fo(d,m,B,P):(d={fe:B,Nc:d,Wc:P,Yc:x},n?(d.Oc="spawnThread",postMessage(d,x),0):kt(d))}function zo(d){throw sr||=d>>>0,sr}var Pi=globalThis.TextDecoder&&new TextDecoder,qa=(d,m,B,P)=>{if(B=m+B,P)return B;for(;d[m]&&!(m>=B);)++m;return m},La=(d,m=0,B,P)=>{if(16<(B=qa(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 x=d[m++];if(128&x){var v=63&d[m++];if((224&x)==192)P+=String.fromCharCode((31&x)<<6|v);else{var z=63&d[m++];65536>(x=(240&x)==224?(15&x)<<12|v<<6|z:(7&x)<<18|v<<12|z<<6|63&d[m++])?P+=String.fromCharCode(x):(x-=65536,P+=String.fromCharCode(55296|x>>10,56320|1023&x))}}else P+=String.fromCharCode(x)}return P},or=(d,m,B)=>(d>>>=0)?La((k(),V),d,m,B):"";function ja(d,m,B){return n?Le(3,1,d,m,B):0}function Va(d,m){if(n)return Le(4,1,d,m)}function Ka(d,m){if(n)return Le(5,1,d,m)}function Wa(d,m,B){if(n)return Le(6,1,d,m,B)}function Za(d,m,B){return n?Le(7,1,d,m,B):0}function $a(d,m){if(n)return Le(8,1,d,m)}function Ja(d,m,B){if(n)return Le(9,1,d,m,B)}function Xa(d,m,B,P){if(n)return Le(10,1,d,m,B,P)}function es(d,m,B,P){if(n)return Le(11,1,d,m,B,P)}function ts(d,m,B,P){if(n)return Le(12,1,d,m,B,P)}function No(d){if(n)return Le(13,1,d)}function Ho(d,m){if(n)return Le(14,1,d,m)}function yi(d,m,B){if(n)return Le(15,1,d,m,B)}var Bl=()=>ct(""),Rt=d=>{d>>>=0;for(var m="";;){var B=(k(),V)[d++>>>0];if(!B)return m;m+=String.fromCharCode(B)}},Rr={},As={},rs={},Qr=class extends Error{constructor(d){super(d),this.name="BindingError"}};function wA(d,m,B={}){return function(P,x,v={}){var z=x.name;if(!P)throw new Qr(`type "${z}" must have a positive integer typeid pointer`);if(As.hasOwnProperty(P)){if(v.de)return;throw new Qr(`Cannot register type '${z}' twice`)}As[P]=x,delete rs[P],Rr.hasOwnProperty(P)&&(x=Rr[P],delete Rr[P],x.forEach(H=>H()))}(d,m,B)}var Uo=(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 Pl(d,m,B,P,x){d>>>=0,B>>>=0,m=Rt(m>>>0);let v=z=>z;if(P=P===0n){let z=8*B;v=H=>BigInt.asUintN(z,H),x=v(x)}wA(d,{name:m,Mc:v,Sc:(z,H)=>(typeof H=="number"&&(H=BigInt(H)),H),Rc:Uo(m,B,!P),Tc:null})}function yl(d,m,B,P){wA(d>>>=0,{name:m=Rt(m>>>0),Mc:function(x){return!!x},Sc:function(x,v){return v?B:P},Rc:function(x){return this.Mc((k(),V)[x>>>0])},Tc:null})}var ns=[],KA=[0,1,,1,null,1,!0,1,!1,1];function Ii(d){9<(d>>>=0)&&--KA[d+1]==0&&(KA[d]=void 0,ns.push(d))}var Qt=d=>{if(!d)throw new Qr(`Cannot use deleted val. handle = ${d}`);return KA[d]},Kt=d=>{switch(d){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let m=ns.pop()||KA.length;return KA[m]=d,KA[m+1]=1,m}};function Di(d){return this.Mc((k(),_)[d>>>2>>>0])}var qo={name:"emscripten::val",Mc:d=>{var m=Qt(d);return Ii(d),m},Sc:(d,m)=>Kt(m),Rc:Di,Tc:null};function mn(d){return wA(d>>>0,qo)}var Il=(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 Lo(d,m,B){B>>>=0,wA(d>>>=0,{name:m=Rt(m>>>0),Mc:P=>P,Sc:(P,x)=>x,Rc:Il(m,B),Tc:null})}function cr(d,m,B,P,x){d>>>=0,B>>>=0,m=Rt(m>>>0);let v=H=>H;if(P===0){var z=32-8*B;v=H=>H<<z>>>z,x=v(x)}wA(d,{name:m,Mc:v,Sc:(H,Z)=>Z,Rc:Uo(m,B,P!==0),Tc:null})}function Dl(d,m,B){function P(v){var z=(k(),_)[v>>>2>>>0];return v=(k(),_)[v+4>>>2>>>0],new x((k(),N).buffer,v,z)}var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][m];wA(d>>>=0,{name:B=Rt(B>>>0),Mc:P,Rc:P},{de:!0})}var BA=(d,m,B)=>{var P=(k(),V);if(m>>>=0,0<B){var x=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-x}else d=0;return d},PA=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 Cl(d,m){wA(d>>>=0,{name:m=Rt(m>>>0),Mc(B){var P=(k(),_)[B>>>2>>>0];return P=or(B+4,P,!0),bA(B),P},Sc(B,P){P instanceof ArrayBuffer&&(P=new Uint8Array(P));var x=typeof P=="string";if(!(x||ArrayBuffer.isView(P)&&P.BYTES_PER_ELEMENT==1))throw new Qr("Cannot pass non-string to std::string");var v=x?PA(P):P.length,z=Si(4+v+1),H=z+4;return(k(),_)[z>>>2>>>0]=v,x?BA(P,H,v+1):(k(),V).set(P,H>>>0),B!==null&&B.push(bA,z),z},Rc:Di,Tc(B){bA(B)}})}var Ci=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,bl=(d,m,B)=>{if(d>>>=1,16<(m=qa((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},El=(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 x=0;x<B;++x){var v=d.charCodeAt(x);(k(),F)[m>>>1>>>0]=v,m+=2}return(k(),F)[m>>>1>>>0]=0,m-P},Tl=d=>2*d.length,kl=(d,m,B)=>{var P="";d>>>=2;for(var x=0;!(x>=m/4);x++){var v=(k(),_)[d+x>>>0];if(!v&&!B)break;P+=String.fromCodePoint(v)}return P},xl=(d,m,B)=>{if(m>>>=0,B??=2147483647,4>B)return 0;var P=m;B=P+B-4;for(var x=0;x<d.length;++x){var v=d.codePointAt(x);if(65535<v&&x++,(k(),L)[m>>>2>>>0]=v,(m+=4)+4>B)break}return(k(),L)[m>>>2>>>0]=0,m-P},Gl=d=>{for(var m=0,B=0;B<d.length;++B)65535<d.codePointAt(B)&&B++,m+=4;return m};function ur(d,m,B){if(d>>>=0,m>>>=0,B=Rt(B>>>=0),m===2)var P=bl,x=El,v=Tl;else P=kl,x=xl,v=Gl;wA(d,{name:B,Mc:z=>{var H=(k(),_)[z>>>2>>>0];return H=P(z+4,H*m,!0),bA(z),H},Sc:(z,H)=>{if(typeof H!="string")throw new Qr(`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,x(H,re+4,Z+m),z!==null&&z.push(bA,re),re},Rc:Di,Tc(z){bA(z)}})}function is(d,m){wA(d>>>=0,{ee:!0,name:m=Rt(m>>>0),Mc:()=>{},Sc:()=>{}})}function bi(d){dg(d>>>0,!r,1,!A,131072,!1),pA()}var Pt=d=>{if(!G)try{if(d(),!(0<ve))try{n?uc()&&fg(f):mi(f)}catch(m){m instanceof Ne||m=="unwind"||o(0,m)}}catch(m){m instanceof Ne||m=="unwind"||o(0,m)}},Sl=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Fr(d){d>>>=0,Sl||(Atomics.waitAsync((k(),L),d>>>2,d).value.then(Ei),d+=128,Atomics.store((k(),L),d>>>2,1))}var Ei=()=>Pt(()=>{var d=uc();d&&(Fr(d),Ph())});function Yl(d,m){(d>>>=0)==m>>>0?setTimeout(Ei):n?postMessage({Vc:d,Oc:"checkMailbox"}):(d=jA[d])&&d.postMessage({Oc:"checkMailbox"})}var hn=[];function as(d,m,B,P,x){for(m>>>=0,x>>>=0,hn.length=0,B=x>>>3,P=x+P>>>3;B<P;){var v;v=(k(),Ae)[B++>>>0]?(k(),Ae)[B++>>>0]:(k(),pe)[B++>>>0],hn.push(v)}return(m?wg[m]:cD[d])(...hn)}var jo=()=>{ve=0};function Vo(d){d>>>=0,n?postMessage({Oc:"cleanupThread",he:d}):Fa(jA[d])}function Ko(d){}var pn=d=>{try{d()}catch(m){ct(m)}};function Wo(d){var m=(...B)=>{Ti.push(d);try{return d(...B)}finally{G||(Ti.pop(),oA&&yA===1&&Ti.length===0&&(yA=0,ve+=1,pn(sp),typeof Fibers<"u"&&Fibers.Be()))}};return cs.set(d,m),m}var yA=0,oA=null,ss=0,Ti=[],zr=new Map,os=new Map,cs=new Map,us=0,ki=null,Zo=[],ls=d=>function(m){if(!G){if(yA===0){var B=!1,P=!1;m((x=0)=>{if(!G&&(ss=x,B=!0,P)){yA=2,pn(()=>op(oA)),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.resume(),x=!1;try{var v=function(){var Z=(k(),L)[oA+8>>>2>>>0];return Z=os.get(Z),Z=cs.get(Z),--ve,Z()}()}catch(Z){v=Z,x=!0}var z=!1;if(!oA){var H=ki;H&&(ki=null,(x?H.reject:H.resolve)(v),z=!0)}if(x&&!z)throw v}}),P=!0,B||(yA=1,oA=function(){var x=Si(65548),v=x+12;if((k(),_)[x>>>2>>>0]=v,(k(),_)[x+4>>>2>>>0]=v+65536,v=Ti[0],!zr.has(v)){var z=us++;zr.set(v,z),os.set(z,v)}return v=zr.get(v),(k(),L)[x+8>>>2>>>0]=v,x}(),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.pause(),pn(()=>ap(oA)))}else yA===2?(yA=0,pn(cp),bA(oA),oA=null,Zo.forEach(Pt)):ct(`invalid state: ${yA}`);return ss}}(m=>{d().then(m)});function gs(d){return d>>>=0,ls(async()=>{var m=await Qt(d);return Kt(m)})}var xi=[],$o=d=>{var m=xi.length;return xi.push(d),m},ke=(d,m)=>{for(var B=Array(d),P=0;P<d;++P){var x=P,v=(k(),_)[m+4*P>>>2>>>0],z=As[v];if(z===void 0)throw d=`parameter ${P}`,v=Ah(v),m=Rt(v),bA(v),new Qr(`${d} has unknown type ${m}`);B[x]=z}return B},wn=(d,m,B)=>{var P=[];return d=d(P,B),P.length&&((k(),_)[m>>>2>>>0]=Kt(P)),d},Jo={},Pe=d=>{var m=Jo[d];return m===void 0?Rt(d):m};function ds(d,m,B){var[P,...x]=ke(d,m>>>0);m=P.Sc.bind(P);var v=x.map(Z=>Z.Rc.bind(Z));d--;var z={toValue:Qt};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=wn,H=`return emval_returnValue(toReturnWire, destructorsRef, ${H})`),H=`return function (handle, methodName, destructorsRef, args) {
8
+ (()=>{var rC=Object.defineProperty;var Ft=(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 nC=(t,e)=>()=>(t&&(e=t(t=0)),e);var dp=(t,e)=>{for(var A in e)rC(t,A,{get:e[A],enumerable:!0})};var kI={};dp(kI,{InferenceSession:()=>Gm,TRACE:()=>ul,TRACE_EVENT_BEGIN:()=>fn,TRACE_EVENT_END:()=>mn,TRACE_FUNC_BEGIN:()=>ui,TRACE_FUNC_END:()=>li,Tensor:()=>jA,default:()=>Ox,env:()=>st,registerBackend:()=>ci});async function c0(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=uA;return B=m(...B),uA!=P?new Promise((x,v)=>{Gi={resolve:x,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,l="";if(A||r){try{l=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 x=new XMLHttpRequest;x.open("GET",d,!0),x.responseType="arraybuffer",x.onload=()=>{x.status==200||x.status==0&&x.response?B(x.response):P(x.status)},x.onerror=P,x.send(null)});var m=await fetch(d,{credentials:"same-origin"});if(m.ok)return m.arrayBuffer();throw Error(m.status+" : "+m.url)}}var u,g,f,p,h,y,w=console.log.bind(console),D=console.error.bind(console),E=w,C=D,G=!1,S=d=>d.startsWith("file://");function k(){KA.buffer!=N.buffer&&ut()}if(n){let d=function(m){try{var B=m.data,P=B.Oc;if(P==="load"){let x=[];self.onmessage=v=>x.push(v),y=()=>{postMessage({Oc:"loaded"});for(let v of x)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"&&(E=e[v]),v=="printErr"&&(C=e[v]));KA=B.ie,ut(),g=B.je,qe(),dc()}else if(P==="run"){(function(x){var v=(k(),_)[x+52>>>2>>>0];x=(k(),_)[x+56>>>2>>>0],Ch(v,v-x),me(v)})(B.Nc),mg(B.Nc,0,0,1,0,0),wA(),Nr(B.Nc),R||(ah(),R=!0);try{wi(B.ge,B.Wc)}catch(x){if(x!="unwind")throw x}}else B.target!=="setimmediate"&&(P==="checkMailbox"?R&&ki():P&&(C(`worker: received unknown command ${P}`),C(B)))}catch(x){throw Bh(),x}};var M=d,R=!1;self.onunhandledrejection=m=>{throw m.reason||m},self.onmessage=d}var N,V,F,K,L,_,W,we,re,De,ae,fe=!1;function ut(){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),we=new Float64Array(d),re=new BigInt64Array(d),De=new BigUint64Array(d)}function ot(){fe=!0,n?y():dr._b()}function et(d){throw C(d="Aborted("+d+")"),G=!0,d=new WebAssembly.RuntimeError(d+". Build with -sASSERTIONS for more info."),h?.(d),d}function Mt(){return{a:{f:hl,J:Ro,k:pl,p:wl,l:Bl,sa:Pl,b:Qo,ca:Fo,Ja:La,q:No,da:Ka,Za:Wa,Fa:Za,Ha:$a,_a:Ja,Xa,Qa:es,Wa:ts,oa:As,Ga:rs,Xb:Ho,Ya:Uo,Yb:Di,db:yl,Da:Il,Sb:Dl,Qb:hn,Ca:jo,M:lr,I:bl,Rb:El,ja:gr,Tb:ss,Ta:Ti,Vb:Ol,Ka:os,Ob:Vo,ka:Ko,Sa:Nr,ab:Wo,U:fs,n:ms,c:Ci,rb:Ce,w:ec,L:hs,z:tc,j:Ac,o:ps,sb:ZA,G:_l,T:rc,h:Ml,u:Rl,m:Ql,i:Fl,Na:zl,Oa:Nl,Pa:Hl,La:sc,Ma:oc,Pb:cc,eb:ql,cb:Vl,Y:Kl,qb:Wl,la:Zl,bb:Ll,fb:$l,$a:Jl,Wb:Xl,N:Ul,gb:eg,X:tg,Ub:Ag,nb:CA,C:bA,ra:ng,qa:ig,pb:ag,W:Ps,v:RI,mb:QI,lb:FI,kb:zI,ob:NI,jb:HI,ib:UI,hb:qI,Ua:Xm,Va:eh,Ia:pi,V:th,na:Ah,Ra:rh,ma:nh,Cb:eC,xa:KD,Db:XD,ya:VD,F:MD,e:DD,s:yD,x:PD,B:vD,Fb:qD,ba:UD,D:ED,za:LD,$:WD,ga:HD,Gb:ND,Hb:zD,Ba:RD,Aa:FD,Ib:QD,wa:JD,aa:jD,d:ID,A:bD,r:CD,Bb:tC,t:kD,y:OD,H:TD,E:xD,K:_D,R:ZD,ia:YD,_:$D,Jb:SD,Kb:GD,g:jI,a:KA,Nb:cA,Eb:VI,ha:KI,O:WI,pa:ZI,Lb:$I,ta:JI,Q:XI,yb:eD,zb:tD,ua:AD,ea:rD,P:nD,Ea:iD,va:aD,Z:sD,wb:oD,Zb:cD,S:uD,Ab:lD,tb:gD,ub:fD,vb:mD,fa:hD,xb:pD,Mb:wD}}}async function qe(){function d(P,x){var v=dr=P.exports;P={};for(let[z,H]of Object.entries(v))typeof H=="function"?(v=Zo(H),P[z]=v):P[z]=H;return dr=P,dr=function(){var z=dr,H=ne=>Qe=>ne(Qe)>>>0,Z=ne=>()=>ne()>>>0;return(z=Object.assign({},z)).$b=H(z.$b),z.Cc=Z(z.Cc),z.Ec=H(z.Ec),z.rd=(ne=>(Qe,Ue)=>ne(Qe,Ue)>>>0)(z.rd),z.wd=H(z.wd),z.xd=Z(z.xd),z.Bd=H(z.Bd),z}(),za.push(dr.id),ih=(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,cg=e._OrtGetWebGpuDevice=P.Bc,lc=P.Cc,EA=e._free=P.Dc,vi=e._malloc=P.Ec,sh=e._wgpuBufferRelease=P.Fc,oh=e._wgpuCreateInstance=P.Gc,ch=P.Hc,uh=P.Ic,lh=P.Jc,gh=P.Kc,dh=P.Lc,fh=P.Pc,mh=P.Zc,hh=P._c,ph=P.$c,ug=P.bd,lg=P.cd,gg=P.dd,dg=P.ed,ys=P.fd,fg=P.gd,wh=P.hd,mg=P.kd,Bh=P.ld,Ph=P.md,yh=P.nd,hg=P.od,Ih=P.pd,Dh=P.qd,pg=P.rd,Ye=P.sd,Is=P.td,Ch=P.ud,me=P.vd,gc=P.wd,he=P.xd,bh=P.yd,wg=P.zd,Eh=P.Ad,Th=P.Bd,kh=P.Cd,Bg=P.Dd,xh=P.Ed,Gh=P.Fd,Sh=P.Gd,Yh=P.Hd,vh=P.Id,Oh=P.Jd,_h=P.Kd,Mh=P.Ld,Rh=P.Md,Qh=P.Nd,Fh=P.Od,zh=P.Pd,Nh=P.Qd,Hh=P.Rd,Uh=P.Td,qh=P.Ud,Lh=P.Vd,jh=P.Wd,Vh=P.Yd,Kh=P.Zd,Wh=P._d,Zh=P.$d,$h=P.ae,Jh=P.oe,Xh=P.pe,ep=P.qe,tp=P.re,Ap=P.se,rp=P.te,np=P.ue,ip=P.ve,ap=P.we,sp=P.xe,op=P.ye,cp=P.Ye,up=P.Ze,lp=P._e,gp=P.$e,g=x,dr}var m,B=Mt();return e.instantiateWasm?new Promise(P=>{e.instantiateWasm(B,(x,v)=>{P(d(x,v))})}):n?d(new WebAssembly.Instance(g,Mt()),g):(ae??=e.locateFile?e.locateFile?e.locateFile("ort-wasm-simd-threaded.asyncify.wasm",l):l+"ort-wasm-simd-threaded.asyncify.wasm":new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href,m=await async function(P){var x=ae;if(!u&&!S(x))try{var v=fetch(x,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(v,P)}catch(z){C(`wasm streaming compile failed: ${z}`),C("falling back to ArrayBuffer instantiation")}return async function(z,H){try{var Z=await async function(ne){if(!u)try{var Qe=await i(ne);return new Uint8Array(Qe)}catch{}if(ne==ae&&u)ne=new Uint8Array(u);else{if(!s)throw"both async and sync fetching of the wasm failed";ne=s(ne)}return ne}(z);return await WebAssembly.instantiate(Z,H)}catch(ne){C(`failed to asynchronously prepare wasm: ${ne}`),et(ne)}}(x,P)}(B),d(m.instance,m.module))}class Ne{name="ExitStatus";constructor(m){this.message=`Program terminated with exit(${m})`,this.status=m}}var ct=d=>{d.terminate(),d.onmessage=()=>{}},Be=[],oe=0,de=null,kt=d=>{xt.length==0&&(Te(),Ha(xt[0]));var m=xt.pop();if(!m)return 6;Qr.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},ve=0,Le=(d,m,...B)=>{var P,x=16*B.length,v=he(),z=gc(x),H=z>>>3;for(P of B)typeof P=="bigint"?((k(),re)[H++>>>0]=1n,(k(),re)[H++>>>0]=P):((k(),re)[H++>>>0]=0n,(k(),we)[H++>>>0]=P);return d=Ph(d,0,x,z,m),me(v),d};function cA(d){if(n)return Le(0,1,d);if(f=d,!(0<ve)){for(var m of Qr)ct(m);for(m of xt)ct(m);xt=[],Qr=[],VA={},G=!0}o(0,new Ne(d))}function Rr(d){if(n)return Le(1,0,d);pi(d)}var pi=d=>{if(f=d,n)throw Rr(d),"unwind";cA(d)},xt=[],Qr=[],za=[],VA={},Na=d=>{var m=d.Nc;delete VA[m],xt.push(d),Qr.splice(Qr.indexOf(d),1),d.Nc=0,yh(m)};function wA(){za.forEach(d=>d())}var Ha=d=>new Promise(m=>{d.onmessage=x=>{var v=x.data;if(x=v.Oc,v.Vc&&v.Vc!=lc()){var z=VA[v.Vc];z?z.postMessage(v,v.Yc):C(`Internal error! Worker sent a message "${x}" to target pthread ${v.Vc}, but that thread no longer exists!`)}else x==="checkMailbox"?ki():x==="spawnThread"?kt(v):x==="cleanupThread"?Pt(()=>{Na(VA[v.he])}):x==="loaded"?(d.loaded=!0,m(d)):v.target==="setimmediate"?d.postMessage(v):x==="uncaughtException"?d.onerror(v.error):x==="callHandler"?e[v.be](...v.args):x&&C(`worker sent an unknown command ${x}`)},d.onerror=x=>{throw C(`worker sent an error! ${x.filename}:${x.lineno}: ${x.message}`),x};var B,P=[];for(B of[])e.propertyIsEnumerable(B)&&P.push(B);d.postMessage({Oc:"load",ce:P,ie:KA,je:g})});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"});xt.push(d)}var KA,wi=(d,m)=>{ve=0,d=Bg(d,m),0<ve?f=d:hg(d)},or=[],Bi=0,nt=d=>-9007199254740992>d||9007199254740992<d?NaN:Number(d);function hl(d){var m=new Ua(d>>>=0);return(k(),N)[m.Qc+12>>>0]==0&&(Pi(m,!0),Bi--),yi(m,!1),or.push(m),Th(d)}var cr=0,Ro=()=>{Ye(0,0);var d=or.pop();bh(d.Xc),cr=0};function Pi(d,m){m=m?1:0,(k(),N)[d.Qc+12>>>0]=m}function yi(d,m){m=m?1:0,(k(),N)[d.Qc+13>>>0]=m}class Ua{constructor(m){this.Xc=m,this.Qc=m-24}}var qa=d=>{var m=cr;if(!m)return Is(0),0;var B=new Ua(m);(k(),_)[B.Qc+16>>>2>>>0]=m;var P=(k(),_)[B.Qc+4>>>2>>>0];if(!P)return Is(0),m;for(var x of d){if(x===0||x===P)break;if(Eh(x,P,B.Qc+16))return Is(x),m}return Is(P),m};function pl(){return qa([])}function wl(d){return qa([d>>>0])}function Bl(d,m,B,P){return qa([d>>>0,m>>>0,B>>>0,P>>>0])}var Pl=()=>{var d=or.pop();d||et("no exception to throw");var m=d.Xc;throw(k(),N)[d.Qc+13>>>0]==0&&(or.push(d),yi(d,!0),Pi(d,!1),Bi++),wg(m),cr=m};function Qo(d,m,B){var P=new Ua(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,wg(d),Bi++,cr=d}var Fo=()=>Bi;function zo(d,m,B,P){return n?Le(2,1,d,m,B,P):La(d,m,B,P)}function La(d,m,B,P){if(d>>>=0,m>>>=0,B>>>=0,P>>>=0,!globalThis.SharedArrayBuffer)return 6;var x=[];return n&&x.length===0?zo(d,m,B,P):(d={fe:B,Nc:d,Wc:P,Yc:x},n?(d.Oc="spawnThread",postMessage(d,x),0):kt(d))}function No(d){throw cr||=d>>>0,cr}var Ii=globalThis.TextDecoder&&new TextDecoder,ja=(d,m,B,P)=>{if(B=m+B,P)return B;for(;d[m]&&!(m>=B);)++m;return m},Va=(d,m=0,B,P)=>{if(16<(B=ja(d,m>>>=0,B,P))-m&&d.buffer&&Ii)return Ii.decode(d.buffer instanceof ArrayBuffer?d.subarray(m,B):d.slice(m,B));for(P="";m<B;){var x=d[m++];if(128&x){var v=63&d[m++];if((224&x)==192)P+=String.fromCharCode((31&x)<<6|v);else{var z=63&d[m++];65536>(x=(240&x)==224?(15&x)<<12|v<<6|z:(7&x)<<18|v<<12|z<<6|63&d[m++])?P+=String.fromCharCode(x):(x-=65536,P+=String.fromCharCode(55296|x>>10,56320|1023&x))}}else P+=String.fromCharCode(x)}return P},ur=(d,m,B)=>(d>>>=0)?Va((k(),V),d,m,B):"";function Ka(d,m,B){return n?Le(3,1,d,m,B):0}function Wa(d,m){if(n)return Le(4,1,d,m)}function Za(d,m){if(n)return Le(5,1,d,m)}function $a(d,m,B){if(n)return Le(6,1,d,m,B)}function Ja(d,m,B){return n?Le(7,1,d,m,B):0}function Xa(d,m){if(n)return Le(8,1,d,m)}function es(d,m,B){if(n)return Le(9,1,d,m,B)}function ts(d,m,B,P){if(n)return Le(10,1,d,m,B,P)}function As(d,m,B,P){if(n)return Le(11,1,d,m,B,P)}function rs(d,m,B,P){if(n)return Le(12,1,d,m,B,P)}function Ho(d){if(n)return Le(13,1,d)}function Uo(d,m){if(n)return Le(14,1,d,m)}function Di(d,m,B){if(n)return Le(15,1,d,m,B)}var yl=()=>et(""),Rt=d=>{d>>>=0;for(var m="";;){var B=(k(),V)[d++>>>0];if(!B)return m;m+=String.fromCharCode(B)}},Fr={},ns={},is={},zr=class extends Error{constructor(d){super(d),this.name="BindingError"}};function BA(d,m,B={}){return function(P,x,v={}){var z=x.name;if(!P)throw new zr(`type "${z}" must have a positive integer typeid pointer`);if(ns.hasOwnProperty(P)){if(v.de)return;throw new zr(`Cannot register type '${z}' twice`)}ns[P]=x,delete is[P],Fr.hasOwnProperty(P)&&(x=Fr[P],delete Fr[P],x.forEach(H=>H()))}(d,m,B)}var qo=(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(),re)[P>>>3>>>0]:P=>(k(),De)[P>>>3>>>0];default:throw new TypeError(`invalid integer width (${m}): ${d}`)}};function Il(d,m,B,P,x){d>>>=0,B>>>=0,m=Rt(m>>>0);let v=z=>z;if(P=P===0n){let z=8*B;v=H=>BigInt.asUintN(z,H),x=v(x)}BA(d,{name:m,Mc:v,Sc:(z,H)=>(typeof H=="number"&&(H=BigInt(H)),H),Rc:qo(m,B,!P),Tc:null})}function Dl(d,m,B,P){BA(d>>>=0,{name:m=Rt(m>>>0),Mc:function(x){return!!x},Sc:function(x,v){return v?B:P},Rc:function(x){return this.Mc((k(),V)[x>>>0])},Tc:null})}var as=[],WA=[0,1,,1,null,1,!0,1,!1,1];function Ci(d){9<(d>>>=0)&&--WA[d+1]==0&&(WA[d]=void 0,as.push(d))}var Qt=d=>{if(!d)throw new zr(`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=as.pop()||WA.length;return WA[m]=d,WA[m+1]=1,m}};function bi(d){return this.Mc((k(),_)[d>>>2>>>0])}var Lo={name:"emscripten::val",Mc:d=>{var m=Qt(d);return Ci(d),m},Sc:(d,m)=>Wt(m),Rc:bi,Tc:null};function hn(d){return BA(d>>>0,Lo)}var Cl=(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(),we)[B>>>3>>>0])};default:throw new TypeError(`invalid float width (${m}): ${d}`)}};function jo(d,m,B){B>>>=0,BA(d>>>=0,{name:m=Rt(m>>>0),Mc:P=>P,Sc:(P,x)=>x,Rc:Cl(m,B),Tc:null})}function lr(d,m,B,P,x){d>>>=0,B>>>=0,m=Rt(m>>>0);let v=H=>H;if(P===0){var z=32-8*B;v=H=>H<<z>>>z,x=v(x)}BA(d,{name:m,Mc:v,Sc:(H,Z)=>Z,Rc:qo(m,B,P!==0),Tc:null})}function bl(d,m,B){function P(v){var z=(k(),_)[v>>>2>>>0];return v=(k(),_)[v+4>>>2>>>0],new x((k(),N).buffer,v,z)}var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][m];BA(d>>>=0,{name:B=Rt(B>>>0),Mc:P,Rc:P},{de:!0})}var PA=(d,m,B)=>{var P=(k(),V);if(m>>>=0,0<B){var x=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-x}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 El(d,m){BA(d>>>=0,{name:m=Rt(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 x=typeof P=="string";if(!(x||ArrayBuffer.isView(P)&&P.BYTES_PER_ELEMENT==1))throw new zr("Cannot pass non-string to std::string");var v=x?yA(P):P.length,z=vi(4+v+1),H=z+4;return(k(),_)[z>>>2>>>0]=v,x?PA(P,H,v+1):(k(),V).set(P,H>>>0),B!==null&&B.push(EA,z),z},Rc:bi,Tc(B){EA(B)}})}var Ei=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Tl=(d,m,B)=>{if(d>>>=1,16<(m=ja((k(),K),d,m/2,B))-d&&Ei)return Ei.decode((k(),K).slice(d,m));for(B="";d<m;++d){var P=(k(),K)[d>>>0];B+=String.fromCharCode(P)}return B},kl=(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 x=0;x<B;++x){var v=d.charCodeAt(x);(k(),F)[m>>>1>>>0]=v,m+=2}return(k(),F)[m>>>1>>>0]=0,m-P},xl=d=>2*d.length,Gl=(d,m,B)=>{var P="";d>>>=2;for(var x=0;!(x>=m/4);x++){var v=(k(),_)[d+x>>>0];if(!v&&!B)break;P+=String.fromCodePoint(v)}return P},Sl=(d,m,B)=>{if(m>>>=0,B??=2147483647,4>B)return 0;var P=m;B=P+B-4;for(var x=0;x<d.length;++x){var v=d.codePointAt(x);if(65535<v&&x++,(k(),L)[m>>>2>>>0]=v,(m+=4)+4>B)break}return(k(),L)[m>>>2>>>0]=0,m-P},Yl=d=>{for(var m=0,B=0;B<d.length;++B)65535<d.codePointAt(B)&&B++,m+=4;return m};function gr(d,m,B){if(d>>>=0,m>>>=0,B=Rt(B>>>=0),m===2)var P=Tl,x=kl,v=xl;else P=Gl,x=Sl,v=Yl;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 zr(`Cannot pass non-string to C++ string type ${B}`);var Z=v(H),ne=vi(4+Z+m);return(k(),_)[ne>>>2>>>0]=Z/m,x(H,ne+4,Z+m),z!==null&&z.push(EA,ne),ne},Rc:bi,Tc(z){EA(z)}})}function ss(d,m){BA(d>>>=0,{ee:!0,name:m=Rt(m>>>0),Mc:()=>{},Sc:()=>{}})}function Ti(d){mg(d>>>0,!r,1,!A,131072,!1),wA()}var Pt=d=>{if(!G)try{if(d(),!(0<ve))try{n?lc()&&hg(f):pi(f)}catch(m){m instanceof Ne||m=="unwind"||o(0,m)}}catch(m){m instanceof Ne||m=="unwind"||o(0,m)}},vl=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Nr(d){d>>>=0,vl||(Atomics.waitAsync((k(),L),d>>>2,d).value.then(ki),d+=128,Atomics.store((k(),L),d>>>2,1))}var ki=()=>Pt(()=>{var d=lc();d&&(Nr(d),Dh())});function Ol(d,m){(d>>>=0)==m>>>0?setTimeout(ki):n?postMessage({Vc:d,Oc:"checkMailbox"}):(d=VA[d])&&d.postMessage({Oc:"checkMailbox"})}var pn=[];function os(d,m,B,P,x){for(m>>>=0,x>>>=0,pn.length=0,B=x>>>3,P=x+P>>>3;B<P;){var v;v=(k(),re)[B++>>>0]?(k(),re)[B++>>>0]:(k(),we)[B++>>>0],pn.push(v)}return(m?Pg[m]:BD[d])(...pn)}var Vo=()=>{ve=0};function Ko(d){d>>>=0,n?postMessage({Oc:"cleanupThread",he:d}):Na(VA[d])}function Wo(d){}var wn=d=>{try{d()}catch(m){et(m)}};function Zo(d){var m=(...B)=>{xi.push(d);try{return d(...B)}finally{G||(xi.pop(),uA&&IA===1&&xi.length===0&&(IA=0,ve+=1,wn(up),typeof Fibers<"u"&&Fibers.Be()))}};return ls.set(d,m),m}var IA=0,uA=null,cs=0,xi=[],Hr=new Map,us=new Map,ls=new Map,gs=0,Gi=null,$o=[],ds=d=>function(m){if(!G){if(IA===0){var B=!1,P=!1;m((x=0)=>{if(!G&&(cs=x,B=!0,P)){IA=2,wn(()=>lp(uA)),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.resume(),x=!1;try{var v=function(){var Z=(k(),L)[uA+8>>>2>>>0];return Z=us.get(Z),Z=ls.get(Z),--ve,Z()}()}catch(Z){v=Z,x=!0}var z=!1;if(!uA){var H=Gi;H&&(Gi=null,(x?H.reject:H.resolve)(v),z=!0)}if(x&&!z)throw v}}),P=!0,B||(IA=1,uA=function(){var x=vi(65548),v=x+12;if((k(),_)[x>>>2>>>0]=v,(k(),_)[x+4>>>2>>>0]=v+65536,v=xi[0],!Hr.has(v)){var z=gs++;Hr.set(v,z),us.set(z,v)}return v=Hr.get(v),(k(),L)[x+8>>>2>>>0]=v,x}(),typeof MainLoop<"u"&&MainLoop.Xd&&MainLoop.pause(),wn(()=>cp(uA)))}else IA===2?(IA=0,wn(gp),EA(uA),uA=null,$o.forEach(Pt)):et(`invalid state: ${IA}`);return cs}}(m=>{d().then(m)});function fs(d){return d>>>=0,ds(async()=>{var m=await Qt(d);return Wt(m)})}var Si=[],Jo=d=>{var m=Si.length;return Si.push(d),m},ke=(d,m)=>{for(var B=Array(d),P=0;P<d;++P){var x=P,v=(k(),_)[m+4*P>>>2>>>0],z=ns[v];if(z===void 0)throw d=`parameter ${P}`,v=ih(v),m=Rt(v),EA(v),new zr(`${d} has unknown type ${m}`);B[x]=z}return B},Bn=(d,m,B)=>{var P=[];return d=d(P,B),P.length&&((k(),_)[m>>>2>>>0]=Wt(P)),d},Xo={},Pe=d=>{var m=Xo[d];return m===void 0?Rt(d):m};function ms(d,m,B){var[P,...x]=ke(d,m>>>0);m=P.Sc.bind(P);var v=x.map(Z=>Z.Rc.bind(Z));d--;var z={toValue:Qt};switch(d=v.map((Z,ne)=>{var Qe=`argFromPtr${ne}`;return z[Qe]=Z,`${Qe}(args${ne?"+"+8*ne:""})`}),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<(${x.map(Z=>Z.name)}) => ${P.name}>`,$o(Object.defineProperty(B,"name",{value:H}))}function Ce(d,m){return m>>>=0,(d=Qt(d>>>0))==Qt(m)}function Xo(d){return(d>>>=0)?(d=Pe(d),Kt(globalThis[d])):Kt(globalThis)}function fs(d){return d=Pe(d>>>0),Kt(e[d])}function ec(d,m){return m>>>=0,d=Qt(d>>>0),m=Qt(m),Kt(d[m])}function tc(d){9<(d>>>=0)&&(KA[d+1]+=1)}function ms(d,m,B,P,x){return xi[d>>>0](m>>>0,B>>>0,P>>>0,x>>>0)}function WA(d,m,B,P,x){return ms(d>>>0,m>>>0,B>>>0,P>>>0,x>>>0)}function vl(){return Kt([])}function Ac(d){d=Qt(d>>>0);for(var m=Array(d.length),B=0;B<d.length;B++)m[B]=d[B];return Kt(m)}function Ol(d){return Kt(Pe(d>>>0))}function _l(){return Kt({})}function Ml(d){for(var m=Qt(d>>>=0);m.length;){var B=m.pop();m.pop()(B)}Ii(d)}function Rl(d,m,B){m>>>=0,B>>>=0,d=Qt(d>>>0),m=Qt(m),B=Qt(B),d[m]=B}function Ql(d,m){d=nt(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 rc=d=>d%4==0&&(d%100!=0||d%400==0),nc=[0,31,60,91,121,152,182,213,244,274,305,335],ic=[0,31,59,90,120,151,181,212,243,273,304,334];function Fl(d,m){d=nt(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=(rc(d.getFullYear())?nc:ic)[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 zl(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(),x=new Date(m.getFullYear(),6,1).getTimezoneOffset(),v=new Date(m.getFullYear(),0,1).getTimezoneOffset(),z=Math.min(v,x);return 0>B?(k(),L)[d+32>>>2>>>0]=+(x!=v&&z==P):0<B!=(z==P)&&(x=Math.max(v,x),m.setTime(m.getTime()+6e4*((0<B?z:x)-P))),(k(),L)[d+24>>>2>>>0]=m.getDay(),B=(rc(m.getFullYear())?nc:ic)[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 ac(d,m,B,P,x,v,z){return n?Le(16,1,d,m,B,P,x,v,z):-52}function sc(d,m,B,P,x,v){if(n)return Le(17,1,d,m,B,P,x,v)}var Bn={},Nl=()=>performance.timeOrigin+performance.now();function oc(d,m){if(n)return Le(18,1,d,m);if(Bn[d]&&(clearTimeout(Bn[d].id),delete Bn[d]),!m)return 0;var B=setTimeout(()=>{delete Bn[d],Pt(()=>Bh(d,performance.timeOrigin+performance.now()))},m);return Bn[d]={id:B,Ae:m},0}function Hl(d,m,B,P){d>>>=0,m>>>=0,B>>>=0,P>>>=0;var x=new Date().getFullYear(),v=new Date(x,0,1).getTimezoneOffset();x=new Date(x,6,1).getTimezoneOffset();var z=Math.max(v,x);(k(),_)[d>>>2>>>0]=60*z,(k(),L)[m>>>2>>>0]=+(v!=x),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(x),x<v?(BA(d,B,17),BA(m,P,17)):(BA(d,P,17),BA(m,B,17))}var Ul=()=>Date.now(),ql=1;function Ll(d,m,B){if(B>>>=0,!(0<=d&&3>=d))return 28;if(d===0)d=Date.now();else{if(!ql)return 52;d=performance.timeOrigin+performance.now()}return d=Math.round(1e6*d),(k(),Ae)[B>>>3>>>0]=BigInt(d),0}var hs=[],cc=(d,m)=>{hs.length=0;for(var B;B=(k(),V)[d++>>>0];){var P=B!=105;m+=(P&=B!=112)&&m%8?4:0,hs.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 hs};function jl(d,m,B){return d>>>=0,m=cc(m>>>0,B>>>0),wg[d](...m)}function Vl(d,m,B){return d>>>=0,m=cc(m>>>0,B>>>0),wg[d](...m)}var Kl=()=>{};function Wl(d,m){return C(or(d>>>0,m>>>0))}var Zl=()=>{throw ve+=1,"unwind"};function $l(){return 4294901760}var Jl=()=>1,Xl=()=>navigator.hardwareConcurrency;function eg(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))-VA.buffer.byteLength+65535)/65536|0;try{VA.grow(P),ot();var x=1;break e}catch{}x=void 0}if(x)return!0}return!1}var cA=d=>{var m=PA(d)+1,B=lc(m);return BA(d,B,m),B},ps=(d,m)=>{(k(),_)[d>>>2>>>0]=m;var B=(k(),_)[d>>>2>>>0];(k(),_)[d+4>>>2>>>0]=(m-B)/4294967296},Pn=d=>(k(),_)[d>>>2>>>0]+4294967296*(k(),L)[d+4>>>2>>>0],pt=[],tg=(d,m)=>{pt[d>>>0]=m},IA=[],Gi=[],Nr=(d,m)=>{Gi[d]=new Promise(B=>m.finally(()=>B(d)))},se=d=>{if(d)return pt[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],or(m,d)},Y=d=>{var m=(k(),_)[d>>>2>>>0];return d=(k(),_)[d+4>>>2>>>0],m?or(m,d):d===0?"":void 0},Q=d=>{var m=Y(d+4),B=(B=(k(),_)[d+12>>>2>>>0])?se(B):"auto";if(d+=16){var P=se((k(),_)[d+4>>>2>>>0]),x=(k(),_)[d+16>>>2>>>0],v=(k(),_)[d+20>>>2>>>0];if(x){for(var z={},H=0;H<x;++H){var Z=v+24*H;z[O(Z+4)]=(k(),pe)[Z+16>>>3>>>0]}x=z}else x=void 0;d={module:P,constants:x,entryPoint:Y(d+8)}}else d=void 0;return{label:m,layout:B,compute:d}},U=(d,m)=>{function B(P,x){P=d[P],(k(),_)[m+x>>>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),ps(m+64,d.maxUniformBufferBindingSize),ps(m+72,d.maxStorageBufferBindingSize),B("maxVertexBuffers",88),ps(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"],ue=[,"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"},Se=[,"low-power","high-performance"],wt=[,"occlusion","timestamp"],Wt={undefined:1,unknown:1,destroyed:2};function DA(d,m,B,P,x,v){m=nt(m),B=nt(B),P>>>=0,x>>>=0,v>>>=0;var z=se(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(Yt,It,yn=!1){It=re+It,(It=(k(),_)[It>>>2>>>0])==4294967295||yn&&It==0||(Ze[Yt]=It)},yt=function(Yt,It){It=re+It;var yn=(k(),_)[It>>>2>>>0],jD=(k(),_)[It+4>>>2>>>0];yn==4294967295&&jD==4294967295||(Ze[Yt]=Pn(It))};var Qe=le,Ue=yt,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),yt("maxUniformBufferBindingSize",64),yt("maxStorageBufferBindingSize",72),le("maxVertexBuffers",88),yt("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)}ve+=1,Nr(m,z.requestDevice(d).then(le=>{--ve,Pt(()=>{pt[x>>>0]=le.queue,pt[P>>>0]=le,ve+=1,Nr(B,le.lost.then(yt=>{Pt(()=>{le.onuncapturederror=()=>{};var Yt=me(),It=cA(yt.message);cg(B,Wt[yt.reason],It),fe(Yt)}),--ve})),le.onuncapturederror=yt=>{var Yt=5;yt.error instanceof GPUValidationError?Yt=2:yt.error instanceof GPUOutOfMemoryError?Yt=3:yt.error instanceof GPUInternalError&&(Yt=4);var It=me();yt=cA(yt.error.message),mh(P,Yt,yt),fe(It)},"adapterInfo"in le||(le.adapterInfo=z.info),gg(m,1,P,0)})},le=>{--ve,Pt(()=>{var yt=me(),Yt=cA(le.message);gg(m,3,P,Yt),B&&cg(B,4,Yt),fe(yt)})}))}function CA(d){var m=se(d>>>=0),B=IA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete IA[d]}m.destroy()}function Ag(d,m,B){B>>>=0;var P=se(d>>>=0);B==4294967295&&(B=void 0);try{var x=P.getMappedRange(m>>>0,B)}catch{return 0}var v=mg(16,x.byteLength);return(k(),V).set(new Uint8Array(x),v>>>0),IA[d].push(()=>bA(v)),v}function rg(d,m,B){B>>>=0;var P=se(d>>>=0);B==4294967295&&(B=void 0);try{var x=P.getMappedRange(m>>>0,B)}catch{return 0}var v=mg(16,x.byteLength);return(k(),V).fill(0,v,x.byteLength),IA[d].push(()=>{new Uint8Array(x).set((k(),V).subarray(v>>>0,v+x.byteLength>>>0)),bA(v)}),v}function ng(d,m,B,P,x){d>>>=0,m=nt(m),B=nt(B),x>>>=0;var v=se(d);IA[d]=[],x==4294967295&&(x=void 0),ve+=1,Nr(m,v.mapAsync(B,P>>>0,x).then(()=>{--ve,Pt(()=>{ug(m,1,0)})},z=>{--ve,Pt(()=>{me();var H=cA(z.message);ug(m,z.name==="AbortError"?4:z.name==="OperationError"?3:0,H),delete IA[d]})}))}function ws(d){var m=se(d>>>=0),B=IA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete IA[d],m.unmap()}}function TI(d){delete pt[d>>>0]}function kI(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:Pn(m+24),mappedAtCreation:P},d=se(d);try{var x=d.createBuffer(m)}catch{return!1}return pt[B>>>0]=x,P&&(IA[B]=[]),!0}function xI(d,m,B,P){d>>>=0,m=nt(m),P>>>=0,B=Q(B>>>0),d=se(d),ve+=1,Nr(m,d.createComputePipelineAsync(B).then(x=>{--ve,Pt(()=>{pt[P>>>0]=x,og(m,1,P,0)})},x=>{--ve,Pt(()=>{var v=me(),z=cA(x.message);og(m,x.reason==="validation"?3:x.reason==="internal"?4:0,P,z),fe(v)})}))}function GI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=(k(),_)[m>>>2>>>0],x=(k(),L)[P+4>>>2>>>0];m={label:Y(m+4),code:""},x===2&&(m.code=O(P+8)),d=se(d).createShaderModule(m),pt[B>>>0]=d}var SI=d=>{(d=se(d)).onuncapturederror=null,d.destroy()};function YI(d,m){m=nt(m),d=se(d>>>0),ve+=1,Nr(m,d.popErrorScope().then(B=>{--ve,Pt(()=>{var P=5;B?B instanceof GPUValidationError?P=2:B instanceof GPUOutOfMemoryError?P=3:B instanceof GPUInternalError&&(P=4):P=1;var x=me(),v=B?cA(B.message):0;lg(m,1,P,v),fe(x)})},B=>{--ve,Pt(()=>{var P=me(),x=cA(B.message);lg(m,1,5,x),fe(P)})}))}function vI(d,m,B,P){if(m=nt(m),P>>>=0,B>>>=0){var x={featureLevel:ue[(k(),L)[B+4>>>2>>>0]],powerPreference:Se[(k(),L)[B+8>>>2>>>0]],forceFallbackAdapter:!!(k(),_)[B+12>>>2>>>0]};(d=(k(),_)[B>>>2>>>0])!==0&&(k(),x.De=!!(k(),_)[d+8>>>2>>>0])}"gpu"in navigator?(ve+=1,Nr(m,navigator.gpu.requestAdapter(x).then(v=>{--ve,Pt(()=>{if(v)pt[P>>>0]=v,Bs(m,1,P,0);else{var z=me(),H=cA("WebGPU not available on this browser (requestAdapter returned null)");Bs(m,3,P,H),fe(z)}})},v=>{--ve,Pt(()=>{var z=me(),H=cA(v.message);Bs(m,4,P,H),fe(z)})}))):(x=me(),d=cA("WebGPU not available on this browser (navigator.gpu is not available)"),Bs(m,3,P,d),fe(x))}function OI(d,m,B){return d>>>=0,m>>>=0,B>>>=0,ls(async()=>{var P=[];if(B){var x=(k(),L)[B>>>2>>>0];P.length=m+1,P[m]=new Promise(H=>setTimeout(H,x,0))}else P.length=m;for(var v=0;v<m;++v){var z=Pn(d+8*v);if(!(z in Gi))return z;P[v]=Gi[z]}return P=await Promise.race(P),delete Gi[P],P})}var ig,ag={},Wm=()=>{if(!ig){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 ag)ag[d]===void 0?delete m[d]:m[d]=ag[d];var B=[];for(d in m)B.push(`${d}=${m[d]}`);ig=B}return ig};function Zm(d,m){if(n)return Le(19,1,d,m);d>>>=0,m>>>=0;var B,P=0,x=0;for(B of Wm()){var v=m+P;(k(),_)[d+x>>>2>>>0]=v,P+=BA(B,v,1/0)+1,x+=4}return 0}function $m(d,m){if(n)return Le(20,1,d,m);d>>>=0,m>>>=0;var B=Wm();for(var P of((k(),_)[d>>>2>>>0]=B.length,d=0,B))d+=PA(P)+1;return(k(),_)[m>>>2>>>0]=d,0}function Jm(d){return n?Le(21,1,d):52}function Xm(d,m,B,P){return n?Le(22,1,d,m,B,P):52}function eh(d,m,B,P){return n?Le(23,1,d,m,B,P):70}var _I=[null,[],[]];function th(d,m,B,P){if(n)return Le(24,1,d,m,B,P);m>>>=0,B>>>=0,P>>>=0;for(var x=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=_I[re];Qe===0||Qe===10?((re===1?E:C)(La(Ue)),Ue.length=0):Ue.push(Qe)}x+=H}return(k(),_)[P>>>2>>>0]=x,0}function MI(d){return d>>>0}function RI(d,m){return U(se(d>>>0).limits,m>>>0),1}function QI(d,m){return se(d>>>0).features.has(Ie[m])}function FI(d){return BigInt(se(d>>>0).size)}function zI(d){return BigInt(se(d>>>0).usage)}function NI(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:se((k(),_)[m+4>>>2>>>0]),beginningOfPassWriteIndex:(k(),_)[m+8>>>2>>>0],endOfPassWriteIndex:(k(),_)[m+12>>>2>>>0]}:void 0}}return m=se(d),d=uh(0),B=m.beginComputePass(B),pt[d>>>0]=B,d}function HI(d,m,B,P){B=nt(B),(P=nt(P))==-1&&(P=void 0),(d=se(d>>>0)).clearBuffer(se(m>>>0),B,P)}function UI(d,m,B,P,x,v){B=nt(B),x=nt(x),v=nt(v),se(d>>>0).copyBufferToBuffer(se(m>>>0),B,se(P>>>0),x,v)}function qI(d){var m=se(d>>>0);return d=oh(0),m=m.finish(),pt[d>>>0]=m,d}function LI(d,m,B,P,x,v){v=nt(v),se(d>>>0).resolveQuerySet(se(m>>>0),B,P,se(x>>>0),v)}function jI(d,m,B,P){se(d>>>0).dispatchWorkgroups(m,B,P)}function VI(d,m,B){B=nt(B),se(d>>>0).dispatchWorkgroupsIndirect(se(m>>>0),B)}function KI(d){se(d>>>0).end()}function WI(d,m,B,P,x){P>>>=0,x>>>=0,d=se(d>>>0),B=se(B>>>0),P==0?d.setBindGroup(m,B):d.setBindGroup(m,B,(k(),_),x>>>2,P)}function ZI(d,m){se(d>>>0).setPipeline(se(m>>>0))}function $I(d,m,B){se(d>>>0).Ce(se(m>>>0),B)}function JI(d,m){var B=se(d>>>0);return d=sh(0),m=B.getBindGroupLayout(m),pt[d>>>0]=m,d}function XI(d,m){function B(x){var v=(k(),_)[x+8>>>2>>>0],z=(k(),_)[x+32>>>2>>>0],H=(k(),_)[x+36>>>2>>>0],Z=0;return I(x,{327681:re=>{Z=(k(),_)[re+8>>>2>>>0]}}),v?((z=Pn(x+24))==-1&&(z=void 0),v={buffer:se(v),offset:Pn(x+16),size:z}):v=se(z||H||Z),{binding:(k(),_)[x+4>>>2>>>0],resource:v}}d>>>=0,m={label:Y(4+(m>>>=0)),layout:se((k(),_)[m+12>>>2>>>0]),entries:function(x,v){for(var z=[],H=0;H<x;++H)z.push(B(v+40*H));return z}((k(),_)[m+16>>>2>>>0],(k(),_)[m+20>>>2>>>0])},d=se(d);var P=ah(0);return tg(P,d.createBindGroup(m)),P}function eD(d,m){var B;return d>>>=0,(m>>>=0)&&(B={label:Y(m+4)}),m=se(d),d=ch(0),B=m.createCommandEncoder(B),pt[d>>>0]=B,d}function tD(d,m){d>>>=0,m>>>=0,m={type:wt[(k(),L)[m+12>>>2>>>0]],count:(k(),_)[m+16>>>2>>>0]};var B=se(d);return d=lh(0),m=B.createQuerySet(m),pt[d>>>0]=m,d}function AD(d,m){d=se(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=PA(B)+1,x=Si(P);return x&&BA(B,x,P),B=x,P=PA(d.vendor),T(m+4,B,P),B+=P,P=PA(d.architecture),T(m+12,B,P),B+=P,P=PA(d.device),T(m+20,B,P),T(m+28,B+P,PA(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 rD={"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 nD(d,m){m>>>=0;var B=se(d>>>0);d=Si(4*B.features.size);var P=0,x=0;for(let v of B.features)0<=(B=rD[v])&&((k(),L)[d+P>>>2>>>0]=B,P+=4,x++);(k(),_)[m+4>>>2>>>0]=d,(k(),_)[m>>>2>>>0]=x}function iD(d,m){return U(se(d>>>0).limits,m>>>0),1}function aD(d,m){se(d>>>0).pushErrorScope(X[m])}function sD(d,m,B){m>>>=0,B>>>=0,d=se(d>>>0),m=Array.from((k(),L).subarray(B>>>2>>>0,B+4*m>>>2>>>0),P=>se(P)),d.submit(m)}function oD(d,m,B,P,x){B=nt(B),P>>>=0,x>>>=0,d=se(d>>>0),m=se(m>>>0),P=(k(),V).subarray(P>>>0,P+x>>>0),d.writeBuffer(m,B,P,0,x)}n||function(){for(var d=e.numThreads-1;d--;)Te();Be.push(async()=>{var m=async function(){if(!n)return Promise.all(xt.map(za))}();oe++,await m,--oe==0&&de&&(m=de,de=null,m())})}(),n||(VA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),ot()),e.wasmBinary&&(u=e.wasmBinary),e.stackSave=()=>me(),e.stackRestore=d=>fe(d),e.stackAlloc=d=>lc(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:ct(`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:ct(`invalid type for getValue: ${m}`)}},e.UTF8ToString=or,e.stringToUTF8=BA,e.lengthBytesUTF8=PA;var Ah,rh,sg,uc,bA,Si,nh,ih,ah,sh,oh,ch,uh,lh,gh,dh,fh,og,cg,ug,lg,Bs,gg,mh,dg,hh,ph,wh,fg,Bh,Ph,mg,Ye,Ps,yh,fe,lc,me,Ih,hg,Dh,Ch,bh,pg,Eh,Th,kh,xh,Gh,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,cp,lr,cD=[sA,_r,Fo,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,ts,No,Ho,yi,ac,sc,oc,Zm,$m,Jm,Xm,eh,th],wg={979436:(d,m,B,P,x)=>{if(e===void 0||!e.Uc)return 1;if((d=or(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(x){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 uD(d,m,B,P){var x=me();try{return vh(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function lD(d,m,B){var P=me();try{return Gh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;Ye(1,0)}}function gD(d){var m=me();try{Eh(d)}catch(B){if(fe(m),B!==B+0)throw B;Ye(1,0)}}function dD(d,m){var B=me();try{return pg(d,m)}catch(P){if(fe(B),P!==P+0)throw P;Ye(1,0)}}function fD(d,m,B){var P=me();try{bh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;Ye(1,0)}}function mD(d,m){var B=me();try{Oh(d,m)}catch(P){if(fe(B),P!==P+0)throw P;Ye(1,0)}}function hD(d,m,B,P,x,v,z){var H=me();try{return xh(d,m,B,P,x,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;Ye(1,0)}}function pD(d,m,B,P,x,v){var z=me();try{Th(d,m,B,P,x,v)}catch(H){if(fe(z),H!==H+0)throw H;Ye(1,0)}}function wD(d,m,B,P){var x=me();try{Yh(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function BD(d,m,B,P,x,v,z){var H=me();try{Mh(d,m,B,P,x,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;Ye(1,0)}}function PD(d,m,B,P,x,v,z){var H=me();try{Rh(d,m,B,P,x,v,z)}catch(Z){if(fe(H),Z!==Z+0)throw Z;Ye(1,0)}}function yD(d,m,B,P,x,v,z,H){var Z=me();try{jh(d,m,B,P,x,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;Ye(1,0)}}function ID(d,m,B,P,x,v,z,H,Z,re,Qe,Ue){var Ze=me();try{Qh(d,m,B,P,x,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;Ye(1,0)}}function DD(d,m,B,P,x){var v=me();try{return _h(d,m,B,P,x)}catch(z){if(fe(v),z!==z+0)throw z;Ye(1,0)}}function CD(d,m,B,P,x){var v=me();try{kh(d,m,B,P,x)}catch(z){if(fe(v),z!==z+0)throw z;Ye(1,0)}}function bD(d,m,B,P,x,v,z,H){var Z=me();try{Sh(d,m,B,P,x,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;Ye(1,0)}}function ED(d){var m=me();try{return Vh(d)}catch(B){if(fe(m),B!==B+0)throw B;Ye(1,0)}}function TD(d,m,B){var P=me();try{return Kh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;Ye(1,0)}}function kD(d,m){var B=me();try{return ip(d,m)}catch(P){if(fe(B),P!==P+0)throw P;return Ye(1,0),0n}}function xD(d){var m=me();try{return Fh(d)}catch(B){if(fe(m),B!==B+0)throw B;return Ye(1,0),0n}}function GD(d,m,B,P){var x=me();try{return Wh(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function SD(d,m,B,P,x){var v=me();try{return Zh(d,m,B,P,x)}catch(z){if(fe(v),z!==z+0)throw z;Ye(1,0)}}function YD(d,m,B,P,x,v){var z=me();try{return $h(d,m,B,P,x,v)}catch(H){if(fe(z),H!==H+0)throw H;Ye(1,0)}}function vD(d,m,B,P,x,v){var z=me();try{return qh(d,m,B,P,x,v)}catch(H){if(fe(z),H!==H+0)throw H;Ye(1,0)}}function OD(d,m,B,P,x,v){var z=me();try{return Jh(d,m,B,P,x,v)}catch(H){if(fe(z),H!==H+0)throw H;Ye(1,0)}}function _D(d,m,B,P,x,v,z,H){var Z=me();try{return Lh(d,m,B,P,x,v,z,H)}catch(re){if(fe(Z),re!==re+0)throw re;Ye(1,0)}}function MD(d,m,B,P,x){var v=me();try{return Xh(d,m,B,P,x)}catch(z){if(fe(v),z!==z+0)throw z;return Ye(1,0),0n}}function RD(d,m,B,P){var x=me();try{return ep(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function QD(d,m,B,P){var x=me();try{return tp(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function FD(d,m,B,P,x,v,z,H,Z,re,Qe,Ue){var Ze=me();try{return Ap(d,m,B,P,x,v,z,H,Z,re,Qe,Ue)}catch(le){if(fe(Ze),le!==le+0)throw le;Ye(1,0)}}function zD(d,m,B,P,x,v,z,H,Z,re,Qe){var Ue=me();try{rp(d,m,B,P,x,v,z,H,Z,re,Qe)}catch(Ze){if(fe(Ue),Ze!==Ze+0)throw Ze;Ye(1,0)}}function ND(d,m,B,P,x,v,z,H,Z,re,Qe,Ue,Ze,le,yt,Yt){var It=me();try{np(d,m,B,P,x,v,z,H,Z,re,Qe,Ue,Ze,le,yt,Yt)}catch(yn){if(fe(It),yn!==yn+0)throw yn;Ye(1,0)}}function HD(d,m,B){var P=me();try{return Nh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;return Ye(1,0),0n}}function UD(d,m,B){var P=me();try{return zh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;Ye(1,0)}}function qD(d,m,B){var P=me();try{return Hh(d,m,B)}catch(x){if(fe(P),x!==x+0)throw x;Ye(1,0)}}function LD(d,m,B,P){var x=me();try{Uh(d,m,B,P)}catch(v){if(fe(x),v!==v+0)throw v;Ye(1,0)}}function gc(){if(0<oe)de=gc;else if(n)p?.(e),rt();else{for(var d=Be;0<d.length;)d.shift()(e);0<oe?de=gc:(e.calledRun=!0,G||(rt(),p?.(e)))}}return n||(lr=await qe(),gc()),e.PTR_SIZE=4,e.webgpuInit=d=>{let m=new WeakMap,B,P,x=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=fh(Ue);return Ue=dh(Ue,Ze),pt[Ze>>>0]=Qe.queue,pt[Ue>>>0]=Qe,Ue})(H,Z=ih(0));Z=[x++,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=sg(Z);v.set(H,re),Z===0&&d(B??se(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"||ct(),Ue=gh(Ue),pt[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&&(nh(Z[0]),delete H[z])},e.webgpuGetBuffer=H=>se(H),e.webgpuCreateDownloader=(H,Z,re)=>{if((re=v.get(re))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let Qe=se(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=se(H),!B){var Ze=sg(P);B=se(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,x,v)=>m.registerMLTensor(B,P,x,v),e.webnnCreateMLContext=B=>m.createMLContext(B),e.webnnRegisterMLConstant=(B,P,x,v,z,H)=>m.registerMLConstant(B,P,x,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 qA,Em,Wk,Zk,$k,Jk,Oe,So,Xk,ol,Co,on,si,t0,k0,x0,ex,G0,tx,em,Et,S0,st,Ax,Y0,v0,rx,Al,O0,_0,M0,R0,Q0,nx,ii,xo,tm,F0,ix,z0,N0,ax,aA,Tm,LA,H0,cl,Am,oi,ci,gn,dn,U0,q0,sx,km,ox,cx,ux,lx,gx,j0,ui,xm,V0,rm,nm,K0,dx,W0,Z0,r0,fx,im,ym,n0,nA,$0,rl,i0,a0,am,s0,sm,J0,om,X0,Gm,cm,nl,bo,um,o0,c0,u0,Sm,Ve,li,iA,ul,He,Ym,eI,mx,l0,g0,d0,va,cn,f0,tI,hx,ai,sl,_a,Go,ll,vm,Om,Im,Ma,_m,AI,rI,px,m0,h0,p0,w0,nI,B0,St,iI,lm,Dm,gm,P0,dm,y0,fm,mm,hm,I0,aI,wx,sI,Eo,D0,oI,Bx,C0,Mm,Rm,un,b0,pm,gl,Qm,Fm,wm,zm,Nm,Hm,cI,ln,mA,Oa,To,ko,il,Bm,al,ri,ni,E0,uI,lI,gI,dI,fI,mI,hI,pI,Pm,T0,wI,Px,BI,Cm,bm,PI,yx,Ix,Dx,II=KD(()=>{qA={};Em=Object.defineProperty,Wk=Object.getOwnPropertyDescriptor,Zk=Object.getOwnPropertyNames,$k=Object.prototype.hasOwnProperty,Jk=(t=>typeof Ft<"u"?Ft:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof Ft<"u"?Ft:e)[A]}):t)(function(t){if(typeof Ft<"u")return Ft.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),Oe=(t,e)=>()=>(t&&(e=t(t=0)),e),So=(t,e)=>{for(var A in e)Em(t,A,{get:e[A],enumerable:!0})},Xk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Zk(e))!$k.call(t,n)&&n!==A&&Em(t,n,{get:()=>e[n],enumerable:!(r=Wk(e,n))||r.enumerable});return t},ol=t=>Xk(Em({},"__esModule",{value:!0}),t),x0=Oe(()=>{"use strict";Co=new Map,on=[],si=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=Co.get(t);if(r===void 0)Co.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=on.indexOf(t);n!==-1&&on.splice(n,1);for(let a=0;a<on.length;a++)if(Co.get(on[a]).priority<=A){on.splice(a,0,t);return}on.push(t)}return}throw new TypeError("not a valid backend")},t0=async t=>{let e=Co.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}}},k0=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?on:A,n,a=[],i=new Set;for(let o of r){let c=await t0(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)})]}}),ex=Oe(()=>{"use strict";x0()}),tx=Oe(()=>{"use strict";G0="1.26.0"}),S0=Oe(()=>{"use strict";tx(),em="warning",Et={wasm:{},webgl:{},webgpu:{},versions:{common:G0},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}`);em=t}},get logLevel(){return em}},Object.defineProperty(Et,"logLevel",{enumerable:!0})}),Ax=Oe(()=>{"use strict";S0(),st=Et}),rx=Oe(()=>{"use strict";Y0=(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 l=a*n,u=0,g=l,f=l*2,p=-1;i==="RGBA"?(u=0,g=l,f=l*2,p=l*3):i==="RGB"?(u=0,g=l,f=l*2):i==="RBG"&&(u=0,f=l,g=l*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[g++]-c[1])*o[1],E=(t.data[f++]-c[2])*o[2],C=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+E+","+C+")",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")},v0=(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,l;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?l=[0,0,0,0]:typeof o.bias=="number"?l=[o.bias,o.bias,o.bias,o.bias]:(l=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(l[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 g=4,f=0,p=1,h=2,y=3,w=0,D=u,E=u*2,C=-1;s==="RGBA"?(w=0,D=u,E=u*2,C=u*3):s==="RGB"?(w=0,D=u,E=u*2):s==="RBG"&&(w=0,E=u,D=u*2),r=A.createImageData(n,a);for(let G=0;G<a*n;f+=g,p+=g,h+=g,y+=g,G++)r.data[f]=(t.data[w++]-l[0])*c[0],r.data[p]=(t.data[D++]-l[1])*c[1],r.data[h]=(t.data[E++]-l[2])*c[2],r.data[y]=C===-1?255:(t.data[C++]-l[3])*c[3]}else throw new Error("Can not access image data");return r}}),nx=Oe(()=>{"use strict";Tm(),Al=(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,l=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,g=0,f=1,p=2,h=3,y=0,w=c,D=c*2,E=-1;s==="RGB"&&(u=3,g=0,f=1,p=2,h=-1),o==="RGBA"?E=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let C=0;C<c;C++,g+=u,p+=u,f+=u,h+=u)l[y++]=(t[g]+i[0])/a[0],l[w++]=(t[f]+i[1])/a[1],l[D++]=(t[p]+i[2])/a[2],E!==-1&&h!==-1&&(l[E++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new aA("float32",l,[1,4,A,r]):new aA("float32",l,[1,3,A,r])},O0=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=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(A){let l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(g=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=g,s.width=f}else s.tensorFormat="RGBA",s.height=g,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,g).data}else throw new Error("Can not access image data")}else if(r){let l,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(l=e.resizedHeight,u=e.resizedWidth):(l=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=l,s.width=u,e!==void 0){let g=o();g.width=u,g.height=l;let f=c(g);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,l).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 l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;return u.drawImage(t,0,0,f,g),i=u.getImageData(0,0,f,g).data,s.height=g,s.width=f,Al(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,u)=>{let g=o(),f=c(g);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{g.width=p.width,g.height=p.height,f.drawImage(p,0,0,g.width,g.height);let h=f.getImageData(0,0,g.width,g.height);s.height=g.height,s.width=g.width,l(Al(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return Al(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},_0=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new aA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},M0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new aA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},R0=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new aA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},Q0=(t,e,A)=>new aA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),ix=Oe(()=>{"use strict";ii=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),xo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),tm=!1,F0=()=>{if(!tm){tm=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(ii.set("int64",BigInt64Array),xo.set(BigInt64Array,"int64")),e&&(ii.set("uint64",BigUint64Array),xo.set(BigUint64Array,"uint64")),r?(ii.set("float16",A),xo.set(A,"float16")):ii.set("float16",Uint16Array)}}}),ax=Oe(()=>{"use strict";Tm(),z0=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},N0=(t,e)=>{switch(t.location){case"cpu":return new aA(t.type,t.data,e);case"cpu-pinned":return new aA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new aA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new aA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new aA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),Tm=Oe(()=>{"use strict";rx(),nx(),ix(),ax(),aA=class{constructor(t,e,A){F0();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=ii.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=ii.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=xo.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=z0(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 O0(t,e)}static fromTexture(t,e){return _0(t,e)}static fromGpuBuffer(t,e){return M0(t,e)}static fromMLTensor(t,e){return R0(t,e)}static fromPinnedBuffer(t,e,A){return Q0(t,e,A)}toDataURL(t){return Y0(this,t)}toImageData(t){return v0(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 N0(this,t)}}}),H0=Oe(()=>{"use strict";Tm(),LA=aA}),U0=Oe(()=>{"use strict";S0(),cl=(t,e)=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeStamp(`${t}::ORT::${e}`)},Am=(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}`),cl("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},oi=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||Am("BEGIN",t)},ci=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||Am("END",t)},gn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.time(`ORT::${t}`)},dn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeEnd(`ORT::${t}`)}}),sx=Oe(()=>{"use strict";x0(),H0(),U0(),q0=class L0{constructor(e){this.handler=e}async run(e,A,r){oi(),gn("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof LA||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 LA)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,l=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(l.indexOf(u)!==-1){let g=A[u];(g===null||g instanceof LA)&&(c=!0,i=!1,n[u]=g)}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 l=s[c];l instanceof LA?o[c]=l:o[c]=new LA(l.type,l.data,l.dims)}return dn("InferenceSession.run"),ci(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){oi(),gn("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 l=e,u=0,g=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>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(g=e.byteLength-u,typeof r=="number"){if(g=r,!Number.isSafeInteger(g))throw new RangeError("'byteLength' must be an integer.");if(g<=0||u+g>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.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(l,u,g)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await k0(i),c=await s.createInferenceSessionHandler(a,o);return dn("InferenceSession.create"),ci(),new L0(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}}}),ox=Oe(()=>{"use strict";sx(),km=q0}),cx=Oe(()=>{"use strict"}),ux=Oe(()=>{"use strict"}),lx=Oe(()=>{"use strict"}),gx=Oe(()=>{"use strict"}),j0={};So(j0,{InferenceSession:()=>km,TRACE:()=>cl,TRACE_EVENT_BEGIN:()=>gn,TRACE_EVENT_END:()=>dn,TRACE_FUNC_BEGIN:()=>oi,TRACE_FUNC_END:()=>ci,Tensor:()=>LA,env:()=>st,registerBackend:()=>si});ui=Oe(()=>{"use strict";ex(),Ax(),ox(),H0(),cx(),ux(),U0(),lx(),gx()}),xm=Oe(()=>{"use strict"}),V0={};So(V0,{default:()=>K0});dx=Oe(()=>{"use strict";cI(),li(),Gm(),rm="ort-wasm-proxy-worker",nm=globalThis.self?.name===rm,nm&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":Sm(A.wasm).then(()=>{Mm(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;Rm(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=gl(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Qm(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Fm(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;zm(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},Hm([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Nm(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),K0=nm?null:t=>new Worker(t??nA,{type:"module",name:rm})}),W0={};So(W0,{default:()=>Z0});fx=Oe(()=>{"use strict";Z0=A0,r0=globalThis.self?.name?.startsWith("em-pthread"),r0&&A0()}),Gm=Oe(()=>{"use strict";xm(),im=typeof location>"u"?void 0:location.origin,ym=qA.url>"file:"&&qA.url<"file;",n0=()=>{if(ym){let t=URL;return new URL(new t("ort.webgpu.bundle.min.mjs",qA.url).href,im).href}return qA.url},nA=n0(),$0=()=>{if(nA&&!nA.startsWith("blob:"))return nA.substring(0,nA.lastIndexOf("/")+1)},rl=(t,e)=>{try{let A=e??nA;return(A?new URL(t,A):new URL(t)).origin===im}catch{return!1}},i0=(t,e)=>{let A=e??nA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},a0=(t,e)=>`${e??"./"}${t}`,am=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},s0=async t=>(await import(t)).default,sm=(dx(),ol(V0)).default,J0=async()=>{if(!nA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(rl(nA))return[void 0,sm()];let t=await am(nA);return[t,sm(t)]},om=(fx(),ol(W0)).default,X0=async(t,e,A,r)=>{let n=om&&!(t||e);if(n)if(nA)n=rl(nA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,om];{let a="ort-wasm-simd-threaded.asyncify.mjs",i=t??i0(a,e),s=A&&i&&!rl(i,e),o=s?await am(i):i??a0(a,e);return[s?o:void 0,await s0(o)]}}}),li=Oe(()=>{"use strict";Gm(),nl=!1,bo=!1,um=!1,o0=()=>{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}},c0=()=>{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}},u0=()=>{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}},Sm=async t=>{if(nl)return Promise.resolve();if(bo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(um)throw new Error("previous call to 'initializeWebAssembly()' failed.");bo=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!u0())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!c0())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=o0();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,l=t.wasmBinary,[u,g]=await X0(s,a,A>1,!!l||!!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(l)w.wasmBinary=l,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=$0();D&&(w.locateFile=E=>D+E)}g(w).then(D=>{bo=!1,nl=!0,cm=D,h(),u&&URL.revokeObjectURL(u)},D=>{bo=!1,um=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},Ve=()=>{if(nl&&cm)return cm;throw new Error("WebAssembly is not initialized yet.")}}),Ym=Oe(()=>{"use strict";li(),iA=(t,e)=>{let A=Ve(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},ul=(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")ul(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=Ve(),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)}}}),mx=Oe(()=>{"use strict";li(),Ym(),eI=t=>{let e=Ve(),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=iA(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&&ul(t.extra,"",new WeakSet,(i,s)=>{let o=iA(i,r),c=iA(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}}}),hx=Oe(()=>{"use strict";li(),Ym(),l0=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}`)}},g0=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},d0=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)},va=(t,e,A,r)=>{let n=iA(e,r),a=iA(A,r);Ve()._OrtAddSessionConfigEntry(t,n,a)!==0&&He(`Can't set a session config entry: ${e} - ${A}.`)},cn=(t,e,A,r)=>{let n=iA(e,r),a=iA(A,r);t.push([n,a])},f0=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",va(t,"session.disable_quant_qdq","1",A),va(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&va(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&&cn(i,"enableGraphCapture","1",A),typeof f.preferredLayout=="string"&&cn(i,"preferredLayout",f.preferredLayout,A),f.forceCpuNodeNames){let h=Array.isArray(f.forceCpuNodeNames)?f.forceCpuNodeNames:[f.forceCpuNodeNames];cn(i,"forceCpuNodeNames",h.join(`
11
- `),A)}f.validationMode&&cn(i,"validationMode",f.validationMode,A)}let g=Ve().webgpuRegisterDevice(u);if(g){let[f,p,h]=g;cn(i,"deviceId",f.toString(),A),cn(i,"webgpuInstance",p.toString(),A),cn(i,"webgpuDevice",h.toString(),A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=iA(a,A),o=i.length,c=0,l=0;if(o>0){c=Ve()._malloc(o*Ve().PTR_SIZE),A.push(c),l=Ve()._malloc(o*Ve().PTR_SIZE),A.push(l);for(let u=0;u<o;u++)Ve().setValue(c+u*Ve().PTR_SIZE,i[u][0],"*"),Ve().setValue(l+u*Ve().PTR_SIZE,i[u][1],"*")}await Ve()._OrtAppendExecutionProvider(t,s,c,l,o)!==0&&He(`Can't append execution provider: ${a}.`)}},tI=async t=>{let e=Ve(),A=0,r=[],n=t||{};d0(n);try{let a=l0(n.graphOptimizationLevel??"all"),i=g0(n.executionMode??"sequential"),s=typeof n.logId=="string"?iA(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 l=typeof n.optimizedModelFilePath=="string"?iA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,l),A===0&&He("Can't create session options."),n.executionProviders&&await f0(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);va(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,g]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof g!="number"||!Number.isInteger(g)||g<0)throw new Error(`free dimension override value must be a non-negative integer: ${g}`);let f=iA(u,r);e._OrtAddFreeDimensionOverride(A,f,g)!==0&&He(`Can't set a free dimension override: ${u} - ${g}.`)}return n.extra!==void 0&&ul(n.extra,"",new WeakSet,(u,g)=>{va(A,u,g,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}}}),Ma=Oe(()=>{"use strict";ai=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}`)}},sl=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}`)}},_a=(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}`)}},ll=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}`)}},vm=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Om=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Im=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}`)}}}),AI=Oe(()=>{"use strict";xm(),_m=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)}}),px=Oe(()=>{"use strict";Ma(),rI=(t,e)=>new(Go(e))(t)}),iI=Oe(()=>{"use strict";Ma(),m0=["V","I","W","E","F"],h0=(t,e)=>{console.log(`[${m0[t]},${new Date().toISOString()}]${e}`)},nI=(t,e)=>{p0=t,w0=e},B0=(t,e)=>{let A=ll(t),r=ll(p0);A>=r&&h0(A,typeof e=="function"?e():e)},St=(...t)=>{w0&&B0(...t)}}),wx=Oe(()=>{"use strict";Ma(),iI(),lm=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),Dm=(t,e)=>{if(e==="int32")return t;let A=lm.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}`)}},P0=1,dm=()=>P0++,y0=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),fm=(t,e)=>{let A=lm.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},mm=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 fm(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}},hm=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=y0.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!==fm(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=Dm(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()}},I0=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=dm();return this.tensorTrackersById.set(t,new hm(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=dm(),i=new mm({sessionId:t,context:n,tensor:e,dataType:A,shape:r});return this.tensorTrackersById.set(a,new hm(this,i)),this.externalTensors.add(i),a}async getCachedTensor(t,e,A,r,n,a,i){let s=this.getMLContext(t);for(let[c,l]of this.freeTensors.entries())if(l.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 mm({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 I0(...t)}),sI={};So(sI,{WebNNBackend:()=>oI});Bx=Oe(()=>{"use strict";Ma(),li(),px(),wx(),iI(),Eo=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),D0=(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])},oI=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,nI(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=>D0(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=Eo.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=Eo.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(!Ve().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 rI(A,e)}}registerMLTensor(t,e,A,r){let n=Eo.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,l;switch(n.dataType){case"float32":l=new Float32Array(c);break;case"float16":l=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":l=new Int32Array(c);break;case"uint32":l=new Uint32Array(c);break;case"int64":if(i){let u=Dm(new Uint8Array(c),"int64");l=new Int32Array(u.buffer),n.dataType="int32"}else l=new BigInt64Array(c);break;case"uint64":l=new BigUint64Array(c);break;case"int8":l=new Int8Array(c);break;case"int4":case"uint4":case"uint8":l=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,l)}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=Eo.get(ai(e)),n=this.mlOpSupportLimitsBySessionId.get(t);return typeof r>"u"?!1:A?!!n?.input.dataTypes.includes(r):!!n?.output.dataTypes.includes(r)}flush(){}}}),cI=Oe(()=>{"use strict";ui(),mx(),hx(),Ma(),li(),Ym(),AI(),C0=(t,e)=>{Ve()._OrtInit(t,e)!==0&&He("Can't initialize onnxruntime.")},Mm=async t=>{C0(t.wasm.numThreads,ll(t.logLevel))},Rm=async(t,e)=>{Ve().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"&&Ve().webgpuInit(r=>{t.webgpu.device=r}),e==="webnn"){let r=new(Bx(),ol(sI)).WebNNBackend(t);Ve().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])}},un=new Map,b0=t=>{let e=Ve(),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)}},pm=(t,e)=>{let A=Ve(),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],l=[];for(let u=0;u<c;u++){let g=Number(A.getValue(n+8+u*a,"*"));l.push(g!==0?A.UTF8ToString(g):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,l]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},gl=t=>{let e=Ve(),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]},Qm=async(t,e)=>{let A,r,n=Ve();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=gl(t);let a=0,i=0,s=0,o=[],c=[],l=[];try{if([i,o]=await tI(e),e?.externalData&&n.mountExternalData){let C=[];for(let G of e.externalData){let S=typeof G=="string"?G:G.path;C.push(_m(typeof G=="string"?G:G.data).then(k=>{n.mountExternalData(S,k)}))}await Promise.all(C)}for(let C of e?.executionProviders??[])if((typeof C=="string"?C:C.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof C!="string"){let G=C,S=G?.context,k=G?.gpuDevice,M=G?.deviceType,R=G?.powerPreference;S?n.currentContext=S:k?n.currentContext=await n.webnnCreateMLContext(k):n.currentContext=await n.webnnCreateMLContext({deviceType:M,powerPreference:R})}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,g]=b0(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let C=0;C<u;C++){let[G,S,k]=pm(a,C);G===0&&He("Can't get an input name."),c.push(G);let M=n.UTF8ToString(G);p.push(M),y.push(S===0?{name:M,isTensor:!1}:{name:M,isTensor:!0,type:sl(S),shape:k})}for(let C=0;C<g;C++){let[G,S,k]=pm(a,C+u);G===0&&He("Can't get an output name."),l.push(G);let M=n.UTF8ToString(G);h.push(M),w.push(S===0?{name:M,isTensor:!1}:{name:M,isTensor:!0,type:sl(S),shape:k});{if(f&&e?.preferredOutputLocation===void 0){D.push("gpu-buffer");continue}let R=typeof e?.preferredOutputLocation=="string"?e.preferredOutputLocation:e?.preferredOutputLocation?.[M]??"cpu",N=n.webnnIsGraphOutput;if(R==="cpu"&&N&&N(a,M)){D.push("ml-tensor-cpu-output");continue}if(R!=="cpu"&&R!=="cpu-pinned"&&R!=="gpu-buffer"&&R!=="ml-tensor")throw new Error(`Not supported preferred output location: ${R}.`);if(f&&R!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${R}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);D.push(R)}}let E=null;return D.some(C=>C==="gpu-buffer"||C==="ml-tensor"||C==="ml-tensor-cpu-output")&&(s=n._OrtCreateBinding(a),s===0&&He("Can't create IO binding."),E={handle:s,outputPreferredLocations:D,outputPreferredLocationsEncoded:D.map(C=>C==="ml-tensor-cpu-output"?"ml-tensor":C).map(C=>Im(C))}),un.set(a,[a,c,l,E,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(g=>n._OrtFree(g)),l.forEach(g=>n._OrtFree(g)),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?.()}},Fm=t=>{let e=Ve(),A=un.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."),un.delete(t)},wm=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=Ve(),o=s.PTR_SIZE,c=t[0],l=t[1],u=t[3],g=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=_a(ai(c),l);{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=_a(ai(c),l);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,ai(c),l)}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,iA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,E=s.webnnIsGraphOutput;if(c!=="string"&&D&&E){let C=s.UTF8ToString(n);if(D(r,C)||E(r,C)){let G=ai(c);p=_a(G,l),g="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 M=await S(r,G,l);k(M,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=M}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*l.length);try{l.forEach((D,E)=>s.setValue(y+E*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(ai(c),f,p,y,l.length,Im(g));w===0&&He(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},zm=async(t,e,A,r,n,a)=>{let i=Ve(),s=i.PTR_SIZE,o=un.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],l=o[1],u=o[2],g=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],E=[],C=[],G=[],S=[],k=i.stackSave(),M=i.stackAlloc(h*s),R=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=eI(a),gn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await wm(A[_],E,G,t,l[e[_]],e[_],f);for(let _=0;_<y;_++)await wm(n[_],C,G,t,u[r[_]],h+r[_],f);dn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(M+_*s,E[_],"*"),i.setValue(R+_*s,l[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,C[_],"*"),i.setValue(V+_*s,u[r[_]],"*");if(g&&!p){let{handle:_,outputPreferredLocations:W,outputPreferredLocationsEncoded:pe}=g;if(l.length!==h)throw new Error(`input count from feeds (${h}) is expected to be always equal to model's input count (${l.length}).`);gn("wasm bindInputsOutputs");for(let Ae=0;Ae<h;Ae++){let De=e[Ae];await i._OrtBindInput(_,l[De],E[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(C[Ae]),i._OrtBindOutput(_,u[De],C[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}.`)}dn("wasm bindInputsOutputs"),un.set(t,[c,l,u,g,f,!0])}i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;g?F=await i._OrtRunWithBinding(c,g.handle,y,N,w):F=await i._OrtRun(c,R,M,h,V,y,N,w),F!==0&&He("failed to call OrtRun().");let K=[],L=[];gn("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===C[_]||S.includes(C[_])){K.push(n[_]),W!==C[_]&&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 ot=s===4?"i32":"i64",rt=Number(i.getValue(Ae,ot));we=i.getValue(Ae+s,"*");let ct=i.getValue(Ae+s*2,"*"),Mt=Number(i.getValue(Ae+s*3,ot)),qe=[];for(let Be=0;Be<Mt;Be++)qe.push(Number(i.getValue(ct+Be*s,ot)));i._OrtFree(ct)!==0&&He("Can't free memory for tensor dims.");let Ne=qe.reduce((Be,oe)=>Be*oe,1);ae=sl(rt);let ut=g?.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 oe=0;oe<Ne;oe++){let de=i.getValue(we+oe*s,"*"),kt=i.getValue(we+(oe+1)*s,"*"),ve=oe===Ne-1?void 0:kt-de;Be.push(i.UTF8ToString(de,ve))}K.push([ae,qe,Be,"cpu"])}else if(ut==="gpu-buffer"&&Ne>0){let Be=i.webgpuGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let oe=Be(we),de=_a(rt,Ne);if(de===void 0||!vm(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0;{i.webgpuRegisterBuffer(oe,t,we);let kt=i.webgpuCreateDownloader(oe,de,t);K.push([ae,qe,{gpuBuffer:oe,download:async()=>{let ve=await kt();return new(Go(ae))(ve)},dispose:()=>{i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.")}},"gpu-buffer"])}}else if(ut==="ml-tensor"&&Ne>0){let Be=i.webnnEnsureTensor,oe=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!oe)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(_a(rt,Ne)===void 0||!Om(ae))throw new Error(`Unsupported data type: ${ae}`);if(!oe(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let de=await Be(t,we,rt,qe,!1);De=!0,K.push([ae,qe,{mlTensor:de,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&Ne>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),oe=K.length;De=!0,L.push((async()=>{let de=[oe,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),de})()),K.push([ae,qe,[],"cpu"])}else{let Be=Go(ae),oe=new Be(Ne);new Uint8Array(oe.buffer,oe.byteOffset,oe.byteLength).set(i.HEAPU8.subarray(we,we+oe.byteLength)),K.push([ae,qe,oe,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}g&&!f&&(i._OrtClearBoundOutputs(g.handle)!==0&&He("Can't clear bound outputs."),un.set(t,[c,l,u,g,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return dn("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)}),E.forEach(F=>i._OrtReleaseTensor(F)),C.forEach(F=>i._OrtReleaseTensor(F)),G.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Nm=t=>{let e=Ve(),A=un.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)},Hm=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),pI=Oe(()=>{"use strict";ui(),cI(),li(),Gm(),ln=()=>!!st.wasm.proxy&&typeof document<"u",Oa=!1,To=!1,ko=!1,al=new Map,ri=(t,e)=>{let A=al.get(t);A?A.push(e):al.set(t,[e])},ni=()=>{if(Oa||!To||ko||!mA)throw new Error("worker not ready")},E0=t=>{switch(t.data.type){case"init-wasm":Oa=!1,t.data.err?(ko=!0,Bm[1](t.data.err)):(To=!0,Bm[0]()),il&&(URL.revokeObjectURL(il),il=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=al.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},uI=async()=>{if(!To){if(Oa)throw new Error("multiple calls to 'initWasm()' detected.");if(ko)throw new Error("previous call to 'initWasm()' failed.");if(Oa=!0,ln())return new Promise((t,e)=>{mA?.terminate(),J0().then(([A,r])=>{try{mA=r,mA.onerror=a=>e(a),mA.onmessage=E0,Bm=[t,e];let n={type:"init-wasm",in:st};!n.in.wasm.wasmPaths&&(A||ym)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.asyncify.wasm",qA.url).href}),mA.postMessage(n),il=A}catch(n){e(n)}},e)});try{await Sm(st.wasm),await Mm(st),To=!0}catch(t){throw ko=!0,t}finally{Oa=!1}}},lI=async t=>{if(ln())return ni(),new Promise((e,A)=>{ri("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:st}};mA.postMessage(r)});await Rm(st,t)},gI=async t=>ln()?(ni(),new Promise((e,A)=>{ri("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};mA.postMessage(r,[t.buffer])})):gl(t),dI=async(t,e)=>{if(ln()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return ni(),new Promise((A,r)=>{ri("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 Qm(t,e)},fI=async t=>{if(ln())return ni(),new Promise((e,A)=>{ri("release",[e,A]);let r={type:"release",in:t};mA.postMessage(r)});Fm(t)},mI=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 ni(),new Promise((i,s)=>{ri("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};mA.postMessage(c,Hm(o))})}else return zm(t,e,A,r,n,a)},hI=async t=>{if(ln())return ni(),new Promise((e,A)=>{ri("end-profiling",[e,A]);let r={type:"end-profiling",in:t};mA.postMessage(r)});Nm(t)}}),Px=Oe(()=>{"use strict";ui(),pI(),Ma(),xm(),AI(),Pm=(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()}`)}},T0=t=>{switch(t[3]){case"cpu":return new LA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!vm(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return LA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!Om(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return LA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},wI=class{async fetchModelAndCopyToWasmMemory(t){return gI(await _m(t))}async loadModel(t,e){oi();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await dI(A,e),ci()}async dispose(){return fI(this.sessionId)}async run(t,e,A){oi();let r=[],n=[];Object.entries(t).forEach(u=>{let g=u[0],f=u[1],p=this.inputNames.indexOf(g);if(p===-1)throw new Error(`invalid input '${g}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let g=u[0],f=u[1],p=this.outputNames.indexOf(g);if(p===-1)throw new Error(`invalid output '${g}'`);a.push(f),i.push(p)});let s=r.map((u,g)=>Pm(u,()=>`input "${this.inputNames[n[g]]}"`)),o=a.map((u,g)=>u?Pm(u,()=>`output "${this.outputNames[i[g]]}"`):null),c=await mI(this.sessionId,n,s,i,o,A),l={};for(let u=0;u<c.length;u++)l[this.outputNames[i[u]]]=a[u]??T0(c[u]);return ci(),l}startProfiling(){}endProfiling(){hI(this.sessionId)}}}),BI={};So(BI,{OnnxruntimeWebAssemblyBackend:()=>bm,initializeFlags:()=>Cm,wasmBackend:()=>PI});yx=Oe(()=>{"use strict";ui(),pI(),Px(),Cm=()=>{(typeof st.wasm.initTimeout!="number"||st.wasm.initTimeout<0)&&(st.wasm.initTimeout=0);let t=st.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.`),st.wasm.simd=!1),typeof st.wasm.proxy!="boolean"&&(st.wasm.proxy=!1),typeof st.wasm.trace!="boolean"&&(st.wasm.trace=!1),typeof st.wasm.numThreads!="number"||!Number.isInteger(st.wasm.numThreads)||st.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)st.wasm.numThreads=1;else{let e=typeof navigator>"u"?Jk("node:os").cpus().length:navigator.hardwareConcurrency;st.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},bm=class{async init(t){Cm(),await uI(),await lI(t)}async createInferenceSessionHandler(t,e){let A=new wI;return await A.loadModel(t,e),A}},PI=new bm});ui();ui();ui();Ix="1.26.0",Dx=j0;{let t=(yx(),ol(BI)).wasmBackend;si("webgpu",t,5),si("webnn",t,5),si("cpu",t,10),si("wasm",t,10)}Object.defineProperty(st.versions,"web",{value:Ix,enumerable:!0})});function b(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],gr=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)},$A=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),Ge=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),mt=new TextDecoder,Nt=new TextEncoder;var Dg=t=>Object.fromEntries(Object.entries(t).map(([e,A])=>[A,e])),dr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Dn=Dg(dr),fr={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},Cn=Dg(fr),mr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},bn=Dg(mr),lp=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,ys=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),zt=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]+$/,Hr=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),dp=t=>{b(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},Cg=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),hr=(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},bg=(t,e,A)=>{let r=ye(t,A(e),A);t.splice(r+1,0,e)},gt=()=>{let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}},fp=(t,e)=>{let A=t.indexOf(e);A!==-1&&t.splice(A,1)},Eg=(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},mp=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},hp=t=>{if(!(Symbol.iterator in t)&&!(Symbol.asyncIterator in t))throw new TypeError("Argument must be an iterable or async iterable.")},Zt=t=>{throw new Error(`Unexpected value: ${t}`)},Is=(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 Tg=(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 En=(t,e,A)=>Math.max(e,Math.min(A,t)),Je="und",pr=t=>{let e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t},Ds=(t,e)=>Math.round(t/e)*e,Cs=(t,e)=>Math.round(t*e)/e,dc=(t,e)=>Math.floor(t/e)*e,kg=(t,e)=>Math.floor(t*e)/e,pp=t=>{let e=0;for(;t;)e++,t>>=1;return e},WD=/^[a-z]{3}$/,Oi=t=>WD.test(t),Ur=1e6*(1+Number.EPSILON);var wp=(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,l=o*i+n;if(l>e)return{num:A*a,den:i};if(r=a,n=i,a=c,i=l,s=1/(s-o),!isFinite(s))break}return{num:A*a,den:i}},In=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},Bg=null,Tn=()=>Bg!==null?Bg:Bg=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),Pg=null,bs=()=>Pg!==null?Pg:Pg=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),yg=null,Es=()=>yg!==null?yg:yg=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),Ig=null,Bp=()=>{if(Ig!==null)return Ig;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Ig=Number(t[1]):null},kn=(t,e)=>t!==-1?t:e,fc=(t,e,A,r)=>t<=r&&A<=e,Ts=function*(t){for(let e in t){let A=t[e];A!==void 0&&(yield{key:e,value:A})}};var ks=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 Pp=(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")},xs=t=>typeof t=="number"&&!Number.isNaN(t),JA=(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 Gn=t=>{b(Number.isInteger(t.num)),b(Number.isInteger(t.den)),b(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}},xg=(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 Gg=t=>new Promise(e=>setTimeout(e,t));var Sg=t=>Array.isArray(t)?t:[t],ZA=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 Yg=t=>t!==null&&typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype&&Object.values(t).every(e=>typeof e=="string");var EA=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.")}},yp=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 EA)&&!(e instanceof Gs)&&!Yg(e))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, Record<string, string>, or null.")}};var Dt={default:!0,primary:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},Ip=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 xe=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 XA=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],qr=[-1,1,2,3,4,5,6,8],mc=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new xe(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<XA.length&&(n=XA[r]);let a=e.readBits(4),i=null;return a>=1&&a<=7&&(i=qr[a]),{objectType:A,frequencyIndex:r,sampleRate:n,channelConfiguration:a,numberOfChannels:i}},Dp=t=>{let e=XA.indexOf(t.sampleRate),A=null;e===-1&&(e=15,A=t.sampleRate);let r=qr.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 xe(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 Ot=["avc","hevc","vp9","av1","vp8"],vt=["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"],hc=["aac","opus","mp3","vorbis","flac","ac3","eac3"],er=[...hc,...vt],Lr=["webvtt"],Ss=[{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}],Cp=[{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}],wr=[{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}],bp=[{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}],Ep=".01.01.01.01.00",Tp=".0.110.01.01.01.0",kp=(t,e,A,r)=>{if(t==="avc"){let a=Math.ceil(e/16)*Math.ceil(A/16),i=Ss.find(u=>a<=u.maxMacroblocks&&r<=u.maxBitrate)??_e(Ss),s=i?i.level:0,o="64".padStart(2,"0"),c="00",l=s.toString(16).padStart(2,"0");return`avc1.${o}${c}${l}`}else if(t==="hevc"){let n="",i="6",s=e*A,o=Cp.find(l=>s<=l.maxPictureSize&&r<=l.maxBitrate)??_e(Cp);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=wr.find(o=>a<=o.maxPictureSize&&r<=o.maxBitrate)??_e(wr);return`vp09.${n}.${i.level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let a=e*A,i=bp.find(c=>a<=c.maxPictureSize&&r<=c.maxBitrate)??_e(bp);return`av01.0.${i.level.toString().padStart(2,"0")}${i.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var xp=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,g=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)+(g<<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(b(t.avcType!==null),n){let o=new Uint8Array([n.avcProfileIndication,n.profileCompatibility,n.avcLevelIndication]);return`avc${t.avcType}.${Hr(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}.${Hr(A.subarray(1,4))}`}else if(e==="hevc"){let o,c,l,u,g,f;if(a)o=a.generalProfileSpace,c=a.generalProfileIdc,l=Cg(a.generalProfileCompatibilityFlags),u=a.generalTierFlag,g=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=Ge(A),y=h.getUint8(1);o=y>>6&3,c=y&31,l=Cg(h.getUint32(2)),u=y>>5&1,g=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+=l.toString(16).toUpperCase(),p+=".",p+=u===0?"L":"H",p+=g;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(wr).level;for(let E of wr)if(w<=E.maxPictureSize){D=E.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"),l=i.bitDepth.toString().padStart(2,"0"),u=i.chromaSubsampling.toString().padStart(2,"0"),g=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}.${l}.${u}`;return y+=`.${g}.${f}.${p}.${h}`,y.endsWith(Ep)&&(y=y.slice(0,-Ep.length)),y}else if(e==="av1"){if(!s){let E=t.width*t.height,C=_e(wr).level;for(let G of wr)if(E<=G.maxPictureSize){C=G.level;break}return`av01.0.${C.toString().padStart(2,"0")}M.08`}let o=s.profile,c=s.level.toString().padStart(2,"0"),l=s.tier?"H":"M",u=s.bitDepth.toString().padStart(2,"0"),g=s.monochrome?"1":"0",f=100*s.chromaSubsamplingX+10*s.chromaSubsamplingY+1*(s.chromaSubsamplingX&&s.chromaSubsamplingY?s.chromaSamplePosition:0),p=r?.primaries?dr[r.primaries]:1,h=r?.transfer?fr[r.transfer]:1,y=r?.matrix?mr[r.matrix]:1,w=r?.fullRange?1:0,D=`av01.${o}.${c}${l}.${u}`;return D+=`.${g}.${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(Tp)&&(D=D.slice(0,-Tp.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=mc(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&&vt.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)};var Sn=48e3,Gp=/^pcm-([usf])(\d+)(be)?$/,TA=t=>{if(b(vt.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);b(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}},jr=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,Sp=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{};var ZD=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],$D=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,JD=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,XD=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,eC=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,Yp=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(!ZD.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&&!ys(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(dr);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(fr);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(mr);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(!$D.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(!JD.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(!XD.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")&&!eC.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/.')},tC=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm","ac-3","ec-3"],vp=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(!tC.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&&!ys(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"))&&!vt.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${vt.join(", ")}).`)},Op=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 AC=[44100,48e3,32e3],rC=[-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],pc=1483304551,wc=1231971951,nC=(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,_p=(t,e,A,r)=>e===0?0:e===1?144*A/(r<<t):e===2?144*A/r:12*A/r*4,Bc=(t,e)=>t===3?e===3?21:36:e===3?13:21,vs=(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,l=n>>4&15,u=(n>>2&3)%3,g=n>>1&1,f=a>>6&3,p=a>>4&3,h=a>>3&1,y=a>>2&1,w=a&3,D=rC[i*16*4+c*16+l];if(D===-1)return{header:null,bytesAdvanced:1};let E=D*1e3,C=AC[u]>>i+s,G=nC(i,c,E,C,g);if(e!==null&&e<G)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:G,mpegVersionId:o,lowSamplingFrequency:i,layer:c,bitrate:E,frequencyIndex:u,sampleRate:C,channel:f,modeExtension:p,copyright:h,original:y,emphasis:w,audioSamplesInFrame:S},bytesAdvanced:1}};var Pc=t=>{let e=2130706432,A=0;for(;e!==0;)A>>=1,A|=t&e,e>>=8;return A},Ys;(function(t){t[t.FrameCount=1]="FrameCount",t[t.FileSize=2]="FileSize",t[t.Toc=4]="Toc"})(Ys||(Ys={}));var Vr=t=>t===3?1:2;var Yn=[48e3,44100,32e3],vg=[24e3,22050,16e3];var $t;(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"})($t||($t={}));var Ct;(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"})(Ct||(Ct={}));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})},Qp=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=Is(r,A,!1):(b(e===4),n=r.getUint32(A,!1)),A+=e,yield{offset:A,length:n},A+=n}},_g=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Qp(t,n)}else return Fi(t)},zi=t=>t&31,yc=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)},Og=new Uint8Array([0,0,0,1]),Fp=t=>{let e=t.reduce((n,a)=>n+Og.byteLength+a.byteLength,0),A=new Uint8Array(e),r=0;for(let n of t)A.set(Og,r),r+=Og.byteLength,A.set(n,r),r+=n.byteLength;return A},Ic=(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:Tg(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},zp=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Ic(t,n)}else return Fp(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===$t.SPS?e.push(o):c===$t.PPS?A.push(o):c===$t.SPS_EXT&&r.push(o)}if(e.length===0||A.length===0)return null;let n=e[0],a=_s(n);b(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}},Np=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){b(t.chromaFormat!==null),b(t.bitDepthLumaMinus8!==null),b(t.bitDepthChromaMinus8!==null),b(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)},Hp=t=>{try{let e=Ge(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 l=e.getUint8(A++),u=[];for(let f=0;f<l;f++){let p=e.getUint16(A,!1);A+=2,u.push(t.subarray(A,A+p)),A+=p}let g={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++);g.chromaFormat=f,g.bitDepthLumaMinus8=p,g.bitDepthChromaMinus8=h;let w=[];for(let D=0;D<y;D++){let E=e.getUint16(A,!1);A+=2,w.push(t.subarray(A,A+E)),A+=E}g.sequenceParameterSetExt=w}return g}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},Up={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}},_s=t=>{try{let e=new xe(yc(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=$A(e);W=(_+Ae+256)%256}_=W===0?_:W}}}ee(e);let l=ee(e);if(l===0)ee(e);else if(l===1){e.skipBits(1),$A(e),$A(e);let V=ee(e);for(let F=0;F<V;F++)$A(e)}ee(e),e.skipBits(1);let u=ee(e),g=ee(e),f=16*(u+1),p=16*(g+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 E=2,C=2,G=2,S=0,k={num:1,den:1},M=null,R=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=Up[De];ae&&(k=ae)}}e.readBits(1)&&e.skipBits(1),e.readBits(1)&&(e.skipBits(3),S=e.readBits(1),e.readBits(1)&&(E=e.readBits(8),C=e.readBits(8),G=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&&Mp(e);let pe=e.readBits(1);pe&&Mp(e),(W||pe)&&e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(1),ee(e),ee(e),ee(e),ee(e),M=ee(e),R=ee(e))}if(M===null){b(R===null);let V=n&16;if((r===44||r===86||r===100||r===110||r===122||r===244)&&V)M=0,R=0;else{let F=u+1,K=g+1,L=(2-w)*K,_=Ss.find(pe=>pe.level>=a)??_e(Ss),W=Math.min(Math.floor(_.maxDpbMbs/(F*L)),16);M=W,R=W}}return b(R!==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:E,matrixCoefficients:G,transferCharacteristics:C,fullRangeFlag:S,numReorderFrames:M,maxDecFrameBuffering:R}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},Mp=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)},iC=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Ic(t,n)}else return Fp(t)},Os=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Qp(t,n)}else return Fi(t)},Kr=t=>t>>1&63,Mg=t=>{try{let e=new xe(yc(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 l=ee(e),u=0;l===3&&(u=e.readBits(1));let g=ee(e),f=ee(e),p=g,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?l: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 E=e.readBits(1)?0:A,C=0;for(let F=E;F<=A;F++)ee(e),C=ee(e),ee(e);ee(e),ee(e),ee(e),ee(e),ee(e),ee(e),e.readBits(1)&&e.readBits(1)&&sC(e),e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(4),e.skipBits(4),ee(e),ee(e),e.skipBits(1));let G=ee(e);if(oC(e,G),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,M=2,R=0,N=0,V={num:1,den:1};if(e.readBits(1)){let F=uC(e,A);V=F.pixelAspectRatio,S=F.colourPrimaries,k=F.transferCharacteristics,M=F.matrixCoefficients,R=F.fullRangeFlag,N=F.minSpatialSegmentationIdc}return{displayWidth:p,displayHeight:h,pixelAspectRatio:V,colourPrimaries:S,transferCharacteristics:k,matrixCoefficients:M,fullRangeFlag:R,maxDecFrameBuffering:C+1,spsMaxSubLayersMinus1:A,spsTemporalIdNestingFlag:r,generalProfileSpace:n,generalTierFlag:a,generalProfileIdc:i,generalProfileCompatibilityFlags:s,generalConstraintIndicatorFlags:o,generalLevelIdc:c,chromaFormatIdc:l,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 l=t.subarray(c.offset,c.offset+c.length),u=Kr(l[0]);u===Ct.VPS_NUT?e.push(l):u===Ct.SPS_NUT?A.push(l):u===Ct.PPS_NUT?r.push(l):(u===Ct.PREFIX_SEI_NUT||u===Ct.SUFFIX_SEI_NUT)&&n.push(l)}if(A.length===0||r.length===0)return null;let a=Mg(A[0]);if(!a)return null;let i=0;if(r.length>0){let c=r[0],l=new xe(yc(c));l.skipBits(16),ee(l),ee(l),l.skipBits(1),l.skipBits(1),l.skipBits(3),l.skipBits(1),l.skipBits(1),ee(l),ee(l),$A(l),l.skipBits(1),l.skipBits(1),l.readBits(1)&&ee(l),$A(l),$A(l),l.skipBits(1),l.skipBits(1),l.skipBits(1),l.skipBits(1);let u=l.readBits(1),g=l.readBits(1);!u&&!g?i=0:u&&!g?i=2:!u&&g?i=3:i=0}let s=[...e.length?[{arrayCompleteness:1,nalUnitType:Ct.VPS_NUT,nalUnits:e}]:[],...A.length?[{arrayCompleteness:1,nalUnitType:Ct.SPS_NUT,nalUnits:A}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:Ct.PPS_NUT,nalUnits:r}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Kr(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 l=0;l<32;l++)a=a<<1|t.readBits(1);let i=new Uint8Array(6);for(let l=0;l<6;l++)i[l]=t.readBits(8);let s=t.readBits(8),o=[],c=[];for(let l=0;l<e;l++)o.push(t.readBits(1)),c.push(t.readBits(1));if(e>0)for(let l=e;l<8;l++)t.skipBits(2);for(let l=0;l<e;l++)o[l]&&t.skipBits(88),c[l]&&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}},sC=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&&$A(t);for(let a=0;a<n;a++)$A(t)}},oC=(t,e)=>{let A=[];for(let r=0;r<e;r++)A[r]=cC(t,r,e,A)},cC=(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},uC=(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=Up[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)&&lC(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}},lC=(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 l=1;c||(l=ee(t)+1),r&&Rp(t,l,a),n&&Rp(t,l,a)}},Rp=(t,e,A)=>{for(let r=0;r<e;r++)ee(t),ee(t),A&&(ee(t),ee(t)),t.readBits(1)},qp=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 Gt;(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"})(Gt||(Gt={}));var Lp=(t,e)=>{let A=new Set,r=Gt.audAllowed;for(let a of Os(t,e)){if(r===Gt.noMoreDataAllowed){A.add(a.offset);continue}let i=Kr(t[a.offset]);if(r===Gt.eoBitstreamAllowed&&i!==37){A.add(a.offset);continue}let s=!1;i===35?r>Gt.audAllowed?s=!0:r=Gt.beforeFirstVcl:i<=31?r>Gt.afterFirstVcl?s=!0:r=Gt.afterFirstVcl:i===36?r!==Gt.afterFirstVcl?s=!0:r=Gt.eoBitstreamAllowed:i===37?r<Gt.afterFirstVcl?s=!0:r=Gt.noMoreDataAllowed:i===32||i===33||i===34||i===39||i>=41&&i<=44||i>=48&&i<=55?r>Gt.beforeFirstVcl?s=!0:r=Gt.beforeFirstVcl:(i===38||i===40||i>=45&&i<=47||i>=56&&i<=63)&&r<Gt.afterFirstVcl&&(s=!0),s&&A.add(a.offset)}if(A.size===0)return null;let n=[];for(let a of Os(t,e))A.has(a.offset)||n.push(t.subarray(a.offset,a.offset+a.length));return iC(n,e)},Dc=t=>{let e=new xe(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 l=e.readBits(3),u=0,g=0;if(l!==7)if(g=e.readBits(1),a===1||a===3){let k=e.readBits(1),M=e.readBits(1);u=!k&&!M?3:k&&!M?2:1,e.skipBits(1)}else u=1;else u=3,g=1;let f=e.readBits(16),p=e.readBits(16),h=f+1,y=p+1,w=h*y,D=_e(wr).level;for(let S of wr)if(w<=S.maxPictureSize){D=S.level;break}return{profile:a,level:D,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:g,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}},jp=function*(t){let e=new xe(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);b(e.pos%8===0),yield{type:r,data:t.subarray(e.pos/8,e.pos/8+i)},e.skipBits(i*8)}},Cc=t=>{for(let{type:e,data:A}of jp(t)){if(e!==1)continue;let r=new xe(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 M=0;M<=k;M++){r.skipBits(12);let R=r.readBits(5);if(M===0&&(s=R),R>7){let V=r.readBits(1);M===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 l=r.readBits(4),u=r.readBits(4),g=l+1;r.skipBits(g);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 G=r.readBits(1);G&&(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)),G&&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,E=1,C=0;return w||(n===0?(D=1,E=1):n===1?(D=0,E=0):y===12&&(D=r.readBits(1),D&&(E=r.readBits(1))),D&&E&&(C=r.readBits(2))),{profile:n,level:s,tier:o,bitDepth:y,monochrome:w,chromaSubsamplingX:D,chromaSubsamplingY:E,chromaSamplePosition:C}}return null},bc=t=>{let e=Ge(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}},gC=[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],Vp=t=>{let e=t[0]>>3;return{durationInSamples:gC[e]}},Kp=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 xe(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,g=n.readBits(8),f=n.readBits(16),p=n.readBits(16);if(g>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 l=Array(c).fill(0);for(let u=c-1;u>=0;u--)n.skipBits(40),l[u]=n.readBits(1);return{modeBlockflags:l}},Zr=(t,e,A)=>{switch(t){case"avc":{for(let r of _g(A,e)){let n=A[r.offset],a=zi(n);if(a>=$t.NON_IDR_SLICE&&a<=$t.SLICE_DPC)return"delta";if(a===$t.IDR)return"key";if(a===$t.SEI&&(!Es()||Bp()>=144)){let i=A.subarray(r.offset,r.offset+r.length),s=yc(i),o=1;do{let c=0;for(;;){let g=s[o++];if(g===void 0||(c+=g,g<255))break}let l=0;for(;;){let g=s[o++];if(g===void 0||(l+=g,g<255))break}if(c===6){let g=new xe(s);g.pos=8*o;let f=ee(g),p=g.readBits(1);if(f===0&&p===1)return"key"}o+=l}while(o<s.length-1)}}return"delta"}case"hevc":{for(let r of Os(A,e)){let n=Kr(A[r.offset]);if(n<Ct.BLA_W_LP)return"delta";if(n<=Ct.RSV_IRAP_VCL23)return"key"}return"delta"}case"vp8":return(A[0]&1)===0?"key":"delta";case"vp9":{let r=new xe(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 jp(A))if(n===1){let i=new xe(a);i.skipBits(4),r=!!i.readBits(1)}else if(n===3||n===6||n===7){if(r)return"key";let i=new xe(a);return i.readBits(1)?null:i.readBits(2)===0?"key":"delta"}return null}default:Zt(t),b(!1)}},Wr;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})(Wr||(Wr={}));var Ms=(t,e)=>{let A=Ge(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 l=c.indexOf("=");if(l===-1)continue;let u=c.slice(0,l).toUpperCase(),g=c.slice(l+1);switch(e.raw??={},e.raw[u]??=g,u){case"TITLE":e.title??=g;break;case"DESCRIPTION":e.description??=g;break;case"ARTIST":e.artist??=g;break;case"ALBUM":e.album??=g;break;case"ALBUMARTIST":e.albumArtist??=g;break;case"COMMENT":e.comment??=g;break;case"LYRICS":e.lyrics??=g;break;case"TRACKNUMBER":{let f=g.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(g,10);Number.isInteger(f)&&f>0&&(e.tracksTotal??=f)}break;case"DISCNUMBER":{let f=g.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(g,10);Number.isInteger(f)&&f>0&&(e.discsTotal??=f)}break;case"DATE":{let f=new Date(g);Number.isNaN(f.getTime())||(e.date??=f)}break;case"GENRE":e.genre??=g;break;case"METADATA_BLOCK_PICTURE":{let f=ks(g),p=Ge(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),E=mt.decode(f.subarray(12+y,12+y+D)),C=p.getUint32(y+D+28),G=f.subarray(y+D+32,y+D+32+C);e.images??=[],e.images.push({data:G,mimeType:w,kind:h===3?"coverFront":h===4?"coverBack":"unknown",name:void 0,description:E||void 0})}break}}};var Rs=[2,1,2,3,3,4,4,5],Ec=t=>{if(t.length<7||t[0]!==11||t[1]!==119)return null;let e=new xe(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}},Wp=[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],Zp=1536,c1=new Uint8Array([5,4,65,67,45,51]),u1=new Uint8Array([5,4,69,65,67,51]),Rg=[1,2,3,6],Tc=t=>{if(t.length<6||t[0]!==11||t[1]!==119)return null;let e=new xe(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 l=Rg[i],u;return n<3?u=Yn[n]/1e3:u=vg[a]/1e3,{dataRate:Math.round((r+1)*u/(l*16)),substreams:[{fscod:n,fscod2:a,bsid:c,bsmod:0,acmod:s,lfeon:o,numDepSub:0,chanLoc:0}]}},$p=t=>{if(t.length<2)return null;let e=new xe(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),l=e.readBits(1);e.skipBits(3);let u=e.readBits(4),g=0;u>0?g=e.readBits(9):e.skipBits(1),n.push({fscod:i,fscod2:null,bsid:s,bsmod:o,acmod:c,lfeon:l,numDepSub:u,chanLoc:g})}return n.length===0?null:{dataRate:A,substreams:n}},kc=t=>{let e=t.substreams[0];return b(e),e.fscod<3?Yn[e.fscod]:e.fscod2!==null&&e.fscod2<3?vg[e.fscod2]:null},xc=t=>{let e=t.substreams[0];b(e);let A=Rs[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(Ur*this.timestamp)}get microsecondDuration(){return Math.trunc(Ur*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},Sc=t=>{let e=Ge(t),A=0,r=e.getUint8(A);A+=1,A+=3;let n=Hr(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(Hr(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)}},Yc=(t,e)=>t.systemId===e.systemId&&Pp(t.data,e.data);var kA=8,Br=16,Pr=t=>{let e=J(t),A=je(t,4),r=8;e===1&&(e=Ht(t),r=16);let a=e-r;return a<0?null:{name:A,totalSize:e,headerSize:r,contentSize:a}},$r=t=>yr(t)/65536,vc=t=>yr(t)/1073741824,Oc=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=Xe(t);return t.skip(2),e=Math.min(e,t.remainingLength),mt.decode(te(t,e))},Jp=t=>{let e=Pr(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 EA(r,"image/jpeg");case 14:return new EA(r,"image/png");case 27:return new EA(r,"image/bmp");default:return r}};var GA=16,Ir=new Uint32Array(256),Ui=new Uint32Array(256),qi=new Uint32Array(256),Li=new Uint32Array(256),ji=new Uint32Array(256),Tt=new Uint32Array(256),Xp=new Uint32Array(10),ew=!1,dC=()=>{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);Ir[a]=i<<24|i<<16|i<<8|i,Tt[a]=s<<24|s<<16|s<<8|s;let o=r(s,14),c=r(s,9),l=r(s,13),u=r(s,11),g=o<<24|c<<16|l<<8|u;Ui[a]=g,qi[a]=g>>>8|g<<24,Li[a]=g>>>16|g<<16,ji[a]=g>>>24|g<<8}let n=1;for(let a=0;a<10;a++)Xp[a]=n<<24,n=n<<1^(n&128?283:0);ew=!0},Qs=class{constructor(){this.roundkey=new Uint32Array(44),this.iv=new Uint32Array(GA/Uint32Array.BYTES_PER_ELEMENT),this.in=new Uint8Array(GA),this.out=new Uint8Array(GA),this.inView=new DataView(this.in.buffer),this.outView=new DataView(this.out.buffer)}init({key:e,iv:A}){b(e.byteLength===16),b(A.byteLength===16),ew||dC();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]^Ir[i>>>16&255]&4278190080^Ir[i>>>8&255]&16711680^Ir[i>>>0&255]&65280^Ir[i>>>24&255]&255^Xp[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[Ir[s>>>24&255]&255]^qi[Ir[s>>>16&255]&255]^Li[Ir[s>>>8&255]&255]^ji[Ir[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,l,u,g;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],l=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],g=Ui[n>>>24]^qi[r>>>16&255]^Li[A>>>8&255]^ji[e&255]^this.roundkey[D+3],e=c,A=l,r=u,n=g}let f=Tt[e>>>24&255]&4278190080^Tt[n>>>16&255]&16711680^Tt[r>>>8&255]&65280^Tt[A>>>0&255]&255^this.roundkey[40],p=Tt[A>>>24&255]&4278190080^Tt[e>>>16&255]&16711680^Tt[n>>>8&255]&65280^Tt[r>>>0&255]&255^this.roundkey[41],h=Tt[r>>>24&255]&4278190080^Tt[A>>>16&255]&16711680^Tt[e>>>8&255]&65280^Tt[n>>>0&255]&255^this.roundkey[42],y=Tt[n>>>24&255]&4278190080^Tt[r>>>16&255]&16711680^Tt[A>>>8&255]&65280^Tt[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}},tw=(t,e,A)=>{let r=!1,n=0,a=2**16,i=16,s=new Qs;return new ReadableStream({pull:async o=>{r||(s.init(await e()),r=!0);let c=a+i,l=t.requestSliceRange(n,0,c);if(l instanceof Promise&&(l=await l),!l||l.length===0)throw new Error("Invalid ciphertext.");let u=l.length;if(u%16!==0)throw new Error("Invalid ciphertext.");let g=u===c?u-i:u,f=te(l,g),p=new Uint8Array(g);for(let h=0;h<g;h+=16)s.in.set(f.subarray(h,h+16)),s.decrypt(),p.set(s.out,h);if(g<u)o.enqueue(p),n+=g;else{let h=p[g-1];if(h===0||h>16)throw new Error("Invalid PKCS#7 padding. Incorrect key or corrupted data.");let y=p.subarray(0,g-h);o.enqueue(y),o.close(),A()}},cancel:()=>{A()}})};var _c=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,kA,Br);if(r instanceof Promise&&(r=await r),!r)break;let n=e,a=Pr(r);if(!a)break;if(a.name==="ftyp"||a.name==="styp"){let i=je(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(b(o.info),o.info.type==="video"&&o.info.width!==-1){let c=o;o.trackBacking=new Rc(c),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let c=o;o.trackBacking=new Qc(c),this.tracks.push(o)}}}A=!1;break}e=n+a.totalSize}if(A){b(this.reader.fileSize!==null);let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),b(r);let n=J(r),a=this.reader.fileSize-n;if(a>=0&&a<=this.reader.fileSize-Br){let i=this.reader.requestSliceRange(a,kA,Br);if(i instanceof Promise&&(i=await i),i){let s=Pr(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;b(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&&vt.includes(e.info.codec)&&A.sampleCompositionTimeOffsets.length===0){b(e.info?.type==="audio");let a=TA(e.info.codec),i=[],s=[];for(let o=0;o<A.sampleToChunk.length;o++){let c=A.sampleToChunk[o],l=A.sampleToChunk[o+1],u=(l?l.startChunkIndex:A.chunkOffsets.length)-c.startChunkIndex;for(let g=0;g<u;g++){let f=c.startSampleIndex+g*c.samplesPerChunk,p=f+c.samplesPerChunk,h=ye(A.sampleTimingEntries,f,M=>M.startIndex),y=A.sampleTimingEntries[h],w=ye(A.sampleTimingEntries,p,M=>M.startIndex),D=A.sampleTimingEntries[w],E=y.startDecodeTimestamp+(f-y.startIndex)*y.delta,G=D.startDecodeTimestamp+(p-D.startIndex)*D.delta-E,S=_e(i);S&&S.delta===G?S.count++:i.push({startIndex:c.startChunkIndex+g,startDecodeTimestamp:E,count:1,delta:G});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,kA,Br);A instanceof Promise&&(A=await A),b(A);let r=Pr(A);b(r?.name==="moof");let n=this.reader.requestSlice(e,r.totalSize);n instanceof Promise&&(n=await n),b(n),this.traverseBox(n);let a=this.lastReadFragment;b(a&&a.moofOffset===e);for(let[,i]of a.trackData){let s=i.track,{fragmentPositionCache:o}=s;if(!i.startTimestampIsFinal){let l=s.fragmentLookupTable.find(u=>u.moofOffset===a.moofOffset);if(l)Qg(i,l.timestamp);else{let u=ye(o,a.moofOffset-1,g=>g.moofOffset);if(u!==-1){let g=o[u];Qg(i,g.endTimestamp)}}i.startTimestampIsFinal=!0}let c=ye(o,i.startTimestamp,l=>l.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 l=await iw(this.reader,s.encryptionInfo,i.encryptionAuxInfo);for(let u=0;u<Math.min(i.samples.length,l.length);u++){let g=l[u];i.samples[u].encryption=g}}}return a}readContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-kA&&this.traverseBox(e););}*iterateContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-kA;){let r=e.filePos,n=Pr(e);if(!n)break;yield{boxInfo:n,slice:e},e.filePos=r+n.totalSize}}traverseBox(e){let A=e.filePos,r=Pr(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=Ht(e)):(e.skip(8),this.movieTimescale=J(e),this.movieDurationInTimescale=J(e))}break;case"trak":{let i={id:-1,demuxer:this,trackBacking:null,disposition:{...Dt,primary:!1},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Je,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 Rc(s),this.tracks.push(i)}else if(i.info.type==="audio"&&i.info.numberOfChannels!==-1){let s=i;i.trackBacking=new Qc(s),this.tracks.push(i)}}this.currentTrack=null}break;case"tkhd":{let i=this.currentTrack;if(!i)break;let s=ne(e),c=!!(SA(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=Ht(e);else throw new Error(`Incorrect track header version ${s}.`);e.skip(2*4+2+2+2+2);let l=[$r(e),$r(e),vc(e),$r(e),$r(e),vc(e),$r(e),$r(e),vc(e)],u=Yi(Ds(pC(l),90));b(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,l=J(e);for(let u=0;u<l;u++){let g=s===1?Ht(e):J(e),f=s===1?sw(e):yr(e),p=$r(e);if(g!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){c+=g;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=Ht(e));let o=Xe(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=Je)}}break;case"hdlr":{let i=this.currentTrack;if(!i)break;e.skip(8);let s=je(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 l=e.filePos,u=Pr(e);if(!u)break;i.internalCodecId=u.name;let g=u.name.toLowerCase();if(i.info.type==="video"){e.skip(6*1+2+2+2+3*4),i.info.width=Xe(e),i.info.height=Xe(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,l+u.totalSize-e.filePos));let f=g==="encv"?i.frmaCodecString:g;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=Xe(e);e.skip(3*2);let p=Xe(e),h=Xe(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=Fc(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,l+u.totalSize-e.filePos));let D=g==="enca"?i.frmaCodecString:g;if(i.frmaCodecString=null,D!=="mp4a")if(D==="opus")i.info.codec="opus",i.info.sampleRate=Sn;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 E=i.info.pcmSampleSize;i.info.pcmLittleEndian?E===16?i.info.codec="pcm-s16":E===24?i.info.codec="pcm-s24":E===32?i.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${E}.`),i.info.codec=null):E===16?i.info.codec="pcm-s16be":E===24?i.info.codec="pcm-s24be":E===32?i.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${E}.`),i.info.codec=null)}else if(D==="fpcm"){let E=i.info.pcmSampleSize;i.info.pcmLittleEndian?E===32?i.info.codec="pcm-f32":E===64?i.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${E}.`),i.info.codec=null):E===32?i.info.codec="pcm-f32be":E===64?i.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${E}.`),i.info.codec=null)}else if(D==="lpcm"&&w!==null){let E=h+7>>3,C=!!(w&1),G=!!(w&2),S=w&4?-1:0;h>0&&h<=64&&(C?h===32&&(i.info.codec=G?"pcm-f32be":"pcm-f32"):S&1<<E-1?E===1?i.info.codec="pcm-s8":E===2?i.info.codec=G?"pcm-s16be":"pcm-s16":E===3?i.info.codec=G?"pcm-s24be":"pcm-s24":E===4&&(i.info.codec=G?"pcm-s32be":"pcm-s32"):E===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=l+u.totalSize}}break;case"frma":{let i=this.currentTrack;if(!i)break;let o=je(e,4).toLowerCase();i.frmaCodecString=o}break;case"schm":{let i=this.currentTrack;if(!i)break;e.skip(4);let s=je(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=Hr(te(e,16)),i.encryptionInfo.defaultIsProtected&&i.encryptionInfo.defaultPerSampleIvSize===0){let c=ne(e),l=new Uint8Array(16);l.set(te(e,c),0),i.encryptionInfo.defaultConstantIv=l}}break;case"avcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"hvcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=te(e,r.contentSize)}break;case"vpcC":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(4);let s=ne(e),o=ne(e),c=ne(e),l=c>>4,u=c>>1&7,g=c&1,f=ne(e),p=ne(e),h=ne(e);i.info.vp9CodecInfo={profile:s,level:o,bitDepth:l,chromaSubsampling:u,videoFullRangeFlag:g,colourPrimaries:f,transferCharacteristics:p,matrixCoefficients:h}}break;case"av1C":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(1);let s=ne(e),o=s>>5,c=s&31,l=ne(e),u=l>>7,g=l>>6&1,f=l>>5&1,p=l>>4&1,h=l>>3&1,y=l>>2&1,w=l&3,D=o===2&&g?f?12:10:g?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;b(i.info?.type==="video");let s=je(e,4);if(s!=="nclx"&&s!=="nclc")break;let o=Xe(e),c=Xe(e),l=Xe(e),u;s==="nclx"&&(u=!!(ne(e)&128)),i.info.colorSpace={primaries:Dn[o],transfer:Cn[c],matrix:bn[l],fullRange:u}}break;case"pasp":{let i=this.currentTrack;if(!i)break;b(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;b(i.info?.type==="audio"),e.skip(4);let s=ne(e);b(s===3),Oc(e),e.skip(2);let o=ne(e),c=(o&128)!==0,l=(o&64)!==0,u=(o&32)!==0;if(c&&e.skip(2),l){let y=ne(e);e.skip(y)}u&&e.skip(2);let g=ne(e);b(g===4);let f=Oc(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);b(y===5);let w=Oc(e);if(i.info.codecDescription=te(e,w),i.info.codec==="aac"){let D=mc(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;b(i.info?.type==="audio"),i.info.pcmLittleEndian=!!(Xe(e)&255)}break;case"pcmC":{let i=this.currentTrack;if(!i)break;b(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;b(i.info?.type==="audio"),e.skip(1);let s=ne(e),o=Xe(e),c=J(e),l=Fs(e),u=ne(e),g;u!==0?g=te(e,2+s):g=new Uint8Array(0);let f=new Uint8Array(19+g.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,l,!0),p.setUint8(18,u),f.set(g,19),i.info.codecDescription=f,i.info.numberOfChannels=s}break;case"dfLa":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let s=127,o=128,c=e.filePos;for(;e.filePos<a;){let p=ne(e),h=SA(e);if((p&s)===Wr.STREAMINFO){e.skip(10);let w=J(e),D=w>>>12,E=(w>>9&7)+1;i.info.sampleRate=D,i.info.numberOfChannels=E,e.skip(20)}else e.skip(h);if(p&o)break}let l=e.filePos;e.filePos=c;let u=te(e,l-c),g=new Uint8Array(4+u.byteLength);new DataView(g.buffer).setUint32(0,1716281667,!1),g.set(u,4),i.info.codecDescription=g}break;case"dac3":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio");let s=te(e,3),o=new xe(s),c=o.readBits(2);o.skipBits(8);let l=o.readBits(3),u=o.readBits(1);c<3&&(i.info.sampleRate=Yn[c]),i.info.numberOfChannels=Rs[l]+u}break;case"dec3":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio");let s=te(e,r.contentSize),o=$p(s);if(!o){console.warn("Invalid dec3 box contents, ignoring.");break}let c=kc(o);c!==null&&(i.info.sampleRate=c),i.info.numberOfChannels=xc(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 l=0;l<s;l++){let u=J(e),g=J(e);i.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:c,count:u,delta:g}),o+=u,c+=u*g}}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 l=J(e),u=yr(e);i.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:l,offset:u}),o+=l}}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 l=J(e);i.sampleTable.sampleSizes.push(l)}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)),l=new xe(c);for(let u=0;u<o;u++){let g=l.readBits(s);i.sampleTable.sampleSizes.push(g)}}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 l=J(e)-1,u=J(e),g=J(e);i.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:l,samplesPerChunk:u,sampleDescriptionIndex:g})}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=Ht(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?Ht(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),l=J(e);this.fragmentTrackDefaults.push({trackId:i,defaultSampleDescriptionIndex:s,defaultSampleDuration:o,defaultSampleSize:c,defaultSampleFlags:l})}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),l=(c&48)>>4,u=(c&12)>>2,g=c&3,f=[ne,Xe,SA,J],p=f[l],h=f[u],y=f[g],w=J(e);for(let D=0;D<w;D++){let E=i===1?Ht(e):J(e),C=i===1?Ht(e):J(e);p(e),h(e),y(e),o.fragmentLookupTable.push({timestamp:E,moofOffset:C})}o.fragmentLookupTable.sort((D,E)=>D.timestamp-E.timestamp);for(let D=0;D<o.fragmentLookupTable.length-1;D++){let E=o.fragmentLookupTable[D],C=o.fragmentLookupTable[D+1];E.timestamp===C.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(b(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((l,u)=>({presentationTimestamp:l.presentationTimestamp,sampleIndex:u})).sort((l,u)=>l.presentationTimestamp-u.presentationTimestamp);for(let l=0;l<i.presentationTimestamps.length;l++){let u=i.presentationTimestamps[l],g=i.samples[u.sampleIndex];if(i.firstKeyFrameTimestamp===null&&g.isKeyFrame&&(i.firstKeyFrameTimestamp=g.presentationTimestamp),l<i.presentationTimestamps.length-1){let p=i.presentationTimestamps[l+1].presentationTimestamp-u.presentationTimestamp;g.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;b(c),c.startTimestamp!==null&&(Qg(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=Sc(te(e,r.contentSize));this.currentFragment?this.currentFragment.psshBoxes.push(i):this.currentTrack||this.psshBoxes.push(i)}break;case"tfhd":{b(this.currentFragment),e.skip(1);let i=SA(e),s=!!(i&1),o=!!(i&2),c=!!(i&8),l=!!(i&16),u=!!(i&32),g=!!(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=Ht(e):f&&(h.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(h.currentFragmentState.sampleDescriptionIndex=J(e)),c&&(h.currentFragmentState.defaultSampleDuration=J(e)),l&&(h.currentFragmentState.defaultSampleSize=J(e)),u&&(h.currentFragmentState.defaultSampleFlags=J(e)),g&&(h.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let i=this.currentTrack;if(!i)break;b(i.currentFragmentState);let s=ne(e);e.skip(3);let o=s===0?J(e):Ht(e);i.currentFragmentState.startTimestamp=o}break;case"trun":{let i=this.currentTrack;if(!i)break;b(this.currentFragment),b(i.currentFragmentState);let s=ne(e),o=SA(e),c=!!(o&1),l=!!(o&4),u=!!(o&256),g=!!(o&512),f=!!(o&1024),p=!!(o&2048),h=J(e),y=null;c&&(y=yr(e));let w=null;l&&(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 E=0;E<h;E++){let C;u?C=J(e):(b(i.currentFragmentState.defaultSampleDuration!==null),C=i.currentFragmentState.defaultSampleDuration);let G;g?G=J(e):(b(i.currentFragmentState.defaultSampleSize!==null),G=i.currentFragmentState.defaultSampleSize);let S;f?S=J(e):(b(i.currentFragmentState.defaultSampleFlags!==null),S=i.currentFragmentState.defaultSampleFlags),E===0&&w!==null&&(S=w);let k=0;p&&(s===0?k=J(e):k=yr(e));let M=!(S&65536);D.samples.push({presentationTimestamp:D.currentTimestamp+k,duration:C,byteOffset:D.currentOffset,byteSize:G,isKeyFrame:M,encryption:null}),D.currentOffset+=G,D.currentTimestamp+=C}}break;case"saiz":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;if(e.skip(1),SA(e)&1){let g=je(e,4),f=J(e);if(g!==i.encryptionInfo.scheme||f!==0)break}let o=ne(e),c=J(e),l=null;o===0&&c>0&&(l=te(e,c));let u=rw(i);u.defaultSampleInfoSize=o,u.sampleSizes=l,u.sampleCount=c}break;case"saio":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ne(e);if(SA(e)&1){let g=je(e,4),f=J(e);if(g!==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 l=s===0?J(e):Number(Ht(e));this.currentFragment&&(l+=this.currentFragment.moofOffset);let u=rw(i);u.offset=l}break;case"senc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;b(this.currentFragment);let s=this.currentFragment.trackData.get(i.id);if(!s)break;e.skip(1);let c=!!(SA(e)&2),l=J(e),u=i.encryptionInfo.defaultPerSampleIvSize;b(u!==null);for(let g=0;g<Math.min(l,s.samples.length);g++){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=Xe(e);p=[];for(let w=0;w<y;w++){let D=Xe(e),E=J(e);p.push({clearLen:D,protectedLen:E})}}let h=s.samples[g];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,l=(c.charCodeAt(0)<<24)+(c.charCodeAt(1)<<16)+(c.charCodeAt(2)<<8)+c.charCodeAt(3);this.currentMetadataKeys.has(l)&&(c=this.currentMetadataKeys.get(l));let u=Jp(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 g=new Date(u);Number.isNaN(g.getTime())||(this.metadataTags.date??=g)}break;case"covr":case"com.apple.quicktime.artwork":u instanceof EA?(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 g=u.split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=Ge(u),f=g.getUint16(2,!1),p=g.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 g=Ge(u),f=g.getUint16(2,!1),p=g.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=a,!0}},Mc=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:(b(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 pr(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,A){let r=this.mapTimestampIntoTimescale(e),n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=Fg(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!Aw(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,g=>g.presentationTimestamp),l=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:l,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=fC(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!Aw(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,g=>o.samples[g.sampleIndex].isKeyFrame&&g.presentationTimestamp<=r),l=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:l,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=hC(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 b(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=mC(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){b(this.internalTrack.encryptionInfo);let l=await iw(this.internalTrack.demuxer.reader,this.internalTrack.encryptionInfo,this.internalTrack.encryptionAuxInfo);e<l.length&&(a=await nw(this.internalTrack,l[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];b(a);let i;if(r.metadataOnly)i=dt;else{let l=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);if(l instanceof Promise&&(l=await l),!l)return null;i=te(l,a.byteSize),a.encryption&&(i=await nw(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 l=ye(this.internalTrack.fragmentLookupTable,r,y=>y.timestamp),u=l!==-1?this.internalTrack.fragmentLookupTable[l]:null,g=ye(this.internalTrack.fragmentPositionCache,r,y=>y.startTimestamp),f=g!==-1?this.internalTrack.fragmentPositionCache[g]: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 E=s.trackData.get(this.internalTrack.id);if(E&&E.startTimestamp>n)break}let y=i.reader.requestSliceRange(h,kA,Br);if(y instanceof Promise&&(y=await y),!y)break;let w=h,D=Pr(y);if(!D)break;if(D.name==="moof"){s=await i.readFragment(w);let{sampleIndex:E,correctSampleFound:C}=A(s);if(C)return this.fetchPacketInFragment(s,E,a);E!==-1&&(o=s,c=E)}h=w+D.totalSize}if(u&&(!o||o.moofOffset<u.moofOffset)){let y=this.internalTrack.fragmentLookupTable[l-1];b(!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}},Rc=class extends Mc{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&&Dc(A.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=A&&Cc(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}},Qc=class extends Mc{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}},Fg=(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)}},fC=(t,e)=>{if(!t.keySampleIndices)return Fg(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(hr(t.keySampleIndices,n,i=>i)!==-1)return n}return-1}else{let A=Fg(t,e),r=ye(t.keySampleIndices,A,n=>n);return t.keySampleIndices[r]??-1}},mC=(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),l=t.sampleToChunk[c];b(l);let u=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),g=t.chunkOffsets[u],f=l.startSampleIndex+(u-l.startChunkIndex)*l.samplesPerChunk,p=0,h=g;if(t.sampleSizes.length===1)h+=o*(e-f),p+=o*l.samplesPerChunk;else for(let w=f;w<f+l.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];b(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:g,chunkSize:p,isKeyFrame:t.keySampleIndices?hr(t.keySampleIndices,e,w=>w)!==-1:!0}},hC=(t,e)=>{if(!t.keySampleIndices)return e+1;let A=ye(t.keySampleIndices,e,r=>r);return t.keySampleIndices[A+1]??-1},Qg=(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},pC=t=>{let[e,A]=t,r=Math.atan2(A,e);return Number.isFinite(r)?r*(180/Math.PI):0},Aw=t=>t.sampleSizes.length===0,rw=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},iw=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{b(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;b(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 l=null;if(o>a){let u=Xe(n);l=[];for(let g=0;g<u;g++){let f=Xe(n),p=J(n);l.push({clearLen:f,protectedLen:p})}}i.push({iv:c,subsamples:l})}return A.resolved=i,i},nw=async(t,e,A,r)=>{b(t.encryptionInfo);let n=t.encryptionInfo;b(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 g=u+1;g<c.length;g++)Yc(c[u],c[g])&&(c.splice(g,1),g--)}let l=await t.demuxer.input._formatOptions.isobmff.resolveKeyId({keyId:a,psshBoxes:c});if(!(typeof l=="string"&&l.length===32&&gp.test(l)||l instanceof Uint8Array&&l.byteLength===16))throw new TypeError("resolveKeyId must return a 32-character hex string or a 16-byte Uint8Array containing the decryption key.");return l instanceof Uint8Array?l:dp(l)})();t.demuxer.decryptionKeyCache.set(a,o),i=await o}return n.scheme==="cenc"||n.scheme==="cens"?wC(i,n,e,A):BC(i,n,e,A)},wC=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);b(e.defaultCryptByteBlock!==null&&e.defaultSkipByteBlock!==null);let s=aw(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),l=0;for(let p of s)for(let h of p.perSubsample)c.set(r.subarray(h.offset,h.offset+h.length),l),l+=h.length;let u=await i(c),g=new Uint8Array(r),f=0;for(let p of s)for(let h of p.perSubsample)g.set(u.subarray(f,f+h.length),h.offset),f+=h.length;return g},BC=(t,e,A,r)=>{let n=new Qs;n.init({key:t,iv:A.iv});let a=e.defaultCryptByteBlock,i=e.defaultSkipByteBlock;if(b(a!==null&&i!==null),!A.subsamples){let l=new Uint8Array(r),u=Math.floor(r.length/16);for(let g=0;g<u;g++){let f=g*16;n.in.set(r.subarray(f,f+16)),n.decrypt(),l.set(n.out,f)}return l}if(a===0&&i===0)throw new Error("cbcs with subsamples requires pattern encryption.");let s=new Uint8Array(r),o=aw(A.subsamples,a,i),c=new DataView(A.iv.buffer,A.iv.byteOffset,16);for(let l 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 l.perSubsample){let g=u.length/16;for(let f=0;f<g;f++){let p=u.offset+f*16;n.in.set(r.subarray(p,p+16)),n.decrypt(),s.set(n.out,p)}}}return s},aw=(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 l=16*e;s.push({offset:c,length:l}),c+=l,o-=l;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 PC=[j.EBML,j.Segment],Vi=[j.SeekHead,j.Info,j.Cluster,j.Tracks,j.Cues,j.Attachments,j.Chapters,j.Tags],zs=[...PC,...Vi];var zg=8,Ut=2,YA=2*zg,Ng=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},ow=(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 zc=t=>{let e=Ng(t);return e===null||t.remainingLength<e?null:be(t,e)},Hg=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},vA=t=>{b(t.remainingLength>=Ut);let e=zc(t);if(e===null)return null;let A=Hg(t);return A===null?null:{id:e,size:A}},Jr=(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))},Nc=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?cw(t):Fc(t)},Hc=async(t,e,A,r)=>{let n=new Set(A),a=e;for(;r===null||a<r;){let i=t.requestSliceRange(a,Ut,YA);if(i instanceof Promise&&(i=await i),!i)break;let s=vA(i);if(!s)break;if(n.has(s.id))return{pos:a,found:!0};Dr(s.size),a=i.filePos+s.size}return{pos:r!==null&&r>a?r:a,found:!1}},Ug=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<zg)break;for(let o=0;o<s.length-zg;o++){s.filePos=i;let c=zc(s);if(c!==null&&a.has(c))return i;i++}}return null},Jt={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 Dr(t){if(t===void 0)throw new Error("Undefined element size is used in a place where it is not supported.")}var uw=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 Cr;(function(t){t[t.None=0]="None",t[t.Xiph=1]="Xiph",t[t.FixedSize=2]="FixedSize",t[t.Ebml=3]="Ebml"})(Cr||(Cr={}));var Uc;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(Uc||(Uc={}));var Ns;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(Ns||(Ns={}));var qg=[{id:j.SeekHead,flag:"seekHeadSeen"},{id:j.Info,flag:"infoSeen"},{id:j.Tracks,flag:"tracksSeen"},{id:j.Cues,flag:"cuesSeen"}],lw=10*2**20,qc=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 uw({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,Ut,YA);if(A instanceof Promise&&(A=await A),!A)break;let r=vA(A);if(!r)break;let n=r.id,a=r.size,i=A.filePos;if(n===j.EBML){Dr(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 Hc(this.reader,i,zs,this.reader.fileSize)).pos-i);let s=_e(this.segments);s&&(s.elementEndPos=i+a)}Dr(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,Ut,YA);if(s instanceof Promise&&(s=await s),!s)break;let o=r,c=vA(s);if(!c||!Vi.includes(c.id)&&c.id!==j.Void){let p=await Ug(this.reader,o,Vi,Math.min(this.currentSegment.elementEndPos??1/0,o+lw));if(p){r=p;continue}else break}let{id:l,size:u}=c,g=s.filePos,f=qg.findIndex(p=>p.id===l);if(f!==-1){let p=qg[f].flag;this.currentSegment[p]=!0,Dr(u);let h=this.reader.requestSlice(g,u);h instanceof Promise&&(h=await h),h&&this.readContiguousElements(h)}else if(l===j.Tags||l===j.Attachments){l===j.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,Dr(u);let p=this.reader.requestSlice(g,u);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(l===j.Cluster){this.currentSegment.clusterSeekStartPos=o;break}if(u===void 0)break;r=g+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=qg.find(p=>p.id===s.id);if(!o||this.currentSegment[o.flag])continue;let c=this.reader.requestSliceRange(e+s.segmentPosition,Ut,YA);if(c instanceof Promise&&(c=await c),!c)continue;let l=vA(c);if(!l)continue;let{id:u,size:g}=l;if(u!==o.id)continue;Dr(g),this.currentSegment[o.flag]=!0;let f=this.reader.requestSlice(c.filePos,g);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],l=s.cuePoints[o+1];c.time===l.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,Ut,YA);r instanceof Promise&&(r=await r),b(r);let n=e,a=vA(r);b(a);let i=a.id;b(i===j.Cluster);let s=a.size,o=r.filePos;s===void 0&&(s=(await Hc(this.reader,o,zs,A.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,s);c instanceof Promise&&(c=await c);let l={segment:A,elementStartPos:n,elementEndPos:o+s,dataStartPos:o,timestamp:-1,trackData:new Map};if(this.currentCluster=l,c){let u=this.readContiguousElements(c,zs);l.elementEndPos=u}for(let[,u]of l.trackData){let g=u.track;b(u.blocks.length>0);let f=!1;for(let w=0;w<u.blocks.length;w++){let D=u.blocks[w];D.timestamp+=l.timestamp,f||=D.lacing!==Cr.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],E=u.blocks[D.blockIndex];if(u.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(u.firstKeyFrameTimestamp=E.timestamp),w<u.presentationTimestamps.length-1){let C=u.presentationTimestamps[w+1];E.duration=C.timestamp-E.timestamp}else E.duration===0&&g.defaultDuration!=null&&E.lacing===Cr.None&&(E.duration=g.defaultDuration)}f&&(this.expandLacedBlocks(u.blocks,g),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(g.clusterPositionCache,u.startTimestamp,w=>w.startTimestamp);(y===-1||g.clusterPositionCache[y].elementStartPos!==n)&&g.clusterPositionCache.splice(y+1,0,{elementStartPos:l.elementStartPos,startTimestamp:u.startTimestamp})}return A.lastReadCluster=l,l}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===Cr.None)continue;n.decoded||(n.data=this.decodeBlockData(A,n.data),n.decoded=!0);let a=_t.tempFromBytes(n.data),i=[],s=ne(a)+1;switch(n.lacing){case Cr.Xiph:{let c=0;for(let l=0;l<s-1;l++){let u=0;for(;a.bufferPos<a.length;){let g=ne(a);if(u+=g,g<255){i.push(u),c+=u;break}}}i.push(a.length-(a.bufferPos+c))}break;case Cr.FixedSize:{let c=a.length-1,l=Math.floor(c/s);for(let u=0;u<s;u++)i.push(l)}break;case Cr.Ebml:{let c=Ki(a);b(c!==null);let l=c;i.push(l);let u=l;for(let g=1;g<s-1;g++){let f=a.bufferPos,p=Ki(a);b(p!==null);let h=p,w=(1<<(a.bufferPos-f)*7-1)-1,D=h-w;l+=D,i.push(l),u+=l}i.push(a.length-(a.bufferPos+u))}break;default:b(!1)}b(i.length===s),e.splice(r,1);let o=n.duration||s*(A.defaultDuration??0);for(let c=0;c<s;c++){let l=i[c],u=te(a,l),g=n.timestamp+o*c/s,f=o/s;e.splice(r+c,0,{timestamp:g,duration:f,isKeyFrame:n.isKeyFrame,data:u,lacing:Cr.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,Ut,YA);if(r instanceof Promise&&(r=await r),!r)continue;let n=vA(r);if(!n||n.id!==A.id)continue;let{size:a}=n;Dr(a),b(!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>=Ut;){let r=e.filePos;if(!this.traverseElement(e,A))return r}return e.filePos}traverseElement(e,A){let r=vA(e);if(!r||A&&A.includes(r.id))return!1;let{id:n,size:a}=r,i=e.filePos;switch(Dr(a),n){case j.DocType:this.isWebM=Jr(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=Nc(e,a)}break;case j.TrackEntry:{if(!this.currentSegment||(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...Dt,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!==Uc.Block||s.data.algorithm!==Ns.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 l=this.currentTrack.info.displayWidth*this.currentTrack.info.height,u=this.currentTrack.info.displayHeight*this.currentTrack.info.width;l>0&&u>0&&(l>u?this.currentTrack.info.squarePixelWidth=Math.round(this.currentTrack.info.width*l/u):this.currentTrack.info.squarePixelHeight=Math.round(this.currentTrack.info.height*u/l))}this.currentTrack.codecId===Jt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Jt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Jt.vp8?this.currentTrack.info.codec="vp8":o===Jt.vp9?this.currentTrack.info.codec="vp9":o===Jt.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack;this.currentTrack.trackBacking=new Lg(c),this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"){o===Jt.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===Jt.mp3?this.currentTrack.info.codec="mp3":o===Jt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=Sn):o===Jt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Jt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Jt.ac3?(this.currentTrack.info.codec="ac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Jt.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 jg(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=Jr(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=Jr(e,a),Oi(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Je)}break;case j.LanguageBCP47:{if(!this.currentTrack)break;let o=Jr(e,a).split("-")[0];o?this.currentTrack.languageCode=o:this.currentTrack.languageCode=Je,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=bn[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=Cn[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=Dn[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=-Nc(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=Nc(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;b(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;b(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=Fs(e),l=ne(e),u=l>>1&3,g=!!(l&128);o.track.info?.type==="audio"&&o.track.info.codec&&(g=!0);let f=te(e,a-(e.filePos-i)),p=o.track.decodingInstructions.length>0;o.blocks.push({timestamp:c,duration:0,isKeyFrame:g,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=Fs(e),u=ne(e)>>1&3,g=te(e,a-(e.filePos-i)),f=o.track.decodingInstructions.length>0;this.currentBlock={timestamp:c,duration:0,isKeyFrame:!0,data:g,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 l=o.toLowerCase();l.startsWith("cover.")?c="coverFront":l.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=ow(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=Jr(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:Uc.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:Ns.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){b(e.decodingInstructions.length>0);let r=A;for(let n of e.decodingInstructions)switch(b(n.data),n.data.type){case"decompress":switch(n.data.algorithm){case Ns.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}}},Lc=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 pr(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 b(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];b(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 l=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.dataStartPos+A,a.data.byteLength,c);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:A}),l}async performClusterLookup(e,A,r,n,a){let{demuxer:i,segment:s}=this.internalTrack,o=null,c=null,l=-1;if(e){let{blockIndex:w,correctBlockFound:D}=A(e);if(D)return this.fetchPacketInCluster(e,w,a);w!==-1&&(c=e,l=w)}let u=ye(this.internalTrack.cuePoints,r,w=>w.time),g=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(g?.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-Ut;){if(o){let M=o.trackData.get(this.internalTrack.id);if(M&&M.startTimestamp>n)break}let w=i.reader.requestSliceRange(y,Ut,YA);if(w instanceof Promise&&(w=await w),!w)break;let D=y,E=vA(w);if(!E||!Vi.includes(E.id)&&E.id!==j.Void){let M=await Ug(i.reader,D,Vi,Math.min(s.elementEndPos??1/0,D+lw));if(M){y=M;continue}else break}let C=E.id,G=E.size,S=w.filePos;if(C===j.Cluster){o=await i.readCluster(D,s),G=o.elementEndPos-S;let{blockIndex:M,correctBlockFound:R}=A(o);if(R)return this.fetchPacketInCluster(o,M,a);M!==-1&&(c=o,l=M)}G===void 0&&(b(C!==j.Cluster),G=(await Hc(i.reader,S,zs,s.elementEndPos)).pos-S);let k=S+G;if(s.elementEndPos===null){let M=i.reader.requestSliceRange(k,Ut,YA);if(M instanceof Promise&&(M=await M),!M)break;if(zc(M)===j.Segment){s.elementEndPos=k;break}}y=k}if(g&&(!c||c.elementStartPos<g.clusterPosition)){let w=this.internalTrack.cuePoints[u-1];b(!w||w.time<g.time);let D=w?.time??-1/0;return this.performClusterLookup(null,A,D,n,a)}return c?this.fetchPacketInCluster(c,l,a):null}},Lg=class extends Lc{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?Dc(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Cc(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}},jg=class extends Lc{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 Hs=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),l=t.fileSize!==null?t.fileSize-a:null,u=vs(c,l);if(u.header&&(!r||u.header.sampleRate===r.sampleRate&&u.header.mpegVersionId===r.mpegVersionId&&u.header.layer===r.layer&&Vr(u.header.channel)===Vr(r.channel)))return{header:u.header,startPos:a};s.filePos=o+u.bytesAdvanced,a=s.filePos}}return null};var jc=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 zt,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 Vg(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let s=this.reader.requestSlice(this.lastLoadedPos,Xt);if(s instanceof Promise&&(s=await s),!s){this.lastSampleLoaded=!0;return}let o=OA(s);if(!o)break;this.lastLoadedPos=s.filePos+o.size}let e=await Hs(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=Bc(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===pc||s===wc){if(!this.xingData){let c=this.reader.requestSlice(e.startPos+r+4,12);if(c instanceof Promise&&(c=await c),c){let l=te(c,12),u=Ge(l),g=u.getUint32(0,!1);this.xingData={frameCount:g&Ys.FrameCount?u.getUint32(4,!1):null,fileSize:g&Ys.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,Xt);if(n instanceof Promise&&(n=await n),!n)break;let a=OA(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>=Us){let n=this.reader.requestSlice(this.reader.fileSize-Us,Us);n instanceof Promise&&(n=await n),b(n),je(n,3)==="TAG"&&gw(n,this.metadataTags)}return this.metadataTags}finally{e()}}},Vg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return b(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(b(e.firstFrameHeader!==null),b(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=_p(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 Je}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return b(this.demuxer.firstFrameHeader),Vr(this.demuxer.firstFrameHeader.channel)}getSampleRate(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:Vr(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=hr(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 Kg=1399285583,yC=79764919,dw=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^yC:e<<1;dw[t]=e>>>0&4294967295}var fw=t=>{let e=Ge(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^dw[r>>>24^a])>>>0}return e.setUint32(22,A,!0),r},mw=(t,e,A)=>{let r=0,n=null;if(t.length>0)if(e.codec==="vorbis"){b(e.vorbisInfo);let a=e.vorbisInfo.modeBlockflags.length,s=(1<<pp(a-1))-1<<1,o=(t[0]&s)>>1;if(o>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let c=A,l=e.vorbisInfo.modeBlockflags[o];if(n=e.vorbisInfo.blocksizes[l],l===1){let u=(s|1)+1,g=t[0]&u?1:0;c=e.vorbisInfo.blocksizes[g]}r=c!==null?c+n>>2:0}else e.codec==="opus"&&(r=Vp(t).durationInSamples);return{durationInSamples:r,vorbisBlockSize:n}},hw=t=>{let e="audio/ogg";if(t.codecStrings){let A=[...new Set(t.codecStrings)];e+=`; codecs="${A.join(", ")}"`}return e};var Xr=27,On=282,pw=On+255*255,$i=t=>{let e=t.filePos;if(vn(t)!==Kg)return null;t.skip(1);let r=ne(t),n=Bw(t),a=vn(t),i=vn(t),s=vn(t),o=ne(t),c=new Uint8Array(o);for(let f=0;f<o;f++)c[f]=ne(t);let l=27+o,u=c.reduce((f,p)=>f+p,0),g=l+u;return{headerStartPos:e,totalSize:g,dataStartPos:e+l,dataSize:u,headerType:r,granulePosition:n,serialNumber:a,sequenceNumber:i,checksum:s,lacingValues:c}},ww=(t,e)=>{for(;t.filePos<e-3;){let A=vn(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===Kg)return!0;t.skip(1)}}return!1};var Vc=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,Xr,On);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 Wg(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=Ge(e.data);A.numberOfChannels=c.getUint8(11),A.sampleRate=c.getUint32(12,!0);let l=c.getUint8(28);A.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:Kp(a.data).modeBlockflags},Ms(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=bc(e.data);A.numberOfChannels=a.outputChannelCount,A.sampleRate=Sn,A.codecInfo.opusInfo={preSkip:a.preSkip},Ms(n.data.subarray(8),this.metadataTags)}async readPacket(e,A){b(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),b(u);let g=te(u,n.dataSize);for(;;){if(i===n.lacingValues.length){s.push(g.subarray(r,a));break}let p=n.lacingValues[i];if(a+=p,p<255){s.push(g.subarray(r,a));break e}i++}let f=n.headerStartPos+n.totalSize;for(;;){let p=this.reader.requestSliceRange(f,Xr,On);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,g)=>u+g.length,0);if(o===0)return null;let c=new Uint8Array(o),l=0;for(let u=0;u<s.length;u++){let g=s[u];c.set(g,l),l+=g.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,Xr,On);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 hw({codecStrings:e.filter(Boolean)})}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Wg=class{constructor(e,A){this.bitstream=e,this.demuxer=A,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new zt,this.internalSampleRate=e.codecInfo.codec==="opus"?Sn:e.sampleRate}getType(){return"audio"}getId(){return this.bitstream.serialNumber}getNumber(){let e=this.demuxer.trackBackings.findIndex(A=>A.bitstream===this.bitstream);return b(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 b(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 Je}getDisposition(){return{...Dt,primary:!1}}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(b(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,A,r){if(!e)return null;let{durationInSamples:n,vorbisBlockSize:a}=mw(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){b(this.bitstream.lastMetadataPacket);let A=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!A)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(b(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=pr(e*this.internalSampleRate);if(r===0)return this.getFirstPacket(A);if(r<0)return null;b(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,E=Math.floor((D+i)/2),C=E;for(;;){let G=Math.min(C+pw,i-Xr),S=this.demuxer.reader.requestSlice(C,G-C);if(S instanceof Promise&&(S=await S),b(S),!ww(S,G)){i=E+Xr;continue e}let M=this.demuxer.reader.requestSliceRange(S.filePos,Xr,On);M instanceof Promise&&(M=await M),b(M);let R=$i(M);b(R);let N=!1;if(R.serialNumber===this.bitstream.serialNumber)N=!0;else{let F=this.demuxer.reader.requestSlice(R.headerStartPos,R.totalSize);F instanceof Promise&&(F=await F),b(F);let K=te(F,R.totalSize);N=fw(K)===R.checksum}if(!N){C=R.headerStartPos+4;continue}if(N&&R.serialNumber!==this.bitstream.serialNumber){C=R.headerStartPos+R.totalSize;continue}if(R.granulePosition===-1){C=R.headerStartPos+R.totalSize;continue}this.granulePositionToTimestampInSamples(R.granulePosition)>r?i=R.headerStartPos:(a=R,s.push(R));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,l=[c];for(;!(c.serialNumber===this.bitstream.serialNumber&&c.granulePosition===a.granulePosition);){let D=c.headerStartPos+c.totalSize,E=this.demuxer.reader.requestSliceRange(D,Xr,On);E instanceof Promise&&(E=await E),b(E);let C=$i(E);b(C),c=C,c.serialNumber===this.bitstream.serialNumber&&l.push(c)}b(c.granulePosition!==-1);let u=null,g,f,p=c,h=0;if(c.headerStartPos===n.startPage.headerStartPos)g=this.granulePositionToTimestampInSamples(0),f=!0,u=0;else{g=0,f=!1;for(let C=c.lacingValues.length-1;C>=0;C--)if(c.lacingValues[C]<255){u=C+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 C=yw(l,c,u);b(C);let G=Pw(l,C.page,C.segmentIndex);G&&(c=G.page,u=G.segmentIndex)}else for(;;){let C=yw(l,c,u);if(!C)break;let G=Pw(l,C.page,C.segmentIndex);if(!G)break;if(c=G.page,u=G.segmentIndex,C.page.headerStartPos!==p.headerStartPos){p=C.page,h=C.segmentIndex;break}}}let y=null,w=null;for(;c!==null;){b(u!==null);let D=await this.demuxer.readPacket(c,u);if(!D)break;if(!(c.headerStartPos===n.startPage.headerStartPos&&u<n.startSegmentIndex)){let G=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:g,vorbisLastBlocksize:w?.vorbisBlockSize??null},A);b(G);let S=this.encodedPacketToMetadata.get(G);if(b(S),!f&&D.endPage.headerStartPos===p.headerStartPos&&D.endSegmentIndex===h?(g=this.granulePositionToTimestampInSamples(c.granulePosition),f=!0,G=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:g-S.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},A),b(G),S=this.encodedPacketToMetadata.get(G),b(S)):g+=S.durationInSamples,y=G,w=S,f&&(Math.max(g,0)>r||Math.max(S.timestampInSamples,0)===r))break}let C=await this.demuxer.findNextPacketStart(D);if(!C)break;c=C.startPage,u=C.startSegmentIndex}return y}async getPacketSequential(e,A){let r=await this.sequentialScanMutex.acquire();try{let n=pr(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);b(c),this.sequentialScanCache.length>0&&b(_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)}},Pw=(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(b(n===-1),!(r.headerType&1)){n=0;break}let i=Eg(t,s=>s.headerStartPos<r.headerStartPos);if(!i)return null;r=i,n=r.lacingValues.length}if(b(n!==-1),n===r.lacingValues.length){let a=t[t.indexOf(r)+1];b(a),r=a,n=0}return{page:r,segmentIndex:n}},yw=(t,e,A)=>{if(A>0)return{page:e,segmentIndex:A-1};let r=Eg(t,n=>n.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var Er;(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"})(Er||(Er={}));var Kc=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),b(e);let A=je(e,4),r=A!=="RIFX",n=A==="RF64",a=Tr(e,r),i=n?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if(je(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let o=0,c=null,l=e.filePos;for(;i===null||l<i;){let g=this.reader.requestSlice(l,8);if(g instanceof Promise&&(g=await g),!g)break;let f=je(g,4),p=Tr(g,r),h=g.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=g.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=$g(y,r);c=$g(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);l=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 Zg(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=Tr(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 l=Xi(n,r),u=A-18;if(Math.min(u,l)>=22&&a===Er.EXTENSIBLE){n.skip(6);let f=te(n,16);a=f[0]|f[1]<<8}}(a===Er.MULAW||a===Er.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=je(n,4);if(a!=="INFO"&&a!=="INF0")return;let i=n.filePos;for(;i<=e+A-8;){n.filePos=i;let s=je(n,4),o=Tr(n,r),c=te(n,o),l=0;for(let g=0;g<c.length&&c[g]!==0;g++)l++;let u=String.fromCharCode(...c.subarray(0,l));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 g=u.split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=new Date(u);Number.isNaN(g.getTime())||(this.metadataTags.date??=g)}break;case"YEAR":{let g=Number.parseInt(u,10);Number.isInteger(g)&&g>0&&(this.metadataTags.date??=new Date(g,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=OA(r);if(n){let a=A-Xt;if(n.size=Math.min(n.size,a),n.size>0){let i=r.slice(e+Xt,n.size);Zi(i,n,this.metadataTags)}}}getCodec(){if(b(this.audioInfo),this.audioInfo.format===Er.MULAW)return"ulaw";if(this.audioInfo.format===Er.ALAW)return"alaw";if(this.audioInfo.format===Er.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===Er.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,Zg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(b(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}getNumberOfChannels(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return b(this.demuxer.dataSize!==-1),this.demuxer.dataSize/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getName(){return null}getLanguageCode(){return Je}getDisposition(){return{...Dt}}async getPacketAtIndex(e,A){b(e>=0),b(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),b(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){b(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;b(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){b(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 _n=7,_A=9,MA=t=>{let e=t.filePos,A=te(t,9),r=new xe(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 l=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 g=null;return i===1?t.filePos-=2:g=r.readBits(16),{objectType:s,samplingFrequencyIndex:o,channelConfiguration:c,frameLength:l,numberOfAacFrames:u,crcCheck:g,startPos:e}};var qs=1024,Wc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.trackBackings=[],this.readingMutex=new zt,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();b(this.firstFrameHeader),this.trackBackings=[new Jg(this)]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let i=this.reader.requestSlice(this.lastLoadedPos,Xt);if(i instanceof Promise&&(i=await i),!i){this.lastSampleLoaded=!0;return}let s=OA(i);if(!s)break;this.lastLoadedPos=i.filePos+s.size}let e=this.reader.requestSliceRange(this.lastLoadedPos,_n,_A);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let A=MA(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=XA[A.samplingFrequencyIndex];b(r!==void 0);let n=qs/r,a={timestamp:this.nextTimestampInSamples/r,duration:n,dataStart:A.startPos,dataSize:A.frameLength};this.loadedSamples.push(a),this.nextTimestampInSamples+=qs,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,Xt);if(r instanceof Promise&&(r=await r),!r)break;let n=OA(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()}}},Jg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return this.getSampleRate()/qs}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 Je}getCodec(){return"aac"}getInternalCodecId(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){b(this.demuxer.firstFrameHeader);let e=qr[this.demuxer.firstFrameHeader.channelConfiguration];return b(e!==void 0),e}getSampleRate(){b(this.demuxer.firstFrameHeader);let e=XA[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return b(e!==void 0),e}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(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=hr(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 Iw=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,Dw=(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}},Cw=t=>{let e=0,A=new xe(te(t,1));for(;A.readBits(1)===1;)e++;if(e===0)return A.readBits(7);let r=[],n=e-1,a=new xe(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 l=a.readBits(1);c<2||r.unshift(l)}return r.reduce((o,c,l)=>o|c<<l,0)},bw=(t,e)=>{if(e==="uncommon-u16")return Xe(t)+1;if(e==="uncommon-u8")return ne(t)+1;if(typeof e=="number")return e;Zt(e),b(!1)},Ew=(t,e)=>e==="uncommon-u16"?Xe(t):e==="uncommon-u16-10"?Xe(t)*10:e==="uncommon-u8"?ne(t):typeof e=="number"?e:null,Tw=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 Zc=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 zt,this.lastSampleLoaded=!1,this.reader=e._reader}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTrackBackings(){return await this.readMetadata(),b(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.`);b(A);let r=ne(A),n=SA(A),a=(r&128)!==0;switch(r&127){case Wr.STREAMINFO:{let s=this.reader.requestSlice(e,n);if(s instanceof Promise&&(s=await s),b(s),s===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let o=te(s,34),c=new xe(o),l=c.readBits(16),u=c.readBits(16),g=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:l,maximumBlockSize:u,minimumFrameSize:g,maximumFrameSize:f,description:w},this.trackBacking=new Xg(this);break}case Wr.VORBIS_COMMENT:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),b(s),Ms(te(s,n),this.metadataTags);break}case Wr.PICTURE:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),b(s);let o=J(s),c=J(s),l=mt.decode(te(s,c)),u=J(s),g=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:l,kind:o===3?"coverFront":o===4?"coverBack":"unknown",description:g});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}){b(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,l=await this.reader.requestSliceRange(e,n,c);if(!l)return null;let u=this.readFlacFrameHeader({slice:l,isFirstPacket:A});if(!u)return null;for(l.filePos=e+s;;){if(l.filePos>l.end-r)return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:l.end-e,isLastFrame:!0};if(ne(l)===255){let f=l.filePos,p=ne(l),h=this.blockingBit===1?249:248;if(p!==h){l.filePos=f;continue}l.skip(-2);let y=l.filePos-e,w=this.readFlacFrameHeader({slice:l,isFirstPacket:!1});if(!w){l.filePos=f;continue}if(this.blockingBit===0){if(w.num-u.num!==1){l.filePos=f;continue}}else if(w.num-u.num!==u.blockSize){l.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 xe(n);if(a.readBits(15)!==32764)return null;if(this.blockingBit===null){b(A);let y=a.readBits(1);this.blockingBit=y}else if(this.blockingBit===1){if(b(!A),a.readBits(1)!==1)return null}else if(this.blockingBit===0){if(b(!A),a.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let s=Iw(a.readBits(4));if(!s)return null;b(this.audioInfo);let o=Dw(a.readBits(4),this.audioInfo.sampleRate);if(!o||(a.readBits(4),a.readBits(3),a.readBits(1)!==0))return null;let l=Cw(e),u=bw(e,s),g=Ew(e,o);if(g===null||g!==this.audioInfo.sampleRate)return null;let f=e.filePos-r,p=ne(e);e.skip(-f),e.skip(-1);let h=Tw(te(e,f));return p!==h?null:{num:l,blockSize:u,sampleRate:g}}async advanceReader(){await this.readMetadata(),b(this.lastLoadedPos!==null),b(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}}},Xg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Je}getTimeResolution(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.totalSamples===0?null:this.demuxer.audioInfo.totalSamples/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(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(b(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)}b(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 kw=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.",xw=new Set,$c=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),b(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 l=await this.readSection(a,!0,!o);if(!l)break;let u=3,g=32,f=!1;if(!o&&l.pid!==0&&!(l.payload[0]===0&&l.payload[1]===0&&l.payload[2]===1)){let y=new xe(l.payload),w=y.readAlignedByte();y.skipBits(8*w),f=y.readBits(8)===2}if(l.pid===0&&!s){let h=new xe(l.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>g;){let D=h.readBits(16);h.skipBits(3);let E=h.readBits(13);if(D!==0){if(i!==null)throw new Error("Only files with a single program are supported.");i=E}}if(i===null)throw new Error("Program Association Table must link to a Program Map Table.");s=!0}else if((l.pid===i||f)&&!o){let h=new xe(l.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 E=h.readBits(10);for(h.skipBits(8*E);8*(w+u)-h.pos>g;){let C=h.readBits(8);h.skipBits(3);let G=h.readBits(13);h.skipBits(6);let S=h.readBits(10),k=h.pos+8*S,M=!1,R=!1;for(;h.pos<k;){let V=h.readBits(8),F=h.readBits(8);V===106?M=!0:(V===122||V===204)&&(R=!0),h.skipBits(8*F)}let N=null;switch(C){case 27:case 36:N={type:"video",codec:C===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(C===3||C===4)V="mp3";else if(C===15)V="aac";else if(C===129)V="ac3";else if(C===135)V="eac3";else throw new Error("Unreachable.");N={type:"audio",codec:V,decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}}break;case 6:R?N={type:"audio",codec:"eac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}:M&&(N={type:"audio",codec:"ac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1});break;default:xw.has(C)||(console.warn(`Note: MPEG-TS streams with stream_type 0x${C.toString(16)} are not currently supported.`),xw.add(C))}N&&this.elementaryStreams.push({demuxer:this,pid:G,streamType:C,initialized:!1,firstSection:null,canBeTrustedWithKeyPackets:!1,info:N,referencePesPackets:[]})}o=!0}else{let h=this.elementaryStreams.find(y=>y.pid===l.pid);e:if(h&&!h.initialized){let y=ea(l,!0);if(!y)throw new Error(`Couldn't read first PES packet for Elementary Stream with PID ${h.pid}`);if(h.firstSection=l,h.canBeTrustedWithKeyPackets=l.randomAccessIndicator===1,this.input._initInput){let E=(await this.input._initInput._getDemuxer()).elementaryStreams.find(C=>C.pid===l.pid&&C.info.codec===h.info.codec);if(E){h.info=E.info,h.initialized=!0;break e}}let w=new Rn(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 E=h.info.avcCodecInfo.sequenceParameterSets[0];b(E);let C=_s(E);h.info.width=C.displayWidth,h.info.height=C.displayHeight;let G=C.pixelAspectRatio.num,S=C.pixelAspectRatio.den;G>0&&S>0&&(G>S?(h.info.squarePixelWidth=Math.round(h.info.width*G/S),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*S/G))),h.info.colorSpace={primaries:Dn[C.colourPrimaries],transfer:Cn[C.transferCharacteristics],matrix:bn[C.matrixCoefficients],fullRange:!!C.fullRangeFlag},h.info.reorderSize=C.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 C=h.info.hevcCodecInfo.arrays.find(S=>S.nalUnitType===Ct.SPS_NUT).nalUnits[0];b(C);let G=Mg(C);h.info.width=G.displayWidth,h.info.height=G.displayHeight,G.pixelAspectRatio.num>G.pixelAspectRatio.den?(h.info.squarePixelWidth=Math.round(h.info.width*G.pixelAspectRatio.num/G.pixelAspectRatio.den),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*G.pixelAspectRatio.den/G.pixelAspectRatio.num)),h.info.colorSpace={primaries:Dn[G.colourPrimaries],transfer:Cn[G.transferCharacteristics],matrix:bn[G.matrixCoefficients],fullRange:!!G.fullRangeFlag},h.info.reorderSize=G.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=_t.tempFromBytes(w.suppliedPacket.data),E=MA(D);if(!E)throw new Error("Invalid AAC audio stream; could not read ADTS frame header from first packet.");h.info.aacCodecInfo={isMpeg2:!1,objectType:E.objectType},h.info.numberOfChannels=qr[E.channelConfiguration],h.info.sampleRate=XA[E.samplingFrequencyIndex]}else if(h.info.codec==="mp3"){let D=J(_t.tempFromBytes(w.suppliedPacket.data)),E=vs(D,w.suppliedPacket.data.byteLength);if(!E.header)throw new Error("Invalid MP3 audio stream; could not read frame header from first packet.");h.info.numberOfChannels=Vr(E.header.channel),h.info.sampleRate=E.header.sampleRate}else if(h.info.codec==="ac3"){let D=Ec(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=Rs[D.acmod]+D.lfeon,h.info.sampleRate=Yn[D.fscod]}else if(h.info.codec==="eac3"){let D=Tc(w.suppliedPacket.data);if(!D)throw new Error("Invalid E-AC-3 audio stream; could not read sync frame from first packet.");let E=kc(D);if(E===null)throw new Error("Invalid E-AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=xc(D),h.info.sampleRate=E}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 ed(c)):this.trackBackingEntries.push(new td(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 kw(e)}async readSection(e,A,r=!1){let n=e,a=e,i=[],s=0,o=null,c=!0,l=0;for(;;){let g=await this.readPacket(a);if(a+=this.packetStride,!g)break;if(o){if(g.pid!==o.pid){if(r)break;continue}if(g.payloadUnitStartIndicator===1)break}else{if(g.payloadUnitStartIndicator===0)break;o=g}let f=!!(g.adaptationFieldControl&2),p=!!(g.adaptationFieldControl&1),h=0;if(f&&(h=1+g.body[0],g===o&&h>1&&(l=g.body[1]>>6&1)),p&&(h===0?(i.push(g.body),s+=g.body.byteLength):(i.push(g.body.subarray(h)),s+=g.body.byteLength-h)),n=a,!A&&s>=64){c=!1;break}if(hr(this.sectionEndPositions,n,w=>w)!==-1){c=!1;break}}if(c){let g=ye(this.sectionEndPositions,n,f=>f);this.sectionEndPositions.splice(g+1,0,n)}if(!o)return null;let u;if(i.length===1)u=i[0];else{let g=i.reduce((p,h)=>p+h.length,0);u=new Uint8Array(g);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:l}}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=Xe(A),a=n>>15,i=n>>14&1,s=n>>13&1,o=n&8191,c=ne(A),l=c>>6,u=c>>4&3,g=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,l=r[3],u=l>>6,g=l>>4&3,f=l&15;return{payloadUnitStartIndicator:s,pid:c,adaptationFieldControl:g,body:r.subarray(4)}}},Mn=(t,e)=>{if(t.payload.byteLength<3)return null;let A=new xe(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)=>{b(t.endPos!==null);let A=Mn(t,e);if(!A)return null;let r=new xe(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;b(Number.isInteger(o));let c=t.payload.subarray(o,n>0?a+n:t.payload.byteLength);return{...A,data:c}},Jc=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++,b(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 Je}getDisposition(){return{...Dt,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;b(A);let r=ea(A,!0);b(r);let n=new Rn(this.elementaryStream,r),a=new Ls(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 l=await r.readNext();if(!l)return null;this.packetBuffers.delete(e);let u=this.createEncodedPacket(l.packet,l.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,l.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);b(i);let s=ea(i,!0);b(s);let o=new Rn(this.elementaryStream,s);r=new Ls(this,o);let c=e.sequenceNumber;for(;;){let l=await r.readNext();if(!l)return null;if(l.packet.sequenceNumber>c){let u=this.createEncodedPacket(l.packet,l.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,l.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=pr(e*9e4),a=this.elementaryStream.demuxer,{reader:i,seekChunkSize:s}=a,o=this.elementaryStream.pid,c=async(C,G,S)=>{let k=C;for(;k<G;){let M=await a.readPacketHeader(k);if(!M)return null;if(M.pid===o&&M.payloadUnitStartIndicator===1){let R=await a.readSection(k,S);if(!R)return null;let N=Mn(R,!1);if(N&&N.pts!==null)return{pesPacketHeader:N,section:R}}k+=a.packetStride}return null},l=this.elementaryStream.firstSection;b(l);let u=Mn(l,!0);if(b(u),n<u.pts)return null;let g,f=this.elementaryStream.referencePesPackets,p=ye(f,n,C=>C.pts),h=p!==-1?f[p]:null;if(h&&n-h.pts<9e4/2)g=h.sectionStartPos;else{let C=0;if(i.fileSize!==null){let G=Math.ceil(i.fileSize/s);if(G>1){let S=0,k=G-1;for(C=S;S<=k;){let M=Math.floor((S+k)/2),R=dc(M*s,a.packetStride)+u.sectionStartPos,N=R+s,V=await c(R,N,!1);if(!V){k=M-1;continue}V.pesPacketHeader.pts<=n?(C=M,S=M+1):k=M-1}}}g=dc(C*s,a.packetStride)+u.sectionStartPos}let w=(await c(g,i.fileSize??1/0,!1))?.pesPacketHeader??null;w||(w=u);let D=this.getReorderSize(),E=async(C,G)=>{let S=await a.readSection(C,!0);b(S);let k=ea(S,!0);b(k);let M=new Rn(this.elementaryStream,k),R=new Ls(this,M);for(;!((_e(R.presentationOrderPackets)?.pts??-1/0)>=n||!await R.readNextPacket()););let N=vi(R.presentationOrderPackets,G);if(N===-1)return null;let V=R.presentationOrderPackets[N],F=N===0?0:V.pts-R.presentationOrderPackets[N-1].pts;for(;R.decodeOrderPackets[0]!==V;)R.decodeOrderPackets.shift();R.lastDuration=F;let K=await R.readNext();b(K);let L=this.createEncodedPacket(K.packet,K.duration,r);return this.packetBuffers.set(L,R),this.packetSectionStarts.set(L,K.packet.sectionStartPos),L};if(!A||this.allPacketsAreKeyPackets()){e:for(;;){let C=w.sectionStartPos+a.packetStride;for(;;){let G=await a.readPacketHeader(C);if(!G)break e;if(G.pid===o&&G.payloadUnitStartIndicator===1){let S=await a.readSection(C,!1);if(S){let k=Mn(S,!1);if(k&&k.pts!==null){if(k.pts>n)break e;w=k,Ad(this.elementaryStream,w);break}}}C+=a.packetStride}}e:for(let C=0;C<D+1;C++){let G=w.sectionStartPos-a.packetStride;for(;G>=a.packetOffset;){let S=await a.readPacketHeader(G);if(!S)break e;if(S.pid===o&&S.payloadUnitStartIndicator===1){let k=await a.readSection(G,!1);if(k){let M=Mn(k,!1);if(M&&M.pts!==null){w=M;break}}}G-=a.packetStride}}return E(w.sectionStartPos,C=>C.pts<=n)}else{let C=g,G=null,S=!this.elementaryStream.canBeTrustedWithKeyPackets;for(;;){let k=null,M=C<=u.sectionStartPos,R,N=null;if(M)R=u,N=l;else{let K=await c(C,i.fileSize??1/0,S);R=K?.pesPacketHeader??null,N=K?.section??null}let V=!1,F=0;e:for(;R&&!(G!==null&&R.sectionStartPos>=G);){if(R.pts<=n){let L;if(this.elementaryStream.canBeTrustedWithKeyPackets)L=R.randomAccessIndicator===1;else{b(N);let _=ea(N,!0);b(_);let W=new Rn(this.elementaryStream,_);await W.markNextPacket(),L=W.suppliedPacket?.randomAccessIndicator===1}L&&(k=R)}if(R.pts>n&&(V=!0),V&&(F++,F>D))break;let K=R.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=Mn(_,!1);if(W&&W.pts!==null){R=W,N=_,Ad(this.elementaryStream,R);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=Mn(Ae,!1);if(De&&De.pts!==null){K=De;break}}}W-=a.packetStride}}let L=await E(K.sectionStartPos,_=>_.pts<=n&&_.randomAccessIndicator===1);return b(L),L}if(M)return null;G=C,C=Math.max(dc(C-u.sectionStartPos-s,a.packetStride)+u.sectionStartPos,u.sectionStartPos)}}}},ed=class extends Jc{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 b(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!1}getReorderSize(){return this.elementaryStream.info.reorderSize}},td=class extends Jc{getType(){return"audio"}getCodec(){return this.elementaryStream.info.codec}getNumberOfChannels(){return this.elementaryStream.info.numberOfChannels}getSampleRate(){return this.elementaryStream.info.sampleRate}async getDecoderConfig(){return b(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!0}getReorderSize(){return 0}},Ad=(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},Rn=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 b(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(b(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(){b(!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 l=s.indexOf(0,c);if(l===-1||l>=o)break;c=l;let u=i+c;if(c+4>=o){this.seekTo(u);break}let g=s[c+1],f=s[c+2],p=s[c+3],h=0,y=null;if(g===0&&f===0&&p===1?(h=4,y=s[c+4]):g===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):Kr(y);if(A==="avc"?D===$t.AUD:D===Ct.AUD_NUT){let C=w-n;return this.seekTo(n),this.supplyPacket(C,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(_A);if(o instanceof Promise&&(o=await o),o<_A)return;let c=this.readBytes(_A),l=MA(_t.tempFromBytes(c));if(l){this.seekTo(s);let u=this.ensureBuffered(l.frameLength);return u instanceof Promise&&(u=await u),this.supplyPacket(u,Math.round(qs*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),l=Ge(c).getUint32(0),u=vs(l,null);if(u.header){this.seekTo(s);let g=this.ensureBuffered(u.header.totalSize);g instanceof Promise&&(g=await g);let f=u.header.audioSamplesInFrame*9e4/e.info.sampleRate;return this.supplyPacket(g,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 l=c[4]>>6,u=c[4]&63;if(l===3||u>37){this.seekTo(s+1);continue}let g=Wp[3*u+l];b(g!==void 0),this.seekTo(s),o=this.ensureBuffered(g),o instanceof Promise&&(o=await o);let f=Math.round(Zp*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=Rg[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)b(this.nextPts!==null),n=this.nextPts;else{if(r.pts===null)throw new Error(Gw);n=r.pts,Ad(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=Zr(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}},Ls=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(),b(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);b(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(b(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 Xc="application/vnd.apple.mpegurl",rd="#EXT-X-STREAM-INF:",nd="#EXT-X-I-FRAME-STREAM-INF:",id="#EXT-X-MEDIA:",js="#EXTINF:",ad="#EXT-X-MAP:",sd="#EXT-X-KEY:",od="#EXT-X-MEDIA-SEQUENCE:",cd="#EXT-X-BYTERANGE:",ud="#EXT-X-PROGRAM-DATE-TIME:",Sw="#EXT-X-DISCONTINUITY",ld="#EXT-X-TARGETDURATION:",Yw="#EXT-X-ENDLIST",gd="#EXT-X-PLAYLIST-TYPE:",vw="#EXT-X-I-FRAMES-ONLY",eu=t=>t.length===0||t.startsWith("#")&&!t.startsWith("#EXT"),xr=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 tu=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 ru(this,A,r))}else if(A.type==="audio"){let r=xn(e,n=>n.getType()==="audio")+1;e.push(new nu(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 ru(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 nu(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}},Au=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(),b(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){b(e.sequenceNumber>=0),b(this.segmentedInput.firstSegment);let n=await this.segmentedInput.getMediaOffset(A,r.input),a=A.timestamp-this.segmentedInput.firstSegment.timestamp,i=e.clone({timestamp:Cs(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(),b(this.segmentedInput.firstSegment),b(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 l=(await this.segmentedInput.getInputForSegment(s).getTracks()).find(g=>g.type===n.track.type&&g.number===n.track.number);if(!l){i=s;continue}let u=await l._backing.getFirstPacket(A);return u?this.createAdjustedPacket(u,s,l):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,l=r?await s._backing.getKeyPacket(c,A):await s._backing.getPacket(c,A);if(!l){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}return this.createAdjustedPacket(l,n,s)}return null}},ru=class extends Au{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())}},nu=class extends Au{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 fd=0,md=1/0,IC=null;typeof FinalizationRegistry<"u"&&(IC=new FinalizationRegistry(t=>{t()}));var qt=class extends ZA{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 Bt;return this._sizePromise??=(async()=>{let e=this._getFileSize();return e!==void 0||(await this._read(0,1,fd,md),e=this._getFileSize(),b(e!==void 0)),e})()}async getSize(){if(this._disposed)throw new Bt;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 iu(this,e,A)}_dispatchRead(e,A){this.onread?.(e,A),this._emit("read",{start:e,end:A})}ref(){return new Qn(this)}_incrementRefCount(){this._refCount++}_decrementRefCount(){this._refCount--,this._refCount===0&&(this._dispose(),this._disposed=!0)}},Qn=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;b(e._refCount>0),e._decrementRefCount(),e._refFinalizationRegistry?.unregister(this),this._freed=!0,this._source=null}[Symbol.dispose](){this.freed||this.free()}},tr=class extends qt{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 qt||n instanceof Qn))throw new TypeError("requestHandler must return or resolve to a Source or SourceRef.");let a=n instanceof qt?n.ref():n;return a.source._usedForHls||=this._usedForHls,a};return A instanceof Promise?A.then(r):r(A)}},hd=(t,e)=>t.path===e.path,Vs=class extends tr{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 qt?s.ref():s;return this._root=o,this._rootRequest=null,o};a instanceof Promise?this._rootRequest=a.then(i):(i(a),b(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 Ks=class extends qt{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&&(!xs(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 dd({maxCacheSize:A.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:CC.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){b(e.strictTarget);let A=this._readers.get(e);for(A===void 0&&("stream"in this._blob&&!Tn()&&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()}},DC=.5*2**20;var Ws=class extends qt{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&&(!xs(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,l=>l.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 l=r;l<this._cache.length;l++){let u=this._cache[l];if(u.start>=A)break;let g=Math.max(e,u.start);g>a&&this._throwDueToCacheMiss();let f=Math.min(A,u.end);g<f&&(i.set(u.bytes.subarray(g-u.start,f-u.start),g-e),a=f)}if(a===A)return{bytes:i,view:Ge(i),offset:e};this._currentIndex>a&&this._throwDueToCacheMiss();let{promise:s,resolve:o,reject:c}=gt();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(l=>{if(this._pulling=!1,this._pendingSlices.length>0)this._pendingSlices.forEach(u=>u.reject(l)),this._pendingSlices.length=0;else throw l})),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:Ge(i.bytes),offset:i.start}),this._pendingSlices.splice(a,1),a--))}for(this._cache.push({start:r,end:n,bytes:A,view:Ge(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()}},CC={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(fc(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)),l=Math.min(c,o);e=Math.max(e,n.startPos+l)}}return e=Math.max(e,t+DC),{start:t,end:e}}},dd=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){b(!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);b(i<=e&&A<=s);let o=null,c=ye(this.cache,e,G=>G.start),l=c!==-1?this.cache[c]:null;l&&l.start<=e&&A<=l.end&&(l.age=this.nextAge++,o={bytes:l.bytes,view:l.view,offset:l.start});let u=ye(this.cache,i,G=>G.start),g=o?null:new Uint8Array(A-e),f=0,p=i,h=[];if(u!==-1){for(let G=u;G<this.cache.length;G++){let S=this.cache[G];if(S.start>=s)break;if(S.end<=i)continue;let k=Math.max(i,S.start),M=Math.min(s,S.end);if(b(k<=M),p<k&&h.push({start:p,end:k}),p=M,g){let R=Math.max(e,S.start),N=Math.min(A,S.end);if(R<N){let V=R-e;g.set(S.bytes.subarray(R-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(g&&f>=g.length&&(o={bytes:g,view:Ge(g),offset:e}),h.length===0)return b(o),o;let{promise:y,resolve:w,reject:D}=gt(),E=[];for(let G of h){let S=Math.max(e,G.start),k=Math.min(A,G.end);S===G.start&&k===G.end?E.push(G):S<k&&E.push({start:S,end:k})}let C=g&&{start:e,bytes:g,holes:E,resolve:w,reject:D};e:for(let G of h){for(let M of this.workers)if(this.checkHoleAgainstWorker(M,G,C?[C]:[])){this.checkQueuedReadsAgainstWorker(M);continue e}let S=G.end<s||this.fileSize!==null,k=this.createWorker(G.start,G.end,S);if(k)C&&(k.pendingSlices=[C]),this.runWorker(k);else{let M=ye(this.queuedReads,G.start,N=>N.hole.start),R=M!==-1?this.queuedReads[M]:null;for(R&&G.start<=R.hole.end?(R.hole.end=Math.max(R.hole.end,G.end),R.strictTarget&&=S,C&&R.pendingSlices.push(C)):(M++,R={hole:{start:G.start,end:G.end},strictTarget:S,pendingSlices:C?[C]:[],age:this.nextAge++},this.queuedReads.splice(M,0,R));M+1<this.queuedReads.length;){let N=this.queuedReads[M+1];if(N.hole.start>R.hole.end)break;R.hole.end=Math.max(R.hole.end,N.hole.end),R.pendingSlices.push(...N.pendingSlices),R.strictTarget&&=N.strictTarget,R.age=Math.min(R.age,N.age),this.queuedReads.splice(M+1,1)}}}return o||(b(g),o=y.then(G=>G&&{bytes:G,view:Ge(G),offset:e})),o}checkHoleAgainstWorker(e,A,r){if(fc(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)b(i!==null),b(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){b(!e.running),b(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);b(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){b(!e.aborted);let r=e.currentPos,n=r+A.length;this.insertIntoCache({start:r,end:n,bytes:A,view:Ge(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 l=i.holes[c];r<=l.start&&n>l.start&&(l.start=n),l.end<=l.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||fc(r,n,i.currentPos,i.targetPos)&&(this.workers.splice(a,1),a--)}}supplyFileSize(e){b(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);b(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=Ge(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=Ge(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 iu=class extends qt{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:En(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 Ow=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},_w=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}),bC=/^0[xX][0-9a-fA-F]+$/,EC=/^data:.*;base64,/i,Zs=class extends tu{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 Gg(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=Ow(w,await this.demuxer.input._getSourceUncached({path:this.path,isRoot:!1}),!1),C=await new en(D.source).requestEntireFile();b(C),e=au(C,C.length,{ignore:eu})}catch(D){w.error=D,w.hasError=!0}finally{_w(w)}}let A=!1,r=0,n=null,a=null,i=0,s=null,o=null,c=null,l=null,u=null,g=null,f=!1,p=_e(this.segments)??null,h=w=>{let D=w.indexOf("@"),E=Number(D===-1?w:w.slice(0,D));if(!Number.isInteger(E)||E<0)throw new Error(`Invalid #EXT-X-BYTERANGE length '${w}'.`);let C=null;if(D!==-1&&(C=Number(w.slice(D+1)),!Number.isInteger(C)||C<0))throw new Error(`Invalid #EXT-X-BYTERANGE offset '${w}'.`);return{length:E,offset:C}},y=w=>{i=w,p&&(b(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 E=a;if(E&&E.method==="AES-128"&&!E.iv){let k=new Uint8Array(GA),M=Ge(k);M.setUint32(8,Math.floor(i/2**32)),M.setUint32(12,i),E={...E,iv:k}}let G={path:JA(this.path,D),offset:l?.offset??0,length:l?.length??null},S={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:s,sequenceNumber:i,location:G,duration:n,encryption:E,initSegment:o,lastProgramDateTimeSeconds:u};s??=S,r+=n,this.segments.push(S)}n=null,l===null?c=null:l=null,y(i+1)}if(D.startsWith(js)){if(p){f=!0;continue}f||(u===null&&i>0&&g!==null&&(r=i*g),f=!0);let E=D.slice(js.length),C=E.indexOf(","),G=C===-1?E:E.slice(0,C),S=Number(G);if(!Number.isFinite(S)||S<0)throw new Error(`Invalid #EXTINF tag duration '${G}'.`);n=S}else if(D.startsWith(ad)){let E=new xr(D.slice(ad.length)),C=E.get("uri");if(!C)throw new Error("Invalid #EXT-X-MAP tag; missing URI attribute.");let G=E.get("byterange"),S=null;if(G!==null&&(S=h(G)),S&&S.offset===null)throw new Error("Invalid #EXT-X-MAP tag; BYTERANGE attribute must have a specified offset.");if(!p){let M={path:JA(this.path,C),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:M,duration:0,encryption:a,initSegment:null,lastProgramDateTimeSeconds:u}}n=null,l===null?c=null:l=null}else if(D.startsWith(sd)){let E=new xr(D.slice(sd.length)),C=E.get("method");if(C==="NONE")a=null;else if(C==="AES-128"){let G=E.get("uri");if(!G)throw new Error("Invalid #EXT-X-KEY: AES-128 requires a URI attribute.");let S=null,k=E.get("iv");if(k){if(!bC.test(k))throw new Error(`Unsupported IV format '${k}'.`);let R=k.slice(2);R=R.padStart(GA*2,"0"),S=new Uint8Array(GA);for(let N=0;N<GA;N++){let V=-GA*2+N;S[N]=parseInt(R.slice(V,V+2),16)}}let M=E.get("keyformat")??"identity";if(M!=="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:JA(this.path,G),iv:S,keyFormat:M}}else if(C==="SAMPLE-AES"||C==="SAMPLE-AES-CTR"){let G=E.get("uri");if(!G)throw new Error(`Invalid #EXT-X-KEY: ${C} requires a URI attribute.`);if((E.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(EC.test(G)){let M=G.indexOf(","),R=ks(G.slice(M+1));if(R.length>=8&&R[4]===112&&R[5]===115&&R[6]===115&&R[7]===104){let N=Ge(R).getUint32(0);k=Sc(R.subarray(8,Math.min(N,R.length)))}}a={method:C,psshBox:k}}else throw new Error(`Unsupported encryption method '${C}'. If you think this method should be supported, please raise an issue.`)}else if(D.startsWith(od)){let E=D.slice(od.length),C=Number(E);if(!Number.isInteger(C)||C<0)throw new Error(`Invalid EXT-X-MEDIA-SEQUENCE value '${E}'.`);y(C)}else if(D.startsWith(cd)){let E=h(D.slice(cd.length));if(E.offset===null){if(c===null)throw new Error("Invalid M3U8 file; #EXT-X-BYTERANGE without offset requires a previous byte range.");E.offset=c}l=E,c=E.offset+E.length}else if(D.startsWith(ud)){if(p)continue;let E=D.slice(ud.length),C=Date.parse(E);if(!Number.isFinite(C))continue;let G=C/1e3;if(u===G)continue;if(u===null&&this.segments.length>0){let S=_e(this.segments),k=S.timestamp+S.duration,M=G-k;for(let R of this.segments)R.timestamp+=M,R.relativeToUnixEpoch=!0;r+=M}u=G,r=G}else if(D===Sw)s=null;else if(D.startsWith(ld)){let E=D.slice(ld.length),C=Number(E);if(!Number.isFinite(C)||C<0)throw new Error(`Invalid EXT-X-TARGETDURATION value '${E}'.`);this.refreshInterval=C,g=C}else if(D===Yw){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);b(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 b(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:l}=A.encryption;return(l.keyIds===null||l.keyIds.includes(o.keyId))&&!c.some(u=>Yc(u,l))&&(c=[...c,l]),this.input._formatOptions.isobmff.resolveKeyId({...o,psshBoxes:c})})}},i=new Fn({source:new Vs(A.location.path,async o=>{b(o.isRoot);let c={...o,isRoot:!1},l,u=A.location.offset>0||A.location.length!==null;if(!A.encryption||A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR"){if(l=await this.input._getSourceCached(c),u){let f=l.source.slice(A.location.offset,A.location.length??void 0).ref();l.free(),l=f}}else if(A.encryption.method==="AES-128"){let g=A.encryption;b(g.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 en(f.source),h=tw(p,async()=>{let y={stack:[],error:void 0,hasError:!1};try{let w=Ow(y,await this.input._getSourceCached({path:g.keyUri,isRoot:!1},Mw),!1),E=await new en(w.source).requestSlice(0,GA);if(!E)throw new Error("Invalid AES-128 key; expected at least 16 bytes of data.");return{key:te(E,GA),iv:g.iv}}catch(w){y.error=w,y.hasError=!0}finally{_w(y)}},()=>{f.free()});l=new Ws(h).ref()}else b(!1);return l}),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);b(o!==-1),this.inputCache.splice(o,1)}return i}async getLiveRefreshInterval(){return this.getRemainingWaitTimeMs()===0&&await this.runUpdateSegments(),this.streamHasEnded?null:this.refreshInterval}};var ou=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()=>{b(this.input._rootSource instanceof tr);let{rootPath:e}=this.input._rootSource,A=await this.input._reader.requestEntireFile();b(A);let r=au(A,A.length,{ignore:eu}),n=[],a=[];for(let u=1;u<r.length;u++){let g=r[u];if(g.startsWith(rd)){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=JA(e,p),y=new xr(g.slice(rd.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(g.startsWith(nd)){let f=new xr(g.slice(nd.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=JA(e,p);n.push({fullPath:y,attributes:f,lineNumber:u,hasOnlyKeyPackets:!0})}else if(g.startsWith(id)){let f=new xr(g.slice(id.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=JA(e,w)),a.push({fullPath:y,attributes:f,lineNumber:u})}else if(g!==vw){if(g.startsWith(js)){let f=new Zs(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,g)=>{let f=[],p=u.attributes.get("codecs"),h;if(p)h=p.split(",").map(R=>R.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(R=>Ot.includes(jr(R))),E=h.some(R=>er.includes(jr(R)));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 R=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===y&&F.toLowerCase()==="video"});e:if(R){let N=R.attributes.get("uri");if(N===null)break e;let V=JA(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);b(_!==null),h.push(_)}}if(w!==null&&!E){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 R=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===w&&F.toLowerCase()==="audio"});e:if(R){let N=R.attributes.get("uri");if(N===null)break e;let V=JA(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);b(_!==null),h.push(_)}}h=[...new Set(h)];let C=null,G=null,S=u.attributes.getAsNumber("bandwidth");b(S!==null);let k=u.attributes.getAsNumber("average-bandwidth"),M=u.attributes.get("name");for(let R of h){let N=jr(R);if(N!==null){if(Ot.includes(N)){if(C!==null)throw new Error("Unsupported M3U8 file; multiple video codecs found in the CODECS attribute of a variant stream.");C=R;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:Je,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:C,pairingMask:1n<<BigInt(g),peakBitrate:S,averageBitrate:k,name:M,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:su(F.attributes),autoselect:su(F.attributes)||Rw(F.attributes),languageCode:Qw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:C,pairingMask:1n<<BigInt(g),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:W,height:pe}})}}}else if(er.includes(N)){if(G!==null)throw new Error("Unsupported M3U8 file; multiple audio codecs found in the CODECS attribute of a variant stream.");G=R;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:Je,lineNumber:u.lineNumber,fullPath:u.fullPath,fullCodecString:G,pairingMask:1n<<BigInt(g),peakBitrate:S,averageBitrate:k,name:M,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:su(F.attributes),autoselect:su(F.attributes)||Rw(F.attributes),languageCode:Qw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:G,pairingMask:1n<<BigInt(g),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=[],l=u=>{let g=c.find(f=>f.fullPath===u.fullPath&&f.info.type===u.info.type);g?(g.pairingMask|=u.pairingMask,g.default||=u.default,g.autoselect||=u.autoselect,g.lineNumber=Math.min(g.lineNumber,u.lineNumber),u.peakBitrate!==null&&(g.peakBitrate=Math.max(g.peakBitrate??-1/0,u.peakBitrate)),u.averageBitrate!==null&&(g.averageBitrate=Math.max(g.averageBitrate??-1/0,u.averageBitrate)),g.languageCode===Je&&(g.languageCode=u.languageCode)):(u.id=c.length+1,c.push(u))};for(let u of o)for(let g of u)l(g);c.sort((u,g)=>u.lineNumber-g.lineNumber),this.trackBackings=[];for(let u of c)u.info.type==="video"?this.trackBackings.push(new uu(u)):this.trackBackings.push(new lu(u));this.internalTracks=c})()}async getTrackBackings(){return await this.readMetadata(),b(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 Zs(this,e,r,null),this.segmentedInputs.push(A),A}async getMetadataTags(){return{}}async getMimeType(){return Xc}dispose(){if(this.segmentedInputs){for(let e of this.segmentedInputs)e.dispose();this.segmentedInputs.length=0}}},cu=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 uu){for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}else{b(this instanceof lu);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{...Dt,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(){b(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)}},uu=class extends cu{constructor(e){super(e)}get backingVideoTrack(){return this.internalTrack.backingTrack}getType(){return"video"}getCodec(){return jr(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()}},lu=class extends cu{constructor(e){super(e)}get backingAudioTrack(){return this.internalTrack.backingTrack}getType(){return"audio"}getCodec(){return jr(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()}},su=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}".`)},Rw=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}".`)},Qw=t=>{if(t===null)return Je;let e=t.split("-")[0];return e||Je};var Lt=class{constructor(){this._isIsobmff=!1}},$s=class extends Lt{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=je(A,4);return r!=="ftyp"&&r!=="styp"?null:je(A,4)}_createDemuxer(e){return new _c(e)}},gu=class extends $s{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=je(r,4);return n==="moof"||n==="sidx"}get name(){return"MP4"}get mimeType(){return"video/mp4"}},du=class extends $s{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Js=class extends Lt{async isSupportedEBMLOfDocType(e,A){let r=e._reader.requestSlice(0,YA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=Ng(r);if(n===null||n<1||n>8||be(r,n)!==j.EBML)return!1;let i=Hg(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-Ut;){let c=vA(s);if(!c)break;let{id:l,size:u}=c,g=s.filePos;if(u===void 0)return!1;switch(l){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(Jr(s,u)!==A)return!1;break;case j.DocTypeVersion:if(be(s,u)>4)return!1;break}s.filePos=g+u}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new qc(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},fu=class extends Js{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},mu=class extends Lt{async _canReadInput(e){let A=0;for(;;){let u=e._reader.requestSlice(A,Xt);if(u instanceof Promise&&(u=await u),!u)break;let g=OA(u);if(!g)break;A=u.filePos+g.size}let r=await Hs(e._reader,A,A+4096);if(!r)return!1;let n=r.header,a=Bc(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===pc||s===wc)return!0;A=r.startPos+r.header.totalSize;let c=await Hs(e._reader,A,A+4);if(!c)return!1;let l=c.header;return!(n.channel!==l.channel||n.sampleRate!==l.sampleRate)}_createDemuxer(e){return new jc(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},hu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return!1;let r=je(A,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(A.skip(4),je(A,4)==="WAVE")}_createDemuxer(e){return new Kc(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},pu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?je(A,4)==="OggS":!1}_createDemuxer(e){return new Vc(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},wu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?je(A,4)==="fLaC":!1}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new Zc(e)}},Bu=class extends Lt{async _canReadInput(e){let A=0;for(;;){let i=e._reader.requestSlice(A,Xt);if(i instanceof Promise&&(i=await i),!i)break;let s=OA(i);if(!s)break;A=i.filePos+s.size}let r=e._reader.requestSliceRange(A,_n,_A);if(r instanceof Promise&&(r=await r),!r)return!1;let n=MA(r);if(!n||(A+=n.frameLength,r=e._reader.requestSliceRange(A,_n,_A),r instanceof Promise&&(r=await r),!r))return!1;let a=MA(r);return a?n.objectType===a.objectType&&n.samplingFrequencyIndex===a.samplingFrequencyIndex&&n.channelConfiguration===a.channelConfiguration:!1}_createDemuxer(e){return new Wc(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},Pu=class extends Lt{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 $c(e)}get name(){return"MPEG Transport Stream"}get mimeType(){return"video/MP2T"}},ta=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,7);if(A instanceof Promise&&(A=await A),!A||!(je(A,7)==="#EXTM3U"))return!1;if(!(e._rootSource instanceof tr))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 ou(e)}get name(){return"HTTP Live Streaming (HLS)"}get mimeType(){return Xc}},Fw=new gu,zw=new du,Nw=new Js,Hw=new fu,Uw=new mu,qw=new hu,Lw=new pu,jw=new Bu,Vw=new wu,Kw=new Pu,Ww=new ta,pd=[Ww,Fw,zw,Nw,Hw,qw,Lw,Vw,Uw,jw,Kw];var Zw=(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 TC=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},kC=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 $w=-1/0,Jw=-1/0,wd=null;typeof FinalizationRegistry<"u"&&(wd=new FinalizationRegistry(t=>{let e=performance.now();t.type==="video"?(e-$w>=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."),$w=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-Jw>=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."),Jw=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var Gr=class{constructor(){this._referenceCount=0,this._lastAllocationBuffer=null}},Bd=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],xC=new Set(Bd),RA=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(Ur*this.timestamp)}get microsecondDuration(){return Math.trunc(Ur*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||!xC.has(A.format))throw new TypeError("init.format must be one of: "+Bd.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&&xg(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??YC(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 to(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&&xg(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 to(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*Ur),duration:Math.trunc((A.duration??0)*Ur)||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:bs(),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 to({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else if(e instanceof Gr){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&&!Bd.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=Gn({num:this.squarePixelWidth*this.codedHeight,den:this.squarePixelHeight*this.codedWidth}),wd?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw new Error("VideoSample is closed.");return b(this._data!==null),this._data instanceof Gr?new t(this._data,{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):eo(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):this._data instanceof Uint8Array?(b(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||(wd?.unregister(this),this._data instanceof Gr?(this._data._referenceCount--,this._data._referenceCount===0&&this._data.close()):eo(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(eB(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 eo(this._data)?this._data.allocationSize(e):tB(this,e).allocationSize}async copyTo(e,A={}){if(!ys(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(eB(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(b(this._data!==null),eo(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 Gr){let c={stack:[],error:void 0,hasError:!1};try{let l=TC(c,await this._data.toRgbSample({timestamp:this.timestamp,duration:this.duration,rotation:this.rotation},A.colorSpace??"srgb"),!1);if(!(l instanceof t))throw new TypeError("toRgbSample() must return a VideoSample.");if(!["RGBA","RGBX","BGRA","BGRX"].includes(l.format))throw new Error(`Sample returned by toRgbSample was expected to have an RGB format, got '${l.format}' instead.`);return await l.copyTo(e,A)}catch(l){c.error=l,c.hasError=!0}finally{kC(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(),l=await c.copyTo(e,A);return c.close(),l}let r=tB(this,A);b(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=yu(this.format),i;if(this._data instanceof Gr){let c=this._data.getDataPlanes();if(c instanceof Promise&&(c=await c),!Array.isArray(c)||c.some(l=>!(l.data instanceof Uint8Array)||!Number.isInteger(l.stride)||l.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)b(this._layout),b(this._layout.length===a.length),i=this._layout.map((c,l)=>{let u=Math.ceil(this.codedHeight/a[l].heightDivisor);return{data:this._data.subarray(c.offset,c.offset+c.stride*u),stride:c.stride}});else{let l=this._data.getContext("2d");b(l);let u=l.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 l=r.computedLayouts[c],u=i[c].stride,g=i[c].data,f=l.sourceTop*u;f+=l.sourceLeftBytes;let p=l.destinationOffset,h=l.sourceWidthBytes,y={offset:p,stride:l.destinationStride};for(let w=0;w<l.sourceHeight;w++){if(f+h>g.byteLength)throw new Error("Source buffer OOB read.");if(p+h>n.byteLength)throw new Error("Destination buffer OOB write.");let D=g.subarray(f,f+h);n.set(D,p),f+=u,p+=l.destinationStride}s.push(y)}if(A.format!==void 0){let c=this.format.startsWith("RGB")!==A.format.startsWith("RGB"),l=this.format.includes("X")&&A.format.includes("A");if(c||l)for(let u=0;u<r.allocationSize;u+=4){if(c){let g=n[u],f=n[u+2];n[u]=f,n[u+2]=g}l&&(n[u+3]=255)}}return s}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");if(b(this._data!==null),this._data instanceof Gr){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 eo(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 l=0,u=0,g=this.displayWidth,f=this.displayHeight,p=0,h=0,y=this.displayWidth,w=this.displayHeight;if(i!==void 0?(l=A,u=r,g=n,f=a,p=i,h=s,o!==void 0?(y=o,w=c):(y=g,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(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(g)||g<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:l,sy:u,sWidth:g,sHeight:f}=this._rotateSourceRegion(l,u,g,f,this.rotation));let D=this.toCanvasImageSource();e.save();let E=p+y/2,C=h+w/2;e.translate(E,C),e.rotate(this.rotation*Math.PI/180);let G=this.rotation%180===0?1:y/w;e.scale(1/G,G),e.drawImage(D,l,u,g,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&&Ao(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=Pd(o,i,s));let c,l,u,g,{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,l=0,u=r,g=n;else{let[D,E]=A.crop?[A.crop.width,A.crop.height]:[i,s],C=A.fit==="contain"?Math.min(r/D,n/E):Math.max(r/D,n/E);u=D*C,g=E*C,c=(r-u)/2,l=(n-g)/2}e.save();let w=a%180===0?1:u/g;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,l,u,g),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(b(this._data!==null),this._data instanceof Gr||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&&Ao(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=Pd(a,r,n));let i=a?a.width:r,s=a?a.height:n,o=i/s,c,l;e.width!==void 0&&e.height===void 0?(c=e.width,l=c/o):e.width===void 0&&e.height!==void 0?(l=e.height,c=l*o):e.width!==void 0&&e.height!==void 0?(c=e.width,l=e.height):(c=i,l=s),c=Ds(c,e.roundDimensionsTo??1),l=Ds(l,e.roundDimensionsTo??1);let u={width:c,height:l,fit:e.fit??"fill",rotation:A,crop:a??{left:0,top:0,width:r,height:n},alpha:e.alpha??"keep"};for(let h of GC){let y=h(this,u);if(y instanceof Promise&&(y=await y),y!==null)return y}let g=null,f=!1;for(let h of Xs)if(h.canvas.width===u.width&&h.canvas.height===u.height){g=h.canvas,h.age=Xw++;break}if(g===null){if(typeof OffscreenCanvas<"u")g=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().");g=document.createElement("canvas"),g.width=u.width,g.height=u.height}f=!0,Xs.length>=SC&&Xs.splice(Mi(Xs,h=>h.age),1),Xs.push({canvas:g,age:Xw++})}let p=g.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(g,{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()}},GC=[];var SC=3,Xs=[],Xw=0,to=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(dr);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(fr);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(mr);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}}},eo=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Pd=(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 b(a>=0),b(i>=0),{left:r,top:n,width:a,height:i}},Ao=(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.")},eB=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.")}},YC=(t,e,A)=>{let r=yu(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,l=c*o;n.push({offset:a,stride:c}),a+=l}return n},yu=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:Zt(t),b(!1)}},tB=(t,e)=>{let A={left:0,top:0,width:t.codedWidth,height:t.codedHeight},r=e.rect,n=vC(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 _C(n,i,a)},vC=(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(!OC(n,a))throw new TypeError("visibleRect alignment is invalid for the format.");return a},OC=(t,e)=>{if(t===null)return!0;let A=yu(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},_C=(t,e,A)=>{let r=yu(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],l=c.sampleBytes,u=c.widthDivisor,g=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)/g),f.sourceHeight=Math.ceil(Math.trunc(t.height||0)/g),f.sourceLeftBytes=Math.floor(Math.trunc(t.x||0)/u)*l,f.sourceWidthBytes=Math.floor(Math.trunc(t.width||0)/u)*l,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 AB=new Map;var rB=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!Ot.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${Ot.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&&Ao(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.");nB(t.codec,t)},nB=(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&&jr(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.")},yd=t=>{let e=t.bitrate instanceof Aa?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??kp(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,...Sp(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(vt.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 Id=async(t,e={})=>{let{width:A=1280,height:r=720,bitrate:n=1e6,...a}=e;if(!Ot.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.");nB(t,a);let i=yd({codec:t,width:A,height:r,bitrate:n,framerate:void 0,...a,alpha:"discard"}),s=JSON.stringify(i),o=AB.get(s);if(o)return o;let c=(async()=>Iu.some(g=>g.supports(t,i))?!0:typeof VideoEncoder>"u"||(A%2===1||r%2===1)&&(t==="avc"||t==="hevc")||!(await VideoEncoder.isConfigSupported(i)).supported?!1:bs()?new Promise(async g=>{try{let f=new VideoEncoder({output:()=>{},error:()=>g(!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(),g(!0)}catch{g(!1)}}):!0)();return AB.set(s,c),c};var Du=[],Dd=[],Iu=[];var zn=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(!xs(t))throw new TypeError("timestamp must be a number.")},Cd=(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,tn=class{constructor(e){if(!(e instanceof ia))throw new TypeError("track must be an InputTrack.");this._track=e}async getFirstPacket(e={}){if(zn(e),this._track.input._disposed)throw new Bt;return Cd(this._track,this._track._backing.getFirstPacket(e),e)}async getFirstKeyPacket(e={}){zn(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),zn(A),this._track.input._disposed)throw new Bt;return Cd(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(zn(A),this._track.input._disposed)throw new Bt;return Cd(this._track,this._track._backing.getNextPacket(e,A),A)}async getKeyPacket(e,A={}){if(ra(e),zn(A),this._track.input._disposed)throw new Bt;if(!A.verifyKeyPackets)return this._track._backing.getKeyPacket(e,A);let r=await this._track._backing.getKeyPacket(e,A);return r&&(b(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(zn(A),this._track.input._disposed)throw new Bt;if(!A.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,A);let r=await this._track._backing.getNextKeyPacket(e,A);return r&&(b(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(zn(r),this._track.input._disposed)throw new Bt;let n=[],{promise:a,resolve:i}=gt(),{promise:s,resolve:o}=gt(),c=!1,l=!1,u=null,g=[],f=()=>Math.max(2,g.length);(async()=>{let h=e??await this.getFirstPacket(r);for(;h&&!l&&!this._track.input._disposed&&!(A&&h.sequenceNumber>=A?.sequenceNumber);){if(n.length>f()){({promise:s,resolve:o}=gt()),await s;continue}n.push(h),i(),{promise:a,resolve:i}=gt(),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 Bt;if(l)return{value:void 0,done:!0};if(u)throw u;if(n.length>0){let h=n.shift(),y=performance.now();for(g.push(y);g.length>0&&y-g[0]>=1e3;)g.shift();return o(),{value:h,done:!1}}else{if(c)return{value:void 0,done:!0};await a}}},async return(){return l=!0,o(),i(),{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}},bd=class{constructor(e,A){this.onSample=e,this.onError=A}},Cu=class{mediaSamplesInRange(e=-1/0,A=1/0,r){ra(e),ra(A);let n=[],a=!1,i=null,{promise:s,resolve:o}=gt(),{promise:c,resolve:l}=gt(),u=!1,g=!1,f=!1,p=null,h={...r,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let D=await this._createDecoder(M=>{if(l(),M.timestamp>=A&&(g=!0),g){M.close();return}i&&(M.timestamp>e?(n.push(i),a=!0):i.close()),M.timestamp>=e&&(n.push(M),a=!0),i=a?null:M,n.length>0&&(o(),{promise:s,resolve:o}=gt())},M=>{p||(p=M,o())}),E=this._createPacketSink(),C=await E.getKeyPacket(e,h)??await E.getFirstKeyPacket(h),G=C,k=E.packets(C??void 0,void 0,h);for(await k.next();G&&!g&&!this._track.input._disposed;){let M=iB(n.length);if(n.length+D.getDecodeQueueSize()>M){({promise:c,resolve:l}=gt()),await c;continue}D.decode(G);let R=await k.next();if(R.done)break;G=R.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 Bt;if(f)return{value:void 0,done:!0};if(p)throw w(),p;if(n.length>0){let D=n.shift();return l(),{value:D,done:!1}}else if(!u)await s;else return{value:void 0,done:!0}}},async return(){return f=!0,g=!0,l(),o(),w(),{value:void 0,done:!0}},async throw(D){throw D},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e,A){hp(e);let r=mp(e),n=[],a=[],{promise:i,resolve:s}=gt(),{promise:o,resolve:c}=gt(),l=!1,u=!1,g=null,f=w=>{a.push(w),s(),{promise:i,resolve:s}=gt()},p={...A,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let w=await this._createDecoder(M=>{if(c(),u){M.close();return}let R=0;for(;n.length>0&&M.timestamp-n[0]>-1e-10;)R++,n.shift();if(R>0)for(let N=0;N<R;N++)f(N<R-1?M.clone():M);else M.close()},M=>{g||(g=M,s())}),D=this._createPacketSink(),E=null,C=null,G=-1,S=async()=>{b(C);let M=C;for(w.decode(M);M.sequenceNumber<G;){let R=iB(a.length);for(;a.length+w.getDecodeQueueSize()>R&&!u;)({promise:o,resolve:c}=gt()),await o;if(u)break;let N=await D.getNextPacket(M,p);b(N),w.decode(N),M=N}G=-1},k=async()=>{await w.flush();for(let M=0;M<n.length;M++)f(null);n.length=0};for await(let M of r){if(ra(M),u||this._track.input._disposed)break;let R=await D.getPacket(M,p),N=R&&await D.getKeyPacket(M,p);if(!N){G!==-1&&(await S(),await k()),f(null),E=null;continue}E&&(N.sequenceNumber!==C.sequenceNumber||R.timestamp<E.timestamp)&&(await S(),await k()),n.push(R.timestamp),G=Math.max(R.sequenceNumber,G),E=R,C=N}!u&&!this._track.input._disposed&&(G!==-1&&await S(),await k()),w.close(),l=!0,s()})().catch(w=>{g||(g=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 Bt;if(u)return{value:void 0,done:!0};if(g)throw y(),g;if(a.length>0){let w=a.shift();return b(w!==void 0),c(),{value:w,done:!1}}else if(!l)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}}}},iB=t=>t===0?40:8,Ed=class extends bd{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 In,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 In;let s=Du.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 RA))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(o)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let o=l=>{this.frameHandlerSerializer.call(async()=>{if(this.alphaQueue.length>0){let u=this.alphaQueue.shift();b(u!==void 0),await this.mergeAlpha(l,u)}else this.colorQueue.push(l)}).catch(u=>this.onError(u))};if(r==="avc"&&this.decoderConfig.description&&Es()){let l=Hp(ft(this.decoderConfig.description));if(l&&l.sequenceParameterSets.length>0){let u=_s(l.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:l=>{try{o(l)}catch(u){this.onError(u)}},error:l=>{l.stack=c,this.onError(l)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(b(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(b(this.decoder),Tn()||bg(this.inputTimestamps,e.timestamp,A=>A),Es()&&this.currentPacketIndex===0){if(this.codec==="avc"){let A=[];for(let n of _g(e.data,this.decoderConfig)){let a=zi(e.data[n.offset]);a===$t.AUD&&(A.length=0),a>=20&&a<=31||A.push(e.data.subarray(n.offset,n.offset+n.length))}let r=zp(A,this.decoderConfig);e=new Fe(r,e.type,e.timestamp,e.duration)}else if(this.codec==="hevc"){let A=Lp(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 bu),!this.alphaDecoder){let r=a=>{this.frameHandlerSerializer.call(async()=>{if(this.colorQueue.length>0){let i=this.colorQueue.shift();b(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();b(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=Zr(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 Os(e,this.decoderConfig)){let r=Kr(e[A.offset]);if(r===Ct.RASL_N||r===Ct.RASL_R)return!0}return!1}sampleHandler(e){if(Tn()){if(this.sampleQueue.length>0&&e.timestamp>=_e(this.sampleQueue).timestamp){for(let A of this.sampleQueue)this.finalizeAndEmitSample(A);this.sampleQueue.length=0}bg(this.sampleQueue,e,A=>A.timestamp)}else{let A=this.inputTimestamps.shift();b(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 RA(e);this.sampleHandler(a);return}b(this.merger);let r=await this.merger.update(e,A),n=new RA(r);this.sampleHandler(n)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(b(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),Tn()){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()):(b(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}},aB=!1,bu=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&&!aB)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,aB=!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(){b(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<(${x.map(Z=>Z.name)}) => ${P.name}>`,Jo(Object.defineProperty(B,"name",{value:H}))}function Ce(d,m){return m>>>=0,(d=Qt(d>>>0))==Qt(m)}function ec(d){return(d>>>=0)?(d=Pe(d),Wt(globalThis[d])):Wt(globalThis)}function hs(d){return d=Pe(d>>>0),Wt(e[d])}function tc(d,m){return m>>>=0,d=Qt(d>>>0),m=Qt(m),Wt(d[m])}function Ac(d){9<(d>>>=0)&&(WA[d+1]+=1)}function ps(d,m,B,P,x){return Si[d>>>0](m>>>0,B>>>0,P>>>0,x>>>0)}function ZA(d,m,B,P,x){return ps(d>>>0,m>>>0,B>>>0,P>>>0,x>>>0)}function _l(){return Wt([])}function rc(d){d=Qt(d>>>0);for(var m=Array(d.length),B=0;B<d.length;B++)m[B]=d[B];return Wt(m)}function Ml(d){return Wt(Pe(d>>>0))}function Rl(){return Wt({})}function Ql(d){for(var m=Qt(d>>>=0);m.length;){var B=m.pop();m.pop()(B)}Ci(d)}function Fl(d,m,B){m>>>=0,B>>>=0,d=Qt(d>>>0),m=Qt(m),B=Qt(B),d[m]=B}function zl(d,m){d=nt(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 nc=d=>d%4==0&&(d%100!=0||d%400==0),ic=[0,31,60,91,121,152,182,213,244,274,305,335],ac=[0,31,59,90,120,151,181,212,243,273,304,334];function Nl(d,m){d=nt(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=(nc(d.getFullYear())?ic:ac)[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 Hl(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(),x=new Date(m.getFullYear(),6,1).getTimezoneOffset(),v=new Date(m.getFullYear(),0,1).getTimezoneOffset(),z=Math.min(v,x);return 0>B?(k(),L)[d+32>>>2>>>0]=+(x!=v&&z==P):0<B!=(z==P)&&(x=Math.max(v,x),m.setTime(m.getTime()+6e4*((0<B?z:x)-P))),(k(),L)[d+24>>>2>>>0]=m.getDay(),B=(nc(m.getFullYear())?ic:ac)[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 sc(d,m,B,P,x,v,z){return n?Le(16,1,d,m,B,P,x,v,z):-52}function oc(d,m,B,P,x,v){if(n)return Le(17,1,d,m,B,P,x,v)}var Pn={},Ul=()=>performance.timeOrigin+performance.now();function cc(d,m){if(n)return Le(18,1,d,m);if(Pn[d]&&(clearTimeout(Pn[d].id),delete Pn[d]),!m)return 0;var B=setTimeout(()=>{delete Pn[d],Pt(()=>Ih(d,performance.timeOrigin+performance.now()))},m);return Pn[d]={id:B,Ae:m},0}function ql(d,m,B,P){d>>>=0,m>>>=0,B>>>=0,P>>>=0;var x=new Date().getFullYear(),v=new Date(x,0,1).getTimezoneOffset();x=new Date(x,6,1).getTimezoneOffset();var z=Math.max(v,x);(k(),_)[d>>>2>>>0]=60*z,(k(),L)[m>>>2>>>0]=+(v!=x),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(x),x<v?(PA(d,B,17),PA(m,P,17)):(PA(d,P,17),PA(m,B,17))}var Ll=()=>Date.now(),jl=1;function Vl(d,m,B){if(B>>>=0,!(0<=d&&3>=d))return 28;if(d===0)d=Date.now();else{if(!jl)return 52;d=performance.timeOrigin+performance.now()}return d=Math.round(1e6*d),(k(),re)[B>>>3>>>0]=BigInt(d),0}var ws=[],uc=(d,m)=>{ws.length=0;for(var B;B=(k(),V)[d++>>>0];){var P=B!=105;m+=(P&=B!=112)&&m%8?4:0,ws.push(B==112?(k(),_)[m>>>2>>>0]:B==106?(k(),re)[m>>>3>>>0]:B==105?(k(),L)[m>>>2>>>0]:(k(),we)[m>>>3>>>0]),m+=P?8:4}return ws};function Kl(d,m,B){return d>>>=0,m=uc(m>>>0,B>>>0),Pg[d](...m)}function Wl(d,m,B){return d>>>=0,m=uc(m>>>0,B>>>0),Pg[d](...m)}var Zl=()=>{};function $l(d,m){return C(ur(d>>>0,m>>>0))}var Jl=()=>{throw ve+=1,"unwind"};function Xl(){return 4294901760}var eg=()=>1,tg=()=>navigator.hardwareConcurrency;function Ag(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),ut();var x=1;break e}catch{}x=void 0}if(x)return!0}return!1}var lA=d=>{var m=yA(d)+1,B=gc(m);return PA(d,B,m),B},Bs=(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],pt=[],rg=(d,m)=>{pt[d>>>0]=m},DA=[],Yi=[],Ur=(d,m)=>{Yi[d]=new Promise(B=>m.finally(()=>B(d)))},se=d=>{if(d)return pt[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])?se(B):"auto";if(d+=16){var P=se((k(),_)[d+4>>>2>>>0]),x=(k(),_)[d+16>>>2>>>0],v=(k(),_)[d+20>>>2>>>0];if(x){for(var z={},H=0;H<x;++H){var Z=v+24*H;z[O(Z+4)]=(k(),we)[Z+16>>>3>>>0]}x=z}else x=void 0;d={module:P,constants:x,entryPoint:Y(d+8)}}else d=void 0;return{label:m,layout:B,compute:d}},U=(d,m)=>{function B(P,x){P=d[P],(k(),_)[m+x>>>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),Bs(m+64,d.maxUniformBufferBindingSize),Bs(m+72,d.maxStorageBufferBindingSize),B("maxVertexBuffers",88),Bs(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"],ue=[,"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"},Se=[,"low-power","high-performance"],wt=[,"occlusion","timestamp"],Zt={undefined:1,unknown:1,destroyed:2};function CA(d,m,B,P,x,v){m=nt(m),B=nt(B),P>>>=0,x>>>=0,v>>>=0;var z=se(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 ne=(k(),_)[v+20>>>2>>>0];if(ne){let le=function(Yt,It,In=!1){It=ne+It,(It=(k(),_)[It>>>2>>>0])==4294967295||In&&It==0||($e[Yt]=It)},yt=function(Yt,It){It=ne+It;var In=(k(),_)[It>>>2>>>0],AC=(k(),_)[It+4>>>2>>>0];In==4294967295&&AC==4294967295||($e[Yt]=yn(It))};var Qe=le,Ue=yt,$e={};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),yt("maxUniformBufferBindingSize",64),yt("maxStorageBufferBindingSize",72),le("maxVertexBuffers",88),yt("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=$e}(H=(k(),_)[v+24>>>2>>>0])&&(H={label:Y(H+4)},d.defaultQueue=H),d.label=Y(v+4)}ve+=1,Ur(m,z.requestDevice(d).then(le=>{--ve,Pt(()=>{pt[x>>>0]=le.queue,pt[P>>>0]=le,ve+=1,Ur(B,le.lost.then(yt=>{Pt(()=>{le.onuncapturederror=()=>{};var Yt=he(),It=lA(yt.message);lg(B,Zt[yt.reason],It),me(Yt)}),--ve})),le.onuncapturederror=yt=>{var Yt=5;yt.error instanceof GPUValidationError?Yt=2:yt.error instanceof GPUOutOfMemoryError?Yt=3:yt.error instanceof GPUInternalError&&(Yt=4);var It=he();yt=lA(yt.error.message),wh(P,Yt,yt),me(It)},"adapterInfo"in le||(le.adapterInfo=z.info),fg(m,1,P,0)})},le=>{--ve,Pt(()=>{var yt=he(),Yt=lA(le.message);fg(m,3,P,Yt),B&&lg(B,4,Yt),me(yt)})}))}function bA(d){var m=se(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d]}m.destroy()}function ng(d,m,B){B>>>=0;var P=se(d>>>=0);B==4294967295&&(B=void 0);try{var x=P.getMappedRange(m>>>0,B)}catch{return 0}var v=pg(16,x.byteLength);return(k(),V).set(new Uint8Array(x),v>>>0),DA[d].push(()=>EA(v)),v}function ig(d,m,B){B>>>=0;var P=se(d>>>=0);B==4294967295&&(B=void 0);try{var x=P.getMappedRange(m>>>0,B)}catch{return 0}var v=pg(16,x.byteLength);return(k(),V).fill(0,v,x.byteLength),DA[d].push(()=>{new Uint8Array(x).set((k(),V).subarray(v>>>0,v+x.byteLength>>>0)),EA(v)}),v}function ag(d,m,B,P,x){d>>>=0,m=nt(m),B=nt(B),x>>>=0;var v=se(d);DA[d]=[],x==4294967295&&(x=void 0),ve+=1,Ur(m,v.mapAsync(B,P>>>0,x).then(()=>{--ve,Pt(()=>{gg(m,1,0)})},z=>{--ve,Pt(()=>{he();var H=lA(z.message);gg(m,z.name==="AbortError"?4:z.name==="OperationError"?3:0,H),delete DA[d]})}))}function Ps(d){var m=se(d>>>=0),B=DA[d];if(B){for(var P=0;P<B.length;++P)B[P]();delete DA[d],m.unmap()}}function RI(d){delete pt[d>>>0]}function QI(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=se(d);try{var x=d.createBuffer(m)}catch{return!1}return pt[B>>>0]=x,P&&(DA[B]=[]),!0}function FI(d,m,B,P){d>>>=0,m=nt(m),P>>>=0,B=Q(B>>>0),d=se(d),ve+=1,Ur(m,d.createComputePipelineAsync(B).then(x=>{--ve,Pt(()=>{pt[P>>>0]=x,ug(m,1,P,0)})},x=>{--ve,Pt(()=>{var v=he(),z=lA(x.message);ug(m,x.reason==="validation"?3:x.reason==="internal"?4:0,P,z),me(v)})}))}function zI(d,m,B){d>>>=0,m>>>=0,B>>>=0;var P=(k(),_)[m>>>2>>>0],x=(k(),L)[P+4>>>2>>>0];m={label:Y(m+4),code:""},x===2&&(m.code=O(P+8)),d=se(d).createShaderModule(m),pt[B>>>0]=d}var NI=d=>{(d=se(d)).onuncapturederror=null,d.destroy()};function HI(d,m){m=nt(m),d=se(d>>>0),ve+=1,Ur(m,d.popErrorScope().then(B=>{--ve,Pt(()=>{var P=5;B?B instanceof GPUValidationError?P=2:B instanceof GPUOutOfMemoryError?P=3:B instanceof GPUInternalError&&(P=4):P=1;var x=he(),v=B?lA(B.message):0;dg(m,1,P,v),me(x)})},B=>{--ve,Pt(()=>{var P=he(),x=lA(B.message);dg(m,1,5,x),me(P)})}))}function UI(d,m,B,P){if(m=nt(m),P>>>=0,B>>>=0){var x={featureLevel:ue[(k(),L)[B+4>>>2>>>0]],powerPreference:Se[(k(),L)[B+8>>>2>>>0]],forceFallbackAdapter:!!(k(),_)[B+12>>>2>>>0]};(d=(k(),_)[B>>>2>>>0])!==0&&(k(),x.De=!!(k(),_)[d+8>>>2>>>0])}"gpu"in navigator?(ve+=1,Ur(m,navigator.gpu.requestAdapter(x).then(v=>{--ve,Pt(()=>{if(v)pt[P>>>0]=v,ys(m,1,P,0);else{var z=he(),H=lA("WebGPU not available on this browser (requestAdapter returned null)");ys(m,3,P,H),me(z)}})},v=>{--ve,Pt(()=>{var z=he(),H=lA(v.message);ys(m,4,P,H),me(z)})}))):(x=he(),d=lA("WebGPU not available on this browser (navigator.gpu is not available)"),ys(m,3,P,d),me(x))}function qI(d,m,B){return d>>>=0,m>>>=0,B>>>=0,ds(async()=>{var P=[];if(B){var x=(k(),L)[B>>>2>>>0];P.length=m+1,P[m]=new Promise(H=>setTimeout(H,x,0))}else P.length=m;for(var v=0;v<m;++v){var z=yn(d+8*v);if(!(z in Yi))return z;P[v]=Yi[z]}return P=await Promise.race(P),delete Yi[P],P})}var sg,og={},Jm=()=>{if(!sg){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 og)og[d]===void 0?delete m[d]:m[d]=og[d];var B=[];for(d in m)B.push(`${d}=${m[d]}`);sg=B}return sg};function Xm(d,m){if(n)return Le(19,1,d,m);d>>>=0,m>>>=0;var B,P=0,x=0;for(B of Jm()){var v=m+P;(k(),_)[d+x>>>2>>>0]=v,P+=PA(B,v,1/0)+1,x+=4}return 0}function eh(d,m){if(n)return Le(20,1,d,m);d>>>=0,m>>>=0;var B=Jm();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 th(d){return n?Le(21,1,d):52}function Ah(d,m,B,P){return n?Le(22,1,d,m,B,P):52}function rh(d,m,B,P){return n?Le(23,1,d,m,B,P):70}var LI=[null,[],[]];function nh(d,m,B,P){if(n)return Le(24,1,d,m,B,P);m>>>=0,B>>>=0,P>>>=0;for(var x=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 ne=d,Qe=(k(),V)[z+Z>>>0],Ue=LI[ne];Qe===0||Qe===10?((ne===1?E:C)(Va(Ue)),Ue.length=0):Ue.push(Qe)}x+=H}return(k(),_)[P>>>2>>>0]=x,0}function jI(d){return d>>>0}function VI(d,m){return U(se(d>>>0).limits,m>>>0),1}function KI(d,m){return se(d>>>0).features.has(Ie[m])}function WI(d){return BigInt(se(d>>>0).size)}function ZI(d){return BigInt(se(d>>>0).usage)}function $I(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:se((k(),_)[m+4>>>2>>>0]),beginningOfPassWriteIndex:(k(),_)[m+8>>>2>>>0],endOfPassWriteIndex:(k(),_)[m+12>>>2>>>0]}:void 0}}return m=se(d),d=dh(0),B=m.beginComputePass(B),pt[d>>>0]=B,d}function JI(d,m,B,P){B=nt(B),(P=nt(P))==-1&&(P=void 0),(d=se(d>>>0)).clearBuffer(se(m>>>0),B,P)}function XI(d,m,B,P,x,v){B=nt(B),x=nt(x),v=nt(v),se(d>>>0).copyBufferToBuffer(se(m>>>0),B,se(P>>>0),x,v)}function eD(d){var m=se(d>>>0);return d=lh(0),m=m.finish(),pt[d>>>0]=m,d}function tD(d,m,B,P,x,v){v=nt(v),se(d>>>0).resolveQuerySet(se(m>>>0),B,P,se(x>>>0),v)}function AD(d,m,B,P){se(d>>>0).dispatchWorkgroups(m,B,P)}function rD(d,m,B){B=nt(B),se(d>>>0).dispatchWorkgroupsIndirect(se(m>>>0),B)}function nD(d){se(d>>>0).end()}function iD(d,m,B,P,x){P>>>=0,x>>>=0,d=se(d>>>0),B=se(B>>>0),P==0?d.setBindGroup(m,B):d.setBindGroup(m,B,(k(),_),x>>>2,P)}function aD(d,m){se(d>>>0).setPipeline(se(m>>>0))}function sD(d,m,B){se(d>>>0).Ce(se(m>>>0),B)}function oD(d,m){var B=se(d>>>0);return d=uh(0),m=B.getBindGroupLayout(m),pt[d>>>0]=m,d}function cD(d,m){function B(x){var v=(k(),_)[x+8>>>2>>>0],z=(k(),_)[x+32>>>2>>>0],H=(k(),_)[x+36>>>2>>>0],Z=0;return I(x,{327681:ne=>{Z=(k(),_)[ne+8>>>2>>>0]}}),v?((z=yn(x+24))==-1&&(z=void 0),v={buffer:se(v),offset:yn(x+16),size:z}):v=se(z||H||Z),{binding:(k(),_)[x+4>>>2>>>0],resource:v}}d>>>=0,m={label:Y(4+(m>>>=0)),layout:se((k(),_)[m+12>>>2>>>0]),entries:function(x,v){for(var z=[],H=0;H<x;++H)z.push(B(v+40*H));return z}((k(),_)[m+16>>>2>>>0],(k(),_)[m+20>>>2>>>0])},d=se(d);var P=ch(0);return rg(P,d.createBindGroup(m)),P}function uD(d,m){var B;return d>>>=0,(m>>>=0)&&(B={label:Y(m+4)}),m=se(d),d=gh(0),B=m.createCommandEncoder(B),pt[d>>>0]=B,d}function lD(d,m){d>>>=0,m>>>=0,m={type:wt[(k(),L)[m+12>>>2>>>0]],count:(k(),_)[m+16>>>2>>>0]};var B=se(d);return d=fh(0),m=B.createQuerySet(m),pt[d>>>0]=m,d}function gD(d,m){d=se(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,x=vi(P);return x&&PA(B,x,P),B=x,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 dD={"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 fD(d,m){m>>>=0;var B=se(d>>>0);d=vi(4*B.features.size);var P=0,x=0;for(let v of B.features)0<=(B=dD[v])&&((k(),L)[d+P>>>2>>>0]=B,P+=4,x++);(k(),_)[m+4>>>2>>>0]=d,(k(),_)[m>>>2>>>0]=x}function mD(d,m){return U(se(d>>>0).limits,m>>>0),1}function hD(d,m){se(d>>>0).pushErrorScope(X[m])}function pD(d,m,B){m>>>=0,B>>>=0,d=se(d>>>0),m=Array.from((k(),L).subarray(B>>>2>>>0,B+4*m>>>2>>>0),P=>se(P)),d.submit(m)}function wD(d,m,B,P,x){B=nt(B),P>>>=0,x>>>=0,d=se(d>>>0),m=se(m>>>0),P=(k(),V).subarray(P>>>0,P+x>>>0),d.writeBuffer(m,B,P,0,x)}n||function(){for(var d=e.numThreads-1;d--;)Te();Be.push(async()=>{var m=async function(){if(!n)return Promise.all(xt.map(Ha))}();oe++,await m,--oe==0&&de&&(m=de,de=null,m())})}(),n||(KA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),ut()),e.wasmBinary&&(u=e.wasmBinary),e.stackSave=()=>he(),e.stackRestore=d=>me(d),e.stackAlloc=d=>gc(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(),re)[d>>>3>>>0]=BigInt(m);break;case"float":(k(),W)[d>>>2>>>0]=m;break;case"double":(k(),we)[d>>>3>>>0]=m;break;case"*":(k(),_)[d>>>2>>>0]=m;break;default:et(`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(),re)[d>>>3>>>0];case"float":return(k(),W)[d>>>2>>>0];case"double":return(k(),we)[d>>>3>>>0];case"*":return(k(),_)[d>>>2>>>0];default:et(`invalid type for getValue: ${m}`)}},e.UTF8ToString=ur,e.stringToUTF8=PA,e.lengthBytesUTF8=yA;var ih,ah,cg,lc,EA,vi,sh,oh,ch,uh,lh,gh,dh,fh,mh,hh,ph,ug,lg,gg,dg,ys,fg,wh,mg,Bh,Ph,yh,hg,Ih,Dh,pg,Ye,Is,Ch,me,gc,he,bh,wg,Eh,Th,kh,Bg,xh,Gh,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,cp,up,lp,gp,dr,BD=[cA,Rr,zo,Ka,Wa,Za,$a,Ja,Xa,es,ts,As,rs,Ho,Uo,Di,sc,oc,cc,Xm,eh,th,Ah,rh,nh],Pg={979436:(d,m,B,P,x)=>{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(x){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 PD(d,m,B,P){var x=he();try{return Mh(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function yD(d,m,B){var P=he();try{return vh(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;Ye(1,0)}}function ID(d){var m=he();try{xh(d)}catch(B){if(me(m),B!==B+0)throw B;Ye(1,0)}}function DD(d,m){var B=he();try{return Bg(d,m)}catch(P){if(me(B),P!==P+0)throw P;Ye(1,0)}}function CD(d,m,B){var P=he();try{kh(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;Ye(1,0)}}function bD(d,m){var B=he();try{Rh(d,m)}catch(P){if(me(B),P!==P+0)throw P;Ye(1,0)}}function ED(d,m,B,P,x,v,z){var H=he();try{return Yh(d,m,B,P,x,v,z)}catch(Z){if(me(H),Z!==Z+0)throw Z;Ye(1,0)}}function TD(d,m,B,P,x,v){var z=he();try{Gh(d,m,B,P,x,v)}catch(H){if(me(z),H!==H+0)throw H;Ye(1,0)}}function kD(d,m,B,P){var x=he();try{_h(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function xD(d,m,B,P,x,v,z){var H=he();try{Fh(d,m,B,P,x,v,z)}catch(Z){if(me(H),Z!==Z+0)throw Z;Ye(1,0)}}function GD(d,m,B,P,x,v,z){var H=he();try{zh(d,m,B,P,x,v,z)}catch(Z){if(me(H),Z!==Z+0)throw Z;Ye(1,0)}}function SD(d,m,B,P,x,v,z,H){var Z=he();try{Wh(d,m,B,P,x,v,z,H)}catch(ne){if(me(Z),ne!==ne+0)throw ne;Ye(1,0)}}function YD(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue){var $e=he();try{Nh(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue)}catch(le){if(me($e),le!==le+0)throw le;Ye(1,0)}}function vD(d,m,B,P,x){var v=he();try{return Qh(d,m,B,P,x)}catch(z){if(me(v),z!==z+0)throw z;Ye(1,0)}}function OD(d,m,B,P,x){var v=he();try{Sh(d,m,B,P,x)}catch(z){if(me(v),z!==z+0)throw z;Ye(1,0)}}function _D(d,m,B,P,x,v,z,H){var Z=he();try{Oh(d,m,B,P,x,v,z,H)}catch(ne){if(me(Z),ne!==ne+0)throw ne;Ye(1,0)}}function MD(d){var m=he();try{return Zh(d)}catch(B){if(me(m),B!==B+0)throw B;Ye(1,0)}}function RD(d,m,B){var P=he();try{return $h(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;Ye(1,0)}}function QD(d,m){var B=he();try{return op(d,m)}catch(P){if(me(B),P!==P+0)throw P;return Ye(1,0),0n}}function FD(d){var m=he();try{return Hh(d)}catch(B){if(me(m),B!==B+0)throw B;return Ye(1,0),0n}}function zD(d,m,B,P){var x=he();try{return Jh(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function ND(d,m,B,P,x){var v=he();try{return Xh(d,m,B,P,x)}catch(z){if(me(v),z!==z+0)throw z;Ye(1,0)}}function HD(d,m,B,P,x,v){var z=he();try{return ep(d,m,B,P,x,v)}catch(H){if(me(z),H!==H+0)throw H;Ye(1,0)}}function UD(d,m,B,P,x,v){var z=he();try{return Vh(d,m,B,P,x,v)}catch(H){if(me(z),H!==H+0)throw H;Ye(1,0)}}function qD(d,m,B,P,x,v){var z=he();try{return tp(d,m,B,P,x,v)}catch(H){if(me(z),H!==H+0)throw H;Ye(1,0)}}function LD(d,m,B,P,x,v,z,H){var Z=he();try{return Kh(d,m,B,P,x,v,z,H)}catch(ne){if(me(Z),ne!==ne+0)throw ne;Ye(1,0)}}function jD(d,m,B,P,x){var v=he();try{return Ap(d,m,B,P,x)}catch(z){if(me(v),z!==z+0)throw z;return Ye(1,0),0n}}function VD(d,m,B,P){var x=he();try{return rp(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function KD(d,m,B,P){var x=he();try{return np(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function WD(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue){var $e=he();try{return ip(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue)}catch(le){if(me($e),le!==le+0)throw le;Ye(1,0)}}function ZD(d,m,B,P,x,v,z,H,Z,ne,Qe){var Ue=he();try{ap(d,m,B,P,x,v,z,H,Z,ne,Qe)}catch($e){if(me(Ue),$e!==$e+0)throw $e;Ye(1,0)}}function $D(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue,$e,le,yt,Yt){var It=he();try{sp(d,m,B,P,x,v,z,H,Z,ne,Qe,Ue,$e,le,yt,Yt)}catch(In){if(me(It),In!==In+0)throw In;Ye(1,0)}}function JD(d,m,B){var P=he();try{return qh(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;return Ye(1,0),0n}}function XD(d,m,B){var P=he();try{return Uh(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;Ye(1,0)}}function eC(d,m,B){var P=he();try{return Lh(d,m,B)}catch(x){if(me(P),x!==x+0)throw x;Ye(1,0)}}function tC(d,m,B,P){var x=he();try{jh(d,m,B,P)}catch(v){if(me(x),v!==v+0)throw v;Ye(1,0)}}function dc(){if(0<oe)de=dc;else if(n)p?.(e),ot();else{for(var d=Be;0<d.length;)d.shift()(e);0<oe?de=dc:(e.calledRun=!0,G||(ot(),p?.(e)))}}return n||(dr=await qe(),dc()),e.PTR_SIZE=4,e.webgpuInit=d=>{let m=new WeakMap,B,P,x=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 ne=((Qe,Ue=0)=>{var $e=ph(Ue);return Ue=hh(Ue,$e),pt[$e>>>0]=Qe.queue,pt[Ue>>>0]=Qe,Ue})(H,Z=oh(0));Z=[x++,Z,ne],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 ne=cg(Z);v.set(H,ne),Z===0&&d(B??se(ne))}B=void 0}},e.webgpuOnReleaseSession=H=>{v.delete(H)};let z=Symbol("gpuBufferMetadata");e.webgpuRegisterBuffer=(H,Z,ne)=>{if(ne)return H[z]=[ne,NaN],ne;if(ne=H[z])return ne[1]++,ne[0];if((Z=v.get(Z))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");return Z=((Qe,Ue=0)=>(Qe.mapState==="unmapped"||et(),Ue=mh(Ue),pt[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&&(sh(Z[0]),delete H[z])},e.webgpuGetBuffer=H=>se(H),e.webgpuCreateDownloader=(H,Z,ne)=>{if((ne=v.get(ne))===void 0)throw Error("Invalid session handle passed to webgpuRegisterBuffer");let Qe=se(ne),Ue=16*Math.ceil(Number(Z)/16);return async()=>{let $e=Qe.createBuffer({size:Ue,usage:9});try{let le=Qe.createCommandEncoder();return le.copyBufferToBuffer(H,0,$e,0,Ue),Qe.queue.submit([le.finish()]),await $e.mapAsync(GPUMapMode.READ),$e.getMappedRange().slice(0,Z)}finally{$e.destroy()}}},e.ad=(H,Z)=>{var ne=Z.buffer;let Qe=Z.byteOffset,Ue=Z.byteLength;if(Z=16*Math.ceil(Number(Ue)/16),H=se(H),!B){var $e=cg(P);B=se($e)}let le=($e=B.createBuffer({mappedAtCreation:!0,size:Z,usage:6})).getMappedRange();new Uint8Array(le).set(new Uint8Array(ne,Qe,Ue)),$e.unmap(),(ne=B.createCommandEncoder()).copyBufferToBuffer($e,0,H,0,Z),B.queue.submit([ne.finish()]),$e.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,x,v)=>m.registerMLTensor(B,P,x,v),e.webnnCreateMLContext=B=>m.createMLContext(B),e.webnnRegisterMLConstant=(B,P,x,v,z,H)=>m.registerMLConstant(B,P,x,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)},fe?e:new Promise((d,m)=>{p=d,h=m})}var LA,km,ax,sx,ox,cx,Oe,Yo,ux,cl,bo,un,ci,o0,_0,M0,lx,R0,gx,Am,Et,Q0,st,dx,F0,z0,fx,rl,N0,H0,U0,q0,L0,mx,si,Go,rm,j0,hx,V0,K0,px,sA,xm,jA,W0,ul,nm,ui,li,fn,mn,Z0,$0,wx,Gm,Bx,Px,yx,Ix,Dx,X0,gi,Sm,eI,im,am,tI,Cx,AI,rI,u0,bx,sm,Dm,l0,iA,nI,nl,g0,d0,om,f0,cm,iI,um,aI,Ym,lm,il,Eo,gm,m0,h0,p0,vm,Ve,di,aA,ll,He,Om,sI,Ex,w0,B0,P0,_a,ln,y0,oI,Tx,oi,ol,Ra,So,gl,_m,Mm,Cm,Qa,Rm,cI,uI,kx,I0,D0,C0,b0,lI,E0,St,gI,dm,bm,fm,T0,mm,k0,hm,pm,wm,x0,dI,xx,fI,To,G0,mI,Gx,S0,Qm,Fm,gn,Y0,Bm,dl,zm,Nm,Pm,Hm,Um,qm,hI,dn,pA,Ma,ko,xo,al,ym,sl,ii,ai,v0,pI,wI,BI,PI,yI,II,DI,CI,Im,O0,bI,Sx,EI,Em,Tm,TI,Yx,vx,Ox,xI=nC(()=>{LA={};km=Object.defineProperty,ax=Object.getOwnPropertyDescriptor,sx=Object.getOwnPropertyNames,ox=Object.prototype.hasOwnProperty,cx=(t=>typeof Ft<"u"?Ft:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof Ft<"u"?Ft:e)[A]}):t)(function(t){if(typeof Ft<"u")return Ft.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),Oe=(t,e)=>()=>(t&&(e=t(t=0)),e),Yo=(t,e)=>{for(var A in e)km(t,A,{get:e[A],enumerable:!0})},ux=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of sx(e))!ox.call(t,n)&&n!==A&&km(t,n,{get:()=>e[n],enumerable:!(r=ax(e,n))||r.enumerable});return t},cl=t=>ux(km({},"__esModule",{value:!0}),t),M0=Oe(()=>{"use strict";bo=new Map,un=[],ci=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=bo.get(t);if(r===void 0)bo.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=un.indexOf(t);n!==-1&&un.splice(n,1);for(let a=0;a<un.length;a++)if(bo.get(un[a]).priority<=A){un.splice(a,0,t);return}un.push(t)}return}throw new TypeError("not a valid backend")},o0=async t=>{let e=bo.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}}},_0=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?un:A,n,a=[],i=new Set;for(let o of r){let c=await o0(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)})]}}),lx=Oe(()=>{"use strict";M0()}),gx=Oe(()=>{"use strict";R0="1.26.0"}),Q0=Oe(()=>{"use strict";gx(),Am="warning",Et={wasm:{},webgl:{},webgpu:{},versions:{common:R0},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}`);Am=t}},get logLevel(){return Am}},Object.defineProperty(Et,"logLevel",{enumerable:!0})}),dx=Oe(()=>{"use strict";Q0(),st=Et}),fx=Oe(()=>{"use strict";F0=(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 l=a*n,u=0,g=l,f=l*2,p=-1;i==="RGBA"?(u=0,g=l,f=l*2,p=l*3):i==="RGB"?(u=0,g=l,f=l*2):i==="RBG"&&(u=0,f=l,g=l*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[g++]-c[1])*o[1],E=(t.data[f++]-c[2])*o[2],C=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+E+","+C+")",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")},z0=(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,l;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?l=[0,0,0,0]:typeof o.bias=="number"?l=[o.bias,o.bias,o.bias,o.bias]:(l=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(l[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 g=4,f=0,p=1,h=2,y=3,w=0,D=u,E=u*2,C=-1;s==="RGBA"?(w=0,D=u,E=u*2,C=u*3):s==="RGB"?(w=0,D=u,E=u*2):s==="RBG"&&(w=0,E=u,D=u*2),r=A.createImageData(n,a);for(let G=0;G<a*n;f+=g,p+=g,h+=g,y+=g,G++)r.data[f]=(t.data[w++]-l[0])*c[0],r.data[p]=(t.data[D++]-l[1])*c[1],r.data[h]=(t.data[E++]-l[2])*c[2],r.data[y]=C===-1?255:(t.data[C++]-l[3])*c[3]}else throw new Error("Can not access image data");return r}}),mx=Oe(()=>{"use strict";xm(),rl=(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,l=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,g=0,f=1,p=2,h=3,y=0,w=c,D=c*2,E=-1;s==="RGB"&&(u=3,g=0,f=1,p=2,h=-1),o==="RGBA"?E=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let C=0;C<c;C++,g+=u,p+=u,f+=u,h+=u)l[y++]=(t[g]+i[0])/a[0],l[w++]=(t[f]+i[1])/a[1],l[D++]=(t[p]+i[2])/a[2],E!==-1&&h!==-1&&(l[E++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new sA("float32",l,[1,4,A,r]):new sA("float32",l,[1,3,A,r])},N0=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=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(A){let l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(g=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=g,s.width=f}else s.tensorFormat="RGBA",s.height=g,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,g).data}else throw new Error("Can not access image data")}else if(r){let l,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(l=e.resizedHeight,u=e.resizedWidth):(l=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=l,s.width=u,e!==void 0){let g=o();g.width=u,g.height=l;let f=c(g);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,l).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 l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;return u.drawImage(t,0,0,f,g),i=u.getImageData(0,0,f,g).data,s.height=g,s.width=f,rl(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,u)=>{let g=o(),f=c(g);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{g.width=p.width,g.height=p.height,f.drawImage(p,0,0,g.width,g.height);let h=f.getImageData(0,0,g.width,g.height);s.height=g.height,s.width=g.width,l(rl(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return rl(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},H0=(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})},U0=(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})},q0=(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})},L0=(t,e,A)=>new sA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),hx=Oe(()=>{"use strict";si=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Go=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),rm=!1,j0=()=>{if(!rm){rm=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(si.set("int64",BigInt64Array),Go.set(BigInt64Array,"int64")),e&&(si.set("uint64",BigUint64Array),Go.set(BigUint64Array,"uint64")),r?(si.set("float16",A),Go.set(A,"float16")):si.set("float16",Uint16Array)}}}),px=Oe(()=>{"use strict";xm(),V0=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},K0=(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`)}}}),xm=Oe(()=>{"use strict";fx(),mx(),hx(),px(),sA=class{constructor(t,e,A){j0();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=si.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=si.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=Go.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=V0(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 N0(t,e)}static fromTexture(t,e){return H0(t,e)}static fromGpuBuffer(t,e){return U0(t,e)}static fromMLTensor(t,e){return q0(t,e)}static fromPinnedBuffer(t,e,A){return L0(t,e,A)}toDataURL(t){return F0(this,t)}toImageData(t){return z0(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 K0(this,t)}}}),W0=Oe(()=>{"use strict";xm(),jA=sA}),Z0=Oe(()=>{"use strict";Q0(),ul=(t,e)=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeStamp(`${t}::ORT::${e}`)},nm=(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}`),ul("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},ui=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||nm("BEGIN",t)},li=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||nm("END",t)},fn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.time(`ORT::${t}`)},mn=t=>{(typeof Et.trace>"u"?!Et.wasm.trace:!Et.trace)||console.timeEnd(`ORT::${t}`)}}),wx=Oe(()=>{"use strict";M0(),W0(),Z0(),$0=class J0{constructor(e){this.handler=e}async run(e,A,r){ui(),fn("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,l=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(l.indexOf(u)!==-1){let g=A[u];(g===null||g instanceof jA)&&(c=!0,i=!1,n[u]=g)}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 l=s[c];l instanceof jA?o[c]=l:o[c]=new jA(l.type,l.data,l.dims)}return mn("InferenceSession.run"),li(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){ui(),fn("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 l=e,u=0,g=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>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(g=e.byteLength-u,typeof r=="number"){if(g=r,!Number.isSafeInteger(g))throw new RangeError("'byteLength' must be an integer.");if(g<=0||u+g>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.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(l,u,g)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await _0(i),c=await s.createInferenceSessionHandler(a,o);return mn("InferenceSession.create"),li(),new J0(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}}}),Bx=Oe(()=>{"use strict";wx(),Gm=$0}),Px=Oe(()=>{"use strict"}),yx=Oe(()=>{"use strict"}),Ix=Oe(()=>{"use strict"}),Dx=Oe(()=>{"use strict"}),X0={};Yo(X0,{InferenceSession:()=>Gm,TRACE:()=>ul,TRACE_EVENT_BEGIN:()=>fn,TRACE_EVENT_END:()=>mn,TRACE_FUNC_BEGIN:()=>ui,TRACE_FUNC_END:()=>li,Tensor:()=>jA,env:()=>st,registerBackend:()=>ci});gi=Oe(()=>{"use strict";lx(),dx(),Bx(),W0(),Px(),yx(),Z0(),Ix(),Dx()}),Sm=Oe(()=>{"use strict"}),eI={};Yo(eI,{default:()=>tI});Cx=Oe(()=>{"use strict";hI(),di(),Ym(),im="ort-wasm-proxy-worker",am=globalThis.self?.name===im,am&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":vm(A.wasm).then(()=>{Qm(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;Fm(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=dl(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;zm(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Nm(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Hm(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},qm([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Um(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),tI=am?null:t=>new Worker(t??iA,{type:"module",name:im})}),AI={};Yo(AI,{default:()=>rI});bx=Oe(()=>{"use strict";rI=c0,u0=globalThis.self?.name?.startsWith("em-pthread"),u0&&c0()}),Ym=Oe(()=>{"use strict";Sm(),sm=typeof location>"u"?void 0:location.origin,Dm=LA.url>"file:"&&LA.url<"file;",l0=()=>{if(Dm){let t=URL;return new URL(new t("ort.webgpu.bundle.min.mjs",LA.url).href,sm).href}return LA.url},iA=l0(),nI=()=>{if(iA&&!iA.startsWith("blob:"))return iA.substring(0,iA.lastIndexOf("/")+1)},nl=(t,e)=>{try{let A=e??iA;return(A?new URL(t,A):new URL(t)).origin===sm}catch{return!1}},g0=(t,e)=>{let A=e??iA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},d0=(t,e)=>`${e??"./"}${t}`,om=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},f0=async t=>(await import(t)).default,cm=(Cx(),cl(eI)).default,iI=async()=>{if(!iA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(nl(iA))return[void 0,cm()];let t=await om(iA);return[t,cm(t)]},um=(bx(),cl(AI)).default,aI=async(t,e,A,r)=>{let n=um&&!(t||e);if(n)if(iA)n=nl(iA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,um];{let a="ort-wasm-simd-threaded.asyncify.mjs",i=t??g0(a,e),s=A&&i&&!nl(i,e),o=s?await om(i):i??d0(a,e);return[s?o:void 0,await f0(o)]}}}),di=Oe(()=>{"use strict";Ym(),il=!1,Eo=!1,gm=!1,m0=()=>{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}},h0=()=>{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}},p0=()=>{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}},vm=async t=>{if(il)return Promise.resolve();if(Eo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(gm)throw new Error("previous call to 'initializeWebAssembly()' failed.");Eo=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!p0())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!h0())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=m0();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,l=t.wasmBinary,[u,g]=await aI(s,a,A>1,!!l||!!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(l)w.wasmBinary=l,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=nI();D&&(w.locateFile=E=>D+E)}g(w).then(D=>{Eo=!1,il=!0,lm=D,h(),u&&URL.revokeObjectURL(u)},D=>{Eo=!1,gm=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},Ve=()=>{if(il&&lm)return lm;throw new Error("WebAssembly is not initialized yet.")}}),Om=Oe(()=>{"use strict";di(),aA=(t,e)=>{let A=Ve(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},ll=(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")ll(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=Ve(),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)}}}),Ex=Oe(()=>{"use strict";di(),Om(),sI=t=>{let e=Ve(),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&&ll(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}}}),Tx=Oe(()=>{"use strict";di(),Om(),w0=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}`)}},B0=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},P0=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)},_a=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);Ve()._OrtAddSessionConfigEntry(t,n,a)!==0&&He(`Can't set a session config entry: ${e} - ${A}.`)},ln=(t,e,A,r)=>{let n=aA(e,r),a=aA(A,r);t.push([n,a])},y0=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",_a(t,"session.disable_quant_qdq","1",A),_a(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&_a(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&&ln(i,"enableGraphCapture","1",A),typeof f.preferredLayout=="string"&&ln(i,"preferredLayout",f.preferredLayout,A),f.forceCpuNodeNames){let h=Array.isArray(f.forceCpuNodeNames)?f.forceCpuNodeNames:[f.forceCpuNodeNames];ln(i,"forceCpuNodeNames",h.join(`
11
+ `),A)}f.validationMode&&ln(i,"validationMode",f.validationMode,A)}let g=Ve().webgpuRegisterDevice(u);if(g){let[f,p,h]=g;ln(i,"deviceId",f.toString(),A),ln(i,"webgpuInstance",p.toString(),A),ln(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,l=0;if(o>0){c=Ve()._malloc(o*Ve().PTR_SIZE),A.push(c),l=Ve()._malloc(o*Ve().PTR_SIZE),A.push(l);for(let u=0;u<o;u++)Ve().setValue(c+u*Ve().PTR_SIZE,i[u][0],"*"),Ve().setValue(l+u*Ve().PTR_SIZE,i[u][1],"*")}await Ve()._OrtAppendExecutionProvider(t,s,c,l,o)!==0&&He(`Can't append execution provider: ${a}.`)}},oI=async t=>{let e=Ve(),A=0,r=[],n=t||{};P0(n);try{let a=w0(n.graphOptimizationLevel??"all"),i=B0(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 l=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,l),A===0&&He("Can't create session options."),n.executionProviders&&await y0(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);_a(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,g]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof g!="number"||!Number.isInteger(g)||g<0)throw new Error(`free dimension override value must be a non-negative integer: ${g}`);let f=aA(u,r);e._OrtAddFreeDimensionOverride(A,f,g)!==0&&He(`Can't set a free dimension override: ${u} - ${g}.`)}return n.extra!==void 0&&ll(n.extra,"",new WeakSet,(u,g)=>{_a(A,u,g,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}}}),Qa=Oe(()=>{"use strict";oi=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}`)}},ol=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}`)}},Ra=(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},So=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}`)}},gl=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}`)}},_m=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Mm=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Cm=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}`)}}}),cI=Oe(()=>{"use strict";Sm(),Rm=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)}}),kx=Oe(()=>{"use strict";Qa(),uI=(t,e)=>new(So(e))(t)}),gI=Oe(()=>{"use strict";Qa(),I0=["V","I","W","E","F"],D0=(t,e)=>{console.log(`[${I0[t]},${new Date().toISOString()}]${e}`)},lI=(t,e)=>{C0=t,b0=e},E0=(t,e)=>{let A=gl(t),r=gl(C0);A>=r&&D0(A,typeof e=="function"?e():e)},St=(...t)=>{b0&&E0(...t)}}),xx=Oe(()=>{"use strict";Qa(),gI(),dm=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),bm=(t,e)=>{if(e==="int32")return t;let A=dm.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(So(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'`)}},fm=(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}`)}},T0=1,mm=()=>T0++,k0=new Map([["int8","int32"],["uint8","int32"],["uint32","int32"],["int64","int32"]]),hm=(t,e)=>{let A=dm.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},pm=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 hm(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=fm(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}},wm=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=k0.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!==hm(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=bm(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?fm(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()}},x0=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=mm();return this.tensorTrackersById.set(t,new wm(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=mm(),i=new pm({sessionId:t,context:n,tensor:e,dataType:A,shape:r});return this.tensorTrackersById.set(a,new wm(this,i)),this.externalTensors.add(i),a}async getCachedTensor(t,e,A,r,n,a,i){let s=this.getMLContext(t);for(let[c,l]of this.freeTensors.entries())if(l.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 pm({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)}},dI=(...t)=>new x0(...t)}),fI={};Yo(fI,{WebNNBackend:()=>mI});Gx=Oe(()=>{"use strict";Qa(),di(),kx(),xx(),gI(),To=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),G0=(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])},mI=class{constructor(t){this.tensorManager=dI(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,lI(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=>G0(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=To.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=To.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(!Ve().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 uI(A,e)}}registerMLTensor(t,e,A,r){let n=To.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,l;switch(n.dataType){case"float32":l=new Float32Array(c);break;case"float16":l=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":l=new Int32Array(c);break;case"uint32":l=new Uint32Array(c);break;case"int64":if(i){let u=bm(new Uint8Array(c),"int64");l=new Int32Array(u.buffer),n.dataType="int32"}else l=new BigInt64Array(c);break;case"uint64":l=new BigUint64Array(c);break;case"int8":l=new Int8Array(c);break;case"int4":case"uint4":case"uint8":l=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,l)}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=To.get(oi(e)),n=this.mlOpSupportLimitsBySessionId.get(t);return typeof r>"u"?!1:A?!!n?.input.dataTypes.includes(r):!!n?.output.dataTypes.includes(r)}flush(){}}}),hI=Oe(()=>{"use strict";gi(),Ex(),Tx(),Qa(),di(),Om(),cI(),S0=(t,e)=>{Ve()._OrtInit(t,e)!==0&&He("Can't initialize onnxruntime.")},Qm=async t=>{S0(t.wasm.numThreads,gl(t.logLevel))},Fm=async(t,e)=>{Ve().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"&&Ve().webgpuInit(r=>{t.webgpu.device=r}),e==="webnn"){let r=new(Gx(),cl(fI)).WebNNBackend(t);Ve().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=Ve(),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)}},Bm=(t,e)=>{let A=Ve(),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],l=[];for(let u=0;u<c;u++){let g=Number(A.getValue(n+8+u*a,"*"));l.push(g!==0?A.UTF8ToString(g):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,l]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},dl=t=>{let e=Ve(),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]},zm=async(t,e)=>{let A,r,n=Ve();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=dl(t);let a=0,i=0,s=0,o=[],c=[],l=[];try{if([i,o]=await oI(e),e?.externalData&&n.mountExternalData){let C=[];for(let G of e.externalData){let S=typeof G=="string"?G:G.path;C.push(Rm(typeof G=="string"?G:G.data).then(k=>{n.mountExternalData(S,k)}))}await Promise.all(C)}for(let C of e?.executionProviders??[])if((typeof C=="string"?C:C.name)==="webnn"){if(n.shouldTransferToMLTensor=!1,typeof C!="string"){let G=C,S=G?.context,k=G?.gpuDevice,M=G?.deviceType,R=G?.powerPreference;S?n.currentContext=S:k?n.currentContext=await n.webnnCreateMLContext(k):n.currentContext=await n.webnnCreateMLContext({deviceType:M,powerPreference:R})}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,g]=Y0(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let C=0;C<u;C++){let[G,S,k]=Bm(a,C);G===0&&He("Can't get an input name."),c.push(G);let M=n.UTF8ToString(G);p.push(M),y.push(S===0?{name:M,isTensor:!1}:{name:M,isTensor:!0,type:ol(S),shape:k})}for(let C=0;C<g;C++){let[G,S,k]=Bm(a,C+u);G===0&&He("Can't get an output name."),l.push(G);let M=n.UTF8ToString(G);h.push(M),w.push(S===0?{name:M,isTensor:!1}:{name:M,isTensor:!0,type:ol(S),shape:k});{if(f&&e?.preferredOutputLocation===void 0){D.push("gpu-buffer");continue}let R=typeof e?.preferredOutputLocation=="string"?e.preferredOutputLocation:e?.preferredOutputLocation?.[M]??"cpu",N=n.webnnIsGraphOutput;if(R==="cpu"&&N&&N(a,M)){D.push("ml-tensor-cpu-output");continue}if(R!=="cpu"&&R!=="cpu-pinned"&&R!=="gpu-buffer"&&R!=="ml-tensor")throw new Error(`Not supported preferred output location: ${R}.`);if(f&&R!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${R}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);D.push(R)}}let E=null;return D.some(C=>C==="gpu-buffer"||C==="ml-tensor"||C==="ml-tensor-cpu-output")&&(s=n._OrtCreateBinding(a),s===0&&He("Can't create IO binding."),E={handle:s,outputPreferredLocations:D,outputPreferredLocationsEncoded:D.map(C=>C==="ml-tensor-cpu-output"?"ml-tensor":C).map(C=>Cm(C))}),gn.set(a,[a,c,l,E,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(g=>n._OrtFree(g)),l.forEach(g=>n._OrtFree(g)),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?.()}},Nm=t=>{let e=Ve(),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=Ve(),o=s.PTR_SIZE,c=t[0],l=t[1],u=t[3],g=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=Ra(oi(c),l);{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=Ra(oi(c),l);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,oi(c),l)}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,E=s.webnnIsGraphOutput;if(c!=="string"&&D&&E){let C=s.UTF8ToString(n);if(D(r,C)||E(r,C)){let G=oi(c);p=Ra(G,l),g="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 M=await S(r,G,l);k(M,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=M}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*l.length);try{l.forEach((D,E)=>s.setValue(y+E*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(oi(c),f,p,y,l.length,Cm(g));w===0&&He(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Hm=async(t,e,A,r,n,a)=>{let i=Ve(),s=i.PTR_SIZE,o=gn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],l=o[1],u=o[2],g=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],E=[],C=[],G=[],S=[],k=i.stackSave(),M=i.stackAlloc(h*s),R=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=sI(a),fn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await Pm(A[_],E,G,t,l[e[_]],e[_],f);for(let _=0;_<y;_++)await Pm(n[_],C,G,t,u[r[_]],h+r[_],f);mn("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(M+_*s,E[_],"*"),i.setValue(R+_*s,l[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,C[_],"*"),i.setValue(V+_*s,u[r[_]],"*");if(g&&!p){let{handle:_,outputPreferredLocations:W,outputPreferredLocationsEncoded:we}=g;if(l.length!==h)throw new Error(`input count from feeds (${h}) is expected to be always equal to model's input count (${l.length}).`);fn("wasm bindInputsOutputs");for(let re=0;re<h;re++){let De=e[re];await i._OrtBindInput(_,l[De],E[re])!==0&&He(`Can't bind input[${re}] for session=${t}.`)}for(let re=0;re<y;re++){let De=r[re];n[re]?.[3]?(S.push(C[re]),i._OrtBindOutput(_,u[De],C[re],0)!==0&&He(`Can't bind pre-allocated output[${re}] for session=${t}.`)):i._OrtBindOutput(_,u[De],0,we[De])!==0&&He(`Can't bind output[${re}] to ${W[re]} for session=${t}.`)}mn("wasm bindInputsOutputs"),gn.set(t,[c,l,u,g,f,!0])}i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;g?F=await i._OrtRunWithBinding(c,g.handle,y,N,w):F=await i._OrtRun(c,R,M,h,V,y,N,w),F!==0&&He("failed to call OrtRun().");let K=[],L=[];fn("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===C[_]||S.includes(C[_])){K.push(n[_]),W!==C[_]&&i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.");continue}let we=i.stackSave(),re=i.stackAlloc(4*s),De=!1,ae,fe=0;try{i._OrtGetTensorData(W,re,re+s,re+2*s,re+3*s)!==0&&He(`Can't access output tensor data on index ${_}.`);let ut=s===4?"i32":"i64",ot=Number(i.getValue(re,ut));fe=i.getValue(re+s,"*");let et=i.getValue(re+s*2,"*"),Mt=Number(i.getValue(re+s*3,ut)),qe=[];for(let Be=0;Be<Mt;Be++)qe.push(Number(i.getValue(et+Be*s,ut)));i._OrtFree(et)!==0&&He("Can't free memory for tensor dims.");let Ne=qe.reduce((Be,oe)=>Be*oe,1);ae=ol(ot);let ct=g?.outputPreferredLocations[r[_]];if(ae==="string"){if(ct==="gpu-buffer"||ct==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let oe=0;oe<Ne;oe++){let de=i.getValue(fe+oe*s,"*"),kt=i.getValue(fe+(oe+1)*s,"*"),ve=oe===Ne-1?void 0:kt-de;Be.push(i.UTF8ToString(de,ve))}K.push([ae,qe,Be,"cpu"])}else if(ct==="gpu-buffer"&&Ne>0){let Be=i.webgpuGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let oe=Be(fe),de=Ra(ot,Ne);if(de===void 0||!_m(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0;{i.webgpuRegisterBuffer(oe,t,fe);let kt=i.webgpuCreateDownloader(oe,de,t);K.push([ae,qe,{gpuBuffer:oe,download:async()=>{let ve=await kt();return new(So(ae))(ve)},dispose:()=>{i._OrtReleaseTensor(W)!==0&&He("Can't release tensor.")}},"gpu-buffer"])}}else if(ct==="ml-tensor"&&Ne>0){let Be=i.webnnEnsureTensor,oe=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!oe)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Ra(ot,Ne)===void 0||!Mm(ae))throw new Error(`Unsupported data type: ${ae}`);if(!oe(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let de=await Be(t,fe,ot,qe,!1);De=!0,K.push([ae,qe,{mlTensor:de,download:i.webnnCreateMLTensorDownloader(fe,ae),dispose:()=>{i.webnnReleaseTensorId(fe),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ct==="ml-tensor-cpu-output"&&Ne>0){let Be=i.webnnCreateMLTensorDownloader(fe,ae)(),oe=K.length;De=!0,L.push((async()=>{let de=[oe,await Be];return i.webnnReleaseTensorId(fe),i._OrtReleaseTensor(W),de})()),K.push([ae,qe,[],"cpu"])}else{let Be=So(ae),oe=new Be(Ne);new Uint8Array(oe.buffer,oe.byteOffset,oe.byteLength).set(i.HEAPU8.subarray(fe,fe+oe.byteLength)),K.push([ae,qe,oe,"cpu"])}}finally{i.stackRestore(we),ae==="string"&&fe&&i._free(fe),De||i._OrtReleaseTensor(W)}}g&&!f&&(i._OrtClearBoundOutputs(g.handle)!==0&&He("Can't clear bound outputs."),gn.set(t,[c,l,u,g,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return mn("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)}),E.forEach(F=>i._OrtReleaseTensor(F)),C.forEach(F=>i._OrtReleaseTensor(F)),G.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Um=t=>{let e=Ve(),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)},qm=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),CI=Oe(()=>{"use strict";gi(),hI(),di(),Ym(),dn=()=>!!st.wasm.proxy&&typeof document<"u",Ma=!1,ko=!1,xo=!1,sl=new Map,ii=(t,e)=>{let A=sl.get(t);A?A.push(e):sl.set(t,[e])},ai=()=>{if(Ma||!ko||xo||!pA)throw new Error("worker not ready")},v0=t=>{switch(t.data.type){case"init-wasm":Ma=!1,t.data.err?(xo=!0,ym[1](t.data.err)):(ko=!0,ym[0]()),al&&(URL.revokeObjectURL(al),al=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=sl.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},pI=async()=>{if(!ko){if(Ma)throw new Error("multiple calls to 'initWasm()' detected.");if(xo)throw new Error("previous call to 'initWasm()' failed.");if(Ma=!0,dn())return new Promise((t,e)=>{pA?.terminate(),iI().then(([A,r])=>{try{pA=r,pA.onerror=a=>e(a),pA.onmessage=v0,ym=[t,e];let n={type:"init-wasm",in:st};!n.in.wasm.wasmPaths&&(A||Dm)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.asyncify.wasm",LA.url).href}),pA.postMessage(n),al=A}catch(n){e(n)}},e)});try{await vm(st.wasm),await Qm(st),ko=!0}catch(t){throw xo=!0,t}finally{Ma=!1}}},wI=async t=>{if(dn())return ai(),new Promise((e,A)=>{ii("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:st}};pA.postMessage(r)});await Fm(st,t)},BI=async t=>dn()?(ai(),new Promise((e,A)=>{ii("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};pA.postMessage(r,[t.buffer])})):dl(t),PI=async(t,e)=>{if(dn()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return ai(),new Promise((A,r)=>{ii("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),pA.postMessage(n,a)})}else return zm(t,e)},yI=async t=>{if(dn())return ai(),new Promise((e,A)=>{ii("release",[e,A]);let r={type:"release",in:t};pA.postMessage(r)});Nm(t)},II=async(t,e,A,r,n,a)=>{if(dn()){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 ai(),new Promise((i,s)=>{ii("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};pA.postMessage(c,qm(o))})}else return Hm(t,e,A,r,n,a)},DI=async t=>{if(dn())return ai(),new Promise((e,A)=>{ii("end-profiling",[e,A]);let r={type:"end-profiling",in:t};pA.postMessage(r)});Um(t)}}),Sx=Oe(()=>{"use strict";gi(),CI(),Qa(),Sm(),cI(),Im=(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()}`)}},O0=t=>{switch(t[3]){case"cpu":return new jA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!_m(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(!Mm(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]}`)}},bI=class{async fetchModelAndCopyToWasmMemory(t){return BI(await Rm(t))}async loadModel(t,e){ui();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await PI(A,e),li()}async dispose(){return yI(this.sessionId)}async run(t,e,A){ui();let r=[],n=[];Object.entries(t).forEach(u=>{let g=u[0],f=u[1],p=this.inputNames.indexOf(g);if(p===-1)throw new Error(`invalid input '${g}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let g=u[0],f=u[1],p=this.outputNames.indexOf(g);if(p===-1)throw new Error(`invalid output '${g}'`);a.push(f),i.push(p)});let s=r.map((u,g)=>Im(u,()=>`input "${this.inputNames[n[g]]}"`)),o=a.map((u,g)=>u?Im(u,()=>`output "${this.outputNames[i[g]]}"`):null),c=await II(this.sessionId,n,s,i,o,A),l={};for(let u=0;u<c.length;u++)l[this.outputNames[i[u]]]=a[u]??O0(c[u]);return li(),l}startProfiling(){}endProfiling(){DI(this.sessionId)}}}),EI={};Yo(EI,{OnnxruntimeWebAssemblyBackend:()=>Tm,initializeFlags:()=>Em,wasmBackend:()=>TI});Yx=Oe(()=>{"use strict";gi(),CI(),Sx(),Em=()=>{(typeof st.wasm.initTimeout!="number"||st.wasm.initTimeout<0)&&(st.wasm.initTimeout=0);let t=st.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.`),st.wasm.simd=!1),typeof st.wasm.proxy!="boolean"&&(st.wasm.proxy=!1),typeof st.wasm.trace!="boolean"&&(st.wasm.trace=!1),typeof st.wasm.numThreads!="number"||!Number.isInteger(st.wasm.numThreads)||st.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)st.wasm.numThreads=1;else{let e=typeof navigator>"u"?cx("node:os").cpus().length:navigator.hardwareConcurrency;st.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Tm=class{async init(t){Em(),await pI(),await wI(t)}async createInferenceSessionHandler(t,e){let A=new bI;return await A.loadModel(t,e),A}},TI=new Tm});gi();gi();gi();vx="1.26.0",Ox=X0;{let t=(Yx(),cl(EI)).wasmBackend;ci("webgpu",t,5),ci("webnn",t,5),ci("cpu",t,10),ci("wasm",t,10)}Object.defineProperty(st.versions,"web",{value:vx,enumerable:!0})});function b(t){if(!t)throw new Error("Assertion failed.")}var Oi=t=>{let e=(t%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${t}.`)},Me=t=>t&&t[t.length-1],fr=t=>t>=0&&t<2**32,te=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=te(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),Ge=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),mt=new TextDecoder,Nt=new TextEncoder;var bg=t=>Object.fromEntries(Object.entries(t).map(([e,A])=>[A,e])),mr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Cn=bg(mr),hr={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},bn=bg(hr),pr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},En=bg(pr),fp=t=>!!t&&!!t.primaries&&!!t.transfer&&!!t.matrix&&t.fullRange!==void 0,Ds=t=>t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer||ArrayBuffer.isView(t),zt=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}},mp=/^[0-9a-fA-F]+$/,qr=t=>[...t].map(e=>e.toString(16).padStart(2,"0")).join(""),hp=t=>{b(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},Eg=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},Tg=(t,e,A)=>{let r=ye(t,A(e),A);t.splice(r+1,0,e)},gt=()=>{let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}},pp=(t,e)=>{let A=t.indexOf(e);A!==-1&&t.splice(A,1)},kg=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return t[A]},_i=(t,e)=>{for(let A=t.length-1;A>=0;A--)if(e(t[A]))return A;return-1},wp=async function*(t){Symbol.iterator in t?yield*t[Symbol.iterator]():yield*t[Symbol.asyncIterator]()},Bp=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}`)},Cs=(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 xg=(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},bs=(t,e)=>Math.round(t/e)*e,Es=(t,e)=>Math.round(t*e)/e,fc=(t,e)=>Math.floor(t/e)*e,Gg=(t,e)=>Math.floor(t*e)/e,Pp=t=>{let e=0;for(;t;)e++,t>>=1;return e},iC=/^[a-z]{3}$/,Mi=t=>iC.test(t),Lr=1e6*(1+Number.EPSILON);var yp=(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,l=o*i+n;if(l>e)return{num:A*a,den:i};if(r=a,n=i,a=c,i=l,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)}},yg=null,kn=()=>yg!==null?yg:yg=!!(typeof navigator<"u"&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),Ig=null,Ts=()=>Ig!==null?Ig:Ig=typeof navigator<"u"&&navigator.userAgent?.includes("Firefox"),Dg=null,ks=()=>Dg!==null?Dg:Dg=!!(typeof navigator<"u"&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),Cg=null,Ip=()=>{if(Cg!==null)return Cg;if(typeof navigator>"u")return null;let t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Cg=Number(t[1]):null},xn=(t,e)=>t!==-1?t:e,mc=(t,e,A,r)=>t<=r&&A<=e,xs=function*(t){for(let e in t){let A=t[e];A!==void 0&&(yield{key:e,value:A})}};var Gs=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 Dp=(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},Ri=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},Ss=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("/")},Gn=(t,e)=>{let A=0;for(let r=0;r<t.length;r++)e(t[r])&&A++;return A},Qi=(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=>{b(Number.isInteger(t.num)),b(Number.isInteger(t.den)),b(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}},Sg=(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 Yg=t=>new Promise(e=>setTimeout(e,t));var vg=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 Og=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.")}},Ys=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.")}},Cp=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 Ys)&&!Og(e))throw new TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, Record<string, string>, or null.")}};var Dt={default:!0,primary:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},bp=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 xe=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],jr=[-1,1,2,3,4,5,6,8],hc=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new xe(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=jr[a]),{objectType:A,frequencyIndex:r,sampleRate:n,channelConfiguration:a,numberOfChannels:i}},Ep=t=>{let e=er.indexOf(t.sampleRate),A=null;e===-1&&(e=15,A=t.sampleRate);let r=jr.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 xe(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 Ot=["avc","hevc","vp9","av1","vp8"],vt=["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"],pc=["aac","opus","mp3","vorbis","flac","ac3","eac3"],tr=[...pc,...vt],Vr=["webvtt"],vs=[{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}],Tp=[{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}],kp=[{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}],xp=".01.01.01.01.00",Gp=".0.110.01.01.01.0",Sp=(t,e,A,r)=>{if(t==="avc"){let a=Math.ceil(e/16)*Math.ceil(A/16),i=vs.find(u=>a<=u.maxMacroblocks&&r<=u.maxBitrate)??Me(vs),s=i?i.level:0,o="64".padStart(2,"0"),c="00",l=s.toString(16).padStart(2,"0");return`avc1.${o}${c}${l}`}else if(t==="hevc"){let n="",i="6",s=e*A,o=Tp.find(l=>s<=l.maxPictureSize&&r<=l.maxBitrate)??Me(Tp);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)??Me(Pr);return`vp09.${n}.${i.level.toString().padStart(2,"0")}.08`}else if(t==="av1"){let a=e*A,i=kp.find(c=>a<=c.maxPictureSize&&r<=c.maxBitrate)??Me(kp);return`av01.0.${i.level.toString().padStart(2,"0")}${i.tier}.08`}}throw new TypeError(`Unhandled codec '${t}'.`)};var Yp=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,g=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)+(g<<5)+(f<<4)+(p<<3)+(h<<2)+y;return[n,o,w,0]},Fi=t=>{let{codec:e,codecDescription:A,colorSpace:r,avcCodecInfo:n,hevcCodecInfo:a,vp9CodecInfo:i,av1CodecInfo:s}=t;if(e==="avc"){if(b(t.avcType!==null),n){let o=new Uint8Array([n.avcProfileIndication,n.profileCompatibility,n.avcLevelIndication]);return`avc${t.avcType}.${qr(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}.${qr(A.subarray(1,4))}`}else if(e==="hevc"){let o,c,l,u,g,f;if(a)o=a.generalProfileSpace,c=a.generalProfileIdc,l=Eg(a.generalProfileCompatibilityFlags),u=a.generalTierFlag,g=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=Ge(A),y=h.getUint8(1);o=y>>6&3,c=y&31,l=Eg(h.getUint32(2)),u=y>>5&1,g=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+=l.toString(16).toUpperCase(),p+=".",p+=u===0?"L":"H",p+=g;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=Me(Pr).level;for(let E of Pr)if(w<=E.maxPictureSize){D=E.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"),l=i.bitDepth.toString().padStart(2,"0"),u=i.chromaSubsampling.toString().padStart(2,"0"),g=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}.${l}.${u}`;return y+=`.${g}.${f}.${p}.${h}`,y.endsWith(xp)&&(y=y.slice(0,-xp.length)),y}else if(e==="av1"){if(!s){let E=t.width*t.height,C=Me(Pr).level;for(let G of Pr)if(E<=G.maxPictureSize){C=G.level;break}return`av01.0.${C.toString().padStart(2,"0")}M.08`}let o=s.profile,c=s.level.toString().padStart(2,"0"),l=s.tier?"H":"M",u=s.bitDepth.toString().padStart(2,"0"),g=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}${l}.${u}`;return D+=`.${g}.${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(Gp)&&(D=D.slice(0,-Gp.length)),D}}throw new TypeError(`Unhandled codec '${e}'.`)};var zi=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=hc(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&&vt.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)};var Yn=48e3,vp=/^pcm-([usf])(\d+)(be)?$/,kA=t=>{if(b(vt.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=vp.exec(t);b(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}},Kr=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":vp.test(t)?t:t==="webvtt"?"webvtt":null,Op=t=>t==="avc"?{avc:{format:"avc"}}:t==="hevc"?{hevc:{format:"hevc"}}:{};var aC=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],sC=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,oC=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,cC=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,uC=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,_p=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(!aC.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&&!Ds(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(!sC.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(!oC.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(!cC.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")&&!uC.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/.')},lC=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm","ac-3","ec-3"],Mp=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(!lC.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&&!Ds(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"))&&!vt.includes(t.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${vt.join(", ")}).`)},Rp=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 gC=[44100,48e3,32e3],dC=[-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],wc=1483304551,Bc=1231971951,fC=(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,Qp=(t,e,A,r)=>e===0?0:e===1?144*A/(r<<t):e===2?144*A/r:12*A/r*4,Pc=(t,e)=>t===3?e===3?21:36:e===3?13:21,_s=(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,l=n>>4&15,u=(n>>2&3)%3,g=n>>1&1,f=a>>6&3,p=a>>4&3,h=a>>3&1,y=a>>2&1,w=a&3,D=dC[i*16*4+c*16+l];if(D===-1)return{header:null,bytesAdvanced:1};let E=D*1e3,C=gC[u]>>i+s,G=fC(i,c,E,C,g);if(e!==null&&e<G)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:G,mpegVersionId:o,lowSamplingFrequency:i,layer:c,bitrate:E,frequencyIndex:u,sampleRate:C,channel:f,modeExtension:p,copyright:h,original:y,emphasis:w,audioSamplesInFrame:S},bytesAdvanced:1}};var yc=t=>{let e=2130706432,A=0;for(;e!==0;)A>>=1,A|=t&e,e>>=8;return A},Os;(function(t){t[t.FrameCount=1]="FrameCount",t[t.FileSize=2]="FileSize",t[t.Toc=4]="Toc"})(Os||(Os={}));var Wr=t=>t===3?1:2;var vn=[48e3,44100,32e3],_g=[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 Ct;(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"})(Ct||(Ct={}));var Ni=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})},Np=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=Cs(r,A,!1):(b(e===4),n=r.getUint32(A,!1)),A+=e,yield{offset:A,length:n},A+=n}},Rg=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Np(t,n)}else return Ni(t)},Hi=t=>t&31,Ic=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)},Mg=new Uint8Array([0,0,0,1]),Hp=t=>{let e=t.reduce((n,a)=>n+Mg.byteLength+a.byteLength,0),A=new Uint8Array(e),r=0;for(let n of t)A.set(Mg,r),r+=Mg.byteLength,A.set(n,r),r+=n.byteLength;return A},Dc=(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:xg(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},Up=(t,e)=>{if(e.description){let n=(ft(e.description)[4]&3)+1;return Dc(t,n)}else return Hp(t)},Ui=t=>{try{let e=[],A=[],r=[];for(let s of Ni(t)){let o=t.subarray(s.offset,s.offset+s.length),c=Hi(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=Rs(n);b(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}},qp=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){b(t.chromaFormat!==null),b(t.bitDepthLumaMinus8!==null),b(t.bitDepthChromaMinus8!==null),b(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)},Lp=t=>{try{let e=Ge(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 l=e.getUint8(A++),u=[];for(let f=0;f<l;f++){let p=e.getUint16(A,!1);A+=2,u.push(t.subarray(A,A+p)),A+=p}let g={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++);g.chromaFormat=f,g.bitDepthLumaMinus8=p,g.bitDepthChromaMinus8=h;let w=[];for(let D=0;D<y;D++){let E=e.getUint16(A,!1);A+=2,w.push(t.subarray(A,A+E)),A+=E}g.sequenceParameterSetExt=w}return g}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},jp={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}},Rs=t=>{try{let e=new xe(Ic(t));if(e.skipBits(1),e.skipBits(2),e.readBits(5)!==7)return null;let r=e.readAlignedByte(),n=e.readAlignedByte(),a=e.readAlignedByte();te(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=te(e),i===3&&(c=e.readBits(1)),s=te(e),o=te(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 we=0;we<L;we++){if(W!==0){let re=JA(e);W=(_+re+256)%256}_=W===0?_:W}}}te(e);let l=te(e);if(l===0)te(e);else if(l===1){e.skipBits(1),JA(e),JA(e);let V=te(e);for(let F=0;F<V;F++)JA(e)}te(e),e.skipBits(1);let u=te(e),g=te(e),f=16*(u+1),p=16*(g+1),h=f,y=p,w=e.readBits(1);if(w||e.skipBits(1),e.skipBits(1),e.readBits(1)){let V=te(e),F=te(e),K=te(e),L=te(e),_,W;if((c===0?i:0)===0)_=1,W=2-w;else{let re=i===3?1:2,De=i===1?2:1;_=re,W=De*(2-w)}h-=_*(V+F),y-=W*(K+L)}let E=2,C=2,G=2,S=0,k={num:1,den:1},M=null,R=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=jp[De];ae&&(k=ae)}}e.readBits(1)&&e.skipBits(1),e.readBits(1)&&(e.skipBits(3),S=e.readBits(1),e.readBits(1)&&(E=e.readBits(8),C=e.readBits(8),G=e.readBits(8))),e.readBits(1)&&(te(e),te(e)),e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.skipBits(1));let W=e.readBits(1);W&&Fp(e);let we=e.readBits(1);we&&Fp(e),(W||we)&&e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(1),te(e),te(e),te(e),te(e),M=te(e),R=te(e))}if(M===null){b(R===null);let V=n&16;if((r===44||r===86||r===100||r===110||r===122||r===244)&&V)M=0,R=0;else{let F=u+1,K=g+1,L=(2-w)*K,_=vs.find(we=>we.level>=a)??Me(vs),W=Math.min(Math.floor(_.maxDpbMbs/(F*L)),16);M=W,R=W}}return b(R!==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:E,matrixCoefficients:G,transferCharacteristics:C,fullRangeFlag:S,numReorderFrames:M,maxDecFrameBuffering:R}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},Fp=t=>{let e=te(t);t.skipBits(4),t.skipBits(4);for(let A=0;A<=e;A++)te(t),te(t),t.skipBits(1);t.skipBits(5),t.skipBits(5),t.skipBits(5),t.skipBits(5)},mC=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Dc(t,n)}else return Hp(t)},Ms=(t,e)=>{if(e.description){let n=(ft(e.description)[21]&3)+1;return Np(t,n)}else return Ni(t)},Zr=t=>t>>1&63,Qg=t=>{try{let e=new xe(Ic(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}=hC(e,A);te(e);let l=te(e),u=0;l===3&&(u=e.readBits(1));let g=te(e),f=te(e),p=g,h=f;if(e.readBits(1)){let F=te(e),K=te(e),L=te(e),_=te(e),W=1,we=1,re=u===0?l:0;re===1?(W=2,we=2):re===2&&(W=2,we=1),p-=(F+K)*W,h-=(L+_)*we}let y=te(e),w=te(e);te(e);let E=e.readBits(1)?0:A,C=0;for(let F=E;F<=A;F++)te(e),C=te(e),te(e);te(e),te(e),te(e),te(e),te(e),te(e),e.readBits(1)&&e.readBits(1)&&pC(e),e.skipBits(1),e.skipBits(1),e.readBits(1)&&(e.skipBits(4),e.skipBits(4),te(e),te(e),e.skipBits(1));let G=te(e);if(wC(e,G),e.readBits(1)){let F=te(e);for(let K=0;K<F;K++)te(e),e.skipBits(1)}e.skipBits(1),e.skipBits(1);let S=2,k=2,M=2,R=0,N=0,V={num:1,den:1};if(e.readBits(1)){let F=PC(e,A);V=F.pixelAspectRatio,S=F.colourPrimaries,k=F.transferCharacteristics,M=F.matrixCoefficients,R=F.fullRangeFlag,N=F.minSpatialSegmentationIdc}return{displayWidth:p,displayHeight:h,pixelAspectRatio:V,colourPrimaries:S,transferCharacteristics:k,matrixCoefficients:M,fullRangeFlag:R,maxDecFrameBuffering:C+1,spsMaxSubLayersMinus1:A,spsTemporalIdNestingFlag:r,generalProfileSpace:n,generalTierFlag:a,generalProfileIdc:i,generalProfileCompatibilityFlags:s,generalConstraintIndicatorFlags:o,generalLevelIdc:c,chromaFormatIdc:l,bitDepthLumaMinus8:y,bitDepthChromaMinus8:w,minSpatialSegmentationIdc:N}}catch(e){return console.error("Error parsing HEVC SPS:",e),null}},qi=t=>{try{let e=[],A=[],r=[],n=[];for(let c of Ni(t)){let l=t.subarray(c.offset,c.offset+c.length),u=Zr(l[0]);u===Ct.VPS_NUT?e.push(l):u===Ct.SPS_NUT?A.push(l):u===Ct.PPS_NUT?r.push(l):(u===Ct.PREFIX_SEI_NUT||u===Ct.SUFFIX_SEI_NUT)&&n.push(l)}if(A.length===0||r.length===0)return null;let a=Qg(A[0]);if(!a)return null;let i=0;if(r.length>0){let c=r[0],l=new xe(Ic(c));l.skipBits(16),te(l),te(l),l.skipBits(1),l.skipBits(1),l.skipBits(3),l.skipBits(1),l.skipBits(1),te(l),te(l),JA(l),l.skipBits(1),l.skipBits(1),l.readBits(1)&&te(l),JA(l),JA(l),l.skipBits(1),l.skipBits(1),l.skipBits(1),l.skipBits(1);let u=l.readBits(1),g=l.readBits(1);!u&&!g?i=0:u&&!g?i=2:!u&&g?i=3:i=0}let s=[...e.length?[{arrayCompleteness:1,nalUnitType:Ct.VPS_NUT,nalUnits:e}]:[],...A.length?[{arrayCompleteness:1,nalUnitType:Ct.SPS_NUT,nalUnits:A}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:Ct.PPS_NUT,nalUnits:r}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Zr(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}},hC=(t,e)=>{let A=t.readBits(2),r=t.readBits(1),n=t.readBits(5),a=0;for(let l=0;l<32;l++)a=a<<1|t.readBits(1);let i=new Uint8Array(6);for(let l=0;l<6;l++)i[l]=t.readBits(8);let s=t.readBits(8),o=[],c=[];for(let l=0;l<e;l++)o.push(t.readBits(1)),c.push(t.readBits(1));if(e>0)for(let l=e;l<8;l++)t.skipBits(2);for(let l=0;l<e;l++)o[l]&&t.skipBits(88),c[l]&&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}},pC=t=>{for(let e=0;e<4;e++)for(let A=0;A<(e===3?2:6);A++)if(!t.readBits(1))te(t);else{let n=Math.min(64,1<<4+(e<<1));e>1&&JA(t);for(let a=0;a<n;a++)JA(t)}},wC=(t,e)=>{let A=[];for(let r=0;r<e;r++)A[r]=BC(t,r,e,A)},BC=(t,e,A,r)=>{let n=0,a=0,i=0;if(e!==0&&(a=t.readBits(1)),a){if(e===A){let o=te(t);i=e-(o+1)}else i=e-1;t.readBits(1),te(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=te(t),o=te(t);for(let c=0;c<s;c++)te(t),t.readBits(1);for(let c=0;c<o;c++)te(t),t.readBits(1);n=s+o}return n},PC=(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=jp[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)&&(te(t),te(t)),t.readBits(1),t.readBits(1),t.readBits(1),t.readBits(1)&&(te(t),te(t),te(t),te(t)),t.readBits(1)&&(t.readBits(32),t.readBits(32),t.readBits(1)&&te(t),t.readBits(1)&&yC(t,!0,e)),t.readBits(1)&&(t.readBits(1),t.readBits(1),t.readBits(1),i=te(t),te(t),te(t),te(t),te(t)),{pixelAspectRatio:s,colourPrimaries:A,transferCharacteristics:r,matrixCoefficients:n,fullRangeFlag:a,minSpatialSegmentationIdc:i}},yC=(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?te(t):c=t.readBits(1)===1;let l=1;c||(l=te(t)+1),r&&zp(t,l,a),n&&zp(t,l,a)}},zp=(t,e,A)=>{for(let r=0;r<e;r++)te(t),te(t),A&&(te(t),te(t)),t.readBits(1)},Vp=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 Gt;(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"})(Gt||(Gt={}));var Kp=(t,e)=>{let A=new Set,r=Gt.audAllowed;for(let a of Ms(t,e)){if(r===Gt.noMoreDataAllowed){A.add(a.offset);continue}let i=Zr(t[a.offset]);if(r===Gt.eoBitstreamAllowed&&i!==37){A.add(a.offset);continue}let s=!1;i===35?r>Gt.audAllowed?s=!0:r=Gt.beforeFirstVcl:i<=31?r>Gt.afterFirstVcl?s=!0:r=Gt.afterFirstVcl:i===36?r!==Gt.afterFirstVcl?s=!0:r=Gt.eoBitstreamAllowed:i===37?r<Gt.afterFirstVcl?s=!0:r=Gt.noMoreDataAllowed:i===32||i===33||i===34||i===39||i>=41&&i<=44||i>=48&&i<=55?r>Gt.beforeFirstVcl?s=!0:r=Gt.beforeFirstVcl:(i===38||i===40||i>=45&&i<=47||i>=56&&i<=63)&&r<Gt.afterFirstVcl&&(s=!0),s&&A.add(a.offset)}if(A.size===0)return null;let n=[];for(let a of Ms(t,e))A.has(a.offset)||n.push(t.subarray(a.offset,a.offset+a.length));return mC(n,e)},Cc=t=>{let e=new xe(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 l=e.readBits(3),u=0,g=0;if(l!==7)if(g=e.readBits(1),a===1||a===3){let k=e.readBits(1),M=e.readBits(1);u=!k&&!M?3:k&&!M?2:1,e.skipBits(1)}else u=1;else u=3,g=1;let f=e.readBits(16),p=e.readBits(16),h=f+1,y=p+1,w=h*y,D=Me(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:g,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}},Wp=function*(t){let e=new xe(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);b(e.pos%8===0),yield{type:r,data:t.subarray(e.pos/8,e.pos/8+i)},e.skipBits(i*8)}},bc=t=>{for(let{type:e,data:A}of Wp(t)){if(e!==1)continue;let r=new xe(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 M=0;M<=k;M++){r.skipBits(12);let R=r.readBits(5);if(M===0&&(s=R),R>7){let V=r.readBits(1);M===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 l=r.readBits(4),u=r.readBits(4),g=l+1;r.skipBits(g);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 G=r.readBits(1);G&&(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)),G&&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,E=1,C=0;return w||(n===0?(D=1,E=1):n===1?(D=0,E=0):y===12&&(D=r.readBits(1),D&&(E=r.readBits(1))),D&&E&&(C=r.readBits(2))),{profile:n,level:s,tier:o,bitDepth:y,monochrome:w,chromaSubsamplingX:D,chromaSubsamplingY:E,chromaSamplePosition:C}}return null},Ec=t=>{let e=Ge(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}},IC=[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],Zp=t=>{let e=t[0]>>3;return{durationInSamples:IC[e]}},$p=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 xe(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,g=n.readBits(8),f=n.readBits(16),p=n.readBits(16);if(g>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 l=Array(c).fill(0);for(let u=c-1;u>=0;u--)n.skipBits(40),l[u]=n.readBits(1);return{modeBlockflags:l}},Jr=(t,e,A)=>{switch(t){case"avc":{for(let r of Rg(A,e)){let n=A[r.offset],a=Hi(n);if(a>=Jt.NON_IDR_SLICE&&a<=Jt.SLICE_DPC)return"delta";if(a===Jt.IDR)return"key";if(a===Jt.SEI&&(!ks()||Ip()>=144)){let i=A.subarray(r.offset,r.offset+r.length),s=Ic(i),o=1;do{let c=0;for(;;){let g=s[o++];if(g===void 0||(c+=g,g<255))break}let l=0;for(;;){let g=s[o++];if(g===void 0||(l+=g,g<255))break}if(c===6){let g=new xe(s);g.pos=8*o;let f=te(g),p=g.readBits(1);if(f===0&&p===1)return"key"}o+=l}while(o<s.length-1)}}return"delta"}case"hevc":{for(let r of Ms(A,e)){let n=Zr(A[r.offset]);if(n<Ct.BLA_W_LP)return"delta";if(n<=Ct.RSV_IRAP_VCL23)return"key"}return"delta"}case"vp8":return(A[0]&1)===0?"key":"delta";case"vp9":{let r=new xe(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 Wp(A))if(n===1){let i=new xe(a);i.skipBits(4),r=!!i.readBits(1)}else if(n===3||n===6||n===7){if(r)return"key";let i=new xe(a);return i.readBits(1)?null:i.readBits(2)===0?"key":"delta"}return null}default:$t(t),b(!1)}},$r;(function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"})($r||($r={}));var Qs=(t,e)=>{let A=Ge(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 l=c.indexOf("=");if(l===-1)continue;let u=c.slice(0,l).toUpperCase(),g=c.slice(l+1);switch(e.raw??={},e.raw[u]??=g,u){case"TITLE":e.title??=g;break;case"DESCRIPTION":e.description??=g;break;case"ARTIST":e.artist??=g;break;case"ALBUM":e.album??=g;break;case"ALBUMARTIST":e.albumArtist??=g;break;case"COMMENT":e.comment??=g;break;case"LYRICS":e.lyrics??=g;break;case"TRACKNUMBER":{let f=g.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(g,10);Number.isInteger(f)&&f>0&&(e.tracksTotal??=f)}break;case"DISCNUMBER":{let f=g.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(g,10);Number.isInteger(f)&&f>0&&(e.discsTotal??=f)}break;case"DATE":{let f=new Date(g);Number.isNaN(f.getTime())||(e.date??=f)}break;case"GENRE":e.genre??=g;break;case"METADATA_BLOCK_PICTURE":{let f=Gs(g),p=Ge(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),E=mt.decode(f.subarray(12+y,12+y+D)),C=p.getUint32(y+D+28),G=f.subarray(y+D+32,y+D+32+C);e.images??=[],e.images.push({data:G,mimeType:w,kind:h===3?"coverFront":h===4?"coverBack":"unknown",name:void 0,description:E||void 0})}break}}};var Fs=[2,1,2,3,3,4,4,5],Tc=t=>{if(t.length<7||t[0]!==11||t[1]!==119)return null;let e=new xe(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}},Jp=[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],Xp=1536,D1=new Uint8Array([5,4,65,67,45,51]),C1=new Uint8Array([5,4,69,65,67,51]),Fg=[1,2,3,6],kc=t=>{if(t.length<6||t[0]!==11||t[1]!==119)return null;let e=new xe(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 l=Fg[i],u;return n<3?u=vn[n]/1e3:u=_g[a]/1e3,{dataRate:Math.round((r+1)*u/(l*16)),substreams:[{fscod:n,fscod2:a,bsid:c,bsmod:0,acmod:s,lfeon:o,numDepSub:0,chanLoc:0}]}},ew=t=>{if(t.length<2)return null;let e=new xe(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),l=e.readBits(1);e.skipBits(3);let u=e.readBits(4),g=0;u>0?g=e.readBits(9):e.skipBits(1),n.push({fscod:i,fscod2:null,bsid:s,bsmod:o,acmod:c,lfeon:l,numDepSub:u,chanLoc:g})}return n.length===0?null:{dataRate:A,substreams:n}},xc=t=>{let e=t.substreams[0];return b(e),e.fscod<3?vn[e.fscod]:e.fscod2!==null&&e.fscod2<3?_g[e.fscod2]:null},Gc=t=>{let e=t.substreams[0];b(e);let A=Fs[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(Lr*this.timestamp)}get microsecondDuration(){return Math.trunc(Lr*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 Sc=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},Yc=t=>{let e=Ge(t),A=0,r=e.getUint8(A);A+=1,A+=3;let n=qr(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(qr(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)}},vc=(t,e)=>t.systemId===e.systemId&&Dp(t.data,e.data);var xA=8,yr=16,Ir=t=>{let e=J(t),A=je(t,4),r=8;e===1&&(e=Ht(t),r=16);let a=e-r;return a<0?null:{name:A,totalSize:e,headerSize:r,contentSize:a}},Xr=t=>Dr(t)/65536,Oc=t=>Dr(t)/1073741824,_c=t=>{let e=0;for(let A=0;A<4;A++){e<<=7;let r=ie(t);if(e|=r&127,!(r&128))break}return e},GA=t=>{let e=tt(t);return t.skip(2),e=Math.min(e,t.remainingLength),mt.decode(Ae(t,e))},tw=t=>{let e=Ir(t);if(!e||e.name!=="data"||t.remainingLength<8)return null;let A=J(t);t.skip(4);let r=Ae(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),Li=new Uint32Array(256),ji=new Uint32Array(256),Vi=new Uint32Array(256),Ki=new Uint32Array(256),Tt=new Uint32Array(256),Aw=new Uint32Array(10),rw=!1,DC=()=>{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,Tt[a]=s<<24|s<<16|s<<8|s;let o=r(s,14),c=r(s,9),l=r(s,13),u=r(s,11),g=o<<24|c<<16|l<<8|u;Li[a]=g,ji[a]=g>>>8|g<<24,Vi[a]=g>>>16|g<<16,Ki[a]=g>>>24|g<<8}let n=1;for(let a=0;a<10;a++)Aw[a]=n<<24,n=n<<1^(n&128?283:0);rw=!0},zs=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}){b(e.byteLength===16),b(A.byteLength===16),rw||DC();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^Aw[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]=Li[Cr[s>>>24&255]&255]^ji[Cr[s>>>16&255]&255]^Vi[Cr[s>>>8&255]&255]^Ki[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,l,u,g;for(let w=1;w<10;w++){let D=w*4;c=Li[e>>>24]^ji[n>>>16&255]^Vi[r>>>8&255]^Ki[A&255]^this.roundkey[D],l=Li[A>>>24]^ji[e>>>16&255]^Vi[n>>>8&255]^Ki[r&255]^this.roundkey[D+1],u=Li[r>>>24]^ji[A>>>16&255]^Vi[e>>>8&255]^Ki[n&255]^this.roundkey[D+2],g=Li[n>>>24]^ji[r>>>16&255]^Vi[A>>>8&255]^Ki[e&255]^this.roundkey[D+3],e=c,A=l,r=u,n=g}let f=Tt[e>>>24&255]&4278190080^Tt[n>>>16&255]&16711680^Tt[r>>>8&255]&65280^Tt[A>>>0&255]&255^this.roundkey[40],p=Tt[A>>>24&255]&4278190080^Tt[e>>>16&255]&16711680^Tt[n>>>8&255]&65280^Tt[r>>>0&255]&255^this.roundkey[41],h=Tt[r>>>24&255]&4278190080^Tt[A>>>16&255]&16711680^Tt[e>>>8&255]&65280^Tt[n>>>0&255]&255^this.roundkey[42],y=Tt[n>>>24&255]&4278190080^Tt[r>>>16&255]&16711680^Tt[A>>>8&255]&65280^Tt[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}},nw=(t,e,A)=>{let r=!1,n=0,a=2**16,i=16,s=new zs;return new ReadableStream({pull:async o=>{r||(s.init(await e()),r=!0);let c=a+i,l=t.requestSliceRange(n,0,c);if(l instanceof Promise&&(l=await l),!l||l.length===0)throw new Error("Invalid ciphertext.");let u=l.length;if(u%16!==0)throw new Error("Invalid ciphertext.");let g=u===c?u-i:u,f=Ae(l,g),p=new Uint8Array(g);for(let h=0;h<g;h+=16)s.in.set(f.subarray(h,h+16)),s.decrypt(),p.set(s.out,h);if(g<u)o.enqueue(p),n+=g;else{let h=p[g-1];if(h===0||h>16)throw new Error("Invalid PKCS#7 padding. Incorrect key or corrupted data.");let y=p.subarray(0,g-h);o.enqueue(y),o.close(),A()}},cancel:()=>{A()}})};var Mc=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 Sc({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,xA,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=je(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(b(o.info),o.info.type==="video"&&o.info.width!==-1){let c=o;o.trackBacking=new Qc(c),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let c=o;o.trackBacking=new Fc(c),this.tracks.push(o)}}}A=!1;break}e=n+a.totalSize}if(A){b(this.reader.fileSize!==null);let r=this.reader.requestSlice(this.reader.fileSize-4,4);r instanceof Promise&&(r=await r),b(r);let n=J(r),a=this.reader.fileSize-n;if(a>=0&&a<=this.reader.fileSize-yr){let i=this.reader.requestSliceRange(a,xA,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;b(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&&vt.includes(e.info.codec)&&A.sampleCompositionTimeOffsets.length===0){b(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],l=A.sampleToChunk[o+1],u=(l?l.startChunkIndex:A.chunkOffsets.length)-c.startChunkIndex;for(let g=0;g<u;g++){let f=c.startSampleIndex+g*c.samplesPerChunk,p=f+c.samplesPerChunk,h=ye(A.sampleTimingEntries,f,M=>M.startIndex),y=A.sampleTimingEntries[h],w=ye(A.sampleTimingEntries,p,M=>M.startIndex),D=A.sampleTimingEntries[w],E=y.startDecodeTimestamp+(f-y.startIndex)*y.delta,G=D.startDecodeTimestamp+(p-D.startIndex)*D.delta-E,S=Me(i);S&&S.delta===G?S.count++:i.push({startIndex:c.startChunkIndex+g,startDecodeTimestamp:E,count:1,delta:G});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,xA,yr);A instanceof Promise&&(A=await A),b(A);let r=Ir(A);b(r?.name==="moof");let n=this.reader.requestSlice(e,r.totalSize);n instanceof Promise&&(n=await n),b(n),this.traverseBox(n);let a=this.lastReadFragment;b(a&&a.moofOffset===e);for(let[,i]of a.trackData){let s=i.track,{fragmentPositionCache:o}=s;if(!i.startTimestampIsFinal){let l=s.fragmentLookupTable.find(u=>u.moofOffset===a.moofOffset);if(l)zg(i,l.timestamp);else{let u=ye(o,a.moofOffset-1,g=>g.moofOffset);if(u!==-1){let g=o[u];zg(i,g.endTimestamp)}}i.startTimestampIsFinal=!0}let c=ye(o,i.startTimestamp,l=>l.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 l=await ow(this.reader,s.encryptionInfo,i.encryptionAuxInfo);for(let u=0;u<Math.min(i.samples.length,l.length);u++){let g=l[u];i.samples[u].encryption=g}}}return a}readContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-xA&&this.traverseBox(e););}*iterateContiguousBoxes(e){let A=e.filePos;for(;e.filePos-A<=e.length-xA;){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=ie(e);e.skip(3),i===1?(e.skip(16),this.movieTimescale=J(e),this.movieDurationInTimescale=Ht(e)):(e.skip(8),this.movieTimescale=J(e),this.movieDurationInTimescale=J(e))}break;case"trak":{let i={id:-1,demuxer:this,trackBacking:null,disposition:{...Dt,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 Qc(s),this.tracks.push(i)}else if(i.info.type==="audio"&&i.info.numberOfChannels!==-1){let s=i;i.trackBacking=new Fc(s),this.tracks.push(i)}}this.currentTrack=null}break;case"tkhd":{let i=this.currentTrack;if(!i)break;let s=ie(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=Ht(e);else throw new Error(`Incorrect track header version ${s}.`);e.skip(2*4+2+2+2+2);let l=[Xr(e),Xr(e),Oc(e),Xr(e),Xr(e),Oc(e),Xr(e),Xr(e),Oc(e)],u=Oi(bs(TC(l),90));b(u===0||u===90||u===180||u===270),i.rotation=u}break;case"elst":{let i=this.currentTrack;if(!i)break;let s=ie(e);e.skip(3);let o=!1,c=0,l=J(e);for(let u=0;u<l;u++){let g=s===1?Ht(e):J(e),f=s===1?uw(e):Dr(e),p=Xr(e);if(g!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){c+=g;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=ie(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=Ht(e));let o=tt(e);if(o>0){i.languageCode="";for(let c=0;c<3;c++)i.languageCode=String.fromCharCode(96+(o&31))+i.languageCode,o>>=5;Mi(i.languageCode)||(i.languageCode=Xe)}}break;case"hdlr":{let i=this.currentTrack;if(!i)break;e.skip(8);let s=je(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=ie(e);e.skip(3);let o=J(e);for(let c=0;c<o;c++){let l=e.filePos,u=Ir(e);if(!u)break;i.internalCodecId=u.name;let g=u.name.toLowerCase();if(i.info.type==="video"){e.skip(6*1+2+2+2+3*4),i.info.width=tt(e),i.info.height=tt(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,l+u.totalSize-e.filePos));let f=g==="encv"?i.frmaCodecString:g;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=tt(e);e.skip(3*2);let p=tt(e),h=tt(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=zc(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,l+u.totalSize-e.filePos));let D=g==="enca"?i.frmaCodecString:g;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 E=i.info.pcmSampleSize;i.info.pcmLittleEndian?E===16?i.info.codec="pcm-s16":E===24?i.info.codec="pcm-s24":E===32?i.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${E}.`),i.info.codec=null):E===16?i.info.codec="pcm-s16be":E===24?i.info.codec="pcm-s24be":E===32?i.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${E}.`),i.info.codec=null)}else if(D==="fpcm"){let E=i.info.pcmSampleSize;i.info.pcmLittleEndian?E===32?i.info.codec="pcm-f32":E===64?i.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${E}.`),i.info.codec=null):E===32?i.info.codec="pcm-f32be":E===64?i.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${E}.`),i.info.codec=null)}else if(D==="lpcm"&&w!==null){let E=h+7>>3,C=!!(w&1),G=!!(w&2),S=w&4?-1:0;h>0&&h<=64&&(C?h===32&&(i.info.codec=G?"pcm-f32be":"pcm-f32"):S&1<<E-1?E===1?i.info.codec="pcm-s8":E===2?i.info.codec=G?"pcm-s16be":"pcm-s16":E===3?i.info.codec=G?"pcm-s24be":"pcm-s24":E===4&&(i.info.codec=G?"pcm-s32be":"pcm-s32"):E===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=l+u.totalSize}}break;case"frma":{let i=this.currentTrack;if(!i)break;let o=je(e,4).toLowerCase();i.frmaCodecString=o}break;case"schm":{let i=this.currentTrack;if(!i)break;e.skip(4);let s=je(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=ie(e);e.skip(3),e.skip(1);let o=ie(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=ie(e)!==0,i.encryptionInfo.defaultPerSampleIvSize=ie(e),i.encryptionInfo.defaultKid=qr(Ae(e,16)),i.encryptionInfo.defaultIsProtected&&i.encryptionInfo.defaultPerSampleIvSize===0){let c=ie(e),l=new Uint8Array(16);l.set(Ae(e,c),0),i.encryptionInfo.defaultConstantIv=l}}break;case"avcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=Ae(e,r.contentSize)}break;case"hvcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=Ae(e,r.contentSize)}break;case"vpcC":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(4);let s=ie(e),o=ie(e),c=ie(e),l=c>>4,u=c>>1&7,g=c&1,f=ie(e),p=ie(e),h=ie(e);i.info.vp9CodecInfo={profile:s,level:o,bitDepth:l,chromaSubsampling:u,videoFullRangeFlag:g,colourPrimaries:f,transferCharacteristics:p,matrixCoefficients:h}}break;case"av1C":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(1);let s=ie(e),o=s>>5,c=s&31,l=ie(e),u=l>>7,g=l>>6&1,f=l>>5&1,p=l>>4&1,h=l>>3&1,y=l>>2&1,w=l&3,D=o===2&&g?f?12:10:g?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;b(i.info?.type==="video");let s=je(e,4);if(s!=="nclx"&&s!=="nclc")break;let o=tt(e),c=tt(e),l=tt(e),u;s==="nclx"&&(u=!!(ie(e)&128)),i.info.colorSpace={primaries:Cn[o],transfer:bn[c],matrix:En[l],fullRange:u}}break;case"pasp":{let i=this.currentTrack;if(!i)break;b(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;b(i.info?.type==="audio"),e.skip(4);let s=ie(e);b(s===3),_c(e),e.skip(2);let o=ie(e),c=(o&128)!==0,l=(o&64)!==0,u=(o&32)!==0;if(c&&e.skip(2),l){let y=ie(e);e.skip(y)}u&&e.skip(2);let g=ie(e);b(g===4);let f=_c(e),p=e.filePos,h=ie(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=ie(e);b(y===5);let w=_c(e);if(i.info.codecDescription=Ae(e,w),i.info.codec==="aac"){let D=hc(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;b(i.info?.type==="audio"),i.info.pcmLittleEndian=!!(tt(e)&255)}break;case"pcmC":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let s=ie(e);i.info.pcmLittleEndian=!!(s&1),i.info.pcmSampleSize=ie(e)}break;case"dOps":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(1);let s=ie(e),o=tt(e),c=J(e),l=Ns(e),u=ie(e),g;u!==0?g=Ae(e,2+s):g=new Uint8Array(0);let f=new Uint8Array(19+g.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,l,!0),p.setUint8(18,u),f.set(g,19),i.info.codecDescription=f,i.info.numberOfChannels=s}break;case"dfLa":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let s=127,o=128,c=e.filePos;for(;e.filePos<a;){let p=ie(e),h=YA(e);if((p&s)===$r.STREAMINFO){e.skip(10);let w=J(e),D=w>>>12,E=(w>>9&7)+1;i.info.sampleRate=D,i.info.numberOfChannels=E,e.skip(20)}else e.skip(h);if(p&o)break}let l=e.filePos;e.filePos=c;let u=Ae(e,l-c),g=new Uint8Array(4+u.byteLength);new DataView(g.buffer).setUint32(0,1716281667,!1),g.set(u,4),i.info.codecDescription=g}break;case"dac3":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio");let s=Ae(e,3),o=new xe(s),c=o.readBits(2);o.skipBits(8);let l=o.readBits(3),u=o.readBits(1);c<3&&(i.info.sampleRate=vn[c]),i.info.numberOfChannels=Fs[l]+u}break;case"dec3":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio");let s=Ae(e,r.contentSize),o=ew(s);if(!o){console.warn("Invalid dec3 box contents, ignoring.");break}let c=xc(o);c!==null&&(i.info.sampleRate=c),i.info.numberOfChannels=Gc(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 l=0;l<s;l++){let u=J(e),g=J(e);i.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:c,count:u,delta:g}),o+=u,c+=u*g}}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 l=J(e),u=Dr(e);i.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:l,offset:u}),o+=l}}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 l=J(e);i.sampleTable.sampleSizes.push(l)}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=ie(e),o=J(e),c=Ae(e,Math.ceil(o*s/8)),l=new xe(c);for(let u=0;u<o;u++){let g=l.readBits(s);i.sampleTable.sampleSizes.push(g)}}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 l=J(e)-1,u=J(e),g=J(e);i.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:l,samplesPerChunk:u,sampleDescriptionIndex:g})}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=Ht(e);i.sampleTable.chunkOffsets.push(c)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(n,r.contentSize));break;case"mehd":{let i=ie(e);e.skip(3);let s=i===1?Ht(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),l=J(e);this.fragmentTrackDefaults.push({trackId:i,defaultSampleDescriptionIndex:s,defaultSampleDuration:o,defaultSampleSize:c,defaultSampleFlags:l})}break;case"tfra":{let i=ie(e);e.skip(3);let s=J(e),o=this.tracks.find(D=>D.id===s);if(!o)break;let c=J(e),l=(c&48)>>4,u=(c&12)>>2,g=c&3,f=[ie,tt,YA,J],p=f[l],h=f[u],y=f[g],w=J(e);for(let D=0;D<w;D++){let E=i===1?Ht(e):J(e),C=i===1?Ht(e):J(e);p(e),h(e),y(e),o.fragmentLookupTable.push({timestamp:E,moofOffset:C})}o.fragmentLookupTable.sort((D,E)=>D.timestamp-E.timestamp);for(let D=0;D<o.fragmentLookupTable.length-1;D++){let E=o.fragmentLookupTable[D],C=o.fragmentLookupTable[D+1];E.timestamp===C.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(b(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((l,u)=>({presentationTimestamp:l.presentationTimestamp,sampleIndex:u})).sort((l,u)=>l.presentationTimestamp-u.presentationTimestamp);for(let l=0;l<i.presentationTimestamps.length;l++){let u=i.presentationTimestamps[l],g=i.samples[u.sampleIndex];if(i.firstKeyFrameTimestamp===null&&g.isKeyFrame&&(i.firstKeyFrameTimestamp=g.presentationTimestamp),l<i.presentationTimestamps.length-1){let p=i.presentationTimestamps[l+1].presentationTimestamp-u.presentationTimestamp;g.duration=p}}let s=i.samples[i.presentationTimestamps[0].sampleIndex],o=i.samples[Me(i.presentationTimestamps).sampleIndex];i.startTimestamp=s.presentationTimestamp,i.endTimestamp=o.presentationTimestamp+o.duration;let{currentFragmentState:c}=this.currentTrack;b(c),c.startTimestamp!==null&&(zg(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=Yc(Ae(e,r.contentSize));this.currentFragment?this.currentFragment.psshBoxes.push(i):this.currentTrack||this.psshBoxes.push(i)}break;case"tfhd":{b(this.currentFragment),e.skip(1);let i=YA(e),s=!!(i&1),o=!!(i&2),c=!!(i&8),l=!!(i&16),u=!!(i&32),g=!!(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=Ht(e):f&&(h.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(h.currentFragmentState.sampleDescriptionIndex=J(e)),c&&(h.currentFragmentState.defaultSampleDuration=J(e)),l&&(h.currentFragmentState.defaultSampleSize=J(e)),u&&(h.currentFragmentState.defaultSampleFlags=J(e)),g&&(h.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let i=this.currentTrack;if(!i)break;b(i.currentFragmentState);let s=ie(e);e.skip(3);let o=s===0?J(e):Ht(e);i.currentFragmentState.startTimestamp=o}break;case"trun":{let i=this.currentTrack;if(!i)break;b(this.currentFragment),b(i.currentFragmentState);let s=ie(e),o=YA(e),c=!!(o&1),l=!!(o&4),u=!!(o&256),g=!!(o&512),f=!!(o&1024),p=!!(o&2048),h=J(e),y=null;c&&(y=Dr(e));let w=null;l&&(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 E=0;E<h;E++){let C;u?C=J(e):(b(i.currentFragmentState.defaultSampleDuration!==null),C=i.currentFragmentState.defaultSampleDuration);let G;g?G=J(e):(b(i.currentFragmentState.defaultSampleSize!==null),G=i.currentFragmentState.defaultSampleSize);let S;f?S=J(e):(b(i.currentFragmentState.defaultSampleFlags!==null),S=i.currentFragmentState.defaultSampleFlags),E===0&&w!==null&&(S=w);let k=0;p&&(s===0?k=J(e):k=Dr(e));let M=!(S&65536);D.samples.push({presentationTimestamp:D.currentTimestamp+k,duration:C,byteOffset:D.currentOffset,byteSize:G,isKeyFrame:M,encryption:null}),D.currentOffset+=G,D.currentTimestamp+=C}}break;case"saiz":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;if(e.skip(1),YA(e)&1){let g=je(e,4),f=J(e);if(g!==i.encryptionInfo.scheme||f!==0)break}let o=ie(e),c=J(e),l=null;o===0&&c>0&&(l=Ae(e,c));let u=aw(i);u.defaultSampleInfoSize=o,u.sampleSizes=l,u.sampleCount=c}break;case"saio":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;let s=ie(e);if(YA(e)&1){let g=je(e,4),f=J(e);if(g!==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 l=s===0?J(e):Number(Ht(e));this.currentFragment&&(l+=this.currentFragment.moofOffset);let u=aw(i);u.offset=l}break;case"senc":{let i=this.currentTrack;if(!i||!i.encryptionInfo)break;b(this.currentFragment);let s=this.currentFragment.trackData.get(i.id);if(!s)break;e.skip(1);let c=!!(YA(e)&2),l=J(e),u=i.encryptionInfo.defaultPerSampleIvSize;b(u!==null);for(let g=0;g<Math.min(l,s.samples.length);g++){let f=new Uint8Array(16);u>0?f.set(Ae(e,u),0):f.set(i.encryptionInfo.defaultConstantIv,0);let p=null;if(c){let y=tt(e);p=[];for(let w=0;w<y;w++){let D=tt(e),E=J(e);p.push({clearLen:D,protectedLen:E})}}let h=s.samples[g];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]??=GA(o):this.metadataTags.raw[s.name]??=Ae(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(Ae(o,s.contentSize)):this.metadataTags.title??=GA(o);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=GA(o));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=GA(o));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=GA(o));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=GA(o));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=GA(o));break;case"\xA9day":if(!this.currentTrack){let c=new Date(GA(o));Number.isNaN(c.getTime())||(this.metadataTags.date??=c)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=GA(o));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=GA(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(Ae(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,l=(c.charCodeAt(0)<<24)+(c.charCodeAt(1)<<16)+(c.charCodeAt(2)<<8)+c.charCodeAt(3);this.currentMetadataKeys.has(l)&&(c=this.currentMetadataKeys.get(l));let u=tw(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 g=new Date(u);Number.isNaN(g.getTime())||(this.metadataTags.date??=g)}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 g=u.split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=Ge(u),f=g.getUint16(2,!1),p=g.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 g=Ge(u),f=g.getUint16(2,!1),p=g.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),p>0&&(this.metadataTags.discsTotal??=p)}break}}}break}return e.filePos=a,!0}},Rc=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:(b(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=Ng(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!iw(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,g=>g.presentationTimestamp),l=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:l,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=CC(n,r),i=await this.fetchPacketForSampleIndex(a,A);return!iw(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=_i(o.presentationTimestamps,g=>o.samples[g.sampleIndex].isKeyFrame&&g.presentationTimestamp<=r),l=c!==-1?o.presentationTimestamps[c].sampleIndex:-1,u=c!==-1&&r<o.endTimestamp;return{sampleIndex:l,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=EC(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 b(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=bC(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=Ae(c,n.sampleSize),this.internalTrack.encryptionAuxInfo){b(this.internalTrack.encryptionInfo);let l=await ow(this.internalTrack.demuxer.reader,this.internalTrack.encryptionInfo,this.internalTrack.encryptionAuxInfo);e<l.length&&(a=await sw(this.internalTrack,l[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];b(a);let i;if(r.metadataOnly)i=dt;else{let l=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);if(l instanceof Promise&&(l=await l),!l)return null;i=Ae(l,a.byteSize),a.encryption&&(i=await sw(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 l=ye(this.internalTrack.fragmentLookupTable,r,y=>y.timestamp),u=l!==-1?this.internalTrack.fragmentLookupTable[l]:null,g=ye(this.internalTrack.fragmentPositionCache,r,y=>y.startTimestamp),f=g!==-1?this.internalTrack.fragmentPositionCache[g]: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 E=s.trackData.get(this.internalTrack.id);if(E&&E.startTimestamp>n)break}let y=i.reader.requestSliceRange(h,xA,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:E,correctSampleFound:C}=A(s);if(C)return this.fetchPacketInFragment(s,E,a);E!==-1&&(o=s,c=E)}h=w+D.totalSize}if(u&&(!o||o.moofOffset<u.moofOffset)){let y=this.internalTrack.fragmentLookupTable[l-1];b(!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}},Qc=class extends Rc{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&&Cc(A.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let A=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=A&&bc(A.data)}let e={codec:Fi(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}},Fc=class extends Rc{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:zi(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Ng=(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)}},CC=(t,e)=>{if(!t.keySampleIndices)return Ng(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=Ng(t,e),r=ye(t.keySampleIndices,A,n=>n);return t.keySampleIndices[r]??-1}},bC=(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),l=t.sampleToChunk[c];b(l);let u=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),g=t.chunkOffsets[u],f=l.startSampleIndex+(u-l.startChunkIndex)*l.samplesPerChunk,p=0,h=g;if(t.sampleSizes.length===1)h+=o*(e-f),p+=o*l.samplesPerChunk;else for(let w=f;w<f+l.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];b(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:g,chunkSize:p,isKeyFrame:t.keySampleIndices?wr(t.keySampleIndices,e,w=>w)!==-1:!0}},EC=(t,e)=>{if(!t.keySampleIndices)return e+1;let A=ye(t.keySampleIndices,e,r=>r);return t.keySampleIndices[A+1]??-1},zg=(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},TC=t=>{let[e,A]=t,r=Math.atan2(A,e);return Number.isFinite(r)?r*(180/Math.PI):0},iw=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},ow=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{b(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;b(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(Ae(n,a),0):c.set(e.defaultConstantIv,0);let l=null;if(o>a){let u=tt(n);l=[];for(let g=0;g<u;g++){let f=tt(n),p=J(n);l.push({clearLen:f,protectedLen:p})}}i.push({iv:c,subsamples:l})}return A.resolved=i,i},sw=async(t,e,A,r)=>{b(t.encryptionInfo);let n=t.encryptionInfo;b(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 g=u+1;g<c.length;g++)vc(c[u],c[g])&&(c.splice(g,1),g--)}let l=await t.demuxer.input._formatOptions.isobmff.resolveKeyId({keyId:a,psshBoxes:c});if(!(typeof l=="string"&&l.length===32&&mp.test(l)||l instanceof Uint8Array&&l.byteLength===16))throw new TypeError("resolveKeyId must return a 32-character hex string or a 16-byte Uint8Array containing the decryption key.");return l instanceof Uint8Array?l:hp(l)})();t.demuxer.decryptionKeyCache.set(a,o),i=await o}return n.scheme==="cenc"||n.scheme==="cens"?kC(i,n,e,A):xC(i,n,e,A)},kC=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);b(e.defaultCryptByteBlock!==null&&e.defaultSkipByteBlock!==null);let s=cw(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),l=0;for(let p of s)for(let h of p.perSubsample)c.set(r.subarray(h.offset,h.offset+h.length),l),l+=h.length;let u=await i(c),g=new Uint8Array(r),f=0;for(let p of s)for(let h of p.perSubsample)g.set(u.subarray(f,f+h.length),h.offset),f+=h.length;return g},xC=(t,e,A,r)=>{let n=new zs;n.init({key:t,iv:A.iv});let a=e.defaultCryptByteBlock,i=e.defaultSkipByteBlock;if(b(a!==null&&i!==null),!A.subsamples){let l=new Uint8Array(r),u=Math.floor(r.length/16);for(let g=0;g<u;g++){let f=g*16;n.in.set(r.subarray(f,f+16)),n.decrypt(),l.set(n.out,f)}return l}if(a===0&&i===0)throw new Error("cbcs with subsamples requires pattern encryption.");let s=new Uint8Array(r),o=cw(A.subsamples,a,i),c=new DataView(A.iv.buffer,A.iv.byteOffset,16);for(let l 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 l.perSubsample){let g=u.length/16;for(let f=0;f<g;f++){let p=u.offset+f*16;n.in.set(r.subarray(p,p+16)),n.decrypt(),s.set(n.out,p)}}}return s},cw=(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 l=16*e;s.push({offset:c,length:l}),c+=l,o-=l;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 GC=[j.EBML,j.Segment],Wi=[j.SeekHead,j.Info,j.Cluster,j.Tracks,j.Cues,j.Attachments,j.Chapters,j.Tags],Hs=[...GC,...Wi];var Hg=8,Ut=2,vA=2*Hg,Ug=t=>{if(t.remainingLength<1)return null;let e=ie(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},Zi=t=>{if(t.remainingLength<1)return null;let e=ie(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+=ie(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+=ie(t);return A},lw=(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(ie(t));return A};var Nc=t=>{let e=Ug(t);return e===null||t.remainingLength<e?null:be(t,e)},qg=t=>{if(t.remainingLength<1)return null;if(ie(t)===255)return;t.skip(-1);let A=Zi(t);if(A===null)return null;if(A!==72057594037927940)return A},OA=t=>{b(t.remainingLength>=Ut);let e=Nc(t);if(e===null)return null;let A=qg(t);return A===null?null:{id:e,size:A}},en=(t,e)=>{let A=Ae(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return String.fromCharCode(...A.subarray(0,r))},$i=(t,e)=>{let A=Ae(t,e),r=0;for(;r<e&&A[r]!==0;)r+=1;return mt.decode(A.subarray(0,r))},Hc=(t,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?gw(t):zc(t)},Uc=async(t,e,A,r)=>{let n=new Set(A),a=e;for(;r===null||a<r;){let i=t.requestSliceRange(a,Ut,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}},Lg=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<Hg)break;for(let o=0;o<s.length-Hg;o++){s.filePos=i;let c=Nc(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 dw=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 qc;(function(t){t[t.Block=1]="Block",t[t.Private=2]="Private",t[t.Next=4]="Next"})(qc||(qc={}));var Us;(function(t){t[t.Zlib=0]="Zlib",t[t.Bzlib=1]="Bzlib",t[t.lzo1x=2]="lzo1x",t[t.HeaderStripping=3]="HeaderStripping"})(Us||(Us={}));var jg=[{id:j.SeekHead,flag:"seekHeadSeen"},{id:j.Info,flag:"infoSeen"},{id:j.Tracks,flag:"tracksSeen"},{id:j.Cues,flag:"cuesSeen"}],fw=10*2**20,Lc=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 dw({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,Ut,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 Uc(this.reader,i,Hs,this.reader.fileSize)).pos-i);let s=Me(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,Ut,vA);if(s instanceof Promise&&(s=await s),!s)break;let o=r,c=OA(s);if(!c||!Wi.includes(c.id)&&c.id!==j.Void){let p=await Lg(this.reader,o,Wi,Math.min(this.currentSegment.elementEndPos??1/0,o+fw));if(p){r=p;continue}else break}let{id:l,size:u}=c,g=s.filePos,f=jg.findIndex(p=>p.id===l);if(f!==-1){let p=jg[f].flag;this.currentSegment[p]=!0,br(u);let h=this.reader.requestSlice(g,u);h instanceof Promise&&(h=await h),h&&this.readContiguousElements(h)}else if(l===j.Tags||l===j.Attachments){l===j.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,br(u);let p=this.reader.requestSlice(g,u);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(l===j.Cluster){this.currentSegment.clusterSeekStartPos=o;break}if(u===void 0)break;r=g+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=jg.find(p=>p.id===s.id);if(!o||this.currentSegment[o.flag])continue;let c=this.reader.requestSliceRange(e+s.segmentPosition,Ut,vA);if(c instanceof Promise&&(c=await c),!c)continue;let l=OA(c);if(!l)continue;let{id:u,size:g}=l;if(u!==o.id)continue;br(g),this.currentSegment[o.flag]=!0;let f=this.reader.requestSlice(c.filePos,g);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],l=s.cuePoints[o+1];c.time===l.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,Ut,vA);r instanceof Promise&&(r=await r),b(r);let n=e,a=OA(r);b(a);let i=a.id;b(i===j.Cluster);let s=a.size,o=r.filePos;s===void 0&&(s=(await Uc(this.reader,o,Hs,A.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,s);c instanceof Promise&&(c=await c);let l={segment:A,elementStartPos:n,elementEndPos:o+s,dataStartPos:o,timestamp:-1,trackData:new Map};if(this.currentCluster=l,c){let u=this.readContiguousElements(c,Hs);l.elementEndPos=u}for(let[,u]of l.trackData){let g=u.track;b(u.blocks.length>0);let f=!1;for(let w=0;w<u.blocks.length;w++){let D=u.blocks[w];D.timestamp+=l.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],E=u.blocks[D.blockIndex];if(u.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(u.firstKeyFrameTimestamp=E.timestamp),w<u.presentationTimestamps.length-1){let C=u.presentationTimestamps[w+1];E.duration=C.timestamp-E.timestamp}else E.duration===0&&g.defaultDuration!=null&&E.lacing===Er.None&&(E.duration=g.defaultDuration)}f&&(this.expandLacedBlocks(u.blocks,g),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[Me(u.presentationTimestamps).blockIndex];u.startTimestamp=p.timestamp,u.endTimestamp=h.timestamp+h.duration;let y=ye(g.clusterPositionCache,u.startTimestamp,w=>w.startTimestamp);(y===-1||g.clusterPositionCache[y].elementStartPos!==n)&&g.clusterPositionCache.splice(y+1,0,{elementStartPos:l.elementStartPos,startTimestamp:u.startTimestamp})}return A.lastReadCluster=l,l}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=_t.tempFromBytes(n.data),i=[],s=ie(a)+1;switch(n.lacing){case Er.Xiph:{let c=0;for(let l=0;l<s-1;l++){let u=0;for(;a.bufferPos<a.length;){let g=ie(a);if(u+=g,g<255){i.push(u),c+=u;break}}}i.push(a.length-(a.bufferPos+c))}break;case Er.FixedSize:{let c=a.length-1,l=Math.floor(c/s);for(let u=0;u<s;u++)i.push(l)}break;case Er.Ebml:{let c=Zi(a);b(c!==null);let l=c;i.push(l);let u=l;for(let g=1;g<s-1;g++){let f=a.bufferPos,p=Zi(a);b(p!==null);let h=p,w=(1<<(a.bufferPos-f)*7-1)-1,D=h-w;l+=D,i.push(l),u+=l}i.push(a.length-(a.bufferPos+u))}break;default:b(!1)}b(i.length===s),e.splice(r,1);let o=n.duration||s*(A.defaultDuration??0);for(let c=0;c<s;c++){let l=i[c],u=Ae(a,l),g=n.timestamp+o*c/s,f=o/s;e.splice(r+c,0,{timestamp:g,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,Ut,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),b(!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>=Ut;){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=en(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=Hc(e,a)}break;case j.TrackEntry:{if(!this.currentSegment||(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...Dt,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!==qc.Block||s.data.algorithm!==Us.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 l=this.currentTrack.info.displayWidth*this.currentTrack.info.height,u=this.currentTrack.info.displayHeight*this.currentTrack.info.width;l>0&&u>0&&(l>u?this.currentTrack.info.squarePixelWidth=Math.round(this.currentTrack.info.width*l/u):this.currentTrack.info.squarePixelHeight=Math.round(this.currentTrack.info.height*u/l))}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 Vg(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 Kg(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=en(e,a)}break;case j.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=Ae(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=$i(e,a)}break;case j.Language:{if(!this.currentTrack||this.currentTrack.hasLanguageBcp47)break;this.currentTrack.languageCode=en(e,a),Mi(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Xe)}break;case j.LanguageBCP47:{if(!this.currentTrack)break;let o=en(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=-Hc(e,a);try{this.currentTrack.info.rotation=Oi(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=Hc(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;b(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;b(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=Zi(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Ns(e),l=ie(e),u=l>>1&3,g=!!(l&128);o.track.info?.type==="audio"&&o.track.info.codec&&(g=!0);let f=Ae(e,a-(e.filePos-i)),p=o.track.decodingInstructions.length>0;o.blocks.push({timestamp:c,duration:0,isKeyFrame:g,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=Zi(e);if(s===null)break;let o=this.getTrackDataInCluster(this.currentCluster,s);if(!o)break;let c=Ns(e),u=ie(e)>>1&3,g=Ae(e,a-(e.filePos-i)),f=o.track.decodingInstructions.length>0;this.currentBlock={timestamp:c,duration:0,isKeyFrame:!0,data:g,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=Ae(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=$i(e,a);break;case j.TagString:{if(!this.currentSimpleTagName)break;let s=$i(e,a);this.processTagValue(this.currentSimpleTagName,s)}break;case j.TagBinary:{if(!this.currentSimpleTagName)break;let s=Ae(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 Ys(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 l=o.toLowerCase();l.startsWith("cover.")?c="coverFront":l.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=lw(e,a)}break;case j.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=$i(e,a)}break;case j.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=en(e,a)}break;case j.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=Ae(e,a)}break;case j.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=$i(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:qc.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:Us.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=Ae(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){b(e.decodingInstructions.length>0);let r=A;for(let n of e.decodingInstructions)switch(b(n.data),n.data.type){case"decompress":switch(n.data.algorithm){case Us.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}}},jc=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=_i(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 b(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];b(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 l=new Fe(i,a.isKeyFrame?"key":"delta",s,o,e.dataStartPos+A,a.data.byteLength,c);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:A}),l}async performClusterLookup(e,A,r,n,a){let{demuxer:i,segment:s}=this.internalTrack,o=null,c=null,l=-1;if(e){let{blockIndex:w,correctBlockFound:D}=A(e);if(D)return this.fetchPacketInCluster(e,w,a);w!==-1&&(c=e,l=w)}let u=ye(this.internalTrack.cuePoints,r,w=>w.time),g=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(g?.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-Ut;){if(o){let M=o.trackData.get(this.internalTrack.id);if(M&&M.startTimestamp>n)break}let w=i.reader.requestSliceRange(y,Ut,vA);if(w instanceof Promise&&(w=await w),!w)break;let D=y,E=OA(w);if(!E||!Wi.includes(E.id)&&E.id!==j.Void){let M=await Lg(i.reader,D,Wi,Math.min(s.elementEndPos??1/0,D+fw));if(M){y=M;continue}else break}let C=E.id,G=E.size,S=w.filePos;if(C===j.Cluster){o=await i.readCluster(D,s),G=o.elementEndPos-S;let{blockIndex:M,correctBlockFound:R}=A(o);if(R)return this.fetchPacketInCluster(o,M,a);M!==-1&&(c=o,l=M)}G===void 0&&(b(C!==j.Cluster),G=(await Uc(i.reader,S,Hs,s.elementEndPos)).pos-S);let k=S+G;if(s.elementEndPos===null){let M=i.reader.requestSliceRange(k,Ut,vA);if(M instanceof Promise&&(M=await M),!M)break;if(Nc(M)===j.Segment){s.elementEndPos=k;break}}y=k}if(g&&(!c||c.elementStartPos<g.clusterPosition)){let w=this.internalTrack.cuePoints[u-1];b(!w||w.time<g.time);let D=w?.time??-1/0;return this.performClusterLookup(null,A,D,n,a)}return c?this.fetchPacketInCluster(c,l,a):null}},Vg=class extends jc{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:Fi({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?Ui(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?qi(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Cc(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?bc(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}},Kg=class extends jc{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:zi({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 qs=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),l=t.fileSize!==null?t.fileSize-a:null,u=_s(c,l);if(u.header&&(!r||u.header.sampleRate===r.sampleRate&&u.header.mpegVersionId===r.mpegVersionId&&u.header.layer===r.layer&&Wr(u.header.channel)===Wr(r.channel)))return{header:u.header,startPos:a};s.filePos=o+u.bytesAdvanced,a=s.filePos}}return null};var Vc=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 zt,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 Wg(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 qs(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=Pc(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===wc||s===Bc){if(!this.xingData){let c=this.reader.requestSlice(e.startPos+r+4,12);if(c instanceof Promise&&(c=await c),c){let l=Ae(c,12),u=Ge(l),g=u.getUint32(0,!1);this.xingData={frameCount:g&Os.FrameCount?u.getUint32(4,!1):null,fileSize:g&Os.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;Ji(i,a,this.metadataTags),A=n.filePos+a.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Ls){let n=this.reader.requestSlice(this.reader.fileSize-Ls,Ls);n instanceof Promise&&(n=await n),b(n),je(n,3)==="TAG"&&mw(n,this.metadataTags)}return this.metadataTags}finally{e()}}},Wg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return b(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(b(e.firstFrameHeader!==null),b(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=Qp(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 b(this.demuxer.firstFrameHeader),Wr(this.demuxer.firstFrameHeader.channel)}getSampleRate(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:Wr(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=Ae(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 Zg=1399285583,SC=79764919,hw=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^SC:e<<1;hw[t]=e>>>0&4294967295}var pw=t=>{let e=Ge(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^hw[r>>>24^a])>>>0}return e.setUint32(22,A,!0),r},ww=(t,e,A)=>{let r=0,n=null;if(t.length>0)if(e.codec==="vorbis"){b(e.vorbisInfo);let a=e.vorbisInfo.modeBlockflags.length,s=(1<<Pp(a-1))-1<<1,o=(t[0]&s)>>1;if(o>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let c=A,l=e.vorbisInfo.modeBlockflags[o];if(n=e.vorbisInfo.blocksizes[l],l===1){let u=(s|1)+1,g=t[0]&u?1:0;c=e.vorbisInfo.blocksizes[g]}r=c!==null?c+n>>2:0}else e.codec==="opus"&&(r=Zp(t).durationInSamples);return{durationInSamples:r,vorbisBlockSize:n}},Bw=t=>{let e="audio/ogg";if(t.codecStrings){let A=[...new Set(t.codecStrings)];e+=`; codecs="${A.join(", ")}"`}return e};var tn=27,_n=282,Pw=_n+255*255,Xi=t=>{let e=t.filePos;if(On(t)!==Zg)return null;t.skip(1);let r=ie(t),n=Iw(t),a=On(t),i=On(t),s=On(t),o=ie(t),c=new Uint8Array(o);for(let f=0;f<o;f++)c[f]=ie(t);let l=27+o,u=c.reduce((f,p)=>f+p,0),g=l+u;return{headerStartPos:e,totalSize:g,dataStartPos:e+l,dataSize:u,headerType:r,granulePosition:n,serialNumber:a,sequenceNumber:i,checksum:s,lacingValues:c}},yw=(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===Zg)return!0;t.skip(1)}}return!1};var Kc=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,tn,_n);if(A instanceof Promise&&(A=await A),!A)break;let r=Xi(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 $g(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=Ge(e.data);A.numberOfChannels=c.getUint8(11),A.sampleRate=c.getUint32(12,!0);let l=c.getUint8(28);A.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:$p(a.data).modeBlockflags},Qs(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=Ec(e.data);A.numberOfChannels=a.outputChannelCount,A.sampleRate=Yn,A.codecInfo.opusInfo={preSkip:a.preSkip},Qs(n.data.subarray(8),this.metadataTags)}async readPacket(e,A){b(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),b(u);let g=Ae(u,n.dataSize);for(;;){if(i===n.lacingValues.length){s.push(g.subarray(r,a));break}let p=n.lacingValues[i];if(a+=p,p<255){s.push(g.subarray(r,a));break e}i++}let f=n.headerStartPos+n.totalSize;for(;;){let p=this.reader.requestSliceRange(f,tn,_n);if(p instanceof Promise&&(p=await p),!p)return null;let h=Xi(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,g)=>u+g.length,0);if(o===0)return null;let c=new Uint8Array(o),l=0;for(let u=0;u<s.length;u++){let g=s[u];c.set(g,l),l+=g.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,tn,_n);if(n instanceof Promise&&(n=await n),!n)return null;let a=Xi(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 Bw({codecStrings:e.filter(Boolean)})}async getTrackBackings(){return await this.readMetadata(),this.trackBackings}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},$g=class{constructor(e,A){this.bitstream=e,this.demuxer=A,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new zt,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 b(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 b(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{...Dt,primary:!1}}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(b(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,A,r){if(!e)return null;let{durationInSamples:n,vorbisBlockSize:a}=ww(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){b(this.bitstream.lastMetadataPacket);let A=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!A)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(b(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;b(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,E=Math.floor((D+i)/2),C=E;for(;;){let G=Math.min(C+Pw,i-tn),S=this.demuxer.reader.requestSlice(C,G-C);if(S instanceof Promise&&(S=await S),b(S),!yw(S,G)){i=E+tn;continue e}let M=this.demuxer.reader.requestSliceRange(S.filePos,tn,_n);M instanceof Promise&&(M=await M),b(M);let R=Xi(M);b(R);let N=!1;if(R.serialNumber===this.bitstream.serialNumber)N=!0;else{let F=this.demuxer.reader.requestSlice(R.headerStartPos,R.totalSize);F instanceof Promise&&(F=await F),b(F);let K=Ae(F,R.totalSize);N=pw(K)===R.checksum}if(!N){C=R.headerStartPos+4;continue}if(N&&R.serialNumber!==this.bitstream.serialNumber){C=R.headerStartPos+R.totalSize;continue}if(R.granulePosition===-1){C=R.headerStartPos+R.totalSize;continue}this.granulePositionToTimestampInSamples(R.granulePosition)>r?i=R.headerStartPos:(a=R,s.push(R));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,l=[c];for(;!(c.serialNumber===this.bitstream.serialNumber&&c.granulePosition===a.granulePosition);){let D=c.headerStartPos+c.totalSize,E=this.demuxer.reader.requestSliceRange(D,tn,_n);E instanceof Promise&&(E=await E),b(E);let C=Xi(E);b(C),c=C,c.serialNumber===this.bitstream.serialNumber&&l.push(c)}b(c.granulePosition!==-1);let u=null,g,f,p=c,h=0;if(c.headerStartPos===n.startPage.headerStartPos)g=this.granulePositionToTimestampInSamples(0),f=!0,u=0;else{g=0,f=!1;for(let C=c.lacingValues.length-1;C>=0;C--)if(c.lacingValues[C]<255){u=C+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 C=Cw(l,c,u);b(C);let G=Dw(l,C.page,C.segmentIndex);G&&(c=G.page,u=G.segmentIndex)}else for(;;){let C=Cw(l,c,u);if(!C)break;let G=Dw(l,C.page,C.segmentIndex);if(!G)break;if(c=G.page,u=G.segmentIndex,C.page.headerStartPos!==p.headerStartPos){p=C.page,h=C.segmentIndex;break}}}let y=null,w=null;for(;c!==null;){b(u!==null);let D=await this.demuxer.readPacket(c,u);if(!D)break;if(!(c.headerStartPos===n.startPage.headerStartPos&&u<n.startSegmentIndex)){let G=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:g,vorbisLastBlocksize:w?.vorbisBlockSize??null},A);b(G);let S=this.encodedPacketToMetadata.get(G);if(b(S),!f&&D.endPage.headerStartPos===p.headerStartPos&&D.endSegmentIndex===h?(g=this.granulePositionToTimestampInSamples(c.granulePosition),f=!0,G=this.createEncodedPacketFromOggPacket(D,{timestampInSamples:g-S.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},A),b(G),S=this.encodedPacketToMetadata.get(G),b(S)):g+=S.durationInSamples,y=G,w=S,f&&(Math.max(g,0)>r||Math.max(S.timestampInSamples,0)===r))break}let C=await this.demuxer.findNextPacketStart(D);if(!C)break;c=C.startPage,u=C.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);b(c),this.sequentialScanCache.length>0&&b(Me(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)}},Dw=(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(b(n===-1),!(r.headerType&1)){n=0;break}let i=kg(t,s=>s.headerStartPos<r.headerStartPos);if(!i)return null;r=i,n=r.lacingValues.length}if(b(n!==-1),n===r.lacingValues.length){let a=t[t.indexOf(r)+1];b(a),r=a,n=0}return{page:r,segmentIndex:n}},Cw=(t,e,A)=>{if(A>0)return{page:e,segmentIndex:A-1};let r=kg(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 Wc=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),b(e);let A=je(e,4),r=A!=="RIFX",n=A==="RF64",a=xr(e,r),i=n?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if(je(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let o=0,c=null,l=e.filePos;for(;i===null||l<i;){let g=this.reader.requestSlice(l,8);if(g instanceof Promise&&(g=await g),!g)break;let f=je(g,4),p=xr(g,r),h=g.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=g.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=Xg(y,r);c=Xg(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);l=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 Jg(this))})()}async parseFmtChunk(e,A,r){let n=this.reader.requestSlice(e,A);if(n instanceof Promise&&(n=await n),!n)return;let a=ta(n,r),i=ta(n,r),s=xr(n,r);n.skip(4);let o=ta(n,r),c;if(A===14?c=8:c=ta(n,r),A>=18&&a!==357){let l=ta(n,r),u=A-18;if(Math.min(u,l)>=22&&a===kr.EXTENSIBLE){n.skip(6);let f=Ae(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=je(n,4);if(a!=="INFO"&&a!=="INF0")return;let i=n.filePos;for(;i<=e+A-8;){n.filePos=i;let s=je(n,4),o=xr(n,r),c=Ae(n,o),l=0;for(let g=0;g<c.length&&c[g]!==0;g++)l++;let u=String.fromCharCode(...c.subarray(0,l));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 g=u.split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=new Date(u);Number.isNaN(g.getTime())||(this.metadataTags.date??=g)}break;case"YEAR":{let g=Number.parseInt(u,10);Number.isInteger(g)&&g>0&&(this.metadataTags.date??=new Date(g,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);Ji(i,n,this.metadataTags)}}}getCodec(){if(b(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}},ea=2048,Jg=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(b(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}getNumberOfChannels(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return b(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{...Dt}}async getPacketAtIndex(e,A){b(e>=0),b(this.demuxer.audioInfo);let r=e*ea*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let n=Math.min(ea*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),b(o),a=Ae(o,n)}let i=e*ea/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){b(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/ea,(this.demuxer.dataSize-1)/(ea*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;b(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){b(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/ea);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=Ae(t,9),r=new xe(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 l=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 g=null;return i===1?t.filePos-=2:g=r.readBits(16),{objectType:s,samplingFrequencyIndex:o,channelConfiguration:c,frameLength:l,numberOfAacFrames:u,crcCheck:g,startPos:e}};var js=1024,Zc=class extends ht{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.trackBackings=[],this.readingMutex=new zt,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();b(this.firstFrameHeader),this.trackBackings=[new ed(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];b(r!==void 0);let n=js/r,a={timestamp:this.nextTimestampInSamples/r,duration:n,dataStart:A.startPos,dataSize:A.frameLength};this.loadedSamples.push(a),this.nextTimestampInSamples+=js,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;Ji(a,n,this.metadataTags),A=r.filePos+n.size}return this.metadataTags}finally{e()}}},ed=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getTimeResolution(){return this.getSampleRate()/js}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 b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){b(this.demuxer.firstFrameHeader);let e=jr[this.demuxer.firstFrameHeader.channelConfiguration];return b(e!==void 0),e}getSampleRate(){b(this.demuxer.firstFrameHeader);let e=er[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return b(e!==void 0),e}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(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=Ae(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 bw=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,Ew=(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}},Tw=t=>{let e=0,A=new xe(Ae(t,1));for(;A.readBits(1)===1;)e++;if(e===0)return A.readBits(7);let r=[],n=e-1,a=new xe(Ae(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 l=a.readBits(1);c<2||r.unshift(l)}return r.reduce((o,c,l)=>o|c<<l,0)},kw=(t,e)=>{if(e==="uncommon-u16")return tt(t)+1;if(e==="uncommon-u8")return ie(t)+1;if(typeof e=="number")return e;$t(e),b(!1)},xw=(t,e)=>e==="uncommon-u16"?tt(t):e==="uncommon-u16-10"?tt(t)*10:e==="uncommon-u8"?ie(t):typeof e=="number"?e:null,Gw=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 $c=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 zt,this.lastSampleLoaded=!1,this.reader=e._reader}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTrackBackings(){return await this.readMetadata(),b(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.`);b(A);let r=ie(A),n=YA(A),a=(r&128)!==0;switch(r&127){case $r.STREAMINFO:{let s=this.reader.requestSlice(e,n);if(s instanceof Promise&&(s=await s),b(s),s===null)throw new Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let o=Ae(s,34),c=new xe(o),l=c.readBits(16),u=c.readBits(16),g=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:l,maximumBlockSize:u,minimumFrameSize:g,maximumFrameSize:f,description:w},this.trackBacking=new td(this);break}case $r.VORBIS_COMMENT:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),b(s),Qs(Ae(s,n),this.metadataTags);break}case $r.PICTURE:{let s=this.reader.requestSlice(e,n);s instanceof Promise&&(s=await s),b(s);let o=J(s),c=J(s),l=mt.decode(Ae(s,c)),u=J(s),g=mt.decode(Ae(s,u));s.skip(16);let f=J(s),p=Ae(s,f);this.metadataTags.images??=[],this.metadataTags.images.push({data:p,mimeType:l,kind:o===3?"coverFront":o===4?"coverBack":"unknown",description:g});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}){b(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,l=await this.reader.requestSliceRange(e,n,c);if(!l)return null;let u=this.readFlacFrameHeader({slice:l,isFirstPacket:A});if(!u)return null;for(l.filePos=e+s;;){if(l.filePos>l.end-r)return{num:u.num,blockSize:u.blockSize,sampleRate:u.sampleRate,size:l.end-e,isLastFrame:!0};if(ie(l)===255){let f=l.filePos,p=ie(l),h=this.blockingBit===1?249:248;if(p!==h){l.filePos=f;continue}l.skip(-2);let y=l.filePos-e,w=this.readFlacFrameHeader({slice:l,isFirstPacket:!1});if(!w){l.filePos=f;continue}if(this.blockingBit===0){if(w.num-u.num!==1){l.filePos=f;continue}}else if(w.num-u.num!==u.blockSize){l.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=Ae(e,4),a=new xe(n);if(a.readBits(15)!==32764)return null;if(this.blockingBit===null){b(A);let y=a.readBits(1);this.blockingBit=y}else if(this.blockingBit===1){if(b(!A),a.readBits(1)!==1)return null}else if(this.blockingBit===0){if(b(!A),a.readBits(1)!==0)return null}else throw new Error("Invalid blocking bit");let s=bw(a.readBits(4));if(!s)return null;b(this.audioInfo);let o=Ew(a.readBits(4),this.audioInfo.sampleRate);if(!o||(a.readBits(4),a.readBits(3),a.readBits(1)!==0))return null;let l=Tw(e),u=kw(e,s),g=xw(e,o);if(g===null||g!==this.audioInfo.sampleRate)return null;let f=e.filePos-r,p=ie(e);e.skip(-f),e.skip(-1);let h=Gw(Ae(e,f));return p!==h?null:{num:l,blockSize:u,sampleRate:g}}async advanceReader(){await this.readMetadata(),b(this.lastLoadedPos!==null),b(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}}},td=class{constructor(e){this.demuxer=e}getType(){return"audio"}getId(){return 1}getNumber(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Xe}getTimeResolution(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}isRelativeToUnixEpoch(){return!1}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.totalSamples===0?null:this.demuxer.audioInfo.totalSamples/this.demuxer.audioInfo.sampleRate}async getLiveRefreshInterval(){return null}getDisposition(){return{...Dt}}async getDecoderConfig(){return b(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(b(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=Ae(s,r.byteSize)}b(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 Sw=t=>{let e="video/MP2T",A=[...new Set(t.filter(Boolean))];return A.length>0&&(e+=`; codecs="${A.join(", ")}"`),e};var vw="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.",Yw=new Set,Jc=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),b(A);let r=Ae(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 l=await this.readSection(a,!0,!o);if(!l)break;let u=3,g=32,f=!1;if(!o&&l.pid!==0&&!(l.payload[0]===0&&l.payload[1]===0&&l.payload[2]===1)){let y=new xe(l.payload),w=y.readAlignedByte();y.skipBits(8*w),f=y.readBits(8)===2}if(l.pid===0&&!s){let h=new xe(l.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>g;){let D=h.readBits(16);h.skipBits(3);let E=h.readBits(13);if(D!==0){if(i!==null)throw new Error("Only files with a single program are supported.");i=E}}if(i===null)throw new Error("Program Association Table must link to a Program Map Table.");s=!0}else if((l.pid===i||f)&&!o){let h=new xe(l.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 E=h.readBits(10);for(h.skipBits(8*E);8*(w+u)-h.pos>g;){let C=h.readBits(8);h.skipBits(3);let G=h.readBits(13);h.skipBits(6);let S=h.readBits(10),k=h.pos+8*S,M=!1,R=!1;for(;h.pos<k;){let V=h.readBits(8),F=h.readBits(8);V===106?M=!0:(V===122||V===204)&&(R=!0),h.skipBits(8*F)}let N=null;switch(C){case 27:case 36:N={type:"video",codec:C===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(C===3||C===4)V="mp3";else if(C===15)V="aac";else if(C===129)V="ac3";else if(C===135)V="eac3";else throw new Error("Unreachable.");N={type:"audio",codec:V,decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}}break;case 6:R?N={type:"audio",codec:"eac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}:M&&(N={type:"audio",codec:"ac3",decoderConfig:null,aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1});break;default:Yw.has(C)||(console.warn(`Note: MPEG-TS streams with stream_type 0x${C.toString(16)} are not currently supported.`),Yw.add(C))}N&&this.elementaryStreams.push({demuxer:this,pid:G,streamType:C,initialized:!1,firstSection:null,canBeTrustedWithKeyPackets:!1,info:N,referencePesPackets:[]})}o=!0}else{let h=this.elementaryStreams.find(y=>y.pid===l.pid);e:if(h&&!h.initialized){let y=Aa(l,!0);if(!y)throw new Error(`Couldn't read first PES packet for Elementary Stream with PID ${h.pid}`);if(h.firstSection=l,h.canBeTrustedWithKeyPackets=l.randomAccessIndicator===1,this.input._initInput){let E=(await this.input._initInput._getDemuxer()).elementaryStreams.find(C=>C.pid===l.pid&&C.info.codec===h.info.codec);if(E){h.info=E.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=Ui(w.suppliedPacket.data),!h.info.avcCodecInfo)continue;let E=h.info.avcCodecInfo.sequenceParameterSets[0];b(E);let C=Rs(E);h.info.width=C.displayWidth,h.info.height=C.displayHeight;let G=C.pixelAspectRatio.num,S=C.pixelAspectRatio.den;G>0&&S>0&&(G>S?(h.info.squarePixelWidth=Math.round(h.info.width*G/S),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*S/G))),h.info.colorSpace={primaries:Cn[C.colourPrimaries],transfer:bn[C.transferCharacteristics],matrix:En[C.matrixCoefficients],fullRange:!!C.fullRangeFlag},h.info.reorderSize=C.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=qi(w.suppliedPacket.data),!h.info.hevcCodecInfo)continue;let C=h.info.hevcCodecInfo.arrays.find(S=>S.nalUnitType===Ct.SPS_NUT).nalUnits[0];b(C);let G=Qg(C);h.info.width=G.displayWidth,h.info.height=G.displayHeight,G.pixelAspectRatio.num>G.pixelAspectRatio.den?(h.info.squarePixelWidth=Math.round(h.info.width*G.pixelAspectRatio.num/G.pixelAspectRatio.den),h.info.squarePixelHeight=h.info.height):(h.info.squarePixelWidth=h.info.width,h.info.squarePixelHeight=Math.round(h.info.height*G.pixelAspectRatio.den/G.pixelAspectRatio.num)),h.info.colorSpace={primaries:Cn[G.colourPrimaries],transfer:bn[G.transferCharacteristics],matrix:En[G.matrixCoefficients],fullRange:!!G.fullRangeFlag},h.info.reorderSize=G.maxDecFrameBuffering;break}else throw new Error("Unhandled.")}h.info.decoderConfig={codec:Fi({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=_t.tempFromBytes(w.suppliedPacket.data),E=RA(D);if(!E)throw new Error("Invalid AAC audio stream; could not read ADTS frame header from first packet.");h.info.aacCodecInfo={isMpeg2:!1,objectType:E.objectType},h.info.numberOfChannels=jr[E.channelConfiguration],h.info.sampleRate=er[E.samplingFrequencyIndex]}else if(h.info.codec==="mp3"){let D=J(_t.tempFromBytes(w.suppliedPacket.data)),E=_s(D,w.suppliedPacket.data.byteLength);if(!E.header)throw new Error("Invalid MP3 audio stream; could not read frame header from first packet.");h.info.numberOfChannels=Wr(E.header.channel),h.info.sampleRate=E.header.sampleRate}else if(h.info.codec==="ac3"){let D=Tc(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=Fs[D.acmod]+D.lfeon,h.info.sampleRate=vn[D.fscod]}else if(h.info.codec==="eac3"){let D=kc(w.suppliedPacket.data);if(!D)throw new Error("Invalid E-AC-3 audio stream; could not read sync frame from first packet.");let E=xc(D);if(E===null)throw new Error("Invalid E-AC-3 audio stream; reserved sample rate code found in first packet.");h.info.numberOfChannels=Gc(D),h.info.sampleRate=E}else throw new Error("Unhandled.");h.info.decoderConfig={codec:zi({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 Ad(c)):this.trackBackingEntries.push(new rd(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 Sw(e)}async readSection(e,A,r=!1){let n=e,a=e,i=[],s=0,o=null,c=!0,l=0;for(;;){let g=await this.readPacket(a);if(a+=this.packetStride,!g)break;if(o){if(g.pid!==o.pid){if(r)break;continue}if(g.payloadUnitStartIndicator===1)break}else{if(g.payloadUnitStartIndicator===0)break;o=g}let f=!!(g.adaptationFieldControl&2),p=!!(g.adaptationFieldControl&1),h=0;if(f&&(h=1+g.body[0],g===o&&h>1&&(l=g.body[1]>>6&1)),p&&(h===0?(i.push(g.body),s+=g.body.byteLength):(i.push(g.body.subarray(h)),s+=g.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 g=ye(this.sectionEndPositions,n,f=>f);this.sectionEndPositions.splice(g+1,0,n)}if(!o)return null;let u;if(i.length===1)u=i[0];else{let g=i.reduce((p,h)=>p+h.length,0);u=new Uint8Array(g);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:l}}async readPacketHeader(e){let A=this.reader.requestSlice(e,4);if(A instanceof Promise&&(A=await A),!A)return null;if(ie(A)!==71)throw new Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let n=tt(A),a=n>>15,i=n>>14&1,s=n>>13&1,o=n&8191,c=ie(A),l=c>>6,u=c>>4&3,g=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=Ae(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,l=r[3],u=l>>6,g=l>>4&3,f=l&15;return{payloadUnitStartIndicator:s,pid:c,adaptationFieldControl:g,body:r.subarray(4)}}},Rn=(t,e)=>{if(t.payload.byteLength<3)return null;let A=new xe(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(vw);return{sectionStartPos:t.startPos,sectionEndPos:t.endPos,pts:i,randomAccessIndicator:t.randomAccessIndicator}},Aa=(t,e)=>{b(t.endPos!==null);let A=Rn(t,e);if(!A)return null;let r=new xe(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;b(Number.isInteger(o));let c=t.payload.subarray(o,n>0?a+n:t.payload.byteLength);return{...A,data:c}},Xc=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++,b(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{...Dt,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;b(A);let r=Aa(A,!0);b(r);let n=new Qn(this.elementaryStream,r),a=new Vs(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 l=await r.readNext();if(!l)return null;this.packetBuffers.delete(e);let u=this.createEncodedPacket(l.packet,l.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,l.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);b(i);let s=Aa(i,!0);b(s);let o=new Qn(this.elementaryStream,s);r=new Vs(this,o);let c=e.sequenceNumber;for(;;){let l=await r.readNext();if(!l)return null;if(l.packet.sequenceNumber>c){let u=this.createEncodedPacket(l.packet,l.duration,A);return this.packetBuffers.set(u,r),this.packetSectionStarts.set(u,l.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(C,G,S)=>{let k=C;for(;k<G;){let M=await a.readPacketHeader(k);if(!M)return null;if(M.pid===o&&M.payloadUnitStartIndicator===1){let R=await a.readSection(k,S);if(!R)return null;let N=Rn(R,!1);if(N&&N.pts!==null)return{pesPacketHeader:N,section:R}}k+=a.packetStride}return null},l=this.elementaryStream.firstSection;b(l);let u=Rn(l,!0);if(b(u),n<u.pts)return null;let g,f=this.elementaryStream.referencePesPackets,p=ye(f,n,C=>C.pts),h=p!==-1?f[p]:null;if(h&&n-h.pts<9e4/2)g=h.sectionStartPos;else{let C=0;if(i.fileSize!==null){let G=Math.ceil(i.fileSize/s);if(G>1){let S=0,k=G-1;for(C=S;S<=k;){let M=Math.floor((S+k)/2),R=fc(M*s,a.packetStride)+u.sectionStartPos,N=R+s,V=await c(R,N,!1);if(!V){k=M-1;continue}V.pesPacketHeader.pts<=n?(C=M,S=M+1):k=M-1}}}g=fc(C*s,a.packetStride)+u.sectionStartPos}let w=(await c(g,i.fileSize??1/0,!1))?.pesPacketHeader??null;w||(w=u);let D=this.getReorderSize(),E=async(C,G)=>{let S=await a.readSection(C,!0);b(S);let k=Aa(S,!0);b(k);let M=new Qn(this.elementaryStream,k),R=new Vs(this,M);for(;!((Me(R.presentationOrderPackets)?.pts??-1/0)>=n||!await R.readNextPacket()););let N=_i(R.presentationOrderPackets,G);if(N===-1)return null;let V=R.presentationOrderPackets[N],F=N===0?0:V.pts-R.presentationOrderPackets[N-1].pts;for(;R.decodeOrderPackets[0]!==V;)R.decodeOrderPackets.shift();R.lastDuration=F;let K=await R.readNext();b(K);let L=this.createEncodedPacket(K.packet,K.duration,r);return this.packetBuffers.set(L,R),this.packetSectionStarts.set(L,K.packet.sectionStartPos),L};if(!A||this.allPacketsAreKeyPackets()){e:for(;;){let C=w.sectionStartPos+a.packetStride;for(;;){let G=await a.readPacketHeader(C);if(!G)break e;if(G.pid===o&&G.payloadUnitStartIndicator===1){let S=await a.readSection(C,!1);if(S){let k=Rn(S,!1);if(k&&k.pts!==null){if(k.pts>n)break e;w=k,nd(this.elementaryStream,w);break}}}C+=a.packetStride}}e:for(let C=0;C<D+1;C++){let G=w.sectionStartPos-a.packetStride;for(;G>=a.packetOffset;){let S=await a.readPacketHeader(G);if(!S)break e;if(S.pid===o&&S.payloadUnitStartIndicator===1){let k=await a.readSection(G,!1);if(k){let M=Rn(k,!1);if(M&&M.pts!==null){w=M;break}}}G-=a.packetStride}}return E(w.sectionStartPos,C=>C.pts<=n)}else{let C=g,G=null,S=!this.elementaryStream.canBeTrustedWithKeyPackets;for(;;){let k=null,M=C<=u.sectionStartPos,R,N=null;if(M)R=u,N=l;else{let K=await c(C,i.fileSize??1/0,S);R=K?.pesPacketHeader??null,N=K?.section??null}let V=!1,F=0;e:for(;R&&!(G!==null&&R.sectionStartPos>=G);){if(R.pts<=n){let L;if(this.elementaryStream.canBeTrustedWithKeyPackets)L=R.randomAccessIndicator===1;else{b(N);let _=Aa(N,!0);b(_);let W=new Qn(this.elementaryStream,_);await W.markNextPacket(),L=W.suppliedPacket?.randomAccessIndicator===1}L&&(k=R)}if(R.pts>n&&(V=!0),V&&(F++,F>D))break;let K=R.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){R=W,N=_,nd(this.elementaryStream,R);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 we=await a.readPacketHeader(W);if(!we)break e;if(we.pid===o&&we.payloadUnitStartIndicator===1){let re=await a.readSection(W,S);if(re){let De=Rn(re,!1);if(De&&De.pts!==null){K=De;break}}}W-=a.packetStride}}let L=await E(K.sectionStartPos,_=>_.pts<=n&&_.randomAccessIndicator===1);return b(L),L}if(M)return null;G=C,C=Math.max(fc(C-u.sectionStartPos-s,a.packetStride)+u.sectionStartPos,u.sectionStartPos)}}}},Ad=class extends Xc{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 b(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!1}getReorderSize(){return this.elementaryStream.info.reorderSize}},rd=class extends Xc{getType(){return"audio"}getCodec(){return this.elementaryStream.info.codec}getNumberOfChannels(){return this.elementaryStream.info.numberOfChannels}getSampleRate(){return this.elementaryStream.info.sampleRate}async getDecoderConfig(){return b(this.elementaryStream.info.decoderConfig),this.elementaryStream.info.decoderConfig}allPacketsAreKeyPackets(){return!0}getReorderSize(){return 0}},nd=(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 b(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=Me(this.pesPackets).sectionEndPos;for(b(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=Aa(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(){b(!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 l=s.indexOf(0,c);if(l===-1||l>=o)break;c=l;let u=i+c;if(c+4>=o){this.seekTo(u);break}let g=s[c+1],f=s[c+2],p=s[c+3],h=0,y=null;if(g===0&&f===0&&p===1?(h=4,y=s[c+4]):g===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"?Hi(y):Zr(y);if(A==="avc"?D===Jt.AUD:D===Ct.AUD_NUT){let C=w-n;return this.seekTo(n),this.supplyPacket(C,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),l=RA(_t.tempFromBytes(c));if(l){this.seekTo(s);let u=this.ensureBuffered(l.frameLength);return u instanceof Promise&&(u=await u),this.supplyPacket(u,Math.round(js*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),l=Ge(c).getUint32(0),u=_s(l,null);if(u.header){this.seekTo(s);let g=this.ensureBuffered(u.header.totalSize);g instanceof Promise&&(g=await g);let f=u.header.audioSamplesInFrame*9e4/e.info.sampleRate;return this.supplyPacket(g,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 l=c[4]>>6,u=c[4]&63;if(l===3||u>37){this.seekTo(s+1);continue}let g=Jp[3*u+l];b(g!==void 0),this.seekTo(s),o=this.ensureBuffered(g),o instanceof Promise&&(o=await o);let f=Math.round(Xp*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=Fg[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)b(this.nextPts!==null),n=this.nextPts;else{if(r.pts===null)throw new Error(vw);n=r.pts,nd(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=Jr(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}},Vs=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(),b(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);b(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(b(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 eu="application/vnd.apple.mpegurl",id="#EXT-X-STREAM-INF:",ad="#EXT-X-I-FRAME-STREAM-INF:",sd="#EXT-X-MEDIA:",Ks="#EXTINF:",od="#EXT-X-MAP:",cd="#EXT-X-KEY:",ud="#EXT-X-MEDIA-SEQUENCE:",ld="#EXT-X-BYTERANGE:",gd="#EXT-X-PROGRAM-DATE-TIME:",Ow="#EXT-X-DISCONTINUITY",dd="#EXT-X-TARGETDURATION:",_w="#EXT-X-ENDLIST",fd="#EXT-X-PLAYLIST-TYPE:",Mw="#EXT-X-I-FRAMES-ONLY",tu=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 Au=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=Gn(e,n=>n.getType()==="video")+1;e.push(new nu(this,A,r))}else if(A.type==="audio"){let r=Gn(e,n=>n.getType()==="audio")+1;e.push(new iu(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=Gn(e,i=>i.getType()==="video")+1;e.push(new nu(this,{id:e.length+1,type:"video"},a))}else if(n.type==="audio"){let a=Gn(e,i=>i.getType()==="audio")+1;e.push(new iu(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}},ru=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(),b(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){b(e.sequenceNumber>=0),b(this.segmentedInput.firstSegment);let n=await this.segmentedInput.getMediaOffset(A,r.input),a=A.timestamp-this.segmentedInput.firstSegment.timestamp,i=e.clone({timestamp:Es(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(),b(this.segmentedInput.firstSegment),b(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 l=(await this.segmentedInput.getInputForSegment(s).getTracks()).find(g=>g.type===n.track.type&&g.number===n.track.number);if(!l){i=s;continue}let u=await l._backing.getFirstPacket(A);return u?this.createAdjustedPacket(u,s,l):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,l=r?await s._backing.getKeyPacket(c,A):await s._backing.getPacket(c,A);if(!l){n=await this.segmentedInput.getPreviousSegment(n,{skipLiveWait:A.skipLiveWait});continue}return this.createAdjustedPacket(l,n,s)}return null}},nu=class extends ru{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())}},iu=class extends ru{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())}};Ri();var hd=0,pd=1/0,YC=null;typeof FinalizationRegistry<"u"&&(YC=new FinalizationRegistry(t=>{t()}));var qt=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 Bt;return this._sizePromise??=(async()=>{let e=this._getFileSize();return e!==void 0||(await this._read(0,1,hd,pd),e=this._getFileSize(),b(e!==void 0)),e})()}async getSize(){if(this._disposed)throw new Bt;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 au(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;b(e._refCount>0),e._decrementRefCount(),e._refFinalizationRegistry?.unregister(this),this._freed=!0,this._source=null}[Symbol.dispose](){this.freed||this.free()}},Ar=class extends qt{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 qt||n instanceof Fn))throw new TypeError("requestHandler must return or resolve to a Source or SourceRef.");let a=n instanceof qt?n.ref():n;return a.source._usedForHls||=this._usedForHls,a};return A instanceof Promise?A.then(r):r(A)}},wd=(t,e)=>t.path===e.path,Ws=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 qt?s.ref():s;return this._root=o,this._rootRequest=null,o};a instanceof Promise?this._rootRequest=a.then(i):(i(a),b(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 Zs=class extends qt{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&&(!Ss(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 md({maxCacheSize:A.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:OC.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){b(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()}},vC=.5*2**20;var $s=class extends qt{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&&(!Ss(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,l=>l.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 l=r;l<this._cache.length;l++){let u=this._cache[l];if(u.start>=A)break;let g=Math.max(e,u.start);g>a&&this._throwDueToCacheMiss();let f=Math.min(A,u.end);g<f&&(i.set(u.bytes.subarray(g-u.start,f-u.start),g-e),a=f)}if(a===A)return{bytes:i,view:Ge(i),offset:e};this._currentIndex>a&&this._throwDueToCacheMiss();let{promise:s,resolve:o,reject:c}=gt();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(l=>{if(this._pulling=!1,this._pendingSlices.length>0)this._pendingSlices.forEach(u=>u.reject(l)),this._pendingSlices.length=0;else throw l})),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:Ge(i.bytes),offset:i.start}),this._pendingSlices.splice(a,1),a--))}for(this._cache.push({start:r,end:n,bytes:A,view:Ge(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()}},OC={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(mc(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)),l=Math.min(c,o);e=Math.max(e,n.startPos+l)}}return e=Math.max(e,t+vC),{start:t,end:e}}},md=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){b(!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);b(i<=e&&A<=s);let o=null,c=ye(this.cache,e,G=>G.start),l=c!==-1?this.cache[c]:null;l&&l.start<=e&&A<=l.end&&(l.age=this.nextAge++,o={bytes:l.bytes,view:l.view,offset:l.start});let u=ye(this.cache,i,G=>G.start),g=o?null:new Uint8Array(A-e),f=0,p=i,h=[];if(u!==-1){for(let G=u;G<this.cache.length;G++){let S=this.cache[G];if(S.start>=s)break;if(S.end<=i)continue;let k=Math.max(i,S.start),M=Math.min(s,S.end);if(b(k<=M),p<k&&h.push({start:p,end:k}),p=M,g){let R=Math.max(e,S.start),N=Math.min(A,S.end);if(R<N){let V=R-e;g.set(S.bytes.subarray(R-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(g&&f>=g.length&&(o={bytes:g,view:Ge(g),offset:e}),h.length===0)return b(o),o;let{promise:y,resolve:w,reject:D}=gt(),E=[];for(let G of h){let S=Math.max(e,G.start),k=Math.min(A,G.end);S===G.start&&k===G.end?E.push(G):S<k&&E.push({start:S,end:k})}let C=g&&{start:e,bytes:g,holes:E,resolve:w,reject:D};e:for(let G of h){for(let M of this.workers)if(this.checkHoleAgainstWorker(M,G,C?[C]:[])){this.checkQueuedReadsAgainstWorker(M);continue e}let S=G.end<s||this.fileSize!==null,k=this.createWorker(G.start,G.end,S);if(k)C&&(k.pendingSlices=[C]),this.runWorker(k);else{let M=ye(this.queuedReads,G.start,N=>N.hole.start),R=M!==-1?this.queuedReads[M]:null;for(R&&G.start<=R.hole.end?(R.hole.end=Math.max(R.hole.end,G.end),R.strictTarget&&=S,C&&R.pendingSlices.push(C)):(M++,R={hole:{start:G.start,end:G.end},strictTarget:S,pendingSlices:C?[C]:[],age:this.nextAge++},this.queuedReads.splice(M,0,R));M+1<this.queuedReads.length;){let N=this.queuedReads[M+1];if(N.hole.start>R.hole.end)break;R.hole.end=Math.max(R.hole.end,N.hole.end),R.pendingSlices.push(...N.pendingSlices),R.strictTarget&&=N.strictTarget,R.age=Math.min(R.age,N.age),this.queuedReads.splice(M+1,1)}}}return o||(b(g),o=y.then(G=>G&&{bytes:G,view:Ge(G),offset:e})),o}checkHoleAgainstWorker(e,A,r){if(mc(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)b(i!==null),b(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){b(!e.running),b(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);b(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){b(!e.aborted);let r=e.currentPos,n=r+A.length;this.insertIntoCache({start:r,end:n,bytes:A,view:Ge(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 l=i.holes[c];r<=l.start&&n>l.start&&(l.start=n),l.end<=l.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||mc(r,n,i.currentPos,i.targetPos)&&(this.workers.splice(a,1),a--)}}supplyFileSize(e){b(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);b(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=Ge(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=Ge(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 au=class extends qt{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 Rw=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},Qw=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}),_C=/^0[xX][0-9a-fA-F]+$/,MC=/^data:.*;base64,/i,Js=class extends Au{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 Yg(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=Rw(w,await this.demuxer.input._getSourceUncached({path:this.path,isRoot:!1}),!1),C=await new An(D.source).requestEntireFile();b(C),e=su(C,C.length,{ignore:tu})}catch(D){w.error=D,w.hasError=!0}finally{Qw(w)}}let A=!1,r=0,n=null,a=null,i=0,s=null,o=null,c=null,l=null,u=null,g=null,f=!1,p=Me(this.segments)??null,h=w=>{let D=w.indexOf("@"),E=Number(D===-1?w:w.slice(0,D));if(!Number.isInteger(E)||E<0)throw new Error(`Invalid #EXT-X-BYTERANGE length '${w}'.`);let C=null;if(D!==-1&&(C=Number(w.slice(D+1)),!Number.isInteger(C)||C<0))throw new Error(`Invalid #EXT-X-BYTERANGE offset '${w}'.`);return{length:E,offset:C}},y=w=>{i=w,p&&(b(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 E=a;if(E&&E.method==="AES-128"&&!E.iv){let k=new Uint8Array(SA),M=Ge(k);M.setUint32(8,Math.floor(i/2**32)),M.setUint32(12,i),E={...E,iv:k}}let G={path:XA(this.path,D),offset:l?.offset??0,length:l?.length??null},S={timestamp:r,relativeToUnixEpoch:u!==null,firstSegment:s,sequenceNumber:i,location:G,duration:n,encryption:E,initSegment:o,lastProgramDateTimeSeconds:u};s??=S,r+=n,this.segments.push(S)}n=null,l===null?c=null:l=null,y(i+1)}if(D.startsWith(Ks)){if(p){f=!0;continue}f||(u===null&&i>0&&g!==null&&(r=i*g),f=!0);let E=D.slice(Ks.length),C=E.indexOf(","),G=C===-1?E:E.slice(0,C),S=Number(G);if(!Number.isFinite(S)||S<0)throw new Error(`Invalid #EXTINF tag duration '${G}'.`);n=S}else if(D.startsWith(od)){let E=new Sr(D.slice(od.length)),C=E.get("uri");if(!C)throw new Error("Invalid #EXT-X-MAP tag; missing URI attribute.");let G=E.get("byterange"),S=null;if(G!==null&&(S=h(G)),S&&S.offset===null)throw new Error("Invalid #EXT-X-MAP tag; BYTERANGE attribute must have a specified offset.");if(!p){let M={path:XA(this.path,C),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:M,duration:0,encryption:a,initSegment:null,lastProgramDateTimeSeconds:u}}n=null,l===null?c=null:l=null}else if(D.startsWith(cd)){let E=new Sr(D.slice(cd.length)),C=E.get("method");if(C==="NONE")a=null;else if(C==="AES-128"){let G=E.get("uri");if(!G)throw new Error("Invalid #EXT-X-KEY: AES-128 requires a URI attribute.");let S=null,k=E.get("iv");if(k){if(!_C.test(k))throw new Error(`Unsupported IV format '${k}'.`);let R=k.slice(2);R=R.padStart(SA*2,"0"),S=new Uint8Array(SA);for(let N=0;N<SA;N++){let V=-SA*2+N;S[N]=parseInt(R.slice(V,V+2),16)}}let M=E.get("keyformat")??"identity";if(M!=="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,G),iv:S,keyFormat:M}}else if(C==="SAMPLE-AES"||C==="SAMPLE-AES-CTR"){let G=E.get("uri");if(!G)throw new Error(`Invalid #EXT-X-KEY: ${C} requires a URI attribute.`);if((E.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(MC.test(G)){let M=G.indexOf(","),R=Gs(G.slice(M+1));if(R.length>=8&&R[4]===112&&R[5]===115&&R[6]===115&&R[7]===104){let N=Ge(R).getUint32(0);k=Yc(R.subarray(8,Math.min(N,R.length)))}}a={method:C,psshBox:k}}else throw new Error(`Unsupported encryption method '${C}'. If you think this method should be supported, please raise an issue.`)}else if(D.startsWith(ud)){let E=D.slice(ud.length),C=Number(E);if(!Number.isInteger(C)||C<0)throw new Error(`Invalid EXT-X-MEDIA-SEQUENCE value '${E}'.`);y(C)}else if(D.startsWith(ld)){let E=h(D.slice(ld.length));if(E.offset===null){if(c===null)throw new Error("Invalid M3U8 file; #EXT-X-BYTERANGE without offset requires a previous byte range.");E.offset=c}l=E,c=E.offset+E.length}else if(D.startsWith(gd)){if(p)continue;let E=D.slice(gd.length),C=Date.parse(E);if(!Number.isFinite(C))continue;let G=C/1e3;if(u===G)continue;if(u===null&&this.segments.length>0){let S=Me(this.segments),k=S.timestamp+S.duration,M=G-k;for(let R of this.segments)R.timestamp+=M,R.relativeToUnixEpoch=!0;r+=M}u=G,r=G}else if(D===Ow)s=null;else if(D.startsWith(dd)){let E=D.slice(dd.length),C=Number(E);if(!Number.isFinite(C)||C<0)throw new Error(`Invalid EXT-X-TARGETDURATION value '${E}'.`);this.refreshInterval=C,g=C}else if(D===_w){this.streamHasEnded=!0;break}else D.startsWith(fd)&&D.slice(fd.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);b(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 b(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:l}=A.encryption;return(l.keyIds===null||l.keyIds.includes(o.keyId))&&!c.some(u=>vc(u,l))&&(c=[...c,l]),this.input._formatOptions.isobmff.resolveKeyId({...o,psshBoxes:c})})}},i=new zn({source:new Ws(A.location.path,async o=>{b(o.isRoot);let c={...o,isRoot:!1},l,u=A.location.offset>0||A.location.length!==null;if(!A.encryption||A.encryption.method==="SAMPLE-AES"||A.encryption.method==="SAMPLE-AES-CTR"){if(l=await this.input._getSourceCached(c),u){let f=l.source.slice(A.location.offset,A.location.length??void 0).ref();l.free(),l=f}}else if(A.encryption.method==="AES-128"){let g=A.encryption;b(g.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 An(f.source),h=nw(p,async()=>{let y={stack:[],error:void 0,hasError:!1};try{let w=Rw(y,await this.input._getSourceCached({path:g.keyUri,isRoot:!1},Fw),!1),E=await new An(w.source).requestSlice(0,SA);if(!E)throw new Error("Invalid AES-128 key; expected at least 16 bytes of data.");return{key:Ae(E,SA),iv:g.iv}}catch(w){y.error=w,y.hasError=!0}finally{Qw(y)}},()=>{f.free()});l=new $s(h).ref()}else b(!1);return l}),formats:this.input._formats.filter(o=>!(o instanceof ra)),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=Qi(this.inputCache,c=>c.age);b(o!==-1),this.inputCache.splice(o,1)}return i}async getLiveRefreshInterval(){return this.getRemainingWaitTimeMs()===0&&await this.runUpdateSegments(),this.streamHasEnded?null:this.refreshInterval}};var cu=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()=>{b(this.input._rootSource instanceof Ar);let{rootPath:e}=this.input._rootSource,A=await this.input._reader.requestEntireFile();b(A);let r=su(A,A.length,{ignore:tu}),n=[],a=[];for(let u=1;u<r.length;u++){let g=r[u];if(g.startsWith(id)){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(g.slice(id.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(g.startsWith(ad)){let f=new Sr(g.slice(ad.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(g.startsWith(sd)){let f=new Sr(g.slice(sd.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(g!==Mw){if(g.startsWith(Ks)){let f=new Js(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,g)=>{let f=[],p=u.attributes.get("codecs"),h;if(p)h=p.split(",").map(R=>R.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(R=>Ot.includes(Kr(R))),E=h.some(R=>tr.includes(Kr(R)));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 R=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===y&&F.toLowerCase()==="video"});e:if(R){let N=R.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);b(_!==null),h.push(_)}}if(w!==null&&!E){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 R=a.find(N=>{let V=N.attributes.get("group-id"),F=N.attributes.get("type");return V===w&&F.toLowerCase()==="audio"});e:if(R){let N=R.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);b(_!==null),h.push(_)}}h=[...new Set(h)];let C=null,G=null,S=u.attributes.getAsNumber("bandwidth");b(S!==null);let k=u.attributes.getAsNumber("average-bandwidth"),M=u.attributes.get("name");for(let R of h){let N=Kr(R);if(N!==null){if(Ot.includes(N)){if(C!==null)throw new Error("Unsupported M3U8 file; multiple video codecs found in the CODECS attribute of a variant stream.");C=R;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:C,pairingMask:1n<<BigInt(g),peakBitrate:S,averageBitrate:k,name:M,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,we=null;if(_){let re=_.match(/^(\d+)x(\d+)$/);re&&(W=Number(re[1]),we=Number(re[2]))}f.push({id:-1,demuxer:this,backingTrack:null,default:ou(F.attributes),autoselect:ou(F.attributes)||zw(F.attributes),languageCode:Nw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:C,pairingMask:1n<<BigInt(g),peakBitrate:null,averageBitrate:null,name:F.attributes.get("name"),hasOnlyKeyPackets:u.hasOnlyKeyPackets,info:{type:"video",width:W,height:we}})}}}else if(tr.includes(N)){if(G!==null)throw new Error("Unsupported M3U8 file; multiple audio codecs found in the CODECS attribute of a variant stream.");G=R;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:G,pairingMask:1n<<BigInt(g),peakBitrate:S,averageBitrate:k,name:M,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:ou(F.attributes),autoselect:ou(F.attributes)||zw(F.attributes),languageCode:Nw(F.attributes.get("language")),lineNumber:F.lineNumber,fullPath:F.fullPath??u.fullPath,fullCodecString:G,pairingMask:1n<<BigInt(g),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=[],l=u=>{let g=c.find(f=>f.fullPath===u.fullPath&&f.info.type===u.info.type);g?(g.pairingMask|=u.pairingMask,g.default||=u.default,g.autoselect||=u.autoselect,g.lineNumber=Math.min(g.lineNumber,u.lineNumber),u.peakBitrate!==null&&(g.peakBitrate=Math.max(g.peakBitrate??-1/0,u.peakBitrate)),u.averageBitrate!==null&&(g.averageBitrate=Math.max(g.averageBitrate??-1/0,u.averageBitrate)),g.languageCode===Xe&&(g.languageCode=u.languageCode)):(u.id=c.length+1,c.push(u))};for(let u of o)for(let g of u)l(g);c.sort((u,g)=>u.lineNumber-g.lineNumber),this.trackBackings=[];for(let u of c)u.info.type==="video"?this.trackBackings.push(new lu(u)):this.trackBackings.push(new gu(u));this.internalTracks=c})()}async getTrackBackings(){return await this.readMetadata(),b(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 Js(this,e,r,null),this.segmentedInputs.push(A),A}async getMetadataTags(){return{}}async getMimeType(){return eu}dispose(){if(this.segmentedInputs){for(let e of this.segmentedInputs)e.dispose();this.segmentedInputs.length=0}}},uu=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 lu){for(let a of n)if(await a.getCodec()===this.getCodec()){A=a;break}}else{b(this instanceof gu);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{...Dt,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(){b(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)}},lu=class extends uu{constructor(e){super(e)}get backingVideoTrack(){return this.internalTrack.backingTrack}getType(){return"video"}getCodec(){return Kr(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()}},gu=class extends uu{constructor(e){super(e)}get backingAudioTrack(){return this.internalTrack.backingTrack}getType(){return"audio"}getCodec(){return Kr(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()}},ou=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}".`)},zw=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}".`)},Nw=t=>{if(t===null)return Xe;let e=t.split("-")[0];return e||Xe};var Lt=class{constructor(){this._isIsobmff=!1}},Xs=class extends Lt{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=je(A,4);return r!=="ftyp"&&r!=="styp"?null:je(A,4)}_createDemuxer(e){return new Mc(e)}},du=class extends Xs{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=je(r,4);return n==="moof"||n==="sidx"}get name(){return"MP4"}get mimeType(){return"video/mp4"}},fu=class extends Xs{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},eo=class extends Lt{async isSupportedEBMLOfDocType(e,A){let r=e._reader.requestSlice(0,vA);if(r instanceof Promise&&(r=await r),!r)return!1;let n=Ug(r);if(n===null||n<1||n>8||be(r,n)!==j.EBML)return!1;let i=qg(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-Ut;){let c=OA(s);if(!c)break;let{id:l,size:u}=c,g=s.filePos;if(u===void 0)return!1;switch(l){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(en(s,u)!==A)return!1;break;case j.DocTypeVersion:if(be(s,u)>4)return!1;break}s.filePos=g+u}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Lc(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},mu=class extends eo{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},hu=class extends Lt{async _canReadInput(e){let A=0;for(;;){let u=e._reader.requestSlice(A,eA);if(u instanceof Promise&&(u=await u),!u)break;let g=_A(u);if(!g)break;A=u.filePos+g.size}let r=await qs(e._reader,A,A+4096);if(!r)return!1;let n=r.header,a=Pc(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===wc||s===Bc)return!0;A=r.startPos+r.header.totalSize;let c=await qs(e._reader,A,A+4);if(!c)return!1;let l=c.header;return!(n.channel!==l.channel||n.sampleRate!==l.sampleRate)}_createDemuxer(e){return new Vc(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},pu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,12);if(A instanceof Promise&&(A=await A),!A)return!1;let r=je(A,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(A.skip(4),je(A,4)==="WAVE")}_createDemuxer(e){return new Wc(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},wu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?je(A,4)==="OggS":!1}_createDemuxer(e){return new Kc(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},Bu=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,4);return A instanceof Promise&&(A=await A),A?je(A,4)==="fLaC":!1}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new $c(e)}},Pu=class extends Lt{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 Zc(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},yu=class extends Lt{async _canReadInput(e){let A=205,r=e._reader.requestSlice(0,A);if(r instanceof Promise&&(r=await r),!r)return!1;let n=Ae(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 Jc(e)}get name(){return"MPEG Transport Stream"}get mimeType(){return"video/MP2T"}},ra=class extends Lt{async _canReadInput(e){let A=e._reader.requestSlice(0,7);if(A instanceof Promise&&(A=await A),!A||!(je(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 cu(e)}get name(){return"HTTP Live Streaming (HLS)"}get mimeType(){return eu}},Hw=new du,Uw=new fu,qw=new eo,Lw=new mu,jw=new hu,Vw=new pu,Kw=new wu,Ww=new Pu,Zw=new Bu,$w=new yu,Jw=new ra,Bd=[Jw,Hw,Uw,qw,Lw,Vw,Kw,Zw,jw,Ww,$w];var Xw=(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 RC=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},QC=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});Ri();var eB=-1/0,tB=-1/0,Pd=null;typeof FinalizationRegistry<"u"&&(Pd=new FinalizationRegistry(t=>{let e=performance.now();t.type==="video"?(e-eB>=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."),eB=e),typeof VideoFrame<"u"&&t.data instanceof VideoFrame&&t.data.close()):(e-tB>=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."),tB=e),typeof AudioData<"u"&&t.data instanceof AudioData&&t.data.close())}));var Yr=class{constructor(){this._referenceCount=0,this._lastAllocationBuffer=null}},yd=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],FC=new Set(yd),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(Lr*this.timestamp)}get microsecondDuration(){return Math.trunc(Lr*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||!FC.has(A.format))throw new TypeError("init.format must be one of: "+yd.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&&Sg(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??HC(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 ro(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&&Sg(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 ro(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*Lr),duration:Math.trunc((A.duration??0)*Lr)||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:Ts(),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 ro({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&&!yd.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 b(this._data!==null),this._data instanceof Yr?new t(this._data,{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):Ao(this._data)?new t(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation,encodeOptions:this.encodeOptions}):this._data instanceof Uint8Array?(b(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()):Ao(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(rB(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 Ao(this._data)?this._data.allocationSize(e):nB(this,e).allocationSize}async copyTo(e,A={}){if(!Ds(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(rB(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(b(this._data!==null),Ao(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 l=RC(c,await this._data.toRgbSample({timestamp:this.timestamp,duration:this.duration,rotation:this.rotation},A.colorSpace??"srgb"),!1);if(!(l instanceof t))throw new TypeError("toRgbSample() must return a VideoSample.");if(!["RGBA","RGBX","BGRA","BGRX"].includes(l.format))throw new Error(`Sample returned by toRgbSample was expected to have an RGB format, got '${l.format}' instead.`);return await l.copyTo(e,A)}catch(l){c.error=l,c.hasError=!0}finally{QC(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(),l=await c.copyTo(e,A);return c.close(),l}let r=nB(this,A);b(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=Iu(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(l=>!(l.data instanceof Uint8Array)||!Number.isInteger(l.stride)||l.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)b(this._layout),b(this._layout.length===a.length),i=this._layout.map((c,l)=>{let u=Math.ceil(this.codedHeight/a[l].heightDivisor);return{data:this._data.subarray(c.offset,c.offset+c.stride*u),stride:c.stride}});else{let l=this._data.getContext("2d");b(l);let u=l.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 l=r.computedLayouts[c],u=i[c].stride,g=i[c].data,f=l.sourceTop*u;f+=l.sourceLeftBytes;let p=l.destinationOffset,h=l.sourceWidthBytes,y={offset:p,stride:l.destinationStride};for(let w=0;w<l.sourceHeight;w++){if(f+h>g.byteLength)throw new Error("Source buffer OOB read.");if(p+h>n.byteLength)throw new Error("Destination buffer OOB write.");let D=g.subarray(f,f+h);n.set(D,p),f+=u,p+=l.destinationStride}s.push(y)}if(A.format!==void 0){let c=this.format.startsWith("RGB")!==A.format.startsWith("RGB"),l=this.format.includes("X")&&A.format.includes("A");if(c||l)for(let u=0;u<r.allocationSize;u+=4){if(c){let g=n[u],f=n[u+2];n[u]=f,n[u+2]=g}l&&(n[u+3]=255)}}return s}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");if(b(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 Ao(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 l=0,u=0,g=this.displayWidth,f=this.displayHeight,p=0,h=0,y=this.displayWidth,w=this.displayHeight;if(i!==void 0?(l=A,u=r,g=n,f=a,p=i,h=s,o!==void 0?(y=o,w=c):(y=g,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(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(g)||g<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:l,sy:u,sWidth:g,sHeight:f}=this._rotateSourceRegion(l,u,g,f,this.rotation));let D=this.toCanvasImageSource();e.save();let E=p+y/2,C=h+w/2;e.translate(E,C),e.rotate(this.rotation*Math.PI/180);let G=this.rotation%180===0?1:y/w;e.scale(1/G,G),e.drawImage(D,l,u,g,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&&no(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=Id(o,i,s));let c,l,u,g,{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,l=0,u=r,g=n;else{let[D,E]=A.crop?[A.crop.width,A.crop.height]:[i,s],C=A.fit==="contain"?Math.min(r/D,n/E):Math.max(r/D,n/E);u=D*C,g=E*C,c=(r-u)/2,l=(n-g)/2}e.save();let w=a%180===0?1:u/g;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,l,u,g),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(b(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&&no(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=Oi(this.rotation+(e.rotate??0)),[r,n]=A%180===0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth],a=e.crop;a&&(a=Id(a,r,n));let i=a?a.width:r,s=a?a.height:n,o=i/s,c,l;e.width!==void 0&&e.height===void 0?(c=e.width,l=c/o):e.width===void 0&&e.height!==void 0?(l=e.height,c=l*o):e.width!==void 0&&e.height!==void 0?(c=e.width,l=e.height):(c=i,l=s),c=bs(c,e.roundDimensionsTo??1),l=bs(l,e.roundDimensionsTo??1);let u={width:c,height:l,fit:e.fit??"fill",rotation:A,crop:a??{left:0,top:0,width:r,height:n},alpha:e.alpha??"keep"};for(let h of zC){let y=h(this,u);if(y instanceof Promise&&(y=await y),y!==null)return y}let g=null,f=!1;for(let h of to)if(h.canvas.width===u.width&&h.canvas.height===u.height){g=h.canvas,h.age=AB++;break}if(g===null){if(typeof OffscreenCanvas<"u")g=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().");g=document.createElement("canvas"),g.width=u.width,g.height=u.height}f=!0,to.length>=NC&&to.splice(Qi(to,h=>h.age),1),to.push({canvas:g,age:AB++})}let p=g.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(g,{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()}},zC=[];var NC=3,to=[],AB=0,ro=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}}},Ao=t=>typeof VideoFrame<"u"&&t instanceof VideoFrame,Id=(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 b(a>=0),b(i>=0),{left:r,top:n,width:a,height:i}},no=(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.")},rB=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.")}},HC=(t,e,A)=>{let r=Iu(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,l=c*o;n.push({offset:a,stride:c}),a+=l}return n},Iu=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),b(!1)}},nB=(t,e)=>{let A={left:0,top:0,width:t.codedWidth,height:t.codedHeight},r=e.rect,n=UC(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 LC(n,i,a)},UC=(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(!qC(n,a))throw new TypeError("visibleRect alignment is invalid for the format.");return a},qC=(t,e)=>{if(t===null)return!0;let A=Iu(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},LC=(t,e,A)=>{let r=Iu(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],l=c.sampleBytes,u=c.widthDivisor,g=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)/g),f.sourceHeight=Math.ceil(Math.trunc(t.height||0)/g),f.sourceLeftBytes=Math.floor(Math.trunc(t.x||0)/u)*l,f.sourceWidthBytes=Math.floor(Math.trunc(t.width||0)/u)*l,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 iB=new Map;var aB=t=>{if(!t||typeof t!="object")throw new TypeError("Encoding config must be an object.");if(!Ot.includes(t.codec))throw new TypeError(`Invalid video codec '${t.codec}'. Must be one of: ${Ot.join(", ")}.`);if(!(t.bitrate instanceof na)&&(!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&&no(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.");sB(t.codec,t)},sB=(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&&Kr(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.")},Dd=t=>{let e=t.bitrate instanceof na?t.bitrate._toVideoBitrate(t.codec,t.width,t.height):t.bitrate;return{codec:t.fullCodecString??Sp(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,...Op(t.codec)}};var na=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(vt.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 Cd=async(t,e={})=>{let{width:A=1280,height:r=720,bitrate:n=1e6,...a}=e;if(!Ot.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 na)&&(!Number.isInteger(n)||n<=0))throw new TypeError("bitrate must be a positive integer or a quality.");sB(t,a);let i=Dd({codec:t,width:A,height:r,bitrate:n,framerate:void 0,...a,alpha:"discard"}),s=JSON.stringify(i),o=iB.get(s);if(o)return o;let c=(async()=>Du.some(g=>g.supports(t,i))?!0:typeof VideoEncoder>"u"||(A%2===1||r%2===1)&&(t==="avc"||t==="hevc")||!(await VideoEncoder.isConfigSupported(i)).supported?!1:Ts()?new Promise(async g=>{try{let f=new VideoEncoder({output:()=>{},error:()=>g(!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(),g(!0)}catch{g(!1)}}):!0)();return iB.set(s,c),c};var Cu=[],bd=[],Du=[];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.")},ia=t=>{if(!Ss(t))throw new TypeError("timestamp must be a number.")},Ed=(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,rn=class{constructor(e){if(!(e instanceof sa))throw new TypeError("track must be an InputTrack.");this._track=e}async getFirstPacket(e={}){if(Nn(e),this._track.input._disposed)throw new Bt;return Ed(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(ia(e),Nn(A),this._track.input._disposed)throw new Bt;return Ed(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 Bt;return Ed(this._track,this._track._backing.getNextPacket(e,A),A)}async getKeyPacket(e,A={}){if(ia(e),Nn(A),this._track.input._disposed)throw new Bt;if(!A.verifyKeyPackets)return this._track._backing.getKeyPacket(e,A);let r=await this._track._backing.getKeyPacket(e,A);return r&&(b(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 Bt;if(!A.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,A);let r=await this._track._backing.getNextKeyPacket(e,A);return r&&(b(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 Bt;let n=[],{promise:a,resolve:i}=gt(),{promise:s,resolve:o}=gt(),c=!1,l=!1,u=null,g=[],f=()=>Math.max(2,g.length);(async()=>{let h=e??await this.getFirstPacket(r);for(;h&&!l&&!this._track.input._disposed&&!(A&&h.sequenceNumber>=A?.sequenceNumber);){if(n.length>f()){({promise:s,resolve:o}=gt()),await s;continue}n.push(h),i(),{promise:a,resolve:i}=gt(),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 Bt;if(l)return{value:void 0,done:!0};if(u)throw u;if(n.length>0){let h=n.shift(),y=performance.now();for(g.push(y);g.length>0&&y-g[0]>=1e3;)g.shift();return o(),{value:h,done:!1}}else{if(c)return{value:void 0,done:!0};await a}}},async return(){return l=!0,o(),i(),{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}},Td=class{constructor(e,A){this.onSample=e,this.onError=A}},bu=class{mediaSamplesInRange(e=-1/0,A=1/0,r){ia(e),ia(A);let n=[],a=!1,i=null,{promise:s,resolve:o}=gt(),{promise:c,resolve:l}=gt(),u=!1,g=!1,f=!1,p=null,h={...r,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let D=await this._createDecoder(M=>{if(l(),M.timestamp>=A&&(g=!0),g){M.close();return}i&&(M.timestamp>e?(n.push(i),a=!0):i.close()),M.timestamp>=e&&(n.push(M),a=!0),i=a?null:M,n.length>0&&(o(),{promise:s,resolve:o}=gt())},M=>{p||(p=M,o())}),E=this._createPacketSink(),C=await E.getKeyPacket(e,h)??await E.getFirstKeyPacket(h),G=C,k=E.packets(C??void 0,void 0,h);for(await k.next();G&&!g&&!this._track.input._disposed;){let M=oB(n.length);if(n.length+D.getDecodeQueueSize()>M){({promise:c,resolve:l}=gt()),await c;continue}D.decode(G);let R=await k.next();if(R.done)break;G=R.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 Bt;if(f)return{value:void 0,done:!0};if(p)throw w(),p;if(n.length>0){let D=n.shift();return l(),{value:D,done:!1}}else if(!u)await s;else return{value:void 0,done:!0}}},async return(){return f=!0,g=!0,l(),o(),w(),{value:void 0,done:!0}},async throw(D){throw D},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e,A){Bp(e);let r=wp(e),n=[],a=[],{promise:i,resolve:s}=gt(),{promise:o,resolve:c}=gt(),l=!1,u=!1,g=null,f=w=>{a.push(w),s(),{promise:i,resolve:s}=gt()},p={...A,verifyKeyPackets:!0,metadataOnly:!1};(async()=>{let w=await this._createDecoder(M=>{if(c(),u){M.close();return}let R=0;for(;n.length>0&&M.timestamp-n[0]>-1e-10;)R++,n.shift();if(R>0)for(let N=0;N<R;N++)f(N<R-1?M.clone():M);else M.close()},M=>{g||(g=M,s())}),D=this._createPacketSink(),E=null,C=null,G=-1,S=async()=>{b(C);let M=C;for(w.decode(M);M.sequenceNumber<G;){let R=oB(a.length);for(;a.length+w.getDecodeQueueSize()>R&&!u;)({promise:o,resolve:c}=gt()),await o;if(u)break;let N=await D.getNextPacket(M,p);b(N),w.decode(N),M=N}G=-1},k=async()=>{await w.flush();for(let M=0;M<n.length;M++)f(null);n.length=0};for await(let M of r){if(ia(M),u||this._track.input._disposed)break;let R=await D.getPacket(M,p),N=R&&await D.getKeyPacket(M,p);if(!N){G!==-1&&(await S(),await k()),f(null),E=null;continue}E&&(N.sequenceNumber!==C.sequenceNumber||R.timestamp<E.timestamp)&&(await S(),await k()),n.push(R.timestamp),G=Math.max(R.sequenceNumber,G),E=R,C=N}!u&&!this._track.input._disposed&&(G!==-1&&await S(),await k()),w.close(),l=!0,s()})().catch(w=>{g||(g=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 Bt;if(u)return{value:void 0,done:!0};if(g)throw y(),g;if(a.length>0){let w=a.shift();return b(w!==void 0),c(),{value:w,done:!1}}else if(!l)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}}}},oB=t=>t===0?40:8,kd=class extends Td{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=Cu.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=l=>{this.frameHandlerSerializer.call(async()=>{if(this.alphaQueue.length>0){let u=this.alphaQueue.shift();b(u!==void 0),await this.mergeAlpha(l,u)}else this.colorQueue.push(l)}).catch(u=>this.onError(u))};if(r==="avc"&&this.decoderConfig.description&&ks()){let l=Lp(ft(this.decoderConfig.description));if(l&&l.sequenceParameterSets.length>0){let u=Rs(l.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:l=>{try{o(l)}catch(u){this.onError(u)}},error:l=>{l.stack=c,this.onError(l)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(b(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(b(this.decoder),kn()||Tg(this.inputTimestamps,e.timestamp,A=>A),ks()&&this.currentPacketIndex===0){if(this.codec==="avc"){let A=[];for(let n of Rg(e.data,this.decoderConfig)){let a=Hi(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=Up(A,this.decoderConfig);e=new Fe(r,e.type,e.timestamp,e.duration)}else if(this.codec==="hevc"){let A=Kp(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 Eu),!this.alphaDecoder){let r=a=>{this.frameHandlerSerializer.call(async()=>{if(this.colorQueue.length>0){let i=this.colorQueue.shift();b(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();b(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=Jr(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 Ms(e,this.decoderConfig)){let r=Zr(e[A.offset]);if(r===Ct.RASL_N||r===Ct.RASL_R)return!0}return!1}sampleHandler(e){if(kn()){if(this.sampleQueue.length>0&&e.timestamp>=Me(this.sampleQueue).timestamp){for(let A of this.sampleQueue)this.finalizeAndEmitSample(A);this.sampleQueue.length=0}Tg(this.sampleQueue,e,A=>A.timestamp)}else{let A=this.inputTimestamps.shift();b(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}b(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()):(b(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()):(b(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}},cB=!1,Eu=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&&!cB)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,cB=!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(){b(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){b(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),r}createVAO(){b(this.gl),b(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(){b(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){b(this.gl),b(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([`(${QC.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=gt();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()}};bu.forceCpu=!0;var QC=()=>{let t=null,e=null,A=Promise.resolve();self.addEventListener("message",o=>{let{id:c,color:l,alpha:u}=o.data;A=A.then(async()=>{try{let g=await r(l,u);self.postMessage({id:c,frame:g},{transfer:[g]})}catch(g){self.postMessage({id:c,error:g.message})}finally{l.close(),u.close()}})});let r=async(o,c)=>{let l=o.format,u=c.format;if(!l||!u)throw new Error("CPU color/alpha merging requires a known VideoFrame format.");let g=l.includes("P10"),f=l.includes("P12"),p=u.includes("P10"),h=u.includes("P12");if(p!==g||h!==f)throw new Error(`CPU color/alpha merging requires the alpha frame to have the same bit depth as the color frame (color: '${l}', alpha: '${u}').`);let y=o.codedWidth,w=o.codedHeight;if(l==="RGBX"||l==="RGBA"||l==="BGRX"||l==="BGRA")return await n(o,c,y,w,l);if(l==="I420"||l==="I420P10"||l==="I420P12"||l==="I422"||l==="I422P10"||l==="I422P12"||l==="I444"||l==="I444P10"||l==="I444P12")return await a(o,c,y,w,l);if(l==="NV12")return await i(o,c,y,w);throw new Error(`CPU color/alpha merging does not support format '${l}'.`)},n=async(o,c,l,u,g)=>{let f=l*u,p=new Uint8Array(f*4);await o.copyTo(p);let h=await s(c,l,u,1);for(let D=0,E=3;D<f;D++,E+=4)p[E]=h[D];let w={format:g==="RGBX"||g==="RGBA"?"RGBA":"BGRA",codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[p.buffer]};return new VideoFrame(p,w)},a=async(o,c,l,u,g)=>{let f=g.includes("P10"),p=g.includes("P12"),h=f||p?2:1,y,w;g.startsWith("I420")?(y=Math.ceil(l/2),w=Math.ceil(u/2)):g.startsWith("I422")?(y=Math.ceil(l/2),w=u):(y=l,w=u);let D=l*u,E=y*w,C=D*h,G=E*h,S=D*h,k=C+2*G+S,M=new Uint8Array(k);await o.copyTo(M);let R=await s(c,l,u,h),N=C+2*G;M.set(R,N);let F={format:g.slice(0,4)+"A"+g.slice(4),codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[M.buffer]};return new VideoFrame(M,F)},i=async(o,c,l,u)=>{let g=l*u,f=Math.ceil(l/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(g+2*h+g);w.set(e.subarray(0,g),0);let D=g,E=g+h,C=g;for(let k=0;k<h;k++)w[D+k]=e[C+k*2],w[E+k]=e[C+k*2+1];let G=await s(c,l,u,1);w.set(G,g+2*h);let S={format:"I420A",codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[w.buffer]};return new VideoFrame(w,S)},s=async(o,c,l,u)=>{let g=o.allocationSize();(!t||t.byteLength!==g)&&(t=new Uint8Array(g)),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*l;for(let y=0;y<h;y++)t[y]=t[y*4+p];return t.subarray(0,h)}else return t.subarray(0,c*l*u)}},na=class extends Cu{constructor(e){if(!(e instanceof Nn))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 b(r&&a),new Ed(e,A,r,a,n,i)}_createPacketSink(){return new tn(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 Nn}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 it(this._backing.getInternalCodecId(),"internalCodecId","getInternalCodecId")}async getLanguageCode(){return this._backing.getLanguageCode()}get languageCode(){return it(this._backing.getLanguageCode(),"languageCode","getLanguageCode")}async getName(){return this._backing.getName()}get name(){return it(this._backing.getName(),"name","getName")}async getTimeResolution(){return this._backing.getTimeResolution()}get timeResolution(){return it(this._backing.getTimeResolution(),"timeResolution","getTimeResolution")}async isRelativeToUnixEpoch(){return this._backing.isRelativeToUnixEpoch()}async getDisposition(){return this._backing.getDisposition()}get disposition(){return it(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 Cs(r,await this.getTimeResolution())}async getDurationFromMetadata(e={}){return this._backing.getDurationFromMetadata(e)}async computePacketStats(e=1/0,A){let r=new tn(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(An({filter:A=>A.canBePairedWith(this)},e))}async getPairableVideoTracks(e){return this.input.getVideoTracks(An({filter:A=>A.canBePairedWith(this)},e))}async getPairableAudioTracks(e){return this.input.getAudioTracks(An({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableVideoTrack(e){return this.input.getPrimaryVideoTrack(An({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableAudioTrack(e){return this.input.getPrimaryAudioTrack(An({filter:A=>A.canBePairedWith(this)},e))}async hasPairableTrack(e){e&&=Td(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&&=Td(e),this.hasPairableTrack(async A=>A.isVideoTrack()&&(!e||await e(A)))}hasPairableAudioTrack(e){return e&&=Td(e),this.hasPairableTrack(async A=>A.isAudioTrack()&&(!e||await e(A)))}},it=(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},Td=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},Nn=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 it(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!1}async getCodedWidth(){return this._backing.getCodedWidth()}get codedWidth(){return it(this._backing.getCodedWidth(),"codedWidth","getCodedWidth")}async getCodedHeight(){return this._backing.getCodedHeight()}get codedHeight(){return it(this._backing.getCodedHeight(),"codedHeight","getCodedHeight")}async getRotation(){return this._backing.getRotation()}get rotation(){return it(this._backing.getRotation(),"rotation","getRotation")}async getSquarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelWidth(){return it(this._backing.getSquarePixelWidth(),"squarePixelWidth","getSquarePixelWidth")}async getSquarePixelHeight(){return this._backing.getSquarePixelHeight()}get squarePixelHeight(){return it(this._backing.getSquarePixelHeight(),"squarePixelHeight","getSquarePixelHeight")}async getPixelAspectRatio(){return this._pixelAspectRatioCache??=Gn({num:await this.getSquarePixelWidth()*await this.getCodedHeight(),den:await this.getSquarePixelHeight()*await this.getCodedWidth()})}get pixelAspectRatio(){return this._pixelAspectRatioCache??=Gn({num:it(this._backing.getSquarePixelWidth(),"pixelAspectRatio","getPixelAspectRatio")*it(this._backing.getCodedHeight(),"pixelAspectRatio","getPixelAspectRatio"),den:it(this._backing.getSquarePixelHeight(),"pixelAspectRatio","getPixelAspectRatio")*it(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=it(e,"displayWidth","getDisplayWidth");if(n!==null)return n}let r=it(this._backing.getRotation(),"displayWidth","getDisplayWidth")%180===0?this._backing.getSquarePixelWidth():this._backing.getSquarePixelHeight();return it(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=it(e,"displayHeight","getDisplayHeight");if(n!==null)return n}let r=it(this._backing.getRotation(),"displayHeight","getDisplayHeight")%180===0?this._backing.getSquarePixelHeight():this._backing.getSquarePixelWidth();return it(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 b(A!==null),Du.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 b(r),Zr(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 it(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!0}async getNumberOfChannels(){return this._backing.getNumberOfChannels()}get numberOfChannels(){return it(this._backing.getNumberOfChannels(),"numberOfChannels","getNumberOfChannels")}async getSampleRate(){return this._backing.getSampleRate()}get sampleRate(){return it(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 b(A!==null),Dd.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 kd=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}},An=(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}),Eu=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,l)=>o[l])}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],l=Math.max(o.length,c.length);for(let u=0;u<l;u++){let g=o[u]??0,f=c[u]??0;if(g!==f)return g-f}return 0}).map(i=>i.track)};_i();var FC=1,Mw=2,Fn=class t extends ZA{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 Lt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof qt||e.source instanceof Qn))throw new TypeError("options.source must be a Source or SourceRef.");if(e.source instanceof qt&&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&&Zw(e.formatOptions,"formatOptions"),this._formats=e.formats,this._initInput=e.initInput??null,this._formatOptions=e.formatOptions??{},e.source instanceof qt?this._rootRef=e.source.ref():this._rootRef=e.source,this._sourceRefs.push(this._rootRef)}get _rootSource(){return this._rootRef.source}async _getSourceUncached(e){b(this._rootSource instanceof tr);let A=await this._rootSource._resolveRequest(e);return this._emit("source",{source:A.source,request:e,isRoot:e.isRoot}),A}_getSourceCached(e,A=FC){let r=this._sourceCache.find(i=>i.cacheGroup===A&&hd(i.request,e));if(r)return r.age++,Promise.resolve(r.sourceRef.source.ref());let n=this._sourceCachePromises.find(i=>i.cacheGroup===A&&hd(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);b(u!==-1);let g=this._sourceCache[u];this._sourceCache.splice(u,1),g.sourceRef.free(),fp(this._sourceRefs,g.sourceRef)}this._sourceRefs.push(i);let c=this._sourceCachePromises.findIndex(u=>u.request===e);return b(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 en(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 ro})()}get source(){return this._rootSource}async getFormat(){return await this._getDemuxer(),b(this._format),this._format}async canRead(){try{return await this._getDemuxer(),!0}catch(e){if(e instanceof ro)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 Eu(r,e)}async getVideoTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isVideoTrack());return Eu(r,e)}async getAudioTracks(e){e&&=oa(e);let r=(await this.getTracks()).filter(n=>n.isAudioTrack());return Eu(r,e)}async getPrimaryVideoTrack(e){e&&=oa(e);let A=An(e,{sortBy:async n=>[sa((await n.getDisposition()).default),sa(await n.hasPairableAudioTrack()),sa(!await n.hasOnlyKeyPackets()),kd(await n.getBitrate())]});return(await this.getVideoTracks(A))[0]??null}async getPrimaryAudioTrack(e){e&&=oa(e);let A=await this.getPrimaryVideoTrack(),r=An(e,{sortBy:async a=>[sa(!A||a.canBePairedWith(A)),sa((await a.getDisposition()).default),kd(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 Nn(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()}},ro=class extends Error{constructor(e="Input has an unsupported or unrecognizable format."){super(e),this.name="UnsupportedInputFormatError"}},Bt=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var en=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 Bt;if(e<0||this.fileSizeNonStrict!==null&&e+A>this.fileSizeNonStrict)return null;if(A===0){let a=new Uint8Array(0);return new _t(a,Ge(a),0,e,e)}let r=e+A,n=this.source._read(e,r,fd,md);return n instanceof Promise?n.then(a=>a?new _t(a.bytes,a.view,a.offset,e,r):null):n?new _t(n.bytes,n.view,n.offset,e,r):null}requestSliceRange(e,A,r){if(this.source._disposed)throw new Bt;if(e<0)return null;if(this.fileSizeNonStrict!==null)return this.requestSlice(e,En(this.fileSizeNonStrict-e,A,r));{let n=this.requestSlice(e,r),a=i=>i||(b(this.fileSizeNonStrict!==null),this.requestSlice(e,En(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 _t(n,Ge(n),0,0,r)})()}},_t=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,Ge(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)}},jt=(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)=>{jt(t,e);let A=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,A},ne=t=>(jt(t,1),t.view.getUint8(t.bufferPos++)),Xi=(t,e)=>{jt(t,2);let A=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,A},Xe=t=>{jt(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},SA=t=>{jt(t,3);let e=Is(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},Fs=t=>{jt(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},Tr=(t,e)=>{jt(t,4);let A=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,A},J=t=>{jt(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},vn=t=>{jt(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},yr=t=>{jt(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},zC=t=>{jt(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},$g=(t,e)=>{let A,r;return e?(A=Tr(t,!0),r=Tr(t,!0)):(r=Tr(t,!1),A=Tr(t,!1)),r*4294967296+A},Ht=t=>{let e=J(t),A=J(t);return e*4294967296+A},sw=t=>{let e=yr(t),A=J(t);return e*4294967296+A},Bw=t=>{let e=vn(t);return zC(t)*4294967296+e},cw=t=>{jt(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},Fc=t=>{jt(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},je=(t,e)=>{jt(t,e);let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(t.bytes[t.bufferPos++]);return A},au=(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 la;(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"})(la||(la={}));var Us=128,Xt=10,ga=["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,Us-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 l=ne(t);l<ga.length&&(e.genre??=ga[l])},ca=(t,e)=>{let A=te(t,e),r=kn(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()},OA=t=>{let e=t.filePos,A=je(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=Pc(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 xd(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,l=!1;if(e.majorVersion===3?(o=!!(a.flags&64),c=!!(a.flags&128)):e.majorVersion===4&&(o=!!(a.flags&4),c=!!(a.flags&8),l=!!(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(l&&n.ununsynchronizeRegion(n.pos,s),A.raw??={},a.id==="TXXX"){let u=A.raw.TXXX??={},g=n.readId3V2TextEncoding(),f=n.readId3V2Text(g,s),p=n.readId3V2Text(g,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 g=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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),g=/^\((\d+)\)/.exec(u);if(g){let f=Number.parseInt(g[1]);if(ga[f]!==void 0){A.genre??=ga[f];break}}if(g=/^\d+$/.exec(u),g){let f=Number.parseInt(g[0]);if(ga[f]!==void 0){A.genre??=ga[f];break}}A.genre??=u}break;case"TDRC":case"TDAT":{let u=n.readId3V2EncodingAndText(s),g=new Date(u);Number.isNaN(g.getTime())||(A.date??=g)}break;case"TYER":case"TYE":{let u=n.readId3V2EncodingAndText(s),g=Number.parseInt(u,10);Number.isInteger(g)&&(A.date??=new Date(String(g)))}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(),g;if(e.majorVersion===2){let y=n.readAscii(3);g=y==="PNG"?"image/png":y==="JPG"?"image/jpeg":"image/*"}else g=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:g,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:p})}}break;default:n.pos+=a.size;break}n.pos=s}},xd=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-Xt),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?Pc(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:Pc(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 la.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 la.UTF_16_WITH_BOM:if(n[0]===255&&n[1]===254){let a=new TextDecoder("utf-16le"),i=kn(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=kn(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=kn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}case la.UTF_16_BE_NO_BOM:{let a=new TextDecoder("utf-16be"),i=kn(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 la.UTF_8:{let a=kn(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 Tu=class{constructor(e){this.mutex=new zt,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 sB=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 Hn=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);b(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),lA=new DataView(Ee.buffer),lt=t=>[(t%256+256)%256],ge=t=>(lA.setUint16(0,t,!1),[Ee[0],Ee[1]]),Od=t=>(lA.setInt16(0,t,!1),[Ee[0],Ee[1]]),uB=t=>(lA.setUint32(0,t,!1),[Ee[1],Ee[2],Ee[3]]),$=t=>(lA.setUint32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Sr=t=>(lA.setInt32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),nr=t=>(lA.setUint32(0,Math.floor(t/2**32),!1),lA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),NC=t=>(lA.setInt32(0,Math.floor(t/2**32),!1),lA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),lB=t=>(lA.setInt16(0,2**8*t,!1),[Ee[0],Ee[1]]),FA=t=>(lA.setInt32(0,2**16*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Sd=t=>(lA.setInt32(0,2**30*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Yd=(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()},Ke=(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]},dB=gB(0),fB=t=>[FA(t[0]),FA(t[1]),Sd(t[2]),FA(t[3]),FA(t[4]),Sd(t[5]),FA(t[6]),FA(t[7]),Sd(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,[lt(e),uB(A),r??[]],n),mB=t=>t.isQuickTime?ce("ftyp",[Ke("qt "),$(512),Ke("qt ")]):t.fragmented?t.cmaf?ce("ftyp",[Ke("iso5"),$(512),Ke("iso5"),Ke("iso6"),Ke("mp41"),Ke("cmfc"),Ke("dash")]):ce("ftyp",[Ke("iso5"),$(512),Ke("iso5"),Ke("iso6"),Ke("mp41")]):ce("ftyp",[Ke("isom"),$(512),Ke("isom"),t.holdsAvc?Ke("avc1"):[],Ke("mp41")]),_d=()=>ce("styp",[Ke("iso5"),$(0),Ke("iso5"),Ke("iso6"),Ke("mp41"),Ke("cmfc"),Ke("dash")]),Md=(t,e)=>{let A=t.maxWrittenEndTimestamp-t.minWrittenTimestamp;return Number.isFinite(A)||(A=0),Me("sidx",1,0,[$(1),$(uA),nr(et(t.minWrittenTimestamp,uA)),nr(0),ge(0),ge(1),$(e&2147483647),$(et(A,uA)),$(0)])},no=t=>({type:"mdat",largeSize:t}),hB=t=>({type:"free",size:t}),da=t=>ce("moov",void 0,[HC(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>UC(e,t.creationTime)),t.isFragmented?kb(t.trackDatas):null,Rb(t)]),HC=(t,e)=>{let A=Math.max(0,...e.map(i=>et(ku(i),uA)+et(i.startTimestampOffset??0,uA))),r=Math.max(0,...e.map(i=>i.track.id))+1,n=!gr(t)||!gr(A),a=n?nr:$;return Me("mvhd",+n,0,[a(t),a(t),$(uA),a(A),FA(1),lB(1),Array(10).fill(0),fB(dB),Array(24).fill(0),$(r)])},ku=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},UC=(t,e)=>{let A=bB(t),r=t.startTimestampOffset!==null&&t.startTimestampOffset>0;return ce("trak",void 0,[qC(t,e),r?LC(t,t.startTimestampOffset):null,jC(t,e),A.name!==void 0?ce("udta",void 0,[ce("name",[...Nt.encode(A.name)])]):null])},qC=(t,e)=>{let A=et(ku(t),uA)+et(t.startTimestampOffset??0,uA),r=!gr(e)||!gr(A),n=r?nr:$,a;if(t.type==="video"){let s=t.track.metadata.rotation;a=gB(s??0)}else a=dB;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),ge(0),ge(t.track.id),lB(t.type==="audio"?1:0),ge(0),fB(a),FA(t.type==="video"?t.info.width:0),FA(t.type==="video"?t.info.height:0)])},LC=(t,e)=>{let A=et(e,uA),r=et(ku(t),uA),n=!gr(A)||!gr(r),a=n?nr:$,i=n?NC:Sr;return ce("edts",void 0,[Me("elst",n?1:0,0,[$(2),a(A),i(-1),FA(1),a(r),i(0),FA(1)])])},jC=(t,e)=>ce("mdia",void 0,[VC(t,e),Rd(!0,KC[t.type],WC[t.type]),ZC(t)]),VC=(t,e)=>{let A=et(ku(t),t.timescale),r=!gr(e)||!gr(A),n=r?nr:$;return Me("mdhd",+r,0,[n(e),n(e),$(t.timescale),n(A),ge(CB(t.track.metadata.languageCode??Je)),ge(0)])},KC={video:"vide",audio:"soun",subtitle:"text"},WC={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Rd=(t,e,A,r="\0\0\0\0")=>Me("hdlr",0,0,[t?Ke("mhlr"):$(0),Ke(e),Ke(r),$(0),$(0),Ke(A,!0)]),ZC=t=>ce("minf",void 0,[eb[t.type](),tb(),nb(t)]),$C=()=>Me("vmhd",0,1,[ge(0),ge(0),ge(0),ge(0)]),JC=()=>Me("smhd",0,0,[ge(0),ge(0)]),XC=()=>Me("nmhd",0,0),eb={video:$C,audio:JC,subtitle:XC},tb=()=>ce("dinf",void 0,[Ab()]),Ab=()=>Me("dref",0,0,[$(1)],[rb()]),rb=()=>Me("url ",0,1),nb=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(A=>A.sampleCompositionTimeOffset!==0);return ce("stbl",void 0,[ib(t),yb(t),e?Eb(t):null,e?Tb(t):null,Db(t),Cb(t),bb(t),Ib(t)])},ib=t=>{let e;if(t.type==="video")e=ab(Nb(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let A=DB(t.track.source._codec,t.muxer.isQuickTime);b(A),e=gb(A,t)}else t.type==="subtitle"&&(e=Bb(qb[t.track.source._codec],t));return b(e),Me("stsd",0,0,[$(1)],[e])},ab=(t,e)=>ce(t,[Array(6).fill(0),ge(1),ge(0),ge(0),Array(12).fill(0),ge(e.info.width),ge(e.info.height),$(4718592),$(4718592),$(0),ge(1),Array(32).fill(0),ge(24),Od(65535)],[Hb[e.track.source._codec](e),sb(e),lp(e.info.decoderConfig.colorSpace)?ob(e):null]),sb=t=>t.info.pixelAspectRatio.num===t.info.pixelAspectRatio.den?null:ce("pasp",[$(t.info.pixelAspectRatio.num),$(t.info.pixelAspectRatio.den)]),ob=t=>ce("colr",[Ke(t.muxer.isQuickTime?"nclc":"nclx"),ge(dr[t.info.decoderConfig.colorSpace.primaries]),ge(fr[t.info.decoderConfig.colorSpace.transfer]),ge(mr[t.info.decoderConfig.colorSpace.matrix]),t.muxer.isQuickTime?[]:lt((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),cb=t=>t.info.decoderConfig&&ce("avcC",[...ft(t.info.decoderConfig.description)]),ub=t=>t.info.decoderConfig&&ce("hvcC",[...ft(t.info.decoderConfig.description)]),oB=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?dr[e.colorSpace.primaries]:2,l=A[6]?Number(A[6]):e.colorSpace?.transfer?fr[e.colorSpace.transfer]:2,u=A[7]?Number(A[7]):e.colorSpace?.matrix?mr[e.colorSpace.matrix]:2;return Me("vpcC",1,0,[lt(r),lt(n),lt(o),lt(c),lt(l),lt(u),ge(0)])},lb=t=>ce("av1C",xp(t.info.decoderConfig.codec)),gb=(t,e)=>{let A=0,r,n=16,a=vt.includes(e.track.source._codec);if(a){let i=e.track.source._codec,{sampleSize:s}=TA(i);n=8*s,n>16&&(A=1)}if(e.muxer.isQuickTime&&(A=1),A===0)r=[Array(6).fill(0),ge(1),ge(A),ge(0),$(0),ge(e.info.numberOfChannels),ge(n),ge(0),ge(0),ge(e.info.sampleRate<2**16?e.info.sampleRate:0),ge(0)];else{let i=a?0:-2;r=[Array(6).fill(0),ge(1),ge(A),ge(0),$(0),ge(e.info.numberOfChannels),ge(Math.min(n,16)),Od(i),ge(0),ge(e.info.sampleRate<2**16?e.info.sampleRate:0),ge(0),a?[$(1),$(n/8),$(e.info.numberOfChannels*n/8)]:[$(0),$(0),$(0)],$(2)]}return ce(t,r,[Ub(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},vd=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=[...lt(e),...lt(21),...uB(0),...$(0),...$(0)];if(t.info.decoderConfig.description){let r=ft(t.info.decoderConfig.description);A=[...A,...lt(5),...Yd(r.byteLength),...r]}return A=[...ge(1),...lt(0),...lt(4),...Yd(A.length),...A,...lt(6),...lt(1),...lt(2)],A=[...lt(3),...Yd(A.length),...A],Me("esds",0,0,A)},rn=t=>ce("wave",void 0,[db(t),fb(t),ce("\0\0\0\0")]),db=t=>ce("frma",[Ke(DB(t.track.source._codec,t.muxer.isQuickTime))]),fb=t=>{let{littleEndian:e}=TA(t.track.source._codec);return ce("enda",[ge(+e)])},mb=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){b(s.byteLength>=18);let o=ft(s),c=bc(o);e=c.outputChannelCount,A=c.preSkip,r=c.inputSampleRate,n=c.outputGain,a=c.channelMappingFamily,c.channelMappingTable&&(i=c.channelMappingTable)}return ce("dOps",[lt(0),lt(e),ge(A),$(r),Od(n),lt(a),...i])},hb=t=>{let e=t.info.decoderConfig?.description;b(e);let A=ft(e);return Me("dfLa",0,0,[...A.subarray(4)])},Ar=t=>{let{littleEndian:e,sampleSize:A}=TA(t.track.source._codec),r=+e;return Me("pcmC",0,0,[lt(r),lt(8*A)])},pb=t=>{let e=Ec(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 xe(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])},wb=t=>{let e=Tc(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 xe(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])},Bb=(t,e)=>ce(t,[Array(6).fill(0),ge(1)],[Lb[e.track.source._codec](e)]),Pb=t=>ce("vttC",[...Nt.encode(t.info.config.description)]);var yb=t=>Me("stts",0,0,[$(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[$(e.sampleCount),$(e.sampleDelta)])]),Ib=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))])},Db=t=>Me("stsc",0,0,[$(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[$(e.firstChunk),$(e.samplesPerChunk),$(1)])]),Cb=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=TA(t.track.source._codec);return Me("stsz",0,0,[$(e*t.info.numberOfChannels),$(t.samples.reduce((A,r)=>A+et(r.duration,t.timescale),0))])}return Me("stsz",0,0,[$(0),$(t.samples.length),t.samples.map(e=>$(e.size))])},bb=t=>t.finalizedChunks.length>0&&_e(t.finalizedChunks).offset>=2**32?Me("co64",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>nr(e.offset))]):Me("stco",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>$(e.offset))]),Eb=t=>Me("ctts",1,0,[$(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[$(e.sampleCount),Sr(e.sampleCompositionTimeOffset)])]),Tb=t=>{let e=1/0,A=-1/0,r=1/0,n=-1/0;b(t.compositionTimeOffsetTable.length>0),b(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,et(s.timestamp,t.timescale)),n=Math.max(n,et(s.timestamp+s.duration,t.timescale))}let a=Math.max(-e,0);return n>=2**31?null:Me("cslg",0,0,[Sr(a),Sr(e),Sr(A),Sr(r),Sr(n)])},kb=t=>ce("mvex",void 0,t.map(xb)),xb=t=>Me("trex",0,0,[$(t.track.id),$(1),$(0),$(0),$(0)]),Qd=(t,e)=>ce("moof",void 0,[Gb(t),...e.map(Sb)]),Gb=t=>Me("mfhd",0,0,[$(t)]),pB=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},Sb=t=>ce("traf",void 0,[Yb(t),vb(t),Ob(t)]),Yb=t=>{b(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:pB(A)};return Me("tfhd",0,e,[$(t.track.id),$(r.duration),$(r.size),$(r.flags)])},vb=t=>(b(t.currentChunk),Me("tfdt",1,0,[nr(et(t.currentChunk.startTimestamp,t.timescale))])),Ob=t=>{b(t.currentChunk);let e=t.currentChunk.samples.map(h=>h.timescaleUnitsToNextSample),A=t.currentChunk.samples.map(h=>h.size),r=t.currentChunk.samples.map(pB),n=t.currentChunk.samples.map(h=>et(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],l=a.size>1,u=i.size>1,g=!c&&s.size>1,f=o.size>1||[...o].some(h=>h!==0),p=0;return p|=1,p|=4*+c,p|=256*+l,p|=512*+u,p|=1024*+g,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)=>[l?$(e[y]):[],u?$(A[y]):[],g?$(r[y]):[],f?Sr(n[y]):[]])])},wB=t=>ce("mfra",void 0,[...t.map(_b),Mb()]),_b=(t,e)=>Me("tfra",1,0,[$(t.track.id),$(63),$(t.finalizedChunks.length),t.finalizedChunks.map(r=>[nr(et(r.samples[0].timestamp,t.timescale)),nr(r.moofOffset),$(e+1),$(1),$(1)])]),Mb=()=>Me("mfro",0,0,[$(0)]),BB=()=>ce("vtte"),PB=(t,e,A,r,n)=>ce("vttc",void 0,[n!==null?ce("vsid",[Sr(n)]):null,A!==null?ce("iden",[...Nt.encode(A)]):null,e!==null?ce("ctim",[...Nt.encode(sB(e))]):null,r!==null?ce("sttg",[...Nt.encode(r)]):null,ce("payl",[...Nt.encode(t)])]),yB=t=>ce("vtta",[...Nt.encode(t)]),Rb=t=>{let e=[],A=t.format._options.metadataFormat??"auto",r=t.output._metadataTags;if(A==="mdir"||A==="auto"&&!t.isQuickTime){let n=Fb(r);n&&e.push(n)}else if(A==="mdta"){let n=zb(r);n&&e.push(n)}else(A==="udta"||A==="auto"&&t.isQuickTime)&&Qb(e,t.output._metadataTags);return e.length===0?null:ce("udta",void 0,e)},Qb=(t,e)=>{for(let{key:A,value:r}of Ts(e))switch(A){case"title":t.push(rr("\xA9nam",r));break;case"description":t.push(rr("\xA9des",r));break;case"artist":t.push(rr("\xA9ART",r));break;case"album":t.push(rr("\xA9alb",r));break;case"albumArtist":t.push(rr("albr",r));break;case"genre":t.push(rr("\xA9gen",r));break;case"date":t.push(rr("\xA9day",r.toISOString().slice(0,10)));break;case"comment":t.push(rr("\xA9cmt",r));break;case"lyrics":t.push(rr("\xA9lyr",r));break;case"raw":break;case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:Zt(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(rr(A,r)):r instanceof Uint8Array&&t.push(ce(A,Array.from(r))))}},rr=(t,e)=>{let A=Nt.encode(e);return ce(t,[ge(A.length),ge(CB("und")),Array.from(A)])},cB={"image/jpeg":13,"image/png":14,"image/bmp":27},IB=(t,e)=>{let A=[];for(let{key:r,value:n}of Ts(t))switch(r){case"title":A.push({key:e?"title":"\xA9nam",value:QA(n)});break;case"description":A.push({key:e?"description":"\xA9des",value:QA(n)});break;case"artist":A.push({key:e?"artist":"\xA9ART",value:QA(n)});break;case"album":A.push({key:e?"album":"\xA9alb",value:QA(n)});break;case"albumArtist":A.push({key:e?"album_artist":"aART",value:QA(n)});break;case"comment":A.push({key:e?"comment":"\xA9cmt",value:QA(n)});break;case"genre":A.push({key:e?"genre":"\xA9gen",value:QA(n)});break;case"lyrics":A.push({key:e?"lyrics":"\xA9lyr",value:QA(n)});break;case"date":A.push({key:e?"date":"\xA9day",value:QA(n.toISOString().slice(0,10))});break;case"images":for(let a of n)a.kind==="coverFront"&&A.push({key:"covr",value:ce("data",[$(cB[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:QA(a)})}else A.push({key:"trkn",value:ce("data",[$(0),$(0),ge(0),ge(n),ge(t.tracksTotal??0),ge(0)])});break;case"discNumber":e||A.push({key:"disc",value:ce("data",[$(0),$(0),ge(0),ge(n),ge(t.discsTotal??0),ge(0)])});break;case"tracksTotal":case"discsTotal":break;case"raw":break;default:Zt(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:QA(n)}):n instanceof Uint8Array?A.push({key:r,value:ce("data",[$(0),$(0),Array.from(n)])}):n instanceof EA&&A.push({key:r,value:ce("data",[$(cB[n.mimeType]??0),$(0),Array.from(n.data)])}))}return A},Fb=t=>{let e=IB(t,!1);return e.length===0?null:Me("meta",0,0,void 0,[Rd(!1,"mdir","","appl"),ce("ilst",void 0,e.map(A=>ce(A.key,void 0,[A.value])))])},zb=t=>{let e=IB(t,!0);return e.length===0?null:ce("meta",void 0,[Rd(!1,"mdta",""),Me("keys",0,0,[$(e.length)],e.map(A=>ce("mdta",[...Nt.encode(A.key)]))),ce("ilst",void 0,e.map((A,r)=>{let n=String.fromCharCode(...$(r+1));return ce(n,void 0,[A.value])}))])},QA=t=>ce("data",[$(1),$(0),...Nt.encode(t)]),Nb=(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"}},Hb={avc:cb,hevc:ub,vp8:oB,vp9:oB,av1:lb},DB=(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"}},Ub=(t,e)=>{switch(t){case"aac":return vd;case"mp3":return vd;case"opus":return mb;case"vorbis":return vd;case"flac":return hb;case"ac3":return pb;case"eac3":return wb}if(e)switch(t){case"pcm-s24":return rn;case"pcm-s24be":return rn;case"pcm-s32":return rn;case"pcm-s32be":return rn;case"pcm-f32":return rn;case"pcm-f32be":return rn;case"pcm-f64":return rn;case"pcm-f64be":return rn}else switch(t){case"pcm-s16":return Ar;case"pcm-s16be":return Ar;case"pcm-s24":return Ar;case"pcm-s24be":return Ar;case"pcm-s32":return Ar;case"pcm-s32be":return Ar;case"pcm-f32":return Ar;case"pcm-f32be":return Ar;case"pcm-f64":return Ar;case"pcm-f64be":return Ar}return null},qb={webvtt:"wvtt"},Lb={webvtt:Pb},CB=t=>{b(t.length===3);let e=0;for(let A=0;A<3;A++)e<<=5,e+=t.charCodeAt(A)-96;return e};var Un=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(){b(!this.started),this.target._start(),this.started=!0}write(e){b(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 b(this.started&&!this.finalized),this.target._flush()}async finalize(){b(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 tA=class extends ZA{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 xu(this,e)}},Fd=2**16,zd=2**32,Yr=class extends tA{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(Fd,{maxByteLength:zd})}catch{this._buffer=new ArrayBuffer(Fd),this._supportsResize=!1}else this._buffer=new ArrayBuffer(Fd);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>zd)throw new Error(`ArrayBuffer exceeded maximum size of ${zd} 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)}},f8=2**24;var xu=class extends tA{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)}},qn=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,jb=2082844800,bB=t=>{let e={},A=t.track;return A.metadata.name!==void 0&&(e.name=A.metadata.name),e},et=(t,e,A=!0)=>{let r=t*e;return A?Math.round(r):r},Gu=class extends Tu{constructor(e,A){super(e),this.writer=null,this.boxWriter=null,this.initWriter=null,this.initBoxWriter=null,this.auxTarget=new Yr,this.auxWriter=new Un(this.auxTarget,!1),this.auxBoxWriter=new Hn(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=gt(),this.creationTime=Math.floor(Date.now()/1e3)+jb,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 Yr),this.boxWriter=new Hn(this.writer),this.fastStart=this.format._options.fastStart??(this.writer.target instanceof Yr?"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 Un(r,!0);n.start(),this.initWriter=n,this.initBoxWriter=new Hn(n)}let A=this.output._tracks.some(r=>r.isVideoTrack()&&r.source._codec==="avc");{let r=this.initBoxWriter??this.boxWriter;if(b(r),this.format._options.onFtyp&&r.writer.startTrackingWrites(),r.writeBox(mB({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||(b(this.writer),b(this.boxWriter),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=no(!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(g=>g.track===e);if(n)return n;Yp(r),b(r),b(r.decoderConfig);let a={...r.decoderConfig};b(a.codedWidth!==void 0),b(a.codedHeight!==void 0);let i=!1;if(e.source._codec==="avc"&&!a.description){let g=Ni(A.data);if(!g)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=Np(g),i=!0}else if(e.source._codec==="hevc"&&!a.description){let g=Hi(A.data);if(!g)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=qp(g),i=!0}let s=wp(1/(e.metadata.frameRate??uA),1e6).den,o=a.displayAspectWidth,c=a.displayAspectHeight,l=o===void 0||c===void 0?{num:1,den:1}:Gn({num:o*a.codedHeight,den:c*a.codedWidth}),u={muxer:this,track:e,type:"video",info:{width:a.codedWidth,height:a.codedHeight,pixelAspectRatio:l,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((g,f)=>g.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;vp(r),b(r),b(r.decoderConfig);let a={...r.decoderConfig},i=!1;if(e.source._codec==="aac"&&!a.description){let o=MA(_t.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=XA[o.samplingFrequencyIndex],l=qr[o.channelConfiguration];if(c===void 0||l===void 0)throw new Error("Invalid ADTS frame header.");a.description=Dp({objectType:o.objectType,sampleRate:c,numberOfChannels:l}),i=!0}let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:a,requiresPcmTransformation:!this.isFragmented&&vt.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;Op(A),b(A),b(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=Ic(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 l=MA(_t.tempFromBytes(i));if(!l)throw new Error("Expected ADTS frame, didn't get one.");let u=l.crcCheck===null?_n:_A;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=TA(a.info.decoderConfig.codec).sampleSize*a.info.numberOfChannels;if(o=i.byteLength/u/a.info.sampleRate,a.info.expectedNextPcmPacketTimestamp!==null){let g=s-a.info.expectedNextPcmPacketTimestamp;if(g<.01)s=a.info.expectedNextPcmPacketTimestamp;else{let f=await this.padWithSilence(a,a.info.expectedNextPcmPacketTimestamp,g);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=et(r,e.timescale);if(r=n/e.timescale,n>0){let{sampleSize:a,silentValue:i}=TA(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)b(c.timestamp<=A),b(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,l)=>c-l),a=n[0],i=n[1]??a;if(A<i)break;if(e.lastCueEndTimestamp<a){this.auxWriter.seek(0);let c=BB();this.auxBoxWriter.writeBox(c);let l=this.auxTarget._getSlice(0,this.auxWriter.getPos()),u=this.createSampleForTrack(e,l,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 l=e.cueQueue[c];if(l.timestamp>=i)break;Gd.lastIndex=0;let u=Gd.test(l.text),g=l.timestamp+l.duration,f=e.cueToSourceId.get(l);if(f===void 0&&i<g&&(f=e.nextSourceId++,e.cueToSourceId.set(l,f)),l.notes){let h=yB(l.notes);this.auxBoxWriter.writeBox(h)}let p=PB(l.text,u?a:null,l.identifier??null,l.settings??null,f??null);this.auxBoxWriter.writeBox(p),g===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:et(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=et(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=et(a.timestamp-a.decodeTimestamp,e.timescale),s=et(a.duration,e.timescale);if(e.lastTimescaleUnits!==null){b(e.lastSample);let o=et(a.decodeTimestamp,e.timescale,!1),c=Math.round(o-e.lastTimescaleUnits);if(b(c>=0),e.lastTimescaleUnits+=c,e.lastSample.timescaleUnitsToNextSample=c,!this.isFragmented){let l=_e(e.timeToSampleTable);if(b(l),l.sampleCount===1){l.sampleDelta=c;let g=e.timeToSampleTable[e.timeToSampleTable.length-2];g&&g.sampleDelta===c&&(g.sampleCount++,e.timeToSampleTable.pop(),l=g)}else l.sampleDelta!==c&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:c}));l.sampleDelta===s?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:s});let u=_e(e.compositionTimeOffsetTable);b(u),u.sampleCompositionTimeOffset===i?u.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i})}}else e.lastTimescaleUnits=et(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,b(e.lastSample),b(e.lastTimescaleUnits!==null),A!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){b(A.type==="key");let n=et(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(b(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}),b(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(b(!this.isFragmented),b(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+et(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)b(r.data),this.writer.write(r.data),r.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(b(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){b(this.isFragmented);let A=this.nextFragmentNumber++;if(A===1){let f=this.initBoxWriter??this.boxWriter;b(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){b(this.initWriter),await this.initWriter.flush(),await this.initWriter.finalize(),this.writer=await this.output._getRootWriter(!0),this.boxWriter=new Hn(this.writer);let h=this.boxWriter.measureBox(_d()),y=this.boxWriter.measureBox(Md(this,0));this.segmentHeaderSize=h+y,this.writer.seek(this.segmentHeaderSize)}}b(this.writer),b(this.boxWriter);let r=this.trackDatas.filter(f=>f.currentChunk),n=Qd(A,r),a=this.writer.getPos(),i=a+this.boxWriter.measureBox(n),s=i+kA,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,l=c>=2**32;if(l)for(let f of r)f.currentChunk.offset+=Br-kA;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=Qd(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)}b(this.writer.getPos()===i),this.format._options.onMdat&&this.writer.startTrackingWrites();let g=no(l);g.size=c,this.boxWriter.writeBox(g),this.writer.seek(i+(l?Br:kA));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(b(this.writer),b(this.boxWriter),this.allTracksAreKnown()){if(!this.mdat){this.ensureOneEnabledTrack();let r=da(this),a=this.boxWriter.measureBox(r)+this.computeSampleTableSizeUpperBound()+4096;b(this.ftypSize!==null),this.writer.seek(this.ftypSize+a),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=no(!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(){b(this.fastStart==="reserve");let e=0;for(let A of this.trackDatas){let r=A.track.metadata.maximumPacketCount;b(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),b(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(b(this.writer),b(this.boxWriter),this.fastStart==="in-memory"){this.mdat=no(!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)b(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)b(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(_d()),this.boxWriter.writeBox(Md(this,A))}else{let A=this.writer.getPos(),r=wB(this.trackDatas);this.boxWriter.writeBox(r);let n=this.writer.getPos()-A;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(n)}else{b(this.mdat);let A=this.boxWriter.offsets.get(this.mdat);b(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"){b(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(hB(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,!Ot.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Ot.join(", ")}.`);this._codec=e}},EB=(t,e)=>{if(t.metadata.hasOnlyKeyPackets&&e.type!=="key")throw new Error("Cannot add non-key packets to a hasOnlyKeyPackets video track.")};var Nd=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 In,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,g=a.transform?.height,f=a.transform?.fit??"fill";s&&i!=="passThrough"&&(b(this.outputWidth),b(this.outputHeight),b(i!=="deny"),u=this.outputWidth,g=this.outputHeight,f=i);let p=await e.transform({width:u,height:g,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 l=a.transform?.frameRate;if(l!==void 0){let u=e.timestamp+e.duration,g=kg(e.timestamp,l);if(this.frameRateLastSample!==null)if(g<=this.frameRateLastTimestamp){this.frameRateLastSample.close(),this.frameRateLastSample=e.clone(),this.frameRateLastEndTimestamp=u;return}else await this.padFrameRate(g,r);e===n&&(e=e.clone(),A=!0),e.setTimestamp(g),e.setDuration(1/l),this.frameRateLastSample?.close(),this.frameRateLastSample=e.clone(),this.frameRateLastTimestamp=g,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 RA?i:typeof VideoFrame<"u"&&i instanceof VideoFrame?new RA(i):new RA(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),b(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 l=a.clone(),u=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(l,c)).then(()=>this.customEncoderQueueSize--).catch(g=>this.error??=g).finally(()=>{l.close()});this.customEncoderQueueSize>=4&&await u}else{b(this.encoder);let l=a.toVideoFrame(),u=ye(this.preciseTimings,l.timestamp,f=>f.microsecondTimestamp),g=u!==-1?this.preciseTimings[u]:null;if(g&&g.microsecondTimestamp===l.timestamp?(g.timestamp!==a.timestamp&&(g.timestampIsValid=!1),g.duration!==a.duration&&(g.durationIsValid=!1)):(this.preciseTimings.splice(u+1,0,{microsecondTimestamp:l.timestamp,timestamp:a.timestamp,duration:a.duration,timestampIsValid:!0,durationIsValid:!0}),this.preciseTimings.length>128&&this.preciseTimings.shift()),!this.alphaEncoder)this.encoder.encode(l,c),l.close();else if(!!l.format&&!l.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(l,c),l.close();else{let p=l.displayWidth,h=l.displayHeight;this.splitter||(this.splitter=new Su(p,h));let{colorFrame:y,alphaFrame:w}=await this.splitter.update(l);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;b(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=yd({...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=Iu.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.");EB(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,l=(g,f,p)=>{let h={};if(f){let C=new Uint8Array(f.byteLength);f.copyTo(C),h.alpha=C}let y=Fe.fromEncodedChunk(g,h),w=ye(this.preciseTimings,g.timestamp,C=>C.microsecondTimestamp),D=w!==-1?this.preciseTimings[w]:null,E=null;this.emittedEncoderPackets===0&&y.type==="delta"&&p?.decoderConfig&&(E=Zr(this.encodingConfig.codec,p.decoderConfig,y.data)),(D&&D.microsecondTimestamp===g.timestamp||E!==null)&&(y=y.clone({timestamp:D?.timestampIsValid?D.timestamp:void 0,duration:D?.durationIsValid?D.duration:void 0,type:E??void 0})),EB(this.source._connectedTrack,y),this.encodingConfig.onEncodedPacket?.(y,p),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,y,p).catch(C=>{this.error??=C}),this.emittedEncoderPackets++},u=new Error("Encoding error").stack;if(this.encoder=new VideoEncoder({output:(g,f)=>{if(!this.alphaEncoder){l(g,null,f);return}let p=this.alphaFrameQueue.shift();b(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:g.type==="key"}),c++,p.close(),i.push({chunk:g,meta:f})):c===0?l(g,null,f):(s.push(o+c),i.push({chunk:g,meta:f}))},error:g=>{g.stack=u,this.error??=g}}),this.encoder.configure(A),this.encodingConfig.alpha==="keep"){let g=new Error("Encoding error").stack;this.alphaEncoder=new VideoEncoder({output:(f,p)=>{c--;let h=i.shift();for(b(h!==void 0),l(h.chunk,f,h.meta),o++;s.length>0&&s[0]===o;){s.shift();let y=i.shift();b(y!==void 0),l(y.chunk,null,y.meta)}},error:f=>{f.stack=g,this.error??=f}}),this.alphaEncoder.configure(A)}}b(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=kg(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}},TB=!1,Su=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&&!TB)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,TB=!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){b(this.gl),b(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 b(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){b(this.gl);let r=this.gl.createShader(e);return this.gl.shaderSource(r,A),this.gl.compileShader(r),r}createVAO(){b(this.gl),b(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(){b(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){b(this.gl),b(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([`(${KC.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=gt();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()}};Eu.forceCpu=!0;var KC=()=>{let t=null,e=null,A=Promise.resolve();self.addEventListener("message",o=>{let{id:c,color:l,alpha:u}=o.data;A=A.then(async()=>{try{let g=await r(l,u);self.postMessage({id:c,frame:g},{transfer:[g]})}catch(g){self.postMessage({id:c,error:g.message})}finally{l.close(),u.close()}})});let r=async(o,c)=>{let l=o.format,u=c.format;if(!l||!u)throw new Error("CPU color/alpha merging requires a known VideoFrame format.");let g=l.includes("P10"),f=l.includes("P12"),p=u.includes("P10"),h=u.includes("P12");if(p!==g||h!==f)throw new Error(`CPU color/alpha merging requires the alpha frame to have the same bit depth as the color frame (color: '${l}', alpha: '${u}').`);let y=o.codedWidth,w=o.codedHeight;if(l==="RGBX"||l==="RGBA"||l==="BGRX"||l==="BGRA")return await n(o,c,y,w,l);if(l==="I420"||l==="I420P10"||l==="I420P12"||l==="I422"||l==="I422P10"||l==="I422P12"||l==="I444"||l==="I444P10"||l==="I444P12")return await a(o,c,y,w,l);if(l==="NV12")return await i(o,c,y,w);throw new Error(`CPU color/alpha merging does not support format '${l}'.`)},n=async(o,c,l,u,g)=>{let f=l*u,p=new Uint8Array(f*4);await o.copyTo(p);let h=await s(c,l,u,1);for(let D=0,E=3;D<f;D++,E+=4)p[E]=h[D];let w={format:g==="RGBX"||g==="RGBA"?"RGBA":"BGRA",codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[p.buffer]};return new VideoFrame(p,w)},a=async(o,c,l,u,g)=>{let f=g.includes("P10"),p=g.includes("P12"),h=f||p?2:1,y,w;g.startsWith("I420")?(y=Math.ceil(l/2),w=Math.ceil(u/2)):g.startsWith("I422")?(y=Math.ceil(l/2),w=u):(y=l,w=u);let D=l*u,E=y*w,C=D*h,G=E*h,S=D*h,k=C+2*G+S,M=new Uint8Array(k);await o.copyTo(M);let R=await s(c,l,u,h),N=C+2*G;M.set(R,N);let F={format:g.slice(0,4)+"A"+g.slice(4),codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[M.buffer]};return new VideoFrame(M,F)},i=async(o,c,l,u)=>{let g=l*u,f=Math.ceil(l/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(g+2*h+g);w.set(e.subarray(0,g),0);let D=g,E=g+h,C=g;for(let k=0;k<h;k++)w[D+k]=e[C+k*2],w[E+k]=e[C+k*2+1];let G=await s(c,l,u,1);w.set(G,g+2*h);let S={format:"I420A",codedWidth:l,codedHeight:u,timestamp:o.timestamp,duration:o.duration??void 0,transfer:[w.buffer]};return new VideoFrame(w,S)},s=async(o,c,l,u)=>{let g=o.allocationSize();(!t||t.byteLength!==g)&&(t=new Uint8Array(g)),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*l;for(let y=0;y<h;y++)t[y]=t[y*4+p];return t.subarray(0,h)}else return t.subarray(0,c*l*u)}},aa=class extends bu{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 b(r&&a),new kd(e,A,r,a,n,i)}_createPacketSink(){return new rn(this._track)}async getSample(e,A={}){ia(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 sa=class t{constructor(e,A){this.input=e,this._backing=A}isVideoTrack(){return this instanceof Hn}isAudioTrack(){return this instanceof oa}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}async getInternalCodecId(){return this._backing.getInternalCodecId()}get internalCodecId(){return it(this._backing.getInternalCodecId(),"internalCodecId","getInternalCodecId")}async getLanguageCode(){return this._backing.getLanguageCode()}get languageCode(){return it(this._backing.getLanguageCode(),"languageCode","getLanguageCode")}async getName(){return this._backing.getName()}get name(){return it(this._backing.getName(),"name","getName")}async getTimeResolution(){return this._backing.getTimeResolution()}get timeResolution(){return it(this._backing.getTimeResolution(),"timeResolution","getTimeResolution")}async isRelativeToUnixEpoch(){return this._backing.isRelativeToUnixEpoch()}async getDisposition(){return this._backing.getDisposition()}get disposition(){return it(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 Es(r,await this.getTimeResolution())}async getDurationFromMetadata(e={}){return this._backing.getDurationFromMetadata(e)}async computePacketStats(e=1/0,A){let r=new rn(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(nn({filter:A=>A.canBePairedWith(this)},e))}async getPairableVideoTracks(e){return this.input.getVideoTracks(nn({filter:A=>A.canBePairedWith(this)},e))}async getPairableAudioTracks(e){return this.input.getAudioTracks(nn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableVideoTrack(e){return this.input.getPrimaryVideoTrack(nn({filter:A=>A.canBePairedWith(this)},e))}async getPrimaryPairableAudioTrack(e){return this.input.getPrimaryAudioTrack(nn({filter:A=>A.canBePairedWith(this)},e))}async hasPairableTrack(e){e&&=xd(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&&=xd(e),this.hasPairableTrack(async A=>A.isVideoTrack()&&(!e||await e(A)))}hasPairableAudioTrack(e){return e&&=xd(e),this.hasPairableTrack(async A=>A.isAudioTrack()&&(!e||await e(A)))}},it=(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},xd=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 sa{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 it(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!1}async getCodedWidth(){return this._backing.getCodedWidth()}get codedWidth(){return it(this._backing.getCodedWidth(),"codedWidth","getCodedWidth")}async getCodedHeight(){return this._backing.getCodedHeight()}get codedHeight(){return it(this._backing.getCodedHeight(),"codedHeight","getCodedHeight")}async getRotation(){return this._backing.getRotation()}get rotation(){return it(this._backing.getRotation(),"rotation","getRotation")}async getSquarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelWidth(){return it(this._backing.getSquarePixelWidth(),"squarePixelWidth","getSquarePixelWidth")}async getSquarePixelHeight(){return this._backing.getSquarePixelHeight()}get squarePixelHeight(){return it(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:it(this._backing.getSquarePixelWidth(),"pixelAspectRatio","getPixelAspectRatio")*it(this._backing.getCodedHeight(),"pixelAspectRatio","getPixelAspectRatio"),den:it(this._backing.getSquarePixelHeight(),"pixelAspectRatio","getPixelAspectRatio")*it(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=it(e,"displayWidth","getDisplayWidth");if(n!==null)return n}let r=it(this._backing.getRotation(),"displayWidth","getDisplayWidth")%180===0?this._backing.getSquarePixelWidth():this._backing.getSquarePixelHeight();return it(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=it(e,"displayHeight","getDisplayHeight");if(n!==null)return n}let r=it(this._backing.getRotation(),"displayHeight","getDisplayHeight")%180===0?this._backing.getSquarePixelHeight():this._backing.getSquarePixelWidth();return it(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 b(A!==null),Cu.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 b(r),Jr(A,r,e.data)}},oa=class extends sa{constructor(e,A){super(e,A),this._backing=A}get type(){return"audio"}async getCodec(){return this._backing.getCodec()}get codec(){return it(this._backing.getCodec(),"codec","getCodec")}async hasOnlyKeyPackets(){return await this._backing.getHasOnlyKeyPackets?.()??!0}async getNumberOfChannels(){return this._backing.getNumberOfChannels()}get numberOfChannels(){return it(this._backing.getNumberOfChannels(),"numberOfChannels","getNumberOfChannels")}async getSampleRate(){return this._backing.getSampleRate()}get sampleRate(){return it(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 b(A!==null),bd.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 Gd=t=>-(t??-1/0),ca=t=>-t,ua=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}},nn=(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}),Tu=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,l)=>o[l])}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],l=Math.max(o.length,c.length);for(let u=0;u<l;u++){let g=o[u]??0,f=c[u]??0;if(g!==f)return g-f}return 0}).map(i=>i.track)};Ri();var WC=1,Fw=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 Lt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof qt||e.source instanceof Fn))throw new TypeError("options.source must be a Source or SourceRef.");if(e.source instanceof qt&&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&&Xw(e.formatOptions,"formatOptions"),this._formats=e.formats,this._initInput=e.initInput??null,this._formatOptions=e.formatOptions??{},e.source instanceof qt?this._rootRef=e.source.ref():this._rootRef=e.source,this._sourceRefs.push(this._rootRef)}get _rootSource(){return this._rootRef.source}async _getSourceUncached(e){b(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=WC){let r=this._sourceCache.find(i=>i.cacheGroup===A&&wd(i.request,e));if(r)return r.age++,Promise.resolve(r.sourceRef.source.ref());let n=this._sourceCachePromises.find(i=>i.cacheGroup===A&&wd(i.request,e));if(n)return n.promise.then(i=>i.sourceRef.source.ref());let a=(async()=>{let i=await this._getSourceUncached(e);if(Gn(this._sourceCache,u=>u.cacheGroup===A&&u.sourceRef.source._refCount===1)>=4){let u=Qi(this._sourceCache,f=>f.cacheGroup===A&&f.sourceRef.source._refCount===1?f.age:1/0);b(u!==-1);let g=this._sourceCache[u];this._sourceCache.splice(u,1),g.sourceRef.free(),pp(this._sourceRefs,g.sourceRef)}this._sourceRefs.push(i);let c=this._sourceCachePromises.findIndex(u=>u.request===e);return b(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 An(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 io})()}get source(){return this._rootSource}async getFormat(){return await this._getDemuxer(),b(this._format),this._format}async canRead(){try{return await this._getDemuxer(),!0}catch(e){if(e instanceof io)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&&=ua(e);let r=(await this._getTrackBackings()).map(n=>this._wrapBackingAsTrack(n));return Tu(r,e)}async getVideoTracks(e){e&&=ua(e);let r=(await this.getTracks()).filter(n=>n.isVideoTrack());return Tu(r,e)}async getAudioTracks(e){e&&=ua(e);let r=(await this.getTracks()).filter(n=>n.isAudioTrack());return Tu(r,e)}async getPrimaryVideoTrack(e){e&&=ua(e);let A=nn(e,{sortBy:async n=>[ca((await n.getDisposition()).default),ca(await n.hasPairableAudioTrack()),ca(!await n.hasOnlyKeyPackets()),Gd(await n.getBitrate())]});return(await this.getVideoTracks(A))[0]??null}async getPrimaryAudioTrack(e){e&&=ua(e);let A=await this.getPrimaryVideoTrack(),r=nn(e,{sortBy:async a=>[ca(!A||a.canBePairedWith(A)),ca((await a.getDisposition()).default),Gd(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 oa(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()}},io=class extends Error{constructor(e="Input has an unsupported or unrecognizable format."){super(e),this.name="UnsupportedInputFormatError"}},Bt=class extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}};var An=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 Bt;if(e<0||this.fileSizeNonStrict!==null&&e+A>this.fileSizeNonStrict)return null;if(A===0){let a=new Uint8Array(0);return new _t(a,Ge(a),0,e,e)}let r=e+A,n=this.source._read(e,r,hd,pd);return n instanceof Promise?n.then(a=>a?new _t(a.bytes,a.view,a.offset,e,r):null):n?new _t(n.bytes,n.view,n.offset,e,r):null}requestSliceRange(e,A,r){if(this.source._disposed)throw new Bt;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||(b(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=Ae(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 _t(n,Ge(n),0,0,r)})()}},_t=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,Ge(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)}},jt=(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.`)},Ae=(t,e)=>{jt(t,e);let A=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,A},ie=t=>(jt(t,1),t.view.getUint8(t.bufferPos++)),ta=(t,e)=>{jt(t,2);let A=t.view.getUint16(t.bufferPos,e);return t.bufferPos+=2,A},tt=t=>{jt(t,2);let e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},YA=t=>{jt(t,3);let e=Cs(t.view,t.bufferPos,!1);return t.bufferPos+=3,e},Ns=t=>{jt(t,2);let e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},xr=(t,e)=>{jt(t,4);let A=t.view.getUint32(t.bufferPos,e);return t.bufferPos+=4,A},J=t=>{jt(t,4);let e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},On=t=>{jt(t,4);let e=t.view.getUint32(t.bufferPos,!0);return t.bufferPos+=4,e},Dr=t=>{jt(t,4);let e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},ZC=t=>{jt(t,4);let e=t.view.getInt32(t.bufferPos,!0);return t.bufferPos+=4,e},Xg=(t,e)=>{let A,r;return e?(A=xr(t,!0),r=xr(t,!0)):(r=xr(t,!1),A=xr(t,!1)),r*4294967296+A},Ht=t=>{let e=J(t),A=J(t);return e*4294967296+A},uw=t=>{let e=Dr(t),A=J(t);return e*4294967296+A},Iw=t=>{let e=On(t);return ZC(t)*4294967296+e},gw=t=>{jt(t,4);let e=t.view.getFloat32(t.bufferPos,!1);return t.bufferPos+=4,e},zc=t=>{jt(t,8);let e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},je=(t,e)=>{jt(t,e);let A="";for(let r=0;r<e;r++)A+=String.fromCharCode(t.bytes[t.bufferPos++]);return A},su=(t,e,A)=>mt.decode(Ae(t,e)).split(`
34
+ `).map(a=>a.trim()).filter(a=>a.length>0&&!A?.ignore?.(a));var ga;(function(t){t[t.Unsynchronisation=128]="Unsynchronisation",t[t.ExtendedHeader=64]="ExtendedHeader",t[t.ExperimentalIndicator=32]="ExperimentalIndicator",t[t.Footer=16]="Footer"})(ga||(ga={}));var da;(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"})(da||(da={}));var Ls=128,eA=10,fa=["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"],mw=(t,e)=>{let A=t.filePos;e.raw??={},e.raw.TAG??=Ae(t,Ls-3),t.filePos=A;let r=la(t,30);r&&(e.title??=r);let n=la(t,30);n&&(e.artist??=n);let a=la(t,30);a&&(e.album??=a);let i=la(t,4),s=Number.parseInt(i,10);Number.isInteger(s)&&s>0&&(e.date??=new Date(String(s)));let o=Ae(t,30),c;if(o[28]===0&&o[29]!==0){let u=o[29];u>0&&(e.trackNumber??=u),t.skip(-30),c=la(t,28),t.skip(2)}else t.skip(-30),c=la(t,30);c&&(e.comment??=c);let l=ie(t);l<fa.length&&(e.genre??=fa[l])},la=(t,e)=>{let A=Ae(t,e),r=xn(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=je(t,3),r=ie(t),n=ie(t),a=ie(t),i=J(t);if(A!=="ID3"||r===255||n===255||i&2155905152)return t.filePos=e,null;let s=yc(i);return{majorVersion:r,revision:n,flags:a,size:s}},Ji=(t,e,A)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let r=Ae(t,e.size),n=new Sd(e,r);if(e.flags&ga.Footer&&n.removeFooter(),e.flags&ga.Unsynchronisation&&e.majorVersion===3&&n.ununsynchronizeAll(),e.flags&ga.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,l=!1;if(e.majorVersion===3?(o=!!(a.flags&64),c=!!(a.flags&128)):e.majorVersion===4&&(o=!!(a.flags&4),c=!!(a.flags&8),l=!!(a.flags&2)||!!(e.flags&ga.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(l&&n.ununsynchronizeRegion(n.pos,s),A.raw??={},a.id==="TXXX"){let u=A.raw.TXXX??={},g=n.readId3V2TextEncoding(),f=n.readId3V2Text(g,s),p=n.readId3V2Text(g,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 g=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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 g=n.readId3V2EncodingAndText(s).split("/"),f=Number.parseInt(g[0],10),p=g[1]&&Number.parseInt(g[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),g=/^\((\d+)\)/.exec(u);if(g){let f=Number.parseInt(g[1]);if(fa[f]!==void 0){A.genre??=fa[f];break}}if(g=/^\d+$/.exec(u),g){let f=Number.parseInt(g[0]);if(fa[f]!==void 0){A.genre??=fa[f];break}}A.genre??=u}break;case"TDRC":case"TDAT":{let u=n.readId3V2EncodingAndText(s),g=new Date(u);Number.isNaN(g.getTime())||(A.date??=g)}break;case"TYER":case"TYE":{let u=n.readId3V2EncodingAndText(s),g=Number.parseInt(u,10);Number.isInteger(g)&&(A.date??=new Date(String(g)))}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(),g;if(e.majorVersion===2){let y=n.readAscii(3);g=y==="PNG"?"image/png":y==="JPG"?"image/jpeg":"image/*"}else g=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:g,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:p})}}break;default:n.pos+=a.size;break}n.pos=s}},Sd=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?yc(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:yc(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 da.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 da.UTF_16_WITH_BOM:if(n[0]===255&&n[1]===254){let a=new TextDecoder("utf-16le"),i=xn(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=xn(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=xn(n.findIndex(i=>i===0),n.length);return this.pos=r+Math.min(a+1,n.length),mt.decode(n.subarray(0,a))}case da.UTF_16_BE_NO_BOM:{let a=new TextDecoder("utf-16be"),i=xn(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 da.UTF_8:{let a=xn(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 ku=class{constructor(e){this.mutex=new zt,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 Yd=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var uB=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);b(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),dA=new DataView(Ee.buffer),lt=t=>[(t%256+256)%256],ge=t=>(dA.setUint16(0,t,!1),[Ee[0],Ee[1]]),Md=t=>(dA.setInt16(0,t,!1),[Ee[0],Ee[1]]),dB=t=>(dA.setUint32(0,t,!1),[Ee[1],Ee[2],Ee[3]]),$=t=>(dA.setUint32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),vr=t=>(dA.setInt32(0,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),ir=t=>(dA.setUint32(0,Math.floor(t/2**32),!1),dA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),$C=t=>(dA.setInt32(0,Math.floor(t/2**32),!1),dA.setUint32(4,t,!1),[Ee[0],Ee[1],Ee[2],Ee[3],Ee[4],Ee[5],Ee[6],Ee[7]]),fB=t=>(dA.setInt16(0,2**8*t,!1),[Ee[0],Ee[1]]),zA=t=>(dA.setInt32(0,2**16*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),vd=t=>(dA.setInt32(0,2**30*t,!1),[Ee[0],Ee[1],Ee[2],Ee[3]]),Od=(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()},Ke=(t,e=!1)=>{let A=Array(t.length).fill(null).map((r,n)=>t.charCodeAt(n));return e&&A.push(0),A},mB=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]},hB=mB(0),pB=t=>[zA(t[0]),zA(t[1]),vd(t[2]),zA(t[3]),zA(t[4]),vd(t[5]),zA(t[6]),zA(t[7]),vd(t[8])],ce=(t,e,A)=>({type:t,contents:e&&new Uint8Array(e.flat(10)),children:A}),Re=(t,e,A,r,n)=>ce(t,[lt(e),dB(A),r??[]],n),wB=t=>t.isQuickTime?ce("ftyp",[Ke("qt "),$(512),Ke("qt ")]):t.fragmented?t.cmaf?ce("ftyp",[Ke("iso5"),$(512),Ke("iso5"),Ke("iso6"),Ke("mp41"),Ke("cmfc"),Ke("dash")]):ce("ftyp",[Ke("iso5"),$(512),Ke("iso5"),Ke("iso6"),Ke("mp41")]):ce("ftyp",[Ke("isom"),$(512),Ke("isom"),t.holdsAvc?Ke("avc1"):[],Ke("mp41")]),Rd=()=>ce("styp",[Ke("iso5"),$(0),Ke("iso5"),Ke("iso6"),Ke("mp41"),Ke("cmfc"),Ke("dash")]),Qd=(t,e)=>{let A=t.maxWrittenEndTimestamp-t.minWrittenTimestamp;return Number.isFinite(A)||(A=0),Re("sidx",1,0,[$(1),$(gA),ir(At(t.minWrittenTimestamp,gA)),ir(0),ge(0),ge(1),$(e&2147483647),$(At(A,gA)),$(0)])},ao=t=>({type:"mdat",largeSize:t}),BB=t=>({type:"free",size:t}),ma=t=>ce("moov",void 0,[JC(t.creationTime,t.trackDatas),...t.trackDatas.map(e=>XC(e,t.creationTime)),t.isFragmented?Qb(t.trackDatas):null,Vb(t)]),JC=(t,e)=>{let A=Math.max(0,...e.map(i=>At(xu(i),gA)+At(i.startTimestampOffset??0,gA))),r=Math.max(0,...e.map(i=>i.track.id))+1,n=!fr(t)||!fr(A),a=n?ir:$;return Re("mvhd",+n,0,[a(t),a(t),$(gA),a(A),zA(1),fB(1),Array(10).fill(0),pB(hB),Array(24).fill(0),$(r)])},xu=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},XC=(t,e)=>{let A=kB(t),r=t.startTimestampOffset!==null&&t.startTimestampOffset>0;return ce("trak",void 0,[eb(t,e),r?tb(t,t.startTimestampOffset):null,Ab(t,e),A.name!==void 0?ce("udta",void 0,[ce("name",[...Nt.encode(A.name)])]):null])},eb=(t,e)=>{let A=At(xu(t),gA)+At(t.startTimestampOffset??0,gA),r=!fr(e)||!fr(A),n=r?ir:$,a;if(t.type==="video"){let s=t.track.metadata.rotation;a=mB(s??0)}else a=hB;let i=2;return t.track.metadata.disposition?.default!==!1&&(i|=1),Re("tkhd",+r,i,[n(e),n(e),$(t.track.id),$(0),n(A),Array(8).fill(0),ge(0),ge(t.track.id),fB(t.type==="audio"?1:0),ge(0),pB(a),zA(t.type==="video"?t.info.width:0),zA(t.type==="video"?t.info.height:0)])},tb=(t,e)=>{let A=At(e,gA),r=At(xu(t),gA),n=!fr(A)||!fr(r),a=n?ir:$,i=n?$C:vr;return ce("edts",void 0,[Re("elst",n?1:0,0,[$(2),a(A),i(-1),zA(1),a(r),i(0),zA(1)])])},Ab=(t,e)=>ce("mdia",void 0,[rb(t,e),Fd(!0,nb[t.type],ib[t.type]),ab(t)]),rb=(t,e)=>{let A=At(xu(t),t.timescale),r=!fr(e)||!fr(A),n=r?ir:$;return Re("mdhd",+r,0,[n(e),n(e),$(t.timescale),n(A),ge(TB(t.track.metadata.languageCode??Xe)),ge(0)])},nb={video:"vide",audio:"soun",subtitle:"text"},ib={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Fd=(t,e,A,r="\0\0\0\0")=>Re("hdlr",0,0,[t?Ke("mhlr"):$(0),Ke(e),Ke(r),$(0),$(0),Ke(A,!0)]),ab=t=>ce("minf",void 0,[ub[t.type](),lb(),fb(t)]),sb=()=>Re("vmhd",0,1,[ge(0),ge(0),ge(0),ge(0)]),ob=()=>Re("smhd",0,0,[ge(0),ge(0)]),cb=()=>Re("nmhd",0,0),ub={video:sb,audio:ob,subtitle:cb},lb=()=>ce("dinf",void 0,[gb()]),gb=()=>Re("dref",0,0,[$(1)],[db()]),db=()=>Re("url ",0,1),fb=t=>{let e=t.compositionTimeOffsetTable.length>1||t.compositionTimeOffsetTable.some(A=>A.sampleCompositionTimeOffset!==0);return ce("stbl",void 0,[mb(t),Sb(t),e?Mb(t):null,e?Rb(t):null,vb(t),Ob(t),_b(t),Yb(t)])},mb=t=>{let e;if(t.type==="video")e=hb($b(t.track.source._codec,t.info.decoderConfig.codec),t);else if(t.type==="audio"){let A=EB(t.track.source._codec,t.muxer.isQuickTime);b(A),e=Ib(A,t)}else t.type==="subtitle"&&(e=xb(eE[t.track.source._codec],t));return b(e),Re("stsd",0,0,[$(1)],[e])},hb=(t,e)=>ce(t,[Array(6).fill(0),ge(1),ge(0),ge(0),Array(12).fill(0),ge(e.info.width),ge(e.info.height),$(4718592),$(4718592),$(0),ge(1),Array(32).fill(0),ge(24),Md(65535)],[Jb[e.track.source._codec](e),pb(e),fp(e.info.decoderConfig.colorSpace)?wb(e):null]),pb=t=>t.info.pixelAspectRatio.num===t.info.pixelAspectRatio.den?null:ce("pasp",[$(t.info.pixelAspectRatio.num),$(t.info.pixelAspectRatio.den)]),wb=t=>ce("colr",[Ke(t.muxer.isQuickTime?"nclc":"nclx"),ge(mr[t.info.decoderConfig.colorSpace.primaries]),ge(hr[t.info.decoderConfig.colorSpace.transfer]),ge(pr[t.info.decoderConfig.colorSpace.matrix]),t.muxer.isQuickTime?[]:lt((t.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),Bb=t=>t.info.decoderConfig&&ce("avcC",[...ft(t.info.decoderConfig.description)]),Pb=t=>t.info.decoderConfig&&ce("hvcC",[...ft(t.info.decoderConfig.description)]),lB=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,l=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 Re("vpcC",1,0,[lt(r),lt(n),lt(o),lt(c),lt(l),lt(u),ge(0)])},yb=t=>ce("av1C",Yp(t.info.decoderConfig.codec)),Ib=(t,e)=>{let A=0,r,n=16,a=vt.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),ge(1),ge(A),ge(0),$(0),ge(e.info.numberOfChannels),ge(n),ge(0),ge(0),ge(e.info.sampleRate<2**16?e.info.sampleRate:0),ge(0)];else{let i=a?0:-2;r=[Array(6).fill(0),ge(1),ge(A),ge(0),$(0),ge(e.info.numberOfChannels),ge(Math.min(n,16)),Md(i),ge(0),ge(e.info.sampleRate<2**16?e.info.sampleRate:0),ge(0),a?[$(1),$(n/8),$(e.info.numberOfChannels*n/8)]:[$(0),$(0),$(0)],$(2)]}return ce(t,r,[Xb(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},_d=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=[...lt(e),...lt(21),...dB(0),...$(0),...$(0)];if(t.info.decoderConfig.description){let r=ft(t.info.decoderConfig.description);A=[...A,...lt(5),...Od(r.byteLength),...r]}return A=[...ge(1),...lt(0),...lt(4),...Od(A.length),...A,...lt(6),...lt(1),...lt(2)],A=[...lt(3),...Od(A.length),...A],Re("esds",0,0,A)},an=t=>ce("wave",void 0,[Db(t),Cb(t),ce("\0\0\0\0")]),Db=t=>ce("frma",[Ke(EB(t.track.source._codec,t.muxer.isQuickTime))]),Cb=t=>{let{littleEndian:e}=kA(t.track.source._codec);return ce("enda",[ge(+e)])},bb=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){b(s.byteLength>=18);let o=ft(s),c=Ec(o);e=c.outputChannelCount,A=c.preSkip,r=c.inputSampleRate,n=c.outputGain,a=c.channelMappingFamily,c.channelMappingTable&&(i=c.channelMappingTable)}return ce("dOps",[lt(0),lt(e),ge(A),$(r),Md(n),lt(a),...i])},Eb=t=>{let e=t.info.decoderConfig?.description;b(e);let A=ft(e);return Re("dfLa",0,0,[...A.subarray(4)])},rr=t=>{let{littleEndian:e,sampleSize:A}=kA(t.track.source._codec),r=+e;return Re("pcmC",0,0,[lt(r),lt(8*A)])},Tb=t=>{let e=Tc(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 xe(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])},kb=t=>{let e=kc(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 xe(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])},xb=(t,e)=>ce(t,[Array(6).fill(0),ge(1)],[tE[e.track.source._codec](e)]),Gb=t=>ce("vttC",[...Nt.encode(t.info.config.description)]);var Sb=t=>Re("stts",0,0,[$(t.timeToSampleTable.length),t.timeToSampleTable.map(e=>[$(e.sampleCount),$(e.sampleDelta)])]),Yb=t=>{if(t.samples.every(A=>A.type==="key"))return null;let e=[...t.samples.entries()].filter(([,A])=>A.type==="key");return Re("stss",0,0,[$(e.length),e.map(([A])=>$(A+1))])},vb=t=>Re("stsc",0,0,[$(t.compactlyCodedChunkTable.length),t.compactlyCodedChunkTable.map(e=>[$(e.firstChunk),$(e.samplesPerChunk),$(1)])]),Ob=t=>{if(t.type==="audio"&&t.info.requiresPcmTransformation){let{sampleSize:e}=kA(t.track.source._codec);return Re("stsz",0,0,[$(e*t.info.numberOfChannels),$(t.samples.reduce((A,r)=>A+At(r.duration,t.timescale),0))])}return Re("stsz",0,0,[$(0),$(t.samples.length),t.samples.map(e=>$(e.size))])},_b=t=>t.finalizedChunks.length>0&&Me(t.finalizedChunks).offset>=2**32?Re("co64",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>ir(e.offset))]):Re("stco",0,0,[$(t.finalizedChunks.length),t.finalizedChunks.map(e=>$(e.offset))]),Mb=t=>Re("ctts",1,0,[$(t.compositionTimeOffsetTable.length),t.compositionTimeOffsetTable.map(e=>[$(e.sampleCount),vr(e.sampleCompositionTimeOffset)])]),Rb=t=>{let e=1/0,A=-1/0,r=1/0,n=-1/0;b(t.compositionTimeOffsetTable.length>0),b(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,At(s.timestamp,t.timescale)),n=Math.max(n,At(s.timestamp+s.duration,t.timescale))}let a=Math.max(-e,0);return n>=2**31?null:Re("cslg",0,0,[vr(a),vr(e),vr(A),vr(r),vr(n)])},Qb=t=>ce("mvex",void 0,t.map(Fb)),Fb=t=>Re("trex",0,0,[$(t.track.id),$(1),$(0),$(0),$(0)]),zd=(t,e)=>ce("moof",void 0,[zb(t),...e.map(Nb)]),zb=t=>Re("mfhd",0,0,[$(t)]),PB=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},Nb=t=>ce("traf",void 0,[Hb(t),Ub(t),qb(t)]),Hb=t=>{b(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:PB(A)};return Re("tfhd",0,e,[$(t.track.id),$(r.duration),$(r.size),$(r.flags)])},Ub=t=>(b(t.currentChunk),Re("tfdt",1,0,[ir(At(t.currentChunk.startTimestamp,t.timescale))])),qb=t=>{b(t.currentChunk);let e=t.currentChunk.samples.map(h=>h.timescaleUnitsToNextSample),A=t.currentChunk.samples.map(h=>h.size),r=t.currentChunk.samples.map(PB),n=t.currentChunk.samples.map(h=>At(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],l=a.size>1,u=i.size>1,g=!c&&s.size>1,f=o.size>1||[...o].some(h=>h!==0),p=0;return p|=1,p|=4*+c,p|=256*+l,p|=512*+u,p|=1024*+g,p|=2048*+f,Re("trun",1,p,[$(t.currentChunk.samples.length),$(t.currentChunk.offset-t.currentChunk.moofOffset||0),c?$(r[0]):[],t.currentChunk.samples.map((h,y)=>[l?$(e[y]):[],u?$(A[y]):[],g?$(r[y]):[],f?vr(n[y]):[]])])},yB=t=>ce("mfra",void 0,[...t.map(Lb),jb()]),Lb=(t,e)=>Re("tfra",1,0,[$(t.track.id),$(63),$(t.finalizedChunks.length),t.finalizedChunks.map(r=>[ir(At(r.samples[0].timestamp,t.timescale)),ir(r.moofOffset),$(e+1),$(1),$(1)])]),jb=()=>Re("mfro",0,0,[$(0)]),IB=()=>ce("vtte"),DB=(t,e,A,r,n)=>ce("vttc",void 0,[n!==null?ce("vsid",[vr(n)]):null,A!==null?ce("iden",[...Nt.encode(A)]):null,e!==null?ce("ctim",[...Nt.encode(uB(e))]):null,r!==null?ce("sttg",[...Nt.encode(r)]):null,ce("payl",[...Nt.encode(t)])]),CB=t=>ce("vtta",[...Nt.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=Wb(r);n&&e.push(n)}else if(A==="mdta"){let n=Zb(r);n&&e.push(n)}else(A==="udta"||A==="auto"&&t.isQuickTime)&&Kb(e,t.output._metadataTags);return e.length===0?null:ce("udta",void 0,e)},Kb=(t,e)=>{for(let{key:A,value:r}of xs(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=Nt.encode(e);return ce(t,[ge(A.length),ge(TB("und")),Array.from(A)])},gB={"image/jpeg":13,"image/png":14,"image/bmp":27},bB=(t,e)=>{let A=[];for(let{key:r,value:n}of xs(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",[$(gB[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),ge(0),ge(n),ge(t.tracksTotal??0),ge(0)])});break;case"discNumber":e||A.push({key:"disc",value:ce("data",[$(0),$(0),ge(0),ge(n),ge(t.discsTotal??0),ge(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",[$(gB[n.mimeType]??0),$(0),Array.from(n.data)])}))}return A},Wb=t=>{let e=bB(t,!1);return e.length===0?null:Re("meta",0,0,void 0,[Fd(!1,"mdir","","appl"),ce("ilst",void 0,e.map(A=>ce(A.key,void 0,[A.value])))])},Zb=t=>{let e=bB(t,!0);return e.length===0?null:ce("meta",void 0,[Fd(!1,"mdta",""),Re("keys",0,0,[$(e.length)],e.map(A=>ce("mdta",[...Nt.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),...Nt.encode(t)]),$b=(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"}},Jb={avc:Bb,hevc:Pb,vp8:lB,vp9:lB,av1:yb},EB=(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"}},Xb=(t,e)=>{switch(t){case"aac":return _d;case"mp3":return _d;case"opus":return bb;case"vorbis":return _d;case"flac":return Eb;case"ac3":return Tb;case"eac3":return kb}if(e)switch(t){case"pcm-s24":return an;case"pcm-s24be":return an;case"pcm-s32":return an;case"pcm-s32be":return an;case"pcm-f32":return an;case"pcm-f32be":return an;case"pcm-f64":return an;case"pcm-f64be":return an}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},eE={webvtt:"wvtt"},tE={webvtt:Gb},TB=t=>{b(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(){b(!this.started),this.target._start(),this.started=!0}write(e){b(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 b(this.started&&!this.finalized),this.target._flush()}async finalize(){b(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 Gu(this,e)}},Nd=2**16,Hd=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(Nd,{maxByteLength:Hd})}catch{this._buffer=new ArrayBuffer(Nd),this._supportsResize=!1}else this._buffer=new ArrayBuffer(Nd);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>Hd)throw new Error(`ArrayBuffer exceeded maximum size of ${Hd} 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)}},k8=2**24;var Gu=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 gA=57600,AE=2082844800,kB=t=>{let e={},A=t.track;return A.metadata.name!==void 0&&(e.name=A.metadata.name),e},At=(t,e,A=!0)=>{let r=t*e;return A?Math.round(r):r},Su=class extends ku{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=gt(),this.creationTime=Math.floor(Date.now()/1e3)+AE,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 pa,this.isCmaf=A instanceof ha,this.minimumFragmentDuration=A._options.minimumFragmentDuration??(A instanceof ha?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(b(r),this.format._options.onFtyp&&r.writer.startTrackingWrites(),r.writeBox(wB({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||(b(this.writer),b(this.boxWriter),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ao(!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 Sc({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(g=>g.track===e);if(n)return n;_p(r),b(r),b(r.decoderConfig);let a={...r.decoderConfig};b(a.codedWidth!==void 0),b(a.codedHeight!==void 0);let i=!1;if(e.source._codec==="avc"&&!a.description){let g=Ui(A.data);if(!g)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=qp(g),i=!0}else if(e.source._codec==="hevc"&&!a.description){let g=qi(A.data);if(!g)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=Vp(g),i=!0}let s=yp(1/(e.metadata.frameRate??gA),1e6).den,o=a.displayAspectWidth,c=a.displayAspectHeight,l=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:l,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((g,f)=>g.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;Mp(r),b(r),b(r.decoderConfig);let a={...r.decoderConfig},i=!1;if(e.source._codec==="aac"&&!a.description){let o=RA(_t.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],l=jr[o.channelConfiguration];if(c===void 0||l===void 0)throw new Error("Invalid ADTS frame header.");a.description=Ep({objectType:o.objectType,sampleRate:c,numberOfChannels:l}),i=!0}let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:r.decoderConfig.numberOfChannels,sampleRate:r.decoderConfig.sampleRate,decoderConfig:a,requiresPcmTransformation:!this.isFragmented&&vt.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;Rp(A),b(A),b(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=[...Ni(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=Dc(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 l=RA(_t.tempFromBytes(i));if(!l)throw new Error("Expected ADTS frame, didn't get one.");let u=l.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 g=s-a.info.expectedNextPcmPacketTimestamp;if(g<.01)s=a.info.expectedNextPcmPacketTimestamp;else{let f=await this.padWithSilence(a,a.info.expectedNextPcmPacketTimestamp,g);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=At(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)b(c.timestamp<=A),b(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,l)=>c-l),a=n[0],i=n[1]??a;if(A<i)break;if(e.lastCueEndTimestamp<a){this.auxWriter.seek(0);let c=IB();this.auxBoxWriter.writeBox(c);let l=this.auxTarget._getSlice(0,this.auxWriter.getPos()),u=this.createSampleForTrack(e,l,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 l=e.cueQueue[c];if(l.timestamp>=i)break;Yd.lastIndex=0;let u=Yd.test(l.text),g=l.timestamp+l.duration,f=e.cueToSourceId.get(l);if(f===void 0&&i<g&&(f=e.nextSourceId++,e.cueToSourceId.set(l,f)),l.notes){let h=CB(l.notes);this.auxBoxWriter.writeBox(h)}let p=DB(l.text,u?a:null,l.identifier??null,l.settings??null,f??null);this.auxBoxWriter.writeBox(p),g===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:At(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=At(i.duration,e.timescale);n+=s}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:n,sampleDelta:1});else{let a=Me(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=At(a.timestamp-a.decodeTimestamp,e.timescale),s=At(a.duration,e.timescale);if(e.lastTimescaleUnits!==null){b(e.lastSample);let o=At(a.decodeTimestamp,e.timescale,!1),c=Math.round(o-e.lastTimescaleUnits);if(b(c>=0),e.lastTimescaleUnits+=c,e.lastSample.timescaleUnitsToNextSample=c,!this.isFragmented){let l=Me(e.timeToSampleTable);if(b(l),l.sampleCount===1){l.sampleDelta=c;let g=e.timeToSampleTable[e.timeToSampleTable.length-2];g&&g.sampleDelta===c&&(g.sampleCount++,e.timeToSampleTable.pop(),l=g)}else l.sampleDelta!==c&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:c}));l.sampleDelta===s?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:s});let u=Me(e.compositionTimeOffsetTable);b(u),u.sampleCompositionTimeOffset===i?u.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:i})}}else e.lastTimescaleUnits=At(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,b(e.lastSample),b(e.lastTimescaleUnits!==null),A!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){b(A.type==="key");let n=At(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(b(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}),b(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(b(!this.isFragmented),b(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+At(n.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||Me(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)b(r.data),this.writer.write(r.data),r.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(b(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){b(this.isFragmented);let A=this.nextFragmentNumber++;if(A===1){let f=this.initBoxWriter??this.boxWriter;b(f),this.format._options.onMoov&&f.writer.startTrackingWrites(),this.ensureOneEnabledTrack();let p=ma(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){b(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(Rd()),y=this.boxWriter.measureBox(Qd(this,0));this.segmentHeaderSize=h+y,this.writer.seek(this.segmentHeaderSize)}}b(this.writer),b(this.boxWriter);let r=this.trackDatas.filter(f=>f.currentChunk),n=zd(A,r),a=this.writer.getPos(),i=a+this.boxWriter.measureBox(n),s=i+xA,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,l=c>=2**32;if(l)for(let f of r)f.currentChunk.offset+=yr-xA;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=zd(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)}b(this.writer.getPos()===i),this.format._options.onMdat&&this.writer.startTrackingWrites();let g=ao(l);g.size=c,this.boxWriter.writeBox(g),this.writer.seek(i+(l?yr:xA));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(b(this.writer),b(this.boxWriter),this.allTracksAreKnown()){if(!this.mdat){this.ensureOneEnabledTrack();let r=ma(this),a=this.boxWriter.measureBox(r)+this.computeSampleTableSizeUpperBound()+4096;b(this.ftypSize!==null),this.writer.seek(this.ftypSize+a),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=ao(!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(){b(this.fastStart==="reserve");let e=0;for(let A of this.trackDatas){let r=A.track.metadata.maximumPacketCount;b(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),b(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(b(this.writer),b(this.boxWriter),this.fastStart==="in-memory"){this.mdat=ao(!1);let A;for(let n=0;n<2;n++){let a=ma(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)b(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=ma(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)b(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(Rd()),this.boxWriter.writeBox(Qd(this,A))}else{let A=this.writer.getPos(),r=yB(this.trackDatas);this.boxWriter.writeBox(r);let n=this.writer.getPos()-A;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(n)}else{b(this.mdat);let A=this.boxWriter.offsets.get(this.mdat);b(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=ma(this);if(this.fastStart==="reserve"){b(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(BB(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 wa=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})()}},Ba=class extends wa{constructor(e){if(super(),this._connectedTrack=null,!Ot.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Ot.join(", ")}.`);this._codec=e}},xB=(t,e)=>{if(t.metadata.hasOnlyKeyPackets&&e.type!=="key")throw new Error("Cannot add non-key packets to a hasOnlyKeyPackets video track.")};var Ud=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,g=a.transform?.height,f=a.transform?.fit??"fill";s&&i!=="passThrough"&&(b(this.outputWidth),b(this.outputHeight),b(i!=="deny"),u=this.outputWidth,g=this.outputHeight,f=i);let p=await e.transform({width:u,height:g,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 l=a.transform?.frameRate;if(l!==void 0){let u=e.timestamp+e.duration,g=Gg(e.timestamp,l);if(this.frameRateLastSample!==null)if(g<=this.frameRateLastTimestamp){this.frameRateLastSample.close(),this.frameRateLastSample=e.clone(),this.frameRateLastEndTimestamp=u;return}else await this.padFrameRate(g,r);e===n&&(e=e.clone(),A=!0),e.setTimestamp(g),e.setDuration(1/l),this.frameRateLastSample?.close(),this.frameRateLastSample=e.clone(),this.frameRateLastTimestamp=g,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),b(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 l=a.clone(),u=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(l,c)).then(()=>this.customEncoderQueueSize--).catch(g=>this.error??=g).finally(()=>{l.close()});this.customEncoderQueueSize>=4&&await u}else{b(this.encoder);let l=a.toVideoFrame(),u=ye(this.preciseTimings,l.timestamp,f=>f.microsecondTimestamp),g=u!==-1?this.preciseTimings[u]:null;if(g&&g.microsecondTimestamp===l.timestamp?(g.timestamp!==a.timestamp&&(g.timestampIsValid=!1),g.duration!==a.duration&&(g.durationIsValid=!1)):(this.preciseTimings.splice(u+1,0,{microsecondTimestamp:l.timestamp,timestamp:a.timestamp,duration:a.duration,timestampIsValid:!0,durationIsValid:!0}),this.preciseTimings.length>128&&this.preciseTimings.shift()),!this.alphaEncoder)this.encoder.encode(l,c),l.close();else if(!!l.format&&!l.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(l,c),l.close();else{let p=l.displayWidth,h=l.displayHeight;this.splitter||(this.splitter=new Yu(p,h));let{colorFrame:y,alphaFrame:w}=await this.splitter.update(l);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;b(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=Dd({...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=Du.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.");xB(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,l=(g,f,p)=>{let h={};if(f){let C=new Uint8Array(f.byteLength);f.copyTo(C),h.alpha=C}let y=Fe.fromEncodedChunk(g,h),w=ye(this.preciseTimings,g.timestamp,C=>C.microsecondTimestamp),D=w!==-1?this.preciseTimings[w]:null,E=null;this.emittedEncoderPackets===0&&y.type==="delta"&&p?.decoderConfig&&(E=Jr(this.encodingConfig.codec,p.decoderConfig,y.data)),(D&&D.microsecondTimestamp===g.timestamp||E!==null)&&(y=y.clone({timestamp:D?.timestampIsValid?D.timestamp:void 0,duration:D?.durationIsValid?D.duration:void 0,type:E??void 0})),xB(this.source._connectedTrack,y),this.encodingConfig.onEncodedPacket?.(y,p),this.lastMuxerPromise=this.muxer.addEncodedVideoPacket(this.source._connectedTrack,y,p).catch(C=>{this.error??=C}),this.emittedEncoderPackets++},u=new Error("Encoding error").stack;if(this.encoder=new VideoEncoder({output:(g,f)=>{if(!this.alphaEncoder){l(g,null,f);return}let p=this.alphaFrameQueue.shift();b(p!==void 0),p?(this.alphaEncoder.encode(p,{keyFrame:g.type==="key"}),c++,p.close(),i.push({chunk:g,meta:f})):c===0?l(g,null,f):(s.push(o+c),i.push({chunk:g,meta:f}))},error:g=>{g.stack=u,this.error??=g}}),this.encoder.configure(A),this.encodingConfig.alpha==="keep"){let g=new Error("Encoding error").stack;this.alphaEncoder=new VideoEncoder({output:(f,p)=>{c--;let h=i.shift();for(b(h!==void 0),l(h.chunk,f,h.meta),o++;s.length>0&&s[0]===o;){s.shift();let y=i.shift();b(y!==void 0),l(y.chunk,null,y.meta)}},error:f=>{f.stack=g,this.error??=f}}),this.alphaEncoder.configure(A)}}b(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=Gg(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}},GB=!1,Yu=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&&!GB)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,GB=!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){b(this.gl),b(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 b(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,24 +95,24 @@
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){b(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(){b(this.gl),b(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(){b(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 b(this.gl),b(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){b(this.gl),b(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),b(s[A*r]===128),b(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([`(${Vb.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=gt();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()}};Su.forceCpu=!0;var Vb=()=>{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 l=i*s,u=Math.ceil(i/2),g=Math.ceil(s/2),f=l+u*g*2,p=new Uint8Array(f);for(let D=0,E=3;D<l;D++,E+=4)p[D]=a[E];p.fill(128,l);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 l=o.includes("P10"),u=o.includes("P12"),g=l||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*g,D=y*g,E=h*g,C=w+D*2,G=o.replace("A",""),S=Math.ceil(i/2),k=Math.ceil(s/2),M=S*k,R=M*g,N=E+2*R,V=new Uint8Array(N),F=C;V.set(a.subarray(F,F+E),0);let K=E,L=l?512:u?2048:128;g===1?V.fill(L,K):new Uint16Array(V.buffer,K,2*M).fill(L);let _=l?"I420P10":u?"I420P12":"I420",W=new VideoFrame(a.subarray(0,C),{format:G,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 io=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.");rB(A),super(A.codec),this._encoder=new Nd(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 RA(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,!er.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${er.join(", ")}.`);this._codec=e}},ao=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 so=class extends ha{constructor(e){if(super(),this._connectedTrack=null,!Lr.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${Lr.join(", ")}.`);this._codec=e}};var Ba=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Ot.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>er.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>Lr.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[...Ot,...hc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...Lr]}_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[...Ot,...hc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...Lr]}},ma=class extends Pa{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Ot,...er]}_codecUnsupportedHint(e){return new ya().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var Kb=["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=Sg(this.metadata.group),r=Sg(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}},Yu=class extends Ia{constructor(e,A,r,n){super(e,A,"video",r,n)}},vu=class extends Ia{constructor(e,A,r,n){super(e,A,"audio",r,n)}},Ou=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)}},Hd=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&&Ip(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.")},oo=class extends ZA{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 zt,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 tA||e.target instanceof qn))throw new TypeError("options.target must be a Target or a PathedTarget.");if(e.target instanceof tA&&this._rememberTarget(e.target),e.initTarget!==void 0&&!(e.initTarget instanceof tA)&&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 tA&&this._rememberTarget(this._initTarget),this._muxer=e.format._createMuxer(this)}_getTargetValidated(e){b(this._target instanceof qn);let A=this._target.getTarget(e),r=n=>{if(!(n instanceof tA))throw new TypeError("getTarget must return a Target.");return n};return A instanceof Promise?A.then(r):r(A)}async _getTarget(e){b(this._target instanceof qn);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(b(this._initTarget!==null),this._initTarget instanceof tA)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 tA)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 Un(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(Hd(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 Yu(this._tracks.length+1,this,e,r))}addAudioTrack(e,A={}){if(!(e instanceof wa))throw new TypeError("source must be an AudioSource.");Hd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new vu(this._tracks.length+1,this,e,r))}addSubtitleTrack(e,A={}){if(!(e instanceof so))throw new TypeError("source must be a SubtitleSource.");Hd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Ou(this._tracks.length+1,this,e,r))}setMetadataTags(e){if(yp(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 Kb){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 kB=Symbol.for("mediabunny loaded");globalThis[kB]&&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[kB]=!0;var Wb=.011764705882352941,Zb=.002,$b=.99,Jb=255;function xB(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 l=0;l<i;l++){let u=((a+c)*t.width+(n+l))*4,g=c*i+l,f=e[g],p=Math.abs(f),h=Number.isFinite(r.logoValue)?r.logoValue:f<0?0:Jb;if(Math.max(0,p-Wb)*o<Zb)continue;let w=Math.min(p*o,$b),D=1-w;for(let E=0;E<3;E++){let G=(t.data[u+E]-w*h)/D;t.data[u+E]=Math.max(0,Math.min(255,Math.round(G)))}}}var GB="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";var SB="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";var Xb={"36-v2":36*36,48:48*48,96:96*96,"96-20260520":96*96},YB={"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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"},vr=new Map;function vB(t,e){let A=OB(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),l=Math.min(s,e-1-s);c>l&&([c,l]=[l,c]);let u=c*r-c*(c-1)/2+(l-c);i[s*e+o]=a[u]/32767}return i}function OB(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 _u(t){let e=String(t);if(e==="96-outline-dark")return vr.has(e)||vr.set(e,vB(SB,96)),new Float32Array(vr.get(e));if(e==="96-outline-light")return vr.has(e)||vr.set(e,vB(GB,96)),new Float32Array(vr.get(e));if(!(e in YB))return null;if(!vr.has(e)){let A=OB(YB[e]),r=Xb[e],n=new Float32Array(A.buffer,A.byteOffset,r);vr.set(e,new Float32Array(n))}return new Float32Array(vr.get(e))}var eE=1e-8;function _B(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 RB(t,e){if(t.length!==e.length||t.length===0)return 0;let A=_B(t),r=_B(e),n=Math.sqrt(A.variance*r.variance)*t.length;if(n<eE)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 QB(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 MB(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 Ud({imageData:t,alphaMap:e,region:A}){let r=QB(t,A);return r.length===0||r.length!==e.length?0:RB(r,e)}function qd({imageData:t,alphaMap:e,region:A}){let r=QB(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=MB(r,n,n),i=MB(e,n,n);return RB(a,i)}var tE=[{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}],AE=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})})}),Ld=(t,e,A)=>Math.max(e,Math.min(A,Math.round(t)));function jd(t,e){return t===1920&&e===1080}function uo(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0?[]:aE([...nE(t,e),...sE(t,e)])}function Ru(t,e,A,r=1,n={}){let a=Ld(t.size*r,24,Math.min(e,A)),i=Ld(t.marginRight*r,0,e-a),s=Ld(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 co(t){return t.x>=0&&t.y>=0&&t.x+t.size<=t.videoWidth&&t.y+t.size<=t.videoHeight}function Qu(t,e,A){return{...t,videoWidth:e,videoHeight:A}}function rE(t,e){return`${t}x${e}`}function nE(t,e){let A=Math.min(t/1920,e/1080),r=jd(t,e),n=AE[rE(t,e)]||{};return tE.map((a,i)=>{let s=n[a.id]||{};return Qu(Ru(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(co)}function iE(t){return`${t.size}:${t.marginRight}:${t.marginBottom}`}function Mu(t){return Number.isFinite(t?.sourcePriority)?t.sourcePriority:100}function aE(t){let e=new Map;for(let A of t.filter(co)){let r=iE(A),n=e.get(r);(!n||Mu(A)<Mu(n))&&e.set(r,A)}return[...e.values()].sort((A,r)=>{let n=Mu(A)-Mu(r);return n!==0?n:0})}function sE(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=>Qu(Ru(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"binary-prior",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(co):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=>Qu(Ru(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(co):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-animated-compact-24",label:"720x1280 animated compact, 24px, margin 48",size:24,marginRight:48,marginBottom:48,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=>Qu(Ru(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:A.sourceFamily||"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(co):[]}var oE=Object.freeze(["veo-text-23x10","veo-text-68x30","veo-text-99x43"]),FB=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":"AQMCAQEAAAABAgMDAQEBAQEBAQEBAQEBAQEBAQIBAgMAAQECAQEBAQEBAQEAAAAAAAAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdXUpJTlYyAwUCAgEBAQEBAQEBAQEBAQEBAQITOD07NzIfAQEBAQEBAQEAAAAAAAAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAopqKeoKKGEAICAgEBAQEBAQEBAQEBAAAAAAFcqJ2Zm6FqAQEBAQEBAQEAAAAAAAAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAHfZqXl5WNFwAHAgICAgICAQEBAQEBAAAAAAN4kYeJipM+AQEBAQEBAQEAAAAAAAAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAOpqQlZGSRgQGAgICAgICAQEBAQAAAAABABmWjoyKkosVAQEBAQEBAQEAAQECAQAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMAFpaNkI6UcwYEAgICAgICAgEBAQEBAAAAAEidjYuMlWwDAQEBAQEBAQEAAQEBAQAAAQAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAXKYjZGQkB0BAgICAgICAgIBAAAAAAABA4OWjY+LmDYBAAEAAAAAAQEAAQEBAQEAAQAAAAAAAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAD2Xj5CQlU8BAgICAwICAgIBAAAAAQEBDJiNj5CShAsBAQEAAAEBAQEBAQEBAQEBAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAAAAAAAAAAAAAAAAAAAAAQEAAA2Mko6SlnwEAgMCAwMCAgIAAAAAAAAAUJeOj46bTQEBAQEAAQEBAQEBAQECAgEBAQEBAAAAAAABAQAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAABAQEBAAAAAAAAAAAAAQEAAABkmI6RkpMkAwIDAwMCAgEAAAEBAQIDeZSOjpGMJAABAgEAAQABAAIAAAICAQEBAQEBAgABAQEBAAAAAAAAAAAAAAAAAAABAQEBAQAAAAAAAAECAQEBAQAAAAAAAAAAAQEAAAAum4uRjJdeCQMEBAMCAgIBAQABAQAklZCOjpVxAwECAgEBAQABAAAAAAMDAgEBAgIBAQIBAQEAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAAECAAECAgAAAAAAAAAAAQEAAAIIh46Ri5F9DgQDBQQCAgIBAQAAAAFNnI6PkJdBAQECAgEBAgEBAAAAAQMHDQ8MCAMBAQEBAQABAQAAAAAAAAAAAAEBAQABAQEBAgMGCAcGBAIAAAEBAAEAAAAAAAAAAAEAAQICYJmSjI2OKAQEBAMCAgIBAQEBAguAlY+SkooYAQECAQICAwIBARxLaYaJiouJiHJGFwICBAIBAAEAAAAAAAAAAAEBAQIBARQ9Z36JjI6NhG9DGAADAgMAAAAAAAAAAQEAAAMAK5SSjo6QVQUBAwMCAgIBAQEBATCXj5COlmQHAQECAgEBAwEWVomSk5ORkZKTlJuchlYPAgEBAQEAAAAAAAAAAAEBAgAWUImWmpOUlZaXl5udkV4aAAQAAAAAAAAAAAAAAAIFAoCZkI+QfxAAAQIBAgIBAQEBAmKZjpGSmjIBAQECAQICAy18nZCQkJGRkZGQkJGTmJx7JgEDAQEAAQAAAQEBAQEBBC96mZSTkpKTlJSUlZGQkZiNRwQAAAAAAAAAAAAAAAMDAlqakI6QmTIBAQIBAgICAQEBDIiUj5KUgQ0BAQICAgMBMJeVkI+Pj5KSkpOSkZePkY+bkjcCAAAAAQAAAAEBAQECQpGVi5GRkpSUlJOTl5GQkY6UlmYBAAAAAAAAAQEBAQICAhyYj46RlFwBAQEBAgICAgIDRZSRkJGXUwIBAQEBAgMYlZSVlo+akYVoV0tceZSbjJKMk5U1AAEAAQEBAgIAAgFClZOTj4yOk4d5bG16hpaXj46OkZldBgIBAQEBAQEBAQIBAgd9j42PkIAPAQEBAgICAgIBaJaRkZGPJgABAQECAA1zlpCTkJVtPBMDAAAABiNwmZCUiZCLEQEDAQEBAgEDACiTkI+Si5FzRhwLBAQLD0OBnZONkZKdQgIAAQAAAAABAQIBAQFRmI+Rj5EtAQEBAgIDBAEUjZGQj5V2BAACAQECAEOYiZaPj1gFAQECAQMBAAACUZqUjImWWAUAAgECAQECB32Ujo+LkFARAAABAAAAAgASZ5mPiY+XjBwBAgAAAAABAQEBAQApjpCSjJNeAQEBAgICAgI3lo6RjpREAAIBAQEBD46Li4+UXQQBAQEAAQEAAgMDAlmYj5CIlBsBAAEBAQEBQpSIjYuPawIAAgEAAAAAAwECCGSTjo+PnF4DAQAAAQEBAQIBAQEJdJiNjI2FDwEBAQIBAwNrlZCSkYoXBAIBAAIDU5mLj492DAECAgMCAwIBAgMFBQeFkouOlkcAAQEBAQEDfZOJjI18EgEBAQEBAQEBAQECARZ2lY6RkogXAAAAAQEBAgEBAQEAS5mSjY2OOAEBAgIEAhWSk5CRkGkFAQECBgEBfJSNj5Q3AgABAQEBAQEBAgICAwJXlY6NlmoEAAEBAAEkmIyMjYxNAAEBAQECAQIBAQIDAgE2lI2NjpVEAAEBAQEBAQEBAgIAHpKUjY6UagEBAQEDAUWZko6NjjEAAQMDBwAWkpGOlIAcBQMCAgICAgIBAgQCBAJBjoyQj4IKAAABAAFbmIqOjoEVAAEBAQEBAQICAQICAgMIfpKPj5RuAQABAAABAQEBAQIBA3WbkI2NhAUBAQIBAXOdkI6NjQoDAgMDAQAxk42Sj4tqWllQUFBRU1RUVVVRT1dxjoyQk5IXAAABAAF0kYuPlm4BAQEBAQECAQICAgICAgMAVZ2Ojo6AAwEBAAAAAQEBAQEBAkChjo2PlDgAAgIAEJCTkZCVagQCAgIBAQBTk46SkI6Sl5OUlZWVlJSTk5SSlJSSkpKTlJkkAQEAAAF+joqOmE4AAQEBAQEBAQEBAQEBAgIBNZ6NjY2LDgECAAAAAAEBAQEBARqQjo6Rk2QDAwUDQ5eOj4+YMwIBAgEBAgBZko6RkJOXl5OPkJCQkJCQkJCPkI+QkpKQj5gwAAAAAAKAj4qNmEEAAwEBAQEBAQEBAQEBAQEAK5mMjY6MFAECAAAAAAEBAQIDAwNpkI2Qj4YRAAQEe5SNjJaDBgIBAgEBAQJckY6Qj5eWmJmWlZaWlpaWl5eXmJmampiXmZo3AAABAAKBj4qNlzgABQEBAQEBAQEBAQEBAQEBJ5aLi46NGAECAAAAAAEBAQICAwE3ko2PjZM4AAIci46LjpdbAAEBAwIBAAJdk4+RkGgkKSopKSkqKisqKywtLSwtLiorPEAUAQAAAAKAj4qNlT4BBgECAQEBAQEBAQEBAQEBKpaLi4+NFwIBAQEBAQEBAgICAQEHkZGRj5BoAgNNl42OjZQkAAEBAgIBAgNWk4+RkGwLAQIBAQEAAAAAAAEBAAAAAQAAAQEBAQAAAAF6kIqPkVMBAwEBAQEBAAABAQEBAQEBP5aMio+IDQEBAQEBAAEBAQIBAQIBdZCMjY2EDgF1ko2RjH0GAAEBAgICAgJAlI+RkH0OAgICAgICAQEBAQEBAQEBAQEBAAAAAAAAAABtk4qOjHAAAwEBAQEBAAABAQEBAQEAXJiPi5J7BAEBAQEBAQAAAQEBAQEBMpWRj4yWOBCPj5CQmU4AAwICAgIDAgEbko+Rj4ojAgQCAgICAgICAwMEAwMEBAMBAQAAAAAAAABLlYqMkoYZAQABAQIBAQEBAQECAgATf5KPjJVdAQEBAQABAQAAAQEBAQEBA4OSj46QbUuOjo6PlCIBAgEBAgICAQIKjo2Rj5RDAQECAQECAgICAgICAQIQCgIBAQEBAAAAAAEskI2PjpFTAAEBAQICAQECAgEBAQE5koqQj5VBAQEBAAAAAAAAAAAAAAAAAliZi5COgHCPko6Yaw0AAQEBAgICAQEEXZqQkJ2EHgMDBAMDAwMCAwICABZzdksiGwUBAQEBAQEGd5ONj5GMJgAIAgQEBAMFAwIEARSEkoyMjoMRAAAAAAAAAAAAAAAAAAAAACeUj4+OiYSNjY6XPQcBAQEBAgICAQIBHYqUjYmafBkAAQICAwMCAwUBCGKXl5uZiB4AAwEBAQEEOZaRk46ShxgABAUEBAQDAwYBFnmVipCKlVADAAEAAAAAAAAAAAAAAAAAAgV8lI+PjYuOjo6JDAIBAQEBAQICAQICAU2UkZKImXwcAwIDAgICAQIFSJSQjpCWdAwBBAEBAQMGA2mckI+JkoE0CQIFBAMEBggkepiNkIyPeRIBAAAAAAAAAAAAAAAAAAAAAgBTlJGOjo6OkpdfAgIDAgEBAQECAgICAQR3mpCTipuMVR4JAgECBCxllYmPjoyRKwADAQECAQECAh+Il5CSjJSQbDUZDwsQMF+OlJOPi5CNMgAGAAABAAAAAAAAAAAAAAAABAAekJCOjo+OkpgnAgICAgICAgICAgIBAQAZe5yRk5KZmpR7cXF8iZeVj5GTjZVbCQIBAQEBAQECAgcwlJOOlI6Ul5WSkJCSl5uSkJOHjpU6BgMCAAAAAAAAAAAAAAAAAAAAAAIKbpOQj4+Rl3wIAQIBAgICAgICAgICBAIAH3qcm5ORkpebmZiYmJaSj5OTkV0IAQEBAQEBAQECAgEHQY+fkIqOj5GSkpOUl5KPj4+Xkk0GAgEAAAAAAAAAAAAAAAAAAAAAAgIAP5STkZKToVMCAQEBAgEBAQICAgECBAMBAApZlJ2VlJKVk5SUkpKUkZOOSwsAAQEBAQEBAQEBAgECACJ3npSRkZGRkZGRkZCNk5l3LwECAQEAAAAAAAAAAAAAAAAAAAAAAQIAGpGYl5eNhCABAgEBAQEBAQICAgICAwMCAwECKGyOlpubmpqYl5eSiWobBQEHAgEBAQEBAQEBAQEBAQIHQHqOmJaVlZOUlZKPfDsKAQgCAQAAAAAAAAAAAAAAAAAAAAAAAAEAAR0vLywcEgIBAQEBAQEBAQICAgICAgICAgICAwIbPVxtc3NybFA1EwkDAQEBAQEAAAAAAQEBAQAAAQEBAQoePFxsbG1rUD0eDQMBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAECAQAAAQAAAQECAgICAgICAgICAgMDAwIAAQADBQMDAgEBAQEBAQECAQEAAAAAAQEBAQABAQEBAQEAAAEDAwMDAAIBAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAQAAAQEBAQICAgICAgICAgICAgEFAwEDAQEBAQIBAgIDAgICAQEAAAAAAAABAQABAQEBAQIAAQIAAAAAAQABAQEBAQEAAAAAAAAA"}),cE=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})})}),Vd=new Map;function zB(t){if(Vd.has(t))return Vd.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 Vd.set(t,e),e}function NB(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 uE(t){let e=cE[t];return e?{...e,allenkObservedRegion:e.allenkObservedRegion?{...e.allenkObservedRegion}:void 0,cleanup:{...e.cleanup}}:null}function lE(t,{alphaGain:e=.18}={}){let A=FB[t];if(!A)return null;let r=NB(zB(A)),n=Number.isFinite(e)&&e>0?e:.18;return Float32Array.from(r,a=>Math.max(0,Math.min(.99,a*n)))}function gE(t){let e=FB[t];return e?NB(zB(e)):null}function dE(t,e={}){let A=uE(t);return A?{...A,alphaMap:lE(t,e),detectorMap:gE(t)}:null}function Kd(t={}){return oE.map(e=>dE(e,t))}var fE=.62,mE=.6,hE=.02,HB=4,UB=.35,pE=.8,wE=.68;function qB(t,e){return(.2126*t[e]+.7152*t[e+1]+.0722*t[e+2])/255}function LB(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 Zd({imageData:t,alphaMap:e,region:A,activeThreshold:r=hE}){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+=qB(t.data,D),s+=w,o++}if(o<=1)return 0;let c=i/o,l=s/o,u=0,g=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,E=qB(t.data,D)-c,C=w-l;u+=E*C,g+=E*E,f+=C*C}let p=Math.sqrt(g*f);return p>0?u/p:0}function BE(t,e,A,r){let n=Zd({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 PE({width:t,height:e,templates:A=Kd(),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(HB,Math.round(Math.min(i.width,i.height)*UB)),o=Number.isFinite(n)?n:Math.max(HB,Math.round(Math.min(i.width,i.height)*UB)),c=i.marginRight,l=i.marginBottom,u=LB(c,s,0,t-i.width),g=LB(l,o,0,e-i.height);for(let f of u)for(let p of g){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 yE(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 jB(t){let e=t?.candidate,A=e?.template;return A&&e.marginRight===A.marginRight&&e.marginBottom===A.marginBottom}function IE(t,e,A){if(!jB(t))return!1;let r=Math.max(A,pE),n=e*wE;return t.voteRatio>=r&&t.maxNcc>=e&&t.meanNcc>=n}function DE(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 CE(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)jB(r)&&A.set(r.candidate.id,r);return[...A.values()].map(DE)}function VB({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 bE({frames:t,perCandidate:e,frameWinners:A,minNcc:r,minVoteRatio:n}){let a=[...e.values()].map(u=>({candidate:u.candidate,...yE(u.scores),votes:u.votes,voteRatio:t.length>0?u.votes/t.length:0})).sort((u,g)=>g.votes!==u.votes?g.votes-u.votes:g.meanNcc-u.meanNcc),i=a[0]||null;if(!i)return VB({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||IE(i,s,n),c={x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height},l={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:l,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:CE(a),frameWinners:A}}}async function Wd(t){typeof t=="function"&&await t()}async function KB({frames:t,width:e,height:A,templates:r=Kd(),minNcc:n=fE,minVoteRatio:a=mE,marginRadiusX:i=null,marginRadiusY:s=null,yieldEveryCandidates:o=96,yieldToMainThread:c=null}={}){if(!Array.isArray(t)||t.length===0)return await Wd(c),VB({minNcc:n});let l=PE({width:e,height:A,templates:r,marginRadiusX:i,marginRadiusY:s}),u=new Map(l.map(h=>[h.id,{candidate:h,scores:[],votes:0}])),g=[],f=Math.max(1,Math.round(o||96)),p=0;for(let h of t){let y=null;for(let w of l){let D=BE(h.imageData,w.template,w.x,w.y),E={timestamp:h.timestamp,ncc:D.ncc,confidence:D.confidence};u.get(w.id).scores.push(E),(!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 Wd(c)}if(y){g.push(y);let w=u.get(y.candidateId);w&&w.votes++}await Wd(c)}return bE({frames:t,perCandidate:u,frameWinners:g,minNcc:n,minVoteRatio:a})}var Fu=.18,$B=1,Jd="96-20260520",EE=.045,TE=.035,kE=5,Ca=255,JB=40,xE=JB-1,GE=.04,SE=.08,YE=.12;function XB(t){if(t==null||t==="")return Jd;let e=String(t).trim(),A=Number(e);return Number.isInteger(A)&&String(A)===e?A:e}function vE(t,e){let A=Math.round(Math.sqrt(t.length));return A>0&&A*A===t.length?A:e}function OE(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 l=0;l<A;l++){let u=l*n,g=(l+1)*n,f=Math.floor(u),p=Math.ceil(g),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 E=f;E<p;E++){if(E<0||E>=e)continue;let G=Math.max(0,Math.min(g,E+1)-Math.max(u,E))*D;h+=t[w*e+E]*G,y+=G}}r[a*A+l]=y>0?h/y:0}}return r}function eP(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?TE:EE}function Xd(t,e={}){let A=e.profile??e.alphaProfile,r=A==null||A===""?t<=xE?48:Jd:XB(A),n=_u(r)||_u(Jd)||_u(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=vE(n,96),i=Number.isFinite(e.edgeBoost)?e.edgeBoost:eP(e.candidate),s=t===a?new Float32Array(n):OE(n,a,t);return NE(UE(s,t,i),e)}function _E(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 $d(t){return t<=0?0:t>=255?255:Math.round(t)}function ME(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 l=0;l<a;l++)for(let u=0;u<n;u++){let g=((e.y+l)*t.width+e.x+u)*4,f=(l*n+u)*4,p=A[l*n+u]||0,h=p>.025?Math.min(p*r,.99):0;if(h<=0)i[f]=t.data[g],i[f+1]=t.data[g+1],i[f+2]=t.data[g+2],i[f+3]=t.data[g+3]??255;else{let y=1-h;i[f]=$d((t.data[g]-h*Ca)/y),i[f+1]=$d((t.data[g+1]-h*Ca)/y),i[f+2]=$d((t.data[g+2]-h*Ca)/y),i[f+3]=t.data[g+3]??255}for(let y=0;y<3;y++){let w=Math.abs(i[f+y]-t.data[g+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 RE(t,e={}){let A=eP(t);return[{name:"default",profile:XB(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,YE].map(r=>({name:`96-edge${r.toFixed(3)}`,profile:"96",edgeBoost:r,options:{alphaProfile:"96",edgeBoost:r}}))]}function QE(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 WB(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 FE({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=tP(t,e,s,r,A.id),c=new Map(r.map(u=>[u.timestamp,u])),l=[];for(let u of t){let g=c.get(u.timestamp);if(g&&g.candidateId!==A.id&&g.confidence>.08)continue;let f=ME(u.imageData,e,s,o.seedGain),p=lo(f.imageData,{x:0,y:0,width:e.width,height:e.height},i);l.push({...p,meanAbsDelta:f.meanAbsDelta,changedRatio:f.changedRatio})}return{...a,alphaMap:s,alphaSeed:o,...QE(l)}}function zE({candidate:t,best:e,voteRatio:A,alphaMapOptions:r}){return r?.autoAlphaProfile===!1||_E(r)||!t||!e||(t.size??t.width??0)<JB||A<.6?!1:e.meanConfidence>=Fu}function ZB({frames:t,position:e,candidate:A,best:r,voteRatio:n,frameWinners:a,alphaMapOptions:i={}}){let s=Xd(A.size,{...i,candidate:A}),o=tP(t,e,s,a,A.id);if(!zE({candidate:A,best:r,voteRatio:n,alphaMapOptions:i}))return{alphaMap:s,alphaSeed:o,alphaShape:null};let c=s,l=RE(A,i).map((w,D)=>({...FE({frames:t,position:e,candidate:A,frameWinners:a,alphaMapOptions:i,option:w,scoreAlphaMap:c}),priorityIndex:D})).sort((w,D)=>{let E=WB(w,w.priorityIndex),C=WB(D,D.priorityIndex);return E-C}),u=l.find(w=>w.name==="default")||l[0],g=l[0]||u,f=u.meanConfidence-g.meanConfidence,p=u.meanConfidence>0?f/u.meanConfidence:0,h=g!==u&&f>=GE&&p>=SE,y=h?g: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:l.map(w=>({name:w.name,profile:w.profile,edgeBoost:w.edgeBoost,meanConfidence:w.meanConfidence,meanAbsDelta:w.meanAbsDelta,changedRatio:w.changedRatio}))}}}function NE(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 l=t[c]||0,u=s>0?c%s:0,g=s>0?Math.floor(c/s):0,f=HE(u,g,s,i);if(l>0&&l<.12){let p=A*(f?n:1);o[c]=Math.min(.99,l*p)}else if(l>=.12){let p=r*(f?a:1);o[c]=Math.min(.99,l*p)}else o[c]=l}return o}function HE(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 UE(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],l=-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+l*l);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 qE(t,e,A={}){let r=Xd(e.size,{...A,candidate:e}),n={x:e.x,y:e.y,size:e.size},a=Ud({imageData:t,alphaMap:r,region:n}),i=qd({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 lo(t,e,A){let r=e.width??e.size,n=e.height??e.size;if(r!==n||A.length!==r*r){let c=Zd({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=Ud({imageData:t,alphaMap:A,region:a}),s=qd({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 LE(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function jE(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,l=.015;for(let u=a;u<s;u++)for(let g=n;g<i;g++){let f=g>=e.x&&g<e.x+e.width&&u>=e.y&&u<e.y+e.height,p=f?0:1;if(f){let y=g-e.x,w=u-e.y;(A[w*e.width+y]||0)<=l&&(p=.35)}if(p<=0)continue;let h=(u*t.width+g)*4;o+=LE(t.data,h)*p,c+=p}return c>0?o/c:null}function VE(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 l=Math.min(c*r,.99),u=1-l,g=((e.y+s)*t.width+e.x+o)*4,f=Math.min(1,Math.max(0,c*8)),p=(t.data[g]-l*Ca)/u,h=(t.data[g+1]-l*Ca)/u,y=(t.data[g+2]-l*Ca)/u;a+=(.2126*p+.7152*h+.0722*y)*f,i+=f}return i<=0?null:a/i-n}function KE(t,e,A,r=$B){let n=jE(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<kE;c++){let l=(a+i)/2,u=VE(t,e,A,l,n);if(!Number.isFinite(u))return null;let g=Math.abs(u);g<o&&(o=g,s=l),u>0?a=l:i=l}return{gain:s,residualDelta:o}}function WE(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 tP(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 l=KE(o.imageData,e,A);l&&(l.gain<.35||l.gain>1.35||i.push(l.gain))}return{seedGain:WE(i)??$B,estimates:i,estimateCount:i.length}}function ZE(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}}function $E(t,{minConfidence:e=Fu}={}){if(!Array.isArray(t)||t.length===0)return[];let A=t.filter((n,a)=>{if(a===0)return!0;let i=t[0],s=i.frames>0&&i.votes===i.frames;return n.meanConfidence>=e&&(!s||n.votes>0)}),r=[];for(let n of A){let a=n.candidate,i=Number(a?.size),s=i*i;r.some(c=>{let l=c.candidate,u=Number(l?.size),g=Math.max(0,Math.min(Number(a?.x)+i,Number(l?.x)+u)-Math.max(Number(a?.x),Number(l?.x))),f=Math.max(0,Math.min(Number(a?.y)+i,Number(l?.y)+u)-Math.max(Number(a?.y),Number(l?.y))),p=Math.min(s,u*u);return p>0&&g*f/p>=.5})||r.push(n)}return r}function AP(t,e){let A=Array.isArray(e?.detections)&&e.detections.length>0?e.detections:[e],r=null;for(let n of A){if(!n?.position||!n?.alphaMap)continue;let a=n.position,i=typeof t?.getImageData=="function",s=i?t.getImageData(a.x,a.y,a.width,a.height):t,o=lo(s,i?{x:0,y:0,width:a.width,height:a.height}:a,n.alphaMap),c=Math.max(.01,Number(n.meanConfidence)||.01),l=o.confidence/c;(!r||l>r.normalizedConfidence||l===r.normalizedConfidence&&o.confidence>r.frameScore.confidence)&&(r={detection:n,frameScore:o,normalizedConfidence:l})}return r}async function JE(t){typeof t=="function"&&await t()}async function XE({frames:t,width:e,height:A,candidates:r=uo(e,A),minConfidence:n=Fu,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(C=>[C.id,{candidate:C,scores:[]}])),o=[];for(let C of t){let G=r.map(k=>qE(C.imageData,k,a)).sort((k,M)=>M.confidence-k.confidence),S=G[0]||null;S&&o.push({timestamp:C.timestamp,candidateId:S.candidate.id,confidence:S.confidence});for(let k of G)s.get(k.candidate.id).scores.push(k);await JE(i)}for(let C of o){let G=s.get(C.candidateId);G&&(G.votes=(G.votes||0)+1)}let c=[...s.values()].map(C=>({candidate:C.candidate,...ZE(C.scores),votes:C.votes||0})).sort((C,G)=>G.votes!==C.votes?G.votes-C.votes:G.meanConfidence-C.meanConfidence),l=c[0],u=$E(c,{minConfidence:n}),g=t.length>0?l.votes/t.length:0,f=t.length>0?Math.min(1,u.reduce((C,G)=>C+G.votes,0)/t.length):0,p=l.meanConfidence>=n&&(g>=.6||u.length>1&&f>=.6),h={x:l.candidate.x,y:l.candidate.y,width:l.candidate.size,height:l.candidate.size},y=ZB({frames:t,position:h,candidate:l.candidate,best:l,voteRatio:g,frameWinners:o,alphaMapOptions:a}),{alphaMap:w,alphaSeed:D}=y,E=[{watermarkKind:"diamond",position:h,alphaMap:w,alphaSeed:D,candidate:l.candidate,meanConfidence:l.meanConfidence}];for(let C of u.slice(1)){let G={x:C.candidate.x,y:C.candidate.y,width:C.candidate.size,height:C.candidate.size},S=ZB({frames:t,position:G,candidate:C.candidate,best:C,voteRatio:t.length>0?C.votes/t.length:0,frameWinners:o,alphaMapOptions:a});E.push({watermarkKind:"diamond",position:G,alphaMap:S.alphaMap,alphaSeed:S.alphaSeed,candidate:C.candidate,meanConfidence:C.meanConfidence})}return{watermarkKind:"diamond",position:h,alphaMap:w,alphaSeed:D,candidate:l.candidate,detections:E,isConfident:p,summary:{frameCount:t.length,minConfidence:n,alphaSeed:D,alphaShape:y.alphaShape,best:{candidateId:l.candidate.id,label:l.candidate.label,meanSpatial:l.meanSpatial,meanGradient:l.meanGradient,meanConfidence:l.meanConfidence,maxConfidence:l.maxConfidence,votes:l.votes},candidates:c.map(C=>({candidateId:C.candidate.id,label:C.candidate.label,x:C.candidate.x,y:C.candidate.y,size:C.candidate.size,meanSpatial:C.meanSpatial,meanGradient:C.meanGradient,meanConfidence:C.meanConfidence,maxConfidence:C.maxConfidence,votes:C.votes})),frameWinners:o}}}function eT({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 rP({frames:t,width:e,height:A,candidates:r=uo(e,A),minConfidence:n=Fu,alphaMapOptions:a={},veoTextOptions:i={},yieldToMainThread:s=null}){let o=null;Array.isArray(r)&&r.length>0&&(o=await XE({frames:t,width:e,height:A,candidates:r,minConfidence:n,alphaMapOptions:a,yieldToMainThread:s}));let c=await KB({frames:t,width:e,height:A,...i,yieldToMainThread:s}),l=eT({diamondDetection:o,veoTextDetection:c});if(!l)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 l}var zA=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 tT(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 nP(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}=tT(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=ba(l+g,e);u+=t[c*e+f]*a[g+i]}s[c*e+l]=u}for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=ba(c+g,A);u+=s[f*e+l]*a[g+i]}o[c*e+l]=u}return o}function AT(t){let e=Math.round(Math.sqrt(t?.length||0));return e>0&&e*e===t.length?e:0}function rT(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,l=Math.floor(o),u=Math.ceil(c);for(let g=0;g<A;g++){let f=g*a,p=(g+1)*a,h=Math.floor(f),y=Math.ceil(p),w=0,D=0;for(let E=l;E<u;E++){if(E<0||E>=e)continue;let C=Math.max(0,Math.min(c,E+1)-Math.max(o,E));for(let G=h;G<y;G++){if(G<0||G>=e)continue;let k=Math.max(0,Math.min(p,G+1)-Math.max(f,G))*C;w+=t[E*e+G]*k,D+=k}}n[s*A+g]=D>0?w/D:0}}return n}function nT(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),l=c+1,u=o-c;for(let g=0;g<A;g++){let f=(g+.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,E=t[he(l,0,e-1)*e+he(p,0,e-1)]||0,C=t[he(l,0,e-1)*e+he(h,0,e-1)]||0,G=w*(1-y)+D*y,S=E*(1-y)+C*y;n[s*A+g]=G*(1-u)+S*u}}return n}function iT(t,e,A,r=A){return A>e?nT(t,e,A,r):rT(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 sT(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,l=n+s-2;c<0||l<0||c>=e||l>=A||(i=Math.max(i,t[l*e+c]||0))}r[n*e+a]=i}return r}function oT({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 g=0;g<A;g++)for(let f=0;f<e;f++){let p=ba(g-1,A),h=ba(g+1,A),y=ba(f-1,e),w=ba(f+1,e),D=-t[p*e+y]-2*t[g*e+y]-t[h*e+y]+t[p*e+w]+2*t[g*e+w]+t[h*e+w],E=-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],C=Math.sqrt(D*D+E*E);n[g*e+f]=C,a=Math.min(a,C),i=Math.max(i,C)}if(!Number.isFinite(a)||i<=a)return new Float32Array(e*A);let s=new Float32Array(e*A),o=1/(i-a);for(let g=0;g<s.length;g++)s[g]=Math.sqrt(he((n[g]-a)*o,0,1));let c=sT(s,e,A),l=nP(c,e,A,2),u=Number.isFinite(r)?Math.max(0,r):1;for(let g=0;g<l.length;g++)l[g]=he(l[g]*u,0,1);return l}function iP(t={}){let e=Number.isFinite(t.sigma)?he(t.sigma,0,zA.maxSigma):zA.defaultSigma,A=Number.isFinite(t.strength)?he(t.strength,0,zA.maxStrength):zA.defaultStrength,r=Number.isFinite(t.padding)?Math.max(0,Math.round(t.padding)):zA.defaultPadding;return{sigma:e,strength:A,padding:r}}function aP({alphaMap:t,width:e,height:A=e,strength:r=zA.defaultStrength}={}){let n=AT(t),a=n>0?iT(t,n,e,A):t;return oT({alphaMap:a,width:e,height:A,strength:r})}function cT({imageWidth:t,imageHeight:e,region:A,padding:r=zA.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,l=o-i;return c<4||l<4?null:{x:a,y:i,width:c,height:l,inner:{x:he(Math.round(A.x-a),0,c),y:he(Math.round(A.y-i),0,l),width:he(Math.round(A.width),0,c),height:he(Math.round(A.height),0,l)}}}function sP({imageWidth:t,imageHeight:e,region:A,padding:r=zA.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),l=Math.round(A.height+i*2),u=Number.isInteger(n)&&n>0?n:c,g=Number.isInteger(a)&&a>0?a:l;if(u<4||g<4)return null;let f=he(s,0,t),p=he(o,0,e),h=he(s+u,0,t),y=he(o+g,0,e),w=h-f,D=y-p;return w<=0||D<=0?null:{x:s,y:o,width:u,height:g,inner:{x:he(Math.round(A.x-s),0,u),y:he(Math.round(A.y-o),0,g),width:he(Math.round(A.width),0,u),height:he(Math.round(A.height),0,g)},visible:{x:f,y:p,width:w,height:D,offsetX:f-s,offsetY:p-o}}}function oP({imageWidth:t,imageHeight:e,region:A,padding:r=zA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){let i=cT({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,l=A.y+A.height/2,u=he(Math.round(c-s/2),0,t-s),g=he(Math.round(l-o/2),0,e-o);return{x:u,y:g,width:s,height:o,inner:{x:he(Math.round(A.x-u),0,s),y:he(Math.round(A.y-g),0,o),width:he(Math.round(A.width),0,s),height:he(Math.round(A.height),0,o)}}}function cP({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 g=he(Math.round(e.y+u),0,a-1),f=he(g-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 l=typeof t.constructor=="function"&&t.constructor!==Object?t.constructor:typeof ImageData=="function"?ImageData:null;return l?new l(o,i,s):{width:i,height:s,data:o}}function uP({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 l=i.x+c;l<0||l>=r.width||(a[o*r.width+l]=he(t[s*e+c]||0,0,1))}}return nP(a,r.width,r.height,n)}function lP({imageData:t,sigma:e=zA.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,zA.maxSigma)/255,o=n.length>=a*4?4:3;for(let c=0;c<a;c++){let l=c*o;i[c]=(n[l]||0)/255,i[a+c]=(n[l+1]||0)/255,i[a*2+c]=(n[l+2]||0)/255,i[a*3+c]=s}return i}function gP({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 uT(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 l=-1;l<=1;l++){let u=r+l;u<0||u>=e||(i+=t[(c*e+u)*4+a],s++)}}return s>0?i/s:t[(n*e+r)*4+a]}function lT(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function gT(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 lT(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 dP({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,l=Number.isFinite(a)&&a>0&&c,u=i&&c?gT(t,r,n):null;for(let g=0;g<o;g++){let f=he(A[g]||0,0,1),p=u?Math.max(.08,1-(u[g]||0)*.92):1,h=f*p;if(h<=0)continue;let y=g*4,w=l?g%r:0,D=l?Math.floor(g/r):0,E=l?Math.min(.28,h*a):0;for(let C=0;C<3;C++){let G=t[y+C]*(1-h)+e[y+C]*h,S=E>0?he(t[y+C]-uT(t,r,n,w,D,C),-14,14):0;s[y+C]=Math.round(he(G+S*E,0,255))}}return s}var zu=1.5,nn=!1,mP=!1,rf=.85,fo="none",Vt=.65,Nu=25,dT=6.5,fP=Object.freeze({CANVAS_SOFT:"canvas-soft",CANVAS_BILATERAL:"canvas-bilateral"}),$e=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 hP(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 gA(t,e,A,r,n){let{kernel:a,radius:i}=hP(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Math.max(0,Math.min(e-1,l+g));u+=t[c*e+f]*a[g+i]}s[c*e+l]=u}for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Math.max(0,Math.min(A-1,c+g));u+=s[f*e+l]*a[g+i]}o[c*e+l]=u}return o}function ir(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 fT(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 l=Math.max(0,Math.min(A-1,o)),u=Math.max(0,Math.min(r-1,c));return ef(n,(u*A+l)*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 l=-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),g=Math.sqrt(l*l+u*u);a[o*A+c]=ir(42,150,g)*s}return gA(a,A,r,.65,2)}function go(t,e,A){let r=t.width,n=t.height,a=t.data,{kernel:i,radius:s}=hP(e,A),o=new Float32Array(a.length),c=new Uint8ClampedArray(a.length);for(let l=0;l<n;l++)for(let u=0;u<r;u++){let g=(l*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[(l*r+y)*4+f]*i[h+s]}o[g+f]=p}}for(let l=0;l<n;l++)for(let u=0;u<r;u++){let g=(l*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,l+h));p+=o[(y*r+u)*4+f]*i[h+s]}c[g+f]=Math.max(0,Math.min(255,Math.round(p)))}}return c}function Hu(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),l=Math.max(1,r),u=2*c*c,g=2*l*l;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]],E=[0,0,0],C=0;for(let G=-o;G<=o;G++){let S=f+G;if(!(S<0||S>=a))for(let k=-o;k<=o;k++){let M=p+k;if(M<0||M>=n)continue;let R=(S*n+M)*4,N=i[R]-D[0],V=i[R+1]-D[1],F=i[R+2]-D[2],K=Math.exp(-(k*k+G*G)/u),L=Math.exp(-(N*N+V*V+F*F)/g),_=Math.max(y,e[S*n+M]||0),W=K*(.35+L*.65)*(.5+_*.5);E[0]+=i[R]*W,E[1]+=i[R+1]*W,E[2]+=i[R+2]*W,C+=W}}C>0&&(s[w]=Math.max(0,Math.min(255,Math.round(E[0]/C))),s[w+1]=Math.max(0,Math.min(255,Math.round(E[1]/C))),s[w+2]=Math.max(0,Math.min(255,Math.round(E[2]/C))))}return s}function pP(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 g=0;g<r;g++){let f=u*r+g;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 E=-y;E<=y;E++){let C=g+E;if(C<0||C>=r||Math.max(Math.abs(E),Math.abs(w))!==y)continue;let G=D*r+C;if(i[G])continue;let S=G*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 g=0;g<n;g++)for(let f=0;f<r;f++){let p=g*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,g],[f+1,g],[f,g-1],[f,g+1],[f-1,g-1],[f+1,g-1],[f-1,g+1],[f+1,g+1]];for(let[E,C]of D){if(E<0||E>=r||C<0||C>=n)continue;let G=(C*r+E)*4;w[0]+=s[G],w[1]+=s[G+1],w[2]+=s[G+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 l=new Uint8ClampedArray(a.length);for(let u=0;u<l.length;u++)l[u]=Math.max(0,Math.min(255,Math.round(s[u])));return l}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 wP(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 BP(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 l=c*o,u=Math.floor(l),g=Math.min(t.height-1,u+1),f=l-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,E=(c*r+p)*4,C=(u*t.width+y)*4,G=(u*t.width+w)*4,S=(g*t.width+y)*4,k=(g*t.width+w)*4;for(let M=0;M<4;M++){let R=i[C+M]*(1-D)+i[G+M]*D,N=i[S+M]*(1-D)+i[k+M]*D;a[E+M]=Math.round(R*(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:BP(t.padded,e.width,e.height)}function yP(t,e){let A=e?.imageData;return!A?.data||A.width===t.padded.width&&A.height===t.padded.height?e:{...e,imageData:BP(A,t.padded.width,t.padded.height)}}function Uu(t={}){let e=t.highQualityCleanup===!0||t.highQualityCleanup!==!1&&nn,A=typeof t.denoiseBackend=="string"?t.denoiseBackend:null,r=Object.values($e).includes(A)?A:t.textureRepair===!0||t.textureRepair!==!1&&mP?$e.CANVAS_TEXTURE_REPAIR:fo,n=r===$e.ALLENK_FDNCNN_BROWSER_SPIKE?3:1,a={residualCleanupStrength:Number.isFinite(t.residualCleanupStrength)?Math.max(0,Math.min(1.8,t.residualCleanupStrength)):zu,cleanupBackend:e?fP.CANVAS_BILATERAL:fP.CANVAS_SOFT,highQualityCleanup:e,denoiseBackend:r,edgeDenoiseStrength:Number.isFinite(t.edgeDenoiseStrength)?Math.max(0,Math.min(n,t.edgeDenoiseStrength)):Vt,textureRepair:r===$e.CANVAS_TEXTURE_REPAIR,textureRepairStrength:Number.isFinite(t.textureRepairStrength)?Math.max(0,Math.min(1,t.textureRepairStrength)):rf};return r===$e.ALLENK_FDNCNN_BROWSER_SPIKE&&(a.allenkFdncnnRuntime=t.allenkFdncnnRuntime||null,a.allenkFdncnnSigma=Number.isFinite(t.allenkFdncnnSigma)?Math.max(0,Math.min(150,t.allenkFdncnnSigma)):Nu,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 mo(t,e,A,r){let n=new Float32Array(e*A),a=0,i=(c,l)=>{let u=Math.max(0,Math.min(e-1,c)),g=Math.max(0,Math.min(A-1,l));return t[g*e+u]||0};for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=c*e+l,g=-i(l-1,c-1)-2*i(l-1,c)-i(l-1,c+1)+i(l+1,c-1)+2*i(l+1,c)+i(l+1,c+1),f=-i(l-1,c-1)-2*i(l,c-1)-i(l+1,c-1)+i(l-1,c+1)+2*i(l,c+1)+i(l+1,c+1),p=Math.sqrt(g*g+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 l=0;l<e;l++){let u=0;for(let g=-1;g<=1;g++){let f=c+g;if(!(f<0||f>=A))for(let p=-1;p<=1;p++){let h=l+p;h<0||h>=e||(u=Math.max(u,n[f*e+h]))}}s[c*e+l]=Math.sqrt(u/a)}let o=gA(s,e,A,1.15);for(let c=0;c<o.length;c++)o[c]=Math.min(1,o[c]*r);return o}function IP(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=mo(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,l=Math.max(ir(.006,.035,o),ir(.42,.72,c)*.45),u=ir(.2,.3,o),g=ir(.24,.62,c),f=1-u*(1-g)*.86;a[s]=Math.min(1,c*l*f*i)}return gA(a,e,A,.65,2)}function mT(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),l=-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+l*l);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 hT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=IP(t,e,A,r),a=mT(t,e,A),i=new Float32Array(e*A);for(let s=0;s<i.length;s++){let o=ir(.1,.2,a[s]||0);i[s]=n[s]*o}return gA(i,e,A,.35,1)}function tf(t,e,A,{strength:r=0,highQuality:n=nn,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),l=Math.min(t.canvas.height,e.y+e.height+i),u=t.getImageData(s,o,c-s,l-o),g=mo(A,e.width,e.height,r),f=Ea(g,e,u,s,o),p=gA(f,u.width,u.height,1),h=go(u,2.2,5),y=a?fT(u,n?.55:.78):null,w;if(n)w=Hu(u,p,Math.max(4,Math.round(Math.min(e.width,e.height)/14)),52);else{let D=pP(u,p,Math.max(18,Math.round(Math.min(e.width,e.height)/2))),E=Math.max(2,Math.round(Math.min(e.width,e.height)/18));w=go({width:u.width,height:u.height,data:D},E*.8,E)}for(let D=0;D<p.length;D++){let E=Math.min(1,Math.max(0,p[D])),C=Math.min(1,E*(n?1.08:1.25)),G=ir(.22,.55,E),S=y?(y[D]||0)*(1-G*.82):0,k=y?Math.max(.28,1-S):1,M=C*k;if(M<=.01)continue;let R=D*4;for(let N=0;N<3;N++){let V=u.data[R+N]-h[R+N],F=n?Math.max(.18,.72-M*.48):Math.max(.05,.78-M*.9),K=Math.max(0,Math.min(255,w[R+N]+V*F));u.data[R+N]=Math.round(u.data[R+N]*(1-M)+K*M)}}t.putImageData(u,s,o)}function pT(t,e,A,{strength:r=Vt}={}){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),l=mo(A,e.width,e.height,Math.max(0,Math.min(1,r))),u=Ea(l,e,c,a,i),g=gA(u,c.width,c.height,.85,2),f=Hu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/18)),34);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 wT(t,e,A,{strength:r=Vt}={}){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),l=IP(A,e.width,e.height,r),u=Ea(l,e,c,a,i),g=gA(u,c.width,c.height,.65,2),f=Hu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 BT(t,e,A,{strength:r=Vt}={}){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),l=hT(A,e.width,e.height,r),u=Ea(l,e,c,a,i),g=gA(u,c.width,c.height,.45,1),f=Hu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 PT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=mo(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)),l=n[s]||0;a[s]=Math.min(1,Math.max(l*.75,c*.32)*i)}return gA(a,e,A,.75,2)}function yT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=mo(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,l=ir(.018,.13,o),u=ir(.1,.24,o),g=1-ir(.42,.78,c)*.28;a[s]=Math.min(1,(l*.34+u*.22+c*.18)*g*i)}return gA(a,e,A,.85,2)}function IT(t,e,A,{strength:r=Vt}={}){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),l=yT(A,e.width,e.height,r),u=Ea(l,e,c,a,i),g=gA(u,c.width,c.height,.8,2),f=go(c,1.8,4),p=pP(c,g,Math.max(14,Math.round(Math.min(e.width,e.height)/3))),h=go({width:c.width,height:c.height,data:p},1.2,3);for(let y=0;y<g.length;y++){let w=Math.min(1,Math.max(0,g[y]||0)),D=Math.min(.36,w*.72);if(D<=.012)continue;let E=y*4,C=Math.max(.28,.72-D*1.1);for(let G=0;G<3;G++){let S=c.data[E+G]-f[E+G],k=Math.max(0,Math.min(255,h[E+G]+S*C));c.data[E+G]=Math.round(c.data[E+G]*(1-D)+k*D)}}t.putImageData(c,a,i)}function DT(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),l=go(c,1.65,4),u=PT(A,e.width,e.height,r),g=Ea(u,e,c,a,i),f=gA(g,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,E=Math.min(1,Math.max(0,f[D]||0));if(E<=.025)continue;let C=D*4,G=ef(l,C),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(l,_)-G),pe=Math.sqrt(F*F+N*N),Ae=W+pe*.7;Ae<k&&(k=Ae,S=L)}}if(S<0)continue;let M=S*4,R=Math.min(.7,E*.95);for(let N=0;N<3;N++){let V=Math.max(-18,Math.min(18,p[M+N]-l[M+N]));c.data[C+N]=Math.max(0,Math.min(255,Math.round(c.data[C+N]+V*R)))}}t.putImageData(c,a,i)}function CT(t,e,A,{runtime:r=null,sigma:n=Nu,strength:a=Vt,padding:i=void 0}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let s=wP(r),o=DP(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}),l=yP(o,c);return Af(t,o,l),{denoiseRuntimeStatus:"applied",denoiseRuntime:l.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:l.macs??null,denoiseRuntimeRunMs:l.runMs??null}}function DP(t,e,A,{sigma:r=Nu,strength:n=Vt,padding:a=void 0,targetWidth:i=null,targetHeight:s=null}={}){let o=iP({sigma:r,strength:n,padding:a}),l=Number.isInteger(i)&&i>0&&Number.isInteger(s)&&s>0&&Math.round(e.width)!==Math.round(e.height),u=l?sP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s}):oP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s});if(!u)return null;let g=u.visible||{x:u.x,y:u.y,width:u.width,height:u.height,offsetX:0,offsetY:0},f=t.getImageData(g.x,g.y,g.width,g.height),p=l?cP({imageData:f,imageX:g.x,imageY:g.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=uP({roiWeights:h,roiWidth:e.width,roiHeight:e.height,paddedRoi:u,blurSigma:1});return{options:o,paddedRoi:u,visible:g,padded:p,weights:y}}function bT(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 g=s+u;if(!(g<0||g>=r.height))for(let f=0;f<n;f++){let p=i+f;if(p<0||p>=r.width)continue;let h=(g*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,l=c?new c(o,n,a):{width:n,height:a,data:o};return{x:A.x,y:A.y,imageData:l}}function Af(t,e,A){let r=new Uint8ClampedArray(e.padded.data),n=dP({originalData:r,denoisedData:A.imageData.data,weights:e.weights,width:e.padded.width,height:e.padded.height,protectStructure:!0}),a=bT(e,n);t.putImageData(a.imageData,a.x,a.y)}function CP(t){return{width:t.width,height:t.height,data:new Uint8ClampedArray(t.data)}}function ET(t){return{...t,imageData:CP(t.imageData)}}function TT(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 kT(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):dT}}async function xT(t,e,A,{runtime:r=null,sigma:n=Nu,strength:a=Vt,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=wP(r),l=DP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:c?.width,targetHeight:c?.height});if(!l)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let u=kT(s),g=u&&o?CP(l.padded):null;if(u&&o?.denoised&&o?.previousInput){let h=TT(l.padded,o.previousInput),y=Number.isFinite(o.reuseCount)?o.reuseCount:0;if(y<u.maxFrames&&h<=u.threshold)return Af(t,l,o.denoised),o.previousInput=g,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(l,c),sigma:l.options.sigma}),p=yP(l,f);return Af(t,l,p),u&&o&&(o.previousInput=g,o.denoised=ET(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=Uu(r),a=n.denoiseBackend===$e.ALLENK_FDNCNN_BROWSER_SPIKE;return n.residualCleanupStrength>0&&!a&&tf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup}),n.denoiseBackend===$e.CANVAS_EDGE_DENOISE?pT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===$e.CANVAS_EDGE_BAND_DENOISE?wT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===$e.CANVAS_EDGE_CORE_DENOISE?BT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===$e.CANVAS_FOOTPRINT_POLISH?IT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===$e.CANVAS_TEXTURE_REPAIR?DT(t,e,A,{strength:n.textureRepairStrength}):n.denoiseBackend===$e.ALLENK_FDNCNN_BROWSER_SPIKE&&Object.assign(n,CT(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 bP(t,e,A,r={}){let n=Uu(r);return n.denoiseBackend!==$e.ALLENK_FDNCNN_BROWSER_SPIKE?nf(t,e,A,r):(Object.assign(n,await xT(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 ho=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])})]),EP=ho.find(t=>t.id==="allenk-fdncnn-200")||ho[ho.length-1],GT=64;function ST(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 Ln(t=null){let e=ST(t);if(!e)return af(EP,GT);let A=Math.round(Number(t?.width)),r=Math.round(Number(t?.height??t?.width)),n=ho.find(s=>s.matchWatermark&&s.matchWatermark.width===A&&s.matchWatermark.height===r);if(n)return af(n,n.padding);let a=ho.find(s=>e<=s.maxWatermarkSize)||EP,i=Math.max(0,Math.floor((a.modelSize-e)/2));return af(a,i)}async function sf(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=Number.isFinite(s?.averagePacketRate)&&s.averagePacketRate>0?s.averagePacketRate:null,l=c||30,u=Number.isFinite(o)&&o>0&&c?Math.max(1,Math.round(o*c)):null;return{width:A,height:r,firstTimestamp:Number.isFinite(n)?n:0,duration:Number.isFinite(o)?o:null,codec:a,frameRate:l,frameCountEstimate:u,averageBitrate:s?.averageBitrate||null}}var jn=12,Ta=1,of=!1,cf=12e6,YT=2,vT="no-preference",OT="quality",_T="constant",MT="detail",RT=Object.freeze({primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),QT=5,TP=.05,FT=.14,zT=.035,xP=Object.freeze({copied:!1,packetCount:0,codec:null,skipReason:"disabled"});function GP(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 SP(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 NT(t){return new Fn({source:new Ks(t),formats:pd})}async function uf(t){let e=NT(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}}function HT({firstTimestamp:t,duration:e,sampleCount:A}){let r=Math.max(1,Math.round(A||jn));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 YP(t){let e=Number(t);return Number.isFinite(e)&&e>0?e:cf}function UT(t,e){!e?.decoderConfig||typeof e.decoderConfig!="object"||(e.decoderConfig.colorSpace={...RT})}function qT(t){return{codec:"avc",bitrate:YP(t),alpha:"discard",keyFrameInterval:YT,latencyMode:OT,bitrateMode:_T,hardwareAcceleration:vT,contentHint:MT,onEncodedPacket:UT}}function LT(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 jT(t,e){return!!(e&&t.getSupportedAudioCodecs().includes(e))}async function VT({input:t,output:e,format:A,startTimestamp:r,preserveAudio:n}){if(n===!1)return{source:null,track:null,meta:null,result:xP};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(!jT(A,i))return{source:null,track:a,meta:null,result:{copied:!1,packetCount:0,codec:i,skipReason:"unsupported-audio-codec"}};let s=new ao(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 KT(t){if(!t?.source||!t.track)return t?.result||xP;let e=new tn(t.track),A=0;try{for await(let r of e.packets()){let n=LT(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 vP(t){let{input:e,videoTrack:A}=await uf(t);try{let r=await sf(e,A);return{...r,candidates:uo(r.width,r.height)}}finally{e.dispose()}}async function qu(t,e={}){let A=typeof e.onProgress=="function"?e.onProgress:()=>{},r=typeof e.yieldToMainThread=="function"?e.yieldToMainThread:async()=>{},{input:n,videoTrack:a}=await uf(t);try{let i=await sf(n,a);A({phase:"detect",step:"metadata",progress:.04,metadata:i}),await r();let s=GP(i.width,i.height),o=SP(s),c=new na(a),l=HT({firstTimestamp:i.firstTimestamp,duration:i.duration,sampleCount:e.sampleCount??jn}),u=[],g=0;for await(let p of c.samples())try{if(g>=l.length)break;if(p.timestamp<l[g]&&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)}),g++,A({phase:"detect",step:"sample",progress:.06+.54*Math.min(1,u.length/l.length),metadata:i,sampledFrames:u.length,sampleCount:l.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:l.length}),await r();let f=await rP({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 WT(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 ZT(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,l=0,u=.015;for(let g=0;g<o.height;g++)for(let f=0;f<o.width;f++){let p=n+f,h=a+g,y=p>=e.x&&p<e.x+e.width&&h>=e.y&&h<e.y+e.height,w=y?0:1;if(y){let E=p-e.x,C=h-e.y;(A[C*e.width+E]||0)<=u&&(w=.35)}if(w<=0)continue;let D=(g*o.width+f)*4;c+=dA(o.data,D)*w,l+=w}return{mean:l>0?c/l:null,padded:o}}function $T(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 Or(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 lf(t,e,A){let r=WT(t);return xB(r,e,{x:0,y:0,width:t.width,height:t.height},{alphaGain:A}),r}function JT(t,e,A,r,{strength:n=Vt}={}){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 l=0;l<a.height;l++)for(let u=0;u<a.width;u++){let g=l*a.width+u,f=A[g]||0;if(f<=.025)continue;let p=g*4,h=dA(a.data,p),y=dA(r.data,p),w=Math.abs(h-y),D=1-Or(5,22,w),E=Or(.035,.24,f),C=Math.min(.26,i*E*D*.32);if(!(C<=.012)){for(let G=0;G<3;G++)s[p+G]=Math.round(a.data[p+G]*(1-C)+r.data[p+G]*C);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 XT(t,e,A,r,n,{strength:a=Vt}={}){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 g=0;g<i.width;g++){let f=u*i.width+g,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),E=dA(i.data,h)-y,C=dA(n.processedRoi.data,h)-w,G=Math.abs(E-C),S=1-Or(4,20,D),k=Or(1.5,10,G),M=Or(.035,.24,p),R=Math.min(.34,s*S*k*M*.42);if(!(R<=.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-R)+F*R;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 l=typeof ImageData<"u"?new ImageData(o,i.width,i.height):{width:i.width,height:i.height,data:o};return t.putImageData(l,e.x,e.y),{originalRoi:r,processedRoi:l}}function kP(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 ek(t,e,A,r,n,a,i,s){let o=0,c=0;for(let l=-1;l<=1;l++){let u=a+l,g=a+s+l;if(!(u<0||u>=r||g<0||g>=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[g*A+h]),c++)}}return c>0?o/c:Number.POSITIVE_INFINITY}function tk(t,e,A,r,n,{strength:a=Vt}={}){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,l=kP(r),u=kP(n.originalRoi),g=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 E=0,C=0,G=Number.POSITIVE_INFINITY;for(let ae=-2;ae<=2;ae++)for(let we=-2;we<=2;we++){let ot=y+we,rt=h+ae;if(ot<0||ot>=o||rt<0||rt>=c)continue;let ct=ek(l,u,o,c,y,h,we,ae);ct<G&&(G=ct,E=we,C=ae)}let S=(h+C)*o+y+E,k=w*4,M=S*4,R=dA(i.data,k)-l[w],N=dA(n.processedRoi.data,k)-u[w],V=dA(n.processedRoi.data,M)-u[S],F=Math.abs(R-V),L=Math.abs(R-N)-F;if(L<=.5||G>8)continue;let _=1-Or(2.5,8,G),W=Or(.5,5,L),pe=Or(1.5,10,F),Ae=Or(.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],ot=n.processedRoi.data[M+ae]-n.originalRoi.data[M+ae],rt=we*(1-De)+ot*De;g[k+ae]=Math.max(0,Math.min(255,Math.round(r.data[k+ae]+rt)))}f=!0}}if(!f)return{originalRoi:r,processedRoi:i};let p=typeof ImageData<"u"?new ImageData(g,i.width,i.height):{width:i.width,height:i.height,data:g};return t.putImageData(p,e.x,e.y),{originalRoi:r,processedRoi:p}}function Ak(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 OP({ctx:t,originalRoi:e,position:A,alphaMap:r,seedGain:n,previousGain:a}){let i=ZT(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,l=Number.POSITIVE_INFINITY;for(let u=0;u<QT;u++){let g=(s+o)/2,f=lf(e,r,g),p=$T(f,r,i.mean),h=Math.abs(p);h<l&&(l=h,c=g),p>0?s=g:o=g}return Number.isFinite(a)&&(c=Math.max(a-TP,Math.min(a+TP,c))),c}function rk(t,e,A){let{position:r,alphaMap:n}=e,a=lo(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?OP({ctx:t,originalRoi:s,position:r,alphaMap:n,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,l=lf(s,n,c);t.putImageData(l,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===$e.CANVAS_TEMPORAL_STABILIZE?JT(t,r,n,A.previousTemporalRoi,{strength:A.edgeDenoiseStrength}):null,g=A.denoiseBackend===$e.CANVAS_TEMPORAL_DELTA_STABILIZE?XT(t,r,n,s,A.previousTemporalDeltaFrame,{strength:A.edgeDenoiseStrength}):null,f=A.denoiseBackend===$e.CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE&&Ak(t,r)?tk(t,r,n,s,A.previousTemporalMatchDeltaFrame,{strength:A.edgeDenoiseStrength}):null;return{alphaGain:c,frameScore:a,skipped:!1,mode:o?"adaptive":"seed",temporalRoi:u,temporalDeltaFrame:g,temporalMatchDeltaFrame:f}}async function nk(t,e,A){if(!(A.denoiseBackend===$e.ALLENK_FDNCNN_BROWSER_SPIKE&&A.allenkFdncnnRuntime))return rk(t,e,A);let{position:n,alphaMap:a}=e,i=lo(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,l=c?OP({ctx:t,originalRoi:o,position:n,alphaMap:a,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,u=lf(o,a,l);t.putImageData(u,n.x,n.y);let g=await bP(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:l,frameScore:i,skipped:!1,mode:c?"adaptive":"seed",temporalRoi:null,temporalDeltaFrame:null,temporalMatchDeltaFrame:null,cleanupResult:g}}async function ik(t,e,A=new Map,r={}){let n=AP(t,e),a=n?.detection||e,i=a?.candidate?.id||[a?.position?.x,a?.position?.y,a?.position?.width,a?.position?.height].join(":"),s=A.get(i)||{},o=await nk(t,a,{...r,seedAlphaGain:a?.alphaSeed?.seedGain??r.seedAlphaGain??Ta,previousAlphaGain:s.previousAlphaGain??null,previousTemporalRoi:s.previousTemporalRoi??null,previousTemporalDeltaFrame:s.previousTemporalDeltaFrame??null,previousTemporalMatchDeltaFrame:s.previousTemporalMatchDeltaFrame??null,allenkFdncnnFrameCache:s.allenkFdncnnFrameCache??r.allenkFdncnnFrameCache??{}});return s.previousAlphaGain=o.alphaGain,s.previousTemporalRoi=o.skipped?null:o.temporalRoi||null,s.previousTemporalDeltaFrame=o.skipped?null:o.temporalDeltaFrame||null,s.previousTemporalMatchDeltaFrame=o.skipped?null:o.temporalMatchDeltaFrame||null,s.allenkFdncnnFrameCache=s.allenkFdncnnFrameCache??r.allenkFdncnnFrameCache??{},A.set(i,s),{...o,selectedDetection:a,selection:n}}async function _P(t,e={}){let A=Number.isFinite(e.alphaGain)&&e.alphaGain>0?e.alphaGain:Ta,r=e.adaptiveAlpha===!0||e.adaptiveAlpha!==!1&&of,n=Uu(e),{residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:l}=n,u=typeof e.onProgress=="function"?e.onProgress:()=>{},g=YP(e.videoBitrate);u({phase:"detect",progress:0});let f=e.detection||await qu(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=ak(n,h),w=h?.alphaSeed?.seedGain,D=Number.isFinite(w)&&Math.abs(A-Ta)<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 E=qT(g);if(!await Id("avc",{width:p.width,height:p.height,bitrate:E.bitrate,latencyMode:E.latencyMode,bitrateMode:E.bitrateMode,hardwareAcceleration:E.hardwareAcceleration,contentHint:E.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:G,videoTrack:S}=await uf(t),k=GP(p.width,p.height),M=SP(k),R=new Yr,N=new ya({fastStart:"in-memory"}),V=new oo({format:N,target:R}),F=new io(k,E);V.addVideoTrack(F,{frameRate:p.frameRate});let K=await VT({input:G,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=new Map,ot=p.frameRate>0?1/p.frameRate:1/30;try{await V.start();let rt=KT(K),ct=new na(S);for await(let qe of ct.samples()){let Ne=Math.max(0,qe.timestamp-p.firstTimestamp);Ne<ae&&(Ne=ae+ot);let ut=Number.isFinite(qe.duration)&&qe.duration>0?qe.duration:ot;try{qe.draw(M,0,0,p.width,p.height);let kt=await ik(M,h,we,{seedAlphaGain:D,adaptiveAlpha:r,residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:l,allenkFdncnnRuntime:e.allenkFdncnnRuntime,allenkFdncnnSigma:e.allenkFdncnnSigma,allenkFdncnnPadding:y,allenkFdncnnTemporalReuse:e.allenkFdncnnTemporalReuse,highConfidenceThreshold:e.highConfidenceThreshold??FT,lowConfidenceThreshold:e.lowConfidenceThreshold??zT}),ve=kt.cleanupResult?.denoiseRuntimeStatus;ve==="applied"?Ae++:ve==="reused"&&De++,kt.skipped?_++:kt.mode==="adaptive"?W++:pe++}finally{qe.close()}await F.add(Ne,ut),ae=Ne,L++;let Be=p.frameCountEstimate||Math.max(1,Math.round((p.duration||0)*p.frameRate)),oe=Ne+ut,de=Number.isFinite(p.duration)&&p.duration>0?Math.max(0,Math.min(1,oe/p.duration)):null;u({phase:"export",progress:de??(Be?Math.min(1,L/Be):0),processedFrames:L,frameEstimate:Be,elapsedSeconds:oe,metadata:p,detection:h,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De,alphaGain:D})}F.close();let Mt=await rt;if(await V.finalize(),!R.buffer)throw new Error("\u89C6\u9891\u5BFC\u51FA\u5931\u8D25\uFF0C\u8F93\u51FA\u4E3A\u7A7A");return{blob:new Blob([R.buffer],{type:"video/mp4"}),metadata:p,detection:h,alphaGain:D,adaptiveAlpha:r,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,allenkFdncnnPadding:y,textureRepair:c,textureRepairStrength:l,residualCleanupStrength:a,videoBitrate:g,preserveAudio:e.preserveAudio!==!1,audioCopied:Mt.copied,audioPacketCount:Mt.packetCount,audioCodec:Mt.codec,audioSkipReason:Mt.skipReason,processedFrames:L,skippedFrames:_,adaptiveFrames:W,seedFrames:pe,aiDenoiseFrames:Ae,aiReuseFrames:De}}catch(rt){throw V.state!=="finalized"&&V.state!=="canceled"&&await V.cancel().catch(()=>{}),rt}finally{G.dispose()}}function ak(t={},e=null){return Number.isFinite(t.allenkFdncnnPadding)||t.denoiseBackend!==$e.ALLENK_FDNCNN_BROWSER_SPIKE?t.allenkFdncnnPadding:Ln(e?.position).padding}var MP=1.8,RP=12,QP=1,sk=1.8,ok=.4,ck=1,uk=1.2,lk=1.45,gk=.9;function dk(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*MP||Number.isFinite(i)&&i>=t.width*MP}function fk(t={}){let e=`${t.id||""} ${t.label||""}`.toLowerCase();return e.includes("inset")||e.includes("relocated")}function mk(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 dk(A)||fk(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:QP,adaptiveAlpha:!1,highQualityCleanup:nn,denoiseBackend:$e.CANVAS_FOOTPRINT_POLISH,edgeDenoiseStrength:ck,residualCleanupStrength:uk,sampleCount:RP,videoBitrateMbps:12,allowLowConfidence:!0}}function FP(){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:QP,adaptiveAlpha:!1,highQualityCleanup:nn,denoiseBackend:$e.ALLENK_FDNCNN_BROWSER_SPIKE,edgeDenoiseStrength:sk,residualCleanupStrength:ok,sampleCount:RP,videoBitrateMbps:"",allowLowConfidence:!1}}function hk(){return{...FP(),id:"veo-text-auto",edgeDenoiseStrength:lk,residualCleanupStrength:gk}}function df(t=null,e=null){return mk(t,e)?gf():t?.watermarkKind==="veo-text"?hk():FP()}function zP({windowObject:t=globalThis,adaptiveAlphaInput:e}={}){let A=t?.__gwrVideoOverrideAdaptiveAlpha;return typeof A!="boolean"||!e?!1:(e.checked=A,!0)}function NP({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 pk="gwr-debug-file-handoff";var ka="files",ff="latest",wk=new Set(["image/jpeg","image/png","image/webp"]),Bk=new Set([".jpg",".jpeg",".png",".webp"]),Pk=new Set([".mp4",".webm",".mov",".m4v"]);function yk(t){let e=typeof t?.name=="string"?t.name.toLowerCase():"",A=e.lastIndexOf(".");return A>=0?e.slice(A):""}function po(t){if(!t)return null;let e=typeof t.type=="string"?t.type.toLowerCase():"",A=yk(t);return e.startsWith("video/")||Pk.has(A)?"video":wk.has(e)||Bk.has(A)?"image":null}function mf(t){let e=Array.from(t||[]).filter(Boolean);return e.find(A=>po(A)==="video")||e.find(A=>po(A)==="image")||null}function HP(){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(pk,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(ka)||n.createObjectStore(ka,{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 UP(t,e=po(t)){if(!t||!e)throw new Error("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\u3002");let A={id:ff,kind:e,file:t,name:t.name||"",type:t.type||"",size:Number.isFinite(t.size)?t.size:0,updatedAt:Date.now()},r=await HP();return await new Promise((n,a)=>{let i=r.transaction(ka,"readwrite");i.objectStore(ka).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 qP(t=null){let e=await HP(),A=null;return await new Promise((r,n)=>{let a=e.transaction(ka,"readwrite"),i=a.objectStore(ka),s=i.get(ff);s.onsuccess=()=>{let o=s.result||null;o&&(!t||o.kind===t)&&(A=o,i.delete(ff))},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 Jf={};up(Jf,{InferenceSession:()=>Rf,TRACE:()=>$u,TRACE_EVENT_BEGIN:()=>ei,TRACE_EVENT_END:()=>ti,TRACE_FUNC_BEGIN:()=>Jn,TRACE_FUNC_END:()=>Xn,Tensor:()=>UA,default:()=>Vk,env:()=>at,registerBackend:()=>Do});var HA={};var _f=Object.defineProperty,Ik=Object.getOwnPropertyDescriptor,Dk=Object.getOwnPropertyNames,Ck=Object.prototype.hasOwnProperty,bk=(t=>typeof Ft<"u"?Ft:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof Ft<"u"?Ft:e)[A]}):t)(function(t){if(typeof Ft<"u")return Ft.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ze=(t,e)=>()=>(t&&(e=t(t=0)),e),el=(t,e)=>{for(var A in e)_f(t,A,{get:e[A],enumerable:!0})},Ek=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Dk(e))!Ck.call(t,n)&&n!==A&&_f(t,n,{get:()=>e[n],enumerable:!(r=Ik(e,n))||r.enumerable});return t},Sf=t=>Ek(_f({},"__esModule",{value:!0}),t),wo,an,Do,LP,cy,uy=ze(()=>{"use strict";wo=new Map,an=[],Do=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=wo.get(t);if(r===void 0)wo.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=an.indexOf(t);n!==-1&&an.splice(n,1);for(let a=0;a<an.length;a++)if(wo.get(an[a]).priority<=A){an.splice(a,0,t);return}an.push(t)}return}throw new TypeError("not a valid backend")},LP=async t=>{let e=wo.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}}},cy=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?an:A,n,a=[],i=new Set;for(let o of r){let c=await LP(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)})]}}),Tk=ze(()=>{"use strict";uy()}),ly,kk=ze(()=>{"use strict";ly="1.26.0"}),hf,bt,gy=ze(()=>{"use strict";kk(),hf="warning",bt={wasm:{},webgl:{},webgpu:{},versions:{common:ly},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}`);hf=t}},get logLevel(){return hf}},Object.defineProperty(bt,"logLevel",{enumerable:!0})}),at,xk=ze(()=>{"use strict";gy(),at=bt}),dy,fy,Gk=ze(()=>{"use strict";dy=(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 l=a*n,u=0,g=l,f=l*2,p=-1;i==="RGBA"?(u=0,g=l,f=l*2,p=l*3):i==="RGB"?(u=0,g=l,f=l*2):i==="RBG"&&(u=0,f=l,g=l*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[g++]-c[1])*o[1],E=(t.data[f++]-c[2])*o[2],C=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+E+","+C+")",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")},fy=(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,l;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?l=[0,0,0,0]:typeof o.bias=="number"?l=[o.bias,o.bias,o.bias,o.bias]:(l=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(l[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 g=4,f=0,p=1,h=2,y=3,w=0,D=u,E=u*2,C=-1;s==="RGBA"?(w=0,D=u,E=u*2,C=u*3):s==="RGB"?(w=0,D=u,E=u*2):s==="RBG"&&(w=0,E=u,D=u*2),r=A.createImageData(n,a);for(let G=0;G<a*n;f+=g,p+=g,h+=g,y+=g,G++)r.data[f]=(t.data[w++]-l[0])*c[0],r.data[p]=(t.data[D++]-l[1])*c[1],r.data[h]=(t.data[E++]-l[2])*c[2],r.data[y]=C===-1?255:(t.data[C++]-l[3])*c[3]}else throw new Error("Can not access image data");return r}}),Lu,my,hy,py,wy,By,Sk=ze(()=>{"use strict";Mf(),Lu=(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,l=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,g=0,f=1,p=2,h=3,y=0,w=c,D=c*2,E=-1;s==="RGB"&&(u=3,g=0,f=1,p=2,h=-1),o==="RGBA"?E=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let C=0;C<c;C++,g+=u,p+=u,f+=u,h+=u)l[y++]=(t[g]+i[0])/a[0],l[w++]=(t[f]+i[1])/a[1],l[D++]=(t[p]+i[2])/a[2],E!==-1&&h!==-1&&(l[E++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new rA("float32",l,[1,4,A,r]):new rA("float32",l,[1,3,A,r])},my=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=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(A){let l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(g=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=g,s.width=f}else s.tensorFormat="RGBA",s.height=g,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,g).data}else throw new Error("Can not access image data")}else if(r){let l,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(l=e.resizedHeight,u=e.resizedWidth):(l=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=l,s.width=u,e!==void 0){let g=o();g.width=u,g.height=l;let f=c(g);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,l).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 l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;return u.drawImage(t,0,0,f,g),i=u.getImageData(0,0,f,g).data,s.height=g,s.width=f,Lu(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,u)=>{let g=o(),f=c(g);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{g.width=p.width,g.height=p.height,f.drawImage(p,0,0,g.width,g.height);let h=f.getImageData(0,0,g.width,g.height);s.height=g.height,s.width=g.width,l(Lu(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return Lu(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},hy=(t,e)=>{let{width:A,height:r,download:n,dispose:a}=e,i=[1,r,A,4];return new rA({location:"texture",type:"float32",texture:t,dims:i,download:n,dispose:a})},py=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new rA({location:"gpu-buffer",type:A??"float32",gpuBuffer:t,dims:r,download:n,dispose:a})},wy=(t,e)=>{let{dataType:A,dims:r,download:n,dispose:a}=e;return new rA({location:"ml-tensor",type:A??"float32",mlTensor:t,dims:r,download:n,dispose:a})},By=(t,e,A)=>new rA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),$n,Io,pf,Py,Yk=ze(()=>{"use strict";$n=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Io=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),pf=!1,Py=()=>{if(!pf){pf=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&($n.set("int64",BigInt64Array),Io.set(BigInt64Array,"int64")),e&&($n.set("uint64",BigUint64Array),Io.set(BigUint64Array,"uint64")),r?($n.set("float16",A),Io.set(A,"float16")):$n.set("float16",Uint16Array)}}}),yy,Iy,vk=ze(()=>{"use strict";Mf(),yy=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},Iy=(t,e)=>{switch(t.location){case"cpu":return new rA(t.type,t.data,e);case"cpu-pinned":return new rA({location:"cpu-pinned",data:t.data,type:t.type,dims:e});case"texture":return new rA({location:"texture",texture:t.texture,type:t.type,dims:e});case"gpu-buffer":return new rA({location:"gpu-buffer",gpuBuffer:t.gpuBuffer,type:t.type,dims:e});case"ml-tensor":return new rA({location:"ml-tensor",mlTensor:t.mlTensor,type:t.type,dims:e});default:throw new Error(`tensorReshape: tensor location ${t.location} is not supported`)}}}),rA,Mf=ze(()=>{"use strict";Gk(),Sk(),Yk(),vk(),rA=class{constructor(t,e,A){Py();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=$n.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=$n.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=Io.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=yy(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 my(t,e)}static fromTexture(t,e){return hy(t,e)}static fromGpuBuffer(t,e){return py(t,e)}static fromMLTensor(t,e){return wy(t,e)}static fromPinnedBuffer(t,e,A){return By(t,e,A)}toDataURL(t){return dy(this,t)}toImageData(t){return fy(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 Iy(this,t)}}}),UA,Dy=ze(()=>{"use strict";Mf(),UA=rA}),$u,wf,Jn,Xn,ei,ti,Cy=ze(()=>{"use strict";gy(),$u=(t,e)=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||console.timeStamp(`${t}::ORT::${e}`)},wf=(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}`),$u("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},Jn=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||wf("BEGIN",t)},Xn=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||wf("END",t)},ei=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||console.time(`ORT::${t}`)},ti=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||console.timeEnd(`ORT::${t}`)}}),by,Ok=ze(()=>{"use strict";uy(),Dy(),Cy(),by=class Ey{constructor(e){this.handler=e}async run(e,A,r){Jn(),ei("InferenceSession.run");let n={},a={};if(typeof e!="object"||e===null||e instanceof UA||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 UA)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,l=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(l.indexOf(u)!==-1){let g=A[u];(g===null||g instanceof UA)&&(c=!0,i=!1,n[u]=g)}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 l=s[c];l instanceof UA?o[c]=l:o[c]=new UA(l.type,l.data,l.dims)}return ti("InferenceSession.run"),Xn(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){Jn(),ei("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 l=e,u=0,g=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>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(g=e.byteLength-u,typeof r=="number"){if(g=r,!Number.isSafeInteger(g))throw new RangeError("'byteLength' must be an integer.");if(g<=0||u+g>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.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(l,u,g)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await cy(i),c=await s.createInferenceSessionHandler(a,o);return ti("InferenceSession.create"),Xn(),new Ey(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}}}),Rf,_k=ze(()=>{"use strict";Ok(),Rf=by}),Mk=ze(()=>{"use strict"}),Rk=ze(()=>{"use strict"}),Qk=ze(()=>{"use strict"}),Fk=ze(()=>{"use strict"}),Ty={};el(Ty,{InferenceSession:()=>Rf,TRACE:()=>$u,TRACE_EVENT_BEGIN:()=>ei,TRACE_EVENT_END:()=>ti,TRACE_FUNC_BEGIN:()=>Jn,TRACE_FUNC_END:()=>Xn,Tensor:()=>UA,env:()=>at,registerBackend:()=>Do});var Ai=ze(()=>{"use strict";Tk(),xk(),_k(),Dy(),Mk(),Rk(),Cy(),Qk(),Fk()}),Qf=ze(()=>{"use strict"}),ky={};el(ky,{default:()=>xy});var Bf,Pf,xy,zk=ze(()=>{"use strict";Hy(),Ya(),Ff(),Bf="ort-wasm-proxy-worker",Pf=globalThis.self?.name===Bf,Pf&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":zf(A.wasm).then(()=>{Lf(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;jf(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=Xu(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Vf(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Kf(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;Wf(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},$f([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Zf(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),xy=Pf?null:t=>new Worker(t??AA,{type:"module",name:Bf})}),Gy={};el(Gy,{default:()=>Sy});async function jP(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=HA.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(G(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 l,u,g,f,p,h,y=console.log.bind(console),w=console.error.bind(console),D=y,E=w,C=!1,G=I=>I.startsWith("file://");function S(){pA.buffer!=R.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"&&(E=e[U]));pA=O.dc,De(),u=O.ec,rt(),se()}else if(Y==="run"){(function(Q){var U=(S(),K)[Q+52>>>2>>>0];Q=(S(),K)[Q+56>>>2>>>0],Jo(U,U-Q),Pe(U)})(O.Ob),us(O.Ob,0,0,1,0,0),Qa(),Rt(O.Ob),M||=!0;try{VA(O.bc,O.Tb)}catch(Q){if(Q!="unwind")throw Q}}else O.target!=="setimmediate"&&(Y==="checkMailbox"?M&&Rr():Y&&(E(`worker: received unknown command ${Y}`),E(O)))}catch(Q){throw ki(),Q}};var k=I,M=!1;self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=I}var R,N,V,F,K,L,_,W,pe,Ae=!1;function De(){var I=pA.buffer;e.HEAP8=R=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():WA.Ta()}function we(I){throw E(I="Aborted("+I+")"),C=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),p?.(I),I}function ot(){return{a:{R:Ol,f:pi,w:fl,e:Na,k:Ha,g:ml,S:hl,b:pl,G:wl,ta:Qo,j:Fo,L:qa,Ja:La,pa:or,ra:ja,Ka:Va,Ha:Ka,Aa:Wa,Ga:Za,Y:$a,qa:Ja,na:Xa,Ia:es,oa:ts,Pa:No,Da:Ho,la:As,ua:Qr,ia:wA,T:Uo,Ca:Rt,Ma:Pl,xa:yl,ya:Qt,za:Kt,va:Di,wa:qo,ja:Lo,Ra:Dl,Oa:Cl,V:bl,U:El,Na:BA,F:Tl,La:kl,ma:xl,u:Il,H:Gl,Q:Fr,ka:Ei,aa:Sl,Sa:Yl,Ea:Vo,Fa:Ko,sa:Le,I:pn,X:Wo,Ba:yA,W:ss,_:Gi,M:ps,$:IA,N:cA,v:jl,c:Ql,m:Ml,n:_l,q:oc,ba:Jl,x:Ll,o:ic,O:Xl,D:Pn,J:$l,ca:Zl,da:Wl,A:Hl,P:Kl,ea:Vl,z:hs,E:eg,d:Rl,r:nc,i:rc,Z:Nr,l:zl,p:ac,s:Fl,t:sc,y:Ul,fa:cc,B:pt,K:ql,C:tg,ga:Nl,ha:Bn,h:Ti,a:pA,Qa:kt}}}async function rt(){function I(Y,Q){return WA=Y.exports,WA=function(){var U=WA,X=Ie=>()=>Ie()>>>0,ue=Ie=>Se=>Ie(Se)>>>0;return(U=Object.assign({},U)).sb=X(U.sb),U.ub=ue(U.ub),U.Ib=ue(U.Ib),U.Jb=X(U.Jb),U.Nb=ue(U.Nb),U}(),mi.push(WA.vb),Y=WA,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,zr=Y.sb,os=e._free=Y.tb,cs=e._malloc=Y.ub,us=Y.xb,ki=Y.yb,Zo=Y.zb,ls=Y.Ab,gs=Y.Bb,xi=Y.Cb,$o=Y.Db,ke=Y.Eb,wn=Y.Fb,Jo=Y.Gb,Pe=Y.Hb,ds=Y.Ib,Ce=Y.Jb,Xo=Y.Kb,fs=Y.Lb,ec=Y.Mb,tc=Y.Nb,ms=Y.wb,u=Q,WA}var T,O=ot();return e.instantiateWasm?new Promise(Y=>{e.instantiateWasm(O,(Q,U)=>{Y(I(Q,U))})}):n?I(new WebAssembly.Instance(u,ot()),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",HA.url).href,T=await async function(Y){var Q=pe;if(!l&&!G(Q))try{var U=fetch(Q,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(U,Y)}catch(X){E(`wasm streaming compile failed: ${X}`),E("falling back to ArrayBuffer instantiation")}return async function(X,ue){try{var Ie=await async function(Se){if(!l)try{var wt=await a(Se);return new Uint8Array(wt)}catch{}if(Se==pe&&l)Se=new Uint8Array(l);else{if(!i)throw"both async and sync fetching of the wasm failed";Se=i(Se)}return Se}(X);return await WebAssembly.instantiate(Ie,ue)}catch(Se){E(`failed to asynchronously prepare wasm: ${Se}`),we(Se)}}(Q,Y)}(O),I(T.instance,T.module))}class ct{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var Mt=I=>{I.terminate(),I.onmessage=()=>{}},qe=[],Ne=0,ut=null,Be=I=>{sA.length==0&&(Fa(),jA(sA[0]));var T=sA.pop();if(!T)return 6;_r.push(T),xt[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},oe=0,de=(I,T,...O)=>{var Y,Q=16*O.length,U=Ce(),X=ds(Q),ue=X>>>3;for(Y of O)typeof Y=="bigint"?((S(),W)[ue++>>>0]=1n,(S(),W)[ue++>>>0]=Y):((S(),W)[ue++>>>0]=0n,(S(),_)[ue++>>>0]=Y);return I=Zo(I,0,Q,X,T),Pe(U),I};function kt(I){if(n)return de(0,1,I);if(g=I,!(0<oe)){for(var T of _r)Mt(T);for(T of sA)Mt(T);sA=[],_r=[],xt={},C=!0}s(0,new ct(I))}function ve(I){if(n)return de(1,0,I);Le(I)}var Le=I=>{if(g=I,n)throw ve(I),"unwind";kt(I)},sA=[],_r=[],mi=[],xt={},Mr=I=>{var T=I.Ob;delete xt[T],sA.push(I),_r.splice(_r.indexOf(I),1),I.Ob=0,ls(T)};function Qa(){mi.forEach(I=>I())}var jA=I=>new Promise(T=>{I.onmessage=Q=>{var U=Q.data;if(Q=U.Pb,U.Sb&&U.Sb!=zr()){var X=xt[U.Sb];X?X.postMessage(U,U.Xb):E(`Internal error! Worker sent a message "${Q}" to target pthread ${U.Sb}, but that thread no longer exists!`)}else Q==="checkMailbox"?Rr():Q==="spawnThread"?Be(U):Q==="cleanupThread"?yi(()=>{Mr(xt[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&&E(`worker sent an unknown command ${Q}`)},I.onerror=Q=>{throw E(`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:pA,ec:u})});function Fa(){var I=new Worker((()=>{let T=URL;return HA.url>"file:"&&HA.url<"file;"?new T("ort.wasm.bundle.min.mjs",HA.url):new URL(HA.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});sA.push(I)}var pA,za=[],Te=I=>{var T=za[I];return T||(za[I]=T=ms.get(I)),T},VA=(I,T)=>{oe=0,I=Te(I)(T),0<oe?g=I:gs(I)},hi=[],ar=0;function pi(I){var T=new wi(I>>>=0);return(S(),R)[T.Qb+12>>>0]==0&&(sr(T,!0),ar--),Mo(T,!1),hi.push(T),tc(I)}var nt=0,fl=()=>{ke(0,0);var I=hi.pop();Xo(I.Ub),nt=0};function sr(I,T){T=T?1:0,(S(),R)[I.Qb+12>>>0]=T}function Mo(I,T){T=T?1:0,(S(),R)[I.Qb+13>>>0]=T}class wi{constructor(T){this.Ub=T,this.Qb=T-24}}var Bi=I=>{var T=nt;if(!T)return wn(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 wn(0),T;for(var Q of I){if(Q===0||Q===Y)break;if(ec(Q,Y,O.Qb+16))return wn(Q),T}return wn(Y),T};function Na(){return Bi([])}function Ha(I){return Bi([I>>>0])}function ml(I,T,O,Y){return Bi([I>>>0,T>>>0,O>>>0,Y>>>0])}var hl=()=>{var I=hi.pop();I||we("no exception to throw");var T=I.Ub;throw(S(),R)[I.Qb+13>>>0]==0&&(hi.push(I),Mo(I,!0),sr(I,!1),ar++),fs(T),nt=T};function pl(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,fs(I),ar++,nt=I}var wl=()=>ar;function Ro(I,T,O,Y){return n?de(2,1,I,T,O,Y):Qo(I,T,O,Y)}function Qo(I,T,O,Y){if(I>>>=0,T>>>=0,O>>>=0,Y>>>=0,!globalThis.SharedArrayBuffer)return 6;var Q=[];return n&&Q.length===0?Ro(I,T,O,Y):(I={ac:O,Ob:I,Tb:Y,Xb:Q},n?(I.Pb="spawnThread",postMessage(I,Q),0):Be(I))}function Fo(I){throw nt||=I>>>0,nt}var Ua=globalThis.TextDecoder&&new TextDecoder,zo=(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&&Ua)return Ua.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)?zo((S(),N),I,T,O):"";function qa(I,T,O){return n?de(3,1,I,T,O):0}function La(I,T){if(n)return de(4,1,I,T)}function or(I,T){if(n)return de(5,1,I,T)}function ja(I,T,O){if(n)return de(6,1,I,T,O)}function Va(I,T,O){return n?de(7,1,I,T,O):0}function Ka(I,T){if(n)return de(8,1,I,T)}function Wa(I,T,O){if(n)return de(9,1,I,T,O)}function Za(I,T,O,Y){if(n)return de(10,1,I,T,O,Y)}function $a(I,T,O,Y){if(n)return de(11,1,I,T,O,Y)}function Ja(I,T,O,Y){if(n)return de(12,1,I,T,O,Y)}function Xa(I){if(n)return de(13,1,I)}function es(I,T){if(n)return de(14,1,I,T)}function ts(I,T,O){if(n)return de(15,1,I,T,O)}var No=()=>we("");function Ho(I){us(I>>>0,!r,1,!A,131072,!1),Qa()}var yi=I=>{if(!C)try{if(I(),!(0<oe))try{n?zr()&&gs(g):Le(g)}catch(T){T instanceof ct||T=="unwind"||s(0,T)}}catch(T){T instanceof ct||T=="unwind"||s(0,T)}},Bl=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Rt(I){I>>>=0,Bl||(Atomics.waitAsync((S(),F),I>>>2,I).value.then(Rr),I+=128,Atomics.store((S(),F),I>>>2,1))}var Rr=()=>yi(()=>{var I=zr();I&&(Rt(I),$o())});function As(I,T){(I>>>=0)==T>>>0?setTimeout(Rr):n?postMessage({Sb:I,Pb:"checkMailbox"}):(I=xt[I])&&I.postMessage({Pb:"checkMailbox"})}var rs=[];function Qr(I,T,O,Y,Q){for(T>>>=0,Q>>>=0,rs.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],rs.push(U)}return(T?Ac[T]:vl[I])(...rs)}var wA=()=>{oe=0};function Uo(I){I>>>=0,n?postMessage({Pb:"cleanupThread",cc:I}):Mr(xt[I])}function Pl(I){}function yl(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 ns=I=>I%4==0&&(I%100!=0||I%400==0),KA=[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 Qt(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=(ns(I.getFullYear())?KA: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 Kt(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=(ns(T.getFullYear())?KA: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?de(16,1,I,T,O,Y,Q,U,X):-52}function qo(I,T,O,Y,Q,U){if(n)return de(17,1,I,T,O,Y,Q,U)}var mn={},Il=()=>performance.timeOrigin+performance.now();function Lo(I,T){if(n)return de(18,1,I,T);if(mn[I]&&(clearTimeout(mn[I].id),delete mn[I]),!T)return 0;var O=setTimeout(()=>{delete mn[I],yi(()=>xi(I,performance.timeOrigin+performance.now()))},T);return mn[I]={id:O,jc:T},0}var cr=(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 Dl(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=ue=>{var Ie=Math.abs(ue);return`UTC${0<=ue?"-":"+"}${String(Math.floor(Ie/60)).padStart(2,"0")}${String(Ie%60).padStart(2,"0")}`})(U),T=T(Q),Q<U?(cr(I,O,17),cr(T,Y,17)):(cr(I,Y,17),cr(T,O,17))}var BA=()=>Date.now(),PA=1;function Cl(I,T,O){if(O>>>=0,!(0<=I&&3>=I))return 28;if(I===0)I=Date.now();else{if(!PA)return 52;I=performance.timeOrigin+performance.now()}return I=Math.round(1e6*I),(S(),W)[O>>>3>>>0]=BigInt(I),0}var Ci=[];function bl(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 Ac[I](...Ci)}var El=()=>{};function Tl(I,T){return E(Pi(I>>>0,T>>>0))}var kl=()=>{throw oe+=1,"unwind"};function xl(){return 4294901760}var Gl=()=>navigator.hardwareConcurrency,ur={},is=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},Pt=I=>{for(var T of I)(I=bi(T))&&(ur[I]=T)};function Sl(){var I=Error().stack.toString().split(`
100
- `);return I[0]=="Error"&&I.shift(),Pt(I),ur.Vb=bi(I[3]),ur.$b=I,ur.Vb}function Fr(I){if(!(I=ur[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]}os(Fr.Wb??0),T=is(I)+1;var O=cs(T);return O&&cr(I,O,T),Fr.Wb=O,Fr.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))-pA.buffer.byteLength+65535)/65536|0;try{pA.grow(Y),De();var Q=1;break e}catch{}Q=void 0}if(Q)return!0}return!1}function Yl(I,T,O){if(I>>>=0,T>>>=0,ur.Vb==I)var Y=ur.$b;else(Y=Error().stack.toString().split(`
101
- `))[0]=="Error"&&Y.shift(),Pt(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 hn,as={},jo=()=>{if(!hn){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 as)as[I]===void 0?delete T[I]:T[I]=as[I];var O=[];for(I in T)O.push(`${I}=${T[I]}`);hn=O}return hn};function Vo(I,T){if(n)return de(19,1,I,T);I>>>=0,T>>>=0;var O,Y=0,Q=0;for(O of jo()){var U=T+Y;(S(),K)[I+Q>>>2>>>0]=U,Y+=cr(O,U,1/0)+1,Q+=4}return 0}function Ko(I,T){if(n)return de(20,1,I,T);I>>>=0,T>>>=0;var O=jo();for(var Y of((S(),K)[I>>>2>>>0]=O.length,I=0,O))I+=is(Y)+1;return(S(),K)[T>>>2>>>0]=I,0}function pn(I){return n?de(21,1,I):52}function Wo(I,T,O,Y){return n?de(22,1,I,T,O,Y):52}function yA(I,T,O,Y){return n?de(23,1,I,T,O,Y):70}var oA=[null,[],[]];function ss(I,T,O,Y){if(n)return de(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],ue=(S(),K)[T+4>>>2>>>0];T+=8;for(var Ie=0;Ie<ue;Ie++){var Se=I,wt=(S(),N)[X+Ie>>>0],Wt=oA[Se];wt===0||wt===10?((Se===1?D:E)(zo(Wt)),Wt.length=0):Wt.push(wt)}Q+=ue}return(S(),K)[Y>>>2>>>0]=Q,0}function Ti(I){return I>>>0}n||function(){for(var I=e.numThreads-1;I--;)Fa();qe.push(async()=>{var T=async function(){if(!n)return Promise.all(sA.map(jA))}();Ne++,await T,--Ne==0&&ut&&(T=ut,ut=null,T())})}(),n||(pA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),De()),e.wasmBinary&&(l=e.wasmBinary),e.stackSave=()=>Ce(),e.stackRestore=I=>Pe(I),e.stackAlloc=I=>ds(I),e.setValue=function(I,T,O="i8"){switch(O.endsWith("*")&&(O="*"),O){case"i1":case"i8":(S(),R)[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(),R)[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=cr,e.lengthBytesUTF8=is;var zr,os,cs,us,ki,Zo,ls,gs,xi,$o,ke,wn,Jo,Pe,ds,Ce,Xo,fs,ec,tc,ms,WA,vl=[kt,ve,Ro,qa,La,or,ja,Va,Ka,Wa,Za,$a,Ja,Xa,es,ts,Di,qo,Lo,Vo,Ko,pn,Wo,yA,ss],Ac={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 Ol(){return typeof wasmOffsetConverter<"u"}function _l(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 Ml(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 Rl(I){var T=Ce();try{Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function Ql(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function rc(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 nc(I,T){var O=Ce();try{Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function ic(I,T,O,Y,Q,U,X){var ue=Ce();try{return Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Fl(I,T,O,Y,Q,U){var X=Ce();try{Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function zl(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 ac(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 sc(I,T,O,Y,Q,U,X){var ue=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Bn(I,T,O,Y,Q,U,X){var ue=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Nl(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function oc(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 Hl(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 Ul(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function ql(I,T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt){var DA=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt)}catch(CA){if(Pe(DA),CA!==CA+0)throw CA;ke(1,0)}}function Ll(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function hs(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 cc(I,T,O,Y,Q,U,X,ue,Ie){var Se=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie)}catch(wt){if(Pe(Se),wt!==wt+0)throw wt;ke(1,0)}}function jl(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function Vl(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 Kl(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;return ke(1,0),0n}}function Wl(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 Zl(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 $l(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function Jl(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function Xl(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{return Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function eg(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 ps(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 Pn(I,T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt){var DA=Ce();try{return Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt)}catch(CA){if(Pe(DA),CA!==CA+0)throw CA;ke(1,0)}}function pt(I,T,O,Y,Q,U,X,ue,Ie,Se,wt){var Wt=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt)}catch(DA){if(Pe(Wt),DA!==DA+0)throw DA;ke(1,0)}}function tg(I,T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt,DA,CA,Ag,rg){var ng=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Wt,DA,CA,Ag,rg)}catch(ws){if(Pe(ng),ws!==ws+0)throw ws;ke(1,0)}}function IA(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 Gi(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 Nr(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 se(){if(0<Ne)ut=se;else if(n)f?.(e),ae();else{for(var I=qe;0<I.length;)I.shift()(e);0<Ne?ut=se:(e.calledRun=!0,C||(ae(),f?.(e)))}}return n||(WA=await rt(),se()),e.PTR_SIZE=4,Ae?e:new Promise((I,T)=>{f=I,p=T})}var Sy,VP,Nk=ze(()=>{"use strict";Sy=jP,VP=globalThis.self?.name?.startsWith("em-pthread"),VP&&jP()}),yf,Yf,KP,AA,Yy,ju,WP,ZP,If,$P,Df,vy,Cf,Oy,Ff=ze(()=>{"use strict";Qf(),yf=typeof location>"u"?void 0:location.origin,Yf=HA.url>"file:"&&HA.url<"file;",KP=()=>{if(Yf){let t=URL;return new URL(new t("ort.wasm.bundle.min.mjs",HA.url).href,yf).href}return HA.url},AA=KP(),Yy=()=>{if(AA&&!AA.startsWith("blob:"))return AA.substring(0,AA.lastIndexOf("/")+1)},ju=(t,e)=>{try{let A=e??AA;return(A?new URL(t,A):new URL(t)).origin===yf}catch{return!1}},WP=(t,e)=>{let A=e??AA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},ZP=(t,e)=>`${e??"./"}${t}`,If=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},$P=async t=>(await import(t)).default,Df=(zk(),Sf(ky)).default,vy=async()=>{if(!AA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(ju(AA))return[void 0,Df()];let t=await If(AA);return[t,Df(t)]},Cf=(Nk(),Sf(Gy)).default,Oy=async(t,e,A,r)=>{let n=Cf&&!(t||e);if(n)if(AA)n=ju(AA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,Cf];{let a="ort-wasm-simd-threaded.mjs",i=t??WP(a,e),s=A&&i&&!ju(i,e),o=s?await If(i):i??ZP(a,e);return[s?o:void 0,await $P(o)]}}}),bf,Vu,Bo,Ef,JP,XP,ey,zf,tt,Ya=ze(()=>{"use strict";Ff(),Vu=!1,Bo=!1,Ef=!1,JP=()=>{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}},XP=()=>{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}},ey=()=>{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}},zf=async t=>{if(Vu)return Promise.resolve();if(Bo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Ef)throw new Error("previous call to 'initializeWebAssembly()' failed.");Bo=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!ey())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!XP())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=JP();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,l=t.wasmBinary,[u,g]=await Oy(s,a,A>1,!!l||!!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(l)w.wasmBinary=l,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=Yy();D&&(w.locateFile=E=>D+E)}g(w).then(D=>{Bo=!1,Vu=!0,bf=D,h(),u&&URL.revokeObjectURL(u)},D=>{Bo=!1,Ef=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},tt=()=>{if(Vu&&bf)return bf;throw new Error("WebAssembly is not initialized yet.")}}),NA,Ju,We,Nf=ze(()=>{"use strict";Ya(),NA=(t,e)=>{let A=tt(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},Ju=(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")Ju(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=tt(),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)}}}),_y,Hk=ze(()=>{"use strict";Ya(),Nf(),_y=t=>{let e=tt(),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=NA(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&&Ju(t.extra,"",new WeakSet,(i,s)=>{let o=NA(i,r),c=NA(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}}}),ty,Ay,ry,Vn,ny,My,Uk=ze(()=>{"use strict";Ya(),Nf(),ty=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}`)}},Ay=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},ry=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)},Vn=(t,e,A,r)=>{let n=NA(e,r),a=NA(A,r);tt()._OrtAddSessionConfigEntry(t,n,a)!==0&&We(`Can't set a session config entry: ${e} - ${A}.`)},ny=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",Vn(t,"session.disable_quant_qdq","1",A),Vn(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Vn(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}`);Vn(t,"preferredLayout",u.preferredLayout,A)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${a}`)}let s=NA(a,A),o=i.length,c=0,l=0;if(o>0){c=tt()._malloc(o*tt().PTR_SIZE),A.push(c),l=tt()._malloc(o*tt().PTR_SIZE),A.push(l);for(let u=0;u<o;u++)tt().setValue(c+u*tt().PTR_SIZE,i[u][0],"*"),tt().setValue(l+u*tt().PTR_SIZE,i[u][1],"*")}await tt()._OrtAppendExecutionProvider(t,s,c,l,o)!==0&&We(`Can't append execution provider: ${a}.`)}},My=async t=>{let e=tt(),A=0,r=[],n=t||{};ry(n);try{let a=ty(n.graphOptimizationLevel??"all"),i=Ay(n.executionMode??"sequential"),s=typeof n.logId=="string"?NA(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 l=typeof n.optimizedModelFilePath=="string"?NA(n.optimizedModelFilePath,r):0;if(A=e._OrtCreateSessionOptions(a,!!n.enableCpuMemArena,!!n.enableMemPattern,i,!!n.enableProfiling,0,s,o,c,l),A===0&&We("Can't create session options."),n.executionProviders&&await ny(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Vn(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,g]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof g!="number"||!Number.isInteger(g)||g<0)throw new Error(`free dimension override value must be a non-negative integer: ${g}`);let f=NA(u,r);e._OrtAddFreeDimensionOverride(A,f,g)!==0&&We(`Can't set a free dimension override: ${u} - ${g}.`)}return n.extra!==void 0&&Ju(n.extra,"",new WeakSet,(u,g)=>{Vn(A,u,g,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,Zu,Sa,Ry,Qy,Hf,Uf,Fy,zy=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}`)}},Zu=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}`)}},Sa=(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},Ry=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}`)}},Qy=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}`)}},Hf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Uf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Fy=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}`)}}}),qf,Ny=ze(()=>{"use strict";Qf(),qf=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)}}),iy,Lf,jf,Kn,ay,Tf,Xu,Vf,Kf,kf,Wf,Zf,$f,Hy=ze(()=>{"use strict";Ai(),Hk(),Uk(),zy(),Ya(),Nf(),Ny(),iy=(t,e)=>{tt()._OrtInit(t,e)!==0&&We("Can't initialize onnxruntime.")},Lf=async t=>{iy(t.wasm.numThreads,Qy(t.logLevel))},jf=async(t,e)=>{tt().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")},Kn=new Map,ay=t=>{let e=tt(),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)}},Tf=(t,e)=>{let A=tt(),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],l=[];for(let u=0;u<c;u++){let g=Number(A.getValue(n+8+u*a,"*"));l.push(g!==0?A.UTF8ToString(g):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,l]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},Xu=t=>{let e=tt(),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]},Vf=async(t,e)=>{let A,r,n=tt();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=Xu(t);let a=0,i=0,s=0,o=[],c=[],l=[];try{if([i,o]=await My(e),e?.externalData&&n.mountExternalData){let E=[];for(let C of e.externalData){let G=typeof C=="string"?C:C.path;E.push(qf(typeof C=="string"?C:C.data).then(S=>{n.mountExternalData(G,S)}))}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 C=E,G=C?.context,S=C?.gpuDevice,k=C?.deviceType,M=C?.powerPreference;G?n.currentContext=G:S?n.currentContext=await n.webnnCreateMLContext(S):n.currentContext=await n.webnnCreateMLContext({deviceType:k,powerPreference:M})}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,g]=ay(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let E=0;E<u;E++){let[C,G,S]=Tf(a,E);C===0&&We("Can't get an input name."),c.push(C);let k=n.UTF8ToString(C);p.push(k),y.push(G===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Zu(G),shape:S})}for(let E=0;E<g;E++){let[C,G,S]=Tf(a,E+u);C===0&&We("Can't get an output name."),l.push(C);let k=n.UTF8ToString(C);h.push(k),w.push(G===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:Zu(G),shape:S})}return Kn.set(a,[a,c,l,null,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(g=>n._OrtFree(g)),l.forEach(g=>n._OrtFree(g)),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?.()}},Kf=t=>{let e=tt(),A=Kn.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."),Kn.delete(t)},kf=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=tt(),o=s.PTR_SIZE,c=t[0],l=t[1],u=t[3],g=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=Sa(Ga(c),l);{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=Sa(Ga(c),l);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),l)}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,NA(w[D],A),"*")}}else{let D=s.webnnIsGraphInput,E=s.webnnIsGraphOutput;if(c!=="string"&&D&&E){let C=s.UTF8ToString(n);if(D(r,C)||E(r,C)){let G=Ga(c);p=Sa(G,l),g="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 M=await S(r,G,l);k(M,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=M}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*l.length);try{l.forEach((D,E)=>s.setValue(y+E*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(Ga(c),f,p,y,l.length,Fy(g));w===0&&We(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},Wf=async(t,e,A,r,n,a)=>{let i=tt(),s=i.PTR_SIZE,o=Kn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],l=o[1],u=o[2],g=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],E=[],C=[],G=[],S=[],k=i.stackSave(),M=i.stackAlloc(h*s),R=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=_y(a),ei("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await kf(A[_],E,G,t,l[e[_]],e[_],f);for(let _=0;_<y;_++)await kf(n[_],C,G,t,u[r[_]],h+r[_],f);ti("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(M+_*s,E[_],"*"),i.setValue(R+_*s,l[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,C[_],"*"),i.setValue(V+_*s,u[r[_]],"*");i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;F=await i._OrtRun(c,R,M,h,V,y,N,w),F!==0&&We("failed to call OrtRun().");let K=[],L=[];ei("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===C[_]||S.includes(C[_])){K.push(n[_]),W!==C[_]&&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 ot=s===4?"i32":"i64",rt=Number(i.getValue(Ae,ot));we=i.getValue(Ae+s,"*");let ct=i.getValue(Ae+s*2,"*"),Mt=Number(i.getValue(Ae+s*3,ot)),qe=[];for(let Be=0;Be<Mt;Be++)qe.push(Number(i.getValue(ct+Be*s,ot)));i._OrtFree(ct)!==0&&We("Can't free memory for tensor dims.");let Ne=qe.reduce((Be,oe)=>Be*oe,1);ae=Zu(rt);let ut=g?.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 oe=0;oe<Ne;oe++){let de=i.getValue(we+oe*s,"*"),kt=i.getValue(we+(oe+1)*s,"*"),ve=oe===Ne-1?void 0:kt-de;Be.push(i.UTF8ToString(de,ve))}K.push([ae,qe,Be,"cpu"])}else if(ut==="gpu-buffer"&&Ne>0){let Be=i.jsepGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let oe=Be(we),de=Sa(rt,Ne);if(de===void 0||!Hf(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0,K.push([ae,qe,{gpuBuffer:oe,download:i.jsepCreateDownloader(oe,de,ae),dispose:()=>{i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.")}},"gpu-buffer"])}else if(ut==="ml-tensor"&&Ne>0){let Be=i.webnnEnsureTensor,oe=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!oe)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Sa(rt,Ne)===void 0||!Uf(ae))throw new Error(`Unsupported data type: ${ae}`);if(!oe(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let de=await Be(t,we,rt,qe,!1);De=!0,K.push([ae,qe,{mlTensor:de,download:i.webnnCreateMLTensorDownloader(we,ae),dispose:()=>{i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ut==="ml-tensor-cpu-output"&&Ne>0){let Be=i.webnnCreateMLTensorDownloader(we,ae)(),oe=K.length;De=!0,L.push((async()=>{let de=[oe,await Be];return i.webnnReleaseTensorId(we),i._OrtReleaseTensor(W),de})()),K.push([ae,qe,[],"cpu"])}else{let Be=Ry(ae),oe=new Be(Ne);new Uint8Array(oe.buffer,oe.byteOffset,oe.byteLength).set(i.HEAPU8.subarray(we,we+oe.byteLength)),K.push([ae,qe,oe,"cpu"])}}finally{i.stackRestore(pe),ae==="string"&&we&&i._free(we),De||i._OrtReleaseTensor(W)}}g&&!f&&(i._OrtClearBoundOutputs(g.handle)!==0&&We("Can't clear bound outputs."),Kn.set(t,[c,l,u,g,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return ti("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),E.forEach(F=>i._OrtReleaseTensor(F)),C.forEach(F=>i._OrtReleaseTensor(F)),G.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Zf=t=>{let e=tt(),A=Kn.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)},$f=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),sn,fA,xa,Po,yo,Ku,xf,Wu,Wn,Zn,sy,Uy,qy,Ly,jy,Vy,Ky,Wy,Zy=ze(()=>{"use strict";Ai(),Hy(),Ya(),Ff(),sn=()=>!!at.wasm.proxy&&typeof document<"u",xa=!1,Po=!1,yo=!1,Wu=new Map,Wn=(t,e)=>{let A=Wu.get(t);A?A.push(e):Wu.set(t,[e])},Zn=()=>{if(xa||!Po||yo||!fA)throw new Error("worker not ready")},sy=t=>{switch(t.data.type){case"init-wasm":xa=!1,t.data.err?(yo=!0,xf[1](t.data.err)):(Po=!0,xf[0]()),Ku&&(URL.revokeObjectURL(Ku),Ku=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=Wu.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},Uy=async()=>{if(!Po){if(xa)throw new Error("multiple calls to 'initWasm()' detected.");if(yo)throw new Error("previous call to 'initWasm()' failed.");if(xa=!0,sn())return new Promise((t,e)=>{fA?.terminate(),vy().then(([A,r])=>{try{fA=r,fA.onerror=a=>e(a),fA.onmessage=sy,xf=[t,e];let n={type:"init-wasm",in:at};!n.in.wasm.wasmPaths&&(A||Yf)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.wasm",HA.url).href}),fA.postMessage(n),Ku=A}catch(n){e(n)}},e)});try{await zf(at.wasm),await Lf(at),Po=!0}catch(t){throw yo=!0,t}finally{xa=!1}}},qy=async t=>{if(sn())return Zn(),new Promise((e,A)=>{Wn("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:at}};fA.postMessage(r)});await jf(at,t)},Ly=async t=>sn()?(Zn(),new Promise((e,A)=>{Wn("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};fA.postMessage(r,[t.buffer])})):Xu(t),jy=async(t,e)=>{if(sn()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Zn(),new Promise((A,r)=>{Wn("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 Vf(t,e)},Vy=async t=>{if(sn())return Zn(),new Promise((e,A)=>{Wn("release",[e,A]);let r={type:"release",in:t};fA.postMessage(r)});Kf(t)},Ky=async(t,e,A,r,n,a)=>{if(sn()){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 Zn(),new Promise((i,s)=>{Wn("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};fA.postMessage(c,$f(o))})}else return Wf(t,e,A,r,n,a)},Wy=async t=>{if(sn())return Zn(),new Promise((e,A)=>{Wn("end-profiling",[e,A]);let r={type:"end-profiling",in:t};fA.postMessage(r)});Zf(t)}}),Gf,oy,$y,qk=ze(()=>{"use strict";Ai(),Zy(),zy(),Qf(),Ny(),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()}`)}},oy=t=>{switch(t[3]){case"cpu":return new UA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!Hf(e))throw new Error(`not supported data type: ${e} for deserializing GPU tensor`);let{gpuBuffer:A,download:r,dispose:n}=t[2];return UA.fromGpuBuffer(A,{dataType:e,dims:t[1],download:r,dispose:n})}case"ml-tensor":{let e=t[0];if(!Uf(e))throw new Error(`not supported data type: ${e} for deserializing MLTensor tensor`);let{mlTensor:A,download:r,dispose:n}=t[2];return UA.fromMLTensor(A,{dataType:e,dims:t[1],download:r,dispose:n})}default:throw new Error(`invalid data location: ${t[3]}`)}},$y=class{async fetchModelAndCopyToWasmMemory(t){return Ly(await qf(t))}async loadModel(t,e){Jn();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await jy(A,e),Xn()}async dispose(){return Vy(this.sessionId)}async run(t,e,A){Jn();let r=[],n=[];Object.entries(t).forEach(u=>{let g=u[0],f=u[1],p=this.inputNames.indexOf(g);if(p===-1)throw new Error(`invalid input '${g}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let g=u[0],f=u[1],p=this.outputNames.indexOf(g);if(p===-1)throw new Error(`invalid output '${g}'`);a.push(f),i.push(p)});let s=r.map((u,g)=>Gf(u,()=>`input "${this.inputNames[n[g]]}"`)),o=a.map((u,g)=>u?Gf(u,()=>`output "${this.outputNames[i[g]]}"`):null),c=await Ky(this.sessionId,n,s,i,o,A),l={};for(let u=0;u<c.length;u++)l[this.outputNames[i[u]]]=a[u]??oy(c[u]);return Xn(),l}startProfiling(){}endProfiling(){Wy(this.sessionId)}}}),Jy={};el(Jy,{OnnxruntimeWebAssemblyBackend:()=>Of,initializeFlags:()=>vf,wasmBackend:()=>Xy});var vf,Of,Xy,Lk=ze(()=>{"use strict";Ai(),Zy(),qk(),vf=()=>{(typeof at.wasm.initTimeout!="number"||at.wasm.initTimeout<0)&&(at.wasm.initTimeout=0);let t=at.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.`),at.wasm.simd=!1),typeof at.wasm.proxy!="boolean"&&(at.wasm.proxy=!1),typeof at.wasm.trace!="boolean"&&(at.wasm.trace=!1),typeof at.wasm.numThreads!="number"||!Number.isInteger(at.wasm.numThreads)||at.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)at.wasm.numThreads=1;else{let e=typeof navigator>"u"?bk("node:os").cpus().length:navigator.hardwareConcurrency;at.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Of=class{async init(t){vf(),await Uy(),await qy(t)}async createInferenceSessionHandler(t,e){let A=new $y;return await A.loadModel(t,e),A}},Xy=new Of});Ai();Ai();Ai();var jk="1.26.0",Vk=Ty;{let t=(Lk(),Sf(Jy)).wasmBackend;Do("cpu",t,10),Do("wasm",t,10)}Object.defineProperty(at.versions,"web",{value:jk,enumerable:!0});function tl(){return globalThis.performance?.now?globalThis.performance.now():Date.now()}function e0(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 Kk(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 Xf({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:l="auto"}={}){if(r==="webgpu"&&!t)throw new Error("allenk FDnCNN WebGPU runtime requires an injected onnxruntime-web/webgpu module");let u=t||Jf,g=e0(i,[1,4,72,72]),f=e0(s,[1,3,g[2],g[3]]);if(u.env?.wasm){let w=!!(globalThis.crossOriginIsolated&&typeof SharedArrayBuffer<"u"),D=Number(globalThis.navigator?.hardwareConcurrency)||1,E=l==="auto"?w?Math.max(1,Math.min(4,Math.ceil(D/2))):1:Math.max(1,Math.round(Number(l)||1));u.env.wasm.numThreads=r==="wasm"?E: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=tl(),h=A||await u.InferenceSession.create(e,{executionProviders:[r],graphOptimizationLevel:o}),y=tl()-p;return{id:`allenk-fdncnn-onnx-${r}`,status:"prototype",executionProvider:r,inputName:n,outputName:a,inputShape:g,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,g),E=tl(),C=await h.run({[n]:D}),G=tl()-E,S=C[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:G,macs:this.estimateMacs(g[3],g[2])}},async denoiseImageData({imageData:w,sigma:D}={}){Kk(w,g);let E=lP({imageData:w,sigma:D}),C=await this.execute(E);return{...C,imageData:{width:w.width,height:w.height,data:gP({output:C.output,width:w.width,height:w.height})}}}}}var Re=t=>document.getElementById(t),Cx=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.js",wasm:"./onnxruntime/ort-wasm-simd-threaded.wasm"}),DI=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},Yo=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 At(t,e="info"){q.status.textContent=t||"",q.status.dataset.tone=e}function bx(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 Ex(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 bx(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 Tx(t=Ln()){let e=t||Ln();if(!Yo.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 Ex(DI);if(!a.ok)throw console.warn("WebGPU AI runtime skipped:",a.reason),new Error(a.reason);At("\u6B63\u5728\u542F\u7528 WebGPU AI \u53BB\u6C34\u5370...");let i=await Promise.resolve().then(()=>(II(),yI));return await Xf({ort:i,modelBytes:n,executionProvider:"webgpu",wasmPaths:DI,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 Xf({modelBytes:n,executionProvider:"wasm",wasmPaths:Cx,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:e.inputShape,outputShape:e.outputShape})})();Yo.set(e.id,A),A.catch(()=>{Yo.get(e.id)===A&&Yo.delete(e.id)})}return Yo.get(e.id)}async function kx(t,e=Ln()){return t!==$e.ALLENK_FDNCNN_BROWSER_SPIKE?null:(At("\u6B63\u5728\u52A0\u8F7D AI FDnCNN ONNX \u6A21\u578B\uFF0C\u9996\u6B21\u52A0\u8F7D\u4F1A\u7A0D\u6162..."),Tx(e))}function xx(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 Gx(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 Sx(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 vo(){return new Promise(t=>{let e=()=>setTimeout(t,0);typeof requestAnimationFrame=="function"?requestAnimationFrame(e):e()})}function CI(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"?At(i>0?`\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370\uFF1A${a}/${i}`:"\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370..."):n==="score"&&At("\u6B63\u5728\u5339\u914D\u6C34\u5370\u5019\u9009\uFF0C\u9875\u9762\u4F1A\u4FDD\u6301\u54CD\u5E94...")}}function Yx(t){return Number.isFinite(t)?`${t.toFixed(2)}s`:"\u672A\u77E5"}function vx(t){return Number.isFinite(t)?`${(t/1e3/1e3).toFixed(2)} Mbps`:"\u672A\u77E5"}function Um(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 fn(){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,gi()}function jm(){return!!ie.processedUrl}function gi(){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?`${Um(A)} / ${Um(e)}`:Um(A)}function _o(){let t=jm();q.afterBadge.hidden=!t,q.processedEmpty.hidden=t}function Oo({force:t=!1}={}){if(!jm()||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 Ox(){if(ie.originalUrl){Oo({force:!0});try{await q.originalVideo.play(),jm()&&await q.processedVideo.play().catch(t=>{console.warn("processed video play failed:",t)})}catch(t){console.warn("original video play failed:",t),At("\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u64AD\u653E\uFF0C\u8BF7\u518D\u70B9\u4E00\u6B21\u64AD\u653E\u6309\u94AE\u3002","warn")}finally{gi()}}}function bI(){q.originalVideo.pause(),q.processedVideo.pause(),gi()}function _x(){q.originalVideo.paused?Ox():bI()}function Mx(t){let e=Number(q.originalVideo.duration);if(!Number.isFinite(e)||e<=0)return;let A=Number(t)/1e3*e;q.originalVideo.currentTime=A,Oo({force:!0}),gi()}function EI(t=null){if(q.autoPresetSummary){if(!t){q.autoPresetSummary.innerHTML=`
98
+ `),r=this.gl.createProgram();return this.gl.attachShader(r,e),this.gl.attachShader(r,A),this.gl.linkProgram(r),r}createShader(e,A){b(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(){b(this.gl),b(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(){b(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 b(this.gl),b(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){b(this.gl),b(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),b(s[A*r]===128),b(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([`(${rE.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=gt();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()}};Yu.forceCpu=!0;var rE=()=>{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 l=i*s,u=Math.ceil(i/2),g=Math.ceil(s/2),f=l+u*g*2,p=new Uint8Array(f);for(let D=0,E=3;D<l;D++,E+=4)p[D]=a[E];p.fill(128,l);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 l=o.includes("P10"),u=o.includes("P12"),g=l||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*g,D=y*g,E=h*g,C=w+D*2,G=o.replace("A",""),S=Math.ceil(i/2),k=Math.ceil(s/2),M=S*k,R=M*g,N=E+2*R,V=new Uint8Array(N),F=C;V.set(a.subarray(F,F+E),0);let K=E,L=l?512:u?2048:128;g===1?V.fill(L,K):new Uint16Array(V.buffer,K,2*M).fill(L);let _=l?"I420P10":u?"I420P12":"I420",W=new VideoFrame(a.subarray(0,C),{format:G,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0}),we={format:_,codedWidth:i,codedHeight:s,timestamp:c.timestamp,duration:c.duration??void 0,transfer:[V.buffer]},re=new VideoFrame(V,we);return{colorFrame:W,alphaFrame:re}}};var so=class extends Ba{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 Ud(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 Pa=class extends wa{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}},oo=class extends Pa{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 co=class extends wa{constructor(e){if(super(),this._connectedTrack=null,!Vr.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${Vr.join(", ")}.`);this._codec=e}};var ya=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Ot.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>tr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>Vr.includes(e))}_codecUnsupportedHint(e){return""}},Ia=class extends ya{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 Su(e,this)}},Da=class extends Ia{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Ot,...pc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...Vr]}_codecUnsupportedHint(e){return new pa().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},ha=class extends Ia{constructor(e){super(e)}get _name(){return"CMAF"}get fileExtension(){return".m4s"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Ot,...pc,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...Vr]}},pa=class extends Ia{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Ot,...tr]}_codecUnsupportedHint(e){return new Da().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var nE=["video","audio","subtitle"],Ca=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=vg(this.metadata.group),r=vg(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}},vu=class extends Ca{constructor(e,A,r,n){super(e,A,"video",r,n)}},Ou=class extends Ca{constructor(e,A,r,n){super(e,A,"audio",r,n)}},_u=class extends Ca{constructor(e,A,r,n){super(e,A,"subtitle",r,n)}},ba=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)}},qd=t=>{if(!t||typeof t!="object")throw new TypeError("metadata must be an object.");if(t.languageCode!==void 0&&!Mi(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&&bp(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 ba)&&(!Array.isArray(t.group)||t.group.some(e=>!(e instanceof ba))))throw new TypeError("metadata.group, when provided, must be an OutputTrackGroup instance or an array of OutputTrackGroup instances.")},uo=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 ba,this._onFinalize=null,this._unfinalizedTargets=new Set,this._rootWriterPromise=null,this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new zt,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 ya))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){b(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){b(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(b(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 Ba))throw new TypeError("source must be a VideoSource.");if(qd(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 vu(this._tracks.length+1,this,e,r))}addAudioTrack(e,A={}){if(!(e instanceof Pa))throw new TypeError("source must be an AudioSource.");qd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new Ou(this._tracks.length+1,this,e,r))}addSubtitleTrack(e,A={}){if(!(e instanceof co))throw new TypeError("source must be a SubtitleSource.");qd(A);let r={...A};return r.group??=this.defaultTrackGroup,this._addTrack(new _u(this._tracks.length+1,this,e,r))}setMetadataTags(e){if(Cp(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 nE){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 SB=Symbol.for("mediabunny loaded");globalThis[SB]&&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[SB]=!0;var iE=.011764705882352941,aE=.002,sE=.99,oE=255;function YB(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 l=0;l<i;l++){let u=((a+c)*t.width+(n+l))*4,g=c*i+l,f=e[g],p=Math.abs(f),h=Number.isFinite(r.logoValue)?r.logoValue:f<0?0:oE;if(Math.max(0,p-iE)*o<aE)continue;let w=Math.min(p*o,sE),D=1-w;for(let E=0;E<3;E++){let G=(t.data[u+E]-w*h)/D;t.data[u+E]=Math.max(0,Math.min(255,Math.round(G)))}}}var vB="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";var OB="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";var cE={"36-v2":36*36,48:48*48,96:96*96,"96-20260520":96*96},_B={"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":"wcBAPIGAgDsAAAAAgYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7gYAAPIGAADwAAAAAAAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAO4GAADyBgAA8AAAAAAAAAACBgIA7gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAwcBAPaGgID719HQ+g4KCPsHAQD7R0FA9AAAAAAAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYAAPIGAADyBgIA7gYCAO4GAgDuBgAA8AAAAAIGAgDuBgAA8gYAAPAAAAAAAAAAAgYAAPIGAADwAAAAAAAAAAAAAAACBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAwcBAPIGAADwAAAAAgYCAOwAAAACBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAACBgIA7gYCAO4GAADyBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAgYAAPAAAAACBgIA7AAAAAAAAAACBgIA7gYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8AAAAAIGAgDvBwEA8kZCQPcXERD6JiIg+j46OPtnYWD6hoKA9wcBAPAAAAACBgAA8gYCAOwAAAACBgIA7gYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDuBgIA7gYAAPAAAAAAAAAAAgYCAO4GAADwAAAAAAAAAAIGAgDuBgAA8gYCAOwAAAACBgAA8gYAAPAAAAAAAAAAAgYCAO4GAADwAAAAAAAAAAAAAAACBgIA7AAAAAIGAADwAAAAAgYCAO4GAADwAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO8HAQDyBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAADBwMA80dDQPd3cXD6bmpo+nZycPu3sbD7p6Og94eDgPAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgAA8AAAAAAAAAACBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAADyBgAA8gYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYCAO4GAADyBgIA7AAAAAIGAADyBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDsAAAAAgYAAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDvBwEA8gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDvh4GA9oaAgPoeGhj6xsLA+sbCwPoeGhj6lpCQ+4eBgPQAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAIGAADyBgIA8gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYAAPIGAADwAAAAAgYAAPIGAADyBgAA8AAAAAAAAAACBgAA8wcBAPIGAgDuBgAA8gYAAPMHAQDwAAAAAAAAAAIGAgDuBgAA8gYCAO4GAgDuBgAA8gYAAPAAAAAAAAAAAgYAAPMHAQDwAAAAAgYCAO4GAADyBgAA8AAAAAIGAgDvJyMg90dBQPpmYmD65uLg+ubi4PpeWlj7JyEg+wcDAPYGAADyBgAA8gYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAgYAAPIGAADyBgIA7AAAAAIGAADyBgAA8AAAAAAAAAACBgAA8gYAAPAAAAACBgAA8gYAAPIGAADwAAAAAAAAAAIGAADyBgAA8gYCAO4GAADwAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADwAAAAAgYCAO8HAQDyBgAA8AAAAAAAAAACBgAA8wcBAPIGAgDuBgIA7AAAAAIGAADwAAAAAAAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAOwAAAACBgIA7wcBAPIGAADwAAAAAgYCAO4GAgDuBgAA8gYCAO4GAgDuBgAA8gYAAPAAAAACBgAA8gYAAPIGAADwAAAAAAAAAAIGAADyBgAA8gYCAO4GAgDuBgIA7wcBAPAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYAAPIGAgDzp6Og92dhYPpmYmD63trY+t7a2PpeWlj7V1FQ+6ejoPYGAgDyBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADwAAAAAgYCAO4GAgDuBgAA8gYCAOwAAAACBgIA7gYAAPAAAAAAAAAAAgYCAO4GAADwAAAAAAAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADwAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDuBgIA7gYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDuBgAA8AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcBAPNHQUD2dnBw+6ehoPpWUlD6xsLA+sbCwPpWUlD7p6Gg+nZwcPtHQUD3BwEA8AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8AAAAAIGAADyBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADwAAAAAwcDAPLm4uD3R0FA+hYSEPpeWlj6rqqo+q6qqPpeWlj6DgoI+1dRUPrm4uD2BgIA8AAAAAIGAgDuBgAA8AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYAAPIGAgDsAAAAAgYCAOwAAAACBgIA7gYAAPAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYAAPIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYAAPIGAADwAAAAAgYCAO4GAADyBgAA8AAAAAAAAAACBgIA7gYAAPIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADzBwEA8gYCAO4GAgDuBgIA7gYAAPAAAAAAAAAAAgYAAPMHAQDwAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7wcDAPOHg4D3x8HA+jYyMPpmYmD6npqY+q6qqPpmYmD6NjIw+9fR0PuHg4D3BwMA8AAAAAAAAAACBgAA8gYAAPAAAAAAAAAAAgYAAPIGAADwAAAAAAAAAAMHAQDyBgAA8AAAAAIGAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAO4GAADyBgAA8AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8AAAAAIGAADwAAAAAgYCAOwAAAAAAAAAAgYCAO4GAADwAAAAAgYAAPIGAADyBgAA8gYCAOwAAAACBgIA7gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDuBgAA8gYAAPIGAgDsAAAAAgYAAPIGAADwAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgIA7gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgAA8sbAwPaGgID6Pjo4+m5qaPpuamj6joqI+o6KiPpmYmD6bmpo+kZCQPqGgID7R0FA9gYCAOwAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7gYAAPIGAADyBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAADBwEA8ubi4Pc3MTD6hoKA+paSkPpuamj6fnp4+n56ePpuamj6joqI+oaCgPtHQUD7JyMg9gYCAPIGAgDuBgAA8gYAAPIGAADyBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAgYAAPAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAADyBgAA8AAAAAIGAgDsAAAAAgYCAO4GAADyBgIA7gYAAPIGAgDsAAAAAgYCAO4GAgDsAAAAAgYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDuBgAA9jYwMPvHwcD6pqKg+qaioPpuamj6dnJw+nZycPpuamj6npqY+paSkPvn4eD6hoCA+8fBwPYGAgDuBgAA8gYAAPAAAAACBgIA7AAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAgYAAPIGAgDsAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgAA8wcBAPIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADzBwEA8gYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAO4GAADy5uLg9vbw8PouKij6trKw+q6qqPp2cnD6bmpo+m5qaPp2cnD6npqY+qaioPpOSkj7l5GQ+iYgIPqGgID2BgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADyBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADwAAAAAgYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8gYCAOwAAAAAAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADwAAAAAgYAAPIGAAD2JiAg+3dxcPo+Ojj6pqKg+paSkPp2cnD6bmpo+m5qaPp2cnD6joqI+paSkPpeWlj6DgoI+ubg4PoGAgD2BgAA8gYCAOwAAAAAAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8gYCAO4GAgDsAAAAAgYAAPIGAADwAAAAAgYAAPIGAADyBgIA7gYCAOwAAAACBgIA7AAAAAAAAAACBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYAAPIGAgDsAAAAAAAAAAIGAADyBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgAA8gYAAPIGAADwAAAAAAAAAAIGAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAwcBAPImIiD3FxEQ+g4KCPpOSkj6joqI+o6KiPpuamj6bmpo+m5qaPpuamj6hoKA+oaCgPpeWlj6RkJA+7exsPrGwsD2hoKA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYCAOwAAAACBgIA7gYAAPIGAgDuBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAsbAwPYmICD6HhoY+nZycPpmYmD6fnp4+n56ePpuamj6bmpo+m5qaPpuamj6dnJw+nZycPp2cnD6lpKQ+k5KSPp2cHD7x8HA9AAAAAIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADyBgIA7AAAAAIGAADwAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAkZCQPbm4OD6XlpY+qaioPp2cnD6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+n56ePp2cnD6pqKg+nZycPsnISD7Z2Ng9gYCAPAAAAACBgAA8AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7AAAAAIGAADwAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8gYCAOwAAAACBgIA7gYCAO4GAADyBgIA7AAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADwAAAAAAAAAAAAAAACBgIA7gYCAOwAAAACBgIA7gYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8wcBAPAAAAACBgIA7AAAAAIGAgDuhoCA9kZAQPvHwcD6lpKQ+raysPqGgoD6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPp+enj6rqqo+o6KiPv38fD6xsDA+oaCgPYGAgDyBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgIA7AAAAAIGAADwAAAAAAAAAAAAAAAAAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYCAO4GAADyBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7gYAAPIGAgDuBgIA7AAAAAIGAAD35+Pg94eBgPo+Ojj6pqKg+q6qqPqGgoD6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPp+enj6npqY+o6KiPo2MjD7t7Gw+jYwMPpGQED2BgIA7AAAAAIGAgDuBgAA8AAAAAAAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYAAPIGAgDuBgIA7gYCAO8HAQDyBgIA7gYCAOwAAAACBgIA7gYAAPIGAADwAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAAAAAAAAgYAAPIGAgDsAAAAAAAAAAAAAAACBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAACBgIA7gYAAPPHwcD3BwEA+kZCQPpmYmD6hoKA+o6KiPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6hoKA+n56ePpWUlD6Lioo+tbQ0PsHAQD0AAAAAAAAAAIGAgDuBgAA8AAAAAAAAAAAAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYAAPIGAADyBgIA7gYAAPIGAgDuBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAAAAAAAAkZAQPYWEBD6JiIg+r66uPqWkpD6bmpo+nZycPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6fnp4+nZycPp+enj6joqI++fh4PuHg4D2BgAA9gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8wcBAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAMHAQDyBgAA8AAAAAIGAgDuBgIA7gYAAPAAAAAAAAAAAgYAAPIGAADyBgIA7gYAAPAAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYAAPIGAADwAAAAAAAAAAAAAAACBgIA7gYCAOwAAAACBgIA7gYAAPAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgAA8ubi4PcXERD6RkJA+sbCwPqWkpD6dnJw+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPqGgoD6pqKg+j46OPrm4OD7BwMA9gYCAPIGAgDsAAAAAAAAAAAAAAACBgIA7gYCAOwAAAACBgIA7wcBAPIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgIA7AAAAAIGAgDuBgAA8gYAAPAAAAACBgIA7gYAAPIGAADyBgIA7gYAAPIGAgDuBgIA7AAAAAIGAgDuBgAA8gYAAPIGAgDuBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAACBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDyBgIA9ubg4Pvn4eD6XlpY+qaioPqGgoD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPqGgoD6lpKQ+l5aWPoOCgj7JyEg+oaCgPcHAwDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGAgDuBgIA7gYAAPAAAAACBgIA7gYAAPIGAADyBgAA8gYAAPAAAAAAAAAAAAAAAAIGAgDuBgAA8gYAAPIGAgDuBgAA8AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAIGAgDuBgAA8oaCgPJmYmD2trCw+h4aGPpWUlD6dnJw+oaCgPp+enj6dnJw+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6hoKA+nZycPpuamj6Pjo4+vbw8PqmoqD3BwEA8gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDuBgAA8gYAAPIGAgDuBgIA7gYAAPIGAADyBgIA7gYAAPIGAgDuBgIA7gYCAOwAAAACBgAA8gYAAPAAAAACBgIA7gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8wcBAPAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADzBwEA8AAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYAAPMHAQDyBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA80dBQPY2MDD7h4GA+nZycPqWkpD6bmpo+nZycPp+enj6fnp4+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6fnp4+oaCgPqOioj6dnJw+6ehoPpGQED6hoCA9AAAAAIGAADyBgIA7AAAAAIGAADwAAAAAgYCAOwAAAAAAAAAAgYAAPMHAQDwAAAAAgYCAO4GAgDuBgAA8AAAAAAAAAACBgAA8wcBAPIGAgDuBgAA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgIA8gYCAO4GAgDuBgIA7gYAAPIGAgDuBgIA7gYAAPMHAQDwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgIA7gYAAPIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADyBgIA7gYCAOwAAAACBgIA7gYAAPIGAgDyhoCA9iYgIPt3cXD6Pjo4+q6qqPquqqj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+n56ePqempj6pqKg+jYyMPt3cXD6FhAQ+oaAgPcHAQDyBgIA7AAAAAIGAADwAAAAAAAAAAIGAgDsAAAAAgYAAPIGAADyBgAA8gYCAO4GAADyBgAA8gYCAO4GAgDuBgIA7gYAAPIGAADyBgIA7gYAAPIGAADyBgIA7gYAAPIGAADyBgAA8gYCAO4GAgDuBgAA8gYCAO4GAADyBgIA7AAAAAIGAgDuBgAA8gYCAOwAAAACBgIA7gYCAOwAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8gYCAOwAAAACBgIA7gYCAO6GgID3p6Og91dRUPo2MjD6dnJw+qaioPqWkpD6dnJw+mZiYPp2cnD6dnJw+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+n56ePqOioj6pqKg+nZycPo2MjD7V1FQ+2djYPZGQED0AAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAADyBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAADyBgAA8gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAgYCAOwAAAAAAAAAAwcBAPLm4uD21tDQ+h4aGPp2cnD6bmpo+oaCgPp+enj6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6dnJw+nZycPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPp+enj6hoKA+m5qaPp2cnD6HhoY+rawsPrm4uD2BgAA8AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7gYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAgYAAPIGAgDuBgAA8gYAAPAAAAACBgAA8AAAAAIGAgDuBgIA7gYCAO4GAADyBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAAAAAAAAAAAAAIGAgDuBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAMHAQDyBgAA9ubi4PcHAQD6DgoI+o6KiPqmoqD6fnp4+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPp+enj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+oaCgPquqqj6joqI+gYCAPr28PD6xsLA9oaCgPIGAADyBgAA8gYAAPAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7gYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7gYCAO4GAgDuBgAA8AAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYAAPIGAADyBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgAA8gYCAO4GAgDuBgIA7gYCAO4GAADyBgIA7gYCAO+Hg4Dy5uLg9sbAwPoOCgj6VlJQ+o6KiPqWkpD6fnp4+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+oaCgPqmoqD6joqI+lZSUPoOCgj6trCw+ubi4PaGgoDyBgAA8gYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8gYCAO4GAgDsAAAAAgYCAO4GAADyBgIA7gYAAPIGAgDsAAAAAgYCAOwAAAACBgIA7AAAAAIGAgDuBgAA8gYAAPIGAgDuBgIA7AAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAAAAAAAAgYAAPLm4uD2xsDA+gYCAPp+enj6dnJw+n56ePp+enj6bmpo+nZycPp2cnD6dnJw+m5qaPp2cnD6dnJw+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp+enj6dnJw+n56ePp+enj6BgIA+rawsPrm4uD2BgAA8gYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYAAPIGAgDuBgIA7gYCAO4GAgDuBgIA7gYCAO8HAQDyBgAA8gYCAO4GAgDuBgIA7gYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7AAAAAIGAADyhoCA9wcDAPb28PD6FhIQ+n56ePq2srD6npqY+nZycPpuamj6bmpo+n56ePp2cnD6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6dnJw+paSkPquqqj6fnp4+g4KCPr28PD6xsLA9oaAgPcHAQDyBgIA7AAAAAAAAAACBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDuBgAA8gYCAO4GAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgIA7gYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAAAAAAAAAAAAAAAAAMHAQDyBgAA8AAAAAAAAAAAAAAAAgYCAOwAAAAAAAAAAgYAAPLGwMD3Z2Ng9rawsPoOCgj6VlJQ+n56ePqWkpD6joqI+nZycPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+oaCgPqempj6fnp4+lZSUPoOCgj6trCw+4eDgPZGQED0AAAAAgYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAADBwEA8gYAAPAAAAACBgIA7gYCAO4GAADwAAAAAAAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYAAPAAAAACBgIA7gYCAOwAAAACBgIA7gYAAPAAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAgYAAPAAAAACBgIA8sbAwPYmICD7V1FQ+iYiIPqOioj6joqI+nZycPp2cnD6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPp+enj6fnp4+o6KiPqOioj6HhoY+1dRUPoWEBD6hoCA9gYCAPIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDuBgAA8gYCAOwAAAACBgIA7gYCAO4GAADwAAAAAAAAAAIGAADyBgAA8AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDuBgIA7AAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAKGgoDypqKg9jYwMPt3cXD6NjIw+n56ePqmoqD6lpKQ+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+paSkPqmoqD6dnJw+jYyMPt3cXD6NjAw+mZiYPYGAgDyBgIA7gYCAOwAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDuBgIA7gYCAO4GAgDsAAAAAAAAAAIGAADyBgIA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgIA7gYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAwcBAPKmoqD3BwEA+6ehoPo+Ojj6dnJw+m5qaPp+enj6fnp4+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+n56ePp+enj6bmpo+nZycPpGQkD7h4GA+rawsPpGQkD3BwEA8gYCAOwAAAAAAAAAAgYCAO4GAgDsAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgAA8gYCAO4GAgDsAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAIGAgDsAAAAAAAAAAIGAADyBgAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAACBgIA7gYCAO4GAgDuRkBA9ycjIPc3MTD6Pjo4+n56ePqmoqD6npqY+n56ePp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6dnJw+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp+enj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6joqI+q6qqPqmoqD6bmpo+h4aGPr28PD6xsLA9gYAAPYGAADyBgAA8AAAAAIGAgDsAAAAAAAAAAAAAAAAAAAAAgYAAPIGAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAACBgAA8gYAAPAAAAACBgIA7AAAAAIGAgDuBgIA7AAAAAIGAgDuBgAA8AAAAAAAAAAAAAAAAgYCAO4GAgDsAAAAAgYCAO4GAADyBgIA7AAAAAAAAAADBwEA8kZAQPcHAQD3p6Og9wcBAPoOCgj6dnJw+o6KiPqempj6joqI+n56ePp2cnD6dnJw+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6hoKA+p6amPqempj6hoKA+l5aWPvn4eD7BwEA++fj4PeHgYD2BgAA9AAAAAAAAAAAAAAAAgYAAPIGAgDsAAAAAgYCAO4GAADwAAAAAAAAAAAAAAACBgIA7AAAAAAAAAACBgAA8gYAAPAAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAAAAAACBgIA7gYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYAAPMHAQDyhoKA9jYwMPrW0ND75+Hg+jYyMPpWUlD6fnp4+nZycPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+nZycPp2cnD6dnJw+nZycPpmYmD6RkJA+iYiIPsXERD75+Pg9oaAgPYGAgDsAAAAAgYAAPAAAAAAAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDuBgIA7AAAAAAAAAACBgIA7gYCAOwAAAAAAAAAAAAAAAIGAgDsAAAAAAAAAAIGAgDuBgIA7gYAAPIGAADyhoKA84eBgPdHQ0D2xsDA+7exsPo2MjD6joqI+qaioPqWkpD6fnp4+nZycPpuamj6ZmJg+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+mZiYPpuamj6dnJw+n56ePqempj6vrq4+r66uPo+Ojj7h4GA+lZQUPpGQkD2xsDA9gYCAPIGAADwAAAAAAAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAgYCAO4GAgDsAAAAAgYCAOwAAAACBgIA7gYAAPIGAADwAAAAAgYCAOwAAAACBgIA7AAAAAAAAAACBgAA8gYAAPAAAAACBgIA7kZAQPYGAgD2xsLA9mZgYPtHQUD6DgoI+jYyMPpWUlD6fnp4+o6KiPp+enj6dnJw+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPp2cnD6bmpo+m5qaPp2cnD6dnJw+m5qaPp2cnD6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+n56ePpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+n56ePqWkpD6lpKQ+paSkPpeWlj6Pjo4+8fBwPrGwMD6NjAw+kZCQPYGAAD2BgAA8AAAAAAAAAAAAAAAAAAAAAIGAADyBgAA8gYCAO4GAgDsAAAAAgYAAPAAAAAAAAAAAgYCAO4GAADwAAAAAgYCAOwAAAAAAAAAAAAAAAAAAAAAAAAAAgYAAPKGgoDzx8HA9iYgIPrm4OD7t7Gw+k5KSPpuamj6joqI+o6KiPp+enj6dnJw+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPp2cnD6bmpo+m5qaPp+enj6npqY+o6KiPpWUlD6HhoY+ychIPomICD65uLg9wcDAPMHAQDyBgIA7AAAAAAAAAACBgIA7AAAAAIGAgDsAAAAAgYCAO4GAgDsAAAAAAAAAAIGAgDuBgIA7gYCAOwAAAAAAAAAAwcBAPIGAgDzBwMA8wcBAPcHAwD2hoCA+3dxcPoGAgD6RkJA+paSkPqmoqD6rqqo+p6amPqOioj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPqGgoD6pqKg+r66uPqempj6dnJw+g4KCPt3cXD7BwEA+jYwMPrm4uD3R0FA9wcDAPIGAgDzBwEA8AAAAAAAAAAAAAAAAAAAAAAAAAACBgIA7AAAAAAAAAAAAAAAAgYCAO4GAgDuhoKA8wcBAPbm4uD3h4OA9mZgYPtHQUD75+Hg+j46OPpWUlD6XlpY+nZycPp2cnD6fnp4+n56ePp2cnD6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp+enj6fnp4+oaCgPp2cnD6bmpo+k5KSPo+Ojj6Lioo+8fBwPtHQUD6hoCA+4eDgPbGwsD3R0FA9gYCAPIGAgDsAAAAAAAAAAIGAgDuBgIA7AAAAAMHAQDzh4OA84eBgPcnIyD3x8PA9nZwcPtHQUD7t7Gw+j46OPqGgoD6lpKQ+q6qqPqempj6hoKA+nZycPpuamj6bmpo+m5qaPpuamj6dnJw+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPp2cnD6fnp4+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6bmpo+m5qaPpuamj6dnJw+nZycPpuamj6bmpo+m5qaPpuamj6bmpo+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 MB(t,e){let A=RB(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),l=Math.min(s,e-1-s);c>l&&([c,l]=[l,c]);let u=c*r-c*(c-1)/2+(l-c);i[s*e+o]=a[u]/32767}return i}function RB(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 Mu(t){let e=String(t);if(e==="96-outline-dark")return _r.has(e)||_r.set(e,MB(OB,96)),new Float32Array(_r.get(e));if(e==="96-outline-light")return _r.has(e)||_r.set(e,MB(vB,96)),new Float32Array(_r.get(e));if(!(e in _B))return null;if(!_r.has(e)){let A=RB(_B[e]),r=cE[e],n=new Float32Array(A.buffer,A.byteOffset,r);_r.set(e,new Float32Array(n))}return new Float32Array(_r.get(e))}var uE=1e-8;function QB(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 zB(t,e){if(t.length!==e.length||t.length===0)return 0;let A=QB(t),r=QB(e),n=Math.sqrt(A.variance*r.variance)*t.length;if(n<uE)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 NB(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 FB(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 Ld({imageData:t,alphaMap:e,region:A}){let r=NB(t,A);return r.length===0||r.length!==e.length?0:zB(r,e)}function jd({imageData:t,alphaMap:e,region:A}){let r=NB(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=FB(r,n,n),i=FB(e,n,n);return zB(a,i)}var lE=[{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}],gE=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})})}),Vd=(t,e,A)=>Math.max(e,Math.min(A,Math.round(t)));function Kd(t,e){return t===1920&&e===1080}function go(t,e){return!Number.isFinite(t)||!Number.isFinite(e)||t<=0||e<=0?[]:hE([...fE(t,e),...pE(t,e)])}function Qu(t,e,A,r=1,n={}){let a=Vd(t.size*r,24,Math.min(e,A)),i=Vd(t.marginRight*r,0,e-a),s=Vd(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 lo(t){return t.x>=0&&t.y>=0&&t.x+t.size<=t.videoWidth&&t.y+t.size<=t.videoHeight}function Fu(t,e,A){return{...t,videoWidth:e,videoHeight:A}}function dE(t,e){return`${t}x${e}`}function fE(t,e){let A=Math.min(t/1920,e/1080),r=Kd(t,e),n=gE[dE(t,e)]||{};return lE.map((a,i)=>{let s=n[a.id]||{};return Fu(Qu(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(lo)}function mE(t){return`${t.size}:${t.marginRight}:${t.marginBottom}`}function Ru(t){return Number.isFinite(t?.sourcePriority)?t.sourcePriority:100}function hE(t){let e=new Map;for(let A of t.filter(lo)){let r=mE(A),n=e.get(r);(!n||Ru(A)<Ru(n))&&e.set(r,A)}return[...e.values()].sort((A,r)=>{let n=Ru(A)-Ru(r);return n!==0?n:0})}function pE(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=>Fu(Qu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"binary-prior",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(lo):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=>Fu(Qu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(lo):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-animated-compact-24",label:"720x1280 animated compact, 24px, margin 48",size:24,marginRight:48,marginBottom:48,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=>Fu(Qu(A,t,e,1,{referenceSize:!1,scaledFromReference:!1,sourceCandidateId:null,sourceFamily:A.sourceFamily||"exact-size-exception",evidenceGate:"required",exactSizeVariant:!0}),t,e)).filter(lo):[]}var wE=Object.freeze(["veo-text-23x10","veo-text-68x30","veo-text-99x43"]),HB=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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"}),BE=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})})}),Wd=new Map;function UB(t){if(Wd.has(t))return Wd.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 Wd.set(t,e),e}function qB(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 PE(t){let e=BE[t];return e?{...e,allenkObservedRegion:e.allenkObservedRegion?{...e.allenkObservedRegion}:void 0,cleanup:{...e.cleanup}}:null}function yE(t,{alphaGain:e=.18}={}){let A=HB[t];if(!A)return null;let r=qB(UB(A)),n=Number.isFinite(e)&&e>0?e:.18;return Float32Array.from(r,a=>Math.max(0,Math.min(.99,a*n)))}function IE(t){let e=HB[t];return e?qB(UB(e)):null}function DE(t,e={}){let A=PE(t);return A?{...A,alphaMap:yE(t,e),detectorMap:IE(t)}:null}function Zd(t={}){return wE.map(e=>DE(e,t))}var CE=.62,bE=.6,EE=.02,LB=4,jB=.35,TE=.8,kE=.68;function VB(t,e){return(.2126*t[e]+.7152*t[e+1]+.0722*t[e+2])/255}function KB(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 Jd({imageData:t,alphaMap:e,region:A,activeThreshold:r=EE}){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+=VB(t.data,D),s+=w,o++}if(o<=1)return 0;let c=i/o,l=s/o,u=0,g=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,E=VB(t.data,D)-c,C=w-l;u+=E*C,g+=E*E,f+=C*C}let p=Math.sqrt(g*f);return p>0?u/p:0}function xE(t,e,A,r){let n=Jd({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 GE({width:t,height:e,templates:A=Zd(),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(LB,Math.round(Math.min(i.width,i.height)*jB)),o=Number.isFinite(n)?n:Math.max(LB,Math.round(Math.min(i.width,i.height)*jB)),c=i.marginRight,l=i.marginBottom,u=KB(c,s,0,t-i.width),g=KB(l,o,0,e-i.height);for(let f of u)for(let p of g){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 SE(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 WB(t){let e=t?.candidate,A=e?.template;return A&&e.marginRight===A.marginRight&&e.marginBottom===A.marginBottom}function YE(t,e,A){if(!WB(t))return!1;let r=Math.max(A,TE),n=e*kE;return t.voteRatio>=r&&t.maxNcc>=e&&t.meanNcc>=n}function vE(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 OE(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)WB(r)&&A.set(r.candidate.id,r);return[...A.values()].map(vE)}function ZB({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 _E({frames:t,perCandidate:e,frameWinners:A,minNcc:r,minVoteRatio:n}){let a=[...e.values()].map(u=>({candidate:u.candidate,...SE(u.scores),votes:u.votes,voteRatio:t.length>0?u.votes/t.length:0})).sort((u,g)=>g.votes!==u.votes?g.votes-u.votes:g.meanNcc-u.meanNcc),i=a[0]||null;if(!i)return ZB({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||YE(i,s,n),c={x:i.candidate.x,y:i.candidate.y,width:i.candidate.width,height:i.candidate.height},l={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:l,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:OE(a),frameWinners:A}}}async function $d(t){typeof t=="function"&&await t()}async function $B({frames:t,width:e,height:A,templates:r=Zd(),minNcc:n=CE,minVoteRatio:a=bE,marginRadiusX:i=null,marginRadiusY:s=null,yieldEveryCandidates:o=96,yieldToMainThread:c=null}={}){if(!Array.isArray(t)||t.length===0)return await $d(c),ZB({minNcc:n});let l=GE({width:e,height:A,templates:r,marginRadiusX:i,marginRadiusY:s}),u=new Map(l.map(h=>[h.id,{candidate:h,scores:[],votes:0}])),g=[],f=Math.max(1,Math.round(o||96)),p=0;for(let h of t){let y=null;for(let w of l){let D=xE(h.imageData,w.template,w.x,w.y),E={timestamp:h.timestamp,ncc:D.ncc,confidence:D.confidence};u.get(w.id).scores.push(E),(!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 $d(c)}if(y){g.push(y);let w=u.get(y.candidateId);w&&w.votes++}await $d(c)}return _E({frames:t,perCandidate:u,frameWinners:g,minNcc:n,minVoteRatio:a})}var zu=.18,eP=1,ef="96-20260520",ME=.045,RE=.035,QE=5,Ea=255,tP=40,FE=tP-1,zE=.04,NE=.08,HE=.12;function AP(t){if(t==null||t==="")return ef;let e=String(t).trim(),A=Number(e);return Number.isInteger(A)&&String(A)===e?A:e}function UE(t,e){let A=Math.round(Math.sqrt(t.length));return A>0&&A*A===t.length?A:e}function qE(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 l=0;l<A;l++){let u=l*n,g=(l+1)*n,f=Math.floor(u),p=Math.ceil(g),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 E=f;E<p;E++){if(E<0||E>=e)continue;let G=Math.max(0,Math.min(g,E+1)-Math.max(u,E))*D;h+=t[w*e+E]*G,y+=G}}r[a*A+l]=y>0?h/y:0}}return r}function rP(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?RE:ME}function tf(t,e={}){let A=e.profile??e.alphaProfile,r=A==null||A===""?t<=FE?48:ef:AP(A),n=Mu(r)||Mu(ef)||Mu(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=UE(n,96),i=Number.isFinite(e.edgeBoost)?e.edgeBoost:rP(e.candidate),s=t===a?new Float32Array(n):qE(n,a,t);return $E(XE(s,t,i),e)}function LE(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 Xd(t){return t<=0?0:t>=255?255:Math.round(t)}function jE(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 l=0;l<a;l++)for(let u=0;u<n;u++){let g=((e.y+l)*t.width+e.x+u)*4,f=(l*n+u)*4,p=A[l*n+u]||0,h=p>.025?Math.min(p*r,.99):0;if(h<=0)i[f]=t.data[g],i[f+1]=t.data[g+1],i[f+2]=t.data[g+2],i[f+3]=t.data[g+3]??255;else{let y=1-h;i[f]=Xd((t.data[g]-h*Ea)/y),i[f+1]=Xd((t.data[g+1]-h*Ea)/y),i[f+2]=Xd((t.data[g+2]-h*Ea)/y),i[f+3]=t.data[g+3]??255}for(let y=0;y<3;y++){let w=Math.abs(i[f+y]-t.data[g+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=rP(t);return[{name:"default",profile:AP(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,HE].map(r=>({name:`96-edge${r.toFixed(3)}`,profile:"96",edgeBoost:r,options:{alphaProfile:"96",edgeBoost:r}}))]}function KE(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 JB(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 WE({frames:t,position:e,candidate:A,frameWinners:r,alphaMapOptions:n,option:a,scoreAlphaMap:i}){let s=tf(A.size,{...n,...a.options,candidate:A}),o=nP(t,e,s,r,A.id),c=new Map(r.map(u=>[u.timestamp,u])),l=[];for(let u of t){let g=c.get(u.timestamp);if(g&&g.candidateId!==A.id&&g.confidence>.08)continue;let f=jE(u.imageData,e,s,o.seedGain),p=fo(f.imageData,{x:0,y:0,width:e.width,height:e.height},i);l.push({...p,meanAbsDelta:f.meanAbsDelta,changedRatio:f.changedRatio})}return{...a,alphaMap:s,alphaSeed:o,...KE(l)}}function ZE({candidate:t,best:e,voteRatio:A,alphaMapOptions:r}){return r?.autoAlphaProfile===!1||LE(r)||!t||!e||(t.size??t.width??0)<tP||A<.6?!1:e.meanConfidence>=zu}function XB({frames:t,position:e,candidate:A,best:r,voteRatio:n,frameWinners:a,alphaMapOptions:i={}}){let s=tf(A.size,{...i,candidate:A}),o=nP(t,e,s,a,A.id);if(!ZE({candidate:A,best:r,voteRatio:n,alphaMapOptions:i}))return{alphaMap:s,alphaSeed:o,alphaShape:null};let c=s,l=VE(A,i).map((w,D)=>({...WE({frames:t,position:e,candidate:A,frameWinners:a,alphaMapOptions:i,option:w,scoreAlphaMap:c}),priorityIndex:D})).sort((w,D)=>{let E=JB(w,w.priorityIndex),C=JB(D,D.priorityIndex);return E-C}),u=l.find(w=>w.name==="default")||l[0],g=l[0]||u,f=u.meanConfidence-g.meanConfidence,p=u.meanConfidence>0?f/u.meanConfidence:0,h=g!==u&&f>=zE&&p>=NE,y=h?g: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:l.map(w=>({name:w.name,profile:w.profile,edgeBoost:w.edgeBoost,meanConfidence:w.meanConfidence,meanAbsDelta:w.meanAbsDelta,changedRatio:w.changedRatio}))}}}function $E(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 l=t[c]||0,u=s>0?c%s:0,g=s>0?Math.floor(c/s):0,f=JE(u,g,s,i);if(l>0&&l<.12){let p=A*(f?n:1);o[c]=Math.min(.99,l*p)}else if(l>=.12){let p=r*(f?a:1);o[c]=Math.min(.99,l*p)}else o[c]=l}return o}function JE(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 XE(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],l=-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+l*l);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 eT(t,e,A={}){let r=tf(e.size,{...A,candidate:e}),n={x:e.x,y:e.y,size:e.size},a=Ld({imageData:t,alphaMap:r,region:n}),i=jd({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 fo(t,e,A){let r=e.width??e.size,n=e.height??e.size;if(r!==n||A.length!==r*r){let c=Jd({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=Ld({imageData:t,alphaMap:A,region:a}),s=jd({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 tT(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function AT(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,l=.015;for(let u=a;u<s;u++)for(let g=n;g<i;g++){let f=g>=e.x&&g<e.x+e.width&&u>=e.y&&u<e.y+e.height,p=f?0:1;if(f){let y=g-e.x,w=u-e.y;(A[w*e.width+y]||0)<=l&&(p=.35)}if(p<=0)continue;let h=(u*t.width+g)*4;o+=tT(t.data,h)*p,c+=p}return c>0?o/c:null}function rT(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 l=Math.min(c*r,.99),u=1-l,g=((e.y+s)*t.width+e.x+o)*4,f=Math.min(1,Math.max(0,c*8)),p=(t.data[g]-l*Ea)/u,h=(t.data[g+1]-l*Ea)/u,y=(t.data[g+2]-l*Ea)/u;a+=(.2126*p+.7152*h+.0722*y)*f,i+=f}return i<=0?null:a/i-n}function nT(t,e,A,r=eP){let n=AT(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<QE;c++){let l=(a+i)/2,u=rT(t,e,A,l,n);if(!Number.isFinite(u))return null;let g=Math.abs(u);g<o&&(o=g,s=l),u>0?a=l:i=l}return{gain:s,residualDelta:o}}function iT(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 nP(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 l=nT(o.imageData,e,A);l&&(l.gain<.35||l.gain>1.35||i.push(l.gain))}return{seedGain:iT(i)??eP,estimates:i,estimateCount:i.length}}function aT(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}}function sT(t,{minConfidence:e=zu}={}){if(!Array.isArray(t)||t.length===0)return[];let A=t.filter((n,a)=>{if(a===0)return!0;let i=t[0],s=i.frames>0&&i.votes===i.frames;return n.meanConfidence>=e&&(!s||n.votes>0)}),r=[];for(let n of A){let a=n.candidate,i=Number(a?.size),s=i*i;r.some(c=>{let l=c.candidate,u=Number(l?.size),g=Math.max(0,Math.min(Number(a?.x)+i,Number(l?.x)+u)-Math.max(Number(a?.x),Number(l?.x))),f=Math.max(0,Math.min(Number(a?.y)+i,Number(l?.y)+u)-Math.max(Number(a?.y),Number(l?.y))),p=Math.min(s,u*u);return p>0&&g*f/p>=.5})||r.push(n)}return r}function iP(t,e){let A=Array.isArray(e?.detections)&&e.detections.length>0?e.detections:[e],r=null;for(let n of A){if(!n?.position||!n?.alphaMap)continue;let a=n.position,i=typeof t?.getImageData=="function",s=i?t.getImageData(a.x,a.y,a.width,a.height):t,o=fo(s,i?{x:0,y:0,width:a.width,height:a.height}:a,n.alphaMap),c=Math.max(.01,Number(n.meanConfidence)||.01),l=o.confidence/c;(!r||l>r.normalizedConfidence||l===r.normalizedConfidence&&o.confidence>r.frameScore.confidence)&&(r={detection:n,frameScore:o,normalizedConfidence:l})}return r}async function oT(t){typeof t=="function"&&await t()}async function cT({frames:t,width:e,height:A,candidates:r=go(e,A),minConfidence:n=zu,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(C=>[C.id,{candidate:C,scores:[]}])),o=[];for(let C of t){let G=r.map(k=>eT(C.imageData,k,a)).sort((k,M)=>M.confidence-k.confidence),S=G[0]||null;S&&o.push({timestamp:C.timestamp,candidateId:S.candidate.id,confidence:S.confidence});for(let k of G)s.get(k.candidate.id).scores.push(k);await oT(i)}for(let C of o){let G=s.get(C.candidateId);G&&(G.votes=(G.votes||0)+1)}let c=[...s.values()].map(C=>({candidate:C.candidate,...aT(C.scores),votes:C.votes||0})).sort((C,G)=>G.votes!==C.votes?G.votes-C.votes:G.meanConfidence-C.meanConfidence),l=c[0],u=sT(c,{minConfidence:n}),g=t.length>0?l.votes/t.length:0,f=t.length>0?Math.min(1,u.reduce((C,G)=>C+G.votes,0)/t.length):0,p=l.meanConfidence>=n&&(g>=.6||u.length>1&&f>=.6),h={x:l.candidate.x,y:l.candidate.y,width:l.candidate.size,height:l.candidate.size},y=XB({frames:t,position:h,candidate:l.candidate,best:l,voteRatio:g,frameWinners:o,alphaMapOptions:a}),{alphaMap:w,alphaSeed:D}=y,E=[{watermarkKind:"diamond",position:h,alphaMap:w,alphaSeed:D,candidate:l.candidate,meanConfidence:l.meanConfidence}];for(let C of u.slice(1)){let G={x:C.candidate.x,y:C.candidate.y,width:C.candidate.size,height:C.candidate.size},S=XB({frames:t,position:G,candidate:C.candidate,best:C,voteRatio:t.length>0?C.votes/t.length:0,frameWinners:o,alphaMapOptions:a});E.push({watermarkKind:"diamond",position:G,alphaMap:S.alphaMap,alphaSeed:S.alphaSeed,candidate:C.candidate,meanConfidence:C.meanConfidence})}return{watermarkKind:"diamond",position:h,alphaMap:w,alphaSeed:D,candidate:l.candidate,detections:E,isConfident:p,summary:{frameCount:t.length,minConfidence:n,alphaSeed:D,alphaShape:y.alphaShape,best:{candidateId:l.candidate.id,label:l.candidate.label,meanSpatial:l.meanSpatial,meanGradient:l.meanGradient,meanConfidence:l.meanConfidence,maxConfidence:l.maxConfidence,votes:l.votes},candidates:c.map(C=>({candidateId:C.candidate.id,label:C.candidate.label,x:C.candidate.x,y:C.candidate.y,size:C.candidate.size,meanSpatial:C.meanSpatial,meanGradient:C.meanGradient,meanConfidence:C.meanConfidence,maxConfidence:C.maxConfidence,votes:C.votes})),frameWinners:o}}}function uT({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 aP({frames:t,width:e,height:A,candidates:r=go(e,A),minConfidence:n=zu,alphaMapOptions:a={},veoTextOptions:i={},yieldToMainThread:s=null}){let o=null;Array.isArray(r)&&r.length>0&&(o=await cT({frames:t,width:e,height:A,candidates:r,minConfidence:n,alphaMapOptions:a,yieldToMainThread:s}));let c=await $B({frames:t,width:e,height:A,...i,yieldToMainThread:s}),l=uT({diamondDetection:o,veoTextDetection:c});if(!l)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 l}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 pe(t,e,A){return Math.max(e,Math.min(A,t))}function Ta(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 lT(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 sP(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}=lT(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Ta(l+g,e);u+=t[c*e+f]*a[g+i]}s[c*e+l]=u}for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Ta(c+g,A);u+=s[f*e+l]*a[g+i]}o[c*e+l]=u}return o}function gT(t){let e=Math.round(Math.sqrt(t?.length||0));return e>0&&e*e===t.length?e:0}function dT(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,l=Math.floor(o),u=Math.ceil(c);for(let g=0;g<A;g++){let f=g*a,p=(g+1)*a,h=Math.floor(f),y=Math.ceil(p),w=0,D=0;for(let E=l;E<u;E++){if(E<0||E>=e)continue;let C=Math.max(0,Math.min(c,E+1)-Math.max(o,E));for(let G=h;G<y;G++){if(G<0||G>=e)continue;let k=Math.max(0,Math.min(p,G+1)-Math.max(f,G))*C;w+=t[E*e+G]*k,D+=k}}n[s*A+g]=D>0?w/D:0}}return n}function fT(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),l=c+1,u=o-c;for(let g=0;g<A;g++){let f=(g+.5)*a-.5,p=Math.floor(f),h=p+1,y=f-p,w=t[pe(c,0,e-1)*e+pe(p,0,e-1)]||0,D=t[pe(c,0,e-1)*e+pe(h,0,e-1)]||0,E=t[pe(l,0,e-1)*e+pe(p,0,e-1)]||0,C=t[pe(l,0,e-1)*e+pe(h,0,e-1)]||0,G=w*(1-y)+D*y,S=E*(1-y)+C*y;n[s*A+g]=G*(1-u)+S*u}}return n}function mT(t,e,A,r=A){return A>e?fT(t,e,A,r):dT(t,e,A,r)}var hT=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 pT(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(!hT[s][o])continue;let c=a+o-2,l=n+s-2;c<0||l<0||c>=e||l>=A||(i=Math.max(i,t[l*e+c]||0))}r[n*e+a]=i}return r}function wT({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 g=0;g<A;g++)for(let f=0;f<e;f++){let p=Ta(g-1,A),h=Ta(g+1,A),y=Ta(f-1,e),w=Ta(f+1,e),D=-t[p*e+y]-2*t[g*e+y]-t[h*e+y]+t[p*e+w]+2*t[g*e+w]+t[h*e+w],E=-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],C=Math.sqrt(D*D+E*E);n[g*e+f]=C,a=Math.min(a,C),i=Math.max(i,C)}if(!Number.isFinite(a)||i<=a)return new Float32Array(e*A);let s=new Float32Array(e*A),o=1/(i-a);for(let g=0;g<s.length;g++)s[g]=Math.sqrt(pe((n[g]-a)*o,0,1));let c=pT(s,e,A),l=sP(c,e,A,2),u=Number.isFinite(r)?Math.max(0,r):1;for(let g=0;g<l.length;g++)l[g]=pe(l[g]*u,0,1);return l}function oP(t={}){let e=Number.isFinite(t.sigma)?pe(t.sigma,0,NA.maxSigma):NA.defaultSigma,A=Number.isFinite(t.strength)?pe(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 cP({alphaMap:t,width:e,height:A=e,strength:r=NA.defaultStrength}={}){let n=gT(t),a=n>0?mT(t,n,e,A):t;return wT({alphaMap:a,width:e,height:A,strength:r})}function BT({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=pe(Math.round(A.x-n),0,t),i=pe(Math.round(A.y-n),0,e),s=pe(Math.round(A.x+A.width+n),0,t),o=pe(Math.round(A.y+A.height+n),0,e),c=s-a,l=o-i;return c<4||l<4?null:{x:a,y:i,width:c,height:l,inner:{x:pe(Math.round(A.x-a),0,c),y:pe(Math.round(A.y-i),0,l),width:pe(Math.round(A.width),0,c),height:pe(Math.round(A.height),0,l)}}}function uP({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),l=Math.round(A.height+i*2),u=Number.isInteger(n)&&n>0?n:c,g=Number.isInteger(a)&&a>0?a:l;if(u<4||g<4)return null;let f=pe(s,0,t),p=pe(o,0,e),h=pe(s+u,0,t),y=pe(o+g,0,e),w=h-f,D=y-p;return w<=0||D<=0?null:{x:s,y:o,width:u,height:g,inner:{x:pe(Math.round(A.x-s),0,u),y:pe(Math.round(A.y-o),0,g),width:pe(Math.round(A.width),0,u),height:pe(Math.round(A.height),0,g)},visible:{x:f,y:p,width:w,height:D,offsetX:f-s,offsetY:p-o}}}function lP({imageWidth:t,imageHeight:e,region:A,padding:r=NA.defaultPadding,targetWidth:n=null,targetHeight:a=null}={}){let i=BT({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,l=A.y+A.height/2,u=pe(Math.round(c-s/2),0,t-s),g=pe(Math.round(l-o/2),0,e-o);return{x:u,y:g,width:s,height:o,inner:{x:pe(Math.round(A.x-u),0,s),y:pe(Math.round(A.y-g),0,o),width:pe(Math.round(A.width),0,s),height:pe(Math.round(A.height),0,o)}}}function gP({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 g=pe(Math.round(e.y+u),0,a-1),f=pe(g-Math.round(r),0,t.height-1);for(let p=0;p<i;p++){let h=pe(Math.round(e.x+p),0,n-1),y=pe(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 l=typeof t.constructor=="function"&&t.constructor!==Object?t.constructor:typeof ImageData=="function"?ImageData:null;return l?new l(o,i,s):{width:i,height:s,data:o}}function dP({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 l=i.x+c;l<0||l>=r.width||(a[o*r.width+l]=pe(t[s*e+c]||0,0,1))}}return sP(a,r.width,r.height,n)}function fP({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=pe(e,0,NA.maxSigma)/255,o=n.length>=a*4?4:3;for(let c=0;c<a;c++){let l=c*o;i[c]=(n[l]||0)/255,i[a+c]=(n[l+1]||0)/255,i[a*2+c]=(n[l+2]||0)/255,i[a*3+c]=s}return i}function mP({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(pe(t[i]||0,0,1)*255),a[i*4+1]=Math.round(pe(t[n+i]||0,0,1)*255),a[i*4+2]=Math.round(pe(t[n*2+i]||0,0,1)*255),a[i*4+3]=r;return a}function PT(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 l=-1;l<=1;l++){let u=r+l;u<0||u>=e||(i+=t[(c*e+u)*4+a],s++)}}return s>0?i/s:t[(n*e+r)*4+a]}function yT(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function IT(t,e,A){let r=new Float32Array(e*A),n=(a,i)=>{let s=pe(a,0,e-1),o=pe(i,0,A-1);return yT(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]=pe((c-48)/112,0,1)}return r}function hP({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,l=Number.isFinite(a)&&a>0&&c,u=i&&c?IT(t,r,n):null;for(let g=0;g<o;g++){let f=pe(A[g]||0,0,1),p=u?Math.max(.08,1-(u[g]||0)*.92):1,h=f*p;if(h<=0)continue;let y=g*4,w=l?g%r:0,D=l?Math.floor(g/r):0,E=l?Math.min(.28,h*a):0;for(let C=0;C<3;C++){let G=t[y+C]*(1-h)+e[y+C]*h,S=E>0?pe(t[y+C]-PT(t,r,n,w,D,C),-14,14):0;s[y+C]=Math.round(pe(G+S*E,0,255))}}return s}var Nu=1.5,sn=!1,wP=!1,af=.85,ho="none",Vt=.65,Hu=25,DT=6.5,pP=Object.freeze({CANVAS_SOFT:"canvas-soft",CANVAS_BILATERAL:"canvas-bilateral"}),Je=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 Af(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function BP(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 fA(t,e,A,r,n){let{kernel:a,radius:i}=BP(r,n),s=new Float32Array(t.length),o=new Float32Array(t.length);for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Math.max(0,Math.min(e-1,l+g));u+=t[c*e+f]*a[g+i]}s[c*e+l]=u}for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=0;for(let g=-i;g<=i;g++){let f=Math.max(0,Math.min(A-1,c+g));u+=s[f*e+l]*a[g+i]}o[c*e+l]=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 CT(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 l=Math.max(0,Math.min(A-1,o)),u=Math.max(0,Math.min(r-1,c));return Af(n,(u*A+l)*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 l=-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),g=Math.sqrt(l*l+u*u);a[o*A+c]=ar(42,150,g)*s}return fA(a,A,r,.65,2)}function mo(t,e,A){let r=t.width,n=t.height,a=t.data,{kernel:i,radius:s}=BP(e,A),o=new Float32Array(a.length),c=new Uint8ClampedArray(a.length);for(let l=0;l<n;l++)for(let u=0;u<r;u++){let g=(l*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[(l*r+y)*4+f]*i[h+s]}o[g+f]=p}}for(let l=0;l<n;l++)for(let u=0;u<r;u++){let g=(l*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,l+h));p+=o[(y*r+u)*4+f]*i[h+s]}c[g+f]=Math.max(0,Math.min(255,Math.round(p)))}}return c}function Uu(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),l=Math.max(1,r),u=2*c*c,g=2*l*l;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]],E=[0,0,0],C=0;for(let G=-o;G<=o;G++){let S=f+G;if(!(S<0||S>=a))for(let k=-o;k<=o;k++){let M=p+k;if(M<0||M>=n)continue;let R=(S*n+M)*4,N=i[R]-D[0],V=i[R+1]-D[1],F=i[R+2]-D[2],K=Math.exp(-(k*k+G*G)/u),L=Math.exp(-(N*N+V*V+F*F)/g),_=Math.max(y,e[S*n+M]||0),W=K*(.35+L*.65)*(.5+_*.5);E[0]+=i[R]*W,E[1]+=i[R+1]*W,E[2]+=i[R+2]*W,C+=W}}C>0&&(s[w]=Math.max(0,Math.min(255,Math.round(E[0]/C))),s[w+1]=Math.max(0,Math.min(255,Math.round(E[1]/C))),s[w+2]=Math.max(0,Math.min(255,Math.round(E[2]/C))))}return s}function PP(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 g=0;g<r;g++){let f=u*r+g;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 E=-y;E<=y;E++){let C=g+E;if(C<0||C>=r||Math.max(Math.abs(E),Math.abs(w))!==y)continue;let G=D*r+C;if(i[G])continue;let S=G*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 g=0;g<n;g++)for(let f=0;f<r;f++){let p=g*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,g],[f+1,g],[f,g-1],[f,g+1],[f-1,g-1],[f+1,g-1],[f-1,g+1],[f+1,g+1]];for(let[E,C]of D){if(E<0||E>=r||C<0||C>=n)continue;let G=(C*r+E)*4;w[0]+=s[G],w[1]+=s[G+1],w[2]+=s[G+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 l=new Uint8ClampedArray(a.length);for(let u=0;u<l.length;u++)l[u]=Math.max(0,Math.min(255,Math.round(s[u])));return l}function ka(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 yP(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 IP(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 l=c*o,u=Math.floor(l),g=Math.min(t.height-1,u+1),f=l-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,E=(c*r+p)*4,C=(u*t.width+y)*4,G=(u*t.width+w)*4,S=(g*t.width+y)*4,k=(g*t.width+w)*4;for(let M=0;M<4;M++){let R=i[C+M]*(1-D)+i[G+M]*D,N=i[S+M]*(1-D)+i[k+M]*D;a[E+M]=Math.round(R*(1-f)+N*f)}}}return{width:r,height:n,data:a}}function DP(t,e){return!e||t.padded.width===e.width&&t.padded.height===e.height?t.padded:IP(t.padded,e.width,e.height)}function CP(t,e){let A=e?.imageData;return!A?.data||A.width===t.padded.width&&A.height===t.padded.height?e:{...e,imageData:IP(A,t.padded.width,t.padded.height)}}function qu(t={}){let e=t.highQualityCleanup===!0||t.highQualityCleanup!==!1&&sn,A=typeof t.denoiseBackend=="string"?t.denoiseBackend:null,r=Object.values(Je).includes(A)?A:t.textureRepair===!0||t.textureRepair!==!1&&wP?Je.CANVAS_TEXTURE_REPAIR:ho,n=r===Je.ALLENK_FDNCNN_BROWSER_SPIKE?3:1,a={residualCleanupStrength:Number.isFinite(t.residualCleanupStrength)?Math.max(0,Math.min(1.8,t.residualCleanupStrength)):Nu,cleanupBackend:e?pP.CANVAS_BILATERAL:pP.CANVAS_SOFT,highQualityCleanup:e,denoiseBackend:r,edgeDenoiseStrength:Number.isFinite(t.edgeDenoiseStrength)?Math.max(0,Math.min(n,t.edgeDenoiseStrength)):Vt,textureRepair:r===Je.CANVAS_TEXTURE_REPAIR,textureRepairStrength:Number.isFinite(t.textureRepairStrength)?Math.max(0,Math.min(1,t.textureRepairStrength)):af};return r===Je.ALLENK_FDNCNN_BROWSER_SPIKE&&(a.allenkFdncnnRuntime=t.allenkFdncnnRuntime||null,a.allenkFdncnnSigma=Number.isFinite(t.allenkFdncnnSigma)?Math.max(0,Math.min(150,t.allenkFdncnnSigma)):Hu,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 po(t,e,A,r){let n=new Float32Array(e*A),a=0,i=(c,l)=>{let u=Math.max(0,Math.min(e-1,c)),g=Math.max(0,Math.min(A-1,l));return t[g*e+u]||0};for(let c=0;c<A;c++)for(let l=0;l<e;l++){let u=c*e+l,g=-i(l-1,c-1)-2*i(l-1,c)-i(l-1,c+1)+i(l+1,c-1)+2*i(l+1,c)+i(l+1,c+1),f=-i(l-1,c-1)-2*i(l,c-1)-i(l+1,c-1)+i(l-1,c+1)+2*i(l,c+1)+i(l+1,c+1),p=Math.sqrt(g*g+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 l=0;l<e;l++){let u=0;for(let g=-1;g<=1;g++){let f=c+g;if(!(f<0||f>=A))for(let p=-1;p<=1;p++){let h=l+p;h<0||h>=e||(u=Math.max(u,n[f*e+h]))}}s[c*e+l]=Math.sqrt(u/a)}let o=fA(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=po(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,l=Math.max(ar(.006,.035,o),ar(.42,.72,c)*.45),u=ar(.2,.3,o),g=ar(.24,.62,c),f=1-u*(1-g)*.86;a[s]=Math.min(1,c*l*f*i)}return fA(a,e,A,.65,2)}function bT(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),l=-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+l*l);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 ET(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=bP(t,e,A,r),a=bT(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 fA(i,e,A,.35,1)}function rf(t,e,A,{strength:r=0,highQuality:n=sn,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),l=Math.min(t.canvas.height,e.y+e.height+i),u=t.getImageData(s,o,c-s,l-o),g=po(A,e.width,e.height,r),f=ka(g,e,u,s,o),p=fA(f,u.width,u.height,1),h=mo(u,2.2,5),y=a?CT(u,n?.55:.78):null,w;if(n)w=Uu(u,p,Math.max(4,Math.round(Math.min(e.width,e.height)/14)),52);else{let D=PP(u,p,Math.max(18,Math.round(Math.min(e.width,e.height)/2))),E=Math.max(2,Math.round(Math.min(e.width,e.height)/18));w=mo({width:u.width,height:u.height,data:D},E*.8,E)}for(let D=0;D<p.length;D++){let E=Math.min(1,Math.max(0,p[D])),C=Math.min(1,E*(n?1.08:1.25)),G=ar(.22,.55,E),S=y?(y[D]||0)*(1-G*.82):0,k=y?Math.max(.28,1-S):1,M=C*k;if(M<=.01)continue;let R=D*4;for(let N=0;N<3;N++){let V=u.data[R+N]-h[R+N],F=n?Math.max(.18,.72-M*.48):Math.max(.05,.78-M*.9),K=Math.max(0,Math.min(255,w[R+N]+V*F));u.data[R+N]=Math.round(u.data[R+N]*(1-M)+K*M)}}t.putImageData(u,s,o)}function TT(t,e,A,{strength:r=Vt}={}){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),l=po(A,e.width,e.height,Math.max(0,Math.min(1,r))),u=ka(l,e,c,a,i),g=fA(u,c.width,c.height,.85,2),f=Uu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/18)),34);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 kT(t,e,A,{strength:r=Vt}={}){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),l=bP(A,e.width,e.height,r),u=ka(l,e,c,a,i),g=fA(u,c.width,c.height,.65,2),f=Uu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 xT(t,e,A,{strength:r=Vt}={}){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),l=ET(A,e.width,e.height,r),u=ka(l,e,c,a,i),g=fA(u,c.width,c.height,.45,1),f=Uu(c,g,Math.max(3,Math.round(Math.min(e.width,e.height)/20)),32);for(let p=0;p<g.length;p++){let h=Math.min(1,Math.max(0,g[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 GT(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=po(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)),l=n[s]||0;a[s]=Math.min(1,Math.max(l*.75,c*.32)*i)}return fA(a,e,A,.75,2)}function ST(t,e,A,r){if(!Number.isFinite(r)||r<=0)return new Float32Array(e*A);let n=po(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,l=ar(.018,.13,o),u=ar(.1,.24,o),g=1-ar(.42,.78,c)*.28;a[s]=Math.min(1,(l*.34+u*.22+c*.18)*g*i)}return fA(a,e,A,.85,2)}function YT(t,e,A,{strength:r=Vt}={}){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),l=ST(A,e.width,e.height,r),u=ka(l,e,c,a,i),g=fA(u,c.width,c.height,.8,2),f=mo(c,1.8,4),p=PP(c,g,Math.max(14,Math.round(Math.min(e.width,e.height)/3))),h=mo({width:c.width,height:c.height,data:p},1.2,3);for(let y=0;y<g.length;y++){let w=Math.min(1,Math.max(0,g[y]||0)),D=Math.min(.36,w*.72);if(D<=.012)continue;let E=y*4,C=Math.max(.28,.72-D*1.1);for(let G=0;G<3;G++){let S=c.data[E+G]-f[E+G],k=Math.max(0,Math.min(255,h[E+G]+S*C));c.data[E+G]=Math.round(c.data[E+G]*(1-D)+k*D)}}t.putImageData(c,a,i)}function vT(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),l=mo(c,1.65,4),u=GT(A,e.width,e.height,r),g=ka(u,e,c,a,i),f=fA(g,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,E=Math.min(1,Math.max(0,f[D]||0));if(E<=.025)continue;let C=D*4,G=Af(l,C),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(Af(l,_)-G),we=Math.sqrt(F*F+N*N),re=W+we*.7;re<k&&(k=re,S=L)}}if(S<0)continue;let M=S*4,R=Math.min(.7,E*.95);for(let N=0;N<3;N++){let V=Math.max(-18,Math.min(18,p[M+N]-l[M+N]));c.data[C+N]=Math.max(0,Math.min(255,Math.round(c.data[C+N]+V*R)))}}t.putImageData(c,a,i)}function OT(t,e,A,{runtime:r=null,sigma:n=Hu,strength:a=Vt,padding:i=void 0}={}){if(!r||typeof r.denoiseImageData!="function")return{denoiseRuntimeStatus:"unavailable",denoiseRuntimeReason:"allenk FDnCNN runtime was not provided"};let s=yP(r),o=EP(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:DP(o,s),sigma:o.options.sigma}),l=CP(o,c);return nf(t,o,l),{denoiseRuntimeStatus:"applied",denoiseRuntime:l.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:l.macs??null,denoiseRuntimeRunMs:l.runMs??null}}function EP(t,e,A,{sigma:r=Hu,strength:n=Vt,padding:a=void 0,targetWidth:i=null,targetHeight:s=null}={}){let o=oP({sigma:r,strength:n,padding:a}),l=Number.isInteger(i)&&i>0&&Number.isInteger(s)&&s>0&&Math.round(e.width)!==Math.round(e.height),u=l?uP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s}):lP({imageWidth:t.canvas.width,imageHeight:t.canvas.height,region:e,padding:o.padding,targetWidth:i,targetHeight:s});if(!u)return null;let g=u.visible||{x:u.x,y:u.y,width:u.width,height:u.height,offsetX:0,offsetY:0},f=t.getImageData(g.x,g.y,g.width,g.height),p=l?gP({imageData:f,imageX:g.x,imageY:g.y,canvasWidth:t.canvas.width,canvasHeight:t.canvas.height,roi:u}):f,h=cP({alphaMap:A,width:e.width,height:e.height,strength:o.strength}),y=dP({roiWeights:h,roiWidth:e.width,roiHeight:e.height,paddedRoi:u,blurSigma:1});return{options:o,paddedRoi:u,visible:g,padded:p,weights:y}}function _T(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 g=s+u;if(!(g<0||g>=r.height))for(let f=0;f<n;f++){let p=i+f;if(p<0||p>=r.width)continue;let h=(g*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,l=c?new c(o,n,a):{width:n,height:a,data:o};return{x:A.x,y:A.y,imageData:l}}function nf(t,e,A){let r=new Uint8ClampedArray(e.padded.data),n=hP({originalData:r,denoisedData:A.imageData.data,weights:e.weights,width:e.padded.width,height:e.padded.height,protectStructure:!0}),a=_T(e,n);t.putImageData(a.imageData,a.x,a.y)}function TP(t){return{width:t.width,height:t.height,data:new Uint8ClampedArray(t.data)}}function MT(t){return{...t,imageData:TP(t.imageData)}}function RT(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 QT(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):DT}}async function FT(t,e,A,{runtime:r=null,sigma:n=Hu,strength:a=Vt,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=yP(r),l=EP(t,e,A,{sigma:n,strength:a,padding:i,targetWidth:c?.width,targetHeight:c?.height});if(!l)return{denoiseRuntimeStatus:"skipped",denoiseRuntimeReason:"invalid padded ROI"};let u=QT(s),g=u&&o?TP(l.padded):null;if(u&&o?.denoised&&o?.previousInput){let h=RT(l.padded,o.previousInput),y=Number.isFinite(o.reuseCount)?o.reuseCount:0;if(y<u.maxFrames&&h<=u.threshold)return nf(t,l,o.denoised),o.previousInput=g,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:DP(l,c),sigma:l.options.sigma}),p=CP(l,f);return nf(t,l,p),u&&o&&(o.previousInput=g,o.denoised=MT(p),o.reuseCount=0),{denoiseRuntimeStatus:"applied",denoiseRuntime:p.runtime||r.id||"allenk-fdncnn-runtime",denoiseRuntimeMacs:p.macs??null,denoiseRuntimeRunMs:p.runMs??null}}function sf(t,e,A,r={}){let n=qu(r),a=n.denoiseBackend===Je.ALLENK_FDNCNN_BROWSER_SPIKE;return n.residualCleanupStrength>0&&!a&&rf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup}),n.denoiseBackend===Je.CANVAS_EDGE_DENOISE?TT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Je.CANVAS_EDGE_BAND_DENOISE?kT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Je.CANVAS_EDGE_CORE_DENOISE?xT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Je.CANVAS_FOOTPRINT_POLISH?YT(t,e,A,{strength:n.edgeDenoiseStrength}):n.denoiseBackend===Je.CANVAS_TEXTURE_REPAIR?vT(t,e,A,{strength:n.textureRepairStrength}):n.denoiseBackend===Je.ALLENK_FDNCNN_BROWSER_SPIKE&&Object.assign(n,OT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding})),n.residualCleanupStrength>0&&a&&rf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n}async function kP(t,e,A,r={}){let n=qu(r);return n.denoiseBackend!==Je.ALLENK_FDNCNN_BROWSER_SPIKE?sf(t,e,A,r):(Object.assign(n,await FT(t,e,A,{runtime:n.allenkFdncnnRuntime,sigma:n.allenkFdncnnSigma,strength:n.edgeDenoiseStrength,padding:n.allenkFdncnnPadding,temporalReuse:n.allenkFdncnnTemporalReuse,frameCache:n.allenkFdncnnFrameCache})),n.residualCleanupStrength>0&&rf(t,e,A,{strength:n.residualCleanupStrength,highQuality:n.highQualityCleanup,protectStructure:!0}),n)}var wo=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])})]),xP=wo.find(t=>t.id==="allenk-fdncnn-200")||wo[wo.length-1],zT=64;function NT(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 of(t,e){return{...t,inputShape:[...t.inputShape],outputShape:[...t.outputShape],padding:e}}function jn(t=null){let e=NT(t);if(!e)return of(xP,zT);let A=Math.round(Number(t?.width)),r=Math.round(Number(t?.height??t?.width)),n=wo.find(s=>s.matchWatermark&&s.matchWatermark.width===A&&s.matchWatermark.height===r);if(n)return of(n,n.padding);let a=wo.find(s=>e<=s.maxWatermarkSize)||xP,i=Math.max(0,Math.floor((a.modelSize-e)/2));return of(a,i)}async function cf(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=Number.isFinite(s?.averagePacketRate)&&s.averagePacketRate>0?s.averagePacketRate:null,l=c||30,u=Number.isFinite(o)&&o>0&&c?Math.max(1,Math.round(o*c)):null;return{width:A,height:r,firstTimestamp:Number.isFinite(n)?n:0,duration:Number.isFinite(o)?o:null,codec:a,frameRate:l,frameCountEstimate:u,averageBitrate:s?.averageBitrate||null}}var Vn=12,xa=1,uf=!1,lf=12e6,HT=2,UT="no-preference",qT="quality",LT="constant",jT="detail",VT=Object.freeze({primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!1}),KT=5,GP=.05,WT=.14,ZT=.035,YP=Object.freeze({copied:!1,packetCount:0,codec:null,skipReason:"disabled"});function vP(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 OP(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 $T(t){return new zn({source:new Zs(t),formats:Bd})}async function gf(t){let e=$T(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}}function JT({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 _P(t){let e=Number(t);return Number.isFinite(e)&&e>0?e:lf}function XT(t,e){!e?.decoderConfig||typeof e.decoderConfig!="object"||(e.decoderConfig.colorSpace={...VT})}function ek(t){return{codec:"avc",bitrate:_P(t),alpha:"discard",keyFrameInterval:HT,latencyMode:qT,bitrateMode:LT,hardwareAcceleration:UT,contentHint:jT,onEncodedPacket:XT}}function tk(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 Ak(t,e){return!!(e&&t.getSupportedAudioCodecs().includes(e))}async function rk({input:t,output:e,format:A,startTimestamp:r,preserveAudio:n}){if(n===!1)return{source:null,track:null,meta:null,result:YP};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(!Ak(A,i))return{source:null,track:a,meta:null,result:{copied:!1,packetCount:0,codec:i,skipReason:"unsupported-audio-codec"}};let s=new oo(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 nk(t){if(!t?.source||!t.track)return t?.result||YP;let e=new rn(t.track),A=0;try{for await(let r of e.packets()){let n=tk(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 MP(t){let{input:e,videoTrack:A}=await gf(t);try{let r=await cf(e,A);return{...r,candidates:go(r.width,r.height)}}finally{e.dispose()}}async function Lu(t,e={}){e.signal?.throwIfAborted();let A=typeof e.onProgress=="function"?e.onProgress:()=>{},r=typeof e.yieldToMainThread=="function"?e.yieldToMainThread:async()=>{},n=async()=>{e.signal?.throwIfAborted(),await r(),e.signal?.throwIfAborted()},{input:a,videoTrack:i}=await gf(t);try{let s=await cf(a,i);A({phase:"detect",step:"metadata",progress:.04,metadata:s}),await n();let o=vP(s.width,s.height),c=OP(o),l=new aa(i),u=JT({firstTimestamp:s.firstTimestamp,duration:s.duration,sampleCount:e.sampleCount??Vn}),g=[],f=0;for await(let h of l.samples())try{if(e.signal?.throwIfAborted(),f>=u.length)break;if(h.timestamp<u[f]&&g.length>0)continue;h.draw(c,0,0,s.width,s.height),g.push({timestamp:h.timestamp,imageData:c.getImageData(0,0,s.width,s.height)}),f++,A({phase:"detect",step:"sample",progress:.06+.54*Math.min(1,g.length/u.length),metadata:s,sampledFrames:g.length,sampleCount:u.length}),await n()}finally{h.close()}if(!g.length)throw new Error("\u65E0\u6CD5\u4ECE\u89C6\u9891\u4E2D\u62BD\u53D6\u68C0\u6D4B\u5E27");A({phase:"detect",step:"score",progress:.65,metadata:s,sampledFrames:g.length,sampleCount:u.length}),await n();let p=await aP({frames:g,width:s.width,height:s.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:n});return A({phase:"detect",step:"done",progress:1,metadata:s,detection:p}),{metadata:s,detection:p}}finally{a.dispose()}}function ik(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 mA(t,e){return .2126*t[e]+.7152*t[e+1]+.0722*t[e+2]}function ak(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,l=0,u=.015;for(let g=0;g<o.height;g++)for(let f=0;f<o.width;f++){let p=n+f,h=a+g,y=p>=e.x&&p<e.x+e.width&&h>=e.y&&h<e.y+e.height,w=y?0:1;if(y){let E=p-e.x,C=h-e.y;(A[C*e.width+E]||0)<=u&&(w=.35)}if(w<=0)continue;let D=(g*o.width+f)*4;c+=mA(o.data,D)*w,l+=w}return{mean:l>0?c/l:null,padded:o}}function sk(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+=mA(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 df(t,e,A){let r=ik(t);return YB(r,e,{x:0,y:0,width:t.width,height:t.height},{alphaGain:A}),r}function ok(t,e,A,r,{strength:n=Vt}={}){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 l=0;l<a.height;l++)for(let u=0;u<a.width;u++){let g=l*a.width+u,f=A[g]||0;if(f<=.025)continue;let p=g*4,h=mA(a.data,p),y=mA(r.data,p),w=Math.abs(h-y),D=1-Mr(5,22,w),E=Mr(.035,.24,f),C=Math.min(.26,i*E*D*.32);if(!(C<=.012)){for(let G=0;G<3;G++)s[p+G]=Math.round(a.data[p+G]*(1-C)+r.data[p+G]*C);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 ck(t,e,A,r,n,{strength:a=Vt}={}){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 g=0;g<i.width;g++){let f=u*i.width+g,p=A[f]||0;if(p<=.025)continue;let h=f*4,y=mA(r.data,h),w=mA(n.originalRoi.data,h),D=Math.abs(y-w),E=mA(i.data,h)-y,C=mA(n.processedRoi.data,h)-w,G=Math.abs(E-C),S=1-Mr(4,20,D),k=Mr(1.5,10,G),M=Mr(.035,.24,p),R=Math.min(.34,s*S*k*M*.42);if(!(R<=.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-R)+F*R;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 l=typeof ImageData<"u"?new ImageData(o,i.width,i.height):{width:i.width,height:i.height,data:o};return t.putImageData(l,e.x,e.y),{originalRoi:r,processedRoi:l}}function SP(t){let e=new Float32Array(t.width*t.height);for(let A=0;A<e.length;A++)e[A]=mA(t.data,A*4);return e}function uk(t,e,A,r,n,a,i,s){let o=0,c=0;for(let l=-1;l<=1;l++){let u=a+l,g=a+s+l;if(!(u<0||u>=r||g<0||g>=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[g*A+h]),c++)}}return c>0?o/c:Number.POSITIVE_INFINITY}function lk(t,e,A,r,n,{strength:a=Vt}={}){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,l=SP(r),u=SP(n.originalRoi),g=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 E=0,C=0,G=Number.POSITIVE_INFINITY;for(let ae=-2;ae<=2;ae++)for(let fe=-2;fe<=2;fe++){let ut=y+fe,ot=h+ae;if(ut<0||ut>=o||ot<0||ot>=c)continue;let et=uk(l,u,o,c,y,h,fe,ae);et<G&&(G=et,E=fe,C=ae)}let S=(h+C)*o+y+E,k=w*4,M=S*4,R=mA(i.data,k)-l[w],N=mA(n.processedRoi.data,k)-u[w],V=mA(n.processedRoi.data,M)-u[S],F=Math.abs(R-V),L=Math.abs(R-N)-F;if(L<=.5||G>8)continue;let _=1-Mr(2.5,8,G),W=Mr(.5,5,L),we=Mr(1.5,10,F),re=Mr(.035,.24,D),De=Math.min(.24,s*_*W*we*re*.36);if(!(De<=.012)){for(let ae=0;ae<3;ae++){let fe=i.data[k+ae]-r.data[k+ae],ut=n.processedRoi.data[M+ae]-n.originalRoi.data[M+ae],ot=fe*(1-De)+ut*De;g[k+ae]=Math.max(0,Math.min(255,Math.round(r.data[k+ae]+ot)))}f=!0}}if(!f)return{originalRoi:r,processedRoi:i};let p=typeof ImageData<"u"?new ImageData(g,i.width,i.height):{width:i.width,height:i.height,data:g};return t.putImageData(p,e.x,e.y),{originalRoi:r,processedRoi:p}}function gk(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 RP({ctx:t,originalRoi:e,position:A,alphaMap:r,seedGain:n,previousGain:a}){let i=ak(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,l=Number.POSITIVE_INFINITY;for(let u=0;u<KT;u++){let g=(s+o)/2,f=df(e,r,g),p=sk(f,r,i.mean),h=Math.abs(p);h<l&&(l=h,c=g),p>0?s=g:o=g}return Number.isFinite(a)&&(c=Math.max(a-GP,Math.min(a+GP,c))),c}function dk(t,e,A){let{position:r,alphaMap:n}=e,a=fo(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?RP({ctx:t,originalRoi:s,position:r,alphaMap:n,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,l=df(s,n,c);t.putImageData(l,r.x,r.y),sf(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===Je.CANVAS_TEMPORAL_STABILIZE?ok(t,r,n,A.previousTemporalRoi,{strength:A.edgeDenoiseStrength}):null,g=A.denoiseBackend===Je.CANVAS_TEMPORAL_DELTA_STABILIZE?ck(t,r,n,s,A.previousTemporalDeltaFrame,{strength:A.edgeDenoiseStrength}):null,f=A.denoiseBackend===Je.CANVAS_TEMPORAL_MATCH_DELTA_STABILIZE&&gk(t,r)?lk(t,r,n,s,A.previousTemporalMatchDeltaFrame,{strength:A.edgeDenoiseStrength}):null;return{alphaGain:c,frameScore:a,skipped:!1,mode:o?"adaptive":"seed",temporalRoi:u,temporalDeltaFrame:g,temporalMatchDeltaFrame:f}}async function fk(t,e,A){if(!(A.denoiseBackend===Je.ALLENK_FDNCNN_BROWSER_SPIKE&&A.allenkFdncnnRuntime))return dk(t,e,A);let{position:n,alphaMap:a}=e,i=fo(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,l=c?RP({ctx:t,originalRoi:o,position:n,alphaMap:a,seedGain:A.seedAlphaGain,previousGain:A.previousAlphaGain}):A.seedAlphaGain,u=df(o,a,l);t.putImageData(u,n.x,n.y);let g=await kP(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:l,frameScore:i,skipped:!1,mode:c?"adaptive":"seed",temporalRoi:null,temporalDeltaFrame:null,temporalMatchDeltaFrame:null,cleanupResult:g}}async function mk(t,e,A=new Map,r={}){let n=iP(t,e),a=n?.detection||e,i=a?.candidate?.id||[a?.position?.x,a?.position?.y,a?.position?.width,a?.position?.height].join(":"),s=A.get(i)||{},o=await fk(t,a,{...r,seedAlphaGain:a?.alphaSeed?.seedGain??r.seedAlphaGain??xa,previousAlphaGain:s.previousAlphaGain??null,previousTemporalRoi:s.previousTemporalRoi??null,previousTemporalDeltaFrame:s.previousTemporalDeltaFrame??null,previousTemporalMatchDeltaFrame:s.previousTemporalMatchDeltaFrame??null,allenkFdncnnFrameCache:s.allenkFdncnnFrameCache??r.allenkFdncnnFrameCache??{}});return s.previousAlphaGain=o.alphaGain,s.previousTemporalRoi=o.skipped?null:o.temporalRoi||null,s.previousTemporalDeltaFrame=o.skipped?null:o.temporalDeltaFrame||null,s.previousTemporalMatchDeltaFrame=o.skipped?null:o.temporalMatchDeltaFrame||null,s.allenkFdncnnFrameCache=s.allenkFdncnnFrameCache??r.allenkFdncnnFrameCache??{},A.set(i,s),{...o,selectedDetection:a,selection:n}}async function QP(t,e={}){e.signal?.throwIfAborted();let A=Number.isFinite(e.alphaGain)&&e.alphaGain>0?e.alphaGain:xa,r=e.adaptiveAlpha===!0||e.adaptiveAlpha!==!1&&uf,n=qu(e),{residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:l}=n,u=typeof e.onProgress=="function"?e.onProgress:()=>{},g=_P(e.videoBitrate);u({phase:"detect",progress:0});let f=e.detection||await Lu(t,{signal:e.signal,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;e.signal?.throwIfAborted();let y=hk(n,h),w=h?.alphaSeed?.seedGain,D=Number.isFinite(w)&&Math.abs(A-xa)<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 E=ek(g);if(!await Cd("avc",{width:p.width,height:p.height,bitrate:E.bitrate,latencyMode:E.latencyMode,bitrateMode:E.bitrateMode,hardwareAcceleration:E.hardwareAcceleration,contentHint:E.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:G,videoTrack:S}=await gf(t),k=vP(p.width,p.height),M=OP(k),R=new Or,N=new Da({fastStart:"in-memory"}),V=new uo({format:N,target:R}),F=new so(k,E);V.addVideoTrack(F,{frameRate:p.frameRate});let K,L,_=0,W=0,we=0,re=0,De=0,ae=0,fe=-1/0,ut=new Map,ot=p.frameRate>0?1/p.frameRate:1/30;try{e.signal?.throwIfAborted(),L=await rk({input:G,output:V,format:N,startTimestamp:p.firstTimestamp,preserveAudio:e.preserveAudio}),await V.start(),K=nk(L),K.catch(()=>{});let et=new aa(S);for await(let qe of et.samples()){let Ne=Math.max(0,qe.timestamp-p.firstTimestamp);Ne<fe&&(Ne=fe+ot);let ct=Number.isFinite(qe.duration)&&qe.duration>0?qe.duration:ot;try{e.signal?.throwIfAborted(),qe.draw(M,0,0,p.width,p.height);let kt=await mk(M,h,ut,{seedAlphaGain:D,adaptiveAlpha:r,residualCleanupStrength:a,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,textureRepair:c,textureRepairStrength:l,allenkFdncnnRuntime:e.allenkFdncnnRuntime,allenkFdncnnSigma:e.allenkFdncnnSigma,allenkFdncnnPadding:y,allenkFdncnnTemporalReuse:e.allenkFdncnnTemporalReuse,highConfidenceThreshold:e.highConfidenceThreshold??WT,lowConfidenceThreshold:e.lowConfidenceThreshold??ZT}),ve=kt.cleanupResult?.denoiseRuntimeStatus;ve==="applied"?De++:ve==="reused"&&ae++,kt.skipped?W++:kt.mode==="adaptive"?we++:re++}finally{qe.close()}e.signal?.throwIfAborted(),await F.add(Ne,ct),fe=Ne,_++;let Be=p.frameCountEstimate||Math.max(1,Math.round((p.duration||0)*p.frameRate)),oe=Ne+ct,de=Number.isFinite(p.duration)&&p.duration>0?Math.max(0,Math.min(1,oe/p.duration)):null;u({phase:"export",progress:de??(Be?Math.min(1,_/Be):0),processedFrames:_,frameEstimate:Be,elapsedSeconds:oe,metadata:p,detection:h,skippedFrames:W,adaptiveFrames:we,seedFrames:re,aiDenoiseFrames:De,aiReuseFrames:ae,alphaGain:D})}F.close();let Mt=await K;if(e.signal?.throwIfAborted(),await V.finalize(),e.signal?.throwIfAborted(),!R.buffer)throw new Error("\u89C6\u9891\u5BFC\u51FA\u5931\u8D25\uFF0C\u8F93\u51FA\u4E3A\u7A7A");return{blob:new Blob([R.buffer],{type:"video/mp4"}),metadata:p,detection:h,alphaGain:D,adaptiveAlpha:r,highQualityCleanup:i,denoiseBackend:s,edgeDenoiseStrength:o,allenkFdncnnPadding:y,textureRepair:c,textureRepairStrength:l,residualCleanupStrength:a,videoBitrate:g,preserveAudio:e.preserveAudio!==!1,audioCopied:Mt.copied,audioPacketCount:Mt.packetCount,audioCodec:Mt.codec,audioSkipReason:Mt.skipReason,processedFrames:_,skippedFrames:W,adaptiveFrames:we,seedFrames:re,aiDenoiseFrames:De,aiReuseFrames:ae}}catch(et){throw V.state!=="finalized"&&V.state!=="canceled"&&await V.cancel().catch(()=>{}),et}finally{G.dispose(),await K?.catch(()=>{})}}function hk(t={},e=null){return Number.isFinite(t.allenkFdncnnPadding)||t.denoiseBackend!==Je.ALLENK_FDNCNN_BROWSER_SPIKE?t.allenkFdncnnPadding:jn(e?.position).padding}var FP=1.8,zP=12,NP=1,pk=1.8,wk=.4,Bk=1,Pk=1.2,yk=1.45,Ik=.9;function Dk(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*FP||Number.isFinite(i)&&i>=t.width*FP}function Ck(t={}){let e=`${t.id||""} ${t.label||""}`.toLowerCase();return e.includes("inset")||e.includes("relocated")}function bk(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 Dk(A)||Ck(t.summary?.best)}function ff(){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:NP,adaptiveAlpha:!1,highQualityCleanup:sn,denoiseBackend:Je.CANVAS_FOOTPRINT_POLISH,edgeDenoiseStrength:Bk,residualCleanupStrength:Pk,sampleCount:zP,videoBitrateMbps:12,allowLowConfidence:!0}}function HP(){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:NP,adaptiveAlpha:!1,highQualityCleanup:sn,denoiseBackend:Je.ALLENK_FDNCNN_BROWSER_SPIKE,edgeDenoiseStrength:pk,residualCleanupStrength:wk,sampleCount:zP,videoBitrateMbps:"",allowLowConfidence:!1}}function Ek(){return{...HP(),id:"veo-text-auto",edgeDenoiseStrength:yk,residualCleanupStrength:Ik}}function mf(t=null,e=null){return bk(t,e)?ff():t?.watermarkKind==="veo-text"?Ek():HP()}function UP({windowObject:t=globalThis,adaptiveAlphaInput:e}={}){let A=t?.__gwrVideoOverrideAdaptiveAlpha;return typeof A!="boolean"||!e?!1:(e.checked=A,!0)}function qP({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)}function LP(){return{items:[],processing:!1}}function hf(t){return t.processing||(t.items=[]),t}function jP(t,e){for(let A of e)t.items.push({file:A,status:"pending"});return t}function Tk(t){return{done:t.filter(e=>e.status==="done").length,total:t.length}}async function VP(t,{signal:e,processFile:A,downloadResult:r=()=>{},onChange:n=()=>{},onError:a=()=>{}}={}){if(t.processing)return null;t.processing=!0;try{for(let i=0;i<t.items.length;i+=1){let s=t.items[i];if(s.status==="pending"){if(e?.aborted){s.status="cancelled";continue}s.status="processing",n(t);try{let o=await A(s.file,e);e?.aborted?s.status="cancelled":o?.skipped?s.status="skipped":o?.ok&&o.href?(s.status="done",r({href:o.href,filename:o.filename})):s.status="error"}catch(o){e?.aborted?s.status="cancelled":(a(o,s.file),s.status="error")}n(t)}}return Tk(t.items)}finally{t.processing=!1}}var kk="gwr-debug-file-handoff";var Ga="files",pf="latest",xk=new Set(["image/jpeg","image/png","image/webp"]),Gk=new Set([".jpg",".jpeg",".png",".webp"]),Sk=new Set([".mp4",".webm",".mov",".m4v"]);function Yk(t){let e=typeof t?.name=="string"?t.name.toLowerCase():"",A=e.lastIndexOf(".");return A>=0?e.slice(A):""}function Kn(t){if(!t)return null;let e=typeof t.type=="string"?t.type.toLowerCase():"",A=Yk(t);return e.startsWith("video/")||Sk.has(A)?"video":xk.has(e)||Gk.has(A)?"image":null}function KP(t){let e=Array.from(t||[]).filter(Boolean);return e.find(A=>Kn(A)==="video")||e.find(A=>Kn(A)==="image")||null}function WP(){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(kk,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(Ga)||n.createObjectStore(Ga,{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 ZP(t,e=Kn(t)){if(!t||!e)throw new Error("\u4E0D\u652F\u6301\u7684\u6587\u4EF6\u7C7B\u578B\u3002");let A={id:pf,kind:e,file:t,name:t.name||"",type:t.type||"",size:Number.isFinite(t.size)?t.size:0,updatedAt:Date.now()},r=await WP();return await new Promise((n,a)=>{let i=r.transaction(Ga,"readwrite");i.objectStore(Ga).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 $P(t=null){let e=await WP(),A=null;return await new Promise((r,n)=>{let a=e.transaction(Ga,"readwrite"),i=a.objectStore(Ga),s=i.get(pf);s.onsuccess=()=>{let o=s.result||null;o&&(!t||o.kind===t)&&(A=o,i.delete(pf))},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 em={};dp(em,{InferenceSession:()=>Ff,TRACE:()=>Ju,TRACE_EVENT_BEGIN:()=>Ai,TRACE_EVENT_END:()=>ri,TRACE_FUNC_BEGIN:()=>ei,TRACE_FUNC_END:()=>ti,Tensor:()=>qA,default:()=>nx,env:()=>at,registerBackend:()=>Co});var UA={};var Rf=Object.defineProperty,vk=Object.getOwnPropertyDescriptor,Ok=Object.getOwnPropertyNames,_k=Object.prototype.hasOwnProperty,Mk=(t=>typeof Ft<"u"?Ft:typeof Proxy<"u"?new Proxy(t,{get:(e,A)=>(typeof Ft<"u"?Ft:e)[A]}):t)(function(t){if(typeof Ft<"u")return Ft.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')}),ze=(t,e)=>()=>(t&&(e=t(t=0)),e),tl=(t,e)=>{for(var A in e)Rf(t,A,{get:e[A],enumerable:!0})},Rk=(t,e,A,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ok(e))!_k.call(t,n)&&n!==A&&Rf(t,n,{get:()=>e[n],enumerable:!(r=vk(e,n))||r.enumerable});return t},vf=t=>Rk(Rf({},"__esModule",{value:!0}),t),Bo,on,Co,JP,hy,py=ze(()=>{"use strict";Bo=new Map,on=[],Co=(t,e,A)=>{if(e&&typeof e.init=="function"&&typeof e.createInferenceSessionHandler=="function"){let r=Bo.get(t);if(r===void 0)Bo.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=on.indexOf(t);n!==-1&&on.splice(n,1);for(let a=0;a<on.length;a++)if(Bo.get(on[a]).priority<=A){on.splice(a,0,t);return}on.push(t)}return}throw new TypeError("not a valid backend")},JP=async t=>{let e=Bo.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}}},hy=async t=>{let e=t.executionProviders||[],A=e.map(o=>typeof o=="string"?o:o.name),r=A.length===0?on:A,n,a=[],i=new Set;for(let o of r){let c=await JP(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)})]}}),Qk=ze(()=>{"use strict";py()}),wy,Fk=ze(()=>{"use strict";wy="1.26.0"}),wf,bt,By=ze(()=>{"use strict";Fk(),wf="warning",bt={wasm:{},webgl:{},webgpu:{},versions:{common:wy},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}`);wf=t}},get logLevel(){return wf}},Object.defineProperty(bt,"logLevel",{enumerable:!0})}),at,zk=ze(()=>{"use strict";By(),at=bt}),Py,yy,Nk=ze(()=>{"use strict";Py=(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 l=a*n,u=0,g=l,f=l*2,p=-1;i==="RGBA"?(u=0,g=l,f=l*2,p=l*3):i==="RGB"?(u=0,g=l,f=l*2):i==="RBG"&&(u=0,f=l,g=l*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[g++]-c[1])*o[1],E=(t.data[f++]-c[2])*o[2],C=p===-1?255:(t.data[p++]-c[3])*o[3];r.fillStyle="rgba("+w+","+D+","+E+","+C+")",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")},yy=(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,l;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?l=[0,0,0,0]:typeof o.bias=="number"?l=[o.bias,o.bias,o.bias,o.bias]:(l=[o.bias[0],o.bias[1],o.bias[2],0],o.bias[3]!==void 0&&(l[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 g=4,f=0,p=1,h=2,y=3,w=0,D=u,E=u*2,C=-1;s==="RGBA"?(w=0,D=u,E=u*2,C=u*3):s==="RGB"?(w=0,D=u,E=u*2):s==="RBG"&&(w=0,E=u,D=u*2),r=A.createImageData(n,a);for(let G=0;G<a*n;f+=g,p+=g,h+=g,y+=g,G++)r.data[f]=(t.data[w++]-l[0])*c[0],r.data[p]=(t.data[D++]-l[1])*c[1],r.data[h]=(t.data[E++]-l[2])*c[2],r.data[y]=C===-1?255:(t.data[C++]-l[3])*c[3]}else throw new Error("Can not access image data");return r}}),ju,Iy,Dy,Cy,by,Ey,Hk=ze(()=>{"use strict";Qf(),ju=(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,l=o==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,g=0,f=1,p=2,h=3,y=0,w=c,D=c*2,E=-1;s==="RGB"&&(u=3,g=0,f=1,p=2,h=-1),o==="RGBA"?E=c*3:o==="RBG"?(y=0,D=c,w=c*2):o==="BGR"&&(D=0,w=c,y=c*2);for(let C=0;C<c;C++,g+=u,p+=u,f+=u,h+=u)l[y++]=(t[g]+i[0])/a[0],l[w++]=(t[f]+i[1])/a[1],l[D++]=(t[p]+i[2])/a[2],E!==-1&&h!==-1&&(l[E++]=(t[h]+i[3])/a[3]);return o==="RGBA"?new nA("float32",l,[1,4,A,r]):new nA("float32",l,[1,3,A,r])},Iy=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=l=>typeof HTMLCanvasElement<"u"&&l instanceof HTMLCanvasElement||l instanceof OffscreenCanvas?l.getContext("2d"):null;if(A){let l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;if(e!==void 0&&e.resizedHeight!==void 0&&e.resizedWidth!==void 0&&(g=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=g,s.width=f}else s.tensorFormat="RGBA",s.height=g,s.width=f;u.drawImage(t,0,0),i=u.getImageData(0,0,f,g).data}else throw new Error("Can not access image data")}else if(r){let l,u;if(e!==void 0&&e.resizedWidth!==void 0&&e.resizedHeight!==void 0?(l=e.resizedHeight,u=e.resizedWidth):(l=t.height,u=t.width),e!==void 0&&(s=e),s.format="RGBA",s.height=l,s.width=u,e!==void 0){let g=o();g.width=u,g.height=l;let f=c(g);if(f!=null)f.putImageData(t,0,0),i=f.getImageData(0,0,u,l).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 l=o();l.width=t.width,l.height=t.height;let u=c(l);if(u!=null){let g=t.height,f=t.width;return u.drawImage(t,0,0,f,g),i=u.getImageData(0,0,f,g).data,s.height=g,s.width=f,ju(i,s)}else throw new Error("Can not access image data")}else{if(a)return new Promise((l,u)=>{let g=o(),f=c(g);if(!t||!f)return u();let p=new Image;p.crossOrigin="Anonymous",p.src=t,p.onload=()=>{g.width=p.width,g.height=p.height,f.drawImage(p,0,0,g.width,g.height);let h=f.getImageData(0,0,g.width,g.height);s.height=g.height,s.width=g.width,l(ju(h.data,s))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(i!==void 0)return ju(i,s);throw new Error("Input data provided is not supported - aborted tensor creation")},Dy=(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})},Cy=(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})},by=(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})},Ey=(t,e,A)=>new nA({location:"cpu-pinned",type:t,data:e,dims:A??[e.length]})}),Xn,Do,Bf,Ty,Uk=ze(()=>{"use strict";Xn=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Do=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Bf=!1,Ty=()=>{if(!Bf){Bf=!0;let t=typeof BigInt64Array<"u"&&BigInt64Array.from,e=typeof BigUint64Array<"u"&&BigUint64Array.from,A=globalThis.Float16Array,r=typeof A<"u"&&A.from;t&&(Xn.set("int64",BigInt64Array),Do.set(BigInt64Array,"int64")),e&&(Xn.set("uint64",BigUint64Array),Do.set(BigUint64Array,"uint64")),r?(Xn.set("float16",A),Do.set(A,"float16")):Xn.set("float16",Uint16Array)}}}),ky,xy,qk=ze(()=>{"use strict";Qf(),ky=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},xy=(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,Qf=ze(()=>{"use strict";Nk(),Hk(),Uk(),qk(),nA=class{constructor(t,e,A){Ty();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=Xn.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=Xn.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=Do.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=ky(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 Iy(t,e)}static fromTexture(t,e){return Dy(t,e)}static fromGpuBuffer(t,e){return Cy(t,e)}static fromMLTensor(t,e){return by(t,e)}static fromPinnedBuffer(t,e,A){return Ey(t,e,A)}toDataURL(t){return Py(this,t)}toImageData(t){return yy(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 xy(this,t)}}}),qA,Gy=ze(()=>{"use strict";Qf(),qA=nA}),Ju,Pf,ei,ti,Ai,ri,Sy=ze(()=>{"use strict";By(),Ju=(t,e)=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.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}`),Ju("CPU",a);return}A[n].includes("TRACE_FUNC")&&(r=!0)}},ei=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||Pf("BEGIN",t)},ti=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||Pf("END",t)},Ai=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||console.time(`ORT::${t}`)},ri=t=>{(typeof bt.trace>"u"?!bt.wasm.trace:!bt.trace)||console.timeEnd(`ORT::${t}`)}}),Yy,Lk=ze(()=>{"use strict";py(),Gy(),Sy(),Yy=class vy{constructor(e){this.handler=e}async run(e,A,r){ei(),Ai("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,l=Object.getOwnPropertyNames(A);for(let u of this.outputNames)if(l.indexOf(u)!==-1){let g=A[u];(g===null||g instanceof qA)&&(c=!0,i=!1,n[u]=g)}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 l=s[c];l instanceof qA?o[c]=l:o[c]=new qA(l.type,l.data,l.dims)}return ri("InferenceSession.run"),ti(),o}async release(){return this.handler.dispose()}static async create(e,A,r,n){ei(),Ai("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 l=e,u=0,g=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>=l.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${l.byteLength}).`);if(g=e.byteLength-u,typeof r=="number"){if(g=r,!Number.isSafeInteger(g))throw new RangeError("'byteLength' must be an integer.");if(g<=0||u+g>l.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${l.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(l,u,g)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[s,o]=await hy(i),c=await s.createInferenceSessionHandler(a,o);return ri("InferenceSession.create"),ti(),new vy(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}}}),Ff,jk=ze(()=>{"use strict";Lk(),Ff=Yy}),Vk=ze(()=>{"use strict"}),Kk=ze(()=>{"use strict"}),Wk=ze(()=>{"use strict"}),Zk=ze(()=>{"use strict"}),Oy={};tl(Oy,{InferenceSession:()=>Ff,TRACE:()=>Ju,TRACE_EVENT_BEGIN:()=>Ai,TRACE_EVENT_END:()=>ri,TRACE_FUNC_BEGIN:()=>ei,TRACE_FUNC_END:()=>ti,Tensor:()=>qA,env:()=>at,registerBackend:()=>Co});var ni=ze(()=>{"use strict";Qk(),zk(),jk(),Gy(),Vk(),Kk(),Sy(),Wk(),Zk()}),zf=ze(()=>{"use strict"}),_y={};tl(_y,{default:()=>My});var yf,If,My,$k=ze(()=>{"use strict";Wy(),Oa(),Nf(),yf="ort-wasm-proxy-worker",If=globalThis.self?.name===yf,If&&(self.onmessage=t=>{let{type:e,in:A}=t.data;try{switch(e){case"init-wasm":Hf(A.wasm).then(()=>{Vf(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;Kf(n,r).then(()=>{postMessage({type:e})},a=>{postMessage({type:e,err:a})});break}case"copy-from":{let{buffer:r}=A,n=el(r);postMessage({type:e,out:n});break}case"create":{let{model:r,options:n}=A;Wf(r,n).then(a=>{postMessage({type:e,out:a})},a=>{postMessage({type:e,err:a})});break}case"release":Zf(A),postMessage({type:e});break;case"run":{let{sessionId:r,inputIndices:n,inputs:a,outputIndices:i,options:s}=A;$f(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},Xf([...a,...o]))},o=>{postMessage({type:e,err:o})});break}case"end-profiling":Jf(A),postMessage({type:e});break;default:}}catch(r){postMessage({type:e,err:r})}}),My=If?null:t=>new Worker(t??rA,{type:"module",name:yf})}),Ry={};tl(Ry,{default:()=>Qy});async function XP(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(G(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 l,u,g,f,p,h,y=console.log.bind(console),w=console.error.bind(console),D=y,E=w,C=!1,G=I=>I.startsWith("file://");function S(){wA.buffer!=R.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"&&(E=e[U]));wA=O.dc,De(),u=O.ec,ot(),se()}else if(Y==="run"){(function(Q){var U=(S(),K)[Q+52>>>2>>>0];Q=(S(),K)[Q+56>>>2>>>0],Xo(U,U-Q),Pe(U)})(O.Ob),gs(O.Ob,0,0,1,0,0),za(),Rt(O.Ob),M||=!0;try{KA(O.bc,O.Tb)}catch(Q){if(Q!="unwind")throw Q}}else O.target!=="setimmediate"&&(Y==="checkMailbox"?M&&Fr():Y&&(E(`worker: received unknown command ${Y}`),E(O)))}catch(Q){throw Gi(),Q}};var k=I,M=!1;self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=I}var R,N,V,F,K,L,_,W,we,re=!1;function De(){var I=wA.buffer;e.HEAP8=R=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(){re=!0,n?h():ZA.Ta()}function fe(I){throw E(I="Aborted("+I+")"),C=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),p?.(I),I}function ut(){return{a:{R:Ml,f:Bi,w:hl,e:Ua,k:qa,g:pl,S:wl,b:Bl,G:Pl,ta:Fo,j:zo,L:ja,Ja:Va,pa:ur,ra:Ka,Ka:Wa,Ha:Za,Aa:$a,Ga:Ja,Y:Xa,qa:es,na:ts,Ia:As,oa:rs,Pa:Ho,Da:Uo,la:ns,ua:zr,ia:BA,T:qo,Ca:Rt,Ma:Il,xa:Dl,ya:Qt,za:Wt,va:bi,wa:Lo,ja:jo,Ra:bl,Oa:El,V:Tl,U:kl,Na:PA,F:xl,La:Gl,ma:Sl,u:Cl,H:Yl,Q:Nr,ka:ki,aa:vl,Sa:Ol,Ea:Ko,Fa:Wo,sa:Le,I:wn,X:Zo,Ba:IA,W:cs,_:Yi,M:Bs,$:DA,N:lA,v:Kl,c:zl,m:Ql,n:Rl,q:cc,ba:eg,x:Vl,o:ac,O:tg,D:yn,J:Xl,ca:Jl,da:$l,A:ql,P:Zl,ea:Wl,z:ws,E:Ag,d:Fl,r:ic,i:nc,Z:Ur,l:Hl,p:sc,s:Nl,t:oc,y:Ll,fa:uc,B:pt,K:jl,C:rg,ga:Ul,ha:Pn,h:xi,a:wA,Qa:kt}}}async function ot(){function I(Y,Q){return ZA=Y.exports,ZA=function(){var U=ZA,X=Ie=>()=>Ie()>>>0,ue=Ie=>Se=>Ie(Se)>>>0;return(U=Object.assign({},U)).sb=X(U.sb),U.ub=ue(U.ub),U.Ib=ue(U.Ib),U.Jb=X(U.Jb),U.Nb=ue(U.Nb),U}(),pi.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,Hr=Y.sb,us=e._free=Y.tb,ls=e._malloc=Y.ub,gs=Y.xb,Gi=Y.yb,$o=Y.zb,ds=Y.Ab,fs=Y.Bb,Si=Y.Cb,Jo=Y.Db,ke=Y.Eb,Bn=Y.Fb,Xo=Y.Gb,Pe=Y.Hb,ms=Y.Ib,Ce=Y.Jb,ec=Y.Kb,hs=Y.Lb,tc=Y.Mb,Ac=Y.Nb,ps=Y.wb,u=Q,ZA}var T,O=ut();return e.instantiateWasm?new Promise(Y=>{e.instantiateWasm(O,(Q,U)=>{Y(I(Q,U))})}):n?I(new WebAssembly.Instance(u,ut()),u):(we??=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=we;if(!l&&!G(Q))try{var U=fetch(Q,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(U,Y)}catch(X){E(`wasm streaming compile failed: ${X}`),E("falling back to ArrayBuffer instantiation")}return async function(X,ue){try{var Ie=await async function(Se){if(!l)try{var wt=await a(Se);return new Uint8Array(wt)}catch{}if(Se==we&&l)Se=new Uint8Array(l);else{if(!i)throw"both async and sync fetching of the wasm failed";Se=i(Se)}return Se}(X);return await WebAssembly.instantiate(Ie,ue)}catch(Se){E(`failed to asynchronously prepare wasm: ${Se}`),fe(Se)}}(Q,Y)}(O),I(T.instance,T.module))}class et{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var Mt=I=>{I.terminate(),I.onmessage=()=>{}},qe=[],Ne=0,ct=null,Be=I=>{cA.length==0&&(Na(),VA(cA[0]));var T=cA.pop();if(!T)return 6;Rr.push(T),xt[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},oe=0,de=(I,T,...O)=>{var Y,Q=16*O.length,U=Ce(),X=ms(Q),ue=X>>>3;for(Y of O)typeof Y=="bigint"?((S(),W)[ue++>>>0]=1n,(S(),W)[ue++>>>0]=Y):((S(),W)[ue++>>>0]=0n,(S(),_)[ue++>>>0]=Y);return I=$o(I,0,Q,X,T),Pe(U),I};function kt(I){if(n)return de(0,1,I);if(g=I,!(0<oe)){for(var T of Rr)Mt(T);for(T of cA)Mt(T);cA=[],Rr=[],xt={},C=!0}s(0,new et(I))}function ve(I){if(n)return de(1,0,I);Le(I)}var Le=I=>{if(g=I,n)throw ve(I),"unwind";kt(I)},cA=[],Rr=[],pi=[],xt={},Qr=I=>{var T=I.Ob;delete xt[T],cA.push(I),Rr.splice(Rr.indexOf(I),1),I.Ob=0,ds(T)};function za(){pi.forEach(I=>I())}var VA=I=>new Promise(T=>{I.onmessage=Q=>{var U=Q.data;if(Q=U.Pb,U.Sb&&U.Sb!=Hr()){var X=xt[U.Sb];X?X.postMessage(U,U.Xb):E(`Internal error! Worker sent a message "${Q}" to target pthread ${U.Sb}, but that thread no longer exists!`)}else Q==="checkMailbox"?Fr():Q==="spawnThread"?Be(U):Q==="cleanupThread"?Di(()=>{Qr(xt[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&&E(`worker sent an unknown command ${Q}`)},I.onerror=Q=>{throw E(`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 Na(){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"});cA.push(I)}var wA,Ha=[],Te=I=>{var T=Ha[I];return T||(Ha[I]=T=ps.get(I)),T},KA=(I,T)=>{oe=0,I=Te(I)(T),0<oe?g=I:fs(I)},wi=[],or=0;function Bi(I){var T=new Pi(I>>>=0);return(S(),R)[T.Qb+12>>>0]==0&&(cr(T,!0),or--),Ro(T,!1),wi.push(T),Ac(I)}var nt=0,hl=()=>{ke(0,0);var I=wi.pop();ec(I.Ub),nt=0};function cr(I,T){T=T?1:0,(S(),R)[I.Qb+12>>>0]=T}function Ro(I,T){T=T?1:0,(S(),R)[I.Qb+13>>>0]=T}class Pi{constructor(T){this.Ub=T,this.Qb=T-24}}var yi=I=>{var T=nt;if(!T)return Bn(0),0;var O=new Pi(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(tc(Q,Y,O.Qb+16))return Bn(Q),T}return Bn(Y),T};function Ua(){return yi([])}function qa(I){return yi([I>>>0])}function pl(I,T,O,Y){return yi([I>>>0,T>>>0,O>>>0,Y>>>0])}var wl=()=>{var I=wi.pop();I||fe("no exception to throw");var T=I.Ub;throw(S(),R)[I.Qb+13>>>0]==0&&(wi.push(I),Ro(I,!0),cr(I,!1),or++),hs(T),nt=T};function Bl(I,T,O){var Y=new Pi(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,hs(I),or++,nt=I}var Pl=()=>or;function Qo(I,T,O,Y){return n?de(2,1,I,T,O,Y):Fo(I,T,O,Y)}function Fo(I,T,O,Y){if(I>>>=0,T>>>=0,O>>>=0,Y>>>=0,!globalThis.SharedArrayBuffer)return 6;var Q=[];return n&&Q.length===0?Qo(I,T,O,Y):(I={ac:O,Ob:I,Tb:Y,Xb:Q},n?(I.Pb="spawnThread",postMessage(I,Q),0):Be(I))}function zo(I){throw nt||=I>>>0,nt}var La=globalThis.TextDecoder&&new TextDecoder,No=(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&&La)return La.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},Ii=(I,T,O)=>(I>>>=0)?No((S(),N),I,T,O):"";function ja(I,T,O){return n?de(3,1,I,T,O):0}function Va(I,T){if(n)return de(4,1,I,T)}function ur(I,T){if(n)return de(5,1,I,T)}function Ka(I,T,O){if(n)return de(6,1,I,T,O)}function Wa(I,T,O){return n?de(7,1,I,T,O):0}function Za(I,T){if(n)return de(8,1,I,T)}function $a(I,T,O){if(n)return de(9,1,I,T,O)}function Ja(I,T,O,Y){if(n)return de(10,1,I,T,O,Y)}function Xa(I,T,O,Y){if(n)return de(11,1,I,T,O,Y)}function es(I,T,O,Y){if(n)return de(12,1,I,T,O,Y)}function ts(I){if(n)return de(13,1,I)}function As(I,T){if(n)return de(14,1,I,T)}function rs(I,T,O){if(n)return de(15,1,I,T,O)}var Ho=()=>fe("");function Uo(I){gs(I>>>0,!r,1,!A,131072,!1),za()}var Di=I=>{if(!C)try{if(I(),!(0<oe))try{n?Hr()&&fs(g):Le(g)}catch(T){T instanceof et||T=="unwind"||s(0,T)}}catch(T){T instanceof et||T=="unwind"||s(0,T)}},yl=!Atomics.waitAsync||globalThis.navigator?.userAgent&&91>Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2]);function Rt(I){I>>>=0,yl||(Atomics.waitAsync((S(),F),I>>>2,I).value.then(Fr),I+=128,Atomics.store((S(),F),I>>>2,1))}var Fr=()=>Di(()=>{var I=Hr();I&&(Rt(I),Jo())});function ns(I,T){(I>>>=0)==T>>>0?setTimeout(Fr):n?postMessage({Sb:I,Pb:"checkMailbox"}):(I=xt[I])&&I.postMessage({Pb:"checkMailbox"})}var is=[];function zr(I,T,O,Y,Q){for(T>>>=0,Q>>>=0,is.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],is.push(U)}return(T?rc[T]:_l[I])(...is)}var BA=()=>{oe=0};function qo(I){I>>>=0,n?postMessage({Pb:"cleanupThread",cc:I}):Qr(xt[I])}function Il(I){}function Dl(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 as=I=>I%4==0&&(I%100!=0||I%400==0),WA=[0,31,60,91,121,152,182,213,244,274,305,335],Ci=[0,31,59,90,120,151,181,212,243,273,304,334];function Qt(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=(as(I.getFullYear())?WA:Ci)[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=(as(T.getFullYear())?WA:Ci)[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 bi(I,T,O,Y,Q,U,X){return n?de(16,1,I,T,O,Y,Q,U,X):-52}function Lo(I,T,O,Y,Q,U){if(n)return de(17,1,I,T,O,Y,Q,U)}var hn={},Cl=()=>performance.timeOrigin+performance.now();function jo(I,T){if(n)return de(18,1,I,T);if(hn[I]&&(clearTimeout(hn[I].id),delete hn[I]),!T)return 0;var O=setTimeout(()=>{delete hn[I],Di(()=>Si(I,performance.timeOrigin+performance.now()))},T);return hn[I]={id:O,jc:T},0}var lr=(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 bl(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=ue=>{var Ie=Math.abs(ue);return`UTC${0<=ue?"-":"+"}${String(Math.floor(Ie/60)).padStart(2,"0")}${String(Ie%60).padStart(2,"0")}`})(U),T=T(Q),Q<U?(lr(I,O,17),lr(T,Y,17)):(lr(I,Y,17),lr(T,O,17))}var PA=()=>Date.now(),yA=1;function El(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 Ei=[];function Tl(I,T,O){I>>>=0,T>>>=0,O>>>=0,Ei.length=0;for(var Y;Y=(S(),N)[T++>>>0];){var Q=Y!=105;O+=(Q&=Y!=112)&&O%8?4:0,Ei.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 rc[I](...Ei)}var kl=()=>{};function xl(I,T){return E(Ii(I>>>0,T>>>0))}var Gl=()=>{throw oe+=1,"unwind"};function Sl(){return 4294901760}var Yl=()=>navigator.hardwareConcurrency,gr={},ss=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},Ti=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},Pt=I=>{for(var T of I)(I=Ti(T))&&(gr[I]=T)};function vl(){var I=Error().stack.toString().split(`
100
+ `);return I[0]=="Error"&&I.shift(),Pt(I),gr.Vb=Ti(I[3]),gr.$b=I,gr.Vb}function Nr(I){if(!(I=gr[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]}us(Nr.Wb??0),T=ss(I)+1;var O=ls(T);return O&&lr(I,O,T),Nr.Wb=O,Nr.Wb}function ki(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 Ol(I,T,O){if(I>>>=0,T>>>=0,gr.Vb==I)var Y=gr.$b;else(Y=Error().stack.toString().split(`
101
+ `))[0]=="Error"&&Y.shift(),Pt(Y);for(var Q=3;Y[Q]&&Ti(Y[Q])!=I;)++Q;for(I=0;I<O&&Y[I+Q];++I)(S(),F)[T+4*I>>>2>>>0]=Ti(Y[I+Q]);return I}var pn,os={},Vo=()=>{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 os)os[I]===void 0?delete T[I]:T[I]=os[I];var O=[];for(I in T)O.push(`${I}=${T[I]}`);pn=O}return pn};function Ko(I,T){if(n)return de(19,1,I,T);I>>>=0,T>>>=0;var O,Y=0,Q=0;for(O of Vo()){var U=T+Y;(S(),K)[I+Q>>>2>>>0]=U,Y+=lr(O,U,1/0)+1,Q+=4}return 0}function Wo(I,T){if(n)return de(20,1,I,T);I>>>=0,T>>>=0;var O=Vo();for(var Y of((S(),K)[I>>>2>>>0]=O.length,I=0,O))I+=ss(Y)+1;return(S(),K)[T>>>2>>>0]=I,0}function wn(I){return n?de(21,1,I):52}function Zo(I,T,O,Y){return n?de(22,1,I,T,O,Y):52}function IA(I,T,O,Y){return n?de(23,1,I,T,O,Y):70}var uA=[null,[],[]];function cs(I,T,O,Y){if(n)return de(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],ue=(S(),K)[T+4>>>2>>>0];T+=8;for(var Ie=0;Ie<ue;Ie++){var Se=I,wt=(S(),N)[X+Ie>>>0],Zt=uA[Se];wt===0||wt===10?((Se===1?D:E)(No(Zt)),Zt.length=0):Zt.push(wt)}Q+=ue}return(S(),K)[Y>>>2>>>0]=Q,0}function xi(I){return I>>>0}n||function(){for(var I=e.numThreads-1;I--;)Na();qe.push(async()=>{var T=async function(){if(!n)return Promise.all(cA.map(VA))}();Ne++,await T,--Ne==0&&ct&&(T=ct,ct=null,T())})}(),n||(wA=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),De()),e.wasmBinary&&(l=e.wasmBinary),e.stackSave=()=>Ce(),e.stackRestore=I=>Pe(I),e.stackAlloc=I=>ms(I),e.setValue=function(I,T,O="i8"){switch(O.endsWith("*")&&(O="*"),O){case"i1":case"i8":(S(),R)[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:fe(`invalid type for setValue: ${O}`)}},e.getValue=function(I,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return(S(),R)[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:fe(`invalid type for getValue: ${T}`)}},e.UTF8ToString=Ii,e.stringToUTF8=lr,e.lengthBytesUTF8=ss;var Hr,us,ls,gs,Gi,$o,ds,fs,Si,Jo,ke,Bn,Xo,Pe,ms,Ce,ec,hs,tc,Ac,ps,ZA,_l=[kt,ve,Qo,ja,Va,ur,Ka,Wa,Za,$a,Ja,Xa,es,ts,As,rs,bi,Lo,jo,Ko,Wo,wn,Zo,IA,cs],rc={930988:(I,T,O,Y,Q)=>{if(e===void 0||!e.Rb)return 1;if((I=Ii(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 Ml(){return typeof wasmOffsetConverter<"u"}function Rl(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 Ql(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 Fl(I){var T=Ce();try{Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function zl(I,T){var O=Ce();try{return Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function nc(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 ic(I,T){var O=Ce();try{Te(I)(T)}catch(Y){if(Pe(O),Y!==Y+0)throw Y;ke(1,0)}}function ac(I,T,O,Y,Q,U,X){var ue=Ce();try{return Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Nl(I,T,O,Y,Q,U){var X=Ce();try{Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function Hl(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 sc(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 oc(I,T,O,Y,Q,U,X){var ue=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Pn(I,T,O,Y,Q,U,X){var ue=Ce();try{Te(I)(T,O,Y,Q,U,X)}catch(Ie){if(Pe(ue),Ie!==Ie+0)throw Ie;ke(1,0)}}function Ul(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function cc(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 ql(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 Ll(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function jl(I,T,O,Y,Q,U,X,ue,Ie,Se,wt,Zt){var CA=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function Vl(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function ws(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 uc(I,T,O,Y,Q,U,X,ue,Ie){var Se=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie)}catch(wt){if(Pe(Se),wt!==wt+0)throw wt;ke(1,0)}}function Kl(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;ke(1,0)}}function Wl(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 Zl(I){var T=Ce();try{return Te(I)()}catch(O){if(Pe(T),O!==O+0)throw O;return ke(1,0),0n}}function $l(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 Jl(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 Xl(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function eg(I,T,O,Y,Q,U){var X=Ce();try{return Te(I)(T,O,Y,Q,U)}catch(ue){if(Pe(X),ue!==ue+0)throw ue;ke(1,0)}}function tg(I,T,O,Y,Q,U,X,ue){var Ie=Ce();try{return Te(I)(T,O,Y,Q,U,X,ue)}catch(Se){if(Pe(Ie),Se!==Se+0)throw Se;ke(1,0)}}function Ag(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 lA(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 Bs(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,ue,Ie,Se,wt,Zt){var CA=Ce();try{return Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Zt)}catch(bA){if(Pe(CA),bA!==bA+0)throw bA;ke(1,0)}}function pt(I,T,O,Y,Q,U,X,ue,Ie,Se,wt){var Zt=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt)}catch(CA){if(Pe(Zt),CA!==CA+0)throw CA;ke(1,0)}}function rg(I,T,O,Y,Q,U,X,ue,Ie,Se,wt,Zt,CA,bA,ng,ig){var ag=Ce();try{Te(I)(T,O,Y,Q,U,X,ue,Ie,Se,wt,Zt,CA,bA,ng,ig)}catch(Ps){if(Pe(ag),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 Yi(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 Ur(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 se(){if(0<Ne)ct=se;else if(n)f?.(e),ae();else{for(var I=qe;0<I.length;)I.shift()(e);0<Ne?ct=se:(e.calledRun=!0,C||(ae(),f?.(e)))}}return n||(ZA=await ot(),se()),e.PTR_SIZE=4,re?e:new Promise((I,T)=>{f=I,p=T})}var Qy,ey,Jk=ze(()=>{"use strict";Qy=XP,ey=globalThis.self?.name?.startsWith("em-pthread"),ey&&XP()}),Df,Of,ty,rA,Fy,Vu,Ay,ry,Cf,ny,bf,zy,Ef,Ny,Nf=ze(()=>{"use strict";zf(),Df=typeof location>"u"?void 0:location.origin,Of=UA.url>"file:"&&UA.url<"file;",ty=()=>{if(Of){let t=URL;return new URL(new t("ort.wasm.bundle.min.mjs",UA.url).href,Df).href}return UA.url},rA=ty(),Fy=()=>{if(rA&&!rA.startsWith("blob:"))return rA.substring(0,rA.lastIndexOf("/")+1)},Vu=(t,e)=>{try{let A=e??rA;return(A?new URL(t,A):new URL(t)).origin===Df}catch{return!1}},Ay=(t,e)=>{let A=e??rA;try{return(A?new URL(t,A):new URL(t)).href}catch{return}},ry=(t,e)=>`${e??"./"}${t}`,Cf=async t=>{let e=await(await fetch(t,{credentials:"same-origin"})).blob();return URL.createObjectURL(e)},ny=async t=>(await import(t)).default,bf=($k(),vf(_y)).default,zy=async()=>{if(!rA)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Vu(rA))return[void 0,bf()];let t=await Cf(rA);return[t,bf(t)]},Ef=(Jk(),vf(Ry)).default,Ny=async(t,e,A,r)=>{let n=Ef&&!(t||e);if(n)if(rA)n=Vu(rA)||r&&!A;else if(r&&!A)n=!0;else throw new Error("cannot determine the script source URL.");if(n)return[void 0,Ef];{let a="ort-wasm-simd-threaded.mjs",i=t??Ay(a,e),s=A&&i&&!Vu(i,e),o=s?await Cf(i):i??ry(a,e);return[s?o:void 0,await ny(o)]}}}),Tf,Ku,Po,kf,iy,ay,sy,Hf,rt,Oa=ze(()=>{"use strict";Nf(),Ku=!1,Po=!1,kf=!1,iy=()=>{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}},ay=()=>{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}},sy=()=>{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}},Hf=async t=>{if(Ku)return Promise.resolve();if(Po)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(kf)throw new Error("previous call to 'initializeWebAssembly()' failed.");Po=!0;let e=t.initTimeout,A=t.numThreads;if(t.simd!==!1){if(t.simd==="relaxed"){if(!sy())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!ay())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let r=iy();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,l=t.wasmBinary,[u,g]=await Ny(s,a,A>1,!!l||!!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(l)w.wasmBinary=l,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=Fy();D&&(w.locateFile=E=>D+E)}g(w).then(D=>{Po=!1,Ku=!0,Tf=D,h(),u&&URL.revokeObjectURL(u)},D=>{Po=!1,kf=!0,y(D)})})),await Promise.race(p),f)throw new Error(`WebAssembly backend initializing failed due to timeout: ${e}ms`)},rt=()=>{if(Ku&&Tf)return Tf;throw new Error("WebAssembly is not initialized yet.")}}),HA,Xu,We,Uf=ze(()=>{"use strict";Oa(),HA=(t,e)=>{let A=rt(),r=A.lengthBytesUTF8(t)+1,n=A._malloc(r);return A.stringToUTF8(t,n,r),e.push(n),n},Xu=(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")Xu(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=rt(),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)}}}),Hy,Xk=ze(()=>{"use strict";Oa(),Uf(),Hy=t=>{let e=rt(),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&&Xu(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}}}),oy,cy,uy,Wn,ly,Uy,ex=ze(()=>{"use strict";Oa(),Uf(),oy=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}`)}},cy=t=>{switch(t){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${t}`)}},uy=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)},Wn=(t,e,A,r)=>{let n=HA(e,r),a=HA(A,r);rt()._OrtAddSessionConfigEntry(t,n,a)!==0&&We(`Can't set a session config entry: ${e} - ${A}.`)},ly=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",Wn(t,"session.disable_quant_qdq","1",A),Wn(t,"session.disable_qdq_constant_folding","1",A),typeof n!="string"){let u=n?.deviceType;u&&Wn(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}`);Wn(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,l=0;if(o>0){c=rt()._malloc(o*rt().PTR_SIZE),A.push(c),l=rt()._malloc(o*rt().PTR_SIZE),A.push(l);for(let u=0;u<o;u++)rt().setValue(c+u*rt().PTR_SIZE,i[u][0],"*"),rt().setValue(l+u*rt().PTR_SIZE,i[u][1],"*")}await rt()._OrtAppendExecutionProvider(t,s,c,l,o)!==0&&We(`Can't append execution provider: ${a}.`)}},Uy=async t=>{let e=rt(),A=0,r=[],n=t||{};uy(n);try{let a=oy(n.graphOptimizationLevel??"all"),i=cy(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 l=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,l),A===0&&We("Can't create session options."),n.executionProviders&&await ly(A,n,r),n.enableGraphCapture!==void 0){if(typeof n.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${n.enableGraphCapture}`);Wn(A,"enableGraphCapture",n.enableGraphCapture.toString(),r)}if(n.freeDimensionOverrides)for(let[u,g]of Object.entries(n.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof g!="number"||!Number.isInteger(g)||g<0)throw new Error(`free dimension override value must be a non-negative integer: ${g}`);let f=HA(u,r);e._OrtAddFreeDimensionOverride(A,f,g)!==0&&We(`Can't set a free dimension override: ${u} - ${g}.`)}return n.extra!==void 0&&Xu(n.extra,"",new WeakSet,(u,g)=>{Wn(A,u,g,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}}}),Ya,$u,va,qy,Ly,qf,Lf,jy,Vy=ze(()=>{"use strict";Ya=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}`)}},$u=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}`)}},va=(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},qy=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}`)}},Ly=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}`)}},qf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",Lf=t=>t==="float32"||t==="float16"||t==="int32"||t==="int64"||t==="uint32"||t==="uint64"||t==="int8"||t==="uint8"||t==="bool"||t==="uint4"||t==="int4",jy=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}`)}}}),jf,Ky=ze(()=>{"use strict";zf(),jf=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)}}),gy,Vf,Kf,Zn,dy,xf,el,Wf,Zf,Gf,$f,Jf,Xf,Wy=ze(()=>{"use strict";ni(),Xk(),ex(),Vy(),Oa(),Uf(),Ky(),gy=(t,e)=>{rt()._OrtInit(t,e)!==0&&We("Can't initialize onnxruntime.")},Vf=async t=>{gy(t.wasm.numThreads,Ly(t.logLevel))},Kf=async(t,e)=>{rt().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")},Zn=new Map,dy=t=>{let e=rt(),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)}},xf=(t,e)=>{let A=rt(),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],l=[];for(let u=0;u<c;u++){let g=Number(A.getValue(n+8+u*a,"*"));l.push(g!==0?A.UTF8ToString(g):Number(A.getValue(n+8+(u+c)*a,"*")))}return[s,o,l]}finally{A.stackRestore(r),n!==0&&A._OrtFree(n)}},el=t=>{let e=rt(),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]},Wf=async(t,e)=>{let A,r,n=rt();Array.isArray(t)?[A,r]=t:t.buffer===n.HEAPU8.buffer?[A,r]=[t.byteOffset,t.byteLength]:[A,r]=el(t);let a=0,i=0,s=0,o=[],c=[],l=[];try{if([i,o]=await Uy(e),e?.externalData&&n.mountExternalData){let E=[];for(let C of e.externalData){let G=typeof C=="string"?C:C.path;E.push(jf(typeof C=="string"?C:C.data).then(S=>{n.mountExternalData(G,S)}))}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 C=E,G=C?.context,S=C?.gpuDevice,k=C?.deviceType,M=C?.powerPreference;G?n.currentContext=G:S?n.currentContext=await n.webnnCreateMLContext(S):n.currentContext=await n.webnnCreateMLContext({deviceType:k,powerPreference:M})}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,g]=dy(a),f=!!e?.enableGraphCapture,p=[],h=[],y=[],w=[],D=[];for(let E=0;E<u;E++){let[C,G,S]=xf(a,E);C===0&&We("Can't get an input name."),c.push(C);let k=n.UTF8ToString(C);p.push(k),y.push(G===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:$u(G),shape:S})}for(let E=0;E<g;E++){let[C,G,S]=xf(a,E+u);C===0&&We("Can't get an output name."),l.push(C);let k=n.UTF8ToString(C);h.push(k),w.push(G===0?{name:k,isTensor:!1}:{name:k,isTensor:!0,type:$u(G),shape:S})}return Zn.set(a,[a,c,l,null,f,!1]),[a,p,h,y,w]}catch(u){throw c.forEach(g=>n._OrtFree(g)),l.forEach(g=>n._OrtFree(g)),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?.()}},Zf=t=>{let e=rt(),A=Zn.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."),Zn.delete(t)},Gf=async(t,e,A,r,n,a,i=!1)=>{if(!t){e.push(0);return}let s=rt(),o=s.PTR_SIZE,c=t[0],l=t[1],u=t[3],g=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=va(Ya(c),l);{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=va(Ya(c),l);let D=s.webnnRegisterMLTensor;if(!D)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');f=D(r,w,Ya(c),l)}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,E=s.webnnIsGraphOutput;if(c!=="string"&&D&&E){let C=s.UTF8ToString(n);if(D(r,C)||E(r,C)){let G=Ya(c);p=va(G,l),g="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 M=await S(r,G,l);k(M,new Uint8Array(w.buffer,w.byteOffset,w.byteLength)),f=M}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*l.length);try{l.forEach((D,E)=>s.setValue(y+E*o,D,o===4?"i32":"i64"));let w=s._OrtCreateTensor(Ya(c),f,p,y,l.length,jy(g));w===0&&We(`Can't create tensor for input/output. session=${r}, index=${a}.`),e.push(w)}finally{s.stackRestore(h)}},$f=async(t,e,A,r,n,a)=>{let i=rt(),s=i.PTR_SIZE,o=Zn.get(t);if(!o)throw new Error(`cannot run inference. invalid session id: ${t}`);let c=o[0],l=o[1],u=o[2],g=o[3],f=o[4],p=o[5],h=e.length,y=r.length,w=0,D=[],E=[],C=[],G=[],S=[],k=i.stackSave(),M=i.stackAlloc(h*s),R=i.stackAlloc(h*s),N=i.stackAlloc(y*s),V=i.stackAlloc(y*s);try{[w,D]=Hy(a),Ai("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)await Gf(A[_],E,G,t,l[e[_]],e[_],f);for(let _=0;_<y;_++)await Gf(n[_],C,G,t,u[r[_]],h+r[_],f);ri("wasm prepareInputOutputTensor");for(let _=0;_<h;_++)i.setValue(M+_*s,E[_],"*"),i.setValue(R+_*s,l[e[_]],"*");for(let _=0;_<y;_++)i.setValue(N+_*s,C[_],"*"),i.setValue(V+_*s,u[r[_]],"*");i.jsepOnRunStart?.(c),i.webnnOnRunStart?.(c);let F;F=await i._OrtRun(c,R,M,h,V,y,N,w),F!==0&&We("failed to call OrtRun().");let K=[],L=[];Ai("wasm ProcessOutputTensor");for(let _=0;_<y;_++){let W=Number(i.getValue(N+_*s,"*"));if(W===C[_]||S.includes(C[_])){K.push(n[_]),W!==C[_]&&i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.");continue}let we=i.stackSave(),re=i.stackAlloc(4*s),De=!1,ae,fe=0;try{i._OrtGetTensorData(W,re,re+s,re+2*s,re+3*s)!==0&&We(`Can't access output tensor data on index ${_}.`);let ut=s===4?"i32":"i64",ot=Number(i.getValue(re,ut));fe=i.getValue(re+s,"*");let et=i.getValue(re+s*2,"*"),Mt=Number(i.getValue(re+s*3,ut)),qe=[];for(let Be=0;Be<Mt;Be++)qe.push(Number(i.getValue(et+Be*s,ut)));i._OrtFree(et)!==0&&We("Can't free memory for tensor dims.");let Ne=qe.reduce((Be,oe)=>Be*oe,1);ae=$u(ot);let ct=g?.outputPreferredLocations[r[_]];if(ae==="string"){if(ct==="gpu-buffer"||ct==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Be=[];for(let oe=0;oe<Ne;oe++){let de=i.getValue(fe+oe*s,"*"),kt=i.getValue(fe+(oe+1)*s,"*"),ve=oe===Ne-1?void 0:kt-de;Be.push(i.UTF8ToString(de,ve))}K.push([ae,qe,Be,"cpu"])}else if(ct==="gpu-buffer"&&Ne>0){let Be=i.jsepGetBuffer;if(!Be)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let oe=Be(fe),de=va(ot,Ne);if(de===void 0||!qf(ae))throw new Error(`Unsupported data type: ${ae}`);De=!0,K.push([ae,qe,{gpuBuffer:oe,download:i.jsepCreateDownloader(oe,de,ae),dispose:()=>{i._OrtReleaseTensor(W)!==0&&We("Can't release tensor.")}},"gpu-buffer"])}else if(ct==="ml-tensor"&&Ne>0){let Be=i.webnnEnsureTensor,oe=i.webnnIsGraphInputOutputTypeSupported;if(!Be||!oe)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(va(ot,Ne)===void 0||!Lf(ae))throw new Error(`Unsupported data type: ${ae}`);if(!oe(t,ae,!1))throw new Error(`preferredLocation "ml-tensor" for ${ae} output is not supported by current WebNN Context.`);let de=await Be(t,fe,ot,qe,!1);De=!0,K.push([ae,qe,{mlTensor:de,download:i.webnnCreateMLTensorDownloader(fe,ae),dispose:()=>{i.webnnReleaseTensorId(fe),i._OrtReleaseTensor(W)}},"ml-tensor"])}else if(ct==="ml-tensor-cpu-output"&&Ne>0){let Be=i.webnnCreateMLTensorDownloader(fe,ae)(),oe=K.length;De=!0,L.push((async()=>{let de=[oe,await Be];return i.webnnReleaseTensorId(fe),i._OrtReleaseTensor(W),de})()),K.push([ae,qe,[],"cpu"])}else{let Be=qy(ae),oe=new Be(Ne);new Uint8Array(oe.buffer,oe.byteOffset,oe.byteLength).set(i.HEAPU8.subarray(fe,fe+oe.byteLength)),K.push([ae,qe,oe,"cpu"])}}finally{i.stackRestore(we),ae==="string"&&fe&&i._free(fe),De||i._OrtReleaseTensor(W)}}g&&!f&&(i._OrtClearBoundOutputs(g.handle)!==0&&We("Can't clear bound outputs."),Zn.set(t,[c,l,u,g,f,!1]));for(let[_,W]of await Promise.all(L))K[_][2]=W;return ri("wasm ProcessOutputTensor"),K}finally{i.webnnOnRunEnd?.(c),i.stackRestore(k),E.forEach(F=>i._OrtReleaseTensor(F)),C.forEach(F=>i._OrtReleaseTensor(F)),G.forEach(F=>i._free(F)),w!==0&&i._OrtReleaseRunOptions(w),D.forEach(F=>i._free(F))}},Jf=t=>{let e=rt(),A=Zn.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)},Xf=t=>{let e=[];for(let A of t){let r=A[2];!Array.isArray(r)&&"buffer"in r&&e.push(r.buffer)}return e}}),cn,hA,Sa,yo,Io,Wu,Sf,Zu,$n,Jn,fy,Zy,$y,Jy,Xy,e0,t0,A0,r0=ze(()=>{"use strict";ni(),Wy(),Oa(),Nf(),cn=()=>!!at.wasm.proxy&&typeof document<"u",Sa=!1,yo=!1,Io=!1,Zu=new Map,$n=(t,e)=>{let A=Zu.get(t);A?A.push(e):Zu.set(t,[e])},Jn=()=>{if(Sa||!yo||Io||!hA)throw new Error("worker not ready")},fy=t=>{switch(t.data.type){case"init-wasm":Sa=!1,t.data.err?(Io=!0,Sf[1](t.data.err)):(yo=!0,Sf[0]()),Wu&&(URL.revokeObjectURL(Wu),Wu=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let e=Zu.get(t.data.type);t.data.err?e.shift()[1](t.data.err):e.shift()[0](t.data.out);break}default:}},Zy=async()=>{if(!yo){if(Sa)throw new Error("multiple calls to 'initWasm()' detected.");if(Io)throw new Error("previous call to 'initWasm()' failed.");if(Sa=!0,cn())return new Promise((t,e)=>{hA?.terminate(),zy().then(([A,r])=>{try{hA=r,hA.onerror=a=>e(a),hA.onmessage=fy,Sf=[t,e];let n={type:"init-wasm",in:at};!n.in.wasm.wasmPaths&&(A||Of)&&(n.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.wasm",UA.url).href}),hA.postMessage(n),Wu=A}catch(n){e(n)}},e)});try{await Hf(at.wasm),await Vf(at),yo=!0}catch(t){throw Io=!0,t}finally{Sa=!1}}},$y=async t=>{if(cn())return Jn(),new Promise((e,A)=>{$n("init-ep",[e,A]);let r={type:"init-ep",in:{epName:t,env:at}};hA.postMessage(r)});await Kf(at,t)},Jy=async t=>cn()?(Jn(),new Promise((e,A)=>{$n("copy-from",[e,A]);let r={type:"copy-from",in:{buffer:t}};hA.postMessage(r,[t.buffer])})):el(t),Xy=async(t,e)=>{if(cn()){if(e?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Jn(),new Promise((A,r)=>{$n("create",[A,r]);let n={type:"create",in:{model:t,options:{...e}}},a=[];t instanceof Uint8Array&&a.push(t.buffer),hA.postMessage(n,a)})}else return Wf(t,e)},e0=async t=>{if(cn())return Jn(),new Promise((e,A)=>{$n("release",[e,A]);let r={type:"release",in:t};hA.postMessage(r)});Zf(t)},t0=async(t,e,A,r,n,a)=>{if(cn()){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 Jn(),new Promise((i,s)=>{$n("run",[i,s]);let o=A,c={type:"run",in:{sessionId:t,inputIndices:e,inputs:o,outputIndices:r,options:a}};hA.postMessage(c,Xf(o))})}else return $f(t,e,A,r,n,a)},A0=async t=>{if(cn())return Jn(),new Promise((e,A)=>{$n("end-profiling",[e,A]);let r={type:"end-profiling",in:t};hA.postMessage(r)});Jf(t)}}),Yf,my,n0,tx=ze(()=>{"use strict";ni(),r0(),Vy(),zf(),Ky(),Yf=(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()}`)}},my=t=>{switch(t[3]){case"cpu":return new qA(t[0],t[2],t[1]);case"gpu-buffer":{let e=t[0];if(!qf(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(!Lf(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]}`)}},n0=class{async fetchModelAndCopyToWasmMemory(t){return Jy(await jf(t))}async loadModel(t,e){ei();let A;typeof t=="string"?A=await this.fetchModelAndCopyToWasmMemory(t):A=t,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await Xy(A,e),ti()}async dispose(){return e0(this.sessionId)}async run(t,e,A){ei();let r=[],n=[];Object.entries(t).forEach(u=>{let g=u[0],f=u[1],p=this.inputNames.indexOf(g);if(p===-1)throw new Error(`invalid input '${g}'`);r.push(f),n.push(p)});let a=[],i=[];Object.entries(e).forEach(u=>{let g=u[0],f=u[1],p=this.outputNames.indexOf(g);if(p===-1)throw new Error(`invalid output '${g}'`);a.push(f),i.push(p)});let s=r.map((u,g)=>Yf(u,()=>`input "${this.inputNames[n[g]]}"`)),o=a.map((u,g)=>u?Yf(u,()=>`output "${this.outputNames[i[g]]}"`):null),c=await t0(this.sessionId,n,s,i,o,A),l={};for(let u=0;u<c.length;u++)l[this.outputNames[i[u]]]=a[u]??my(c[u]);return ti(),l}startProfiling(){}endProfiling(){A0(this.sessionId)}}}),i0={};tl(i0,{OnnxruntimeWebAssemblyBackend:()=>Mf,initializeFlags:()=>_f,wasmBackend:()=>a0});var _f,Mf,a0,Ax=ze(()=>{"use strict";ni(),r0(),tx(),_f=()=>{(typeof at.wasm.initTimeout!="number"||at.wasm.initTimeout<0)&&(at.wasm.initTimeout=0);let t=at.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.`),at.wasm.simd=!1),typeof at.wasm.proxy!="boolean"&&(at.wasm.proxy=!1),typeof at.wasm.trace!="boolean"&&(at.wasm.trace=!1),typeof at.wasm.numThreads!="number"||!Number.isInteger(at.wasm.numThreads)||at.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)at.wasm.numThreads=1;else{let e=typeof navigator>"u"?Mk("node:os").cpus().length:navigator.hardwareConcurrency;at.wasm.numThreads=Math.min(4,Math.ceil((e||1)/2))}},Mf=class{async init(t){_f(),await Zy(),await $y(t)}async createInferenceSessionHandler(t,e){let A=new n0;return await A.loadModel(t,e),A}},a0=new Mf});ni();ni();ni();var rx="1.26.0",nx=Oy;{let t=(Ax(),vf(i0)).wasmBackend;Co("cpu",t,10),Co("wasm",t,10)}Object.defineProperty(at.versions,"web",{value:rx,enumerable:!0});function Al(){return globalThis.performance?.now?globalThis.performance.now():Date.now()}function s0(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 ix(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 tm({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:l="auto"}={}){if(r==="webgpu"&&!t)throw new Error("allenk FDnCNN WebGPU runtime requires an injected onnxruntime-web/webgpu module");let u=t||em,g=s0(i,[1,4,72,72]),f=s0(s,[1,3,g[2],g[3]]);if(u.env?.wasm){let w=!!(globalThis.crossOriginIsolated&&typeof SharedArrayBuffer<"u"),D=Number(globalThis.navigator?.hardwareConcurrency)||1,E=l==="auto"?w?Math.max(1,Math.min(4,Math.ceil(D/2))):1:Math.max(1,Math.round(Number(l)||1));u.env.wasm.numThreads=r==="wasm"?E: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=Al(),h=A||await u.InferenceSession.create(e,{executionProviders:[r],graphOptimizationLevel:o}),y=Al()-p;return{id:`allenk-fdncnn-onnx-${r}`,status:"prototype",executionProvider:r,inputName:n,outputName:a,inputShape:g,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,g),E=Al(),C=await h.run({[n]:D}),G=Al()-E,S=C[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:G,macs:this.estimateMacs(g[3],g[2])}},async denoiseImageData({imageData:w,sigma:D}={}){ix(w,g);let E=fP({imageData:w,sigma:D}),C=await this.execute(E);return{...C,imageData:{width:w.width,height:w.height,data:mP({output:C.output,width:w.width,height:w.height})}}}}}var _e=t=>document.getElementById(t),_x=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.js",wasm:"./onnxruntime/ort-wasm-simd-threaded.wasm"}),GI=Object.freeze({mjs:"./onnxruntime/ort-wasm-simd-threaded.asyncify.mjs",wasm:"./onnxruntime/ort-wasm-simd-threaded.asyncify.wasm"}),ee={file:null,originalUrl:null,processedUrl:null,metadata:null,detection:null,running:!1,controller:null,jobId:0,syncingPlayback:!1},vo=new Map,q={dropzone:_e("dropzone"),fileInput:_e("fileInput"),batchQueue:_e("batchQueue"),comparePlayer:_e("comparePlayer"),afterBadge:_e("afterBadge"),playPauseBtn:_e("playPauseBtn"),scrubber:_e("scrubber"),timeLabel:_e("timeLabel"),originalVideo:_e("originalVideo"),processedVideo:_e("processedVideo"),originalEmpty:_e("originalEmpty"),processedEmpty:_e("processedEmpty"),metadata:_e("metadata"),detection:_e("detection"),progressBar:_e("progressBar"),progressText:_e("progressText"),status:_e("status"),alphaGain:_e("alphaGain"),alphaGainValue:_e("alphaGainValue"),adaptiveAlpha:_e("adaptiveAlpha"),highQualityCleanup:_e("highQualityCleanup"),denoiseBackend:_e("denoiseBackend"),edgeDenoiseStrength:_e("edgeDenoiseStrength"),edgeDenoiseStrengthValue:_e("edgeDenoiseStrengthValue"),residualCleanup:_e("residualCleanup"),residualCleanupValue:_e("residualCleanupValue"),videoBitrateMbps:_e("videoBitrateMbps"),sampleCount:_e("sampleCount"),allowLowConfidence:_e("allowLowConfidence"),autoPresetSummary:_e("autoPresetSummary"),processBtn:_e("processBtn"),detectBtn:_e("detectBtn"),downloadBtn:_e("downloadBtn"),resetBtn:_e("resetBtn"),cancelBtn:_e("cancelBtn"),relocatedReviewPresetBtn:_e("relocatedReviewPresetBtn")};function Ze(t,e="info"){q.status.textContent=t||"",q.status.dataset.tone=e}function Mx(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 Rx(t,e){try{let A=await fetch(t.mjs,{cache:"no-store",signal:e});if(!A.ok)return{ok:!1,reason:`WebGPU runtime module unavailable: ${A.status}`};let r=A.headers.get("content-type")||"";return Mx(r)?{ok:!0}:{ok:!1,reason:`WebGPU runtime module is served as ${r||"unknown MIME"}`}}catch(A){return{ok:!1,reason:A?.message||String(A)}}}async function Qx(t=jn(),e){e?.throwIfAborted();let A=t||jn();if(!vo.has(A.id)){let r=(async()=>{let n=await fetch(A.modelUrl,{signal:e});if(!n.ok)throw new Error(`\u65E0\u6CD5\u52A0\u8F7D AI \u6A21\u578B\uFF1A${n.status}`);let a=new Uint8Array(await n.arrayBuffer());if(e?.throwIfAborted(),navigator.gpu&&window.__gwrDisableWebGpuDenoise!==!0)try{let i=await Rx(GI,e);if(e?.throwIfAborted(),!i.ok)throw console.warn("WebGPU AI runtime skipped:",i.reason),new Error(i.reason);Ze("\u6B63\u5728\u542F\u7528 WebGPU AI \u53BB\u6C34\u5370...");let s=await Promise.resolve().then(()=>(xI(),kI));return e?.throwIfAborted(),await tm({ort:s,modelBytes:a,executionProvider:"webgpu",wasmPaths:GI,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:A.inputShape,outputShape:A.outputShape})}catch(i){e?.throwIfAborted(),console.warn("WebGPU AI runtime unavailable, falling back to WASM:",i)}return e?.throwIfAborted(),tm({modelBytes:a,executionProvider:"wasm",wasmPaths:_x,inputName:"fdncnn_input",outputName:"fdncnn_output",inputShape:A.inputShape,outputShape:A.outputShape})})();vo.set(A.id,r),r.catch(()=>{vo.get(A.id)===r&&vo.delete(A.id)})}return vo.get(A.id)}async function Fx(t,e=jn(),A){return t!==Je.ALLENK_FDNCNN_BROWSER_SPIKE?null:(Ze("\u6B63\u5728\u52A0\u8F7D AI FDnCNN ONNX \u6A21\u578B\uFF0C\u9996\u6B21\u52A0\u8F7D\u4F1A\u7A0D\u6162..."),Qx(e,A))}function zx(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 Nx(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 Hx(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 oA(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 Oo(){return new Promise(t=>{let e=()=>setTimeout(t,0);typeof requestAnimationFrame=="function"?requestAnimationFrame(e):e()})}function YI(t,{start:e=0,span:A=1}={}){return({progress:r=0,step:n="detect",sampledFrames:a=0,sampleCount:i=0}={})=>{if(t!==ee.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"};oA(e+s*A,o[n]||"\u68C0\u6D4B\u4E2D"),n==="sample"?Ze(i>0?`\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370\uFF1A${a}/${i}`:"\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u6C34\u5370..."):n==="score"&&Ze("\u6B63\u5728\u5339\u914D\u6C34\u5370\u5019\u9009\uFF0C\u9875\u9762\u4F1A\u4FDD\u6301\u54CD\u5E94...")}}function Ux(t){return Number.isFinite(t)?`${t.toFixed(2)}s`:"\u672A\u77E5"}function qx(t){return Number.isFinite(t)?`${(t/1e3/1e3).toFixed(2)} Mbps`:"\u672A\u77E5"}function Lm(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 sr(){let t=!!ee.file;q.detectBtn.disabled=!t||ee.running||Kt.processing,q.processBtn.disabled=!t||ee.running||Kt.processing;let e=!!ee.processedUrl&&!ee.running;q.downloadBtn.setAttribute("aria-disabled",e?"false":"true"),q.downloadBtn.tabIndex=e?0:-1,q.resetBtn.disabled=ee.running||Kt.processing,q.cancelBtn.disabled=!ee.controller||ee.controller.signal.aborted,q.fileInput.disabled=!!ee.controller?.signal.aborted||ee.running&&!Kt.processing,fi()}function Vm(){return!!ee.processedUrl}function fi(){let t=!!ee.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?`${Lm(A)} / ${Lm(e)}`:Lm(A)}function Mo(){let t=Vm();q.afterBadge.hidden=!t,q.processedEmpty.hidden=t}function _o({force:t=!1}={}){if(!Vm()||ee.syncingPlayback)return;let e=Number(q.originalVideo.currentTime)||0;if(!(!t&&Math.abs((Number(q.processedVideo.currentTime)||0)-e)<.08)){ee.syncingPlayback=!0;try{q.processedVideo.currentTime=e}catch(A){console.warn("sync processed video failed:",A)}finally{ee.syncingPlayback=!1}}}async function Lx(){if(ee.originalUrl){_o({force:!0});try{await q.originalVideo.play(),Vm()&&await q.processedVideo.play().catch(t=>{console.warn("processed video play failed:",t)})}catch(t){console.warn("original video play failed:",t),Ze("\u6D4F\u89C8\u5668\u963B\u6B62\u4E86\u64AD\u653E\uFF0C\u8BF7\u518D\u70B9\u4E00\u6B21\u64AD\u653E\u6309\u94AE\u3002","warn")}finally{fi()}}}function vI(){q.originalVideo.pause(),q.processedVideo.pause(),fi()}function jx(){q.originalVideo.paused?Lx():vI()}function Vx(t){let e=Number(q.originalVideo.duration);if(!Number.isFinite(e)||e<=0)return;let A=Number(t)/1e3*e;q.originalVideo.currentTime=A,_o({force:!0}),fi()}function OI(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=`
105
105
  <strong>${t.label}</strong>
106
106
  <span>${t.description}</span>
107
- `}}function fi(t){if(!t){q.metadata.innerHTML='<p class="muted">\u7B49\u5F85\u8F7D\u5165\u89C6\u9891</p>';return}let e=jd(t.width,t.height);q.metadata.innerHTML=`
107
+ `}}function hi(t){if(!t){q.metadata.innerHTML='<p class="muted">\u7B49\u5F85\u8F7D\u5165\u89C6\u9891</p>';return}let e=Kd(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>${Yx(t.duration)}</dd></div>
110
+ <div><dt>\u65F6\u957F</dt><dd>${Ux(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>${vx(t.averageBitrate)}</dd></div>
112
+ <div><dt>\u89C6\u9891\u7801\u7387</dt><dd>${qx(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
- `}function Ra(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=`
115
+ `}function Fa(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=`
116
116
  <dl>
117
117
  <div><dt>\u5019\u9009</dt><dd>${A}</dd></div>
118
118
  <div><dt>\u4F4D\u7F6E</dt><dd>${t.position.x}, ${t.position.y}</dd></div>
@@ -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 Vm(){ie.originalUrl&&URL.revokeObjectURL(ie.originalUrl),ie.processedUrl&&URL.revokeObjectURL(ie.processedUrl),ie.originalUrl=null,ie.processedUrl=null}async function qm(t){let e=po(t);if(e==="image"){await Rx(t);return}if(e!=="video"){At("\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}Vm(),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,_o(),fi(null),Ra(null),hA(0,"\u51C6\u5907\u5C31\u7EEA"),At("\u6B63\u5728\u8BFB\u53D6\u89C6\u9891\u5143\u6570\u636E..."),fn();try{let A=await vP(t);ie.metadata=A,fi(A),dl(null,A,{silent:!0}),At("\u89C6\u9891\u5DF2\u8F7D\u5165\uFF0C\u70B9\u51FB\u5BFC\u51FA\u5373\u53EF\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002")}catch(A){console.error(A),At(A.message||"\u8BFB\u53D6\u89C6\u9891\u5931\u8D25","error")}finally{fn()}}async function Rx(t){try{At("\u6B63\u5728\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B..."),await UP(t,"image"),window.location.assign("./dev-preview.html?fileHandoff=1")}catch(e){console.error(e),At(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 Lm(){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 Qx(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,fn(),hA(.05,"\u68C0\u6D4B\u4E2D"),At("\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u53F3\u4E0B\u89D2\u6C34\u5370...");try{await vo();let e=await qu(ie.file,{...Lm(),sampleCount:Number(q.sampleCount.value)||jn,onProgress:CI(t,{start:.05,span:.9}),yieldToMainThread:vo});if(t!==ie.jobId)return;ie.metadata=e.metadata,ie.detection=e.detection,fi(e.metadata),Ra(e.detection),hA(1,e.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210":"\u4F4E\u7F6E\u4FE1"),dl(e.detection,e.metadata,{silent:!0}).id==="relocated-review"?At("\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002",e.detection.isConfident?"success":"warn"):At(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),At(e.message||"\u68C0\u6D4B\u5931\u8D25","error"),hA(0,"\u68C0\u6D4B\u5931\u8D25")}finally{ie.running=!1,fn()}}async function Fx(){if(!ie.file||ie.running)return;let t=++ie.jobId;ie.running=!0,fn(),hA(0,"\u5F00\u59CB"),At("\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)dl(e.detection,e.metadata,{silent:!0});else{hA(.04,"\u68C0\u6D4B\u4E2D"),At("\u6B63\u5728\u68C0\u6D4B\u6C34\u5370\u5019\u9009..."),await vo();let f=await qu(ie.file,{...Lm(),sampleCount:Number(q.sampleCount.value)||jn,onProgress:CI(t,{start:.04,span:.08}),yieldToMainThread:vo});if(t!==ie.jobId)return;ie.metadata=f.metadata,ie.detection=f.detection,fi(f.metadata),Ra(f.detection),e={metadata:f.metadata,detection:f.detection},dl(f.detection,f.metadata,{silent:!0})}Nx();let A=q.denoiseBackend.value||fo,r=Ln(e?.detection?.position),n=Gx(e?.detection),a=Sx(e?.detection,r),i=await kx(A,r),s=xx(i),o=Lm();if(t!==ie.jobId)return;let c=await _P(ie.file,{alphaGain:Number(q.alphaGain.value)||Ta,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:cf,...o,sampleCount:Number(q.sampleCount.value)||jn,detection:e,allowLowConfidence:q.allowLowConfidence.checked,allenkFdncnnRuntime:i,allenkFdncnnSigma:n,allenkFdncnnPadding:a,allenkFdncnnTemporalReuse:s,yieldToMainThread:vo,onProgress:({phase:f,progress:p,processedFrames:h,frameEstimate:y,metadata:w,detection:D,aiDenoiseFrames:E,aiReuseFrames:C})=>{if(t!==ie.jobId)return;let G=f==="detect"?p*.12:.12+p*.88;if(window.__gwrVideoCliProgress={phase:f,progress:G,processedFrames:h,frameEstimate:y,aiDenoiseFrames:E,aiReuseFrames:C},w&&(ie.metadata=w,fi(w)),D&&(ie.detection=D,Ra(D)),f==="detect")hA(p*.12,p>=1?"\u68C0\u6D4B\u5B8C\u6210":"\u68C0\u6D4B\u4E2D");else if(f==="export"){let S=.12+p*.88,k=Number.isFinite(h)?`${h} \u5E27`:"\u5904\u7406\u4E2D",M="";hA(S,`\u5BFC\u51FA\u4E2D ${k}`),At(`\u6B63\u5728\u5BFC\u51FA\u89C6\u9891\uFF0C\u5DF2\u5904\u7406 ${k}${M}\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,_o(),Oo({force:!0}),q.downloadBtn.href=ie.processedUrl,q.downloadBtn.download=`${ie.file.name.replace(/\.[^.]+$/,"")}_gwr_video_mvp.mp4`,hA(1,"\u5B8C\u6210");let l=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===$e.ALLENK_FDNCNN_BROWSER_SPIKE?"AI \u53BB\u6C34\u5370\u5DF2\u5B8C\u6210":"\u53BB\u6C34\u5370\u5DF2\u5B8C\u6210",g="";At(`${u}\uFF0C\u5DF2\u5904\u7406 ${c.processedFrames} \u5E27\u3002${l}`,"success")}catch(e){console.error(e),At(e.message||"\u5BFC\u51FA\u5931\u8D25","error")}finally{ie.running=!1,fn()}}function zx(){ie.jobId++,Vm(),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,_o(),fi(null),Ra(null),EI(null),hA(0,"\u7B49\u5F85\u89C6\u9891"),At(""),fn()}function di(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 Km(t){t&&(di(q.alphaGain,t.alphaGain??Ta),q.adaptiveAlpha.checked=t.adaptiveAlpha??of,q.highQualityCleanup.checked=t.highQualityCleanup??nn,q.denoiseBackend.value=Object.values($e).includes(t.denoiseBackend)?t.denoiseBackend:fo,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0})),di(q.edgeDenoiseStrength,t.edgeDenoiseStrength??Vt),di(q.residualCleanup,t.residualCleanupStrength??zu),q.sampleCount.value=String(t.sampleCount??jn),q.videoBitrateMbps.value=Number(t.videoBitrateMbps)>0?String(t.videoBitrateMbps):"",q.allowLowConfidence.checked=t.allowLowConfidence===!0,EI(t))}function dl(t=ie.detection,e=ie.metadata,{silent:A=!1}={}){let r=df(t,e);return Km(r),A||At(`\u5DF2\u81EA\u52A8\u9009\u62E9\uFF1A${r.label}\u3002`,r.allowLowConfidence?"warn":"success"),r}function Nx(){zP({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)&&di(q.edgeDenoiseStrength,Math.max(0,Math.min(3,window.__gwrVideoOverrideEdgeDenoiseStrength))),Number.isFinite(window.__gwrVideoOverrideResidualCleanupStrength)&&di(q.residualCleanup,Math.max(0,Math.min(1.8,window.__gwrVideoOverrideResidualCleanupStrength))),NP({windowObject:window,videoBitrateInput:q.videoBitrateMbps,setNumberControl:di})}function Hx(){let t=gf();Km(t),At("\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 Ux(){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=mf(t.target.files);e&&qm(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=mf(t.dataTransfer?.files);e&&qm(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===$e.ALLENK_FDNCNN_BROWSER_SPIKE&&di(q.edgeDenoiseStrength,1.8)}),q.detectBtn.addEventListener("click",Qx),q.processBtn.addEventListener("click",Fx),q.resetBtn.addEventListener("click",zx),q.relocatedReviewPresetBtn.addEventListener("click",Hx),q.downloadBtn.addEventListener("click",t=>{(!ie.processedUrl||ie.running)&&t.preventDefault()}),q.playPauseBtn.addEventListener("click",_x),q.scrubber.addEventListener("input",t=>{Mx(t.target.value)}),q.originalVideo.addEventListener("loadedmetadata",()=>{gi()}),q.originalVideo.addEventListener("timeupdate",()=>{q.originalVideo.paused||Oo(),gi()}),q.originalVideo.addEventListener("pause",()=>{q.processedVideo.paused||q.processedVideo.pause(),gi()}),q.originalVideo.addEventListener("ended",()=>{bI()}),q.processedVideo.addEventListener("loadedmetadata",()=>{Oo({force:!0}),_o()}),window.addEventListener("beforeunload",Vm)}async function qx(){if(new URLSearchParams(window.location.search).get("fileHandoff")==="1")try{let e=await qP("video");if(!e?.file)return;await qm(e.file),window.history.replaceState(null,"",window.location.pathname)}catch(e){console.warn("video handoff unavailable:",e),At(e.message||"\u8BFB\u53D6\u89C6\u9891\u6682\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}async function Lx(){Km(df()),(!("VideoDecoder"in window)||!("VideoEncoder"in window))&&At("\u5F53\u524D\u6D4F\u89C8\u5668\u7F3A\u5C11 WebCodecs\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002","error"),fi(null),Ra(null),_o(),hA(0,"\u7B49\u5F85\u89C6\u9891"),Ux(),fn(),await qx()}Lx();})();
124
+ `}function Km(){ee.originalUrl&&URL.revokeObjectURL(ee.originalUrl),ee.processedUrl&&URL.revokeObjectURL(ee.processedUrl),ee.originalUrl=null,ee.processedUrl=null}async function Wm(t){let e=Kn(t);if(e==="image"){await Kx(t);return}if(e!=="video"){Ze("\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}Km(),ee.file=t,ee.metadata=null,ee.detection=null,ee.processedUrl=null,ee.jobId++,ee.originalUrl=URL.createObjectURL(t),q.originalVideo.src=ee.originalUrl,q.originalVideo.currentTime=0,q.processedVideo.removeAttribute("src"),q.processedVideo.load(),q.downloadBtn.removeAttribute("href"),q.downloadBtn.removeAttribute("download"),q.originalEmpty.hidden=!0,Mo(),hi(null),Fa(null),oA(0,"\u51C6\u5907\u5C31\u7EEA"),Ze("\u6B63\u5728\u8BFB\u53D6\u89C6\u9891\u5143\u6570\u636E..."),sr();try{let A=await MP(t);ee.metadata=A,hi(A),ml(null,A,{silent:!0}),Ze("\u89C6\u9891\u5DF2\u8F7D\u5165\uFF0C\u70B9\u51FB\u5BFC\u51FA\u5373\u53EF\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002")}catch(A){console.error(A),Ze(A.message||"\u8BFB\u53D6\u89C6\u9891\u5931\u8D25","error")}finally{sr()}}async function Kx(t){try{Ze("\u6B63\u5728\u8FDB\u5165\u56FE\u7247\u8C03\u8BD5\u6D41\u7A0B..."),await ZP(t,"image"),window.location.assign("./dev-preview.html?fileHandoff=1")}catch(e){console.error(e),Ze(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 jm(){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 Wx(){if(!ee.file||ee.running)return;let t=new AbortController;ee.controller=t;let e=++ee.jobId;ee.running=!0,sr(),oA(.05,"\u68C0\u6D4B\u4E2D"),Ze("\u6B63\u5728\u62BD\u5E27\u68C0\u6D4B\u53F3\u4E0B\u89D2\u6C34\u5370...");try{await Oo();let A=await Lu(ee.file,{signal:t.signal,...jm(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:YI(e,{start:.05,span:.9}),yieldToMainThread:Oo});if(t.signal.throwIfAborted(),e!==ee.jobId)return;ee.metadata=A.metadata,ee.detection=A.detection,hi(A.metadata),Fa(A.detection),oA(1,A.detection.isConfident?"\u68C0\u6D4B\u5B8C\u6210":"\u4F4E\u7F6E\u4FE1"),ml(A.detection,A.metadata,{silent:!0}).id==="relocated-review"?Ze("\u68C0\u6D4B\u5B8C\u6210\uFF0C\u5BFC\u51FA\u65F6\u4F1A\u4F7F\u7528 AI \u53BB\u6C34\u5370\u3002",A.detection.isConfident?"success":"warn"):Ze(A.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",A.detection.isConfident?"success":"warn")}catch(A){t.signal.aborted||(console.error(A),Ze(A.message||"\u68C0\u6D4B\u5931\u8D25","error"),oA(0,"\u68C0\u6D4B\u5931\u8D25"))}finally{ee.running=!1,ee.controller=null,t.signal.aborted&&Zm(),sr()}}async function _I(t){if(!ee.file||ee.running)return;let e=t?null:new AbortController;e&&(ee.controller=e),t??=e.signal;let A=++ee.jobId;ee.running=!0,sr(),oA(0,"\u5F00\u59CB"),Ze("\u6B63\u5728\u672C\u5730\u9010\u5E27\u5904\u7406\uFF0C\u9875\u9762\u4FDD\u6301\u6253\u5F00\u5373\u53EF\u3002");try{t.throwIfAborted();let r=ee.detection?{metadata:ee.metadata,detection:ee.detection}:null;if(r)ml(r.detection,r.metadata,{silent:!0});else{oA(.04,"\u68C0\u6D4B\u4E2D"),Ze("\u6B63\u5728\u68C0\u6D4B\u6C34\u5370\u5019\u9009..."),await Oo();let h=await Lu(ee.file,{signal:t,...jm(),sampleCount:Number(q.sampleCount.value)||Vn,onProgress:YI(A,{start:.04,span:.08}),yieldToMainThread:Oo});if(A!==ee.jobId)return;ee.metadata=h.metadata,ee.detection=h.detection,hi(h.metadata),Fa(h.detection),r={metadata:h.metadata,detection:h.detection},ml(h.detection,h.metadata,{silent:!0})}t1();let n=q.denoiseBackend.value||ho,a=jn(r?.detection?.position),i=Nx(r?.detection),s=Hx(r?.detection,a),o=await Fx(n,a,t);t.throwIfAborted();let c=zx(o),l=jm();if(A!==ee.jobId)return;let u=await QP(ee.file,{signal:t,alphaGain:Number(q.alphaGain.value)||xa,adaptiveAlpha:q.adaptiveAlpha.checked,highQualityCleanup:q.highQualityCleanup.checked,denoiseBackend:n,edgeDenoiseStrength:Number(q.edgeDenoiseStrength.value)||0,residualCleanupStrength:Number(q.residualCleanup.value)||0,videoBitrate:Number(q.videoBitrateMbps.value)>0?Number(q.videoBitrateMbps.value)*1e3*1e3:lf,...l,sampleCount:Number(q.sampleCount.value)||Vn,detection:r,allowLowConfidence:q.allowLowConfidence.checked,allenkFdncnnRuntime:o,allenkFdncnnSigma:i,allenkFdncnnPadding:s,allenkFdncnnTemporalReuse:c,yieldToMainThread:Oo,onProgress:({phase:h,progress:y,processedFrames:w,frameEstimate:D,metadata:E,detection:C,aiDenoiseFrames:G,aiReuseFrames:S})=>{if(t.throwIfAborted(),A!==ee.jobId)return;let k=h==="detect"?y*.12:.12+y*.88;if(window.__gwrVideoCliProgress={phase:h,progress:k,processedFrames:w,frameEstimate:D,aiDenoiseFrames:G,aiReuseFrames:S},E&&(ee.metadata=E,hi(E)),C&&(ee.detection=C,Fa(C)),h==="detect")oA(y*.12,y>=1?"\u68C0\u6D4B\u5B8C\u6210":"\u68C0\u6D4B\u4E2D");else if(h==="export"){let M=.12+y*.88,R=Number.isFinite(w)?`${w} \u5E27`:"\u5904\u7406\u4E2D",N="";oA(M,`\u5BFC\u51FA\u4E2D ${R}`),Ze(`\u6B63\u5728\u5BFC\u51FA\u89C6\u9891\uFF0C\u5DF2\u5904\u7406 ${R}${N}\u3002`)}}});if(t.throwIfAborted(),A!==ee.jobId)return;ee.processedUrl&&URL.revokeObjectURL(ee.processedUrl),ee.processedUrl=URL.createObjectURL(u.blob),q.processedVideo.src=ee.processedUrl,q.processedVideo.load(),q.processedEmpty.hidden=!0,Mo(),_o({force:!0}),q.downloadBtn.href=ee.processedUrl,q.downloadBtn.download=`${ee.file.name.replace(/\.[^.]+$/,"")}_gwr_video_mvp.mp4`,oA(1,"\u5B8C\u6210");let g=u.audioCopied?`\u97F3\u9891\u5DF2\u4FDD\u7559\uFF1A${u.audioCodec||"unknown"}\uFF0C${u.audioPacketCount||0} packets\u3002`:`\u97F3\u9891\u672A\u4FDD\u7559\uFF1A${u.audioSkipReason||"unknown"}\u3002`,f=u.denoiseBackend===Je.ALLENK_FDNCNN_BROWSER_SPIKE?"AI \u53BB\u6C34\u5370\u5DF2\u5B8C\u6210":"\u53BB\u6C34\u5370\u5DF2\u5B8C\u6210",p="";Ze(`${f}\uFF0C\u5DF2\u5904\u7406 ${u.processedFrames} \u5E27\u3002${g}`,"success")}catch(r){t.aborted||(console.error(r),Ze(r.message||"\u5BFC\u51FA\u5931\u8D25","error"))}finally{ee.running=!1,e&&(ee.controller=null,t.aborted&&Zm()),sr()}}var Kt=LP();function Zx(t){switch(t){case"pending":return"\u6392\u961F\u4E2D";case"processing":return"\u5904\u7406\u4E2D\u2026";case"done":return"\u5DF2\u5B8C\u6210 \u2713";case"error":return"\u5931\u8D25 \u2717";case"skipped":return"\u5DF2\u8DF3\u8FC7";default:return""}}function fl(){let t=q.batchQueue;if(t){if(Kt.items.length===0){t.hidden=!0,t.replaceChildren();return}t.hidden=!1,t.replaceChildren(...Kt.items.map((e,A)=>{let r=document.createElement("div");r.className="batch-item",r.dataset.status=e.status;let n=document.createElement("span");n.className="batch-name",n.textContent=`${A+1}. ${e.file.name}`;let a=document.createElement("span");return a.className="batch-state",a.textContent=Zx(e.status),r.append(n,a),r}))}}function $x(t,e){let A=document.createElement("a");A.href=t,A.download=e,document.body.appendChild(A),A.click(),A.remove()}async function Jx(t,e){if(await Wm(t),e.throwIfAborted(),Kn(t)!=="video"||!ee.file)return{skipped:!0};await _I(e),e.throwIfAborted();let A=q.downloadBtn.getAttribute("href");return!ee.processedUrl||!A?{ok:!1}:{ok:!0,href:A,filename:q.downloadBtn.getAttribute("download")||`${t.name}.mp4`}}async function Xx(){if(Kt.processing)return;let t=new AbortController;ee.controller=t;let e=await VP(Kt,{signal:t.signal,processFile:Jx,downloadResult:({href:A,filename:r})=>$x(A,r),onChange:fl,onError:A=>console.error(A)});if(ee.controller=null,sr(),t.signal.aborted){Zm();return}e&&Ze(`\u6279\u91CF\u5904\u7406\u5B8C\u6210\uFF1A\u6210\u529F ${e.done}/${e.total}\uFF0C\u7ED3\u679C\u5DF2\u81EA\u52A8\u4E0B\u8F7D\u3002`,e.done?"success":"warn")}function SI(t){if(ee.controller?.signal.aborted||ee.running&&!Kt.processing)return;let A=Array.from(t||[]).filter(Boolean).filter(n=>Kn(n)==="video");if(hf(Kt),A.length>1||Kt.processing&&A.length===1){jP(Kt,A),fl(),Xx();return}if(fl(),Kt.processing)return;let r=KP(t);r&&Wm(r)}function MI(){ee.jobId++,hf(Kt),fl(),Km(),ee.file=null,ee.metadata=null,ee.detection=null,ee.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,Mo(),hi(null),Fa(null),OI(null),oA(0,"\u7B49\u5F85\u89C6\u9891"),Ze(""),sr()}function e1(){!ee.controller||ee.controller.signal.aborted||(ee.controller.abort(),Ze("\u6B63\u5728\u505C\u6B62\u5904\u7406\u5E76\u91CA\u653E\u8D44\u6E90\u2026"),sr())}function Zm(){MI(),Ze("\u5DF2\u505C\u6B62\u5904\u7406\uFF0C\u5269\u4F59\u961F\u5217\u5DF2\u53D6\u6D88\u3002\u5DF2\u4E0B\u8F7D\u7684\u6587\u4EF6\u4E0D\u53D7\u5F71\u54CD\u3002"),oA(0,"\u5DF2\u53D6\u6D88")}function mi(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 $m(t){t&&(mi(q.alphaGain,t.alphaGain??xa),q.adaptiveAlpha.checked=t.adaptiveAlpha??uf,q.highQualityCleanup.checked=t.highQualityCleanup??sn,q.denoiseBackend.value=Object.values(Je).includes(t.denoiseBackend)?t.denoiseBackend:ho,q.denoiseBackend.dispatchEvent(new Event("change",{bubbles:!0})),mi(q.edgeDenoiseStrength,t.edgeDenoiseStrength??Vt),mi(q.residualCleanup,t.residualCleanupStrength??Nu),q.sampleCount.value=String(t.sampleCount??Vn),q.videoBitrateMbps.value=Number(t.videoBitrateMbps)>0?String(t.videoBitrateMbps):"",q.allowLowConfidence.checked=t.allowLowConfidence===!0,OI(t))}function ml(t=ee.detection,e=ee.metadata,{silent:A=!1}={}){let r=mf(t,e);return $m(r),A||Ze(`\u5DF2\u81EA\u52A8\u9009\u62E9\uFF1A${r.label}\u3002`,r.allowLowConfidence?"warn":"success"),r}function t1(){UP({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)&&mi(q.edgeDenoiseStrength,Math.max(0,Math.min(3,window.__gwrVideoOverrideEdgeDenoiseStrength))),Number.isFinite(window.__gwrVideoOverrideResidualCleanupStrength)&&mi(q.residualCleanup,Math.max(0,Math.min(1.8,window.__gwrVideoOverrideResidualCleanupStrength))),qP({windowObject:window,videoBitrateInput:q.videoBitrateMbps,setNumberControl:mi})}function A1(){let t=ff();$m(t),Ze("\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 r1(){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=>{SI(t.target.files)});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=>{SI(t.dataTransfer?.files)}),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===Je.ALLENK_FDNCNN_BROWSER_SPIKE&&mi(q.edgeDenoiseStrength,1.8)}),q.detectBtn.addEventListener("click",Wx),q.processBtn.addEventListener("click",()=>_I()),q.cancelBtn.addEventListener("click",e1),q.resetBtn.addEventListener("click",MI),q.relocatedReviewPresetBtn.addEventListener("click",A1),q.downloadBtn.addEventListener("click",t=>{(!ee.processedUrl||ee.running)&&t.preventDefault()}),q.playPauseBtn.addEventListener("click",jx),q.scrubber.addEventListener("input",t=>{Vx(t.target.value)}),q.originalVideo.addEventListener("loadedmetadata",()=>{fi()}),q.originalVideo.addEventListener("timeupdate",()=>{q.originalVideo.paused||_o(),fi()}),q.originalVideo.addEventListener("pause",()=>{q.processedVideo.paused||q.processedVideo.pause(),fi()}),q.originalVideo.addEventListener("ended",()=>{vI()}),q.processedVideo.addEventListener("loadedmetadata",()=>{_o({force:!0}),Mo()}),window.addEventListener("beforeunload",Km)}async function n1(){if(new URLSearchParams(window.location.search).get("fileHandoff")==="1")try{let e=await $P("video");if(!e?.file)return;await Wm(e.file),window.history.replaceState(null,"",window.location.pathname)}catch(e){console.warn("video handoff unavailable:",e),Ze(e.message||"\u8BFB\u53D6\u89C6\u9891\u6682\u5B58\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\u3002","warn")}}async function i1(){$m(mf()),(!("VideoDecoder"in window)||!("VideoEncoder"in window))&&Ze("\u5F53\u524D\u6D4F\u89C8\u5668\u7F3A\u5C11 WebCodecs\uFF0C\u8BF7\u4F7F\u7528\u65B0\u7248 Chrome \u6216 Edge\u3002","error"),hi(null),Fa(null),Mo(),oA(0,"\u7B49\u5F85\u89C6\u9891"),r1(),sr(),await n1()}i1();})();
125
125
  /*! Bundled license information:
126
126
 
127
127
  onnxruntime-web/dist/ort.webgpu.bundle.min.mjs: